re PR ipa/68057 (450.soplex in SPEC CPU 2006 failed to build)
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2015-11-07  Jan Hubicka  <hubicka@ucw.cz>
2
3         PR ipa/68057
4         PR ipa/68220
5         * ipa-polymorphic-call.c
6         (ipa_polymorphic_call_context::restrict_to_inner_type): Fix ordering
7         issue when offset is out of range.
8         (contains_type_p): Fix out of range check, clear dynamic flag.
9
10 2015-11-06  Arnout Vandecappelle  <arnout@mind.be>
11
12         * config.gcc (e6500): Fix cpu_is_64bit typo.
13
14 2015-11-06  Alan Lawrence  <alan.lawrence@arm.com>
15
16         * tree-sra.c (completely_scalarize): Properly handle negative array
17         indices using offset_int.
18
19 2015-11-06  Richard Biener  <rguenther@suse.de>
20
21         * alloc-pool.h (object_allocator::allocate): Default-initialize
22         object.
23
24 2015-11-06  Richard Biener  <rguenther@suse.de>
25
26         * tree-ssa-sccvn.c (class sccvn_dom_walker): Add destructor.
27         * lra.c (init_reg_info): Truncate copy_vec instead of
28         re-allocating a new one and leaking the old.
29         * ipa-inline-analysis.c (estimate_function_body_sizes): Free
30         bb_infos vec.
31         * sched-deps.c (sched_deps_finish): Free the dn/dl pools.
32         * postreload-gcse.c (free_mem): Free modify_mem_list and
33         canon_modify_mem_list.
34
35 2015-11-06  Ilya Enkovich  <enkovich.gnu@gmail.com>
36
37         PR tree-optimization/68145
38         * tree-vect-stmts.c (vectorizable_operation): Fix
39         determination for booleans.
40
41 2015-11-06  Tom de Vries  <tom@codesourcery.com>
42
43         * tree-cfg.c (gimple_split_block_before_cond_jump): Split before
44         cond_jump, instead of split after last nondebug insn before cond_jump.
45         * tree-parloops.c (transform_to_exit_first_loop_alt): Verify ssa before
46         returning.
47
48 2015-11-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
49
50         PR target/68088
51         * config/arm/aarch-common.c (aarch_accumulator_forwarding): Strip
52         subregs from accumulator and make sure it's a register.
53
54 2015-11-06  Simon Dardis  <simon.dardis@imgtec.com>
55
56         * config/mips/loongson.md (vec_loongson_extract_lo_<mode>): New, extract
57         low part to scalar.
58         (reduc_uplus_<mode>): Remove.
59         (reduc_plus_scal_<mode>): Rename from reduc_splus_<mode>, Use vec
60         loongson_extract_lo_<mode>.
61         (reduc_smax_scal_<mode>, reduc_smin_scal_<mode>): Rename from
62         reduc_smax_<mode>, reduc_smax_<mode>, use vec
63         loongson_extract_lo_<mode>.
64         (reduc_umax_scal_<mode>, reduc_umin_scal_<mode>): Rename.
65
66 2015-11-06  Richard Biener  <rguenther@suse.de>
67
68         * tree-vectorizer.h (struct _bb_vec_info): Add region_begin/end
69         members.
70         (vect_stmt_in_region_p): Declare.
71         * tree-vect-slp.c (new_bb_vec_info): Work on a region.
72         (destroy_bb_vec_info): Likewise.
73         (vect_bb_slp_scalar_cost): Use vect_stmt_in_region_p.
74         (vect_get_and_check_slp_defs): Likewise.
75         (vect_slp_analyze_bb_1): Refactor to make it work on sub-BBs.
76         (vect_slp_bb): Likewise.
77         * tree-vect-patterns.c (vect_same_loop_or_bb_p): Implement
78         in terms of vect_stmt_in_region_p.
79         (vect_pattern_recog): Iterate over the BB region.
80         * tree-vect-stmts.c (vect_is_simple_use): Use vect_stmt_in_region_p.
81         * tree-vectorizer.c (vect_stmt_in_region_p): New function.
82         (pass_slp_vectorize::execute): Initialize all stmt UIDs to -1.
83         * config/i386/i386.c: Include gimple-iterator.h.
84         * config/aarch64/aarch64.c: Likewise.
85
86 2015-11-06  Alexandre Oliva <aoliva@redhat.com>
87
88         PR rtl-optimization/67753
89         PR rtl-optimization/64164
90         * function.c (assign_parm_setup_block): Avoid allocating a
91         stack slot if we don't have an ABI-reserved one.  Emit the
92         copy to target_reg in the conversion seq if the copy from
93         entry_parm is in it too.  Don't use the conversion seq to copy
94         a PARALLEL to a REG or a CONCAT.
95
96 2015-11-06  Richard Biener  <rguenther@suse.de>
97
98         * tree-hash-traits.h (tree_operand_hash): Provide equal, not
99         equal_keys.
100
101 2015-11-05  Cesar Philippidis  <cesar@codesourcery.com>
102             Thomas Schwinge  <thomas@codesourcery.com>
103             James Norris  <jnorris@codesourcery.com>
104
105
106         * gimplify.c (gimplify_scan_omp_clauses): Add support for
107         OMP_CLAUSE_TILE.  Update handling of OMP_CLAUSE_INDEPENDENT.
108         (gimplify_adjust_omp_clauses): Likewise.
109         * omp-low.c (scan_sharing_clauses): Add support for OMP_CLAUSE_TILE.
110         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_TILE.
111         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_TILE.
112         * tree.c (omp_clause_num_ops): Add an entry for OMP_CLAUSE_TILE.
113         (omp_clause_code_name): Likewise.
114         (walk_tree_1): Handle OMP_CLAUSE_TILE.
115         * tree.h (OMP_TILE_LIST): New macro.
116
117 2015-11-05  Martin Sebor  <msebor@redhat.com>
118
119         PR c++/67942
120         * doc/invoke.texi (-Wplacement-new): Document new option.
121
122 2015-11-05  Alan Lawrence  <alan.lawrence@arm.com>
123
124         PR tree-optimization/65963
125         * tree-scalar-evolution.c (interpret_rhs_expr): Try to handle
126         LSHIFT_EXPRs as equivalent unsigned MULT_EXPRs.
127
128 2015-11-05  James Greenhalgh  <james.greenhalgh@arm.com>
129
130         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): New.
131         (noce_convert_multiple_sets): Likewise.
132         (noce_process_if_block): Call them.
133
134 2015-11-05  Nathan Sidwell  <nathan@codesourcery.com>
135
136         * gimple-fold.c: Include omp-low.h.
137         (fold_internal_goacc_dim): New.
138         (gimple_fold_call): Call it.
139
140 2015-11-05  Jakub Jelinek  <jakub@redhat.com>
141             Ilya Verbin  <ilya.verbin@intel.com>
142
143         * builtin-types.def
144         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR): Remove.
145         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): New.
146         * cgraph.h (enum cgraph_simd_clone_arg_type): Add
147         SIMD_CLONE_ARG_TYPE_LINEAR_REF_VARIABLE_STEP,
148         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_VARIABLE_STEP and
149         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_VARIABLE_STEP.
150         (struct cgraph_simd_clone_arg): Adjust comment.
151         * omp-builtins.def (BUILT_IN_GOMP_TARGET): Rename GOMP_target_41
152         to GOMP_target_ext.  Add num_teams and thread_limit arguments.
153         (BUILT_IN_GOMP_TARGET_DATA): Rename GOMP_target_data_41
154         to GOMP_target_data_ext.
155         (BUILT_IN_GOMP_TARGET_UPDATE): Rename GOMP_target_update_41
156         to GOMP_target_update_ext.
157         (BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_START,
158         BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_START,
159         BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_NEXT,
160         BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_NEXT,
161         BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_START,
162         BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_START,
163         BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_NEXT,
164         BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_NEXT,
165         BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_DYNAMIC,
166         BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_GUIDED): New built-ins.
167         * tree-core.h (enum omp_clause_schedule_kind): Add
168         OMP_CLAUSE_SCHEDULE_MASK, OMP_CLAUSE_SCHEDULE_MONOTONIC,
169         OMP_CLAUSE_SCHEDULE_NONMONOTONIC and change
170         OMP_CLAUSE_SCHEDULE_LAST value.
171         * tree.def (OMP_SIMD, CILK_SIMD, CILK_FOR, OMP_DISTRIBUTE,
172         OMP_TASKLOOP, OACC_LOOP): Add OMP_FOR_ORIG_DECLS argument.
173         * tree.h (OMP_FOR_ORIG_DECLS): Use OMP_LOOP_CHECK instead of
174         OMP_FOR_CHECK.  Remove comment.
175         * tree-pretty-print.c (dump_omp_clause): Handle
176         GOMP_MAP_FIRSTPRIVATE_REFERENCE and GOMP_MAP_ALWAYS_POINTER.
177         Simplify.  Print schedule clause modifiers.
178         * tree-vect-stmts.c (vectorizable_simd_clone_call): Add
179         SIMD_CLONE_ARG_TYPE_LINEAR_{REF,VAL,UVAL}_VARIABLE_STEP
180         cases.
181         * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_ALWAYS_TO.
182         (omp_default_clause): Tweak for
183         private/firstprivate/is_device_ptr variables on target
184         construct and use_device_ptr on target data.
185         (omp_check_private): Likewise.
186         (omp_notice_variable): For references check whether what it refers
187         to has mappable type, rather than the reference itself.
188         (omp_is_private): Diagnose linear iteration variables on non-simd
189         constructs.
190         (omp_no_lastprivate): Return true only for Fortran.
191         (gimplify_scan_omp_clauses): Or in GOVD_MAP_ALWAYS_TO for
192         GOMP_MAP_ALWAYS_TO or GOMP_MAP_ALWAYS_TOFROM kinds.
193         Add support for GOMP_MAP_FIRSTPRIVATE_REFERENCE and
194         GOMP_MAP_ALWAYS_POINTER, remove old handling of structure element
195         based array sections.  Use GOMP_MAP_ALWAYS_P.  Fix up handling of
196         lastprivate and linear when combined with distribute.  Gimplify
197         variable low-bound for array reduction.  Look through
198         POINTER_PLUS_EXPR when looking for ADDR_EXPR for array section
199         reductions.
200         (gimplify_adjust_omp_clauses_1): For implicit references to
201         variables with reference type and when not ref to scalar or
202         ref to pointer, map what they refer to using tofrom and
203         use GOMP_MAP_FIRSTPRIVATE_REFERENCE for the reference.
204         (gimplify_adjust_omp_clauses): Remove GOMP_MAP_ALWAYS_POINTER
205         from target exit data.  Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE.
206         Drop OMP_CLAUSE_MAP_PRIVATE support.  Use GOMP_MAP_ALWAYS_P.
207         Diagnose the same var on both firstprivate and lastprivate on
208         distribute construct.
209         (gimplify_omp_for): Fix up handling of predetermined
210         lastprivate or linear iter vars when combined with distribute.
211         (find_omp_teams, computable_teams_clause, optimize_target_teams): New
212         functions.
213         (gimplify_omp_workshare): Call optimize_target_teams.
214         * omp-low.c (struct omp_region): Add sched_modifiers field.
215         (struct omp_for_data): Likewise.
216         (omp_any_child_fn_dumped): New variable.
217         (extract_omp_for_data): Fill in sched_modifiers, and mask out
218         OMP_CLAUSE_SCHEDULE_KIND bits outside of OMP_CLAUSE_SCHEDULE_MASK
219         from sched_kind.
220         (determine_parallel_type): Use only OMP_CLAUSE_SCHEDULE_MASK
221         bits of OMP_CLAUSE_SCHED_KIND.
222         (scan_sharing_clauses): Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE,
223         drop OMP_CLAUSE_MAP_PRIVATE support.  Look through POINTER_PLUS_EXPR
224         for array section reductions.
225         (add_taskreg_looptemp_clauses): Add one extra _looptemp_ clause even
226         for distribute parallel for, if there are lastprivate clauses on the
227         for.
228         (lower_rec_input_clauses): Handle non-zero low-bound on array
229         section reductions.
230         (lower_reduction_clauses): Likewise.
231         (lower_send_clauses): Look through POINTER_PLUS_EXPR
232         for array section reductions.
233         (expand_parallel_call): Use nonmonotonic entrypoints for
234         nonmonotonic: dynamic/guided.
235         (expand_omp_taskreg): Call assign_assembler_name_if_neeeded on
236         child_fn if current_function_decl has assembler name set, but child_fn
237         does not.  Dump the header and IL of the child function when not in SSA
238         form.
239         (expand_omp_target): Likewise.  Pass num_teams and thread_limit
240         arguments to BUILT_IN_GOMP_TARGET.
241         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
242         Initialize the extra _looptemp_ clause to fd->loop.n2.
243         (expand_omp_for): Use nonmonotonic entrypoints for
244         nonmonotonic: dynamic/guided.  Initialize region->sched_modifiers.
245         (expand_omp): Clear omp_any_child_fn_dumped.  Dump function header
246         again if we have dumped any child functions.
247         (lower_omp_for_lastprivate): Determine the right count variable
248         for distribute simd, or distribute parallel for{, simd}.
249         (lower_omp_target): Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE
250         and GOMP_MAP_ALWAYS_POINTER.  Drop OMP_CLAUSE_MAP_PRIVATE
251         support.
252         (simd_clone_clauses_extract): Handle variable step
253         for references and arguments passed by reference.
254         (simd_clone_mangle): Mangle ref/uval/val variable steps.
255         (simd_clone_adjust_argument_types): Handle
256         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_VARIABLE_STEP like
257         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP and
258         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_VARIABLE_STEP like
259         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP.
260         (simd_clone_linear_addend): New function.
261         (simd_clone_adjust): Handle variable step like similarly
262         to constant step, use simd_clone_linear_addend to determine
263         the actual step at runtime.
264
265 2015-11-05  Nathan Sidwell  <nathan@codesourcery.com>
266
267         * target.def (goacc.dim_limit): New hook.
268         * targhooks.h (default_goacc_dim_limit): Declare.
269         * doc/tm.texi.in (TARGET_GOACC_DIM_LIMIT): Add.
270         * doc/tm.texi: Rebuilt.
271         * omp-low.h (get_oacc_fn_dim_size, get_oacc_ifn_dim_arg): Declare.
272         * omp-low.c (get_oacc_fn_dim_size, get_oacc_ifn_dim_arg): New.
273         (default_goacc_dim_limit): New.
274         * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH, PTX_WORKER_LENGTH): New.
275         (nvptx_goacc_dim_limit) New.
276         (TARGET_GOACC_DIM_LIMIT): Override.
277         * tree-vrp.c: Include omp-low.h, target.h.
278         (extract_range_basic): Add handling for IFN_GOACC_DIM_SIZE &
279         IFN_GOACC_DIM_POS.
280
281 2015-11-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
282
283         * tree-vect-generic.c (do_compare): Use -1 for true
284         result instead of 1.
285
286 2015-11-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
287
288         * config/aarch64/aarch64.c
289         (aarch64_can_use_per_function_literal_pools_p): New.
290         (aarch64_use_blocks_for_constant_p): Adjust declaration
291         and use aarch64_can_use_function_literal_pools_p.
292         (aarch64_select_rtx_section): Update.
293
294 2015-11-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
295
296         * targhooks.c (default_get_mask_mode): Use BLKmode in
297         case target doesn't support required vector mode.
298         * stor-layout.c (layout_type); Check for BLKmode.
299
300 2015-11-04  Aditya Kumar  <aditya.k7@samsung.com>
301             Sebastian Pop  <s.pop@samsung.com>
302
303         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
304         Remove use of parameter_rename_map.
305         (copy_def): Remove.
306         (copy_internal_parameters): Remove.
307         (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
308         * sese.c (new_sese_info): Do not initialize parameter_rename_map.
309         (free_sese_info): Do not free parameter_rename_map.
310         (set_rename): Do not use parameter_rename_map.
311         (rename_uses): Update call to set_rename.
312         (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
313         * sese.h (parameter_rename_map_t): Remove.
314         (struct sese_info_t): Remove field parameter_rename_map.
315
316 2015-11-04  Aditya Kumar  <aditya.k7@samsung.com>
317             Sebastian Pop  <s.pop@samsung.com>
318
319         * graphite-isl-ast-to-gimple.c: Include tree-cfg.h.
320         (translate_isl_ast_node_user): Add more dumps: call print_loops_bb.
321         * graphite-scop-detection.c (dot_all_scops_1): Moved out of
322         anonymous namespace.
323         * graphite-sese-to-poly.c (ssa_name_version_typesize): Remove.
324         (isl_id_for_pbb): Use a buffer of size 10.
325         (isl_id_for_ssa_name): Same.
326         * sese.c (set_rename): Add more dumps.
327
328 2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
329
330         * omp-low.c (struct omp_context): Remove reduction_map field.
331         (lookup_oacc_reduction, maybe_lookup_oacc_reduction): Delete.
332         (new_omp_context, delete_omp_context, scan_omp_target): Remove
333         reduction_map handling.
334         (lower_omp_target): Remove obsolete openacc reduction handling.
335
336 2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
337
338         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add checking.
339
340 2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
341             Cesar Philippidis  <cesar@codesourcery.com>
342
343         * config/nvptx/nvptx.c: Include gimple headers.
344         (worker_red_size, worker_red_align, worker_red_name,
345         worker_red_sym): New.
346         (nvptx_option_override): Initialize worker reduction buffer.
347         (nvptx_file_end): Write out worker reduction buffer var.
348         (nvptx_expand_shuffle, nvptx_expand_worker_addr,
349         nvptx_expand_cmp_swap): New builtin expanders.
350         (enum nvptx_builtins): New.
351         (nvptx_builtin_decls): New.
352         (nvptx_builtin_decl, nvptx_init_builtins, nvptx_expand_builtin): New
353         (PTX_VECTOR_LENGTH, PTX_WORKER_LENGTH): New.
354         (nvptx_get_worker_red_addr, nvptx_generate_vector_shuffle,
355         nvptx_lockless_update): New helpers.
356         (nvptx_goacc_reduction_setup, nvptx_goacc_reduction_init,
357         nvptx_goacc_reduction_fini, nvptx_goacc_reduction_teaddown): New.
358         (nvptx_goacc_reduction): New.
359         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN,
360         TARGET_BUILTIN_DECL): Override.
361         (TARGET_GOACC_REDUCTION): Override.
362
363 2015-11-04  Nathan Sidwell  <nathan@codesourcery.com>
364             Cesar Philippidis  <cesar@codesourcery.com>
365
366         * internal-fn.def (GOACC_REDUCTION): New.
367         * internal-fn.h (enum ifn_goacc_reduction_kind): New.
368         * internal-fn.c (expand_GOACC_REDUCTION): New.
369         * target.def (goacc.reduction): New OpenACC hook.
370         * targhooks.h (default_goacc_reduction): Declare.
371         * doc/tm.texi.in: Add TARGET_GOACC_REDUCTION.
372         * doc/tm.texi: Rebuilt.
373         * omp-low.c (oacc_get_reduction_array_id, oacc_max_threads,
374         scan_sharing_clauses): Remove oacc reduction handling here.
375         (lower_rec_input_clauses): Don't handle OpenACC reductions here.
376         (oacc_lower_reduction_var_helper): Delete.
377         (lower_oacc_reductions): New.
378         (lower_reduction_clauses): Don't handle OpenACC reductions here.
379         (lower_oacc_head_tail): Call lower_oacc_reductions.
380         (oacc_gimple_assign, oacc_init_reduction_array,
381         oacc_initialize_reduction_data, oacc_finalize_reduction_data,
382         oacc_process_reduction_data): Delete.
383         (lower_omp_target): Remove old OpenACC reduction handling.  Insert
384         dummy OpenACC gang reduction for reductions at outer level.
385         (oacc_loop_xform_head_tail): Transform IFN_GOACC_REDUCTION.
386         (default_goacc_reduction): New.
387         (execute_oacc_device_lower): Handle IFN_GOACC_REDUCTION.
388
389 2015-11-04  Martin Liska  <mliska@suse.cz>
390
391         * cgraphunit.c (cgraph_node::expand_thunk): Call
392         allocate_struct_function before init_function_start.
393         (cgraph_node::expand): Use push_cfun and pop_cfun.
394         * config/i386/i386.c (ix86_code_end): Call
395         allocate_struct_function before init_function_start.
396         * config/rs6000/rs6000.c (rs6000_code_end): Likewise.
397         * function.c (init_function_start): Move preamble to all
398         callers.
399         * passes.c (do_per_function_toporder): Use push_cfun and pop_cfun.
400         (execute_one_pass): Handle newly added TODO_discard_function.
401         (execute_pass_list_1): Terminate if cfun equals to NULL.
402         (execute_pass_list): Do not push and pop cfun, expect that
403         cfun is set.
404         * tree-pass.h (TODO_discard_function): Define.
405
406 2015-11-04  Mikhail Maltsev  <maltsevm@gmail.com>
407
408         * cfganal.c (inverted_post_order_compute): Remove conditional
409         compilation, use flag_checking.
410         * config.in: Regenerate.
411         * configure: Regenerate.
412         * configure.ac: Remove ENABLE_CHECKING.
413         * genconditions.c: Do not #undef ENABLE_CHECKING.
414         * sese.h (bb_in_region): Comment out broken check.
415         * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa_1): Remove
416         conditional compilation, use flag_checking.
417
418 2015-11-04  Tom de Vries  <tom@codesourcery.com>
419
420         PR tree-optimization/67742
421         * tree-ssa-structalias.c (struct fieldoff): Add restrict_pointed_type
422         field.
423         (push_fields_onto_fieldstack): Handle restrict_pointed_type field.
424         (create_variable_info_for_1): Add and handle handle_param parameter.
425         Add restrict handling.
426         (create_variable_info_for): Call create_variable_info_for_1 with extra
427         arg.
428         (make_param_constraints): Drop restrict_name parameter.  Ignore
429         vi->only_restrict_pointers.
430         (intra_create_variable_infos): Call create_variable_info_for_1 with
431         extra arg.  Remove restrict handling.  Call make_param_constraints with
432         one fewer arg.
433
434 2015-11-04  Tom de Vries  <tom@codesourcery.com>
435
436         * tree-ssa-structalias.c (create_variable_info_for_1): Use decl_type
437         variable.
438
439 2015-11-03  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
440
441         * config/arm/coff.h: Remove.
442
443 2015-11-03  Eric Botcazou  <ebotcazou@adacore.com>
444
445         * gimple-expr.c (useless_type_conversion_p): Reinstate type canonical
446         check for aggregate types and beef up comment for mode check.
447
448 2015-11-03  Richard Biener  <rguenther@suse.de>
449
450         * tree-vect-data-refs.c (vect_analyze_data_refs): Do not collect
451         data references here.
452         * tree-vect-loop.c: Include cgraph.h.
453         (vect_analyze_loop_2): Collect data references here.
454         * tree-vect-slp.c (find_bb_location): Inline ...
455         (vect_slp_bb): ... here.  Renamed from vect_slp_analyze_bb.
456         Factor in vect_slp_transform_bb.
457         (vect_slp_transform_bb): Removed.
458         (vect_slp_analyze_bb_1): Collect data references here.
459         * tree-vectorizer.c (pass_slp_vectorize::execute): Call
460         vect_slp_bb.
461         * tree-vectorizer.h (vect_slp_bb): Declare.
462         (vect_slp_analyze_bb): Remove.
463         (vect_slp_transform_bb): Remove.
464         (find_bb_location): Remove.
465         (vect_analyze_data_refs): Remove stmt count reference parameter.
466
467 2015-11-03  Evgeny Stupachenko  <evstupac@gmail.com>
468
469         * multiple_target.c (create_dispatcher_calls): Add target check
470         on ifunc.
471         (create_target_clone): Change assembler name for versioned declarations.
472
473 2015-11-03  Thomas Schwinge  <thomas@codesourcery.com>
474             Chung-Lin Tang  <cltang@codesourcery.com>
475
476         * builtins.def (DEF_GOMP_BUILTIN): Enable for flag_openacc.
477         * omp-low.c (check_omp_nesting_restrictions): Allow
478         GIMPLE_OMP_ATOMIC_LOAD, GIMPLE_OMP_ATOMIC_STORE inside OpenACC
479         contexts.
480
481 2015-11-03  Bilyan Borisov  <bilyan.borisov@arm.com>
482
483         * config/aarch64/aarch64-simd-builtins.def (fmulx): New.
484         * config/aarch64/aarch64-simd.md (aarch64_fmulx<mode>): New.
485         * config/aarch64/arm_neon.h (vmulx_f32): Rewrite to call fmulx
486         builtin.
487         (vmulxq_f32): Likewise.
488         (vmulx_f64): New.
489         (vmulxq_f64): Rewrite to call fmulx builtin.
490         (vmulxs_f32): Likewise.
491         (vmulxd_f64): Likewise.
492         (vmulx_lane_f32): Remove.
493         * config/aarch64/iterators.md (UNSPEC): Add fmulx.
494
495 2015-11-03  Alan Lawrence  <alan.lawrence@arm.com>
496
497         * config/aarch64/aarch64.md (*movhf_aarch64): Use
498         aarch64_reg_or_fp_zero for second operand.
499
500 2015-11-03  Alexandre Oliva <aoliva@redhat.com>
501
502         * gimple-expr.c: Include hash-set.h and rtl.h.
503         (mark_addressable_queue): New var.
504         (mark_addressable): Factor actual marking into...
505         (mark_addressable_1): ... this.  Queue it up during expand.
506         (mark_addressable_2): New.
507         (flush_mark_addressable_queue): New.
508         * gimple-expr.h (flush_mark_addressable_queue): Declare.
509         * cfgexpand.c: Include gimple-expr.h.
510         (pass_expand::execute): Flush mark_addressable queue.
511
512 2015-11-02  Alexandre Oliva <aoliva@redhat.com>
513
514         * tree-ssa-ifcombine.c (tree_ssa_ifcombine_bb_1): Factor out
515         bb_no_side_effects_p tests...
516         (tree_ssa_ifcombine_bb): ... here.
517
518         PR tree-optimization/68083
519         * tree-ssa-ifcombine.c: Include tree-ssa.h.
520         (bb_no_side_effects_p): Test for undefined uses too.
521         * tree-ssa.c (gimple_uses_undefined_value_p): New.
522         * tree-ssa.h (gimple_uses_undefined_value_p): Declare.
523
524 2015-11-02  Jeff Law <jeff@redhat.com>
525
526         * tree-ssa-threadupdate.c (valid_jump_thread_path): Also detect
527         cases where the loop latch edge is in the middle of an FSM path.
528
529 2015-11-03  Tom de Vries  <tom@codesourcery.com>
530
531         * tree-ssa-structalias.c (make_restrict_var_constraints): Rename to ...
532         (make_param_constraints): ... this.  Add and handle restrict_name
533         parameter.  Handle is_full_var case.
534         (intra_create_variable_infos): Use make_param_constraints.
535
536 2015-11-03  Tom de Vries  <tom@codesourcery.com>
537
538         * tree-ssa-structalias.c (make_restrict_var_constraints): Replace
539         make_copy_constraint call with make_constraint_from call.
540
541 2015-11-02  Andreas Tobler  <andreast@gcc.gnu.org>
542
543         * config/rs6000/freebsd64.h (ASM_SPEC32): Adust spec to handle
544         PIE executables.
545
546 2015-11-02  Richard Sandiford  <richard.sandiford@arm.com>
547
548         * builtins.h (fold_fma): Move to fold-const-call.h.
549         * builtins.c: Include fold-const-call.h.
550         (mathfn_built_in_2): New function, split out from...
551         (mathfn_built_in_1): ...here.
552         (do_real_to_int_conversion, fold_const_builtin_pow)
553         (fold_const_builtin_logb, fold_const_builtin_significand)
554         (fold_const_builtin_load_exponent, do_mpfr_arg1, do_mpfr_arg2)
555         (do_mpfr_arg3, do_mpfr_sincos, do_mpfr_bessel_n, do_mpc_arg1): Delete.
556         (fold_builtin_sincos): Use fold_const_call to handle constants.
557         (fold_builtin_1, fold_builtin_2, fold_builtin_3): Add explicit
558         checks for ERROR_MARK.  Use fold_const_call to handle constant
559         folds for math functions.
560         (fold_fma): Move to fold-const-call.c.
561         * fold-const.c: Include fold-const-call.h.
562         * Makefile.in (OBJS): Add fold-const-call.o.
563         (PLUGIN_HEADERS): Add fold-const-call.h.
564         * realmpfr.h (real_from_mpfr): Allow the format to be specified
565         directly.
566         * realmpfr.c (real_from_mpfr): Likewise.
567         * fold-const-call.h, fold-const-call.c: New files.
568
569 2015-11-02  Julian Brown  <julian@codesourcery.com>
570
571         * config/arm/neon-testgen.ml (emit_epilogue): Remove extraneous
572         brackets and semicolon.
573
574 2015-11-02  Alan Lawrence  <alan.lawrence@arm.com>
575
576         Revert:
577         2015-10-27  Alan Lawrence  <alan.lawrence@arm.com>
578
579         PR tree-optimization/65963
580         * tree-scalar-evolution.c (interpret_rhs_expr): Handle some
581         LSHIFT_EXPRs as equivalent MULT_EXPRs.
582
583 2015-11-02  Thomas Schwinge  <thomas@codesourcery.com>
584
585         PR middle-end/68166
586         * fold-const.c: Include "md5.h".
587
588 2015-11-01  Jeff Law <jeff@redhat.com>
589
590         * vmsdbgout.c: Revert unused header file reduction patch.
591
592         * config/mcore/mcore.c: Include regs.h.
593
594 2015-10-31  Segher Boessenkool  <segher@kernel.crashing.org>
595
596         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Rewrite.
597
598 2015-10-31  Segher Boessenkool  <segher@kernel.crashing.org>
599
600         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Use the
601         same condition for testing whether RS6000_PIC_OFFSET_TABLE_REGNUM is
602         live as for using it elsewhere, for TARGET_MINIMAL_TOC.
603
604 2015-10-31  Markus Trippelsdorf  <markus@trippelsdorf.de>
605
606         * ggc-common.c: Restore needed header for checking=release.
607
608 2015-10-31  Tom de Vries  <tom@codesourcery.com>
609
610         * fold-const.c (fold_unary_loc): Tune POINTER_PLUS_EXPR folding.
611
612 2015-10-31  Tom de Vries  <tom@codesourcery.com>
613
614         * tree-ssa-structalias.c (intra_create_variable_infos): Don't expect
615         existing varinfo for arguments.
616
617 2015-10-31  Tom de Vries  <tom@codesourcery.com>
618
619         * tree-ssa-structalias.c (ipa_pta_execute): Add extra arg to call to
620         create_function_info_for.  Dump constraints generated during
621         create_function_info_for. Move intra_create_variable_infos call and
622         function-return-values-escape bit to ...
623         (create_function_info_for): ... here, and merge
624         intra_create_variable_infos call with argument loop.  Add and handle
625         nonlocal_p parameter.
626
627 2015-10-31  Tom de Vries  <tom@codesourcery.com>
628
629         * tree-ssa-structalias.c (create_function_info_for): Make sure prev_vi
630         updating is alap, and seperated from preceding code.  Make sure
631         insert_vi_for_tree is seperated from surrounding code.
632
633 2015-10-31  Tom de Vries  <tom@codesourcery.com>
634
635         * tree-ssa-structalias.c (ipa_pta_execute): Use make_copy_constraint.
636
637 2015-10-30  Jeff Law <jeff@redhat.com>
638             Nathan Sidwell  <nathan@acm.org>
639
640         * config/nvptx/nvptx.h (HARD_REGNO_NREGS): Avoid warning on unused
641         args.
642         (MOVE_MAX): Set to 8.
643
644 2015-10-30  Cesar Philippidis  <cesar@codesourcery.com>
645
646         * cgraph.c: Include context.h for offloading.
647         * varpool.c: Include context.h and omp-low.h.
648
649 2015-10-30  Anatoly Sokolov  <aesok@post.ru>
650
651         * rtl.h (contains_symbol_ref_p): Declare.
652         (SYMBOL_REF_P): Define.
653         * rtlanal.c (contains_symbol_ref_p: New function.
654         * lra-constraints.c (contains_symbol_ref_p): Remove.
655         * var-tracking.c (contains_symbol_ref): Remove.
656         (track_expr_p): Use contains_symbol_ref_p instead of
657         contains_symbol_ref.
658
659 2015-10-30  Alan Lawrence  <alan.lawrence@arm.com>
660
661         * gimple-fold.c (fold_array_ctor_reference): Move searching code to:
662         * fold-const.c (get_array_ctor_element_at_index): New.
663         (fold): Remove binary-search through CONSTRUCTOR, call previous.
664
665         * fold-const.h (get_array_ctor_element_at_index): New.
666
667 2015-10-30  Evgeny Stupachenko  <evstupac@gmail.com>
668
669         * Makefile.in (OBJS): Add multiple_target.o.
670         * attrib.c (make_attribute): Moved from config/i386/i386.c
671         * config/i386/i386.c (make_attribute): Deleted.
672         * multiple_target.c (create_dispatcher_calls): New.
673         (get_attr_len): Ditto.
674         (get_attr_str): Ditto.
675         (separate_attrs): Ditto.
676         (is_valid_asm_symbol): Ditto.
677         (create_new_asm_name): Ditto.
678         (create_target_clone): Ditto.
679         (expand_target_clones): Ditto.
680         (ipa_target_clone): Ditto.
681         (ipa_dispatcher_calls): Ditto.
682         * passes.def (pass_target_clone): Two new ipa passes.
683         * tree-pass.h (make_pass_target_clone): Ditto.
684         * doc/extend.texi (target_clones): New attribute description.
685
686 2015-10-30  Vladimir Makarov  <vmakarov@redhat.com>
687
688         PR rtl-optimization/68106
689         * lra-remat.c (input_regno_present_p): Process hard regs
690         explicitly present in machine description insns.
691         (call_used_input_regno_present_p): Ditto.
692         (calculate_gen_cands): Ditto.
693         (do_remat): Ditto.
694
695 2015-10-30  Jim Wilson  <jim.wilson@linaro.org>
696
697         * config/arm/neon-testgen.ml: Fix comment typo.
698
699 2015-10-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
700
701         * rtlanal.c (reg_set_p): Expand function comment.
702
703 2015-10-30  Andrew MacLeod  <amacleod@redhat.com>
704
705         * alias.c: Remove unused headers.
706         * asan.c: Likewise.
707         * attribs.c: Likewise.
708         * auto-inc-dec.c: Likewise.
709         * auto-profile.c: Likewise.
710         * bb-reorder.c: Likewise.
711         * bitmap.c: Likewise.
712         * bt-load.c: Likewise.
713         * builtins.c: Likewise.
714         * caller-save.c: Likewise.
715         * calls.c: Likewise.
716         * ccmp.c: Likewise.
717         * cfg.c: Likewise.
718         * cfganal.c: Likewise.
719         * cfgbuild.c: Likewise.
720         * cfgcleanup.c: Likewise.
721         * cfgexpand.c: Likewise.
722         * cfghooks.c: Likewise.
723         * cfgloop.c: Likewise.
724         * cfgloopanal.c: Likewise.
725         * cfgloopmanip.c: Likewise.
726         * cfgrtl.c: Likewise.
727         * cgraph.c: Likewise.
728         * cgraphbuild.c: Likewise.
729         * cgraphclones.c: Likewise.
730         * cgraphunit.c: Likewise.
731         * cilk-common.c: Likewise.
732         * combine-stack-adj.c: Likewise.
733         * combine.c: Likewise.
734         * compare-elim.c: Likewise.
735         * convert.c: Likewise.
736         * coverage.c: Likewise.
737         * cppbuiltin.c: Likewise.
738         * cprop.c: Likewise.
739         * cse.c: Likewise.
740         * cselib.c: Likewise.
741         * data-streamer-in.c: Likewise.
742         * data-streamer-out.c: Likewise.
743         * data-streamer.c: Likewise.
744         * dbxout.c: Likewise.
745         * dce.c: Likewise.
746         * ddg.c: Likewise.
747         * debug.c: Likewise.
748         * df-core.c: Likewise.
749         * df-problems.c: Likewise.
750         * df-scan.c: Likewise.
751         * dfp.c: Likewise.
752         * dojump.c: Likewise.
753         * dominance.c: Likewise.
754         * domwalk.c: Likewise.
755         * double-int.c: Likewise.
756         * dse.c: Likewise.
757         * dumpfile.c: Likewise.
758         * dwarf2asm.c: Likewise.
759         * dwarf2cfi.c: Likewise.
760         * dwarf2out.c: Likewise.
761         * emit-rtl.c: Likewise.
762         * except.c: Likewise.
763         * explow.c: Likewise.
764         * expmed.c: Likewise.
765         * expr.c: Likewise.
766         * final.c: Likewise.
767         * fixed-value.c: Likewise.
768         * fold-const.c: Likewise.
769         * function.c: Likewise.
770         * fwprop.c: Likewise.
771         * gcse.c: Likewise.
772         * generic-match-head.c: Likewise.
773         * ggc-common.c: Likewise.
774         * gimple-builder.c: Likewise.
775         * gimple-expr.c: Likewise.
776         * gimple-fold.c: Likewise.
777         * gimple-iterator.c: Likewise.
778         * gimple-low.c: Likewise.
779         * gimple-match-head.c: Likewise.
780         * gimple-pretty-print.c: Likewise.
781         * gimple-ssa-isolate-paths.c: Likewise.
782         * gimple-ssa-strength-reduction.c: Likewise.
783         * gimple-streamer-in.c: Likewise.
784         * gimple-streamer-out.c: Likewise.
785         * gimple-walk.c: Likewise.
786         * gimple.c: Likewise.
787         * gimplify-me.c: Likewise.
788         * gimplify.c: Likewise.
789         * godump.c: Likewise.
790         * graph.c: Likewise.
791         * graphds.c: Likewise.
792         * haifa-sched.c: Likewise.
793         * hw-doloop.c: Likewise.
794         * ifcvt.c: Likewise.
795         * init-regs.c: Likewise.
796         * internal-fn.c: Likewise.
797         * ipa-chkp.c: Likewise.
798         * ipa-comdats.c: Likewise.
799         * ipa-cp.c: Likewise.
800         * ipa-devirt.c: Likewise.
801         * ipa-icf-gimple.c: Likewise.
802         * ipa-icf.c: Likewise.
803         * ipa-inline-analysis.c: Likewise.
804         * ipa-inline-transform.c: Likewise.
805         * ipa-inline.c: Likewise.
806         * ipa-polymorphic-call.c: Likewise.
807         * ipa-profile.c: Likewise.
808         * ipa-prop.c: Likewise.
809         * ipa-pure-const.c: Likewise.
810         * ipa-ref.c: Likewise.
811         * ipa-reference.c: Likewise.
812         * ipa-split.c: Likewise.
813         * ipa-utils.c: Likewise.
814         * ipa-visibility.c: Likewise.
815         * ipa.c: Likewise.
816         * ira-build.c: Likewise.
817         * ira-color.c: Likewise.
818         * ira-conflicts.c: Likewise.
819         * ira-costs.c: Likewise.
820         * ira-emit.c: Likewise.
821         * ira-lives.c: Likewise.
822         * ira.c: Likewise.
823         * jump.c: Likewise.
824         * langhooks.c: Likewise.
825         * lcm.c: Likewise.
826         * lists.c: Likewise.
827         * loop-doloop.c: Likewise.
828         * loop-init.c: Likewise.
829         * loop-invariant.c: Likewise.
830         * loop-iv.c: Likewise.
831         * loop-unroll.c: Likewise.
832         * lower-subreg.c: Likewise.
833         * lra-assigns.c: Likewise.
834         * lra-coalesce.c: Likewise.
835         * lra-constraints.c: Likewise.
836         * lra-eliminations.c: Likewise.
837         * lra-lives.c: Likewise.
838         * lra-remat.c: Likewise.
839         * lra-spills.c: Likewise.
840         * lra.c: Likewise.
841         * lto-cgraph.c: Likewise.
842         * lto-compress.c: Likewise.
843         * lto-opts.c: Likewise.
844         * lto-section-in.c: Likewise.
845         * lto-section-out.c: Likewise.
846         * lto-streamer-in.c: Likewise.
847         * lto-streamer-out.c: Likewise.
848         * lto-streamer.c: Likewise.
849         * mcf.c: Likewise.
850         * mode-switching.c: Likewise.
851         * modulo-sched.c: Likewise.
852         * optabs.c: Likewise.
853         * opts-global.c: Likewise.
854         * passes.c: Likewise.
855         * plugin.c: Likewise.
856         * postreload-gcse.c: Likewise.
857         * postreload.c: Likewise.
858         * predict.c: Likewise.
859         * print-tree.c: Likewise.
860         * profile.c: Likewise.
861         * real.c: Likewise.
862         * realmpfr.c: Likewise.
863         * recog.c: Likewise.
864         * ree.c: Likewise.
865         * reg-stack.c: Likewise.
866         * regcprop.c: Likewise.
867         * reginfo.c: Likewise.
868         * regrename.c: Likewise.
869         * regstat.c: Likewise.
870         * reload.c: Likewise.
871         * reload1.c: Likewise.
872         * reorg.c: Likewise.
873         * resource.c: Likewise.
874         * rtl-chkp.c: Likewise.
875         * rtl-error.c: Likewise.
876         * rtlanal.c: Likewise.
877         * rtlhooks.c: Likewise.
878         * sanopt.c: Likewise.
879         * sched-deps.c: Likewise.
880         * sched-ebb.c: Likewise.
881         * sched-rgn.c: Likewise.
882         * sdbout.c: Likewise.
883         * sel-sched-dump.c: Likewise.
884         * sel-sched-ir.c: Likewise.
885         * sel-sched.c: Likewise.
886         * sese.c: Likewise.
887         * shrink-wrap.c: Likewise.
888         * simplify-rtx.c: Likewise.
889         * stack-ptr-mod.c: Likewise.
890         * statistics.c: Likewise.
891         * stmt.c: Likewise.
892         * stor-layout.c: Likewise.
893         * store-motion.c: Likewise.
894         * stringpool.c: Likewise.
895         * symtab.c: Likewise.
896         * target-globals.c: Likewise.
897         * targhooks.c: Likewise.
898         * toplev.c: Likewise.
899         * tracer.c: Likewise.
900         * trans-mem.c: Likewise.
901         * tree-affine.c: Likewise.
902         * tree-call-cdce.c: Likewise.
903         * tree-cfg.c: Likewise.
904         * tree-cfgcleanup.c: Likewise.
905         * tree-chkp-opt.c: Likewise.
906         * tree-chkp.c: Likewise.
907         * tree-chrec.c: Likewise.
908         * tree-complex.c: Likewise.
909         * tree-data-ref.c: Likewise.
910         * tree-dfa.c: Likewise.
911         * tree-diagnostic.c: Likewise.
912         * tree-dump.c: Likewise.
913         * tree-eh.c: Likewise.
914         * tree-emutls.c: Likewise.
915         * tree-if-conv.c: Likewise.
916         * tree-inline.c: Likewise.
917         * tree-into-ssa.c: Likewise.
918         * tree-iterator.c: Likewise.
919         * tree-loop-distribution.c: Likewise.
920         * tree-nested.c: Likewise.
921         * tree-nrv.c: Likewise.
922         * tree-object-size.c: Likewise.
923         * tree-outof-ssa.c: Likewise.
924         * tree-parloops.c: Likewise.
925         * tree-phinodes.c: Likewise.
926         * tree-predcom.c: Likewise.
927         * tree-pretty-print.c: Likewise.
928         * tree-profile.c: Likewise.
929         * tree-scalar-evolution.c: Likewise.
930         * tree-sra.c: Likewise.
931         * tree-ssa-address.c: Likewise.
932         * tree-ssa-alias.c: Likewise.
933         * tree-ssa-ccp.c: Likewise.
934         * tree-ssa-coalesce.c: Likewise.
935         * tree-ssa-copy.c: Likewise.
936         * tree-ssa-dce.c: Likewise.
937         * tree-ssa-dse.c: Likewise.
938         * tree-ssa-forwprop.c: Likewise.
939         * tree-ssa-ifcombine.c: Likewise.
940         * tree-ssa-live.c: Likewise.
941         * tree-ssa-loop-ch.c: Likewise.
942         * tree-ssa-loop-im.c: Likewise.
943         * tree-ssa-loop-ivcanon.c: Likewise.
944         * tree-ssa-loop-ivopts.c: Likewise.
945         * tree-ssa-loop-manip.c: Likewise.
946         * tree-ssa-loop-niter.c: Likewise.
947         * tree-ssa-loop-prefetch.c: Likewise.
948         * tree-ssa-loop-unswitch.c: Likewise.
949         * tree-ssa-loop.c: Likewise.
950         * tree-ssa-math-opts.c: Likewise.
951         * tree-ssa-operands.c: Likewise.
952         * tree-ssa-phiopt.c: Likewise.
953         * tree-ssa-phiprop.c: Likewise.
954         * tree-ssa-pre.c: Likewise.
955         * tree-ssa-propagate.c: Likewise.
956         * tree-ssa-reassoc.c: Likewise.
957         * tree-ssa-scopedtables.c: Likewise.
958         * tree-ssa-sink.c: Likewise.
959         * tree-ssa-strlen.c: Likewise.
960         * tree-ssa-structalias.c: Likewise.
961         * tree-ssa-tail-merge.c: Likewise.
962         * tree-ssa-ter.c: Likewise.
963         * tree-ssa-threadupdate.c: Likewise.
964         * tree-ssa-uncprop.c: Likewise.
965         * tree-ssa-uninit.c: Likewise.
966         * tree-ssa.c: Likewise.
967         * tree-ssanames.c: Likewise.
968         * tree-stdarg.c: Likewise.
969         * tree-streamer-in.c: Likewise.
970         * tree-streamer-out.c: Likewise.
971         * tree-streamer.c: Likewise.
972         * tree-switch-conversion.c: Likewise.
973         * tree-tailcall.c: Likewise.
974         * tree-vect-data-refs.c: Likewise.
975         * tree-vect-generic.c: Likewise.
976         * tree-vect-loop-manip.c: Likewise.
977         * tree-vect-loop.c: Likewise.
978         * tree-vect-patterns.c: Likewise.
979         * tree-vect-slp.c: Likewise.
980         * tree-vect-stmts.c: Likewise.
981         * tree-vectorizer.c: Likewise.
982         * tree-vrp.c: Likewise.
983         * tree.c: Likewise.
984         * tsan.c: Likewise.
985         * ubsan.c: Likewise.
986         * value-prof.c: Likewise.
987         * var-tracking.c: Likewise.
988         * varasm.c: Likewise.
989         * varpool.c: Likewise.
990         * vmsdbgout.c: Likewise.
991         * vtable-verify.c: Likewise.
992         * web.c: Likewise.
993         * wide-int-print.cc: Likewise.
994         * wide-int.cc: Likewise.
995         * xcoffout.c: Likewise.
996
997 2015-10-30  James Greenhalgh  <james.greenhalgh@arm.com>
998
999         * doc/invoke.texi (fdump-rtl-@var{pass}): Clarify relationship
1000         between pass numbering and execution order.
1001
1002 2015-10-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1003
1004         * config/arm/arm.c (cortex_a9_sched_adjust_cost): Use reg_set_p to
1005         check for dependencies.
1006
1007 2015-10-30  Richard Sandiford  <richard.sandiford@arm.com>
1008
1009         * tree-ssa-math-opts.c (pass_cse_sincos::execute): Don't free
1010         CDI_DOMINATORS.
1011
1012 2015-10-30  Richard Sandiford  <richard.sandiford@arm.com>
1013
1014         * real.h (format_helper): New.
1015         (real_convert, exact_real_truncate, real_from_string3, real_to_target)
1016         (real_from_target, real_nan, real_2expN, real_value_truncate)
1017         (significand_size, real_from_string2, exact_real_inverse)
1018         (exact_real_inverse, real_powi, real_trunc, real_floor, real_ceil)
1019         (real_round, real_isinteger, real_from_integer): Replace
1020         machine_mode arguments with format_helper arguments.
1021         * real.c (exact_real_inverse, real_from_string2, real_from_string3)
1022         (real_from_integer, real_nan, real_2expN, real_convert)
1023         (real_value_truncate, exact_real_truncate, real_to_target)
1024         (real_from_target, significand_size, real_powi, real_trunc)
1025         (real_floor, real_ceil, real_round, real_isinteger): Replace
1026         machine_mode arguments with format_helper arguments.
1027         (real_to_target_fmt, real_from_target_fmt): Delete.
1028         * dfp.h (decimal_real_convert): Replace mode argument with real_format.
1029         * dfp.c (decimal_to_binary, decimal_real_convert): Replace mode
1030         argument with real_format.
1031         * builtins.c (do_real_to_int_conversion): Update type of fn argument.
1032
1033 2015-10-30  Richard Sandiford  <richard.sandiford@arm.com>
1034
1035         * fixed-value.c (check_real_for_fixed_mode, fixed_from_string)
1036         (fixed_to_decimal, fixed_convert_from_real)
1037         (real_convert_from_fixed): Fix mode arguments to real_2expN.
1038
1039 2015-10-30  Richard Sandiford  <richard.sandiford@arm.com>
1040
1041         * real.h (REAL_MODE_FORMAT): Abort if the mode isn't a
1042         SCALAR_FLOAT_MODE_P.
1043
1044 2015-10-30  Alan Lawrence  <alan.lawrence@arm.com>
1045
1046         * tree-sra.c (scalarizable_type_p): Comment variable-length arrays.
1047         (completely_scalarize): Comment zero-length arrays.
1048         (get_access_replacement): Correct comment re. precondition.
1049
1050 2015-10-30  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
1051
1052         * config/i386/i386.c (get_builtin_code_for_version): Set priority
1053         for PROCESSOR_ZNVER1.
1054         (enum processor_model): Add M_AMDFAM17H_znver1.
1055         (struct arch_names_table): Likewise.
1056         * doc/extend.texi: ADD znver1.
1057
1058 2015-10-30  Richard Biener  <rguenther@suse.de>
1059
1060         * gimple-fold.c (fold_gimple_assign): Do not dispatch to
1061         fold () on single RHSs.  Allow CONSTRUCTORS with trailing
1062         zeros to be folded to VECTOR_CSTs.
1063         * tree.c (build_vector_from_ctor): Handle VECTOR_CST elements.
1064         * fold-const.c (fold): Use build_vector_from_ctor.
1065
1066 2015-10-30  Evandro Menezes  <e.menezes@samsung.com>
1067
1068         * config/aarch64/aarch64.md (*movhf_aarch64): Change the type of
1069         "mov %0.h[0], %1.h[0] to "neon_move".
1070         (*movtf_aarch64): Change the type of "fmov %s0, wzr" to "f_mcr".
1071         (*cmov<mode>_insn): Change the types of "mov %<w>0, {-1,1}" to
1072         "mov_imm".
1073         (*cmovsi_insn_uxtw): Likewise.
1074
1075 2015-10-30  Tom de Vries  <tom@codesourcery.com>
1076
1077         * tree-ssa-structalias.c (ipa_pta_execute): Declare variable from as
1078         unsigned, and initialize, and use initial value instead of hardcoded
1079         constant.  Add generic constraints dumping section.  Don't dump global
1080         initializers constraints dumping section if empty.  Don't update
1081         variable from if unused.
1082
1083 2015-10-29  Mikhail Maltsev  <maltsevm@gmail.com>
1084
1085         * config/alpha/alpha.c (alpha_function_arg): Use gcc_checking_assert,
1086         flag_checking and/or CHECKING_P to eliminate conditional compilation
1087         on ENABLE_CHECKING.
1088         * config/arm/arm.c (arm_unwind_emit_sequence): Likewise.
1089         * config/bfin/bfin.c (hwloop_optimize): Likewise.
1090         * config/i386/i386.c (ix86_print_operand_address): Likewise.
1091         (output_387_binary_op): Likewise.
1092         * config/ia64/ia64.c (ia64_sched_init, bundling): Likewise.
1093         * config/m68k/m68k.c (m68k_sched_md_init_global): Likewise.
1094         * config/rs6000/rs6000.c (htm_expand_builtin, rs6000_emit_prologue):
1095         Likewise.
1096         * config/rs6000/rs6000.h: Likewise.
1097         * config/visium/visium.c (visium_setup_incoming_varargs): Likewise.
1098
1099 2015-10-29  Kaz Kojima  <kkojima@gcc.gnu.org>
1100
1101         * config/sh/sh.opt (mfdpic): Add missing period.
1102
1103 2015-08-29  Anatoly Sokolov  <aesok@post.ru>
1104
1105         * config/mcore/mcore.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
1106         BASE_REGISTER_RTX_P, INDEX_REGISTER_RTX_P,
1107         GO_IF_LEGITIMATE_ADDRESS): Remove macros.
1108         * config/mcore/mcore.c (mcore_reg_ok_for_base_p,
1109         mcore_base_register_rtx_p, mcore_legitimate_index_p,
1110         mcore_legitimate_address_p): New functions.
1111         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
1112
1113 2015-10-29  Jeff Law  <law@redhat.com>
1114
1115         * tree-ssa-scopedtables.h (const_and_copies): Remove invalidate
1116         method.
1117         * tree-ssa-scopedtables.h (const_and_copies::invalidate): Remove.
1118         * tree-ssa-threadedge.c
1119         (record_temporary_equivalences_from_stmts_at_dest): Remove
1120         backedge_seen argument and associated code which invalidated
1121         equivalences based on the value of that argument.
1122         (thread_through_normal_block): Corresponding changes.
1123
1124 2015-10-29  Segher Boessenkool  <segher@kernel.crashing.org>
1125
1126         * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Move this
1127         function earlier in the file.
1128         (first_reg_to_save): Use rs6000_reg_live_or_pic_offset_p instead of
1129         df_regs_ever_live_p.
1130
1131 2015-10-29  Segher Boessenkool  <segher@kernel.crashing.org>
1132
1133         * lra-constraints.c (process_address_1): Handle (mem:BLK (scratch))
1134         by ignoring it.
1135
1136 2015-10-29  Richard Henderson  <rth@redhat.com>
1137
1138         PR target/68124
1139         PR rtl-opt/67609
1140         * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
1141         sse check to the exact conditions of PR 67609.
1142
1143 2015-10-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
1144
1145         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Split libfunc
1146         setup into 3 functions: init_float128_ibm, init_float128_ieee, and
1147         rs6000_init_libfuncs. If -mfloat128, add IFmode functions for all
1148         of the traditional names that TFmode uses for handling IEEE
1149         extended double. If -mfloat128, add KFmode functions for all of
1150         the emulation functions. If -mabi=ieeelongdouble and -mfloat128,
1151         make TFmode use the same emulation functions as KFmode.
1152         (init_float128_ibm): Likewise.
1153         (init_float128_ieee): Likewise.
1154         (rs6000_generate_compare): For IEEE 128-bit floating point
1155         comparisons, call the unordered comparison function instead of the
1156         ordered comparison function.
1157         (rs6000_expand_float128_convert): Deal with operands that are
1158         memory operands. Restructure the code to use a switch statement on
1159         the mode. Add support for TFmode defaulting to either IBM extended
1160         double or IEEE 128-bit floating point. If the underlying types are
1161         the same, use a move instead of a conversion function.
1162         (TARGET_C_MODE_FOR_SUFFIX): Define 'q' and 'Q' as the suffix to
1163         use for IEEE 128-bit floating point constants with -mfloat128.
1164         (rs6000_c_mode_for_suffix): Likewise.
1165         (TARGET_INVALID_BINARY_OP): Do not allow inter-mixing of IEEE
1166         128-bit floating point with IBM extended double floating point.
1167         (rs6000_invalid_binary_op): Likewise.
1168         (rs6000_gen_le_vsx_permute): On little endian systems generate a
1169         ROTATE insn instead of VEC_SELECT for IEEE 128-bit floating point
1170         types that can go in vector registers.
1171         (chain_contains_only_swaps): Properly swap IEEE 128-bit floating
1172         point types that can go in vector registers on little endian
1173         PowerPC systems.
1174         (mark_swaps_for_removal): Likewise.
1175         (rs6000_analyze_swaps): Likewise.
1176         (rs6000_mangle_type): Use U10__float128 for IEEE 128-bit floating point.
1177
1178         * config/rs6000/rs6000.md (FLOAT128_SFDFTF): Delete iterator,
1179         rework IEEE 128-bit floating point insns to deal with TFmode being
1180         either IBM extended double or IEEE 128-bit floating point.
1181         (IFKF): Likewise.
1182         (IBM128): Update iterator to add condition that the mode is IBM
1183         extended double.
1184         (IEEE128): New iterator for IEEE 128-bit floating point.
1185         (TFIFKF): Rename TFIFKF iterator to FLOAT128.
1186         (FLOAT128): Likewise.
1187         (signbit<mode>2): FLOAT128_IBM_P condition test moved into IBM128
1188         iterator.
1189         (neg<mode>2): Replace TFIFKF iterator with FLOAT128. Add support
1190         for TFmode being IEEE 128-bit floating point. Use IEEE128 iterator
1191         instead of hard coding TFmode or KFmode.
1192         (negtf2_internal): Likewise.
1193         (neg<mode>2_internal): Likewise.
1194         (abs<mode>2): Likewise.
1195         (abstf2_internal): Likewise.
1196         (abs<mode>2_internal): Likewise.
1197         (ieee_128bit_neg<mode>2): Likewise.
1198         (ieee_128bit_neg<mode>2_internal): Likewise.
1199         (ieee_128bit_abs<mode>2): Likewise.
1200         (ieee_128bit_abs<mode>2_internal): Likewise.
1201         (ieee_128bit_nabs<mode>2): Likewise.
1202         (ieee_128bit_nabs<mode>2_internal): Likewise.
1203         (extendiftf2): Add explicit conversions between 128-bit floating
1204         point types. Drop the old conversions that had become unwieldy.
1205         (extend<FLOAT128_SFDFTF:mode><IFKF:mode>2): Likewise.
1206         (extendifkf2): Likewise.
1207         (trunc<IFKF:mode><FLOAT128_SFDFTF:mode>2): Likewise.
1208         (extendtfkf2): Likewise.
1209         (fix_trunc<IFKF:mode><SDI:mode>2): Likewise.
1210         (trunciftf2): Likewise.
1211         (fixuns_trunc<IFKF:mode><SDI:mode>2): Likewise.
1212         (truncifkf2): Likewise.
1213         (float<SDI:mode><IFKF:mode>2): Likewise.
1214         (trunckftf2): Likewise.
1215         (floatuns<SDI:mode><IFKF:mode>2): Likewise.
1216         (trunctfif2): Likewise.
1217         (FP iterator): Allow TFmode to be IEEE 128-bit floating point.
1218         (extenddftf2): Rework 128-bit floating point conversions to
1219         properly handle -mabi=ieeelongdouble. Merge IFmode, TFmode, and
1220         KFmode expanders into one function.
1221         (extenddf<mode>2): Likewise.
1222         (extenddftf2_fprs): Likewise.
1223         (extenddf<mode>2_fprs): Likewise.
1224         (extenddftf2_vsx): Likewise.
1225         (extenddf<mode>2_vsx): Likewise.
1226         (extendsftf2): Likewise.
1227         (extendsf<mode>2): Likewise.
1228         (trunctfdf2): Likewise.
1229         (trunc<mode>df2): Likewise.
1230         (trunctfdf2_internal1): Likewise.
1231         (trunc<mode>df2_internal1): Likewise.
1232         (trunctfdf2_internal2): Likewise.
1233         (trunc<mode>df2_internal2): Likewise.
1234         (trunctfsf2): Likewise.
1235         (trunc<mode>sf2): Likewise.
1236         (trunctfsf2_fprs): Likewise.
1237         (trunc<mode>sf2_fprs): Likewise.
1238         (floatsit2f): Likewise.
1239         (floatsi<mode>2): Likewise.
1240         (fix_trunc_helper): Likewise.
1241         (fix_trunc_helper<mode>): Likewise.
1242         (fix_trunctfsi2): Likewise.
1243         (fix_trunc<mode>si2): Likewise.
1244         (fix_trunctfsi2_fprs): Likewise.
1245         (fix_trunc<mode>si2_fprs): Likewise.
1246         (fix_trunctfsi2_internal): Likewise.
1247         (fix_trunc<mode>si2_internal): Likewise.
1248         (fix_trunctfdi2): Likewise.
1249         (fix_trunc<mode>di2): Likewise.
1250         (fixuns_trunctf<mode>2): Likewise.
1251         (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
1252         (floatditf2): Likewise.
1253         (floatdi<mode>2): Likewise.
1254         (floatuns<mode>tf2): Likewise.
1255         (floatuns<SDI:mode><IEEE128:mode>): Likewise.
1256         (cmptf_internal1): Use a mode iterator to add support for both
1257         types (IFmode, TFmode) that support IBM extended double.
1258         (cmp<mode>_internal1): Likewise.
1259         (cmptf_internal2): Likewise.
1260         (cmp<mode>_internal2): Likewise.
1261
1262         * doc/extend.texi (Floating Types): Document __ibm128 and
1263         __float128 on PowerPC.
1264
1265         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
1266         -mfloat128 and -mno-float128.
1267
1268 2015-10-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
1269
1270         * config/rs6000/rs6000.h (ALTIVEC_VECTOR_MODE): Add IEEE 128-bit
1271         floating point modes that can go in vector registers.
1272         (MODES_TIEABLE_P): Move tests for vector modes before tests for
1273         scalar floating point, so that IEEE 128-bit floating point that
1274         can go in vector registers bind with vectors and not FP.
1275         (struct rs6000_args): Add libcall field.
1276
1277         * config/rs6000/rs6000.opt (-mfloat128-*): Delete -mfloat128-none
1278         and -mfloat128-software switches.  Replace them with a binary
1279         -mfloat128 switch.
1280         (-mfloat128): Likewise.
1281
1282         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Allow
1283         128-bit floating point types in GPRs, even if the appropriate
1284         option enabling the type was not used.
1285         (rs6000_debug_reg_global): Remove -mfloat128-{software,none}
1286         debugging.
1287         (rs6000_setup_reg_addr_masks): Do not allow pre-increment and
1288         pre-decrement on IEEE 128-bit floating point values.
1289         (rs6000_init_hard_regno_mode_ok): Change test for whether TFmode
1290         is IEEE 128-bit floating point.
1291         (rs6000_init_hard_regno_mode_ok): Add reload handlers for IEEE
1292         128-bit floating point types that can go in vector registers.
1293         (rs6000_option_override_internal): Change -mfloat128-none and
1294         -mfloat128-software to -mfloat128, and move code to be near other
1295         VSX option handling.
1296         (rs6000_option_override_internal): Disable -mfloat128 if we don't
1297         have the Altivec ABI.
1298         (rs6000_init_builtins): Don't make TFmode use either IFmode or
1299         KFmode floating point nodes. Instead, have three separate nodes.
1300         (rs6000_scalar_mode_supported_p): Add support for IFmode to allow
1301         eventually moving the long double default to IEEE 128-bit floating
1302         point.
1303         (rs6000_opt_masks): Add -mfloat128.
1304         (struct rs6000_opt_var): Fix typo in comment.
1305         (init_cumulative_args): Initialize libcall field in
1306         CUMULATIVE_ARGS.
1307         (rs6000_function_arg): Treat library functions as if they had
1308         prototypes to prevent IEEE 128-bit support functions from passing
1309         arguments in both GPRs and vector registers.
1310         (rs6000_arg_partial_bytes): Likewise.
1311
1312         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add -mfloat128 as
1313         an option that can be turned on via -mcpu=<xxx>.
1314
1315         * config/rs6000/rs6000-opts.h (enum float128_type_t): Delete, no
1316         longer used.
1317
1318         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
1319         __FLOAT128__ if -mfloat128. Define __LONG_DOUBLE_IEEE128__ if long
1320         double is IEEE 128-bit. Define __LONG_DOUBLE_IBM128__ if long
1321         double is IBM extended double.
1322
1323         * config/rs6000/predicates.md (reg_or_indexed_operand): Allow
1324         SUBREGs.
1325
1326 2015-10-29  Mikhail Maltsev  <maltsevm@gmail.com>
1327
1328         * genautomata.c: Use CHECKING_P instead of ENABLE_CHECKING.
1329         * genconditions.c: Define CHECKING_P in the generated code.
1330         * genextract.c: Use flag_checking in insn_extract.
1331         * gengtype.c (main): Remove conditional compilation.
1332         * gengtype.h: Likewise.
1333
1334 2015-10-29  Jeff Law  <law@redhat.com>
1335
1336         PR tree-optimization/67892
1337         * tree-ssa-threadedge.c (simplify_controL_stmt_condition): Fix typo
1338         in comment.
1339         (thread_through_normal_block): If we have seen a backedge, then
1340         do nothing.  No longer call find_jump_threads_backwards here.
1341         (thread_across_edge): Use find_jump_threads_backwards to find
1342         jump threads if the old style threader was not successful.
1343         * tree-ssa-threadbackward.c (get_gimple_control_stmt): Use
1344         gsi_last_nondebug_bb.  Return NULL if the block does not end
1345         with a control statement.
1346         (find_jump_threads_backwards): Setup code moved here from
1347         tree-ssa-threadedge.c::thread_through_normal_block.  Accept
1348         single edge argument instead of name & block.
1349         * tree-ssa-threadbackward.h (find_jump_threads_backwards): Update
1350         prototype.
1351
1352 2015-10-29  Tom de Vries  <tom@codesourcery.com>
1353
1354         * fold-const.c (fold_unary_loc): Remove folding inhibition for restrict
1355         types.
1356
1357 2015-10-29  Nathan Sidwell  <nathan@codesourcery.com>
1358
1359         * omp-low.c (lower_omp_target): Remove unreachable code & merge
1360         ifs.
1361
1362 2015-10-29  Marc Glisse  <marc.glisse@inria.fr>
1363
1364         * match.pd (X-(X/Y)*Y): Properly handle conversions and commutativity.
1365
1366 2015-10-29  Richard Sandiford  <richard.sandiford@arm.com>
1367
1368         * tree-call-cdce.c (shrink_wrap_one_built_in_call): Remove
1369         guard_bb0 and use guard_bb throughout.
1370
1371 2015-10-29  Richard Sandiford  <richard.sandiford@arm.com>
1372
1373         * tree-call-cdce.c (shrink_wrap_one_built_in_call): Remove
1374         unnecessary label.
1375
1376 2015-10-29  Richard Biener  <rguenther@suse.de>
1377
1378         PR middle-end/68142
1379         * fold-const.c (extract_muldiv_1): Avoid introducing undefined
1380         overflow.
1381
1382 2015-10-29  Andrew MacLeod  <amacleod@redhat.com>
1383
1384         * alias.c: Reorder #include statements and remove duplicates.
1385         * asan.c: Likewise.
1386         * attribs.c: Likewise.
1387         * auto-inc-dec.c: Likewise.
1388         * auto-profile.c: Likewise.
1389         * bb-reorder.c: Likewise.
1390         * bt-load.c: Likewise.
1391         * builtins.c: Likewise.
1392         * caller-save.c: Likewise.
1393         * calls.c: Likewise.
1394         * ccmp.c: Likewise.
1395         * cfg.c: Likewise.
1396         * cfganal.c: Likewise.
1397         * cfgbuild.c: Likewise.
1398         * cfgcleanup.c: Likewise.
1399         * cfgexpand.c: Likewise.
1400         * cfghooks.c: Likewise.
1401         * cfgloop.c: Likewise.
1402         * cfgloopanal.c: Likewise.
1403         * cfgloopmanip.c: Likewise.
1404         * cfgrtl.c: Likewise.
1405         * cgraph.c: Likewise.
1406         * cgraphbuild.c: Likewise.
1407         * cgraphclones.c: Likewise.
1408         * cgraphunit.c: Likewise.
1409         * cilk-common.c: Likewise.
1410         * combine-stack-adj.c: Likewise.
1411         * combine.c: Likewise.
1412         * compare-elim.c: Likewise.
1413         * convert.c: Likewise.
1414         * coverage.c: Likewise.
1415         * cppbuiltin.c: Likewise.
1416         * cprop.c: Likewise.
1417         * cse.c: Likewise.
1418         * cselib.c: Likewise.
1419         * data-streamer-in.c: Likewise.
1420         * data-streamer-out.c: Likewise.
1421         * data-streamer.c: Likewise.
1422         * dbxout.c: Likewise.
1423         * dce.c: Likewise.
1424         * ddg.c: Likewise.
1425         * debug.c: Likewise.
1426         * df-core.c: Likewise.
1427         * df-problems.c: Likewise.
1428         * df-scan.c: Likewise.
1429         * dfp.c: Likewise.
1430         * dojump.c: Likewise.
1431         * dominance.c: Likewise.
1432         * double-int.c: Likewise.
1433         * dse.c: Likewise.
1434         * dumpfile.c: Likewise.
1435         * dwarf2asm.c: Likewise.
1436         * dwarf2cfi.c: Likewise.
1437         * dwarf2out.c: Likewise.
1438         * emit-rtl.c: Likewise.
1439         * except.c: Likewise.
1440         * explow.c: Likewise.
1441         * expmed.c: Likewise.
1442         * expr.c: Likewise.
1443         * final.c: Likewise.
1444         * fixed-value.c: Likewise.
1445         * fold-const.c: Likewise.
1446         * function.c: Likewise.
1447         * fwprop.c: Likewise.
1448         * gcse.c: Likewise.
1449         * generic-match-head.c: Likewise.
1450         * ggc-common.c: Likewise.
1451         * gimple-builder.c: Likewise.
1452         * gimple-expr.c: Likewise.
1453         * gimple-fold.c: Likewise.
1454         * gimple-iterator.c: Likewise.
1455         * gimple-low.c: Likewise.
1456         * gimple-match-head.c: Likewise.
1457         * gimple-pretty-print.c: Likewise.
1458         * gimple-ssa-isolate-paths.c: Likewise.
1459         * gimple-ssa-strength-reduction.c: Likewise.
1460         * gimple-streamer-in.c: Likewise.
1461         * gimple-streamer-out.c: Likewise.
1462         * gimple-walk.c: Likewise.
1463         * gimple.c: Likewise.
1464         * gimplify-me.c: Likewise.
1465         * gimplify.c: Likewise.
1466         * godump.c: Likewise.
1467         * graph.c: Likewise.
1468         * graphite-poly.c: Likewise.
1469         * haifa-sched.c: Likewise.
1470         * hw-doloop.c: Likewise.
1471         * ifcvt.c: Likewise.
1472         * incpath.c: Likewise.
1473         * init-regs.c: Likewise.
1474         * internal-fn.c: Likewise.
1475         * ipa-chkp.c: Likewise.
1476         * ipa-comdats.c: Likewise.
1477         * ipa-cp.c: Likewise.
1478         * ipa-devirt.c: Likewise.
1479         * ipa-icf-gimple.c: Likewise.
1480         * ipa-icf.c: Likewise.
1481         * ipa-inline-analysis.c: Likewise.
1482         * ipa-inline-transform.c: Likewise.
1483         * ipa-inline.c: Likewise.
1484         * ipa-polymorphic-call.c: Likewise.
1485         * ipa-profile.c: Likewise.
1486         * ipa-prop.c: Likewise.
1487         * ipa-pure-const.c: Likewise.
1488         * ipa-ref.c: Likewise.
1489         * ipa-reference.c: Likewise.
1490         * ipa-split.c: Likewise.
1491         * ipa-utils.c: Likewise.
1492         * ipa-visibility.c: Likewise.
1493         * ipa.c: Likewise.
1494         * ira-build.c: Likewise.
1495         * ira-color.c: Likewise.
1496         * ira-conflicts.c: Likewise.
1497         * ira-costs.c: Likewise.
1498         * ira-emit.c: Likewise.
1499         * ira-lives.c: Likewise.
1500         * ira.c: Likewise.
1501         * jump.c: Likewise.
1502         * langhooks.c: Likewise.
1503         * lcm.c: Likewise.
1504         * lists.c: Likewise.
1505         * loop-doloop.c: Likewise.
1506         * loop-init.c: Likewise.
1507         * loop-invariant.c: Likewise.
1508         * loop-iv.c: Likewise.
1509         * loop-unroll.c: Likewise.
1510         * lower-subreg.c: Likewise.
1511         * lra-assigns.c: Likewise.
1512         * lra-coalesce.c: Likewise.
1513         * lra-constraints.c: Likewise.
1514         * lra-eliminations.c: Likewise.
1515         * lra-lives.c: Likewise.
1516         * lra-remat.c: Likewise.
1517         * lra-spills.c: Likewise.
1518         * lra.c: Likewise.
1519         * lto-cgraph.c: Likewise.
1520         * lto-compress.c: Likewise.
1521         * lto-opts.c: Likewise.
1522         * lto-section-in.c: Likewise.
1523         * lto-section-out.c: Likewise.
1524         * lto-streamer-in.c: Likewise.
1525         * lto-streamer-out.c: Likewise.
1526         * lto-streamer.c: Likewise.
1527         * mode-switching.c: Likewise.
1528         * modulo-sched.c: Likewise.
1529         * omp-low.c: Likewise.
1530         * optabs.c: Likewise.
1531         * opts-global.c: Likewise.
1532         * passes.c: Likewise.
1533         * plugin.c: Likewise.
1534         * postreload-gcse.c: Likewise.
1535         * postreload.c: Likewise.
1536         * predict.c: Likewise.
1537         * print-tree.c: Likewise.
1538         * profile.c: Likewise.
1539         * real.c: Likewise.
1540         * realmpfr.c: Likewise.
1541         * recog.c: Likewise.
1542         * ree.c: Likewise.
1543         * reg-stack.c: Likewise.
1544         * regcprop.c: Likewise.
1545         * reginfo.c: Likewise.
1546         * regrename.c: Likewise.
1547         * regstat.c: Likewise.
1548         * reload.c: Likewise.
1549         * reload1.c: Likewise.
1550         * reorg.c: Likewise.
1551         * resource.c: Likewise.
1552         * rtl-chkp.c: Likewise.
1553         * rtl-error.c: Likewise.
1554         * rtlanal.c: Likewise.
1555         * rtlhooks.c: Likewise.
1556         * sanopt.c: Likewise.
1557         * sched-deps.c: Likewise.
1558         * sched-ebb.c: Likewise.
1559         * sched-rgn.c: Likewise.
1560         * sese.c: Likewise.
1561         * shrink-wrap.c: Likewise.
1562         * simplify-rtx.c: Likewise.
1563         * stack-ptr-mod.c: Likewise.
1564         * statistics.c: Likewise.
1565         * stmt.c: Likewise.
1566         * stor-layout.c: Likewise.
1567         * store-motion.c: Likewise.
1568         * stringpool.c: Likewise.
1569         * symtab.c: Likewise.
1570         * target-globals.c: Likewise.
1571         * targhooks.c: Likewise.
1572         * toplev.c: Likewise.
1573         * tracer.c: Likewise.
1574         * trans-mem.c: Likewise.
1575         * tree-affine.c: Likewise.
1576         * tree-call-cdce.c: Likewise.
1577         * tree-cfg.c: Likewise.
1578         * tree-cfgcleanup.c: Likewise.
1579         * tree-chkp-opt.c: Likewise.
1580         * tree-chkp.c: Likewise.
1581         * tree-chrec.c: Likewise.
1582         * tree-complex.c: Likewise.
1583         * tree-data-ref.c: Likewise.
1584         * tree-dfa.c: Likewise.
1585         * tree-diagnostic.c: Likewise.
1586         * tree-dump.c: Likewise.
1587         * tree-eh.c: Likewise.
1588         * tree-emutls.c: Likewise.
1589         * tree-if-conv.c: Likewise.
1590         * tree-inline.c: Likewise.
1591         * tree-into-ssa.c: Likewise.
1592         * tree-iterator.c: Likewise.
1593         * tree-loop-distribution.c: Likewise.
1594         * tree-nested.c: Likewise.
1595         * tree-nrv.c: Likewise.
1596         * tree-object-size.c: Likewise.
1597         * tree-outof-ssa.c: Likewise.
1598         * tree-parloops.c: Likewise.
1599         * tree-phinodes.c: Likewise.
1600         * tree-predcom.c: Likewise.
1601         * tree-pretty-print.c: Likewise.
1602         * tree-profile.c: Likewise.
1603         * tree-scalar-evolution.c: Likewise.
1604         * tree-sra.c: Likewise.
1605         * tree-ssa-address.c: Likewise.
1606         * tree-ssa-alias.c: Likewise.
1607         * tree-ssa-ccp.c: Likewise.
1608         * tree-ssa-coalesce.c: Likewise.
1609         * tree-ssa-copy.c: Likewise.
1610         * tree-ssa-dce.c: Likewise.
1611         * tree-ssa-dom.c: Likewise.
1612         * tree-ssa-dse.c: Likewise.
1613         * tree-ssa-forwprop.c: Likewise.
1614         * tree-ssa-ifcombine.c: Likewise.
1615         * tree-ssa-live.c: Likewise.
1616         * tree-ssa-loop-ch.c: Likewise.
1617         * tree-ssa-loop-im.c: Likewise.
1618         * tree-ssa-loop-ivcanon.c: Likewise.
1619         * tree-ssa-loop-ivopts.c: Likewise.
1620         * tree-ssa-loop-manip.c: Likewise.
1621         * tree-ssa-loop-niter.c: Likewise.
1622         * tree-ssa-loop-prefetch.c: Likewise.
1623         * tree-ssa-loop-unswitch.c: Likewise.
1624         * tree-ssa-loop.c: Likewise.
1625         * tree-ssa-math-opts.c: Likewise.
1626         * tree-ssa-operands.c: Likewise.
1627         * tree-ssa-phiopt.c: Likewise.
1628         * tree-ssa-phiprop.c: Likewise.
1629         * tree-ssa-pre.c: Likewise.
1630         * tree-ssa-propagate.c: Likewise.
1631         * tree-ssa-reassoc.c: Likewise.
1632         * tree-ssa-sccvn.c: Likewise.
1633         * tree-ssa-scopedtables.c: Likewise.
1634         * tree-ssa-sink.c: Likewise.
1635         * tree-ssa-strlen.c: Likewise.
1636         * tree-ssa-structalias.c: Likewise.
1637         * tree-ssa-tail-merge.c: Likewise.
1638         * tree-ssa-ter.c: Likewise.
1639         * tree-ssa-threadedge.c: Likewise.
1640         * tree-ssa-threadupdate.c: Likewise.
1641         * tree-ssa-uncprop.c: Likewise.
1642         * tree-ssa-uninit.c: Likewise.
1643         * tree-ssa.c: Likewise.
1644         * tree-ssanames.c: Likewise.
1645         * tree-stdarg.c: Likewise.
1646         * tree-streamer-in.c: Likewise.
1647         * tree-streamer-out.c: Likewise.
1648         * tree-streamer.c: Likewise.
1649         * tree-switch-conversion.c: Likewise.
1650         * tree-tailcall.c: Likewise.
1651         * tree-vect-data-refs.c: Likewise.
1652         * tree-vect-generic.c: Likewise.
1653         * tree-vect-loop-manip.c: Likewise.
1654         * tree-vect-loop.c: Likewise.
1655         * tree-vect-patterns.c: Likewise.
1656         * tree-vect-slp.c: Likewise.
1657         * tree-vect-stmts.c: Likewise.
1658         * tree-vectorizer.c: Likewise.
1659         * tree-vrp.c: Likewise.
1660         * tree.c: Likewise.
1661         * tsan.c: Likewise.
1662         * ubsan.c: Likewise.
1663         * value-prof.c: Likewise.
1664         * var-tracking.c: Likewise.
1665         * varasm.c: Likewise.
1666         * varpool.c: Likewise.
1667         * vtable-verify.c: Likewise.
1668         * web.c: Likewise.
1669         * wide-int-print.cc: Likewise.
1670         * wide-int.cc: Likewise.
1671         * xcoffout.c: Likewise.
1672
1673 2015-10-29  H.J. Lu  <hongjiu.lu@intel.com>
1674
1675         * Makefile.in (NO_PIE_CFLAGS): New.
1676         (NO_PIE_FLAG): Likewise.
1677         (NO_PIE_CFLAGS_FOR_BUILD): Likewise.
1678         (NO_PIE_FLAG_FOR_BUILD): Likewise.
1679         (BUILD_NO_PIE_CFLAGS): Likewise.
1680         (BUILD_NO_PIE_FLAG): Likewise.
1681         (COMPILER): Replace @NO_PIE_CFLAGS@ with $(NO_PIE_CFLAGS).
1682         (LINKER): Replace @NO_PIE_FLAG@ with $(NO_PIE_FLAG).
1683         (BUILD_CFLAGS): Replace @NO_PIE_CFLAGS@ with
1684         $(BUILD_NO_PIE_CFLAGS).
1685         (BUILD_CXXFLAGS): Likewise.
1686         (BUILD_LDFLAGS ): Replace @NO_PIE_FLAG@ with
1687         $(BUILD_NO_PIE_FLAG).
1688         * configure.ac (BUILD_NO_PIE_CFLAGS): New.  AC_SUBST.
1689         (BUILD_NO_PIE_FLAG): Likewise.
1690         (NO_PIE_CFLAGS_FOR_BUILD): Likewise.
1691         (NO_PIE_FLAG_FOR_BUILD): Likewise.
1692         * configure: Regenerated.
1693
1694 2015-10-29  Richard Biener  <rguenther@suse.de>
1695
1696         PR middle-end/56956
1697         * fold-const.c (fold_cond_expr_with_comparison): Do not fold
1698         unsigned conditonal negation to ABS_EXPR.
1699
1700 2015-10-29  Richard Biener  <rguenther@suse.de>
1701
1702         * gimple-match-head.c (gimple_simplify): Remove premature checking
1703         of builtin_decl_implicit of function calls we simplify.
1704
1705 2015-10-29  Bin Cheng  <bin.cheng@arm.com>
1706
1707         * tree-ssa-loop-ivopts.c (split_address_cost): Check depends_on.
1708         (get_computation_cost_at): Ditto.
1709         (determine_use_iv_cost_address): Pass NULL for arguments depends_on
1710         and inv_expr_id.
1711
1712 2015-10-28  Tom de Vries  <tom@codesourcery.com>
1713
1714         * tree-ssa-structalias.c (intra_create_variable_infos): Remove
1715         superfluous code.
1716
1717 2015-10-28  Jason Merrill  <jason@redhat.com>
1718
1719         * Makefile.in (TAGS): Include libcpp and libiberty.
1720
1721 2015-10-28  Nathan Sidwell  <nathan@codesourcery.com>
1722
1723         * omp-low.c (MASK_GANG, MASK_WORKER, MASK_VECTOR): Delete.
1724         (extract_omp_for_data): Remove OpenACC special handling of
1725         chunking.
1726
1727         * config/nvptx/nvptx.c (nvptx_print_operand): Remove 'd' case.
1728         (struct parallel): Update comment.
1729         (nvptx_reorg): Likewise.
1730         (nvptx_neuter): Cleanup whitespace.
1731
1732 2015-10-28  Richard Henderson  <rth@redhat.com>
1733
1734         * tree-eh.c (mark_reachable_handlers): Fix typo in assert.
1735
1736 2015-10-05  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
1737
1738         PR target/67839
1739         * config/avr/predicates.md (low_io_address_operand): Don't
1740         consider MODE when computing upper bound.
1741         (io_address_operand): Likewise.
1742
1743 2015-10-28  Jan Hubicka  <hubicka@ucw.cz>
1744
1745         * fold-const.c (operand_equal_p): Do not verify that types are
1746         compatible for MEM_REFs.
1747
1748 2015-10-28  Richard Biener  <rguenther@suse.de>
1749
1750         * gimple-match-head.c (gimple_simplify): Allow VECTOR_CSTs
1751         in simplifying VEC_COND_EXPR conditions.
1752
1753 2015-10-28  Tom de Vries  <tom@codesourcery.com>
1754
1755         * tree-ssa-structalias.c (intra_create_variable_infos): Don't iterate
1756         into vi_next of a full_var.
1757
1758 2015-10-28  Tom de Vries  <tom@codesourcery.com>
1759
1760         * tree-ssa-structalias.c (new_var_info, make_heapvar)
1761         (make_constraint_from_restrict, make_constraint_from_global_restrict)
1762         (create_function_info_for, create_variable_info_for_1)
1763         (create_variable_info_for): Add and handle add_id parameter.
1764         (get_call_vi, new_scalar_tmp_constraint_exp, handle_rhs_call)
1765         (init_base_vars): Add extra argument to calls to new_var_info.
1766         (get_vi_for_tree): Add extra argument to call to
1767         create_variable_info_for.
1768         (process_constraint, do_deref, process_all_all_constraints): Add extra
1769         argument to calls to new_scalar_tmp_constraint_exp.
1770         (handle_lhs_call, find_func_aliases_for_builtin_call): Add extra
1771         argument to calls to make_heapvar.
1772         (make_restrict_var_constraints): Add extra argument to call to
1773         make_constraint_from_global_restrict.
1774         (intra_create_variable_infos): Add extra argument to call to
1775         create_variable_info_for_1.
1776         (ipa_pta_execute): Add extra argument to call to
1777         create_function_info_for.
1778
1779 2015-10-28  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1780
1781         * config/aarch64/aarch64.md (call, call_value, sibcall): Handle noplt.
1782         (sibcall_value): Likewise.
1783
1784 2015-10-28  Nathan Sidwell  <nathan@codesourcery.com>
1785
1786         * config/nvptx/nvptx.h (struct machine_function): Add
1787         axis_predicate.
1788         * config/nvptx/nvptx-protos.h (nvptx_expand_oacc_fork,
1789         nvptx_expand_oacc_join): Declare.
1790         * config/nvptx/nvptx.md (UNSPEC_NTID, UNSPEC_TID): Delete.
1791         (UNSPEC_DIM_SIZE, UNSPEC_SHARED_DATA, UNSPEC_BIT_CONV,
1792         UNSPEC_SHUFFLE, UNSPEC_BR_UNIFIED): New.
1793         (UNSPECV_BARSYNC, UNSPECV_DIM_POS, UNSPECV_FORK, UNSPECV_FORKED,
1794         UNSPECV_JOINING, UNSPECV_JOIN): New.
1795         (BITS, BITD): New mode iterators.
1796         (br_true_uni, br_false_uni): New.
1797         (*oacc_ntid_insn, oacc_ntid, *oacc_tid_insn, oacc_tid): Delete.
1798         (oacc_dim_size, oacc_dim_pos): New.
1799         (nvptx_fork, nvptx_forked, nvptx_joining, nvptx_join): New.
1800         (oacc_fork, oacc_join): New.
1801         (nvptx_shuffle<mode>, unpack<mode>si2, packsi<mode>2): New.
1802         (worker_load<mode>, worker_store<mode>): New.
1803         (nvptx_barsync): New.
1804         * config/nvptx/nvptx.c: Include gimple.h & dumpfile.h.
1805         (SHUFFLE_UP, SHUFFLE_DOWN, SHUFFLE_BFLY, SHUFFLE_IDX): Define.
1806         (worker_bcast_hwm, worker_bcast_align, worker_bcast_name,
1807         worker_bcast_sym): New.
1808         (nvptx_option_override): Initialize worker broadcast buffer.
1809         (nvptx_emit_forking, nvptx_emit_joining): New.
1810         (nvptx_init_axis_predicate): New.
1811         (nvptx_declare_function_name): Init axis predicates.
1812         (nvptx_expand_call): Add fork/join markers around routine call.
1813         (nvptx_expand_oacc_fork, nvptx_expand_oacc_join): New.
1814         (nvptx_gen_unpack, nvptx_gen_pack, nvptx_gen_shuffle): New.
1815         (nvptx_gen_vcast): New.
1816         (struct wcast_data_t): New.
1817         (enum propagate_mask): New.
1818         (nvptx_gen_wcast): New.
1819         (nvptx_print_operand): Add 'S' case.
1820         (struct parallel): New.
1821         (parallel::parallel, parallel::~parallel): New.
1822         (bb_insn_map_t, insn_bb_t, insn_bb_vec_t): New typedefs.
1823         (nvptx_split_blocks, nvptx_discover_pre, nvptx_dump_pars,
1824         nvptx_find_par, nvptx_discover_pars): New.
1825         (nvptx_propagate): New.
1826         (vprop_gen, nvptx_vpropagate): New.
1827         (wprop_gen, nvptx_wpropagate): New.
1828         (nvptx_wsync): New.
1829         (nvptx_single, nvptx_skip_par): New.
1830         (nvptx_process_pars, nvptx_neuter_pars): New.
1831         (ntptx_reorg): Split blocks, generate parallel structure, apply
1832         neutering.
1833         (nvptx_cannot_copy_insn_p): New.
1834         (nvptx_file_end): Emit worker broadcast decl.
1835         (nvptx_goacc_fork_join): New.
1836         (TARGET_CANNOT_COPY_INSN_P): Override.
1837         (TARGET_GOACC_FORK_JOIN): Override.
1838
1839 2015-10-28  Richard Biener  <rguenther@suse.de>
1840
1841         * fold-const.c (negate_expr_p): Adjust the division case to
1842         properly avoid introducing undefined overflow.
1843         (fold_negate_expr): Likewise.
1844
1845 2015-10-28  Richard Biener  <rguenther@suse.de>
1846
1847         PR tree-optimization/65962
1848         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
1849         Avoid creating loop carried dependences also for outer loops
1850         of the loop a use to replace is in.
1851
1852 2015-10-28  Richard Biener  <rguenther@suse.de>
1853
1854         * common.opt (fchecking): New flag controlling flag_checking.
1855         * passes.c (verify_curr_properties): Drop DEBUG_FUNCTION.
1856         * timevar.c (timer::print): Adjust output.
1857         * doc/invoke.texi (fchecking): Document.
1858
1859 2015-10-28  Richard Biener  <rguenther@suse.de>
1860
1861         PR middle-end/68067
1862         * fold-const.c (negate_expr_p): We cannot negate plus or minus
1863         if overflow is not wrapping.  Likewise multiplication unless
1864         one operand is constant and not power of two.
1865         (fold_negate_expr): Adjust accordingly.
1866
1867 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
1868
1869         * omp-low.c (struct omp_context): Remove gwv_below, gwv_this
1870         fields.
1871         (is_oacc_parallel, is_oacc_kernels): New.
1872         (enclosing_target_ctx): May return NULL.
1873         (ctx_in_oacc_kernels_region): New.
1874         (check_oacc_kernel_gwv): New.
1875         (oacc_loop_or_target_p): Delete.
1876         (scan_omp_for): Don't calculate gwv mask.  Check parallel clause
1877         operands.  Strip reductions fro kernels.
1878         (scan_omp_target): Don't calculate gwv mask.
1879         (lower_oacc_head_mark, lower_oacc_loop_marker,
1880         lower_oacc_head_tail): New.
1881         (struct oacc_collapse): New.
1882         (expand_oacc_collapse_init, expand_oacc_collapse_vars): New.
1883         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
1884         Remove OpenACC handling.
1885         (expand_oacc_for): New.
1886         (expand_omp_for): Call expand_oacc_for.
1887         (lower_omp_for): Call lower_oacc_head_tail.
1888
1889 2015-10-27  Mikhail Maltsev  <maltsevm@gmail.com>
1890
1891         * attribs.c (check_attribute_tables): New function, broken out from...
1892         (init_attributes): Use it.
1893         * cfgcleanup.c (try_optimize_cfg): Use flag_checking, CHECKING_P
1894         gcc_checking_assert and checking_* functions to eliminate
1895         ENABLE_CHECKING conditionals.
1896         * cfgexpand.c (expand_goto, expand_debug_expr): Likewise.
1897         (pass_expand::execute): Likewise.
1898         * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
1899         * cgraphunit.c (mark_functions_to_output): Likewise.
1900         (cgraph_node::expand_thunk): Likewise.
1901         (symbol_table::compile): Likewise.
1902         * ddg.c (add_cross_iteration_register_deps): Likewise.
1903         (create_ddg_all_sccs): Likewise.
1904         * df-core.c (df_finish_pass, df_analyze): Likewise.
1905         * diagnostic-core.h: Likewise.
1906         * diagnostic.c (diagnostic_report_diagnostic): Likewise.
1907         * dominance.c (calculate_dominance_info): Likewise.
1908         * dwarf2out.c (add_AT_die_ref): Likewise.
1909         (const_ok_for_output_1, mem_loc_descriptor): Likewise.
1910         (loc_list_from_tree, gen_lexical_block_die): Likewise.
1911         gen_type_die_with_usage, gen_type_die): Likewise.
1912         (dwarf2out_decl): Likewise.
1913         * emit-rtl.c (verify_rtx_sharing, reorder_insns_nobb): Likewise.
1914         * except.c (duplicate_eh_regions): Likewise.
1915         * fwprop.c (register_active_defs, update_df_init): Likewise.
1916         (fwprop_init, fwprop_done): Likewise.
1917         (update_uses): Likewise.
1918         * ggc-page.c (ggc_grow): Likewise.
1919         * gimplify.c (gimplify_body): Likewise.
1920         (gimplify_hasher::equal): Likewise.
1921         * graphite-isl-ast-to-gimple.c (graphite_verify): Likewise.
1922         * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form):
1923         Likewise.
1924         * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Likewise.
1925         (rewrite_cross_bb_scalar_deps_out_of_ssa): Likwise.
1926         * hash-table.h (::find_empty_slot_for_expand): Likewise.
1927         * ifcvt.c (if_convert): Likewise.
1928         * ipa-cp.c (ipcp_propagate_stage): Likewise.
1929         * ipa-devirt.c (type_in_anonymous_namespace_p): Likewise.
1930         (odr_type_p, odr_types_equivalent_p): Likewise.
1931         (add_type_duplicate, get_odr_type): Likewise.
1932         * ipa-icf.c (sem_item_optimizer::execute): Likewise.
1933         (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
1934         (sem_item_optimizer::verify_classes): Likewise.
1935         (sem_item_optimizer::traverse_congruence_split): Likewise.
1936         (sem_item_optimizer::checking_verify_classes): New.
1937         * ipa-icf.h (sem_item_optimizer::checking_verify_classes): Add new
1938         method.
1939         * cfgrtl.c (commit_edge_insertions): Likewise.
1940         (fixup_reorder_chain, cfg_layout_finalize): Likewise.
1941         (rtl_flow_call_edges_add): Likewise.
1942         * cgraph.c (symbol_table::create_edge): Likewise.
1943         (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
1944         * cgraph.h (symtab_node): Likewise.
1945         (symtab_node::checking_verify_symtab_nodes): Define.
1946         (cgraph_node::checking_verify_cgraph_nodes): Define.
1947         * cfghooks.h (checking_verify_flow_info): Define.
1948         * cfgloop.h (checking_verify_loop_structure): Define.
1949         * dominance.h (checking_verify_dominators): Define.
1950         * et-forest.c: Fix comment.
1951         * ipa-inline-analysis.c (compute_inline_parameters): Use flag_checking,
1952         CHECKING_P gcc_checking_assert and checking_* functions to eliminate
1953         ENABLE_CHECKING conditionals.
1954         * ipa-inline-transform.c (save_inline_function_body): Likewise.
1955         * ipa-inline.c (inline_small_functions): Likewise.
1956         (early_inliner): Likewise.
1957         * ipa-inline.h (estimate_edge_growth): Likewise.
1958         * ipa-visibility.c (function_and_variable_visibility): Likewise.
1959         * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
1960         (ipa_single_use): Likewise.
1961         * ira-int.h: Likewise.
1962         * ira.c (ira): Likewise.
1963         * loop-doloop.c (doloop_optimize_loops): Likewise.
1964         * loop-init.c (loop_optimizer_init, fix_loop_structure): Likewise.
1965         * loop-invariant.c (move_loop_invariants): Likewise.
1966         * lra-assigns.c (lra_assign): Likewise.
1967         * lra-constraints.c (lra_constraints): Likewise.
1968         * lra-eliminations.c (lra_eliminate): Likewise.
1969         * lra-int.h (struct lra_reg): Likewise.
1970         * lra-lives.c (check_pseudos_live_through_calls): Likewise.
1971         (lra_create_live_ranges_1): Likewise.
1972         * lra-remat.c (create_remat_bb_data): Likewise.
1973         * lra.c (lra_update_insn_recog_data, restore_scratches): Likewise.
1974         (lra): Likewise.
1975         (check_rtl): Always define. Remove incorrect guard around
1976         extract_constrain_insn call.
1977         * lto-cgraph.c (input_cgraph_1: Use flag_checking,
1978         CHECKING_P gcc_checking_assert and checking_* functions to eliminate
1979         ENABLE_CHECKING conditionals.
1980         * lto-streamer-out.c (DFS::DFS): Likewise.
1981         (lto_output): Likewise.
1982         * lto-streamer.c (lto_streamer_init): Likewise.
1983         * omp-low.c (scan_omp_target, expand_omp_taskreg): Likewise.
1984         expand_omp_target, execute_expand_omp): Likewise.
1985         (lower_omp_target): Likewise.
1986         * passes.c (execute_function_todo): Likewise.
1987         (execute_todo, execute_one_pass): Likewise.
1988         (verify_curr_properties): Always define.
1989         * predict.c (tree_estimate_probability: Use flag_checking,
1990         CHECKING_P gcc_checking_assert and checking_* functions to eliminate
1991         ENABLE_CHECKING conditionals.
1992         (propagate_freq): Likewise.
1993         * pretty-print.c (pp_format): Likewise.
1994         * real.c (real_to_decimal_for_mode): Likewise.
1995         * recog.c (split_all_insns): Likewise.
1996         * regcprop.c (kill_value_one_regno): Likewise.
1997         (copy_value): Likewise.
1998         (validate_value_data): Define unconditionally.
1999         * reload.c: Fix comment.
2000         * timevar.c: Include options.h
2001         * tree-ssa.h (checking_verify_ssa): Define.
2002         * tree-ssa-loop-manip.h (checking_verify_loop_closed_ssa): Define.
2003         * sched-deps.c (CHECK): Remove unused macro.
2004         (add_or_update_dep_1, sd_add_dep: Use flag_checking, CHECKING_P
2005         gcc_checking_assert and checking_* functions to eliminate
2006         ENABLE_CHECKING conditionals.
2007         * sel-sched-ir.c (free_regset_pool, tidy_control_flow): Likewise.
2008         * sel-sched.c (struct moveop_static_params): Likewise.
2009         (find_best_reg_for_expr, move_cond_jump): Likewise.
2010         (move_op_orig_expr_not_found): Likewise.
2011         (code_motion_process_successors, move_op): Likewise.
2012         * ssa-iterators.h (first_readonly_imm_use): Likewise.
2013         (next_readonly_imm_use): Likewise.
2014         * store-motion.c (compute_store_table): Likewise.
2015         * symbol-summary.h (function_summary::function_summary): Likewise.
2016         * target.h (cumulative_args_t): Likewise.
2017         (get_cumulative_args, pack_cumulative_args): Likewise.
2018         * timevar.c: (timer::print): Likewise.
2019         * trans-mem.c (ipa_tm_execute): Likewise.
2020         * tree-cfg.c (move_stmt_op): Likewise.
2021         (move_sese_region_to_fn): Likewise.
2022         (gimple_flow_call_edges_add): Likewise.
2023         * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures):
2024         Likewise.
2025         * tree-eh.c (remove_unreachable_handlers): Likewise.
2026         * tree-if-conv.c (pass_if_conversion::execute): Likewise.
2027         * tree-inline.c (expand_call_inline, optimize_inline_calls): Likewise.
2028         * tree-into-ssa.c (update_ssa): Likewise.
2029         * tree-loop-distribution.c (pass_loop_distribution::execute): Likewise.
2030         * tree-outof-ssa.c (eliminate_useless_phis, rewrite_trees): Likewise.
2031         * tree-parloops.c (pass_parallelize_loops::execute): Likewise.
2032         * tree-predcom.c (suitable_component_p): Likewise.
2033         * tree-profile.c (gimple_gen_const_delta_profiler): Likewise.
2034         * tree-ssa-alias.c (refs_may_alias_p_1): Likewise.
2035         * tree-ssa-live.c (verify_live_on_entry): Likewise.
2036         * tree-ssa-live.h (register_ssa_partition): Likewise.
2037         * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Likewise.
2038         * tree-ssa-loop-manip.c (add_exit_phi): Likewise.
2039         (tree_transform_and_unroll_loop): Likewise.
2040         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
2041         * tree-ssa-operands.c (get_expr_operands): Likewise.
2042         * tree-ssa-propagate.c (replace_exp_1): Likewise.
2043         * tree-ssa-structalias.c (rewrite_constraints): Likewise.
2044         * tree-ssa-ter.c (free_temp_expr_table): Likewise.
2045         * tree-ssa-threadupdate.c (duplicate_thread_path): Likewise.
2046         * tree-ssanames.c (release_ssa_name_fn): Likewise.
2047         * tree-stdarg.c (expand_ifn_va_arg): Likewise.
2048         * tree-vect-loop-manip.c
2049         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
2050         (slpeel_checking_verify_cfg_after_peeling): Likewise.
2051         (vect_do_peeling_for_loop_bound): Likewise.
2052         (vect_do_peeling_for_alignment): Likewise.
2053         * tree-vrp.c (supports_overflow_infinity): Likewise.
2054         (set_value_range): Likewise.
2055         * tree.c (free_lang_data_in_cgraph): Likewise.
2056         * value-prof.c (gimple_remove_histogram_value): Likewise.
2057         (free_hist): Likewise.
2058         * var-tracking.c (canonicalize_values_star): Likewise.
2059         (compute_bb_dataflow, vt_find_locations, vt_emit_notes): Likewise.
2060
2061 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
2062
2063         * internal-fn.def (IFN_GOACC_DIM_SIZE, IFN_GOACC_DIM_POS,
2064         IFN_GOACC_LOOP): New.
2065         * internal-fn.h (enum ifn_unique_kind): Add IFN_UNIQUE_OACC_FORK,
2066         IFN_UNIQUE_OACC_JOIN, IFN_UNIQUE_OACC_HEAD_MARK,
2067         IFN_UNIQUE_OACC_TAIL_MARK.
2068         (enum ifn_goacc_loop_kind): New.
2069         * internal-fn.c (expand_UNIQUE): Add IFN_UNIQUE_OACC_FORK,
2070         IFN_UNIQUE_OACC_JOIN cases.
2071         (expand_GOACC_DIM_SIZE, expand_GOACC_DIM_POS): New.
2072         (expand_GOACC_LOOP): New.
2073         * target-insns.def (oacc_dim_pos, oacc_dim_size): New.
2074         * omp-low.c: Include gimple-pretty-print.h.
2075         (struct oacc_loop): New.
2076         (enum oacc_loop_flags): New.
2077         (oacc_thread_numbers): New.
2078         (oacc_xform_loop): New.
2079         (new_oacc_loop_raw, new_oacc_loop_outer, new_oacc_loop,
2080         new_oacc_loop_routine, finish_oacc_loop, free_oacc_loop): New,
2081         (dump_oacc_loop_part, dump_oacc_loop, debug_oacc_loop): New,
2082         (oacc_loop_discover_walk, oacc_loop_sibling_nrevers,
2083         oacc_loop_discovery): New.
2084         (oacc_loop_xform_head_tail, oacc_loop_xform_loop,
2085         oacc_loop_process): New.
2086         (oacc_loop_fixed_partitions, oacc_loop_partition): New.
2087         (execute_oacc_device_lower): Discover & process loops.  Process
2088         internal fns.
2089         * target.def (goacc.fork_join): Change sense of hook, clarify
2090         documentation.
2091         * doc/tm.texi: Regenerated.
2092
2093 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
2094
2095         * target-insns.def (oacc_fork, oacc_join): Define.
2096         * target.def (goacc.validate_dims): Adjust doc to avoid warning.
2097         (goacc.fork_join): New GOACC hook.
2098         * targhooks.h (default_goacc_fork_join): Declare.
2099         * omp-low.c (default_goacc_forkjoin): New.
2100         * doc/tm.texi.in (TARGET_GOACC_FORK_JOIN): Add.
2101         * doc/tm.texi: Regenerate.
2102
2103 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
2104
2105         * omp-low.c (oacc_init_rediction_array): New.
2106         (oacc_initialize_reduction_data): Initialize array.
2107
2108 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
2109
2110         * omp-low.c (pass_oacc_device_lower::execute): Ignore errors.
2111
2112 2015-10-27  Nathan Sidwell  <nathan@codesourcery.com>
2113
2114         * internal-fn.c (expand_UNIQUE): New.
2115         * internal-fn.h (enum ifn_unique_kind): New.
2116         * internal-fn.def (IFN_UNIQUE): New.
2117         * target-insns.def (unique): Define.
2118         * gimple.h (gimple_call_internal_unique_p): New.
2119         * gimple.c (gimple_call_same_target_p): Check internal fn
2120         uniqueness.
2121         * tracer.c (ignore_bb_p): Check for IFN_UNIQUE call.
2122         * tree-ssa-threadedge.c
2123         (record_temporary_equivalences_from_stmts): Likewise.
2124         * tree-cfg.c (gmple_call_initialize_ctrl_altering): Likewise.
2125
2126 2015-10-27  Richard Henderson  <rth@redhat.com>
2127
2128         PR rtl-opt/67609
2129         * config/i386/i386.c (ix86_cannot_change_mode_class): Disallow
2130         narrowing subregs on SSE and MMX registers.
2131         * doc/tm.texi.in (CANNOT_CHANGE_MODE_CLASS): Clarify when subregs that
2132         appear to be sub-words of multi-register pseudos must be rejected.
2133         * doc/tm.texi: Regenerate.
2134
2135 2015-10-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2136
2137         PR target/68102
2138         * config/aarch64/aarch64.md (*movsi_aarch64): Check that
2139         operands[0] is a reg before taking its REGNO in split condition.
2140         (*movdi_aarch64): Likewise.
2141
2142 2015-10-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2143
2144         * config/aarch64/aarch64.c (aarch64_output_simd_mov_immediate):
2145         Handle floating point inner modes properly.
2146
2147 2015-10-27  Alan Hayward  <alan.hayward@arm.com>
2148
2149         * tree-vect-looop.c
2150         (vectorizable_live_operation): Change iterator.
2151
2152 2015-10-27  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
2153             Aditya Kumar  <aditya.k7@samsung.com>
2154
2155         * graphite-optimize-isl.c (get_schedule_for_node_st): New callback
2156           function to schedule based on isl_schedule_node.
2157         (get_schedule_map_st): New schedule optimizer based on
2158         isl_schedule_node.
2159         (scop_get_domains): New. Return the isl_union_set containing the
2160         domains of all the pbbs.
2161         (optimize_isl): Call the new function get_schedule_map_st for isl-0.15
2162
2163 2015-10-27  H.J. Lu  <hongjiu.lu@intel.com>
2164
2165         PR target/67215
2166         * calls.c (prepare_call_address): Don't handle -fno-plt here.
2167         * config/i386/i386.c (ix86_expand_call): Generate indirect call
2168         via GOT for -fno-plt.  Support indirect call via GOT for x32.
2169         * config/i386/predicates.md (sibcall_memory_operand): Allow
2170         GOT memory operand.
2171
2172 2015-10-27  Richard Biener  <rguenther@suse.de>
2173
2174         PR tree-optimization/68104
2175         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move
2176         strided access check ...
2177         (vect_compute_data_refs_alignment): ... here.
2178
2179 2015-10-27  Daniel Jacobowitz  <dan@codesourcery.com>
2180             Joseph Myers  <joseph@codesourcery.com>
2181             Mark Shinwell  <shinwell@codesourcery.com>
2182             Andrew Stubbs  <ams@codesourcery.com>
2183             Rich Felker <dalias@libc.org>
2184
2185         * config.gcc: Handle --enable-fdpic.
2186         * config/sh/constraints.md (Ccl): New constraint.
2187         * config/sh/linux.h (SUBTARGET_LINK_EMUL_SUFFIX): Handle -mfdpic.
2188         * config/sh/sh-c.c (sh_cpu_cpp_builtins): Add __FDPIC__ and
2189         __SH_FDPIC__.
2190         * config/sh/sh-mem.cc (expand_block_move): Support FDPIC for calls to
2191         library functions.
2192         * config/sh/sh-protos.h (function_symbol_result): New struct.
2193         (function_symbol): Return function_symbol_result.
2194         (sh_get_fdpic_reg_initial_val, sh_load_function_descriptor): New
2195         declarations.
2196         * config/sh/sh.c (TARGET_ASM_INTEGER, sh_assemble_integer): Implement
2197         target hook.
2198         (TARGET_CANNOT_FORCE_CONST_MEM, sh_cannot_force_const_mem_p): Likewise.
2199         (sh_option_override): Force -fPIC if FDPIC is in effect.
2200         (sh_asm_output_addr_const_extra): Add UNSPEC_GOTFUNCDESC and
2201         UNSPEC_GOTOFFFUNCDESC cases.
2202         (prepare_move_operands): Use FDPIC initial GOT register for
2203         TLS-related GOT access; inhibit cross-section address offset constants
2204         for FDPIC.
2205         (sh_assemble_integer): New function.
2206         (sh_cannot_copy_insn_p): Inhibit copying insns that are FDPIC
2207         PC-relative call sites.
2208         (expand_ashiftrt): Adapt invocation of function_symbol.
2209         (sh_expand_prologue): Inhibit PC-relative GOT address load for FDPIC.
2210         (nonpic_symbol_mentioned_p): Add cases for UNSPEC_GOTFUNCDESC and
2211         UNSPEC_GOTOFFFUNCDESC.
2212         (legitimize_pic_address): Resolve function symbols to function
2213         descriptors for FDPIC.  Do not use GOT-relative addressing for local
2214         data that may be read-only on FDPIC.
2215         (sh_emit_storesi, sh_emit_storehi): New functions.
2216         (sh_trampoline_init): Generate FDPIC trampolines.
2217         (sh_function_ok_for_sibcall): Add TARGET_FDPIC check.
2218         (sh_expand_sym_label2reg): Don't assume sibcalls are local.
2219         (sh_output_mi_thunk): Generate FDPIC call.
2220         (function_symbol): Return function_symbol_result.  For SFUNC_STATIC on
2221         FDPIC, generate call site labels to use PC-relative addressing rather
2222         than GOT-relative addressing.
2223         (sh_conditional_register_usage): Make PIC register fixed and call used
2224         when FDPIC is in effect.
2225         (sh_legitimate_constant_p): Impose FDPIC constant constraints.
2226         (sh_cannot_force_const_mem_p, sh_load_function_descriptor,
2227         sh_get_fdpic_reg_initial_val): New functions.
2228         * config/sh/sh.h (SUBTARGET_ASM_SPEC, SUBTARGET_LINK_EMUL_SUFFIX):
2229         Handle -mfdpic.
2230         (FDPIC_SELF_SPECS, SUBTARGET_DRIVER_SELF_SPECS,
2231         PIC_OFFSET_TABLE_REG_CALL_CLOBBERED,
2232         SH_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): New macros.
2233         (DRIVER_SELF_SPECS): Add SUBTARGET_DRIVER_SELF_SPECS and
2234         FDPIC_SELF_SPECS.
2235         (TRAMPOLINE_SIZE): Select trampoline size for FDPIC.
2236         (ASM_PREFERRED_EH_DATA_FORMAT): Add EH format constraints for FDPIC.
2237         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Handle FDPIC case.
2238         * config/sh/sh.md (UNSPEC_GOTFUNCDESC, UNSPEC_GOTOFFFUNCDESC): New
2239         constants.
2240         (calli_fdpic, call_valuei_fdpic, sibcalli_fdpic, sibcalli_pcrel_fdpic,
2241         sibcall_pcrel_fdpic, sibcall_valuei_fdpic, sibcall_valuei_pcrel_fdpic,
2242         sibcall_value_pcrel_fdpic, sym2GOTFUNCDESC, symGOTFUNCDESC2reg,
2243         sym2GOTOFFFUNCDESC, symGOTOFFFUNCDESC2reg): New patterns.
2244         (udivsi3_i1, udivsi3_i4, udivsi3_i4_single, udivsi3,
2245         *divsi_inv_call_combine, divsi3_i4, divsi3_i4_single, divsi3, ashlsi3,
2246         ashlsi3_d_call, ashrsi3_n, lshrsi3, lshrsi3_d_call, calli, call_valuei,
2247         call, call_value, sibcalli, sibcalli_pcrel, sibcall_pcrel, sibcall,
2248         sibcall_valuei, sibcall_valuei_pcrel, sibcall_value_pcrel,
2249         sibcall_value, GOTaddr2picreg, symGOT_load, symGOTOFF2reg,
2250         block_move_real, block_lump_real, block_move_real_i4,
2251         block_lump_real_i4): Add support for FDPIC calls.
2252         (mulsi3, ic_invalidate_line, initialize_trampoline, call_pop,
2253         call_value_pop): Adjust for new function_symbol signature.
2254         * config/sh/sh.opt (-mfdpic): New option.
2255         * doc/install.texi (Options specification): Document --enable-fdpic.
2256         * doc/invoke.texi (SH Options): Document -mfdpic.
2257
2258
2259 2015-10-27  Alan Lawrence  <alan.lawrence@arm.com>
2260
2261         PR tree-optimization/65963
2262         * tree-scalar-evolution.c (interpret_rhs_expr): Handle some
2263         LSHIFT_EXPRs as equivalent MULT_EXPRs.
2264
2265 2015-10-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2266
2267         PR target/67929
2268         * config/arm/arm.c (vfp3_const_double_for_bits): Rewrite.
2269         * config/arm/constraints.md (Dp): Update callsite.
2270         * config/arm/predicates.md (const_double_vcvt_power_of_two): Likewise.
2271
2272 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
2273
2274         * builtins.c (fold_builtin_load_exponent): Rename to...
2275         (fold_const_builtin_load_exponent): ...this and only handle
2276         constant arguments.
2277         (fold_builtin_2): Update accordingly.
2278         * match.pd: Add rules previously handled by fold_builtin_load_exponent.
2279
2280 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
2281
2282         * builtins.c (fold_builtin_logb): Rename to...
2283         (fold_const_builtin_logb): ...this and remove STRIP_NOPS call.
2284         (fold_builtin_significand): Rename to...
2285         (fold_const_builtin_significand): ...this and remove STRIP_NOPS call.
2286         (fold_builtin_1): Update accordingly.
2287
2288 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
2289
2290         * builtins.c (fold_builtin_fmin_fmax): Delete.
2291         (fold_builtin_2): Handle constant fmin and fmax arguments here.
2292         * match.pd: Add rules previously handled by fold_builtin_fmin_fmax.
2293
2294 2015-10-27  Evandro Menezes  <e.menezes@samsung.com>
2295
2296         * config/aarch64/aarch64-protos.h (cpu_addrcost_table): Split member
2297         for register extension into sign and zero register extension.
2298         * config/aarch64/aarch64.c (generic_addrcost_table): Infer values
2299         for sign and zero register extension.
2300         (cortexa57_addrcost_table): Likewise.
2301         (xgene1_addrcost_table): Likewise.
2302
2303 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
2304
2305         * fold-const.c (fold_minmax): Delete.
2306         (fold_binary_loc): Don't call it.
2307         * match.pd: Add rules previously handled by fold_minmax.
2308
2309 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
2310
2311         * builtins.c (fold_builtin_fma): Remove constant handling.
2312         (fold_builtin_3): Handle constant fma arguments here.
2313
2314 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
2315
2316         * builtins.c (fold_builtin_fabs): Remove constant handling.
2317         (fold_builtin_abs): Likewise.
2318
2319 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
2320
2321         * builtins.c (fold_builtin_copysign): Delete.
2322         (fold_builtin_2): Handle constant copysign arguments here.
2323         * match.pd: Add rules previously handled by fold_builtin_copysign.
2324
2325 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
2326
2327         * builtins.c (fold_builtin_signbit): Delete.
2328         (fold_builtin_2): Handle constant signbit arguments here.
2329         * match.pd: Add rules previously handled by fold_builtin_signbit.
2330
2331 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
2332
2333         * match.pd: Handle sqrt(x) cmp 0 specially.
2334
2335 2015-10-27  Ilya Enkovich  <enkovich.gnu@gmail.com>
2336
2337         * tree-vect-generic.c (expand_vector_operations_1): Check
2338         optab type before using it.
2339
2340 2015-10-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2341
2342         * config/aarch64/aarch64-protos.h
2343         (struct tune_params): Add autoprefetcher_model field.
2344         * config/aarch64/aarch64.c: Include params.h
2345         (generic_tunings): Specify autoprefetcher_model value.
2346         (cortexa53_tunings): Likewise.
2347         (cortexa57_tunings): Likewise.
2348         (cortexa72_tunings): Likewise.
2349         (thunderx_tunings): Likewise.
2350         (xgene1_tunings): Likewise.
2351         (aarch64_first_cycle_multipass_dfa_lookahead_guard): New function.
2352         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define.
2353         (aarch64_override_options_internal): Set
2354         PARAM_SCHED_AUTOPREF_QUEUE_DEPTH param.
2355
2356 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
2357
2358         * builtins.c (fold_builtin_exponent): Delete.
2359         (fold_builtin_2): Handle constant expN arguments here.
2360         * match.pd: Fold expN(logN(x)) -> x.
2361
2362 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
2363
2364         * builtins.c (fold_builtin_powi): Delete.
2365         (fold_builtin_2): Handle constant powi arguments here.
2366         * match.pd: Add rules previously handled by fold_builtin_powi.
2367
2368 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
2369
2370         * builtins.c (fold_builtin_pow): Delete in favor of...
2371         (fold_const_builtin_pow): ...this new function.  Only handle constant
2372         arguments.
2373         (fold_builtin_2): Update accordingly.
2374         * match.pd: Add rules previously handled by fold_builtin_pow.
2375
2376 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
2377
2378         * builtins.c (fold_builtin_hypot): Delete.
2379         (fold_builtin_2): Handle constant hypot arguments here.
2380         * match.pd: Fold hypot(x, 0) and hypot(0, x) to x.  Canonicalize
2381         hypot(x, x) to fabs(x)*sqrt(2).
2382
2383 2015-10-27  Richard Sandiford  <richard.sandiford@arm.com>
2384
2385         * gimple-match-head.c (maybe_push_res_to_seq): Use create_tmp_reg
2386         instead of make_ssa_name if not yet in SSA form.
2387
2388 2015-10-27  Richard Biener  <rguenther@suse.de>
2389
2390         * cfg.c (free_edge): Add function argument and use it instead of cfun.
2391         (clear_edges): Likewise.
2392         * cfg.h (clear_edges): Adjust prototype.
2393         * cfgexpand.c (pass_expand::execute): Adjust.
2394         * cfgloop.c (release_recorded_exits): Add function argument and use
2395         it instead of cfun.
2396         * cfgloop.h (release_recorded_exits): Adjust prototype.
2397         (loops_state_satisfies_p): Add overload with function argument.
2398         (loops_state_set): Likewise.
2399         (loops_state_clear): Likewise.
2400         (struct loop_iterator): Add function argument to constructor
2401         and iterator and use it instead of cfun.
2402         (FOR_EACH_LOOP_FN): New macro.
2403         (loop_optimizer_finalize): Add overload with function argument.
2404         * loop-init.c (loop_optimizer_init): Adjust.
2405         (fix_loop_structure): Likewise.
2406         (loop_optimizer_finaliz): Add function argument and use it
2407         instead of cfun.
2408         * tree-cfg.c (delete_tree_cfg_annotations): Likewise.
2409         * tree-cfg.h (delete_tree_cfg_annotations): Adjust prototype.
2410         * cgraph.c (release_function_body): Do not push/pop cfun.
2411         * final.c (rest_of_clean_state): Adjust.
2412         * graphite.c (graphite_finalize): Likewise.
2413         * tree-ssa-copy.c (fini_copy_prop): Likewise.
2414         * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
2415         * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Likewise.
2416         (tree_unroll_loops_completely): Likewise.
2417         (pass_complete_unrolli::execute): Likewise.
2418         * tree-ssa-loop-niter.c (free_numbers_of_iterations_estimates):
2419         Add function argument and use it instead of cfun.
2420         * tree-ssa-loop-niter.h (free_numbers_of_iterations_estimates):
2421         Adjust prototype.
2422         * tree-ssa-loop.c (tree_ssa_loop_done): Adjust.
2423         * tree-ssa.c (delete_tree_ssa): Add function argument and use it
2424         instead of cfun.
2425         * tree-ssa.h (delete_tree_ssa): Adjust prototype.
2426         * tree-ssanames.c (fini_ssanames): Add function argument and use it
2427         instead of cfun.
2428         * tree-ssanames.c (fini_ssanames): Adjust prototype.
2429         * tree-vrp.c (execute_vrp): Adjust.
2430         * value-prof.c (free_histograms): Add function argument and use it
2431         instead of cfun.
2432         * value-prof.h (free_histograms): Adjust prototype.
2433
2434 2015-10-27  Thomas Schwinge  <thomas@codesourcery.com>
2435
2436         * tree.h (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES)
2437         (OACC_KERNELS_BODY, OACC_KERNELS_CLAUSES, OACC_KERNELS_COMBINED)
2438         (OACC_PARALLEL_COMBINED): Don't define macros.  Adjust all users.
2439
2440 2015-10-27  Tom de Vries  <tom@codesourcery.com>
2441
2442         * tree-ssa-structalias.c (push_fields_onto_fieldstack): Add and use var
2443         field_type.
2444
2445 2015-10-27  Bin Cheng  <bin.cheng@arm.com>
2446
2447         * loop-invariant.c (struct def): New field can_prop_to_addr_uses.
2448         (inv_can_prop_to_addr_use): New function.
2449         (record_use): Call can_prop_to_addr_uses, set the new field.
2450         (get_inv_cost): Count cost if inv can't be propagated into its
2451         address uses.
2452
2453 2015-10-26  Doug Evans  <dje@google.com>
2454
2455         * config/linux.h (INCLUDE_DEFAULTS): Add INCLUDE_DEFAULTS_MUSL_LOCAL.
2456
2457 2015-10-26  Eric Botcazou  <ebotcazou@adacore.com>
2458
2459         * match.pd (fold_widened_comparison): Apply simplifications to all
2460         integral types.
2461
2462 2015-10-26  Simon Dardis  <simon.dardis@imgtec.com>
2463
2464         * target.def (TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P): New hook.
2465         * doc/tm.texi.in (TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P): Document.
2466         * doc/tm.texi: Regenerated.
2467         * reorg.c (dbr_schedule): Use new hook.
2468         * config/mips/mips.c (mips_no_speculation_in_delay_slots_p): New.
2469
2470 2015-10-26  Jeff Law  <law@redhat.com>
2471
2472         PR tree-optimization/68013
2473         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
2474         Make sure the first block in the path is in VISITED_BBs.
2475
2476 2015-10-26  Richard Biener  <rguenther@suse.de>
2477         Dominik Vogt  <vogt@linux.vnet.ibm.com>
2478
2479         PR middle-end/67443
2480         * alias.c (ao_ref_from_mem): Remove promoted subreg handling.
2481         Properly prune ref->ref for accesses outside of ref.
2482
2483 2015-10-26  Richard Sandiford  <richard.sandiford@arm.com>
2484
2485         * gimple-fold.c (replace_stmt_with_simplification): Don't allow
2486         new statements to be inserted if inplace.  Allow calls to have
2487         nonempty sequences.
2488
2489 2015-10-26  Richard Biener  <rguenther@suse.de>
2490
2491         * tree-object-size.c: Remove builtins.h include, include tree-cfg.h.
2492         (do_valueize): New function.
2493         (pass_object_sizes::execute): Use gimple_fold_stmt_to_constant and
2494         replace_uses_by.
2495         * tree-ssa-threadedge.c: Remove builtins.h include, include
2496         gimple-fold.h
2497         (fold_assignment_stmt): Remove.
2498         (threadedge_valueize): New function.
2499         (record_temporary_equivalences_from_stmts): Use
2500         gimple_fold_stmt_to_constant_1, note additional cleanup
2501         opportunities.
2502
2503 2015-10-26  Richard Biener  <rguenther@suse.de>
2504
2505         * match.pd ((A & ~B) - (A & B) -> (A ^ B) - B): Add missing :c.
2506         ( (X & ~Y) | (~X & Y) -> X ^ Y): Remove redundant :c.
2507
2508 2015-10-26  Alan Hayward <alan.hayward@arm.com>
2509
2510         * tree-vect-loop.c (vect_create_epilog_for_reduction): Fix
2511         VEC_COND_EXPR types.
2512
2513 2015-10-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2514
2515         * auto-inc-dec.c (insert_move_insn_before): Delete.
2516         (attempt_change): Remember to cost the simple move in the
2517         FORM_PRE_ADD and FORM_POST_ADD cases.
2518
2519 2015-10-26  Kaz Kojima  <kkojima@gcc.gnu.org>
2520
2521         PR target/68091
2522         * config/sh/sh.c (sh_vector_mode_supported_p): Use
2523         TARGET_SHMEDIA_FPU instead of TARGET_FPU_ANY.
2524
2525 2015-10-26  Tom de Vries  <tom@codesourcery.com>
2526
2527         * tree-ssa-structalias.c (make_restrict_var_constraints): New function,
2528         factored out of ...
2529         (intra_create_variable_infos): ... here.
2530
2531 2015-10-26  Tom de Vries  <tom@codesourcery.com>
2532
2533         * tree-ssa-structalias.c (intra_create_variable_infos): Add
2534         restrict_pointer_p and recursive_restrict_p variables.
2535
2536 2015-10-26  Tom de Vries  <tom@codesourcery.com>
2537
2538         * tree-ssa-structalias.c (intra_create_variable_infos): Inline
2539         get_vi_for_tree call.
2540
2541 2015-10-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2542
2543         PR middle-end/67989
2544         * optabs.c (expand_atomic_compare_and_swap): Handle case when
2545         ptarget_oval or ptarget_bool are const0_rtx.
2546
2547 2015-10-26  Christian Bruel  <christian.bruel@st.com>
2548
2549         * function.h (MINIMUM_METHOD_BOUNDARY): New macro.
2550         * cp/decl.c (grokfndecl): Set DECL_ALIGN with MINIMUM_METHOD_BOUNDARY.
2551         * cp/method.c (implicitly_declare_fn): Likewise.
2552         * cp/lambda.c (maybe_add_lambda_conv_op): Likewise. Remove VBIT setting.
2553         * java/class.c (add_method_1): Likewise.
2554
2555 2015-10-26  Richard Biener  <rguenther@suse.de>
2556
2557         * alloc-pool.h (base_pool_allocator): Use placement new.
2558         (base_pool_allocator::remove): Likewise.  Compute size outside of
2559         flag_checking.
2560
2561 2015-10-26  Richard Sandiford  <richard.sandiford@arm.com>
2562
2563         * builtins.c (do_real_to_int_conversion): New function.
2564         (fold_fixed_mathfn, fold_builtin_int_roundingfn): Delete.
2565         (fold_builtin_1): Handle constant {i,l,ll}{ceil,floor,round}{f,,l}
2566         arguments here.
2567         * match.pd: Add rules previously handled by fold_fixed_mathfn
2568         and fold_builtin_int_roundingfn.
2569
2570 2015-10-26  Richard Sandiford  <richard.sandiford@arm.com>
2571
2572         * match.pd: Use macros to define built-in operator lists.
2573
2574 2015-10-20  Richard Sandiford  <richard.sandiford@arm.com>
2575             Richard Biener  <rguenther@suse.de>
2576
2577         * genmatch.c (dt_simplify::gen): Skip captures that are
2578         part of the result.
2579         (parser::parse_expr): Allow captures in results too.
2580         * builtins.c (fold_builtin_cexp): Delete.
2581         (fold_builtin_1): Handle constant cexp arguments here.
2582         * match.pd: Fold cexp(x+yi) to exp(x) * cexpi(y).
2583
2584 2015-10-26  Mikhail Maltsev  <maltsevm@gmail.com>
2585
2586         * alloc-pool.h (base_pool_allocator::initialize, ::allocate): Remove
2587         conditional compilation.
2588         (base_pool_allocator::remove): Use flag_checking.
2589
2590 2015-10-25  John David Anglin  <danglin@gcc.gnu.org>
2591
2592         * config/pa/som.h (EH_FRAME_THROUGH_COLLECT2): Define.
2593
2594         PR middle-end/68079
2595         * dojump.c (do_compare_and_jump): Canonicalize both function and
2596         method types.
2597
2598 2015-10-25  Uros Bizjak  <ubizjak@gmail.com>
2599
2600         PR target/68084
2601         * config/i386/i386.c (ix86_md_asm_adjust) [case 'a']: Use NE code
2602         for =@ccae.
2603
2604 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
2605
2606         PR ipa/pr67600
2607         * ipa-polymorphic-call.c
2608         (ipa_polymorphic_call_context::get_dynamic_type): Do not confuse
2609         instance offset with offset of outer type.
2610
2611 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
2612
2613         * fold-const.c (operand_equal_p): Handle VIEW_CONVERT_EXPR.
2614
2615 2015-10-23  Caroline Tice  <cmtice@google.com>
2616
2617         (from Richard Biener
2618         * tree.c (int_cst_hasher::hash):  Replace XOR with more efficient
2619         call to iterative_hash_host_wide_int.
2620
2621 2015-10-23  David Edelsohn  <dje.gcc@gmail.com>
2622
2623         * config.gcc (powerpc-ibm-aix[6789]) [default_use_cxa_atexit]:
2624         Define as yes.
2625
2626 2015-10-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
2627
2628         * tree-vect-generic.c (expand_vector_operations_1): Check
2629         optab exists before use it.
2630
2631 2015-10-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
2632
2633         * tree-vect-generic.c (expand_vector_condition): Avoid
2634         uninitialized variable warning.
2635
2636 2015-10-23  Jeff Law  <law@redhat.com>
2637
2638         * passes.c (execute_function_todo): Do not call flush_ssaname_freelist
2639         here.  Instead...
2640         (execute_todo): Call it here.
2641         * tree-ssanames.c (make_ssa_name_fn): Unconditionally gather reuse
2642         statistics
2643         (pass_release_ssa_names::execute): Do not call flusH_ssaname_freelist.
2644
2645 2015-10-23  Gregor Richards  <gregor.richards@uwaterloo.ca>
2646             Szabolcs Nagy  <szabolcs.nagy@arm.com>
2647
2648         * config.gcc (enable_secureplt): Add *-linux*-musl*.
2649
2650 2015-10-23  Jeff Law  <law@redhat.com>
2651
2652         PR tree-optimization/67830
2653         * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
2654         Explicitly verify the mask has no bits outside the type of
2655         the innermost operands.
2656
2657 2015-10-23  Gregor Richards  <gregor.richards@uwaterloo.ca>
2658             Szabolcs Nagy  <szabolcs.nagy@arm.com>
2659
2660         * config/rs6000/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
2661         (MUSL_DYNAMIC_LINKER64): Define.
2662         (GNU_USER_DYNAMIC_LINKER32): Update.
2663         (GNU_USER_DYNAMIC_LINKER64): Update.
2664         (CHOOSE_DYNAMIC_LINKER): Update.
2665
2666         * config/rs6000/sysv4.h (GNU_USER_DYNAMIC_LINKER): Update.
2667         (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER_E,)
2668         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
2669         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
2670         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
2671         (CHOOSE_DYNAMIC_LINKER): Update.
2672         (INCLUDE_DEFAULTS): Redefine.
2673
2674         * config/rs6000/sysv4le.h (MUSL_DYNAMIC_LINKER_E): Define.
2675
2676 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
2677
2678         * fold-const.c (operand_equal_p): Do not compare TYPE_MODE when
2679         comparing addresses.
2680
2681 2015-10-23  Jan Hubicka  <hubicka@ucw.cz>
2682
2683         * fold-const.c (operand_equal_p): Handle matching of vector
2684         constructors.
2685
2686 2015-10-23  David Edelsohn  <dje.gcc@gmail.com>
2687
2688         * doc/install.texi (*-ibm-aix*): Additional information for AIX 7.1.
2689
2690 2015-10-23  Steve Ellcey  <sellcey@imgtec.com>
2691             Andrew Pinski  <apinski@cavium.com>
2692
2693         PR rtl-optimization/67736
2694         * combine.c (simplify_comparison): Use gen_lowpart_or_truncate instead
2695         of gen_lowpart.
2696
2697 2015-10-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
2698
2699         PR middle-end/68066
2700         * tree.c (build_truth_vector_type): Support BLK mode
2701         returned for boolean vector.
2702
2703 2015-10-23  Alan Hayward <alan.hayward@arm.com>
2704
2705         PR tree-optimization/65947
2706         * tree-vect-loop.c
2707         (vect_is_simple_reduction_1): Find condition reductions.
2708         (vect_model_reduction_cost): Add condition reduction costs.
2709         (get_initial_def_for_reduction): Add condition reduction initial var.
2710         (vect_create_epilog_for_reduction): Add condition reduction epilog.
2711         (vectorizable_reduction): Condition reduction support.
2712         * tree-vect-stmts.c (vectorizable_condition): Add vect reduction arg
2713         * doc/sourcebuild.texi (Vector-specific attributes): Document
2714         vect_max_reduc
2715
2716 2015-10-23  Richard Biener  <rguenther@suse.de>
2717
2718         * Makefile.in (build/genmatch.o): Properly depend on is-a.h, tree.def
2719         and builtins.def.
2720
2721 2015-10-23  Richard Biener  <rguenther@suse.de>
2722             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
2723
2724         * fold-const.c (fold_binary_loc) : Move Fold (A & ~B) - (A & B)
2725         into (A ^ B) - B to match.pd
2726         Move (X & ~Y) | (~X & Y) is X ^ Y to match.pd.
2727
2728         * match.pd (minus (bit_and:cs @0 (bit_not @1)) (bit_and:s @0 @1)):
2729         New simplifier.
2730         (minus (bit_and:s @0 INTEGER_CST@2) (bit_and:s @0 INTEGER_CST@1)):
2731         New simplifier.
2732         (minus (bit_and:s @0 @1) (bit_and:cs @0 (bit_not @1))):
2733         New simplifier.
2734         (bit_ior:c (bit_and:c @0 (bit_not @1)) (bit_and:c (bit_not @0) @1)):
2735         New simplifier.
2736         (bit_ior:c (bit_and @0 INTEGER_CST@2) (bit_and (bit_not @0)
2737         INTEGER_CST@1)): New simplifier.
2738
2739 2015-10-23  Richard Sandiford  <richard.sandiford@arm.com>
2740
2741         * builtins.c (integer_valued_real_p): Move to fold-const.c.
2742         (fold_trunc_transparent_mathfn, fold_builtin_trunc, fold_builtin_floor)
2743         (fold_builtin_ceil, fold_builtin_round): Delete.
2744         (fold_builtin_1): Handle constant trunc, floor, ceil and round
2745         arguments here.
2746         * convert.c (convert_to_real): Remove narrowing of rounding
2747         functions.
2748         * fold-const.h (integer_valued_real_unary_p)
2749         (integer_valued_real_binary_p, integer_valued_real_call_p)
2750         (integer_valued_real_single_p, integer_valued_real_p): Declare.
2751         * fold-const.c (tree_single_nonnegative_warnv_p): Move
2752         name_registered_for_update_p check to SSA_NAME case statement.
2753         Don't call tree_simple_nonnegative_warnv_p for SSA names.
2754         (integer_valued_real_unary_p, integer_valued_real_binary_p)
2755         (integer_valued_real_call_p, integer_valued_real_single_p)
2756         (integer_valued_real_invalid_p): New functions.
2757         (integer_valued_real_p): Move from fold-const.c and rework
2758         to call the functions above.  Handle SSA names.
2759         * gimple-fold.h (gimple_stmt_integer_valued_real_p): Declare.
2760         * gimple-fold.c (gimple_assign_integer_valued_real_p)
2761         (gimple_call_integer_valued_real_p, gimple_phi_integer_valued_real_p)
2762         (gimple_stmt_integer_valued_real_p): New functions.
2763         * match.pd: Fold f(f(x))->f(x) for fp->fp rounding functions f.
2764         Fold f(x)->x for the same f if x is known to be integer-valued.
2765         Fold f(extend(x))->extend(f'(x)) if doing so doesn't affect
2766         the result.  Canonicalize floor(x) as trunc(x) if x is
2767         nonnegative.
2768
2769 2015-10-23  Tom de Vries  <tom@codesourcery.com>
2770
2771         * tree-ssa-structalias.c (intra_create_variable_infos): Use
2772         make_constraint_from.
2773
2774 2015-10-23  Tom de Vries  <tom@codesourcery.com>
2775
2776         * tree-ssa-structalias.c (create_variable_info_for_1): Add missing
2777         setting of is_full_var in case of a single field.
2778
2779 2015-10-22  Martin Sebor  <msebor@redhat.com>
2780
2781         PR driver/68043
2782         * config/i386/i386.opt: Add missing periods to the ends of sentences.
2783         * config/msp430/msp430.opt: Same.
2784
2785 2015-10-21  David Wohlferd  <dw@LimeGreenSocks.com>
2786
2787         * doc/extend.exp (Global Register Variables): Rewrite.
2788
2789 2015-10-22  Jeff Law  <law@redhat.com>
2790
2791         * genattrtab.c (main): If we do not have any annul-true or annul-false
2792         slots, then write out a dummy eligible_for_annul_true or
2793         eligible_for_annul_false as needed.
2794
2795 2015-10-22  Nick Clifton  <nickc@redhat.com>
2796
2797         * config/msp430/msp430.opt: Add -msilicon-errata and
2798         -msilicon-errata-warn.
2799         * config/msp430/msp430.h (ASM_SPEC): Pass new options on to
2800         assembler.
2801         * doc/invoke.texi: Document new options.
2802
2803 2015-10-22  Richard Biener  <rguenther@suse.de>
2804
2805         PR tree-optimization/58497
2806         * tree-vect-generic.c (ssa_uniform_vector_p): New helper.
2807         (expand_vector_operations_1): Use it.  Lower operations on
2808         all uniform vectors to scalar operations if the HW supports it.
2809
2810 2015-10-22  Richard Biener  <rguenther@suse.de>
2811
2812         PR tree-optimization/19049
2813         PR tree-optimization/65962
2814         * tree-vect-data-refs.c (vect_analyze_group_access_1): Fall back
2815         to strided accesses if single-element interleaving doesn't work.
2816
2817 2015-10-22  Richard Biener  <rguenther@suse.de>
2818
2819         PR middle-end/68046
2820         PR middle-end/61893
2821         * optabs.c (emit_libcall_block_1): Allow a NULL_RTX equiv.
2822         (expand_binop): For -ftrapv optabs do not record an REG_EQUAL note.
2823         (expand_unop): Likewise.
2824
2825 2015-10-22  Richard Biener  <rguenther@suse.de>
2826
2827         * fold-const.c (fold_addr_of_array_ref_difference): Properly
2828         convert operands before folding a MINUS_EXPR.
2829         (fold_binary_loc): Move simplification of MINUS_EXPR on
2830         converted POINTER_PLUS_EXPRs ...
2831         * match.pd: ... here.
2832
2833 2015-10-22  Richard Sandiford  <richard.sandiford@arm.com>
2834
2835         * builtins.c (fold_builtin_tan): Delete.
2836         (fold_builtin_1): Handle constant tan arguments here.
2837         * match.pd: Simplify (tan (atan x)) to x.
2838
2839 2015-10-22  Richard Sandiford  <richard.sandiford@arm.com>
2840
2841         * builtins.c (fold_builtin_cproj): Delete.
2842         (fold_builtin_1): Handle constant arguments here.
2843         (build_complex_cproj): Move and rename to...
2844         * tree.c: (build_complex_inf): ...this.
2845         * tree.h (build_complex_inf): Declare.
2846         * match.pd: Fold cproj(x)->x if x has no infinity.
2847         Use build_complex_inf for existing cproj rules.
2848
2849 2015-10-22  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2850
2851         PR target/68015
2852         * config/s390/s390.md (mov<mode>cc): Emit compare only if we don't
2853         already have a comparison result.
2854
2855 2015-10-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2856
2857         PR target/63304
2858         * config/aarch64/aarch64.c (aarch64_nopcrelative_literal_loads): New.
2859         (aarch64_expand_mov_immediate): Use aarch64_nopcrelative_literal_loads.
2860         (aarch64_classify_address): Likewise.
2861         (aarch64_secondary_reload): Likewise.
2862         (aarch64_override_options_after_change_1): Adjust.
2863         * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>):
2864         Use aarch64_nopcrelative_literal_loads.
2865         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
2866         * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
2867         Declare.
2868
2869 2015-10-21  Martin Sebor  <msebor@redhat.com>
2870
2871         PR driver/68043
2872         * opts.c (undocumented_msg, use_diagnosed_msg): New globals.
2873         (print_filtered_help): Reference aliased option's name and encourage
2874         readers to use it in preference to the alias if the former is not
2875         documented.  Mention when using an option is diagnosed.
2876         * gcc.c (display_help): End each sentence with a period.
2877
2878         * common.opt: End each sentence that describes an option with
2879         a period.
2880         * config/aarch64/aarch64.opt: Same.
2881         * config/alpha/alpha.opt: Same.
2882         * config/arc/arc.opt: Same.
2883         * config/arm/arm.opt: Same.
2884         * config/avr/avr.opt: Same.
2885         * config/bfin/bfin.opt: Same.
2886         * config/c6x/c6x.opt: Same.
2887         * config/cr16/cr16.opt: Same.
2888         * config/cris/cris.opt: Same.
2889         * config/cris/linux.opt: Same.
2890         * config/darwin.opt: Same.
2891         * config/epiphany/epiphany.opt: Same.
2892         * config/fr30/fr30.opt: Same.
2893         * config/frv/frv.opt: Same.
2894         * config/ft32/ft32.opt: Same.
2895         * config/g.opt: Same.
2896         * config/h8300/h8300.opt: Same.
2897         * config/i386/cygming.opt: Same.
2898         * config/i386/djgpp.opt: Same.
2899         * config/i386/i386.opt: Same.
2900         * config/i386/interix.opt: Same.
2901         * config/i386/mingw-w64.opt: Same.
2902         * config/i386/mingw.opt: Same.
2903         * config/ia64/ia64.opt: Same.
2904         * config/ia64/ilp32.opt: Same.
2905         * config/iq2000/iq2000.opt: Same.
2906         * config/linux.opt: Same.
2907         * config/lm32/lm32.opt: Same.
2908         * config/lynx.opt: Same.
2909         * config/m32c/m32c.opt: Same.
2910         * config/m32r/m32r.opt: Same.
2911         * config/m68k/ieee.opt: Same.
2912         * config/m68k/m68k.opt: Same.
2913         * config/mcore/mcore.opt: Same.
2914         * config/mep/mep.opt: Same.
2915         * config/microblaze/microblaze.opt: Same.
2916         * config/mips/mips.opt: Same.
2917         * config/mmix/mmix.opt: Same.
2918         * config/mn10300/mn10300.opt: Same.
2919         * config/moxie/moxie.opt: Same.
2920         * config/msp430/msp430.opt: Same.
2921         * config/nios2/elf.opt: Same.
2922         * config/nios2/nios2.opt: Same.
2923         * config/nvptx/nvptx.opt: Same.
2924         * config/pa/pa-hpux.opt: Same.
2925         * config/pa/pa-hpux1010.opt: Same.
2926         * config/pa/pa-hpux1111.opt: Same.
2927         * config/pa/pa-hpux1131.opt: Same.
2928         * config/pa/pa.opt: Same.
2929         * config/pa/pa64-hpux.opt: Same.
2930         * config/pdp11/pdp11.opt: Same.
2931         * config/rl78/rl78.opt: Same.
2932         * config/rs6000/476.opt: Same.
2933         * config/rs6000/aix64.opt: Same.
2934         * config/rs6000/darwin.opt: Same.
2935         * config/rs6000/linux64.opt: Same.
2936         * config/rs6000/rs6000.opt: Same.
2937         * config/rs6000/sysv4.opt: Same.
2938         * config/s390/s390.opt: Same.
2939         * config/s390/tpf.opt: Same.
2940         * config/sh/sh.opt: Same.
2941         * config/sol2.opt: Same.
2942         * config/sparc/long-double-switch.opt: Same.
2943         * config/sparc/sparc.opt: Same.
2944         * config/spu/spu.opt: Same.
2945         * config/stormy16/stormy16.opt: Same.
2946         * config/tilegx/tilegx.opt: Same.
2947         * config/tilepro/tilepro.opt: Same.
2948         * config/v850/v850.opt: Same.
2949         * config/vax/vax.opt: Same.
2950         * config/visium/visium.opt: Same.
2951         * config/vms/vms.opt: Same.
2952         * config/vxworks.opt: Same.
2953         * config/xtensa/xtensa.opt: Same.
2954
2955 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
2956             Sebastian Pop  <s.pop@samsung.com>
2957
2958         * graphite-scop-detection.c (parameter_index_in_region): Update call to
2959         invariant_in_sese_p_rec.
2960         * graphite-sese-to-poly.c (extract_affine): Same.
2961         * sese.c (invariant_in_sese_p_rec): Pass in an extra
2962         parameter has_vdefs.
2963         (scalar_evolution_in_region): Return chrec_dont_know when the scalar
2964         variable depends on virtual definitions in the current region.
2965         * sese.h (invariant_in_sese_p_rec): Update declaration.
2966
2967 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
2968             Sebastian Pop  <s.pop@samsung.com>
2969
2970         * graphite-scop-detection.c (build_scops): Do not handle scops
2971         with more than PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP arrays.
2972         * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP): New.
2973
2974 2015-10-21  Mikhail Maltsev  <maltsevm@gmail.com>
2975
2976         * config.in: Regenerate.
2977         * configure: Regenerate.
2978         * configure.ac (CHECKING_P): Define.
2979         * system.h: Use CHECKING_P.
2980
2981 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
2982
2983         PR ipa/67056
2984         * ipa-polymorphic-call.c (possible_placement_new): If cur_offset
2985         is negative we don't know the type.
2986         (check_stmt_for_type_change): Skip constructors of non-polymorphic
2987         types as those won't help devirutalization.
2988
2989 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
2990
2991         * fold-const.c (operand_equal_p): Add code matching empty constructors.
2992
2993 2015-10-21  Eric Botcazou  <ebotcazou@adacore.com>
2994
2995         * tree.def (CEIL_DIV_EXPR, FLOOR_DIV_EXPR, ROUND_DIV_EXPR): Tweak
2996         comments.
2997         (TRUNC_MOD_EXPR, CEIL_MOD_EXPR, FLOOR_MOD_EXPR, ROUND_MOD_EXPR):
2998         Add comments on sign of the result.
2999         * fold-const.c (tree_binary_nonnegative_warnv_p) <FLOOR_MOD_EXPR>:
3000         Recurse on operand #1 instead of operand #0.
3001         <CEIL_MOD_EXPR>: Do not recurse.
3002         <ROUND_MOD_EXPR>: Likewise.
3003
3004 2015-10-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3005
3006         * cfgrtl.c (pass_free_cfg::execute): Adjust.
3007         * final.c (dbr_sequence_length): Always define.
3008         (shorten_branches): Adjust.
3009         * genattr-common.c (main): Always define DELAY_SLOTS.
3010         * genattr.c (main): Unconditionally declare functions and define
3011         macros related to delay slots.
3012         * genattrtab.c (write_eligible_delay): Adjust.
3013         (main): Always write out delay slot functions.
3014         * opts.c (default_options_table): Adjust.
3015         * reorg.c (redirect_with_delay_slots_safe_p): Likewise.
3016         (redirect_with_delay_list_safe_p): Likewise.
3017         (fill_simple_delay_slots): Likewise.
3018         (fill_slots_from_thread): Likewise.
3019         (make_return_insns): Likewise.
3020         (dbr_schedule): Likewise.
3021         (rest_of_handle_delay_slots): Likewise.
3022         (pass_delay_slots::gate): Likewise.
3023         * toplev.c (process_options): Likewise.
3024
3025 2015-10-21  Richard Henderson  <rth@redhat.com>
3026
3027         * targhooks.c (default_addr_space_pointer_mode): Remove check
3028         for generic address space.
3029         (default_addr_space_address_mode): Likewise.
3030         (default_addr_space_valid_pointer_mode): Likewise.
3031         (default_addr_space_legitimate_address_p): Likewise.
3032         (default_addr_space_legitimize_address): Likewise.
3033         * target.def (addr_space.pointer_mode): Update documentation
3034         of default behavior.
3035         (addr_space.address_mode): Likewise.
3036         * tm.texi: Update.
3037
3038         * expr.c (expand_expr_real_2): Use convert_modes on disjoint
3039         address spaces.
3040
3041 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
3042
3043         * builtins.c (fold_builtin_cabs): Delete.
3044         (fold_builtin_1): Update accordingly.  Handle constant arguments here.
3045         * match.pd: Add rules previously handled by fold_builtin_cabs.
3046
3047 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
3048
3049         * fold-const.h (fold_strip_sign_ops): Delete.
3050         * fold-const.c (fold_strip_sign_ops): Likewise.
3051         (fold_unary_loc, fold_binary_loc): Remove calls to it.
3052         * builtins.c (fold_builtin_cos, fold_builtin_cosh)
3053         (fold_builtin_ccos): Delete.
3054         (fold_builtin_pow): Don't call fold_strip_sign_ops.
3055         (fold_builtin_hypot, fold_builtin_copysign): Likewise.
3056         Remove fndecl argument.
3057         (fold_builtin_1): Update calls accordingly.  Handle constant
3058         cos, cosh, ccos and ccosh here.
3059
3060 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
3061
3062         * doc/invoke.texi (-fdump-tree-backprop, -fssa-backprop): Document.
3063         * Makefile.in (OBJS): Add gimple-ssa-backprop.o.
3064         * common.opt (fssa-backprop): New option.
3065         * fold-const.h (negate_mathfn_p): Declare.
3066         * fold-const.c (negate_mathfn_p): Make public.
3067         * timevar.def (TV_TREE_BACKPROP): New.
3068         * tree-pass.h (make_pass_backprop): Declare.
3069         * passes.def (pass_backprop): Add.
3070         * gimple-ssa-backprop.c: New file.
3071
3072 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
3073             Sebastian Pop  <s.pop@samsung.com>
3074
3075         * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard):
3076         Do not call create_empty_if_region_on_edge when cond_expr is true.
3077         (translate_isl_ast_node_for): Check whether a guard has been generated.
3078
3079 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
3080
3081         * graphite-poly.h (struct dr_info): Added invalid_alias_set number.
3082         (operator=): Removed.
3083         (dr_info): Make alias_set number the last argument with default
3084         value of invalid_alias_set.
3085         * graphite-sese-to-poly.c (build_scop_drs): Update constructor
3086         of dr_info.
3087         (rewrite_reductions_out_of_ssa): Iterate only through the
3088         basic blocks which are inside region.
3089         (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
3090         * sese.h (struct sese_l): Removed assignment operator.
3091         (split_region_for_bb): Removed dead code.
3092
3093 2015-10-21  Aditya Kumar  <aditya.k7@samsung.com>
3094
3095         * graphite-poly.h (struct dr_info): Removed conversion constructor.
3096         (struct scop): Renamed scop::region to scop::scop_info
3097         (scop_set_region): Same.
3098         (SCOP_REGION): Removed
3099         (SCOP_CONTEXT): Removed.
3100         (POLY_SCOP_P): Removed.
3101         * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user):
3102         Rename scop->region to scop->scop_info.
3103         (add_parameters_to_ivs_params): Same.
3104         (graphite_regenerate_ast_isl): Same.
3105         * graphite-poly.c (new_scop): Same.
3106         (free_scop): Same.
3107         (print_scop_params): Same.
3108         * graphite-scop-detection.c (scop_detection::remove_subscops): Same.
3109         (scop_detection::remove_intersecting_scops): Use pointer to sese_l.
3110         (dot_all_scops_1): Rename scop->region to scop->scop_info.
3111         (scop_detection::nb_pbbs_in_loops): Same.
3112         (find_scop_parameters): Same.
3113         (try_generate_gimple_bb): Same.
3114         (gather_bbs::before_dom_children): Same.
3115         (gather_bbs::after_dom_children): Same.
3116         (build_scops): Same.
3117         * graphite-sese-to-poly.c (build_scop_scattering): Same.
3118         (extract_affine_chrec): Same.
3119         (extract_affine): Same.
3120         (set_scop_parameter_dim): Same.
3121         (build_loop_iteration_domains): Same.
3122         (create_pw_aff_from_tree): Same.
3123         (add_param_constraints): Same.
3124         (build_scop_iteration_domain): Same.
3125         (build_scop_drs): Same.
3126         (analyze_drs_in_stmts): Same.
3127         (insert_out_of_ssa_copy_on_edge): Same.
3128         (rewrite_close_phi_out_of_ssa):Same.
3129         (rewrite_reductions_out_of_ssa):Same.
3130         (handle_scalar_deps_crossing_scop_limits):Same.
3131         (rewrite_cross_bb_scalar_deps):Same.
3132         (rewrite_cross_bb_scalar_deps_out_of_ssa):Same.
3133         (build_poly_scop):Same.
3134         (build_alias_set): Use pointer to dr_info.
3135         * graphite.c (print_graphite_scop_statistics):
3136         (graphite_transform_loops):
3137         * sese.h (struct sese_l): Remove conversion constructor.
3138
3139 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
3140
3141         PR middle-end/67966
3142         * tree.c (verify_type): Verify that TYPE_MODE match
3143         between TYPE_CANONICAL and type.
3144         * expr.c (store_expr_with_bounds): Revert my previous change.
3145         * expmed.c (store_bit_field_1): Revert prevoius change.
3146         * gimple-expr.c (useless_type_conversion_p): Require TYPE_MODE
3147         to match for all types.
3148
3149 2015-10-21  Nathan Sidwell  <nathan@codesourcery.com>
3150
3151         * omp-low.c (check_omp_nesting_restrictions): Check OpenACC loop
3152         nesting.
3153
3154 2015-10-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
3155
3156         * doc/tm.texi: Regenerated.
3157         * doc/tm.texi.in (TARGET_VECTORIZE_GET_MASK_MODE): New.
3158         * stor-layout.c (layout_type): Use mode to get vector mask size.
3159         * target.def (get_mask_mode): New.
3160         * targhooks.c (default_get_mask_mode): New.
3161         * targhooks.h (default_get_mask_mode): New.
3162         * tree-vect-stmts.c (get_same_sized_vectype): Add special case
3163         for boolean vector.
3164         * tree.c (MAX_BOOL_CACHED_PREC): New.
3165         (nonstandard_boolean_type_cache): New.
3166         (build_nonstandard_boolean_type): New.
3167         (make_vector_type): Vector mask has no canonical type.
3168         (build_truth_vector_type): New.
3169         (build_same_sized_truth_vector_type): New.
3170         (truth_type_for): Support vector masks.
3171         * tree.h (VECTOR_BOOLEAN_TYPE_P): New.
3172         (build_truth_vector_type): New.
3173         (build_same_sized_truth_vector_type): New.
3174         (build_nonstandard_boolean_type): New.
3175         * tree-cfg.c (verify_gimple_comparison) Require boolean
3176         vector type for vector comparison.
3177         (verify_gimple_assign_ternary): Likewise.
3178         * optabs.c (expand_vec_cond_expr): Accept boolean vector as
3179         condition operand.
3180         * tree-vect-stmts.c (vectorizable_condition): Use boolean
3181         vector type for vector comparison.
3182         * tree-vect-generic.c (elem_op_func): Add new operand to hold
3183         vector type.
3184         (do_unop): Adjust to modified function type.
3185         (do_binop): Likewise.
3186         (do_plus_minus): Likewise.
3187         (do_negate); Likewise.
3188         (expand_vector_piecewise): Likewise.
3189         (do_cond): Likewise.
3190         (do_compare): Use comparison instead of condition.
3191         (expand_vector_divmod): Use boolean vector type for comparison.
3192         (expand_vector_operations_1): Skip scalar mask operations.
3193
3194 2015-10-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
3195
3196         * omp-low.c (simd_clone_create): Set in_other_partition
3197         for created clones.
3198
3199 2015-10-21  David Wohlferd  <dw@LimeGreenSocks.com>
3200
3201         * doc/extend.exp (Local Register Variables): Rewrite.
3202
3203 2015-10-21  Richard Sandiford  <richard.sandiford@arm.com>
3204
3205         * match.pd: Add rules to simplify ccos, ccosh, hypot, copysign
3206         and x*x in cases where the operands are sign ops.  Extend these
3207         rules to handle copysign as a sign op (including for cos, cosh
3208         and pow, which already treated negate and abs as sign ops).
3209
3210 2015-10-21  Uros Bizjak  <ubizjak@gmail.com>
3211
3212         PR target/68018
3213         * config/i386/i386.c (ix86_compute_frame_layout): Realign the stack
3214         for 64-bit MS_ABI targets also when default incoming stack boundary
3215         is overriden.
3216
3217 2015-10-21  Richard Biener  <rguenther@suse.de>
3218
3219         * tree-ssa-sccvn.c (cond_stmts_equal_p): Compare two GIMPLE
3220         cond stmts, enhanced and split out from ...
3221         (vn_phi_eq): ... here.
3222
3223 2015-10-21  Richard Biener  <rguenther@suse.de>
3224
3225         PR middle-end/68031
3226         * fold-const.c: Include tree-ssa-operands.h and tree-into-ssa.h.
3227         (tree_ssa_name_nonnegative_warnv_p): Fold into ...
3228         (tree_single_nonnegative_warnv_p): ... here.  For SSA names
3229         make sure they are not registered for update.
3230
3231 2015-10-21  Richard Biener  <rguenther@suse.de>
3232
3233         PR tree-optimization/68026
3234         * tree-ssa-ccp.c (get_value_for_expr): Zero-extend mask for
3235         unsigned VARYING values.
3236
3237 2015-10-21  Maxim Ostapenko  <m.ostapenko@partner.samsung.com>
3238
3239         * asan.c (asan_emit_stack_protection): Don't pass local stack to
3240         asan_stack_malloc_[n] anymore. Check if asan_stack_malloc_[n] returned
3241         NULL and use local stack than.
3242         (asan_finish_file): Insert __asan_version_mismatch_check_v[n] call
3243         in addition to __asan_init.
3244         * sanitizer.def (BUILT_IN_ASAN_INIT): Rename to __asan_init.
3245         (BUILT_IN_ASAN_VERSION_MISMATCH_CHECK): Add new builtin call.
3246         * asan.h (asan_intercepted_p): Handle new string builtins.
3247         * ubsan.c (ubsan_use_new_style_p): New function.
3248         (ubsan_instrument_float_cast): If location is unknown, assign
3249         input_location to loc. Propagate loc to ubsan_create_data if
3250         ubsan_use_new_style_p returned true.
3251
3252 2015-10-21  Jeff Law  <law@redhat.com>
3253
3254         * Makefile.in (OBJS): Remove sched-vis.c
3255         * sched-vis.c: Removed.  Code moved into...
3256         * print-rtl.c: Here.  Include cfg.h, pretty-print.h and print-rtl.h.
3257         * rtl.h: Remove prototypes for functions now living in print-rtl.c
3258         * print-rtl.h Add prototypes for new functions in print-rtl.c.
3259         * auto-inc-dec.c: Include print-rtl.h
3260         * cfgrtl.c, combine.c, final.c haifa-sched.c: Likewise.
3261         * ira.c, lra-constraints.c, lra.c, sel-sched-dump.c: Likewise.
3262
3263         * varasm.c (handle_vtv_comdat_section): Mark 2nd parameter with
3264         ATTRIBUTE_UNUSED.
3265
3266 2015-10-21  Richard Biener  <rguenther@suse.de>
3267             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
3268
3269         * fold-const.c (fold_binary_loc) : Move (-A) * (-B) -> A * B
3270         to match.pd.
3271         Move (a * (1 << b)) is (a << b) to match.pd.
3272         Move convert (C1/X)*C2 into (C1*C2)/X to match.pd.
3273         Move ~X & X, (X == 0) & X, and !X & X are zero to match.pd.
3274         Move X & ~X , X & (X == 0), and X & !X are zero to match.pd.
3275
3276         * match.pd (mult:c @0 (convert? (lshift integer_onep@1 @2))):
3277         New simplifier.
3278         (mult (rdiv:s REAL_CST@0 @1) REAL_CST@2): New simplifier.
3279         (bit_and:c (convert? @0) (convert? (bit_not @0))): New simplifier.
3280         (bit_ior (bit_and:s @0 (bit_not:s @1)) (bit_and:s (bit_not:s @0) @1))
3281         : New simplifier.
3282         (mult:c (convert1? (negate @0)) (convert2? negate_expr_p@1)):
3283         New simplifier.
3284         (match (logical_inverted_value @0) (truth_not @0)) : New Predicate.
3285
3286 2015-10-21  Gregor Richards  <gregor.richards@uwaterloo.ca>
3287             Szabolcs Nagy  <szabolcs.nagy@arm.com>
3288             Alan Modra  <amodra@gmail.com>
3289
3290         * config/rs6000/secureplt.h (LINK_SECURE_PLT_DEFAULT_SPEC): Define.
3291         * config/rs6000/sysv4.h (LINK_SECURE_PLT_SPEC): Define.
3292         (LINK_SPEC): Add %(link_secure_plt).
3293         (SUBTARGET_EXTRA_SPECS): Add "link_secure_plt".
3294         * config/rs6000/linux64.h (LINK_SECURE_PLT_SPEC): Redefine.
3295
3296 2015-10-20  Gregor Richards  <gregor.richards@uwaterloo.ca>
3297             Szabolcs Nagy  <szabolcs.nagy@arm.com>
3298
3299         * config/sh/linux.h (MUSL_DYNAMIC_LINKER): Define.
3300         (MUSL_DYNAMIC_LINKER_E, MUSL_DYNAMIC_LINKER_FP): Define.
3301
3302 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3303
3304         * config/aarch64/aarch64.c (aarch64_mode_valid_for_sched_fusion_p):
3305         New function.
3306         (fusion_load_store): Use it.
3307         * config/aarch64/aarch64-ldpstp.md: Add new peephole2s for
3308         ldp and stp in VD modes.
3309         * config/aarch64/aarch64-simd.md (load_pair<mode>, VD): New pattern.
3310         (store_pair<mode>, VD): Likewise.
3311
3312 2015-10-20  Vladimir Makarov  <vmakarov@redhat.com>
3313
3314         PR rtl-optimization/67609
3315         * lra-splill.c (lra_final_code_change): Don't remove all
3316         sub-registers.
3317
3318 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3319
3320         * simplify-rtx.c (simplify_binary_operation): If either operand was
3321         a constant pool reference use them if all other simplifications failed.
3322
3323 2015-10-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3324
3325         * config/aarch64/aarch64.md
3326         (*aarch64_fcvt<su_optab><GPF:mode><GPI:mode>2_mult): New pattern.
3327         * config/aarch64/aarch64-simd.md
3328         (*aarch64_fcvt<su_optab><VDQF:mode><fcvt_target>2_mult): Likewise.
3329         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle above patterns.
3330         (aarch64_fpconst_pow_of_2): New function.
3331         (aarch64_vec_fpconst_pow_of_2): Likewise.
3332         * config/aarch64/aarch64-protos.h (aarch64_fpconst_pow_of_2): Declare
3333         prototype.
3334         (aarch64_vec_fpconst_pow_of_2): Likewise.
3335         * config/aarch64/predicates.md (aarch64_fp_pow2): New predicate.
3336         (aarch64_fp_vec_pow2): Likewise.
3337
3338 2015-10-20  Uros Bizjak  <ubizjak@gmail.com>
3339
3340         * config/alpha/alpha.h (HARD_REGNO_NREGS): Use CEIL macro.
3341         (ALPHA_ARG_SIZE): Ditto.  Remove unused NAMED argument.
3342         * config/alpha/alpha.c (alpha_function_arg_advance): Update
3343         ALPHA_ARG_SIZE usage.
3344         (alpha_arg_partial_bytes): Ditto.
3345
3346 2015-10-20  H.J. Lu  <hongjiu.lu@intel.com>
3347
3348         PR target/66810
3349         * cgraphbuild.c (pass_build_cgraph_edges::execute): Skip local
3350         error_mark_node decls.
3351
3352 2015-10-20  H.J. Lu  <hongjiu.lu@intel.com>
3353
3354         PR target/67963
3355         PR target/67985
3356         * common/config/i386/i386-common.c (ix86_handle_option): Remove
3357         OPT_miamcu handling.
3358         * config/i386/i386.c (PTA_NO_80387): New macro.
3359         (processor_alias_table): Add PTA_NO_80387 to lakemont.
3360         (ix86_option_override_internal): Update MASK_80387 from
3361         PTA_NO_80387.  Don't warn x87/MMX/SSE/AVX for -miamcu.  Warn
3362         SSE math only if 80387 is supported.  Don't change
3363         MASK_FLOAT_RETURNS.
3364         (ix86_valid_target_attribute_tree): Enable FPMATH_387 only if
3365         80387 is supported.
3366         * config/i386/i386.h (TARGET_FLOAT_RETURNS_IN_80387): True only
3367         if TARGET_80387 is true and TARGET_IAMCU is false.
3368         (TARGET_FLOAT_RETURNS_IN_80387_P): True only if TARGET_80387_P
3369         is true and TARGET_IAMCU_P is false.
3370
3371 2015-10-20  Richard Biener  <rguenther@suse.de>
3372
3373         PR tree-optimization/68017
3374         * tree-tailcall.c (eliminate_tail_call): Remove stmts backwards.
3375
3376 2015-10-20  Martin Liska  <mliska@suse.cz>
3377
3378         * cgraphclones.c (cgraph_node::create_virtual_clone):
3379         Verify cgraph_node.local.versionable instead of calling
3380         tree_versionable_function_p.
3381         * ipa-cp.c (determine_versionability): Save the information
3382         to ipa_node_params summary.
3383         (ipcp_versionable_function_p): Use it.
3384         (ipcp_propagate_stage): Pass IPA_NODE_REF to a called function.
3385         (ipcp_generate_summary): Do not compute cgraph_node
3386         versionability.
3387         * ipa-inline-analysis.c (inline_generate_summary): Compute
3388         versionability for all cgraph nodes.
3389         * ipa-prop.c (ipa_node_params_t::duplicate): Duplicate
3390         ipa_node_params::versionability.
3391         * ipa-prop.h (struct ipa_node_params): Declare it.
3392
3393 2015-10-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3394
3395         PR other/67868
3396         * varasm.c (assemble_variable): Move special vtv handling to..
3397         (handle_vtv_comdat_sections): .. here. New function.
3398         (output_object_block): Handle vtv sections.
3399
3400 2015-10-20  Szabolcs Nagy  <szabolcs.nagy@arm.com>
3401
3402         PR target/66912
3403         * varasm.c (default_binds_local_p_2): Turn on extern_protected_data.
3404
3405 2015-10-20  Arkadiusz Drabczyk  <arkadiusz@drabczyk.org>
3406
3407         * doc/extend.texi: Update documentation WRT inline functions.
3408
3409 2015-10-20  Alan Modra  <amodra@gmail.com>
3410
3411         PR go/66870
3412         * config/rs6000/sysv4.h (TARGET_CAN_SPLIT_STACK_64BIT): Don't define.
3413         * config/rs6000/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
3414         (TARGET_CAN_SPLIT_STACK_64BIT): Define.
3415
3416 2015-10-19  Pierre-Marie de Rodat  <derodat@adacore.com>
3417
3418         PR rtl-optimization/66790
3419         * df.h (DF_MIR): New macro.
3420         (DF_LAST_PROBLEM_PLUS1): Update to be past DF_MIR
3421         (DF_MIR_INFO_BB): New macro.
3422         (DF_MIR_IN, DF_MIR_OUT): New macros.
3423         (struct df_mir_bb_info): New.
3424         (df_mir): New macro.
3425         (df_mir_add_problem, df_mir_simulate_one_insn): New forward
3426         declarations.
3427         (df_mir_get_bb_info): New.
3428         * df-problems.c (struct df_mir_problem_data): New.
3429         (df_mir_free_bb_info, df_mir_alloc, df_mir_reset,
3430         df_mir_bb_local_compute, df_mir_local_compute, df_mir_init,
3431         df_mir_confluence_0, df_mir_confluence_n,
3432         df_mir_transfer_function, df_mir_free, df_mir_top_dump,
3433         df_mir_bottom_dump, df_mir_verify_solution_start,
3434         df_mir_verify_solution_end): New.
3435         (problem_MIR): New.
3436         (df_mir_add_problem, df_mir_simulate_one_insn): New.
3437         * timevar.def (TV_DF_MIR): New.
3438         * ree.c: Include bitmap.h
3439         (add_removable_extension): Add an INIT_REGS parameter.  Use it
3440         to skip zero-extensions that may get an uninitialized register.
3441         (find_removable_extensions): Compute must-initialized registers
3442         using the MIR dataflow problem. Update the call to
3443         add_removable_extension.
3444         (find_and_remove_re): Call df_mir_add_problem.
3445
3446 2015-10-19  Segher Boessenkool  <segher@kernel.crashing.org>
3447
3448         * common/config/mn10300/mn10300-common.c
3449         (mn10300_option_optimization_table) <OPT_freorder_blocks_algorithm_>:
3450         Use REORDER_BLOCKS_ALGORITHM_STC at -Os and up.
3451
3452 2015-10-19  David Wohlferd  <dw@LimeGreenSocks.com>
3453
3454         * doc/extend.texi (Explicit Register Variables): Simplify and
3455         avoid unnecessary and confusion abbreviations.  Update cross
3456         references.
3457         doc/implement-c.tex: Update cross reference.
3458
3459 2015-10-19  Jeff Law  <law@redhat.com>
3460
3461         * tree-ssa-threadupdate.c (valid_jump_thread_path): Reject paths
3462         that create irreducible loops unless the path elimiantes a multiway
3463         branch.
3464
3465 2015-10-19  Richard Biener  <rguenther@suse.de>
3466
3467         PR tree-optimization/67975
3468         * tree-cfg.h (extract_true_false_controlled_edges): Declare.
3469         * tree-cfg.c (extract_true_false_controlled_edges): Split out
3470         core worker from ...
3471         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): ... here.
3472         * tree-ssa-sccvn.c (vn_phi_compute_hash): Hash number of args
3473         instead of block number for PHIs with two or one args.
3474         (vn_phi_eq): Compare edge predicates of PHIs that are in different
3475         blocks.
3476
3477 2015-10-19  Richard Biener  <rguenther@suse.de>
3478
3479         * gimple-fold.c (gimple_phi_nonnegative_warnv_p): New function.
3480         (gimple_stmt_nonnegative_warnv_p): Use it.
3481         * match.pd (CPROJ): New operator list.
3482         (cproj (complex ...)): Move simplifications from ...
3483         * builtins.c (fold_builtin_cproj): ... here.
3484
3485 2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>
3486
3487         * config/i386/i386.c (ix86_expand_vector_move): Use
3488         GET_MODE_BITSIZE for IA MCU psABI to get vector natural
3489         alignment.
3490
3491 2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>
3492
3493         * doc/invoke.texi: Replace @optindex with @opindex.
3494
3495 2015-10-19  H.J. Lu  <hongjiu.lu@intel.com>
3496
3497         PR target/67995
3498         * config/i386/i386.c (ix86_valid_target_attribute_tree): If
3499         arch= is set,  clear all bits in x_ix86_isa_flags, except for
3500         ISA_64BIT, ABI_64, ABI_X32, and CODE16.
3501
3502 2015-10-19  Joost VandeVondele  <vondele@gnu.gcc.org>
3503
3504         PR middle-end/68002
3505         * common.opt (fkeep-static-functions): New option.
3506         * doc/invoke.texi: Document it.
3507         * cgraphunit.c (cgraph_node::finalize_function): Use it.
3508
3509 2015-10-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3510
3511         * sched-int.h (struct autopref_multipass_data_): Remove offset
3512         field.  Add min_offset, max_offset, multi_mem_insn_p fields.
3513         * haifa-sched.c (analyze_set_insn_for_autopref): New function.
3514         (autopref_multipass_init): Use it.  Handle PARALLEL sets.
3515         (autopref_rank_data): New function.
3516         (autopref_rank_for_schedule): Use it.
3517         (autopref_multipass_dfa_lookahead_guard_1): Likewise.
3518
3519 2015-10-18  Mikhail Maltsev  <maltsevm@gmail.com>
3520
3521         PR other/65800
3522         * gengtype.c (dump_type): Handle TYPE_UNDEFINED correctly.
3523
3524 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
3525
3526         * config/darwin.h (TARGET_SYSTEM_ROOT): Remove this from here,
3527         (HAVE_LD_SYSROOT): New.  (SYSROOT_SPEC): New.
3528         (LINK_SYSROOT_SPEC): Revise to remove the default for target sysroot.
3529         (STANDARD_STARTFILE_PREFIX_1): New.
3530         (STANDARD_STARTFILE_PREFIX_2): New.
3531
3532 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
3533
3534         * config/darwin-driver.c (darwin_default_min_version): Refactor code.
3535         (darwin_driver_init): Note a version-min when provided on the c/l.
3536         * config/darwin.h (%darwin_minversion): Remove.
3537         * config/i386/darwin.h: Likewise.
3538         * config/rs6000/darwin.h: Likewise.
3539         * config/darwin.opt (mmacosx-version-min=): Use the configured default,
3540         rather than an arbitrary constant.
3541
3542 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
3543
3544         * config/darwin-driver.c (darwin_driver_init): Handle '-arch' for
3545         PPC, detect conflicts between -arch and multilib settings.  Detect
3546         and warn about conflicts between multiple -arch definitions.
3547
3548 2015-10-18  Iain Sandoe  <iain@codesourcery.com>
3549
3550         * config/darwin-driver.c: Adjust includes to add diagnostic-core.
3551
3552 2015-10-16  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3553
3554         * lra-constraints.c (add_next_usage_insn): Change argument type
3555         from rtx to rtx_insn *.
3556
3557 2015-10-16  H.J. Lu  <hongjiu.lu@intel.com>
3558
3559         * i386/x86-tune.def (X86_TUNE_ALWAYS_FANCY_MATH_387): Disable
3560         for Lakemont.
3561
3562 2015-10-16  Andrew MacLeod  <amacleod@redhat.com>
3563
3564         * config/tilepro/gen-mul-tables.cc: Adjust include files.
3565         * config/tilegx/mul-tables.c: Regenerate.
3566         * config/tilepro/mul-tables.c: Regenerate.
3567
3568         * config/tilegx/tilegx-c.c: Adjust include files.
3569         * config/tilegx/tilegx.c: Likewise.
3570         * config/tilepro/tilepro-c.c: Likewise.
3571         * config/tilepro/tilepro.c: Likewise.
3572         * config/aarch64/aarch64-builtins.c: Likewise.
3573         * config/aarch64/aarch64.c: Likewise.
3574         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
3575         * config/alpha/alpha.c: Likewise.
3576         * config/arc/arc.c: Likewise.
3577         * config/arm/aarch-common.c: Likewise.
3578         * config/arm/arm-builtins.c: Likewise.
3579         * config/arm/arm-c.c: Likewise.
3580         * config/arm/arm.c: Likewise.
3581         * config/avr/avr-c.c: Likewise.
3582         * config/avr/avr-devices.c: Likewise.
3583         * config/avr/avr-log.c: Likewise.
3584         * config/avr/avr.c: Likewise.
3585         * config/bfin/bfin.c: Likewise.
3586         * config/c6x/c6x.c: Likewise.
3587         * config/cr16/cr16.c: Likewise.
3588         * config/cris/cris.c: Likewise.
3589         * config/darwin-c.c: Likewise.
3590         * config/darwin-driver.c: Likewise.
3591         * config/darwin.c: Likewise.
3592         * config/default-c.c: Likewise.
3593         * config/epiphany/epiphany.c: Likewise.
3594         * config/epiphany/mode-switch-use.c: Likewise.
3595         * config/epiphany/resolve-sw-modes.c: Likewise.
3596         * config/fr30/fr30.c: Likewise.
3597         * config/frv/frv.c: Likewise.
3598         * config/ft32/ft32.c: Likewise.
3599         * config/glibc-c.c: Likewise.
3600         * config/h8300/h8300.c: Likewise.
3601         * config/i386/host-cygwin.c: Likewise.
3602         * config/i386/host-mingw32.c: Likewise.
3603         * config/i386/i386-c.c: Likewise.
3604         * config/i386/i386.c: Likewise.
3605         * config/i386/msformat-c.c: Likewise.
3606         * config/i386/winnt-cxx.c: Likewise.
3607         * config/i386/winnt-stubs.c: Likewise.
3608         * config/i386/winnt.c: Likewise.
3609         * config/ia64/ia64-c.c: Likewise.
3610         * config/ia64/ia64.c: Likewise.
3611         * config/iq2000/iq2000.c: Likewise.
3612         * config/lm32/lm32.c: Likewise.
3613         * config/m32c/m32c-pragma.c: Likewise.
3614         * config/m32c/m32c.c: Likewise.
3615         * config/m32r/m32r.c: Likewise.
3616         * config/mcore/mcore.c: Likewise.
3617         * config/mep/mep-pragma.c: Likewise.
3618         * config/mep/mep.c: Likewise.
3619         * config/microblaze/microblaze-c.c: Likewise.
3620         * config/microblaze/microblaze.c: Likewise.
3621         * config/mips/mips-tables.opt
3622         * config/mips/mips.c: Likewise.
3623         * config/mmix/mmix.c: Likewise.
3624         * config/mn10300/mn10300.c: Likewise.
3625         * config/moxie/moxie.c: Likewise.
3626         * config/msp430/msp430-c.c: Likewise.
3627         * config/msp430/msp430.c: Likewise.
3628         * config/nds32/nds32-cost.c: Likewise.
3629         * config/nds32/nds32-fp-as-gp.c: Likewise.
3630         * config/nds32/nds32-intrinsic.c: Likewise.
3631         * config/nds32/nds32-isr.c: Likewise.
3632         * config/nds32/nds32-md-auxiliary.c: Likewise.
3633         * config/nds32/nds32-memory-manipulation.c: Likewise.
3634         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
3635         * config/nds32/nds32-predicates.c: Likewise.
3636         * config/nds32/nds32.c: Likewise.
3637         * config/nios2/nios2.c: Likewise.
3638         * config/nvptx/mkoffload.c: Likewise.
3639         * config/nvptx/nvptx.c: Likewise.
3640         * config/pa/pa.c: Likewise.
3641         * config/pdp11/pdp11.c: Likewise.
3642         * config/rl78/rl78-c.c: Likewise.
3643         * config/rl78/rl78.c: Likewise.
3644         * config/rs6000/host-darwin.c: Likewise.
3645         * config/rs6000/rs6000-c.c: Likewise.
3646         * config/rs6000/rs6000-linux.c: Likewise.
3647         * config/rs6000/rs6000.c: Likewise.
3648         * config/rx/rx.c: Likewise.
3649         * config/s390/s390-c.c: Likewise.
3650         * config/s390/s390.c: Likewise.
3651         * config/sh/sh-c.c: Likewise.
3652         * config/sh/sh-mem.cc: Likewise.
3653         * config/sh/sh.c: Likewise.
3654         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
3655         * config/sh/sh_treg_combine.cc: Likewise.
3656         * config/sol2-c.c: Likewise.
3657         * config/sol2-cxx.c: Likewise.
3658         * config/sol2-stubs.c: Likewise.
3659         * config/sol2.c: Likewise.
3660         * config/sparc/sparc-c.c: Likewise.
3661         * config/sparc/sparc.c: Likewise.
3662         * config/spu/spu-c.c: Likewise.
3663         * config/spu/spu.c: Likewise.
3664         * config/stormy16/stormy16.c: Likewise.
3665         * config/v850/v850-c.c: Likewise.
3666         * config/v850/v850.c: Likewise.
3667         * config/vax/vax.c: Likewise.
3668         * config/visium/visium.c: Likewise.
3669         * config/vms/vms-c.c: Likewise.
3670         * config/vms/vms.c: Likewise.
3671         * config/vxworks.c: Likewise.
3672         * config/winnt-c.c: Likewise.
3673         * config/xtensa/xtensa.c: Likewise.
3674
3675 2015-10-16  Christian Bruel  <christian.bruel@st.com>
3676
3677         PR target/67745
3678         * config/arm/arm.h (FUNCTION_BOUNDARY): Use FUNCTION_BOUNDARY_P.
3679         (FUNCTION_BOUNDARY_P): New macro:
3680         * config/arm/arm.c (TARGET_RELAYOUT_FUNCTION, arm_relayout_function):
3681         New hook.
3682         * doc/tm.texi.in (TARGET_RELAYOUT_FUNCTION): Document.
3683         * doc/tm.texi (TARGET_RELAYOUT_FUNCTION): New hook.
3684         * target.def (TARGET_RELAYOUT_FUNCTION): Likewise.
3685         * function.c (allocate_struct_function): Call
3686         relayout_function hook.
3687         * passes.c (rest_of_decl_compilation): Likewise.
3688
3689 2015-10-16  Christian Bruel  <christian.bruel@st.com>
3690
3691         PR target/67745
3692         * config/arm/arm.h (FUNCTION_BOUNDARY): Move optimize_size condition to:
3693         * config/arm/arm.c (arm_option_override_internal): Call
3694         arm_override_options_after_change_1.
3695         (arm_override_options_after_change): New function.
3696         (arm_override_options_after_change_1): Likewise.
3697         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define hook.
3698
3699 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
3700
3701         Revert:
3702         * ipa-icf-gimple.c (func_checker::compare_operand): Compare only
3703         empty constructors.
3704
3705 2015-10-16  Eric Botcazou  <ebotcazou@adacore.com>
3706
3707         * tree.c (recompute_tree_invariant_for_addr_expr): Assert that the
3708         argument is an ADDR_EXPR.
3709
3710 2015-10-16  Richard Biener  <rguenther@suse.de>
3711
3712         * gimple-fold.c (gimple_fold_builtin_memory_op): Use gimple_build
3713         and get rid of force_gimple_operand_gsi.
3714         (gimple_fold_builtin_memory_chk): Likewise.
3715         (gimple_fold_builtin_stxcpy_chk): Likewise.
3716         (rewrite_to_defined_overflow): Likewise.
3717         (gimple_convert_to_ptrofftype): New function.
3718         * gimple-fold.h (gimple_convert_to_ptrofftype): New overload, declare.
3719
3720 2015-10-16  Richard Biener  <rguenther@suse.de>
3721
3722         * tree-nested.h (build_addr): Adjust prototype.
3723         * tree-nested.c (build_addr): Remove context argument and use
3724         mark_addressable.
3725         (get_static_chain): Adjust calls to build_addr.
3726         (convert_nl_goto_reference): Likewise.
3727         (convert_tramp_reference_op): Likewise.
3728         (finalize_nesting_tree_1): Likewise.
3729         * value-prof.c (gimple_ic): Likewise.
3730         * gimple-low.c (lower_builtin_setjmp): Likewise.
3731         * tree-parloops.c (take_address_of): Likewise.
3732         (create_call_for_reduction_1): Likewise.
3733         * tree-profile.c (gimple_gen_interval_profiler): Likewise.
3734         (gimple_gen_ic_func_profiler): Likewise.
3735
3736 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
3737
3738         * ipa-icf-gimple.c (func_checker::compare_operand): Compare only
3739         empty constructors.
3740
3741 2015-10-16  Michael Collison  <michael.collison@linaro.org>
3742             Andrew Pinski <andrew.pinski@caviumnetworks.com>
3743
3744         * match.pd ((x < y) && (x < z) -> x < min (y,z),
3745         (x > y) and (x > z) -> x > max (y,z))
3746
3747 2015-10-15  Gregor Richards  <gregor.richards@uwaterloo.ca>
3748             Szabolcs Nagy  <szabolcs.nagy@arm.com>
3749
3750         * config/microblaze/linux.h (MUSL_DYNAMIC_LINKER): Define.
3751         (DYNAMIC_LINKER): Renamed to ...
3752         (GLIBC_DYNAMIC_LINKER): This.
3753         (SUBTARGET_EXTRA_SPECS): Use GNU_USER_DYNAMIC_LINKER.
3754
3755 2015-10-15  Marek Polacek  <polacek@redhat.com>
3756
3757         * tree-ssa-reassoc.c (attempt_builtin_copysign): Call
3758         gimple_call_builtin instead of is_gimple_call.
3759
3760 2015-10-15  Richard Biener  <rguenther@suse.de>
3761
3762         * tree-vect-stmts.c (vect_init_vector): Remove unused vars.
3763
3764 2015-10-15  Richard Biener  <rguenther@suse.de>
3765
3766         * tree-vectorizer.h (vect_get_new_ssa_name): Declare.
3767         * tree-vect-data-refs.c (vect_get_new_ssa_name): New helper.
3768         * tree-vect-loop.c (get_initial_def_for_induction): Drop
3769         use of force_gimple_operand in favor of gimple_build.
3770         Use vect_get_new_ssa_name.
3771         * tree-vect-stmts.c (vect_init_vector): Use vect_get_new_ssa_name.
3772         (vectorizable_mask_load_store): Likewise.
3773         (vectorizable_call): Likewise.
3774         (vectorizable_store): Likewise.
3775         (vectorizable_load): Likewise.
3776         (vect_get_vec_def_for_stmt_copy): Remove redundant stmt.
3777
3778 2015-10-15  Richard Sandiford  <richard.sandiford@arm.com>
3779
3780         PR tree-optimization/67945
3781         * tree-pass.h (PROP_gimple_opt_math): New property flag.
3782         * generic-match-head.c (canonicalize_math_p): New function.
3783         * gimple-match-head.c: Include tree-pass.h.
3784         (canonicalize_math_p): New function.
3785         * match.pd: Group math built-in rules into simplifications
3786         and canonicalizations.  Guard the latter with canonicalize_math_p.
3787         * tree-ssa-math-opts.c (pass_data_cse_sincos): Provide the
3788         PROP_gimple_opt_math property.
3789
3790 2015-10-15  Marek Polacek  <polacek@redhat.com>
3791
3792         PR tree-optimization/67953
3793         * match.pd (X - (X / Y) * Y): Don't change signedness of @0.
3794
3795 2015-10-15  Jiong Wang  <jiong.wang@arm.com>
3796
3797         * config.gcc: Recognize "." in architecture base name for AArch64.
3798
3799 2015-10-14  Uros Bizjak  <ubizjak@gmail.com>
3800
3801         * config/mips/mips.h (MIPS_STACK_ALIGN): Implement using
3802         ROUND_UP macro.
3803         * config/mips/mips.c (mips_setup_incoming_varargs): Use
3804         ROUND_DOWN to calculate off.
3805         (mips_gimplify_va_arg_expr): Use ROUND_UP to calculate rsize.
3806         (mips_emit_probe_stack_range): Use ROUND_DOWN to calculate
3807         rounded_size.
3808
3809 2015-10-14  Eric Botcazou  <ebotcazou@adacore.com>
3810
3811         * gimplify.c (gimplify_addr_expr) <MEM_REF>: New case.
3812
3813 2015-10-14  Peter Bergner  <bergner@vnet.ibm.com>
3814             Torvald Riegel  <triegel@redhat.com>
3815
3816         PR target/67281
3817         * config/rs6000/htm.md (UNSPEC_HTM_FENCE): New.
3818         (tabort, tabort<wd>c, tabort<wd>ci, tbegin, tcheck, tend,
3819         trechkpt, treclaim, tsr, ttest): Rename define_insns from this...
3820         (*tabort, *tabort<wd>c, *tabort<wd>ci, *tbegin, *tcheck, *tend,
3821         *trechkpt, *treclaim, *tsr, *ttest): ...to this.  Add memory barrier.
3822         (tabort, tabort<wd>c, tabort<wd>ci, tbegin, tcheck, tend,
3823         trechkpt, treclaim, tsr, ttest): New define_expands.
3824         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
3825         __TM_FENCE__ for htm.
3826         * doc/extend.texi: Update documentation for htm builtins.
3827
3828 2015-10-14  Uros Bizjak  <ubizjak@gmail.com>
3829
3830         PR target/67967
3831         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Do not add
3832         REG_CFA_EXPRESSION to aligned SSE stores.
3833
3834 2015-10-14  Jeff Law  <law@redhat.com>
3835
3836         * tree-ssa-threadupdate.c (thread_through_all_blocks): Bump
3837         num_threaded_edges for successful FSM threads too.
3838
3839 2015-10-14  Richard Biener  <rguenther@suse.de>
3840
3841         * tree-vectorizer.h (vect_is_simple_use): Remove unused parameters.
3842         (vect_is_simple_use_1): Likewise.  Make overload of vect_is_simple_use.
3843         (vect_get_vec_def_for_operand): Remove unused parameter.
3844         * tree-vect-loop.c (get_initial_def_for_induction): Adjust.
3845         (vect_create_epilog_for_reduction): Likewise.
3846         (vectorizable_reduction): Likewise.
3847         (vectorizable_live_operation): Likewise.
3848         * tree-vect-patterns.c (type_conversion_p): Likewise.
3849         (vect_recog_vector_vector_shift_pattern): Likewise.
3850         (check_bool_pattern): Likewise.
3851         * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
3852         (vect_analyze_slp_cost_1): Likewise.
3853         * tree-vect-stmts.c (process_use): Likewise.
3854         (vect_get_vec_def_for_operand): Do not handle reductions.
3855         (vect_get_vec_defs): Adjust.
3856         (vectorizable_mask_load_store): Likewise.
3857         (vectorizable_call): Likewise.
3858         (vectorizable_simd_clone_call): Likewise.
3859         (vect_get_loop_based_defs): Likewise.
3860         (vectorizable_conversion): Likewise.
3861         (vectorizable_assignment): Likewise.
3862         (vectorizable_shift): Likewise.
3863         (vectorizable_operation): Likewise.
3864         (vectorizable_store): Likewise.
3865         (vectorizable_load): Likewise.
3866         (vect_is_simple_cond): Likewise.
3867         (vectorizable_condition): Likewise.
3868         (vect_is_simple_use): Remove unused parameters.
3869         (vect_is_simple_use_1): Adjust and rename.
3870
3871 2015-10-14  Richard Biener  <rguenther@suse.de>
3872
3873         PR tree-optimization/67915
3874         * match.pd: Handle comparisons of addresses of STRING_CSTs.
3875         * gimplify.c (gimplify_cond_expr): Fold the GIMPLE conds we build.
3876         * tree-cfgcleanup.c (cleanup_control_expr_graph): Remove GENERIC
3877         stmt folding in favor of GIMPLE one.
3878
3879 2015-10-14  Marek Polacek  <polacek@redhat.com>
3880
3881         PR tree-optimization/67815
3882         * tree-ssa-reassoc.c (attempt_builtin_copysign): New function.
3883         (reassociate_bb): Call it.
3884
3885 2015-10-14  Richard Biener  <rguenther@suse.de>
3886
3887         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
3888         Reset info at start.
3889         (vect_analyze_group_access_1): Add debug print.
3890         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost): Rename ...
3891         (vect_compute_single_scalar_iteration_cost): ... to this.
3892         (vect_analyze_loop_2): Adjust.
3893         * tree-vect-slp.c (struct _slp_oprnd_info): Move from ...
3894         * tree-vectorizer.h: ... here.
3895         (add_stmt_info_to_vec): Remove.
3896         * tree-vect-stmts.c (record_stmt_cost): Inline add_stmt_info_to_vec.
3897
3898 2015-10-14  Dominik Vogt  <vogt@linux.vnet.ibm.com>
3899
3900         * targhooks.c (default_target_option_pragma_parse): Do not warn if
3901         called on behalf of "#pragma GCC pop_options".
3902
3903 2015-10-14  Tom de Vries  <tom@codesourcery.com>
3904
3905         * cfganal.c (verify_no_unreachable_blocks): New function.
3906         (inverted_post_order_compute) [ENABLE_CHECKING]: Call
3907         verify_no_unreachable_blocks.
3908         cfganal.h (verify_no_unreachable_blocks): Declare.
3909
3910 2015-10-13  Mikhail Maltsev  <maltsevm@gmail.com>
3911
3912         * common.opt: Add flag_checking.
3913         * system.h (CHECKING_P): Define.
3914
3915 2015-10-13  Jakub Jelinek  <jakub@redhat.com>
3916             Aldy Hernandez  <aldyh@redhat.com>
3917             Ilya Verbin  <ilya.verbin@intel.com>
3918
3919         * builtin-types.def (BT_FN_BOOL_UINT_LONGPTR_LONGPTR_LONGPTR,
3920         BT_FN_BOOL_UINT_ULLPTR_ULLPTR_ULLPTR,
3921         BT_FN_BOOL_UINT_LONGPTR_LONG_LONGPTR_LONGPTR,
3922         BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
3923         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_UINT_PTR,
3924         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR,
3925         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT,
3926         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_LONG_LONG_LONG,
3927         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_ULL_ULL_ULL,
3928         BT_FN_VOID_LONG_VAR, BT_FN_VOID_ULL_VAR): New.
3929         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
3930         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
3931         BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): Remove.
3932         * cgraph.h (enum cgraph_simd_clone_arg_type): Add
3933         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP,
3934         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP and
3935         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP.
3936         (struct cgraph_simd_clone_arg): Adjust comment.
3937         * coretypes.h (struct gomp_ordered): New forward decl.
3938         * gimple.c (gimple_build_omp_critical): Add CLAUSES argument,
3939         set critical clauses to it.
3940         (gimple_build_omp_ordered): Return gomp_ordered * instead of
3941         gimple *.  Add CLAUSES argument, set ordered clauses to it.
3942         (gimple_copy): Unshare clauses on GIMPLE_OMP_CRITICAL and
3943         GIMPLE_OMP_ORDERED.
3944         * gimple.def (GIMPLE_OMP_ORDERED): Change from GSS_OMP to
3945         GSS_OMP_SINGLE_LAYOUT, move it after GIMPLE_OMP_TEAMS.
3946         * gimple.h (enum gf_mask): Add GF_OMP_TASK_TASKLOOP.  Add another bit
3947         to GF_OMP_FOR_KIND_MASK mask. Add GF_OMP_FOR_KIND_TASKLOOP, renumber
3948         GF_OMP_FOR_KIND_CILKFOR and GF_OMP_FOR_KIND_OACC_LOOP.  Adjust
3949         GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED and GF_OMP_FOR_COMBINED_INTO.
3950         Add another bit to GF_OMP_TARGET_KIND_MASK mask.  Add
3951         GF_OMP_TARGET_KIND_ENTER_DATA and GF_OMP_TARGET_KIND_EXIT_DATA,
3952         renumber
3953         GF_OMP_TARGET_KIND_OACC_{PARALLEL,KERNELS,DATA,UPDATE,ENTER_EXIT_DATA}.
3954         (gomp_critical): Add clauses field.
3955         (gomp_ordered): New struct.
3956         (is_a_helper <gomp_ordered *>::test): New inline.
3957         (gimple_build_omp_critical): Add CLAUSES argument.
3958         (gimple_build_omp_ordered): Likewise.  Return gomp_ordered *
3959         instead of gimple *.
3960         (gimple_omp_critical_clauses, gimple_omp_critical_clauses_ptr,
3961         gimple_omp_critical_set_clauses, gimple_omp_ordered_clauses,
3962         gimple_omp_ordered_clauses_ptr, gimple_omp_ordered_set_clauses,
3963         gimple_omp_task_taskloop_p, gimple_omp_task_set_taskloop_p): New
3964         inline functions.
3965         * gimple-pretty-print.c (dump_gimple_omp_for): Handle taskloop.
3966         (dump_gimple_omp_target): Handle enter data and exit data.
3967         (dump_gimple_omp_block): Don't handle GIMPLE_OMP_ORDERED here.
3968         (dump_gimple_omp_critical): Print clauses.
3969         (dump_gimple_omp_ordered): New function.
3970         (dump_gimple_omp_task): Handle taskloop.
3971         (pp_gimple_stmt_1): Use dump_gimple_omp_ordered for
3972         GIMPLE_OMP_ORDERED.
3973         * gimple-walk.c (walk_gimple_op): Walk clauses on
3974         GIMPLE_OMP_CRITICAL and GIMPLE_OMP_ORDERED.
3975         * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_0LEN_ARRAY.
3976         (enum omp_region_type): Add ORT_COMBINED_TARGET and ORT_NONE.
3977         (struct gimplify_omp_ctx): Add loop_iter_var,
3978         target_map_scalars_firstprivate, target_map_pointers_as_0len_arrays
3979         and target_firstprivatize_array_bases fields.
3980         (delete_omp_context): Release loop_iter_var.
3981         (gimplify_bind_expr): Handle ORT_NONE.
3982         (maybe_fold_stmt): Adjust check for ORT_TARGET for the addition of
3983         ORT_COMBINED_TARGET.
3984         (is_gimple_stmt): Return true for OMP_TASKLOOP, OMP_TEAMS and
3985         OMP_TARGET{,_DATA,_UPDATE,_ENTER_DATA,_EXIT_DATA}.
3986         (omp_firstprivatize_variable): Handle ORT_NONE.  Adjust check for
3987         ORT_TARGET for the addition of ORT_COMBINED_TARGET.  Handle
3988         ctx->target_map_scalars_firstprivate.
3989         (omp_add_variable): Handle ORT_NONE.  Allow map clause together with
3990         data sharing clauses.  For data sharing clause with VLA decl
3991         on omp target/target data don't add firstprivate for the pointer.
3992         Call omp_notice_variable on TYPE_SIZE_UNIT only if it is a DECL_P.
3993         (omp_notice_threadprivate_variable): Adjust check for ORT_TARGET for
3994         the addition of ORT_COMBINED_TARGET.
3995         (omp_notice_variable): Handle ORT_NONE.  Adjust check for ORT_TARGET
3996         for the addition of ORT_COMBINED_TARGET.  Handle implicit mapping of
3997         pointers as zero length array sections and
3998         ctx->target_map_scalars_firstprivate mapping of scalars as firstprivate
3999         data sharing.
4000         (omp_check_private): Handle omp_member_access_dummy_var vars.
4001         (find_decl_expr): New function.
4002         (gimplify_scan_omp_clauses): Add CODE argument.  For OMP_CLAUSE_IF
4003         complain if OMP_CLAUSE_IF_MODIFIER is present and does not match code.
4004         Handle OMP_CLAUSE_GANG separately.  Handle
4005         OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
4006         clauses.  Diagnose linear clause on combined
4007         distribute {, parallel for} simd construct, unless it is the loop
4008         iterator.  Handle struct element GOMP_MAP_FIRSTPRIVATE_POINTER.
4009         Handle map clauses with COMPONENT_REF.  Initialize
4010         ctx->target_map_scalars_firstprivate,
4011         ctx->target_firstprivatize_array_bases and
4012         ctx->target_map_pointers_as_0len_arrays.  Add firstprivate for
4013         linear clause even to target region if combined.  Remove
4014         map clauses with GOMP_MAP_FIRSTPRIVATE_POINTER kind from
4015         OMP_TARGET_{,ENTER_,EXIT_}DATA.  For GOMP_MAP_FIRSTPRIVATE_POINTER
4016         map kind with non-INTEGER_CST OMP_CLAUSE_SIZE firstprivatize the bias.
4017         Handle OMP_CLAUSE_DEPEND_{SINK,SOURCE}.  Handle
4018         OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}.
4019         For linear clause on worksharing loop combined with parallel add
4020         shared clause on the parallel.  Handle OMP_CLAUSE_REDUCTION
4021         with MEM_REF OMP_CLAUSE_DECL.  Set DECL_NAME on
4022         omp_member_access_dummy_var vars.  Add lastprivate clause to outer
4023         taskloop if needed.
4024         (gimplify_adjust_omp_clauses_1): Handle GOVD_MAP_0LEN_ARRAY.
4025         If gimplify_omp_ctxp->target_firstprivatize_array_bases, use
4026         GOMP_MAP_FIRSTPRIVATE_POINTER map kind instead of
4027         GOMP_MAP_POINTER.
4028         (gimplify_adjust_omp_clauses): Add CODE argument.  Handle removal
4029         of GOMP_MAP_FIRSTPRIVATE_POINTER struct elements for struct not seen
4030         in target body.  Handle removal of struct mapping if struct is not
4031         seen in target body.  Remove GOMP_MAP_STRUCT map clause on
4032         OMP_TARGET_EXIT_DATA.  Adjust check for ORT_TARGET for the
4033         addition of ORT_COMBINED_TARGET.  Use GOMP_MAP_FIRSTPRIVATE_POINTER
4034         instead of GOMP_MAP_POINTER if ctx->target_firstprivatize_array_bases
4035         for VLAs.  Set OMP_CLAUSE_MAP_PRIVATE if both data sharing and map
4036         clause appear together.  Handle
4037         OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}.  Don't remove map
4038         clause if it has map-type-modifier always.  Handle
4039         OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
4040         clauses.
4041         (gimplify_oacc_cache, gimplify_omp_parallel, gimplify_omp_task):
4042         Adjust gimplify_scan_omp_clauses and gimplify_adjust_omp_clauses
4043         callers.
4044         (gimplify_omp_for): Likewise.  Handle OMP_TASKLOOP.  Initialize
4045         loop_iter_var.  Use OMP_FOR_ORIG_DECLS.  Fix handling of lastprivate
4046         iterators in doacross loops.
4047         (gimplify_omp_workshare): Adjust gimplify_scan_omp_clauses and
4048         gimplify_adjust_omp_clauses callers.  Use ORT_COMBINED_TARGET
4049         for OMP_TARGET_COMBINED.  Adjust check for ORT_TARGET
4050         for the addition of ORT_COMBINED_TARGET.
4051         (gimplify_omp_target_update): Adjust gimplify_scan_omp_clauses and
4052         gimplify_adjust_omp_clauses callers.  Handle OMP_TARGET_ENTER_DATA
4053         and OMP_TARGET_EXIT_DATA.
4054         (gimplify_omp_ordered): New function.
4055         (gimplify_expr): Handle OMP_TASKLOOP, OMP_TARGET_ENTER_DATA and
4056         OMP_TARGET_EXIT_DATA.  Use gimplify_omp_ordered for OMP_ORDERED.
4057         Gimplify clauses on OMP_CRITICAL.
4058         * internal-fn.c (expand_GOMP_SIMD_ORDERED_START,
4059         expand_GOMP_SIMD_ORDERED_END): New functions.
4060         * internal-fn.def (GOMP_SIMD_ORDERED_START,
4061         GOMP_SIMD_ORDERED_END): New internal functions.
4062         * omp-builtins.def (BUILT_IN_GOMP_LOOP_DOACROSS_STATIC_START,
4063         BUILT_IN_GOMP_LOOP_DOACROSS_DYNAMIC_START,
4064         BUILT_IN_GOMP_LOOP_DOACROSS_GUIDED_START,
4065         BUILT_IN_GOMP_LOOP_DOACROSS_RUNTIME_START,
4066         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_STATIC_START,
4067         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_DYNAMIC_START,
4068         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_GUIDED_START,
4069         BUILT_IN_GOMP_LOOP_ULL_DOACROSS_RUNTIME_START,
4070         BUILT_IN_GOMP_DOACROSS_POST, BUILT_IN_GOMP_DOACROSS_WAIT,
4071         BUILT_IN_GOMP_DOACROSS_ULL_POST, BUILT_IN_GOMP_DOACROSS_ULL_WAIT,
4072         BUILT_IN_GOMP_TARGET_ENTER_EXIT_DATA, BUILT_IN_GOMP_TASKLOOP,
4073         BUILT_IN_GOMP_TASKLOOP_ULL): New built-ins.
4074         (BUILT_IN_GOMP_TASK): Add INT argument to the end.
4075         (BUILT_IN_GOMP_TARGET): Rename from GOMP_target to GOMP_target_41,
4076         adjust type.
4077         (BUILT_IN_GOMP_TARGET_DATA): Rename from GOMP_target_data to
4078         GOMP_target_data_41, adjust type.
4079         (BUILT_IN_GOMP_TARGET_UPDATE): Rename from GOMP_target_update to
4080         GOMP_target_update_41, adjust type.
4081         * omp-low.c (struct omp_region): Adjust comments, add ord_stmt
4082         field.
4083         (struct omp_for_data): Add ordered and simd_schedule fields.
4084         (omp_member_access_dummy_var, unshare_and_remap_1,
4085         unshare_and_remap, is_taskloop_ctx): New functions.
4086         (is_taskreg_ctx): Use is_parallel_ctx and is_task_ctx.
4087         (extract_omp_for_data): Handle taskloops and doacross loops
4088         and simd schedule modifier.
4089         (omp_adjust_chunk_size): New function.
4090         (get_ws_args_for): Use it.
4091         (lookup_sfield): Change first argument to splay_tree_key,
4092         add overload with first argument tree.
4093         (maybe_lookup_field): Likewise.
4094         (use_pointer_for_field): Handle omp_member_access_dummy_var.
4095         (omp_copy_decl_2): If var is TREE_ADDRESSABLE listed in
4096         task_shared_vars, clear TREE_ADDRESSABLE on the copy.
4097         (build_outer_var_ref): Add LASTPRIVATE argument, handle
4098         taskloops and omp_member_access_dummy_var vars.
4099         (build_sender_ref): Change first argument to splay_tree_key,
4100         add overload with first argument tree.
4101         (install_var_field): For mask & 8 use &DECL_UID as key instead
4102         of the tree itself.
4103         (fixup_child_record_type): Const qualify *.omp_data_i.
4104         (scan_sharing_clauses): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE,
4105         C/C++ array reductions, OMP_CLAUSE_{IS,USE}_DEVICE_PTR clauses,
4106         OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,SIMDLEN,THREADS,SIMD} and
4107         OMP_CLAUSE_{NOGROUP,DEFAULTMAP} clauses, OMP_CLAUSE__LOOPTEMP_ clause
4108         on taskloop, GOMP_MAP_FIRSTPRIVATE_POINTER, OMP_CLAUSE_MAP_PRIVATE.
4109         (create_omp_child_function): Set TREE_READONLY on .omp_data_i.
4110         (find_combined_for): Allow searching for different GIMPLE_OMP_FOR
4111         kinds.
4112         (add_taskreg_looptemp_clauses): New function.
4113         (scan_omp_parallel): Use it.
4114         (scan_omp_task): Likewise.
4115         (finish_taskreg_scan): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
4116         For taskloop, move fields for the first two _LOOPTEMP_ clauses first.
4117         (check_omp_nesting_restrictions): Handle GF_OMP_TARGET_KIND_ENTER_DATA
4118         and GF_OMP_TARGET_KIND_EXIT_DATA.  Formatting fixes.  Allow the
4119         sandwiched taskloop constructs.  Type check
4120         OMP_CLAUSE_DEPEND_{KIND,SOURCE}.  Allow ordered simd inside of simd
4121         region.  Diagnose depend(source) or depend(sink:...) on
4122         target constructs or task/taskloop.
4123         (handle_simd_reference): Use get_name.
4124         (lower_rec_input_clauses): Likewise.  Ignore all
4125         OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses on taskloop construct.
4126         Allow _LOOPTEMP_ clause on GOMP_TASK.  Unshare new_var
4127         before passing it to omp_clause_{default,copy}_ctor.  Handle
4128         OMP_CLAUSE_REDUCTION with MEM_REF OMP_CLAUSE_DECL.  Set
4129         lastprivate_firstprivate flag for linear that needs copyin and
4130         copyout.  Use BUILT_IN_ALLOCA_WITH_ALIGN instead of BUILT_IN_ALLOCA.
4131         (lower_lastprivate_clauses): For OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE
4132         on taskloop lookup decl in outer context.  Pass true to
4133         build_outer_var_ref lastprivate argument.  Handle
4134         OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV lastprivate if the decl is global
4135         outside of outer taskloop for.
4136         (lower_reduction_clauses): Handle OMP_CLAUSE_REDUCTION with MEM_REF
4137         OMP_CLAUSE_DECL.
4138         (lower_send_clauses): Ignore first two _LOOPTEMP_ clauses in taskloop
4139         GOMP_TASK.  Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.  Handle
4140         omp_member_access_dummy_var vars.  Handle OMP_CLAUSE_REDUCTION
4141         with MEM_REF OMP_CLAUSE_DECL.  Use new lookup_sfield overload.
4142         (lower_send_shared_vars): Ignore fields with NULL or FIELD_DECL
4143         abstract origin.  Handle omp_member_access_dummy_var vars.
4144         (expand_parallel_call): Use expand_omp_build_assign.
4145         (expand_task_call): Handle taskloop construct expansion.  Add
4146         REGION argument.  Use GOMP_TASK_* defines instead of hardcoded
4147         integers.  Add priority argument to GOMP_task* calls.  Or in
4148         GOMP_TASK_FLAG_PRIORITY into flags if priority is present for
4149         GOMP_task call.
4150         (expand_omp_build_assign): Add prototype.  Add AFTER
4151         argument, if true emit statements after *GSI_P and continue linking.
4152         (expand_omp_taskreg): Adjust expand_task_call caller.
4153         (expand_omp_for_init_counts): Rename zero_iter_bb argument to
4154         zero_iter1_bb and first_zero_iter to first_zero_iter1, add
4155         zero_iter2_bb and first_zero_iter2 arguments, handle computation
4156         of counts even for ordered loops.
4157         (expand_omp_for_init_vars): Handle GOMP_TASK inner_stmt.
4158         (expand_omp_ordered_source, expand_omp_ordered_sink,
4159         expand_omp_ordered_source_sink, expand_omp_for_ordered_loops): New
4160         functions.
4161         (expand_omp_for_generic): Use omp_adjust_chunk_size.  Handle linear
4162         clauses on worksharing loop.  Handle DOACROSS loop expansion.
4163         (expand_omp_for_static_nochunk): Handle linear clauses on
4164         worksharing loop.  Adjust expand_omp_for_init_counts
4165         callers.
4166         (expand_omp_for_static_chunk): Likewise.  Use omp_adjust_chunk_size.
4167         (expand_omp_simd): Handle addressable fd->loop.v.  Adjust
4168         expand_omp_for_init_counts callers.
4169         (expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): New
4170         functions.
4171         (expand_omp_for): Call expand_omp_taskloop_for_* for taskloop.
4172         Handle doacross loops.
4173         (expand_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
4174         GF_OMP_TARGET_KIND_EXIT_DATA.  Pass flags and depend arguments to
4175         GOMP_target_{41,update_41,enter_exit_data} libcalls.
4176         (expand_omp): Don't expand ordered depend constructs here, record
4177         ord_stmt instead for later expand_omp_for_generic.
4178         (build_omp_regions_1): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
4179         GF_OMP_TARGET_KIND_EXIT_DATA.  Treat GIMPLE_OMP_ORDERED with depend
4180         clause as stand-alone directive.
4181         (lower_omp_ordered_clauses): New function.
4182         (lower_omp_ordered): Handle OMP_CLAUSE_SIMD, for OMP_CLAUSE_DEPEND
4183         don't lower anything.
4184         (lower_omp_for_lastprivate): Use last _looptemp_ clause
4185         on taskloop for comparison.
4186         (lower_omp_for): Handle taskloop constructs.  Adjust OMP_CLAUSE_DECL
4187         and OMP_CLAUSE_LINEAR_STEP so that expand_omp_for_* can use it during
4188         expansion for linear adjustments.
4189         (create_task_copyfn): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
4190         (lower_depend_clauses): Assert not seeing sink/source depend kinds.
4191         Set TREE_ADDRESSABLE on array.  Change first argument from gimple *
4192         to tree * pointing to the stmt's clauses.
4193         (lower_omp_taskreg): Adjust lower_depend_clauses caller.
4194         (lower_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA
4195         and GF_OMP_TARGET_KIND_EXIT_DATA, depend clauses,
4196         GOMP_MAP_{RELEASE,ALWAYS_{TO,FROM,TOFROM},FIRSTPRIVATE_POINTER,STRUCT}
4197         map kinds, OMP_CLAUSE_{FIRSTPRIVATE,PRIVATE,{IS,USE}_DEVICE_PTR
4198         clauses.  Always use short kind and 8-bit align shift.
4199         (lower_omp_regimplify_p): Use IS_TYPE_OR_DECL_P macro.
4200         (struct lower_omp_regimplify_operands_data): New type.
4201         (lower_omp_regimplify_operands_p, lower_omp_regimplify_operands):
4202         New functions.
4203         (lower_omp_1): Use lower_omp_regimplify_operands instead of
4204         gimple_regimplify_operands.
4205         (make_gimple_omp_edges): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
4206         GF_OMP_TARGET_KIND_EXIT_DATA.  Treat GIMPLE_OMP_ORDERED with depend
4207         clause as stand-alone directive.
4208         (simd_clone_clauses_extract): Honor OMP_CLAUSE_LINEAR_KIND.
4209         (simd_clone_mangle): Mangle the various linear kinds
4210         per the new ABI.
4211         (simd_clone_adjust_argument_types): Handle
4212         SIMD_CLONE_ARG_TYPE_LINEAR_*_CONSTANT_STEP.
4213         (simd_clone_init_simd_arrays): Don't do anything for uval.
4214         (simd_clone_adjust): Handle
4215         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
4216         SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP.
4217         Handle SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP.
4218         * omp-low.h (omp_member_access_dummy_var): New prototype.
4219         * passes.def (pass_simduid_cleanup): Schedule another copy of the
4220         pass after all optimizations.
4221         * tree.c (omp_clause_code_name): Add entries for
4222         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
4223         and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
4224         (omp_clause_num_ops): Likewise.  Bump number of OMP_CLAUSE_REDUCTION
4225         arguments to 5 and for OMP_CLAUSE_ORDERED to 1.
4226         (walk_tree_1): Adjust for OMP_CLAUSE_ORDERED having 1 argument and
4227         OMP_CLAUSE_REDUCTION 5 arguments.  Handle
4228         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
4229         and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}
4230         clauses.
4231         * tree-core.h (enum omp_clause_linear_kind): New.
4232         (struct tree_omp_clause): Change type of map_kind
4233         from unsigned char to unsigned int.  Add subcode.if_modifier
4234         and subcode.linear_kind fields.
4235         (enum omp_clause_code): Add
4236         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
4237         and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
4238         (OMP_CLAUSE_REDUCTION): Document
4239         OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
4240         (enum omp_clause_depend_kind): Add OMP_CLAUSE_DEPEND_{SOURCE,SINK}.
4241         * tree.def (OMP_FOR): Add OMP_FOR_ORIG_DECLS operand.
4242         (OMP_CRITICAL): Move before OMP_SINGLE.  Add OMP_CRITICAL_CLAUSES
4243         operand.
4244         (OMP_ORDERED): Move before OMP_SINGLE.  Add OMP_ORDERED_CLAUSES
4245         operand.
4246         (OMP_TASKLOOP, OMP_TARGET_ENTER_DATA, OMP_TARGET_EXIT_DATA): New tree
4247         codes.
4248         * tree.h (OMP_BODY): Replace OMP_CRITICAL with OMP_TASKGROUP.
4249         (OMP_CLAUSE_SET_MAP_KIND): Cast to unsigned int rather than unsigned
4250         char.
4251         (OMP_CRITICAL_NAME): Adjust to be 3rd operand instead of 2nd.
4252         (OMP_CLAUSE_NUM_TASKS_EXPR): Formatting fix.
4253         (OMP_STANDALONE_CLAUSES): Adjust to cover OMP_TARGET_{ENTER,EXIT}_DATA.
4254         (OMP_CLAUSE_DEPEND_SINK_NEGATIVE, OMP_TARGET_COMBINED,
4255         OMP_CLAUSE_MAP_PRIVATE, OMP_FOR_ORIG_DECLS, OMP_CLAUSE_IF_MODIFIER,
4256         OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION, OMP_CRITICAL_CLAUSES,
4257         OMP_CLAUSE_PRIVATE_TASKLOOP_IV, OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV,
4258         OMP_CLAUSE_HINT_EXPR, OMP_CLAUSE_SCHEDULE_SIMD,
4259         OMP_CLAUSE_LINEAR_KIND, OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER,
4260         OMP_CLAUSE_SHARED_FIRSTPRIVATE, OMP_ORDERED_CLAUSES,
4261         OMP_TARGET_ENTER_DATA_CLAUSES, OMP_TARGET_EXIT_DATA_CLAUSES,
4262         OMP_CLAUSE_NUM_TASKS_EXPR, OMP_CLAUSE_GRAINSIZE_EXPR,
4263         OMP_CLAUSE_PRIORITY_EXPR, OMP_CLAUSE_ORDERED_EXPR): Define.
4264         * tree-inline.c (remap_gimple_stmt): Handle clauses on
4265         GIMPLE_OMP_ORDERED and GIMPLE_OMP_CRITICAL.  For
4266         IFN_GOMP_SIMD_ORDERED_{START,END} set has_simduid_loops.
4267         * tree-nested.c (convert_nonlocal_omp_clauses): Handle
4268         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
4269         and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
4270         clauses.  Handle OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
4271         (convert_local_omp_clauses): Likewise.
4272         * tree-pretty-print.c (dump_omp_clause): Handle
4273         OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
4274         and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
4275         clauses.  Handle OMP_CLAUSE_IF_MODIFIER, OMP_CLAUSE_ORDERED_EXPR,
4276         OMP_CLAUSE_SCHEDULE_SIMD, OMP_CLAUSE_LINEAR_KIND,
4277         OMP_CLAUSE_DEPEND_{SOURCE,SINK}.  Use "delete" for
4278         GOMP_MAP_FORCE_DEALLOC.  Handle
4279         GOMP_MAP_{ALWAYS_{TO,FROM,TOFROM},RELEASE,FIRSTPRIVATE_POINTER,STRUCT}.
4280         (dump_generic_node): Handle OMP_TASKLOOP, OMP_TARGET_{ENTER,EXIT}_DATA
4281         and clauses on OMP_ORDERED and OMP_CRITICAL.
4282         * tree-vectorizer.c (adjust_simduid_builtins): Adjust comment.
4283         Remove IFN_GOMP_SIMD_ORDERED_{START,END}.
4284         (vectorize_loops): Adjust comments.
4285         (pass_simduid_cleanup::execute): Likewise.
4286         * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
4287         SIMD_CLONE_ARG_TYPE_LINEAR_{REF,VAL,UVAL}_CONSTANT_STEP.
4288         * wide-int.h (wi::gcd): New.
4289
4290 2015-10-13  Uros Bizjak  <ubizjak@gmail.com>
4291
4292         * config/i386/i386.c (classify_argument): Use CEIL where applicable.
4293         (ix86_function_arg_advance): Ditto.
4294         (ix86_function_arg): Ditto.
4295         (ix86_gimplify_va_arg): Ditto.
4296         (ix86_class_max_nregs): Ditto.
4297         (inline_memory_move_cost): Ditto.
4298         (ix86_set_reg_reg_cost): Ditto.
4299         * config/i386/i386.h (HARD_REGNO_NREGS): Ditto.
4300
4301 2015-10-13  Alexandre Oliva <aoliva@redhat.com>
4302
4303         PR middle-end/67912
4304         * expmed.c (store_bit_field_1): Adjust mode of BLKmode inputs.
4305
4306 2015-10-13  Uros Bizjak  <ubizjak@gmail.com>
4307
4308         * config/sparc/sparc.h (SPARC_STACK_ALIGN): Implement using
4309         ROUND_UP macro and UNITS_PER_WORD * 2.
4310         * config/sparc/sparc.c (sparc_compute_frame_size):
4311         Use ROUND_UP and ROUND_DOWN macros where applicable.
4312         (function_arg_record_value, function_arg_record_value_1)
4313         (function_arg_record_value_1): Ditto.
4314         (emit_save_or_restore_regs): Use ROUND_DOWN to preserve offset
4315         alignment to double-word.
4316         (sparc_gimplify_va_arg): Use ROUND_UP to calculate rsize.
4317         (sparc_emit_probe_stack_range): Use ROUND_DOWN to calculate
4318         rounded_size.
4319
4320 2015-10-13  Nikolai Bozhenov  <n.bozhenov@samsung.com>
4321
4322         * rtl.h (print_insn): Fix prototype.
4323
4324 2015-10-13  Tom de Vries  <tom@codesourcery.com>
4325
4326         * tree-parloops.c (reduction_phi): Handle cases that gimple_uid is 0 or
4327         -1.  Add assert that returned entry matches phi argument.
4328         (parallelize_loops): Move calls to init_stmt_vec_info_vec and
4329         free_stmt_vec_info_vec ...
4330         (gather_scalar_reductions): ... here.  Initialize gimple_uids of phis
4331         with -1.
4332
4333 2014-10-13  Yuri Rumyantsev  <ysrumyan@gmail.com>
4334
4335         PR tree-optimization/67909, 67947
4336         * tree-ssa-loop-unswitch.c (find_loop_guard): Add check that GUARD_EDGE
4337         really skip the inner loop.
4338
4339 2015-10-13  Jeff Law  <law@redhat.com>
4340
4341         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
4342         Allow single block jump threading paths.
4343
4344 2015-10-13  Tom de Vries  <tom@codesourcery.com>
4345
4346         PR tree-optimization/67476
4347         * doc/invoke.texi (@item parloops-schedule): New item.
4348         * params.def (PARAM_PARLOOPS_SCHEDULE): New DEFPARAMENUM5.
4349         * tree-parloops.c: Include params-enum.h.
4350         (create_parallel_loop): Handle PARAM_PARLOOPS_SCHEDULE.
4351
4352 2015-10-13  Tom de Vries  <tom@codesourcery.com>
4353
4354         * Makefile.in (PARAMS_H, PLUGIN_HEADERS): Add params-enum.h.
4355         * params-enum.h: New file.
4356         * opts.c (handle_param): Handle case that param arg is a string.
4357         * params-list.h: Handle DEFPARAMENUM5 in params.def.
4358         * params.c (find_param): New function, factored out of ...
4359         (set_param_value): ... here.
4360         (param_string_value_p): New function.
4361         * params.h (struct param_info): Add value_names field.
4362         (find_param, param_string_value_p): Declare.
4363
4364 2015-10-13  Tom de Vries  <tom@codesourcery.com>
4365
4366         PR tree-optimization/67476
4367         * omp-low.c (expand_omp_for_generic): Handle original loop tree.
4368
4369 2015-10-13  Richard Biener  <rguenther@suse.de>
4370
4371         * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Allocate
4372         the data dependence vector.
4373         (vect_peeling_hash_insert): Get the peeling hash table as argument.
4374         (vect_peeling_hash_get_lowest_cost): Likewise.
4375         (vect_enhance_data_refs_alignment): Adjust.
4376         (struct _vect_peel_info, struct _vect_peel_extended_info,
4377         struct peel_info_hasher): Move from ...
4378         * tree-vectorizer.h: ... here.
4379         (LOOP_VINFO_COST_MODEL_MIN_ITERS): Remove.
4380         (LOOP_VINFO_PEELING_HTAB): Likewise.
4381         (struct _loop_vec_info): Remove min_profitable_iters and
4382         peeling_htab members.
4383         * tree-vect-loop.c (new_loop_vec_info): Do not allocate vectors
4384         here.
4385         (destroy_loop_vec_info): Adjust.
4386         (vect_analyze_loop_2): Do not set LOOP_VINFO_COST_MODEL_MIN_ITERS.
4387         (vect_estimate_min_profitable_iters): Use LOOP_VINFO_COMP_ALIAS_DDRS
4388         to estimate alias versioning cost.
4389         * tree-vect-slp.c (vect_analyze_slp_cost): Dump header.
4390
4391 2015-10-13  Richard Sandiford  <richard.sandiford@arm.com>
4392
4393         * real.h (real_isinteger): Declare.
4394         * real.c (real_isinteger): New function.
4395         * match.pd: Simplify pow(|x|,y) and pow(-x,y) to pow(x,y)
4396         if y is an even integer.
4397
4398 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
4399
4400         revert:
4401         2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
4402         * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
4403         counts when these are more informative.
4404
4405 2015-10-12  Jeff Law  <law@redhat.com>
4406
4407         * tree-ssa-threadbackward.c (get_gimple_control_stmt): New function.
4408         (fsm_find_control_stmt_paths): Change name of first argument to
4409         more accurately relfect what it really is.  Handle simplification
4410         of GIMPLE_COND after finding a thread path for NAME.
4411         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Allow
4412         nontrivial conditions to be handled by FSM threader.
4413         (thread_through_normal_block): Extract the name to looup via
4414         FSM threader from COND_EXPR.
4415
4416         * tree-ssa-threadbackward.c (fsm_find_thread_path): Remove
4417         restriction that traced SSA_NAME is a user variable.
4418
4419 2015-10-12  Tom de Vries  <tom@codesourcery.com>
4420
4421         PR tree-optimization/67476
4422         * omp-low.c (expand_omp_for_generic): Add missing phis.
4423
4424 2015-10-12  Tom de Vries  <tom@codesourcery.com>
4425
4426         PR tree-optimization/67476
4427         * omp-low.c (expand_omp_for_generic): Handle simple latch.
4428
4429 2015-10-12  Christophe Lyon  <christophe.lyon@linaro.org>
4430
4431         * config/aarch64/aarch64-simd-builtins.def: Update builtins
4432         tables: add tbl3 and tbx4.
4433         * config/aarch64/aarch64-simd.md (aarch64_tbl3v8qi): New.
4434         (aarch64_tbx4v8qi): New.
4435         * config/aarch64/arm_neon.h (vtbl3_s8, vtbl3_u8, vtbl3_p8)
4436         (vtbl4_s8, vtbl4_u8, vtbl4_p8, vtbx4_s8, vtbx4_u8, vtbx4_p8):
4437         Rewrite using builtin functions.
4438         * config/aarch64/iterators.md (UNSPEC_TBX): New.
4439
4440 2015-10-12  Uros Bizjak  <ubizjak@gmail.com>
4441
4442         * config/rs6000/rs6000.h (RS6000_ALIGN): Implement using
4443         ROUND_UP macro.
4444         * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
4445         Use ROUND_UP and ROUND_DOWN macros where applicable.
4446         (rs6000_darwin64_record_arg_flush): Ditto.
4447         (rs6000_function_arg): Use ROUND_UP to calculate align_words.
4448         (rs6000_emit_probe_stack_range): Use ROUND_DOWN to calculate
4449         rounded_size.
4450
4451 2015-10-12  Uros Bizjak  <ubizjak@gmail.com>
4452
4453         * config/aarch/aarch64.h (AARCH64_ROUND_UP): Remove.
4454         (AARCH64_ROUND_DOWN): Ditto.
4455         * config/aarch64/aarch64.c: Use ROUND_UP instead of AARCH64_ROUND_UP.
4456
4457 2015-10-12  Richard Biener  <rguenther@suse.de>
4458
4459         PR ipa/67783
4460         * ipa-inline-analysis.c (estimate_function_body_sizes): Re-add
4461         code that analyzes IVs on each stmt but in a cheaper way avoiding
4462         quadratic behavior.
4463
4464 2015-10-12  Nick Clifton  <nickc@redhat.com>
4465
4466         * config/msp430/msp430.c (msp430_mcu_names): Rename to
4467         msp430_mcu_data, add fields for ISA and hardware multiply
4468         support.  Import latest data from the devices.csv file.
4469         (msp430_override_option): Use the data from the new array.
4470         (msp430_use_f5_series_hwmult): Likewise.
4471         (use_32bit_hwmult): Likewise.
4472         (msp430_no_hwmult): Likewise.
4473         * config/msp430/t-msp430 (MULTILIB_MATCHES): Add matches for new
4474         MCU names.
4475         * doc/invoke.texi (MSP430 Options): Note that if the MCU name is
4476         not recognised then no hardware multiply support is assumed and
4477         that only the MSP430 ISA is allowed.
4478
4479 2015-10-12  Richard Biener  <rguenther@suse.de>
4480
4481         * tree-vect-loop.c (vect_analyze_loop_operations): Move cost
4482         related code ...
4483         (vect_analyze_loop_2): ... here.
4484
4485 2015-10-11  Jason Merrill  <jason@redhat.com>
4486
4487         PR c++/67557
4488         * expr.c (store_field): Call store_constructor directly when
4489         storing a CONSTRUCTOR into a target smaller than its type.
4490         Guard against unsafe bitwise copy.
4491
4492 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
4493
4494         * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
4495         counts when these are more informative.
4496
4497 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
4498
4499         * tree-profile.c (tree_profiling): Do not clear
4500         pure/const when not instrumenting.
4501         (pass tree_profile): Add dump of symtab.
4502
4503 2015-10-11  Jan Hubicka  <hubicka@ucw.cz>
4504
4505         * fold-const.c (fold_comparsion): Pass OEP_ADDRESS_OF when comparing
4506         addresses.
4507         (fold_addr_of_array_ref_difference): Likewise.
4508
4509 2015-10-11  Jeff Law  <law@redhat.com>
4510
4511         * tree-ssa-threadedge.c (fsm_find_thread_path): Moved from here into
4512         tree-ssa-threadbackward.c.
4513         (fsm_find_control_statement_thread_paths): Likewise.
4514         (thread_through_normal_block): Break out FSM bits and move them
4515         into a new function in tree-ssa-threadbackward.c.  Call new function
4516         instead.
4517         Minimize header file usage.
4518         * tree-ssa-threadbackward.h: New file.
4519         * tree-ssa-threadbackward.c: Likewise.
4520         * Makefile.in (OBJS): Add tree-ssa-threadbackward.o
4521
4522 2015-10-11  Uros Bizjak  <ubizjak@gmail.com>
4523
4524         * config/alpha/alpha.h (ALPHA_ROUND): Implement using ROUND_UP macro.
4525
4526 2015-10-11  Segher Boessenkool  <segher@kernel.crashing.org>
4527
4528         PR rtl-optimization/67864
4529         * bb-reorder (reorder_basic_blocks_simple): Prefer existing
4530         fallthrough edges for conditional jumps.  Don't sort candidate
4531         edges if not optimizing for speed.
4532
4533 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
4534
4535         * defaults.h (REVERSE_CONDITION): New default definition.
4536         * jump.c (reversed_comparison_code_parts): Adjust.
4537
4538 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
4539
4540         * builtins.c (expand_builtin_setjmp_receiver): Don't use #if to
4541         check HARD_FRAME_POINTER_IS_ARG_POINTER.
4542
4543 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
4544
4545         * defaults.h (FRAME_ADDR_RTX): New default definition.
4546         * builtins.c (expand_builtin_return_addr): Adjust.
4547
4548 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
4549
4550         * defaults.h (DYNAMIC_CHAIN_ADDRESS): New default definition.
4551         * builtins.c (expand_builtin_return_addr): Adjust.
4552
4553 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
4554
4555         * defaults.h (SETUP_FRAME_ADDRESSES): New default definition.
4556         * builtins.c (expand_builtin_return_addr): Adjust.
4557         * doc/tm.texi: Likewise.
4558         * doc/tm.texi.in: Likewise.
4559         * except.c (expand_builtin_unwind_init): Likewise.
4560
4561 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
4562
4563         * builtins.c (expand_builtin_return_addr): Adjust.
4564         * defaults.h (INITIAL_FRAME_ADDRESS_RTX): New default definition.
4565
4566 2015-10-10  Jan Hubicka  <hubicka@ucw.cz>
4567
4568         * tree.c (type_with_interoperable_signedness): New.
4569         (gimple_canonical_types_compatible_p): Use it.
4570         * tree.h (type_with_interoperable_signedness): Declare
4571
4572 2015-10-10  Jan Hubicka  <hubicka@ucw.cz>
4573
4574         * fold-const.c (operand_equal_p): Document OEP_ADDRESS_OF
4575         and OEP_CONSTANT_ADDRESS_OF; skip type compatibility checks
4576         when OEP_ADDRESS_OF is se.
4577
4578 2015-10-10  Aditya Kumar  <aditya.k7@samsung.com>
4579             Sebastian Pop  <s.pop@samsung.com>
4580
4581         * graphite-dependences.c (scop_get_dependences): Add dump of the
4582         data dependence graph.
4583         * graphite-poly.c (print_isl_union_map): New.
4584         (debug_isl_union_map): New.
4585         * graphite-poly.h (print_isl_union_map): Declare.
4586         (debug_isl_union_map): Declare.
4587
4588 2015-10-10  Aditya Kumar  <aditya.k7@samsung.com>
4589             Sebastian Pop  <s.pop@samsung.com>
4590
4591         * graphite-poly.c (print_iteration_domain): Remove verbosity.
4592         Remove OpenScop formatting.
4593         (print_iteration_domains): Same.
4594         (debug_iteration_domain): Same.
4595         (debug_iteration_domains): Same.
4596         (print_pdr): Same.
4597         (debug_pdr): Same.
4598         (dump_gbb_cases): Same.
4599         (dump_gbb_conditions): Same.
4600         (print_pdrs): Same.
4601         (debug_pdrs): Same.
4602         (print_pbb_body): Same.
4603         (print_pbb): Same.
4604         (print_scop_params): Same.
4605         (print_scop_context): Same.
4606         (print_scop): Same.
4607         (debug_pbb_domain): Same.
4608         (debug_pbb): Same.
4609         (debug_scop_context): Same.
4610         (debug_scop): Same.
4611         (debug_scop_params): Same.
4612         * graphite-poly.h: Same.
4613         * graphite.c (graphite_transform_loops): Same.
4614
4615 2015-10-10  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
4616
4617         * function.c (stack_protect_epilogue): Remove as_a<rtx_insn *> ()
4618         call that isn't needed.
4619
4620 2015-10-09  Jeff Law  <law@redhat.com>
4621
4622         * tree-ssanames.c (flush_ssaname_freelist): Use splice and truncate
4623         rather than moving each name to the freelist individually.
4624
4625 2015-10-09  Steve Ellcey  <sellcey@imgtec.com>
4626
4627         * config.gcc (mips*-*-*): Add frame-header-opt.o to extra_objs.
4628         * frame-header-opt.c: New file.
4629         * config/mips/mips-proto.h (mips_register_frame_header_opt):
4630         Add prototype.
4631         * config/mips/mips.c (mips_compute_frame_info): Check
4632         optimize_call_stack flag.
4633         (mips_option_override): Register new frame_header_opt pass.
4634         (mips_frame_info, mips_int_mask, mips_shadow_set,
4635         machine_function): Move these types to...
4636         * config/mips/mips.h: here.
4637         (machine_function): Add does_not_use_frame_header and
4638         optimize_call_stack fields.
4639         * config/mips/t-mips (frame-header-opt.o): Add new make rule.
4640         * doc/invoke.texi (-mframe-header-opt, -mno-frame-header-opt):
4641         Document new flags.
4642         * config/mips/mips.opt (mframe-header-opt): Add new option.
4643
4644 2015-10-09  Uros Bizjak  <ubizjak@gmail.com>
4645
4646         * config/i386/i386.c
4647         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Use
4648         ROUND_DOWN where applicable.
4649
4650 2015-10-09  Jeff Law  <law@redhat.com>
4651
4652         * tree-vect-stmts.c (free_stmt_vec_info): Free the LHS of the
4653         correct statement.
4654
4655 2015-10-09  Renlin Li  <renlin.li@arm.com>
4656
4657         * config/arm/neon.md (neon_vuzp<mode>_insn): Add & modifier for
4658         operands[0] and operands[2].
4659         (neon_vtrn<mode>_insn): Likewise.
4660         (neon_vzip<mode>_insn): Likewise.
4661
4662 2015-10-09  Andre Vieira  <andre.simoesdiasvieira@arm.com>
4663
4664         * match.pd: ((X inner_op C0) outer_op C1) New pattern.
4665         ((X & C2) << C1): Expand to...
4666         (X {&,^,|} C2 << C1): ...This.
4667         ((X & C2) >> C1): Expand to...
4668         (X {&,^,|} C2 >> C1): ...This.
4669
4670 2015-10-09  Alexander Fomin  <alexander.fomin@intel.com>
4671
4672         PR target/67895
4673         * config/i386/sse.md (define_insn "sse_cvtsi2ss<round_name>"):
4674         Adjust embedded rounding/SAE specifier position.
4675         (define_insn "sse_cvtsi2ssq<round_name>"): Likewise.
4676         (define_insn "cvtusi2<ssescalarmodesuffix>32<round_name>"): Likewise.
4677         (define_insn "cvtusi2<ssescalarmodesuffix>64<round_name>"): Likewise.
4678         (define_insn "sse2_cvtsi2sdq<round_name>"): Likewise.
4679         (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
4680         Likewise.
4681         (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Likewise.
4682
4683 2015-10-09  Martin Jambor  <mjambor@suse.cz>
4684
4685         tree-optimization/67794
4686         * tree-sra.c (replace_removed_params_ssa_names): Do not distinguish
4687         between types of state,ents but accept original definitions as a
4688         parameter.
4689         (ipa_sra_modify_function_body): Use FOR_EACH_SSA_DEF_OPERAND to
4690         iterate over definitions.
4691
4692 2015-10-09  James Norris  <jnorris@codesourcery.com>
4693
4694         * config/rs6000/rs6000.c (rs6000_offload_options): New.
4695         (TARGET_OFFLOAD_OPTIONS): New.
4696
4697 2015-10-09  Alexandre Oliva <aoliva@redhat.com>
4698
4699         PR middle-end/67891
4700         * cfgexpand.c (set_parm_rtl): Drop is_gimple_reg test.
4701
4702         PR middle-end/67766
4703         * function.c (expand_function_end): Move return value
4704         promotion past the handling of PARALLELs and CONCATs.
4705
4706         PR rtl-optimization/67828
4707         * tree-ssa-loop-unswitch.c: Include tree-ssa.h.
4708         (tree_may_unswitch_on): Don't unswitch on expressions
4709         involving undefined values.
4710
4711 2015-10-09  Richard Biener  <rguenther@suse.de>
4712
4713         * genmatch.c (print_operand): Fix formatting.
4714         (dt_node::append_simplify): Warn for multiple simplifiers
4715         that match the same pattern.
4716         * match.pd (log (exp @0)): Remove duplicates.
4717
4718 2015-10-09  Richard Biener  <rguenth@suse.de>
4719
4720         PR target/67366
4721         * gimple-fold.c (optabs-query.h): Include
4722         (gimple_fold_builtin_memory_op): Allow unaligned stores
4723         when movmisalign_optabs are available.
4724
4725 2015-10-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4726
4727         PR target/67366
4728         * config/arm/arm.md (movmisalign<mode>): New.
4729         * config/arm/iterators.md (HSI): New.
4730
4731 2015-10-09  Richard Biener  <rguenther@suse.de>
4732
4733         PR tree-optimization/67891
4734         * gimple-match.h (gimple_simplified_result_is_gimple_val):
4735         New helper.
4736         (gimple_resimplify1): Declare.
4737         (gimple_resimplify2): Likewise.
4738         (gimple_resimplify3): Likewise.
4739         * gimple-match-head.c (gimple_resimplify1): Export.
4740         (gimple_resimplify2): Likewise.
4741         (gimple_resimplify3): Likewise.
4742         (maybe_push_res_to_seq): Use gimple_simplified_result_is_gimple_val.
4743         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
4744         * tree-ssa-sccvn.c (visit_reference_op_load): Use gimple_resimplify1
4745         to avoid creating stmts without VN info.
4746
4747 2015-10-08  Jan Hubicka  <hubicka@ucw.cz>
4748
4749         * ipa-icf.c (sem_item::compare_symbol_references): Fix use
4750         of availability.
4751
4752 2015-10-08  Jeff Law  <law@redhat.com>
4753
4754         * value-prof.c (gimple_ic): Add missing calls to unlink_stmt_vdef
4755         and release_ssa_name in two places.
4756         (gimple_stringop_fixed_value): Similarly.
4757
4758         * tree-ssa-loop-im.c (rewrite_bittest): Add missing call to
4759         release_defs.
4760
4761         * tree-stdarg.c (expand_ifn_va_arg_1): Add missing call to
4762         unlink_stmt_vdef and release_ssa_name_fn.
4763
4764         * tree-ssa-dse.c (dse_optimize_stmt): Add missing call to
4765         release_defs.
4766
4767 2015-10-08  H.J. Lu  <hongjiu.lu@intel.com>
4768
4769         * config/i386/i386.c (ix86_compute_frame_layout): Round up the
4770         SSE register save area to 16 bytes only if the incoming stack
4771         boundary is no less than 16 bytes.
4772
4773 2015-10-08  Jeff Law  <law@redhat.com>
4774
4775         * tree-ssa-phiopt.c (factor_out_conversion): Add missing calls to
4776         release_ssa_name.  Fix typo in comment.
4777
4778 2015-10-08  Nathan Sidwell  <nathan@acm.org>
4779
4780         * config/nvptx/nvptx.h (struct machine_function): Add comment.
4781         * config/nvptx/nvptx.c (nvptx_declare_function_name): Functions
4782         may return pointer as well as in memory.
4783         (nvptx_output_return): Likewise.
4784
4785 2015-10-08  Richard Sandiford  <richard.sandiford@arm.com>
4786
4787         * builtins.c (fold_builtin_sqrt, fold_builtin_cbrt): Delete.
4788         (fold_builtin_1): Update accordingly.  Handle constant arguments here.
4789         * match.pd: Add rules previously handled by fold_builtin_sqrt
4790         and fold_builtin_cbrt.
4791
4792 2015-10-08  Richard Sandiford  <richard.sandiford@arm.com>
4793
4794         * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): New param.
4795         * doc/invoke.texi (--param max-ssa-name-query-depth): Document.
4796         * fold-const.h (tree_unary_nonnegative_warnv_p)
4797         (tree_single_nonnegative_warnv_p, tree_call_nonnegative_warnv_p)
4798         (tree_expr_nonnegative_warnv_p): Add depth parameters.
4799         * fold-const.c: Include gimple-fold.h and params.h.
4800         (tree_ssa_name_nonnegative_warnv_p): New function.
4801         (tree_unary_nonnegative_warnv_p, tree_binary_nonnegative_warnv_p)
4802         (tree_single_nonnegative_warnv_p, tree_call_nonnegative_warnv_p)
4803         (tree_invalid_nonnegative_warnv_p, tree_expr_nonnegative_warnv_p):
4804         Add a depth parameter and increment it for recursive calls to
4805         tree_expr_nonnegative_warnv_p.  Use tree_ssa_name_nonnegative_warnv_p
4806         to handle SSA names.
4807         * gimple-fold.h (gimple_val_nonnegative_real_p): Delete.
4808         (gimple_stmt_nonnegative_warnv_p): Declare.
4809         * tree-vrp.c (remove_range_assertions): Remove assert that condition
4810         cannot be proven false.
4811         (gimple_assign_nonnegative_warnv_p, gimple_call_nonnegative_warnv_p)
4812         (gimple_stmt_nonnegative_warnv_p): Move to...
4813         * gimple-fold.c: ...here.  Add depth parameters and pass them
4814         down to the tree routines.  Accept statements that aren't
4815         assignments or calls but just return false for them.
4816         (gimple_val_nonnegative_real_p): Delete.
4817         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
4818         tree_expr_nonnegative_p instead of gimple_val_nonnegative_real_p.
4819         Check HONOR_NANs first.
4820
4821 2015-10-08  Martin Jambor  <mjambor@suse.cz>
4822
4823         * ipa-cp.c (meet_with_1): Make the argument of abs signed.  Remove
4824         unnecessary MIN.
4825
4826 2015-10-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
4827
4828         * tree-vect-loop.c (vect_analyze_loop_operations): Skip virtual phi
4829         in the tail of outer-loop.
4830
4831 2015-10-08  David Edelsohn  <dje.gcc@gmail.com>
4832
4833         * config/rs6000/rs6000.c (rs6000_xcoff_debug_unwind_info): Always
4834         return UI_NONE.
4835
4836 2015-10-08  Yuri Rumyantsev  <ysrumyan@gmail.com>
4837
4838         * tree-ssa-loop-unswitch.c: Include "gimple-iterator.h" and
4839         "cfghooks.h", add prototypes for introduced new functions.
4840         (tree_ssa_unswitch_loops): Use from innermost loop iterator, move all
4841         checks on ability of loop unswitching to tree_unswitch_single_loop;
4842         invoke tree_unswitch_single_loop or tree_unswitch_outer_loop depending
4843         on innermost loop check.
4844         (tree_unswitch_single_loop): Add all required checks on ability of
4845         loop unswitching under zero recursive level guard.
4846         (tree_unswitch_outer_loop): New function.
4847         (find_loop_guard): Likewise.
4848         (empty_bb_without_guard_p): Likewise.
4849         (used_outside_loop_p): Likewise.
4850         (get_vop_from_header): Likewise.
4851         (hoist_guard): Likewise.
4852         (check_exit_phi): Likewise.
4853
4854 2015-10-08  Marek Polacek  <polacek@redhat.com>
4855
4856         * tree-ssa-reassoc.c (dump_ops_vector): Print newline after each
4857         ops element.
4858
4859 2015-10-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4860
4861         PR c/65345
4862         * config/s390/s390.c (s390_atomic_assign_expand_fenv): Use
4863         create_tmp_var_raw instead of create_tmp_var.
4864
4865 2015-10-07  Jan Hubicka  <hubicka@ucw.cz>
4866
4867         * expr.c (store_expr_with_bounds): Handle aggregate moves from
4868         BLKmode.
4869         * gimple-expr.c (useless_type_conversion_p): Do not use TYPE_CANONICAL
4870         to define gimple type system; compare aggregates only by size.
4871
4872 2015-10-07  Jeff Law  <law@redhat.com>
4873
4874         * tree-ssa-dom.c (optimize_stmt): Don't set LOOPS_NEED_FIXUP here.
4875         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Do it
4876         here instead.  Tighten test to avoid setting LOOPS_NEED_FIXUP
4877         unnecessarily.
4878
4879 2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
4880             Sebastian Pop  <s.pop@samsung.com>
4881
4882         * graphite-dependences.c (scop_get_dependences): Do not use SCOP_BBS.
4883         * graphite-isl-ast-to-gimple.c (get_max_schedule_dimensions): Same.
4884         (generate_isl_schedule): Same.
4885         * graphite-optimize-isl.c (scop_get_domains): Same.
4886         (apply_schedule_map_to_scop): Same.
4887         * graphite-poly.c (print_iteration_domains): Same.
4888         (remove_gbbs_in_scop): Same.
4889         (new_scop): Same.
4890         (free_scop): Same.
4891         (print_scop): Same.
4892         * graphite-poly.h (struct scop): Rename bbs to pbbs.
4893         (SCOP_BBS): Remove.
4894         * graphite-scop-detection.c (compare_bb_depths): Remove.
4895         (graphite_sort_dominated_info): Remove.
4896         (try_generate_gimple_bb): Move out of scop_detection.
4897         (all_non_dominated_preds_marked_p): Remove.
4898         (build_scop_bbs_1): Remove.
4899         (build_scop_bbs): Remove.
4900         (nb_pbbs_in_loops): Do not use SCOP_BBS.
4901         (find_scop_parameters): Same.
4902         (sese_dom_walker): Rename gather_bbs.
4903         (before_dom_children): Call try_generate_gimple_bb and collect gbb
4904         and pbb.
4905         (build_scops): Call gather_bbs.
4906         * graphite-sese-to-poly.c (build_scop_scattering): Do not use SCOP_BBS.
4907         (add_conditions_to_constraints): Same.
4908         (build_scop_iteration_domain): Same.
4909         (build_scop_drs): Same.
4910         (new_pbb_from_pbb): Same.
4911         * sese.c (new_sese_info): Create bbs.
4912         * sese.h (struct sese_info_t): Add bbs.
4913
4914 2015-10-07  David Edelsohn  <dje.gcc@gmail.com>
4915
4916         * config/rs6000/xcoff.h (ASM_PREFERRED_EH_DATA_FORMAT): Use 64-bit
4917         encoding in 64-bit mode.
4918
4919 2015-10-07  Uros Bizjak  <ubizjak@gmail.com>
4920
4921         PR target/66697
4922         * config/i386/i386.c (ix86_option_override_internal): Always use
4923         8-byte minimum stack boundary in 64-bit mode.
4924         (ix86_compute_frame_layout): Remove assert on INCOMING_STACK_BOUNDARY.
4925         (ix86_emit_save_reg_using_mov): Support unaligned SSE store.
4926         Add a REG_CFA_EXPRESSION note if needed.
4927         (ix86_emit_restore_sse_regs_using_mov): Support unaligned SSE load.
4928         (ix86_handle_force_align_arg_pointer_attribute): New.
4929         (ix86_minimum_incoming_stack_boundary): Remove TARGET_64BIT check.
4930         (ix86_attribute_table): Set ix86_force_align_arg_pointer_string
4931         with ix86_handle_force_align_arg_pointer_attribute.
4932         * config/i386/i386.h (MIN_STACK_BOUNDARY): Set to BITS_PER_WORD.
4933
4934 2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
4935             Sebastian Pop  <s.pop@samsung.com>
4936
4937         * graphite-scop-detection.c (parameter_index_in_region): Remove
4938         use of SESE_ADD_PARAMS.
4939         (find_scop_parameters): Same.
4940         * sese.c (new_sese_info): Same.
4941         * sese.h (struct sese_info_t): Remove add_params.
4942         (SESE_ADD_PARAMS): Remove.
4943
4944 2015-10-07  Aditya Kumar  <aditya.k7@samsung.com>
4945             Sebastian Pop  <s.pop@samsung.com>
4946
4947         * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple): Use
4948         an sese_info_p.
4949         (copy_def): Same.
4950         (copy_internal_parameters): Same.
4951         (translate_isl_ast_to_gimple): Use an sese_l.
4952         (build_iv_mapping): Same.
4953         * graphite-poly.c (new_sese): Rename new_sese_info.
4954         (free_sese): Rename free_sese_info.
4955         * graphite-poly.h (struct scop): Use an sese_info_p.
4956         (scop_set_region): Same.
4957         * graphite-scop-detection.c (struct sese_l): Moved...
4958         (get_entry_bb): Moved...
4959         (get_exit_bb): Moved...
4960         (parameter_index_in_region_1): Use an sese_info_p.
4961         (parameter_index_in_region): Same.
4962         (scan_tree_for_params): Same.
4963         (find_params_in_bb): Same.
4964         (sese_dom_walker): Use an sese_l.
4965         * graphite-sese-to-poly.c (remove_invariant_phi): Same.
4966         (reduction_phi_p): Same.
4967         (parameter_index_in_region_1): Use an sese_info_p.
4968         (propagate_expr_outside_region): Use an sese_l.
4969         * graphite.c: Replace uses of SCOP_REGION.
4970         * sese.c (sese_record_loop): Use an sese_info_p.
4971         (build_sese_loop_nests): Same.
4972         (sese_build_liveouts_use): Same.
4973         (sese_build_liveouts_bb): Same.
4974         (sese_build_liveouts_bb): Same.
4975         (sese_bad_liveouts_use): Same.
4976         (sese_reset_debug_liveouts_bb): Same.
4977         (sese_build_liveouts): Same.
4978         (new_sese): Renamed new_sese_info.
4979         (free_sese): Renamed free_sese_info.
4980         (set_rename): Use an sese_info_p.
4981         (graphite_copy_stmts_from_block): Same.
4982         (copy_bb_and_scalar_dependences): Same.
4983         (outermost_loop_in_sese_1): Use an sese_l.
4984         (outermost_loop_in_sese): Same.
4985         (if_region_set_false_region): Use an sese_info_p.
4986         (move_sese_in_condition): Same.
4987         (scalar_evolution_in_region): Use an sese_l.
4988         * sese.h (struct sese_l): ... here.
4989         (SESE_ENTRY): Remove.
4990         (SESE_ENTRY_BB): Remove.
4991         (SESE_EXIT): Remove.
4992         (SESE_EXIT_BB): Remove.
4993         (sese_contains_loop): Use an sese_info_p.
4994         (sese_nb_params): Same.
4995         (bb_in_sese_p): Use an sese_l.
4996         (stmt_in_sese_p): Same.
4997         (defined_in_sese_p): Same.
4998         (loop_in_sese_p): Same.
4999         (sese_loop_depth): Same.
5000         (struct ifsese_s): Use an sese_info_p.
5001         (gbb_loop_at_index): Use an sese_l.
5002         (nb_common_loops): Same.
5003         (scev_analyzable_p): Same.
5004
5005 2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>
5006
5007         * config/i386/i386.c (ix86_conditional_register_usage): Use
5008         CALL_USED_REGISTERS_MASK.
5009         * config/i386/i386.h (CALL_USED_REGISTERS_MASK): New macro.
5010
5011 2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>
5012
5013         PR bootstrap/67385
5014         * configure.ac (gcc_cv_readelf): Check $READELF_FOR_TARGET.
5015         * configure: Regenerated.
5016
5017 2015-10-07  H.J. Lu  <hongjiu.lu@intel.com>
5018
5019         PR target/67850
5020         * config/i386/i386.c (ix86_maybe_switch_abi): Merged with ...
5021         (ix86_set_current_function): This.
5022         (TARGET_EXPAND_TO_RTL_HOOK): Removed.
5023
5024 2015-10-07  Richard Biener  <rguenther@suse.de>
5025
5026         * tree-vectorizer.h (stmt_vec_info_vec): Use vec<stmt_vec_info>.
5027         (vinfo_for_stmt): Adjust.
5028         (set_vinfo_for_stmt): Likewise.
5029         * tree-vectorizer.c (stmt_vec_info_vec): Likewise.
5030         * tree-vect-stmts.c (free_stmt_vec_info_vec): Likewise.
5031         * tree-vect-loop.c (new_loop_vec_info): Remove special-casing
5032         of inner loop.
5033         (vect_analyze_loop_1): Remove.
5034         (vect_analyze_loop_form_1): Avoid building a loop_vec_info for
5035         inner loop when vectorizing an outer loop by splitting out from ...
5036         (vect_analyze_loop_form): ... here.
5037
5038 2015-10-07  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5039
5040         PR c/65345
5041         * config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv):
5042         Use create_tmp_var_raw instead of create_tmp_var.
5043
5044 2015-10-07  Richard Sandiford  <richard.sandiford@arm.com>
5045
5046         * real.h (dconst_quarter, dconst_sixth, dconst_ninth): New macros.
5047         (dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): Declare.
5048         * real.c (CACHED_FRACTION): New helper macro.
5049         (dconst_third_ptr): Use it.
5050         (dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): New.
5051         * builtins.c (fold_builtin_sqrt): Use dconst_quarter and
5052         dconst_sixth.
5053         (fold_builtin_cbrt): Use dconst_sixth and dconst_ninth.
5054
5055 2015-10-06  Jeff Law  <law@redhat.com>
5056
5057         PR tree-optimization/67816
5058         * tree-ssa-threadupdate.h (remove_jump_threads_including): Renamed
5059         from remove_jump_threads_starting_at.  Accept an edge rather than
5060         a basic block.
5061         * tree-ssa-threadupdate.c (removed_edges): New hash table.
5062         (remove_jump_threads_including): Note edges that get removed from
5063         the CFG for later pruning of jump threading paths including them.
5064         (thread_through_all_blocks): Remove paths which include edges that
5065         have been removed.
5066         * tree-ssa-dom.c (optimize_stmt): Call remove_jump_threads_including
5067         on each outgoing edges when optimizing away a control statement.
5068
5069 2015-10-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5070
5071         * reorg.c (emit_delay_sequence): Store list of delay slot insns
5072         in a vector instead of rtx_insn_list.
5073         (add_to_delay_list): Likewise.
5074         (delete_from_delay_slot): Likewise.
5075         (optimize_skip): Likewise.
5076         (redirect_with_delay_list_safe_p): Likewise.
5077         (check_annul_list_true_false): Likewise.
5078         (steal_delay_list_from_target): Likewise.
5079         (steal_delay_list_from_fallthrough): Likewise.
5080         (redundant_insn): Likewise.
5081         (fill_simple_delay_slots): Likewise.
5082         (fill_slots_from_thread): Likewise.
5083         (fill_eager_delay_slots): Likewise.
5084         (relax_delay_slots): Likewise.
5085
5086 2015-10-06  Sandra Loosemore  <sandra@codesourcery.com>
5087
5088         * config/nios2/nios2.c (nios2_symbol_ref_in_small_data_p):
5089         For -mgpopt=local, also exclude unintialized common symbols.
5090         * doc/invoke.texi (Nios II Options): Document the change.
5091
5092 2015-10-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
5093
5094         * config/aarch64/iterators.md (vwcore): Add missing cases for
5095          V4HF/V8HF modes.
5096
5097 2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
5098             Sebastian Pop  <s.pop@samsung.com>
5099
5100         * graphite-poly.c (new_scop): Initialize drs.
5101         * graphite-poly.h (struct dr_info): New.
5102         (struct scop): Add drs.
5103         * graphite-sese-to-poly.c (pdr_add_alias_set): Use dr_info.
5104         (pdr_add_memory_accesses): Same.
5105         (build_poly_dr): Same.
5106         (build_alias_set): Same.
5107         (build_scop_drs): Same.
5108         (build_pbb_drs): Remove.
5109         * tree-data-ref.c (create_data_ref): Do not initialize alias_set.
5110         * tree-data-ref.h (data_reference): Remove alias_set.
5111
5112 2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
5113             Sebastian Pop  <s.pop@samsung.com>
5114
5115         * graphite-poly.c (free_data_refs_aux): Remove.
5116         (free_gimple_poly_bb): Do not call free_data_refs_aux.
5117         * graphite-poly.h (struct base_alias_pair): Remove.
5118         * graphite-sese-to-poly.c (pdr_add_alias_set): Remove all uses of
5119         base_alias_pair and dr->aux.
5120         (build_alias_set): Same.
5121         * tree-data-ref.c (create_data_ref): Initialize alias_set.
5122         * tree-data-ref.h (data_reference): Add alias_set.
5123
5124 2015-10-06  Aditya Kumar  <aditya.k7@samsung.com>
5125             Sebastian Pop  <s.pop@samsung.com>
5126
5127         * graphite-poly.c (new_poly_dr): Remove dr_base_object_set.
5128         Do not set PDR_BASE_OBJECT_SET.
5129         * graphite-poly.h (poly_dr): Same.
5130         (PDR_BASE_OBJECT_SET): Remove.
5131         (new_poly_dr): Update decl.
5132         * graphite-sese-to-poly.c (build_poly_dr): Update call to
5133         new_poly_dr.
5134         (write_alias_graph_to_ascii_dimacs): Remove.
5135         (write_alias_graph_to_ascii_dot): Remove.
5136         (write_alias_graph_to_ascii_ecc): Remove.
5137         (dr_same_base_object_p): Remove.
5138         (build_alias_set_optimal_p): Rename build_alias_set.  Remove dead
5139         code.
5140         (build_base_obj_set_for_drs): Remove.
5141         (dump_alias_graphs): Remove.
5142         (build_scop_drs): Remove dead code.
5143
5144 2015-10-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
5145             Peter Bergner  <bergner@vnet.ibm.com>
5146
5147         PR target/67808
5148         * config/rs6000/rs6000.md (extenddftf2): In the expander, only
5149         allow registers, but provide insns for the combiner to create for
5150         loads from memory. Separate VSX code from non-VSX code. For
5151         non-VSX code, combine extenddftf2_fprs into extenddftf2 and rename
5152         externaldftf2_internal to externaldftf2_fprs. Reorder constraints
5153         so that registers come before memory operations. Drop support from
5154         converting DFmode to TFmode, if the DFmode value is in a GPR
5155         register.
5156         (extenddftf2_fprs): Likewise.
5157         (extenddftf2_internal): Likewise.
5158         (extenddftf2_vsx): Likewise.
5159         (extendsftf2): In the expander, only allow registers, but provide
5160         insns for the combiner to create for stores and loads.
5161
5162 2015-10-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5163
5164         * varasm.c (default_elf_asm_named_section): Remove ATTRIBUTE_UNUSED
5165         from the decl parameter.
5166
5167 2015-10-06  Nathan Sidwell  <nathan@codesourcery.com>
5168
5169         PR 67861
5170         * gimple-fold.c (gimple_fold_builtin): Add break after
5171         BUILT_IN_PRINTF_CHK, BUILT_IN_VPRINTF_CHK folding.
5172
5173 2015-10-06  H.J. Lu  <hongjiu.lu@intel.com>
5174
5175         * graphite-optimize-isl.c (optimize_isl): Rename scop->ctx
5176         to scop->isl_context.
5177
5178 2015-10-06  Eric Botcazou  <ebotcazou@adacore.com>
5179
5180         * config/arm/arm.c (arm_emit_probe_stack_range): Adjust comment.
5181         (output_probe_stack_range): Rotate the loop and simplify.
5182         (thumb1_expand_prologue): Tweak sorry message.
5183         * config/arm/arm.md (probe_stack): Use bare string.
5184
5185 2015-10-06  Nick Clifton  <nickc@redhat.com>
5186
5187         * config.gcc (lm32-elf): Add newlib-stdint.h to tm_file.
5188
5189 2015-10-06  Nick Clifton  <nickc@redhat.com>
5190
5191         * config/msp430/msp430.c (ATTR_NOINIT): New constant.
5192         (ATTR_PERSIST): New constant.
5193         (msp430_data_attr): New function - verifies an attribute that only
5194         applies to variables.
5195         (msp430_attributes): Add noinit and persistent attributes.
5196         (noinit_section): New variable.
5197         (presis_section): New variable.
5198         (TARGET_ASM_INIT_SECTIONS): Define.
5199         (msp430_init_sections): New function - initialises the noinit and
5200         persist section variables.
5201         (msp430_select_section): Add support for noinit and persist
5202         attributes.
5203         (msp430_section_type_flags): Likewise.
5204         * doc/extend.texi:  Document the reent, critical, wakeup, noinit
5205         and persistent attributes.
5206
5207 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
5208             Sebastian Pop  <s.pop@samsung.com>
5209
5210         * graphite-dependences.c (scop_get_transformed_schedule): Remove.
5211         (no_violations): Remove.
5212         (subtract_commutative_associative_deps): Remove.
5213         (compute_deps): Do not call subtract_commutative_associative_deps.
5214         (transform_is_safe): Remove.
5215         (graphite_legal_transform): Remove.
5216         * graphite-poly.h (graphite_legal_transform): Remove.
5217
5218 2015-10-05  Aditya Kumar  <hiraditya@msn.com>
5219
5220         * graphite-sese-to-poly.c (build_loop_iteration_domains): Only loops
5221         which are in this region are passed so gcc_assert and remove redundant
5222         computation.
5223         * sese.c (sese_build_liveouts): Pass only those bbs which are not
5224         in region.
5225         (sese_bad_liveouts_use): Only BBs which are not in region are passed so
5226         gcc_assert on that and remove unnecessary computation.
5227         (sese_build_liveouts_use): Same.
5228
5229 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
5230
5231         * graphite-dependences.c (scop_get_reads): Renamed scop->context
5232         to scop->param_context.
5233         (scop_get_must_writes): Same.
5234         (scop_get_may_writes): Same.
5235         (scop_get_original_schedule): Same.
5236         (scop_get_transformed_schedule): Same.
5237         (subtract_commutative_associative_deps): Same.
5238         * graphite-isl-ast-to-gimple.c (add_parameters_to_ivs_params): Same.
5239         (generate_isl_context): Same.
5240         (generate_isl_schedule): Same.
5241         (scop_to_isl_ast): Same.
5242         (graphite_regenerate_ast_isl): Same.
5243         * graphite-optimize-isl.c (scop_get_domains): Same.
5244         (optimize_isl): Renamed scop->context to scop->param_context.
5245         * graphite-poly.c (new_poly_bb): Change the type of argument to
5246         gimple_poly_bb_p.
5247         (new_scop): Renamed scop->context to scop->param_context.
5248         (free_scop): Same.
5249         (print_scop_context): Same.
5250         * graphite-poly.h (new_poly_dr): Change the type of argument from
5251         void* to data_reference_p.
5252         (struct poly_bb): Change the type of black_box to gimple_poly_bb_p.
5253         (new_poly_bb): Change the type of argument from void* to
5254         gimple_poly_bb_p.
5255         (pbb_set_black_box): Same.
5256         (struct scop): Rename context to param_context, ctx to isl_context.
5257         * graphite-scop-detection.c (scop_detection::build_scop_bbs_1):
5258         Move declarations closer to assignment.
5259         (find_params_in_bb): Same.
5260         (find_scop_parameters): Same.
5261         * graphite-sese-to-poly.c (unsigned ssa_name_version_typesize):
5262         Global to be used for statement IDs.
5263         (isl_id_for_pbb): Use ssa_name_version_typesize.
5264         (simple_copy_phi_p): Move declarations closer to assignment.
5265         (build_pbb_scattering_polyhedrons): Same.
5266         (build_scop_scattering): Same.
5267         (isl_id_for_ssa_name): Same.
5268         (extract_affine_name): Same.
5269         (extract_affine_int): Same.
5270         (extract_affine): Same.
5271         (set_scop_parameter_dim): Use renamed member.
5272         (build_loop_iteration_domains): Same.
5273         (add_param_constraints): Same.
5274         (build_scop_iteration_domain): Same.
5275         (pdr_add_data_dimensions): Same.
5276         (build_poly_dr): Same.
5277         (build_scop_drs): Move declarations closer to assignment.
5278         (analyze_drs_in_stmts): Same.
5279         (insert_out_of_ssa_copy): Same.
5280         (insert_out_of_ssa_copy_on_edge): Same.
5281         (propagate_expr_outside_region): Same.
5282         (rewrite_phi_out_of_ssa): Same.
5283         (rewrite_degenerate_phi): Same.
5284         (rewrite_reductions_out_of_ssa): Same.
5285         (rewrite_cross_bb_scalar_dependence): Same.
5286         (handle_scalar_deps_crossing_scop_limits): Same.
5287         (rewrite_cross_bb_scalar_deps): Same.
5288         * graphite.c (graphite_transform_loops): Use renamed member.
5289
5290 2015-10-06  Uros Bizjak  <ubizjak@gmail.com>
5291
5292         PR c/65345
5293         * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Use
5294         create_tmp_var_raw instead of create_tmp_var.
5295
5296 2015-10-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5297
5298         PR c/65345
5299         * config/aarch64/aarch64-builtins.c (aarch64_atomic_assign_expand_fenv):
5300         Use create_tmp_var_raw instead of create_tmp_var.
5301
5302 2015-10-06  Alexander Fomin  <alexander.fomin@intel.com>
5303
5304         PR target/67849
5305         * config/i386/sse.md (define_split vec_select/V8FI): Restrict
5306         split for upper-bank registers when target does not support
5307         AVX512VL.
5308         (define_insn "vec_extract_lo_<mode><mask_name>"): Restrict
5309         split when target does not support AVX512VL.
5310
5311 2015-10-06  David Edelsohn  <dje.gcc@gmail.com>
5312
5313         PR c/65345
5314         * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv):
5315         Adjust to use create_tmp_var_raw instead of create_tmp_var.
5316
5317 2015-10-06  Nick Clifton  <nickc@redhat.com>
5318
5319         * config/rl78/rl78.c (rl78_rtx_costs): Improve cost estimates for
5320         multiplication.
5321
5322 2015-10-06  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
5323
5324         * config.gcc (i[34567]86-*-linux* | ...): Add znver1.
5325         (case ${target}): Add znver1.
5326         * config/i386/cpuid.h(bit_CLZERO):  Define.
5327         * config/i386/driver-i386.c: (host_detect_local_cpu): Let
5328         -march=native recognize znver1 processors.
5329         * config/i386/i386-c.c (ix86_target_macros_internal): Add
5330         znver1, clzero def_and_undef.
5331         * config/i386/i386.c (struct processor_costs znver1_cost): New.
5332         (m_znver1): New definition.
5333         (m_AMD_MULTIPLE): Includes m_znver1.
5334         (processor_target_table): Add znver1 entry.
5335         (ix86_target_string) : Add clzero entry.
5336         (static const char *const cpu_names): Add znver1 entry.
5337         (ix86_option_override_internal): Add znver1 instruction sets.
5338         (PTA_CLZERO) :  New definition.
5339         (ix86_option_override_internal): Handle new clzerooption.
5340         (ix86_issue_rate): Add znver1.
5341         (ix86_adjust_cost): Add znver1.
5342         (ia32_multipass_dfa_lookahead): Add znver1.
5343         (has_dispatch): Add znver1.
5344         * config/i386/i386.h (TARGET_znver1): New definition.
5345         (TARGET_CLZERO): Define.
5346         (TARGET_CLZERO_P): Define.
5347         (struct ix86_size_cost): Add TARGET_ZNVER1.
5348         (enum processor_type): Add PROCESSOR_znver1.
5349         * config/i386/i386.md (define_attr "cpu"): Add znver1.
5350         (set_attr znver1_decode): New definitions for znver1.
5351         * config/i386/i386.opt (flag_dispatch_scheduler): Add znver1.
5352         (mclzero): New.
5353         * config/i386/mmx.md (set_attr znver1_decode): New definitions
5354         for znver1.
5355         * config/i386/sse.md (set_attr znver1_decode): Likewise.
5356         * config/i386/x86-tune.def:  Add znver1 tunings.
5357         * config/i386/znver1.md: Introduce znver1 cpu and include new md file.
5358         * doc/invoke.texi: Add details about znver1
5359
5360 2015-10-06  Richard Biener  <rguenther@suse.de>
5361
5362         PR tree-optimization/67859
5363         * tree-ssa-pre.c (create_expression_by_pieces): Properly
5364         discard not inserted stmts.
5365
5366 2015-10-06  Jonathan Wakely  <jwakely@redhat.com>
5367
5368         * doc/extend.texi (Template Instantiation): Reorder options and
5369         de-emphasize -frepo.
5370         * doc/invoke.texi (C++ Dialect Options): Use -fstrict-enums in
5371         example instead of -frepo.
5372
5373 2015-10-06  Eric Botcazou  <ebotcazou@adacore.com>
5374
5375         PR c/65345
5376         * config/sparc/sparc.c (sparc_atomic_assign_expand_fenv): Adjust to
5377         use create_tmp_var_raw rather than create_tmp_var.
5378
5379 2015-10-06  Richard Biener  <rguenther@suse.de>
5380
5381         * tree-vectorizer.h (vec_info): New base class for...
5382         (_loop_vec_info): ... this and ...
5383         (_bb_vec_info): ... this.
5384         (vect_is_simple_use, vect_is_simple_use_1, new_stmt_vec_info,
5385         vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
5386         vect_analyze_data_ref_accesses, vect_analyze_data_refs,
5387         vect_schedule_slp, vect_analyze_slp, vect_pattern_recog,
5388         vect_destroy_datarefs): Adjust interface to take a vec_info *
5389         rather than both a loop_vec_info and a bb_vec_info argument.
5390         * tree-vect-data-refs.c (vect_compute_data_refs_alignment,
5391         vect_verify_datarefs_alignment, vect_enhance_data_refs_alignment,
5392         vect_analyze_data_refs_alignment, vect_analyze_data_ref_accesses,
5393         vect_analyze_data_refs, vect_create_data_ref_ptr): Adjust
5394         accordingly.
5395         * tree-vect-loop.c (new_loop_vec_info): Initialize base class.
5396         (destroy_loop_vec_info, vect_analyze_loop_2,
5397         vect_is_simple_reduction_1, get_initial_def_for_induction,
5398         vect_create_epilog_for_reduction, vectorizable_reduction,
5399         vectorizable_live_operation, vect_transform_loop): Adjust.
5400         * tree-vect-patterns.c (type_conversion_p,
5401         vect_recog_widen_mult_pattern, vect_recog_widen_shift_pattern,
5402         vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern,
5403         vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern,
5404         check_bool_pattern, vect_recog_bool_pattern,
5405         vect_mark_pattern_stmts, vect_pattern_recog): Likewise.
5406         * tree-vect-slp.c (vect_get_and_check_slp_defs,
5407         vect_build_slp_tree_1, vect_build_slp_tree, vect_analyze_slp_cost_1,
5408         vect_analyze_slp_instance, vect_analyze_slp, destroy_bb_vec_info,
5409         vect_slp_analyze_bb_1, vect_schedule_slp): Likewise.
5410         (new_bb_vec_info): Initialize base classs.
5411         * tree-vect-stmts.c (record_stmt_cost, process_use,
5412         vect_get_vec_def_for_operand, vect_finish_stmt_generation,
5413         vectorizable_mask_load_store, vectorizable_call,
5414         vectorizable_simd_clone_call, vectorizable_conversion,
5415         vectorizable_assignment, vectorizable_shift,
5416         vectorizable_operation, vectorizable_store,
5417         vectorizable_load, vect_is_simple_cond, vectorizable_condition,
5418         new_stmt_vec_info, vect_is_simple_use, vect_is_simple_use_1): Likewise.
5419         * tree-vectorizer.c (vect_destroy_datarefs): Likewise.
5420
5421 2015-10-05  Kaz Kojima  <kkojima@gcc.gnu.org>
5422
5423         PR c/65345
5424         * config/sh/sh.c (sh_atomic_assign_expand_fenv): Adjust to use
5425         create_tmp_var_raw rather than create_tmp_var.
5426
5427 2015-10-05  Marek Polacek  <polacek@redhat.com>
5428
5429         * tree-ssa-loop-im.c
5430         (move_computations_dom_walker::before_dom_children): Don't set
5431         SSA_NAME_ANTI_RANGE_P.
5432         * tree-ssa-phiopt.c (value_replacement): Likewise.
5433
5434 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
5435             Sebastian Pop  <s.pop@samsung.com>
5436
5437         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Increase to 7.
5438
5439 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
5440             Sebastian Pop  <s.pop@samsung.com>
5441
5442         * graphite-poly.c (new_gimple_poly_bb): ... here.
5443         (free_data_refs_aux): ... here.
5444         (free_gimple_poly_bb): ... here.
5445         (remove_gbbs_in_scop): ... here.
5446         (new_scop): Call new_sese.
5447         (free_scop): Call remove_gbbs_in_scop and free_sese.
5448         * graphite-poly.h (base_alias_pair): ... here.
5449         (new_gimple_poly_bb): Declare.
5450         (free_gimple_poly_bb): Declare.
5451         * graphite-scop-detection.c (parameter_index_in_region_1):
5452         (parameter_index_in_region): ... here.
5453         (scan_tree_for_params): ... here.
5454         (find_params_in_bb): ... here.
5455         (find_scop_parameters): ... here.
5456         (build_scops): Call find_scop_parameters.
5457         * graphite-sese-to-poly.c (free_gimple_poly_bb): Move...
5458         (free_scops): Move...
5459         (single_pred_cond_non_loop_exit): Move...
5460         (sese_dom_walker::before_dom_children): Move...
5461         (sese_dom_walker::after_dom_children): Move...
5462         (build_poly_scop): Move...
5463         * graphite-sese-to-poly.h (base_alias_pair): Move...
5464         * graphite.c (free_scops): ... here.
5465
5466 2015-10-05  Aditya Kumar  <aditya.k7@samsung.com>
5467             Sebastian Pop  <s.pop@samsung.com>
5468
5469         * graphite-scop-detection.c: Include domwalk.h and tree-cfg.h.
5470         (trivially_empty_bb_p): Move...
5471         (same_close_phi_node): Move...
5472         (new_gimple_poly_bb): Move...
5473         (compare_bb_depths): Move...
5474         (graphite_sort_dominated_info): Move...
5475         (remove_duplicate_close_phi): Move...
5476         (make_close_phi_nodes_unique): Move...
5477         (canonicalize_loop_closed_ssa): Move...
5478         (canonicalize_loop_closed_ssa_form): Move...
5479         (loop_ivs_can_be_represented): Move...
5480         (single_pred_cond_non_loop_exit): Move...
5481         (graphite_can_represent_init): Move...
5482         (graphite_can_represent_scev): Move...
5483         (stmt_has_simple_data_refs_p): Move...
5484         (stmt_has_side_effects):  Move...
5485         (graphite_can_represent_stmt): Move...
5486         (scop_detection): ... here.
5487         (sese_dom_walker): ... and here.
5488         (build_scops): Call all moved functions.
5489         * graphite-sese-to-poly.c (try_generate_gimple_bb): Move...
5490         (all_non_dominated_preds_marked_p): Move...
5491         (build_scop_bbs_1): Move...
5492         (build_scop_bbs): Move...
5493         (set_scop_parameter_dim): Move...
5494         (nb_pbbs_in_loops): Move...
5495         (build_poly_scop): Do not call all the moved functions.
5496
5497 2015-10-05  Martin Jambor  <mjambor@suse.cz>
5498             Jan Hubicka  <hubicka@ucw.cz>
5499
5500         * ipa-cp.c (ipcp_alignment_lattice): New type.
5501         (ipcp_param_lattices): Use the above to represent alignment.
5502         (ipcp_alignment_lattice::print): New function.
5503         (print_all_lattices): Use it to print alignment information.
5504         (ipcp_alignment_lattice::top_p): New function.
5505         (ipcp_alignment_lattice::bottom_p): Likewise.
5506         (ipcp_alignment_lattice::set_to_bottom): Likewise.
5507         (ipcp_alignment_lattice::meet_with_1): Likewise.
5508         (ipcp_alignment_lattice::meet_with): Two new overloaded functions.
5509         (set_all_contains_variable): Use set_to_bottom of alignment lattice.
5510         (initialize_node_lattices): Likewise.
5511         (propagate_alignment_accross_jump_function): Work with the new class
5512         for alignment lattices.
5513         (propagate_constants_accross_call): Pass only the alignment lattice to
5514         propagate_alignment_accross_jump_function.
5515         (ipcp_store_alignment_results): Work with the new class for alignment
5516         lattices.
5517
5518 2015-10-05  Marek Polacek  <polacek@redhat.com>
5519
5520         PR tree-optimization/67821
5521         * tree-ssanames.c (duplicate_ssa_name_range_info): Remove an assert.
5522
5523 2015-10-05  Thomas Schwinge  <thomas@codesourcery.com>
5524
5525         PR other/65021
5526         * config/i386/intelmic-mkoffload.c (mkoffload_atexit): Rename
5527         function to...
5528         (mkoffload_cleanup): ... this.  Adjust all users.
5529         (maybe_unlink): Look at save_temps and verbose flags instead of
5530         debug flag.
5531         (main): Parse "-save-temps" flag.
5532         (generate_target_descr_file, generate_target_offloadend_file)
5533         (generate_host_descr_file, prepare_target_image): Pass it on.
5534         * config/nvptx/mkoffload.c (tool_cleanup): Implement.
5535         (mkoffload_cleanup): New function.
5536         (maybe_unlink): Look at save_temps and verbose flags instead of
5537         debug flag.
5538         (main): Instead of calling utils_cleanup, register atexit handler
5539         for mkoffload_cleanup.
5540         (main): Parse "-save-temps" flag.
5541         (compile_native, main): Pass it on.
5542         * lto-wrapper.c (compile_offload_image): Likewise.
5543
5544 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5545
5546         * gimple.h (gimple_op_ptr): Require a non const gimple *.
5547         (gimple_assign_lhs_ptr): Likewise.
5548         (gimple_assign_rhs1_ptr): Likewise.
5549         (gimple_assign_rhs2_ptr): Likewise.
5550         (gimple_assign_rhs3_ptr): Likewise.
5551         (gimple_call_lhs_ptr): Likewise.
5552         (gimple_call_fn_ptr): Likewise.
5553         (gimple_call_chain_ptr): Likewise.
5554                 (gimple_call_arg_ptr): Likewise.
5555                 (gimple_cond_lhs_ptr): Likewise.
5556         (gimple_cond_rhs_ptr): Likewise.
5557         (gimple_switch_index_ptr): Likewise.
5558         (gimple_return_retval_ptr): Likewise.
5559
5560 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5561
5562         * gimple.h (gimple_asm_input_op_ptr): Remove.
5563         (gimple_asm_output_op_ptr): Likewise.
5564
5565 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5566
5567         * gimple.h (gimple_location_ptr): Remove.
5568         * tree-vrp.c (check_all_array_refs): Adjust.
5569
5570 2015-10-05  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5571
5572         * tree-ssa-operands.c (build_uses): store tree * instead of
5573         tree.
5574         (finalize_ssa_uses): Adjust.
5575         (append_use): Likewise.
5576         (verify_ssa_operands): Likewise.
5577
5578 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
5579
5580         * real.h (build_real_truncate): Declare.
5581         * tree.c (build_real_truncate): New function.
5582         (strip_float_extensions): Use it.
5583         * builtins.c (fold_builtin_cabs, fold_builtin_sqrt, fold_builtin_cbrt)
5584         (fold_builtin_hypot, fold_builtin_pow): Likewise.
5585         * match.pd: Likewise.
5586
5587 2015-10-05 James Greenhalgh <james.greenhalgh@arm.com>
5588            Jiong Wang  <jiong.wang@arm.com>
5589
5590         * config/aarch64/aarch64.md (tlsie_tiny_sidi): Replace "<w>" with "w".
5591
5592 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
5593
5594         * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Delete.
5595         * config/aarch64/aarch64.c (aarch64_float_const_zero_rtx_p)
5596         (aarch64_print_operand, aarch64_float_const_representable_p)
5597         (aarch64_output_simd_mov_immediate): Use CONST_DOUBLE_REAL_VALUE
5598         instead of REAL_VALUE_FROM_CONST_DOUBLE.
5599         * config/arc/arc.c (arc_print_operand): Likewise.
5600         * config/arm/arm.c (arm_const_double_rtx, vfp3_const_double_index)
5601         (neon_valid_immediate, arm_print_operand, arm_emit_fp16_const)
5602         (vfp3_const_double_for_fract_bits, vfp3_const_double_for_bits):
5603         Likewise.
5604         * config/arm/arm.md (*arm32_movhf, consttable_4, consttable_8)
5605         (consttable_16): Likewise.
5606         * config/arm/vfp.md (*movhf_vfp_neon, *movhf_vfp): Likewise.
5607         * config/avr/avr.c (avr_print_operand): Likewise.
5608         * config/bfin/bfin.md: Likewise (in a define_split).
5609         * config/c6x/c6x.md: Likewise (in a define_split).
5610         * config/cr16/cr16.c (cr16_const_double_ok): Likewise.
5611         (cr16_print_operand): Likewise.
5612         * config/cris/cris.c (cris_print_operand): Likewise.
5613         * config/epiphany/epiphany.c (epiphany_print_operand): Likewise.
5614         * config/fr30/fr30.c (fr30_print_operand): Likewise.
5615         (fr30_const_double_is_zero): Likewise.
5616         * config/frv/frv.c (frv_print_operand, output_move_single): Likewise.
5617         * config/frv/frv.md: Likewise (in a define_split).
5618         * config/frv/predicates.md (int_2word_operand): Likewise.
5619         * config/h8300/h8300.c (h8300_print_operand): Likewise.
5620         * config/i386/i386.c (standard_80387_constant_p): Likewise.
5621         (ix86_print_operand, ix86_split_to_parts): Likewise.
5622         * config/i386/i386.md: Likewise (in a define_split).
5623         * config/ia64/ia64.c (ia64_split_tmode, ia64_print_operand): Likewise.
5624         * config/iq2000/iq2000.md (movsf_lo_sum, movsf_high): Likewise.
5625         * config/m32r/m32r.c (easy_df_const, m32r_print_operand): Likewise.
5626         * config/m68k/m68k.c (handle_move_double, standard_68881_constant_p)
5627         (print_operand): Likewise.
5628         * config/m68k/m68k.md (movsf_cf_hard, movdf_cf_hard): Likewise.
5629         * config/mep/mep.md: Likewise (in define_split).
5630         * config/microblaze/microblaze.c (microblaze_const_double_ok)
5631         (print_operand): Likewise.
5632         * config/mips/mips.md (consttable_float): Likewise.
5633         * config/mmix/mmix.c (mmix_intval): Likewise.
5634         * config/mn10300/mn10300.c (mn10300_print_operand): Likewise.
5635         * config/nvptx/nvptx.c (nvptx_print_operand): Likewise.
5636         * config/pa/pa.c (pa_singlemove_string): Likewise.
5637         * config/pdp11/pdp11.c (pdp11_expand_operands): Likewise.
5638         (pdp11_asm_print_operand, legitimate_const_double_p): Likewise.
5639         * config/rs6000/rs6000.c (num_insns_constant, rs6000_emit_cmove)
5640         (output_toc): Likewise.
5641         * config/rs6000/rs6000.md: Likewise (in define_splits).
5642         * config/rx/rx.c (rx_print_operand): Likewise.
5643         * config/s390/s390.c (s390_output_pool_entry): Likewise.
5644         * config/sh/sh.c (fp_zero_operand, fp_one_operand): Likewise.
5645         * config/sh/sh.md (consttable_sf, consttable_df): Likewise
5646         (and also in define_splits).
5647         * config/sparc/sparc.c (fp_sethi_p, fp_mov_p): Likewise.
5648         (fp_high_losum_p): Likewise.
5649         * config/sparc/sparc.md (*movsf_insn, *movsf_lo_sum): Likewise.
5650         (*movsf_high): Likewise.
5651         * config/spu/spu.c (const_double_to_hwint): Likewise.
5652         * config/v850/v850.c (const_double_split): Likewise.
5653         * config/vax/vax.c (vax_float_literal): Likewise.
5654         * config/visium/visium.c (visium_expand_copysign): Likewise.
5655         * config/visium/visium.md: Likewise (in define_split).
5656         * config/xtensa/predicates.md (const_float_1_operand): Likewise.
5657         * config/xtensa/xtensa.c (print_operand): Likewise.
5658         (xtensa_output_literal): Likewise.
5659         * cprop.c (implicit_set_cond_p): Likewise.
5660         * dwarf2out.c (insert_float): Likewise.
5661         * expmed.c (expand_mult, make_tree): Likewise.
5662         * expr.c (compress_float_constant): Likewise.
5663         * rtlanal.c (split_double): Likewise.
5664         * simplify-rtx.c (avoid_constant_pool_reference): Likewise.
5665         (simplify_const_unary_operation, simplify_binary_operation_1)
5666         (simplify_const_binary_operation): Likewise.
5667         (simplify_const_relational_operation): Likewise.
5668         * varasm.c (output_constant_pool_2): Likewise.
5669
5670 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
5671
5672         * real.h (CONST_DOUBLE_ATOF): Use const_double_from_real_value
5673         instead of CONST_DOUBLE_FROM_REAL_VALUE.
5674         (CONST_DOUBLE_FROM_REAL_VALUE): Delete.
5675         * config/c6x/c6x.md (divsf3, divdf3): Use const_double_from_real_value
5676         instead of CONST_DOUBLE_FROM_REAL_VALUE.
5677         * config/epiphany/epiphany.md (fixuns_truncsfsi2): Likewise.
5678         * config/i386/i386.c (standard_80387_constant_rtx): Likewise.
5679         (ix86_expand_builtin, ix86_emit_i387_log1p, ix86_emit_i387_round)
5680         (ix86_emit_swsqrtsf): Likewise.
5681         * config/ia64/ia64.c (ia64_expand_builtin): Likewise.
5682         * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
5683         (fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
5684         * config/pa/pa.c (pa_expand_builtin): Likewise.
5685         * config/rs6000/rs6000.c (rs6000_load_constant_and_splat): Likewise.
5686         (rs6000_scale_v2df): Likewise.
5687         * config/rs6000/rs6000.md (*cmptf_internal2): Likewise.
5688         * config/s390/s390.md (fixuns_truncdddi2, fixuns_trunctddi2)
5689         (fixuns_trunc<BFP:mode><GPR:mode>2): Likewise.
5690         * config/s390/vx-builtins.md (vec_ctd_s64, vec_ctd_u64, vec_ctsl)
5691         (vec_ctul): Likewise.
5692         * config/sparc/sparc.c (sparc_emit_fixunsdi): Likewise.
5693         * config/spu/spu.c (hwint_to_const_double, spu_float_const): Likewise.
5694         * config/spu/spu.md (floatunsdisf2, floatunstisf2): Likewise.
5695         * cse.c (fold_rtx): Likewise.
5696         * emit-rtl.c (immed_double_const): Likewise (in comments).
5697         (init_emit_once): Likewise.
5698         * expr.c (compress_float_constant, expand_expr_real_1)
5699         (const_vector_from_tree): Likewise.
5700         * optabs.c (expand_float, expand_fix): Likewise.
5701         * reg-stack.c (reg_to_stack): Likewise.
5702         * simplify-rtx.c (avoid_constant_pool_reference): Likewise.
5703         (simplify_const_unary_operation, simplify_binary_operation_1)
5704         (simplify_const_binary_operation, simplify_relational_operation)
5705         (simplify_immed_subreg): Likewise.
5706
5707 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
5708
5709         * doc/tm.texi.in (REAL_ARITHMETIC): Delete.
5710         * doc/tm.texi: Regenerate.
5711         * real.h (REAL_ARITHMETIC): Delete.
5712         * config/i386/i386.c (ix86_expand_lround, ix86_expand_round)
5713         (ix86_expand_round_sse4): Use real_arithmetic instead of
5714         REAL_ARITHMETIC.
5715         * config/i386/sse.md (round<mode>2): Likewise.
5716         * rtl.h (rtx_to_tree_code): Likewise (in comment).
5717         * explow.c (rtx_to_tree_code): Likewise (in comment).
5718         * match.pd: Likewise.
5719         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
5720         * tree-ssa-math-opts.c (representable_as_half_series_p): Likewise.
5721         (expand_pow_as_sqrts): Likewise.
5722         * tree-pretty-print.c (dump_generic_node): Remove code that
5723         was conditional on REAL_ARITHMETIC being undefined.
5724
5725 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
5726
5727         * doc/tm.texi.in (REAL_VALUES_LESS): Delete.
5728         * doc/tm.texi: Regenerate.
5729         * real.h (real_less): Declare.
5730         (REAL_VALUES_LESS): Delete.
5731         * real.c (real_less): New function.
5732         (real_compare): Use it.
5733         * config/m68k/m68k.c (floating_exact_log2): Use real_less instead
5734         of REAL_VALUES_LESS.
5735         * config/microblaze/microblaze.c (microblaze_const_double_ok):
5736         Likewise.
5737         * fold-const.c (fold_convert_const_int_from_real): Likewise.
5738         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
5739         (simplify_const_relational_operation): Likewise.
5740         * tree-call-cdce.c (check_pow): Likewise.
5741         (gen_conditions_for_pow_cst_base): Likewise.
5742
5743 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
5744
5745         * real.h (REAL_VALUES_IDENTICAL): Delete.
5746         * config/m68k/m68k.c (standard_68881_constant_p): Use real_identical
5747         instead of REAL_VALUES_IDENTICAL.
5748         * fold-const.c (operand_equal_p): Likewise.
5749         * ipa-icf.c (sem_variable::equals): Likewise.
5750         * tree-complex.c (some_nonzerop): Likewise.
5751         (expand_complex_multiplication): Likewise.
5752         * tree.c (simple_cst_equal): Likewise.
5753         * varasm.c (compare_constant): Likewise.
5754
5755 2015-10-05  Richard Sandiford  <richard.sandiford@arm.com>
5756
5757         * real.h (real_equal): Declare.
5758         (REAL_VALUES_EQUAL): Delete.
5759         * real.c (real_equal): New function.
5760         (real_compare): Use it.
5761         * doc/tm.texi.in (REAL_VALUES_EQUAL): Delete.
5762         * doc/tm.texi: Regenerate.
5763         * builtins.c (fold_builtin_pow, fold_builtin_load_exponent): Use
5764         real_equal instead of REAL_VALUES_EQUAL.
5765         * config/aarch64/aarch64.c (aarch64_float_const_zero_rtx_p): Likewise.
5766         * config/arm/arm.c (arm_const_double_rtx, neon_valid_immediate)
5767         (fp_const_from_val): Likewise.
5768         * config/fr30/fr30.c (fr30_const_double_is_zero): Likewise.
5769         * config/m68k/m68k.c (standard_68881_constant_p): Likewise.
5770         (floating_exact_log2): Likewise.
5771         * config/sh/sh.c (fp_zero_operand, fp_one_operand): Likewise.
5772         * config/vax/vax.c (vax_float_literal): Likewise.
5773         * config/xtensa/predicates.md (const_float_1_operand): Likewise.
5774         * cprop.c (implicit_set_cond_p): Likewise.
5775         * expmed.c (expand_mult): Likewise.
5776         * fold-const.c (const_binop): Likewise.
5777         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
5778         (simplify_const_binary_operation): Likewise.
5779         (simplify_const_relational_operation): Likewise.
5780         * tree-call-cdce.c (check_pow): Likewise.
5781         (gen_conditions_for_pow_cst_base): Likewise.
5782         * tree-inline.c (estimate_num_insns): Likewise.
5783         * tree-ssa-dom.c (record_equality): Likewise.
5784         * tree-ssa-math-opts.c (representable_as_half_series_p): Likewise.
5785         (gimple_expand_builtin_pow): Likewise.
5786         (pass_optimize_widening_mul::execute): Likewise.
5787         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
5788         * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
5789         * tree.c (real_zerop, real_onep, real_minus_onep): Likewise.
5790
5791 2015-10-05  Richard Biener  <rguenther@suse.de>
5792
5793         PR ipa/67783
5794         * ipa-inline-analysis.c (estimate_function_body_sizes): Only
5795         consider loop header PHI defs as IVs.
5796
5797 2015-10-05  Richard Biener  <rguenther@suse.de>
5798
5799         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Move
5800         call handling ...
5801         (create_expression_by_pieces): ... here and build GIMPLE
5802         calls directly.  Use gimple_build API and avoid force_gimple_operand.
5803         (insert_into_preds_of_block): Simplify.
5804         (do_regular_insertion): Add comment.
5805
5806 2015-10-04  Jason Merrill  <jason@redhat.com>
5807
5808         * builtins.def (BUILT_IN_ABORT): Add transaction_pure attribute.
5809
5810 2015-10-04  Uros Bizjak  <ubizjak@gmail.com>
5811
5812         * config/i386/i386.c (ix86_nsaved_regs): Use GENERAL_REGNO_P to
5813         check for general register.
5814         (ix86_emit_save_regs): Ditto.
5815         (ix86_emit_save_regs_using_mov): Ditto.
5816         (ix86_emit_restore_regs_using_pop): Ditto.
5817         (ix86_emit_restore_regs_using_mov): Ditto.
5818
5819 2015-10-03  Marek Polacek  <polacek@redhat.com>
5820
5821         * Makefile.in (insn-latencytab.o): Remove -Wno-duplicated-cond.
5822         (insn-dfatab.o): Likewise.
5823
5824 2015-10-03  Max Filippov  <jcmvbkbc@gmail.com>
5825
5826         * config.gcc (xtensa*-*-uclinux*): New configuration.
5827         * config/xtensa/uclinux.h: New file.
5828         * config/xtensa/uclinux.opt: New file.
5829
5830 2015-10-03  Jonathan Wakely  <jwakely@redhat.com>
5831
5832         * doc/cpp.texi (Standard Predefined Macros): Document value of
5833         __cplusplus for C++14.
5834
5835 2015-10-02  Bernd Schmidt  <bernds@codesourcery.com>
5836
5837         * gcc.c (process_command): Use spec_machine rather than
5838         spec_host_machine to build tooldir_prefix2.
5839
5840 2015-10-02  Thomas Schwinge  <thomas@codesourcery.com>
5841             Bernd Schmidt  <bernds@codesourcery.com>
5842
5843         * config/nvptx/mkoffload.c (Kind, Vis): Remove enums.
5844         (Token, Stmt): Remove structs.
5845         (decls, vars, fns): Remove variables.
5846         (alloc_comment, append_stmt, is_keyword): Remove macros.
5847         (tokenize, write_token, write_tokens, alloc_stmt, rev_stmts)
5848         (write_stmt, write_stmts, parse_insn, parse_list_nosemi)
5849         (parse_init, parse_file): Remove functions.
5850         (read_file): Accept a pointer to a length and store into it.
5851         (process): Don't try to parse the input file, just write it out as
5852         a string, but looking for maps.  Also write out the length.
5853         (main): Don't use "-S" to compile PTX code.
5854
5855 2015-10-02  Jeff Law  <law@redhat.com>
5856
5857         * tree-ssa-dom.c (optimize_stmt): Note when loop structures need
5858         fixups.
5859
5860 2015-10-02  Thomas Schwinge  <thomas@codesourcery.com>
5861
5862         PR target/67822
5863         * config/nvptx/mkoffload.c (main): Scan the argument vector for
5864         -fopenmp, and skip generating an offloading image if specified.
5865
5866 2015-10-02  Uros Bizjak  <ubizjak@gmail.com>
5867
5868         * system.h (ROUND_UP): New macro definition.
5869         (ROUND_DOWN): Ditto.
5870         * ggc-page.c (ROUND_UP): Remove local macro definition.
5871         (PAGE_ALIGN): Implement using ROUND_UP macro.
5872
5873         * config/i386/i386.h (PUSH_ROUNDING): Implement using ROUND_UP macro.
5874         * config/i386/i386.c (function_arg_advance_64): Use ROUND_UP macro
5875         to align values.
5876         (ix86_compute_frame_layout): Ditto.
5877         (ix86_expand_prologue): Ditto.
5878         (ix86_adjust_stack_and_probe): Use ROUND_DOWN macro
5879         to round down values.
5880         (expand_set_or_movmem_via_rep): Ditto.
5881
5882 2015-10-02  Marek Polacek  <polacek@redhat.com>
5883
5884         * genemit.c (gen_exp): Remove -Wduplicated-cond hack.
5885
5886 2015-10-02  Aditya Kumar  <aditya.k7@samsung.com>
5887
5888         * graphite-scop-detection.c (loop_ivs_can_be_represented): New.
5889         (loop_body_is_valid_scop): Call loop_ivs_can_be_represented.
5890         * graphite-sese-to-poly.c (new_gimple_bb): Renamed new_gimple_poly_bb.
5891         (free_gimple_bb): Renamed free_gimple_poly_bb.
5892         (try_generate_gimple_bb): Hoist loop invariant code.
5893         (analyze_drs_in_stmts): Same.
5894         (build_scop_drs): Call renamed functions.
5895         (new_pbb_from_pbb): Same.
5896         (scop_ivs_can_be_represented): Delete as functionality now moved to
5897         graphite-scop-detection.c
5898         (build_poly_scop): Remove call to scop_ivs_can_be_represented.
5899
5900 2015-10-02  Aditya Kumar  <hiraditya@msn.com>
5901
5902         * graphite-scop-detection.c (stmt_has_side_effects): New function
5903           outlined from stmt_simple_for_scop_p.
5904         (graphite_can_represent_stmt): Same.
5905         (stmt_simple_for_scop_p): Moved code out of this function for better
5906         readability.
5907
5908 2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>
5909
5910         * config/i386/i386.c (processor_features): Add F_AVX512VBMI,
5911         F_AVX512IFMA.
5912         (isa_names_table): Handle F_AVX512VBMI and F_AVX512IFMA.
5913
5914 2015-10-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5915
5916         * config/aarch64/aarch64-elf.h (TARGET_ASM_NAMED_SECTION): Delete.
5917
5918 2015-10-02  Vladimir Makarov  <vmakarov@redhat.com>
5919
5920         PR rtl-optimization/67756
5921         * lra-constraints.c (match_reload): Add a new parameter.  Use it
5922         for creating a pseudo with the same value.
5923         (curr_insn_transform): Pass a new argument to match_reload.
5924
5925 2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>
5926
5927         * config/i386/i386.c (expand_vec_perm_even_odd_trunc): New.
5928         (expand_vec_perm_even_odd_1): Handle V64QImode.
5929         (ix86_expand_vec_perm_const_1): Try expansion with
5930         expand_vec_perm_even_odd_trunc as well.
5931         * config/i386/sse.md (VI124_AVX512F): Rename to ...
5932         (define_mode_iterator VI124_AVX2_24_AVX512F_1_AVX512BW): This. Extend
5933         to V54QI.
5934         (define_mode_iterator VI248_AVX2_8_AVX512F): Rename to ...
5935         (define_mode_iterator VI248_AVX2_8_AVX512F_24_AVX512BW): This. Extend
5936         to V32HI and V16SI.
5937         (define_insn "avx512bw_<code>v32hiv32qi2"): Unhide pattern name.
5938         (define_expand "vec_pack_trunc_<mode>"): Update iterator name.
5939         (define_expand "vec_unpacks_lo_<mode>"): Ditto.
5940         (define_expand "vec_unpacks_hi_<mode>"): Ditto.
5941         (define_expand "vec_unpacku_lo_<mode>"): Ditto.
5942         (define_expand "vec_unpacku_hi_<mode>"): Ditto.
5943
5944 2015-10-02  Kirill Yukhin  <kirill.yukhin@intel.com>
5945
5946         * doc/invoke.texi: Mention -mavx512vl, -mavx512bw, -mavx512dq,
5947         -mavx521vbmi, -mavx512ifma. Add missing opindex-es.
5948
5949 2015-10-02  Jason Merrill  <jason@redhat.com>
5950
5951         PR c/59218
5952         * trans-mem.c (volatile_lvalue_p): Rename from volatile_var_p.
5953         (diagnose_tm_1_op): Also diagnose volatile accesses in
5954         transaction_safe function.
5955
5956 2015-10-02  Jonathan Wakely  <jwakely@redhat.com>
5957
5958         * system.h (malloc.h): Don't include obsolete header.
5959
5960 2015-10-02  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
5961
5962         * config/aarch64/aarch64.c (aarch64_elf_asm_named_section): Delete.
5963         (TLS_SECTION_ASM_FLAG): Delete.
5964
5965 2015-10-02  Marek Polacek  <polacek@redhat.com>
5966
5967         PR c/64249
5968         * doc/invoke.texi: Document -Wduplicated-cond.
5969         * Makefile.in (insn-latencytab.o): Use -Wno-duplicated-cond.
5970         (insn-dfatab.o): Likewise.
5971         * genemit.c (gen_exp): Rewrite condition to avoid -Wduplicated-cond
5972         warning.
5973
5974 2015-10-02  Oleg Endo  <olegendo@gcc.gnu.org>
5975
5976         * config/sh/sh.md: Add new unnamed split pattern to handle movt-movt
5977         sequences.
5978
5979 2015-10-02  Renlin Li  <renlin.li@arm.com>
5980
5981         * config/aarch64/aarch64.md (csneg3_insn_uxtw): New pattern.
5982
5983 2015-10-02  Renlin Li  <renlin.li@arm.com>
5984
5985         PR target/66776
5986         * config/aarch64/aarch64.md (cmovdi_insn_uxtw): New pattern.
5987
5988 2015-10-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5989
5990         PR rtl-optimization/67786
5991         PR rtl-optimization/67787
5992         * ifcvt.c (bb_valid_for_noce_process_p): Reject basic block if
5993         it modifies a reg used in the condition calculation.
5994
5995 2015-10-02  James Greenhalgh  <james.greenhalgh@arm.com>
5996
5997         * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Add
5998         alternatives for reads from memory and moves from general-purpose
5999         registers.
6000         (*aarch64_combinez_be<mode>): Likewise.
6001
6002 2015-10-02  Kai Tietz  <ktietz70@googlemail.com>
6003
6004         PR target/51726
6005         * config/i386/winnt.c (ix86_handle_selectany_attribute): Handle
6006         selectany within this function without need to keep attribute.
6007         (i386_pe_encode_section_info): Remove selectany-code.
6008
6009 2015-10-02  Richard Biener  <rguenther@suse.de>
6010
6011         * tree-ssa-sccvn.c (has_VN_INFO): New function.
6012         (free_scc_vn): Use it.
6013         (visit_use): Remove dead code and refactor to use gassign
6014         and use less indentation.
6015
6016 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
6017
6018         PR target/67788
6019         PR target/67789
6020         * config/rs6000/rs6000.c (TARGET_CANNOT_COPY_INSN_P): New.
6021         (rs6000_cannot_copy_insn_p): New function.
6022         * config/rs6000/rs6000.md (cannot_copy): New attribute.
6023         (load_toc_v4_PIC_1_normal): Set cannot_copy.
6024         (load_toc_v4_PIC_1_476): Ditto.
6025
6026 2015-10-01  Aditya Kumar  <aditya.k7@samsung.com>
6027
6028         * graphite-scop-detection.c (struct sese_l): New conversion constructor
6029         so that this type can be pushed into a vec.
6030         (class scop_builder): use sese_l to collect scops.
6031         (get_scops): New getter function.
6032         (remove_intersecting_scops): Use sese_l instead of scops_p.
6033         (intersects): Same.
6034         (add_scop): Same.
6035         (subsumes): Same.
6036         (remove_subscops): Same.
6037         (build_scops): Add scops to vec<scops_p> once all the scops have been
6038         detected.
6039
6040 2015-10-01  Aditya Kumar  <aditya.k7@samsung.com>
6041
6042         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
6043         Renamed type from gimple_bb_p to gimple_poly_bb_p.
6044         (translate_isl_ast_node_user): Same.
6045         * graphite-poly.c (new_poly_bb): Same.
6046         * graphite-poly.h (gbb_from_bb): Same.
6047         * sese.h: Same.
6048         * graphite-sese-to-poly.c (new_gimple_bb):
6049         gimple_bb_p -> gimple_poly_bb_p
6050         (build_scop_scattering): Same.
6051         (find_params_in_bb): Same.
6052         (add_conditions_to_domain): Same.
6053         (sese_dom_walker::before_dom_children): Same.
6054         (analyze_drs_in_stmts): Same.
6055         (new_pbb_from_pbb): Same.
6056         (free_data_refs_aux): New pointer to type base_alias_pair.
6057         * graphite-sese-to-poly.h: Same.
6058         * sese.c (if_region_set_false_region): Fixed Indentation.
6059         (move_sese_in_condition): Same.
6060
6061 2015-10-01  Sebastian Pop  <s.pop@samsung.com>
6062             Aditya Kumar  <aditya.k7@samsung.com>
6063
6064         PR tree-optimization/66980
6065         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Return false
6066         when data reference analysis has failed.
6067
6068 2015-10-01  Sebastian Pop  <s.pop@samsung.com>
6069             Aditya Kumar  <aditya.k7@samsung.com>
6070
6071         PR tree-optimization/67754
6072         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Call
6073         scev analysis on the same loop nest as analyze_drs_in_stmts.
6074         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): Moved and
6075         renamed...
6076         (try_generate_gimple_bb): Call outermost_loop_in_sese.
6077         (analyze_drs_in_stmts): Same.
6078         * sese.c (outermost_loop_in_sese): ...here.
6079
6080 2015-10-01  Sebastian Pop  <s.pop@samsung.com>
6081             Aditya Kumar  <aditya.k7@samsung.com>
6082
6083         PR tree-optimization/67754
6084         * graphite-scop-detection.c (loop_body_is_valid_scop): Add missing
6085         recursion on the inner loops.
6086
6087 2015-10-01  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6088
6089         * cfganal.c, compare-elim.c, coverage.c, cprop.c, df-scan.c,
6090         function.c, read-rtl.c, statistics.c, trans-mem.c, tree-if-conv.c,
6091         tree-into-ssa.c, tree-loop-distribution.c, tree-ssa-coalesce.c,
6092         tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-strlen.c,
6093         tree-ssa-tail-merge.c, tree-vrp.c, var-tracking.c: Remove
6094
6095 2015-10-01  Marek Polacek  <polacek@redhat.com>
6096
6097         PR c/65345
6098         * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Adjust to use
6099         create_tmp_var_raw rather than create_tmp_var.
6100
6101 2015-10-01  Marek Polacek  <polacek@redhat.com>
6102
6103         PR tree-optimization/67769
6104         * tree-ssa-phiopt.c (conditional_replacement): Call
6105         reset_flow_sensitive_info_in_bb.
6106         (minmax_replacement): Likewise.
6107         (abs_replacement): Likewise.
6108
6109 2015-10-01  Nathan Sidwell  <nathan@codesourcery.com>
6110
6111         * builtins.c: Don't include gomp-constants.h.
6112         (fold_builtin_1): Don't fold acc_on_device here.
6113         * gimple-fold.c: Include gomp-constants.h.
6114         (gimple_fold_builtin_acc_on_device): New.
6115         (gimple_fold_builtin): Call it.
6116
6117 2015-10-01  H.J. Lu  <hongjiu.lu@intel.com>
6118
6119         * config/i386/x86-tune.def (X86_TUNE_USE_BT): Enable for Lakemont.
6120         (X86_TUNE_ZERO_EXTEND_WITH_AND): Disable for Lakemont.
6121
6122 2015-10-01  James Greenhalgh  <james.greenhalgh@arm.com>
6123
6124         * config/arm/aarch-common-protos.h
6125         (aarch_accumulator_forwarding): New.
6126         (aarch_forward_to_shift_is_not_shifted_reg): Likewise.
6127         * config/arm/aarch-common.c (aarch_accumulator_forwarding): New.
6128         (aarch_forward_to_shift_is_not_shifted_reg): Likewise.
6129         * config/arm/cortex-a53.md: Rewrite.
6130
6131 2015-10-01  Richard Biener  <rguenther@suse.de>
6132
6133         * gimple-match.h (mprts_hook): Declare.
6134         * gimple-match.head.c (mprts_hook): Define.
6135         (maybe_push_res_to_seq): Use new hook.
6136         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
6137         * tree-ssa-sccvn.h (vn_ssa_aux::expr): Change to a gimple_seq.
6138         (vn_ssa_aux::has_constants): Remove.
6139         * tree-ssa-sccvn.c: Include gimple-match.h.
6140         (VN_INFO_GET): Assert we don't re-use SSA names.
6141         (vn_get_expr_for): Remove.
6142         (expr_has_constants): Likewise.
6143         (stmt_has_constants): Likewise.
6144         (simplify_binary_expression): Likewise.
6145         (simplify_unary_expression): Likewise.
6146         (vn_lookup_simplify_result): New hook.
6147         (visit_copy): Adjust.
6148         (visit_reference_op_call): Likewise.
6149         (visit_phi): Likewise.
6150         (visit_use): Likewise.
6151         (process_scc): Likewise.
6152         (init_scc_vn): Likewise.
6153         (visit_reference_op_load): Likewise.  Use match-and-simplify and
6154         a gimple seq for inserted expressions.
6155         (try_to_simplify): Remove GENERIC stmt combining code.
6156         (sccvn_dom_walker::before_dom_children): Use match-and-simplify.
6157         * tree-ssa-pre.c (eliminate_insert): Adjust.
6158         (eliminate_dom_walker::before_dom_children): Likewise.
6159
6160 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
6161
6162         * doc/invoke.texi (Optimization Options): Add
6163         -freorder-blocks-algorithm=.
6164         (Optimize Options) <-O>: Add -freorder-blocks.
6165         <-O2>: Remove -freorder-blocks.  Add -freorder-blocks-algorithm=stc.
6166         <-Os>: Add -freorder-blocks-algorithm=stc as not enabled.
6167         <-freorder-blocks>: Also enabled at levels -O and -Os.
6168         <-freorder-blocks-algorithm=>: Document new option.
6169
6170 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
6171
6172         * bb-reorder.c (reorder_basic_blocks): Use the algorithm selected
6173         with flag_reorder_blocks_algorithm.
6174         * common.opt (freorder-blocks-algorithm=): New flag.
6175         (reorder_blocks_algorithm): New enum.
6176         * flag-types.h (reorder_blocks_algorithm): New enum.
6177         * opts.c (default_options_table): Use -freorder-blocks at -O1 and up,
6178         and -freorder-blocks-algorithm=stc at -O2 and up (not at -Os).
6179
6180 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
6181
6182         * bb-reorder.c: Add intro comment.
6183         (reorder_basic_blocks_software_trace_cache): Print a header to
6184         the dump file.
6185         (edge_order): New function.
6186         (reorder_basic_blocks_simple): New function.
6187         (reorder_basic_blocks): Choose between the STC and the simple
6188         algorithms (always choose the former).
6189
6190 2015-10-01  Segher Boessenkool  <segher@kernel.crashing.org>
6191
6192         * bb-reorder.c (reorder_basic_blocks_software_trace_cache): New
6193         function, factored out from ...
6194         (reorder_basic_blocks): ... here.
6195
6196 2015-10-01  Tom de Vries  <tom@codesourcery.com>
6197
6198         * tree-cfg.c (dump_function_to_file): Dump function attributes using
6199         __attribute__(()) string.  Move dumping of function attributes to before
6200         function name.
6201
6202 2015-10-01  Lynn Boger  <laboger@linux.vnet.ibm.com>
6203
6204         PR target/66870
6205         * config/rs6000/sysv4.h (TARGET_CAN_SPLIT_STACK_64BIT): Define.
6206         * configure.ac: Define HAVE_GOLD_ALTERNATE_SPLIT_STACK on Power
6207         based on gold linker version.
6208         * gcc.c: Add -fuse-ld=gold to STACK_SPLIT_SPEC if
6209         HAVE_GOLD_ALTERNATE_SPLIT_STACK defined.
6210         * configure, config.in: Regenerate.
6211
6212 2015-10-01  Alan Modra  <amodra@gmail.com>
6213
6214         * config/rs6000/rs6000.c (rs6000_emit_prologue): Don't set
6215         r2_setup_needed when TARGET_SINGLE_PIC_BASE.
6216         (rs6000_output_mi_thunk): Likewise.
6217
6218 2015-09-30  Nathan Sidwell  <nathan@codesourcery.com>
6219
6220         * config/nvptx/mkoffload.c (process): Change offload data format.
6221
6222 2015-09-30  Jeff Law  <law@redhat.com>
6223
6224         * tree-ssa-dom.c (optimize_stmt): Collapse control flow statements
6225         with constant conditions.
6226         * tree-ssa-threadupdate.c (remove_jump_threads_starting_at): New.
6227         (remove_ctrl_stmt_and_useless_edges): No longer static.
6228         * tree-ssa-threadupdate.h (remove_jump_threads_starting_at): Prototype.
6229         (remove_ctrl_stmt_and_useless_edges): Likewise.
6230
6231 2015-09-30  Nathan Sidwell  <nathan@codesourcery.com>
6232             Cesar Philippidis  <cesar@codesourcery.com>
6233
6234         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): New.
6235         (TARGET_GOACC_VALIDATE_DIMS): Override.
6236         * target.def (TARGET_GOACC): New target hook prefix.
6237         (validate_dims): New hook.
6238         * targhooks.h (default_goacc_validate_dims): New.
6239         * omp-low.c (oacc_validate_dims): New.
6240         (execute_oacc_device_lower): New.
6241         (default_goacc_validate_dims): New.
6242         (pass_data_oacc_device_lower): New.
6243         (pass_oacc_device_lower): New pass.
6244         (make_pass_oacc_device_lower): New.
6245         * tree-pass.h (make_pass_oacc_device_lower): Declare.
6246         * passes.def (pass_oacc_device_lower): Add it.
6247         * doc/tm.texi: Rebuilt.
6248         * doc/tm.texi.in (TARGET_GOACC_VALIDATE_DIMS): Add hook.
6249         * doc/invoke.texi (oaccdevlow): Document tree dump flag.
6250
6251 2015-09-30  Bernd Edlinger  <bernd.edlinger@hotmail.de>
6252
6253         PR rtl-optimization/67037
6254         * lra-constraints.c (process_addr_reg): Use copy_rtx when necessary.
6255
6256 2015-09-30  Bernd Schmidt  <bernds@redhat.com>
6257
6258         * gimple-ssa.h (gimple_df): Add free_ssanames_queue field.
6259         * passes.c: Include tree-ssanames.h.
6260         (execute_function_todo): Flush the pending free SSA_NAMEs after
6261         eliminating unreachable basic blocks.
6262         * tree-ssanames.c (FREE_SSANAMES_QUEUE): new.
6263         (init_ssanames): Initialize FREE_SSANAMES_QUEUE.
6264         (fini_ssanames): Finalize FREE_SSANAMES_QUEUE.
6265         (flush_ssanames_freelist): New function.
6266         (release_ssaname_fn): Put released names on the queue.
6267         (pass_release_ssa_names::execute): Call flush_ssanames_freelist.
6268         * tree-ssanames.h (flush_ssanames_freelist): Declare.
6269
6270 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
6271
6272         * config/i386/intelmic-mkoffload.c (main): Parse "-v" flag.
6273         (generate_target_descr_file, generate_target_offloadend_file)
6274         (generate_host_descr_file, prepare_target_image): Pass it on.
6275         * config/nvptx/mkoffload.c (main): Parse "-v" flag.
6276         (compile_native, main): Pass it on.
6277         * lto-wrapper.c (compile_offload_image): Likewise.
6278
6279 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
6280             Ilya Verbin  <ilya.verbin@intel.com>
6281             Andrey Turetskiy  <andrey.turetskiy@intel.com>
6282
6283         * config/i386/intelmic-mkoffload.c (generate_host_descr_file)
6284         (prepare_target_image, main): Refactor argv building to use
6285         obstacks.
6286
6287 2015-09-30  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
6288
6289         * config/spu/spu-protos.h (spu_expand_atomic_op): Add prototype.
6290         * config/spu/spu.c (spu_expand_atomic_op): New function.
6291         * config/spu/spu.md (AINT): New mode iterator.
6292         (ATOMIC): New code iterator.
6293         (atomic_name, atomic_pred): New code predicates.
6294         ("atomic_load<mode>", "atomic_store<mode>"): New expanders.
6295         ("atomic_compare_and_swap<mode>", "atomic_exchange<mode>"): Likewise.
6296         (""atomic_<atomic_name><mode>", "atomic_fetch_<atomic_name><mode>",
6297         "atomic_<atomic_name>_fetch<mode>"): Likewise.
6298
6299 2015-09-30  Ilya Enkovich  <enkovich.gnu@gmail.com>
6300
6301         * config/i386/i386.c (scalar_chain::analyze_register_chain): Ignore
6302         debug insns.
6303         (scalar_chain::convert_reg): Likewise.
6304
6305 2015-09-30  Richard Biener  <rguenther@suse.de>
6306
6307         * builtins.c: Add comment that no new simplifications should
6308         be added here.
6309
6310 2015-09-30  Marek Polacek  <polacek@redhat.com>
6311
6312         PR tree-optimization/67690
6313         * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): Call
6314         reset_flow_sensitive_info_in_bb.
6315         * tree-ssa-tail-merge.c (replace_block_by): Likewise.
6316         * tree-ssanames.c: Include "gimple-iterator.h".
6317         (reset_flow_sensitive_info_in_bb): New function.
6318         * tree-ssanames.h (reset_flow_sensitive_info_in_bb): Declare.
6319
6320 2015-09-30  Thomas Schwinge  <thomas@codesourcery.com>
6321
6322         * config/i386/intelmic-mkoffload.c (target_ilp32): Remove
6323         variable, replacing it with...
6324         (offload_abi): ... this new variable.  Adjust all users.
6325         * config/nvptx/mkoffload.c (target_ilp32, offload_abi): Likewise.
6326
6327 2015-09-30  Matthias Klose  <doko@ubuntu.com>
6328
6329         * configure.ac: Remove extraneous ;;.
6330         * configure: Regenerate.
6331
6332 2015-09-29  James Bowman  <james.bowman@ftdichip.com>
6333
6334         * config/ft32/predicates.md (ft32_imm_operand): New predicate.
6335         * config/ft32/ft32.md (movmemsi, setmemsi): Use ft32_imm_operand
6336         predicate, disallow register for operand 2.
6337
6338 2015-09-29  Aditya Kumar  <aditya.k7@samsung.com>
6339
6340         * graphite-dependences.c (scop_get_dependences): Moved in down
6341         in order to be visible to its caller.
6342         * graphite-poly.h: Removed compute_deps, and extend_schedule.
6343
6344 2015-09-29  Sebastian Pop  <s.pop@samsung.com>
6345             Aditya Kumar  <aditya.k7@samsung.com>
6346
6347         PR tree-optimization/67754
6348         * graphite-optimize-isl.c (optimize_isl): Call
6349         isl_options_set_schedule_fuse with ISL_SCHEDULE_FUSE_MIN for ISL-14.
6350
6351 2015-09-29  Nathan Sidwell  <nathan@codesourcery.com>
6352
6353         * builtins.c (expand_builtin_acc_on_device): Delete.
6354         (expand_builtin): Don't call it.
6355         (fold_builtin_1): Fold acc_on_device.
6356
6357 2015-09-29  H.J. Lu  <hongjiu.lu@intel.com>
6358
6359         * config/i386/i386.c (ix86_function_arg): Fix typo in comments.
6360         (ix86_nsaved_sseregs): Likewise.
6361
6362 2015-09-29  Jeff Law  <law@redhat.com>
6363
6364         * config/microblaze/microblaze.c (microblaze_version_to_int): Remove
6365         computation of unused value.
6366
6367         * config/pdp11/pdp11.c (pdp11_branch_cost): New function.
6368         * config/pdp11/pdp11.h (BRANCH_COST): Call function rather than
6369         inline macro expansion.
6370
6371         * config/i386/t-interix (winnt-stubs.o): Fix compilation rule.
6372
6373         * config/sh/sh.c (gen_shl_and): Fix undefined left shift behaviour.
6374         (gen_shl_sext): Likewise.
6375         * config/sh/sh.md (divsi3): Likewise.
6376         (imm->ext_dest_operand splitter): Likewise.
6377
6378 2015-09-29  Sebastian Pop  <s.pop@samsung.com>
6379             Aditya Kumar  <aditya.k7@samsung.com>
6380
6381         * graphite-sese-to-poly.c (gsi_for_phi_node): Remove.
6382         (nb_data_writes_in_bb): Remove.
6383         (split_pbb): Remove.
6384         (split_reduction_stmt): Remove.
6385         (is_reduction_operation_p): Remove.
6386         (phi_contains_arg): Remove.
6387         (follow_ssa_with_commutative_ops): Remove.
6388         (detect_commutative_reduction_arg): Remove.
6389         (detect_commutative_reduction_assign): Remove.
6390         (follow_inital_value_to_phi): Remove.
6391         (edge_initial_value_for_loop_phi): Remove.
6392         (initial_value_for_loop_phi): Remove.
6393         (used_outside_reduction): Remove.
6394         (detect_commutative_reduction): Remove.
6395         (translate_scalar_reduction_to_array_for_stmt): Remove.
6396         (remove_phi): Remove.
6397         (dr_indices_valid_in_loop): Remove.
6398         (close_phi_written_to_memory): Remove.
6399         (translate_scalar_reduction_to_array): Remove.
6400         (rewrite_commutative_reductions_out_of_ssa_close_phi): Remove.
6401         (rewrite_commutative_reductions_out_of_ssa_loop): Remove.
6402         (rewrite_commutative_reductions_out_of_ssa): Remove.
6403         (build_poly_scop): Remove call to
6404         rewrite_commutative_reductions_out_of_ssa.
6405
6406 2015-09-29  Evandro Menezes  <e.menezes@samsung.com>
6407
6408         * config/arm/types.md (neon_ldp, neon_ldp_q, neon_stp, neon_stp_q):
6409         Add new insn types for vector load and store pairs.
6410         * config/arm/cortex-a53.md (cortex_a53_f_load_2reg): Add insn
6411         types "neon_ldp{,_q}".
6412         * config/arm/cortex-a57.md (neon_load_c): Add insn types
6413         "neon_ldp{,_q}".
6414         (neon_store_complex): Add insn types "neon_stp{,_q}".
6415         * config/aarch64/aarch64-simd.md (aarch64_be_movoi): Add insn types
6416         "neon_{ldp,stp}_q".
6417
6418 2015-09-29  Jeff Law  <law@redhat.com>
6419
6420         * config/rx/constraints.md (Int08): Fix undefined left shift
6421         behaviour.
6422         (Sint08, Sint16, Sint24): Likewise.
6423         * config/rx/rx.c (rx_get_stack_layout): Likewise.
6424
6425         * config/rl78/rl78-expand.md (movqi): Fix undefined left shift
6426         behaviour.
6427
6428         * config/msp430/msp430.c (msp430_legitimate_constant): Fix undefined
6429         left shift behaviour.
6430         * config/msp430/constraints.md ('L' constraint): Similarly.
6431         ('Ys' constraint): Similarly.
6432
6433 2015-09-29  Richard Biener  <rguenther@suse.de>
6434
6435         PR tree-optimization/67170
6436         * tree-ssa-alias.h (get_continuation_for_phi): Adjust
6437         the translate function pointer parameter to get the
6438         bool whether to disambiguate only by reference.
6439         (walk_non_aliased_vuses): Likewise.
6440         * tree-ssa-alias.c (maybe_skip_until): Adjust.
6441         (get_continuation_for_phi_1): Likewise.
6442         (get_continuation_for_phi): Likewise.
6443         (walk_non_aliased_vuses): Likewise.
6444         * tree-ssa-sccvn.c (const_parms): New bitmap.
6445         (vn_reference_lookup_3): Adjust for interface change.
6446         Disambiguate parameters pointing to readonly memory.
6447         (free_scc_vn): Free const_parms.
6448         (run_scc_vn): Initialize const_parms from a fn spec attribute.
6449
6450 2015-09-29  Richard Biener  <rguenther@suse.de>
6451
6452         PR tree-optimization/67741
6453         * tree-ssa-math-opts.c (pass_cse_sincos::execute): Only recognize
6454         builtin calls with correct signature.
6455
6456 2015-09-29  Ilya Enkovich  <enkovich.gnu@gmail.com>
6457
6458         PR target/65105
6459         * config/i386/i386.c: Include dbgcnt.h.
6460         (has_non_address_hard_reg): New.
6461         (convertible_comparison_p): New.
6462         (scalar_to_vector_candidate_p): New.
6463         (remove_non_convertible_regs): New.
6464         (scalar_chain): New.
6465         (scalar_chain::scalar_chain): New.
6466         (scalar_chain::~scalar_chain): New.
6467         (scalar_chain::add_to_queue): New.
6468         (scalar_chain::mark_dual_mode_def): New.
6469         (scalar_chain::analyze_register_chain): New.
6470         (scalar_chain::add_insn): New.
6471         (scalar_chain::build): New.
6472         (scalar_chain::compute_convert_gain): New.
6473         (scalar_chain::replace_with_subreg): New.
6474         (scalar_chain::replace_with_subreg_in_insn): New.
6475         (scalar_chain::emit_conversion_insns): New.
6476         (scalar_chain::make_vector_copies): New.
6477         (scalar_chain::convert_reg): New.
6478         (scalar_chain::convert_op): New.
6479         (scalar_chain::convert_insn): New.
6480         (scalar_chain::convert): New.
6481         (convert_scalars_to_vector): New.
6482         (pass_data_stv): New.
6483         (pass_stv): New.
6484         (make_pass_stv): New.
6485         (ix86_option_override): Created and register stv pass.
6486         (flag_opts): Add -mstv.
6487         (ix86_option_override_internal): Likewise.
6488         * config/i386/i386.md (SWIM1248x): New.
6489         (*movdi_internal): Add xmm to mem alternative for TARGET_STV.
6490         (and<mode>3): Use SWIM1248x iterator instead of SWIM.
6491         (*anddi3_doubleword): New.
6492         (*zext<mode>_doubleword): New.
6493         (*zextsi_doubleword): New.
6494         (<code><mode>3): Use SWIM1248x iterator instead of SWIM.
6495         (*<code>di3_doubleword): New.
6496         * config/i386/i386.opt (mstv): New.
6497         * dbgcnt.def (stv_conversion): New.
6498
6499 2015-09-29  Tom de Vries  <tom@codesourcery.com>
6500
6501         * tree-cfg.c (dump_function_to_file): Dump function attributes.
6502
6503 2015-09-29  Kaz Kojima  <kkojima@gcc.gnu.org>
6504
6505         PR target/67716
6506         * config/sh/sh.c (sh_override_options_after_change): New.
6507         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
6508         (sh_option_override): Move align_loops, align_jumps and
6509         align_functions handling into sh_override_options_after_change.
6510
6511 2015-09-28  Nathan Sidwell  <nathan@codesourcery.com>
6512
6513         * config/nvptx/nvptx.c: Include omp-low.h and gomp-constants.h.
6514         (nvptx_record_offload_symbol): Record function execution geometry.
6515         * config/nvptx/mkoffload.c (process): Include launch geometry in
6516         function data.
6517         * omp-low.c (oacc_launch_pack): New.
6518         (replace_oacc_fn_attrib): New.
6519         (set_oacc_fn_attrib): New.
6520         (get_oacc_fn_attrib): New.
6521         (expand_omp_target): Create keyed varargs for GOACC_parallel call
6522         generation.
6523         * omp-low.h (get_oacc_fn_attrib): Declare.
6524         * builtin-types.def (DEF_FUNCTION_TyPE_VAR_6): New.
6525         (DEF_FUNCTION_TYPE_VAR_11): Delete.
6526         * tree.h (OMP_CLAUSE_EXPR): New.
6527         * omp-builtins.def (BUILT_IN_GOACC_PARALLEL): Change target fn name.
6528
6529 2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
6530             Sebastian Pop  <s.pop@samsung.com>
6531
6532         * sese.c (invariant_in_sese_p_rec): Remove unused variable.
6533
6534 2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
6535             Sebastian Pop  <s.pop@samsung.com>
6536
6537         * graphite-optimize-isl.c (optimize_isl): Use ISL_SCHEDULE_FUSE_MAX.
6538         * graphite-scop-detection.c (struct sese_l): New type.
6539         (get_entry_bb): API for getting entry bb of SESE.
6540         (get_exit_bb): API for getting exit bb of SESE.
6541         (class debug_printer): New type.  Simple printer in debug mode.
6542         (trivially_empty_bb_p): New.  Return true when BB is empty or
6543         contains only debug instructions.
6544         (graphite_can_represent_expr): Call scalar_evoution_in_region
6545         instead of analyze_scalar_evolution.  Pass in scop instead of only
6546         the scop entry.
6547         (stmt_has_simple_data_refs_p): Pass in scop instead of only the
6548         scop entry.
6549         (stmt_simple_for_scop_p): Same.
6550         (harmful_stmt_in_bb): Same.
6551         (graphite_can_represent_loop): Deleted.
6552         (struct scopdet_info): Deleted.
6553         (scopdet_basic_block_info): Deleted.
6554         (build_scops_1): Deleted.
6555         (bb_in_sd_region): Deleted.
6556         (find_single_entry_edge): Deleted.
6557         (find_single_exit_edge): Deleted.
6558         (create_single_entry_edge): Deleted.
6559         (sd_region_without_exit): Deleted.
6560         (create_single_exit_edge): Deleted.
6561         (unmark_exit_edges): Deleted.
6562         (mark_exit_edges): Deleted.
6563         (create_sese_edges): Deleted.
6564         (build_graphite_scops): Deleted.
6565         (canonicalize_loop_closed_ssa): Recompute all dominators at the end.
6566         (build_scops): Use the new scop_builder to build scops.
6567         (dot_all_scops_1): Use the new pretty printer.  Print loop father
6568         as well.
6569         (loop_body_is_valid_scop): New.  Return true if loop body is a
6570         valid scop.
6571         (class scop_builder): New.  Builds SCoPs for polyhedral
6572         optimizations.
6573         (scop_builder): New constructor.
6574         (static sese_l invalid_sese): sese_l with invalid edges.
6575         (get_sese): Get an sese (from a loop) if possible, invalid_sese
6576         otherwise.
6577         (get_nearest_dom_with_single_entry): Get nearest dominator of a
6578         basic_block with single entry.  Return NULL if we get to the
6579         beginning of a function.
6580         (get_nearest_pdom_with_single_exit): Get nearest post-dominator of
6581         a basic_block with single exit.  Return NULL if we get to the
6582         beginning of a function.
6583         (print_sese): Pretty-print SESE.
6584         (merge_sese): Merge two SESEs if possible and return the new SESE.
6585         (build_scop_depth): Start building the SCoP within a loop nest.
6586         (build_scop_breadth): Start building the SCoP at a single loop
6587         depth.  Merge adjacent SESEs if valid.
6588         (can_represent_loop_1): Returns true if Graphite can represent
6589         loop inside SCoP.  Helper for can_represent_loop.
6590         (can_represent_loop): Returns true if Graphite can represent LOOP
6591         and all its nested loops in SCoP.
6592         (loop_is_valid_scop): Returns true if LOOP and all its nests
6593         constitute a valid SCoP.
6594         (region_has_one_loop): Returns true of a region has only one loop.
6595         (add_scop): Add SCoP to the list of valid scops.  Removes an
6596         already existing scop if it intersects with or subsumed by this one.
6597         (harmful_stmt_in_region): Returns true if SCoP has any statment
6598         which cannot be represented by Graphite.
6599         (subsumes): Returns true of SCoP S1 subsumes SCoP S2.
6600         (remove_subscops): Remove any SCoP from the list of already found
6601         SCoPs, if subsumed by S1.
6602         (intersects): Return true if region bounded by SCoPs S1 and S2
6603         intersect.
6604         (remove_intersecting_scops): Remove any SCoP which intersects with S1.
6605         * graphite.c (print_graphite_scop_statistics):
6606         (print_graphite_statistics): Print SCoP info while debugging.
6607         (graphite_initialize): Early exit in case number of loops in a
6608         function is less than PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION or
6609         basic blocks are more than PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
6610         (graphite_finalize):
6611         * params.def: Add PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION.
6612         * sese.h (sese_loop_depth): Remove unnecessary gcc_assert.
6613         (recompute_all_dominators): Recalculate POST_DOMINATORS.
6614         * tree-cfg.c (print_loops): Print the function name while printing
6615         loops.
6616
6617 2015-09-28  Aditya Kumar  <aditya.k7@samsung.com>
6618             Sebastian Pop  <s.pop@samsung.com>
6619
6620         PR tree-optimization/67700
6621         * graphite-sese-to-poly.c (parameter_index_in_region): Call
6622         invariant_in_sese_p_rec.
6623         (extract_affine): Same.
6624         (rewrite_cross_bb_scalar_deps): Call update_ssa.
6625         * sese.c (invariant_in_sese_p_rec): Export.  Handle vdefs and vuses.
6626         * sese.h (invariant_in_sese_p_rec): Declare.
6627
6628 2015-09-28  David Wohlferd  <dw@LimeGreenSocks.com>
6629
6630         * doc/extend.texi (Asm Labels): Break out text for data vs functions.
6631
6632 2015-09-28  Jiong Wang  <jiong.wang@arm.com>
6633
6634         Revert:
6635         2015-08-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6636                     Jiong Wang  <jiong.wang@arm.com>
6637
6638         * config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
6639         * config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
6640         (REG_CLASS_NAMES): Likewise.
6641         (REG_CLASS_CONTENTS): Likewise.
6642         * config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
6643         (aarch64_register_move_cost): Likewise.
6644         (aarch64_load_symref_appropriately): Invoke the new added pattern if
6645         possible.
6646         * config/aarch64/constraints.md (Uc0): New constraint.
6647
6648 2015-09-28  Daniel Hellstrom  <daniel@gaisler.com>
6649
6650         * config/sparc/t-rtems: Remove -muser-mode. Add ut699, at697f and leon.
6651
6652 2015-09-28  David Edelsohn  <dje.gcc@gmail.com>
6653
6654         * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Place
6655         SECTION_EXCLUDE in XO mapping class.
6656
6657 2015-09-28  Oleg Endo  <olegendo@gcc.gnu.org>
6658
6659         PR target/54236
6660         * config/sh/predicates.md (t_reg_operand, negt_reg_operand): Allow
6661         and handle ne and eq codes.
6662         * config/sh/sh.c (sh_rtx_costs): Adjust matching of tst #imm,r0 insn.
6663         (sh_recog_treg_set_expr): Early accept negt_reg_operand.  Eearly reject
6664         CONST_INT_P.  Use reverse_condition.
6665         (sh_split_treg_set_expr): Likewise.
6666
6667 2015-09-28  James Greenhalgh  <james.greenhalgh@arm.com>
6668
6669         * config/arm/types.md (type): Add rotate_imm.
6670         * config/aarch64/aarch64.md (*ror<mode>3_insn): Split out the
6671         ROR immediate case.
6672         (*rorsi3_insn_uxtw): Likewise.
6673         * config/aarch64/thunderx.md (thunderx_shift): Add rotate_imm.
6674         * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add rotate_imm.
6675         * config/arm/cortex-a57.md (cortex_a53_alu): Add rotate_imm.
6676
6677 2015-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6678
6679         PR rtl-optimization/67481
6680         * ifcvt.c (contains_ccmode_rtx_p): New function.
6681         (insn_valid_noce_process_p): Use it.
6682
6683 2015-09-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
6684
6685         PR rtl-optimization/67456
6686         PR rtl-optimization/67464
6687         PR rtl-optimization/67465
6688         * ifcvt.c (noce_try_cmove_arith): Bail out if cannot conditionally
6689         move in the mode of x.  Handle combination of complex and simple
6690         block pairs as well as the case when one is empty.
6691
6692 2015-09-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6693
6694         * doc/gimple.texi: Update references to gimple_statement_base.
6695         * gdbhooks.py: Likewise.
6696         * gimple.h: Likewise.
6697
6698 2015-09-28  Daniel Cederman  <cederman@gaisler.com>
6699
6700         * config/sparc/driver-sparc.c: map LEON to leon3
6701
6702 2015-09-28  Daniel Cederman  <cederman@gaisler.com>
6703
6704         * config/sparc/sparc.opt: Rename mask from USER_MODE to SV_MODE
6705           and make it inverse to change default
6706         * config/sparc/sync.md: Only use supervisor ASI for CASA when in
6707           supervisor mode
6708         * doc/invoke.texi: Document change of default
6709
6710 2015-09-28  Daniel Cederman  <cederman@gaisler.com>
6711
6712         * config/sparc/sparc.c (sparc_function_value_regno_p): Do not return
6713         true on %f0 for a target without FPU.
6714         * config/sparc/sparc.md (untyped_call): Do not save %f0 for a target
6715         without FPU.
6716         (untyped_return): Do not load %f0 for a target without FPU.
6717
6718 2015-09-28  Andrew Pinski  <apinski@cavium.com>
6719
6720         * config/aarch64/aarch64.md (prefetch):
6721         Change the predicate of operand 0 to register_operand.
6722
6723 2015-09-27  Uros Bizjak  <ubizjak@gmail.com>
6724
6725         * config/i386/predicates.md (register_sse4nonimm_operand): New
6726         predicate.
6727         * config/i386/sse.md (PEXTR_MODE12): New mode iterator.
6728         (*vec_extract<mode>): Use PEXTR_MODE12 instead of VI12_128 mode.
6729         Use register_sse4nonimm_operand as operand 0 predicate.
6730         (*vec_extractv8hi_sse2): Remove insn pattern.
6731         (*vec_extract<PEXTR_MODE12:mode>_zext): Merge insn pattern from
6732         *vec_extractv8hi_zext and *vec_extractv16qi_zext patterns.
6733
6734 2015-09-27  Oleg Endo  <olegendo@gcc.gnu.org>
6735             Kaz Kojima  <kkojima@gcc.gnu.org>
6736
6737         PR target/67391
6738         * config/sh/sh-protos.h (sh_lra_p): Declare.
6739         * config/sh/sh.c (sh_lra_p): Make non-static.
6740         * config/sh/sh.md (addsi3): Use arith_reg_dest for operands[0] and
6741         arith_reg_operand for operands[1].  Remove TARGET_SHMEDIA case.
6742         Expand into addsi3_scr if operands[2] if needed.
6743         (*addsi3_compact): Rename to *addsi3_compact_lra.  Use
6744         arith_reg_operand for operands[1].  Allow it only when LRA is enabled.
6745         (addsi3_scr, *addsi3): New insn_and_split patterns.
6746
6747 2015-09-27  Alexandre Oliva <aoliva@redhat.com>
6748
6749         PR rtl-optimization/64164
6750         PR tree-optimization/67312
6751         PR middle-end/67340
6752         PR middle-end/67490
6753         PR bootstrap/67597
6754         * cfgexpand.c (parm_in_stack_slot_p): Remove.
6755         (ssa_default_def_partition): Remove.
6756         (get_rtl_for_parm_ssa_default_def): Remove.
6757         (set_rtl): Check that RTL assignments match expectations.
6758         Loop on SUBREGs, CONCATs and PARALLELs subexprs.  Set only the
6759         default def location for params and results.  Record SSA names
6760         or types in REG and MEM attrs, respectively.
6761         (set_parm_rtl): New.
6762         (expand_one_ssa_partition): Drop logic that assigned MEMs with
6763         unassigned addresses.
6764         (adjust_one_expanded_partition_var): Don't accept NULL RTL on
6765         deferred stack alloc vars.
6766         (expand_used_vars): Skip partitions holding parm default defs.
6767         Move adjust_one_expanded_partition_var loop...
6768         (pass_expand::execute): ... here.  Drop redundant assert.
6769         Adjust comments before the final loop over all ssa names.
6770         Require assigned rtl of parms and results to match exactly.
6771         Reset its attributes to match them, not any other variables in
6772         the same partition.
6773         (expand_debug_expr): Use entry value for PARM's default defs
6774         only iff they have zero nondebug uses.
6775         * cfgexpand.h (parm_in_stack_slot_p): Remove.
6776         (get_rtl_for_parm_ssa_default_def): Remove.
6777         (set_parm_rtl): Declare.
6778         * doc/invoke.texi: Improve wording.
6779         * explow.c (promote_decl_mode): Fix promote_function_mode for
6780         result decls not by reference.
6781         (promote_ssa_mode): Disregard BLKmode from promote_decl, and
6782         bypass TYPE_MODE to get the actual vector mode.
6783         * function.c: Include tree-dfa.h.  Revert 2015-08-14's and
6784         2015-08-19's changes as follows.  Drop include of
6785         basic-block.h and df.h.
6786         (rtl_for_parm): Remove.
6787         (maybe_reset_rtl_for_parm): Remove.
6788         (parm_in_unassigned_mem_p): Remove.
6789         (use_register_for_decl): Add logic for RESULT_DECLs matching
6790         assign_parms' behavior.
6791         (split_complex_args): Revert.
6792         (assign_parms_augmented_arg_list): Revert.  Add comment
6793         referencing the logic above.
6794         (assign_parm_adjust_stack_rtl): Revert.
6795         (assign_parm_setup_block): Revert.  Use set_parm_rtl instead
6796         of SET_DECL_RTL.  Set up a REG if the parm demands so.
6797         (assign_parm_setup_reg): Revert.  Consolidated SET_DECL_RTL
6798         calls into a single set_parm_rtl.  Set up a temporary RTL
6799         temporarily for expand_assignment.
6800         (assign_parm_setup_stack): Revert.  Use set_parm_rtl.
6801         (assign_parms_unsplit_complex): Revert.  Use set_parm_rtl.
6802         (assign_bounds): Revert.
6803         (assign_parms): Revert.  Use set_parm_rtl.
6804         (allocate_struct_function): Relayout result and parms of
6805         non-abstruct functions.
6806         (expand_function_start): Revert.  Use set_parm_rtl.  If the
6807         result is not a hard reg, create a pseudo from the promoted
6808         mode of the default def.  Promote static chain mode.
6809         * tree-outof-ssa.c (remove_ssa_form): Drop unused
6810         partition_has_default_def.  Set up
6811         partitions_for_parm_default_defs.
6812         (finish_out_of_ssa): Remove partition_has_default_def.
6813         Release partitions_for_parm_default_defs.
6814         * tree-outof-ssa.h (struct ssaexpand): Remove
6815         partition_has_default_def.  Add
6816         partitions_for_parm_default_defs.
6817         * tree-ssa-coalesce.c: Include tree-dfa.h, tm_p.h and
6818         stor-layout.h.
6819         (build_ssa_conflict_graph): Fix conflict-detection of default
6820         defs of even unused default defs of params and results.
6821         (for_all_parms): New.
6822         (create_default_def): New.
6823         (register_default_def): New.
6824         (coalesce_with_default): New.
6825         (create_outofssa_var_map): Create default defs for all parms
6826         and results, and register their partitions.  Add GIMPLE_RETURN
6827         operands as coalesce candidates with results.  Add default
6828         defs of each parm or result as coalesce candidates with its
6829         other defs.  Mark each result def, and each default def of
6830         parms, as used_in_copy.
6831         (gimple_can_coalesce_p): Call it.  Call use_register_for_decl
6832         with the ssa names, even anonymous ones.  Drop
6833         parm_in_stack_slot_p calls.  Require same signedness and
6834         alignment.
6835         (coalesce_ssa_name): Add coalesce candidates for all defs of
6836         each parm and result, even unused ones.
6837         (parm_default_def_partition_arg): New type.
6838         (set_parm_default_def_partition): New.
6839         (get_parm_default_def_partitions): New.
6840         * tree-ssa-coalesce.h (get_parm_default_def_partitions): New.
6841         * tree-ssa-live.c (partition_view_init): Regard unused defs of
6842         parms and results as used.
6843         (verify_live_on_entry): Don't error out just because they're
6844         not live.
6845
6846 2015-09-26  David Edelsohn  <dje.gcc@gmail.com>
6847
6848         * dwarf2out.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
6849         (HAVE_XCOFF_DWARF_EXTRAS): Default to 0 definition.
6850         (output_fde): Don't output length for debug_frame on AIX.
6851         (output_call_frame_info): Don't output length for debug_frame on AIX.
6852         (have_macinfo): Force to False for XCOFF_DEBUGGING_INFO and not
6853         HAVE_XCOFF_DWARF_EXTRAS.
6854         (add_AT_loc_list): Return early if XCOFF_DEBUGGING_INFO and not
6855         HAVE_XCOFF_DWARF_EXTRAS.
6856         (output_compilation_unit_header): Don't output length on AIX.
6857         (output_pubnames): Don't output length on AIX.
6858         (output_aranges): Delete argument. Compute length locally. Don't
6859         output length on AIX.
6860         (output_line_info): Don't output length on AIX.
6861         (dwarf2out_finish): Don't compute aranges_length.
6862         * dwarf2asm.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
6863         (dw2_asm_output_nstring): Emit .byte not .ascii on AIX.
6864         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Emit correct
6865         symbol decoration for AIX.
6866         (rs6000_xcoff_debug_unwind_info): New.
6867         (rs6000_xcoff_asm_named_section): Emit .dwsect pseudo-op
6868         for SECTION_DEBUG.
6869         (rs6000_xcoff_declare_function_name): Emit different
6870         .function pseudo-op when DWARF2_DEBUG. Don't call
6871         xcoffout_declare_function for DWARF2_DEBUG.
6872         * config/rs6000/xcoff.h (TARGET_DEBUG_UNWIND_INFO):
6873         Redefine.
6874         * config/rs6000/aix71.h: New.
6875         * configure.ac (gcc_cv_as_aix_dwloc): Check AIX as for DWARF
6876         locations support.
6877         * configure: Regenerate.
6878         * config.gcc (powerpc-ibm-aix[789]+): New stanza for AIX 7.1+ with
6879         DWARF support.
6880
6881 2015-09-26  Jeff Law  <law@redhat.com>
6882
6883         * config/arc/arc.c (arc_output_addsi): Fix left shift undefined
6884         behaviour.
6885         * config/arc/constraints.md (Cca, C2a): Fix left shift undefined
6886         behaviour.
6887
6888         * config/sh/sh.h (CONST_OK_FOR_J16): Fix left shift undefined
6889         behaviour
6890
6891         * config/mips/mips.c (mips_compute_frame_info): Fix left shift
6892         undefined behaviour.
6893
6894         * config/cris/cris.md (asrandb): Fix left shift undefined
6895         behaviour.
6896         (asrandw): Likewise.
6897
6898 2015-09-25  Vladimir Makarov  <vmakarov@redhat.com>
6899
6900         PR target/61578
6901         * lra-constarints.c (match_reload): Check presence of the input pseudo
6902         in the output operand.
6903
6904 2015-09-25  Tobias Burnus  <burnus@net-b.de>
6905
6906         * doc/invoke.texi (-fsanitize): Minor wording tweak.
6907
6908 2015-09-25  Tobias Burnus  <burnus@net-b.de>
6909
6910         * doc/invoke.texi (-fsanitize): Update URLs.
6911
6912 2015-09-25  Teresa Johnson  <tejohnson@google.com>
6913
6914         * opts.c (finish_options): Unset -freorder-blocks-and-partition
6915         if not using profile.
6916
6917 2015-09-25  Manuel López-Ibáñez  <manu@gcc.gnu.org>
6918
6919         PR pretty-print/67567
6920         * pretty-print.c (pp_string): Add gcc_checking_assert.
6921         * pretty-print.h (output_buffer_append_r): Likewise.
6922
6923 2015-09-25  Oleg Endo  <olegendo@gcc.gnu.org>
6924
6925         PR target/67675
6926         * config/sh/sh-mem.cc (sh_expand_cmpstr): Check alignment of addr1 and
6927         addr2 individually.  Don't emit logical or insn if one is known to
6928         be aligned approriately.
6929         (sh_expand_cmpnstr): Likewise.
6930
6931 2015-09-25  Richard Sandiford  <richard.sandiford@arm.com>
6932
6933         * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Force
6934         __builtin_aarch64_fp[sc]r arguments into a register.
6935
6936 2015-09-25  H.J. Lu  <hongjiu.lu@intel.com>
6937
6938         * config.gcc (x86_archs): Replace lakemount with lakemont.
6939         (with_cpu): Likewise.
6940         (with_arch): Likewise.
6941         * config/i386/i386-c.c (ix86_target_macros_internal): Replace
6942         PROCESSOR_LAKEMOUNT with PROCESSOR_LAKEMONT.  Replace
6943         __tune_lakemount__ with __tune_lakemont__.
6944         * config/i386/i386.c (lakemount_cost): Renamed to ...
6945         (lakemont_cost): This.
6946         (m_LAKEMOUNT): Renamed to ...
6947         (m_LAKEMONT): This.
6948         (initial_ix86_arch_features): Replace m_LAKEMOUNT with m_LAKEMONT.
6949         (processor_target_table): Replace "lakemount" with "lakemont".
6950         (processor_alias_table): Likewise.
6951         (ix86_issue_rate): Replace PROCESSOR_LAKEMOUNT with
6952         PROCESSOR_LAKEMONT.
6953         (ix86_adjust_cost): Likewise.
6954         (ia32_multipass_dfa_lookahead): Likewise.
6955         * config/i386/i386.h (processor_type): Likewise.
6956         * config/i386/x86-tune.def: Replace m_LAKEMOUNT with m_LAKEMONT.
6957         * doc/invoke.texi: Replace lakemount with lakemont.  Replace
6958         Lakemount with Lakemont.
6959
6960 2015-09-24  H.J. Lu  <hongjiu.lu@intel.com>
6961
6962         * config.gcc (x86_archs): Replace iamcu with lakemount.
6963         (with_cpu): Likewise.
6964         (with_arch): Likewise.
6965         * doc/invoke.texi: Likewise.
6966         * config/i386/i386-c.c (ix86_target_macros_internal): Replace
6967         PROCESSOR_IAMCU with PROCESSOR_LAKEMOUNT.  Replace
6968         __tune_iamcu__ with __tune_lakemount__.
6969         * config/i386/i386.c (iamcu_cost): Renamed to ...
6970         (lakemount_cost): This.
6971         (m_IAMCU): Renamed to ...
6972         (m_LAKEMOUNT): This.
6973         (initial_ix86_arch_features): Replace m_IAMCU with m_LAKEMOUNT.
6974         (processor_target_table): Replace "iamcu" with "lakemount".
6975         (processor_alias_table): Likewise.
6976         (ix86_issue_rate): Replace PROCESSOR_IAMCU with
6977         PROCESSOR_LAKEMOUNT.
6978         (ix86_adjust_cost): Likewise.
6979         (ia32_multipass_dfa_lookahead): Likewise.
6980         * config/i386/i386.h (processor_type): Likewise.
6981         * config/i386/x86-tune.def: Replace m_IAMCU with m_LAKEMOUNT.
6982
6983 2015-09-24  John David Anglin  <danglin@gcc.gnu.org>
6984
6985         * config/pa/pa-linux.h (HAVE_sync_compare_and_swapdi): Define.
6986         * config/pa/pa-protos.h (pa_maybe_emit_compare_and_swap_exchange_loop):
6987         Declare.
6988         * config/pa/pa.c (pa_init_libfuncs): Init sync libfuncs up to 8 bytes.
6989         (pa_expand_compare_and_swap_loop): New.
6990         (pa_maybe_emit_compare_and_swap_exchange_loop): New.
6991         * config/pa/pa.md (atomic_storeqi, atomic_storehi, atomic_storesi,
6992         atomic_storesf, atomic_loaddf, atomic_storedf): New expanders.
6993         (atomic_loaddf_1, atomic_storedf_1): New insn patterns.
6994         (atomic_loaddi, atomic_loaddi_1, atomic_storedi, atomic_storedi_1):
6995         Revise.
6996
6997 2015-09-24  Michael Collison  <michael.collison@linaro.org>
6998
6999         PR other/57195
7000         * read-md.c (read_name): Allow mode iterators inside angle
7001         brackets in rtl expressions.
7002
7003 2015-09-24  Vladimir Makarov  <vmakarov@redhat.com>
7004
7005         PR target/61578
7006         * ira-color.c (update_allocno_cost): Add parameter.
7007         (update_costs_from_allocno): Decrease conflict cost.  Pass the new
7008         parameter.
7009
7010 2015-09-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7011
7012         PR driver/67640
7013         * opts-common.c (prune_options): Discard all -fdiagnostics-color
7014         but the last one, which is moved to the front to be processed
7015         first.
7016         * opts.c (enable_warning_as_error): Reject options that do not
7017         control warnings.
7018
7019 2015-09-24  Jiong Wang  <jiong.wang@arm.com>
7020
7021         * config/aarch64/aarch64.c (aarch64_print_operand): Add "CONST" support.
7022
7023 2015-09-24  Jiong Wang  <jiong.wang@arm.com>
7024
7025         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Delete.
7026         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Likewise.
7027         (aarch64_cannot_force_const_mem): Likewise.
7028         (aarch64_classify_address): Likewise.
7029         (aarch64_classify_symbolic_expression): Likewise.
7030         (aarch64_print_operand): Likewise.
7031         (aarch64_classify_symbol): Likewise.
7032         (aarch64_mov_operand_p): Likewise.
7033         * config/aarch64/predicates.md (aarch64_valid_symref): Likewise.
7034         (aarch64_mov_operand): Likewise.
7035
7036 2015-09-24  Segher Boessenkool  <segher@kernel.crashing.org>
7037
7038         * config/rs6000/rs6000.c (debug_stack_info): Invert the test
7039         for info->spe_gp_size.
7040
7041 2015-09-24  Richard Biener  <rguenther@suse.de>
7042
7043         PR lto/67699
7044         * lto-cgraph.c (compute_ltrans_boundary): Do not stream
7045         abstract origins.
7046
7047 2015-09-24  Thomas Schwinge  <thomas@codesourcery.com>
7048
7049         * tree-object-size.c (plus_stmt_object_size)
7050         (cond_expr_object_size): Change the formal parameters from gimple
7051         to gimple *.
7052         * tree-ssa-sccvn.h (vn_nary_op_insert_stmt): Likewise.
7053         * tree-ssa-sccvn.c (vn_nary_op_insert_stmt): Make it static.
7054         * tree-ssa-sccvn.h (vn_nary_op_insert_stmt): Don't declare.
7055
7056 2015-09-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7057
7058         * configure.ac (gcc_cv_ld_pie): Check for gld >= 2.26 on Solaris.
7059         Check for ld -type pie on Solaris 11.x and 12.
7060         * configure: Regenerate.
7061         * config.in: Regenerate.
7062
7063         * gcc.c (LD_PIE_SPEC): Allow redefinition.
7064
7065         * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Define.
7066         (STARTFILE_SPEC): Use it.
7067         (ENDFILE_CRTEND_SPEC): Define.
7068         (ENDFILE_SPEC): Use it and ENDFILE_ARCH_SPEC.
7069         (SUBTARGET_EXTRA_SPECS): Add STARTFILE_CRTBEGIN_SPEC,
7070         ENDFILE_ARCH_SPEC, ENDFILE_CRTEND_SPEC.
7071         [HAVE_LD_PIE && HAVE_SOLARIS_CRTS] (LD_PIE_SPEC): Define.
7072         (!(HAVE_LD_PIE && HAVE_SOLARIS_CRTS)] (LINK_PIE_SPEC): Define.
7073         * config/i386/sol2.h (ENDFILE_SPEC): Remove.
7074         (ENDFILE_ARCH_SPEC): Define.
7075         * config/sparc/sol2.h (ENDFILE_ARCH_SPEC): Define.
7076
7077 2015-09-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7078
7079         * configure.ac (gcc_cv_solaris_crts): New test.
7080         * configure. Regenerate.
7081         * config.in: Regenerate.
7082         * config/sol2.h (STARTFILE_SPEC): Simplify, provide
7083         HAVE_SOLARIS_CRTS variant.
7084
7085 2015-09-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7086
7087         * tree-inline.h (count_insns_seq): Delete prototype.
7088         (estimate_num_insns_seq): Define prototype.
7089         * tree-inline.c (count_insns_seq): Delete.
7090         (estimate_num_insns_seq): Remove static qualifier.
7091         * tree-eh.c (decide_copy_try_finally): Replace use of count_insns_seq
7092         with estimate_num_insns_seq.
7093
7094 2015-09-24  Richard Biener  <rguenther@suse.de>
7095
7096         * tree-ssa-sccvn.h (vn_reference_op_struct): Add clique and base
7097         members.
7098         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record clique
7099         and base for MEM_REF and TARGET_MEM_REF.  Handle BIT_FIELD_REF
7100         offset.
7101         (ao_ref_init_from_vn_reference): Record clique and base in the
7102         built base.
7103         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise
7104
7105 2015-09-24  Richard Biener  <rguenther@suse.de>
7106
7107         PR tree-optimization/48885
7108         * tree-ssa-structalias.c (visit_loadstore): Handle default defs
7109         as not including any restrict tags from other pointers.
7110
7111 2015-09-23  Thomas Schwinge  <thomas@codesourcery.com>
7112
7113         * gcc.c (handle_foffload_option): Don't lose the trailing NUL
7114         character when appending to offload_targets.
7115
7116         * configure.ac (offload_targets, OFFLOAD_TARGETS): Separate
7117         offload targets by commas, not colons.
7118         * config.in: Regenerate.
7119         * configure: Likewise.
7120         * gcc.c (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Due to that,
7121         instead of setting up the default offload targets here...
7122         (process_command): ..., do it here.
7123         libgomp/
7124         * plugin/configfrag.ac (OFFLOAD_TARGETS): Clarify that offload
7125         targets are separated by commas.
7126         * config.h.in: Regenerate.
7127
7128 2015-09-23  Thomas Schwinge  <thomas@codesourcery.com>
7129             Nathan Sidwell  <nathan@codesourcery.com>
7130
7131         * omp-low.h (omp_reduction_init_op): Declare.
7132         * omp-low.c (omp_reduction_init_op): New, broken out of ...
7133         (omp_reduction_init): ... here.  Call it.
7134         * tree-parloops.c (initialize_reductions): Use
7135         omp_reduction_init_op.
7136
7137 2015-09-23   Richard Biener  <rguenther@suse.de>
7138
7139         PR middle-end/67662
7140         * fold-const.c (fold_binary_loc): Do not reassociate two vars with
7141         undefined overflow unless they will cancel out.
7142
7143 2015-09-23  Kirill Yukhin  <kirill.yukhin@intel.com>
7144
7145         * config/i386/i386.md (define_insn "*<mshift><mode>3"): Fix
7146         insn emit.
7147
7148 2015-09-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7149
7150         PR c/49655
7151         * opts.h (write_langs): Declare.
7152         * opts-global.c (write_langs): Make it extern.
7153
7154 2015-09-23  Oleg Endo  <olegendo@gcc.gnu.org>
7155
7156         PR target/67391
7157         * config/sh/sh.md (addsi3, *addsi3_compact): Don't check for
7158         overlapping regs when matching the pattern.
7159
7160 2015-09-23  James Greenhalgh  <james.greenhalgh@arm.com>
7161
7162         * config/aarch64/aarch64-simd.md
7163         (aarch64_float_truncate_hi_v4sf): Rewrite as an expand.
7164         (aarch64_float_truncate_hi_v4sf_le): New.
7165         (aarch64_float_truncate_hi_v4sf_be): Likewise.
7166
7167 2015-09-23  Richard Biener  <rguenther@suse.de>
7168
7169         * tree-ssa-structalias.c (intra_create_variable_infos): Build
7170         representatives for all restrict qualified pointer destinations.
7171
7172 2015-09-23  Kirill Yukhin  <kirill.yukhin@intel.com>
7173
7174         * config/i386/i386.md (define_code_attr mshift): New.
7175         (define_mode_iterator SWI1248_AVX512BW): Rename ...
7176         (SWI1248_AVX512BW): ... to this. Make QI enabled for TARGET_AVX512DQ
7177         only.
7178         (define_insn "*k<logic><mode>"): Use new iterator name.
7179         (define_insn "*<mshift><mode>3"): New.
7180
7181 2015-09-23  Mikhail Maltsev  <maltsevm@gmail.com>
7182
7183         PR middle-end/67649
7184         * memory-block.h (memory_block_pool::allocate): Use valgrind API to
7185         mark the block as accessible.
7186
7187 2015-09-22  Segher Boessenkool  <segher@kernel.crashing.org>
7188
7189         * function.c (thread_prologue_and_epilogue_insns): Delete
7190         orig_entry_edge argument to try_shrink_wrapping.
7191         * shrink-wrap.c (can_get_prologue): New function.
7192         (can_dup_for_shrink_wrapping): Also handle EDGE_CROSSING.
7193         (try_shrink_wrapping): Delete orig_entry_edge argument.  Use
7194         can_get_prologue where needed.  Remove code that finds a single
7195         edge for the prologue.  Remove code that tests if any reg clobbered
7196         by the prologue is live on the prologue edge.  Remove code that finds
7197         the new prologue edge after duplicating blocks.  Make a new prologue
7198         block and edge.
7199         * shrink-wrap.h (try_shrink_wrapping): Delete orig_entry_edge argument.
7200
7201 2015-09-22  Jeff Law  <law@redhat.com>
7202
7203         * config/pa/pa.h (MIN_LEGIT_64BIT_CONST_INT): Avoid undefined
7204         behavior.
7205
7206 2015-09-22  Nathan Sidwell  <nathan@codesourcery.com>
7207
7208         * doc/invoke.texi  (-Wmultiple-inheritance, -Wvirtual-inheritance,
7209         -Wtemplates, -Wnamespaces): Document.
7210
7211 2015-09-22  Tom de Vries  <tom@codesourcery.com>
7212
7213         PR tree-optimization/67671
7214         * tree-ssa-structalias.c (create_variable_info_for_1): Handle restrict
7215         pointer references as restrict.
7216
7217 2015-09-22  Chung-Lin Tang  <cltang@codesourcery.com>
7218
7219         * config/nios2/nios2.c (nios2_legitimize_address): When handling
7220         'reg + reloc' cases, allow first operand to be non-REG, and use
7221         force_reg() to enforce address pattern.
7222
7223 2015-09-22  Alexander Fomin <alexander.fomin@intel.com>
7224
7225         PR target/67480
7226         * config/i386/sse.md (define_mode_iterator VI48_AVX_AVX512F): New.
7227         (define_mode_iterator VI12_AVX_AVX512F): New.
7228         (define_insn "<mask_codefor><code><mode>3<mask_name>"): Change
7229         all iterators to VI48_AVX_AVX512F. Extract remaining modes ...
7230         (define_insn "*<code><mode>3"): ... Into new pattern using
7231         VI12_AVX_AVX512F iterators without masking.
7232
7233 2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>
7234
7235         * config.gcc: Support "skylake-avx512".
7236         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
7237         PROCESSOR_SKYLAKE_AVX512.
7238         * config/i386/i386.c (m_SKYLAKE_AVX512): Define.
7239         (processor_target_table): Add "skylake-avx512".
7240         (PTA_SKYLAKE_AVX512): Define.
7241         (ix86_option_override_internal): Add "skylake_avx512".
7242         (fold_builtin_cpu): Handle "skylake_avx512", add F_AVX512VL
7243         F_AVX512BW, F_AVX512DQ, F_AVX512ER, F_AVX512PF, F_AVX512CD.
7244         * config/i386/i386.h (TARGET_SKYLAKE_AVX512): Define.
7245         (processor_type): Add PROCESSOR_SKYLAKE_AVX512.
7246         * doc/invoke.texi (skylake-avx512): New.
7247
7248 2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>
7249
7250         * config/i386/i386.md (define_insn "kunpckhi"): Fix
7251         operand in pattern.
7252         (define_insn "kunpcksi"): Ditto.
7253         (define_insn "kunpckdi"): Ditto.
7254
7255 2015-09-22  Kirill Yukhin  <kirill.yukhin@intel.com>
7256
7257         * config/i386/i386.md (define_split not/xor SWI1248x): Use
7258         iterator instead of fixed modes.
7259
7260 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
7261
7262         * config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop):
7263         Adjust declaration.
7264         * config/aarch64/aarch64.c (aarch64_emit_bic): New.
7265         (aarch64_gen_atomic_ldop): Adjust comment.  Add parameter
7266         out_result.  Update to support update-fetch operations.
7267         * config/aarch64/atomics.md (aarch64_atomic_exchange<mode>_lse):
7268         Adjust for change to aarch64_gen_atomic_ldop.
7269         (aarch64_atomic_<atomic_optab><mode>_lse): Likewise.
7270         (aarch64_atomic_fetch_<atomic_optab><mode>_lse): Likewise.
7271         (atomic_<atomic_optab>_fetch<mode>): Change to an expander.
7272         (aarch64_atomic_<atomic_optab>_fetch<mode>): New.
7273         (aarch64_atomic_<atomic_optab>_fetch<mode>_lse): New.
7274
7275 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
7276
7277         * config/aarch64/aarch64-protos.h
7278         (aarch64_atomic_ldop_supported_p): Declare.
7279         * config/aarch64/aarch64.c (aarch64_atomic_ldop_supported_p): New.
7280         (enum aarch64_atomic_load_op_code): New.
7281         (aarch64_emit_atomic_load_op): New.
7282         (aarch64_gen_atomic_ldop): Update to support load-operate
7283         patterns.
7284         * config/aarch64/atomics.md (atomic_<atomic_optab><mode>): Change
7285         to an expander.
7286         (aarch64_atomic_<atomic_optab><mode>): New.
7287         (aarch64_atomic_<atomic_optab><mode>_lse): New.
7288         (atomic_fetch_<atomic_optab><mode>): Change to an expander.
7289         (aarch64_atomic_fetch_<atomic_optab><mode>): New.
7290         (aarch64_atomic_fetch_<atomic_optab><mode>_lse): New.
7291
7292 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
7293
7294         * config/aarch64/aarch64/atomics.md (UNSPECV_ATOMIC_LDOP): New.
7295         (UNSPECV_ATOMIC_LDOP_OR): New.
7296         (UNSPECV_ATOMIC_LDOP_BIC): New.
7297         (UNSPECV_ATOMIC_LDOP_XOR): New.
7298         (UNSPECV_ATOMIC_LDOP_PLUS): New.
7299         (ATOMIC_LDOP): New.
7300         (atomic_ldop): New.
7301         (aarch64_atomic_load<atomic_ldop><mode>): New.
7302
7303 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
7304
7305         * config/aarch64/aarch64.md
7306         (<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Make a named
7307         pattern.
7308
7309 2015-09-22  Matthew Wahab  <matthew.wahab@arm.com>
7310
7311         * config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop):
7312         Declare.
7313         * config/aarch64/aarch64.c (aarch64_emit_atomic_swap): New.
7314         (aarch64_gen_atomic_ldop): New.
7315         (aarch64_split_atomic_op): Fix whitespace and add a comment.
7316         * config/aarch64/atomics.md (UNSPECV_ATOMIC_SWP): New.
7317         (aarch64_compare_and_swap<mode>_lse): Fix some whitespace.
7318         (atomic_exchange<mode>): Replace with an expander.
7319         (aarch64_atomic_exchange<mode>): New.
7320         (aarch64_atomic_exchange<mode>_lse): New.
7321         (aarch64_atomic_<atomic_optab><mode>): Fix some whitespace.
7322         (aarch64_atomic_swp<mode>): New.
7323
7324 2015-09-22  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7325
7326         * tree-inline.c (expand_call_inline): Use inform for extra note.
7327         Do not give a note with UNKNOWN_LOCATION.
7328         Replace input_location with gimple_location (stmt).
7329         Use true/false instead of TRUE/FALSE.
7330
7331 2015-09-22  Tom de Vries  <tom@codesourcery.com>
7332
7333         PR tree-optimization/67666
7334         * tree-ssa-structalias.c (create_variable_info_for_1): Handle struct
7335         with single field non-conservative.
7336
7337 2015-09-21  David S. Miller  <davem@davemloft.net>
7338
7339         PR/67622
7340         Revert:
7341         2015-09-11  David S. Miller  <davem@davemloft.net>
7342
7343         * config/sparc/constraints.md: Make "U" constraint a real register
7344         constraint.
7345         * config/sparc/sparc.c (TARGET_LRA_P): Define.
7346         (D_MODES, DF_MODES): Add missing cast.
7347         (TF_MODES, TF_MODES_NO_S): Include T_MODE.
7348         (OF_MODES, OF_MODES_NO_S): Include O_MODE.
7349         (sparc_register_move_cost): Decrease Niagara/UltrsSPARC memory
7350         cost to 8.
7351         * config/sparc/sparc.h (PROMOTE_MODE): Define.
7352         * config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
7353         provide these insn when flag_pic.
7354
7355         2015-09-17  David S. Miller  <davem@davemloft.net>
7356
7357         * config/sparc/sparc-protos.h (sparc_secondary_memory_needed):
7358         Declare.
7359         * config/sparc/sparc.c (sparc_secondary_memory_needed): New
7360         function.
7361         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Use it.
7362         (HARD_REGNO_CALLER_SAVE_MODE): Define.
7363         * config/sparc/sparc.md (sethi_di_medlow, losum_di_medlow, seth44)
7364         (setm44, setl44, sethh, setlm, sethm, setlo, embmedany_sethi)
7365         (embmedany_losum, embmedany_brsum, embmedany_textuhi)
7366         (embmedany_texthi, embmedany_textulo, embmedany_textlo): Do not
7367         provide when flag_pic.
7368
7369 2015-09-21  Jeff Law  <law@redhat.com>
7370
7371         * config/h8300/h8300.md (andsi3_ashift_n_lower): Avoid undefined
7372         behavior.
7373
7374 2015-09-21  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
7375
7376         * config/spu/spu.c (spu_expand_insv): Avoid undefined behavior.
7377
7378 2015-09-21  Richard Biener  <rguenther@suse.de>
7379
7380         * passes.c (rest_of_decl_compilation): Do not call
7381         dwarf2out_early_global_decl for aliases.
7382
7383 2015-09-21  Richard Biener  <rguenther@suse.de>
7384
7385         PR debug/67664
7386         * dwarf2out.c (add_location_or_const_value_attribute): Remove
7387         attribute parameter.  Early exit if either DW_AT_const_value
7388         or DW_AT_location are present already.
7389         (gen_variable_die): Adjust caller.
7390         (dwarf2out_late_global_decl): Likewise.
7391
7392 2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>
7393
7394         PR target/67657
7395         * config/sh/sh.c (sh_remove_overlapping_post_inc,
7396         sh_peephole_emit_move_insn): Add new functions.
7397         * config/sh/sh-protos.h (sh_remove_overlapping_post_inc,
7398         sh_peephole_emit_move_insn): Declere them.
7399         * config/sh/sh.md: Use them in various peephole2 patterns.
7400
7401 2015-09-21  Richard Biener  <rguenther@suse.de>
7402
7403         PR middle-end/67651
7404         * rtlanal.c (nonzero_address_p): SYMBOL_REFs may have zero
7405         address with -fno-delete-null-pointer-checks.
7406
7407 2015-09-21  Alan Lawrence  <alan.lawrence@arm.com>
7408
7409         * config/rs6000/altivec.md (reduc_splus_<mode>): Rename to...
7410         (reduc_plus_scal_<mode>): ...this, add rs6000_expand_vector_extract.
7411         (reduc_uplus_v16qi): Remove.
7412
7413         * config/rs6000/vector.md (VEC_reduc_name): Change "splus" to "plus".
7414         (reduc_<VEC_reduc_name>_v2df): Remove.
7415         (reduc_<VEC_reduc_name>_v4sf): Remove.
7416         (reduc_<VEC_reduc:VEC_reduc_name>_scal_<VEC_F:name>): New.
7417
7418         * config/rs6000/vsx.md (vsx_reduc_<VEC_reduc_name>_v2df): Declare
7419         gen_ function by removing * prefix.
7420         (vsx_reduc_<VEC_reduc_name>_v4sf): Likewise.
7421
7422 2015-09-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7423
7424         PR middle-end/60832
7425         * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
7426         Print i_bound without converting it to a tree.
7427
7428 2015-09-21  Bilyan Borisov  <bilyan.borisov@arm.com>
7429
7430         * config/arm/arm.c (thumb_output_move_mem_multiple): Replaced
7431         operands[4] operands[5] swap with std::swap, removed tmp variable.
7432         (arm_evpc_neon_vzip): Replaced in0/in1 and
7433         out0/out1 swaps with std::swap, removed x variable.
7434         (arm_evpc_neon_vtrn): Replaced in0/int1 and
7435         out0/out1 swaos with std::swap, removed x variable.
7436         (arm_expand_vec_perm_const_1): Replaced
7437         d->op0/d->op1 swap with std::swap, removed x variable.
7438         (arm_evpc_neon_vuzp): Replaced in0/in1 and
7439         out0/out1 swaps with std::swap, removed x variable.
7440
7441 2015-09-21  Jonathan Yong  <10walls@gmail.com>
7442
7443         * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
7444         sysroot/usr/lib/32api for additional win32 libraries,
7445         fixes failing Cygwin bootstrapping.
7446
7447 2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>
7448
7449         * doc/invoke.texi (SH Options): Undocument SH5/SH64 related options.
7450
7451 2015-09-21  Oleg Endo  <olegendo@gcc.gnu.org>
7452
7453         PR target/67126
7454         * config/sh/sh.md (*reg_lsb_t): Emit bld insn on SH2A.
7455         (*mov_t_msb_neg): Rewrite negc pattern.
7456
7457 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
7458
7459         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Cleanup
7460         immediate generation code.
7461
7462 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
7463
7464         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Remove
7465         redundant immediate generation code.
7466
7467 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
7468
7469         * config/aarch64/aarch64.c (aarch64_bitmasks): Remove.
7470         (AARCH64_NUM_BITMASKS): Remove.
7471         (aarch64_bitmasks_cmp): Remove.
7472         (aarch64_build_bitmask_table): Remove.
7473
7474 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
7475
7476         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Replace
7477         slow immediate matching loops with a faster algorithm.
7478
7479 2015-09-20  Wilco Dijkstra  <wdijkstr@arm.com>
7480
7481         * config/aarch64/aarch64.c (aarch64_bitmask_imm): Reimplement using
7482         faster algorithm.
7483
7484 2015-09-20  Jeff Law  <law@redhat.com>
7485
7486         PR tree-optimization/47679
7487         * tree-ssa-dom.c (record_temporary_equivalences): No longer static.
7488         * tree-ssa-dom.h (record_temporary_equivalences): Add prototype.
7489         * tree-ssa-threadedge.c: Include tree-ssa-dom.h.
7490         (thread_through_normal_block): Use record_temporary_equivalences.
7491
7492 2015-09-19  Trevor Saunders  <tbsaunde@tbsaunde.org>
7493
7494         * coretypes.h (gimple): Change typedef to be a forward declaration.
7495         * gimple.h (gimple_statement_base): rename to gimple.
7496         * (all functions and types using gimple): Adjust.
7497         * *.[ch]: Likewise.
7498
7499 2015-09-19  Andrew Dixie  <andrewd@gentrack.com>
7500             David Edelsohn  <dje.gcc@gmail.com>
7501
7502         * config/rs6000/xcoff.h (EH_FRAME_IN_DATA_SECTION): Delete.
7503         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
7504         (EH_FRAME_THROUGH_COLLECT2): Define.
7505         (EH_TABLES_CAN_BE_READ_ONLY): Define.
7506         (ASM_OUTPUT_DWARF_PCREL): Define.
7507         (ASM_OUTPUT_DWARF_DATAREL): Define.
7508
7509 2015-09-19  John David Anglin  <danglin@gcc.gnu.org>
7510
7511         * config/pa/pa.c (pa_function_ok_for_sibcall): Remove special treatment
7512         of TARGET_ELF32.
7513
7514 2015-09-18  Jeff Law  <law@redhat.com>
7515
7516         PR tree-optimization/47679
7517         * tree-ssa-dom.c (avail_exprs_stack): No longer file scoped.  Move
7518         it here ...
7519         (dom_opt_dom_walker): New private member holding the avail_exprs_stack
7520         object.  Update constructor.
7521         (pass_dominator::execute):  Corresponding chagnes to declaration
7522         and initialization of avail_exprs_stack.  Update constructor call
7523         for dom_opt_dom_walker object.
7524         (lookup_avail_expr, record_cond): Accept additional argument.  Pass
7525         it down to children as needed.
7526         (record_equivalences_from_incoming_edge): Likewise.
7527         (eliminate_redundant_computations): Likewise.
7528         (record_equivalences_from_stmt): Likewise.
7529         (simplify_stmt_for_jump_threading): Likewise.
7530         (record_temporary_equivalences): Likewise.
7531         (optimize_stmt): Likewise.
7532         (dom_opt_dom_walker::thread_across_edge): Update access to
7533         avail_exprs_stack object and pass it to children as needed.
7534         (dom_opt_dom_walker::before_dom_children): Similarly.
7535         (dom_opt_dom_walker::after_dom_children): Similarly.
7536         * tree-ssa-threadedge.c (pfn_simplify): New typedef.
7537         (record_temporary_equivalences_from_stmts_at_dest): Use new typedef.
7538         Add avail_expr_stack argument.  Pass it to children as needed.
7539         (dummy_simplify): Likewise.
7540         (simplify_control_stmt_condition): Likewise.
7541         (thread_around_empty_blocks): Likewise.
7542         (thread_through_normal_block): Likewise.
7543         (thread_across_edge): Likewise.
7544         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
7545         * tree-vrp.c (simplify_stmt_for_jump_threading): Update.
7546
7547         PR tree-optimization/47679
7548         * tree-ssa-dom.c (const_and_copies): No longer file scoped.  Move
7549         it here ...
7550         (dom_opt_dom_walker): New private member holding the const_and_copies
7551         object.  Update constructor.
7552         (pass_dominator::execute): Corresponding changes to declaration
7553         and initialization of const_and_copies.  Update constructor call
7554         for the dom_opt_dom_walker object.
7555         (record_temporary_equivalences): Accept const_and_copies argument
7556         pass it down to children as needed.
7557         (record_equality): Likewise.
7558         (record_equivalences_from_incoming_edge): Likewise.
7559         (cprop_into_successor_phis, optimize_stmt): Likewise.
7560         (eliminate_redundant_computations): Likewise.
7561         (dom_opt_dom_walker::thread_across_edge): Update access to
7562         const_and_copies object and pass it to children as needed.
7563         (dom_opt_dom_walker::before_dom_children): Similarly.
7564         (dom_opt_dom_walker::after_dom_children): Similarly.
7565
7566         PR tree-optimization/47679
7567         * tree-ssa-dom.c (avail_exprs): No longer file scoped.  Bury
7568         it into the avail_exprs_stack class.
7569         (pass_dominator::execute): Corresponding changes to declaration
7570         and initialization of avail_exprs.  Pass avail_exprs to
7571         dump_dominator_optimization_stats.
7572         (record_cond): Extract avail_exprs from avail_exprs_stack.
7573         (lookup_avail_expr): Similarly.
7574         (htab_staticstics): Remove unnecessary prototype.  Move to earlier
7575         position in file.
7576         (dump_dominator_optimization_stats): Make static and prototype.
7577         Add argument for the hash table to dump.
7578         (debug_dominator_optimization_stats): Remove.
7579         * tree-ssa-dom.h (dump_dominator_optimization_stats): Remove
7580         prototype.
7581         (debug_dominator_optimization_stats): Similarly.
7582         * tree-ssa-scopedtables.h (class avail_exprs_stack): Add missing
7583         "void" in prototype for pop_to_marker method.  Add accessor method
7584         for the underlying avail_exprs table.
7585
7586         * tree-ssa-threadedge.c: Remove trailing whitespace.
7587
7588 2014-09-18  John David Anglin  <danglin@gcc.gnu.org>
7589
7590         * config/pa/pa-protos.h (pa_cint_ok_for_move): Change argument type to
7591         unsigned.
7592         (pa_ldil_cint_p): Likewise.
7593         * config/pa/pa.c (pa_cint_ok_for_move): likewise.
7594         (pa_ldil_cint_p): Likewise. Change signed casts to unsigned.
7595         Update callers.
7596         * config/pa/pa.md: Likewise.
7597
7598 2015-09-18  David Malcolm  <dmalcolm@redhat.com>
7599
7600         * Makefile.in (OBJS-libcommon): Add diagnostic-show-locus.o.
7601         * diagnostic.c (adjust_line): Move to diagnostic-show-locus.c.
7602         (diagnostic_show_locus): Likewise.
7603         (diagnostic_print_caret_line): Likewise.
7604         * diagnostic-show-locus.c: New file.
7605
7606 2015-09-18  David Edelsohn  <dje.gcc@gmail.com>
7607
7608         * dwarf2out.c (switch_to_eh_frame_section): Add ATTRIBUTE_UNUSED to
7609         "back" parameter. Declare label in #if block.
7610
7611 2015-09-18  Uros Bizjak  <ubizjak@gmail.com>
7612
7613         PR middle-end/67619
7614         * except.c (expand_builtin_eh_return): Use copy_addr_to_reg to copy
7615         the address to a register.
7616
7617 2015-09-18  Jeff Law  <law@redhat.com>
7618
7619         PR tree-optimization/47679
7620         * Makefile.in (OBJS): Add tree-ssa-phionlycprop.o
7621         * tree-ssa-dom.c: Remove unnecessary header includes.
7622         (remove_stmt_or_phi): Moved from here into tree-ssa-phionlycprop.c
7623         (get_rhs_or_phi_arg, get_lhs_or_phi_result): Likewise.
7624         (propagate_rhs_into_lhs, eliminate_const_or_copy): Likewise.
7625         (eliminate_degenerate_phis_1, pass_phi_only_cprop): Likewise.
7626         (pass_phi_only_cprop::execute): Likewise.
7627         (make_pass_phi_only_cprop): Likewise.
7628         * tree-ssa-phionlycprop.c: New file with moved code.  Eliminate
7629         uses of file scoped statics by passing the required objects
7630         as parameters wherever needed.
7631
7632 2015-09-18  Andrew Dixie  <andrewd@gentrack.com>
7633             David Edelsohn  <dje.gcc@gmail.com>
7634
7635         * defaults.h (EH_FRAME_SECTION_NAME): Depend on
7636         EH_FRAME_THROUGH_COLLECT2.
7637         * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add case for
7638         DW_EH_PE_datarel.
7639         * dwarf2out.c (switch_to_eh_frame_section): Use a read-only section
7640         even if EH_FRAME_SECTION_NAME is undefined.  Restrict special
7641         collect2 labels to EH_FRAME_THROUGH_COLLECT2.
7642         * except.c (switch_to_exception_section): Use a read-only section
7643         even if EH_FRAME_SECTION_NAME is undefined.
7644         * system.h (EH_FRAME_IN_DATA_SECTION): Poison.
7645         * collect2.c (write_c_file_stat): Provide dbase on AIX.
7646         (scan_prog_file): Don't export __dso_handle nor
7647         __gcc_unwind_dbase.
7648         * config/rs6000/aix.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
7649         (EH_TABLES_CAN_BE_READ_ONLY): Define.
7650         (ASM_OUTPUT_DWARF_PCREL): Define.
7651         (ASM_OUTPUT_DWARF_DATAREL): Define.
7652         (EH_FRAME_THROUGH_COLLECT2): Define.
7653         (EH_FRAME_IN_DATA_SECTION): Delete.
7654         * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtdbase.o.
7655         * config/rs6000/rs6000-protos.h (rs6000_asm_output_dwarf_pcrel):
7656         Declare.
7657         (rs6000_asm_output_dwarf_datarel): Declare.
7658         * config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_pcrel): New.
7659         (rs6000_aix_asm_output_dwarf_datarel): New.
7660         (rs6000_xcoff_asm_init_sections): Don't set exception_section.
7661         * config/spu/spu-elf.h (EH_FRAME_IN_DATA_SECTION): Delete.
7662         (EH_FRAME_THROUGH_COLLECT2): Define.
7663         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Delete.
7664         (EH_FRAME_THROUGH_COLLECT2): Define.
7665         (EH_TABLES_CAN_BE_READ_ONLY): Define.
7666         * doc/tm.texi.in (EH_FRAME_IN_DATA_SECTION): Delete.
7667         (EH_FRAME_THROUGH_COLLECT2): New.
7668         (ASM_OUTPUT_DWARF_DATAREL): New.
7669         * doc/tm.texi: Regenerate.
7670
7671 2015-09-18  Richard Biener  <rguenther@suse.de>
7672
7673         * dwarf2out.c (append_entry_to_tmpl_value_parm_die_table): Assert
7674         we're in early phase.
7675         (schedule_generic_params_dies_gen): Likewise.
7676         (gen_remaining_tmpl_value_param_die_attribute): Do only as much
7677         work as possible, retaining unhandled cases.
7678         (gen_scheduled_generic_parms_dies): Set early-dwarf flag and
7679         clear out generic_type_instances at the end.
7680         (dwarf2out_finish): Move call to gen_scheduled_generic_parms_dies...
7681         (dwarf2out_early_finish): ... here.  Do most of
7682         gen_remaining_tmpl_value_param_die_attribute here.
7683
7684 2015-09-18  Alan Lawrence  <alan.lawrence@arm.com>
7685
7686         PR tree-optimization/67283
7687         * tree-sra.c (type_consists_of_records_p): Rename to...
7688         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
7689         (completely_scalarize_record): Rename to...
7690         (completely_scalarize): ...this, add ARRAY_TYPE case, move some code to:
7691         (scalarize_elem): New.
7692         (analyze_all_variable_accesses): Follow renamings.
7693
7694 2015-09-18  Richard Biener  <rguenther@suse.de>
7695
7696         * dwarf2out.c (add_location_or_const_value_attribute): Do nothing
7697         in early-dwarf.
7698
7699 2015-09-18  Richard Biener  <rguenther@suse.de>
7700
7701         PR tree-optimization/66142
7702         * fold-const.c (operand_equal_p): When OEP_ADDRESS_OF
7703         treat MEM[&x] and x the same.
7704         * tree-ssa-sccvn.h (vn_reference_fold_indirect): Remove.
7705         * tree-ssa-sccvn.c (vn_reference_fold_indirect): Return true
7706         when we simplified sth.
7707         (vn_reference_maybe_forwprop_address): Likewise.
7708         (valueize_refs_1): When we simplified through
7709         vn_reference_fold_indirect or vn_reference_maybe_forwprop_address
7710         set valueized_anything to true.
7711         (vn_reference_lookup_3): Use stmt_kills_ref_p to see whether
7712         one ref kills the other instead of just a offset-based test.
7713         * tree-ssa-alias.c (stmt_kills_ref_p): Use OEP_ADDRESS_OF
7714         for the operand_equal_p test to compare bases and also compare
7715         sizes.
7716
7717 2015-09-17  Christian Bruel  <christian.bruel@st.com>
7718
7719         * config/arm/arm.md (*call_value_symbol): Fix operand for interworking.
7720
7721 2015-09-17  Richard Henderson  <rth@redhat.com>
7722
7723         PR libstdc++/65913
7724         * builtins.c (fold_builtin_atomic_always_lock_free): Handle fake
7725         pointers that encode the alignment of the object.
7726
7727 2015-09-17  Eric Botcazou  <ebotcazou@adacore.com>
7728
7729         PR rtl-optimization/66790
7730         * df-problems.c (LIVE): Amend documentation.
7731
7732 2015-09-17  Richard Sandiford  <richard.sandiford@arm.com>
7733
7734         * Makefile.in (OBJS): Add optabs-libfuncs.o, optabs-query.o
7735         and optabs-tree.o.
7736         (GTFILES): Replace optabs.c with optabs-libfunc.c.
7737         * genopinit.c (main): Add an include guard to insn-opinit.h.
7738         Protect the rtx_code parts with NUM_RTX_CODE.
7739         * optabs.h: Split parts out to...
7740         * optabs-libfuncs.h, optabs-query.h, optabs-tree.h: ...these new files.
7741         * optabs.c: Split parts out to...
7742         * optabs-libfuncs.c, optabs-query.c, optabs-tree.c: ...these new files.
7743         * cilk-common.c: Include optabs-query.h rather than optabs.h.
7744         * fold-const.c: Likewise.
7745         * target-globals.c: Likewise.
7746         * tree-if-conv.c: Likewise.
7747         * tree-ssa-forwprop.c: Likewise.
7748         * tree-ssa-loop-prefetch.c: Likewise.
7749         * tree-ssa-math-opts.c: Include optabs-tree.h rather than optabs.h.
7750         Remove unncessary include files.
7751         * tree-ssa-phiopt.c: Likewise.
7752         * tree-ssa-reassoc.c: Likewise.
7753         * tree-switch-conversion.c: Likewise.
7754         * tree-vect-data-refs.c: Likewise.
7755         * tree-vect-generic.c: Likewise.
7756         * tree-vect-loop.c: Likewise.
7757         * tree-vect-patterns.c: Likewise.
7758         * tree-vect-slp.c: Likewise.
7759         * tree-vect-stmts.c: Likewise.
7760         * tree-vrp.c: Likewise.
7761         * toplev.c: Include optabs-query.h and optabs-libfuncs.h
7762         rather than optabs.h.
7763         * expr.c: Include optabs-tree.h.
7764         * function.c: Likewise.
7765
7766 2015-09-17  Eric Botcazou  <ebotcazou@adacore.com>
7767
7768         PR middle-end/65958
7769         * config/arm/linux-elf.h (STACK_CHECK_STATIC_BUILTIN): Define.
7770         * config/arm/arm-protos.h (output_probe_stack_range): Declare.
7771         * config/arm/arm.c: Include common/common-target.h.
7772         (use_return_insn): Return 0 if the static chain register was saved
7773         above a non-APCS frame.
7774         (arm_compute_static_chain_stack_bytes): Adjust for stack checking.
7775         (struct scratch_reg): New.
7776         (get_scratch_register_on_entry): New function.
7777         (release_scratch_register_on_entry): Likewise.
7778         (arm_emit_probe_stack_range): Likewise.
7779         (output_probe_stack_range): Likewise.
7780         (arm_expand_prologue): Factor out code dealing with the IP register
7781         for nested function and adjust it for stack checking.
7782         Invoke arm_emit_probe_stack_range if static builtin stack checking
7783         is enabled.
7784         (thumb1_expand_prologue): Sorry out if static builtin stack checking
7785         is enabled.
7786         (arm_expand_epilogue): Add the saved static chain register, if any, to
7787         the amount of pre-pushed registers to pop.
7788         (arm_frame_pointer_required): Return true if static stack checking is
7789         enabled and we want to catch the exception with the EABI unwinder.
7790         * config/arm/unspecs.md (UNSPEC_PROBE_STACK): New constant.
7791         (UNSPEC_PROBE_STACK_RANGE): Likewise.
7792         * config/arm/arm.md (probe_stack): New insn.
7793         (probe_stack_range): Likewise.
7794
7795 2015-09-17  Richard Biener  <rguenther@suse.de>
7796
7797         * genmatch.c (parser::parse_expr): Improve error message
7798         for mis-placed flags.
7799
7800 2015-09-17  Richard Biener  <rguenther@suse.de>
7801
7802         * passes.c (rest_of_decl_compilation): Always call early_global_decl
7803         debug hook when we created a varpool node.
7804         * dwarf2out.c (dwarf2out_late_global_decl): When in LTO call
7805         dwarf2out_early_global_decl, when not just add location or
7806         value attributes to existing DIEs.
7807
7808 2015-09-17  James Greenhalgh  <james.greenhalgh@arm.com>
7809
7810         * config/aarch64/aarch64.md (copysigndf3): New.
7811         (copysignsf3): Likewise.
7812
7813 2015-09-17  David S. Miller  <davem@davemloft.net>
7814
7815         * config/sparc/sparc-protos.h (sparc_secondary_memory_needed): Declare.
7816         * config/sparc/sparc.c (sparc_secondary_memory_needed): New function.
7817         * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Use it.
7818         (HARD_REGNO_CALLER_SAVE_MODE): Define.
7819         * config/sparc/sparc.md (sethi_di_medlow, losum_di_medlow, seth44)
7820         (setm44, setl44, sethh, setlm, sethm, setlo, embmedany_sethi)
7821         (embmedany_losum, embmedany_brsum, embmedany_textuhi)
7822         (embmedany_texthi, embmedany_textulo, embmedany_textlo): Do not
7823         provide when flag_pic.
7824
7825 2015-09-17  Kaz Kojima  <kkojima@gcc.gnu.org>
7826
7827         * config/sh/sh.c (label_ref_list_d_pool): Adjust to
7828         object_allocator change.
7829
7830 2015-09-17  Bin Cheng  <bin.cheng@arm.com>
7831
7832         PR tree-optimization/66388
7833         * tree-ssa-loop-ivopts.c (struct iv, iv_cand, ivopts_data): New fields.
7834         (dump_iv): Dump no_overflow information.
7835         (alloc_iv): Initialize new field for struct iv.
7836         (mark_bivs): Count number of no_overflow bivs.
7837         (find_deriving_biv_for_expr, record_biv_for_address_use): New
7838         functions.
7839         (idx_find_step): Call new functions above.
7840         (add_candidate_1, add_candidate): New paramter.
7841         (add_iv_candidate_for_biv): Add sizetype cand for BIV.
7842         (get_computation_aff): Simplify convertion of cand for BIV.
7843         (get_computation_cost_at): Step cand's base if necessary.
7844
7845 2015-09-17  Bin Cheng  <bin.cheng@arm.com>
7846
7847         * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): New
7848         parameter.
7849         (tree_simplify_using_condition): Ditto.
7850         (simplify_using_initial_conditions): Ditto.
7851         (loop_exits_before_overflow): Pass new argument to function
7852         simplify_using_initial_conditions.  Remove case for type conversions
7853         simplification.
7854         * tree-ssa-loop-niter.h (simplify_using_initial_conditions): New
7855         parameter.
7856         * tree-scalar-evolution.c (simple_iv): Simplify type conversions
7857         in iv base using loop initial conditions.
7858
7859 2015-09-16  Jeff Law  <law@redhat.com>
7860
7861         PR tree-optimization/47679
7862         * tree-ssa-dom.c (free_edge_info): Factored out of free_all_edge_infos.
7863         (free_all_edge_infos): Use it.
7864         (allocate_edge_info): Free preexisting edge info data.
7865         (pass_dominator::execute): Set up initial edge info structures.
7866         (dom_opt_dom_walker::thread_across_edge): Pass avail_expr_stack to
7867         thread_across_edge.
7868         * tree-ssa-threadedge.c (thread_across_edge): Accept new argument.
7869         If non-null, then push/pop markers appropriately.
7870         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
7871         * tree-vrp.c (identify_jump_threads): Pass NULL for new argument to
7872         thread-across_edge.
7873
7874 2015-09-16  James Bowman  <james.bowman@ftdichip.com>
7875
7876         * config/ft32/ft32.c: Fix the memory address space predicate.
7877
7878 2015-09-16  Kaz Kojima  <kkojima@gcc.gnu.org>
7879
7880         PR target/67573
7881         * config/sh/sh.md (call_pcrel): Add early clobber to scratch operand.
7882         (call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise.
7883
7884 2015-09-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
7885
7886         * toplev.h (check_global_declaration): Remove declaration.
7887         * toplev.c (check_global_declaration): Move to ...
7888         * cgraphunit.c: ... here. Make it static and pass a symtab_node *.
7889         (analyze_functions): Update call.
7890
7891 2015-09-16  David S. Miller  <davem@davemloft.net>
7892
7893         * lra-constraints.c (simplify_operand_subreg): Do not assume that
7894         lowpart of a SUBREG has offset zero.
7895
7896 2015-09-16  Jeff Law  <law@redhat.com>
7897
7898         PR tree-optimization/47679
7899         * tree-ssa-dom.c (enum expr_kind): Moved from here to
7900         tree-ssa-scopedtables.h.
7901         (struct hashable_expr, class expr_hash_elt): Likewise.
7902         (struct expr_elt_hasher, class avail_exprs_stack): Likewise.
7903         Move associated methods into tree-ssa-scopedtables.c.
7904         (avail_expr_hash, initialize_expr_from_cond): Similarly.
7905         (hashable_expr_equal_p, add_expr_commutative): Likewise.
7906         (add_hashable_expr): Likewise.
7907         (record_cond): Delete element directly.
7908         * tree-ssa-scopedtables.h (avail_expr_stack, const_and_copies): Add
7909         private copy ctor and assignment operator methods.
7910         (expr_elt_hasher): Inline trivial methods.
7911         (initialize_expr_from_cond): Prototype.
7912         * tree-ssa-scopedtables.c: Add necessary includes, functions and
7913         methods that were previously in tree-ssa-dom.c.  Improve various
7914         comments.
7915
7916 2015-09-16  Paolo Carlini  <paolo.carlini@oracle.com>
7917
7918         * doc/invoke.texi ([Wsubobject-linkage]): Extend documentation.
7919
7920 2015-09-16  Segher Boessenkool  <segher@kernel.crashing.org>
7921
7922         PR bootstrap/67587
7923         * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
7924         fixup_partitions.
7925
7926 2015-09-16  Richard Biener  <rguenther@suse.de>
7927
7928         PR middle-end/67253
7929         * cfgexpand.c (expand_gimple_stmt_1): Do not clobber
7930         location of possibly shared trees.
7931
7932 2015-09-16  Richard Biener  <rguenther@suse.de>
7933
7934         PR middle-end/67271
7935         * fold-const.c (native_encode_expr): Bail out on bogus offsets.
7936
7937 2015-09-16  Eric Botcazou  <ebotcazou@adacore.com>
7938
7939         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use offset_int for
7940         offset and size computations instead of HOST_WIDE_INT.
7941
7942 2015-09-16  Richard Biener  <rguenther@suse.de>
7943
7944         PR middle-end/67442
7945         * fold-const.c (extract_muldiv_1): Properly extend multiplication
7946         result before builting a tree via wide_int_to_tree.
7947
7948 2015-09-16  Mikhail Maltsev  <maltsevm@gmail.com>
7949
7950         * Makefile.in: Add memory-block.cc
7951         (pool_allocator::initialize): Use fixed block size.
7952         (pool_allocator::release): Use memory_block_pool.
7953         (pool_allocator::allocate): Likewise.
7954         * asan.c (asan_mem_ref_pool): Adjust to use common block size in all
7955         object pools.
7956         * cfg.c (initialize_original_copy_tables): Likewise.
7957         * cselib.c (elt_list_pool, elt_loc_list_pool,
7958         cselib_val_pool): Likewise.
7959         * df-problems.c (df_chain_alloc): Likewise.
7960         * df-scan.c (df_scan_alloc): Likewise.
7961         * dse.c (cse_store_info_pool, rtx_store_info_pool,
7962         read_info_type_pool, insn_info_type_pool, bb_info_pool,
7963         group_info_pool, deferred_change_pool): Likewise.
7964         * et-forest.c (et_nodes, et_occurrences): Likewise.
7965         * ipa-cp.c (ipcp_cst_values_pool, ipcp_sources_pool,
7966         ipcp_agg_lattice_pool): Likewise.
7967         * ipa-inline-analysis.c (edge_predicate_pool): Likewise.
7968         * ipa-profile.c (histogram_pool): Likewise.
7969         * ipa-prop.c (ipa_refdesc_pool): Likewise.
7970         * ira-build.c (live_range_pool, allocno_pool, object_pool,
7971         initiate_cost_vectors, pref_pool, copy_pool): Likewise.
7972         * ira-color.c (update_cost_record_pool): Likewise.
7973         * lra-lives.c (lra_live_range_pool): Likewise.
7974         * lra.c (lra_insn_reg_pool, lra_copy_pool): Likewise.
7975         * memory-block.cc: New file.
7976         * memory-block.h: New file.
7977         * regcprop.c (queued_debug_insn_change_pool): Use common block size.
7978         * sched-deps.c (sched_deps_init): Likewise.
7979         * sel-sched-ir.c (sched_lists_pool): Likewise.
7980         * stmt.c (expand_case, expand_sjlj_dispatch_table): Likewise.
7981         * tree-sra.c (access_pool): Likewise.
7982         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
7983         * tree-ssa-pre.c (pre_expr_pool, bitmap_set_pool): Likewise.
7984         * tree-ssa-reassoc.c (operand_entry_pool): Likewise.
7985         * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
7986         * tree-ssa-strlen.c (strinfo_pool): Likewise.
7987         * tree-ssa-structalias.c (variable_info_pool): Likewise.
7988         * var-tracking.c (attrs_def_pool, var_pool, valvar_pool,
7989         location_chain_pool, shared_hash_pool, loc_exp_dep_pool): Likewise.
7990
7991 2015-09-15  Max Filippov  <jcmvbkbc@gmail.com>
7992
7993         * config/xtensa/xtensa.h (DWARF_ALT_FRAME_RETURN_COLUMN): New
7994         definition.
7995         (DWARF_FRAME_REGISTERS): Reserve space for one extra register in
7996         call0 ABI.
7997
7998 2015-09-15  Max Filippov  <jcmvbkbc@gmail.com>
7999
8000         * config/xtensa/xtensa.c (xtensa_call_tls_desc): Use a10 or a2
8001         to pass TLS call argument, according to current ABI.
8002         * config/xtensa/xtensa.md (tls_call pattern): Use callx8 or
8003         callx0 for TLS call, according to current ABI.
8004
8005 2015-09-15  Eric Botcazou  <ebotcazou@adacore.com>
8006
8007         * tree-eh.c (lower_try_finally_dup_block): Clear location information
8008         on stack restore statements.
8009         (decide_copy_try_finally): Do not consider a stack restore statement as
8010         coming from sources.
8011
8012 2015-09-15  Uros Bizjak  <ubizjak@gmail.com>
8013
8014         * config/alpha/alpha.c (alpha_expand_block_clear): Use
8015         HOST_WIDE_INT_M1U instead of ~(HOST_WIDE_INT)0 when shifting.
8016
8017 2015-09-15  Jeff Law  <law@redhat.com>
8018
8019         PR tree-optimization/47679
8020         * tree-ssa-dom.c (expr_hash_elt): Now a class with ctors/dtors,
8021         methods and private members.
8022         (avail_exprs_stack): Similarly.  Change type of global
8023         from a pair of expr_hash_elt_t to the new class.
8024         (expr_elt_hasher::hash): Corresponding changes.
8025         (expr_elt_hasher::equal): Similarly.
8026         (avail_expr_hash): Similarly.
8027         (pass_dominator::execute): Similarly.
8028         (dom_opt_dom_walker::thread_across_edge): Similarly.
8029         (record_cond): Similarly.
8030         (dom_opt_dom_walker::before_dom_children): Similarly.
8031         (dom_opt_dom_walker::after_dom_children): Similarly.
8032         (lookup_avail_expr): Likewise.
8033         (initialize_hash_element): Now a expr_hash_elt constructor.
8034         (initialize_hash_element_from_expr): Similarly.
8035         (free_expr_hash_elt_contents): Now a dtor for class expr_hash_elt.
8036         (free_expr_hash_elt): Call dtor for the element.
8037         (remove_local_expressions_from_table): Now the "pop_to_marker"
8038         method in the available_exprs_stack class.
8039         (avail_expr_stack::record_expr): Method factored out.
8040         (print_expr_hash_elt): Now a method in the expr_hash_elt class.
8041         Fix formatting.
8042         (hashable_expr_equal_p): Fix formatting.
8043
8044 2015-09-15  David Malcolm  <dmalcolm@redhat.com>
8045
8046         * input.h (location_get_source_line): Drop "expanded_location"
8047         param in favor of a file and line number.
8048         * input.c (location_get_source_line): Likewise.
8049         (dump_location_info): Update for change in signature of
8050         location_get_source_line.
8051         * diagnostic.c (diagnostic_print_caret_line): Likewise.
8052
8053 2015-09-15  Eric Botcazou  <ebotcazou@adacore.com>
8054
8055         * defaults.h (STACK_OLD_CHECK_PROTECT): Adjust for -fno-exceptions.
8056         Bump to 4KB for SJLJ exceptions.
8057         (STACK_CHECK_PROTECT): Likewise.  Bump to 8KB for SJLJ exceptions.
8058         * doc/tm.texi.in (STACK_CHECK_PROTECT): Adjust.
8059         * doc/tm.texi: Regenerate.
8060
8061 2015-09-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8062
8063         * config/arm/arm.c (arm_gen_constant): Use HOST_WIDE_INT_M1U instead
8064         of -1 when shifting.  Change type of val to unsigned HOST_WIDE_INT.
8065         Update prototype.
8066
8067 2015-09-15  Richard Biener  <rguenther@suse.de>
8068
8069         PR tree-optimization/67470
8070         * tree-ssa-loop-im.c (execute_sm_if_changed): Preserve PHI
8071         structure for PHI hoisting by inserting a forwarder block
8072         if appropriate.
8073
8074 2015-09-15  Christian Bruel  <christian.bruel@st.com>
8075
8076         * config/arm/arm.c (TARGET_OPTION_PRINT): Define.
8077         (arm_option_print): New function.
8078
8079 2015-09-15  Christian Bruel  <christian.bruel@st.com>
8080
8081         PR target/52144
8082         * config/arm/arm.c (arm_option_params_internal): Remove opts parameter.
8083         * config/arm/arm-c.c (arm_cpu_builtins): Declare static.
8084         Remove flags parameter.
8085         * config/arm/arm.h (TARGET_32BIT_P, TARGET_ARM_QBIT_P)
8086         (TARGET_ARM_SAT_P, TARGET_IDIV_P, TARGET_HAVE_LDREX_P)
8087         (TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P, TARGET_DSP_MULTIPLY_P)
8088         (TARGET_ARM_FEATURE_LDREX_P, TARGET_INT_SIMD_P): Redefine macros with...
8089         (TARGET_ARM_SAT, TARGET_IDIV, TARGET_HAVE_LDREX)
8090         (TARGET_HAVE_LDREXBH, TARGET_HAVE_LDREXD, TARGET_ARM_FEATURE_LDREX)
8091         (TARGET_DSP_MULTIPLY, TARGET_INT_SIMD): Redefined macros.
8092         * config/arm/arm-protos.h (arm_cpu_builtins): Remove declaration.
8093
8094 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
8095
8096         * config/aarch64/aarch64.h (AARCH64_VALID_SIMD_DREG_MODE): New.
8097
8098         * config/aarch64/aarch64.c (aarch64_array_mode_supported_p): Add
8099         AARCH64_VALID_SIMD_DREG_MODE.
8100
8101 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
8102
8103         * config/aarch64/aarch64-simd.md (aarch64_ld2r<mode>,
8104         aarch64_ld3r<mode>, aarch64_ld4r<mode>): Combine together, making...
8105         (aarch64_simd_ld<VSTRUCT:nregs>r<VALLDIF:mode>): ...this.
8106         (aarch64_ld2_lane<mode>, aarch64_ld3_lane<mode>,
8107         aarch64_ld4_lane<mode>): Combine together, making...
8108         (aarch64_ld<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this.
8109         (aarch64_st2_lane<mode>, aarch64_st3_lane<mode>,
8110         aarch64_st4_lane<mode>): Combine together, making...
8111         (aarch64_st<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this.
8112         * config/aarch64/iterators.md (nregs): Add comment.
8113
8114 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
8115
8116         * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>):
8117         Change operand mode from <V_TWO_ELEM> to BLK.
8118         (aarch64_vec_load_lanesoi_lane<mode>): Likewise.
8119         (aarch64_vec_store_lanesoi_lane<mode): Likewise
8120         (aarch64_ld2r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
8121         (aarch64_ld2_lane<mode>): Likewise.
8122         (aarch64_st2_lane<VQ:mode>): Likewise.
8123         * config/aarch64/iterators.md (V_TWO_ELEM): Remove.
8124
8125 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
8126
8127         * config/aarch64/aarch64-simd.md (aarch64_simd_ld4r<mode>):
8128         Change operand mode from <V_FOUR_ELEM> to BLK.
8129         (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
8130         (aarch64_vec_store_lanesxi_lane<mode): Likewise.
8131         (aarch64_ld4r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
8132         (aarch64_ld4_lane<mode>): Likewise.
8133         (aarch64_st4_lane<mode>): Likewise.
8134         * config/aarch64/iterators.md (V_FOUR_ELEM): Remove.
8135
8136 2015-09-15  Richard Biener  <rguenther@suse.de>
8137
8138         PR middle-end/67563
8139         * gimple-fold.c (gimplify_and_update_call_from_tree): Do not
8140         transfer EH info from old to new stmt.
8141         (replace_call_with_value): Likewise.
8142         (replace_call_with_call_and_fold): Likewise.
8143         (gimple_fold_builtin_memory_op): Likewise.
8144         (gimple_fold_builtin_memset): Likewise.
8145         (gimple_fold_builtin_stpcpy): Likewise.
8146         (gimple_fold_call): Likewise.
8147
8148 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
8149
8150         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist): Update
8151         comment.
8152         * config/aarch64/aarch64-builtins.c (ei_UP): Remove.
8153         (aarch64_simd_intEI_type_node): Likewise.
8154         (aarch64_simd_builtin_std_type): Remove EImode case.
8155         (aarch64_init_simd_builtin_types): Don't create/add intEI_type_node.
8156         * config/aarch64/aarch64-modes.def: Remove EImode.
8157
8158 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
8159
8160         * config/aarch64/aarch64-simd.md (aarch64_simd_ld3r<mode>):
8161         Change operand mode from <V_THREE_ELEM> to BLK.
8162         (aarch64_vec_load_lanesci_lane<mode>): Likewise.
8163         (aarch64_vec_store_lanesci_lane<mode>): Likewise.
8164         (aarch64_ld3r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
8165         (aarch64_ld3_lane<mode>): Likewise.
8166         (aarch64_st3_lane<mode>): Likewise.
8167         * config/aarch64/iterators.md (V_THREE_ELEM): Remove.
8168
8169 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
8170
8171         * config/aarch64/aarch64-simd.md
8172         (aarch64_ld2<mode>_dreg VD & DX, aarch64_st2<mode>_dreg VD & DX ):
8173         Change all TImode operands to BLKmode.
8174         (aarch64_ld3<mode>_dreg VD & DX, aarch64_st3<mode>_dreg VD & DX):
8175         Change all EImode operands to BLKmode.
8176         (aarch64_ld4<mode>_dreg VD & DX, aarch64_st4<mode>_dreg VD & DX):
8177         Change all OImode operands to BLKmode.
8178
8179         (aarch64_ld<VSTRUCT:nregs><VDC:mode>): Generate MEM rtx with BLKmode
8180         and call set_mem_size.
8181         (aarch64_st<VSTRUCT:nregs><VDC:mode>): Likewise.
8182
8183         * config/aarch64/iterators.md (VSTRUCT_DREG): Remove.
8184
8185 2015-09-15  Alan Lawrence  <alan.lawrence@arm.com>
8186
8187         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Rename
8188         to...
8189         (aarch64_vec_store_lanesoi_lane<mode>): ...this.
8190
8191         (vec_store_lanesci_lane<mode>): Rename to...
8192         (aarch64_vec_store_lanesci_lane<mode>): ...this.
8193
8194         (vec_store_lanesxi_lane<mode>): Rename to...
8195         (aarch64_vec_store_lanesxi_lane<mode>): ...this.
8196
8197         (aarch64_st2_lane<mode>, aarch64_st3_lane<mode>,
8198         aarch64_st4_lane<mode>): Follow renaming.
8199
8200 2015-09-15  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8201
8202         * config/s390/s390.c (s390_const_operand_ok): Add missing
8203         brackets.
8204
8205 2015-09-15  Richard Biener  <rguenther@suse.de>
8206
8207         PR lto/67568
8208         * lto-streamer.h (lto_location_cache::current_sysp): Properly
8209         initialize.
8210         * lto-streamer-out.c (clear_line_info): Likewise.
8211
8212 2015-09-15  Richard Biener  <rguenther@suse.de>
8213
8214         * doc/match-and-simplify.texi: Fix wording.
8215
8216 2015-09-15  Bin Cheng  <bin.cheng@arm.com>
8217
8218         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Strip
8219         unnecessary type conversion in op1.
8220
8221 2015-09-14  Segher Boessenkool  <segher@kernel.crashing.org>
8222
8223         * shrink-wrap.c (requires_stack_frame_p): Fix formatting.
8224         (dup_block_and_redirect): Delete function.
8225         (can_dup_for_shrink_wrapping): New function.
8226         (fix_fake_fallthrough_edge): New function.
8227         (try_shrink_wrapping): Rewrite function.
8228         (convert_to_simple_return): Call fix_fake_fallthrough_edge.
8229
8230 2015-09-14  Rich Felker  <dalias@libc.org>
8231
8232         * configure.ac: Change target pattern for sh TLS support
8233         test from "sh[34]-*-*" to "sh[123456789lbe]*-*-*".
8234         * configure: Regenerate.
8235
8236 2015-09-14  Jeff Law  <law@redhat.com>
8237
8238         PR tree-optimization/47679
8239         * tree-ssa-dom.c (avail_expr_hash): Pass a pointer to a real
8240         type rather than void *.
8241
8242 2015-09-14  Manuel López-Ibáñez  <manu@gcc.gnu.org>
8243
8244         PR fortran/67460
8245         * diagnostic.c (diagnostic_initialize): Do not set
8246         some_warnings_are_errors.
8247         (diagnostic_finish): Use DK_WERROR count instead.
8248         (diagnostic_report_diagnostic): Do not set
8249         some_warnings_are_errors.
8250         * diagnostic.h (struct diagnostic_context): Remove
8251         some_warnings_are_errors.
8252
8253 2015-09-14  Richard Sandiford  <richard.sandiford@arm.com>
8254
8255         * config/sparc/predicates.md (const_all_ones_operand): Use
8256         CONSTM1_RTX to simplify definition.
8257
8258 2015-09-14  Oleg Endo  <olegendo@gcc.gnu.org>
8259
8260         PR target/67061
8261         * config/sh/sh-protos.h (sh_find_set_of_reg): Simplfiy for-loop.
8262         Handle call insns.
8263
8264 2015-09-14  Chung-Lin Tang  <cltang@codesourcery.com>
8265
8266         * lto-wrapper.c (merge_and_complain): Add OPT_fdiagnostics_show_caret,
8267         OPT_fdiagnostics_show_option, OPT_fdiagnostics_show_location_, and
8268         OPT_fshow_column to handled saved option cases.
8269         (append_compiler_options): Do not skip the above added options.
8270
8271 2015-09-14  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8272
8273         PR target/63304
8274         * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Handle
8275         nopcrelative_literal_loads.
8276         (aarch64_classify_address): Likewise.
8277         (aarch64_constant_pool_reload_icode): Define.
8278         (aarch64_secondary_reload): Handle secondary reloads for
8279         literal pools.
8280         (aarch64_override_options): Handle nopcrelative_literal_loads.
8281         (aarch64_classify_symbol): Handle nopcrelative_literal_loads.
8282         * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>):
8283         Define.
8284         (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
8285         * config/aarch64/aarch64.opt (mpc-relative-literal-loads): New option.
8286         * config/aarch64/predicates.md (aarch64_constant_pool_symref): New
8287         predicate.
8288         * doc/invoke.texi (mpc-relative-literal-loads): Document.
8289
8290 2015-09-14  John David Anglin  <danglin@gcc.gnu.org>
8291
8292         PR middle-end/67401
8293         * optabs.c (expand_atomic_compare_and_swap): Move result of emitting
8294         sync_compare_and_swap_optab libcall to target_oval.
8295
8296 2015-09-14  Marek Polacek  <polacek@redhat.com>
8297
8298         * rtlanal.c (split_double): Cast to unsigned when shifting a negative
8299         value.
8300         * sched-int.h (UNKNOWN_DEP_COST): Likewise.
8301
8302 2015-09-11  Mark Wielaard  <mjw@redhat.com>
8303
8304         PR c/28901
8305         * toplev.c (check_global_declaration): Check and use
8306         warn_unused_const_variable.
8307         * doc/invoke.texi (Warning Options): Add -Wunused-const-variable.
8308         (-Wunused-variable): Remove non-constant. For C implies
8309         -Wunused-const-variable.
8310         (-Wunused-const-variable): New.
8311
8312 2015-09-14  Richard Biener  <rguenther@suse.de>
8313
8314         * doc/match-and-simplify.texi: Update for changed syntax
8315         of inner ifs and the new switch expression.
8316
8317 2015-09-14  Yuri Rumyantsev  <ysrumyan@gmail.com>
8318
8319         * config/i386/haswell.md: New file describing Haswell pipeline.
8320         * config/i386/i386.c (processor_alias_table): Use CPU_HASWELL for
8321         haswell-like processors.
8322         (ix86_reassociation_width): Increase reassociation width for 64-bit
8323         Haswell processor family.
8324         * config/i386/i386.md: Introduce haswell cpu and include new md file.
8325
8326 2015-09-14  Richard Biener  <rguenther@suse.de>
8327
8328         * doc/match-and-simplify.texi: Fixup some formatting issues
8329         and document the 's' flag.
8330
8331 2015-09-13  Olivier Hainque  <hainque@adacore.com>
8332             Eric Botcazou  <ebotcazou@adacore.com>
8333
8334         * config.gcc (visium-*-*): Enable --with-cpu option, accept gr5 and
8335         gr6 as possible values, defaulting to gr5.  Set target_cpu_default2.
8336         * config/visium/visium.h (OPTION_DEFAULT_SPECS): Define.
8337         (TARGET_CPU_gr5): Likewise.
8338         (TARGET_CPU_gr6): Likewise.
8339         (MULTILIB_DEFAULTS): Likewise.
8340         * config/visium/t-visium (MULTILIB_OPTIONS): Request distinct variants
8341         for mcpu=gr5 and mcpu=gr6.
8342         (MULTILIB_DIRNAMES): Adjust accordingly.
8343
8344 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8345
8346         * tree-ssa-loop-im.c (mem_ref_loc_p): Remove typedef.
8347         (mem_ref_p): Likewise.
8348         (outermost_indep_loop): Adjust.
8349         (mem_ref_in_stmt): Likewise.
8350         (determine_max_movement): Likewise.
8351         (mem_ref_alloc): Likewise.
8352         (record_mem_ref_loc): Likewise.
8353         (set_ref_stored_in_loop): Likewise.
8354         (mark_ref_stored): Likewise.
8355         (gather_mem_refs_stmt): Likewise.
8356         (mem_refs_may_alias_p): Likewise.
8357         (for_all_locs_in_loop): Likewise.
8358         (struct rewrite_mem_ref_loc): Likewise.
8359         (rewrite_mem_refs): Likewise.
8360         (struct first_mem_ref_loc_1): Likewise.
8361         (first_mem_ref_loc): Likewise.
8362         (struct sm_set_flag_if_changed): Likewise.
8363         (execute_sm_if_changed_flag_set): Likewise.
8364         (execute_sm): Likewise.
8365         (hoist_memory_references):
8366         (struct ref_always_accessed): Likewise.
8367         (ref_always_accessed_p): Likewise.
8368         (refs_independent_p): Likewise.
8369         (record_dep_loop): Likewise.
8370         (ref_indep_loop_p_1): Likewise.
8371         (ref_indep_loop_p_2): Likewise.
8372         (ref_indep_loop_p): Likewise.
8373         (can_sm_ref_p): Likewise.
8374         (find_refs_for_sm): Likewise.
8375         (tree_ssa_lim_finalize): Likewise.
8376
8377 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8378
8379         * dwarf2out.c (dw_attr_ref): Remove typedef.
8380         (dw_line_info_ref): Likewise.
8381         (pubname_ref): Likewise.
8382         (dw_ranges_ref): Likewise.
8383         (dw_ranges_by_label_ref): Likewise.
8384         (comdat_type_node_ref): Likewise.
8385         (get_AT): Adjust.
8386         (get_AT_low_pc): Likewise.
8387         (get_AT_hi_pc): Likewise.
8388         (get_AT_string): Likewise.
8389         (get_AT_flag): Likewise.
8390         (get_AT_unsigned): Likewise.
8391         (get_AT_ref): Likewise.
8392         (get_AT_file): Likewise.
8393         (remove_AT): Likewise.
8394         (print_die): Likewise.
8395         (check_die): Likewise.
8396         (die_checksum): Likewise.
8397         (attr_checksum_ordered): Likewise.
8398         (struct checksum_attributes): Likewise.
8399         (collect_checksum_attributes): Likewise.
8400         (die_checksum_ordered): Likewise.
8401         (same_die_p): Likewise.
8402         (is_declaration_die): Likewise.
8403         (clone_die): Likewise.
8404         (clone_as_declaration): Likewise.
8405         (copy_declaration_context): Likewise.
8406         (break_out_comdat_types): Likewise.
8407         (copy_decls_walk): Likewise.
8408         (output_location_lists): Likewise.
8409         (external_ref_hasher::hash): Likewise.
8410         (optimize_external_refs_1): Likewise.
8411         (build_abbrev_table): Likewise.
8412         (size_of_die): Likewise.
8413         (unmark_all_dies): Likewise.
8414         (size_of_pubnames): Likewise.
8415         (output_die_abbrevs): Likewise.
8416         (output_die): Likewise.
8417         (output_pubnames): Likewise.
8418         (add_ranges_num): Likewise.
8419         (add_ranges_by_labels): Likewise.
8420         (add_high_low_attributes): Likewise.
8421         (gen_producer_string): Likewise.
8422         (dwarf2out_set_name): Likewise.
8423         (new_line_info_table): Likewise.
8424         (prune_unused_types_walk_attribs): Likewise.
8425         (prune_unused_types_update_strings): Likewise.
8426         (prune_unused_types): Likewise.
8427         (resolve_addr): Likewise.
8428         (optimize_location_lists_1): Likewise.
8429         (index_location_lists): Likewise.
8430         (dwarf2out_finish): Likewise.
8431
8432 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8433
8434         * dwarf2cfi.c (dw_trace_info_ref): Remove typedef.
8435
8436 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8437
8438         * tree-vrp.c (struct assert_locus_d): Rename to assert_locus.
8439         (dump_asserts_for): Adjust.
8440         (register_new_assert_for): Likewise.
8441         (process_assert_insertions): Likewise.
8442         (insert_range_assertions): Likewise.
8443
8444 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8445
8446         * tree-ssa-ter.c (temp_expr_table_d): Rename to temp_expr_table
8447         and remove typedef.
8448         (new_temp_expr_table): Adjust.
8449         (free_temp_expr_table): Likewise.
8450         (version_to_be_replaced_p): Likewise.
8451         (make_dependent_on_partition): Likewise.
8452         (add_to_partition_kill_list): Likewise.
8453         (remove_from_partition_kill_list): Likewise.
8454         (add_dependence): Likewise.
8455         (finished_with_expr): Likewise.
8456         (process_replaceable): Likewise.
8457         (kill_expr): Likewise.
8458         (kill_virtual_exprs): Likewise.
8459         (mark_replaceable): Likewise.
8460         (find_replaceable_in_bb): Likewise.
8461         (find_replaceable_exprs): Likewise.
8462         (debug_ter): Likewise.
8463
8464 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8465
8466         * bt-load.c (struct btr_def_group): Rename from btr_def_group_s.
8467         (struct btr_user): Rename from btr_user_s.
8468         (struct btr_def): Rename from btr_def_s.
8469         (find_btr_def_group): Adjust.
8470         (add_btr_def): Likewise.
8471         (new_btr_user): Likewise.
8472         (note_other_use_this_block): Likewise.
8473         (compute_defs_uses_and_gen): Likewise.
8474         (link_btr_uses): Likewise.
8475         (build_btr_def_use_webs): Likewise.
8476         (block_at_edge_of_live_range_p): Likewise.
8477         (btr_def_live_range): Likewise.
8478         (combine_btr_defs): Likewise.
8479         (move_btr_def): Likewise.
8480         (migrate_btr_def): Likewise.
8481         (migrate_btr_defs): Likewise.
8482
8483 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8484
8485         * var-tracking.c (shared_hash_def): Rename to shared_hash.
8486         (shared_hash): Remove typedef.
8487         (struct dataflow_set): Adjust.
8488         (shared_hash_unshare): Likewise.
8489         (dataflow_set_merge): Likewise.
8490         (vt_initialize): Likewise.
8491         (vt_finalize): Likewise.
8492
8493 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8494
8495         * var-tracking.c (struct location_chain): Rename from
8496         location_chain_def.
8497         (struct variable_part): Adjust.
8498         (variable_htab_free): Likewise.
8499         (unshare_variable): Likewise.
8500         (get_init_value): Likewise.
8501         (get_addr_from_local_cache): Likewise.
8502         (drop_overlapping_mem_locs): Likewise.
8503         (val_reset): Likewise.
8504         (struct variable_union_info): Likewise.
8505         (variable_union): Likewise.
8506         (find_loc_in_1pdv): Likewise.
8507         (insert_into_intersection): Likewise.
8508         (intersect_loc_chains): Likewise.
8509         (canonicalize_loc_order_check): Likewise.
8510         (canonicalize_values_mark): Likewise.
8511         (canonicalize_values_star): Likewise.
8512         (canonicalize_vars_star): Likewise.
8513         (variable_merge_over_cur): Likewise.
8514         (remove_duplicate_values): Likewise.
8515         (variable_post_merge_new_vals): Likewise.
8516         (variable_post_merge_perm_vals): Likewise.
8517         (find_mem_expr_in_1pdv): Likewise.
8518         (dataflow_set_preserve_mem_locs): Likewise.
8519         (dataflow_set_remove_mem_locs): Likewise.
8520         (variable_part_different_p): Likewise.
8521         (onepart_variable_different_p): Likewise.
8522         (find_src_set_src): Likewise.
8523         (dump_var): Likewise.
8524         (set_slot_part): Likewise.
8525         (clobber_slot_part): Likewise.
8526         (delete_slot_part): Likewise.
8527         (vt_expand_var_loc_chain): Likewise.
8528         (emit_note_insn_var_location): Likewise.
8529         (vt_finalize): Likewise.
8530
8531 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8532
8533         * dse.c (store_info_t): Remove typedef.
8534         (group_info_t): Likewise.
8535         (const_group_info_t): Likewise.
8536         (deferred_change_t): Likewise.
8537         (get_group_info): Adjust.
8538         (free_store_info): Likewise.
8539         (canon_address): Likewise.
8540         (clear_rhs_from_active_local_stores): Likewise.
8541         (record_store): Likewise.
8542         (replace_read): Likewise.
8543         (check_mem_read_rtx): Likewise.
8544         (scan_insn): Likewise.
8545         (remove_useless_values): Likewise.
8546         (dse_step1): Likewise.
8547         (dse_step2_init): Likewise.
8548         (dse_step2_nospill): Likewise.
8549         (scan_stores_nospill): Likewise.
8550         (scan_reads_nospill): Likewise.
8551         (dse_step3_exit_block_scan): Likewise.
8552         (dse_step3): Likewise.
8553         (dse_step5_nospill): Likewise.
8554         (dse_step6): Likewise.
8555
8556 2015-09-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8557
8558         * alias.c (alias_set_entry_d): Rename to alias_set_entry.
8559         (alias_set_entry): Remove typedef.
8560         (alias_set_subset_of): Adjust.
8561         (alias_sets_conflict_p): Likewise.
8562         (init_alias_set_entry): Likewise.
8563         (get_alias_set): Likewise.
8564         (new_alias_set): Likewise.
8565         (record_alias_subset): Likewise.
8566
8567 2015-09-13  Gerald Pfeifer  <gerald@pfeifer.com>
8568
8569         * doc/install.texi (Downloading the source): Mark up
8570         contrib/download_prerequisites properly and drop leading "./".
8571
8572 2015-09-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8573
8574         * config/arc/arc.h: Remove define of STRUCT_VALUE.
8575         * config/lm32/lm32.h: Likewise.
8576         * config/mep/mep.h: Likewise.
8577         * config/visium/visium.h: Likewise.
8578         * system.h: Poison STRUCT_VALUE macro.
8579
8580 2015-09-12  John David Anglin  <danglin@gcc.gnu.org>
8581
8582         * config/pa/pa.c (pa_output_move_double): Enhance to handle HIGH
8583         CONSTANT_P operands.
8584
8585 2015-09-11  David S. Miller  <davem@davemloft.net>
8586
8587         * config/sparc/constraints.md: Make "U" constraint a real register
8588         constraint.
8589         * config/sparc/sparc.c (TARGET_LRA_P): Define.
8590         (D_MODES, DF_MODES): Add missing cast.
8591         (TF_MODES, TF_MODES_NO_S): Include T_MODE.
8592         (OF_MODES, OF_MODES_NO_S): Include O_MODE.
8593         (sparc_register_move_cost): Decrease Niagara/UltrsSPARC memory
8594         cost to 8.
8595         * config/sparc/sparc.h (PROMOTE_MODE): Define.
8596         * config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
8597         provide these insn when flag_pic.
8598
8599 2015-09-11  Jeff Law  <law@redhat.com>
8600
8601         PR tree-optimization/47679
8602         * tree-ssa-dom.c (struct cond_equivalence): Update comment.
8603         * tree-ssa-scopedtables.h (class const_and_copies): Prefix data
8604         member with m_.  Update inline member functions as necessary.  Add
8605         toplevel comment.
8606         * tree-ssa-scopedtables.c: Update const_and_copies's member
8607         functions to use m_ prefix to access the stack.
8608
8609 2015-09-11  Aditya Kumar  <aditya.k7@samsung.com>
8610
8611         * graphite-optimize-isl.c (disable_tiling): Remove.
8612         (get_schedule_for_band): Do not use disable_tiling.
8613         (get_prevector_map): Delete function.
8614         (enable_polly_vector): Remove.
8615         (get_schedule_for_band_list): Remove dead code.
8616
8617 2015-09-11  Aditya Kumar  <aditya.k7@samsung.com>
8618
8619         * graphite-optimize-isl.c (get_tile_map): Refactor.
8620         (get_schedule_for_band): Same.
8621         (getScheduleForBand): Same.
8622         (get_prevector_map): Same.
8623         (get_schedule_for_band_list): Same.
8624         (get_schedule_map): Same.
8625         (get_single_map): Same.
8626         (apply_schedule_map_to_scop): Same.
8627         (optimize_isl): Same.
8628
8629 2015-09-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
8630
8631         PR target/63304
8632         * config/aarch64/aarch.md (mov<mode>:GPF_F16): Use GPF_TF_F16.
8633         (movtf): Delete.
8634         * config/aarch64/iterators.md (GPF_TF_F16): New.
8635         (GPF_F16): Delete.
8636
8637 2015-09-10  Nathan Sidwell  <nathan@acm.org>
8638
8639         * config/nvptx/nvptx.c (nvptx_expand_call): Add spacing.
8640         (nvptx_reorg): Adjust comments.
8641
8642 2015-09-15  John David Anglin  <danglin@gcc.gnu.org>
8643
8644         PR bootstrap/67363
8645         * configure.ac: Check if setenv and unsetenv are declared.
8646         * configure: Rebuild.
8647         * config.in: Rebuild.
8648         * system.h: Declare setenv and unsetenv if not declared.
8649
8650 2015-09-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8651
8652         * config/rs6000/rs6000.c (swap_web_entry): Update preceding
8653         commentary to simplify permute mask adjustment equation.
8654         (special_handling_values): Add SH_VPERM.
8655         (const_load_sequence_p): New function.
8656         (insn_is_swappable_p): Add logic to recognize an UNSPEC_VPERM with
8657         the mask loaded from the constant pool.
8658         (adjust_vperm): New function.
8659         (handle_special_swappables): Call adjust_vperm.
8660         (dump_swap_insn_table): Handle SH_VPERM.
8661
8662 2015-09-10  H.J. Lu  <hongjiu.lu@intel.com>
8663
8664         * shrink-wrap.c (requires_stack_frame_p): Remove static.
8665         * shrink-wrap.h (requires_stack_frame_p): Put back.
8666
8667 2015-09-10  Richard Sandiford  <richard.sandiford@arm.com>
8668
8669         * reload1.c (elimination_costs_in_insn): Locally turn
8670         -Wmaybe-uninitialized into a warning.
8671
8672 2015-09-10  Segher Boessenkool  <segher@kernel.crashing.org>
8673
8674         * shrink-wrap.c (requires_stack_frame_p): Make static.
8675         (prepare_shrink_wrap): Likewise.
8676         (dup_block_and_redirect): Likewise.
8677         * shrink-wrap.h: Remove declarations of those functions.
8678
8679 2015-09-10  Mark Wielaard  <mjw@redhat.com>
8680
8681         * doc/invoke.texi (Wnonnull): Also warns when comparing against NULL.
8682
8683 2015-09-10  Oleg Endo  <olegendo@gcc.gnu.org>
8684
8685         PR target/67506
8686         * config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Add
8687         missing simplify_gen_subreg.
8688
8689 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8690
8691         * config/s390/s390.c (s390_contiguous_bitmask_vector_p): Reject if
8692         the vector element is bigger than 64 bit.
8693
8694 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8695
8696         * config/s390/vx-builtins.md ("vec_vmal<mode>", "vec_vmah<mode>")
8697         ("vec_vmalh<mode>"): Change mode iterator from VI_HW to VI_HW_QHS.
8698
8699 2015-09-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8700
8701         * config/s390/s390.c: Add V1TImode to constant pool modes.
8702
8703 2015-09-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8704
8705         PR target/67439
8706         * config/arm/arm.md (*arm32_movhf): Remove !arm_restrict_it from
8707         predicate.  Set predicable_short_it attr to "no".
8708
8709 2015-09-10  Jiong Wang  <jiong.wang@arm.com>
8710
8711         PR rtl-optimization/67421
8712         * expr.c (expand_expr_real_2): Cost instrcution sequences when doing
8713         left wide shift tranformation.
8714
8715 2015-09-10  Claudiu Zissulescu  <claziss@synopsys.com>
8716
8717         * common/config/arc/arc-common.c: Remove references to A5.
8718         * config/arc/arc-opts.h: Likewise.
8719         * config/arc/arc.c, config/arc/arc.h, config/arc/arc.md: Likewise.
8720         * config/arc/arc.opt, config/arc/constraints.md: Likewise.
8721         * config/arc/t-arc-newlib: Likewise.
8722
8723 2015-09-10  Claudiu Zissulescu <claziss@synopsys.com>
8724
8725         * config/arc/arc.md (length): Fix attribute length for conditional
8726         executed instructions with long immediate.
8727
8728 2015-09-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8729
8730         * config/aarch64/aarch64.md (*and<mode>3nr_compare0): Use logics_imm
8731         type for second alternative.
8732
8733 2015-09-10  Markus Trippelsdorf  <markus@trippelsdorf.de>
8734
8735         * doc/invoke.texi (Downloading GCC): Mention
8736         contrib/download_prerequisites script.
8737
8738 2015-09-10  Jakub Jelinek  <jakub@redhat.com>
8739
8740         PR c++/67523
8741         * gimplify.c (gimplify_omp_for): If inner stmt is not found
8742         for combined loop, assert seen_error () and return GS_ERROR.
8743
8744         PR middle-end/67521
8745         * gimplify.c (gimplify_omp_for): Don't call omp_add_variable
8746         if decl is already in outer->variables.
8747
8748         PR middle-end/67517
8749         * gimplify.c (gimplify_scan_omp_clauses): Instead of
8750         asserting that decl is not specified in octx->variables,
8751         break out of the loop if it is.
8752
8753         PR c++/67514
8754         * gimplify.c (gimplify_omp_for): For loop SIMD construct, if
8755         iterator is not explicitly determined, but is defined inside
8756         of the combined workshare region, handle it like if it has
8757         DECL_EXPR in OMP_FOR_PRE_BODY.
8758
8759 2015-09-09  Nathan Sidwell  <nathan@acm.org>
8760
8761         * config/nvptx/nvptx.md (call_operation): Move bound out of loop.
8762         (*cmp<mode>): Add assembler spacing.
8763         (setcc_int<mode>, set_cc_float<mode>): Likewise.
8764         * config/nvptx/nvptx.c (nvptx_option_override): Override debug
8765         level.
8766         (write_func_decl_from_insn): Refactor argument loops & comma emission.
8767         (nvptx_expand_call): Likewise.
8768         (nvptx_output_call_insn): Likewise.
8769         (nvptx_reorg_subreg): Add spacing.
8770
8771 2015-09-09  Marek Polacek  <polacek@redhat.com>
8772
8773         PR middle-end/67512
8774         * tree-ssa-uninit.c (pred_equal_p): Only call invert_tree_comparison
8775         for comparisons.
8776
8777 2015-09-09  Paolo Carlini  <paolo.carlini@oracle.com>
8778
8779         PR c++/53184
8780         * doc/invoke.texi ([Wsubobject-linkage]): Document.
8781
8782 2015-09-09  Tom de Vries  <tom@codesourcery.com>
8783
8784         * params-list.h: Add missing copyright notice.
8785
8786 2015-09-09  Nathan Sidwell  <nathan@acm.org>
8787
8788         * config/nvptx/nvptx.md (atomic_compare_and_swap<mode>): Use
8789         sel_truesi, not andsi.
8790
8791 2015-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8792
8793         * config/arm/arm.md (*subsi3_compare0): Rename to...
8794         (subsi3_compare0): ... This.
8795         (modsi3): New define_expand.
8796         * config/arm/arm.c (arm_new_rtx_costs, MOD case): Handle case
8797         when operand is power of 2.
8798
8799 2015-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8800
8801         * config/aarch64/aarch64.md (mod<mode>3): New define_expand.
8802         (*neg<mode>2_compare0): Rename to...
8803         (neg<mode>2_compare0): ... This.
8804         * config/aarch64/aarch64.c (aarch64_rtx_costs, MOD case):
8805         Move check for speed inside the if-then-elses.  Reflect
8806         CSNEG sequence in MOD by power of 2 case.
8807
8808 2015-09-09  Alan Modra  <amodra@gmail.com>
8809
8810         PR target/67378
8811         * config/rs6000/rs6000.c (rs6000_secondary_reload_gpr): Find
8812         reload replacement for PRE_MODIFY address reg.
8813
8814 2015-09-09  Sebastian Pop  <s.pop@samsung.com>
8815
8816         PR tree-optimization/53852
8817         * config.in: Regenerate.
8818         * configure: Regenerate.
8819         * configure.ac (HAVE_ISL_CTX_MAX_OPERATIONS): Detect.
8820         * graphite-optimize-isl.c (optimize_isl): Stop computation when
8821         PARAM_MAX_ISL_OPERATIONS is reached.
8822         * params.def (PARAM_MAX_ISL_OPERATIONS): Add.
8823         * graphite-dependences.c (extend_schedule): Remove gcc_asserts on
8824         result equal to isl_stat_ok as the status now can be isl_error_quota.
8825         (subtract_commutative_associative_deps): Same.
8826         (compute_deps): Same.
8827
8828 2015-09-08  Aditya Kumar  <hiraditya@msn.com>
8829             Sebastian Pop  <s.pop@samsung.com>
8830
8831         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
8832         Return the parameter if it was saved in corresponding
8833         parameter_rename_map of the region.
8834         (copy_def): Copy def from sese region to the newly created region.
8835         (copy_internal_parameters): Copy all the internal parameters defined
8836         within a region to the newly created region.
8837         (graphite_regenerate_ast_isl): Copy parameters to the new region before
8838         translating isl to gimple.
8839         * graphite-scop-detection.c (graphite_can_represent_loop): Bail out if
8840         the loop-nest does not have any data-references.
8841         (build_graphite_scops): Create a scop only when there is at least one
8842         loop inside it.
8843         (contains_only_close_phi_nodes): Deleted.
8844         (print_graphite_scop_statistics): Deleted
8845         (print_graphite_statistics): Deleted
8846         (limit_scops): Deleted.
8847         (build_scops): Removed call to limit_scops.
8848         * sese.c (new_sese): Construct.
8849         (free_sese): Destruct.
8850         (sese_add_exit_phis_edge): update_stmt after exit phi edge has been
8851         added.
8852         (set_rename): Pass sese region so that parameters inside the region can
8853         be added to its parameter_rename_map.
8854         (rename_uses): Pass sese region.
8855         (graphite_copy_stmts_from_block): Do not copy parameters that have been
8856         generated in the header of the scop. For each SSA_NAME in the
8857         parameter_rename_map rename its usage.
8858         (invariant_in_sese_p_rec): Return false if tree t is defined outside
8859         sese region.
8860         (scalar_evolution_in_region): If the tree t is invariant just return t.
8861         * sese.h: Added a parameter renamne map (parameter_rename_map_t) to
8862         struct sese to keep track of all the parameters which need renaming.
8863         * tree-data-ref.c (loop_nest_has_data_refs): Check if a loop nest has
8864         any data-refs.
8865         * tree-data-ref.h: Declaration of loop_nest_has_data_refs.
8866
8867 2015-09-08  Tom de Vries  <tom@codesourcery.com>
8868
8869         * Makefile.in (generated_files): Add params.list.
8870         (params.list, s-params.list): Add rule.
8871         * params.h (enum compiler_param): Include params-list.h.  Move define
8872         DEFPARAM, include params.def and undef DEFPARAM ...
8873         * params-list.h: ... here.  New file.
8874
8875 2015-09-08  David Malcolm  <dmalcolm@redhat.com>
8876
8877         * pretty-print.h (printer_fn): Fix typo in comment.
8878
8879 2015-09-07  Jeff Law  <law@redhat.com>
8880
8881         * tree-ssa-scopedtables.h (class const_and_copies): Fix comment typo.
8882
8883 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
8884
8885         * doc/sourcebuild.texi (arm_neon_fp16): Correct cross-reference.
8886         (arm_neon_fp16_ok): Document adding of -mfp16-format=ieee flag.
8887         (arm_neon_fp16_hw): New.
8888
8889 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
8890
8891         * fold-const.c (native_interpret_real): Fix HFmode for bigendian where
8892         UNITS_PER_WORD >= 4.
8893
8894 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
8895
8896         * config/aarch64/aarch64-simd.md (aarch64_simd_vec_unpacks_lo_<mode>,
8897         aarch64_simd_vec_unpacks_hi_<mode>): New insn.
8898         (vec_unpacks_lo_v4sf, vec_unpacks_hi_v4sf): Delete insn.
8899         (vec_unpacks_lo_<mode>, vec_unpacks_hi_<mode>): New expand.
8900         (aarch64_float_extend_lo_v2df): Rename to...
8901         (aarch64_float_extend_lo_<Vwide>): this, using VDF and so adding V4SF.
8902
8903         * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi): Add v8hf.
8904         (float_extend_lo): Add v4sf.
8905
8906         * config/aarch64/arm_neon.h (vcvt_f32_f16, vcvt_high_f32_f16): New.
8907         * config/aarch64/iterators.md (VQ_HSF): New iterator.
8908         (VWIDE, Vwtype, Vhalftype): Add V8HF, V4SF.
8909         (Vwide): New mode_attr.
8910
8911 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
8912
8913         * config/aarch64/aarch64-simd.md (aarch64_simd_dup<mode>,
8914         aarch64_dup_lane<mode>, aarch64_dup_lane_<vswap_width_name><mode>,
8915         aarch64_simd_vec_set<mode>, vec_set<mode>, vec_perm_const<mode>,
8916         vec_init<mode>, *aarch64_simd_ld1r<mode>, vec_extract<mode>): Add
8917         V4HF and V8HF variants to iterator.
8918
8919         * config/aarch64/aarch64.c (aarch64_evpc_dup): Add V4HF and V8HF cases.
8920
8921         * config/aarch64/iterators.md (VDQF_F16): New.
8922         (VSWAP_WIDTH, vswap_width_name): Add V4HF and V8HF cases.
8923
8924 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
8925
8926         * config/aarch64/arm_neon.h (vreinterpret_p8_f16, vreinterpret_p16_f16,
8927         vreinterpret_f16_f64, vreinterpret_f16_s8, vreinterpret_f16_s16,
8928         vreinterpret_f16_s32, vreinterpret_f16_s64, vreinterpret_f16_f32,
8929         vreinterpret_f16_u8, vreinterpret_f16_u16, vreinterpret_f16_u32,
8930         vreinterpret_f16_u64, vreinterpret_f16_p8, vreinterpret_f16_p16,
8931         vreinterpretq_f16_f64, vreinterpretq_f16_s8, vreinterpretq_f16_s16,
8932         vreinterpretq_f16_s32, vreinterpretq_f16_s64, vreinterpretq_f16_f32,
8933         vreinterpretq_f16_u8, vreinterpretq_f16_u16, vreinterpretq_f16_u32,
8934         vreinterpretq_f16_u64, vreinterpretq_f16_p8, vreinterpretq_f16_p16,
8935         vreinterpret_f32_f16, vreinterpret_f64_f16, vreinterpret_s64_f16,
8936         vreinterpret_u64_f16, vreinterpretq_u64_f16, vreinterpret_s8_f16,
8937         vreinterpret_s16_f16, vreinterpret_s32_f16, vreinterpret_u8_f16,
8938         vreinterpret_u16_f16, vreinterpret_u32_f16, vreinterpretq_p8_f16,
8939         vreinterpretq_p16_f16, vreinterpretq_f32_f16, vreinterpretq_f64_f16,
8940         vreinterpretq_s64_f16, vreinterpretq_s8_f16, vreinterpretq_s16_f16,
8941         vreinterpretq_s32_f16, vreinterpretq_u8_f16, vreinterpretq_u16_f16,
8942         vreinterpretq_u32_f16, vget_low_f16, vget_high_f16, vld1_dup_f16,
8943         vld1q_dup_f16): New.
8944
8945 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
8946
8947         * config/aarch64/aarch64-simd.md (aarch64_float_truncate_lo_v2sf):
8948         Reparameterize to...
8949         (aarch64_float_truncate_lo_<mode>): ...this, for both V2SF and V4HF.
8950         (aarch64_float_truncate_hi_v4sf): Reparameterize to...
8951         (aarch64_float_truncate_hi_<Vdbl>): ...this, for both V4SF and V8HF.
8952
8953         * config/aarch64/aarch64-simd-builtins.def (float_truncate_hi_): Add
8954         v8hf variant.
8955         (float_truncate_lo_): Use BUILTIN_VDF iterator.
8956
8957         * config/aarch64/arm_neon.h (vcvt_f16_f32, vcvt_high_f16_f32): New.
8958
8959         * config/aarch64/iterators.md (VDF, Vdtype): New.
8960         (VWIDE, Vmwtype): Add cases for V4HF and V2SF.
8961
8962 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
8963
8964         * config/aarch64/aarch64.c (aarch64_split_simd_combine): Add V4HFmode.
8965         * config/aarch64/aarch64-builtins.c (VAR13, VAR14): New.
8966         (aarch64_scalar_builtin_types, aarch64_init_simd_builtin_scalar_types):
8967         Add __builtin_aarch64_simd_hf.
8968         * config/aarch64/arm_neon.h (float16x4x2_t, float16x8x2_t,
8969         float16x4x3_t, float16x8x3_t, float16x4x4_t, float16x8x4_t,
8970         vcombine_f16, vst2_lane_f16, vst2q_lane_f16, vst3_lane_f16,
8971         vst3q_lane_f16, vst4_lane_f16, vst4q_lane_f16, vld2_f16, vld2q_f16,
8972         vld3_f16, vld3q_f16, vld4_f16, vld4q_f16, vld2_dup_f16, vld2q_dup_f16,
8973         vld3_dup_f16, vld3q_dup_f16, vld4_dup_f16, vld4q_dup_f16,
8974         vld2_lane_f16, vld2q_lane_f16, vld3_lane_f16, vld3q_lane_f16,
8975         vld4_lane_f16, vld4q_lane_f16, vst2_f16, vst2q_f16, vst3_f16,
8976         vst3q_f16, vst4_f16, vst4q_f16, vcreate_f16): New.
8977
8978         * config/aarch64/iterators.md (VALLDIF, Vtype, Vetype, Vbtype,
8979         V_cmp_result, v_cmp_result): Add cases for V4HF and V8HF.
8980         (VDC, Vdbl): Add V4HF.
8981
8982 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
8983
8984         * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p): Support
8985         V4HFmode and V8HFmode.
8986         (aarch64_split_simd_move): Add case for V8HFmode.
8987         * config/aarch64/aarch64-builtins.c (v4hf_UP, v8hf_UP): Define.
8988         (aarch64_simd_builtin_std_type): Handle HFmode.
8989         (aarch64_init_simd_builtin_types): Include Float16x4_t and Float16x8_t.
8990
8991         * config/aarch64/aarch64-simd.md (mov<mode>, aarch64_get_lane<mode>,
8992         aarch64_ld1<VALL:mode>, aarch64_st1<VALL:mode): Use VALL_F16 iterator.
8993         (aarch64_be_ld1<mode>, aarch64_be_st1<mode>): Use VALLDI_F16 iterator.
8994
8995         * config/aarch64/aarch64-simd-builtin-types.def: Add Float16x4_t,
8996         Float16x8_t.
8997
8998         * config/aarch64/aarch64-simd-builtins.def (ld1, st1): Use VALL_F16.
8999         * config/aarch64/arm_neon.h (float16x4_t, float16x8_t, float16_t):
9000         New typedefs.
9001         (vget_lane_f16, vgetq_lane_f16, vset_lane_f16, vsetq_lane_f16,
9002         vld1_f16, vld1q_f16, vst1_f16, vst1q_f16, vst1_lane_f16,
9003         vst1q_lane_f16): New.
9004         * config/aarch64/iterators.md (VD, VQ, VQ_NO2E): Add vectors of HFmode.
9005         (VALLDI_F16, VALL_F16): New.
9006         (Vmtype, VEL, VCONQ, VHALF, V_TWO_ELEM, V_THREE_ELEM, V_FOUR_ELEM, q):
9007         Add cases for V4HF and V8HF.
9008         (VDBL, VRL2, VRL3, VRL4): Add V4HF case.
9009
9010 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
9011
9012         * config/arm/arm-builtins.c (VAR11, VAR12): New.
9013         * config/arm/arm_neon_builtins.def (vcombine, vld2_dup, vld3_dup,
9014         vld4_dup): Add v4hf variant.
9015         (vget_high, vget_low): Add v8hf variant.
9016         (vld1, vst1, vst1_lane, vld2, vld2_lane, vst2, vst2_lane, vld3,
9017         vld3_lane, vst3, vst3_lane, vld4, vld4_lane, vst4, vst4_lane): Add
9018         v4hf and v8hf variants.
9019
9020         * config/arm/iterators.md (VD_LANE, VD_RE, VQ2, VQ_HS): New.
9021         (VDX): Add V4HF.
9022         (V_DOUBLE): Add case for V4HF.
9023         (VQX): Add V8HF.
9024         (V_HALF): Add case for V8HF.
9025         (VDQX): Add V4HF, V8HF.
9026         (V_elem, V_two_elem, V_three_elem, V_four_elem, V_cmp_result,
9027         V_uf_sclr, V_sz_elem, V_mode_nunits, q): Add cases for V4HF & V8HF.
9028
9029         * config/arm/neon.md (vec_set<mode>internal, vec_extract<mode>,
9030         neon_vget_lane<mode>_sext_internal, neon_vget_lane<mode>_zext_internal,
9031         vec_load_lanesoi<mode>, neon_vld2<mode>, vec_store_lanesoi<mode>,
9032         neon_vst2<mode>, vec_load_lanesci<mode>, neon_vld3<mode>,
9033         neon_vld3qa<mode>, neon_vld3qb<mode>, vec_store_lanesci<mode>,
9034         neon_vst3<mode>, neon_vst3qa<mode>, neon_vst3qb<mode>,
9035         vec_load_lanesxi<mode>, neon_vld4<mode>, neon_vld4qa<mode>,
9036         neon_vld4qb<mode>, vec_store_lanesxi<mode>, neon_vst4<mode>,
9037         neon_vst4qa<mode>, neon_vst4qb<mode>): Change VQ iterator to VQ2.
9038
9039         (neon_vcreate, neon_vreinterpretv8qi<mode>,
9040         neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
9041         neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>):
9042         Change VDX to VD_RE.
9043
9044         (neon_vld2_lane<mode>, neon_vst2_lane<mode>, neon_vld3_lane<mode>,
9045         neon_vst3_lane<mode>, neon_vld4_lane<mode>, neon_vst4_lane<mode>):
9046         Change VD iterator to VD_LANE, and VMQ iterator to VQ_HS.
9047
9048         * config/arm/arm_neon.h (float16x4x2_t, float16x8x2_t, float16x4x3_t,
9049         float16x8x3_t, float16x4x4_t, float16x8x4_t, vcombine_f16,
9050         vget_high_f16, vget_low_f16, vld1_f16, vld1q_f16, vst1_f16, vst1q_f16,
9051         vst1_lane_f16, vst1q_lane_f16, vld2_f16, vld2q_f16, vld2_lane_f16,
9052         vld2q_lane_f16, vld2_dup_f16, vst2_f16, vst2q_f16, vst2_lane_f16,
9053         vst2q_lane_f16, vld3_f16, vld3q_f16, vld3_lane_f16, vld3q_lane_f16,
9054         vld3_dup_f16, vst3_f16, vst3q_f16, vst3_lane_f16, vst3q_lane_f16,
9055         vld4_f16, vld4q_f16, vld4_lane_f16, vld4q_lane_f16, vld4_dup_f16,
9056         vst4_f16, vst4q_f16, vst4_lane_f16, vst4q_lane_f16): New.
9057
9058 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
9059
9060         * config/arm/arm_neon.h (vgetq_lane_f16, vsetq_lane_f16, vld1q_lane_f16,
9061         vld1q_dup_f16, vreinterpretq_p8_f16, vreinterpretq_p16_f16,
9062         vreinterpretq_f16_p8, vreinterpretq_f16_p16, vreinterpretq_f16_f32,
9063         vreinterpretq_f16_p64, vreinterpretq_f16_p128, vreinterpretq_f16_s64,
9064         vreinterpretq_f16_u64, vreinterpretq_f16_s8, vreinterpretq_f16_s16,
9065         vreinterpretq_f16_s32, vreinterpretq_f16_u8, vreinterpretq_f16_u16,
9066         vreinterpretq_f16_u32, vreinterpretq_f32_f16, vreinterpretq_p64_f16,
9067         vreinterpretq_p128_f16, vreinterpretq_s64_f16, vreinterpretq_u64_f16,
9068         vreinterpretq_s8_f16, vreinterpretq_s16_f16, vreinterpretq_s32_f16,
9069         vreinterpretq_u8_f16, vreinterpretq_u16_f16, vreinterpretq_u32_f16):
9070         New.
9071
9072 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
9073
9074         * config/arm/arm.h (VALID_NEON_QREG_MODE): Add V8HFmode.
9075
9076         * config/arm/arm.c (arm_vector_mode_supported_p): Support V8HFmode.
9077
9078         * config/arm/arm-builtins.c (v8hf_UP): New.
9079         (arm_init_simd_builtin_types): Initialise Float16x8_t.
9080
9081         * config/arm/arm-simd-builtin-types.def (Float16x8_t): New.
9082
9083         * config/arm/arm_neon.h (float16x8_t): New typedef.
9084
9085 2015-09-08  Alan Lawrence  <alan.lawrence@arm.com>
9086
9087         * config/arm/arm_neon.h (float16_t, vget_lane_f16, vset_lane_f16,
9088         vcreate_f16, vld1_lane_f16, vld1_dup_f16, vreinterpret_p8_f16,
9089         vreinterpret_p16_f16, vreinterpret_f16_p8, vreinterpret_f16_p16,
9090         vreinterpret_f16_f32, vreinterpret_f16_p64, vreinterpret_f16_s64,
9091         vreinterpret_f16_u64, vreinterpret_f16_s8, vreinterpret_f16_s16,
9092         vreinterpret_f16_s32, vreinterpret_f16_u8, vreinterpret_f16_u16,
9093         vreinterpret_f16_u32, vreinterpret_f32_f16, vreinterpret_p64_f16,
9094         vreinterpret_s64_f16, vreinterpret_u64_f16, vreinterpret_s8_f16,
9095         vreinterpret_s16_f16, vreinterpret_s32_f16, vreinterpret_u8_f16,
9096         vreinterpret_u16_f16, vreinterpret_u32_f16): New.
9097
9098 2015-09-07  Ilya Verbin  <ilya.verbin@intel.com>
9099
9100         * config/i386/intelmic-mkoffload.c (prepare_target_image): Handle all
9101         non-alphanumeric characters in the symbol name.
9102
9103 2015-09-07  Marek Polacek  <polacek@redhat.com>
9104
9105         PR inline-asm/67448
9106         * gimplify.c (gimplify_asm_expr): Don't allow MODIFY_EXPR as
9107         a memory input.
9108
9109 2015-09-07  Marek Polacek  <polacek@redhat.com>
9110
9111         * system.h (INTTYPE_MINIMUM): Rewrite to avoid shift warning.
9112
9113 2015-09-04  Paolo Bonzini  <bonzini@gnu.org>
9114
9115         * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Do
9116         not warn.
9117
9118 2015-09-04  Jakub Jelinek  <jakub@redhat.com>
9119
9120         PR middle-end/67452
9121         * tree-ssa-live.c: Include cfgloop.h.
9122         (remove_unused_locals): Clear loop->simduid if simduid is about
9123         to be removed from cfun->local_decls.
9124
9125 2015-09-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
9126
9127         PR target/65210
9128         * config/avr/avr.c (avr_eval_addr_attrib): Look for io_low
9129         attribute as well.
9130
9131 2015-09-04  Tom de Vries  <tom@codesourcery.com>
9132
9133         * doc/invoke.texi (@item -ftrapv, @item -fwrapv): Document interaction.
9134
9135 2015-09-04  Jeff Law  <law@redhat.com>
9136
9137         * tree-ssa-scopedtables.c (const_and_copies::const_and_copies): Remove
9138         unnecessary constructor.  It's now trivial and implemented inside...
9139         * tree-ssa-scopedtables.h (const_and_copies): Implement trivial
9140         constructor.  Add comments to various methods.  Remove unused
9141         private fields.
9142         * tree-ssa-dom.c (pass_dominator::execute): Corresponding changes.
9143         * tree-vrp.c (identify_jump_threads): Likewise.
9144         * tree-ssa-threadedge.c (thread_through_normal_block): Fix minor
9145         indentation issues.
9146         (thread_across_edge): Similarly.
9147         (record_temporary_equivalences_from_stmts_at_dest): Remove unused
9148         arguments in constructor call.
9149
9150 2015-09-04  Jonas Hahnfeld  <Hahnfeld@itc.rwth-aachen.de>
9151
9152         * config/i386/intelmic-mkoffload.c (prepare_target_image): Fix if the
9153         temp path contains a '-'.
9154
9155 2015-09-04  Andrey Turetskiy  <andrey.turetskiy@intel.com>
9156             Petr Murzin  <petr.murzin@intel.com>
9157             Kirill Yukhin  <kirill.yukhin@intel.com>
9158
9159         * config/i386/i386-builtin-types.def
9160         (VOID_PFLOAT_HI_V8DI_V16SF_INT): New.
9161         (VOID_PDOUBLE_QI_V16SI_V8DF_INT): Ditto.
9162         (VOID_PINT_HI_V8DI_V16SI_INT): Ditto.
9163         (VOID_PLONGLONG_QI_V16SI_V8DI_INT): Ditto.
9164         * config/i386/i386.c
9165         (ix86_builtins): Add IX86_BUILTIN_SCATTERALTSIV8DF,
9166         IX86_BUILTIN_SCATTERALTDIV16SF, IX86_BUILTIN_SCATTERALTSIV8DI,
9167         IX86_BUILTIN_SCATTERALTDIV16SI.
9168         (ix86_init_mmx_sse_builtins): Define __builtin_ia32_scatteraltsiv8df,
9169         __builtin_ia32_scatteraltdiv8sf, __builtin_ia32_scatteraltsiv8di,
9170         __builtin_ia32_scatteraltdiv8si.
9171         (ix86_expand_builtin): Handle IX86_BUILTIN_SCATTERALTSIV8DF,
9172         IX86_BUILTIN_SCATTERALTDIV16SF, IX86_BUILTIN_SCATTERALTSIV8DI,
9173         IX86_BUILTIN_SCATTERALTDIV16SI.
9174         (ix86_vectorize_builtin_scatter): New.
9175         (TARGET_VECTORIZE_BUILTIN_SCATTER): Define as
9176         ix86_vectorize_builtin_scatter.
9177
9178 2015-09-04  Andrey Turetskiy  <andrey.turetskiy@intel.com>
9179             Petr Murzin  <petr.murzin@intel.com>
9180             Kirill Yukhin  <kirill.yukhin@intel.com>
9181
9182         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_SCATTER): New.
9183         * doc/tm.texi: Regenerate.
9184         * target.def: Add scatter builtin.
9185         * tree-vectorizer.h: Rename gather_p to gather_scatter_p and use it
9186         for loads/stores in case of gather/scatter accordingly.
9187         (STMT_VINFO_GATHER_SCATTER_P(S)): Use it instead of
9188         STMT_VINFO_GATHER_P(S).
9189         (vect_check_gather): Rename to ...
9190         (vect_check_gather_scatter): this.
9191         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Use
9192         STMT_VINFO_GATHER_SCATTER_P instead of STMT_VINFO_SCATTER_P.
9193         (vect_check_gather_scatter): Use it instead of vect_check_gather.
9194         (vect_analyze_data_refs): Add gatherscatter enum and maybe_scatter
9195         variable and new checkings for it accordingly.
9196         * tree-vect-stmts.c
9197         (STMT_VINFO_GATHER_SCATTER_P(S)): Use it instead of
9198         STMT_VINFO_GATHER_P(S).
9199         (vect_check_gather_scatter): Use it instead of vect_check_gather.
9200         (vectorizable_store): Add checkings for STMT_VINFO_GATHER_SCATTER_P.
9201
9202 2015-09-03  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
9203
9204         * config/rs6000/altivec.md (altivec_vperm_v8hiv16qi): New
9205         define_insn.
9206         (mulv16qi3): New define_expand.
9207
9208 2015-09-03  Martin Sebor  <msebor@redhat.com>
9209
9210         PR c/66516
9211         * doc/extend.texi (Other Builtins): Document when the address
9212         of a built-in function can be taken.
9213
9214 2015-09-03  Richard Biener  <rguenther@suse.de>
9215
9216         * dwarf2out.c (flush_limbo_die_list): Split out from ...
9217         (dwarf2out_early_finish): ... here.
9218         (dwarf2out_finish): Do not call dwarf2out_early_finish but
9219         flush_limbo_die_list.  Assert we have no deferred asm names.
9220
9221 2015-09-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9222
9223         * optabs.c (expand_binop): Don't create a broadcast vector with a
9224         source element wider than the inner mode.
9225
9226 2015-09-03  Richard Biener  <rguenther@suse.de>
9227
9228         * varasm.c (output_constant): Use fold_convert instead of
9229         wide_int_to_tree.
9230
9231 2015-09-03  Tom de Vries  <tom@codesourcery.com>
9232
9233         PR tree-optimization/65637
9234         * omp-low.c (expand_omp_for_static_chunk): Handle case that
9235         fin_bb has 2 predecessors.
9236
9237 2015-09-03  Tom de Vries  <tom@codesourcery.com>
9238
9239         PR tree-optimization/65637
9240         * omp-low.c (find_phi_with_arg_on_edge): New function.
9241         (expand_omp_for_static_chunk): Fix inner loop phi.
9242
9243 2015-09-03  Tom de Vries  <tom@codesourcery.com>
9244
9245         PR tree-optimization/65637
9246         * omp-low.c (expand_omp_for_static_chunk): Fix gcc_assert for the case
9247         that head is NULL.
9248
9249 2015-09-03  Tom de Vries  <tom@codesourcery.com>
9250
9251         * omp-low.c (expand_omp_for_static_chunk): Handle simple latch bb.
9252
9253 2015-09-03  Tom de Vries  <tom@codesourcery.com>
9254
9255         * doc/invoke.texi (parloops-chunk-size): Add item.
9256         * params.def (PARAM_PARLOOPS_CHUNK_SIZE): Add DEFPARAM.
9257         * tree-parloops.c: Include params.h.
9258         (create_parallel_loop): Set chunk-size of schedule of omp-for loop, if
9259         param parloops-chunk-size is used.
9260
9261 2015-09-03  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
9262
9263         PR middle-end/67351
9264         * fold-const.c (fold_binary_loc) : Move
9265         Transform (x >> c) << c into x & (-1<<c) or
9266         transform (x << c) >> c into x & ((unsigned)-1 >> c) for unsigned
9267         types using simplify and match.
9268         * match.pd (lshift (rshift @0 INTEGER_CST@1) @1) : New simplifier.
9269         (rshift (lshift @0 INTEGER_CST@1) @1) : New Simplifier
9270
9271 2015-09-03  Richard Biener  <rguenther@suse.de>
9272
9273         PR ipa/66705
9274         * tree-ssa-structalias.c (ctor_for_analysis): New function.
9275         (create_variable_info_for_1): Use ctor_for_analysis instead
9276         of get_constructor.
9277         (create_variable_info_for): Likewise.
9278
9279 2015-09-02  Charles Baylis  <charles.baylis@linaro.org>
9280
9281         PR ipa/67280
9282         * cgraphunit.c (cgraph_node::create_wrapper): Set can_throw_external
9283         in new callgraph edge.
9284
9285 2015-09-02  Christophe Lyon  <christophe.lyon@linaro.org>
9286
9287         PR target/59810
9288         PR target/63652
9289         PR target/63653
9290         * config/aarch64/aarch64-simd.md
9291         (aarch64_ld<VSTRUCT:nregs><VQ:mode>): Call
9292         gen_aarch64_simd_ld<VSTRUCT:nregs><VQ:mode>.
9293         (aarch64_st<VSTRUCT:nregs><VQ:mode>): Call
9294         gen_aarch64_simd_st<VSTRUCT:nregs><VQ:mode>.
9295
9296 2015-09-02  Alan Modra  <amodra@gmail.com>
9297
9298         * config/rs6000/sysv4le.h (LINK_TARGET_SPEC): Don't define.
9299         * config/rs6000/sysv4.h (LINK_TARGET_SPEC): Likewise.
9300         (LINK_SPEC, SUBTARGET_EXTRA_SPECS): Delete link_target.
9301
9302 2015-09-02  Alan Modra  <amodra@gmail.com>
9303
9304         PR target/67417
9305         * config/rs6000/predicates.md (current_file_function_operand): Don't
9306         return true for weak symbols.
9307         * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Likewise.
9308
9309 2015-09-01  Matthew Fortune  <matthew.fortune@imgtec.com>
9310             Andrew Bennett  <andrew.bennett@imgtec.com>
9311
9312         * config/mips/mips-opts.h (mips_cb_setting): New enum.
9313         * config/mips/mips-protos.h: Add definitions for
9314         mips_output_jump and mips_output_equal_conditional_branch
9315         * config/mips/mips.c (MIPS_JR): Change to support the
9316         JIC instruction.
9317         (mips_emit_compare): Add support for the MIPS R6 conditional
9318         compact branches.
9319         (mips_process_sync_loop): Likewise.
9320         (mips_output_order_conditional_branch): Likewise.
9321         (mips16_build_call_stub): Change MIPS_CALL to
9322         mips_output_jump.
9323         (mips_print_operand_punctuation): Update 's' case to only
9324         apply to micromips r2.
9325         (mips_adjust_insn_length): Add support for forbidden slot
9326         hazards.
9327         (mips_avoid_hazard): Likewise.
9328         (mips_reorg_process_insns): Likewise.
9329         (mips_output_jump): New function.
9330         (mips_output_equal_conditional_branch): Likewise.
9331         (mips_output_conditional_branch): Use jrc/bc if compact
9332         branch support is enabled.  Ensure the forbidden slots
9333         between the two branch instructions is filled with a nop.
9334         (mips_option_override): Add support to process the compact
9335         branch option and set the correct defaults.  Prevent
9336         non-explict relocs being using for MIPS R6.
9337         (mips_trampoline_init): Add compact branch support.
9338         (mips_mult_zero_zero_cost): Allow zero initialisation of
9339         accumulators with TARGET_DSP.
9340         * config/mips/mips.h (TARGET_CB_NEVER): New define.
9341         (TARGET_CB_MAYBE): New define.
9342         (TARGET_CB_ALWAYS): New define.
9343         (ISA_HAS_DELAY_SLOTS): New define.
9344         (ISA_HAS_COMPACT_BRANCHES): New define.
9345         (ISA_HAS_JRC): New define.
9346         (MIPS_BRANCH_C): New define.
9347         (MIPS_CALL): Removed.
9348         (MICROMIPS_J): Removed.
9349         * config/mips/mips.md (compact_form): New attr.
9350         (hazard): Add support for forbidden slots.
9351         (define_delay): Add support for compact branches.
9352         (*branch_order<mode>): Likewise.
9353         (*branch_order<mode>_inverted): Likewise.
9354         (*branch_equality<mode>): Likewise.
9355         (*branch_equality<mode>_inverted): Likewise.
9356         (*jump_absolute): Likewise.
9357         (*jump_pic): Likewise.
9358         (indirect_jump): Use mips_output_jump to produce assembly output.
9359         (tablejump_<mode>"): Likewise.
9360         (*<optab>"): Likewise.
9361         (<optab>_internal): Likewise.
9362         (sibcall_internal): Likewise.
9363         (sibcall_value_internal): Likewise.
9364         (sibcall_value_multiple_internal): Likewise.
9365         (call_internal): Likewise.
9366         (call_split): Likewise.
9367         (call_internal_direct): Likewise.
9368         (call_direct_split): Likewise.
9369         (call_value_internal): Likewise.
9370         (call_value_split): Likewise.
9371         (call_value_internal_direct): Likewise.
9372         (call_value_direct_split): Likewise.
9373         (call_value_multiple_internal): Likewise.
9374         (call_value_multiple_split): Likewise.
9375         (mips_get_fcsr_mips16_<mode>): Likewise.
9376         (mips_set_fcsr_mips16_<mode>): Likewise.
9377         (tls_get_tp_mips16_<mode>): Likewise.
9378         * config/mips/mips.opt: Add -mcompact-branches option.
9379         * config/mips/predicates.md (order_operator): Ensure the
9380         conditional compact branches are only used if the ISA them.
9381         * doc/invoke.texi: Document -mcompact-branches option.
9382
9383 2015-09-01  Vladimir Makarov  <vmakarov@redhat.com>
9384
9385         PR target/61578
9386         * lra-lives.c (process_bb_lives): Process move pseudos with the
9387         same value for copies and preferences
9388         * lra-constraints.c (match_reload): Create match reload pseudo
9389         with the same value from single dying input pseudo.
9390
9391 2015-09-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
9392
9393         PR target/67405
9394         * tree-chkp.c (chkp_find_bound_slots_1): Add NULL check.
9395
9396 2015-09-01  Aldy Hernandez  <aldyh@redhat.com>
9397
9398         * trans-mem.c: Add contributed-by.
9399         * trans-mem.h: Same.
9400
9401 2015-09-01  Richard Biener  <rguenther@suse.de>
9402
9403         * expr.c (expand_expr_real_1): For expanding TERed defs
9404         set the current location to that of the def if not UNKNOWN.
9405
9406 2015-09-01  David Sherwood  <david.sherwood@arm.com>
9407
9408         * genmodes.c: Add CONST_MODE_UNIT_SIZE modifier.
9409
9410 2015-09-01  Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9411
9412         * ifcvt.c (struct noce_if_info): Add then_simple, else_simple,
9413         then_cost, else_cost fields.  Change branch_cost field to unsigned int.
9414         (end_ifcvt_sequence): Call set_used_flags on each insn in the sequence.
9415         Include rtl-iter.h.
9416         (noce_simple_bbs): New function.
9417         (noce_try_move): Bail if basic blocks are not simple.
9418         (noce_try_store_flag): Likewise.
9419         (noce_try_store_flag_constants): Likewise.
9420         (noce_try_addcc): Likewise.
9421         (noce_try_store_flag_mask): Likewise.
9422         (noce_try_cmove): Likewise.
9423         (noce_try_minmax): Likewise.
9424         (noce_try_abs): Likewise.
9425         (noce_try_sign_mask): Likewise.
9426         (noce_try_bitop): Likewise.
9427         (bbs_ok_for_cmove_arith): New function.
9428         (noce_emit_all_but_last): Likewise.
9429         (noce_emit_insn): Likewise.
9430         (noce_emit_bb): Likewise.
9431         (noce_try_cmove_arith): Handle non-simple basic blocks.
9432         (insn_valid_noce_process_p): New function.
9433         (contains_mem_rtx_p): Likewise.
9434         (bb_valid_for_noce_process_p): Likewise.
9435         (noce_process_if_block): Allow non-simple basic blocks
9436         where appropriate.
9437
9438 2015-08-31  Alan Lawrence  <alan.lawrence@arm.com>
9439
9440         * tree-ssa-dom.c (record_equivalences_from_phis,
9441         record_equivalences_from_stmt, optimize_stmt): Use dom_valueize.
9442         (lookup_avail_expr): Likewise, and remove comment and unused temp.
9443
9444 2015-09-01  Nick Clifton  <nickc@redhat.com>
9445
9446         * config/msp430/msp430.opt (mcpu): Fix typo.
9447
9448 2015-09-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9449
9450         * config/aarch64/aarch64.c (aarch64_set_current_function):
9451         Re-layout any vector parameters have non-simd layout.
9452         * config/aarch64/aarch64-builtins.c (aarch64_relayout_simd_param):
9453         Delete.
9454         (aarch64_simd_expand_args): Delete call to the above.
9455
9456 2015-08-31  Mike Frysinger  <vapier@gentoo.org>
9457
9458         * doc/invoke.texi (asan-stack): Add space before option.
9459
9460 2015-08-31  Marc Glisse  <marc.glisse@inria.fr>
9461
9462         * tree.h (zerop): New function.
9463         * tree.c (zerop): Likewise.
9464         (element_precision): Handle expressions.
9465         * match.pd (define_predicates): Add zerop.
9466         (x <= +Inf): Fix comment.
9467         (abs (x) == 0, A & C == C, A & C != 0): Converted from ...
9468         * fold-const.c (fold_binary_loc): ... here. Remove.
9469
9470 2015-08-31  Richard Biener  <rguenther@suse.de>
9471
9472         PR middle-end/67381
9473         * genmatch.c (dt_node::gen_kids): Also treat matches as barrier.
9474
9475 2015-08-31  Marc Glisse  <marc.glisse@inria.fr>
9476
9477         * match.pd (SIN, COS, TAN, COSH): Reorder for consistency.
9478         (CEXPI): New operator list.
9479         (real (conj (x)), imag (conj (x)), real (x +- y), real (cexpi (x)),
9480         imag (cexpi (x)), conj (conj (x)), conj (complex (x, y))):
9481         Converted from ...
9482         * fold-const.c (fold_unary_loc, fold_binary_loc): ... here. Remove.
9483
9484 2015-08-31  Tom de Vries  <tom@codesourcery.com>
9485
9486         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt)
9487         (find_uses_to_rename_bb, find_uses_to_rename): Add and handle use_flags
9488         parameter.
9489         (find_uses_to_rename_def, find_uses_to_rename_in_loop): New function.
9490         (rewrite_into_loop_closed_ssa_1): New function, factored out of ...
9491         (rewrite_into_loop_closed_ssa): ... here.
9492         (replace_uses_in_dominated_bbs): Remove function.
9493         (rewrite_virtuals_into_loop_closed_ssa): Reimplement using
9494         rewrite_into_loop_closed_ssa_1.
9495
9496 2015-08-31  Michael Matz  <matz@suse.de>
9497
9498         * cfganal.c (pre_and_rev_post_order_compute_fn): Correctly
9499         enter entry and exit blocks for reverse post order.
9500
9501 2015-08-31  Richard Biener  <rguenther@suse.de>
9502
9503         * lto-streamer.h (lto_location_cache::cached_location::sysp): Add.
9504         (lto_location_cache::current_sysp): Likewise.
9505         (output_block::current_sysp): Likewise.
9506         * lto-streamer-in.c (lto_location_cache::cmp_loc): Compare sysp.
9507         (lto_location_cache::apply_location_cache): Properly record
9508         system header locations.
9509         (lto_location_cache::input_location): Input whether a file
9510         is a system header.
9511         * lto-streamer-out.c (lto_output_location): Stream whether a file
9512         is a system header.
9513
9514 2015-08-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9515
9516         PR bootstrap/67363
9517         * gcc.c (env_manager::xput): Replace strndup by xstrndup.
9518
9519 2015-08-31  Tom de Vries  <tom@codesourcery.com>
9520
9521         * tree-ssa-loop-manip.c (find_uses_to_rename_use)
9522         (find_uses_to_rename_stmt, find_uses_to_rename_bb, find_uses_to_rename):
9523         Improve function header comments.
9524
9525 2015-08-30  Michael Collison  <michael.collison@linaro.org>
9526
9527         PR other/67320
9528         * doc.md.texi: Rename [su]sum_widen to widen_[su]sum to reflect correct
9529         standard names
9530
9531 2015-08-30  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9532
9533         * config/rs6000/rs6000.c (swap_web_entry): Enlarge
9534         special_handling bitfield.
9535         (special_handling_values): Add SH_XXPERMDI and SH_CONCAT.
9536         (rtx_is_swappable_p): Add handling for vec_select/vec_concat form
9537         that represents a general xxpermdi.
9538         (insn_is_swappable_p): Add handling for vec_concat of two
9539         doublewords, which maps to a specific xxpermdi.
9540         (adjust_xxpermdi): New function.
9541         (adjust_concat): Likewise.
9542         (handle_special_swappables): Call adjust_xxpermdi and
9543         adjust_concat.
9544         (dump_swap_insn_table): Handle SH_XXPERMDI and SH_CONCAT.
9545
9546 2015-08-30  Rich Felker <dalias@libc.org>
9547
9548         * config.gcc (supported_defaults): Handle sh[123456ble]*-*-*
9549         case instead of sh[123456ble]-*-*.
9550
9551 2015-08-29  Anatoly Sokolov  <aesok@post.ru>
9552
9553         * ira.c (print_unform_and_important_classes,
9554         print_translated_classes): Remove reg_class_names static array.
9555         (print_unform_and_important_classes): Rename to ...
9556         (print_uniform_and_important_classes): ... this.
9557         (ira_debug_allocno_classes): Update accordingly.
9558
9559 2015-08-29  Tom de Vries  <tom@codesourcery.com>
9560
9561         PR tree-optimization/46193
9562         * omp-low.c (omp_reduction_init): Handle pointer type for min or max
9563         clause.
9564
9565 2015-08-28  Jeff Law  <law@redhat.com>
9566
9567         PR lto/66752
9568         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
9569         unable to find X NE 0 in the tables, return X as the simplified
9570         condition.
9571         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
9572         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
9573         to VISISTED_BBS.
9574         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
9575         after removing the control flow statement and unnecessary edges.
9576
9577 2015-08-28  Alan Lawrence  <alan.lawrence@arm.com>
9578
9579         Revert:
9580         2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
9581
9582         PR tree-optimization/67283
9583         * tree-sra.c (type_consists_of_records_p): Rename to...
9584         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
9585
9586         (completely_scalarize_record): Rename to...
9587         (completely_scalarize): ...this, add ARRAY_TYPE case, move some
9588         code to:
9589         (scalarize_elem): New.
9590
9591 2015-08-28  Jiong Wang  <jiong.wang@arm.com>
9592
9593         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Rename
9594         SYMBOL_SMALL_GOTTPREL to SYMBOL_SMALL_TLSIE.
9595         (aarch64_symbol_type): Likewise.
9596         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
9597         Likewise.
9598         (aarch64_expand_mov_immediate): Likewise.
9599         (aarch64_print_operand): Likewise.
9600         (aarch64_classify_tls_symbol): Likewise.
9601
9602 2015-08-28  Richard Biener  <rguenther@suse.de>
9603
9604         * cgraphunit.c (symbol_table::compile): Move early debug generation
9605         and finish...
9606         (symbol_table::finalize_compilation_unit): ... back here and
9607         add a !seen_error () guard.
9608
9609 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
9610
9611         * toplev.c (process_options): Do not use flag_loop_block,
9612         flag_loop_interchange, and flag_loop_strip_mine.  Add check for
9613         flag_loop_optimize_isl.
9614
9615 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
9616
9617         * Makefile.in (OBJS): Remove graphite-blocking.o and
9618         graphite-interchange.o.
9619         * common.opt (floop-strip-mine, floop-interchange, floop-block):
9620         Alias of floop-nest-optimize.
9621         * doc/invoke.texi (floop-strip-mine, floop-interchange, floop-block):
9622         Document as alias of -floop-nest-optimize.
9623         * graphite-blocking.c: Remove.
9624         * graphite-interchange.c: Remove.
9625         * graphite-optimize-isl.c: Include dumpfile.h.
9626         (getScheduleForBand): Add dump for tiled loops.  Use
9627         PARAM_LOOP_BLOCK_TILE_SIZE instead of hard coded constant.
9628         * graphite-poly.c (scop_max_loop_depth): Remove.
9629         (print_scattering_function_1): Remove.
9630         (print_scattering_function): Remove.
9631         (print_scattering_functions): Remove.
9632         (debug_scattering_function): Remove.
9633         (debug_scattering_functions): Remove.
9634         (apply_poly_transforms): Remove use of flag_loop_block,
9635         flag_loop_strip_mine, and flag_loop_interchange.
9636         (new_poly_bb): Remove use of PBB_TRANSFORMED, PBB_SAVED, and
9637         PBB_ORIGINAL.
9638         (print_pdr_access_layout): Remove.
9639         (print_pdr): Print ISL representation.
9640         (new_scop): Remove use of SCOP_ORIGINAL_SCHEDULE,
9641         SCOP_TRANSFORMED_SCHEDULE, and SCOP_SAVED_SCHEDULE.
9642         (free_scop): Same.
9643         (openscop_print_pbb_domain): Remove.
9644         (print_pbb): Remove call to print_scattering_function.
9645         (openscop_print_scop_context): Remove.
9646         (print_scop_context): Do not print matrices anymore.
9647         (print_scop): Do not print SCOP_ORIGINAL_SCHEDULE and
9648         SCOP_TRANSFORMED_SCHEDULE.
9649         (print_isl_set): Add printing of a new line.
9650         (print_isl_map): Same.
9651         (print_isl_aff): Same.
9652         (print_isl_constraint): Same.
9653         (loop_to_lst): Remove.
9654         (scop_to_lst): Remove.
9655         (lst_indent_to): Remove.
9656         (print_lst): Remove.
9657         (debug_lst): Remove.
9658         (dot_lst_1): Remove.
9659         (dot_lst): Remove.
9660         (reverse_loop_at_level): Remove.
9661         (reverse_loop_for_pbbs): Remove.
9662         * graphite-poly.h (pdr_dim_iter_domain): Remove.
9663         (pdr_nb_params): Remove.
9664         (pdr_alias_set_dim): Remove.
9665         (pdr_subscript_dim): Remove.
9666         (pdr_iterator_dim): Remove.
9667         (pdr_parameter_dim): Remove.
9668         (same_pdr_p): Remove.
9669         (struct poly_scattering): Remove.
9670         (struct poly_bb): Remove _original, _transformed, _saved.
9671         (PBB_DOMAIN, PBB_ORIGINAL, PBB_ORIGINAL_SCATTERING): Remove.
9672         (PBB_TRANSFORMED, PBB_TRANSFORMED_SCATTERING, PBB_SAVED): Remove.
9673         (PBB_NB_LOCAL_VARIABLES): Remove.
9674         (PBB_NB_SCATTERING_TRANSFORM): Remove.
9675         (schedule_to_scattering): Remove.
9676         (number_of_write_pdrs): Remove.
9677         (pbb_dim_iter_domain): Remove.
9678         (pbb_nb_params): Remove.
9679         (pbb_nb_scattering_orig): Remove.
9680         (pbb_nb_scattering_transform): Remove.
9681         (pbb_nb_dynamic_scattering_transform): Remove.
9682         (pbb_nb_local_vars): Remove.
9683         (pbb_iterator_dim): Remove.
9684         (pbb_parameter_dim): Remove.
9685         (psco_scattering_dim): Remove.
9686         (psct_scattering_dim): Remove.
9687         (psct_local_var_dim): Remove.
9688         (psco_iterator_dim): Remove.
9689         (psct_iterator_dim): Remove.
9690         (psco_parameter_dim): Remove.
9691         (psct_parameter_dim): Remove.
9692         (psct_dynamic_dim): Remove.
9693         (psct_static_dim): Remove.
9694         (psct_add_local_variable): Remove.
9695         (new_lst_loop): Remove.
9696         (new_lst_stmt): Remove.
9697         (free_lst): Remove.
9698         (copy_lst): Remove.
9699         (lst_add_loop_under_loop): Remove.
9700         (lst_depth): Remove.
9701         (lst_dewey_number): Remove.
9702         (lst_dewey_number_at_depth): Remove.
9703         (lst_pred): Remove.
9704         (lst_succ): Remove.
9705         (lst_find_pbb): Remove.
9706         (find_lst_loop): Remove.
9707         (lst_find_first_pbb): Remove.
9708         (lst_empty_p): Remove.
9709         (lst_find_last_pbb): Remove.
9710         (lst_contains_p): Remove.
9711         (lst_contains_pbb): Remove.
9712         (lst_create_nest): Remove.
9713         (lst_remove_from_sequence): Remove.
9714         (lst_remove_loop_and_inline_stmts_in_loop_father): Remove.
9715         (lst_niter_for_loop): Remove.
9716         (pbb_update_scattering): Remove.
9717         (lst_update_scattering_under): Remove.
9718         (lst_update_scattering): Remove.
9719         (lst_insert_in_sequence): Remove.
9720         (lst_replace): Remove.
9721         (lst_substitute_3): Remove.
9722         (lst_distribute_lst): Remove.
9723         (lst_remove_all_before_including_pbb): Remove.
9724         (lst_remove_all_before_excluding_pbb): Remove.
9725         (struct scop): Remove original_schedule, transformed_schedule, and
9726         saved_schedule.
9727         (SCOP_ORIGINAL_SCHEDULE, SCOP_TRANSFORMED_SCHEDULE): Remove.
9728         (SCOP_SAVED_SCHEDULE): Remove.
9729         (poly_scattering_new): Remove.
9730         (poly_scattering_free): Remove.
9731         (poly_scattering_copy): Remove.
9732         (store_scattering_pbb): Remove.
9733         (store_lst_schedule): Remove.
9734         (restore_lst_schedule): Remove.
9735         (store_scattering): Remove.
9736         (restore_scattering_pbb): Remove.
9737         (restore_scattering): Remove.
9738         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons):
9739         Remove scattering_dimensions.  Do not use pbb_dim_iter_domain:
9740         compute the scattering polyhedron dimension from the dimension of
9741         pbb->domain.
9742         (build_scop_scattering): Update call to
9743         build_pbb_scattering_polyhedrons.
9744         (build_poly_scop): Remove call to scop_to_lst.
9745         * graphite.c (graphite_transform_loops): Add call to print_scop.
9746         (gate_graphite_transforms): Remove use of flag_loop_block,
9747         flag_loop_interchange, and flag_loop_strip_mine.
9748
9749 2015-08-27  Sebastian Pop  <s.pop@samsung.com>
9750
9751         * common.opt (floop-unroll-and-jam): Make alias of floop-nest-optimize.
9752         * doc/invoke.texi (-floop-unroll-and-jam): Document as alias of
9753         -floop-nest-optimize.
9754         * graphite-isl-ast-to-gimple.c (generate_luj_sepclass_opt): Remove.
9755         (generate_luj_sepclass): Remove.
9756         (generate_luj_options): Remove.
9757         (set_options): Remove opt_luj.
9758         (scop_to_isl_ast): Remove opt_luj.
9759         * graphite-optimize-isl.c (getScheduleForBand): Remove check for
9760         flag_loop_unroll_jam.
9761         (getPrevectorMap_full): Remove.
9762         (getScheduleForBandList): Remove map_sepcl.
9763         (getScheduleMap): Same.
9764         (apply_schedule_map_to_scop): Remove sepcl.
9765         (optimize_isl): Same.
9766         * graphite-poly.c (apply_poly_transforms): Remove check for
9767         flag_loop_unroll_jam.
9768         (new_poly_bb): Remove map_sepclass.
9769         * graphite-poly.h (struct poly_bb): Same.
9770         * graphite.c (gate_graphite_transforms): Remove flag_loop_unroll_jam.
9771         * params.def (PARAM_LOOP_UNROLL_JAM_SIZE)
9772         (PARAM_LOOP_UNROLL_JAM_DEPTH): Remove.
9773         * toplev.c (process_options): Remove flag_loop_unroll_jam.
9774
9775 2015-08-27  Uros Bizjak  <ubizjak@gmail.com>
9776
9777         PR target/67317
9778         * config/i386/i386.md (*add<mode>3_cc): Remove insn pattern.
9779         (addqi3_cc): Ditto.
9780         (UNSPEC_ADD_CARRY): Remove.
9781         (addqi3_cconly_overflow): New expander.
9782         (*add<dwi>3_doubleword): Split to add<mode>3_cconly_overflow.
9783         Adjust for changed add<mode>3_carry.
9784         (*neg<dwi>2_doubleword): Adjust for changed add<mode>3_carry.
9785         (*sub<dwi>3_doubleword): Adjust for changed sub<mode>3_carry.
9786         (<plusminus_insn><mode>3_carry): Remove expander.
9787         (*<plusminus_insn><mode>3_carry): Split insn pattern to
9788         add<mode>3_carry and sub<mode>3_carry.
9789         (plusminus_carry_mnemonic): Remove code attribute.
9790         (add<mode>3_carry): Canonicalize insn pattern.
9791         (*addsi3_carry_zext): Ditto.
9792         (sub<mode>3_carry): Ditto.
9793         (*subsi3_carry_zext): Ditto.
9794         (adcx<mode>3): Remove insn pattern.
9795         (addcarry<mode>): New insn pattern.
9796         (subborrow<mode>): Ditto.
9797         * config/i386/i386.c (ix86_expand_strlensi_unroll_1): Use
9798         gen_addqi3_cconly_overflow instead of gen_addqi3_cc.
9799         (ix86_expand_builtin) <case IX86_BUILTIN_SBB32,
9800         case IX86_BUILTIN_SBB64, case IX86_BUILTIN_ADDCARRY32,
9801         case IX86_BUILTIN_ADDCARRY64>: Use CODE_FOR_subborrowsi,
9802         CODE_FOR_subborrowdi, CODE_FOR_addcarrysi and CODE_FOR_addcarrydi.
9803         Rewrite expander to not clobber carry flag chains.
9804
9805 2015-08-27  Pat Haugen  <pthaugen@us.ibm.com>
9806
9807         * config/rs6000/vector.md (vec_shr_<mode>): Fix to do a shift
9808         instead of a rotate.
9809
9810 2015-08-27  Marek Polacek  <polacek@redhat.com>
9811
9812         PR middle-end/67005
9813         * tree-ssa-dce.c (remove_dead_stmt): Also schedule fixup if removing
9814         an entry into an irreducible region.
9815
9816 2015-08-27  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
9817
9818         * configure: Regenerate.
9819
9820 2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
9821
9822         PR tree-optimization/67283
9823         * tree-sra.c (type_consists_of_records_p): Rename to...
9824         (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
9825
9826         (completely_scalarize_record): Rename to...
9827         (completely_scalarize): ...this, add ARRAY_TYPE case, move some code to:
9828         (scalarize_elem): New.
9829
9830 2015-08-27  Alan Lawrence  <alan.lawrence@arm.com>
9831
9832         * tree-sra.c (completely_scalarize_var): Rename to...
9833         (create_total_scalarization_access): ... Here. Drop call to
9834         completely_scalarize_record.
9835
9836         (analyze_all_variable_accesses): Replace completely_scalarize_var
9837         with create_total_scalarization_access and completely_scalarize_record.
9838
9839 2015-08-27  Alan Modra  <amodra@gmail.com>
9840
9841         PR target/67356
9842         * config/rs6000/rs6000.md (ior<mode>_mask): Use constraint "0"
9843         for operand 1.
9844
9845 2015-08-27  Richard Biener  <rguenther@suse.de>
9846
9847         * passes.c (rest_of_decl_compilation): Guard early_global_decl
9848         call with !seen_error ().
9849         * cgraphunit.c (symbol_table::finalize_compilation_unit): Move
9850         early debug generation and finish...
9851         (symbol_table::compile): ... here to put it after a !seen_error ()
9852         guard.
9853
9854 2015-08-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
9855
9856         * config.gcc (*-*-solaris2*): Enable default_use_cxa_atexit on
9857         Solaris 12+.
9858
9859 2015-08-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9860             Andre Vieira  <andre.simoesdiasvieira@arm.com>
9861
9862         * config/aarch64/aarch64.md (*condjump): Handle functions > 1 MiB.
9863         (*cb<optab><mode>1): Likewise.
9864         (*tb<optab><mode>1): Likewise.
9865         (*cb<optab><mode>1): Likewise.
9866         * config/aarch64/iterators.md (inv_cb): New code attribute.
9867         (inv_tb): Likewise.
9868         * config/aarch64/aarch64.c (aarch64_gen_far_branch): New.
9869         * config/aarch64/aarch64-protos.h (aarch64_gen_far_branch): New.
9870
9871 2015-08-27  Richard Biener  <rguenther@suse.de>
9872
9873         * ipa.c (cgraph_build_static_cdtor_1): Set DECL_IGNORED_P.
9874
9875 2015-08-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
9876
9877         * config/s390/s390.c (s390_emit_prologue): Add emit_barrier() after
9878         trap to fix ICE.
9879
9880 2015-08-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
9881
9882         * config/rs6000/rs6000-protos.h (rs6000_expand_float128_convert):
9883         Add declaration.
9884
9885         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Fix a
9886         comment.
9887         (rs6000_cannot_change_mode_class): Add support for IEEE 128-bit
9888         floating point in VSX registers.
9889         (rs6000_output_move_128bit): Always print out the set insn if we
9890         can't generate an appropriate 128-bit move.
9891         (rs6000_generate_compare): Add support for IEEE 128-bit floating
9892         point in VSX registers comparisons.
9893         (rs6000_expand_float128_convert): Likewise.
9894
9895         * config/rs6000/predicates.md (int_reg_operand_not_pseudo): New
9896         predicate for only GPR hard registers.
9897
9898         * config/rs6000/rs6000.md (FP): Add IEEE 128-bit floating point
9899         modes to iterators. Add new iterators for moving 128-bit values in
9900         scalar FPR registers and VSX registers.
9901         (FMOVE128): Likewise.
9902         (FMOVE128_FPR): Likewise.
9903         (FMOVE128_GPR): Likewise.
9904         (FMOVE128_VSX): Likewise.
9905         (FLOAT128_SFDFTF): New iterators for IEEE 128-bit floating point
9906         in VSX registers.
9907         (IFKF): Likewise.
9908         (IBM128): Likewise.
9909         (TFIFKF): Likewise.
9910         (RELOAD): Add IEEE 128-bit floating point modes.
9911         (signbittf2): Convert TF insns to add support for new IEEE 128-bit
9912         floating point in VSX registers modes.
9913         (signbit<mode>2, IBM128 iterator): Likewise.
9914         (mov<mode>_64bit_dm, FMOVE128_FPR iterator): Likewise.
9915         (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
9916         (negtf2): Likewise.
9917         (neg<mode>2, TFIFKF iterator): Likewise.
9918         (negtf2_internal): Likewise.
9919         (abstf2): Likewise.
9920         (abs<mode>2, TFIFKF iterator): Likewise.
9921         (ieee_128bit_negative_zero): New IEEE 128-bit floating point in
9922         VSX insn support for negate, absolute value, and negative absolute
9923         value.
9924         (ieee_128bit_vsx_neg<mode>2): Likewise.
9925         (ieee_128bit_vsx_neg<mode>2_internal): Likewise.
9926         (ieee_128bit_vsx_abs<mode>2): Likewise.
9927         (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
9928         (ieee_128bit_vsx_nabs<mode>2): Likewise.
9929         (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
9930         (FP128_64): Update pack/unpack 128-bit insns for IEEE 128-bit
9931         floating point in VSX registers.
9932         (unpack<mode>_dm): Likewise.
9933         (unpack<mode>_nodm): Likewise.
9934         (pack<mode>): Likewise.
9935         (unpackv1ti): Likewise.
9936         (unpack<mode>, FMOVE128_VSX iterator): Likewise.
9937         (packv1ti): Likewise.
9938         (pack<mode>, FMOVE128_VSX iterator): Likewise.
9939         (extenddftf2): Add support for IEEE 128-bit floating point in VSX
9940         registers.
9941         (extenddftf2_internal): Likewise.
9942         (trunctfdf2): Likewise.
9943         (trunctfdf2_internal2): Likewise.
9944         (fix_trunc_helper): Likewise.
9945         (fix_trunctfdi2"): Likewise.
9946         (floatditf2): Likewise.
9947         (floatuns<mode>tf2): Likewise.
9948         (extend<FLOAT128_SFDFTF:mode><IFKF:mode>2): Likewise.
9949         (trunc<IFKF:mode><FLOAT128_SFDFTF:mode>2): Likewise.
9950         (fix_trunc<IFKF:mode><SDI:mode>2): Likewise.
9951         (fixuns_trunc<IFKF:mode><SDI:mode>2): Likewise.
9952         (float<SDI:mode><IFKF:mode>2): Likewise.
9953         (floatuns<SDI:mode><IFKF:mode>2): Likewise.
9954
9955 2015-08-26  Renlin Li  <renlin.li@arm.com>
9956
9957         * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode><ALLX:mode>4): New.
9958
9959 2015-08-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
9960             Jiong Wang  <jiong.wang@arm.com>
9961
9962         * config/aarch64/aarch64.md (UNSPEC_GOTTINYTLS): New UNSPEC.
9963         (tlsie_tiny_<mode>): New define_insn.
9964         (tlsie_tiny_sidi): Likewise.
9965         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
9966         SYMBOL_TINY_TLSIE.
9967         (aarch64_symbol_context): New comment for SYMBOL_TINY_TLSIE.
9968         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
9969         SYMBOL_TINY_TLSIE.
9970         (aarch64_expand_mov_immediate): Likewise.
9971         (aarch64_print_operand): Likewise.
9972         (arch64_classify_tls_symbol): Likewise.
9973
9974 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
9975
9976         * config/arm/arm-arches.def: Replace single value flags with
9977         an initializer built from ARM_FSET_MAKE_CPU1.
9978         * config/arm/arm-cores.def: Likewise.
9979         * config/arm/arm.c: (all_cores): Remove ARM_FSET_MAKE_CPU1
9980         derivation from the ARM_CORE macro definition, use the given value
9981         instead.
9982         (all_architectures): Remove ARM_FSET_MAKE_CPU1 derivation from the
9983         ARM_ARCH macro definition, use the given value instead.
9984
9985 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
9986
9987         * config/arm/arm-builtins.c (def_mbuiltin): Test all flags in a
9988         feature set.
9989         (struct builtin_description): Replace field mask with field
9990         features.
9991         (IWMMXT_BUILTIN): Use ARM_FSET macros for feature flags.
9992         (IWMMXT2_BUILTIN): Likewise.
9993         (IWMMXT2_BUILTIN2): Likewise.
9994         (FP_BUILTIN): Likewise.
9995         (CRC32_BUILTIN): Likewise.
9996         (CRYPTO_BUILTIN): Likewise.
9997         (iwmmx_mbuiltin): Likewise.
9998         (iwmmx2_mbuiltin): Likewise.
9999         (arm_init_iwmmxt_builtins): Likewise. Also, update for change to
10000         struct builtin_description.
10001
10002 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
10003
10004         * config/arm/arm-builtins.c (def_mbuiltin): Use ARM_FSET macro.
10005         (struct builtin_description): Change type of mask to unsigned
10006         long.
10007         * config/arm/arm-protos.h (insn_flags): Declare as type
10008         arm_feature_set.
10009         (tune_flags): Likewise.
10010         * config/arm/arm.c (feature_count): New.
10011         (insn_flags): Define as type arm_feature_set.
10012         (tune_flags): Likewise.
10013         (struct processors): Define field flags as type arm_feature_set.
10014         (all_cores): Update for change to struct processors.
10015         (all_architectures): Likewise.
10016         (arm_option_check_internal): Use arm_feature_set and ARM_FSET
10017         macros.
10018         (arm_option_override_internal): Likewise.
10019         (arm_option_override): Likewise.
10020
10021 2015-08-26  Marcus Shawcroft  <marcus.shawcroft@arm.com>
10022             Jiong Wang  <jiong.wang@arm.com>
10023
10024         * config/aarch64/aarch64.c (initialize_aarch64_tls_size): Set default
10025         tls size for tiny, small, large memory model.
10026         (aarch64_load_symref_appropriately): Support new symbol types.
10027         (aarch64_expand_mov_immediate): Likewise.
10028         (aarch64_print_operand): Likewise.
10029         (aarch64_classify_tls_symbol): Likewise.
10030         * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Likewise.
10031         (aarch64_symbol_type): Likewise.
10032         * config/aarch64/aarch64.md (tlsle): Deleted.
10033         (tlsle12_<mode>): New define_insn.
10034         (tlsle24_<mode>): Likewise.
10035         (tlsle32_<mode>): Likewise.
10036         (tlsle48_<mode>): Likewise.
10037         * doc/sourcebuild.texi (AArch64-specific attributes): Document
10038         "aarch64_tlsle32".
10039
10040 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
10041
10042         * config/arm/arm-protos.h (FL_NONE): New.
10043         (FL_ANY): New.
10044         (arm_feature_set): New.
10045         (ARM_FSET_MAKE): New.
10046         (ARM_FSET_MAKE_CPU1): New.
10047         (ARM_FSET_MAKE_CPU2): New.
10048         (ARM_FSET_CPU1): New.
10049         (ARM_FSET_CPU2): New.
10050         (ARM_FSET_EMPTY): New.
10051         (ARM_FSET_ANY): New.
10052         (ARM_FSET_HAS_CPU1): New.
10053         (ARM_FSET_HAS_CPU2): New.
10054         (ARM_FSET_HAS_CPU): New.
10055         (ARM_FSET_ADD_CPU1): New.
10056         (ARM_FSET_ADD_CPU2): New.
10057         (ARM_FSET_DEL_CPU1): New.
10058         (ARM_FSET_DEL_CPU2): New.
10059         (ARM_FSET_UNION): New.
10060         (ARM_FSET_INTER): New.
10061         (ARM_FSET_XOR): New.
10062         (ARM_FSET_EXCLUDE): New.
10063         (AFM_FSET_IS_EMPTY): New.
10064         (ARM_FSET_CPU_SUBSET): New.
10065
10066 2015-08-26  Jiong Wang  <jiong.wang@arm.com>
10067
10068         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
10069         SYMBOL_TLSLE to SYMBOL_TLSLE24.
10070         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
10071         Likewise.
10072         (aarch64_expand_mov_immediate): Likewise.
10073         (aarch64_print_operand): Likewise.
10074         (aarch64_classify_symbol): Likewise.
10075
10076 2015-08-26  Jiong Wang  <jiong.wang@arm.com>
10077
10078         * config/aarch64/aarch64.opt (mtls-size): New entry.
10079         * config/aarch64/aarch64.c (initialize_aarch64_tls_size): New function.
10080         (aarch64_override_options_internal): Call initialize_aarch64_tls_size.
10081         * doc/invoke.texi (AArch64 Options): Document -mtls-size.
10082
10083 2015-08-26  Matthew Wahab  <matthew.wahab@arm.com>
10084
10085         * config/arm/arm-cores.def: Add FL_FOR_ARCH flag for each
10086         ARM_CORE entry.  Fix some white-space.
10087         * config/arm/arm.c: Remove FL_FOR_ARCH derivation from
10088         ARM_CORE definition.
10089
10090 2015-08-26  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
10091
10092         * fold-const.c (fold_binary_loc) : Move Optimize
10093         root(x)*root(y) as root(x*y) to match.pd.
10094         Move Optimize expN(x)*expN(y) as expN(x+y) to match.pd.
10095         Move Optimize pow(x,y)*pow(x,z) as pow(x,y+z) to match.pd.
10096         Move Optimize a/root(b/c) into a*root(c/b) to match.pd.
10097         Move Optimize x/expN(y) into x*expN(-y) to match.pd.
10098         * match.pd (mult (root:s @0) (root:s @1)): New simplifier.
10099         (mult (POW:s @0 @1) (POW:s @0 @2)) : New simplifier.
10100         (mult (exps:s @0) (exps:s @1)) : New simplifier.
10101         (rdiv @0 (root:s (rdiv:s @1 @2))) : New simplifier.
10102         (rdiv @0 (exps:s @1)) : New simplifier.
10103
10104 2015-08-25  Joseph Myers  <joseph@codesourcery.com>
10105
10106         * gcc.c (driver::finalize): Only assign to extra_specs if
10107         [EXTRA_SPECS].
10108
10109 2015-08-25  Marek Polacek  <polacek@redhat.com>
10110
10111         PR middle-end/67330
10112         * varasm.c (declare_weak): Return after giving an error.
10113
10114 2015-08-25  David Malcolm  <dmalcolm@redhat.com>
10115
10116         * gcc-main.c (main): Add params to driver ctor.
10117         * gcc.c (class env_manager): New.
10118         (env): New global.
10119         (env_manager::init): New.
10120         (env_manager::get): New.
10121         (env_manager::xput): New.
10122         (env_manager::restore): New.
10123         Poison getenv and putenv.
10124         (DEFAULT_TARGET_SYSTEM_ROOT): New.
10125         (target_system_root): Update initialization to use
10126         DEFAULT_TARGET_SYSTEM_ROOT.
10127         (struct spec_list): Add field "default_ptr".
10128         (INIT_STATIC_SPEC): Initialize new field "default_ptr".
10129         (init_spec): Likewise.
10130         (set_spec): Clear field "default_ptr".
10131         (read_specs): Free "spec" and "buffer".
10132         (xputenv): Reimplement in terms of env_manager.
10133         (process_command): Replace ::getenv calls with calls to the
10134         env_manager singleton.
10135         (process_brace_body): Free string in three places.
10136         (driver::driver): New.
10137         (driver::~driver): New.
10138         (used_arg): Convert from a function to...
10139         (class used_arg_t): ...this class, and...
10140         (used_arg): ...this new global instance.
10141         (used_arg_t::finalize): New function.
10142         (getenv_spec_function): Add "const" to local "value".  Replace
10143         ::getenv call with call to the env_manager singleton.
10144         (path_prefix_reset): New function.
10145         (driver::finalize): New function.
10146         * gcc.h (driver::driver): New.
10147         (driver::~driver): New.
10148         (driver::finalize): New.
10149
10150 2015-08-25  Nathan Sidwell  <nathan@acm.org>
10151
10152         * optabs.c (emit_indirect_jump): Don't try an emit a jump if the
10153         target doesn't have one.
10154
10155 2015-08-25  Segher Boessenkool  <segher@kernel.crashing.org>
10156
10157         PR target/67346
10158         * config/rs6000/rs6000.md (*ior<mode>_mask): Use a match_scratch.
10159
10160 2015-08-25  Segher Boessenkool  <segher@kernel.crashing.org>
10161
10162         PR target/67344
10163         * config/rs6000/rs6000.md (*and<mode>3_imm_dot_shifted): Change to
10164         a define_insn, remove second alternative.
10165
10166 2015-08-25  Thomas Schwinge  <thomas@codesourcery.com>
10167             Joseph Myers  <joseph@codesourcery.com>
10168
10169         * gcc.c (struct switchstr): Expand comment.
10170
10171 2015-08-25  Nathan Sidwell  <nathan@acm.org>
10172
10173         * config/nvptx/nvptx.c (nvptx_write_function_decl): Reformat.
10174         (nvptx_reorg_subreg): Pass insn pattern to asm_operands.
10175
10176 2015-08-25  Richard Biener  <rguenther@suse.de>
10177
10178         PR middle-end/67306
10179         * genmatch.c (expr::gen_transform): Verify the result of
10180         builtin_decl_implicit.
10181         (dt_simplify::gen_1): Likewise.
10182
10183 2015-08-25  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10184
10185         * config/arm/constraints.md: Also list Cs and US ARM-specific
10186         constraints as used.
10187
10188 2015-08-24  Kaz Kojima  <kkojima@gcc.gnu.org>
10189
10190         PR target/66609
10191         * config/sh/sh.c (sh_asm_output_addr_const_extra): Handle
10192         UNSPEC_PCREL.
10193         (nonpic_symbol_mentioned_p): Likewise.
10194         (sh_delegitimize_address): Likewise.
10195         (sh_function_ok_for_sibcall): Take into account weak symbols.
10196         (sh_expand_sym_label2reg): New.
10197         * config/sh/sh-protos.h (sh_expand_sym_label2reg): Declare.
10198         * config/sh/sh.md (UNSPEC_PCREL): New enum.
10199         (call_pcrel): Use sh_expand_sym_label2reg.
10200         (call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise.
10201         (symPCREL_label2reg) New expand.
10202
10203 2015-08-24  Aditya Kumar  <aditya.k7@samsung.com>
10204
10205         * graphite-poly.c: Change type of region from void* to sese.
10206         * graphite-poly.h (struct scop): Changing the type of scop::region
10207         from void* to sese. Change accessor macro accordingly.
10208         * graphite-sese-to-poly.c (extract_affine_chrec): Use accessor macro.
10209
10210 2015-08-24  Aditya Kumar  <aditya.k7@samsung.com>
10211
10212         * graphite-scop-detection.c (stmt_simple_for_scop_p):
10213         Constrain only on INTEGER_TYPE.
10214
10215 2015-08-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
10216
10217         PR target/67211
10218         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Set
10219         -mefficient-unaligned-vsx on ISA 2.7.
10220
10221         * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Convert
10222         option to a masked option.
10223
10224         * config/rs6000/rs6000.c (rs6000_option_override_internal): Rework
10225         logic for -mefficient-unaligned-vsx so that it is set via an arch
10226         ISA option, instead of being set if -mtune=power8 is set. Move
10227         -mefficient-unaligned-vsx and -mallow-movmisalign handling to be
10228         near other default option handling.
10229
10230 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
10231
10232         * genflags.c (gen_macro): Delete.
10233         (gen_proto): Don't create GEN.*CALL.* macros.
10234         * gensupport.h (get_file_location): Declare.
10235         * gensupport.c (rtx_locs): New variable.
10236         (read_md_rtx): Record rtx locations.
10237         (get_file_location): New function.
10238         * target-insns.def (call, call_pop, call_value, call_value_pop)
10239         (sibcall, sibcall_value): New patterns.
10240         * gentarget-def.c (parse_argument): New function.
10241         (def_target_insn): Use it.  Handle optional operands.  Raise an
10242         error if an .md pattern has the wrong number of operands for the
10243         pattern name.  Remove the names of unused operands from the prototype.
10244         * builtins.c (expand_builtin_apply): Use targetm functions
10245         instead of HAVE_call_value and GEN_CALL_VALUE.
10246         * calls.c (emit_call_1): Likewise.  Remove support for sibcall_pop
10247         and sibcall_value_pop.
10248         * config/aarch64/aarch64.md (untyped_call): Use gen_call instead
10249         of GEN_CALL.
10250         * config/alpha/alpha.md (untyped_call): Likewise.
10251         * config/iq2000/iq2000.md (untyped_call): Likewise.
10252         * config/m68k/m68k.md (untyped_call): Likewise.
10253         * config/mips/mips.md (untyped_call): Likewise.
10254         * config/pa/pa.md (untyped_call): Likewise.
10255         * config/rs6000/rs6000.md (untyped_call): Likewise.
10256         * config/sparc/sparc.md (untyped_call): Likewise.
10257         * config/tilegx/tilegx.md (untyped_call): Likewise.
10258         * config/tilepro/tilepro.md (untyped_call): Likewise.
10259         * config/visium/visium.md (untyped_call): Likewise.
10260         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Use
10261         gen_call_value instead of GEN_CALL_VALUE.
10262         * config/arm/arm.md (untyped_call): Likewise.
10263         * config/cr16/cr16.c (cr16_function_arg): Remove reference to
10264         GEN_CALL.
10265
10266 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
10267
10268         * ifcvt.c (HAVE_incscc, HAVE_decscc, HAVE_cbranchcc4): Delete.
10269         (have_cbranchcc4): New variable.
10270         (cc_in_cond, noce_emit_cmove, noce_get_alt_condition)
10271         (noce_get_condition): Use it instead of HAVE_cbranchcc4.
10272         (if_convert): Initialize have_cbranchcc4.
10273
10274 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
10275
10276         * builtins.c (expand_cmpstrn): Rename to...
10277         (expand_cmpstrn_or_cmpmem): ...this.
10278         (expand_builtin_strcmp, expand_builtin_strncmp): Update accordingly.
10279         (expand_builtin_memcmp): Use optabs instead of HAVE_cmpmem/gen_cmpmem.
10280         Remove mode argument.
10281         (expand_builtin): Update accordingly.
10282
10283 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
10284
10285         * builtins.c (expand_cmpstr, expand_cmpstrn): New functions.
10286         (expand_builtin_strcmp, expand_builtin_strncmp): Use them.  Remove
10287         references to HAVE_cmpstr{,n}si and CODE_FOR_cmpstr{,n}si.
10288         * config/m32c/blkmov.md (cmpstrsi): Fix predicates of operands 1 and 2.
10289         Add predicates for operands 0 and 3.
10290         * config/rx/rx.md (cmpstrnsi): Remove force_operand for the length
10291         operand.
10292         * config/sh/sh.md (cmpstrnsi): Change the length predicate from
10293         immediate_operand to nonmemory_operand.
10294
10295 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
10296
10297         * df-scan.c (df_insn_info_init_fields): New function, split out
10298         from...
10299         (df_insn_create_insn_record): ...here.
10300         (df_insn_info_free_fields): New function, split out from...
10301         (df_insn_info_delete): ...here.
10302         (df_insn_rescan): Use the new functions instead of freeing and
10303         reallocating the df_insn_info.
10304
10305 2015-08-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
10306
10307         * doc/install.texi (Binaries): Remove links no longer valid.
10308
10309 2015-08-24  Nathan Sidwell  <nathan@codesourcery.com>
10310
10311         * config/nvptx/mkoffload.c (process): Replace
10312         GOMP_offload_{,un}register with GOMP_offload_{,un}register_ver.
10313
10314 2015-08-24  H.J. Lu  <hongjiu.lu@intel.com>
10315
10316         PR target/67329
10317         * config/i386/i386.c (iamcu_cost): Set MOVE_RATIO cost to 9.
10318
10319 2015-08-24  Renlin Li  <renlin.li@arm.com>
10320
10321         * config/arm/arm-protos.h (arm_valid_symbolic_address_p): Declare.
10322         * config/arm/arm.c (arm_valid_symbolic_address_p): Define.
10323         * config/arm/arm.md (arm_movt): Use arm_valid_symbolic_address_p.
10324         * config/arm/constraints.md ("j"): Add check for high code.
10325
10326 2015-08-24  Tom de Vries  <tom@codesourcery.com>
10327
10328         PR tree-optimization/65468
10329         * omp-low.c (expand_omp_for_static_chunk): Remove inner loop if
10330         chunk_size is one.
10331
10332 2015-08-24  Nathan Sidwell  <nathan@acm.org>
10333
10334         * config/nvptx/nvptx.c (walk_args_for_param): Revert previous
10335         change to nvptx_type_from_mode call. Use arg_promotion for both
10336         split and non-split args.
10337
10338 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
10339
10340         * target-insns.def (movstr): New pattern.
10341         * builtins.c (HAVE_movstr, CODE_FOR_movstr): Delete.
10342         (expand_movstr): Use targetm rather than HAVE_movstr/
10343         CODE_FOR_movstr.
10344
10345 2015-08-24  Richard Sandiford  <richard.sandiford@arm.com>
10346
10347         * config/microblaze/microblaze.c (microblaze_classify_unspec): Fix
10348         cast syntax.
10349
10350 2015-08-24  Andrew Pinski  <apinski@cavium.com>
10351
10352         * config/aarch64/aarch64-tuning-flags.def: Remove all index to
10353         AARCH64_EXTRA_TUNING_OPTION.
10354         * config/aarch64/aarch64-protos.h (aarch64_extra_tuning_flags_index):
10355         New enum.
10356         (aarch64_extra_tuning_flags): Base the shifted value on the index
10357         instead of the argument to AARCH64_EXTRA_TUNING_OPTION.
10358         * config/aarch64/aarch64.c: Remove the last argument to
10359         AARCH64_EXTRA_TUNING_OPTION.
10360
10361 2015-08-23  Nathan Sidwell  <nathan@acm.org>
10362
10363         * config/nvptx/nvptx.c (walk_args_for_param): Promote arg reg
10364         decls.
10365         (nvptx_declare_function_name): Insert formatting tabs for
10366         consistency.
10367
10368 2015-08-23  Tom de Vries  <tom@codesourcery.com>
10369
10370         * omp-low.c (expand_omp_taskreg): If in ssa, set rhs of parcopy stmt to
10371         parm_decl, rather than generating a dummy default def in cfun.
10372         * tree-cfg.c (replace_ssa_name): Assume no default defs.  Make sure
10373         ssa_name from cfun and child_fn do not share a stmt as def stmt.
10374         (move_stmt_op): Handle PARM_DECl.
10375         (gather_ssa_name_hash_map_from): New function.
10376         (move_sese_region_to_fn): Add default defs for function params, and add
10377         them to vars_map.  Release copied ssa names.
10378         * tree-cfg.h (gather_ssa_name_hash_map_from): Declare.
10379
10380 2015-08-23  Tom de Vries  <tom@codesourcery.com>
10381
10382         * doc/sourcebuild.texi: Rename vect_no_int_max with
10383         vect_no_int_min_max.  Update description.
10384
10385 2015-08-22  Andrew Pinski  <apinski@cavium.com>
10386
10387          * aarch64-fusion-pairs.def: Remove all index to AARCH64_FUSION_PAIR.
10388         * config/aarch64/aarch64-protos.h
10389         (aarch64_fusion_pairs_index): New enum.
10390         (aarch64_fusion_pairs): Base the shifted value on the index instead
10391         Rewrite AARCH64_FUSE_ALL to be based on the end index.
10392         of the argument to AARCH64_FUSION_PAIR.
10393         * config/aarch64/aarch64.c: Remove the last argument to
10394         AARCH64_FUSION_PAIR.
10395
10396 2015-08-22  Mikhail Maltsev <maltsevm@gmail.com>
10397
10398         * dominance.c (new_zero_array): Define.
10399         (dom_info): Redefine as class with proper encapsulation.
10400         (dom_info::m_n_basic_blocks, m_reverse, m_start_block, m_end_block):
10401         Add new members.
10402         (dom_info::dom_info, ~dom_info): Define.  Use new/delete for memory
10403         allocations/deallocations.  Pass function as parameter (instead of
10404         using cfun).
10405         (dom_info::get_idom): Define accessor method.
10406         (dom_info::calc_dfs_tree_nonrec, calc_dfs_tree, compress, eval,
10407         link_roots, calc_idoms): Redefine as class members.  Do not use cfun.
10408         (calculate_dominance_info): Adjust to use dom_info class.
10409         (verify_dominators): Likewise.
10410
10411 2015-08-21  Alexandre Oliva  <aoliva@redhat.com>
10412
10413         * print-rtl.c (print_rtx): Check the correct range for
10414         flag_dump_unnumbered_links to behave as documented.
10415
10416         PR rtl-optimization/67227
10417         PR rtl-optimization/64164
10418         * alias.c (memrefs_conflict_p): Handle VALUEs in PLUS better.
10419         (nonoverlapping_memrefs_p): Test offsets and sizes when given
10420         identical gimple_reg exprs.
10421
10422 2015-08-21  Nathan Sidwell  <nathan@acm.org>
10423
10424         * config/nvptx/nvptx.md (allocate_stack): Emit sorry during
10425         expansion.
10426         * config/nvptx/nvptx.c (nvptx_declare_function_name): Look at
10427         crtl->stack_alignment_needed to determine alignment.
10428         (nvptx_get_drap_rtx): New.
10429         (TARGET_GET_DRAP_RTX): Override.
10430         * config/nvptx/nvptx.h (MAX_STACK_ALIGNMENT): Set.
10431
10432 2015-08-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
10433
10434         * config.build: Remove case for m68000-hp-hpux* | m68k-hp-hpux*.
10435
10436 2015-08-21  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
10437
10438         * configure.ac: Remove uwin* cases.
10439         * config.build: Remove cases for i370-*-opened*, i370-*-mvs*,
10440         i[34567]86-*-sco3.2v5*, i[34567]86-sequent-ptx4*,
10441         i[34567]86-sequent-sysv4*, i[34567]86-*-sysv4*,
10442         i[34567]86-*-udk*, i[34567]86-*-uwin*, i386-*-vsta.
10443         * config.host: Remove cases for i370-*-opened*, i370-*-mvs*,
10444         i[34567]86-*-uwin*, powerpc-*-beos*.
10445
10446 2015-08-21  Richard Sandiford  <richard.sandiford@arm.com>
10447
10448         * gencodes.c (gencodes): Print the comma for the preceding
10449         enum value rather than the current one.  Use aliased enum values
10450         rather than #defines for compiled-out patterns.
10451         (main): Update accordingly.  Replace LAST_INSN_CODE with
10452         NUM_INSN_CODES.
10453         * lra.c (insn_code_data): Update accordingly.
10454         (finish_insn_code_data_once, get_static_insn_data): Likewise.
10455         * recog.h (target_recog): Likewise.
10456         (preprocess_insn_constraints): Change parameter to unsigned int.
10457         * recog.c (preprocess_insn_constraints): Likewise.
10458         (recog_init): Replace LAST_INSN_CODE with NUM_INSN_CODES.
10459         * tree-vect-stmts.c (vectorizable_operation): Simplify.
10460
10461 2015-08-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
10462
10463         PR rtl-optimization/61657
10464         * loop-iv.c (iv_number_of_iterations): Declare up and down as
10465         unsigned.  Remove superflous uint64_t cast.
10466
10467 2014-08-21  Felix Yang  <felix.yang@huawei.com>
10468             Jiji Jiang  <jiangjiji@huawei.com>
10469
10470         * value-prof.c (interesting_stringop_to_profile_p): Removed FNDECL
10471         argument and get builtin function code directly from CALL.
10472         (gimple_stringop_fixed_value): Modified accordingly.
10473         (gimple_stringops_transform, gimple_stringops_values_to_profile):
10474         Modified accordingly and only accept BUILT_IN_NORMAL string operations.
10475
10476 2015-08-21  Dominik Vogt  <vogt@linux.vnet.ibm.com>
10477
10478         * config/s390/s390-builtins.def: Fix value range of vec_load_bndry.
10479
10480 2015-08-21  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
10481
10482         * fold-const.c (fold_binary_loc) : Move sqrt(x)*sqrt(x) as x
10483         to match.pd.
10484         Move Optimize pow(x,y)*pow(z,y) as pow(x*z,y)to match.pd.
10485         Move Optimize tan(x)*cos(x) as sin(x) to match.pd.
10486         Move Optimize x*pow(x,c) as pow(x,c+1) to match.pd.
10487         Move Optimize pow(x,c)*x as pow(x,c+1) to match.pd.
10488         Move Optimize sin(x)/cos(x) as tan(x) to match.pd.
10489         Move Optimize cos(x)/sin(x) as 1.0/tan(x) to match.pd.
10490         Move Optimize sin(x)/tan(x) as cos(x) to match.pd.
10491         Move Optimize tan(x)/sin(x) as 1.0/cos(x) to match.pd.
10492         Move Optimize pow(x,c)/x as pow(x,c-1) to match.pd.
10493         Move Optimize x/pow(y,z) into x*pow(y,-z) to match.pd.
10494
10495         * match.pd (SIN ) : New Operator.
10496         (TAN) : New Operator.
10497         (mult (SQRT@1 @0) @1) : New simplifier.
10498         (mult (POW:s @0 @1) (POW:s @2 @1)) : New simplifier.
10499         (mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
10500         (mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
10501         (rdiv (SIN:s @0) (COS:s @0)) : New simplifier.
10502         (rdiv (COS:s @0) (SIN:s @0)) : New simplifier.
10503         (rdiv (SIN:s @0) (TAN:s @0)) : New simplifier.
10504         (rdiv (TAN:s @0) (SIN:s @0)) : New simplifier.
10505         (rdiv (POW:s @0 REAL_CST@1) @0) : New simplifier.
10506         (rdiv @0 (SQRT:s (rdiv:s @1 @2))) : New simplifier.
10507         (rdiv @0 (POW:s @1 @2)) : New simplifier.
10508
10509 2015-08-21  Bin Cheng  <bin.cheng@arm.com>
10510
10511         * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Break
10512         loop if EXPR is simplified to const value.
10513
10514 2015-08-21  Yury Gribov  <y.gribov@samsung.com>
10515
10516         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
10517         BUILT_IN_UBSAN_HANDLE_NONNULL_ARG): Fix builtin types.
10518
10519 2015-08-21  Richard Biener  <rguenther@suse.de>
10520
10521         PR middle-end/67285
10522         * gimple-fold.c (replace_stmt_with_simplification): Assert
10523         seq is empty when replacing a call with itself but different
10524         arguments.
10525         * gimple-match-head.c (maybe_push_res_to_seq): When pushing
10526         a call require that it is const.
10527
10528 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10529
10530         * defaults.h (CONSTANT_ALIGNMENT): New macro definition.
10531         * builtins.c (get_object_alignment_2): Adjust.
10532         * varasm.c (align_variable): Likewise.
10533         (get_variable_align): Likewise.
10534         (build_constant_desc): Likewise.
10535         (force_const_mem): Likewise.
10536         * doc/tm.texi.in: Likewise.
10537         * doc/tm.texi: Regenerate.
10538
10539 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10540
10541         * genconfig.c (main): Always define HAVE_cc0.
10542         * recog.c (rest_of_handle_peephole2): Adjust.
10543
10544 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10545
10546         * reorg.c (relax_delay_slots): Don't use #if to check value of
10547         HAVE_cc0.
10548
10549 2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
10550
10551         * genconfig.c (main): Always define HAVE_CONDITIONAL_EXECUTION.
10552         * targhooks.c (default_have_conditional_execution): Adjust.
10553
10554 2015-08-20  Richard Sandiford  <richard.sandiford@arm.com>
10555
10556         * rtl.h (rtvec_all_equal_p): Declare.
10557         (const_vec_duplicate_p, unwrap_const_vec_duplicate): New functions.
10558         * rtl.c (rtvec_all_equal_p): New function.
10559         * expmed.c (expand_mult): Use unwrap_const_vec_duplicate.
10560         * config/aarch64/aarch64.c (aarch64_vect_float_const_representable_p)
10561         (aarch64_simd_dup_constant): Use const_vec_duplicate_p.
10562         * config/arm/arm.c (neon_vdup_constant): Likewise.
10563         * config/s390/s390.c (s390_contiguous_bitmask_vector_p): Likewise.
10564         * config/tilegx/constraints.md (W, Y): Likewise.
10565         * config/tilepro/constraints.md (W, Y): Likewise.
10566         * config/spu/spu.c (spu_legitimate_constant_p): Likewise.
10567         (classify_immediate): Use unwrap_const_vec_duplicate.
10568         * config/tilepro/predicates.md (reg_or_v4s8bit_operand): Likewise.
10569         (reg_or_v2s8bit_operand): Likewise.
10570         * config/tilegx/predicates.md (reg_or_v8s8bit_operand): Likewise.
10571         (reg_or_v4s8bit_operand): Likewise.
10572
10573 2015-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10574
10575         * config/rs6000/altivec.h (vec_pmsum_be): New #define.
10576         (vec_shasigma_be): New #define.
10577         * config/rs6000/rs6000-builtin.def (VPMSUMB): New BU_P8V_AV2_2.
10578         (VPMSUMH): Likewise.
10579         (VPMSUMW): Likewise.
10580         (VPMSUMD): Likewise.
10581         (VPMSUM): New BU_P8V_OVERLOAD_2.
10582         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): New
10583         entries for VEC_MADD and VEC_VPMSUM.
10584
10585 2015-08-20  Georg-Johann Lay  <avr@gjlay.de>
10586
10587         * config/avr/avr.c (avr_insert_attributes): In diagnostic essage:
10588         Multiply argument avr_n_flash by 64 to match unit of "KiB".
10589         (avr_pgm_check_var_decl): Same.
10590
10591 2015-08-20  Alan Lawrence  <alan.lawrence@arm.com>
10592
10593         * config/arm/arm-builtins.c (arm_init_simd_builtin_types): Move
10594         initialization of HFmode scalar type (float16_t) to...
10595         (arm_init_fp16_builtins): ... Here. Combine with __fp16 initialization
10596         code.
10597
10598         (arm_init_builtins): Call arm_init_fp16_builtins earlier and always.
10599
10600         * config/arm/arm_neon.h (vcvt_f16_f32, vcvt_f32_f16): Condition on
10601         having an -mfp16-format.
10602
10603 2015-08-20  Richard Sandiford  <richard.sandiford@arm.com>
10604
10605         * config/i386/predicates.md (vector_all_ones_operand): Use
10606         CONSTM1_RTX to simplify definition.
10607
10608 2015-08-20  Richard Biener  <rguenther@suse.de>
10609
10610         * toplev.c (compile_file): Remove loop calling late_global_decl
10611         on all symbols.
10612         * varpool.c (varpool_node::assemble_decl): Call late_global_decl
10613         on decls we assembled.
10614
10615 2015-08-20  James Greenhalgh  <james.greenhalgh@arm.com>
10616
10617         * common/config/aarch64/aarch64-common.c
10618         (AARCH64_CPU_NAME_LENGTH): Delete.
10619         (aarch64_option_extension): New.
10620         (all_extensions): Likewise.
10621         (processor_name_to_arch): Likewise.
10622         (arch_to_arch_name): Likewise.
10623         (all_cores): New.
10624         (all_architectures): Likewise.
10625         (aarch64_get_extension_string_for_isa_flags): Likewise.
10626         (aarch64_rewrite_selected_cpu): Change to rewrite CPU names to
10627         architecture names.
10628         * config/aarch64/aarch64-protos.h
10629         (aarch64_get_extension_string_for_isa_flags): New.
10630         * config/aarch64/aarch64.c (aarch64_print_extension): Delete.
10631         (aarch64_option_print): Get the string to print from
10632         aarch64_get_extension_string_for_isa_flags.
10633         (aarch64_declare_function_name): Likewise.
10634         * config/aarch64/aarch64.h (BIG_LITTLE_SPEC): Rename to...
10635         (MCPU_TO_MARCH_SPEC): This.
10636         (ASM_CPU_SPEC): Use it.
10637         (BIG_LITTLE_SPEC_FUNCTIONS): Rename to...
10638         (MCPU_TO_MARCH_SPEC_FUNCTIONS): ...This.
10639         (EXTRA_SPEC_FUNCTIONS): Use it.
10640
10641 2015-08-20  Simon Dardis  <simon.dardis@imgtec.com>
10642
10643         * config/mips/mips.c (mips_expand_block_move): Enable inline memcpy
10644         expansion when !ISA_HAS_LWL_LWR.
10645         (mips_block_move_straight): Update the size of elements copied to
10646         account for alignment when !ISA_HAS_LWL_LWR.
10647         * config/mips/mips.h (MIPS_MIN_MOVE_MEM_ALIGN): New macro.
10648
10649 2015-08-19  Jiong Wang  <jiong.wang@arm.com>
10650
10651         * expr.c (expand_expr_real_2): Check gimple statement during
10652         LSHIFT_EXPR expand.
10653
10654 2015-08-19  Magnus Granberg  <zorry@gentoo.org>
10655
10656         * common.opt (fstack-protector): Initialize to -1.
10657         (fstack-protector-all): Likewise.
10658         (fstack-protector-strong): Likewise.
10659         (fstack-protector-explicit): Likewise.
10660         * configure.ac: Add --enable-default-ssp.
10661         * defaults.h (DEFAULT_FLAG_SSP): New.  Default SSP to strong.
10662         * opts.c (finish_options): Update opts->x_flag_stack_protect if it is
10663         -1.
10664         * doc/install.texi: Document --enable-default-ssp.
10665         * config.in: Regenerated.
10666         * configure: Likewise.
10667
10668 2015-08-19  Alexandre Oliva  <aoliva@redhat.com>
10669
10670         PR rtl-optimization/64164
10671         * cfgexpand.c (parm_maybe_byref_p): Renamed to...
10672         (parm_in_stack_slot_p): ... this.  Disregard mode, what
10673         matters is whether the parm will live in a pseudo or a stack
10674         slot.
10675         (expand_one_ssa_partition): Deal with params without a default
10676         def.  Disregard mode.
10677         * cfgexpand.h: Renamed function declaration.
10678         * tree-ssa-coalesce.c: Adjust.
10679         * function.c (split_complex_args): Allocate stack slot for
10680         unassigned parms before splitting.
10681         (parm_in_unassigned_mem_p): New.  Use it instead of
10682         parm_maybe_byref_p throughout this file.
10683         (assign_parm_setup_block): Use it.  Accept pseudos in the
10684         expand-assigned rtl.
10685         (assign_parm_setup_reg): Drop BLKmode requirement.
10686         (assign_parm_setup_stack): Allocate and fill in the address of
10687         unassigned MEM parms.
10688
10689 2015-08-19  David Sherwood  <david.sherwood@arm.com>
10690
10691         * genmodes.c (emit_mode_unit_size_inline): New function.
10692         (emit_mode_unit_precision_inline): New function.
10693         (emit_insn_modes_h): Emit new #define.  Emit new functions.
10694         (emit_mode_unit_size): New function.
10695         (emit_mode_unit_precision): New function.
10696         (emit_mode_adjustments): Add mode_unit_size adjustments.
10697         (emit_insn_modes_c): Emit new arrays.
10698         * machmode.h (GET_MODE_UNIT_SIZE, GET_MODE_UNIT_PRECISION): Update to
10699         use new inline methods.
10700
10701 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10702
10703         * config/aarch64/aarch64.c (bit_count): Delete prototype
10704         and definition.
10705         (aarch64_print_operand): Use popcount_hwi instead of the above.
10706
10707 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10708
10709         * config/aarch64/aarch64-option-extensions.def: Delete obsolete
10710         comment.
10711
10712 2015-08-19  Marek Polacek  <polacek@redhat.com>
10713
10714         PR middle-end/67133
10715         * gimple-ssa-isolate-paths.c
10716         (insert_trap_and_remove_trailing_statements): Rename to ...
10717         (insert_trap): ... this.  Don't remove trailing statements; split
10718         block instead.
10719         (find_explicit_erroneous_behaviour): Don't remove all outgoing edges.
10720
10721 2015-08-19  Mikael Morin  <mikael@gcc.gnu.org>
10722
10723         PR other/67042
10724         * hwint.h (sext_hwi): Switch to unsigned for the left shift, and
10725         conditionalize the whole on __GNUC__.  Add fallback code
10726         depending neither on undefined nor implementation-defined behaviour.
10727
10728 2015-08-19  Jiong Wang  <jiong.wang@arm.com>
10729
10730         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Replace
10731         whitespaces with tab.
10732
10733 2015-08-19  Florian Weimer  <fweimer@redhat.com>
10734
10735         * prj.adb (For_Every_Project_Imported_Context.Recursive_Check_Context):
10736         Move Name_Id_Set instantiation to the Prj package, to avoid trampolines.
10737         * prj-proc.adb (Process.Process_Expression_Variable_Decl):
10738         Move Name_Ids instantiation to the Prj.Proc package, to avoid
10739         trampolines.
10740
10741 2015-08-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10742
10743         * config/arm/arm.c (bounds_check): Use %wd print format
10744         for HOST_WIDE_INT arguments.
10745
10746 2015-08-18  Trevor Saunders  <tbsaunde@tbsaunde.org>
10747
10748         * bb-reorder.c, cfgloop.h, collect2.c, combine.c, dse.c,
10749         dwarf2cfi.c, gcse-common.h, genopinit.c, ggc-page.c, machmode.h,
10750         mcf.c, modulo-sched.c, omp-low.c, read-rtl.c, sched-rgn.c,
10751         signop.h, tree-call-cdce.c, tree-dfa.c, tree-diagnostic.c,
10752         tree-inline.h, tree-scalar-evolution.c, tree-ssa-address.c,
10753         tree-ssa-loop-niter.c, tree-ssa-loop.h, tree-ssa-pre.c,
10754         tree-ssa-reassoc.c, tree-ssa-sccvn.h, tree-ssa-structalias.c,
10755         tree-ssa-uninit.c, tree-ssa.h, tree-vect-loop-manip.c,
10756         tree-vectorizer.h, tree-vrp.c, var-tracking.c: Remove useless
10757         typedefs.
10758
10759 2015-08-18  trevor Saunders  <tbsaunde@tbsaunde.org>
10760
10761         * bt-load.c, cgraph.h, dwarf2out.c, dwarf2out.h, final.c,
10762         function.c, graphite-scop-detection.c, haifa-sched.c,
10763         ipa-devirt.c, ipa-split.c, recog.c, ree.c, stmt.c,
10764         tree-data-ref.c, tree-ssa-dom.c, tree-ssa-loop-ivopts.c,
10765         varasm.c: Remove typedefs of structs.
10766
10767 2015-08-18  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>
10768
10769         * config/rs6000/altivec.h (vec_adde): New define.
10770         (vec_addec): Likewise.
10771         (vec_double): Likewise.
10772         (vec_bperm): Likewise.
10773         (vec_gb): Likewise.
10774         * config/rs6000/rs6000-builtin.def (ADDE): New
10775         BU_ALTIVEC_OVERLOAD_3.
10776         (ADDEC): Likewise.
10777         (DOUBLE): New BU_VSX_OVERLOAD_1.
10778         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add new
10779         entries for ALTIVEC_BUILTIN_VEC_ADDC, ALTIVEC_BUILTIN_VEC_ADDE,
10780         ALTIVEC_BUILTIN_VEC_ADDEC, ALTIVEC_BUILTIN_VEC_ANDC,
10781         VSX_BUILTIN_VEC_DOUBLE, ALTIVEC_BUILTIN_VEC_MERGEH,
10782         ALTIVEC_BUILTIN_VEC_MERGEL, ALTIVEC_BUILTIN_VEC_NOR,
10783         ALTIVEC_BUILTIN_VEC_OR, ALTIVEC_BUILTIN_VEC_XOR,
10784         ALTIVEC_BUILTIN_VEC_PERM, ALTIVEC_BUILTIN_VEC_SEL,
10785         P8V_BUILTIN_VEC_EQV, P8V_BUILTIN_VEC_NAND, P8V_BUILTIN_VEC_ORC,
10786         and P8V_BUILTIN_VEC_VBPERMQ.
10787
10788 2015-08-18  Jason Merrill  <jason@redhat.com>
10789
10790         * print-tree.c (print_node): Handle TREE_BINFO.
10791
10792 2015-08-18  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
10793
10794         PR middle-end/36757
10795         * builtins.c (expand_builtin_signbit): Add asserts to make sure
10796         we can expand BUILT_IN_SIGNBIT inline.
10797         * builtins.def (BUILT_IN_SIGNBIT): Make type-generic.
10798         * doc/extend.texi: Document the type-generic __builtin_signbit.
10799
10800 2015-08-18  Richard Sandiford  <richard.sandiford@arm.com>
10801
10802         PR rtl-optimization/67218
10803         * simplify-rtx.c (exact_int_to_float_conversion_p): New function.
10804         (simplify_unary_operation_1): Use it.
10805
10806 2015-08-18  Marek Polacek  <polacek@redhat.com>
10807
10808         PR middle-end/67222
10809         * gimple-low.c (lower_stmt): Don't lower BUILT_IN_POSIX_MEMALIGN
10810         if the call isn't valid.
10811         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Check builtins using
10812         gimple_call_builtin_p.
10813         (call_may_clobber_ref_p_1): Likewise.
10814         (stmt_kills_ref_p): Likewise.
10815
10816 2015-08-18  Robert Suchanek  <robert.suchanek@imgtec.com>
10817
10818         * config/mips/mips-protos.h (mips_hard_regno_rename_ok): New prototype.
10819         * config/mips/mips.c (mips_hard_regno_rename_ok): New function.
10820         (mips_hard_regno_scratch_ok): Likewise.
10821         (TARGET_HARD_REGNO_SCRATCH_OK): Define macro.
10822         * config/mips/mips.h (HARD_REGNO_RENAME_OK): New.
10823
10824 2015-08-18  Bin Cheng  <bin.cheng@arm.com>
10825
10826         * tree-ssa-loop-niter.c (refine_value_range_using_guard): New.
10827         (determine_value_range): Call refine_value_range_using_guard for
10828         each loop initial condition to improve value range.
10829
10830 2015-08-17  Aldy Hernandez  <aldyh@redhat.com>
10831
10832         * config/i386/i386.c: Remove include of fibheap.h.
10833
10834 2015-08-17  Richard Biener  <rguenther@suse.de>
10835
10836         PR tree-optimization/67221
10837         * tree-ssa-sccvn.c (visit_phi): Keep all-TOP args TOP.
10838         (sccvn_dom_walker::before_dom_children): Mark backedges of
10839         non-executable blocks as not executable.
10840
10841 2015-08-17  David Sherwood  <david.sherwood@arm.com>
10842
10843         * config/arm/arm.c (neon_element_bits): Replace call to
10844         GET_MODE_BITSIZE (GET_MODE_INNER (m)) with GET_MODE_UNIT_BITSIZE (m).
10845         * config/arm/neon.md (neon_vget_lane<mode>): Likewise.
10846         (neon_vget_laneu<mode>, neon_vset_lane<mode>): Likewise
10847         (neon_vdup_lane<mode>): Likewise.
10848         * config/i386/i386.c (ix86_expand_int_vcond): Likewise.
10849         (ix86_expand_multi_arg_builtin, ix86_expand_reduc): Likewise.
10850         (expand_vec_perm_palignr, ix86_expand_sse2_abs): Likewise.
10851         * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
10852         * config/spu/spu.c (arith_immediate_p): Likewise.
10853         * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
10854         * expr.c (expand_expr_real_2): Likewise.
10855         * optabs.c (shift_amt_for_vec_perm_mask): Likewise.
10856         * simplify-rtx.c (simplify_immed_subreg): Likewise.
10857         * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
10858         * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): Likewise.
10859         New variable.
10860         * fold-const.c (fold_binary_loc): Replace call to
10861         GET_MODE_PRECISION (GET_MODE_INNER (m)) with
10862         GET_MODE_UNIT_PRECISION (m).
10863
10864 2015-08-17  Mike Stump  <mikestump@comcast.net>
10865
10866         * config/arm/arm.c (arm_block_move_unaligned_straight):
10867         Emit normal move instead of unaligned load when source or destination
10868         are appropriately aligned.
10869
10870 2015-08-17  Richard Biener  <rguenther@suse.de>
10871             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
10872
10873         PR middle-end/16107
10874         * match.pd (div (coss (op @0) : New simplifier.
10875
10876 2015-08-14  Alexandre Oliva  <aoliva@redhat.com>
10877
10878         PR rtl-optimization/64164
10879         PR bootstrap/66978
10880         PR middle-end/66983
10881         PR rtl-optimization/67000
10882         PR middle-end/67034
10883         PR middle-end/67035
10884         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
10885         * tree-ssa-copyrename.c: Removed.
10886         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
10887         -ftree-coalesce-vars.
10888         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
10889         * common.opt (ftree-copyrename): Ignore.
10890         (ftree-coalesce-inlined-vars): Likewise.
10891         * doc/invoke.texi: Remove the ignored options above.
10892         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
10893         * tree-ssa-coalesce.h: ... here.
10894         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
10895         headers required by it.
10896         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
10897         across variables when flag_tree_coalesce_vars.  Check register
10898         use and promoted modes to allow coalescing.  Do not coalesce
10899         maybe-byref parms with SSA_NAMEs of other variables, or
10900         anonymous SSA_NAMEs.  Moved to tree-ssa-coalesce.c.
10901         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
10902         with its member functions to tree-ssa-coalesce.c.
10903         (var_map_base_init): Likewise.  Renamed to
10904         compute_samebase_partition_bases.
10905         (partition_view_normal): Drop want_bases parameter.
10906         (partition_view_bitmap): Likewise.
10907         * tree-ssa-live.h: Adjust declarations.
10908         * tree-ssa-coalesce.c: Include explow.h and cfgexpand.h.
10909         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
10910         default defs at the entry point.
10911         (dump_part_var_map): New.
10912         (compute_optimized_partition_bases): New, called by...
10913         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
10914         of compute_samebase_partition_bases.  Adjust.
10915         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
10916         * cfgexpand.c (leader_merge, parm_maybe_byref_p): New.
10917         (ssa_default_def_partition): New.
10918         (get_rtl_for_parm_ssa_default_def): New.
10919         (align_local_variable, add_stack_var): Support anonymous SSA
10920         names.
10921         (defer_stack_allocation): Likewise.  Declare earlier.
10922         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
10923         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
10924         Do no record deferred-allocation marker in
10925         SA.partition_to_pseudo.
10926         (expand_stack_vars): Adjust check for the marker in it.
10927         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
10928         redundant MEM attr setting.
10929         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
10930         from...
10931         (expand_one_stack_var): ... this.  New wrapper to check and
10932         skip already expanded SSA partitions.
10933         (record_alignment_for_reg_var): New, factored out of...
10934         (expand_one_var): ... this.
10935         (expand_one_ssa_partition): New.
10936         (adjust_one_expanded_partition_var): New.
10937         (expand_one_register_var): Check and skip already expanded SSA
10938         partitions.
10939         (expand_used_vars): Don't create DECLs for anonymous SSA
10940         names.  Expand all SSA partitions, then adjust all SSA names.
10941         (pass::execute): Replace the loops that set
10942         SA.partition_to_pseudo from partition leaders and cleared
10943         DECL_RTL for multi-location variables, and that which used to
10944         rename vars and set attrs, with one that clears DECL_RTL and
10945         checks that PARMs and RESULTs default_defs match DECL_RTL.
10946         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
10947         * emit-rtl.c: Include stor-layout.h.
10948         (set_reg_attrs_for_parm): Handle NULL decl.
10949         (set_reg_attrs_for_decl_rtl): Take mode from expression if
10950         it's not a DECL.
10951         * stmt.c (emit_case_decision_tree): Pass it the SSA_NAME
10952         rather than its possibly-NULL DECL.
10953         * explow.c (promote_ssa_mode): New.
10954         * explow.h (promote_ssa_mode): Declare.
10955         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
10956         (read_complex_part): Export.
10957         * expr.h (read_complex_part): Declare.
10958         * cfgexpand.h (parm_maybe_byref_p): Declare.
10959         * function.c: Include cfgexpand.h.
10960         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
10961         (use_register_for_parm_decl): Wrapper for the above to
10962         special-case the result_ptr.
10963         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
10964         (split_complex_args): Take assign_parm_data_all argument.
10965         Pass it to rtl_for_parm.  Set up rtl and context for split
10966         args.  Reset complex parm before fetching its default decl
10967         rtl.
10968         (assign_parms_unsplit_complex): Use the default-def complex
10969         parm rtl if it matches the components.
10970         (assign_parms_augmented_arg_list): Adjust.
10971         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
10972         multiple locations.  Recognize split complex args.
10973         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
10974         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
10975         (assign_parm_setup_block): Prefer SSA-assigned location, and
10976         fill in its address if the memory location of a maybe-byref
10977         parm was not assigned by cfgexpand.
10978         (assign_parm_setup_reg): Likewise.  Adjust its mode as
10979         needed.  Use entry_parm for equiv if stack_parm is NULL.  Make
10980         sure passed_pointer parms don't need conversion.  Copy address
10981         or value as needed.
10982         (assign_parm_setup_stack): Prefer SSA-assigned location.
10983         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
10984         rtl before testing for pointer bounds.  Special-case result_ptr.
10985         (expand_function_start): Maybe reset DECL_RTL of result.
10986         Prefer SSA-assigned location for result and static chain.
10987         Factor out DECL_RESULT and SET_DECL_RTL.  Convert static chain
10988         to Pmode if needed, from H.J. Lu  <hongjiu.lu@intel.com>.
10989         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
10990         anonymous SSA names.  Use promote_ssa_mode.
10991         (get_temp_reg): Likewise.
10992         (remove_ssa_form): Adjust.
10993         * stor-layout.c (layout_decl): Don't set mem attributes of
10994         non-MEMs.
10995         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
10996         and get its reg_usage for reg invalidation.
10997         (compute_bb_dataflow): Pass it insn.
10998         (emit_notes_in_bb): Likewise.
10999
11000 2015-08-14  Marek Polacek  <polacek@redhat.com>
11001
11002         * tree-core.h (tree_base): Fix typo.
11003
11004 2015-08-14  Marek Polacek  <polacek@redhat.com>
11005
11006         PR middle-end/67133
11007         * gimple.c (infer_nonnull_range_by_attribute): Check that the
11008         nonnull argument position is not outside function arguments.
11009
11010 2015-08-14  Matthew Wahab  <matthew.wahab@arm.com>
11011
11012         PR target/67143
11013         * config/aarch64/atomics.md (atomic_<optab><mode>): Replace
11014         'lconst_atomic' with 'const_atomic'.
11015         (atomic_fetch_<optab><mode>): Likewise.
11016         (atomic_<optab>_fetch<mode>): Likewise.
11017         * config/aarch64/iterators.md (lconst-atomic): Move below
11018         'const_atomic'.
11019         (const_atomic): New.
11020
11021 2015-08-14  Thomas Schwinge  <thomas@codesourcery.com>
11022             Bernd Schmidt  <bernds@codesourcery.com>
11023
11024         * config/nvptx/nvptx.c (nvptx_option_override): Don't override
11025         debug options.
11026         * config/nvptx/nvptx.h (DWARF2_LINENO_DEBUGGING_INFO): Define.
11027         (DWARF2_DEBUGGING_INFO): Don't define.
11028         * debug.h (dwarf2_lineno_debug_hooks): Declare.
11029         * toplev.c (process_options): Add a case for it.
11030         * dwarf2out.c (dwarf2_lineno_debug_hooks): New variable.
11031         (dwarf2out_init): Skip most initializations if
11032         DWARF2_LINENO_DEBUGGING_INFO, but set cur_line_info_table in that
11033         case.
11034         * defaults.h (PREFERRED_DEBUGGING_TYPE): Also use DWARF2_DEBUG if
11035         DWARF2_LINENO_DEBUGGING_INFO.
11036         * opts.c (set_debug_level): Likewise.
11037
11038 2015-08-14  James Greenhalgh  <james.greenhalgh@arm.com>
11039
11040         * config/arm/types.md (is_neon_type): Add missing types.
11041
11042 2015-08-14  Yuri Rumyantsev  <ysrumyan@gmail.com>
11043
11044         * config/i386/driver-i386.c (host_detect_local_cpu): Add support
11045         for skylake.
11046         * config/i386/i386.c (PTA_SKYLAKE): New macros.
11047         (processor_alias_table): Add skylake description.
11048         (enum processor_model): Add skylake processor.
11049         (arch_names_table): Add skylake record.
11050         * doc/invoke.texi: Add skylake item.
11051
11052 2015-08-13  Andrew MacLeod  <amacleod@redhat.com>
11053
11054         * ira-int.h: Include recog.h.
11055         * ira-build.c: Don't include recog.h.
11056         * ira-color.c: Likewise.
11057         * ira-conflicts.c: Likewise.
11058         * ira-costs.c: Likewise.
11059         * ira-emit.c: Likewise.
11060         * ira-lives.c: Likewise.
11061         * ira.c: Likewise.
11062         * sched-deps.c: Likewise.
11063         * sel-sched.c: Likewise.
11064         * target-globals.c: Likewise.
11065
11066 2015-08-13  Richard Sandiford  <richard.sandiford@arm.com>
11067
11068         PR bootstrap/55035
11069         * reload1.c (elimination_costs_in_insn): Make it obvious to the
11070         compiler that the n_dups and n_operands loop bounds are invariant.
11071
11072 2015-08-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11073
11074         * ifcvt.c (noce_try_store_flag_constants): Handle PLUS-immediate
11075         expressions in A and B.
11076
11077 2015-08-13  Richard Biener  <rguenther@suse.de>
11078
11079         * tree.c (nonnull_arg_p): Move from ...
11080         * tree-vrp.c (nonnull_arg_p): ... here.
11081         * tree.h (nonnull_arg_p): Declare.
11082         * tree-ssa-sccvn.c (init_scc_vn): Perform all lattice init
11083         here, register ptr != 0 for nonnull_arg_p pointer arguments.
11084         Properly initialize static chain and by-reference result pointer.
11085         (run_scc_vn): Adjust.
11086
11087 2015-08-13  Robert Suchanek  <robert.suchanek@imgtec.com>
11088
11089         * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Enable load/store pairs for
11090         TUNE_I6400.
11091
11092 2015-08-13  Matthew Wahab  <matthew.wahab@arm.com>
11093
11094         * config/aarch64/aarch64-protos.h
11095         (aarch64_gen_atomic_cas): Declare.
11096         * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap):
11097         Choose appropriate instruction pattern for the target.
11098         (aarch64_gen_atomic_cas): New.
11099         * config/aarch64/atomics.md (UNSPECV_ATOMIC_CAS): New.
11100         (atomic_compare_and_swap<mode>_1): Rename to
11101         aarch64_compare_and_swap<mode>.  Fix some indentation.
11102         (aarch64_compare_and_swap<mode>_lse): New.
11103         (aarch64_atomic_cas<mode>): New.
11104
11105 2015-08-13  Matthew Wahab  <matthew.wahab@arm.com>
11106
11107         * config/aarch64/aarch64.h (AARCH64_ISA_LSE): New.
11108         (TARGET_LSE): New.
11109
11110 2015-08-13  Richard Biener  <rguenther@suse.de>
11111
11112         PR tree-optimization/67191
11113         * tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children): Remove
11114         assert we value-numbered last stmts operand because it can validly
11115         trigger for unreachable code.
11116
11117 2015-08-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11118
11119         PR rtl-optimization/67103
11120         * ifcvt.c (noce_try_store_flag_constants): Move
11121         x = (-(test != 0) & (b - a)) + a transformation to...
11122         (noce_try_cmove): ... Here.  Try it if normal conditional
11123         move fails.
11124
11125 2015-08-13  Robert Suchanek  <robert.suchanek@imgtec.com>
11126
11127         * config/mips/mips.c (mips_rtx_cost_data): Remove costs for W32 and W64
11128         pseudo-processors.
11129         * config/mips/mips.md (processor): Remove w32 and w64.
11130
11131 2015-08-13  Richard Biener  <rguenther@suse.de>
11132
11133         PR tree-optimization/66502
11134         PR tree-optimization/67167
11135         * tree-ssa-sccvn.c (vn_phi_compute_hash): Do not include
11136         backedge arguments.
11137         (vn_phi_lookup): Adjust.
11138         (vn_phi_insert): Likewise.
11139         (visit_phi): Prefer to value-number to another PHI node
11140         over value-numbering to a PHI argument.
11141         (init_scc_vn): Mark DFS back edges.
11142
11143 2015-08-13  Richard Biener  <rguenther@suse.de>
11144
11145         * gimple.h (gcall::code_): New constant static member.
11146         (gcond::code_): Likewise.
11147         * gimple.c (gcall::code_): Define.
11148         (gcond::code_): Likewise.
11149         (is_a_helper <const gcond *>): Add.
11150         (gimple_call_lhs): Use GIMPLE_CHECK2 in the gimple overload
11151         and forward to a new gcall overload with less checking and a
11152         cheaper way to access the operand.
11153         (gimple_call_lhs_ptr): Likewise.
11154         (gimple_call_set_lhs): Likewise.
11155         (gimple_call_internal_p): Likewise.
11156         (gimple_call_with_bounds_p): Likewise.
11157         (gimple_call_set_with_bounds): Likewise.
11158         (gimple_call_internal_fn): Likewise.
11159         (gimple_call_set_ctrl_altering): Likewise.
11160         (gimple_call_ctrl_altering_p): Likewise.
11161         (gimple_call_fntype): Likewise.
11162         (gimple_call_fn): Likewise.
11163         (gimple_call_fn_ptr): Likewise.
11164         (gimple_call_set_fndecl): Likewise.
11165         (gimple_call_fndecl): Likewise.
11166         (gimple_call_chain): Likewise.
11167         (gimple_call_num_args): Likewise.
11168         (gimple_call_arg): Likewise.
11169         (gimple_call_arg_ptr): Likewise.
11170         (gimple_call_set_arg): Likewise.
11171         (gimple_call_noreturn_p): Likewise.
11172         (gimple_cond_code): Likewise.
11173         (gimple_cond_lhs): Likewise.
11174         (gimple_cond_rhs): Likewise.
11175         (gimple_has_lhs): Reduce checking.
11176
11177 2015-08-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
11178
11179         PR middle-end/25529
11180         * match.pd (div (mult @0 @1) @1) : New simplifier.
11181
11182 2015-08-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
11183
11184         PR target/67071
11185         * config/rs6000/predicates.md (easy_vector_constant_vsldoi): New
11186         predicate to allow construction of vector constants using the
11187         VSLDOI vector shift instruction.
11188
11189         * config/rs6000/rs6000-protos.h (vspltis_shifted): Add
11190         declaration.
11191
11192         * config/rs6000/rs6000.c (vspltis_shifted): New function to return
11193         the number of bytes to be shifted left and filled in with either
11194         all zero or all one bits.
11195         (gen_easy_altivec_constant): Call vsplitis_shifted if no other
11196         methods exist.
11197         (output_vec_const_move): On power8, generate XXLORC to generate
11198         a vector constant with all 1's. Do a split if we need to use a
11199         VSLDOI instruction.
11200
11201         * config/rs6000/rs6000.h (EASY_VECTOR_MSB): Use mode mask to
11202         properly test for the MSB.
11203
11204         * config/rs6000/altivec.md (VSLDOI splitter): Add splitter for
11205         vector constants that can be created with VSLDOI.
11206
11207 2015-08-11  Trevor Saunders  <tbsaunde@tbsaunde.org>
11208
11209         revert:
11210         * compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c,
11211         gimple-ssa-strength-reduction.c, graphite.c, init-regs.c,
11212         ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c,
11213         omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c,
11214         tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
11215         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
11216         tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c,
11217         tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c,
11218         vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous
11219
11220 2015-08-12  Max Filippov  <jcmvbkbc@gmail.com>
11221
11222         * config/xtensa/constraints.md (define_constraint "Y"): New
11223         constraint.
11224         * config/xtensa/elf.h (ASM_SPEC): Add m(no-)auto-litpools.
11225         * config/xtensa/linux.h (ASM_SPEC): Likewise.
11226         * config/xtensa/predicates.md (move_operand): Match constants
11227         and symbols in the presence of TARGET_AUTO_LITPOOLS.
11228         * config/xtensa/xtensa.c (xtensa_valid_move): Don't allow
11229         immediate references to TLS data.
11230         (xtensa_emit_move_sequence): Don't force constants to memory in
11231         the presence of TARGET_AUTO_LITPOOLS.
11232         (print_operand): Add 'y' format, same as default, but capable of
11233         printing SF mode constants as well.
11234         * config/xtensa/xtensa.md (movsi_internal, movhi_internal)
11235         (movsf_internal): Add movi pattern that loads literal.
11236         (movsf, movdf): Don't force constants to memory in the presence
11237         of TARGET_AUTO_LITPOOLS.
11238         (movdf_internal): Add 'Y' constraint.
11239         * config/xtensa/xtensa.opt (mauto-litpools): New option.
11240         * doc/invoke.text (Xtensa options): Document -mauto-litpools.
11241
11242 2015-08-12  Matthew Wahab  <matthew.wahab@arm.com>
11243
11244         * config/arm/arm-fpus.def: Replace booleans with feature flags.
11245         Update comment.
11246         * config/arm/arm.c (ARM_FPU): Update macro.
11247         * config/arm/arm.h (TARGET_NEON_FP16): Update feature test.
11248         (TARGET_FP16): Likewise.
11249         (TARGET_CRYPTO): Likewise.
11250         (TARGET_NEON): Likewise.
11251         (struct arm_fpu_desc): Remove fields neon, fp16 and crypto.  Add
11252         field features.
11253
11254 2015-08-12  Tom de Vries  <tom@codesourcery.com>
11255
11256         PR other/67092
11257         PR other/67098
11258         * doc/install.texi: Remove --with_host_libstdcxx item.  Update
11259         --with-stage1-libs, --with-boot-ldflags and --with-boot-libs items
11260         accordingly.  Mention default for --with-stage1-ldflags.
11261
11262 2015-08-12  Matthew Wahab  <matthew.wahab@arm.com>
11263
11264         * config/arm/arm.h (arm_fpu_feature_set): New.
11265         (ARM_FPU_FSET_HAS): New.
11266         (FPU_FL_NONE): New.
11267         (FPU_FL_NEON): New.
11268         (FPU_FL_FP16): New.
11269         (FPU_FL_CRYPTO): New.
11270
11271 2015-08-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11272
11273         * config/aarch64/aarch64.c (initialize_aarch64_code_model): Break
11274         after -mcmodel=large -fPIC sorry.
11275
11276 2015-08-12  Richard Biener  <rguenther@suse.de>
11277
11278         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Also canonicalize
11279         comparison operand order and commutative ternary op operand order.
11280         (sccvn_dom_walker::cond_stack): New state to track temporary
11281         expressions.
11282         (sccvn_dom_walker::after_dom_children): Remove tempoary expressions
11283         no longer valid.
11284         (sccvn_dom_walker::record_cond): Add a single temporary conditional
11285         expression.
11286         (sccvn_dom_walker::record_conds): Add a temporary conditional
11287         expressions and all related expressions also true/false.
11288         (sccvn_dom_walker::before_dom_children): Record temporary
11289         expressions based on the controlling condition of a single
11290         predecessor.  When trying to simplify a conditional statement
11291         lookup expressions we might have inserted earlier.
11292
11293 2015-08-12  Yvan Roux  <yvan.roux@linaro.org>
11294
11295         PR target/67127
11296         * config/arm/arm.md (movdi): Restrict illegitimate ldrd/strd checking
11297         to ARM core registers.
11298
11299 2015-08-12  Nathan Sidwell  <nathan@acm.org>
11300
11301         * tree-vrp.c (simplify_min_or_max_using_ranges): New.
11302         (simplify_stmt_using_ranges): Simplify MIN and MAX exprs.
11303
11304 2015-08-12  Simon Dardis  <simon.dardis@imgtec.com>
11305
11306         * config/mips/mips.c (mips_store_data_bypass_p): Bring code into
11307         line with comments.
11308         * config/mips/sb1.md: Update usage of mips_store_data_bypass_p.
11309
11310 2015-08-12  Richard Biener  <rguenther@suse.de>
11311
11312         * gimple.h (remove_pointer): New trait.
11313         (GIMPLE_CHECK2): New inline template function.
11314         (gassign::code_): New constant static member.
11315         (is_a_helper<const gassign *>): Add.
11316         (gimple_assign_lhs): Use GIMPLE_CHECK2 in the gimple overload
11317         and forward to a new gassign overload with less checking and a
11318         cheaper way to access the operand.
11319         (gimple_assign_lhs_ptr): Likewise.
11320         (gimple_assign_set_lhs): Likewise.
11321         (gimple_assign_rhs1, gimple_assign_rhs1_ptr, gimple_assign_set_rhs1):
11322         Likewise.
11323         (gimple_assign_rhs2, gimple_assign_rhs2_ptr, gimple_assign_set_rhs2):
11324         Likewise.
11325         (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3):
11326         Likewise.
11327         (gimple_assign_rhs_code): Likewise.
11328         * gimple.c (gassign::code_): Define.
11329
11330 2015-08-12  Richard Biener  <rguenther@suse.de>
11331
11332         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
11333         Eliminate edges marked as not executable by SCCVN.
11334         * tree-ssa-sccvn.c: Include gimple-iterator.h.
11335         (cond_dom_walker): Rename to sccvn_dom_walker.
11336         (sccvn_dom_walker::before_dom_children): Value-number defs
11337         of all stmts.
11338         (run_scc_vn): Remove loop value-numbering all SSA names.
11339         Drop not visited SSA names to varying.
11340
11341 2015-08-11  Trevor Saunders  <tbsaunde@tbsaunde.org>
11342
11343         * compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c,
11344         gimple-ssa-strength-reduction.c, graphite.c, init-regs.c,
11345         ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c,
11346         omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c,
11347         tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
11348         tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
11349         tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c,
11350         tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c,
11351         vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous
11352
11353 2015-08-11  Uros Bizjak  <ubizjak@gmail.com>
11354
11355         PR target/66954
11356         * config/i386/i386.c (get_builtin_code_for_version): Add P_PCLMUL
11357         to enum feature_priority and feature_list.
11358         (fold_builtin_cpu): Add F_PCLMUL to enum processor_features
11359         and isa_names_table.
11360
11361 2015-08-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
11362
11363         * tree-vect-stmts.c (vectorizable_shift): Add missed test on
11364         vect_induction_def.
11365
11366 2015-08-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11367
11368         PR c/66098
11369         PR c/66711
11370         * diagnostic.c (diagnostic_classify_diagnostic): Take -Werror into
11371         account when deciding what was the command-line status.
11372
11373 2015-08-11  Nathan Sidwell  <nathan@acm.org>
11374
11375         * tree-vrp.c (simplify_abs_using_ranges): Simplify.
11376
11377         * tree-ssa-phiopt.c (minmax_replacement): Create new ssa name if
11378         we're not the only contributor to target phi.
11379
11380 2015-08-11  Jiong Wang  <jiong.wang@arm.com>
11381
11382         * config/aarch64/aarch64.h (REG_CLASS_NAMES): Add the missing ',' after
11383         FIXED_REG0.
11384
11385 2015-08-11  Tom de Vries  <tom@codesourcery.com>
11386
11387         * tree-cfg.c (move_sese_region_to_fn): Add todo comment.
11388
11389 2015-08-10  H.J. Lu  <hongjiu.lu@intel.com>
11390
11391         * config/i386/i386.c (processor_alias_table): Replace CPU_KNL
11392         with CPU_SLM.
11393         * config/i386/i386.md (cpu): Remove knl.
11394
11395 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
11396
11397         PR libgomp/65742
11398         PR middle-end/66332
11399         * builtins.c (expand_builtin_acc_on_device) [ACCEL_COMPILER]: Emit
11400         open-coded sequence.
11401         * omp-low.c (oacc_process_reduction_data): Remove handline of
11402         GOMP_DEVICE_HOST_NONSHM.
11403
11404         * lto-streamer-in.c (lto_input_mode_table): Adjust to
11405         GET_MODE_INNER changes.
11406
11407 2015-08-10  Thomas Schwinge  <thomas@codesourcery.com>
11408             Ilya Verbin  <ilya.verbin@intel.com>
11409
11410         * lto-streamer-in.c (lto_input_mode_table): Correctly advance iterator.
11411
11412 2015-08-09  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11413
11414         * doc/options.texi (EnabledBy): Document that the argument must be
11415         a Common option.
11416         * doc/invoke.texi (Wnull-dereference): Move after Wnonnull.
11417         Not enabled by -Wall.
11418         * optc-gen.awk: Give nicer error messages. Detect if the argument
11419         of EnabledBy is not a Common option.
11420         * common.opt (Wnull-dereference): Not enabled by -Wall.
11421         * opt-functions.awk (lang_enabled_by): Nicer error messages.
11422
11423 2015-08-09  H.J. Lu  <hongjiu.lu@intel.com>
11424
11425         * config/i386/driver-i386.c (host_detect_local_cpu): Treat
11426         model == 0x4f as Broadwell.
11427
11428 2015-08-08  Segher Boessenkool  <segher@kernel.crashing.org>
11429
11430         PR rtl-optimization/67028
11431         * combine.c (simplify_comparison): Fix comment.  Rearrange code.
11432         Add test to see if a const_int fits in the new mode.
11433
11434 2015-08-07  DJ Delorie  <dj@redhat.com>
11435
11436         * config/rx/rx.c (rx_mode_dependent_address_p): Remove unneeded asserts.
11437
11438 2015-08-07  H.J. Lu  <hongjiu.lu@intel.com>
11439
11440         PR rtl-optimization/67029
11441         * ira-color.c: Include "recog.h" before including "ira-int.h".
11442         * target-globals.c: Likewise.
11443         * ira-lives.c (ira_implicitly_set_insn_hard_regs): Add an
11444         adds an alternative_mask argument and use it instead of
11445         preferred_alternatives.
11446         * ira.h (ira_implicitly_set_insn_hard_regs): Moved to ...
11447         * ira-int.h (ira_implicitly_set_insn_hard_regs): Here.
11448         * sched-deps.c: Include "ira-int.h" after including "ira.h".
11449         (sched_analyze_insn): Update call to
11450         ira_implicitly_set_insn_hard_regs.
11451         * sel-sched.c: Include "ira-int.h" after including "ira.h".
11452         (implicit_clobber_conflict_p): Update call to
11453         ira_implicitly_set_insn_hard_regs.
11454
11455 2015-08-06  Uros Bizjak  <ubizjak@gmail.com>
11456
11457         * Makefile.in (.INTERMEDIATE): Add gpl.pod.
11458
11459 2015-08-07  Kaz Kojima  <kkojima@gcc.gnu.org>
11460
11461         PR target/67002
11462         * config/sh/sh.c (sh_recog_treg_set_expr): Return false when
11463         currently_expanding_to_rtl is set.
11464
11465 2015-08-06  Yaakov Selkowitz  <yselkowi@redhat.com>
11466
11467         * configure.ac: Define LIBICONV_DEP with in-tree libiconv.
11468         * configure: Regenerate.
11469
11470 2015-08-06  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11471             Jiong Wang  <jiong.wang@arm.com>
11472
11473         * config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
11474         * config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
11475         (REG_CLASS_NAMES): Likewise.
11476         (REG_CLASS_CONTENTS): Likewise.
11477         * config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
11478         (aarch64_register_move_cost): Likewise.
11479         (aarch64_load_symref_appropriately): Invoke the new added pattern if
11480         possible.
11481         * config/aarch64/constraints.md (Uc0): New constraint.
11482
11483 2015-08-06  Jiong Wang  <jiong.wang@arm.com>
11484
11485         * config/aarch64/constraints.md (Usf): Add the test of
11486         aarch64_is_noplt_call_p.
11487
11488 2015-08-06  Jiong Wang  <jiong.wang@arm.com>
11489
11490         * config/aarch64/aarch64-protos.h (aarch64_is_noplt_call_p): New
11491         declaration.
11492         * config/aarch64/aarch64.c (aarch64_is_noplt_call_p): New function.
11493         * config/aarch64/aarch64.md (call_value_symbol): Check noplt scenarios.
11494         (call_symbol): Likewise.
11495
11496 2015-08-06  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
11497
11498         * tree-vect-patterns.c (vect_recog_mult_pattern): New function
11499         for vectorizing multiplication patterns.
11500         * tree-vectorizer.h: Adjust the number of patterns.
11501
11502 2015-08-06  Uros Bizjak  <ubizjak@gmail.com>
11503
11504         * config/i386/sse.md (*vec_concatv2df): Declare added
11505         alternatives as sselog type.
11506
11507 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11508
11509         * config/s390/s390.c (s390_dwarf_frame_reg_mode): Return Pmode for
11510         all GPRs.
11511
11512 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11513
11514         * config/s390/s390.c (s390_expand_tbegin): Expand either
11515         tbegin_1_z13 or tbegin_1 depending on VX flag.
11516         * config/s390/s390.md ("tbegin_1_z13"): New expander.
11517
11518 2015-08-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11519
11520         * config/s390/s390.opt: Clarify description for -mzvector
11521         * doc/invoke.texi: Add documentation for -mhtm, -mvx, and
11522         -mzvector.
11523
11524 2015-08-06  Richard Biener  <rguenther@suse.de>
11525
11526         * gimple.h (gimple_call_set_fn): Access op member directly.
11527         (gimple_call_chain_ptr): Likewise.
11528         (gimple_call_set_chain): Likewise.
11529         (gimple_cond_lhs_ptr): Likewise.
11530         (gimple_cond_set_lhs): Likewise.
11531         (gimple_cond_rhs_ptr): Likewise.
11532         (gimple_cond_set_rhs): Likewise.
11533         (gimple_cond_true_label): Likewise.
11534         (gimple_cond_set_true_label): Likewise.
11535         (gimple_cond_set_false_label): Likewise.
11536         (gimple_cond_false_label): Likewise.
11537         (gimple_label_label): Likewise.
11538         (gimple_label_set_label): Likewise.
11539         (gimple_goto_set_dest): Likewise.
11540         (gimple_asm_input_op): Likewise.
11541         (gimple_asm_input_op_ptr): Likewise.
11542         (gimple_asm_set_input_op): Likewise.
11543         (gimple_asm_output_op): Likewise.
11544         (gimple_asm_output_op_ptr): Likewise.
11545         (gimple_asm_set_output_op): Likewise.
11546         (gimple_asm_clobber_op): Likewise.
11547         (gimple_asm_set_clobber_op): Likewise.
11548         (gimple_asm_label_op): Likewise.
11549         (gimple_asm_set_label_op): Likewise.
11550         (gimple_switch_index): Likewise.
11551         (gimple_switch_index_ptr): Likewise.
11552         (gimple_return_retval_ptr): Likewise.
11553         (gimple_return_retval): Likewise.
11554         (gimple_return_set_retval): Likewise.
11555         (gimple_switch_set_index): Likewise.  Remove superfluous GIMPLE_CHECK.
11556         (gimple_switch_label): Likewise.
11557         (gimple_switch_set_label): Likewise.
11558
11559 2015-08-06  Richard Biener  <rguenther@suse.de>
11560
11561         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Simplify
11562         bool comparison canonicalization and restrict to integers.
11563
11564 2015-08-05  Andrew MacLeod  <amacleod@redhat.com>
11565
11566         * coretypes.h (enum symbol_visibility): Relocate here.
11567         * flag-types.h (enum symbol_visibility): Remove.
11568         * tree-core.h (enum symbol_visibility): Remove.
11569
11570 2015-08-05  Lynn Boger  <laboger@linux.vnet.ibm.com>
11571
11572         PR target/66870
11573         * config/rs6000/rs6000.c (rs6000_emit_prologue): Check
11574         for no_split_stack function attribute along with
11575         flag_split_stack.
11576         (rs6000_expand_split_stack_prologue): Likewise.
11577
11578 2015-08-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>
11579             Jeff Law  <law@redhat.com>
11580
11581         PR c/16351
11582         * doc/invoke.texi (Wnull-dereference): New.
11583         * tree-vrp.c (infer_value_range): Update call to infer_nonnull_range.
11584         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour):
11585         Warn for potential NULL dereferences.
11586         (find_explicit_erroneous_behaviour): Warn for NULL dereferences.
11587         * ubsan.c (instrument_nonnull_arg): Call
11588         infer_nonnull_range_by_attribute.
11589         (instrument_nonnull_return): Likewise.
11590         * common.opt (Wnull-dereference); New.
11591         * gimple.c (infer_nonnull_range): Remove bool arguments.
11592         (infer_nonnull_range_by_dereference): New.
11593         (infer_nonnull_range_by_attribute): New.
11594         * gimple.h: Update declarations.
11595
11596 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
11597
11598         * gensupport.c (sequence_num): Replace with...
11599         (insn_sequence_num, split_sequence_num, peephole2_sequence_num):
11600         ...these new variables.
11601         (init_rtx_reader_args_cb): Update accordingly.
11602         (get_num_code_insns): Likewise.
11603         (read_md_rtx): Rework to use a while loop and get_c_test.
11604         Use the new counters.  Remove redundant DEFINE_SUBST case.
11605         * genoutput.c (gen_split): Delete.
11606         (main): Don't call it.
11607
11608 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
11609
11610         * gensupport.h (get_c_test): Declare.
11611         * gensupport.c (get_c_test): New function.
11612         * genconditions.c (main): Use it.
11613         * genrecog.c (validate_pattern): Likewise.
11614         (match_pattern_1): Likewise.  Remove c_test argument.
11615         (match_pattern): Update accordingly and remove c_test argument.
11616         (main): Update accordingly.
11617
11618 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
11619
11620         * gensupport.h (get_num_insn_codes): Declare.
11621         * gensupport.c (get_num_insn_codes): New function.
11622         * genattrtab.c (optimize_attrs): Rename max_insn_code to
11623         num_insn_codes.
11624         (main): Likewise.  Use get_num_insn_codes.
11625         * gencodes.c (main): Remove "last" and use get_num_insn_codes.
11626
11627 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
11628
11629         PR middle-end/66311
11630         * wide-int.cc (wi::from_mpz): Make sure that absolute mpz value
11631         is zero- rather than sign-extended.
11632
11633 2015-08-05  Richard Sandiford  <richard.sandiford@arm.com>
11634
11635         * target-insns.def (can_extend): Delete.
11636
11637 2015-08-05  Richard Biener  <rguenther@suse.de>
11638
11639         PR tree-optimization/67121
11640         * tree-if-conv.c (combine_blocks): Clear range-info produced
11641         by stmts no longer executed conditionally.
11642
11643 2015-08-05  Nick Clifton  <nickc@redhat.com>
11644
11645         * config/rl78/rl78.c (rl78_force_nonfar_3): Remove optimization
11646         to allow identical far pointers to remain.
11647
11648 2015-08-05  Richard Biener  <rguenther@suse.de>
11649
11650         PR middle-end/67120
11651         * match.pd: Compare address bases with == if they are decls
11652         or SSA names, not operand_equal_p.  Otherwise fail.
11653
11654 2015-08-05  Richard Biener  <rguenther@suse.de>
11655
11656         PR tree-optimization/67055
11657         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Handle
11658         NULL gimple_block.
11659
11660         * g++.dg/torture/pr67055.C: New testcase.
11661
11662 2015-08-05  Kirill Yukhin  <kirill.yukhin@intel.com>
11663
11664         * config/i386/i386.md (define_attr "isa"): Addd avx512vl and
11665         noavx512vl.
11666         (define_attr "enabled"): Handle avx521vl and noavx512vl.
11667         * config/i386/sse.md (define_insn "vec_dupv2df<mask_name>"): Split
11668         AVX-512 alternative out of SSE.
11669         (define_insn "*vec_concatv2df"): Ditto.
11670
11671 2015-08-05  Kirill Yukhin  <kirill.yukhin@intel.com>
11672
11673         * config/i386/i386.c (bdesc_args): Rename CODE_FOR_sse4_1_ptest into
11674         CODE_FOR_sse4_1_ptestv2di and CODE_FOR_avx_vtestps256 into
11675         CODE_FOR_avx_ptestv4di.
11676         * config/i386/sse.md (define_mode_iterator V_AVX): New.
11677         (define_mode_attr sse4_1): Extend to other 128/256-bit modes.
11678         (define_insn "avx_ptest256"): Merge this ...
11679         (define_insn "sse4_1_ptest"): And this ...
11680         (define_insn "<sse4_1>_ptest<mode>"): Into this. Use V_AVX iterator.
11681
11682 2015-08-05  Richard Biener  <rguenther@suse.de>
11683
11684         PR tree-optimization/67109
11685         * tree-vect-data-refs.c (vect_analyze_group_access_1): Check
11686         against too big groups.  Print whether this is a load or store
11687         group.  Rename from ...
11688         (vect_analyze_group_access): ... this which is now a wrapper
11689         dissolving an invalid group.
11690         (vect_analyze_data_ref_accesses): Print whether this is a load
11691         or store group.
11692
11693 2015-08-05  Richard Biener  <rguenther@suse.de>
11694
11695         PR middle-end/67107
11696         * match.pd: Guard const_binop result checking against NULL_TREE
11697         result.
11698
11699 2015-08-05  Kugan Vivekanandarajah  <kuganv@linaro.org>
11700
11701         * cse.c (cse_insn): Restoring old behaviour for src_eqv
11702          when dest and value in the REG_EQUAL are same and dest
11703          is STRICT_LOW_PART.
11704
11705 2015-08-04  Anatoly Sokolov  <aesok@post.ru>
11706
11707         * config/moxie/moxie.h (PRINT_OPERAND,
11708           PRINT_OPERAND_ADDRESS): Remove macros.
11709         * config/moxie/moxie-protos.h (moxie_print_operand,
11710           moxie_print_operand_address): Remove declaration.
11711         * config/moxie/moxie.c (TARGET_PRINT_OPERAND,
11712           TARGET_PRINT_OPERAND_ADDRESS): Define.
11713           (moxie_print_operand, moxie_print_operand_address): Make static.
11714
11715 2015-08-04  Szabolcs Nagy  <szabolcs.nagy@arm.com>
11716
11717         PR target/66731
11718         * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix NEG cost for FNMUL.
11719         (aarch64_rtx_mult_cost): Fix MULT cost with -frounding-math.
11720
11721 2015-08-04  Richard Biener  <rguenther@suse.de>
11722
11723         * genmatch.c (dt_node::gen_kids_1): Use gassign and gcall in
11724         generated code.
11725         (dt_operand::gen_gimple_expr): Adjust.
11726
11727 2015-08-04  Richard Biener  <rguenther@suse.de>
11728
11729         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Canonicalize
11730         bool compares on RHS.
11731         * match.pd: Add X ==/!= !X is false/true pattern.
11732
11733 2015-08-04  Pawel Kupidura  <pawel.kupidura@arm.com>
11734
11735         * config/aarch64/aarch64.c: Change inner loop statement cost
11736         to be consistent with other targets.
11737
11738 2015-08-04  Christophe Lyon  <christophe.lyon@linaro.org>
11739
11740         * config/arm/neon.md (neon_vget_lanev2di): Handle big-endian
11741         targets.
11742
11743 2015-08-04  Nathan Sidwell  <nathan@codesourcery.com>
11744
11745         * config/nvptx/nvptx.h (struct nvptx_pseudo_info): Delete.
11746         (machine_function): Remove pseudos field.
11747
11748 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11749
11750         * config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
11751         Exit early and use target_option_current_node if processing current
11752         pragma.
11753
11754 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11755
11756         * doc/extend.texi (AArch64 Function Attributes): New node.
11757         (AArch64 Pragmas): Likewise.
11758
11759 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11760
11761         * config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
11762         Initialize simd builtins if TARGET_SIMD.
11763         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
11764         Make sure that the builtins are initialized only once no matter how
11765         many times the function is called.
11766         (aarch64_init_builtins): Unconditionally initialize crc builtins.
11767         (aarch64_relayout_simd_param): New function.
11768         (aarch64_simd_expand_args): Use above during argument expansion.
11769         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): Initialize
11770         simd builtins if TARGET_SIMD.
11771         * config/aarch64/aarch64-protos.h (aarch64_init_simd_builtins): New
11772         prototype.
11773         (aarch64_relayout_simd_types): Likewise.
11774
11775 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11776
11777         * config.gcc (aarch64*-*-*): Specify c_target_objs and cxx_target_objs.
11778         * config/aarch64/aarch64.h (REGISTER_TARGET_PRAGMAS): Define.
11779         (TARGET_CPU_CPP_BUILTINS): Redefine to call aarch64_cpu_cpp_builtins.
11780         * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
11781         static keyword.
11782         (aarch64_reset_previous_fndecl): New function.
11783         (aarch64_handle_attr_isa_flags): Handle "+nothing" in the beginning of
11784         the string.
11785         * config/aarch64/aarch64-c.c: New file.
11786         * config/aarch64/arm_acle.h: Add pragma +crc+nofp at the top.
11787         Push and pop options at beginning and end.  Remove ifdef
11788         __ARM_FEATURE_CRC32.
11789         * config/aarch64/arm_neon.h: Remove #ifdef check on __ARM_NEON.
11790         Add pragma +nothing+simd and +nothing+crypto where appropriate.
11791         * config/aarch64/t-aarch64 (aarch64-c.o): New rule.
11792         * config/aarch64/aarch64-protos.h (aarch64_cpu_cpp_builtins):
11793         Define prototype.
11794         (aarch64_register_pragmas): Likewise.
11795         (aarch64_reset_previous_fndecl): Likewise.
11796         (aarch64_process_target_attr): Likewise.
11797         (aarch64_override_options_internal): Likewise.
11798
11799 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11800
11801         * config/aarch64/aarch64.c (aarch64_tribools_ok_for_inlining_p):
11802         New function.
11803         (aarch64_can_inline_p): Likewise.
11804         (TARGET_CAN_INLINE_P): Define.
11805
11806 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11807
11808         * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
11809         Remove static.  Handle OPT_mgeneral_regs_only,
11810         OPT_mfix_cortex_a53_835769, OPT_mstrict_align,
11811         OPT_momit_leaf_frame_pointer.
11812         * config/aarch64/aarch64.c: Include opts.h and diagnostic.h
11813         (aarch64_attr_opt_type): New enum.
11814         (aarch64_attribute_info): New struct.
11815         (aarch64_handle_attr_arch): New function.
11816         (aarch64_handle_attr_cpu): Likewise.
11817         (aarch64_handle_attr_tune): Likewise.
11818         (aarch64_handle_attr_isa_flags): Likewise.
11819         (aarch64_attributes): New table.
11820         (aarch64_process_one_target_attr): New function.
11821         (num_occurences_in_str): Likewise.
11822         (aarch64_process_target_attr): Likewise.
11823         (aarch64_option_valid_attribute_p): Likewise.
11824         (TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
11825         * config/aarch64/aarch64-protos.h: Include input.h
11826         (aarch64_handle_option): Declare prototype.
11827
11828 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11829
11830         * config/aarch64/aarch64.h (SWITCHABLE_TARGET): Define.
11831         * config/aarch64/aarch64.c: Include target-globals.h
11832         (aarch64_previous_fndecl): New variable.
11833         (aarch64_set_current_function): New function.
11834         (TARGET_SET_CURRENT_FUNCTION): Define.
11835
11836 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11837
11838         * config/aarch64/aarch64.opt (explicit_tune_core): New TargetVariable.
11839         (explicit_arch): Likewise.
11840         (x_aarch64_isa_flags): Likewise.
11841         (mgeneral-regs-only): Mark as Save.
11842         (mfix-cortex-a53-835769): Likewise.
11843         (mcmodel=): Likewise.
11844         (mstrict-align): Likewise.
11845         (momit-leaf-frame-pointer): Likewise.
11846         (mtls-dialect): Likewise.
11847         (master=): Likewise.
11848         * config/aarch64/aarch64.h (ASM_DECLARE_FUNCTION_NAME): Define.
11849         (aarch64_isa_flags): Remove extern declaration.
11850         * config/aarch64/aarch64.c (aarch64_validate_mcpu): Return a bool
11851         to indicate success or failure.
11852         (aarch64_validate_march): Likewise.
11853         (aarch64_validate_mtune): Likewise.
11854         (aarch64_isa_flags): Delete.
11855         (aarch64_override_options_internal): Access opts->x_aarch64_isa_flags
11856         instead of aarch64_isa_flags.
11857         (aarch64_get_tune_cpu): New function.
11858         (aarch64_get_arch): Likewise.
11859         (aarch64_override_options): Use above and set up explicit_tune_core
11860         and explicit_arch.
11861         (aarch64_print_extension): Move earlier in file.  Add isa_flags
11862         argument and use that instead of the global aarch64_isa_flags.
11863         (aarch64_option_save): New function.
11864         (aarch64_option_restore): Likewise.
11865         (aarch64_option_print): Likewise.
11866         (aarch64_declare_function_name): Likewise.
11867         (aarch64_start_file): Delete.
11868         (TARGET_ASM_FILE_START): Do not define.
11869         (TARGET_OPTION_RESTORE, TARGET_OPTION_PRINT): Define.
11870         * config/aarch64/aarch64-protos.h (aarch64_declare_function_name):
11871         Declare prototype.
11872
11873 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11874
11875         * config/aarch64/aarch64.opt (momit-leaf-frame-pointer): Initialize
11876         flag_omit_leaf_frame_pointer to 2.
11877
11878 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11879
11880         * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_835769_DEFAULT): Always
11881         define to 0 or 1.
11882         (TARGET_FIX_ERR_A53_835769): New macro.
11883         * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
11884         handling of opts->x_aarch64_fix_a53_err835769.
11885         (aarch64_madd_needs_nop): Check for TARGET_FIX_ERR_A53_835769 rather
11886         than aarch64_fix_a53_err835769.
11887         * config/aarch64/aarch64-elf-raw.h: Update for above changes.
11888         * config/aarch64/aarch64-linux.h: Likewise.
11889
11890 2015-08-04  Uros Bizjak  <ubizjak@gmail.com>
11891
11892         * config/i386/i386.c (ix86_expand_int_movcc): Check result of
11893         ix86_expand_int_movcc as boolean.
11894
11895 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11896
11897         * config/aarch64/aarch64.opt (aarch64_arch_string): Delete.
11898         (aarch64_cpu_string): Likewise.
11899         (aarch64_tune_string): Likewise.
11900         * config/aarch64/aarch64.c (aarch64_parse_opt_result): New enum.
11901         (aarch64_parse_extension): Return aarch64_parse_opt_result.
11902         Add extra argument to put result into.
11903         (aarch64_parse_arch): Likewise.  Do not set selected_cpu.
11904         (aarch64_parse_cpu): Add arguments to put results into. Return
11905         aarch64_parse_opt_result.
11906         (aarch64_parse_tune): Likewise.
11907         (aarch64_override_options_after_change_1): New function.
11908         (aarch64_override_options_internal): New function.
11909         (aarch64_validate_mcpu): Likewise.
11910         (aarch64_validate_march): Likewise.
11911         (aarch64_validate_mtune): Likewise.
11912         (aarch64_override_options): Update to reflect above changes.
11913         Move some logic into aarch64_override_options_internal.
11914         Initialize target_option_default_node and target_option_current_node.
11915         (aarch64_override_options_after_change): Move logic into
11916         aarch64_override_options_after_change_1 and call it with global_options.
11917         (initialize_aarch64_code_model): Take a gcc_options pointer and use the
11918         flag values from that.
11919
11920 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11921
11922         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
11923         __ARM_ARCH_8A directly rather than with cpp_define_formatted.
11924         * config/aarch64/aarch64.c (struct processor): Add arch field.
11925         (all_architectures): Handle above, move above all_cores.
11926         (all_cores): Handle above.
11927         (aarch64_parse_arch): Handle above changes.
11928         * config/aarch64/aarch64-arches.def (armv8-a): Extend according to
11929         above.  Update comments.
11930         (armv8.1-a): Likewise.
11931         * config/aarch64/aarch64-cores.def: Update according to above.
11932         * config/aarch64/aarch64-opts.h (aarch64_arch): New enum.
11933         * config/aarch64/driver-aarch64.c (struct aarch64_arch): Rename to
11934         aarch64_arch_driver_info.
11935
11936 2015-08-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11937
11938         * config/aarch64/aarch64.c (struct processor): Add ident field.
11939         Rename core sched_core.
11940         (all_cores): Handle above changes.
11941         (all_architectures): Likewise.
11942         (aarch64_parse_arch): Likewise.
11943         (aarch64_override_options): Likewise.
11944
11945 2015-08-04  Richard Biener  <rguenther@suse.de>
11946
11947         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
11948         dispatching to fold_binary for GIMPLE_BINARY_RHS and for
11949         comparisons embedded in [VEC_]COND_EXPRs.
11950
11951 2015-08-03  Abe Skolnik  <a.skolnik@samsung.com>
11952
11953         * tree-if-conv.c: Fix various typos in comments.
11954         * tree-vect-stmts.c: Likewise.
11955
11956 2015-08-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11957
11958         PR tree-optimization/67043
11959         * loop-invariant.c (move_invariant_reg): Recompute luids in loop
11960         preheader after hoisting invariant in it.
11961         (find_defs): Force recomputation of all luids.
11962
11963 2015-08-03  Peter Bergner  <bergner@vnet.ibm.com>
11964
11965         * config/rs6000/htm.md (tabort.): Restrict the source operand to
11966         using a base register.
11967
11968 2015-08-03  David Malcolm  <dmalcolm@redhat.com>
11969
11970         * main.c (main): Pass in NULL for toplev's external_timer.
11971         * timevar.c: Include coretypes.h.
11972         (class timer::named_items): New.
11973         (timer::named_items::named_items): New.
11974         (timer::named_items::~named_items): New.
11975         (timer::named_items::push): New.
11976         (timer::named_items::pop): New.
11977         (timer::named_items::print): New.
11978         (timer::timer): Initialize field "m_jit_client_items".
11979         (timer::~timer): New.
11980         (timer::push): Move bulk of implementation to...
11981         (timer::push_internal): ...here.  New function.
11982         (timer::pop): Move bulk of implementation to...
11983         (timer::pop_internal): ...here.  New function.
11984         (timer::push_client_item): New.
11985         (timer::pop_client_item): New.
11986         (timer::print_row): New function, taken from timer::print.
11987         (timer::print): Print "GCC items" header if we also have client
11988         items.  Move row-printing to timer::print_row.  Print any client
11989         items.
11990         (timer::get_topmost_item_name): New method.
11991         * timevar.def (TV_JIT_ACQUIRING_MUTEX): New.
11992         (TV_JIT_CLIENT_CODE): New.
11993         * timevar.h (timer::push_client_item): New declaration.
11994         (timer::pop_client_item): New declaration.
11995         (timer::get_topmost_item_name): New method.
11996         (timer::push_internal): New declaration.
11997         (timer::pop_internal): New declaration.
11998         (timer::print_row): New declaration.
11999         (timer::named_items): New declaration.
12000         (timer::m_jit_client_items): New field.
12001         (timer): Add friend class named_items.
12002         (auto_timevar::auto_timevar): Add timer param.
12003         (auto_timevar::~auto_timevar): Use field "m_timer".
12004         (auto_timevar::m_timer): New field.
12005         * toplev.c (initialize_rtl): Add g_timer as param when
12006         constructing auto_timevar instance.
12007         (toplev::toplev): Add "external_timer" param, and use it to
12008         initialize the "g_timer" global if non-NULL.
12009         (toplev::~toplev): If this created "g_timer", delete it.
12010         * toplev.h (toplev::toplev): Replace "use_TV_TOTAL" bool param
12011         with "external_timer" timer *.
12012
12013 2015-08-03  Alexander Basov <coohpt@gmail.com>
12014
12015         PR middle-end/64744
12016         PR middle-end/48470
12017         PR middle-end/43404
12018         * cfgexpand.c (expand_one_var): Add check if stack is going to
12019         be used in naked function.
12020         * expr.c (expand_expr_addr_expr_1): Remove excess checking
12021         whether expression should not reside in MEM.
12022         * function.c (use_register_for_decl): Do not use registers for
12023         non-register things (volatile, float, BLKMode) in naked functions.
12024
12025 2015-08-03  John David Anglin  <danglin@gcc.gnu.org>
12026
12027         PR target/67060
12028         * config/pa/pa.md (call_reg_64bit): Remove reg:DI 1 clobber.
12029         Adjust splits to match new pattern.
12030
12031 2015-08-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
12032
12033         * config/rs6000/vector.md (VEC_L): Add KFmode and TFmode.
12034         (VEC_M): Likewise.
12035         (VEC_N): Likewise.
12036         (mov<mode>, VEC_M iterator): Add support for IEEE 128-bit floating
12037         point in VSX registers.
12038
12039         * config/rs6000/constraints.md (wb constraint): Document unused
12040         w<x> constraint.
12041         (we constraint): Likewise.
12042         (wo constraint): Likewise.
12043         (wp constraint): New constraint for IEEE 128-bit floating point in
12044         VSX registers.
12045         (wq constraint): Likewise.
12046
12047         * config/rs6000/predicates.md (easy_fp_constant): Add support for
12048         IEEE 128-bit floating point in VSX registers.
12049         (easy_scalar_constant): Likewise.
12050
12051         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add new
12052         constraints (wp, wq) for IEEE 128-bit floating point in VSX
12053         registers.
12054         (rs6000_init_hard_regno_mode_ok): Likewise.
12055
12056         * config/rs6000/vsx.md (VSX_LE_128): Add support for IEEE 128-bit
12057         floating point in VSX registers.
12058         (VSX_L): Likewise.
12059         (VSX_M): Likewise.
12060         (VSX_M2): Likewise.
12061         (VSm): Likewise.
12062         (VSs): Likewise.
12063         (VSr): Likewise.
12064         (VSa): Likewise.
12065         (VSv): Likewise.
12066         (vsx_le_permute_<mode>): Add support to properly swap bytes for
12067         IEEE 128-bit floating point in VSX registers on little endian.
12068         (vsx_le_undo_permute_<mode>): Likewise.
12069         (vsx_le_perm_load_<mode>): Likewise.
12070         (vsx_le_perm_store_<mode>): Likewise.
12071         (splitters for IEEE 128-bit fp moves): Likewise.
12072
12073         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wp and
12074         wq constraints.
12075
12076         * config/rs6000/altivec.md (VM): Add support for IEEE 128-bit
12077         floating point in VSX registers.
12078         (VM2): Likewise.
12079
12080         * doc/md.text (Machine Constraints): Document wp and wq
12081         constraints on PowerPC.
12082
12083 2015-08-03  Jeff Law  <law@redhat.com>
12084
12085         PR middle-end/66314
12086         PR gcov-profile/66899
12087         * tree-ssa-threadupdate.c (mark_threaded_blocks): Correctly
12088         iterate over the jump threading paths when an element in the
12089         jump threading paths array is eliminated.
12090
12091 2015-08-03  Segher Boessenkool  <segher@kernel.crashing.org>
12092
12093         * Makefile.in (OBJS): Put gimple-match.o and generic-match.o first.
12094
12095 2015-08-03  Patrick Palka  <ppalka@gcc.gnu.org>
12096
12097         * tree-ssa-uninit.c (find_uninit_use): Declare and pass to
12098         is_use_properly_guarded the variable def_preds.  Free its
12099         contents before returning.
12100         (prune_uninit_phi_opnds_in_unrealizable_paths): Same.
12101         (is_use_properly_guarded): Replace local variable def_preds with
12102         a parameter.  Adjust accordingly.  Only update *def_preds if it's
12103         the empty vector.
12104
12105 2015-08-03  Richard Biener  <rguenther@suse.de>
12106
12107         * genmatch.c (simplify::for_subst_vec): New member.
12108         (binary_ok): New helper for for lowering.
12109         (lower_for): Delay substituting operators into result expressions
12110         if we can merge the results eventually again.
12111         (capture_info::walk_result): Adjust for user_id appearing as
12112         result expression operator.
12113         (expr::gen_transform): Likewise.
12114         (dt_simplify::gen_1): Likewise.
12115         (dt_simplify::gen): Pass not substituted operators to tail
12116         functions or initialize local variable with it.
12117         (decision_tree::gen): Adjust function signature.
12118         * match.pd: Fix tests against global code and add default
12119         cases to switch stmts.
12120
12121 2015-08-03  Richard Biener  <rguenther@suse.de>
12122
12123         * genmatch.c (dt_simplify::gen): Create captures array
12124         with an initializer.
12125
12126 2015-08-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
12127
12128         * configure.ac: Set aliasing_flags to -fno-strict-aliasing if
12129         the host compiler is affected by placement new aliasing bug.
12130         * configure: Regenerate.
12131         * Makefile.in (ALIASING_FLAGS): New variable.
12132         (ALL_CXXFLAGS): Add $(ALIASING_FLAGS).
12133
12134 2015-08-03  Szabolcs Nagy  <szabolcs.nagy@arm.com>
12135
12136         PR target/66731
12137         * config/arm/vfp.md (negmuldf3_vfp): Add new pattern.
12138         (negmulsf3_vfp): Likewise.
12139         (muldf3negdf_vfp): Disable for -frounding-math.
12140         (mulsf3negsf_vfp): Likewise.
12141         * config/arm/arm.c (arm_new_rtx_costs): Fix NEG cost for VNMUL,
12142         fix MULT cost with -frounding-math.
12143
12144 2015-08-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12145
12146         * ifcvt.c (noce_try_store_flag_constants): Make logic of the case
12147         when diff == STORE_FLAG_VALUE or diff == -STORE_FLAG_VALUE more
12148         explicit.  Prefer to add the flag whenever possible.
12149         (noce_process_if_block): Try noce_try_store_flag_constants before
12150         noce_try_cmove.
12151
12152 2015-08-03  Richard Biener  <rguenther@suse.de>
12153
12154         * genmatch.c (struct sinfo, struct sinfo_hashmap_traits, sinfo_map_t):
12155         New hash-map to record equivalent transforms.
12156         (dt_node::analyze): Populate the equivalent transforms hash-map.
12157         (dt_simplify::info): Add reference to hash-map entry.
12158         (dt_simplify::gen): If we have split out a function for the
12159         transform, generate a call to it.
12160         (sinfo_hashmap_traits::hash): New function.
12161         (compare_op): New helper function for ...
12162         (sinfo_hashmap_traits::equal_keys): ... this new function.
12163         (decision_tree::gen): Split out common equivalent transforms
12164         into functions.
12165
12166 2015-08-03  Richard Biener  <rguenther@suse.de>
12167
12168         * gimple-fold.c (fold_gimple_assign): Remove folding of
12169         the comparison in COND_EXPRs.
12170
12171 2015-08-03  Richard Biener  <rguenther@suse.de>
12172
12173         * gimple-match-head.c (gimple_simplify): For [VEC_]COND_EXPRs
12174         on the rhs of assignments first simplify the embedded
12175         GENERIC condition.
12176
12177 2015-08-03  Richard Biener  <rguenther@suse.de>
12178
12179         PR tree-optimization/66917
12180         * tree-vectorizer.h (struct dataref_aux): Add base_element_aligned
12181         field.
12182         (DR_VECT_AUX): New macro.
12183         (set_dr_misalignment): Adjust.
12184         (dr_misalignment): Likewise.
12185         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
12186         Compute whether the base is at least element aligned.
12187         * tree-vect-stmts.c (ensure_base_align): Adjust.
12188         (vectorizable_store): If the base is not element aligned
12189         preserve alignment of the original access if misalignment is unknown.
12190         (vectorizable_load): Likewise.
12191
12192 2015-08-02  Martin Sebor  <msebor@redhat.com>
12193
12194         * c-family/c.opt (-Wframe-address): New warning option.
12195         * doc/invoke.texi (Wframe-address): Document it.
12196         * doc/extend.texi (__builtin_frame_address, __builtin_return_address):
12197         Clarify possible effects of calling the functions with non-zero
12198         arguments and mention -Wframe-address.
12199         * builtins.c (expand_builtin_frame_address): Handle -Wframe-address.
12200
12201 2015-08-01  Michael Collison  <michael.collison@linaro.org
12202             Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
12203
12204         * config/arm/arm.md (*arm_smin_cmp): New pattern.
12205         (*arm_umin_cmp): Likewise.
12206
12207 2015-08-01  Caroline Tice  <cmtice@google.com>
12208
12209         PR 66521
12210         * vtable-verify.c (vtbl_mangled_name_types, vtbl_mangled_name_ids): New
12211         global variables.
12212         (vtbl_find_mangled_name):  New function.
12213         (vtbl_register_mangled_name):  New function.
12214         (vtbl_map_get_node):  If DECL_ASSEMBLER_NAME is "<anon>", look up
12215         mangled name in mangled name vectors.
12216         (find_or_create_vtbl_map_node):  Ditto.
12217         (var_is_used_for_virtual_call_p):  Add recursion_depth parameter;
12218         update recursion_depth on function entry; pass it to every recursive
12219         call; automatically exit if depth > 25 (give up looking at that point).
12220         (verify_bb_vtables):  Initialize recursion_depth and pass it to
12221         var_is_used_for_virtual_call_p.
12222         * vtable-verify.h (vtbl_mangbled_name_types, vtbl_mangled_name_ids): New
12223         global variable decls.
12224         (vtbl_register_mangled_name): New extern function decl.
12225
12226 2015-08-01  Tom de Vries  <tom@codesourcery.com>
12227
12228         * tree.c (operation_can_overflow, operation_no_trapping_overflow): New
12229         function.
12230         * tree.h (operation_can_overflow, operation_no_trapping_overflow):
12231         Declare.
12232         * tree-vect-loop.c (vect_is_simple_reduction_1): Use
12233         operation_no_trapping_overflow.  Allow non-overflow operations.
12234         * graphite-sese-to-poly.c (is_reduction_operation_p): Allow non-overflow
12235         operations.
12236
12237 2015-07-31  Kaz Kojima  <kkojima@gcc.gnu.org>
12238
12239         PR target/67049
12240         * config/sh/sh.md (GOTaddr2picreg): Fix typo.
12241
12242 2015-07-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12243
12244         * config/arm/arm.md (*if_neg_move): Convert to insn_and_split.
12245         Enable for TARGET_32BIT.
12246         (*if_move_neg): Likewise.
12247
12248 2015-07-31  Nick Clifton  <nickc@redhat.com>
12249
12250         * config/m32r/m32r.c (m32r_attribute_identifier): New function.
12251         Returns true for __model__.
12252         (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
12253
12254 2015-07-31  Alan Modra  <amodra@gmail.com>
12255
12256         PR target/66870
12257         * config/rs6000/rs6000.c (machine_function): Add split_stack_argp_used.
12258         (rs6000_emit_prologue): Set it.
12259         (rs6000_set_up_by_prologue): Specify r12 when split_stack_argp_used.
12260
12261 2015-07-31  Richard Biener  <rguenther@suse.de>
12262
12263         * fold-const.c (fold_binary_loc): Remove X ^ C1 == C2
12264         -> X == (C1 ^ C2) which is already implemented in match.pd.
12265         Remove redundant dispatching to fold_relational_const.
12266         Move unordered self and NaN compares ...
12267         * match.pd: ... as patterns here.  Remove some stray captures
12268         and add a comment.
12269
12270 2015-07-31  Petr Murzin  <petr.murzin@intel.com>
12271
12272         * config/i386/i386.c
12273         (bdesc_special_args): Convert mask type from signed to unsigned for
12274         masked builtins.
12275         (ix86_expand_args_builtin): Do not handle UINT_FTYPE_V2DF,
12276         UINT64_FTYPE_V2DF, UINT64_FTYPE_V4SF, V16QI_FTYPE_V8DI,
12277         V16HI_FTYPE_V16SI, V16SI_FTYPE_V16SI, V16SF_FTYPE_FLOAT,
12278         V8HI_FTYPE_V8DI, V8UHI_FTYPE_V8UHI, V8SI_FTYPE_V8DI, V8SF_FTYPE_V8DF,
12279         V8DI_FTYPE_INT64, V8DI_FTYPE_V4DI, V8DI_FTYPE_V8DI, V8DF_FTYPE_DOUBLE,
12280         V8DF_FTYPE_V8SI, V16SI_FTYPE_V16SI_V16SI, V16SF_FTYPE_V16SF_V16SI,
12281         V8DI_FTYPE_V8DI_V8DI, V8DF_FTYPE_V8DF_V8DI, V4SI_FTYPE_V4SF_V4SF,
12282         V4SF_FTYPE_V4SF_UINT64, V2UDI_FTYPE_V4USI_V4USI, V2DI_FTYPE_V2DF_V2DF,
12283         V2DF_FTYPE_V2DF_UINT64, V4UDI_FTYPE_V8USI_V8USI, QI_FTYPE_V8DI_V8DI,
12284         HI_FTYPE_V16SI_V16SI, HI_FTYPE_HI_INT, V16SF_FTYPE_V16SF_V16SF_V16SF,
12285         V16SF_FTYPE_V16SF_V16SI_V16SF, V16SF_FTYPE_V16SI_V16SF_HI,
12286         V16SF_FTYPE_V16SI_V16SF_V16SF, V16SI_FTYPE_V16SF_V16SI_HI,
12287         V8DI_FTYPE_V8SF_V8DI_QI, V8SF_FTYPE_V8DI_V8SF_QI, V8DI_FTYPE_PV4DI,
12288         V8DF_FTYPE_V8DI_V8DF_QI, V16SI_FTYPE_V16SI_V16SI_V16SI,
12289         V2DI_FTYPE_V2DI_V2DI_V2DI, V8DI_FTYPE_V8DF_V8DI_QI, V8DF_FTYPE_PV4DF,
12290         V8SI_FTYPE_V8SI_V8SI_V8SI, V8DF_FTYPE_V8DF_V8DF_V8DF, UINT_FTYPE_V4SF,
12291         V8DF_FTYPE_V8DF_V8DI_V8DF, V8DF_FTYPE_V8DI_V8DF_V8DF,
12292         V8DF_FTYPE_V8SF_V8DF_QI, V8DI_FTYPE_V8DI_V8DI_V8DI, V16SF_FTYPE_PV4SF,
12293         V8SF_FTYPE_V8DF_V8SF_QI, V8SI_FTYPE_V8DF_V8SI_QI, V16SI_FTYPE_PV4SI,
12294         V2DF_FTYPE_V2DF_V4SF_V2DF_QI, V4SF_FTYPE_V4SF_V2DF_V4SF_QI,
12295         V8DI_FTYPE_V8DI_SI_V8DI_V8DI, QI_FTYPE_V8DF_V8DF_INT_QI,
12296         HI_FTYPE_V16SF_V16SF_INT_HI, V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI,
12297         VOID_FTYPE_PDOUBLE_V2DF_QI, VOID_FTYPE_PFLOAT_V4SF_QI,
12298         V2DF_FTYPE_PCDOUBLE_V2DF_QI, V4SF_FTYPE_PCFLOAT_V4SF_QI.
12299         * config/i386/i386-builtin-types.def
12300         (V16QI_FTYPE_V16SI): Remove.
12301         (V8DF_FTYPE_V8SI): Ditto.
12302         (V8HI_FTYPE_V8DI): Ditto.
12303         (V8SI_FTYPE_V8DI): Ditto.
12304         (V8SF_FTYPE_V8DF): Ditto.
12305         (V8SF_FTYPE_V8DF_V8SF_QI): Ditto.
12306         (V16HI_FTYPE_V16SI): Ditto.
12307         (V16SF_FTYPE_V16HI): Ditto.
12308         (V16SF_FTYPE_V16HI_V16SF_HI): Ditto.
12309         (V16SF_FTYPE_V16SI): Ditto.
12310         (V4DI_FTYPE_V4DI): Ditto.
12311         (V16SI_FTYPE_V16SF): Ditto.
12312         (V16SF_FTYPE_FLOAT): Ditto.
12313         (V8DF_FTYPE_DOUBLE): Ditto.
12314         (V8DI_FTYPE_INT64): Ditto.
12315         (V8DI_FTYPE_V4DI): Ditto.
12316         (V16QI_FTYPE_V8DI): Ditto.
12317         (UINT_FTYPE_V4SF): Ditto.
12318         (UINT64_FTYPE_V4SF): Ditto.
12319         (UINT_FTYPE_V2DF): Ditto.
12320         (UINT64_FTYPE_V2DF): Ditto.
12321         (V16SI_FTYPE_V16SI): Ditto.
12322         (V8DI_FTYPE_V8DI): Ditto.
12323         (V16SI_FTYPE_PV4SI): Ditto.
12324         (V16SF_FTYPE_PV4SF): Ditto.
12325         (V8DI_FTYPE_PV2DI): Ditto.
12326         (V8DF_FTYPE_PV2DF): Ditto.
12327         (V4DI_FTYPE_PV2DI): Ditto.
12328         (V4DF_FTYPE_PV2DF): Ditto.
12329         (V16SI_FTYPE_PV2SI): Ditto.
12330         (V16SF_FTYPE_PV2SF): Ditto.
12331         (V8DI_FTYPE_PV4DI): Ditto.
12332         (V8DF_FTYPE_PV4DF): Ditto.
12333         (V8SF_FTYPE_FLOAT): Ditto.
12334         (V4SF_FTYPE_FLOAT): Ditto.
12335         (V4DF_FTYPE_DOUBLE): Ditto.
12336         (V8SF_FTYPE_PV4SF): Ditto.
12337         (V8SI_FTYPE_PV4SI): Ditto.
12338         (V4SI_FTYPE_PV2SI): Ditto.
12339         (V8SF_FTYPE_PV2SF): Ditto.
12340         (V8SI_FTYPE_PV2SI): Ditto.
12341         (V16SF_FTYPE_PV8SF): Ditto.
12342         (V16SI_FTYPE_PV8SI): Ditto.
12343         (V8DI_FTYPE_V8SF): Ditto.
12344         (V4DI_FTYPE_V4SF): Ditto.
12345         (V2DI_FTYPE_V4SF): Ditto.
12346         (V64QI_FTYPE_QI): Ditto.
12347         (V32HI_FTYPE_HI): Ditto.
12348         (V8UHI_FTYPE_V8UHI): Ditto.
12349         (V16UHI_FTYPE_V16UHI): Ditto.
12350         (V32UHI_FTYPE_V32UHI): Ditto.
12351         (V2UDI_FTYPE_V2UDI): Ditto.
12352         (V4UDI_FTYPE_V4UDI): Ditto.
12353         (V8UDI_FTYPE_V8UDI): Ditto.
12354         (V4USI_FTYPE_V4USI): Ditto.
12355         (V8USI_FTYPE_V8USI): Ditto.
12356         (V16USI_FTYPE_V16USI): Ditto.
12357         (V2DF_FTYPE_V2DF_UINT64): Ditto.
12358         (V2DI_FTYPE_V2DF_V2DF): Ditto.
12359         (V2UDI_FTYPE_V4USI_V4USI): Ditto.
12360         (V8DF_FTYPE_V8DF_V8DI): Ditto.
12361         (V4SF_FTYPE_V4SF_UINT64): Ditto.
12362         (V4SI_FTYPE_V4SF_V4SF): Ditto.
12363         (V16SF_FTYPE_V16SF_V16SI): Ditto.
12364         (V64QI_FTYPE_V32HI_V32HI): Ditto.
12365         (V32HI_FTYPE_V16SI_V16SI): Ditto.
12366         (V8DF_FTYPE_V8DF_V8DF_V8DI_INT_QI): Ditto.
12367         (V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI): Ditto.
12368         (V32HI_FTYPE_V64QI_V64QI): Ditto.
12369         (V32HI_FTYPE_V32HI_V32HI): Ditto.
12370         (V16HI_FTYPE_V16HI_V16HI_INT_V16HI_HI): Ditto.
12371         (V16SI_FTYPE_V16SI_V4SI): Ditto.
12372         (V16SI_FTYPE_V16SI_V16SI): Ditto.
12373         (V16SI_FTYPE_V32HI_V32HI): Ditto.
12374         (V16SI_FTYPE_V16SI_SI): Ditto.
12375         (V8DI_FTYPE_V8DI_V8DI): Ditto.
12376         (V4UDI_FTYPE_V8USI_V8USI): Ditto.
12377         (V8DI_FTYPE_V16SI_V16SI): Ditto.
12378         (V8DI_FTYPE_V8DI_V2DI): Ditto.
12379         (QI_FTYPE_QI): Ditto.
12380         (SI_FTYPE_SI): Ditto.
12381         (DI_FTYPE_DI): Ditto.
12382         (QI_FTYPE_QI_QI): Ditto.
12383         (QI_FTYPE_QI_INT): Ditto.
12384         (HI_FTYPE_HI_INT): Ditto.
12385         (SI_FTYPE_SI_INT): Ditto.
12386         (DI_FTYPE_DI_INT): Ditto.
12387         (HI_FTYPE_V16QI_V16QI): Ditto.
12388         (SI_FTYPE_V32QI_V32QI): Ditto.
12389         (DI_FTYPE_V64QI_V64QI): Ditto.
12390         (QI_FTYPE_V8HI_V8HI): Ditto.
12391         (HI_FTYPE_V16HI_V16HI): Ditto.
12392         (SI_FTYPE_V32HI_V32HI): Ditto.
12393         (QI_FTYPE_V4SI_V4SI): Ditto.
12394         (QI_FTYPE_V8SI_V8SI): Ditto.
12395         (QI_FTYPE_V2DI_V2DI): Ditto.
12396         (QI_FTYPE_V4DI_V4DI): Ditto.
12397         (QI_FTYPE_V8DI_V8DI): Ditto.
12398         (HI_FTYPE_V16SI_V16SI): Ditto.
12399         (HI_FTYPE_V16SI_V16SI_INT_HI): Ditto.
12400         (QI_FTYPE_V8DF_V8DF_INT_QI): Ditto.
12401         (HI_FTYPE_V16SF_V16SF_INT_HI): Ditto.
12402         (V32HI_FTYPE_V32HI_V32HI_V32HI): Ditto.
12403         (V4SF_FTYPE_V4SF_V2DF_V4SF_QI): Ditto.
12404         (V8DF_FTYPE_V8DF_V8DF_V8DF): Ditto.
12405         (V16SF_FTYPE_V16SF_V16SF_V16SF): Ditto.
12406         (V8DF_FTYPE_V8SF_V8DF_QI): Ditto.
12407         (V8DI_FTYPE_V8DF_V8DI_QI): Ditto.
12408         (V8DF_FTYPE_V8DI_V8DF_V8DF): Ditto.
12409         (V2DF_FTYPE_V2DF_V4SF_V2DF_QI): Ditto.
12410         (V16SF_FTYPE_V16SI_V16SF_HI): Ditto.
12411         (V16SF_FTYPE_V16SI_V16SF_V16SF): Ditto.
12412         (V8SI_FTYPE_V8DF_V8SI_QI): Ditto.
12413         (V8DI_FTYPE_PCCHAR_V8DI_QI): Ditto.
12414         (V8SF_FTYPE_PCFLOAT_V8SF_QI): Ditto.
12415         (V4SF_FTYPE_PCFLOAT_V4SF_QI): Ditto.
12416         (V4DF_FTYPE_PCDOUBLE_V4DF_QI): Ditto.
12417         (V2DF_FTYPE_PCDOUBLE_V2DF_QI): Ditto.
12418         (V8SI_FTYPE_PCCHAR_V8SI_QI): Ditto.
12419         (V4SI_FTYPE_PCCHAR_V4SI_QI): Ditto.
12420         (V4DI_FTYPE_PCCHAR_V4DI_QI): Ditto.
12421         (V2DI_FTYPE_PCCHAR_V2DI_QI): Ditto.
12422         (V16SF_FTYPE_PCV8SF_V16SF_HI): Ditto.
12423         (V16SI_FTYPE_PCV8SI_V16SI_HI): Ditto.
12424         (V8DF_FTYPE_PCV2DF_V8DF_QI): Ditto.
12425         (V8SF_FTYPE_PCV4SF_V8SF_QI): Ditto.
12426         (V8DI_FTYPE_PCV2DI_V8DI_QI): Ditto.
12427         (V8SI_FTYPE_PCV4SI_V8SI_QI): Ditto.
12428         (V4DF_FTYPE_PCV2DF_V4DF_QI): Ditto.
12429         (V4DI_FTYPE_PCV2DI_V4DI_QI): Ditto.
12430         (VOID_FTYPE_PDOUBLE_V2DF_QI): Ditto.
12431         (VOID_FTYPE_PFLOAT_V4SF_QI): Ditto.
12432         (V16SI_FTYPE_V16SF_V16SI_HI): Ditto.
12433         (V8DI_FTYPE_V8SF_V8DI_QI): Ditto.
12434         (V8SF_FTYPE_V8DI_V8SF_QI): Ditto.
12435         (V8DF_FTYPE_V8DI_V8DF_QI): Ditto.
12436         (V2DF_FTYPE_V2DF_V2DF_V2DI): Ditto.
12437         (V4SF_FTYPE_V4SF_V4SF_V4SI): Ditto.
12438         (V2UDI_FTYPE_V2UDI_V2UDI_V2UDI): Ditto.
12439         (V4USI_FTYPE_V4USI_V4USI_V4USI): Ditto.
12440         (V8UHI_FTYPE_V8UHI_V8UHI_V8UHI): Ditto.
12441         (V16UQI_FTYPE_V16UQI_V16UQI_V16UQI): Ditto.
12442         (V4DF_FTYPE_V4DF_V4DF_V4DI): Ditto.
12443         (V8SF_FTYPE_V8SF_V8SF_V8SI): Ditto.
12444         (V8DI_FTYPE_V8DI_V8DI_V8DI): Ditto.
12445         (V16SI_FTYPE_V16SI_V16SI_V16SI): Ditto.
12446         (V2DF_FTYPE_V2DF_V2DI_V2DF): Ditto.
12447         (V4DF_FTYPE_V4DF_V4DI_V4DF): Ditto.
12448         (V8DF_FTYPE_V8DF_V8DI_V8DF): Ditto.
12449         (V4SF_FTYPE_V4SF_V4SI_V4SF): Ditto.
12450         (V8SF_FTYPE_V8SF_V8SI_V8SF): Ditto.
12451         (V16SF_FTYPE_V16SF_V16SI_V16SF): Ditto.
12452         (V8DI_FTYPE_V8DI_SI_V8DI_V8DI): Ditto.
12453         (PVOID_FTYPE_PVOID_PVOID_ULONG): Ditto.
12454         (V4SF_FTYPE_V2DF_V4SF_QI): Convert mask type from signed to unsigned.
12455         (V4SF_FTYPE_V4DF_V4SF_QI): Ditto.
12456         (V4SF_FTYPE_V8HI_V4SF_QI): Ditto.
12457         (V8SF_FTYPE_V8HI_V8SF_QI): Ditto.
12458         (V16SI_FTYPE_V16SI_V16SI_HI): Ditto.
12459         (V8DI_FTYPE_V8DI_V8DI_QI): Ditto.
12460         (V2DF_FTYPE_V4DF_INT_V2DF_QI): Ditto.
12461         (V2DF_FTYPE_V8DF_INT_V2DF_QI): Ditto.
12462         (V2DI_FTYPE_V2DI_INT_V2DI_QI): Ditto.
12463         (V4DF_FTYPE_V8DF_INT_V4DF_QI): Ditto.
12464         (V4SF_FTYPE_V8SF_INT_V4SF_QI): Ditto.
12465         (V4SI_FTYPE_V2DF_V4SI_QI): Ditto.
12466         (V4SI_FTYPE_V4SI_INT_V4SI_QI): Ditto.
12467         (V4SI_FTYPE_V8HI_V8HI_V4SI_QI): Ditto.
12468         (V4SI_FTYPE_V8SI_INT_V4SI_QI): Ditto.
12469         (V8HI_FTYPE_V16QI_V16QI_V8HI_QI): Ditto.
12470         (V8HI_FTYPE_V8SF_INT_V8HI_QI): Ditto.
12471         (V8HI_FTYPE_V4SF_INT_V8HI_QI): Ditto.
12472         (V8SF_FTYPE_V16SF_INT_V8SF_QI): Ditto.
12473         (V4SF_FTYPE_V16SF_INT_V4SF_QI): Ditto.
12474         (V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI): Ditto.
12475         (V8DF_FTYPE_V8DF_V4DF_INT_V8DF_QI): Ditto.
12476         (V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI): Ditto.
12477         (V8DF_FTYPE_V8DF_INT_V8DF_QI): Ditto.
12478         (V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI): Ditto.
12479         (V2DF_FTYPE_V2DF_V2DF_V2DI_INT_QI): Ditto.
12480         (V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI): Ditto.
12481         (V16SF_FTYPE_V16SF_INT_V16SF_HI): Ditto.
12482         (V16SI_FTYPE_V16SI_V4SI_INT_V16SI_HI): Ditto.
12483         (V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI): Ditto.
12484         (V4SF_FTYPE_V4SF_V4SF_V4SI_INT_QI): Ditto.
12485         (V16SF_FTYPE_V16SF_V4SF_INT_V16SF_HI): Ditto.
12486         (V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI): Ditto.
12487         (V16HI_FTYPE_V32QI_V32QI_V16HI_HI): Ditto.
12488         (V32HI_FTYPE_V64QI_V64QI_V32HI_SI): Ditto.
12489         (V16HI_FTYPE_V16SF_INT_V16HI_HI): Ditto.
12490         (V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI): Ditto.
12491         (V4SI_FTYPE_V16SI_INT_V4SI_QI): Ditto.
12492         (V16SI_FTYPE_V16SI_V16SI_INT_V16SI_HI): Ditto.
12493         (V8SI_FTYPE_V16HI_V16HI_V8SI_QI): Ditto.
12494         (V16SI_FTYPE_V32HI_V32HI_V16SI_HI): Ditto.
12495         (V8SI_FTYPE_V8SI_INT_V8SI_QI): Ditto.
12496         (V8SI_FTYPE_V16SI_INT_V8SI_QI): Ditto.
12497         (V16SI_FTYPE_V16SI_V4SI_V16SI_HI): Ditto.
12498         (V16SI_FTYPE_V16SI_INT_V16SI_HI): Ditto.
12499         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_QI): Ditto.
12500         (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
12501         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
12502         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
12503         (V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI): Ditto.
12504         (V8DI_FTYPE_V8DI_V4DI_INT_V8DI_QI): Ditto.
12505         (V4DI_FTYPE_V8DI_INT_V4DI_QI): Ditto.
12506         (V8DI_FTYPE_V8DI_V2DI_V8DI_QI): Ditto.
12507         (V8DI_FTYPE_V8DI_INT_V8DI_QI): Ditto.
12508         (V4DI_FTYPE_V4DI_INT_V4DI_QI): Ditto.
12509         (V2DI_FTYPE_V4DI_INT_V2DI_QI): Ditto.
12510         (V2DI_FTYPE_V8DI_INT_V2DI_QI): Ditto.
12511         (HI_FTYPE_HI): Ditto.
12512         (HI_FTYPE_V16QI): Ditto.
12513         (SI_FTYPE_V32QI): Ditto.
12514         (DI_FTYPE_V64QI): Ditto.
12515         (QI_FTYPE_V8HI): Ditto.
12516         (HI_FTYPE_V16HI): Ditto.
12517         (SI_FTYPE_V32HI): Ditto.
12518         (QI_FTYPE_V4SI): Ditto.
12519         (QI_FTYPE_V8SI): Ditto.
12520         (HI_FTYPE_V16SI): Ditto.
12521         (QI_FTYPE_V2DI): Ditto.
12522         (QI_FTYPE_V4DI): Ditto.
12523         (QI_FTYPE_V8DI): Ditto.
12524         (V16QI_FTYPE_HI): Ditto.
12525         (V32QI_FTYPE_SI): Ditto.
12526         (V64QI_FTYPE_DI): Ditto.
12527         (V8HI_FTYPE_QI): Ditto.
12528         (V16HI_FTYPE_HI): Ditto.
12529         (V32HI_FTYPE_SI): Ditto.
12530         (V4SI_FTYPE_QI): Ditto.
12531         (V4SI_FTYPE_HI): Ditto.
12532         (V8SI_FTYPE_QI): Ditto.
12533         (V8SI_FTYPE_HI): Ditto.
12534         (V2DI_FTYPE_QI): Ditto.
12535         (V4DI_FTYPE_QI): Ditto.
12536         (HI_FTYPE_HI_HI): Ditto.
12537         (SI_FTYPE_SI_SI): Ditto.
12538         (DI_FTYPE_DI_DI): Ditto.
12539         (HI_FTYPE_V16QI_V16QI_HI): Ditto.
12540         (HI_FTYPE_V16QI_V16QI_INT_HI): Ditto.
12541         (SI_FTYPE_V32QI_V32QI_SI): Ditto.
12542         (SI_FTYPE_V32QI_V32QI_INT_SI): Ditto.
12543         (DI_FTYPE_V64QI_V64QI_DI): Ditto.
12544         (DI_FTYPE_V64QI_V64QI_INT_DI): Ditto.
12545         (QI_FTYPE_V8HI_V8HI_QI): Ditto.
12546         (QI_FTYPE_V8HI_V8HI_INT_QI): Ditto.
12547         (HI_FTYPE_V16HI_V16HI_HI): Ditto.
12548         (HI_FTYPE_V16HI_V16HI_INT_HI): Ditto.
12549         (SI_FTYPE_V32HI_V32HI_SI): Ditto.
12550         (SI_FTYPE_V32HI_V32HI_INT_SI): Ditto.
12551         (QI_FTYPE_V4SI_V4SI_QI): Ditto.
12552         (QI_FTYPE_V4SI_V4SI_INT_QI): Ditto.
12553         (QI_FTYPE_V8SI_V8SI_QI): Ditto.
12554         (QI_FTYPE_V8SI_V8SI_INT_QI): Ditto.
12555         (QI_FTYPE_V2DI_V2DI_QI): Ditto.
12556         (QI_FTYPE_V2DI_V2DI_INT_QI): Ditto.
12557         (QI_FTYPE_V4DI_V4DI_QI): Ditto.
12558         (QI_FTYPE_V4DI_V4DI_INT_QI): Ditto.
12559         (QI_FTYPE_V8DI_V8DI_QI): Ditto.
12560         (HI_FTYPE_V16SI_V16SI_HI): Ditto.
12561         (QI_FTYPE_V8DI_V8DI_INT): Ditto.
12562         (QI_FTYPE_V8DI_V8DI_INT_QI): Ditto.
12563         (HI_FTYPE_V16SI_V16SI_INT): Ditto.
12564         (HI_FTYPE_V16SI_V16SI_INT _HI): Ditto.
12565         (QI_FTYPE_V8DF_V8DF_INT): Ditto.
12566         (QI_FTYPE_V8DF_V8DF_INT_QI_INT): Ditto.
12567         (HI_FTYPE_V16SF_V16SF_INT): Ditto.
12568         (HI_FTYPE_V16SF_V16SF_INT_HI_INT): Ditto.
12569         (QI_FTYPE_V2DF_V2DF_INT): Ditto.
12570         (QI_FTYPE_V2DF_V2DF_INT_QI): Ditto.
12571         (QI_FTYPE_V2DF_V2DF_INT_QI_INT): Ditto.
12572         (QI_FTYPE_V4SF_V4SF_INT): Ditto.
12573         (QI_FTYPE_V4SF_V4SF_INT_QI): Ditto.
12574         (QI_FTYPE_V4SF_V4SF_INT_QI_INT): Ditto.
12575         (V16SI_FTYPE_HI): Ditto.
12576         (V8DI_FTYPE_QI): Ditto.
12577         (V2DF_FTYPE_V2DI_V2DF_V2DF_QI): Ditto.
12578         (V2DF_FTYPE_V2DF_V2DI_V2DF_QI): Ditto.
12579         (V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI): Ditto.
12580         (V4SF_FTYPE_V4SI_V4SF_V4SF_QI): Ditto.
12581         (V4SF_FTYPE_V4SF_V4SI_V4SF_QI): Ditto.
12582         (V4SF_FTYPE_V4SF_V4SF_V4SF_QI): Ditto.
12583         (V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI): Ditto.
12584         (V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI): Ditto.
12585         (V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI): Ditto.
12586         (V2DF_FTYPE_V2DF_V2DF_QI): Ditto.
12587         (V2DF_FTYPE_V4SF_V2DF_QI): Ditto.
12588         (V2DF_FTYPE_V4SI_V2DF_QI): Ditto.
12589         (V4DF_FTYPE_V4DF_V4DF_QI): Ditto.
12590         (V4DF_FTYPE_V4SF_V4DF_QI): Ditto.
12591         (V4DF_FTYPE_V4SI_V4DF_QI): Ditto.
12592         (V8DF_FTYPE_V8DF_V8DF_QI): Ditto.
12593         (V8DF_FTYPE_V8SI_V8DF_QI): Ditto.
12594         (V2DI_FTYPE_V4SI_V2DI_QI): Ditto.
12595         (V2DI_FTYPE_V8HI_V2DI_QI): Ditto.
12596         (V4DI_FTYPE_V4DF_V4DI_QI): Ditto.
12597         (V2DI_FTYPE_V2DF_V2DI_QI): Ditto.
12598         (V2DI_FTYPE_V2DI_V2DI_V2DI_QI): Ditto.
12599         (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI): Ditto.
12600         (V4DI_FTYPE_V4DI_V4DI_V4DI_QI): Ditto.
12601         (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI): Ditto.
12602         (V8DI_FTYPE_V8SI_V8DI_QI): Ditto.
12603         (V8DI_FTYPE_V8HI_V8DI_QI): Ditto.
12604         (V8DI_FTYPE_V16QI_V8DI_QI): Ditto.
12605         (V2DI_FTYPE_V16QI_V2DI_QI): Ditto.
12606         (V4DI_FTYPE_V16QI_V4DI_QI): Ditto.
12607         (V4DI_FTYPE_V4DI_V4DI_QI): Ditto.
12608         (V4DI_FTYPE_V4SI_V4DI_QI): Ditto.
12609         (V4DI_FTYPE_V8HI_V4DI_QI): Ditto.
12610         (V8DI_FTYPE_V8DI_V8DI_V8DI_QI): Ditto.
12611         (V8DF_FTYPE_V8DI_V8DF_V8DF_QI): Ditto.
12612         (V8DF_FTYPE_V8DF_V8DI_V8DF_QI): Ditto.
12613         (V4DF_FTYPE_V4DI_V4DF_V4DF_QI): Ditto.
12614         (V4DF_FTYPE_V4DF_V4DI_V4DF_QI): Ditto.
12615         (V4DF_FTYPE_V4DF_V4DF_V4DF_QI): Ditto.
12616         (V8DF_FTYPE_V8DF_V8DF_V8DF_QI): Ditto.
12617         (V16QI_FTYPE_V16QI_V16QI_V16QI_HI): Ditto.
12618         (V16HI_FTYPE_V16HI_V16HI_V16HI_HI): Ditto.
12619         (V16SI_FTYPE_V16SI_V16SI_V16SI_HI): Ditto.
12620         (V2DF_FTYPE_V2DF_V2DF_V2DF_QI): Ditto.
12621         (V32HI_FTYPE_V32HI_V32HI_V32HI_SI): Ditto.
12622         (V64QI_FTYPE_V64QI_V64QI_V64QI_DI): Ditto.
12623         (V32QI_FTYPE_V32QI_V32QI_V32QI_SI): Ditto.
12624         (V8HI_FTYPE_V8HI_V8HI_V8HI_QI): Ditto.
12625         (V4SF_FTYPE_V4SF_V4SF_QI): Ditto.
12626         (V4SF_FTYPE_V4SI_V4SF_QI): Ditto.
12627         (V8SF_FTYPE_V8SF_V8SF_QI): Ditto.
12628         (V8SF_FTYPE_V8SI_V8SF_QI): Ditto.
12629         (V16SF_FTYPE_V16SF_V16SF_HI): Ditto.
12630         (V4SI_FTYPE_V16QI_V4SI_QI): Ditto.
12631         (V4SI_FTYPE_V8HI_V4SI_QI): Ditto.
12632         (V8SI_FTYPE_V8SI_V8SI_QI): Ditto.
12633         (V8SI_FTYPE_V8HI_V8SI_QI): Ditto.
12634         (V8SI_FTYPE_V16QI_V8SI_QI): Ditto.
12635         (V4SI_FTYPE_V4SI_V4SI_V4SI_QI): Ditto.
12636         (V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI): Ditto.
12637         (V8SF_FTYPE_V8SF_V8SF_V8SF_QI): Ditto.
12638         (V8SF_FTYPE_V8SI_V8SF_V8SF_QI): Ditto.
12639         (V8SF_FTYPE_V8SF_V8SI_V8SF_QI): Ditto.
12640         (V8SI_FTYPE_V8SI_V8SI_V8SI_QI): Ditto.
12641         (V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI): Ditto.
12642         (V16SF_FTYPE_V16SF_V16SF_V16SF_HI): Ditto.
12643         (V16SF_FTYPE_V16SI_V16SF_V16SF_HI): Ditto.
12644         (V16SF_FTYPE_V16SF_V16SI_V16SF_HI): Ditto.
12645         (V16SF_FTYPE_V8SF_V16SF_HI): Ditto.
12646         (V16SF_FTYPE_V4SF_V16SF_HI): Ditto.
12647         (V8DF_FTYPE_V4DF_V8DF_QI): Ditto.
12648         (V8DF_FTYPE_V2DF_V8DF_QI): Ditto.
12649         (V16SI_FTYPE_V8SI_V16SI_HI): Ditto.
12650         (V16SI_FTYPE_V4SI_V16SI_HI): Ditto.
12651         (V16SI_FTYPE_SI_V16SI_HI): Ditto.
12652         (V16SI_FTYPE_V16HI_V16SI_HI): Ditto.
12653         (V16SI_FTYPE_V16QI_V16SI_HI): Ditto.
12654         (V8DI_FTYPE_V4DI_V8DI_QI): Ditto.
12655         (V4SI_FTYPE_V4DF_V4SI_QI): Ditto.
12656         (V8DI_FTYPE_V2DI_V8DI_QI): Ditto.
12657         (V8DI_FTYPE_DI_V8DI_QI): Ditto.
12658         (V16QI_FTYPE_V16SI_V16QI_HI): Ditto.
12659         (V16QI_FTYPE_V8DI_V16QI_QI): Ditto.
12660         (V32HI_FTYPE_V32HI_V32HI_SI): Ditto.
12661         (V32HI_FTYPE_V32QI_V32HI_SI): Ditto.
12662         (V16HI_FTYPE_V16HI_V16HI_HI): Ditto.
12663         (V16HI_FTYPE_V16QI_V16HI_HI): Ditto.
12664         (V8HI_FTYPE_V16QI_V8HI_QI): Ditto.
12665         (V8SF_FTYPE_V4SF_V8SF_QI): Ditto.
12666         (V4DF_FTYPE_V2DF_V4DF_QI): Ditto.
12667         (V8SI_FTYPE_V4SI_V8SI_QI): Ditto.
12668         (V8SI_FTYPE_SI_V8SI_QI): Ditto.
12669         (V4SI_FTYPE_V4SI_V4SI_QI): Ditto.
12670         (V4SI_FTYPE_SI_V4SI_QI): Ditto.
12671         (V4DI_FTYPE_V2DI_V4DI_QI): Ditto.
12672         (V4DI_FTYPE_DI_V4DI_QI): Ditto.
12673         (V2DI_FTYPE_V2DI_V2DI_QI): Ditto.
12674         (V2DI_FTYPE_DI_V2DI_QI): Ditto.
12675         (V64QI_FTYPE_V64QI_V64QI_DI): Ditto.
12676         (V64QI_FTYPE_V16QI_V64QI_DI): Ditto.
12677         (V64QI_FTYPE_QI_V64QI_DI): Ditto.
12678         (V32QI_FTYPE_V32QI_V32QI_SI): Ditto.
12679         (V32QI_FTYPE_V16QI_V32QI_SI): Ditto.
12680         (V32QI_FTYPE_QI_V32QI_SI): Ditto.
12681         (V16QI_FTYPE_V16QI_V16QI_HI): Ditto.
12682         (V16QI_FTYPE_QI_V16QI_HI): Ditto.
12683         (V32HI_FTYPE_V8HI_V32HI_SI): Ditto.
12684         (V32HI_FTYPE_HI_V32HI_SI): Ditto.
12685         (V16HI_FTYPE_V8HI_V16HI_HI): Ditto.
12686         (V16HI_FTYPE_HI_V16HI_HI): Ditto.
12687         (V8HI_FTYPE_V8HI_V8HI_QI): Ditto.
12688         (V8HI_FTYPE_HI_V8HI_QI): Ditto.
12689         (V64QI_FTYPE_PCV64QI_V64QI_DI): Ditto.
12690         (V32HI_FTYPE_PCV32HI_V32HI_SI): Ditto.
12691         (V32QI_FTYPE_PCV32QI_V32QI_SI): Ditto.
12692         (V16SF_FTYPE_PCV16SF_V16SF_HI): Ditto.
12693         (V8DF_FTYPE_PCV8DF_V8DF_QI): Ditto.
12694         (V16SI_FTYPE_PCV16SI_V16SI_HI): Ditto.
12695         (V16HI_FTYPE_PCV16HI_V16HI_HI): Ditto.
12696         (V16QI_FTYPE_PCV16QI_V16QI_HI): Ditto.
12697         (V8SF_FTYPE_PCV8SF_V8SF_QI): Ditto.
12698         (V8DI_FTYPE_PCV8DI_V8DI_QI): Ditto.
12699         (V8SI_FTYPE_PCV8SI_V8SI_QI): Ditto.
12700         (V8HI_FTYPE_PCV8HI_V8HI_QI): Ditto.
12701         (V4DF_FTYPE_PCV4DF_V4DF_QI): Ditto.
12702         (V4SF_FTYPE_PCV4SF_V4SF_QI): Ditto.
12703         (V4DI_FTYPE_PCV4DI_V4DI_QI): Ditto.
12704         (V4SI_FTYPE_PCV4SI_V4SI_QI): Ditto.
12705         (V2DF_FTYPE_PCV2DF_V2DF_QI): Ditto.
12706         (V2DI_FTYPE_PCV2DI_V2DI_QI): Ditto.
12707         (V16HI_FTYPE_V16SI_V16HI_HI): Ditto.
12708         (V8SI_FTYPE_V8DI_V8SI_QI): Ditto.
12709         (V8HI_FTYPE_V8DI_V8HI_QI): Ditto.
12710         (V16QI_FTYPE_V8HI_V16QI_QI): Ditto.
12711         (V16QI_FTYPE_V16HI_V16QI_HI): Ditto.
12712         (V16QI_FTYPE_V4SI_V16QI_QI): Ditto.
12713         (V16QI_FTYPE_V8SI_V16QI_QI): Ditto.
12714         (V8HI_FTYPE_V4SI_V8HI_QI): Ditto.
12715         (V8HI_FTYPE_V8SI_V8HI_QI): Ditto.
12716         (V16QI_FTYPE_V2DI_V16QI_QI): Ditto.
12717         (V16QI_FTYPE_V4DI_V16QI_QI): Ditto.
12718         (V8HI_FTYPE_V2DI_V8HI_QI): Ditto.
12719         (V8HI_FTYPE_V4DI_V8HI_QI): Ditto.
12720         (V4SI_FTYPE_V2DI_V4SI_QI): Ditto.
12721         (V4SI_FTYPE_V4DI_V4SI_QI): Ditto.
12722         (V32QI_FTYPE_V32HI_V32QI_SI): Ditto.
12723         (V2DF_FTYPE_V2DF_INT_V2DF_QI): Ditto.
12724         (V4DF_FTYPE_V4DF_INT_V4DF_QI): Ditto.
12725         (V4SF_FTYPE_V4SF_INT_V4SF_QI): Ditto.
12726         (V8SF_FTYPE_V8SF_INT_V8SF_QI): Ditto.
12727         (V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI): Ditto.
12728         (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_QI): Ditto.
12729         (V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI): Ditto.
12730         (V4SF_FTYPE_V4SF_V4SF_INT_V4SF_QI): Ditto.
12731         (VOID_FTYPE_PV8DF_V8DF_QI): Ditto.
12732         (VOID_FTYPE_PV8SI_V8DI_QI): Ditto.
12733         (VOID_FTYPE_PV8HI_V8DI_QI): Ditto.
12734         (VOID_FTYPE_PV8HI_V4DI_QI): Ditto.
12735         (VOID_FTYPE_PV8HI_V2DI_QI): Ditto.
12736         (VOID_FTYPE_PV4SI_V4DI_QI): Ditto.
12737         (VOID_FTYPE_PV4SI_V2DI_QI): Ditto.
12738         (VOID_FTYPE_PV8HI_V8SI_QI): Ditto.
12739         (VOID_FTYPE_PV8HI_V4SI_QI): Ditto.
12740         (VOID_FTYPE_PV4DF_V4DF_QI): Ditto.
12741         (VOID_FTYPE_PV2DF_V2DF_QI): Ditto.
12742         (VOID_FTYPE_PV16SF_V16SF_HI): Ditto.
12743         (VOID_FTYPE_PV8SF_V8SF_QI): Ditto.
12744         (VOID_FTYPE_PV4SF_V4SF_QI): Ditto.
12745         (VOID_FTYPE_PV8DI_V8DI_QI): Ditto.
12746         (VOID_FTYPE_PV4DI_V4DI_QI): Ditto.
12747         (VOID_FTYPE_PV2DI_V2DI_QI): Ditto.
12748         (VOID_FTYPE_PV16SI_V16SI_HI): Ditto.
12749         (VOID_FTYPE_PV16HI_V16SI_HI): Ditto.
12750         (VOID_FTYPE_PV16QI_V16SI_HI): Ditto.
12751         (VOID_FTYPE_PV16QI_V8SI_QI): Ditto.
12752         (VOID_FTYPE_PV16QI_V4SI_QI): Ditto.
12753         (VOID_FTYPE_PV16QI_V8DI_QI): Ditto.
12754         (VOID_FTYPE_PV16QI_V4DI_QI): Ditto.
12755         (VOID_FTYPE_PV16QI_V2DI_QI): Ditto.
12756         (VOID_FTYPE_PV8SI_V8SI_QI): Ditto.
12757         (VOID_FTYPE_PV4SI_V4SI_QI): Ditto.
12758         (VOID_FTYPE_PV32HI_V32HI_SI): Ditto.
12759         (VOID_FTYPE_PV16HI_V16HI_HI): Ditto.
12760         (VOID_FTYPE_PV8HI_V8HI_QI): Ditto.
12761         (VOID_FTYPE_PV64QI_V64QI_DI): Ditto.
12762         (VOID_FTYPE_PV32QI_V32QI_SI): Ditto.
12763         (VOID_FTYPE_PV16QI_V16QI_HI): Ditto.
12764         (V8DI_FTYPE_V8DI_V8DI_V8DI_INT_QI): Ditto.
12765         (V8SI_FTYPE_V8SF_V8SI_QI): Ditto.
12766         (V4SI_FTYPE_V4SF_V4SI_QI): Ditto.
12767         (V4DI_FTYPE_V4SF_V4DI_QI): Ditto.
12768         (V2DI_FTYPE_V4SF_V2DI_QI): Ditto.
12769         (V4SF_FTYPE_V4DI_V4SF_QI): Ditto.
12770         (V4SF_FTYPE_V2DI_V4SF_QI): Ditto.
12771         (V4DF_FTYPE_V4DI_V4DF_QI): Ditto.
12772         (V2DF_FTYPE_V2DI_V2DF_QI): Ditto.
12773         (V32HI_FTYPE_V32HI_INT_V32HI_SI): Ditto.
12774         (V32HI_FTYPE_V32HI_V8HI_V32HI_SI): Ditto.
12775         (V16HI_FTYPE_V16HI_INT_V16HI_HI): Ditto.
12776         (V16HI_FTYPE_V16HI_V8HI_V16HI_HI): Ditto.
12777         (V8HI_FTYPE_V8HI_INT_V8HI_QI): Ditto.
12778         (V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI): Ditto.
12779         (V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI): Ditto.
12780         (V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI): Ditto.
12781         (V64QI_FTYPE_V32HI_V32HI_V64QI_DI): Ditto.
12782         (V32QI_FTYPE_V16HI_V16HI_V32QI_SI): Ditto.
12783         (V16QI_FTYPE_V8HI_V8HI_V16QI_HI): Ditto.
12784         (V32HI_FTYPE_V16SI_V16SI_V32HI_SI): Ditto.
12785         (V16HI_FTYPE_V8SI_V8SI_V16HI_HI): Ditto.
12786         (V8HI_FTYPE_V4SI_V4SI_V8HI_QI): Ditto.
12787         (V8DI_FTYPE_V16SI_V16SI_V8DI_QI): Ditto.
12788         (V4DI_FTYPE_V8SI_V8SI_V4DI_QI): Ditto.
12789         (V2DI_FTYPE_V4SI_V4SI_V2DI_QI): Ditto.
12790         (V16SI_FTYPE_V16SI_V16SI_V16SI_INT_HI): Ditto.
12791         (V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI): Ditto.
12792         (V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI): Ditto.
12793         (V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI): Ditto.
12794         (V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI): Ditto.
12795         (V8SI_FTYPE_V8SI_V4SI_V8SI_QI): Ditto.
12796         (V4DI_FTYPE_V4DI_V2DI_V4DI_QI): Ditto.
12797         (QI_FTYPE_V4DF_V4DF_INT_QI): Ditto.
12798         (QI_FTYPE_V8SF_V8SF_INT_QI): Ditto.
12799         (QI_FTYPE_V8DF_INT_QI): Ditto.
12800         (QI_FTYPE_V4DF_INT_QI): Ditto.
12801         (QI_FTYPE_V2DF_INT_QI): Ditto.
12802         (HI_FTYPE_V16SF_INT_HI): Ditto.
12803         (QI_FTYPE_V8SF_INT_QI): Ditto.
12804         (QI_FTYPE_V4SF_INT_QI): Ditto.
12805         (V8DF_FTYPE_V8DF_V8DF_V8DF_QI_INT): Ditto.
12806
12807 2015-07-31  Richard Biener  <rguenther@suse.de>
12808
12809         * gimple-fold.c (fold_gimple_assign): Remove folding of
12810         GIMPLE_BINARY_RHS.
12811
12812 2015-07-31  Tom de Vries  <tom@codesourcery.com>
12813
12814         PR tree-optimization/66846
12815         * omp-low.c (expand_omp_taskreg) [ENABLE_CHECKING]: Call
12816         verify_loop_structure for child_cfun if !LOOPS_NEED_FIXUP.
12817         (expand_omp_target) [ENABLE_CHECKING]: Same.
12818         (execute_expand_omp) [ENABLE_CHECKING]: Call verify_loop_structure for
12819         cfun if !LOOPS_NEED_FIXUP.
12820         (expand_omp_for_static_nochunk): Handle simple latch bb.  Handle case
12821         that omp_for already has its own loop struct.
12822         * tree-parloops.c (create_phi_for_local_result)
12823         (create_call_for_reduction): Handle simple latch bb.
12824         (create_parallel_loop): Add simple latch bb to preserve
12825         LOOPS_HAVE_SIMPLE_LATCHES.  Record new exit.  Handle simple latch bb.
12826         (gen_parallel_loop): Remove call to cancel_loop_tree.
12827         (parallelize_loops): Skip loops that are inner loops of parallelized
12828         loops.
12829         (pass_parallelize_loops::execute) [ENABLE_CHECKING]: Call
12830         verify_loop_structure.
12831
12832 2015-07-30  Anatoly Sokolov  <aesok@post.ru>
12833
12834         * config/v850/v850.h (LIBCALL_VALUE): Remove macros.
12835         * config/v850/v850.md (RV_REGNUM): New constants.
12836         * config/v850/v850.c (v850_libcall_value): New functions.
12837         (v850_function_value_regno_p, v850_function_value): Use RV_REGNUM.
12838         (TARGET_LIBCALL_VALUE): Define.
12839
12840 2015-07-30  Anatoly Sokolov  <aesok@post.ru>
12841
12842         * rtl.h (lowpart_subreg): Move in file.
12843         * loop-iv.c (lowpart_subreg): Move to...
12844         * simplify-rtx.c (lowpart_subreg): ...here.
12845           (simplify_binary_operation_1): Use lowpart_subreg instead of
12846           simplify_gen_subreg.
12847         * expr.c (expand_expr_real_2): Ditto.
12848         * emit-rtl.c (gen_lowpart_common): Ditto.
12849         * combine.c (gen_lowpart_for_combine): Ditto.
12850         * cfgexpand.c (convert_debug_memory_address, expand_debug_expr,
12851           expand_debug_source_expr): Ditto.
12852
12853 2015-07-30  Richard Sandiford  <richard.sandiford@arm.com>
12854
12855         * builtins.c (HAVE_atomic_clear, gen_atomic_clear): Delete.
12856         (expand_builtin_atomic_clear): Remove support for atomic_clear
12857         pattern.
12858
12859 2015-07-30  Richard Biener  <rguenther@suse.de>
12860
12861         * gimple-fold.c (fold_gimple_assign): Only fold !tcc_comparison
12862         binaries.  Move X == 0, X == 1, X != 0, and X != 1 canonicalization ...
12863         (fold_stmt_1): ... here and work on GIMPLE directly.  Remove
12864         redundant operand canonicalization.
12865
12866 2015-07-30  David Sherwood  <david.sherwood@arm.com>
12867
12868         * config/aarch64/aarch64-simd.md (aarch64_ext<mode>): Replace call to
12869         GET_MODE_SIZE (GET_MODE_INNER (m)) with GET_MODE_UNIT_SIZE (m).
12870         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Likewise.
12871         * config/arm/arm.c (neon_valid_immediate): Likewise.
12872         * config/i386/i386.c (classify_argument, ix86_expand_int_vcond)
12873         (expand_vec_perm_blend, expand_vec_perm_pshufb): Likewise.
12874         (expand_vec_perm_pshufb2, expand_vec_perm_vpshufb2_vpermq): Likewise.
12875         (expand_vec_perm_vpshufb2_vpermq): Likewise.
12876         (expand_vec_perm_vpshufb2_vpermq_even_odd): Likewise.
12877         (expand_vec_perm_vpshufb4_vpermq2): Likewise.
12878         * config/i386/sse.md
12879         (<extract_type>_vinsert<shuffletype><extract_suf>_mask): Likewise.
12880         (*ssse3_palignr<mode>_perm): Likewise.
12881         * config/rs6000/rs6000.c (rs6000_complex_function_value): Likewise.
12882         * config/spu/spu.c (arith_immediate_p): Likewise.
12883         * simplify-rtx.c (simplify_const_unary_operation): Likewise.
12884         (simplify_binary_operation_1, simplify_ternary_operation): Likewise.
12885
12886 2015-07-30  Richard Biener  <rguenther@suse.de>
12887
12888         * genmatch.c (decision_tree::gen_gimple): Merge with ...
12889         (decision_tree::gen_generic): ... this into ...
12890         (decision_tree::gen): ... this.
12891         (main): Adjust callers.
12892
12893 2015-07-30  Richard Biener  <rguenther@suse.de>
12894
12895         * genmatch.c (verbose): New global.
12896         (warning_at): Add overload with source_location.
12897         (capture_info::capture_info): Add bool whether generating gimple
12898         or generic.  Add gimple member.
12899         (capture_info::cinfo): Add capture member.
12900         (capture_info::walk_match): Record capture.  Warn on
12901         non-captured leafs.
12902         (capture_info::walk_c_expr): Add more fragments captures cannot
12903         escape through.  Warn on escaped captures.
12904         (dt_simplify::gen_1): Warn on operands we force to have no
12905         side-effects.
12906         (main): Initialize verbose.
12907         * match.pd: Add integer_nonzerop and HONOR_NANS predicates.
12908
12909 2015-07-30  Richard Biener  <rguenther@suse.de>
12910
12911         PR middle-end/67053
12912         * match.pd: Allow both operands to independently have conversion
12913         when simplifying compares of addresses.
12914
12915 2015-07-29  Segher Boessenkool  <segher@kernel.crashing.org>
12916
12917         PR target/66217
12918         PR target/67045
12919         * config/rs6000/rs6000.md (and<mode>3): Put a CONST_INT_P check
12920         around those cases that need one.
12921
12922 2015-07-29  Aditya Kumar  <hiraditya@msn.com>
12923
12924         * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Default to 3.
12925
12926 2015-07-29  H.J. Lu  <hongjiu.lu@intel.com>
12927
12928         * config/i386/iamcu.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE):
12929         New.  Copied from config/i386/gnu-user.h.
12930         (ASM_COMMENT_START): Likewise.
12931         (DBX_REGISTER_NUMBER): Likewise.
12932
12933 2015-07-29  Richard Biener  <rguenther@suse.de>
12934
12935         * gimple-fold.c (fold_gimple_cond): Remove.
12936         (fold_stmt_1): Do not call it.
12937
12938 2015-07-29  Alan Lawrence  <alan.lawrence@arm.com>
12939
12940         * config/aarch64/aarch64-builtins.c (aarch64_fp16_type_node): New.
12941         (aarch64_init_builtins): Make aarch64_fp16_type_node, use for __fp16.
12942
12943         * config/aarch64/aarch64-modes.def: Add HFmode.
12944
12945         * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
12946         __ARM_FP16_FORMAT_IEEE and __ARM_FP16_ARGS. Set bit 1 of __ARM_FP.
12947
12948         * config/aarch64/aarch64.c (aarch64_init_libfuncs,
12949         aarch64_promoted_type): New.
12950
12951         (aarch64_float_const_representable_p): Disable HFmode.
12952         (aarch64_mangle_type): Mangle half-precision floats to "Dh".
12953         (TARGET_PROMOTED_TYPE): Define to aarch64_promoted_type.
12954         (TARGET_INIT_LIBFUNCS): Define to aarch64_init_libfuncs.
12955
12956         * config/aarch64/aarch64.md (mov<mode>): Include HFmode using GPF_F16.
12957         (movhf_aarch64, extendhfsf2, extendhfdf2, truncsfhf2, truncdfhf2): New.
12958
12959         * config/aarch64/iterators.md (GPF_F16): New.
12960
12961 2015-07-29  Richard Biener  <rguenther@suse.de>
12962
12963         * match.pd: Merge address comparison patterns and make them
12964         handle some more cases.
12965
12966 2015-07-29  Richard Biener  <rguenther@suse.de>
12967
12968         * genmatch.c (c_expr::gen_transform): Error on unknown captures.
12969         (parser::parse_capture): Add bool argument on whether to reject
12970         unknown captures.
12971         (parser::parse_expr): Adjust.
12972         (parser::parse_op): Likewise.
12973         (parser::parse_pattern): Likewise.
12974
12975 2015-07-29  Richard Biener  <rguenther@suse.de>
12976
12977         * gimple-fold.c (has_use_on_stmt): New function.
12978         (replace_stmt_with_simplification): Use it to allow
12979         abnormals originally referenced in the stmt.
12980         (fold_stmt_1): Canonicalize operand order.
12981
12982 2015-07-28  David Sherwood  <david.sherwood@arm.com>
12983
12984         * config/arm/arm.c (neon_element_bits, neon_valid_immediate): Call
12985         GET_MODE_INNER unconditionally.
12986         * config/spu/spu.c (arith_immediate_p): Likewise.
12987         * config/i386/i386.c (ix86_build_signbit_mask): Likewise.
12988         * expmed.c (synth_mult): Remove check for VOIDmode result from
12989         GET_MODE_INNER.
12990         (expand_mult_const): Likewise.
12991         * fold-const.c (fold_binary_loc): Replace call to element_precision
12992         with call to GET_MODE_PRECISION.
12993         * genmodes.c (emit_mode_inner_inline): Replace void_mode->name with
12994         m->name.
12995         (emit_mode_inner): Likewise.
12996         * lto-streamer-out.c (lto_write_mode_table): Update GET_MODE_INNER
12997         result check.
12998         * machmode.h (GET_MODE_UNIT_SIZE): Simplify.
12999         (GET_MODE_UNIT_PRECISION): Likewise.
13000         * rtlanal.c (subreg_get_info): Call GET_MODE_INNER unconditionally.
13001         * simplify-rtx.c (simplify_immed_subreg): Likewise.
13002         * stor-layout.c (bitwise_type_for_mode): Update assert.
13003         (element_precision): Remove.
13004
13005 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
13006
13007         * target-insns.def (reload_load_address): New targetm instruction
13008         pattern.
13009         * reload1.c (gen_reload): Use it instead of HAVE_*/gen_* interface.
13010
13011 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
13012
13013         * target-insns.def (atomic_test_and_set): New targetm instruction
13014         pattern.
13015         * optabs.c (maybe_emit_atomic_test_and_set): Use it instead of
13016         HAVE_*/gen_* interface.
13017
13018 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
13019
13020         * target-insns.def (can_extend, ptr_extend): New targetm instruction
13021         patterns.
13022         * optabs.c (can_extend_p): Use them instead of HAVE_*/gen_* interface.
13023         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
13024         * emit-rtl.c (set_reg_attrs_from_value): Likewise.
13025         * rtlanal.c (nonzero_bits1): Likewise.
13026         (num_sign_bit_copies1): Likewise.
13027
13028 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
13029
13030         * target-insns.def (eh_return): New targetm instruction pattern.
13031         * except.c (expand_eh_return): Use it instead of HAVE_*/gen_*
13032         interface.
13033         * function.c (thread_prologue_and_epilogue_insns): Remove
13034         preprocessor condition.
13035
13036 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
13037
13038         * target-insns.def (indirect_jump): New targetm instruction pattern.
13039         * optabs.c (emit_indirect_jump): Use it instead of HAVE_*/gen_*
13040         interface.
13041
13042 2015-07-28  Richard Sandiford  <richard.sandiford@arm.com>
13043
13044         * config/fr30/fr30.md (indirect_jump): Use pmode_register_operand
13045         instead of nonimmediate_operand.  Remove C condiition.
13046
13047 2015-07-28  Richard Biener  <rguenther@suse.de>
13048
13049         * match.pd: Add more simplification of address comparisons.
13050
13051 2015-07-28  Richard Biener  <rguenther@suse.de>
13052
13053         * match.pd: Re-order two cases in comparison with max/min
13054         value simplification to make it apply for bools.
13055
13056 2015-07-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13057
13058         * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p):
13059         Handle simple SIGN_EXTEND or ZERO_EXTEND.
13060         (aarch64_rtx_costs): Properly strip extend or extract before
13061         passing down to rtx costs again.
13062
13063 2015-07-28  Nick Clifton  <nickc@redhat.com>
13064
13065         * config/rl78/rl78.c (rl78_addsi3_internal): New function.
13066         Optimizes the case where -mes0 is active and a constant symbolic
13067         address is used.
13068         * config/rl78/rl78-protos.h: Prototype the new function.
13069         * config/rl78/rl78.md (addsi3_internal_real): Call new function.
13070
13071 2015-07-28  Tom de Vries  <tom@codesourcery.com>
13072
13073         * tree-parloops.c (reduc_stmt_res): New function.
13074         (initialize_reductions, add_field_for_reduction)
13075         (create_phi_for_local_result, create_loads_for_reductions)
13076         (create_stores_for_reduction, build_new_reduction): Handle case that
13077         reduc_stmt is a phi.
13078         (gather_scalar_reductions): Allow double_reduc reductions.
13079
13080 2015-07-28  Richard Biener  <rguenther@suse.de>
13081
13082         * fold-const.c (fold_comparison): Remove equality folding
13083         of decl addresses ...
13084         * match.pd: ... here and merge with existing pattern.
13085
13086 2015-07-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
13087
13088         PR tree-optimization/66828
13089         * tree-ssa-math-opts.c (perform_symbolic_merge): Change type of inc
13090         from int64_t to uint64_t.
13091
13092 2015-07-28  Dominik Vogt  <vogt@linux.vnet.ibm.com>
13093
13094         * opts-common.c (read_cmdline_option): List DriverOnly enum values
13095         as valid only in the error message of the driver, not in the
13096         messages of the language compilers.
13097
13098 2015-07-27  Tom de Vries  <tom@codesourcery.com>
13099
13100         * tree-parloops.c (gather_scalar_reductions): Simplify function
13101         structure.
13102
13103 2015-07-27  Marek Polacek  <polacek@redhat.com>
13104
13105         * ipa-devirt.c (types_same_for_odr): Fix typo.
13106
13107 2015-07-27  Jason Merrill  <jason@redhat.com>
13108
13109         PR debug/66468
13110         * dwarf2out.c (gen_inlined_subroutine_die): Check
13111         cgraph_function_possibly_inlined_p.
13112
13113 2015-07-27  Wilco Dijkstra  <wdijkstr@arm.com>
13114
13115         * config/aarch64/aarch64.md (aarch64_lshr_sisd_or_int_<mode>3):
13116         Place integer variant first.
13117         (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
13118
13119 2015-07-27  Alan Lawrence  <alan.lawrence@arm.com>
13120
13121         PR/63870
13122         * config/arm/arm-builtins.c (enum arm_builtins):
13123         Add ARM_BUILTIN_NEON_BASE and ARM_BUILTIN_NEON_LANE_CHECK.
13124         (ARM_BUILTIN_NEON_BASE): Rename macro to....
13125         (ARM_BUILTIN_NEON_PATTERN_START): ...this.
13126         (arm_init_neon_builtins): Register __builtin_arm_lane_check.
13127         (arm_expand_neon_builtin): Handle ARM_BUILTIN_NEON_LANE_CHECK.
13128
13129 2015-07-27  Alan Lawrence  <alan.lawrence@arm.com>
13130
13131         PR/63870
13132         * config/arm/arm-builtins.c (enum arm_type_qualifiers):
13133         Add qualifier_lane_index.
13134         (arm_binop_imm_qualifiers, BINOP_IMM_QUALIFIERS): New.
13135         (arm_getlane_qualifiers): Use qualifier_lane_index.
13136         (arm_lanemac_qualifiers): Rename to...
13137         (arm_mac_n_qualifiers): ...this.
13138         (LANEMAC_QUALIFIERS): Rename to...
13139         (MAC_N_QUALIFIERS): ...this.
13140         (arm_mac_lane_qualifiers, MAC_LANE_QUALIFIERS): New.
13141         (arm_setlane_qualifiers): Use qualifier_lane_index.
13142         (arm_ternop_imm_qualifiers, TERNOP_IMM_QUALIFIERS): New.
13143         (enum builtin_arg): Add NEON_ARG_LANE_INDEX.
13144         (arm_expand_neon_args): Handle NEON_ARG_LANE_INDEX.
13145         (arm_expand_neon_builtin): Handle qualifier_lane_index.
13146
13147         * config/arm/arm-protos.h (neon_lane_bounds): Add const_tree parameter.
13148         * config/arm/arm.c (bounds_check): Likewise, improve error message.
13149         (neon_lane_bounds, neon_const_bounds): Add arguments to bounds_check.
13150         * config/arm/arm_neon_builtins.def (vshrs_n, vshru_n, vrshrs_n,
13151         vrshru_n, vshrn_n, vrshrn_n, vqshrns_n, vqshrnu_n, vqrshrns_n,
13152         vqrshrnu_n, vqshrun_n, vqrshrun_n, vshl_n, vqshl_s_n, vqshl_u_n,
13153         vqshlu_n, vshlls_n, vshllu_n): Change qualifiers to BINOP_IMM.
13154         (vsras_n, vsrau_n, vrsras_n, vrsrau_n, vsri_n, vsli_n): Change
13155         qualifiers to TERNOP_IMM.
13156         (vdup_lane): Change qualifiers to GETLANE.
13157         (vmla_lane, vmlals_lane, vmlalu_lane, vqdmlal_lane, vmls_lane,
13158         vmlsls_lane, vmlslu_lane, vqdmlsl_lane): Change qualifiers to MAC_LANE.
13159         (vmla_n, vmlals_n, vmlalu_n, vqdmlal_n, vmls_n, vmlsls_n, vmlslu_n,
13160         vqdmlsl_n): Change qualifiers to MAC_N.
13161
13162         * config/arm/neon.md (neon_vget_lane<mode>, neon_vget_laneu<mode>,
13163         neon_vget_lanedi, neon_vget_lanev2di, neon_vset_lane<mode>,
13164         neon_vset_lanedi, neon_vdup_lane<mode>, neon_vdup_lanedi,
13165         neon_vdup_lanev2di, neon_vmul_lane<mode>, neon_vmul_lane<mode>,
13166         neon_vmull<sup>_lane<mode>, neon_vqdmull_lane<mode>,
13167         neon_vq<r>dmulh_lane<mode>, neon_vq<r>dmulh_lane<mode>,
13168         neon_vmla_lane<mode>, neon_vmla_lane<mode>, neon_vmlal<sup>_lane<mode>,
13169         neon_vqdmlal_lane<mode>, neon_vmls_lane<mode>, neon_vmls_lane<mode>,
13170         neon_vmlsl<sup>_lane<mode>, neon_vqdmlsl_lane<mode>):
13171         Remove call to neon_lane_bounds.
13172
13173 2015-07-27  Wilco Dijkstra  <wdijkstr@arm.com>
13174
13175         * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
13176         Place integer variant first.
13177
13178 2015-07-27  Matthew Wahab  <matthew.wahab@arm.com>
13179
13180         * config/arm/arm-arches.def: Add "armv6kz". Replace 6ZK with 6KZ
13181         and FL_FOR_ARCH6ZK with FL_FOR_ARCH6KZ.
13182         * config/arm/arm-c.c (arm_cpu_builtins): Emit "__ARM_ARCH_6ZK__"
13183         for armv6kz targets.
13184         * config/arm/arm-cores.def: Replace 6ZK with 6KZ.
13185         * config/arm/arm-protos.h (FL_ARCH6KZ): New.
13186         (FL_FOR_ARCH6ZK): Remove.
13187         (FL_FOR_ARCH6KZ): New.
13188         (arm_arch6zk): New declaration.
13189         * config/arm/arm-tables.opt: Regenerate.
13190         * config/arm/arm.c (arm_arch6kz): New.
13191         (arm_option_override): Set arm_arch6kz.
13192         * config/arm/arm.h (BASE_ARCH_6ZK): Rename to BASE_ARCH_6KZ.
13193         * config/arm/driver-arm.c: Add comment to "armv6zk" entry.
13194         * doc/invoke.texi: Replace "armv6zk" with "armv6kz".
13195
13196 2015-07-27  Marek Polacek  <polacek@redhat.com>
13197
13198         PR c++/66555
13199         PR c/54979
13200         * doc/invoke.texi: Document -Wtautological-compare.
13201
13202 2015-07-27  Richard Biener  <rguenther@suse.de>
13203
13204         * genmatch.c (decision_tree::gen_gimple): Split out large
13205         subtrees into separate functions.
13206         (decision_tree::gen_generic): Likewise.
13207
13208 2015-07-26  Uros Bizjak  <ubizjak@gmail.com>
13209
13210         * config/alpha/alpha.c: Use SUBREG_P predicate.
13211         * config/alpha/predicates.md: Ditto.
13212
13213 2015-07-25  Dominik Vogt  <vogt@linux.vnet.ibm.com>
13214
13215         * config.host (s390*-*-*): Include driver-native.c only when
13216         building with s390* as host *and* target.
13217
13218 2015-07-25  Oleg Endo  <olegendo@gcc.gnu.org>
13219
13220         PR target/66930
13221         * config/sh/sh.c (sh_split_movrt_negc_to_movt_xor): Add missing
13222         T bit register modified_between_p check.
13223
13224 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
13225
13226         * config/i386/i386.c: Use SUBREG_P predicate.
13227         * config/i386/i386.md: Ditto.
13228         * config/i386/sse.md: Ditto.
13229         * config/i386/predicates.md: Ditto.
13230
13231 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
13232
13233         PR target/67004
13234         * config/i386/i386.h (ADJUST_INSN_LENGTH): Use NONDEBUG_INSN_P (INSN)
13235         predicate and INSN_CODE (INSN) >= 0 to check for valid instruction.
13236
13237 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
13238
13239         * Makefile.in: Remove use of TREEBROWSER.
13240         * config.in: Regenerated.
13241         * configure: Regenerated.
13242         * configure.ac: Remove definition of TREEBROWSER.
13243         * tree-browser.c: Removed.
13244         * tree-browser.def: Removed.
13245
13246 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
13247
13248         * graphite-scop-detection.c: Include gimple-pretty-print.h.
13249         (stmt_simple_for_scop_p): Print when a stmt is not handled in
13250         Graphite.
13251         (scopdet_basic_block_info): Print when a loop or bb cannot be
13252         represented in Graphite.
13253
13254 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
13255
13256         PR target/66648
13257         * config/i386/i386.c (ix86_expand_set_or_movmem): Emit main loop
13258         execution guard when min_size is less than size_needed.
13259
13260 2015-07-25  Sebastian Pop  <s.pop@samsung.com>
13261
13262         * doc/install.texi: Document supported versions of ISL.
13263
13264 2015-07-25  Jeff Law  <law@redhat.com>
13265
13266         Revert:
13267         PR lto/66752
13268         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
13269         unable to find X NE 0 in the tables, return X as the simplified
13270         condition.
13271         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
13272         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
13273         to VISISTED_BBS.  */
13274         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
13275         after removing the control flow statement and unnecessary edges.
13276
13277 2015-07-25  David Edelsohn  <dje.gcc@gmail.com>
13278
13279         Revert:
13280         2015-07-23  Alexandre Oliva  <aoliva@redhat.com>
13281
13282         PR rtl-optimization/64164
13283         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
13284         * tree-ssa-copyrename.c: Removed.
13285         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
13286         -ftree-coalesce-vars.
13287         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
13288         * common.opt (ftree-copyrename): Ignore.
13289         (ftree-coalesce-inlined-vars): Likewise.
13290         * doc/invoke.texi: Remove the ignored options above.
13291         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
13292         * tree-ssa-coalesce.h: ... here.
13293         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
13294         headers required by it.
13295         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
13296         across variables when flag_tree_coalesce_vars.  Check register
13297         use and promoted modes to allow coalescing.  Moved to
13298         tree-ssa-coalesce.c.
13299         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
13300         with its member functions to tree-ssa-coalesce.c.
13301         (var_map_base_init): Likewise.  Renamed to
13302         compute_samebase_partition_bases.
13303         (partition_view_normal): Drop want_bases parameter.
13304         (partition_view_bitmap): Likewise.
13305         * tree-ssa-live.h: Adjust declarations.
13306         * tree-ssa-coalesce.c: Include explow.h.
13307         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
13308         default defs at the entry point.
13309         (dump_part_var_map): New.
13310         (compute_optimized_partition_bases): New, called by...
13311         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
13312         of compute_samebase_partition_bases.  Adjust.
13313         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
13314         * cfgexpand.c (leader_merge): New.
13315         (get_rtl_for_parm_ssa_default_def): New.
13316         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
13317         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
13318         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
13319         redundant MEM attr setting.
13320         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
13321         from...
13322         (expand_one_stack_var): ... this.  New wrapper to check and
13323         skip already expanded SSA partitions.
13324         (record_alignment_for_reg_var): New, factored out of...
13325         (expand_one_var): ... this.
13326         (expand_one_ssa_partition): New.
13327         (adjust_one_expanded_partition_var): New.
13328         (expand_one_register_var): Check and skip already expanded SSA
13329         partitions.
13330         (expand_used_vars): Don't create DECLs for anonymous SSA
13331         names.  Expand all SSA partitions, then adjust all SSA names.
13332         (pass::execute): Replace the loops that set
13333         SA.partition_to_pseudo from partition leaders and cleared
13334         DECL_RTL for multi-location variables, and that which used to
13335         rename vars and set attrs, with one that clears DECL_RTL and
13336         checks that PARMs and RESULTs default_defs match DECL_RTL.
13337         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
13338         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
13339         * explow.c (promote_ssa_mode): New.
13340         * explow.h (promote_ssa_mode): Declare.
13341         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
13342         * function.c: Include cfgexpand.h.
13343         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
13344         (use_register_for_parm_decl): Wrapper for the above to
13345         special-case the result_ptr.
13346         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
13347         (split_complex_args): Take assign_parm_data_all argument.
13348         Pass it to rtl_for_parm.  Set up rtl and context for split
13349         args.
13350         (assign_parms_augmented_arg_list): Adjust.
13351         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
13352         multiple locations.  Recognize split complex args.
13353         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
13354         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
13355         (assign_parm_setup_block): Prefer SSA-assigned location.
13356         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
13357         if stack_parm is NULL.
13358         (assign_parm_setup_stack): Prefer SSA-assigned location.
13359         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
13360         rtl before testing for pointer bounds.  Special-case result_ptr.
13361         (expand_function_start): Maybe reset DECL_RTL of result.
13362         Prefer SSA-assigned location for result and static chain.
13363         Factor out DECL_RESULT and SET_DECL_RTL.
13364         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
13365         anonymous SSA names.  Use promote_ssa_mode.
13366         (get_temp_reg): Likewise.
13367         (remove_ssa_form): Adjust.
13368         * stor-layout.c (layout_decl): Don't set mem attributes of
13369         non-MEMs.
13370         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
13371         and get its reg_usage for reg invalidation.
13372         (compute_bb_dataflow): Pass it insn.
13373         (emit_notes_in_bb): Likewise.
13374
13375 2015-07-25  Uros Bizjak  <ubizjak@gmail.com>
13376
13377         * config/i386/i386.c (ix86_va_start): Remove
13378         unneeded !TARGET_64BIT check.
13379         (ix86_gimplify_va_arg): Ditto.
13380
13381 2015-07-24  Tom de Vries  <tom@codesourcery.com>
13382
13383         * graphite-sese-to-poly.c (build_poly_scop): Always call
13384         rewrite_commutative_reductions_out_of_ssa.
13385
13386 2015-07-24  Tom de Vries  <tom@codesourcery.com>
13387
13388         * graphite-sese-to-poly.c (is_reduction_operation_p): Limit
13389         flag_associative_math to FLOAT_TYPE_P.  Honour
13390         TYPE_OVERFLOW_WRAPS for INTEGRAL_TYPE_P. Don't allow any other types.
13391
13392 2015-07-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>
13393
13394         PR c++/64079
13395         * toplev.c (check_global_declaration): Use DECL_SOURCE_LOCATION
13396         and "%qD" in warning_at instead of "%q+D" in warning.
13397
13398 2015-07-24  Uros Bizjak  <ubizjak@gmail.com>
13399
13400         * config/i386/i386.c (ix86_call_abi_override): Call ix86_function_abi.
13401         (ix86_function_abi): Cleanup.
13402
13403 2015-07-24  Michael Darling  <darlingm@gmail.com>
13404
13405         PR other/66259
13406         * acinclude.m4: Reflects renaming of configure.in to configure.ac
13407         * configure: Likewise
13408         * configure.ac: Likewise
13409         * doc/install.texi: Likewise
13410         * doc/tm.texi: Likewise
13411         * doc/tm.texi.in: Likewise
13412
13413 2015-07-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13414
13415         * alias.c (nonoverlapping_memrefs_p): Use std::swap instead of
13416         manually swapping values.
13417         * cse.c (fold_rtx): Likewise.
13418         * lra-eliminations.c (form_sum): Likewise.
13419
13420 2015-07-24  Uros Bizjak  <ubizjak@gmail.com>
13421
13422         PR target/64003
13423         * config/i386/i386.h (ADJUST_INSN_LENGTH): New define.
13424         * config/i386/i386.md (maybe_prefix_bnd): New attribute.
13425         (*jcc_1, *jcc_2, jump, simple_return_internal)
13426         (simple_return_pop_internal): Set attribute maybe_prefix_bnd.
13427         Set length_nobnd attribute instead of length attribute.
13428         (indirect_jump, *tablejump_1): Set attribute maybe_prefix_bnd.
13429         (length_nobnd): Remove attribute.
13430         (length): Remove length_nobnd processing.
13431
13432 2015-07-24  Nathan Sidwell  <nathan@codesourcery.com>
13433
13434         * gimplify.c (omp_default_clause): New function.  Reorganize flow
13435         for clarity. Broken out of ...
13436         (omp_notice_variable): ... here.
13437
13438 2015-07-24  Gary Funck  <gary@intrepid.com>
13439
13440         PR middle-end/66984
13441         * fold-const.c (fold_binary_loc): Call fold_convert on arguments to
13442         fold_build2 for CEIL_DIV_EXPR and FLOOR_DIV_EXPR optimization.
13443
13444 2015-07-24  Tom de Vries  <tom@codesourcery.com>
13445
13446         * tree-parloops.c (gen_parallel_loop): Add debug print for alternative
13447         exit-first loop transform.
13448
13449 2015-07-24  Cesar Philippidis  <cesar@codesourcery.com>
13450
13451         PR 66714
13452         * tree-cfg.c (struct replace_decls_d): New struct.
13453         (replace_block_vars_by_duplicates_1): New function.
13454         (replace_block_vars_by_duplicates): Use it to replace the decls
13455         in the value exprs by duplicates.
13456
13457 2015-07-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>
13458
13459         * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Handle -h, -static,
13460         -shared, -symbolic, -rdynamic.
13461
13462 2015-07-24  Szabolcs Nagy  <szabolcs.nagy@arm.com>
13463
13464         PR target/65711
13465         * config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Move
13466         -dynamic-linker within %{!static %{!shared, and -rdynamic within
13467         %{!static.
13468
13469 2015-07-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
13470
13471         PR ipa/66566
13472         * ipa-inline-analysis.c (estimate_calls_size_and_time): Check
13473         edge summary is available.
13474
13475 2015-07-24  Richard Biener  <rguenther@suse.de>
13476
13477         * genmatch.c (struct dt_node): Add statistic fields.
13478         (dt_node::analyze): New method.
13479         (decision_tree::gen_gimple): Call analyze on the root node
13480         and print statistics to stderr.
13481         (decision_tree::gen_generic): Likewise.
13482
13483 2015-07-24  Richard Biener  <rguenther@suse.de>
13484
13485         * fold-const.c (fold_binary_loc): Move simplifying of comparisons
13486         against the highest or lowest possible integer ...
13487         * match.pd: ... as patterns here.
13488
13489 2015-07-24  Richard Biener  <rguenther@suse.de>
13490
13491         * genmatch.c (struct capture_info): Add same_as field.
13492         (capture_info::capture_info): Initialize same_as.
13493         (capture_info::walk_match): Compute same_as.
13494         (capture_info::walk_result): Compute stuff for the leader.
13495         (capture_info::walk_c_expr): Likewise.
13496         (dt_simplify::gen_1): Only look at leaders when deciding
13497         to force no side-effects or emit side-effects of omitted operands.
13498
13499 2015-07-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13500
13501         * config/s390/s390.c (s390_save_gprs_to_fprs): Add CFA_REGISTER
13502         reg note to the GPR -> FPR save instructions.
13503
13504 2015-07-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13505
13506         * config/s390/s390.c (s390_rtx_costs): Make risbg patterns
13507         cheaper.
13508         (s390_expand_insv): Don't generate risbg pattern for constant zero
13509         sources.
13510         * config/s390/s390.md ("*insv<mode>_zEC12_appendbitsleft")
13511         ("*insv<mode>_z10_appendbitsleft"): New pattern definitions.  New
13512         splitters.
13513
13514 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
13515
13516         * config/s390/s390.c (s390_reorg): Clean up handling of processors
13517         with
13518         -mtune=
13519         (s390_issue_rate): Likewise.
13520         (s390_sched_reorder): Likewise.
13521         (s390_sched_variable_issue): Likewise.
13522         (s390_loop_unroll_adjust): Likewise.
13523         (s390_option_override):  Likewise.
13524
13525 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
13526
13527         * config/s390/driver-native.c (s390_host_detect_local_cpu): Handle
13528         processor capabilities with -march=native.
13529         * config/s390/s390.h (MARCH_MTUNE_NATIVE_SPECS): Likewise.
13530         (DRIVER_SELF_SPECS): Likewise.  Join specs for 31 and 64 bit.
13531         (S390_TARGET_BITS_STRING): Macro to simplify specs.
13532
13533 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
13534
13535         * config/s390/s390.c (s390_issue_rate): Handle
13536         PROCESSOR_2094_Z9_EC.
13537         (s390_option_override): Likewise.
13538         (s390_adjust_priority): Likewise.
13539
13540 2015-07-24  Dominik Vogt  <vogt@linux.vnet.ibm.com>
13541
13542         * config/s390/s390.h: S390: Do not define EXTRA_SPEC_FUNCTIONS
13543         when cross compiling.
13544
13545 2015-07-24  Richard Biener  <rguenther@suse.de>
13546
13547         * fold-const.c (maybe_canonicalize_comparison_1): Move
13548         A code CST canonicalization ...
13549         * match.pd: ... to a pattern here.
13550
13551 2015-07-24  Jiong Wang  <jiong.wang@arm.com>
13552
13553         Revert:
13554         2015-07-22  Jiong Wang  <jiong.wang@arm.com>
13555         PR target/63521
13556         * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
13557         (HONOR_REG_ALLOC_ORDER): Define.
13558
13559 2015-07-24  Richard Biener  <rguenther@suse.de>
13560
13561         * genmatch.c (add_operator): Allow SSA_NAME as predicate.
13562         * fold-const.c (fold_comparison): Move parameter does not
13563         alias &local simplification ...
13564         * match.pd: ... as a pattern here.
13565
13566 2015-07-24  Richard Biener  <rguenther@suse.de>
13567
13568         * gimple-fold.c (replace_stmt_with_simplification): Special-case
13569         valueizing call operands.
13570         * gimple-match-head.c (maybe_push_res_to_seq): Take
13571         number of call arguments from ops array.
13572         (do_valueize): New function.
13573         (gimple_simplify): Return true if valueization changed
13574         any operand even if the result didn't simplify further.
13575
13576 2015-07-24  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
13577
13578         PR middle-end/25530
13579         * match.pd (mult (trunc_div @0 integer_pow2p@1) @1) : New simplifier.
13580
13581 2015-07-24  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
13582
13583         PR middle-end/25529
13584         * match.pd (trunc_div (mult @0 integer_pow2p@1) @1) : New simplifier.
13585
13586 2015-07-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
13587
13588         * config/arm/arm.c (arm_emit_movpair): Add REG_EQUAL notes to
13589         instruction.
13590
13591 2015-07-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
13592
13593         * cse.c (cse_insn): Fix missing check for STRICT_LOW_PART and minor
13594         clean up.
13595
13596 2015-07-23  Uros Bizjak  <ubizjak@gmail.com>
13597
13598         * config/i386/i386.c (ix86_build_builtin_va_list_64): Rename
13599         from ix86_build_builtin_va_list_abi.  Handle only 64bit non-MS_ABI
13600         targets here.
13601         (ix86_build_builtin_va_list): Rewrite sysv_va_list_type_node and
13602         ms_va_list_type_node initialization.
13603
13604 2015-07-23  Jeff Law  <law@redhat.com>
13605
13606         PR lto/66752
13607         * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
13608         unable to find X NE 0 in the tables, return X as the simplified
13609         condition.
13610         (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
13611         in VISISTED_BBS, then return failure.  Else add nodes from NEXT_PATH
13612         to VISISTED_BBS.  */
13613         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
13614         after removing the control flow statement and unnecessary edges.
13615
13616 2015-07-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
13617
13618         * tree-pass.h (get_current_pass_name): Removed.
13619
13620 2015-07-23  Alexandre Oliva  <aoliva@redhat.com>
13621
13622         PR rtl-optimization/64164
13623         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
13624         * tree-ssa-copyrename.c: Removed.
13625         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
13626         -ftree-coalesce-vars.
13627         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
13628         * common.opt (ftree-copyrename): Ignore.
13629         (ftree-coalesce-inlined-vars): Likewise.
13630         * doc/invoke.texi: Remove the ignored options above.
13631         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
13632         * tree-ssa-coalesce.h: ... here.
13633         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
13634         headers required by it.
13635         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
13636         across variables when flag_tree_coalesce_vars.  Check register
13637         use and promoted modes to allow coalescing.  Moved to
13638         tree-ssa-coalesce.c.
13639         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
13640         with its member functions to tree-ssa-coalesce.c.
13641         (var_map_base_init): Likewise.  Renamed to
13642         compute_samebase_partition_bases.
13643         (partition_view_normal): Drop want_bases parameter.
13644         (partition_view_bitmap): Likewise.
13645         * tree-ssa-live.h: Adjust declarations.
13646         * tree-ssa-coalesce.c: Include explow.h.
13647         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
13648         default defs at the entry point.
13649         (dump_part_var_map): New.
13650         (compute_optimized_partition_bases): New, called by...
13651         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
13652         of compute_samebase_partition_bases.  Adjust.
13653         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
13654         * cfgexpand.c (leader_merge): New.
13655         (get_rtl_for_parm_ssa_default_def): New.
13656         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
13657         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
13658         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
13659         redundant MEM attr setting.
13660         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
13661         from...
13662         (expand_one_stack_var): ... this.  New wrapper to check and
13663         skip already expanded SSA partitions.
13664         (record_alignment_for_reg_var): New, factored out of...
13665         (expand_one_var): ... this.
13666         (expand_one_ssa_partition): New.
13667         (adjust_one_expanded_partition_var): New.
13668         (expand_one_register_var): Check and skip already expanded SSA
13669         partitions.
13670         (expand_used_vars): Don't create DECLs for anonymous SSA
13671         names.  Expand all SSA partitions, then adjust all SSA names.
13672         (pass::execute): Replace the loops that set
13673         SA.partition_to_pseudo from partition leaders and cleared
13674         DECL_RTL for multi-location variables, and that which used to
13675         rename vars and set attrs, with one that clears DECL_RTL and
13676         checks that PARMs and RESULTs default_defs match DECL_RTL.
13677         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
13678         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
13679         * explow.c (promote_ssa_mode): New.
13680         * explow.h (promote_ssa_mode): Declare.
13681         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
13682         * function.c: Include cfgexpand.h.
13683         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
13684         (use_register_for_parm_decl): Wrapper for the above to
13685         special-case the result_ptr.
13686         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
13687         (split_complex_args): Take assign_parm_data_all argument.
13688         Pass it to rtl_for_parm.  Set up rtl and context for split
13689         args.
13690         (assign_parms_augmented_arg_list): Adjust.
13691         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
13692         multiple locations.  Recognize split complex args.
13693         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
13694         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
13695         (assign_parm_setup_block): Prefer SSA-assigned location.
13696         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
13697         if stack_parm is NULL.
13698         (assign_parm_setup_stack): Prefer SSA-assigned location.
13699         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
13700         rtl before testing for pointer bounds.  Special-case result_ptr.
13701         (expand_function_start): Maybe reset DECL_RTL of result.
13702         Prefer SSA-assigned location for result and static chain.
13703         Factor out DECL_RESULT and SET_DECL_RTL.
13704         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
13705         anonymous SSA names.  Use promote_ssa_mode.
13706         (get_temp_reg): Likewise.
13707         (remove_ssa_form): Adjust.
13708         * stor-layout.c (layout_decl): Don't set mem attributes of
13709         non-MEMs.
13710         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
13711         and get its reg_usage for reg invalidation.
13712         (compute_bb_dataflow): Pass it insn.
13713         (emit_notes_in_bb): Likewise.
13714
13715 2015-07-23  Segher Boessenkool  <segher@kernel.crashing.org>
13716
13717         PR target/66217
13718         * config/rs6000/rs6000-protos.h (rs6000_emit_2insn_and): Change
13719         prototype.
13720         * config/rs6000/rs6000.c (rs6000_emit_dot_insn): New function.
13721         (rs6000_emit_2insn_and): Handle dot forms.
13722         * config/rs6000/rs6000.md (and<mode>3): Adjust.
13723         (*and<mode>3_2insn): Remove TODO.  Adjust.  Add "type" attr.
13724         (*and<mode>3_2insn_dot, *and<mode>3_2insn_dot2): New.
13725
13726 2015-07-23  Richard Biener  <rguenther@suse.de>
13727
13728         * generic-match-head.c: Include cgraph.h.
13729         * gimple-match-head.c: Likewise.
13730         * tree-ssa-sccvn.c (free_scc_vn): Guard against newly created
13731         SSA names.
13732         * fold-const.c (fold_binary_loc): Move &A ==/!= &B simplification...
13733         * match.pd: ...to a pattern here.  Add &A ==/!= 0 simplification
13734         pattern.
13735
13736 2015-07-23  Richard Biener  <rguenther@suse.de>
13737
13738         * gimple-fold.c (fold_gimple_cond): Do not require folding
13739         results to pass valid_gimple_rhs_p.
13740         * tree-cfg.h (fold_cond_expr_cond): Remove.
13741         * tree-cfg.c (fold_cond_expr_cond): Likewise.
13742         (make_edges): Do not call it.
13743         * tree-inline.c (tree_function_versioning): Likewise.
13744
13745 2015-07-23  Tom de Vries  <tom@codesourcery.com>
13746
13747         * tree-parloops.c (gather_scalar_reductions): Add arg to call to
13748         vect_force_simple_reduction.
13749         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Same.
13750         (vect_is_simple_reduction_1): Add and handle
13751         need_wrapping_integral_overflow parameter.
13752         (vect_is_simple_reduction, vect_force_simple_reduction): Add and pass
13753         need_wrapping_integral_overflow parameter.
13754         (vectorizable_reduction): Add arg to call to vect_is_simple_reduction.
13755         * tree-vectorizer.h (vect_force_simple_reduction): Add parameter to
13756         decl.
13757
13758 2015-07-23  Yuri Rumyantsev  <ysrumyan@gmail.com>
13759
13760         PR tree-optimization/66926,66951
13761         * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Delete
13762         INNER_LOOP and fix up condition for renaming virtual operands.
13763
13764 2015-07-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13765
13766         * combine.c (try_combine): Use std::swap instead of manually
13767         swapping.
13768
13769 2015-07-23  Prachi Godbole  <prachi.godbole@imgtec.com>
13770
13771         * config/mips/i6400.md: New file.
13772         * config/mips/mips-cpus.def (mips32r6): Change to PROCESSOR_I6400.
13773         (mips64r6): Likewise.
13774         (i6400): Define.
13775         * config/mips/mips-tables.opt: Regenerate.
13776         * config/mips/mips.c (mips_rtx_cost_data): Add I6400 processor.
13777         (mips_issue_rate): Add support for i6400.
13778         (mips_multipass_dfa_lookahead): Likewise.
13779         * config/mips/mips.h (TUNE_I6400): Define.
13780         * config/mips/mips.md: Include i6400.md.
13781         (processor): Add i6400.
13782         * doc/invoke.texi (-march=@var{arch}): Add i6400.
13783
13784 2015-07-23  Richard Biener  <rguenther@suse.de>
13785
13786         PR middle-end/66916
13787         * match.pd: Guard widen and sign-change comparison simplification
13788         with single_use.
13789
13790 2015-07-23  Richard Biener  <rguenther@suse.de>
13791
13792         PR tree-optimization/66945
13793         * tree-ssa-propagate.c (substitute_and_fold_dom_walker
13794         ::before_dom_children): Force the propagators idea of
13795         non-executable edges to materialize, not what the folder
13796         chooses.
13797
13798 2015-07-23  Richard Biener  <rguenther@suse.de>
13799
13800         * gimple.h (gimple_cond_make_false): Use 0 != 0.
13801         (gimple_cond_make_true): Use 1 != 0.
13802
13803 2015-07-22  DJ Delorie  <dj@redhat.com>
13804
13805         * config/msp430/t-msp430 (MULTILIB_DIRNAMES): Remove trailing
13806         slashes.
13807
13808         * config/msp430/msp430.md (ashlhi3): Optimize shifts of subregs.
13809         (ashrhi3): Likewise.
13810         (lshrhi3): Likewise.
13811         (movhi): Take advantage of zero-extend to load small constants.
13812         (movpsi): Likewise.
13813         (and<mode>3): Likewise.
13814         (zero_extendqihi2): Likewise.
13815         (zero_extendqisi2): New.
13816         * config/msp430/constraints.md (N,O): New.
13817         * config/msp430/msp430.h (WORD_REGISTER_OPERATIONS): Define.
13818
13819 2015-07-22  Uros Bizjak  <ubizjak@gmail.com>
13820
13821         PR target/66954
13822         * config/i386/i386.c (get_builtin_code_for_version): Add P_AES
13823         to enum feature_priority and feature_list.
13824         (fold_builtin_cpu): Add F_AES to enum processor_features
13825         and isa_names_table.
13826
13827 2015-07-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
13828
13829         PR driver/66737
13830         * config/i386/linux-common.h (MPX_SPEC): Use linker option
13831         for 64bit target only.
13832
13833 2015-07-22  Bernd Schmidt  <bernds@codesourcery.com>
13834
13835         * config/nvptx/nvptx.c: Expand some comments.
13836
13837 2015-07-22  James Greenhalgh  <james.greenhalgh@arm.com>
13838
13839         * config/arm/cortex-a53 (cortex_53_advsimd): Rename to...
13840         (cortex_a53_advsimd): ...This.
13841
13842 2015-07-22  Richard Biener  <rguenther@suse.de>
13843
13844         * genmatch.c (expr::gen_transform): Clarify error message
13845         and display location.
13846
13847 2015-07-22  Richard Biener  <rguenther@suse.de>
13848
13849         * genmatch.c (struct operand): Add location member.
13850         (predicate, expr, c_expr, capture, if_expr, with_expr): Adjust
13851         constructors.
13852         (struct simplify): Remove match_location and result_location
13853         members.
13854         (elsehwere): Adjust.
13855
13856 2015-07-22  Prachi Godbole  <prachi.godbole@imgtec.com>
13857
13858         * config/mips/m5100.md: New file.
13859         * config/mips/mips-cpus.def (m5100, m5101): Define.
13860         * config/mips/mips-tables.opt: Regenerate.
13861         * config/mips/mips.c (mips_rtx_cost_data): Add costs for m5100.
13862         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=m5100 and
13863         -march=m5101 to -mips32r5.
13864         (MIPS_ARCH_FLOAT_SPEC): Map -m5101 to -msoft-float.
13865         (MIPS_ISA_NAN2008_SPEC): Map -march=m51* to -mnan=2008 if
13866         !-msoft-float.
13867         * config/mips/mips.md: Include m5100.md.
13868         (processor): Add m5100.
13869         * doc/invoke.texi (-march=@var{arch}): Add m5100, m5101.
13870
13871 2015-07-22  Robert Suchanek  <robert.suchanek@imgtec.com>
13872
13873         * config/mips/mips-cpus.def (interaptiv): Define.
13874         * config/mips/mips-tables.opt: Regenerate.
13875         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=interaptiv to
13876         -mips32r2.
13877         (BASE_DRIVER_SELF_SPECS): Likewise but map to -mdsp.
13878         * doc/invoke.texi (-march=@var{arch}): Add interaptiv.
13879
13880 2015-07-22  Jiong Wang  <jiong.wang@arm.com>
13881
13882         PR target/63521
13883         * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
13884         (HONOR_REG_ALLOC_ORDER): Define.
13885
13886 2015-07-22  Richard Biener  <rguenther@suse.de>
13887
13888         PR tree-optimization/66952
13889         * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): For
13890         blocks we end up executing unconditionally reset all SSA
13891         info such as range and alignment.
13892         * tree-ssanames.h (reset_flow_sensitive_info): Declare.
13893         * tree-ssanames.c (reset_flow_sensitive_info): New function.
13894
13895 2015-07-22  Charles Baylis  <charles.baylis@linaro.org>
13896
13897         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Fix
13898         typo in attribute.
13899
13900 2015-07-22  Richard Biener  <rguenther@suse.de>
13901
13902         * genmatch.c (parser::parse_result): Properly handle
13903         match with result operands and conditions.
13904
13905 2015-07-22  Charles Baylis  <charles.baylis@linaro.org>
13906
13907         PR target/63870
13908         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
13909         Add qualifier_struct_load_store_lane_index.
13910         (aarch64_types_loadstruct_lane_qualifiers): Use
13911         qualifier_struct_load_store_lane_index for lane index argument for
13912         last argument.
13913         (aarch64_types_storestruct_lane_qualifiers): Ditto.
13914         (builtin_simd_arg): Add SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
13915         (aarch64_simd_expand_args): Add new argument describing mode of
13916         builtin. Check lane bounds for arguments with
13917         SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
13918         (aarch64_simd_expand_builtin): Emit error for incorrect lane indices
13919         if marked with SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
13920         (aarch64_simd_expand_builtin): Handle arguments with
13921         qualifier_struct_load_store_lane_index. Pass machine mode of builtin to
13922         aarch64_simd_expand_args.
13923         * config/aarch64/aarch64-simd-builtins.def: Declare ld[234]_lane and
13924         vst[234]_lane with BUILTIN_VALLDIF.
13925         * config/aarch64/aarch64-simd.md:
13926         (aarch64_vec_load_lanesoi_lane<mode>): Use VALLDIF iterator. Perform
13927         endianness reversal on lane index.
13928         (aarch64_vec_load_lanesci_lane<mode>): Ditto.
13929         (aarch64_vec_load_lanesxi_lane<mode>): Ditto.
13930         (vec_store_lanesoi_lane<mode>): Use VALLDIF iterator.
13931         (vec_store_lanesci_lane<mode>): Ditto.
13932         (vec_store_lanesxi_lane<mode>): Ditto.
13933         (aarch64_ld2_lane<mode>): Use VALLDIF iterator. Remove endianness
13934         reversal of lane index.
13935         (aarch64_ld3_lane<mode>): Ditto.
13936         (aarch64_ld4_lane<mode>): Ditto.
13937         (aarch64_st2_lane<mode>): Ditto.
13938         (aarch64_st3_lane<mode>): Ditto.
13939         (aarch64_st4_lane<mode>): Ditto.
13940         * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rename mode parameter
13941         to qmode. Add new mode parameter. Update uses.
13942         (__LD3_LANE_FUNC): Ditto.
13943         (__LD4_LANE_FUNC): Ditto.
13944         (__ST2_LANE_FUNC): Ditto.
13945         (__ST3_LANE_FUNC): Ditto.
13946         (__ST4_LANE_FUNC): Ditto.
13947
13948 2015-07-22  Jonathan Wakely  <jwakely@redhat.com>
13949
13950         * doc/invoke.texi (Language Independent Options): Rename node to
13951         Diagnostic Message Formatting Options.
13952
13953 2015-07-21  Vladimir Makarov  <vmakarov@redhat.com>
13954
13955         PR ipa/66424.
13956         * lra-remat.c (operand_to_remat): Prevent using insns with input
13957         subregs processed separately by IRA.
13958
13959 2015-07-21  Andrew MacLeod  <amacleod@redhat.com>
13960
13961         * ssa-iterators.h (has_zero_uses, has_single_use): Implement as
13962         straight loops.
13963         (single_imm_use): Check for iterator node.
13964         (num_imm_uses): Likewise.
13965         * tree-ssa-operands.c (has_zero_uses_1): Delete.
13966         (single_imm_use_1): Check for iterator node.
13967
13968 2015-07-21  Mike Frysinger  <vapier@gentoo.org>
13969             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
13970
13971         * configure.ac: Add check for new options in isl-0.15.
13972         * config.in, configure: Rebuilt.
13973         * graphite-blocking.c: Include <isl/constraint.h>
13974         * graphite-interchange.c,  graphite-poly.c: Likewise.
13975         * graphhite-scop-detection.c, graphite-sese-to-poly.c: Likewise.
13976         * graphite.c: Likewise.
13977         * graphite-isl-ast-to-gimple.c: Include <isl/constraint.h> and
13978         <isl/union_set.h>.
13979         * graphite-dependences.c: Include <isl/constraint.h>.
13980         (max_number_of_out_dimensions): Returns isl_stat.
13981         (extend_schedule_1): Likewise
13982         (extend_schedule): Corresponding changes.
13983         * graphite-optimize-isl.c: Include <isl/constraint.h> and
13984         <isl/union_set.h>.
13985         (getSingleMap): Change return type of isl_stat.
13986         (optimize_isl): Conditionally use
13987         isl_options_set_schedule_serialize_sccs.
13988         * graphite-poly.h (isl_stat, isl_stat_ok): Define fallbacks
13989         if not HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS.
13990
13991 2015-07-21  Georg-Johann Lay  <avr@gjlay.de>
13992
13993         PR target/66956
13994         * config/avr/avr-dimode.md (<extend_u>mulsidi3_insn)
13995         (<extend_u>mulsidi3): Don't use if !AVR_HAVE_MUL.
13996
13997 2015-07-21  Richard Biener  <rguenther@suse.de>
13998
13999         PR tree-optimization/66948
14000         * genmatch.c (capture_info::walk_match): Also recurse to
14001         captures.  Properly compute expr state from captures of
14002         captures.
14003         * match.pd: Add single-use guards to
14004         (X & C2) >> C1 into (X >> C1) & (C2 >> C1) transform.
14005
14006 2015-07-21  Nathan Sidwell  <nathan@codesourcery.com>
14007
14008         * config/nvptx/mkoffload.c (process): Add static destructor call.
14009
14010 2015-07-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14011
14012         PR middle-end/66915
14013         * match.pd (A - B -> A + (-B)): Don't allow folding
14014         when type if a fixed-point type.
14015
14016 2015-07-20  DJ Delorie  <dj@redhat.com>
14017
14018         * config/rl78/rl78-real.md (andqi3_real): Expand operands for clr1.
14019         (iorqi3_real): Likewise for set1.
14020
14021 2015-07-20  Uros Bizjak  <ubizjak@gmail.com>
14022
14023         * config/i386/i386.c (ix86_md_asm_adjust): Handle DImode dest_mode
14024         for !TARGET_64BIT.
14025
14026 2015-07-20  Aditya Kumar  <hiraditya@msn.com>
14027
14028         * graphite-isl-ast-to-gimple.c:
14029         Refactor so that each function can access 'region'. This will help
14030         maintain a parameter rename_map within a region.
14031
14032 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
14033
14034         * config/rs6000/rs6000.md (*lt0_disi): New.
14035
14036 2015-07-20  Segher Boessenkool  <segher@kernel.crashing.org>
14037
14038         PR target/66217
14039         * config/rs6000/constraints.md ("S", "T", "t"): Delete.  Update
14040         "available letters" comment.
14041         * config/rs6000/predicates.md (mask_operand, mask_operand_wrap,
14042         mask64_operand, mask64_2_operand, any_mask_operand, and64_2_operand,
14043         and_2rld_operand):  Delete.
14044         (and_operand): Adjust.
14045         (rotate_mask_operator): New.
14046         * config/rs6000/rs6000-protos.h (build_mask64_2_operands,
14047         includes_lshift_p, includes_rshift_p, includes_rldic_lshift_p,
14048         includes_rldicr_lshift_p, insvdi_rshift_rlwimi_p, extract_MB,
14049         extract_ME): Delete.
14050         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
14051         rs6000_is_valid_shift_mask, rs6000_is_valid_insert_mask,
14052         rs6000_insn_for_and_mask, rs6000_insn_for_shift_mask,
14053         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
14054         rs6000_emit_2insn_and): New.
14055         * config/rs6000/rs6000.c (num_insns_constant): Adjust.
14056         (build_mask64_2_operands, includes_lshift_p, includes_rshift_p,
14057         includes_rldic_lshift_p, includes_rldicr_lshift_p,
14058         insvdi_rshift_rlwimi_p, extract_MB, extract_ME): Delete.
14059         (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
14060         rs6000_insn_for_and_mask, rs6000_is_valid_shift_mask,
14061         s6000_insn_for_shift_mask, rs6000_is_valid_insert_mask,
14062         rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
14063         rs6000_emit_2insn_and): New.
14064         (print_operand) <'b', 'B', 'm', 'M', 's', 'S', 'W'>: Delete.
14065         (rs6000_rtx_costs) <CONST_INT>: Delete mask_operand and mask64_operand
14066         handling.
14067         <NOT>: Don't fall through to next case.
14068         <AND>: Handle the various rotate-and-mask cases directly.
14069         <IOR>: Always cost as one insn.
14070         * config/rs6000/rs6000.md (splitter for bswap:SI): Adjust.
14071         (and<mode>3): Adjust expander for the new patterns.
14072         (and<mode>3_imm, and<mode>3_imm_dot, and<mode>3_imm_dot2,
14073         and<mode>3_imm_mask_dot, and<mode>3_imm_mask_dot2): Adjust condition.
14074         (*and<mode>3_imm_dot_shifted): New.
14075         (*and<mode>3_mask): Delete, rewrite as ...
14076         (and<mode>3_mask): ... New.
14077         (*and<mode>3_mask_dot, *and<mode>3_mask_dot): Rewrite.
14078         (andsi3_internal0_nomc): Delete.
14079         (*andsi3_internal6): Delete.
14080         (*and<mode>3_2insn): New.
14081         (insv, insvsi_internal, *insvsi_internal1, *insvsi_internal2,
14082         *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
14083         *insvsi_internal6, insvdi_internal, *insvdi_internal2,
14084         *insvdi_internal3): Delete.
14085         (*rotl<mode>3_mask, *rotl<mode>3_mask_dot, *rotl<mode>3_mask_dot2,
14086         *rotl<mode>3_insert, *rotl<mode>3_insert_2, *rotl<mode>3_insert_3,
14087         *rotl<mode>3_insert_4, two splitters for multi-precision shifts,
14088         *ior<mode>_mask): New.
14089         (extzv, extzvdi_internal, *extzvdi_internal1, *extzvdi_internal2,
14090         *rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
14091         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
14092         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
14093         Delete.
14094         (ashr<mode>3): Delete expander.
14095         (*ashr<mode>3): Rename to ...
14096         (ashr<mode>3): ... This.
14097         (ashrdi3_no_power, *ashrdisi3_noppc64be): Delete.
14098         (*rotldi3_internal4, *rotldi3_internal5 and split,
14099         *rotldi3_internal6 and split, *ashldi3_internal4, ashldi3_internal5
14100         and split, *ashldi3_internal6 and split, *ashldi3_internal7,
14101         ashldi3_internal8 and split, *ashldi3_internal9 and split): Delete.
14102         (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): Delete.
14103         (splitter for loading a mask): Adjust.
14104         * doc/md.texi (Machine Constraints): Remove q, S, T, t constraints.
14105
14106 2015-07-20  Marek Polacek  <polacek@redhat.com>
14107
14108         * genemit.c (print_code, gen_exp, gen_insn, gen_expand, gen_split,
14109         output_add_clobbers, output_added_clobbers_hard_reg_p,
14110         gen_rtx_scratch): Remove declarations.
14111
14112 2015-07-20  Marek Polacek  <polacek@redhat.com>
14113
14114         PR c++/55095
14115         * doc/invoke.texi: Document -Wshift-overflow and -Wshift-overflow=.
14116
14117 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14118
14119         * simplify-rtx.c (simplify_unary_operation_1, NEG case):
14120         (neg (x ? (neg y) : y)) -> !x ? (neg y) : y.
14121
14122 2015-07-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14123
14124         * combine.c (combine_simplify_rtx): Move simplification step
14125         before various transformations/substitutions.
14126
14127 2015-07-20  Mikhail Maltsev  <maltsevm@gmail.com>
14128
14129         * wide-int.h (struct binary_traits): Fix partial specialization syntax.
14130         (struct int_traits): Likewise.
14131
14132 2015-07-18  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
14133
14134         * vmsdbgout.c (vmsdbgout_decl): Change name of prototyped
14135         function to vmsdbgout_function_decl.
14136
14137 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
14138
14139         PR target/66922
14140         * config/i386/i386.c (ix86_expand_pextr): Reject extractions
14141         from misaligned positions.
14142         (ix86_expand_pinsr): Reject insertions to misaligned positions.
14143
14144 2015-07-18  Sebastian Pop  <s.pop@samsung.com>
14145
14146         PR middle-end/46851
14147         PR middle-end/60340
14148         * Makefile.in: Removed omega.o.
14149         * common.opt: Document flag fcheck-data-deps as deprecated.
14150         * doc/invoke.texi: Remove documentation for fcheck-data-deps and
14151         its associated params: omega-max-vars, omega-max-geqs,
14152         omega-max-eqs, omega-max-wild-cards, omega-hash-table-size,
14153         omega-max-keys, omega-eliminate-redundant-constraints.
14154         * doc/loop.texi: Remove all the section on Omega.
14155         * graphite-blocking.c: Include missing params.h: it used to be
14156         included through tree-data-ref.h and omega.h.
14157         * graphite-isl-ast-to-gimple.c: Same.
14158         * graphite-optimize-isl.c: Same.
14159         * graphite-sese-to-poly.c: Same.
14160         * graphite.c: Same.
14161         * omega.c: Remove.
14162         * omega.h: Remove.
14163         * params.def: Removed PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
14164         PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
14165         PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS, and
14166         PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS.
14167         * passes.def: Remove pass_check_data_deps.
14168         * tree-data-ref.c (dump_affine_function): Declare DEBUG_FUNCTION.
14169         (dump_conflict_function): Same.
14170         (dump_subscript): Same.
14171         (print_direction_vector): Same.
14172         (print_dir_vectors): Same.
14173         (print_lambda_vector): Same.
14174         (print_dist_vectors): Same.
14175         (dump_data_dependence_relation): Same.
14176         (dump_data_dependence_relations): Same.
14177         (dump_dist_dir_vectors): Same.
14178         (dump_ddrs): Same.
14179         (init_omega_eq_with_af): Removed.
14180         (omega_extract_distance_vectors): Removed.
14181         (omega_setup_subscript): Removed.
14182         (init_omega_for_ddr_1): Removed.
14183         (init_omega_for_ddr): Removed.
14184         (ddr_consistent_p): Removed.
14185         (compute_affine_dependence): Do not use omega to check data
14186         dependences.
14187         (compute_data_dependences_for_bb): Removed.
14188         (analyze_all_data_dependences): Removed.
14189         (tree_check_data_deps): Removed.
14190         * tree-data-ref.h: Do not include omega.h.
14191         (compute_data_dependences_for_bb): Removed.
14192         (tree_check_data_deps): Removed.
14193         * tree-ssa-loop.c (pass_check_data_deps): Removed.
14194         (make_pass_check_data_deps): Removed.
14195         * tree-ssa-phiopt.c: Include params.h.
14196         * tree-vect-data-refs.c: Same.
14197         * tree-vect-slp.c: Same.
14198
14199 2015-07-18  Uros Bizjak  <ubizjak@gmail.com>
14200
14201         * config/i386/i386.md (pushsf splitter): Pass curr_insn to
14202         find_constant_src.  FAIL if find_constant_src returns NULL_RTX.
14203         (mem->fpreg splitters): Ditto.
14204         (general_operand->nonimmediate_operand splitter): Use explicit modes.
14205         Disable DFmode for TARGET_64BIT.
14206
14207 2015-07-17  H.J. Lu  <hongjiu.lu@intel.com>
14208
14209         PR target/66906
14210         * config/i386/i386.c (ix86_expand_prologue): Replicate static
14211         chain on the stack.
14212
14213 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
14214
14215         * config/nvptx/mkoffload.c (process): Constify host data.
14216         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
14217         Constify host data.
14218         (generate_host_descr_file): Likewise.
14219
14220 2015-07-17  Aditya Kumar  <aditya.k7@samsung.com>
14221             Sebastian Pop  <s.pop@samsung.com>
14222
14223         PR middle-end/61929
14224         * graphite-dependences.c (add_pdr_constraints): Renamed
14225         pdr->extent to pdr->subscript_sizes.
14226         * graphite-interchange.c (build_linearized_memory_access): Add
14227         back all gcc_assert's that the "isl_int to isl_val conversion"
14228         patch has removed.  Refactored.
14229         (pdr_stride_in_loop): Renamed pdr->extent to pdr->subscript_sizes.
14230         * graphite-poly.c (new_poly_dr): Same.
14231         (free_poly_dr): Same.
14232         * graphite-poly.h (struct poly_dr): Same.
14233         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Ignore
14234         all data references other than ARRAY_REF, MEM_REF, and COMPONENT_REF.
14235         * graphite-scop-detection.h: Fix space.
14236         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Add
14237         back all gcc_assert's removed by a previous patch.
14238         (wrap): Remove the_isl_ctx global variable that the same patch has
14239         added.
14240         (build_loop_iteration_domains): Same.
14241         (add_param_constraints): Same.
14242         (pdr_add_data_dimensions): Same.  Refactored.
14243         (build_poly_dr): Renamed extent to subscript_sizes.
14244
14245 2015-07-17  Marek Polacek  <polacek@redhat.com>
14246
14247         * fold-const.c (fold_binary_loc): Move A - (A & B) into ~B & A ...
14248         * match.pd: ... here.
14249
14250 2015-07-17  Nathan Sidwell  <nathan@codesourcery.com>
14251
14252         * config/nvptx/mkoffload.c (process): Constify target data.
14253         * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
14254         Constify target data.
14255         (generate_target_offloadend_file): Likewise.
14256
14257 2015-07-17  Yuri Rumyantsev  <ysrumyan@gmail.com>
14258
14259         * tree-vect-loop-manip.c (rename_variables_in_bb): Add argument
14260         to allow renaming of PHI arguments on edges incoming from outer
14261         loop header, add corresponding check before start PHI iterator.
14262         (slpeel_tree_duplicate_loop_to_edge_cfg): Introduce new bool
14263         variable DUPLICATE_OUTER_LOOP and set it to true for outer loops
14264         with true force_vectorize.  Set-up dominator for outer loop too.
14265         Pass DUPLICATE_OUTER_LOOP as argument to rename_variables_in_bb.
14266         (slpeel_can_duplicate_loop_p): Allow duplicate of outer loop if it
14267         was marked with force_vectorize and has restricted cfg.
14268         (slpeel_tree_peel_loop_to_edge): Do not rename exit PHI uses in
14269         inner loop.
14270         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
14271         do peeling for outer loops.
14272
14273 2015-07-17  Yvan Roux  <yvan.roux@linaro.org>
14274             Matthias Klose  <doko@ubuntu.com>
14275
14276         * configure.ac: Move AC_ARG_WITH checks for native-system-header-dir,
14277         build-sysroot, sysroot from the `Miscenalleous configure options' to
14278         the `Directories' section and strip trailing `/' from with_sysroot.
14279         (gcc_gxx_include_dir): Don't strip a `/' sysroot value.
14280         * configure: Regenerated.
14281
14282 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
14283
14284         PR target/66824
14285         * config/i386/i386.h (TARGET_HARD_SF_REGS): New define.
14286         (TARGET_HARD_DF_REGS): Ditto.
14287         (TARGET_HARD_XF_REGS): Ditto.
14288         * config/i386/i386.md (*movxf_internal): Add alternatives 9 and 10.
14289         Enable alternatives 9 and 10 only for !TARGET_HARD_XF_REG target.
14290         (*movdf_internal): Add alternatives 22, 23, 24 and 25. Enable
14291         alternatives 22, 23, 24 and 25 only for !TARGET_HARD_DF_REG target.
14292         (*movsf_internal): Add alternatives 16 and 17. Enable
14293         alternatives 16 and 17 only for !TARGET_HARD_SF_REG target.
14294
14295 2015-07-17  Uros Bizjak  <ubizjak@gmail.com>
14296
14297         PR rtl-optimization/66891
14298         * calls.c (expand_call): Wrap precompute_register_parameters with
14299         NO_DEFER_POP/OK_DEFER_POP to prevent deferred pops.
14300
14301 2015-07-16  Nathan Sidwell  <nathan@codesourcery.com>
14302
14303         * config/nvptx/mkoffload.c (process): Constify mapping variables.
14304         Define target data struct and initialize it.
14305
14306 2015-07-16  Vladimir Makarov  <vmakarov@redhat.com>
14307
14308         PR rtl-optimization/66626
14309         * ira.h (emit-rtl.h): Include.
14310         (non_spilled_static_chain_regno_p): New.
14311         * ira-color.c (setup_profitable_hard_regs): Clear profitable regs
14312         unless it is non spilled static chain pseudo.
14313         (assign_hard_rego): Spill memory profitable allocno unless it is
14314         non spilled static chain pseudo.
14315         (allocno_spill_priority_compare): Put non spilled static chain
14316         pseudo at the end of sorted array.
14317         (improve_allocation): Do nothing if we have static chain and
14318         non-local goto.
14319         (allocno__priority_compare_func): Put non spilled static chain
14320         pseudo at the beginning of sorted array.
14321         (move_spill_restore): Ignore non spilled static chain pseudo.
14322         * ira-costs.c (find_costs_and_classes): Don't assign class NO_REGS
14323         to non spilled static chain pseudo.
14324         * lra-assigns.c (pseudo_compare_func): Put non spilled static chain
14325         pseudo at the beginning of sorted array.
14326         (spill_for): Spill non spilled static chain pseudo last.
14327         * lra-constraints.c (lra_constraints): Remove static chain pseudo
14328         check for equivalence.
14329
14330 2015-07-16  Martin Liska  <mliska@suse.cz>
14331
14332         PR ipa/66896.
14333         * ipa-prop.c (update_jump_functions_after_inlining): Create properly
14334         dst_ctx if it does not exist.
14335
14336 2015-07-16  Martin Liska  <mliska@suse.cz>
14337
14338         * hash-set.h (remove): New function.
14339         (iterator): New iteration class for hash_set.
14340
14341 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
14342
14343         * genattrtab.c (make_canonical): Add a file_location parameter.
14344         Use fatal_at rather than fatal.
14345         (get_attr_value): Likewise.  Update call to make_canonical.
14346         (fill_attr, make_length_attrs, optimize_attrs, gen_attr)
14347         (make_internal_attr): Update calls accordingly.
14348
14349 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
14350
14351         * read-md.h (message_with_line, error_with_line): Delete.
14352         * read-md.c (message_with_line, error_with_line): Delete.
14353         * gensupport.h: Include read-md.h.
14354         (md_rtx_info): New structure.
14355         (read_md_rtx): Use it.  Return a bool success value.
14356         * gensupport.c (read_md_rtx): Likewise.
14357         * genattr-common.c (gen_attr): Take an md_rtx_info rather than an rtx.
14358         (main): Update after interface changes.
14359         * genattr.c (gen_attr): Take an md_rtx_info rather than an rtx.
14360         (main): Update after interface changes.
14361         * genattrtab.c (insn_code_number): Delete.
14362         (optimize_attrs): Add a max_insn_code parameter and use it instead
14363         of insn_code_number.
14364         (gen_attr): Take an md_rtx_info rather than an rtx and lineno.
14365         Use *_at rather than *_with_line functions.
14366         (gen_insn): Likewise.
14367         (gen_delay): Likewise.
14368         (gen_insn_reserv): Likewise.
14369         (gen_bypass): Take an md_rtx_info rather than an rtx.
14370         (main): Update after interface changes.  Use a local max_insn_code
14371         variable instead of insn_code_number.
14372         * genautomata.c (gen_cpu_unit): Take an md_rtx_info rather than
14373         an rtx.  Use fatal_at rather than fatal.
14374         (gen_query_cpu_unit, gen_bypass, gen_excl_set)
14375         (gen_presence_absence_set, gen_presence_set, gen_final_presence_set)
14376         (gen_absence_set, gen_final_absence_set, gen_automaton)
14377         (gen_automata_option, gen_reserv, gen_insn_reserv): Likewise.
14378         (main): Update after interface changes.
14379         * gencodes.c (gen_insn): Take an md_rtx_info rather than an rtx
14380         and code number.
14381         (main): Update after interface changes.
14382         * genconditions.c (main): Use new read_md_rtx interface.
14383         * genconfig.c (gen_insn): Take an md_rtx_info rather than an rtx.
14384         (gen_expand, gen_split, gen_peephole, gen_peephole2): Likewise.
14385         (main): Update after interface changes.
14386         * genemit.c (insn_code_number, insn_index_number): Delete.
14387         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
14388         Use fatal_at rather than fatal.
14389         (gen_expand): Take an md_rtx_info rather than an rtx.  Use fatal_at
14390         rather than fatal.
14391         (gen_split): Likewise.
14392         (main): Update after interface changes.
14393         * genextract.c (line_no): Delete.
14394         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
14395         Update call to walk_rtx.
14396         (VEC_safe_set_locstr): Add an md_rtx_info argument.  Use message_at
14397         rather than message_with_line.
14398         (walk_rtx): Add an md_rtx_info argument.  Update call to
14399         VEC_safe_set_locstr.
14400         (main): Update after interface changes.
14401         * genflags.c (gen_insn): Take an md_rtx_info rather than an rtx
14402         and lineno.  Use error_at rather than separate message_with_line
14403         calls and have_error assignments.
14404         (main): Update after interface changes.
14405         * genmddump.c (main): Use new read_md_rtx interface.
14406         * genopinit.c (insn): Take an md_rtx_info rather than an rtx.
14407         (main): Update after interface changes.
14408         * genoutput.c (next_code_number): Delete.
14409         (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
14410         (gen_peephole, gen_expand, gen_split): Likewise.
14411         (note_constraint): Likewise.  Use *_at rather than *_with_line
14412         functions.
14413         (main): Update after interface changes.
14414         * genpeep.c (gen_peephole): Take an md_rtx_info rather than an
14415         rtx and lineno.
14416         (main): Update after interface changes.
14417         * genpreds.c (process_define_predicate): Take an md_rtx_info rather
14418         than an rtx and lineno.
14419         (process_define_constraint): Likewise.
14420         (process_define_register_constraint): Likewise.
14421         (main): Update after interface changes.
14422         * genrecog.c (next_insn_code, pattern_lineno): Delete.
14423         (validate_pattern): Replace top-level rtx with an md_rtx_info.
14424         Use *_at rather than *_with_line functions.
14425         (match_pattern_2): Likewise.
14426         (match_pattern_1, match_pattern): Add an md_rtx_info parameter.
14427         (get_peephole2_pattern): Take an md_rtx_info rather than an rtvec.
14428         Use *_at rather than *_with_line functions.
14429         * gentarget-def.c (add_insn): New function.
14430         (main): Use it.  Use new read_md_rtx interface.
14431
14432 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
14433
14434         * gensupport.h (compute_test_codes): Take a file_location rather
14435         than a line number.
14436         * gensupport.c (compute_test_codes): Likewise.  Use *_at functions
14437         rather than *_with_line functions.
14438         (process_define_predicate): Update call to compute_test_codes.
14439         * genpreds.c (validate_exp): Take a file_location rather than a
14440         line number.  Use *_at functions rather than *_with_line functions.
14441         (process_define_predicate): Update call to validate_exp.
14442         (constraint_data): Replace lineno field with a file_location.
14443         (add_constraint): Take a file_location rather than a line number.
14444         Use *_at functions rather than *_with_line functions.  Fix error
14445         message for address constraints.  Update after changes to
14446         validate_exp, constraint_data and compute_test_codes.
14447         (process_define_constraint): Update accordingly.
14448         (process_define_register_constraint): Likewise.
14449
14450 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
14451
14452         * genoutput.c (data): Use a file_location to record the source
14453         position.
14454         (nothing): Delete.
14455         (idata, idata_end): Remove initialization.
14456         (constraint_data): Replace lineno with a file_location.
14457         (output_insn_data): Update after changes to data.
14458         (gen_insn, gen_peephole, gen_expand, gen_split): Likewise.
14459         (scan_operands): Likewise, using *_at rather than *_with_line
14460         functions.
14461         (process_template): Likewise.
14462         (validate_insn_alternatives): Likewise.
14463         (validate_insn_operands): Likewise.
14464         (validate_optab_operands): Likewise.
14465         (init_insn_for_nothing): Initialize idata and idata_end.
14466         (note_constraint): Update after changes to constraint_data,
14467         using at rather than with_line functions.
14468         (mdep_constraint_len): Take a file_location rather than a
14469         line number.  Use at rather than with_line functions.
14470
14471 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
14472
14473         * read-md.h (fatal_at): Declare.
14474         * read-md.c (fatal_at): New function.
14475         * genattrtab.c (insn_def, attr_desc, delay_desc): Use a file_location
14476         to record the source position.
14477         (check_attr_test): Take a file_location instead of a line number.
14478         Use fatal_at instead of fatal.
14479         (check_attr_value): Update after above changes, using "at"
14480         rather than "with_line" reporting functions.
14481         (convert_set_attr_alternative): Likewise.
14482         (gen_attr): Likewise.
14483         (check_defs): Likewise.  Don't assign to read_md_filename.
14484         (gen_insn): Update initialization after above changes.
14485         (gen_delay): Likewise.
14486         (write_insn_cases): Print the filename for a define_peephole.
14487         (gen_insn_reserv): Take a line number as argument and update
14488         the call to check_attr_test.
14489         (main): Pass a line number to gen_insn_reserv.
14490
14491 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
14492
14493         * read-md.h (file_location): New structure.
14494         (directive_handler_t): Take a file_location rather than a line number.
14495         (message_at, error_at): Declare.
14496         (read_skip_construct): Delete.
14497         * read-md.c (message_with_line_1): Replace with...
14498         (message_at_1): ...this new function.
14499         (message_at, error_at): New functions.
14500         (message_with_line, error_with_line): Update to use message_at_1.
14501         (handle_enum): Take a file_location rather than a line number
14502         and use error_at for error reporting.
14503         (handle_include): Likewise.
14504         (read_skip_construct): Likewise.  Make static.
14505         (handle_file): Update after above changes.  Pass a file_location
14506         rather than a line number to handle_directive.
14507         * gensupport.c (queue_elem): Replace separate filename and lineno
14508         with a file_location.
14509         (queue_pattern): Replace filename and lineno arguments with a
14510         file_location.  Update after change to queue_elem.
14511         (process_define_predicate): Replace lineno argument with a
14512         file_location and use error_at for error reporting.  Update
14513         after above changes.
14514         (process_rtx): Likewise.
14515         (subst_pattern_match): Likewise.
14516         (get_alternatives_number): Likewise.
14517         (alter_predicate_for_insn): Likewise.
14518         (rtx_handle_directive): Likewise.
14519         (is_predicable): Update after above changes, using error_at rather
14520         than error_with_line.
14521         (has_subst_attribute): Likewise.
14522         (identify_predicable_attribute): Likewise.
14523         (alter_attrs_for_subst_insn): Likewise.
14524         (process_one_cond_exec): Likewise.
14525         (process_substs_on_one_elem): Likewise.
14526         (process_define_subst): Likewise.
14527         (check_define_attr_duplicates): Likewise.
14528         (read_md_rtx): Update after change to queue_elem.
14529
14530 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
14531
14532         * genoutput.c (next_index_number): Delete.
14533         (data): Remove index_number.
14534         (gen_insn, gen_peephole, gen_expand, gen_split): Update accordingly.
14535         (main): Remove manipulation of next_index_number.
14536
14537 2015-07-16  Richard Sandiford  <richard.sandiford@arm.com>
14538
14539         * genattrtab.c (check_attr_value): Remove handling of null attrs.
14540         (make_canonical): Likewise.
14541
14542 2015-07-16  Eric Botcazou  <ebotcazou@adacore.com>
14543
14544         * config/sparc/sparc.md (save_stack_nonlocal): Use adjust_address
14545         instead of adjust_address_nv.
14546         (restore_stack_nonlocal): Likewise.
14547         (nonlocal_goto): Likewise.
14548
14549 2015-07-16  Tom de Vries  <tom@codesourcery.com>
14550
14551         * tree-parloops.c (create_parallel_loop): Handle case that exit phi does
14552         not have a corresponding loop header phi.
14553
14554 2015-07-16  Tom de Vries  <tom@codesourcery.com>
14555
14556         * tree-parloops.c (create_loads_for_reductions): Handle case that
14557         reduction is unused.
14558
14559 2015-07-16  Richard Biener  <rguenther@suse.de>
14560
14561         PR tree-optimization/66894
14562         * tree-vrp.c (register_edge_assert_for_2): Fix bad assumption
14563         about deriving NE_EXPR from truncated values.
14564
14565 2015-07-16  Martin Liska  <mliska@suse.cz>
14566
14567         * alloc-pool.h
14568         (object_allocator): Add new class.
14569         (pool_allocator::initialize): Use the underlying class.
14570         (pool_allocator::allocate): Likewise.
14571         (pool_allocator::remove): Likewise.
14572         (operator new): A new generic allocator.
14573         * asan.c (struct asan_mem_ref): Remove unused members.
14574         (asan_mem_ref_new): Replace new operator with
14575         object_allocator::allocate.
14576         (free_mem_ref_resources): Change deallocation.
14577         * cfg.c (initialize_original_copy_tables): Replace pool_allocator
14578         with object_allocator.
14579         * config/sh/sh.c (add_constant): Replace new operator with
14580         object_allocator::allocate.
14581         (sh_reorg): Change call to a release method.
14582         * cselib.c (struct elt_list): Remove unused members.
14583         (new_elt_list): Replace new operator with
14584         object_allocator::allocate.
14585         (new_elt_loc_list): Likewise.
14586         (new_cselib_val): Likewise.
14587         (unchain_one_elt_list): Change delete operator with remove method.
14588         (unchain_one_elt_loc_list): Likewise.
14589         (unchain_one_value): Likewise.
14590         (cselib_finish): Release newly added static allocators.
14591         * cselib.h (struct cselib_val): Remove unused members.
14592         (struct elt_loc_list): Likewise.
14593         * df-problems.c (df_chain_alloc): Replace pool_allocator with
14594         object_allocator.
14595         * df-scan.c (struct df_scan_problem_data): Likewise.
14596         (df_scan_alloc): Likewise.
14597         * df.h (struct dataflow): Likewise.
14598         * dse.c (struct read_info_type): Likewise.
14599         (struct insn_info_type): Likewise.
14600         (struct dse_bb_info_type): Likewise.
14601         (struct group_info): Likewise.
14602         (struct deferred_change): Likewise.
14603         (get_group_info): Likewise.
14604         (delete_dead_store_insn): Likewise.
14605         (free_read_records): Likewise.
14606         (replace_read): Likewise.
14607         (check_mem_read_rtx): Likewise.
14608         (scan_insn): Likewise.
14609         (dse_step1): Likewise.
14610         (dse_step7): Likewise.
14611         * et-forest.c (struct et_occ): Remove unused members.
14612         (et_new_occ): Use allocate instead of new operator.
14613         (et_new_tree): Likewise.
14614         (et_free_tree): Call release method explicitly.
14615         (et_free_tree_force): Likewise.
14616         (et_free_pools): Likewise.
14617         (et_split): Use remove instead of delete operator.
14618         * et-forest.h (struct et_node): Remove unused members.
14619         * ipa-cp.c: Change pool_allocator to object_allocator.
14620         * ipa-inline-analysis.c: Likewise.
14621         * ipa-profile.c: Likewise.
14622         * ipa-prop.c: Likewise.
14623         * ipa-prop.h: Likewise.
14624         * ira-build.c (initiate_cost_vectors): Cast return value.
14625         (ira_allocate_cost_vector): Likewise.
14626         * ira-color.c (struct update_cost_record): Remove unused members.
14627         * lra-int.h (struct lra_live_range): Likewise.
14628         (struct lra_copy): Likewise.
14629         (struct lra_insn_reg): Likewise.
14630         * lra-lives.c (lra_live_ranges_finish): Release new static allocator.
14631         * lra.c (new_insn_reg): Replace new operator with allocate method.
14632         (free_insn_regs): Same for operator delete.
14633         (finish_insn_regs): Release new static allocator.
14634         (finish_insn_recog_data): Likewise.
14635         (lra_free_copies): Replace delete operator with remove method.
14636         (lra_create_copy): Replace operator new with allocate method.
14637         (invalidate_insn_data_regno_info): Same for remove method.
14638         * regcprop.c (struct queued_debug_insn_change): Remove unused members.
14639         (free_debug_insn_changes): Replace delete operator with remove method.
14640         (replace_oldest_value_reg): Replace operator new with allocate method.
14641         (pass_cprop_hardreg::execute): Release new static variable.
14642         * sched-deps.c (sched_deps_init): Change pool_allocator to
14643         object_allocator.
14644         * sel-sched-ir.c: Likewise.
14645         * sel-sched-ir.h: Likewise.
14646         * stmt.c (expand_case): Likewise.
14647         (expand_sjlj_dispatch_table): Likewise.
14648         * tree-sra.c (struct access): Remove unused members.
14649         (struct assign_link): Likewise.
14650         (sra_deinitialize): Release newly added static pools.
14651         (create_access_1):Replace operator new with allocate method.
14652         (build_accesses_from_assign): Likewise.
14653         (create_artificial_child_access): Likewise.
14654         * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Change
14655         pool_allocator to object_allocator.
14656         * tree-ssa-pre.c: Likewise.
14657         * tree-ssa-reassoc.c: Likewise.
14658         * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
14659         * tree-ssa-strlen.c: Likewise.
14660         * tree-ssa-structalias.c: Likewise.
14661         * var-tracking.c (onepart_pool_allocate): New function.
14662         (unshare_variable): Use the newly added function.
14663         (variable_merge_over_cur): Likewise.
14664         (variable_from_dropped): Likewise.
14665         (variable_was_changed): Likewise.
14666         (set_slot_part): Likewise.
14667         (emit_notes_for_differences_1): Likewise.
14668         (vt_finalize): Release newly added static pools.
14669
14670 2015-07-16  Martin Jambor  <mjambor@suse.cz>
14671
14672         * ipa-prop.h (param_aa_status): Rename to ipa_param_aa_status.  Adjust
14673         all uses.  Fix two typos in its general comment.
14674         (func_body_info): Rename to ipa_func_body_info.  Adjust all uses.
14675
14676 2015-07-16  Ilya Enkovich  <enkovich.gnu@gmail.com>
14677
14678         * config/i386/linux-common.h (LINK_MPX): New.
14679         (MPX_SPEC): Use LINK_MPX instead of %(link_mpx).
14680         * configure.ac: Add HAVE_LD_BNDPLT_SUPPORT macro
14681         indicating '-z bndplt' support by linker.
14682         * configure: Regenerate.
14683         * config.in: Regenerate.
14684
14685 2015-07-16  Richard Biener  <rguenther@suse.de>
14686
14687         * fold-const.c (fold_widened_comparison): Remove.
14688         (fold_sign_changed_comparison): Likewise.
14689         (fold_comparison): Move widened and sign-changed comparison
14690         simplification ...
14691         * match.pd: ... to patterns here.
14692         * generic-match-head.c: Include target.h.
14693         * gimple-match-head.c: Likewise.
14694
14695 2015-07-16  Richard Biener  <rguenther@suse.de>
14696
14697         * tree-ssa-dom.c (dom_valueize): New function.
14698         (record_temporary_equivalences): Also record equivalences
14699         for dominating stmts that have uses of equivalences we are
14700         about to record.
14701
14702 2015-07-16  Bin Cheng  <bin.cheng@arm.com>
14703
14704         * tree-ssa-loop-ivopts.c (add_candidate): Remove call to
14705         add_autoinc_candidates.
14706         (add_iv_candidate_for_biv): Rename to add_iv_candidate_for_biv.
14707         (add_iv_candidate_for_biv): Rename from add_iv_candidate_for_biv.
14708         (add_old_ivs_candidates): Rename to add_iv_candidate_for_bivs.
14709         (add_iv_candidate_for_bivs): Rename from add_old_ivs_candidates.
14710         Call new function.
14711         (add_iv_value_candidates): Rename to add_iv_candidate_for_use.
14712         (add_iv_candidate_for_use): Rename from add_iv_value_candidates.
14713         Remove parameter struct iv*.  Call add_autoinc_candidates here.
14714         (add_derived_ivs_candidates): Rename to add_iv_candidate_for_uses.
14715         (add_iv_candidate_for_uses): Rename from add_derived_ivs_candidates.
14716         Call new function.
14717         (find_iv_candidates): Call new functions.
14718
14719 2015-07-16  Sandra Loosemore  <sandra@codesourcery.com>
14720
14721         * config/nios2/nios2.c (nios2_emit_stack_limit_check): Fix
14722         uninitialized-variable warning.
14723
14724 2015-07-16  Kaz Kojima  <kkojima@gcc.gnu.org>
14725
14726         PR target/65249
14727         * config/sh/sh.md (movdi): Split simple reg move to two movsi
14728         when the destination is R0.
14729
14730 2015-07-16  Uros Bizjak  <ubizjak@gmail.com>
14731
14732         PR target/66866
14733         * config/i386/i386-protos.h (ix86_expand_pextr): New prototype.
14734         * config/i386/i386.c (ix86_expand_pextr): New function.
14735         (ix86_expand_pinsr): Handle V1TI and TI modes.  Call ix86_expand_pextr
14736         for non-lowpart subregs.
14737         * config/i386/i386.md (extzv<mode>): Expand with ix86_expand_pextr.
14738         (insv<mode>): Use SWI248 mode iterator.
14739         (insv<mode>_1): Ditto.
14740
14741 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
14742             Sebastian Pop  <s.pop@samsung.com>
14743
14744         * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Point
14745         iterator to use_stmt.
14746
14747 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
14748             Sebastian Pop <s.pop@samsung.com>
14749
14750         * graphite-scop-detection.c (build_scops_1): Discard scops for
14751         which entry==exit.
14752
14753 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
14754             Sebastian Pop <s.pop@samsung.com>
14755
14756         * graphite-scop-detection.c (stmt_simple_for_scop_p): Bail out in
14757         case of a return statement in scop.
14758
14759 2015-07-15  Aditya Kumar  <aditya.k7@samsung.com>
14760             Sebastian Pop <s.pop@samsung.com>
14761
14762         * graphite-sese-to-poly.c (parameter_index_in_region): Only handle
14763         INTEGER_TYPE parameters.
14764         (scan_tree_for_params): Handle REAL_CST, COMPLEX_CST, and
14765         VECTOR_CST in scan_tree_for_params.
14766         (add_conditions_to_domain): Only constrain on INTEGER_TYPE.
14767
14768 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
14769
14770         * gimple-pretty-print.h: Don't include pretty-print.h.
14771         * tree-streamer.h: Don't include lto-streamer.h.
14772         * gimple-streamer.h: Include tree-streamer.h rather than lto-streamer.h.
14773         * gimple-streamer-in.c: Remove redundant includes.
14774         * gimple-streamer-out.c: Likewise.
14775         * ipa-devirt.c: Likewise.
14776         * ipa-icf.c: Likewise.
14777         * ipa-inline-analysis.c: Likewise.
14778         * ipa-polymorphic-call.c: Likewise.
14779         * ipa-profile.c: Likewise.
14780         * ipa-prop.c: Likewise.
14781         * ipa-pure-const.c: Likewise.
14782         * lto-cgraph.c: Likewise.
14783         * lto-streamer-in.c: Likewise.
14784         * lto-streamer-out.c: Likewise.
14785         * lto-streamer.c: Likewise.
14786         * tree-streamer-in.c: Likewise.
14787         * tree-streamer-out.c: Likewise.
14788         * tree-streamer.c: Likewise.
14789
14790 2015-07-15  Andrew MacLeod  <amacleod@redhat.com>
14791
14792         * opth-gen.awk: Check for UNKNOWN_LOCATION rather than GCC_TM_H, don't
14793         include input.h.
14794         * opts.c: Remove multiline #include comment.
14795
14796 2015-07-15  Nathan Sidwell  <nathan@codesourcery.com>
14797
14798         * config/nvptx/mkoffload.c (process): Add C++ protection to
14799         emitted code.
14800
14801 2015-07-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
14802
14803         PR target/66854
14804         * config/rs6000/rs6000.c (rs6000_pass_by_reference): Move test for
14805         null before IEEE 128-bit floating point support patch.
14806
14807 2015-07-15  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14808
14809         * simplify-rtx.c (simplify_ternary_operation): Add simplification
14810         for (!c) != {0,...,0} ? a : b for vector modes.
14811
14812 2015-07-15  Paolo Bonzini  <bonzini@gnu.org>
14813             Martin Jambor  <mjambor@suse.cz>
14814
14815         * ipa-inline-analysis.c (unmodified_parm_or_parm_agg_item): Accept
14816         struct func_body_info* instead of struct ipa_node_params*, expecting
14817         fbi->info to be filled in.  Replace throughout.  Adjust call to
14818         ipa_load_from_parm_agg.
14819         (set_cond_stmt_execution_predicate): Accept struct func_body_info*
14820         instead of struct ipa_node_params*.  Adjust calls to other functions
14821         so that they pass either fbi or fbi->info.
14822         (set_switch_stmt_execution_predicate): Likewise.
14823         (will_be_nonconstant_predicate): Likewise.
14824         (compute_bb_predicates): Likewise.
14825         (estimate_function_body_sizes): Move asserts earlier.  Fill in
14826         struct func_body_info, replace parms_info with fbi.info.  Adjust
14827         calls to functions that now accept struct func_body_info.
14828         * ipa-prop.c (param_aa_status, struct ipa_bb_info): Move to ipa-prop.h.
14829         (struct func_body_info): Likewise.
14830         (ipa_load_from_parm_agg_1): Rename to ipa_load_from_parm_agg,
14831         remove static.  Adjust callers.
14832         (ipa_load_from_parm_agg): Remove.
14833         * ipa-prop.h (param_aa_status, ipa_bb_info): Move from ipa-prop.c.
14834         (func_body_info): Likewise.
14835         (ipa_load_from_parm_agg): Adjust prototype.
14836
14837 2015-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
14838
14839         * gensupport.c (rtx_handle_directive): Adjust.
14840         * read-rtl.c (apply_iterators): Take vector to add rtxs to
14841         instead of expr list rtx.
14842         (add_define_attr_for_define_subst): Likewise.
14843         (add_define_subst_attr): Likewise.
14844         (read_subst_mapping): Likewise.
14845         (read_rtx): Likewise.
14846         * rtl.h (read_rtx): Adjust.
14847
14848 2015-07-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14849
14850         * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use cinc mnemonic.
14851
14852 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
14853
14854         PR target/58066
14855         * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Depend on SP_REG.
14856         (*tls_local_dynamic_base_64_<mode>): Ditto.
14857         (*tls_local_dynamic_base_64_largepic): Ditto.
14858         (tls_global_dynamic_64_<mode>): Update expander pattern.
14859         (tls_local_dynamic_base_64_<mode>): Ditto.
14860
14861 2015-07-15  Richard Biener  <rguenther@suse.de>
14862
14863         * fold-const.c (fold_binary_loc): Move bool_var != 0 -> bool_var
14864         and bool_var == 1 -> bool_var simplifications ...
14865         * match.pd: ... to patterns here.  Factor out negate_expr_p
14866         cases from the A - B -> A + (-B) patterns as negate_expr_p
14867         predicate and add a -(A + B) -> (-B) - A pattern.
14868
14869 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
14870
14871         * config/mips/mips.c (mips_emit_save_slot_move): Fix typo.
14872
14873 2015-07-15  Matthew Fortune  <matthew.fortune@imgtec.com>
14874             Robert Suchanek  <robert.suchanek@imgtec.com>
14875
14876         * config/mips/mips.c (mips_int_mask): New enum.
14877         (mips_shadow_set): Likewise.
14878         (int_mask): New variable.
14879         (use_shadow_register_set_p): Change type to enum mips_shadow_set.
14880         (machine_function): Add int_mask and use_shadow_register_set.
14881         (mips_attribute_table): Add attribute handlers for interrupt and
14882         use_shadow_register_set.
14883         (mips_interrupt_mask): New static function.
14884         (mips_handle_interrupt_attr): Likewise.
14885         (mips_handle_use_shadow_register_set_attr): Likewise.
14886         (mips_use_shadow_register_set): Change return type to enum
14887         mips_shadow_set.  Add argument handling for use_shadow_register_set
14888         attribute.
14889         (mips_interrupt_extra_called_saved_reg_p): Update the conditional to
14890         compare with mips_shadow_set enum.
14891         (mips_compute_frame_info): Add interrupt mask and
14892         use_shadow_register_set to per-function information structure.
14893         Add a stack slot for EPC unconditionally.
14894         (mips_expand_prologue): Compare use_shadow_register_set value
14895         with mips_shadow_set enum.  Save EPC always in K1, clobber only K1 for
14896         masked interrupt register but in EIC mode use K0 and save Cause in K0.
14897         EPC saved and restored unconditionally.  Use PMODE_INSN macro when
14898         copying the stack pointer from the shadow register set.
14899         * config/mips/mips.h (SR_IM0): New define.
14900         * config/mips/mips.md (mips_rdpgpr): Rename to...
14901         (mips_rdpgpr_<mode>): ...this.  Use the Pmode iterator.
14902         * doc/extend.texi (Declaring Attributes of Functions): Document
14903         optional arguments for interrupt and use_shadow_register_set
14904         attributes.
14905
14906 2015-07-15  Robert Suchanek  <robert.suchanek@imgtec.com>
14907
14908         * config/mips/mips.c (mips_compute_frame_info): Allow -mhard-float in
14909         interrupt attribute.
14910         (mips_expand_prologue): Disable the floating point unit in an ISR.
14911         * config/mips/mips.h (SR_COP1): New define.
14912
14913 2015-07-15  Richard Biener  <rguenther@suse.de>
14914
14915         * genmatch.c (parser::peek, parser::peek_ident): Add argument
14916         to tell how many tokens to peek ahead (default 1).
14917         (parser::eat_token, parser::eat_ident): Return token consumed.
14918         (parser::parse_result): Parse new switch statement.
14919         * match.pd: Use case statements where appropriate.
14920
14921 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
14922
14923         PR rtl-optimization/58066
14924         * calls.c (expand_call): Precompute register parameters before stack
14925         alignment is performed.
14926
14927 2015-07-15  Uros Bizjak  <ubizjak@gmail.com>
14928
14929         PR rtl-optimization/66838
14930         * postreload.c (reload_cse_move2add): Also process
14931         CALL_INSN_FUNCTION_USAGE when resetting information of
14932         call-clobbered registers.
14933
14934 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
14935             Cesar Philippidis  <cesar@codesourcery.com>
14936             Chung-Lin Tang  <cltang@codesourcery.com>
14937
14938         * config/nios2/constraints.md (U, v): New constraints.
14939         * config/nios2/predicates.md (rdprs_dcache_operand): New.
14940         (ldstex_memory_operand): New.
14941         * config/nios2/sync.md: New file.
14942         * config/nios2/nios2.md (unspecv): Add new builtin function
14943         UNSPECV codes.
14944         (rdprs, flushd, flushda, wrpie, eni): New patterns.
14945         (top-level): Include sync.md.
14946         * config/nios2/nios2.c (N2_FTYPES): Add function types for
14947         new builtins.
14948         (N2_BUILTINS): Add arch field setting, add new builtins.
14949         (enum nios2_builtin_code,nios2_builtins): Update N2_BUILTIN_DEF
14950         for arch field.
14951         (nios2_expand_ldst_builtin): Rename from nios2_expand_ldstio_builtin.
14952         Also handle ldex/stex/ldsex/stsex builtins.
14953         (nios2_expand_rdprs_builtin): New function.
14954         (nios2_expand_cache_builtin): New function.
14955         (nios2_expand_wrpie_builtin): New function.
14956         (nios2_expand_eni_builtin): New function.
14957         (nios2_expand_builtin): Add arch field handling and new builtin
14958         cases.
14959         * doc/extend.texi (Altera Nios II Built-in Functions): Document
14960         new builtins.
14961         * doc/md.texi (Machine Constraints): Document U and v constraints.
14962
14963 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
14964             Cesar Philippidis  <cesar@codesourcery.com>
14965             Chung-Lin Tang  <cltang@codesourcery.com>
14966
14967         * config/nios2/nios2-protos.h (nios2_expand_return): Declare.
14968         * config/nios2/nios2.c (struct GTY (()) machine_function): Add
14969         callee_save_reg_size and uses_anonymous_args fields.
14970         (nios2_compute_frame_layout): Update for CDX push.n/pop.n usage.
14971         (nios2_create_cfa_notes): New function.
14972         (nios2_adjust_stack): New function for adjusting stack.
14973         (nios2_expand_prologue): Update for CDX push.n/pop.n usage.
14974         Use nios2_adjust_stack.
14975         (nios2_expand_epilogue): Likewise.
14976         (nios2_expand_return): New function.
14977         (nios2_can_use_return_insn): Update for CDX pop.n usage.
14978         (nios2_setup_incoming_varargs): Set uses_anonymous_args flag.
14979         If TARGET_HAS_CDX, defer pushing regs to nios2_expand_prologue.
14980         * config/nios2/nios2.md (return): Use nios2_expand_return.
14981
14982 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
14983             Cesar Philippidis  <cesar@codesourcery.com>
14984             Chung-Lin Tang  <cltang@codesourcery.com>
14985
14986         * config/nios2/predicates.md (pop_operation): New.
14987         (ldwm_operation, stwm_operation): New.
14988         (nios2_hard_register_operand): New.
14989         * config/nios2/nios2-protos.h (pop_operation_p): Declare.
14990         (ldstwm_operation_p): Declare.
14991         (gen_ldstwm_peep): Declare.
14992         * config/nios2/nios2.c: (nios2_ldst_parallel): Declare.
14993         (base_reg_adjustment_p): New.
14994         (pop_operation_p): New.
14995         (CDX_LDSTWM_VALID_REGS_0, CDX_LDSTWM_VALID_REGS_1): Define.
14996         (nios2_ldstwm_regset_p): New.
14997         (ldstwm_operation_p): New.
14998         (gen_ldst): New.
14999         (nios2_ldst_parallel): New.
15000         (struct ldswm_operand): Declare.
15001         (compare_ldstwm_operands): New.
15002         (can_use_cdx_ldstw): New.
15003         (gen_ldstwm_peep): New.
15004         * config/nios2/nios2-ldstwm.sml: New.
15005         * config/nios2/nios2.md: Include ldstwm.md.
15006         * config/nios2/ldstwm.md: Generated.
15007
15008 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
15009             Cesar Philippidis  <cesar@codesourcery.com>
15010             Chung-Lin Tang  <cltang@codesourcery.com>
15011
15012         * config/nios2/nios2.h (LABEL_ALIGN): Define.
15013         (REG_ALLOC_ORDER): Define.
15014         (ADJUST_REG_ALLOC_ORDER): Define.
15015         (HONOR_REG_ALLOC_ORDER): Define.
15016         (CDX_REG_P): Define.
15017         (ANDCLEAR_INT): Define.
15018         * config/nios2/nios2-protos.h (nios2_add_insn_asm): Declare.
15019         (nios2_label_align): Declare.
15020         (nios2_cdx_narrow_form_p): Declare.
15021         (nios2_adjust_reg_alloc_order): Declare.
15022         * config/nios2/nios2.c (nios2_rtx_costs): Adjust for BMX zero-extract
15023         operation.
15024         (nios2_large_unspec_reloc_p): New function, split from...
15025         (nios2_legitimate_pic_operand_p): ...here.
15026         (nios2_emit_move_sequence): Add *high/*lo_sum constant expand code.
15027         (nios2_print_operand_punct_valid_p): New.
15028         (nios2_print_operand): Add %., %!, %x, %y, %A.  Remove %U.
15029         (split_mem_address): New.
15030         (split_alu_insn): New.
15031         (cdxreg): New.
15032         (cdx_add_immed, cdx_and_immed, cdx_mov_immed, cdx_shift_immed): New.
15033         (enum nios2_add_insn_kind): New.
15034         (nios2_add_insn_names, nios2_add_insn_narrow): New.
15035         (nios2_add_insn_classify): New.
15036         (nios2_add_insn_asm): New.
15037         (nios2_cdx_narrow_form_p): New.
15038         (label_align, min_labelno, max_labelno): New.
15039         (nios2_reorg): New.
15040         (nios2_label_align): New.
15041         (nios2_adjust_reg_alloc_order): New.
15042         (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
15043         (TARGET_MACHINE_DEPENDENT_REORG): Define.
15044         * config/nios2/constraints.md (P): New constraint.
15045         * config/nios2/predicates.md (const_and_operand): New.
15046         (and_operand): New.
15047         (stack_memory_operand): New.
15048         * config/nios2/nios2.md (SP_REGNO): Define stack pointer regno.
15049         (length): Update to use nios2_cdx_narrow_form_p().
15050         (type): Add new insn type values.
15051         (control, alu, st, ld, shift): Update insn reservations with
15052         new insn type values.
15053         (*high, *lo_sum): Define new insn patterns for constant generation.
15054         (movqi_internal, movhi_internal, movsi_internal): Reduce
15055         alternatives, update asm template to handle CDX variants, update
15056         type attributes.
15057         (zero_extendhisi2, zero_extendqi<mode>2): Add CDX variants to asm
15058         template, update type attributes.
15059         (extendhisi2, extendqi<mode>2): Likewise.
15060         (addsi3): Change to use function for asm string.
15061         (subsi3): Add CDX notation to asm template, update type attributes.
15062         (negsi3, one_cmplsi3): Likewise.
15063         (andsi3): New pattern, specialized from logical patterns.
15064         (<code>si3): Remove and case, combine alternatives, update asm
15065         template.
15066         (<shift_op>si3): Add CDX notation, update type attributes.
15067         (rotrsi3): Update type attribute.
15068         (*merge, extzv, insv): New insn patterns.
15069         (return): Change to define_expand.
15070         (simple_return): Add CDX notation, update type attributes.
15071         (indirect_jump): Add CDX notation.
15072         (jump): Update asm cases, update length attribute expression.
15073         (*call, *call_value, *sibcall, *sibcall_value): Add CDX variant.
15074         (nios2_cbranch): Update asm cases and length attribute expression
15075         to handle CDX variants.
15076         (nios2_cmp<code>): Update asm template.
15077         (nop): Add CDX notation, update type attributes.
15078         (trap): Add CDX notation.
15079         (ctrapsi4): Update asm cases and length attribute expression to
15080         handle CDX variant.
15081         * doc/md.texi (Machine Constraints): Document P constraint.
15082
15083 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
15084             Cesar Philippidis  <cesar@codesourcery.com>
15085             Chung-Lin Tang  <cltang@codesourcery.com>
15086
15087         * config/nios2/nios2.h (SMALL_INT12): New macro.
15088         * config/nios2/nios2.c (nios2_valid_addr_offset_p): New function.
15089         (nios2_valid_addr_expr_p): Use it.
15090         (nios2_symbol_ref_in_small_data_p): Disallow GP-relative addressing
15091         with implicit "io" instructions on R2.
15092         * config/nios2/constraints.md (w): New constraint.
15093         * config/nios2/predicates.md (ldstio_memory_operand): New.
15094         * config/nios2/nios2.md (ld<bhw_uns>io, ld<bh>io): Update memory
15095         operand predicate and constraint.
15096         (ld<bh>io_signed, st<bhw>io>): Likewise.
15097         * doc/md.texi (Machine Constraints): Document w constraint.
15098
15099 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
15100             Cesar Philippidis  <cesar@codesourcery.com>
15101             Chung-Lin Tang  <cltang@codesourcery.com>
15102
15103         * config/nios2/nios2.opt (march, mbmx, mcdx): New options.
15104         * config/nios2/nios2-opts.h (enum nios2_arch_type): New enum for
15105         Nios II architecture level.
15106         * config/nios2/nios2.h (TARGET_ARCH_R2): New define.
15107         (TARGET_CPU_CPP_BUILTINS): Add definition of __nios2_arch__ symbol.
15108         (OPTION_DEFAULT_SPECS): Define.
15109         (ASM_SPEC): Add -march= spec strings.
15110         * config/nios2/nios2.c (nios2_option_override): Check for
15111         conflicts involving new options.
15112         * config.gcc (nios2*-*-*): Support --with-arch=.
15113         * doc/invoke.texi (Option Summary, Nios II Options): Document
15114         -march=, -mbmx, and -mcdx.
15115
15116 2015-07-14  Vladimir Makarov  <vmakarov@redhat.com>
15117
15118         PR rtl-optimization/66626
15119         * lra-constraints.c (lra_constraints): Prevent equivalence
15120         substitution for static chain pseudo in functions with nonlocal
15121         goto.
15122
15123 2015-07-14  Sandra Loosemore  <sandra@codesourcery.com>
15124
15125         * config/nios2/nios2.c (TEMP_REG_NUM): Move define up in file.
15126         (nios2_emit_stack_limit_check): Add size parameter.  Handle
15127         -fstack-limit-symbol as well as -fstack-limit-register.
15128         (nios2_expand_prologue): Emit only a single stack limit check,
15129         even if multiple stack adjustments are required.
15130         (nios2_option_override): Diagnose unsupported combination of -fpic
15131         and -stack-limit-symbol.
15132
15133 2015-07-14  H.J. Lu  <hongjiu.lu@intel.com>
15134
15135         * Makefile.in (top_srcdir): New.
15136         * configure.ac: Use AM_ZLIB.
15137         * configure: Regeneated.
15138
15139 2015-07-14  Matthias Klose  <doko@ubuntu.com>
15140
15141         PR target/66840
15142         * config/rs6000/t-rs6000 (TM_H): Add rs6000-cpus.def.
15143
15144 2015-07-14  Richard Biener  <rguenther@suse.de>
15145
15146         PR tree-optimization/66863
15147         * tree-vrp.c (register_edge_assert_for_2): Properly restrict
15148         what we record for conversion use stmt lhs inequalities.
15149
15150 2015-07-14  Richard Biener  <rguenther@suse.de>
15151
15152         * genmatch.c (dt_node::gen_kids_1): Fix case label indenting.
15153         (decision_tree::gen_gimple): Likewise.
15154
15155 2015-07-14  Tom de Vries  <tom@codesourcery.com>
15156
15157         * gcc.c (greater_than_spec_func): Declare forward.
15158         (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use gt to ignore
15159         -ftree-parallelize-loops={0,1}.
15160         (static_spec_functions): Add greater_than_spec_func function with name
15161         "gt".
15162         (greater_than_spec_func): New function.
15163
15164 2015-07-14  Richard Biener  <rguenther@suse.de>
15165
15166         * tree-ssa-dom.c (record_temporary_equivalences): Merge
15167         wideing type conversion case from record_equivalences_from_incoming_edge
15168         and use record_equality to record equivalences.
15169         (record_equivalences_from_incoming_edge): Call
15170         record_temporary_equivalences.
15171
15172 2015-07-14  Richard Biener  <rguenther@suse.de>
15173
15174         * genmatch.c (struct operand): Add OP_IF and OP_WITH op_types.
15175         (struct if_expr): New.
15176         (struct with_expr): Likewise.
15177         (is_a_helper): Add helpers for if_expr and with_expr.
15178         (struct simplify): Add simplify_kind enum and member.  Remove
15179         ifexpr_vec member.
15180         (simplify::simplify): Adjust.
15181         (lower_commutative): Adjust.
15182         (lower_opt_convert): Likewise.
15183         (lower_cond): Likewise.
15184         (replace_id): Handle with_expr and if_expr.
15185         (lower_for): Adjust.
15186         (dt_simplify::gen_1): New recursive worker, split out from ...
15187         (dt_simplify::gen): ... here.  Deal with if and with expansion
15188         recursively.
15189         (capture_info::capture_info): Take context argument
15190         (capture_info::walk_result): Only analyze specific result.
15191         (parser::parse_result): New function.
15192         (parser::parse_simplify): Adjust to parse ifs with then end
15193         else case.
15194         (parser::parse_if): Simplify.
15195         (parser::parse_pattern): Pass down simplify kind.
15196         * match.pd: Convert if structure to new syntax.
15197
15198 2015-07-13  Marek Polacek  <polacek@redhat.com>
15199
15200         * rtl.c (rtx_equal_p_cb): Fix typo.
15201
15202 2015-07-13  Andrew MacLeod  <amacleod@redhat.com>
15203
15204         * omega.h: Don't include config.h, don't include params.h again if
15205         omega.h has already been included.
15206         * graphite-poly.h: Include sese.h.
15207         * graphite.c: Don't include sese.h, remove needless includes and
15208         minimize includes outside #ifdef HAVE_isl block.
15209         * graphite-blocking.c: Don't include sese.h, remove needless includes,
15210         and wrap entire file in #ifdef HAVE_isl
15211         * graphite-dependences.c: Likewise.
15212         * graphite-interchange.c: Likewise.
15213         * graphite-isl-ast-to-gimple.c: Likewise.
15214         * graphite-optimize-isl.c: Likewise.
15215         * graphite-poly.c: Likewise.
15216         * graphite-scop-detection.c: Likewise.
15217         * graphite-sese-to-poly.c: Likewise.
15218
15219 2015-07-13  Tom de Vries  <tom@codesourcery.com>
15220
15221         * omp-low.c (build_receiver_ref): Mark *.omp_data_i as non-trapping.
15222
15223 2015-07-13  Renlin Li  <renlin.li@arm.com>
15224
15225         PR rtl/66556
15226         * simplify-rtx.c (simplify_const_relational_operation): Add
15227         side_effects_p checks.
15228
15229 2015-07-12  Aldy Hernandez  <aldyh@redhat.com>
15230
15231         * bitmap.h: Fix double word typos.
15232         * builtins.c: Same.
15233         * calls.c: Same.
15234         * cfgloopmanip.c: Same.
15235         * cgraph.c: Same.
15236         * cgraph.h: Same.
15237         * cgraphclones.c: Same.
15238         * combine.c: Same.
15239         * config/aarch64/aarch64-protos.h: Same.
15240         * config/aarch64/aarch64.c: Same.
15241         * config/aarch64/aarch64.md: Same.
15242         * config/arm/arm.md: Same.
15243         * config/arm/arm1020e.md: Same.
15244         * config/arm/arm1026ejs.md: Same.
15245         * config/arm/arm926ejs.md: Same.
15246         * config/arm/fa526.md: Same.
15247         * config/arm/fa606te.md: Same.
15248         * config/arm/fa626te.md: Same.
15249         * config/arm/fa726te.md: Same.
15250         * config/arm/fmp626.md: Same.
15251         * config/darwin.c: Same.
15252         * config/epiphany/epiphany.c: Same.
15253         * config/frv/frv.c: Same.
15254         * config/ft32/ft32.c: Same.
15255         * config/gnu-user.h: Same.
15256         * config/h8300/constraints.md: Same.
15257         * config/i386/i386.c: Same.
15258         * config/i386/i386.md: Same.
15259         * config/iq2000/iq2000.md: Same.
15260         * config/mips/mips.c: Same.
15261         * config/mmix/mmix.md: Same.
15262         * config/moxie/moxie.c: Same.
15263         * config/nds32/nds32.md: Same.
15264         * config/pa/pa.h: Same.
15265         * config/rs6000/aix.h: Same.
15266         * config/rs6000/rs6000.h: Same.
15267         * config/sh/sh.c: Same.
15268         * config/tilegx/tilegx.md: Same.
15269         * config/tilepro/gen-mul-tables.cc: Same.
15270         * cse.c: Same.
15271         * dbxout.c: Same.
15272         * doc/invoke.texi: Same.
15273         * dse.c: Same.
15274         * dwarf2out.c: Same.
15275         * final.c: Same.
15276         * gcc.c: Same.
15277         * genmatch.c: Same.
15278         * gimplify.c: Same.
15279         * hash-table.h: Same.
15280         * internal-fn.c: Same.
15281         * ipa-cp.c: Same.
15282         * ipa-devirt.c: Same.
15283         * ipa-icf.c: Same.
15284         * ipa-icf.h: Same.
15285         * ipa-profile.c: Same.
15286         * ipa-prop.c: Same.
15287         * ipa-prop.h: Same.
15288         * ira.c: Same.
15289         * omp-low.c: Same.
15290         * reg-stack.c: Same.
15291         * regcprop.c: Same.
15292         * reorg.c: Same.
15293         * rtl.h: Same.
15294         * sbitmap.h: Same.
15295         * tree-eh.c: Same.
15296         * tree-inline.c: Same.
15297         * tree-sra.c: Same.
15298         * tree-ssa-dom.c: Same.
15299         * tree-ssa-loop-ivopts.c: Same.
15300         * tree-ssa-structalias.c: Same.
15301         * tree-ssa-tail-merge.c: Same.
15302         * tree-ssa-ter.c: Same.
15303         * tree-ssa-threadupdate.c: Same.
15304         * tree-ssa-uninit.c: Same.
15305         * tree-ssanames.c: Same.
15306         * tree-vect-loop-manip.c: Same.
15307         * tree-vrp.c: Same.
15308         * tree.c: Same.
15309         * valtrack.c: Same.
15310         * vec.h: Same.
15311
15312 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
15313
15314         PR middle-end/66726
15315         * tree-ssa-phiopt.c(factor_out_conditional_conversion): New function.
15316         tree_ssa_phiopt_worker): Call it.
15317
15318 2015-07-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
15319
15320         * cse.c (cse_insn): Calculate src_eqv for ZERO_EXTRACT.
15321         * emit-rtl.c (set_for_reg_notes): Allow ZERO_EXTRACT to set
15322         REG_EQUAL note.
15323
15324 2015-07-11  Marek Polacek  <polacek@redhat.com>
15325
15326         PR middle-end/66353
15327         * basic-block.h (has_abnormal_call_or_eh_pred_edge_p): New function.
15328         * ira-lives.c (bb_has_abnormal_call_pred): Remove function.
15329         (process_bb_node_lives): Call has_abnormal_call_or_eh_pred_edge_p
15330         rather than bb_has_abnormal_call_pred.
15331         * lra-lives.c (bb_has_abnormal_call_pred): Remove function.
15332         (process_bb_lives): Call has_abnormal_call_or_eh_pred_edge_p
15333         rather than bb_has_abnormal_call_pred.
15334
15335 2015-07-10  Anatoly Sokolov  <aesok@post.ru>
15336
15337         * config/v850/v850.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
15338         REG_OK_FOR_BASE_P_STRICT, REG_OK_FOR_INDEX_P_STRICT, STRICT,
15339         RTX_OK_FOR_BASE_P, GO_IF_LEGITIMATE_ADDRESS): Remove macros.
15340         * config/v850/v850.c (v850_reg_ok_for_base_, v850_rtx_ok_for_base_p,
15341         v850_legitimate_address_p): New functions.
15342         (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
15343
15344 2015-07-10  H.J. Lu  <hongjiu.lu@intel.com>
15345
15346         PR target/66819
15347         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow
15348         indirect sibcall with register arguments if register available
15349         for argument passing.
15350         (init_cumulative_args): Set cfun->machine->arg_reg_available
15351         to (cum->nregs > 0) or to true if function has a variable
15352         argument list.
15353         (function_arg_advance_32): Set cfun->machine->arg_reg_available
15354         to false if cum->nregs <= 0.
15355         * config/i386/i386.h (machine_function): Add arg_reg_available.
15356
15357 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
15358
15359         * config/i386/sse.md (movdi_to_sse): Use gen_lowpart
15360         and gen_higpart instead of gen_rtx_SUBREG.
15361         * config/i386/i386.md
15362         (floatdi<X87MODEF:mode>2_i387_with_xmm splitter): Ditto.
15363         (read-modify peephole2): Use gen_lowpart instead of
15364         gen_rtx_SUBREG for operand 5.
15365
15366 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
15367
15368         * config/tilepro/gen-mul-tables.cc (main): Change include list for
15369         generated files.
15370         * config/tilepro/mul-tables.c: Regenerate.
15371         * config/tilegx/mul-tables.c: Regenerate.
15372
15373 2015-07-10  Richard Biener  <rguenther@suse.de>
15374
15375         * fold-const.c (distribute_bit_expr): Remove.
15376         (fold_binary_loc): Move simplifying (A & C1) + (B & C2)
15377         to (A & C1) | (B & C2), distributing (A & B) | (A & C)
15378         to A & (B | C) and simplifying A << C1 << C2 to ...
15379         * match.pd: ... patterns here.
15380
15381 2015-07-10  Jiong Wang  <jiong.wang@arm.com>
15382
15383         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
15384         Mark mem as READONLY and NOTRAP for PIC symbol.
15385
15386 2015-07-10  Andrew MacLeod  <amacleod@redhat.com>
15387
15388         * gimple-predict.h: New file.
15389         (gimple_predict_predictor, gimple_predict_set_predictor,
15390         gimple_predict_outcome, gimple_predict_set_outcome,
15391         gimple_build_predict): Relocate here.
15392         * gimple.h (gimple_predict_predictor, gimple_predict_set_predictor,
15393         gimple_predict_outcome, gimple_predict_set_outcome): Move to
15394         gimple-predict.h.
15395         * gimple.c (gimple_build_predict): Move to gimple-predict.h
15396         * basic-block.h: Don't include cfghooks.h.
15397         * backend.h: Don't include predict.h.
15398         * cfghooks.h: Include predict.h.
15399         * gimple-pretty-print.c: Include gimple-predict.h.
15400         * gimplify.c: Likwise.
15401         * predict.c: Adjust includes.
15402         * tree-inline.c: Likewise.
15403         * asan.c: Likewise.
15404         * auto-inc-dec.c: Likewise.
15405         * auto-profile.c: Likewise.
15406         * bb-reorder.c: Likewise.
15407         * builtins.c: Likewise.
15408         * caller-save.c: Likewise.
15409         * calls.c: Likewise.
15410         * cfganal.c: Likewise.
15411         * cfgbuild.c: Likewise.
15412         * cfg.c: Likewise.
15413         * cfgcleanup.c: Likewise.
15414         * cfgexpand.c: Likewise.
15415         * cfghooks.c: Likewise.
15416         * cfgloopanal.c: Likewise.
15417         * cfgloop.c: Likewise.
15418         * cfgloopmanip.c: Likewise.
15419         * cfgrtl.c: Likewise.
15420         * cgraph.c: Likewise.
15421         * cgraphunit.c: Likewise.
15422         * combine.c: Likewise.
15423         * cprop.c: Likewise.
15424         * cse.c: Likewise.
15425         * dce.c: Likewise.
15426         * dojump.c: Likewise.
15427         * dse.c: Likewise.
15428         * except.c: Likewise.
15429         * expmed.c: Likewise.
15430         * expr.c: Likewise.
15431         * final.c: Likewise.
15432         * fold-const.c: Likewise.
15433         * function.c: Likewise.
15434         * fwprop.c: Likewise.
15435         * gcc-plugin.h: Likewise.
15436         * gcse.c: Likewise.
15437         * genattrtab.c: Likewise.
15438         * genemit.c: Likewise.
15439         * gengtype.c: Likewise.
15440         * genopinit.c: Likewise.
15441         * genoutput.c: Likewise.
15442         * genpreds.c: Likewise.
15443         * genrecog.c: Likewise.
15444         * gimple-fold.c: Likewise.
15445         * gimple-iterator.c: Likewise.
15446         * gimple-ssa-isolate-paths.c: Likewise.
15447         * gimple-ssa-strength-reduction.c: Likewise.
15448         * graph.c: Likewise.
15449         * graphite-blocking.c: Likewise.
15450         * graphite.c: Likewise.
15451         * graphite-dependences.c: Likewise.
15452         * graphite-interchange.c: Likewise.
15453         * graphite-isl-ast-to-gimple.c: Likewise.
15454         * graphite-optimize-isl.c: Likewise.
15455         * graphite-poly.c: Likewise.
15456         * graphite-scop-detection.c: Likewise.
15457         * graphite-sese-to-poly.c: Likewise.
15458         * haifa-sched.c: Likewise.
15459         * ifcvt.c: Likewise.
15460         * internal-fn.c: Likewise.
15461         * ipa-cp.c: Likewise.
15462         * ipa-profile.c: Likewise.
15463         * ipa-split.c: Likewise.
15464         * ipa-utils.c: Likewise.
15465         * ira-build.c: Likewise.
15466         * ira-color.c: Likewise.
15467         * ira-conflicts.c: Likewise.
15468         * ira-costs.c: Likewise.
15469         * ira-emit.c: Likewise.
15470         * ira-lives.c: Likewise.
15471         * jump.c: Likewise.
15472         * loop-doloop.c: Likewise.
15473         * loop-init.c: Likewise.
15474         * loop-invariant.c: Likewise.
15475         * loop-unroll.c: Likewise.
15476         * lower-subreg.c: Likewise.
15477         * lra-assigns.c: Likewise.
15478         * lra.c: Likewise.
15479         * lra-coalesce.c: Likewise.
15480         * lra-constraints.c: Likewise.
15481         * lra-lives.c: Likewise.
15482         * lto-cgraph.c: Likewise.
15483         * lto-streamer-in.c: Likewise.
15484         * mode-switching.c: Likewise.
15485         * modulo-sched.c: Likewise.
15486         * omp-low.c: Likewise.
15487         * optabs.c: Likewise.
15488         * passes.c: Likewise.
15489         * postreload.c: Likewise.
15490         * postreload-gcse.c: Likewise.
15491         * profile.c: Likewise.
15492         * recog.c: Likewise.
15493         * regstat.c: Likewise.
15494         * reload1.c: Likewise.
15495         * reorg.c: Likewise.
15496         * rtlanal.c: Likewise.
15497         * sched-ebb.c: Likewise.
15498         * sel-sched-ir.c: Likewise.
15499         * sese.c: Likewise.
15500         * shrink-wrap.c: Likewise.
15501         * simplify-rtx.c: Likewise.
15502         * stmt.c: Likewise.
15503         * store-motion.c: Likewise.
15504         * tracer.c: Likewise.
15505         * trans-mem.c: Likewise.
15506         * tree-call-cdce.c: Likewise.
15507         * tree-cfg.c: Likewise.
15508         * tree-cfgcleanup.c: Likewise.
15509         * tree-chkp.c: Likewise.
15510         * tree-complex.c: Likewise.
15511         * tree-eh.c: Likewise.
15512         * tree-if-conv.c: Likewise.
15513         * tree-loop-distribution.c: Likewise.
15514         * tree-outof-ssa.c: Likewise.
15515         * tree-parloops.c: Likewise.
15516         * tree-predcom.c: Likewise.
15517         * tree-pretty-print.c: Likewise.
15518         * tree-profile.c: Likewise.
15519         * tree-sra.c: Likewise.
15520         * tree-ssa.c: Likewise.
15521         * tree-ssa-coalesce.c: Likewise.
15522         * tree-ssa-dce.c: Likewise.
15523         * tree-ssa-dom.c: Likewise.
15524         * tree-ssa-forwprop.c: Likewise.
15525         * tree-ssa-ifcombine.c: Likewise.
15526         * tree-ssa-loop-ch.c: Likewise.
15527         * tree-ssa-loop-im.c: Likewise.
15528         * tree-ssa-loop-ivcanon.c: Likewise.
15529         * tree-ssa-loop-ivopts.c: Likewise.
15530         * tree-ssa-loop-manip.c: Likewise.
15531         * tree-ssa-loop-prefetch.c: Likewise.
15532         * tree-ssa-loop-unswitch.c: Likewise.
15533         * tree-ssa-math-opts.c: Likewise.
15534         * tree-ssa-phiopt.c: Likewise.
15535         * tree-ssa-pre.c: Likewise.
15536         * tree-ssa-reassoc.c: Likewise.
15537         * tree-ssa-sink.c: Likewise.
15538         * tree-ssa-tail-merge.c: Likewise.
15539         * tree-ssa-threadedge.c: Likewise.
15540         * tree-ssa-threadupdate.c: Likewise.
15541         * tree-switch-conversion.c: Likewise.
15542         * tree-tailcall.c: Likewise.
15543         * tree-vect-data-refs.c: Likewise.
15544         * tree-vect-loop.c: Likewise.
15545         * tree-vect-loop-manip.c: Likewise.
15546         * tree-vectorizer.c: Likewise.
15547         * tree-vrp.c: Likewise.
15548         * ubsan.c: Likewise.
15549         * value-prof.c: Likewise.
15550         * varasm.c: Likewise.
15551         * var-tracking.c: Likewise.
15552         * config/aarch64/aarch64-builtins.c: Likewise.
15553         * config/aarch64/aarch64.c: Likewise.
15554         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
15555         * config/alpha/alpha.c: Likewise.
15556         * config/arc/arc.c: Likewise.
15557         * config/arm/arm.c: Likewise.
15558         * config/avr/avr.c: Likewise.
15559         * config/bfin/bfin.c: Likewise.
15560         * config/c6x/c6x.c: Likewise.
15561         * config/cr16/cr16.c: Likewise.
15562         * config/cris/cris.c: Likewise.
15563         * config/darwin.c: Likewise.
15564         * config/darwin-c.c: Likewise.
15565         * config/epiphany/epiphany.c: Likewise.
15566         * config/epiphany/mode-switch-use.c: Likewise.
15567         * config/epiphany/resolve-sw-modes.c: Likewise.
15568         * config/fr30/fr30.c: Likewise.
15569         * config/frv/frv.c: Likewise.
15570         * config/ft32/ft32.c: Likewise.
15571         * config/h8300/h8300.c: Likewise.
15572         * config/i386/i386.c: Likewise.
15573         * config/i386/winnt.c: Likewise.
15574         * config/ia64/ia64.c: Likewise.
15575         * config/iq2000/iq2000.c: Likewise.
15576         * config/lm32/lm32.c: Likewise.
15577         * config/m32c/m32c.c: Likewise.
15578         * config/m32r/m32r.c: Likewise.
15579         * config/m68k/m68k.c: Likewise.
15580         * config/mcore/mcore.c: Likewise.
15581         * config/mep/mep.c: Likewise.
15582         * config/microblaze/microblaze.c: Likewise.
15583         * config/mips/mips.c: Likewise.
15584         * config/mmix/mmix.c: Likewise.
15585         * config/mn10300/mn10300.c: Likewise.
15586         * config/moxie/moxie.c: Likewise.
15587         * config/msp430/msp430.c: Likewise.
15588         * config/nds32/nds32.c: Likewise.
15589         * config/nds32/nds32-cost.c: Likewise.
15590         * config/nds32/nds32-fp-as-gp.c: Likewise.
15591         * config/nds32/nds32-intrinsic.c: Likewise.
15592         * config/nds32/nds32-isr.c: Likewise.
15593         * config/nds32/nds32-md-auxiliary.c: Likewise.
15594         * config/nds32/nds32-memory-manipulation.c: Likewise.
15595         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
15596         * config/nds32/nds32-predicates.c: Likewise.
15597         * config/nios2/nios2.c: Likewise.
15598         * config/nvptx/nvptx.c: Likewise.
15599         * config/pa/pa.c: Likewise.
15600         * config/pdp11/pdp11.c: Likewise.
15601         * config/rl78/rl78.c: Likewise.
15602         * config/rs6000/rs6000.c: Likewise.
15603         * config/rx/rx.c: Likewise.
15604         * config/s390/s390.c: Likewise.
15605         * config/sh/sh.c: Likewise.
15606         * config/sh/sh-mem.cc: Likewise.
15607         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
15608         * config/sh/sh_treg_combine.cc: Likewise.
15609         * config/sparc/sparc.c: Likewise.
15610         * config/spu/spu.c: Likewise.
15611         * config/stormy16/stormy16.c: Likewise.
15612         * config/tilegx/tilegx.c: Likewise.
15613         * config/tilepro/tilepro.c: Likewise.
15614         * config/v850/v850.c: Likewise.
15615         * config/vax/vax.c: Likewise.
15616         * config/visium/visium.c: Likewise.
15617         * config/xtensa/xtensa.c: Likewise.
15618
15619 2015-07-10  Richard Biener  <rguenther@suse.de>
15620
15621         * genmatch.c (dt_node::gen_kids_1): Fix indenting of case labels.
15622         (decision_tree::gen_gimple): Likewise.
15623         (decision_tree::gen_generic): Likewise.
15624
15625 2015-07-10  Uros Bizjak  <ubizjak@gmail.com>
15626
15627         PR target/66813
15628         * config/i386/i386.c (ix86_md_asm_adjust): Emit movstrictqi
15629         sequence for TARGET_ZERO_EXTEND_WITH_AND targets.
15630
15631 2015-07-10  Jakub Jelinek  <jakub@redhat.com>
15632
15633         PR middle-end/66820
15634         * gimplify.c (maybe_fold_stmt): Don't fold in ORT_PARALLEL
15635         or ORT_TASK contexts.
15636         * omp-low.c (lower_omp): Call fold_stmt even if taskreg_nesting_level
15637         is non-zero.
15638
15639 2015-07-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15640
15641         * expr.c (expand_cond_expr_using_cmove): Fix typos in comment
15642         above function.
15643
15644 2015-07-10  Tom de Vries  <tom@codesourcery.com>
15645
15646         * tree-parloops.c (try_transform_to_exit_first_loop_alt): If not found,
15647         insert nit + 1 bound.
15648
15649 2015-07-10  Richard Biener  <rguenther@suse.de>
15650
15651         * tree-if-conv.c (if_convertible_gimple_assign_stmt_p):
15652         Use ifcvt_could_trap_p also when not flag_tree_loop_if_convert_stores.
15653         (if_convertible_loop_p_1): For this always compute bb predicates.
15654         (if_convertible_loop_p): And free them.
15655
15656 2015-07-10  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
15657
15658         * ipa-icf.c (sem_item_optimizer::do_congruence_step): Fix typo
15659         in dump message.
15660
15661 2015-07-10  Richard Biener  <rguenther@suse.de>
15662
15663         PR tree-optimization/66823
15664         * tree-if-conv.c (memrefs_read_or_written_unconditionally): Fix
15665         inverted predicate.
15666
15667 2015-07-09  Steve Ellcey  <sellcey@imgtec.com>
15668
15669         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): Update
15670         to handle mips[32|64]r3 and mips[32|64]r5.
15671
15672 2015-07-09  Jakub Jelinek  <jakub@redhat.com>
15673
15674         PR middle-end/66633
15675         * tree-nested.c (get_static_chain): Or in a flag into
15676         info->static_chain_added.
15677         (get_frame_field, get_nonlocal_debug_decl): Likewise.
15678         (convert_nonlocal_omp_clauses, convert_local_omp_clauses): Revert
15679         2015-07-01 changes.
15680         (convert_tramp_reference_stmt): If a frame_decl or chain_decl
15681         is needed newly inside of GIMPLE_OMP_{PARALLEL,TASK,TARGET} body,
15682         add it to clauses.
15683
15684         PR tree-optimization/66718
15685         * tree-vect-stmts.c (struct simd_call_arg_info): Add simd_lane_linear
15686         field.
15687         (vect_simd_lane_linear): New function.
15688         (vectorizable_simd_clone_call): Support using linear arguments for
15689         addresses of arrays elements indexed by GOMP_SIMD_LANE result.
15690
15691 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
15692
15693         PR target/66821
15694         * config/i386/i386.c (iamcu_cost): Adjust variable shift costs.
15695
15696 2015-07-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
15697
15698         * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_memory):
15699         Use machine mode, not enum machine_mode in the prototype.
15700
15701         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): New helper macros to
15702         classify 128-bit floating point support.
15703         (FLOAT128_IBM_P): Likewise.
15704         (FLOAT128_VECTOR_P): Likewise.
15705         (FLOAT128_2REG_P): Likewise.
15706         (SCALAR_FLOAT_MODE_NOT_VECTOR_P): Likewise.
15707         (SLOW_UNALIGNED_ACCESS): Add IEEE 128-bit floating point support.
15708         (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
15709         (HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
15710
15711         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Drop
15712         tests against TFmode/TDmode, since those modes do not use VSX
15713         addresses.
15714         (rs6000_hard_regno_mode_ok): Add IEEE 128-bit floating point
15715         support.
15716         (rs6000_init_hard_regno_mode_ok): Use new helper macros instead of
15717         tests against TFmode, etc.
15718         (invalid_e500_subreg): Add tests against IFmode/KFmode.
15719         (reg_offset_addressing_ok_p): Likewise.
15720         (rs6000_legitimate_offset_address_p): Likewise.
15721         (rs6000_legitimize_address): Likewise.
15722         (rs6000_legitimize_reload_address): Likewise.
15723         (rs6000_legitimate_address_p): Clean up tests against TFmode and
15724         TDmode to use the new helper macros, which will include IFmode and
15725         KFmode.
15726         (rs6000_emit_move): Likewise.
15727         (rs6000_darwin64_record_arg_recurse): Likewise.
15728         (print_operand): Likewise.
15729         (rs6000_member_type_forces_blk): Treat IEEE 128-bit floating point
15730         that uses a single vector register as a vector and not as a
15731         floating point register in terms of the calling sequence.
15732         (rs6000_discover_homogeneous_aggregate): Likewise.
15733         (rs6000_return_in_memory): Likewise.
15734         (init_cumulative_args): Likewise.
15735         (rs6000_function_arg_boundary): Likewise.
15736         (rs6000_function_arg_advance_1): Likewise.
15737         (rs6000_function_arg): Likewise.
15738         (rs6000_pass_by_reference): Likewise.
15739         (rs6000_gimplify_va_arg): Likewise.
15740         (rs6000_secondary_reload_memory): Use machine_mode not enum
15741         machine mode.
15742         (rs6000_split_multireg_move): Use new helper macros.
15743         (spe_func_has_64bit_regs_p): Likewise.
15744         (rs6000_output_function_epilogue): Add IFmode/KFmode support.
15745         (output_toc): Use new helper macros.
15746         (rs6000_register_move_cost): Likewise.
15747         (rs6000_function_value): Add IEEE 128-bit floating point calling
15748         sequence support.
15749         (rs6000_libcall_value): Likewise.
15750         (rs6000_scalar_mode_supported_p): Add support for IEEE 128-bit
15751         floating point support.
15752         (rs6000_vector_mode_supported_p): Likewise.
15753
15754 2015-07-09  Vladimir Makarov  <vmakarov@redhat.com>
15755
15756         PR rtl-optimization/66782
15757         * lra-int.h (struct lra_insn_recog_data): Add comment about
15758         clobbered hard regs for arg_hard_regs.
15759         * lra.c (lra_set_insn_recog_data): Add clobbered hard regs.
15760         * lra-lives.c (process_bb_lives): Process clobbered hard regs.
15761         Add condition for processing used hard regs.
15762         * lra-constraints.c (update_ebb_live_info, inherit_in_ebb):
15763         Process clobbered hard regs.
15764
15765 2015-07-09  Michael Matz  <matz@suse.de>
15766
15767         * genmatch.c (fprintf_indent): New function.
15768         (operand::gen_transform): Add indent parameter.
15769         (expr::gen_transform, c_expr::gen_transform,
15770         capture::gen_transform): Ditto and use fprintf_indent.
15771         (dt_node::gen, dt_node::gen_kids, dt_node::gen_kids_1): Ditto.
15772         (dt_operand::gen, dt_operand::gen_predicate,
15773         dt_operand::gen_match_op, dt_operand::gen_gimple_expr,
15774         dt_operand::gen_generic_expr, dt_simplify::gen): Ditto.
15775         (decision_tree::gen_gimple): Adjust calls and indent generated
15776         code.
15777         (decision_tree::gen_generic): Ditto.
15778         (write_predicate): Ditto.
15779
15780 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
15781
15782         PR target/66814
15783         * config/i386/predicates.md (nonimmediate_gr_operand): New predicate.
15784         * config/i386/i386.md (not peephole2): Use nonimmediate_gr_operand.
15785         (varous peephole2s): Use {GENERAL,SSE,MMX}_REGNO_P instead of
15786         {GENERAL,SSE,MMX}_REG_P where appropriate.
15787
15788 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
15789
15790         * lto-streamer.h: Don't include target.h and alloc-pool.h.
15791         * builtins.c: Adjust includes.
15792         * gimple.c: Likewise.
15793         * ipa-icf.c: Likewise.
15794         * lto-opts.c: Likewise.
15795         * ipa-reference.c: Likewise.
15796         * lto-section-out.c: Likewise.
15797         * lto-streamer-in.c: Likewise.
15798         * lto-streamer-out.c: Likewise.
15799         * opts-global.c: Likewise.
15800         * symtab.c: Likewise.
15801         * tree-chkp.c: Likewise.
15802         * tree-ssa-live.c: Likewise.
15803         * tree-streamer-in.c: Likewise.
15804         * tree-streamer-out.c: Likewise.
15805         * config/darwin.c: Likewise.
15806         * config/i386/winnt.c: Likewise.
15807
15808 2015-07-09  Richard Biener  <rguenther@suse.de>
15809
15810         * genmatch.c (struct expr): Add force_single_use flag.
15811         (expr::expr): Add copy constructor.
15812         (capture_info::walk_match): Gather force_single_use captures.
15813         (expr::gen_transform): Use possibly NULLified sequence.
15814         (dt_simplify::gen): Apply single-use restrictions by NULLifying
15815         seq if any constrained expr is not single-use.
15816         (parser::parse_expr): Refactor to allow multiple flags.  Handle
15817         's' flag to force an expression have a single-use if the pattern
15818         simplifies to more than one statement.
15819         * match.pd: Convert most single_use conditionals to :s flags.
15820
15821 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
15822
15823         * config/i386/iamcu.h (ASM_OUTPUT_ALIGNED_BSS): New.
15824         (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
15825         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
15826
15827 2015-07-09  Andrew MacLeod  <amacleod@redhat.com>
15828
15829         * flags.h: Don't include flag-types.h or options.h.
15830         * opts-common.c: Adjust includes.
15831         * opts-global.c: Likewise.
15832         * common/config/epiphany/epiphany-common.c: Likewise.
15833
15834 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
15835
15836         PR target/66818
15837         * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Defined to 32
15838         for IA MCU.
15839
15840 2015-07-09  H.J. Lu  <hongjiu.lu@intel.com>
15841
15842         PR target/66817
15843         * config/i386/i386.c (ix86_return_in_memory): Return true
15844         if int_size_in_bytes returns negative for IA MCU.
15845
15846 2015-07-09  Marek Polacek  <polacek@redhat.com>
15847
15848         PR tree-optimization/66718
15849         * Makefile.in (OBJS): Add gimple-laddress.o.
15850         * passes.def: Schedule pass_laddress.
15851         * timevar.def (DEFTIMEVAR): Add TV_GIMPLE_LADDRESS.
15852         * tree-pass.h (make_pass_laddress): Declare.
15853         * gimple-laddress.c: New file.
15854
15855 2015-07-09  Richard Biener  <rguenther@suse.de>
15856
15857         * toplev.c (compile_file): Reset maximum_field_alignment after parsing.
15858
15859 2015-07-09  Richard Biener  <rguenther@suse.de>
15860
15861         PR tree-optimization/66807
15862         * tree-chkp-opt.c (chkp_opt_fini): Free post dominator info.
15863
15864 2015-07-08  Kito Cheng  <kito.cheng@gmail.com>
15865
15866         * function.c (stack_protect_epilogue): Use if rather than switch for
15867         check targetm.have_stack_protect_test.
15868
15869 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15870
15871         * defaults.h: Provide default for WORD_REGISTER_OPERATIONS.
15872         * config/alpha/alpha.h: Define WORD_REGISTER_OPERATIONS to 1.
15873         * config/arc/arc.h: Likewise.
15874         * config/arm/arm.h: Likewise.
15875         * config/bfin/bfin.h: Likewise.
15876         * config/epiphany/epiphany.h: Likewise.
15877         * config/frv/frv.h: Likewise.
15878         * config/ia64/ia64.h: Likewise.
15879         * config/iq2000/iq2000.h: Likewise.
15880         * config/lm32/lm32.h: Likewise.
15881         * config/m32r/m32r.h: Likewise.
15882         * config/mcore/mcore.h: Likewise.
15883         * config/mep/mep.h: Likewise.
15884         * config/microblaze/microblaze.h: Likewise.
15885         * config/mips/mips.h: Likewise.
15886         * config/mmix/mmix.h: Likewise.
15887         * config/mn10300/mn10300.h: Likewise.
15888         * config/nds32/nds32.h: Likewise.
15889         * config/nios2/nios2.h: Likewise.
15890         * config/pa/pa.h: Likewise.
15891         * config/rl78/rl78.h: Likewise.
15892         * config/sh/sh.h: Likewise.
15893         * config/sparc/sparc.h: Likewise.
15894         * config/stormy16/stormy16.h: Likewise.
15895         * config/tilegx/tilegx.h: Likewise.
15896         * config/tilepro/tilepro.h: Likewise.
15897         * config/v850/v850.h: Likewise.
15898         * config/xtensa/xtensa.h: Likewise.
15899         * doc/tm.texi: Regenerate.
15900         * doc/tm.texi.in: Adjust.
15901         * combine.c (simplify_set): Likewise.
15902         (simplify_comparison): Likewise.
15903         * expr.c (store_constructor): Likewise.
15904         * internal-fn.c (expand_arith_overflow): Likewise.
15905         * reload.c (push_reload): Likewise.
15906         (find_reloads): Likewise.
15907         (find_reloads_subreg_address): Likewise.
15908         * reload1.c (eliminate_regs_1): Likewise.
15909         * rtlanal.c (nonzero_bits1): Likewise.
15910         (num_sign_bit_copies1): Likewise.
15911         * simplify-rtx.c (simplify_truncation): Likewise.
15912
15913 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15914
15915         * auto-inc-dec.c (pass_inc_dec::execute): Don't check the value
15916         of AUTO_INC_DEC with the preprocessor.
15917         * combine.c (combine_instructions): Likewise.
15918         (can_combine_p): Likewise.
15919         (try_combine): Likewise.
15920         * emit-rtl.c (try_split): Likewise.
15921         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
15922         * lower-subreg.c (resolve_simple_move): Likewise.
15923         * lra.c (update_inc_notes): Likewise.
15924         * recog.c (asm_operand_ok): Likewise.
15925         (constrain_operands): Likewise.
15926         * regrename.c (scan_rtx_address): Likewise.
15927         * reload.c (update_auto_inc_notes): Likewise.
15928         (reg_inc_found_and_valid_p): Likewise.
15929         * reload1.c (reload): Likewise.
15930         (emit_input_reload_insns): Likewise.
15931         (delete_output_reload): Likewise.
15932         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
15933         * valtrack.c (cleanup_auto_inc_dec): Likewise.
15934
15935 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15936
15937         * rtl.h: Always define AUTO_INC_DEC.
15938         * auto-inc-dec.c (pass_inc_dec::execute): Adjust.
15939         * combine.c (combine_instructions): Likewise.
15940         (can_combine_p): Likewise.
15941         (try_combine): Likewise.
15942         * emit-rtl.c (try_split): Likewise.
15943         * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
15944         * lower-subreg.c (resolve_simple_move): Likewise.
15945         * lra.c (update_inc_notes): Likewise.
15946         * recog.c (asm_operand_ok): Likewise.
15947         (constrain_operands): Likewise.
15948         * regrename.c (scan_rtx_address): Likewise.
15949         * reload.c (update_auto_inc_notes): Likewise.
15950         (find_equiv_reg): Likewise.
15951         * reload1.c (reload): Likewise.
15952         (reload_as_needed): Likewise.
15953         (choose_reload_regs): Likewise.
15954         (emit_input_reload_insns): Likewise.
15955         (delete_output_reload): Likewise.
15956         * sched-deps.c (init_insn_reg_pressure_info): Likewise.
15957         * valtrack.c (cleanup_auto_inc_dec): Likewise.
15958
15959 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15960
15961         * combine.c (can_combine_def_p): Don't check the value of
15962         HARD_FRAME_POINTER_IS_FRAME_POINTER with the preprocessor.
15963         (combinable_i3pat): Likewise.
15964         (mark_used_regs_combine): Likewise.
15965         * regrename.c (rename_chains): Likewise.
15966         * reload.c (find_reloads_address): Likewise.
15967         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
15968
15969 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15970
15971         * combine.c (update_rsp_from_reg_equal): Don't check if
15972         SHORT_IMMEDIATES_SIGN_EXTEND is defined.
15973         (reg_nonzero_bits_for_combine): Likewise.
15974         * config/alpha/alpha.h: Define SHORT_IMMEDIATES_SIGN_EXTEND to
15975         1.
15976         * config/frv/frv.h: Likewise.
15977         * config/lm32/lm32.h: Likewise.
15978         * config/mep/mep.h: Likewise.
15979         * config/mips/mips.h: Likewise.
15980         * config/rs6000/rs6000.h: Likewise.
15981         * config/sh/sh.h: Likewise.
15982         * config/tilegx/tilegx.h (enum reg_class): Likewise.
15983         * config/tilepro/tilepro.h: Likewise.
15984         * defaults.h: Add default for SHORT_IMMEDIATES_SIGN_EXTEND.
15985         * doc/tm.texi: Regenerate.
15986         * doc/tm.texi.in: Adjust.
15987         * rtlanal.c (nonzero_bits1): Likewise.
15988
15989 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15990
15991         * combine.c (do_SUBST_MODE): Don't check the value of HAVE_cc0
15992         with the preprocessor.
15993         (combine_instructions): Likewise.
15994         (try_combine): Likewise.
15995         (subst): Likewise.
15996         (distribute_notes): Likewise.
15997
15998 2015-07-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15999
16000         * combine.c (try_combine): Don't check if LOAD_EXTEND_OP is
16001         defined.
16002         (simplify_set): Likewise.
16003         * cse.c (cse_insn): Likewise.
16004         * fold-const.c (fold_single_bit_test): Likewise.
16005         (fold_unary_loc): Likewise.
16006         * postreload.c (reload_cse_simplify_set): Likewise.
16007         (reload_cse_simplify_operands): Likewise.
16008
16009 2015-07-08  Jiong Wang  <jiong.wang@arm.com>
16010
16011         * config/aarch64/aarch64.c (aarch64_unspec_may_trap_p): New function.
16012         (TARGET_UNSPEC_MAY_TRAP_P): Define as aarch64_unspec_may_trap_p.
16013
16014 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
16015
16016         PR target/66746
16017         * config/i386/x86intrin.h: Include <adxintrin.h> even if
16018         __iamcu__ is defined.
16019
16020 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
16021
16022         * config/i386/predicates.md (general_reg_operand): Use GENERAL_REGNO_P.
16023
16024 2015-07-08  Iain Sandoe  <iain@codesourcery.com>
16025
16026         PR target/66523
16027         * config/darwin.c (darwin_mark_decl_preserved): Exclude 'L' label
16028         names from preservation.
16029
16030 2015-07-08  H.J. Lu  <hongjiu.lu@intel.com>
16031
16032         PR target/66806
16033         * config/i386/i386.c (type_natural_mode): Don't warn vector ABI
16034         change for IAMCU.
16035         (function_arg_advance_32): Don't pass vectors in registers for
16036         IAMCU.
16037         (function_arg_32): Likewise.
16038         (ix86_return_in_memory): Don't return vectors in registers for
16039         IAMCU.
16040
16041 2015-07-08  Vladimir Makarov  <vmakarov@redhat.com>
16042
16043         PR middle-end/66334
16044         * ira-lives.c (process_bb_node_lives): Make conflicts with PIC
16045         hard regno live at the start of BB with incoming abnormal edges.
16046         * lra-lives.c (process_bb_lives): Ditto.
16047
16048 2015-07-08  Thomas Schwinge  <thomas@codesourcery.com>
16049
16050         PR libgomp/65099
16051         * config/nvptx/mkoffload.c (main): Create an offload image only in
16052         64-bit configurations.
16053
16054 2015-07-08  Martin Liska  <mliska@suse.cz>
16055
16056         PR bootstrap/66744
16057         * tree-sra.c (create_access_1): Call ctor without brackets.
16058         (create_artificial_child_access): Likewise.
16059
16060 2015-07-08  Richard Biener  <rguenther@suse.de>
16061
16062         PR tree-optimization/66793
16063         * gimple-ssa-isolate-paths.c (insert_trap_and_remove_trailing_statemen):
16064         Properly split the block after stmts ending it.
16065
16066 2015-07-08  Richard Biener  <rguenther@suse.de>
16067
16068         PR tree-optimization/66794
16069         * passes.c (execute_function_todo): Assert that post-dominators
16070         are not computed.
16071         * gimple-ssa-isolate-paths.c (gimple_ssa_isolate_erroneous_paths):
16072         Free post-dominators.
16073
16074 2015-07-08  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16075
16076         * config/s390/s390.c (s390_init_frame_layout): Replace assertion
16077         with early exit.
16078
16079 2015-07-08  Uros Bizjak  <ubizjak@gmail.com>
16080
16081         * config/i386/i386.md (*jcc_bt<mode>): Only allow const_int values
16082         more than or equal 8 and less than 32 when optimizing for size.
16083
16084 2015-07-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16085
16086         * config/arm/arm.c (arm_new_rtx_costs): Initialise cost to
16087         COSTS_N_INSNS (1) and increment it appropriately throughout the
16088         function.
16089
16090 2015-07-08  Richard Biener  <rguenther@suse.de>
16091
16092         * fold-const.c (fold_widened_comparison): Fix inverted comparison.
16093
16094 2015-07-08  Alan Modra  <amodra@gmail.com>
16095
16096         * target.def (rtx_costs): Remove "code" param, add "mode".
16097         * rtl.h (rtx_cost, get_full_rtx_cost): Update prototype.
16098         (set_src_cost, get_full_set_src_cost): Likewise.  Move later in file.
16099         (set_rtx_cost, get_full_set_rtx_cost): Move later in file.
16100         * rtlanal.c (rtx_cost): Add "mode" parameter.  Update targetm.rtx_costs
16101         call.  Track mode when given in rtx.
16102         (get_full_rtx_cost): Add "mode" parameter.  Update rtx_cost calls.
16103         (default_address_cost): Pass Pmode to rtx_cost.
16104         (insn_rtx_cost): Pass dest mode of set to set_src_cost.
16105         * cprop.c (try_replace_reg): Ensure set_rtx_cost is not called
16106         with NULL set.
16107         * cse.c (COST, COST_IN): Add MODE param.  Update all uses.
16108         (notreg_cost): Add mode param.  Use it.
16109         * gcse.c (want_to_gcse_p): Delete forward declaration.  Add
16110         mode param and pass to set_src_cost.  Update all calls.
16111         (hash_scan_set): Formatting.
16112         * hooks.c (hook_bool_rtx_int_int_int_intp_bool_false): Delete.
16113         (hook_bool_rtx_mode_int_int_intp_bool_false): New function.
16114         * hooks.h: Ditto.
16115         * expmed.c (init_expmed_one_conv, init_expmed_one_mode,
16116         init_expmed, expand_mult, mult_by_coeff_cost, expand_smod_pow2,
16117         emit_store_flag): Update set_src_cost and rtx_cost calls.
16118         * auto-inc-dec.c (attempt_change): Likewise.
16119         * calls.c (precompute_register_parameters): Likewise.
16120         * combine.c (expand_compound_operation, make_extraction,
16121         force_to_mode, distribute_and_simplify_rtx): Likewise.
16122         * dojump.c (prefer_and_bit_test): Likewise.
16123         * dse.c (find_shift_sequence): Likewise.
16124         * expr.c (compress_float_constant): Likewise.
16125         * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
16126         * ifcvt.c (noce_try_sign_mask): Likewise.
16127         * loop-doloop.c (doloop_optimize): Likewise.
16128         * loop-invariant.c (create_new_invariant): Likewise.
16129         * lower-subreg.c (shift_cost, compute_costs): Likewise.
16130         * optabs.c (avoid_expensive_constant, prepare_cmp_insn,
16131         lshift_cheap_p): Likewise.
16132         * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
16133         try_replace_in_use, reload_cse_move2add): Likewise.
16134         * reload1.c (calculate_elim_costs_all_insns, note_reg_elim_costly):
16135         Likewise.
16136         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
16137         * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
16138         * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Likewise.
16139         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
16140         * config/aarch64/aarch64.c (aarch64_rtx_costs): Delete "code" param,
16141         add "mode" param.  Use "mode: in place of GET_MODE (x).  Pass mode
16142         to rtx_cost calls.
16143         * config/alpha/alpha.c (alpha_rtx_costs): Likewise.
16144         * config/arc/arc.c (arc_rtx_costs): Likewise.
16145         * config/arm/arm.c (arm_rtx_costs): Likewise.
16146         * config/avr/avr.c (avr_rtx_costs, avr_rtx_costs_1): Likewise.
16147         * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
16148         * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
16149         * config/cris/cris.c (cris_rtx_costs): Likewise.
16150         * config/epiphany/epiphany.c (epiphany_rtx_costs): Likewise.
16151         * config/frv/frv.c (frv_rtx_costs): Likewise.
16152         * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
16153         * config/i386/i386.c (ix86_rtx_costs): Likewise.
16154         * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
16155         * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
16156         * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
16157         * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
16158         * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
16159         * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
16160         * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
16161         * config/mep/mep.c (mep_rtx_cost): Likewise.
16162         * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
16163         * config/mips/mips.c (mips_rtx_costs): Likewise.
16164         * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
16165         * config/mn10300/mn10300.c (mn10300_rtx_costs): Likewise.
16166         * config/msp430/msp430.c (msp430_rtx_costs): Likewise.
16167         * config/nds32/nds32-cost.c (nds32_rtx_costs_impl): Likewise.
16168         * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Likewise.
16169         * config/nds32/nds32.c (nds32_rtx_costs): Likewise.
16170         * config/nios2/nios2.c (nios2_rtx_costs): Likewise.
16171         * config/pa/pa.c (hppa_rtx_costs): Likewise.
16172         * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
16173         * config/rl78/rl78.c (rl78_rtx_costs): Likewise.
16174         * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
16175         * config/s390/s390.c (s390_rtx_costs): Likewise.
16176         * config/sh/sh.c (sh_rtx_costs): Likewise.
16177         * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
16178         * config/spu/spu.c (spu_rtx_costs): Likewise.
16179         * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
16180         * config/tilegx/tilegx.c (tilegx_rtx_costs): Likewise.
16181         * config/tilepro/tilepro.c (tilepro_rtx_costs): Likewise.
16182         * config/v850/v850.c (v850_rtx_costs): Likewise.
16183         * config/vax/vax.c (vax_rtx_costs): Likewise.
16184         * config/visium/visium.c (visium_rtx_costs): Likewise.
16185         * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
16186         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Change type of
16187         "code" param, and pass as outer_code to first rtx_cost call.  Pass
16188         mode to rtx_cost calls.
16189         (aarch64_address_cost, aarch64_if_then_else_costs): Update rtx_cost
16190         calls.
16191         (aarch64_rtx_costs_wrapper): Update.
16192         * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs,
16193         arm_unspec_cost, arm_new_rtx_costs, arm_slowmul_rtx_costs): Update
16194         rtx_cost calls.
16195         * config/avr/avr.c (avr_final_prescan_insn): Update set_src_cost
16196         and rtx_cost calls.
16197         (avr_operand_rtx_cost): Similarly.
16198         (avr_rtx_costs_1): Correct mode passed to avr_operand_rtx_cost
16199         for subexpressions of ZERO_EXTEND, SIGN_EXTEND and COMPARE.
16200         * config/mips/mips.c (mips_stack_address_p): Comment typo.
16201         (mips_binary_cost): Update rtx_cost and set_src_cost calls.
16202         (mips_rtx_costs): Use GET_MODE (x) to detect const_int.
16203         * config/mn10300/mn10300.c (mn10300_address_cost): Pass Pmode to
16204         rtx_cost.
16205         (mn10300_rtx_costs): Correct mode passed to mn10300_address_cost.
16206         * config/rs6000/rs6000.c (rs6000_debug_rtx_costs): Update.
16207         * config/sh/sh.c (and_xor_ior_costs): Update rtx_cost call.
16208         * doc/tm.texi: Regenerate.
16209
16210 2015-07-07  Andrew MacLeod  <amacleod@redhat.com>
16211
16212         * tree-core.h: Include symtab.h.
16213         * rtl.h: Include hard-reg-set.h but not flags.h.
16214         (HARD_CONST): Remove condition compilation involving HARD_CONST since
16215         hard-reg-set.h is always included.
16216         * regs.h: Don't include hard-reg-set.h or rtl.h.
16217         * cfg.h: Include dominance.h.
16218         * gimple.h: Include tree-ssa-alias.h and gimple-expr.h.
16219         * backend.h: New.  Aggregate commonly used backend header files.
16220         * gimple-ssa.h: Don't include tree-hasher.h.
16221         * ssa.h: New.  Aggregate commonly used SSA header files.
16222         * regset.h: Remove bitmap.h and hard-reg-set.h #includes.
16223         * sel-sched-ir.h: Flatten includes.
16224         * lra-int.h: Flatten completely.
16225         * sel-sched-dump.h: Flatten includes.
16226         * ira-int.h: Flatten includes.
16227         * gimple-streamer.h: Remove all includes.
16228         * cfgloop.h: Remove all #includes except cfgloopmanip.h.
16229         * resource.h: Flatten hard-reg-set.h and df.h.
16230         * sched-int.h: Flatten insn-arrt.h and df.h.
16231         * valtrack.h: flatten bitmap.h, df.h, and rtl.h
16232         * df.h: Flatten includes, leaving regset.h, alloc-pool.h and timevar.h.
16233         * genattrtab.c (write_header): Adjust generated includes.
16234         * genautomata.c (main): Likewise.
16235         * genconditions.c (write-header): Likewise.
16236         * genemit.c (main): Likewise.
16237         * gengtype.c (open_base_files): Likewise.
16238         * genopinit.c (main): Likewise.
16239         * genoutput.c (output_prologue): Likewise.
16240         * genpeep.c (main): Likewise.
16241         * genpreds.c (write_insn_preds_c): Likewise.
16242         * genrecog.c (write_header): Likewise.
16243         * alias.c: Adjust includes.
16244         * asan.c: Likewise.
16245         * attribs.c: Likewise.
16246         * auto-inc-dec.c: Likewise.
16247         * auto-profile.c: Likewise.
16248         * bb-reorder.c: Likewise.
16249         * bt-load.c: Likewise.
16250         * builtins.c: Likewise.
16251         * caller-save.c: Likewise.
16252         * calls.c: Likewise.
16253         * ccmp.c: Likewise.
16254         * cfg.c: Likewise.
16255         * cfganal.c: Likewise.
16256         * cfgbuild.c: Likewise.
16257         * cfgcleanup.c: Likewise.
16258         * cfgexpand.c: Likewise.
16259         * cfghooks.c: Likewise.
16260         * cfgloop.c: Likewise.
16261         * cfgloopanal.c: Likewise.
16262         * cfgloopmanip.c: Likewise.
16263         * cfgrtl.c: Likewise.
16264         * cgraph.c: Likewise.
16265         * cgraphbuild.c: Likewise.
16266         * cgraphclones.c: Likewise.
16267         * cgraphunit.c: Likewise.
16268         * cilk-common.c: Likewise.
16269         * combine-stack-adj.c: Likewise.
16270         * combine.c: Likewise.
16271         * compare-elim.c: Likewise.
16272         * convert.c: Likewise.
16273         * coverage.c: Likewise.
16274         * cppbuiltin.c: Likewise.
16275         * cprop.c: Likewise.
16276         * cse.c: Likewise.
16277         * cselib.c: Likewise.
16278         * data-streamer-in.c: Likewise.
16279         * data-streamer-out.c: Likewise.
16280         * data-streamer.c: Likewise.
16281         * dbxout.c: Likewise.
16282         * dce.c: Likewise.
16283         * ddg.c: Likewise.
16284         * debug.c: Likewise.
16285         * df-core.c: Likewise.
16286         * df-problems.c: Likewise.
16287         * df-scan.c: Likewise.
16288         * dfp.c: Likewise.
16289         * dojump.c: Likewise.
16290         * dominance.c: Likewise.
16291         * domwalk.c: Likewise.
16292         * double-int.c: Likewise.
16293         * dse.c: Likewise.
16294         * dumpfile.c: Likewise.
16295         * dwarf2asm.c: Likewise.
16296         * dwarf2cfi.c: Likewise.
16297         * dwarf2out.c: Likewise.
16298         * emit-rtl.c: Likewise.
16299         * et-forest.c: Likewise.
16300         * except.c: Likewise.
16301         * explow.c: Likewise.
16302         * expmed.c: Likewise.
16303         * expr.c: Likewise.
16304         * final.c: Likewise.
16305         * fixed-value.c: Likewise.
16306         * fold-const.c: Likewise.
16307         * function.c: Likewise.
16308         * fwprop.c: Likewise.
16309         * gcc-plugin.h: Likewise.
16310         * gcse-common.c: Likewise.
16311         * gcse.c: Likewise.
16312         * generic-match-head.c: Likewise.
16313         * ggc-page.c: Likewise.
16314         * gimple-builder.c: Likewise.
16315         * gimple-expr.c: Likewise.
16316         * gimple-fold.c: Likewise.
16317         * gimple-iterator.c: Likewise.
16318         * gimple-low.c: Likewise.
16319         * gimple-match-head.c: Likewise.
16320         * gimple-pretty-print.c: Likewise.
16321         * gimple-ssa-isolate-paths.c: Likewise.
16322         * gimple-ssa-strength-reduction.c: Likewise.
16323         * gimple-streamer-in.c: Likewise.
16324         * gimple-streamer-out.c: Likewise.
16325         * gimple-walk.c: Likewise.
16326         * gimple.c: Likewise.
16327         * gimplify-me.c: Likewise.
16328         * gimplify.c: Likewise.
16329         * godump.c: Likewise.
16330         * graph.c: Likewise.
16331         * graphite-blocking.c: Likewise.
16332         * graphite-dependences.c: Likewise.
16333         * graphite-interchange.c: Likewise.
16334         * graphite-isl-ast-to-gimple.c: Likewise.
16335         * graphite-optimize-isl.c: Likewise.
16336         * graphite-poly.c: Likewise.
16337         * graphite-scop-detection.c: Likewise.
16338         * graphite-sese-to-poly.c: Likewise.
16339         * graphite.c: Likewise.
16340         * haifa-sched.c: Likewise.
16341         * hw-doloop.c: Likewise.
16342         * ifcvt.c: Likewise.
16343         * init-regs.c: Likewise.
16344         * internal-fn.c: Likewise.
16345         * ipa-chkp.c: Likewise.
16346         * ipa-comdats.c: Likewise.
16347         * ipa-cp.c: Likewise.
16348         * ipa-devirt.c: Likewise.
16349         * ipa-icf-gimple.c: Likewise.
16350         * ipa-icf.c: Likewise.
16351         * ipa-inline-analysis.c: Likewise.
16352         * ipa-inline-transform.c: Likewise.
16353         * ipa-inline.c: Likewise.
16354         * ipa-polymorphic-call.c: Likewise.
16355         * ipa-profile.c: Likewise.
16356         * ipa-prop.c: Likewise.
16357         * ipa-pure-const.c: Likewise.
16358         * ipa-ref.c: Likewise.
16359         * ipa-reference.c: Likewise.
16360         * ipa-split.c: Likewise.
16361         * ipa-utils.c: Likewise.
16362         * ipa-visibility.c: Likewise.
16363         * ipa.c: Likewise.
16364         * ira-build.c: Likewise.
16365         * ira-color.c: Likewise.
16366         * ira-conflicts.c: Likewise.
16367         * ira-costs.c: Likewise.
16368         * ira-emit.c: Likewise.
16369         * ira-lives.c: Likewise.
16370         * ira.c: Likewise.
16371         * jump.c: Likewise.
16372         * langhooks.c: Likewise.
16373         * lcm.c: Likewise.
16374         * loop-doloop.c: Likewise.
16375         * loop-init.c: Likewise.
16376         * loop-invariant.c: Likewise.
16377         * loop-iv.c: Likewise.
16378         * loop-unroll.c: Likewise.
16379         * lower-subreg.c: Likewise.
16380         * lra-assigns.c: Likewise.
16381         * lra-coalesce.c: Likewise.
16382         * lra-constraints.c: Likewise.
16383         * lra-eliminations.c: Likewise.
16384         * lra-lives.c: Likewise.
16385         * lra-remat.c: Likewise.
16386         * lra-spills.c: Likewise.
16387         * lra.c: Likewise.
16388         * lto-cgraph.c: Likewise.
16389         * lto-compress.c: Likewise.
16390         * lto-opts.c: Likewise.
16391         * lto-section-in.c: Likewise.
16392         * lto-section-out.c: Likewise.
16393         * lto-streamer-in.c: Likewise.
16394         * lto-streamer-out.c: Likewise.
16395         * lto-streamer.c: Likewise.
16396         * mcf.c: Likewise.
16397         * mode-switching.c: Likewise.
16398         * modulo-sched.c: Likewise.
16399         * omega.c: Likewise.
16400         * omp-low.c: Likewise.
16401         * optabs.c: Likewise.
16402         * opts-global.c: Likewise.
16403         * passes.c: Likewise.
16404         * plugin.c: Likewise.
16405         * postreload-gcse.c: Likewise.
16406         * postreload.c: Likewise.
16407         * predict.c: Likewise.
16408         * print-rtl.c: Likewise.
16409         * print-tree.c: Likewise.
16410         * profile.c: Likewise.
16411         * real.c: Likewise.
16412         * realmpfr.c: Likewise.
16413         * recog.c: Likewise.
16414         * ree.c: Likewise.
16415         * reg-stack.c: Likewise.
16416         * regcprop.c: Likewise.
16417         * reginfo.c: Likewise.
16418         * regrename.c: Likewise.
16419         * regstat.c: Likewise.
16420         * reload.c: Likewise.
16421         * reload1.c: Likewise.
16422         * reorg.c: Likewise.
16423         * resource.c: Likewise.
16424         * rtl-chkp.c: Likewise.
16425         * rtlanal.c: Likewise.
16426         * rtlhooks.c: Likewise.
16427         * sanopt.c: Likewise.
16428         * sched-deps.c: Likewise.
16429         * sched-ebb.c: Likewise.
16430         * sched-rgn.c: Likewise.
16431         * sched-vis.c: Likewise.
16432         * sdbout.c: Likewise.
16433         * sel-sched-dump.c: Likewise.
16434         * sel-sched-ir.c: Likewise.
16435         * sel-sched.c: Likewise.
16436         * sese.c: Likewise.
16437         * shrink-wrap.c: Likewise.
16438         * simplify-rtx.c: Likewise.
16439         * stack-ptr-mod.c: Likewise.
16440         * stmt.c: Likewise.
16441         * stor-layout.c: Likewise.
16442         * store-motion.c: Likewise.
16443         * stringpool.c: Likewise.
16444         * symtab.c: Likewise.
16445         * target-globals.c: Likewise.
16446         * targhooks.c: Likewise.
16447         * toplev.c: Likewise.
16448         * tracer.c: Likewise.
16449         * trans-mem.c: Likewise.
16450         * tree-affine.c: Likewise.
16451         * tree-browser.c: Likewise.
16452         * tree-call-cdce.c: Likewise.
16453         * tree-cfg.c: Likewise.
16454         * tree-cfgcleanup.c: Likewise.
16455         * tree-chkp-opt.c: Likewise.
16456         * tree-chkp.c: Likewise.
16457         * tree-chrec.c: Likewise.
16458         * tree-complex.c: Likewise.
16459         * tree-data-ref.c: Likewise.
16460         * tree-dfa.c: Likewise.
16461         * tree-diagnostic.c: Likewise.
16462         * tree-dump.c: Likewise.
16463         * tree-eh.c: Likewise.
16464         * tree-emutls.c: Likewise.
16465         * tree-if-conv.c: Likewise.
16466         * tree-inline.c: Likewise.
16467         * tree-into-ssa.c: Likewise.
16468         * tree-iterator.c: Likewise.
16469         * tree-loop-distribution.c: Likewise.
16470         * tree-nested.c: Likewise.
16471         * tree-nrv.c: Likewise.
16472         * tree-object-size.c: Likewise.
16473         * tree-outof-ssa.c: Likewise.
16474         * tree-parloops.c: Likewise.
16475         * tree-phinodes.c: Likewise.
16476         * tree-predcom.c: Likewise.
16477         * tree-pretty-print.c: Likewise.
16478         * tree-profile.c: Likewise.
16479         * tree-scalar-evolution.c: Likewise.
16480         * tree-sra.c: Likewise.
16481         * tree-ssa-address.c: Likewise.
16482         * tree-ssa-alias.c: Likewise.
16483         * tree-ssa-ccp.c: Likewise.
16484         * tree-ssa-coalesce.c: Likewise.
16485         * tree-ssa-copy.c: Likewise.
16486         * tree-ssa-copyrename.c: Likewise.
16487         * tree-ssa-dce.c: Likewise.
16488         * tree-ssa-dom.c: Likewise.
16489         * tree-ssa-dse.c: Likewise.
16490         * tree-ssa-forwprop.c: Likewise.
16491         * tree-ssa-ifcombine.c: Likewise.
16492         * tree-ssa-live.c: Likewise.
16493         * tree-ssa-loop-ch.c: Likewise.
16494         * tree-ssa-loop-im.c: Likewise.
16495         * tree-ssa-loop-ivcanon.c: Likewise.
16496         * tree-ssa-loop-ivopts.c: Likewise.
16497         * tree-ssa-loop-manip.c: Likewise.
16498         * tree-ssa-loop-niter.c: Likewise.
16499         * tree-ssa-loop-prefetch.c: Likewise.
16500         * tree-ssa-loop-unswitch.c: Likewise.
16501         * tree-ssa-loop.c: Likewise.
16502         * tree-ssa-math-opts.c: Likewise.
16503         * tree-ssa-operands.c: Likewise.
16504         * tree-ssa-phiopt.c: Likewise.
16505         * tree-ssa-phiprop.c: Likewise.
16506         * tree-ssa-pre.c: Likewise.
16507         * tree-ssa-propagate.c: Likewise.
16508         * tree-ssa-reassoc.c: Likewise.
16509         * tree-ssa-sccvn.c: Likewise.
16510         * tree-ssa-scopedtables.c: Likewise.
16511         * tree-ssa-sink.c: Likewise.
16512         * tree-ssa-strlen.c: Likewise.
16513         * tree-ssa-structalias.c: Likewise.
16514         * tree-ssa-tail-merge.c: Likewise.
16515         * tree-ssa-ter.c: Likewise.
16516         * tree-ssa-threadedge.c: Likewise.
16517         * tree-ssa-threadupdate.c: Likewise.
16518         * tree-ssa-uncprop.c: Likewise.
16519         * tree-ssa-uninit.c: Likewise.
16520         * tree-ssa.c: Likewise.
16521         * tree-ssanames.c: Likewise.
16522         * tree-stdarg.c: Likewise.
16523         * tree-streamer-in.c: Likewise.
16524         * tree-streamer-out.c: Likewise.
16525         * tree-streamer.c: Likewise.
16526         * tree-switch-conversion.c: Likewise.
16527         * tree-tailcall.c: Likewise.
16528         * tree-vect-data-refs.c: Likewise.
16529         * tree-vect-generic.c: Likewise.
16530         * tree-vect-loop-manip.c: Likewise.
16531         * tree-vect-loop.c: Likewise.
16532         * tree-vect-patterns.c: Likewise.
16533         * tree-vect-slp.c: Likewise.
16534         * tree-vect-stmts.c: Likewise.
16535         * tree-vectorizer.c: Likewise.
16536         * tree-vrp.c: Likewise.
16537         * tree.c: Likewise.
16538         * tsan.c: Likewise.
16539         * ubsan.c: Likewise.
16540         * valtrack.c: Likewise.
16541         * value-prof.c: Likewise.
16542         * var-tracking.c: Likewise.
16543         * varasm.c: Likewise.
16544         * varpool.c: Likewise.
16545         * vmsdbgout.c: Likewise.
16546         * vtable-verify.c: Likewise.
16547         * web.c: Likewise.
16548         * wide-int.cc: Likewise.
16549         * xcoffout.c: Likewise.
16550         * config/aarch64/aarch64-builtins.c: Likewise.
16551         * config/aarch64/aarch64.c: Likewise.
16552         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
16553         * config/alpha/alpha.c: Likewise.
16554         * config/arc/arc.c: Likewise.
16555         * config/arm/aarch-common.c: Likewise.
16556         * config/arm/arm-builtins.c: Likewise.
16557         * config/arm/arm-c.c: Likewise.
16558         * config/arm/arm.c: Likewise.
16559         * config/avr/avr-c.c: Likewise.
16560         * config/avr/avr-log.c: Likewise.
16561         * config/avr/avr.c: Likewise.
16562         * config/bfin/bfin.c: Likewise.
16563         * config/c6x/c6x.c: Likewise.
16564         * config/cr16/cr16.c: Likewise.
16565         * config/cris/cris.c: Likewise.
16566         * config/darwin-c.c: Likewise.
16567         * config/darwin.c: Likewise.
16568         * config/epiphany/epiphany.c: Likewise.
16569         * config/epiphany/mode-switch-use.c: Likewise.
16570         * config/epiphany/resolve-sw-modes.c: Likewise.
16571         * config/fr30/fr30.c: Likewise.
16572         * config/frv/frv.c: Likewise.
16573         * config/ft32/ft32.c: Likewise.
16574         * config/h8300/h8300.c: Likewise.
16575         * config/i386/i386-c.c: Likewise.
16576         * config/i386/i386.c: Likewise.
16577         * config/i386/msformat-c.c: Likewise.
16578         * config/i386/winnt-cxx.c: Likewise.
16579         * config/i386/winnt-stubs.c: Likewise.
16580         * config/i386/winnt.c: Likewise.
16581         * config/ia64/ia64-c.c: Likewise.
16582         * config/ia64/ia64.c: Likewise.
16583         * config/iq2000/iq2000.c: Likewise.
16584         * config/lm32/lm32.c: Likewise.
16585         * config/m32c/m32c-pragma.c: Likewise.
16586         * config/m32c/m32c.c: Likewise.
16587         * config/m32r/m32r.c: Likewise.
16588         * config/m68k/m68k.c: Likewise.
16589         * config/mcore/mcore.c: Likewise.
16590         * config/mep/mep-pragma.c: Likewise.
16591         * config/mep/mep.c: Likewise.
16592         * config/microblaze/microblaze-c.c: Likewise.
16593         * config/microblaze/microblaze.c: Likewise.
16594         * config/mips/mips.c: Likewise.
16595         * config/mmix/mmix.c: Likewise.
16596         * config/mn10300/mn10300.c: Likewise.
16597         * config/moxie/moxie.c: Likewise.
16598         * config/msp430/msp430-c.c: Likewise.
16599         * config/msp430/msp430.c: Likewise.
16600         * config/nds32/nds32-cost.c: Likewise.
16601         * config/nds32/nds32-fp-as-gp.c: Likewise.
16602         * config/nds32/nds32-intrinsic.c: Likewise.
16603         * config/nds32/nds32-isr.c: Likewise.
16604         * config/nds32/nds32-md-auxiliary.c: Likewise.
16605         * config/nds32/nds32-memory-manipulation.c: Likewise.
16606         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
16607         * config/nds32/nds32-predicates.c: Likewise.
16608         * config/nds32/nds32.c: Likewise.
16609         * config/nios2/nios2.c: Likewise.
16610         * config/nvptx/nvptx.c: Likewise.
16611         * config/pa/pa.c: Likewise.
16612         * config/pdp11/pdp11.c: Likewise.
16613         * config/rl78/rl78-c.c: Likewise.
16614         * config/rl78/rl78.c: Likewise.
16615         * config/rs6000/rs6000-c.c: Likewise.
16616         * config/rs6000/rs6000.c: Likewise.
16617         * config/rx/rx.c: Likewise.
16618         * config/s390/s390-c.c: Likewise.
16619         * config/s390/s390.c: Likewise.
16620         * config/sh/sh-c.c: Likewise.
16621         * config/sh/sh-mem.cc: Likewise.
16622         * config/sh/sh.c: Likewise.
16623         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
16624         * config/sh/sh_treg_combine.cc: Likewise.
16625         * config/sol2-c.c: Likewise.
16626         * config/sol2-cxx.c: Likewise.
16627         * config/sol2-stubs.c: Likewise.
16628         * config/sol2.c: Likewise.
16629         * config/sparc/sparc-c.c: Likewise.
16630         * config/sparc/sparc.c: Likewise.
16631         * config/spu/spu-c.c: Likewise.
16632         * config/spu/spu.c: Likewise.
16633         * config/stormy16/stormy16.c: Likewise.
16634         * config/tilegx/mul-tables.c: Likewise.
16635         * config/tilegx/tilegx-c.c: Likewise.
16636         * config/tilegx/tilegx.c: Likewise.
16637         * config/tilepro/mul-tables.c: Likewise.
16638         * config/tilepro/tilepro-c.c: Likewise.
16639         * config/tilepro/tilepro.c: Likewise.
16640         * config/v850/v850-c.c: Likewise.
16641         * config/v850/v850.c: Likewise.
16642         * config/vax/vax.c: Likewise.
16643         * config/visium/visium.c: Likewise.
16644         * config/vms/vms-c.c: Likewise.
16645         * config/vms/vms.c: Likewise.
16646         * config/vxworks.c: Likewise.
16647         * config/xtensa/xtensa.c: Likewise.
16648
16649 2015-07-07  Uros Bizjak  <ubizjak@gmail.com>
16650
16651         * config/i386/i386.md (*jcc_bt<mode>): Only split before reload.
16652         Remove operand constraints.  Change operand 2 predicate to
16653         nonmemory operand.  Limit const_int values to mode bitsize.  Only
16654         allow const_int values less than 32 when optimizing for size.
16655         (*jcc_bt<mode>_1, *jcc_bt<mode>_mask): Only split before reload.
16656         Remove operand constraints.
16657         (*bt<mode>): Use SImode for const_int values less than 32.
16658         (regmode): Remove mode attribute.
16659
16660 2015-07-07  Anatoly Sokolov  <aesok@post.ru>
16661
16662         * config/moxie/moxie.h (GO_IF_LEGITIMATE_ADDRESS): Remove macros.
16663         * config/moxie/moxie.c (moxie_reg_ok_for_base_p,
16664           moxie_legitimate_address_p): New functions.
16665           (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
16666
16667 2015-07-07  Tom de Vries  <tom@codesourcery.com>
16668
16669         PR tree-optimization/66642
16670         * tree-parloops.c (transform_to_exit_first_loop_alt): Update function
16671         header comment.  Rename split_edge variable to edge_at_split.  Split
16672         exit edge to create new loop exit bb.  Insert loop exit phis in new
16673         loop exit bb.
16674
16675 2015-07-07  Tom de Vries  <tom@codesourcery.com>
16676
16677         * tree-cfg.c (get_virtual_phi): New function.
16678         * tree-cfg.h (get_virtual_phi): Declare.
16679         * tree-ssa-loop-manip.c (replace_uses_in_dominated_bbs)
16680         (rewrite_virtuals_into_loop_closed_ssa): New function.
16681         * tree-ssa-loop-manip.h (rewrite_virtuals_into_loop_closed_ssa):
16682         Declare.
16683         * tree-parloops.c (replace_uses_in_bbs_by): Remove.
16684         (transform_to_exit_first_loop_alt): Use
16685         rewrite_virtuals_into_loop_closed_ssa.
16686
16687 2015-07-07  Richard Biener  <rguenther@suse.de>
16688
16689         * fold-const.c (fold_binary_loc): Move
16690         (X & C2) << C1 -> (X << C1) & (C2 << C1) simplification ...
16691         * match.pd: ... here.
16692         Add (X * C1) % C2 -> 0 simplification pattern derived from
16693         extract_muldiv_1.
16694
16695 2015-07-07  Kaz Kojima  <kkojima@gcc.gnu.org>
16696
16697         PR target/66780
16698         * config/sh/sh.md (symGOT_load): Revert a part of 2015-03-03
16699         change for target/65249.
16700
16701 2015-07-07  Paulo Matos  <pmatos@broadcom.com>
16702
16703         * symtab.c (address_matters_1): Fix typo in comment above.
16704         (can_increase_alignment_p): Likewise.
16705
16706 2015-07-07  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
16707
16708         * function.c (free_after_compilation): Clear PROP_cfg in
16709         f->curr_properties.
16710
16711 2015-07-07  Richard Biener  <rguenther@suse.de>
16712
16713         * tree-ssa-propagate.c (add_ssa_edge): Dump what edge list we
16714         add which use to.
16715         (add_control_edge): Remove excessive vertical space in dumping.
16716         (process_ssa_edge_worklist): Simulate at most one statement and
16717         return whether we did.  Do not simulate PHIs if they are in a
16718         BB not yet simulated.
16719         (ssa_propagate): Adjust to always drain the BB worklist whenever
16720         a BB is available there, likewise the VARYING edges list before
16721         the interesting edge list.
16722
16723 2015-07-07  Christian Bruel  <christian.bruel@st.com>
16724
16725         PR target/52144
16726         * config/arm/elf.h (TARGET_ASM_FILE_START_APP_OFF): Delete.
16727
16728 2015-07-07  Richard Biener  <rguenther@suse.de>
16729
16730         PR middle-end/66739
16731         * match.pd: Condition A - B ==/!= 0 -> A ==/!= B on single-use
16732         A - B.
16733
16734 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
16735
16736         * config/i386/i386.md (insv<mode>): Rename from insv.  Use SWI48
16737         modes for operands 0 and 3.  Use SImode for operands 2 and 3.
16738         Copy operand 0 to a temporary if !ext_register_operand.  Remove
16739         ancient extract_bit_field workaround.
16740         (insv<mode>_1): Rename from mov<mode>_insv_1.
16741         (*insvqi): Rename from *movqi_insv_2.
16742         * config/i386/i386.c (emit_i386_cw_initialization): Update calls
16743         for renamed insvsi_1.
16744         (promote_duplicated_reg): Ditto for renamed insv<mode>_1.
16745
16746 2015-07-06  Nathan Sidwell  <nathan@codesourcery.com>
16747
16748         * config/nvptx/nvptx.c (nvptx_reorg): Remove unused vars.  Fix
16749         call to nvptx_reorg_subreg.
16750
16751 2015-07-06  Jim Wilson  <jim.wilson@linaro.org>
16752
16753         * graphite-blocking.c (HAVE_isl): Include <stddef.h>.
16754         * graphite-dependencies.c, graphite-interchange.c,
16755         graphite-isl-ast-to-gimple.c, graphite-optimize-isl.c, graphite-poly.c,
16756         graphite-scop-detection.c, graphite-sese-to-poly.c, graphite.c:
16757         Likewise.
16758
16759 2015-07-06  Marc Glisse  <marc.glisse@inria.fr>
16760
16761         * match.pd: Remove element_mode inside HONOR_*.
16762         (~ (-A) -> A - 1, ~ (A - 1) -> -A): Handle complex types.
16763         (~X | X -> -1, ~X ^ X -> -1): Merge.
16764         * tree.c (build_each_one_cst): New function.
16765         * tree.h (build_each_one_cst): Likewise.
16766
16767 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
16768
16769         * config/i386/i386-c.c (ix86_target_macros_internal): Handle
16770         PROCESSOR_IAMCU.
16771
16772 2015-07-06  Steve Ellcey  <sellcey@imgtec.com>
16773
16774         * config.gcc <mips*-*-*>: Add fused-madd.opt.
16775         * config/mips/mips.opt (mfused-madd): Remove.
16776         * config/mips/mips.c (mips_rtx_costs): Update cost calculations.
16777         * config/mips/mips.h (TARGET_MIPS8000): New.
16778         (ISA_HAS_FP_MADD4_MSUB4): Remove.
16779         (ISA_HAS_FP_MADDF_MSUBF): Remove.
16780         (ISA_HAS_FP_MADD3_MSUB3): Remove.
16781         (ISA_HAS_NMADD4_NMSUB4): Remove.
16782         (ISA_HAS_NMADD3_NMSUB3): Remove.
16783         (ISA_HAS_FUSED_MADD4): New.
16784         (ISA_HAS_UNFUSED_MADD4): New.
16785         (ISA_HAS_FUSED_MADDF): New.
16786         (ISA_HAS_FUSED_MADD3): New.
16787         * config/mips/mips.md: (fma<mode>4) Change from insn to expand.
16788         (*fma<mode>4_madd3) New.
16789         (*fma<mode>4_madd4) New.
16790         (*fma<mode>4_maddf) New.
16791         (fms<mode>4) New.
16792         (*fms<mode>4_msub3) New.
16793         (*fms<mode>4_msub4) New.
16794         (fnma<mode>4) New.
16795         (*fnma<mode>4_nmadd3) New.
16796         (*fnma<mode>4_nmadd4) New.
16797         (fnms<mode>4) New.
16798         (*fnms<mode>4_nmsub3) New.
16799         (*fnms<mode>4_nmsub4) New.
16800         (*madd4<mode>) Modify to be unfused only.
16801         (*msub4<mode>) Modify to be unfused only.
16802         (*nmadd4<mode>) Modify to be unfused only.
16803         (*nmsub4<mode>) Modify to be unfused only.
16804         (*madd3<mode>) Remove.
16805         (*msub3<mode>) Remove.
16806         (*nmadd3<mode>) Remove.
16807         (*nmsub3<mode>) Remove.
16808         (*nmadd3<mode>_fastmath) Remove.
16809         (*nmsub3<mode>_fastmath) Remove.
16810         (*nmadd4<mode>_fastmath) Update condition.
16811         (*nmsub4<mode>_fastmath) Update condition.
16812
16813 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
16814
16815         PR target/65956
16816         * config/arm/arm.c (arm_needs_doubleword_align): Drop any outer
16817         alignment attribute, exploring one level down for records and arrays.
16818
16819 2015-07-06  Uros Bizjak  <ubizjak@gmail.com>
16820
16821         * config/i386/i386.md (extv<mode>): Rename from extv.  Use SWI24
16822         modes for operands 0 and 1.  Use SImode for operands 2 and 3.
16823         Copy operand 1 to a temporary if !ext_register_operand.  Remove
16824         ancient extract_bit_field workaround.
16825         (*extv<mode>): Rename from *mov<mode>_extv_1.
16826         (*extvqi): Rename from *movqi_extv_1.
16827         (extzv<mode>): Rename from extzv.  Use SWI248 modes for
16828         operands 0 and 1.  Use SImode for operands 2 and 3. Copy operand 1
16829         to a temporary if !ext_register_operand.  Remove ancient
16830         extract_bit_field workaround.
16831         (*extzv<mode>): Rename from *mov<mode>_extzv_1.
16832         (*extzvqi): Rename from *movqi_extzv_2.
16833         (*testqi_ext_3): Remove modes from const_int_operand predicated
16834         operands.  Add "n" constraint.
16835         (*btsq, *btrq, *btcq): Remove mode from const_0_to_63 predicated
16836         operand.  Add "J" constraint.
16837         (*btsq, *btrq, *btcq peephole2s): Remove mode from
16838         const_0_to_63 predicated operand.
16839         (regmode): New insn attribute.
16840         (*bt<mode>): Use SImode for operand 1.  Change operand 1 predicate
16841         to nonmemory_operand.  Use regmode insn attribute.
16842         (*jcc_bt<mode>_1): Convert operand 2 to SImode.
16843         (*jcc_bt<mode>_mask): Remove mode from operand 3.
16844         (*jcc_btsi_1, *jcc_btsi_mask_1): Remove patterns.
16845         (tbm_bextri_<mode>): Remove modes from const_0_to_255 predicated
16846         operands.  Use "N" constraint instead of "n".
16847
16848 2015-07-06  Alan Lawrence  <alan.lawrence@arm.com>
16849
16850         * config/arm/arm.md (movdi): Avoid odd-number ldrd/strd in ARM state.
16851
16852 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
16853
16854         PR target/66749
16855         * config/i386/i386.c (iamcu_cost): New.
16856         (m_IAMCU): Likewise.
16857         (initial_ix86_arch_features): Disable X86_ARCH_CMOV for m_IAMCU.
16858         (processor_target_table): Add an entry for "iamcu".
16859         (processor_alias_table): Likewise.
16860         (ix86_issue_rate): Handle PROCESSOR_IAMCU.
16861         (ix86_adjust_cost): Likewise.
16862         (ia32_multipass_dfa_lookahead): Likewise.
16863         * config/i386/i386.h (processor_type): Add PROCESSOR_IAMCU.
16864         * config/i386/x86-tune.def: Updated for m_IAMCU.
16865
16866 2015-07-06  Richard Biener  <rguenther@suse.de>
16867
16868         PR tree-optimization/66772
16869         * tree-ssa-ccp.c (ccp_visit_phi_node): Make sure that copy
16870         values are available in the PHI node BB when there are
16871         still unexecutable edges.
16872
16873 2015-07-06  Richard Biener  <rguenther@suse.de>
16874
16875         PR tree-optimization/66767
16876         * tree-vect-loop-manip.c (vect_create_cond_for_align_checks):
16877         Make sure to build the alignment test on a SSA name without
16878         final alignment info valid only if the alignment test
16879         evaluates to true.
16880
16881 2015-07-06  Bernd Schmidt  <bernds@codesourcery.com>
16882
16883         PR target/66620
16884         * config/bfin/bfin.c (hwloop_optimize): Create new bb between jump and
16885         loop start when inserting LSETUP.
16886
16887 2015-07-06  H.J. Lu  <hongjiu.lu@intel.com>
16888
16889         PR target/53383
16890         * config/i386/i386.c (ix86_option_override_internal): Allow
16891         -mincoming-stack-boundary=3 for 64-bit if SSE is disabled.
16892
16893 2015-07-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16894
16895         * read-md.c (decimal_string): Rename to ...
16896         (md_decimal_string): ... this.
16897         (handle_enum): Reflect this.
16898
16899 2015-07-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
16900
16901         PR target/66731
16902         * config/aarch64/aarch64.md (fnmul<mode>3): Handle -frounding-math.
16903
16904 2015-07-06  Richard Biener  <rguenther@suse.de>
16905
16906         PR middle-end/66759
16907         * match.pd: Add missing constraint of y to REAL_CST in
16908         REAL_CST - x CMP y to y - CST CMP x simplification.
16909
16910 2015-07-06  Eric Botcazou  <ebotcazou@adacore.com>
16911
16912         PR tree-optimization/66757
16913         * match.pd: Add missing condition to ~X ^ C -> X ^ ~C.
16914
16915 2015-07-05  Chung-Lin Tang  <cltang@codesourcery.com>
16916             Sandra Loosemore <sandra@codesourcery.com>
16917
16918         * config/nios2/nios2-protos.h (nios2_symbol_ref_in_small_data_p):
16919         Delete extern declaration.
16920         (gprel_constant_p): Add extern declaration.
16921         * config/nios2/constraints.md ("S"): Use gprel_constant_p
16922         instead of nios2_symbol_ref_in_small_data_p.
16923         * config/nios2/nios2.c (nios2_legitimate_address_p): Likewise.
16924         (nios2_symbol_ref_in_small_data_p): Make static.
16925         (gprel_constant_p): Make non-static.
16926
16927 2015-07-05  Gerald Pfeifer  <gerald@pfeifer.com>
16928
16929         * doc/fragments.texi (Target Fragment): Convert debian.org
16930         link to use https.
16931         * doc/install.texi (Configuration): Ditto.
16932
16933 2015-07-05  Jakub Jelinek  <jakub@redhat.com>
16934
16935         PR tree-optimization/66718
16936         * tree-vect-stmts.c (vectorizable_call): Replace uses of
16937         GOMP_SIMD_LANE outside of loop with vf - 1 rather than 0.
16938
16939         PR tree-optimization/66718
16940         * tree-vect-stmts.c (vectorizable_assignment, vectorizable_store,
16941         vectorizable_load, vectorizable_condition): Move vectype,
16942         nunits, ncopies computation after checking what kind of statement
16943         stmt is.
16944
16945 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
16946
16947         * target-insns.def (extv, extzv, insv): New targetm instruction
16948         patterns.
16949         * optabs.c (get_extraction_insn): Use them instead of HAVE_*/gen_*
16950         interface.
16951         * recog.c (simplify_while_replacing): Likewise.
16952
16953 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
16954
16955         * target-insns.def (doloop_begin, doloop_end): New targetm
16956         instruction patterns.
16957         * loop-init.c: Include target.h.
16958         (pass_loop2::gate): Use the new targetm patterns instead of
16959         HAVE_*/gen_* interface.
16960         (pass_rtl_doloop::gate): Likewise.
16961         (pass_rtl_doloop::execute): Remove preprocessor condition.
16962         * hw-doloop.c: Build unconditionally.
16963         * loop-doloop.c: Likewise.
16964         (doloop_optimize): Use the new targetm patterns instead of
16965         HAVE_*/gen_* interface.
16966         (doloop_modify): Likewise. Change type of doloop_seq to rtx_insn *.
16967         * modulo-sched.c (doloop_register_get): Likewise.
16968
16969 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
16970
16971         * target-insns.def (clear_cache): New targetm instruction pattern.
16972         * builtins.c (expand_builtin___clear_cache): Use it instead of
16973         HAVE_*/gen_* interface.
16974
16975 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
16976
16977         * target-insns.def (allocate_stack, check_stack, probe_stack)
16978         (probe_stack_address, split_stack_prologue, split_stack_space_check):
16979         New targetm instruction patterns.
16980         * explow.c (allocate_dynamic_stack_space): Use them instead of
16981         HAVE_*/gen_* interface.
16982         (emit_stack_probe): Likewise.
16983         (probe_stack_range): Likewise.
16984         * function.c (thread_prologue_and_epilogue_insns): Likewise.
16985
16986 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
16987
16988         * target-insns.def (stack_protect_set, stack_protect_test): New
16989         targetm instruction patterns.
16990         * cfgexpand.c (stack_protect_prologue): Use them instead of
16991         HAVE_*/gen_* interface.
16992         * function.c (stack_protect_epilogue): Likewise.
16993
16994 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
16995
16996         * expr.h (gen_move_insn_uncast): Delete.
16997         * expr.c (gen_move_insn_uncast): Delete.
16998
16999 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
17000
17001         * target-insns.def (restore_stack_block, restore_stack_function)
17002         (restore_stack_nonlocal, save_stack_block, save_stack_function)
17003         (save_stack_nonlocal): New targetm instruction patterns.
17004         * builtins.c (expand_builtin_apply): Use them instead of
17005         HAVE_*/gen_* interface.
17006         * explow.c (emit_stack_save, emit_stack_restore): Likewise.
17007
17008 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
17009
17010         * target-insns.def (trap): New targetm instruction pattern.
17011         * builtins.c (expand_builtin_trap): Use it instead of HAVE_*/gen_*
17012         interface.
17013         * explow.c (allocate_dynamic_stack_space): Likewise.
17014         * ifcvt.c (find_if_header): Likewise.
17015
17016 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
17017
17018         * target-insns.def (prefetch): New targetm instruction pattern.
17019         * tree-ssa-loop-prefetch.c: Include targeth.
17020         (tree_ssa_prefetch_arrays): Use prefetch targetm pattern instead
17021         of HAVE_*/gen_* interface.
17022         * builtins.c (expand_builtin_prefetch): Likewise.
17023         * toplev.c (process_options): Likewise.
17024
17025 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
17026
17027         * target-insns.def (untyped_call, untyped_return): New targetm
17028         instruction patterns.
17029         * builtins.c (expand_builtin_apply): Use them instead of
17030         HAVE_*/gen_* interface.
17031         (result_vector): Define unconditionally.
17032
17033 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
17034
17035         * target-insns.def (builtin_longjmp, builtin_setjmp_receiver)
17036         (builtin_setjmp_setup, exception_receiver, nonlocal_goto)
17037         (nonlocal_goto_receiver): New targetm instruction patterns.
17038         * builtins.c (expand_builtin_setjmp_setup): Use them instead
17039         of HAVE_*/gen_* interface.
17040         (expand_builtin_setjmp_receiver): Likewise.
17041         (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
17042         * except.c (expand_dw2_landing_pad_for_region): Likewise.
17043
17044 2015-07-05  Richard Sandiford  <richard.sandiford@arm.com>
17045
17046         * target.def: Add code_for_* hooks.
17047         * gentarget-def.c (def_target_insn): Add TARGET_CODE_FOR_* macros.
17048         * defaults.h (HAVE_tablejump, gen_tablejump): Delete.
17049         * target-insns.def (casesi, tablejump): New targetm instruction
17050         patterns.
17051         * expr.c (try_casesi): Use them instead of HAVE_*/gen_* interface.
17052         (do_tablejump): Likewise.
17053         * stmt.c (expand_switch_as_decision_tree_p): Likewise.
17054         (expand_sjlj_dispatch_table): Likewise.
17055         * targhooks.c (default_case_values_threshold): Likewise.
17056
17057 2015-07-04  Sandra Loosemore  <sandra@codesourcery.com>
17058
17059         * config/nios2/nios2.c (save_reg, restore_reg): Use plus_constant.
17060         Use rtx_insn * instead of rtx.
17061         (nios2_emit_add_constant): Use rtx_insn * instead of rtx.
17062         (nios2_expand_prologue, nios2_expand_epilogue): Likewise.
17063         (nios2_call_tls_get_addr): Likewise.
17064         (nios2_emit_expensive_div): Likewise.
17065         (nios2_emit_move_sequence): Change return type to bool.
17066         * config/nios2/nios2-protos.h (nios2_emit_move_sequence):
17067         Change return type to bool.
17068
17069 2015-07-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
17070
17071         PR target/66747
17072         * config/mips/mips.c (mips_find_gp_ref): Handle instruction sequences.
17073
17074 2015-07-04  John David Anglin  <danglin@gcc.gnu.org>
17075
17076         PR target/66114
17077         * config/pa/pa.md (indirect_jump): Use pmode_register_operand instead
17078         of register_operand.  Remove constraint.
17079
17080 2015-07-04  Marc Glisse  <marc.glisse@inria.fr>
17081
17082         * tree-cfg.c (verify_gimple_assign_ternary) <VEC_COND_EXPR>: Check
17083         the first argument.
17084
17085 2015-07-03  Paolo Carlini  <paolo.carlini@oracle.com>
17086
17087         * attribs.c (decl_attributes): Guard inform with the return value
17088         of the preceding warning.
17089
17090 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
17091
17092         * doc/invoke.texi (moverride): Move to correct section.
17093
17094 2015-07-03  Richard Biener  <rguenther@suse.de>
17095
17096         * genmatch.c (commutative_tree_code, commutative_ternary_tree_code):
17097         Copy from tree.c
17098         (dt_operand::gen_gimple_expr): After valueizing operands
17099         re-canonicalize operand order for commutative tree codes.
17100
17101 2015-07-03  H.J. Lu  <hongjiu.lu@intel.com>
17102
17103         PR target/66746.
17104         * config/i386/ia32intrin.h (__crc32b): Don't define if __iamcu__
17105         is defined.
17106         (__crc32w): Likewise.
17107         (__crc32d): Likewise.
17108         (__rdpmc): Likewise.
17109         (__rdtscp): Likewise.
17110         (_rdpmc): Likewise.
17111         (_rdtscp): Likewise.
17112         * config/i386/x86intrin.h: Only include ia32intrin.h if __iamcu__
17113         is defined.
17114
17115 2015-07-03  Richard Biener  <rguenther@suse.de>
17116
17117         * fold-const.c (fold_mathfn_compare): Remove.
17118         (fold_inf_compare): Likewise.
17119         (fold_comparison): Move floating point comparison simplifications...
17120         * match.pd: ... to patterns here.  Introduce simple_comparisons
17121         operator list and use it for patterns formerly in fold_comparison.
17122
17123 2015-07-03  James Greenhalgh  <james.greenhalgh@arm.com>
17124
17125         PR tree-optimization/66119
17126         * toplev.c (process_options): Don't set up default values for
17127         the sra_max_scalarization_size_{speed,size} parameters.
17128         * tree-sra (analyze_all_variable_accesses): If no values
17129         have been set for the sra_max_scalarization_size_{speed,size}
17130         parameters, call get_move_ratio to get target defaults.
17131
17132 2015-07-03  Richard Biener  <rguenther@suse.de>
17133
17134         * fold-const.c (fold_binary_loc): Move (T)ptr & CST folding...
17135         * match.pd: ... here.
17136
17137 2015-07-03  Gerald Pfeifer  <gerald@pfeifer.com>
17138
17139         PR target/37072
17140         * doc/invoke.texi (i386 and x86-64 Options): -mno-fancy-math-387
17141         is not actually the default on FreeBSD.
17142
17143 2015-07-02  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
17144
17145         * config/rs6000/rs6000-builtin.def (CMPGE_16QI): New built-in
17146         definition.
17147         (CMPGE_8HI): Likewise.
17148         (CMPGE_4SI): Likewise.
17149         (CMPGE_2DI): Likewise.
17150         (CMPGE_U16QI): Likewise.
17151         (CMPGE_U8HI): Likewise.
17152         (CMPGE_U4SI): Likewise.
17153         (CMPGE_U2DI): Likewise.
17154         (CMPLE_16QI): Likewise.
17155         (CMPLE_8HI): Likewise.
17156         (CMPLE_4SI): Likewise.
17157         (CMPLE_2DI): Likewise.
17158         (CMPLE_U16QI): Likewise.
17159         (CMPLE_U8HI): Likewise.
17160         (CMPLE_U4SI): Likewise.
17161         (CMPLE_U2DI): Likewise.
17162         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
17163         overloads for ALTIVEC_BUILTIN_VEC_CMPGE and
17164         ALTIVEC_BUILTIN_VEC_CMPLE.
17165         * config/rs6000/vector.md (vector_ge<mode>): Restrict to
17166         floating-point vector modes.
17167         (vector_nlt<mode>): New define_expand.
17168         (vector_nltu<mode>): Likewise.
17169         (vector_ngt<mode>): Likewise.
17170         (vector_ngtu<mode>): Likewise.
17171
17172 2015-07-02  Segher Boessenkool  <segher@kernel.crashing.org>
17173
17174         PR rtl-optimization/66706
17175         * combine.c (make_compound_operation): If an AND of SUBREG of
17176         LSHIFTRT does not simplify, see if just the AND of SUBREG does.
17177
17178 2015-07-02  Alan Lawrence  <alan.lawrence@arm.com>
17179
17180         * tree-pass.h (make_pass_ch_vect): New.
17181         * passes.def: Add pass_ch_vect just before pass_if_conversion.
17182
17183         * tree-ssa-loop-ch.c (ch_base, pass_ch_vect, pass_data_ch_vect,
17184         pass_ch::process_loop_p, pass_ch_vect::process_loop_p,
17185         make_pass_ch_vect): New.
17186         (pass_ch): Extend ch_base.
17187
17188         (pass_ch::execute): Move all but loop_optimizer_init/finalize to...
17189         (ch_base::copy_headers): ...here.
17190
17191 2015-07-02  Richard Biener  <rguenther@suse.de>
17192
17193         * builtins.c (get_pointer_alignment_1): Handle POINTER_PLUS_EXPR.
17194         * fold-const.c (get_pointer_modulus_and_residue): Remove.
17195         (fold_binary_loc): Implement (T)ptr & CST in terms of
17196         get_pointer_alignment_1.
17197         * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
17198         Make sure to build the alignment test on a SSA name without
17199         final alignment info valid only after the prologue.
17200
17201 2015-07-02  Hans-Peter Nilsson  <hp@axis.com>
17202
17203         * config/cris/cris.md ("epilogue"): Remove condition.
17204         ("prologue"): Ditto.
17205
17206 2015-07-02  Richard Biener  <rguenther@suse.de>
17207
17208         * tree-ssa-dom.c (build_and_record_new_cond): Add optional
17209         parameter to record a condition that is false.
17210         (record_conditions): When recording an extra NE_EXPR that is
17211         true also record a EQ_EXPR that is false.
17212
17213 2015-07-02  Bin Cheng  <bin.cheng@arm.com>
17214
17215         * tree-ssa-loop-ivopts.c (struct ivopts_data): New field iv_obstack.
17216         (tree_ssa_iv_optimize_init): Initialize iv_obstack.
17217         (alloc_iv): New parameter.  Allocate struct iv using obstack_alloc.
17218         (set_iv, find_interesting_uses_address, add_candidate_1): New
17219         argument to alloc_iv.
17220         (find_interesting_uses_op, find_interesting_uses_cond): Don't
17221         duplicate struct iv.
17222         (free_loop_data): Don't free struct iv explicitly.
17223         (tree_ssa_iv_optimize_finalize): Free iv_obstack.
17224
17225 2015-07-01  DJ Delorie  <dj@redhat.com>
17226
17227         * config/s390/tpf.h (LIBSTDCXX): Change to CPP1.
17228         (LIB_SPEC): Add.
17229         (SUPPORTS_DISCRIMINATOR): Define.
17230
17231 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
17232
17233         PR bootstrap/66685
17234         * rtl.c (classify_insn): Only return JUMP_INSN for parallel returns if
17235         there are no CALLs in the same pattern.
17236
17237 2015-07-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
17238
17239         PR rtl-optimization/61047
17240         * rtlanal.c (get_initial_register_offset): New function.
17241         (rtx_addr_can_trap_p_1): Check offsets of stack references.
17242
17243 2015-07-01  Richard Biener  <rguenther@suse.de>
17244
17245         * fold-const.c (fold_comparison): Move X - Y CMP 0 -> X CMP Y,
17246         X * C1 CMP 0 -> X CMP 0, X CMP X, ~X CMP ~Y -> Y CMP X and
17247         ~X CMP C -> X CMP' ~C to ...
17248         * match.pd: ... patterns here.
17249
17250 2015-07-01  Nick Clifton  <nickc@redhat.com>
17251
17252         * config/msp430/msp430.md (zero_extendhipsi2): Use MOVX.A to store
17253         a 16-bit value into a 20-bit memory slot.
17254
17255 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
17256
17257         * doc/sourcebuild.texi (AArch64-specific attributes): Document
17258         "aarch64_tiny", "aarch64_small", "aarch64_large",
17259         "aarch64_little_endian", "aarch64_big_endian".
17260
17261 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
17262
17263         * doc/sourcebuild.texi (AArch64-specific attributes): New subsection.
17264         Document "aarch64_small_fpic".
17265
17266 2015-07-01  Jiong Wang  <jiong.wang@arm.com>
17267
17268         * configure.ac: Add check for aarch64 assembler -fpic relocation
17269         modifier support.
17270         * configure: Regenerate.
17271         * config.in: Regenerate.
17272         * config/aarch64/aarch64.c (initialize_aarch64_code_model): Fall back
17273         to -fPIC if not support of -fpic relocation modifier in assembler.
17274
17275 2015-07-01  Richard Sandiford  <richard.sandiford@arm.com>
17276
17277         PR bootstrap/66685
17278         * rtl.c (classify_insn): Handle returns in PARALLELs.
17279
17280 2015-07-01  Eric Botcazou  <ebotcazou@adacore.com>
17281
17282         PR middle-end/66633
17283         * tree-nested.c (convert_nonlocal_omp_clauses): Initialize need_chain
17284         to true if the function is nested and if not optimizing.
17285         (convert_local_omp_clauses): Initialize need_frame to true if the
17286         function contains nested functions and if not optimizing.
17287
17288 2015-07-01  Richard Biener  <rguenther@suse.de>
17289
17290         * fold-const.c (fold_binary_loc): Move ~X ^ X -> -1 and
17291         (X & Y) ^ Y -> ~X & Y transforms to ...
17292         * match.pd: ... here.
17293
17294 2015-07-01  Richard Biener <rguenther@suse.de>
17295
17296         * genmatch.c (expr::gen_transform): Shortcut re-simplifying
17297         of converts to avoid uninteresting noise from the conversion
17298         simplifying patterns.
17299
17300 2015-06-30  Sandra Loosemore <sandra@codesourcery.com>
17301
17302         * config/c6x/c6x.c (try_rename_operands): Do not depend on
17303         gcc_assert evaluating its argument for side-effect.
17304
17305 2015-06-30  Kaz Kojima  <kkojima@gcc.gnu.org>
17306
17307         PR target/64833
17308         * config/sh/sh.md (casesi_worker_1): Set length to 8 when
17309         flag_pic is set.
17310
17311 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
17312
17313         * lto-streamer-out.c (class DFS): Adjust hash_scc method.
17314         (DFS::DFS): Pass this_ref_p and ref_p to hash_scc.
17315         (hash_scc): Add this_ref_p and ref_p parameters and pass them
17316         to the inner DFS walk.
17317
17318 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
17319
17320         * target-insns.def (jump): New targetm instruction pattern.
17321         * bb-reorder.c (get_uncond_jump_length): Use targetm.gen_jump
17322         instead of gen_jump.
17323         (fix_up_crossing_landing_pad): Likewise.
17324         (add_labels_and_missing_jumps): Likewise.
17325         (fix_crossing_conditional_branches): Likewise.
17326         * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
17327         (force_nonfallthru_and_redirect): Likewise.
17328         * cse.c (cse_insn): Likewise.
17329         * expmed.c (expand_divmod): Likewise.
17330         * expr.c (store_expr_with_bounds, expand_expr_real_2): Likewise.
17331         * haifa-sched.c (init_before_recovery): Likewise.
17332         (sched_create_recovery_edges): Likewise.
17333         * ifcvt.c (find_cond_trap): Likewise.
17334         * optabs.c (expand_doubleword_shift, expand_doubleword_clz): Likewise.
17335         (expand_float, expand_fix): Likewise.
17336         * stmt.c (emit_jump): Likewise.
17337
17338 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
17339
17340         * defaults.h (HAVE_load_multiple, gen_load_multiple)
17341         (HAVE_store_multiple, gen_store_multiple): Delete.
17342         * target-insns.def (load_multiple, store_multiple): New targetm
17343         instruction patterns.
17344         * expr.c (move_block_to_reg, move_block_from_reg): Use them instead
17345         of HAVE_*/gen_* interface.
17346
17347 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
17348
17349         * defaults.h (HAVE_mem_thread_fence, gen_mem_thread_fence)
17350         (HAVE_memory_barrier, gen_memory_barrier, HAVE_mem_signal_fence)
17351         (gen_mem_signal_fence): Delete.
17352         * target-insns.def (mem_signal_fence, mem_thread_fence)
17353         (memory_barrier): New targetm instruction patterns.
17354         * optabs.c (expand_mem_thread_fence): Use them instead of HAVE_*/gen_*
17355         interface.
17356         (expand_mem_signal_fence): Likewise.
17357
17358 2015-06-30  Richard Sandiford  <richard.sandiford@arm.com>
17359
17360         * defaults.h (HAVE_epilogue, gen_epilogue): Delete.
17361         * target-insns.def (epilogue, prologue, sibcall_prologue): New
17362         targetm instruction patterns.
17363         * alias.c (init_alias_analysis): Use them instead of HAVE_*/gen_*
17364         interface.
17365         * calls.c (expand_call): Likewise.
17366         * cfgrtl.c (cfg_layout_finalize): Likewise.
17367         * df-scan.c (df_get_entry_block_def_set): Likewise.
17368         (df_get_exit_block_use_set): Likewise.
17369         * dwarf2cfi.c (pass_dwarf2_frame::gate): Likewise.
17370         * final.c (final_start_function): Likewise.
17371         * function.c (thread_prologue_and_epilogue_insns): Likewise.
17372         (reposition_prologue_and_epilogue_notes): Likewise.
17373         * reorg.c (find_end_label): Likewise.
17374         * toplev.c (process_options): Likewise.
17375
17376 2015-06-30  David Malcolm  <dmalcolm@redhat.com>
17377
17378         * typed-splay-tree.h: New file.
17379
17380 2015-06-30  Vladimir Makarov  <vmakarov@redhat.com>
17381
17382         PR debug/66691
17383         * lra-int.h (lra_substitute_pseudo): Add a parameter.
17384         (lra_substitute_pseudo_within_insn): Ditto.
17385         * lra.c (lra_substitute_pseudo): Add a parameter.  Simplify subreg
17386         of constant.
17387         (lra_substitute_pseudo_within_insn): Add a parameter.  Transfer it
17388         to lra_substitute_pseudo.
17389         * lra-lives.c (process_bb_lives): Add an argument to
17390         lra_substitute_pseudo_within_insn call.
17391         * lra-constraints.c (inherit_reload_reg, split_reg): Add an
17392         argument to lra_substitute_pseudo and
17393         lra_substitute_pseudo_within_insn calls.
17394         (remove_inheritance_pseudos, undo_optional_reloads): Ditto.
17395
17396 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
17397
17398         * configure: Regenerated.
17399
17400 2015-06-30  H.J. Lu  <hongjiu.lu@intel.com>
17401
17402         * config.gcc: Support i[34567]86-*-elfiamcu target.
17403         * config/i386/iamcu.h: New.
17404         * config/i386/i386.opt: Add -miamcu.
17405         * doc/invoke.texi: Document -miamcu.
17406         * common/config/i386/i386-common.c  (ix86_handle_option): Turn
17407         off x87/MMX/SSE/AVX codegen for -miamcu.
17408         * config/i386/i386-c.c (ix86_target_macros_internal): Define
17409         __iamcu/__iamcu__ for -miamcu.
17410         * config/i386/i386.h (PREFERRED_STACK_BOUNDARY_DEFAULT): Set
17411         to MIN_STACK_BOUNDARY if TARGET_IAMCU is true.
17412         (BIGGEST_ALIGNMENT): Set to 32 if TARGET_IAMCU is true.
17413         * config/i386/i386.c (ix86_option_override_internal): Ignore and
17414         warn -mregparm for Intel MCU.  Turn on -mregparm=3 for Intel
17415         MCU by default.  Default long double to 64-bit for Intel MCU.
17416         Turn on -freg-struct-return for Intel MCU.  Issue an error when
17417         -miamcu is used in 64-bit or x32 mode or if x87, MMX, SSE or
17418         AVX is turned on.
17419         (function_arg_advance_32): Pass value whose size is no larger
17420         than 8 bytes in registers for Intel MCU.
17421         (function_arg_32): Likewise.
17422         (ix86_return_in_memory): Return value whose size is no larger
17423         than 8 bytes in registers for Intel MCU.
17424         (iamcu_alignment): New function.
17425         (ix86_data_alignment): Call iamcu_alignment if TARGET_IAMCU is
17426         true.
17427         (ix86_local_alignment): Don't increase alignment for Intel MCU.
17428         (x86_field_alignment): Return iamcu_alignment if TARGET_IAMCU is
17429         true.
17430
17431 2015-06-30  Marek Polacek  <polacek@redhat.com>
17432
17433         * match.pd (X - (X / Y) * Y): Use convert1 and convert2.  Convert
17434         both operands of the resulting expression.
17435
17436         * match.pd (~x | x): Don't use tree_nop_conversion_p.  Build
17437         the final expression with the operand's type and then convert
17438         it to the type of the expression.
17439
17440 2015-06-30  Richard Biener  <rguenther@suse.de>
17441
17442         * fold-const.c (fold_binary_loc): Move ~x & ~y -> ~(x | y) and
17443         ~x | ~y -> ~(x & y), (x & CST) ^ (x & CST2) -> (x & CST) | (x & CST2),
17444         (X | Y) ^ X -> Y & ~ X, ~X ^ ~Y to X ^ Y and ~X ^ C to X ^ ~C ...
17445         * match.pd: ... to patterns here.
17446
17447 2015-06-30  Richard Biener  <rguenther@suse.de>
17448
17449         PR tree-optimization/66704
17450         * tree-vect-data-refs.c (vect_setup_realignment): Use
17451         make_ssa_name for non-SSA name source.
17452
17453 2015-06-30  Jakub Jelinek  <jakub@redhat.com>
17454
17455         PR middle-end/66702
17456         * omp-low.c (simd_clone_adjust): Handle addressable linear
17457         or uniform parameters or non-gimple type uniform parameters.
17458
17459 2015-06-30  Richard Biener  <rguenther@suse.de>
17460
17461         * fold-const.c (fold_unary_loc): Move abs(abs(x)) -> abs(x),
17462         ~ (-A) to A - 1, ~ (A - 1) or ~ (A + -1) to -A and some cases of
17463         ~(X ^ Y) to ~X ^ Y or X ^ ~Y if ~X or ~Y simplify to ...
17464         * match.pd: ... here.
17465         Add a few cases of A - B -> A + (-B) when B "easily" negates.
17466         Move (x & y) | x -> x and friends before
17467         (x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2).
17468
17469 2015-06-30  Eric Botcazou  <ebotcazou@adacore.com>
17470
17471         * config/sparc/leon.md (leon_load): Enable for all LEON variants if
17472         -mfix-ut699 is not specified.
17473         (leon3_load): Rename into...
17474         (ut699_load): ...this.  Enable for all LEON variants if -mfix-ut699
17475         is specified.
17476
17477 2015-06-30  Marek Polacek  <polacek@redhat.com>
17478
17479         * fold-const.c (fold_binary_loc): Move ~X | X folding ...
17480         * match.pd: ... here.
17481
17482 2015-06-30  Richard Biener  <rguenther@suse.de>
17483
17484         * target-insns.def (canonicalize_funcptr_for_compare): Add.
17485         * fold-const.c (build_range_check): Replace uses of
17486         HAVE_canonicalize_funcptr_for_compare.
17487         (fold_widened_comparison): Likewise.
17488         (fold_sign_changed_comparison): Likewise.
17489         * dojump.c: Include "target.h".
17490         (do_compare_and_jump): Replace uses of
17491         HAVE_canonicalize_funcptr_for_compare and
17492         gen_canonicalize_funcptr_for_compare.
17493         * expr.c (do_store_flag): Likewise.
17494
17495 2015-06-30  Tom de Vries  <tom@codesourcery.com>
17496
17497         PR tree-optimization/66652
17498         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
17499         max_loop_iterations to determine if nit + 1 overflows.
17500
17501 2015-06-30  Richard Biener  <rguenther@suse.de>
17502
17503         * tree-vrp.c (register_edge_assert_for_2): Also register
17504         asserts for dominating conversion results.
17505
17506 2015-06-30  Bin Cheng  <bin.cheng@arm.com>
17507
17508         * tree-ssa-loop-ivopts.c (record_sub_use): Don't reset ssa_name
17509         field in struct iv.
17510
17511 2015-06-29  Jack Howarth  <howarth.at.gcc@gmail.com>
17512
17513         PR target/66509
17514         * configure.ac: Fix filds and fildq test for 64-bit.
17515         * configure: Regenerated.
17516
17517 2015-06-29  Nathan Sidwell  <nathan@codesourcery.com>
17518
17519         * config/nvptx/nvptx.md (nvptx_reorg_subreg): New fn, broken out of ...
17520         (nvptx_reorg): Here.  Keep the non-subreg pieces.
17521
17522 2015-06-29  H.J. Lu  <hongjiu.lu@intel.com>
17523
17524         * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Use
17525         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
17526
17527 2015-06-29  Uros Bizjak  <ubizjak@gmail.com>
17528
17529         * config/i386/i386.md (*jcc_1): Use %! in asm template.
17530         Set attribute "length_nobnd" instead of "length".
17531         (*jcc_2): Ditto.
17532         (jump): Ditto.
17533         (*jcc_1_bnd, *jcc_2_bnd, jump_bnd): Remove insn patterns.
17534
17535 2015-06-29  Sandra Loosemore  <sandra@codesourcery.com>
17536
17537         * config/nios2/nios2.c (nios2_delegitimize_address): Make
17538         assert less restrictive.
17539
17540 2015-06-29  Manuel López-Ibáñez  <manu@gcc.gnu.org>
17541
17542         PR fortran/66605
17543         * cgraphunit.c (cgraph_node::finalize_function): Do not call
17544         do_warn_unused_parameter.
17545         * function.c (do_warn_unused_parameter): Move from here.
17546         * function.h (do_warn_unused_parameter): Do not declare.
17547
17548 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
17549
17550         PR target/65697
17551         * gcc.target/arm/armv-sync-comp-swap.c: New.
17552         * gcc.target/arm/armv-sync-op-acquire.c: New.
17553         * gcc.target/arm/armv-sync-op-full.c: New.
17554         * gcc.target/arm/armv-sync-op-release.c: New.
17555
17556 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
17557
17558         PR target/65697
17559         * config/armc/arm.c (arm_split_compare_and_swap): For ARMv8, replace an
17560         initial acquire barrier with final barrier.
17561
17562 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
17563
17564         PR target/65697
17565         * config/armc/arm.c (arm_split_atomic_op): For ARMv8, replace an
17566         initial acquire barrier with final barrier.
17567
17568 2015-06-29  Richard Henderson  <rth@redhat.com>
17569
17570         * config/i386/constraints.md (Bf): New constraint.
17571         * config/i386/i386-c.c (ix86_target_macros): Define
17572         __GCC_ASM_FLAG_OUTPUTS__.
17573         * config/i386/i386.c (ix86_md_asm_adjust): Handle =@cc* constraints
17574         as flags outputs.
17575         * doc/extend.texi (FlagOutputOperands): Document them.
17576
17577 2015-06-29  Jiong Wang  <jiong.wang@arm.com>
17578
17579         * config/arch64/aarch64.md (UNSPEC_TLSLE): New enumeration.
17580         * config/arch64/aarch64.md (tlsle_small): Rename to tlsle and use new
17581         unspec name.
17582         (tlsle_small_<mode>): Rename to tlsle_<mode> and use new unspec name.
17583         * config/arch64/aarch64-protos.h (arch64_symbol_type): Rename
17584         SYMBOL_SMALL_TPREL to SYMBOL_TLSLE.
17585         (aarch64_symbol_context): Ditto.
17586         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto
17587         and use new pattern name.
17588         (aarch64_expand_mov_immediate): Ditto.
17589         (aarch64_print_operand): Ditto.
17590         (aarch64_classify_tls_symbol): Ditto.
17591
17592 2015-06-29  Marek Polacek  <polacek@redhat.com>
17593             Marc Glisse  <marc.glisse@inria.fr>
17594
17595         * fold-const.c (fold_binary_loc): Move X - (X / Y) * Y -> X % Y to ...
17596         * match.pd: ... pattern here.
17597
17598 2015-06-29  Tom de Vries  <tom@codesourcery.com>
17599
17600         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Simplify
17601         function structure.
17602
17603 2015-06-29  Matthew Wahab  <matthew.wahab@arm.com>
17604
17605         * doc/invoke.texi (Aarch64 Options, -march): Split out arch and
17606         feature description, split out the native option, add a link to
17607         the feature documentation, rearrange and slightly rewrite text.
17608         (Aarch64 options, -mcpu): Likewise.
17609         (Aarch64 options, Feature Modifiers): Add an anchor.  Mention
17610         +rdma implies Adv. SIMD.
17611
17612 2015-06-29  Marek Polacek  <polacek@redhat.com>
17613
17614         PR c/66322
17615         * function.c (stack_protect_epilogue): Remove a cast to int.
17616         * doc/invoke.texi: Update -Wswitch-bool description.
17617
17618 2015-06-29  Richard Biener  <rguenther@suse.de>
17619
17620         * genmatch.c (add_operator): Treat ADDR_EXPR as atom.
17621         * fold-const.c (fold_binary_loc): Move &A - &B simplification
17622         via ptr_difference_const ...
17623         * match.pd: ... here.
17624         When matching (X ^ Y) == Y also match with swapped operands.
17625
17626 2015-06-29  Richard Biener  <rguenther@suse.de>
17627
17628         * lto-streamer.h (LTO_major_version): Bump to 5.
17629
17630 2015-06-29  Richard Biener  <rguenther@suse.de>
17631
17632         PR tree-optimization/66677
17633         * tree-vect-stmts.c (vect_transform_stmt): Make assert about
17634         STMT_VINFO_VEC_STMT clobbering less strict.
17635
17636 2015-06-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
17637
17638         PR middle-end/64130
17639         * tree-vrp.c (extract_range_from_binary_expr_1): For unsigned
17640         division, compute max and min when value ranges for dividend and
17641         divisor are available.
17642
17643 2015-06-28  Chung-Lin Tang <cltang@codesourcery.com>
17644             Sandra Loosemore <sandra@codesourcery.com>
17645
17646         * regrename.h (regrename_do_replace): Change to return bool.
17647         * regrename.c (rename_chains): Check return value of
17648         regname_do_replace.
17649         (regrename_do_replace): Re-validate the modified insns and
17650         return bool status.
17651         * config/aarch64/cortex-a57-fma-steering.c (rename_single_chain):
17652         Update to match rename_chains changes.
17653         * config/c6x/c6x.c (try_rename_operands): Assert that
17654         regrename_do_replace returns true.
17655
17656 2015-06-28  Uros Bizjak  <ubizjak@gmail.com>
17657
17658         * config/i386/i386.md (<mode>_ldx): Do not zero-extend non-Pmode
17659         operand 2 here.  Use copy_addr_to_reg to copy non-index
17660         register operand 2 to a temporary.
17661         (<mode>_stx): Ditto for operand 1.
17662         (*<mode>_ldx, *<mode>_stx): Remove enclosing parallel.
17663         * config/i386/i386.c (ix86_load_bounds): Zero-extend non-Pmode ptr here.
17664         (ix86_store_bounds): Ditto.
17665
17666 2015-06-27  Patrick Palka  <ppalka@gcc.gnu.org>
17667
17668         * print-tree.c (print_node) [TREE_VEC]: Print its length.
17669
17670 2015-06-26  Andrew MacLeod  <amacleod@redhat.com>
17671
17672         * gimple.c (gimple_call_set_fndecl): Remove.
17673         * gimple.h (gimple_call_set_fndecl): Relocate to gimple.h and call
17674         build1_loc directly instead of build_fold_addr_expr_loc.
17675
17676 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
17677
17678         * hash-map.h (hash_map::traverse): Use the definition of the
17679         Key typedef rather than the typedef itself.
17680
17681 2015-06-26  Martin Jambor  <mjambor@suse.cz>
17682
17683         PR debug/66301
17684         * tree-ssa-pre.c (before_dom_children): Check that dump_file is not
17685         NULL instead of calling dump_enabled_p.
17686
17687 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
17688
17689         * config/aarch64/aarch64.opt: (override): New.
17690         * doc/invoke.texi (override): Document.
17691         * config/aarch64/aarch64.c (aarch64_flag_desc): New
17692         (aarch64_fusible_pairs): Likewise.
17693         (aarch64_tuning_flags): Likewise.
17694         (aarch64_tuning_override_function): Likewise.
17695         (aarch64_tuning_override_functions): Likewise.
17696         (aarch64_parse_one_option_token): Likewise.
17697         (aarch64_parse_boolean_options): Likewise.
17698         (aarch64_parse_fuse_string): Likewise.
17699         (aarch64_parse_tune_string): Likewise.
17700         (aarch64_parse_one_override_token): Likewise.
17701         (aarch64_parse_override_string): Likewise.
17702         (aarch64_override_options): Parse the -override string if it
17703         is present.
17704
17705 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
17706
17707         * config/aarch64/aarch64-protos.h (tune_params): Remove
17708         const from members.
17709         (aarch64_tune_params): Remove const, change to no longer be
17710         a pointer.
17711         * config/aarch64/aarch64.c (aarch64_tune_params): Remove const,
17712         change to no longer be a pointer, initialize to generic_tunings.
17713         (aarch64_min_divisions_for_recip_mul): Change dereference of
17714         aarch64_tune_params to member access.
17715         (aarch64_reassociation_width): Likewise.
17716         (aarch64_rtx_mult_cost): Likewise.
17717         (aarch64_address_cost): Likewise.
17718         (aarch64_branch_cost): Likewise.
17719         (aarch64_rtx_costs): Likewise.
17720         (aarch64_register_move_cost): Likewise.
17721         (aarch64_memory_move_cost): Likewise.
17722         (aarch64_sched_issue_rate): Likewise.
17723         (aarch64_builtin_vectorization_cost): Likewise.
17724         (aarch64_override_options): Take a copy of the selected tuning
17725         struct in to aarch64_tune_params, rather than just setting
17726         a pointer, change dereferences of aarch64_tune_params to member
17727         accesses.
17728         (aarch64_override_options_after_change): Change dereferences of
17729         aarch64_tune_params to member access.
17730         (aarch64_macro_fusion_p): Likewise.
17731         (aarch_macro_fusion_pair_p): Likewise.
17732         * config/aarch64/cortex-a57-fma-steering.c (gate): Likewise.
17733
17734 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
17735
17736         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Delete.
17737         (aarch64_tune_flags): Likewise.
17738         (AARCH64_TUNE_FMA_STEERING): Likewise.
17739         * config/aarch64/aarch64-cores.def (cortex-a57): Remove reference
17740         to AARCH64_FL_USE_FMA_STEERING_PASS.
17741         (cortex-a57.cortex-a53): Likewise.
17742         (cortex-a72): Use cortexa72_tunings.
17743         (cortex-a72.cortex-a53): Likewise.
17744         (exynos-m1): Likewise.
17745         * config/aarch64/aarch64-protos.h (tune_params): Add
17746         a field: extra_tuning_flags.
17747         * config/aarch64/aarch64-tuning-flags.def: New.
17748         * config/aarch64/aarch64-protos.h (AARCH64_EXTRA_TUNING_OPTION): New.
17749         (aarch64_extra_tuning_flags): Likewise.
17750         (aarch64_tune_params): Declare here.
17751         * config/aarch64/aarch64.c (generic_tunings): Set extra_tuning_flags.
17752         (cortexa53_tunings): Likewise.
17753         (cortexa57_tunings): Likewise.
17754         (thunderx_tunings): Likewise.
17755         (xgene1_tunings): Likewise.
17756         (cortexa72_tunings): New.
17757         * config/aarch64/cortex-a57-fma-steering.c: Include aarch64-protos.h.
17758          (gate): Check against aarch64_tune_params.
17759         * config/aarch64/t-aarch64 (cortex-a57-fma-steering.o): Depend on
17760         aarch64-protos.h.
17761
17762 2015-06-26  James Greenhalgh  <james.greenhalgh@arm.com>
17763
17764         * config/aarch64/aarch64-fusion-pairs.def: New.
17765         * config/aarch64/aarch64-protos.h (aarch64_fusion_pairs): New.
17766         * config/aarch64/aarch64.c (AARCH64_FUSE_NOTHING): Move to
17767         aarch64_fusion_pairs.
17768         (AARCH64_FUSE_MOV_MOVK): Likewise.
17769         (AARCH64_FUSE_ADRP_ADD): Likewise.
17770         (AARCH64_FUSE_MOVK_MOVK): Likewise.
17771         (AARCH64_FUSE_ADRP_LDR): Likewise.
17772         (AARCH64_FUSE_CMP_BRANCH): Likewise.
17773
17774 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
17775
17776         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): New type
17777         SYMBOL_SMALL_GOT_28K.
17778         * config/aarch64/aarch64.md: (ldr_got_small_<mode>): Support new GOT
17779         relocation modifiers.
17780         (unspec): New enum "UNSPEC_GOTMALLPIC28K.
17781         (ldr_got_small_28k_<mode>): New.
17782         (ldr_got_small_28k_sidi): New.
17783         * config/aarch64/iterators.md (got_modifier): New mode iterator.
17784         * config/aarch64/aarch64-otps.h (aarch64_code_model): New model.
17785         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
17786         SYMBOL_SMALL_GOT_28K.
17787         (aarch64_rtx_costs): Add costs for new instruction sequences.
17788         (initialize_aarch64_code_model): Initialize new model.
17789         (aarch64_classify_symbol): Recognize new model and new symbol classification.
17790         (aarch64_asm_preferred_eh_data_format): Support new model.
17791         (aarch64_load_symref_appropriately): Generate new instruction
17792         sequences for -fpic.
17793         (TARGET_USE_PSEUDO_PIC_REG): New definition.
17794         (aarch64_use_pseudo_pic_reg): New function.
17795
17796 2015-06-26  Jiong Wang  <jiong.wang@arm.com>
17797
17798         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
17799         SYMBOL_SMALL_GOT to SYMBOL_SMALL_GOT_4G.
17800         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto.
17801         (aarch64_expand_mov_immediate): Ditto.
17802         (aarch64_print_operand): Ditto.
17803         (aarch64_classify_symbol): Ditto.
17804
17805 2015-06-26  Nathan Sidwell  <nathan@codesourcery.com>
17806
17807         * config/nvptx/nvptx.md (call_operation): Remove unused variables.
17808
17809 2015-06-26  Bin Cheng  <bin.cheng@arm.com>
17810
17811         PR bootstrap/66638
17812         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Skip if
17813         assertion failed.  Remove assertion itself.
17814
17815 2015-06-26  Richard Biener  <rguenther@suse.de>
17816
17817         * fold-const.c (fold_binary_loc): Remove -A CMP -B -> A CMP B
17818         and -A CMP CST -> A CMP -CST which is redundant with a pattern
17819         in match.pd.
17820         Move (A | C) == D where C & ~D != 0 -> 0, (X ^ Y) ==/!= 0 -> X ==/!= Y,
17821         (X ^ Y) ==/!= {Y,X} -> {X,Y} ==/!= 0 and
17822         (X ^ C1) op C2 -> X op (C1 ^ C2) to ...
17823         * match.pd: ... patterns here.
17824
17825 2015-06-26  Marek Polacek  <polacek@redhat.com>
17826
17827         * match.pd ((x | y) & ~(x & y) -> x ^ y,
17828         (x | y) & (~x ^ y) -> x & y): New patterns.
17829
17830 2015-06-26  Richard Sandiford  <richard.sandiford@arm.com>
17831
17832         * rtl.h (emit): Add an optional boolean parameter to control
17833         whether barriers are emitted.
17834         * emit-rtl.c (emit): Likewise.
17835         * gensupport.c (get_emit_function): Return null rather than "emit".
17836         * genemit.c (gen_emit_seq): Handle the null return value.
17837         Don't emit barriers after the final instruction in the sequence.
17838         * gentarget-def.c (main): Don't emit barriers after the instruction.
17839
17840 2015-06-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
17841
17842         * config/arm/arm.c (arm_output_multireg_pop): Fix use of
17843         TARGET_UNIFIED_ASM.
17844
17845 2015-06-26  Richard Biener  <rguenther@suse.de>
17846
17847         * match.pd: Allow associating FLOAT_TYPE_P when flag_associative_math.
17848
17849 2015-06-26  Richard Biener  <rguenther@suse.de>
17850
17851         * match.pd: Allow (p +p off1) +p off2 to (p +p (off1 + off2))
17852         irrespective on whether the inner operation has a single use
17853         of both off are constant.
17854
17855 2015-06-26  Uros Bizjak  <ubizjak@gmail.com>
17856             Segher Boessenkool  <segher@kernel.crashing.org>
17857
17858         PR target/66412
17859         * config/i386/i386.md (various splitters): Use shallow_copy_rtx
17860         before doing PUT_MODE or PUT_CODE on operands to avoid
17861         in-place RTX modification.
17862
17863 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
17864
17865         * gentarget-def.c (def_target_insn): Cast return of strtol to
17866         unsigned int.
17867
17868 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
17869
17870         * gimple.h (gimple_call_set_fn): Move inline function.
17871         * gimple.c (gimple_call_set_fn): Relocate here.
17872
17873 2015-06-25  Oleg Endo  <olegendo@gcc.gnu.org>
17874
17875         PR target/65979
17876         PR target/66611
17877         * config/sh/sh.md (tstsi_t peephole2): Use insn_invalid_p to check if
17878         the replacement insn will work.
17879
17880 2015-06-25  H.J. Lu  <hongjiu.lu@intel.com>
17881
17882         * gcc.c (driver_handle_option): Validate -pie if PIE is enabled
17883         by default.
17884
17885 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
17886
17887         * function.h (ipa_opt_pass, ipa_opt_pass_d): Move forward declarations.
17888         * cgraph.h: Include ipa-ref.h and plugin-api.h.
17889         (ipa_opt_pass, ipa_opt_pass_d)): Relocate forward declarations here.
17890         (symtab_node::address_can_be_compared_p): Move function.
17891         * cgraph.c (symtab_node::address_can_be_compared_p): Relocate function
17892         definition here.
17893         * asan.c: Remove ipa-ref.h and plugin-api.h from include list.
17894         * auto-profile.c: Likewise.
17895         * bb-reorder.c: Likewise.
17896         * builtins.c: Likewise.
17897         * calls.c: Likewise.
17898         * cfgexpand.c: Likewise.
17899         * cgraphbuild.c: Likewise.
17900         * cgraphclones.c: Likewise.
17901         * cgraphunit.c: Likewise.
17902         * combine.c: Likewise.
17903         * coverage.c: Likewise.
17904         * data-streamer-in.c: Likewise.
17905         * data-streamer-out.c: Likewise.
17906         * data-streamer.c: Likewise.
17907         * dbxout.c: Likewise.
17908         * dwarf2out.c: Likewise.
17909         * except.c: Likewise.
17910         * expr.c: Likewise.
17911         * final.c: Likewise.
17912         * fold-const.c: Likewise.
17913         * ggc-page.c: Likewise.
17914         * gimple-fold.c: Likewise.
17915         * gimple-iterator.c: Likewise.
17916         * gimple-pretty-print.c: Likewise.
17917         * gimple-streamer-in.c: Likewise.
17918         * gimple-streamer-out.c: Likewise.
17919         * gimple.c: Likewise.
17920         * gimplify.c: Likewise.
17921         * ipa-chkp.c: Likewise.
17922         * ipa-comdats.c: Likewise.
17923         * ipa-cp.c: Likewise.
17924         * ipa-devirt.c: Likewise.
17925         * ipa-icf-gimple.c: Likewise.
17926         * ipa-icf.c: Likewise.
17927         * ipa-inline-analysis.c: Likewise.
17928         * ipa-inline-transform.c: Likewise.
17929         * ipa-inline.c: Likewise.
17930         * ipa-polymorphic-call.c: Likewise.
17931         * ipa-profile.c: Likewise.
17932         * ipa-prop.c: Likewise.
17933         * ipa-pure-const.c: Likewise.
17934         * ipa-ref.c: Likewise.
17935         * ipa-reference.c: Likewise.
17936         * ipa-split.c: Likewise.
17937         * ipa-utils.c: Likewise.
17938         * ipa-visibility.c: Likewise.
17939         * ipa.c: Likewise.
17940         * langhooks.c: Likewise.
17941         * lto-cgraph.c: Likewise.
17942         * lto-compress.c: Likewise.
17943         * lto-opts.c: Likewise.
17944         * lto-section-in.c: Likewise.
17945         * lto-section-out.c: Likewise.
17946         * lto-streamer-in.c: Likewise.
17947         * lto-streamer-out.c: Likewise.
17948         * lto-streamer.c: Likewise.
17949         * omp-low.c: Likewise.
17950         * opts-global.c: Likewise.
17951         * passes.c: Likewise.
17952         * predict.c: Likewise.
17953         * print-tree.c: Likewise.
17954         * profile.c: Likewise.
17955         * ree.c: Likewise.
17956         * sanopt.c: Likewise.
17957         * stor-layout.c: Likewise.
17958         * symtab.c: Likewise.
17959         * toplev.c: Likewise.
17960         * trans-mem.c: Likewise.
17961         * tree-cfg.c: Likewise.
17962         * tree-chkp.c: Likewise.
17963         * tree-eh.c: Likewise.
17964         * tree-emutls.c: Likewise.
17965         * tree-inline.c: Likewise.
17966         * tree-nested.c: Likewise.
17967         * tree-parloops.c: Likewise.
17968         * tree-pretty-print.c: Likewise.
17969         * tree-profile.c: Likewise.
17970         * tree-sra.c: Likewise.
17971         * tree-ssa-alias.c: Likewise.
17972         * tree-ssa-live.c: Likewise.
17973         * tree-ssa-loop-ivcanon.c: Likewise.
17974         * tree-ssa-loop-ivopts.c: Likewise.
17975         * tree-ssa-pre.c: Likewise.
17976         * tree-ssa-sccvn.c: Likewise.
17977         * tree-ssa-strlen.c: Likewise.
17978         * tree-ssa-structalias.c: Likewise.
17979         * tree-streamer-in.c: Likewise.
17980         * tree-streamer-out.c: Likewise.
17981         * tree-streamer.c: Likewise.
17982         * tree-switch-conversion.c: Likewise.
17983         * tree-tailcall.c: Likewise.
17984         * tree-vect-data-refs.c: Likewise.
17985         * tree-vect-stmts.c: Likewise.
17986         * tree-vectorizer.c: Likewise.
17987         * tree.c: Likewise.
17988         * tsan.c: Likewise.
17989         * ubsan.c: Likewise.
17990         * value-prof.c: Likewise.
17991         * varasm.c: Likewise.
17992         * varpool.c: Likewise.
17993         * config/arm/arm.c: Likewise.
17994         * config/bfin/bfin.c: Likewise.
17995         * config/c6x/c6x.c: Likewise.
17996         * config/cris/cris.c: Likewise.
17997         * config/darwin-c.c: Likewise.
17998         * config/darwin.c: Likewise.
17999         * config/i386/i386.c: Likewise.
18000         * config/i386/winnt.c: Likewise.
18001         * config/microblaze/microblaze.c: Likewise.
18002         * config/mips/mips.c: Likewise.
18003         * config/rs6000/rs6000.c: Likewise.
18004         * config/rx/rx.c: Likewise.
18005         * config/s390/s390.c: Likewise.
18006         * config/tilegx/mul-tables.c: Likewise.
18007
18008 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
18009
18010         * config/aarch64/aarch64.c, config/alpha/alpha.c,
18011         config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
18012         config/c6x/c6x.c, config/cr16/cr16.c, config/cris/cris.c,
18013         config/fr30/fr30.c, config/frv/frv.c, config/h8300/h8300.c,
18014         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
18015         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
18016         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
18017         config/microblaze/microblaze.c, config/mips/mips.c,
18018         config/mmix/mmix.c, config/mn10300/mn10300.c,
18019         config/moxie/moxie.c, config/msp430/msp430.c,
18020         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
18021         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
18022         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
18023         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
18024         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
18025         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
18026         config/visium/visium.c, config/xtensa/xtensa.c: Add comment above
18027         target-def.h include.
18028         * config/ft32/ft32.c: Likewise.  Fix misapplied hunk.
18029
18030 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
18031
18032         * Makefile.in (TARGET_DEF): Add target-insns.def.
18033         (.PRECIOUS, simple_rtl_generated_h): Add insn-target-def.h.
18034         (build/gentarget-def.o): New rule.
18035         (genprogrtl): Add target-def.
18036         * target-insns.def, gentarget-def.c: New files.
18037         * target.def: Add targetm.have_* and targetm.gen_* hooks,
18038         based on the contents of target-insns.def.
18039         * defaults.h (HAVE_simple_return, gen_simple_return): Delete.
18040         (HAVE_return, gen_return): Delete.
18041         * target-def.h: Include insn-target-def.h.
18042         * cfgrtl.c (force_nonfallthru_and_redirect): Use targetm interface
18043         instead of direct calls.  Rely on them to do the appropriate assertions.
18044         * function.c (gen_return_pattern): Likewise.  Return an rtx_insn *.
18045         (convert_jumps_to_returns): Use targetm interface instead of
18046         direct calls.
18047         (thread_prologue_and_epilogue_insns): Likewise.
18048         * reorg.c (find_end_label, dbr_schedule): Likewise.
18049         * shrink-wrap.h (SHRINK_WRAPPING_ENABLED): Likewise.
18050         * shrink-wrap.c (convert_to_simple_return): Likewise.
18051         (try_shrink_wrapping): Use SHRINK_WRAPPING_ENABLED.
18052
18053 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
18054
18055         * config/aarch64/aarch64.c, config/alpha/alpha.c, config/arm/arm.c,
18056         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
18057         config/cr16/cr16.c, config/cris/cris.c, config/fr30/fr30.c,
18058         config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
18059         config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
18060         config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
18061         config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
18062         config/microblaze/microblaze.c, config/mips/mips.c, config/mmix/mmix.c,
18063         config/mn10300/mn10300.c, config/moxie/moxie.c, config/msp430/msp430.c,
18064         config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
18065         config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
18066         config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
18067         config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
18068         config/stormy16/stormy16.c, config/tilegx/tilegx.c,
18069         config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
18070         config/visium/visium.c, config/xtensa/xtensa.c: Move target-def.h
18071         includes to end.
18072
18073 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
18074
18075         * hash-map-traits.h (simple_hashmap_traits::key_type): New typedef.
18076         (unbounded_int_hashmap_traits::key_type): Likewise.
18077         * hash-map.h (hash_map): Get the key type from the traits.
18078         * hash-traits.h (default_hash_traits): By default, inherit from the
18079         template parameter.
18080         * alias.c (alias_set_traits): Delete.
18081         (alias_set_entry_d::children): Use alias_set_hash as the first
18082         template parameter.
18083         (record_alias_subset): Update accordingly.
18084         * except.c (tree_hash_traits): Delete.
18085         (type_to_runtime_map): Use tree_hash as the first template parameter.
18086         (init_eh): Update accordingly.
18087         * genmatch.c (capture_id_map_hasher): Delete.
18088         (cid_map_t): Use nofree_string_hash as first template parameter.
18089         * ipa-icf.h (symbol_compare_hashmap_traits): Delete.
18090         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
18091         Use symbol_compare_hash as the first template parameter in
18092         subdivide_hash_map.
18093         * mem-stats.h (mem_usage_pair::mem_alloc_hashmap_traits): Delete.
18094         (mem_usage_pair::mem_map_t): Use mem_location_hash as the first
18095         template parameter.
18096         * passes.c (pass_registry_hasher): Delete.
18097         (name_to_pass_map): Use nofree_string_hash as the first template
18098         parameter.
18099         (register_pass_name): Update accordingly.
18100         * sanopt.c (sanopt_tree_map_traits): Delete.
18101         (sanopt_tree_triplet_map_traits): Delete.
18102         (sanopt_ctx::asan_check_map): Use tree_operand_hash as the first
18103         template parameter.
18104         (sanopt_ctx::vptr_check_map): Use sanopt_tree_triplet_hash as
18105         the first template parameter.
18106         * sese.c (rename_map_hasher): Delete.
18107         (rename_map_type): Use tree_ssa_name_hash as the first template
18108         parameter.
18109         * symbol-summary.h (function_summary::summary_hashmap_traits): Delete.
18110         (function_summary::m_map): Use map_hash as the first template
18111         parameter.
18112         (function_summary::release): Update accordingly.
18113         * tree-if-conv.c (phi_args_hash_traits): Delete.
18114         (predicate_scalar_phi): Use tree_operand_hash as the first template
18115         parameter to phi_arg_map.
18116         * tree-inline.h (dependence_hasher): Delete.
18117         (copy_body_data::dependence_map): Use dependence_hash as the first
18118         template parameter.
18119         * tree-inline.c (remap_dependence_clique): Update accordingly.
18120         * tree-ssa-strlen.c (stridxlist_hash_traits): Delete.
18121         (decl_to_stridxlist_htab): Use tree_decl_hash as the first template
18122         parameter.
18123         (addr_stridxptr): Update accordingly.
18124         * value-prof.c (profile_id_traits): Delete.
18125         (cgraph_node_map): Use profile_id_hash as the first template
18126         parameter.
18127         (init_node_map): Update accordingly.
18128         * config/alpha/alpha.c (string_traits): Delete.
18129         (machine_function::links): Use nofree_string_hash as the first
18130         template parameter.
18131         (alpha_use_linkage, alpha_write_linkage): Update accordingly.
18132         * config/m32c/m32c.c (pragma_traits): Delete.
18133         (pragma_htab): Use nofree_string_hash as the first template parameter.
18134         (m32c_note_pragma_address): Update accordingly.
18135         * config/mep/mep.c (pragma_traits): Delete.
18136         (pragma_htab): Use nofree_string_hash as the first template parameter.
18137         (mep_note_pragma_flag): Update accordingly.
18138         * config/mips/mips.c (mips16_flip_traits): Delete.
18139         (mflip_mips16_htab): Use nofree_string_hash as the first template
18140         parameter.
18141         (mflip_mips16_use_mips16_p): Update accordingly.
18142         (local_alias_traits): Delete.
18143         (mips16_local_aliases): Use nofree_string_hash as the first template
18144         parameter.
18145         (mips16_local_alias): Update accordingly.
18146
18147 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
18148
18149         * hash-map-traits.h (default_hashmap_traits): Delete.
18150
18151 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
18152
18153         * hash-map-traits.h (unbounded_hashmap_traits): New class.
18154         (unbounded_int_hashmap_traits): Likewise.
18155         * cfgexpand.c (part_traits): Use unbounded_int_hashmap_traits.
18156
18157 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
18158
18159         * ipa-icf.h (symbol_compare_hash): New class.
18160         (symbol_compare_hashmap_traits): Use it.
18161         * mem-stats.h (mem_alloc_description::mem_location_hash): New class.
18162         (mem_alloc_description::mem_alloc_hashmap_traits): Use it.
18163         (mem_alloc_description::reverse_mem_map_t): Remove redundant
18164         default_hashmap_traits.
18165         * sanopt.c (sanopt_tree_triplet_hash): New class.
18166         (sanopt_tree_triplet_map_traits): Use it.
18167
18168 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
18169
18170         * gengtype-parse.c (require_template_declaration): Allow '+' in
18171         template parameters.  Consolidate cases.
18172         * hash-traits.h (int_hash): New class.
18173         * alias.c (alias_set_hash): New structure.
18174         (alias_set_traits): Use it.
18175         * symbol-summary.h (function_summary::map_hash): New class.
18176         (function_summary::summary_hashmap_traits): Use it.
18177         * tree-inline.h (dependence_hash): New class.
18178         (dependence_hasher): Use it.
18179         * tree-ssa-reassoc.c (oecount_hasher): Use int_hash.
18180         * value-prof.c (profile_id_hash): New class.
18181         (profile_id_traits): Use it.
18182
18183 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
18184
18185         * config/mips/mips.c (mips16_flip_traits): Use it.
18186         (local_alias_traits, mips16_local_aliases): Convert from a map of
18187         rtxes to a map of symbol names.
18188         (mips16_local_alias): Update accordingly.
18189
18190 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
18191
18192         * hash-traits.h (string_hash, nofree_string_hash): New classes.
18193         * genmatch.c (capture_id_map_hasher): Use nofree_string_hash.
18194         * passes.c (pass_registry_hasher): Likewise.
18195         * config/alpha/alpha.c (string_traits): Likewise.
18196         * config/i386/winnt.c (i386_find_on_wrapper_list): Likewise.
18197         * config/m32c/m32c.c (pragma_traits): Likewise.
18198         * config/mep/mep.c (pragma_traits): Likewise.
18199
18200 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
18201
18202         * tree-hash-traits.h (tree_hash): New class.
18203         * except.c: Include tree-hash-traits.h.
18204         (tree_hash_traits): Use tree_hash.
18205
18206 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
18207
18208         * tree-hash-traits.h (tree_ssa_name_hasher): New class.
18209         * sese.c: Include tree-hash-traits.h.
18210         (rename_map_hasher): Use tree_ssa_name_hasher.
18211
18212 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
18213
18214         * tree-hash-traits.h (tree_decl_hash): New class.
18215         * tree-ssa-strlen.c: Include tree-hash-traits.h.
18216         (stridxlist_hash_traits): Use tree_decl_hash.
18217
18218 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
18219
18220         * tree-hash-traits.h: New file.
18221         (tree_operand_hash): New class.
18222         * sanopt.c: Include tree-hash-traits.h.
18223         (sanopt_tree_map_traits): Use tree_operand_hash.
18224         * tree-if-conv.c: Include tree-hash-traits.h.
18225         (phi_args_hash_traits): Use tree_operand_hash.
18226         * tree-ssa-uncprop.c: Include tree-hash-traits.h.
18227         (val_ssa_equiv_hash_traits): Use tree_operand_hash.
18228
18229 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
18230
18231         * hash-map-traits.h: Include hash-traits.h.
18232         (simple_hashmap_traits): New class.
18233         * mem-stats.h (hash_map): Change the default traits to
18234         simple_hashmap_traits<default_hash_traits<Key> >.
18235
18236 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
18237
18238         * hash-table.h: Update comments.
18239
18240 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
18241
18242         * hash-traits.h (default_hash_traits): New structure.
18243         * hash-set.h (default_hashset_traits): Delete.
18244         (hash_set): Use default_hash_traits<Key> instead of
18245         default_hashset_traits.  Delete hash_entry type and use Key directly.
18246         * ipa-devirt.c (pair_traits): Delete.
18247         (default_hash_traits <type_pair>): Override.
18248         (odr_subtypes_equivalent_p): Remove pair_types template parameter.
18249         (odr_types_equivalent_p, add_type_duplicate): Likewise.
18250
18251 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
18252
18253         * hash-traits.h (typed_noop_remove): Don't require a pointer type.
18254
18255 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
18256
18257         * hash-table.h (has_is_deleted, is_deleted_helper): Delete.
18258         (has_is_empty, is_empty_helper): Delete.
18259         (has_mark_deleted, mark_deleted_helper): Delete.
18260         (has_mark_empty, mark_empty_helper): Delete.
18261         (hash_table::is_deleted): Call the Descriptor unconditionally.
18262         (hash_table::is_empty): Likewise.
18263         (hash_table::mark_deleted): Likewise.
18264         (hash_table::mark_empty): Likewise.
18265
18266 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
18267
18268         * cgraph.h (asmname_hasher): Inherit from ggc_ptr_hash.  Remove
18269         redundant typedefs and members.
18270         * coverage.c (counts_entry): Inherit from pointer_hash.  Remove
18271         redundant typedefs.
18272         * dwarf2out.c (cu_hash_table_entry_hasher): Likewise.
18273         * ipa-devirt.c (odr_name_hasher): Likewise.
18274         (polymorphic_call_target_hasher): Likewise.
18275         * ira-costs.c (cost_classes_hasher): Likewise.
18276         * statistics.c (stats_counter_hasher): Likewise.
18277         * trans-mem.c (log_entry_hasher): Likewise.
18278         * tree-ssa-dom.c (expr_elt_hasher): Likewise.
18279         * tree-ssa-sccvn.c (vn_phi_hasher, vn_reference_hasher): Likewise.
18280         * tree-ssa-tail-merge.c (same_succ_def): Likewise.
18281         * var-tracking.c (variable_hasher): Likewise.
18282         * valtrack.h (dead_debug_hash_descr): Inherit from free_ptr_hash.
18283         Remove redundant typedefs and members.
18284
18285 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
18286
18287         * hash-traits.h (ggc_cache_hasher): Rename to...
18288         (ggc_cache_remove): ...this and remove typedefs.
18289         (ggc_cache_ptr_hash): New class.
18290         * hash-table.h: Update commentary.
18291         * emit-rtl.c (const_int_hasher): Inherit from ggc_cache_ptr_hash
18292         rather than ggc_cache_hasher.
18293         (const_wide_int_hasher, reg_attr_hasher): Likewise.
18294         (const_double_hasher, const_fixed_hasher): Likewise.
18295         * function.c (insn_cache_hasher): Likewise.
18296         * trans-mem.c (tm_wrapper_hasher): Likewise.
18297         * tree.h (tree_decl_map_cache_hasher): Likewise.
18298         * tree.c (type_cache_hasher, int_cst_hasher): Likewise.
18299         (cl_option_hasher, tree_vec_map_cache_hasher): Likewise.
18300         * ubsan.c (tree_type_map_cache_hasher): Likewise.
18301         * varasm.c (tm_clone_hasher): Likewise.
18302         * config/i386/i386.c (dllimport_hasher): Likewise.
18303         * config/nvptx/nvptx.c (declared_libfunc_hasher): Likewise.
18304         (tree_hasher): Likewise.
18305
18306 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
18307
18308         * hash-traits.h (ggc_hasher): Rename to...
18309         (ggc_remover): ...this and remove typedefs.
18310         (ggc_cache_hasher): Update accordingly.  Add typedefs.
18311         (ggc_ptr_hash): New class.
18312         * hash-table.h: Update comment.
18313         * cfgloop.h (loop_exit_hasher): Inherit from ggc_ptr_hash rather than
18314         ggc_hasher.
18315         * cgraph.h (section_name_hasher, cgraph_edge_hasher): Likewise.
18316         (tree_descriptor_hasher): Likewise.
18317         * cgraph.c (function_version_hasher): Likewise.
18318         * dwarf2out.c (indirect_string_hasher, dwarf_file_hasher): Likewise.
18319         (decl_die_hasher, block_die_hasher, decl_loc_hasher): Likewise.
18320         (dw_loc_list_hasher, addr_hasher): Likewise.
18321         * function.h (used_type_hasher): Likewise.
18322         * function.c (temp_address_hasher): Likewise.
18323         * gimple-ssa.h (tm_restart_hasher, ssa_name_hasher): Likewise.
18324         * libfuncs.h (libfunc_hasher): Likewise.
18325         * lto-streamer.h (decl_state_hasher): Likewise.
18326         * optabs.c (libfunc_decl_hasher): Likewise.
18327         * tree-scalar-evolution.c (scev_info_hasher): Likewise.
18328         * varasm.c (section_hasher, object_block_hasher): Likewise.
18329         (const_rtx_desc_hasher): Likewise.
18330         * config/darwin.c (indirection_hasher, cfstring_hasher): Likewise.
18331         * config/rs6000/rs6000.c (toc_hasher, builtin_hasher): Likewise.
18332
18333 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
18334
18335         * hash-traits.h (free_ptr_hash): New class.
18336         * dwarf2out.c (decl_table_entry_hasher): Inherit from free_ptr_hash
18337         rather than typed_free_remove.  Remove redudant typedefs.
18338         (external_ref_hasher): Likewise.
18339         * except.c (action_record_hasher, ttypes_filter_hasher): Likewise.
18340         (ehspec_hasher): Likewise.
18341         * ggc-common.c (saving_hasher): Likewise.
18342         * gimplify.c (gimplify_hasher): Likewise.
18343         * haifa-sched.c (delay_i2_hasher): Likewise.
18344         * loop-invariant.c (invariant_expr_hasher): Likewise.
18345         * loop-iv.c (biv_entry_hasher): Likewise.
18346         * loop-unroll.c (iv_split_hasher, var_expand_hasher): Likewise.
18347         * trans-mem.c (tm_mem_map_hasher, tm_memop_hasher): Likewise.
18348         * tree-cfg.c (locus_discrim_hasher): Likewise.
18349         * tree-eh.c (finally_tree_hasher): Likewise.
18350         * tree-into-ssa.c (var_info_hasher): Likewise.
18351         * tree-parloops.c (reduction_hasher, name_to_copy_hasher): Likewise.
18352         * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher): Likewise.
18353         * tree-ssa-phiopt.c (ssa_names_hasher): Likewise.
18354         * tree-ssa-pre.c (expr_pred_trans_d): Likewise.
18355         * tree-ssa-sccvn.c (vn_constant_hasher): Likewise.
18356         * tree-ssa-structalias.c (equiv_class_hasher): Likewise.
18357         (shared_bitmap_hasher): Likewise.
18358         * tree-ssa-threadupdate.c (redirection_data): Likewise.
18359         * tree-vectorizer.h (peel_info_hasher): Likewise.
18360         * tree-vectorizer.c (simduid_to_vf, simd_array_to_simduid): Likewise.
18361         * config/mips/mips.c (mips_lo_sum_offset_hasher): Likewise.
18362
18363 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
18364
18365         * hash-table.h: Update comments.
18366         * hash-traits.h (pointer_hash): Don't inherit from typed_noop_remove.
18367         (nofree_ptr_hash): New class.
18368         * asan.c (asan_mem_ref_hasher): Inherit from nofree_ptr_hash rather
18369         than typed_noop_remove.  Remove redudant typedefs.
18370         * attribs.c (attribute_hasher): Likewise.
18371         * cfg.c (bb_copy_hasher): Likewise.
18372         * cselib.c (cselib_hasher): Likewise.
18373         * dse.c (invariant_group_base_hasher): Likewise.
18374         * dwarf2cfi.c (trace_info_hasher): Likewise.
18375         * dwarf2out.c (macinfo_entry_hasher): Likewise.
18376         (comdat_type_hasher, loc_list_hasher): Likewise.
18377         * gcse.c (pre_ldst_expr_hasher): Likewise.
18378         * genmatch.c (id_base): Likewise.
18379         * genrecog.c (test_pattern_hasher): Likewise.
18380         * gimple-ssa-strength-reduction.c (cand_chain_hasher): Likewise.
18381         * haifa-sched.c (delay_i1_hasher): Likewise.
18382         * hard-reg-set.h (simplifiable_subregs_hasher): Likewise.
18383         * ipa-icf.h (congruence_class_group_hash): Likewise.
18384         * ipa-profile.c (histogram_hash): Likewise.
18385         * ira-color.c (allocno_hard_regs_hasher): Likewise.
18386         * lto-streamer.h (string_slot_hasher): Likewise.
18387         * lto-streamer.c (tree_entry_hasher): Likewise.
18388         * plugin.c (event_hasher): Likewise.
18389         * postreload-gcse.c (expr_hasher): Likewise.
18390         * store-motion.c (st_expr_hasher): Likewise.
18391         * tree-sra.c (uid_decl_hasher): Likewise.
18392         * tree-ssa-coalesce.c (coalesce_pair_hasher): Likewise.
18393         (ssa_name_var_hash): Likewise.
18394         * tree-ssa-live.c (tree_int_map_hasher): Likewise.
18395         * tree-ssa-loop-im.c (mem_ref_hasher): Likewise.
18396         * tree-ssa-pre.c (pre_expr_d): Likewise.
18397         * tree-ssa-sccvn.c (vn_nary_op_hasher): Likewise.
18398         * vtable-verify.h (registration_hasher): Likewise.
18399         * vtable-verify.c (vtbl_map_hasher): Likewise.
18400         * config/arm/arm.c (libcall_hasher): Likewise.
18401         * config/i386/winnt.c (wrapped_symbol_hasher): Likewise.
18402         * config/ia64/ia64.c (bundle_state_hasher): Likewise.
18403         * config/sol2.c (comdat_entry_hasher): Likewise.
18404         * fold-const.c (fold): Use nofree_ptr_hash instead of pointer_hash.
18405         (print_fold_checksum, fold_checksum_tree): Likewise.
18406         (debug_fold_checksum, fold_build1_stat_loc): Likewise.
18407         (fold_build2_stat_loc, fold_build3_stat_loc): Likewise.
18408         (fold_build_call_array_loc): Likewise.
18409         * tree-ssa-ccp.c (gimple_htab): Likewise.
18410         * tree-browser.c (tree_upper_hasher): Inherit from nofree_ptr_hash
18411         rather than pointer_type.
18412
18413 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
18414
18415         * hash-traits.h (pointer_hash::mark_deleted, pointer_hash::mark_empty)
18416         (pointer_hash::is_deleted, pointer_hash::is_empty): New functions.
18417
18418 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
18419
18420         * hash-traits.h (ggc_hasher::remove): Take a reference parameter.
18421         (ggc_hasher::ggc_mx): Likewise.
18422         (ggc_cache_hasher): Inherit from ggc_hasher.  Remove definitions
18423         that duplicate ggc_hasher ones.
18424
18425 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
18426
18427         * hash-table.h (hash_table): Add gt_cleare_cache as a friend.
18428         (gt_cleare_cache): Check here for deleted and empty entries.
18429         Replace handle_cache_entry with a call to keep_cache_entry.
18430         * hash-traits.h (ggc_cache_hasher::handle_cache_entry): Delete.
18431         (ggc_cache_hasher::keep_cache_entry): New function.
18432         * trans-mem.c (tm_wrapper_hasher::handle_cache_entry): Delete.
18433         (tm_wrapper_hasher::keep_cache_entry): New function.
18434         * tree.h (tree_decl_map_cache_hasher::handle_cache_entry): Delete.
18435         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
18436         * tree.c (type_cache_hasher::handle_cache_entry): Delete.
18437         (type_cache_hasher::keep_cache_entry): New function.
18438         (tree_vec_map_cache_hasher::handle_cache_entry): Delete.
18439         (tree_vec_map_cache_hasher::keep_cache_entry): New function.
18440         * ubsan.c (tree_type_map_cache_hasher::handle_cache_entry): Delete.
18441         (tree_type_map_cache_hasher::keep_cache_entry): New function.
18442         * varasm.c (tm_clone_hasher::handle_cache_entry): Delete.
18443         (tm_clone_hasher::keep_cache_entry): New function.
18444         * config/i386/i386.c (dllimport_hasher::handle_cache_entry): Delete.
18445         (dllimport_hasher::keep_cache_entry): New function.
18446
18447 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
18448
18449         * hash-table.h: Include hash-traits.h.
18450         (typed_free_remove, typed_noop_remove, pointer_hash, ggc_hasher)
18451         (ggc_cache_hasher): Move to...
18452         * hash-traits.h: ...this new file.
18453
18454 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
18455
18456         * tree-core.h (struct tree_optimization_option): Make opts a pointer to
18457         struct cl_optimization.
18458         * tree.h (TREE_OPTIMIZATION): Return the pointer, not the address of it.
18459         * tree.c (make_node_stat): Allocate cl_optimization struct.
18460         (copy_node_stat): Allocate and copy cl_optimization struct.
18461
18462 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
18463
18464         * function.h (struct incoming_args): Move struct.
18465         (pass_by_reference, reference_callee_copied): Remove prototypes.
18466         * emit-rtl.h (struct incoming_args): Relocate struct here.
18467         * calls.h (pass_by_reference, reference_callee_copied): Relocate
18468         prototypes here.
18469         * function.c (pass_by_reference, reference_callee_copied): Move.
18470         * calls.c (pass_by_reference, reference_callee_copied): Relocate here.
18471         * cfgloop.h: Don't include tm.h or hard-reg-set.h.
18472         * ipa-chkp.c: Include calls.h.
18473
18474 2015-06-25  Andrew Macleod  <amacleod@redhat.com>
18475
18476         * alias.h (alias_set_type): Move typedef.
18477         * coretypes.h (alias_set_type): Relocate typedef here.
18478         * rtl.h: Don't include alias.h.
18479
18480 2015-06-25  Andrew MacLeod  <amacleod@redhat.com>
18481
18482         * cgraph.h (cgraph_rtl_info): Move to rtl.h
18483         (cgraph_node): Maintain pointer to struct cgraph_rtl_info instead of
18484         and instance.
18485         * rtl.h (struct cgraph_rtl_info): Define when HARD_REG_SET available.
18486         * cgraph.c (cgraph_node::rtl_info): Allocate cgraph_rtl_info if one
18487         doesn't exist.
18488         * calls.c: Include hard-reg-set.h before rtl.h.
18489         * ira.c: Likewise.
18490
18491 2015-06-25  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
18492             Vladimir Makarov  <vmakarov@redhat.com>
18493
18494         * ira-color.c (assign_hard_reg): Remove unecessary bitmap check.
18495         Add assert.
18496
18497 2015-06-25  Richard Biener  <rguenther@suse.de>
18498
18499         * fold-const.c (fold_binary_loc): Move simplification of
18500         (X <<>> C1) & C2 ...
18501         * match.pd: ... here.
18502
18503 2015-06-25  Eric Botcazou  <ebotcazou@adacore.com>
18504
18505         * lto-streamer-out.c (DFS::hash_scc): Fix typos & formatting glitches.
18506
18507 2015-06-25  Richard Sandiford  <richard.sandiford@arm.com>
18508
18509         * match.pd: Add patterns for vec_conds between 1 and 0.
18510
18511 2015-06-25  Richard Biener  <rguenther@suse.de>
18512
18513         * tree-vect-stmts.c (vectorizable_conversion): Do not set
18514         STMT_VINFO_VEC_STMT for SLP.
18515         (vectorizable_store): Likewise.
18516         (vectorizable_load): Likewise.
18517         (vect_transform_stmt): Catch SLP vectorization clobbering
18518         STMT_VINFO_VEC_STMT.
18519
18520 2015-06-25  Richard Biener  <rguenther@suse.de>
18521
18522         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Improve debug
18523         dumping.
18524         (vect_create_mask_and_perm): Do not set STMT_VINFO_VEC_STMT and
18525         cleanup resulting dead code and parameters.
18526         (vect_transform_slp_perm_load): Adjust.
18527
18528 2015-06-25  Nick Clifton  <nickc@redhat.com>
18529
18530         * config/bfin/bfin.c (bfin_expand_prologue): Set
18531         current_function_static_stack_size if flag_stack_usage_info is set.
18532         * config/ft32/ft32.c (ft32_expand_prologue): Likewise.
18533         * config/h8300/h8300.c (h8300_expand_prologue): Likewise.
18534         * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
18535         * config/m32c/m32c.c (m32c_emit_prologue): Likewise.
18536
18537 2015-06-25  Tom de Vries  <tom@codesourcery.com>
18538
18539         * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Don't claim in header
18540         comment that the generated IV is unsigned.
18541
18542 2015-06-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18543
18544         PR target/29693
18545         * config/arm/arm.c (arm_dbx_register_number): Return
18546         DWARF_FRAME_REGISTERS by default.
18547
18548 2015-06-25  Tom de Vries  <tom@codesourcery.com>
18549
18550         * dominance.c (calculate_dominance_info): Fix verify_dominators call
18551         argument.  Call verify_dominator when reusing dominator info.
18552
18553 2015-06-24  Kaz Kojima  <kkojima@gcc.gnu.org>
18554
18555         PR target/66563
18556         * config/sh/sh.md (GOTaddr2picreg): Add a new operand for
18557         an additional element of the unspec vector.  Modify indices
18558         of operands.
18559         (builtin_setjmp_receiver): Pass const0_rtx to gen_GOTaddr2picreg.
18560         * config/sh/sh.c (prepare_move_operands): Pass incremented
18561         const_int to gen_GOTaddr2picreg.
18562         (sh_expand_prologue): Pass const0_rtx to gen_GOTaddr2picreg.
18563
18564 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
18565
18566         * config/aarch64/aarch64.md (<optab><fcvt_target><GPF:mode>2):
18567         Condition on TARGET_FLOAT.
18568
18569 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
18570
18571         * doc/invoke.texi: Clarify AArch64 feature modifiers (no)fp, (no)simd
18572         and (no)crypto.
18573
18574 2015-06-24  Alan Lawrence  <alan.lawrence@arm.com>
18575
18576         * config/aarch64/aarch64-protos.h (aarch64_err_no_fpadvsimd): New.
18577
18578         * config/aarch64/aarch64.md (mov<mode>/GPF, movtf): Use
18579         aarch64_err_no_fpadvsimd.
18580
18581         * config/aarch64/aarch64.c (aarch64_err_no_fpadvsimd): New.
18582         (aarch64_layout_arg, aarch64_init_cumulative_args): Use
18583         aarch64_err_no_fpadvsimd if !TARGET_FLOAT and we need FP regs.
18584         (aarch64_expand_builtin_va_start, aarch64_setup_incoming_varargs):
18585         Turn error into assert, test TARGET_FLOAT.
18586         (aarch64_gimplify_va_arg_expr): Use aarch64_err_no_fpadvsimd, test
18587         TARGET_FLOAT.
18588
18589 2015-06-24  Aldy Hernandez  <aldyh@redhat.com>
18590
18591         PR debug/66482
18592         * dwarf2out.c (gen_formal_parameter_die): Remove assert.
18593
18594 2015-06-24  Ilya Enkovich  <enkovich.gnu@gmail.com>
18595
18596         * tree-vect-slp.c (vect_build_slp_tree_1): Init vectype.
18597
18598 2015-06-24  Renlin Li <renlin.li@arm.com>
18599
18600         * config/aarch64/aarch64.h(TARGET_CPU_CPP_BUILTINS): Add
18601         __ARM_ALIGN_MAX_PWR, __ARM_ALIGN_MAX_STACK_PWR.
18602
18603 2015-06-24  Richard Biener  <rguenther@suse.de>
18604
18605         * genmatch.c (enum tree_code): Add VIEW_CONVERT[012].
18606         (main): Likewise.
18607         (lower_opt_convert): Support lowering of conditional view_convert.
18608         (parser::parse_operation): Likewise.
18609         (parser::parse_for): Likewise.
18610
18611 2015-06-24  Renlin Li  <renlin.li@arm.com>
18612
18613         * varasm.c (emit_local): Use unsigned int for align variable.
18614
18615 2015-06-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18616
18617         PR target/63408
18618         * config/arm/arm.c (vfp3_const_double_for_fract_bits): Disable
18619         for negative numbers.
18620
18621 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
18622
18623         PR rtl-optimization/66306
18624         * reload.c (find_reloads): Swap the match_dup info for
18625         commutative operands.
18626
18627 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
18628
18629         * config/s390/vx-builtins.md
18630         ("vec_scatter_element<mode>_<non_vec_int>")
18631         ("vec_scatter_element<V_HW_64:mode>_SI"): Replace gf mode
18632         attribute with bhfgq.
18633
18634 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
18635
18636         * config/s390/s390-builtins.def: Fix vpopct instruction comments.
18637
18638 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
18639
18640         * config/s390/s390-builtin-types.def: Add flag to indicate the
18641         options under which the function type is needed.
18642         * config/s390/s390-builtins.def: Add flag to indicate the options
18643         under which the builtin is enabled.
18644         * config/s390/s390-builtins.h: Add flags parameter to macro
18645         definitions.
18646         (bflags_for_builtin): New function.
18647         (flags_for_builtin): Renamed to ...
18648         (opflags_for_builtin): ... this.
18649         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Rename
18650         flags_for_builtin to bflags_for_builtin and
18651         flags_overloaded_builtin_var to opflags_overloaded_builtin_var.
18652         * config/s390/s390.c: Add initialization of bflags_builtin and
18653         opflags_builtin arrays.
18654         Remove code for flags_builtin.
18655         (s390_init_builtins): Only create builtin function types if one of
18656         their flags is active.
18657         Only create builtins if all of their flags are active.
18658         (s390_expand_builtin): Rename flags_for_builtin to
18659         opflags_for_builtin.
18660
18661 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
18662
18663         * config/s390/vecintrin.h: Remove internal builtins.
18664
18665 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
18666
18667         * config/s390/s390.c (s390_secondary_reload): Fix check for
18668         GENERAL_REGS register class.
18669
18670 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
18671
18672         * config/s390/s390.c (s390_support_vector_misalignment): Call
18673         default implementation for !TARGET_VX.
18674
18675 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
18676
18677         * config/s390/s390.c (s390_legitimate_constant_p): Add
18678         TARGET_VX check.
18679
18680 2015-06-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
18681
18682         * config/s390/s390.c (s390_vector_abi): New variable definition.
18683         (s390_check_type_for_vector_abi): New function.
18684         (TARGET_ASM_FILE_END): New macro definition.
18685         (s390_asm_file_end): New function.
18686         (s390_function_arg): Call s390_check_type_for_vector_abi.
18687         (s390_gimplify_va_arg): Likewise.
18688         * configure: Regenerate.
18689         * configure.ac: Check for .gnu_attribute Binutils feature.
18690
18691 2015-06-23  Chen Gang  <gang.chen.5i5j@gmail.com>
18692
18693         PR target/65803
18694         * config/bfin/bfin.c (hwloop_optimize): Initialize
18695         JUMP_LABEL for newly created jump.
18696
18697 2015-06-23  Tristan Gingold  <gingold@adacore.com>
18698
18699         * collect-utils.c (collect_wait): Unlink the response file here
18700         instead of...
18701         (do_wait): ...here.
18702         (utils_cleanup): ...and here.
18703
18704 2015-06-23  Richard Sandiford  <richard.sandiford@arm.com>
18705
18706         * df-scan.c: Don't include target-def.h.
18707         * targhooks.c: Likewise.
18708         * config/arm/arm-c.c: Likewise.
18709         * config/i386/i386-c.c: Likewise.
18710         * config/nds32/nds32-cost.c: Likewise.
18711         * config/nds32/nds32-fp-as-gp.c: Likewise.
18712         * config/nds32/nds32-intrinsic.c: Likewise.
18713         * config/nds32/nds32-isr.c: Likewise.
18714         * config/nds32/nds32-md-auxiliary.c: Likewise.
18715         * config/nds32/nds32-memory-manipulation.c: Likewise.
18716         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
18717         * config/nds32/nds32-predicates.c: Likewise.
18718
18719 2015-06-23  Richard Biener  <rguenther@suse.de>
18720
18721         PR tree-optimization/66636
18722         * tree-vect-stmts.c (vectorizable_store): Properly compute the
18723         def type for further defs for strided stores.
18724
18725 2015-06-23  Nathan Sidwell  <nathan@codesourcery.com>
18726
18727         * config/nvptx/nvptx.md (sel_true<mode>, sel_false<mode>): New
18728         conditional selects.
18729         (setcc_int<mode>, setcc_float<mode>): Reformat.
18730
18731 2015-06-23  Marek Polacek  <polacek@redhat.com>
18732
18733         * match.pd ((x + y) - (x | y) -> x & y,
18734         (x + y) - (x & y) -> x | y): New patterns.
18735
18736 2015-06-23  Ludovic Courtès  <ludo@gnu.org>
18737
18738         PR 65711
18739         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Move
18740         '-dynamic-linker' within %{!shared: ...}.
18741
18742 2015-06-23  Uros Bizjak  <ubizjak@gmail.com>
18743
18744         PR target/66560
18745         * config/i386/predicates.md (addsub_vm_operator): New predicate.
18746         (addsub_vs_operator): Ditto.
18747         (addsub_vs_parallel): Ditto.
18748         * config/i386/sse.md (ssedoublemode): Add V4SF and V2DF modes.
18749         (avx_addsubv4df3, avx_addsubv8sf3, sse3_addsubv2df3, sse3_addsubv4sf3):
18750         Put minus RTX before plus and adjust vec_merge selector.
18751         (*avx_addsubv4df3_1, *avx_addsubv4df3_1s, *sse3_addsubv2df3_1)
18752         (*sse_addsubv2df3_1s, *avx_addsubv8sf3_1, *avx_addsubv8sf3_1s)
18753         (*sse3_addsubv4sf3_1, *sse_addsubv4sf3_1s): Remove insn patterns.
18754         (addsub vec_merge splitters): New combiner splitters.
18755         (addsub vec_select/vec_concat splitters): Ditto.
18756
18757 2015-06-23  Bin Cheng  <bin.cheng@arm.com>
18758
18759         PR tree-optimization/66449
18760         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Use
18761         POINTER_PLUS_EXPR for pointers.
18762
18763 2015-06-23  Alan Modra  <amodra@gmail.com>
18764
18765         * rtlanal.c (commutative_operand_precedence): Correct comments.
18766         * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Delete forward
18767         declaration.  Return an int.  Distinguish REG,REG return from
18768         others.
18769         (struct simplify_plus_minus_op_data): Make local to function.
18770         (simplify_plus_minus): Don't set canonicalized if merely sorting
18771         registers.  Avoid packing ops if nothing changes.  White space fixes.
18772
18773 2015-06-22  Pierre-Marie de Rodat  <derodat@adacore.com>
18774
18775         * gcc.c (default_compilers): Pass "-o %g.s" to cc1 for headers even if
18776         -fdump-ada-spec is passed but not if -fsyntax-only is.
18777
18778 2015-06-22  Vladimir Makarov  <vmakarov@redhat.com>
18779
18780         PR bootstrap/63740
18781         * lra-lives.c (process_bb_lives): Check insn copying the same
18782         reload pseudo and don't create a copy for it.
18783
18784 2015-06-22  Tom de Vries  <tom@codesourcery.com>
18785
18786         * tree-parloops.c (transform_to_exit_first_loop_alt): Add update_stmt
18787         for cond_stmt.
18788
18789 2015-06-22  Tom de Vries  <tom@codesourcery.com>
18790
18791         * builtins.def (DEF_GOMP_BUILTIN): Test
18792         'flag_tree_parallelize_loops > 1' instead of
18793         'flag_tree_parallelize_loops'.  Test flag_cilkplus.
18794
18795 2015-06-22  Tom de Vries  <tom@codesourcery.com>
18796
18797         * dominance.c (calculate_dominance_info): Verify dominators if
18798         early-out.
18799
18800 2015-06-22  Marek Polacek  <polacek@redhat.com>
18801
18802         * match.pd ((x ^ y) ^ (x | y) -> x & y,
18803         (x & y) + (x ^ y) -> x | y, (x & y) | (x ^ y) -> x | y,
18804         (x & y) ^ (x ^ y) -> x | y, (x & y) + (x | y) -> x + y,
18805         (x | y) - (x ^ y) -> x & y, (x | y) - (x & y) -> x ^ y): New patterns.
18806
18807 2015-06-22  Uros Bizjak  <ubizjak@gmail.com>
18808
18809         PR target/65871
18810         * config/i386/i386.c (ix86_rtx_costs) <case COMPARE>: Ignore the
18811         cost of embedded comparison.
18812
18813 2015-06-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18814
18815         PR target/65914
18816         * config/rs6000/predicates.md (altivec_register_operand): Permit
18817         virtual stack registers.
18818         (vsx_register_operand): Likewise.
18819         (vfloat_operand): Likewise.
18820         (vint_operand): Likewise.
18821         (vlogical_operand): Likewise.
18822
18823 2015-06-22  Richard Biener  <rguenther@suse.de>
18824
18825         * tree-vectorizer.h (_loop_vec_info): Add scalar_cost_vec
18826         and single_scalar_iteration_cost members.
18827         (LOOP_VINFO_SCALAR_ITERATION_COST): New.
18828         (LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST): Likewise.
18829         (vect_get_single_scalar_iteration_cost): Remove.
18830         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
18831         Use LOOP_VINFO_SCALAR_ITERATION_COST.
18832         * tree-vect-loop.c (destroy_loop_vec_info): Free
18833         scalar_cost_vec.
18834         (vect_get_single_scalar_iteration_cost): Compute result into
18835         LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST and
18836         LOOP_VINFO_SCALAR_ITERATION_COST.  Make static.
18837         (vect_analyze_loop_2): Call vect_get_single_scalar_iteration_cost.
18838         (vect_estimate_min_profitable_iters): Use them.
18839
18840 2015-06-22  Christian Bruel  <christian.bruel@st.com>
18841
18842         PR target/52144
18843         * config/arm/arm.c (add_attribute, arm_insert_attributes): New functions
18844         (TARGET_INSERT_ATTRIBUTES): Define.
18845         (thumb_flipper): New var.
18846         * config/arm/arm.opt (-mflip-thumb): New switch.
18847
18848 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
18849             Martin Liska  <mliska@suse.cz>
18850
18851         PR ipa/65908
18852         * ipa-icf.c (sem_item::target_supports_symbol_aliases): Remove
18853         construction of arg_types.
18854         (sem_function::sem_function): Likewise.
18855         (sem_function::~sem_function): Remove destruction of arg_types.
18856         (sem_function::compatible_parm_types_p): New function.
18857         (sem_function::equals_wpa): Reorg matching of return values
18858         and parameter types.
18859         (sem_function::equals_private): Reorg mathcing of argument types.
18860         (sem_function::parse_tree_args): Remove.
18861         * ipa-icf.h (init_wpa): Do not call it.
18862         (parse_tree_args): Remove.
18863         (compatible_parm_types_p): Declare.
18864         (result_type): Remove.
18865         (arg_types): Remove.
18866
18867 2015-06-22  Jan Hubicka  <hubicka@ucw.cz>
18868
18869         PR ipa/66351
18870         * ipa-polymorphic-call.c
18871         (ipa_polymorphic_call_context::get_dynamic_type): Fix thinko when
18872         initializing alias oracle; fix formating; set base_alias_set if it
18873         is known.
18874
18875 2015-06-22  Mikhail Maltsev  <maltsevm@gmail.com>
18876
18877         * auto-inc-dec.c (reverse_mem, reverse_inc): Remove.
18878         (parse_add_or_inc): Use std::swap instead of reverse_{mem,inc}.
18879         (find_inc): Likewise.
18880         * combine.c (combine_simplify_rtx): Use std::swap instead of manually
18881         swapping.
18882         * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
18883         * df-scan.c (df_swap_refs): Remove.
18884         (df_sort_and_compress_refs): Use std::swap instead of df_swap_refs.
18885         * dominance.c (link_roots): Use std::swap instead of manually swapping.
18886         * expr.c (expand_expr_real_2, do_store_flag): Likewise.
18887         * fold-const.c (fold_relational_const): Likewise.
18888         * genattrtab.c (simplify_test_exp): Likewise.
18889         * gimple-match-head.c (gimple_resimplify2, gimple_resimplify3,
18890         gimple_simplify): Likewise.
18891         * ifcvt.c (noce_try_abs, find_if_header): Likewise.
18892         * internal-fn.c (expand_addsub_overflow, expand_mul_overflow): Likewise.
18893         * ipa-devirt.c (add_type_duplicate): Likewise.
18894         * loop-iv.c (get_biv_step_1, iv_number_of_iterations): Likewise.
18895         * lra-lives.c (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
18896         * lra.c (lra_create_copy): Likewise.
18897         * lto-streamer-out.c (DFS::DFS): Likewise.
18898         * modulo-sched.c (get_sched_window): Likewise.
18899         * omega.c (omega_pretty_print_problem): Likewise.
18900         * optabs.c (prepare_float_lib_cmp, expand_mult_highpart): Likewise.
18901         * reload1.c (reloads_unique_chain_p): Likewise.
18902         * sel-sched-ir.c (exchange_lv_sets, exchange_av_sets): Remove.
18903         (exchange_data_sets): Move logic from exchange_{av,lv}_sets here and
18904         use std::swap.
18905         * simplify-rtx.c (simplify_unary_operation_1): Use std::swap instead of
18906         manually swapping.
18907         * tree-if-conv.c (is_cond_scalar_reduction, predicate_scalar_phi,
18908         predicate_mem_writes): Likewise.
18909         * tree-loop-distribution.c (pg_add_dependence_edges): Likewise.
18910         * tree-predcom.c (combine_chains): Likewise.
18911         * tree-ssa-alias.c (nonoverlapping_component_refs_p,
18912         refs_may_alias_p_1): Likewise.
18913         * tree-ssa-ifcombine.c (recognize_if_then_else): Likewise.
18914         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
18915         * tree-ssa-loop-niter.c (refine_bounds_using_guard,
18916         number_of_iterations_cond): Likewise.
18917         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
18918         * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
18919         * tree-vect-slp.c (vect_build_slp_tree): Likewise.
18920         * tree-vect-stmts.c (supportable_widening_operation): Likewise.
18921         * tree-vrp.c (extract_range_from_binary_expr_1,
18922         extract_range_from_unary_expr_1): Likewise.
18923
18924 2015-06-20  Marek Polacek  <polacek@redhat.com>
18925
18926         * common.opt (fsanitize-undefined-trap-on-error): Add Driver.
18927
18928 2015-06-19  Kaz Kojima  <kkojima@gcc.gnu.org>
18929
18930         PR target/66591
18931         * config/sh/sh.c (prepare_move_operands): Replace subreg
18932         index term with R0 for base and index addressing.
18933
18934 2015-06-19  Jim Wilson  <jim.wilson@linaro.org>
18935
18936         * config/aarch64/aarch64.md (mov<mode>:GPF): Don't call force_reg if
18937         op1 is an fp zero.
18938         (movsf_aarch64): Change condition from register_operand to
18939         aarch64_reg_or_fp_zero for op1.  Change type for alternative 6 to
18940         load1.  Change type for alternative 7 to store1.
18941         (movdf_aarch64): Likewise.
18942
18943 2015-06-19  James Greenhalgh  <james.greenhalgh@arm.com>
18944
18945         * config/vax/vax.md: Adjust sign/zero extend patterns to
18946         handle SUBREGs in operands[1].
18947
18948 2015-06-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18949
18950         * config/i386/i386.c (ix86_function_versions): Use std::swap instead
18951         of manually swapping.
18952         (expand_vec_perm_interleave2): Likewise.
18953
18954 2015-06-19  Ilya Enkovich  <enkovich.gnu@gmail.com>
18955
18956         * tree-chkp.c (chkp_compute_bounds_for_assignment): Don't
18957         reuse bounds created for abnormal ssa names.
18958
18959 2015-06-19  Jakub Jelinek  <jakub@redhat.com>
18960
18961         * config/nvptx/nvptx.md (allocate_stack): Rename to...
18962         (allocate_stack_<mode>): ... this, and add :P on both
18963         match_operand and unspec.
18964         (allocate_stack): New expander.
18965
18966 2015-06-19  Christian Bruel  <christian.bruel@st.com>
18967
18968         PR target/66541
18969         PR target/52144
18970         * config/arm/arm.c (arm_set_current_function): Handle
18971         explicit default options.
18972
18973 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
18974
18975         * config/i386/i386.md (*movsicc_noc_zext): New insn.
18976         (zero-extended cmove with mem peephole2): New pattern.
18977         (cmove with mem peephole2): Merge patterns.
18978
18979 2015-06-18  Segher Boessenkool  <segher@kernel.crashing.org>
18980
18981         * config/rs6000/rs6000.h (WORD_REGISTER_OPERATIONS): Delete.
18982
18983 2015-06-18  Steve Ellcey  <sellcey@imgtec.com>
18984
18985         * config/mips/mips.c (mips_rtx_costs): Remove HONOR_NAN check.
18986         * config/mips/mips.md (*madd4<mode>): Ditto.
18987         (*nmadd3<mode>) Ditto.
18988         (*nmadd4<mode>_fastmath): Ditto.
18989         (*nmadd3<mode>_fastmath): Ditto.
18990         (*nmsub4<mode>): Ditto.
18991         (*nmsub3<mode>): Ditto.
18992         (*nmsub4<mode>_fastmath): Ditto.
18993         (*nmsub3<mode>_fastmath): Ditto.
18994
18995 2015-06-18  Michael Matz  <matz@suse.de>
18996
18997         PR middle-end/66253
18998         * tree-vect-stmts.c (vectorizable_store): Implement non-SLP
18999         grouped strided stores.
19000         (vectorizable_load): Don't use the DR from first_stmt in
19001         the non-SLP grouped strided case.
19002
19003 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
19004
19005         PR target/66569
19006         * function.c (assign_bounds): Add arguments assign_regs,
19007         assign_special, assign_bt.
19008         (assign_parms): For vararg functions handle bounds in BT
19009         and special slots after incoming vararg bounds.
19010
19011 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
19012
19013         PR middle-end/66568
19014         * cfgexpand.c (expand_return): Handle missing bounds.
19015         (expand_gimple_stmt_1): Likewise.
19016         * tree-chkp.c (chkp_expand_zero_bounds): New.
19017         * tree-chkp.h (chkp_expand_zero_bounds): New.
19018
19019 2015-06-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
19020
19021         PR middle-end/66567
19022         * ipa-chkp.c (chkp_maybe_create_clone): Require
19023         functions to be instrumentable.
19024         * tree-chkp.c (chkp_replace_function_pointer): Use
19025         chkp_instrumentable_p instead of attribute check.
19026
19027 2015-06-18  Richard Biener  <rguenther@suse.de>
19028
19029         PR tree-optimization/66510
19030         * tree-vect-stmts.c (vectorizable_load): Properly compute the
19031         number of vector loads for SLP permuted loads.
19032         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Also
19033         check the stride for loop vectorization.
19034         (vect_enhance_data_refs_alignment): Deal with SLP adjusted
19035         vectorization factor.
19036         (vect_analyze_group_access): If the group size is not a power
19037         of two require a epilogue loop.
19038         * tree-vect-loop.c (vect_analyze_loop_2): Move alignment
19039         compute and optimizing and alias test pruning after final
19040         vectorization factor computation.
19041         * tree-vect-slp.c (vect_build_slp_tree_1): Remove check on
19042         vector alignment.
19043         (vect_transform_slp_perm_load): Properly compute the original
19044         number of vector load stmts.
19045
19046 2015-06-18  Uros Bizjak  <ubizjak@gmail.com>
19047
19048         * doc/invoke.texi (-fsanitize-sections): Split @var to avoid
19049         "unlikely character , in @var" warning.
19050
19051 2015-06-17  Uros Bizjak  <ubizjak@gmail.com>
19052
19053         * config/i386/i386.c (ix86_function_arg): Nest TARGET_64BIT code.
19054         (ix86_function_arg_advance): Ditto.
19055         (ix86_pass_by_reference): Ditto.  Rewrite MS_ABI part.
19056
19057 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
19058
19059         * function.h (struct rtl_data): Remove struct and accessor macros.
19060         * emit-rtl.h (struct rtl_data): Relocate to here.
19061         * Makefile.in (GTFILES): Add emit-rtl.h.
19062         * df-core.c: Include emit-rtl.h.
19063         * genattrtab.c: Likewise.
19064         * genconditions.c: Likewise.
19065         * genpreds.c: Likewise.
19066         * genrecog.c: Likewise.
19067         * regcprop.c: Likewise.
19068         * resource.c: Likewise.
19069         * sched-rgn.c: Likewise.
19070         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
19071         * config/i386/winnt.c: Likewise.
19072
19073 2015-06-17  Jakub Jelinek  <jakub@redhat.com>
19074
19075         PR middle-end/66429
19076         * omp-low.c (expand_omp_taskreg, expand_omp_target): Use child_cfun
19077         instead of DECL_STRUCT_FUNCTION (child_fn).  Or in has_simduid_loops
19078         and has_force_vectorize_loops flags from cfun into
19079         child_cfun.
19080         (expand_omp_simd): For broken loop, set cfun->has_simduid_loops
19081         if simduid is non-NULL.
19082         * tree-pass.h (make_pass_simduid_cleanup): New prototype.
19083         * passes.def (pass_simduid_cleanup): Add new pass after loop
19084         passes.
19085         * tree-vectorizer.c (adjust_simduid_builtins): Remove one unnecessary
19086         indirection from htab argument's type.
19087         (shrink_simd_arrays): New function.
19088         (vectorize_loops): Use it.  Adjust adjust_simduid_builtins caller.
19089         Don't call adjust_simduid_builtins if there are no loops.
19090         (pass_data_simduid_cleanup, pass_simduid_cleanup): New variables.
19091         (pass_simduid_cleanup::execute): New method.
19092         (make_pass_simduid_cleanup): New function.
19093
19094 2017-06-17  Andrew MacLeod  <amacleod@redhat.com>
19095
19096         * tree-core.h (tree_target_option): Make opts field a pointer to a
19097         cl_target_option instead of an instance of the struct.
19098         * tree.h (TREE_TARGET_OPTION): Return the pointer, not an address of
19099         the structure.
19100         * tree.c (make_node_stat ): Allocate a cl_target_option struct for
19101         TARGET_OPTION_NODE.
19102         (copy_node_stat): Allocate and copy struct cl_target_option.
19103
19104 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
19105
19106         * tree.h (merge_dllimport_decl_attributes, handle_dll_attribute):
19107         Remove conditional exposure of prototypes.
19108         (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Delete.
19109         * tree.c (anon_aggrname_format, anon_aggrname_p): New.  Replace macro
19110         definitions in tree.h with functions.
19111         * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Use
19112         anon_aggrname_p.
19113         * tree-streamer-out.c (write_ts_decl_minimal_tree_pointers): Likewise.
19114
19115 2015-06-17  Segher Boessenkool  <segher@kernel.crashing.org>
19116
19117         * config/rs6000/rs6000.md (*cmp<mode>_internal1): Rename to...
19118         (*cmp<mode>_signed): ... this.
19119         (*cmpsi_internal2, *cmpdi_internal2): Merge, rename to...
19120         (*cmp<mode>_unsigned): ... this.  Remove %b.
19121
19122 2015-06-17  Andrew MacLeod  <amacleod@redhat.com>
19123
19124         * coretypes.h: Include input.h and as-a.h.
19125         * rtl.h: Include input.h and as-a.h for generator files.
19126         * hwint.c: Include coretypes.h, don't include diagnostic-core.h.
19127         * vec.c: Don't include diagnostic-core.h.
19128         * alias.c: Do not include input.h, line-map.h or is-a.h.
19129         * asan.c: Likewise.
19130         * attribs.c: Likewise.
19131         * auto-inc-dec.c: Likewise.
19132         * auto-profile.c: Likewise.
19133         * bb-reorder.c: Likewise.
19134         * bt-load.c: Likewise.
19135         * builtins.c: Likewise.
19136         * caller-save.c: Likewise.
19137         * calls.c: Likewise.
19138         * ccmp.c: Likewise.
19139         * cfg.c: Likewise.
19140         * cfganal.c: Likewise.
19141         * cfgbuild.c: Likewise.
19142         * cfgcleanup.c: Likewise.
19143         * cfgexpand.c: Likewise.
19144         * cfghooks.c: Likewise.
19145         * cfgloop.c: Likewise.
19146         * cfgloop.h: Likewise.
19147         * cfgloopanal.c: Likewise.
19148         * cfgloopmanip.c: Likewise.
19149         * cfgrtl.c: Likewise.
19150         * cgraph.c: Likewise.
19151         * cgraphbuild.c: Likewise.
19152         * cgraphclones.c: Likewise.
19153         * cgraphunit.c: Likewise.
19154         * cilk-common.c: Likewise.
19155         * combine-stack-adj.c: Likewise.
19156         * combine.c: Likewise.
19157         * compare-elim.c: Likewise.
19158         * convert.c: Likewise.
19159         * coverage.c: Likewise.
19160         * cppbuiltin.c: Likewise.
19161         * cprop.c: Likewise.
19162         * cse.c: Likewise.
19163         * cselib.c: Likewise.
19164         * data-streamer-in.c: Likewise.
19165         * data-streamer-out.c: Likewise.
19166         * data-streamer.c: Likewise.
19167         * dbxout.c: Likewise.
19168         * dce.c: Likewise.
19169         * ddg.c: Likewise.
19170         * debug.c: Likewise.
19171         * df-core.c: Likewise.
19172         * df-problems.c: Likewise.
19173         * df-scan.c: Likewise.
19174         * df.h: Likewise.
19175         * dfp.c: Likewise.
19176         * diagnostic-core.h: Likewise.
19177         * diagnostic.c: Likewise.
19178         * dojump.c: Likewise.
19179         * dominance.c: Likewise.
19180         * domwalk.c: Likewise.
19181         * double-int.c: Likewise.
19182         * dse.c: Likewise.
19183         * dumpfile.c: Likewise.
19184         * dumpfile.h: Likewise.
19185         * dwarf2asm.c: Likewise.
19186         * dwarf2cfi.c: Likewise.
19187         * dwarf2out.c: Likewise.
19188         * emit-rtl.c: Likewise.
19189         * et-forest.c: Likewise.
19190         * except.c: Likewise.
19191         * explow.c: Likewise.
19192         * expmed.c: Likewise.
19193         * expr.c: Likewise.
19194         * final.c: Likewise.
19195         * fixed-value.c: Likewise.
19196         * fold-const.c: Likewise.
19197         * function.c: Likewise.
19198         * fwprop.c: Likewise.
19199         * gcc-plugin.h: Likewise.
19200         * gcse.c: Likewise.
19201         * generic-match-head.c: Likewise.
19202         * ggc-page.c: Likewise.
19203         * gimple-builder.c: Likewise.
19204         * gimple-expr.c: Likewise.
19205         * gimple-fold.c: Likewise.
19206         * gimple-iterator.c: Likewise.
19207         * gimple-low.c: Likewise.
19208         * gimple-match-head.c: Likewise.
19209         * gimple-pretty-print.c: Likewise.
19210         * gimple-ssa-isolate-paths.c: Likewise.
19211         * gimple-ssa-strength-reduction.c: Likewise.
19212         * gimple-streamer-in.c: Likewise.
19213         * gimple-streamer-out.c: Likewise.
19214         * gimple-streamer.h: Likewise.
19215         * gimple-walk.c: Likewise.
19216         * gimple.c: Likewise.
19217         * gimplify-me.c: Likewise.
19218         * gimplify.c: Likewise.
19219         * godump.c: Likewise.
19220         * graph.c: Likewise.
19221         * graphite-blocking.c: Likewise.
19222         * graphite-dependences.c: Likewise.
19223         * graphite-interchange.c: Likewise.
19224         * graphite-isl-ast-to-gimple.c: Likewise.
19225         * graphite-optimize-isl.c: Likewise.
19226         * graphite-poly.c: Likewise.
19227         * graphite-scop-detection.c: Likewise.
19228         * graphite-sese-to-poly.c: Likewise.
19229         * graphite.c: Likewise.
19230         * haifa-sched.c: Likewise.
19231         * hw-doloop.c: Likewise.
19232         * ifcvt.c: Likewise.
19233         * init-regs.c: Likewise.
19234         * input.c: Likewise.
19235         * internal-fn.c: Likewise.
19236         * ipa-chkp.c: Likewise.
19237         * ipa-comdats.c: Likewise.
19238         * ipa-cp.c: Likewise.
19239         * ipa-devirt.c: Likewise.
19240         * ipa-icf-gimple.c: Likewise.
19241         * ipa-icf.c: Likewise.
19242         * ipa-inline-analysis.c: Likewise.
19243         * ipa-inline-transform.c: Likewise.
19244         * ipa-inline.c: Likewise.
19245         * ipa-polymorphic-call.c: Likewise.
19246         * ipa-profile.c: Likewise.
19247         * ipa-prop.c: Likewise.
19248         * ipa-pure-const.c: Likewise.
19249         * ipa-ref.c: Likewise.
19250         * ipa-reference.c: Likewise.
19251         * ipa-split.c: Likewise.
19252         * ipa-utils.c: Likewise.
19253         * ipa-visibility.c: Likewise.
19254         * ipa.c: Likewise.
19255         * ira-build.c: Likewise.
19256         * ira-color.c: Likewise.
19257         * ira-conflicts.c: Likewise.
19258         * ira-costs.c: Likewise.
19259         * ira-emit.c: Likewise.
19260         * ira-lives.c: Likewise.
19261         * ira.c: Likewise.
19262         * jump.c: Likewise.
19263         * langhooks.c: Likewise.
19264         * lcm.c: Likewise.
19265         * loop-doloop.c: Likewise.
19266         * loop-init.c: Likewise.
19267         * loop-invariant.c: Likewise.
19268         * loop-iv.c: Likewise.
19269         * loop-unroll.c: Likewise.
19270         * lower-subreg.c: Likewise.
19271         * lra-assigns.c: Likewise.
19272         * lra-coalesce.c: Likewise.
19273         * lra-constraints.c: Likewise.
19274         * lra-eliminations.c: Likewise.
19275         * lra-lives.c: Likewise.
19276         * lra-remat.c: Likewise.
19277         * lra-spills.c: Likewise.
19278         * lra.c: Likewise.
19279         * lto-cgraph.c: Likewise.
19280         * lto-compress.c: Likewise.
19281         * lto-opts.c: Likewise.
19282         * lto-section-in.c: Likewise.
19283         * lto-section-out.c: Likewise.
19284         * lto-streamer-in.c: Likewise.
19285         * lto-streamer-out.c: Likewise.
19286         * lto-streamer.c: Likewise.
19287         * mcf.c: Likewise.
19288         * mode-switching.c: Likewise.
19289         * modulo-sched.c: Likewise.
19290         * omega.c: Likewise.
19291         * omp-low.c: Likewise.
19292         * optabs.c: Likewise.
19293         * opts-global.c: Likewise.
19294         * opts.h: Likewise.
19295         * passes.c: Likewise.
19296         * plugin.c: Likewise.
19297         * postreload-gcse.c: Likewise.
19298         * postreload.c: Likewise.
19299         * predict.c: Likewise.
19300         * pretty-print.h: Likewise.
19301         * print-rtl.c: Likewise.
19302         * print-tree.c: Likewise.
19303         * profile.c: Likewise.
19304         * real.c: Likewise.
19305         * realmpfr.c: Likewise.
19306         * recog.c: Likewise.
19307         * ree.c: Likewise.
19308         * reg-stack.c: Likewise.
19309         * regcprop.c: Likewise.
19310         * reginfo.c: Likewise.
19311         * regrename.c: Likewise.
19312         * regstat.c: Likewise.
19313         * reload.c: Likewise.
19314         * reload1.c: Likewise.
19315         * reorg.c: Likewise.
19316         * resource.c: Likewise.
19317         * rtl-chkp.c: Likewise.
19318         * rtl-error.c: Likewise.
19319         * rtlanal.c: Likewise.
19320         * rtlhooks.c: Likewise.
19321         * sanopt.c: Likewise.
19322         * sched-deps.c: Likewise.
19323         * sched-ebb.c: Likewise.
19324         * sched-rgn.c: Likewise.
19325         * sched-vis.c: Likewise.
19326         * sdbout.c: Likewise.
19327         * sel-sched-dump.c: Likewise.
19328         * sel-sched-ir.c: Likewise.
19329         * sel-sched.c: Likewise.
19330         * sese.c: Likewise.
19331         * shrink-wrap.c: Likewise.
19332         * simplify-rtx.c: Likewise.
19333         * stack-ptr-mod.c: Likewise.
19334         * statistics.c: Likewise.
19335         * stmt.c: Likewise.
19336         * stor-layout.c: Likewise.
19337         * store-motion.c: Likewise.
19338         * streamer-hooks.c: Likewise.
19339         * stringpool.c: Likewise.
19340         * symtab.c: Likewise.
19341         * target-globals.c: Likewise.
19342         * targhooks.c: Likewise.
19343         * toplev.c: Likewise.
19344         * tracer.c: Likewise.
19345         * trans-mem.c: Likewise.
19346         * tree-affine.c: Likewise.
19347         * tree-browser.c: Likewise.
19348         * tree-call-cdce.c: Likewise.
19349         * tree-cfg.c: Likewise.
19350         * tree-cfgcleanup.c: Likewise.
19351         * tree-chkp-opt.c: Likewise.
19352         * tree-chkp.c: Likewise.
19353         * tree-chrec.c: Likewise.
19354         * tree-complex.c: Likewise.
19355         * tree-data-ref.c: Likewise.
19356         * tree-dfa.c: Likewise.
19357         * tree-diagnostic.c: Likewise.
19358         * tree-dump.c: Likewise.
19359         * tree-eh.c: Likewise.
19360         * tree-emutls.c: Likewise.
19361         * tree-if-conv.c: Likewise.
19362         * tree-inline.c: Likewise.
19363         * tree-into-ssa.c: Likewise.
19364         * tree-iterator.c: Likewise.
19365         * tree-loop-distribution.c: Likewise.
19366         * tree-nested.c: Likewise.
19367         * tree-nrv.c: Likewise.
19368         * tree-object-size.c: Likewise.
19369         * tree-outof-ssa.c: Likewise.
19370         * tree-parloops.c: Likewise.
19371         * tree-phinodes.c: Likewise.
19372         * tree-predcom.c: Likewise.
19373         * tree-pretty-print.c: Likewise.
19374         * tree-profile.c: Likewise.
19375         * tree-scalar-evolution.c: Likewise.
19376         * tree-sra.c: Likewise.
19377         * tree-ssa-address.c: Likewise.
19378         * tree-ssa-alias.c: Likewise.
19379         * tree-ssa-ccp.c: Likewise.
19380         * tree-ssa-coalesce.c: Likewise.
19381         * tree-ssa-copy.c: Likewise.
19382         * tree-ssa-copyrename.c: Likewise.
19383         * tree-ssa-dce.c: Likewise.
19384         * tree-ssa-dom.c: Likewise.
19385         * tree-ssa-dse.c: Likewise.
19386         * tree-ssa-forwprop.c: Likewise.
19387         * tree-ssa-ifcombine.c: Likewise.
19388         * tree-ssa-live.c: Likewise.
19389         * tree-ssa-loop-ch.c: Likewise.
19390         * tree-ssa-loop-im.c: Likewise.
19391         * tree-ssa-loop-ivcanon.c: Likewise.
19392         * tree-ssa-loop-ivopts.c: Likewise.
19393         * tree-ssa-loop-manip.c: Likewise.
19394         * tree-ssa-loop-niter.c: Likewise.
19395         * tree-ssa-loop-prefetch.c: Likewise.
19396         * tree-ssa-loop-unswitch.c: Likewise.
19397         * tree-ssa-loop.c: Likewise.
19398         * tree-ssa-math-opts.c: Likewise.
19399         * tree-ssa-operands.c: Likewise.
19400         * tree-ssa-phiopt.c: Likewise.
19401         * tree-ssa-phiprop.c: Likewise.
19402         * tree-ssa-pre.c: Likewise.
19403         * tree-ssa-propagate.c: Likewise.
19404         * tree-ssa-reassoc.c: Likewise.
19405         * tree-ssa-sccvn.c: Likewise.
19406         * tree-ssa-scopedtables.c: Likewise.
19407         * tree-ssa-sink.c: Likewise.
19408         * tree-ssa-strlen.c: Likewise.
19409         * tree-ssa-structalias.c: Likewise.
19410         * tree-ssa-tail-merge.c: Likewise.
19411         * tree-ssa-ter.c: Likewise.
19412         * tree-ssa-threadedge.c: Likewise.
19413         * tree-ssa-threadupdate.c: Likewise.
19414         * tree-ssa-uncprop.c: Likewise.
19415         * tree-ssa-uninit.c: Likewise.
19416         * tree-ssa.c: Likewise.
19417         * tree-ssanames.c: Likewise.
19418         * tree-stdarg.c: Likewise.
19419         * tree-streamer-in.c: Likewise.
19420         * tree-streamer-out.c: Likewise.
19421         * tree-streamer.c: Likewise.
19422         * tree-switch-conversion.c: Likewise.
19423         * tree-tailcall.c: Likewise.
19424         * tree-vect-data-refs.c: Likewise.
19425         * tree-vect-generic.c: Likewise.
19426         * tree-vect-loop-manip.c: Likewise.
19427         * tree-vect-loop.c: Likewise.
19428         * tree-vect-patterns.c: Likewise.
19429         * tree-vect-slp.c: Likewise.
19430         * tree-vect-stmts.c: Likewise.
19431         * tree-vectorizer.c: Likewise.
19432         * tree-vrp.c: Likewise.
19433         * tree.c: Likewise.
19434         * tsan.c: Likewise.
19435         * ubsan.c: Likewise.
19436         * valtrack.c: Likewise.
19437         * value-prof.c: Likewise.
19438         * var-tracking.c: Likewise.
19439         * varasm.c: Likewise.
19440         * varpool.c: Likewise.
19441         * vmsdbgout.c: Likewise.
19442         * vtable-verify.c: Likewise.
19443         * web.c: Likewise.
19444         * wide-int.cc: Likewise.
19445         * xcoffout.c: Likewise.
19446         * common/common-target.h: Do not include input.h, line-map.h or is-a.h.
19447         * common/common-targhooks.c: Likewise.
19448         * config/aarch64/aarch64-builtins.c: Likewise.
19449         * config/aarch64/aarch64.c: Likewise.
19450         * config/alpha/alpha.c: Likewise.
19451         * config/arc/arc.c: Likewise.
19452         * config/arm/aarch-common.c: Likewise.
19453         * config/arm/arm-builtins.c: Likewise.
19454         * config/arm/arm-c.c: Likewise.
19455         * config/arm/arm.c: Likewise.
19456         * config/avr/avr-c.c: Likewise.
19457         * config/avr/avr-log.c: Likewise.
19458         * config/avr/avr.c: Likewise.
19459         * config/bfin/bfin.c: Likewise.
19460         * config/c6x/c6x.c: Likewise.
19461         * config/cr16/cr16.c: Likewise.
19462         * config/cris/cris.c: Likewise.
19463         * config/darwin-c.c: Likewise.
19464         * config/darwin.c: Likewise.
19465         * config/default-c.c: Likewise.
19466         * config/epiphany/epiphany.c: Likewise.
19467         * config/epiphany/mode-switch-use.c: Likewise.
19468         * config/epiphany/resolve-sw-modes.c: Likewise.
19469         * config/fr30/fr30.c: Likewise.
19470         * config/frv/frv.c: Likewise.
19471         * config/ft32/ft32.c: Likewise.
19472         * config/glibc-c.c: Likewise.
19473         * config/h8300/h8300.c: Likewise.
19474         * config/i386/i386-c.c: Likewise.
19475         * config/i386/i386.c: Likewise.
19476         * config/i386/msformat-c.c: Likewise.
19477         * config/i386/winnt-cxx.c: Likewise.
19478         * config/i386/winnt-stubs.c: Likewise.
19479         * config/i386/winnt.c: Likewise.
19480         * config/ia64/ia64-c.c: Likewise.
19481         * config/ia64/ia64.c: Likewise.
19482         * config/iq2000/iq2000.c: Likewise.
19483         * config/lm32/lm32.c: Likewise.
19484         * config/m32c/m32c-pragma.c: Likewise.
19485         * config/m32c/m32c.c: Likewise.
19486         * config/m32r/m32r.c: Likewise.
19487         * config/m68k/m68k.c: Likewise.
19488         * config/mcore/mcore.c: Likewise.
19489         * config/mep/mep-pragma.c: Likewise.
19490         * config/mep/mep.c: Likewise.
19491         * config/microblaze/microblaze-c.c: Likewise.
19492         * config/microblaze/microblaze.c: Likewise.
19493         * config/mips/mips.c: Likewise.
19494         * config/mmix/mmix.c: Likewise.
19495         * config/mn10300/mn10300.c: Likewise.
19496         * config/moxie/moxie.c: Likewise.
19497         * config/msp430/msp430-c.c: Likewise.
19498         * config/msp430/msp430.c: Likewise.
19499         * config/nds32/nds32-cost.c: Likewise.
19500         * config/nds32/nds32-fp-as-gp.c: Likewise.
19501         * config/nds32/nds32-intrinsic.c: Likewise.
19502         * config/nds32/nds32-isr.c: Likewise.
19503         * config/nds32/nds32-md-auxiliary.c: Likewise.
19504         * config/nds32/nds32-memory-manipulation.c: Likewise.
19505         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
19506         * config/nds32/nds32-predicates.c: Likewise.
19507         * config/nds32/nds32.c: Likewise.
19508         * config/nios2/nios2.c: Likewise.
19509         * config/nvptx/nvptx.c: Likewise.
19510         * config/pa/pa.c: Likewise.
19511         * config/pdp11/pdp11.c: Likewise.
19512         * config/rl78/rl78-c.c: Likewise.
19513         * config/rl78/rl78.c: Likewise.
19514         * config/rs6000/rs6000-c.c: Likewise.
19515         * config/rs6000/rs6000.c: Likewise.
19516         * config/rx/rx.c: Likewise.
19517         * config/s390/s390-c.c: Likewise.
19518         * config/s390/s390.c: Likewise.
19519         * config/sh/sh-c.c: Likewise.
19520         * config/sh/sh-mem.cc: Likewise.
19521         * config/sh/sh.c: Likewise.
19522         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
19523         * config/sh/sh_treg_combine.cc: Likewise.
19524         * config/sol2-c.c: Likewise.
19525         * config/sol2-cxx.c: Likewise.
19526         * config/sol2-stubs.c: Likewise.
19527         * config/sol2.c: Likewise.
19528         * config/sparc/sparc-c.c: Likewise.
19529         * config/sparc/sparc.c: Likewise.
19530         * config/spu/spu-c.c: Likewise.
19531         * config/spu/spu.c: Likewise.
19532         * config/stormy16/stormy16.c: Likewise.
19533         * config/tilegx/mul-tables.c: Likewise.
19534         * config/tilegx/tilegx-c.c: Likewise.
19535         * config/tilegx/tilegx.c: Likewise.
19536         * config/tilepro/mul-tables.c: Likewise.
19537         * config/tilepro/tilepro-c.c: Likewise.
19538         * config/tilepro/tilepro.c: Likewise.
19539         * config/v850/v850-c.c: Likewise.
19540         * config/v850/v850.c: Likewise.
19541         * config/vax/vax.c: Likewise.
19542         * config/visium/visium.c: Likewise.
19543         * config/vms/vms-c.c: Likewise.
19544         * config/vms/vms.c: Likewise.
19545         * config/vxworks.c: Likewise.
19546         * config/winnt-c.c: Likewise.
19547         * config/xtensa/xtensa.c: Likewise.
19548
19549 2015-06-17  Robert Suchanek  <robert.suchanek@imgtec.com>
19550
19551         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class): New
19552         function.
19553         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define macro.
19554
19555 2015-06-17  Richard Biener  <rguenther@suse.de>
19556
19557         PR tree-optimization/66251
19558         * tree-vect-stmts.c (vectorizable_store): Fix gathering of vectorized
19559         stmts for SLP strided stores.
19560
19561         Revert
19562         2015-05-22  Richard Biener  <rguenther@suse.de>
19563
19564         PR tree-optimization/66251
19565         * tree-vect-stmts.c (vectorizable_conversion): Properly
19566         set STMT_VINFO_VEC_STMT even for the SLP case.
19567
19568         2015-05-26  Michael Matz  <matz@suse.de>
19569
19570         PR middle-end/66251
19571         * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set
19572         STMT_VINFO_VEC_STMT, also with SLP.
19573
19574 2015-06-16  Uros Bizjak  <ubizjak@gmail.com>
19575
19576         PR target/56766
19577         * config/i386/sse.md (*avx_addsubv4df3_1): New insn pattern.
19578         (*avx_addsubv4df3_1s): Ditto.
19579         (*sse3_addsubv2df3_1): Ditto.
19580         (*sse3_addsubv2df3_1s): Ditto.
19581         (*avx_addsubv8sf3_1): Ditto.
19582         (*avx_addsubv8sf3_1s): Ditto.
19583         (*sse3_addsubv4sf3_1): Ditto.
19584         (*sse3_addsubv4sf3_1s): Ditto.
19585
19586 2015-06-16  Steve Ellcey  <sellcey@imgtec.com>
19587
19588         * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): New.
19589         (SYSROOT_SUFFIX_SPEC): Update.
19590         (SYSROOT_HEADERS_SUFFIX_SPEC): New.
19591         (STARTFILE_PREFIX_SPEC): Update.
19592         * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Remove.
19593         (MULTILIB_REQUIRED): New.
19594         (MULTILIB_OSDIRNAMES): New.
19595         * config/mips/t-img-linux (MULTILIB_EXCEPTIONS): Remove.
19596         (MULTILIB_REQUIRED): New.
19597         (MULTILIB_OSDIRNAMES): New.
19598
19599 2015-06-16  Matthew Wahab  <matthew.wahab@arm.com>
19600
19601         * config/aarch64/aarch64-arches.def: Add "armv8.1-a".
19602         * config/aarch64/aarch64-options-extensions.def: Update "fP",
19603         "simd" and "crypto".  Add "lse", "pan", "lor" and "rdma".
19604         * config/aarch64/aarch64.h (AARCH64_FL_LSE): New.
19605         (AARCH64_FL_PAN): New.
19606         (AARCH64_FL_LOR): New.
19607         (AARCH64_FL_RDMA): New.
19608         (AARCH64_FL_FOR_ARCH8_1): New.
19609         * doc/invoke.texi (AArch64 Options): Add "armv8.1-a" to
19610         -march. Add "lse", "pan", "lor", "rdma" to feature modifiers.
19611
19612 2015-06-16  Martin Liska  <mliska@suse.cz>
19613
19614         * bitmap.c (dump_bitmap_statistics): Fix GNU coding style.
19615         * hash-table.c (void dump_hash_table_loc_statistics): Add missing
19616         guard.
19617
19618 2015-06-16  Richard Biener  <rguenther@suse.de>
19619
19620         * tree-vect-stmts.c (vectorizable_store): Adjust.
19621         (vectorizable_load): Likewise.
19622         * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
19623         Simplify.
19624         (vect_create_data_ref_ptr): Likewise.
19625         (bump_vector_ptr): Adjust.
19626
19627 2015-06-16  Richard Biener  <rguenther@suse.de>
19628
19629         * tree-vect-stmts.c (vectorizable_load): Properly start loads
19630         with the first element if this is grouped loads.
19631
19632 2015-06-16  James Greenhalgh  <james.greenhalgh@arm.com>
19633
19634         * config/arm/arm-protos.h (struct tune_params): Rename
19635         log_op_non_sc to log_op_non_short_circuit, and rename enum
19636         values to expand SC to SHORT_CIRCUIT.
19637         * config/arm/arm.c (arm_slowmul_tune): Expand LOG_OP_NON_SC
19638         to LOG_OP_NON_SHORT_CIRCUIT.
19639         (arm_fastmul_tune):Likewise
19640         (arm_strongarm_tune): Likewise.
19641         (arm_xscale_tune): Likewise.
19642         (arm_9e_tune): Likewise.
19643         (arm_marvell_pj4_tune): Likewise.
19644         (arm_v6t2_tune): Likewise.
19645         (arm_cortex_tune): Likewise.
19646         (arm_cortex_a8_tune): Likewise.
19647         (arm_cortex_a7_tune): Likewise.
19648         (arm_cortex_a15_tune): Likewise.
19649         (arm_cortex_a53_tune): Likewise.
19650         (arm_cortex_a57_tune): Likewise.
19651         (arm_xgene1_tune): Likewise.
19652         (arm_cortex_a5_tune): Likewise.
19653         (arm_cortex_a9_tune): Likewise.
19654         (arm_cortex_a12_tune): Likewise.
19655         (arm_v7m_tune): Likewise.
19656         (arm_cortex_m7_tune): Likewise.
19657         (arm_v6m_tune): Likewise.
19658         (arm_fa726te_tune): Likewise.
19659
19660 2015-06-15  David Edelsohn  <dje.gcc@gmail.com>
19661
19662         * altivec.md: Delete UNSPEC_VMLADDUHM.
19663         (mulv4si3_p8): New pattern.
19664         (mulv4si3): Use it for POWER8.
19665         (mulv8hi3): Use vmladduhm with zero addend.
19666         (altivec_vmladduhm): Descriptive RTL.
19667
19668 2015-06-15  Jim Wilson  <jim.wilson@linaro.org>
19669
19670         * config/aarch64/aarch64.md (mov<mode>_aarch64): Change alternative 2
19671         to use neon_move instead of mov_imm.
19672         (movdi_aarch64): Change alternative 14 to use neon_move not fmov.
19673         (movtf_aarch64): Change alternative 4 to use neon_move_q not fconstd.
19674
19675         * config/aarch64/aarch64.c (aarch64_valid_floating_const): Move
19676         aarch64_float_const_zero_rtx_p check before TFmode check.
19677         * config/aarch64/aarch64.md (movtf): Don't call force_reg if op1 is
19678         an fp zero.
19679         (movtf_aarch64): Separate ?rY alternative into two.  Adjust assembly
19680         code and attributes to match.  Change condition from register_operand
19681         to aarch64_reg_or_fp_zero for op1.  Change type for ldp from
19682         neon_load1_2reg to load2.  Change type for stp from neon_store1_2reg
19683         to store2.
19684
19685 2015-06-15  Aldy Hernandez  <aldyh@redhat.com>
19686
19687         PR debug/66535
19688         * dwarf2out.c (gen_subprogram_die): Do not check a parent's tag if
19689         there is no parent.
19690
19691 2015-06-14  Shiva Chen  <shiva0217@gmail.com>
19692
19693         * aarch64.c (aarch64_simd_lane_bounds): Change %ld to %wd for
19694         HOST_WIDE_INT parameter.
19695
19696 2015-06-14  Jan Hubicka  <hubicka@ucw.cz>
19697
19698         PR ipa/66181
19699         * lto-streamer-out.c (hash_tree): Do not hash TYPE_NO_FORCE_BLK.
19700         * tree-streamer-out.c (pack_ts_type_common_value_fields): Do not stream
19701         TYPE_NO_FORCE_BLK.
19702         * tree-streamer-in.c (unpack_ts_type_common_value_fields): Likewise.
19703
19704 2015-06-14  Richard Sandiford  <richard.sandiford@arm.com>
19705
19706         * rtl.h (classify_insn): Declare.
19707         * emit-rtl.c (classify_insn): Move to...
19708         * rtl.c: ...here and add generator support.
19709         * gensupport.h (get_emit_function, needs_barrier_p): Declare.
19710         * gensupport.c (get_emit_function, needs_barrier_p): New functions.
19711         * genemit.c (gen_emit_seq): New function.
19712         (gen_expand, gen_split): Use it.
19713
19714 2015-06-13  Patrick Palka  <ppalka@gcc.gnu.org>
19715
19716         * tree.c (make_vector_stat): Fix comment to state that the
19717         function returns a VECTOR_CST.
19718
19719 2015-06-13  Richard Sandiford  <richard.sandiford@arm.com>
19720
19721         * gensupport.h (add_implicit_parallel): Declare.
19722         * genrecog.c (add_implicit_parallel): Move to...
19723         * gensupport.c (add_implicit_parallel): ...here.
19724         (process_one_cond_exec): Use it.
19725         * genemit.c (gen_insn): Likewise.
19726
19727 2015-06-13  Iain Sandoe  <iain@codesourcery.com>
19728
19729         PR bootstrap/66448
19730         * passes.c (rest_of_decl_compilation): Do not register globals for
19731         early debug if they are declared in built-ins.
19732
19733 2015-06-12  Aldy Hernandez  <aldyh@redhat.com>
19734
19735         * dwarf2out.c (check_die): Protect with ENABLE_CHECKING.
19736
19737 2015-06-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19738
19739         * ifcvt.c (noce_try_store_flag_constants): Use std::swap instead of
19740         manually swapping.
19741         (noce_try_cmove_arith): Likewise.
19742         (noce_get_alt_condition): Likewise.
19743
19744 2015-06-12  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
19745
19746         * common/config/i386/i386-common.c
19747         (OPTION_MASK_ISA_MWAITX_SET): New.
19748         (ix86_handle_option): Handle mwaitx.
19749         * config.gcc (i[34567]86-*-*): Add mwaitxintrin.h,
19750         (x86_64-*-*): Likewise.
19751         * config/i386/mwaitxintrin.h: New header.
19752         * config/i386/cpuid.h (bit_MWAITX):  Define.
19753         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
19754         MWAITX support.
19755         * config/i386/i386.opt (mwaitx): New.
19756         * config/i386/i386-builtin-types.def
19757         (VOID_FTYPE_UNSIGNED_ UNSIGNED_UNSIGNED): New function type.
19758         * config/i386/i386-c.c: Define __MWAITX__ if needed.
19759         * config/i386/i386.c (ix86_target_string): Define -mmwaitx option.
19760         (PTA_MWAITX): New.
19761         (ix86_option_override_internal): Handle new option.
19762         (processor_alias_table): Added PTA_MWAITX.
19763         (ix86_valid_target_attribute_inner_p): Add OPT_mmwaitx.
19764         (ix86_builtins): Add IX86_BUILTIN_MWAITX, IX86_BUILTIN_MONITORX.
19765         (ix86_expand_builtin): Handle IX86_BUILTIN_MWAITX and
19766         IX86_BUILTIN_MONITORX  built-ins.
19767         * config/i386/i386.h (TARGET_MWAITX): New.
19768         * config/i386/i386.md (unspecv): Add UNSPEC_MWAITX and
19769         UNSPEC_MONITORX.
19770         (mwaitx):  New pattern.
19771         (monitorx_<mode>): New pattern.
19772         * config/i386/x86intrin.h: Include mwaitxintrin.h.
19773         * doc/extend.texi: Document monitorx and mwaitx builtins.
19774         * doc/invoke.texi: Document -mmwaitx option.
19775
19776 2015-06-12  Uros Bizjak  <ubizjak@gmail.com>
19777
19778         * emit-rtl.c (need_atomic_barrier_p): Mask model with
19779         MEMMODEL_BASE_MASK.  Remove MEMMODEL_SYNC_* cases.
19780
19781 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
19782
19783         * dbxout.c (xcoff_debug_hooks): Provide a function for
19784         register_main_translation_unit hook.
19785
19786 2015-06-11  David Edelsohn  <dje.gcc@gmail.com>
19787
19788         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Remove SYNC
19789         variants cases from switch.
19790         (rs6000_post_atomic_barrier): Same.
19791         (rs6000_expand_atomic_compare_and_swap): Use memmodel_base.
19792         (rs6000_expand_atomic_exchange): Same.
19793         (rs6000_expand_atomic_op): Same.
19794         * config/rs6000/sync.md (mem_thread_fence): Use memodel_base. Remove
19795         SYNC variants cases from switch.
19796         (atomic_load): Same.
19797         (atomic_store): Same.
19798
19799 2015-06-11  John David Anglin  <danglin@gcc.gnu.org>
19800
19801         * config/pa/pa.c (pa_output_global_address): Handle LABEL_REF plus
19802         CONST_INT for goto.
19803
19804 2015-06-11  Aldy Hernandez  <aldyh@redhat.com>
19805
19806         PR bootstrap/66448
19807         * dwarf2out.c (check_die): Check for common duplicate attributes.
19808         (add_location_or_const_value_attribute): Do not add duplicate
19809         attributes.
19810         (gen_formal_parameter_die): Do not add DW_AT_artificial the second
19811         time around.
19812         (gen_struct_or_union_type_die): Bail early if TREE_ASM_WRITTEN.
19813         (gen_type_die_with_usage): Call check_die.
19814         (dwarf2out_decl): Only call check_die() when ENABLE_CHECKING.
19815
19816 2015-06-11  Jason Merrill  <jason@redhat.com>
19817
19818         * dwarf2out.c (prune_unused_types): Handle unused top-level limbo
19819         dies.
19820
19821 2015-06-11  Marek Polacek  <polacek@redhat.com>
19822
19823         * match.pd ((x & y) ^ (x | y)): Don't check for single_use.
19824
19825 2015-06-11  Eric Botcazou  <ebotcazou@adacore.com>
19826
19827         PR bootstrap/66252
19828         * config/sparc/sparc.c (hard_regno_mode_classes): Add ??? comment.
19829         * config/sparc/sparc.md (zero_extendsidi2_insn_sp32): Use single order.
19830         (*addx_extend_sp32): Fix pasto.
19831         (*subx_extend): Rename into...
19832         (*subx_extend_sp32): ...this.
19833         (*adddi3_extend_sp32): Add earlyclobber.
19834         (*subdi3_insn_sp32): Likewise.
19835         (*subdi3_extend_sp32): Likewise.
19836         (*and_not_di_sp32): Likewise.
19837         (*or_not_di_sp32): Likewise.
19838         (*xor_not_di_sp32): Likewise.
19839         (*negdi2_sp32): Likewise.
19840         (*one_cmpldi2_sp32): Likewise.
19841
19842 2015-06-11  Pierre-Marie de Rodat  <derodat@adacore.com>
19843
19844         * debug.h (struct gcc_debug_hooks): Add a
19845         register_main_translation_unit hook.
19846         * debug.c (do_nothing_debug_hooks): Provide a function for this
19847         new hook.
19848         * dbxout.c (dbx_debug_hooks): Likewise.
19849         * sdbout.c (sdb_debug_hooks): Likewise.
19850         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
19851         * dwarf2out.c (main_translation_unit): New global variable.
19852         (dwarf2out_register_main_translation_unit): New function
19853         implementing the new hook.
19854         (dwarf2_debug_hooks): Assign
19855         dwarf2out_register_main_translation_unit to this new hook.
19856         (dwarf2out_init): Associate any main translation unit to
19857         comp_unit_die ().
19858
19859 2015-06-11  Marek Polacek  <polacek@redhat.com>
19860
19861         * match.pd ((x & y) ^ (x | y) -> x ^ y): New pattern.
19862
19863 2015-06-11  Marek Polacek  <polacek@redhat.com>
19864
19865         * match.pd: Use single_use throughout.
19866
19867 2015-06-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19868
19869         * config/arm/arm.c (arm_option_params_internal): When optimising
19870         for speed set max_insns_skipped when arm_restrict_it.
19871
19872 2015-06-11  Christian Bruel  <christian.bruel@st.com>
19873
19874         PR target/52144
19875         * config/arm/arm-c.c (arm_cpu_cpp_builtins): Conditionally define
19876          macros in ...
19877         (arm_cpu_builtins): New function.
19878         (arm_pragma_target_parse): Call arm_cpu_builtins.
19879         * config/arm/arm-protos.h (arm_cpu_builtins): Declare.
19880         (arm_register_target_pragmas): Likewise.
19881         * config/arm/arm.h (REGISTER_TARGET_PRAGMAS):
19882          Call arm_register_target_pragmas.
19883         * config/arm/arm-c.c (arm_register_target_pragmas): New function.
19884         (arm_pragma_target_parse): Likewise.
19885
19886 2015-06-10  Kaz Kojima  <kkojima@gcc.gnu.org>
19887
19888         * config/sh/sh.md (tstsi_t): Add '?' modifier to 'r' alternative
19889         of the second operand.
19890
19891 2015-06-10  Uros Bizjak  <ubizjak@gmail.com>
19892
19893         PR target/66473
19894         * config/i386/i386.c (ix86_expand_vector_set): Use gen_int_mode
19895         to prepare mask operand for AVX512 modes.
19896
19897 2015-06-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
19898
19899         PR target/66474
19900         * doc/md.texi (Machine Constraints): Document that on the PowerPC
19901         if you use a constraint that targets a VSX register, you must use
19902         %x<n> in the template.
19903
19904 2015-06-10  Max Filippov  <jcmvbkbc@gmail.com>
19905
19906         * config/xtensa/xtensa.h (TARGET_DEBUG): New definition.
19907         * config/xtensa/xtensa.md (define_attr "type"): New type "trap".
19908         (define_insn "trap"): New definition.
19909
19910 2015-06-10  Richard Biener  <rguenther@suse.de>
19911
19912         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Split
19913         out from ...
19914         (vect_supported_load_permutation_p): ... here.  Handle
19915         supportable permutations in reductions.
19916         * tree-vect-stmts.c (vectorizable_load): Handle SLP permutations
19917         for vectorizing strided group loads.
19918
19919 2015-06-10  Jakub Jelinek  <jakub@redhat.com>
19920
19921         PR target/66470
19922         * config/i386/i386.c (ix86_split_long_move): For collisions
19923         involving direct tls segment refs, move the UNSPEC_TP possibly
19924         wrapped in ZERO_EXTEND out of the address for lea, to each of
19925         the memory loads.
19926
19927 2015-06-10  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
19928
19929         * config/arm/sync.md (*memory_barrier): Use dmb ish instead of
19930         dmb sy. Adjust tabs.
19931
19932 2015-06-10  Tom de Vries  <tom@codesourcery.com>
19933
19934         * omp-low.c (expand_omp_target): Remove duplicate declaration of node.
19935
19936 2015-06-10  Martin Liska  <mliska@suse.cz>
19937
19938         PR bootstrap/66471
19939         * mem-stats-traits.h (enum mem_alloc_origin): Add _ORIGIN suffix for
19940         all enum values in mem_alloc_origin.
19941         * alloc-pool.c (dump_alloc_pool_statistics): Use newly changed enum
19942         name.
19943         * alloc-pool.h (pool_allocator::pool_allocator): Likewise.
19944         * bitmap.c (bitmap_register): Likewise.
19945         (dump_bitmap_statistics): Likewise.
19946         * ggc-common.c (dump_ggc_loc_statistics): Likewise.
19947         (ggc_record_overhead): Likewise.
19948         * hash-map.h: Likewise.
19949         * hash-set.h: Likewise.
19950         * hash-table.c (void dump_hash_table_loc_statistics): Likewise.
19951         * hash-table.h: Likewise.
19952         * vec.c (vec_prefix::register_overhead): Likewise.
19953         (vec_prefix::release_overhead): Likewise.
19954         (dump_vec_loc_statistics): Likewise.
19955
19956 2015-06-09  Christian Bruel  <christian.bruel@st.com>
19957
19958         PR target/52144
19959         * config/arm/arm.opt (THUMB, arm_restrict_it, inline_asm_unified): Save.
19960         * config/arm/arm-protos.h (arm_valid_target_attribute_tree): Declare.
19961         (arm_reset_previous_fndecl, arm_change_mode_p): Likewise.
19962         * config/arm/arm.h (SWITCHABLE_TARGET): Define.
19963         * config/arm/arm.c (arm_reset_previous_fndecl): New functions.
19964         (arm_valid_target_attribute_tree, arm_change_mode_p): Likewise.
19965         (arm_valid_target_attribute_p): Likewise.
19966         (arm_set_current_function, arm_can_inline_p): Likewise.
19967         (arm_valid_target_attribute_rec): Likewise.
19968         (arm_previous_fndecl): New variable.
19969         (TARGET_SET_CURRENT_FUNCTION, TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
19970         (TARGET_CAN_INLINE_P): Define.
19971         (arm_asm_trampoline_template): Emit mode.
19972         (arm_file_start): Don't set unified syntax.
19973         (arm_declare_function_name): Set unified syntax and mode.
19974         (arm_option_override): Init target_option_default_node.
19975         and target_option_current_node.
19976         * config/arm/arm.md (*call_value_symbol): Set mode when possible.
19977         (*call_symbol): Likewise.
19978         * doc/extend.texi: Document ARM/Thumb target attribute.
19979         * doc/invoke.texi: Likewise.
19980
19981 2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
19982
19983         Revert:
19984         2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
19985         PR rtl-optimization/64164
19986         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
19987         * tree-ssa-copyrename.c: Removed.
19988         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
19989         -ftree-coalesce-vars.
19990         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
19991         * common.opt (ftree-copyrename): Ignore.
19992         (ftree-coalesce-inlined-vars): Likewise.
19993         * doc/invoke.texi: Remove the ignored options above.
19994         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
19995         * tree-ssa-coalesce.h: ... here.
19996         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
19997         headers required by it.
19998         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
19999         across variables when flag_tree_coalesce_vars.  Check register
20000         use and promoted modes to allow coalescing.  Moved to
20001         tree-ssa-coalesce.c.
20002         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
20003         with its member functions to tree-ssa-coalesce.c.
20004         (var_map_base_init): Likewise.  Renamed to
20005         compute_samebase_partition_bases.
20006         (partition_view_normal): Drop want_bases parameter.
20007         (partition_view_bitmap): Likewise.
20008         * tree-ssa-live.h: Adjust declarations.
20009         * tree-ssa-coalesce.c: Include explow.h.
20010         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
20011         default defs at the entry point.
20012         (dump_part_var_map): New.
20013         (compute_optimized_partition_bases): New, called by...
20014         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
20015         of compute_samebase_partition_bases.  Adjust.
20016         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
20017         * cfgexpand.c (leader_merge): New.
20018         (get_rtl_for_parm_ssa_default_def): New.
20019         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
20020         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
20021         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
20022         redundant MEM attr setting.
20023         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
20024         from...
20025         (expand_one_stack_var): ... this.  New wrapper to check and
20026         skip already expanded SSA partitions.
20027         (record_alignment_for_reg_var): New, factored out of...
20028         (expand_one_var): ... this.
20029         (expand_one_ssa_partition): New.
20030         (adjust_one_expanded_partition_var): New.
20031         (expand_one_register_var): Check and skip already expanded SSA
20032         partitions.
20033         (expand_used_vars): Don't create DECLs for anonymous SSA
20034         names.  Expand all SSA partitions, then adjust all SSA names.
20035         (pass::execute): Replace the loops that set
20036         SA.partition_to_pseudo from partition leaders and cleared
20037         DECL_RTL for multi-location variables, and that which used to
20038         rename vars and set attrs, with one that clears DECL_RTL and
20039         checks that PARMs and RESULTs default_defs match DECL_RTL.
20040         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
20041         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
20042         * explow.c (promote_ssa_mode): New.
20043         * explow.h (promote_ssa_mode): Declare.
20044         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
20045         * function.c: Include cfgexpand.h.
20046         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
20047         (use_register_for_parm_decl): Wrapper for the above to
20048         special-case the result_ptr.
20049         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
20050         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
20051         multiple locations.
20052         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
20053         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
20054         (assign_parm_setup_block): Prefer SSA-assigned location.
20055         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
20056         if stack_parm is NULL.
20057         (assign_parm_setup_stack): Prefer SSA-assigned location.
20058         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
20059         rtl before testing for pointer bounds.  Special-case result_ptr.
20060         (expand_function_start): Maybe reset DECL_RTL of result.
20061         Prefer SSA-assigned location for result and static chain.
20062         Factor out DECL_RESULT and SET_DECL_RTL.
20063         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
20064         anonymous SSA names.  Use promote_ssa_mode.
20065         (get_temp_reg): Likewise.
20066         (remove_ssa_form): Adjust.
20067         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
20068         and get its reg_usage for reg invalidation.
20069         (compute_bb_dataflow): Pass it insn.
20070         (emit_notes_in_bb): Likewise.
20071         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
20072         fail assert on conversion between unsigned types.
20073
20074 2015-06-09  Tom de Vries  <tom@codesourcery.com>
20075
20076         PR tree-optimization/65460
20077         * omp-low.c (expand_omp_target): Set parallelized_function on
20078         cgraph_node for child_fn.
20079
20080 2015-06-09  Tom de Vries  <tom@codesourcery.com>
20081
20082         * omp-low.c (finalize_task_copyfn, expand_omp_taskreg): Mark function
20083         parallelized_function before add_new_function.
20084
20085 2015-06-09  Andrew MacLeod  <amacleod@redhat.com>
20086
20087         * gcc-plugin.h: Move decls to plugin.h and include it.
20088         * plugin.h: Relocate decls from gcc-plugin.h
20089         * ggc-page.c: Include required header files.
20090         * passes.c: Likewise.
20091         * cgraphunit.c: Likewise.
20092
20093 2015-06-09  Tom de Vries  <tom@codesourcery.com>
20094
20095         * tree-stdarg.c (expand_ifn_va_arg_1): Handle location.
20096
20097 2015-06-09  Jason Merrill  <jason@redhat.com>
20098
20099         PR bootstrap/66448
20100         * toplev.c (check_global_declaration): Don't warn about a clone.
20101
20102 2015-06-09  Marek Polacek  <polacek@redhat.com>
20103
20104         PR tree-optimization/66299
20105         * match.pd ((CST1 << A) == CST2 -> A == ctz (CST2) - ctz (CST1)
20106         ((CST1 << A) != CST2 -> A != ctz (CST2) - ctz (CST1)): New
20107         patterns.
20108
20109 2015-06-09  Richard Biener  <rguenther@suse.de>
20110
20111         * tree-vect-slp.c (vect_build_slp_tree_1): Remove bailout on gaps.
20112         (vect_analyze_slp_instance): Instead do not falsely drop
20113         load permutations.
20114
20115 2015-06-09  Richard Biener  <rguenther@suse.de>
20116
20117         PR middle-end/66423
20118         * match.pd: Handle A % (unsigned)(1 << B).
20119
20120 2015-06-09  Aldy Hernandez  <aldyh@redhat.com>
20121
20122         * varasm.c (output_object_block_htab): Remove.
20123         (output_object_block_compare): New.
20124         (output_object_blocks): Sort named object_blocks before outputting
20125         them.
20126
20127 2015-06-09  Richard Biener  <rguenther@suse.de>
20128
20129         PR tree-optimization/66419
20130         * tree-vect-slp.c (vect_supported_load_permutation_p): Properly
20131         consider GROUP_GAP when detecting a perfect subchain.
20132
20133 2015-06-09  Nick Clifton  <nickc@redhat.com>
20134
20135         * config/rl78/rl78.c (rl78_select_section): When -mes0 is active
20136         place read only data in the .frodata section.
20137
20138 2015-06-09  Shiva Chen  <shiva0217@gmail.com>
20139
20140         * sync.md (atomic_load<mode>): Add conditional code for lda/ldr
20141         (atomic_store<mode>): Likewise.
20142
20143 2015-06-09  Richard Biener  <rguenther@suse.de>
20144
20145         * cfgloop.c (get_loop_body_in_bfs_order): Fix assert.
20146
20147 2015-06-09  Richard Biener  <rguenther@suse.de>
20148
20149         PR middle-end/66413
20150         * tree-inline.c (insert_init_debug_bind): Unshare value.
20151
20152 2015-06-09  Richard Biener  <rguenther@suse.de>
20153
20154         PR tree-optimization/66396
20155         * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
20156         Rename virtual operands.
20157
20158 2015-06-09  Tom de Vries  <tom@codesourcery.com>
20159
20160         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Don't
20161         always return false.
20162
20163 2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
20164
20165         PR rtl-optimization/64164
20166         * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
20167         * tree-ssa-copyrename.c: Removed.
20168         * opts.c (default_options_table): Drop -ftree-copyrename.  Add
20169         -ftree-coalesce-vars.
20170         * passes.def: Drop all occurrences of pass_rename_ssa_copies.
20171         * common.opt (ftree-copyrename): Ignore.
20172         (ftree-coalesce-inlined-vars): Likewise.
20173         * doc/invoke.texi: Remove the ignored options above.
20174         * gimple-expr.h (gimple_can_coalesce_p): Move declaration
20175         * tree-ssa-coalesce.h: ... here.
20176         * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
20177         headers required by it.
20178         * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
20179         across variables when flag_tree_coalesce_vars.  Check register
20180         use and promoted modes to allow coalescing.  Moved to
20181         tree-ssa-coalesce.c.
20182         * tree-ssa-live.c (struct tree_int_map_hasher): Move along
20183         with its member functions to tree-ssa-coalesce.c.
20184         (var_map_base_init): Likewise.  Renamed to
20185         compute_samebase_partition_bases.
20186         (partition_view_normal): Drop want_bases parameter.
20187         (partition_view_bitmap): Likewise.
20188         * tree-ssa-live.h: Adjust declarations.
20189         * tree-ssa-coalesce.c: Include explow.h.
20190         (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
20191         default defs at the entry point.
20192         (dump_part_var_map): New.
20193         (compute_optimized_partition_bases): New, called by...
20194         (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
20195         of compute_samebase_partition_bases.  Adjust.
20196         * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
20197         * cfgexpand.c (leader_merge): New.
20198         (get_rtl_for_parm_ssa_default_def): New.
20199         (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
20200         vars.  Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
20201         (expand_one_stack_var_at): Handle anonymous SSA_NAMEs.  Drop
20202         redundant MEM attr setting.
20203         (expand_one_stack_var_1): Handle anonymous SSA_NAMEs.  Renamed
20204         from...
20205         (expand_one_stack_var): ... this.  New wrapper to check and
20206         skip already expanded SSA partitions.
20207         (record_alignment_for_reg_var): New, factored out of...
20208         (expand_one_var): ... this.
20209         (expand_one_ssa_partition): New.
20210         (adjust_one_expanded_partition_var): New.
20211         (expand_one_register_var): Check and skip already expanded SSA
20212         partitions.
20213         (expand_used_vars): Don't create DECLs for anonymous SSA
20214         names.  Expand all SSA partitions, then adjust all SSA names.
20215         (pass::execute): Replace the loops that set
20216         SA.partition_to_pseudo from partition leaders and cleared
20217         DECL_RTL for multi-location variables, and that which used to
20218         rename vars and set attrs, with one that clears DECL_RTL and
20219         checks that PARMs and RESULTs default_defs match DECL_RTL.
20220         * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
20221         * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
20222         * explow.c (promote_ssa_mode): New.
20223         * explow.h (promote_ssa_mode): Declare.
20224         * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
20225         * function.c: Include cfgexpand.h.
20226         (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
20227         (use_register_for_parm_decl): Wrapper for the above to
20228         special-case the result_ptr.
20229         (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
20230         (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
20231         multiple locations.
20232         (assign_parm_adjust_stack_rtl): Add all and parm arguments,
20233         for rtl_for_parm.  For SSA-assigned parms, zero stack_parm.
20234         (assign_parm_setup_block): Prefer SSA-assigned location.
20235         (assign_parm_setup_reg): Likewise.  Use entry_parm for equiv
20236         if stack_parm is NULL.
20237         (assign_parm_setup_stack): Prefer SSA-assigned location.
20238         (assign_parms): Maybe reset DECL_RTL of params.  Adjust stack
20239         rtl before testing for pointer bounds.  Special-case result_ptr.
20240         (expand_function_start): Maybe reset DECL_RTL of result.
20241         Prefer SSA-assigned location for result and static chain.
20242         Factor out DECL_RESULT and SET_DECL_RTL.
20243         * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
20244         anonymous SSA names.  Use promote_ssa_mode.
20245         (get_temp_reg): Likewise.
20246         (remove_ssa_form): Adjust.
20247         * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
20248         and get its reg_usage for reg invalidation.
20249         (compute_bb_dataflow): Pass it insn.
20250         (emit_notes_in_bb): Likewise.
20251         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
20252         fail assert on conversion between unsigned types.
20253
20254 2015-06-09  Alexandre Oliva  <aoliva@redhat.com>
20255
20256         PR debug/58315
20257         * tree-inline.c (reset_debug_binding): New.
20258         (reset_debug_bindings): Likewise.
20259         (expand_call_inline): Call it.
20260
20261 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
20262
20263         * tree.c (gimple_canonical_types_compatible_p): Drop comparsion of
20264         TYPE_STRING_FLAG.
20265
20266 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
20267
20268         * lto-streamer-out.c (lto_output_location): Stream
20269         reserved locations correctly.
20270         * lto-streamer-in.c (lto_output_location): Likewise.
20271
20272 2015-06-08  Andrew MacLeod  <amacleod@redhat.com>
20273
20274         * coretypes.h: Include hash-table.h and hash-set.h for host files.
20275         * ggc.h: Don't include statistics.h>
20276         * hash-map.h: Remove all includes.
20277         * hash-set.h: Likewise.
20278         * hash-table.h: Add statistics.h, inchash.h and hash-map-traits.h to
20279         the include list. Remove <new>.
20280         * inchash.h: Remove all includes.
20281         * mem-stats.h: Likewise.
20282         * vec.h: No special processing for generators or ggc.
20283         * alias.c : Adjust include files.
20284         * alloc-pool.c : Likewise.
20285         * alloc-pool.h : Likewise.
20286         * asan.c : Likewise.
20287         * attribs.c : Likewise.
20288         * auto-inc-dec.c : Likewise.
20289         * auto-profile.c : Likewise.
20290         * bb-reorder.c : Likewise.
20291         * bitmap.c : Likewise.
20292         * bitmap.h : Likewise.
20293         * bt-load.c : Likewise.
20294         * builtins.c : Likewise.
20295         * caller-save.c : Likewise.
20296         * calls.c : Likewise.
20297         * ccmp.c : Likewise.
20298         * cfg.c : Likewise.
20299         * cfganal.c : Likewise.
20300         * cfgbuild.c : Likewise.
20301         * cfgcleanup.c : Likewise.
20302         * cfgexpand.c : Likewise.
20303         * cfghooks.c : Likewise.
20304         * cfgloop.c : Likewise.
20305         * cfgloop.h : Likewise.
20306         * cfgloopanal.c : Likewise.
20307         * cfgloopmanip.c : Likewise.
20308         * cfgrtl.c : Likewise.
20309         * cgraph.c : Likewise.
20310         * cgraphbuild.c : Likewise.
20311         * cgraphclones.c : Likewise.
20312         * cgraphunit.c : Likewise.
20313         * cilk-common.c : Likewise.
20314         * combine-stack-adj.c : Likewise.
20315         * combine.c : Likewise.
20316         * compare-elim.c : Likewise.
20317         * context.c : Likewise.
20318         * convert.c : Likewise.
20319         * coverage.c : Likewise.
20320         * cppbuiltin.c : Likewise.
20321         * cprop.c : Likewise.
20322         * cse.c : Likewise.
20323         * cselib.c : Likewise.
20324         * data-streamer-in.c : Likewise.
20325         * data-streamer-out.c : Likewise.
20326         * data-streamer.c : Likewise.
20327         * data-streamer.h : Likewise.
20328         * dbxout.c : Likewise.
20329         * dce.c : Likewise.
20330         * ddg.c : Likewise.
20331         * debug.c : Likewise.
20332         * df-core.c : Likewise.
20333         * df-problems.c : Likewise.
20334         * df-scan.c : Likewise.
20335         * df.h : Likewise.
20336         * dfp.c : Likewise.
20337         * dojump.c : Likewise.
20338         * dominance.c : Likewise.
20339         * domwalk.c : Likewise.
20340         * double-int.c : Likewise.
20341         * dse.c : Likewise.
20342         * dumpfile.c : Likewise.
20343         * dwarf2asm.c : Likewise.
20344         * dwarf2cfi.c : Likewise.
20345         * dwarf2out.c : Likewise.
20346         * emit-rtl.c : Likewise.
20347         * et-forest.c : Likewise.
20348         * except.c : Likewise.
20349         * except.h : Likewise.
20350         * explow.c : Likewise.
20351         * expmed.c : Likewise.
20352         * expr.c : Likewise.
20353         * final.c : Likewise.
20354         * fixed-value.c : Likewise.
20355         * fold-const.c : Likewise.
20356         * function.c : Likewise.
20357         * fwprop.c : Likewise.
20358         * gcc-plugin.h : Likewise.
20359         * gcc.c : Likewise.
20360         * gcse-common.c : Likewise.
20361         * gcse.c : Likewise.
20362         * genattrtab.c : Likewise.
20363         * genautomata.c : Likewise.
20364         * genconditions.c : Likewise.
20365         * genemit.c : Likewise.
20366         * generic-match-head.c : Likewise.
20367         * genextract.c : Likewise.
20368         * gengtype-state.c : Likewise.
20369         * gengtype.c : Likewise.
20370         * genhooks.c : Likewise.
20371         * genmatch.c : Likewise.
20372         * genmodes.c : Likewise.
20373         * genrecog.c : Likewise.
20374         * gensupport.c : Likewise.
20375         * ggc-common.c : Likewise.
20376         * ggc-internal.h : Likewise.
20377         * ggc-none.c : Likewise.
20378         * ggc-page.c : Likewise.
20379         * gimple-builder.c : Likewise.
20380         * gimple-expr.c : Likewise.
20381         * gimple-fold.c : Likewise.
20382         * gimple-iterator.c : Likewise.
20383         * gimple-low.c : Likewise.
20384         * gimple-match-head.c : Likewise.
20385         * gimple-pretty-print.c : Likewise.
20386         * gimple-ssa-isolate-paths.c : Likewise.
20387         * gimple-ssa-strength-reduction.c : Likewise.
20388         * gimple-ssa.h : Likewise.
20389         * gimple-streamer-in.c : Likewise.
20390         * gimple-streamer-out.c : Likewise.
20391         * gimple-streamer.h : Likewise.
20392         * gimple-walk.c : Likewise.
20393         * gimple.c : Likewise.
20394         * gimplify-me.c : Likewise.
20395         * gimplify.c : Likewise.
20396         * godump.c : Likewise.
20397         * graph.c : Likewise.
20398         * graphds.c : Likewise.
20399         * graphite-blocking.c : Likewise.
20400         * graphite-dependences.c : Likewise.
20401         * graphite-interchange.c : Likewise.
20402         * graphite-isl-ast-to-gimple.c : Likewise.
20403         * graphite-optimize-isl.c : Likewise.
20404         * graphite-poly.c : Likewise.
20405         * graphite-scop-detection.c : Likewise.
20406         * graphite-sese-to-poly.c : Likewise.
20407         * graphite.c : Likewise.
20408         * haifa-sched.c : Likewise.
20409         * hard-reg-set.h : Likewise.
20410         * hw-doloop.c : Likewise.
20411         * ifcvt.c : Likewise.
20412         * inchash.c : Likewise.
20413         * incpath.c : Likewise.
20414         * init-regs.c : Likewise.
20415         * input.c : Likewise.
20416         * internal-fn.c : Likewise.
20417         * ipa-chkp.c : Likewise.
20418         * ipa-comdats.c : Likewise.
20419         * ipa-cp.c : Likewise.
20420         * ipa-devirt.c : Likewise.
20421         * ipa-icf-gimple.c : Likewise.
20422         * ipa-icf.c : Likewise.
20423         * ipa-inline-analysis.c : Likewise.
20424         * ipa-inline-transform.c : Likewise.
20425         * ipa-inline.c : Likewise.
20426         * ipa-polymorphic-call.c : Likewise.
20427         * ipa-profile.c : Likewise.
20428         * ipa-prop.c : Likewise.
20429         * ipa-pure-const.c : Likewise.
20430         * ipa-ref.c : Likewise.
20431         * ipa-reference.c : Likewise.
20432         * ipa-split.c : Likewise.
20433         * ipa-utils.c : Likewise.
20434         * ipa-visibility.c : Likewise.
20435         * ipa.c : Likewise.
20436         * ira-build.c : Likewise.
20437         * ira-color.c : Likewise.
20438         * ira-conflicts.c : Likewise.
20439         * ira-costs.c : Likewise.
20440         * ira-emit.c : Likewise.
20441         * ira-lives.c : Likewise.
20442         * ira.c : Likewise.
20443         * jump.c : Likewise.
20444         * langhooks.c : Likewise.
20445         * lcm.c : Likewise.
20446         * libfuncs.h : Likewise.
20447         * lists.c : Likewise.
20448         * loop-doloop.c : Likewise.
20449         * loop-init.c : Likewise.
20450         * loop-invariant.c : Likewise.
20451         * loop-iv.c : Likewise.
20452         * loop-unroll.c : Likewise.
20453         * lower-subreg.c : Likewise.
20454         * lra-assigns.c : Likewise.
20455         * lra-coalesce.c : Likewise.
20456         * lra-constraints.c : Likewise.
20457         * lra-eliminations.c : Likewise.
20458         * lra-lives.c : Likewise.
20459         * lra-remat.c : Likewise.
20460         * lra-spills.c : Likewise.
20461         * lra.c : Likewise.
20462         * lto-cgraph.c : Likewise.
20463         * lto-compress.c : Likewise.
20464         * lto-opts.c : Likewise.
20465         * lto-section-in.c : Likewise.
20466         * lto-section-out.c : Likewise.
20467         * lto-streamer-in.c : Likewise.
20468         * lto-streamer-out.c : Likewise.
20469         * lto-streamer.c : Likewise.
20470         * lto-streamer.h : Likewise.
20471         * mcf.c : Likewise.
20472         * mode-switching.c : Likewise.
20473         * modulo-sched.c : Likewise.
20474         * omega.c : Likewise.
20475         * omp-low.c : Likewise.
20476         * optabs.c : Likewise.
20477         * opts-global.c : Likewise.
20478         * opts.h : Likewise.
20479         * passes.c : Likewise.
20480         * plugin.c : Likewise.
20481         * postreload-gcse.c : Likewise.
20482         * postreload.c : Likewise.
20483         * predict.c : Likewise.
20484         * print-rtl.c : Likewise.
20485         * print-tree.c : Likewise.
20486         * profile.c : Likewise.
20487         * read-md.c : Likewise.
20488         * read-md.h : Likewise.
20489         * read-rtl.c : Likewise.
20490         * real.c : Likewise.
20491         * realmpfr.c : Likewise.
20492         * recog.c : Likewise.
20493         * ree.c : Likewise.
20494         * reg-stack.c : Likewise.
20495         * regcprop.c : Likewise.
20496         * reginfo.c : Likewise.
20497         * regrename.c : Likewise.
20498         * regstat.c : Likewise.
20499         * reload.c : Likewise.
20500         * reload1.c : Likewise.
20501         * reorg.c : Likewise.
20502         * resource.c : Likewise.
20503         * rtl-chkp.c : Likewise.
20504         * rtl.c : Likewise.
20505         * rtl.h : Likewise.
20506         * rtlanal.c : Likewise.
20507         * rtlhash.c : Likewise.
20508         * rtlhash.h : Likewise.
20509         * rtlhooks.c : Likewise.
20510         * sanopt.c : Likewise.
20511         * sched-deps.c : Likewise.
20512         * sched-ebb.c : Likewise.
20513         * sched-rgn.c : Likewise.
20514         * sched-vis.c : Likewise.
20515         * sdbout.c : Likewise.
20516         * sel-sched-dump.c : Likewise.
20517         * sel-sched-ir.c : Likewise.
20518         * sel-sched-ir.h : Likewise.
20519         * sel-sched.c : Likewise.
20520         * sese.c : Likewise.
20521         * shrink-wrap.c : Likewise.
20522         * shrink-wrap.h : Likewise.
20523         * simplify-rtx.c : Likewise.
20524         * stack-ptr-mod.c : Likewise.
20525         * statistics.c : Likewise.
20526         * stmt.c : Likewise.
20527         * stor-layout.c : Likewise.
20528         * store-motion.c : Likewise.
20529         * stringpool.c : Likewise.
20530         * symtab.c : Likewise.
20531         * target-globals.c : Likewise.
20532         * targhooks.c : Likewise.
20533         * tlink.c : Likewise.
20534         * toplev.c : Likewise.
20535         * tracer.c : Likewise.
20536         * trans-mem.c : Likewise.
20537         * tree-affine.c : Likewise.
20538         * tree-affine.h : Likewise.
20539         * tree-browser.c : Likewise.
20540         * tree-call-cdce.c : Likewise.
20541         * tree-cfg.c : Likewise.
20542         * tree-cfgcleanup.c : Likewise.
20543         * tree-chkp-opt.c : Likewise.
20544         * tree-chkp.c : Likewise.
20545         * tree-chrec.c : Likewise.
20546         * tree-complex.c : Likewise.
20547         * tree-data-ref.c : Likewise.
20548         * tree-dfa.c : Likewise.
20549         * tree-diagnostic.c : Likewise.
20550         * tree-dump.c : Likewise.
20551         * tree-eh.c : Likewise.
20552         * tree-eh.h : Likewise.
20553         * tree-emutls.c : Likewise.
20554         * tree-hasher.h : Likewise.
20555         * tree-if-conv.c : Likewise.
20556         * tree-inline.c : Likewise.
20557         * tree-inline.h : Likewise.
20558         * tree-into-ssa.c : Likewise.
20559         * tree-iterator.c : Likewise.
20560         * tree-loop-distribution.c : Likewise.
20561         * tree-nested.c : Likewise.
20562         * tree-nrv.c : Likewise.
20563         * tree-object-size.c : Likewise.
20564         * tree-outof-ssa.c : Likewise.
20565         * tree-parloops.c : Likewise.
20566         * tree-phinodes.c : Likewise.
20567         * tree-predcom.c : Likewise.
20568         * tree-pretty-print.c : Likewise.
20569         * tree-profile.c : Likewise.
20570         * tree-scalar-evolution.c : Likewise.
20571         * tree-sra.c : Likewise.
20572         * tree-ssa-address.c : Likewise.
20573         * tree-ssa-alias.c : Likewise.
20574         * tree-ssa-ccp.c : Likewise.
20575         * tree-ssa-coalesce.c : Likewise.
20576         * tree-ssa-copy.c : Likewise.
20577         * tree-ssa-copyrename.c : Likewise.
20578         * tree-ssa-dce.c : Likewise.
20579         * tree-ssa-dom.c : Likewise.
20580         * tree-ssa-dse.c : Likewise.
20581         * tree-ssa-forwprop.c : Likewise.
20582         * tree-ssa-ifcombine.c : Likewise.
20583         * tree-ssa-live.c : Likewise.
20584         * tree-ssa-loop-ch.c : Likewise.
20585         * tree-ssa-loop-im.c : Likewise.
20586         * tree-ssa-loop-ivcanon.c : Likewise.
20587         * tree-ssa-loop-ivopts.c : Likewise.
20588         * tree-ssa-loop-manip.c : Likewise.
20589         * tree-ssa-loop-niter.c : Likewise.
20590         * tree-ssa-loop-prefetch.c : Likewise.
20591         * tree-ssa-loop-unswitch.c : Likewise.
20592         * tree-ssa-loop.c : Likewise.
20593         * tree-ssa-math-opts.c : Likewise.
20594         * tree-ssa-operands.c : Likewise.
20595         * tree-ssa-phiopt.c : Likewise.
20596         * tree-ssa-phiprop.c : Likewise.
20597         * tree-ssa-pre.c : Likewise.
20598         * tree-ssa-propagate.c : Likewise.
20599         * tree-ssa-reassoc.c : Likewise.
20600         * tree-ssa-sccvn.c : Likewise.
20601         * tree-ssa-scopedtables.c : Likewise.
20602         * tree-ssa-sink.c : Likewise.
20603         * tree-ssa-strlen.c : Likewise.
20604         * tree-ssa-structalias.c : Likewise.
20605         * tree-ssa-tail-merge.c : Likewise.
20606         * tree-ssa-ter.c : Likewise.
20607         * tree-ssa-threadedge.c : Likewise.
20608         * tree-ssa-threadupdate.c : Likewise.
20609         * tree-ssa-uncprop.c : Likewise.
20610         * tree-ssa-uninit.c : Likewise.
20611         * tree-ssa.c : Likewise.
20612         * tree-ssanames.c : Likewise.
20613         * tree-stdarg.c : Likewise.
20614         * tree-streamer-in.c : Likewise.
20615         * tree-streamer-out.c : Likewise.
20616         * tree-streamer.c : Likewise.
20617         * tree-streamer.h : Likewise.
20618         * tree-switch-conversion.c : Likewise.
20619         * tree-tailcall.c : Likewise.
20620         * tree-vect-data-refs.c : Likewise.
20621         * tree-vect-generic.c : Likewise.
20622         * tree-vect-loop-manip.c : Likewise.
20623         * tree-vect-loop.c : Likewise.
20624         * tree-vect-patterns.c : Likewise.
20625         * tree-vect-slp.c : Likewise.
20626         * tree-vect-stmts.c : Likewise.
20627         * tree-vectorizer.c : Likewise.
20628         * tree-vectorizer.h : Likewise.
20629         * tree-vrp.c : Likewise.
20630         * tree.c : Likewise.
20631         * tsan.c : Likewise.
20632         * ubsan.c : Likewise.
20633         * valtrack.c : Likewise.
20634         * valtrack.h : Likewise.
20635         * value-prof.c : Likewise.
20636         * var-tracking.c : Likewise.
20637         * varasm.c : Likewise.
20638         * varpool.c : Likewise.
20639         * vec.c: Likewise.
20640         * vmsdbgout.c : Likewise.
20641         * vtable-verify.c : Likewise.
20642         * vtable-verify.h : Likewise.
20643         * web.c : Likewise.
20644         * wide-int.cc : Likewise.
20645         * xcoffout.c : Likewise.
20646         * config/aarch64/aarch64-builtins.c : Likewise.
20647         * config/aarch64/aarch64.c : Likewise.
20648         * config/aarch64/cortex-a57-fma-steering.c : Likewise.
20649         * config/alpha/alpha.c : Likewise.
20650         * config/arc/arc.c : Likewise.
20651         * config/arm/aarch-common.c : Likewise.
20652         * config/arm/arm-builtins.c : Likewise.
20653         * config/arm/arm-c.c : Likewise.
20654         * config/arm/arm.c : Likewise.
20655         * config/avr/avr-c.c : Likewise.
20656         * config/avr/avr-log.c : Likewise.
20657         * config/avr/avr.c : Likewise.
20658         * config/bfin/bfin.c : Likewise.
20659         * config/c6x/c6x.c : Likewise.
20660         * config/cr16/cr16.c : Likewise.
20661         * config/cris/cris.c : Likewise.
20662         * config/darwin-c.c : Likewise.
20663         * config/darwin.c : Likewise.
20664         * config/default-c.c : Likewise.
20665         * config/epiphany/epiphany.c : Likewise.
20666         * config/epiphany/mode-switch-use.c : Likewise.
20667         * config/epiphany/resolve-sw-modes.c : Likewise.
20668         * config/fr30/fr30.c : Likewise.
20669         * config/frv/frv.c : Likewise.
20670         * config/ft32/ft32.c : Likewise.
20671         * config/glibc-c.c : Likewise.
20672         * config/h8300/h8300.c : Likewise.
20673         * config/i386/i386-c.c : Likewise.
20674         * config/i386/i386.c : Likewise.
20675         * config/i386/msformat-c.c : Likewise.
20676         * config/i386/winnt-cxx.c : Likewise.
20677         * config/i386/winnt-stubs.c : Likewise.
20678         * config/i386/winnt.c : Likewise.
20679         * config/ia64/ia64-c.c : Likewise.
20680         * config/ia64/ia64.c : Likewise.
20681         * config/iq2000/iq2000.c : Likewise.
20682         * config/lm32/lm32.c : Likewise.
20683         * config/m32c/m32c-pragma.c : Likewise.
20684         * config/m32c/m32c.c : Likewise.
20685         * config/m32r/m32r.c : Likewise.
20686         * config/m68k/m68k.c : Likewise.
20687         * config/mcore/mcore.c : Likewise.
20688         * config/mep/mep-pragma.c : Likewise.
20689         * config/mep/mep.c : Likewise.
20690         * config/microblaze/microblaze-c.c : Likewise.
20691         * config/microblaze/microblaze.c : Likewise.
20692         * config/mips/mips.c : Likewise.
20693         * config/mmix/mmix.c : Likewise.
20694         * config/mn10300/mn10300.c : Likewise.
20695         * config/moxie/moxie.c : Likewise.
20696         * config/msp430/msp430-c.c : Likewise.
20697         * config/msp430/msp430.c : Likewise.
20698         * config/nds32/nds32-cost.c : Likewise.
20699         * config/nds32/nds32-fp-as-gp.c : Likewise.
20700         * config/nds32/nds32-intrinsic.c : Likewise.
20701         * config/nds32/nds32-isr.c : Likewise.
20702         * config/nds32/nds32-md-auxiliary.c : Likewise.
20703         * config/nds32/nds32-memory-manipulation.c : Likewise.
20704         * config/nds32/nds32-pipelines-auxiliary.c : Likewise.
20705         * config/nds32/nds32-predicates.c : Likewise.
20706         * config/nds32/nds32.c : Likewise.
20707         * config/nios2/nios2.c : Likewise.
20708         * config/nvptx/nvptx.c : Likewise.
20709         * config/pa/pa.c : Likewise.
20710         * config/pdp11/pdp11.c : Likewise.
20711         * config/rl78/rl78-c.c : Likewise.
20712         * config/rl78/rl78.c : Likewise.
20713         * config/rs6000/rs6000-c.c : Likewise.
20714         * config/rs6000/rs6000.c : Likewise.
20715         * config/rx/rx.c : Likewise.
20716         * config/s390/s390-c.c : Likewise.
20717         * config/s390/s390.c : Likewise.
20718         * config/sh/sh-c.c : Likewise.
20719         * config/sh/sh-mem.cc : Likewise.
20720         * config/sh/sh.c : Likewise.
20721         * config/sh/sh_optimize_sett_clrt.cc : Likewise.
20722         * config/sh/sh_treg_combine.cc : Likewise.
20723         * config/sol2-c.c : Likewise.
20724         * config/sol2-cxx.c : Likewise.
20725         * config/sol2-stubs.c : Likewise.
20726         * config/sol2.c : Likewise.
20727         * config/sparc/sparc-c.c : Likewise.
20728         * config/sparc/sparc.c : Likewise.
20729         * config/spu/spu-c.c : Likewise.
20730         * config/spu/spu.c : Likewise.
20731         * config/stormy16/stormy16.c : Likewise.
20732         * config/tilegx/mul-tables.c : Likewise.
20733         * config/tilegx/tilegx-c.c : Likewise.
20734         * config/tilegx/tilegx.c : Likewise.
20735         * config/tilepro/mul-tables.c : Likewise.
20736         * config/tilepro/tilepro-c.c : Likewise.
20737         * config/tilepro/tilepro.c : Likewise.
20738         * config/v850/v850-c.c : Likewise.
20739         * config/v850/v850.c : Likewise.
20740         * config/vax/vax.c : Likewise.
20741         * config/visium/visium.c : Likewise.
20742         * config/vms/vms-c.c : Likewise.
20743         * config/vms/vms.c : Likewise.
20744         * config/vxworks.c : Likewise.
20745         * config/winnt-c.c : Likewise.
20746         * config/xtensa/xtensa.c : Likewise.
20747
20748 2015-06-08  Jan Hubicka  <hubicka@ucw.cz>
20749
20750         PR lto/65378
20751         * ipa-utils.h (warn_types_mismatch): Update prototype.
20752         * ipa-devirt.c (odr_types_equivalent_p): Add loc1/loc2
20753         parameters.
20754         (type_mismatch_p): New function.
20755         (warn_types_mismatch): Reorg to work better on non-C++ types.
20756         (odr_types_equivalent_p): Add loc1/loc2 parameters.
20757         (add_type_duplicate): Update.
20758
20759 2015-06-08  Tom de Vries  <tom@codesourcery.com>
20760
20761         PR rtl-optimization/66444
20762         * postreload.c (reload_combine): Use get_call_reg_set_usage instead of
20763         call_used_regs.
20764
20765 2015-06-08  Richard Biener  <rguenther@suse.de>
20766
20767         PR tree-optimization/66422
20768         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Split
20769         block after inserted gcc_unreachable.
20770
20771 2015-06-08  Nick Clifton  <nickc@redhat.com>
20772
20773         * config/rx/rx.c (rx_function_value): Do not promote vector types.
20774         (rx_promote_function_mode): Likewise.
20775         * config/rx/rx.h (LIBCALL_VALUE): Likewise.
20776
20777 2015-06-08  Jakub Jelinek  <jakub@redhat.com>
20778
20779         * genattrtab.c (insn_alternatives): Change type from int *
20780         to uint64_t *.
20781         (check_attr_test): Shift ((uint64_t) 1) instead of 1 up.
20782         (get_attr_value): Change type of num_alt to uint64_t.
20783         (compute_alternative_mask): Change return type from
20784         int to uint64_t, shift ((uint64_t) 1) instead of 1 up.
20785         (make_alternative_compare, mk_attr_alt): Change argument type
20786         from int to uint64_t.
20787         (simplify_test_exp): Change type of i from int to uint64_t.
20788         Shift ((uint64_t) 1) instead of 1 up.
20789         (main): Adjust oballocvec first argument from int to uint64_t.
20790         Shift ((uint64_t) 1) instead of 1 up.
20791
20792 2015-06-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
20793
20794         PR other/65366
20795         * gdbhooks.py: Import sys.
20796         (intptr): New function.  Replace int(...) by intptr(...).
20797
20798 2015-06-08  Richard Biener  <rguenther@suse.de>
20799
20800         * tree-vect-stmts.c (vectorizable_load): Compute the pointer
20801         adjustment for gaps at the end of a SLP load group properly.
20802         * tree-vect-slp.c (vect_supported_load_permutation_p): Allow
20803         all permutations we can generate.
20804         (vect_transform_slp_perm_load): Use the correct group-size.
20805
20806 2015-06-08  Marc Glisse  <marc.glisse@inria.fr>
20807
20808         * genmatch.c (expr::gen_transform): For conditions, guess the type
20809         from the second operand.
20810
20811 2015-06-08  Tom de Vries  <tom@codesourcery.com>
20812
20813         PR tree-optimization/66442
20814         * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Add function.
20815         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Return false
20816         if the loop latch is not a singleton.  Use
20817         gimple_seq_nondebug_singleton_p instead of gimple_seq_singleton_p.
20818
20819 2015-06-08  Marek Polacek  <polacek@redhat.com>
20820
20821         PR sanitizer/66452
20822         * toplev.c (check_global_declaration): Don't warn about artificial
20823         decls.
20824
20825 2015-06-08  Tom de Vries  <tom@codesourcery.com>
20826
20827         PR tree-optimization/66436
20828         * cgraphunit.c (cgraph_node::analyze): Don't dump function to gimple
20829         dump file.
20830         * gimplify.c: Add tree-dump.h include.
20831         (gimplify_function_tree): Dump function to gimple dump file.
20832         * stor-layout.c (finalize_size_functions): Don't dump function to gimple
20833         dump file.
20834
20835 2015-06-08  Tom de Vries  <tom@codesourcery.com>
20836
20837         PR tree-optimization/66435
20838         * cgraphunit.c (cgraph_node::add_new_function): Dump message on new
20839         function.
20840
20841 2015-06-06  Jan Hubicka  <hubicka@ucw.cz>
20842
20843         * alias.c (get_alias_set): Be ready for TYPE_CANONICAL
20844         of ptr_type_node to not be ptr_to_node.
20845         * tree.c (gimple_types_compatible_p): Do not match TREE_CODE of
20846         TREE_TYPE of pointers.
20847         * gimple-expr.c (useless_type_conversion): Reorder the check for
20848         function pointers and TYPE_CANONICAL.
20849
20850 2015-06-06  John David Anglin  <danglin@gcc.gnu.org>
20851
20852         PR bootstrap/66319
20853         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Rearrange builtin
20854         defines.  Define _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE for c++.
20855         Define _XOPEN_UNIX and _XOPEN_SOURCE_EXTENDED for c++ if unix95 or
20856         later.
20857         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Likewise.
20858         Define _INCLUDE_STDC_SOURCE_PRE_199901, _INCLUDE_STDC_SOURCE_199901,
20859         _INCLUDE_XOPEN_SOURCE_PRE_500, _INCLUDE_XOPEN_SOURCE_520,
20860         _INCLUDE_XOPEN_SOURCE_PRE_600 and _INCLUDE_XOPEN_SOURCE_600 for c++
20861         and non iso if unix2003.
20862
20863 2015-06-06  Aldy Hernandez  <aldyh@redhat.com>
20864
20865         * dwarf2out.c (gen_lexical_block_die): Initialize stmt_die.
20866
20867 2015-06-06  Richard Sandiford  <richard.sandiford@arm.com>
20868
20869         * emit-rtl.c, expr.c, gcse.c, optabs.c, optabs.h, print-rtl.c,
20870         rtl.h, bb-reorder.c, builtins.c, calls.c, cfgbuild.c, cfgexpand.c,
20871         cfgrtl.c, cilk-common.c, config/i386/i386.md, cse.c, dwarf2cfi.c,
20872         except.c, final.c, function.c, gcse-common.c, genemit.c,
20873         haifa-sched.c, ifcvt.c, jump.c, loop-invariant.c, loop-iv.c,
20874         lra-constraints.c, lra.c, reload1.c, resource.c, rtlanal.c,
20875         sched-deps.c, sched-ebb.c, sel-sched-ir.c, sel-sched.c,
20876         shrink-wrap.c, stmt.c, store-motion.c: Replace rtx base types with
20877         more derived ones.
20878
20879 2015-06-06  Mikhail Maltsev  <maltsevm@gmail.com>
20880
20881         * combine.c (combine_split_insns): Remove cast.
20882         * config/bfin/bfin.c (hwloop_fail): Add cast in try_split call.
20883         * config/sh/sh.c (sh_try_split_insn_simple): Remove cast.
20884         * config/sh/sh_treg_combine.cc (sh_treg_combine::execute): Add cast.
20885         * emit-rtl.c (try_split): Promote type of trial argument to rtx_insn.
20886         * genemit.c (gen_split): Change return type of generated functions to
20887         rtx_insn.
20888         * genrecog.c (get_failure_return): Use NULL instead of NULL_RTX.
20889         (print_subroutine_start): Promote rtx to rtx_insn in gen_split_* and
20890         gen_peephole2_* functions.
20891         (print_subroutine, main): Likewise.
20892         * recog.c (peephole2_optimize): Remove cast.
20893         (peep2_next_insn): Promote return type to rtx_insn.
20894         * recog.h (peep2_next_insn): Fix prototype.
20895         * rtl.h (try_split, split_insns): Likewise.
20896
20897 2015-06-06  DJ Delorie  <dj@redhat.com>
20898
20899         * config/msp430/msp430.c (msp430_asm_integer): Support addition
20900         and subtraction too.
20901
20902 2015-06-05  Kaz Kojima  <kkojima@gcc.gnu.org>
20903
20904         PR target/66410
20905         * config/sh/constraints.md (Sid, Ssd): New memory constraints.
20906         * config/sh/sh.md (*mov<mode>): Use Sid and Ssd alternatives
20907         instead of Snd.  Disparage Sid/z alternative with '^'.
20908
20909 2015-06-05  Aldy Hernandez  <aldyh@redhat.com>
20910
20911         * dwarf2out.c: Remove deferred_locations*.
20912         (dwarf2_debug_hooks): Add early_finish hook.
20913         Remove global_decl hook.
20914         Add early_global_decl and late_global_decl hook.
20915         New global early_dwarf.
20916         New structure set_early_dwarf.
20917         (output_die): Indicate whether a DIE was generated early
20918         when generating assembly with -dA.
20919         (struct limbo_die_struct): Document created_for field.
20920         Remove file_table_last_lookup.
20921         (remove_AT): Return TRUE if successful.
20922         (remove_child_TAG): Clear die_parent.
20923         (reparent_child): New function abstracted from...
20924         (splice_child_die): ...here.
20925         (new_die): ICE if a DIE ends up in limbo too late.
20926         (check_die): New.
20927         (defer_location): Remove.
20928         (add_subscript_info): Reuse DW_TAG_subrange_type if available.
20929         (fill_variable_array_bounds): New.
20930         (decl_start_label): Call fill_variable_array_bounds.
20931         (gen_formal_parameter_die): Rewrite to reuse previously generated
20932         DIEs.
20933         (gen_subprogram_die): Same.
20934         (gen_variable_die): Same.
20935         (gen_const_die): Same.
20936         (gen_label_die): Same.
20937         (gen_lexical_block_die): Same.
20938         (decl_will_get_specification_p): New.
20939         (local_function_static): New.
20940         (gen_struct_or_union_type_die): Fill in variable-length fields.
20941         (gen_typedef_die): Fill in variable-length typedefs.
20942         (gen_tagged_type_die): Gracefully return on error_mark_node.
20943         Handle re-entrancy.
20944         (gen_type_die_with_usage): Handle variable-length types.
20945         Remove duplicate code for ARRAY_TYPE case.
20946         (process_scope_var): Only process imported modules during early
20947         dwarf.
20948         (dwarf2out_early_global_decl): New.
20949         (dwarf2out_late_global_decl): Rename from dwarf2out_global_decl.
20950         (dwarf2out_type_decl): Set early_dwarf while calling
20951         dwarf2out_decl.
20952         (dwarf2out_decl): Verify that we did not recreate a previously
20953         generated DIE.
20954         Do not return on DECL_EXTERNALs in VAR_DECLs.
20955         Abstract some code to local_function_static.
20956         (lookup_filename): Remove use of file_table_last_lookup.
20957         Gracefully exit on missing file_name.
20958         (dwarf2out_finish): Verify limbo list.
20959         Remove deferred_locations_list use.
20960         Move deferred_asm_name and limbo flushing to...
20961         (dwarf2out_early_finish): ...here.  New.
20962         (dwarf2out_c_finalize): Remove set of deferred_location_list,
20963         deferred_asm_name, and file_table_last_lookup.
20964         * cgraph.h (referred_to_p): Add default argument.
20965         * cgraphunit.c (referred_to_p): Add and handle include_self
20966         argument.
20967         (analyze_functions): Add first_time argument.
20968         Call check_global_declaration for all symbols.
20969         Call late_global_decl for nodes for moribund nodes.
20970         (finalize_compilation_unit): Add new argument to
20971         analyze_functions.
20972         Call early_global_decl for functions.
20973         Call early_finish debug hook.
20974         * dbxout.c (dbxout_early_global_decl): New.
20975         (dbxout_late_global_decl): New.  Adapted from dbxout_global_decl.
20976         (dbx_debug_hooks): Add new hooks.
20977         (xcoff_debug_hooks): Same.
20978         * debug.c (do_nothing_debug_hooks): Add early_finish field.
20979         Add early and late debug hooks.
20980         Remove global_decl hook.
20981         * debug.h (struct gcc_debug_hooks): Add early_finish,
20982         early_global_decl, and late_global_decl fields.
20983         Remove global_decl field.
20984         Document gcc_debug_hooks.
20985         * gengtype.c (output_typename): Remove.
20986         * godump.c (go_early_global_decl): New.
20987         (go_late_global_decl): New.
20988         (go_global_decl): Remove.
20989         (dump_go_spec_init): Remove global_decl.  Add
20990         {early,late}_global_decl.
20991         * langhooks-def.h (LANG_HOOKS_WRITE_GLOBALS): Remove.
20992         (LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS): New.
20993         * langhooks.c (lhd_warn_unused_global_decl): Adjust comment.
20994         (write_global_declarations): Remove.
20995         (global_decl_processing): New.
20996         * langhooks.h (struct lang_hooks_for_decls): Remove
20997         final_write_globals field.
20998         Add post_compilation_parsing_cleanups field.
20999         * passes.c (rest_of_decl_compilation): Call early_global_decl.
21000         * sdbout.c: Add early and late_global_decl hooks.  Remove
21001         sdbout_global_decl hook.
21002         Add early_finish field for sdb_debug_hooks.
21003         (sdbout_global_decl): Remove.
21004         (sdbout_early_global_decl): New.
21005         (sdbout_late_global_decl): New.
21006         * timevar.def (TV_PHASE_LATE_PARSING_CLEANUPS): New.
21007         * toplev.c (check_global_declaration): Rename from
21008         check_global_declaration_1.
21009         Adapt to use symtab infrastructure.
21010         (check_global_declarations): Remove.
21011         (emit_debug_global_declarations): Remove.
21012         (compile_file): Remove call to final_write_globals langhook.
21013         Run the actual compilation process.
21014         Perform any post compilation parser cleanups.
21015         Generate late debug info.
21016         * toplev.h (check_global_declaration): New.
21017         (check_global_declaration_1): Remove.
21018         (check_global_declarations): Remove.
21019         (write_global_declarations): Remove.
21020         (emit_debug_global_declarations): Remove.
21021         (global_decl_processing): New.
21022         * tree-core.h (struct tree_block): Add DIE field.
21023         * tree.h (BLOCK_DIE): New.
21024         * vmsdbgout.c (vmsdbgout_global_decl): Remove function and its use
21025         throughout.
21026         (vmsdbgout_early_global_decl): New.
21027         (vmsdbgout_late_global_decl): New.
21028         Add early_finish debug hook field to vmsdbg_debug_hooks.
21029         Remove vmsdbgout_decl to vmsdbgout_function_decl.
21030         Add early and late_global_decl debug hooks.
21031
21032 2015-06-05  Julian Brown  <julian@codesourcery.com>
21033             Sandra Loosemore  <sandra@codesourcery.com>
21034
21035         * config/print-sysroot-suffix.sh: Handle MULTILIB_REUSE settings.
21036         * config/t-sysroot-suffix (sysroot-suffix.h): Pass MULTILIB_REUSE
21037         to print-sysroot-suffix.sh script.
21038
21039 2015-06-05  Tom de Vries  <tom@codesourcery.com>
21040
21041         merge from gomp4 branch:
21042         2015-05-28  Tom de Vries  <tom@codesourcery.com>
21043
21044         PR tree-optimization/65443
21045         * tree-parloops.c (replace_imm_uses, replace_uses_in_bb_by)
21046         (replace_uses_in_bbs_by, transform_to_exit_first_loop_alt)
21047         (try_transform_to_exit_first_loop_alt): New function.
21048         (transform_to_exit_first_loop): Use
21049         try_transform_to_exit_first_loop_alt.
21050
21051 2015-06-05  James Greenhalgh  <james.greenhalgh@arm.com>
21052
21053         * builtins.c (expand_builtin_atomic_compare_exchange): Call
21054         emit_cmp_and_jump_insns with the mode of target.
21055
21056 2015-06-05  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
21057
21058         * config/i386/sse.md (sse3_mwait): Swap the operand constriants.
21059
21060 2015-06-04  DJ Delorie  <dj@redhat.com>
21061
21062         * config/msp430/msp430.md (movsi_s): New.  Special case for
21063         storing a 20-bit symbol into a 32-bit register.
21064         * config/msp430/msp430.c (msp430_subreg): Add support for it.
21065         * config/msp430/predicates.md (msp430_symbol_operand): New.
21066
21067 2015-06-04  Sriraman Tallam  <tmsriram@google.com>
21068
21069         * c-family/c-common.c (noplt): New attribute.
21070         (handle_noplt_attribute): New handler.
21071         * calls.c (prepare_call_address): Check for noplt
21072         attribute.
21073         * config/i386/i386.c (ix86_expand_call): Check
21074         for noplt attribute.
21075         (ix86_nopic_noplt_attribute_p): New function.
21076         (ix86_output_call_insn): Output indirect call for non-pic
21077         no plt calls.
21078         * doc/extend.texi (noplt): Document new attribute.
21079         * doc/invoke.texi: Document new attribute.
21080
21081 2015-06-04  Andrew MacLeod  <amacleod@redhat.com>
21082
21083         * coretypes.h: Include machmode.h, signop.h, wide-int.h, double-int.h,
21084         real.h, and fixed-value.h when included in host source files.
21085         * double-int.h: Remove redundant #includes listed above.
21086         * fixed-value.h: Likewise.
21087         * real.h: Likewise.
21088         * wide-int.h: Likewise.
21089         * inchash.h: Likewise.
21090         * rtl.h: Add some include files When included from a generator file.
21091         * target.h: Remove wide-int.h and insn-modes.h from the include list.
21092         * internal-fn.h: Don't include coretypes.h.
21093         * alias.c: Adjust includes for restructured coretypes.h.
21094         * asan.c: Likewise.
21095         * attribs.c: Likewise.
21096         * auto-inc-dec.c: Likewise.
21097         * auto-profile.c: Likewise.
21098         * bb-reorder.c: Likewise.
21099         * bt-load.c: Likewise.
21100         * builtins.c: Likewise.
21101         * caller-save.c: Likewise.
21102         * calls.c: Likewise.
21103         * ccmp.c: Likewise.
21104         * cfg.c: Likewise.
21105         * cfganal.c: Likewise.
21106         * cfgbuild.c: Likewise.
21107         * cfgcleanup.c: Likewise.
21108         * cfgexpand.c: Likewise.
21109         * cfghooks.c: Likewise.
21110         * cfgloop.c: Likewise.
21111         * cfgloop.h: Likewise.
21112         * cfgloopanal.c: Likewise.
21113         * cfgloopmanip.c: Likewise.
21114         * cfgrtl.c: Likewise.
21115         * cgraph.c: Likewise.
21116         * cgraphbuild.c: Likewise.
21117         * cgraphclones.c: Likewise.
21118         * cgraphunit.c: Likewise.
21119         * cilk-common.c: Likewise.
21120         * combine-stack-adj.c: Likewise.
21121         * combine.c: Likewise.
21122         * compare-elim.c: Likewise.
21123         * convert.c: Likewise.
21124         * coverage.c: Likewise.
21125         * cppbuiltin.c: Likewise.
21126         * cprop.c: Likewise.
21127         * cse.c: Likewise.
21128         * cselib.c: Likewise.
21129         * data-streamer-in.c: Likewise.
21130         * data-streamer-out.c: Likewise.
21131         * data-streamer.c: Likewise.
21132         * dbxout.c: Likewise.
21133         * dce.c: Likewise.
21134         * ddg.c: Likewise.
21135         * debug.c: Likewise.
21136         * df-core.c: Likewise.
21137         * df-problems.c: Likewise.
21138         * df-scan.c: Likewise.
21139         * df.h: Likewise.
21140         * dfp.c: Likewise.
21141         * dojump.c: Likewise.
21142         * dominance.c: Likewise.
21143         * domwalk.c: Likewise.
21144         * double-int.c: Likewise.
21145         * dse.c: Likewise.
21146         * dumpfile.c: Likewise.
21147         * dwarf2asm.c: Likewise.
21148         * dwarf2cfi.c: Likewise.
21149         * dwarf2out.c: Likewise.
21150         * dwarf2out.h: Likewise.
21151         * emit-rtl.c: Likewise.
21152         * et-forest.c: Likewise.
21153         * except.c: Likewise.
21154         * explow.c: Likewise.
21155         * expmed.c: Likewise.
21156         * expr.c: Likewise.
21157         * final.c: Likewise.
21158         * fixed-value.c: Likewise.
21159         * fold-const.c: Likewise.
21160         * function.c: Likewise.
21161         * fwprop.c: Likewise.
21162         * gcc-plugin.h: Likewise.
21163         * gcse.c: Likewise.
21164         * generic-match-head.c: Likewise.
21165         * ggc-page.c: Likewise.
21166         * gimple-builder.c: Likewise.
21167         * gimple-expr.c: Likewise.
21168         * gimple-fold.c: Likewise.
21169         * gimple-iterator.c: Likewise.
21170         * gimple-low.c: Likewise.
21171         * gimple-match-head.c: Likewise.
21172         * gimple-pretty-print.c: Likewise.
21173         * gimple-ssa-isolate-paths.c: Likewise.
21174         * gimple-ssa-strength-reduction.c: Likewise.
21175         * gimple-streamer-in.c: Likewise.
21176         * gimple-streamer-out.c: Likewise.
21177         * gimple-streamer.h: Likewise.
21178         * gimple-walk.c: Likewise.
21179         * gimple.c: Likewise.
21180         * gimplify-me.c: Likewise.
21181         * gimplify.c: Likewise.
21182         * godump.c: Likewise.
21183         * graph.c: Likewise.
21184         * graphite-blocking.c: Likewise.
21185         * graphite-dependences.c: Likewise.
21186         * graphite-interchange.c: Likewise.
21187         * graphite-isl-ast-to-gimple.c: Likewise.
21188         * graphite-optimize-isl.c: Likewise.
21189         * graphite-poly.c: Likewise.
21190         * graphite-scop-detection.c: Likewise.
21191         * graphite-sese-to-poly.c: Likewise.
21192         * graphite.c: Likewise.
21193         * haifa-sched.c: Likewise.
21194         * hooks.h: Likewise.
21195         * hw-doloop.c: Likewise.
21196         * ifcvt.c: Likewise.
21197         * incpath.c: Likewise.
21198         * init-regs.c: Likewise.
21199         * internal-fn.c: Likewise.
21200         * ipa-chkp.c: Likewise.
21201         * ipa-comdats.c: Likewise.
21202         * ipa-cp.c: Likewise.
21203         * ipa-devirt.c: Likewise.
21204         * ipa-icf-gimple.c: Likewise.
21205         * ipa-icf.c: Likewise.
21206         * ipa-inline-analysis.c: Likewise.
21207         * ipa-inline-transform.c: Likewise.
21208         * ipa-inline.c: Likewise.
21209         * ipa-polymorphic-call.c: Likewise.
21210         * ipa-profile.c: Likewise.
21211         * ipa-prop.c: Likewise.
21212         * ipa-pure-const.c: Likewise.
21213         * ipa-ref.c: Likewise.
21214         * ipa-reference.c: Likewise.
21215         * ipa-split.c: Likewise.
21216         * ipa-utils.c: Likewise.
21217         * ipa-visibility.c: Likewise.
21218         * ipa.c: Likewise.
21219         * ira-build.c: Likewise.
21220         * ira-color.c: Likewise.
21221         * ira-conflicts.c: Likewise.
21222         * ira-costs.c: Likewise.
21223         * ira-emit.c: Likewise.
21224         * ira-lives.c: Likewise.
21225         * ira.c: Likewise.
21226         * jump.c: Likewise.
21227         * langhooks.c: Likewise.
21228         * lcm.c: Likewise.
21229         * loop-doloop.c: Likewise.
21230         * loop-init.c: Likewise.
21231         * loop-invariant.c: Likewise.
21232         * loop-iv.c: Likewise.
21233         * loop-unroll.c: Likewise.
21234         * lower-subreg.c: Likewise.
21235         * lra-assigns.c: Likewise.
21236         * lra-coalesce.c: Likewise.
21237         * lra-constraints.c: Likewise.
21238         * lra-eliminations.c: Likewise.
21239         * lra-lives.c: Likewise.
21240         * lra-remat.c: Likewise.
21241         * lra-spills.c: Likewise.
21242         * lra.c: Likewise.
21243         * lto-cgraph.c: Likewise.
21244         * lto-compress.c: Likewise.
21245         * lto-opts.c: Likewise.
21246         * lto-section-in.c: Likewise.
21247         * lto-section-out.c: Likewise.
21248         * lto-streamer-in.c: Likewise.
21249         * lto-streamer-out.c: Likewise.
21250         * lto-streamer.c: Likewise.
21251         * mcf.c: Likewise.
21252         * mode-switching.c: Likewise.
21253         * modulo-sched.c: Likewise.
21254         * omega.c: Likewise.
21255         * omp-low.c: Likewise.
21256         * optabs.c: Likewise.
21257         * opts-global.c: Likewise.
21258         * passes.c: Likewise.
21259         * plugin.c: Likewise.
21260         * postreload-gcse.c: Likewise.
21261         * postreload.c: Likewise.
21262         * predict.c: Likewise.
21263         * print-rtl.c: Likewise.
21264         * print-tree.c: Likewise.
21265         * profile.c: Likewise.
21266         * real.c: Likewise.
21267         * realmpfr.c: Likewise.
21268         * realmpfr.h: Likewise.
21269         * recog.c: Likewise.
21270         * ree.c: Likewise.
21271         * reg-stack.c: Likewise.
21272         * regcprop.c: Likewise.
21273         * reginfo.c: Likewise.
21274         * regrename.c: Likewise.
21275         * regs.h: Likewise.
21276         * regstat.c: Likewise.
21277         * reload.c: Likewise.
21278         * reload1.c: Likewise.
21279         * reorg.c: Likewise.
21280         * resource.c: Likewise.
21281         * rtl-chkp.c: Likewise.
21282         * rtlanal.c: Likewise.
21283         * rtlhooks.c: Likewise.
21284         * sanopt.c: Likewise.
21285         * sched-deps.c: Likewise.
21286         * sched-ebb.c: Likewise.
21287         * sched-rgn.c: Likewise.
21288         * sched-vis.c: Likewise.
21289         * sdbout.c: Likewise.
21290         * sel-sched-dump.c: Likewise.
21291         * sel-sched-ir.c: Likewise.
21292         * sel-sched.c: Likewise.
21293         * sese.c: Likewise.
21294         * shrink-wrap.c: Likewise.
21295         * shrink-wrap.h: Likewise.
21296         * simplify-rtx.c: Likewise.
21297         * stack-ptr-mod.c: Likewise.
21298         * statistics.c: Likewise.
21299         * stmt.c: Likewise.
21300         * stor-layout.c: Likewise.
21301         * store-motion.c: Likewise.
21302         * stringpool.c: Likewise.
21303         * symtab.c: Likewise.
21304         * target-globals.c: Likewise.
21305         * targhooks.c: Likewise.
21306         * toplev.c: Likewise.
21307         * tracer.c: Likewise.
21308         * trans-mem.c: Likewise.
21309         * tree-affine.c: Likewise.
21310         * tree-affine.h: Likewise.
21311         * tree-browser.c: Likewise.
21312         * tree-call-cdce.c: Likewise.
21313         * tree-cfg.c: Likewise.
21314         * tree-cfgcleanup.c: Likewise.
21315         * tree-chkp-opt.c: Likewise.
21316         * tree-chkp.c: Likewise.
21317         * tree-chrec.c: Likewise.
21318         * tree-complex.c: Likewise.
21319         * tree-data-ref.c: Likewise.
21320         * tree-dfa.c: Likewise.
21321         * tree-diagnostic.c: Likewise.
21322         * tree-dump.c: Likewise.
21323         * tree-eh.c: Likewise.
21324         * tree-emutls.c: Likewise.
21325         * tree-if-conv.c: Likewise.
21326         * tree-inline.c: Likewise.
21327         * tree-into-ssa.c: Likewise.
21328         * tree-iterator.c: Likewise.
21329         * tree-loop-distribution.c: Likewise.
21330         * tree-nested.c: Likewise.
21331         * tree-nrv.c: Likewise.
21332         * tree-object-size.c: Likewise.
21333         * tree-outof-ssa.c: Likewise.
21334         * tree-parloops.c: Likewise.
21335         * tree-phinodes.c: Likewise.
21336         * tree-predcom.c: Likewise.
21337         * tree-pretty-print.c: Likewise.
21338         * tree-pretty-print.h: Likewise.
21339         * tree-profile.c: Likewise.
21340         * tree-scalar-evolution.c: Likewise.
21341         * tree-sra.c: Likewise.
21342         * tree-ssa-address.c: Likewise.
21343         * tree-ssa-alias.c: Likewise.
21344         * tree-ssa-ccp.c: Likewise.
21345         * tree-ssa-coalesce.c: Likewise.
21346         * tree-ssa-copy.c: Likewise.
21347         * tree-ssa-copyrename.c: Likewise.
21348         * tree-ssa-dce.c: Likewise.
21349         * tree-ssa-dom.c: Likewise.
21350         * tree-ssa-dse.c: Likewise.
21351         * tree-ssa-forwprop.c: Likewise.
21352         * tree-ssa-ifcombine.c: Likewise.
21353         * tree-ssa-live.c: Likewise.
21354         * tree-ssa-loop-ch.c: Likewise.
21355         * tree-ssa-loop-im.c: Likewise.
21356         * tree-ssa-loop-ivcanon.c: Likewise.
21357         * tree-ssa-loop-ivopts.c: Likewise.
21358         * tree-ssa-loop-manip.c: Likewise.
21359         * tree-ssa-loop-niter.c: Likewise.
21360         * tree-ssa-loop-prefetch.c: Likewise.
21361         * tree-ssa-loop-unswitch.c: Likewise.
21362         * tree-ssa-loop.c: Likewise.
21363         * tree-ssa-loop.h: Likewise.
21364         * tree-ssa-math-opts.c: Likewise.
21365         * tree-ssa-operands.c: Likewise.
21366         * tree-ssa-phiopt.c: Likewise.
21367         * tree-ssa-phiprop.c: Likewise.
21368         * tree-ssa-pre.c: Likewise.
21369         * tree-ssa-propagate.c: Likewise.
21370         * tree-ssa-reassoc.c: Likewise.
21371         * tree-ssa-sccvn.c: Likewise.
21372         * tree-ssa-scopedtables.c: Likewise.
21373         * tree-ssa-sink.c: Likewise.
21374         * tree-ssa-strlen.c: Likewise.
21375         * tree-ssa-structalias.c: Likewise.
21376         * tree-ssa-tail-merge.c: Likewise.
21377         * tree-ssa-ter.c: Likewise.
21378         * tree-ssa-threadedge.c: Likewise.
21379         * tree-ssa-threadupdate.c: Likewise.
21380         * tree-ssa-uncprop.c: Likewise.
21381         * tree-ssa-uninit.c: Likewise.
21382         * tree-ssa.c: Likewise.
21383         * tree-ssanames.c: Likewise.
21384         * tree-stdarg.c: Likewise.
21385         * tree-streamer-in.c: Likewise.
21386         * tree-streamer-out.c: Likewise.
21387         * tree-streamer.c: Likewise.
21388         * tree-switch-conversion.c: Likewise.
21389         * tree-tailcall.c: Likewise.
21390         * tree-vect-data-refs.c: Likewise.
21391         * tree-vect-generic.c: Likewise.
21392         * tree-vect-loop-manip.c: Likewise.
21393         * tree-vect-loop.c: Likewise.
21394         * tree-vect-patterns.c: Likewise.
21395         * tree-vect-slp.c: Likewise.
21396         * tree-vect-stmts.c: Likewise.
21397         * tree-vectorizer.c: Likewise.
21398         * tree-vrp.c: Likewise.
21399         * tree.c: Likewise.
21400         * tsan.c: Likewise.
21401         * ubsan.c: Likewise.
21402         * valtrack.c: Likewise.
21403         * value-prof.c: Likewise.
21404         * var-tracking.c: Likewise.
21405         * varasm.c: Likewise.
21406         * varpool.c: Likewise.
21407         * vmsdbgout.c: Likewise.
21408         * vtable-verify.c: Likewise.
21409         * web.c: Likewise.
21410         * wide-int-print.cc: Likewise.
21411         * wide-int-print.h: Likewise.
21412         * wide-int.cc: Likewise.
21413         * xcoffout.c: Likewise.
21414         * config/aarch64/aarch64-builtins.c: Likewise.
21415         * config/aarch64/aarch64.c: Likewise.
21416         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
21417         * config/alpha/alpha.c: Likewise.
21418         * config/arc/arc.c: Likewise.
21419         * config/arm/aarch-common.c: Likewise.
21420         * config/arm/arm-builtins.c: Likewise.
21421         * config/arm/arm-c.c: Likewise.
21422         * config/arm/arm.c: Likewise.
21423         * config/avr/avr-c.c: Likewise.
21424         * config/avr/avr-log.c: Likewise.
21425         * config/avr/avr.c: Likewise.
21426         * config/bfin/bfin.c: Likewise.
21427         * config/c6x/c6x.c: Likewise.
21428         * config/cr16/cr16.c: Likewise.
21429         * config/cris/cris.c: Likewise.
21430         * config/darwin-c.c: Likewise.
21431         * config/darwin.c: Likewise.
21432         * config/default-c.c: Likewise.
21433         * config/epiphany/epiphany.c: Likewise.
21434         * config/epiphany/mode-switch-use.c: Likewise.
21435         * config/epiphany/resolve-sw-modes.c: Likewise.
21436         * config/fr30/fr30.c: Likewise.
21437         * config/frv/frv.c: Likewise.
21438         * config/ft32/ft32.c: Likewise.
21439         * config/glibc-c.c: Likewise.
21440         * config/h8300/h8300.c: Likewise.
21441         * config/i386/i386-c.c: Likewise.
21442         * config/i386/i386.c: Likewise.
21443         * config/i386/msformat-c.c: Likewise.
21444         * config/i386/winnt-cxx.c: Likewise.
21445         * config/i386/winnt-stubs.c: Likewise.
21446         * config/i386/winnt.c: Likewise.
21447         * config/ia64/ia64-c.c: Likewise.
21448         * config/ia64/ia64.c: Likewise.
21449         * config/iq2000/iq2000.c: Likewise.
21450         * config/lm32/lm32.c: Likewise.
21451         * config/m32c/m32c-pragma.c: Likewise.
21452         * config/m32c/m32c.c: Likewise.
21453         * config/m32r/m32r.c: Likewise.
21454         * config/m68k/m68k.c: Likewise.
21455         * config/mcore/mcore.c: Likewise.
21456         * config/mep/mep-pragma.c: Likewise.
21457         * config/mep/mep.c: Likewise.
21458         * config/microblaze/microblaze-c.c: Likewise.
21459         * config/microblaze/microblaze.c: Likewise.
21460         * config/mips/mips.c: Likewise.
21461         * config/mmix/mmix.c: Likewise.
21462         * config/mn10300/mn10300.c: Likewise.
21463         * config/moxie/moxie.c: Likewise.
21464         * config/msp430/msp430-c.c: Likewise.
21465         * config/msp430/msp430.c: Likewise.
21466         * config/nds32/nds32-cost.c: Likewise.
21467         * config/nds32/nds32-fp-as-gp.c: Likewise.
21468         * config/nds32/nds32-intrinsic.c: Likewise.
21469         * config/nds32/nds32-isr.c: Likewise.
21470         * config/nds32/nds32-md-auxiliary.c: Likewise.
21471         * config/nds32/nds32-memory-manipulation.c: Likewise.
21472         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
21473         * config/nds32/nds32-predicates.c: Likewise.
21474         * config/nds32/nds32.c: Likewise.
21475         * config/nios2/nios2.c: Likewise.
21476         * config/nvptx/nvptx.c: Likewise.
21477         * config/pa/pa.c: Likewise.
21478         * config/pdp11/pdp11.c: Likewise.
21479         * config/rl78/rl78-c.c: Likewise.
21480         * config/rl78/rl78.c: Likewise.
21481         * config/rs6000/rs6000-c.c: Likewise.
21482         * config/rs6000/rs6000.c: Likewise.
21483         * config/rx/rx.c: Likewise.
21484         * config/s390/s390-c.c: Likewise.
21485         * config/s390/s390.c: Likewise.
21486         * config/sh/sh-c.c: Likewise.
21487         * config/sh/sh-mem.cc: Likewise.
21488         * config/sh/sh.c: Likewise.
21489         * config/sh/sh_optimize_sett_clrt.cc: Likewise.
21490         * config/sh/sh_treg_combine.cc: Likewise.
21491         * config/sol2-c.c: Likewise.
21492         * config/sol2-cxx.c: Likewise.
21493         * config/sol2-stubs.c: Likewise.
21494         * config/sol2.c: Likewise.
21495         * config/sparc/sparc-c.c: Likewise.
21496         * config/sparc/sparc.c: Likewise.
21497         * config/spu/spu-c.c: Likewise.
21498         * config/spu/spu.c: Likewise.
21499         * config/stormy16/stormy16.c: Likewise.
21500         * config/tilegx/mul-tables.c: Likewise.
21501         * config/tilegx/tilegx-c.c: Likewise.
21502         * config/tilegx/tilegx.c: Likewise.
21503         * config/tilepro/mul-tables.c: Likewise.
21504         * config/tilepro/tilepro-c.c: Likewise.
21505         * config/tilepro/tilepro.c: Likewise.
21506         * config/v850/v850-c.c: Likewise.
21507         * config/v850/v850.c: Likewise.
21508         * config/vax/vax.c: Likewise.
21509         * config/visium/visium.c: Likewise.
21510         * config/vms/vms-c.c: Likewise.
21511         * config/vms/vms.c: Likewise.
21512         * config/vxworks.c: Likewise.
21513         * config/winnt-c.c: Likewise.
21514         * config/xtensa/xtensa.c: Likewise.
21515         * common/config/bfin/bfin-common.c: Likewise.
21516
21517 2015-06-04  Jan Hubicka  <hubicka@ucw.cz>
21518
21519         * tree.h (tree_code_for_canonical_type_merging): New function.
21520         * tree.c (gimple_canonical_types_compatible_p): Use
21521         tree_code_for_canonical_type_merging..
21522
21523 2015-06-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
21524
21525         PR c++/66192
21526         PR target/66200
21527         * doc/tm.texi: Regenerate.
21528         * doc/tm.texi.in (TARGET_RELAXED_ORDERING): Delete.
21529         * target.def (TARGET_RELAXED_ORDERING): Likewise.
21530         * config/alpha/alpha.c (TARGET_RELAXED_ORDERING): Likewise.
21531         * config/ia64/ia64.c (TARGET_RELAXED_ORDERING): Likewise.
21532         * config/rs6000/rs6000.c (TARGET_RELAXED_ORDERING): Likewise.
21533         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Likewise.
21534         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
21535         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Likewise.
21536         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Likewise.
21537
21538 2015-06-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21539
21540         * config/aarch64/aarch64.c (aarch64_override_options): Unconditionally
21541         register fma steering pass.
21542         * config/aarch64/cortex-a57-fma-steering.c (gate): Add gating on
21543         AARCH64_TUNE_FMA_STEERING.
21544
21545 2015-06-03  Jan Hubicka  <hubicka@ucw.cz>
21546
21547         * tree.c (verify_type_variant): Verify that type and variant is
21548         compatible.
21549         (gimple_canonical_types_compatible_p): Look for main variants.
21550
21551 2015-06-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
21552
21553         * config.gcc (powerpc*-*-*): Add support for a new configure
21554         option --with-advance-toolchain=<xxx> which overrides using the
21555         default header files, libraries and dynamic linker.
21556
21557         * config/rs6000/linux64.h (SUBSUBTARGET_EXTRA_SPECS): Add new
21558         specs to support the configure --with-advance-toolchain=<xxx>
21559         option.
21560         (INCLUDE_EXTRA_SPEC): Likewise.
21561         (LINK_OS_EXTRA_SPEC32): Likewise.
21562         (LINK_OK_EXTRA_SPEC64): Likewise.
21563         (LINK_OS_NEW_DTAGS_SPEC): Likewise.
21564         (DYNAMIC_LINKER_PREFIX): Likewise.
21565         (CPP_OS_DEFAULT_SPEC): Use the new specs for providing advance
21566         toolchain support.
21567         (GLIBC_DYNAMIC_LINKER32): Likewise.
21568         (GLIBC_DYNAMIC_LINKER64): Likewise.
21569         (LINK_OS_LINUX_SPEC32): Likewise.
21570         (LINK_OS_LINUX_SPEC64): Likewise.
21571
21572         * doc/install.texi (--enable-advance-toolchain=<xx>): Document new
21573         configuration option.
21574
21575 2015-06-03  Uros Bizjak  <ubizjak@gmail.com>
21576
21577         PR target/66275
21578         * config/i386/i386.c (ix86_function_arg_regno): Use ix86_cfun_abi
21579         to determine current function ABI.
21580         (ix86_function_value_regno_p): Ditto.
21581
21582 2015-06-03  Martin Liska  <mliska@suse.cz>
21583
21584         * alloc-pool.h (struct pool_usage): Correct GNU coding style.
21585         * bitmap.h (struct bitmap_usage): Likewise.
21586         * ggc-common.c (struct ggc_usage): Likewise.
21587         * mem-stats.h (struct mem_location): Likewise.
21588         (struct mem_usage): Likewise.
21589         * vec.c (struct vec_usage): Likewise.
21590
21591 2015-06-03  Benigno B. Junior  <bbj@gentoo.org>
21592
21593         * config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Turn -symbolic into
21594         -Bsymbolic.
21595
21596 2015-06-02  Andres Tiraboschi  <andres.tiraboschi@tallertechnologies.com>
21597
21598         * doc/plugins.texi (enum plugin_event): New event.
21599         * plugin.c (register_callback): Handle PLUGIN_START_PARSE_FUNCTION
21600         and PLUGIN_FINISH_FUNCTION.
21601         * plugin.def (PLUGIN_START_PARSE_FUNCTION): Add plugin event
21602         (PLUGIN_FINISH_PARSE_FUNCTION): Likewise.
21603
21604 2015-06-03  Richard Biener  <rguenther@suse.de>
21605
21606         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
21607         compute GROUP_GAP for the first element.
21608         * tree-vect-slp.c (vect_build_slp_tree_1): Remove restriction
21609         on in-group gaps.
21610
21611 2015-06-03  Nick Clifton  <nickc@redhat.com>
21612
21613         * config/rl78/rl78-real.md: Add peepholes to avoid a register
21614         copy when calling a function.
21615         * config/rl78/rl78.c (need_to_save): Do not push the frame
21616         pointer in an interrupt handler prologue if it is never used.
21617
21618 2015-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21619
21620         * ifcvt (end_ifcvt_sequence): Fix typo in comment above.
21621
21622 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
21623
21624         * ipa-chkp.c (chkp_maybe_create_clone): Create alias
21625         reference when cloning alias node.
21626
21627 2015-06-03  Martin Liska  <mliska@suse.cz>
21628
21629         * alloc-pool.h (struct pool_usage): Correct space padding.
21630         * ggc-page.c (ggc_print_statistics): Align columns in a report.
21631         * mem-stats.h (struct mem_usage): Add argument to print_dash_line.
21632         * tree.c (dump_tree_statistics): Align columns in a report.
21633
21634 2015-06-03  Martin Liska  <mliska@suse.cz>
21635
21636         * alloc-pool.c (allocate_pool_descriptor): Remove.
21637         (struct pool_output_info): Likewise.
21638         (print_alloc_pool_statistics): Likewise.
21639         (dump_alloc_pool_statistics): Likewise.
21640         * alloc-pool.h (struct pool_usage): New struct.
21641         (pool_allocator::initialize): Change usage of memory statistics
21642         to a new interface.
21643         (pool_allocator::release): Likewise.
21644         (pool_allocator::allocate): Likewise.
21645         (pool_allocator::remove): Likewise.
21646         * mem-stats-traits.h (enum mem_alloc_origin): Add new enum value
21647         for a pool allocator.
21648         * mem-stats.h (struct mem_location): Add new ctor.
21649         (struct mem_usage): Add counter for number of
21650         instances.
21651         (mem_alloc_description::register_descriptor): New overload of
21652         * mem-stats.h (mem_location::to_string): New function.
21653         * bitmap.h (struct bitmap_usage): Use this new function.
21654         * ggc-common.c (struct ggc_usage): Likewise.
21655         the function.
21656
21657 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
21658
21659         * defaults.h (SWITCHABLE_TARGET, TARGET_SUPPORTS_WIDE_INT): Move out
21660         of GCC_INSN_FLAGS_H block.
21661
21662 2015-06-03  Andrew Bennett  <andrew.bennett@imgtec.com>
21663
21664         * explow.c (plus_constant): Update check after force_const_mem call
21665         to see if the value returned is not a NULL_RTX.
21666
21667 2015-06-03  Ilya Enkovich  <ilya.enkovich@intel.com>
21668
21669         * ipa.c (symbol_table::remove_unreachable_nodes): Don't
21670         remove instumentation thunks calling reachable functions.
21671         * lto-cgraph.c (output_refs): Always output IPA_REF_CHKP.
21672         * lto/lto-partition.c (privatize_symbol_name_1): New.
21673         (privatize_symbol_name): Privatize both decl and orig_decl
21674         names for instrumented functions.
21675         * cgraph.c (cgraph_node::verify_node): Add transparent
21676         alias chain check for instrumented node.
21677
21678 2015-06-03  Marek Polacek  <polacek@redhat.com>
21679
21680         PR c/64223
21681         PR c/29358
21682         * tree.c (attribute_value_equal): Handle attribute format.
21683         (cmp_attrib_identifiers): Factor out of lookup_ident_attribute.
21684
21685 2015-06-03  Richard Biener  <rguenther@suse.de>
21686
21687         PR tree-optimization/63916
21688         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
21689         Forward-propagate non-invariant addresses by splicing their
21690         reference ops if the result isn't going to be used by PRE.
21691         (vn_reference_lookup_3): Remove pointless assert.
21692
21693 2015-06-03  Richard Biener  <rguenther@suse.de>
21694
21695         PR tree-optimization/66375
21696         * tree-scalar-evolution.c (follow_ssa_edge_binary): First
21697         add to the evolution before following SSA edges.
21698
21699 2015-06-03  Bin Cheng  <bin.cheng@arm.com>
21700
21701         * tree-ssa-loop-ivopts.c (dump_iv): New parameter.
21702         (dump_use, dump_cand, find_induction_variables): Pass new argument
21703         to dump_iv.
21704         (record_use): Preserve the ssa name information in IV.
21705
21706 2015-06-03  Richard Sandiford  <richard.sandiford@arm.com>
21707
21708         * genpreds.c (mark_mode_tests): Mark all MATCH_CODEs as
21709         NO_MODE_TEST.
21710         (add_mode_tests): Don't add mode tests if the predicate only
21711         accepts scalar constant integers.  Otherwise, allow the mode
21712         of "op" to be VOIDmode if the predicate does accept such integers.
21713
21714 2015-06-02  Jim Wilson  <jim.wilson@linaro.org>
21715
21716         PR target/66258
21717         * config/aarch64/aarch64.c (aarch64_function_value_regno_p): Change
21718         !TARGET_GENERAL_REGS_ONLY to TARGET_FLOAT.
21719         (aarch64_secondary_reload): Likewise
21720         (aarch64_expand_builtin_va_start): Change TARGET_GENERAL_REGS_ONLY
21721         to !TARGET_FLOAT.
21722         (aarch64_gimplify_va_arg_expr, aarch64_setup_incoming_varargs):
21723         Likewise.
21724
21725 2015-06-03  Kugan Vivekanandarajah  <kuganv@linaro.org>
21726             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
21727
21728         PR target/65768
21729         * cprop.c (try_replace_reg): Check cost of constants before propagating.
21730
21731 2015-06-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
21732
21733         * config/rs6000/rs6000-modes.def (IFmode): Define IFmode to
21734         provide access to the IBM extended double floating point mode if
21735         long double is IEEE 128-bit floating point.
21736         (KFmode): Define KFmode to provide access to IEEE 128-bit floating
21737         point if long double is the IBM extended double type.
21738
21739         * config/rs6000/rs6000.opt (-mfloat128-none): New switches to
21740         enable adding IEEE 128-bit floating point support.
21741         (-mfloat128-software): Likewise.
21742         (-mfloat128-sw): Likewise.
21743
21744         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Do not allow
21745         128-bit floating point types to occupy any register if
21746         -mlong-double-64.  Do not allow use of IFmode/KFmode unless
21747         -mfloat128-software is enabled.
21748         (rs6000_debug_reg_global): Add IEEE 128-bit floating point debug
21749         support.
21750         (rs6000_option_override_internal): Add -mfloat128-* support.
21751         (rs6000_init_builtins): Setup __ibm128 and __float128 type modes.
21752
21753         * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add ibm128
21754         and float128 type nodes.
21755         (ieee128_float_type_node): Likewise.
21756         (ibm128_float_type_node): Likewise.
21757
21758 2015-06-02  Szabolcs Nagy  <szabolcs.nagy@arm.com>
21759
21760         PR target/66136
21761         * config/aarch64/geniterators.sh: Rewrite in awk.
21762
21763 2015-06-02  Martin Liska  <mliska@suse.cz>
21764
21765         * alloc-pool.h (pool_allocator::pool_allocator): Set implicit
21766         values to avoid -Wmaybe-uninitialized errors.
21767
21768 2015-06-02  Richard Biener  <rguenther@suse.de>
21769
21770         PR debug/65549
21771         * dwarf2out.c (lookup_context_die): New function.
21772         (resolve_addr): Avoid forcing a full DIE for the
21773         target of a DW_TAG_GNU_call_site during late compilation.
21774         Instead create a stub DIE without a type if we have a
21775         context DIE present.
21776
21777 2015-06-02  Uros Bizjak  <ubizjak@gmail.com>
21778
21779         * df-scan.c (df_scan_start_dump): Add space between regno and regname.
21780
21781 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
21782
21783         PR tree-optimization/48052
21784         * cfgloop.h (struct control_iv): New.
21785         (struct loop): New field control_ivs.
21786         * tree-ssa-loop-niter.c : Include "stor-layout.h".
21787         (number_of_iterations_lt): Set no_overflow information.
21788         (number_of_iterations_exit): Init control iv in niter struct.
21789         (record_control_iv): New.
21790         (estimate_numbers_of_iterations_loop): Call record_control_iv.
21791         (loop_exits_before_overflow): New.  Interface factored out of
21792         scev_probably_wraps_p.
21793         (scev_probably_wraps_p): Factor loop niter related code into
21794         loop_exits_before_overflow.
21795         (free_numbers_of_iterations_estimates_loop): Free control ivs.
21796         * tree-ssa-loop-niter.h (free_loop_control_ivs): New.
21797
21798 2015-06-02  Eric Botcazou  <ebotcazou@adacore.com>
21799
21800         * gimplify.c (gimplify_modify_expr): Do not create a DECL_DEBUG_EXPR if
21801         the target doesn't belong to the current function.
21802
21803 2015-06-02  Marek Polacek  <polacek@redhat.com>
21804
21805         PR middle-end/66345
21806         * gimple-fold.c (gimple_fold_builtin_snprintf): Return false if
21807         get_maxval_strlen does not produce an INTEGER_CST.
21808
21809 2015-06-02  Richard Sandiford  <richard.sandiford@arm.com>
21810
21811         * config/arc/constraints.md: Use lower-case names in match_code.
21812         * config/mmix/constraints.md: Likewise.
21813
21814 2015-06-02  Richard Biener  <rguenther@suse.de>
21815
21816         PR tree-optimization/65961
21817         * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove bogus
21818         check and clarify dump message.
21819         (vect_build_slp_tree): If all children are built up from scalars
21820         build up the parent from scalars instead.
21821         * tree-vect-stmts.c (vect_is_simple_use): Cleanup.
21822
21823 2015-06-02  Jan Kratochvil  <jan.kratochvil@redhat.com>
21824
21825         PR other/65366
21826         * gdbhooks.py: Use int(...) instead of long(...).  Use print(...)
21827         instead of print ... .
21828
21829 2015-06-02  Alan Modra  <amodra@gmail.com>
21830
21831         * config/rs6000/vsx.md (vsx_extract_v4sf): Revert accidental
21832         2014-08-11 change.
21833
21834 2015-06-02  Bin Cheng  <bin.cheng@arm.com>
21835
21836         PR tree-optimization/52563
21837         PR tree-optimization/62173
21838         * tree-ssa-loop-ivopts.c (struct iv): New field.  Reorder fields.
21839         (alloc_iv, set_iv): New parameter.
21840         (determine_biv_step): Delete.
21841         (find_bivs): Inline original determine_biv_step.  Pass new
21842         argument to set_iv.
21843         (idx_find_step): Use no_overflow information for conversion.
21844         * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Let
21845         resolve_mixers handle folded_casts.
21846         (instantiate_scev_name): Change bool parameter to bool pointer.
21847         (instantiate_scev_poly, instantiate_scev_binary): Ditto.
21848         (instantiate_array_ref, instantiate_scev_not): Ditto.
21849         (instantiate_scev_3, instantiate_scev_2): Ditto.
21850         (instantiate_scev_1, instantiate_scev_r): Ditto.
21851         (instantiate_scev_convert, ): Change parameter.  Pass argument
21852         to chrec_convert_aggressive.
21853         (instantiate_scev): Change argument.
21854         (resolve_mixers): New parameter and set it.
21855         (scev_const_prop): New argument.
21856         * tree-scalar-evolution.h (resolve_mixers): New parameter.
21857         * tree-chrec.c (convert_affine_scev): Call chrec_convert instead
21858         of chrec_conert_1.
21859         (chrec_convert): New parameter.  Move definition below.
21860         (chrec_convert_aggressive): New parameter and set it.  Call
21861         convert_affine_scev.
21862         * tree-chrec.h (chrec_convert): New parameter.
21863         (chrec_convert_aggressive): Ditto.
21864
21865 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
21866
21867         * gimplify.c (gimplify_modify_expr_rhs): Use simple test on the size.
21868         * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Do not remove
21869         the LHS of a no-return call if its type has variable size.
21870         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
21871         * tree-cfg.c (verify_gimple_call): Accept these no-return calls.
21872
21873 2015-06-01  Andreas Tobler  <andreast@gcc.gnu.org>
21874
21875         * read-rtl.c: Adapt to use HAVE_DECL_ATOLL instead of HAVE_ATOLL.
21876         * config.in: Regenerate.
21877
21878 2015-06-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
21879
21880         * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
21881         consecutive accesses within outer-loop with force_vectorize
21882         for references with zero step in inner-loop.
21883
21884 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
21885
21886         * Makefile.in: Pick up gcov-dump dependencies from gcc/ directory
21887         rather than from gcc/build directory.
21888
21889 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
21890
21891         PR target/65697
21892         * config/aarch64/aarch64.c (aarch64_split_compare_and_swap): Check
21893         for __sync memory models, emit initial loads and final barriers as
21894         appropriate.
21895
21896 2015-06-01  Matthew Wahab  <matthew.wahab@arm.com>
21897
21898         PR target/65697
21899         * config/aarch64/aarch64.c (aarch64_emit_post_barrier):New.
21900         (aarch64_split_atomic_op): Check for __sync memory models, emit
21901         appropriate initial loads and final barriers.
21902
21903 2015-06-01  Vidya Praveen  <vidyapraveen@arm.com>
21904
21905         * Makefile.in: Fix gcov dependencies that should
21906         not point to a build folder.
21907
21908 2015-06-01  Richard Biener  <rguenther@suse.de>
21909
21910         Revert
21911         2015-05-29  Richard Biener  <rguenther@suse.de>
21912
21913         PR tree-optimization/66314
21914         * tree-ssa-threadupdate.c (create_block_for_threading): Add
21915         parameter that says which loop the new block belongs to.
21916         (ssa_create_duplicates): Blocks duplicated for the threaded
21917         path belong to the loop of the thread destination.
21918
21919 2015-06-01  Martin Liska  <mliska@suse.cz>
21920
21921         * sched-deps.c: Include pool-alloc.h before
21922         cselib.h header file is included.
21923
21924 2015-06-01  Richard Biener  <rguenther@suse.de>
21925
21926         * tree-ssa-structalias.c (ipa_pta_execute): Handle address-taken
21927         functions.
21928
21929 2015-06-01  Martin Liska  <mliska@suse.cz>
21930
21931         * alloc-pool.h: Add ATTRIBUTE_UNUSED for
21932         a function local variable.
21933
21934 2015-06-01  Martin Liska  <mliska@suse.cz>
21935
21936         * alloc-pool.c (create_alloc_pool): Remove.
21937         (empty_alloc_pool): Likewise.
21938         (free_alloc_pool): Likewise.
21939         (free_alloc_pool_if_empty): Likewise.
21940         (pool_alloc): Likewise.
21941         (pool_free): Likewise.
21942         * alloc-pool.h: Remove old declarations.
21943
21944 2015-06-01  Martin Liska  <mliska@suse.cz>
21945
21946         * ira-build.c (initiate_allocnos): Use new type-based pool allocator.
21947         (ira_create_object): Likewise.
21948         (ira_create_allocno): Likewise.
21949         (ira_create_live_range): Likewise.
21950         (copy_live_range): Likewise.
21951         (ira_finish_live_range): Likewise.
21952         (ira_free_allocno_costs): Likewise.
21953         (finish_allocno): Likewise.
21954         (finish_allocnos): Likewise.
21955         (initiate_prefs): Likewise.
21956         (ira_create_pref): Likewise.
21957         (finish_pref): Likewise.
21958         (finish_prefs): Likewise.
21959         (initiate_copies): Likewise.
21960         (ira_create_copy): Likewise.
21961         (finish_copy): Likewise.
21962         (finish_copies): Likewise.
21963         (finish_prefs): Likewise.
21964
21965 2015-06-01  Martin Liska  <mliska@suse.cz>
21966
21967         * ipa-cp.c (ipcp_value::add_source): Use new type-based pool allocator.
21968         (allocate_and_init_ipcp_value): Likewise.
21969         (ipcp_lattice::add_value): Likewise.
21970         (merge_agg_lats_step): Likewise.
21971         (ipcp_driver): Likewise.
21972         * ipa-prop.c (ipa_free_all_structures_after_ipa_cp): Likewise.
21973         (ipa_free_all_structures_after_iinln): Likewise.
21974         * ipa-prop.h: Likewise.
21975
21976 2015-06-01  Martin Liska  <mliska@suse.cz>
21977
21978         * ipa-inline-analysis.c (edge_set_predicate): Use new type-based
21979         pool allocator.
21980         (set_hint_predicate): Likewise.
21981         (inline_summary_alloc): Likewise.
21982         (reset_inline_edge_summary): Likewise.
21983         (reset_inline_summary): Likewise.
21984         (set_cond_stmt_execution_predicate): Likewise.
21985         (set_switch_stmt_execution_predicate): Likewise.
21986         (compute_bb_predicates): Likewise.
21987         (estimate_function_body_sizes): Likewise.
21988         (inline_free_summary): Likewise.
21989
21990 2015-06-01  Martin Liska  <mliska@suse.cz>
21991
21992         * ipa-prop.c (ipa_set_jf_constant): Use new type-based pool allocator.
21993         (ipa_edge_duplication_hook): Likewise.
21994         (ipa_free_all_structures_after_ipa_cp): Likewise.
21995         (ipa_free_all_structures_after_iinln): Likewise.
21996
21997 2015-06-01  Martin Liska  <mliska@suse.cz>
21998
21999         * ipa-profile.c (account_time_size): Use new type-based pool allocator.
22000         (ipa_profile_generate_summary): Likewise.
22001         (ipa_profile_read_summary): Likewise.
22002         (ipa_profile): Likewise.
22003
22004 2015-06-01  Martin Liska  <mliska@suse.cz>
22005
22006         * tree-ssa-structalias.c (new_var_info): Use new type-based
22007         pool allocator.
22008         (new_constraint): Likewise.
22009         (init_alias_vars): Likewise.
22010         (delete_points_to_sets): Likewise.
22011
22012 2015-06-01  Martin Liska  <mliska@suse.cz>
22013
22014         * tree-ssa-strlen.c (new_strinfo): Use new type-based pool allocator.
22015         (free_strinfo): Likewise.
22016         (pass_strlen::execute): Likewise.
22017
22018 2015-06-01  Martin Liska  <mliska@suse.cz>
22019
22020         * tree-ssa-sccvn.c (vn_reference_insert): Use new type-based
22021         pool allocator.
22022         (vn_reference_insert_pieces): Likewise.
22023         (vn_phi_insert): Likewise.
22024         (visit_reference_op_call): Likewise.
22025         (copy_phi): Likewise.
22026         (copy_reference): Likewise.
22027         (process_scc): Likewise.
22028         (allocate_vn_table): Likewise.
22029         (free_vn_table): Likewise.
22030
22031 2015-06-01  Martin Liska  <mliska@suse.cz>
22032
22033         * tree-ssa-reassoc.c (add_to_ops_vec): Use new type-based
22034         pool allocator.
22035         (add_repeat_to_ops_vec): Likewise.
22036         (get_ops): Likewise.
22037         (maybe_optimize_range_tests): Likewise.
22038         (init_reassoc): Likewise.
22039         (fini_reassoc): Likewise.
22040
22041 2015-06-01  Martin Liska  <mliska@suse.cz>
22042
22043         * tree-ssa-pre.c (get_or_alloc_expr_for_name): Use new type-based
22044         pool allocator.
22045         (bitmap_set_new): Likewise.
22046         (get_or_alloc_expr_for_constant): Likewise.
22047         (get_or_alloc_expr_for): Likewise.
22048         (phi_translate_1): Likewise.
22049         (compute_avail): Likewise.
22050         (init_pre): Likewise.
22051         (fini_pre): Likewise.
22052
22053 2015-06-01  Martin Liska  <mliska@suse.cz>
22054
22055         * sched-deps.c (create_dep_node): Use new type-based pool allocator.
22056         (delete_dep_node): Likewise.
22057         (create_deps_list): Likewise.
22058         (free_deps_list): Likewise.
22059         (sched_deps_init): Likewise.
22060         (sched_deps_finish): Likewise.
22061
22062 2015-06-01  Martin Liska  <mliska@suse.cz>
22063
22064         * regcprop.c (free_debug_insn_changes): Use new type-based
22065         pool allocator.
22066         (replace_oldest_value_reg): Likewise.
22067         (pass_cprop_hardreg::execute): Likewise.
22068
22069 2015-06-01  Martin Liska  <mliska@suse.cz>
22070
22071         * ira-build.c (initiate_cost_vectors): Use new type-based
22072         pool allocator.
22073         (ira_allocate_cost_vector): Likewise.
22074         (ira_free_cost_vector): Likewise.
22075         (finish_cost_vectors): Likewise.
22076
22077 2015-06-01  Martin Liska  <mliska@suse.cz>
22078
22079         * sel-sched-ir.c (alloc_sched_pools): Use new type-based
22080         pool allocator.
22081         (free_sched_pools): Likewise.
22082         * sel-sched-ir.h (_list_alloc): Likewise.
22083         (_list_remove): Likewise.
22084
22085 2015-06-01  Martin Liska  <mliska@suse.cz>
22086
22087         * stmt.c (add_case_node): Use new type-based pool allocator.
22088         (expand_case): Likewise.
22089         (expand_sjlj_dispatch_table): Likewise.
22090
22091 2015-06-01  Martin Liska  <mliska@suse.cz>
22092
22093         * tree-ssa-math-opts.c (occ_new): Use new type-based pool allocator.
22094         (free_bb): Likewise.
22095         (pass_cse_reciprocals::execute): Likewise.
22096
22097 2015-06-01  Martin Liska  <mliska@suse.cz>
22098
22099         * tree-sra.c (sra_initialize): Use new type-based pool allocator.
22100         (sra_deinitialize) Likewise.
22101         (create_access_1) Likewise.
22102         (build_accesses_from_assign) Likewise.
22103         (create_artificial_child_access) Likewise.
22104
22105 2015-06-01  Martin Liska  <mliska@suse.cz>
22106
22107         * dse.c (get_group_info):Use new type-based pool allocator.
22108         (dse_step0) Likewise.
22109         (free_store_info) Likewise.
22110         (delete_dead_store_insn) Likewise.
22111         (free_read_records) Likewise.
22112         (record_store) Likewise.
22113         (replace_read) Likewise.
22114         (check_mem_read_rtx) Likewise.
22115         (scan_insn) Likewise.
22116         (dse_step1) Likewise.
22117         (dse_step7) Likewise.
22118
22119 2015-06-01  Martin Liska  <mliska@suse.cz>
22120
22121         * df-scan.c (struct df_scan_problem_data):Use new type-based
22122         pool allocator.
22123         (df_scan_free_internal) Likewise.
22124         (df_scan_alloc) Likewise.
22125         (df_grow_reg_info) Likewise.
22126         (df_free_ref) Likewise.
22127         (df_insn_create_insn_record) Likewise.
22128         (df_mw_hardreg_chain_delete) Likewise.
22129         (df_insn_info_delete) Likewise.
22130         (df_free_collection_rec) Likewise.
22131         (df_mw_hardreg_chain_delete_eq_uses) Likewise.
22132         (df_sort_and_compress_mws) Likewise.
22133         (df_ref_create_structure) Likewise.
22134         (df_ref_record) Likewise.
22135
22136 2015-06-01  Martin Liska  <mliska@suse.cz>
22137
22138         * df-problems.c (df_chain_create):Use new type-based pool allocator.
22139         (df_chain_unlink_1) Likewise.
22140         (df_chain_unlink) Likewise.
22141         (df_chain_remove_problem) Likewise.
22142         (df_chain_alloc) Likewise.
22143         (df_chain_free) Likewise.
22144         * df.h (struct dataflow) Likewise.
22145
22146 2015-06-01  Martin Liska  <mliska@suse.cz>
22147
22148         * cselib.c (new_elt_list):Use new type-based pool allocator.
22149         (new_elt_loc_list) Likewise.
22150         (unchain_one_elt_list) Likewise.
22151         (unchain_one_elt_loc_list) Likewise.
22152         (unchain_one_value) Likewise.
22153         (new_cselib_val) Likewise.
22154         (cselib_init) Likewise.
22155         (cselib_finish) Likewise.
22156
22157 2015-06-01  Martin Liska  <mliska@suse.cz>
22158
22159         * config/sh/sh.c (add_constant):Use new type-based pool allocator.
22160         (sh_reorg) Likewise.
22161
22162 2015-06-01  Martin Liska  <mliska@suse.cz>
22163
22164         * cfg.c (initialize_original_copy_tables):Use new type-based
22165         pool allocator.
22166         (free_original_copy_tables) Likewise.
22167         (copy_original_table_clear) Likewise.
22168         (copy_original_table_set) Likewise.
22169
22170 2015-06-01  Martin Liska  <mliska@suse.cz>
22171
22172         * asan.c (asan_mem_ref_get_alloc_pool):Use new type-based
22173         pool allocator.
22174         (asan_mem_ref_new) Likewise.
22175         (free_mem_ref_resources) Likewise.
22176
22177 2015-06-01  Martin Liska  <mliska@suse.cz>
22178
22179         * var-tracking.c (variable_htab_free):Use new type-based
22180         pool allocator.
22181         (attrs_list_clear) Likewise.
22182         (attrs_list_insert) Likewise.
22183         (attrs_list_copy) Likewise.
22184         (shared_hash_unshare) Likewise.
22185         (shared_hash_destroy) Likewise.
22186         (unshare_variable) Likewise.
22187         (var_reg_delete_and_set) Likewise.
22188         (var_reg_delete) Likewise.
22189         (var_regno_delete) Likewise.
22190         (drop_overlapping_mem_locs) Likewise.
22191         (variable_union) Likewise.
22192         (insert_into_intersection) Likewise.
22193         (canonicalize_values_star) Likewise.
22194         (variable_merge_over_cur) Likewise.
22195         (dataflow_set_merge) Likewise.
22196         (remove_duplicate_values) Likewise.
22197         (variable_post_merge_new_vals) Likewise.
22198         (dataflow_set_preserve_mem_locs) Likewise.
22199         (dataflow_set_remove_mem_locs) Likewise.
22200         (variable_from_dropped) Likewise.
22201         (variable_was_changed) Likewise.
22202         (set_slot_part) Likewise.
22203         (clobber_slot_part) Likewise.
22204         (delete_slot_part) Likewise.
22205         (loc_exp_insert_dep) Likewise.
22206         (notify_dependents_of_changed_value) Likewise.
22207         (emit_notes_for_differences_1) Likewise.
22208         (vt_emit_notes) Likewise.
22209         (vt_initialize) Likewise.
22210         (vt_finalize) Likewise.
22211
22212 2015-06-01  Martin Liska  <mliska@suse.cz>
22213
22214         * ira-color.c (init_update_cost_records):Use new type-based
22215         pool allocator.
22216         (get_update_cost_record) Likewise.
22217         (free_update_cost_record_list) Likewise.
22218         (finish_update_cost_records) Likewise.
22219         (initiate_cost_update) Likewise.
22220
22221 2015-06-01  Martin Liska  <mliska@suse.cz>
22222
22223         * lra.c (init_insn_regs): Use new type-based pool allocator.
22224         (new_insn_reg) Likewise.
22225         (free_insn_reg) Likewise.
22226         (free_insn_regs) Likewise.
22227         (finish_insn_regs) Likewise.
22228         (init_insn_recog_data) Likewise.
22229         (init_reg_info) Likewise.
22230         (finish_reg_info) Likewise.
22231         (lra_free_copies) Likewise.
22232         (lra_create_copy) Likewise.
22233         (invalidate_insn_data_regno_info) Likewise.
22234
22235 2015-06-01  Martin Liska  <mliska@suse.cz>
22236
22237         * lra-lives.c (free_live_range): Use new type-based pool allocator.
22238         (free_live_range_list) Likewise.
22239         (create_live_range) Likewise.
22240         (copy_live_range) Likewise.
22241         (lra_merge_live_ranges) Likewise.
22242         (remove_some_program_points_and_update_live_ranges) Likewise.
22243         (lra_live_ranges_init) Likewise.
22244         (lra_live_ranges_finish) Likewise.
22245
22246 2015-06-01  Martin Liska  <mliska@suse.cz>
22247
22248         * et-forest.c (et_new_occ): Use new type-based pool allocator.
22249         (et_new_tree): Likewise.
22250         (et_free_tree): Likewise.
22251         (et_free_tree_force): Likewise.
22252         (et_free_pools): Likewise.
22253         (et_split): Likewise.
22254
22255 2015-06-01  Martin Liska  <mliska@suse.cz>
22256
22257         * alloc-pool.c (struct alloc_pool_descriptor): Move definition
22258         to header file.
22259         * alloc-pool.h (pool_allocator::pool_allocator): New function.
22260         (pool_allocator::release): Likewise.
22261         (inline pool_allocator::release_if_empty): Likewise.
22262         (inline pool_allocator::~pool_allocator): Likewise.
22263         (pool_allocator::allocate): Likewise.
22264         (pool_allocator::remove): Likewise.
22265
22266 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
22267
22268         * sched-deps.c (sched_analyze_2): Replace fuseable with fusible
22269         in comment.
22270
22271 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
22272
22273         * config/arm/arm-protos.h (tune_params): Rename fuseable_ops
22274         to fusible_ops.
22275         * config/arm/arm.c (arm_print_tune_info): Likewise.
22276         (arm_macro_fusion_p): Likewise.
22277         (arm_macro_fusion_pair_p): Likewise.
22278
22279 2015-06-01  James Greenhalgh  <james.greenhalgh@arm.com>
22280
22281         * config/aarch64/aarch64-protos.h (tune_params): Rename
22282         fuseable_ops to fusible_ops.
22283         * config/aarch64/aarch64.c (generic_tunings): Rename
22284         fuseable_ops to fusible_ops.
22285         (cortexa53_tunings): Likewise.
22286         (cortexa57_tunings): Likewise.
22287         (thunderx_tunings): Likewise.
22288         (xgene1_tunings): Likewise.
22289         (aarch64_macro_fusion_p): Likewise.
22290         (aarch64_macro_fusion_pair_p): Likewise.
22291
22292 2015-06-01  Dominik Vogt  <vogt@linux.vnet.ibm.com>
22293
22294         * config/s390/driver-native.c: New file.
22295         * config/s390/x-native: New file.
22296         * config.host: Add new files for s390.
22297         * config/s390/s390.h (DRIVER_SELF_SPECS): Add support for -mtune=native
22298         and -march=native
22299         * config.gcc: Likewise.
22300         * config/s390/s390.opt (march): Likewise; add PROCESSOR_NATIVE
22301         * config/s390/s390-opts.h (enum processor_type): Ditto.
22302         * config/s390/s390.c (s390_option_override): Catch unhandled
22303         PROCESSOR_NATIVE
22304
22305 2015-06-01  Ilya Enkovich  <ilya.enkovich@intel.com>
22306
22307         PR target/65527
22308         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Add
22309         redirection for instrumented calls.
22310         * lto-wrapper.c (merge_and_complain): Merge -fcheck-pointer-bounds.
22311         (append_compiler_options): Append -fcheck-pointer-bounds.
22312         * tree-chkp.h (chkp_copy_call_skip_bounds): New.
22313         (chkp_redirect_edge): New.
22314         * tree-chkp.c (chkp_copy_call_skip_bounds): New.
22315         (chkp_redirect_edge): New.
22316
22317 2015-06-01  Richard Biener  <rguenther@suse.de>
22318
22319         PR tree-optimization/66280
22320         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Fix pattern
22321         def-use walking.
22322
22323 2015-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22324
22325         * config/aarch64/aarch64.md
22326         (*<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Change type to
22327         logic_shift_imm.
22328
22329 2015-06-01  Eric Botcazou  <ebotcazou@adacore.com>
22330
22331         * config/i386/winnt.c (i386_pe_encode_section_info) <FUNCTION_DECL>:
22332         Remove obsolete kludge.
22333
22334 2015-06-01  Richard Biener  <rguenther@suse.de>
22335
22336         * tree-ssa-reassoc.c (get_rank): Simplify.
22337
22338 2015-05-31  H.J. Lu  <hongjiu.lu@intel.com>
22339
22340         * configure.ac (NO_PIE_CFLAGS): Check CXXFLAGS instead of CFLAGS.
22341         * configure: Regenerated.
22342
22343 2015-05-31  Mikhail Maltsev  <maltsevm@gmail.com>
22344
22345         * config/cris/cris.h (CRIS_ARCH_CPP_DEFAULT): Fix C++11 compatibility
22346         issue (add space between string literal and macro).
22347         * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Likewise.
22348
22349 2015-05-30  Andreas Schwab  <schwab@linux-m68k.org>
22350
22351         * config/m68k/m68k.h (ASM_PCREL_SPEC): Pass --pcrel also for
22352         implict or explicit -fPIE or -fpie.
22353
22354 2015-05-30  Mike Frysinger  <vapier@gentoo.org>
22355
22356         * config/alpha/elf.h (ASM_SPEC): Add %{mcpu=*:-m%*}.
22357
22358 2015-05-28  DJ Delorie  <dj@redhat.com>
22359
22360         * expmed.c (extract_bit_field_1): Avoid clobbering a
22361         yet-to-be-used base/index register.
22362
22363 2015-05-30  Jan Hubicka  <hubicka@ucw.cz>
22364
22365         * alias.c (alias_set_entry_d): Add is_pointer and has_pointer.
22366         (alias_stats): Add num_universal.
22367         (alias_set_subset_of): Special case pointers; be ready for NULL
22368         children.
22369         (alias_sets_conflict_p): Special case pointers; be ready for NULL
22370         children.
22371         (init_alias_set_entry): Break out from ...
22372         (record_alias_subset): ... here; propagate new fields;
22373         allocate children only when really needed.
22374         (get_alias_set): Do less generous pointer globbing.
22375         (dump_alias_stats_in_alias_c): Update statistics.
22376
22377 2015-05-30  Alan Modra  <amodra@gmail.com>
22378
22379         * config/rs6000/rs6000.c (split_stack_arg_pointer_used_p): Scan
22380         correct block for use of r12.
22381         (rs6000_expand_split_stack_prologue): Error on r29 asm global reg.
22382
22383 2015-05-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
22384
22385         PR target/66215
22386         * config/s390/s390.c (s390_reorg): Fix placement of post-label NOPs
22387         with -mhotpatch=.
22388
22389 2015-05-29  Jakub Jelinek  <jakub@redhat.com>
22390
22391         PR tree-optimization/66142
22392         * tree-if-conv.c (if_convertible_phi_p): Don't give up on
22393         virtual phis that feed themselves.
22394
22395 2015-05-29  Richard Biener  <rguenther@suse.de>
22396
22397         PR tree-optimization/66314
22398         * tree-ssa-threadupdate.c (create_block_for_threading): Add
22399         parameter that says which loop the new block belongs to.
22400         (ssa_create_duplicates): Blocks duplicated for the threaded
22401         path belong to the loop of the thread destination.
22402
22403 2015-05-29  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
22404
22405         * config/arm/neon-testgen.ml (emit_epilogue): Remove manual call
22406         to cleanup-saved-temps.
22407         * doc/sourcebuild.texi (Clean up generated test files): Expand
22408         introduction.
22409         (dg-keep-saved-temps): Document new proc.
22410         (cleanup-ipa-dump, cleanup-rtl-dump, cleanup-tree-dump,
22411         cleanup-saved-temps): Remove.
22412
22413 2015-05-28  Andreas Tobler  <andreast@gcc.gnu.org>
22414
22415         * configure.ac: Move the atoll check from AC_CHECK_FUNCS to
22416         gcc_AC_CHECK_DECLS.
22417         * configure: Regenerate.
22418
22419 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
22420
22421         * config/nios2/linux.h (CPP_SPEC): Define.
22422
22423 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
22424
22425         * config/microblaze/linux.h (CPP_SPEC): Define.
22426
22427 2015-05-28  Mike Frysinger  <vapier@gentoo.org>
22428
22429         * config/pa/pa-linux.h (CPP_SPEC): Change so -D_REENTRANT is used when
22430         -pthread is specified.
22431
22432 2015-05-28  Richard Biener  <rguenther@suse.de>
22433
22434         * tree-vect-loop.c (vect_fixup_reduc_chain): New function.
22435         (vect_fixup_scalar_cycles_with_patterns): Likewise.
22436         (vect_analyze_loop_2): Call vect_fixup_scalar_cycles_with_patterns
22437         after pattern recog.
22438         (vect_create_epilog_for_reduction): Properly handle reductions
22439         with patterns.
22440         (vectorizable_reduction): Likewise.
22441         * tree-vect-slp.c (vect_analyze_slp_instance): Properly mark
22442         reduction chains.
22443         (vect_get_constant_vectors): Create the correct number of
22444         initial values for reductions.
22445         (vect_schedule_slp_instance): Handle reduction chains that are
22446         type changing properly.
22447         * tree-vect-stmts.c (vect_analyze_stmt): Adjust.
22448
22449 2015-05-28  Richard Biener  <rguenther@suse.de>
22450
22451         PR tree-optimization/66142
22452         * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle non-GIMPLE
22453         values better in memcpy destination handling.  Handle non-aliasing
22454         we discover here.
22455
22456 2015-05-28  Lawrence Velázquez  <vq@larryv.me>
22457
22458         PR target/63810
22459         * config/darwin-c.c (version_components): New global enum.
22460         (parse_version, version_as_legacy_macro)
22461         (version_as_modern_macro, macosx_version_as_macro): New functions.
22462         (version_as_macro): Remove.
22463         (darwin_cpp_builtins): Use new function.
22464
22465 2015-05-28  H.J. Lu  <hongjiu.lu@intel.com>
22466
22467         * builtins.c (expand_builtin_acc_on_device): Mark parameters
22468         with ATTRIBUTE_UNUSED.
22469
22470 2015-05-28  Julian Brown  <julian@codesourcery.com>
22471
22472         PR libgomp/65742
22473
22474         * builtins.c (expand_builtin_acc_on_device): Don't use open-coded
22475         sequence for !ACCEL_COMPILER.
22476
22477 2015-05-28  Nick Clifton  <nickc@redhat.com>
22478
22479         * config/rx/rx.c (push_regs): New function.  Extracts code from...
22480         (rx_expand_prologue): ... here.  Use push_regs to push even small
22481         spans of registers.
22482         (pop_regs): New function.
22483         (rx_expand_epilogue):  Use pop_regs to pop even small spans of
22484         registers.
22485
22486 2015-05-28  Richard Biener  <rguenther@suse.de>
22487
22488         * tree-vectorizer.h (struct _slp_instance): Remove body_cost_vec
22489         member.
22490         (SLP_INSTANCE_BODY_COST_VEC): Remove.
22491         (vect_update_slp_costs_according_to_vf): Likewise.
22492         (vect_slp_analyze_operations): Update prototype.
22493         * tree-vect-loop.c (vect_analyze_loop_2): Remove call to
22494         vect_update_slp_costs_according_to_vf, adjust.
22495         * tree-vect-slp.c (vect_free_slp_instance): Adjust.
22496         (vect_analyze_slp_cost_1): Likewise.
22497         (vect_analyze_slp_cost): Likewise.  Properly deal with
22498         widening reduction ops.  Commit body costs.
22499         (vect_analyze_slp_instance): Adjust.  Do not analyze SLP
22500         cost for loops from here.
22501         (vect_slp_analyze_operations): But do it from here when
22502         the vectorization factor is known and stmts are analyzed.
22503         (vect_bb_vectorization_profitable_p): Simplify.
22504         (vect_slp_analyze_bb_1): Do not compute SLP cost here.
22505         (vect_update_slp_costs_according_to_vf): Remove.
22506
22507 2015-05-27  Magnus Granberg  <zorry@gentoo.org>
22508             H.J. Lu  <hongjiu.lu@intel.com>
22509
22510         * Makefile.in (COMPILER): Add @NO_PIE_CFLAGS@.
22511         (BUILD_CFLAGS): Likewise.
22512         (BUILD_CXXFLAGS): Likewise.
22513         (LINKER): Add @NO_PIE_FLAG@.
22514         (BUILD_LDFLAGS): Likewise.
22515         (libgcc.mvars): Set NO_PIE_CFLAGS to -fno-PIE for
22516         --enable-default-pie.
22517         * common.opt (fPIE): Initialize to -1.
22518         (fpie): Likewise.
22519         (no-pie): New option.
22520         (pie): Replace "Negative(shared)" with "Negative(no-pie)".
22521         * configure.ac: Add --enable-default-pie.
22522         (NO_PIE_CFLAGS): New.  Check if -fno-PIE works.  AC_SUBST.
22523         (NO_PIE_FLAG): New.  Check if -no-pie works.  AC_SUBST.
22524         * defaults.h (DEFAULT_FLAG_PIE): New.  Default PIE to -fPIE.
22525         * gcc.c (NO_PIE_SPEC): New.
22526         (PIE_SPEC): Likewise.
22527         (NO_FPIE1_SPEC): Likewise.
22528         (FPIE1_SPEC): Likewise.
22529         (NO_FPIE2_SPEC): Likewise.
22530         (FPIE2_SPEC): Likewise.
22531         (NO_FPIE2_SPEC): Likewise.
22532         (FPIE_SPEC): Likewise.
22533         (NO_FPIE_SPEC): Likewise.
22534         (NO_FPIC1_SPEC): Likewise.
22535         (FPIC1_SPEC): Likewise.
22536         (NO_FPIC2_SPEC): Likewise.
22537         (FPIC2_SPEC): Likewise.
22538         (NO_FPIC2_SPEC): Likewise.
22539         (FPIC_SPEC): Likewise.
22540         (NO_FPIC_SPEC): Likewise.
22541         (NO_FPIE1_AND_FPIC1_SPEC): Likewise.
22542         (FPIE1_OR_FPIC1_SPEC): Likewise.
22543         (NO_FPIE2_AND_FPIC2_SPEC): Likewise.
22544         (FPIE2_OR_FPIC2_SPEC): Likewise.
22545         (NO_FPIE_AND_FPIC_SPEC): Likewise.
22546         (FPIE_OR_FPIC_SPEC): Likewise.
22547         (LD_PIE_SPEC): Likewise.
22548         (LINK_PIE_SPEC): Handle -no-pie.  Use PIE_SPEC and LD_PIE_SPEC.
22549         * opts.c (finish_options): Update opts->x_flag_pie if it is -1.
22550         * config/darwin.h (PIE_SPEC): Renamed to ...
22551         (DARWIN_PIE_SPEC): This.
22552         (LINK_SPEC): Replace PIE_SPEC with DARWIN_PIE_SPEC.
22553         * config/darwin9.h (PIE_SPEC): Renamed to ...
22554         (DARWIN_PIE_SPEC): This.
22555         * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use
22556         PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
22557         * config/openbsd.h (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and
22558         FPIE2_OR_FPIC2_SPEC.
22559         * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
22560         * config/m68k/openbsd.h (ASM_SPEC): Likewise.
22561         * config/sol2.h (ASM_PIC_SPEC): Likewise.
22562         * config/arm/freebsd.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
22563         * config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
22564         * config/arm/semi.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
22565         * config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
22566         * config/m32r/m32r.h (ASM_SPEC): Likewise.
22567         * config/m68k/uclinux.h (DRIVER_SELF_SPECS): Likewise.
22568         * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
22569         * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
22570         * config/sparc/freebsd.h (ASM_SPEC): Likewise.
22571         * config/sparc/linux.h (ASM_SPEC): Likewise.
22572         * config/sparc/linux64.h (ASM_SPEC): Likewise.
22573         * config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
22574         * config/sparc/openbsd64.h (ASM_SPEC): Likewise.
22575         * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
22576         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
22577         * config/sparc/sparc.h (ASM_SPEC): Likewise.
22578         * config/sparc/sysv4.h (ASM_SPEC): Likewise.
22579         * config/sparc/vxworks.h (ASM_SPEC): Likewise.
22580         * config/c6x/elf-common.h (ASM_SPEC): Use NO_FPIC2_SPEC,
22581         FPIC2_SPEC, FPIC1_SPEC and FPIC2_SPEC.
22582         * config/c6x/uclinux-elf.h (LINK_SPEC): Use FPIE_SPEC.
22583         * config/frv/frv.h (DRIVER_SELF_SPECS): Use FPIC_SPEC,
22584         NO_FPIC_SPEC and NO_FPIE1_AND_FPIC1_SPEC.
22585         (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and FPIE2_OR_FPIC2_SPEC.
22586         * config/m68k/m68k.h (ASM_PCREL_SPEC): Use FPIC_SPEC and NO_FPIC_SPEC.
22587         * config/mips/gnu-user.h (NO_SHARED_SPECS): Use NO_FPIE_AND_FPIC_SPEC.
22588         * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Use FPIC_SPEC.
22589         * config/rs6000/freebsd64.h (ASM_SPEC32): Likewise.
22590         * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
22591         * config/vax/linux.h (ASM_SPEC): Likewise.
22592         * doc/install.texi: Document --enable-default-pie.
22593         * doc/invoke.texi: Document -no-pie.
22594         * config.in: Regenerated.
22595         * configure: Likewise.
22596
22597 2015-05-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
22598
22599         PR rtl-optimization/66168
22600         * loop-invariant.c (move_invariant_reg): Pass dest rather than reg to
22601         can_move_invariant_reg.
22602
22603 2015-05-27  John David Anglin  <danglin@gcc.gnu.org>
22604
22605         PR target/66148
22606         * config/pa/pa.c (pa_emit_move_sequence): Correct placement of
22607         REG_EQUAL note when doing insert.
22608
22609         * config/pa/pa.c (pa_print_operand): Use HOST_WIDE_INT_PRINT_DEC
22610         instead of "%d" for 'o' operand.
22611
22612 2015-05-27  Nathan Sidwell  <nathan@acm.org>
22613
22614         PR c++/66270
22615         * tree.c (build_pointer_type_for_mode): Canonical type does not
22616         inherit can_alias_all.
22617         (build_reference_type_for_mode): Likewise.
22618
22619 2015-05-27  Eric Botcazou  <ebotcazou@adacore.com>
22620
22621         * expr.h (array_at_struct_end_p): Move to...
22622         (array_ref_element_size): Likewise.
22623         (component_ref_field_offset): Likewise.
22624         * tree.h (array_ref_element_size): ...here.
22625         (array_at_struct_end_p): Likewise.
22626         (component_ref_field_offset): Likewise.
22627         * expr.c (array_ref_element_size): Move to...
22628         (array_ref_low_bound): Likewise.
22629         (array_at_struct_end_p): Likewise.
22630         (array_ref_up_bound): Likewise.
22631         (component_ref_field_offset): Likewise.
22632         * tree.c (array_ref_element_size): ...here.
22633         (array_ref_low_bound): Likewise.
22634         (array_ref_up_bound): Likewise.
22635         (array_at_struct_end_p): Likewise.
22636         (component_ref_field_offset): Likewise.
22637
22638 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
22639             Szabolcs Nagy  <szabolcs.nagy@arm.com>
22640
22641         * config/aarch64/aarch64-linux.h (MUSL_DYNAMIC_LINKER): Define.
22642
22643 2015-05-27  Jason Merrill  <jason@redhat.com>
22644
22645         PR bootstrap/66304
22646         * configure.ac: Use ACX_PROG_CXX_WARNING_OPTS,
22647         ACX_PROG_CXX_WARNING_ALMOST_PEDANTIC, and
22648         ACX_PROG_CXX_WARNINGS_ARE_ERRORS.
22649
22650 2015-05-22  Aditya Kumar  <hiraditya@msn.com>
22651
22652         * auto-profile.c (afdo_calculate_branch_prob): Break once has_sample
22653         is true.
22654
22655         * statistics.c (statistics_fini_pass): Print pass name.
22656
22657 2015-05-27  Richard Biener  <rguenther@suse.de>
22658
22659         PR tree-optimization/66272
22660         Revert parts of
22661         2014-08-15  Richard Biener  <rguenther@suse.de>
22662
22663         PR tree-optimization/62031
22664         * tree-data-ref.c (dr_analyze_indices): Do not set
22665         DR_UNCONSTRAINED_BASE.
22666         (dr_may_alias_p): All indirect accesses have to go the
22667         formerly DR_UNCONSTRAINED_BASE path.
22668         * tree-data-ref.h (struct indices): Remove
22669         unconstrained_base member.
22670         (DR_UNCONSTRAINED_BASE): Remove.
22671
22672 2015-05-27  Aldy Hernandez  <aldyh@redhat.com>
22673
22674         * dwarf2out.c: Remove block_map.
22675         (gen_call_site_die): Replace block_map use with BLOCK_DIE.
22676         (gen_lexical_block_die): Same.
22677         (dwarf2out_function_decl): Remove block_map use.
22678         (dwarf2out_c_finalize): Same.
22679         * tree-core.h (struct tree_block): Add die field.
22680         * tree.h (BLOCK_DIE): New.
22681
22682 2015-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22683
22684         PR target/65358
22685         * expr.c (memory_load_overlap): New function.
22686         (emit_push_insn): When pushing partial args to the stack would
22687         clobber the register part load the overlapping part into a pseudo
22688         and put it into the hard reg after pushing.  Change return type
22689         to bool.  Add bool argument.
22690         * expr.h (emit_push_insn): Change return type to bool.
22691         Add bool argument.
22692         * calls.c (expand_call): Cancel sibcall optimization when encountering
22693         partial argument on targets with ARGS_GROW_DOWNWARD and
22694         !STACK_GROWS_DOWNWARD.
22695         (emit_library_call_value_1): Update callsite of emit_push_insn.
22696         (store_one_arg): Likewise.
22697
22698 2015-05-27  Gregor Richards  <gregor.richards@uwaterloo.ca>
22699
22700         * config/arm/linux-eabi.h (MUSL_DYNAMIC_LINKER): Define.
22701
22702 2015-05-27  Martin Liska  <mliska@suse.cz>
22703
22704         * Makefile.in: Add additional dependencies related to memory report
22705         enhancement.
22706         * alloc-pool.c (allocate_pool_descriptor): Use new ctor.
22707         * bitmap.c (struct bitmap_descriptor_d): Remove.
22708         (struct loc): Likewise.
22709         (struct bitmap_desc_hasher): Likewise.
22710         (bitmap_desc_hasher::hash): Likewise.
22711         (bitmap_desc_hasher::equal): Likewise.
22712         (get_bitmap_descriptor): Likewise.
22713         (bitmap_register): User new memory descriptor API.
22714         (register_overhead): Likewise.
22715         (bitmap_find_bit): Register nsearches and search_iter statistics.
22716         (struct bitmap_output_info): Remove.
22717         (print_statistics): Likewise.
22718         (dump_bitmap_statistics): Use new memory descriptor.
22719         * bitmap.h (struct bitmap_usage): New class.
22720         * genmatch.c: Extend header file inclusion.
22721         * genpreds.c: Likewise.
22722         * ggc-common.c (struct ggc_usage): New class.
22723         (struct ggc_loc_desc_hasher): Remove.
22724         (ggc_loc_desc_hasher::hash): Likewise.
22725         (ggc_loc_desc_hasher::equal): Likewise.
22726         (struct ggc_ptr_hash_entry): Likewise.
22727         (struct ptr_hash_hasher): Likewise.
22728         (ptr_hash_hasher::hash): Likewise.
22729         (ptr_hash_hasher::equal): Likewise.
22730         (make_loc_descriptor): Likewise.
22731         (ggc_prune_ptr): Likewise.
22732         (dump_ggc_loc_statistics): Use new memory descriptor.
22733         (ggc_record_overhead): Likewise.
22734         (ggc_free_overhead): Likewise.
22735         (final_cmp_statistic): Remove.
22736         (cmp_statistic): Likewise.
22737         (ggc_add_statistics): Liekwise.
22738         (ggc_prune_overhead_list): Likewise.
22739         * hash-map-traits.h: New file.
22740         * hash-map.h (struct default_hashmap_traits): Move the traits to a
22741         separate header file.
22742         * hash-set.h: Pass memory statistics info to ctor.
22743         * hash-table.c (void dump_hash_table_loc_statistics): New function.
22744         * hash-table.h (hash_table::hash_table): Add new ctor arguments.
22745         (hash_table::~hash_table): Register memory release operation.
22746         (hash_table::alloc_entries): Handle memory allocation operation.
22747         (hash_table::expand): Likewise.
22748         * inchash.c (iterative_hash_hashval_t): Move implementation to header
22749         file.
22750         (iterative_hash_host_wide_int): Likewise.
22751         * inchash.h (class hash): Likewise.
22752         * mem-stats-traits.h: New file.
22753         * mem-stats.h: New file.
22754         (mem_location): Add new class.
22755         (mem_usage): Likewise.
22756         (mem_alloc_description): Likewise.
22757         * sese.c: Add new header file inclusision.
22758         * toplev.c (dump_memory_report): Add report for hash_table, hash_map
22759         and hash_set.
22760         * tree-sra.c: Add new header file inclusision.
22761         * vec.c (struct vec_descriptor): Remove.
22762         (hash_descriptor): Likewise.
22763         (struct vec_usage): Likewise.
22764         (struct ptr_hash_entry): Likewise.
22765         (hash_ptr): Likewise.
22766         (eq_ptr): Likewise.
22767         (vec_prefix::register_overhead): Use new memory descriptor API.
22768         (vec_prefix::release_overhead): Likewise.
22769         (add_statistics): Remove.
22770         (dump_vec_loc_statistics): Use new memory descriptor API.
22771         * vec.h (struct vec_prefix): Likewise.
22772         (va_heap::reserve): Likewise.
22773         (va_heap::release): Likewise.
22774         * emit-rtl.c (gen_raw_REG): Fix passing MEM_STAT.
22775
22776 2015-05-27  Richard Biener  <rguenther@suse.de>
22777
22778         * tree-vect-stmts.c (vectorizable_load): Initialize slp_perm
22779         earlier and remove ??? comment.
22780         (vect_analyze_stmt): If we are analyzing a pure SLP stmt
22781         and got called from loop analysis bail out.  Always pass the SLP
22782         node to the vectorizable_* functions.
22783         * tree-vect-loop.c (vect_analyze_loop_operations): Remove
22784         the premature SLP check here.
22785         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Dump hybrid
22786         detected SLP stmts.
22787         (vect_detect_hybrid_slp_1): Likewise.
22788
22789 2015-05-26  Jeff Law  <law@redhat.com>
22790
22791         * combine.c (find_split_point): Verify that the shift count is a
22792         constant when choosing (plus (ashift ...)) as a split point.
22793
22794         * tree-ssa-threadupdate.c: Replace 8 space sequences with tabs.
22795         No functional changes.
22796
22797 2015-05-26  Jan Hubicka  <hubicka@ucw.cz>
22798
22799         * ipa-polymorphic-call.c
22800         (ipa_polymorphic_call_context::get_dynamic_type): Short circuit the
22801         case when call target is already known.
22802
22803 2015-05-26  Oleg Endo  <olegendo@gcc.gnu.org>
22804
22805         PR target/65979
22806         * config/sh/sh.md (tstsi_t peephole2): Use gen_rtx_SET and
22807         take into account the case that operands[1] and operands[2]
22808         are the same register.
22809
22810 2015-05-26  Michael Matz  <matz@suse.de>
22811
22812         PR middle-end/66251
22813
22814         * tree-vect-stmts.c (vect_model_store_cost): Handled strided group
22815         stores.
22816         (vect_create_vectorized_demotion_stmts): Always set
22817         STMT_VINFO_VEC_STMT, also with SLP.
22818         (vectorizable_store): Handle strided group stores.
22819
22820 2015-05-26  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
22821
22822         PR target/66049
22823         * config/aarch64/aarch64.md
22824         (*adds_shift_imm_<mode>):  New pattern.
22825         (*subs_shift_imm_<mode>):  Likewise.
22826         (*adds_<optab><ALLX:mode>_shift_<GPI:mode>):  Likewise.
22827         (*subs_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
22828         (*add_uxt<mode>_shift2): Likewise.
22829         (*add_uxtsi_shift2_uxtw): Likewise.
22830         (*sub_uxt<mode>_shift2): Likewise.
22831         (*sub_uxtsi_shift2_uxtw): Likewise.
22832
22833 2015-05-26  David Edelsohn  <dje.gcc@gmail.com>
22834
22835         * config/rs6000/constraints.md (Y, U): Use match_test.
22836
22837 2015-05-26  Christian Bruel  <christian.bruel@st.com>
22838
22839         PR target/52144
22840         * config/arm/arm.c (arm_option_check_internal)
22841         (arm_option_params_internal): Check opts->target_flags to set macros.
22842         (TREE_TARGET_ARM, TREE_TARGET_THUMB)
22843         (TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Replace with...
22844         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
22845         (builtin_define): Replaced with def_or_undef_macro.
22846         * config/arm/arm.h (TREE_TARGET_ARM, TREE_TARGET_THUMB)
22847         TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Redefine with...
22848         (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
22849         (TARGET_32BIT_P, TARGET_ARM_QBIT_P, TARGET_ARM_SAT_P, TARGET_IDIV_P)
22850         (TARGET_HAVE_LDREX_P, TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P)
22851         (TARGET_ARM_FEATURE_LDREX_P)
22852         (TARGET_DSP_MULTIPLY_P, TARGET_INT_SIMD_P): New macros.
22853         * config/arm/arm-c.c (def_or_undef_macro): New function.
22854         (arm_cpu_cpp_builtins): Use def_or_undef_macro for macros definition.
22855
22856 2015-05-26  Christian Bruel  <christian.bruel@st.com>
22857
22858         * c-common.h (builtin_define_with_int_value)
22859         (builtin_define_type_sizeof): Declare.
22860         * c-cppbuiltin.c (builtin_define_with_int_value)
22861         (builtin_define_type_sizeof): Externalize.
22862         (builtin_define_std): Cleanup declaration.
22863         * config/arm/arm-protos.h (arm_cpu_cpp_builtins): Declare.
22864         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Move macro defines into...
22865         * config/arm/arm-c.c (arm_cpu_cpp_builtins): New function.
22866         (builtin_define, builtin_assert): New macros.
22867
22868 2015-05-26  Richard Biener  <rguenther@suse.de>
22869
22870         PR tree-optimization/66142
22871         * tree-ssa-sccvn.c (vn_reference_lookup_3): Manually compare
22872         MEM_REFs for the same base address.
22873
22874 2015-05-26  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
22875
22876         PR ipa/66181
22877         * tree.c (verify_type_variant): Do not check TYPE_NO_FORCE_BLK.
22878
22879 2015-05-26  Jason Merrill  <jason@redhat.com>
22880
22881         * configure.ac: Set CXXFLAGS for ISL test.
22882         * configure: Regenerate.
22883
22884         * configure.ac: Use C++ for all tests.  Use AC_CHECK_DECLS for
22885         strstr and basename.
22886         * configure: Regenerate.
22887
22888 2015-05-26  Richard Biener  <rguenther@suse.de>
22889
22890         * fold-const.c (fold_binary_loc): Move X % -Y -> X % Y and
22891         X % C -> X & (C - 1) for C being a power-of two to ...
22892         * match.pd: ... patterns.
22893
22894 2015-05-26  Marc Glisse  <marc.glisse@inria.fr>
22895
22896         * match.pd (swapped_tcc_comparison): New operator list.
22897         (-A CMP -B): New simplification.
22898         * fold-const.c (fold_comparison): Remove corresponding code.
22899
22900 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
22901
22902         * caller-save.c (init_caller_save): Base temporary register numbers
22903         on LAST_VIRTUAL_REGISTER + 1 rather than FIRST_PSEUDO_REGISTER.
22904         * cfgloopanal.c (init_set_costs): Likewise.
22905         * dojump.c (prefer_and_bit_test): Likewise.
22906         * expr.c (init_expr_target): Likewise.
22907         * ira.c (setup_prohibited_mode_move_regs): Likewise.
22908         * lower-subreg.c (init_lower_subreg): Likewise.
22909         * postreload.c (reload_cse_regs_1): Likewise.
22910
22911 2015-05-26  Richard Sandiford  <richard.sandiford@arm.com>
22912
22913         * gensupport.h (compute_test_codes): Declare.
22914         * gensupport.c (compute_predicate_codes): Rename to...
22915         (compute_test_codes): ...this.  Generalize error message.
22916         (process_define_predicate): Update accordingly.
22917         * genpreds.c (compute_maybe_allows): Delete.
22918         (add_constraint): Use compute_test_codes to determine whether
22919         something can accept a SUBREG, REG or MEM.
22920
22921 2015-05-26  Torvald Riegel  <triegel@redhat.com>
22922
22923         * doc/extend.texi (__atomic Builtins): Use 'memory order' instead of
22924         'memory model' to align with C++11; fix description of memory orders;
22925         fix a few typos.
22926
22927 2015-05-26  Richard Biener  <rguenther@suse.de>
22928
22929         * tree-vect-loop.c (vect_update_vf_for_slp): Split out from ...
22930         (vect_analyze_loop_operations): ... here.  Remove slp parameter,
22931         detect whether we apply SLP.  Remove call to
22932         vect_update_slp_costs_according_to_vf.
22933         (vect_analyze_loop_2): Call vect_update_vf_for_slp and
22934         vect_update_slp_costs_according_to_vf from here.  Dispatch
22935         to vect_slp_analyze_operations to analyze SLP stmts.
22936         * tree-vect-slp.c (vect_slp_analyze_node_operations): Drop
22937         unused bb_vec_info parameter, adjust assert.
22938         (vect_slp_analyze_operations): Pass in the slp instance tree
22939         instead of bb_vec_info.
22940         (vect_slp_analyze_bb_1): Adjust call to vect_slp_analyze_operations.
22941         * tree-vectorizer.h (vect_slp_analyze_operations): Declare.
22942
22943 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
22944
22945         * config/i386/i386.h (enum reg_class): Move CLOBBERED_REGS prior to
22946         Q_REGS.  Expand comment.
22947         (REG_CLASS_NAMES): Ditto.
22948         (REG_CLASS_CONTENTS): Ditto.
22949
22950 2015-05-25  Uros Bizjak  <ubizjak@gmail.com>
22951
22952         PR target/66274
22953         * config/i386/i386.c (print_reg): Only print "r" for TARGET_64BIT
22954         when LEGACY_INT_REGNO_P is processed.
22955
22956 2015-05-25  Alexander Monakov  <amonakov@ispras.ru>
22957
22958         * config/i386/i386.c (ix86_function_ok_for_sibcall): Check flag_plt.
22959
22960 2015-05-25  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
22961
22962         * config/avr/avr.c (avr_out_load_psi_reg_no_disp_tiny): Restore base
22963         register if not marked dead/unused, before return.
22964
22965 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
22966
22967         PR lto/66180
22968         * ipa-devirt.c (type_with_linkage): Check that TYPE_STUB_DECL
22969         is set; check for assembler name at LTO time.
22970         (type_in_anonymous_namespace): Remove hacks, check that all
22971         anonymous types are called "<anon>"
22972         (odr_type_p): Simplify; add check for "<anon>"
22973         (odr_subtypes_equivalent): Add odr_type_p check.
22974         * tree.c (need_assembler_name_p): Even anonymous namespace needs
22975         assembler name.
22976
22977 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
22978
22979         * ipa-utils.h (method_class_type): Remove.
22980         * cgraphunit.c (walk_polymorphic_call_targets): Use
22981         TYPE_METHOD_BASETYPE.
22982         * ipa-devirt.c (type_in_anonymous_namespace_p): Check that it is called
22983         on main variants only.
22984         (method_class_type): Remove.
22985         (update_type_inheritance_graph): Use TYPE_METHOD_BASETYPE.
22986         (build_type_inheritance_graph): Likewise.
22987         * ipa-icf.c (sem_function::equals_wpa): Likewise.
22988         * pa-polymorphic-call.c (decl_maybe_in_construction_p,
22989         check_stmt_for_type_change): Use TYPE_METHOD_BASETYPE.
22990
22991 2015-05-24  Jan Hubicka  <hubicka@ucw.cz>
22992
22993         * tree.c (prototype_p, virtual_method_call_p, obj_type_ref_class,
22994         is_typedef_decl, typedef_variant_p): Constify.
22995         * tree.h (prototype_p, virtual_method_call_p, obj_type_ref_class,
22996         is_typedef_decl, typedef_variant_p): Constify.
22997
22998 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22999
23000         * defaults.h (gen_tablejump): New function.
23001         (HAVE_tablejump): Add default value.
23002         * expr.c: Adjust.
23003         * stmt.c: Likewise.
23004
23005 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23006
23007         * defaults.h (gen_store_multiple): New function.
23008         (HAVE_store_multiple): Add default value.
23009         * expr.c (move_block_from_reg): Adjust.
23010
23011 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23012
23013         * defaults.h (gen_load_multiple): New function.
23014         (HAVE_load_multiple): Add default value.
23015         * expr.c (move_block_to_reg): Adjust.
23016
23017 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23018
23019         * defaults.h (gen_mem_signal_fence): New function.
23020         (HAVE_mem_signal_fence): Add default value.
23021         * optabs.c: Adjust.
23022
23023 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23024
23025         * defaults.h (gen_memory_barrier): New function.
23026         (HAVE_memory_barrier): Add default value.
23027         * optabs.c: Adjust.
23028
23029 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23030
23031         * defaults.h (gen_mem_thread_fence): New function.
23032         (HAVE_mem_thread_fence): Add default definition.
23033         * optabs.c: Adjust.
23034
23035 2015-05-23  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23036
23037         * combine.c (find_split_point): Check the value of HAVE_lo_sum
23038         instead of if it is defined.
23039         (combine_simplify_rtx): Likewise.
23040         * lra-constraints.c (process_address_1): Likewise.
23041         * config/darwin.c: Adjust.
23042         * genconfig.c (main): Always define HAVE_lo_sum.
23043
23044 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
23045
23046         * genmatch.c (parser::parse_operation): Reject expanding
23047         operator-list inside 'for'.
23048
23049 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
23050
23051         * genmatch.c (parser::parse_for): Reject iterator if used as
23052         operator-list.
23053
23054 2015-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
23055
23056         * genmatch.c (parser::parse_operator_list): Check for CPP_CLOSE_PAREN
23057         after end of id-list.
23058
23059 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
23060
23061         * tree.c (gimple_canonical_types_compatible_p): Sanity check that
23062         we do not try to compute canonical type for type that does not need
23063         alias set.
23064         (verify_type): Drop FIXME for METHOD_TYPE, update FIXME for
23065         FUNCITON_TYPE.
23066         * tree.h (type_with_alias_set_p): New.
23067
23068 2015-05-22  Jan Hubicka  <hubicka@ucw.cz>
23069
23070         * tree.c (gimple_canonical_types_compatible_p):  Do not compare
23071         function attributes.
23072         (verify_type): Remove METHOD_TYPE FIXME; update FUNCTION_TYPE.
23073
23074 2015-05-22  Jim Wilson  <jim.wilson@linaro.org>
23075
23076         * Makefile.in (check_gcc_parallelize): Delete.
23077         (lang_checks_parallelized): Update comment.
23078
23079 2015-05-22  Mikhail Maltsev  <maltsevm@gmail.com>
23080
23081         PR rtl-optimization/66237
23082         * bb-reorder.c (fix_crossing_conditional_branches): Fix wrong
23083         location of an "as_a" cast.
23084
23085 2015-05-22  Jeff Law  <law@redhat.com>
23086
23087         * config/pa/pa.md (non-canonical shift-add insns): Remove.
23088         (peepholes with non-canonical RTL sources): Remove.
23089         (peepholes for indexed stores of FP regs in integer modes): Match and
23090         generate canonical RTL.
23091
23092 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
23093
23094         PR tree-optimization/63387
23095         * match.pd ((X /[ex] A) * A -> X): Remove unnecessary condition.
23096         ((x ord x) & (y ord y) -> (x ord y),
23097         (x ord x) & (x ord y) -> (x ord y)): New simplifications.
23098         * fold-const.c (tree_unary_nonnegative_warnv_p) <ABS_EXPR>: Handle
23099         vectors like scalars.
23100
23101 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
23102
23103         * convert.c (convert_to_integer, convert_to_vector): Include the
23104         types in the error message.
23105
23106 2015-05-22  Marc Glisse  <marc.glisse@inria.fr>
23107
23108         * match.pd ((x | y) & ~x -> y & ~x, (x & y) | ~x -> y | ~x): New
23109         simplifications.
23110
23111 2015-05-22  Jeff Law  <law@redhat.com>
23112
23113         * config/pa/pa.md (integer_indexed_store splitters): Use
23114         mem_shadd_operand.  Use ASHIFT rather than MULT in the resulting
23115         insns -- adjusting the constant 2nd operand accordingly.
23116
23117         * combine.c (try_combine): Canonicalize (plus (mult X pow2) Y) into
23118         (plus (ashift X log2) Y) if it is a split point.
23119
23120         * config/pa/pa.c (mem_shadd_or_shadd_rtx_p): New function factoredx
23121         out of hppa_legitimize_address to handle both forms of a multiply
23122         by 2, 4 or 8.
23123         (hppa_legitimize_address): Use mem_shadd_or_shadd_rtx_p.
23124         Always generate the ASHIFT variant as the result is not directly
23125         used in a MEM.  Update comments and refactor slightly to improve
23126         readability.
23127
23128 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23129
23130         PR target/65491
23131         * config/aarch64/aarch64.c (aarch64_short_vector_p): Move above
23132         aarch64_composite_type_p.  Remove check for aarch64_composite_type_p.
23133         (aarch64_composite_type_p): Return false if given type and mode are
23134         for a short vector.
23135
23136 2015-05-22  Richard Biener  <rguenther@suse.de>
23137
23138         * tree-vectorizer.h (struct _slp_oprnd_info): Add second_pattern
23139         member.
23140         * tree-vect-loop.c (vect_analyze_loop_operations): Look at
23141         patterns when determining whether SLP is pure.
23142         (vect_is_slp_reduction): Remove check for pattern stmts.
23143         (vect_is_simple_reduction_1): Remove dead code.
23144         * tree-vect-slp.c (vect_create_oprnd_info): Initialize second_pattern.
23145         (vect_get_and_check_slp_defs): Pass in the stmt number.
23146         Allow the first def in a reduction to be not a pattern stmt when
23147         the rest of the stmts def are patterns.
23148         (vect_build_slp_tree_1): Allow tcc_expression codes like
23149         SAD_EXPR and DOT_PROD_EXPR.
23150         (vect_build_slp_tree): Adjust.
23151         (vect_analyze_slp): Refactor and move BB vect error message ...
23152         (vect_slp_analyze_bb_1): ... here.
23153
23154 2015-05-22  Aldy Hernandez  <aldyh@redhat.com>
23155
23156         * tree-switch-conversion.c (build_one_array): Set DECL_IGNORED_P
23157         for CSWTCH temporary.
23158
23159 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23160
23161         * config/arm/arm.c (arm_new_rtx_costs): Handle UNSPEC_VOLATILE.
23162         (arm_unspec_cost): Allow UNSPEC_VOLATILE.  Do not recurse inside
23163         unknown unspecs.
23164
23165 2015-05-22  Richard Biener  <rguenther@suse.de>
23166
23167         PR tree-optimization/66251
23168         * tree-vect-stmts.c (vectorizable_conversion): Properly
23169         set STMT_VINFO_VEC_STMT even for the SLP case.
23170
23171 2015-05-22  Marek Polacek  <polacek@redhat.com>
23172
23173         * doc/extend.texi: Use @pxref instead of @xref.
23174
23175 2015-05-22  hiraditya  <hiraditya@msn.com>
23176
23177         * gimple.h (gimple_expr_type): Refactor to make it concise. Remove
23178         redundant if.
23179
23180 2015-05-22  Richard Biener  <rguenther@suse.de>
23181
23182         PR tree-optimization/65701
23183         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
23184         Move peeling cost models into one place.  Peel for alignment
23185         for single loads only if an aligned load is cheaper than
23186         an unaligned load.
23187
23188 2015-05-22  Marek Polacek  <polacek@redhat.com>
23189
23190         PR c/47043
23191         * doc/extend.texi (Enumerator Attributes): New section.
23192         Document syntax of enumerator attributes.
23193
23194 2015-05-22  Richard Biener  <rguenther@suse.de>
23195
23196         * tree-vect-loop.c (get_reduction_op): New function.
23197         (vect_model_reduction_cost): Use it, add reduc_index parameter.
23198         Make ready for BB reductions.
23199         (vect_create_epilog_for_reduction): Use get_reduction_op.
23200         (vectorizable_reduction): Init reduc_index to a valid value.
23201         Adjust vect_model_reduction_cost call.
23202         * tree-vect-slp.c (vect_get_constant_vectors): Use the proper
23203         operand for reduction defaults.  Add SAD_EXPR support.
23204         Assert we have a neutral op for SLP reductions.
23205         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): When
23206         walking pattern stmt ops only recurse to SSA names.
23207
23208 2015-05-22  Richard Biener  <rguenther@suse.de>
23209
23210         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Replace
23211         assert with guard, remove check on detected reduction.
23212         (vect_recog_sad_pattern): Likewise.
23213         (vect_recog_widen_sum_pattern): Likewise.
23214
23215 2015-05-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23216
23217         * config/aarch64/arm_neon.h (vaeseq_u8): Add __extension__ and
23218         __always_inline__ attribute.
23219         (vaesdq_u8): Likewise.
23220         (vaesmcq_u8): Likewise.
23221         (vaesimcq_u8): Likewise.
23222         (vsha1cq_u32): Likewise.
23223         (vsha1mq_u32): Likewise.
23224         (vsha1pq_u32): Likewise.
23225         (vsha1h_u32): Likewise.
23226         (vsha1su0q_u32): Likewise.
23227         (vsha1su1q_u32): Likewise.
23228         (vsha256hq_u32): Likewise.
23229         (vsha256h2q_u32): Likewise.
23230         (vsha256su0q_u32): Likewise.
23231         (vsha256su1q_u32): Likewise.
23232         (vmull_p64): Likewise.
23233         (vmull_high_p64): Likewise.
23234
23235 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23236
23237         * final.c (final_scan_insn): Don't check HAVE_peephole with the
23238         preprocessor.
23239         * output.h: Likewise.
23240         * genconfig.c (main): Alwways define HAVE_peephole.
23241         * genpeep.c: Don't emit checks of HAVE_peephole.
23242
23243 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23244
23245         * combine.c, expmed.c, expr.c, optabs.c optabs.h, toplev.c: DOn't
23246         check HAVE_conditional_move with the preprocessor.
23247
23248 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23249
23250         * genconfig.c (main): Always define HAVE_conditional_move.
23251         * combine.c, expmed.c, expr.c, ifcvt.c, optabs.c, optabs.h,
23252         toplev.c, tree-ssa-phiopt.c: Don't check if HAVE_conditional_move
23253         is defined.
23254
23255 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23256
23257         * combine.c, df-problems.c, df-scan.c, emit-rtl.c, reginfo.c,
23258         reload.c, rtlanal.c: Remove comparison of ARG_FRAME_POINTER_REGNUM
23259         and FRAME_POINTER_REGNUM with the preprocessor.
23260
23261 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23262
23263         * defaults.h: Add default for STACK_PUSH_CODE.
23264         * expr.c: Don't redefine STACK_PUSH_CODE.
23265         * recog.c: Likewise.
23266
23267 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23268
23269         * builtins.c, dwarf2cfi.c, explow.c, expr.c, recog.c,
23270         sched-deps.c: Use if instead of preprocessor checks with
23271         STACK_GROWS_DOWNWARD.
23272
23273 2015-05-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23274
23275         * *.c: Check the value of STACK_GROWS_DOWNWARD rather than if it
23276         is defined.
23277         * config/**/*.h: Define STACK_GROWS_DOWNWARD to an integer.
23278         * defaults.h: Provide default for STACK_GROWS_DOWNWARD.
23279         * doc/tm.texi.in: Update references to STACK_GROWS_DOWNWARD.
23280         * doc/tm.texi: Regenerate.
23281
23282 2015-05-21  H.J. Lu  <hongjiu.lu@intel.com>
23283
23284         PR target/66232
23285         * config/i386/constraints.md (Bg): New constraint for GOT memory
23286         operand.
23287         * config/i386/i386.md (*call_got_x32): New pattern.
23288         (*call_value_got_x32): Likewise.
23289         * config/i386/predicates.md (GOT_memory_operand): New predicate.
23290
23291 2015-05-21  Jakub Jelinek  <jakub@redhat.com>
23292
23293         PR tree-optimization/66233
23294         * match.pd (ocvt (icvt@1 @0)): Don't handle vector types.
23295         Simplify.
23296
23297 2015-05-21  Jeff Law  <law@redhat.com>
23298
23299         * config/pa/pa.md (add-with-constant splitter): Use ASHIFT rather
23300         than MULT for shadd sequences.
23301
23302 2015-05-08  Jan Hubicka  <hubicka@ucw.cz>
23303
23304         * alias.c (alias_stats): New static var.
23305         (alias_sets_conflict_p, alias_sets_must_conflict_p): Update stats.
23306         (dump_alias_stats_in_alias_c): New function.
23307         * alias.h (dump_alias_stats_in_alias_c): Declare.
23308         * tree-ssa-alias.c (dump_alias_stats): Call it.
23309
23310 2015-05-08  Michael Matz  <matz@suse.de>
23311
23312         * tree-vectorizer.h (struct _stmt_vec_info): Rename stride_load_p
23313         to strided_p.
23314         (STMT_VINFO_STRIDE_LOAD_P): Rename to ...
23315         (STMT_VINFO_STRIDED_P): ... this.
23316         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust.
23317         (vect_verify_datarefs_alignment): Likewise.
23318         (vect_enhance_data_refs_alignment): Likewise.
23319         (vect_analyze_data_ref_access): Likewise.
23320         (vect_analyze_data_refs): Accept strided stores.
23321         * tree-vect-stmts.c (vect_model_store_cost): Count strided stores.
23322         (vect_model_load_cost): Adjust for macro rename.
23323         (vectorizable_mask_load_store): Likewise.
23324         (vectorizable_load): Likewise.
23325         (vectorizable_store): Open code strided stores.
23326
23327 2015-05-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23328
23329         * doc/sourcebuild.texi (7.2.3.9 Other hardware attributes):
23330         Document sqrt_insn.
23331
23332 2015-05-21  Richard Biener  <rguenther@suse.de>
23333
23334         PR c++/66211
23335         * match.pd: Guard pattern optimzing (int)(float)int
23336         conversions to apply only on GIMPLE.
23337
23338 2015-05-21  Jeff Law  <law@redhat.com>
23339
23340         * combine.c (find_split_point): Handle ASHIFT like MULT to encourage
23341         multiply-accumulate/shift-add insn generation.
23342
23343 2015-05-21  Oleg Endo  <olegendo@gcc.gnu.org>
23344
23345         PR target/54236
23346         * config/sh/sh.md (*round_int_even): Reject pattern if operands[0] and
23347         operands[1] are the same.
23348
23349 2015-05-21  Ilya Enkovich  <enkovich.gnu@gmail.com>
23350
23351         PR middle-end/66221
23352         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Use
23353         build_distinct_type_copy to copy bounds.
23354
23355 2015-05-21  Thomas Schwinge  <thomas@codesourcery.com>
23356
23357         * genrecog.c (MAX_DEPTH, MIN_NUM_STATEMENTS, MAX_NUM_STATEMENTS):
23358         Change to unsigned int.
23359
23360 2015-05-20  Jeff Law  <law@redhat.com>
23361
23362         * config/pa/pa.c (pa_print_operand): New 'o' output modifier.
23363         (pa_mem_shadd_constant_p): Renamed from pa_shadd_constant_p.
23364         (pa_shadd_constant_p): Allow constants for shadd insns rather
23365         than valid scaling constants for memory addresses.
23366         * config/pa/pa-protos.h (pa_mem_shadd_constant_p): Add prototype.
23367         * config/pa/predicates.md (mem_shadd_operand): New predicate.
23368         * config/pa/pa.md (shift-add insns using MULT): Use mem_shadd_operand.
23369         (shift-add insns using ASHIFT): New patterns.
23370
23371 2015-05-20  Mikhail Maltsev  <maltsevm@gmail.com>
23372
23373         * bb-reorder.c (set_edge_can_fallthru_flag): Use rtx_jump_insn where
23374         feasible.
23375         (fix_up_fall_thru_edges): Likewise.
23376         (fix_crossing_conditional_branches): Likewise. Promote jump targets
23377         from to rtx_insn to rtx_code_label where feasible.
23378         * bt-load.c (move_btr_def): Remove as-a cast of the value returned by
23379         gen_move_insn (returned type changed to rtx_insn).
23380         * builtins.c (expand_errno_check): Fix arguments of
23381         do_compare_rtx_and_jump (now expects rtx_code_label).
23382         (expand_builtin_acc_on_device): Likewise.
23383         * cfgcleanup.c (try_simplify_condjump): Add cast when calling
23384         invert_jump (now exprects rtx_jump_insn).
23385         * cfgexpand.c (label_rtx_for_bb): Promote return type to rtx_code_label.
23386         (construct_init_block): Use rtx_code_label.
23387         * cfgrtl.c (block_label): Promote return type to rtx_code_label.
23388         (try_redirect_by_replacing_jump): Use cast to rtx_jump_insn when
23389         calling redirect_jump.
23390         (patch_jump_insn): Likewise.
23391         (redirect_branch_edge): Likewise.
23392         (force_nonfallthru_and_redirect): Likewise.
23393         (fixup_reorder_chain): Explicitly use rtx_jump_insn instead of rtx_insn
23394         when suitable.
23395         (rtl_lv_add_condition_to_bb): Update call of do_compare_rtx_and_jump.
23396         * cfgrtl.h: Promote return type of block_label to rtx_code_label.
23397         * config/bfin/bfin.c (hwloop_optimize): Fix call of emit_label_before.
23398         * config/i386/i386.c (ix86_emit_cmove): Explicitly use rtx_code_label
23399         to store the value retured by gen_label_rtx.
23400         * config/mips/mips.c (mips16_split_long_branches): Promote rtx_insn to
23401         rtx_jump_insn.
23402         * config/sh/sh.c (gen_far_branch): Likewise. Fix call of invert_jump.
23403         (split_branches): Fix calls of redirect_jump.
23404         * dojump.c (jumpifnot): Promote argument type from rtx to
23405         rtx_code_label.
23406         (jumpifnot_1): Likewise.
23407         (jumpif): Likewise.
23408         (jumpif_1): Likewise.
23409         (do_jump_1): Likewise.
23410         (do_jump): Likewise. Use rtx_code_label when feasible.
23411         (do_jump_by_parts_greater_rtx): Likewise.
23412         (do_jump_by_parts_zero_rtx): Likewise.
23413         (do_jump_by_parts_equality_rtx): Likewise.
23414         (do_compare_rtx_and_jump): Likewise.
23415         * dojump.h: Update function prototypes.
23416         * dse.c (emit_inc_dec_insn_before): Remove case (gen_move_insn now
23417         returns rtx_insn).
23418         * emit-rtl.c (emit_jump_insn_before_noloc): Promote return type to
23419         rtx_jump_insn.
23420         (emit_label_before): Likewise.
23421         (emit_jump_insn_after_noloc): Likewise.
23422         (emit_jump_insn_after_setloc): Likewise.
23423         (emit_jump_insn_after): Likewise
23424         (emit_jump_insn_before_setloc): Likewise.
23425         (emit_jump_insn_before): Likewise.
23426         (emit_label_before): Promote return type to rtx_code_label.
23427         (emit_label): Likewise.
23428         * except.c (sjlj_emit_dispatch_table): Use jump_target_rtx.
23429         * explow.c (emit_stack_save): Use gen_move_insn_uncast instead of
23430         gen_move_insn.
23431         (emit_stack_restore): Likewise.
23432         * expmed.c (emit_store_flag_force): Fix calls of do_compare_rtx_and_jump.
23433         (do_cmp_and_jump): Likewise.
23434         * expr.c (expand_expr_real_2): Likewise. Promote some local variables
23435         from rtx to rtx_code_label.
23436         (gen_move_insn_uncast): New function.
23437         * expr.h: Update return type of gen_move_insn (promote to rtx_insn).
23438         * function.c (convert_jumps_to_returns): Fix call of redirect_jump.
23439         * gcse.c (pre_insert_copy_insn): Use rtx_insn instead of rtx.
23440         * ifcvt.c (dead_or_predicable): Use rtx_jump_insn when calling
23441         invert_jump_1 and redirect_jump_1.
23442         * internal-fn.c (expand_arith_overflow_result_store): Fix call of
23443         do_compare_rtx_and_jump.
23444         (expand_addsub_overflow): Likewise.
23445         (expand_neg_overflow): Likewise.
23446         (expand_mul_overflow): Likewise.
23447         * ira.c (split_live_ranges_for_shrink_wrap): Use rtx_insn for
23448         return value of gen_move_insn.
23449         * jump.c (redirect_jump): Promote argument from rtx to rtx_jump_insn.
23450         * loop-doloop.c (add_test): Use rtx_code_label.
23451         (doloop_modify): Likewise.
23452         (doloop_optimize): Likewise.
23453         * loop-unroll.c (compare_and_jump_seq): Promote rtx to rtx_code_label.
23454         * lra-constraints.c (emit_spill_move): Remove cast of value returned
23455         by gen_move_insn.
23456         (inherit_reload_reg): Add cast when calling dump_insn_slim.
23457         (split_reg): Likewise.
23458         * modulo-sched.c (schedule_reg_moves): Remove cast of value returned by
23459         gen_move_insn.
23460         * optabs.c (expand_binop_directly): Remove casts of values returned by
23461         maybe_gen_insn.
23462         (expand_unop_direct): Likewise.
23463         (expand_abs): Likewise.
23464         (maybe_emit_unop_insn): Likewise.
23465         (maybe_gen_insn): Promote return type to rtx_insn.
23466         * optabs.h: Update prototype of maybe_gen_insn.
23467         * postreload-gcse.c (eliminate_partially_redundant_load): Remove
23468         redundant cast.
23469         * recog.c (struct peep2_insn_data): Promote type of insn field to
23470         rtx_insn.
23471         (peep2_reinit_state): Use NULL instead of NULL_RTX.
23472         (peep2_attempt): Remove casts of insn in peep2_insn_data.
23473         (peep2_fill_buffer): Promote argument from rtx to rtx_insn
23474         * recog.h (struct insn_gen_fn): Promote return types of function
23475         pointers and operator ().from rtx to rtx_insn.
23476         * reorg.c (fill_simple_delay_slots): Promote rtx_insn to rtx_jump_insn.
23477         (fill_eager_delay_slots): Likewise.
23478         (relax_delay_slots): Likewise.
23479         (make_return_insns): Likewise.
23480         (dbr_schedule): Likewise.
23481         (optimize_skips): Likewise.
23482         (reorg_redirect_jump): Likewise.
23483         (fill_slots_from_thread): Likewise.
23484         * reorg.h: Update prototypes.
23485         * resource.c (find_dead_or_set_registers): Use dyn_cast to
23486         rtx_jump_insn instead of check.  Use it's jump_target method.
23487         * rtl.h (rtx_jump_insn::jump_label): Define new method.
23488         (rtx_jump_insn::jump_target): Define new method.
23489         (rtx_jump_insn::set_jump_target): Define new method.
23490         * rtlanal.c (tablejump_p): Promote type of one local variable.
23491         * sched-deps.c (sched_analyze_2): Promote rtx to rtx_insn_list.
23492         (sched_analyze_insn): Likewise.
23493         * sched-vis.c (print_insn_with_notes): Promote rtx to rtx_insn.
23494         (print_insn): Likewise.
23495         * stmt.c (label_rtx): Promote return type to rtx_insn.
23496         (force_label_rtx): Likewise.
23497         (jump_target_rtx): Define new function.
23498         (expand_label): Use it, get rid of one cast.
23499         (expand_naked_return): Promote rtx to rtx_code_label.
23500         (do_jump_if_equal): Fix do_compare_rtx_and_jump call.
23501         (expand_case): Use rtx_code_label instread of rtx where feasible.
23502         (expand_sjlj_dispatch_table): Likewise.
23503         (emit_case_nodes): Likewise.
23504         * stmt.h: Declare jump_target_rtx.  Update prototypes.  Fix comments.
23505         * store-motion.c (insert_store): Make use of new return type of
23506         gen_move_insn and remove a cast.
23507         (replace_store_insn): Likewise.
23508
23509 2015-05-20  Max Filippov  <jcmvbkbc@gmail.com>
23510
23511         * config/xtensa/xtensa.c (init_alignment_context): Replace MULT
23512         by BITS_PER_UNIT with ASHIFT by exact_log2 (BITS_PER_UNIT).
23513
23514 2015-05-20  Jeff Law  <law@redhat.com>
23515
23516         * tree-ssa-threadupdate.c (mark_threaded_blocks): Properly
23517         dispose of the jump thread path when the jump threading
23518         opportunity is cancelled.
23519
23520 2015-05-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>
23521
23522         * diagnostic.c (diagnostic_print_caret_line): Fix off-by-one error
23523         when printing the caret character.
23524
23525 2015-05-20  Marek Polacek  <polacek@redhat.com>
23526
23527         * cfgexpand.c (expand_debug_expr): Use UNARY_CLASS_P.
23528
23529 2015-05-20  Marek Polacek  <polacek@redhat.com>
23530
23531         * expr.c (expand_cond_expr_using_cmove): Use COMPARISON_CLASS_P.
23532         * gimple-expr.c (gimple_cond_get_ops_from_tree): Likewise.
23533         * gimple-fold.c (canonicalize_bool): Likewise.
23534         (same_bool_result_p): Likewise.
23535         * tree-if-conv.c (parse_predicate): Likewise.
23536
23537 2015-05-20  Marek Polacek  <polacek@redhat.com>
23538
23539         * gimple-fold.c (fold_const_aggregate_ref_1): Use DECL_P.
23540         * gimplify.c (gimplify_modify_expr_rhs): Likewise.
23541
23542 2015-05-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23543
23544         * config/aarch64/aarch64.c (aarch64_class_max_nregs):
23545         Use UNITS_PER_VREG and UNITS_PER_WORD instead of their direct
23546         values.
23547
23548 2015-05-20  Robert Suchanek  <robert.suchanek@imgtec.com>
23549
23550         * config/mips/mips.h (micromips_globals): Declare.
23551
23552 2015-05-20  David Malcolm  <dmalcolm@redhat.com>
23553
23554         * timevar.def (TV_INITIALIZE_RTL): New.
23555         * toplev.c (initialize_rtl): Use an auto_timevar to account this
23556         function's time to TV_INITIALIZE_RTL.
23557
23558 2015-05-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
23559
23560         * tree-chkp.c (chkp_maybe_copy_and_register_bounds): Remove useless
23561         gimple_build_nop calls.
23562         (chkp_find_bounds_for_elem): Likewise.
23563         (chkp_get_zero_bounds): Likewise.
23564         (chkp_get_none_bounds): Likewise.
23565         (chkp_get_bounds_by_definition): Likewise.
23566         (chkp_generate_extern_var_bounds): Likewise.
23567         (chkp_get_bounds_for_decl_addr): Likewise.
23568         (chkp_get_bounds_for_string_cst): Likewise.
23569
23570 2015-05-20  Bin Cheng  <bin.cheng@arm.com>
23571
23572         PR tree-optimization/65447
23573         * tree-ssa-loop-ivopts.c (struct iv_use): New fields.
23574         (dump_use, dump_uses): Support to dump sub use.
23575         (record_use): New parameters to support sub use.  Remove call to
23576         dump_use.
23577         (record_sub_use, record_group_use): New functions.
23578         (compute_max_addr_offset, split_all_small_groups): New functions.
23579         (group_address_uses, rewrite_use_address): New functions.
23580         (strip_offset): New declaration.
23581         (find_interesting_uses_address): Call record_group_use.
23582         (add_candidate): New assertion.
23583         (infinite_cost_p): Move definition forward.
23584         (add_costs): Check INFTY cost and return immediately.
23585         (get_computation_cost_at): Clear setup cost and dependent bitmap
23586         for sub uses.
23587         (determine_use_iv_cost_address): Compute cost for sub uses.
23588         (rewrite_use_address_1): Rename from old rewrite_use_address.
23589         (free_loop_data): Free sub uses.
23590         (tree_ssa_iv_optimize_loop): Call group_address_uses.
23591
23592 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
23593             Jim Wilson  <jim.wilson@linaro.org>
23594
23595         * config/arm/aarch-common-protos.h (struct mem_cost_table): Added
23596         new  fields loadv and storev.
23597         * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
23598         Initialize loadv and storev.
23599         * config/arm/aarch-cost-tables.h (generic_extra_costs): Likewise.
23600         (cortexa53_extra_costs): Likewise.
23601         (cortexa57_extra_costs): Likewise.
23602         (xgene1_extra_costs): Likewise.
23603         * config/aarch64/aarch64.c (aarch64_rtx_costs): Update vector
23604         rtx_costs.
23605
23606 2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
23607
23608         * config/arm/arm.c (cortexa9_extra_costs): Initialize loadv and
23609          storev.
23610         (cortexa8_extra_costs): Likewise.
23611         (cortexa5_extra_costs): Likewise.
23612         (cortexa7_extra_costs): Likewise.
23613         (cortexa12_extra_costs): Likewise.
23614         (cortexa15_extra_costs): Likewise.
23615         (v7m_extra_costs): Likewise.
23616
23617 2015-05-20  Jeff Law  <law@redhat.com>
23618
23619         * tree-ssa-threadupdate.c (thread_single_edge): Use delete_jump_thread
23620         instead of open-coded version.  Also delete the jump thread created
23621         within this function.
23622
23623 2015-05-20  Alan Modra  <amodra@gmail.com>
23624
23625         * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Return
23626         stack adjusting insn.  Formatting.
23627         (rs6000_emit_prologue): Track stack adjusting insn, and use of
23628         r12.  If possible, emit first -fsplit-stack arg pointer insn
23629         before stack adjust.  Don't use r12 to save cr if split-stack.
23630
23631 2015-05-20  Alan Modra  <amodra@gmail.com>
23632
23633         * common/config/rs6000/rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK):
23634         Define.
23635         (rs6000_supports_split_stack): New function.
23636         * config/rs6000/rs6000.c (machine_function): Add
23637         split_stack_arg_pointer.
23638         (TARGET_EXTRA_LIVE_ON_ENTRY, TARGET_INTERNAL_ARG_POINTER): Define.
23639         (setup_incoming_varargs): Use crtl->args.internal_arg_pointer
23640         rather than virtual_incoming_args_rtx.
23641         (rs6000_va_start): Likewise.
23642         (split_stack_arg_pointer_used_p): New function.
23643         (rs6000_emit_prologue): Set up arg pointer for -fsplit-stack.
23644         (morestack_ref): New var.
23645         (gen_add3_const, rs6000_expand_split_stack_prologue,
23646         rs6000_internal_arg_pointer, rs6000_live_on_entry,
23647         rs6000_split_stack_space_check): New functions.
23648         (rs6000_elf_file_end): Call file_end_indicate_split_stack.
23649         * config/rs6000/rs6000.md (UNSPEC_STACK_CHECK): Define.
23650         (UNSPECV_SPLIT_STACK_RETURN): Define.
23651         (split_stack_prologue, load_split_stack_limit,
23652         load_split_stack_limit_di, load_split_stack_limit_si,
23653         split_stack_return, split_stack_space_check): New expands and insns.
23654         * config/rs6000/rs6000-protos.h
23655         (rs6000_expand_split_stack_prologue): Declare.
23656         (rs6000_split_stack_space_check): Declare.
23657
23658 2015-05-20  Alan Modra  <amodra@gmail.com>
23659
23660         * config/rs6000/rs6000.c (struct rs6000_stack): Correct comments.
23661         (direct_return): Test vrsave_size rather than vrsave_mask.
23662         (rs6000_emit_prologue): Likewise.  Remove redundant altivec tests.
23663         (rs6000_emit_epilogue): Likewise.
23664
23665 2015-05-20  Alan Modra  <amodra@gmail.com>
23666
23667         * config/rs6000/rs6000.c (rs6000_stack_info): Don't zero offsets
23668         when not saving registers.
23669         (debug_stack_info): Adjust to omit printing unused offsets,
23670         as before.
23671         (rs6000_emit_epilogue): Adjust use_backchain_to_restore_sp
23672         expression.
23673
23674 2015-05-19  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
23675
23676         PR c++/65835
23677         * config/i386/winnt.c (struct wrapped_symbol_hasher): Change
23678         value_type to const char *.
23679
23680 2015-05-19  Sandra Loosemore  <sandra@codesourcery.com>
23681
23682         * config.gcc [powerpc*-*-linux*]: Allow --enable-targets=all
23683         to build a biarch toolchain again.
23684
23685 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
23686
23687         * ipa-devirt.c (type_in_anonymous_namespace_p): Return true
23688         or implicit declarations.
23689         (odr_type_p): Check that TYPE_NAME is TYPE_DECL before looking
23690         into it.
23691         (get_odr_type): Check type has linkage before adding bases.
23692         (register_odr_type): Check that type has linkage before adding it.
23693         (type_known_to_have_no_deriavations_p): Rename to ..
23694         (type_known_to_have_no_derivations_p): This one.
23695         * ipa-utils.h (type_known_to_have_no_deriavations_p): Rename to ..
23696         (type_known_to_have_no_derivations_p): This one.
23697         * ipa-polymorphic-call.c
23698         (ipa_polymorphic_call_context::restrict_to_inner_type): Check that
23699         type has linkage.
23700
23701 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
23702
23703         * stor-layout.c (finalize_type_size): Use AGGREGATE_TYPE_P.
23704         (layout_type): Use RECORD_OR_UNION_TYPE_P.
23705
23706 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23707
23708         * config/s390/s390.c (s390_vector_bool_type_p): New function.
23709         (s390_invalid_binary_op): New function.
23710         (TARGET_INVALID_BINARY_OP): Define macro.
23711
23712 2015-05-19  David Sherwood  <david.sherwood@arm.com>
23713
23714         * loop-invariant.c (create_new_invariant): Don't calculate address cost
23715         if mode is not a scalar integer.
23716         (get_inv_cost): Increase computational cost for unused invariants.
23717
23718 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23719
23720         * config.gcc: Add vecintrin.h to extra_headers.  Add s390-c.o to
23721         c_target_objs and cxx_target_objs.  Add t-s390 to tmake_file.
23722         * config/s390/s390-builtin-types.def: New file.
23723         * config/s390/s390-builtins.def: New file.
23724         * config/s390/s390-builtins.h: New file.
23725         * config/s390/s390-c.c: New file.
23726         * config/s390/s390-modes.def: Add modes CCVEQANY, CCVH,
23727         CCVHANY, CCVHU, CCVHUANY, CCVFHANY, CCVFHEANY.
23728         * config/s390/s390-protos.h (s390_expand_vec_compare_cc)
23729         (s390_cpu_cpp_builtins, s390_register_target_pragmas): Add
23730         prototypes.
23731         * config/s390/s390.c (s390-builtins.h, s390-builtins.def):
23732         Include.
23733         (flags_builtin, flags_overloaded_builtin_var, s390_builtin_types)
23734         (s390_builtin_fn_types, s390_builtin_decls, code_for_builtin): New
23735         variable definitions.
23736         (s390_const_operand_ok): New function.
23737         (s390_expand_builtin): Rewrite.
23738         (s390_init_builtins): New function.
23739         (s390_handle_vectorbool_attribute): New function.
23740         (s390_attribute_table): Add s390_vector_bool attribute.
23741         (s390_match_ccmode_set): Handle new cc modes CCVH, CCVHU.
23742         (s390_branch_condition_mask): Generate masks for new modes.
23743         (s390_expand_vec_compare_cc): New function.
23744         (s390_mangle_type): Add mangling for vector bool types.
23745         (enum s390_builtin): Remove.
23746         (s390_atomic_assign_expand_fenv): Rename constants for sfpc and
23747         efpc builtins.
23748         * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Call
23749         s390_cpu_cpp_builtins.
23750         (REGISTER_TARGET_PRAGMAS): New macro.
23751         * config/s390/s390.md: Define more UNSPEC_VEC_* constants.
23752         (insn_cmp mode attribute): Add new CC modes.
23753         (s390_sfpc, s390_efpc): Rename patterns to sfpc and efpc.
23754         (lcbb): New pattern definition.
23755         * config/s390/s390intrin.h: Include vecintrin.h.
23756         * config/s390/t-s390: New file.
23757         * config/s390/vecintrin.h: New file.
23758         * config/s390/vector.md: Include vx-builtins.md.
23759         * config/s390/vx-builtins.md: New file.S/390 zvector builtin
23760         support.
23761
23762 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23763
23764         * config/s390/s390-modes.def: Add new modes CCVEQ, CCVFH, and
23765         CCVFHE.
23766         * config/s390/s390.c (s390_match_ccmode_set): Handle new modes.
23767         (s390_select_ccmode): Likewise.
23768         (s390_canonicalize_comparison): Swap operands if necessary.
23769         (s390_expand_vec_compare_scalar): Expand DFmode compare using
23770         single element vector instructions.
23771         (s390_emit_compare): Call s390_expand_vec_compare_scalar.
23772         (s390_branch_condition_mask): Generate CC masks for the new modes.
23773         * config/s390/s390.md (v0, vf, vd): New mode attributes.
23774         (VFCMP, asm_fcmp, insn_cmp): New mode iterator and attributes.
23775         (*vec_cmp<insn_cmp>df_cconly, *fixuns_truncdfdi2_z13)
23776         (*fix_trunc<BFP:mode><GPR:mode>2_bfp, *floatunsdidf2_z13)
23777         (*floatuns<GPR:mode><FP:mode>2, *extendsfdf2_z13)
23778         (*extend<DSF:mode><BFP:mode>2): New insn definition.
23779         (fix_trunc<BFP:mode><GPR:mode>2_bfp, loatuns<GPR:mode><FP:mode>2)
23780         (extend<DSF:mode><BFP:mode>2): Turn into expander.
23781         (floatdi<mode>2, truncdfsf2, add<mode>3, sub<mode>3, mul<mode>3)
23782         (div<mode>3, *neg<mode>2, *abs<mode>2, *negabs<mode>2)
23783         (sqrt<mode>2): Add vector instruction.
23784
23785 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23786
23787         * config/s390/constraints.md (j00, jm1, jxx, jyy, v): New
23788         constraints.
23789         * config/s390/predicates.md (const0_operand, constm1_operand)
23790         (constable_operand): Accept vector operands.
23791         * config/s390/s390-modes.def: Add supported vector modes.
23792         * config/s390/s390-protos.h (s390_cannot_change_mode_class)
23793         (s390_function_arg_vector, s390_contiguous_bitmask_vector_p)
23794         (s390_bytemask_vector_p, s390_expand_vec_strlen)
23795         (s390_expand_vec_compare, s390_expand_vcond)
23796         (s390_expand_vec_init): Add prototypes.
23797         * config/s390/s390.c (VEC_ARG_NUM_REG): New macro.
23798         (s390_vector_mode_supported_p): New function.
23799         (s390_contiguous_bitmask_p): Mask out the irrelevant bits.
23800         (s390_contiguous_bitmask_vector_p): New function.
23801         (s390_bytemask_vector_p): New function.
23802         (s390_split_ok_p): Vector regs don't work either.
23803         (regclass_map): Add VEC_REGS.
23804         (s390_legitimate_constant_p): Handle vector constants.
23805         (s390_cannot_force_const_mem): Handle CONST_VECTOR.
23806         (legitimate_reload_vector_constant_p): New function.
23807         (s390_preferred_reload_class): Handle CONST_VECTOR.
23808         (s390_reload_symref_address):  Likewise.
23809         (s390_secondary_reload): Vector memory instructions only support
23810         short displacements.  Rename reload*_nonoffmem* to reload*_la*.
23811         (s390_emit_ccraw_jump): New function.
23812         (s390_expand_vec_strlen): New function.
23813         (s390_expand_vec_compare): New function.
23814         (s390_expand_vcond): New function.
23815         (s390_expand_vec_init): New function.
23816         (s390_dwarf_frame_reg_mode): New function.
23817         (print_operand): Handle addresses with 'O' and 'R' constraints.
23818         (NR_C_MODES, constant_modes): Add vector modes.
23819         (s390_output_pool_entry): Handle vector constants.
23820         (s390_hard_regno_mode_ok): Handle vector registers.
23821         (s390_class_max_nregs): Likewise.
23822         (s390_cannot_change_mode_class): New function.
23823         (s390_invalid_arg_for_unprototyped_fn): New function.
23824         (s390_function_arg_vector): New function.
23825         (s390_function_arg_float): Remove size variable.
23826         (s390_pass_by_reference): Handle vector arguments.
23827         (s390_function_arg_advance): Likewise.
23828         (s390_function_arg): Likewise.
23829         (s390_return_in_memory): Vector values are returned in a VR if
23830         possible.
23831         (s390_function_and_libcall_value): Handle vector arguments.
23832         (s390_gimplify_va_arg): Likewise.
23833         (s390_call_saved_register_used): Consider the arguments named.
23834         (s390_conditional_register_usage): Disable v16-v31 for non-vec
23835         targets.
23836         (s390_preferred_simd_mode): New function.
23837         (s390_support_vector_misalignment): New function.
23838         (s390_vector_alignment): New function.
23839         (TARGET_STRICT_ARGUMENT_NAMING, TARGET_DWARF_FRAME_REG_MODE)
23840         (TARGET_VECTOR_MODE_SUPPORTED_P)
23841         (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN)
23842         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
23843         (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT)
23844         (TARGET_VECTOR_ALIGNMENT): Define target macro.
23845         * config/s390/s390.h (FUNCTION_ARG_PADDING): Define macro.
23846         (FIRST_PSEUDO_REGISTER): Increase value.
23847         (VECTOR_NOFP_REGNO_P, VECTOR_REGNO_P, VECTOR_NOFP_REG_P)
23848         (VECTOR_REG_P): Define macros.
23849         (FIXED_REGISTERS, CALL_USED_REGISTERS)
23850         (CALL_REALLY_USED_REGISTERS, REG_ALLOC_ORDER)
23851         (HARD_REGNO_CALL_PART_CLOBBERED, REG_CLASS_NAMES)
23852         (FUNCTION_ARG_REGNO_P, FUNCTION_VALUE_REGNO_P, REGISTER_NAMES):
23853         Add vector registers.
23854         (CANNOT_CHANGE_MODE_CLASS): Call C function.
23855         (enum reg_class): Add VEC_REGS, ADDR_VEC_REGS, GENERAL_VEC_REGS.
23856         (SECONDARY_MEMORY_NEEDED): Allow SF<->SI mode moves without
23857         memory.
23858         (DBX_REGISTER_NUMBER, FIRST_VEC_ARG_REGNO, LAST_VEC_ARG_REGNO)
23859         (SHORT_DISP_IN_RANGE, VECTOR_STORE_FLAG_VALUE): Define macro.
23860         * config/s390/s390.md (UNSPEC_VEC_*): New constants.
23861         (VR*_REGNUM): New constants.
23862         (ALL): New mode iterator.
23863         (INTALL): Remove mode iterator.
23864         Include vector.md.
23865         (movti): Implement TImode moves for VRs.
23866         Disable TImode splitter for VR targets.
23867         Implement splitting TImode GPR<->VR moves.
23868         (reload*_tomem_z10, reload*_toreg_z10): Replace INTALL with ALL.
23869         (reload<mode>_nonoffmem_in, reload<mode>_nonoffmem_out): Rename to
23870         reload<mode>_la_in, reload<mode>_la_out.
23871         (*movdi_64, *movsi_zarch, *movhi, *movqi, *mov<mode>_64dfp)
23872         (*mov<mode>_64, *mov<mode>_31): Add vector instructions.
23873         (TD/TF mode splitter): Enable for GPRs only (formerly !FP).
23874         (mov<mode> SF SD): Prefer lder, lde for loading.
23875         Add lrl and strl instructions.
23876         Add vector instructions.
23877         (strlen<mode>): Rename old strlen<mode> to strlen_srst<mode>.
23878         Call s390_expand_vec_strlen on z13.
23879         (*cc_to_int): Change predicate to nonimmediate_operand.
23880         (addti3): Rename to *addti3.  New expander.
23881         (subti3): Rename to *subti3.  New expander.
23882         * config/s390/vector.md: New file.
23883
23884 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23885
23886         * common/config/s390/s390-common.c (processor_flags_table): Add
23887         z13.
23888         * config.gcc: Add z13.
23889         * config/s390/s390-opts.h (enum processor_type): Add
23890         PROCESSOR_2964_Z13.
23891         * config/s390/s390.c (s390_adjust_priority): Check for
23892         PROCESSOR_2964_Z13.
23893         (s390_reorg): Likewise.
23894         (s390_sched_reorder): Likewise.
23895         (s390_sched_variable_issue): Likewise.
23896         (s390_loop_unroll_adjust): Likewise.
23897         (s390_option_override): Likewise. Default to -mvx when available.
23898         * config/s390/s390.h (enum processor_flags): Add PF_Z13 and PF_VX.
23899         (TARGET_CPU_Z13, TARGET_CPU_VX, TARGET_Z13, TARGET_VX)
23900         (TARGET_VX_ABI): Define macros.
23901         macros.
23902         (TARGET_DEFAULT): Add MASK_OPT_VX.
23903         * config/s390/s390.md ("cpu" attribute): Add z13.
23904         ("cpu_facility" attribute): Add vec.
23905         * config/s390/s390.opt (processor_type): Add z13.
23906         (mvx): New options.
23907         * doc/invoke.texi: Add z13 option for -march.
23908
23909 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23910
23911         * config/s390/predicates.md (shift_count_or_setmem_operand): Add
23912         mode check to make sure that only scalar integer values are
23913         accepted.
23914
23915 2015-05-19  Jan Hubicka  <hubicka@ucw.cz>
23916
23917         * tree.c (verify_type_variant): Fix #undef.
23918         (gimple_canonical_types_compatible_p): Move here from lto.c
23919         (verify_type): Verify TYPE_CANONICAL compatibility.
23920         * tree.h (gimple_canonical_types_compatible_p): Declare.
23921
23922 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
23923
23924         PR middle-end/66199
23925         * tree.h (OMP_TEAMS_COMBINED): Define.
23926         * gimplify.c (enum gimplify_omp_var_data): Add
23927         GOVD_LINEAR_LASTPRIVATE_NO_OUTER.
23928         (enum omp_region_type): Add ORT_COMBINED_TEAMS.
23929         (omp_notice_variable): Accept both ORT_TEAMS
23930         and ORT_COMBINED_TEAMS.  Don't recurse if
23931         GOVD_LINEAR_LASTPRIVATE_NO_OUTER is set and either
23932         GOVD_LINEAR is set, or GOVD_LASTPRIVATE without
23933         GOVD_FIRSTPRIVATE.
23934         (omp_no_lastprivate): New function.
23935         (gimplify_scan_omp_clauses): For OMP_CLAUSE_LASTPRIVATE
23936         and OMP_CLAUSE_LINEAR, if omp_no_lastprivate, don't
23937         notice_outer and set appropriate bits, otherwise make
23938         sure default(none) combined constructs won't complain.
23939         (gimplify_adjust_omp_clauses): Remove OMP_CLAUSE_LINEAR
23940         outer special casing, for OMP_CLAUSE_LASTPRIVATE if
23941         omp_no_lastprivate either remove the clause or turn it
23942         into OMP_CLAUSE_PRIVATE.
23943         (gimplify_omp_for): Fix up handling of implicit
23944         lastprivate or linear iterators.
23945         (gimplify_omp_workshare): For OMP_TEAMS_COMBINED use
23946         ORT_COMBINED_TEAMS.
23947         * omp-low.c (lower_omp_for_lastprivate): For combined
23948         for simd use fd.loop.n2 from the for rather than simd.
23949
23950 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
23951
23952         * config/cris/cris.c (cris_expand_prologue): Use gen_raw_REG
23953         instead of gen_rtx_raw_REG.
23954         (cris_expand_epilogue): Likewise.
23955         * config/microblaze/microblaze.c (microblaze_classify_address):
23956         Likewise.
23957         * config/sparc/sparc.md: Likewise.
23958
23959 2015-05-19  Uros Bizjak  <ubizjak@gmail.com>
23960
23961         * config/alpha/alpha.c (alpha_legitimize_reload_address)
23962         (alpha_preferred_reload_class, alpha_legitimate_constant_p): Use
23963         CONST_INT_P, CONST_SCALAR_INT_P and CONST_DOUBLE_P predicates.
23964         (alpha_split_reload_pair) <case CONST_INT, case CONST_WIDE_INT>:
23965         Use CASE_CONST_SCALAR_INT.
23966         (print_operand) <case 'M'>: Use mode_width_operand to check the
23967         value of the constant.
23968         * config/alpha/alpha.md (movti): Use CONST_SCALAR_INT_P predicate.
23969         * config/alpha/predicates.md (input_operand): Use general_operand
23970         instead of match_code as operand check.
23971         (symbolic_operand): Use match_code with subexpression digits.
23972         * config/alpha/constraints.md (Q): Ditto.
23973
23974 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23975
23976         * optabs.c (expand_vec_perm): Don't re-use SEL as target operand.
23977
23978 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23979
23980         * config/s390/s390.c (s390_secondary_reload): Fix check for
23981         load/store relative.
23982
23983 2015-05-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
23984
23985         * recog.h: Increase MAX_RECOG_ALTERNATIVES.  Change type of
23986         alternative_mask to uint64_t.
23987
23988 2015-05-19  Jakub Jelinek  <jakub@redhat.com>
23989
23990         PR tree-optimization/66187
23991         * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
23992         Pass TYPE_SIGN to tree_int_cst_min_precision.  If
23993         !TYPE_OVERFLOW_WRAPS, ensure @4 is non-negative.
23994
23995 2015-05-19  David Malcolm  <dmalcolm@redhat.com>
23996
23997         * diagnostic.c (diagnostic_report_current_module): Strengthen
23998         local "new_map" from const line_map * to
23999         const line_map_ordinary *.
24000         * genmatch.c (error_cb): Likewise for local "map".
24001         (output_line_directive): Likewise for local "map".
24002         * input.c (expand_location_1): Likewise for local "map".
24003         Pass NULL rather than &map to
24004         linemap_unwind_to_first_non_reserved_loc, since the value is never
24005         read from there, and the value written back not read from here.
24006         (is_location_from_builtin_token): Strengthen local "map" from
24007         const line_map * to const line_map_ordinary *.
24008         (dump_location_info): Strengthen locals "map" from
24009         line_map *, one to const line_map_ordinary *, the other
24010         to const line_map_macro *.
24011         * tree-diagnostic.c (loc_map_pair): Strengthen field "map" from
24012         const line_map * to const line_map_macro *.
24013         (maybe_unwind_expanded_macro_loc): Add a call to
24014         linemap_check_macro when writing to the "map" field of the
24015         loc_map_pair.
24016         Introduce local const line_map_ordinary * "ord_map", using it in
24017         place of "map" in the part of the function where we know we have
24018         an ordinary map.  Strengthen local "m" from const line_map * to
24019         const line_map_ordinary *.
24020
24021 2015-05-19  Nick Clifton  <nickc@redhat.com>
24022
24023         PR target/66156
24024         * config/msp430/msp430.md (zero_extendhisi2): Add support for
24025         separate source and destination registers.
24026
24027 2015-05-19  Richard Biener  <rguenther@suse.de>
24028
24029         PR tree-optimization/66165
24030         * tree-vect-slp.c (vect_supported_load_permutation_p): Add guard
24031         for no load permutation.
24032
24033         PR tree-optimization/66185
24034         * tree-vect-slp.c (vect_build_slp_tree): Properly roll back
24035         when building the SLP node from scalars.
24036
24037 2015-05-19  Eric Botcazou  <ebotcazou@adacore.com>
24038             Tristan Gingold  <gingold@adacore.com>
24039
24040         * insn-notes.def (UPDATE_SJLJ_CONTEXT): New note.
24041         * builtins.c (expand_builtin_update_setjmp_buf): Make global.
24042         (expand_stack_restore): Call record_new_stack_level.
24043         (expand_stack_save): Do not call do_pending_stack_adjust.
24044         * builtins.h (expand_builtin_update_setjmp_buf): Declare.
24045         * calls.c (expand_call): Call record_new_stack_level for alloca.
24046         * except.c (sjlj_mark_call_sites): Expand builtin_update_setjmp_buf
24047         wherever a NOTE_INSN_UPDATE_SJLJ_CONTEXT note is present.
24048         (update_sjlj_context): New global function.
24049         * except.h (update_sjlj_context): Declare.
24050         * explow.c (record_new_stack_level): New global function.
24051         (allocate_dynamic_stack_space): Call record_new_stack_level.
24052         * explow.h (record_new_stack_level): Declare.
24053         * final.c (final_scan_insn): Deal with NOTE_INSN_UPDATE_SJLJ_CONTEXT.
24054         * cfgrtl.c (duplicate_insn_chain): Likewise.
24055
24056 2015-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24057
24058         * calls.c: Always define STACK_GROWS_DOWNWARD as 0 or 1.
24059         (mem_overlaps_already_clobbered_arg_p): Rewrite ifdef
24060         STACK_GROWS_DOWNWARD as normal if.
24061         (expand_call): Likewise.
24062
24063 2015-05-19  Oleg Endo  <olegendo@gcc.gnu.org>
24064
24065         PR target/54236
24066         * config/sh/sh.md (*round_int_even): New insn_and_split and
24067         accompanying new unnamed split.
24068
24069 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
24070
24071         * bitmap.c (bitmap_set_range): Handle count==1 specially.
24072         (bitmap_clear_range): Likewise.
24073         * cfgcleanup.c (mark_effect): Use bitmap_clear_range and
24074         bitmap_set_range unconditionally.
24075         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
24076         * df-scan.c (df_mark_reg): Likewise.
24077         * haifa-sched.c (setup_ref_regs): Likewise.
24078         * sched-rgn.c (update_live_1): Likewise.
24079
24080 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
24081
24082         * regs.h (END_HARD_REGNO): Delete.
24083         (END_REGNO): Move to...
24084         * rtl.h: ...here.
24085         * bt-load.c (note_btr_set): Use END_REGNO instead of END_HARD_REGNO.
24086         * caller-save.c (mark_set_regs): Likewise.
24087         * combine.c (move_deaths, distribute_notes): Likewise.
24088         * cse.c (invalidate, invalidate_for_call): Likewise.
24089         * df-scan.c (df_ref_record): Likewise.
24090         * postreload-gcse.c (reg_changed_after_insn_p): Likewise.
24091         (record_last_reg_set_info): Likewise.
24092         * reg-stack.c (convert_regs_exit): Likewise.
24093         * reload.c (reg_overlap_mentioned_for_reload_p): Likewise.
24094         * resource.c (update_live_status): Likewise.
24095         * rtlanal.c (find_reg_fusage, find_regno_fusage): Likewise.
24096
24097 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
24098
24099         * rtl.h (reg_info): Add an nregs field.
24100         (REG_NREGS): Use it.
24101         (SET_REGNO_RAW): Delete.
24102         (set_regno_raw): New function.
24103         * regs.h (END_HARD_REGNO): Make equivalent to END_REGNO.
24104         (END_REGNO): Redefine in terms of REG_NREGS.
24105         * read-rtl.c (read_rtx_code): Call set_regno_raw instead of
24106         SET_REGNO_RAW.
24107         * emit-rtl.c (set_mode_and_regno): Likewise.
24108         * df-scan.c (df_ref_change_reg_with_loc): Use set_mode_and_regno
24109         instead of SET_REGNO_RAW.
24110
24111 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
24112
24113         * rtl.h (PUT_MODE_RAW): New macro.
24114         (PUT_REG_NOTE_KIND): Use it.
24115         (set_mode_and_regno): Declare.
24116         (gen_raw_REG): Change regno to "unsigned int".
24117         (gen_rtx_REG): Change "unsigned" to "unsigned int".
24118         (PUT_MODE): Forward to PUT_MODE_RAW for generators, otherwise
24119         use set_mode_and_regno to change the mode of registers.
24120         * gengenrtl.c (gendef): Use PUT_MODE_RAW.
24121         * emit-rtl.c (set_mode_and_regno): New function.
24122         (gen_raw_REG): Change regno to unsigned int.  Use set_mode_and_regno.
24123         * caller-save.c (reg_save_code): Use set_mode_and_regno.
24124         * expr.c (init_expr_target): Likewise.
24125         * ira.c (setup_prohibited_mode_move_regs): Likewise.
24126         * postreload.c (reload_cse_simplify_operands): Likewise.
24127
24128 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
24129
24130         * caller-save.c (init_caller_save): Use word_mode and
24131         FIRST_PSEUDO_REGISTER when creating temporary rtxes.
24132         * expr.c (init_expr_target): Likewise.
24133         * ira.c (setup_prohibited_mode_move_regs): Likewise.
24134         * postreload.c (reload_cse_regs_1): Likewise.
24135
24136 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
24137
24138         * rtl.def (REG): Change format to "r".
24139         * rtl.h (rtunion): Remove rt_reg.
24140         (reg_info): New structure.
24141         (rtx_def): Add reg field to main union.
24142         (X0REGATTR): Delete.
24143         (REG_CHECK): New macro.
24144         (SET_REGNO_RAW, rhs_regno, REG_ATTRS): Use it.
24145         * rtl.c (rtx_format): Document "r".
24146         (rtx_code_size): Handle REG specially.
24147         * gengenrtl.c (special_format): Return true for formats
24148         that include 'r'.
24149         * gengtype.c (adjust_field_rtx_def): Handle 'r' fields.
24150         Deal with REG_ATTRS after the field loop.
24151         * emit-rtl.c (gen_raw_REG): Call rtx_alloc_stat directly.
24152         * expmed.c (init_expmed): Call gen_raw_REG instead of
24153         gen_rtx_raw_REG.
24154         * expr.c (init_expr_target): Likewise.
24155         * regcprop.c (maybe_mode_change): Likewise.
24156         * varasm.c (make_decl_rtl): Likewise.
24157         * final.c (leaf_renumber_regs_insn): Return early after
24158         handling REGs.
24159         * genemit.c (gen_exp): Handle 'r' fields.
24160         * genpeep.c (match_rtx): Likewise.
24161         * gensupport.c (subst_pattern_match): Likewise.
24162         (get_alternatives_number, collect_insn_data, alter_predicate_for_insn)
24163         (alter_constraints, subst_dup): Likewise.
24164         * read-rtl.c (read_rtx_code): Likewise.
24165         * print-rtl.c (print_rtx): Likewise.
24166         * genrecog.c (find_operand, find_matching_operand): Likewise.
24167         (validate_pattern, match_pattern_2): Likewise.
24168         (parameter::UINT, rtx_test::REGNO_FIELD): New enum values.
24169         (rtx_test::regno_field): New function.
24170         (operator ==, safe_to_hoist_p, transition_parameter_type)
24171         (parameter_type_string, print_parameter_value)
24172         (print_nonbool_test, print_test): Handle new enum values.
24173         * cselib.c (rtx_equal_for_cselib_1): Handle REG specially.
24174         * lra-constraints.c (operands_match_p): Likewise.
24175
24176 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
24177
24178         * df.h (df_ref_change_reg_with_loc): Remove old_regno parameter.
24179         Change type of new_regno to unsigned int.
24180         * df-scan.c (df_ref_change_reg_with_loc_1): Change type of
24181         new_regno to unsigned int.
24182         (df_ref_change_reg_with_loc): Remove old_regno parameter.
24183         Change type of new_regno to unsigned int.  Use SET_REGNO_RAW.
24184         * rtl.h (SET_REGNO): Update call to df_ref_change_reg_with_loc.
24185         (SET_REGNO_RAW): Add space after ",".
24186
24187 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
24188
24189         * rtl.h (REG_NREGS): New macro
24190         * alias.c (record_set): Use it.
24191         * cfgcleanup.c (mark_effect): Likewise.
24192         * combine.c (likely_spilled_retval_1): Likewise.
24193         (likely_spilled_retval_p, can_change_dest_mode): Likewise.
24194         (move_deaths, distribute_notes): Likewise.
24195         * cselib.c (cselib_record_set): Likewise.
24196         * df-problems.c (df_simulate_one_insn_forwards): Likewise.
24197         * df-scan.c (df_mark_reg): Likewise.
24198         * dse.c (look_for_hardregs): Likewise.
24199         * dwarf2out.c (reg_loc_descriptor): Likewise.
24200         (multiple_reg_loc_descriptor): Likewise.
24201         * expr.c (write_complex_part, read_complex_part): Likewise.
24202         (emit_move_complex): Likewise.
24203         * haifa-sched.c (setup_ref_regs): Likewise.
24204         * ira-lives.c (mark_hard_reg_live): Likewise.
24205         * lra.c (lra_set_insn_recog_data): Likewise.
24206         * mode-switching.c (create_pre_exit): Likewise.
24207         * postreload.c (reload_combine_recognize_const_pattern): Likewise.
24208         (reload_combine_recognize_pattern): Likewise.
24209         (reload_combine_note_use, move2add_record_mode): Likewise.
24210         (reload_cse_move2add): Likewise.
24211         * reg-stack.c (subst_stack_regs_pat): Likewise.
24212         * regcprop.c (kill_value, copy_value): Likewise.
24213         (copyprop_hardreg_forward_1): Likewise.
24214         * regrename.c (verify_reg_in_set, scan_rtx_reg): Likewise.
24215         (build_def_use): Likewise.
24216         * sched-deps.c (mark_insn_reg_birth, mark_reg_death): Likewise.
24217         (deps_analyze_insn): Likewise.
24218         * sched-rgn.c (check_live_1, update_live_1): Likewise.
24219         * sel-sched.c (count_occurrences_equiv): Likewise.
24220         * valtrack.c (dead_debug_insert_temp): Likewise.
24221
24222 2015-05-19  Richard Sandiford  <richard.sandiford@arm.com>
24223
24224         * cfgcleanup.c (mentions_nonequal_regs): Use END_REGNO.
24225         * dse.c (note_add_store): Likewise.
24226         * ira-lives.c (mark_hard_reg_dead): Likewise.
24227         * loop-invariant.c (mark_reg_store): Likewise.
24228         (mark_reg_death): Likewise.
24229         * postreload.c (reload_combine): Likewise.
24230         (reload_combine_note_store): Likewise.
24231         (reload_combine_note_use): Likewise.
24232         * recog.c (peep2_reg_dead_p): Likewise.
24233
24234 2015-05-19  Alan Modra  <amodra@gmail.com>
24235
24236         * config/rs6000/predicates.md (gpc_reg_operand): Don't allow all
24237         hard registers numbered greater or equal to ARG_POINTER_REGNUM.
24238         (reg_or_neg_short_operand, fix_trunc_dest_operand): Delete
24239         unused predicates.
24240         * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*):
24241         Use altivec_register_operand.  Make insn predicate TARGET_ALTIVEC.
24242         * config/rs6000/rs6000.md (extzvdi_internal2): Use cc_reg_operand.
24243         * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Expand comment.
24244
24245 2015-05-19  Sameera Deshpande  <Sameera.Deshpande@imgtec.com>
24246
24247         * config/mips/mips.md (JOIN_MODE): New mode iterator.
24248         (join2_load_Store<JOIN_MODE:mode>): New pattern.
24249         (join2_loadhi): Likewise.
24250         (define_peehole2): Add peephole2 patterns to join 2 HI/SI/SF/DF-mode
24251         load-load and store-stores.
24252         * config/mips/mips.opt (mload-store-pairs): New option.
24253         (TARGET_LOAD_STORE_PAIRS): New macro.
24254         * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Likewise.
24255         * config/mips/mips-protos.h (mips_load_store_bonding_p): New prototype.
24256         * config/mips/mips.c (mips_load_store_bonding_p): New function.
24257
24258 2015-05-19  Mikhail Maltsev  <maltsevm@gmail.com>
24259
24260         * bb-reorder.c (fix_up_fall_thru_edges): Use std::swap instead of
24261         explicit swaps.
24262         * dojump.c (do_compare_rtx_and_jump): Likewise.
24263         * expmed.c (emit_store_flag_1): Likewise.
24264         * fibonacci_heap.h (fibonacci_heap::union_with): Likewise.
24265         * final.c (sprint_ul): Use std::reverse for reversing a string.
24266         * fold-const.c (extract_muldiv_1): Use std::swap.
24267         * genmodes.c (emit_mode_int_n): Likewise.
24268         * ifcvt.c (dead_or_predicable): Likewise.
24269         * ira-build.c (ira_merge_live_ranges): Likewise.
24270         (swap_allocno_copy_ends_if_necessary): Likewise.
24271         * ira.c (ira_setup_alts): Likewise.
24272         * loop-iv.c (iv_analyze_expr): Likewise.
24273         (implies_p): Likewise.
24274         (canon_condition): Likewise.
24275         * lra-constraints.c (swap_operands): Likewise.
24276         * lra-lives.c (lra_merge_live_ranges): Likewise.
24277         * omega.c (swap): Remove.
24278         (bswap): Remove.
24279         (omega_unprotect_1): Use std::swap.
24280         (omega_solve_geq): Likewise.
24281         * optabs.c (expand_binop_directly): Likewise.
24282         (expand_binop): Likewise.
24283         (emit_conditional_move): Likewise.
24284         (emit_conditional_add): Likewise.
24285         * postreload.c (reload_cse_simplify_operands): Likewise.
24286         * reg-stack.c (emit_swap_insn): Likewise.
24287         (swap_to_top): Likewise.
24288         (compare_for_stack_reg): Likewise.
24289         (subst_asm_stack_regs): Likewise.
24290         * reload.c (find_reloads): Likewise.
24291         * reload1.c (gen_reload_chain_without_interm_reg_p): Likewise.
24292         * sel-sched.c (invoke_reorder_hooks): Likewise.
24293         (create_block_for_bookkeeping): Likewise.
24294         * tree-data-ref.c (lambda_matrix_row_exchange): Remove.
24295         (lambda_matrix_right_hermite): Use std::swap.
24296         * tree-ssa-coalesce.c (sort_coalesce_list): Likewise.
24297         * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
24298         * tree-ssa-loop-ivopts.c (iv_ca_delta_reverse): Likewise.
24299         * tree-ssa-math-opts.c (is_widening_mult_p): Likewise.
24300         * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
24301         * tree-ssa-reassoc.c (linearize_expr_tree): Likewise.
24302         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
24303         * tree-vrp.c (compare_ranges): Likewise.
24304         * var-tracking.c (add_with_sets): Likewise.
24305         (vt_find_locations): Likewise.
24306
24307 2015-05-18  Andreas Tobler  <andreast@gcc.gnu.org>
24308
24309         * config/freebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build
24310         pie executables.
24311         (FBSD_ENDFILE_SPEC): Likewise.
24312         * config/i386/freebsd.h (STARTFILE_SPEC): Remove and use the one from
24313         config/freebsd-spec.h.
24314         (ENDFILE_SPEC): Likewise.
24315
24316 2015-05-18  Uros Bizjak  <ubizjak@gmail.com>
24317             Richard Henderson  <rth@redhat.com>
24318
24319         PR target/57032
24320         * config/alpha/constraints.md (Q): Rewrite as define_memory_constraint.
24321         Check for a memory location that is not a reference (using an AND)
24322         to an unaligned location here.
24323         * config/alpha/predicates.md (normal_memory_operand): Remove.
24324
24325 2015-05-18  Alex Velenko  <Alex.Velenko@arm.com>
24326
24327         * config/arm/arm.md (andsi_not_shiftsi_si_scc): New pattern.
24328         (andsi_not_shiftsi_si_scc_no_reuse): New pattern.
24329
24330 2015-05-18  Robert Suchanek  <robert.suchanek@imgtec.com>
24331
24332         * config/mips/mips.c (micromips_globals): New variable.
24333         (mips_set_compression_mode): Save and reinitialize target-dependent
24334         state for microMIPS.
24335
24336 2015-05-18  Martin Liska  <mliska@suse.cz>
24337
24338         * dbgcnt.def: Add new counter.
24339         * ipa-icf.c (sem_item_optimizer::merge_classes): Use the counter.
24340
24341 2015-05-18  Martin Liska  <mliska@suse.cz>
24342
24343         * dbgcnt.def: Sort counters.
24344         * opts.c (common_handle_option): Do not compile if
24345         -fdbg-cnt-list is enabled.
24346
24347 2015-05-18  Tom de Vries  <tom@codesourcery.com>
24348
24349         * gimplify.c (gimplify_modify_expr): Remove do_deref handling.
24350         (gimplify_va_arg_expr): Remove do_deref handling.  Remove adding of
24351         address operator to va_list operand.
24352         * tree-stdarg.c (expand_ifn_va_arg_1): Do deref of va_list operand
24353         unconditionally.
24354         * config/i386/i386.c (ix86_gimplify_va_arg): Remove deref on va_list
24355         operand.
24356         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Same.
24357         * config/s390/s390.c (s390_gimplify_va_arg): Same.
24358         * config/spu/spu.c (spu_gimplify_va_arg_expr): Same.
24359
24360 2015-05-18  Tom de Vries  <tom@codesourcery.com>
24361
24362         * tree-ssa-tail-merge.c: Fix whitespace.
24363
24364 2015-05-17  Jim Wilson  <jim.wilson@linaro.org>
24365
24366         * doc/invoke.texi (ARM Options, mtune): Add generic-armv7-a,
24367         cortex-a17, and cortex-a17.cortex-a7.
24368
24369 2015-05-17  Oleg Endo  <olegendo@gcc.gnu.org>
24370
24371         PR target/54236
24372         * config/sh/sh.md (*addc_2r_t): Use ashift instead of mult.
24373
24374 2015-05-17  Uros Bizjak  <ubizjak@gmail.com>
24375
24376         PR target/66174
24377         * config/i386/i386.c (expand_vec_perm_blend): Enable HImode and
24378         QImode inner modes for TARGET_AVX512BW.  Force mask operand
24379         to a register for AVX512F modes.
24380
24381 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
24382
24383         * toplev.c (emit_debug_global_declarations): Do not output debug info
24384         when doing slim LTO objects.
24385
24386 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
24387
24388         * ipa-utils.h (warn_types_mismatch, odr_or_derived_type_p,
24389         odr_types_equivalent_p): Declare.
24390         (odr_type_p): Use gcc_checking_assert.
24391         (type_in_anonymous_namespace_p) Declare.
24392         (type_with_linkage_p): Declare.
24393         * common.opt (Wlto-type-mismatch): New warning.
24394         * ipa-devirt.c (compound_type_base): New function.
24395         (odr_or_derived_type_p): New function.
24396         (odr_types_equivalent_p): New function.
24397         (add_type_duplicate): Simplify.
24398         (type_with_linkage_p): Add hack to prevent false positives on C types
24399         (type_in_anonymous_namespace_p): Likewise.
24400         * tree.c (need_assembler_name_p): Use type_with_linkage.
24401         * tree.h (type_in_anonymous_namespace_p): Remove.
24402         * doc/invoke.texi (-Wlto-type-mismatch): Document
24403
24404 2015-05-16  Jan Hubicka  <hubicka@ucw.cz>
24405
24406         * tree.c (verify_type_variant): Verify tree_base and type_common flags.
24407         (verify_type): Verify STRING_FLAG.
24408
24409 2015-05-16  Manuel López-Ibáñez  <manu@gcc.gnu.org>
24410
24411         PR fortran/44054
24412         * tree-pretty-print.c (percent_K_format): Replace locus pointer
24413         with accessor function.
24414         * tree-diagnostic.c (diagnostic_report_current_function): Use
24415         diagnostic_location function.
24416         (maybe_unwind_expanded_macro_loc): Likewise.
24417         (virt_loc_aware_diagnostic_finalizer): Likewise.
24418         (default_tree_printer): Replace locus pointer with accessor function.
24419         * diagnostic.c (diagnostic_initialize): Initialize caret_chars array.
24420         (diagnostic_set_info_translated): Initialize second location.
24421         (diagnostic_build_prefix): Use CARET_LINE_MARGIN.
24422         (diagnostic_show_locus): Handle two locations. Call
24423         diagnostic_print_caret_line.
24424         (diagnostic_print_caret_line): New.
24425         (default_diagnostic_starter): Use diagnostic_location function.
24426         (diagnostic_report_diagnostic): Use diagnostic_location function.
24427         (verbatim): Do not set text.locus.
24428         * diagnostic.h (struct diagnostic_info): Remove location field.
24429         (struct diagnostic_context): Make caret_chars an array of two.
24430         (diagnostic_location): New inline.
24431         (diagnostic_expand_location): Handle two locations.
24432         (diagnostic_same_line): New inline.
24433         (diagnostic_print_caret_line): Declare.
24434         (CARET_LINE_MARGIN): New constant.
24435         * pretty-print.c (pp_printf): Do not set text.locus.
24436         (pp_verbatim): Do not set text.locus.
24437         * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): New constant.
24438         (struct text_info): Replace locus pointer with locations
24439         array. Add accessor functions.
24440
24441 2015-05-16  Kugan Vivekanandarajah  <kuganv@linaro.org>
24442             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
24443
24444         PR target/65768
24445         * config/arm/arm.h (DONT_EARLY_SPLIT_CONSTANT): New macro.
24446         * config/arm/arm.md (subsi3, andsi3, iorsi3, xorsi3, movsi): Keep some
24447          large constants in register instead of splitting them.
24448
24449 2015-05-16  Uros Bizjak  <ubizjak@gmail.com>
24450
24451         PR target/66140
24452         * config/alpha/alpha.c (get_aligned_mem): Also look for reload
24453         replacements in memory addresses.
24454         (get_unaligned_address): Ditto.
24455
24456 2015-05-16  James Bowman  <james.bowman@ftdichip.com>
24457
24458         * config/ft32/*: New files for FT32 port.
24459         * doc/install.texi: Add FT32 information.
24460         * doc/invoke.texi: Add FT32 information.
24461         * doc/md.texi: Add FT32 information.
24462         * doc/contrib.texi: Self added.
24463
24464 2015-05-15  Marc Glisse  <marc.glisse@inria.fr>
24465
24466         PR tree-optimization/64454
24467         * match.pd ((X % Y) % Y, (X % Y) < Y): New patterns.
24468         (-1 - A -> ~A): Remove unnecessary condition.
24469
24470 2015-05-15  Gregor Richards  <gregor.richards@uwaterloo.ca>
24471
24472         * config/i386/linux.h (MUSL_DYNAMIC_LINKER): Define.
24473         * config/i386/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
24474         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32): Define.
24475
24476 2015-05-15  Ilya Enkovich  <ilya.enkovich@intel.com>
24477
24478         * ipa-chkp.h (chkp_wrap_function): New.
24479         * ipa-chkp.c (chkp_wrap_function): Remove 'static'.
24480         (chkp_wrap_function_name): New.
24481         (chkp_build_instrumented_fndecl): Use chkp_wrap_function_name
24482         to get wrapper name.
24483         * lto-cgraph.c: Include ipa-chkp.h.
24484         (input_cgraph_1): Avoid alias chain for wrappers.
24485
24486 2015-05-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
24487
24488         PR middle-end/66134
24489         * tree-chkp.c (chkp_get_orginal_bounds_for_abnormal_copy): New.
24490         (chkp_maybe_copy_and_register_bounds): Don't copy abnormal copy.
24491
24492 2015-05-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24493
24494         * config/aarch64/aarch64.h (AARCH64_TUNE_SLOWMUL): Delete.
24495         (AARCH64_FL_SLOWMUL): Delete.
24496         (AARCH64_FL_CRC): Redefine to 1<<3.
24497         (AARCH64_FL_USE_FMA_STEERING_PASS): Redefine to 1<<4.
24498
24499 2015-05-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
24500
24501         * config/arm/arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Add appropriate
24502         casting.
24503
24504 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
24505
24506         * config/alpha/alpha.md (extendqidi2): Use general_operand
24507         instead of some_operand for operand[1] predicate.
24508         (extendhidi2): Ditto.
24509         (cbranchdi4): Use general_operand instead of some_operand
24510         for operand[1] and operands[2] predicates.
24511         (cstoredi4): Ditto.
24512         * config/alpha/predicates.md (some_operand): Remove unused predicate.
24513         (some_ni_operand): Ditto.
24514
24515 2015-05-15  Uros Bizjak  <ubizjak@gmail.com>
24516
24517         * config/alpha/alpha.c (alpha_extract_integer): Do not handle
24518         CONST_WIDE_INT and CONST_DOUBLE.  Assert CONST_INT_P (x).
24519         (alpha_legitimate_constant_p) <case CONST_WIDE_INT>: Check high and
24520         low part of the constant using alpha_emit_set_const_1.
24521         (alpha_expand_mov): Do not handle CONST_WIDE_INT and CONST_DOUBLE.
24522
24523 2015-05-14  Rohit Arul Raj  <rohitrulraj@freescale.com>
24524
24525         * varasm.c (output_constant_pool_1): Pass down alignment from
24526         constant pool entry's descriptor to output_constant_pool_2.
24527         (output_object_block): Add comment prior to call to
24528         output_constant_pool_1.
24529
24530 2015-05-14  Vladimir Makarov  <vmakarov@redhat.com>
24531
24532         PR rtl-optimization/65862
24533         * target.def (ira_change_pseudo_allocno_class): New hook.
24534         * targhooks.c (default_ira_change_pseudo_allocno_class): Default
24535         value of the hook.
24536         * targhooks.h (default_ira_change_pseudo_allocno_class): New extern.
24537         * doc/tm.texi.in (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Add the
24538         hook.
24539         * ira-costs.c (find_costs_and_classes): Call the hook and change
24540         classes when it is necessary.
24541         * doc/tm.texi: Update.
24542
24543 2015-05-14  Alexander Monakov  <amonakov@ispras.ru>
24544
24545         * config/i386/i386.md (sibcall_memory): Check that register with
24546         callee address is not also used as one of the arguments, instead
24547         of checking that it is not live after the sibcall.
24548         (sibcall_pop_memory): Ditto.
24549         (sibcall_value_memory): Ditto.
24550         (sibcall_value_pop_memory): Ditto.
24551
24552 2015-05-14  Marc Glisse  <marc.glisse@inria.fr>
24553
24554         * generic-match-head.c (types_match): Handle non-types.
24555         * gimple-match-head.c (types_match): Likewise.
24556         * match.pd: Remove unnecessary TREE_TYPE for types_match.
24557
24558 2015-05-14  Wilco Dijkstra  <wdijkstr@arm.com>
24559
24560         * config/aarch64/aarch64.md (absdi2): Optimize abs expansion.
24561         (csneg3<mode>_insn): Enable expansion of pattern.
24562
24563 2015-05-14  Nick Clifton  <nickc@redhat.com>
24564
24565         * config/rl78/rl78.c (rl78_select_section): Select the correct
24566         default section based upon the category of the decl.
24567
24568 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
24569
24570         PR rtl-optimization/30967
24571         * config/rs6000/rs6000.c (rs6000_rtx_costs): Don't consider
24572         destination mode for the cost of scc patterns.
24573
24574 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
24575
24576         * config/i386/i386.md (*mul<mode>3_1): Merge with *mulhi3_1
24577         using SWIM248 mode iterator.
24578         (*mulv<mode>4): Use x86_64_sext_operand for operand[2] constraint.
24579         (*mulvhi4): mark operand[1] as commutative.  Use nonimmediate_operand
24580         for operand[2] constraint.
24581         (*mulv<mode>4_1): Merge with *mulvhi4_1 using SWI248 mode iterator.
24582
24583 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
24584
24585         PR middle-end/66133
24586         * omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion,
24587         make sure it is never noreturn, even when the task body does not
24588         return.
24589         (lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE
24590         right before GIMPLE_OMP_RETURN.
24591         (make_gimple_omp_edges): Accept GIMPLE_OMP_CONTINUE as ->cont
24592         for GIMPLE_OMP_TASK.  For GIMPLE_OMP_RETURN corresponding to
24593         GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit.
24594
24595 2015-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24596
24597         * params.def (PARAM_MAX_POW_SQRT_DEPTH): New param.
24598         * tree-ssa-math-opts.c: Include params.h
24599         (pow_synth_sqrt_info): New struct.
24600         (representable_as_half_series_p): New function.
24601         (get_fn_chain): Likewise.
24602         (print_nested_fn): Likewise.
24603         (dump_fractional_sqrt_sequence): Likewise.
24604         (dump_integer_part): Likewise.
24605         (expand_pow_as_sqrts): Likewise.
24606         (gimple_expand_builtin_pow): Use above to attempt to expand
24607         pow as series of square roots.  Removed now unused variables.
24608
24609 2015-05-13  Uros Bizjak  <ubizjak@gmail.com>
24610
24611         * config/alpha/alpha.c (alpha_emit_set_long_const): Remove c1 argument.
24612         (alpha_extract_integer): Redeclare as static HOST_WIDE_INT.
24613         Remove *p0 and *p1 arguments.  Rewrite function.
24614         (alpha_legitimate_constant_p): Update call to alpha_extract_integer.
24615         (alpha_split_const_mov): Update calls to alpha_extract_integer and
24616         alpha_emit_set_long_const.
24617         (alpha_expand_epilogue): Update calls to alpha_emit_set_long_const.
24618         (alpha_output_mi_thunk_osf): Ditto.
24619         * config/alpha/alpha.md (movti): Do not check operands[1]
24620         for CONST_DOUBLE.
24621
24622 2015-05-13  Richard Biener  <rguenther@suse.de>
24623
24624         PR tree-optimization/66129
24625         * tree-vect-slp.c (vect_build_slp_tree): Make sure all ops are
24626         commutative.
24627         (vect_schedule_slp_instance): Fix typo.
24628
24629 2015-05-13  David Malcolm  <dmalcolm@redhat.com>
24630
24631         * common.opt (fdump-internal-locations): New option.
24632         * input.c: Include diagnostic-core.h.
24633         (get_end_location): New function.
24634         (write_digit): New function.
24635         (write_digit_row): New function.
24636         (dump_location_range): New function.
24637         (dump_labelled_location_range): New function.
24638         (dump_location_info): New function.
24639         * input.h (dump_location_info): New prototype.
24640         * toplev.c (compile_file): Handle flag_dump_locations.
24641
24642 2015-05-13  Eric Botcazou  <ebotcazou@adacore.com>
24643
24644         * gimple-expr.h (is_gimple_constant): Reorder.
24645         * tree-ssa-propagate.c (before_dom_children): Use inline accessor.
24646
24647 2015-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
24648
24649         * combine.c (simplify_set): When generating a CC set, if the
24650         source already is in the correct mode, do not wrap it in a
24651         compare.  Simplify the rest of that code.
24652
24653 2015-05-13  Richard Biener  <rguenther@suse.de>
24654
24655         PR tree-optimization/66123
24656         * tree-ssa-dom.c (propagate_rhs_into_lhs): Check if we found
24657         a taken edge.
24658
24659 2015-05-13  Richard Biener  <rguenther@suse.de>
24660
24661         PR middle-end/66110
24662         * alias.c (alias_sets_conflict_p): Do not treat has_zero_child
24663         specially.
24664         * Makefile.in (dfp.o-warn): Add -Wno-strict-aliasing.
24665
24666 2015-05-13  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
24667
24668         * doc/install.texi: Bump latest automake 1.11 version to 1.11.6.
24669         * aclocal.m4: Regenerated with automake-1.11.6.
24670
24671 2015-05-13  Tom de Vries  <tom@codesourcery.com>
24672
24673         PR tree-optimization/66010
24674         * gimplify.h (gimplify_va_arg_internal): Remove declaration.
24675         * gimplify.c (gimplify_va_arg_internal): Remove and inline into ...
24676         * tree-stdarg.c (expand_ifn_va_arg_1): ... here.  Choose between lval
24677         and rval based on do_deref.
24678
24679 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
24680
24681         PR target/65103
24682         * config/i386/i386.c (ix86_rtx_costs): We want to propagate
24683         link time constants into adress expressions and therefore set
24684         their cost to 0.
24685
24686 2015-05-13  Jakub Jelinek  <jakub@redhat.com>
24687
24688         PR target/66112
24689         * config/i386/i386.md (mulv<mode>4, umulv<mode>4, *umulv<mode>4):
24690         Use SWI248 iterator instead of SWI.
24691         (*mulv<mode>4_1): Use SWI48 instead of SWI.  Simplify output template.
24692         Use eq_attr "alternative" "0" instead of match_test in
24693         length_immediate attribute computation.
24694         (*mulvhi4, *mulvhi4_1): New define_insns.
24695
24696         PR target/66112
24697         * internal-fn.c (get_min_precision): Use UNSIGNED instead of
24698         SIGNED to get precision of non-negative value.
24699
24700 2015-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
24701
24702         PR target/66048
24703         * function.c (diddle_return_value_1): Process bounds first.
24704         * config/i38/i386.c (ix86_function_value_regno_p): Add bnd1
24705         register.
24706
24707 2015-05-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24708
24709         PR rtl-optimization/64616
24710         * loop-invariant.c (can_move_invariant_reg): New.
24711         (move_invariant_reg): Call above new function to decide whether
24712         instruction can just be moved, skipping creation of temporary
24713         register.
24714
24715 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
24716
24717         PR target/pr66047.c
24718         * i386.c (ix86_function_sseregparm): Only return -1 if local function
24719         with implied regparm is called from -mno-sse function.
24720         (init_cumulative_args): Output error if ix86_function_sseregparm
24721         return -1 and SSE register would be needed.
24722         (function_arg_advance_32): Likewise.
24723         (function_arg_32): Likewise.
24724         * i386.h (ix86_args): Add decl field.
24725
24726 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
24727
24728         PR ipa/65873
24729         * ipa-inline.c (can_inline_edge_p): Allow early inlining of always
24730         inlines across optimization boundary.
24731
24732 2015-05-12  Jason Merrill  <jason@redhat.com>
24733
24734         * config/mmix/mmix.c, config/msp430/msp430.c: Add space between
24735         string literal and macro name.
24736
24737 2015-05-12  Steve Ellcey  <sellcey@imgtec.com>
24738
24739         * config/mips/mips.c (mips_print_operand): Remove 'y' operand code.
24740         * config/mips/mips.md (<GPR:d>lsa): Rewrite with shift operator.
24741         * config/mips/predicates.md (const_immlsa_operand): Remove log call.
24742
24743 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
24744
24745         * doc/invoke.texi (Warning Options): Add -Wmisleading-indentation.
24746         (-Wmisleading-indentation): New option.
24747         * Makefile.in (C_COMMON_OBJS): Add c-family/c-indentation.o.
24748
24749 2015-05-12  Uros Bizjak  <ubizjak@gmail.com>
24750
24751         * config/alpha/alpha.h (TARGET_SUPPORTS_WIDE_INT): New define.
24752         * config/alpha/alpha.c (alpha_rtx_costs): Handle CONST_WIDE_INT.
24753         (alpha_extract_integer): Ditto.
24754         (alpha_legitimate_constant_p): Ditto.
24755         (alpha_split_tmode_pair): Ditto.
24756         (alpha_preferred_reload_class): Add CONST_WIDE_INT.
24757         (alpha_expand_mov): Ditto.
24758         (print_operand): Remove handling of 'H' modifier.
24759         <case 'm'>: Remove CONST_DOUBLE handling.
24760         (summarize_insn): Handle CONST_WIDE_INT.
24761         * config/alpha/alpha.md (*andsi_internal): Remove H constraint.
24762         (anddi3): Ditto.
24763         (movti): Handle CONST_WIDE_INT.
24764         * config/alpha/constraints.md ('H'): Remove constraint definition.
24765         ('G'): Do not match MODE_FLOAT class.
24766         * config/alpha/predicates.md (const0_operand): Also match
24767         const_wide_int.
24768         (non_add_const_operand): Ditto.
24769         (non_zero_const_operand): Ditto.
24770         (some_operand): Ditto.
24771         (input_operand): Ditto.  Handle CONST_WIDE_INT.
24772         (and_operand): Do not match const_double.
24773         * config/alpha/sync.md (fetchop_constr): Remove H constraint.
24774
24775 2015-05-12  Andrew MacLeod  <amacleod@redhat.com>
24776
24777         PR target/65697
24778         * coretypes.h (MEMMODEL_SYNC, MEMMODEL_BASE_MASK): New macros.
24779         (enum memmodel): Add SYNC_{ACQUIRE,RELEASE,SEQ_CST}.
24780         * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
24781         is_mm_consume,is_mm_acquire, is_mm_release, is_mm_acq_rel,
24782         is_mm_seq_cst, is_mm_sync): New accessor functions.
24783         * builtins.c (expand_builtin_sync_operation,
24784         expand_builtin_compare_and_swap): Use MEMMODEL_SYNC_SEQ_CST.
24785         (expand_builtin_sync_lock_release): Use MEMMODEL_SYNC_RELEASE.
24786         (get_memmodel,  expand_builtin_atomic_compare_exchange,
24787         expand_builtin_atomic_load, expand_builtin_atomic_store,
24788         expand_builtin_atomic_clear): Use new accessor routines.
24789         (expand_builtin_sync_synchronize): Use MEMMODEL_SYNC_SEQ_CST.
24790         * optabs.c (expand_compare_and_swap_loop): Use MEMMODEL_SYNC_SEQ_CST.
24791         (maybe_emit_sync_lock_test_and_set): Use new accessors and
24792         MEMMODEL_SYNC_ACQUIRE.
24793         (expand_sync_lock_test_and_set): Use MEMMODEL_SYNC_ACQUIRE.
24794         (expand_mem_thread_fence, expand_mem_signal_fence, expand_atomic_load,
24795         expand_atomic_store): Use new accessors.
24796         * emit-rtl.c (need_atomic_barrier_p): Add additional enum cases.
24797         * tsan.c (instrument_builtin_call): Update check for memory model beyond
24798         final enum to use MEMMODEL_LAST.
24799         * c-family/c-common.c: Use new accessor for memmodel_base.
24800         * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap): Use new
24801         accessors.
24802         * config/aarch64/atomics.md (atomic_load<mode>,atomic_store<mode>,
24803         arch64_load_exclusive<mode>, aarch64_store_exclusive<mode>,
24804         mem_thread_fence, *dmb): Likewise.
24805         * config/alpha/alpha.c (alpha_split_compare_and_swap,
24806         alpha_split_compare_and_swap_12): Likewise.
24807         * config/arm/arm.c (arm_expand_compare_and_swap,
24808         arm_split_compare_and_swap, arm_split_atomic_op): Likewise.
24809         * config/arm/sync.md (atomic_load<mode>, atomic_store<mode>,
24810         atomic_loaddi): Likewise.
24811         * config/i386/i386.c (ix86_destroy_cost_data, ix86_memmodel_check):
24812         Likewise.
24813         * config/i386/sync.md (mem_thread_fence, atomic_store<mode>): Likewise.
24814         * config/ia64/ia64.c (ia64_expand_atomic_op): Add new memmodel cases and
24815         use new accessors.
24816         * config/ia64/sync.md (mem_thread_fence, atomic_load<mode>,
24817         atomic_store<mode>, atomic_compare_and_swap<mode>,
24818         atomic_exchange<mode>): Use new accessors.
24819         * config/mips/mips.c (mips_process_sync_loop): Likewise.
24820         * config/pa/pa.md (atomic_loaddi, atomic_storedi): Likewise.
24821         * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier,
24822         rs6000_post_atomic_barrier): Add new cases.
24823         (rs6000_expand_atomic_compare_and_swap): Use new accessors.
24824         * config/rs6000/sync.md (mem_thread_fence): Add new cases.
24825         (atomic_load<mode>): Add new cases and use new accessors.
24826         (store_quadpti): Add new cases.
24827         * config/s390/s390.md (mem_thread_fence, atomic_store<mode>): Use new
24828         accessors.
24829         * config/sparc/sparc.c (sparc_emit_membar_for_model): Use new accessors.
24830         * doc/extend.texi: Update docs to indicate 16 bits are used for memory
24831         model, not 8.
24832
24833 2015-05-12  Jan Hubicka  <hubicka@ucw.cz>
24834
24835         * ipa-devirt.c (type_with_linkage_p): New function.
24836         (type_in_anonymous_namespace_p): Move here from tree.c; assert that
24837         type has linkage.
24838         (odr_type_p): Move here from ipa-utils.h; use type_with_linkage_p.
24839         (can_be_name_hashed_p): Simplify.
24840         (hash_odr_name): Check that type has linkage before checking if it is
24841         anonymous.
24842         (types_same_for_odr): Likewise.
24843         (odr_name_hasher::equal): Likewise.
24844         (odr_subtypes_equivalent_p): Likewise.
24845         (warn_types_mismatch): Likewise.
24846         (get_odr_type): Likewise.
24847         (odr_types_equivalent_p): Fix checking of TYPE_MAIN_VARIANT.
24848         * ipa-utils.h (odr_type_p): Move offline.
24849         * tree.c (need_assembler_name_p): Fix handling of types
24850         without linkages.
24851         (type_in_anonymous_namespace_p): Move to ipa-devirt.c
24852
24853 2015-05-12  David Malcolm  <dmalcolm@redhat.com>
24854
24855         * timevar.c (timevar_enable): Delete in favor of...
24856         (g_timer): New global.
24857         (struct timevar_def): Move to timevar.h inside class timer.
24858         (struct timevar_stack_def): Likewise.
24859         (timevars): Delete global in favor of field "m_timevars" within
24860         class timer in timevar.h
24861         (stack): Likewise, in favor of field "m_stack".
24862         (unused_stack_instances): Likewise, in favor of field
24863         "m_unused_stack_instances".
24864         (start_time): Likewise, in favor of field "m_start_time".
24865         (get_time): Eliminate check for timevar_enable.
24866         (timer::timer): New function, built from part of timevar_init.
24867         (timevar_init): Rewrite idempotency test from using
24868         "timevar_enable" bool to using dynamic allocation of "g_timer".
24869         Move rest of implementation into timer's constructor.
24870         (timevar_push_1): Rename to...
24871         (timer::push): ...this, adding "m_" prefixes to variables that
24872         are now fields of timer.
24873         (timevar_pop_1): Likewise, rename to...
24874         (timer::pop): ...this, and add "m_" prefixes.
24875         (timevar_start): Replace test for "timevar_enable" with one for
24876         "g_timer", and move bulk of implementation to...
24877         (timer::start): ...here, adding "m_" prefixes.
24878         (timevar_stop): Likewise, from here...
24879         (timer::stop): ...to here.
24880         (timevar_cond_start): Likewise, from here...
24881         (timer::cond_start): ...to here.
24882         (timevar_cond_stop): Likewise, from here...
24883         (timer::cond_stop): ...to here.
24884         (validate_phases): Rename to...
24885         (timer::validate_phases): ...this, and add "m_" prefixes.  Make
24886         locals "total" and "tv" const.
24887         (timevar_print): Rename to...
24888         (timer::print): ...this, and add "m_" prefixes.  Make locals
24889         "total" and "tv" const.  Eliminate test for timevar_enable.
24890         * timevar.h (timevar_enable): Eliminate.
24891         (g_timer): New declaration.
24892         (timevar_push_1): Eliminate.
24893         (timevar_pop_1): Eliminate.
24894         (timevar_print): Eliminate.
24895         (class timer): New class.
24896         (timevar_push): Rewrite to use g_timer.
24897         (timevar_pop): Likewise.
24898         * toplev.c (toplev::~toplev): Likewise.
24899
24900 2015-05-12  Richard Earnshaw  <rearnsha@arm.com>
24901
24902         * arm-protos.h (arm_sched_autopref): Delete.
24903         (tune_params): Re-organize, use enums for flag values.
24904         (FUSE_OPS): New macro.
24905         * arm.c (ARM_PREFETCH_NOT_BENEFICIAL): Update.
24906         (ARM_PREFETCH_BENEFICIAL): Likewise.
24907         (ARM_FUSE_NOTHING, ARM_FUSE_MOVW_MOVT): Delete.
24908         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
24909         (arm_xscale_tune, arm_9e_tune, arm_marvell_pj4_tune)
24910         (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a8_tune)
24911         (arm_cortex_a7_tune, arm_cortex_a15_tune, arm_cortex_a53_tune)
24912         (arm_cortex_a57_tune,  arm_xgene1_tune, arm_cortex_a5_tune)
24913         (arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune)
24914         (arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune): Use new
24915         format.
24916         (arm_option_override, thumb2_reorg, arm_print_tune_info)
24917         (aarch_macro_fusion_pair_p): Update uses of current_tune.
24918         * arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Likewise.
24919
24920 2015-05-12  Sandra Loosemore  <sandra@codesourcery.com>
24921
24922         * config/nios2/nios2.md (trap, ctrapsi4): Use "trap" instead of
24923         "break".
24924
24925 2015-05-12  Chung-Lin Tang  <cltang@codesourcery.com>
24926             Sandra Loosemore <sandra@codesourcery.com>
24927
24928         * config/nios2/nios2.h (enum reg_class): Add IJMP_REGS enum
24929         value.
24930         (REG_CLASS_NAMES): Add "IJMP_REGS".
24931         (REG_CLASS_CONTENTS): Add new entry for IJMP_REGS.
24932         * config/nios2/nios2.md (indirect_jump,*tablejump): Adjust to
24933         use new "c" register constraint.
24934         * config/nios2/constraint.md (c): New register constraint
24935         corresponding to IJMP_REGS.
24936
24937 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
24938
24939         * config/rs6000/rs6000.md (*rotlsi3_internal4, *rotlsi3_internal5,
24940         *rotlsi3_internal6, rlwinm, 5 unnamed define_insns, and 6
24941         define_splits): Delete, revamp, transmogrify into ...
24942         (*rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
24943         *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
24944         *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
24945         New.
24946
24947 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
24948
24949         * config/rs6000/rs6000.md (rs6000_adjust_atomic_subword): Use
24950         gen_ashlsi3 and gen_andsi3 instead of gen_rlwinm.
24951
24952 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
24953
24954         * config/rs6000/rs6000.md (extzv): FAIL for SImode.
24955         (extzvsi_internal, *extzvsi_internal1, *extzvsi_internal2,
24956         *rotlsi3_internal7le, *rotlsi3_internal7be, *rotlsi3_internal8le,
24957         *rotlsi3_internal8be, *rotlsi3_internal9le, *rotlsi3_internal9be,
24958         *rotlsi3_internal10le, *rotlsi3_internal10be, *rotlsi3_internal11le,
24959         *rotlsi3_internal11be, *rotlsi3_internal12le, *rotlsi3_internal12be,
24960         *lshiftrt_internal1le, *lshiftrt_internal1be, *lshiftrt_internal2le,
24961         *lshiftrt_internal2be, *lshiftrt_internal3le, *lshiftrt_internal3be,
24962         *lshiftrt_internal4le, *lshiftrt_internal4be, *lshiftrt_internal5le,
24963         *lshiftrt_internal5be, *lshiftrt_internal5le, *lshiftrt_internal5be,
24964         *rotldi3_internal7le, *rotldi3_internal7be, *rotldi3_internal8le,
24965         *rotldi3_internal8be, *rotldi3_internal9le, *rotldi3_internal9be,
24966         *rotldi3_internal10le, *rotldi3_internal10be, *rotldi3_internal11le,
24967         *rotldi3_internal11be, *rotldi3_internal12le, *rotldi3_internal12be,
24968         *rotldi3_internal13le, *rotldi3_internal13be, *rotldi3_internal14le,
24969         *rotldi3_internal14be, *rotldi3_internal15le, *rotldi3_internal15be,
24970         and 30 corresponding splitters): Delete.
24971
24972 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
24973
24974         * config/rs6000/rs6000.md (define_split for bswaphi): Don't use
24975         zero_extract.
24976
24977 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
24978
24979         * combine.c (recog_for_combine_1): New function, factored out
24980         from recog_for_combine.
24981         (change_zero_ext): New function.
24982         (recog_for_combine): If recog fails, try again with the pattern
24983         modified by change_zero_ext; if that still fails, restore the
24984         pattern.
24985
24986 2015-05-12  Segher Boessenkool  <segher@kernel.crashing.org>
24987
24988         * combine.c (get_undo_marker): New function.
24989         (undo_to_marker): New function, largely factored out from ...
24990         (undo_all): ... this.  Adjust.
24991
24992 2015-05-12  Richard Biener  <rguenther@suse.de>
24993
24994         PR tree-optimization/66101
24995         * tree-ssa-dce.c (remove_dead_stmt): Properly mark loops for
24996         fixup if we turn a loop exit edge to a fallthru edge.
24997
24998 2015-05-12  Richard Biener  <rguenther@suse.de>
24999
25000         PR tree-optimization/37021
25001         * tree-vectorizer.h (struct _slp_tree): Add two_operators flag.
25002         (SLP_TREE_TWO_OPERATORS): New define.
25003         * tree-vect-slp.c (vect_create_new_slp_node): Initialize
25004         SLP_TREE_TWO_OPERATORS.
25005         (vect_build_slp_tree_1): Allow two mixing plus/minus in an
25006         SLP node.
25007         (vect_build_slp_tree): Adjust.
25008         (vect_analyze_slp_cost_1): Likewise.
25009         (vect_schedule_slp_instance): Vectorize mixing plus/minus by
25010         emitting two vector stmts and mixing the results.
25011
25012 2015-05-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
25013
25014         * call.c (print_z_candidates): Remove dead code.
25015
25016 2015-05-12  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
25017
25018         * config/s390/2827.md: Split zEC12_simple into zEC12_simple_int
25019         and zEC12_simple_fp.
25020         * config/s390/s390.c (s390_issue_rate): Set issue rate for zEC12
25021         to 1.
25022
25023 2015-05-12  Tom de Vries  <tom@codesourcery.com>
25024
25025         PR tree-optimization/66010
25026         * gimplify.c (gimplify_modify_expr): Handle new do_deref argument of
25027         ifn_va_arg.
25028         * gimplify.h (gimplify_va_arg_internal): Remove loc parameter.
25029         (gimplify_va_arg_internal): Remove loc parameter.  Assert no array-typed
25030         va_lists are passed, and remove corresponding handling.
25031         (gimplify_va_arg_expr): Only take address of ap if necessary.  Add
25032         do_deref argument to ifn_va_arg.
25033         * tree-stdarg.c (expand_ifn_va_arg_1): Handle new do_deref argument of
25034         ifn_va_arg.
25035
25036 2015-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
25037
25038         PR target/65955
25039         * config/arm/arm.md (movcond_addsi): Check that operands[2] is a
25040         REG before taking its REGNO.
25041
25042 2015-05-12  Thomas Preud'homme  <thomas.preudhomme@arm.com>
25043
25044         * combine.c i(set_nonzero_bits_and_sign_copies): Split code updating
25045         rsp->sign_bit_copies and rsp->nonzero_bits into ...
25046         (update_rsp_from_reg_equal): This.  Also use REG_EQUAL note on src if
25047         present to get more accurate information about the number of sign bit
25048         copies and non zero bits.
25049
25050 2015-05-12  Richard Biener  <rguenther@suse.de>
25051
25052         * tree-vect-slp.c (vect_build_slp_tree_1): For BB vectorization
25053         do not allow unrolling.
25054
25055 2015-05-11  Richard Henderson  <rth@redhat.com>
25056
25057         * config/i386/i386-modes.def (CCP): New.
25058         * config/i386/i386.c (put_condition_code): Handle it.
25059         (ix86_match_ccmode, ix86_cc_modes_compatible): Likewise.
25060
25061 2015-05-11  Richard Henderson  <rth@redhat.com>
25062
25063         * target.def (md_asm_clobbers): Replace with...
25064         (md_asm_adjust): this.
25065         * tm.texi.in (TARGET_MD_ASM_CLOBBERS): Remove.
25066         (TARGET_MD_ASM_ADJUST): New.
25067         * tm.texi: Rebuild.
25068         * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Remove.
25069         * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Remove.
25070         * system.h (TARGET_MD_ASM_CLOBBERS): Poison.
25071
25072         * cfgexpand.c (check_operand_nalternatives): Accept vector of
25073         constraints instead of lists of outputs and inputs.
25074         (expand_asm_stmt): Save and restore input_location around the
25075         body of the function.  Move asm data into vectors instead of
25076         building tree lists.  Generate cleanup sequences as needed,
25077         rather than waiting til the end.  Use new md_asm_adjust hook.
25078
25079         * config/vxworks.c: Include vec.h before target.h.
25080         * gimple.c: Likewise.
25081         * incpath.c: Likewise.
25082         * mode-switching.c: Likewise.
25083
25084         * config/cris/cris.c (cris_md_asm_clobbers): Convert to...
25085         (cris_md_asm_adjust): this.
25086         (TARGET_MD_ASM_CLOBBERS): Remove.
25087         (TARGET_MD_ASM_ADJUST): New.
25088         * config/i386/i386.c (ix86_md_asm_clobbers): Convert to...
25089         (ix86_md_asm_adjust): this.
25090         (TARGET_MD_ASM_CLOBBERS): Remove.
25091         (TARGET_MD_ASM_ADJUST): New.
25092         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): Convert to...
25093         (mn10300_md_asm_adjust): this.
25094         (TARGET_MD_ASM_CLOBBERS): Remove.
25095         (TARGET_MD_ASM_ADJUST): New.
25096         * config/rs6000/rs6000.c (rs6000_md_asm_clobbers): Convert to...
25097         (rs6000_md_asm_adjust): this.
25098         (TARGET_MD_ASM_CLOBBERS): Remove.
25099         (TARGET_MD_ASM_ADJUST): New.
25100         * config/visium/visium.c (visium_md_asm_clobbers): Convert to...
25101         (visium_md_asm_adjust): this.
25102         (TARGET_MD_ASM_CLOBBERS): Remove.
25103         (TARGET_MD_ASM_ADJUST): New.
25104
25105 2015-05-11  Richard Henderson  <rth@redhat.com>
25106
25107         * gimplify.c (gimplify_asm_expr): Set gimple_asm_volatile_p
25108         if noutputs is zero.
25109         * cfgexpand.c (expand_asm_stmt): Use gimple_asm_volatile_p unchanged.
25110
25111         * cfgexpand.c (expand_asm_operands): Merge into...
25112         (expand_asm_stmt): ... here.
25113
25114         * cfgexpand.c (expand_asm_operands): Don't call
25115         resolve_asm_operand_names.
25116         * stmt.c (resolve_asm_operand_names): Clarify block comment.
25117
25118 2015-05-11  Jan Hubicka  <hubicka@ucw.cz>
25119
25120         * dwarf2out.c (gen_member_die): Sanity check that we access
25121         TYPE_MAIN_VARIANT for TYPE_METHODS.
25122         * function.c (use_register_for_decl): Look for TYPE_MAIN_VARIANT when
25123         checking TYPE_METHODS.
25124         * tree.c (free_lang_data_in_type): See TYPE_METHODS to error_mark_node
25125         if non-null.
25126         (build_distinct_type_copy): Clear TYPE_METHODS.
25127         (verify_type_variant): Verify that TYPE_METHODS is NULL for variants.
25128         (verify_type): Allow TYPE_METHODS to be error_mark_node.
25129         * tree.def: Update docs of TYPE_STUB_DECL and TYPE_METHODS.
25130
25131 2015-05-11  Eric Botcazou  <ebotcazou@adacore.com>
25132
25133         * emit-rtl.c (emit_pattern_after_setloc): Add missing guard.
25134         (emit_pattern_before_setloc): Likewise.
25135
25136 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
25137
25138         * genrecog.c (match_pattern_1): Expect the pattern to be a SEQUENCE
25139         for define_peephole2s.
25140         (get_peephole2_pattern): New function.
25141         (main): Use it.  Call validate_pattern.
25142
25143 2015-05-11  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
25144
25145         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Use
25146         LAST_CALLEE_SAVED_REG instead of hard-coded register number.
25147         (Last callee saved reg is different for AVR_TINY architecture)
25148
25149 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
25150
25151         * config/i386/i386.c (ix86_loop_unroll_adjust): Use PATTERN (insn)
25152         when looking for memory references.
25153
25154 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
25155
25156         PR target/65753
25157         * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow PIC sibcalls
25158         via function pointers.
25159
25160 2015-05-11  Alexander Monakov  <amonakov@ispras.ru>
25161
25162         * calls.c (prepare_call_address): Transform PLT call to GOT lookup and
25163         indirect call by forcing address into a pseudo with -fno-plt.
25164         * common.opt (flag_plt): New option.
25165         * doc/invoke.texi (Code Generation Options): Add -fno-plt.
25166         ([-fno-plt]): Document.
25167
25168 2015-05-11  Markus Trippelsdorf  <markus@trippelsdorf.de>
25169
25170         PR bootstrap/66105
25171         * config/rs6000/option-defaults.h: Add space between string literal
25172         and macro name.
25173
25174 2015-05-11  Thomas Preud'homme  <thomas.preudhomme@arm.com>
25175
25176         * gcc.target/arm/pr64616.c: Test dump rather than assembly to work
25177         accross ARM targets.
25178
25179 2015-05-11  Christian Bruel  <christian.bruel@st.com>
25180
25181         * config/arm/arm-protos.h (thumb_code, thumb1_code): Remove.
25182         * config/arm/vxworks.h (thumb_code): Replace with TARGET_THUMB.
25183
25184 2015-05-11  Richard Sandiford  <richard.sandiford@arm.com>
25185
25186         PR rtl-optimization/66076
25187         * rtlanal.c (generic_subrtx_iterator <T>::add_single_to_queue):
25188         Don't grow the heap array if it is already big enough from a
25189         previous iteration.
25190
25191 2015-05-11  Christian Bruel  <christian.bruel@st.com>
25192
25193         * config/arm/arm-protos.h (arm_declare_function_name): Declare.
25194         (is_called_in_ARM_mode): Remove.
25195         * config/arm/arm.c (is_called_in_ARM_mode): Declare static bool.
25196         (arm_declare_function_name): Moved from from ARM_DECLARE_FUNCTION_NAME.
25197         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Call
25198          arm_declare_function_name.
25199
25200 2015-05-11  Christian Bruel  <christian.bruel@st.com>
25201
25202         * config/arm/arm.c (arm_option_override): Reoganized and split into :
25203         (arm_option_params_internal); New function.
25204         (arm_option_check_internal): New function.
25205         (arm_option_override_internal): New function.
25206         (thumb_code, thumb1_code): Remove.
25207         * config/arm/arm.h (TREE_TARGET_THUMB, TREE_TARGET_THUMB1): New macros.
25208         (TREE_TARGET_THUM2, TREE_TARGET_ARM): Likewise.
25209         (thumb_code, thumb1_code): Remove.
25210         * config/arm/arm.md (is_thumb, is_thumb1): Check TARGET flag.
25211
25212 2015-05-11  Uros Bizjak  <ubizjak@gmail.com>
25213
25214         * config/alpha/alpha.c (alpha_emit_set_const_1)
25215         (alpha_emit_set_long_const, alpha_extract_integer)
25216         (alpha_legitimate_constant_p, alpha_split_const_mov)
25217         (alpha_expand_block_clear, alpha_expand_zap_mask, print_operand):
25218         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
25219         (alpha_emit_set_const_1): Change "(HOST_WIDE_INT) 1" to
25220         HOST_WIDE_INT_1U.
25221         * config/alpha/predicates.md (mode_mask_operand): Do not match
25222         const_double RTX.
25223         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
25224         * config/alpha/alpha.md (abstf, *abstf_internal, UNSPEC_ZAP splitter):
25225         Change "(HOST_WIDE_INT) 1" to HOST_WIDE_INT_1U.
25226         [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
25227         (*negtf_internal): Use gen_int_mode instead of immed_double_const.
25228
25229 2015-05-11  Jakub Jelinek  <jakub@redhat.com>
25230
25231         PR target/65780
25232         * config/s390/linux.h (TARGET_BINDS_LOCAL_P): Define to
25233         default_binds_local_p_2.
25234         * config/arm/linux-elf.h (TARGET_BINDS_LOCAL_P): Likewise.
25235         * config/aarch64/aarch64-linux.h (TARGET_BINDS_LOCAL_P): Likewise.
25236
25237 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
25238
25239         * tree.c (verify_type_variant): Check TYPE_VALUES_RAW and TYPE_PRECISION
25240
25241 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
25242
25243         Patch by Richard Biener
25244         * coverage.c (coverage_obj_init): Delay building of type variant
25245         until the type is finished.
25246
25247 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
25248
25249         * ipa-devirt.c (warn_types_mismatch): Do not ICE when warning about
25250         mismatch between C and C++ type; compoare correctly ARG_TYPES
25251         for non-prototypes and output correctly parameter index for METHOD_TYPE.
25252         (odr_types_equivalent_p): Fix wording of warning about attributes;
25253         it is OK to match prototype and non-prototype.
25254
25255 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
25256
25257         * tree.c (free_lang_data_in_type): Free TREE_PURPOSE of
25258         TYPE_ARG_TYPES list.
25259         (verify_type): Permit non-NULL TREE_PURPOSE in non-LTO builds.
25260         * tree.def (FUNCTION_TYPE): Document TREE_PURPOSE in TYPE_ARG_TYPES
25261
25262 2015-05-09  Jan Hubicka  <hubicka@ucw.cz>
25263
25264         * tree.c (verify_type): Verify TYPE_BINFO and TYPE_VALUES_RAW.
25265         * tree.h (is_lang_specific): Constify.
25266
25267 2015-05-09  Marc Glisse  <marc.glisse@inria.fr>
25268
25269         PR tree-optimization/64454
25270         * tree-vrp.c (extract_range_from_binary_expr_1) <TRUNC_MOD_EXPR>:
25271         Rewrite.
25272
25273 2015-05-08  Jason Merrill  <jason@redhat.com>
25274
25275         * bitmap.c, c/c-aux-info.c, cfg.c, cfghooks.c, cgraph.c,
25276         config/aarch64/aarch64.md config/alpha/vms.h, config/darwin.c,
25277         config/darwin.h, config/darwin9.h, config/elfos.h,
25278         config/i386/bsd.h, config/ia64/ia64.c, config/lm32/lm32.h,
25279         config/microblaze/microblaze.h, config/mips/mips.h,
25280         config/mmix/mmix.c, config/msp430/msp430.c, config/nios2/nios2.h,
25281         config/nvptx/nvptx.c, config/nvptx/nvptx.h, config/pa/pa.c,
25282         config/pa/pa.h, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
25283         config/rs6000/xcoff.h, config/rx/rx.h, config/s390/s390.h,
25284         config/sparc/sol2.h, config/sparc/sparc.h, config/visium/visium.h,
25285         cppbuiltin.c, defaults.h, doc/invoke.texi, dwarf2cfi.c,
25286         dwarf2out.c, final.c, gcc.c, gcov-dump.c, gcov.c, ipa-cp.c,
25287         ipa-inline.c, ipa-polymorphic-call.c, ipa-profile.c, ipa-prop.c,
25288         ira-color.c, ira.c, loop-doloop.c, loop-iv.c, mcf.c,
25289         modulo-sched.c, predict.c, profile.c, stor-layout.c, toplev.c,
25290         tree-ssa-reassoc.c, value-prof.c, wide-int-print.cc: Add space
25291         between string literal and macro name.
25292
25293 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25294
25295         * jump.c: Change argument types to rtx_insn *.
25296         * rtl.h: Adjust.
25297
25298 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25299
25300         * lra-constraints.c: Change argument type to rtx_insn *.
25301
25302 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25303
25304         * df-problems.c: Change argument type to rtx_insn *.
25305
25306 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25307
25308         * combine.c: Change argument type to rtx_insn *.
25309
25310 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25311
25312         * rtl.h: Adjust.
25313         * rtlanal.c: Change argument type to rtx_insn *.
25314
25315 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25316
25317         * sched-deps.c: Change argument types to rtx_insn *.
25318         * sched-int.h: Adjust.
25319
25320 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25321
25322         * dwarf2cfi.c: Change argument type to rtx_insn *.
25323
25324 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25325
25326         * ira.c (decrease_live_ranges_number): Changetype of local
25327         variable to rtx_insn *.
25328         * recog.c: Change argument types to rtx_insn *.
25329         * recog.h: Adjust.
25330
25331 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25332
25333         * reorg.c: Change argument types to rtx_insn *.
25334
25335 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25336
25337         * ira-color.c: Change argument types to rtx_insn *.
25338         * lra-eliminations.c: Likewise.
25339         * ira.h: Adjust.
25340
25341 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25342
25343         * gcse.c: Change argument types to rtx_insn *.
25344
25345 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25346
25347         * cse.c (cse_change_cc0_mode): Change argument type to rtx_insn *.
25348
25349 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25350
25351         * emit-rtl.c (emit_debug_insn_before): Change argument type to
25352         rtx_insn *.
25353         * rtl.h: Adjust.
25354
25355 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25356
25357         * emit-rtl.c (emit_note_before): Change argument type to rtx_insn *.
25358         * rtl.h: Adjust.
25359
25360 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25361
25362         * emit-rtl.c (emit_note_after): Change argument type to rtx_insn *.
25363         * rtl.h: Adjust.
25364
25365 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25366
25367         * emit-rtl.c (prev_cc0_setter): Change argument type to rtx_insn *.
25368         * rtl.h: Adjust.
25369
25370 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25371
25372         * rtlanal.c (noop_move_p): Change argument type to rtx_insn *.
25373         * rtl.h: Adjust.
25374
25375 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25376
25377         * rtlanal.c (add_shallow_copy_of_reg_note): Change argument type
25378         to rtx_insn *.
25379         * rtl.h: Adjust.
25380
25381 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25382
25383         * rtlanal.c (remove_reg_equal_equiv_notes): Change argument type
25384         to rtx_insn *.
25385         * rtl.h: Likewise.
25386
25387 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25388
25389         * except.c (can_nonlocal_goto): Change type of argument to
25390         rtx_insn *.
25391         * rtl.h: Adjust.
25392
25393 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25394
25395         * rtlanal.c (computed_jump_p): Cange argument type to rtx_insn *.
25396         * rtl.h: Adjust.
25397
25398 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25399
25400         * rtlanal.c (in_insn_list_p): Renamed from in_expr_list_p.
25401         * cfgrtl.c (can_delete_label_p): Adjust.
25402         * rtl.h: likewise.
25403
25404 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25405
25406         * reorg.c (stop_search_p): Change argument to rtx_insn *.
25407
25408 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25409
25410         * except.c (make_reg_eh_region_note): Change argument to
25411         rtx_insn *.
25412         (make_reg_eh_region_note_nothrow_nononlocal): Likewise.
25413         * except.h: Adjust.
25414
25415 2015-05-08  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25416
25417         * mode-switching.c (commit_mode_sets): Change type of local
25418         variable from rtx to rtx_insn *.
25419
25420 2015-05-08  Jim Wilson  <jim.wilson@linaro.org>
25421
25422         * doc/install.texi (--enable-languages): Add missing jit and lto info.
25423         Add ^ to grep command.
25424         * doc/match-and-simplify.texi (GIMPLE API): Add missing fourth tree
25425         arg to last gimple_simplify declaration.  Add missing gimple_build
25426         declaration for built-in function case with four tree args.
25427
25428 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
25429             Szabolcs Nagy  <szabolcs.nagy@arm.com>
25430
25431         * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Define.
25432         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Define.
25433         (GNU_USER_DYNAMIC_LINKERN32): Update.
25434
25435 2015-05-08  Richard Biener  <rguenther@suse.de>
25436
25437         PR tree-optimization/66036
25438         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
25439         Handle strided group loads.
25440         (vect_verify_datarefs_alignment): Likewise.
25441         (vect_enhance_data_refs_alignment): Likewise.
25442         (vect_analyze_group_access): Likewise.
25443         (vect_analyze_data_ref_access): Likewise.
25444         (vect_analyze_data_ref_accesses): Likewise.
25445         * tree-vect-stmts.c (vect_model_load_cost): Likewise.
25446         (vectorizable_load): Likewise.
25447
25448 2015-05-08  Segher Boessenkool  <segher@kernel.crashing.org>
25449
25450         * config/rs6000/rs6000.md: Require operand inequality in one
25451         of the peepholes.
25452
25453 2015-05-08  Richard Sandiford  <richard.sandiford@arm.com>
25454             Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
25455
25456         * config/i386/i386.md (<mode>_ldx, *<mode>_ldx): Remove mode
25457         from (set ...).
25458         * config/rx/rx.md (movdi, movdf): Likewise.
25459         Likewise for define_peephole2s.
25460
25461 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
25462
25463         * config/aarch64/arm_neon.h (vceq_s64, vceq_u64, vceqz_s64, vceqz_u64,
25464         vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64, vcgtz_s64, vcle_s64,
25465         vcle_u64, vclez_s64, vclt_s64, vclt_u64, vcltz_s64, vtst_s64,
25466         vtst_u64): Rewrite using gcc vector extensions.
25467
25468 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
25469
25470         * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>,
25471         vcond<mode><mode>, vcondu<mode><mode>): Add DImode variant.
25472
25473 2015-05-08  Alan Lawrence  <alan.lawrence@arm.com>
25474
25475         * optabs.c (vector_compare_rtx): Handle RTL operands having VOIDmode.
25476
25477 2015-05-08  Szabolcs Nagy  <szabolcs.nagy@arm.com>
25478
25479         * config/glibc-stdint.h (OPTION_MUSL): Define.
25480         (INT_FAST16_TYPE, INT_FAST32_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE):
25481         Change the definition based on OPTION_MUSL for 64 bit targets.
25482         * config/linux.h (OPTION_MUSL): Redefine.
25483         * config/alpha/linux.h (OPTION_MUSL): Redefine.
25484         * config/rs6000/linux.h (OPTION_MUSL): Redefine.
25485         * config/rs6000/linux64.h (OPTION_MUSL): Redefine.
25486
25487 2015-05-08  Gregor Richards  <gregor.richards@uwaterloo.ca>
25488             Szabolcs Nagy  <szabolcs.nagy@arm.com>
25489
25490         * config.gcc (LIBC_MUSL): New tm_defines macro.
25491         * config/linux.h (OPTION_MUSL): Define.
25492         (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER32,)
25493         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32,)
25494         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
25495         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
25496         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
25497         * config/linux.opt (mmusl): New option.
25498         * doc/invoke.texi (GNU/Linux Options): Document -mmusl.
25499         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
25500         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
25501         * configure: Regenerate.
25502
25503 2015-05-08  H.J. Lu  <hongjiu.lu@intel.com>
25504             Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
25505
25506         PR target/48904
25507         * config.gcc (x86_64-*-knetbsd*-gnu): Add i386/knetbsd-gnu64.h.
25508         * config/i386/knetbsd-gnu64.h: New file.
25509
25510 2015-05-08  Marek Polacek  <polacek@redhat.com>
25511
25512         PR c/64918
25513         * doc/invoke.texi: Document -Woverride-init-side-effects.
25514
25515 2015-05-07  Marek Polacek  <polacek@redhat.com>
25516
25517         PR c/65179
25518         * doc/invoke.texi: Document -Wshift-negative-value.
25519
25520 2015-05-06  Aditya Kumar  <hiraditya@msn.com>
25521
25522         * gcov-tool.c (do_merge): Refactore to remove int ret.
25523         * ipa-icf.c (sem_item::hash_referenced_symbol_properties): Change
25524         !type == FUNC to type != FUNC.
25525         * reload.h (struct target_reload): Changee to type of
25526         x_spill_indirect_levels from bool to unsigned char.
25527
25528 2015-05-07  Richard Sandiford  <richard.sandiford@arm.com>
25529
25530         * rtl.h (always_void_p): New function.
25531         * gengenrtl.c (always_void_p): Likewise.
25532         (genmacro): Don't add a mode parameter to gen_rtx_foo if rtxes
25533         with code foo are always VOIDmode.
25534         * genemit.c (gen_exp): Update gen_rtx_foo calls accordingly.
25535         * builtins.c, caller-save.c, calls.c, cfgexpand.c, combine.c,
25536         compare-elim.c, config/aarch64/aarch64.c,
25537         config/aarch64/aarch64.md, config/alpha/alpha.c,
25538         config/alpha/alpha.md, config/arc/arc.c, config/arc/arc.md,
25539         config/arm/arm-fixed.md, config/arm/arm.c, config/arm/arm.md,
25540         config/arm/ldrdstrd.md, config/arm/thumb2.md, config/arm/vfp.md,
25541         config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
25542         config/c6x/c6x.md, config/cr16/cr16.c, config/cris/cris.c,
25543         config/cris/cris.md, config/darwin.c, config/epiphany/epiphany.c,
25544         config/epiphany/epiphany.md, config/fr30/fr30.c, config/frv/frv.c,
25545         config/frv/frv.md, config/h8300/h8300.c, config/i386/i386.c,
25546         config/i386/i386.md, config/i386/sse.md, config/ia64/ia64.c,
25547         config/ia64/vect.md, config/iq2000/iq2000.c,
25548         config/iq2000/iq2000.md, config/lm32/lm32.c, config/lm32/lm32.md,
25549         config/m32c/m32c.c, config/m32r/m32r.c, config/m68k/m68k.c,
25550         config/m68k/m68k.md, config/mcore/mcore.c, config/mcore/mcore.md,
25551         config/mep/mep.c, config/microblaze/microblaze.c,
25552         config/mips/mips.c, config/mips/mips.md, config/mmix/mmix.c,
25553         config/mn10300/mn10300.c, config/msp430/msp430.c,
25554         config/nds32/nds32-memory-manipulation.c, config/nds32/nds32.c,
25555         config/nds32/nds32.md, config/nios2/nios2.c, config/nvptx/nvptx.c,
25556         config/pa/pa.c, config/pa/pa.md, config/rl78/rl78.c,
25557         config/rs6000/altivec.md, config/rs6000/rs6000.c,
25558         config/rs6000/rs6000.md, config/rs6000/vector.md,
25559         config/rs6000/vsx.md, config/rx/rx.c, config/rx/rx.md,
25560         config/s390/s390.c, config/s390/s390.md, config/sh/sh.c,
25561         config/sh/sh.md, config/sh/sh_treg_combine.cc,
25562         config/sparc/sparc.c, config/sparc/sparc.md, config/spu/spu.c,
25563         config/spu/spu.md, config/stormy16/stormy16.c,
25564         config/tilegx/tilegx.c, config/tilegx/tilegx.md,
25565         config/tilepro/tilepro.c, config/tilepro/tilepro.md,
25566         config/v850/v850.c, config/v850/v850.md, config/vax/vax.c,
25567         config/visium/visium.c, config/xtensa/xtensa.c, cprop.c, dse.c,
25568         expr.c, gcse.c, ifcvt.c, ira.c, jump.c, lower-subreg.c,
25569         lra-constraints.c, lra-eliminations.c, lra.c, postreload.c, ree.c,
25570         reg-stack.c, reload.c, reload1.c, reorg.c, sel-sched.c,
25571         var-tracking.c: Update calls accordingly.
25572
25573 2015-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
25574
25575         PR middle-end/192
25576         PR middle-end/54303
25577         * varasm.c (function_mergeable_rodata_prefix): New function.
25578         (mergeable_string_section): Use it.
25579         (mergeable_constant_section): Use it.
25580
25581 2015-05-07  Jeff Law  <law@redhat.com>
25582
25583         PR target/39726
25584         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
25585         simplifier to narrow arithmetic.
25586         * generic-match-head.c: (types_match, single_use): New functions.
25587         * gimple-match-head.c: (types_match, single_use): New functions.
25588
25589 2015-05-07  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
25590
25591         * combine.c (make_compound_operation): Remove checks for PLUS/MINUS
25592         rtx type.
25593
25594 2015-05-07  Richard Biener  <rguenther@suse.de>
25595
25596         PR tree-optimization/66002
25597         * passes.def: Schedule another pass_merge_phi after ifcombine, right
25598         before phiopt.
25599
25600 2015-05-07  Marek Polacek  <polacek@redhat.com>
25601             Martin Uecker  <uecker@eecs.berkeley.edu>
25602
25603         * doc/invoke.texi: Document -fsanitize=bounds-strict.
25604         * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS_STRICT, or it
25605         into SANITIZE_NONDEFAULT.
25606         * opts.c (common_handle_option): Handle -fsanitize=bounds-strict.
25607
25608 2015-05-07  Uros Bizjak  <ubizjak@gmail.com>
25609
25610         PR target/66015
25611         * config/alpha/alpha.c (alpha_override_options_after_change): New.
25612         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
25613         (alpha_override_options): Move align_loops, align_jumps and
25614         align_functions handling into alpha_override_options_after_change.
25615
25616 2015-05-06  Sandra Loosemore  <sandra@codesourcery.com>
25617             Chris Jones  <chrisj@nvidia.com>
25618             Joshua Conner  <jconner@nvidia.com>
25619
25620         * config/arm/unknown-elf.h (STARTFILE_SPEC): Add conditional
25621         linking of crtfastmath.o.
25622         * config/arm/linux-eabi.h (STARTFILE_SPEC): Likewise.
25623
25624 2015-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
25625
25626         * config/rs6000/rs6000.md (cstore<mode>4_signed_imm): New expander.
25627         (cstore<mode>4_unsigned_imm): New expander.
25628         (cstore<mode>4): Remove empty constraint strings.  Use the new
25629         expanders.
25630
25631 2015-05-06  Yvan Roux  <yvan.roux@linaro.org>
25632
25633         PR target/64208
25634         * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Cleanup redundant
25635         alternatives.
25636
25637 2015-05-06  Szabolcs Nagy  <szabolcs.nagy@arm.com>
25638
25639         * config/aarch64/geniterators.sh: Use standard BRE in sed.
25640
25641 2015-05-06  Alan Modra  <amodra@gmail.com>
25642
25643         PR target/66033
25644         * config/rs6000/rs6000.md (nop): Use an unspec pattern.
25645         (UNSPEC_NOP): Define.
25646         (reload_vsx_from_gpr<mode>): Add missing DONE.
25647         (reload_gpr_from_vsx<mode>): Likewise.
25648         * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
25649         (vsx_div_v2di, vsx_udiv_v2di): Likewise.
25650
25651 2015-05-06  Christian Bruel  <christian.bruel@st.com>
25652
25653         PR target/66015
25654         * config/aarch64/aarch64.c (aarch64_override_options): Move align_loops,
25655         align_jumps, align_functions into aarch64_override_options_after_change.
25656
25657 2015-05-06  Richard Biener  <rguenther@suse.de>
25658
25659         * tree-vect-slp.c (vect_supported_load_permutation_p): Use
25660         vect_transform_slp_perm_load to check if we support a permutation
25661         for basic-block vectorization.
25662
25663 2015-05-06  Nick Clifton  <nickc@redhat.com>
25664
25665         * config/rl78/rl78.c (need_to_save): Save register 22 if it is
25666         used, even if it is not being used as a frame pointer.
25667
25668 2015-05-05  Jason Merrill  <jason@redhat.com>
25669
25670         * dwarf2out.c (gen_member_die): Don't emit anything for an
25671         anonymous class constructor.
25672
25673 2015-05-05  David Malcolm  <dmalcolm@redhat.com>
25674
25675         * auto-profile.c (afdo_find_equiv_class): Fix indentation so
25676         that it reflects the block structure.
25677         (afdo_propagate_edge): Likewise.
25678         (afdo_calculate_branch_prob): Likewise.
25679         (afdo_annotate_cfg): Likewise.
25680         * cfgcleanup.c (equal_different_set_p): Likewise.
25681         (try_crossjump_to_edge): Likewise.
25682         * cgraph.c (cgraph_node::verify_node): Likewise.
25683         * cgraphunit.c (expand_all_functions): Likewise.
25684         * config/i386/i386.c (ix86_expand_copysign): Likewise.
25685         (exact_dependency_1): Likewise.
25686         * dwarf2asm.c (dw2_output_indirect_constants): Likewise.
25687         * dwarf2out.c (tree_add_const_value_attribute_for_decl): Likewise.
25688         * gensupport.c (process_define_subst): Likewise.
25689         * lto-wrapper.c (merge_and_complain): Likewise.
25690         * tree-if-conv.c (if_convertible_bb_p): Likewise.
25691         * tree-ssa-loop-prefetch.c (find_or_create_group): Likewise.
25692         * tree-ssa-tail-merge.c (gsi_advance_fw_nondebug_nonlocal): Likewise.
25693         * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
25694         * tree-vect-loop.c (vectorizable_reduction): Likewise.
25695         * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
25696         * tree-vect-stmts.c (vectorizable_shift): Likewise.
25697         * tree-vrp.c (vrp_finalize): Likewise.
25698         * tree.c (variably_modified_type_p): Likewise.
25699
25700 2015-05-05  Jack Howarth  <howarth.at.gcc@gmail.com>
25701
25702         * config.gcc: Use darwin9.h, darwin10.h and darwin12.h
25703         on darwin12 and later.
25704         * config/darwin12.h (LINK_GCC_C_SEQUENCE_SPEC): Add
25705         file to pass -rdynamic on darwin12 and later.
25706         * config/darwin.opt (rdynamic): Add.
25707
25708 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
25709
25710         * doc/extend.texi (C Extensions): Update menu for moved Variable
25711         Attributes and Type Attributes sections.
25712
25713 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
25714
25715         PR target/65990
25716         * config/i386/i386.c (ix86_parse_stringop_strategy_string): Error out
25717         if rep_8byte stringop strategy was specified for 32-bit target.
25718
25719 2015-05-05  Ilya Tocar  <ilya.tocar@intel.com>
25720
25721         PR target/65915
25722         * config/i386/i386.md (vector convert to float spltiter): Check for
25723         xmm16+, when splitting scalar float conversion.
25724         * config/i386/sse.md (sse2_cvtsi2sd): Support EVEX version.
25725
25726 2015-05-05  Nick Clifton  <nickc@redhat.com>
25727
25728         * config/msp430/msp430-opts.h (enum msp430_regions): New.
25729         * config/msp430/msp430.c (msp430_override_options): Complain if
25730         -mcode-region or -mdata-region is used on a non MSP430X.
25731         (msp430_section_attr): New function.  Checks lower, upper and
25732         either attributes.
25733         (msp430_attribute_table): Add lower, upper and either.
25734         (gen_prefix): New function.  Generates a prefix for a section
25735         name.
25736         (msp430_select_section): New function - handles the choice of
25737         section for an object.  Takes into account memory region
25738         attributes and options.
25739         (msp430_function_section): Use gen_prefix.
25740         (TARGET_SECTION_TYPE_FLAGS): Define.
25741         (msp430_section_type_flags): New function.
25742         (TARGET_ASM_UNIQUE_SECTION): Define.
25743         (msp430_unique_section): New function.
25744         (msp430_output_aligned_decl_common): New function.
25745         (msp430_do_not_relax_short_jumps): New function.
25746         * config/msp430/msp430.h (USE_SELECT_SECTION_FOR_FUNCTIONS):
25747         Define.
25748         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
25749         * config/msp430/msp430-protos.h
25750         (msp430_do_not_relax_short_jumps): New prototype.
25751         (msp430_output_aligned_decl_common): New prototype.
25752         * config/msp430/msp430.md (length): New attribute.
25753         (cbranchhi4_real): If msp430_do_not_relax_short_jumps is true
25754         then use a long code sequence for short jumps.
25755         * config/msp430/msp430.opt (mcode-region): New.
25756         (mdata-region): New.
25757         * doc/invoke.texi: Document new options.
25758         * doc/extend.texi: Document new attributes.
25759
25760 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
25761
25762         * config/aarch64-protos.h (struct cpu_branch_cost): New.
25763         (tune_params): Add field branch_costs.
25764         (aarch64_branch_cost): Declare.
25765         * config/aarch64.c (generic_branch_cost): New.
25766         (generic_tunings): Set field cpu_branch_cost to generic_branch_cost.
25767         (cortexa53_tunings): Likewise.
25768         (cortexa57_tunings): Likewise.
25769         (thunderx_tunings): Likewise.
25770         (xgene1_tunings): Likewise.
25771         (aarch64_branch_cost): Define.
25772         * config/aarch64/aarch64.h (BRANCH_COST): Redefine.
25773
25774 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
25775
25776         * config/i386/i386.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1
25777         and HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1.
25778         * config/i386/i386.md: Ditto.
25779         * config/i386/winnt.c: Ditto.
25780
25781 2015-05-05  Matthew Wahab  <matthew.wahab@arm.com>
25782
25783         * doc/extend.texi (__atomic Builtins): Move implementation details
25784         to the end of the description, rewrite opening paragraphs, state
25785         difference with __sync builtins, state C11/C++11 assumptions,
25786         weaken itemized descriptions, add explanation of memory model
25787         behaviour, expand description of compare-exchange, simplify text.
25788
25789 2015-05-05  Renlin Li  <renlin.li@arm.com>
25790
25791         * config/aarch64/aarch64.md (add<mode>3): Use mov when allowed.
25792
25793 2015-05-05  Yvan Roux  <yvan.roux@linaro.org>
25794
25795         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define.
25796         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
25797         * config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define.
25798         (LINK_SPEC): Include CA53_ERR_843419_SPEC.
25799         * config/aarch64/aarch64.opt (mfix-cortex-a53-843419): New option.
25800         * configure: Regenerate.
25801         * configure.ac: Add --enable-fix-cortex-a53-843419 option.
25802         * doc/install.texi (aarch64*-*-*): Document new
25803         --enable-fix-cortex-a53-843419 option.
25804         * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-843419
25805         and -mno-fix-cortex-a53-843419 options.
25806
25807 2015-05-05  Uros Bizjak  <ubizjak@gmail.com>
25808
25809         PR target/65871
25810         * config/i386/i386.md (*bmi_andn_<mode>_ccno): New pattern.
25811
25812 2015-05-04  Jan Hubicka  <hubicka@ucw.cz>
25813
25814         * tree.c (verify_type): Check various uses of TYPE_MAXVAL;
25815         fix overactive TYPE_MIN_VALUE check and add FIXME for type
25816         compatibility problems.
25817
25818 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
25819
25820         * config/microblaze/microblaze.md (cbranchsi4): Added immediate
25821         constraints.
25822         (cbranchsi4_reg): New.
25823         * config/microblaze/microblaze.c
25824         (microblaze_expand_conditional_branch_reg): New.
25825         * config/microblaze/microblaze-protos.h
25826         (microblaze_expand_conditional_branch_reg): New prototype.
25827
25828 2015-05-04  Ajit Agarwal  <ajitkum@xilinx.com>
25829
25830         * config/microblaze/microblaze.md (peephole2): New.
25831
25832 2015-05-04  Jeff Law  <law@redhat.com>
25833
25834         Revert:
25835         2015-05-04  Jeff Law  <law@redhat.com>
25836
25837         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
25838         simplifier to narrow arithmetic.
25839         * generic-match-head.c: (types_match, single_use): New functions.
25840         * gimple-match-head.c: (types_match, single_use): New functions.
25841
25842 2015-05-04  Kaz Kojima  <kkojima@gcc.gnu.org>
25843
25844         PR target/65987
25845         * config/sh/sh.c (output_far_jump): Take into account crossing jumps.
25846         (split_branches): Likewise.
25847
25848 2015-05-04  Sandra Loosemore  <sandra@codesourcery.com>
25849
25850         * common.opt (fdelete-null-pointer-checks): Init to -1.
25851         * config/nios2/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define to
25852         override flag_delete_null_pointer_checks default.
25853         * doc/invoke.texi (-fdelete-null-pointer-checks): Clarify
25854         behavior re address zero.  Better document target-specific behavior.
25855         (-fisolate-errneous-paths-dereference): Mention relationship to
25856         -fdelete-null-pointer-checks.
25857
25858 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
25859
25860         PR tree-optimization/65984
25861         * ubsan.c: Include tree-cfg.h.
25862         (instrument_bool_enum_load): Use stmt_ends_bb_p instead of
25863         stmt_could_throw_p test, rename can_throw variable to ends_bb.
25864
25865 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
25866
25867         * config/i386/i386.c: Change GET_CODE (...) == CONST_DOUBLE check
25868         to CONST_DOUBLE_P predicate.
25869         (standard_sse_constant_p): Return 0 for !TARGET_SSE.
25870         (ix86_legitimate_constant_p) <case CONST_WIDE_INT>: For 32bit targets,
25871         allow only operands that satisfy standard_sse_constant_p predicate.
25872         * config/i386/i386.md: Change GET_CODE (...) == CONST_DOUBLE check
25873         to CONST_DOUBLE_P predicate.
25874
25875 2015-05-04  Jeff Law  <law@redhat.com>
25876
25877         * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
25878         simplifier to narrow arithmetic.
25879         * generic-match-head.c: (types_match, single_use): New functions.
25880         * gimple-match-head.c: (types_match, single_use): New functions.
25881
25882 2015-05-04  Andreas Tobler  <andreast@gcc.gnu.org>
25883
25884         * config/arm/arm.c: Restore bootstrap.
25885
25886 2015-05-04  Uros Bizjak  <ubizjak@gmail.com>
25887
25888         * config/i386/i386.h (TARGET_SUPPORTS_WIDE_INT): New define.
25889         * config/i386/i386.c (ix86_legitimate_constant_p): Handle TImode
25890         as CONST_WIDE_INT, not CONST_DOUBLE.
25891         (ix86_cannot_force_const_mem): Handle CONST_WIDE_INT.
25892         (output_pic_addr_const): Do not handle VOIDmode CONST_DOUBLEs.
25893         (ix86_find_base_term): Do not check for CONST_DOUBLE.
25894         (ix86_print_operand): Do not handle non-FPmode CONST_DOUBLEs.
25895         (ix86_build_signbit_mask): Rewrite using wide ints.
25896         (ix86_split_to_parts) [HOST_BITS_PER_WIDE_INT < 64]: Remove.
25897         (ix86_rtx_costs): Handle CONST_WIDE_INT.
25898         (find_constant): Ditto.
25899         * config/i386/i386.md (bts, btr, btc peepholes): Rewrite
25900         using gen_int_mode.
25901         * config/i386/predicates.md (x86_64_immediate_operand)
25902         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
25903         (x86_64_zext_immediate_operand): Remove CONST_DOUBLE handling.
25904         <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
25905         (const0_operand): Also match const_wide_int.
25906         (constm1_operand): Ditto.
25907         (const1_operand): Ditto.
25908
25909 2015-05-04  Richard Biener  <rguenther@suse.de>
25910
25911         PR tree-optimization/65965
25912         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
25913         store groups at gaps.
25914
25915 2015-05-04  Richard Biener  <rguenther@suse.de>
25916
25917         PR tree-optimization/65935
25918         * tree-vect-slp.c (vect_build_slp_tree): If we swapped operands
25919         then make sure to apply that swapping to the IL.
25920
25921 2015-05-04  Jakub Jelinek  <jakub@redhat.com>
25922
25923         * Makefile.in (PATCHLEVEL_c): New variable.
25924         (DATESTAMP_s, REVISION_s): If PATCHLEVEL_c is not 0,
25925         expand the same way as if DEVPHASE_c was non-empty.
25926
25927 2015-05-04  Kai Tietz  <ktietz@redhat.com>
25928
25929         PR target/65559
25930         * lto-wrapper.c (run_gcc): Open filename
25931         in binary-mode.
25932
25933 2015-05-03  Sandra Loosemore  <sandra@codesourcery.com>
25934
25935         * doc/extend.texi (Variable Attributes, Type Attributes):  Move
25936         sections up in file, to immediately after the Function Attributes
25937         section.
25938
25939 2015-05-02  Jan Hubicka  <hubicka@ucw.cz>
25940
25941         * tree.c (verify_type): Check various uses of TYPE_MINVAL.
25942
25943 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25944
25945         * tree-outof-ssa.c (emit_partition_copy): Return rtx_insn *.
25946         (insert_partition_copy_on_edge): Adjust.
25947         (insert_rtx_to_part_on_edge): Likewise.
25948         (insert_part_to_rtx_on_edge): Likewise.
25949
25950 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25951
25952         * function.c (set_return_jump_label): Change type of argument to
25953         rtx_insn *.
25954         * function.h (set_return_jump_label): Adjust.
25955
25956 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25957
25958         * reload.h (struct reg_equivs_t): Change type of init to
25959         rtx_insn *.
25960         * ira.c (fix_reg_equiv_init): Adjust.
25961         * reload1.c (eliminate_regs_1): Likewise.
25962         (init_eliminable_invariants): Likewise.
25963
25964 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25965
25966         * cselib.c (fp_setter_insn): Take a rtx_insn *.
25967         * cselib.h (fp_setter_insn): Adjust.
25968
25969 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25970
25971         * recog.c (struct validate_replace_src_data): Change type of
25972         insn field to rtx_insn *.
25973         (validate_replace_src_group): Change type of argument to rtx_insn *.
25974         * recog.h (validate_replace_src_group): Adjust.
25975
25976 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25977
25978         * haifa-sched.c: Change the type of some variables to rtx_insn *.
25979         * sched-deps.c: Likewise.
25980         * sched-int.h: Likewise.
25981         * sched-rgn.c: Likewise.
25982         * sel-sched.c: Likewise.
25983
25984 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25985
25986         to rtx_insn *.
25987         * config/i386/i386.c: Change the type of some arguments to
25988         rtx_insn *.
25989         * config/arm/arm.c: Likewise.
25990
25991 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25992
25993         * lra-constraints.c: Change type of some arguments to rtx_insn *.
25994
25995 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
25996
25997         * regcprop.c (kill_autoinc_value): Change type of argument to
25998         rtx_insn *.
25999
26000 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
26001
26002         * genrecog.c (print_subroutine): Adjust.
26003         * recog.c (get_bool_attr_mask_uncached): Likewise.
26004         * recog.h (struct recog_data_d): Change the type of insn to
26005         rtx_insn *.
26006
26007 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
26008
26009         * dwarf2cfi.c (add_cfi_insn): Change type to rtx_insn *.
26010
26011 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
26012
26013         * df-problems.c (df_set_note): Change type of argument to
26014         rtx_insn *.
26015
26016 2015-05-02  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
26017
26018         * builtins.c (expand_builtin_trap): Change type of local
26019         variable to rtx_insn *.
26020         (add_sched_insns_for_speculation): Likewise.
26021         (ix86_emit_save_regs): Likewise.
26022         (get_scratch_register_on_entry): Likewise.
26023         (ix86_emit_restore_reg_using_pop): Likewise.
26024         (ix86_emit_leave): Likewise.
26025         (ix86_emit_restore_regs_using_mov): Likewise.
26026         (ix86_expand_epilogue): Likewise.
26027         Likewise.
26028         (rl78_alloc_physical_registers_umul): Likewise.
26029         * cselib.c (discard_useless_locs): Likewise.
26030         (cselib_invalidate_regno): Likewise.
26031         (cselib_invalidate_mem): Likewise.
26032         * function.c (expand_function_start): Likewise.
26033         (emit_use_return_register_into_block): Likewise.
26034         * gcse.c: Likewise.
26035         * haifa-sched.c (ok_for_early_queue_removal): Likewise.
26036         * ifcvt.c (noce_get_alt_condition): Likewise.
26037         * loop-doloop.c (doloop_condition_get): Likewise.
26038         * lra-constraints.c (inherit_in_ebb): Likewise.
26039         * modulo-sched.c (sms_schedule_by_order): Likewise.
26040         * recog.c (next_insn_tests_no_inequality): Likewise.
26041         * reorg.c (emit_delay_sequence): Likewise.
26042         (update_reg_dead_notes): Likewise.
26043         (fix_reg_dead_note): Likewise.
26044         (fill_slots_from_thread): Likewise.
26045         (delete_computation): Likewise.
26046
26047 2015-05-01  Sandra Loosemore  <sandra@codesourcery.com>
26048
26049         * doc/extend.texi (Variable Attributes): Add menu and proper
26050         @nodes to subsections.  Move Microsoft Windows attributes to
26051         their own subsection.
26052         (Type Attributes): Reorganize introduction to remove duplicate
26053         list of attributes.  Add menu and proper @nodes to subsections.
26054         Alphabetize the main table of common attributes.
26055
26056 2015-05-01  Rasmus Villemoes  <rv@rasmusvillemoes.dk>
26057
26058         * match.pd: New simplification patterns.
26059         (x + (x & 1))  -> ((x + 1) & ~1)
26060         (x & ~(x & y)) -> ((x & ~y))
26061         (x | ~(x | y)) -> ((x | ~y))
26062
26063 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26064
26065         * target.def (attribute_table): Mention that struct attribute_spec
26066         is defined in tree-core.h rather than tree.h
26067         * doc/tm.texi: Regenerate.
26068
26069 2015-05-01  Richard Sandiford  <richard.sandiford@arm.com>
26070
26071         * genrecog.c (test): Rename to rtx_test.  Update rest of file
26072         accordingly.
26073
26074 2015-05-01  Andreas Schwab  <schwab@linux-m68k.org>
26075
26076         PR translation/65959
26077         * params.h (DEFPARAM): Rename msgid to nocmsgid.
26078
26079 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
26080
26081         * config/aarch64/aarch64-protos.h (tune_params):
26082         Add min_div_recip_mul_sf and min_div_recip_mul_df fields.
26083         * config/aarch64/aarch64.c (aarch64_min_divisions_for_recip_mul):
26084         Return value depending on target.
26085         (generic_tunings): Initialize new target settings.
26086         (cortexa53_tunings): Likewise.
26087         (cortexa57_tunings): Likewise.
26088         (thunderx_tunings): Likewise.
26089         (xgene1_tunings): Likewise.
26090
26091 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
26092
26093         * config/arm/aarch-cost-tables.h (cortexa53_extra_costs):
26094         Make Cortex-A53 shift costs more accurate.
26095
26096 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26097
26098         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle FLOAT and
26099         UNSIGNED_FLOAT.
26100
26101 2015-05-01  Wilco Dijkstra  <wdijkstr@arm.com>
26102
26103         * config/aarch64/aarch64.c (aarch64_rtx_costs):
26104         Calculate cost of op0 and op1 in PLUS and MINUS cases.
26105
26106 2015-05-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26107
26108         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
26109         Add cost of op0 in the compare-with-fpzero case.
26110
26111 2015-04-30  David Malcolm  <dmalcolm@redhat.com>
26112
26113         * builtins.c (fold_builtin_1): Remove spurious second
26114         semicolon.
26115         * cgraph.h (symtab_node::get_availability): Likewise.
26116         * opts.c (common_handle_option): Remove spurious second semicolon.
26117         * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
26118         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
26119
26120 2015-04-30  Caroline Tice  <cmtice@google.com>
26121
26122         PR gcov-profile/65929
26123         * config/elfos.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro definition.
26124         (ASM_DECLARE_COLD_FUNCTION_SIZE): New macro definition.
26125         * doc/tm.texi.in (ASM_DECLARE_COLD_FUNCTION_NAME): Document new macro.
26126         (ASM_DECLARE_COLD_FUNCTION_SIZE): Document new macro.
26127         * doc/tm.texi: Regenerate.
26128         * final.c (final_scan_insn):  Use ASM_DECLARE_COLD_FUNCTION_NAME
26129         instead of ASM_DECLARE_FUNCTION_NAME for cold partition name.
26130         * varasm.c (assemble_end_function):  Use ASM_DECLARE_COLD_FUNCTION_SIZE
26131         instead of ASM_DECLARE_FUNCTION_SIZE for cold partition size.
26132
26133 2015-04-30  Marek Polacek  <polacek@redhat.com>
26134
26135         * varasm.c (handle_cache_entry): Fix logic.
26136
26137 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26138
26139         * config/aarch64/aarch64.md (*extr<mode>5_insn_alt): New pattern.
26140         (*extrsi5_insn_uxtw_alt): Likewise.
26141         * config/aarch64/aarch64.c (aarch64_extr_rtx_p): New function.
26142         (aarch64_rtx_costs, IOR case): Use above to properly cost extr
26143         operations.
26144
26145 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26146
26147         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle pattern for
26148         fabd in ABS case.
26149
26150 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26151
26152         * config/aarch64/aarch64.md
26153         (*eor_one_cmpl_<SHIFT:optab><mode>3_alt): New pattern.
26154         (*eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
26155         * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle MVN-shift
26156         appropriately.  Handle alternative EON form.
26157
26158 2015-04-30  Renlin Li  <renlin.li@arm.com>
26159
26160         * config/aarch64/aarch64-simd.md (vec_shr): Defined as an unspec.
26161         * config/aarch64/iterators.md (unspec): Add UNSPEC_VEC_SHR.
26162
26163 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
26164
26165         PR ipa/65873
26166         * ipa-inline.c (can_inline_edge_p): It is safe to inline across
26167         -fstrict-aliasing boundaries.
26168
26169 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26170
26171         * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Handle MNEG
26172         and [SU]MNEGL patterns.
26173
26174 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26175
26176         * config/aarch64/aarch64.c (aarch64_shift_p): New function.
26177         (aarch64_rtx_mult_cost): Update comment to reflect that it also handles
26178         combined arithmetic-shift ops.  Properly handle all shift and extend
26179         operations that can occur in combination with PLUS/MINUS.
26180         Rename maybe_fma to compound_p.
26181         (aarch64_rtx_costs): Use aarch64_shift_p when costing compound
26182         arithmetic and shift operations.
26183
26184 2015-04-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26185
26186         * config/aarch64/aarch64.c (aarch64_rtx_costs): Use extend_arith
26187         rather than arith_shift cost when costing ADD/MINUS of an
26188         extended value.
26189
26190 2015-04-30  Jan Hubicka  <hubicka@ucw.cz>
26191
26192         PR lto/65948
26193         * ipa-devirt.c (odr_types_equivalent_p): NULLPTR_TYPE is equivalent
26194         to itself.
26195
26196 2015-04-30  Richard Sandiford  <richard.sandiford@arm.com>
26197
26198         * genrecog.c (simplify_tests): Check that CONST_INT and XWINT tests
26199         are for the same position.
26200
26201 2015-04-29  Aditya Kumar  <hiraditya@hotmail.com>
26202
26203         * tree-vectorizer.c (set_uid_loop_bbs): New.  Factored out of
26204         vectorize_loops.
26205         (vectorize_loops): Use it.
26206
26207 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
26208
26209         * ipa-devirt.c (odr_subtypes_equivalent_p): Compare TYPE_NAME only
26210         for aggregate types.
26211         (register_odr_type): Be ready for MAIN_VARIANT of ODR type
26212         type to be non_ODR.
26213         * tree.c (need_assembler_name_p): Compute mangled name for
26214         non-fundamental types and integer types.
26215
26216 2015-04-29  Mikhail Maltsev  <maltsevm@gmail.com>
26217
26218         * dojump.c (do_compare_rtx_and_jump): Use std::swap instead of
26219         manual swaps.
26220         * expr.c (expand_expr_real_2): Likewise.
26221
26222 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
26223
26224         * tree.c (build_common_builtin_nodes): Do not build
26225         __builtin_alloca_with_align as equivalent of library alloca.
26226
26227 2015-04-29  Jan Hubicka  <hubicka@ucw.cz>
26228
26229         * dwarf2out.c (gen_type_die_with_usage): Call verify_type.
26230         * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Do not produce
26231         bugus variants.
26232         * tree.c: Include print-tree.h and ipa-utils.h
26233         (free_lang_data_in_type): Clear TYPE_VFIELD leaked by C FE.
26234         (free_lang_data_in_cgraph): Call verify_type.
26235         (verify_type_variant): New function.
26236         (verify_type): New function.
26237         * tree.h (verify_type): Declare.
26238
26239 2015-04-29  Steve Ellcey  <sellcey@imgtec.com>
26240
26241         * config/mips/mips-cpus.def: (mips4): Change default processor
26242         from PROCESSOR_R8000 to PROCESSOR_R10000.
26243
26244 2015-04-29  Petar Jovanovic  <petar.jovanovic@rt-rk.com>
26245
26246         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Fix the macro to use
26247         la/jalr instead of jal.
26248
26249 2015-04-29  Uros Bizjak  <ubizjak@gmail.com>
26250
26251         PR target/65871
26252         * config/i386/i386.md (*bmi_bextr_<mode>_ccz): New pattern.
26253         (*bmi2_bzhi_<mode>3_1_ccz): Ditto.
26254         (setcc+movzbl peephole2): Check also clobbered reg.
26255         (setcc+andl peephole2): Ditto.
26256
26257 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
26258
26259         PR libgomp/65099
26260         * config/nvptx/mkoffload.c (target_ilp32): New variable.
26261         (main): Set it depending on "-foffload-abi=[...]".
26262         (compile_native, main): Use it to pass "-m32" or "-m64" to the
26263         compiler.
26264
26265 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
26266
26267         PR target/65770
26268         * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>,
26269         vec_store_lanesci_lane<mode>, vec_store_lanesxi_lane<mode>):
26270         Flip lane index back at assembly time for bigendian.
26271
26272 2015-04-29  Thomas Schwinge  <thomas@codesourcery.com>
26273
26274         * tree.h (OMP_STANDALONE_CLAUSES): New macro.
26275         * gimplify.c (gimplify_omp_workshare): Use it.
26276
26277 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
26278
26279         * Makefile.in (build/genrecog.o): Depend on inchash.h.
26280         (build/genrecog$(build_exeext): Depend on build/hash-table.o and
26281         build/inchash.o
26282         * genrecog.c: Rewrite most of the code except for the third page.
26283
26284 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
26285
26286         * inchash.h, inchash.c: Include bconfig.h for build objects.
26287         * Makefile.in (build/inchash.o): New rule.
26288
26289 2015-04-29  Yvan Roux  <yvan.roux@linaro.org>
26290
26291         PR target/65924
26292         * config/arm/thumb2.md (*thumb2_addsi3_compare0_scratch): Fix operand
26293         number in type attribute expression.
26294
26295 2015-04-29  Richard Sandiford  <richard.sandiford@arm.com>
26296
26297         * loop-iv.c (canon_condition): Generalize to all types of integer
26298         constant.
26299
26300 2015-04-29  Bernhard Reuther-Fischer  <aldot@gcc.gnu.org>
26301
26302         * gimple-walk.c: Prune duplicate or unneeded includes.
26303         (walk_gimple_asm): Only call parse_input_constraint or
26304         parse_output_constraint if their findings are used.
26305         Honour parse_input_constraint and parse_output_constraint
26306         result.
26307
26308 2015-04-29  Alan Lawrence  <alan.lawrence@arm.com>
26309
26310         * config/arm/neon.md (vec_shl<mode>, vec_shr<mode>): Remove.
26311
26312 2015-04-29  Tom de Vries  <tom@codesourcery.com>
26313
26314         PR tree-optimization/65893
26315         * passes.def (pass_all_optimizations): Move pass_stdarg to after
26316         pass_dce.
26317
26318 2015-04-29  Richard Biener  <rguenther@suse.de>
26319
26320         * tree-vect-data-refs.c (vect_analyze_group_access): Properly
26321         compute GROUP_SIZE for basic-block SLP.
26322         * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Properly
26323         take into account gaps.
26324         (vect_get_mask_element): Properly reject references to previous
26325         vectors.
26326         (vect_transform_slp_perm_load): Likewise.
26327
26328 2015-04-29  Christian Bruel  <christian.bruel@st.com>
26329
26330         PR target/64835
26331         * config/i386/i386.c (ix86_default_align): New function.
26332         (ix86_override_options_after_change): Call ix86_default_align.
26333         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New hook.
26334         (ix86_override_options_after_change): New function.
26335
26336 2015-04-28  Jeff Law  <law@redhat.com>
26337
26338         * tree-ssa-dom.c (record_equality); Fix comment typos.
26339
26340 2015-04-28  Tom de Vries  <tom@codesourcery.com>
26341
26342         PR tree-optimization/65887
26343         * gimplify.c (gimplify_modify_expr): Remove ifn_va_arg ap fixup.
26344
26345 2015-04-28  Sandra Loosemore  <sandra@codesourcery.com>
26346
26347         * doc/extend.texi (Declaring Attributes of Functions): Split into
26348         subsections by target.  Alphabetize the table of common attributes.
26349         Rewrite some of the introductory text to reflect the new structure.
26350         Update some cross-references to point to the new subsections.
26351         (Attribute Syntax): Put paragraph about "__" naming here.  Remove
26352         duplicate copies in the discussion of function, label, and type
26353         attributes.
26354
26355 2015-04-28  Dominique d'Humieres  <dominiq@lps.ens.fr>
26356
26357         PR bootstrap/65910
26358         * varasm.c (assemble_end_function): Guard ASM_DECLARE_FUNCTION_SIZE.
26359
26360 2015-04-28  Jason Merrill  <jason@redhat.com>
26361
26362         PR c++/65734
26363         * stor-layout.c (layout_type): Layout the TYPE_MAIN_VARIANT.
26364         (finalize_type_size): Respect TYPE_USER_ALIGN.
26365         (layout_type) [ARRAY_TYPE]: Likewise.
26366
26367 2015-04-28  Yvan Roux  <yvan.roux@linaro.org>
26368
26369         * config/arm/arm.md (*arm_movt): Fix type attribute.
26370         (*cmpsi_shiftsi): Likewise.
26371         (*cmpsi_shiftsi_swp): Likewise.
26372         (*movsicc_insn): Likewise.
26373         (*cond_move): Likewise.
26374         (*if_plus_move): Likewise.
26375         (*if_move_plus): Likewise.
26376         (*if_arith_move): Likewise.
26377         (*if_move_arith): Likewise.
26378         (*if_shift_move): Likewise.
26379         (*if_move_shift): Likewise.
26380         (*arm_movtas_ze): Likewise.
26381         * config/arm/thumb2.md (*thumb2_movsicc_insn): Fix alternative
26382         redundancy and type attribute.
26383         (*thumb2_movsi_insn): Fix type attribute.
26384         (*thumb2_addsi_short): Likewise.
26385         (thumb2_addsi3_compare0): Likewise.
26386         (*thumb2_addsi3_compare0_scratch): Merge alternatives and fix
26387         attributes accordingly.
26388
26389 2015-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
26390
26391         PR other/65911
26392         * function.c (pad_to_arg_alignment): Add parentheses.
26393
26394 2015-04-28  Uros Bizjak  <ubizjak@gmail.com>
26395
26396         * config/frv/frv.h (CRT_GET_RFIB_DATA): Move definition to
26397         libgcc/config/frv/elf-lib.h.
26398
26399 2015-04-28  Tom de Vries  <tom@codesourcery.com>
26400
26401         * tree-call-cdce.c: Fix example in header comment.
26402
26403 2015-04-28  Richard Biener  <rguenther@suse.de>
26404
26405         PR tree-optimization/62283
26406         * tree-vect-slp.c (vect_build_slp_tree): When the SLP build
26407         fails fatally and we are vectorizing a basic-block simply
26408         cause the child to be constructed piecewise.
26409         (vect_analyze_slp_cost_1): Adjust.
26410         (vect_detect_hybrid_slp_stmts): Likewise.
26411         (vect_bb_slp_scalar_cost): Likewise.
26412         (vect_get_constant_vectors): For piecewise constructed
26413         constants place them after the last def.
26414         (vect_get_slp_defs): Adjust.
26415         * tree-vect-stmts.c (vect_is_simple_use): Detect in-BB
26416         externals for basic-block vectorization.
26417
26418 2015-04-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
26419
26420         PR target/63503
26421         * config.gcc: Add cortex-a57-fma-steering.o to extra_objs for
26422         aarch64-*-*.
26423         * config/aarch64/t-aarch64: Add a rule for cortex-a57-fma-steering.o.
26424         * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Define.
26425         (AARCH64_TUNE_FMA_STEERING): Likewise.
26426         * config/aarch64/aarch64-cores.def: Set
26427         AARCH64_FL_USE_FMA_STEERING_PASS for cores with dynamic steering of
26428         FMUL/FMADD instructions.
26429         * config/aarch64/aarch64.c (aarch64_register_fma_steering): Declare.
26430         (aarch64_override_options): Include cortex-a57-fma-steering.h.  Call
26431         aarch64_register_fma_steering () if AARCH64_TUNE_FMA_STEERING is true.
26432         * config/aarch64/cortex-a57-fma-steering.h: New file.
26433         * config/aarch64/cortex-a57-fma-steering.c: Likewise.
26434
26435 2015-04-28  Richard Sandiford  <richard.sandiford@arm.com>
26436
26437         * gensupport.c (std_preds): Add missing codes to address_operand entry.
26438
26439 2015-04-28  Richard Biener  <rguenther@suse.de>
26440
26441         PR tree-optimization/65851
26442         * tree-ssa-ccp.c (set_lattice_value): Perform a meet when
26443         changing CONSTANT to CONSTANT non-copy.  Get new_val by reference.
26444         (ccp_lattice_meet): Remove stray argument.  Use operand_equal_p
26445         rather than simple_cst_equal as the latter doesn't handle COMPLEX_CST.
26446         (ccp_visit_phi_node): Adjust.
26447         (evaluate_stmt): For simplifications to SSA names return its
26448         lattice value if that isn't VARYING.  Return immediately when
26449         simplified to a constant.
26450         (visit_assignment): Adjust.
26451         (ccp_visit_stmt): Likewise.
26452
26453 2015-04-28  Tom de Vries  <tom@codesourcery.com>
26454
26455         PR tree-optimization/65818
26456         * tree-stdarg.c (expand_ifn_va_arg_1): Ensure that side-effects are
26457         evaluated.
26458
26459 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
26460
26461         * calls.c (save_fixed_argument_area): Don't check
26462         ARGS_GROW_DOWNWARD with the preprocessor.
26463         (restore_fixed_argument_area): Likewise.
26464         (mem_overlaps_already_clobbered_arg_p): Likewise.
26465         (check_sibcall_argument_overlap): Likewise.
26466         (expand_call): Likewise.
26467         (emit_library_call_value_1): Likewise.
26468         (store_one_arg): Likewise.
26469         * function.c (assign_parms): Likewise.
26470         (locate_and_pad_parm): Likewise.
26471         (pad_to_arg_alignment): Likewise.
26472         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
26473
26474 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
26475
26476         * config/pa/pa.h (ARGS_GROW_DOWNWARD): Define to 1.
26477         * defaults.h (ARGS_GROW_DOWNWARD): Define it to 0 by default.
26478         * calls.c (save_fixed_argument_area): Don't chekc if
26479         ARGS_GROW_DOWNWARD is defined.
26480         (restore_fixed_argument_area): Likewise.
26481         (mem_overlaps_already_clobbered_arg_p): Likewise.
26482         (check_sibcall_argument_overlap): Likewise.
26483         (expand_call): Likewise.
26484         (emit_library_call_value_1): Likewise.
26485         (store_one_arg): Likewise.
26486         * function.c (assign_parms): Likewise.
26487         (locate_and_pad_parm): Likewise.
26488         (pad_to_arg_alignment): Likewise.
26489         * targhooks.c (std_gimplify_va_arg_expr): Likewise.
26490
26491 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
26492
26493         * defaults.h (gen_epilogue): New function.
26494         * alias.c (init_alias_analysis): don't check if HAVE_epilogue is
26495         defined.
26496         * cfgrtl.c (cfg_layout_finalize): Likewise.
26497         * df-scan.c: Likewise.
26498         * function.c (thread_prologue_and_epilogue_insns): Likewise.
26499         (reposition_prologue_and_epilogue_notes): Likewise.
26500         * reorg.c (find_end_label): Likewise.
26501         * toplev.c: Likewise.
26502
26503 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
26504
26505         * bb-reorder.c (HAVE_return): Don't check if its undefined.
26506         * defaults.h (gen_simple_return): New function.
26507         (gen_simple_return): Likewise.
26508         (HAVE_return): Add default definition to false.
26509         (HAVE_simple_return): Likewise.
26510         * cfgrtl.c (force_nonfallthru_and_redirect): Remove checks if
26511         HAVE_return and HAVE_simple_return are defined.
26512         * function.c (gen_return_pattern): Likewise.
26513         (convert_jumps_to_returns): Likewise.
26514         (thread_prologue_and_epilogue_insns): Likewise.
26515         * reorg.c (find_end_label): Likewise.
26516         (dbr_schedule): Likewise.
26517         * shrink-wrap.c: Likewise.
26518         * shrink-wrap.h: Likewise.
26519
26520 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
26521
26522         * defaults.h (EPILOGUE_USES): Add default definition of false.
26523         * df-scan.c (EPILOGUE_USES): Remove check if its undefined.
26524         * resource.c (init_resource_info): Likewise.
26525
26526 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
26527
26528         * defaults.h (PCC_BITFIELD_TYPE_MATTERS): Add default definition
26529         to false.
26530         * dwarf2out.c (field_byte_offset): REmove check if
26531         PCC_BITFIELD_TYPE_MATTERS is defined.
26532         * stor-layout.c (layout_decl): Likewise.
26533         (update_alignment_for_field): Likewise.
26534         (place_field): Likewise.
26535
26536 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
26537
26538         * defaults.h (HARD_REGNO_RENAME_OK): Add default definition to
26539         true.
26540         * regrename.c (check_new_reg_p): Remove check if
26541         HARD_REGNO_RENAME_OK is defined.
26542         * sel-sched.c (sel_hard_regno_rename_ok): Likewise.
26543
26544 2015-04-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
26545
26546         * calls.c (prepare_call_address): Remove ifdef NO_FUNCTION_CSE.
26547         * cse.c (fold_rtx): Likewise.
26548         * config/alpha/alpha.h (NO_FUNCTION_CSE): Define to 1.
26549         * config/arc/arc.h (NO_FUNCTION_CSE): Likewise.
26550         * config/avr/avr.h (NO_FUNCTION_CSE): Likewise.
26551         * config/cr16/cr16.h (NO_FUNCTION_CSE): Likewise.
26552         * config/epiphany/epiphany.h (NO_FUNCTION_CSE): Likewise.
26553         * config/frv/frv.h (NO_FUNCTION_CSE): Likewise.
26554         * config/h8300/h8300.h (NO_FUNCTION_CSE): Likewise.
26555         * config/i386/i386.h (NO_FUNCTION_CSE): Likewise.
26556         * config/ia64/ia64.h (NO_FUNCTION_CSE): Likewise.
26557         * config/lm32/lm32.h (enum reg_class) (NO_FUNCTION_CSE):
26558         * Likewise.
26559         * config/m32r/m32r.h (NO_FUNCTION_CSE): Likewise.
26560         * config/mep/mep.h (NO_FUNCTION_CSE): Likewise.
26561         * config/mn10300/mn10300.h (NO_FUNCTION_CSE): Likewise.
26562         * config/nds32/nds32.h (NO_FUNCTION_CSE): Likewise.
26563         * config/nios2/nios2.h (NO_FUNCTION_CSE): Likewise.
26564         * config/pa/pa.h (NO_FUNCTION_CSE): Likewise.
26565         * config/rs6000/rs6000.h (NO_FUNCTION_CSE): Likewise.
26566         * config/s390/s390.h (NO_FUNCTION_CSE): Likewise.
26567         * config/sparc/sparc.h (NO_FUNCTION_CSE): Likewise.
26568         * config/spu/spu.h (NO_FUNCTION_CSE): Likewise.
26569         * config/stormy16/stormy16.h (NO_FUNCTION_CSE): Likewise.
26570         * config/v850/v850.h (NO_FUNCTION_CSE): Likewise.
26571         * defaults.h (NO_FUNCTION_CSE): Provide default definition to 0.
26572         * doc/tm.texi: Regenerate.
26573         * doc/tm.texi.in: Document NO_FUNCTION_CSE is always defined to
26574         either true or false.
26575
26576 2015-04-27  Jeff Law  <law@redhat.com>
26577
26578         PR tree-optimization/65217
26579         * tree-ssa-dom.c (record_equality): Given two SSA_NAMEs, if just one
26580         of them has a single use, make sure it is the LHS of the implied
26581         copy.
26582
26583 2015-04-28  Alan Modra  <amodra@gmail.com>
26584
26585         PR target/65810
26586         * config/rs6000/rs6000.c (POWERPC64_TOC_POINTER_ALIGNMENT): Define.
26587         (offsettable_ok_by_alignment): Use minimum of decl and toc
26588         pointer alignment.  Replace dead code with assertion.
26589         (use_toc_relative_ref): Add mode arg.  Return false in -mcmodel=medium
26590         case if size exceeds toc pointer alignment.
26591         (rs6000_legitimize_reload_address): Update use_toc_relative_ref call.
26592         (rs6000_emit_move): Likewise.
26593         * configure.ac: Add linker toc pointer alignment check.
26594         * configure: Regenerate.
26595         * config.in: Regenerate.
26596
26597 2015-04-27  Yoshinori Sato <ysato@users.sourceforge.jp>
26598
26599         * config.gcc: Add h8300-*-linux.
26600         * config/h8300/linux.h: New.
26601         * config/h8300/t-linux: New.
26602         * config/h8300/h8300.c (h8300_option_override): Normal mode
26603         is not supported for h8300-*-linux.
26604         (h8300_file_start): Target priority change.
26605         (get_shift_alg): Likewise.
26606         (h8300_shift_need_scratch_p): Likewise.
26607         * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise.
26608         * config/h8300/h8300.md (define_peephole2): Remove duplicate condition.
26609
26610 2015-04-27  Caroline Tice  <cmtice@google.com>
26611
26612         * final.c (final_scan_insn):  Output cold_function_name as function
26613         type.
26614         * varasm.c (cold_function_name):  Make global.
26615         (assemble_start_function):  Re-set cold_function_name.
26616         (assemble_end_function): Output cold partition size.
26617         * varasm.h (cold_function_name):  Declare global.
26618
26619 2015-04-27  Ilya Tocar  <ilya.tocar@intel.com>
26620
26621         * config/i386/i386.h (EXT_REX_SSE_REG_P): New.
26622         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Use "v"
26623         constraint.
26624         (*movxi_internal_avx512f): Ditto.
26625         (define_split): Check for xmm16+, when splitting scalar float_extend.
26626         (*extendsfdf2_mixed): Use "v" constraint.
26627         (define_split): Check for xmm16+, when splitting scalar float_truncate.
26628         (*truncdfsf_fast_sse): Use "v" constraint.
26629         (fix_trunc<MODEF:mode><SWI48:mode>_sse): Ditto.
26630         (*float<SWI48:mode><MODEF:mode>2_sse): Ditto.
26631         (define_peephole2): Check for xmm16+, when converting scalar
26632         float_truncate.
26633         (define_peephole2): Check for xmm16+, when converting scalar
26634         float_extend.
26635         (*fop_<mode>_comm_mixed): Use "v" constraint.
26636         (*fop_<mode>_comm_sse): Ditto.
26637         (*fop_<mode>_1_mixed): Ditto.
26638         (*sqrt<mode>2_sse): Ditto.
26639         (*ieee_s<ieee_maxmin><mode>3): Ditto.
26640
26641 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26642
26643         * combine.c (simplify_if_then_else): Use std::swap instead
26644         of manually swapping.
26645         (known_cond): Likewise.
26646         (simplify_comparison): Likewise.
26647
26648 2015-04-27  Peter Bergner  <bergner@vnet.ibm.com>
26649
26650         PR target/64579
26651         * config/rs6000/htm.md: Remove all define_expands.
26652         (UNSPECV_HTM_TABORTDC, UNSPECV_HTM_TABORTDCI, UNSPECV_HTM_TABORTWC,
26653         UNSPECV_HTM_TABORTWCI): Remove.
26654         (UNSPECV_HTM_TABORTXC, UNSPECV_HTM_TABORTXCI, UNSPECV_HTM_TTEST): New.
26655         (tabort_internal, tbegin_internal, tcheck_internal, tend_internal,
26656         trechkpt_internal, treclaim_internal, tsr_internal): Rename from this...
26657         (tabort, tbegin, tcheck, tend, trechkpt, treclaim, tsr): ...to this.
26658         (tabortdc_internal, tabortdci_internal, tabortwc_internal,
26659         tabortwci_internal): Remove define_insns.
26660         (tabort<wd>c, tabort<wd>ci): New define_insns.
26661         (tabort): Use gpc_reg_operand.
26662         (tcheck): Remove operand.
26663         (htm_mfspr_<mode>, htm_mtspr_<mode>): Use GPR mode macro.
26664         * config/rs6000/htmxlintrin.h (__TM_end): Use _HTM_TRANSACTIONAL as
26665         expected value.
26666         * config/rs6000/rs6000-builtin.def (BU_HTM_SPR0): Remove.
26667         (BU_HTM_SPR1): Rename to BU_HTM_V1.  Remove use of RS6000_BTC_SPR.
26668         (tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin,
26669         tcheck, tend, tendall, trechkpt, treclaim, tresume, tsuspend,
26670         tsr, ttest): Pass in the RS6000_BTC_CR attribute.
26671         (get_tfhar, set_tfhar, get_tfiar, set_tfiar, get_texasr, set_texasr,
26672         get_texasru, set_texasru): Pass in the RS6000_BTC_SPR attribute.
26673         (tcheck): Remove builtin argument.
26674         * config/rs6000/rs6000.c (rs6000_htm_spr_icode): Use TARGET_POWERPC64
26675         not TARGET_64BIT.
26676         (htm_expand_builtin): Fix usage of expandedp.  Disallow usage of the
26677         tabortdc and tabortdci builtins when not in 64-bit mode.
26678         Modify code to handle the loss of the HTM define_expands.
26679         Emit code to copy the CR register to TARGET.
26680         (htm_init_builtins): Modify code to handle the loss of the HTM
26681         define_expands.
26682         * config/rs6000/rs6000.h (RS6000_BTC_32BIT): Delete.
26683         (RS6000_BTC_64BIT): Likewise.
26684         (RS6000_BTC_CR): New macro.
26685         * doc/extend.texi: Update documentation for htm builtins.
26686
26687 2015-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26688
26689         * simplify-rtx.c (simplify_gen_binary): Use std::swap instead
26690         of manually swapping.
26691         (simplify_associative_operation): Likewise.
26692         (simplify_binary_operation): Likewise.
26693         (simplify_plus_minus): Likewise.
26694         (simplify_relational_operation): Likewise.
26695         (simplify_ternary_operation): Likewise.
26696
26697 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
26698
26699         * config/stormy16/predicates.md (xs_hi_general_operand): Delete.
26700         (xs_hi_nonmemory_operand): Remove error.
26701         * config/stormy16/stormy16.md (movhi, movhi_internal): Use
26702         general_operand rather than xs_hi_general_operand.
26703
26704 2015-04-27  Richard Biener  <rguenther@suse.de>
26705
26706         * tree-ssa-dom.c (record_equivalences_from_phis): Valueize PHI arg.
26707         (record_equivalences_from_stmt): Valueize rhs.
26708         (record_equality): Canonicalize x and y order via
26709         tree_swap_operands_p.  Do not swap operands for same loop depth.
26710
26711 2015-04-27  Georg-Johann Lay  <avr@gjlay.de>
26712
26713         PR target/65296
26714         PR target/65895
26715         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Close file.
26716         Add hint how to use own spec file.
26717
26718 2015-04-27  Jakub Jelinek  <jakub@redhat.com>
26719
26720         PR tree-optimization/65875
26721         * tree-vrp.c (update_value_range): If in is_new case setting
26722         old_vr to VR_VARYING, also set new_vr to it.  Remove
26723         old_vr->type == VR_VARYING test.
26724         (vrp_visit_phi_node): Return SSA_PROP_VARYING instead of
26725         SSA_PROP_INTERESTING if update_value_range returned true,
26726         but new range is VR_VARYING.
26727
26728 2015-04-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
26729
26730         * combine.c (sign_extend_short_imm): New.
26731         (set_nonzero_bits_and_sign_copies): Use above new function for sign
26732         extension of src short immediate.
26733         (reg_nonzero_bits_for_combine): Likewise for tem.
26734
26735 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
26736
26737         * stor-layout.c (self_referential_component_ref_p): New predicate.
26738         (copy_self_referential_tree_r): Use it.
26739         (self_referential_size): Punt for simple operations directly involving
26740         self-referential component references.
26741         * tree-cfg.c (dump_function_to_file): Add missing final curly bracket.
26742
26743 2015-04-27  Eric Botcazou  <ebotcazou@adacore.com>
26744
26745         * ipa-icf.c (icf_handled_component_p): Remove redundant tests.
26746
26747 2015-04-27  Richard Sandiford  <richard.sandiford@arm.com>
26748
26749         * vec.h (vec): Make splice arguments const.  Update definitions
26750         accordingly.
26751
26752 2015-04-27  Yvan Roux  <yvan.roux@linaro.org>
26753
26754         * config/arm/arm.md (*arm_subsi3_insn): Fixed redundant
26755         alternatives.
26756
26757 2015-04-26  Tom de Vries  <tom@codesourcery.com>
26758
26759         PR tree-optimization/65826
26760         * internal-fn.def: Mark VA_ARG with ECF_LEAF.
26761
26762 2015-04-24  Steve Ellcey  <sellcey@imgtec.com>
26763
26764         * config/mips/mips.md: (*madd4<mode>) Remove accum_in attribute.
26765         (*madd3<mode>): Ditto.
26766         (*msub4<mode>): Ditto.
26767         (*msub3<mode>): Ditto.
26768         (*nmadd4<mode>): Ditto.
26769         (*nmadd3<mode>): Ditto.
26770         (*nmadd4<mode>_fastmath): Ditto.
26771         (*nmadd3<mode>_fastmath): Ditto.
26772         (*nmsub4<mode>): Ditto.
26773         (*nmsub3<mode>): Ditto.
26774         (*nmsub4<mode>_fastmath): Ditto.
26775         (*nmsub3<mode>_fastmath): Ditto.
26776
26777 2015-04-24  Jason Merrill  <jason@redhat.com>
26778
26779         PR c++/50800
26780         * tree.c (build_reference_type_for_mode): Don't pass can_alias_all
26781         down when building TYPE_CANONICAL.
26782         (build_pointer_type_for_mode): Likewise.
26783
26784 2015-04-24  Chen Gang  <gang.chen.5i5j@gmail.com>
26785
26786         * genrecog.c (validate_pattern): Check matching constraint refers
26787         to a lower numbered operand.
26788
26789 2015-04-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
26790
26791         PR target/65849
26792         * config/rs6000/rs6000.opt (-mvsx-align-128): Make options that
26793         save to independent variables use the Save attribute.  This will
26794         allow these options to be modified with the #pragma/attribute
26795         target support.
26796         (-mallow-movmisalign): Likewise.
26797         (-mallow-df-permute): Likewise.
26798         (-msched-groups): Likewise.
26799         (-malways-hint): Likewise.
26800         (-malign-branch-targets): Likewise.
26801         (-mvectorize-builtins): Likewise.
26802         (-msave-toc-indirect): Likewise.
26803
26804         * config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that
26805         can be set via the #pragma/attribute target support.
26806         (rs6000_opt_vars): Likewise.
26807         (rs6000_inner_target_options): If VSX was set, also set
26808         -mno-avoid-indexed-addresses.
26809
26810 2015-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26811
26812         * config/arm/iterators.md (shiftable_ops): Rename to...
26813         (SHIFTABLE_OPS): ... This.  Update use in comments.
26814         (ior_xor): Rename to...
26815         (IOR_XOR): ... This.
26816         (vqh_ops): Rename to...
26817         (VQH_OPS): ... This.
26818         (vqhs_ops): Rename to...
26819         (VQHS_OPS): ... This.
26820         (rshifts): Rename to...
26821         (RSHIFTS): ... This.
26822         (returns): Rename to...
26823         (RETURNS): ... This.
26824         * config/arm/arm.md: Update uses of the above.
26825         * config/arm/neon.md: Likewise.
26826
26827 2014-04-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26828
26829         * config.host (case ${host}): Add aarch64*-*-linux case.
26830         * config/aarch64/aarch64-cores.def: Add IMPLEMENTER_ID and PART_NUMBER
26831         fields to all the cores.
26832         * config/aarch64/aarch64-elf.h (DRIVER_SELF_SPECS):
26833         Add MCPU_MTUNE_NATIVE_SPECS.
26834         * config/aarch64/aarch64-option-extensions.def: Add FEATURE_STRING
26835         field to all extensions.
26836         * config/aarch64/aarch64-opts.h: Adjust definition of AARCH64_CORE.
26837         * config/aarch64/aarch64.c: Adjust definition of AARCH64_CORE.
26838         Adjust definition of AARCH64_OPT_EXTENSION.
26839         * config/aarch64/aarch64.h: Adjust definition of AARCH64_CORE.
26840         (MCPU_MTUNE_NATIVE_SPECS): Define.
26841         * config/aarch64/driver-aarch64.c: New file.
26842         * config/aarch64/x-arch64: New file.
26843         * doc/invoke.texi (AArch64 Options): Document native value for -mcpu,
26844         -mtune and -march.
26845
26846 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
26847             Wei Mi  <wmi@google.com>
26848
26849         * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple): New.
26850         * config/i386/i386.c (extract_base_offset_in_addr): New function.
26851         (ix86_operands_ok_for_move_multiple): Ditto.
26852         * config/i386/sse.md (movsd/movhpd to movupd peephole2): New pattern.
26853         (movlpd/movhpd to movupd peephole2): Ditto.
26854
26855 2015-04-24  Marek Polacek  <polacek@redhat.com>
26856
26857         PR c/61534
26858         * input.h (from_macro_expansion_at): Define.
26859
26860         PR c/63357
26861         * doc/invoke.texi: Update description of -Wlogical-op.
26862
26863 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
26864
26865         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): fix
26866         ternary operator in fprintf and harmonize spacing.
26867
26868 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
26869
26870         * config/i386/sse.md (*vec_widen_smult_even_v8si<mask_name>):
26871         Mark operand1 commutative.
26872
26873 2015-04-24  Uros Bizjak  <ubizjak@gmail.com>
26874
26875         * config/i386/sse.md (*vec_concatv2sf_sse4_1): Do not allow both
26876         input operands in memory.
26877         (*vec_concatv2si_sse4_1): Ditto.
26878         (*vec_concatv2df): Ditto, except for SSE3 and equal input operands.
26879         (vec_extract_lo_<mode><mask_name>): Change operand 1 predicate to
26880         register_operand.
26881         (vec_extract_hi_v32hi): Ditto.
26882         (vec_extract_hi_v64hi): Ditto.
26883         (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
26884
26885 2015-04-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
26886             Steven Bosscher <steven@gcc.gnu.org>
26887
26888         PR rtl-optimization/34503
26889         * cprop.c (cprop_reg_p): New.
26890         (hash_scan_set): Use above function to check if register can be
26891         propagated.
26892         (find_avail_set): Return up to two sets, one whose source is a
26893         register and one whose source is a constant.  Sets are returned in an
26894         array passed as parameter rather than as a return value.
26895         (cprop_insn): Use a do while loop rather than a goto.  Try each of the
26896         sets returned by find_avail_set, starting with the one whose source is
26897         a constant. Use cprop_reg_p to check if register can be propagated.
26898         (do_local_cprop): Use cprop_reg_p to check if register can be
26899         propagated.
26900         (implicit_set_cond_p): Likewise.
26901
26902 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
26903
26904         * ipa-icf.c (sem_function::equals_wpa): Compare thunk info.
26905         (sem_function::equals): IGNORED_NODES parameter is now unused;
26906         update call of equals_private.
26907         (sem_function::equals_private): Do not call equals_wpa; skip
26908         gimple body matching if there is no body.
26909         (sem_function::init): Add logic to hash tthunk info.
26910         (sem_function::parse): Also parse thunks.
26911         * ipa-icf.h (equals_private): Update declaration.
26912
26913 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26914
26915         * config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove
26916         asterisk from name so this can be generated directly.
26917         (*altivec_stvx_<mode>_internal): Likewise.
26918         * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert
26919         that this is never called during or after reload/lra.
26920         (rs6000_frame_related): Remove split_reg
26921         argument and logic that references it.
26922         (emit_frame_save): Remove last parameter from call to
26923         rs6000_frame_related.
26924         (rs6000_emit_prologue): Remove last parameter from eight calls to
26925         rs6000_frame_related.  Force generation of stvx instruction for
26926         Altivec register saves.  Remove split_reg handling, which is no
26927         longer needed.
26928         (rs6000_emit_epilogue):  Force generation of lvx instruction for
26929         Altivec register restores.
26930
26931 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
26932
26933         * config/rs6000/rs6000.opt (mcrypto): Change option description to
26934         match category changes in ISA 2.07B.
26935
26936 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
26937
26938         * config/arm/iterators.md (GTGE, GTUGEU, COMPARISONS): New code
26939         iterators.
26940         (cmp_op, cmp_type): New code attributes.
26941         (NEON_VCMP, NEON_VACMP): New int iterators.
26942         (cmp_op_unsp): New int attribute.
26943         * config/arm/neon.md (neon_vc<cmp_op><mode>): New define_expand.
26944         (neon_vceq<mode>): Delete.
26945         (neon_vc<cmp_op><mode>_insn): New pattern.
26946         (neon_vc<cmp_op_unsp><mode>_insn_unspec): Likewise.
26947         (neon_vcgeu<mode>): Delete.
26948         (neon_vcle<mode>): Likewise.
26949         (neon_vclt<mode>: Likewise.
26950         (neon_vcage<mode>): Likewise.
26951         (neon_vcagt<mode>): Likewise.
26952         (neon_vca<cmp_op><mode>): New define_expand.
26953         (neon_vca<cmp_op><mode>_insn): New pattern.
26954         (neon_vca<cmp_op_unsp><mode>_insn_unspec): Likewise.
26955
26956 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
26957
26958         * tree.h (attribute_value_equal): Declare.
26959         * tree.c (attribute_value_equal): Export.
26960
26961 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
26962
26963         * ipa-icf.c (sem_item::compare_attributes): New function.
26964         (sem_item::compare_referenced_symbol_properties): Compare variable
26965         attributes.
26966         (sem_item::hash_referenced_symbol_properties): Record DECL_ALIGN.
26967         (sem_function::param_used_p): New function.
26968         (sem_function::equals_wpa): Fix attribute comparsion; match
26969         parameter type codes; do not compare paremter flags when
26970         they are not used; compare edge flags; compare indirect calls.
26971         (sem_item::update_hash_by_addr_refs): Hash reference type.
26972         (sem_function::equals_private): Do not match DECL_ATTRIBUTES.
26973         (sem_variable::equals_wpa): Do not match DECL_ALIGN; match
26974         reference use type.
26975         (sem_item_optimizer::update_hash_by_addr_refs): Use param_used_p.
26976         * ipa-icf.h (compare_attributes, param_used_p): Declare.
26977
26978 2015-04-23  Jan Hubicka  <hubicka@ucw.cz>
26979
26980         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection):
26981         cleanup.
26982         (sem_function::get_hash): Do not hash DECL_DISREGARD_INLINE_LIMITS,
26983         DECL_DECLARED_INLINE_P and DECL_IS_OPERATOR_NEW.
26984         (sem_item::compare_referenced_symbol_properties): New.
26985         (sem_item::hash_referenced_symbol_properties): New.
26986         (sem_item::compare_cgraph_references): Rename to ...
26987         (sem_item::compare_symbol_references): ... this one; use
26988         compare_referenced_symbol_properties.
26989         (sem_function::equals_wpa): Do not compare
26990         DECL_DISREGARD_INLINE_LIMITS, DECL_DECLARED_INLINE_P,
26991         DECL_IS_OPERATOR_NEW; compare pointer sizes.
26992         (sem_item::update_hash_by_addr_refs): Call
26993         hash_referenced_symbol_properties.
26994         (sem_item::update_hash_by_local_refs): Cleanup.
26995         (sem_function::merge): Do not mix up symbol properties.
26996         (sem_variable::equals_wpa): Use compare_symbol_references.
26997         * ipa-icf.h (sem_item::compare_referenced_symbol_properties): New.
26998         (sem_item::hash_referenced_symbol_properties): New.
26999         (sem_item::compare_symbol_references): New.
27000         (sem_item::compare_cgraph_references): Remove.
27001
27002 2015-04-23  Kwok Cheung Yeung  <kcy@codesourcery.com>
27003
27004         PR target/26702
27005         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL):
27006         Emit size of local.
27007
27008 2015-04-23  Nick Clifton  <nickc@redhat.com>
27009
27010         * config/rl78/rl78.c (rl78_preferred_reload_class): Add
27011         ATTRIBUTE_UNUSED to x parameter.
27012         * config/rl78/rl78-opts.h (enum rl78_mul_types): Remove unused MUL_RL78.
27013
27014 2015-04-23  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27015
27016         * config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
27017         TARGET_CRYPTO to TARGET_P8_VECTOR>
27018         (crypto_vpermxor_<mode>): Likewise.
27019         * config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
27020         (BU_CRYPTO_3A): Likewise.
27021         (BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
27022         (BU_CRYPTO_OVERLOAD_3A): New #define.
27023         (VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
27024         (VPMSUMH): Likewise.
27025         (VPMSUMW): Likewise.
27026         (VPMSUMD): Likewise.
27027         (VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
27028         (VPERMXOR_V4SI): Likewise.
27029         (VPERMXOR_V8HI): Likewise.
27030         (VPERMXOR_V16QI): Likewise.
27031         (VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
27032         BU_CRYPTO_OVERLOAD_2A.
27033         (VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
27034         BU_CRYPTO_OVERLOAD_3A.
27035         * config/rs6000/rs6000.opt (mcrypto): Change description of
27036         option.
27037
27038 2015-04-23  Richard Biener  <rguenther@suse.de>
27039
27040         * passes.def: Remove copy propagation passes run directly after CCP.
27041         * tree-ssa-ccp.c (get_value_for_expr): Fall back to a COPY for
27042         SSA names.
27043         (ccp_visit_phi_node): Rework to handle first executable edge
27044         specially.
27045
27046 2015-04-23  Matthew Wahab  <matthew.wahab@arm.com>
27047
27048         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
27049         (ARM_LEGITIMIZE_RELOAD_ADDRESS): Remove.
27050         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Remove.
27051         * config/arm/arm.c (arm_legimitimize_reload_address): Remove.
27052         (thumb_legimitimize_reload_address): Remove.
27053         * config/arm/arm-protos.h (arm_legimitimize_reload_address):
27054         Remove.
27055         (thumb_legimitimize_reload_address): Remove.
27056
27057 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27058
27059         * conditions.h (CC_STATUS_INIT): Gate on #ifndef CC_STATUS_INIT.
27060
27061 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27062
27063         * config/arm/arm.md (load_multiple): Reject operand 2 greater than
27064         MAX_LDM_STM_OPS.
27065         (store_multiple): Likewise.
27066
27067 2015-04-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27068
27069         * config/arm/arm-protos.h (struct tune_params): Add issue_rate field.
27070         * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune,
27071         arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune,
27072         arm_cortex_tune, arm_cortex_a8_tune, arm_cortex_a7_tune,
27073         arm_cortex_a15_tune, arm_cortex_a53_tune, arm_cortex_a57_tune,
27074         arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune,
27075         arm_fa726te_tune arm_cortex_a5_tune, arm_xgene1_tune):
27076         Specify issue_rate value.
27077         (arm_issue_rate): Look up issue rate from tuning structs. Remove
27078         large switch statement.
27079         (arm_marvell_pj4_tune): New struct.
27080         * config/arm/arm-cores.def (marvell-pj4): Use arm_marvell_pj4_tune
27081         struct.
27082
27083 2015-04-23  Richard Biener  <rguenther@suse.de>
27084
27085         * tree-vect-slp.c (vect_find_first_load_in_slp_instance): Remove.
27086         (vect_find_last_store_in_slp_instance): Rename to ...
27087         (vect_find_last_scalar_stmt_in_slp): ... this and generalize.
27088         (vect_analyze_slp_cost_1): Use vector_load for constant defs
27089         and vec_construct for external defs when estimating prologue cost.
27090         (vect_analyze_slp_instance): Do not init SLP_INSTANCE_FIRST_LOAD_STMT.
27091         Compute costs here only when vectorizing loops.
27092         (vect_slp_analyze_bb_1): Compute SLP cost here, after vector types
27093         have been determined.
27094         (vect_schedule_slp_instance): Simplify vectorized code placement
27095         and prepare for in-BB external defs.
27096         * tree-vectorizer.h (struct _slp_instance): Remove first_load member.
27097         (SLP_INSTANCE_FIRST_LOAD_STMT): Remove.
27098         * tree-vect-stmts.c (vect_model_store_cost): Remove PURE_SLP_STMT
27099         guard.
27100         (vect_model_load_cost): Likewise.
27101         (vectorizable_store): Instead add it here.
27102         (vectorizable_load): Likewise.
27103         (vect_is_simple_use): Dump def type textually.
27104
27105 2015-04-23  Richard Biener  <rguenther@suse.de>
27106
27107         * cfgexpand.c (expand_gimple_stmt_1): Use ops.code.
27108         * cfgloop.c (verify_loop_structure): Verify the root loop node.
27109         * except.c (duplicate_eh_regions): Call get_eh_region_from_lp_number_fn
27110         instead of get_eh_region_from_lp_number.
27111         * loop-init.c (fix_loop_structure): If we removed a loop, reset
27112         the SCEV cache.
27113
27114 2015-04-23  Anton Blanchard  <anton@samba.org>
27115
27116         * config/rs6000/rs6000.c (rs6000_output_function_prologue): No
27117         need for -mprofile-kernel to save LR to stack.
27118
27119 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27120
27121         * config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
27122         adjustments.
27123         (insn_is_swappable_p): Return 1 for a convert from double to
27124         single precision when all of its uses are splats of BE element
27125         zero.
27126
27127 2015-04-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
27128
27129         * ira-costs.c (record_operand_costs): Fix typo (remove redundant code).
27130
27131 2015-04-22  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27132
27133         PR target/65456
27134         * config/rs6000/rs6000.c (rs6000_option_override_internal):  For
27135         VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
27136         TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
27137         option.
27138         (rs6000_builtin_mask_for_load): Return 0 for targets with
27139         efficient unaligned VSX accesses so that the vectorizer will use
27140         direct unaligned loads.
27141         (rs6000_builtin_support_vector_misalignment): Always return true
27142         for targets with efficient unaligned VSX accesses.
27143         (rs6000_builtin_vectorization_cost): Cost of unaligned loads and
27144         stores on targets with efficient unaligned VSX accesses is almost
27145         always the same as the cost of an aligned load or store, so model
27146         it that way.
27147         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
27148         unaligned vectors if we have efficient unaligned VSX accesses.
27149         * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
27150         undocumented option.
27151
27152 2015-04-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27153
27154         Revert:
27155         2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
27156
27157         * config.gcc (LIBC_MUSL): New tm_defines macro.
27158         * config/linux.h (OPTION_MUSL): Define.
27159         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
27160         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
27161         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
27162
27163         * config/linux.opt (mmusl): New option.
27164         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
27165         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
27166
27167         * configure: Regenerate.
27168
27169 2015-04-22  Gregor Richards  <gregor.richards@uwaterloo.ca>
27170
27171         * config.gcc (LIBC_MUSL): New tm_defines macro.
27172         * config/linux.h (OPTION_MUSL): Define.
27173         (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
27174         (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
27175         (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
27176
27177         * config/linux.opt (mmusl): New option.
27178         * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
27179         (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
27180
27181         * configure: Regenerate.
27182
27183 2015-04-22  Yury Gribov  <y.gribov@samsung.com>
27184
27185         * doc/invoke.texi (-fsanitize-sections): Update description.
27186         * asan.c (set_sanitized_sections): Parse incoming arg.
27187         (section_sanitized_p): Support wildcards.
27188
27189 2015-04-22  Tom de Vries  <tom@codesourcery.com>
27190
27191         PR tree-optimization/65823
27192         * gimplify.c (gimplify_modify_expr): Use operand_equal_p to test for
27193         equality between ap_copy and ap.
27194
27195 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
27196
27197         PR target/47098
27198         * config/openbsd-oldgas.h (OBSD_LIB_SPEC): Add.
27199
27200 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
27201
27202         PR target/47122
27203         * config.gcc (vax-*-openbsd*): Fix name of pthread spec header.
27204
27205 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
27206
27207         PR target/55144
27208         * config.gcc (bfin*-linux-uclibc*): Prepend tmake_file and
27209         remove already contained t-files.
27210
27211 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
27212
27213         * tree-tailcall.c (suitable_for_tail_opt_p, find_tail_calls):
27214         Remove unneeded forward declarations.
27215         (suitable_for_tail_call_opt_p): Commentary typo fix.
27216
27217 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
27218
27219         * varasm.c (emit_bss): Remove redundant guard.
27220
27221 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
27222
27223         * config/c6x/c6x.h (TARGET_CPU_CPP_BUILTINS): Add unk_isa.
27224
27225 2015-04-22  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
27226
27227         * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Add BFIN_CPU_UNKNOWN.
27228
27229 2015-04-22  Hale Wang  <hale.wang@arm.com>
27230             Terry Guo  <terry.guo@arm.com>
27231
27232         PR rtl-optimization/64818
27233         * combine.c (can_combine_p): Don't combine user-specified
27234         register if it is in an asm input.
27235
27236 2015-04-21  Jan Hubicka  <hubicka@ucw.cz>
27237
27238         PR ipa/65076
27239         * passes.def (early_optimizations): Add pass_dse.
27240
27241 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
27242
27243         * defaults.h (INSN_REFERENCES_ARE_DELAYED): New definition.
27244         * reorg.c (redundant_insn): Remove ifdef
27245         INSN_REFERENCES_ARE_DELAYED.
27246         * resource.c (mark_referenced_resources): Likewise.
27247
27248 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
27249
27250         * defaults.h (INSN_SETS_ARE_DELAYED): New definition.
27251         * reorg.c (redundant_insn): Remove ifdef INSN_SETS_ARE_DELAYED.
27252         * resource.c (mark_set_resources): Likewise.
27253
27254 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
27255
27256         * caller-save.c (insert_one_insn): Remove ifdef HAVE_cc0.
27257         * cfgcleanup.c (flow_find_cross_jump): Likewise.
27258         (flow_find_head_matching_sequence): Likewise.
27259         (try_head_merge_bb): Likewise.
27260         * combine.c (can_combine_p): Likewise.
27261         (try_combine): Likewise.
27262         (distribute_notes): Likewise.
27263         * df-problems.c (can_move_insns_across): Likewise.
27264         * final.c (final): Likewise.
27265         * gcse.c (insert_insn_end_basic_block): Likewise.
27266         * ira.c (find_moveable_pseudos): Likewise.
27267         * reorg.c (try_merge_delay_insns): Likewise.
27268         (fill_simple_delay_slots): Likewise.
27269         (fill_slots_from_thread): Likewise.
27270         * sched-deps.c (sched_analyze_2): Likewise.
27271
27272 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
27273
27274         * df-scan.c (df_get_entry_block_def_set): Remove #ifdef
27275         PIC_OFFSET_TABLE_REGNUM.
27276
27277 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
27278
27279         * alias.c (init_alias_target): Remove ifdef
27280         * HARD_FRAME_POINTER_IS_FRAME_POINTER.
27281         * df-scan.c (df_insn_refs_collect): Likewise.
27282         (df_get_regular_block_artificial_uses): Likewise.
27283         (df_get_eh_block_artificial_uses): Likewise.
27284         (df_get_entry_block_def_set): Likewise.
27285         (df_get_exit_block_use_set): Likewise.
27286         * emit-rtl.c (gen_rtx_REG): Likewise.
27287         * ira.c (ira_setup_eliminable_regset): Likewise.
27288         * reginfo.c (init_reg_sets_1): Likewise.
27289         * regrename.c (rename_chains): Likewise.
27290         * reload1.c (reload): Likewise.
27291         (eliminate_regs_in_insn): Likewise.
27292         * resource.c (mark_referenced_resources): Likewise.
27293         (init_resource_info): Likewise.
27294
27295 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
27296
27297         * defaults.h (MASK_RETURN_ADDR): New definition.
27298         * except.c (expand_builtin_extract_return_addr): Remove ifdef
27299         MASK_RETURN_ADDR.
27300
27301 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
27302
27303         * defaults.h (RETURN_ADDR_OFFSET): New definition.
27304         * except.c (expand_builtin_extract_return_addr): Remove ifdef
27305         RETURN_ADDR_OFFSET.
27306         (expand_builtin_frob_return_addr): Likewise.
27307
27308 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
27309
27310         * cfgrtl.c (rtl_merge_blocks): Change #if HAVE_cc0 to if (HAVE_cc0)
27311         (try_redirect_by_replacing_jump): Likewise.
27312         (rtl_tidy_fallthru_edge): Likewise.
27313         * combine.c (insn_a_feeds_b): Likewise.
27314         (find_split_point): Likewise.
27315         (simplify_set): Likewise.
27316         * cprop.c (cprop_jump): Likewise.
27317         * cse.c (cse_extended_basic_block): Likewise.
27318         * df-problems.c (can_move_insns_across): Likewise.
27319         * function.c (emit_use_return_register_into_block): Likewise.
27320         * haifa-sched.c (sched_init): Likewise.
27321         * ira.c (find_moveable_pseudos): Likewise.
27322         * loop-invariant.c (find_invariant_insn): Likewise.
27323         * lra-constraints.c (curr_insn_transform): Likewise.
27324         * postreload.c (reload_combine_recognize_const_pattern):
27325         * Likewise.
27326         * reload.c (find_reloads): Likewise.
27327         * reorg.c (delete_scheduled_jump): Likewise.
27328         (steal_delay_list_from_target): Likewise.
27329         (steal_delay_list_from_fallthrough): Likewise.
27330         (redundant_insn): Likewise.
27331         (fill_simple_delay_slots): Likewise.
27332         (fill_slots_from_thread): Likewise.
27333         (delete_computation): Likewise.
27334         * sched-rgn.c (add_branch_dependences): Likewise.
27335
27336 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
27337
27338         * genconfig.c (main): Always define HAVE_cc0.
27339         * caller-save.c (insert_one_insn): Change ifdef HAVE_cc0 to #if
27340         HAVE_cc0.
27341         * cfgcleanup.c (flow_find_cross_jump): Likewise.
27342         (flow_find_head_matching_sequence): Likewise.
27343         (try_head_merge_bb): Likewise.
27344         * cfgrtl.c (rtl_merge_blocks): Likewise.
27345         (try_redirect_by_replacing_jump): Likewise.
27346         (rtl_tidy_fallthru_edge): Likewise.
27347         * combine.c (do_SUBST_MODE): Likewise.
27348         (insn_a_feeds_b): Likewise.
27349         (combine_instructions): Likewise.
27350         (can_combine_p): Likewise.
27351         (try_combine): Likewise.
27352         (find_split_point): Likewise.
27353         (subst): Likewise.
27354         (simplify_set): Likewise.
27355         (distribute_notes): Likewise.
27356         * cprop.c (cprop_jump): Likewise.
27357         * cse.c (cse_extended_basic_block): Likewise.
27358         * df-problems.c (can_move_insns_across): Likewise.
27359         * final.c (final): Likewise.
27360         (final_scan_insn): Likewise.
27361         * function.c (emit_use_return_register_into_block): Likewise.
27362         * gcse.c (insert_insn_end_basic_block): Likewise.
27363         * haifa-sched.c (sched_init): Likewise.
27364         * ira.c (find_moveable_pseudos): Likewise.
27365         * loop-invariant.c (find_invariant_insn): Likewise.
27366         * lra-constraints.c (curr_insn_transform): Likewise.
27367         * optabs.c (prepare_cmp_insn): Likewise.
27368         * postreload.c (reload_combine_recognize_const_pattern):
27369         * Likewise.
27370         * reload.c (find_reloads): Likewise.
27371         (find_reloads_address_1): Likewise.
27372         * reorg.c (delete_scheduled_jump): Likewise.
27373         (steal_delay_list_from_target): Likewise.
27374         (steal_delay_list_from_fallthrough): Likewise.
27375         (try_merge_delay_insns): Likewise.
27376         (redundant_insn): Likewise.
27377         (fill_simple_delay_slots): Likewise.
27378         (fill_slots_from_thread): Likewise.
27379         (delete_computation): Likewise.
27380         (relax_delay_slots): Likewise.
27381         * sched-deps.c (sched_analyze_2): Likewise.
27382         * sched-rgn.c (add_branch_dependences): Likewise.
27383
27384 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
27385
27386         * combine.c (find_single_use): Remove HAVE_cc0 ifdef for code
27387         that is trivially ded on non cc0 targets.
27388         (simplify_set): Likewise.
27389         (mark_used_regs_combine): Likewise.
27390         * cse.c (new_basic_block): Likewise.
27391         (fold_rtx): Likewise.
27392         (cse_insn): Likewise.
27393         (cse_extended_basic_block): Likewise.
27394         (set_live_p): Likewise.
27395         * rtlanal.c (canonicalize_condition): Likewise.
27396         * simplify-rtx.c (simplify_binary_operation_1): Likewise.
27397
27398 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
27399
27400         * conditions.h: Define macros even if HAVE_cc0 is undefined.
27401         * emit-rtl.c: Define functions even if HAVE_cc0 is undefined.
27402         * final.c: Likewise.
27403         * jump.c: Likewise.
27404         * recog.c: Likewise.
27405         * recog.h: Declare functions even when HAVE_cc0 is undefined.
27406         * sched-deps.c (sched_analyze_2): Always compile case for cc0.
27407
27408 2015-04-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
27409
27410         * defaults.h: New definition of EH_RETURN_DATA_REGNO.
27411         * except.c: Remove definition of EH_RETURN_DATA_REGNO.
27412         * builtins.c (expand_builtin): Remove check if
27413         EH_RETURN_DATA_REGNO is defined.
27414         * df-scan.c (df_bb_refs_collect): Likewise.
27415         (df_get_exit_block_use_set): Likewise.
27416         * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
27417         * ira-lives.c (process_bb_node_lives): Likewise.
27418         * lra-lives.c (process_bb_lives): Likewise.
27419
27420 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
27421
27422         * config/i386/i386.md (ARGP_REG, FRAME_REG, BND2_REG, BND3_REG,
27423         FIRST_PSEUDO_REG): New.
27424         * config/i386/i386.h (STACK_POINTER_REGNUM): Define to SP_REG.
27425         (ARG_POINTER_REGNUM): Define to ARGP_REG.
27426         (FRAME_POINTER_REGNUM): Define to FRAME_REG.
27427         (HARD_FRAME_POINTER_REGNUM): Define to BP_REG.
27428         (FIRST_PSEUDO_REGISTER): Define to FIRST_PSEUDO_REG.
27429         (FIRST_INT_REG): New.
27430         (LAST_INT_REG): New.
27431         (FIRST_*_REG): Define using *_REG.
27432         (LAST_*_REG): Ditto.
27433         (QI_REGNO_P): Define using FIRST_QU_REG and LAST_QI_REG.
27434         (LEGACY_INT_REGNO_P): Define using FIRST_INT_REG and LAST_INT_REG.
27435         (FIRST_FLOAT_REG): Define to FIRST_STACK_REG.
27436
27437 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27438
27439         * expmed.c: (synth_mult): Only assume overlapping
27440         shift with previous steps in alg_sub_t_m2 case.
27441
27442 2015-04-21  Richard Biener  <rguenther@suse.de>
27443
27444         PR tree-optimization/65650
27445         * tree-ssa-ccp.c (valid_lattice_transition): Allow lattice
27446         transitions involving copies.
27447         (set_lattice_value): Adjust for copy lattice state.
27448         (ccp_lattice_meet): Do not merge UNDEFINED and a copy to the copy
27449         if that doesn't dominate the merge point.
27450         (bit_value_unop): Adjust what we treat as varying mask.
27451         (bit_value_binop): Likewise.
27452         (bit_value_assume_aligned): Likewise.
27453         (evaluate_stmt): When we simplified to a SSA name record a copy
27454         instead of dropping to varying.
27455         (visit_assignment): Simplify.
27456
27457         * gimple-match.h (gimple_simplify): Add another callback.
27458         * gimple-fold.c (fold_stmt_1): Adjust caller.
27459         (gimple_fold_stmt_to_constant_1): Likewise - pass valueize
27460         for the 2nd callback.
27461         * gimple-match-head.c (gimple_simplify): Add a callback that is
27462         used to valueize the stmt operands and use it that way.
27463
27464 2015-04-21  Richard Biener  <rguenther@suse.de>
27465
27466         PR tree-optimization/65788
27467         * tree-ssa-ccp.c (evaluate_stmt): Evaluate to UNDEFINED early.
27468
27469 2015-04-21  Richard Biener  <rguenther@suse.de>
27470
27471         * config/i386/i386.c (ix86_builtin_vectorization_cost): Scale
27472         vec_construct cost by vec_stmt_cost.
27473
27474 2015-04-21  Richard Biener  <rguenther@suse.de>
27475
27476         * cfghooks.h (create_basic_block): Replace with two overloads
27477         for RTL and GIMPLE.
27478         (split_block): Likewise.
27479         * cfghooks.c (split_block): Rename to ...
27480         (split_block_1): ... this.
27481         (split_block): Add two type-safe overloads for RTL and GIMPLE.
27482         (split_block_after_labels): Call split_block_1.
27483         (create_basic_block): Rename to ...
27484         (create_basic_block_1): ... this.
27485         (create_basic_block): Add two type-safe overloads for RTL and GIMPLE.
27486         (create_empty_bb): Call create_basic_block_1.
27487         * cfgrtl.c (fixup_fallthru_exit_predecessor): Use
27488         split_block_after_labels.
27489         * omp-low.c (expand_parallel_call): Likewise.
27490         (expand_omp_target): Likewise.
27491         (simd_clone_adjust): Likewise.
27492         * tree-chkp.c (chkp_get_entry_block): Likewise.
27493         * cgraphunit.c (init_lowered_empty_function): Use the GIMPLE
27494         create_basic_block overload.
27495         (cgraph_node::expand_thunk): Likewise.
27496         * tree-cfg.c (make_blocks): Likewise.
27497         (handle_abnormal_edges): Likewise.
27498         * tree-inline.c (copy_bb): Likewise.
27499
27500 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27501
27502         * config/aarch64/aarch64.md (*<NLOGICAL:optab>_one_cmplsidi3_ze):
27503         New pattern.
27504         (*xor_one_cmplsidi3_ze): Likewise.
27505
27506 2015-04-21  Thomas Preud'homme  <thomas.preudhomme@arm.com>
27507
27508         * df-core.c (df_finish_pass): Iterate over df->problems_by_index[] and
27509         use df_remove_problem rather than manually removing problems, leaving
27510         holes in df->problems_in_order[].
27511
27512 2015-04-21  Tom de Vries  <tom@codesourcery.com>
27513
27514         PR tree-optimization/65802
27515         * internal-fn.def (VA_ARG): Add ECF_NOTROW to flags.
27516
27517 2015-04-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
27518
27519         * common/config/aarch64/aarch64-common.c (AARCH64_CPU_NAME_LENGTH):
27520         Increase to 128.
27521         (aarch64_rewrite_selected_cpu): Do not chop off extensions starting
27522         at '.'.  Assert that there's enough space for everything.
27523
27524 2015-04-21  Uros Bizjak  <ubizjak@gmail.com>
27525
27526         PR tree-optimization/64950
27527         Revert:
27528         2010-08-02  Uros Bizjak  <ubizjak@gmail.com>
27529
27530         PR target/41089
27531         * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
27532         as volatile.
27533
27534 2015-04-20  Shiva Chen  <shiva0217@gmail.com>
27535
27536         PR rtl-optimization/64916
27537         * cfgcleanup.c (values_equal_p): New function.
27538         (can_replace_by): Use it.
27539
27540 2015-04-20  Paolo Carlini  <paolo.carlini@oracle.com>
27541
27542         PR c++/65801
27543         * doc/invoke.texi ([-Wnarrowing]): Update.
27544
27545 2015-04-20  Jeff Law  <law@redhat.com>
27546
27547         PR tree-optimization/65658
27548         * tree-ssa-threadupdate.c (redirection_block_p): Remove
27549         redundant test for GIMPLE_ASSIGN in last change.
27550
27551 2015-04-20  Uros Bizjak  <ubizjak@gmail.com>
27552
27553         * config/i386/i386.c (set_pic_reg_ever_live): Remove.
27554         (legitimize_pic_address): Do not call set_pic_reg_ever_live.
27555         (legitimize_tls_address): Ditto.
27556         (ix86_expand_move): Ditto.
27557         (ix86_expand_binary_operator): Remove reload_in_progress checks.
27558         (ix86_expand_unary_operator): Ditto.
27559         * config/i386/predicates.md (index_register_operand): Ditto.
27560
27561 2015-04-20  Selim Belbachir  <selim.belbachir@fr.thalesgroup.com>
27562
27563         * reorg.c (try_merge_delay_insns): Improve correctness checking
27564         for targets with multiple delay slots.
27565
27566 2015-04-20  Jeff Law  <law@redhat.com>
27567
27568         PR tree-optimization/65658
27569         * tree-ssa-threadupdate.c (redirection_block_p): Ignore clobber
27570         statements too.
27571
27572 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
27573
27574         * config/aarch64/aarch64.c (aarch64_simd_emit_pair_result_insn): Delete.
27575         * config/aarch64/aarch64-protos.h (aarch64_simd_emit_pair_result_insn):
27576         Delete.
27577
27578 2015-04-20  Jakub Jelinek  <jakub@redhat.com>
27579
27580         PR debug/65807
27581         * dwarf2out.c (add_AT_wide): Clear attr.dw_attr_val.val_entry.
27582
27583 2015-04-20  Richard Biener  <rguenther@suse.de>
27584
27585         * gimple-fold.h (gimple_build): Remove optional valueize arguments.
27586         * gimple-fold.c (gimple_build_valueize): New function.
27587         (gimple_build): Always use gimple_build_valueize as valueize hook.
27588
27589 2015-04-20  Alan Lawrence  <alan.lawrence@arm.com>
27590
27591         PR target/64134
27592         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Load constant
27593         and overwrite variable parts if <= 1/2 the elements are variable.
27594
27595 2015-04-19  Vladimir Makarov  <vmakarov@redhat.com>
27596
27597         PR rtl-optimization/65805
27598         * lra-eliminations.c (lra_eliminate_regs_1): Add new assert.
27599         Don't use difference of offset and previous offset if
27600         update_sp_offset is non-zero.
27601         (eliminate_regs_in_insn): Ditto.
27602         * lra-spills.c (remove_pseudos): Exchange 4th and 6th args in
27603         lra_eliminate_regs_1 call.
27604         * lra-constraints.c (get_equiv_with_elimination): Ditto.
27605
27606 2015-04-18  Trevor Saunders  <tsaunders@mozilla.com>
27607
27608         * hash-table.h: Remove version of hash_table that stored value_type *.
27609         * asan.c, attribs.c, bitmap.c, cfg.c, cgraph.h, config/arm/arm.c,
27610         config/i386/winnt.c, config/ia64/ia64.c, config/mips/mips.c,
27611         config/sol2.c, coverage.c, cselib.c, dse.c, dwarf2cfi.c,
27612         dwarf2out.c, except.c, gcse.c, genmatch.c, ggc-common.c,
27613         gimple-ssa-strength-reduction.c, gimplify.c, haifa-sched.c,
27614         hard-reg-set.h, hash-map.h, hash-set.h, ipa-devirt.c, ipa-icf.h,
27615         ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
27616         loop-iv.c, loop-unroll.c, lto-streamer.h, plugin.c, postreload-gcse.c,
27617         reginfo.c, statistics.c, store-motion.c, trans-mem.c, tree-cfg.c,
27618         tree-eh.c, tree-hasher.h, tree-into-ssa.c, tree-parloops.c,
27619         tree-sra.c, tree-ssa-coalesce.c, tree-ssa-dom.c, tree-ssa-live.c,
27620         tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c,
27621         tree-ssa-pre.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
27622         tree-ssa-structalias.c, tree-ssa-tail-merge.c,
27623         tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
27624         valtrack.h, var-tracking.c, vtable-verify.c, vtable-verify.h: Adjust.
27625
27626 2015-04-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
27627             Jakub Jelinek  <jakub@redhat.com>
27628
27629         PR target/65787
27630         * config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a
27631         subsequent SH_NONE operand does not overwrite an existing *special
27632         value.
27633         (adjust_extract): Handle case where a vec_extract operation is
27634         wrapped in a PARALLEL.
27635
27636 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
27637
27638         PR target/65780
27639         * config/i386/i386.c (ix86_binds_local_p): Define only if
27640         TARGET_MACHO and TARGET_DLLIMPORT_DECL_ATTRIBUTES are false.
27641
27642 2015-04-17  Jeff Law  <law@redhat.com>
27643
27644         PR tree-optimization/47679
27645         * Makefile.in (OBJS); Add tree-ssa-scopedtables.o.
27646         * tree-ssa-scopedtables.c: New file.
27647         * tree-ssa-scopedtables.h: New file.
27648         * tree-ssa-dom.c: Include tree-ssa-scopedtables.h.
27649         (const_and_copies): Change name/type.
27650         (record_const_or_copy): Move into tree-ssa-scopedtables.c
27651         (record_const_or_copy_1): Similarly.
27652         (restore_vars_to_original_value): Similarly.
27653         (pass_dominator::execute): Create and destroy const_and_copies table.
27654         (thread_across_edge): Update passing of const_and_copies.
27655         (record_temporary_equivalence): Use method calls rather than
27656         manipulating const_and_copies directly.
27657         (record_equality, cprop_into_successor_phis): Similarly.
27658         (dom_opt_dom_walker::before_dom_children): Similarly.
27659         (dom_opt_dom_walker::after_dom_children): Similarly.
27660         (eliminate_redundant_computations): Similarly.
27661         * tree-ssa-threadedge.c (remove_temporary_equivalences): Delete.
27662         (record_temporary_equivalence): Likewise.
27663         (invalidate_equivalences): Likewise.
27664         (record_temporary_equivalences_from_phis): Update due to type
27665         change of const_and_copies.  Use method calls rather than
27666         manipulating the stack directly.
27667         (record_temporary_equivalences_from_stmts_at_dest): Likewise.
27668         (thread_through_normal_block, thread_across_edge): Likewise.
27669         (thread_across_edge): Likewise.
27670         * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
27671         * tree-vrp.c: Include tree-ssa-scopedtables.h.  Change type
27672         of equiv_stack.
27673         (identify_jump_threads): Update due to type change of equiv_stack.
27674         (finalize_jump_threads): Delete the equiv_stack when complete.
27675
27676 2015-04-17  Uros Bizjak  <ubizjak@gmail.com>
27677
27678         * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
27679         * config/i386/i386.c (ix86_legitimize_reload_address): Ditto.
27680         * config/i386/i386-protos.h (ix86_legitimize_reload_address): Ditto.
27681
27682 2015-04-17  Andreas Tobler  <andreast@gcc.gnu.org>
27683
27684         PR target/65535
27685         * config.gcc: Exit with a comment when we do not have a major version
27686         number for the FreeBSD target.
27687
27688 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
27689
27690         PR target/65689
27691         * genpreds.c (struct constraint_data): Add maybe_allows_reg and
27692         maybe_allows_mem bitfields.
27693         (maybe_allows_none_start, maybe_allows_none_end,
27694         maybe_allows_reg_start, maybe_allows_reg_end, maybe_allows_mem_start,
27695         maybe_allows_mem_end): New variables.
27696         (compute_maybe_allows): New function.
27697         (add_constraint): Use it to initialize maybe_allows_reg and
27698         maybe_allows_mem fields.
27699         (choose_enum_order): Sort the non-is_register/is_const_int/is_memory/
27700         is_address constraints such that those that allow neither mem nor
27701         reg come first, then those that only allow reg but not mem, then
27702         those that only allow mem but not reg, then the rest.
27703         (write_allows_reg_mem_function): New function.
27704         (write_tm_preds_h): Call it.
27705         * stmt.c (parse_output_constraint, parse_input_constraint): Use
27706         the generated insn_extra_constraint_allows_reg_mem function
27707         instead of always setting *allows_reg = true; *allows_mem = true;
27708         for unknown extra constraints.
27709
27710 2015-04-17  H.J. Lu  <hongjiu.lu@intel.com>
27711
27712         PR target/65780
27713         * output.h (default_binds_local_p_3): New.
27714         * varasm.c (default_binds_local_p_3): Make it public.  Take an
27715         argument to indicate if common symbol may be local.  If common
27716         symbol may be local, treat non-external variable as defined
27717         locally.
27718         (default_binds_local_p_2): Pass !flag_pic to default_binds_local_p_3.
27719         (default_binds_local_p_1): Pass false to default_binds_local_p_3.
27720         * config/i386/i386.c (ix86_binds_local_p): New.
27721         (TARGET_BINDS_LOCAL_P): Replace default_binds_local_p_2 with
27722         ix86_binds_local_p.
27723
27724 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
27725
27726         PR debug/65771
27727         * dwarf2out.c (mem_loc_descriptor): For CONST, fallback to
27728         trying mem_loc_descriptor on XEXP (rtl, 0).
27729
27730 2015-04-17  Martin Liska  <mliska@suse.cz>
27731
27732         * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
27733         Release symbol_compare_collection.
27734         * ipa-reference.c: Add TODO that a vector should be released.
27735
27736 2015-04-17  Sivanupandi Pitchumani <Pitchumani.Sivanupandi@atmel.com>
27737
27738         PR target/65296
27739         * config/avr/gen-avr-mmcu-specs.c (*avrlibc_startfile): Adjust
27740         to new AVR-LibC file layout (bug #44574).
27741         (*avrlibc_devicelib): Same.
27742         * config/avr/avr-mcus.def: Adjust comments.
27743         * config/avr/avr.opt (nodevicelib): Adjust help.
27744
27745 2015-04-17  Alan Lawrence  <alan.lawrence@arm.com>
27746
27747         * config/aarch64/arm_neon.h (vdup_n_f32): Remove forward declaration.
27748
27749 2015-04-17  Patrick Palka  <ppalka@gcc.gnu.org>
27750
27751         PR c++/64527
27752         * gimplify.c (gimplify_init_constructor): Always emit a
27753         side-effecting constructor.
27754
27755 2015-04-17  Tom de Vries  <tom@codesourcery.com>
27756
27757         PR tree-optimization/64950
27758         * gimplify.c (gimplify_function_tree): Tentatively set PROP_gimple_lva
27759         in cfun->curr_properties.
27760         (gimplify_va_arg_expr): Clear PROP_gimple_lva in cfun->curr_properties
27761         if we generate an IFN_VA_ARG.
27762         * tree-inline.c (expand_call_inline): Reset PROP_gimple_lva in dest
27763         function if PROP_gimple_lva is not set in src function.
27764
27765 2015-04-17  Tom de Vries  <tom@codesourcery.com>
27766             Michael Matz  <matz@suse.de>
27767
27768         PR tree-optimization/64950
27769         * gimple-iterator.c (update_modified_stmts): Remove static.
27770         * gimple-iterator.h (update_modified_stmts): Declare.
27771         * gimplify.c (gimplify_modify_expr): Handle IFN_VA_ARG.
27772         (gimplify_va_arg_internal): New function.
27773         (gimplify_va_arg_expr): Use IFN_VA_ARG.
27774         * gimplify.h (gimplify_va_arg_internal): Declare.
27775         * internal-fn.c (expand_VA_ARG): New unreachable function.
27776         * internal-fn.def (VA_ARG): New DEF_INTERNAL_FN.
27777         * tree-stdarg.c (gimple_call_ifn_va_arg_p, expand_ifn_va_arg_1)
27778         (expand_ifn_va_arg): New function.
27779         (pass_data_stdarg): Add PROP_gimple_lva to properties_provided field.
27780         (pass_stdarg::execute): Call expand_ifn_va_arg.
27781         (pass_data_lower_vaarg): New pass_data.
27782         (pass_lower_vaarg): New gimple_opt_pass.
27783         (pass_lower_vaarg::gate, pass_lower_vaarg::execute)
27784         (make_pass_lower_vaarg): New function.
27785         * cfgexpand.c (pass_data_expand): Add PROP_gimple_lva to
27786         properties_required field.
27787         * passes.def (all_passes): Add pass_lower_vaarg.
27788         * tree-pass.h (PROP_gimple_lva): Add define.
27789         (make_pass_lower_vaarg): Declare.
27790
27791 2015-04-17  Tom de Vries  <tom@codesourcery.com>
27792
27793         * fold-const.c (operand_equal_p): Handle INTERNAL_FNs.
27794         * calls.c (call_expr_flags): Same.
27795
27796 2015-04-17  Tom de Vries  <tom@codesourcery.com>
27797
27798         * tree-stdarg.c (optimize_va_list_gpr_fpr_size): Factor out of ...
27799         (pass_stdarg::execute): ... here.
27800
27801 2015-04-17  Tom de Vries  <tom@codesourcery.com>
27802             Michael Matz  <matz@suse.de>
27803
27804         * tree-cfg.c (make_blocks_1): Factor out of ...
27805         (make_blocks): ... here.
27806         (make_edges_bb): Factor out of ...
27807         (make_edges): ... here.
27808         (gimple_find_sub_bbs): New function.
27809         * tree-cfg.h (gimple_find_sub_bbs): Declare.
27810
27811 2015-04-17  Tom de Vries  <tom@codesourcery.com>
27812
27813         * tree.c (free_lang_data): Disable lang_hooks.gimplify_expr.
27814
27815 2015-04-17  Yury Gribov  <y.gribov@samsung.com>
27816
27817         * asan.c (set_sanitized_sections): New function.
27818         (section_sanitized_p): Ditto.
27819         (asan_protect_global): Optionally sanitize user-defined
27820         sections.
27821         * asan.h (set_sanitized_sections): Declare new function.
27822         * common.opt (fsanitize-sections): New option.
27823         * doc/invoke.texi (-fsanitize-sections): Document new option.
27824         * opts-global.c (handle_common_deferred_options): Handle new
27825         option.
27826
27827 2015-04-17  Jakub Jelinek  <jakub@redhat.com>
27828
27829         PR debug/65771
27830         * dwarf2out.c (loc_list_from_tree): Return NULL
27831         for DEBUG_EXPR_DECL.
27832
27833 2015-04-17  Christian Bruel  <christian.bruel@st.com>
27834
27835         * ipa-inline.c (can_inline_edge_p): Allow inlining of functions with
27836         same attributes.
27837
27838 2015-04-16  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
27839
27840         * ira-color.c (setup_left_conflict_sizes_p): Do not process
27841         node itself when computing left conflict subnode size.
27842
27843 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
27844
27845         * config/i386/predicates.md (register_mixssei387nonimm_operand): New.
27846         * config/i386/i386.md (*fop_<mode>_1_mixed): Merge with
27847         *fop_<mode>_1_sse using enabled attribute.  Use
27848         register_mixssei387nonimm_operand operand 1 predicate. Change
27849         alternative 3 constraints from "x" to "v".
27850
27851 2015-04-16  Richard Biener  <rguenther@suse.de>
27852
27853         PR tree-optimization/65774
27854         * tree-ssa-ccp.c (evaluate_stmt): Constrain types we invoke
27855         bit-value tracking on.
27856
27857 2015-04-16  Richard Biener  <rguenther@suse.de>
27858
27859         PR tree-optimization/64277
27860         * tree-vrp.c (check_array_ref): Fix anti-range handling,
27861         simplify upper bound handling.
27862         (search_for_addr_array): Simplify.
27863         (check_array_bounds): Handle ADDR_EXPRs here.
27864         (check_all_array_refs): Simplify.
27865
27866 2015-04-16  Uros Bizjak  <ubizjak@gmail.com>
27867
27868         * config/i386/i386.c (print_reg): Rewrite function.
27869
27870 2015-04-16  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
27871
27872         * config/s390/s390.h (IRA_HARD_REGNO_ADD_COST_MULTIPLIER):
27873         Invert the condition.
27874
27875 2015-04-16  Renlin Li  <renlin.li@arm.com>
27876
27877         * simplify-rtx.c (simplify_unary_operation_1): Fix a typo. Enable two
27878         simplifications for UNSIGNED_FLOAT.
27879
27880 2015-04-16  Nick Clifton  <nickc@redhat.com>
27881
27882         * config/rl78/rl78-opts.h (enum rl78_mul_types): Add MUL_G14 and
27883         MUL_UNINIT.
27884         (enum rl78_cpu_type): New.
27885         * config/rl78/rl78-virt.md (attr valloc): Add divhi and divsi.
27886         (umulhi3_shift_virt): Remove m constraint from operand 1.
27887         (umulqihi3_virt): Likewise.
27888         * config/rl78/rl78.c (rl78_option_override): Add code to process
27889         -mcpu and -mmul options.
27890         (rl78_alloc_physical_registers): Add code to handle divhi and
27891         divsi valloc attributes.
27892         (set_origin): Likewise.
27893         * config/rl78/rl78.h (RL78_MUL_G14): Define.
27894         (TARGET_G10, TARGET_G13, TARGET_G14): Define.
27895         (TARGET_CPU_CPP_BUILTINS): Define __RL78_MUL_xxx__ and
27896         __RL78_Gxx__.
27897         (ASM_SPEC): Pass -mcpu on to assembler.
27898         * config/rl78/rl78.md (mulqi3): Add a clobber of AX.
27899         (mulqi3_rl78): Likewise.
27900         (mulhi3_g13): Likewise.
27901         (mulhi3): Generate the G13 or G14 versions of the insn directly.
27902         (mulsi3): Likewise.
27903         (mulhi3_g14): Add clobbers of AX and BC.
27904         (mulsi3_g14): Likewise.
27905         (mulsi3_g13): Likewise.
27906         (udivmodhi4, udivmodhi4_g14, udivmodsi4): New patterns.
27907         (udivmodsi4_g14, udivmodsi4_g13): New patterns.
27908         * config/rl78/rl78.opt (mmul): Initialise value to
27909         RL78_MUL_UNINIT.
27910         (mcpu): New option.
27911         (m13, m14, mrl78): New option aliases.
27912         * config/rl78/t-rl78 (MULTILIB_OPTIONS): Add mg13 and mg14.
27913         (MULTILIB_DIRNAMES): Add g13 and g14.
27914         * doc/invoke.texi: Document -mcpu and -mmul options.
27915
27916 2015-04-16  Richard Biener  <rguenther@suse.de>
27917
27918         * tree-ssa-ccp.c (likely_value): See if we have operands that
27919         are marked as never simulate again and return CONSTANT in this
27920         case.
27921         * tree-ssa-propagate.c (simulate_stmt): Mark stmts that do
27922         not have any operands that will be simulated again as
27923         not being simulated again.
27924
27925 2015-04-15  Uros Bizjak  <ubizjak@gmail.com>
27926
27927         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed):
27928         Merge with *cmpi<FPCMP:unord><MODEF:mode>_sse using enabled attribute.
27929         (*extendsfdf2_mixed): Merge with *extendsfdf2_sse using enabled
27930         attribute.
27931         (*truncdfsf_fast_mixed): Merge with *truncdfsf_fast_sse using
27932         enabled attribute.
27933         (*float<SWI48:mode><MODEF:mode>2_mixed): Rename from
27934         *float<SWI48:mode><MODEF:mode>2_sse.
27935         (*absneg<mode>2_mixed): Merge with *absneg<mode>2_sse using
27936         enabled attribute.
27937         (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_sse using
27938         enabled attribute.
27939
27940 2015-04-15  Tom de Vries  <tom@codesourcery.com>
27941
27942         PR other/65487
27943         * function.c (push_dummy_function): New function.
27944         (init_dummy_function_start): Use push_dummy_function.
27945         (pop_dummy_function): New function.  Factored out of ...
27946         (expand_dummy_function_end): ... here.
27947         * function.h (push_dummy_function, pop_dummy_function): Declare.
27948         * passes.c (pass_manager::dump_passes): Use push_dummy_function and
27949         pop_dummy_function.
27950         * tree-chkp.c (chkp_gate): Handle cgraph_node::get (cfun->decl) == NULL.
27951
27952 2015-04-15  Jeff Law  <law@redhat.com>
27953
27954         PR tree-optimization/47679
27955         * tree-ssa-dom.c (build_and_record_new_cond): Moved to avoid
27956         need for forward declaration in upcoming changes.
27957         (record_conditions, record_edge_info): Likewise.
27958
27959         PR rtl-optimization/42522
27960         * cse.c (fold_rtx): Try to simplify a ZERO_EXTRACT or
27961         SIGN_EXTRACT as a whole object rather than simplifying
27962         its operand.
27963
27964 2015-04-15  Jakub Jelinek  <jakub@redhat.com>
27965
27966         PR ipa/65765
27967         * ipa-icf-gimple.c (func_checker::compare_bb): For GIMPLE_NOP
27968         and GIMPLE_PREDICT use break instead of return true. For
27969         GIMPLE_EH_DISPATCH, compare dispatch region.
27970
27971 2015-04-14  Matthew Wahab  <matthew.wahab@arm.com>
27972
27973         * doc/extend.texi (__sync Builtins): Simplify some text.  Update
27974         details about the implementation.  Make clear preference for
27975         __atomic builtins.  Reduce possibility of future change.
27976
27977 2015-04-15  Nick Clifton  <nickc@redhat.com>
27978
27979         * config/rx/rx.opt (mallow-string-insns): New option.
27980         * config/rx/rx.c (RX_BUILTIN_RMPA): Disable the use of this
27981         builtin if string instructions are denied.
27982         * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Define
27983         __RX_ALLOW_STRING_INSNS__ or __RX_DISALLOW_STRING_INSNS__, as
27984         appropriate.
27985         (ASM_SPEC): Pass -mno-allow-string-insns on to the assembler.
27986         * config/rx/rx.md (movstr): Enable pattern only if string
27987         instructions are allowed.
27988         (rx_movstr, rx_strend, movmemsi, rx_movmem): Likewise.
27989         (cmpstrnsi, cmpstrsi, rx_cmpstrn, rmpa): Likewise.
27990         * config/rx/t-rx (MULTILIB_OPTIONS): Add mno-allow-string-insns.
27991         (MULTILIB_DIRNAMES): Add no-strings.
27992         * doc/invoke.texi: Document -mno-allow-string-insns.
27993
27994 2015-04-15  Alan Modra  <amodra@gmail.com>
27995
27996         PR target/65408
27997         PR target/58744
27998         PR middle-end/36043
27999         * calls.c (load_register_parameters): Don't load past end of
28000         mem unless suitably aligned.
28001
28002 2015-04-15  Nick Clifton  <nickc@redhat.com>
28003
28004         * config/rl78/rl78.c (rl78_expand_prologue): Mark large stack
28005         decrement instruction as being frame related.
28006         (rl78_print_operand_1): Handle 'p' modifier to add +0 to HL
28007         based addresses.
28008         If zero extending a function address enclose the operation in
28009         %code(...).
28010         (rl78_preferred_reload_class): New function.
28011         (TARGET_PREFERRED_RELOAD_CLASS): Define.
28012         * config/rl78/rl78.md: Remove useless constraints in expanders.
28013         (mulqi3_rl78): Remove + qualifier on input-only operand 1.
28014         (mulhi3_rl78): Likewise.
28015         (mulhi3_g13): Likewise.
28016         (mulsi3_rl78): Likewise.
28017         (es_addr): Move to before the multiply patterns.
28018
28019 2015-04-15  Alan Modra  <amodra@gmail.com>
28020
28021         * function.h (struct emit_status): Delete x_first_insn, x_last_insn
28022         and sequence_stack.  Add seq.
28023         (seq_stack): Delete.
28024         * function.c (prepare_function_start): Don't access x_last_insn.
28025         * emit-rtl.h (get_current_sequence, get_topmost_sequence): New.
28026         (get_insns, set_first_insn, get_last_insn, set_last_insn): Use them.
28027         * emit_rtl.c (start_sequence, push_topmost_sequence,
28028         pop_topmost_sequence, end_sequence, in_sequence_p, init_emit): Use
28029         sequence accessors.
28030         (get_last_insn_anywhere, add_insn_after_nobb, add_insn_before_nobb,
28031         remove_insn): Likewise.  Simplify.
28032         * config/m32c/m32c.c (m32c_leaf_function_p): Use push_topmost_sequence
28033         and pop_topmost_sequence.
28034         (m32c_function_needs_enter): Use get_topmost_sequence.  Ignore
28035         debug insns.
28036         * config/rs6000/rs6000.c (rs6000_call_aix): Use get_current_sequence.
28037
28038 2015-04-14  Yvan Roux  <yvan.roux@linaro.org>
28039
28040         PR target/65729
28041         * lra-constraints.c (prohibited_class_reg_set_mode_p): Restore and fix
28042         the assertiion.
28043
28044 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
28045
28046         * config/i386/i386.h (LEGACY_INT_REG_P): New define.
28047         (LEGACY_INT_REGNO_P): Ditto.
28048         (GENERAL_REGNO_P): Use LEGACY_INT_REGNO_P.
28049         (ANY_MASK_REG_P): Remove.
28050         (BND_REG_P): Rename from ANY_BND_REG_P.
28051         * config/i386/i386.c (print_reg): Use LEGACY_INT_REG_P to print
28052         legacy integer registers.  Do not handle MMX_REG_P in a special way.
28053         Merge 64byte and 32byte SSE handling.
28054
28055 2015-04-14  Nick Clifton  <nickc@redhat.com>
28056
28057         * expr.c (expand_assignment): Force an address offset computation
28058         into a register before changing its mode.
28059         (expand_expr_real_1): Likewise.
28060
28061 2015-04-14  Alan Lawrence  <alan.lawrence@arm.com>
28062
28063         * config/aarch64/arm_neon.h (vst1_lane_f32, vst1_lane_f64,
28064         vst1_lane_p8, vst1_lane_p16, vst1_lane_s8, vst1_lane_s16,
28065         vst1_lane_s32, vst1_lane_s64, vst1_lane_u8, vst1_lane_u16,
28066         vst1_lane_u32, vst1_lane_u64, vst1q_lane_f32, vst1q_lane_f64,
28067         vst1q_lane_p8, vst1q_lane_p16, vst1q_lane_s8, vst1q_lane_s16,
28068         vst1q_lane_s32, vst1q_lane_s64, vst1q_lane_u8, vst1q_lane_u16,
28069         vst1q_lane_u32, vst1q_lane_u64): Reimplement with pointer dereference
28070         and __aarch64_vget_lane_any.
28071
28072 2015-04-14  Jakub Jelinek  <jakub@redhat.com>
28073
28074         PR rtl-optimization/65761
28075         * cfgrtl.c (rtl_split_edge): For EDGE_CROSSING split, use
28076         get_last_bb_insn (after) instead of NEXT_INSN (BB_END (after)).
28077
28078 2015-04-14  Richard Biener  <rguenther@suse.de>
28079
28080         * graphite-scop-detection.c: Do not include cp/cp-tree.h.
28081         (graphite_can_represent_scev): Use POINTER_TYPE_P.
28082
28083 2015-04-14  Richard Biener  <rguenther@suse.de>
28084
28085         PR tree-optimization/65758
28086         * tree-ssa-ccp.c (get_value_from_alignment): Adjust mask test
28087         against -1.
28088         (ccp_lattice_meet): Likewise.
28089         (bit_value_unop): Likewise.
28090         (bit_value_binop): Likewise.
28091         (bit_value_assume_aligned): Likewise.
28092
28093 2015-04-14  Christian Bruel  <christian.bruel@st.com>
28094
28095         * execute_dwarf2_frame (dw_frame_pointer_regnum): Reinitialize for each
28096         function.
28097
28098 2015-04-14  Marc Glisse  <marc.glisse@inria.fr>
28099
28100         PR tree-optimization/63387
28101         * match.pd ((x unord x) | (y unord y) -> (x unord y),
28102         (x unord x) | (x unord y) -> (x unord y)): New simplifications.
28103
28104 2015-04-14  Uros Bizjak  <ubizjak@gmail.com>
28105
28106         * config/i386/predicates.md (any_QIreg_operand): Rename from
28107         q_regs_operand.  Do not process subregs.
28108         (QIreg_operand): Use QI_REGNO_P predicate.
28109         (ext_QIreg_operand): Ditto.
28110         (ext_register_operand): Ditto.
28111         * config/i386/i386.md (TEST splitters): Use QIreg_operand predicate.
28112         (AND splitters): Ditto.
28113         (AND with -65536 splitter): Add SWI48 mode for operand 0.
28114         (AND with -256 splitter): Use any_QIreg_operand predicate and
28115         SWI248 mode for operand 0.
28116         (AND with -65281 splitter): Use QIreg_operand predicate and SWI248
28117         mode for operand 0.
28118         (SETCC + MOVZBL peepholes): Update for renamed any_QIreg_operand.
28119
28120 2015-04-13  Gerald Pfeifer  <gerald@pfeifer.com>
28121
28122         * doc/plugins.texi: Rewrite first introductory paragraph.
28123
28124 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
28125
28126         * tree-vrp.c (nonnull_arg_p): THIS pointers and references are non-zero.
28127         (gimple_stmt_nonzero_warnv_p): Reference return values are non-zero.
28128
28129 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
28130
28131         * ipa-profie.c (ipa_profile): Check number of parameters
28132         and possible polymorphic call targets before
28133         devirtualizing.
28134
28135 2015-04-13  Uros Bizjak  <ubizjak@gmail.com>
28136
28137         * config/i386/i386.md (*bmi2_umul<mode><dwi>3_1): Merge from
28138         *bmi2_umulsidi3_1 and *bmi2_umulditi3_1 using DWIH mode iterator.
28139
28140 2015-04-13  Richard Biener  <rguenther@suse.de>
28141
28142         PR tree-optimization/65204
28143         * tree-ssa-ccp.c (evaluate_stmt): Always evaluate address
28144         takens for bit-CCP.
28145
28146 2015-04-13  Richard Biener  <rguenther@suse.de>
28147
28148         PR target/65660
28149         * config/i386/i386.c (bdver1_cost): Double cond_taken_branch_cost
28150         and cond_not_taken_branch_cost to 4 and 2.
28151         (bdver2_cost): Likewise.
28152         (bdver3_cost): Likewise.
28153         (bdver4_cost): Likewise.
28154
28155 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
28156
28157         * hash-table.h (hash_table constructor): Add mem stats.
28158         (alloc_entries): Likewise.
28159
28160 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
28161
28162         * ipa-cp.c (ipcp_driver): Relase prev_edge.
28163         * passes.c (execute_one_pass): Only add transform if pass has one.
28164
28165 2015-04-12  Joseph Myers  <joseph@codesourcery.com>
28166
28167         * config/i386/i386.c (ix86_option_override_internal): Don't set
28168         -fprefetch-loop-arrays if optimizing for size.
28169
28170 2015-04-12  Jan Hubicka  <hubicka@ucw.cz>
28171             Gerald Pfeifer  <gerald@pfeifer.com>
28172
28173         * doc/contrib.texi (Contributors): Add Martin Jambor and
28174         Michael Matz.
28175
28176 2015-04-12  Jakub Jelinek  <jakub@redhat.com>
28177
28178         * BASE-VER: Set to 6.0.0.
28179
28180         PR tree-optimization/65747
28181         * ipa-icf-gimple.c (func_checker::compare_operand): Use compare_operand
28182         rather than compare_ssa_name for OBJ_TYPE_REF_OBJECT.
28183
28184 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
28185
28186         * doc/invoke.texi (-Wmemset-transposed-args): Break a long
28187         sentence.  Improve grammar.
28188
28189 2015-04-12  Gerald Pfeifer  <gerald@pfeifer.com>
28190
28191         * doc/contrib.texi (Contributors): Add Maxim Kuvyrkov.
28192
28193 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
28194
28195         PR ipa/65743
28196         * ipa-inline-transform.c (speculation_removed): Remove static var.
28197         (check_speculations): New function.
28198         (clone_inlined_nodes): Do not check spculations.
28199         (inline_call): Call check_speculations.
28200         * ipa-prop.c (ipa_make_edge_direct_to_target): Do not
28201         consider non-invariants.
28202
28203 2015-04-11  Jan Hubicka  <hubicka@ucw.cz>
28204             Martin Liska  <mliska@suse.cz>
28205
28206         PR ipa/65722
28207         * ipa-icf.c (sem_item::compare_cgraph_references): function and
28208         variable can not match.
28209         (sem_item::update_hash_by_addr_refs): Fix handling of virtual tables.
28210         (sem_variable::equals_wpa): Fix checking of DECL_FINAL_P patch.
28211
28212 2015-04-11  Jakub Jelinek  <jakub@redhat.com>
28213
28214         PR tree-optimization/65735
28215         * tree-ssa-threadedge.c (fsm_find_control_statement_thread_paths):
28216         Remove visited_phis argument, add visited_bbs, avoid recursing into the
28217         same bb rather than just into the same phi node.
28218         (thread_through_normal_block): Adjust caller.
28219
28220 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
28221
28222         * doc/contrib.texi (Contributors): Add Ira Rosen.
28223
28224 2015-04-11  Benno Schulenberg  <bensberg@justemail.net>
28225
28226         * gcov.c (find_source): Fix miswording in error message.
28227         * config/i386/i386.c (ix86_handle_cconv_attribute): Likewise.
28228         (ix86_expand_sse_comi_round): Fix typo in error message.
28229
28230 2015-04-11  Gerald Pfeifer  <gerald@pfeifer.com>
28231
28232         * doc/contrib.texi (Contributors): Add Laurynas Biveinis.
28233
28234 2015-04-10  Gerald Pfeifer  <gerald@pfeifer.com>
28235
28236         * doc/contrib.texi (Contributors): Update Joe Buck's entry.
28237
28238 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
28239
28240         PR target/65710
28241         * lra-assigns.c (spill_for): Update smallest_bad_spills_num.
28242         Print bad_spills_num and insn_pseudos_num.
28243
28244 2015-04-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28245
28246         PR target/65694
28247         * config/arm/arm.c (arm_canonicalize_comparison): Use ARM_SIGN_EXTEND
28248         when creating +1 values for SImode.
28249
28250 2015-04-10  Vladimir Makarov  <vmakarov@redhat.com>
28251
28252         PR target/65729
28253         * lra-constraints.c (prohibited_class_reg_set_mode_p): Comment the
28254         assert.
28255
28256 2015-04-10  Jakub Jelinek  <jakub@redhat.com>
28257             Iain Sandoe  <iain@codesourcery.com>
28258
28259         PR target/65351
28260         * configure: Regenerate.
28261
28262 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
28263
28264         PR target/65671
28265         * config/i386/sse.md: Generate vextract32x4 if AVX-512DQ is disabled.
28266
28267 2015-04-09  Gerald Pfeifer  <gerald@pfeifer.com>
28268
28269         * doc/contrib.texi (Contributors): Add John Marino.
28270
28271 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
28272
28273         PR tree-optimization/65709
28274         * ubsan.c (instrument_mem_ref): Use TREE_TYPE (base) instead of
28275         TREE_TYPE (TREE_TYPE (t)).
28276
28277 2015-04-09  Vladimir Makarov  <vmakarov@redhat.com>
28278
28279         PR target/65710
28280         * lra-int.h (lra_bad_spill_regno_start): New.
28281         * lra.c (lra_bad_spill_regno_start): New.
28282         (lra): Set up lra_bad_spill_regno_start.  Set up
28283         lra_constraint_new_regno_start unconditionally.
28284         * lra-assigns.c (spill_for): Use lra_bad_spill_regno_start for
28285         spill preferences.
28286
28287 2015-04-09  Marek Polacek  <polacek@redhat.com>
28288             Jakub Jelinek  <jakub@redhat.com>
28289
28290         PR middle-end/65554
28291         * gimple-fold.c (gimple_fold_builtin_memory_op): Update comment.
28292         (fold_ctor_reference): Use STRIP_USELESS_TYPE_CONVERSION instead
28293         of STRIP_NOPS.
28294
28295 2015-04-09  Segher Boessenkool  <segher@kernel.crashing.org>
28296
28297         PR rtl-optimization/65693
28298         * combine.c (is_parallel_of_n_reg_sets): Move outside of
28299         #ifndef HAVE_cc0.
28300
28301 2015-04-09  Georg-Johann Lay  <avr@gjlay.de>
28302
28303         PR target/65296
28304         * config/avr/driver-avr.c (avr_devicespecs_file): Don't specify a
28305         device specs file if "device-specs%s" didn't resolve to a path.
28306
28307 2015-04-09  Kirill Yukhin  <kirill.yukhin@intel.com>
28308
28309         PR target/65676
28310         * config/i386/i386.c (fixup_modeless_constant): New.
28311         (ix86_expand_args_builtin): Fixup modeless constant operand.
28312         (ix86_expand_round_builtin): Ditto.
28313         (ix86_expand_special_args_builtin): Ditto.
28314         (ix86_expand_builtin): Ditto.
28315
28316 2015-04-09  Jakub Jelinek  <jakub@redhat.com>
28317
28318         PR target/65693
28319         * config/i386/i386.md (*udivmod<mode>4_pow2): Allow
28320         any pow2 integer in between 2 and 0x80000000U inclusive.
28321
28322 2015-04-08  Segher Boessenkool  <segher@kernel.crashing.org>
28323
28324         PR rtl-optimization/65693
28325         * combine.c (is_parallel_of_n_reg_sets): Change first argument
28326         from an rtx_insn * to an rtx.
28327         (try_combine): Adjust both callers.  Use it once more.
28328
28329 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
28330
28331         * tree-chkp.c (chkp_find_const_bounds_var): Remove.
28332         (chkp_make_static_const_bounds): Search existing
28333         symbol by assembler name.  Use make_decl_one_only.
28334         (chkp_get_zero_bounds_var): Remove node search which
28335         is now performed in chkp_make_static_const_bounds.
28336         (chkp_get_none_bounds_var): Likewise.
28337
28338 2015-04-08  Michael Witten  <mfwitten@gmail.com>
28339
28340         * doc/extend.texi (Attribute Syntax): Add a trailing semicolon
28341         to an example.
28342
28343 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
28344
28345         * tree.h (CONVERT_EXPR_P): Commentary typo fix.
28346
28347 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
28348
28349         * doc/extend.texi (__sync Builtins): Fix grammar.
28350
28351 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
28352
28353         * doc/cfg.texi (GIMPLE statement iterators): Fix typo.
28354
28355 2015-04-08  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
28356
28357         * varasm.c (emit_local): Move definition of align.
28358
28359 2015-04-08  Julian Brown  <julian@codesourcery.com>
28360
28361         * config/nvptx/mkoffload.c (process): Support variable mapping.
28362
28363 2015-03-27  Trevor Saunders  <tbsaunde@tbsaunde.org>
28364
28365         * config/alpha/alpha.c (alpha_use_linkage): Change type of slot to
28366         alpha_links **.
28367         (alpha_write_one_linkage): Correct typo.
28368
28369 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
28370
28371         * ipa-comdats.c (propagate_comdat_group): Walk through thunks.
28372
28373 2015-04-08  Gerald Pfeifer  <gerald@pfeifer.com>
28374
28375         * doc/install.texi (bootstrap-lto-noplugin): Rewrite.
28376
28377 2015-04-08  Ilya Enkovich  <ilya.enkovich@intel.com>
28378
28379         * tree-chkp.h (chkp_insert_retbnd_call): New.
28380         * tree-chkp.c (chkp_insert_retbnd_call): New.
28381         * ipa-split.c (insert_bndret_call_after): Remove.
28382         (split_function): Use chkp_insert_retbnd_call.
28383         * cgraphunit.c (cgraph_node::expand_thunk): Build returned
28384         bounds for instrumented functions.
28385
28386 2015-04-07  Jan Hubicka  <hubicka@ucw.cz>
28387
28388         PR ipa/65540
28389         * calls.c (initialize_argument_information): When producing tail
28390         call also turn SSA_NAMES passed by references to original PARM_DECLs
28391
28392 2015-04-07  Vladimir Makarov  <vmakarov@redhat.com>
28393
28394         PR target/65648
28395         * lra-remat.c (do_remat): Process input and non-input insn
28396         registers separately.
28397
28398 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
28399
28400         PR debug/65678
28401         * valtrack.c (debug_lowpart_subreg): New function.
28402         (dead_debug_insert_temp): Use it.
28403
28404         PR middle-end/65680
28405         * expr.c (get_inner_reference): Handle bit_offset that doesn't fit
28406         into signed HOST_WIDE_INT the same as negative bit_offset.
28407
28408 2015-04-07  Ilya Enkovich  <ilya.enkovich@intel.com>
28409
28410         * ipa-comdats.c (ipa_comdats): Visit all thunks
28411         to set proper comdat group.
28412
28413 2015-04-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
28414
28415         PR target/65489
28416         * config/arm/arm.c (arm_legitimate_constant_p_1): Remove restriction
28417         on constants for NEON VSTRUCT modes.
28418
28419 2015-04-07  Jakub Jelinek  <jakub@redhat.com>
28420             Iain Sandoe  <iain@codesourcery.com>
28421
28422         PR target/65351
28423         * configure: Regenerate.
28424
28425 2015-04-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
28426
28427         PR target/65614
28428         * config/rs6000/rs6000.c (struct processor_costs): Add cost field
28429         for SF->DF conversions to make FLOAT_EXTEND more expensive, so
28430         that LFD is used to load double constants instead of LFS.  Add
28431         defaults for all costs structures.  Add comments for missing
28432         initialization fields.
28433         (size32_cost): Likewise.
28434         (size64_cost): Likewise.
28435         (rs64a_cost): Likewise.
28436         (mpccore_cost): Likewise.
28437         (ppc403_cost): Likewise.
28438         (ppc405_cost): Likewise.
28439         (ppc440_cost): Likewise.
28440         (ppc476_cost): Likewise.
28441         (ppc601_cost): Likewise.
28442         (ppc603_cost): Likewise.
28443         (ppc604_cost): Likewise.
28444         (ppc604e_cost): Likewise.
28445         (ppc620_cost): Likewise.
28446         (ppc630_cost): Likewise.
28447         (ppccell_cost): Likewise.
28448         (ppc750_cost): Likewise.
28449         (ppc7450_cost): Likewise.
28450         (ppc8540_cost): Likewise.
28451         (ppce300c2c3_cost): Likewise.
28452         (ppce500mc_cost): Likewise.
28453         (ppce500mc64_cost): Likewise.
28454         (ppce5500_cost): Likewise.
28455         (ppce6500_cost): Likewise.
28456         (titan_cost): Likewise.
28457         (power4_cost): Likewise.
28458         (power6_cost): Likewise.
28459         (power7_cost): Likewise.
28460         (power8_cost): Likewise.
28461         (ppca2_cost): Likewise.
28462         (rs6000_rtx_costs): Make FLOAT_EXTEND use SFDF_convert field.
28463
28464         * config/rs6000/rs6000.md (extendsfdf2_fpr): Generate XSCPSGNDP
28465         instead of XXLOR to copy SFmode to clear out dirty bits created
28466         when SFmode denormals are generated.
28467         (mov<mode>_hardfloat, FMOVE32 case): Likewise.
28468         (truncdfsf2_fpr): Add support for ISA 2.07 XSRSP instruction.
28469
28470 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
28471
28472         * doc/invoke.texi (AARCH64/mtune): Add exynos-m1 as an option.
28473         * config/aarch64/aarch64-cores.def (exynos-m1): New core.
28474         * config/aarch64/aarch64-tune.md: Regenerate.
28475
28476 2015-04-06  Evandro Menezes  <e.menezes@samsung.com>
28477
28478         * doc/invoke.texi (ARM/mtune): Add "exynos-m1" as an option.
28479         * config/arm/arm.c (arm_issue_rate): Specify "3" for "exynosm1".
28480         * config/arm/arm-cores.def (exynos-m1): New core.
28481         * config/arm/arm-tune.md: Regenerate.
28482         * config/arm/arm-tables.opt: Add entry for "exynos-m1".
28483         * config/arm/bpabi.h: Likewise.
28484
28485 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
28486
28487         * ipa-cp (set_single_call_flag): Remove too
28488         restrictive assert.
28489
28490 2015-04-06  Ilya Verbin  <ilya.verbin@intel.com>
28491
28492         * config/i386/intelmic-mkoffload.c (generate_host_descr_file): Call
28493         GOMP_offload_unregister from the destructor.
28494
28495 2015-04-06  Ilya Enkovich  <ilya.enkovich@intel.com>
28496
28497         * ipa-chkp.c (chkp_maybe_create_clone): Reset cdtor
28498         flags for instrumentation thunk.
28499         (chkp_produce_thunks): Likewise.
28500
28501 2015-04-05  Martin Liska  <mliska@suse.cz>
28502
28503         PR ipa/65665
28504         * ipa-icf.c (sem_function::equals_wpa): Verify that IPA CP
28505         has computed data structure.
28506         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
28507
28508 2015-04-04  Jan Hubicka  <hubicka@ucw.cz>
28509
28510         * invoke.texi (inline-unit-growth): Increase growth to 20%
28511         * params.def (PARAM_INLINE_UNIT_GROWTH): Likewise.
28512
28513 2015-04-04  Vladimir Makarov  <vmakarov@redhat.com>
28514
28515         PR target/65647
28516         * lra-int.h (LRA_MAX_REMATERIALIZATION_PASSES): New.  Add its
28517         value checking.
28518         (lra_rematerialization_iter): New.
28519         * lra.c (lra): Initialize lra_rematerialization_iter.
28520         Stop updating lra_constraint_new_regno_start after switching of
28521         inheritance and rematerialization.
28522         * lra-remat.c (lra_rematerialization_iter): New.
28523         (lra_remat): Add printing pass iteration.  Do rematerialization
28524         only first LRA_MAX_REMATERIALIZATION_PASSES iterations.
28525
28526 2015-04-04  Richard Biener  <rguenther@suse.de>
28527
28528         PR tree-optimization/64909
28529         PR tree-optimization/65660
28530         * tree-vectorizer.h (vect_get_known_peeling_cost): Adjust
28531         to take a cost vector for scalar iteration cost.
28532         (vect_get_single_scalar_iteration_cost): Likewise.
28533         * tree-vect-loop.c (vect_get_single_scalar_iteration_cost):
28534         Compute the scalar iteration cost into a cost vector.
28535         (vect_get_known_peeling_cost): Use the scalar cost vector to
28536         account for the cost of the peeled iterations.
28537         (vect_estimate_min_profitable_iters): Likewise.
28538         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
28539         Likewise.
28540
28541 2015-04-04  Alan Modra  <amodra@gmail.com>
28542
28543         PR target/65576
28544         PR target/65240
28545         * config/rs6000/predicates.md (zero_reg_mem_operand): Exclude
28546         0.0 constant unless TARGET_VSX.
28547         * config/rs6000/rs6000.md (extenddftf2_internal): Remove last
28548         alternative.
28549
28550 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
28551
28552         PR ipa/65654
28553         * ipa-inline-transform.c (inline_call): Skip sanity check to work
28554         around the ICE
28555
28556 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
28557
28558         PR ipa/65655
28559         * ipa-inline-analysis.c (edge_set_predicate): Do not redirect
28560         speculative indirect edges to avoid ordering issue.
28561
28562 2015-04-03  Jan Hubicka  <hubicka@ucw.cz>
28563
28564         PR ipa/65076
28565         * ipa-inline.c (edge_badness): Add combined size to the denominator.
28566
28567 2015-04-03  Jakub Jelinek  <jakub@redhat.com>
28568
28569         * omp-low.c (scan_omp_parallel, scan_omp_task, scan_omp_target): Set
28570         TYPE_ARTIFICIAL on the .omp_data* types.
28571
28572 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
28573
28574         * cgraphunit.c (cgraph_node::expand_thunk): Don't expand
28575         instrumentation thunks.
28576
28577 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
28578
28579         * config/i386/i386.c (ix86_expand_call): Avoid nested
28580         PARALLEL in returned call value.
28581
28582 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
28583
28584         * lto-cgraph.c (input_cgraph_1): Always link instrumented
28585         assembler name with original one.
28586
28587 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
28588
28589         * config/i386/i386.c (ix86_register_priority): Use AX_REG.
28590
28591 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
28592
28593         Revert parts of r216820.
28594         * config/i386/i386.md (movqi_internal): Correct type calculation
28595         for alternatives 3 and 5.
28596
28597 2015-04-02  Jakub Jelinek  <jakub@redhat.com>
28598
28599         PR preprocessor/61977
28600         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Don't
28601         predefine __vector/__bool/__pixel macros nor context sensitive
28602         macros for CLK_ASM.
28603         * config/spu/spu-c.c (spu_cpu_cpp_builtins): Similarly.
28604
28605 2015-04-02  John David Anglin  <danglin@gcc.gnu.org>
28606
28607         * config/pa/pa.c (pa_output_move_double): Directly handle register
28608         indexed memory operand.  Simplify handling of scaled register indexed
28609         memory operands.
28610
28611 2015-04-02  Ilya Enkovich  <ilya.enkovich@intel.com>
28612
28613         PR driver/65444
28614         * config/i386/linux-common.h (MPX_SPEC): New.
28615         (CHKP_SPEC): Add MPX_SPEC.
28616         * doc/invoke.texi (-fcheck-pointer-boudns): Document
28617         possible issues with '-z bndplt' support in linker.
28618
28619 2015-04-02  Uros Bizjak  <ubizjak@gmail.com>
28620
28621         * config/i386/sync.md (UNSPEC_FILD_ATOMIC, UNSPEC_FIST_ATOMIC): New.
28622         (loaddi_via_fpu): Use UNSPEC_FILD_ATOMIC.
28623         (storedi_via_fpu): Use UNSPEC_FIST_ATOMIC.
28624         * reg-stack.c (get_true_reg): Change UNSPEC_LDA to UNSPEC_FILD_ATOMIC.
28625         (subst_stack_regs_pat): Change UNSPEC_STA to UNSPEC_FIST_ATOMIC.
28626
28627 2015-04-01  Uros Bizjak  <ubizjak@gmail.com>
28628
28629         * config/i386/sync.md (UNSPEC_MOVA): Remove.
28630         (atomic_load<mode>): Change operand 0 predicate to
28631         nonimmediate_operand and fix up the destination when needed.
28632         Use UNSPEC_LDA.
28633         (atomic_loaddi_fpu): Use UNSPEC_LDA.
28634         (atomic_store<mode>): Change operand 1 predicate to
28635         nonimmendate_operand and move the source to register when needed.
28636         Use UNSPEC_STA.
28637         (atomic_store<mode>_1): Use UNSPEC_STA.
28638         (atomic_storedi_fpu): Change operand 1 to nonimmediate_operand.
28639         Fix moves from memory operand.  Use UNSPEC_STA.
28640
28641 2015-04-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
28642
28643         * expmed.c (strict_volatile_bitfield_p): Check that the access will
28644         not cross a MODESIZE boundary.
28645         (store_bit_field, extract_bit_field): Added assertions in the
28646         strict volatile bitfields code path.
28647
28648 2015-04-01  Max Ostapenko  <m.ostapenko@partner.samsung.com>
28649
28650         PR target/65624
28651         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
28652         Increase args array size by one to avoid buffer overflow.
28653
28654 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
28655
28656         * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
28657         split_part.
28658         * ipa-inline.c (edge_badness): Add wrapper penalty.
28659         (sum_callers): Move up.
28660         (inline_small_functions): Set single_caller.
28661         * ipa-inline.h (inline_summary): Add single_caller.
28662         * ipa-split.c (split_function): Set split_part.
28663         (cgraph_node::create_clone): Do not shadow decl; copy split_part.
28664         * cgraph.h (cgraph_node): Add split_part.
28665
28666 2015-03-31  Uros Bizjak  <ubizjak@gmail.com>
28667
28668         PR target/58945
28669         * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
28670         Do not split operands 0 and operands 2 to halfmode.
28671         (atomic_compare_and_swap<mode>): Update for
28672         atomic_compare_and_swap<dwi>_doubleword changes.
28673
28674 2015-03-31  Jan Hubicka  <hubicka@ucw.cz>
28675
28676         * tree.c (need_assembler_name_p): Artificial types have no ODR names.
28677         * ipa-devirt.c (warn_odr): Do not try to apply ODR cache when
28678         no caching is done.
28679
28680 2015-03-31  Martin Liska  <mliska@suse.cz>
28681
28682         PR ipa/65557
28683         * ipa-icf.c (sem_function::equals_wpa): Check if IPA CP
28684         has already filled up function summary.
28685         (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
28686
28687 2015-03-31  Richard Biener  <rguenther@suse.de>
28688
28689         * tree-sra.c (create_access_replacement): Drop under-/over-alignment
28690         of types.
28691
28692 2015-03-31  Dominik Vogt  <vogt@linux.vnet.ibm.com>
28693
28694         * config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
28695         nested functions.
28696         (s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw.
28697         (s390_asm_output_function_label): Adapt to new signature of
28698         s390_function_num_hotpatch_hw
28699         Optimise the code generating assembler output.
28700         Add comments to assembler file.
28701
28702 2015-03-31  Richard Biener  <rguenther@suse.de>
28703
28704         PR middle-end/65626
28705         * tree-cfgcleanup.c (fixup_noreturn_call): Only split the block
28706         of the noreturn call so it is last and cleanup_control_flow_bb
28707         can do the CFG part.
28708
28709 2015-03-31  Ilya Enkovich  <ilya.enkovich@intel.com>
28710
28711         PR target/65531
28712         * ipa-chkp.c (chkp_maybe_create_clone): Don't set
28713         same_comdat_group for external symbols.
28714         * symtab.c (symtab_node::verify_symtab_nodes): Avoid
28715         infinite same_comdat_group traversal loop.
28716
28717 2015-03-31  Jakub Jelinek  <jakub@redhat.com>
28718
28719         PR plugins/61176
28720         * Makefile.in (install-plugin): Add all gcc/*.{h,def} files
28721         automatically to $headers.
28722
28723 2015-03-30  Jakub Jelinek  <jakub@redhat.com>
28724
28725         PR ipa/65610
28726         * ipa-utils.h (inlined_polymorphic_ctor_dtor_block_p): Declare.
28727         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p): New
28728         function.
28729         (decl_maybe_in_construction_p, noncall_stmt_may_be_vtbl_ptr_store):
28730         Use it.
28731         * ipa-prop.c (param_type_may_change_p): Likewise.
28732         * tree-ssa-live.c: Include ipa-utils.h and its dependencies.
28733         (remove_unused_scope_block_p): Add in_ctor_dtor_block
28734         argument.  Before inlining, preserve
28735         inlined_polymorphic_ctor_dtor_block_p blocks and the outermost block
28736         with FUNCTION_DECL BLOCK_ABSTRACT_ORIGIN inside of them.  Adjust
28737         recursive calls.
28738         (remove_unused_locals): Adjust remove_unused_scope_block_p caller.
28739
28740 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
28741
28742         PR ipa/65076
28743         * ipa-inline.c (edge_badness): Base denominator on callee's
28744         grwoth squared.
28745
28746 2015-03-27  Martin Jambor  <mjambor@suse.cz>
28747
28748         PR ipa/65478
28749         * params.def (PARAM_IPA_CP_RECURSION_PENALTY) : New.
28750         (PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise.
28751         * ipa-prop.h (ipa_node_params): New flags node_within_scc and
28752         node_calling_single_call.
28753         * ipa-cp.c (count_callers): New function.
28754         (set_single_call_flag): Likewise.
28755         (initialize_node_lattices): Count callers and set single_flag_call if
28756         necessary.
28757         (incorporate_penalties): New function.
28758         (good_cloning_opportunity_p): Use it, dump new flags.
28759         (propagate_constants_topo): Set node_within_scc flag if appropriate.
28760         * doc/invoke.texi (ipa-cp-recursion-penalty,
28761         ipa-cp-single-call-pentalty): Document.
28762
28763 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
28764
28765         PR ipa/65588
28766         * symtab.c (symtab_node::get_partitioning_class): Register vars
28767         are duplicated.
28768         * varpool.c (symbol_table::output_variables) Do not assemble unefined
28769         decls for non-symbols.
28770
28771 2015-03-27  H.J. Lu  <hongjiu.lu@intel.com>
28772
28773         PR target/65248
28774         * output.h (default_binds_local_p_2): New.
28775         * varasm.c (default_binds_local_p_2): Renamed to ...
28776         (default_binds_local_p_3): This.  Don't return true on protected
28777         data symbol if protected data may be external.
28778         (default_binds_local_p): Use default_binds_local_p_3.
28779         (default_binds_local_p_1): Likewise.
28780         (default_binds_local_p_2): New.
28781         * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Set to
28782         default_binds_local_p_2 if TARGET_MACHO is undefined.
28783
28784 2015-03-27  Jakub Jelinek  <jakub@redhat.com>
28785
28786         PR target/65593
28787         * config/i386/i386.c (legitimize_pic_address): If base
28788         is SYMBOL_REF or LABEL_REF using %rip addressing, force
28789         it to reg to avoid PLUS of SYMBOL_REF/LABEL_REF and register.
28790
28791 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
28792
28793         PR target/65531
28794         * symtab.c (symtab_node::verify_symtab_nodes): Fix verification of
28795         comdat groups.
28796
28797 2015-03-27  Jan Hubicka  <hubicka@ucw.cz>
28798
28799         PR ipa/65600
28800         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Fix the case
28801         of optimized out indirect call.
28802         (redirect_to_unreachable): Always build symbol table node for
28803         BUILT_IN_UNREACHABLE
28804
28805 2015-03-27  Vladimir Makarov  <vmakarov@redhat.com>
28806
28807         PR target/65407
28808         * ira-costs.c (record_reg_classes): Process all constraint string
28809         containing 0-9.
28810
28811 2015-03-27  Bernd Schmidt  <bernds@codesourcery.com>
28812
28813         * config/c6x/c6x.md (movmisalign<mode>): Use MEM_P, not
28814         memory_operand.
28815
28816         PR target/65052
28817         * config/c6x/constraints.md (S3): New constraint.
28818         * config/c6x/c6x.md (real_jump): Use it.
28819
28820 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
28821
28822         PR middle-end/65595
28823         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Only
28824         do redirection if the call is not optimized out.
28825
28826 2015-03-27  Ilya Enkovich  <ilya.enkovich@intel.com>
28827
28828         PR target/65495
28829         * c-family/c.opt (fcheck-pointer-bounds): List supported languages.
28830         (fchkp-check-incomplete-type): Add LTO.
28831         (fchkp-zero-input-bounds-for-main): Likewise.
28832         (fchkp-first-field-has-own-bounds): Likewise.
28833         (fchkp-narrow-bounds): Likewise.
28834         (fchkp-narrow-to-innermost-array): Likewise.
28835         (fchkp-use-static-bounds): Likewise.
28836         (fchkp-use-static-const-bounds): Likewise.
28837         (fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
28838
28839 2015-03-27  Marek Polacek  <polacek@redhat.com>
28840
28841         * gimple-iterator.h (gsi_prev_nondebug): Fix typo.
28842
28843 2015-03-27  Marek Polacek  <polacek@redhat.com>
28844
28845         PR sanitizer/65583
28846         * ubsan.c (ubsan_create_edge): New function.
28847         (instrument_bool_enum_load): Call it.
28848         (instrument_nonnull_arg): Likewise.
28849         (instrument_nonnull_return): Likewise.
28850         (instrument_object_size): Likewise.
28851
28852 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
28853
28854         * lto-streamer.h (class lto_location_cache): Turn loc_cache into
28855         auto_vec.
28856
28857 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
28858
28859         PR lto/65536
28860         * lto-streamer.h (class lto_location_cache): New.
28861         (struct data_in): Add location_cache.
28862         (lto_input_location): Update prototype.
28863         (stream_input_location_now): New.
28864         * streamer-hooks.h (struct streamer_hooks): Make input_location to take
28865         pointer to location.
28866         (stream_input_location): Update.
28867         * ipa-devirt.c: Include streamer-hooks.h and lto-streamer.h
28868         (warn_odr): Apply location cache before warning.
28869         (lto_input_location): Update prototype.
28870         * gimple-streamer-in.c (input_phi, input_gimple_stmt):
28871         Use stream_input_location_now.
28872         * lto-streamer-in.c (lto_location_cache::current_cache): New static
28873         variable.
28874         (lto_location_cache::cmp_loc): New function.
28875         (lto_location_cache::apply_location_cache): New function.
28876         (lto_location_cache::accept_location_cache): New function.
28877         (lto_location_cache::revert_location_cache): New function.
28878         (lto_location_cache::input_location): New function.
28879         (lto_input_location): Do location caching.
28880         (stream_input_location_now): New function.
28881         (input_eh_region, input_struct_function_base): Use
28882         stream_input_location_now.
28883         (lto_data_in_create): use new.
28884         (lto_data_in_delete): Use delete.
28885         * tree-streamer-in.c (unpack_ts_block_value_fields,
28886         unpack_ts_omp_clause_value_fields, streamer_read_tree_bitfields,
28887         lto_input_ts_exp_tree_pointers): Update for cached location api.
28888
28889 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
28890
28891         PR ipa/65076
28892         * passes.def: Add pass_nothrow.
28893         * ipa-pure-const.c: (pass_data_nothrow): New.
28894         (pass_nothrow): New.
28895         (pass_nothrow::execute): New.
28896         (make_pass_nothrow): New.
28897         * tree-pass.h (make_pass_nothrow): Declare.
28898
28899 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
28900
28901         * ipa-inline-analysis.c (redirect_to_unreachable): Be prepared for
28902         edge to change by speculation resolution or redirection.
28903         (edge_set_predicate): Likewise.
28904         (inline_summary_t::duplicate): Likewise.
28905         (remap_edge_summaries): Likewise.
28906
28907 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
28908
28909         * ipa-inline.c (check_maybe_up, check_maybe_down, check_match):
28910         New macros.
28911         (can_inline_edge_p): Relax option matching for always inline functions.
28912
28913 2015-03-26  Uros Bizjak  <ubizjak@gmail.com>
28914
28915         PR target/65561
28916         * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm):
28917         Check operand 4 and operand 0 for equality.
28918         (avx512f_vextract<shuffletype>32x4_1_maskm):
28919         Check operand 6 and operand 0 for equality.
28920         (vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
28921         for equality.
28922         (vec_extract_hi_<mode>_maskm): Ditto.
28923
28924 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
28925
28926         * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not bring
28927         dead calls back to live.
28928         (cgraph_edge::verify_count_and_frequency): Move cgraph/cfg frequency
28929         cross check to ...
28930         (cgraph_node::verify_node): ... here; verify only callee edges,
28931         not caller.
28932         * cif-code.def (CILK_SPAWN): New code.
28933
28934 2015-03-26  Jan Hubicka  <hubicka@ucw.cz>
28935
28936         * ipa-inline-analysis.c (redirect_to_unreachable): New function.
28937         (edge_set_predicate): Use it to mark unreachable edges.
28938         (inline_summary_t::duplicate): Remove unnecesary code.
28939         (remap_edge_summaries): Likewise.
28940         (dump_inline_summary): Report contains_cilk_spawn.
28941         (compute_inline_parameters): Compute contains_cilk_spawn.
28942         (inline_read_section, inline_write_summary): Stream
28943         contains_cilk_spawn.
28944         * ipa-inline.c (can_inline_edge_p): Do not touch
28945         DECL_STRUCT_FUNCTION that may not be available;
28946         use CIF_CILK_SPAWN for cilk; fix optimization attribute checks;
28947         remove check for callee_fun->can_throw_non_call_exceptions and
28948         replace it by optimization attribute check; check for flag_exceptions.
28949         * ipa-inline-transform.c (inline_call): Maintain
28950         DECL_FUNCTION_PERSONALITY
28951         * ipa-inline.h (inline_summary): Add contains_cilk_spawn.
28952
28953 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
28954
28955         PR tree-optimization/65551
28956         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use
28957         TYPE_PRECISION only for INTEGRAL_TYPE_P types.
28958
28959 2015-03-26  Richard Biener  <rguenther@suse.de>
28960
28961         PR middle-end/65555
28962         * tree-cfg.c (verify_gimple_call): Do not require a call to
28963         have no LHS if it wasn't recognized as control altering yet.
28964
28965 2015-03-26  Jakub Jelinek  <jakub@redhat.com>
28966
28967         PR tree-optimization/64715
28968         * passes.def: Add another instance of pass_object_sizes before ccp1.
28969         * tree-object-size.c (pass_object_sizes::execute): In
28970         first_pass_instance, only handle __bos (, 1) and __bos (, 3)
28971         calls, and keep the call in the IL, as {MIN,MAX}_EXPR of the
28972         __bos result and the computed constant.  Remove redundant
28973         checks, obsoleted by gimple_call_builtin_p test.
28974
28975         * var-tracking.c (variable_tracking_main_1): Don't track
28976         variables for targetm.no_register_allocation targets.
28977
28978 2015-03-26  Oleg Endo  <olegendo@gcc.gnu.org>
28979
28980         * config/sh/t-linux (DEFAULT_ENDIAN, MULTILIB_EXCEPTIONS): Remove.
28981         * config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.
28982
28983 2015-03-25  Michael Meissner  <meissner@linux.vnet.ibm.com>
28984
28985         PR target/65569
28986         * config/rs6000/rs6000.md (extenddftf2_fprs): On VSX systems use
28987         XXLXOR to create 0.0.  On pre-VSX systems make sure the constant
28988         0.0 is correctly setup.
28989         (extenddftf2_internal): Likewise.
28990
28991 2015-03-25  Sebastian Pop  <s.pop@samsung.com>
28992
28993         PR tree-optimization/65177
28994         * tree-ssa-threadupdate.c (verify_seme): Renamed verify_jump_thread.
28995         (bb_in_bbs): New.
28996         (duplicate_seme_region): Renamed duplicate_thread_path.  Redirect all
28997         edges not adjacent on the path to the original code.
28998
28999 2015-03-25  Uros Bizjak  <ubizjak@gmail.com>
29000
29001         PR bootstrap/65537
29002         * doc/install.texi (Building a native compiler): Document new
29003         bootstrap-lto-noplugin configuration.  Mention that bootstrap-lto
29004         configuration assumes that the host supports the linker plugin.
29005
29006 2015-03-25  Ilya Enkovich  <ilya.enkovich@intel.com>
29007
29008         PR target/65508
29009         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Set static
29010         chain for generated call.
29011
29012 2015-03-25  Richard Biener  <rguenther@suse.de>
29013
29014         * passes.c (pass_manager::execute_early_local_passes): Guard
29015         execution of pass_chkp_instrumentation_passes with
29016         flag_check_pointer_bounds.
29017         (pass_chkp_instrumentation_passes::gate): Likewise.
29018
29019 2015-03-25  Martin Liska  <mliska@suse.cz>
29020
29021         PR tree-optimization/65538
29022         * symbol-summary.h (function_summary::~function_summary):
29023         Relese memory for allocated summaries.
29024         (function_summary::release): New function.
29025
29026 2015-03-25  Jakub Jelinek  <jakub@redhat.com>
29027
29028         PR lto/65515
29029         * lto-streamer-out.c (DFS::worklist): New struct.
29030         (DFS::worklist_vec): New data member.
29031         (DFS::next_dfs_num): Remove.
29032         (DFS::DFS): Rewritten using worklist instead of recursion,
29033         using most of code from DFS::DFS_write_tree.
29034         (DFS::DFS_write_tree_body): Remove SINGLE_P argument, don't
29035         pass it to DFS_write_tree calls.
29036         (DFS::DFS_write_tree): Remove SINGLE_P argument, after
29037         quick initial checks push it into worklist_vec and return.
29038
29039 2015-03-25  Richard Biener  <rguenther@suse.de>
29040
29041         PR middle-end/65519
29042         * genmatch.c (expr::gen_transform): Re-write to avoid
29043         using gimple_build.
29044
29045 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
29046
29047         * doc/sourcebuild.texi (arm_tune_string_ops_prefer_neon): New.
29048
29049 2015-03-25  Bin Cheng  <bin.cheng@arm.com>
29050
29051         * config/arm/arm.opt (print_tune_info): New option.
29052         * config/arm/arm.c (arm_print_tune_info): New function.
29053         (arm_file_start): Call arm_print_tune_info.
29054         * config/arm/arm-protos.h (struct tune_params): Add comment.
29055         * doc/invoke.texi (@item -mprint-tune-info): New item.
29056         (-mtune): mention it in ARM Option Summary.
29057
29058 2015-03-25  DJ Delorie  <dj@redhat.com>
29059
29060         * config/rl78/rl78.c (rl78_print_operand_1): Move 'p' test to
29061         correct clause.
29062
29063 2015-03-24  Jan Hubicka  <hubicka@ucw.cz>
29064             Martin Liska  <mliska@suse.cz>
29065
29066         * ipa-icf-gimple.h (return_with_result): Add missing colon to dump.
29067         * ipa-icf.c (sem_function::get_hash): Hash new declaration properties.
29068         (sem_item::add_type): New function.
29069         (sem_function::hash_stmt): Add TREE_TYPE of gimple_op.
29070         (sem_function::compare_polymorphic_p): Do not consider indirect calls.
29071         (sem_item_optimizer::update_hash_by_addr_refs): Add ODR type to hash.
29072         (sem_function::equals_wpa): Fix typo.
29073         * ipa-icf.h (sem_item::add_type): New function.
29074         (symbol_compare_hashmap_traits): Replace hashing of pointer with symbol
29075         order.
29076
29077 2015-03-24  Jakub Jelinek  <jakub@redhat.com>
29078
29079         PR tree-optimization/65533
29080         * tree-vect-slp.c (vect_build_slp_tree): Before re-trying
29081         with swapped operands, call vect_free_slp_tree on
29082         SLP_TREE_CHILDREN of child and truncate the SLP_TREE_CHILDREN
29083         vector.
29084
29085 2015-03-24  Richard Biener  <rguenther@suse.de>
29086
29087         PR middle-end/65517
29088         * tree-cfg.c (remove_edge_and_dominated_blocks): Mark loops
29089         for fixup if necessary.
29090
29091 2015-03-23  Sandra Loosemore  <sandra@codesourcery.com>
29092
29093         * doc/extend.texi (Function Attributes): Add @cindex entries
29094         for all attributes and regularize their format.  Delete text
29095         about long-obsolete 68HC11 and 68HC12 targets.  Move misplaced
29096         information about "eightbit_data", "tiny_data", and "model"
29097         variable attributes to the Variable Attributes section.  Fix
29098         some obvious typos and copy-editing issues.
29099         (Variable Attributes, Type Attributes): Likewise add/fix
29100         @cindex entries for all attributes.
29101
29102 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
29103
29104         PR target/65523
29105         * tree-chkp.c (chkp_build_returned_bound): Ignore
29106         ERF_RETURNS_ARG calls if they have fewer than needed arguments.
29107
29108 2015-03-23  Oleg Endo  <olegendo@gcc.gnu.org>
29109
29110         PR target/65505
29111         * config/sh/predicates.md (simple_mem_operand,
29112         displacement_mem_operand): Add test for reg.
29113         (short_displacement_mem_operand): Test for displacement_mem_operand
29114         before invoking sh_disp_addr_displacement.
29115         * config/sh/constraints.md (Sdd, Sra): Simplify.
29116         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1):
29117         Remove redundant displacement_mem_operand tests.
29118
29119 2015-03-23  Georg-Johann Lay  <avr@gjlay.de>
29120
29121         PR target/65296
29122         * config/avr/driver-avr.c (avr_devicespecs_file): Allow to specify
29123         the same -mmcu=MCU more than once.
29124
29125 2015-03-23  Jakub Jelinek  <jakub@redhat.com>
29126
29127         PR bootstrap/65522
29128         * ipa-devirt.c: Remove duplicate demangle.h include.
29129
29130         PR target/65504
29131         * config/i386/i386.c (ix86_copy_addr_to_reg): Set REG_POINTER
29132         on the pseudo.
29133         (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Set
29134         REG_POINTER on *destptr after adjusting it for prologue size.
29135
29136         PR ipa/65521
29137         * ipa-icf.c (sem_item::update_hash_by_addr_refs): Hash
29138         ultimate_alias_target ()->order ints instead of
29139         ultimate_alias_target () pointers.
29140
29141 2015-03-23  Richard Biener  <rguenther@suse.de>
29142
29143         PR tree-optimization/65518
29144         * tree-vect-stmts.c (vectorizable_load): Reject single-element
29145         interleaving cases we generate absymal code for.
29146
29147 2015-03-23  Richard Biener  <rguenther@suse.de>
29148
29149         PR tree-optimization/65494
29150         * tree-vect-slp.c (vect_build_slp_tree): Do not (re-)allocate
29151         matches here.
29152         (vect_analyze_slp_instance): But do that here, always and once.
29153
29154 2015-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29155
29156         * expmed.c (synth_mult): Fix comment about multiplying by T-1 and
29157         adding T or multiplying by T+1 and subracting T.
29158
29159 2015-03-22  Jeff Law  <law@redhat.com>
29160
29161         PR rtl-optimization/64317
29162         * Makefile.in (OBJS): Add gcse-common.c
29163         * gcse.c: Include gcse-common.h
29164         (struct modify_pair_s): Move structure definition to gcse-common.h
29165         (compute_transp): Move function to gcse-common.c.
29166         (canon_list_insert): Similarly.
29167         (record_last_mem_set_info): Break out some code and put it into
29168         gcse-common.c.  Call into the new common code.
29169         (compute_local_properties): Pass additional arguments to compute_transp.
29170         * postreload-gcse.c: Include gcse-common.h and df.h
29171         (modify_mem_list_set, blocks_with_calls): New variables.
29172         (modify_mem_list, canon_modify_mem_list, transp): Likewise.
29173         (get_bb_avail_insn): Pass in the expression index too.
29174         (alloc_mem): Allocate memory for the new bitmaps and lists.
29175         (free_mem): Free memory for the new bitmaps and lists.
29176         (insert_expr_in_table): Record a bitmap index for each entry we
29177         add to the table.
29178         (record_last_mem_set_info): Call into common code in gcse-common.c.
29179         (get_bb_avail_insn): If no available insn was found in the requested
29180         BB.  If BB has a single predecessor, see if the expression is
29181         transparent in BB and available in that single predecessor.
29182         (compute_expr_transp): New wrapper for compute_transp.
29183         (eliminate_partially_redundant_load): Pass expression's bitmap_index
29184         to get_bb_avail_insn.  Compute next_pred_bb_end a bit later.
29185         (gcse_after_reload_main): If there are elements in the hash table,
29186         then compute transparency for all the elements in the hash table.
29187         * gcse-common.h: New file.
29188         * gcse-common.c: New file.
29189
29190 2015-03-22  Sandra Loosemore  <sandra@codesourcery.com>
29191
29192         * doc/cpp.texi (Search Path): Hyphenate "command-line" when used
29193         as an adjective.
29194         (System Headers): Likewise.
29195         (Ifdef): Likewise.
29196         (Traditional macros): Likewise.
29197         (Invocation): Likewise.
29198         (Option Index): Likewise.
29199         * doc/cppopts.texi (-M): Likewise.
29200         (-finput-charset): Likewise.
29201         (--help): Likewise.
29202         * doc.invoke.texi (AVR Options): Likewise.
29203         (V850 Options): Likewise.
29204
29205 2015-03-22  Jan Hubicka  <hubicka@ucw.cz>
29206
29207         PR ipa/65475
29208         * ipa-devirt.c: Include demangle.h
29209         (odr_type_d): Add field rtti_broken.
29210         (odr_subtypes_equivalent_p): Do not require name to match.
29211         (compare_virtual_tables): Fix typo; if type already has ODR violation,
29212         bypass the tests; be ready for function referneces in vtables that are
29213         not DECL_VIRTUAL; make warnings to be OPT_Wodr.
29214         (warn_odr): Give up for nameless types.
29215         (warn_types_mismatch): Report mismatch in mangled names;
29216         report mismatch in anonymous namespaces; look into component types to
29217         give useful error; report when mismatch is dragged in from other ODR
29218         type.
29219         (odr_types_equivalent_p): Match types for being polymorphic; avoid
29220         duplicated diagnostics.
29221         (add_type_duplicate): Reorder checks so more informative ones come
29222         first; fix typo; do not output "the extra base is defined here" when
29223         we did not warn.
29224         (BINFO_N_BASE_BINFOS): Relax sanity check.
29225
29226 2015-03-22  Martin Liska  <mliska@suse.cz>
29227             Jakub Jelinek  <jakub@redhat.com>
29228
29229         * config/i386/i386.c (def_builtin): Set deferred_isa_values for
29230         masks that can potentially include a builtin.
29231         (ix86_add_new_builtins): Introduce fast filter for isa values
29232         that cannot trigger builtin inclusion.
29233
29234 2015-03-22  Martin Liska  <mliska@suse.cz>
29235
29236         * ipa-icf.c (sem_item::update_hash_by_addr_refs): New function.
29237         (sem_item::update_hash_by_local_refs): Likewise.
29238         (sem_variable::get_hash): Empty line is fixed.
29239         (sem_item_optimizer::execute): Include adding of hash references.
29240         (sem_item_optimizer::update_hash_by_addr_refs): New function.
29241         (sem_item_optimizer::build_hash_based_classes): Use local hash.
29242         * ipa-icf.h (sem_item::update_hash_by_addr_refs): New function.
29243         (sem_item::update_hash_by_local_refs): Likewise.
29244
29245 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
29246
29247         PR ipa/65502
29248         * ipa-comdats.c (enqueue_references): Walk through thunks.
29249         (ipa_comdats): Likewise.
29250         (set_comdat_group_1): New function.
29251
29252 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
29253
29254         PR ipa/65475
29255         * ipa-devirt.c (add_type_duplicate): Prevail polymorphic type over
29256         non-polymorphic
29257
29258 2015-03-22  Dave Korn  <dave.korn.cygwin@gmail.com>
29259             Gerald Pfeifer  <gerald@pfeifer.com>
29260
29261         * doc/contrib.texi (Contributors): Update entry for Danny Smith.
29262
29263 2015-03-21  Chung-Lin Tang  <cltang@codesourcery.com>
29264             Sandra Loosemore  <sandra@codesourcery.com>
29265
29266         * config/nios2/nios2-protos.h (nios2_adjust_call_address): Adjust
29267         function parameter declaration.
29268         * config/nios2/nios2.md (call,call_value,sibcall,sibcall_value):
29269         Update arguments to nios2_adjust_call_address().
29270         (sibcall_internal): Rename from *sibcall.
29271         (sibcall_value_internal): Rename from *sibcall_value.
29272         * config/nios2/nios2.c (nios2_emit_add_constant): New function.
29273         (nios2_large_got_address): Add target temp reg parameter.
29274         (nios2_got_address): Adjust call to nios2_large_got_address, add
29275         force_reg around it.
29276         (nios2_load_pic_address): Add target temp reg parameter, replace call
29277         to nios2_got_address with corresponding code.
29278         (nios2_legitimize_constant_address): Update call to
29279         nios2_load_pic_address.
29280         (nios2_adjust_call_address): Add temp reg parameter, update PIC case
29281         to use temp reg for PIC loading purposes.
29282         (nios2_asm_output_mi_thunk): Implement TARGET_ASM_OUTPUT_MI_THUNK.
29283         (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
29284         (TARGET_ASM_OUTPUT_MI_THUNK): Likewise.
29285
29286 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
29287
29288         * doc/invoke.texi (-fno-diagnostics-show-caret): Fix
29289         usage of "the @option{...}".
29290         (-Wopenmp-simd): Likewise.
29291         (-fsanitize-recover): Likewise.
29292         (-fsanitize-undefined-trap-on-error): Likewise.
29293         (-flto): Likewise.
29294         (tracer-dynamic-coverage-feedback): Likewise.
29295         (reorder-block-duplicate-feedback): Likewise.
29296         (loop-unroll-jam-size): Likewise.
29297         (-B): Likewise.
29298         (-I-): Likewise.
29299         (-mabs=legacy): Likewise.
29300         (-mupper-regs-df): Likewise.
29301         (-mupper-regs-sf): Likewise.
29302         (-mpointers-to-nested-functions): Likewise.
29303
29304 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
29305
29306         * doc/extend.texi (Cilk Plus Builtins): Add markup.
29307
29308 2015-03-21  Sandra Loosemore  <sandra@codesourcery.com>
29309
29310         * doc/invoke.texi (-fcheck-pointer-bounds): Copy-edit, add
29311         additional index entries and cross-references.
29312         (-fchkp-check-incomplete-type): Likewise.
29313         (-fchkp-first-field-has-own-bounds): Likewise.
29314         (-fchkp-narrow-to-innermost-array): Likewise.
29315         (-fchkp-use-fast-string-functions): Likewise.
29316         (-fchkp-use-nochk-string-functions): Likewise.
29317         (-fchkp-use-static-const-bounds): Likewise.
29318         (-fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
29319         (-fchkp-instrument-marked-only): Likewise.
29320         (-fchkp-use-wrappers): Likewise.
29321         (-static-libmpx): Likewise.
29322         (-static-libmpxwrappers): Likewise.
29323         * doc/extend.texi (bnd_legacy): Likewise.
29324         (bnd_instrument): Likewise.
29325         (bnd_variable_size): Likewise.
29326         (Pointer Bounds Checker builtins): Likewise.
29327
29328 2015-03-21  Tom de Vries  <tom@codesourcery.com>
29329
29330         PR tree-optimization/65458
29331         * cgraph.c (cgraph_node::dump): Handle parallelized_function field.
29332         * cgraph.h (cgraph_node): Add parallelized_function field.
29333         * lto-cgraph.c (lto_output_node): Write parallelized_function field.
29334         (input_overwrite_node): Read parallelized_function field.
29335         * omp-low.c (expand_omp_taskreg, finalize_task_copyfn): Set
29336         parallelized_function on cgraph_node for child_fn.
29337         * tree-parloops.c: Add include of plugin-api.h, ipa-ref.h and cgraph.h.
29338         Remove include of gt-tree-parloops.h.
29339         (parallelized_functions): Remove static variable.
29340         (parallelized_function_p): Rewrite using parallelized_function field of
29341         cgraph_node.
29342         (create_loop_fn): Remove adding to parallelized_functions.
29343         * Makefile.in (GTFILES): Remove tree-parloops.c
29344
29345 2015-03-20  Vladimir Makarov  <vmakarov@redhat.com>
29346
29347         PR rtl-optimization/64366
29348         * lra.c (lra_update_insn_regno_info): Consider regs in
29349         CALL_INSN_FUNCTION_USAGE memory.
29350
29351 2015-03-20  Richard Biener  <rguenther@suse.de>
29352
29353         PR middle-end/64715
29354         * tree-chrec.c (chrec_fold_poly_cst): Use useless_type_conversion_p
29355         for type comparison and gcc_checking_assert.
29356         (chrec_fold_plus_poly_poly): Likewise.
29357         (chrec_fold_multiply_poly_poly): Likewise.
29358         (chrec_convert_1): Likewise.
29359         * gimplify.c (gimplify_expr): Remove premature folding of
29360         &X + CST to &MEM[&X, CST].
29361
29362 2015-03-20  Jan Hubicka  <hubicka@ucw.cz>
29363
29364         * ipa-inline.c (can_inline_edge_p): Short circuit if inline_failed
29365         already is final.
29366         (ipa_inline): Recompute inline_failed codes.
29367         * cif-code.def (FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
29368         USES_COMDAT_LOCAL, ATTRIBUTE_MISMATCH, UNREACHABLE): Declare as
29369         CIF_FINAL_ERROR.
29370
29371 2015-03-20  Uros Bizjak  <ubizjak@gmail.com>
29372
29373         PR rtl-optimization/60851
29374         * recog.c (constrain_operands): Accept a pseudo register before reload
29375         for LRA enabled targets.
29376
29377 2015-03-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
29378
29379         PR target/65240
29380         * config/rs6000/predicates.md (easy_fp_constant): Remove special
29381         -ffast-math handling that kept non-0 constants live in the RTL
29382         until reload.  Remove logic testing the number of instructions it
29383         took to create a constant in a GPR that was never used, due to a
29384         test for soft-float earlier.
29385         (memory_fp_constant): Delete, no longer used.
29386
29387         * config/rs6000/rs6000.md (mov<MODE>_hardfloat): Remove
29388         alternatives for loading non-0 constants into GPRs for hard
29389         floating point that is no longer needed due to changes in
29390         easy_fp_constant.  Add support for loading 0.0 into GPRs.
29391         (mov<mode>_hardfloat32): Likewise.
29392         (mov<mode>_hardfloat64): Likewise.
29393         (mov<mode>_64bit_dm): Likewise.
29394         (movtd_64bit_nodm): Likewise.
29395         (pre-reload move FP constant define_split): Delete define_split,
29396         since it is no longer used.
29397         (extenddftf2_internal): Remove GHF constraints that are not valid
29398         for extenddftf2.
29399
29400 2015-03-19  Vladimir Makarov  <vmakarov@redhat.com>
29401
29402         PR rtl-optimization/63491
29403         * lra-constraints.c (check_and_process_move): Use src instead of
29404         sreg.  Remove some dead code.
29405
29406 2015-03-19  Jan Hubicka  <hubicka@ucw.cz>
29407
29408         PR ipa/65380
29409         * ipa-icf.c (sem_function::merge): Do not merge DECL_EXTERNAL symbols.
29410         (sem_variable::merge): Likewise.
29411
29412 2015-03-19  Martin Liska  <mliska@suse.cz>
29413
29414         PR ipa/65465
29415         * cgraphunit.c (cgraph_node::create_wrapper): Correctly reset
29416         all fields of cgraph_thunk_info.
29417
29418 2015-03-19  Ilya Enkovich  <ilya.enkovich@intel.com>
29419
29420         * ipa-chkp.c (chkp_maybe_create_clone): Don't try to
29421         clone instrumented thunks.
29422
29423 2015-03-19  Richard Biener  <rguenther@suse.de>
29424
29425         Revert
29426         2015-03-10  Richard Biener  <rguenther@suse.de>
29427
29428         PR middle-end/63155
29429         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
29430         * tree-ssa-coalesce.c: Include timevar.h.
29431         (attempt_coalesce): Handle graph being NULL.
29432         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
29433         Split out abnormal coalescing to ...
29434         (perform_abnormal_coalescing): ... this function.
29435         (coalesce_ssa_name): Perform abnormal coalescing without computing
29436         live/conflict.
29437         (verify_ssa_coalescing_worker): New function.
29438         (verify_ssa_coalescing): Likewise.
29439
29440 2015-03-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
29441             Jakub Jelinek  <jakub@redhat.com>
29442
29443         PR sanitizer/65400
29444         * tsan.c (instrument_gimple): Clear tail call flag on
29445         calls.
29446
29447 2015-03-19  Jakub Jelinek  <jakub@redhat.com>
29448
29449         PR sanitizer/65400
29450         * ipa-split.c (find_return_bb): Allow TSAN_FUNC_EXIT internal
29451         call in the return bb.
29452         (find_split_points): Add RETURN_BB argument, don't call
29453         find_return_bb.
29454         (split_function): Likewise.  Add ADD_TSAN_FUNC_EXIT argument,
29455         if true append TSAN_FUNC_EXIT internal call after the call to
29456         the split off function.
29457         (execute_split_functions): Call find_return_bb here.
29458         Don't optimize if TSAN_FUNC_EXIT is found in unexpected places.
29459         Adjust find_split_points and split_function calls.
29460
29461 2015-03-18  DJ Delorie  <dj@redhat.com>
29462
29463         * config/rl78/rl78-virt.md (andqi3_virt): Allow far operands.
29464         (iorqi3_virt): Likewise.
29465
29466 2015-03-18  Tom de Vries  <tom@codesourcery.com>
29467
29468         * tree-parloops.c (parallelize_loops): Make static.
29469         * tree-parloops.h (parallelize_loops): Remove extern declaration.
29470
29471 2015-03-18  Andrew Stubbs  <ams@codesourcery.com>
29472
29473         PR middle-end/64491
29474         Revert:
29475         2014-11-20  Andrew Stubbs  <ams@codesourcery.com>
29476
29477         * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
29478         condition would be removed due to undefined behaviour.
29479
29480 2015-03-18  Martin Liska  <mliska@suse.cz>
29481
29482         PR ipa/65432
29483         * cgraph.c (cgraph_node::get_create): Remove unnecessary
29484         xstrdup_for_dump wrapper.
29485         * ipa-icf.c (sem_item::dump): Use symtab_node::name instead of
29486         sem_item::name.
29487         (sem_function::equals): Wrap symtab_node::name and symtab_node::asm_name
29488         with xstrdup_for_dump.
29489         (sem_variable::equals): Likewise.
29490         (sem_item_optimizer::read_section): Use symtab_node::name instead of
29491         sem_item::name.
29492         (sem_item_optimizer::parse_funcs_and_vars): Likewise.
29493         (sem_item_optimizer::merge_classes): Wrap symtab_node::name and
29494         symtab_node::asm_name with xstrdup_for_dump.
29495         (congruence_class::dump): Use symtab_node::name instead of
29496         sem_item::name.
29497         * ipa-icf.h (symtab_node::name): Remove.
29498         (symtab_node::asm_name): Likewise.
29499
29500 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
29501
29502         PR tree-optimization/65450
29503         * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): New
29504         function.
29505         (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr): Use
29506         it instead of duplicate_ssa_name_ptr_info.
29507
29508         PR target/65222
29509         * doc/invoke.texi: Add knl as x86 -march=/-mtune= CPU type.
29510
29511 2015-03-18  Richard Biener  <rguenther@suse.de>
29512
29513         * tree-data-ref.h (struct access_matrix): Remove.
29514         (AM_LOOP_NEST, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
29515         AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
29516         AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT): Likewise.
29517         (am_vector_index_for_loop): Likewise.
29518         (struct data_reference): Remove access_matrix member.
29519         (DR_ACCESS_MATRIX): Remove.
29520         (lambda_vector_new): Add comment.
29521         (lambda_matrix_new): Use XOBNEWVEC.
29522
29523 2015-03-18  Richard Biener  <rguenther@suse.de>
29524
29525         * tree-ssa-loop-ch.c (pass_data_ch): Remove TODO_cleanup_cfg.
29526         (pass_ch::execute): Cleanup the CFG only if we did sth.
29527         * tree-vect-generic.c (pass_data_lower_vector): Remove TODO_cleanup_cfg.
29528
29529 2015-03-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29530
29531         * expmed.c (synth_mult): Use std::swap instead of manually
29532         swapping algorithms.
29533
29534 2015-03-18  Jakub Jelinek  <jakub@redhat.com>
29535
29536         PR target/65078
29537         * config/i386/sse.md (movsi/movdi -> vec_extract_*_0 splitter): New.
29538
29539 2015-03-16  Georg-Johann Lay  <avr@gjlay.de>
29540
29541         PR target/65296
29542         * config/avr/avr.opt (-nodevicelib): New option.
29543         * doc/invoke.texi (AVR Options): Document it.
29544         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC) [avr1]: Don't link
29545         libgcc.a, libc.a, libm.a.
29546         * config/avr/specs.h: Same.
29547         * config/avr/gen-avr-mmcu-specs.c (print_mcu): Don't print specs
29548         which don't (directly) depend on the device.  Print more help.
29549         (*avrlibc_devicelib) [-nodevicelib]: Don't link libdev.a.
29550         (*cpp): Don't define __AVR_DEV_LIB_NAME__.
29551         * config/avr/driver-avr.c: Remove -nodevicelib from option list in
29552         case of an error.
29553         (avr_devicespecs_file): Use suffix "%s" instead of absolute path
29554         for specs file name.
29555         * config/avr/avr-arch.h (avr_mcu_t) [.library_name]: Remove.
29556         * config/avr/avr-mcus.def: Adjust initializers and comments.
29557
29558 2015-03-16  Jan Hubicka  <hubicka@ucw.cz>
29559
29560         * tree-sra.c (ipa_sra_preliminary_function_checks): Use
29561         DECL_ONE_ONLY to check if decl is one only.
29562         * ipa-split.c (consider_split): Limit splitt of one only functions.
29563
29564 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
29565
29566         PR tree-optimization/65427
29567         * tree-vect-generic.c (do_cond, expand_vector_scalar_condition): New
29568         functions.
29569         (expand_vector_operations_1): Handle BLKmode vector COND_EXPR.
29570
29571 2015-03-16  Marek Polacek  <polacek@redhat.com>
29572
29573         * cgraph.h (add_new_static_var): Remove declaration.
29574         * varpool.c (add_new_static_var): Remove function.
29575
29576 2015-03-16  Jakub Jelinek  <jakub@redhat.com>
29577
29578         * omp-low.c (expand_omp_target): Use auto_vec<tree, 11>
29579         instead of vec<tree> * with vec_alloc and release for args.
29580         Adjust all users.
29581
29582         PR middle-end/65431
29583         * omp-low.c (delete_omp_context): Only splay_tree_delete
29584         reduction_map in GIMPLE_OMP_TARGET is_gimple_omp_offloaded
29585         is_gimple_omp_oacc contexts.  Don't look at ctx->outer.
29586
29587 2015-03-16  Max Ostapenko  <m.ostapenko@partner.samsung.com>
29588
29589         PR sanitizer/64820
29590         * cfgexpand.c (align_base): New function.
29591         (alloc_stack_frame_space): Call it.
29592         (expand_stack_vars): Align prev_frame to be sure
29593         data->asan_vec elements aligned properly.
29594
29595 2015-03-16  Eric Botcazou  <ebotcazou@adacore.com>
29596
29597         PR middle-end/65409
29598         * expr.c (store_field): Do not do a direct block copy if the source is
29599         a PARALLEL with BLKmode.
29600
29601 2015-03-16  Tom de Vries  <tom@codesourcery.com>
29602
29603         PR middle-end/65414
29604         Revert:
29605         2015-03-12  Tom de Vries  <tom@codesourcery.com>
29606
29607         PR rtl-optimization/64895
29608         * lra-lives.c (check_pseudos_live_through_calls): Use
29609         actual_call_used_reg_set instead of call_used_reg_set, if available.
29610
29611 2015-03-16  Alan Modra  <amodra@gmail.com>
29612
29613         PR target/63150
29614         * config/rs6000/rs6000.md (bswapdi2): Remove one scratch reg.
29615         Modify Z->r bswapdi splitter to use dest in place of scratch.
29616         In r->Z and Z->r bswapdi splitter rename word_high, word_low
29617         to word1, word2 and rearrange logic to suit.
29618         (bswapdi2_64bit): Remove early clobber on Z->r alternative.
29619         (bswapdi2_ldbrx): Likewise.  Remove '??' on r->r.
29620         (bswapdi2_32bit): Remove early clobber on Z->r alternative.
29621         Add one '?' on r->r.  Modify Z->r splitter to avoid need for
29622         early clobber.
29623
29624 2015-03-14  Jakub Jelinek  <jakub@redhat.com>
29625
29626         PR tree-optimization/65369
29627         * tree-vect-stmts.c (vectorizable_load) <case dr_explicit_realign>:
29628         Set bump to vs * TYPE_SIZE_UNIT (elem_type) - 1 instead of
29629         (vs - 1) * TYPE_SIZE_UNIT (elem_type).
29630
29631         PR tree-optimization/65418
29632         * tree-ssa-reassoc.c (extract_bit_test_mask): If there
29633         are casts in the first PLUS_EXPR operand, ensure tbias and
29634         *totallowp are in the inner type.
29635
29636         PR rtl-optimization/65401
29637         * combine.c (rtx_equal_for_field_assignment_p): Add widen_x
29638         argument.  If true, adjust_address_nv of x with big-endian
29639         correction for the mode widening to GET_MODE (y).
29640         (make_field_assignment): Don't do MEM mode widening here.
29641         Use MEM_P instead of GET_CODE == MEM.
29642
29643 2015-03-13  Ilya Verbin  <ilya.verbin@intel.com>
29644
29645         * varpool.c (varpool_node::get_create): Don't set 'offloadable' flag for
29646         the external decls.
29647
29648 2015-03-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29649
29650         PR target/64600
29651         * config/arm/arm.c (arm_gen_constant, AND case): Use
29652         ARM_SIGN_EXTEND when constructing AND mask.
29653
29654 2015-03-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
29655
29656         * graph.c (print_graph_cfg): Make function names visible and append
29657         parenthesis to it.  Also make groups of basic blocks belonging to the
29658         same function visible.
29659
29660 2015-03-12  Richard Biener  <rguenther@suse.de>
29661
29662         PR middle-end/44563
29663         * tree-inline.c (gimple_expand_calls_inline): Walk BB backwards
29664         to avoid quadratic behavior with inline expansion splitting blocks.
29665         * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not merge block
29666         with the successor if the predecessor will be merged with it.
29667         * tree-cfg.c (gimple_can_merge_blocks_p): We can't merge the
29668         entry block with its successor.
29669
29670 2015-03-13  Richard Biener  <rguenther@suse.de>
29671
29672         PR middle-end/44563
29673         * tree-cfgcleanup.c (split_bb_on_noreturn_calls): Remove.
29674         (cleanup_tree_cfg_1): Do not call it.
29675         (execute_cleanup_cfg_post_optimizing): Fixup the CFG here.
29676         (fixup_noreturn_call): Mark the stmt as control altering.
29677         * tree-cfg.c (execute_fixup_cfg): Do not dump the function
29678         here.
29679         (pass_data_fixup_cfg): Produce a dump file.
29680         * tree-ssa-dom.c: Include tree-cfgcleanup.h.
29681         (need_noreturn_fixup): New global.
29682         (pass_dominator::execute): Fixup queued noreturn calls.
29683         (optimize_stmt): Queue calls that became noreturn for fixup.
29684         * tree-ssa-forwprop.c (pass_forwprop::execute): Likewise.
29685         * tree-ssa-pre.c: Include tree-cfgcleanup.h.
29686         (el_to_fixup): New global.
29687         (eliminate_dom_walker::before_dom_childre): Queue calls that
29688         became noreturn for fixup.
29689         (eliminate): Fixup queued noreturn calls.
29690         * tree-ssa-propagate.c: Include tree-cfgcleanup.h.
29691         (substitute_and_fold_dom_walker): New member stmts_to_fixup.
29692         (substitute_and_fold_dom_walker::before_dom_children): Queue
29693         alls that became noreturn for fixup.
29694         (substitute_and_fold): Fixup queued noreturn calls.
29695
29696 2015-03-12  Jan Hubicka  <hubicka@ucw.cz>
29697
29698         * ipa-icf.c (sem_function::equals_wpa): Match CXX_CONSTRUCTOR_P
29699         and CXX_DESTURCTOR_P. For consutrctors match ODR type of class they
29700         are building; for methods check ODR type of class they belong to if
29701         they may lead to a polymorphic call.
29702         (sem_function::compare_polymorphic_p): Be bit smarter about testing
29703         when function may lead to a polymorphic call.
29704         (sem_function::compare_type_list): Remove.
29705         (sem_variable::equals): Update use of compatible_types_p.
29706         (sem_variable::parse_tree_refs): Remove.
29707         (sem_item_optimizer::filter_removed_items): Do not filter out CXX
29708         cdtor.
29709         * ipa-icf-gimple.c (func_checker::compare_decl): Do polymorphic
29710         matching here.
29711         (func_checker::compatible_polymorphic_types_p): Break out from ...
29712         (unc_checker::compatible_types_p): ... here.
29713         * ipa-icf-gimple.h (func_checker::compatible_polymorphic_types_p):
29714         Declare.
29715         (unc_checker::compatible_types_p): Update.
29716         * ipa-icf.h (compare_type_list, parse_tree_refs, compare_sections):
29717         Remove.
29718
29719 2015-03-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
29720
29721         PR rtl-optimization/65235
29722         * simplify-rtx.c (simplify_binary_operation_1, VEC_SELECT case):
29723         When first element of vec_concat is const_int, calculate its size
29724         using second element.
29725
29726 2015-03-12  Richard Biener  <rguenther@suse.de>
29727
29728         PR middle-end/65270
29729         * fold-const.c (operand_equal_p): Fix ordering of resetting
29730         OEP_ADDRESS_OF and checking for it in the [TARGET_]MEM_REF case.
29731
29732 2015-03-12  Dominik Vogt  <vogt@linux.vnet.ibm.com>
29733
29734         * config/s390/s390.c (s390_reorg): Move code to output nops after label
29735         to s390_reorg ().
29736         (s390_asm_output_function_label): Likewise.
29737         * config/s390/s390.c (s390_asm_output_function_label):
29738         Fix function label alignment with -mhtopatch.
29739         * config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE,
29740         UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE
29741         ("nop_2_byte"): New define_insn.
29742         ("nop_4_byte"): Likewise.
29743         ("nop_6_byte"): Likewise.
29744         * doc/extend.texi (hotpatch): hotpatch attribute doc fixes.
29745         * doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes.
29746
29747 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
29748
29749         PR target/65103
29750         * config/i386/i386.c (ix86_address_cost): Fix cost of a PIC
29751         register.
29752
29753 2015-03-12  Ilya Enkovich  <ilya.enkovich@intel.com>
29754
29755         PR target/65044
29756         * toplev.c (process_options): Restrict Pointer Bounds Checker
29757         usage with Address Sanitizer.
29758
29759 2015-03-12  Richard Biener  <rguenther@suse.de>
29760
29761         * tree-cfg.c (gimple_split_block): Remove loop finding stmt
29762         to split on.
29763         * omp-low.c (expand_omp_taskreg): Split block before removing
29764         the stmt.
29765         (expand_omp_target): Likewise.
29766         * ubsan.c (ubsan_expand_null_ifn): Adjust stmt if we replaced it.
29767         * tree-parloops.c (create_call_for_reduction_1): Pass a proper
29768         stmt to split_block.
29769
29770 2015-03-12  Tom de Vries  <tom@codesourcery.com>
29771
29772         PR rtl-optimization/64895
29773         * lra-lives.c (check_pseudos_live_through_calls): Use
29774         actual_call_used_reg_set instead of call_used_reg_set, if available.
29775
29776 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
29777
29778         * cgraph.c (cgraph_node::release_body): Free function_in_decl_state.
29779         (cgraph_node::remove): Likewise.
29780         (cgraph_node::get_untransformed_body): Likewise.
29781         * varpool.c (varpool_node::remove): Likewise.
29782         (varpool_node::get_constructor): Add sanity check.
29783
29784 2015-03-11  Sandra Loosemore  <sandra@codesourcery.com>
29785
29786         * doc/invoke.texi (-fgnu89-inline): Remove discussion about
29787         old GCC versions.
29788         (-fabi-compat-version): Likewise.
29789         (-ffriend-injection): Likewise.
29790         (-Wdeclaration-after-statement): Likewise.
29791         (-fomit-frame-pointer): Likewise.
29792         (-ftree-coalesce-inlined-vars): Likewise.
29793         (-fvisibility=): Likewise.
29794         * doc/extend.texi (Typeof): Likewise.
29795         (Zero Length): Likewise.
29796         (Escaped Newlines): Likewise.
29797         (Compound Literals): Likewise.
29798         (Function Attributes): Likewise.
29799         (Label Attributes): Likewise.
29800         (Type Attributes): Likewise.
29801         (Function Names): Likewise.
29802         (Other Builtins): Likewise.
29803         (Function Specific Option Pragmas): Likewise.
29804         (C++ Interface): Likewise.
29805
29806 2015-03-11  Thomas Schwinge  <thomas@codesourcery.com>
29807
29808         * config/nvptx/nvptx.h (LIBSTDCXX): Define to "gcc".
29809
29810 2015-03-11  Marek Polacek  <polacek@redhat.com>
29811
29812         PR tree-optimization/65388
29813         * tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.
29814
29815 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
29816
29817         PR target/65296
29818         * configure.ac [avr]: Check as for options -mrmw, --mlink-relax.
29819         * configure: Regenerate.
29820         * config.in: Regenerate.
29821         * doc/invoke.texi (AVR Options) [-mrmw]: Document it.
29822         [-mn-flash]: Document it.
29823         [__AVR_ARCH__]: Document avrtiny.
29824
29825         * config/avr/gen-avr-mmcu-specs.c (config.h): Include it.
29826         (*asm_relax): Only define spec if HAVE_AS_AVR_MLINK_RELAX_OPTION.
29827         (*asm_rmw): Only define spec if HAVE_AS_AVR_MRMW_OPTION.
29828
29829 2015-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
29830
29831         * doc/invoke.texi: Add missing cpu values (z196, zEC12).
29832
29833 2015-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
29834
29835         PR target/65242
29836         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Do not
29837         allow reloads of PLUS in floating point/VSX registers.
29838
29839 2015-03-11  Junmo Park  <junmoz.park@samsung.com>
29840
29841         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Add
29842         crypto_sha256_fast.
29843         (cortex_a57_crypto_complex): Add crypto_sha256_slow.
29844
29845 2015-03-11  Richard Biener  <rguenther@suse.de>
29846
29847         PR tree-optimization/65310
29848         * tree-sra.c (build_ref_for_offset): Also preserve larger
29849         alignment.
29850
29851 2015-03-11  Marat Zakirov  <m.zakirov@samsung.com>
29852
29853         * asan.c (instrument_derefs): Disable instrumentation on asan-globals=0.
29854
29855 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
29856
29857         PR target/65368
29858         * config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn,
29859         new define_expand.
29860         (*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns.
29861
29862 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
29863
29864         * ipa-icf.c (sem_function::equals_wpa): Move here some checks from ...
29865         (sem_function::equals_wpa): ... here.
29866
29867 2015-03-10  Marek Polacek  <polacek@redhat.com>
29868             Jakub Jelinek  <jakub@redhat.com>
29869
29870         PR sanitizer/65367
29871         * ubsan.c (ubsan_expand_objsize_ifn): Update GSI instead of GSI_ORIG
29872         when only removing the statement.  Handle expanding UBSAN_OBJECT_SIZE
29873         separately.
29874
29875 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
29876
29877         PR target/65286
29878         * config/rs6000/t-linux: For powerpc64* target set
29879         MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.
29880
29881 2015-03-10  Richard Biener  <rguenther@suse.de>
29882
29883         PR middle-end/44563
29884         * tree-inline.c (copy_cfg_body): Skip block mapped to entry/exit
29885         for redirect_all_calls.
29886
29887 2015-03-10  Marek Polacek  <polacek@redhat.com>
29888
29889         * gdbinit.in (pcfun): Define and document.
29890
29891 2015-03-10  Ilya Verbin  <ilya.verbin@intel.com>
29892
29893         * config/i386/intelmic-mkoffload.c: Include intelmic-offload.h instead
29894         of libgomp-plugin.h.
29895         (find_target_compiler): Support a case when the path to gcc is
29896         specified in the PATH env var, so COLLECT_GCC doesn't contain a path.
29897         (generate_host_descr_file): Use GOMP_DEVICE_INTEL_MIC from
29898         intelmic-offload.h instead of OFFLOAD_TARGET_TYPE_INTEL_MIC from
29899         libgomp-plugin.h.
29900         (main): Use GCC_INSTALL_NAME as target_driver_name.
29901         * config/i386/t-intelmic (CFLAGS-mkoffload.o): Add GCC_INSTALL_NAME
29902         define.
29903         (mkoffload.o): Remove obsolete include path and defines.
29904         (mkoffload$(exeext)): Use $(LINKER) instead of $(COMPILER).
29905
29906 2015-03-10  Richard Biener  <rguenther@suse.de>
29907
29908         PR middle-end/63155
29909         * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
29910         * tree-ssa-coalesce.c: Include timevar.h.
29911         (attempt_coalesce): Handle graph being NULL.
29912         (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
29913         Split out abnormal coalescing to ...
29914         (perform_abnormal_coalescing): ... this function.
29915         (coalesce_ssa_name): Perform abnormal coalescing without computing
29916         live/conflict.
29917         (verify_ssa_coalescing_worker): New function.
29918         (verify_ssa_coalescing): Likewise.
29919
29920 2015-03-10  Georg-Johann Lay  <avr@gjlay.de>
29921
29922         PR target/65296
29923         * config.gcc (extra_options) [avr]: Remove.
29924         (extra_gcc_objs) [avr]: Use driver-avr.o, avr-devices.o.
29925         (tm_file) [avr]: Add avr/specs.h after avr/avr.h.
29926         (tm_defines) [avr-*-rtems*]: Add WITH_RTEMS.
29927
29928         * config/avr/avr.opt (config/avr/avr-arch.h): Remove include.
29929         (-mmcu=): Add Var and MissingArgError properties.
29930         (-march=): Remove.
29931         * config/avr/genmultilib.awk: Use -mmcu= instead of -march=.
29932         * config/avr/t-multilib: Regenerate.
29933         * config/avr/specs.h: New file.
29934         * config/avr/driver-avr.c: New file.
29935         * config/avr/genopt.sh: Remove file.
29936         * config/avr/avr-tables.opt: Remove file.
29937         * config/avr/predicates.md (avr_current_arch): Rename to avr_arch.
29938         * config/avr/avr-c.c: Same.
29939         * avr-arch.h: Same.
29940         (avr_current_device): Remove proto.
29941         * config/avr/avr.h (avr_current_arch): Rename to avr_arch.
29942         (AVR_HAVE_8BIT_SP): Don't depend on avr_current_device.
29943         (EXTRA_SPEC_FUNCTIONS): Define.
29944         (avr_devicespecs_file): New specs function proto.
29945         (DRIVER_SELF_SPECS): Use device-specs-file spec function.
29946         * config/avr/avr.c (avr_current_arch): Rename to avr_arch.
29947         (avr_current_device): Remove definition and usage.
29948         (avr_set_core_architecture): New static function.
29949         (avr_option_override): Use it.
29950         * config/avr/avr-devices.c (diagnostic.h, avr-arch.h): Include them.
29951         (mcu_name): New static array.
29952         (comparator, avr_archs_str, avr_mcus_str): New static functions.
29953         (avr_inform_devices, avr_inform_core_architectures): New functions.
29954         * config/avr/gen-avr-mmcu-specs.c (avr-arch.h, specs.h): Include.
29955         (avrlibc.h) [WITH_AVRLIBC]: Include.
29956         (../rtems.h, rtems.h) [WITH_RTEMS]: Include.
29957         (print_mcu): Rewrite from scratch.
29958         * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC, STARTFILE_SPEC):
29959         Forward to avr-specific specs defined in device-specs file.
29960         * config/avr/t-avr (driver-avr.o): New rule.
29961         (avr-devices.o): Depend on avr-arch.h.
29962         (avr-mcus): No more depend on avr-tables.opt.
29963         (avr-tables.opt): Remove rule.
29964         (install-device-specs): Use INSTALL_DATA, not INSTALL_PROGRAM.
29965
29966 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
29967
29968         * c-family/c.opt (fchkp-use-wrappers): New.
29969         * ipa-chkp.c (CHKP_WRAPPER_SYMBOL_PREFIX): New.
29970         (chkp_wrap_function): New.
29971         (chkp_build_instrumented_fndecl): Support wrapped
29972         functions.
29973         * doc/invoke.texi (-fcheck-pointer-bounds): New.
29974         (-fchkp-check-incomplete-type): New.
29975         (-fchkp-first-field-has-own-bounds): New.
29976         (-fchkp-narrow-bounds): New.
29977         (-fchkp-narrow-to-innermost-array): New.
29978         (-fchkp-optimize): New.
29979         (-fchkp-use-fast-string-functions): New.
29980         (-fchkp-use-nochk-string-functions): New.
29981         (-fchkp-use-static-bounds): New.
29982         (-fchkp-use-static-const-bounds): New.
29983         (-fchkp-treat-zero-dynamic-size-as-infinite): New.
29984         (-fchkp-check-read): New.
29985         (-fchkp-check-write): New.
29986         (-fchkp-store-bounds): New.
29987         (-fchkp-instrument-calls): New.
29988         (-fchkp-instrument-marked-only): New.
29989         (-fchkp-use-wrappers): New.
29990         (-static-libmpx): New.
29991         (-static-libmpxwrappers): New.
29992
29993 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
29994
29995         * config/i386/linux-common.h (LIBMPX_WRAPPERSSPEC): New.
29996         (CHKP_SPEC): Add wrappers library.
29997         * c-family/c.opt (static-libmpxwrappers): New.
29998
29999 2015-03-10  Ilya Enkovich  <ilya.enkovich@intel.com>
30000
30001         * config/i386/linux-common.h (LIBMPX_LIBS): New.
30002         (LIBMPX_SPEC): New.
30003         (CHKP_SPEC): New.
30004         * gcc.c (CHKP_SPEC): New.
30005         (LINK_COMMAND_SPEC): Add CHKP_SPEC.
30006         * c-family/c.opt (static-libmpx): New.
30007
30008 2015-03-10  Richard Biener  <rguenther@suse.de>
30009
30010         PR middle-end/44563
30011         * cgraph.h (struct cgraph_edge_hasher): Add hash overload
30012         for compare_type.
30013         * cgraph.c (cgraph_edge_hasher::hash): Inline htab_hash_pointer.
30014         (cgraph_update_edge_in_call_site_hash): Use cgraph_edge_hasher::hash.
30015         (cgraph_add_edge_to_call_site_hash): Likewise.
30016         (cgraph_node::get_edge): Likewise.
30017         (cgraph_edge::set_call_stmt): Likewise.
30018         (cgraph_edge::remove_caller): Likewise.
30019
30020 2015-03-10  Chung-Ju Wu  <jasonwucj@gmail.com>
30021
30022         * config/nds32/nds32.h (callee_saved_regs_size): Rename to ...
30023         (callee_saved_gpr_regs_size): ... this.
30024         (callee_saved_regs_first_regno): Rename to ...
30025         (callee_saved_first_gpr_regno): ... this.
30026         (callee_saved_regs_last_regno) Rename to ...
30027         (callee_saved_last_gpr_regno): ... this.
30028         * config/nds32/nds32.c (nds32_compute_stack_frame): Adjust renamed
30029         variables.
30030         (nds32_initial_elimination_offset): Likewise.
30031         (nds32_expand_prologue): Likewise.
30032         (nds32_expand_epilogue): Likewise.
30033         (nds32_expand_prologue_v3push): Likewise.
30034         (nds32_expand_epilogue_v3pop): Likewise.
30035         * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
30036         Adjust renamed variables.
30037         (nds32_output_stack_pop): Likewise.
30038
30039 2015-03-10  Thomas Preud'homme  <thomas.preudhomme@arm.com>
30040
30041         * dominance.c (nearest_common_dominator_for_set): Fix A_Dominated_by_B
30042         code in comment.
30043
30044 2015-03-10  Jakub Jelinek  <jakub@redhat.com>
30045
30046         PR rtl-optimization/65321
30047         * cfgexpand.c (expand_debug_expr): Ensure shift amount isn't wider
30048         than shift mode.
30049         * var-tracking.c (use_narrower_mode): Likewise.
30050
30051 2015-03-10  Jan Hubicka  <hubicka@ucw.cz>
30052
30053         PR tree-optimization/65355
30054         * varasm.c (notice_global_symbol): Do not produce RTL.
30055         * symtab.c (symtab_node::can_increase_alignment_p): Check for section
30056         anchor.
30057         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
30058         check for section anchors.
30059
30060 2015-03-10  Alan Modra  <amodra@gmail.com>
30061
30062         PR target/65286
30063         * config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
30064         to be single-arch by default.  Set cpu_is_64bit for powerpc64
30065         given --with-cpu=native.
30066         * config/rs6000/t-fprules: Do not set default MULTILIB vars.
30067         * config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
30068         and powerpc64le.
30069         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
30070         rs6000_isa_flags rather than TARGET_64BIT.
30071
30072 2015-03-09  Yoshinori Sato  <ysato@users.sourceforge.jp>
30073             Kaz Kojima  <kkojima@gcc.gnu.org>
30074
30075         * config/sh/t-linux (MULTILIB_EXCEPTIONS): Define for m2a cases.
30076
30077 2015-03-09  Jakub Jelinek  <jakub@redhat.com>
30078
30079         PR lto/65361
30080         * ipa-devirt.c (add_type_duplicate): Don't use DECL_CONTEXT
30081         on a TREE_BINFO, instead use BINFO_TYPE.
30082
30083 2015-03-09  Richard Biener  <rguenther@suse.de>
30084
30085         PR middle-end/65270
30086         * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF.
30087         * fold-const.c (operand_equal_p): When recursing for ADDR_EXPRs
30088         operand set OEP_ADDRESS_OF.  Clear it when recursing to non-bases
30089         of that.  When comparing dereferences compare alignment.
30090         When comparing MEM_REFs or TARGET_MEM_REFs compare dependence info.
30091
30092 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
30093
30094         * ipa-inline-analysis.c (check_callers): Check
30095         node->can_remove_if_no_direct_calls_and_refs_p.
30096         (growth_likely_positive): Reorganize to call
30097         can_remove_if_no_direct_calls_p later.
30098         * cgraph.h (will_be_removed_from_program_if_no_direct_calls_p,
30099         will_be_removed_from_program_if_no_direct_calls_p): Add
30100         will_inline parameter.
30101         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p,
30102         cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
30103         Handle inliner case correctly.
30104
30105 2015-03-09  Thomas Preud'homme  <thomas.preudhomme@arm.com>
30106
30107         PR tree-optimization/63743
30108         * cfgexpand.c (reorder_operands): Also reorder if only second operand
30109         had its definition forwarded by TER.
30110
30111 2015-03-08  Jan Hubicka  <hubicka@ucw.cz>
30112
30113         PR lto/65316
30114         * ipa-utils.h (types_odr_comparable): Add strict argument.
30115         * ipa-devirt.c: Fix whitespace;
30116         (odr_hasher): Remove.
30117         (odr_name_hasher, odr_vtable_hasher): New hashers.
30118         (can_be_name_hashed_p): New predicate.
30119         (hash_type_name): remove.
30120         (hash_odr_name): New.
30121         (odr_name_hasher::hash): new.
30122         (can_be_vtable_hashed_p): New.
30123         (hash_odr_vtable): New.
30124         (odr_vtable_hasher::hash): New.
30125         (types_same_for_odr): Add strict parameter.
30126         (types_odr_comparable): Likewise.
30127         (odr_name_hasher::equal): New.
30128         (odr_vtable_hasher::equal): New.
30129         (odr_name_hasher::remove): New.
30130         (odr_hash_type): Change to hash_table<odr_name_hasher>.
30131         (odr_vtable_hash_type): New.
30132         (odr_vtable_hash): New.
30133         (odr_subtypes_equivalent_p): Do strict comparsion.
30134         (add_type_duplicate): Merge type names; cleanup; avoid type
30135         duplicates.
30136         (register_odr_type): Initialize vtable hash.
30137         (build_type_inheritance_graph): Likewise
30138         (get_odr_type): Reorg to use two hashes.
30139         (dump_possible_polymorphic_call_targets): Move sanity check after debug
30140         output.
30141         (ipa_devirt): Dump type_inheritance_graph.
30142         (types_same_for_odr): Add strict mode.
30143
30144 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
30145
30146         PR ipa/65334
30147         * cgraph.h (symtab_node): Add definition_alignment,
30148         can_increase_alignment_p and increase_alignment.
30149         * symtab.c (symtab_node::can_increase_alignment_p,
30150         increase_alignment_1, symtab_node::increase_alignment,
30151         symtab_node::definition_alignment): New.
30152         * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Use
30153         can_increase_alignment_p.
30154         * tree-vectorizer.c (increase_alignment): Use increase_alignment.
30155         * tree-vect-stmts.c (ensure_base_align): Likewise.
30156         * varasm.c (function_section_1): Use definition_alignment.
30157         (assemble_start_function): Likewise.
30158         (emit_local): likewise.
30159         (build_constant_desc): Likewsie.
30160         (output_constant_def_contents): Likewise.
30161         (place_block_symbol): Likewise.
30162         (output_object_block): Likewise.
30163
30164 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
30165
30166         PR ipa/65316
30167         * tree.c (free_lang_data_in_type): Be sure to keep BINFO_VTABLE
30168         when outputting debug.
30169
30170 2015-03-07  Marek Polacek  <polacek@redhat.com>
30171             Martin Uecker  <uecker@eecs.berkeley.edu>
30172
30173         PR sanitizer/65280
30174         * doc/invoke.texi: Update description of -fsanitize=bounds.
30175
30176 2015-03-06  Wilco Dijkstra  <wilco.dijkstra@arm.com>
30177
30178         * tree-ssa-phiopt.c (neg_replacement): Remove.
30179         (tree_ssa_phiopt_worker): Remove negate optimization.
30180
30181 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
30182
30183         PR ipa/65302
30184         * value-prof.c (gimple_ic): Pure dead eh edges when needed.
30185
30186 2015-03-06  Richard Biener  <rguenther@suse.de>
30187
30188         PR middle-end/64928
30189         * tree-ssa-live.h (struct tree_live_info_d): Add livein_obstack
30190         and liveout_obstack members.
30191         (calculate_live_on_exit): Remove.
30192         (calculate_live_ranges): Change declaration.
30193         * tree-ssa-live.c (liveness_bitmap_obstack): Remove global var.
30194         (new_tree_live_info): Adjust.
30195         (calculate_live_ranges): Delete livein when not wanted.
30196         (calculate_live_ranges): Do not initialize liveness_bitmap_obstack.
30197         Deal with partly deleted live info.
30198         (loe_visit_block): Remove temporary bitmap by using
30199         bitmap_ior_and_compl_into.
30200         (live_worklist): Adjust accordingly.
30201         (calculate_live_on_exit): Make static.
30202         * tree-ssa-coalesce.c (coalesce_ssa_name): Tell calculate_live_ranges
30203         we do not need livein.
30204
30205 2015-03-06  Jonathan Wakely  <jwakely@redhat.com>
30206
30207         * real.c (real_from_string): Fix typo in assertion.
30208
30209 2015-03-06  Alex Velenko  <alex.velenko@arm.com>
30210
30211         * ChangeLog (2015-03-05): Reflect Richard Henderson as actual author of
30212         the patch.
30213
30214 2015-03-05  Jan Hubicka  <hubicka@ucw.cz>
30215
30216         * ipa-icf.c (sem_variable::equals_wpa): Check FINAL flags.
30217
30218 2015-03-05  Vladimir Makarov  <vmakarov@redhat.com>
30219
30220         PR target/64342
30221         * lra-assigns.c (find_hard_regno_for): Rename to
30222         find_hard_regno_for_1.  Add a new parameter.
30223         (find_hard_regno_for): New function using find_hard_regno_for_1.
30224
30225 2015-03-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
30226
30227         PR rtl-optimization/65067
30228         * expmed.c (store_bit_field, extract_bit_field): Reworked the
30229         strict volatile bitfield handling.
30230
30231 2015-03-05  Martin Liska  <mliska@suse.cz>
30232
30233         PR ipa/65318
30234         * ipa-icf.c (sem_variable::equals): Compare variables types.
30235
30236 2015-03-05  Richard Henderson  <rth@redhat.com>
30237
30238         PR target/65121
30239         * config/arm/arm.c (arm_function_in_section_p): Fix predicate to
30240         correctly check weak symbol binding.
30241
30242 2015-03-05  Steve Ellcey  <sellcey@imgtec.com>
30243
30244         PR middle-end/65315
30245         * cfgexpand.c (expand_stack_vars): Update large_align to maximum
30246         needed alignment.
30247
30248 2015-03-05  Martin Liska  <mliska@suse.cz>
30249
30250         * ipa-inline.c (inline_small_functions): Set default value to
30251         prevent warning during bootstrap.
30252         * tree.h: Add pragma guard that ignores false positives during
30253         bootstrap.
30254
30255 2015-03-05  Richard Biener  <rguenther@suse.de>
30256
30257         PR tree-optimization/65310
30258         * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
30259         Properly preserve alignment of the base of the access.
30260
30261 2015-03-05  Richard Biener  <rguenther@suse.de>
30262
30263         PR ipa/65270
30264         * ipa-icf-gimple.c (func_checker::compare_memory_operand):
30265         Compare dependence info.
30266
30267 2015-03-05  Richard Biener  <rguenther@suse.de>
30268
30269         PR middle-end/65233
30270         * ipa-polymorphic-call.c: Include tree-ssa-operands.h and
30271         tree-into-ssa.h.
30272         (walk_ssa_copies): Revert last chage.  Instead do not walk
30273         SSA names registered for SSA update.
30274
30275 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
30276
30277         PR ipa/65270
30278         * ipa-icf.c (sem_item::compare_cgraph_references): Compare
30279         vtable references for their containing type.
30280         (sem_function::equals_wpa): Compare TYPE_RESTRICT
30281         and type attributes.
30282
30283 2015-03-04  Eric Botcazou  <ebotcazou@adacore.com>
30284
30285         * fold-const.c (round_up_loc): Cast divisor to signed on all paths
30286         before negating it.
30287         * stor-layout.c (finalize_record_size): Revert latest change.
30288
30289 2015-03-04  Andreas Tobler  <andreast@gcc.gnu.org>
30290
30291         * config/rs6000/t-freebsd64: Remove 32-bit soft-float multilibs.
30292
30293 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
30294
30295         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p): Rewrite
30296         for correct comdat handling.
30297         (cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
30298         Likewise.
30299         * cgraph.h (call_for_symbol_and_aliases): Fix formating.
30300         (used_from_object_file_p_worker): Remove.
30301         (cgraph_node::only_called_directly_or_alised): Add
30302         used_from_object_file_p.
30303         * ipa-inline-analysis.c (growth_likely_positive): Optimie.
30304         * ipa-inline-transform.c (can_remove_node_now_p_1): Use
30305         can_remove_if_no_direct_calls_and_refs_p.
30306
30307 2015-03-04  Nick Clifton  <nickc@redhat.com>
30308
30309         * config/rl78/rl78.h (enum reg_class): Remove real registers from
30310         General register class.
30311         * config/rl78/rl78-real.md: Replace general register constraints
30312         with real+virtual register constraints.
30313
30314 2015-03-04  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
30315
30316         * config/s390/s390.c (s390_expand_builtin): Exlude non-htm builtins
30317         from checking for -mhtm option.
30318
30319 2015-03-03  Jan Hubicka  <hubicka@ucw.cz>
30320
30321         * tree-sra.c (convert_callers): Use call_for_symbol_and_aliases.
30322         (struct ipa_sra_check_caller_data): Add has_thunk field.
30323         (ipa_sra_check_caller): Check for thunk.
30324         (ipa_sra_preliminary_function_checks): Give up on function with
30325         thunks.
30326         (ipa_early_sra): Use call_for_symbol_and_aliases.
30327
30328 2015-03-03  Kaz Kojima  <kkojima@gcc.gnu.org>
30329
30330         PR target/65249
30331         * config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
30332         called for __stack_chk_guard symbol.
30333
30334 2015-03-03  DJ Delorie  <dj@redhat.com>
30335
30336         * config/rl78/rl78-real.md (*addqi_real): Allow SADDR types for
30337         inc/dec.
30338         (*addhi3_real): Likewise.
30339         * config/rl78/rl78-virt.md (*inc<mode>3_virt): Additional
30340         pattern to match incrementing memory.
30341         * config/rl78/predicates.md (rl78_1_2_operand): New.
30342         * config/rl78/rl78.c (rl78_force_nonfar_3): Allow far mem-mem if
30343         it's the same and only mem.
30344         (rl78_alloc_physical_registers_op2): If there's effectively only
30345         one MEM, transcode it into HL.
30346         (rl78_far_p): Reject addresses that aren't legitimate.
30347
30348 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
30349
30350         * fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before
30351         negating it.
30352
30353         * tree-sra.c (pa_sra_preliminary_function_checks): Fix typo in message.
30354
30355 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
30356
30357         Implement call0 ABI for xtensa
30358         * config/xtensa/constraints.md ("a" constraint): Include stack
30359         pointer in case of call0 ABI.
30360         ("q" constraint): Make empty in case of call0 ABI.
30361         ("D" constraint): Include stack pointer in case of call0 ABI.
30362         * config/xtensa/xtensa-protos.h (xtensa_set_return_address,
30363         xtensa_expand_epilogue, xtensa_regno_to_class): Add new function
30364         prototypes.
30365         * config/xtensa/xtensa.c (xtensa_callee_save_size): New
30366         variable.
30367         (xtensa_regno_to_class): Make it a local variable in the
30368         function xtensa_regno_to_class.
30369         (xtensa_function_epilogue, TARGET_ASM_FUNCTION_EPILOGUE): Remove
30370         macro, function prototype and implementation.
30371         (reg_nonleaf_alloc_order): Make it a local variable in the
30372         function order_regs_for_local_alloc.
30373         (xtensa_conditional_register_usage): New function.
30374         (TARGET_CONDITIONAL_REGISTER_USAGE): Define macro.
30375         (xtensa_valid_move): Allow direct moves to stack pointer
30376         register in call0 ABI.
30377         (xtensa_setup_frame_addresses): Only spill register windows in
30378         windowed ABI.
30379         (xtensa_emit_call): Emit call(x)8 or call(x)0 in windowed and
30380         call0 ABI respectively.
30381         (xtensa_function_arg_1): Only mark a7 register for copying in
30382         windowed ABI.
30383         (xtensa_call_save_reg): New function.
30384         (compute_frame_size): Add space for callee saved register
30385         storage to the frame size in call0 ABI.
30386         (xtensa_expand_prologue): Generate code to set up stack frame
30387         and save callee-saved registers in call0 ABI.
30388         (xtensa_expand_epilogue): New function.
30389         (xtensa_set_return_address): New function.
30390         (xtensa_return_addr): Calculate return address in call0 ABI.
30391         (xtensa_builtin_saveregs): Only mark a7 register for copying and
30392         emit copying code in windowed ABI.
30393         (order_regs_for_local_alloc): Add preferred register allocation
30394         order for non-leaf function in call0 ABI.
30395         (xtensa_static_chain): Add atatic chain passing for call0 ABI.
30396         (xtensa_asm_trampoline_template): Add trampoline generation for
30397         call0 ABI.
30398         (xtensa_trampoline_init): Add trampoline initialization for
30399         call0 ABI.
30400         (xtensa_conditional_register_usage, xtensa_regno_to_class): New
30401         functions.
30402         * config/xtensa/xtensa.h (TARGET_WINDOWED_ABI): New macro.
30403         (TARGET_CPU_CPP_BUILTINS): Add built-in define for call0 ABI.
30404         (CALL_USED_REGISTERS): Modify to encode both windowed and call0
30405         ABI call-used registers.
30406         (HARD_FRAME_POINTER_REGNUM): Add frame pointer for call0 ABI.
30407         (INCOMING_REGNO, OUTGOING_REGNO): Use argument unchanged in
30408         call0 ABI.
30409         (REG_CLASS_CONTENTS): Include all registers into the preferred
30410         reload registers set, adjust the set in the
30411         xtensa_conditional_register_usage.
30412         (xtensa_regno_to_class): Drop variable declaration.
30413         (REGNO_REG_CLASS): Redefine to use xtensa_regno_to_class
30414         function.
30415         (WINDOW_SIZE): Define as 8 or 0 for windowed and call0 ABI
30416         respectively.
30417         (FUNCTION_PROFILER): Add _mcount call for call0 ABI.
30418         (TRAMPOLINE_SIZE): Define trampoline size for call0 ABI.
30419         (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 in call0 ABI.
30420         (ASM_OUTPUT_POOL_PROLOGUE): Always generate literal pool
30421         location in call0 ABI.
30422         (EH_RETURN_STACKADJ_RTX): New definition, use a10 for passing
30423         stack adjustment size when handling exception.
30424         (CRT_CALL_STATIC_FUNCTION): Add definition for call0 ABI.
30425         * config/xtensa/xtensa.md (A9_REG, UNSPECV_BLOCKAGE): New
30426         definitions.
30427         ("return" pattern): Generate ret.n/ret in call0 ABI.
30428         ("epilogue" pattern): Expand epilogue.
30429         ("nonlocal_goto" pattern): Use default in call0 ABI.
30430         ("eh_return" pattern): Move implementation to eh_set_a0_windowed,
30431         emit eh_set_a0_* depending on ABI.
30432         ("eh_set_a0_windowed" pattern): Former eh_return pattern.
30433         ("eh_set_a0_call0", "blockage"): New patterns.
30434
30435 2015-03-03  Martin Liska  <mliska@suse.cz>
30436
30437         PR ipa/65287
30438         * ipa-icf.c (sem_variable::parse): Skip all alias variables.
30439
30440 2015-03-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
30441
30442         PR 65138/target
30443         * config/rs6000/rs6000-tables.opt: Regenerate table.
30444
30445 2015-03-03  Renlin Li  <renlin.li@arm.com>
30446
30447         * doc/md.texi (@item ^): Change ? into ^.
30448
30449 2015-03-03  H.J. Lu  <hongjiu.lu@intel.com>
30450
30451         * doc/tm.texi: Regenerated.
30452
30453 2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
30454
30455         * builtins.c (expand_builtin_return_addr): Add
30456         RETURN_ADDR_IN_PREVIOUS_FRAME to 'if' condition, remove
30457         surrounding #ifdef.
30458         * config/sparc/sparc.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Change
30459         definition to 1.
30460         * config/xtensa/xtensa.h (RETURN_ADDR_IN_PREVIOUS_FRAME):
30461         Likewise.
30462         * defaults.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 if
30463         undefined.
30464         * doc/tm.texi.in (RETURN_ADDR_IN_PREVIOUS_FRAME): Update
30465         paragraph.
30466
30467 2015-03-03  Martin Jambor  <mjambor@suse.cz>
30468             Eric Botcazou  <ebotcazou@adacore.com>
30469
30470         * tree-sra.c (ipa_sra_check_caller_data): New type.
30471         (has_caller_p): Removed.
30472         (ipa_sra_check_caller): New function.
30473         (ipa_sra_preliminary_function_checks): Use it.
30474
30475 2015-03-03  Martin Liska  <mliska@suse.cz>
30476
30477         * ipa-icf.c (sem_item_optimizer::merge_classes): Use bit or
30478         instead of if branch.
30479
30480 2015-03-03  Martin Liska  <mliska@suse.cz>
30481
30482         PR ipa/65282
30483         * ipa-icf.c (sem_variable::equals): Fix wrong condition.
30484
30485 2015-03-23  Jeff Law  <law@redhat.com>
30486
30487         PR tree-optimization/65241
30488         * tree-ssa-dom.c (lookup_avail_expr): Only modify the avail_expr
30489         hash table if INSERT is true.
30490
30491 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
30492
30493         PR target/65296
30494         * config.gcc (extra_gcc_objs) [avr-*-rtems*]: Remove.
30495
30496 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
30497
30498         PR target/64331
30499         * config/avr/avr.c (context.h, tree-pass.h): Include them.
30500         (avr_pass_data_recompute_notes): New static variable.
30501         (avr_pass_recompute_notes): New class.
30502         (avr_register_passes): New static function.
30503         (avr_option_override): Call it.
30504
30505 2015-03-03  Georg-Johann Lay  <avr@gjlay.de>
30506
30507         Fix various problems with specs file generation.
30508
30509         PR target/65296
30510         * config.gcc (extra_gcc_objs) [avr]: Remove.
30511         * config/avr/driver-avr.c: Remove file.
30512         * config/avr/t-avr (driver-avr.o): Remove rule.
30513         (gen-avr-mmcu-specs): Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD and
30514         INCLUDES to build.  Depend on TM_H.
30515         * config/avr/gen-avr-mmcu-specs.c: Tidy up code.  Fix various
30516         build warnings.  Fix non-matching types and non-existing %-codes.
30517         (tm.h): Include.
30518         (*lib) [!WITH_AVRLIBC]: Don't link libdev.a.
30519         (*libgcc) [WITH_AVRLIBC]: Add "-lm".
30520         * config/avr/avrlibc.h (LIBGCC_SPEC): Remove definition.
30521         * config/avr/avr.h (DRIVER_SELF_SPECS): Fix handling of -march=.
30522         (CPP_SPEC, CC1PLUS_SPEC, ASM_SPEC, LINK_SPEC, LIB_SPEC)
30523         (LIBGCC_SPEC): Remove definitions.
30524
30525 2015-03-03  Eric Botcazou  <ebotcazou@adacore.com>
30526
30527         * config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
30528         to create a register in testing mode.
30529
30530 2015-03-03  Martin Liska  <mliska@suse.cz>
30531             Jan Hubicka  <hubicka@ucw.cz>
30532
30533         PR ipa/65263
30534         * cgraph.c (cgraph_node::has_thunk_p): New function.
30535         * cgraph.h (cgraph_node::has_thunk_p: Likewise.
30536         * ipa-icf.c (redirect_all_callers): Do not redirect thunks.
30537         (sem_function::merge): Assert is changed.
30538
30539 2015-03-03  Martin Liska  <mliska@suse.cz>
30540             Martin Jambor  <mjambor@suse.cz>
30541
30542         PR ipa/65087
30543         * ipa-icf.c (sem_item_optimizer::execute): Change function
30544         return value to boolean.
30545         (sem_item_optimizer::merge_classes): Likewise.
30546         (ipa_icf_driver): Return TODO_remove_functions in case there's
30547         a merge operation processed.
30548         * ipa-icf.h: Change function return value to boolean.
30549
30550 2015-03-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
30551
30552         PR 65138/target
30553         * config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
30554         processor type for 64-bit little endian PowerPC.
30555
30556         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
30557         -mdebug=reg, print TARGET_DEFAULT.  Fix logic to use
30558         TARGET_DEFAULT if there is no default cpu.  Fix -mdebug=reg
30559         printing built-in mask so it does not pass NULL pointers.
30560
30561         * doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
30562         -mcpu=powerpc64le.
30563
30564 2015-03-02  Steve Ellcey  <sellcey@imgtec.com>
30565
30566         PR target/58158
30567         * config/mips/mips.md (mov<mode>cc): Change ISA_HAS_SEL check to
30568         !ISA_HAS_FP_CONDMOVE.
30569
30570 2015-03-02  Aldy Hernandez  <aldyh@redhat.com>
30571
30572         * config/i386/i386.md (*udivmod<mode>4_pow2): Remove
30573         reload_completed.
30574
30575 2015-03-02  Ulrich Drepper  <drepper@gmail.com>
30576
30577         * doc/invoke.texi (Options for Code Generation Conventions):
30578         Fix URL of DSO paper.
30579
30580 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
30581
30582         PR ipa/65130
30583         * ipa-inline.c (check_callers): Looks for recursion.
30584         (inline_to_all_callers): Give up on uninlinable or recursive edges.
30585         * ipa-inline-analysis.c (inline_summary_t::duplicate): Do not update
30586         summary of inline clones.
30587         (do_estimate_growth_1): Fix recursion check.
30588
30589 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
30590
30591         PR ipa/64988
30592         * ipa-inline-transform.c (clone_inlined_nodes): Do not dissolve
30593         comdat groups.
30594
30595 2015-03-02  Jan Hubicka  <hubicka@ucw.cz>
30596             Aldy Hernandez  <aldyh@redhat.com>
30597
30598         PR lto/65276
30599         * ipa-devirt.c (add_type_duplicate): Remove odr_violated assert
30600         when checking TYPE_BINFO.
30601
30602 2015-03-02  Richard Biener  <rguenther@suse.de>
30603
30604         PR ipa/65270
30605         * ipa-icf-gimple.c: Include builtins.h.
30606         (func_checker::compare_memory_operand): Compare base alignment.
30607
30608 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
30609
30610         PR target/65184
30611         * config/i386/i386.c (ix86_pass_by_reference): Bounds are never
30612         passed by reference.
30613
30614 2015-03-02  Ilya Enkovich  <ilya.enkovich@intel.com>
30615
30616         PR target/65183
30617         * tree-chkp.c (chkp_check_lower): Don't check against
30618         zero bounds for already instrumented functions.
30619         (chkp_check_upper): Likewise.
30620         (chkp_fini): Clean pass local data to avoid wrong reusage.
30621
30622 2015-02-28  Martin Liska  <mliska@suse.cz>
30623             Jan Hubicka  <hubicka@ucw.cz>
30624
30625         * ipa-icf.c (sem_variable::equals): Improve debug output;
30626         get variable constructor.
30627         (sem_variable::parse): Do not filter out too early; give up on
30628         volatile and register vars.
30629         (sem_item_optimizer::filter_removed_items): Filter out nonreadonly
30630         variables.
30631         * ipa-icf.h (sem_variable::init): Do not set ctor.
30632         (sem_variable::ctor): Remove.
30633
30634 2015-03-01  Aldy Hernandez  <aldyh@redhat.com>
30635
30636         PR middle-end/65233
30637         * ipa-polymorphic-call.c (walk_ssa_copies): Handle empty PHIs.
30638
30639 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
30640
30641         * ipa-icf.c: Include stor-layout.h
30642         (sem_function::compare_cgraph_references): Rename to ...
30643         (sem_item::compare_cgraph_references): ... this one.
30644         (sem_variable::equals_wpa): New function
30645         (sem_variable::equals): Do not check stuff already verified by
30646         equals_wpa.
30647         (sem_variable::equals): Reorg based on varasm.c:compare_constant.
30648         * ipa-icf.h (sem_item): Add compare_cgraph_references.
30649         (sem_function): Remove compare_cgraph_references.
30650         (sem_variable): Turns equals_wpa into non-inline.
30651
30652 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
30653
30654         * ipa-icf.c (sem_function::init): Fix formating; skip GIMPLE_PREDICT.
30655         (sem_item::add_expr): New function.
30656         (sem_function::hash_stmt): Handle operands of most statements.
30657         (sem_variable::get_hash): Hash the actual constructor.
30658         * ipa-icf.h (sem_item): Add add_expr.
30659         (sem_function): Update prototype of hash_stmt
30660
30661 2015-02-28  Martin Liska  <mliska@suse.cz>
30662             Jan Hubicka  <hubicka@ucw.cz>
30663
30664         PR ipa/65245
30665         * ipa-icf-gimple.c (func_checker::compare_function_decl):
30666         Remove.
30667         (func_checker::compare_variable_decl): Skip symtab vars.
30668         (func_checker::compare_cst_or_decl): Update.
30669         * ipa-icf.c (sem_function::parse): Do not consider aliases.
30670         (sem_function::compare_cgraph_references): Add ADDRESS parameter;
30671         use correct symtab predicates.
30672         (sem_function::equals_wpa): Update uses of compare_cgraph_references.
30673         (sem_variable::parse):  Update comment.
30674         (sem_item_optimizer::build_graph): Consider ultimate aliases
30675         for references.
30676
30677 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
30678
30679         * ipa-icf-gimple.c (func_checker::compare_operand): Fix handling
30680         of OBJ_TYPE_REF.
30681
30682 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
30683
30684         * ipa-icf.c (sem_function::merge): Fix handling of COMDAT.
30685         (sem_variable::merge) Likewise.
30686
30687 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
30688
30689         * ipa-inline.c (can_inline_edge_p): Match opt_for_fn on inline
30690         target; also match flag_ipa_devirt.
30691
30692 2015-03-01  Martin Liska  <mliska@suse.cz>
30693             Jan Hubicka  <hubicka@ucw.cz>
30694
30695         * ipa-icf-gimple.c (func_checker::compare_variable_decl):
30696         Validate variable alignment.
30697         * ipa-icf.c (sem_function::equals_private): Be more precise
30698         about non-common function attributes.
30699         (sem_variable::equals): Likewise.
30700
30701 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
30702
30703         PR ipa/65237
30704         * ipa-icf.c (sem_function::merge): Do not attempt to produce alias
30705         across COMDAT group boundary.
30706
30707 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
30708
30709         PR ipa/65232
30710         * ipa-icf.c (clear_decl_rtl): New function.
30711         (sem_function::merge): Clear RTL before forming alias.
30712         (sem_variable::merge): Clear RTL before forming alias.
30713
30714 2015-02-28  Jan Hubicka  <hubicka@ucw.cz>
30715
30716         PR ipa/65236
30717         * cgraphunit.c (cgraph_node::expand_thunk): Enable return slot opt.
30718
30719 2015-02-28  Xingxing Pan  <xxingpan@marvell.com>
30720
30721         * config/aarch64/aarch64.md: (mov<mode>_aarch64): Change type
30722         to neon_to_gp<q>.
30723
30724 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
30725
30726         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): Fix
30727         a typo in the description.
30728
30729 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
30730
30731         PR target/64317
30732         * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
30733         * params.h (LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
30734         * lra-constraints.c: Include "params.h".
30735         (EBB_PROBABILITY_CUTOFF): Use
30736         LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF.
30737         (lra_inheritance): Use '<' instead of '<=' for
30738         EBB_PROBABILITY_CUTOFF.
30739         * doc/invoke.texi (lra-inheritance-ebb-probability-cutoff):
30740         Document change.
30741
30742 2015-02-27  Martin Liska  <mliska@suse.cz>
30743
30744         * ipa-icf.h (struct symbol_compare_hashmap_traits): Add missing
30745         vector length condition.
30746
30747 2015-02-27  Sandra Loosemore  <sandra@codesourcery.com>
30748
30749         * doc/extend.texi (x86 transactional memory intrinsics):
30750         Reorganize discussion of _xbegin.  Clarify that the return
30751         value is a bit mask.  Expand example and move to end of section.
30752
30753 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
30754             Aldy Hernandez  <aldyh@redhat.com>
30755
30756         PR rtl-optimization/65220
30757         * config/i386/i386.md (*udivmod<mode>4_pow2): New.
30758
30759 2015-02-27  Vladimir Makarov  <vmakarov@redhat.com>
30760
30761         PR target/65032
30762         * lra-remat.c (update_scratch_ops): New.
30763         (do_remat): Call it.
30764         * lra.c (lra_register_new_scratch_op): New. Take code from ...
30765         (remove_scratches): ... here.
30766         * lra-int.h (lra_register_new_scratch_op): New prototype.
30767
30768 2015-02-27  Marek Polacek  <polacek@redhat.com>
30769
30770         PR c/65040
30771         * doc/invoke.texi: Update to reflect that -Wformat=2 doesn't enable
30772         -Wformat-signedness anymore.
30773
30774 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30775
30776         * config/s390/s390.c: (s390_atomic_assign_expand_fenv): New
30777         function.
30778         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define macro.
30779
30780 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30781
30782         * config/s390/s390.c (enum s390_builtin):
30783         Add S390_BUILTIN_S390_SFPC and S390_BUILTIN_S390_EFPC.
30784         (code_for_builtin): Add CODE_FOR_s390_sfpc and CODE_FOR_s390_efpc.
30785         (s390_init_builtins): Generate new builtin functions.
30786         * config/s390/s390.md (UNSPECV_SFPC, UNSPECV_EFPC): New constants.
30787         (s390_sfpc, s390_efpc): New pattern definitions.
30788
30789 2015-02-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
30790
30791         * config/s390/s390.c: (enum s390_builtin, s390_expand_builtin):
30792         Rename S390_BUILTIN_max to S390_BUILTIN_MAX.
30793         (s390_builtin_decls): New array.
30794         (s390_init_builtins): Put builtin decls into s390_builtin_decls.
30795         (s390_builtin_decl): New function.
30796         (TARGET_BUILTIN_DECL): Define macro.
30797
30798 2015-02-27  Richard Biener  <rguenther@suse.de>
30799
30800         PR middle-end/63175
30801         * builtins.c (get_object_alignment_2): Make sure to re-apply
30802         the ANDed mask after recursing to its operand gets us a new
30803         misalignment bit position.
30804
30805 2015-02-26  Jan Hubicka  <hubicka@ucw.cz>
30806             Martin Liska  <mliska@suse.cz>
30807
30808         PR bootstrap/65150
30809         * ipa-icf.c (symbol_compare_collection::symbol_compare_colleciton):
30810         Use address_matters_p.
30811         (redirect_all_callers, set_addressable): New functions.
30812         (sem_function::merge): Reorganize and fix merging issues.
30813         (sem_variable::merge): Likewise.
30814         (sem_variable::compare_sections): Remove.
30815         * common.opt (fmerge-all-constants, fmerge-constants): Remove
30816         Optimization flag.
30817         * symtab.c (symtab_node::resolve_alias): When alias has aliases,
30818         redirect them.
30819         (symtab_node::make_decl_local): Set ADDRESSABLE bit when
30820         decl is used.
30821         (address_matters_1): New function.
30822         (symtab_node::address_matters_p): New function.
30823         * cgraph.c (cgraph_edge::verify_corresponds_to_fndecl): Fix
30824         check for merged flag.
30825         * cgraph.h (address_matters_p): Declare.
30826         (symtab_node::address_taken_from_non_vtable_p): Remove.
30827         (symtab_node::address_can_be_compared_p): New method.
30828         (ipa_ref::address_matters_p): Move here from ipa-ref.c; simplify.
30829         * ipa-visibility.c (symtab_node::address_taken_from_non_vtable_p):
30830         Remove.
30831         (comdat_can_be_unshared_p_1) Use address_matters_p.
30832         (update_vtable_references): Fix formating.
30833         * ipa-ref.c (ipa_ref::address_matters_p): Move inline.
30834         * cgraphunit.c (cgraph_node::create_wrapper): Drop UNINLINABLE flag.
30835         * cgraphclones.c: Preserve merged and icf_merged flags.
30836
30837 2015-02-26  Sandra Loosemore  <sandra@codesourcery.com>
30838
30839         * doc/extend.texi (Function Attributes): Fix spelling and typos.
30840         (Label Attributes): Likewise.
30841         (Cilk Plus Builtins): Likewise.
30842         (ARC SIMD Built-in Functions): Likewise.
30843         (ARM C Language Extensions (ACLE)): Likewise.
30844         (PowerPC Built-in Functions): Likewise.
30845         (PowerPC Hardware Transactional Memory Built-in Functions):
30846         Likewise.
30847
30848 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
30849
30850         PR tree-optimization/65216
30851         * tree-ssa-reassoc.c (rewrite_expr_tree): Force creation of
30852         new stmt and new SSA_NAME for lhs whenever the arguments have
30853         changed and weren't just swapped.  Fix comment typo.
30854
30855         PR tree-optimization/65215
30856         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Return false
30857         for PDP endian targets.
30858         (perform_symbolic_merge, find_bswap_or_nop_1, find_bswap_or_nop):
30859         Fix up formatting issues.
30860         (bswap_replace): Likewise.  For BYTES_BIG_ENDIAN, if the final access
30861         size is smaller than the original, adjust MEM_REF offset by the
30862         difference of sizes.  Use is_gimple_mem_ref_addr instead of
30863         is_gimple_min_invariant test to avoid adding address temporaries.
30864
30865 2015-02-26  Martin Liska  <mliska@suse.cz>
30866             Jan Hubicka  <hubicka@ucw.cz>
30867
30868         PR ipa/64693
30869         * ipa-icf.c (symbol_compare_collection::symbol_compare_collection): New.
30870         (sem_item_optimizer::subdivide_classes_by_sensitive_refs): New function.
30871         (sem_item_optimizer::process_cong_reduction): Include division by
30872         sensitive references.
30873         * ipa-icf.h (struct symbol_compare_hashmap_traits): New class.
30874         * ipa-ref.c (ipa_ref::address_matters_p): New function.
30875         * ipa-ref.h (ipa_ref::address_matters_p): Likewise.
30876
30877 2015-02-26  Georg-Johann Lay  <avr@gjlay.de>
30878
30879         PR target/65192
30880         * config/avr/avr-protos.h (tiny_valid_direct_memory_access_range):
30881         Remove.
30882         * config/avr/avr.c: Same.
30883         (avr_legitimate_address_p) <AVR_TINY, CONSTANT_ADDRESS_P>:
30884         Refuse any constant address not in 0..0xbf.
30885         * config/avr/avr.md (*mov<mode>, *movsf): Remove
30886         tiny_valid_direct_memory_access_range from insn conditions.
30887         (mov<mode>): Don't special-case expansion of avrtiny addresses.
30888
30889 2015-02-26  Oleg Endo  <olegendo@gcc.gnu.org>
30890
30891         PR target/61142
30892         * config/sh/sh.c (sh_check_add_incdec_notes): New function.
30893         * config/sh/sh-protos.h (sh_check_add_incdec_notes): Declare it.
30894         * config/sh/predicates.md (const_logical_operand): New predicate.
30895         * config/sh/sh.md: Add new peephole2 patterns.
30896
30897 2015-02-26  Marek Polacek  <polacek@redhat.com>
30898
30899         PR ipa/65008
30900         * ipa-inline.c (early_inliner): Recompute inline parameters.
30901
30902 2015-02-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
30903
30904         PR target/65171
30905         * config/rs6000/rs6000.c (rs6000_analyze_swaps): Ensure
30906         instructions with TImode operands are included in the analysis.
30907
30908 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
30909
30910         * tree-ssa-threadupdate.c (dump_jump_thread_path): Print all edges
30911         of an EDGE_FSM_THREAD.
30912
30913 2015-02-25  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
30914
30915         * config/rs6000/htm.md (tcheck): Fix assembly encoding.
30916
30917 2015-02-25  Aldy Hernandez  <aldyh@redhat.com>
30918
30919         PR debug/46102
30920         * dwarf2out.c (dwarf2out_init): Disable -feliminate-dwarf2-dups.
30921
30922 2015-02-26  Sebastian Pop  <s.pop@samsung.com>
30923
30924         PR tree-optimization/65048
30925         * tree-ssa-threadupdate.c (valid_jump_thread_path): New.
30926         (thread_through_all_blocks): Call valid_jump_thread_path.
30927         Remove invalid FSM jump-thread paths.
30928
30929 2015-02-26  Jakub Jelinek  <jakub@redhat.com>
30930
30931         * passes.c (ipa_write_summaries_1): Call lto_output_init_mode_table.
30932         (ipa_write_optimization_summaries): Likewise.
30933         * tree-streamer.h: Include data-streamer.h.
30934         (streamer_mode_table): Declare extern variable.
30935         (bp_pack_machine_mode, bp_unpack_machine_mode): New inline functions.
30936         * lto-streamer-out.c (lto_output_init_mode_table,
30937         lto_write_mode_table): New functions.
30938         (produce_asm_for_decls): Call lto_write_mode_table when streaming
30939         offloading LTO.
30940         * lto-section-in.c (lto_section_name): Add "mode_table" entry.
30941         (lto_create_simple_input_block): Add mode_table argument to the
30942         lto_input_block constructors.
30943         * ipa-prop.c (ipa_prop_read_section, read_replacements_section):
30944         Likewise.
30945         * data-streamer-in.c (string_for_index): Likewise.
30946         * ipa-inline-analysis.c (inline_read_section): Likewise.
30947         * ipa-icf.c (sem_item_optimizer::read_section): Likewise.
30948         * lto-cgraph.c (input_cgraph_opt_section): Likewise.
30949         * lto-streamer-in.c (lto_read_body_or_constructor,
30950         lto_input_toplevel_asms): Likewise.
30951         (lto_input_mode_table): New function.
30952         * tree-streamer-out.c (pack_ts_fixed_cst_value_fields,
30953         pack_ts_decl_common_value_fields, pack_ts_type_common_value_fields):
30954         Use bp_pack_machine_mode.
30955         * real.h (struct real_format): Add name field.
30956         * lto-streamer.h (enum lto_section_type): Add LTO_section_mode_table.
30957         (class lto_input_block): Add mode_table member.
30958         (lto_input_block::lto_input_block): Add mode_table_ argument,
30959         initialize mode_table.
30960         (struct lto_file_decl_data): Add mode_table field.
30961         (lto_input_mode_table, lto_output_init_mode_table): New prototypes.
30962         * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields,
30963         unpack_ts_decl_common_value_fields,
30964         unpack_ts_type_common_value_fields): Call bp_unpack_machine_mode.
30965         * tree-streamer.c (streamer_mode_table): New variable.
30966         * real.c (ieee_single_format, mips_single_format,
30967         motorola_single_format, spu_single_format, ieee_double_format,
30968         mips_double_format, motorola_double_format,
30969         ieee_extended_motorola_format, ieee_extended_intel_96_format,
30970         ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
30971         ibm_extended_format, mips_extended_format, ieee_quad_format,
30972         mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
30973         decimal_single_format, decimal_double_format, decimal_quad_format,
30974         ieee_half_format, arm_half_format, real_internal_format): Add name
30975         field.
30976         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
30977
30978 2015-02-26  Yuri Rumyantsev  <ysrumyan@gmail.com>
30979
30980         PR target/65161
30981         * config/i386/i386.c (ix86_sched_reorder): Skip instruction
30982         reordering for selective scheduling.
30983
30984 2015-02-26  Terry Guo  <terry.guo@arm.com>
30985
30986         * config/arm/arm-cores.def (cortex-m7): Add flag FL_NO_VOLATILE_CE.
30987         * config/arm/arm-protos.h (FL_NO_VOLATILE_CE): New flag.
30988         (arm_arch_no_volatile_ce): Declare new global variable.
30989         * config/arm/arm.c (arm_arch_no_volatile_ce): New global variable.
30990         (arm_option_override): Assign value to arm_arch_no_volatile_ce.
30991         * config/arm/arm.h (arm_arch_no_volatile_ce): Declare it.
30992         (TARGET_NO_VOLATILE_CE): New macro.
30993         * config/arm/arm.md (arm_comparison_operator): Disabled if not allow
30994         volatile memory access in IT block
30995
30996 2015-02-25  Kai Tietz  <ktietz@redhat.com>
30997
30998         PR tree-optimization/61917
30999         * tree-vect-loop.c (vectorizable_reduction): Handle obvious case
31000         that reduc_def_stmt is null.
31001
31002 2015-02-25  Martin Liska  <mliska@suse.cz>
31003
31004         * ipa-icf-gimple.c (func_checker::compare_variable_decl): Compare
31005         hard register variables.
31006
31007 2015-02-25  Kai Tietz  <ktietz@redhat.com>
31008
31009         PR target/64212
31010         * symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
31011         (symtab::noninterposable_alias): Likewise.
31012
31013 2015-02-25  Ilya Enkovich  <ilya.enkovich@intel.com>
31014
31015         PR target/65167
31016         * config/i386/i386.c (ix86_function_arg_regno_p): Support
31017         bounds registers.
31018         (avoid_func_arg_motion): Add dependencies for BNDSTX insns.
31019
31020 2015-02-25  Alan Lawrence  <alan.lawrence@arm.com>
31021
31022         PR target/64997
31023         * config/aarch64/aarch64.md (*xor_one_cmpl<mode>3): Use FP_REGNUM_P
31024         as split condition; force split via '#' in output pattern.
31025
31026 2015-02-25  Richard Biener  <rguenther@suse.de>
31027             Kai Tietz  <ktietz@redhat.com>
31028
31029         PR tree-optimization/61917
31030         * tree-vect-loop.c (vectorizable_reduction): Allow
31031         vect_internal_def without reduction to exit graceful.
31032
31033 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
31034
31035         PR target/65196
31036         * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
31037         only with NONDEBUG_INSN_P.
31038
31039 2015-02-25  Georg-Johann Lay  <avr@gjlay.de>
31040
31041         Use variadic macros with avr-log.c.
31042
31043         * config/avr/avr-protos.h (avr_vdump): New prototype.
31044         (avr_log_set_caller_e, avr_log_set_caller_f): Remove protos.
31045         (avr_edump, avr_fdump, avr_dump): (Re)define to use avr_vdump.
31046         * config/avr/avr-log.c: Adjust comments.
31047         (avr_vdump): New function.
31048         (avr_vadump): Pass caller as 2nd argument instead of format string.
31049         (avr_log_caller, avr_log_fdump_e, avr_log_fdump_f)
31050         (avr_log_set_caller_e, avr_log_set_caller_f): Remove.
31051
31052 2015-02-25  Jakub Jelinek  <jakub@redhat.com>
31053
31054         PR lto/64374
31055         * target.def (target_option_stream_in): New target hook.
31056         * tree-streamer-in.c (streamer_read_tree_bitfields): Invoke
31057         targetm.target_option.post_stream_in if non-NULL.
31058         * doc/tm.texi.in: Add @hook TARGET_OPTION_POST_STREAM_IN.
31059         * doc/tm.texi: Updated.
31060         * config/i386/i386.c (ix86_function_specific_post_stream_in): New
31061         function.
31062         (TARGET_OPTION_POST_STREAM_IN): Redefine.
31063
31064 2015-02-24  Jeff Law  <law@redhat.com>
31065
31066         PR target/65117
31067         * config/xtensa/xtensa.md (zero_cost_loop_start): Reverse numbering
31068         of operand 0 and operand 2.
31069         (zero_cost_loop_end, loop_end): Similarly.
31070
31071 2015-02-24  Aldy Hernandez  <aldyh@redhat.com>
31072
31073         * gimple.h (gimple_build_assign): Rename CXX_MEM_STAT_DECL to
31074         CXX_MEM_STAT_INFO.
31075
31076 2015-02-24  DJ Delorie  <dj@redhat.com>
31077
31078         * config/rl78/rl78-protos.h (rl78_split_movsi): Accept a mode as well.
31079         * config/rl78/rl78-expand.md (movsf): New, same as movsi.
31080         * config/rl78/rl78.c (rl78_split_movsi): Accept a mode, use it
31081         instead of hardcoding SImode.
31082
31083 2015-02-24  Bernd Schmidt  <bernds@codesourcery.com>
31084
31085         * omp-low.c (create_omp_child_function): Tag entrypoint
31086         functions with a special attribute.
31087
31088 2015-02-24  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
31089
31090         PR target/65058
31091         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Drop unused variable.
31092
31093 2015-02-24  Vladimir Makarov  <vmakarov@redhat.com>
31094
31095         PR rtl-optimization/65123
31096         * lra-remat.c (operand_to_remat): Check hard regs in insn
31097         definition too.
31098
31099 2015-02-24  Nick Clifton  <nickc@redhat.com>
31100
31101         * config/v850/v850.h (ASM_SPEC): Pass -msoft-float/-mhard-float on
31102         to the assembler.
31103
31104 2015-02-24  Thomas Schwinge  <thomas@codesourcery.com>
31105
31106         PR libgomp/64625
31107         * omp-builtins.def (BUILT_IN_GOACC_DATA_START): Specify as
31108         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, not
31109         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR.
31110         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_UPDATE): Specify as
31111         BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR, not
31112         BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR.
31113         (BUILT_IN_GOACC_PARALLEL): Specify as
31114         BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR, not
31115         BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR.
31116         * builtin-types.def
31117         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
31118         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
31119         Remove function types.
31120         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
31121         (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
31122         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
31123         New function types.
31124
31125 2015-02-24  Georg-Johann Lay  <avr@gjlay.de>
31126
31127         * config/avr/stdfix.h [__WITH_AVRLIBC__]: Include <stdfix-avrlibc.h>.
31128
31129 2015-02-24  Jakub Jelinek  <jakub@redhat.com>
31130
31131         PR tree-optimization/65170
31132         * wide-int.cc (wi::mul_internal): For the umul_ppmm optimization,
31133         if val[1] < 0, clear also val[2] and return 3.
31134
31135 2015-02-24  Alan Modra  <amodra@gmail.com>
31136
31137         PR target/65172
31138         * config/rs6000/rs6000.c (get_memref_parts): Only return true
31139         when *base is a reg.  Handle nested plus addresses.  Simplify
31140         pre_modify test.
31141
31142 2015-02-22  Max Filippov  <jcmvbkbc@gmail.com>
31143
31144         * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT, DATA_ALIGNMENT):
31145         use natural alignment when optimizing for size.
31146
31147 2015-02-23  Kaz Kojima  <kkojima@gcc.gnu.org>
31148
31149         PR target/65153
31150         * config/sh/sh.md (movsicc_true+3): Remove peephole.
31151         * config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
31152         * config/sh/sh.c (replace_n_hard_rtx): Remove.
31153
31154 2015-02-23  Richard Sandiford  <richard.sandiford@arm.com>
31155
31156         PR fortran/63427
31157         * wide-int.cc (wi::from_mpz): Cope with unwrapped values that are
31158         too big for a wide_int.  Implement missing wrapping operation.
31159
31160 2015-02-23  Oleg Endo  <olegendo@gcc.gnu.org>
31161
31162         PR target/65163
31163         * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
31164         instead of const_int 4294901760.
31165
31166 2015-02-23  Georg-Johann Lay  <avr@gjlay.de>
31167
31168         * config/avr/t-avr: Fix typo in comment.
31169
31170 2015-02-21  Richard Sandiford  <richard.sandiford@arm.com>
31171
31172         * doc/rtl.texi (fma): Clarify documentation.
31173
31174 2015-02-20  Aldy Hernandez  <aldyh@redhat.com>
31175
31176         PR debug/58123
31177         * gimplify.c (gimplify_expr): Prefer location of TRY_FINALLY_EXPR
31178         over input_location.
31179
31180 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
31181
31182         * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
31183         unpack_ts_type_common_value_fields): If ACCEL_COMPILER,
31184         restrict alignments to absolute_biggest_alignment.
31185         * config/i386/i386.c (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT):
31186         Define.
31187         * doc/tm.texi.in (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT): Add.
31188         * doc/tm.texi: Regenerate.
31189         * target.def (absolute_biggest_alignment): New DEFHOOKPOD.
31190
31191 2015-02-20  Vladimir Makarov  <vmakarov@redhat.com>
31192
31193         PR target/64172
31194         * ira-color.c (color_pass): Prevent splitting multi-register pseudos.
31195
31196 2015-02-20  Richard Biener  <rguenther@suse.de>
31197
31198         PR tree-optimization/65136
31199         * tree-ssa-propagate.c: Include cfgloop.h.
31200         (replace_phi_args_in): Avoid replacing loop latch edge PHI
31201         arguments with constants.
31202
31203 2015-02-20  Jakub Jelinek  <jakub@redhat.com>
31204             Martin Liska  <mliska@suse.cz>
31205
31206         PR target/63892
31207         * ipa-icf.c (sem_function::merge): If DECL_COMDAT_GROUP (alias->decl),
31208         don't try to create_thunk if stdarg_p.  If
31209         !sem_item::target_supports_symbol_aliases_p (), similarly, and try to
31210         redirect_callers if possible.
31211         (sem_item_optimizer::execute): Call unregister_hooks here...
31212         (ipa_icf_driver): ... instead of here.
31213
31214 2015-02-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
31215
31216         * config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
31217         Mark operand 0 as earlyclobber in 2nd alternative.
31218         (1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
31219         Write negated shift amount into QI lowpart operand 0 and use it
31220         in the shift step.
31221         (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
31222
31223 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
31224
31225         * cgraph.h (clone_function_name_1): Declare.
31226         * cgraphclones.c (clone_function_name_1): New function.
31227         (clone_function_name): Use it.
31228         * lto-partition.c: Include "stringpool.h".
31229         (must_not_rename, maybe_rewrite_identifier)
31230         (validize_symbol_for_target): New static functions.
31231         (privatize_symbol_name): Use must_not_rename.
31232         (promote_symbol): Call validize_symbol_for_target.
31233         (lto_promote_cross_file_statics): Likewise.
31234         (lto_promote_statics_nonwpa): Likewise.
31235
31236 2015-02-20  Georg-Johann Lay  <avr@gjlay.de>
31237
31238         PR target/64452
31239         * config/avr/avr.md (pushhi_insn): New insn.
31240         (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
31241
31242 2015-02-20  Bernd Schmidt  <bernds@codesourcery.com>
31243             Jakub Jelinek  <jakub@redhat.com>
31244
31245         * tree-streamer.c (preload_common_nodes): Don't preload
31246         TI_VA_LIST* for offloading.
31247         * tree-stdarg.c (pass_stdarg::gate): Disable for ACCEL_COMPILER
31248         in_lto_p.
31249
31250 2015-02-19  John David Anglin  <danlgin@gcc.gnu.org>
31251
31252         * config/pa/pa.c (pa_emit_move_sequence): Always force
31253         (const (plus (symbol) (const_int))) to const mem.  Put REG_EQUAL
31254         note on insn.
31255
31256         * config/pa/pa.c (pa_reloc_rw_mask): New function.
31257         (TARGET_ASM_RELOC_RW_MASK): Define.
31258         (pa_cannot_force_const_mem): Revert previous change.
31259
31260 2015-02-19  Martin Jambor  <mjmabor@suse.cz>
31261             Jan Hubicka  <hubicka@ucw.cz>
31262
31263         PR ipa/65028
31264         * ipa-cp.c (propagate_alignment_accross_jump_function): Fix propagation
31265         across jump functions.
31266
31267 2015-02-19  Uros Bizjak  <ubizjak@gmail.com>
31268
31269         * config/alpha/alpha.c (alpha_in_small_data_p): Reject common symbols.
31270
31271 2015-02-19  Sandra Loosemore  <sandra@codesourcery.com>
31272
31273         * doc/extend.texi (x86 transactional memory intrinsics): Copy-edit.
31274
31275 2015-02-19  Richard Henderson  <rth@redhat.com>
31276
31277         PR middle-end/65074
31278         * varasm.c (default_binds_local_p_2): Don't test node->definition;
31279         test DECL_EXTERNAL independent of symtab_node.
31280
31281 2015-02-19  Jakub Jelinek  <jakub@redhat.com>
31282
31283         PR lto/65012
31284         * varpool.c (varpool_node::get_constructor): Return early
31285         if this->lto_file_data is NULL.
31286
31287 2015-02-19  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
31288
31289         * haifa-sched.c (enum rfs_decision, rfs_str): Remove RFS_DEBUG.
31290         (rank_for_schedule_debug): Update.
31291         (ready_sort): Make static.  Move sorting logic to ...
31292         (ready_sort_debug, ready_sort_real): New static functions.
31293         (schedule_block): Sort both debug insns and real insns in preparation
31294         for ready list trimming.  Improve debug output.
31295         * sched-int.h (ready_sort): Remove global declaration.
31296
31297 2015-02-18  Trevor Saunders  <tsaunders@mozilla.com>
31298
31299         * ipa-icf.c (sem_function::equals_private): Adjust.
31300         (sem_function::bb_dict_test): Take a vec<int> * instead of
31301         auto_vec<int>.
31302         * ipa-icf.h (bb_dict_test): Likewise.
31303
31304 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
31305
31306         PR gcov-profile/64634
31307         * tree-eh.c (frob_into_branch_around): Fix up typos
31308         in function comment.
31309         (lower_catch): Put eh_seq resulting from EH lowering of
31310         the cleanup sequence after the cleanup rather than before it.
31311
31312 2015-02-18  Tom de Vries  <tom@codesourcery.com>
31313
31314         * common.opt (fstdarg-opt): New option.
31315         * tree-stdarg.c (pass_stdarg::gate): Use flag_stdarg_opt.
31316         * doc/invoke.texi (@item Optimization Options): Add -fstdarg-opt.
31317         (@item -fstdarg-opt): New item.
31318
31319 2015-02-18  H.J. Lu  <hongjiu.lu@intel.com>
31320
31321         PR target/65064
31322         * config/ia64/predicates.md (sdata_symbolic_operand): Return false
31323         for common symbols.
31324
31325 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
31326
31327         * config/i386/t-intelmic (mkoffload.o): Remove dependency on
31328         insn-modes.h.
31329         (ALL_HOST_OBJS): Add mkoffload.o.
31330         * config/nvptx/t-nvptx (ALL_HOST_OBJS): Likewise.
31331
31332 2015-02-18  Jan Hubicka  <hubicka@ucw.cz>
31333
31334         * ipa-devirt.c (odr_subtypes_equivalent_p): Fix formating.
31335         (compare_virtual_tables): Be smarter about skipping typeinfos;
31336         do sane output on virtual table table mismatch.
31337         (warn_odr): Be ready for forward declarations of enums;
31338         output sane info on base mismatch and virtual table mismatch.
31339         (add_type_duplicate): Fix code choosing prevailing type; do not ICE
31340         when only one type is polymorphic.
31341         (get_odr_type): Fix hashtable corruption.
31342         (dump_odr_type): Dump mangled names.
31343
31344 2015-02-18  Richard Biener  <rguenther@suse.de>
31345
31346         PR tree-optimization/65063
31347         * tree-predcom.c (determine_unroll_factor): Return 1 if we
31348         have replaced looparound PHIs.
31349
31350 2015-02-18  Martin Liska  <mliska@suse.cz>
31351
31352         * lto-streamer.c (lto_streamer_init): Encapsulate
31353         streamer_check_handled_ts_structures with checking macro.
31354
31355 2015-02-18  Jakub Jelinek  <jakub@redhat.com>
31356
31357         PR ipa/65087
31358         * cgraphclones.c (cgraph_node::create_virtual_clone): Only copy
31359         section if !implicit_section.
31360         (cgraph_node::create_version_clone_with_body): Likewise.
31361         * trans-mem.c (ipa_tm_create_version): Likewise.
31362
31363 2015-02-18  Richard Biener  <rguenther@suse.de>
31364
31365         PR tree-optimization/62217
31366         * tree-ssa-dom.c (cprop_operand): Avoid propagating copies
31367         into BIVs.
31368
31369 2015-02-18  Marek Polacek  <polacek@redhat.com>
31370
31371         PR sanitizer/65081
31372         * ubsan.c (OBJSZ_MAX_OFFSET): Define.
31373         (ubsan_expand_objsize_ifn): Don't emit run-time check if the offset
31374         is in range [-16K, -1].  Don't issue run-time error if
31375         (ptr > ptr + offset).
31376
31377 2015-02-18  Thomas Schwinge  <thomas@codesourcery.com>
31378
31379         * doc/install.texi (nvptx-*-none): New section.
31380         * doc/invoke.texi (Nvidia PTX Options): Likewise.
31381         * config/nvptx/nvptx.opt: Update.
31382
31383         * config/nvptx/mkoffload.c (parse_env_var, free_array_of_ptrs)
31384         (access_check): New functions, copied from
31385         config/i386/intelmic-mkoffload.c.
31386         (main): For non-installed testing, look in all COMPILER_PATHs for
31387         GCC_INSTALL_NAME.
31388
31389         * config/nvptx/nvptx.h (GOMP_SELF_SPECS): Define macro.
31390
31391 2015-02-18  Andrew Pinski  <apinski@cavium.com>
31392             Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
31393
31394         * config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
31395         Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.
31396
31397 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
31398
31399         * ipa-visibility.c (function_and_variable_visibility): Only
31400         check locality if node is not already local.
31401         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
31402         call_for_symbol_and_aliases instead of
31403         call_for_symbol_thunks_and_aliases.
31404         (ipa_inline): Likewise.
31405         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
31406         first walk aliases.
31407         * ipa.c (symbol_table::remove_unreachable_nodes): Use
31408         call_for_symbol_and_aliases.
31409         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
31410         (ipa_propagate_frequency_1): Use it; use opt_for_fn
31411         (ipa_propagate_frequency): Update.
31412         (ipa_profile): Add opt_for_fn gueards.
31413
31414 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
31415
31416         * config/sh/sh.opt (mcbranch-force-delay-slot): New option.
31417         * doc/invoke.texi (SH options): Document it.
31418         * config/sh/sh.c (sh_insn_length_adjustment): Check
31419         TARGET_CBRANCH_FORCE_DELAY_SLOT instead of sh_cpu_attr == CPU_SH2E.
31420
31421 2015-02-17  H.J. Lu  <hongjiu.lu@intel.com>
31422
31423         * common.opt (fipa-cp-alignment): New.
31424         * ipa-cp.c (ipcp_store_alignment_results): Check
31425         flag_ipa_cp_alignment.
31426         * opts.c (default_options_table): Enable -fipa-cp-alignment for
31427         -O2.
31428         (enable_fdo_optimizations): Set x_flag_ipa_cp_alignment.
31429         * doc/invoke.texi: Document -fipa-cp-alignment.
31430
31431 2015-02-17  Oleg Endo  <olegendo@gcc.gnu.org>
31432
31433         PR target/64793
31434         * config/sh/sh.md (cbranch define_delay): Set annulled true branch insn
31435         to nil.  Adjust comments.
31436
31437 2015-02-17  Jan Hubicka  <hubicka@ucw.cz>
31438
31439         * ipa-visibility.c (function_and_variable_visibility): Only
31440         check locality if node is not already local.
31441         * ipa-inline.c (want_inline_function_to_all_callers_p): Use
31442         call_for_symbol_and_aliases instead of
31443         call_for_symbol_thunks_and_aliases.
31444         (ipa_inline): Likewise.
31445         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
31446         first walk aliases.
31447         * ipa.c (symbol_table::remove_unreachable_nodes): Use
31448         call_for_symbol_and_aliases.
31449         * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
31450         (ipa_propagate_frequency_1): Use it; use opt_for_fn
31451         (ipa_propagate_frequency): Update.
31452         (ipa_profile): Add opt_for_fn guards.
31453
31454 2015-02-17  Thomas Schwinge  <thomas@codesourcery.com>
31455
31456         * config/nvptx/mkoffload.c (parse_file): Fix logic error in
31457         skipping of "strange" tokens.
31458
31459 2015-02-17  Jeff Law  <law@redhat.com>
31460
31461         * tree-vrp.c (identify_jump_threads): Use last_stmt.  Remove
31462         obsolete comment.
31463
31464 2015-02-17  James Greenhalgh  <james.greenhalgh@arm.com>
31465
31466         * haifa-sched.c (recompute_todo_spec): Treat SCHED_GROUP_P
31467         as forcing a HARD_DEP between instructions, thereby
31468         disallowing rewriting to break dependencies.
31469
31470 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
31471
31472         * symtab.c (symtab_node::verify_base): Verify body_removed->!definiton
31473         * lto-cgraph.c (lto_output_varpool_node): Do not keep definition of
31474         variables in boundary that have no inlitalizer encoded and are
31475         not aliases.
31476         * varasm.c (default_binds_local_p_2): External definitions do not
31477         count as definitions here.
31478
31479 2015-02-16  Jeff Law  <law@redhat.com>
31480
31481         PR tree-optimization/64823
31482         * tree-vrp.c (identify_jump_threads): Handle blocks with no real
31483         statements.
31484         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
31485         threading through blocks with PHIs, but no statements.
31486         (thread_through_normal_block): Distinguish between blocks where
31487         we did not process all the statements and blocks with no statements.
31488
31489 2015-02-16  Jakub Jelinek  <jakub@redhat.com>
31490             James Greenhalgh  <james.greenhalgh@arm.com>
31491
31492         PR ipa/64963
31493         * cgraphclones.c (cgraph_node::create_virtual_clone): Copy
31494         section if not linkonce.  Fix up formatting.
31495         (cgraph_node::create_version_clone_with_body): Copy section.
31496         * trans-mem.c (ipa_tm_create_version): Likewise.
31497
31498 2015-02-16  Richard Biener  <rguenther@suse.de>
31499
31500         PR tree-optimization/65077
31501         * tree-ssa-structalias.c (get_constraint_for_1): Handle
31502         IMAGPART_EXPR, REALPART_EXPR and BIT_FIELD_REF.
31503         (find_func_aliases): Allow float values to carry pointers again.
31504
31505 2015-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
31506
31507         * doc/install.texi (Specific): Reorder targets list to put
31508         aarch64 in alphabetical order.  Add a link to aarch64*-*-*
31509         from the top menu.
31510
31511 2015-02-16  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
31512             David Edelsohn  <dje.gcc@gmail.com>
31513
31514         PR target/65058
31515         * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Append storage
31516         mapping class to external variable or function reference.
31517         * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Do not append storage
31518         mapping class.
31519
31520 2015-02-16  David Eelsohn  <dje.gcc@gmail.com>
31521
31522         PR target/53348
31523         * config/rs6000/rs6000.c (rs6000_declare_alias): Only use
31524         ASM_WEAKEN_DECL if defined.
31525
31526 2015-02-16  Richard Biener  <rguenther@suse.de>
31527
31528         PR lto/65015
31529         * varasm.c (default_file_start): For LTO produced units
31530         emit <artificial> as file directive.
31531
31532 2015-02-16  Richard Biener  <rguenther@suse.de>
31533
31534         PR tree-optimization/63593
31535         * tree-predcom.c (execute_pred_commoning_chain): Delay removing
31536         stmts and releasing SSA names until...
31537         (execute_pred_commoning): ... after processing all chains.
31538
31539 2015-02-16  Jan Hubicka  <hubicka@ucw.cz>
31540
31541         PR ipa/65059
31542         * ipa-comdats.c (ipa_comdats): Do not categorize thunks to
31543         external functions.
31544
31545 2015-02-15  Sandra Loosemore  <sandra@codesourcery.com>
31546
31547         * doc/bugreport.texi: Adjust section titles throughout the file
31548         to use "Title Case".
31549         * doc/extend.texi: Likewise.
31550         * doc/gcov.texi: Likewise.
31551         * doc/implement-c.texi: Likewise.
31552         * doc/implement-cxx.texi: Likewise.
31553         * doc/invoke.texi: Likewise.
31554         * doc/objc.texi: Likewise.
31555         * doc/standards.texi: Likewise.
31556         * doc/trouble.texi: Likewise.
31557
31558 2015-02-15  Jan Hubicka  <hubicka@ucw.cz>
31559
31560         * cgraph.h (symtab_node::has_aliases_p): Simplify.
31561         (symtab_node::call_for_symbol_and_aliases): Use has_aliases_p
31562         * tree.c (lookup_binfo_at_offset): Make static.
31563         (get_binfo_at_offset): Do not shadow offset; add explanatory
31564         comment.
31565
31566 2015-02-15  John David Anglin  <danglin@gcc.gnu.org>
31567
31568         * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
31569         for all floading point loads and stores except those using a register
31570         index address.
31571         * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
31572         to a register.
31573
31574 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
31575
31576         * ipa-inline-analysis.c (growth_data): Add uninlinable field.
31577         (do_estimate_growth_1): Record if any uninlinable edge was seen.
31578         (estimate_growth): Handle uninlinable edges correctly.
31579         (check_callers): New.
31580         (growth_likely_positive): Handle aliases correctly.
31581
31582 2015-02-14  Jan Hubicka  <hubicka@ucw.cz>
31583
31584         * ipa-chkp.c: Use iterate_direct_aliases.
31585         * symtab.c (resolution_used_from_other_file_p): Move inline.
31586         (symtab_node::create_reference): Fix formating.
31587         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
31588         (symtab_node::iterate_reference): Move inline.
31589         (symtab_node::iterate_referring): Move inline.
31590         (symtab_node::iterate_direct_aliases): Move inline.
31591         (symtab_node::used_from_object_file_p_worker): Inline into ...
31592         (symtab_node::used_from_object_file_p): ... this one; move inline.
31593         (symtab_node::call_for_symbol_and_aliases): Move inline;
31594         use iterate_direct_aliases.
31595         (symtab_node::call_for_symbol_and_aliases_1): New method.
31596         (cgraph_node::call_for_symbol_and_aliases): Move inline;
31597         use iterate_direct_aliases.
31598         (cgraph_node::call_for_symbol_and_aliases_1): New method.
31599         (varpool_node::call_for_node_and_aliases): Rename to ...
31600         (varpool_node::call_for_symbol_and_aliases): ... this one; Move inline;
31601         use iterate_direct_aliases.
31602         (varpool_node::call_for_symbol_and_aliases_1): New method.
31603         * ipa.c (ipa_single_use): Use iterate_direct_aliases.
31604         (ipa_discover_readonly_nonaddressable_var): Update.
31605         * ipa-devirt.c: Fix formating.
31606         * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
31607         Move inline.
31608         (cgraph_node::call_for_symbol_and_aliases): Move inline.
31609         (cgraph_node::call_for_symbol_and_aliases_1): New function..
31610         * cgraph.h (used_from_object_file_p_worker): Remove.
31611         (resolution_used_from_other_file_p): Move inline.
31612         (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
31613         (symtab_node::iterate_reference): Move inline.
31614         (symtab_node::iterate_referring): Move inline.
31615         (symtab_node::iterate_direct_aliases): Move inline.
31616         (symtab_node::used_from_object_file_p_worker): Inline into ...
31617         (symtab_node::used_from_object_file_p): Move inline.
31618         * tree-emutls.c (ipa_lower_emutls): Update.
31619         * varpool.c (varpool_node::call_for_symbol_and_aliases_1): New method.
31620         (varpool_node::call_for_node_and_aliases): Remove.
31621
31622 2015-02-14  Jakub Jelinek  <jakub@redhat.com>
31623
31624         PR tree-optimization/62209
31625         * tree-ssa-reassoc.c (update_range_test): If stmt is a PHI and
31626         op == range->exp, insert seq and gimplified code after labels
31627         instead of after the phi.
31628
31629 2015-02-13  Jeff Law  <law@redhat.com>
31630
31631         PR bootstrap/65060
31632         Revert my change for tree-optimization/64823.
31633
31634 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
31635
31636         PR tree-optimization/65053
31637         * tree-ssa-phiopt.c (value_replacement): When moving assign before
31638         cond, either reset VR on lhs or set it to phi result VR.
31639
31640 2015-02-13  Jeff Law  <law@redhat.com>
31641
31642         PR tree-optimization/64823
31643         * tree-vrp.c (identify_jump_threads): Handle blocks with no statements.
31644         * tree-ssa-threadedge.c (potentially_threadable_block): Allow
31645         threading through blocks with PHIs, but no statements.
31646         (thread_through_normal_block): Distinguish between blocks where
31647         we did not process all the statements and blocks with no statements.
31648
31649         PR rtl-optimization/47477
31650         * match.pd (convert (plus/minus (convert @0) (convert @1): New
31651         simplifier to narrow arithmetic.
31652
31653 2015-02-13  Jan Hubicka  <hubicka@ucw.cz>
31654
31655         PR ipa/65028
31656         * ipa-prop.c (update_indirect_edges_after_inlining): Do not drop
31657         polymorphic call info when type is not known to be preserved.
31658
31659 2015-02-13  Maritn Jambor  <mjambor@suse.cz>
31660
31661         PR ipa/65028
31662         * ipa-inline-transform.c (mark_all_inlined_calls_cdtor): New function.
31663         (inline_call): Use it.
31664
31665 2015-02-13  Thomas Schwinge  <thomas@codesourcery.com>
31666
31667         * config/nvptx/offload.h (ACCEL_COMPILER_acc_device): Define to
31668         GOMP_DEVICE_NVIDIA_PTX.
31669
31670 2015-02-13  Jakub Jelinek  <jakub@redhat.com>
31671
31672         PR ipa/65034
31673         * stmt.c (emit_case_nodes): Use void_type_node instead of
31674         NULL_TREE as LABEL_DECL type.
31675
31676 2015-02-13  John David Anglin  <danglin@gcc.gnu.org>
31677
31678         * config/pa/constraints.md: Change "Q" and "T" constraints to memory
31679         constraints.
31680         * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
31681         symbolic references to data to be forced to constant memory on the
31682         SOM target.
31683
31684 2015-02-13  Ilya Enkovich  <ilya.enkovich@intel.com>
31685
31686         PR tree-optimization/65002
31687         * tree-cfg.c (pass_data_fixup_cfg): Don't update
31688         SSA on start.
31689         * tree-sra.c (some_callers_have_no_vuse_p): New.
31690         (ipa_early_sra): Reject functions whose callers
31691         assume function is read only.
31692
31693 2015-02-13  Richard Biener  <rguenther@suse.de>
31694
31695         PR lto/65015
31696         * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
31697         for LTO produced CUs.
31698
31699 2015-02-13  Bin Cheng  <bin.cheng@arm.com>
31700
31701         PR tree-optimization/64705
31702         * tree-ssa-loop-niter.h (expand_simple_operations): New parameter.
31703         * tree-ssa-loop-niter.c (expand_simple_operations): New parameter.
31704         * tree-ssa-loop-ivopts.c (extract_single_var_from_expr): New.
31705         (find_bivs, find_givs_in_stmt_scev): Pass new argument to
31706         expand_simple_operations.
31707
31708 2015-02-13  H.J. Lu  <hongjiu.lu@intel.com>
31709             Richard Henderson  <rth@redhat.com>
31710
31711         PR rtl/32219
31712         * cgraphunit.c (cgraph_node::finalize_function): Set definition
31713         before notice_global_symbol.
31714         (varpool_node::finalize_decl): Likewise.
31715         * varasm.c (default_binds_local_p_2): Rename from
31716         default_binds_local_p_1, add weak_dominate argument.  Use direct
31717         returns instead of assigning to local variable.  Unify varpool and
31718         cgraph paths via symtab_node.  Reject undef weak variables before
31719         testing visibility.  Reorder tests for simplicity.
31720         (default_binds_local_p): Use default_binds_local_p_2.
31721         (default_binds_local_p_1): Likewise.
31722         (decl_binds_to_current_def_p): Unify varpool and cgraph paths
31723         via symtab_node.
31724         (default_elf_asm_output_external): Emit visibility when specified.
31725
31726 2015-02-13  Alan Modra  <amodra@gmail.com>
31727
31728         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Fix typo in
31729         code setting up r11 for out-of-line fp restore.
31730
31731 2015-02-13  Eric Botcazou  <ebotcazou@adacore.com>
31732
31733         * config/visium/visium.opt (msv-mode): Add RejectNegative and Report.
31734         (muser-mode): Likewise.
31735
31736 2015-02-13  Alan Modra  <amodra@gmail.com>
31737
31738         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Use addsi3_carry
31739         or adddi3_carry when restoring frame_reg_rtx from r0 after restvr.
31740
31741 2015-02-12  David Howells  <dhowells@redhat.com>
31742
31743         * tree-sra.c (dump_dereferences_table): Avoid -Wformat-security
31744         warning.
31745         * tree-ssa-uninit.c (dump_predicates): Likewise.
31746         * opts.c (print_filtered_help): Likewise.
31747
31748 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
31749
31750         * dwarf2out.c (output_die): Use "%s", name instead of name to
31751         avoid -Wformat-security warning.
31752
31753         * dwarf2asm.c (dw2_asm_output_vms_delta): Only define
31754         if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
31755         * dwarf2out.c (output_die): Use dw2_asm_output_vms_delta
31756         only if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
31757
31758 2015-02-12  Jason Merrill  <jason@redhat.com>
31759
31760         * common.opt (-flifetime-dse): New.
31761
31762 2015-02-12  Jakub Jelinek  <jakub@redhat.com>
31763
31764         PR sanitizer/65019
31765         * ubsan.c (ubsan_expand_objsize_ifn): Always return true.
31766
31767         PR tree-optimization/65014
31768         * fold-const.c (fold_binary_loc): When creating {L,R}ROTATE_EXPR,
31769         use original second operand of arg0 or arg1 instead of
31770         that adjusted by STRIP_NOPS.
31771
31772 2015-02-11  Jeff Law  <law@redhat.com>
31773
31774         PR target/63347
31775         * haifa-sched.c (prune_ready_list): If we have a SCHED_GROUP_P insn
31776         that needs to be queued, just queue it for a single cycle.
31777
31778 2015-02-11  Jan Hubicka  <hubicka@ucw.cz>
31779
31780         * ipa.c (symbol_table::remove_unreachable_nodes): Avoid releasing
31781         bodies of thunks; comment on why.
31782         * symtab.c (symtab_node::get_partitioning_class): Aliases of extern
31783         symbols are extern.
31784
31785 2015-02-11  Richard Henderson  <rth@redhat.com>
31786
31787         PR sanitize/65000
31788         * tree-eh.c (mark_reachable_handlers): Mark source and destination
31789         regions of __builtin_eh_copy_values.
31790
31791 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
31792
31793         PR middle-end/65003
31794         * varasm.c (place_block_symbol): Assert that DECL_RTL of the
31795         ultimate alias is MEM with SYMBOL_REF satisfying
31796         SYMBOL_REF_HAS_BLOCK_INFO_P as its operand.  Don't pass the MEM
31797         to place_block_symbol, but instead pass the SYMBOL_REF operand of it.
31798
31799 2015-02-11  Thomas Schwinge  <thomas@codesourcery.com>
31800
31801         * config/nvptx/mkoffload.c: Include "diagnostic.h" instead of
31802         "diagnostic-core.h".
31803         (main): Initialize progname, and call diagnostic_initialize.
31804
31805         * config/nvptx/mkoffload.c (process): Refer to __OFFLOAD_TABLE__
31806         instead of __OPENMP_TARGET__.
31807
31808         * config/nvptx/mkoffload.c: Include "gomp-constants.h".
31809         (process): Use its GOMP_DEVICE_NVIDIA_PTX instead of (wrongly)
31810         hard-coding PTX_ID.
31811
31812 2015-02-11  H.J. Lu  <hongjiu.lu@intel.com>
31813
31814         * doc/sourcebuild.texi (pie_enabled): Document.
31815
31816 2015-02-11  Martin Liska  <mliska@suse.cz>
31817
31818         PR ipa/64813
31819         * cgraphunit.c (cgraph_node::expand_thunk): Do not create
31820         a return value for call to a function that is noreturn.
31821
31822 2015-02-11  Richard Biener  <rguenther@suse.de>
31823
31824         PR lto/65015
31825         * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
31826         and -fresolution.
31827
31828 2015-02-11  Andrew Pinski  <apinski@cavium.com>
31829
31830         PR target/64893
31831         * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
31832         Change the first argument type to size_type_node and add another
31833         size_type_node.
31834         (aarch64_simd_expand_builtin): Handle the new argument to
31835         AARCH64_SIMD_BUILTIN_LANE_CHECK and don't ICE but rather
31836         print an out when the first two arguments are not
31837         nonzero integer constants.
31838         * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK):
31839         Pass the sizeof directly to __builtin_aarch64_im_lane_boundsi.
31840
31841 2015-02-11  Jakub Jelinek  <jakub@redhat.com>
31842
31843         PR target/61925
31844         * config/i386/i386.c (ix86_reset_to_default_globals): Removed.
31845         (ix86_reset_previous_fndecl): Restore it here, unconditionally.
31846         (ix86_set_current_function): Rewritten.
31847         (ix86_add_new_builtins): Temporarily clear current_target_pragma
31848         when creating builtin fndecls.
31849
31850 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
31851
31852         PR ipa/65005
31853         * ipa-visibility.c (cgraph_node::non_local_p): Turn into static
31854         function.
31855         * symtab.c (symtab_node::verify_base): Remove check that non-definitions
31856         have no comdat group.
31857         * lto-cgraph.c (lto_output_node): Always output thunk and alias info.
31858         (lto_output_varpool_node): Always output alias info.
31859         (output_refs): Output refs of boundary aliases, too.
31860         (compute_ltrans_boundary): Add alias and thunk target into boundaries.
31861         (output_symtab): Output call eges in thunks in boundary.
31862         (get_alias_symbol): Remove.
31863         (input_node, input_varpool_node): Do not special case weakrefs.
31864         * ipa.c (symbol_table::remove_unreachable_nodes): Do not remove
31865         alias and thunks targets in the boundary; do not take removed symbols
31866         from their comdat groups.
31867         * cgraph.c (cgraph_node::local_info): Look through aliases and thunks.
31868         (cgraph_node::global_info): Remove.
31869         (cgraph_node::rtl_info): Look through aliases and thunks.
31870         * cgrpah.h (global_info): Remove.
31871         (non_local_p): Remove.
31872
31873 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
31874             Sandra Loosemore  <sandra@codesourcery.com>
31875
31876         * doc/invoke.texi (x86 Options [-masm=dialect]): Add cross-references
31877         to inline asm.  List dialects in proper order.
31878
31879 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
31880             Sandra Loosemore  <sandra@codesourcery.com>
31881
31882         * doc/extend.texi (Loop-Specific Pragmas): Fix grammar error.
31883
31884 2015-02-10  David Wohlferd  <dw@LimeGreenSocks.com>
31885
31886         * doc/extend.texi (Symbol-Renaming Pragmas): Restore (slightly
31887         modified) reference to Solaris.
31888
31889 2015-02-10  Sandra Loosemore  <sandra@codesourcery.com>
31890
31891         * doc/extend.texi (Extended Asm): Fix typos.
31892
31893 2015-02-10  Jakub Jelinek  <jakub@redhat.com>
31894
31895         PR sanitizer/65004
31896         * ubsan.c (ubsan_expand_vptr_ifn): Always return true.
31897
31898 2015-02-10  Oleg Endo  <olegendo@gcc.gnu.org>
31899
31900         PR target/64661
31901         * config/sh/sh-protos.h (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
31902         TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
31903         TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Add parentheses.
31904         * config/sh/constraints.md (Ara, Add): New constraints.
31905         * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1): New
31906         predicates.
31907         (atomic_compare_and_swap<mode>, atomic_exchange<mode>): Use
31908         atomic_mem_operand_0.  Don't use force_reg on the memory address.
31909         (atomic_compare_and_swapsi_hard): Use atomic_mem_operand_0 predicate and
31910         Sra constraint.  Convert to insn_and_split.  Add workaround for
31911         PR 64974.
31912         (atomic_compare_and_swap<mode>_hard): Copy to
31913         atomic_compare_and_swap<mode>_hard_1.  Convert to insn_and_split.
31914         Use atomic_mem_operand_0 predicate.
31915         (atomic_compare_and_swap<mode>_soft_gusa,
31916         atomic_exchange<mode>_soft_gusa): Use atomic_mem_operand_0 predicate and
31917         AraAdd constraints.
31918         (atomic_compare_and_swap<mode>_soft_tcb,
31919         atomic_compare_and_swap<mode>_soft_imask,
31920         atomic_exchange<mode>_soft_tcb, atomic_exchange<mode>_soft_imask): Use
31921         atomic_mem_operand_0 predicate and SraSdd constraints.
31922         (atomic_exchangesi_hard) Use atomic_mem_operand_0 predicate and Sra
31923         constraint.
31924         (atomic_exchange<mode>_hard): Copy to atomic_exchange<mode>_hard_1.
31925         Convert to insn_and_split.  Use atomic_mem_operand_0 predicate.
31926         (atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
31927         atomic_<fetchop_name>_fetch<mode>): Use atomic_mem_operand_1.  Don't use
31928         force_reg on the memory address.
31929         (atomic_fetch_<fetchop_name>si_hard, atomic_fetch_notsi_hard,
31930         atomic_fetch_nandsi_hard, atomic_<fetchop_name>_fetchsi_hard,
31931         atomic_not_fetchsi_hard, atomic_nand_fetchsi_hard): Use
31932         atomic_mem_operand_1 predicate and Sra constraint.
31933         (atomic_fetch_<fetchop_name><mode>_hard): Copy to
31934         atomic_fetch_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
31935         Use atomic_mem_operand_1 predicate.
31936         (atomic_<fetchop_name><mode>_hard): Copy to
31937         atomic_<fetchop_name><mode>_hard_1.  Convert to insn_and_split.
31938         Use atomic_mem_operand_1 predicate.
31939         (atomic_fetch_nand<mode>_hard): Copy to atomic_fetch_nand<mode>_hard_1.
31940         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
31941         (atomic_nand<mode>_hard): Copy to atomic_nand<mode>_hard_1.  Convert to
31942         insn_and_split.  Use atomic_mem_operand_1 predicate.
31943         (atomic_<fetchop_name>_fetch<mode>_hard): Copy to
31944         atomic_<fetchop_name>_fetch<mode>_hard_1.  Convert to insn_and_split.
31945         Use atomic_mem_operand_1 predicate.
31946         (atomic_nand_fetch<mode>_hard): Copy to atomic_nand_fetch<mode>_hard_1.
31947         Convert to insn_and_split.  Use atomic_mem_operand_1 predicate.
31948         (atomic_fetch_not<mode>_hard, atomic_not_fetch<mode>_hard): Replace mems
31949         in generated insn with original mem operand before emitting the insn.
31950         (atomic_fetch_<fetchop_name><mode>_soft_gusa,
31951         atomic_fetch_not<mode>_soft_gusa, atomic_fetch_nand<mode>_soft_gusa,
31952         atomic_<fetchop_name>_fetch<mode>_soft_gusa,
31953         atomic_not_fetch<mode>_soft_gusa, atomic_nand_fetch<mode>_soft_gusa):
31954         Use atomic_mem_operand_1 predicate and AraAdd constraints.
31955         (atomic_fetch_<fetchop_name><mode>_soft_tcb,
31956         atomic_<fetchop_name><mode>_soft_tcb, atomic_fetch_not<mode>_soft_tcb,
31957         atomic_not<mode>_soft_tcb, atomic_fetch_<fetchop_name><mode>_soft_imask,
31958         atomic_fetch_not<mode>_soft_imask, atomic_fetch_nand<mode>_soft_tcb,
31959         atomic_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask,
31960         atomic_<fetchop_name>_fetch<mode>_soft_tcb,
31961         atomic_not_fetch<mode>_soft_tcb,
31962         atomic_<fetchop_name>_fetch<mode>_soft_imask,
31963         atomic_not_fetch<mode>_soft_imask, atomic_nand_fetch<mode>,
31964         atomic_nand_fetch<mode>_soft_tcb, atomic_nand_fetch<mode>_soft_imask):
31965         Use atomic_mem_operand_1 predicate and SraSdd constraints.
31966
31967 2015-02-10  Uros Bizjak  <ubizjak@gmail.com>
31968
31969         * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
31970         and 3 earlyclobber operands.
31971
31972 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
31973
31974         * common.opt (fstack-reuse): Mark as optimization.
31975
31976 2015-02-10  Jan Hubicka  <hubicka@ucw.cz>
31977
31978         PR ipa/64982
31979         * cgraphunit.c (cgraph_node::expand_thunk): Look for stdarg thunks.
31980
31981 2015-02-10  Trevor Saunders  <tsaunders@mozilla.com>
31982
31983         PR tree-optimization/64326
31984         * cfghooks.c (make_forwarder_block): Cap frequency of created block.
31985
31986 2015-02-10  Rainer Emrich  <rainer@emrich-ebersheim.de>
31987
31988         PR gcov-profile/61889
31989         * gcov-tool.c: Remove wrong #if !defined(_WIN32)
31990
31991 2015-02-10  Richard Biener  <rguenther@suse.de>
31992
31993         PR tree-optimization/64995
31994         * tree-ssa-sccvn.c (set_ssa_val_to): Assert that the
31995         value we use is final.
31996         (visit_reference_op_store): Always valueize op.
31997         (visit_use): Properly valueize vuses.
31998
31999 2015-02-10  Richard Biener  <rguenther@suse.de>
32000
32001         PR tree-optimization/64909
32002         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
32003         pass a scalar-stmt count estimate to the cost model.
32004         * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
32005
32006 2015-02-10  Alexander Monakov  <amonakov@ispras.ru>
32007
32008         * doc/invoke.texi (-fvar-tracking-assignments): Clarify that VTA is
32009         enabled by default together with var-tracking.
32010
32011 2015-02-10  Nick Clifton  <nickc@redhat.com>
32012
32013         * config/rl78/rl78.c: Remove DIV attribute code accidentally
32014         included in previous rl78 commit.
32015
32016 2015-02-10  Richard Biener  <rguenther@suse.de>
32017
32018         * tree-streamer.h (streamer_read_tree_bitfields): Adjust.
32019         * tree-streamer-in.c (streamer_read_tree_bitfields): Do not
32020         return the bitpack.
32021
32022 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
32023
32024         PR gcov-profile/61889
32025         * config.in: regenerate.
32026         * configure.in: Likewise.
32027         * configure.ac: Check for ftw.h.
32028         * gcov-tool.c: Check for ftw.h before using nftw.
32029
32030 2015-02-09  Trevor Saunders  <tsaunders@mozilla.com>
32031
32032         PR lto/64076
32033         * ipa-visibility.c (update_visibility_by_resolution_info): Only
32034         assert when not in lto mode.
32035
32036 2015-02-09  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
32037
32038         * ira-color.c (setup_left_conflict_sizes_p): Simplify
32039         initialization/assignment of conflict_size.
32040
32041 2015-02-09  Jan Hubicka  <hubicka@ucw.cz>
32042
32043         PR ipa/64978
32044         * ipa-cp.c (gather_caller_stats): Skip thunks.
32045         (propagate_constants_topo): Skip aliases.
32046
32047 2015-02-09  Kaz Kojima  <kkojima@gcc.gnu.org>
32048
32049         PR target/64761
32050         * config/sh/sh.c (sh_option_override): Don't change
32051         -freorder-blocks-and-partition to -freorder-blocks even when
32052         unwinding is enabled.
32053         (sh_can_follow_jump): Return false if the followee jump is
32054         a crossing jump when -freorder-blocks-and-partition is specified.
32055         * config/sh/sh.md (*jump_compact_crossing): New insn.
32056
32057 2015-02-09  Joern Rennecke  <joern.rennecke@embecosm.com>
32058             Kaz Kojima  <kkojima@gcc.gnu.org>
32059
32060         PR target/64761
32061         * config/sh/sh-protos.h (sh_can_redirect_branch): Don't declare.
32062         * config/sh/sh.c (TARGET_CAN_FOLLOW_JUMP): Redefine.
32063         (sh_can_redirect_branch): Rename to ...
32064         (sh_can_follow_jump): ... this.  Constify argument types.
32065         * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): Don't define.
32066         * doc/tm.texi.in (MD_CAN_REDIRECT_BRANCH): Remove documentation.
32067         * reorg.c (steal_delay_list_from_target): Use targetm.can_follow_jump.
32068         * doc/tm.texi: Regenerate.
32069
32070 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
32071
32072         PR sanitizer/64981
32073         * builtins.c (expand_builtin): Call targetm.expand_builtin
32074         for BUILT_IN_MD builtins regardless of asan_intercepted_p.
32075
32076 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
32077
32078         PR ipa/61548
32079         * tree-emutls.c (ipa_lower_emutls): Avoid duplicates in TLS_VARS.
32080
32081 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
32082
32083         PR ipa/63566
32084         * ipa-icf.c (set_local): New function.
32085         (sem_function::merge): Use it.
32086
32087 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
32088
32089         * ipa-devirt.c (odr_types_equivalent_p): Fix formating.
32090         (add_type_duplicate): Fix comparison of BINFOs.
32091
32092 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
32093
32094         * ipa-polymorphic-call.c (ipa_polymorphic_call_context): Avoid ICE
32095         on getting VOID pointer.
32096
32097 2015-02-09  Jakub Jelinek  <jakub@redhat.com>
32098
32099         PR target/64979
32100         * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
32101         va_list escapes.
32102
32103 2015-02-09  Richard Biener  <rguenther@suse.de>
32104
32105         * genmatch.c (replace_id): Copy expr_type.
32106
32107 2015-02-09  Richard Biener  <rguenther@suse.de>
32108
32109         * tree-streamer.h (streamer_pack_tree_bitfields): Remove.
32110         (streamer_write_tree_bitfields): Declare.
32111         * tree-streamer-in.c (unpack_ts_base_value_fields): Inline,
32112         properly unpack padding.
32113         (unpack_value_fields): Inline ...
32114         (streamer_read_tree_bitfields): ... here.
32115         * tree-streamer-out.c (pack_ts_base_value_fields): Inline
32116         and properly add padding bits.
32117         (streamer_pack_tree_bitfields): Fold into ...
32118         (streamer_write_tree_bitfields): ... this new function,
32119         exposing the bitpack object.
32120         * lto-streamer-out.c (lto_write_tree_1): Call
32121         streamer_write_tree_bitfields.
32122
32123 2015-02-09  Richard Biener  <rguenther@suse.de>
32124
32125         PR tree-optimization/54000
32126         * tree-ssa-looo-ivopts.c: Include tree-vectorizer.h.
32127         (struct ivopts_data): Add loop_loc member.
32128         (tree_ssa_iv_optimize_loop): Dump loop location.
32129         (create_new_ivs): Likewise, also dump number of IVs generated.
32130
32131 2015-02-09  Martin Liska  <mliska@suse.cz>
32132
32133         * ipa-icf.c (sem_item_optimizer::register_hooks): Register hooks
32134         just if not yet registered.
32135         (ipa_icf_generate_summary): Register callgraph hooks.
32136
32137 2015-02-08  Andrew Pinski  <apinski@cavium.com>
32138
32139         * config/aarch64/aarch64.c (gty_dummy): Delete.
32140
32141 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
32142
32143         PR ipa/63566
32144         * ipa-visibility.c (cgraph_node::non_local_p): Accept aliases.
32145         (cgraph_node::local_p): Remove thunk related FIXME.
32146
32147 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
32148
32149         PR ipa/63566
32150         * i386.c (ix86_function_regparm): Look through aliases to see if callee
32151         is local and optimized.
32152         (ix86_function_sseregparm): Likewise; also use target's SSE math
32153         settings; error out instead of silently generating wrong code
32154         on mismatches.
32155         (init_cumulative_args): Look through aliases.
32156
32157 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
32158
32159         PR ipa/63566
32160         * ipa-split.c (execute_split_functions): Split if function has aliases.
32161
32162 2015-02-08  Jan Hubicka  <hubicka@ucw.cz>
32163
32164         PR ipa/63566
32165         * cgraphunit.c (cgraph_node::analyze): Be sure target of thunk is
32166         aliases before trying to expand it.
32167         (cgraph_node::expand_thunk): Fix formating.
32168
32169 2015-02-07  Sandra Loosemore  <sandra@codesourcery.com>
32170
32171         * doc/extend.texi (Function Attributes [naked]): Copy-edit.
32172         (Using Assembly Language with C): Expand introduction.
32173         (Basic Asm): Copy-edit.  Add more information about uses of
32174         basic asm.
32175         (Extended Asm): Copy-edit.  Document new escape syntax and
32176         %l[label] syntax.
32177         (Global Reg Vars): Copy-edit.
32178         (Local Reg Vars): Likewise.
32179
32180 2015-02-06  David Edelsohn  <dje.gcc@gmail.com>
32181
32182         PR debug/2714
32183         PR bootstrap/64256
32184         * xcoffout.h (DBX_CONTIN_LENGTH): Define as 16384.
32185         (DBX_CONTIN_CHAR): Define.
32186
32187 2015-02-06  Sebastian Pop  <s.pop@samsung.com>
32188             Brian Rzycki  <b.rzycki@samsung.com>
32189
32190         PR tree-optimization/64878
32191         * tree-ssa-threadedge.c: Include tree-ssa-loop.h.
32192         (fsm_find_control_statement_thread_paths): Add parameter seen_loop_phi.
32193         Stop recursion at loop phi nodes after having visited a loop phi node.
32194
32195 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
32196
32197         * toplev.c (process_options): Change flag_ipa_ra before creating
32198         optimization_{default,current}_node.
32199
32200         PR ipa/64896
32201         * cgraphunit.c (cgraph_node::expand_thunk): If
32202         restype is not is_gimple_reg_type nor the thunk_fndecl
32203         returns aggregate_value_p, set restmp to a temporary variable
32204         instead of resdecl.
32205
32206 2015-02-06  Vladimir Makarov  <vmakarov@redhat.com>
32207
32208         * lra.c (lra_emit_add): Fix a typo in using disp instead of base.
32209
32210 2015-02-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
32211
32212         PR target/64205
32213         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
32214         add a general secondary reload handler for SDmode, unless we have
32215         both read/write support for SDmode.
32216
32217 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
32218
32219         PR middle-end/64937
32220         * dwarf2out.c (set_block_abstract_flags, set_decl_abstract_flags):
32221         Replace setting argument with abstract_vec, always set BLOCK_ABSTRACT
32222         or DECL_ABSTRACT_P flags to 1 rather than to setting, and if it wasn't
32223         1 before, push it to abstract_vec.
32224         (dwarf2out_abstract_function): Adjust caller.  Don't call
32225         set_decl_abstract_flags second time, instead clear BLOCK_ABSTRACT or
32226         DECL_ABSTRACT_P flags for all abstract_vec elts.
32227
32228 2015-02-06  Renlin Li  <renlin.li@arm.com>
32229
32230         * tree-ssa-forwprop.c (execute): Keep location info while rewrite
32231         complex gimple.
32232         * tree-ssa.c (execute_update_addresses_taken): Likewise.
32233
32234 2015-02-06  Jeff Law  <law@redhat.com>
32235
32236         PR target/64889
32237         * config/h8300/h8300.c (push): New argument "in_prologue".
32238         Pass "in_prologue" along to "F".
32239         (h8300_push_pop): Corresponding changes.
32240         (h8300_expand_prologue): Likewise.
32241         (h8300_swap_into_er6): Likewise.  Do not set RTX_FRAME_RELATED_P.
32242
32243 2015-02-06  Jakub Jelinek  <jakub@redhat.com>
32244
32245         PR rtl-optimization/64957
32246         PR debug/64817
32247         * simplify-rtx.c (simplify_binary_operation_1): Use ~cval for
32248         IOR rather than for AND.
32249
32250 2015-02-06  Eric Botcazou  <ebotcazou@adacore.com>
32251
32252         PR target/62631
32253         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Use the mininum of costs
32254         of shift-add and (add + shift) operations.  Rename local variable.
32255
32256 2015-02-05  Jeff Law  <law@redhat.com>
32257
32258         PR target/17306
32259         * config/h8300/constraints.md (U): Correctly dectect
32260         "eightbit_data" memory addresses.
32261         * config/h8300/h8300.c (eightbit_constant_address_p): Also
32262         handle (const (plus (symbol_ref (x)))) where x is declared
32263         as an 8-bit data memory address.
32264         * config/h8300/h8300.md (call, call_value): Correctly detect
32265         "funcvec" functions.
32266
32267         PR target/43264
32268         * config/h8300/h8300.c (get_shift_alg): Fix ASHIFTRT by
32269         24 to 28 bits for the H8/300.
32270
32271 2015-02-06  Alan Modra  <amodra@gmail.com>
32272
32273         PR target/64876
32274         * config/rs6000/rs6000.c (chain_already_loaded): New function.
32275         (rs6000_call_aix): Use it.
32276
32277 2015-02-05  Jan Hubicka <hubicka@ucw.cz>
32278
32279         * ipa-cp.c (ipa_value_from_jfunc, ipa_context_from_jfunc): Add bounds
32280         check.
32281
32282 2015-02-05  Joern Rennecke  <joern.rennecke@embecosm.com>
32283
32284         * config/h8300/constraints.md ("U" constraint): Use strict
32285         variant of REG_OK_FOR_BASE_P after reload has started.
32286
32287 2015-02-04  Mantas Mikaitis  <mantas.mikaitis@arm.com>
32288
32289         * config/arm/arm.h (TARGET_NEON_FP): Removed conditional definition,
32290         define to zero if !TARGET_NEON.
32291         (TARGET_ARM_FP): Added !TARGET_SOFT_FLOAT into conditional definition.
32292
32293 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
32294             Trevor Saunders  <tsaunders@mozilla.com>
32295
32296         PR ipa/61548
32297         * tree-emultls.c (new_emutls_decl): Resolve alias after creating it.
32298
32299 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
32300
32301         PR ipa/61548
32302         * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering issue
32303         when removing varpool nodes.
32304
32305 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
32306
32307         PR ipa/61548
32308         * varpool.c (varpool_node::remove): Fix order of variables.
32309
32310 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
32311
32312         PR ipa/64686
32313         * ipa-inline.c (inline_small_functions): Fix ordering issue between
32314         speculation resolution and key updates.
32315
32316 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
32317
32318         * ipa-prop.c (update_indirect_edges_after_inlining): By more careful
32319         about not letting any speculative edges unupdated.
32320
32321 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
32322
32323         PR gcov/64123
32324         * gcov-io.c (gcov_var): Export.
32325
32326 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
32327
32328         PR middle-end/64922
32329         * ipa-prop.c (update_indirect_edges_after_inlining): Correctly update
32330         edges that become speculative.
32331
32332 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
32333
32334         * dwarf2out.c (is_fortran): Also return true for DW_LANG_Fortran03
32335         or DW_LANG_Fortran08.
32336         (lower_bound_default): Return 1 for DW_LANG_Fortran03 or
32337         DW_LANG_Fortran08.
32338         (gen_compile_unit_die): Handle "GNU Fortran2003" and
32339         "GNU Fortran2008" language strings.
32340         * dbxout.c (get_lang_number): Use lang_GNU_Fortran.
32341         * langhooks.h (lang_GNU_Fortran): New prototype.
32342         * langhooks.c (lang_GNU_Fortran): New function.
32343         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
32344         lang_GNU_Fortran.
32345
32346 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
32347
32348         * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P): Fix off-by-one error.
32349         (RTX_OK_FOR_OLO10_P): Likewise.
32350
32351 2015-02-04  Eric Botcazou  <ebotcazou@adacore.com>
32352
32353         * tree-ssa-loop-ivopts.c (get_address_cost): Use right mode for offset.
32354
32355 2015-02-04  Jan Hubicka  <hubicka@ucw.cz>
32356
32357         PR middle-end/64922
32358         * gimple.c: Include gimple-ssa.h.
32359         (maybe_remove_unused_call_args): New function.
32360         * gimple.h (maybe_remove_unused_call_args): Declare.
32361         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
32362         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
32363         * gimple-fold.c (gimple_fold_call): Likewise.
32364
32365 2015-02-04  H.J. Lu  <hongjiu.lu@intel.com>
32366
32367         PR rtl-optimization/64905
32368         * lra-eliminations.c (setup_can_eliminate): Clear hard frame
32369         pointer alignment if it isn't needed.
32370
32371 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
32372
32373         * config/aarch64/aarch64-cores.def: Add cortex-a72 and
32374         cortex-a72.cortex-a53.
32375         * config/aarch64/aarch64-tune.md: Regenerate.
32376         * doc/invoke.texi (AArch64 Options/-mtune): Add "cortex-a72".
32377
32378 2015-02-04  Nick Clifton  <nickc@redhat.com>
32379
32380         * config/rl78/rl78.c (rl78_note_reg_set): Note the use of REGs
32381         inside a MEM.
32382
32383 2015-02-04  Jakub Jelinek  <jakub@redhat.com>
32384
32385         * builtins.def (DEF_BUILTIN_CHKP): Define if not defined.
32386         (DEF_LIB_BUILTIN_CHKP, DEF_EXT_LIB_BUILTIN_CHKP): Redefine.
32387         (DEF_CHKP_BUILTIN): Define using DEF_BUILTIN_CHKP instead
32388         of DEF_BUILTIN.
32389         (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET, BUILT_IN_STRCAT,
32390         BUILT_IN_STRCHR, BUILT_IN_STRCPY, BUILT_IN_STRLEN): Use
32391         DEF_LIB_BUILTIN_CHKP macro instead of DEF_LIB_BUILTIN.
32392         (BUILT_IN_MEMCPY_CHK, BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK,
32393         BUILT_IN_MEMPCPY, BUILT_IN_MEMSET_CHK, BUILT_IN_STPCPY_CHK,
32394         BUILT_IN_STPCPY, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK): Use
32395         DEF_EXT_LIB_BUILTIN_CHKP macro instead of DEF_EXT_LIB_BUILTIN.
32396         * tree-core.h (enum built_in_function): In between
32397         BEGIN_CHKP_BUILTINS and END_CHKP_BUILTINS only define enum values
32398         for builtins that use DEF_BUILTIN_CHKP macro.
32399
32400 2015-02-04  Alexandre Oliva  <aoliva@redhat.com>
32401
32402         PR debug/64817
32403         * cfgexpand.c (expand_debug_expr): Compute unsignedp from
32404         operands for tcc_comparison exprs.  Fix typos.
32405
32406         PR debug/64817
32407         * simplify-rtx.c (simplify_binary_operation_1): Simplify one
32408         of two XORs that have an intervening AND or IOR.
32409
32410         PR debug/64817
32411         * simplify-rtx.c (simplify_binary_operation_1): Rewrite
32412         simplification of XOR of AND to not allocate new rtx before
32413         committing to a simplification.
32414
32415 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32416
32417         * config/aarch64/aarch64-ldpstp.md: Use std::swap instead of
32418         manual swaps in all peepholes.
32419
32420 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32421
32422         * config/aarch64/aarch64.c (aarch64_evpc_ext): Use std::swap instead
32423         of manual swapping implementation.
32424         (aarch64_expand_vec_perm_const_1): Likewise.
32425
32426 2015-02-04  James Greenhalgh <james.greenhalgh@arm.com>
32427
32428         * config/aarch64/aarch64.c (NAMED_PARAM): Delete it.
32429         (generic_addrcost_table): Remove NAMED_PARAM.
32430         (cortexa57_addrcost_table): Likewise.
32431         (xgene1_addrcost_table): Likewise.
32432         (generic_regmove_table): Likewise.
32433         (cortexa53_regmove_table): Likewise.
32434         (xgene1_regmove_table): Likewise.
32435         (generic_vector_table): Likewise.
32436         (cortexa57_vector_table): Likewise.
32437         (xgene1_vector_table): Likewise.
32438         (generic_tunings): Likewise.
32439         (cortexa53_tunings): Likewise.
32440         (cortexa57_tunings): Likewise.
32441         (xgene1_tunings): Likewise.
32442
32443 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
32444
32445         * config/arm/arm-cores.def: Add cortex-a72 and
32446         cortex-a72.cortex-a53.
32447         * config/arm/bpabi.h (BE8_LINK_SPEC): Likewise.
32448         * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
32449         * config/arm/arm-tune.md: Regenerate.
32450         * config/arm/arm-tables.opt: Add entries for "cortex-a72" and
32451         "cortex-a72.cortex-a53".
32452         * doc/invoke.texi (ARM Options/-mtune): Likewise.
32453
32454 2015-02-04  Nick Clifton  <nickc@redhat.com>
32455
32456         PR target/64408
32457         * config/fr30/predicates.md (di_operand): Add SUBREG to the list
32458         of accepted codes.
32459         (nonimmediate_di_operand): Likewise.
32460
32461         * config/msp430/msp430.c (msp430_use_f5_series_hwmult): Add more
32462         prefixes of known F5 using MSP430 MCUs.
32463
32464 2015-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32465
32466         * config/aarch64/aarch64-simd-builtins.def (sqrt): Use BUILTIN_VDQF_DF.
32467         * config/aarch64/arm_neon.h (vsqrt_f64): Use __builtin_aarch64_sqrtdf
32468         instead of __builtin_sqrt.
32469
32470 2015-02-04  Ilya Enkovich  <ilya.enkovich@intel.com>
32471
32472         * varasm.c (do_assemble_alias): Follow transparent alias
32473         chain for target.
32474         (default_assemble_visibility): Follow transparent alias
32475         chain for decl name.
32476
32477 2015-02-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
32478
32479         PR middle-end/62103
32480         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use TYPE_PRECISION
32481         to compute size of referenced value in the constant case.
32482
32483 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
32484
32485         PR rtl-optimization/64756
32486         * cse.c (invalidate_dest): New function.
32487         (cse_insn): Use it.  If dest != SET_DEST (sets[i].rtl) and
32488         HASH (SET_DEST (sets[i].rtl), mode) computation sets do_not_record,
32489         invalidate and do not record it.
32490
32491 2015-02-03  Oleg Endo  <olegendo@gcc.gnu.org>
32492
32493         PR target/64660
32494         * config/sh/sync.md (atomic_<fetchop_name><mode>_hard,
32495         atomic_not<mode>_hard, atomic_<fetchop_name><mode>_soft_tcb,
32496         atomic_not<mode>_soft_tcb, atomic_nand<mode>_hard,
32497         atomic_nand<mode>_soft_tcb): New insns.
32498         (atomic_fetch_<fetchop_name>si_hard): Convert to insn_and_split.
32499         Split into atomic_<fetchop_name>_fetchsi_hard if operands[0] is unused.
32500         (define_insn "atomic_fetch_notsi_hard): Convert to insn_and_split.
32501         Split into atomic_not_fetchsi_hard if operands[0] is unused.
32502         (atomic_fetch_<fetchop_name><mode>_hard): Convert to insn_and_split.
32503         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
32504         (atomic_fetch_not<mode>_hard): Convert to insn_and_split.  Split into
32505         atomic_not<mode>_hard if operands[0] is unused.
32506         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Convert to
32507         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_gusa
32508         if operands[0] is unused.
32509         (atomic_fetch_not<mode>_soft_gusa): Convert to insn_and_split.  Split
32510         into atomic_not_fetch<mode>_soft_gusa if operands[0] is unused.
32511         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Convert to insn_and_split.
32512         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
32513         unused.
32514         (atomic_fetch_not<mode>_soft_tcb): Convert to insn_and_split.  Split
32515         into atomic_not<mode>_soft_tcb if operands[0] is unused.
32516         (atomic_fetch_<fetchop_name><mode>_soft_imask): Convert to
32517         insn_and_split.  Split into atomic_<fetchop_name>_fetch<mode>_soft_imask
32518         if operands[0] is unused.
32519         (atomic_fetch_not<mode>_soft_imask): Convert to insn_and_split.  Split
32520         into atomic_not_fetch<mode>_soft_imask is operands[0] is unused.
32521         (atomic_fetch_nandsi_hard): Convert to insn_and_split.  Split into
32522         atomic_nand_fetchsi_hard if operands[0] is unused.
32523         (atomic_fetch_nand<mode>_hard): Convert to insn_and_split.  Split into
32524         atomic_nand<mode>_hard if operands[0] is unused.
32525         (atomic_fetch_nand<mode>_soft_gusa): Convert to insn_and_split.  Split
32526         into atomic_nand_fetch<mode>_soft_gusa if operands[0] is unused.
32527         (atomic_fetch_nand<mode>_soft_tcb): Convert to insn_and_split.  Split
32528         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
32529         (atomic_fetch_nand<mode>_soft_imask): Convert to insn_and_split.  Split
32530         into atomic_nand_fetch<mode>_soft_imask if operands[0] is unused.
32531         (atomic_<fetchop_name>_fetch<mode>_hard): Convert to insn_and_split.
32532         Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
32533         (atomic_not_fetch<mode>_hard): Convert to insn_and_split.  Split into
32534         atomic_not<mode>_hard if operands[0] is unused.
32535         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Convert to insn_and_split.
32536         Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
32537         unused.
32538         (atomic_not_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
32539         into atomic_not<mode>_soft_tcb if operands[0] is unused.
32540         (atomic_nand_fetch<mode>_hard): Convert to insn_and_split.  Split into
32541         atomic_nand<mode>_hard if operands[0] is unused.
32542         (atomic_nand_fetch<mode>_soft_tcb): Convert to insn_and_split.  Split
32543         into atomic_nand<mode>_soft_tcb if operands[0] is unused.
32544
32545 2015-02-03  David Malcolm  <dmalcolm@redhat.com>
32546
32547         PR jit/64810
32548         * Makefile.in (GCC_OBJS): Add gcc-main.o.
32549         * gcc-main.c: New file, containing "main" taken from gcc.c.
32550         * gcc.c (do_self_spec): Free decoded_options.
32551         (class driver): Move declaration to gcc.h.
32552         (main): Move declaration and implementation to new file
32553         gcc-main.c.
32554         (driver_get_configure_time_options): New function.
32555         * gcc.h (class driver): Move this declaration here, from
32556         gcc.c.
32557         (driver_get_configure_time_options): New declaration.
32558
32559 2015-02-03  Jan Hubicka  <hubicka@ucw.cz>
32560
32561         * ipa-inline-analysis.c (simple_edge_hints): Fix check for
32562         cross-module inlining.
32563         * cgraph.h (cgraph_node): Add flag merged.
32564         * ipa-icf.c (sem_function::merge): Maintain it.
32565
32566 2015-02-03  Richard Sandiford  <richard.sandiford@arm.com>
32567
32568         * config/arm/arm.c (thumb2_reorg): Test UNARY_P and BINARY_P
32569         instead of OBJECT_P.
32570
32571 2015-02-03  Eric Botcazou  <ebotcazou@adacore.com>
32572
32573         PR target/62631
32574         * config/sparc/sparc.h (TARGET_HARD_MUL): Remove TARGET_V8PLUS.
32575         (TARGET_HARD_MUL32): Rewrite based on TARGET_HARD_MUL.
32576         * config/sparc/sparc.c (sparc_rtx_costs) <MULT>: Return costs based on
32577         int_mulX for integers in 64-bit mode if TARGET_HARD_MUL is not set.
32578
32579 2015-02-03  Jakub Jelinek  <jakub@redhat.com>
32580
32581         PR other/63504
32582         * combine.c (reg_n_sets_max): New variable.
32583         (can_change_dest_mode, reg_nonzero_bits_for_combine,
32584         reg_num_sign_bit_copies_for_combine, get_last_value_validate,
32585         get_last_value): Use REG_N_SETS only on pseudos < reg_n_sets_max.
32586         (try_combine): Use INC_REG_N_SETS only on pseudos < reg_n_sets_max.
32587         (rest_of_handle_combine): Initialize reg_n_sets_max.
32588
32589 2015-02-02  Jan Hubicka  <hubicka@ucw.cz>
32590
32591         * ipa-inline.c (early_inliner): Skip inlining only in always_inlined;
32592         if some always_inline was inlined, apply changes before inlining
32593         heuristically.
32594
32595 2015-02-02  David Malcolm  <dmalcolm@redhat.com>
32596
32597         PR jit/64810
32598         * config/arm/arm.c (arm_option_override): Set
32599         arm_selected_arch/cpu/tune to NULL on entry.
32600
32601 2015-02-02  Tejas Belagod  <tejas.belagod@arm.com>
32602             Andrew Pinski  <pinskia@gcc.gnu.org>
32603             Jakub Jelinek  <jakub@gcc.gnu.org>
32604
32605         PR target/64231
32606         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix large
32607         integer typing for small model. Use IN_RANGE.
32608
32609 2015-02-02  Richard Biener  <rguenther@suse.de>
32610
32611         * tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
32612         * tree-vrp.c (vrp_valueize_1): Likewise.
32613
32614 2015-02-02  Alan Modra  <amodra@gmail.com>
32615
32616         * config/rs6000/rs6000.c (rs6000_call_aix): Use unspec rather
32617         than mem for toc_restore.
32618         * config/rs6000/rs6000.md (UNSPEC_TOCSLOT): Define.
32619         (call_indirect_aix, call_value_indirect_aix): Adjust to suit.
32620         (call_indirect_elfv2, call_value_indirect_elfv2): Likewise.
32621
32622 2015-02-01  David Edelsohn  <dje.gcc@gmail.com>
32623
32624         PR target/64047
32625         * config/rs6000/rs6000.c (rs6000_set_current_function): Handle
32626         explicit default options.
32627
32628 2015-02-01  Jan Hubicka  <hubicka@ucw.cz>
32629
32630         PR ipa/64872
32631         * ipa-utils.c (ipa_merge_profiles): Add release argument.
32632         * ipa-icf.c (sem_function::merge): Do not release body when merging.
32633         * ipa-utils.h (ipa_merge_profiles): Update prototype.
32634
32635 2015-02-01  Jakub Jelinek  <jakub@redhat.com>
32636
32637         PR debug/64817
32638         * cfgexpand.c (deep_ter_debug_map): New variable.
32639         (avoid_deep_ter_for_debug): New function.
32640         (expand_debug_expr): If TERed SSA_NAME is in
32641         deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL
32642         instead of trying to expand SSA_NAME's def stmt.
32643         (expand_debug_locations): When expanding debug bind
32644         of a DEBUG_EXPR_DECL to corresponding SSA_NAME,
32645         temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's
32646         value.
32647         (pass_expand::execute): Call avoid_deep_ter_for_debug on
32648         all debug bind stmts.  Delete deep_ter_debug_map after
32649         expand_debug_location if non-NULL and clear it.
32650
32651 2015-02-01  Oleg Endo  <olegendo@gcc.gnu.org>
32652
32653         PR target/64851
32654         * config/sh/sync.md (atomic_fetch_notsi_hard,
32655         atomic_fetch_not<mode>_hard, atomic_fetch_not<mode>_soft_gusa,
32656         atomic_fetch_not<mode>_soft_tcb, atomic_fetch_not<mode>_soft_imask,
32657         atomic_not_fetchsi_hard, atomic_not_fetch<mode>_hard,
32658         atomic_not_fetch<mode>_soft_gusa, atomic_not_fetch<mode>_soft_tcb,
32659         atomic_not_fetch<mode>_soft_imask): New insns.
32660
32661 2015-02-01  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
32662
32663         * haifa-sched.c (INSN_RFS_DEBUG_ORIG_ORDER): New access macro.
32664         (rank_for_schedule_debug): Split from ...
32665         (rank_for_schedule): ... this.
32666         (ready_sort): Sort DEBUG_INSNs separately from normal INSNs.
32667         * sched-int.h (struct _haifa_insn_data): New field rfs_debug_orig_order.
32668
32669 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
32670
32671         * doc/md.texi (Machine Constraints): Alphabetize table by target.
32672         * doc/extend.texi (x86 Variable Attributes): Move section to
32673         correct alphabetization after renaming.
32674         (x86 Type Attributes): Likewise.
32675         (Target Builtins): Re-alphabetize menu.
32676         (x86 Built-in Functions): Move section to correct alphabetization
32677         after renaming.
32678         (x86 transactional memory intrinsics): Likewise.
32679         * doc/invoke.texi (Option Summary): Re-alphabetize x86 Options
32680         and x86 Windows Options in table and menu.
32681         (x86 Options): Move section to correct alphabetization after
32682         renaming.
32683         (x86 Windows Options): Likewise.
32684
32685 2015-01-31  Sandra Loosemore  <sandra@codesourcery.com>
32686
32687         * doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the
32688         preferred names of the architecture and its 32- and 64-bit
32689         variants.
32690         * doc/invoke.texi: Likewise.
32691         * doc/md.texi: Likewise.
32692
32693 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
32694
32695         PR target/64882
32696         * config/i386/predicates.md (address_no_seg_operand): Reject
32697         non-CONST_INT_P operands in invalid mode.
32698
32699 2015-01-31  Uros Bizjak  <ubizjak@gmail.com>
32700
32701         * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
32702         address_operand 0.  Rename from *prefetch_prefetchwt1_<mode>.
32703         * config/i386/predicates.md (address_no_seg_operand): Call
32704         address_operand with VOIDmode.
32705         (vsib_address_operand): Ditto.
32706         (address_mpx_no_base_operand): Ditto.
32707         (address_mpx_no_index_operand): Ditto.
32708
32709 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
32710
32711         PR target/64688
32712         * lra-constraints.c (original_subreg_reg_mode): New.
32713         (simplify_operand_subreg): Try to simplify subreg of const.  Use
32714         original_subreg_reg_mode for it.
32715         (swap_operands): Update original_subreg_reg_mode.
32716         (curr_insn_transform): Set up original_subreg_reg_mode.
32717
32718 2015-01-30  Vladimir Makarov  <vmakarov@redhat.com>
32719
32720         PR target/64617
32721         * lra-constraints.c (prohibited_class_reg_set_mode_p): New
32722         function.
32723         (process_alt_operands): Use it.
32724         (curr_insn_transform): Check the optional reload pseudo class is
32725         ok for the mode.
32726
32727 2015-01-30  Joseph Myers  <joseph@codesourcery.com>
32728
32729         * diagnostic.c (fatal_error (const char *, ...)): Remove function.
32730         * diagnostic-core.h (fatal_error (const char *, ...)): Remove
32731         prototype.
32732         * toplev.h (init_asm_output): Update comment on use of
32733         UNKNOWN_LOCATION with fatal_error.
32734         * cgraph.c, collect-utils.c, collect2.c, config/arc/arc.c,
32735         config/arc/arc.md, config/avr/avr.c, config/c6x/c6x.h,
32736         config/darwin.c, config/host-darwin.c, config/i386/host-cygwin.c,
32737         config/i386/intelmic-mkoffload.c, config/nios2/nios2.c,
32738         config/nvptx/mkoffload.c, config/nvptx/nvptx.h,
32739         config/rs6000/host-darwin.c, config/rs6000/rs6000.c,
32740         config/s390/s390.c, gcc.c, gcov-io.h, gcov-tool.c, ggc-common.c,
32741         ggc-page.c, graph.c, ipa-inline-analysis.c, ipa-reference.c,
32742         lto-cgraph.c, lto-section-in.c, lto-streamer-in.c, lto-streamer.c,
32743         lto-wrapper.c, objc/objc-act.c, opts.c, passes.c, plugin.c,
32744         tlink.c, toplev.c, tree-streamer-in.c, varpool.c: All callers of
32745         fatal_error changed to pass input_location as first argument.
32746
32747 2015-01-30  Martin Liska  <mliska@suse.cz>
32748
32749         * tree.h: Change GCC_VERSION >= 4004 to GCC_VERSION >= 4006
32750         in #pragma GCC diagnostic guards.
32751
32752 2015-01-30  Richard Biener  <rguenther@suse.de>
32753
32754         PR tree-optimization/64829
32755         * tree-vect-patterns.c (vect_handle_widen_op_by_const): Do
32756         not add a widening conversion pattern but hand off extra
32757         widenings to callers.
32758         (vect_recog_widen_mult_pattern): Handle extra widening produced
32759         by vect_handle_widen_op_by_const.
32760         (vect_recog_widen_shift_pattern): Likewise.
32761         (vect_pattern_recog_1): Remove excess vertical space in dumping.
32762         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
32763         (vect_init_vector_1): Likewise.
32764         (vect_get_vec_def_for_operand): Likewise.
32765         (vect_finish_stmt_generation): Likewise.
32766         (vectorizable_load): Likewise.
32767         (vect_analyze_stmt): Likewise.
32768         (vect_is_simple_use): Likewise.
32769
32770 2015-01-29  Jeff Law  <law@redhat.com>
32771
32772         * combine.c (try_combine): Fix typo in comment.
32773
32774 2015-01-29  Segher Boessenkool  <segher@kernel.crashing.org>
32775
32776         PR target/64580
32777         * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
32778         (rs6000_stack_info): Add assert.
32779         (rs6000_output_savres_externs): New function, split off from...
32780         (rs6000_output_function_prologue): ... here.  Do not call it for
32781         thunks.
32782
32783 2015-01-29  Jeff Law  <law@redhat.com>
32784
32785         PR target/15184
32786         * combine.c (try_combine): If I0 is a memory load and I3 a store
32787         to a related address, increase the "goodness" of doing a 4-insn
32788         combination with I0-I3.
32789         (make_field_assignment): Handle SUBREGs in the ior+and case.
32790
32791 2015-01-29  Yuri Rumyantsev  <ysrumyan@gmail.com>
32792
32793         PR tree-optimization/64746
32794         * tree-if-conv.c (mask_exists): New function.
32795         (predicate_mem_writes): Save created mask with given size for further
32796         use.
32797         (stmt_is_root_of_bool_pattern): Remove argument VAR and store to it.
32798         (ifcvt_repair_bool_pattern): Collect all statements that are root
32799         of bool pattern and use iterative algorithm to remove multiple uses
32800         of predicates, display number of required iterations.
32801
32802 2015-01-29  Richard Biener  <rguenther@suse.de>
32803
32804         PR tree-optimization/64853
32805         * tree-vrp.c (vrp_valueize_1): Do not return anything if the
32806         stmt will get simulated again.
32807         * tree-ssa-ccp.c (valueize_op_1): Likewise.
32808
32809 2015-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
32810
32811         * config/arm/arm.c (arm_emit_multi_reg_pop): Simplify definition of
32812         return_in_pc.  Remove redundant assignments.
32813         (thumb2_emit_ldrd_pop): Simplify definition of return_in_pc.
32814         (arm_expand_epilogue): Don't compare boolean with true in if condition.
32815
32816 2015-01-29  Uros Bizjak  <ubizjak@gmail.com>
32817
32818         * config/i386/i386.c (ix86_mode_after): Make static.
32819
32820 2015-01-29  Richard Biener  <rguenther@suse.de>
32821
32822         PR tree-optimization/64844
32823         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Always
32824         dump cost model analysis.
32825         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
32826         Do not register adjusted load/store costs here.
32827
32828 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
32829             Uros Bizjak  <ubizjak@gmail.com>
32830
32831         * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): New.
32832         * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Simplify by
32833         using x86_use_pseudo_pic_reg.
32834         * config/i386/i386.c (ix86_conditional_register_usage): Remove
32835         support for fixed PIC register.
32836         (ix86_use_pseudo_pic_reg): Not static any more.
32837
32838 2015-01-29  Ilya Enkovich  <ilya.enkovich@intel.com>
32839
32840         PR middle-end/64805
32841         * ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference
32842         to avoid error in cgraph node verification.
32843
32844 2015-01-29  Marek Polacek  <polacek@redhat.com>
32845
32846         * doc/standards.texi: Reflect that the default for C is gnu11.
32847
32848 2015-01-29  Kaz Kojima  <kkojima@gcc.gnu.org>
32849
32850         PR target/64761
32851         * reorg.c (switch_text_sections_between_p): New function.
32852         (relax_delay_slots): Call it when testing if the jump insn
32853         is removable.  Use targetm.can_follow_jump when testing if
32854         the conditional branch can follow an unconditional jump.
32855
32856 2015-01-27  Caroline Tice  <cmtice@google.com>
32857
32858         Committing VTV Cywin/Ming patch for Patrick Wollgast
32859         * config/i386/cygwin.h (STARTFILE_SPEC): Add vtv_start.o,
32860         if -fvtable-verify=preinit/std is used.
32861         * config/i386/mingw-w64.h (STARTFILE_SPEC): Likewise.
32862         * config/i386/mingw32.h (STARTFILE_SPEC): Likewise.
32863         * config/i386/cygwin.h (ENDFILE_SPEC): Add vtv_end.o,
32864         if -fvtable-verify=preinit/std is used.
32865         * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
32866         * config/i386/cygwin.h (LIB_SPEC): Pass -lvtv and -lpsapi,
32867         if -fvtable-verify=preinit/std is used.
32868         * config/i386/mingw-w64.h (LIB_SPEC): Likewise.
32869         * config/i386/mingw32.h (LIB_SPEC): Likewise.
32870         * varasm.c (assemble_variable): Add code to properly set the comdat
32871         section and name for the .vtable_map_vars section in case the
32872         target is PE or COFF.
32873
32874 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
32875
32876         PR ipa/64801
32877         * cgraphunit.c (init_lowered_empty_function): Add CoUNT parameter;
32878         make sane BB profile.
32879         (cgraph_node::expand_thunk): Make sane BB profile.
32880         (cgraph_node::create_wrapper): Do not set call_stmt_cannot_inline_p.
32881         * cgraph.h (init_lowered_empty_function): Update prototype.
32882         * config/i386/i386.c (make_resolver_func): Update call.
32883         * predict.c (gate): Disable branch prediction pass if
32884         profile is already there.
32885
32886 2015-01-29  Jan Hubicka  <hubicka@ucw.cz>
32887
32888         * optc-save-gen.awk: flag_fp_contract_mode is no longer speical.
32889         * opth-gen.awk: Likewise.
32890         * common.opt: Mark flag_fp_contract_mode as Optimization.
32891
32892 2015-01-29  Bernd Edlinger  <bernd.edlinger@hotmail.de>
32893
32894         * config/i386/cygwin.h (LIBGCJ_SONAME): Set libgcj version to -16.
32895         * config/i386/mingw32.h (LIBGCJ_SONAME): Set libgcj version to -16.
32896
32897 2015-01-28  Oleg Endo  <olegendo@gcc.gnu.org>
32898
32899         PR target/64659
32900         * config/sh/predicates.md (atomic_arith_operand,
32901         atomic_logical_operand): Remove.
32902         * config/sh/sync.md (fetchop_predicate, fetchop_constraint): Remove.
32903         (atomic_arith_operand_0): New predicate.
32904         (atomic_compare_and_swap<mode>): Use arith_reg_dest for output values.
32905         Use atomic_arith_operand_0 for input values.
32906         (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
32907         atomic_compare_and_swap<mode>_soft_gusa,
32908         atomic_compare_and_swap<mode>_soft_tcb,
32909         atomic_compare_and_swap<mode>_soft_imask): Use arith_reg_dest and
32910         arith_reg_operand instead of register_operand.
32911         (atomic_exchange<mode>): Use arith_reg_dest for output value.  Use
32912         atomic_arith_operand_0 for newval input.
32913         (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
32914         atomic_exchange<mode>_soft_gusa, atomic_exchange<mode>_soft_tcb,
32915         atomic_exchange<mode>_soft_imask): Use arith_reg_dest and
32916         arith_reg_operand instead of register_operand.
32917         (atomic_arith_operand_1, atomic_logical_operand_1): New predicates.
32918         fetchop_predicate_1, fetchop_constraint_1_llcs,
32919         fetchop_constraint_1_gusa, fetchop_constraint_1_tcb,
32920         fetchop_constraint_1_imask): New code iterator attributes.
32921         (atomic_fetch_<fetchop_name><mode>): Use arith_reg_dest instead of
32922         register_operand.  Use fetchop_predicate_1.
32923         (atomic_fetch_<fetchop_name>si_hard,
32924         atomic_fetch_<fetchop_name><mode>_hard): Use arith_reg_dest instead of
32925         register_operand.  Use fetchop_predicate_1, fetchop_constraint_1_llcs.
32926         (atomic_fetch_<fetchop_name><mode>_soft_gusa): Use arith_reg_dest
32927         and arith_reg_operand instead of register_operand.  Use
32928         fetchop_predicate_1, fetchop_constraint_1_gusa.
32929         (atomic_fetch_<fetchop_name><mode>_soft_tcb): Use arith_reg_dest
32930         and arith_reg_operand instead of register_operand.  Use
32931         fetchop_predicate_1, fetchop_constraint_1_tcb.  Adjust asm sequence
32932         to allow R0 usage.
32933         (atomic_fetch_<fetchop_name><mode>_soft_imask): Use arith_reg_dest
32934         and arith_reg_operand instead of register_operand.  Use
32935         fetchop_predicate_1, fetchop_constraint_1_imask.  Adjust asm sequence
32936         to allow R0 usage.
32937         (atomic_fetch_nand<mode>): Use arith_reg_dest instead of
32938         register_operand.  Use atomic_logical_operand_1.
32939         (atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
32940         atomic_fetch_nand<mode>_soft_gusa): Use arith_reg_dest and
32941         arith_reg_operand instead of register_operand.
32942         (atomic_fetch_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask):
32943         Use arith_reg_dest and arith_reg_operand instead of register_operand.
32944         Use logical_operand and rK08.  Adjust asm sequence to allow R0 usage.
32945         (atomic_<fetchop_name>_fetch<mode>): Use arith_reg_dest instead of
32946         register_operand.  Use fetchop_predicate_1.
32947         (atomic_<fetchop_name>_fetchsi_hard,
32948         atomic_<fetchop_name>_fetch<mode>_hard): Use arith_reg_dest and
32949         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
32950         fetchop_constraint_1_llcs.
32951         (atomic_<fetchop_name>_fetch<mode>_soft_gusa): Use arith_reg_dest and
32952         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
32953         fetchop_constraint_1_gusa.
32954         (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Use arith_reg_dest and
32955         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
32956         fetchop_constraint_1_tcb.  Adjust asm sequence to allow R0 usage.
32957         (atomic_<fetchop_name>_fetch<mode>_soft_imask): Use arith_reg_dest and
32958         arith_reg_operand instead of register_operand.  Use fetchop_predicate_1,
32959         fetchop_constraint_1_imask.  Adjust asm sequence to allow R0 usage.
32960         (atomic_nand_fetch<mode>): Use arith_reg_dest instead of
32961         register_operand.  Use atomic_logical_operand_1.
32962         (atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
32963         atomic_nand_fetch<mode>_soft_gusa): Use arith_reg_dest and
32964         arith_reg_operand instead of register_operand.
32965         (atomic_nand_fetch<mode>_soft_tcb): Use arith_reg_dest and
32966         arith_reg_operand instead of register_operand.  Use logical_operand
32967         and K08.  Adjust asm sequence to allow R0 usage.
32968         (atomic_nand_fetch<mode>_soft_imask): Use arith_reg_dest and
32969         arith_reg_operand instead of register_operand.  Use logical_operand
32970         and K08.
32971
32972 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
32973
32974         PR other/63504
32975         * dwarf2out.c (add_AT_wide, mem_loc_descriptor, loc_descriptor):
32976         Use ggc_alloc<wide_int> instead of ggc_cleared_alloc<wide_int>.
32977         (attr_checksum, attr_checksum_ordered, hash_loc_operands): Checksum
32978         only get_full_len HOST_WIDE_INTs from get_val () array rather than
32979         all bits in *val_wide.
32980
32981 2015-01-28  Jan Hubicka  <hubicka@ucw.cz>
32982
32983         * varpool.c (tls_model_names): Fix names.
32984         (varpool_node::dump): Dump tls- prefix for tls models.
32985
32986 2015-01-28  Thomas Schwinge  <thomas@codesourcery.com>
32987             Bernd Schmidt  <bernds@codesourcery.com>
32988             Nathan Sidwell  <nathan@codesourcery.com>
32989
32990         * config/nvptx/mkoffload.c: New file.
32991         * config/nvptx/t-nvptx: Add build rules for it.
32992         * config.gcc <nvptx-*> [$enable_as_accelerator = yes]
32993         (extra_programs): Add mkoffload.
32994         * config/nvptx/nvptx.c (nvptx_record_offload_symbol): New
32995         function.
32996         (TARGET_RECORD_OFFLOAD_SYMBOL): Define macro to use it.
32997
32998 2015-01-28  Yuri Rumyantsev  <ysrumyan@gmail.com>
32999
33000         PR middle-end/64809
33001         * cfgexpand.c (reorder_operands): Skip debug gimples.
33002
33003 2015-01-28  Ilya Enkovich  <ilya.enkovich@intel.com>
33004
33005         PR tree-optimization/64277
33006         * tree-ssa-loop-niter.c (record_nonwrapping_iv): Use base
33007         range info when possible to refine estimation.
33008
33009 2015-01-28  Thomas Preud'homme  <thomas.preudhomme@arm.com>
33010
33011         PR tree-optimization/64718
33012         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Make bswap_type
33013         be a 16bit unsigned integer when n->range is 16.
33014         (bswap_replace): Convert src to that type if necessary for all bswap
33015         sizes.  Fix rotation right notation in nearby comment.  Use bswap_type
33016         set in pass_optimize_bswap::execute ().
33017
33018 2015-01-28  James Greenhalgh  <james.greenhalgh@arm.com>
33019
33020         * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): New.
33021         * config/aarch64/aarch64-simd-builtins.def (abs): Split by
33022         integer and floating point variants.
33023         * config/aarch64/iterators.md (unspec): Add UNSPEC_ABS.
33024
33025 2015-01-28  Robert Suchanek  <robert.suchanek@imgtec.com>
33026
33027         * config/mips/mips.c (mips_hard_regno_mode_ok_p): Prohibit accumulators
33028         for all vector modes.
33029
33030 2015-01-28  Jakub Jelinek  <jakub@redhat.com>
33031
33032         PR bootstrap/64612
33033         * doc/sourcebuild.texi (comdat_group): Document.
33034
33035 2015-01-28  Terry Guo  <terry.guo@arm.com>
33036
33037         * config/arm/thumb1.md (*thumb1_movpc_insn): New insn pattern.
33038
33039 2015-01-27  David Malcolm  <dmalcolm@redhat.com>
33040
33041         * toplev.c (print_version): Add param "show_global_state", and
33042         only print GGC and plugin information if it is true.
33043         (init_asm_output): Pass in "true" for the new param when calling
33044         print_version.
33045         (process_options): Likewise.
33046         (toplev::main): Likewise.
33047         * toplev.h (print_version): Add new param to decl.
33048
33049 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
33050
33051         PR ipa/60871
33052         PR ipa/64139
33053         * tree.c (lookup_binfo_at_offset): New function.
33054         (get_binfo_at_offset): Use it.
33055
33056 2015-01-27  Jan Hubicka  <hubicka@ucw.cz>
33057
33058         PR ipa/64282
33059         * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert
33060         on vtable being vtable.
33061
33062 2015-01-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
33063
33064         * doc/extend.texi: s/390: Update documentation of hotpatch attribute.
33065         * doc/invoke.texi (-mhotpatch): s/390: Update documentation of
33066         -mhotpatch= option.
33067         * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
33068         -mno-hotpatch options.  Change syntax of -mhotpatch= option.
33069         * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
33070         Renamed.
33071         (s390_hotpatch_trampoline_halfwords_max): Renamed.
33072         (s390_hotpatch_hw_max): New name.
33073         (s390_hotpatch_trampoline_halfwords): Renamed.
33074         (s390_hotpatch_hw_before_label): New name.
33075         (get_hotpatch_attribute): Removed.
33076         (s390_hotpatch_hw_after_label): New name.
33077         (s390_handle_hotpatch_attribute): Add second parameter to hotpatch
33078         attribute.
33079         (s390_attribute_table): Ditto.
33080         (s390_function_num_hotpatch_trampoline_halfwords): Renamed.
33081         (s390_function_num_hotpatch_hw): New name.
33082         Remove special handling of inline functions and hotpatching.
33083         Return number of nops before and after the function label.
33084         (s390_can_inline_p): Removed.
33085         (s390_asm_output_function_label): Emit a configurable number of nops
33086         after the function label.
33087         (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
33088         (TARGET_CAN_INLINE_P) Removed.
33089         (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.
33090
33091 2015-01-27  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
33092             Jiong Wang  <jiong.wang@arm.com>
33093
33094         * config/aarch64/aarch64.md (tb<optab><mode>1): Clobber CC reg instead
33095         of scratch reg.
33096         (cb<optab><mode>1): Likewise.
33097         * config/aarch64/iterators.md (bcond): New define_code_attr.
33098
33099 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33100
33101         * config/s390/s390.c (s390_memory_move_cost): Increase costs for
33102         memory accesses.
33103
33104 2015-01-27  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33105
33106         * config/s390/s390.c (s390_register_move_cost): Increase costs for
33107         FPR->GPR moves.
33108
33109 2015-01-27  Richard Biener  <rguenther@suse.de>
33110
33111         * tree-vrp.c (update_value_range): Intersect the range with
33112         old recorded SSA name range information.
33113
33114 2015-01-27  Nick Clifton  <nickc@redhat.com>
33115
33116         * config/rl78/rl78.c (rl78_expand_prologue): In G10 mode push the
33117         BC, DE and HL registers directly, not via AX.
33118         When decrementing the stack pointer by a large amount, transfer SP
33119         into AX and perform the subtraction there.
33120         (rl78_expand_epilogue): Perform the inverse of the above
33121         enhancements.
33122
33123 2015-01-27  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33124
33125         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Remove.
33126
33127 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
33128             Yury Gribov  <y.gribov@samsung.com>
33129
33130         PR ubsan/64741
33131         * ubsan.c (ubsan_source_location): Refactor code.
33132         (ubsan_type_descriptor): Update type size. Refactor code.
33133
33134 2015-01-27  Richard Biener  <rguenther@suse.de>
33135
33136         PR tree-optimization/56273
33137         PR tree-optimization/59124
33138         PR tree-optimization/64277
33139         * tree-vrp.c (vrp_finalize): Emit array-bound warnings only
33140         from the first VRP pass.
33141
33142 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
33143
33144         PR ipa/64776
33145         * cgraphunit.c (cgraph_node::expand_thunk): If not this_adjusting,
33146         handle the first argument in the same loop as all the other arguments.
33147
33148         PR rtl-optimization/61058
33149         * jump.c (cleanup_barriers): Update basic block boundaries
33150         if BLOCK_FOR_INSN is non-NULL on PREV.
33151
33152 2015-01-27  Ilya Enkovich  <ilya.enkovich@intel.com>
33153
33154         * tree-chkp.c (chkp_call_returns_bounds_p): Fix handling of
33155         bounds narrowing, already instrumented calls and calls to
33156         not instrumentable functions.
33157
33158 2015-01-27  Jakub Jelinek  <jakub@redhat.com>
33159
33160         PR tree-optimization/64807
33161         * wide-int.cc (wi::divmod_internal): Clear
33162         b_dividend[dividend_blocks_needed].
33163
33164 2015-01-26  DJ Delorie  <dj@redhat.com>
33165
33166         * config/rl78/rl78.c (move_elim_pass): Don't optimize away
33167         volatile memory references.
33168
33169 2015-01-26  Oleg Endo  <olegendo@gcc.gnu.org>
33170
33171         PR target/49263
33172         * config/sh/sh.c (sh_split_treg_set_expr): Invoke emit_insn before
33173         remove_insn.
33174         * config/sh/sh.md (tstsi_t): Don't try to optimize constant with right
33175         shifts if it already fits into K08.
33176
33177 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
33178
33179         PR ipa/64730
33180         * ipa-inline.c (inline_small_functions): Print "unknown" even
33181         if edge->call_stmt is non-NULL, but has builtins or unknown
33182         location.
33183
33184         PR middle-end/64421
33185         * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
33186         with asterisk, skip the first character.
33187
33188 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
33189
33190         PR target/64806
33191         * config/i386/i386 (feature_priority): Revert the last P_POPCNT
33192         order change.
33193
33194 2015-01-26  Uros Bizjak  <ubizjak@gmail.com>
33195
33196         PR target/64795
33197         * config/i386/i386.md (*movdi_internal): Also check operand 0
33198         to determine TYPE_LEA operand.
33199         (*movsi_internal): Ditto.
33200
33201 2015-01-26  Jakub Jelinek  <jakub@redhat.com>
33202
33203         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
33204         OPTION_MASK_QUAD_MEMORY_ATOMIC.
33205
33206 2015-01-26  Renlin Li  <renlin.li@arm.com>
33207
33208         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Correct
33209         the comment.
33210         * config/aarch64/aarch64.md (tlsle_small_<mode>): Add left shift 12-bit
33211         for higher part.
33212
33213 2015-01-26  Richard Biener  <rguenther@suse.de>
33214
33215         PR middle-end/64764
33216         * tree-ssa-uninit.c (is_pred_expr_subset_of): Handle
33217         combining two BIT_AND_EXPR predicates.
33218
33219 2015-01-26  H.J. Lu  <hongjiu.lu@intel.com>
33220
33221         PR bootstrap/64754
33222         * tree-ssa-structalias.c (new_var_info): Initialize ruid.
33223
33224 2015-01-26  Terry Guo  <terry.guo@arm.com>
33225
33226         * config/arm/arm.c (arm_file_start): Update the assignment of
33227         Tag_ABI_HardFP_use.
33228
33229 2015-01-25  James Greenhalgh  <james.greenhalgh@arm.com>
33230
33231         * config/arm/arm-cores.def (cortex-a57): Use the new Cortex-A57
33232         pipeline model.
33233         config/arm/arm.md: Include the new Cortex-A57 model.
33234         (generic_sched): Don't use generic_sched when tuning for
33235         Cortex-A57.
33236
33237 2015-01-25  Allan Sandfeld Jensen  <sandfeld@kde.org>
33238             Uros Bizjak  <ubizjak@gmail.com>
33239
33240         * config/i386/i386.c (get_builtin_code_for_version): Add
33241         support for BMI and BMI2 multiversion functions.
33242
33243 2015-01-25  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
33244
33245         * emit-rtl.h (store_bit_field): Move prototype to expmed.h.
33246         (extract_bit_field): Likewise.
33247         (extract_low_bits): Likewise.
33248         (expand_mult): Likewise.
33249         (expand_mult_highpart_adjust): Likewise.
33250
33251 2015-01-24  H.J. Lu  <hongjiu.lu@intel.com>
33252
33253         * config/i386/driver-i386.c (host_detect_local_cpu): Check new
33254         Silvermont, Haswell, Broadwell and Knights Landing model numbers.
33255         * config/i386/i386.c (processor_model): Add
33256         M_INTEL_COREI7_BROADWELL.
33257         (arch_names_table): Add "broadwell".
33258
33259 2015-01-24  Oleg Endo  <olegendo@gcc.gnu.org>
33260
33261         PR target/49263
33262         PR target/53987
33263         PR target/64345
33264         PR target/59533
33265         PR target/52933
33266         PR target/54236
33267         PR target/51244
33268         * config/sh/sh-protos.h
33269         (sh_extending_set_of_reg::can_use_as_unextended_reg,
33270         sh_extending_set_of_reg::use_as_unextended_reg,
33271         sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn,
33272         sh_is_movrt_insn, sh_insn_operands_modified_between_p,
33273         sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr,
33274         sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions.
33275         (sh_treg_insns): New class.
33276         * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook.
33277         (scope_counter): New class.
33278         (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest,
33279         sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn,
33280         sh_extending_set_of_reg::can_use_as_unextended_reg,
33281         sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr,
33282         sh_in_recog_treg_set_expr, sh_try_split_insn_simple,
33283         sh_split_treg_set_expr): New functions.
33284         (addsubcosts): Handle treg_set_expr.
33285         (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT.
33286         (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND.
33287         (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases.
33288         (sh_insn_operands_modified_between_p): Make non-static.
33289         * config/sh/predicates.md (zero_extend_movu_operand): Allow
33290         simple_mem_operand in addition to displacement_mem_operand.
33291         (zero_extend_operand): Don't allow zero_extend_movu_operand.
33292         (treg_set_expr, treg_set_expr_not_const01,
33293         arith_reg_or_treg_set_expr): New predicates.
33294         * config/sh/sh.md (tstsi_t): Use arith_reg_operand and
33295         arith_or_int_operand instead of logical_operand.  Convert to
33296         insn_and_split.  Try to optimize constant operand in splitter.
33297         (tsthi_t, tstqi_t): Fold into *tst<mode>_t.  Convert to insn_and_split.
33298         (*tstqi_t_zero): Delete.
33299         (*tst<mode>_t_subregs): Add !sh_in_recog_treg_set_expr split condition.
33300         (tstsi_t_and_not): Delete.
33301         (tst<mode>_t_zero_extract_eq): Rename to *tst<mode>_t_zero_extract.
33302         Convert to insn_and_split.
33303         (unnamed split, tstsi_t_zero_extract_xor,
33304         tstsi_t_zero_extract_subreg_xor_little,
33305         tstsi_t_zero_extract_subreg_xor_big): Delete.
33306         (*tstsi_t_shift_mask): New insn_and_split.
33307         (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try
33308         to recombine with surrounding insns when splitting.
33309         (*negtstsi): Add !sh_in_recog_treg_set_expr condition.
33310         (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ...
33311         (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4,
33312         *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns.
33313         (*cbranch_div0s: Delete.
33314         (*addc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
33315         Try to recombine with surrounding insns when splitting.  Add operand
33316         order variants.
33317         (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01.
33318         (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb,
33319         *addc_r_r_msb, *addc_2r_msb): Delete.
33320         (*addc_2r_lsb): Rename to *addc_2r_t.  Use treg_set_expr.  Add operand
33321         order variant.
33322         (*addc_negreg_t): New insn_and_split.
33323         (*subc): Convert to insn_and_split.  Use treg_set_expr as 3rd operand.
33324         Try to recombine with surrounding insns when splitting.
33325         Add operand order variants.
33326         (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New
33327         insn_and_split patterns.
33328         (*rotcr): Use arith_reg_or_treg_set_expr.  Try to recombine with
33329         surrounding insns when splitting.
33330         (unnamed rotcr split): Use arith_reg_or_treg_set_expr.
33331         (*rotcl): Likewise.  Add zero_extract variant.
33332         (*ashrsi2_31): New insn_and_split.
33333         (*negc): Convert to insn_and_split.  Use treg_set_expr.
33334         (*zero_extend<mode>si2_disp_mem): Update comment.
33335         (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split
33336         condition.
33337         (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr.  Try to recombine
33338         with surrounding insns when splitting.
33339         (any_treg_expr_to_reg): New insn_and_split.
33340         (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2,
33341         *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5,
33342         *neg_zero_extract_6, *zero_extract_0, *zero_extract_1,
33343         *zero_extract_2): New single bit zero extract patterns.
33344         (bld_reg, *bld_regqi): Fold into bld<mode>_reg.
33345         (*get_thread_pointersi, store_gbr, *mov<mode>_gbr_load,
33346         *mov<mode>_gbr_load, *mov<mode>_gbr_load, *mov<mode>_gbr_load,
33347         *movdi_gbr_load): Use arith_reg_dest instead of register_operand for
33348         set destination.
33349         (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of
33350         register_operand for set source.
33351
33352 2015-01-23  Jan Hubicka  <hubicka@ucw.cz>
33353
33354         * i386.opt (prefetch_sse): New targetsave.
33355         * i386.c (ix86_function_specific_save): Save prefetch_sse.
33356         (ix86_function_specific_restore): Restore prefetch_sse and initialize
33357         ix86_cost/ix86_tune_cost.
33358
33359 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
33360
33361         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
33362         Support the JIT by using 0 as the language type.
33363
33364 2015-01-23  Vladimir Makarov  <vmakarov@redhat.com>
33365
33366         PR target/64317
33367         * lra-lives.c (make_hard_regno_born): Add parameter.  Don't make
33368         REAL_PIC_OFFSET_TABLE_REGNUM conflicting with pic offset pseudo.
33369         (mark_regno_live, process_bb_lives): Pass new parameter value to
33370         make_hard_regno_born.
33371
33372 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
33373
33374         PR rtl-optimization/63637
33375         PR rtl-optimization/60663
33376         * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
33377         if elt->cost is MAX_COST for ASM_OPERANDS.
33378         (find_sets_in_insn): Fix up comment typo.
33379         (cse_insn): Don't set src_volatile for all non-volatile
33380         ASM_OPERANDS in PARALLELs, but just those with multiple outputs
33381         or with "memory" clobber.  Set elt->cost to MAX_COST
33382         for ASM_OPERANDS in PARALLEL.  Set src_elt->cost to MAX_COST
33383         if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
33384
33385 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
33386
33387         * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
33388         alternative 1.
33389
33390 2015-01-23  Uros Bizjak  <ubizjak@gmail.com>
33391
33392         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Move definition to
33393         libgcc/config/i386/elf-lib.h.
33394
33395 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
33396
33397         PR driver/64737
33398         * gcc.c (print_configuration): Don't print a blank line at the end
33399         here...
33400         (run_attempt): ... but here unstead.
33401
33402         PR middle-end/64734
33403         * omp-low.c (scan_sharing_clauses): Don't ignore
33404         OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
33405         on target data/update constructs.
33406
33407 2015-01-23  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33408
33409         PR target/50928
33410         * config/m32c/m32c.c (encode_pattern_1): Removed gcc_unreachable here.
33411         (DEBUG_RELOAD): Removed define.
33412         (m32c_limit_reload_class): Enable traces with if DEBUG0.
33413         (m32c_function_arg): Added a type cast.
33414         (m32c_legitimize_reload_address): Push A_REGS reload with PSImode.
33415         * config/m32c/addsub.md (addsi3_1): Specify the mode of all arguments.
33416         * config/m32c/bitops.md (andqi3_16): Likewise.
33417         * config/m32c/mov.md (m32c_immd_dbl_mov): Likewise.
33418         (push_a01_l): Likewise.
33419
33420 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
33421
33422         PR jit/64721
33423         * main.c (main): Construct toplev instances with init_signals=true.
33424         * toplev.c (general_init): Add param "init_signals", and use it to
33425         conditionalize the calls to signal and host_hooks.extra_signals.
33426         (toplev::toplev): Add param "init_signals".
33427         (toplev::main): When invoking general_init, pass m_init_signals
33428         to control whether signal-handlers are installed.
33429         * toplev.h (toplev::toplev): Add param "init_signals".
33430         (toplev::m_init_signals): New field.
33431
33432 2015-01-23  David Malcolm  <dmalcolm@redhat.com>
33433
33434         PR jit/64722
33435         * emit-rtl.c (init_emit_regs): Set pic_offset_table_rtx to
33436         NULL_RTX before testing PIC_OFFSET_TABLE_REGNUM, since the
33437         latter may be affected by the former (e.g. on i686).
33438
33439 2015-01-23  Martin Liska  <mliska@suse.cz>
33440
33441         * tree.h (tree_vec_elt_check): Workaround -Wstrict-overflow
33442         false positive during profiledbootstrap.
33443
33444 2015-01-23  Tom de Vries  <tom@codesourcery.com>
33445
33446         PR libgomp/64672
33447         * lto-opts.c (lto_write_options): Output non-explicit conservative
33448         -fno-openacc.
33449         * lto-wrapper.c (merge_and_complain): Handle merging -fopenacc.
33450         (append_compiler_options): Pass -fopenacc through.
33451
33452 2015-01-23  Tom de Vries  <tom@codesourcery.com>
33453
33454         PR libgomp/64707
33455         * lto-opts.c (lto_write_options): Output non-explicit conservative
33456         -fno-openmp.
33457         * lto-wrapper.c (merge_and_complain): Handle merging -fopenmp.
33458         (append_compiler_options): Pass -fopenmp through.
33459
33460 2015-01-23  Jakub Jelinek  <jakub@redhat.com>
33461
33462         PR debug/64511
33463         * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
33464         GTY markup.
33465
33466         * diagnostic-core.h (internal_error_no_backtrace): New prototype.
33467         * diagnostic.def (DK_ICE_NOBT): New kind.
33468         * diagnostic.c (diagnostic_action_after_output): Handle DK_ICE_NOBT
33469         like DK_ICE, but never print backtrace.
33470         (diagnostic_report_diagnostic): Handle DK_ICE_NOBT like DK_ICE.
33471         (internal_error_no_backtrace): New function.
33472         * gcc.c (execute): Use internal_error_no_backtrace instead of
33473         internal_error.
33474
33475 2015-01-22  Jeff Law  <law@redhat.com>
33476
33477         PR target/52076
33478         * config/m68k/m68k.md (xorsi3_internal): Twiddle constraints to
33479         improve code density for small immediate to memory case.
33480         (insv): Better handle bitfield assignments when the field is
33481         being set to all ones.
33482         * config/m68k/predicates.md (reg_or_pow2_m1_operand): New
33483         operand predicate.
33484
33485 2015-01-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
33486             Jakub Jelinek  <jakub@redhat.com>
33487
33488         PR middle-end/64729
33489         * gcc.c (LINK_SSP_SPEC): Handle -fstack-protector-explicit
33490         for !TARGET_LIBC_PROVIDES_SSP version and
33491         -fstack-protector-{all,strong,explicit} otherwise.
33492         * config/freebsd.h (LINK_SSP_SPEC): Handle
33493         -fstack-protector-{strong,explicit}.
33494
33495 2015-01-22  Jan Hubicka  <hubicka@ucw.cz>
33496             H.J. Lu  <hongjiu.lu@intel.com>
33497
33498         PR ipa/64694
33499         * ipa-inline.c (inline_small_functions): Fix thinko in maintenance of
33500         heap.
33501
33502 2015-01-22  Wei Mi  <wmi@google.com>
33503
33504         PR rtl-optimization/64557
33505         * dse.c (record_store): Call get_addr for mem_addr.
33506         (check_mem_read_rtx): Likewise.
33507
33508 2015-01-22  Eric Botcazou  <ebotcazou@adacore.com>
33509
33510         * fold-const.c (const_binop): Add early return for non-tcc_binary.
33511
33512 2015-01-22  Chen Gang  <gang.chen.5i5j@gmail.com>
33513
33514         * toplev.c (init_local_tick): Process the failure when read
33515         fails for random_seed.
33516
33517         * ubsan.c (ubsan_type_descriptor): Use 'pretty_print' for
33518         'pretty_name' to avoid memory overflow.
33519
33520 2015-01-22  Richard Biener  <rguenther@suse.de>
33521
33522         PR middle-end/64728
33523         * tree-ssa-coalesce.c (coalesce_partitions): Do not perform
33524         abnormal coalescing on undefined SSA names.
33525
33526 2015-22-01  Uros Bizjak  <ubizjak@gmail.com>
33527
33528         PR target/64688
33529         PR target/64477
33530         * config/i386/sse.md (vec_set<mode>_0): Use (Yi/r/C) constraints
33531         for alternative 3.
33532         (*vec_dup<mode>): Use (Yi/$r) constraints for alternative 1.
33533
33534 2015-01-22  Trevor Saunders  <tsaunders@mozilla.com>
33535
33536         PR middle-end/63325
33537         * fold-const.c (fold_checksum_tree): Don't include value of
33538         expr->decl_with_vis.symtab_node in the checksum.
33539
33540 2015-01-22  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
33541
33542         * config/s390/s390.md (atomic code attribute): Fix typo "ior" -> "or".
33543
33544 2015-01-22  Max Ostapenko  <m.ostapenko@partner.samsung.com>
33545
33546         PR driver/64690
33547         * gcc.c (insert_comments): New function.
33548         (try_generate_repro): Call it.
33549         (append_text): Removed.
33550
33551 2015-01-22  Richard Biener  <rguenther@suse.de>
33552
33553         * ipa-inline.c (can_inline_edge_p): Disable inlining of edges
33554         with IL incompatible options.  Properly honor user optimize
33555         attributes.
33556
33557 2015-01-21  Segher Boessenkool  <segher@kernel.crashing.org>
33558
33559         PR rtl-optimization/64682
33560         * combine.c (distribute_notes): When moving a death note for
33561         a register that is set in the new I2, make sure to put it
33562         before that new I2.
33563
33564 2015-01-21  David Edelsohn  <dje.gcc@gmail.com>
33565
33566         * config/rs6000/rs6000.c (rs6000_file_start): Use rs6000_isa_flags
33567         not TARGET_DEFAULT.
33568
33569 2015-01-21  Jakub Jelinek  <jakub@redhat.com>
33570
33571         PR debug/64511
33572         * simplify-rtx.c (simplify_relational_operation_1): Don't try to
33573         optimize (eq/ne (and (side_effects) (const_int 0)) (const_int 0))
33574         into (eq/ne (and (not (side_effects)) (const_int 0)) (const_int 0)).
33575
33576         PR sanitizer/64706
33577         * doc/invoke.texi (-fsanitize=vptr): Document.
33578
33579         PR rtl-optimization/62078
33580         * dse.c: Include cfgcleanup.h.
33581         (rest_of_handle_dse): For -fnon-call-exceptions, if DSE removed
33582         anything call purge_all_dead_edges and cleanup_cfg at the end
33583         of the pass.
33584
33585 2015-01-21  Jan Hubicka  <hubicka@ucw.cz>
33586
33587         * ipa-utils.c (ipa_merge_profiles): Avoid ICE on mismatch in indirect
33588         edges.
33589
33590 2015-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
33591
33592         * gimplify.c (gimplify_function_tree): Check the no_sanitize_thread
33593         decl attribute.
33594
33595 2015-01-21  David Sherwood  <david.sherwood@arm.com>
33596             Tejas Belagod <Tejas.Belagod@arm.com>
33597
33598         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Removed.
33599         * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class): Removed.
33600         * config/aarch64/aarch64-protos.h (aarch64_cannot_change_mode_class):
33601         Removed.
33602
33603 2015-01-21  David Sherwood  <david.sherwood@arm.com>
33604             Tejas Belagod <Tejas.Belagod@arm.com>
33605
33606         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist)
33607         (aarch64_reverse_mask): New decls.
33608         * config/aarch64/iterators.md (UNSPEC_REV_REGLIST): New enum.
33609         (insn_count): New mode_attr.
33610         * config/aarch64/aarch64-simd.md (vec_store_lanesoi, vec_store_lanesci)
33611         (vec_store_lanesxi, vec_load_lanesoi, vec_load_lanesci)
33612         (vec_load_lanesxi): Made ABI compliant for Big Endian targets.
33613         (aarch64_rev_reglist, aarch64_simd_ld2, aarch64_simd_ld3)
33614         (aarch64_simd_ld4, aarch64_simd_st2, aarch64_simd_st3)
33615         (aarch64_simd_st4): New patterns.
33616         * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist)
33617         (aarch64_reverse_mask): New functions.
33618
33619 2015-01-21  Alan Hayward  <alan.hayward@arm.com>
33620
33621         * config/aarch64/aarch64-protos.h (aarch64_simd_disambiguate_copy):
33622         Declare.
33623         * config/aarch64/aarch64.c (aarch64_classify_address): Allow extra
33624         addressing modes for BE.
33625         (aarch64_print_operand): Add 'R' specifier.
33626         (aarch64_simd_disambiguate_copy): Delete.
33627         (aarch64_simd_emit_reg_reg_move): New function.
33628         * config/aarch64/aarch64-simd.md: Use aarch64_simd_emit_reg_reg_move
33629         in define_splits for structural moves.
33630         (mov<mode>): Use less restrictive predicates.
33631         (*aarch64_mov<mode>): Simplify and only allow for LE.
33632         (*aarch64_be_movoi, *aarch64_be_movci, *aarch64_be_movxi): New.
33633
33634 2015-01-21  Alan Hayward  <alan.hayward@arm.com>
33635
33636         * rtlanal.c (subreg_get_info): Exit early for simple and common cases.
33637
33638 2015-01-21  Richard Henderson  <rth@redhat.com>
33639
33640         PR target/64669
33641         * ccmp.c (used_in_cond_stmt_p): Remove.
33642         (expand_ccmp_expr): Don't use it.
33643
33644 2015-01-21  Nick Clifton  <nickc@redhat.com>
33645
33646         * config/rl78/rl78.c (rl78_calculate_death_notes): Look inside
33647         PARALLELs.
33648
33649 2015-01-21  Richard Biener  <rguenther@suse.de>
33650
33651         PR middle-end/64313
33652         * tree-core.h (builtin_info, builtin_info_type): Turn from
33653         an object with two arrays into an array of an object with
33654         decl and two flags, implicit_p and declared_p.
33655         * tree.h (builtin_decl_explicit, builtin_decl_implicit,
33656         set_builtin_decl, set_builtin_decl_implicit_p,
33657         builtin_decl_explicit_p, builtin_decl_implicit_p): Adjust.
33658         (set_builtin_decl_declared_p, builtin_decl_declared_p): New functions.
33659         * builtins.c (builtin_info): Adjust.
33660         * gimplify.c (gimplify_addr_expr): References to builtins
33661         that have been declared by the user makes them eligible for
33662         use by the compiler.  Call set_builtin_decl_implicit_p on them.
33663
33664 2015-01-20  Jeff Law  <law@redhat.com>
33665
33666         PR target/59946
33667         * config/m68k/m68k.md (Comparison expanders and patterns): Do not
33668         allow pc-relative addresses in operand predicates or constraints.
33669
33670 2015-01-21  Bin Cheng  <bin.cheng@arm.com>
33671
33672         * config/arm/arm.c (arm_cortex_a53_tune, arm_cortex_a57_tune): Prefer
33673         neon on aarch32 processors for stringops.
33674
33675 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
33676
33677         PR ipa/63576
33678         * ipa-utils.c (ipa_merge_profiles): Merge speculative edges.
33679
33680 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
33681
33682         PR lto/45375
33683         * ipa-inline.c: Include lto-streamer.h
33684         (report_inline_failed_reason): Output source file differences and
33685         flags on optimization/target node mismatch.
33686         (can_inline_edge_p): Consider caller to be the outer inline function;
33687         be less restrictive about matching opimize and optimize_size attributes.
33688         (inline_account_function_p): Break out from ...
33689         (inline_small_functions): ... here.
33690         * ipa-inline-transform.c (clone_inlined_nodes): Use
33691         inline_account_function_p.
33692         (inline_call): Use optimize attribution; use inline_account_function_p.
33693         (inline_transform): Use opt_for_fn.
33694         * ipa-inline.h (inline_account_function_p): Declare.
33695
33696 2015-01-20  Jakub Jelinek  <jakub@redhat.com>
33697
33698         PR debug/64663
33699         * dwarf2out.c (decl_piece_node): Don't put bitsize into
33700         mode if bitsize <= 0.
33701         (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
33702         dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
33703         sizes and positions.
33704
33705 2015-01-20  Chung-Lin Tang  <cltang@codesourcery.com>
33706
33707         * config/nios2/nios2.c (nios2_asm_file_end): Implement
33708         TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
33709         needed.
33710         (TARGET_ASM_FILE_END): Define.
33711
33712 2015-01-20  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
33713
33714         * config/arm/arm-protos.h (enum arm_sched_autopref): New constants.
33715         (struct tune_params): Use the enum.
33716         * arm.c (arm_*_tune): Update.
33717         (arm_option_override): Update.
33718
33719 2015-01-20  Richard Biener  <rguenther@suse.de>
33720
33721         PR ipa/64684
33722         * ipa-reference.c (add_static_var): Inline ...
33723         (analyze_function): ... here after splitting out from ...
33724         (is_proper_for_analysis): ... this.
33725
33726 2015-01-20  Matthew Wahab  <matthew.wahab@arm.com>
33727
33728         PR target/64149
33729         * config/arm/arm.opt: Remove lra option and arm_lra_flag variablesle.
33730         * config/arm/arm.h (MODE_BASE_REG_CLASS): Remove use of arm_lra_flagag,
33731         replace the conditional with it's true branch.
33732         * config/arm/arm.config (TARGET_LRA_P): Set to hook_bool_void_true.
33733         (arm_lra_p): Remove.
33734
33735 2015-01-20  Eric Botcazou  <ebotcazou@adacore.com>
33736
33737         * config/visium/visium.h (LIB_SPEC): Adjust in default case.
33738
33739 2015-01-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
33740
33741         * config/tilegx/mul-tables.c: Move symtab.h include after
33742         coretypes.h include.
33743         * config/tilepro/mul-tables.c: Add includes hashtab.h, hash-set.h,
33744         vec.h, machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h,
33745         flags.h, statistics.h, double-int.h, real.h, fixed-value.h, alias.h,
33746         wide-int.h, inchash.h, tree.h, insn-config.h, expmed.h, dojump.h,
33747         explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
33748
33749 2015-01-20  Igor Zamyatin  <igor.zamyatin@intel.com>
33750
33751         PR bootstrap/64676
33752         Revert:
33753         2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
33754
33755         PR rtl-optimization/64081
33756         * loop-iv.c (def_pred_latch_p): New function.
33757         (latch_dominating_def): Allow specific cases with non-single
33758         definitions.
33759         (iv_get_reaching_def): Likewise.
33760         (check_complex_exit_p): New function.
33761         (check_simple_exit): Use check_complex_exit_p to allow certain cases
33762         with exits not executing on any iteration.
33763
33764 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
33765
33766         PR lto/45375
33767         * i386.c (ix86_option_override_internal): Use ix86_tune_cost
33768         to set branch cost.
33769
33770 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
33771
33772         PR lto/45375
33773         * i386.c (gate): Check flag_expensive_optimizations and
33774         optimize_size.
33775         (ix86_option_override_internal): Drop optimize_size condition
33776         on MASK_ACCUMULATE_OUTGOING_ARGS, MASK_VZEROUPPER,
33777         MASK_AVX256_SPLIT_UNALIGNED_LOAD, MASK_AVX256_SPLIT_UNALIGNED_STORE,
33778         MASK_PREFER_AVX128.
33779         (ix86_avx256_split_vector_move_misalign,
33780         ix86_avx256_split_vector_move_misalign): Check optimize_insn_for_speed.
33781         * sse.md (all uses of TARGET_PREFER_AVX128): Add
33782         optimize_insn_for_speed_p check.
33783
33784 2015-01-19  Matthew Fortune  <matthew.fortune@imgtec.com>
33785
33786         * config/mips/mips.h (FP_ASM_SPEC): New define.
33787         (ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
33788         instead.
33789
33790 2015-01-19  Oleg Endo  <olegendo@gcc.gnu.org>
33791
33792         PR target/53988
33793         * config/sh/sh-protos.h (sh_find_set_of_reg): Make sure not to return
33794         nullptr for insn when reaching the first insn.
33795         * config/sh/sh.c (sh_unspec_insn_p): Rewrite using subrtx_iterator.
33796         (sh_insn_operands_modified_between_p): Add nullptr check.
33797         (sh_find_extending_set_of_reg): Fix log message.  Don't accept
33798         sign extending mem load if the insn contains any UNSPEC or
33799         UNSPEC_VOLATILE.
33800
33801 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
33802
33803         * params.def (inline-unit-growth): Drop to 15%.
33804         * invoke.texi (inline-unit-growth): Document change.
33805
33806 2015-01-19  Martin Liska  <mliska@suse.cz>
33807
33808         PR ipa/64668
33809         * ipa-icf-gimple.c (func_checker::compare_operand): Call proper
33810         function for second argument of OBJ_TYPE_REF.
33811
33812 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
33813
33814         PR ipa/64218
33815         * ipa-inline.c (want_inline_function_to_all_callers_p): Fix check
33816         whether function is an alias.
33817
33818 2015-01-19  Jan Hubicka  <hubicka@ucw.cz>
33819
33820         * ipa-devirt.c (ipa_devirt): Drop polymorphic call info in hopeless
33821         cases.
33822
33823 2015-01-19  Vladimir Makarov  <vmakarov@redhat.com>
33824
33825         PR rtl-optimization/64671
33826         * lra-remat.c (operand_to_remat): Don't consider jump and call
33827         insns.
33828
33829 2015-01-19  David Edelsohn  <dje.gcc@gmail.com>
33830
33831         PR target/59828
33832         * config/rs6000/default64.h: Include rs6000-cpus.def.
33833         (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
33834         (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
33835         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
33836         and POWER8.
33837         * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
33838         POWER8.
33839         * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
33840         pseudo-op to specify assembler dialect.
33841
33842 2015-01-19  Martin Liska  <mliska@suse.cz>
33843
33844         PR ipa/64664
33845         * ipa-icf.c (sem_item_optimizer::filter_removed_items):
33846         Handle safe potentially removed nodes during filtering.
33847
33848 2015-01-19  Martin Liska  <mliska@suse.cz>
33849
33850         * doc/extend.texi (no_icf): Add new attribute description.
33851         * ipa-icf.c (sem_item_optimizer::merge_classes): Handle cases
33852         where the pass attempts to merge a function with no_icf attribute.
33853
33854 2015-01-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
33855
33856         PR target/64532
33857         * doc/md.texi (ARM Options): Document register constraints.
33858
33859 2015-01-19  Jiong Wang  <jiong.wang@arm.com>
33860             Andrew Pinski  <apinski@cavium.com>
33861
33862         PR target/64304
33863         * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
33864         (ashl<mode>3): Don't expand if operands[2] is not constant.
33865
33866 2015-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
33867
33868         PR target/64448
33869         * config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal):
33870         Match xor-and-xor RTL pattern.
33871
33872 2015-01-19  Igor Zamyatin  <igor.zamyatin@intel.com>
33873
33874         PR rtl-optimization/64081
33875         * loop-iv.c (def_pred_latch_p): New function.
33876         (latch_dominating_def): Allow specific cases with non-single
33877         definitions.
33878         (iv_get_reaching_def): Likewise.
33879         (check_complex_exit_p): New function.
33880         (check_simple_exit): Use check_complex_exit_p to allow certain cases
33881         with exits not executing on any iteration.
33882
33883 2015-01-19  Jakub Jelinek  <jakub@redhat.com>
33884
33885         * common.opt (fgraphite): Fix a typo.
33886
33887 2015-01-19  Felix Yang  <felix.yang@huawei.com>
33888
33889         * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): New
33890         pattern.
33891         * config/aarch64/aarch64-simd-builtins.def (smaxp, sminp, umaxp,
33892         uminp, smax_nanp, smin_nanp): New builtins.
33893         * config/aarch64/arm_neon.h (vpmax_s8, vpmax_s16, vpmax_s32,
33894         vpmax_u8, vpmax_u16, vpmax_u32, vpmaxq_s8, vpmaxq_s16, vpmaxq_s32,
33895         vpmaxq_u8, vpmaxq_u16, vpmaxq_u32, vpmax_f32, vpmaxq_f32, vpmaxq_f64,
33896         vpmaxqd_f64, vpmaxs_f32, vpmaxnm_f32, vpmaxnmq_f32, vpmaxnmq_f64,
33897         vpmaxnmqd_f64, vpmaxnms_f32, vpmin_s8, vpmin_s16, vpmin_s32, vpmin_u8,
33898         vpmin_u16, vpmin_u32, vpminq_s8, vpminq_s16, vpminq_s32, vpminq_u8,
33899         vpminq_u16, vpminq_u32, vpmin_f32, vpminq_f32, vpminq_f64, vpminqd_f64,
33900         vpmins_f32, vpminnm_f32, vpminnmq_f32, vpminnmq_f64, vpminnmqd_f64,
33901         vpminnms_f32): Rewrite using builtin functions.
33902
33903 2015-01-19  Thomas Schwinge  <thomas@codesourcery.com>
33904
33905         PR libgomp/64625
33906         * omp-low.c (offload_symbol_decl): Remove variable.
33907         (get_offload_symbol_decl): Remove function.
33908         (expand_omp_target): For BUILT_IN_GOMP_TARGET,
33909         BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
33910         instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
33911         BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
33912         BUILT_IN_GOACC_UPDATE don't pass it at all.
33913
33914 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
33915
33916         * tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
33917         callers.
33918
33919 2015-01-19  Ilya Enkovich  <ilya.enkovich@intel.com>
33920
33921         * ipa-chkp.c (chkp_produce_thunks): Add early param
33922         to split thunks production into two passes.  Keep
33923         'always_inline' function bodies after the first pass.
33924         (pass_data_ipa_chkp_early_produce_thunks): New.
33925         (pass_ipa_chkp_early_produce_thunks): New.
33926         (pass_ipa_chkp_produce_thunks::execute): Adjust to new
33927         chkp_produce_thunks signature.
33928         (make_pass_ipa_chkp_early_produce_thunks): New.
33929         * passes.def (pass_ipa_chkp_early_produce_thunks): New.
33930         (pass_ipa_chkp_produce_thunks): Move after local optimizations.
33931         * tree-pass.h (make_pass_ipa_chkp_early_produce_thunks): New.
33932
33933 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
33934
33935         * cgraph.c (cgraph_node::dump): Dump profile flags.
33936
33937 2015-01-18  Oleg Endo  <olegendo@gcc.gnu.org>
33938
33939         PR target/64652
33940         * config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
33941         reg appear first in the parallel.
33942
33943 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
33944
33945         * ipa-reference.c (set_reference_optimization_summary,
33946         ipa_reference_get_not_written_global): Do nothing if ipa-reference is
33947         disabled.
33948         (ignore_module_statics): New static var.
33949         (propagate_bits): If ipa-reference is disabled, do not look into local
33950         properties.
33951         (analyze_function): Disable analysis when ipa_reference is disabled.
33952         (generate_summary): Do not dump when reference is disabled;
33953         collect vars accessed from functions with ipa-reference disabled.
33954         (get_read_write_all_from_node): When ipa-reference is disabled, use the
33955         node flags.
33956         (gate): Enable for LTO.
33957         (ignore_edge_p): New function.
33958         (propagate): Skip functions w/o ipa-reference analysis.
33959         * optc-save-gen.awk: Handle optimize_debug correctly.
33960         * opth-gen.awk: Likewise.
33961         * common.opt (fauto-inc-dec, fdelete-dead-exceptions, ffunction-cse,
33962         fgraphite, fstrict-volatile-bitfields, fira-algorithm, fira-region,
33963         fira-share-save-slots, fira-share-spill-slots,
33964         fmodulo-sched-allow-regmoves, fpartial-inlining,
33965         sched-stalled-insns, fsched-stalled-insns-dep, fstrict-overflow,
33966         ftracer, ftree-parallelize-loops, fassociative-math,
33967         freciprocal-math, fvect-cost-model, fsimd-cost-model): Mark as
33968         Optimization
33969         (fauto-profile, fcommon, fdata-sections, fipa-icf-variables,
33970         ftoplevel-reorder, funit-at-a-time, fwhole-program): Do not mark as
33971         Optimization.
33972         * ipa-icf.c (gate, sem_item_optimizer::filter_removed_items):
33973         Fix for IPA.
33974
33975 2015-01-18  Jan Hubicka  <hubicka@ucw.cz>
33976
33977         PR ipa/64378
33978         * ipa-prop.c (try_make_edge_direct_virtual_call): Clear speculative
33979         flag correctly.
33980         * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
33981
33982 2015-01-18  Sandra Loosemore  <sandra@codesourcery.com>
33983
33984         * doc/invoke.texi ([-funroll-loops], [-funroll-all-loops]):
33985         Remove duplicate option listings.
33986
33987 2015-01-18  Felix Yang  <felix.yang@huawei.com>
33988
33989         * auto-profile.c (afdo_find_equiv_class): Remove unnecessary test.
33990         (autofdo_source_profile::get_callsite_total_count,
33991         function_instance::get_function_instance_by_decl,
33992         string_table::get_index, string_table::get_index_by_decl,
33993         afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
33994         Fix comment typos. Reformatting and minor code rearrangement.
33995
33996 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
33997
33998         * config/rs6000/rs6000.md (probe_stack): Delete.
33999         (probe_stack_address): New.
34000
34001 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
34002
34003         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use TARGET_32BIT
34004         to test for 32-bit ABIs, not !TARGET_POWERPC64.
34005
34006 2015-01-17  Segher Boessenkool  <segher@kernel.crashing.org>
34007
34008         * config/rs6000/rs6000.c (rs6000_parallel_return): New function.
34009         (rs6000_function_value): Use it.  Handle SCmode and TCmode as well,
34010         for TARGET_32BIT && TARGET_POWERPC64.  Fix another BITS_PER_WORD
34011         snafu.
34012         (rs6000_libcall_value): Use the new function.
34013
34014 2015-01-17  Sandra Loosemore  <sandra@codesourcery.com>
34015
34016         * doc/invoke.texi ([-ftracer]): Remove duplicate option listing.
34017
34018 2015-01-17  Eric Botcazou  <ebotcazou@adacore.com>
34019
34020         * reorg.c (fill_simple_delay_slots): If TARGET_FLAGS_REGNUM is valid,
34021         implement a more precise life analysis for it during backward scan.
34022
34023 2015-01-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
34024
34025         * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
34026
34027 2015-01-17  Bernd Schmidt  <bernds@codesourcery.com>
34028
34029         PR rtl-optimization/52773
34030         * calls.c (emit_library_call_value): When pushing arguments use
34031         stack_pointer_rtx rather than virtual_outgoing_args_rtx in
34032         CALL_INSN_FUNCTION_USAGE.  Only emit one of use of the magic
34033         stack pointer reference into CALL_INSN_FUNCTION_USAGE.
34034
34035 2015-01-17  Jeff Law  <law@redhat.com>
34036
34037         PR rtl-optimization/32790
34038         * reginfo.c (reg_scan_mark_refs): Look for ZERO_EXTRACT,
34039         not ZERO_EXTEND in SET_DESTs.
34040
34041 2015-01-17  Alan Modra  <amodra@gmail.com>
34042
34043         * cprop.c (do_local_cprop): Revert last change.
34044
34045 2015-01-16  DJ Delorie  <dj@redhat.com>
34046             Nick Clifton  <nickc@redhat.com>
34047
34048         * config/rl78/rl78-real.md (addqi3_real): Allow volatiles.
34049         (addhi3_real): Likewise.  Fix [HL+0] syntax.
34050         (subqi3_real): Likewise.
34051         (subhi3_real): Likewise.
34052         (cbranchqi4_real): Likewise.  Allow saddr,#imm.
34053         (cbranchhi4_real): Likewise.
34054         (cbranchhi4_real_inverted): Likewise.
34055         (cbranchsi4_real_lt): Likewise.
34056         (cbranchsi4_real_ge): Likewise.
34057         (cbranchsi4_real_ge): Likewise.
34058         * config/rl78/rl78-virt.md (add<mode>3_virt): Likewise.
34059         (sub<mode>3_virt): Likewise.
34060         (cbranchqi4_virt): Likewise.
34061         (cbranchhi4_virt): Likewise.
34062         * config/rl78/rl78.c (rl78_print_operand_1): 'p' modifier means
34063         always use '[reg+imm]' even when imm is zero.
34064         * config/rl78/predicates.md (rl78_volatile_memory_operand): New.
34065         (rl78_general_operand): New.
34066         (rl78_nonimmediate_operand): New.
34067         (rl78_nonfar_operand): Use them.
34068         (rl78_nonfar_nonimm_operand): Likewise.
34069         (rl78_stack_based_mem): Fix.
34070         * config/rl78/constraints.md (Ibqi): New.
34071         (IBqi): New.
34072         (Wsa): New.
34073         (Wsf): New.
34074         (Cs1): Fix.
34075         * config/rl78/rl78-expand.md (andqi3): Accept volatiles.
34076         (iorqi3): Likewise.
34077         (xorqi3): Likewise.
34078         * config/rl78/rl78-protos.h (rl78_sfr_p): New.
34079
34080         * config/rl78/constrains (Qs8): New constraint.
34081         * config/rl78/rl78.c (rl78_flags_already_set): New function.
34082         * config/rl78/rl78-protos.h (rl78_flags_already_set): New prototype.
34083         * config/rl78/rl78-real.md (update_Z): New attribute.
34084         Update patterns to set it.
34085         (cbranchqi4_real): Call rl78_flags_already_set() to determine if a
34086         shorter compare and branch sequence can be used.
34087         (cbranchhi4_real): Likewise.
34088         (cbranchhi4_real_inverted): Likewise.
34089
34090         * config/rl78/predicates.md (uword_operand): Allow symbol_refs.
34091         * config/rl78/rl78-c.c (rl78_register_pragmas): Register __near
34092         address space.
34093         * config/rl78/rl78.c (rl78_get_name_encoding): New.
34094         (rl78_option_override): Allow -mes0 only if C.
34095         (characterize_address): Support subregs of symbol_refs.
34096         (rl78_addr_space_address_mode): Move.  Add __near.
34097         (rl78_far_p): Likewise.
34098         (rl78_addr_space_pointer_mode): Likewise.
34099         (rl78_as_legitimate_address): Likewise.
34100         (rl78_addr_space_subset_p): Likewise.
34101         (rl78_addr_space_convert): Likewise.
34102         (rl78_print_operand_1): Support 16-bit addressing of 32-bit
34103         symbols with -mes0.
34104         (transcode_memory_rtx): Don't copy ES if -mes0.  Allow symbol[BC]
34105         addressing.
34106         (rl78_alloc_physical_registers_op1): Change logic to prefer
34107         symbol[BC] addressing.
34108         (frodata_section): New.
34109         (rl78_asm_init_sections): Initialize it.
34110         (rl78_select_section): Put __far readonly symbols in .frodata.
34111         (rl78_make_type_far): New.
34112         (rl78_insert_attributes): Force all readonly symbols to be
34113         __far when -mes0.
34114         (rl78_asm_out_integer): New.
34115         * config/rl78/rl78.h (ADDR_SPACE_NEAR): New.
34116         * config/rl78/rl78.opt (-mes0): New.
34117
34118         * config/rl78/rl78.h (ASM_OUTPUT_LABELREF): New.
34119         (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
34120         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
34121         * config/rl78/rl78-protos.h (rl78_output_labelref): New.
34122         (rl78_saddr_p): New.
34123         (rl78_output_aligned_common): New.
34124         * config/rl78/rl78.c (rl78_output_symbol_ref): Strip encodings.
34125         (rl78_handle_saddr_attribute): New.
34126         (rl78_handle_naked_attribute): New.
34127         (rl78_attribute_table): Add saddr.
34128         (rl78_print_operand_1): Don't print '!' on saddr operands.
34129         (rl78_print_operand_1): Strip encodings.
34130         (rl78_sfr_p): New.
34131         (rl78_strip_name_encoding): New.
34132         (rl78_attrlist_to_encoding): New.
34133         (rl78_encode_section_info): New.
34134         (rl78_asm_init_sections): New.
34135         (rl78_select_section): New.
34136         (rl78_output_labelref): New.
34137         (rl78_output_aligned_common): New.
34138         (rl78_asm_out_integer): New.
34139         (rl78_asm_ctor_dtor): New.
34140         (rl78_asm_constructor): New.
34141         (rl78_asm_destructor): New.
34142
34143         * config/rl78/rl78-real.md (movqi_es): Rename to movqi_to_es.
34144         * config/rl78/rl78.c (rl78_expand_epilogue): Update.
34145         (transcode_memory_rtx): Update.
34146         (rl78_expand_epilogue): Use A_REG instead of 0.
34147
34148 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
34149
34150         * config/arm/arm-protos.h (struct tune_params): New field
34151         sched_autopref_queue_depth.
34152         * config/arm/arm.c (sched-int.h): Include header.
34153         (arm_first_cycle_multipass_dfa_lookahead_guard,)
34154         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define hook.
34155         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,)
34156         (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,)
34157         (arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,)
34158         (arm_cortex_a53_tune, arm_cortex_a57_tune, arm_xgene1_tune,)
34159         (arm_cortex_a5_tune, arm_cortex_a9_tune, arm_cortex_a12_tune,)
34160         (arm_v7m_tune, arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune):
34161         Specify sched_autopref_queue_depth value.  Enabled for A15 and A57.
34162         * config/arm/t-arm (arm.o): Update.
34163         * haifa-sched.c (update_insn_after_change): Update.
34164         (rank_for_schedule): Use auto-prefetcher model, if requested.
34165         (autopref_multipass_init): New static function.
34166         (autopref_rank_for_schedule): New rank_for_schedule heuristic.
34167         (autopref_multipass_dfa_lookahead_guard_started_dump_p): New static
34168         variable for debug dumps.
34169         (autopref_multipass_dfa_lookahead_guard_1): New static helper function.
34170         (autopref_multipass_dfa_lookahead_guard): New global function that
34171         implements TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD hook.
34172         (init_h_i_d): Update.
34173         * params.def (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH): New tuning knob.
34174         * sched-int.h (enum autopref_multipass_data_status): New const enum.
34175         (autopref_multipass_data_): Structure for auto-prefetcher data.
34176         (autopref_multipass_data_def, autopref_multipass_data_t): New typedefs.
34177         (struct _haifa_insn_data:autopref_multipass_data): New field.
34178         (INSN_AUTOPREF_MULTIPASS_DATA): New access macro.
34179         (autopref_multipass_dfa_lookahead_guard): Declare.
34180
34181 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
34182
34183         * rtlanal.c (get_base_term): Handle SCRATCH.
34184
34185 2015-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
34186
34187         * config/aarch64/aarch64.c
34188         (aarch64_sched_first_cycle_multipass_dfa_lookahead): Implement hook.
34189         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
34190         * config/arm/arm.c
34191         (arm_first_cycle_multipass_dfa_lookahead): Implement hook.
34192         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
34193
34194 2015-01-17  Alan Modra  <amodra@gmail.com>
34195
34196         * cprop.c (do_local_cprop): Disallow replacement of fixed
34197         hard registers.
34198
34199 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34200
34201         PR target/62066
34202         * config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
34203         early return 0.
34204
34205 2015-01-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>
34206
34207         * sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
34208         * tsan.c (instrument_expr): Fixed parameters of __tsan_vptr_update.
34209
34210 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34211
34212         * config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
34213         * config/arm/thumb1.md: ... Here.
34214
34215 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
34216
34217         * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
34218         TImode for TARGET_32BIT.
34219
34220 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
34221
34222         * config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
34223         TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
34224         as ...
34225         (rs6000_abi_word_mode): New function.
34226
34227 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
34228
34229         * config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD
34230         instead of UNITS_PER_WORD to describe the size of stack slots.
34231
34232 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
34233
34234         * config/rs6000/rs6000.c (TARGET_PROMOTE_FUNCTION_MODE): Implement
34235         as rs6000_promote_function_mode.  Move comment to there.
34236         (rs6000_promote_function_mode): New function.
34237
34238 2015-01-16  Segher Boessenkool  <segher@kernel.crashing.org>
34239
34240         * config/rs6000/rs6000.h (PROMOTE_MODE): Correct test for when -m32
34241         -mpowerpc64 is active.
34242
34243 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
34244
34245         PR middle-end/64353
34246         * tree-cfg.c (pass_data_fixup_cfg): Update SSA for
34247         virtuals on start.
34248
34249 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
34250
34251         * config/arm/cortex-a57.md: Remove duplicate of file accidentally
34252         introduced in revision 219724.
34253
34254 2015-01-16  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
34255             Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
34256
34257         PR target/64263
34258         * config/aarch64/aarch64.md (*movsi_aarch64): Don't split if the
34259         destination is not a GP reg.
34260         (*movdi_aarch64): Likewise.
34261
34262 2015-01-16  David Edelsohn  <dje.gcc@gmail.com>
34263
34264         PR target/64623
34265         * config/rs6000/default64.h: Revert ISA change.
34266
34267 2015-01-16  Richard Biener  <rguenther@suse.de>
34268
34269         PR middle-end/64614
34270         * tree-ssa-uninit.c: Include tree-cfg.h.
34271         (MAX_SWITCH_CASES): New define.
34272         (convert_control_dep_chain_into_preds): Handle switch statements.
34273         (is_pred_expr_subset_of): Handle x == CST vs. (x & CST) != 0.
34274         (normalize_one_pred_1): Do not split bit-manipulations.
34275         Record (x & CST).
34276
34277 2015-01-16  Richard Biener  <rguenther@suse.de>
34278
34279         PR tree-optimization/64568
34280         * tree-ssa-forwprop.c (pass_forwprop::execute): Guard
34281         complex load rewriting for TARGET_MEM_REFs.
34282
34283 2015-01-16  Uros Bizjak  <ubizjak@gmail.com>
34284
34285         * builtins.c (expand_builtin_acc_on_device): Check target for NULL.
34286
34287 2015-01-16  Matthew Wahab  <matthew.wahab@arm.com>
34288
34289         PR target/64149
34290         * config/aarch64/aarch64.opt: Remove lra option and aarch64_lra_flag
34291         variable.
34292         * config/aarch64/aarch64.c (TARGET_LRA_P): Set to hook_bool_void_true.
34293         (aarch64_lra_p): Remove.
34294
34295 2015-01-16  Ilya Enkovich  <ilya.enkovich@intel.com>
34296
34297         PR target/64363
34298         * ipa-chkp.h (chkp_instrumentable_p): New.
34299         * ipa-chkp.c: Include tree-inline.h.
34300         (chkp_instrumentable_p): New.
34301         (chkp_maybe_create_clone): Use chkp_instrumentable_p.
34302         Fix processing of not instrumentable functions.
34303         (chkp_versioning): Use chkp_instrumentable_p. Warn about
34304         not instrumentable functions.
34305         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Use
34306         chkp_instrumentable_p.
34307         * tree-inline.h (copy_forbidden): New.
34308         * tree-inline.c (copy_forbidden): Not static anymore.
34309
34310 2015-01-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
34311
34312         * optc-save-gen.awk (cl_target_option_print_diff): Mark indent,
34313         ptr1, ptr2 unused.
34314
34315 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
34316
34317         * lra-constraints.c (curr_insn_transform): Change a reload pseudo of
34318         type OP_OUT to OP_INOUT.
34319
34320 2015-01-16  Robert Suchanek  <robert.suchanek@imgtec.com>
34321
34322         * simplify-rtx.c (simplify_replace_fn_rtx): Simplify (lo_sum
34323         (high x) y) to y if x and y have the same base.
34324
34325 2015-01-16  James Greenhalgh  <james.greenhalgh@arm.com>
34326
34327         * config/arm/cortex-a57.md: New.
34328         * config/aarch64/aarch64.md: Include it.
34329         * config/aarch64/aarch64-cores.def (cortex-a57): Tune for it.
34330         * config/aarch64/aarch64-tune.md: Regenerate.
34331
34332 2015-01-16  Zhenqiang Chen  <zhenqiang.chen@arm.com>
34333
34334         PR target/64015
34335         * ccmp.c (expand_ccmp_next): New function.
34336         (expand_ccmp_expr_1, expand_ccmp_expr): Handle operand insn sequence
34337         and compare insn sequence.
34338         * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
34339         aarch64_gen_ccmp_first, aarch64_gen_ccmp_next): New functions.
34340         (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New MICRO.
34341         * config/aarch64/aarch64.md (*ccmp_and): Changed to ccmp_and<mode>.
34342         (*ccmp_ior): Changed to ccmp_ior<mode>.
34343         (cmp<mode>): New pattern.
34344         * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Update
34345         parameters.
34346         * target.def (gen_ccmp_first, gen_ccmp_next): Update parameters.
34347
34348 2015-01-16  Ilya Tocar  <ilya.tocar@intel.com>
34349
34350         * config/i386/avx2intrin.h (_mm256_bslli_epi128,
34351         _mm256_bsrli_epi128): New.
34352         * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
34353
34354 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
34355
34356         * expmed.c (store_bit_field_using_insv): Improve warning message.
34357         Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED.
34358
34359 2015-01-15  Jiong Wang  <jiong.wang@arm.com>
34360
34361         PR rtl-optimization/64011
34362         * expmed.c (store_bit_field_using_insv): Warn and truncate bitsize when
34363         there is partial overflow.
34364
34365 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
34366
34367         * config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
34368         prototype.
34369         (nds32_expand_epilogue_v3pop): Likewise.
34370         * config/nds32/nds32.md (sibcall): Define this for sibling call
34371         optimization.
34372         (sibcall_register): Likewise.
34373         (sibcall_immediate): Likewise.
34374         (sibcall_value): Likewise.
34375         (sibcall_value_register): Likewise.
34376         (sibcall_value_immediate): Likewise.
34377         (sibcall_epilogue): Likewise.
34378         (epilogue): Pass false to indicate this is not a sibcall epilogue.
34379         * config/nds32/nds32.c (nds32_expand_epilogue): Consider sibcall case.
34380         (nds32_expand_epilogue_v3pop): Likewise.
34381
34382 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
34383
34384         * config/nds32/nds32-protos.h (nds32_can_use_return_insn): New.
34385         * config/nds32/nds32.md (unspec_volatile_func_return): Remove.
34386         (return_internal): New.
34387         (return): Define this named pattern.
34388         (simple_return): Define this named pattern.
34389         * config/nds32/nds32.c (nds32_expand_epilogue): Emit return_internal
34390         pattern instead of unspec_volatile_func_return.
34391         (nds32_expand_epilogue_v3pop): Likewise.
34392         (nds32_can_use_return_insn): New function.
34393
34394 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
34395
34396         * config/nds32/constants.md (UNSPEC_VOLATILE_POP25_RETURN): New.
34397         * config/nds32/nds32.md (pop25return): New.
34398         * config/nds32/nds32.c (nds32_expand_epilogue_v3pop): Emit
34399         pop25return pattern.
34400
34401 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
34402
34403         * doc/invoke.texi (NDS32 Options): Remove -mforce-fp-as-gp,
34404         -mforbid-fp-as-gp, and -mex9 options.
34405
34406 2015-01-16  Chung-Ju Wu  <jasonwucj@gmail.com>
34407
34408         * doc/invoke.texi (NDS32 Options): Add -mcmodel= option and
34409         remove -mgp-direct option.
34410
34411 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
34412
34413         * doc/invoke.texi (--param early-inlining-insns): Update default value.
34414         * params.def (PARAM_EARLY_INLINING_INSNS): Set to 14.
34415
34416 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
34417
34418         * ipa-inline.c (inline_small_functions): Work around hints
34419         cache issue.
34420
34421 2015-01-15  Sandra Loosemore  <sandra@codesourcery.com>
34422
34423         PR target/59710
34424         * doc/invoke.texi (Option Summary): Document new Nios II
34425         -mgpopt= syntax.
34426         (Nios II Options): Likewise.
34427         * config/nios2/nios2.opt: Add -mgpopt= option support.
34428         Modify existing -mgpopt and -mno-gpopt options to be aliases.
34429         * config/nios2/nios2-opts.h (enum nios2_gpopt_type): New.
34430         * config/nios2/nios2.c (nios2_option_override): Adjust
34431         -mgpopt defaulting.
34432         (nios2_in_small_data_p): Return true for explicit small data
34433         sections even with -G0.
34434         (nios2_symbol_ref_in_small_data_p): Adjust to handle new -mgpopt=
34435         option choices.
34436
34437 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
34438
34439         PR ipa/64612
34440         * ipa-inline-transform.c (can_remove_node_now_p): Fix handling
34441         of comdat locals.
34442         (inline_call): Fix removal of aliases.
34443
34444 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
34445
34446         * flag-types.h (enum sanitize_code): Add SANITIZE_VPTR,
34447         include SANITIZE_VPTR in SANITIZE_UNDEFINED.
34448         * opts.c (common_handle_option): Add -fsanitize=vptr.
34449         * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS,
34450         BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS_ABORT): New.
34451         * ubsan.h (enum ubsan_null_ckind): Add UBSAN_DOWNCAST_POINTER,
34452         UBSAN_DOWNCAST_REFERENCE, UBSAN_UPCAST and UBSAN_CAST_TO_VBASE.
34453         (ubsan_expand_vptr_ifn): New prototype.
34454         * internal-fn.c (expand_ANNOTATE, expand_GOMP_SIMD_LANE,
34455         expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE, expand_UBSAN_NULL,
34456         expand_UBSAN_BOUNDS, expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK,
34457         expand_LOOP_VECTORIZED): Make argument nameless, remove
34458         ATTRIBUTE_UNUSED.
34459         (expand_UBSAN_VPTR): New function.
34460         * internal-fn.def (UBSAN_NULL, ASAN_CHECK): Use R instead of W
34461         in fn spec.
34462         (UBSAN_VPTR): New internal function.
34463         * sanopt.c (tree_map_traits): Renamed to ...
34464         (sanopt_tree_map_traits): ... this.
34465         (sanopt_tree_triplet, sanopt_tree_triplet_map_traits): New classes.
34466         (sanopt_ctx): Adjust asan_check_map type for tree_map_traits
34467         to sanopt_tree_map_traits renaming.  Add vptr_check_map field.
34468         (maybe_optimize_ubsan_vptr_ifn): New function.
34469         (sanopt_optimize_walker): Handle IFN_UBSAN_VPTR.
34470         (pass_sanopt::execute): Likewise.  Call sanopt_optimize even for
34471         -fsanitize=vptr.
34472         * tree-ssa-alias.c (call_may_clobber_ref_p_1): Handle certain
34473         internal calls like pure functions for aliasing, even when they
34474         have other side-effects that prevent making them ECF_PURE.
34475         * ubsan.c (ubsan_vptr_type_cache_decl): New variable.
34476         (ubsan_expand_vptr_ifn): New function.
34477
34478 2015-01-15  Vladimir Makarov  <vmakarov@redhat.com>
34479
34480         PR rtl-optimization/64110
34481         * stmt.c (parse_output_constraint): Process '^' and '$'.
34482         (parse_input_constraint): Ditto.
34483         * lra-constraints.c (process_alt_operands): Process the new
34484         constraints.
34485         * ira-costs.c (record_reg_classes): Process the new constraint
34486         '^'.
34487         * genoutput.c (indep_constraints): Add '^' and '$'.
34488         * config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'.
34489         * doc/md.texi: Add description of the new constraints.
34490
34491 2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
34492             Bernd Schmidt  <bernds@codesourcery.com>
34493             Cesar Philippidis  <cesar@codesourcery.com>
34494             James Norris  <jnorris@codesourcery.com>
34495             Tom de Vries  <tom@codesourcery.com>
34496             Ilmir Usmanov  <i.usmanov@samsung.com>
34497             Dmitry Bocharnikov  <dmitry.b@samsung.com>
34498             Evgeny Gavrin  <e.gavrin@samsung.com>
34499             Jakub Jelinek  <jakub@redhat.com>
34500
34501         * builtin-types.def (BT_FN_VOID_INT_INT_VAR)
34502         (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
34503         (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
34504         New function types.
34505         * builtins.c: Include "gomp-constants.h".
34506         (expand_builtin_acc_on_device): New function.
34507         (expand_builtin, is_inexpensive_builtin): Handle
34508         BUILT_IN_ACC_ON_DEVICE.
34509         * builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
34510         New macros.
34511         * cgraph.c (cgraph_node::create): Consider flag_openacc next to
34512         flag_openmp.
34513         * config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
34514         <*-intelmic-* | *-intelmicemul-*> (tm_file): Add
34515         i386/intelmic-offload.h.
34516         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
34517         to libgomp and its dependencies.
34518         * config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
34519         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
34520         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
34521         * config/ia64/hpux.h (LIB_SPEC): Likewise.
34522         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
34523         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
34524         * doc/generic.texi: Update for OpenACC changes.
34525         * doc/gimple.texi: Likewise.
34526         * doc/invoke.texi: Likewise.
34527         * doc/sourcebuild.texi: Likewise.
34528         * gimple-pretty-print.c (dump_gimple_omp_for): Handle
34529         GF_OMP_FOR_KIND_OACC_LOOP.
34530         (dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
34531         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
34532         GF_OMP_TARGET_KIND_OACC_UPDATE,
34533         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
34534         Dump more data.
34535         * gimple.c: Update comments for OpenACC changes.
34536         * gimple.def: Likewise.
34537         * gimple.h: Likewise.
34538         (enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
34539         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
34540         GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
34541         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
34542         (gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
34543         appropriate place.
34544         (is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
34545         * gimplify.c: Include "gomp-constants.h".
34546         Update comments for OpenACC changes.
34547         (is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
34548         OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
34549         OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
34550         (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
34551         OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
34552         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
34553         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
34554         OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
34555         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
34556         OMP_CLAUSE_SEQ.
34557         (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
34558         GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
34559         OMP_CLAUSE_SET_MAP_KIND.
34560         (gimplify_oacc_cache): New function.
34561         (gimplify_omp_for): Handle OACC_LOOP.
34562         (gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
34563         OACC_DATA.
34564         (gimplify_omp_target_update): Handle OACC_ENTER_DATA,
34565         OACC_EXIT_DATA, OACC_UPDATE.
34566         (gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
34567         OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
34568         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
34569         (gimplify_body): Consider flag_openacc next to flag_openmp.
34570         * lto-streamer-out.c: Include "gomp-constants.h".
34571         * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
34572         (BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
34573         (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
34574         (BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
34575         (BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
34576         (BUILT_IN_ACC_ON_DEVICE): New builtins.
34577         * omp-low.c: Include "gomp-constants.h".
34578         Update comments for OpenACC changes.
34579         (struct omp_context): Add reduction_map, gwv_below, gwv_this
34580         members.
34581         (extract_omp_for_data, use_pointer_for_field, install_var_field)
34582         (new_omp_context, delete_omp_context, scan_sharing_clauses)
34583         (create_omp_child_function, scan_omp_for, scan_omp_target)
34584         (check_omp_nesting_restrictions, lower_reduction_clauses)
34585         (build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
34586         Update for OpenACC changes.
34587         (scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
34588         OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
34589         OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
34590         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
34591         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
34592         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ.  Use GOMP_MAP_* instead of
34593         OMP_CLAUSE_MAP_*.
34594         (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
34595         Handle GF_OMP_FOR_KIND_OACC_LOOP.
34596         (expand_omp_target, lower_omp_target): Handle
34597         GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
34598         GF_OMP_TARGET_KIND_OACC_UPDATE,
34599         GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
34600         GF_OMP_TARGET_KIND_OACC_DATA.
34601         (pass_expand_omp::execute, execute_lower_omp)
34602         (pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
34603         flag_openmp.
34604         (offload_symbol_decl): New variable.
34605         (oacc_get_reduction_array_id, oacc_max_threads)
34606         (get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
34607         (maybe_lookup_oacc_reduction, enclosing_target_ctx)
34608         (oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
34609         (oacc_gimple_assign, oacc_initialize_reduction_data)
34610         (oacc_finalize_reduction_data, oacc_process_reduction_data): New
34611         functions.
34612         (is_targetreg_ctx): Remove function.
34613         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
34614         OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
34615         OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
34616         OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
34617         OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
34618         OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
34619         * tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
34620         * tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
34621         (OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
34622         (OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
34623         (OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
34624         (OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
34625         * tree-core.h: Update comments for OpenACC changes.
34626         (enum omp_clause_map_kind): Remove.
34627         (struct tree_omp_clause): Change type of map_kind member from enum
34628         omp_clause_map_kind to unsigned char.
34629         * tree-inline.c: Update comments for OpenACC changes.
34630         * tree-nested.c: Likewise.  Include "gomp-constants.h".
34631         (convert_nonlocal_reference_stmt, convert_local_reference_stmt)
34632         (convert_tramp_reference_stmt, convert_gimple_call): Update for
34633         OpenACC changes.  Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*.  Use
34634         OMP_CLAUSE_SET_MAP_KIND.
34635         * tree-pretty-print.c: Include "gomp-constants.h".
34636         (dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
34637         OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
34638         OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
34639         OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
34640         OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
34641         OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT.  Use GOMP_MAP_*
34642         instead of OMP_CLAUSE_MAP_*.
34643         (dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
34644         OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
34645         OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
34646         * tree-streamer-in.c: Include "gomp-constants.h".
34647         (unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
34648         OMP_CLAUSE_MAP_*.  Use OMP_CLAUSE_SET_MAP_KIND.
34649         * tree-streamer-out.c: Include "gomp-constants.h".
34650         (pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
34651         OMP_CLAUSE_MAP_*.
34652         * tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
34653         (OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
34654         (OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
34655         * tree.c (omp_clause_num_ops): Update accordingly.
34656         * tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
34657         Likewise.
34658         (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
34659         (OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
34660         (OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
34661         (OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
34662         (OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
34663         (OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
34664         * tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
34665         (OMP_CLAUSE_SET_MAP_KIND): New macro.
34666         * varpool.c (varpool_node::get_create): Consider flag_openacc next
34667         to flag_openmp.
34668         * config/i386/intelmic-offload.h: New file.
34669         * config/nvptx/offload.h: Likewise.
34670
34671 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
34672
34673         * explow.h: Remove duplicate contents.
34674         * dojump.h: Likewise.
34675
34676 2015-01-15  Richard Earnshaw  <rearnsha@arm.com>
34677
34678         * arm.c (arm_xgene_tune): Add default initializer for instruction
34679         fusion.
34680
34681 2015-01-15  Jan Hubicka  <hubicka@ucw.cz>
34682
34683         PR ipa/64068
34684         PR ipa/64559
34685         * ipa.c (symbol_table::remove_unreachable_nodes):
34686         Do not put abstract origins into boundary.
34687
34688 2015-01-15  Evgeny Stupachenko  <evstupac@gmail.com>
34689
34690         * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
34691         * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.
34692
34693 2015-01-15  Steve Ellcey  <sellcey@mips.com>
34694
34695         * Makefile.in (PLUGIN_HEADERS): Add dominance.h, cfg.h, cfgrtl.h,
34696         cfganal.h, cfgbuild.h, cfgcleanup.h, lcm.h, cfgloopmanip.h,
34697         builtins.def, and chkp-builtins.def.
34698
34699 2015-01-15  David Edelsohn  <dje.gcc@gmail.com>
34700
34701         * config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
34702         ISA 2.7 (POWER8).
34703
34704 2015-01-15  Richard Biener  <rguenther@suse.de>
34705
34706         PR tree-optimization/61743
34707         * tree-ssa-pre.c (insert_into_preds_of_block): Preserve range
34708         information on PHIs for some simple cases.
34709
34710 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
34711
34712         * config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
34713         Include xgene1.md.
34714         * config/arm/arm.c (arm_issue_rate): Specify 4 for xgene1.
34715         * config/arm/arm-cores.def (xgene1): New entry.
34716         * config/arm/arm-tables.opt: Regenerate.
34717         * config/arm/arm-tune.md: Regenerate.
34718         * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=xgene1.
34719
34720 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
34721
34722         * tree-if-conv.c: Include hash-map.h.
34723         (aggressive_if_conv): New variable.
34724         (fold_build_cond_expr): Add simplification of non-zero condition.
34725         (add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
34726         destination block is not always executed.
34727         (if_convertible_phi_p): Fix commentary, allow phi nodes have more
34728         than two predecessors if AGGRESSIVE_IF_CONV is true.
34729         (if_convertible_stmt_p): Fix commentary.
34730         (all_preds_critical_p): New function.
34731         (has_pred_critical_p): New function.
34732         (if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
34733         BB can have more than two predecessors and all incoming edges can be
34734         critical.
34735         (predicate_bbs): Skip predication for loop exit block, use build2_loc
34736         to compute predicate for true edge.
34737         (find_phi_replacement_condition): Delete this function.
34738         (is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
34739         Allow interchange PHI arguments if EXTENDED is false.
34740         Change check that block containing reduction statement candidate
34741         is predecessor of phi-block since phi may have more than two arguments.
34742         (phi_args_hash_traits): New helper structure.
34743         (struct phi_args_hash_traits): New type.
34744         (phi_args_hash_traits::hash): New function.
34745         (phi_args_hash_traits::equal_keys): New function.
34746         (gen_phi_arg_condition): New function.
34747         (predicate_scalar_phi): Add handling of phi nodes with more than two
34748         arguments, delete COND and TRUE_BB arguments, insert body of
34749         find_phi_replacement_condition to predicate ordinary phi nodes.
34750         (predicate_all_scalar_phis): Skip blocks with the only predecessor,
34751         delete call of find_phi_replacement_condition and invoke
34752         predicate_scalar_phi with two arguments.
34753         (insert_gimplified_predicates): Add assert that non-predicated block
34754         don't have statements to insert.
34755         (ifcvt_split_critical_edges): New function.
34756         (ifcvt_split_def_stmt): Likewise.
34757         (ifcvt_walk_pattern_tree): Likewise.
34758         (stmt_is_root_of_bool_pattern): Likewise.
34759         (ifcvt_repair_bool_pattern): Likewise.
34760         (ifcvt_local_dce): Likewise.
34761         (tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
34762         is copy of inner or outer loop force_vectorize field, invoke
34763         ifcvt_split_critical_edges, ifcvt_local_dce and
34764         ifcvt_repair_bool_pattern for aggressive if-conversion.
34765
34766 2015-01-15  Philipp Tomsich  <ptomsich@theobroma-systems.com>
34767
34768         * config/aarch64/aarch64.md: Include xgene1.md.
34769         * config/aarch64/xgene1.md: New file.
34770
34771 2015-01-15  Philipp Tomsich  <philipp.tomsich@theobroma-systems.com>
34772
34773         * config/aarch64/aarch64-cores.def (xgene1): Update/add the
34774         xgene1 (APM XGene-1) core definition.
34775         * config/aarch64/aarch64.c: Add cost tables for APM XGene-1
34776         * config/arm/aarch-cost-tables.h: Add cost tables for APM XGene-1
34777         * doc/invoke.texi: Document -mcpu=xgene1.
34778
34779 2015-01-15  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
34780
34781         * dojump.h: New header file.
34782         * explow.h: Likewise.
34783         * expr.h: Remove includes.
34784         Move expmed.c prototypes to expmed.h.
34785         Move dojump.c prototypes to dojump.h.
34786         Move alias.c prototypes to alias.h.
34787         Move explow.c prototypes to explow.h.
34788         Move calls.c prototypes to calls.h.
34789         Move emit-rtl.c prototypes to emit-rtl.h.
34790         Move varasm.c prototypes to varasm.h.
34791         Move stmt.c prototypes to stmt.h.
34792         (saved_pending_stack_adjust): Move to dojump.h.
34793         (adjust_address): Move to explow.h.
34794         (adjust_address_nv): Move to emit-rtl.h.
34795         (adjust_bitfield_address): Likewise.
34796         (adjust_bitfield_address_size): Likewise.
34797         (adjust_bitfield_address_nv): Likewise.
34798         (adjust_automodify_address_nv): Likewise.
34799         * explow.c (expr_size): Move to expr.c.
34800         (int_expr_size): Likewise.
34801         (tree_expr_size): Likewise.
34802         Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34803         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
34804         * genemit.c (main): Generate includes statistics.h, real.h,
34805         fixed-value.h, insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
34806         stmt.h.
34807         * genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h,
34808         function.h, statistics.h, real.h, fixed-value.h, expmed.h, dojump.h,
34809         explow.h, emit-rtl.h, stmt.h.
34810         * genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
34811         fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
34812         * genemit.c (open_base_files): Generate includes flags.h, statistics.h,
34813         real.h, fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h,
34814         emit-rtl.h, varasm.h, stmt.h.
34815         * config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h,
34816         hash-set.h, vec.h, machmode.h, tm.h, hard-reg-set.h, input.h,
34817         function.h, rtl.h, flags.h, statistics.h, double-int.h, real.h,
34818         fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h, insn-config.h,
34819         expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
34820         * config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
34821         double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
34822         function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
34823         insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
34824         tm.h tree.h varasm.h vec.h wide-int.h.
34825         * rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
34826         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
34827         hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
34828         real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
34829         * cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h
34830         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h
34831         insn-config.h real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
34832         * loop-iv.c: Likewise.
34833         * lra-assigns.c: Include alias.h calls.h dojump.h double-int.h
34834         emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h real.h
34835         statistics.h stmt.h tree.h varasm.h wide-int.h.
34836         * lra-constraints.c: Likewise.
34837         * lra-eliminations.c: Likewise.
34838         * lra-lives.c: Likewise.
34839         * lra-remat.c: Likewise.
34840         * bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
34841         explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
34842         statistics.h stmt.h tree.h varasm.h wide-int.h.
34843         * hw-doloop.c: Likewise.
34844         * ira-color.c: Likewise.
34845         * ira-emit.c: Likewise.
34846         * loop-doloop.c: Likewise.
34847         * loop-invariant.c: Likewise.
34848         * reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
34849         explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
34850         statistics.h stmt.h tree.h varasm.h wide-int.h.
34851         * caller-save.c: Include alias.h calls.h dojump.h double-int.h
34852         emit-rtl.h explow.h expmed.h fixed-value.h inchash.h real.h
34853         statistics.h stmt.h tree.h varasm.h wide-int.h.
34854         * combine-stack-adj.c: Likewise.
34855         * cse.c: Likewise.
34856         * ddg.c: Likewise.
34857         * ifcvt.c: Likewise.
34858         * ira-costs.c: Likewise.
34859         * jump.c: Likewise.
34860         * lra-coalesce.c: Likewise.
34861         * lra-spills.c: Likewise.
34862         * profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
34863         explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
34864         stmt.h varasm.h wide-int.h.
34865         * lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
34866         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
34867         varasm.h.
34868         * config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
34869         double-int.h explow.h expmed.h fixed-value.h flags.h real.h
34870         statistics.h stmt.h varasm.h wide-int.h.
34871         * reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
34872         expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
34873         varasm.h wide-int.h.
34874         * reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
34875         expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
34876         * config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
34877         emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
34878         statistics.h stmt.h.
34879         * config/tilepro/tilepro.c: Likewise.
34880         * config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
34881         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
34882         * config/pdp11/pdp11.c: Likewise.
34883         * config/xtensa/xtensa.c: Likewise.
34884         * config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
34885         explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
34886         varasm.h.
34887         * tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34888         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
34889         insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
34890         * cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34891         fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
34892         insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
34893         * rtl-chkp.c: Likewise.
34894         * tree-chkp-opt.c: Likewise.
34895         * config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h
34896         explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
34897         hashtab.h insn-config.h real.h statistics.h stmt.h varasm.h.
34898         * ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34899         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
34900         statistics.h stmt.h.
34901         * tree-vect-data-refs.c: Likewise.
34902         * graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
34903         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
34904         rtl.h statistics.h stmt.h varasm.h.
34905         * internal-fn.c: Likewise.
34906         * ipa-icf-gimple.c: Likewise.
34907         * lto-section-out.c: Likewise.
34908         * tree-data-ref.c: Likewise.
34909         * tree-nested.c: Likewise.
34910         * tree-outof-ssa.c: Likewise.
34911         * tree-predcom.c: Likewise.
34912         * tree-pretty-print.c: Likewise.
34913         * tree-scalar-evolution.c: Likewise.
34914         * tree-ssa-strlen.c: Likewise.
34915         * tree-vect-loop.c: Likewise.
34916         * tree-vect-patterns.c: Likewise.
34917         * tree-vect-slp.c: Likewise.
34918         * tree-vect-stmts.c: Likewise.
34919         * tsan.c: Likewise.
34920         * targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34921         fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
34922         stmt.h.
34923         * config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
34924         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
34925         statistics.h stmt.h varasm.h.
34926         * loop-unroll.c: Likewise.
34927         * ubsan.c: Likewise.
34928         * tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
34929         expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
34930         stmt.h varasm.h.
34931         * dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34932         fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
34933         * tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
34934         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
34935         statistics.h stmt.h.
34936         * generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
34937         expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
34938         statistics.h stmt.h varasm.h.
34939         * gimple-match-head.c: Likewise.
34940         * lto-cgraph.c: Likewise.
34941         * lto-section-in.c: Likewise.
34942         * lto-streamer-in.c: Likewise.
34943         * lto-streamer-out.c: Likewise.
34944         * tree-affine.c: Likewise.
34945         * tree-cfg.c: Likewise.
34946         * tree-cfgcleanup.c: Likewise.
34947         * tree-if-conv.c: Likewise.
34948         * tree-into-ssa.c: Likewise.
34949         * tree-ssa-alias.c: Likewise.
34950         * tree-ssa-copyrename.c: Likewise.
34951         * tree-ssa-dse.c: Likewise.
34952         * tree-ssa-forwprop.c: Likewise.
34953         * tree-ssa-live.c: Likewise.
34954         * tree-ssa-math-opts.c: Likewise.
34955         * tree-ssa-pre.c: Likewise.
34956         * tree-ssa-sccvn.c: Likewise.
34957         * tree-tailcall.c: Likewise.
34958         * tree-vect-generic.c: Likewise.
34959         * tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34960         fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
34961         * stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34962         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
34963         * varasm.c: Likewise.
34964         * coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34965         fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
34966         varasm.h.
34967         * init-regs.c: Likewise.
34968         * ira.c: Likewise.
34969         * omp-low.c: Likewise.
34970         * stack-ptr-mod.c: Likewise.
34971         * tree-ssa-reassoc.c: Likewise.
34972         * tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34973         fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
34974         varasm.h.
34975         * dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34976         fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
34977         * shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34978         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
34979         * recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34980         fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
34981         * tree-ssa-phiopt.c: Likewise.
34982         * config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34983         fixed-value.h hashtab.h real.h statistics.h stmt.h.
34984         * config/fr30/fr30.c: Likewise.
34985         * config/frv/frv.c: Likewise.
34986         * expr.c: Likewise.
34987         * final.c: Likewise.
34988         * optabs.c: Likewise.
34989         * passes.c: Likewise.
34990         * simplify-rtx.c: Likewise.
34991         * stmt.c: Likewise.
34992         * toplev.c: Likewise.
34993         * var-tracking.c: Likewise.
34994         * gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34995         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
34996         * lower-subreg.c: Likewise.
34997         * postreload-gcse.c: Likewise.
34998         * ree.c: Likewise.
34999         * reginfo.c: Likewise.
35000         * store-motion.c: Likewise.
35001         * combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
35002         fixed-value.h hashtab.h real.h stmt.h varasm.h.
35003         * emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
35004         fixed-value.h hashtab.h statistics.h stmt.h.
35005         * dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
35006         fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
35007         * except.c: Likewise.
35008         * explow.c: Likewise.
35009         * tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
35010         fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
35011         varasm.h.
35012         * gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
35013         fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
35014         * tree-ssa-structalias.c: Likewise.
35015         * cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
35016         fixed-value.h insn-config.h real.h statistics.h.
35017         * calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
35018         fixed-value.h insn-config.h real.h statistics.h stmt.h.
35019         * bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
35020         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
35021         * cfgbuild.c: Likewise.
35022         * function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
35023         fixed-value.h real.h rtl.h statistics.h stmt.h.
35024         * cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
35025         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
35026         * dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
35027         fixed-value.h real.h statistics.h stmt.h.
35028         * auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
35029         fixed-value.h real.h statistics.h stmt.h varasm.h.
35030         * cprop.c: Likewise.
35031         * modulo-sched.c: Likewise.
35032         * postreload.c: Likewise.
35033         * ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
35034         flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
35035         statistics.h stmt.h varasm.h.
35036         * gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
35037         explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
35038         rtl.h statistics.h stmt.h varasm.h.
35039         * tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
35040         fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
35041         varasm.h.
35042         * expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
35043         function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
35044         varasm.h.
35045         * target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
35046         fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
35047         varasm.h.
35048         * tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
35049         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
35050         * cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
35051         function.h real.h statistics.h stmt.h varasm.h.
35052         * alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
35053         insn-config.h real.h statistics.h stmt.h.
35054         * dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
35055         statistics.h stmt.h.
35056         * config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
35057         fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
35058         statistics.h stmt.h varasm.h.
35059         * gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h
35060         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
35061         * asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
35062         flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
35063         * ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
35064         fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
35065         statistics.h stmt.h varasm.h.
35066         * ipa-polymorphic-call.c: Likewise.
35067         * config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h
35068         expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
35069         statistics.h stmt.h.
35070         * config/c6x/c6x.c: Likewise.
35071         * config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h
35072         explow.h expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
35073         statistics.h stmt.h varasm.h.
35074         * ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h
35075         fixed-value.h hashtab.h insn-config.h real.h rtl.h statistics.h
35076         stmt.h varasm.h.
35077         * ipa-split.c: Likewise.
35078         * tree-eh.c: Likewise.
35079         * tree-ssa-dce.c: Likewise.
35080         * tree-ssa-loop-niter.c: Likewise.
35081         * tree-vrp.c: Likewise.
35082         * config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
35083         expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
35084         stmt.h.
35085         * config/nds32/nds32-fp-as-gp.c: Likewise.
35086         * config/nds32/nds32-intrinsic.c: Likewise.
35087         * config/nds32/nds32-isr.c: Likewise.
35088         * config/nds32/nds32-md-auxiliary.c: Likewise.
35089         * config/nds32/nds32-memory-manipulation.c: Likewise.
35090         * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
35091         * config/nds32/nds32-predicates.c: Likewise.
35092         * config/nds32/nds32.c: Likewise.
35093         * config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
35094         fixed-value.h hashtab.h real.h statistics.h.
35095         * config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
35096         fixed-value.h hashtab.h real.h statistics.h stmt.h.
35097         * config/arm/arm.c: Likewise.
35098         * config/avr/avr.c: Likewise.
35099         * config/bfin/bfin.c: Likewise.
35100         * config/h8300/h8300.c: Likewise.
35101         * config/i386/i386.c: Likewise.
35102         * config/ia64/ia64.c: Likewise.
35103         * config/iq2000/iq2000.c: Likewise.
35104         * config/m32c/m32c.c: Likewise.
35105         * config/m32r/m32r.c: Likewise.
35106         * config/m68k/m68k.c: Likewise.
35107         * config/mcore/mcore.c: Likewise.
35108         * config/mep/mep.c: Likewise.
35109         * config/mips/mips.c: Likewise.
35110         * config/mn10300/mn10300.c: Likewise.
35111         * config/moxie/moxie.c: Likewise.
35112         * config/pa/pa.c: Likewise.
35113         * config/rl78/rl78.c: Likewise.
35114         * config/rx/rx.c: Likewise.
35115         * config/s390/s390.c: Likewise.
35116         * config/sh/sh.c: Likewise.
35117         * config/sparc/sparc.c: Likewise.
35118         * config/spu/spu.c: Likewise.
35119         * config/stormy16/stormy16.c: Likewise.
35120         * config/v850/v850.c: Likewise.
35121         * config/vax/vax.c: Likewise.
35122         * config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
35123         fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
35124         * config/msp430/msp430.c: Likewise.
35125         * predict.c: Likewise.
35126         * value-prof.c: Likewise.
35127         * config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
35128         expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
35129         * config/microblaze/microblaze.c: Likewise.
35130         * config/nios2/nios2.c: Likewise.
35131         * config/rs6000/rs6000.c: Likewise.
35132         * tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
35133         insn-config.h real.h rtl.h statistics.h stmt.h.
35134         * cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
35135         insn-config.h real.h statistics.h stmt.h.
35136         * fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
35137         fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
35138         * tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
35139         fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
35140         * builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h
35141         fixed-value.h real.h statistics.h stmt.h.
35142         * config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
35143         fixed-value.h statistics.h stmt.h.
35144         * config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
35145         stmt.h.
35146
35147 2015-01-15  Jakub Jelinek  <jakub@redhat.com>
35148
35149         * gengtype.c (create_user_defined_type): Workaround
35150         -Wmaybe-uninitialized false positives.
35151         * cse.c (fold_rtx): Likewise.
35152         * loop-invariant.c (gain_for_invariant): Likewise.
35153
35154 2015-01-15  Eric Botcazou  <ebotcazou@adacore.com>
35155
35156         * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
35157         set the memory attributes in all cases but clear MEM_EXPR if need be.
35158
35159 2015-01-15  Yuri Rumyantsev  <ysrumyan@gmail.com>
35160
35161         PR tree-optimization/64434
35162         * cfgexpand.c (reorder_operands): New function.
35163         (expand_gimple_basic_block): Insert call of reorder_operands if
35164         optimized is true.
35165
35166 2015-01-15  Matthew Fortune  <matthew.fortune@imgtec.com>
35167
35168         * config/mips/micromips.md (*swp): Remove explicit parallel.
35169         (jraddiusp, *movep<MOVEP1:mode><MOVEP2:mode>): Likewise.
35170         * config/mips/mips-dsp.md (add<DSPV:mode>3): Likewise.
35171         (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>, sub<DSPV:mode>3): Likewise.
35172         (mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc): Likewise.
35173         (mips_addwc, mips_absq_s_<DSPQ:dspfmt2>): Likewise.
35174         (mips_precrq_rs_ph_w, mips_precrqu_s_qb_ph): Likewise.
35175         (mips_shll_<DSPV:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>): Likewise.
35176         (mips_muleu_s_ph_qbl, mips_muleu_s_ph_qbr): Likewise.
35177         (mips_mulq_rs_ph, mips_muleq_s_w_phl, mips_muleq_s_w_phr): Likewise.
35178         (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph): Likewise.
35179         (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_s_w_phl): Likewise.
35180         (mips_maq_s_w_phr, mips_maq_sa_w_phl, mips_maq_sa_w_phr): Likewise.
35181         (mips_extr_w, mips_extr_r_w, mips_extr_rs_w): Likewise.
35182         (mips_extr_s_h, mips_extp, mips_extpdp, mips_mthlip): Likewise.
35183         (mips_wrdsp): Likewise.
35184         * config/mips/mips-dspr2.md (mips_absq_s_qb): Remove explicit
35185         parallel.
35186         (mips_addu_ph, mips_addu_s_ph, mips_cmpgdu_eq_qb): Likewise.
35187         (mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb, mulv2hi3): Likewise.
35188         (mips_mul_s_ph, mips_mulq_rs_w, mips_mulq_s_ph): Likewise.
35189         (mips_mulq_s_w, mips_subu_ph, mips_subu_s_ph): Likewise.
35190         (mips_dpaqx_s_w_ph, mips_dpaqx_sa_w_ph): Likewise.
35191         (mips_dpsqx_s_w_ph, mips_dpsqx_sa_w_ph): Likewise.
35192         * config/mips/mips-fixed.md (usadd<mode>3): Remove explicit parallel.
35193         (ssadd<mode>3, ussub<mode>3, sssub<mode>3, ssmul<mode>3): Likewise.
35194         (ssmaddsqdq4, ssmsubsqdq4): Likewise.
35195
35196 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
35197
35198         * config/mips/mips.c (mips_rtx_costs): Set costs for LSA/DLSA.
35199         (mips_print_operand): Support 'y' to print exact log2 in decimal
35200         of a const_int.
35201         * config/mips/mips.h (ISA_HAS_LSA): New define.
35202         (ISA_HAS_DLSA): Likewise.
35203         * config/mips/mips.md (<GPR:d>lsa): New define_insn.
35204         * config/mips/predicates.md (const_immlsa_operand): New predicate.
35205
35206 2015-01-15  Martin Liska  <mliska@suse.cz>
35207
35208         PR target/64377
35209         * optc-save-gen.awk: Add support for array types.
35210
35211 2015-01-15  Richard Biener  <rguenther@suse.de>
35212
35213         PR middle-end/64365
35214         * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
35215         for MEM_REF access functions with the same base can never partially
35216         overlap.
35217
35218 2015-01-14  Marcos Diaz <marcos.diaz@tallertechnologies.com>
35219
35220         * common.opt: New option -fstack-protector-explicit.
35221         * cfgexpand.c (SPCT_FLAG_EXPLICIT): New enum.
35222         (stack_protect_decl_phase): Handle stack_protect attribute for
35223         explicit stack protection requests.
35224         (expand_used_vars): Similarly.
35225         * doc/cpp.texi (__SSP_EXPLICIT__): Document predefined macro.
35226         * doc/extend.texi: Add documentation for "stack_protect" attribute.
35227         * doc/invoke.texi: Add documentation for -fstack-protector-explicit.
35228
35229 2015-01-14  Oleg Endo  <olegendo@gcc.gnu.org>
35230
35231         PR target/53988
35232         * config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
35233         reg-reg copies.
35234         (sh_extending_set_of_reg): New struct.
35235         (sh_find_extending_set_of_reg, sh_split_tst_subregs,
35236         sh_remove_reg_dead_or_unused_notes): New Declarations.
35237         * config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
35238         sh_find_extending_set_of_reg, sh_split_tst_subregs,
35239         sh_extending_set_of_reg::use_as_extended_reg): New functions.
35240         * config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
35241         convert to insn_and_split and use new function sh_split_tst_subregs.
35242
35243 2015-01-14  Sandra Loosemore  <sandra@codesourcery.com>
35244
35245         * doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
35246         option.
35247         (Optimization Options): Move -fuse-ld documentation to...
35248         (Link Options): ...here.
35249
35250 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
35251
35252         * config/mips/constraints.md (ZC): Add support for R6 LL/SC
35253         offsets.
35254         (ZD): Update to use ISA_HAS_9BIT_DISPLACEMENT.
35255         * config/mips/mips.h (ISA_HAS_PREFETCH_9BIT): Rename to...
35256         (ISA_HAS_9BIT_DISPLACEMENT): ... this. New macro.
35257         * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZC
35258         instead of ZR for the memory operand of LL/SC.
35259         (compare_and_swap_12, sync_add<mode>): Likewise.
35260         (sync_<optab>_12, sync_old_<optab>_12): Likewise.
35261         (sync_new_<optab>_12, sync_nand_12): Likewise.
35262         (sync_old_nand_12, sync_new_nand_12): Likewise.
35263         (sync_sub<mode>, sync_old_add<mode>): Likewise.
35264         (sync_old_sub<mode>, sync_new_add<mode>): Likewise.
35265         (sync_new_sub<mode>, sync_<optab><mode>): Likewise.
35266         (sync_old_<optab><mode>, sync_new_<optab><mode>"): Likewise.
35267         (sync_nand<mode>, sync_old_nand<mode>): Likewise.
35268         (sync_new_nand<mode>, sync_lock_test_and_set<mode>): Likewise.
35269         (test_and_set_12, atomic_compare_and_swap<mode>): Likewise.
35270         (atomic_exchange<mode>_llsc, atomic_fetch_add<mode>_llsc): Likewise.
35271         * doc/md.texi (ZC): Update description.
35272
35273 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
35274
35275         * builtins.c (expand_builtin_atomic_exchange): Remove error when
35276         memory model is CONSUME.
35277         (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
35278         expand_builtin_atomic_store): Change invalid memory model errors to
35279         warnings.
35280         (expand_builtin_atomic_clear): Change invalid model errors to warnings
35281         and issue warning for CONSUME.
35282
35283 2015-01-14  Aldy Hernandez  <aldyh@redhat.com>
35284
35285         * lto-cgraph: Update function comments for
35286         lto_symtab_encoder_encode_*.
35287
35288 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
35289
35290         * Makefile.in (site.exp): Do not set ENABLE_LTO.
35291
35292 2015-01-14  Ilya Verbin  <ilya.verbin@intel.com>
35293
35294         * cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
35295         * lto-cgraph.c (select_what_to_stream): Remove argument, use
35296         lto_stream_offload_p instead.
35297         * lto-streamer.h (select_what_to_stream): Remove argument.
35298         * passes.c (ipa_write_summaries): Likewise.
35299         * tree-pass.h (ipa_write_summaries): Likewise.
35300
35301 2015-01-14  Richard Biener  <rguenther@suse.de>
35302
35303         PR tree-optimization/59354
35304         * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
35305         groups larger than the slp group size as having gaps.
35306
35307 2015-01-14  Andrew MacLeod  <amacleod@redhat.com>
35308
35309         PR middle-end/59448
35310         * builtins.c (get_memmodel): Promote consume to acquire always.
35311
35312 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
35313
35314         PR target/64386
35315         * config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
35316         V32HImode.
35317
35318 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
35319
35320         PR target/64393
35321         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
35322         Enable AVX512BW.
35323         (OPTION_MASK_ISA_AVX512BW_UNSET): Disable AVX512VBMI.
35324         * config/i386/i386.c (ix86_hard_regno_mode_ok): Don't check
35325         AVX512VBMI, as it implies AVX512BW.
35326
35327 2015-01-14  Ilya Tocar  <ilya.tocar@intel.com>
35328
35329         PR target/64387
35330         * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
35331         (vec_unpacks_hi_v16sf): Ditto.
35332
35333 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35334
35335         * config/aarch64/arm_neon.h: Error out if AdvancedSIMD
35336         is not available.
35337
35338 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35339
35340         * doc/invoke.texi (mapcs): Mention deprecation.
35341         (mapcs-frame): Likewise.
35342
35343 2015-01-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
35344
35345         PR target/64453
35346         * config/arm/arm.c (callee_saved_reg_p): Define.
35347         (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
35348         register is callee saved instead of !call_used_regs[reg].
35349         (thumb1_compute_save_reg_mask): Likewise.
35350
35351 2015-01-14  Hale Wang  <hale.wang@arm.com>
35352
35353         * config/arm/arm.c: Tune the max_cond_insns/branch_cost for
35354         Cortex-M7.
35355
35356 2015-01-14  Richard Biener  <rguenther@suse.de>
35357
35358         PR lto/64415
35359         * tree-inline.c (insert_debug_decl_map): Check destination
35360         function MAY_HAVE_DEBUG_STMTS.
35361         (insert_init_debug_bind): Likewise.
35362         (insert_init_stmt): Remove redundant check.
35363         (remap_gimple_stmt): Drop debug stmts if the destination
35364         function has var-tracking assignments disabled.
35365
35366 2015-01-14  Martin Liska  <mliska@suse.cz>
35367
35368         * ipa-icf-gimple.c (func_checker::compare_operand): Add support for
35369         IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.
35370
35371 2015-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35372
35373         PR target/64460
35374         * config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
35375         (*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.
35376
35377 2015-01-14  Matthew Fortune  <matthew.fortune@imgtec.com>
35378
35379         * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Only infer an ISA
35380         level from an ARCH; do not inject the default.
35381         (MIPS_DEFAULT_ISA_LEVEL_SPEC): New macro split out from
35382         MIPS_ISA_LEVEL_SPEC.
35383         (MIPS_ISA_NAN2008_SPEC): Update comment.
35384         (BASE_DRIVER_SELF_SPECS): Likewise.
35385         * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add
35386         MIPS_DEFAULT_ISA_LEVEL_SPEC.
35387         * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Likewise.
35388         * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise.
35389         * config/mips/sde.h (DRIVER_SELF_SPECS): Likewise.
35390
35391 2015-01-14  Richard Biener  <rguenther@suse.de>
35392
35393         PR tree-optimization/64493
35394         PR tree-optimization/64495
35395         * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
35396         assign the proper vectorized PHI to the inner loop exit PHIs.
35397
35398 2015-01-14  Joey Ye  <joey.ye@arm.com>
35399
35400         * config/arm/arm.c (arm_compute_save_reg_mask):
35401         Do not save lr in case of tail call.
35402         * config/arm/thumb2.md (*thumb2_pop_single): New pattern.
35403
35404 2015-01-14  Martin Uecker <uecker@eecs.berkeley.edu>
35405
35406         * tree-vrp.c (check_array_ref): Emit more warnings
35407         for warn_array_bounds >= 2.
35408         * common.opt: New option -Warray-bounds=.
35409         * doc/invoke.texi: Document -Warray-bounds=.
35410
35411 2015-01-14  Chung-Ju Wu  <jasonwucj@gmail.com>
35412
35413         * config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
35414         (mforbid-fp-as-gp): Remove.
35415         (mex9): Remove.
35416         * config/nds32/nds32-fp-as-gp.c (nds32_have_prologue_p): Remove.
35417         (nds32_symbol_load_store_p): Remove.
35418         (nds32_fp_as_gp_check_available): Clean up implementation.
35419         * config/nds32/nds32.h (LINK_SPEC): Remove -mforce-as-gp and -mex9
35420         cases.
35421         * config/nds32/nds32.c (nds32_asm_file_start): No need to consider
35422         fp-as-gp and ex9 cases.
35423
35424 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
35425
35426         * tree-profile.c (init_ic_make_global_vars): Drop workaround
35427         for bintuils bug 14342.
35428         (init_ic_make_global_vars): Likewise.
35429         (gimple_init_edge_profiler): Likewise.
35430         (gimple_gen_ic_func_profiler): Likewise.
35431
35432 2015-01-13  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
35433
35434         * ipa-inline.c (inline_small_functions): Swap the operands in
35435         enum.
35436
35437 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
35438
35439         PR ipa/64481
35440         * ipa-inline-analysis.c (node_growth_cache): Remove.
35441         (initialize_growth_caches): Do not initialize it.
35442         (free_growth_caches): Do not free it.
35443         (do_estimate_growth): Rename to ...
35444         (estimate_growth): ... this one; drop growth cache code.
35445         (growth_likely_positive): Always go the heuristics way.
35446         * ipa-inline.c (can_inline_edge_p): Walk through aliases.
35447         (reset_edge_caches): Do not reset node growth.
35448         (heap_edge_removal_hook): Do not maintain cache.
35449         (inline_small_functions): Likewise; strenghten sanity check.
35450         (ipa_inline): Do not maintain caches.
35451         * ipa-inline.h (node_growth_cache): Remove.
35452         (do_estimate_growth): Remove to ...
35453         (estimate_growth): this one; remove inline version.
35454         (reset_node_growth_cache): Remove.
35455
35456 2015-01-13  Jan Hubicka  <hubicka@ucw.cz>
35457
35458         PR ipa/64565
35459         * ipa-inline.c (inline_small_functions): Update callee keys after
35460         resolving speculation
35461         (inline_small_functions): Always check monotonicity of the queue.
35462
35463 2015-01-13  Marek Polacek  <polacek@redhat.com>
35464
35465         PR middle-end/64391
35466         * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
35467
35468 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
35469
35470         PR rtl-optimization/64286
35471         * ree.c (combine_reaching_defs): Move part of comment earlier,
35472         remove !SCALAR_INT_MODE_P check.
35473         (add_removable_extension): Don't add vector mode
35474         extensions if all uses of the source register aren't the same
35475         vector extensions.
35476
35477 2015-01-13  Renlin Li  <renlin.li@arm.com>
35478
35479         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
35480         (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
35481
35482 2015-01-13  Martin Liska  <mliska@suse.cz>
35483
35484         * ipa-icf.c (sem_function::equals_private): Call new functions
35485         cl_target_option_print_diff and cl_optimization_print_diff.
35486         * optc-save-gen.awk (cl_target_option_print_diff): New function.
35487         (cl_optimization_print_diff): Likewise.
35488         * opth-gen.awk: Likewise.
35489
35490 2015-01-13  Richard Sandiford  <richard.sandiford@arm.com>
35491
35492         * config/aarch64/aarch64.md (subsi3, *subsi3_uxtw, subdi3)
35493         (*sub_<optab><ALLX:mode>_<GPI:mode>, *sub_<optab><SHORT:mode>_si_uxtw)
35494         (*sub_<optab><ALLX:mode>_shft_<GPI:mode>)
35495         (*sub_<optab><SHORT:mode>_shft_si_uxtw, *sub_<optab><mode>_multp2)
35496         (*sub_<optab>si_multp2_uxtw, *sub_uxt<mode>_multp2)
35497         (*sub_uxtsi_multp2_uxtw): Add stack pointer sources.
35498
35499 2015-01-13  Andrew Pinski  <apinski@cavium.com>
35500
35501         * config/aarch64/aarch64.c (fusion_load_store): Check dest mode
35502         instead of src mode.
35503
35504 2015-01-13  Richard Biener  <rguenther@suse.de>
35505
35506         PR lto/64373
35507         * lto-streamer-out.c (tree_is_indexable): Guard for NULL
35508         DECL_CONTEXT.
35509
35510 2015-01-13  Andrew Pinski  <apinski@cavium.com>
35511
35512         * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
35513         volatile mems.
35514         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
35515
35516 2015-01-13  Jakub Jelinek  <jakub@redhat.com>
35517
35518         PR middle-end/63974
35519         * cfgexpand.c (expand_computed_goto): Don't call
35520         convert_memory_address here.
35521
35522 2015-01-13  Richard Biener  <rguenther@suse.de>
35523
35524         PR tree-optimization/64406
35525         * tree-loop-distibution.c (pass_loop_distribution::execute):
35526         Reset the SCEV hashtable if we distributed anything.
35527
35528 2015-01-13  Richard Biener  <rguenther@suse.de>
35529
35530         PR tree-optimization/64404
35531         * tree-vect-stmts.c (vectorizable_load): Reject conflicting
35532         SLP types for CSEd loads.
35533
35534 2015-01-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
35535
35536         PR tree-optimization/64436
35537         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Move code performing the
35538         merge of two symbolic numbers for a bitwise OR to ...
35539         (perform_symbolic_merge): This. Also fix computation of the range and
35540         end of the symbolic number corresponding to the result of a bitwise OR.
35541
35542 2015-01-13  Richard Biener  <rguenther@suse.de>
35543
35544         PR tree-optimization/64568
35545         * tree-ssa-forwprop.c (pass_forwprop::execute): Properly
35546         release defs of removed stmts, avoid splitting TARGET_MEM_REFs.
35547
35548 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
35549
35550         * config/nds32/nds32.c (nds32_legitimate_address_p): Consider
35551         TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.
35552
35553 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
35554
35555         * config/nds32/nds32.h (NDS32_SYMBOL_FLAG_RODATA): Define our own
35556         target-specific symbol_ref flag.
35557         (NDS32_SYMBOL_REF_RODATA_P): Define it to check if the symbol_ref
35558         resides in rodata section.
35559         * config/nds32/nds32.c (TARGET_ENCODE_SECTION_INFO): Define.
35560         (nds32_encode_section_info): New function.
35561
35562 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
35563
35564         * config/nds32/nds32.md (call): Use pseudo instruction bal which
35565         clobbers TA_REGNUM if large code model is specified.
35566         (call_register): Likewise.
35567         (call_immediate): Likewise.
35568         (call_value): Likewise.
35569         (call_value_register): Likewise.
35570         (call_value_immediate): Likewise.
35571
35572 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
35573
35574         * config/nds32/nds32.h (TARGET_CMODEL_SMALL): New macro.
35575         (TARGET_CMODEL_MEDIUM): New macro.
35576         (TARGET_CMODEL_LARGE): New macro.
35577         * config/nds32/nds32.c (nds32_asm_file_start): Display corresponding
35578         code model setting in assembly code.
35579
35580 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
35581
35582         * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
35583         Remove MASK_GP_DIRECT flag.
35584         * config/nds32/nds32.h (MULTILIB_DEFAULTS): Have -mcmodel=medium as
35585         one of the multilib default options.
35586         * config/nds32/nds32.opt (mgp-direct): Remove.
35587         * config/nds32/t-mlibs (MULTILIB_OPTIONS): Use -mcmodel instead of
35588         -mgp-direct.  We also remove unnecessary -mlittle-endian/-mbig-endian.
35589
35590 2015-01-13  Chung-Ju Wu  <jasonwucj@gmail.com>
35591
35592         * config/nds32/nds32.opt (mcmodel): Add new option.
35593         * config/nds32/nds32-opts.h (nds32_cmodel_type): Add new enum type
35594         to describe code model.
35595
35596 2015-01-13  Oleg Endo  <olegendo@gcc.gnu.org>
35597
35598         PR target/64479
35599         * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
35600
35601 2015-01-12  Kaz Kojima  <kkojima@gcc.gnu.org>
35602
35603         * config/sh/sh.c (sh_atomic_assign_expand_fenv): New function.
35604         (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
35605         (sh_builtin_get_fpscr, sh_builtin_set_fpscr): New variables.
35606         (sh_init_builtins): Record decls for __builtin_sh_get_fpscr and
35607         __builtin_sh_set_fpscr.
35608
35609 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
35610
35611         * doc/invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses
35612         after a funtion name just to indicate it is a function.
35613         ([-fsanitize-undefined-trap-on-error]): Likewise.
35614         ([-fdbg-cnt=]): Likewise.
35615         ([-mmemcpy]): Likewise.
35616         ([-mflush-func]): Likewise.
35617         ([-msynci]): Likewise.
35618
35619 2015-01-12  Sandra Loosemore  <sandra@codesourcery.com>
35620
35621         * doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
35622         example.
35623
35624 2015-01-12  Jakub Jelinek  <jakub@redhat.com>
35625
35626         PR tree-optimization/64563
35627         * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
35628         instead of != VR_VARYING.
35629
35630         PR target/64513
35631         * config/i386/i386.c (ix86_expand_prologue): Add
35632         REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
35633
35634         PR tree-optimization/64454
35635         * tree-vrp.c (simplify_div_or_mod_using_ranges): Optimize
35636         op0 % op1 into op0 if op0 is in range [-op1 + 1, op1 - 1]
35637         for signed or [0, op1 - 1] for unsigned modulo.
35638         (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
35639         even if op1 does not satisfy integer_pow2p.
35640
35641         PR other/64370
35642         * sreal.c (sreal::to_double): Use ldexp instead of scalbnl.
35643
35644 2015-01-12  Jeff Law  <law@redhat.com>
35645
35646         PR target/64461
35647         * config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
35648         (trunchiqi2, truncsihi2): Similarly.
35649
35650         * config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
35651         rather than calling F.
35652
35653 2015-01-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
35654
35655         * tsan.c (instrument_expr): Use force_gimple_operand.
35656         Use may_be_nonaddressable_p instead of is_gimple_addressable.
35657
35658 2015-01-12  Richard Biener  <rguenther@suse.de>
35659
35660         PR tree-optimization/64530
35661         * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
35662         back dr1.
35663
35664 2015-01-12  Richard Biener  <rguenther@suse.de>
35665
35666         PR middle-end/64357
35667         * tree-cfg.c (gimple_can_merge_blocks_p): Protect simple
35668         latches properly.
35669
35670 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35671
35672         * config/arm/arm.c (arm_cortex_a12_tune): Update entries to match
35673         Cortex-A17 tuning parameters.
35674         * config/arm/arm-cores.def (cortex-a12): Schedule for cortex-a17.
35675
35676 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35677
35678         * config/arm/arm-protos.h (tune_params): Add fuseable_ops field.
35679         * config/arm/arm.c (arm_macro_fusion_p): New function.
35680         (arm_macro_fusion_pair_p): Likewise.
35681         (TARGET_SCHED_MACRO_FUSION_P): Define.
35682         (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
35683         (ARM_FUSE_NOTHING): Likewise.
35684         (ARM_FUSE_MOVW_MOVT): Likewise.
35685         (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
35686         arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
35687         arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
35688         arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
35689         arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
35690         arm_cortex_a5_tune): Specify fuseable_ops value.
35691
35692 2015-01-12  H.J. Lu  <hongjiu.lu@intel.com>
35693
35694         PR bootstrap/64561
35695         * configure.ac (HAVE_LD_PIE_COPYRELOC): Update Linux/x86-64 linker
35696         test for PIE with copy reloc.
35697         * configure: Regenerated.
35698
35699 2015-01-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
35700
35701         * config/arm/arm.c (arm_load_tp): Use R0_REGNUM instead of constant 0
35702         in gen_rtx_REG.
35703         (arm_tls_descseq_addr): Likewise.
35704         (arm_gen_movmemqi): Likewise.
35705         (arm_expand_epilogue_apcs_frame): Likewise.
35706         (arm_expand_epilogue): Likewise.
35707         (arm_expand_prologue): Likewise.  Use R1_REGNUM instead of constant 1
35708         in gen_rtx_REG.
35709
35710 2015-01-12  Martin Liska  <mliska@suse.cz>
35711
35712         PR ipa/64550
35713         * ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare
35714         volatility for correct operands.
35715
35716 2015-01-12  Martin Liska  <mliska@suse.cz>
35717
35718         * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as
35719         indication that a function is not leaf.
35720         (sem_function::compare_polymorphic_p): Likewise.
35721
35722 2015-01-12  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
35723
35724         * config/visium/visium.c: Add includes hashtab.h, hash-set.h,
35725         machmode.h, input.h, statistics.h, vec.h, double-int.h, real.h,
35726         fixed-value.h, alias.h, symtab.h, tree-core.h, wide-int.h, inchash.h,
35727         fold-const.h, tree-check.h.
35728
35729 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
35730
35731         PR ipa/63967
35732         PR ipa/64425
35733         * ipa-inline.c (compute_uninlined_call_time,
35734         compute_inlined_call_time): Use counts for extra precision when
35735         needed possible.
35736         (big_speedup_p): Fix formating.
35737         (RELATIVE_TIME_BENEFIT_RANGE): Remove.
35738         (relative_time_benefit): Remove.
35739         (edge_badness): Turn DECL_DISREGARD_INLINE_LIMITS into hint;
35740         merge guessed and read profile paths.
35741         (inline_small_functions): Count only !optimize_size functions into
35742         initial size; be more lax about sanity check when profile is used;
35743         be sure to update inlined function profile when profile is read.
35744
35745 2015-01-12  Jan Hubicka  <hubicka@ucw.cz>
35746
35747         PR ipa/63470
35748         * ipa-inline-analysis.c (inline_edge_duplication_hook): Adjust
35749         cost when edge becomes direct.
35750         * ipa-prop.c (make_edge_direct): Do not adjust when speculation
35751         is resolved or when introducing new speculation.
35752
35753 2015-01-12  Chen Gang  <gang.chen.5i5j@gmail.com>
35754
35755         PR ipa/64551
35756         PR ipa/64552
35757         * ipa-icf.c (sem_function::equals_private): Use '&&' instead of
35758         '||' to fix typo issue.
35759
35760         * tree.h (target_opts_for_fn): Check NULL_TREE since it can
35761         accept and return NULL.
35762
35763 2015-01-12  Martin Liska  <mliska@suse.cz>
35764
35765         * cgraph.c (cgraph_edge::remove_callee): Move function to header
35766         file for being inlined.
35767         (cgraph_set_edge_callee): Delete.
35768         (cgraph_edge::redirect_callee): Move function to header file
35769         for being inlined.
35770         (cgraph_edge::make_direct): Use new function.
35771         (cgraph_edge::dump_edge_flags): New function created from
35772         static dump_edge_flags function.
35773         (cgraph_node::dump): Use new function.
35774         (cgraph_edge::verify_count_and_frequency): New function created
35775         from verify_edge_count_and_frequency.
35776         (cgraph_edge::verify_corresponds_to_fndecl): New function created
35777         from verify_edge_corresponds_to_fndecl.
35778         (verify_edge_corresponds_to_fndecl): Delete.
35779         (cgraph_node::verify_node): Use new function.
35780         * cgraph.h (cgraph_edge::set_callee): New function.
35781         (cgraph_edge::dump_edge_flags): Likewise.
35782         (cgraph_edge::verify_corresponds_to_fndecl): Likewise.
35783
35784 2015-01-11  Jan Hubicka  <hubicka@ucw.cz>
35785
35786         * ipa-utils.c (estimate_function_body_sizes): Do not
35787         free node params when called late with early=true.
35788
35789 2015-01-11  James Greenhalgh  <james.greenhalgh@arm.com>
35790
35791         * doc/md.texi (Instruction Patterns): Rewrite text for
35792         clarity.
35793         (Example): Likewise.
35794
35795 2015-01-10  Sandra Loosemore  <sandra@codesourcery.com>
35796
35797         * doc/invoke.texi (Option Summary): Break long lines.
35798         [(-fdiagnostics-color)]: Put long literal in @smallexample
35799         instead of inline.
35800         [(-fsanitize-recover)]: Likewise.
35801         [(-fdump-rtl-split*)]: Rewrite to fix over-full hbox.
35802         [(-ffast-math)]: Likewise.
35803         [(--param max-inline-insns-recursive)]: Likewise.
35804         [(--param max-inline-recursive-depth)]: Likewise.
35805         [(-mno-text-section-literals)]: Likewise.
35806
35807 2015-01-10  Thomas Schwinge  <thomas@codesourcery.com>
35808
35809         * doc/install.texi: Update for libgomp being renamed from "GNU
35810         OpenMP Runtime Library" to "GNU Offloading and Multi Processing
35811         Runtime Library".
35812         * doc/sourcebuild.texi: Likewise.
35813
35814 2015-01-10  Anthony Green  <green@moxielogic.com>
35815
35816         * config/moxie/moxie.c (moxie_option_override): Fix forcing of
35817         mul.x availability for moxiebox configuration.
35818
35819 2015-01-09  Anthony Green  <green@moxielogic.com>
35820
35821         * config/moxie/moxie.md: Tabify assembly output.
35822
35823 2015-01-09  Anthony Green  <green@moxielogic.com>
35824
35825         * config/moxie/moxie.md (CC_REG): Correct register definition.
35826
35827 2015-01-09  Sandra Loosemore  <sandra@codesourcery.com>
35828
35829         * doc/invoke.texi ([-fvtable-verify]): Copy-edit and fix markup.
35830         ([-fvtv-debug], [-fvtv-counts]): Likewise.  Correct location
35831         of log files.
35832
35833 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
35834
35835         * config/arm/arm.h (MAX_SYNC_LIBFUNC_SIZE): Delete semicolon.
35836
35837 2015-01-09  Bernd Schmidt  <bernds@codesourcery.com>
35838             Jakub Jelinek  <jakub@redhat.com>
35839
35840         PR middle-end/64412
35841         * lto-streamer.h (lto_stream_offload_p): New declaration.
35842         * lto-streamer.c (lto_stream_offload_p): New variable.
35843         * cgraphunit.c (ipa_passes): Set lto_stream_offload_p
35844         at the same time as section_name_prefix.
35845         * lto-streamer-out.c (hash_tree): Don't hash TREE_TARGET_OPTION
35846         if lto_stream_offload_p.
35847         * tree-streamer-out.c (streamer_pack_tree_bitfields): Don't
35848         stream TREE_TARGET_OPTION if lto_stream_offload_p.
35849         (write_ts_function_decl_tree_pointers): Don't
35850         stream DECL_FUNCTION_SPECIFIC_TARGET if lto_stream_offload_p.
35851         * tree-streamer-in.c (unpack_value_fields): Don't stream
35852         TREE_TARGET_OPTION in if ACCEL_COMPILER.
35853         (lto_input_ts_function_decl_tree_pointers): Don't stream
35854         DECL_FUNCTION_SPECIFIC_TARGET in if ACCEL_COMPILER.
35855         * lto-opts.c (lto_write_options): Use lto_stream_offload_p
35856         instead of section_name_prefix string comparisons.
35857
35858 2015-01-09  Jakub Jelinek  <jakub@redhat.com>
35859
35860         PR rtl-optimization/64536
35861         * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
35862         tablejumps.
35863
35864 2015-01-09  Michael Collison  <michael.collison@linaro.org>
35865
35866         PR tree-optimization/64322
35867         * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
35868         range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
35869
35870 2015-01-09  Tom de Vries  <tom@codesourcery.com>
35871
35872         PR rtl-optimization/64539
35873         * regcprop.c (kill_clobbered_values): Factor out of ...
35874         (copyprop_hardreg_forward_1): ... here.  Use kill_clobbered_values
35875         instead of note_stores with kill_clobbered_value.
35876
35877 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
35878
35879          * ginclude/unwind-arm-common.h: Revert previous commit.
35880
35881 2015-01-09  Andreas Tobler  <andreast@gcc.gnu.org>
35882
35883         * config.gcc (arm*-*-freebsd*): New configuration.
35884         * config/arm/freebsd.h: New file.
35885         * config.host: Add extra components for arm*-*-freebsd*.
35886         * config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
35887         * config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.
35888
35889 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
35890
35891         * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
35892         for -mcpu=e6500.
35893         * config/rs6000/t-rtems: Add e6500 multilibs.
35894
35895 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
35896
35897         * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
35898         MPC8540.
35899
35900 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
35901
35902         * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
35903         MULTILIB_EXCEPTIONS.
35904
35905 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
35906
35907         * config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
35908         MULTILIB_EXCEPTIONS.
35909
35910 2015-01-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
35911
35912         * config/arm/t-rtems-eabi: Rename to...
35913         * config/arm/t-rtems: ...this.
35914         * config/arm/rtems-eabi.h: Rename to...
35915         * config/arm/rtems.h: ...this.
35916         * config.gcc (arm*-*-rtems*): Reflect changes above.
35917
35918 2015-01-09  Richard Biener  <rguenther@suse.de>
35919
35920         PR tree-optimization/64410
35921         * tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
35922         on the LHS.
35923         (execute_update_addresses_taken): Deal with that.
35924         * tree-ssa-forwprop.c (pass_forwprop::execute): Use component-wise
35925         loads/stores for complex variables.
35926
35927 2015-01-09  Martin Liska  <mliska@suse.cz>
35928
35929         * ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
35930         name comparison.
35931         (func_checker::compare_memory_operand): New function.
35932         (func_checker::compare_operand): Split case to newly
35933         added functions.
35934         (func_checker::compare_cst_or_decl): New function.
35935         (func_checker::compare_gimple_call): Identify
35936         memory operands.
35937         (func_checker::compare_gimple_assign): Likewise.
35938         * ipa-icf-gimple.h: New function.
35939
35940 2015-01-09  Martin Liska  <mliska@suse.cz>
35941
35942         PR ipa/64503
35943         * sreal.c (sreal::dump): Change unsigned format to signed for
35944         m_exp value.
35945         (sreal::to_double): Replace exp2 with scalbln.
35946
35947 2015-01-09  Martin Liska  <mliska@suse.cz>
35948
35949         * cgraphunit.c (cgraph_node::create_wrapper): Fix level of indentation.
35950         * ipa-icf.c (sem_function::equals_private): Add support for target and
35951         (sem_item_optimizer::merge_classes): Remove redundant function
35952         optimization flags comparison.
35953         * tree.h (target_opts_for_fn): New function.
35954
35955 2015-01-09  Tom de Vries  <tom@codesourcery.com>
35956
35957         * omp-low.c (expand_omp_for_static_chunk): Fix assert.
35958
35959 2015-01-09  Kito Cheng  <kito@0xlab.org>
35960
35961         PR rtl-optimization/64348
35962         * lra-constraints.c (split_reg): Fix caller-save store/restore
35963         instruction generation.
35964
35965 2015-01-08  John David Anglin  <danglin@gcc.gnu.org>
35966
35967         PR gcov-profile/61790
35968         * gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
35969         long long.  Fallback to int64_t if host doesn't have long long and
35970         use strtol if int64_t is long.  Otherwise, use sscanf for conversion.
35971
35972 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
35973
35974         PR tree-optimization/63989
35975         * params.def (PARAM_MAX_TRACKED_STRLENS): Increment default
35976         from 1000 to 10000.
35977         * tree-ssa-strlen.c (get_strinfo): Moved earlier.
35978         (get_stridx): If we don't have a record for certain SSA_NAME,
35979         but it is POINTER_PLUS_EXPR of some SSA_NAME we do with
35980         constant offset, call get_stridx_plus_constant.
35981         (get_stridx_plus_constant): New function.
35982         (zero_length_string): Don't use get_stridx here.
35983
35984         PR target/55023
35985         PR middle-end/64388
35986         * dse.c (struct insn_info): Mention frame_read set also
35987         before reload for tail calls on some targets.
35988         (scan_insn): Revert 2014-12-22 change.  Set frame_read
35989         also before reload for tail calls if
35990         HARD_FRAME_POINTER_IS_ARG_POINTER.  Call add_wild_read
35991         instead of add_non_frame_wild_read for non-const/memset
35992         tail calls after reload.
35993
35994 2015-01-08  Jason Merrill  <jason@redhat.com>
35995
35996         * ubsan.c (do_ubsan_in_current_function): New.
35997         (pass_ubsan::gate): Use it.
35998         * ubsan.h: Declare it.
35999         * convert.c (convert_to_integer): Use it.
36000
36001 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
36002
36003         PR target/64338
36004         * config/i386/i386.c (ix86_expand_int_movcc): Don't reverse
36005         compare_code when it is unconditionally overwritten afterwards.
36006         Use ix86_reverse_condition instead of reverse_condition.  Don't
36007         change code if *reverse_condition* returned UNKNOWN and don't
36008         swap ct/cf and negate diff in that case.
36009
36010 2015-01-08  Mike Stump  <mikestump@comcast.net>
36011
36012         * tsan.c (pass_tsan::gate): Add no_sanitize_thread support.
36013         (pass_tsan_O0::gate): Likewise.
36014         * extend.texi (Function Attributes): Add no_sanitize_thread
36015         documentation.
36016
36017 2015-01-08  Thomas Schwinge  <thomas@codesourcery.com>
36018
36019         * builtins.def (DEF_GOMP_BUILTIN): Also consider flag_offload_abi
36020         for registering builtins.
36021         * config/i386/intelmic-mkoffload.c (prepare_target_image): Don't
36022         add -fopenmp to the argv_obstack used when invoking
36023         compile_for_target.
36024
36025         * config/i386/intelmic-mkoffload.c (compile_for_target): Always
36026         add "-m32" or "-m64" to argv_obstack.
36027         (generate_host_descr_file): Likewise, when invoking host_compiler.
36028         (main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
36029         ld.
36030
36031 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
36032
36033         * config/sh/sh-mem.cc: Use constant as second operand when emitting
36034         tstsi_t insns.
36035
36036 2015-01-08  Oleg Endo  <olegendo@gcc.gnu.org>
36037
36038         PR target/55212
36039         * config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
36040         constant load if constant operand fits into I08.
36041
36042 2015-01-08  Jakub Jelinek  <jakub@redhat.com>
36043
36044         PR sanitizer/64336
36045         * tree.c (build2_stat): Fix up initialization of TREE_READONLY
36046         and TREE_THIS_VOLATILE for MEM_REFs.
36047         (build5_stat): Fix up initialization of TREE_READONLY and
36048         TREE_THIS_VOLATILE for TARGET_MEM_REFs.
36049
36050 2015-01-08  Kaz Kojima  <kkojima@gcc.gnu.org>
36051
36052         PR target/64533
36053         * config/sh/sh.md (*addsi3_compact): Use u constraint instead
36054         of r for the second alternative of the destination operand.
36055
36056 2015-01-07  Segher Boessenkool  <segher@kernel.crashing.org>
36057
36058         PR target/36557
36059         * config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.
36060
36061 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
36062
36063         * doc/invoke.texi ([-fvtable-verify]): Fix markup on option
36064         keywords.
36065         ([-fivar-visibility], [-fvisibility]): Likewise.
36066
36067 2015-01-07  Sandra Loosemore  <sandra@codesourcery.com>
36068
36069         * doc/invoke.texi: Fix incorrect uses of @samp markup throughout
36070         the file where @code, @command, etc is more appropriate.
36071
36072 2015-01-06  Sandra Loosemore  <sandra@codesourcery.com>
36073
36074         * doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
36075         of -mrecip= documentation.
36076
36077 2015-01-06  Michael Meissner  <meissner@linux.vnet.ibm.com>
36078
36079         PR target/64505
36080         * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
36081         correct reload handler if -m32 -mpowerpc64 is used.
36082
36083 2015-01-06  Tom de Vries  <tom@codesourcery.com>
36084
36085         * tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.
36086
36087 2015-01-08  Christian Bruel  <christian.bruel@st.com>
36088
36089         PR target/64507
36090         * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
36091
36092 2015-01-06  Thomas Preud'homme  <thomas.preudhomme@arm.com>
36093
36094         PR tree-optimization/63259
36095         * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
36096         if optab exists for 16bit byteswap.
36097
36098 2015-01-06  Jakub Jelinek  <jakub@redhat.com>
36099
36100         * opts.c (common_handle_option): Add support for
36101         -fno-sanitize=all and -f{,no-}sanitize-recover=all.
36102         * doc/invoke.texi: Document -fno-sanitize=all,
36103         -f{,no-}sanitize-recover=all.  Document that
36104         -fsanitize=float-cast-overflow is not enabled
36105         by -fsanitize=undefined.  Fix up documentation
36106         of -f{,no-}sanitize-recover.
36107
36108 2015-01-06  Eric Botcazou  <ebotcazou@adacore.com>
36109
36110         * config.gcc: Add Visium support.
36111         * configure.ac: Likewise.
36112         * configure: Regenerate.
36113         * doc/extend.texi (interrupt attribute): Add Visium.
36114         * doc/invoke.texi: Document Visium options.
36115         * doc/install.texi: Document Visium target.
36116         * doc/md.texi: Document Visium constraints.
36117         * common/config/visium: New directory.
36118         * config/visium: Likewise.
36119
36120 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
36121
36122         * simplify-rtx.c (simplify_binary_operation_1): Handle more cases
36123         for the "(and X (ior (not X) Y) -> (and X Y)" transform.
36124
36125 2015-01-05  Segher Boessenkool  <segher@kernel.crashing.org>
36126
36127         * combine.c (combine_validate_cost): Do not count the cost of a
36128         split I2 twice.  Do not display it twice in the dump, either.
36129
36130 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
36131
36132         Revert parts of r219199.
36133         * doc/invoke.texi ([-Wliteral-suffix]): Restore markup on
36134         <inttypes.h>.
36135         ([-Wtraditional]): Restore markup on <limits.h>.
36136
36137 2015-01-05  Trevor Saunders  <tsaunders@mozilla.com>
36138
36139         PR c++/31397
36140         * doc/invoke.texi: Document -Wsuggest-override.
36141
36142 2015-01-05  Radovan Obradovic  <radovan.obradovic@imgtec.com>
36143
36144         PR rtl-optimization/64287
36145         * toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
36146         (process_options): Disable flag_ipa_ra if profiling.
36147
36148 2015-01-05  Eric Botcazou  <ebotcazou@adacore.com>
36149
36150         * config/nds32/nds32-peephole2.md: Do not mention define_peephole.
36151
36152 2015-01-05  Max Filippov  <jcmvbkbc@gmail.com>
36153
36154         * config/xtensa/xtensa.c (hwloop_optimize, hwloop_fail,
36155         hwloop_pattern_reg, xtensa_doloop_hooks, xtensa_reorg_loops):
36156         put under #if TARGET_LOOPS guard.
36157
36158 2015-01-05  Uros Bizjak  <ubizjak@gmail.com>
36159
36160         * config/i386/i386.c (output_387_binary_op): Use std::swap.
36161
36162 2015-01-05  Oleg Endo  <olegendo@gcc.gnu.org>
36163
36164         * rtlanal.c (refers_to_regno_p): Change return value from int to bool.
36165         * rtl.h (refers_to_regno_p): Add overload.
36166         * cse.c: Use it.
36167         * bt-load.c: Likewise.
36168         * combine.c: Likewise.
36169         * df-scan.c: Likewise.
36170         * sched-deps.c: Likewise.
36171         * config/s390/s390.c: Likewise.
36172         * config/m32r/m32r.c: Likewise.
36173         * config/rs6000/spe.md: Likewise.
36174         * config/rs6000/rs6000.c: Likewise.
36175         * config/pa/pa.c: Likewise.
36176         * config/stormy16/stormy16.c: Likewise.
36177         * config/cris/cris.c: Likewise.
36178         * config/arc/arc.md: Likewise.
36179         * config/arc/arc.c: Likewise.
36180         * config/sh/sh.md: Likewise.
36181         * config/sh/sh.c: Likewise.
36182         * config/frv/frv.c: Likewise.
36183
36184 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
36185
36186         PR sanitizer/64265
36187         * gimplify.c (gimplify_function_tree): Add TSAN_FUNC_EXIT internal
36188         call as cleanup of the whole body.
36189         * internal-fn.def (TSAN_FUNC_EXIT): New internal call.
36190         * tsan.c (replace_func_exit): New function.
36191         (instrument_func_exit): Moved earlier.
36192         (instrument_memory_accesses): Adjust TSAN_FUNC_EXIT internal calls.
36193         Call instrument_func_exit if no TSAN_FUNC_EXIT internal calls have
36194         been found.
36195         (tsan_pass): Don't call instrument_func_exit.
36196         * internal-fn.c (expand_TSAN_FUNC_EXIT): New function.
36197         * tree-inline.c (copy_bb): Drop TSAN_FUNC_EXIT internal calls during
36198         inlining.
36199
36200         PR sanitizer/64344
36201         * ubsan.h (ubsan_instrument_float_cast): Add ARG argument.
36202         * ubsan.c (ubsan_instrument_float_cast): Add ARG argument, pass
36203         it to libubsan handler instead of EXPR.  Fold comparisons earlier,
36204         if the result is integer_zerop, return NULL_TREE.
36205         * convert.c (convert_to_integer): Pass expr as ARG.
36206
36207         PR tree-optimization/64465
36208         * tree-inline.c (redirect_all_calls): During inlining
36209         clean up EH stmts and EH edges if redirect_call_stmt_to_callee
36210         changed the stmt to a non-throwing call.
36211
36212 2015-01-05  Sandra Loosemore  <sandra@codesourcery.com>
36213
36214         * doc/invoke.texi: Fix incorrect uses of @code, @option, @samp,
36215         etc markup throughout the file.
36216
36217 2015-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>
36218
36219         Enable experimental TSAN support for Ada.
36220         * tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.
36221
36222 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
36223
36224         PR tree-optimization/64494
36225         * tree-ssa-loop-im.c (move_computations_dom_walker::before_dom): Also
36226         clear SSA_NAME_ANTI_RANGE_P flag.
36227
36228 2015-01-05  Marek Polacek  <polacek@redhat.com>
36229
36230         * doc/extend.texi (Arrays of Length Zero): Add missing comma.
36231
36232 2015-01-05  Jakub Jelinek  <jakub@redhat.com>
36233
36234         Update copyright years.
36235
36236         * gcc.c (process_command): Update copyright notice dates.
36237         * gcov-dump.c: Ditto.
36238         * gcov.c: Ditto.
36239         * doc/cpp.texi: Bump @copying's copyright year.
36240         * doc/cppinternals.texi: Ditto.
36241         * doc/gcc.texi: Ditto.
36242         * doc/gccint.texi: Ditto.
36243         * doc/gcov.texi: Ditto.
36244         * doc/install.texi: Ditto.
36245         * doc/invoke.texi: Ditto.
36246
36247         * auto-profile.c, auto-profile.h: Fix up Copyright line.
36248
36249 2015-01-04  Sandra Loosemore  <sandra@codesourcery.com>
36250
36251         * doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
36252         verb tense, etc.
36253         ([-fvtable-verify], [-fvtv-debug]): Likewise.
36254         ([-Wabi]): Likewise.
36255         ([-fmessage-length]): Likewise.
36256         ([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
36257         ([-Wno-discarded-qualifiers]): Likewise.
36258         ([-Wnodiscarded-array-qualifiers]): Likewise.
36259         ([-Wno-virtual-move-assign]): Likewise.
36260         ([-fsanitize=address], [-fsanitize=thread]): Likewise.
36261         ([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
36262         ([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
36263         ([-fsanitize-undefined-trap-on-error]): Likewise.
36264         ([-floop-interchange]): Likewise.
36265         ([-ftree-coalesce-inlined-vars]): Likewise.
36266         ([-fvect-cost-model]): Likewise.
36267         ([-flto]): Likewise.
36268         ([--param]): Likewise.
36269         (Spec Files): Likewise.
36270         ([-mstrict-align]): Likewise.
36271         ([-mfix-cortex-a53-835769]): Likewise.
36272         ([-march], [-mtune]): Likewise.
36273         ([-mpic-register]): Likewise.
36274         ([-munaligned-access]): Likewise.
36275         ([-msp8]): Likewise.
36276         (EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
36277         (AVR Built-in Macros): Likewise.
36278         ([-mpreferred-stack-boundary]): Likewise.
36279         ([-mtune-crtl]): Likewise.
36280         ([-mashf]): Likewise.
36281         ([-mmcu=]): Likewise.
36282         ([-minrt]): Likewise.
36283         ([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
36284         ([-mupper-regs]): Likewise.
36285         ([-matomic-model]): Likewise.
36286         ([-mdiv]): Likewise.
36287         ([-mzdcbranch]): Likewise.
36288         ([-mdisable-callt]): Likewise.
36289         ([-msoft-float]): Likewise.
36290         ([-m8byte-align]): Likewise.
36291         ([-fstack-reuse]): Likewise.
36292
36293 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
36294
36295         * doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):
36296         Fix markup, light copy-editing.
36297         ([-fauto-profile]): Rewrite to fix formatting and content
36298         problems.
36299
36300 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
36301
36302         * doc/invoke.texi ([-fisolate-erroneous-paths-dereference]):
36303         Copy-edit description.
36304         ([-fisolate-erroneous-paths-attribute]): Likewise.
36305         * common.opt (fisolate-erroneous-paths-dereference):
36306         Copy-edit description.
36307         (fisolate-erroneous-paths-attribute): Likewise.
36308
36309 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
36310
36311         * doc/invoke.texi ([-fsemantic-interposition]): Fix typos and
36312         tidy grammar.
36313
36314 2015-01-03  Sandra Loosemore  <sandra@codesourcery.com>
36315
36316         * doc/invoke.texi ([-fplan9-extensions]): Add/fix @opindex.
36317         ([-fvtv-debug]): Likewise.
36318         ([-Wc++-compat]): Likewise.
36319         ([-Wc++11-compat]): Likewise.
36320         ([-Wc++14-compat]): Likewise.
36321         ([-Wno-sized-deallocation]): Likewise.
36322         ([-femit-class-debug-always]): Likewise.
36323         ([-femit-struct-debug-detailed]): Likewise.
36324         ([-fno-keep-inline-dllexport]): Likewise.
36325         ([-fira-algorithm]): Likewise.
36326         ([-fira-region]): Likewise.
36327         ([-flra-remat]): Likewise.
36328         ([-fipa-ra]): Likewise.
36329         ([-fhoist-adjacent-loads]): Likewise.
36330         ([-fisolate-erroneous-paths-dereference]): Likewise.
36331         ([-fisolate-erroneous-paths-attribute]): Likewise.
36332         ([-ftree-switch-conversion]): Likewise.
36333         ([-ftree-tail-merge]): Likewise.
36334         ([-ftree-loop-if-convert]): Likewise.
36335         ([-ftree-loop-if-convert-stores]): Likewise.
36336         ([-ftree-loop-distribution]): Likewise.
36337         ([-ftree-loop-distribute-patterns]): Likewise.
36338         ([-flto-compression-level]): Likewise.
36339         ([-flto-report]): Likewise.
36340         ([-flto-report-wpa]): Likewise.
36341         ([-fuse-linker-plugin]): Likewise.
36342         ([-mfix-cortex-a53-835769]): Likewise.
36343         ([-mno-fix-cortex-a53-835769]): Likewise.
36344         ([-mmmx]...[-mno-3dnow]): Remove the -mno- forms from the
36345         explicit listing; add a note to the discussion indicating they
36346         exist.  Reorder table to group similar options.  Add missing
36347         @opindex entries.  Add @need commands throughout the table to
36348         allow it to be split across multiple pages.
36349         ([-m8bit-idiv]): Fix @opindex.
36350         ([-mavx256-split-unaligned-load]): Likewise.
36351         ([-mavx256-split-unaligned-store]): Likewise.
36352         ([-mstack-protector-guard]): Likewise.
36353         ([-mcpu=]): Likewise.
36354         ([-mcpu]): Likewise.
36355         ([-mpointer-size=]): Likewise.
36356
36357 2015-01-03  John David Anglin  <danglin@gcc.gnu.org>
36358
36359         * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
36360         instead of `m' constraint.  Likewise for unnamed movb comparison
36361         patterns using reg_before_reload_operand predicate.
36362         * config/pa/predicates.md (reg_before_reload_operand): Tighten
36363         predicate to reject register index and LO_SUM DLT memory forms
36364         after reload.
36365
36366 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
36367
36368         * doc/invoke.texi (Option Summary): Fix spelling of
36369         -fdevirtualize-at-ltrans.
36370         ([-fdevirtualize]): Fix markup.
36371         ([-fdevirtualize-speculatively]): Fix typo.
36372         ([-fdevirtualize-at-ltrans]): Likewise.  Make description less
36373         implementor-speaky.
36374         * common.opt (fdevirtualize-at-ltrans): Likewise.
36375         * ipa-devirt.c: Fix typos in comments throughout the file.
36376         (ipa_devirt): Fix typos in format strings for dump output.
36377
36378 2015-01-02  Sandra Loosemore  <sandra@codesourcery.com>
36379
36380         * doc/invoke.texi ([-fopt-info]): Fix markup, consolidate
36381         discussion of defaults, light copy-editing.
36382
36383 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
36384
36385         * tsan.c (instrument_expr): corrected previous checkin.
36386
36387 2015-01-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
36388
36389         Instrument bit field and unaligned accesses for TSAN.
36390         * sanitizer.def (BUILT_IN_TSAN_READ_RANGE): New built-in function.
36391         (BUILT_IN_TSAN_WRITE_RANGE): New built-in function.
36392         * tsan.c (instrument_expr): Handle COMPONENT_REF and BIT_FIELD_REF.
36393         Use BUILT_IN_TSAN_READ_RANGE and BUILT_IN_TSAN_WRITE_RANGE for
36394         unaligned memory regions.
36395
36396 2015-01-01  Anthony Green  <green@moxielogic.com>
36397
36398         * config/moxie/predicates.md (moxie_general_movsrc_operand):
36399         Restrict move source register offsets to 16 bits.
36400 \f
36401 Copyright (C) 2015 Free Software Foundation, Inc.
36402
36403 Copying and distribution of this file, with or without modification,
36404 are permitted in any medium without royalty provided the copyright
36405 notice and this notice are preserved.