re PR tree-optimization/68145 (ICE: in vectorizable_store, at tree-vect-stmts.c:5684)
[gcc.git] / gcc / ChangeLog
1 2015-11-06 Ilya Enkovich <enkovich.gnu@gmail.com>
2
3 PR tree-optimization/68145
4 * tree-vect-stmts.c (vectorizable_operation): Fix
5 determination for booleans.
6
7 2015-11-06 Tom de Vries <tom@codesourcery.com>
8
9 * tree-cfg.c (gimple_split_block_before_cond_jump): Split before
10 cond_jump, instead of split after last nondebug insn before cond_jump.
11 * tree-parloops.c (transform_to_exit_first_loop_alt): Verify ssa before
12 returning.
13
14 2015-11-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15
16 PR target/68088
17 * config/arm/aarch-common.c (aarch_accumulator_forwarding): Strip
18 subregs from accumulator and make sure it's a register.
19
20 2015-11-06 Simon Dardis <simon.dardis@imgtec.com>
21
22 * config/mips/loongson.md (vec_loongson_extract_lo_<mode>): New, extract
23 low part to scalar.
24 (reduc_uplus_<mode>): Remove.
25 (reduc_plus_scal_<mode>): Rename from reduc_splus_<mode>, Use vec
26 loongson_extract_lo_<mode>.
27 (reduc_smax_scal_<mode>, reduc_smin_scal_<mode>): Rename from
28 reduc_smax_<mode>, reduc_smax_<mode>, use vec
29 loongson_extract_lo_<mode>.
30 (reduc_umax_scal_<mode>, reduc_umin_scal_<mode>): Rename.
31
32 2015-11-06 Richard Biener <rguenther@suse.de>
33
34 * tree-vectorizer.h (struct _bb_vec_info): Add region_begin/end
35 members.
36 (vect_stmt_in_region_p): Declare.
37 * tree-vect-slp.c (new_bb_vec_info): Work on a region.
38 (destroy_bb_vec_info): Likewise.
39 (vect_bb_slp_scalar_cost): Use vect_stmt_in_region_p.
40 (vect_get_and_check_slp_defs): Likewise.
41 (vect_slp_analyze_bb_1): Refactor to make it work on sub-BBs.
42 (vect_slp_bb): Likewise.
43 * tree-vect-patterns.c (vect_same_loop_or_bb_p): Implement
44 in terms of vect_stmt_in_region_p.
45 (vect_pattern_recog): Iterate over the BB region.
46 * tree-vect-stmts.c (vect_is_simple_use): Use vect_stmt_in_region_p.
47 * tree-vectorizer.c (vect_stmt_in_region_p): New function.
48 (pass_slp_vectorize::execute): Initialize all stmt UIDs to -1.
49 * config/i386/i386.c: Include gimple-iterator.h.
50 * config/aarch64/aarch64.c: Likewise.
51
52 2015-11-06 Alexandre Oliva <aoliva@redhat.com>
53
54 PR rtl-optimization/67753
55 PR rtl-optimization/64164
56 * function.c (assign_parm_setup_block): Avoid allocating a
57 stack slot if we don't have an ABI-reserved one. Emit the
58 copy to target_reg in the conversion seq if the copy from
59 entry_parm is in it too. Don't use the conversion seq to copy
60 a PARALLEL to a REG or a CONCAT.
61
62 2015-11-06 Richard Biener <rguenther@suse.de>
63
64 * tree-hash-traits.h (tree_operand_hash): Provide equal, not
65 equal_keys.
66
67 2015-11-05 Cesar Philippidis <cesar@codesourcery.com>
68 Thomas Schwinge <thomas@codesourcery.com>
69 James Norris <jnorris@codesourcery.com>
70
71
72 * gimplify.c (gimplify_scan_omp_clauses): Add support for
73 OMP_CLAUSE_TILE. Update handling of OMP_CLAUSE_INDEPENDENT.
74 (gimplify_adjust_omp_clauses): Likewise.
75 * omp-low.c (scan_sharing_clauses): Add support for OMP_CLAUSE_TILE.
76 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_TILE.
77 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_TILE.
78 * tree.c (omp_clause_num_ops): Add an entry for OMP_CLAUSE_TILE.
79 (omp_clause_code_name): Likewise.
80 (walk_tree_1): Handle OMP_CLAUSE_TILE.
81 * tree.h (OMP_TILE_LIST): New macro.
82
83 2015-11-05 Martin Sebor <msebor@redhat.com>
84
85 PR c++/67942
86 * invoke.texi (-Wplacement-new): Document new option.
87 * gcc/testsuite/g++.dg/warn/Wplacement-new-size.C: New test.
88
89 2015-11-05 Alan Lawrence <alan.lawrence@arm.com>
90
91 PR tree-optimization/65963
92 * tree-scalar-evolution.c (interpret_rhs_expr): Try to handle
93 LSHIFT_EXPRs as equivalent unsigned MULT_EXPRs.
94
95 2015-11-05 James Greenhalgh <james.greenhalgh@arm.com>
96
97 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): New.
98 (noce_convert_multiple_sets): Likewise.
99 (noce_process_if_block): Call them.
100
101 2015-11-05 Nathan Sidwell <nathan@codesourcery.com>
102
103 * gimple-fold.c: Include omp-low.h.
104 (fold_internal_goacc_dim): New.
105 (gimple_fold_call): Call it.
106
107 2015-11-05 Jakub Jelinek <jakub@redhat.com>
108 Ilya Verbin <ilya.verbin@intel.com>
109
110 * builtin-types.def
111 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR): Remove.
112 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): New.
113 * cgraph.h (enum cgraph_simd_clone_arg_type): Add
114 SIMD_CLONE_ARG_TYPE_LINEAR_REF_VARIABLE_STEP,
115 SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_VARIABLE_STEP and
116 SIMD_CLONE_ARG_TYPE_LINEAR_VAL_VARIABLE_STEP.
117 (struct cgraph_simd_clone_arg): Adjust comment.
118 * omp-builtins.def (BUILT_IN_GOMP_TARGET): Rename GOMP_target_41
119 to GOMP_target_ext. Add num_teams and thread_limit arguments.
120 (BUILT_IN_GOMP_TARGET_DATA): Rename GOMP_target_data_41
121 to GOMP_target_data_ext.
122 (BUILT_IN_GOMP_TARGET_UPDATE): Rename GOMP_target_update_41
123 to GOMP_target_update_ext.
124 (BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_START,
125 BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_START,
126 BUILT_IN_GOMP_LOOP_NONMONOTONIC_DYNAMIC_NEXT,
127 BUILT_IN_GOMP_LOOP_NONMONOTONIC_GUIDED_NEXT,
128 BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_START,
129 BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_START,
130 BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_DYNAMIC_NEXT,
131 BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_GUIDED_NEXT,
132 BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_DYNAMIC,
133 BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_GUIDED): New built-ins.
134 * tree-core.h (enum omp_clause_schedule_kind): Add
135 OMP_CLAUSE_SCHEDULE_MASK, OMP_CLAUSE_SCHEDULE_MONOTONIC,
136 OMP_CLAUSE_SCHEDULE_NONMONOTONIC and change
137 OMP_CLAUSE_SCHEDULE_LAST value.
138 * tree.def (OMP_SIMD, CILK_SIMD, CILK_FOR, OMP_DISTRIBUTE,
139 OMP_TASKLOOP, OACC_LOOP): Add OMP_FOR_ORIG_DECLS argument.
140 * tree.h (OMP_FOR_ORIG_DECLS): Use OMP_LOOP_CHECK instead of
141 OMP_FOR_CHECK. Remove comment.
142 * tree-pretty-print.c (dump_omp_clause): Handle
143 GOMP_MAP_FIRSTPRIVATE_REFERENCE and GOMP_MAP_ALWAYS_POINTER.
144 Simplify. Print schedule clause modifiers.
145 * tree-vect-stmts.c (vectorizable_simd_clone_call): Add
146 SIMD_CLONE_ARG_TYPE_LINEAR_{REF,VAL,UVAL}_VARIABLE_STEP
147 cases.
148 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_ALWAYS_TO.
149 (omp_default_clause): Tweak for
150 private/firstprivate/is_device_ptr variables on target
151 construct and use_device_ptr on target data.
152 (omp_check_private): Likewise.
153 (omp_notice_variable): For references check whether what it refers
154 to has mappable type, rather than the reference itself.
155 (omp_is_private): Diagnose linear iteration variables on non-simd
156 constructs.
157 (omp_no_lastprivate): Return true only for Fortran.
158 (gimplify_scan_omp_clauses): Or in GOVD_MAP_ALWAYS_TO for
159 GOMP_MAP_ALWAYS_TO or GOMP_MAP_ALWAYS_TOFROM kinds.
160 Add support for GOMP_MAP_FIRSTPRIVATE_REFERENCE and
161 GOMP_MAP_ALWAYS_POINTER, remove old handling of structure element
162 based array sections. Use GOMP_MAP_ALWAYS_P. Fix up handling of
163 lastprivate and linear when combined with distribute. Gimplify
164 variable low-bound for array reduction. Look through
165 POINTER_PLUS_EXPR when looking for ADDR_EXPR for array section
166 reductions.
167 (gimplify_adjust_omp_clauses_1): For implicit references to
168 variables with reference type and when not ref to scalar or
169 ref to pointer, map what they refer to using tofrom and
170 use GOMP_MAP_FIRSTPRIVATE_REFERENCE for the reference.
171 (gimplify_adjust_omp_clauses): Remove GOMP_MAP_ALWAYS_POINTER
172 from target exit data. Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE.
173 Drop OMP_CLAUSE_MAP_PRIVATE support. Use GOMP_MAP_ALWAYS_P.
174 Diagnose the same var on both firstprivate and lastprivate on
175 distribute construct.
176 (gimplify_omp_for): Fix up handling of predetermined
177 lastprivate or linear iter vars when combined with distribute.
178 (find_omp_teams, computable_teams_clause, optimize_target_teams): New
179 functions.
180 (gimplify_omp_workshare): Call optimize_target_teams.
181 * omp-low.c (struct omp_region): Add sched_modifiers field.
182 (struct omp_for_data): Likewise.
183 (omp_any_child_fn_dumped): New variable.
184 (extract_omp_for_data): Fill in sched_modifiers, and mask out
185 OMP_CLAUSE_SCHEDULE_KIND bits outside of OMP_CLAUSE_SCHEDULE_MASK
186 from sched_kind.
187 (determine_parallel_type): Use only OMP_CLAUSE_SCHEDULE_MASK
188 bits of OMP_CLAUSE_SCHED_KIND.
189 (scan_sharing_clauses): Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE,
190 drop OMP_CLAUSE_MAP_PRIVATE support. Look through POINTER_PLUS_EXPR
191 for array section reductions.
192 (add_taskreg_looptemp_clauses): Add one extra _looptemp_ clause even
193 for distribute parallel for, if there are lastprivate clauses on the
194 for.
195 (lower_rec_input_clauses): Handle non-zero low-bound on array
196 section reductions.
197 (lower_reduction_clauses): Likewise.
198 (lower_send_clauses): Look through POINTER_PLUS_EXPR
199 for array section reductions.
200 (expand_parallel_call): Use nonmonotonic entrypoints for
201 nonmonotonic: dynamic/guided.
202 (expand_omp_taskreg): Call assign_assembler_name_if_neeeded on
203 child_fn if current_function_decl has assembler name set, but child_fn
204 does not. Dump the header and IL of the child function when not in SSA
205 form.
206 (expand_omp_target): Likewise. Pass num_teams and thread_limit
207 arguments to BUILT_IN_GOMP_TARGET.
208 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
209 Initialize the extra _looptemp_ clause to fd->loop.n2.
210 (expand_omp_for): Use nonmonotonic entrypoints for
211 nonmonotonic: dynamic/guided. Initialize region->sched_modifiers.
212 (expand_omp): Clear omp_any_child_fn_dumped. Dump function header
213 again if we have dumped any child functions.
214 (lower_omp_for_lastprivate): Determine the right count variable
215 for distribute simd, or distribute parallel for{, simd}.
216 (lower_omp_target): Handle GOMP_MAP_FIRSTPRIVATE_REFERENCE
217 and GOMP_MAP_ALWAYS_POINTER. Drop OMP_CLAUSE_MAP_PRIVATE
218 support.
219 (simd_clone_clauses_extract): Handle variable step
220 for references and arguments passed by reference.
221 (simd_clone_mangle): Mangle ref/uval/val variable steps.
222 (simd_clone_adjust_argument_types): Handle
223 SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_VARIABLE_STEP like
224 SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP and
225 SIMD_CLONE_ARG_TYPE_LINEAR_VAL_VARIABLE_STEP like
226 SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP.
227 (simd_clone_linear_addend): New function.
228 (simd_clone_adjust): Handle variable step like similarly
229 to constant step, use simd_clone_linear_addend to determine
230 the actual step at runtime.
231
232 2015-11-05 Nathan Sidwell <nathan@codesourcery.com>
233
234 * target.def (goacc.dim_limit): New hook.
235 * targhooks.h (default_goacc_dim_limit): Declare.
236 * doc/tm.texi.in (TARGET_GOACC_DIM_LIMIT): Add.
237 * doc/tm.texi: Rebuilt.
238 * omp-low.h (get_oacc_fn_dim_size, get_oacc_ifn_dim_arg): Declare.
239 * omp-low.c (get_oacc_fn_dim_size, get_oacc_ifn_dim_arg): New.
240 (default_goacc_dim_limit): New.
241 * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH, PTX_WORKER_LENGTH): New.
242 (nvptx_goacc_dim_limit) New.
243 (TARGET_GOACC_DIM_LIMIT): Override.
244 * tree-vrp.c: Include omp-low.h, target.h.
245 (extract_range_basic): Add handling for IFN_GOACC_DIM_SIZE &
246 IFN_GOACC_DIM_POS.
247
248 2015-11-05 Ilya Enkovich <enkovich.gnu@gmail.com>
249
250 * tree-vect-generic.c (do_compare): Use -1 for true
251 result instead of 1.
252
253 2015-11-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
254
255 * config/aarch64/aarch64.c
256 (aarch64_can_use_per_function_literal_pools_p): New.
257 (aarch64_use_blocks_for_constant_p): Adjust declaration
258 and use aarch64_can_use_function_literal_pools_p.
259 (aarch64_select_rtx_section): Update.
260
261 2015-11-05 Ilya Enkovich <enkovich.gnu@gmail.com>
262
263 * targhooks.c (default_get_mask_mode): Use BLKmode in
264 case target doesn't support required vector mode.
265 * stor-layout.c (layout_type); Check for BLKmode.
266
267 2015-11-04 Aditya Kumar <aditya.k7@samsung.com>
268 Sebastian Pop <s.pop@samsung.com>
269
270 * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
271 Remove use of parameter_rename_map.
272 (copy_def): Remove.
273 (copy_internal_parameters): Remove.
274 (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
275 * sese.c (new_sese_info): Do not initialize parameter_rename_map.
276 (free_sese_info): Do not free parameter_rename_map.
277 (set_rename): Do not use parameter_rename_map.
278 (rename_uses): Update call to set_rename.
279 (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
280 * sese.h (parameter_rename_map_t): Remove.
281 (struct sese_info_t): Remove field parameter_rename_map.
282
283 2015-11-04 Aditya Kumar <aditya.k7@samsung.com>
284 Sebastian Pop <s.pop@samsung.com>
285
286 * graphite-isl-ast-to-gimple.c: Include tree-cfg.h.
287 (translate_isl_ast_node_user): Add more dumps: call print_loops_bb.
288 * graphite-scop-detection.c (dot_all_scops_1): Moved out of
289 anonymous namespace.
290 * graphite-sese-to-poly.c (ssa_name_version_typesize): Remove.
291 (isl_id_for_pbb): Use a buffer of size 10.
292 (isl_id_for_ssa_name): Same.
293 * sese.c (set_rename): Add more dumps.
294
295 2015-11-04 Nathan Sidwell <nathan@codesourcery.com>
296
297 * omp-low.c (struct omp_context): Remove reduction_map field.
298 (lookup_oacc_reduction, maybe_lookup_oacc_reduction): Delete.
299 (new_omp_context, delete_omp_context, scan_omp_target): Remove
300 reduction_map handling.
301 (lower_omp_target): Remove obsolete openacc reduction handling.
302
303 2015-11-04 Nathan Sidwell <nathan@codesourcery.com>
304
305 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add checking.
306
307 2015-11-04 Nathan Sidwell <nathan@codesourcery.com>
308 Cesar Philippidis <cesar@codesourcery.com>
309
310 * config/nvptx/nvptx.c: Include gimple headers.
311 (worker_red_size, worker_red_align, worker_red_name,
312 worker_red_sym): New.
313 (nvptx_option_override): Initialize worker reduction buffer.
314 (nvptx_file_end): Write out worker reduction buffer var.
315 (nvptx_expand_shuffle, nvptx_expand_worker_addr,
316 nvptx_expand_cmp_swap): New builtin expanders.
317 (enum nvptx_builtins): New.
318 (nvptx_builtin_decls): New.
319 (nvptx_builtin_decl, nvptx_init_builtins, nvptx_expand_builtin): New
320 (PTX_VECTOR_LENGTH, PTX_WORKER_LENGTH): New.
321 (nvptx_get_worker_red_addr, nvptx_generate_vector_shuffle,
322 nvptx_lockless_update): New helpers.
323 (nvptx_goacc_reduction_setup, nvptx_goacc_reduction_init,
324 nvptx_goacc_reduction_fini, nvptx_goacc_reduction_teaddown): New.
325 (nvptx_goacc_reduction): New.
326 (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN,
327 TARGET_BUILTIN_DECL): Override.
328 (TARGET_GOACC_REDUCTION): Override.
329
330 2015-11-04 Nathan Sidwell <nathan@codesourcery.com>
331 Cesar Philippidis <cesar@codesourcery.com>
332
333 * internal-fn.def (GOACC_REDUCTION): New.
334 * internal-fn.h (enum ifn_goacc_reduction_kind): New.
335 * internal-fn.c (expand_GOACC_REDUCTION): New.
336 * target.def (goacc.reduction): New OpenACC hook.
337 * targhooks.h (default_goacc_reduction): Declare.
338 * doc/tm.texi.in: Add TARGET_GOACC_REDUCTION.
339 * doc/tm.texi: Rebuilt.
340 * omp-low.c (oacc_get_reduction_array_id, oacc_max_threads,
341 scan_sharing_clauses): Remove oacc reduction handling here.
342 (lower_rec_input_clauses): Don't handle OpenACC reductions here.
343 (oacc_lower_reduction_var_helper): Delete.
344 (lower_oacc_reductions): New.
345 (lower_reduction_clauses): Don't handle OpenACC reductions here.
346 (lower_oacc_head_tail): Call lower_oacc_reductions.
347 (oacc_gimple_assign, oacc_init_reduction_array,
348 oacc_initialize_reduction_data, oacc_finalize_reduction_data,
349 oacc_process_reduction_data): Delete.
350 (lower_omp_target): Remove old OpenACC reduction handling. Insert
351 dummy OpenACC gang reduction for reductions at outer level.
352 (oacc_loop_xform_head_tail): Transform IFN_GOACC_REDUCTION.
353 (default_goacc_reduction): New.
354 (execute_oacc_device_lower): Handle IFN_GOACC_REDUCTION.
355
356 2015-11-04 Martin Liska <mliska@suse.cz>
357
358 * cgraphunit.c (cgraph_node::expand_thunk): Call
359 allocate_struct_function before init_function_start.
360 (cgraph_node::expand): Use push_cfun and pop_cfun.
361 * config/i386/i386.c (ix86_code_end): Call
362 allocate_struct_function before init_function_start.
363 * config/rs6000/rs6000.c (rs6000_code_end): Likewise.
364 * function.c (init_function_start): Move preamble to all
365 callers.
366 * passes.c (do_per_function_toporder): Use push_cfun and pop_cfun.
367 (execute_one_pass): Handle newly added TODO_discard_function.
368 (execute_pass_list_1): Terminate if cfun equals to NULL.
369 (execute_pass_list): Do not push and pop cfun, expect that
370 cfun is set.
371 * tree-pass.h (TODO_discard_function): Define.
372
373 2015-11-04 Mikhail Maltsev <maltsevm@gmail.com>
374
375 * cfganal.c (inverted_post_order_compute): Remove conditional
376 compilation, use flag_checking.
377 * config.in: Regenerate.
378 * configure: Regenerate.
379 * configure.ac: Remove ENABLE_CHECKING.
380 * genconditions.c: Do not #undef ENABLE_CHECKING.
381 * sese.h (bb_in_region): Comment out broken check.
382 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa_1): Remove
383 conditional compilation, use flag_checking.
384
385 2015-11-04 Tom de Vries <tom@codesourcery.com>
386
387 PR tree-optimization/67742
388 * tree-ssa-structalias.c (struct fieldoff): Add restrict_pointed_type
389 field.
390 (push_fields_onto_fieldstack): Handle restrict_pointed_type field.
391 (create_variable_info_for_1): Add and handle handle_param parameter.
392 Add restrict handling.
393 (create_variable_info_for): Call create_variable_info_for_1 with extra
394 arg.
395 (make_param_constraints): Drop restrict_name parameter. Ignore
396 vi->only_restrict_pointers.
397 (intra_create_variable_infos): Call create_variable_info_for_1 with
398 extra arg. Remove restrict handling. Call make_param_constraints with
399 one fewer arg.
400
401 2015-11-04 Tom de Vries <tom@codesourcery.com>
402
403 * tree-ssa-structalias.c (create_variable_info_for_1): Use decl_type
404 variable.
405
406 2015-11-03 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
407
408 * config/arm/coff.h: Remove.
409
410 2015-11-03 Eric Botcazou <ebotcazou@adacore.com>
411
412 * gimple-expr.c (useless_type_conversion_p): Reinstate type canonical
413 check for aggregate types and beef up comment for mode check.
414
415 2015-11-03 Richard Biener <rguenther@suse.de>
416
417 * tree-vect-data-refs.c (vect_analyze_data_refs): Do not collect
418 data references here.
419 * tree-vect-loop.c: Include cgraph.h.
420 (vect_analyze_loop_2): Collect data references here.
421 * tree-vect-slp.c (find_bb_location): Inline ...
422 (vect_slp_bb): ... here. Renamed from vect_slp_analyze_bb.
423 Factor in vect_slp_transform_bb.
424 (vect_slp_transform_bb): Removed.
425 (vect_slp_analyze_bb_1): Collect data references here.
426 * tree-vectorizer.c (pass_slp_vectorize::execute): Call
427 vect_slp_bb.
428 * tree-vectorizer.h (vect_slp_bb): Declare.
429 (vect_slp_analyze_bb): Remove.
430 (vect_slp_transform_bb): Remove.
431 (find_bb_location): Remove.
432 (vect_analyze_data_refs): Remove stmt count reference parameter.
433
434 2015-11-03 Evgeny Stupachenko <evstupac@gmail.com>
435
436 * multiple_target.c (create_dispatcher_calls): Add target check
437 on ifunc.
438 (create_target_clone): Change assembler name for versioned declarations.
439
440 2015-11-03 Thomas Schwinge <thomas@codesourcery.com>
441 Chung-Lin Tang <cltang@codesourcery.com>
442
443 * builtins.def (DEF_GOMP_BUILTIN): Enable for flag_openacc.
444 * omp-low.c (check_omp_nesting_restrictions): Allow
445 GIMPLE_OMP_ATOMIC_LOAD, GIMPLE_OMP_ATOMIC_STORE inside OpenACC
446 contexts.
447
448 2015-11-03 Bilyan Borisov <bilyan.borisov@arm.com>
449
450 * config/aarch64/aarch64-simd-builtins.def (fmulx): New.
451 * config/aarch64/aarch64-simd.md (aarch64_fmulx<mode>): New.
452 * config/aarch64/arm_neon.h (vmulx_f32): Rewrite to call fmulx
453 builtin.
454 (vmulxq_f32): Likewise.
455 (vmulx_f64): New.
456 (vmulxq_f64): Rewrite to call fmulx builtin.
457 (vmulxs_f32): Likewise.
458 (vmulxd_f64): Likewise.
459 (vmulx_lane_f32): Remove.
460 * config/aarch64/iterators.md (UNSPEC): Add fmulx.
461
462 2015-11-03 Alan Lawrence <alan.lawrence@arm.com>
463
464 * config/aarch64/aarch64.md (*movhf_aarch64): Use
465 aarch64_reg_or_fp_zero for second operand.
466
467 2015-11-03 Alexandre Oliva <aoliva@redhat.com>
468
469 * gimple-expr.c: Include hash-set.h and rtl.h.
470 (mark_addressable_queue): New var.
471 (mark_addressable): Factor actual marking into...
472 (mark_addressable_1): ... this. Queue it up during expand.
473 (mark_addressable_2): New.
474 (flush_mark_addressable_queue): New.
475 * gimple-expr.h (flush_mark_addressable_queue): Declare.
476 * cfgexpand.c: Include gimple-expr.h.
477 (pass_expand::execute): Flush mark_addressable queue.
478
479 2015-11-02 Alexandre Oliva <aoliva@redhat.com>
480
481 * tree-ssa-ifcombine.c (tree_ssa_ifcombine_bb_1): Factor out
482 bb_no_side_effects_p tests...
483 (tree_ssa_ifcombine_bb): ... here.
484
485 PR tree-optimization/68083
486 * tree-ssa-ifcombine.c: Include tree-ssa.h.
487 (bb_no_side_effects_p): Test for undefined uses too.
488 * tree-ssa.c (gimple_uses_undefined_value_p): New.
489 * tree-ssa.h (gimple_uses_undefined_value_p): Declare.
490
491 2015-11-02 Jeff Law <jeff@redhat.com>
492
493 * tree-ssa-threadupdate.c (valid_jump_thread_path): Also detect
494 cases where the loop latch edge is in the middle of an FSM path.
495
496 2015-11-03 Tom de Vries <tom@codesourcery.com>
497
498 * tree-ssa-structalias.c (make_restrict_var_constraints): Rename to ...
499 (make_param_constraints): ... this. Add and handle restrict_name
500 parameter. Handle is_full_var case.
501 (intra_create_variable_infos): Use make_param_constraints.
502
503 2015-11-03 Tom de Vries <tom@codesourcery.com>
504
505 * tree-ssa-structalias.c (make_restrict_var_constraints): Replace
506 make_copy_constraint call with make_constraint_from call.
507
508 2015-11-02 Andreas Tobler <andreast@gcc.gnu.org>
509
510 * config/rs6000/freebsd64.h (ASM_SPEC32): Adust spec to handle
511 PIE executables.
512
513 2015-11-02 Richard Sandiford <richard.sandiford@arm.com>
514
515 * builtins.h (fold_fma): Move to fold-const-call.h.
516 * builtins.c: Include fold-const-call.h.
517 (mathfn_built_in_2): New function, split out from...
518 (mathfn_built_in_1): ...here.
519 (do_real_to_int_conversion, fold_const_builtin_pow)
520 (fold_const_builtin_logb, fold_const_builtin_significand)
521 (fold_const_builtin_load_exponent, do_mpfr_arg1, do_mpfr_arg2)
522 (do_mpfr_arg3, do_mpfr_sincos, do_mpfr_bessel_n, do_mpc_arg1): Delete.
523 (fold_builtin_sincos): Use fold_const_call to handle constants.
524 (fold_builtin_1, fold_builtin_2, fold_builtin_3): Add explicit
525 checks for ERROR_MARK. Use fold_const_call to handle constant
526 folds for math functions.
527 (fold_fma): Move to fold-const-call.c.
528 * fold-const.c: Include fold-const-call.h.
529 * Makefile.in (OBJS): Add fold-const-call.o.
530 (PLUGIN_HEADERS): Add fold-const-call.h.
531 * realmpfr.h (real_from_mpfr): Allow the format to be specified
532 directly.
533 * realmpfr.c (real_from_mpfr): Likewise.
534 * fold-const-call.h, fold-const-call.c: New files.
535
536 2015-11-02 Julian Brown <julian@codesourcery.com>
537
538 * config/arm/neon-testgen.ml (emit_epilogue): Remove extraneous
539 brackets and semicolon.
540
541 2015-11-02 Alan Lawrence <alan.lawrence@arm.com>
542
543 Revert:
544 2015-10-27 Alan Lawrence <alan.lawrence@arm.com>
545
546 PR tree-optimization/65963
547 * tree-scalar-evolution.c (interpret_rhs_expr): Handle some
548 LSHIFT_EXPRs as equivalent MULT_EXPRs.
549
550 2015-11-02 Thomas Schwinge <thomas@codesourcery.com>
551
552 PR middle-end/68166
553 * fold-const.c: Include "md5.h".
554
555 2015-11-01 Jeff Law <jeff@redhat.com>
556
557 * vmsdbgout.c: Revert unused header file reduction patch.
558
559 * config/mcore/mcore.c: Include regs.h.
560
561 2015-10-31 Segher Boessenkool <segher@kernel.crashing.org>
562
563 * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Rewrite.
564
565 2015-10-31 Segher Boessenkool <segher@kernel.crashing.org>
566
567 * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Use the
568 same condition for testing whether RS6000_PIC_OFFSET_TABLE_REGNUM is
569 live as for using it elsewhere, for TARGET_MINIMAL_TOC.
570
571 2015-10-31 Markus Trippelsdorf <markus@trippelsdorf.de>
572
573 * ggc-common.c: Restore needed header for checking=release.
574
575 2015-10-31 Tom de Vries <tom@codesourcery.com>
576
577 * fold-const.c (fold_unary_loc): Tune POINTER_PLUS_EXPR folding.
578
579 2015-10-31 Tom de Vries <tom@codesourcery.com>
580
581 * tree-ssa-structalias.c (intra_create_variable_infos): Don't expect
582 existing varinfo for arguments.
583
584 2015-10-31 Tom de Vries <tom@codesourcery.com>
585
586 * tree-ssa-structalias.c (ipa_pta_execute): Add extra arg to call to
587 create_function_info_for. Dump constraints generated during
588 create_function_info_for. Move intra_create_variable_infos call and
589 function-return-values-escape bit to ...
590 (create_function_info_for): ... here, and merge
591 intra_create_variable_infos call with argument loop. Add and handle
592 nonlocal_p parameter.
593
594 2015-10-31 Tom de Vries <tom@codesourcery.com>
595
596 * tree-ssa-structalias.c (create_function_info_for): Make sure prev_vi
597 updating is alap, and seperated from preceding code. Make sure
598 insert_vi_for_tree is seperated from surrounding code.
599
600 2015-10-31 Tom de Vries <tom@codesourcery.com>
601
602 * tree-ssa-structalias.c (ipa_pta_execute): Use make_copy_constraint.
603
604 2015-10-30 Jeff Law <jeff@redhat.com>
605 Nathan Sidwell <nathan@acm.org>
606
607 * config/nvptx/nvptx.h (HARD_REGNO_NREGS): Avoid warning on unused
608 args.
609 (MOVE_MAX): Set to 8.
610
611 2015-10-30 Cesar Philippidis <cesar@codesourcery.com>
612
613 * cgraph.c: Include context.h for offloading.
614 * varpool.c: Include context.h and omp-low.h.
615
616 2015-10-30 Anatoly Sokolov <aesok@post.ru>
617
618 * rtl.h (contains_symbol_ref_p): Declare.
619 (SYMBOL_REF_P): Define.
620 * rtlanal.c (contains_symbol_ref_p: New function.
621 * lra-constraints.c (contains_symbol_ref_p): Remove.
622 * var-tracking.c (contains_symbol_ref): Remove.
623 (track_expr_p): Use contains_symbol_ref_p instead of
624 contains_symbol_ref.
625
626 2015-10-30 Alan Lawrence <alan.lawrence@arm.com>
627
628 * gimple-fold.c (fold_array_ctor_reference): Move searching code to:
629 * fold-const.c (get_array_ctor_element_at_index): New.
630 (fold): Remove binary-search through CONSTRUCTOR, call previous.
631
632 * fold-const.h (get_array_ctor_element_at_index): New.
633
634 2015-10-30 Evgeny Stupachenko <evstupac@gmail.com>
635
636 * Makefile.in (OBJS): Add multiple_target.o.
637 * attrib.c (make_attribute): Moved from config/i386/i386.c
638 * config/i386/i386.c (make_attribute): Deleted.
639 * multiple_target.c (create_dispatcher_calls): New.
640 (get_attr_len): Ditto.
641 (get_attr_str): Ditto.
642 (separate_attrs): Ditto.
643 (is_valid_asm_symbol): Ditto.
644 (create_new_asm_name): Ditto.
645 (create_target_clone): Ditto.
646 (expand_target_clones): Ditto.
647 (ipa_target_clone): Ditto.
648 (ipa_dispatcher_calls): Ditto.
649 * passes.def (pass_target_clone): Two new ipa passes.
650 * tree-pass.h (make_pass_target_clone): Ditto.
651 * doc/extend.texi (target_clones): New attribute description.
652
653 2015-10-30 Vladimir Makarov <vmakarov@redhat.com>
654
655 PR rtl-optimization/68106
656 * lra-remat.c (input_regno_present_p): Process hard regs
657 explicitly present in machine description insns.
658 (call_used_input_regno_present_p): Ditto.
659 (calculate_gen_cands): Ditto.
660 (do_remat): Ditto.
661
662 2015-10-30 Jim Wilson <jim.wilson@linaro.org>
663
664 * config/arm/neon-testgen.ml: Fix comment typo.
665
666 2015-10-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
667
668 * rtlanal.c (reg_set_p): Expand function comment.
669
670 2015-10-30 Andrew MacLeod <amacleod@redhat.com>
671
672 * alias.c: Remove unused headers.
673 * asan.c: Likewise.
674 * attribs.c: Likewise.
675 * auto-inc-dec.c: Likewise.
676 * auto-profile.c: Likewise.
677 * bb-reorder.c: Likewise.
678 * bitmap.c: Likewise.
679 * bt-load.c: Likewise.
680 * builtins.c: Likewise.
681 * caller-save.c: Likewise.
682 * calls.c: Likewise.
683 * ccmp.c: Likewise.
684 * cfg.c: Likewise.
685 * cfganal.c: Likewise.
686 * cfgbuild.c: Likewise.
687 * cfgcleanup.c: Likewise.
688 * cfgexpand.c: Likewise.
689 * cfghooks.c: Likewise.
690 * cfgloop.c: Likewise.
691 * cfgloopanal.c: Likewise.
692 * cfgloopmanip.c: Likewise.
693 * cfgrtl.c: Likewise.
694 * cgraph.c: Likewise.
695 * cgraphbuild.c: Likewise.
696 * cgraphclones.c: Likewise.
697 * cgraphunit.c: Likewise.
698 * cilk-common.c: Likewise.
699 * combine-stack-adj.c: Likewise.
700 * combine.c: Likewise.
701 * compare-elim.c: Likewise.
702 * convert.c: Likewise.
703 * coverage.c: Likewise.
704 * cppbuiltin.c: Likewise.
705 * cprop.c: Likewise.
706 * cse.c: Likewise.
707 * cselib.c: Likewise.
708 * data-streamer-in.c: Likewise.
709 * data-streamer-out.c: Likewise.
710 * data-streamer.c: Likewise.
711 * dbxout.c: Likewise.
712 * dce.c: Likewise.
713 * ddg.c: Likewise.
714 * debug.c: Likewise.
715 * df-core.c: Likewise.
716 * df-problems.c: Likewise.
717 * df-scan.c: Likewise.
718 * dfp.c: Likewise.
719 * dojump.c: Likewise.
720 * dominance.c: Likewise.
721 * domwalk.c: Likewise.
722 * double-int.c: Likewise.
723 * dse.c: Likewise.
724 * dumpfile.c: Likewise.
725 * dwarf2asm.c: Likewise.
726 * dwarf2cfi.c: Likewise.
727 * dwarf2out.c: Likewise.
728 * emit-rtl.c: Likewise.
729 * except.c: Likewise.
730 * explow.c: Likewise.
731 * expmed.c: Likewise.
732 * expr.c: Likewise.
733 * final.c: Likewise.
734 * fixed-value.c: Likewise.
735 * fold-const.c: Likewise.
736 * function.c: Likewise.
737 * fwprop.c: Likewise.
738 * gcse.c: Likewise.
739 * generic-match-head.c: Likewise.
740 * ggc-common.c: Likewise.
741 * gimple-builder.c: Likewise.
742 * gimple-expr.c: Likewise.
743 * gimple-fold.c: Likewise.
744 * gimple-iterator.c: Likewise.
745 * gimple-low.c: Likewise.
746 * gimple-match-head.c: Likewise.
747 * gimple-pretty-print.c: Likewise.
748 * gimple-ssa-isolate-paths.c: Likewise.
749 * gimple-ssa-strength-reduction.c: Likewise.
750 * gimple-streamer-in.c: Likewise.
751 * gimple-streamer-out.c: Likewise.
752 * gimple-walk.c: Likewise.
753 * gimple.c: Likewise.
754 * gimplify-me.c: Likewise.
755 * gimplify.c: Likewise.
756 * godump.c: Likewise.
757 * graph.c: Likewise.
758 * graphds.c: Likewise.
759 * haifa-sched.c: Likewise.
760 * hw-doloop.c: Likewise.
761 * ifcvt.c: Likewise.
762 * init-regs.c: Likewise.
763 * internal-fn.c: Likewise.
764 * ipa-chkp.c: Likewise.
765 * ipa-comdats.c: Likewise.
766 * ipa-cp.c: Likewise.
767 * ipa-devirt.c: Likewise.
768 * ipa-icf-gimple.c: Likewise.
769 * ipa-icf.c: Likewise.
770 * ipa-inline-analysis.c: Likewise.
771 * ipa-inline-transform.c: Likewise.
772 * ipa-inline.c: Likewise.
773 * ipa-polymorphic-call.c: Likewise.
774 * ipa-profile.c: Likewise.
775 * ipa-prop.c: Likewise.
776 * ipa-pure-const.c: Likewise.
777 * ipa-ref.c: Likewise.
778 * ipa-reference.c: Likewise.
779 * ipa-split.c: Likewise.
780 * ipa-utils.c: Likewise.
781 * ipa-visibility.c: Likewise.
782 * ipa.c: Likewise.
783 * ira-build.c: Likewise.
784 * ira-color.c: Likewise.
785 * ira-conflicts.c: Likewise.
786 * ira-costs.c: Likewise.
787 * ira-emit.c: Likewise.
788 * ira-lives.c: Likewise.
789 * ira.c: Likewise.
790 * jump.c: Likewise.
791 * langhooks.c: Likewise.
792 * lcm.c: Likewise.
793 * lists.c: Likewise.
794 * loop-doloop.c: Likewise.
795 * loop-init.c: Likewise.
796 * loop-invariant.c: Likewise.
797 * loop-iv.c: Likewise.
798 * loop-unroll.c: Likewise.
799 * lower-subreg.c: Likewise.
800 * lra-assigns.c: Likewise.
801 * lra-coalesce.c: Likewise.
802 * lra-constraints.c: Likewise.
803 * lra-eliminations.c: Likewise.
804 * lra-lives.c: Likewise.
805 * lra-remat.c: Likewise.
806 * lra-spills.c: Likewise.
807 * lra.c: Likewise.
808 * lto-cgraph.c: Likewise.
809 * lto-compress.c: Likewise.
810 * lto-opts.c: Likewise.
811 * lto-section-in.c: Likewise.
812 * lto-section-out.c: Likewise.
813 * lto-streamer-in.c: Likewise.
814 * lto-streamer-out.c: Likewise.
815 * lto-streamer.c: Likewise.
816 * mcf.c: Likewise.
817 * mode-switching.c: Likewise.
818 * modulo-sched.c: Likewise.
819 * optabs.c: Likewise.
820 * opts-global.c: Likewise.
821 * passes.c: Likewise.
822 * plugin.c: Likewise.
823 * postreload-gcse.c: Likewise.
824 * postreload.c: Likewise.
825 * predict.c: Likewise.
826 * print-tree.c: Likewise.
827 * profile.c: Likewise.
828 * real.c: Likewise.
829 * realmpfr.c: Likewise.
830 * recog.c: Likewise.
831 * ree.c: Likewise.
832 * reg-stack.c: Likewise.
833 * regcprop.c: Likewise.
834 * reginfo.c: Likewise.
835 * regrename.c: Likewise.
836 * regstat.c: Likewise.
837 * reload.c: Likewise.
838 * reload1.c: Likewise.
839 * reorg.c: Likewise.
840 * resource.c: Likewise.
841 * rtl-chkp.c: Likewise.
842 * rtl-error.c: Likewise.
843 * rtlanal.c: Likewise.
844 * rtlhooks.c: Likewise.
845 * sanopt.c: Likewise.
846 * sched-deps.c: Likewise.
847 * sched-ebb.c: Likewise.
848 * sched-rgn.c: Likewise.
849 * sdbout.c: Likewise.
850 * sel-sched-dump.c: Likewise.
851 * sel-sched-ir.c: Likewise.
852 * sel-sched.c: Likewise.
853 * sese.c: Likewise.
854 * shrink-wrap.c: Likewise.
855 * simplify-rtx.c: Likewise.
856 * stack-ptr-mod.c: Likewise.
857 * statistics.c: Likewise.
858 * stmt.c: Likewise.
859 * stor-layout.c: Likewise.
860 * store-motion.c: Likewise.
861 * stringpool.c: Likewise.
862 * symtab.c: Likewise.
863 * target-globals.c: Likewise.
864 * targhooks.c: Likewise.
865 * toplev.c: Likewise.
866 * tracer.c: Likewise.
867 * trans-mem.c: Likewise.
868 * tree-affine.c: Likewise.
869 * tree-call-cdce.c: Likewise.
870 * tree-cfg.c: Likewise.
871 * tree-cfgcleanup.c: Likewise.
872 * tree-chkp-opt.c: Likewise.
873 * tree-chkp.c: Likewise.
874 * tree-chrec.c: Likewise.
875 * tree-complex.c: Likewise.
876 * tree-data-ref.c: Likewise.
877 * tree-dfa.c: Likewise.
878 * tree-diagnostic.c: Likewise.
879 * tree-dump.c: Likewise.
880 * tree-eh.c: Likewise.
881 * tree-emutls.c: Likewise.
882 * tree-if-conv.c: Likewise.
883 * tree-inline.c: Likewise.
884 * tree-into-ssa.c: Likewise.
885 * tree-iterator.c: Likewise.
886 * tree-loop-distribution.c: Likewise.
887 * tree-nested.c: Likewise.
888 * tree-nrv.c: Likewise.
889 * tree-object-size.c: Likewise.
890 * tree-outof-ssa.c: Likewise.
891 * tree-parloops.c: Likewise.
892 * tree-phinodes.c: Likewise.
893 * tree-predcom.c: Likewise.
894 * tree-pretty-print.c: Likewise.
895 * tree-profile.c: Likewise.
896 * tree-scalar-evolution.c: Likewise.
897 * tree-sra.c: Likewise.
898 * tree-ssa-address.c: Likewise.
899 * tree-ssa-alias.c: Likewise.
900 * tree-ssa-ccp.c: Likewise.
901 * tree-ssa-coalesce.c: Likewise.
902 * tree-ssa-copy.c: Likewise.
903 * tree-ssa-dce.c: Likewise.
904 * tree-ssa-dse.c: Likewise.
905 * tree-ssa-forwprop.c: Likewise.
906 * tree-ssa-ifcombine.c: Likewise.
907 * tree-ssa-live.c: Likewise.
908 * tree-ssa-loop-ch.c: Likewise.
909 * tree-ssa-loop-im.c: Likewise.
910 * tree-ssa-loop-ivcanon.c: Likewise.
911 * tree-ssa-loop-ivopts.c: Likewise.
912 * tree-ssa-loop-manip.c: Likewise.
913 * tree-ssa-loop-niter.c: Likewise.
914 * tree-ssa-loop-prefetch.c: Likewise.
915 * tree-ssa-loop-unswitch.c: Likewise.
916 * tree-ssa-loop.c: Likewise.
917 * tree-ssa-math-opts.c: Likewise.
918 * tree-ssa-operands.c: Likewise.
919 * tree-ssa-phiopt.c: Likewise.
920 * tree-ssa-phiprop.c: Likewise.
921 * tree-ssa-pre.c: Likewise.
922 * tree-ssa-propagate.c: Likewise.
923 * tree-ssa-reassoc.c: Likewise.
924 * tree-ssa-scopedtables.c: Likewise.
925 * tree-ssa-sink.c: Likewise.
926 * tree-ssa-strlen.c: Likewise.
927 * tree-ssa-structalias.c: Likewise.
928 * tree-ssa-tail-merge.c: Likewise.
929 * tree-ssa-ter.c: Likewise.
930 * tree-ssa-threadupdate.c: Likewise.
931 * tree-ssa-uncprop.c: Likewise.
932 * tree-ssa-uninit.c: Likewise.
933 * tree-ssa.c: Likewise.
934 * tree-ssanames.c: Likewise.
935 * tree-stdarg.c: Likewise.
936 * tree-streamer-in.c: Likewise.
937 * tree-streamer-out.c: Likewise.
938 * tree-streamer.c: Likewise.
939 * tree-switch-conversion.c: Likewise.
940 * tree-tailcall.c: Likewise.
941 * tree-vect-data-refs.c: Likewise.
942 * tree-vect-generic.c: Likewise.
943 * tree-vect-loop-manip.c: Likewise.
944 * tree-vect-loop.c: Likewise.
945 * tree-vect-patterns.c: Likewise.
946 * tree-vect-slp.c: Likewise.
947 * tree-vect-stmts.c: Likewise.
948 * tree-vectorizer.c: Likewise.
949 * tree-vrp.c: Likewise.
950 * tree.c: Likewise.
951 * tsan.c: Likewise.
952 * ubsan.c: Likewise.
953 * value-prof.c: Likewise.
954 * var-tracking.c: Likewise.
955 * varasm.c: Likewise.
956 * varpool.c: Likewise.
957 * vmsdbgout.c: Likewise.
958 * vtable-verify.c: Likewise.
959 * web.c: Likewise.
960 * wide-int-print.cc: Likewise.
961 * wide-int.cc: Likewise.
962 * xcoffout.c: Likewise.
963
964 2015-10-30 James Greenhalgh <james.greenhalgh@arm.com>
965
966 * doc/invoke.texi (fdump-rtl-@var{pass}): Clarify relationship
967 between pass numbering and execution order.
968
969 2015-10-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
970
971 * config/arm/arm.c (cortex_a9_sched_adjust_cost): Use reg_set_p to
972 check for dependencies.
973
974 2015-10-30 Richard Sandiford <richard.sandiford@arm.com>
975
976 * tree-ssa-math-opts.c (pass_cse_sincos::execute): Don't free
977 CDI_DOMINATORS.
978
979 2015-10-30 Richard Sandiford <richard.sandiford@arm.com>
980
981 * real.h (format_helper): New.
982 (real_convert, exact_real_truncate, real_from_string3, real_to_target)
983 (real_from_target, real_nan, real_2expN, real_value_truncate)
984 (significand_size, real_from_string2, exact_real_inverse)
985 (exact_real_inverse, real_powi, real_trunc, real_floor, real_ceil)
986 (real_round, real_isinteger, real_from_integer): Replace
987 machine_mode arguments with format_helper arguments.
988 * real.c (exact_real_inverse, real_from_string2, real_from_string3)
989 (real_from_integer, real_nan, real_2expN, real_convert)
990 (real_value_truncate, exact_real_truncate, real_to_target)
991 (real_from_target, significand_size, real_powi, real_trunc)
992 (real_floor, real_ceil, real_round, real_isinteger): Replace
993 machine_mode arguments with format_helper arguments.
994 (real_to_target_fmt, real_from_target_fmt): Delete.
995 * dfp.h (decimal_real_convert): Replace mode argument with real_format.
996 * dfp.c (decimal_to_binary, decimal_real_convert): Replace mode
997 argument with real_format.
998 * builtins.c (do_real_to_int_conversion): Update type of fn argument.
999
1000 2015-10-30 Richard Sandiford <richard.sandiford@arm.com>
1001
1002 * fixed-value.c (check_real_for_fixed_mode, fixed_from_string)
1003 (fixed_to_decimal, fixed_convert_from_real)
1004 (real_convert_from_fixed): Fix mode arguments to real_2expN.
1005
1006 2015-10-30 Richard Sandiford <richard.sandiford@arm.com>
1007
1008 * real.h (REAL_MODE_FORMAT): Abort if the mode isn't a
1009 SCALAR_FLOAT_MODE_P.
1010
1011 2015-10-30 Alan Lawrence <alan.lawrence@arm.com>
1012
1013 * tree-sra.c (scalarizable_type_p): Comment variable-length arrays.
1014 (completely_scalarize): Comment zero-length arrays.
1015 (get_access_replacement): Correct comment re. precondition.
1016
1017 2015-10-30 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
1018
1019 * config/i386/i386.c (get_builtin_code_for_version): Set priority
1020 for PROCESSOR_ZNVER1.
1021 (enum processor_model): Add M_AMDFAM17H_znver1.
1022 (struct arch_names_table): Likewise.
1023 * doc/extend.texi: ADD znver1.
1024
1025 2015-10-30 Richard Biener <rguenther@suse.de>
1026
1027 * gimple-fold.c (fold_gimple_assign): Do not dispatch to
1028 fold () on single RHSs. Allow CONSTRUCTORS with trailing
1029 zeros to be folded to VECTOR_CSTs.
1030 * tree.c (build_vector_from_ctor): Handle VECTOR_CST elements.
1031 * fold-const.c (fold): Use build_vector_from_ctor.
1032
1033 2015-10-30 Evandro Menezes <e.menezes@samsung.com>
1034
1035 * config/aarch64/aarch64.md (*movhf_aarch64): Change the type of
1036 "mov %0.h[0], %1.h[0] to "neon_move".
1037 (*movtf_aarch64): Change the type of "fmov %s0, wzr" to "f_mcr".
1038 (*cmov<mode>_insn): Change the types of "mov %<w>0, {-1,1}" to
1039 "mov_imm".
1040 (*cmovsi_insn_uxtw): Likewise.
1041
1042 2015-10-30 Tom de Vries <tom@codesourcery.com>
1043
1044 * tree-ssa-structalias.c (ipa_pta_execute): Declare variable from as
1045 unsigned, and initialize, and use initial value instead of hardcoded
1046 constant. Add generic constraints dumping section. Don't dump global
1047 initializers constraints dumping section if empty. Don't update
1048 variable from if unused.
1049
1050 2015-10-29 Mikhail Maltsev <maltsevm@gmail.com>
1051
1052 * config/alpha/alpha.c (alpha_function_arg): Use gcc_checking_assert,
1053 flag_checking and/or CHECKING_P to eliminate conditional compilation
1054 on ENABLE_CHECKING.
1055 * config/arm/arm.c (arm_unwind_emit_sequence): Likewise.
1056 * config/bfin/bfin.c (hwloop_optimize): Likewise.
1057 * config/i386/i386.c (ix86_print_operand_address): Likewise.
1058 (output_387_binary_op): Likewise.
1059 * config/ia64/ia64.c (ia64_sched_init, bundling): Likewise.
1060 * config/m68k/m68k.c (m68k_sched_md_init_global): Likewise.
1061 * config/rs6000/rs6000.c (htm_expand_builtin, rs6000_emit_prologue):
1062 Likewise.
1063 * config/rs6000/rs6000.h: Likewise.
1064 * config/visium/visium.c (visium_setup_incoming_varargs): Likewise.
1065
1066 2015-10-29 Kaz Kojima <kkojima@gcc.gnu.org>
1067
1068 * config/sh/sh.opt (mfdpic): Add missing period.
1069
1070 2015-08-29 Anatoly Sokolov <aesok@post.ru>
1071
1072 * config/mcore/mcore.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
1073 BASE_REGISTER_RTX_P, INDEX_REGISTER_RTX_P,
1074 GO_IF_LEGITIMATE_ADDRESS): Remove macros.
1075 * config/mcore/mcore.c (mcore_reg_ok_for_base_p,
1076 mcore_base_register_rtx_p, mcore_legitimate_index_p,
1077 mcore_legitimate_address_p): New functions.
1078 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
1079
1080 2015-10-29 Jeff Law <law@redhat.com>
1081
1082 * tree-ssa-scopedtables.h (const_and_copies): Remove invalidate
1083 method.
1084 * tree-ssa-scopedtables.h (const_and_copies::invalidate): Remove.
1085 * tree-ssa-threadedge.c
1086 (record_temporary_equivalences_from_stmts_at_dest): Remove
1087 backedge_seen argument and associated code which invalidated
1088 equivalences based on the value of that argument.
1089 (thread_through_normal_block): Corresponding changes.
1090
1091 2015-10-29 Segher Boessenkool <segher@kernel.crashing.org>
1092
1093 * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Move this
1094 function earlier in the file.
1095 (first_reg_to_save): Use rs6000_reg_live_or_pic_offset_p instead of
1096 df_regs_ever_live_p.
1097
1098 2015-10-29 Segher Boessenkool <segher@kernel.crashing.org>
1099
1100 * lra-constraints.c (process_address_1): Handle (mem:BLK (scratch))
1101 by ignoring it.
1102
1103 2015-10-29 Richard Henderson <rth@redhat.com>
1104
1105 PR target/68124
1106 PR rtl-opt/67609
1107 * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
1108 sse check to the exact conditions of PR 67609.
1109
1110 2015-10-29 Michael Meissner <meissner@linux.vnet.ibm.com>
1111
1112 * config/rs6000/rs6000.c (rs6000_init_libfuncs): Split libfunc
1113 setup into 3 functions: init_float128_ibm, init_float128_ieee, and
1114 rs6000_init_libfuncs. If -mfloat128, add IFmode functions for all
1115 of the traditional names that TFmode uses for handling IEEE
1116 extended double. If -mfloat128, add KFmode functions for all of
1117 the emulation functions. If -mabi=ieeelongdouble and -mfloat128,
1118 make TFmode use the same emulation functions as KFmode.
1119 (init_float128_ibm): Likewise.
1120 (init_float128_ieee): Likewise.
1121 (rs6000_generate_compare): For IEEE 128-bit floating point
1122 comparisons, call the unordered comparison function instead of the
1123 ordered comparison function.
1124 (rs6000_expand_float128_convert): Deal with operands that are
1125 memory operands. Restructure the code to use a switch statement on
1126 the mode. Add support for TFmode defaulting to either IBM extended
1127 double or IEEE 128-bit floating point. If the underlying types are
1128 the same, use a move instead of a conversion function.
1129 (TARGET_C_MODE_FOR_SUFFIX): Define 'q' and 'Q' as the suffix to
1130 use for IEEE 128-bit floating point constants with -mfloat128.
1131 (rs6000_c_mode_for_suffix): Likewise.
1132 (TARGET_INVALID_BINARY_OP): Do not allow inter-mixing of IEEE
1133 128-bit floating point with IBM extended double floating point.
1134 (rs6000_invalid_binary_op): Likewise.
1135 (rs6000_gen_le_vsx_permute): On little endian systems generate a
1136 ROTATE insn instead of VEC_SELECT for IEEE 128-bit floating point
1137 types that can go in vector registers.
1138 (chain_contains_only_swaps): Properly swap IEEE 128-bit floating
1139 point types that can go in vector registers on little endian
1140 PowerPC systems.
1141 (mark_swaps_for_removal): Likewise.
1142 (rs6000_analyze_swaps): Likewise.
1143 (rs6000_mangle_type): Use U10__float128 for IEEE 128-bit floating point.
1144
1145 * config/rs6000/rs6000.md (FLOAT128_SFDFTF): Delete iterator,
1146 rework IEEE 128-bit floating point insns to deal with TFmode being
1147 either IBM extended double or IEEE 128-bit floating point.
1148 (IFKF): Likewise.
1149 (IBM128): Update iterator to add condition that the mode is IBM
1150 extended double.
1151 (IEEE128): New iterator for IEEE 128-bit floating point.
1152 (TFIFKF): Rename TFIFKF iterator to FLOAT128.
1153 (FLOAT128): Likewise.
1154 (signbit<mode>2): FLOAT128_IBM_P condition test moved into IBM128
1155 iterator.
1156 (neg<mode>2): Replace TFIFKF iterator with FLOAT128. Add support
1157 for TFmode being IEEE 128-bit floating point. Use IEEE128 iterator
1158 instead of hard coding TFmode or KFmode.
1159 (negtf2_internal): Likewise.
1160 (neg<mode>2_internal): Likewise.
1161 (abs<mode>2): Likewise.
1162 (abstf2_internal): Likewise.
1163 (abs<mode>2_internal): Likewise.
1164 (ieee_128bit_neg<mode>2): Likewise.
1165 (ieee_128bit_neg<mode>2_internal): Likewise.
1166 (ieee_128bit_abs<mode>2): Likewise.
1167 (ieee_128bit_abs<mode>2_internal): Likewise.
1168 (ieee_128bit_nabs<mode>2): Likewise.
1169 (ieee_128bit_nabs<mode>2_internal): Likewise.
1170 (extendiftf2): Add explicit conversions between 128-bit floating
1171 point types. Drop the old conversions that had become unwieldy.
1172 (extend<FLOAT128_SFDFTF:mode><IFKF:mode>2): Likewise.
1173 (extendifkf2): Likewise.
1174 (trunc<IFKF:mode><FLOAT128_SFDFTF:mode>2): Likewise.
1175 (extendtfkf2): Likewise.
1176 (fix_trunc<IFKF:mode><SDI:mode>2): Likewise.
1177 (trunciftf2): Likewise.
1178 (fixuns_trunc<IFKF:mode><SDI:mode>2): Likewise.
1179 (truncifkf2): Likewise.
1180 (float<SDI:mode><IFKF:mode>2): Likewise.
1181 (trunckftf2): Likewise.
1182 (floatuns<SDI:mode><IFKF:mode>2): Likewise.
1183 (trunctfif2): Likewise.
1184 (FP iterator): Allow TFmode to be IEEE 128-bit floating point.
1185 (extenddftf2): Rework 128-bit floating point conversions to
1186 properly handle -mabi=ieeelongdouble. Merge IFmode, TFmode, and
1187 KFmode expanders into one function.
1188 (extenddf<mode>2): Likewise.
1189 (extenddftf2_fprs): Likewise.
1190 (extenddf<mode>2_fprs): Likewise.
1191 (extenddftf2_vsx): Likewise.
1192 (extenddf<mode>2_vsx): Likewise.
1193 (extendsftf2): Likewise.
1194 (extendsf<mode>2): Likewise.
1195 (trunctfdf2): Likewise.
1196 (trunc<mode>df2): Likewise.
1197 (trunctfdf2_internal1): Likewise.
1198 (trunc<mode>df2_internal1): Likewise.
1199 (trunctfdf2_internal2): Likewise.
1200 (trunc<mode>df2_internal2): Likewise.
1201 (trunctfsf2): Likewise.
1202 (trunc<mode>sf2): Likewise.
1203 (trunctfsf2_fprs): Likewise.
1204 (trunc<mode>sf2_fprs): Likewise.
1205 (floatsit2f): Likewise.
1206 (floatsi<mode>2): Likewise.
1207 (fix_trunc_helper): Likewise.
1208 (fix_trunc_helper<mode>): Likewise.
1209 (fix_trunctfsi2): Likewise.
1210 (fix_trunc<mode>si2): Likewise.
1211 (fix_trunctfsi2_fprs): Likewise.
1212 (fix_trunc<mode>si2_fprs): Likewise.
1213 (fix_trunctfsi2_internal): Likewise.
1214 (fix_trunc<mode>si2_internal): Likewise.
1215 (fix_trunctfdi2): Likewise.
1216 (fix_trunc<mode>di2): Likewise.
1217 (fixuns_trunctf<mode>2): Likewise.
1218 (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
1219 (floatditf2): Likewise.
1220 (floatdi<mode>2): Likewise.
1221 (floatuns<mode>tf2): Likewise.
1222 (floatuns<SDI:mode><IEEE128:mode>): Likewise.
1223 (cmptf_internal1): Use a mode iterator to add support for both
1224 types (IFmode, TFmode) that support IBM extended double.
1225 (cmp<mode>_internal1): Likewise.
1226 (cmptf_internal2): Likewise.
1227 (cmp<mode>_internal2): Likewise.
1228
1229 * doc/extend.texi (Floating Types): Document __ibm128 and
1230 __float128 on PowerPC.
1231
1232 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
1233 -mfloat128 and -mno-float128.
1234
1235 2015-10-29 Michael Meissner <meissner@linux.vnet.ibm.com>
1236
1237 * config/rs6000/rs6000.h (ALTIVEC_VECTOR_MODE): Add IEEE 128-bit
1238 floating point modes that can go in vector registers.
1239 (MODES_TIEABLE_P): Move tests for vector modes before tests for
1240 scalar floating point, so that IEEE 128-bit floating point that
1241 can go in vector registers bind with vectors and not FP.
1242 (struct rs6000_args): Add libcall field.
1243
1244 * config/rs6000/rs6000.opt (-mfloat128-*): Delete -mfloat128-none
1245 and -mfloat128-software switches. Replace them with a binary
1246 -mfloat128 switch.
1247 (-mfloat128): Likewise.
1248
1249 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Allow
1250 128-bit floating point types in GPRs, even if the appropriate
1251 option enabling the type was not used.
1252 (rs6000_debug_reg_global): Remove -mfloat128-{software,none}
1253 debugging.
1254 (rs6000_setup_reg_addr_masks): Do not allow pre-increment and
1255 pre-decrement on IEEE 128-bit floating point values.
1256 (rs6000_init_hard_regno_mode_ok): Change test for whether TFmode
1257 is IEEE 128-bit floating point.
1258 (rs6000_init_hard_regno_mode_ok): Add reload handlers for IEEE
1259 128-bit floating point types that can go in vector registers.
1260 (rs6000_option_override_internal): Change -mfloat128-none and
1261 -mfloat128-software to -mfloat128, and move code to be near other
1262 VSX option handling.
1263 (rs6000_option_override_internal): Disable -mfloat128 if we don't
1264 have the Altivec ABI.
1265 (rs6000_init_builtins): Don't make TFmode use either IFmode or
1266 KFmode floating point nodes. Instead, have three separate nodes.
1267 (rs6000_scalar_mode_supported_p): Add support for IFmode to allow
1268 eventually moving the long double default to IEEE 128-bit floating
1269 point.
1270 (rs6000_opt_masks): Add -mfloat128.
1271 (struct rs6000_opt_var): Fix typo in comment.
1272 (init_cumulative_args): Initialize libcall field in
1273 CUMULATIVE_ARGS.
1274 (rs6000_function_arg): Treat library functions as if they had
1275 prototypes to prevent IEEE 128-bit support functions from passing
1276 arguments in both GPRs and vector registers.
1277 (rs6000_arg_partial_bytes): Likewise.
1278
1279 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add -mfloat128 as
1280 an option that can be turned on via -mcpu=<xxx>.
1281
1282 * config/rs6000/rs6000-opts.h (enum float128_type_t): Delete, no
1283 longer used.
1284
1285 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
1286 __FLOAT128__ if -mfloat128. Define __LONG_DOUBLE_IEEE128__ if long
1287 double is IEEE 128-bit. Define __LONG_DOUBLE_IBM128__ if long
1288 double is IBM extended double.
1289
1290 * config/rs6000/predicates.md (reg_or_indexed_operand): Allow
1291 SUBREGs.
1292
1293 2015-10-29 Mikhail Maltsev <maltsevm@gmail.com>
1294
1295 * genautomata.c: Use CHECKING_P instead of ENABLE_CHECKING.
1296 * genconditions.c: Define CHECKING_P in the generated code.
1297 * genextract.c: Use flag_checking in insn_extract.
1298 * gengtype.c (main): Remove conditional compilation.
1299 * gengtype.h: Likewise.
1300
1301 2015-10-29 Jeff Law <law@redhat.com>
1302
1303 PR tree-optimization/67892
1304 * tree-ssa-threadedge.c (simplify_controL_stmt_condition): Fix typo
1305 in comment.
1306 (thread_through_normal_block): If we have seen a backedge, then
1307 do nothing. No longer call find_jump_threads_backwards here.
1308 (thread_across_edge): Use find_jump_threads_backwards to find
1309 jump threads if the old style threader was not successful.
1310 * tree-ssa-threadbackward.c (get_gimple_control_stmt): Use
1311 gsi_last_nondebug_bb. Return NULL if the block does not end
1312 with a control statement.
1313 (find_jump_threads_backwards): Setup code moved here from
1314 tree-ssa-threadedge.c::thread_through_normal_block. Accept
1315 single edge argument instead of name & block.
1316 * tree-ssa-threadbackward.h (find_jump_threads_backwards): Update
1317 prototype.
1318
1319 2015-10-29 Tom de Vries <tom@codesourcery.com>
1320
1321 * fold-const.c (fold_unary_loc): Remove folding inhibition for restrict
1322 types.
1323
1324 2015-10-29 Nathan Sidwell <nathan@codesourcery.com>
1325
1326 * omp-low.c (lower_omp_target): Remove unreachable code & merge
1327 ifs.
1328
1329 2015-10-29 Marc Glisse <marc.glisse@inria.fr>
1330
1331 * match.pd (X-(X/Y)*Y): Properly handle conversions and commutativity.
1332
1333 2015-10-29 Richard Sandiford <richard.sandiford@arm.com>
1334
1335 * tree-call-cdce.c (shrink_wrap_one_built_in_call): Remove
1336 guard_bb0 and use guard_bb throughout.
1337
1338 2015-10-29 Richard Sandiford <richard.sandiford@arm.com>
1339
1340 * tree-call-cdce.c (shrink_wrap_one_built_in_call): Remove
1341 unnecessary label.
1342
1343 2015-10-29 Richard Biener <rguenther@suse.de>
1344
1345 PR middle-end/68142
1346 * fold-const.c (extract_muldiv_1): Avoid introducing undefined
1347 overflow.
1348
1349 2015-10-29 Andrew MacLeod <amacleod@redhat.com>
1350
1351 * alias.c: Reorder #include statements and remove duplicates.
1352 * asan.c: Likewise.
1353 * attribs.c: Likewise.
1354 * auto-inc-dec.c: Likewise.
1355 * auto-profile.c: Likewise.
1356 * bb-reorder.c: Likewise.
1357 * bt-load.c: Likewise.
1358 * builtins.c: Likewise.
1359 * caller-save.c: Likewise.
1360 * calls.c: Likewise.
1361 * ccmp.c: Likewise.
1362 * cfg.c: Likewise.
1363 * cfganal.c: Likewise.
1364 * cfgbuild.c: Likewise.
1365 * cfgcleanup.c: Likewise.
1366 * cfgexpand.c: Likewise.
1367 * cfghooks.c: Likewise.
1368 * cfgloop.c: Likewise.
1369 * cfgloopanal.c: Likewise.
1370 * cfgloopmanip.c: Likewise.
1371 * cfgrtl.c: Likewise.
1372 * cgraph.c: Likewise.
1373 * cgraphbuild.c: Likewise.
1374 * cgraphclones.c: Likewise.
1375 * cgraphunit.c: Likewise.
1376 * cilk-common.c: Likewise.
1377 * combine-stack-adj.c: Likewise.
1378 * combine.c: Likewise.
1379 * compare-elim.c: Likewise.
1380 * convert.c: Likewise.
1381 * coverage.c: Likewise.
1382 * cppbuiltin.c: Likewise.
1383 * cprop.c: Likewise.
1384 * cse.c: Likewise.
1385 * cselib.c: Likewise.
1386 * data-streamer-in.c: Likewise.
1387 * data-streamer-out.c: Likewise.
1388 * data-streamer.c: Likewise.
1389 * dbxout.c: Likewise.
1390 * dce.c: Likewise.
1391 * ddg.c: Likewise.
1392 * debug.c: Likewise.
1393 * df-core.c: Likewise.
1394 * df-problems.c: Likewise.
1395 * df-scan.c: Likewise.
1396 * dfp.c: Likewise.
1397 * dojump.c: Likewise.
1398 * dominance.c: Likewise.
1399 * double-int.c: Likewise.
1400 * dse.c: Likewise.
1401 * dumpfile.c: Likewise.
1402 * dwarf2asm.c: Likewise.
1403 * dwarf2cfi.c: Likewise.
1404 * dwarf2out.c: Likewise.
1405 * emit-rtl.c: Likewise.
1406 * except.c: Likewise.
1407 * explow.c: Likewise.
1408 * expmed.c: Likewise.
1409 * expr.c: Likewise.
1410 * final.c: Likewise.
1411 * fixed-value.c: Likewise.
1412 * fold-const.c: Likewise.
1413 * function.c: Likewise.
1414 * fwprop.c: Likewise.
1415 * gcse.c: Likewise.
1416 * generic-match-head.c: Likewise.
1417 * ggc-common.c: Likewise.
1418 * gimple-builder.c: Likewise.
1419 * gimple-expr.c: Likewise.
1420 * gimple-fold.c: Likewise.
1421 * gimple-iterator.c: Likewise.
1422 * gimple-low.c: Likewise.
1423 * gimple-match-head.c: Likewise.
1424 * gimple-pretty-print.c: Likewise.
1425 * gimple-ssa-isolate-paths.c: Likewise.
1426 * gimple-ssa-strength-reduction.c: Likewise.
1427 * gimple-streamer-in.c: Likewise.
1428 * gimple-streamer-out.c: Likewise.
1429 * gimple-walk.c: Likewise.
1430 * gimple.c: Likewise.
1431 * gimplify-me.c: Likewise.
1432 * gimplify.c: Likewise.
1433 * godump.c: Likewise.
1434 * graph.c: Likewise.
1435 * graphite-poly.c: Likewise.
1436 * haifa-sched.c: Likewise.
1437 * hw-doloop.c: Likewise.
1438 * ifcvt.c: Likewise.
1439 * incpath.c: Likewise.
1440 * init-regs.c: Likewise.
1441 * internal-fn.c: Likewise.
1442 * ipa-chkp.c: Likewise.
1443 * ipa-comdats.c: Likewise.
1444 * ipa-cp.c: Likewise.
1445 * ipa-devirt.c: Likewise.
1446 * ipa-icf-gimple.c: Likewise.
1447 * ipa-icf.c: Likewise.
1448 * ipa-inline-analysis.c: Likewise.
1449 * ipa-inline-transform.c: Likewise.
1450 * ipa-inline.c: Likewise.
1451 * ipa-polymorphic-call.c: Likewise.
1452 * ipa-profile.c: Likewise.
1453 * ipa-prop.c: Likewise.
1454 * ipa-pure-const.c: Likewise.
1455 * ipa-ref.c: Likewise.
1456 * ipa-reference.c: Likewise.
1457 * ipa-split.c: Likewise.
1458 * ipa-utils.c: Likewise.
1459 * ipa-visibility.c: Likewise.
1460 * ipa.c: Likewise.
1461 * ira-build.c: Likewise.
1462 * ira-color.c: Likewise.
1463 * ira-conflicts.c: Likewise.
1464 * ira-costs.c: Likewise.
1465 * ira-emit.c: Likewise.
1466 * ira-lives.c: Likewise.
1467 * ira.c: Likewise.
1468 * jump.c: Likewise.
1469 * langhooks.c: Likewise.
1470 * lcm.c: Likewise.
1471 * lists.c: Likewise.
1472 * loop-doloop.c: Likewise.
1473 * loop-init.c: Likewise.
1474 * loop-invariant.c: Likewise.
1475 * loop-iv.c: Likewise.
1476 * loop-unroll.c: Likewise.
1477 * lower-subreg.c: Likewise.
1478 * lra-assigns.c: Likewise.
1479 * lra-coalesce.c: Likewise.
1480 * lra-constraints.c: Likewise.
1481 * lra-eliminations.c: Likewise.
1482 * lra-lives.c: Likewise.
1483 * lra-remat.c: Likewise.
1484 * lra-spills.c: Likewise.
1485 * lra.c: Likewise.
1486 * lto-cgraph.c: Likewise.
1487 * lto-compress.c: Likewise.
1488 * lto-opts.c: Likewise.
1489 * lto-section-in.c: Likewise.
1490 * lto-section-out.c: Likewise.
1491 * lto-streamer-in.c: Likewise.
1492 * lto-streamer-out.c: Likewise.
1493 * lto-streamer.c: Likewise.
1494 * mode-switching.c: Likewise.
1495 * modulo-sched.c: Likewise.
1496 * omp-low.c: Likewise.
1497 * optabs.c: Likewise.
1498 * opts-global.c: Likewise.
1499 * passes.c: Likewise.
1500 * plugin.c: Likewise.
1501 * postreload-gcse.c: Likewise.
1502 * postreload.c: Likewise.
1503 * predict.c: Likewise.
1504 * print-tree.c: Likewise.
1505 * profile.c: Likewise.
1506 * real.c: Likewise.
1507 * realmpfr.c: Likewise.
1508 * recog.c: Likewise.
1509 * ree.c: Likewise.
1510 * reg-stack.c: Likewise.
1511 * regcprop.c: Likewise.
1512 * reginfo.c: Likewise.
1513 * regrename.c: Likewise.
1514 * regstat.c: Likewise.
1515 * reload.c: Likewise.
1516 * reload1.c: Likewise.
1517 * reorg.c: Likewise.
1518 * resource.c: Likewise.
1519 * rtl-chkp.c: Likewise.
1520 * rtl-error.c: Likewise.
1521 * rtlanal.c: Likewise.
1522 * rtlhooks.c: Likewise.
1523 * sanopt.c: Likewise.
1524 * sched-deps.c: Likewise.
1525 * sched-ebb.c: Likewise.
1526 * sched-rgn.c: Likewise.
1527 * sese.c: Likewise.
1528 * shrink-wrap.c: Likewise.
1529 * simplify-rtx.c: Likewise.
1530 * stack-ptr-mod.c: Likewise.
1531 * statistics.c: Likewise.
1532 * stmt.c: Likewise.
1533 * stor-layout.c: Likewise.
1534 * store-motion.c: Likewise.
1535 * stringpool.c: Likewise.
1536 * symtab.c: Likewise.
1537 * target-globals.c: Likewise.
1538 * targhooks.c: Likewise.
1539 * toplev.c: Likewise.
1540 * tracer.c: Likewise.
1541 * trans-mem.c: Likewise.
1542 * tree-affine.c: Likewise.
1543 * tree-call-cdce.c: Likewise.
1544 * tree-cfg.c: Likewise.
1545 * tree-cfgcleanup.c: Likewise.
1546 * tree-chkp-opt.c: Likewise.
1547 * tree-chkp.c: Likewise.
1548 * tree-chrec.c: Likewise.
1549 * tree-complex.c: Likewise.
1550 * tree-data-ref.c: Likewise.
1551 * tree-dfa.c: Likewise.
1552 * tree-diagnostic.c: Likewise.
1553 * tree-dump.c: Likewise.
1554 * tree-eh.c: Likewise.
1555 * tree-emutls.c: Likewise.
1556 * tree-if-conv.c: Likewise.
1557 * tree-inline.c: Likewise.
1558 * tree-into-ssa.c: Likewise.
1559 * tree-iterator.c: Likewise.
1560 * tree-loop-distribution.c: Likewise.
1561 * tree-nested.c: Likewise.
1562 * tree-nrv.c: Likewise.
1563 * tree-object-size.c: Likewise.
1564 * tree-outof-ssa.c: Likewise.
1565 * tree-parloops.c: Likewise.
1566 * tree-phinodes.c: Likewise.
1567 * tree-predcom.c: Likewise.
1568 * tree-pretty-print.c: Likewise.
1569 * tree-profile.c: Likewise.
1570 * tree-scalar-evolution.c: Likewise.
1571 * tree-sra.c: Likewise.
1572 * tree-ssa-address.c: Likewise.
1573 * tree-ssa-alias.c: Likewise.
1574 * tree-ssa-ccp.c: Likewise.
1575 * tree-ssa-coalesce.c: Likewise.
1576 * tree-ssa-copy.c: Likewise.
1577 * tree-ssa-dce.c: Likewise.
1578 * tree-ssa-dom.c: Likewise.
1579 * tree-ssa-dse.c: Likewise.
1580 * tree-ssa-forwprop.c: Likewise.
1581 * tree-ssa-ifcombine.c: Likewise.
1582 * tree-ssa-live.c: Likewise.
1583 * tree-ssa-loop-ch.c: Likewise.
1584 * tree-ssa-loop-im.c: Likewise.
1585 * tree-ssa-loop-ivcanon.c: Likewise.
1586 * tree-ssa-loop-ivopts.c: Likewise.
1587 * tree-ssa-loop-manip.c: Likewise.
1588 * tree-ssa-loop-niter.c: Likewise.
1589 * tree-ssa-loop-prefetch.c: Likewise.
1590 * tree-ssa-loop-unswitch.c: Likewise.
1591 * tree-ssa-loop.c: Likewise.
1592 * tree-ssa-math-opts.c: Likewise.
1593 * tree-ssa-operands.c: Likewise.
1594 * tree-ssa-phiopt.c: Likewise.
1595 * tree-ssa-phiprop.c: Likewise.
1596 * tree-ssa-pre.c: Likewise.
1597 * tree-ssa-propagate.c: Likewise.
1598 * tree-ssa-reassoc.c: Likewise.
1599 * tree-ssa-sccvn.c: Likewise.
1600 * tree-ssa-scopedtables.c: Likewise.
1601 * tree-ssa-sink.c: Likewise.
1602 * tree-ssa-strlen.c: Likewise.
1603 * tree-ssa-structalias.c: Likewise.
1604 * tree-ssa-tail-merge.c: Likewise.
1605 * tree-ssa-ter.c: Likewise.
1606 * tree-ssa-threadedge.c: Likewise.
1607 * tree-ssa-threadupdate.c: Likewise.
1608 * tree-ssa-uncprop.c: Likewise.
1609 * tree-ssa-uninit.c: Likewise.
1610 * tree-ssa.c: Likewise.
1611 * tree-ssanames.c: Likewise.
1612 * tree-stdarg.c: Likewise.
1613 * tree-streamer-in.c: Likewise.
1614 * tree-streamer-out.c: Likewise.
1615 * tree-streamer.c: Likewise.
1616 * tree-switch-conversion.c: Likewise.
1617 * tree-tailcall.c: Likewise.
1618 * tree-vect-data-refs.c: Likewise.
1619 * tree-vect-generic.c: Likewise.
1620 * tree-vect-loop-manip.c: Likewise.
1621 * tree-vect-loop.c: Likewise.
1622 * tree-vect-patterns.c: Likewise.
1623 * tree-vect-slp.c: Likewise.
1624 * tree-vect-stmts.c: Likewise.
1625 * tree-vectorizer.c: Likewise.
1626 * tree-vrp.c: Likewise.
1627 * tree.c: Likewise.
1628 * tsan.c: Likewise.
1629 * ubsan.c: Likewise.
1630 * value-prof.c: Likewise.
1631 * var-tracking.c: Likewise.
1632 * varasm.c: Likewise.
1633 * varpool.c: Likewise.
1634 * vtable-verify.c: Likewise.
1635 * web.c: Likewise.
1636 * wide-int-print.cc: Likewise.
1637 * wide-int.cc: Likewise.
1638 * xcoffout.c: Likewise.
1639
1640 2015-10-29 H.J. Lu <hongjiu.lu@intel.com>
1641
1642 * Makefile.in (NO_PIE_CFLAGS): New.
1643 (NO_PIE_FLAG): Likewise.
1644 (NO_PIE_CFLAGS_FOR_BUILD): Likewise.
1645 (NO_PIE_FLAG_FOR_BUILD): Likewise.
1646 (BUILD_NO_PIE_CFLAGS): Likewise.
1647 (BUILD_NO_PIE_FLAG): Likewise.
1648 (COMPILER): Replace @NO_PIE_CFLAGS@ with $(NO_PIE_CFLAGS).
1649 (LINKER): Replace @NO_PIE_FLAG@ with $(NO_PIE_FLAG).
1650 (BUILD_CFLAGS): Replace @NO_PIE_CFLAGS@ with
1651 $(BUILD_NO_PIE_CFLAGS).
1652 (BUILD_CXXFLAGS): Likewise.
1653 (BUILD_LDFLAGS ): Replace @NO_PIE_FLAG@ with
1654 $(BUILD_NO_PIE_FLAG).
1655 * configure.ac (BUILD_NO_PIE_CFLAGS): New. AC_SUBST.
1656 (BUILD_NO_PIE_FLAG): Likewise.
1657 (NO_PIE_CFLAGS_FOR_BUILD): Likewise.
1658 (NO_PIE_FLAG_FOR_BUILD): Likewise.
1659 * configure: Regenerated.
1660
1661 2015-10-29 Richard Biener <rguenther@suse.de>
1662
1663 PR middle-end/56956
1664 * fold-const.c (fold_cond_expr_with_comparison): Do not fold
1665 unsigned conditonal negation to ABS_EXPR.
1666
1667 2015-10-29 Richard Biener <rguenther@suse.de>
1668
1669 * gimple-match-head.c (gimple_simplify): Remove premature checking
1670 of builtin_decl_implicit of function calls we simplify.
1671
1672 2015-10-29 Bin Cheng <bin.cheng@arm.com>
1673
1674 * tree-ssa-loop-ivopts.c (split_address_cost): Check depends_on.
1675 (get_computation_cost_at): Ditto.
1676 (determine_use_iv_cost_address): Pass NULL for arguments depends_on
1677 and inv_expr_id.
1678
1679 2015-10-28 Tom de Vries <tom@codesourcery.com>
1680
1681 * tree-ssa-structalias.c (intra_create_variable_infos): Remove
1682 superfluous code.
1683
1684 2015-10-28 Jason Merrill <jason@redhat.com>
1685
1686 * Makefile.in (TAGS): Include libcpp and libiberty.
1687
1688 2015-10-28 Nathan Sidwell <nathan@codesourcery.com>
1689
1690 * omp-low.c (MASK_GANG, MASK_WORKER, MASK_VECTOR): Delete.
1691 (extract_omp_for_data): Remove OpenACC special handling of
1692 chunking.
1693
1694 * config/nvptx/nvptx.c (nvptx_print_operand): Remove 'd' case.
1695 (struct parallel): Update comment.
1696 (nvptx_reorg): Likewise.
1697 (nvptx_neuter): Cleanup whitespace.
1698
1699 2015-10-28 Richard Henderson <rth@redhat.com>
1700
1701 * tree-eh.c (mark_reachable_handlers): Fix typo in assert.
1702
1703 2015-10-05 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
1704
1705 PR target/67839
1706 * config/avr/predicates.md (low_io_address_operand): Don't
1707 consider MODE when computing upper bound.
1708 (io_address_operand): Likewise.
1709
1710 2015-10-28 Jan Hubicka <hubicka@ucw.cz>
1711
1712 * fold-const.c (operand_equal_p): Do not verify that types are
1713 compatible for MEM_REFs.
1714
1715 2015-10-28 Richard Biener <rguenther@suse.de>
1716
1717 * gimple-match-head.c (gimple_simplify): Allow VECTOR_CSTs
1718 in simplifying VEC_COND_EXPR conditions.
1719
1720 2015-10-28 Tom de Vries <tom@codesourcery.com>
1721
1722 * tree-ssa-structalias.c (intra_create_variable_infos): Don't iterate
1723 into vi_next of a full_var.
1724
1725 2015-10-28 Tom de Vries <tom@codesourcery.com>
1726
1727 * tree-ssa-structalias.c (new_var_info, make_heapvar)
1728 (make_constraint_from_restrict, make_constraint_from_global_restrict)
1729 (create_function_info_for, create_variable_info_for_1)
1730 (create_variable_info_for): Add and handle add_id parameter.
1731 (get_call_vi, new_scalar_tmp_constraint_exp, handle_rhs_call)
1732 (init_base_vars): Add extra argument to calls to new_var_info.
1733 (get_vi_for_tree): Add extra argument to call to
1734 create_variable_info_for.
1735 (process_constraint, do_deref, process_all_all_constraints): Add extra
1736 argument to calls to new_scalar_tmp_constraint_exp.
1737 (handle_lhs_call, find_func_aliases_for_builtin_call): Add extra
1738 argument to calls to make_heapvar.
1739 (make_restrict_var_constraints): Add extra argument to call to
1740 make_constraint_from_global_restrict.
1741 (intra_create_variable_infos): Add extra argument to call to
1742 create_variable_info_for_1.
1743 (ipa_pta_execute): Add extra argument to call to
1744 create_function_info_for.
1745
1746 2015-10-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1747
1748 * config/aarch64/aarch64.md (call, call_value, sibcall): Handle noplt.
1749 (sibcall_value): Likewise.
1750
1751 2015-10-28 Nathan Sidwell <nathan@codesourcery.com>
1752
1753 * config/nvptx/nvptx.h (struct machine_function): Add
1754 axis_predicate.
1755 * config/nvptx/nvptx-protos.h (nvptx_expand_oacc_fork,
1756 nvptx_expand_oacc_join): Declare.
1757 * config/nvptx/nvptx.md (UNSPEC_NTID, UNSPEC_TID): Delete.
1758 (UNSPEC_DIM_SIZE, UNSPEC_SHARED_DATA, UNSPEC_BIT_CONV,
1759 UNSPEC_SHUFFLE, UNSPEC_BR_UNIFIED): New.
1760 (UNSPECV_BARSYNC, UNSPECV_DIM_POS, UNSPECV_FORK, UNSPECV_FORKED,
1761 UNSPECV_JOINING, UNSPECV_JOIN): New.
1762 (BITS, BITD): New mode iterators.
1763 (br_true_uni, br_false_uni): New.
1764 (*oacc_ntid_insn, oacc_ntid, *oacc_tid_insn, oacc_tid): Delete.
1765 (oacc_dim_size, oacc_dim_pos): New.
1766 (nvptx_fork, nvptx_forked, nvptx_joining, nvptx_join): New.
1767 (oacc_fork, oacc_join): New.
1768 (nvptx_shuffle<mode>, unpack<mode>si2, packsi<mode>2): New.
1769 (worker_load<mode>, worker_store<mode>): New.
1770 (nvptx_barsync): New.
1771 * config/nvptx/nvptx.c: Include gimple.h & dumpfile.h.
1772 (SHUFFLE_UP, SHUFFLE_DOWN, SHUFFLE_BFLY, SHUFFLE_IDX): Define.
1773 (worker_bcast_hwm, worker_bcast_align, worker_bcast_name,
1774 worker_bcast_sym): New.
1775 (nvptx_option_override): Initialize worker broadcast buffer.
1776 (nvptx_emit_forking, nvptx_emit_joining): New.
1777 (nvptx_init_axis_predicate): New.
1778 (nvptx_declare_function_name): Init axis predicates.
1779 (nvptx_expand_call): Add fork/join markers around routine call.
1780 (nvptx_expand_oacc_fork, nvptx_expand_oacc_join): New.
1781 (nvptx_gen_unpack, nvptx_gen_pack, nvptx_gen_shuffle): New.
1782 (nvptx_gen_vcast): New.
1783 (struct wcast_data_t): New.
1784 (enum propagate_mask): New.
1785 (nvptx_gen_wcast): New.
1786 (nvptx_print_operand): Add 'S' case.
1787 (struct parallel): New.
1788 (parallel::parallel, parallel::~parallel): New.
1789 (bb_insn_map_t, insn_bb_t, insn_bb_vec_t): New typedefs.
1790 (nvptx_split_blocks, nvptx_discover_pre, nvptx_dump_pars,
1791 nvptx_find_par, nvptx_discover_pars): New.
1792 (nvptx_propagate): New.
1793 (vprop_gen, nvptx_vpropagate): New.
1794 (wprop_gen, nvptx_wpropagate): New.
1795 (nvptx_wsync): New.
1796 (nvptx_single, nvptx_skip_par): New.
1797 (nvptx_process_pars, nvptx_neuter_pars): New.
1798 (ntptx_reorg): Split blocks, generate parallel structure, apply
1799 neutering.
1800 (nvptx_cannot_copy_insn_p): New.
1801 (nvptx_file_end): Emit worker broadcast decl.
1802 (nvptx_goacc_fork_join): New.
1803 (TARGET_CANNOT_COPY_INSN_P): Override.
1804 (TARGET_GOACC_FORK_JOIN): Override.
1805
1806 2015-10-28 Richard Biener <rguenther@suse.de>
1807
1808 * fold-const.c (negate_expr_p): Adjust the division case to
1809 properly avoid introducing undefined overflow.
1810 (fold_negate_expr): Likewise.
1811
1812 2015-10-28 Richard Biener <rguenther@suse.de>
1813
1814 PR tree-optimization/65962
1815 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
1816 Avoid creating loop carried dependences also for outer loops
1817 of the loop a use to replace is in.
1818
1819 2015-10-28 Richard Biener <rguenther@suse.de>
1820
1821 * common.opt (fchecking): New flag controlling flag_checking.
1822 * passes.c (verify_curr_properties): Drop DEBUG_FUNCTION.
1823 * timevar.c (timer::print): Adjust output.
1824 * doc/invoke.texi (fchecking): Document.
1825
1826 2015-10-28 Richard Biener <rguenther@suse.de>
1827
1828 PR middle-end/68067
1829 * fold-const.c (negate_expr_p): We cannot negate plus or minus
1830 if overflow is not wrapping. Likewise multiplication unless
1831 one operand is constant and not power of two.
1832 (fold_negate_expr): Adjust accordingly.
1833
1834 2015-10-27 Nathan Sidwell <nathan@codesourcery.com>
1835
1836 * omp-low.c (struct omp_context): Remove gwv_below, gwv_this
1837 fields.
1838 (is_oacc_parallel, is_oacc_kernels): New.
1839 (enclosing_target_ctx): May return NULL.
1840 (ctx_in_oacc_kernels_region): New.
1841 (check_oacc_kernel_gwv): New.
1842 (oacc_loop_or_target_p): Delete.
1843 (scan_omp_for): Don't calculate gwv mask. Check parallel clause
1844 operands. Strip reductions fro kernels.
1845 (scan_omp_target): Don't calculate gwv mask.
1846 (lower_oacc_head_mark, lower_oacc_loop_marker,
1847 lower_oacc_head_tail): New.
1848 (struct oacc_collapse): New.
1849 (expand_oacc_collapse_init, expand_oacc_collapse_vars): New.
1850 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
1851 Remove OpenACC handling.
1852 (expand_oacc_for): New.
1853 (expand_omp_for): Call expand_oacc_for.
1854 (lower_omp_for): Call lower_oacc_head_tail.
1855
1856 2015-10-27 Mikhail Maltsev <maltsevm@gmail.com>
1857
1858 * attribs.c (check_attribute_tables): New function, broken out from...
1859 (init_attributes): Use it.
1860 * cfgcleanup.c (try_optimize_cfg): Use flag_checking, CHECKING_P
1861 gcc_checking_assert and checking_* functions to eliminate
1862 ENABLE_CHECKING conditionals.
1863 * cfgexpand.c (expand_goto, expand_debug_expr): Likewise.
1864 (pass_expand::execute): Likewise.
1865 * cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
1866 * cgraphunit.c (mark_functions_to_output): Likewise.
1867 (cgraph_node::expand_thunk): Likewise.
1868 (symbol_table::compile): Likewise.
1869 * ddg.c (add_cross_iteration_register_deps): Likewise.
1870 (create_ddg_all_sccs): Likewise.
1871 * df-core.c (df_finish_pass, df_analyze): Likewise.
1872 * diagnostic-core.h: Likewise.
1873 * diagnostic.c (diagnostic_report_diagnostic): Likewise.
1874 * dominance.c (calculate_dominance_info): Likewise.
1875 * dwarf2out.c (add_AT_die_ref): Likewise.
1876 (const_ok_for_output_1, mem_loc_descriptor): Likewise.
1877 (loc_list_from_tree, gen_lexical_block_die): Likewise.
1878 gen_type_die_with_usage, gen_type_die): Likewise.
1879 (dwarf2out_decl): Likewise.
1880 * emit-rtl.c (verify_rtx_sharing, reorder_insns_nobb): Likewise.
1881 * except.c (duplicate_eh_regions): Likewise.
1882 * fwprop.c (register_active_defs, update_df_init): Likewise.
1883 (fwprop_init, fwprop_done): Likewise.
1884 (update_uses): Likewise.
1885 * ggc-page.c (ggc_grow): Likewise.
1886 * gimplify.c (gimplify_body): Likewise.
1887 (gimplify_hasher::equal): Likewise.
1888 * graphite-isl-ast-to-gimple.c (graphite_verify): Likewise.
1889 * graphite-scop-detection.c (canonicalize_loop_closed_ssa_form):
1890 Likewise.
1891 * graphite-sese-to-poly.c (rewrite_reductions_out_of_ssa): Likewise.
1892 (rewrite_cross_bb_scalar_deps_out_of_ssa): Likwise.
1893 * hash-table.h (::find_empty_slot_for_expand): Likewise.
1894 * ifcvt.c (if_convert): Likewise.
1895 * ipa-cp.c (ipcp_propagate_stage): Likewise.
1896 * ipa-devirt.c (type_in_anonymous_namespace_p): Likewise.
1897 (odr_type_p, odr_types_equivalent_p): Likewise.
1898 (add_type_duplicate, get_odr_type): Likewise.
1899 * ipa-icf.c (sem_item_optimizer::execute): Likewise.
1900 (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
1901 (sem_item_optimizer::verify_classes): Likewise.
1902 (sem_item_optimizer::traverse_congruence_split): Likewise.
1903 (sem_item_optimizer::checking_verify_classes): New.
1904 * ipa-icf.h (sem_item_optimizer::checking_verify_classes): Add new
1905 method.
1906 * cfgrtl.c (commit_edge_insertions): Likewise.
1907 (fixup_reorder_chain, cfg_layout_finalize): Likewise.
1908 (rtl_flow_call_edges_add): Likewise.
1909 * cgraph.c (symbol_table::create_edge): Likewise.
1910 (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
1911 * cgraph.h (symtab_node): Likewise.
1912 (symtab_node::checking_verify_symtab_nodes): Define.
1913 (cgraph_node::checking_verify_cgraph_nodes): Define.
1914 * cfghooks.h (checking_verify_flow_info): Define.
1915 * cfgloop.h (checking_verify_loop_structure): Define.
1916 * dominance.h (checking_verify_dominators): Define.
1917 * et-forest.c: Fix comment.
1918 * ipa-inline-analysis.c (compute_inline_parameters): Use flag_checking,
1919 CHECKING_P gcc_checking_assert and checking_* functions to eliminate
1920 ENABLE_CHECKING conditionals.
1921 * ipa-inline-transform.c (save_inline_function_body): Likewise.
1922 * ipa-inline.c (inline_small_functions): Likewise.
1923 (early_inliner): Likewise.
1924 * ipa-inline.h (estimate_edge_growth): Likewise.
1925 * ipa-visibility.c (function_and_variable_visibility): Likewise.
1926 * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
1927 (ipa_single_use): Likewise.
1928 * ira-int.h: Likewise.
1929 * ira.c (ira): Likewise.
1930 * loop-doloop.c (doloop_optimize_loops): Likewise.
1931 * loop-init.c (loop_optimizer_init, fix_loop_structure): Likewise.
1932 * loop-invariant.c (move_loop_invariants): Likewise.
1933 * lra-assigns.c (lra_assign): Likewise.
1934 * lra-constraints.c (lra_constraints): Likewise.
1935 * lra-eliminations.c (lra_eliminate): Likewise.
1936 * lra-int.h (struct lra_reg): Likewise.
1937 * lra-lives.c (check_pseudos_live_through_calls): Likewise.
1938 (lra_create_live_ranges_1): Likewise.
1939 * lra-remat.c (create_remat_bb_data): Likewise.
1940 * lra.c (lra_update_insn_recog_data, restore_scratches): Likewise.
1941 (lra): Likewise.
1942 (check_rtl): Always define. Remove incorrect guard around
1943 extract_constrain_insn call.
1944 * lto-cgraph.c (input_cgraph_1: Use flag_checking,
1945 CHECKING_P gcc_checking_assert and checking_* functions to eliminate
1946 ENABLE_CHECKING conditionals.
1947 * lto-streamer-out.c (DFS::DFS): Likewise.
1948 (lto_output): Likewise.
1949 * lto-streamer.c (lto_streamer_init): Likewise.
1950 * omp-low.c (scan_omp_target, expand_omp_taskreg): Likewise.
1951 expand_omp_target, execute_expand_omp): Likewise.
1952 (lower_omp_target): Likewise.
1953 * passes.c (execute_function_todo): Likewise.
1954 (execute_todo, execute_one_pass): Likewise.
1955 (verify_curr_properties): Always define.
1956 * predict.c (tree_estimate_probability: Use flag_checking,
1957 CHECKING_P gcc_checking_assert and checking_* functions to eliminate
1958 ENABLE_CHECKING conditionals.
1959 (propagate_freq): Likewise.
1960 * pretty-print.c (pp_format): Likewise.
1961 * real.c (real_to_decimal_for_mode): Likewise.
1962 * recog.c (split_all_insns): Likewise.
1963 * regcprop.c (kill_value_one_regno): Likewise.
1964 (copy_value): Likewise.
1965 (validate_value_data): Define unconditionally.
1966 * reload.c: Fix comment.
1967 * timevar.c: Include options.h
1968 * tree-ssa.h (checking_verify_ssa): Define.
1969 * tree-ssa-loop-manip.h (checking_verify_loop_closed_ssa): Define.
1970 * sched-deps.c (CHECK): Remove unused macro.
1971 (add_or_update_dep_1, sd_add_dep: Use flag_checking, CHECKING_P
1972 gcc_checking_assert and checking_* functions to eliminate
1973 ENABLE_CHECKING conditionals.
1974 * sel-sched-ir.c (free_regset_pool, tidy_control_flow): Likewise.
1975 * sel-sched.c (struct moveop_static_params): Likewise.
1976 (find_best_reg_for_expr, move_cond_jump): Likewise.
1977 (move_op_orig_expr_not_found): Likewise.
1978 (code_motion_process_successors, move_op): Likewise.
1979 * ssa-iterators.h (first_readonly_imm_use): Likewise.
1980 (next_readonly_imm_use): Likewise.
1981 * store-motion.c (compute_store_table): Likewise.
1982 * symbol-summary.h (function_summary::function_summary): Likewise.
1983 * target.h (cumulative_args_t): Likewise.
1984 (get_cumulative_args, pack_cumulative_args): Likewise.
1985 * timevar.c: (timer::print): Likewise.
1986 * trans-mem.c (ipa_tm_execute): Likewise.
1987 * tree-cfg.c (move_stmt_op): Likewise.
1988 (move_sese_region_to_fn): Likewise.
1989 (gimple_flow_call_edges_add): Likewise.
1990 * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures):
1991 Likewise.
1992 * tree-eh.c (remove_unreachable_handlers): Likewise.
1993 * tree-if-conv.c (pass_if_conversion::execute): Likewise.
1994 * tree-inline.c (expand_call_inline, optimize_inline_calls): Likewise.
1995 * tree-into-ssa.c (update_ssa): Likewise.
1996 * tree-loop-distribution.c (pass_loop_distribution::execute): Likewise.
1997 * tree-outof-ssa.c (eliminate_useless_phis, rewrite_trees): Likewise.
1998 * tree-parloops.c (pass_parallelize_loops::execute): Likewise.
1999 * tree-predcom.c (suitable_component_p): Likewise.
2000 * tree-profile.c (gimple_gen_const_delta_profiler): Likewise.
2001 * tree-ssa-alias.c (refs_may_alias_p_1): Likewise.
2002 * tree-ssa-live.c (verify_live_on_entry): Likewise.
2003 * tree-ssa-live.h (register_ssa_partition): Likewise.
2004 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): Likewise.
2005 * tree-ssa-loop-manip.c (add_exit_phi): Likewise.
2006 (tree_transform_and_unroll_loop): Likewise.
2007 * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
2008 * tree-ssa-operands.c (get_expr_operands): Likewise.
2009 * tree-ssa-propagate.c (replace_exp_1): Likewise.
2010 * tree-ssa-structalias.c (rewrite_constraints): Likewise.
2011 * tree-ssa-ter.c (free_temp_expr_table): Likewise.
2012 * tree-ssa-threadupdate.c (duplicate_thread_path): Likewise.
2013 * tree-ssanames.c (release_ssa_name_fn): Likewise.
2014 * tree-stdarg.c (expand_ifn_va_arg): Likewise.
2015 * tree-vect-loop-manip.c
2016 (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
2017 (slpeel_checking_verify_cfg_after_peeling): Likewise.
2018 (vect_do_peeling_for_loop_bound): Likewise.
2019 (vect_do_peeling_for_alignment): Likewise.
2020 * tree-vrp.c (supports_overflow_infinity): Likewise.
2021 (set_value_range): Likewise.
2022 * tree.c (free_lang_data_in_cgraph): Likewise.
2023 * value-prof.c (gimple_remove_histogram_value): Likewise.
2024 (free_hist): Likewise.
2025 * var-tracking.c (canonicalize_values_star): Likewise.
2026 (compute_bb_dataflow, vt_find_locations, vt_emit_notes): Likewise.
2027
2028 2015-10-27 Nathan Sidwell <nathan@codesourcery.com>
2029
2030 * internal-fn.def (IFN_GOACC_DIM_SIZE, IFN_GOACC_DIM_POS,
2031 IFN_GOACC_LOOP): New.
2032 * internal-fn.h (enum ifn_unique_kind): Add IFN_UNIQUE_OACC_FORK,
2033 IFN_UNIQUE_OACC_JOIN, IFN_UNIQUE_OACC_HEAD_MARK,
2034 IFN_UNIQUE_OACC_TAIL_MARK.
2035 (enum ifn_goacc_loop_kind): New.
2036 * internal-fn.c (expand_UNIQUE): Add IFN_UNIQUE_OACC_FORK,
2037 IFN_UNIQUE_OACC_JOIN cases.
2038 (expand_GOACC_DIM_SIZE, expand_GOACC_DIM_POS): New.
2039 (expand_GOACC_LOOP): New.
2040 * target-insns.def (oacc_dim_pos, oacc_dim_size): New.
2041 * omp-low.c: Include gimple-pretty-print.h.
2042 (struct oacc_loop): New.
2043 (enum oacc_loop_flags): New.
2044 (oacc_thread_numbers): New.
2045 (oacc_xform_loop): New.
2046 (new_oacc_loop_raw, new_oacc_loop_outer, new_oacc_loop,
2047 new_oacc_loop_routine, finish_oacc_loop, free_oacc_loop): New,
2048 (dump_oacc_loop_part, dump_oacc_loop, debug_oacc_loop): New,
2049 (oacc_loop_discover_walk, oacc_loop_sibling_nrevers,
2050 oacc_loop_discovery): New.
2051 (oacc_loop_xform_head_tail, oacc_loop_xform_loop,
2052 oacc_loop_process): New.
2053 (oacc_loop_fixed_partitions, oacc_loop_partition): New.
2054 (execute_oacc_device_lower): Discover & process loops. Process
2055 internal fns.
2056 * target.def (goacc.fork_join): Change sense of hook, clarify
2057 documentation.
2058 * doc/tm.texi: Regenerated.
2059
2060 2015-10-27 Nathan Sidwell <nathan@codesourcery.com>
2061
2062 * target-insns.def (oacc_fork, oacc_join): Define.
2063 * target.def (goacc.validate_dims): Adjust doc to avoid warning.
2064 (goacc.fork_join): New GOACC hook.
2065 * targhooks.h (default_goacc_fork_join): Declare.
2066 * omp-low.c (default_goacc_forkjoin): New.
2067 * doc/tm.texi.in (TARGET_GOACC_FORK_JOIN): Add.
2068 * doc/tm.texi: Regenerate.
2069
2070 2015-10-27 Nathan Sidwell <nathan@codesourcery.com>
2071
2072 * omp-low.c (oacc_init_rediction_array): New.
2073 (oacc_initialize_reduction_data): Initialize array.
2074
2075 2015-10-27 Nathan Sidwell <nathan@codesourcery.com>
2076
2077 * omp-low.c (pass_oacc_device_lower::execute): Ignore errors.
2078
2079 2015-10-27 Nathan Sidwell <nathan@codesourcery.com>
2080
2081 * internal-fn.c (expand_UNIQUE): New.
2082 * internal-fn.h (enum ifn_unique_kind): New.
2083 * internal-fn.def (IFN_UNIQUE): New.
2084 * target-insns.def (unique): Define.
2085 * gimple.h (gimple_call_internal_unique_p): New.
2086 * gimple.c (gimple_call_same_target_p): Check internal fn
2087 uniqueness.
2088 * tracer.c (ignore_bb_p): Check for IFN_UNIQUE call.
2089 * tree-ssa-threadedge.c
2090 (record_temporary_equivalences_from_stmts): Likewise.
2091 * tree-cfg.c (gmple_call_initialize_ctrl_altering): Likewise.
2092
2093 2015-10-27 Richard Henderson <rth@redhat.com>
2094
2095 PR rtl-opt/67609
2096 * config/i386/i386.c (ix86_cannot_change_mode_class): Disallow
2097 narrowing subregs on SSE and MMX registers.
2098 * doc/tm.texi.in (CANNOT_CHANGE_MODE_CLASS): Clarify when subregs that
2099 appear to be sub-words of multi-register pseudos must be rejected.
2100 * doc/tm.texi: Regenerate.
2101
2102 2015-10-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2103
2104 PR target/68102
2105 * config/aarch64/aarch64.md (*movsi_aarch64): Check that
2106 operands[0] is a reg before taking its REGNO in split condition.
2107 (*movdi_aarch64): Likewise.
2108
2109 2015-10-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2110
2111 * config/aarch64/aarch64.c (aarch64_output_simd_mov_immediate):
2112 Handle floating point inner modes properly.
2113
2114 2015-10-27 Alan Hayward <alan.hayward@arm.com>
2115
2116 * tree-vect-looop.c
2117 (vectorizable_live_operation): Change iterator.
2118
2119 2015-10-27 Abderrazek Zaafrani <a.zaafrani@samsung.com>
2120 Aditya Kumar <aditya.k7@samsung.com>
2121
2122 * graphite-optimize-isl.c (get_schedule_for_node_st): New callback
2123 function to schedule based on isl_schedule_node.
2124 (get_schedule_map_st): New schedule optimizer based on
2125 isl_schedule_node.
2126 (scop_get_domains): New. Return the isl_union_set containing the
2127 domains of all the pbbs.
2128 (optimize_isl): Call the new function get_schedule_map_st for isl-0.15
2129
2130 2015-10-27 H.J. Lu <hongjiu.lu@intel.com>
2131
2132 PR target/67215
2133 * calls.c (prepare_call_address): Don't handle -fno-plt here.
2134 * config/i386/i386.c (ix86_expand_call): Generate indirect call
2135 via GOT for -fno-plt. Support indirect call via GOT for x32.
2136 * config/i386/predicates.md (sibcall_memory_operand): Allow
2137 GOT memory operand.
2138
2139 2015-10-27 Richard Biener <rguenther@suse.de>
2140
2141 PR tree-optimization/68104
2142 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move
2143 strided access check ...
2144 (vect_compute_data_refs_alignment): ... here.
2145
2146 2015-10-27 Daniel Jacobowitz <dan@codesourcery.com>
2147 Joseph Myers <joseph@codesourcery.com>
2148 Mark Shinwell <shinwell@codesourcery.com>
2149 Andrew Stubbs <ams@codesourcery.com>
2150 Rich Felker <dalias@libc.org>
2151
2152 * config.gcc: Handle --enable-fdpic.
2153 * config/sh/constraints.md (Ccl): New constraint.
2154 * config/sh/linux.h (SUBTARGET_LINK_EMUL_SUFFIX): Handle -mfdpic.
2155 * config/sh/sh-c.c (sh_cpu_cpp_builtins): Add __FDPIC__ and
2156 __SH_FDPIC__.
2157 * config/sh/sh-mem.cc (expand_block_move): Support FDPIC for calls to
2158 library functions.
2159 * config/sh/sh-protos.h (function_symbol_result): New struct.
2160 (function_symbol): Return function_symbol_result.
2161 (sh_get_fdpic_reg_initial_val, sh_load_function_descriptor): New
2162 declarations.
2163 * config/sh/sh.c (TARGET_ASM_INTEGER, sh_assemble_integer): Implement
2164 target hook.
2165 (TARGET_CANNOT_FORCE_CONST_MEM, sh_cannot_force_const_mem_p): Likewise.
2166 (sh_option_override): Force -fPIC if FDPIC is in effect.
2167 (sh_asm_output_addr_const_extra): Add UNSPEC_GOTFUNCDESC and
2168 UNSPEC_GOTOFFFUNCDESC cases.
2169 (prepare_move_operands): Use FDPIC initial GOT register for
2170 TLS-related GOT access; inhibit cross-section address offset constants
2171 for FDPIC.
2172 (sh_assemble_integer): New function.
2173 (sh_cannot_copy_insn_p): Inhibit copying insns that are FDPIC
2174 PC-relative call sites.
2175 (expand_ashiftrt): Adapt invocation of function_symbol.
2176 (sh_expand_prologue): Inhibit PC-relative GOT address load for FDPIC.
2177 (nonpic_symbol_mentioned_p): Add cases for UNSPEC_GOTFUNCDESC and
2178 UNSPEC_GOTOFFFUNCDESC.
2179 (legitimize_pic_address): Resolve function symbols to function
2180 descriptors for FDPIC. Do not use GOT-relative addressing for local
2181 data that may be read-only on FDPIC.
2182 (sh_emit_storesi, sh_emit_storehi): New functions.
2183 (sh_trampoline_init): Generate FDPIC trampolines.
2184 (sh_function_ok_for_sibcall): Add TARGET_FDPIC check.
2185 (sh_expand_sym_label2reg): Don't assume sibcalls are local.
2186 (sh_output_mi_thunk): Generate FDPIC call.
2187 (function_symbol): Return function_symbol_result. For SFUNC_STATIC on
2188 FDPIC, generate call site labels to use PC-relative addressing rather
2189 than GOT-relative addressing.
2190 (sh_conditional_register_usage): Make PIC register fixed and call used
2191 when FDPIC is in effect.
2192 (sh_legitimate_constant_p): Impose FDPIC constant constraints.
2193 (sh_cannot_force_const_mem_p, sh_load_function_descriptor,
2194 sh_get_fdpic_reg_initial_val): New functions.
2195 * config/sh/sh.h (SUBTARGET_ASM_SPEC, SUBTARGET_LINK_EMUL_SUFFIX):
2196 Handle -mfdpic.
2197 (FDPIC_SELF_SPECS, SUBTARGET_DRIVER_SELF_SPECS,
2198 PIC_OFFSET_TABLE_REG_CALL_CLOBBERED,
2199 SH_OFFSETS_MUST_BE_WITHIN_SECTIONS_P): New macros.
2200 (DRIVER_SELF_SPECS): Add SUBTARGET_DRIVER_SELF_SPECS and
2201 FDPIC_SELF_SPECS.
2202 (TRAMPOLINE_SIZE): Select trampoline size for FDPIC.
2203 (ASM_PREFERRED_EH_DATA_FORMAT): Add EH format constraints for FDPIC.
2204 (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Handle FDPIC case.
2205 * config/sh/sh.md (UNSPEC_GOTFUNCDESC, UNSPEC_GOTOFFFUNCDESC): New
2206 constants.
2207 (calli_fdpic, call_valuei_fdpic, sibcalli_fdpic, sibcalli_pcrel_fdpic,
2208 sibcall_pcrel_fdpic, sibcall_valuei_fdpic, sibcall_valuei_pcrel_fdpic,
2209 sibcall_value_pcrel_fdpic, sym2GOTFUNCDESC, symGOTFUNCDESC2reg,
2210 sym2GOTOFFFUNCDESC, symGOTOFFFUNCDESC2reg): New patterns.
2211 (udivsi3_i1, udivsi3_i4, udivsi3_i4_single, udivsi3,
2212 *divsi_inv_call_combine, divsi3_i4, divsi3_i4_single, divsi3, ashlsi3,
2213 ashlsi3_d_call, ashrsi3_n, lshrsi3, lshrsi3_d_call, calli, call_valuei,
2214 call, call_value, sibcalli, sibcalli_pcrel, sibcall_pcrel, sibcall,
2215 sibcall_valuei, sibcall_valuei_pcrel, sibcall_value_pcrel,
2216 sibcall_value, GOTaddr2picreg, symGOT_load, symGOTOFF2reg,
2217 block_move_real, block_lump_real, block_move_real_i4,
2218 block_lump_real_i4): Add support for FDPIC calls.
2219 (mulsi3, ic_invalidate_line, initialize_trampoline, call_pop,
2220 call_value_pop): Adjust for new function_symbol signature.
2221 * config/sh/sh.opt (-mfdpic): New option.
2222 * doc/install.texi (Options specification): Document --enable-fdpic.
2223 * doc/invoke.texi (SH Options): Document -mfdpic.
2224
2225
2226 2015-10-27 Alan Lawrence <alan.lawrence@arm.com>
2227
2228 PR tree-optimization/65963
2229 * tree-scalar-evolution.c (interpret_rhs_expr): Handle some
2230 LSHIFT_EXPRs as equivalent MULT_EXPRs.
2231
2232 2015-10-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2233
2234 PR target/67929
2235 * config/arm/arm.c (vfp3_const_double_for_bits): Rewrite.
2236 * config/arm/constraints.md (Dp): Update callsite.
2237 * config/arm/predicates.md (const_double_vcvt_power_of_two): Likewise.
2238
2239 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
2240
2241 * builtins.c (fold_builtin_load_exponent): Rename to...
2242 (fold_const_builtin_load_exponent): ...this and only handle
2243 constant arguments.
2244 (fold_builtin_2): Update accordingly.
2245 * match.pd: Add rules previously handled by fold_builtin_load_exponent.
2246
2247 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
2248
2249 * builtins.c (fold_builtin_logb): Rename to...
2250 (fold_const_builtin_logb): ...this and remove STRIP_NOPS call.
2251 (fold_builtin_significand): Rename to...
2252 (fold_const_builtin_significand): ...this and remove STRIP_NOPS call.
2253 (fold_builtin_1): Update accordingly.
2254
2255 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
2256
2257 * builtins.c (fold_builtin_fmin_fmax): Delete.
2258 (fold_builtin_2): Handle constant fmin and fmax arguments here.
2259 * match.pd: Add rules previously handled by fold_builtin_fmin_fmax.
2260
2261 2015-10-27 Evandro Menezes <e.menezes@samsung.com>
2262
2263 * config/aarch64/aarch64-protos.h (cpu_addrcost_table): Split member
2264 for register extension into sign and zero register extension.
2265 * config/aarch64/aarch64.c (generic_addrcost_table): Infer values
2266 for sign and zero register extension.
2267 (cortexa57_addrcost_table): Likewise.
2268 (xgene1_addrcost_table): Likewise.
2269
2270 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
2271
2272 * fold-const.c (fold_minmax): Delete.
2273 (fold_binary_loc): Don't call it.
2274 * match.pd: Add rules previously handled by fold_minmax.
2275
2276 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
2277
2278 * builtins.c (fold_builtin_fma): Remove constant handling.
2279 (fold_builtin_3): Handle constant fma arguments here.
2280
2281 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
2282
2283 * builtins.c (fold_builtin_fabs): Remove constant handling.
2284 (fold_builtin_abs): Likewise.
2285
2286 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
2287
2288 * builtins.c (fold_builtin_copysign): Delete.
2289 (fold_builtin_2): Handle constant copysign arguments here.
2290 * match.pd: Add rules previously handled by fold_builtin_copysign.
2291
2292 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
2293
2294 * builtins.c (fold_builtin_signbit): Delete.
2295 (fold_builtin_2): Handle constant signbit arguments here.
2296 * match.pd: Add rules previously handled by fold_builtin_signbit.
2297
2298 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
2299
2300 * match.pd: Handle sqrt(x) cmp 0 specially.
2301
2302 2015-10-27 Ilya Enkovich <enkovich.gnu@gmail.com>
2303
2304 * tree-vect-generic.c (expand_vector_operations_1): Check
2305 optab type before using it.
2306
2307 2015-10-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2308
2309 * config/aarch64/aarch64-protos.h
2310 (struct tune_params): Add autoprefetcher_model field.
2311 * config/aarch64/aarch64.c: Include params.h
2312 (generic_tunings): Specify autoprefetcher_model value.
2313 (cortexa53_tunings): Likewise.
2314 (cortexa57_tunings): Likewise.
2315 (cortexa72_tunings): Likewise.
2316 (thunderx_tunings): Likewise.
2317 (xgene1_tunings): Likewise.
2318 (aarch64_first_cycle_multipass_dfa_lookahead_guard): New function.
2319 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define.
2320 (aarch64_override_options_internal): Set
2321 PARAM_SCHED_AUTOPREF_QUEUE_DEPTH param.
2322
2323 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
2324
2325 * builtins.c (fold_builtin_exponent): Delete.
2326 (fold_builtin_2): Handle constant expN arguments here.
2327 * match.pd: Fold expN(logN(x)) -> x.
2328
2329 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
2330
2331 * builtins.c (fold_builtin_powi): Delete.
2332 (fold_builtin_2): Handle constant powi arguments here.
2333 * match.pd: Add rules previously handled by fold_builtin_powi.
2334
2335 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
2336
2337 * builtins.c (fold_builtin_pow): Delete in favor of...
2338 (fold_const_builtin_pow): ...this new function. Only handle constant
2339 arguments.
2340 (fold_builtin_2): Update accordingly.
2341 * match.pd: Add rules previously handled by fold_builtin_pow.
2342
2343 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
2344
2345 * builtins.c (fold_builtin_hypot): Delete.
2346 (fold_builtin_2): Handle constant hypot arguments here.
2347 * match.pd: Fold hypot(x, 0) and hypot(0, x) to x. Canonicalize
2348 hypot(x, x) to fabs(x)*sqrt(2).
2349
2350 2015-10-27 Richard Sandiford <richard.sandiford@arm.com>
2351
2352 * gimple-match-head.c (maybe_push_res_to_seq): Use create_tmp_reg
2353 instead of make_ssa_name if not yet in SSA form.
2354
2355 2015-10-27 Richard Biener <rguenther@suse.de>
2356
2357 * cfg.c (free_edge): Add function argument and use it instead of cfun.
2358 (clear_edges): Likewise.
2359 * cfg.h (clear_edges): Adjust prototype.
2360 * cfgexpand.c (pass_expand::execute): Adjust.
2361 * cfgloop.c (release_recorded_exits): Add function argument and use
2362 it instead of cfun.
2363 * cfgloop.h (release_recorded_exits): Adjust prototype.
2364 (loops_state_satisfies_p): Add overload with function argument.
2365 (loops_state_set): Likewise.
2366 (loops_state_clear): Likewise.
2367 (struct loop_iterator): Add function argument to constructor
2368 and iterator and use it instead of cfun.
2369 (FOR_EACH_LOOP_FN): New macro.
2370 (loop_optimizer_finalize): Add overload with function argument.
2371 * loop-init.c (loop_optimizer_init): Adjust.
2372 (fix_loop_structure): Likewise.
2373 (loop_optimizer_finaliz): Add function argument and use it
2374 instead of cfun.
2375 * tree-cfg.c (delete_tree_cfg_annotations): Likewise.
2376 * tree-cfg.h (delete_tree_cfg_annotations): Adjust prototype.
2377 * cgraph.c (release_function_body): Do not push/pop cfun.
2378 * final.c (rest_of_clean_state): Adjust.
2379 * graphite.c (graphite_finalize): Likewise.
2380 * tree-ssa-copy.c (fini_copy_prop): Likewise.
2381 * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
2382 * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Likewise.
2383 (tree_unroll_loops_completely): Likewise.
2384 (pass_complete_unrolli::execute): Likewise.
2385 * tree-ssa-loop-niter.c (free_numbers_of_iterations_estimates):
2386 Add function argument and use it instead of cfun.
2387 * tree-ssa-loop-niter.h (free_numbers_of_iterations_estimates):
2388 Adjust prototype.
2389 * tree-ssa-loop.c (tree_ssa_loop_done): Adjust.
2390 * tree-ssa.c (delete_tree_ssa): Add function argument and use it
2391 instead of cfun.
2392 * tree-ssa.h (delete_tree_ssa): Adjust prototype.
2393 * tree-ssanames.c (fini_ssanames): Add function argument and use it
2394 instead of cfun.
2395 * tree-ssanames.c (fini_ssanames): Adjust prototype.
2396 * tree-vrp.c (execute_vrp): Adjust.
2397 * value-prof.c (free_histograms): Add function argument and use it
2398 instead of cfun.
2399 * value-prof.h (free_histograms): Adjust prototype.
2400
2401 2015-10-27 Thomas Schwinge <thomas@codesourcery.com>
2402
2403 * tree.h (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES)
2404 (OACC_KERNELS_BODY, OACC_KERNELS_CLAUSES, OACC_KERNELS_COMBINED)
2405 (OACC_PARALLEL_COMBINED): Don't define macros. Adjust all users.
2406
2407 2015-10-27 Tom de Vries <tom@codesourcery.com>
2408
2409 * tree-ssa-structalias.c (push_fields_onto_fieldstack): Add and use var
2410 field_type.
2411
2412 2015-10-27 Bin Cheng <bin.cheng@arm.com>
2413
2414 * loop-invariant.c (struct def): New field can_prop_to_addr_uses.
2415 (inv_can_prop_to_addr_use): New function.
2416 (record_use): Call can_prop_to_addr_uses, set the new field.
2417 (get_inv_cost): Count cost if inv can't be propagated into its
2418 address uses.
2419
2420 2015-10-26 Doug Evans <dje@google.com>
2421
2422 * config/linux.h (INCLUDE_DEFAULTS): Add INCLUDE_DEFAULTS_MUSL_LOCAL.
2423
2424 2015-10-26 Eric Botcazou <ebotcazou@adacore.com>
2425
2426 * match.pd (fold_widened_comparison): Apply simplifications to all
2427 integral types.
2428
2429 2015-10-26 Simon Dardis <simon.dardis@imgtec.com>
2430
2431 * target.def (TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P): New hook.
2432 * doc/tm.texi.in (TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P): Document.
2433 * doc/tm.texi: Regenerated.
2434 * reorg.c (dbr_schedule): Use new hook.
2435 * config/mips/mips.c (mips_no_speculation_in_delay_slots_p): New.
2436
2437 2015-10-26 Jeff Law <law@redhat.com>
2438
2439 PR tree-optimization/68013
2440 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
2441 Make sure the first block in the path is in VISITED_BBs.
2442
2443 2015-10-26 Richard Biener <rguenther@suse.de>
2444 Dominik Vogt <vogt@linux.vnet.ibm.com>
2445
2446 PR middle-end/67443
2447 * alias.c (ao_ref_from_mem): Remove promoted subreg handling.
2448 Properly prune ref->ref for accesses outside of ref.
2449
2450 2015-10-26 Richard Sandiford <richard.sandiford@arm.com>
2451
2452 * gimple-fold.c (replace_stmt_with_simplification): Don't allow
2453 new statements to be inserted if inplace. Allow calls to have
2454 nonempty sequences.
2455
2456 2015-10-26 Richard Biener <rguenther@suse.de>
2457
2458 * tree-object-size.c: Remove builtins.h include, include tree-cfg.h.
2459 (do_valueize): New function.
2460 (pass_object_sizes::execute): Use gimple_fold_stmt_to_constant and
2461 replace_uses_by.
2462 * tree-ssa-threadedge.c: Remove builtins.h include, include
2463 gimple-fold.h
2464 (fold_assignment_stmt): Remove.
2465 (threadedge_valueize): New function.
2466 (record_temporary_equivalences_from_stmts): Use
2467 gimple_fold_stmt_to_constant_1, note additional cleanup
2468 opportunities.
2469
2470 2015-10-26 Richard Biener <rguenther@suse.de>
2471
2472 * match.pd ((A & ~B) - (A & B) -> (A ^ B) - B): Add missing :c.
2473 ( (X & ~Y) | (~X & Y) -> X ^ Y): Remove redundant :c.
2474
2475 2015-10-26 Alan Hayward <alan.hayward@arm.com>
2476
2477 * tree-vect-loop.c (vect_create_epilog_for_reduction): Fix
2478 VEC_COND_EXPR types.
2479
2480 2015-10-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2481
2482 * auto-inc-dec.c (insert_move_insn_before): Delete.
2483 (attempt_change): Remember to cost the simple move in the
2484 FORM_PRE_ADD and FORM_POST_ADD cases.
2485
2486 2015-10-26 Kaz Kojima <kkojima@gcc.gnu.org>
2487
2488 PR target/68091
2489 * config/sh/sh.c (sh_vector_mode_supported_p): Use
2490 TARGET_SHMEDIA_FPU instead of TARGET_FPU_ANY.
2491
2492 2015-10-26 Tom de Vries <tom@codesourcery.com>
2493
2494 * tree-ssa-structalias.c (make_restrict_var_constraints): New function,
2495 factored out of ...
2496 (intra_create_variable_infos): ... here.
2497
2498 2015-10-26 Tom de Vries <tom@codesourcery.com>
2499
2500 * tree-ssa-structalias.c (intra_create_variable_infos): Add
2501 restrict_pointer_p and recursive_restrict_p variables.
2502
2503 2015-10-26 Tom de Vries <tom@codesourcery.com>
2504
2505 * tree-ssa-structalias.c (intra_create_variable_infos): Inline
2506 get_vi_for_tree call.
2507
2508 2015-10-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2509
2510 PR middle-end/67989
2511 * optabs.c (expand_atomic_compare_and_swap): Handle case when
2512 ptarget_oval or ptarget_bool are const0_rtx.
2513
2514 2015-10-26 Christian Bruel <christian.bruel@st.com>
2515
2516 * function.h (MINIMUM_METHOD_BOUNDARY): New macro.
2517 * cp/decl.c (grokfndecl): Set DECL_ALIGN with MINIMUM_METHOD_BOUNDARY.
2518 * cp/method.c (implicitly_declare_fn): Likewise.
2519 * cp/lambda.c (maybe_add_lambda_conv_op): Likewise. Remove VBIT setting.
2520 * java/class.c (add_method_1): Likewise.
2521
2522 2015-10-26 Richard Biener <rguenther@suse.de>
2523
2524 * alloc-pool.h (base_pool_allocator): Use placement new.
2525 (base_pool_allocator::remove): Likewise. Compute size outside of
2526 flag_checking.
2527
2528 2015-10-26 Richard Sandiford <richard.sandiford@arm.com>
2529
2530 * builtins.c (do_real_to_int_conversion): New function.
2531 (fold_fixed_mathfn, fold_builtin_int_roundingfn): Delete.
2532 (fold_builtin_1): Handle constant {i,l,ll}{ceil,floor,round}{f,,l}
2533 arguments here.
2534 * match.pd: Add rules previously handled by fold_fixed_mathfn
2535 and fold_builtin_int_roundingfn.
2536
2537 2015-10-26 Richard Sandiford <richard.sandiford@arm.com>
2538
2539 * match.pd: Use macros to define built-in operator lists.
2540
2541 2015-10-20 Richard Sandiford <richard.sandiford@arm.com>
2542 Richard Biener <rguenther@suse.de>
2543
2544 * genmatch.c (dt_simplify::gen): Skip captures that are
2545 part of the result.
2546 (parser::parse_expr): Allow captures in results too.
2547 * builtins.c (fold_builtin_cexp): Delete.
2548 (fold_builtin_1): Handle constant cexp arguments here.
2549 * match.pd: Fold cexp(x+yi) to exp(x) * cexpi(y).
2550
2551 2015-10-26 Mikhail Maltsev <maltsevm@gmail.com>
2552
2553 * alloc-pool.h (base_pool_allocator::initialize, ::allocate): Remove
2554 conditional compilation.
2555 (base_pool_allocator::remove): Use flag_checking.
2556
2557 2015-10-25 John David Anglin <danglin@gcc.gnu.org>
2558
2559 * config/pa/som.h (EH_FRAME_THROUGH_COLLECT2): Define.
2560
2561 PR middle-end/68079
2562 * dojump.c (do_compare_and_jump): Canonicalize both function and
2563 method types.
2564
2565 2015-10-25 Uros Bizjak <ubizjak@gmail.com>
2566
2567 PR target/68084
2568 * config/i386/i386.c (ix86_md_asm_adjust) [case 'a']: Use NE code
2569 for =@ccae.
2570
2571 2015-10-23 Jan Hubicka <hubicka@ucw.cz>
2572
2573 PR ipa/pr67600
2574 * ipa-polymorphic-call.c
2575 (ipa_polymorphic_call_context::get_dynamic_type): Do not confuse
2576 instance offset with offset of outer type.
2577
2578 2015-10-23 Jan Hubicka <hubicka@ucw.cz>
2579
2580 * fold-const.c (operand_equal_p): Handle VIEW_CONVERT_EXPR.
2581
2582 2015-10-23 Caroline Tice <cmtice@google.com>
2583
2584 (from Richard Biener
2585 * tree.c (int_cst_hasher::hash): Replace XOR with more efficient
2586 call to iterative_hash_host_wide_int.
2587
2588 2015-10-23 David Edelsohn <dje.gcc@gmail.com>
2589
2590 * config.gcc (powerpc-ibm-aix[6789]) [default_use_cxa_atexit]:
2591 Define as yes.
2592
2593 2015-10-23 Ilya Enkovich <enkovich.gnu@gmail.com>
2594
2595 * tree-vect-generic.c (expand_vector_operations_1): Check
2596 optab exists before use it.
2597
2598 2015-10-23 Ilya Enkovich <enkovich.gnu@gmail.com>
2599
2600 * tree-vect-generic.c (expand_vector_condition): Avoid
2601 uninitialized variable warning.
2602
2603 2015-10-23 Jeff Law <law@redhat.com>
2604
2605 * passes.c (execute_function_todo): Do not call flush_ssaname_freelist
2606 here. Instead...
2607 (execute_todo): Call it here.
2608 * tree-ssanames.c (make_ssa_name_fn): Unconditionally gather reuse
2609 statistics
2610 (pass_release_ssa_names::execute): Do not call flusH_ssaname_freelist.
2611
2612 2015-10-23 Gregor Richards <gregor.richards@uwaterloo.ca>
2613 Szabolcs Nagy <szabolcs.nagy@arm.com>
2614
2615 * config.gcc (enable_secureplt): Add *-linux*-musl*.
2616
2617 2015-10-23 Jeff Law <law@redhat.com>
2618
2619 PR tree-optimization/67830
2620 * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
2621 Explicitly verify the mask has no bits outside the type of
2622 the innermost operands.
2623
2624 2015-10-23 Gregor Richards <gregor.richards@uwaterloo.ca>
2625 Szabolcs Nagy <szabolcs.nagy@arm.com>
2626
2627 * config/rs6000/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
2628 (MUSL_DYNAMIC_LINKER64): Define.
2629 (GNU_USER_DYNAMIC_LINKER32): Update.
2630 (GNU_USER_DYNAMIC_LINKER64): Update.
2631 (CHOOSE_DYNAMIC_LINKER): Update.
2632
2633 * config/rs6000/sysv4.h (GNU_USER_DYNAMIC_LINKER): Update.
2634 (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER_E,)
2635 (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
2636 (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
2637 (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
2638 (CHOOSE_DYNAMIC_LINKER): Update.
2639 (INCLUDE_DEFAULTS): Redefine.
2640
2641 * config/rs6000/sysv4le.h (MUSL_DYNAMIC_LINKER_E): Define.
2642
2643 2015-10-23 Jan Hubicka <hubicka@ucw.cz>
2644
2645 * fold-const.c (operand_equal_p): Do not compare TYPE_MODE when
2646 comparing addresses.
2647
2648 2015-10-23 Jan Hubicka <hubicka@ucw.cz>
2649
2650 * fold-const.c (operand_equal_p): Handle matching of vector
2651 constructors.
2652
2653 2015-10-23 David Edelsohn <dje.gcc@gmail.com>
2654
2655 * doc/install.texi (*-ibm-aix*): Additional information for AIX 7.1.
2656
2657 2015-10-23 Steve Ellcey <sellcey@imgtec.com>
2658 Andrew Pinski <apinski@cavium.com>
2659
2660 PR rtl-optimization/67736
2661 * combine.c (simplify_comparison): Use gen_lowpart_or_truncate instead
2662 of gen_lowpart.
2663
2664 2015-10-23 Ilya Enkovich <enkovich.gnu@gmail.com>
2665
2666 PR middle-end/68066
2667 * tree.c (build_truth_vector_type): Support BLK mode
2668 returned for boolean vector.
2669
2670 2015-10-23 Alan Hayward <alan.hayward@arm.com>
2671
2672 PR tree-optimization/65947
2673 * tree-vect-loop.c
2674 (vect_is_simple_reduction_1): Find condition reductions.
2675 (vect_model_reduction_cost): Add condition reduction costs.
2676 (get_initial_def_for_reduction): Add condition reduction initial var.
2677 (vect_create_epilog_for_reduction): Add condition reduction epilog.
2678 (vectorizable_reduction): Condition reduction support.
2679 * tree-vect-stmts.c (vectorizable_condition): Add vect reduction arg
2680 * doc/sourcebuild.texi (Vector-specific attributes): Document
2681 vect_max_reduc
2682
2683 2015-10-23 Richard Biener <rguenther@suse.de>
2684
2685 * Makefile.in (build/genmatch.o): Properly depend on is-a.h, tree.def
2686 and builtins.def.
2687
2688 2015-10-23 Richard Biener <rguenther@suse.de>
2689 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
2690
2691 * fold-const.c (fold_binary_loc) : Move Fold (A & ~B) - (A & B)
2692 into (A ^ B) - B to match.pd
2693 Move (X & ~Y) | (~X & Y) is X ^ Y to match.pd.
2694
2695 * match.pd (minus (bit_and:cs @0 (bit_not @1)) (bit_and:s @0 @1)):
2696 New simplifier.
2697 (minus (bit_and:s @0 INTEGER_CST@2) (bit_and:s @0 INTEGER_CST@1)):
2698 New simplifier.
2699 (minus (bit_and:s @0 @1) (bit_and:cs @0 (bit_not @1))):
2700 New simplifier.
2701 (bit_ior:c (bit_and:c @0 (bit_not @1)) (bit_and:c (bit_not @0) @1)):
2702 New simplifier.
2703 (bit_ior:c (bit_and @0 INTEGER_CST@2) (bit_and (bit_not @0)
2704 INTEGER_CST@1)): New simplifier.
2705
2706 2015-10-23 Richard Sandiford <richard.sandiford@arm.com>
2707
2708 * builtins.c (integer_valued_real_p): Move to fold-const.c.
2709 (fold_trunc_transparent_mathfn, fold_builtin_trunc, fold_builtin_floor)
2710 (fold_builtin_ceil, fold_builtin_round): Delete.
2711 (fold_builtin_1): Handle constant trunc, floor, ceil and round
2712 arguments here.
2713 * convert.c (convert_to_real): Remove narrowing of rounding
2714 functions.
2715 * fold-const.h (integer_valued_real_unary_p)
2716 (integer_valued_real_binary_p, integer_valued_real_call_p)
2717 (integer_valued_real_single_p, integer_valued_real_p): Declare.
2718 * fold-const.c (tree_single_nonnegative_warnv_p): Move
2719 name_registered_for_update_p check to SSA_NAME case statement.
2720 Don't call tree_simple_nonnegative_warnv_p for SSA names.
2721 (integer_valued_real_unary_p, integer_valued_real_binary_p)
2722 (integer_valued_real_call_p, integer_valued_real_single_p)
2723 (integer_valued_real_invalid_p): New functions.
2724 (integer_valued_real_p): Move from fold-const.c and rework
2725 to call the functions above. Handle SSA names.
2726 * gimple-fold.h (gimple_stmt_integer_valued_real_p): Declare.
2727 * gimple-fold.c (gimple_assign_integer_valued_real_p)
2728 (gimple_call_integer_valued_real_p, gimple_phi_integer_valued_real_p)
2729 (gimple_stmt_integer_valued_real_p): New functions.
2730 * match.pd: Fold f(f(x))->f(x) for fp->fp rounding functions f.
2731 Fold f(x)->x for the same f if x is known to be integer-valued.
2732 Fold f(extend(x))->extend(f'(x)) if doing so doesn't affect
2733 the result. Canonicalize floor(x) as trunc(x) if x is
2734 nonnegative.
2735
2736 2015-10-23 Tom de Vries <tom@codesourcery.com>
2737
2738 * tree-ssa-structalias.c (intra_create_variable_infos): Use
2739 make_constraint_from.
2740
2741 2015-10-23 Tom de Vries <tom@codesourcery.com>
2742
2743 * tree-ssa-structalias.c (create_variable_info_for_1): Add missing
2744 setting of is_full_var in case of a single field.
2745
2746 2015-10-22 Martin Sebor <msebor@redhat.com>
2747
2748 PR driver/68043
2749 * config/i386/i386.opt: Add missing periods to the ends of sentences.
2750 * config/msp430/msp430.opt: Same.
2751
2752 2015-10-21 David Wohlferd <dw@LimeGreenSocks.com>
2753
2754 * doc/extend.exp (Global Register Variables): Rewrite.
2755
2756 2015-10-22 Jeff Law <law@redhat.com>
2757
2758 * genattrtab.c (main): If we do not have any annul-true or annul-false
2759 slots, then write out a dummy eligible_for_annul_true or
2760 eligible_for_annul_false as needed.
2761
2762 2015-10-22 Nick Clifton <nickc@redhat.com>
2763
2764 * config/msp430/msp430.opt: Add -msilicon-errata and
2765 -msilicon-errata-warn.
2766 * config/msp430/msp430.h (ASM_SPEC): Pass new options on to
2767 assembler.
2768 * doc/invoke.texi: Document new options.
2769
2770 2015-10-22 Richard Biener <rguenther@suse.de>
2771
2772 PR tree-optimization/58497
2773 * tree-vect-generic.c (ssa_uniform_vector_p): New helper.
2774 (expand_vector_operations_1): Use it. Lower operations on
2775 all uniform vectors to scalar operations if the HW supports it.
2776
2777 2015-10-22 Richard Biener <rguenther@suse.de>
2778
2779 PR tree-optimization/19049
2780 PR tree-optimization/65962
2781 * tree-vect-data-refs.c (vect_analyze_group_access_1): Fall back
2782 to strided accesses if single-element interleaving doesn't work.
2783
2784 2015-10-22 Richard Biener <rguenther@suse.de>
2785
2786 PR middle-end/68046
2787 PR middle-end/61893
2788 * optabs.c (emit_libcall_block_1): Allow a NULL_RTX equiv.
2789 (expand_binop): For -ftrapv optabs do not record an REG_EQUAL note.
2790 (expand_unop): Likewise.
2791
2792 2015-10-22 Richard Biener <rguenther@suse.de>
2793
2794 * fold-const.c (fold_addr_of_array_ref_difference): Properly
2795 convert operands before folding a MINUS_EXPR.
2796 (fold_binary_loc): Move simplification of MINUS_EXPR on
2797 converted POINTER_PLUS_EXPRs ...
2798 * match.pd: ... here.
2799
2800 2015-10-22 Richard Sandiford <richard.sandiford@arm.com>
2801
2802 * builtins.c (fold_builtin_tan): Delete.
2803 (fold_builtin_1): Handle constant tan arguments here.
2804 * match.pd: Simplify (tan (atan x)) to x.
2805
2806 2015-10-22 Richard Sandiford <richard.sandiford@arm.com>
2807
2808 * builtins.c (fold_builtin_cproj): Delete.
2809 (fold_builtin_1): Handle constant arguments here.
2810 (build_complex_cproj): Move and rename to...
2811 * tree.c: (build_complex_inf): ...this.
2812 * tree.h (build_complex_inf): Declare.
2813 * match.pd: Fold cproj(x)->x if x has no infinity.
2814 Use build_complex_inf for existing cproj rules.
2815
2816 2015-10-22 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2817
2818 PR target/68015
2819 * config/s390/s390.md (mov<mode>cc): Emit compare only if we don't
2820 already have a comparison result.
2821
2822 2015-10-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2823
2824 PR target/63304
2825 * config/aarch64/aarch64.c (aarch64_nopcrelative_literal_loads): New.
2826 (aarch64_expand_mov_immediate): Use aarch64_nopcrelative_literal_loads.
2827 (aarch64_classify_address): Likewise.
2828 (aarch64_secondary_reload): Likewise.
2829 (aarch64_override_options_after_change_1): Adjust.
2830 * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>):
2831 Use aarch64_nopcrelative_literal_loads.
2832 (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
2833 * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
2834 Declare.
2835
2836 2015-10-21 Martin Sebor <msebor@redhat.com>
2837
2838 PR driver/68043
2839 * opts.c (undocumented_msg, use_diagnosed_msg): New globals.
2840 (print_filtered_help): Reference aliased option's name and encourage
2841 readers to use it in preference to the alias if the former is not
2842 documented. Mention when using an option is diagnosed.
2843 * gcc.c (display_help): End each sentence with a period.
2844
2845 * common.opt: End each sentence that describes an option with
2846 a period.
2847 * config/aarch64/aarch64.opt: Same.
2848 * config/alpha/alpha.opt: Same.
2849 * config/arc/arc.opt: Same.
2850 * config/arm/arm.opt: Same.
2851 * config/avr/avr.opt: Same.
2852 * config/bfin/bfin.opt: Same.
2853 * config/c6x/c6x.opt: Same.
2854 * config/cr16/cr16.opt: Same.
2855 * config/cris/cris.opt: Same.
2856 * config/cris/linux.opt: Same.
2857 * config/darwin.opt: Same.
2858 * config/epiphany/epiphany.opt: Same.
2859 * config/fr30/fr30.opt: Same.
2860 * config/frv/frv.opt: Same.
2861 * config/ft32/ft32.opt: Same.
2862 * config/g.opt: Same.
2863 * config/h8300/h8300.opt: Same.
2864 * config/i386/cygming.opt: Same.
2865 * config/i386/djgpp.opt: Same.
2866 * config/i386/i386.opt: Same.
2867 * config/i386/interix.opt: Same.
2868 * config/i386/mingw-w64.opt: Same.
2869 * config/i386/mingw.opt: Same.
2870 * config/ia64/ia64.opt: Same.
2871 * config/ia64/ilp32.opt: Same.
2872 * config/iq2000/iq2000.opt: Same.
2873 * config/linux.opt: Same.
2874 * config/lm32/lm32.opt: Same.
2875 * config/lynx.opt: Same.
2876 * config/m32c/m32c.opt: Same.
2877 * config/m32r/m32r.opt: Same.
2878 * config/m68k/ieee.opt: Same.
2879 * config/m68k/m68k.opt: Same.
2880 * config/mcore/mcore.opt: Same.
2881 * config/mep/mep.opt: Same.
2882 * config/microblaze/microblaze.opt: Same.
2883 * config/mips/mips.opt: Same.
2884 * config/mmix/mmix.opt: Same.
2885 * config/mn10300/mn10300.opt: Same.
2886 * config/moxie/moxie.opt: Same.
2887 * config/msp430/msp430.opt: Same.
2888 * config/nios2/elf.opt: Same.
2889 * config/nios2/nios2.opt: Same.
2890 * config/nvptx/nvptx.opt: Same.
2891 * config/pa/pa-hpux.opt: Same.
2892 * config/pa/pa-hpux1010.opt: Same.
2893 * config/pa/pa-hpux1111.opt: Same.
2894 * config/pa/pa-hpux1131.opt: Same.
2895 * config/pa/pa.opt: Same.
2896 * config/pa/pa64-hpux.opt: Same.
2897 * config/pdp11/pdp11.opt: Same.
2898 * config/rl78/rl78.opt: Same.
2899 * config/rs6000/476.opt: Same.
2900 * config/rs6000/aix64.opt: Same.
2901 * config/rs6000/darwin.opt: Same.
2902 * config/rs6000/linux64.opt: Same.
2903 * config/rs6000/rs6000.opt: Same.
2904 * config/rs6000/sysv4.opt: Same.
2905 * config/s390/s390.opt: Same.
2906 * config/s390/tpf.opt: Same.
2907 * config/sh/sh.opt: Same.
2908 * config/sol2.opt: Same.
2909 * config/sparc/long-double-switch.opt: Same.
2910 * config/sparc/sparc.opt: Same.
2911 * config/spu/spu.opt: Same.
2912 * config/stormy16/stormy16.opt: Same.
2913 * config/tilegx/tilegx.opt: Same.
2914 * config/tilepro/tilepro.opt: Same.
2915 * config/v850/v850.opt: Same.
2916 * config/vax/vax.opt: Same.
2917 * config/visium/visium.opt: Same.
2918 * config/vms/vms.opt: Same.
2919 * config/vxworks.opt: Same.
2920 * config/xtensa/xtensa.opt: Same.
2921
2922 2015-10-21 Aditya Kumar <aditya.k7@samsung.com>
2923 Sebastian Pop <s.pop@samsung.com>
2924
2925 * graphite-scop-detection.c (parameter_index_in_region): Update call to
2926 invariant_in_sese_p_rec.
2927 * graphite-sese-to-poly.c (extract_affine): Same.
2928 * sese.c (invariant_in_sese_p_rec): Pass in an extra
2929 parameter has_vdefs.
2930 (scalar_evolution_in_region): Return chrec_dont_know when the scalar
2931 variable depends on virtual definitions in the current region.
2932 * sese.h (invariant_in_sese_p_rec): Update declaration.
2933
2934 2015-10-21 Aditya Kumar <aditya.k7@samsung.com>
2935 Sebastian Pop <s.pop@samsung.com>
2936
2937 * graphite-scop-detection.c (build_scops): Do not handle scops
2938 with more than PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP arrays.
2939 * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP): New.
2940
2941 2015-10-21 Mikhail Maltsev <maltsevm@gmail.com>
2942
2943 * config.in: Regenerate.
2944 * configure: Regenerate.
2945 * configure.ac (CHECKING_P): Define.
2946 * system.h: Use CHECKING_P.
2947
2948 2015-10-11 Jan Hubicka <hubicka@ucw.cz>
2949
2950 PR ipa/67056
2951 * ipa-polymorphic-call.c (possible_placement_new): If cur_offset
2952 is negative we don't know the type.
2953 (check_stmt_for_type_change): Skip constructors of non-polymorphic
2954 types as those won't help devirutalization.
2955
2956 2015-10-11 Jan Hubicka <hubicka@ucw.cz>
2957
2958 * fold-const.c (operand_equal_p): Add code matching empty constructors.
2959
2960 2015-10-21 Eric Botcazou <ebotcazou@adacore.com>
2961
2962 * tree.def (CEIL_DIV_EXPR, FLOOR_DIV_EXPR, ROUND_DIV_EXPR): Tweak
2963 comments.
2964 (TRUNC_MOD_EXPR, CEIL_MOD_EXPR, FLOOR_MOD_EXPR, ROUND_MOD_EXPR):
2965 Add comments on sign of the result.
2966 * fold-const.c (tree_binary_nonnegative_warnv_p) <FLOOR_MOD_EXPR>:
2967 Recurse on operand #1 instead of operand #0.
2968 <CEIL_MOD_EXPR>: Do not recurse.
2969 <ROUND_MOD_EXPR>: Likewise.
2970
2971 2015-10-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2972
2973 * cfgrtl.c (pass_free_cfg::execute): Adjust.
2974 * final.c (dbr_sequence_length): Always define.
2975 (shorten_branches): Adjust.
2976 * genattr-common.c (main): Always define DELAY_SLOTS.
2977 * genattr.c (main): Unconditionally declare functions and define
2978 macros related to delay slots.
2979 * genattrtab.c (write_eligible_delay): Adjust.
2980 (main): Always write out delay slot functions.
2981 * opts.c (default_options_table): Adjust.
2982 * reorg.c (redirect_with_delay_slots_safe_p): Likewise.
2983 (redirect_with_delay_list_safe_p): Likewise.
2984 (fill_simple_delay_slots): Likewise.
2985 (fill_slots_from_thread): Likewise.
2986 (make_return_insns): Likewise.
2987 (dbr_schedule): Likewise.
2988 (rest_of_handle_delay_slots): Likewise.
2989 (pass_delay_slots::gate): Likewise.
2990 * toplev.c (process_options): Likewise.
2991
2992 2015-10-21 Richard Henderson <rth@redhat.com>
2993
2994 * targhooks.c (default_addr_space_pointer_mode): Remove check
2995 for generic address space.
2996 (default_addr_space_address_mode): Likewise.
2997 (default_addr_space_valid_pointer_mode): Likewise.
2998 (default_addr_space_legitimate_address_p): Likewise.
2999 (default_addr_space_legitimize_address): Likewise.
3000 * target.def (addr_space.pointer_mode): Update documentation
3001 of default behavior.
3002 (addr_space.address_mode): Likewise.
3003 * tm.texi: Update.
3004
3005 * expr.c (expand_expr_real_2): Use convert_modes on disjoint
3006 address spaces.
3007
3008 2015-10-21 Richard Sandiford <richard.sandiford@arm.com>
3009
3010 * builtins.c (fold_builtin_cabs): Delete.
3011 (fold_builtin_1): Update accordingly. Handle constant arguments here.
3012 * match.pd: Add rules previously handled by fold_builtin_cabs.
3013
3014 2015-10-21 Richard Sandiford <richard.sandiford@arm.com>
3015
3016 * fold-const.h (fold_strip_sign_ops): Delete.
3017 * fold-const.c (fold_strip_sign_ops): Likewise.
3018 (fold_unary_loc, fold_binary_loc): Remove calls to it.
3019 * builtins.c (fold_builtin_cos, fold_builtin_cosh)
3020 (fold_builtin_ccos): Delete.
3021 (fold_builtin_pow): Don't call fold_strip_sign_ops.
3022 (fold_builtin_hypot, fold_builtin_copysign): Likewise.
3023 Remove fndecl argument.
3024 (fold_builtin_1): Update calls accordingly. Handle constant
3025 cos, cosh, ccos and ccosh here.
3026
3027 2015-10-21 Richard Sandiford <richard.sandiford@arm.com>
3028
3029 * doc/invoke.texi (-fdump-tree-backprop, -fssa-backprop): Document.
3030 * Makefile.in (OBJS): Add gimple-ssa-backprop.o.
3031 * common.opt (fssa-backprop): New option.
3032 * fold-const.h (negate_mathfn_p): Declare.
3033 * fold-const.c (negate_mathfn_p): Make public.
3034 * timevar.def (TV_TREE_BACKPROP): New.
3035 * tree-pass.h (make_pass_backprop): Declare.
3036 * passes.def (pass_backprop): Add.
3037 * gimple-ssa-backprop.c: New file.
3038
3039 2015-10-21 Aditya Kumar <aditya.k7@samsung.com>
3040 Sebastian Pop <s.pop@samsung.com>
3041
3042 * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard):
3043 Do not call create_empty_if_region_on_edge when cond_expr is true.
3044 (translate_isl_ast_node_for): Check whether a guard has been generated.
3045
3046 2015-10-21 Aditya Kumar <aditya.k7@samsung.com>
3047
3048 * graphite-poly.h (struct dr_info): Added invalid_alias_set number.
3049 (operator=): Removed.
3050 (dr_info): Make alias_set number the last argument with default
3051 value of invalid_alias_set.
3052 * graphite-sese-to-poly.c (build_scop_drs): Update constructor
3053 of dr_info.
3054 (rewrite_reductions_out_of_ssa): Iterate only through the
3055 basic blocks which are inside region.
3056 (rewrite_cross_bb_scalar_deps_out_of_ssa): Same.
3057 * sese.h (struct sese_l): Removed assignment operator.
3058 (split_region_for_bb): Removed dead code.
3059
3060 2015-10-21 Aditya Kumar <aditya.k7@samsung.com>
3061
3062 * graphite-poly.h (struct dr_info): Removed conversion constructor.
3063 (struct scop): Renamed scop::region to scop::scop_info
3064 (scop_set_region): Same.
3065 (SCOP_REGION): Removed
3066 (SCOP_CONTEXT): Removed.
3067 (POLY_SCOP_P): Removed.
3068 * graphite-isl-ast-to-gimple.c (translate_isl_ast_node_user):
3069 Rename scop->region to scop->scop_info.
3070 (add_parameters_to_ivs_params): Same.
3071 (graphite_regenerate_ast_isl): Same.
3072 * graphite-poly.c (new_scop): Same.
3073 (free_scop): Same.
3074 (print_scop_params): Same.
3075 * graphite-scop-detection.c (scop_detection::remove_subscops): Same.
3076 (scop_detection::remove_intersecting_scops): Use pointer to sese_l.
3077 (dot_all_scops_1): Rename scop->region to scop->scop_info.
3078 (scop_detection::nb_pbbs_in_loops): Same.
3079 (find_scop_parameters): Same.
3080 (try_generate_gimple_bb): Same.
3081 (gather_bbs::before_dom_children): Same.
3082 (gather_bbs::after_dom_children): Same.
3083 (build_scops): Same.
3084 * graphite-sese-to-poly.c (build_scop_scattering): Same.
3085 (extract_affine_chrec): Same.
3086 (extract_affine): Same.
3087 (set_scop_parameter_dim): Same.
3088 (build_loop_iteration_domains): Same.
3089 (create_pw_aff_from_tree): Same.
3090 (add_param_constraints): Same.
3091 (build_scop_iteration_domain): Same.
3092 (build_scop_drs): Same.
3093 (analyze_drs_in_stmts): Same.
3094 (insert_out_of_ssa_copy_on_edge): Same.
3095 (rewrite_close_phi_out_of_ssa):Same.
3096 (rewrite_reductions_out_of_ssa):Same.
3097 (handle_scalar_deps_crossing_scop_limits):Same.
3098 (rewrite_cross_bb_scalar_deps):Same.
3099 (rewrite_cross_bb_scalar_deps_out_of_ssa):Same.
3100 (build_poly_scop):Same.
3101 (build_alias_set): Use pointer to dr_info.
3102 * graphite.c (print_graphite_scop_statistics):
3103 (graphite_transform_loops):
3104 * sese.h (struct sese_l): Remove conversion constructor.
3105
3106 2015-10-11 Jan Hubicka <hubicka@ucw.cz>
3107
3108 PR middle-end/67966
3109 * tree.c (verify_type): Verify that TYPE_MODE match
3110 between TYPE_CANONICAL and type.
3111 * expr.c (store_expr_with_bounds): Revert my previous change.
3112 * expmed.c (store_bit_field_1): Revert prevoius change.
3113 * gimple-expr.c (useless_type_conversion_p): Require TYPE_MODE
3114 to match for all types.
3115
3116 2015-10-21 Nathan Sidwell <nathan@codesourcery.com>
3117
3118 * omp-low.c (check_omp_nesting_restrictions): Check OpenACC loop
3119 nesting.
3120
3121 2015-10-21 Ilya Enkovich <enkovich.gnu@gmail.com>
3122
3123 * doc/tm.texi: Regenerated.
3124 * doc/tm.texi.in (TARGET_VECTORIZE_GET_MASK_MODE): New.
3125 * stor-layout.c (layout_type): Use mode to get vector mask size.
3126 * target.def (get_mask_mode): New.
3127 * targhooks.c (default_get_mask_mode): New.
3128 * targhooks.h (default_get_mask_mode): New.
3129 * tree-vect-stmts.c (get_same_sized_vectype): Add special case
3130 for boolean vector.
3131 * tree.c (MAX_BOOL_CACHED_PREC): New.
3132 (nonstandard_boolean_type_cache): New.
3133 (build_nonstandard_boolean_type): New.
3134 (make_vector_type): Vector mask has no canonical type.
3135 (build_truth_vector_type): New.
3136 (build_same_sized_truth_vector_type): New.
3137 (truth_type_for): Support vector masks.
3138 * tree.h (VECTOR_BOOLEAN_TYPE_P): New.
3139 (build_truth_vector_type): New.
3140 (build_same_sized_truth_vector_type): New.
3141 (build_nonstandard_boolean_type): New.
3142 * tree-cfg.c (verify_gimple_comparison) Require boolean
3143 vector type for vector comparison.
3144 (verify_gimple_assign_ternary): Likewise.
3145 * optabs.c (expand_vec_cond_expr): Accept boolean vector as
3146 condition operand.
3147 * tree-vect-stmts.c (vectorizable_condition): Use boolean
3148 vector type for vector comparison.
3149 * tree-vect-generic.c (elem_op_func): Add new operand to hold
3150 vector type.
3151 (do_unop): Adjust to modified function type.
3152 (do_binop): Likewise.
3153 (do_plus_minus): Likewise.
3154 (do_negate); Likewise.
3155 (expand_vector_piecewise): Likewise.
3156 (do_cond): Likewise.
3157 (do_compare): Use comparison instead of condition.
3158 (expand_vector_divmod): Use boolean vector type for comparison.
3159 (expand_vector_operations_1): Skip scalar mask operations.
3160
3161 2015-10-21 Ilya Enkovich <enkovich.gnu@gmail.com>
3162
3163 * omp-low.c (simd_clone_create): Set in_other_partition
3164 for created clones.
3165
3166 2015-10-21 David Wohlferd <dw@LimeGreenSocks.com>
3167
3168 * doc/extend.exp (Local Register Variables): Rewrite.
3169
3170 2015-10-21 Richard Sandiford <richard.sandiford@arm.com>
3171
3172 * match.pd: Add rules to simplify ccos, ccosh, hypot, copysign
3173 and x*x in cases where the operands are sign ops. Extend these
3174 rules to handle copysign as a sign op (including for cos, cosh
3175 and pow, which already treated negate and abs as sign ops).
3176
3177 2015-10-21 Uros Bizjak <ubizjak@gmail.com>
3178
3179 PR target/68018
3180 * config/i386/i386.c (ix86_compute_frame_layout): Realign the stack
3181 for 64-bit MS_ABI targets also when default incoming stack boundary
3182 is overriden.
3183
3184 2015-10-21 Richard Biener <rguenther@suse.de>
3185
3186 * tree-ssa-sccvn.c (cond_stmts_equal_p): Compare two GIMPLE
3187 cond stmts, enhanced and split out from ...
3188 (vn_phi_eq): ... here.
3189
3190 2015-10-21 Richard Biener <rguenther@suse.de>
3191
3192 PR middle-end/68031
3193 * fold-const.c: Include tree-ssa-operands.h and tree-into-ssa.h.
3194 (tree_ssa_name_nonnegative_warnv_p): Fold into ...
3195 (tree_single_nonnegative_warnv_p): ... here. For SSA names
3196 make sure they are not registered for update.
3197
3198 2015-10-21 Richard Biener <rguenther@suse.de>
3199
3200 PR tree-optimization/68026
3201 * tree-ssa-ccp.c (get_value_for_expr): Zero-extend mask for
3202 unsigned VARYING values.
3203
3204 2015-10-21 Maxim Ostapenko <m.ostapenko@partner.samsung.com>
3205
3206 * asan.c (asan_emit_stack_protection): Don't pass local stack to
3207 asan_stack_malloc_[n] anymore. Check if asan_stack_malloc_[n] returned
3208 NULL and use local stack than.
3209 (asan_finish_file): Insert __asan_version_mismatch_check_v[n] call
3210 in addition to __asan_init.
3211 * sanitizer.def (BUILT_IN_ASAN_INIT): Rename to __asan_init.
3212 (BUILT_IN_ASAN_VERSION_MISMATCH_CHECK): Add new builtin call.
3213 * asan.h (asan_intercepted_p): Handle new string builtins.
3214 * ubsan.c (ubsan_use_new_style_p): New function.
3215 (ubsan_instrument_float_cast): If location is unknown, assign
3216 input_location to loc. Propagate loc to ubsan_create_data if
3217 ubsan_use_new_style_p returned true.
3218
3219 2015-10-21 Jeff Law <law@redhat.com>
3220
3221 * Makefile.in (OBJS): Remove sched-vis.c
3222 * sched-vis.c: Removed. Code moved into...
3223 * print-rtl.c: Here. Include cfg.h, pretty-print.h and print-rtl.h.
3224 * rtl.h: Remove prototypes for functions now living in print-rtl.c
3225 * print-rtl.h Add prototypes for new functions in print-rtl.c.
3226 * auto-inc-dec.c: Include print-rtl.h
3227 * cfgrtl.c, combine.c, final.c haifa-sched.c: Likewise.
3228 * ira.c, lra-constraints.c, lra.c, sel-sched-dump.c: Likewise.
3229
3230 * varasm.c (handle_vtv_comdat_section): Mark 2nd parameter with
3231 ATTRIBUTE_UNUSED.
3232
3233 2015-10-21 Richard Biener <rguenther@suse.de>
3234 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
3235
3236 * fold-const.c (fold_binary_loc) : Move (-A) * (-B) -> A * B
3237 to match.pd.
3238 Move (a * (1 << b)) is (a << b) to match.pd.
3239 Move convert (C1/X)*C2 into (C1*C2)/X to match.pd.
3240 Move ~X & X, (X == 0) & X, and !X & X are zero to match.pd.
3241 Move X & ~X , X & (X == 0), and X & !X are zero to match.pd.
3242
3243 * match.pd (mult:c @0 (convert? (lshift integer_onep@1 @2))):
3244 New simplifier.
3245 (mult (rdiv:s REAL_CST@0 @1) REAL_CST@2): New simplifier.
3246 (bit_and:c (convert? @0) (convert? (bit_not @0))): New simplifier.
3247 (bit_ior (bit_and:s @0 (bit_not:s @1)) (bit_and:s (bit_not:s @0) @1))
3248 : New simplifier.
3249 (mult:c (convert1? (negate @0)) (convert2? negate_expr_p@1)):
3250 New simplifier.
3251 (match (logical_inverted_value @0) (truth_not @0)) : New Predicate.
3252
3253 2015-10-21 Gregor Richards <gregor.richards@uwaterloo.ca>
3254 Szabolcs Nagy <szabolcs.nagy@arm.com>
3255 Alan Modra <amodra@gmail.com>
3256
3257 * config/rs6000/secureplt.h (LINK_SECURE_PLT_DEFAULT_SPEC): Define.
3258 * config/rs6000/sysv4.h (LINK_SECURE_PLT_SPEC): Define.
3259 (LINK_SPEC): Add %(link_secure_plt).
3260 (SUBTARGET_EXTRA_SPECS): Add "link_secure_plt".
3261 * config/rs6000/linux64.h (LINK_SECURE_PLT_SPEC): Redefine.
3262
3263 2015-10-20 Gregor Richards <gregor.richards@uwaterloo.ca>
3264 Szabolcs Nagy <szabolcs.nagy@arm.com>
3265
3266 * config/sh/linux.h (MUSL_DYNAMIC_LINKER): Define.
3267 (MUSL_DYNAMIC_LINKER_E, MUSL_DYNAMIC_LINKER_FP): Define.
3268
3269 2015-10-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3270
3271 * config/aarch64/aarch64.c (aarch64_mode_valid_for_sched_fusion_p):
3272 New function.
3273 (fusion_load_store): Use it.
3274 * config/aarch64/aarch64-ldpstp.md: Add new peephole2s for
3275 ldp and stp in VD modes.
3276 * config/aarch64/aarch64-simd.md (load_pair<mode>, VD): New pattern.
3277 (store_pair<mode>, VD): Likewise.
3278
3279 2015-10-20 Vladimir Makarov <vmakarov@redhat.com>
3280
3281 PR rtl-optimization/67609
3282 * lra-splill.c (lra_final_code_change): Don't remove all
3283 sub-registers.
3284
3285 2015-10-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3286
3287 * simplify-rtx.c (simplify_binary_operation): If either operand was
3288 a constant pool reference use them if all other simplifications failed.
3289
3290 2015-10-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3291
3292 * config/aarch64/aarch64.md
3293 (*aarch64_fcvt<su_optab><GPF:mode><GPI:mode>2_mult): New pattern.
3294 * config/aarch64/aarch64-simd.md
3295 (*aarch64_fcvt<su_optab><VDQF:mode><fcvt_target>2_mult): Likewise.
3296 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle above patterns.
3297 (aarch64_fpconst_pow_of_2): New function.
3298 (aarch64_vec_fpconst_pow_of_2): Likewise.
3299 * config/aarch64/aarch64-protos.h (aarch64_fpconst_pow_of_2): Declare
3300 prototype.
3301 (aarch64_vec_fpconst_pow_of_2): Likewise.
3302 * config/aarch64/predicates.md (aarch64_fp_pow2): New predicate.
3303 (aarch64_fp_vec_pow2): Likewise.
3304
3305 2015-10-20 Uros Bizjak <ubizjak@gmail.com>
3306
3307 * config/alpha/alpha.h (HARD_REGNO_NREGS): Use CEIL macro.
3308 (ALPHA_ARG_SIZE): Ditto. Remove unused NAMED argument.
3309 * config/alpha/alpha.c (alpha_function_arg_advance): Update
3310 ALPHA_ARG_SIZE usage.
3311 (alpha_arg_partial_bytes): Ditto.
3312
3313 2015-10-20 H.J. Lu <hongjiu.lu@intel.com>
3314
3315 PR target/66810
3316 * cgraphbuild.c (pass_build_cgraph_edges::execute): Skip local
3317 error_mark_node decls.
3318
3319 2015-10-20 H.J. Lu <hongjiu.lu@intel.com>
3320
3321 PR target/67963
3322 PR target/67985
3323 * common/config/i386/i386-common.c (ix86_handle_option): Remove
3324 OPT_miamcu handling.
3325 * config/i386/i386.c (PTA_NO_80387): New macro.
3326 (processor_alias_table): Add PTA_NO_80387 to lakemont.
3327 (ix86_option_override_internal): Update MASK_80387 from
3328 PTA_NO_80387. Don't warn x87/MMX/SSE/AVX for -miamcu. Warn
3329 SSE math only if 80387 is supported. Don't change
3330 MASK_FLOAT_RETURNS.
3331 (ix86_valid_target_attribute_tree): Enable FPMATH_387 only if
3332 80387 is supported.
3333 * config/i386/i386.h (TARGET_FLOAT_RETURNS_IN_80387): True only
3334 if TARGET_80387 is true and TARGET_IAMCU is false.
3335 (TARGET_FLOAT_RETURNS_IN_80387_P): True only if TARGET_80387_P
3336 is true and TARGET_IAMCU_P is false.
3337
3338 2015-10-20 Richard Biener <rguenther@suse.de>
3339
3340 PR tree-optimization/68017
3341 * tree-tailcall.c (eliminate_tail_call): Remove stmts backwards.
3342
3343 2015-10-20 Martin Liska <mliska@suse.cz>
3344
3345 * cgraphclones.c (cgraph_node::create_virtual_clone):
3346 Verify cgraph_node.local.versionable instead of calling
3347 tree_versionable_function_p.
3348 * ipa-cp.c (determine_versionability): Save the information
3349 to ipa_node_params summary.
3350 (ipcp_versionable_function_p): Use it.
3351 (ipcp_propagate_stage): Pass IPA_NODE_REF to a called function.
3352 (ipcp_generate_summary): Do not compute cgraph_node
3353 versionability.
3354 * ipa-inline-analysis.c (inline_generate_summary): Compute
3355 versionability for all cgraph nodes.
3356 * ipa-prop.c (ipa_node_params_t::duplicate): Duplicate
3357 ipa_node_params::versionability.
3358 * ipa-prop.h (struct ipa_node_params): Declare it.
3359
3360 2015-10-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3361
3362 PR other/67868
3363 * varasm.c (assemble_variable): Move special vtv handling to..
3364 (handle_vtv_comdat_sections): .. here. New function.
3365 (output_object_block): Handle vtv sections.
3366
3367 2015-10-20 Szabolcs Nagy <szabolcs.nagy@arm.com>
3368
3369 PR target/66912
3370 * varasm.c (default_binds_local_p_2): Turn on extern_protected_data.
3371
3372 2015-10-20 Arkadiusz Drabczyk <arkadiusz@drabczyk.org>
3373
3374 * doc/extend.texi: Update documentation WRT inline functions.
3375
3376 2015-10-20 Alan Modra <amodra@gmail.com>
3377
3378 PR go/66870
3379 * config/rs6000/sysv4.h (TARGET_CAN_SPLIT_STACK_64BIT): Don't define.
3380 * config/rs6000/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
3381 (TARGET_CAN_SPLIT_STACK_64BIT): Define.
3382
3383 2015-10-19 Pierre-Marie de Rodat <derodat@adacore.com>
3384
3385 PR rtl-optimization/66790
3386 * df.h (DF_MIR): New macro.
3387 (DF_LAST_PROBLEM_PLUS1): Update to be past DF_MIR
3388 (DF_MIR_INFO_BB): New macro.
3389 (DF_MIR_IN, DF_MIR_OUT): New macros.
3390 (struct df_mir_bb_info): New.
3391 (df_mir): New macro.
3392 (df_mir_add_problem, df_mir_simulate_one_insn): New forward
3393 declarations.
3394 (df_mir_get_bb_info): New.
3395 * df-problems.c (struct df_mir_problem_data): New.
3396 (df_mir_free_bb_info, df_mir_alloc, df_mir_reset,
3397 df_mir_bb_local_compute, df_mir_local_compute, df_mir_init,
3398 df_mir_confluence_0, df_mir_confluence_n,
3399 df_mir_transfer_function, df_mir_free, df_mir_top_dump,
3400 df_mir_bottom_dump, df_mir_verify_solution_start,
3401 df_mir_verify_solution_end): New.
3402 (problem_MIR): New.
3403 (df_mir_add_problem, df_mir_simulate_one_insn): New.
3404 * timevar.def (TV_DF_MIR): New.
3405 * ree.c: Include bitmap.h
3406 (add_removable_extension): Add an INIT_REGS parameter. Use it
3407 to skip zero-extensions that may get an uninitialized register.
3408 (find_removable_extensions): Compute must-initialized registers
3409 using the MIR dataflow problem. Update the call to
3410 add_removable_extension.
3411 (find_and_remove_re): Call df_mir_add_problem.
3412
3413 2015-10-19 Segher Boessenkool <segher@kernel.crashing.org>
3414
3415 * common/config/mn10300/mn10300-common.c
3416 (mn10300_option_optimization_table) <OPT_freorder_blocks_algorithm_>:
3417 Use REORDER_BLOCKS_ALGORITHM_STC at -Os and up.
3418
3419 2015-10-19 David Wohlferd <dw@LimeGreenSocks.com>
3420
3421 * doc/extend.texi (Explicit Register Variables): Simplify and
3422 avoid unnecessary and confusion abbreviations. Update cross
3423 references.
3424 doc/implement-c.tex: Update cross reference.
3425
3426 2015-10-19 Jeff Law <law@redhat.com>
3427
3428 * tree-ssa-threadupdate.c (valid_jump_thread_path): Reject paths
3429 that create irreducible loops unless the path elimiantes a multiway
3430 branch.
3431
3432 2015-10-19 Richard Biener <rguenther@suse.de>
3433
3434 PR tree-optimization/67975
3435 * tree-cfg.h (extract_true_false_controlled_edges): Declare.
3436 * tree-cfg.c (extract_true_false_controlled_edges): Split out
3437 core worker from ...
3438 * tree-ssa-loop-im.c (extract_true_false_args_from_phi): ... here.
3439 * tree-ssa-sccvn.c (vn_phi_compute_hash): Hash number of args
3440 instead of block number for PHIs with two or one args.
3441 (vn_phi_eq): Compare edge predicates of PHIs that are in different
3442 blocks.
3443
3444 2015-10-19 Richard Biener <rguenther@suse.de>
3445
3446 * gimple-fold.c (gimple_phi_nonnegative_warnv_p): New function.
3447 (gimple_stmt_nonnegative_warnv_p): Use it.
3448 * match.pd (CPROJ): New operator list.
3449 (cproj (complex ...)): Move simplifications from ...
3450 * builtins.c (fold_builtin_cproj): ... here.
3451
3452 2015-10-19 H.J. Lu <hongjiu.lu@intel.com>
3453
3454 * config/i386/i386.c (ix86_expand_vector_move): Use
3455 GET_MODE_BITSIZE for IA MCU psABI to get vector natural
3456 alignment.
3457
3458 2015-10-19 H.J. Lu <hongjiu.lu@intel.com>
3459
3460 * doc/invoke.texi: Replace @optindex with @opindex.
3461
3462 2015-10-19 H.J. Lu <hongjiu.lu@intel.com>
3463
3464 PR target/67995
3465 * config/i386/i386.c (ix86_valid_target_attribute_tree): If
3466 arch= is set, clear all bits in x_ix86_isa_flags, except for
3467 ISA_64BIT, ABI_64, ABI_X32, and CODE16.
3468
3469 2015-10-19 Joost VandeVondele <vondele@gnu.gcc.org>
3470
3471 PR middle-end/68002
3472 * common.opt (fkeep-static-functions): New option.
3473 * doc/invoke.texi: Document it.
3474 * cgraphunit.c (cgraph_node::finalize_function): Use it.
3475
3476 2015-10-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3477
3478 * sched-int.h (struct autopref_multipass_data_): Remove offset
3479 field. Add min_offset, max_offset, multi_mem_insn_p fields.
3480 * haifa-sched.c (analyze_set_insn_for_autopref): New function.
3481 (autopref_multipass_init): Use it. Handle PARALLEL sets.
3482 (autopref_rank_data): New function.
3483 (autopref_rank_for_schedule): Use it.
3484 (autopref_multipass_dfa_lookahead_guard_1): Likewise.
3485
3486 2015-10-18 Mikhail Maltsev <maltsevm@gmail.com>
3487
3488 PR other/65800
3489 * gengtype.c (dump_type): Handle TYPE_UNDEFINED correctly.
3490
3491 2015-10-18 Iain Sandoe <iain@codesourcery.com>
3492
3493 * config/darwin.h (TARGET_SYSTEM_ROOT): Remove this from here,
3494 (HAVE_LD_SYSROOT): New. (SYSROOT_SPEC): New.
3495 (LINK_SYSROOT_SPEC): Revise to remove the default for target sysroot.
3496 (STANDARD_STARTFILE_PREFIX_1): New.
3497 (STANDARD_STARTFILE_PREFIX_2): New.
3498
3499 2015-10-18 Iain Sandoe <iain@codesourcery.com>
3500
3501 * config/darwin-driver.c (darwin_default_min_version): Refactor code.
3502 (darwin_driver_init): Note a version-min when provided on the c/l.
3503 * config/darwin.h (%darwin_minversion): Remove.
3504 * config/i386/darwin.h: Likewise.
3505 * config/rs6000/darwin.h: Likewise.
3506 * config/darwin.opt (mmacosx-version-min=): Use the configured default,
3507 rather than an arbitrary constant.
3508
3509 2015-10-18 Iain Sandoe <iain@codesourcery.com>
3510
3511 * config/darwin-driver.c (darwin_driver_init): Handle '-arch' for
3512 PPC, detect conflicts between -arch and multilib settings. Detect
3513 and warn about conflicts between multiple -arch definitions.
3514
3515 2015-10-18 Iain Sandoe <iain@codesourcery.com>
3516
3517 * config/darwin-driver.c: Adjust includes to add diagnostic-core.
3518
3519 2015-10-16 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3520
3521 * lra-constraints.c (add_next_usage_insn): Change argument type
3522 from rtx to rtx_insn *.
3523
3524 2015-10-16 H.J. Lu <hongjiu.lu@intel.com>
3525
3526 * i386/x86-tune.def (X86_TUNE_ALWAYS_FANCY_MATH_387): Disable
3527 for Lakemont.
3528
3529 2015-10-16 Andrew MacLeod <amacleod@redhat.com>
3530
3531 * config/tilepro/gen-mul-tables.cc: Adjust include files.
3532 * config/tilegx/mul-tables.c: Regenerate.
3533 * config/tilepro/mul-tables.c: Regenerate.
3534
3535 * config/tilegx/tilegx-c.c: Adjust include files.
3536 * config/tilegx/tilegx.c: Likewise.
3537 * config/tilepro/tilepro-c.c: Likewise.
3538 * config/tilepro/tilepro.c: Likewise.
3539 * config/aarch64/aarch64-builtins.c: Likewise.
3540 * config/aarch64/aarch64.c: Likewise.
3541 * config/aarch64/cortex-a57-fma-steering.c: Likewise.
3542 * config/alpha/alpha.c: Likewise.
3543 * config/arc/arc.c: Likewise.
3544 * config/arm/aarch-common.c: Likewise.
3545 * config/arm/arm-builtins.c: Likewise.
3546 * config/arm/arm-c.c: Likewise.
3547 * config/arm/arm.c: Likewise.
3548 * config/avr/avr-c.c: Likewise.
3549 * config/avr/avr-devices.c: Likewise.
3550 * config/avr/avr-log.c: Likewise.
3551 * config/avr/avr.c: Likewise.
3552 * config/bfin/bfin.c: Likewise.
3553 * config/c6x/c6x.c: Likewise.
3554 * config/cr16/cr16.c: Likewise.
3555 * config/cris/cris.c: Likewise.
3556 * config/darwin-c.c: Likewise.
3557 * config/darwin-driver.c: Likewise.
3558 * config/darwin.c: Likewise.
3559 * config/default-c.c: Likewise.
3560 * config/epiphany/epiphany.c: Likewise.
3561 * config/epiphany/mode-switch-use.c: Likewise.
3562 * config/epiphany/resolve-sw-modes.c: Likewise.
3563 * config/fr30/fr30.c: Likewise.
3564 * config/frv/frv.c: Likewise.
3565 * config/ft32/ft32.c: Likewise.
3566 * config/glibc-c.c: Likewise.
3567 * config/h8300/h8300.c: Likewise.
3568 * config/i386/host-cygwin.c: Likewise.
3569 * config/i386/host-mingw32.c: Likewise.
3570 * config/i386/i386-c.c: Likewise.
3571 * config/i386/i386.c: Likewise.
3572 * config/i386/msformat-c.c: Likewise.
3573 * config/i386/winnt-cxx.c: Likewise.
3574 * config/i386/winnt-stubs.c: Likewise.
3575 * config/i386/winnt.c: Likewise.
3576 * config/ia64/ia64-c.c: Likewise.
3577 * config/ia64/ia64.c: Likewise.
3578 * config/iq2000/iq2000.c: Likewise.
3579 * config/lm32/lm32.c: Likewise.
3580 * config/m32c/m32c-pragma.c: Likewise.
3581 * config/m32c/m32c.c: Likewise.
3582 * config/m32r/m32r.c: Likewise.
3583 * config/mcore/mcore.c: Likewise.
3584 * config/mep/mep-pragma.c: Likewise.
3585 * config/mep/mep.c: Likewise.
3586 * config/microblaze/microblaze-c.c: Likewise.
3587 * config/microblaze/microblaze.c: Likewise.
3588 * config/mips/mips-tables.opt
3589 * config/mips/mips.c: Likewise.
3590 * config/mmix/mmix.c: Likewise.
3591 * config/mn10300/mn10300.c: Likewise.
3592 * config/moxie/moxie.c: Likewise.
3593 * config/msp430/msp430-c.c: Likewise.
3594 * config/msp430/msp430.c: Likewise.
3595 * config/nds32/nds32-cost.c: Likewise.
3596 * config/nds32/nds32-fp-as-gp.c: Likewise.
3597 * config/nds32/nds32-intrinsic.c: Likewise.
3598 * config/nds32/nds32-isr.c: Likewise.
3599 * config/nds32/nds32-md-auxiliary.c: Likewise.
3600 * config/nds32/nds32-memory-manipulation.c: Likewise.
3601 * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
3602 * config/nds32/nds32-predicates.c: Likewise.
3603 * config/nds32/nds32.c: Likewise.
3604 * config/nios2/nios2.c: Likewise.
3605 * config/nvptx/mkoffload.c: Likewise.
3606 * config/nvptx/nvptx.c: Likewise.
3607 * config/pa/pa.c: Likewise.
3608 * config/pdp11/pdp11.c: Likewise.
3609 * config/rl78/rl78-c.c: Likewise.
3610 * config/rl78/rl78.c: Likewise.
3611 * config/rs6000/host-darwin.c: Likewise.
3612 * config/rs6000/rs6000-c.c: Likewise.
3613 * config/rs6000/rs6000-linux.c: Likewise.
3614 * config/rs6000/rs6000.c: Likewise.
3615 * config/rx/rx.c: Likewise.
3616 * config/s390/s390-c.c: Likewise.
3617 * config/s390/s390.c: Likewise.
3618 * config/sh/sh-c.c: Likewise.
3619 * config/sh/sh-mem.cc: Likewise.
3620 * config/sh/sh.c: Likewise.
3621 * config/sh/sh_optimize_sett_clrt.cc: Likewise.
3622 * config/sh/sh_treg_combine.cc: Likewise.
3623 * config/sol2-c.c: Likewise.
3624 * config/sol2-cxx.c: Likewise.
3625 * config/sol2-stubs.c: Likewise.
3626 * config/sol2.c: Likewise.
3627 * config/sparc/sparc-c.c: Likewise.
3628 * config/sparc/sparc.c: Likewise.
3629 * config/spu/spu-c.c: Likewise.
3630 * config/spu/spu.c: Likewise.
3631 * config/stormy16/stormy16.c: Likewise.
3632 * config/v850/v850-c.c: Likewise.
3633 * config/v850/v850.c: Likewise.
3634 * config/vax/vax.c: Likewise.
3635 * config/visium/visium.c: Likewise.
3636 * config/vms/vms-c.c: Likewise.
3637 * config/vms/vms.c: Likewise.
3638 * config/vxworks.c: Likewise.
3639 * config/winnt-c.c: Likewise.
3640 * config/xtensa/xtensa.c: Likewise.
3641
3642 2015-10-16 Christian Bruel <christian.bruel@st.com>
3643
3644 PR target/67745
3645 * config/arm/arm.h (FUNCTION_BOUNDARY): Use FUNCTION_BOUNDARY_P.
3646 (FUNCTION_BOUNDARY_P): New macro:
3647 * config/arm/arm.c (TARGET_RELAYOUT_FUNCTION, arm_relayout_function):
3648 New hook.
3649 * doc/tm.texi.in (TARGET_RELAYOUT_FUNCTION): Document.
3650 * doc/tm.texi (TARGET_RELAYOUT_FUNCTION): New hook.
3651 * target.def (TARGET_RELAYOUT_FUNCTION): Likewise.
3652 * function.c (allocate_struct_function): Call
3653 relayout_function hook.
3654 * passes.c (rest_of_decl_compilation): Likewise.
3655
3656 2015-10-16 Christian Bruel <christian.bruel@st.com>
3657
3658 PR target/67745
3659 * config/arm/arm.h (FUNCTION_BOUNDARY): Move optimize_size condition to:
3660 * config/arm/arm.c (arm_option_override_internal): Call
3661 arm_override_options_after_change_1.
3662 (arm_override_options_after_change): New function.
3663 (arm_override_options_after_change_1): Likewise.
3664 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define hook.
3665
3666 2015-10-11 Jan Hubicka <hubicka@ucw.cz>
3667
3668 Revert:
3669 * ipa-icf-gimple.c (func_checker::compare_operand): Compare only
3670 empty constructors.
3671
3672 2015-10-16 Eric Botcazou <ebotcazou@adacore.com>
3673
3674 * tree.c (recompute_tree_invariant_for_addr_expr): Assert that the
3675 argument is an ADDR_EXPR.
3676
3677 2015-10-16 Richard Biener <rguenther@suse.de>
3678
3679 * gimple-fold.c (gimple_fold_builtin_memory_op): Use gimple_build
3680 and get rid of force_gimple_operand_gsi.
3681 (gimple_fold_builtin_memory_chk): Likewise.
3682 (gimple_fold_builtin_stxcpy_chk): Likewise.
3683 (rewrite_to_defined_overflow): Likewise.
3684 (gimple_convert_to_ptrofftype): New function.
3685 * gimple-fold.h (gimple_convert_to_ptrofftype): New overload, declare.
3686
3687 2015-10-16 Richard Biener <rguenther@suse.de>
3688
3689 * tree-nested.h (build_addr): Adjust prototype.
3690 * tree-nested.c (build_addr): Remove context argument and use
3691 mark_addressable.
3692 (get_static_chain): Adjust calls to build_addr.
3693 (convert_nl_goto_reference): Likewise.
3694 (convert_tramp_reference_op): Likewise.
3695 (finalize_nesting_tree_1): Likewise.
3696 * value-prof.c (gimple_ic): Likewise.
3697 * gimple-low.c (lower_builtin_setjmp): Likewise.
3698 * tree-parloops.c (take_address_of): Likewise.
3699 (create_call_for_reduction_1): Likewise.
3700 * tree-profile.c (gimple_gen_interval_profiler): Likewise.
3701 (gimple_gen_ic_func_profiler): Likewise.
3702
3703 2015-10-11 Jan Hubicka <hubicka@ucw.cz>
3704
3705 * ipa-icf-gimple.c (func_checker::compare_operand): Compare only
3706 empty constructors.
3707
3708 2015-10-16 Michael Collison <michael.collison@linaro.org>
3709 Andrew Pinski <andrew.pinski@caviumnetworks.com>
3710
3711 * match.pd ((x < y) && (x < z) -> x < min (y,z),
3712 (x > y) and (x > z) -> x > max (y,z))
3713
3714 2015-10-15 Gregor Richards <gregor.richards@uwaterloo.ca>
3715 Szabolcs Nagy <szabolcs.nagy@arm.com>
3716
3717 * config/microblaze/linux.h (MUSL_DYNAMIC_LINKER): Define.
3718 (DYNAMIC_LINKER): Renamed to ...
3719 (GLIBC_DYNAMIC_LINKER): This.
3720 (SUBTARGET_EXTRA_SPECS): Use GNU_USER_DYNAMIC_LINKER.
3721
3722 2015-10-15 Marek Polacek <polacek@redhat.com>
3723
3724 * tree-ssa-reassoc.c (attempt_builtin_copysign): Call
3725 gimple_call_builtin instead of is_gimple_call.
3726
3727 2015-10-15 Richard Biener <rguenther@suse.de>
3728
3729 * tree-vect-stmts.c (vect_init_vector): Remove unused vars.
3730
3731 2015-10-15 Richard Biener <rguenther@suse.de>
3732
3733 * tree-vectorizer.h (vect_get_new_ssa_name): Declare.
3734 * tree-vect-data-refs.c (vect_get_new_ssa_name): New helper.
3735 * tree-vect-loop.c (get_initial_def_for_induction): Drop
3736 use of force_gimple_operand in favor of gimple_build.
3737 Use vect_get_new_ssa_name.
3738 * tree-vect-stmts.c (vect_init_vector): Use vect_get_new_ssa_name.
3739 (vectorizable_mask_load_store): Likewise.
3740 (vectorizable_call): Likewise.
3741 (vectorizable_store): Likewise.
3742 (vectorizable_load): Likewise.
3743 (vect_get_vec_def_for_stmt_copy): Remove redundant stmt.
3744
3745 2015-10-15 Richard Sandiford <richard.sandiford@arm.com>
3746
3747 PR tree-optimization/67945
3748 * tree-pass.h (PROP_gimple_opt_math): New property flag.
3749 * generic-match-head.c (canonicalize_math_p): New function.
3750 * gimple-match-head.c: Include tree-pass.h.
3751 (canonicalize_math_p): New function.
3752 * match.pd: Group math built-in rules into simplifications
3753 and canonicalizations. Guard the latter with canonicalize_math_p.
3754 * tree-ssa-math-opts.c (pass_data_cse_sincos): Provide the
3755 PROP_gimple_opt_math property.
3756
3757 2015-10-15 Marek Polacek <polacek@redhat.com>
3758
3759 PR tree-optimization/67953
3760 * match.pd (X - (X / Y) * Y): Don't change signedness of @0.
3761
3762 2015-10-15 Jiong Wang <jiong.wang@arm.com>
3763
3764 * config.gcc: Recognize "." in architecture base name for AArch64.
3765
3766 2015-10-14 Uros Bizjak <ubizjak@gmail.com>
3767
3768 * config/mips/mips.h (MIPS_STACK_ALIGN): Implement using
3769 ROUND_UP macro.
3770 * config/mips/mips.c (mips_setup_incoming_varargs): Use
3771 ROUND_DOWN to calculate off.
3772 (mips_gimplify_va_arg_expr): Use ROUND_UP to calculate rsize.
3773 (mips_emit_probe_stack_range): Use ROUND_DOWN to calculate
3774 rounded_size.
3775
3776 2015-10-14 Eric Botcazou <ebotcazou@adacore.com>
3777
3778 * gimplify.c (gimplify_addr_expr) <MEM_REF>: New case.
3779
3780 2015-10-14 Peter Bergner <bergner@vnet.ibm.com>
3781 Torvald Riegel <triegel@redhat.com>
3782
3783 PR target/67281
3784 * config/rs6000/htm.md (UNSPEC_HTM_FENCE): New.
3785 (tabort, tabort<wd>c, tabort<wd>ci, tbegin, tcheck, tend,
3786 trechkpt, treclaim, tsr, ttest): Rename define_insns from this...
3787 (*tabort, *tabort<wd>c, *tabort<wd>ci, *tbegin, *tcheck, *tend,
3788 *trechkpt, *treclaim, *tsr, *ttest): ...to this. Add memory barrier.
3789 (tabort, tabort<wd>c, tabort<wd>ci, tbegin, tcheck, tend,
3790 trechkpt, treclaim, tsr, ttest): New define_expands.
3791 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
3792 __TM_FENCE__ for htm.
3793 * doc/extend.texi: Update documentation for htm builtins.
3794
3795 2015-10-14 Uros Bizjak <ubizjak@gmail.com>
3796
3797 PR target/67967
3798 * config/i386/i386.c (ix86_emit_save_reg_using_mov): Do not add
3799 REG_CFA_EXPRESSION to aligned SSE stores.
3800
3801 2015-10-14 Jeff Law <law@redhat.com>
3802
3803 * tree-ssa-threadupdate.c (thread_through_all_blocks): Bump
3804 num_threaded_edges for successful FSM threads too.
3805
3806 2015-10-14 Richard Biener <rguenther@suse.de>
3807
3808 * tree-vectorizer.h (vect_is_simple_use): Remove unused parameters.
3809 (vect_is_simple_use_1): Likewise. Make overload of vect_is_simple_use.
3810 (vect_get_vec_def_for_operand): Remove unused parameter.
3811 * tree-vect-loop.c (get_initial_def_for_induction): Adjust.
3812 (vect_create_epilog_for_reduction): Likewise.
3813 (vectorizable_reduction): Likewise.
3814 (vectorizable_live_operation): Likewise.
3815 * tree-vect-patterns.c (type_conversion_p): Likewise.
3816 (vect_recog_vector_vector_shift_pattern): Likewise.
3817 (check_bool_pattern): Likewise.
3818 * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.
3819 (vect_analyze_slp_cost_1): Likewise.
3820 * tree-vect-stmts.c (process_use): Likewise.
3821 (vect_get_vec_def_for_operand): Do not handle reductions.
3822 (vect_get_vec_defs): Adjust.
3823 (vectorizable_mask_load_store): Likewise.
3824 (vectorizable_call): Likewise.
3825 (vectorizable_simd_clone_call): Likewise.
3826 (vect_get_loop_based_defs): Likewise.
3827 (vectorizable_conversion): Likewise.
3828 (vectorizable_assignment): Likewise.
3829 (vectorizable_shift): Likewise.
3830 (vectorizable_operation): Likewise.
3831 (vectorizable_store): Likewise.
3832 (vectorizable_load): Likewise.
3833 (vect_is_simple_cond): Likewise.
3834 (vectorizable_condition): Likewise.
3835 (vect_is_simple_use): Remove unused parameters.
3836 (vect_is_simple_use_1): Adjust and rename.
3837
3838 2015-10-14 Richard Biener <rguenther@suse.de>
3839
3840 PR tree-optimization/67915
3841 * match.pd: Handle comparisons of addresses of STRING_CSTs.
3842 * gimplify.c (gimplify_cond_expr): Fold the GIMPLE conds we build.
3843 * tree-cfgcleanup.c (cleanup_control_expr_graph): Remove GENERIC
3844 stmt folding in favor of GIMPLE one.
3845
3846 2015-10-14 Marek Polacek <polacek@redhat.com>
3847
3848 PR tree-optimization/67815
3849 * tree-ssa-reassoc.c (attempt_builtin_copysign): New function.
3850 (reassociate_bb): Call it.
3851
3852 2015-10-14 Richard Biener <rguenther@suse.de>
3853
3854 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
3855 Reset info at start.
3856 (vect_analyze_group_access_1): Add debug print.
3857 * tree-vect-loop.c (vect_get_single_scalar_iteration_cost): Rename ...
3858 (vect_compute_single_scalar_iteration_cost): ... to this.
3859 (vect_analyze_loop_2): Adjust.
3860 * tree-vect-slp.c (struct _slp_oprnd_info): Move from ...
3861 * tree-vectorizer.h: ... here.
3862 (add_stmt_info_to_vec): Remove.
3863 * tree-vect-stmts.c (record_stmt_cost): Inline add_stmt_info_to_vec.
3864
3865 2015-10-14 Dominik Vogt <vogt@linux.vnet.ibm.com>
3866
3867 * targhooks.c (default_target_option_pragma_parse): Do not warn if
3868 called on behalf of "#pragma GCC pop_options".
3869
3870 2015-10-14 Tom de Vries <tom@codesourcery.com>
3871
3872 * cfganal.c (verify_no_unreachable_blocks): New function.
3873 (inverted_post_order_compute) [ENABLE_CHECKING]: Call
3874 verify_no_unreachable_blocks.
3875 cfganal.h (verify_no_unreachable_blocks): Declare.
3876
3877 2015-10-13 Mikhail Maltsev <maltsevm@gmail.com>
3878
3879 * common.opt: Add flag_checking.
3880 * system.h (CHECKING_P): Define.
3881
3882 2015-10-13 Jakub Jelinek <jakub@redhat.com>
3883 Aldy Hernandez <aldyh@redhat.com>
3884 Ilya Verbin <ilya.verbin@intel.com>
3885
3886 * builtin-types.def (BT_FN_BOOL_UINT_LONGPTR_LONGPTR_LONGPTR,
3887 BT_FN_BOOL_UINT_ULLPTR_ULLPTR_ULLPTR,
3888 BT_FN_BOOL_UINT_LONGPTR_LONG_LONGPTR_LONGPTR,
3889 BT_FN_BOOL_UINT_ULLPTR_ULL_ULLPTR_ULLPTR,
3890 BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_UINT_PTR,
3891 BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR,
3892 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT,
3893 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_LONG_LONG_LONG,
3894 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_UINT_LONG_INT_ULL_ULL_ULL,
3895 BT_FN_VOID_LONG_VAR, BT_FN_VOID_ULL_VAR): New.
3896 (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
3897 BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
3898 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): Remove.
3899 * cgraph.h (enum cgraph_simd_clone_arg_type): Add
3900 SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP,
3901 SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP and
3902 SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP.
3903 (struct cgraph_simd_clone_arg): Adjust comment.
3904 * coretypes.h (struct gomp_ordered): New forward decl.
3905 * gimple.c (gimple_build_omp_critical): Add CLAUSES argument,
3906 set critical clauses to it.
3907 (gimple_build_omp_ordered): Return gomp_ordered * instead of
3908 gimple *. Add CLAUSES argument, set ordered clauses to it.
3909 (gimple_copy): Unshare clauses on GIMPLE_OMP_CRITICAL and
3910 GIMPLE_OMP_ORDERED.
3911 * gimple.def (GIMPLE_OMP_ORDERED): Change from GSS_OMP to
3912 GSS_OMP_SINGLE_LAYOUT, move it after GIMPLE_OMP_TEAMS.
3913 * gimple.h (enum gf_mask): Add GF_OMP_TASK_TASKLOOP. Add another bit
3914 to GF_OMP_FOR_KIND_MASK mask. Add GF_OMP_FOR_KIND_TASKLOOP, renumber
3915 GF_OMP_FOR_KIND_CILKFOR and GF_OMP_FOR_KIND_OACC_LOOP. Adjust
3916 GF_OMP_FOR_SIMD, GF_OMP_FOR_COMBINED and GF_OMP_FOR_COMBINED_INTO.
3917 Add another bit to GF_OMP_TARGET_KIND_MASK mask. Add
3918 GF_OMP_TARGET_KIND_ENTER_DATA and GF_OMP_TARGET_KIND_EXIT_DATA,
3919 renumber
3920 GF_OMP_TARGET_KIND_OACC_{PARALLEL,KERNELS,DATA,UPDATE,ENTER_EXIT_DATA}.
3921 (gomp_critical): Add clauses field.
3922 (gomp_ordered): New struct.
3923 (is_a_helper <gomp_ordered *>::test): New inline.
3924 (gimple_build_omp_critical): Add CLAUSES argument.
3925 (gimple_build_omp_ordered): Likewise. Return gomp_ordered *
3926 instead of gimple *.
3927 (gimple_omp_critical_clauses, gimple_omp_critical_clauses_ptr,
3928 gimple_omp_critical_set_clauses, gimple_omp_ordered_clauses,
3929 gimple_omp_ordered_clauses_ptr, gimple_omp_ordered_set_clauses,
3930 gimple_omp_task_taskloop_p, gimple_omp_task_set_taskloop_p): New
3931 inline functions.
3932 * gimple-pretty-print.c (dump_gimple_omp_for): Handle taskloop.
3933 (dump_gimple_omp_target): Handle enter data and exit data.
3934 (dump_gimple_omp_block): Don't handle GIMPLE_OMP_ORDERED here.
3935 (dump_gimple_omp_critical): Print clauses.
3936 (dump_gimple_omp_ordered): New function.
3937 (dump_gimple_omp_task): Handle taskloop.
3938 (pp_gimple_stmt_1): Use dump_gimple_omp_ordered for
3939 GIMPLE_OMP_ORDERED.
3940 * gimple-walk.c (walk_gimple_op): Walk clauses on
3941 GIMPLE_OMP_CRITICAL and GIMPLE_OMP_ORDERED.
3942 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_0LEN_ARRAY.
3943 (enum omp_region_type): Add ORT_COMBINED_TARGET and ORT_NONE.
3944 (struct gimplify_omp_ctx): Add loop_iter_var,
3945 target_map_scalars_firstprivate, target_map_pointers_as_0len_arrays
3946 and target_firstprivatize_array_bases fields.
3947 (delete_omp_context): Release loop_iter_var.
3948 (gimplify_bind_expr): Handle ORT_NONE.
3949 (maybe_fold_stmt): Adjust check for ORT_TARGET for the addition of
3950 ORT_COMBINED_TARGET.
3951 (is_gimple_stmt): Return true for OMP_TASKLOOP, OMP_TEAMS and
3952 OMP_TARGET{,_DATA,_UPDATE,_ENTER_DATA,_EXIT_DATA}.
3953 (omp_firstprivatize_variable): Handle ORT_NONE. Adjust check for
3954 ORT_TARGET for the addition of ORT_COMBINED_TARGET. Handle
3955 ctx->target_map_scalars_firstprivate.
3956 (omp_add_variable): Handle ORT_NONE. Allow map clause together with
3957 data sharing clauses. For data sharing clause with VLA decl
3958 on omp target/target data don't add firstprivate for the pointer.
3959 Call omp_notice_variable on TYPE_SIZE_UNIT only if it is a DECL_P.
3960 (omp_notice_threadprivate_variable): Adjust check for ORT_TARGET for
3961 the addition of ORT_COMBINED_TARGET.
3962 (omp_notice_variable): Handle ORT_NONE. Adjust check for ORT_TARGET
3963 for the addition of ORT_COMBINED_TARGET. Handle implicit mapping of
3964 pointers as zero length array sections and
3965 ctx->target_map_scalars_firstprivate mapping of scalars as firstprivate
3966 data sharing.
3967 (omp_check_private): Handle omp_member_access_dummy_var vars.
3968 (find_decl_expr): New function.
3969 (gimplify_scan_omp_clauses): Add CODE argument. For OMP_CLAUSE_IF
3970 complain if OMP_CLAUSE_IF_MODIFIER is present and does not match code.
3971 Handle OMP_CLAUSE_GANG separately. Handle
3972 OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
3973 clauses. Diagnose linear clause on combined
3974 distribute {, parallel for} simd construct, unless it is the loop
3975 iterator. Handle struct element GOMP_MAP_FIRSTPRIVATE_POINTER.
3976 Handle map clauses with COMPONENT_REF. Initialize
3977 ctx->target_map_scalars_firstprivate,
3978 ctx->target_firstprivatize_array_bases and
3979 ctx->target_map_pointers_as_0len_arrays. Add firstprivate for
3980 linear clause even to target region if combined. Remove
3981 map clauses with GOMP_MAP_FIRSTPRIVATE_POINTER kind from
3982 OMP_TARGET_{,ENTER_,EXIT_}DATA. For GOMP_MAP_FIRSTPRIVATE_POINTER
3983 map kind with non-INTEGER_CST OMP_CLAUSE_SIZE firstprivatize the bias.
3984 Handle OMP_CLAUSE_DEPEND_{SINK,SOURCE}. Handle
3985 OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}.
3986 For linear clause on worksharing loop combined with parallel add
3987 shared clause on the parallel. Handle OMP_CLAUSE_REDUCTION
3988 with MEM_REF OMP_CLAUSE_DECL. Set DECL_NAME on
3989 omp_member_access_dummy_var vars. Add lastprivate clause to outer
3990 taskloop if needed.
3991 (gimplify_adjust_omp_clauses_1): Handle GOVD_MAP_0LEN_ARRAY.
3992 If gimplify_omp_ctxp->target_firstprivatize_array_bases, use
3993 GOMP_MAP_FIRSTPRIVATE_POINTER map kind instead of
3994 GOMP_MAP_POINTER.
3995 (gimplify_adjust_omp_clauses): Add CODE argument. Handle removal
3996 of GOMP_MAP_FIRSTPRIVATE_POINTER struct elements for struct not seen
3997 in target body. Handle removal of struct mapping if struct is not
3998 seen in target body. Remove GOMP_MAP_STRUCT map clause on
3999 OMP_TARGET_EXIT_DATA. Adjust check for ORT_TARGET for the
4000 addition of ORT_COMBINED_TARGET. Use GOMP_MAP_FIRSTPRIVATE_POINTER
4001 instead of GOMP_MAP_POINTER if ctx->target_firstprivatize_array_bases
4002 for VLAs. Set OMP_CLAUSE_MAP_PRIVATE if both data sharing and map
4003 clause appear together. Handle
4004 OMP_CLAUSE_{{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}. Don't remove map
4005 clause if it has map-type-modifier always. Handle
4006 OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD,SIMDLEN}
4007 clauses.
4008 (gimplify_oacc_cache, gimplify_omp_parallel, gimplify_omp_task):
4009 Adjust gimplify_scan_omp_clauses and gimplify_adjust_omp_clauses
4010 callers.
4011 (gimplify_omp_for): Likewise. Handle OMP_TASKLOOP. Initialize
4012 loop_iter_var. Use OMP_FOR_ORIG_DECLS. Fix handling of lastprivate
4013 iterators in doacross loops.
4014 (gimplify_omp_workshare): Adjust gimplify_scan_omp_clauses and
4015 gimplify_adjust_omp_clauses callers. Use ORT_COMBINED_TARGET
4016 for OMP_TARGET_COMBINED. Adjust check for ORT_TARGET
4017 for the addition of ORT_COMBINED_TARGET.
4018 (gimplify_omp_target_update): Adjust gimplify_scan_omp_clauses and
4019 gimplify_adjust_omp_clauses callers. Handle OMP_TARGET_ENTER_DATA
4020 and OMP_TARGET_EXIT_DATA.
4021 (gimplify_omp_ordered): New function.
4022 (gimplify_expr): Handle OMP_TASKLOOP, OMP_TARGET_ENTER_DATA and
4023 OMP_TARGET_EXIT_DATA. Use gimplify_omp_ordered for OMP_ORDERED.
4024 Gimplify clauses on OMP_CRITICAL.
4025 * internal-fn.c (expand_GOMP_SIMD_ORDERED_START,
4026 expand_GOMP_SIMD_ORDERED_END): New functions.
4027 * internal-fn.def (GOMP_SIMD_ORDERED_START,
4028 GOMP_SIMD_ORDERED_END): New internal functions.
4029 * omp-builtins.def (BUILT_IN_GOMP_LOOP_DOACROSS_STATIC_START,
4030 BUILT_IN_GOMP_LOOP_DOACROSS_DYNAMIC_START,
4031 BUILT_IN_GOMP_LOOP_DOACROSS_GUIDED_START,
4032 BUILT_IN_GOMP_LOOP_DOACROSS_RUNTIME_START,
4033 BUILT_IN_GOMP_LOOP_ULL_DOACROSS_STATIC_START,
4034 BUILT_IN_GOMP_LOOP_ULL_DOACROSS_DYNAMIC_START,
4035 BUILT_IN_GOMP_LOOP_ULL_DOACROSS_GUIDED_START,
4036 BUILT_IN_GOMP_LOOP_ULL_DOACROSS_RUNTIME_START,
4037 BUILT_IN_GOMP_DOACROSS_POST, BUILT_IN_GOMP_DOACROSS_WAIT,
4038 BUILT_IN_GOMP_DOACROSS_ULL_POST, BUILT_IN_GOMP_DOACROSS_ULL_WAIT,
4039 BUILT_IN_GOMP_TARGET_ENTER_EXIT_DATA, BUILT_IN_GOMP_TASKLOOP,
4040 BUILT_IN_GOMP_TASKLOOP_ULL): New built-ins.
4041 (BUILT_IN_GOMP_TASK): Add INT argument to the end.
4042 (BUILT_IN_GOMP_TARGET): Rename from GOMP_target to GOMP_target_41,
4043 adjust type.
4044 (BUILT_IN_GOMP_TARGET_DATA): Rename from GOMP_target_data to
4045 GOMP_target_data_41, adjust type.
4046 (BUILT_IN_GOMP_TARGET_UPDATE): Rename from GOMP_target_update to
4047 GOMP_target_update_41, adjust type.
4048 * omp-low.c (struct omp_region): Adjust comments, add ord_stmt
4049 field.
4050 (struct omp_for_data): Add ordered and simd_schedule fields.
4051 (omp_member_access_dummy_var, unshare_and_remap_1,
4052 unshare_and_remap, is_taskloop_ctx): New functions.
4053 (is_taskreg_ctx): Use is_parallel_ctx and is_task_ctx.
4054 (extract_omp_for_data): Handle taskloops and doacross loops
4055 and simd schedule modifier.
4056 (omp_adjust_chunk_size): New function.
4057 (get_ws_args_for): Use it.
4058 (lookup_sfield): Change first argument to splay_tree_key,
4059 add overload with first argument tree.
4060 (maybe_lookup_field): Likewise.
4061 (use_pointer_for_field): Handle omp_member_access_dummy_var.
4062 (omp_copy_decl_2): If var is TREE_ADDRESSABLE listed in
4063 task_shared_vars, clear TREE_ADDRESSABLE on the copy.
4064 (build_outer_var_ref): Add LASTPRIVATE argument, handle
4065 taskloops and omp_member_access_dummy_var vars.
4066 (build_sender_ref): Change first argument to splay_tree_key,
4067 add overload with first argument tree.
4068 (install_var_field): For mask & 8 use &DECL_UID as key instead
4069 of the tree itself.
4070 (fixup_child_record_type): Const qualify *.omp_data_i.
4071 (scan_sharing_clauses): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE,
4072 C/C++ array reductions, OMP_CLAUSE_{IS,USE}_DEVICE_PTR clauses,
4073 OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,SIMDLEN,THREADS,SIMD} and
4074 OMP_CLAUSE_{NOGROUP,DEFAULTMAP} clauses, OMP_CLAUSE__LOOPTEMP_ clause
4075 on taskloop, GOMP_MAP_FIRSTPRIVATE_POINTER, OMP_CLAUSE_MAP_PRIVATE.
4076 (create_omp_child_function): Set TREE_READONLY on .omp_data_i.
4077 (find_combined_for): Allow searching for different GIMPLE_OMP_FOR
4078 kinds.
4079 (add_taskreg_looptemp_clauses): New function.
4080 (scan_omp_parallel): Use it.
4081 (scan_omp_task): Likewise.
4082 (finish_taskreg_scan): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
4083 For taskloop, move fields for the first two _LOOPTEMP_ clauses first.
4084 (check_omp_nesting_restrictions): Handle GF_OMP_TARGET_KIND_ENTER_DATA
4085 and GF_OMP_TARGET_KIND_EXIT_DATA. Formatting fixes. Allow the
4086 sandwiched taskloop constructs. Type check
4087 OMP_CLAUSE_DEPEND_{KIND,SOURCE}. Allow ordered simd inside of simd
4088 region. Diagnose depend(source) or depend(sink:...) on
4089 target constructs or task/taskloop.
4090 (handle_simd_reference): Use get_name.
4091 (lower_rec_input_clauses): Likewise. Ignore all
4092 OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE clauses on taskloop construct.
4093 Allow _LOOPTEMP_ clause on GOMP_TASK. Unshare new_var
4094 before passing it to omp_clause_{default,copy}_ctor. Handle
4095 OMP_CLAUSE_REDUCTION with MEM_REF OMP_CLAUSE_DECL. Set
4096 lastprivate_firstprivate flag for linear that needs copyin and
4097 copyout. Use BUILT_IN_ALLOCA_WITH_ALIGN instead of BUILT_IN_ALLOCA.
4098 (lower_lastprivate_clauses): For OMP_CLAUSE_LASTPRIVATE_FIRSTPRIVATE
4099 on taskloop lookup decl in outer context. Pass true to
4100 build_outer_var_ref lastprivate argument. Handle
4101 OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV lastprivate if the decl is global
4102 outside of outer taskloop for.
4103 (lower_reduction_clauses): Handle OMP_CLAUSE_REDUCTION with MEM_REF
4104 OMP_CLAUSE_DECL.
4105 (lower_send_clauses): Ignore first two _LOOPTEMP_ clauses in taskloop
4106 GOMP_TASK. Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE. Handle
4107 omp_member_access_dummy_var vars. Handle OMP_CLAUSE_REDUCTION
4108 with MEM_REF OMP_CLAUSE_DECL. Use new lookup_sfield overload.
4109 (lower_send_shared_vars): Ignore fields with NULL or FIELD_DECL
4110 abstract origin. Handle omp_member_access_dummy_var vars.
4111 (expand_parallel_call): Use expand_omp_build_assign.
4112 (expand_task_call): Handle taskloop construct expansion. Add
4113 REGION argument. Use GOMP_TASK_* defines instead of hardcoded
4114 integers. Add priority argument to GOMP_task* calls. Or in
4115 GOMP_TASK_FLAG_PRIORITY into flags if priority is present for
4116 GOMP_task call.
4117 (expand_omp_build_assign): Add prototype. Add AFTER
4118 argument, if true emit statements after *GSI_P and continue linking.
4119 (expand_omp_taskreg): Adjust expand_task_call caller.
4120 (expand_omp_for_init_counts): Rename zero_iter_bb argument to
4121 zero_iter1_bb and first_zero_iter to first_zero_iter1, add
4122 zero_iter2_bb and first_zero_iter2 arguments, handle computation
4123 of counts even for ordered loops.
4124 (expand_omp_for_init_vars): Handle GOMP_TASK inner_stmt.
4125 (expand_omp_ordered_source, expand_omp_ordered_sink,
4126 expand_omp_ordered_source_sink, expand_omp_for_ordered_loops): New
4127 functions.
4128 (expand_omp_for_generic): Use omp_adjust_chunk_size. Handle linear
4129 clauses on worksharing loop. Handle DOACROSS loop expansion.
4130 (expand_omp_for_static_nochunk): Handle linear clauses on
4131 worksharing loop. Adjust expand_omp_for_init_counts
4132 callers.
4133 (expand_omp_for_static_chunk): Likewise. Use omp_adjust_chunk_size.
4134 (expand_omp_simd): Handle addressable fd->loop.v. Adjust
4135 expand_omp_for_init_counts callers.
4136 (expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): New
4137 functions.
4138 (expand_omp_for): Call expand_omp_taskloop_for_* for taskloop.
4139 Handle doacross loops.
4140 (expand_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
4141 GF_OMP_TARGET_KIND_EXIT_DATA. Pass flags and depend arguments to
4142 GOMP_target_{41,update_41,enter_exit_data} libcalls.
4143 (expand_omp): Don't expand ordered depend constructs here, record
4144 ord_stmt instead for later expand_omp_for_generic.
4145 (build_omp_regions_1): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
4146 GF_OMP_TARGET_KIND_EXIT_DATA. Treat GIMPLE_OMP_ORDERED with depend
4147 clause as stand-alone directive.
4148 (lower_omp_ordered_clauses): New function.
4149 (lower_omp_ordered): Handle OMP_CLAUSE_SIMD, for OMP_CLAUSE_DEPEND
4150 don't lower anything.
4151 (lower_omp_for_lastprivate): Use last _looptemp_ clause
4152 on taskloop for comparison.
4153 (lower_omp_for): Handle taskloop constructs. Adjust OMP_CLAUSE_DECL
4154 and OMP_CLAUSE_LINEAR_STEP so that expand_omp_for_* can use it during
4155 expansion for linear adjustments.
4156 (create_task_copyfn): Handle OMP_CLAUSE_SHARED_FIRSTPRIVATE.
4157 (lower_depend_clauses): Assert not seeing sink/source depend kinds.
4158 Set TREE_ADDRESSABLE on array. Change first argument from gimple *
4159 to tree * pointing to the stmt's clauses.
4160 (lower_omp_taskreg): Adjust lower_depend_clauses caller.
4161 (lower_omp_target): Handle GF_OMP_TARGET_KIND_ENTER_DATA
4162 and GF_OMP_TARGET_KIND_EXIT_DATA, depend clauses,
4163 GOMP_MAP_{RELEASE,ALWAYS_{TO,FROM,TOFROM},FIRSTPRIVATE_POINTER,STRUCT}
4164 map kinds, OMP_CLAUSE_{FIRSTPRIVATE,PRIVATE,{IS,USE}_DEVICE_PTR
4165 clauses. Always use short kind and 8-bit align shift.
4166 (lower_omp_regimplify_p): Use IS_TYPE_OR_DECL_P macro.
4167 (struct lower_omp_regimplify_operands_data): New type.
4168 (lower_omp_regimplify_operands_p, lower_omp_regimplify_operands):
4169 New functions.
4170 (lower_omp_1): Use lower_omp_regimplify_operands instead of
4171 gimple_regimplify_operands.
4172 (make_gimple_omp_edges): Handle GF_OMP_TARGET_KIND_ENTER_DATA and
4173 GF_OMP_TARGET_KIND_EXIT_DATA. Treat GIMPLE_OMP_ORDERED with depend
4174 clause as stand-alone directive.
4175 (simd_clone_clauses_extract): Honor OMP_CLAUSE_LINEAR_KIND.
4176 (simd_clone_mangle): Mangle the various linear kinds
4177 per the new ABI.
4178 (simd_clone_adjust_argument_types): Handle
4179 SIMD_CLONE_ARG_TYPE_LINEAR_*_CONSTANT_STEP.
4180 (simd_clone_init_simd_arrays): Don't do anything for uval.
4181 (simd_clone_adjust): Handle
4182 SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
4183 SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP.
4184 Handle SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP.
4185 * omp-low.h (omp_member_access_dummy_var): New prototype.
4186 * passes.def (pass_simduid_cleanup): Schedule another copy of the
4187 pass after all optimizations.
4188 * tree.c (omp_clause_code_name): Add entries for
4189 OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
4190 and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
4191 (omp_clause_num_ops): Likewise. Bump number of OMP_CLAUSE_REDUCTION
4192 arguments to 5 and for OMP_CLAUSE_ORDERED to 1.
4193 (walk_tree_1): Adjust for OMP_CLAUSE_ORDERED having 1 argument and
4194 OMP_CLAUSE_REDUCTION 5 arguments. Handle
4195 OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
4196 and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}
4197 clauses.
4198 * tree-core.h (enum omp_clause_linear_kind): New.
4199 (struct tree_omp_clause): Change type of map_kind
4200 from unsigned char to unsigned int. Add subcode.if_modifier
4201 and subcode.linear_kind fields.
4202 (enum omp_clause_code): Add
4203 OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,DEFAULTMAP,HINT}
4204 and OMP_CLAUSE_{PRIORITY,GRAINSIZE,NUM_TASKS,NOGROUP,THREADS,SIMD}.
4205 (OMP_CLAUSE_REDUCTION): Document
4206 OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
4207 (enum omp_clause_depend_kind): Add OMP_CLAUSE_DEPEND_{SOURCE,SINK}.
4208 * tree.def (OMP_FOR): Add OMP_FOR_ORIG_DECLS operand.
4209 (OMP_CRITICAL): Move before OMP_SINGLE. Add OMP_CRITICAL_CLAUSES
4210 operand.
4211 (OMP_ORDERED): Move before OMP_SINGLE. Add OMP_ORDERED_CLAUSES
4212 operand.
4213 (OMP_TASKLOOP, OMP_TARGET_ENTER_DATA, OMP_TARGET_EXIT_DATA): New tree
4214 codes.
4215 * tree.h (OMP_BODY): Replace OMP_CRITICAL with OMP_TASKGROUP.
4216 (OMP_CLAUSE_SET_MAP_KIND): Cast to unsigned int rather than unsigned
4217 char.
4218 (OMP_CRITICAL_NAME): Adjust to be 3rd operand instead of 2nd.
4219 (OMP_CLAUSE_NUM_TASKS_EXPR): Formatting fix.
4220 (OMP_STANDALONE_CLAUSES): Adjust to cover OMP_TARGET_{ENTER,EXIT}_DATA.
4221 (OMP_CLAUSE_DEPEND_SINK_NEGATIVE, OMP_TARGET_COMBINED,
4222 OMP_CLAUSE_MAP_PRIVATE, OMP_FOR_ORIG_DECLS, OMP_CLAUSE_IF_MODIFIER,
4223 OMP_CLAUSE_MAP_MAYBE_ZERO_LENGTH_ARRAY_SECTION, OMP_CRITICAL_CLAUSES,
4224 OMP_CLAUSE_PRIVATE_TASKLOOP_IV, OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV,
4225 OMP_CLAUSE_HINT_EXPR, OMP_CLAUSE_SCHEDULE_SIMD,
4226 OMP_CLAUSE_LINEAR_KIND, OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER,
4227 OMP_CLAUSE_SHARED_FIRSTPRIVATE, OMP_ORDERED_CLAUSES,
4228 OMP_TARGET_ENTER_DATA_CLAUSES, OMP_TARGET_EXIT_DATA_CLAUSES,
4229 OMP_CLAUSE_NUM_TASKS_EXPR, OMP_CLAUSE_GRAINSIZE_EXPR,
4230 OMP_CLAUSE_PRIORITY_EXPR, OMP_CLAUSE_ORDERED_EXPR): Define.
4231 * tree-inline.c (remap_gimple_stmt): Handle clauses on
4232 GIMPLE_OMP_ORDERED and GIMPLE_OMP_CRITICAL. For
4233 IFN_GOMP_SIMD_ORDERED_{START,END} set has_simduid_loops.
4234 * tree-nested.c (convert_nonlocal_omp_clauses): Handle
4235 OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
4236 and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
4237 clauses. Handle OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER.
4238 (convert_local_omp_clauses): Likewise.
4239 * tree-pretty-print.c (dump_omp_clause): Handle
4240 OMP_CLAUSE_{TO_DECLARE,LINK,{USE,IS}_DEVICE_PTR,SIMDLEN,PRIORITY,SIMD}
4241 and OMP_CLAUSE_{GRAINSIZE,NUM_TASKS,HINT,NOGROUP,THREADS,DEFAULTMAP}
4242 clauses. Handle OMP_CLAUSE_IF_MODIFIER, OMP_CLAUSE_ORDERED_EXPR,
4243 OMP_CLAUSE_SCHEDULE_SIMD, OMP_CLAUSE_LINEAR_KIND,
4244 OMP_CLAUSE_DEPEND_{SOURCE,SINK}. Use "delete" for
4245 GOMP_MAP_FORCE_DEALLOC. Handle
4246 GOMP_MAP_{ALWAYS_{TO,FROM,TOFROM},RELEASE,FIRSTPRIVATE_POINTER,STRUCT}.
4247 (dump_generic_node): Handle OMP_TASKLOOP, OMP_TARGET_{ENTER,EXIT}_DATA
4248 and clauses on OMP_ORDERED and OMP_CRITICAL.
4249 * tree-vectorizer.c (adjust_simduid_builtins): Adjust comment.
4250 Remove IFN_GOMP_SIMD_ORDERED_{START,END}.
4251 (vectorize_loops): Adjust comments.
4252 (pass_simduid_cleanup::execute): Likewise.
4253 * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
4254 SIMD_CLONE_ARG_TYPE_LINEAR_{REF,VAL,UVAL}_CONSTANT_STEP.
4255 * wide-int.h (wi::gcd): New.
4256
4257 2015-10-13 Uros Bizjak <ubizjak@gmail.com>
4258
4259 * config/i386/i386.c (classify_argument): Use CEIL where applicable.
4260 (ix86_function_arg_advance): Ditto.
4261 (ix86_function_arg): Ditto.
4262 (ix86_gimplify_va_arg): Ditto.
4263 (ix86_class_max_nregs): Ditto.
4264 (inline_memory_move_cost): Ditto.
4265 (ix86_set_reg_reg_cost): Ditto.
4266 * config/i386/i386.h (HARD_REGNO_NREGS): Ditto.
4267
4268 2015-10-13 Alexandre Oliva <aoliva@redhat.com>
4269
4270 PR middle-end/67912
4271 * expmed.c (store_bit_field_1): Adjust mode of BLKmode inputs.
4272
4273 2015-10-13 Uros Bizjak <ubizjak@gmail.com>
4274
4275 * config/sparc/sparc.h (SPARC_STACK_ALIGN): Implement using
4276 ROUND_UP macro and UNITS_PER_WORD * 2.
4277 * config/sparc/sparc.c (sparc_compute_frame_size):
4278 Use ROUND_UP and ROUND_DOWN macros where applicable.
4279 (function_arg_record_value, function_arg_record_value_1)
4280 (function_arg_record_value_1): Ditto.
4281 (emit_save_or_restore_regs): Use ROUND_DOWN to preserve offset
4282 alignment to double-word.
4283 (sparc_gimplify_va_arg): Use ROUND_UP to calculate rsize.
4284 (sparc_emit_probe_stack_range): Use ROUND_DOWN to calculate
4285 rounded_size.
4286
4287 2015-10-13 Nikolai Bozhenov <n.bozhenov@samsung.com>
4288
4289 * rtl.h (print_insn): Fix prototype.
4290
4291 2015-10-13 Tom de Vries <tom@codesourcery.com>
4292
4293 * tree-parloops.c (reduction_phi): Handle cases that gimple_uid is 0 or
4294 -1. Add assert that returned entry matches phi argument.
4295 (parallelize_loops): Move calls to init_stmt_vec_info_vec and
4296 free_stmt_vec_info_vec ...
4297 (gather_scalar_reductions): ... here. Initialize gimple_uids of phis
4298 with -1.
4299
4300 2014-10-13 Yuri Rumyantsev <ysrumyan@gmail.com>
4301
4302 PR tree-optimization/67909, 67947
4303 * tree-ssa-loop-unswitch.c (find_loop_guard): Add check that GUARD_EDGE
4304 really skip the inner loop.
4305
4306 2015-10-13 Jeff Law <law@redhat.com>
4307
4308 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
4309 Allow single block jump threading paths.
4310
4311 2015-10-13 Tom de Vries <tom@codesourcery.com>
4312
4313 PR tree-optimization/67476
4314 * doc/invoke.texi (@item parloops-schedule): New item.
4315 * params.def (PARAM_PARLOOPS_SCHEDULE): New DEFPARAMENUM5.
4316 * tree-parloops.c: Include params-enum.h.
4317 (create_parallel_loop): Handle PARAM_PARLOOPS_SCHEDULE.
4318
4319 2015-10-13 Tom de Vries <tom@codesourcery.com>
4320
4321 * Makefile.in (PARAMS_H, PLUGIN_HEADERS): Add params-enum.h.
4322 * params-enum.h: New file.
4323 * opts.c (handle_param): Handle case that param arg is a string.
4324 * params-list.h: Handle DEFPARAMENUM5 in params.def.
4325 * params.c (find_param): New function, factored out of ...
4326 (set_param_value): ... here.
4327 (param_string_value_p): New function.
4328 * params.h (struct param_info): Add value_names field.
4329 (find_param, param_string_value_p): Declare.
4330
4331 2015-10-13 Tom de Vries <tom@codesourcery.com>
4332
4333 PR tree-optimization/67476
4334 * omp-low.c (expand_omp_for_generic): Handle original loop tree.
4335
4336 2015-10-13 Richard Biener <rguenther@suse.de>
4337
4338 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Allocate
4339 the data dependence vector.
4340 (vect_peeling_hash_insert): Get the peeling hash table as argument.
4341 (vect_peeling_hash_get_lowest_cost): Likewise.
4342 (vect_enhance_data_refs_alignment): Adjust.
4343 (struct _vect_peel_info, struct _vect_peel_extended_info,
4344 struct peel_info_hasher): Move from ...
4345 * tree-vectorizer.h: ... here.
4346 (LOOP_VINFO_COST_MODEL_MIN_ITERS): Remove.
4347 (LOOP_VINFO_PEELING_HTAB): Likewise.
4348 (struct _loop_vec_info): Remove min_profitable_iters and
4349 peeling_htab members.
4350 * tree-vect-loop.c (new_loop_vec_info): Do not allocate vectors
4351 here.
4352 (destroy_loop_vec_info): Adjust.
4353 (vect_analyze_loop_2): Do not set LOOP_VINFO_COST_MODEL_MIN_ITERS.
4354 (vect_estimate_min_profitable_iters): Use LOOP_VINFO_COMP_ALIAS_DDRS
4355 to estimate alias versioning cost.
4356 * tree-vect-slp.c (vect_analyze_slp_cost): Dump header.
4357
4358 2015-10-13 Richard Sandiford <richard.sandiford@arm.com>
4359
4360 * real.h (real_isinteger): Declare.
4361 * real.c (real_isinteger): New function.
4362 * match.pd: Simplify pow(|x|,y) and pow(-x,y) to pow(x,y)
4363 if y is an even integer.
4364
4365 2015-10-11 Jan Hubicka <hubicka@ucw.cz>
4366
4367 revert:
4368 2015-10-11 Jan Hubicka <hubicka@ucw.cz>
4369 * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
4370 counts when these are more informative.
4371
4372 2015-10-12 Jeff Law <law@redhat.com>
4373
4374 * tree-ssa-threadbackward.c (get_gimple_control_stmt): New function.
4375 (fsm_find_control_stmt_paths): Change name of first argument to
4376 more accurately relfect what it really is. Handle simplification
4377 of GIMPLE_COND after finding a thread path for NAME.
4378 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Allow
4379 nontrivial conditions to be handled by FSM threader.
4380 (thread_through_normal_block): Extract the name to looup via
4381 FSM threader from COND_EXPR.
4382
4383 * tree-ssa-threadbackward.c (fsm_find_thread_path): Remove
4384 restriction that traced SSA_NAME is a user variable.
4385
4386 2015-10-12 Tom de Vries <tom@codesourcery.com>
4387
4388 PR tree-optimization/67476
4389 * omp-low.c (expand_omp_for_generic): Add missing phis.
4390
4391 2015-10-12 Tom de Vries <tom@codesourcery.com>
4392
4393 PR tree-optimization/67476
4394 * omp-low.c (expand_omp_for_generic): Handle simple latch.
4395
4396 2015-10-12 Christophe Lyon <christophe.lyon@linaro.org>
4397
4398 * config/aarch64/aarch64-simd-builtins.def: Update builtins
4399 tables: add tbl3 and tbx4.
4400 * config/aarch64/aarch64-simd.md (aarch64_tbl3v8qi): New.
4401 (aarch64_tbx4v8qi): New.
4402 * config/aarch64/arm_neon.h (vtbl3_s8, vtbl3_u8, vtbl3_p8)
4403 (vtbl4_s8, vtbl4_u8, vtbl4_p8, vtbx4_s8, vtbx4_u8, vtbx4_p8):
4404 Rewrite using builtin functions.
4405 * config/aarch64/iterators.md (UNSPEC_TBX): New.
4406
4407 2015-10-12 Uros Bizjak <ubizjak@gmail.com>
4408
4409 * config/rs6000/rs6000.h (RS6000_ALIGN): Implement using
4410 ROUND_UP macro.
4411 * config/rs6000/rs6000.c (rs6000_darwin64_record_arg_advance_flush):
4412 Use ROUND_UP and ROUND_DOWN macros where applicable.
4413 (rs6000_darwin64_record_arg_flush): Ditto.
4414 (rs6000_function_arg): Use ROUND_UP to calculate align_words.
4415 (rs6000_emit_probe_stack_range): Use ROUND_DOWN to calculate
4416 rounded_size.
4417
4418 2015-10-12 Uros Bizjak <ubizjak@gmail.com>
4419
4420 * config/aarch/aarch64.h (AARCH64_ROUND_UP): Remove.
4421 (AARCH64_ROUND_DOWN): Ditto.
4422 * config/aarch64/aarch64.c: Use ROUND_UP instead of AARCH64_ROUND_UP.
4423
4424 2015-10-12 Richard Biener <rguenther@suse.de>
4425
4426 PR ipa/67783
4427 * ipa-inline-analysis.c (estimate_function_body_sizes): Re-add
4428 code that analyzes IVs on each stmt but in a cheaper way avoiding
4429 quadratic behavior.
4430
4431 2015-10-12 Nick Clifton <nickc@redhat.com>
4432
4433 * config/msp430/msp430.c (msp430_mcu_names): Rename to
4434 msp430_mcu_data, add fields for ISA and hardware multiply
4435 support. Import latest data from the devices.csv file.
4436 (msp430_override_option): Use the data from the new array.
4437 (msp430_use_f5_series_hwmult): Likewise.
4438 (use_32bit_hwmult): Likewise.
4439 (msp430_no_hwmult): Likewise.
4440 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add matches for new
4441 MCU names.
4442 * doc/invoke.texi (MSP430 Options): Note that if the MCU name is
4443 not recognised then no hardware multiply support is assumed and
4444 that only the MSP430 ISA is allowed.
4445
4446 2015-10-12 Richard Biener <rguenther@suse.de>
4447
4448 * tree-vect-loop.c (vect_analyze_loop_operations): Move cost
4449 related code ...
4450 (vect_analyze_loop_2): ... here.
4451
4452 2015-10-11 Jason Merrill <jason@redhat.com>
4453
4454 PR c++/67557
4455 * expr.c (store_field): Call store_constructor directly when
4456 storing a CONSTRUCTOR into a target smaller than its type.
4457 Guard against unsafe bitwise copy.
4458
4459 2015-10-11 Jan Hubicka <hubicka@ucw.cz>
4460
4461 * cgraphbuild.c (compute_call_stmt_bb_frequency): Use
4462 counts when these are more informative.
4463
4464 2015-10-11 Jan Hubicka <hubicka@ucw.cz>
4465
4466 * tree-profile.c (tree_profiling): Do not clear
4467 pure/const when not instrumenting.
4468 (pass tree_profile): Add dump of symtab.
4469
4470 2015-10-11 Jan Hubicka <hubicka@ucw.cz>
4471
4472 * fold-const.c (fold_comparsion): Pass OEP_ADDRESS_OF when comparing
4473 addresses.
4474 (fold_addr_of_array_ref_difference): Likewise.
4475
4476 2015-10-11 Jeff Law <law@redhat.com>
4477
4478 * tree-ssa-threadedge.c (fsm_find_thread_path): Moved from here into
4479 tree-ssa-threadbackward.c.
4480 (fsm_find_control_statement_thread_paths): Likewise.
4481 (thread_through_normal_block): Break out FSM bits and move them
4482 into a new function in tree-ssa-threadbackward.c. Call new function
4483 instead.
4484 Minimize header file usage.
4485 * tree-ssa-threadbackward.h: New file.
4486 * tree-ssa-threadbackward.c: Likewise.
4487 * Makefile.in (OBJS): Add tree-ssa-threadbackward.o
4488
4489 2015-10-11 Uros Bizjak <ubizjak@gmail.com>
4490
4491 * config/alpha/alpha.h (ALPHA_ROUND): Implement using ROUND_UP macro.
4492
4493 2015-10-11 Segher Boessenkool <segher@kernel.crashing.org>
4494
4495 PR rtl-optimization/67864
4496 * bb-reorder (reorder_basic_blocks_simple): Prefer existing
4497 fallthrough edges for conditional jumps. Don't sort candidate
4498 edges if not optimizing for speed.
4499
4500 2015-10-10 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4501
4502 * defaults.h (REVERSE_CONDITION): New default definition.
4503 * jump.c (reversed_comparison_code_parts): Adjust.
4504
4505 2015-10-10 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4506
4507 * builtins.c (expand_builtin_setjmp_receiver): Don't use #if to
4508 check HARD_FRAME_POINTER_IS_ARG_POINTER.
4509
4510 2015-10-10 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4511
4512 * defaults.h (FRAME_ADDR_RTX): New default definition.
4513 * builtins.c (expand_builtin_return_addr): Adjust.
4514
4515 2015-10-10 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4516
4517 * defaults.h (DYNAMIC_CHAIN_ADDRESS): New default definition.
4518 * builtins.c (expand_builtin_return_addr): Adjust.
4519
4520 2015-10-10 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4521
4522 * defaults.h (SETUP_FRAME_ADDRESSES): New default definition.
4523 * builtins.c (expand_builtin_return_addr): Adjust.
4524 * doc/tm.texi: Likewise.
4525 * doc/tm.texi.in: Likewise.
4526 * except.c (expand_builtin_unwind_init): Likewise.
4527
4528 2015-10-10 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4529
4530 * builtins.c (expand_builtin_return_addr): Adjust.
4531 * defaults.h (INITIAL_FRAME_ADDRESS_RTX): New default definition.
4532
4533 2015-10-10 Jan Hubicka <hubicka@ucw.cz>
4534
4535 * tree.c (type_with_interoperable_signedness): New.
4536 (gimple_canonical_types_compatible_p): Use it.
4537 * tree.h (type_with_interoperable_signedness): Declare
4538
4539 2015-10-10 Jan Hubicka <hubicka@ucw.cz>
4540
4541 * fold-const.c (operand_equal_p): Document OEP_ADDRESS_OF
4542 and OEP_CONSTANT_ADDRESS_OF; skip type compatibility checks
4543 when OEP_ADDRESS_OF is se.
4544
4545 2015-10-10 Aditya Kumar <aditya.k7@samsung.com>
4546 Sebastian Pop <s.pop@samsung.com>
4547
4548 * graphite-dependences.c (scop_get_dependences): Add dump of the
4549 data dependence graph.
4550 * graphite-poly.c (print_isl_union_map): New.
4551 (debug_isl_union_map): New.
4552 * graphite-poly.h (print_isl_union_map): Declare.
4553 (debug_isl_union_map): Declare.
4554
4555 2015-10-10 Aditya Kumar <aditya.k7@samsung.com>
4556 Sebastian Pop <s.pop@samsung.com>
4557
4558 * graphite-poly.c (print_iteration_domain): Remove verbosity.
4559 Remove OpenScop formatting.
4560 (print_iteration_domains): Same.
4561 (debug_iteration_domain): Same.
4562 (debug_iteration_domains): Same.
4563 (print_pdr): Same.
4564 (debug_pdr): Same.
4565 (dump_gbb_cases): Same.
4566 (dump_gbb_conditions): Same.
4567 (print_pdrs): Same.
4568 (debug_pdrs): Same.
4569 (print_pbb_body): Same.
4570 (print_pbb): Same.
4571 (print_scop_params): Same.
4572 (print_scop_context): Same.
4573 (print_scop): Same.
4574 (debug_pbb_domain): Same.
4575 (debug_pbb): Same.
4576 (debug_scop_context): Same.
4577 (debug_scop): Same.
4578 (debug_scop_params): Same.
4579 * graphite-poly.h: Same.
4580 * graphite.c (graphite_transform_loops): Same.
4581
4582 2015-10-10 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4583
4584 * function.c (stack_protect_epilogue): Remove as_a<rtx_insn *> ()
4585 call that isn't needed.
4586
4587 2015-10-09 Jeff Law <law@redhat.com>
4588
4589 * tree-ssanames.c (flush_ssaname_freelist): Use splice and truncate
4590 rather than moving each name to the freelist individually.
4591
4592 2015-10-09 Steve Ellcey <sellcey@imgtec.com>
4593
4594 * config.gcc (mips*-*-*): Add frame-header-opt.o to extra_objs.
4595 * frame-header-opt.c: New file.
4596 * config/mips/mips-proto.h (mips_register_frame_header_opt):
4597 Add prototype.
4598 * config/mips/mips.c (mips_compute_frame_info): Check
4599 optimize_call_stack flag.
4600 (mips_option_override): Register new frame_header_opt pass.
4601 (mips_frame_info, mips_int_mask, mips_shadow_set,
4602 machine_function): Move these types to...
4603 * config/mips/mips.h: here.
4604 (machine_function): Add does_not_use_frame_header and
4605 optimize_call_stack fields.
4606 * config/mips/t-mips (frame-header-opt.o): Add new make rule.
4607 * doc/invoke.texi (-mframe-header-opt, -mno-frame-header-opt):
4608 Document new flags.
4609 * config/mips/mips.opt (mframe-header-opt): Add new option.
4610
4611 2015-10-09 Uros Bizjak <ubizjak@gmail.com>
4612
4613 * config/i386/i386.c
4614 (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Use
4615 ROUND_DOWN where applicable.
4616
4617 2015-10-09 Jeff Law <law@redhat.com>
4618
4619 * tree-vect-stmts.c (free_stmt_vec_info): Free the LHS of the
4620 correct statement.
4621
4622 2015-10-09 Renlin Li <renlin.li@arm.com>
4623
4624 * config/arm/neon.md (neon_vuzp<mode>_insn): Add & modifier for
4625 operands[0] and operands[2].
4626 (neon_vtrn<mode>_insn): Likewise.
4627 (neon_vzip<mode>_insn): Likewise.
4628
4629 2015-10-09 Andre Vieira <andre.simoesdiasvieira@arm.com>
4630
4631 * match.pd: ((X inner_op C0) outer_op C1) New pattern.
4632 ((X & C2) << C1): Expand to...
4633 (X {&,^,|} C2 << C1): ...This.
4634 ((X & C2) >> C1): Expand to...
4635 (X {&,^,|} C2 >> C1): ...This.
4636
4637 2015-10-09 Alexander Fomin <alexander.fomin@intel.com>
4638
4639 PR target/67895
4640 * config/i386/sse.md (define_insn "sse_cvtsi2ss<round_name>"):
4641 Adjust embedded rounding/SAE specifier position.
4642 (define_insn "sse_cvtsi2ssq<round_name>"): Likewise.
4643 (define_insn "cvtusi2<ssescalarmodesuffix>32<round_name>"): Likewise.
4644 (define_insn "cvtusi2<ssescalarmodesuffix>64<round_name>"): Likewise.
4645 (define_insn "sse2_cvtsi2sdq<round_name>"): Likewise.
4646 (define_insn "avx512dq_rangep<mode><mask_name><round_saeonly_name>"):
4647 Likewise.
4648 (define_insn "avx512dq_ranges<mode><round_saeonly_name>"): Likewise.
4649
4650 2015-10-09 Martin Jambor <mjambor@suse.cz>
4651
4652 tree-optimization/67794
4653 * tree-sra.c (replace_removed_params_ssa_names): Do not distinguish
4654 between types of state,ents but accept original definitions as a
4655 parameter.
4656 (ipa_sra_modify_function_body): Use FOR_EACH_SSA_DEF_OPERAND to
4657 iterate over definitions.
4658
4659 2015-10-09 James Norris <jnorris@codesourcery.com>
4660
4661 * config/rs6000/rs6000.c (rs6000_offload_options): New.
4662 (TARGET_OFFLOAD_OPTIONS): New.
4663
4664 2015-10-09 Alexandre Oliva <aoliva@redhat.com>
4665
4666 PR middle-end/67891
4667 * cfgexpand.c (set_parm_rtl): Drop is_gimple_reg test.
4668
4669 PR middle-end/67766
4670 * function.c (expand_function_end): Move return value
4671 promotion past the handling of PARALLELs and CONCATs.
4672
4673 PR rtl-optimization/67828
4674 * tree-ssa-loop-unswitch.c: Include tree-ssa.h.
4675 (tree_may_unswitch_on): Don't unswitch on expressions
4676 involving undefined values.
4677
4678 2015-10-09 Richard Biener <rguenther@suse.de>
4679
4680 * genmatch.c (print_operand): Fix formatting.
4681 (dt_node::append_simplify): Warn for multiple simplifiers
4682 that match the same pattern.
4683 * match.pd (log (exp @0)): Remove duplicates.
4684
4685 2015-10-09 Richard Biener <rguenth@suse.de>
4686
4687 PR target/67366
4688 * gimple-fold.c (optabs-query.h): Include
4689 (gimple_fold_builtin_memory_op): Allow unaligned stores
4690 when movmisalign_optabs are available.
4691
4692 2015-10-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4693
4694 PR target/67366
4695 * config/arm/arm.md (movmisalign<mode>): New.
4696 * config/arm/iterators.md (HSI): New.
4697
4698 2015-10-09 Richard Biener <rguenther@suse.de>
4699
4700 PR tree-optimization/67891
4701 * gimple-match.h (gimple_simplified_result_is_gimple_val):
4702 New helper.
4703 (gimple_resimplify1): Declare.
4704 (gimple_resimplify2): Likewise.
4705 (gimple_resimplify3): Likewise.
4706 * gimple-match-head.c (gimple_resimplify1): Export.
4707 (gimple_resimplify2): Likewise.
4708 (gimple_resimplify3): Likewise.
4709 (maybe_push_res_to_seq): Use gimple_simplified_result_is_gimple_val.
4710 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
4711 * tree-ssa-sccvn.c (visit_reference_op_load): Use gimple_resimplify1
4712 to avoid creating stmts without VN info.
4713
4714 2015-10-08 Jan Hubicka <hubicka@ucw.cz>
4715
4716 * ipa-icf.c (sem_item::compare_symbol_references): Fix use
4717 of availability.
4718
4719 2015-10-08 Jeff Law <law@redhat.com>
4720
4721 * value-prof.c (gimple_ic): Add missing calls to unlink_stmt_vdef
4722 and release_ssa_name in two places.
4723 (gimple_stringop_fixed_value): Similarly.
4724
4725 * tree-ssa-loop-im.c (rewrite_bittest): Add missing call to
4726 release_defs.
4727
4728 * tree-stdarg.c (expand_ifn_va_arg_1): Add missing call to
4729 unlink_stmt_vdef and release_ssa_name_fn.
4730
4731 * tree-ssa-dse.c (dse_optimize_stmt): Add missing call to
4732 release_defs.
4733
4734 2015-10-08 H.J. Lu <hongjiu.lu@intel.com>
4735
4736 * config/i386/i386.c (ix86_compute_frame_layout): Round up the
4737 SSE register save area to 16 bytes only if the incoming stack
4738 boundary is no less than 16 bytes.
4739
4740 2015-10-08 Jeff Law <law@redhat.com>
4741
4742 * tree-ssa-phiopt.c (factor_out_conversion): Add missing calls to
4743 release_ssa_name. Fix typo in comment.
4744
4745 2015-10-08 Nathan Sidwell <nathan@acm.org>
4746
4747 * config/nvptx/nvptx.h (struct machine_function): Add comment.
4748 * config/nvptx/nvptx.c (nvptx_declare_function_name): Functions
4749 may return pointer as well as in memory.
4750 (nvptx_output_return): Likewise.
4751
4752 2015-10-08 Richard Sandiford <richard.sandiford@arm.com>
4753
4754 * builtins.c (fold_builtin_sqrt, fold_builtin_cbrt): Delete.
4755 (fold_builtin_1): Update accordingly. Handle constant arguments here.
4756 * match.pd: Add rules previously handled by fold_builtin_sqrt
4757 and fold_builtin_cbrt.
4758
4759 2015-10-08 Richard Sandiford <richard.sandiford@arm.com>
4760
4761 * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): New param.
4762 * doc/invoke.texi (--param max-ssa-name-query-depth): Document.
4763 * fold-const.h (tree_unary_nonnegative_warnv_p)
4764 (tree_single_nonnegative_warnv_p, tree_call_nonnegative_warnv_p)
4765 (tree_expr_nonnegative_warnv_p): Add depth parameters.
4766 * fold-const.c: Include gimple-fold.h and params.h.
4767 (tree_ssa_name_nonnegative_warnv_p): New function.
4768 (tree_unary_nonnegative_warnv_p, tree_binary_nonnegative_warnv_p)
4769 (tree_single_nonnegative_warnv_p, tree_call_nonnegative_warnv_p)
4770 (tree_invalid_nonnegative_warnv_p, tree_expr_nonnegative_warnv_p):
4771 Add a depth parameter and increment it for recursive calls to
4772 tree_expr_nonnegative_warnv_p. Use tree_ssa_name_nonnegative_warnv_p
4773 to handle SSA names.
4774 * gimple-fold.h (gimple_val_nonnegative_real_p): Delete.
4775 (gimple_stmt_nonnegative_warnv_p): Declare.
4776 * tree-vrp.c (remove_range_assertions): Remove assert that condition
4777 cannot be proven false.
4778 (gimple_assign_nonnegative_warnv_p, gimple_call_nonnegative_warnv_p)
4779 (gimple_stmt_nonnegative_warnv_p): Move to...
4780 * gimple-fold.c: ...here. Add depth parameters and pass them
4781 down to the tree routines. Accept statements that aren't
4782 assignments or calls but just return false for them.
4783 (gimple_val_nonnegative_real_p): Delete.
4784 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Use
4785 tree_expr_nonnegative_p instead of gimple_val_nonnegative_real_p.
4786 Check HONOR_NANs first.
4787
4788 2015-10-08 Martin Jambor <mjambor@suse.cz>
4789
4790 * ipa-cp.c (meet_with_1): Make the argument of abs signed. Remove
4791 unnecessary MIN.
4792
4793 2015-10-08 Yuri Rumyantsev <ysrumyan@gmail.com>
4794
4795 * tree-vect-loop.c (vect_analyze_loop_operations): Skip virtual phi
4796 in the tail of outer-loop.
4797
4798 2015-10-08 David Edelsohn <dje.gcc@gmail.com>
4799
4800 * config/rs6000/rs6000.c (rs6000_xcoff_debug_unwind_info): Always
4801 return UI_NONE.
4802
4803 2015-10-08 Yuri Rumyantsev <ysrumyan@gmail.com>
4804
4805 * tree-ssa-loop-unswitch.c: Include "gimple-iterator.h" and
4806 "cfghooks.h", add prototypes for introduced new functions.
4807 (tree_ssa_unswitch_loops): Use from innermost loop iterator, move all
4808 checks on ability of loop unswitching to tree_unswitch_single_loop;
4809 invoke tree_unswitch_single_loop or tree_unswitch_outer_loop depending
4810 on innermost loop check.
4811 (tree_unswitch_single_loop): Add all required checks on ability of
4812 loop unswitching under zero recursive level guard.
4813 (tree_unswitch_outer_loop): New function.
4814 (find_loop_guard): Likewise.
4815 (empty_bb_without_guard_p): Likewise.
4816 (used_outside_loop_p): Likewise.
4817 (get_vop_from_header): Likewise.
4818 (hoist_guard): Likewise.
4819 (check_exit_phi): Likewise.
4820
4821 2015-10-08 Marek Polacek <polacek@redhat.com>
4822
4823 * tree-ssa-reassoc.c (dump_ops_vector): Print newline after each
4824 ops element.
4825
4826 2015-10-08 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4827
4828 PR c/65345
4829 * config/s390/s390.c (s390_atomic_assign_expand_fenv): Use
4830 create_tmp_var_raw instead of create_tmp_var.
4831
4832 2015-10-07 Jan Hubicka <hubicka@ucw.cz>
4833
4834 * expr.c (store_expr_with_bounds): Handle aggregate moves from
4835 BLKmode.
4836 * gimple-expr.c (useless_type_conversion_p): Do not use TYPE_CANONICAL
4837 to define gimple type system; compare aggregates only by size.
4838
4839 2015-10-07 Jeff Law <law@redhat.com>
4840
4841 * tree-ssa-dom.c (optimize_stmt): Don't set LOOPS_NEED_FIXUP here.
4842 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Do it
4843 here instead. Tighten test to avoid setting LOOPS_NEED_FIXUP
4844 unnecessarily.
4845
4846 2015-10-07 Aditya Kumar <aditya.k7@samsung.com>
4847 Sebastian Pop <s.pop@samsung.com>
4848
4849 * graphite-dependences.c (scop_get_dependences): Do not use SCOP_BBS.
4850 * graphite-isl-ast-to-gimple.c (get_max_schedule_dimensions): Same.
4851 (generate_isl_schedule): Same.
4852 * graphite-optimize-isl.c (scop_get_domains): Same.
4853 (apply_schedule_map_to_scop): Same.
4854 * graphite-poly.c (print_iteration_domains): Same.
4855 (remove_gbbs_in_scop): Same.
4856 (new_scop): Same.
4857 (free_scop): Same.
4858 (print_scop): Same.
4859 * graphite-poly.h (struct scop): Rename bbs to pbbs.
4860 (SCOP_BBS): Remove.
4861 * graphite-scop-detection.c (compare_bb_depths): Remove.
4862 (graphite_sort_dominated_info): Remove.
4863 (try_generate_gimple_bb): Move out of scop_detection.
4864 (all_non_dominated_preds_marked_p): Remove.
4865 (build_scop_bbs_1): Remove.
4866 (build_scop_bbs): Remove.
4867 (nb_pbbs_in_loops): Do not use SCOP_BBS.
4868 (find_scop_parameters): Same.
4869 (sese_dom_walker): Rename gather_bbs.
4870 (before_dom_children): Call try_generate_gimple_bb and collect gbb
4871 and pbb.
4872 (build_scops): Call gather_bbs.
4873 * graphite-sese-to-poly.c (build_scop_scattering): Do not use SCOP_BBS.
4874 (add_conditions_to_constraints): Same.
4875 (build_scop_iteration_domain): Same.
4876 (build_scop_drs): Same.
4877 (new_pbb_from_pbb): Same.
4878 * sese.c (new_sese_info): Create bbs.
4879 * sese.h (struct sese_info_t): Add bbs.
4880
4881 2015-10-07 David Edelsohn <dje.gcc@gmail.com>
4882
4883 * config/rs6000/xcoff.h (ASM_PREFERRED_EH_DATA_FORMAT): Use 64-bit
4884 encoding in 64-bit mode.
4885
4886 2015-10-07 Uros Bizjak <ubizjak@gmail.com>
4887
4888 PR target/66697
4889 * config/i386/i386.c (ix86_option_override_internal): Always use
4890 8-byte minimum stack boundary in 64-bit mode.
4891 (ix86_compute_frame_layout): Remove assert on INCOMING_STACK_BOUNDARY.
4892 (ix86_emit_save_reg_using_mov): Support unaligned SSE store.
4893 Add a REG_CFA_EXPRESSION note if needed.
4894 (ix86_emit_restore_sse_regs_using_mov): Support unaligned SSE load.
4895 (ix86_handle_force_align_arg_pointer_attribute): New.
4896 (ix86_minimum_incoming_stack_boundary): Remove TARGET_64BIT check.
4897 (ix86_attribute_table): Set ix86_force_align_arg_pointer_string
4898 with ix86_handle_force_align_arg_pointer_attribute.
4899 * config/i386/i386.h (MIN_STACK_BOUNDARY): Set to BITS_PER_WORD.
4900
4901 2015-10-07 Aditya Kumar <aditya.k7@samsung.com>
4902 Sebastian Pop <s.pop@samsung.com>
4903
4904 * graphite-scop-detection.c (parameter_index_in_region): Remove
4905 use of SESE_ADD_PARAMS.
4906 (find_scop_parameters): Same.
4907 * sese.c (new_sese_info): Same.
4908 * sese.h (struct sese_info_t): Remove add_params.
4909 (SESE_ADD_PARAMS): Remove.
4910
4911 2015-10-07 Aditya Kumar <aditya.k7@samsung.com>
4912 Sebastian Pop <s.pop@samsung.com>
4913
4914 * graphite-isl-ast-to-gimple.c (translate_isl_ast_to_gimple): Use
4915 an sese_info_p.
4916 (copy_def): Same.
4917 (copy_internal_parameters): Same.
4918 (translate_isl_ast_to_gimple): Use an sese_l.
4919 (build_iv_mapping): Same.
4920 * graphite-poly.c (new_sese): Rename new_sese_info.
4921 (free_sese): Rename free_sese_info.
4922 * graphite-poly.h (struct scop): Use an sese_info_p.
4923 (scop_set_region): Same.
4924 * graphite-scop-detection.c (struct sese_l): Moved...
4925 (get_entry_bb): Moved...
4926 (get_exit_bb): Moved...
4927 (parameter_index_in_region_1): Use an sese_info_p.
4928 (parameter_index_in_region): Same.
4929 (scan_tree_for_params): Same.
4930 (find_params_in_bb): Same.
4931 (sese_dom_walker): Use an sese_l.
4932 * graphite-sese-to-poly.c (remove_invariant_phi): Same.
4933 (reduction_phi_p): Same.
4934 (parameter_index_in_region_1): Use an sese_info_p.
4935 (propagate_expr_outside_region): Use an sese_l.
4936 * graphite.c: Replace uses of SCOP_REGION.
4937 * sese.c (sese_record_loop): Use an sese_info_p.
4938 (build_sese_loop_nests): Same.
4939 (sese_build_liveouts_use): Same.
4940 (sese_build_liveouts_bb): Same.
4941 (sese_build_liveouts_bb): Same.
4942 (sese_bad_liveouts_use): Same.
4943 (sese_reset_debug_liveouts_bb): Same.
4944 (sese_build_liveouts): Same.
4945 (new_sese): Renamed new_sese_info.
4946 (free_sese): Renamed free_sese_info.
4947 (set_rename): Use an sese_info_p.
4948 (graphite_copy_stmts_from_block): Same.
4949 (copy_bb_and_scalar_dependences): Same.
4950 (outermost_loop_in_sese_1): Use an sese_l.
4951 (outermost_loop_in_sese): Same.
4952 (if_region_set_false_region): Use an sese_info_p.
4953 (move_sese_in_condition): Same.
4954 (scalar_evolution_in_region): Use an sese_l.
4955 * sese.h (struct sese_l): ... here.
4956 (SESE_ENTRY): Remove.
4957 (SESE_ENTRY_BB): Remove.
4958 (SESE_EXIT): Remove.
4959 (SESE_EXIT_BB): Remove.
4960 (sese_contains_loop): Use an sese_info_p.
4961 (sese_nb_params): Same.
4962 (bb_in_sese_p): Use an sese_l.
4963 (stmt_in_sese_p): Same.
4964 (defined_in_sese_p): Same.
4965 (loop_in_sese_p): Same.
4966 (sese_loop_depth): Same.
4967 (struct ifsese_s): Use an sese_info_p.
4968 (gbb_loop_at_index): Use an sese_l.
4969 (nb_common_loops): Same.
4970 (scev_analyzable_p): Same.
4971
4972 2015-10-07 H.J. Lu <hongjiu.lu@intel.com>
4973
4974 * config/i386/i386.c (ix86_conditional_register_usage): Use
4975 CALL_USED_REGISTERS_MASK.
4976 * config/i386/i386.h (CALL_USED_REGISTERS_MASK): New macro.
4977
4978 2015-10-07 H.J. Lu <hongjiu.lu@intel.com>
4979
4980 PR bootstrap/67385
4981 * configure.ac (gcc_cv_readelf): Check $READELF_FOR_TARGET.
4982 * configure: Regenerated.
4983
4984 2015-10-07 H.J. Lu <hongjiu.lu@intel.com>
4985
4986 PR target/67850
4987 * config/i386/i386.c (ix86_maybe_switch_abi): Merged with ...
4988 (ix86_set_current_function): This.
4989 (TARGET_EXPAND_TO_RTL_HOOK): Removed.
4990
4991 2015-10-07 Richard Biener <rguenther@suse.de>
4992
4993 * tree-vectorizer.h (stmt_vec_info_vec): Use vec<stmt_vec_info>.
4994 (vinfo_for_stmt): Adjust.
4995 (set_vinfo_for_stmt): Likewise.
4996 * tree-vectorizer.c (stmt_vec_info_vec): Likewise.
4997 * tree-vect-stmts.c (free_stmt_vec_info_vec): Likewise.
4998 * tree-vect-loop.c (new_loop_vec_info): Remove special-casing
4999 of inner loop.
5000 (vect_analyze_loop_1): Remove.
5001 (vect_analyze_loop_form_1): Avoid building a loop_vec_info for
5002 inner loop when vectorizing an outer loop by splitting out from ...
5003 (vect_analyze_loop_form): ... here.
5004
5005 2015-10-07 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5006
5007 PR c/65345
5008 * config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv):
5009 Use create_tmp_var_raw instead of create_tmp_var.
5010
5011 2015-10-07 Richard Sandiford <richard.sandiford@arm.com>
5012
5013 * real.h (dconst_quarter, dconst_sixth, dconst_ninth): New macros.
5014 (dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): Declare.
5015 * real.c (CACHED_FRACTION): New helper macro.
5016 (dconst_third_ptr): Use it.
5017 (dconst_quarter_ptr, dconst_sixth_ptr, dconst_ninth_ptr): New.
5018 * builtins.c (fold_builtin_sqrt): Use dconst_quarter and
5019 dconst_sixth.
5020 (fold_builtin_cbrt): Use dconst_sixth and dconst_ninth.
5021
5022 2015-10-06 Jeff Law <law@redhat.com>
5023
5024 PR tree-optimization/67816
5025 * tree-ssa-threadupdate.h (remove_jump_threads_including): Renamed
5026 from remove_jump_threads_starting_at. Accept an edge rather than
5027 a basic block.
5028 * tree-ssa-threadupdate.c (removed_edges): New hash table.
5029 (remove_jump_threads_including): Note edges that get removed from
5030 the CFG for later pruning of jump threading paths including them.
5031 (thread_through_all_blocks): Remove paths which include edges that
5032 have been removed.
5033 * tree-ssa-dom.c (optimize_stmt): Call remove_jump_threads_including
5034 on each outgoing edges when optimizing away a control statement.
5035
5036 2015-10-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5037
5038 * reorg.c (emit_delay_sequence): Store list of delay slot insns
5039 in a vector instead of rtx_insn_list.
5040 (add_to_delay_list): Likewise.
5041 (delete_from_delay_slot): Likewise.
5042 (optimize_skip): Likewise.
5043 (redirect_with_delay_list_safe_p): Likewise.
5044 (check_annul_list_true_false): Likewise.
5045 (steal_delay_list_from_target): Likewise.
5046 (steal_delay_list_from_fallthrough): Likewise.
5047 (redundant_insn): Likewise.
5048 (fill_simple_delay_slots): Likewise.
5049 (fill_slots_from_thread): Likewise.
5050 (fill_eager_delay_slots): Likewise.
5051 (relax_delay_slots): Likewise.
5052
5053 2015-10-06 Sandra Loosemore <sandra@codesourcery.com>
5054
5055 * config/nios2/nios2.c (nios2_symbol_ref_in_small_data_p):
5056 For -mgpopt=local, also exclude unintialized common symbols.
5057 * doc/invoke.texi (Nios II Options): Document the change.
5058
5059 2015-10-07 Kugan Vivekanandarajah <kuganv@linaro.org>
5060
5061 * config/aarch64/iterators.md (vwcore): Add missing cases for
5062 V4HF/V8HF modes.
5063
5064 2015-10-06 Aditya Kumar <aditya.k7@samsung.com>
5065 Sebastian Pop <s.pop@samsung.com>
5066
5067 * graphite-poly.c (new_scop): Initialize drs.
5068 * graphite-poly.h (struct dr_info): New.
5069 (struct scop): Add drs.
5070 * graphite-sese-to-poly.c (pdr_add_alias_set): Use dr_info.
5071 (pdr_add_memory_accesses): Same.
5072 (build_poly_dr): Same.
5073 (build_alias_set): Same.
5074 (build_scop_drs): Same.
5075 (build_pbb_drs): Remove.
5076 * tree-data-ref.c (create_data_ref): Do not initialize alias_set.
5077 * tree-data-ref.h (data_reference): Remove alias_set.
5078
5079 2015-10-06 Aditya Kumar <aditya.k7@samsung.com>
5080 Sebastian Pop <s.pop@samsung.com>
5081
5082 * graphite-poly.c (free_data_refs_aux): Remove.
5083 (free_gimple_poly_bb): Do not call free_data_refs_aux.
5084 * graphite-poly.h (struct base_alias_pair): Remove.
5085 * graphite-sese-to-poly.c (pdr_add_alias_set): Remove all uses of
5086 base_alias_pair and dr->aux.
5087 (build_alias_set): Same.
5088 * tree-data-ref.c (create_data_ref): Initialize alias_set.
5089 * tree-data-ref.h (data_reference): Add alias_set.
5090
5091 2015-10-06 Aditya Kumar <aditya.k7@samsung.com>
5092 Sebastian Pop <s.pop@samsung.com>
5093
5094 * graphite-poly.c (new_poly_dr): Remove dr_base_object_set.
5095 Do not set PDR_BASE_OBJECT_SET.
5096 * graphite-poly.h (poly_dr): Same.
5097 (PDR_BASE_OBJECT_SET): Remove.
5098 (new_poly_dr): Update decl.
5099 * graphite-sese-to-poly.c (build_poly_dr): Update call to
5100 new_poly_dr.
5101 (write_alias_graph_to_ascii_dimacs): Remove.
5102 (write_alias_graph_to_ascii_dot): Remove.
5103 (write_alias_graph_to_ascii_ecc): Remove.
5104 (dr_same_base_object_p): Remove.
5105 (build_alias_set_optimal_p): Rename build_alias_set. Remove dead
5106 code.
5107 (build_base_obj_set_for_drs): Remove.
5108 (dump_alias_graphs): Remove.
5109 (build_scop_drs): Remove dead code.
5110
5111 2015-10-05 Michael Meissner <meissner@linux.vnet.ibm.com>
5112 Peter Bergner <bergner@vnet.ibm.com>
5113
5114 PR target/67808
5115 * config/rs6000/rs6000.md (extenddftf2): In the expander, only
5116 allow registers, but provide insns for the combiner to create for
5117 loads from memory. Separate VSX code from non-VSX code. For
5118 non-VSX code, combine extenddftf2_fprs into extenddftf2 and rename
5119 externaldftf2_internal to externaldftf2_fprs. Reorder constraints
5120 so that registers come before memory operations. Drop support from
5121 converting DFmode to TFmode, if the DFmode value is in a GPR
5122 register.
5123 (extenddftf2_fprs): Likewise.
5124 (extenddftf2_internal): Likewise.
5125 (extenddftf2_vsx): Likewise.
5126 (extendsftf2): In the expander, only allow registers, but provide
5127 insns for the combiner to create for stores and loads.
5128
5129 2015-10-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5130
5131 * varasm.c (default_elf_asm_named_section): Remove ATTRIBUTE_UNUSED
5132 from the decl parameter.
5133
5134 2015-10-06 Nathan Sidwell <nathan@codesourcery.com>
5135
5136 PR 67861
5137 * gimple-fold.c (gimple_fold_builtin): Add break after
5138 BUILT_IN_PRINTF_CHK, BUILT_IN_VPRINTF_CHK folding.
5139
5140 2015-10-06 H.J. Lu <hongjiu.lu@intel.com>
5141
5142 * graphite-optimize-isl.c (optimize_isl): Rename scop->ctx
5143 to scop->isl_context.
5144
5145 2015-10-06 Eric Botcazou <ebotcazou@adacore.com>
5146
5147 * config/arm/arm.c (arm_emit_probe_stack_range): Adjust comment.
5148 (output_probe_stack_range): Rotate the loop and simplify.
5149 (thumb1_expand_prologue): Tweak sorry message.
5150 * config/arm/arm.md (probe_stack): Use bare string.
5151
5152 2015-10-06 Nick Clifton <nickc@redhat.com>
5153
5154 * config.gcc (lm32-elf): Add newlib-stdint.h to tm_file.
5155
5156 2015-10-06 Nick Clifton <nickc@redhat.com>
5157
5158 * config/msp430/msp430.c (ATTR_NOINIT): New constant.
5159 (ATTR_PERSIST): New constant.
5160 (msp430_data_attr): New function - verifies an attribute that only
5161 applies to variables.
5162 (msp430_attributes): Add noinit and persistent attributes.
5163 (noinit_section): New variable.
5164 (presis_section): New variable.
5165 (TARGET_ASM_INIT_SECTIONS): Define.
5166 (msp430_init_sections): New function - initialises the noinit and
5167 persist section variables.
5168 (msp430_select_section): Add support for noinit and persist
5169 attributes.
5170 (msp430_section_type_flags): Likewise.
5171 * doc/extend.texi: Document the reent, critical, wakeup, noinit
5172 and persistent attributes.
5173
5174 2015-10-05 Aditya Kumar <aditya.k7@samsung.com>
5175 Sebastian Pop <s.pop@samsung.com>
5176
5177 * graphite-dependences.c (scop_get_transformed_schedule): Remove.
5178 (no_violations): Remove.
5179 (subtract_commutative_associative_deps): Remove.
5180 (compute_deps): Do not call subtract_commutative_associative_deps.
5181 (transform_is_safe): Remove.
5182 (graphite_legal_transform): Remove.
5183 * graphite-poly.h (graphite_legal_transform): Remove.
5184
5185 2015-10-05 Aditya Kumar <hiraditya@msn.com>
5186
5187 * graphite-sese-to-poly.c (build_loop_iteration_domains): Only loops
5188 which are in this region are passed so gcc_assert and remove redundant
5189 computation.
5190 * sese.c (sese_build_liveouts): Pass only those bbs which are not
5191 in region.
5192 (sese_bad_liveouts_use): Only BBs which are not in region are passed so
5193 gcc_assert on that and remove unnecessary computation.
5194 (sese_build_liveouts_use): Same.
5195
5196 2015-10-05 Aditya Kumar <aditya.k7@samsung.com>
5197
5198 * graphite-dependences.c (scop_get_reads): Renamed scop->context
5199 to scop->param_context.
5200 (scop_get_must_writes): Same.
5201 (scop_get_may_writes): Same.
5202 (scop_get_original_schedule): Same.
5203 (scop_get_transformed_schedule): Same.
5204 (subtract_commutative_associative_deps): Same.
5205 * graphite-isl-ast-to-gimple.c (add_parameters_to_ivs_params): Same.
5206 (generate_isl_context): Same.
5207 (generate_isl_schedule): Same.
5208 (scop_to_isl_ast): Same.
5209 (graphite_regenerate_ast_isl): Same.
5210 * graphite-optimize-isl.c (scop_get_domains): Same.
5211 (optimize_isl): Renamed scop->context to scop->param_context.
5212 * graphite-poly.c (new_poly_bb): Change the type of argument to
5213 gimple_poly_bb_p.
5214 (new_scop): Renamed scop->context to scop->param_context.
5215 (free_scop): Same.
5216 (print_scop_context): Same.
5217 * graphite-poly.h (new_poly_dr): Change the type of argument from
5218 void* to data_reference_p.
5219 (struct poly_bb): Change the type of black_box to gimple_poly_bb_p.
5220 (new_poly_bb): Change the type of argument from void* to
5221 gimple_poly_bb_p.
5222 (pbb_set_black_box): Same.
5223 (struct scop): Rename context to param_context, ctx to isl_context.
5224 * graphite-scop-detection.c (scop_detection::build_scop_bbs_1):
5225 Move declarations closer to assignment.
5226 (find_params_in_bb): Same.
5227 (find_scop_parameters): Same.
5228 * graphite-sese-to-poly.c (unsigned ssa_name_version_typesize):
5229 Global to be used for statement IDs.
5230 (isl_id_for_pbb): Use ssa_name_version_typesize.
5231 (simple_copy_phi_p): Move declarations closer to assignment.
5232 (build_pbb_scattering_polyhedrons): Same.
5233 (build_scop_scattering): Same.
5234 (isl_id_for_ssa_name): Same.
5235 (extract_affine_name): Same.
5236 (extract_affine_int): Same.
5237 (extract_affine): Same.
5238 (set_scop_parameter_dim): Use renamed member.
5239 (build_loop_iteration_domains): Same.
5240 (add_param_constraints): Same.
5241 (build_scop_iteration_domain): Same.
5242 (pdr_add_data_dimensions): Same.
5243 (build_poly_dr): Same.
5244 (build_scop_drs): Move declarations closer to assignment.
5245 (analyze_drs_in_stmts): Same.
5246 (insert_out_of_ssa_copy): Same.
5247 (insert_out_of_ssa_copy_on_edge): Same.
5248 (propagate_expr_outside_region): Same.
5249 (rewrite_phi_out_of_ssa): Same.
5250 (rewrite_degenerate_phi): Same.
5251 (rewrite_reductions_out_of_ssa): Same.
5252 (rewrite_cross_bb_scalar_dependence): Same.
5253 (handle_scalar_deps_crossing_scop_limits): Same.
5254 (rewrite_cross_bb_scalar_deps): Same.
5255 * graphite.c (graphite_transform_loops): Use renamed member.
5256
5257 2015-10-06 Uros Bizjak <ubizjak@gmail.com>
5258
5259 PR c/65345
5260 * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Use
5261 create_tmp_var_raw instead of create_tmp_var.
5262
5263 2015-10-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5264
5265 PR c/65345
5266 * config/aarch64/aarch64-builtins.c (aarch64_atomic_assign_expand_fenv):
5267 Use create_tmp_var_raw instead of create_tmp_var.
5268
5269 2015-10-06 Alexander Fomin <alexander.fomin@intel.com>
5270
5271 PR target/67849
5272 * config/i386/sse.md (define_split vec_select/V8FI): Restrict
5273 split for upper-bank registers when target does not support
5274 AVX512VL.
5275 (define_insn "vec_extract_lo_<mode><mask_name>"): Restrict
5276 split when target does not support AVX512VL.
5277
5278 2015-10-06 David Edelsohn <dje.gcc@gmail.com>
5279
5280 PR c/65345
5281 * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv):
5282 Adjust to use create_tmp_var_raw instead of create_tmp_var.
5283
5284 2015-10-06 Nick Clifton <nickc@redhat.com>
5285
5286 * config/rl78/rl78.c (rl78_rtx_costs): Improve cost estimates for
5287 multiplication.
5288
5289 2015-10-06 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
5290
5291 * config.gcc (i[34567]86-*-linux* | ...): Add znver1.
5292 (case ${target}): Add znver1.
5293 * config/i386/cpuid.h(bit_CLZERO): Define.
5294 * config/i386/driver-i386.c: (host_detect_local_cpu): Let
5295 -march=native recognize znver1 processors.
5296 * config/i386/i386-c.c (ix86_target_macros_internal): Add
5297 znver1, clzero def_and_undef.
5298 * config/i386/i386.c (struct processor_costs znver1_cost): New.
5299 (m_znver1): New definition.
5300 (m_AMD_MULTIPLE): Includes m_znver1.
5301 (processor_target_table): Add znver1 entry.
5302 (ix86_target_string) : Add clzero entry.
5303 (static const char *const cpu_names): Add znver1 entry.
5304 (ix86_option_override_internal): Add znver1 instruction sets.
5305 (PTA_CLZERO) : New definition.
5306 (ix86_option_override_internal): Handle new clzerooption.
5307 (ix86_issue_rate): Add znver1.
5308 (ix86_adjust_cost): Add znver1.
5309 (ia32_multipass_dfa_lookahead): Add znver1.
5310 (has_dispatch): Add znver1.
5311 * config/i386/i386.h (TARGET_znver1): New definition.
5312 (TARGET_CLZERO): Define.
5313 (TARGET_CLZERO_P): Define.
5314 (struct ix86_size_cost): Add TARGET_ZNVER1.
5315 (enum processor_type): Add PROCESSOR_znver1.
5316 * config/i386/i386.md (define_attr "cpu"): Add znver1.
5317 (set_attr znver1_decode): New definitions for znver1.
5318 * config/i386/i386.opt (flag_dispatch_scheduler): Add znver1.
5319 (mclzero): New.
5320 * config/i386/mmx.md (set_attr znver1_decode): New definitions
5321 for znver1.
5322 * config/i386/sse.md (set_attr znver1_decode): Likewise.
5323 * config/i386/x86-tune.def: Add znver1 tunings.
5324 * config/i386/znver1.md: Introduce znver1 cpu and include new md file.
5325 * doc/invoke.texi: Add details about znver1
5326
5327 2015-10-06 Richard Biener <rguenther@suse.de>
5328
5329 PR tree-optimization/67859
5330 * tree-ssa-pre.c (create_expression_by_pieces): Properly
5331 discard not inserted stmts.
5332
5333 2015-10-06 Jonathan Wakely <jwakely@redhat.com>
5334
5335 * doc/extend.texi (Template Instantiation): Reorder options and
5336 de-emphasize -frepo.
5337 * doc/invoke.texi (C++ Dialect Options): Use -fstrict-enums in
5338 example instead of -frepo.
5339
5340 2015-10-06 Eric Botcazou <ebotcazou@adacore.com>
5341
5342 PR c/65345
5343 * config/sparc/sparc.c (sparc_atomic_assign_expand_fenv): Adjust to
5344 use create_tmp_var_raw rather than create_tmp_var.
5345
5346 2015-10-06 Richard Biener <rguenther@suse.de>
5347
5348 * tree-vectorizer.h (vec_info): New base class for...
5349 (_loop_vec_info): ... this and ...
5350 (_bb_vec_info): ... this.
5351 (vect_is_simple_use, vect_is_simple_use_1, new_stmt_vec_info,
5352 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment,
5353 vect_analyze_data_ref_accesses, vect_analyze_data_refs,
5354 vect_schedule_slp, vect_analyze_slp, vect_pattern_recog,
5355 vect_destroy_datarefs): Adjust interface to take a vec_info *
5356 rather than both a loop_vec_info and a bb_vec_info argument.
5357 * tree-vect-data-refs.c (vect_compute_data_refs_alignment,
5358 vect_verify_datarefs_alignment, vect_enhance_data_refs_alignment,
5359 vect_analyze_data_refs_alignment, vect_analyze_data_ref_accesses,
5360 vect_analyze_data_refs, vect_create_data_ref_ptr): Adjust
5361 accordingly.
5362 * tree-vect-loop.c (new_loop_vec_info): Initialize base class.
5363 (destroy_loop_vec_info, vect_analyze_loop_2,
5364 vect_is_simple_reduction_1, get_initial_def_for_induction,
5365 vect_create_epilog_for_reduction, vectorizable_reduction,
5366 vectorizable_live_operation, vect_transform_loop): Adjust.
5367 * tree-vect-patterns.c (type_conversion_p,
5368 vect_recog_widen_mult_pattern, vect_recog_widen_shift_pattern,
5369 vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern,
5370 vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern,
5371 check_bool_pattern, vect_recog_bool_pattern,
5372 vect_mark_pattern_stmts, vect_pattern_recog): Likewise.
5373 * tree-vect-slp.c (vect_get_and_check_slp_defs,
5374 vect_build_slp_tree_1, vect_build_slp_tree, vect_analyze_slp_cost_1,
5375 vect_analyze_slp_instance, vect_analyze_slp, destroy_bb_vec_info,
5376 vect_slp_analyze_bb_1, vect_schedule_slp): Likewise.
5377 (new_bb_vec_info): Initialize base classs.
5378 * tree-vect-stmts.c (record_stmt_cost, process_use,
5379 vect_get_vec_def_for_operand, vect_finish_stmt_generation,
5380 vectorizable_mask_load_store, vectorizable_call,
5381 vectorizable_simd_clone_call, vectorizable_conversion,
5382 vectorizable_assignment, vectorizable_shift,
5383 vectorizable_operation, vectorizable_store,
5384 vectorizable_load, vect_is_simple_cond, vectorizable_condition,
5385 new_stmt_vec_info, vect_is_simple_use, vect_is_simple_use_1): Likewise.
5386 * tree-vectorizer.c (vect_destroy_datarefs): Likewise.
5387
5388 2015-10-05 Kaz Kojima <kkojima@gcc.gnu.org>
5389
5390 PR c/65345
5391 * config/sh/sh.c (sh_atomic_assign_expand_fenv): Adjust to use
5392 create_tmp_var_raw rather than create_tmp_var.
5393
5394 2015-10-05 Marek Polacek <polacek@redhat.com>
5395
5396 * tree-ssa-loop-im.c
5397 (move_computations_dom_walker::before_dom_children): Don't set
5398 SSA_NAME_ANTI_RANGE_P.
5399 * tree-ssa-phiopt.c (value_replacement): Likewise.
5400
5401 2015-10-05 Aditya Kumar <aditya.k7@samsung.com>
5402 Sebastian Pop <s.pop@samsung.com>
5403
5404 * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Increase to 7.
5405
5406 2015-10-05 Aditya Kumar <aditya.k7@samsung.com>
5407 Sebastian Pop <s.pop@samsung.com>
5408
5409 * graphite-poly.c (new_gimple_poly_bb): ... here.
5410 (free_data_refs_aux): ... here.
5411 (free_gimple_poly_bb): ... here.
5412 (remove_gbbs_in_scop): ... here.
5413 (new_scop): Call new_sese.
5414 (free_scop): Call remove_gbbs_in_scop and free_sese.
5415 * graphite-poly.h (base_alias_pair): ... here.
5416 (new_gimple_poly_bb): Declare.
5417 (free_gimple_poly_bb): Declare.
5418 * graphite-scop-detection.c (parameter_index_in_region_1):
5419 (parameter_index_in_region): ... here.
5420 (scan_tree_for_params): ... here.
5421 (find_params_in_bb): ... here.
5422 (find_scop_parameters): ... here.
5423 (build_scops): Call find_scop_parameters.
5424 * graphite-sese-to-poly.c (free_gimple_poly_bb): Move...
5425 (free_scops): Move...
5426 (single_pred_cond_non_loop_exit): Move...
5427 (sese_dom_walker::before_dom_children): Move...
5428 (sese_dom_walker::after_dom_children): Move...
5429 (build_poly_scop): Move...
5430 * graphite-sese-to-poly.h (base_alias_pair): Move...
5431 * graphite.c (free_scops): ... here.
5432
5433 2015-10-05 Aditya Kumar <aditya.k7@samsung.com>
5434 Sebastian Pop <s.pop@samsung.com>
5435
5436 * graphite-scop-detection.c: Include domwalk.h and tree-cfg.h.
5437 (trivially_empty_bb_p): Move...
5438 (same_close_phi_node): Move...
5439 (new_gimple_poly_bb): Move...
5440 (compare_bb_depths): Move...
5441 (graphite_sort_dominated_info): Move...
5442 (remove_duplicate_close_phi): Move...
5443 (make_close_phi_nodes_unique): Move...
5444 (canonicalize_loop_closed_ssa): Move...
5445 (canonicalize_loop_closed_ssa_form): Move...
5446 (loop_ivs_can_be_represented): Move...
5447 (single_pred_cond_non_loop_exit): Move...
5448 (graphite_can_represent_init): Move...
5449 (graphite_can_represent_scev): Move...
5450 (stmt_has_simple_data_refs_p): Move...
5451 (stmt_has_side_effects): Move...
5452 (graphite_can_represent_stmt): Move...
5453 (scop_detection): ... here.
5454 (sese_dom_walker): ... and here.
5455 (build_scops): Call all moved functions.
5456 * graphite-sese-to-poly.c (try_generate_gimple_bb): Move...
5457 (all_non_dominated_preds_marked_p): Move...
5458 (build_scop_bbs_1): Move...
5459 (build_scop_bbs): Move...
5460 (set_scop_parameter_dim): Move...
5461 (nb_pbbs_in_loops): Move...
5462 (build_poly_scop): Do not call all the moved functions.
5463
5464 2015-10-05 Martin Jambor <mjambor@suse.cz>
5465 Jan Hubicka <hubicka@ucw.cz>
5466
5467 * ipa-cp.c (ipcp_alignment_lattice): New type.
5468 (ipcp_param_lattices): Use the above to represent alignment.
5469 (ipcp_alignment_lattice::print): New function.
5470 (print_all_lattices): Use it to print alignment information.
5471 (ipcp_alignment_lattice::top_p): New function.
5472 (ipcp_alignment_lattice::bottom_p): Likewise.
5473 (ipcp_alignment_lattice::set_to_bottom): Likewise.
5474 (ipcp_alignment_lattice::meet_with_1): Likewise.
5475 (ipcp_alignment_lattice::meet_with): Two new overloaded functions.
5476 (set_all_contains_variable): Use set_to_bottom of alignment lattice.
5477 (initialize_node_lattices): Likewise.
5478 (propagate_alignment_accross_jump_function): Work with the new class
5479 for alignment lattices.
5480 (propagate_constants_accross_call): Pass only the alignment lattice to
5481 propagate_alignment_accross_jump_function.
5482 (ipcp_store_alignment_results): Work with the new class for alignment
5483 lattices.
5484
5485 2015-10-05 Marek Polacek <polacek@redhat.com>
5486
5487 PR tree-optimization/67821
5488 * tree-ssanames.c (duplicate_ssa_name_range_info): Remove an assert.
5489
5490 2015-10-05 Thomas Schwinge <thomas@codesourcery.com>
5491
5492 PR other/65021
5493 * config/i386/intelmic-mkoffload.c (mkoffload_atexit): Rename
5494 function to...
5495 (mkoffload_cleanup): ... this. Adjust all users.
5496 (maybe_unlink): Look at save_temps and verbose flags instead of
5497 debug flag.
5498 (main): Parse "-save-temps" flag.
5499 (generate_target_descr_file, generate_target_offloadend_file)
5500 (generate_host_descr_file, prepare_target_image): Pass it on.
5501 * config/nvptx/mkoffload.c (tool_cleanup): Implement.
5502 (mkoffload_cleanup): New function.
5503 (maybe_unlink): Look at save_temps and verbose flags instead of
5504 debug flag.
5505 (main): Instead of calling utils_cleanup, register atexit handler
5506 for mkoffload_cleanup.
5507 (main): Parse "-save-temps" flag.
5508 (compile_native, main): Pass it on.
5509 * lto-wrapper.c (compile_offload_image): Likewise.
5510
5511 2015-10-05 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5512
5513 * gimple.h (gimple_op_ptr): Require a non const gimple *.
5514 (gimple_assign_lhs_ptr): Likewise.
5515 (gimple_assign_rhs1_ptr): Likewise.
5516 (gimple_assign_rhs2_ptr): Likewise.
5517 (gimple_assign_rhs3_ptr): Likewise.
5518 (gimple_call_lhs_ptr): Likewise.
5519 (gimple_call_fn_ptr): Likewise.
5520 (gimple_call_chain_ptr): Likewise.
5521 (gimple_call_arg_ptr): Likewise.
5522 (gimple_cond_lhs_ptr): Likewise.
5523 (gimple_cond_rhs_ptr): Likewise.
5524 (gimple_switch_index_ptr): Likewise.
5525 (gimple_return_retval_ptr): Likewise.
5526
5527 2015-10-05 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5528
5529 * gimple.h (gimple_asm_input_op_ptr): Remove.
5530 (gimple_asm_output_op_ptr): Likewise.
5531
5532 2015-10-05 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5533
5534 * gimple.h (gimple_location_ptr): Remove.
5535 * tree-vrp.c (check_all_array_refs): Adjust.
5536
5537 2015-10-05 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5538
5539 * tree-ssa-operands.c (build_uses): store tree * instead of
5540 tree.
5541 (finalize_ssa_uses): Adjust.
5542 (append_use): Likewise.
5543 (verify_ssa_operands): Likewise.
5544
5545 2015-10-05 Richard Sandiford <richard.sandiford@arm.com>
5546
5547 * real.h (build_real_truncate): Declare.
5548 * tree.c (build_real_truncate): New function.
5549 (strip_float_extensions): Use it.
5550 * builtins.c (fold_builtin_cabs, fold_builtin_sqrt, fold_builtin_cbrt)
5551 (fold_builtin_hypot, fold_builtin_pow): Likewise.
5552 * match.pd: Likewise.
5553
5554 2015-10-05 James Greenhalgh <james.greenhalgh@arm.com>
5555 Jiong Wang <jiong.wang@arm.com>
5556
5557 * config/aarch64/aarch64.md (tlsie_tiny_sidi): Replace "<w>" with "w".
5558
5559 2015-10-05 Richard Sandiford <richard.sandiford@arm.com>
5560
5561 * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Delete.
5562 * config/aarch64/aarch64.c (aarch64_float_const_zero_rtx_p)
5563 (aarch64_print_operand, aarch64_float_const_representable_p)
5564 (aarch64_output_simd_mov_immediate): Use CONST_DOUBLE_REAL_VALUE
5565 instead of REAL_VALUE_FROM_CONST_DOUBLE.
5566 * config/arc/arc.c (arc_print_operand): Likewise.
5567 * config/arm/arm.c (arm_const_double_rtx, vfp3_const_double_index)
5568 (neon_valid_immediate, arm_print_operand, arm_emit_fp16_const)
5569 (vfp3_const_double_for_fract_bits, vfp3_const_double_for_bits):
5570 Likewise.
5571 * config/arm/arm.md (*arm32_movhf, consttable_4, consttable_8)
5572 (consttable_16): Likewise.
5573 * config/arm/vfp.md (*movhf_vfp_neon, *movhf_vfp): Likewise.
5574 * config/avr/avr.c (avr_print_operand): Likewise.
5575 * config/bfin/bfin.md: Likewise (in a define_split).
5576 * config/c6x/c6x.md: Likewise (in a define_split).
5577 * config/cr16/cr16.c (cr16_const_double_ok): Likewise.
5578 (cr16_print_operand): Likewise.
5579 * config/cris/cris.c (cris_print_operand): Likewise.
5580 * config/epiphany/epiphany.c (epiphany_print_operand): Likewise.
5581 * config/fr30/fr30.c (fr30_print_operand): Likewise.
5582 (fr30_const_double_is_zero): Likewise.
5583 * config/frv/frv.c (frv_print_operand, output_move_single): Likewise.
5584 * config/frv/frv.md: Likewise (in a define_split).
5585 * config/frv/predicates.md (int_2word_operand): Likewise.
5586 * config/h8300/h8300.c (h8300_print_operand): Likewise.
5587 * config/i386/i386.c (standard_80387_constant_p): Likewise.
5588 (ix86_print_operand, ix86_split_to_parts): Likewise.
5589 * config/i386/i386.md: Likewise (in a define_split).
5590 * config/ia64/ia64.c (ia64_split_tmode, ia64_print_operand): Likewise.
5591 * config/iq2000/iq2000.md (movsf_lo_sum, movsf_high): Likewise.
5592 * config/m32r/m32r.c (easy_df_const, m32r_print_operand): Likewise.
5593 * config/m68k/m68k.c (handle_move_double, standard_68881_constant_p)
5594 (print_operand): Likewise.
5595 * config/m68k/m68k.md (movsf_cf_hard, movdf_cf_hard): Likewise.
5596 * config/mep/mep.md: Likewise (in define_split).
5597 * config/microblaze/microblaze.c (microblaze_const_double_ok)
5598 (print_operand): Likewise.
5599 * config/mips/mips.md (consttable_float): Likewise.
5600 * config/mmix/mmix.c (mmix_intval): Likewise.
5601 * config/mn10300/mn10300.c (mn10300_print_operand): Likewise.
5602 * config/nvptx/nvptx.c (nvptx_print_operand): Likewise.
5603 * config/pa/pa.c (pa_singlemove_string): Likewise.
5604 * config/pdp11/pdp11.c (pdp11_expand_operands): Likewise.
5605 (pdp11_asm_print_operand, legitimate_const_double_p): Likewise.
5606 * config/rs6000/rs6000.c (num_insns_constant, rs6000_emit_cmove)
5607 (output_toc): Likewise.
5608 * config/rs6000/rs6000.md: Likewise (in define_splits).
5609 * config/rx/rx.c (rx_print_operand): Likewise.
5610 * config/s390/s390.c (s390_output_pool_entry): Likewise.
5611 * config/sh/sh.c (fp_zero_operand, fp_one_operand): Likewise.
5612 * config/sh/sh.md (consttable_sf, consttable_df): Likewise
5613 (and also in define_splits).
5614 * config/sparc/sparc.c (fp_sethi_p, fp_mov_p): Likewise.
5615 (fp_high_losum_p): Likewise.
5616 * config/sparc/sparc.md (*movsf_insn, *movsf_lo_sum): Likewise.
5617 (*movsf_high): Likewise.
5618 * config/spu/spu.c (const_double_to_hwint): Likewise.
5619 * config/v850/v850.c (const_double_split): Likewise.
5620 * config/vax/vax.c (vax_float_literal): Likewise.
5621 * config/visium/visium.c (visium_expand_copysign): Likewise.
5622 * config/visium/visium.md: Likewise (in define_split).
5623 * config/xtensa/predicates.md (const_float_1_operand): Likewise.
5624 * config/xtensa/xtensa.c (print_operand): Likewise.
5625 (xtensa_output_literal): Likewise.
5626 * cprop.c (implicit_set_cond_p): Likewise.
5627 * dwarf2out.c (insert_float): Likewise.
5628 * expmed.c (expand_mult, make_tree): Likewise.
5629 * expr.c (compress_float_constant): Likewise.
5630 * rtlanal.c (split_double): Likewise.
5631 * simplify-rtx.c (avoid_constant_pool_reference): Likewise.
5632 (simplify_const_unary_operation, simplify_binary_operation_1)
5633 (simplify_const_binary_operation): Likewise.
5634 (simplify_const_relational_operation): Likewise.
5635 * varasm.c (output_constant_pool_2): Likewise.
5636
5637 2015-10-05 Richard Sandiford <richard.sandiford@arm.com>
5638
5639 * real.h (CONST_DOUBLE_ATOF): Use const_double_from_real_value
5640 instead of CONST_DOUBLE_FROM_REAL_VALUE.
5641 (CONST_DOUBLE_FROM_REAL_VALUE): Delete.
5642 * config/c6x/c6x.md (divsf3, divdf3): Use const_double_from_real_value
5643 instead of CONST_DOUBLE_FROM_REAL_VALUE.
5644 * config/epiphany/epiphany.md (fixuns_truncsfsi2): Likewise.
5645 * config/i386/i386.c (standard_80387_constant_rtx): Likewise.
5646 (ix86_expand_builtin, ix86_emit_i387_log1p, ix86_emit_i387_round)
5647 (ix86_emit_swsqrtsf): Likewise.
5648 * config/ia64/ia64.c (ia64_expand_builtin): Likewise.
5649 * config/mips/mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2)
5650 (fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
5651 * config/pa/pa.c (pa_expand_builtin): Likewise.
5652 * config/rs6000/rs6000.c (rs6000_load_constant_and_splat): Likewise.
5653 (rs6000_scale_v2df): Likewise.
5654 * config/rs6000/rs6000.md (*cmptf_internal2): Likewise.
5655 * config/s390/s390.md (fixuns_truncdddi2, fixuns_trunctddi2)
5656 (fixuns_trunc<BFP:mode><GPR:mode>2): Likewise.
5657 * config/s390/vx-builtins.md (vec_ctd_s64, vec_ctd_u64, vec_ctsl)
5658 (vec_ctul): Likewise.
5659 * config/sparc/sparc.c (sparc_emit_fixunsdi): Likewise.
5660 * config/spu/spu.c (hwint_to_const_double, spu_float_const): Likewise.
5661 * config/spu/spu.md (floatunsdisf2, floatunstisf2): Likewise.
5662 * cse.c (fold_rtx): Likewise.
5663 * emit-rtl.c (immed_double_const): Likewise (in comments).
5664 (init_emit_once): Likewise.
5665 * expr.c (compress_float_constant, expand_expr_real_1)
5666 (const_vector_from_tree): Likewise.
5667 * optabs.c (expand_float, expand_fix): Likewise.
5668 * reg-stack.c (reg_to_stack): Likewise.
5669 * simplify-rtx.c (avoid_constant_pool_reference): Likewise.
5670 (simplify_const_unary_operation, simplify_binary_operation_1)
5671 (simplify_const_binary_operation, simplify_relational_operation)
5672 (simplify_immed_subreg): Likewise.
5673
5674 2015-10-05 Richard Sandiford <richard.sandiford@arm.com>
5675
5676 * doc/tm.texi.in (REAL_ARITHMETIC): Delete.
5677 * doc/tm.texi: Regenerate.
5678 * real.h (REAL_ARITHMETIC): Delete.
5679 * config/i386/i386.c (ix86_expand_lround, ix86_expand_round)
5680 (ix86_expand_round_sse4): Use real_arithmetic instead of
5681 REAL_ARITHMETIC.
5682 * config/i386/sse.md (round<mode>2): Likewise.
5683 * rtl.h (rtx_to_tree_code): Likewise (in comment).
5684 * explow.c (rtx_to_tree_code): Likewise (in comment).
5685 * match.pd: Likewise.
5686 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
5687 * tree-ssa-math-opts.c (representable_as_half_series_p): Likewise.
5688 (expand_pow_as_sqrts): Likewise.
5689 * tree-pretty-print.c (dump_generic_node): Remove code that
5690 was conditional on REAL_ARITHMETIC being undefined.
5691
5692 2015-10-05 Richard Sandiford <richard.sandiford@arm.com>
5693
5694 * doc/tm.texi.in (REAL_VALUES_LESS): Delete.
5695 * doc/tm.texi: Regenerate.
5696 * real.h (real_less): Declare.
5697 (REAL_VALUES_LESS): Delete.
5698 * real.c (real_less): New function.
5699 (real_compare): Use it.
5700 * config/m68k/m68k.c (floating_exact_log2): Use real_less instead
5701 of REAL_VALUES_LESS.
5702 * config/microblaze/microblaze.c (microblaze_const_double_ok):
5703 Likewise.
5704 * fold-const.c (fold_convert_const_int_from_real): Likewise.
5705 * simplify-rtx.c (simplify_const_unary_operation): Likewise.
5706 (simplify_const_relational_operation): Likewise.
5707 * tree-call-cdce.c (check_pow): Likewise.
5708 (gen_conditions_for_pow_cst_base): Likewise.
5709
5710 2015-10-05 Richard Sandiford <richard.sandiford@arm.com>
5711
5712 * real.h (REAL_VALUES_IDENTICAL): Delete.
5713 * config/m68k/m68k.c (standard_68881_constant_p): Use real_identical
5714 instead of REAL_VALUES_IDENTICAL.
5715 * fold-const.c (operand_equal_p): Likewise.
5716 * ipa-icf.c (sem_variable::equals): Likewise.
5717 * tree-complex.c (some_nonzerop): Likewise.
5718 (expand_complex_multiplication): Likewise.
5719 * tree.c (simple_cst_equal): Likewise.
5720 * varasm.c (compare_constant): Likewise.
5721
5722 2015-10-05 Richard Sandiford <richard.sandiford@arm.com>
5723
5724 * real.h (real_equal): Declare.
5725 (REAL_VALUES_EQUAL): Delete.
5726 * real.c (real_equal): New function.
5727 (real_compare): Use it.
5728 * doc/tm.texi.in (REAL_VALUES_EQUAL): Delete.
5729 * doc/tm.texi: Regenerate.
5730 * builtins.c (fold_builtin_pow, fold_builtin_load_exponent): Use
5731 real_equal instead of REAL_VALUES_EQUAL.
5732 * config/aarch64/aarch64.c (aarch64_float_const_zero_rtx_p): Likewise.
5733 * config/arm/arm.c (arm_const_double_rtx, neon_valid_immediate)
5734 (fp_const_from_val): Likewise.
5735 * config/fr30/fr30.c (fr30_const_double_is_zero): Likewise.
5736 * config/m68k/m68k.c (standard_68881_constant_p): Likewise.
5737 (floating_exact_log2): Likewise.
5738 * config/sh/sh.c (fp_zero_operand, fp_one_operand): Likewise.
5739 * config/vax/vax.c (vax_float_literal): Likewise.
5740 * config/xtensa/predicates.md (const_float_1_operand): Likewise.
5741 * cprop.c (implicit_set_cond_p): Likewise.
5742 * expmed.c (expand_mult): Likewise.
5743 * fold-const.c (const_binop): Likewise.
5744 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
5745 (simplify_const_binary_operation): Likewise.
5746 (simplify_const_relational_operation): Likewise.
5747 * tree-call-cdce.c (check_pow): Likewise.
5748 (gen_conditions_for_pow_cst_base): Likewise.
5749 * tree-inline.c (estimate_num_insns): Likewise.
5750 * tree-ssa-dom.c (record_equality): Likewise.
5751 * tree-ssa-math-opts.c (representable_as_half_series_p): Likewise.
5752 (gimple_expand_builtin_pow): Likewise.
5753 (pass_optimize_widening_mul::execute): Likewise.
5754 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
5755 * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
5756 * tree.c (real_zerop, real_onep, real_minus_onep): Likewise.
5757
5758 2015-10-05 Richard Biener <rguenther@suse.de>
5759
5760 PR ipa/67783
5761 * ipa-inline-analysis.c (estimate_function_body_sizes): Only
5762 consider loop header PHI defs as IVs.
5763
5764 2015-10-05 Richard Biener <rguenther@suse.de>
5765
5766 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Move
5767 call handling ...
5768 (create_expression_by_pieces): ... here and build GIMPLE
5769 calls directly. Use gimple_build API and avoid force_gimple_operand.
5770 (insert_into_preds_of_block): Simplify.
5771 (do_regular_insertion): Add comment.
5772
5773 2015-10-04 Jason Merrill <jason@redhat.com>
5774
5775 * builtins.def (BUILT_IN_ABORT): Add transaction_pure attribute.
5776
5777 2015-10-04 Uros Bizjak <ubizjak@gmail.com>
5778
5779 * config/i386/i386.c (ix86_nsaved_regs): Use GENERAL_REGNO_P to
5780 check for general register.
5781 (ix86_emit_save_regs): Ditto.
5782 (ix86_emit_save_regs_using_mov): Ditto.
5783 (ix86_emit_restore_regs_using_pop): Ditto.
5784 (ix86_emit_restore_regs_using_mov): Ditto.
5785
5786 2015-10-03 Marek Polacek <polacek@redhat.com>
5787
5788 * Makefile.in (insn-latencytab.o): Remove -Wno-duplicated-cond.
5789 (insn-dfatab.o): Likewise.
5790
5791 2015-10-03 Max Filippov <jcmvbkbc@gmail.com>
5792
5793 * config.gcc (xtensa*-*-uclinux*): New configuration.
5794 * config/xtensa/uclinux.h: New file.
5795 * config/xtensa/uclinux.opt: New file.
5796
5797 2015-10-03 Jonathan Wakely <jwakely@redhat.com>
5798
5799 * doc/cpp.texi (Standard Predefined Macros): Document value of
5800 __cplusplus for C++14.
5801
5802 2015-10-02 Bernd Schmidt <bernds@codesourcery.com>
5803
5804 * gcc.c (process_command): Use spec_machine rather than
5805 spec_host_machine to build tooldir_prefix2.
5806
5807 2015-10-02 Thomas Schwinge <thomas@codesourcery.com>
5808 Bernd Schmidt <bernds@codesourcery.com>
5809
5810 * config/nvptx/mkoffload.c (Kind, Vis): Remove enums.
5811 (Token, Stmt): Remove structs.
5812 (decls, vars, fns): Remove variables.
5813 (alloc_comment, append_stmt, is_keyword): Remove macros.
5814 (tokenize, write_token, write_tokens, alloc_stmt, rev_stmts)
5815 (write_stmt, write_stmts, parse_insn, parse_list_nosemi)
5816 (parse_init, parse_file): Remove functions.
5817 (read_file): Accept a pointer to a length and store into it.
5818 (process): Don't try to parse the input file, just write it out as
5819 a string, but looking for maps. Also write out the length.
5820 (main): Don't use "-S" to compile PTX code.
5821
5822 2015-10-02 Jeff Law <law@redhat.com>
5823
5824 * tree-ssa-dom.c (optimize_stmt): Note when loop structures need
5825 fixups.
5826
5827 2015-10-02 Thomas Schwinge <thomas@codesourcery.com>
5828
5829 PR target/67822
5830 * config/nvptx/mkoffload.c (main): Scan the argument vector for
5831 -fopenmp, and skip generating an offloading image if specified.
5832
5833 2015-10-02 Uros Bizjak <ubizjak@gmail.com>
5834
5835 * system.h (ROUND_UP): New macro definition.
5836 (ROUND_DOWN): Ditto.
5837 * ggc-page.c (ROUND_UP): Remove local macro definition.
5838 (PAGE_ALIGN): Implement using ROUND_UP macro.
5839
5840 * config/i386/i386.h (PUSH_ROUNDING): Implement using ROUND_UP macro.
5841 * config/i386/i386.c (function_arg_advance_64): Use ROUND_UP macro
5842 to align values.
5843 (ix86_compute_frame_layout): Ditto.
5844 (ix86_expand_prologue): Ditto.
5845 (ix86_adjust_stack_and_probe): Use ROUND_DOWN macro
5846 to round down values.
5847 (expand_set_or_movmem_via_rep): Ditto.
5848
5849 2015-10-02 Marek Polacek <polacek@redhat.com>
5850
5851 * genemit.c (gen_exp): Remove -Wduplicated-cond hack.
5852
5853 2015-10-02 Aditya Kumar <aditya.k7@samsung.com>
5854
5855 * graphite-scop-detection.c (loop_ivs_can_be_represented): New.
5856 (loop_body_is_valid_scop): Call loop_ivs_can_be_represented.
5857 * graphite-sese-to-poly.c (new_gimple_bb): Renamed new_gimple_poly_bb.
5858 (free_gimple_bb): Renamed free_gimple_poly_bb.
5859 (try_generate_gimple_bb): Hoist loop invariant code.
5860 (analyze_drs_in_stmts): Same.
5861 (build_scop_drs): Call renamed functions.
5862 (new_pbb_from_pbb): Same.
5863 (scop_ivs_can_be_represented): Delete as functionality now moved to
5864 graphite-scop-detection.c
5865 (build_poly_scop): Remove call to scop_ivs_can_be_represented.
5866
5867 2015-10-02 Aditya Kumar <hiraditya@msn.com>
5868
5869 * graphite-scop-detection.c (stmt_has_side_effects): New function
5870 outlined from stmt_simple_for_scop_p.
5871 (graphite_can_represent_stmt): Same.
5872 (stmt_simple_for_scop_p): Moved code out of this function for better
5873 readability.
5874
5875 2015-10-02 Kirill Yukhin <kirill.yukhin@intel.com>
5876
5877 * config/i386/i386.c (processor_features): Add F_AVX512VBMI,
5878 F_AVX512IFMA.
5879 (isa_names_table): Handle F_AVX512VBMI and F_AVX512IFMA.
5880
5881 2015-10-02 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5882
5883 * config/aarch64/aarch64-elf.h (TARGET_ASM_NAMED_SECTION): Delete.
5884
5885 2015-10-02 Vladimir Makarov <vmakarov@redhat.com>
5886
5887 PR rtl-optimization/67756
5888 * lra-constraints.c (match_reload): Add a new parameter. Use it
5889 for creating a pseudo with the same value.
5890 (curr_insn_transform): Pass a new argument to match_reload.
5891
5892 2015-10-02 Kirill Yukhin <kirill.yukhin@intel.com>
5893
5894 * config/i386/i386.c (expand_vec_perm_even_odd_trunc): New.
5895 (expand_vec_perm_even_odd_1): Handle V64QImode.
5896 (ix86_expand_vec_perm_const_1): Try expansion with
5897 expand_vec_perm_even_odd_trunc as well.
5898 * config/i386/sse.md (VI124_AVX512F): Rename to ...
5899 (define_mode_iterator VI124_AVX2_24_AVX512F_1_AVX512BW): This. Extend
5900 to V54QI.
5901 (define_mode_iterator VI248_AVX2_8_AVX512F): Rename to ...
5902 (define_mode_iterator VI248_AVX2_8_AVX512F_24_AVX512BW): This. Extend
5903 to V32HI and V16SI.
5904 (define_insn "avx512bw_<code>v32hiv32qi2"): Unhide pattern name.
5905 (define_expand "vec_pack_trunc_<mode>"): Update iterator name.
5906 (define_expand "vec_unpacks_lo_<mode>"): Ditto.
5907 (define_expand "vec_unpacks_hi_<mode>"): Ditto.
5908 (define_expand "vec_unpacku_lo_<mode>"): Ditto.
5909 (define_expand "vec_unpacku_hi_<mode>"): Ditto.
5910
5911 2015-10-02 Kirill Yukhin <kirill.yukhin@intel.com>
5912
5913 * doc/invoke.texi: Mention -mavx512vl, -mavx512bw, -mavx512dq,
5914 -mavx521vbmi, -mavx512ifma. Add missing opindex-es.
5915
5916 2015-10-02 Jason Merrill <jason@redhat.com>
5917
5918 PR c/59218
5919 * trans-mem.c (volatile_lvalue_p): Rename from volatile_var_p.
5920 (diagnose_tm_1_op): Also diagnose volatile accesses in
5921 transaction_safe function.
5922
5923 2015-10-02 Jonathan Wakely <jwakely@redhat.com>
5924
5925 * system.h (malloc.h): Don't include obsolete header.
5926
5927 2015-10-02 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5928
5929 * config/aarch64/aarch64.c (aarch64_elf_asm_named_section): Delete.
5930 (TLS_SECTION_ASM_FLAG): Delete.
5931
5932 2015-10-02 Marek Polacek <polacek@redhat.com>
5933
5934 PR c/64249
5935 * doc/invoke.texi: Document -Wduplicated-cond.
5936 * Makefile.in (insn-latencytab.o): Use -Wno-duplicated-cond.
5937 (insn-dfatab.o): Likewise.
5938 * genemit.c (gen_exp): Rewrite condition to avoid -Wduplicated-cond
5939 warning.
5940
5941 2015-10-02 Oleg Endo <olegendo@gcc.gnu.org>
5942
5943 * config/sh/sh.md: Add new unnamed split pattern to handle movt-movt
5944 sequences.
5945
5946 2015-10-02 Renlin Li <renlin.li@arm.com>
5947
5948 * config/aarch64/aarch64.md (csneg3_insn_uxtw): New pattern.
5949
5950 2015-10-02 Renlin Li <renlin.li@arm.com>
5951
5952 PR target/66776
5953 * config/aarch64/aarch64.md (cmovdi_insn_uxtw): New pattern.
5954
5955 2015-10-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5956
5957 PR rtl-optimization/67786
5958 PR rtl-optimization/67787
5959 * ifcvt.c (bb_valid_for_noce_process_p): Reject basic block if
5960 it modifies a reg used in the condition calculation.
5961
5962 2015-10-02 James Greenhalgh <james.greenhalgh@arm.com>
5963
5964 * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Add
5965 alternatives for reads from memory and moves from general-purpose
5966 registers.
5967 (*aarch64_combinez_be<mode>): Likewise.
5968
5969 2015-10-02 Kai Tietz <ktietz70@googlemail.com>
5970
5971 PR target/51726
5972 * config/i386/winnt.c (ix86_handle_selectany_attribute): Handle
5973 selectany within this function without need to keep attribute.
5974 (i386_pe_encode_section_info): Remove selectany-code.
5975
5976 2015-10-02 Richard Biener <rguenther@suse.de>
5977
5978 * tree-ssa-sccvn.c (has_VN_INFO): New function.
5979 (free_scc_vn): Use it.
5980 (visit_use): Remove dead code and refactor to use gassign
5981 and use less indentation.
5982
5983 2015-10-01 Segher Boessenkool <segher@kernel.crashing.org>
5984
5985 PR target/67788
5986 PR target/67789
5987 * config/rs6000/rs6000.c (TARGET_CANNOT_COPY_INSN_P): New.
5988 (rs6000_cannot_copy_insn_p): New function.
5989 * config/rs6000/rs6000.md (cannot_copy): New attribute.
5990 (load_toc_v4_PIC_1_normal): Set cannot_copy.
5991 (load_toc_v4_PIC_1_476): Ditto.
5992
5993 2015-10-01 Aditya Kumar <aditya.k7@samsung.com>
5994
5995 * graphite-scop-detection.c (struct sese_l): New conversion constructor
5996 so that this type can be pushed into a vec.
5997 (class scop_builder): use sese_l to collect scops.
5998 (get_scops): New getter function.
5999 (remove_intersecting_scops): Use sese_l instead of scops_p.
6000 (intersects): Same.
6001 (add_scop): Same.
6002 (subsumes): Same.
6003 (remove_subscops): Same.
6004 (build_scops): Add scops to vec<scops_p> once all the scops have been
6005 detected.
6006
6007 2015-10-01 Aditya Kumar <aditya.k7@samsung.com>
6008
6009 * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
6010 Renamed type from gimple_bb_p to gimple_poly_bb_p.
6011 (translate_isl_ast_node_user): Same.
6012 * graphite-poly.c (new_poly_bb): Same.
6013 * graphite-poly.h (gbb_from_bb): Same.
6014 * sese.h: Same.
6015 * graphite-sese-to-poly.c (new_gimple_bb):
6016 gimple_bb_p -> gimple_poly_bb_p
6017 (build_scop_scattering): Same.
6018 (find_params_in_bb): Same.
6019 (add_conditions_to_domain): Same.
6020 (sese_dom_walker::before_dom_children): Same.
6021 (analyze_drs_in_stmts): Same.
6022 (new_pbb_from_pbb): Same.
6023 (free_data_refs_aux): New pointer to type base_alias_pair.
6024 * graphite-sese-to-poly.h: Same.
6025 * sese.c (if_region_set_false_region): Fixed Indentation.
6026 (move_sese_in_condition): Same.
6027
6028 2015-10-01 Sebastian Pop <s.pop@samsung.com>
6029 Aditya Kumar <aditya.k7@samsung.com>
6030
6031 PR tree-optimization/66980
6032 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Return false
6033 when data reference analysis has failed.
6034
6035 2015-10-01 Sebastian Pop <s.pop@samsung.com>
6036 Aditya Kumar <aditya.k7@samsung.com>
6037
6038 PR tree-optimization/67754
6039 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Call
6040 scev analysis on the same loop nest as analyze_drs_in_stmts.
6041 * graphite-sese-to-poly.c (outermost_loop_in_sese_1): Moved and
6042 renamed...
6043 (try_generate_gimple_bb): Call outermost_loop_in_sese.
6044 (analyze_drs_in_stmts): Same.
6045 * sese.c (outermost_loop_in_sese): ...here.
6046
6047 2015-10-01 Sebastian Pop <s.pop@samsung.com>
6048 Aditya Kumar <aditya.k7@samsung.com>
6049
6050 PR tree-optimization/67754
6051 * graphite-scop-detection.c (loop_body_is_valid_scop): Add missing
6052 recursion on the inner loops.
6053
6054 2015-10-01 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6055
6056 * cfganal.c, compare-elim.c, coverage.c, cprop.c, df-scan.c,
6057 function.c, read-rtl.c, statistics.c, trans-mem.c, tree-if-conv.c,
6058 tree-into-ssa.c, tree-loop-distribution.c, tree-ssa-coalesce.c,
6059 tree-ssa-loop-ivopts.c, tree-ssa-reassoc.c, tree-ssa-strlen.c,
6060 tree-ssa-tail-merge.c, tree-vrp.c, var-tracking.c: Remove
6061
6062 2015-10-01 Marek Polacek <polacek@redhat.com>
6063
6064 PR c/65345
6065 * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Adjust to use
6066 create_tmp_var_raw rather than create_tmp_var.
6067
6068 2015-10-01 Marek Polacek <polacek@redhat.com>
6069
6070 PR tree-optimization/67769
6071 * tree-ssa-phiopt.c (conditional_replacement): Call
6072 reset_flow_sensitive_info_in_bb.
6073 (minmax_replacement): Likewise.
6074 (abs_replacement): Likewise.
6075
6076 2015-10-01 Nathan Sidwell <nathan@codesourcery.com>
6077
6078 * builtins.c: Don't include gomp-constants.h.
6079 (fold_builtin_1): Don't fold acc_on_device here.
6080 * gimple-fold.c: Include gomp-constants.h.
6081 (gimple_fold_builtin_acc_on_device): New.
6082 (gimple_fold_builtin): Call it.
6083
6084 2015-10-01 H.J. Lu <hongjiu.lu@intel.com>
6085
6086 * config/i386/x86-tune.def (X86_TUNE_USE_BT): Enable for Lakemont.
6087 (X86_TUNE_ZERO_EXTEND_WITH_AND): Disable for Lakemont.
6088
6089 2015-10-01 James Greenhalgh <james.greenhalgh@arm.com>
6090
6091 * config/arm/aarch-common-protos.h
6092 (aarch_accumulator_forwarding): New.
6093 (aarch_forward_to_shift_is_not_shifted_reg): Likewise.
6094 * config/arm/aarch-common.c (aarch_accumulator_forwarding): New.
6095 (aarch_forward_to_shift_is_not_shifted_reg): Likewise.
6096 * config/arm/cortex-a53.md: Rewrite.
6097
6098 2015-10-01 Richard Biener <rguenther@suse.de>
6099
6100 * gimple-match.h (mprts_hook): Declare.
6101 * gimple-match.head.c (mprts_hook): Define.
6102 (maybe_push_res_to_seq): Use new hook.
6103 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
6104 * tree-ssa-sccvn.h (vn_ssa_aux::expr): Change to a gimple_seq.
6105 (vn_ssa_aux::has_constants): Remove.
6106 * tree-ssa-sccvn.c: Include gimple-match.h.
6107 (VN_INFO_GET): Assert we don't re-use SSA names.
6108 (vn_get_expr_for): Remove.
6109 (expr_has_constants): Likewise.
6110 (stmt_has_constants): Likewise.
6111 (simplify_binary_expression): Likewise.
6112 (simplify_unary_expression): Likewise.
6113 (vn_lookup_simplify_result): New hook.
6114 (visit_copy): Adjust.
6115 (visit_reference_op_call): Likewise.
6116 (visit_phi): Likewise.
6117 (visit_use): Likewise.
6118 (process_scc): Likewise.
6119 (init_scc_vn): Likewise.
6120 (visit_reference_op_load): Likewise. Use match-and-simplify and
6121 a gimple seq for inserted expressions.
6122 (try_to_simplify): Remove GENERIC stmt combining code.
6123 (sccvn_dom_walker::before_dom_children): Use match-and-simplify.
6124 * tree-ssa-pre.c (eliminate_insert): Adjust.
6125 (eliminate_dom_walker::before_dom_children): Likewise.
6126
6127 2015-10-01 Segher Boessenkool <segher@kernel.crashing.org>
6128
6129 * doc/invoke.texi (Optimization Options): Add
6130 -freorder-blocks-algorithm=.
6131 (Optimize Options) <-O>: Add -freorder-blocks.
6132 <-O2>: Remove -freorder-blocks. Add -freorder-blocks-algorithm=stc.
6133 <-Os>: Add -freorder-blocks-algorithm=stc as not enabled.
6134 <-freorder-blocks>: Also enabled at levels -O and -Os.
6135 <-freorder-blocks-algorithm=>: Document new option.
6136
6137 2015-10-01 Segher Boessenkool <segher@kernel.crashing.org>
6138
6139 * bb-reorder.c (reorder_basic_blocks): Use the algorithm selected
6140 with flag_reorder_blocks_algorithm.
6141 * common.opt (freorder-blocks-algorithm=): New flag.
6142 (reorder_blocks_algorithm): New enum.
6143 * flag-types.h (reorder_blocks_algorithm): New enum.
6144 * opts.c (default_options_table): Use -freorder-blocks at -O1 and up,
6145 and -freorder-blocks-algorithm=stc at -O2 and up (not at -Os).
6146
6147 2015-10-01 Segher Boessenkool <segher@kernel.crashing.org>
6148
6149 * bb-reorder.c: Add intro comment.
6150 (reorder_basic_blocks_software_trace_cache): Print a header to
6151 the dump file.
6152 (edge_order): New function.
6153 (reorder_basic_blocks_simple): New function.
6154 (reorder_basic_blocks): Choose between the STC and the simple
6155 algorithms (always choose the former).
6156
6157 2015-10-01 Segher Boessenkool <segher@kernel.crashing.org>
6158
6159 * bb-reorder.c (reorder_basic_blocks_software_trace_cache): New
6160 function, factored out from ...
6161 (reorder_basic_blocks): ... here.
6162
6163 2015-10-01 Tom de Vries <tom@codesourcery.com>
6164
6165 * tree-cfg.c (dump_function_to_file): Dump function attributes using
6166 __attribute__(()) string. Move dumping of function attributes to before
6167 function name.
6168
6169 2015-10-01 Lynn Boger <laboger@linux.vnet.ibm.com>
6170
6171 PR target/66870
6172 * config/rs6000/sysv4.h (TARGET_CAN_SPLIT_STACK_64BIT): Define.
6173 * configure.ac: Define HAVE_GOLD_ALTERNATE_SPLIT_STACK on Power
6174 based on gold linker version.
6175 * gcc.c: Add -fuse-ld=gold to STACK_SPLIT_SPEC if
6176 HAVE_GOLD_ALTERNATE_SPLIT_STACK defined.
6177 * configure, config.in: Regenerate.
6178
6179 2015-10-01 Alan Modra <amodra@gmail.com>
6180
6181 * config/rs6000/rs6000.c (rs6000_emit_prologue): Don't set
6182 r2_setup_needed when TARGET_SINGLE_PIC_BASE.
6183 (rs6000_output_mi_thunk): Likewise.
6184
6185 2015-09-30 Nathan Sidwell <nathan@codesourcery.com>
6186
6187 * config/nvptx/mkoffload.c (process): Change offload data format.
6188
6189 2015-09-30 Jeff Law <law@redhat.com>
6190
6191 * tree-ssa-dom.c (optimize_stmt): Collapse control flow statements
6192 with constant conditions.
6193 * tree-ssa-threadupdate.c (remove_jump_threads_starting_at): New.
6194 (remove_ctrl_stmt_and_useless_edges): No longer static.
6195 * tree-ssa-threadupdate.h (remove_jump_threads_starting_at): Prototype.
6196 (remove_ctrl_stmt_and_useless_edges): Likewise.
6197
6198 2015-09-30 Nathan Sidwell <nathan@codesourcery.com>
6199 Cesar Philippidis <cesar@codesourcery.com>
6200
6201 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): New.
6202 (TARGET_GOACC_VALIDATE_DIMS): Override.
6203 * target.def (TARGET_GOACC): New target hook prefix.
6204 (validate_dims): New hook.
6205 * targhooks.h (default_goacc_validate_dims): New.
6206 * omp-low.c (oacc_validate_dims): New.
6207 (execute_oacc_device_lower): New.
6208 (default_goacc_validate_dims): New.
6209 (pass_data_oacc_device_lower): New.
6210 (pass_oacc_device_lower): New pass.
6211 (make_pass_oacc_device_lower): New.
6212 * tree-pass.h (make_pass_oacc_device_lower): Declare.
6213 * passes.def (pass_oacc_device_lower): Add it.
6214 * doc/tm.texi: Rebuilt.
6215 * doc/tm.texi.in (TARGET_GOACC_VALIDATE_DIMS): Add hook.
6216 * doc/invoke.texi (oaccdevlow): Document tree dump flag.
6217
6218 2015-09-30 Bernd Edlinger <bernd.edlinger@hotmail.de>
6219
6220 PR rtl-optimization/67037
6221 * lra-constraints.c (process_addr_reg): Use copy_rtx when necessary.
6222
6223 2015-09-30 Bernd Schmidt <bernds@redhat.com>
6224
6225 * gimple-ssa.h (gimple_df): Add free_ssanames_queue field.
6226 * passes.c: Include tree-ssanames.h.
6227 (execute_function_todo): Flush the pending free SSA_NAMEs after
6228 eliminating unreachable basic blocks.
6229 * tree-ssanames.c (FREE_SSANAMES_QUEUE): new.
6230 (init_ssanames): Initialize FREE_SSANAMES_QUEUE.
6231 (fini_ssanames): Finalize FREE_SSANAMES_QUEUE.
6232 (flush_ssanames_freelist): New function.
6233 (release_ssaname_fn): Put released names on the queue.
6234 (pass_release_ssa_names::execute): Call flush_ssanames_freelist.
6235 * tree-ssanames.h (flush_ssanames_freelist): Declare.
6236
6237 2015-09-30 Thomas Schwinge <thomas@codesourcery.com>
6238
6239 * config/i386/intelmic-mkoffload.c (main): Parse "-v" flag.
6240 (generate_target_descr_file, generate_target_offloadend_file)
6241 (generate_host_descr_file, prepare_target_image): Pass it on.
6242 * config/nvptx/mkoffload.c (main): Parse "-v" flag.
6243 (compile_native, main): Pass it on.
6244 * lto-wrapper.c (compile_offload_image): Likewise.
6245
6246 2015-09-30 Thomas Schwinge <thomas@codesourcery.com>
6247 Ilya Verbin <ilya.verbin@intel.com>
6248 Andrey Turetskiy <andrey.turetskiy@intel.com>
6249
6250 * config/i386/intelmic-mkoffload.c (generate_host_descr_file)
6251 (prepare_target_image, main): Refactor argv building to use
6252 obstacks.
6253
6254 2015-09-30 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
6255
6256 * config/spu/spu-protos.h (spu_expand_atomic_op): Add prototype.
6257 * config/spu/spu.c (spu_expand_atomic_op): New function.
6258 * config/spu/spu.md (AINT): New mode iterator.
6259 (ATOMIC): New code iterator.
6260 (atomic_name, atomic_pred): New code predicates.
6261 ("atomic_load<mode>", "atomic_store<mode>"): New expanders.
6262 ("atomic_compare_and_swap<mode>", "atomic_exchange<mode>"): Likewise.
6263 (""atomic_<atomic_name><mode>", "atomic_fetch_<atomic_name><mode>",
6264 "atomic_<atomic_name>_fetch<mode>"): Likewise.
6265
6266 2015-09-30 Ilya Enkovich <enkovich.gnu@gmail.com>
6267
6268 * config/i386/i386.c (scalar_chain::analyze_register_chain): Ignore
6269 debug insns.
6270 (scalar_chain::convert_reg): Likewise.
6271
6272 2015-09-30 Richard Biener <rguenther@suse.de>
6273
6274 * builtins.c: Add comment that no new simplifications should
6275 be added here.
6276
6277 2015-09-30 Marek Polacek <polacek@redhat.com>
6278
6279 PR tree-optimization/67690
6280 * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): Call
6281 reset_flow_sensitive_info_in_bb.
6282 * tree-ssa-tail-merge.c (replace_block_by): Likewise.
6283 * tree-ssanames.c: Include "gimple-iterator.h".
6284 (reset_flow_sensitive_info_in_bb): New function.
6285 * tree-ssanames.h (reset_flow_sensitive_info_in_bb): Declare.
6286
6287 2015-09-30 Thomas Schwinge <thomas@codesourcery.com>
6288
6289 * config/i386/intelmic-mkoffload.c (target_ilp32): Remove
6290 variable, replacing it with...
6291 (offload_abi): ... this new variable. Adjust all users.
6292 * config/nvptx/mkoffload.c (target_ilp32, offload_abi): Likewise.
6293
6294 2015-09-30 Matthias Klose <doko@ubuntu.com>
6295
6296 * configure.ac: Remove extraneous ;;.
6297 * configure: Regenerate.
6298
6299 2015-09-29 James Bowman <james.bowman@ftdichip.com>
6300
6301 * config/ft32/predicates.md (ft32_imm_operand): New predicate.
6302 * config/ft32/ft32.md (movmemsi, setmemsi): Use ft32_imm_operand
6303 predicate, disallow register for operand 2.
6304
6305 2015-09-29 Aditya Kumar <aditya.k7@samsung.com>
6306
6307 * graphite-dependences.c (scop_get_dependences): Moved in down
6308 in order to be visible to its caller.
6309 * graphite-poly.h: Removed compute_deps, and extend_schedule.
6310
6311 2015-09-29 Sebastian Pop <s.pop@samsung.com>
6312 Aditya Kumar <aditya.k7@samsung.com>
6313
6314 PR tree-optimization/67754
6315 * graphite-optimize-isl.c (optimize_isl): Call
6316 isl_options_set_schedule_fuse with ISL_SCHEDULE_FUSE_MIN for ISL-14.
6317
6318 2015-09-29 Nathan Sidwell <nathan@codesourcery.com>
6319
6320 * builtins.c (expand_builtin_acc_on_device): Delete.
6321 (expand_builtin): Don't call it.
6322 (fold_builtin_1): Fold acc_on_device.
6323
6324 2015-09-29 H.J. Lu <hongjiu.lu@intel.com>
6325
6326 * config/i386/i386.c (ix86_function_arg): Fix typo in comments.
6327 (ix86_nsaved_sseregs): Likewise.
6328
6329 2015-09-29 Jeff Law <law@redhat.com>
6330
6331 * config/microblaze/microblaze.c (microblaze_version_to_int): Remove
6332 computation of unused value.
6333
6334 * config/pdp11/pdp11.c (pdp11_branch_cost): New function.
6335 * config/pdp11/pdp11.h (BRANCH_COST): Call function rather than
6336 inline macro expansion.
6337
6338 * config/i386/t-interix (winnt-stubs.o): Fix compilation rule.
6339
6340 * config/sh/sh.c (gen_shl_and): Fix undefined left shift behaviour.
6341 (gen_shl_sext): Likewise.
6342 * config/sh/sh.md (divsi3): Likewise.
6343 (imm->ext_dest_operand splitter): Likewise.
6344
6345 2015-09-29 Sebastian Pop <s.pop@samsung.com>
6346 Aditya Kumar <aditya.k7@samsung.com>
6347
6348 * graphite-sese-to-poly.c (gsi_for_phi_node): Remove.
6349 (nb_data_writes_in_bb): Remove.
6350 (split_pbb): Remove.
6351 (split_reduction_stmt): Remove.
6352 (is_reduction_operation_p): Remove.
6353 (phi_contains_arg): Remove.
6354 (follow_ssa_with_commutative_ops): Remove.
6355 (detect_commutative_reduction_arg): Remove.
6356 (detect_commutative_reduction_assign): Remove.
6357 (follow_inital_value_to_phi): Remove.
6358 (edge_initial_value_for_loop_phi): Remove.
6359 (initial_value_for_loop_phi): Remove.
6360 (used_outside_reduction): Remove.
6361 (detect_commutative_reduction): Remove.
6362 (translate_scalar_reduction_to_array_for_stmt): Remove.
6363 (remove_phi): Remove.
6364 (dr_indices_valid_in_loop): Remove.
6365 (close_phi_written_to_memory): Remove.
6366 (translate_scalar_reduction_to_array): Remove.
6367 (rewrite_commutative_reductions_out_of_ssa_close_phi): Remove.
6368 (rewrite_commutative_reductions_out_of_ssa_loop): Remove.
6369 (rewrite_commutative_reductions_out_of_ssa): Remove.
6370 (build_poly_scop): Remove call to
6371 rewrite_commutative_reductions_out_of_ssa.
6372
6373 2015-09-29 Evandro Menezes <e.menezes@samsung.com>
6374
6375 * config/arm/types.md (neon_ldp, neon_ldp_q, neon_stp, neon_stp_q):
6376 Add new insn types for vector load and store pairs.
6377 * config/arm/cortex-a53.md (cortex_a53_f_load_2reg): Add insn
6378 types "neon_ldp{,_q}".
6379 * config/arm/cortex-a57.md (neon_load_c): Add insn types
6380 "neon_ldp{,_q}".
6381 (neon_store_complex): Add insn types "neon_stp{,_q}".
6382 * config/aarch64/aarch64-simd.md (aarch64_be_movoi): Add insn types
6383 "neon_{ldp,stp}_q".
6384
6385 2015-09-29 Jeff Law <law@redhat.com>
6386
6387 * config/rx/constraints.md (Int08): Fix undefined left shift
6388 behaviour.
6389 (Sint08, Sint16, Sint24): Likewise.
6390 * config/rx/rx.c (rx_get_stack_layout): Likewise.
6391
6392 * config/rl78/rl78-expand.md (movqi): Fix undefined left shift
6393 behaviour.
6394
6395 * config/msp430/msp430.c (msp430_legitimate_constant): Fix undefined
6396 left shift behaviour.
6397 * config/msp430/constraints.md ('L' constraint): Similarly.
6398 ('Ys' constraint): Similarly.
6399
6400 2015-09-29 Richard Biener <rguenther@suse.de>
6401
6402 PR tree-optimization/67170
6403 * tree-ssa-alias.h (get_continuation_for_phi): Adjust
6404 the translate function pointer parameter to get the
6405 bool whether to disambiguate only by reference.
6406 (walk_non_aliased_vuses): Likewise.
6407 * tree-ssa-alias.c (maybe_skip_until): Adjust.
6408 (get_continuation_for_phi_1): Likewise.
6409 (get_continuation_for_phi): Likewise.
6410 (walk_non_aliased_vuses): Likewise.
6411 * tree-ssa-sccvn.c (const_parms): New bitmap.
6412 (vn_reference_lookup_3): Adjust for interface change.
6413 Disambiguate parameters pointing to readonly memory.
6414 (free_scc_vn): Free const_parms.
6415 (run_scc_vn): Initialize const_parms from a fn spec attribute.
6416
6417 2015-09-29 Richard Biener <rguenther@suse.de>
6418
6419 PR tree-optimization/67741
6420 * tree-ssa-math-opts.c (pass_cse_sincos::execute): Only recognize
6421 builtin calls with correct signature.
6422
6423 2015-09-29 Ilya Enkovich <enkovich.gnu@gmail.com>
6424
6425 PR target/65105
6426 * config/i386/i386.c: Include dbgcnt.h.
6427 (has_non_address_hard_reg): New.
6428 (convertible_comparison_p): New.
6429 (scalar_to_vector_candidate_p): New.
6430 (remove_non_convertible_regs): New.
6431 (scalar_chain): New.
6432 (scalar_chain::scalar_chain): New.
6433 (scalar_chain::~scalar_chain): New.
6434 (scalar_chain::add_to_queue): New.
6435 (scalar_chain::mark_dual_mode_def): New.
6436 (scalar_chain::analyze_register_chain): New.
6437 (scalar_chain::add_insn): New.
6438 (scalar_chain::build): New.
6439 (scalar_chain::compute_convert_gain): New.
6440 (scalar_chain::replace_with_subreg): New.
6441 (scalar_chain::replace_with_subreg_in_insn): New.
6442 (scalar_chain::emit_conversion_insns): New.
6443 (scalar_chain::make_vector_copies): New.
6444 (scalar_chain::convert_reg): New.
6445 (scalar_chain::convert_op): New.
6446 (scalar_chain::convert_insn): New.
6447 (scalar_chain::convert): New.
6448 (convert_scalars_to_vector): New.
6449 (pass_data_stv): New.
6450 (pass_stv): New.
6451 (make_pass_stv): New.
6452 (ix86_option_override): Created and register stv pass.
6453 (flag_opts): Add -mstv.
6454 (ix86_option_override_internal): Likewise.
6455 * config/i386/i386.md (SWIM1248x): New.
6456 (*movdi_internal): Add xmm to mem alternative for TARGET_STV.
6457 (and<mode>3): Use SWIM1248x iterator instead of SWIM.
6458 (*anddi3_doubleword): New.
6459 (*zext<mode>_doubleword): New.
6460 (*zextsi_doubleword): New.
6461 (<code><mode>3): Use SWIM1248x iterator instead of SWIM.
6462 (*<code>di3_doubleword): New.
6463 * config/i386/i386.opt (mstv): New.
6464 * dbgcnt.def (stv_conversion): New.
6465
6466 2015-09-29 Tom de Vries <tom@codesourcery.com>
6467
6468 * tree-cfg.c (dump_function_to_file): Dump function attributes.
6469
6470 2015-09-29 Kaz Kojima <kkojima@gcc.gnu.org>
6471
6472 PR target/67716
6473 * config/sh/sh.c (sh_override_options_after_change): New.
6474 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
6475 (sh_option_override): Move align_loops, align_jumps and
6476 align_functions handling into sh_override_options_after_change.
6477
6478 2015-09-28 Nathan Sidwell <nathan@codesourcery.com>
6479
6480 * config/nvptx/nvptx.c: Include omp-low.h and gomp-constants.h.
6481 (nvptx_record_offload_symbol): Record function execution geometry.
6482 * config/nvptx/mkoffload.c (process): Include launch geometry in
6483 function data.
6484 * omp-low.c (oacc_launch_pack): New.
6485 (replace_oacc_fn_attrib): New.
6486 (set_oacc_fn_attrib): New.
6487 (get_oacc_fn_attrib): New.
6488 (expand_omp_target): Create keyed varargs for GOACC_parallel call
6489 generation.
6490 * omp-low.h (get_oacc_fn_attrib): Declare.
6491 * builtin-types.def (DEF_FUNCTION_TyPE_VAR_6): New.
6492 (DEF_FUNCTION_TYPE_VAR_11): Delete.
6493 * tree.h (OMP_CLAUSE_EXPR): New.
6494 * omp-builtins.def (BUILT_IN_GOACC_PARALLEL): Change target fn name.
6495
6496 2015-09-28 Aditya Kumar <aditya.k7@samsung.com>
6497 Sebastian Pop <s.pop@samsung.com>
6498
6499 * sese.c (invariant_in_sese_p_rec): Remove unused variable.
6500
6501 2015-09-28 Aditya Kumar <aditya.k7@samsung.com>
6502 Sebastian Pop <s.pop@samsung.com>
6503
6504 * graphite-optimize-isl.c (optimize_isl): Use ISL_SCHEDULE_FUSE_MAX.
6505 * graphite-scop-detection.c (struct sese_l): New type.
6506 (get_entry_bb): API for getting entry bb of SESE.
6507 (get_exit_bb): API for getting exit bb of SESE.
6508 (class debug_printer): New type. Simple printer in debug mode.
6509 (trivially_empty_bb_p): New. Return true when BB is empty or
6510 contains only debug instructions.
6511 (graphite_can_represent_expr): Call scalar_evoution_in_region
6512 instead of analyze_scalar_evolution. Pass in scop instead of only
6513 the scop entry.
6514 (stmt_has_simple_data_refs_p): Pass in scop instead of only the
6515 scop entry.
6516 (stmt_simple_for_scop_p): Same.
6517 (harmful_stmt_in_bb): Same.
6518 (graphite_can_represent_loop): Deleted.
6519 (struct scopdet_info): Deleted.
6520 (scopdet_basic_block_info): Deleted.
6521 (build_scops_1): Deleted.
6522 (bb_in_sd_region): Deleted.
6523 (find_single_entry_edge): Deleted.
6524 (find_single_exit_edge): Deleted.
6525 (create_single_entry_edge): Deleted.
6526 (sd_region_without_exit): Deleted.
6527 (create_single_exit_edge): Deleted.
6528 (unmark_exit_edges): Deleted.
6529 (mark_exit_edges): Deleted.
6530 (create_sese_edges): Deleted.
6531 (build_graphite_scops): Deleted.
6532 (canonicalize_loop_closed_ssa): Recompute all dominators at the end.
6533 (build_scops): Use the new scop_builder to build scops.
6534 (dot_all_scops_1): Use the new pretty printer. Print loop father
6535 as well.
6536 (loop_body_is_valid_scop): New. Return true if loop body is a
6537 valid scop.
6538 (class scop_builder): New. Builds SCoPs for polyhedral
6539 optimizations.
6540 (scop_builder): New constructor.
6541 (static sese_l invalid_sese): sese_l with invalid edges.
6542 (get_sese): Get an sese (from a loop) if possible, invalid_sese
6543 otherwise.
6544 (get_nearest_dom_with_single_entry): Get nearest dominator of a
6545 basic_block with single entry. Return NULL if we get to the
6546 beginning of a function.
6547 (get_nearest_pdom_with_single_exit): Get nearest post-dominator of
6548 a basic_block with single exit. Return NULL if we get to the
6549 beginning of a function.
6550 (print_sese): Pretty-print SESE.
6551 (merge_sese): Merge two SESEs if possible and return the new SESE.
6552 (build_scop_depth): Start building the SCoP within a loop nest.
6553 (build_scop_breadth): Start building the SCoP at a single loop
6554 depth. Merge adjacent SESEs if valid.
6555 (can_represent_loop_1): Returns true if Graphite can represent
6556 loop inside SCoP. Helper for can_represent_loop.
6557 (can_represent_loop): Returns true if Graphite can represent LOOP
6558 and all its nested loops in SCoP.
6559 (loop_is_valid_scop): Returns true if LOOP and all its nests
6560 constitute a valid SCoP.
6561 (region_has_one_loop): Returns true of a region has only one loop.
6562 (add_scop): Add SCoP to the list of valid scops. Removes an
6563 already existing scop if it intersects with or subsumed by this one.
6564 (harmful_stmt_in_region): Returns true if SCoP has any statment
6565 which cannot be represented by Graphite.
6566 (subsumes): Returns true of SCoP S1 subsumes SCoP S2.
6567 (remove_subscops): Remove any SCoP from the list of already found
6568 SCoPs, if subsumed by S1.
6569 (intersects): Return true if region bounded by SCoPs S1 and S2
6570 intersect.
6571 (remove_intersecting_scops): Remove any SCoP which intersects with S1.
6572 * graphite.c (print_graphite_scop_statistics):
6573 (print_graphite_statistics): Print SCoP info while debugging.
6574 (graphite_initialize): Early exit in case number of loops in a
6575 function is less than PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION or
6576 basic blocks are more than PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
6577 (graphite_finalize):
6578 * params.def: Add PARAM_GRAPHITE_MIN_LOOPS_PER_FUNCTION.
6579 * sese.h (sese_loop_depth): Remove unnecessary gcc_assert.
6580 (recompute_all_dominators): Recalculate POST_DOMINATORS.
6581 * tree-cfg.c (print_loops): Print the function name while printing
6582 loops.
6583
6584 2015-09-28 Aditya Kumar <aditya.k7@samsung.com>
6585 Sebastian Pop <s.pop@samsung.com>
6586
6587 PR tree-optimization/67700
6588 * graphite-sese-to-poly.c (parameter_index_in_region): Call
6589 invariant_in_sese_p_rec.
6590 (extract_affine): Same.
6591 (rewrite_cross_bb_scalar_deps): Call update_ssa.
6592 * sese.c (invariant_in_sese_p_rec): Export. Handle vdefs and vuses.
6593 * sese.h (invariant_in_sese_p_rec): Declare.
6594
6595 2015-09-28 David Wohlferd <dw@LimeGreenSocks.com>
6596
6597 * doc/extend.texi (Asm Labels): Break out text for data vs functions.
6598
6599 2015-09-28 Jiong Wang <jiong.wang@arm.com>
6600
6601 Revert:
6602 2015-08-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6603 Jiong Wang <jiong.wang@arm.com>
6604
6605 * config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
6606 * config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
6607 (REG_CLASS_NAMES): Likewise.
6608 (REG_CLASS_CONTENTS): Likewise.
6609 * config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
6610 (aarch64_register_move_cost): Likewise.
6611 (aarch64_load_symref_appropriately): Invoke the new added pattern if
6612 possible.
6613 * config/aarch64/constraints.md (Uc0): New constraint.
6614
6615 2015-09-28 Daniel Hellstrom <daniel@gaisler.com>
6616
6617 * config/sparc/t-rtems: Remove -muser-mode. Add ut699, at697f and leon.
6618
6619 2015-09-28 David Edelsohn <dje.gcc@gmail.com>
6620
6621 * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Place
6622 SECTION_EXCLUDE in XO mapping class.
6623
6624 2015-09-28 Oleg Endo <olegendo@gcc.gnu.org>
6625
6626 PR target/54236
6627 * config/sh/predicates.md (t_reg_operand, negt_reg_operand): Allow
6628 and handle ne and eq codes.
6629 * config/sh/sh.c (sh_rtx_costs): Adjust matching of tst #imm,r0 insn.
6630 (sh_recog_treg_set_expr): Early accept negt_reg_operand. Eearly reject
6631 CONST_INT_P. Use reverse_condition.
6632 (sh_split_treg_set_expr): Likewise.
6633
6634 2015-09-28 James Greenhalgh <james.greenhalgh@arm.com>
6635
6636 * config/arm/types.md (type): Add rotate_imm.
6637 * config/aarch64/aarch64.md (*ror<mode>3_insn): Split out the
6638 ROR immediate case.
6639 (*rorsi3_insn_uxtw): Likewise.
6640 * config/aarch64/thunderx.md (thunderx_shift): Add rotate_imm.
6641 * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add rotate_imm.
6642 * config/arm/cortex-a57.md (cortex_a53_alu): Add rotate_imm.
6643
6644 2015-09-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6645
6646 PR rtl-optimization/67481
6647 * ifcvt.c (contains_ccmode_rtx_p): New function.
6648 (insn_valid_noce_process_p): Use it.
6649
6650 2015-09-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6651
6652 PR rtl-optimization/67456
6653 PR rtl-optimization/67464
6654 PR rtl-optimization/67465
6655 * ifcvt.c (noce_try_cmove_arith): Bail out if cannot conditionally
6656 move in the mode of x. Handle combination of complex and simple
6657 block pairs as well as the case when one is empty.
6658
6659 2015-09-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6660
6661 * doc/gimple.texi: Update references to gimple_statement_base.
6662 * gdbhooks.py: Likewise.
6663 * gimple.h: Likewise.
6664
6665 2015-09-28 Daniel Cederman <cederman@gaisler.com>
6666
6667 * config/sparc/driver-sparc.c: map LEON to leon3
6668
6669 2015-09-28 Daniel Cederman <cederman@gaisler.com>
6670
6671 * config/sparc/sparc.opt: Rename mask from USER_MODE to SV_MODE
6672 and make it inverse to change default
6673 * config/sparc/sync.md: Only use supervisor ASI for CASA when in
6674 supervisor mode
6675 * doc/invoke.texi: Document change of default
6676
6677 2015-09-28 Daniel Cederman <cederman@gaisler.com>
6678
6679 * config/sparc/sparc.c (sparc_function_value_regno_p): Do not return
6680 true on %f0 for a target without FPU.
6681 * config/sparc/sparc.md (untyped_call): Do not save %f0 for a target
6682 without FPU.
6683 (untyped_return): Do not load %f0 for a target without FPU.
6684
6685 2015-09-28 Andrew Pinski <apinski@cavium.com>
6686
6687 * config/aarch64/aarch64.md (prefetch):
6688 Change the predicate of operand 0 to register_operand.
6689
6690 2015-09-27 Uros Bizjak <ubizjak@gmail.com>
6691
6692 * config/i386/predicates.md (register_sse4nonimm_operand): New
6693 predicate.
6694 * config/i386/sse.md (PEXTR_MODE12): New mode iterator.
6695 (*vec_extract<mode>): Use PEXTR_MODE12 instead of VI12_128 mode.
6696 Use register_sse4nonimm_operand as operand 0 predicate.
6697 (*vec_extractv8hi_sse2): Remove insn pattern.
6698 (*vec_extract<PEXTR_MODE12:mode>_zext): Merge insn pattern from
6699 *vec_extractv8hi_zext and *vec_extractv16qi_zext patterns.
6700
6701 2015-09-27 Oleg Endo <olegendo@gcc.gnu.org>
6702 Kaz Kojima <kkojima@gcc.gnu.org>
6703
6704 PR target/67391
6705 * config/sh/sh-protos.h (sh_lra_p): Declare.
6706 * config/sh/sh.c (sh_lra_p): Make non-static.
6707 * config/sh/sh.md (addsi3): Use arith_reg_dest for operands[0] and
6708 arith_reg_operand for operands[1]. Remove TARGET_SHMEDIA case.
6709 Expand into addsi3_scr if operands[2] if needed.
6710 (*addsi3_compact): Rename to *addsi3_compact_lra. Use
6711 arith_reg_operand for operands[1]. Allow it only when LRA is enabled.
6712 (addsi3_scr, *addsi3): New insn_and_split patterns.
6713
6714 2015-09-27 Alexandre Oliva <aoliva@redhat.com>
6715
6716 PR rtl-optimization/64164
6717 PR tree-optimization/67312
6718 PR middle-end/67340
6719 PR middle-end/67490
6720 PR bootstrap/67597
6721 * cfgexpand.c (parm_in_stack_slot_p): Remove.
6722 (ssa_default_def_partition): Remove.
6723 (get_rtl_for_parm_ssa_default_def): Remove.
6724 (set_rtl): Check that RTL assignments match expectations.
6725 Loop on SUBREGs, CONCATs and PARALLELs subexprs. Set only the
6726 default def location for params and results. Record SSA names
6727 or types in REG and MEM attrs, respectively.
6728 (set_parm_rtl): New.
6729 (expand_one_ssa_partition): Drop logic that assigned MEMs with
6730 unassigned addresses.
6731 (adjust_one_expanded_partition_var): Don't accept NULL RTL on
6732 deferred stack alloc vars.
6733 (expand_used_vars): Skip partitions holding parm default defs.
6734 Move adjust_one_expanded_partition_var loop...
6735 (pass_expand::execute): ... here. Drop redundant assert.
6736 Adjust comments before the final loop over all ssa names.
6737 Require assigned rtl of parms and results to match exactly.
6738 Reset its attributes to match them, not any other variables in
6739 the same partition.
6740 (expand_debug_expr): Use entry value for PARM's default defs
6741 only iff they have zero nondebug uses.
6742 * cfgexpand.h (parm_in_stack_slot_p): Remove.
6743 (get_rtl_for_parm_ssa_default_def): Remove.
6744 (set_parm_rtl): Declare.
6745 * doc/invoke.texi: Improve wording.
6746 * explow.c (promote_decl_mode): Fix promote_function_mode for
6747 result decls not by reference.
6748 (promote_ssa_mode): Disregard BLKmode from promote_decl, and
6749 bypass TYPE_MODE to get the actual vector mode.
6750 * function.c: Include tree-dfa.h. Revert 2015-08-14's and
6751 2015-08-19's changes as follows. Drop include of
6752 basic-block.h and df.h.
6753 (rtl_for_parm): Remove.
6754 (maybe_reset_rtl_for_parm): Remove.
6755 (parm_in_unassigned_mem_p): Remove.
6756 (use_register_for_decl): Add logic for RESULT_DECLs matching
6757 assign_parms' behavior.
6758 (split_complex_args): Revert.
6759 (assign_parms_augmented_arg_list): Revert. Add comment
6760 referencing the logic above.
6761 (assign_parm_adjust_stack_rtl): Revert.
6762 (assign_parm_setup_block): Revert. Use set_parm_rtl instead
6763 of SET_DECL_RTL. Set up a REG if the parm demands so.
6764 (assign_parm_setup_reg): Revert. Consolidated SET_DECL_RTL
6765 calls into a single set_parm_rtl. Set up a temporary RTL
6766 temporarily for expand_assignment.
6767 (assign_parm_setup_stack): Revert. Use set_parm_rtl.
6768 (assign_parms_unsplit_complex): Revert. Use set_parm_rtl.
6769 (assign_bounds): Revert.
6770 (assign_parms): Revert. Use set_parm_rtl.
6771 (allocate_struct_function): Relayout result and parms of
6772 non-abstruct functions.
6773 (expand_function_start): Revert. Use set_parm_rtl. If the
6774 result is not a hard reg, create a pseudo from the promoted
6775 mode of the default def. Promote static chain mode.
6776 * tree-outof-ssa.c (remove_ssa_form): Drop unused
6777 partition_has_default_def. Set up
6778 partitions_for_parm_default_defs.
6779 (finish_out_of_ssa): Remove partition_has_default_def.
6780 Release partitions_for_parm_default_defs.
6781 * tree-outof-ssa.h (struct ssaexpand): Remove
6782 partition_has_default_def. Add
6783 partitions_for_parm_default_defs.
6784 * tree-ssa-coalesce.c: Include tree-dfa.h, tm_p.h and
6785 stor-layout.h.
6786 (build_ssa_conflict_graph): Fix conflict-detection of default
6787 defs of even unused default defs of params and results.
6788 (for_all_parms): New.
6789 (create_default_def): New.
6790 (register_default_def): New.
6791 (coalesce_with_default): New.
6792 (create_outofssa_var_map): Create default defs for all parms
6793 and results, and register their partitions. Add GIMPLE_RETURN
6794 operands as coalesce candidates with results. Add default
6795 defs of each parm or result as coalesce candidates with its
6796 other defs. Mark each result def, and each default def of
6797 parms, as used_in_copy.
6798 (gimple_can_coalesce_p): Call it. Call use_register_for_decl
6799 with the ssa names, even anonymous ones. Drop
6800 parm_in_stack_slot_p calls. Require same signedness and
6801 alignment.
6802 (coalesce_ssa_name): Add coalesce candidates for all defs of
6803 each parm and result, even unused ones.
6804 (parm_default_def_partition_arg): New type.
6805 (set_parm_default_def_partition): New.
6806 (get_parm_default_def_partitions): New.
6807 * tree-ssa-coalesce.h (get_parm_default_def_partitions): New.
6808 * tree-ssa-live.c (partition_view_init): Regard unused defs of
6809 parms and results as used.
6810 (verify_live_on_entry): Don't error out just because they're
6811 not live.
6812
6813 2015-09-26 David Edelsohn <dje.gcc@gmail.com>
6814
6815 * dwarf2out.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
6816 (HAVE_XCOFF_DWARF_EXTRAS): Default to 0 definition.
6817 (output_fde): Don't output length for debug_frame on AIX.
6818 (output_call_frame_info): Don't output length for debug_frame on AIX.
6819 (have_macinfo): Force to False for XCOFF_DEBUGGING_INFO and not
6820 HAVE_XCOFF_DWARF_EXTRAS.
6821 (add_AT_loc_list): Return early if XCOFF_DEBUGGING_INFO and not
6822 HAVE_XCOFF_DWARF_EXTRAS.
6823 (output_compilation_unit_header): Don't output length on AIX.
6824 (output_pubnames): Don't output length on AIX.
6825 (output_aranges): Delete argument. Compute length locally. Don't
6826 output length on AIX.
6827 (output_line_info): Don't output length on AIX.
6828 (dwarf2out_finish): Don't compute aranges_length.
6829 * dwarf2asm.c (XCOFF_DEBUGGING_INFO): Default 0 definition.
6830 (dw2_asm_output_nstring): Emit .byte not .ascii on AIX.
6831 * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Emit correct
6832 symbol decoration for AIX.
6833 (rs6000_xcoff_debug_unwind_info): New.
6834 (rs6000_xcoff_asm_named_section): Emit .dwsect pseudo-op
6835 for SECTION_DEBUG.
6836 (rs6000_xcoff_declare_function_name): Emit different
6837 .function pseudo-op when DWARF2_DEBUG. Don't call
6838 xcoffout_declare_function for DWARF2_DEBUG.
6839 * config/rs6000/xcoff.h (TARGET_DEBUG_UNWIND_INFO):
6840 Redefine.
6841 * config/rs6000/aix71.h: New.
6842 * configure.ac (gcc_cv_as_aix_dwloc): Check AIX as for DWARF
6843 locations support.
6844 * configure: Regenerate.
6845 * config.gcc (powerpc-ibm-aix[789]+): New stanza for AIX 7.1+ with
6846 DWARF support.
6847
6848 2015-09-26 Jeff Law <law@redhat.com>
6849
6850 * config/arc/arc.c (arc_output_addsi): Fix left shift undefined
6851 behaviour.
6852 * config/arc/constraints.md (Cca, C2a): Fix left shift undefined
6853 behaviour.
6854
6855 * config/sh/sh.h (CONST_OK_FOR_J16): Fix left shift undefined
6856 behaviour
6857
6858 * config/mips/mips.c (mips_compute_frame_info): Fix left shift
6859 undefined behaviour.
6860
6861 * config/cris/cris.md (asrandb): Fix left shift undefined
6862 behaviour.
6863 (asrandw): Likewise.
6864
6865 2015-09-25 Vladimir Makarov <vmakarov@redhat.com>
6866
6867 PR target/61578
6868 * lra-constarints.c (match_reload): Check presence of the input pseudo
6869 in the output operand.
6870
6871 2015-09-25 Tobias Burnus <burnus@net-b.de>
6872
6873 * doc/invoke.texi (-fsanitize): Minor wording tweak.
6874
6875 2015-09-25 Tobias Burnus <burnus@net-b.de>
6876
6877 * doc/invoke.texi (-fsanitize): Update URLs.
6878
6879 2015-09-25 Teresa Johnson <tejohnson@google.com>
6880
6881 * opts.c (finish_options): Unset -freorder-blocks-and-partition
6882 if not using profile.
6883
6884 2015-09-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
6885
6886 PR pretty-print/67567
6887 * pretty-print.c (pp_string): Add gcc_checking_assert.
6888 * pretty-print.h (output_buffer_append_r): Likewise.
6889
6890 2015-09-25 Oleg Endo <olegendo@gcc.gnu.org>
6891
6892 PR target/67675
6893 * config/sh/sh-mem.cc (sh_expand_cmpstr): Check alignment of addr1 and
6894 addr2 individually. Don't emit logical or insn if one is known to
6895 be aligned approriately.
6896 (sh_expand_cmpnstr): Likewise.
6897
6898 2015-09-25 Richard Sandiford <richard.sandiford@arm.com>
6899
6900 * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Force
6901 __builtin_aarch64_fp[sc]r arguments into a register.
6902
6903 2015-09-25 H.J. Lu <hongjiu.lu@intel.com>
6904
6905 * config.gcc (x86_archs): Replace lakemount with lakemont.
6906 (with_cpu): Likewise.
6907 (with_arch): Likewise.
6908 * config/i386/i386-c.c (ix86_target_macros_internal): Replace
6909 PROCESSOR_LAKEMOUNT with PROCESSOR_LAKEMONT. Replace
6910 __tune_lakemount__ with __tune_lakemont__.
6911 * config/i386/i386.c (lakemount_cost): Renamed to ...
6912 (lakemont_cost): This.
6913 (m_LAKEMOUNT): Renamed to ...
6914 (m_LAKEMONT): This.
6915 (initial_ix86_arch_features): Replace m_LAKEMOUNT with m_LAKEMONT.
6916 (processor_target_table): Replace "lakemount" with "lakemont".
6917 (processor_alias_table): Likewise.
6918 (ix86_issue_rate): Replace PROCESSOR_LAKEMOUNT with
6919 PROCESSOR_LAKEMONT.
6920 (ix86_adjust_cost): Likewise.
6921 (ia32_multipass_dfa_lookahead): Likewise.
6922 * config/i386/i386.h (processor_type): Likewise.
6923 * config/i386/x86-tune.def: Replace m_LAKEMOUNT with m_LAKEMONT.
6924 * doc/invoke.texi: Replace lakemount with lakemont. Replace
6925 Lakemount with Lakemont.
6926
6927 2015-09-24 H.J. Lu <hongjiu.lu@intel.com>
6928
6929 * config.gcc (x86_archs): Replace iamcu with lakemount.
6930 (with_cpu): Likewise.
6931 (with_arch): Likewise.
6932 * doc/invoke.texi: Likewise.
6933 * config/i386/i386-c.c (ix86_target_macros_internal): Replace
6934 PROCESSOR_IAMCU with PROCESSOR_LAKEMOUNT. Replace
6935 __tune_iamcu__ with __tune_lakemount__.
6936 * config/i386/i386.c (iamcu_cost): Renamed to ...
6937 (lakemount_cost): This.
6938 (m_IAMCU): Renamed to ...
6939 (m_LAKEMOUNT): This.
6940 (initial_ix86_arch_features): Replace m_IAMCU with m_LAKEMOUNT.
6941 (processor_target_table): Replace "iamcu" with "lakemount".
6942 (processor_alias_table): Likewise.
6943 (ix86_issue_rate): Replace PROCESSOR_IAMCU with
6944 PROCESSOR_LAKEMOUNT.
6945 (ix86_adjust_cost): Likewise.
6946 (ia32_multipass_dfa_lookahead): Likewise.
6947 * config/i386/i386.h (processor_type): Likewise.
6948 * config/i386/x86-tune.def: Replace m_IAMCU with m_LAKEMOUNT.
6949
6950 2015-09-24 John David Anglin <danglin@gcc.gnu.org>
6951
6952 * config/pa/pa-linux.h (HAVE_sync_compare_and_swapdi): Define.
6953 * config/pa/pa-protos.h (pa_maybe_emit_compare_and_swap_exchange_loop):
6954 Declare.
6955 * config/pa/pa.c (pa_init_libfuncs): Init sync libfuncs up to 8 bytes.
6956 (pa_expand_compare_and_swap_loop): New.
6957 (pa_maybe_emit_compare_and_swap_exchange_loop): New.
6958 * config/pa/pa.md (atomic_storeqi, atomic_storehi, atomic_storesi,
6959 atomic_storesf, atomic_loaddf, atomic_storedf): New expanders.
6960 (atomic_loaddf_1, atomic_storedf_1): New insn patterns.
6961 (atomic_loaddi, atomic_loaddi_1, atomic_storedi, atomic_storedi_1):
6962 Revise.
6963
6964 2015-09-24 Michael Collison <michael.collison@linaro.org>
6965
6966 PR other/57195
6967 * read-md.c (read_name): Allow mode iterators inside angle
6968 brackets in rtl expressions.
6969
6970 2015-09-24 Vladimir Makarov <vmakarov@redhat.com>
6971
6972 PR target/61578
6973 * ira-color.c (update_allocno_cost): Add parameter.
6974 (update_costs_from_allocno): Decrease conflict cost. Pass the new
6975 parameter.
6976
6977 2015-09-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
6978
6979 PR driver/67640
6980 * opts-common.c (prune_options): Discard all -fdiagnostics-color
6981 but the last one, which is moved to the front to be processed
6982 first.
6983 * opts.c (enable_warning_as_error): Reject options that do not
6984 control warnings.
6985
6986 2015-09-24 Jiong Wang <jiong.wang@arm.com>
6987
6988 * config/aarch64/aarch64.c (aarch64_print_operand): Add "CONST" support.
6989
6990 2015-09-24 Jiong Wang <jiong.wang@arm.com>
6991
6992 * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Delete.
6993 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Likewise.
6994 (aarch64_cannot_force_const_mem): Likewise.
6995 (aarch64_classify_address): Likewise.
6996 (aarch64_classify_symbolic_expression): Likewise.
6997 (aarch64_print_operand): Likewise.
6998 (aarch64_classify_symbol): Likewise.
6999 (aarch64_mov_operand_p): Likewise.
7000 * config/aarch64/predicates.md (aarch64_valid_symref): Likewise.
7001 (aarch64_mov_operand): Likewise.
7002
7003 2015-09-24 Segher Boessenkool <segher@kernel.crashing.org>
7004
7005 * config/rs6000/rs6000.c (debug_stack_info): Invert the test
7006 for info->spe_gp_size.
7007
7008 2015-09-24 Richard Biener <rguenther@suse.de>
7009
7010 PR lto/67699
7011 * lto-cgraph.c (compute_ltrans_boundary): Do not stream
7012 abstract origins.
7013
7014 2015-09-24 Thomas Schwinge <thomas@codesourcery.com>
7015
7016 * tree-object-size.c (plus_stmt_object_size)
7017 (cond_expr_object_size): Change the formal parameters from gimple
7018 to gimple *.
7019 * tree-ssa-sccvn.h (vn_nary_op_insert_stmt): Likewise.
7020 * tree-ssa-sccvn.c (vn_nary_op_insert_stmt): Make it static.
7021 * tree-ssa-sccvn.h (vn_nary_op_insert_stmt): Don't declare.
7022
7023 2015-09-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7024
7025 * configure.ac (gcc_cv_ld_pie): Check for gld >= 2.26 on Solaris.
7026 Check for ld -type pie on Solaris 11.x and 12.
7027 * configure: Regenerate.
7028 * config.in: Regenerate.
7029
7030 * gcc.c (LD_PIE_SPEC): Allow redefinition.
7031
7032 * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Define.
7033 (STARTFILE_SPEC): Use it.
7034 (ENDFILE_CRTEND_SPEC): Define.
7035 (ENDFILE_SPEC): Use it and ENDFILE_ARCH_SPEC.
7036 (SUBTARGET_EXTRA_SPECS): Add STARTFILE_CRTBEGIN_SPEC,
7037 ENDFILE_ARCH_SPEC, ENDFILE_CRTEND_SPEC.
7038 [HAVE_LD_PIE && HAVE_SOLARIS_CRTS] (LD_PIE_SPEC): Define.
7039 (!(HAVE_LD_PIE && HAVE_SOLARIS_CRTS)] (LINK_PIE_SPEC): Define.
7040 * config/i386/sol2.h (ENDFILE_SPEC): Remove.
7041 (ENDFILE_ARCH_SPEC): Define.
7042 * config/sparc/sol2.h (ENDFILE_ARCH_SPEC): Define.
7043
7044 2015-09-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7045
7046 * configure.ac (gcc_cv_solaris_crts): New test.
7047 * configure. Regenerate.
7048 * config.in: Regenerate.
7049 * config/sol2.h (STARTFILE_SPEC): Simplify, provide
7050 HAVE_SOLARIS_CRTS variant.
7051
7052 2015-09-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7053
7054 * tree-inline.h (count_insns_seq): Delete prototype.
7055 (estimate_num_insns_seq): Define prototype.
7056 * tree-inline.c (count_insns_seq): Delete.
7057 (estimate_num_insns_seq): Remove static qualifier.
7058 * tree-eh.c (decide_copy_try_finally): Replace use of count_insns_seq
7059 with estimate_num_insns_seq.
7060
7061 2015-09-24 Richard Biener <rguenther@suse.de>
7062
7063 * tree-ssa-sccvn.h (vn_reference_op_struct): Add clique and base
7064 members.
7065 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record clique
7066 and base for MEM_REF and TARGET_MEM_REF. Handle BIT_FIELD_REF
7067 offset.
7068 (ao_ref_init_from_vn_reference): Record clique and base in the
7069 built base.
7070 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise
7071
7072 2015-09-24 Richard Biener <rguenther@suse.de>
7073
7074 PR tree-optimization/48885
7075 * tree-ssa-structalias.c (visit_loadstore): Handle default defs
7076 as not including any restrict tags from other pointers.
7077
7078 2015-09-23 Thomas Schwinge <thomas@codesourcery.com>
7079
7080 * gcc.c (handle_foffload_option): Don't lose the trailing NUL
7081 character when appending to offload_targets.
7082
7083 * configure.ac (offload_targets, OFFLOAD_TARGETS): Separate
7084 offload targets by commas, not colons.
7085 * config.in: Regenerate.
7086 * configure: Likewise.
7087 * gcc.c (driver::maybe_putenv_COLLECT_LTO_WRAPPER): Due to that,
7088 instead of setting up the default offload targets here...
7089 (process_command): ..., do it here.
7090 libgomp/
7091 * plugin/configfrag.ac (OFFLOAD_TARGETS): Clarify that offload
7092 targets are separated by commas.
7093 * config.h.in: Regenerate.
7094
7095 2015-09-23 Thomas Schwinge <thomas@codesourcery.com>
7096 Nathan Sidwell <nathan@codesourcery.com>
7097
7098 * omp-low.h (omp_reduction_init_op): Declare.
7099 * omp-low.c (omp_reduction_init_op): New, broken out of ...
7100 (omp_reduction_init): ... here. Call it.
7101 * tree-parloops.c (initialize_reductions): Use
7102 omp_reduction_init_op.
7103
7104 2015-09-23 Richard Biener <rguenther@suse.de>
7105
7106 PR middle-end/67662
7107 * fold-const.c (fold_binary_loc): Do not reassociate two vars with
7108 undefined overflow unless they will cancel out.
7109
7110 2015-09-23 Kirill Yukhin <kirill.yukhin@intel.com>
7111
7112 * config/i386/i386.md (define_insn "*<mshift><mode>3"): Fix
7113 insn emit.
7114
7115 2015-09-23 Manuel López-Ibáñez <manu@gcc.gnu.org>
7116
7117 PR c/49655
7118 * opts.h (write_langs): Declare.
7119 * opts-global.c (write_langs): Make it extern.
7120
7121 2015-09-23 Oleg Endo <olegendo@gcc.gnu.org>
7122
7123 PR target/67391
7124 * config/sh/sh.md (addsi3, *addsi3_compact): Don't check for
7125 overlapping regs when matching the pattern.
7126
7127 2015-09-23 James Greenhalgh <james.greenhalgh@arm.com>
7128
7129 * config/aarch64/aarch64-simd.md
7130 (aarch64_float_truncate_hi_v4sf): Rewrite as an expand.
7131 (aarch64_float_truncate_hi_v4sf_le): New.
7132 (aarch64_float_truncate_hi_v4sf_be): Likewise.
7133
7134 2015-09-23 Richard Biener <rguenther@suse.de>
7135
7136 * tree-ssa-structalias.c (intra_create_variable_infos): Build
7137 representatives for all restrict qualified pointer destinations.
7138
7139 2015-09-23 Kirill Yukhin <kirill.yukhin@intel.com>
7140
7141 * config/i386/i386.md (define_code_attr mshift): New.
7142 (define_mode_iterator SWI1248_AVX512BW): Rename ...
7143 (SWI1248_AVX512BW): ... to this. Make QI enabled for TARGET_AVX512DQ
7144 only.
7145 (define_insn "*k<logic><mode>"): Use new iterator name.
7146 (define_insn "*<mshift><mode>3"): New.
7147
7148 2015-09-23 Mikhail Maltsev <maltsevm@gmail.com>
7149
7150 PR middle-end/67649
7151 * memory-block.h (memory_block_pool::allocate): Use valgrind API to
7152 mark the block as accessible.
7153
7154 2015-09-22 Segher Boessenkool <segher@kernel.crashing.org>
7155
7156 * function.c (thread_prologue_and_epilogue_insns): Delete
7157 orig_entry_edge argument to try_shrink_wrapping.
7158 * shrink-wrap.c (can_get_prologue): New function.
7159 (can_dup_for_shrink_wrapping): Also handle EDGE_CROSSING.
7160 (try_shrink_wrapping): Delete orig_entry_edge argument. Use
7161 can_get_prologue where needed. Remove code that finds a single
7162 edge for the prologue. Remove code that tests if any reg clobbered
7163 by the prologue is live on the prologue edge. Remove code that finds
7164 the new prologue edge after duplicating blocks. Make a new prologue
7165 block and edge.
7166 * shrink-wrap.h (try_shrink_wrapping): Delete orig_entry_edge argument.
7167
7168 2015-09-22 Jeff Law <law@redhat.com>
7169
7170 * config/pa/pa.h (MIN_LEGIT_64BIT_CONST_INT): Avoid undefined
7171 behavior.
7172
7173 2015-09-22 Nathan Sidwell <nathan@codesourcery.com>
7174
7175 * doc/invoke.texi (-Wmultiple-inheritance, -Wvirtual-inheritance,
7176 -Wtemplates, -Wnamespaces): Document.
7177
7178 2015-09-22 Tom de Vries <tom@codesourcery.com>
7179
7180 PR tree-optimization/67671
7181 * tree-ssa-structalias.c (create_variable_info_for_1): Handle restrict
7182 pointer references as restrict.
7183
7184 2015-09-22 Chung-Lin Tang <cltang@codesourcery.com>
7185
7186 * config/nios2/nios2.c (nios2_legitimize_address): When handling
7187 'reg + reloc' cases, allow first operand to be non-REG, and use
7188 force_reg() to enforce address pattern.
7189
7190 2015-09-22 Alexander Fomin <alexander.fomin@intel.com>
7191
7192 PR target/67480
7193 * config/i386/sse.md (define_mode_iterator VI48_AVX_AVX512F): New.
7194 (define_mode_iterator VI12_AVX_AVX512F): New.
7195 (define_insn "<mask_codefor><code><mode>3<mask_name>"): Change
7196 all iterators to VI48_AVX_AVX512F. Extract remaining modes ...
7197 (define_insn "*<code><mode>3"): ... Into new pattern using
7198 VI12_AVX_AVX512F iterators without masking.
7199
7200 2015-09-22 Kirill Yukhin <kirill.yukhin@intel.com>
7201
7202 * config.gcc: Support "skylake-avx512".
7203 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
7204 PROCESSOR_SKYLAKE_AVX512.
7205 * config/i386/i386.c (m_SKYLAKE_AVX512): Define.
7206 (processor_target_table): Add "skylake-avx512".
7207 (PTA_SKYLAKE_AVX512): Define.
7208 (ix86_option_override_internal): Add "skylake_avx512".
7209 (fold_builtin_cpu): Handle "skylake_avx512", add F_AVX512VL
7210 F_AVX512BW, F_AVX512DQ, F_AVX512ER, F_AVX512PF, F_AVX512CD.
7211 * config/i386/i386.h (TARGET_SKYLAKE_AVX512): Define.
7212 (processor_type): Add PROCESSOR_SKYLAKE_AVX512.
7213 * doc/invoke.texi (skylake-avx512): New.
7214
7215 2015-09-22 Kirill Yukhin <kirill.yukhin@intel.com>
7216
7217 * config/i386/i386.md (define_insn "kunpckhi"): Fix
7218 operand in pattern.
7219 (define_insn "kunpcksi"): Ditto.
7220 (define_insn "kunpckdi"): Ditto.
7221
7222 2015-09-22 Kirill Yukhin <kirill.yukhin@intel.com>
7223
7224 * config/i386/i386.md (define_split not/xor SWI1248x): Use
7225 iterator instead of fixed modes.
7226
7227 2015-09-22 Matthew Wahab <matthew.wahab@arm.com>
7228
7229 * config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop):
7230 Adjust declaration.
7231 * config/aarch64/aarch64.c (aarch64_emit_bic): New.
7232 (aarch64_gen_atomic_ldop): Adjust comment. Add parameter
7233 out_result. Update to support update-fetch operations.
7234 * config/aarch64/atomics.md (aarch64_atomic_exchange<mode>_lse):
7235 Adjust for change to aarch64_gen_atomic_ldop.
7236 (aarch64_atomic_<atomic_optab><mode>_lse): Likewise.
7237 (aarch64_atomic_fetch_<atomic_optab><mode>_lse): Likewise.
7238 (atomic_<atomic_optab>_fetch<mode>): Change to an expander.
7239 (aarch64_atomic_<atomic_optab>_fetch<mode>): New.
7240 (aarch64_atomic_<atomic_optab>_fetch<mode>_lse): New.
7241
7242 2015-09-22 Matthew Wahab <matthew.wahab@arm.com>
7243
7244 * config/aarch64/aarch64-protos.h
7245 (aarch64_atomic_ldop_supported_p): Declare.
7246 * config/aarch64/aarch64.c (aarch64_atomic_ldop_supported_p): New.
7247 (enum aarch64_atomic_load_op_code): New.
7248 (aarch64_emit_atomic_load_op): New.
7249 (aarch64_gen_atomic_ldop): Update to support load-operate
7250 patterns.
7251 * config/aarch64/atomics.md (atomic_<atomic_optab><mode>): Change
7252 to an expander.
7253 (aarch64_atomic_<atomic_optab><mode>): New.
7254 (aarch64_atomic_<atomic_optab><mode>_lse): New.
7255 (atomic_fetch_<atomic_optab><mode>): Change to an expander.
7256 (aarch64_atomic_fetch_<atomic_optab><mode>): New.
7257 (aarch64_atomic_fetch_<atomic_optab><mode>_lse): New.
7258
7259 2015-09-22 Matthew Wahab <matthew.wahab@arm.com>
7260
7261 * config/aarch64/aarch64/atomics.md (UNSPECV_ATOMIC_LDOP): New.
7262 (UNSPECV_ATOMIC_LDOP_OR): New.
7263 (UNSPECV_ATOMIC_LDOP_BIC): New.
7264 (UNSPECV_ATOMIC_LDOP_XOR): New.
7265 (UNSPECV_ATOMIC_LDOP_PLUS): New.
7266 (ATOMIC_LDOP): New.
7267 (atomic_ldop): New.
7268 (aarch64_atomic_load<atomic_ldop><mode>): New.
7269
7270 2015-09-22 Matthew Wahab <matthew.wahab@arm.com>
7271
7272 * config/aarch64/aarch64.md
7273 (<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Make a named
7274 pattern.
7275
7276 2015-09-22 Matthew Wahab <matthew.wahab@arm.com>
7277
7278 * config/aarch64/aarch64-protos.h (aarch64_gen_atomic_ldop):
7279 Declare.
7280 * config/aarch64/aarch64.c (aarch64_emit_atomic_swap): New.
7281 (aarch64_gen_atomic_ldop): New.
7282 (aarch64_split_atomic_op): Fix whitespace and add a comment.
7283 * config/aarch64/atomics.md (UNSPECV_ATOMIC_SWP): New.
7284 (aarch64_compare_and_swap<mode>_lse): Fix some whitespace.
7285 (atomic_exchange<mode>): Replace with an expander.
7286 (aarch64_atomic_exchange<mode>): New.
7287 (aarch64_atomic_exchange<mode>_lse): New.
7288 (aarch64_atomic_<atomic_optab><mode>): Fix some whitespace.
7289 (aarch64_atomic_swp<mode>): New.
7290
7291 2015-09-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
7292
7293 * tree-inline.c (expand_call_inline): Use inform for extra note.
7294 Do not give a note with UNKNOWN_LOCATION.
7295 Replace input_location with gimple_location (stmt).
7296 Use true/false instead of TRUE/FALSE.
7297
7298 2015-09-22 Tom de Vries <tom@codesourcery.com>
7299
7300 PR tree-optimization/67666
7301 * tree-ssa-structalias.c (create_variable_info_for_1): Handle struct
7302 with single field non-conservative.
7303
7304 2015-09-21 David S. Miller <davem@davemloft.net>
7305
7306 PR/67622
7307 Revert:
7308 2015-09-11 David S. Miller <davem@davemloft.net>
7309
7310 * config/sparc/constraints.md: Make "U" constraint a real register
7311 constraint.
7312 * config/sparc/sparc.c (TARGET_LRA_P): Define.
7313 (D_MODES, DF_MODES): Add missing cast.
7314 (TF_MODES, TF_MODES_NO_S): Include T_MODE.
7315 (OF_MODES, OF_MODES_NO_S): Include O_MODE.
7316 (sparc_register_move_cost): Decrease Niagara/UltrsSPARC memory
7317 cost to 8.
7318 * config/sparc/sparc.h (PROMOTE_MODE): Define.
7319 * config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
7320 provide these insn when flag_pic.
7321
7322 2015-09-17 David S. Miller <davem@davemloft.net>
7323
7324 * config/sparc/sparc-protos.h (sparc_secondary_memory_needed):
7325 Declare.
7326 * config/sparc/sparc.c (sparc_secondary_memory_needed): New
7327 function.
7328 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Use it.
7329 (HARD_REGNO_CALLER_SAVE_MODE): Define.
7330 * config/sparc/sparc.md (sethi_di_medlow, losum_di_medlow, seth44)
7331 (setm44, setl44, sethh, setlm, sethm, setlo, embmedany_sethi)
7332 (embmedany_losum, embmedany_brsum, embmedany_textuhi)
7333 (embmedany_texthi, embmedany_textulo, embmedany_textlo): Do not
7334 provide when flag_pic.
7335
7336 2015-09-21 Jeff Law <law@redhat.com>
7337
7338 * config/h8300/h8300.md (andsi3_ashift_n_lower): Avoid undefined
7339 behavior.
7340
7341 2015-09-21 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7342
7343 * config/spu/spu.c (spu_expand_insv): Avoid undefined behavior.
7344
7345 2015-09-21 Richard Biener <rguenther@suse.de>
7346
7347 * passes.c (rest_of_decl_compilation): Do not call
7348 dwarf2out_early_global_decl for aliases.
7349
7350 2015-09-21 Richard Biener <rguenther@suse.de>
7351
7352 PR debug/67664
7353 * dwarf2out.c (add_location_or_const_value_attribute): Remove
7354 attribute parameter. Early exit if either DW_AT_const_value
7355 or DW_AT_location are present already.
7356 (gen_variable_die): Adjust caller.
7357 (dwarf2out_late_global_decl): Likewise.
7358
7359 2015-09-21 Oleg Endo <olegendo@gcc.gnu.org>
7360
7361 PR target/67657
7362 * config/sh/sh.c (sh_remove_overlapping_post_inc,
7363 sh_peephole_emit_move_insn): Add new functions.
7364 * config/sh/sh-protos.h (sh_remove_overlapping_post_inc,
7365 sh_peephole_emit_move_insn): Declere them.
7366 * config/sh/sh.md: Use them in various peephole2 patterns.
7367
7368 2015-09-21 Richard Biener <rguenther@suse.de>
7369
7370 PR middle-end/67651
7371 * rtlanal.c (nonzero_address_p): SYMBOL_REFs may have zero
7372 address with -fno-delete-null-pointer-checks.
7373
7374 2015-09-21 Alan Lawrence <alan.lawrence@arm.com>
7375
7376 * config/rs6000/altivec.md (reduc_splus_<mode>): Rename to...
7377 (reduc_plus_scal_<mode>): ...this, add rs6000_expand_vector_extract.
7378 (reduc_uplus_v16qi): Remove.
7379
7380 * config/rs6000/vector.md (VEC_reduc_name): Change "splus" to "plus".
7381 (reduc_<VEC_reduc_name>_v2df): Remove.
7382 (reduc_<VEC_reduc_name>_v4sf): Remove.
7383 (reduc_<VEC_reduc:VEC_reduc_name>_scal_<VEC_F:name>): New.
7384
7385 * config/rs6000/vsx.md (vsx_reduc_<VEC_reduc_name>_v2df): Declare
7386 gen_ function by removing * prefix.
7387 (vsx_reduc_<VEC_reduc_name>_v4sf): Likewise.
7388
7389 2015-09-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
7390
7391 PR middle-end/60832
7392 * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
7393 Print i_bound without converting it to a tree.
7394
7395 2015-09-21 Bilyan Borisov <bilyan.borisov@arm.com>
7396
7397 * config/arm/arm.c (thumb_output_move_mem_multiple): Replaced
7398 operands[4] operands[5] swap with std::swap, removed tmp variable.
7399 (arm_evpc_neon_vzip): Replaced in0/in1 and
7400 out0/out1 swaps with std::swap, removed x variable.
7401 (arm_evpc_neon_vtrn): Replaced in0/int1 and
7402 out0/out1 swaos with std::swap, removed x variable.
7403 (arm_expand_vec_perm_const_1): Replaced
7404 d->op0/d->op1 swap with std::swap, removed x variable.
7405 (arm_evpc_neon_vuzp): Replaced in0/in1 and
7406 out0/out1 swaps with std::swap, removed x variable.
7407
7408 2015-09-21 Jonathan Yong <10walls@gmail.com>
7409
7410 * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
7411 sysroot/usr/lib/32api for additional win32 libraries,
7412 fixes failing Cygwin bootstrapping.
7413
7414 2015-09-21 Oleg Endo <olegendo@gcc.gnu.org>
7415
7416 * doc/invoke.texi (SH Options): Undocument SH5/SH64 related options.
7417
7418 2015-09-21 Oleg Endo <olegendo@gcc.gnu.org>
7419
7420 PR target/67126
7421 * config/sh/sh.md (*reg_lsb_t): Emit bld insn on SH2A.
7422 (*mov_t_msb_neg): Rewrite negc pattern.
7423
7424 2015-09-20 Wilco Dijkstra <wdijkstr@arm.com>
7425
7426 * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Cleanup
7427 immediate generation code.
7428
7429 2015-09-20 Wilco Dijkstra <wdijkstr@arm.com>
7430
7431 * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Remove
7432 redundant immediate generation code.
7433
7434 2015-09-20 Wilco Dijkstra <wdijkstr@arm.com>
7435
7436 * config/aarch64/aarch64.c (aarch64_bitmasks): Remove.
7437 (AARCH64_NUM_BITMASKS): Remove.
7438 (aarch64_bitmasks_cmp): Remove.
7439 (aarch64_build_bitmask_table): Remove.
7440
7441 2015-09-20 Wilco Dijkstra <wdijkstr@arm.com>
7442
7443 * config/aarch64/aarch64.c (aarch64_internal_mov_immediate): Replace
7444 slow immediate matching loops with a faster algorithm.
7445
7446 2015-09-20 Wilco Dijkstra <wdijkstr@arm.com>
7447
7448 * config/aarch64/aarch64.c (aarch64_bitmask_imm): Reimplement using
7449 faster algorithm.
7450
7451 2015-09-20 Jeff Law <law@redhat.com>
7452
7453 PR tree-optimization/47679
7454 * tree-ssa-dom.c (record_temporary_equivalences): No longer static.
7455 * tree-ssa-dom.h (record_temporary_equivalences): Add prototype.
7456 * tree-ssa-threadedge.c: Include tree-ssa-dom.h.
7457 (thread_through_normal_block): Use record_temporary_equivalences.
7458
7459 2015-09-19 Trevor Saunders <tbsaunde@tbsaunde.org>
7460
7461 * coretypes.h (gimple): Change typedef to be a forward declaration.
7462 * gimple.h (gimple_statement_base): rename to gimple.
7463 * (all functions and types using gimple): Adjust.
7464 * *.[ch]: Likewise.
7465
7466 2015-09-19 Andrew Dixie <andrewd@gentrack.com>
7467 David Edelsohn <dje.gcc@gmail.com>
7468
7469 * config/rs6000/xcoff.h (EH_FRAME_IN_DATA_SECTION): Delete.
7470 (ASM_PREFERRED_EH_DATA_FORMAT): Define.
7471 (EH_FRAME_THROUGH_COLLECT2): Define.
7472 (EH_TABLES_CAN_BE_READ_ONLY): Define.
7473 (ASM_OUTPUT_DWARF_PCREL): Define.
7474 (ASM_OUTPUT_DWARF_DATAREL): Define.
7475
7476 2015-09-19 John David Anglin <danglin@gcc.gnu.org>
7477
7478 * config/pa/pa.c (pa_function_ok_for_sibcall): Remove special treatment
7479 of TARGET_ELF32.
7480
7481 2015-09-18 Jeff Law <law@redhat.com>
7482
7483 PR tree-optimization/47679
7484 * tree-ssa-dom.c (avail_exprs_stack): No longer file scoped. Move
7485 it here ...
7486 (dom_opt_dom_walker): New private member holding the avail_exprs_stack
7487 object. Update constructor.
7488 (pass_dominator::execute): Corresponding chagnes to declaration
7489 and initialization of avail_exprs_stack. Update constructor call
7490 for dom_opt_dom_walker object.
7491 (lookup_avail_expr, record_cond): Accept additional argument. Pass
7492 it down to children as needed.
7493 (record_equivalences_from_incoming_edge): Likewise.
7494 (eliminate_redundant_computations): Likewise.
7495 (record_equivalences_from_stmt): Likewise.
7496 (simplify_stmt_for_jump_threading): Likewise.
7497 (record_temporary_equivalences): Likewise.
7498 (optimize_stmt): Likewise.
7499 (dom_opt_dom_walker::thread_across_edge): Update access to
7500 avail_exprs_stack object and pass it to children as needed.
7501 (dom_opt_dom_walker::before_dom_children): Similarly.
7502 (dom_opt_dom_walker::after_dom_children): Similarly.
7503 * tree-ssa-threadedge.c (pfn_simplify): New typedef.
7504 (record_temporary_equivalences_from_stmts_at_dest): Use new typedef.
7505 Add avail_expr_stack argument. Pass it to children as needed.
7506 (dummy_simplify): Likewise.
7507 (simplify_control_stmt_condition): Likewise.
7508 (thread_around_empty_blocks): Likewise.
7509 (thread_through_normal_block): Likewise.
7510 (thread_across_edge): Likewise.
7511 * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
7512 * tree-vrp.c (simplify_stmt_for_jump_threading): Update.
7513
7514 PR tree-optimization/47679
7515 * tree-ssa-dom.c (const_and_copies): No longer file scoped. Move
7516 it here ...
7517 (dom_opt_dom_walker): New private member holding the const_and_copies
7518 object. Update constructor.
7519 (pass_dominator::execute): Corresponding changes to declaration
7520 and initialization of const_and_copies. Update constructor call
7521 for the dom_opt_dom_walker object.
7522 (record_temporary_equivalences): Accept const_and_copies argument
7523 pass it down to children as needed.
7524 (record_equality): Likewise.
7525 (record_equivalences_from_incoming_edge): Likewise.
7526 (cprop_into_successor_phis, optimize_stmt): Likewise.
7527 (eliminate_redundant_computations): Likewise.
7528 (dom_opt_dom_walker::thread_across_edge): Update access to
7529 const_and_copies object and pass it to children as needed.
7530 (dom_opt_dom_walker::before_dom_children): Similarly.
7531 (dom_opt_dom_walker::after_dom_children): Similarly.
7532
7533 PR tree-optimization/47679
7534 * tree-ssa-dom.c (avail_exprs): No longer file scoped. Bury
7535 it into the avail_exprs_stack class.
7536 (pass_dominator::execute): Corresponding changes to declaration
7537 and initialization of avail_exprs. Pass avail_exprs to
7538 dump_dominator_optimization_stats.
7539 (record_cond): Extract avail_exprs from avail_exprs_stack.
7540 (lookup_avail_expr): Similarly.
7541 (htab_staticstics): Remove unnecessary prototype. Move to earlier
7542 position in file.
7543 (dump_dominator_optimization_stats): Make static and prototype.
7544 Add argument for the hash table to dump.
7545 (debug_dominator_optimization_stats): Remove.
7546 * tree-ssa-dom.h (dump_dominator_optimization_stats): Remove
7547 prototype.
7548 (debug_dominator_optimization_stats): Similarly.
7549 * tree-ssa-scopedtables.h (class avail_exprs_stack): Add missing
7550 "void" in prototype for pop_to_marker method. Add accessor method
7551 for the underlying avail_exprs table.
7552
7553 * tree-ssa-threadedge.c: Remove trailing whitespace.
7554
7555 2014-09-18 John David Anglin <danglin@gcc.gnu.org>
7556
7557 * config/pa/pa-protos.h (pa_cint_ok_for_move): Change argument type to
7558 unsigned.
7559 (pa_ldil_cint_p): Likewise.
7560 * config/pa/pa.c (pa_cint_ok_for_move): likewise.
7561 (pa_ldil_cint_p): Likewise. Change signed casts to unsigned.
7562 Update callers.
7563 * config/pa/pa.md: Likewise.
7564
7565 2015-09-18 David Malcolm <dmalcolm@redhat.com>
7566
7567 * Makefile.in (OBJS-libcommon): Add diagnostic-show-locus.o.
7568 * diagnostic.c (adjust_line): Move to diagnostic-show-locus.c.
7569 (diagnostic_show_locus): Likewise.
7570 (diagnostic_print_caret_line): Likewise.
7571 * diagnostic-show-locus.c: New file.
7572
7573 2015-09-18 David Edelsohn <dje.gcc@gmail.com>
7574
7575 * dwarf2out.c (switch_to_eh_frame_section): Add ATTRIBUTE_UNUSED to
7576 "back" parameter. Declare label in #if block.
7577
7578 2015-09-18 Uros Bizjak <ubizjak@gmail.com>
7579
7580 PR middle-end/67619
7581 * except.c (expand_builtin_eh_return): Use copy_addr_to_reg to copy
7582 the address to a register.
7583
7584 2015-09-18 Jeff Law <law@redhat.com>
7585
7586 PR tree-optimization/47679
7587 * Makefile.in (OBJS): Add tree-ssa-phionlycprop.o
7588 * tree-ssa-dom.c: Remove unnecessary header includes.
7589 (remove_stmt_or_phi): Moved from here into tree-ssa-phionlycprop.c
7590 (get_rhs_or_phi_arg, get_lhs_or_phi_result): Likewise.
7591 (propagate_rhs_into_lhs, eliminate_const_or_copy): Likewise.
7592 (eliminate_degenerate_phis_1, pass_phi_only_cprop): Likewise.
7593 (pass_phi_only_cprop::execute): Likewise.
7594 (make_pass_phi_only_cprop): Likewise.
7595 * tree-ssa-phionlycprop.c: New file with moved code. Eliminate
7596 uses of file scoped statics by passing the required objects
7597 as parameters wherever needed.
7598
7599 2015-09-18 Andrew Dixie <andrewd@gentrack.com>
7600 David Edelsohn <dje.gcc@gmail.com>
7601
7602 * defaults.h (EH_FRAME_SECTION_NAME): Depend on
7603 EH_FRAME_THROUGH_COLLECT2.
7604 * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add case for
7605 DW_EH_PE_datarel.
7606 * dwarf2out.c (switch_to_eh_frame_section): Use a read-only section
7607 even if EH_FRAME_SECTION_NAME is undefined. Restrict special
7608 collect2 labels to EH_FRAME_THROUGH_COLLECT2.
7609 * except.c (switch_to_exception_section): Use a read-only section
7610 even if EH_FRAME_SECTION_NAME is undefined.
7611 * system.h (EH_FRAME_IN_DATA_SECTION): Poison.
7612 * collect2.c (write_c_file_stat): Provide dbase on AIX.
7613 (scan_prog_file): Don't export __dso_handle nor
7614 __gcc_unwind_dbase.
7615 * config/rs6000/aix.h (ASM_PREFERRED_EH_DATA_FORMAT): Define.
7616 (EH_TABLES_CAN_BE_READ_ONLY): Define.
7617 (ASM_OUTPUT_DWARF_PCREL): Define.
7618 (ASM_OUTPUT_DWARF_DATAREL): Define.
7619 (EH_FRAME_THROUGH_COLLECT2): Define.
7620 (EH_FRAME_IN_DATA_SECTION): Delete.
7621 * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtdbase.o.
7622 * config/rs6000/rs6000-protos.h (rs6000_asm_output_dwarf_pcrel):
7623 Declare.
7624 (rs6000_asm_output_dwarf_datarel): Declare.
7625 * config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_pcrel): New.
7626 (rs6000_aix_asm_output_dwarf_datarel): New.
7627 (rs6000_xcoff_asm_init_sections): Don't set exception_section.
7628 * config/spu/spu-elf.h (EH_FRAME_IN_DATA_SECTION): Delete.
7629 (EH_FRAME_THROUGH_COLLECT2): Define.
7630 * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Delete.
7631 (EH_FRAME_THROUGH_COLLECT2): Define.
7632 (EH_TABLES_CAN_BE_READ_ONLY): Define.
7633 * doc/tm.texi.in (EH_FRAME_IN_DATA_SECTION): Delete.
7634 (EH_FRAME_THROUGH_COLLECT2): New.
7635 (ASM_OUTPUT_DWARF_DATAREL): New.
7636 * doc/tm.texi: Regenerate.
7637
7638 2015-09-18 Richard Biener <rguenther@suse.de>
7639
7640 * dwarf2out.c (append_entry_to_tmpl_value_parm_die_table): Assert
7641 we're in early phase.
7642 (schedule_generic_params_dies_gen): Likewise.
7643 (gen_remaining_tmpl_value_param_die_attribute): Do only as much
7644 work as possible, retaining unhandled cases.
7645 (gen_scheduled_generic_parms_dies): Set early-dwarf flag and
7646 clear out generic_type_instances at the end.
7647 (dwarf2out_finish): Move call to gen_scheduled_generic_parms_dies...
7648 (dwarf2out_early_finish): ... here. Do most of
7649 gen_remaining_tmpl_value_param_die_attribute here.
7650
7651 2015-09-18 Alan Lawrence <alan.lawrence@arm.com>
7652
7653 PR tree-optimization/67283
7654 * tree-sra.c (type_consists_of_records_p): Rename to...
7655 (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
7656 (completely_scalarize_record): Rename to...
7657 (completely_scalarize): ...this, add ARRAY_TYPE case, move some code to:
7658 (scalarize_elem): New.
7659 (analyze_all_variable_accesses): Follow renamings.
7660
7661 2015-09-18 Richard Biener <rguenther@suse.de>
7662
7663 * dwarf2out.c (add_location_or_const_value_attribute): Do nothing
7664 in early-dwarf.
7665
7666 2015-09-18 Richard Biener <rguenther@suse.de>
7667
7668 PR tree-optimization/66142
7669 * fold-const.c (operand_equal_p): When OEP_ADDRESS_OF
7670 treat MEM[&x] and x the same.
7671 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Remove.
7672 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Return true
7673 when we simplified sth.
7674 (vn_reference_maybe_forwprop_address): Likewise.
7675 (valueize_refs_1): When we simplified through
7676 vn_reference_fold_indirect or vn_reference_maybe_forwprop_address
7677 set valueized_anything to true.
7678 (vn_reference_lookup_3): Use stmt_kills_ref_p to see whether
7679 one ref kills the other instead of just a offset-based test.
7680 * tree-ssa-alias.c (stmt_kills_ref_p): Use OEP_ADDRESS_OF
7681 for the operand_equal_p test to compare bases and also compare
7682 sizes.
7683
7684 2015-09-17 Christian Bruel <christian.bruel@st.com>
7685
7686 * config/arm/arm.md (*call_value_symbol): Fix operand for interworking.
7687
7688 2015-09-17 Richard Henderson <rth@redhat.com>
7689
7690 PR libstdc++/65913
7691 * builtins.c (fold_builtin_atomic_always_lock_free): Handle fake
7692 pointers that encode the alignment of the object.
7693
7694 2015-09-17 Eric Botcazou <ebotcazou@adacore.com>
7695
7696 PR rtl-optimization/66790
7697 * df-problems.c (LIVE): Amend documentation.
7698
7699 2015-09-17 Richard Sandiford <richard.sandiford@arm.com>
7700
7701 * Makefile.in (OBJS): Add optabs-libfuncs.o, optabs-query.o
7702 and optabs-tree.o.
7703 (GTFILES): Replace optabs.c with optabs-libfunc.c.
7704 * genopinit.c (main): Add an include guard to insn-opinit.h.
7705 Protect the rtx_code parts with NUM_RTX_CODE.
7706 * optabs.h: Split parts out to...
7707 * optabs-libfuncs.h, optabs-query.h, optabs-tree.h: ...these new files.
7708 * optabs.c: Split parts out to...
7709 * optabs-libfuncs.c, optabs-query.c, optabs-tree.c: ...these new files.
7710 * cilk-common.c: Include optabs-query.h rather than optabs.h.
7711 * fold-const.c: Likewise.
7712 * target-globals.c: Likewise.
7713 * tree-if-conv.c: Likewise.
7714 * tree-ssa-forwprop.c: Likewise.
7715 * tree-ssa-loop-prefetch.c: Likewise.
7716 * tree-ssa-math-opts.c: Include optabs-tree.h rather than optabs.h.
7717 Remove unncessary include files.
7718 * tree-ssa-phiopt.c: Likewise.
7719 * tree-ssa-reassoc.c: Likewise.
7720 * tree-switch-conversion.c: Likewise.
7721 * tree-vect-data-refs.c: Likewise.
7722 * tree-vect-generic.c: Likewise.
7723 * tree-vect-loop.c: Likewise.
7724 * tree-vect-patterns.c: Likewise.
7725 * tree-vect-slp.c: Likewise.
7726 * tree-vect-stmts.c: Likewise.
7727 * tree-vrp.c: Likewise.
7728 * toplev.c: Include optabs-query.h and optabs-libfuncs.h
7729 rather than optabs.h.
7730 * expr.c: Include optabs-tree.h.
7731 * function.c: Likewise.
7732
7733 2015-09-17 Eric Botcazou <ebotcazou@adacore.com>
7734
7735 PR middle-end/65958
7736 * config/arm/linux-elf.h (STACK_CHECK_STATIC_BUILTIN): Define.
7737 * config/arm/arm-protos.h (output_probe_stack_range): Declare.
7738 * config/arm/arm.c: Include common/common-target.h.
7739 (use_return_insn): Return 0 if the static chain register was saved
7740 above a non-APCS frame.
7741 (arm_compute_static_chain_stack_bytes): Adjust for stack checking.
7742 (struct scratch_reg): New.
7743 (get_scratch_register_on_entry): New function.
7744 (release_scratch_register_on_entry): Likewise.
7745 (arm_emit_probe_stack_range): Likewise.
7746 (output_probe_stack_range): Likewise.
7747 (arm_expand_prologue): Factor out code dealing with the IP register
7748 for nested function and adjust it for stack checking.
7749 Invoke arm_emit_probe_stack_range if static builtin stack checking
7750 is enabled.
7751 (thumb1_expand_prologue): Sorry out if static builtin stack checking
7752 is enabled.
7753 (arm_expand_epilogue): Add the saved static chain register, if any, to
7754 the amount of pre-pushed registers to pop.
7755 (arm_frame_pointer_required): Return true if static stack checking is
7756 enabled and we want to catch the exception with the EABI unwinder.
7757 * config/arm/unspecs.md (UNSPEC_PROBE_STACK): New constant.
7758 (UNSPEC_PROBE_STACK_RANGE): Likewise.
7759 * config/arm/arm.md (probe_stack): New insn.
7760 (probe_stack_range): Likewise.
7761
7762 2015-09-17 Richard Biener <rguenther@suse.de>
7763
7764 * genmatch.c (parser::parse_expr): Improve error message
7765 for mis-placed flags.
7766
7767 2015-09-17 Richard Biener <rguenther@suse.de>
7768
7769 * passes.c (rest_of_decl_compilation): Always call early_global_decl
7770 debug hook when we created a varpool node.
7771 * dwarf2out.c (dwarf2out_late_global_decl): When in LTO call
7772 dwarf2out_early_global_decl, when not just add location or
7773 value attributes to existing DIEs.
7774
7775 2015-09-17 James Greenhalgh <james.greenhalgh@arm.com>
7776
7777 * config/aarch64/aarch64.md (copysigndf3): New.
7778 (copysignsf3): Likewise.
7779
7780 2015-09-17 David S. Miller <davem@davemloft.net>
7781
7782 * config/sparc/sparc-protos.h (sparc_secondary_memory_needed): Declare.
7783 * config/sparc/sparc.c (sparc_secondary_memory_needed): New function.
7784 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED): Use it.
7785 (HARD_REGNO_CALLER_SAVE_MODE): Define.
7786 * config/sparc/sparc.md (sethi_di_medlow, losum_di_medlow, seth44)
7787 (setm44, setl44, sethh, setlm, sethm, setlo, embmedany_sethi)
7788 (embmedany_losum, embmedany_brsum, embmedany_textuhi)
7789 (embmedany_texthi, embmedany_textulo, embmedany_textlo): Do not
7790 provide when flag_pic.
7791
7792 2015-09-17 Kaz Kojima <kkojima@gcc.gnu.org>
7793
7794 * config/sh/sh.c (label_ref_list_d_pool): Adjust to
7795 object_allocator change.
7796
7797 2015-09-17 Bin Cheng <bin.cheng@arm.com>
7798
7799 PR tree-optimization/66388
7800 * tree-ssa-loop-ivopts.c (struct iv, iv_cand, ivopts_data): New fields.
7801 (dump_iv): Dump no_overflow information.
7802 (alloc_iv): Initialize new field for struct iv.
7803 (mark_bivs): Count number of no_overflow bivs.
7804 (find_deriving_biv_for_expr, record_biv_for_address_use): New
7805 functions.
7806 (idx_find_step): Call new functions above.
7807 (add_candidate_1, add_candidate): New paramter.
7808 (add_iv_candidate_for_biv): Add sizetype cand for BIV.
7809 (get_computation_aff): Simplify convertion of cand for BIV.
7810 (get_computation_cost_at): Step cand's base if necessary.
7811
7812 2015-09-17 Bin Cheng <bin.cheng@arm.com>
7813
7814 * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): New
7815 parameter.
7816 (tree_simplify_using_condition): Ditto.
7817 (simplify_using_initial_conditions): Ditto.
7818 (loop_exits_before_overflow): Pass new argument to function
7819 simplify_using_initial_conditions. Remove case for type conversions
7820 simplification.
7821 * tree-ssa-loop-niter.h (simplify_using_initial_conditions): New
7822 parameter.
7823 * tree-scalar-evolution.c (simple_iv): Simplify type conversions
7824 in iv base using loop initial conditions.
7825
7826 2015-09-16 Jeff Law <law@redhat.com>
7827
7828 PR tree-optimization/47679
7829 * tree-ssa-dom.c (free_edge_info): Factored out of free_all_edge_infos.
7830 (free_all_edge_infos): Use it.
7831 (allocate_edge_info): Free preexisting edge info data.
7832 (pass_dominator::execute): Set up initial edge info structures.
7833 (dom_opt_dom_walker::thread_across_edge): Pass avail_expr_stack to
7834 thread_across_edge.
7835 * tree-ssa-threadedge.c (thread_across_edge): Accept new argument.
7836 If non-null, then push/pop markers appropriately.
7837 * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
7838 * tree-vrp.c (identify_jump_threads): Pass NULL for new argument to
7839 thread-across_edge.
7840
7841 2015-09-16 James Bowman <james.bowman@ftdichip.com>
7842
7843 * config/ft32/ft32.c: Fix the memory address space predicate.
7844
7845 2015-09-16 Kaz Kojima <kkojima@gcc.gnu.org>
7846
7847 PR target/67573
7848 * config/sh/sh.md (call_pcrel): Add early clobber to scratch operand.
7849 (call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise.
7850
7851 2015-09-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
7852
7853 * toplev.h (check_global_declaration): Remove declaration.
7854 * toplev.c (check_global_declaration): Move to ...
7855 * cgraphunit.c: ... here. Make it static and pass a symtab_node *.
7856 (analyze_functions): Update call.
7857
7858 2015-09-16 David S. Miller <davem@davemloft.net>
7859
7860 * lra-constraints.c (simplify_operand_subreg): Do not assume that
7861 lowpart of a SUBREG has offset zero.
7862
7863 2015-09-16 Jeff Law <law@redhat.com>
7864
7865 PR tree-optimization/47679
7866 * tree-ssa-dom.c (enum expr_kind): Moved from here to
7867 tree-ssa-scopedtables.h.
7868 (struct hashable_expr, class expr_hash_elt): Likewise.
7869 (struct expr_elt_hasher, class avail_exprs_stack): Likewise.
7870 Move associated methods into tree-ssa-scopedtables.c.
7871 (avail_expr_hash, initialize_expr_from_cond): Similarly.
7872 (hashable_expr_equal_p, add_expr_commutative): Likewise.
7873 (add_hashable_expr): Likewise.
7874 (record_cond): Delete element directly.
7875 * tree-ssa-scopedtables.h (avail_expr_stack, const_and_copies): Add
7876 private copy ctor and assignment operator methods.
7877 (expr_elt_hasher): Inline trivial methods.
7878 (initialize_expr_from_cond): Prototype.
7879 * tree-ssa-scopedtables.c: Add necessary includes, functions and
7880 methods that were previously in tree-ssa-dom.c. Improve various
7881 comments.
7882
7883 2015-09-16 Paolo Carlini <paolo.carlini@oracle.com>
7884
7885 * doc/invoke.texi ([Wsubobject-linkage]): Extend documentation.
7886
7887 2015-09-16 Segher Boessenkool <segher@kernel.crashing.org>
7888
7889 PR bootstrap/67587
7890 * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
7891 fixup_partitions.
7892
7893 2015-09-16 Richard Biener <rguenther@suse.de>
7894
7895 PR middle-end/67253
7896 * cfgexpand.c (expand_gimple_stmt_1): Do not clobber
7897 location of possibly shared trees.
7898
7899 2015-09-16 Richard Biener <rguenther@suse.de>
7900
7901 PR middle-end/67271
7902 * fold-const.c (native_encode_expr): Bail out on bogus offsets.
7903
7904 2015-09-16 Eric Botcazou <ebotcazou@adacore.com>
7905
7906 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use offset_int for
7907 offset and size computations instead of HOST_WIDE_INT.
7908
7909 2015-09-16 Richard Biener <rguenther@suse.de>
7910
7911 PR middle-end/67442
7912 * fold-const.c (extract_muldiv_1): Properly extend multiplication
7913 result before builting a tree via wide_int_to_tree.
7914
7915 2015-09-16 Mikhail Maltsev <maltsevm@gmail.com>
7916
7917 * Makefile.in: Add memory-block.cc
7918 (pool_allocator::initialize): Use fixed block size.
7919 (pool_allocator::release): Use memory_block_pool.
7920 (pool_allocator::allocate): Likewise.
7921 * asan.c (asan_mem_ref_pool): Adjust to use common block size in all
7922 object pools.
7923 * cfg.c (initialize_original_copy_tables): Likewise.
7924 * cselib.c (elt_list_pool, elt_loc_list_pool,
7925 cselib_val_pool): Likewise.
7926 * df-problems.c (df_chain_alloc): Likewise.
7927 * df-scan.c (df_scan_alloc): Likewise.
7928 * dse.c (cse_store_info_pool, rtx_store_info_pool,
7929 read_info_type_pool, insn_info_type_pool, bb_info_pool,
7930 group_info_pool, deferred_change_pool): Likewise.
7931 * et-forest.c (et_nodes, et_occurrences): Likewise.
7932 * ipa-cp.c (ipcp_cst_values_pool, ipcp_sources_pool,
7933 ipcp_agg_lattice_pool): Likewise.
7934 * ipa-inline-analysis.c (edge_predicate_pool): Likewise.
7935 * ipa-profile.c (histogram_pool): Likewise.
7936 * ipa-prop.c (ipa_refdesc_pool): Likewise.
7937 * ira-build.c (live_range_pool, allocno_pool, object_pool,
7938 initiate_cost_vectors, pref_pool, copy_pool): Likewise.
7939 * ira-color.c (update_cost_record_pool): Likewise.
7940 * lra-lives.c (lra_live_range_pool): Likewise.
7941 * lra.c (lra_insn_reg_pool, lra_copy_pool): Likewise.
7942 * memory-block.cc: New file.
7943 * memory-block.h: New file.
7944 * regcprop.c (queued_debug_insn_change_pool): Use common block size.
7945 * sched-deps.c (sched_deps_init): Likewise.
7946 * sel-sched-ir.c (sched_lists_pool): Likewise.
7947 * stmt.c (expand_case, expand_sjlj_dispatch_table): Likewise.
7948 * tree-sra.c (access_pool): Likewise.
7949 * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
7950 * tree-ssa-pre.c (pre_expr_pool, bitmap_set_pool): Likewise.
7951 * tree-ssa-reassoc.c (operand_entry_pool): Likewise.
7952 * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
7953 * tree-ssa-strlen.c (strinfo_pool): Likewise.
7954 * tree-ssa-structalias.c (variable_info_pool): Likewise.
7955 * var-tracking.c (attrs_def_pool, var_pool, valvar_pool,
7956 location_chain_pool, shared_hash_pool, loc_exp_dep_pool): Likewise.
7957
7958 2015-09-15 Max Filippov <jcmvbkbc@gmail.com>
7959
7960 * config/xtensa/xtensa.h (DWARF_ALT_FRAME_RETURN_COLUMN): New
7961 definition.
7962 (DWARF_FRAME_REGISTERS): Reserve space for one extra register in
7963 call0 ABI.
7964
7965 2015-09-15 Max Filippov <jcmvbkbc@gmail.com>
7966
7967 * config/xtensa/xtensa.c (xtensa_call_tls_desc): Use a10 or a2
7968 to pass TLS call argument, according to current ABI.
7969 * config/xtensa/xtensa.md (tls_call pattern): Use callx8 or
7970 callx0 for TLS call, according to current ABI.
7971
7972 2015-09-15 Eric Botcazou <ebotcazou@adacore.com>
7973
7974 * tree-eh.c (lower_try_finally_dup_block): Clear location information
7975 on stack restore statements.
7976 (decide_copy_try_finally): Do not consider a stack restore statement as
7977 coming from sources.
7978
7979 2015-09-15 Uros Bizjak <ubizjak@gmail.com>
7980
7981 * config/alpha/alpha.c (alpha_expand_block_clear): Use
7982 HOST_WIDE_INT_M1U instead of ~(HOST_WIDE_INT)0 when shifting.
7983
7984 2015-09-15 Jeff Law <law@redhat.com>
7985
7986 PR tree-optimization/47679
7987 * tree-ssa-dom.c (expr_hash_elt): Now a class with ctors/dtors,
7988 methods and private members.
7989 (avail_exprs_stack): Similarly. Change type of global
7990 from a pair of expr_hash_elt_t to the new class.
7991 (expr_elt_hasher::hash): Corresponding changes.
7992 (expr_elt_hasher::equal): Similarly.
7993 (avail_expr_hash): Similarly.
7994 (pass_dominator::execute): Similarly.
7995 (dom_opt_dom_walker::thread_across_edge): Similarly.
7996 (record_cond): Similarly.
7997 (dom_opt_dom_walker::before_dom_children): Similarly.
7998 (dom_opt_dom_walker::after_dom_children): Similarly.
7999 (lookup_avail_expr): Likewise.
8000 (initialize_hash_element): Now a expr_hash_elt constructor.
8001 (initialize_hash_element_from_expr): Similarly.
8002 (free_expr_hash_elt_contents): Now a dtor for class expr_hash_elt.
8003 (free_expr_hash_elt): Call dtor for the element.
8004 (remove_local_expressions_from_table): Now the "pop_to_marker"
8005 method in the available_exprs_stack class.
8006 (avail_expr_stack::record_expr): Method factored out.
8007 (print_expr_hash_elt): Now a method in the expr_hash_elt class.
8008 Fix formatting.
8009 (hashable_expr_equal_p): Fix formatting.
8010
8011 2015-09-15 David Malcolm <dmalcolm@redhat.com>
8012
8013 * input.h (location_get_source_line): Drop "expanded_location"
8014 param in favor of a file and line number.
8015 * input.c (location_get_source_line): Likewise.
8016 (dump_location_info): Update for change in signature of
8017 location_get_source_line.
8018 * diagnostic.c (diagnostic_print_caret_line): Likewise.
8019
8020 2015-09-15 Eric Botcazou <ebotcazou@adacore.com>
8021
8022 * defaults.h (STACK_OLD_CHECK_PROTECT): Adjust for -fno-exceptions.
8023 Bump to 4KB for SJLJ exceptions.
8024 (STACK_CHECK_PROTECT): Likewise. Bump to 8KB for SJLJ exceptions.
8025 * doc/tm.texi.in (STACK_CHECK_PROTECT): Adjust.
8026 * doc/tm.texi: Regenerate.
8027
8028 2015-09-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8029
8030 * config/arm/arm.c (arm_gen_constant): Use HOST_WIDE_INT_M1U instead
8031 of -1 when shifting. Change type of val to unsigned HOST_WIDE_INT.
8032 Update prototype.
8033
8034 2015-09-15 Richard Biener <rguenther@suse.de>
8035
8036 PR tree-optimization/67470
8037 * tree-ssa-loop-im.c (execute_sm_if_changed): Preserve PHI
8038 structure for PHI hoisting by inserting a forwarder block
8039 if appropriate.
8040
8041 2015-09-15 Christian Bruel <christian.bruel@st.com>
8042
8043 * config/arm/arm.c (TARGET_OPTION_PRINT): Define.
8044 (arm_option_print): New function.
8045
8046 2015-09-15 Christian Bruel <christian.bruel@st.com>
8047
8048 PR target/52144
8049 * config/arm/arm.c (arm_option_params_internal): Remove opts parameter.
8050 * config/arm/arm-c.c (arm_cpu_builtins): Declare static.
8051 Remove flags parameter.
8052 * config/arm/arm.h (TARGET_32BIT_P, TARGET_ARM_QBIT_P)
8053 (TARGET_ARM_SAT_P, TARGET_IDIV_P, TARGET_HAVE_LDREX_P)
8054 (TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P, TARGET_DSP_MULTIPLY_P)
8055 (TARGET_ARM_FEATURE_LDREX_P, TARGET_INT_SIMD_P): Redefine macros with...
8056 (TARGET_ARM_SAT, TARGET_IDIV, TARGET_HAVE_LDREX)
8057 (TARGET_HAVE_LDREXBH, TARGET_HAVE_LDREXD, TARGET_ARM_FEATURE_LDREX)
8058 (TARGET_DSP_MULTIPLY, TARGET_INT_SIMD): Redefined macros.
8059 * config/arm/arm-protos.h (arm_cpu_builtins): Remove declaration.
8060
8061 2015-09-15 Alan Lawrence <alan.lawrence@arm.com>
8062
8063 * config/aarch64/aarch64.h (AARCH64_VALID_SIMD_DREG_MODE): New.
8064
8065 * config/aarch64/aarch64.c (aarch64_array_mode_supported_p): Add
8066 AARCH64_VALID_SIMD_DREG_MODE.
8067
8068 2015-09-15 Alan Lawrence <alan.lawrence@arm.com>
8069
8070 * config/aarch64/aarch64-simd.md (aarch64_ld2r<mode>,
8071 aarch64_ld3r<mode>, aarch64_ld4r<mode>): Combine together, making...
8072 (aarch64_simd_ld<VSTRUCT:nregs>r<VALLDIF:mode>): ...this.
8073 (aarch64_ld2_lane<mode>, aarch64_ld3_lane<mode>,
8074 aarch64_ld4_lane<mode>): Combine together, making...
8075 (aarch64_ld<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this.
8076 (aarch64_st2_lane<mode>, aarch64_st3_lane<mode>,
8077 aarch64_st4_lane<mode>): Combine together, making...
8078 (aarch64_st<VSTRUCT:nregs>_lane<VALLDIF:mode>): ...this.
8079 * config/aarch64/iterators.md (nregs): Add comment.
8080
8081 2015-09-15 Alan Lawrence <alan.lawrence@arm.com>
8082
8083 * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>):
8084 Change operand mode from <V_TWO_ELEM> to BLK.
8085 (aarch64_vec_load_lanesoi_lane<mode>): Likewise.
8086 (aarch64_vec_store_lanesoi_lane<mode): Likewise
8087 (aarch64_ld2r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
8088 (aarch64_ld2_lane<mode>): Likewise.
8089 (aarch64_st2_lane<VQ:mode>): Likewise.
8090 * config/aarch64/iterators.md (V_TWO_ELEM): Remove.
8091
8092 2015-09-15 Alan Lawrence <alan.lawrence@arm.com>
8093
8094 * config/aarch64/aarch64-simd.md (aarch64_simd_ld4r<mode>):
8095 Change operand mode from <V_FOUR_ELEM> to BLK.
8096 (aarch64_vec_load_lanesxi_lane<mode>): Likewise.
8097 (aarch64_vec_store_lanesxi_lane<mode): Likewise.
8098 (aarch64_ld4r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
8099 (aarch64_ld4_lane<mode>): Likewise.
8100 (aarch64_st4_lane<mode>): Likewise.
8101 * config/aarch64/iterators.md (V_FOUR_ELEM): Remove.
8102
8103 2015-09-15 Richard Biener <rguenther@suse.de>
8104
8105 PR middle-end/67563
8106 * gimple-fold.c (gimplify_and_update_call_from_tree): Do not
8107 transfer EH info from old to new stmt.
8108 (replace_call_with_value): Likewise.
8109 (replace_call_with_call_and_fold): Likewise.
8110 (gimple_fold_builtin_memory_op): Likewise.
8111 (gimple_fold_builtin_memset): Likewise.
8112 (gimple_fold_builtin_stpcpy): Likewise.
8113 (gimple_fold_call): Likewise.
8114
8115 2015-09-15 Alan Lawrence <alan.lawrence@arm.com>
8116
8117 * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist): Update
8118 comment.
8119 * config/aarch64/aarch64-builtins.c (ei_UP): Remove.
8120 (aarch64_simd_intEI_type_node): Likewise.
8121 (aarch64_simd_builtin_std_type): Remove EImode case.
8122 (aarch64_init_simd_builtin_types): Don't create/add intEI_type_node.
8123 * config/aarch64/aarch64-modes.def: Remove EImode.
8124
8125 2015-09-15 Alan Lawrence <alan.lawrence@arm.com>
8126
8127 * config/aarch64/aarch64-simd.md (aarch64_simd_ld3r<mode>):
8128 Change operand mode from <V_THREE_ELEM> to BLK.
8129 (aarch64_vec_load_lanesci_lane<mode>): Likewise.
8130 (aarch64_vec_store_lanesci_lane<mode>): Likewise.
8131 (aarch64_ld3r<mode>): Generate MEM rtx with BLKmode, call set_mem_size.
8132 (aarch64_ld3_lane<mode>): Likewise.
8133 (aarch64_st3_lane<mode>): Likewise.
8134 * config/aarch64/iterators.md (V_THREE_ELEM): Remove.
8135
8136 2015-09-15 Alan Lawrence <alan.lawrence@arm.com>
8137
8138 * config/aarch64/aarch64-simd.md
8139 (aarch64_ld2<mode>_dreg VD & DX, aarch64_st2<mode>_dreg VD & DX ):
8140 Change all TImode operands to BLKmode.
8141 (aarch64_ld3<mode>_dreg VD & DX, aarch64_st3<mode>_dreg VD & DX):
8142 Change all EImode operands to BLKmode.
8143 (aarch64_ld4<mode>_dreg VD & DX, aarch64_st4<mode>_dreg VD & DX):
8144 Change all OImode operands to BLKmode.
8145
8146 (aarch64_ld<VSTRUCT:nregs><VDC:mode>): Generate MEM rtx with BLKmode
8147 and call set_mem_size.
8148 (aarch64_st<VSTRUCT:nregs><VDC:mode>): Likewise.
8149
8150 * config/aarch64/iterators.md (VSTRUCT_DREG): Remove.
8151
8152 2015-09-15 Alan Lawrence <alan.lawrence@arm.com>
8153
8154 * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Rename
8155 to...
8156 (aarch64_vec_store_lanesoi_lane<mode>): ...this.
8157
8158 (vec_store_lanesci_lane<mode>): Rename to...
8159 (aarch64_vec_store_lanesci_lane<mode>): ...this.
8160
8161 (vec_store_lanesxi_lane<mode>): Rename to...
8162 (aarch64_vec_store_lanesxi_lane<mode>): ...this.
8163
8164 (aarch64_st2_lane<mode>, aarch64_st3_lane<mode>,
8165 aarch64_st4_lane<mode>): Follow renaming.
8166
8167 2015-09-15 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8168
8169 * config/s390/s390.c (s390_const_operand_ok): Add missing
8170 brackets.
8171
8172 2015-09-15 Richard Biener <rguenther@suse.de>
8173
8174 PR lto/67568
8175 * lto-streamer.h (lto_location_cache::current_sysp): Properly
8176 initialize.
8177 * lto-streamer-out.c (clear_line_info): Likewise.
8178
8179 2015-09-15 Richard Biener <rguenther@suse.de>
8180
8181 * doc/match-and-simplify.texi: Fix wording.
8182
8183 2015-09-15 Bin Cheng <bin.cheng@arm.com>
8184
8185 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Strip
8186 unnecessary type conversion in op1.
8187
8188 2015-09-14 Segher Boessenkool <segher@kernel.crashing.org>
8189
8190 * shrink-wrap.c (requires_stack_frame_p): Fix formatting.
8191 (dup_block_and_redirect): Delete function.
8192 (can_dup_for_shrink_wrapping): New function.
8193 (fix_fake_fallthrough_edge): New function.
8194 (try_shrink_wrapping): Rewrite function.
8195 (convert_to_simple_return): Call fix_fake_fallthrough_edge.
8196
8197 2015-09-14 Rich Felker <dalias@libc.org>
8198
8199 * configure.ac: Change target pattern for sh TLS support
8200 test from "sh[34]-*-*" to "sh[123456789lbe]*-*-*".
8201 * configure: Regenerate.
8202
8203 2015-09-14 Jeff Law <law@redhat.com>
8204
8205 PR tree-optimization/47679
8206 * tree-ssa-dom.c (avail_expr_hash): Pass a pointer to a real
8207 type rather than void *.
8208
8209 2015-09-14 Manuel López-Ibáñez <manu@gcc.gnu.org>
8210
8211 PR fortran/67460
8212 * diagnostic.c (diagnostic_initialize): Do not set
8213 some_warnings_are_errors.
8214 (diagnostic_finish): Use DK_WERROR count instead.
8215 (diagnostic_report_diagnostic): Do not set
8216 some_warnings_are_errors.
8217 * diagnostic.h (struct diagnostic_context): Remove
8218 some_warnings_are_errors.
8219
8220 2015-09-14 Richard Sandiford <richard.sandiford@arm.com>
8221
8222 * config/sparc/predicates.md (const_all_ones_operand): Use
8223 CONSTM1_RTX to simplify definition.
8224
8225 2015-09-14 Oleg Endo <olegendo@gcc.gnu.org>
8226
8227 PR target/67061
8228 * config/sh/sh-protos.h (sh_find_set_of_reg): Simplfiy for-loop.
8229 Handle call insns.
8230
8231 2015-09-14 Chung-Lin Tang <cltang@codesourcery.com>
8232
8233 * lto-wrapper.c (merge_and_complain): Add OPT_fdiagnostics_show_caret,
8234 OPT_fdiagnostics_show_option, OPT_fdiagnostics_show_location_, and
8235 OPT_fshow_column to handled saved option cases.
8236 (append_compiler_options): Do not skip the above added options.
8237
8238 2015-09-14 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8239
8240 PR target/63304
8241 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Handle
8242 nopcrelative_literal_loads.
8243 (aarch64_classify_address): Likewise.
8244 (aarch64_constant_pool_reload_icode): Define.
8245 (aarch64_secondary_reload): Handle secondary reloads for
8246 literal pools.
8247 (aarch64_override_options): Handle nopcrelative_literal_loads.
8248 (aarch64_classify_symbol): Handle nopcrelative_literal_loads.
8249 * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>):
8250 Define.
8251 (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
8252 * config/aarch64/aarch64.opt (mpc-relative-literal-loads): New option.
8253 * config/aarch64/predicates.md (aarch64_constant_pool_symref): New
8254 predicate.
8255 * doc/invoke.texi (mpc-relative-literal-loads): Document.
8256
8257 2015-09-14 John David Anglin <danglin@gcc.gnu.org>
8258
8259 PR middle-end/67401
8260 * optabs.c (expand_atomic_compare_and_swap): Move result of emitting
8261 sync_compare_and_swap_optab libcall to target_oval.
8262
8263 2015-09-14 Marek Polacek <polacek@redhat.com>
8264
8265 * rtlanal.c (split_double): Cast to unsigned when shifting a negative
8266 value.
8267 * sched-int.h (UNKNOWN_DEP_COST): Likewise.
8268
8269 2015-09-11 Mark Wielaard <mjw@redhat.com>
8270
8271 PR c/28901
8272 * toplev.c (check_global_declaration): Check and use
8273 warn_unused_const_variable.
8274 * doc/invoke.texi (Warning Options): Add -Wunused-const-variable.
8275 (-Wunused-variable): Remove non-constant. For C implies
8276 -Wunused-const-variable.
8277 (-Wunused-const-variable): New.
8278
8279 2015-09-14 Richard Biener <rguenther@suse.de>
8280
8281 * doc/match-and-simplify.texi: Update for changed syntax
8282 of inner ifs and the new switch expression.
8283
8284 2015-09-14 Yuri Rumyantsev <ysrumyan@gmail.com>
8285
8286 * config/i386/haswell.md: New file describing Haswell pipeline.
8287 * config/i386/i386.c (processor_alias_table): Use CPU_HASWELL for
8288 haswell-like processors.
8289 (ix86_reassociation_width): Increase reassociation width for 64-bit
8290 Haswell processor family.
8291 * config/i386/i386.md: Introduce haswell cpu and include new md file.
8292
8293 2015-09-14 Richard Biener <rguenther@suse.de>
8294
8295 * doc/match-and-simplify.texi: Fixup some formatting issues
8296 and document the 's' flag.
8297
8298 2015-09-13 Olivier Hainque <hainque@adacore.com>
8299 Eric Botcazou <ebotcazou@adacore.com>
8300
8301 * config.gcc (visium-*-*): Enable --with-cpu option, accept gr5 and
8302 gr6 as possible values, defaulting to gr5. Set target_cpu_default2.
8303 * config/visium/visium.h (OPTION_DEFAULT_SPECS): Define.
8304 (TARGET_CPU_gr5): Likewise.
8305 (TARGET_CPU_gr6): Likewise.
8306 (MULTILIB_DEFAULTS): Likewise.
8307 * config/visium/t-visium (MULTILIB_OPTIONS): Request distinct variants
8308 for mcpu=gr5 and mcpu=gr6.
8309 (MULTILIB_DIRNAMES): Adjust accordingly.
8310
8311 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8312
8313 * tree-ssa-loop-im.c (mem_ref_loc_p): Remove typedef.
8314 (mem_ref_p): Likewise.
8315 (outermost_indep_loop): Adjust.
8316 (mem_ref_in_stmt): Likewise.
8317 (determine_max_movement): Likewise.
8318 (mem_ref_alloc): Likewise.
8319 (record_mem_ref_loc): Likewise.
8320 (set_ref_stored_in_loop): Likewise.
8321 (mark_ref_stored): Likewise.
8322 (gather_mem_refs_stmt): Likewise.
8323 (mem_refs_may_alias_p): Likewise.
8324 (for_all_locs_in_loop): Likewise.
8325 (struct rewrite_mem_ref_loc): Likewise.
8326 (rewrite_mem_refs): Likewise.
8327 (struct first_mem_ref_loc_1): Likewise.
8328 (first_mem_ref_loc): Likewise.
8329 (struct sm_set_flag_if_changed): Likewise.
8330 (execute_sm_if_changed_flag_set): Likewise.
8331 (execute_sm): Likewise.
8332 (hoist_memory_references):
8333 (struct ref_always_accessed): Likewise.
8334 (ref_always_accessed_p): Likewise.
8335 (refs_independent_p): Likewise.
8336 (record_dep_loop): Likewise.
8337 (ref_indep_loop_p_1): Likewise.
8338 (ref_indep_loop_p_2): Likewise.
8339 (ref_indep_loop_p): Likewise.
8340 (can_sm_ref_p): Likewise.
8341 (find_refs_for_sm): Likewise.
8342 (tree_ssa_lim_finalize): Likewise.
8343
8344 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8345
8346 * dwarf2out.c (dw_attr_ref): Remove typedef.
8347 (dw_line_info_ref): Likewise.
8348 (pubname_ref): Likewise.
8349 (dw_ranges_ref): Likewise.
8350 (dw_ranges_by_label_ref): Likewise.
8351 (comdat_type_node_ref): Likewise.
8352 (get_AT): Adjust.
8353 (get_AT_low_pc): Likewise.
8354 (get_AT_hi_pc): Likewise.
8355 (get_AT_string): Likewise.
8356 (get_AT_flag): Likewise.
8357 (get_AT_unsigned): Likewise.
8358 (get_AT_ref): Likewise.
8359 (get_AT_file): Likewise.
8360 (remove_AT): Likewise.
8361 (print_die): Likewise.
8362 (check_die): Likewise.
8363 (die_checksum): Likewise.
8364 (attr_checksum_ordered): Likewise.
8365 (struct checksum_attributes): Likewise.
8366 (collect_checksum_attributes): Likewise.
8367 (die_checksum_ordered): Likewise.
8368 (same_die_p): Likewise.
8369 (is_declaration_die): Likewise.
8370 (clone_die): Likewise.
8371 (clone_as_declaration): Likewise.
8372 (copy_declaration_context): Likewise.
8373 (break_out_comdat_types): Likewise.
8374 (copy_decls_walk): Likewise.
8375 (output_location_lists): Likewise.
8376 (external_ref_hasher::hash): Likewise.
8377 (optimize_external_refs_1): Likewise.
8378 (build_abbrev_table): Likewise.
8379 (size_of_die): Likewise.
8380 (unmark_all_dies): Likewise.
8381 (size_of_pubnames): Likewise.
8382 (output_die_abbrevs): Likewise.
8383 (output_die): Likewise.
8384 (output_pubnames): Likewise.
8385 (add_ranges_num): Likewise.
8386 (add_ranges_by_labels): Likewise.
8387 (add_high_low_attributes): Likewise.
8388 (gen_producer_string): Likewise.
8389 (dwarf2out_set_name): Likewise.
8390 (new_line_info_table): Likewise.
8391 (prune_unused_types_walk_attribs): Likewise.
8392 (prune_unused_types_update_strings): Likewise.
8393 (prune_unused_types): Likewise.
8394 (resolve_addr): Likewise.
8395 (optimize_location_lists_1): Likewise.
8396 (index_location_lists): Likewise.
8397 (dwarf2out_finish): Likewise.
8398
8399 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8400
8401 * dwarf2cfi.c (dw_trace_info_ref): Remove typedef.
8402
8403 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8404
8405 * tree-vrp.c (struct assert_locus_d): Rename to assert_locus.
8406 (dump_asserts_for): Adjust.
8407 (register_new_assert_for): Likewise.
8408 (process_assert_insertions): Likewise.
8409 (insert_range_assertions): Likewise.
8410
8411 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8412
8413 * tree-ssa-ter.c (temp_expr_table_d): Rename to temp_expr_table
8414 and remove typedef.
8415 (new_temp_expr_table): Adjust.
8416 (free_temp_expr_table): Likewise.
8417 (version_to_be_replaced_p): Likewise.
8418 (make_dependent_on_partition): Likewise.
8419 (add_to_partition_kill_list): Likewise.
8420 (remove_from_partition_kill_list): Likewise.
8421 (add_dependence): Likewise.
8422 (finished_with_expr): Likewise.
8423 (process_replaceable): Likewise.
8424 (kill_expr): Likewise.
8425 (kill_virtual_exprs): Likewise.
8426 (mark_replaceable): Likewise.
8427 (find_replaceable_in_bb): Likewise.
8428 (find_replaceable_exprs): Likewise.
8429 (debug_ter): Likewise.
8430
8431 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8432
8433 * bt-load.c (struct btr_def_group): Rename from btr_def_group_s.
8434 (struct btr_user): Rename from btr_user_s.
8435 (struct btr_def): Rename from btr_def_s.
8436 (find_btr_def_group): Adjust.
8437 (add_btr_def): Likewise.
8438 (new_btr_user): Likewise.
8439 (note_other_use_this_block): Likewise.
8440 (compute_defs_uses_and_gen): Likewise.
8441 (link_btr_uses): Likewise.
8442 (build_btr_def_use_webs): Likewise.
8443 (block_at_edge_of_live_range_p): Likewise.
8444 (btr_def_live_range): Likewise.
8445 (combine_btr_defs): Likewise.
8446 (move_btr_def): Likewise.
8447 (migrate_btr_def): Likewise.
8448 (migrate_btr_defs): Likewise.
8449
8450 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8451
8452 * var-tracking.c (shared_hash_def): Rename to shared_hash.
8453 (shared_hash): Remove typedef.
8454 (struct dataflow_set): Adjust.
8455 (shared_hash_unshare): Likewise.
8456 (dataflow_set_merge): Likewise.
8457 (vt_initialize): Likewise.
8458 (vt_finalize): Likewise.
8459
8460 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8461
8462 * var-tracking.c (struct location_chain): Rename from
8463 location_chain_def.
8464 (struct variable_part): Adjust.
8465 (variable_htab_free): Likewise.
8466 (unshare_variable): Likewise.
8467 (get_init_value): Likewise.
8468 (get_addr_from_local_cache): Likewise.
8469 (drop_overlapping_mem_locs): Likewise.
8470 (val_reset): Likewise.
8471 (struct variable_union_info): Likewise.
8472 (variable_union): Likewise.
8473 (find_loc_in_1pdv): Likewise.
8474 (insert_into_intersection): Likewise.
8475 (intersect_loc_chains): Likewise.
8476 (canonicalize_loc_order_check): Likewise.
8477 (canonicalize_values_mark): Likewise.
8478 (canonicalize_values_star): Likewise.
8479 (canonicalize_vars_star): Likewise.
8480 (variable_merge_over_cur): Likewise.
8481 (remove_duplicate_values): Likewise.
8482 (variable_post_merge_new_vals): Likewise.
8483 (variable_post_merge_perm_vals): Likewise.
8484 (find_mem_expr_in_1pdv): Likewise.
8485 (dataflow_set_preserve_mem_locs): Likewise.
8486 (dataflow_set_remove_mem_locs): Likewise.
8487 (variable_part_different_p): Likewise.
8488 (onepart_variable_different_p): Likewise.
8489 (find_src_set_src): Likewise.
8490 (dump_var): Likewise.
8491 (set_slot_part): Likewise.
8492 (clobber_slot_part): Likewise.
8493 (delete_slot_part): Likewise.
8494 (vt_expand_var_loc_chain): Likewise.
8495 (emit_note_insn_var_location): Likewise.
8496 (vt_finalize): Likewise.
8497
8498 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8499
8500 * dse.c (store_info_t): Remove typedef.
8501 (group_info_t): Likewise.
8502 (const_group_info_t): Likewise.
8503 (deferred_change_t): Likewise.
8504 (get_group_info): Adjust.
8505 (free_store_info): Likewise.
8506 (canon_address): Likewise.
8507 (clear_rhs_from_active_local_stores): Likewise.
8508 (record_store): Likewise.
8509 (replace_read): Likewise.
8510 (check_mem_read_rtx): Likewise.
8511 (scan_insn): Likewise.
8512 (remove_useless_values): Likewise.
8513 (dse_step1): Likewise.
8514 (dse_step2_init): Likewise.
8515 (dse_step2_nospill): Likewise.
8516 (scan_stores_nospill): Likewise.
8517 (scan_reads_nospill): Likewise.
8518 (dse_step3_exit_block_scan): Likewise.
8519 (dse_step3): Likewise.
8520 (dse_step5_nospill): Likewise.
8521 (dse_step6): Likewise.
8522
8523 2015-09-13 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8524
8525 * alias.c (alias_set_entry_d): Rename to alias_set_entry.
8526 (alias_set_entry): Remove typedef.
8527 (alias_set_subset_of): Adjust.
8528 (alias_sets_conflict_p): Likewise.
8529 (init_alias_set_entry): Likewise.
8530 (get_alias_set): Likewise.
8531 (new_alias_set): Likewise.
8532 (record_alias_subset): Likewise.
8533
8534 2015-09-13 Gerald Pfeifer <gerald@pfeifer.com>
8535
8536 * doc/install.texi (Downloading the source): Mark up
8537 contrib/download_prerequisites properly and drop leading "./".
8538
8539 2015-09-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8540
8541 * config/arc/arc.h: Remove define of STRUCT_VALUE.
8542 * config/lm32/lm32.h: Likewise.
8543 * config/mep/mep.h: Likewise.
8544 * config/visium/visium.h: Likewise.
8545 * system.h: Poison STRUCT_VALUE macro.
8546
8547 2015-09-12 John David Anglin <danglin@gcc.gnu.org>
8548
8549 * config/pa/pa.c (pa_output_move_double): Enhance to handle HIGH
8550 CONSTANT_P operands.
8551
8552 2015-09-11 David S. Miller <davem@davemloft.net>
8553
8554 * config/sparc/constraints.md: Make "U" constraint a real register
8555 constraint.
8556 * config/sparc/sparc.c (TARGET_LRA_P): Define.
8557 (D_MODES, DF_MODES): Add missing cast.
8558 (TF_MODES, TF_MODES_NO_S): Include T_MODE.
8559 (OF_MODES, OF_MODES_NO_S): Include O_MODE.
8560 (sparc_register_move_cost): Decrease Niagara/UltrsSPARC memory
8561 cost to 8.
8562 * config/sparc/sparc.h (PROMOTE_MODE): Define.
8563 * config/sparc/sparc.md (*movsi_lo_sum, *movsi_high): Do not
8564 provide these insn when flag_pic.
8565
8566 2015-09-11 Jeff Law <law@redhat.com>
8567
8568 PR tree-optimization/47679
8569 * tree-ssa-dom.c (struct cond_equivalence): Update comment.
8570 * tree-ssa-scopedtables.h (class const_and_copies): Prefix data
8571 member with m_. Update inline member functions as necessary. Add
8572 toplevel comment.
8573 * tree-ssa-scopedtables.c: Update const_and_copies's member
8574 functions to use m_ prefix to access the stack.
8575
8576 2015-09-11 Aditya Kumar <aditya.k7@samsung.com>
8577
8578 * graphite-optimize-isl.c (disable_tiling): Remove.
8579 (get_schedule_for_band): Do not use disable_tiling.
8580 (get_prevector_map): Delete function.
8581 (enable_polly_vector): Remove.
8582 (get_schedule_for_band_list): Remove dead code.
8583
8584 2015-09-11 Aditya Kumar <aditya.k7@samsung.com>
8585
8586 * graphite-optimize-isl.c (get_tile_map): Refactor.
8587 (get_schedule_for_band): Same.
8588 (getScheduleForBand): Same.
8589 (get_prevector_map): Same.
8590 (get_schedule_for_band_list): Same.
8591 (get_schedule_map): Same.
8592 (get_single_map): Same.
8593 (apply_schedule_map_to_scop): Same.
8594 (optimize_isl): Same.
8595
8596 2015-09-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8597
8598 PR target/63304
8599 * config/aarch64/aarch.md (mov<mode>:GPF_F16): Use GPF_TF_F16.
8600 (movtf): Delete.
8601 * config/aarch64/iterators.md (GPF_TF_F16): New.
8602 (GPF_F16): Delete.
8603
8604 2015-09-10 Nathan Sidwell <nathan@acm.org>
8605
8606 * config/nvptx/nvptx.c (nvptx_expand_call): Add spacing.
8607 (nvptx_reorg): Adjust comments.
8608
8609 2015-09-15 John David Anglin <danglin@gcc.gnu.org>
8610
8611 PR bootstrap/67363
8612 * configure.ac: Check if setenv and unsetenv are declared.
8613 * configure: Rebuild.
8614 * config.in: Rebuild.
8615 * system.h: Declare setenv and unsetenv if not declared.
8616
8617 2015-09-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8618
8619 * config/rs6000/rs6000.c (swap_web_entry): Update preceding
8620 commentary to simplify permute mask adjustment equation.
8621 (special_handling_values): Add SH_VPERM.
8622 (const_load_sequence_p): New function.
8623 (insn_is_swappable_p): Add logic to recognize an UNSPEC_VPERM with
8624 the mask loaded from the constant pool.
8625 (adjust_vperm): New function.
8626 (handle_special_swappables): Call adjust_vperm.
8627 (dump_swap_insn_table): Handle SH_VPERM.
8628
8629 2015-09-10 H.J. Lu <hongjiu.lu@intel.com>
8630
8631 * shrink-wrap.c (requires_stack_frame_p): Remove static.
8632 * shrink-wrap.h (requires_stack_frame_p): Put back.
8633
8634 2015-09-10 Richard Sandiford <richard.sandiford@arm.com>
8635
8636 * reload1.c (elimination_costs_in_insn): Locally turn
8637 -Wmaybe-uninitialized into a warning.
8638
8639 2015-09-10 Segher Boessenkool <segher@kernel.crashing.org>
8640
8641 * shrink-wrap.c (requires_stack_frame_p): Make static.
8642 (prepare_shrink_wrap): Likewise.
8643 (dup_block_and_redirect): Likewise.
8644 * shrink-wrap.h: Remove declarations of those functions.
8645
8646 2015-09-10 Mark Wielaard <mjw@redhat.com>
8647
8648 * doc/invoke.texi (Wnonnull): Also warns when comparing against NULL.
8649
8650 2015-09-10 Oleg Endo <olegendo@gcc.gnu.org>
8651
8652 PR target/67506
8653 * config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Add
8654 missing simplify_gen_subreg.
8655
8656 2015-09-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8657
8658 * config/s390/s390.c (s390_contiguous_bitmask_vector_p): Reject if
8659 the vector element is bigger than 64 bit.
8660
8661 2015-09-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8662
8663 * config/s390/vx-builtins.md ("vec_vmal<mode>", "vec_vmah<mode>")
8664 ("vec_vmalh<mode>"): Change mode iterator from VI_HW to VI_HW_QHS.
8665
8666 2015-09-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8667
8668 * config/s390/s390.c: Add V1TImode to constant pool modes.
8669
8670 2015-09-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8671
8672 PR target/67439
8673 * config/arm/arm.md (*arm32_movhf): Remove !arm_restrict_it from
8674 predicate. Set predicable_short_it attr to "no".
8675
8676 2015-09-10 Jiong Wang <jiong.wang@arm.com>
8677
8678 PR rtl-optimization/67421
8679 * expr.c (expand_expr_real_2): Cost instrcution sequences when doing
8680 left wide shift tranformation.
8681
8682 2015-09-10 Claudiu Zissulescu <claziss@synopsys.com>
8683
8684 * common/config/arc/arc-common.c: Remove references to A5.
8685 * config/arc/arc-opts.h: Likewise.
8686 * config/arc/arc.c, config/arc/arc.h, config/arc/arc.md: Likewise.
8687 * config/arc/arc.opt, config/arc/constraints.md: Likewise.
8688 * config/arc/t-arc-newlib: Likewise.
8689
8690 2015-09-10 Claudiu Zissulescu <claziss@synopsys.com>
8691
8692 * config/arc/arc.md (length): Fix attribute length for conditional
8693 executed instructions with long immediate.
8694
8695 2015-09-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8696
8697 * config/aarch64/aarch64.md (*and<mode>3nr_compare0): Use logics_imm
8698 type for second alternative.
8699
8700 2015-09-10 Markus Trippelsdorf <markus@trippelsdorf.de>
8701
8702 * doc/invoke.texi (Downloading GCC): Mention
8703 contrib/download_prerequisites script.
8704
8705 2015-09-10 Jakub Jelinek <jakub@redhat.com>
8706
8707 PR c++/67523
8708 * gimplify.c (gimplify_omp_for): If inner stmt is not found
8709 for combined loop, assert seen_error () and return GS_ERROR.
8710
8711 PR middle-end/67521
8712 * gimplify.c (gimplify_omp_for): Don't call omp_add_variable
8713 if decl is already in outer->variables.
8714
8715 PR middle-end/67517
8716 * gimplify.c (gimplify_scan_omp_clauses): Instead of
8717 asserting that decl is not specified in octx->variables,
8718 break out of the loop if it is.
8719
8720 PR c++/67514
8721 * gimplify.c (gimplify_omp_for): For loop SIMD construct, if
8722 iterator is not explicitly determined, but is defined inside
8723 of the combined workshare region, handle it like if it has
8724 DECL_EXPR in OMP_FOR_PRE_BODY.
8725
8726 2015-09-09 Nathan Sidwell <nathan@acm.org>
8727
8728 * config/nvptx/nvptx.md (call_operation): Move bound out of loop.
8729 (*cmp<mode>): Add assembler spacing.
8730 (setcc_int<mode>, set_cc_float<mode>): Likewise.
8731 * config/nvptx/nvptx.c (nvptx_option_override): Override debug
8732 level.
8733 (write_func_decl_from_insn): Refactor argument loops & comma emission.
8734 (nvptx_expand_call): Likewise.
8735 (nvptx_output_call_insn): Likewise.
8736 (nvptx_reorg_subreg): Add spacing.
8737
8738 2015-09-09 Marek Polacek <polacek@redhat.com>
8739
8740 PR middle-end/67512
8741 * tree-ssa-uninit.c (pred_equal_p): Only call invert_tree_comparison
8742 for comparisons.
8743
8744 2015-09-09 Paolo Carlini <paolo.carlini@oracle.com>
8745
8746 PR c++/53184
8747 * doc/invoke.texi ([Wsubobject-linkage]): Document.
8748
8749 2015-09-09 Tom de Vries <tom@codesourcery.com>
8750
8751 * params-list.h: Add missing copyright notice.
8752
8753 2015-09-09 Nathan Sidwell <nathan@acm.org>
8754
8755 * config/nvptx/nvptx.md (atomic_compare_and_swap<mode>): Use
8756 sel_truesi, not andsi.
8757
8758 2015-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8759
8760 * config/arm/arm.md (*subsi3_compare0): Rename to...
8761 (subsi3_compare0): ... This.
8762 (modsi3): New define_expand.
8763 * config/arm/arm.c (arm_new_rtx_costs, MOD case): Handle case
8764 when operand is power of 2.
8765
8766 2015-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8767
8768 * config/aarch64/aarch64.md (mod<mode>3): New define_expand.
8769 (*neg<mode>2_compare0): Rename to...
8770 (neg<mode>2_compare0): ... This.
8771 * config/aarch64/aarch64.c (aarch64_rtx_costs, MOD case):
8772 Move check for speed inside the if-then-elses. Reflect
8773 CSNEG sequence in MOD by power of 2 case.
8774
8775 2015-09-09 Alan Modra <amodra@gmail.com>
8776
8777 PR target/67378
8778 * config/rs6000/rs6000.c (rs6000_secondary_reload_gpr): Find
8779 reload replacement for PRE_MODIFY address reg.
8780
8781 2015-09-09 Sebastian Pop <s.pop@samsung.com>
8782
8783 PR tree-optimization/53852
8784 * config.in: Regenerate.
8785 * configure: Regenerate.
8786 * configure.ac (HAVE_ISL_CTX_MAX_OPERATIONS): Detect.
8787 * graphite-optimize-isl.c (optimize_isl): Stop computation when
8788 PARAM_MAX_ISL_OPERATIONS is reached.
8789 * params.def (PARAM_MAX_ISL_OPERATIONS): Add.
8790 * graphite-dependences.c (extend_schedule): Remove gcc_asserts on
8791 result equal to isl_stat_ok as the status now can be isl_error_quota.
8792 (subtract_commutative_associative_deps): Same.
8793 (compute_deps): Same.
8794
8795 2015-09-08 Aditya Kumar <hiraditya@msn.com>
8796 Sebastian Pop <s.pop@samsung.com>
8797
8798 * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
8799 Return the parameter if it was saved in corresponding
8800 parameter_rename_map of the region.
8801 (copy_def): Copy def from sese region to the newly created region.
8802 (copy_internal_parameters): Copy all the internal parameters defined
8803 within a region to the newly created region.
8804 (graphite_regenerate_ast_isl): Copy parameters to the new region before
8805 translating isl to gimple.
8806 * graphite-scop-detection.c (graphite_can_represent_loop): Bail out if
8807 the loop-nest does not have any data-references.
8808 (build_graphite_scops): Create a scop only when there is at least one
8809 loop inside it.
8810 (contains_only_close_phi_nodes): Deleted.
8811 (print_graphite_scop_statistics): Deleted
8812 (print_graphite_statistics): Deleted
8813 (limit_scops): Deleted.
8814 (build_scops): Removed call to limit_scops.
8815 * sese.c (new_sese): Construct.
8816 (free_sese): Destruct.
8817 (sese_add_exit_phis_edge): update_stmt after exit phi edge has been
8818 added.
8819 (set_rename): Pass sese region so that parameters inside the region can
8820 be added to its parameter_rename_map.
8821 (rename_uses): Pass sese region.
8822 (graphite_copy_stmts_from_block): Do not copy parameters that have been
8823 generated in the header of the scop. For each SSA_NAME in the
8824 parameter_rename_map rename its usage.
8825 (invariant_in_sese_p_rec): Return false if tree t is defined outside
8826 sese region.
8827 (scalar_evolution_in_region): If the tree t is invariant just return t.
8828 * sese.h: Added a parameter renamne map (parameter_rename_map_t) to
8829 struct sese to keep track of all the parameters which need renaming.
8830 * tree-data-ref.c (loop_nest_has_data_refs): Check if a loop nest has
8831 any data-refs.
8832 * tree-data-ref.h: Declaration of loop_nest_has_data_refs.
8833
8834 2015-09-08 Tom de Vries <tom@codesourcery.com>
8835
8836 * Makefile.in (generated_files): Add params.list.
8837 (params.list, s-params.list): Add rule.
8838 * params.h (enum compiler_param): Include params-list.h. Move define
8839 DEFPARAM, include params.def and undef DEFPARAM ...
8840 * params-list.h: ... here. New file.
8841
8842 2015-09-08 David Malcolm <dmalcolm@redhat.com>
8843
8844 * pretty-print.h (printer_fn): Fix typo in comment.
8845
8846 2015-09-07 Jeff Law <law@redhat.com>
8847
8848 * tree-ssa-scopedtables.h (class const_and_copies): Fix comment typo.
8849
8850 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
8851
8852 * doc/sourcebuild.texi (arm_neon_fp16): Correct cross-reference.
8853 (arm_neon_fp16_ok): Document adding of -mfp16-format=ieee flag.
8854 (arm_neon_fp16_hw): New.
8855
8856 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
8857
8858 * fold-const.c (native_interpret_real): Fix HFmode for bigendian where
8859 UNITS_PER_WORD >= 4.
8860
8861 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
8862
8863 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_unpacks_lo_<mode>,
8864 aarch64_simd_vec_unpacks_hi_<mode>): New insn.
8865 (vec_unpacks_lo_v4sf, vec_unpacks_hi_v4sf): Delete insn.
8866 (vec_unpacks_lo_<mode>, vec_unpacks_hi_<mode>): New expand.
8867 (aarch64_float_extend_lo_v2df): Rename to...
8868 (aarch64_float_extend_lo_<Vwide>): this, using VDF and so adding V4SF.
8869
8870 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi): Add v8hf.
8871 (float_extend_lo): Add v4sf.
8872
8873 * config/aarch64/arm_neon.h (vcvt_f32_f16, vcvt_high_f32_f16): New.
8874 * config/aarch64/iterators.md (VQ_HSF): New iterator.
8875 (VWIDE, Vwtype, Vhalftype): Add V8HF, V4SF.
8876 (Vwide): New mode_attr.
8877
8878 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
8879
8880 * config/aarch64/aarch64-simd.md (aarch64_simd_dup<mode>,
8881 aarch64_dup_lane<mode>, aarch64_dup_lane_<vswap_width_name><mode>,
8882 aarch64_simd_vec_set<mode>, vec_set<mode>, vec_perm_const<mode>,
8883 vec_init<mode>, *aarch64_simd_ld1r<mode>, vec_extract<mode>): Add
8884 V4HF and V8HF variants to iterator.
8885
8886 * config/aarch64/aarch64.c (aarch64_evpc_dup): Add V4HF and V8HF cases.
8887
8888 * config/aarch64/iterators.md (VDQF_F16): New.
8889 (VSWAP_WIDTH, vswap_width_name): Add V4HF and V8HF cases.
8890
8891 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
8892
8893 * config/aarch64/arm_neon.h (vreinterpret_p8_f16, vreinterpret_p16_f16,
8894 vreinterpret_f16_f64, vreinterpret_f16_s8, vreinterpret_f16_s16,
8895 vreinterpret_f16_s32, vreinterpret_f16_s64, vreinterpret_f16_f32,
8896 vreinterpret_f16_u8, vreinterpret_f16_u16, vreinterpret_f16_u32,
8897 vreinterpret_f16_u64, vreinterpret_f16_p8, vreinterpret_f16_p16,
8898 vreinterpretq_f16_f64, vreinterpretq_f16_s8, vreinterpretq_f16_s16,
8899 vreinterpretq_f16_s32, vreinterpretq_f16_s64, vreinterpretq_f16_f32,
8900 vreinterpretq_f16_u8, vreinterpretq_f16_u16, vreinterpretq_f16_u32,
8901 vreinterpretq_f16_u64, vreinterpretq_f16_p8, vreinterpretq_f16_p16,
8902 vreinterpret_f32_f16, vreinterpret_f64_f16, vreinterpret_s64_f16,
8903 vreinterpret_u64_f16, vreinterpretq_u64_f16, vreinterpret_s8_f16,
8904 vreinterpret_s16_f16, vreinterpret_s32_f16, vreinterpret_u8_f16,
8905 vreinterpret_u16_f16, vreinterpret_u32_f16, vreinterpretq_p8_f16,
8906 vreinterpretq_p16_f16, vreinterpretq_f32_f16, vreinterpretq_f64_f16,
8907 vreinterpretq_s64_f16, vreinterpretq_s8_f16, vreinterpretq_s16_f16,
8908 vreinterpretq_s32_f16, vreinterpretq_u8_f16, vreinterpretq_u16_f16,
8909 vreinterpretq_u32_f16, vget_low_f16, vget_high_f16, vld1_dup_f16,
8910 vld1q_dup_f16): New.
8911
8912 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
8913
8914 * config/aarch64/aarch64-simd.md (aarch64_float_truncate_lo_v2sf):
8915 Reparameterize to...
8916 (aarch64_float_truncate_lo_<mode>): ...this, for both V2SF and V4HF.
8917 (aarch64_float_truncate_hi_v4sf): Reparameterize to...
8918 (aarch64_float_truncate_hi_<Vdbl>): ...this, for both V4SF and V8HF.
8919
8920 * config/aarch64/aarch64-simd-builtins.def (float_truncate_hi_): Add
8921 v8hf variant.
8922 (float_truncate_lo_): Use BUILTIN_VDF iterator.
8923
8924 * config/aarch64/arm_neon.h (vcvt_f16_f32, vcvt_high_f16_f32): New.
8925
8926 * config/aarch64/iterators.md (VDF, Vdtype): New.
8927 (VWIDE, Vmwtype): Add cases for V4HF and V2SF.
8928
8929 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
8930
8931 * config/aarch64/aarch64.c (aarch64_split_simd_combine): Add V4HFmode.
8932 * config/aarch64/aarch64-builtins.c (VAR13, VAR14): New.
8933 (aarch64_scalar_builtin_types, aarch64_init_simd_builtin_scalar_types):
8934 Add __builtin_aarch64_simd_hf.
8935 * config/aarch64/arm_neon.h (float16x4x2_t, float16x8x2_t,
8936 float16x4x3_t, float16x8x3_t, float16x4x4_t, float16x8x4_t,
8937 vcombine_f16, vst2_lane_f16, vst2q_lane_f16, vst3_lane_f16,
8938 vst3q_lane_f16, vst4_lane_f16, vst4q_lane_f16, vld2_f16, vld2q_f16,
8939 vld3_f16, vld3q_f16, vld4_f16, vld4q_f16, vld2_dup_f16, vld2q_dup_f16,
8940 vld3_dup_f16, vld3q_dup_f16, vld4_dup_f16, vld4q_dup_f16,
8941 vld2_lane_f16, vld2q_lane_f16, vld3_lane_f16, vld3q_lane_f16,
8942 vld4_lane_f16, vld4q_lane_f16, vst2_f16, vst2q_f16, vst3_f16,
8943 vst3q_f16, vst4_f16, vst4q_f16, vcreate_f16): New.
8944
8945 * config/aarch64/iterators.md (VALLDIF, Vtype, Vetype, Vbtype,
8946 V_cmp_result, v_cmp_result): Add cases for V4HF and V8HF.
8947 (VDC, Vdbl): Add V4HF.
8948
8949 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
8950
8951 * config/aarch64/aarch64.c (aarch64_vector_mode_supported_p): Support
8952 V4HFmode and V8HFmode.
8953 (aarch64_split_simd_move): Add case for V8HFmode.
8954 * config/aarch64/aarch64-builtins.c (v4hf_UP, v8hf_UP): Define.
8955 (aarch64_simd_builtin_std_type): Handle HFmode.
8956 (aarch64_init_simd_builtin_types): Include Float16x4_t and Float16x8_t.
8957
8958 * config/aarch64/aarch64-simd.md (mov<mode>, aarch64_get_lane<mode>,
8959 aarch64_ld1<VALL:mode>, aarch64_st1<VALL:mode): Use VALL_F16 iterator.
8960 (aarch64_be_ld1<mode>, aarch64_be_st1<mode>): Use VALLDI_F16 iterator.
8961
8962 * config/aarch64/aarch64-simd-builtin-types.def: Add Float16x4_t,
8963 Float16x8_t.
8964
8965 * config/aarch64/aarch64-simd-builtins.def (ld1, st1): Use VALL_F16.
8966 * config/aarch64/arm_neon.h (float16x4_t, float16x8_t, float16_t):
8967 New typedefs.
8968 (vget_lane_f16, vgetq_lane_f16, vset_lane_f16, vsetq_lane_f16,
8969 vld1_f16, vld1q_f16, vst1_f16, vst1q_f16, vst1_lane_f16,
8970 vst1q_lane_f16): New.
8971 * config/aarch64/iterators.md (VD, VQ, VQ_NO2E): Add vectors of HFmode.
8972 (VALLDI_F16, VALL_F16): New.
8973 (Vmtype, VEL, VCONQ, VHALF, V_TWO_ELEM, V_THREE_ELEM, V_FOUR_ELEM, q):
8974 Add cases for V4HF and V8HF.
8975 (VDBL, VRL2, VRL3, VRL4): Add V4HF case.
8976
8977 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
8978
8979 * config/arm/arm-builtins.c (VAR11, VAR12): New.
8980 * config/arm/arm_neon_builtins.def (vcombine, vld2_dup, vld3_dup,
8981 vld4_dup): Add v4hf variant.
8982 (vget_high, vget_low): Add v8hf variant.
8983 (vld1, vst1, vst1_lane, vld2, vld2_lane, vst2, vst2_lane, vld3,
8984 vld3_lane, vst3, vst3_lane, vld4, vld4_lane, vst4, vst4_lane): Add
8985 v4hf and v8hf variants.
8986
8987 * config/arm/iterators.md (VD_LANE, VD_RE, VQ2, VQ_HS): New.
8988 (VDX): Add V4HF.
8989 (V_DOUBLE): Add case for V4HF.
8990 (VQX): Add V8HF.
8991 (V_HALF): Add case for V8HF.
8992 (VDQX): Add V4HF, V8HF.
8993 (V_elem, V_two_elem, V_three_elem, V_four_elem, V_cmp_result,
8994 V_uf_sclr, V_sz_elem, V_mode_nunits, q): Add cases for V4HF & V8HF.
8995
8996 * config/arm/neon.md (vec_set<mode>internal, vec_extract<mode>,
8997 neon_vget_lane<mode>_sext_internal, neon_vget_lane<mode>_zext_internal,
8998 vec_load_lanesoi<mode>, neon_vld2<mode>, vec_store_lanesoi<mode>,
8999 neon_vst2<mode>, vec_load_lanesci<mode>, neon_vld3<mode>,
9000 neon_vld3qa<mode>, neon_vld3qb<mode>, vec_store_lanesci<mode>,
9001 neon_vst3<mode>, neon_vst3qa<mode>, neon_vst3qb<mode>,
9002 vec_load_lanesxi<mode>, neon_vld4<mode>, neon_vld4qa<mode>,
9003 neon_vld4qb<mode>, vec_store_lanesxi<mode>, neon_vst4<mode>,
9004 neon_vst4qa<mode>, neon_vst4qb<mode>): Change VQ iterator to VQ2.
9005
9006 (neon_vcreate, neon_vreinterpretv8qi<mode>,
9007 neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
9008 neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>):
9009 Change VDX to VD_RE.
9010
9011 (neon_vld2_lane<mode>, neon_vst2_lane<mode>, neon_vld3_lane<mode>,
9012 neon_vst3_lane<mode>, neon_vld4_lane<mode>, neon_vst4_lane<mode>):
9013 Change VD iterator to VD_LANE, and VMQ iterator to VQ_HS.
9014
9015 * config/arm/arm_neon.h (float16x4x2_t, float16x8x2_t, float16x4x3_t,
9016 float16x8x3_t, float16x4x4_t, float16x8x4_t, vcombine_f16,
9017 vget_high_f16, vget_low_f16, vld1_f16, vld1q_f16, vst1_f16, vst1q_f16,
9018 vst1_lane_f16, vst1q_lane_f16, vld2_f16, vld2q_f16, vld2_lane_f16,
9019 vld2q_lane_f16, vld2_dup_f16, vst2_f16, vst2q_f16, vst2_lane_f16,
9020 vst2q_lane_f16, vld3_f16, vld3q_f16, vld3_lane_f16, vld3q_lane_f16,
9021 vld3_dup_f16, vst3_f16, vst3q_f16, vst3_lane_f16, vst3q_lane_f16,
9022 vld4_f16, vld4q_f16, vld4_lane_f16, vld4q_lane_f16, vld4_dup_f16,
9023 vst4_f16, vst4q_f16, vst4_lane_f16, vst4q_lane_f16): New.
9024
9025 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
9026
9027 * config/arm/arm_neon.h (vgetq_lane_f16, vsetq_lane_f16, vld1q_lane_f16,
9028 vld1q_dup_f16, vreinterpretq_p8_f16, vreinterpretq_p16_f16,
9029 vreinterpretq_f16_p8, vreinterpretq_f16_p16, vreinterpretq_f16_f32,
9030 vreinterpretq_f16_p64, vreinterpretq_f16_p128, vreinterpretq_f16_s64,
9031 vreinterpretq_f16_u64, vreinterpretq_f16_s8, vreinterpretq_f16_s16,
9032 vreinterpretq_f16_s32, vreinterpretq_f16_u8, vreinterpretq_f16_u16,
9033 vreinterpretq_f16_u32, vreinterpretq_f32_f16, vreinterpretq_p64_f16,
9034 vreinterpretq_p128_f16, vreinterpretq_s64_f16, vreinterpretq_u64_f16,
9035 vreinterpretq_s8_f16, vreinterpretq_s16_f16, vreinterpretq_s32_f16,
9036 vreinterpretq_u8_f16, vreinterpretq_u16_f16, vreinterpretq_u32_f16):
9037 New.
9038
9039 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
9040
9041 * config/arm/arm.h (VALID_NEON_QREG_MODE): Add V8HFmode.
9042
9043 * config/arm/arm.c (arm_vector_mode_supported_p): Support V8HFmode.
9044
9045 * config/arm/arm-builtins.c (v8hf_UP): New.
9046 (arm_init_simd_builtin_types): Initialise Float16x8_t.
9047
9048 * config/arm/arm-simd-builtin-types.def (Float16x8_t): New.
9049
9050 * config/arm/arm_neon.h (float16x8_t): New typedef.
9051
9052 2015-09-08 Alan Lawrence <alan.lawrence@arm.com>
9053
9054 * config/arm/arm_neon.h (float16_t, vget_lane_f16, vset_lane_f16,
9055 vcreate_f16, vld1_lane_f16, vld1_dup_f16, vreinterpret_p8_f16,
9056 vreinterpret_p16_f16, vreinterpret_f16_p8, vreinterpret_f16_p16,
9057 vreinterpret_f16_f32, vreinterpret_f16_p64, vreinterpret_f16_s64,
9058 vreinterpret_f16_u64, vreinterpret_f16_s8, vreinterpret_f16_s16,
9059 vreinterpret_f16_s32, vreinterpret_f16_u8, vreinterpret_f16_u16,
9060 vreinterpret_f16_u32, vreinterpret_f32_f16, vreinterpret_p64_f16,
9061 vreinterpret_s64_f16, vreinterpret_u64_f16, vreinterpret_s8_f16,
9062 vreinterpret_s16_f16, vreinterpret_s32_f16, vreinterpret_u8_f16,
9063 vreinterpret_u16_f16, vreinterpret_u32_f16): New.
9064
9065 2015-09-07 Ilya Verbin <ilya.verbin@intel.com>
9066
9067 * config/i386/intelmic-mkoffload.c (prepare_target_image): Handle all
9068 non-alphanumeric characters in the symbol name.
9069
9070 2015-09-07 Marek Polacek <polacek@redhat.com>
9071
9072 PR inline-asm/67448
9073 * gimplify.c (gimplify_asm_expr): Don't allow MODIFY_EXPR as
9074 a memory input.
9075
9076 2015-09-07 Marek Polacek <polacek@redhat.com>
9077
9078 * system.h (INTTYPE_MINIMUM): Rewrite to avoid shift warning.
9079
9080 2015-09-04 Paolo Bonzini <bonzini@gnu.org>
9081
9082 * config/i386/cygming.h (SUBTARGET_OVERRIDE_OPTIONS): Do
9083 not warn.
9084
9085 2015-09-04 Jakub Jelinek <jakub@redhat.com>
9086
9087 PR middle-end/67452
9088 * tree-ssa-live.c: Include cfgloop.h.
9089 (remove_unused_locals): Clear loop->simduid if simduid is about
9090 to be removed from cfun->local_decls.
9091
9092 2015-09-02 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
9093
9094 PR target/65210
9095 * config/avr/avr.c (avr_eval_addr_attrib): Look for io_low
9096 attribute as well.
9097
9098 2015-09-04 Tom de Vries <tom@codesourcery.com>
9099
9100 * doc/invoke.texi (@item -ftrapv, @item -fwrapv): Document interaction.
9101
9102 2015-09-04 Jeff Law <law@redhat.com>
9103
9104 * tree-ssa-scopedtables.c (const_and_copies::const_and_copies): Remove
9105 unnecessary constructor. It's now trivial and implemented inside...
9106 * tree-ssa-scopedtables.h (const_and_copies): Implement trivial
9107 constructor. Add comments to various methods. Remove unused
9108 private fields.
9109 * tree-ssa-dom.c (pass_dominator::execute): Corresponding changes.
9110 * tree-vrp.c (identify_jump_threads): Likewise.
9111 * tree-ssa-threadedge.c (thread_through_normal_block): Fix minor
9112 indentation issues.
9113 (thread_across_edge): Similarly.
9114 (record_temporary_equivalences_from_stmts_at_dest): Remove unused
9115 arguments in constructor call.
9116
9117 2015-09-04 Jonas Hahnfeld <Hahnfeld@itc.rwth-aachen.de>
9118
9119 * config/i386/intelmic-mkoffload.c (prepare_target_image): Fix if the
9120 temp path contains a '-'.
9121
9122 2015-09-04 Andrey Turetskiy <andrey.turetskiy@intel.com>
9123 Petr Murzin <petr.murzin@intel.com>
9124 Kirill Yukhin <kirill.yukhin@intel.com>
9125
9126 * config/i386/i386-builtin-types.def
9127 (VOID_PFLOAT_HI_V8DI_V16SF_INT): New.
9128 (VOID_PDOUBLE_QI_V16SI_V8DF_INT): Ditto.
9129 (VOID_PINT_HI_V8DI_V16SI_INT): Ditto.
9130 (VOID_PLONGLONG_QI_V16SI_V8DI_INT): Ditto.
9131 * config/i386/i386.c
9132 (ix86_builtins): Add IX86_BUILTIN_SCATTERALTSIV8DF,
9133 IX86_BUILTIN_SCATTERALTDIV16SF, IX86_BUILTIN_SCATTERALTSIV8DI,
9134 IX86_BUILTIN_SCATTERALTDIV16SI.
9135 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_scatteraltsiv8df,
9136 __builtin_ia32_scatteraltdiv8sf, __builtin_ia32_scatteraltsiv8di,
9137 __builtin_ia32_scatteraltdiv8si.
9138 (ix86_expand_builtin): Handle IX86_BUILTIN_SCATTERALTSIV8DF,
9139 IX86_BUILTIN_SCATTERALTDIV16SF, IX86_BUILTIN_SCATTERALTSIV8DI,
9140 IX86_BUILTIN_SCATTERALTDIV16SI.
9141 (ix86_vectorize_builtin_scatter): New.
9142 (TARGET_VECTORIZE_BUILTIN_SCATTER): Define as
9143 ix86_vectorize_builtin_scatter.
9144
9145 2015-09-04 Andrey Turetskiy <andrey.turetskiy@intel.com>
9146 Petr Murzin <petr.murzin@intel.com>
9147 Kirill Yukhin <kirill.yukhin@intel.com>
9148
9149 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_SCATTER): New.
9150 * doc/tm.texi: Regenerate.
9151 * target.def: Add scatter builtin.
9152 * tree-vectorizer.h: Rename gather_p to gather_scatter_p and use it
9153 for loads/stores in case of gather/scatter accordingly.
9154 (STMT_VINFO_GATHER_SCATTER_P(S)): Use it instead of
9155 STMT_VINFO_GATHER_P(S).
9156 (vect_check_gather): Rename to ...
9157 (vect_check_gather_scatter): this.
9158 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Use
9159 STMT_VINFO_GATHER_SCATTER_P instead of STMT_VINFO_SCATTER_P.
9160 (vect_check_gather_scatter): Use it instead of vect_check_gather.
9161 (vect_analyze_data_refs): Add gatherscatter enum and maybe_scatter
9162 variable and new checkings for it accordingly.
9163 * tree-vect-stmts.c
9164 (STMT_VINFO_GATHER_SCATTER_P(S)): Use it instead of
9165 STMT_VINFO_GATHER_P(S).
9166 (vect_check_gather_scatter): Use it instead of vect_check_gather.
9167 (vectorizable_store): Add checkings for STMT_VINFO_GATHER_SCATTER_P.
9168
9169 2015-09-03 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
9170
9171 * config/rs6000/altivec.md (altivec_vperm_v8hiv16qi): New
9172 define_insn.
9173 (mulv16qi3): New define_expand.
9174
9175 2015-09-03 Martin Sebor <msebor@redhat.com>
9176
9177 PR c/66516
9178 * doc/extend.texi (Other Builtins): Document when the address
9179 of a built-in function can be taken.
9180
9181 2015-09-03 Richard Biener <rguenther@suse.de>
9182
9183 * dwarf2out.c (flush_limbo_die_list): Split out from ...
9184 (dwarf2out_early_finish): ... here.
9185 (dwarf2out_finish): Do not call dwarf2out_early_finish but
9186 flush_limbo_die_list. Assert we have no deferred asm names.
9187
9188 2015-09-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9189
9190 * optabs.c (expand_binop): Don't create a broadcast vector with a
9191 source element wider than the inner mode.
9192
9193 2015-09-03 Richard Biener <rguenther@suse.de>
9194
9195 * varasm.c (output_constant): Use fold_convert instead of
9196 wide_int_to_tree.
9197
9198 2015-09-03 Tom de Vries <tom@codesourcery.com>
9199
9200 PR tree-optimization/65637
9201 * omp-low.c (expand_omp_for_static_chunk): Handle case that
9202 fin_bb has 2 predecessors.
9203
9204 2015-09-03 Tom de Vries <tom@codesourcery.com>
9205
9206 PR tree-optimization/65637
9207 * omp-low.c (find_phi_with_arg_on_edge): New function.
9208 (expand_omp_for_static_chunk): Fix inner loop phi.
9209
9210 2015-09-03 Tom de Vries <tom@codesourcery.com>
9211
9212 PR tree-optimization/65637
9213 * omp-low.c (expand_omp_for_static_chunk): Fix gcc_assert for the case
9214 that head is NULL.
9215
9216 2015-09-03 Tom de Vries <tom@codesourcery.com>
9217
9218 * omp-low.c (expand_omp_for_static_chunk): Handle simple latch bb.
9219
9220 2015-09-03 Tom de Vries <tom@codesourcery.com>
9221
9222 * doc/invoke.texi (parloops-chunk-size): Add item.
9223 * params.def (PARAM_PARLOOPS_CHUNK_SIZE): Add DEFPARAM.
9224 * tree-parloops.c: Include params.h.
9225 (create_parallel_loop): Set chunk-size of schedule of omp-for loop, if
9226 param parloops-chunk-size is used.
9227
9228 2015-09-03 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
9229
9230 PR middle-end/67351
9231 * fold-const.c (fold_binary_loc) : Move
9232 Transform (x >> c) << c into x & (-1<<c) or
9233 transform (x << c) >> c into x & ((unsigned)-1 >> c) for unsigned
9234 types using simplify and match.
9235 * match.pd (lshift (rshift @0 INTEGER_CST@1) @1) : New simplifier.
9236 (rshift (lshift @0 INTEGER_CST@1) @1) : New Simplifier
9237
9238 2015-09-03 Richard Biener <rguenther@suse.de>
9239
9240 PR ipa/66705
9241 * tree-ssa-structalias.c (ctor_for_analysis): New function.
9242 (create_variable_info_for_1): Use ctor_for_analysis instead
9243 of get_constructor.
9244 (create_variable_info_for): Likewise.
9245
9246 2015-09-02 Charles Baylis <charles.baylis@linaro.org>
9247
9248 PR ipa/67280
9249 * cgraphunit.c (cgraph_node::create_wrapper): Set can_throw_external
9250 in new callgraph edge.
9251
9252 2015-09-02 Christophe Lyon <christophe.lyon@linaro.org>
9253
9254 PR target/59810
9255 PR target/63652
9256 PR target/63653
9257 * config/aarch64/aarch64-simd.md
9258 (aarch64_ld<VSTRUCT:nregs><VQ:mode>): Call
9259 gen_aarch64_simd_ld<VSTRUCT:nregs><VQ:mode>.
9260 (aarch64_st<VSTRUCT:nregs><VQ:mode>): Call
9261 gen_aarch64_simd_st<VSTRUCT:nregs><VQ:mode>.
9262
9263 2015-09-02 Alan Modra <amodra@gmail.com>
9264
9265 * config/rs6000/sysv4le.h (LINK_TARGET_SPEC): Don't define.
9266 * config/rs6000/sysv4.h (LINK_TARGET_SPEC): Likewise.
9267 (LINK_SPEC, SUBTARGET_EXTRA_SPECS): Delete link_target.
9268
9269 2015-09-02 Alan Modra <amodra@gmail.com>
9270
9271 PR target/67417
9272 * config/rs6000/predicates.md (current_file_function_operand): Don't
9273 return true for weak symbols.
9274 * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Likewise.
9275
9276 2015-09-01 Matthew Fortune <matthew.fortune@imgtec.com>
9277 Andrew Bennett <andrew.bennett@imgtec.com>
9278
9279 * config/mips/mips-opts.h (mips_cb_setting): New enum.
9280 * config/mips/mips-protos.h: Add definitions for
9281 mips_output_jump and mips_output_equal_conditional_branch
9282 * config/mips/mips.c (MIPS_JR): Change to support the
9283 JIC instruction.
9284 (mips_emit_compare): Add support for the MIPS R6 conditional
9285 compact branches.
9286 (mips_process_sync_loop): Likewise.
9287 (mips_output_order_conditional_branch): Likewise.
9288 (mips16_build_call_stub): Change MIPS_CALL to
9289 mips_output_jump.
9290 (mips_print_operand_punctuation): Update 's' case to only
9291 apply to micromips r2.
9292 (mips_adjust_insn_length): Add support for forbidden slot
9293 hazards.
9294 (mips_avoid_hazard): Likewise.
9295 (mips_reorg_process_insns): Likewise.
9296 (mips_output_jump): New function.
9297 (mips_output_equal_conditional_branch): Likewise.
9298 (mips_output_conditional_branch): Use jrc/bc if compact
9299 branch support is enabled. Ensure the forbidden slots
9300 between the two branch instructions is filled with a nop.
9301 (mips_option_override): Add support to process the compact
9302 branch option and set the correct defaults. Prevent
9303 non-explict relocs being using for MIPS R6.
9304 (mips_trampoline_init): Add compact branch support.
9305 (mips_mult_zero_zero_cost): Allow zero initialisation of
9306 accumulators with TARGET_DSP.
9307 * config/mips/mips.h (TARGET_CB_NEVER): New define.
9308 (TARGET_CB_MAYBE): New define.
9309 (TARGET_CB_ALWAYS): New define.
9310 (ISA_HAS_DELAY_SLOTS): New define.
9311 (ISA_HAS_COMPACT_BRANCHES): New define.
9312 (ISA_HAS_JRC): New define.
9313 (MIPS_BRANCH_C): New define.
9314 (MIPS_CALL): Removed.
9315 (MICROMIPS_J): Removed.
9316 * config/mips/mips.md (compact_form): New attr.
9317 (hazard): Add support for forbidden slots.
9318 (define_delay): Add support for compact branches.
9319 (*branch_order<mode>): Likewise.
9320 (*branch_order<mode>_inverted): Likewise.
9321 (*branch_equality<mode>): Likewise.
9322 (*branch_equality<mode>_inverted): Likewise.
9323 (*jump_absolute): Likewise.
9324 (*jump_pic): Likewise.
9325 (indirect_jump): Use mips_output_jump to produce assembly output.
9326 (tablejump_<mode>"): Likewise.
9327 (*<optab>"): Likewise.
9328 (<optab>_internal): Likewise.
9329 (sibcall_internal): Likewise.
9330 (sibcall_value_internal): Likewise.
9331 (sibcall_value_multiple_internal): Likewise.
9332 (call_internal): Likewise.
9333 (call_split): Likewise.
9334 (call_internal_direct): Likewise.
9335 (call_direct_split): Likewise.
9336 (call_value_internal): Likewise.
9337 (call_value_split): Likewise.
9338 (call_value_internal_direct): Likewise.
9339 (call_value_direct_split): Likewise.
9340 (call_value_multiple_internal): Likewise.
9341 (call_value_multiple_split): Likewise.
9342 (mips_get_fcsr_mips16_<mode>): Likewise.
9343 (mips_set_fcsr_mips16_<mode>): Likewise.
9344 (tls_get_tp_mips16_<mode>): Likewise.
9345 * config/mips/mips.opt: Add -mcompact-branches option.
9346 * config/mips/predicates.md (order_operator): Ensure the
9347 conditional compact branches are only used if the ISA them.
9348 * doc/invoke.texi: Document -mcompact-branches option.
9349
9350 2015-09-01 Vladimir Makarov <vmakarov@redhat.com>
9351
9352 PR target/61578
9353 * lra-lives.c (process_bb_lives): Process move pseudos with the
9354 same value for copies and preferences
9355 * lra-constraints.c (match_reload): Create match reload pseudo
9356 with the same value from single dying input pseudo.
9357
9358 2015-09-01 Ilya Enkovich <enkovich.gnu@gmail.com>
9359
9360 PR target/67405
9361 * tree-chkp.c (chkp_find_bound_slots_1): Add NULL check.
9362
9363 2015-09-01 Aldy Hernandez <aldyh@redhat.com>
9364
9365 * trans-mem.c: Add contributed-by.
9366 * trans-mem.h: Same.
9367
9368 2015-09-01 Richard Biener <rguenther@suse.de>
9369
9370 * expr.c (expand_expr_real_1): For expanding TERed defs
9371 set the current location to that of the def if not UNKNOWN.
9372
9373 2015-09-01 David Sherwood <david.sherwood@arm.com>
9374
9375 * genmodes.c: Add CONST_MODE_UNIT_SIZE modifier.
9376
9377 2015-09-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9378
9379 * ifcvt.c (struct noce_if_info): Add then_simple, else_simple,
9380 then_cost, else_cost fields. Change branch_cost field to unsigned int.
9381 (end_ifcvt_sequence): Call set_used_flags on each insn in the sequence.
9382 Include rtl-iter.h.
9383 (noce_simple_bbs): New function.
9384 (noce_try_move): Bail if basic blocks are not simple.
9385 (noce_try_store_flag): Likewise.
9386 (noce_try_store_flag_constants): Likewise.
9387 (noce_try_addcc): Likewise.
9388 (noce_try_store_flag_mask): Likewise.
9389 (noce_try_cmove): Likewise.
9390 (noce_try_minmax): Likewise.
9391 (noce_try_abs): Likewise.
9392 (noce_try_sign_mask): Likewise.
9393 (noce_try_bitop): Likewise.
9394 (bbs_ok_for_cmove_arith): New function.
9395 (noce_emit_all_but_last): Likewise.
9396 (noce_emit_insn): Likewise.
9397 (noce_emit_bb): Likewise.
9398 (noce_try_cmove_arith): Handle non-simple basic blocks.
9399 (insn_valid_noce_process_p): New function.
9400 (contains_mem_rtx_p): Likewise.
9401 (bb_valid_for_noce_process_p): Likewise.
9402 (noce_process_if_block): Allow non-simple basic blocks
9403 where appropriate.
9404
9405 2015-08-31 Alan Lawrence <alan.lawrence@arm.com>
9406
9407 * tree-ssa-dom.c (record_equivalences_from_phis,
9408 record_equivalences_from_stmt, optimize_stmt): Use dom_valueize.
9409 (lookup_avail_expr): Likewise, and remove comment and unused temp.
9410
9411 2015-09-01 Nick Clifton <nickc@redhat.com>
9412
9413 * config/msp430/msp430.opt (mcpu): Fix typo.
9414
9415 2015-09-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9416
9417 * config/aarch64/aarch64.c (aarch64_set_current_function):
9418 Re-layout any vector parameters have non-simd layout.
9419 * config/aarch64/aarch64-builtins.c (aarch64_relayout_simd_param):
9420 Delete.
9421 (aarch64_simd_expand_args): Delete call to the above.
9422
9423 2015-08-31 Mike Frysinger <vapier@gentoo.org>
9424
9425 * doc/invoke.texi (asan-stack): Add space before option.
9426
9427 2015-08-31 Marc Glisse <marc.glisse@inria.fr>
9428
9429 * tree.h (zerop): New function.
9430 * tree.c (zerop): Likewise.
9431 (element_precision): Handle expressions.
9432 * match.pd (define_predicates): Add zerop.
9433 (x <= +Inf): Fix comment.
9434 (abs (x) == 0, A & C == C, A & C != 0): Converted from ...
9435 * fold-const.c (fold_binary_loc): ... here. Remove.
9436
9437 2015-08-31 Richard Biener <rguenther@suse.de>
9438
9439 PR middle-end/67381
9440 * genmatch.c (dt_node::gen_kids): Also treat matches as barrier.
9441
9442 2015-08-31 Marc Glisse <marc.glisse@inria.fr>
9443
9444 * match.pd (SIN, COS, TAN, COSH): Reorder for consistency.
9445 (CEXPI): New operator list.
9446 (real (conj (x)), imag (conj (x)), real (x +- y), real (cexpi (x)),
9447 imag (cexpi (x)), conj (conj (x)), conj (complex (x, y))):
9448 Converted from ...
9449 * fold-const.c (fold_unary_loc, fold_binary_loc): ... here. Remove.
9450
9451 2015-08-31 Tom de Vries <tom@codesourcery.com>
9452
9453 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt)
9454 (find_uses_to_rename_bb, find_uses_to_rename): Add and handle use_flags
9455 parameter.
9456 (find_uses_to_rename_def, find_uses_to_rename_in_loop): New function.
9457 (rewrite_into_loop_closed_ssa_1): New function, factored out of ...
9458 (rewrite_into_loop_closed_ssa): ... here.
9459 (replace_uses_in_dominated_bbs): Remove function.
9460 (rewrite_virtuals_into_loop_closed_ssa): Reimplement using
9461 rewrite_into_loop_closed_ssa_1.
9462
9463 2015-08-31 Michael Matz <matz@suse.de>
9464
9465 * cfganal.c (pre_and_rev_post_order_compute_fn): Correctly
9466 enter entry and exit blocks for reverse post order.
9467
9468 2015-08-31 Richard Biener <rguenther@suse.de>
9469
9470 * lto-streamer.h (lto_location_cache::cached_location::sysp): Add.
9471 (lto_location_cache::current_sysp): Likewise.
9472 (output_block::current_sysp): Likewise.
9473 * lto-streamer-in.c (lto_location_cache::cmp_loc): Compare sysp.
9474 (lto_location_cache::apply_location_cache): Properly record
9475 system header locations.
9476 (lto_location_cache::input_location): Input whether a file
9477 is a system header.
9478 * lto-streamer-out.c (lto_output_location): Stream whether a file
9479 is a system header.
9480
9481 2015-08-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9482
9483 PR bootstrap/67363
9484 * gcc.c (env_manager::xput): Replace strndup by xstrndup.
9485
9486 2015-08-31 Tom de Vries <tom@codesourcery.com>
9487
9488 * tree-ssa-loop-manip.c (find_uses_to_rename_use)
9489 (find_uses_to_rename_stmt, find_uses_to_rename_bb, find_uses_to_rename):
9490 Improve function header comments.
9491
9492 2015-08-30 Michael Collison <michael.collison@linaro.org>
9493
9494 PR other/67320
9495 * doc.md.texi: Rename [su]sum_widen to widen_[su]sum to reflect correct
9496 standard names
9497
9498 2015-08-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9499
9500 * config/rs6000/rs6000.c (swap_web_entry): Enlarge
9501 special_handling bitfield.
9502 (special_handling_values): Add SH_XXPERMDI and SH_CONCAT.
9503 (rtx_is_swappable_p): Add handling for vec_select/vec_concat form
9504 that represents a general xxpermdi.
9505 (insn_is_swappable_p): Add handling for vec_concat of two
9506 doublewords, which maps to a specific xxpermdi.
9507 (adjust_xxpermdi): New function.
9508 (adjust_concat): Likewise.
9509 (handle_special_swappables): Call adjust_xxpermdi and
9510 adjust_concat.
9511 (dump_swap_insn_table): Handle SH_XXPERMDI and SH_CONCAT.
9512
9513 2015-08-30 Rich Felker <dalias@libc.org>
9514
9515 * config.gcc (supported_defaults): Handle sh[123456ble]*-*-*
9516 case instead of sh[123456ble]-*-*.
9517
9518 2015-08-29 Anatoly Sokolov <aesok@post.ru>
9519
9520 * ira.c (print_unform_and_important_classes,
9521 print_translated_classes): Remove reg_class_names static array.
9522 (print_unform_and_important_classes): Rename to ...
9523 (print_uniform_and_important_classes): ... this.
9524 (ira_debug_allocno_classes): Update accordingly.
9525
9526 2015-08-29 Tom de Vries <tom@codesourcery.com>
9527
9528 PR tree-optimization/46193
9529 * omp-low.c (omp_reduction_init): Handle pointer type for min or max
9530 clause.
9531
9532 2015-08-28 Jeff Law <law@redhat.com>
9533
9534 PR lto/66752
9535 * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
9536 unable to find X NE 0 in the tables, return X as the simplified
9537 condition.
9538 (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
9539 in VISISTED_BBS, then return failure. Else add nodes from NEXT_PATH
9540 to VISISTED_BBS.
9541 * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
9542 after removing the control flow statement and unnecessary edges.
9543
9544 2015-08-28 Alan Lawrence <alan.lawrence@arm.com>
9545
9546 Revert:
9547 2015-08-27 Alan Lawrence <alan.lawrence@arm.com>
9548
9549 PR tree-optimization/67283
9550 * tree-sra.c (type_consists_of_records_p): Rename to...
9551 (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
9552
9553 (completely_scalarize_record): Rename to...
9554 (completely_scalarize): ...this, add ARRAY_TYPE case, move some
9555 code to:
9556 (scalarize_elem): New.
9557
9558 2015-08-28 Jiong Wang <jiong.wang@arm.com>
9559
9560 * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Rename
9561 SYMBOL_SMALL_GOTTPREL to SYMBOL_SMALL_TLSIE.
9562 (aarch64_symbol_type): Likewise.
9563 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
9564 Likewise.
9565 (aarch64_expand_mov_immediate): Likewise.
9566 (aarch64_print_operand): Likewise.
9567 (aarch64_classify_tls_symbol): Likewise.
9568
9569 2015-08-28 Richard Biener <rguenther@suse.de>
9570
9571 * cgraphunit.c (symbol_table::compile): Move early debug generation
9572 and finish...
9573 (symbol_table::finalize_compilation_unit): ... back here and
9574 add a !seen_error () guard.
9575
9576 2015-08-27 Sebastian Pop <s.pop@samsung.com>
9577
9578 * toplev.c (process_options): Do not use flag_loop_block,
9579 flag_loop_interchange, and flag_loop_strip_mine. Add check for
9580 flag_loop_optimize_isl.
9581
9582 2015-08-27 Sebastian Pop <s.pop@samsung.com>
9583
9584 * Makefile.in (OBJS): Remove graphite-blocking.o and
9585 graphite-interchange.o.
9586 * common.opt (floop-strip-mine, floop-interchange, floop-block):
9587 Alias of floop-nest-optimize.
9588 * doc/invoke.texi (floop-strip-mine, floop-interchange, floop-block):
9589 Document as alias of -floop-nest-optimize.
9590 * graphite-blocking.c: Remove.
9591 * graphite-interchange.c: Remove.
9592 * graphite-optimize-isl.c: Include dumpfile.h.
9593 (getScheduleForBand): Add dump for tiled loops. Use
9594 PARAM_LOOP_BLOCK_TILE_SIZE instead of hard coded constant.
9595 * graphite-poly.c (scop_max_loop_depth): Remove.
9596 (print_scattering_function_1): Remove.
9597 (print_scattering_function): Remove.
9598 (print_scattering_functions): Remove.
9599 (debug_scattering_function): Remove.
9600 (debug_scattering_functions): Remove.
9601 (apply_poly_transforms): Remove use of flag_loop_block,
9602 flag_loop_strip_mine, and flag_loop_interchange.
9603 (new_poly_bb): Remove use of PBB_TRANSFORMED, PBB_SAVED, and
9604 PBB_ORIGINAL.
9605 (print_pdr_access_layout): Remove.
9606 (print_pdr): Print ISL representation.
9607 (new_scop): Remove use of SCOP_ORIGINAL_SCHEDULE,
9608 SCOP_TRANSFORMED_SCHEDULE, and SCOP_SAVED_SCHEDULE.
9609 (free_scop): Same.
9610 (openscop_print_pbb_domain): Remove.
9611 (print_pbb): Remove call to print_scattering_function.
9612 (openscop_print_scop_context): Remove.
9613 (print_scop_context): Do not print matrices anymore.
9614 (print_scop): Do not print SCOP_ORIGINAL_SCHEDULE and
9615 SCOP_TRANSFORMED_SCHEDULE.
9616 (print_isl_set): Add printing of a new line.
9617 (print_isl_map): Same.
9618 (print_isl_aff): Same.
9619 (print_isl_constraint): Same.
9620 (loop_to_lst): Remove.
9621 (scop_to_lst): Remove.
9622 (lst_indent_to): Remove.
9623 (print_lst): Remove.
9624 (debug_lst): Remove.
9625 (dot_lst_1): Remove.
9626 (dot_lst): Remove.
9627 (reverse_loop_at_level): Remove.
9628 (reverse_loop_for_pbbs): Remove.
9629 * graphite-poly.h (pdr_dim_iter_domain): Remove.
9630 (pdr_nb_params): Remove.
9631 (pdr_alias_set_dim): Remove.
9632 (pdr_subscript_dim): Remove.
9633 (pdr_iterator_dim): Remove.
9634 (pdr_parameter_dim): Remove.
9635 (same_pdr_p): Remove.
9636 (struct poly_scattering): Remove.
9637 (struct poly_bb): Remove _original, _transformed, _saved.
9638 (PBB_DOMAIN, PBB_ORIGINAL, PBB_ORIGINAL_SCATTERING): Remove.
9639 (PBB_TRANSFORMED, PBB_TRANSFORMED_SCATTERING, PBB_SAVED): Remove.
9640 (PBB_NB_LOCAL_VARIABLES): Remove.
9641 (PBB_NB_SCATTERING_TRANSFORM): Remove.
9642 (schedule_to_scattering): Remove.
9643 (number_of_write_pdrs): Remove.
9644 (pbb_dim_iter_domain): Remove.
9645 (pbb_nb_params): Remove.
9646 (pbb_nb_scattering_orig): Remove.
9647 (pbb_nb_scattering_transform): Remove.
9648 (pbb_nb_dynamic_scattering_transform): Remove.
9649 (pbb_nb_local_vars): Remove.
9650 (pbb_iterator_dim): Remove.
9651 (pbb_parameter_dim): Remove.
9652 (psco_scattering_dim): Remove.
9653 (psct_scattering_dim): Remove.
9654 (psct_local_var_dim): Remove.
9655 (psco_iterator_dim): Remove.
9656 (psct_iterator_dim): Remove.
9657 (psco_parameter_dim): Remove.
9658 (psct_parameter_dim): Remove.
9659 (psct_dynamic_dim): Remove.
9660 (psct_static_dim): Remove.
9661 (psct_add_local_variable): Remove.
9662 (new_lst_loop): Remove.
9663 (new_lst_stmt): Remove.
9664 (free_lst): Remove.
9665 (copy_lst): Remove.
9666 (lst_add_loop_under_loop): Remove.
9667 (lst_depth): Remove.
9668 (lst_dewey_number): Remove.
9669 (lst_dewey_number_at_depth): Remove.
9670 (lst_pred): Remove.
9671 (lst_succ): Remove.
9672 (lst_find_pbb): Remove.
9673 (find_lst_loop): Remove.
9674 (lst_find_first_pbb): Remove.
9675 (lst_empty_p): Remove.
9676 (lst_find_last_pbb): Remove.
9677 (lst_contains_p): Remove.
9678 (lst_contains_pbb): Remove.
9679 (lst_create_nest): Remove.
9680 (lst_remove_from_sequence): Remove.
9681 (lst_remove_loop_and_inline_stmts_in_loop_father): Remove.
9682 (lst_niter_for_loop): Remove.
9683 (pbb_update_scattering): Remove.
9684 (lst_update_scattering_under): Remove.
9685 (lst_update_scattering): Remove.
9686 (lst_insert_in_sequence): Remove.
9687 (lst_replace): Remove.
9688 (lst_substitute_3): Remove.
9689 (lst_distribute_lst): Remove.
9690 (lst_remove_all_before_including_pbb): Remove.
9691 (lst_remove_all_before_excluding_pbb): Remove.
9692 (struct scop): Remove original_schedule, transformed_schedule, and
9693 saved_schedule.
9694 (SCOP_ORIGINAL_SCHEDULE, SCOP_TRANSFORMED_SCHEDULE): Remove.
9695 (SCOP_SAVED_SCHEDULE): Remove.
9696 (poly_scattering_new): Remove.
9697 (poly_scattering_free): Remove.
9698 (poly_scattering_copy): Remove.
9699 (store_scattering_pbb): Remove.
9700 (store_lst_schedule): Remove.
9701 (restore_lst_schedule): Remove.
9702 (store_scattering): Remove.
9703 (restore_scattering_pbb): Remove.
9704 (restore_scattering): Remove.
9705 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons):
9706 Remove scattering_dimensions. Do not use pbb_dim_iter_domain:
9707 compute the scattering polyhedron dimension from the dimension of
9708 pbb->domain.
9709 (build_scop_scattering): Update call to
9710 build_pbb_scattering_polyhedrons.
9711 (build_poly_scop): Remove call to scop_to_lst.
9712 * graphite.c (graphite_transform_loops): Add call to print_scop.
9713 (gate_graphite_transforms): Remove use of flag_loop_block,
9714 flag_loop_interchange, and flag_loop_strip_mine.
9715
9716 2015-08-27 Sebastian Pop <s.pop@samsung.com>
9717
9718 * common.opt (floop-unroll-and-jam): Make alias of floop-nest-optimize.
9719 * doc/invoke.texi (-floop-unroll-and-jam): Document as alias of
9720 -floop-nest-optimize.
9721 * graphite-isl-ast-to-gimple.c (generate_luj_sepclass_opt): Remove.
9722 (generate_luj_sepclass): Remove.
9723 (generate_luj_options): Remove.
9724 (set_options): Remove opt_luj.
9725 (scop_to_isl_ast): Remove opt_luj.
9726 * graphite-optimize-isl.c (getScheduleForBand): Remove check for
9727 flag_loop_unroll_jam.
9728 (getPrevectorMap_full): Remove.
9729 (getScheduleForBandList): Remove map_sepcl.
9730 (getScheduleMap): Same.
9731 (apply_schedule_map_to_scop): Remove sepcl.
9732 (optimize_isl): Same.
9733 * graphite-poly.c (apply_poly_transforms): Remove check for
9734 flag_loop_unroll_jam.
9735 (new_poly_bb): Remove map_sepclass.
9736 * graphite-poly.h (struct poly_bb): Same.
9737 * graphite.c (gate_graphite_transforms): Remove flag_loop_unroll_jam.
9738 * params.def (PARAM_LOOP_UNROLL_JAM_SIZE)
9739 (PARAM_LOOP_UNROLL_JAM_DEPTH): Remove.
9740 * toplev.c (process_options): Remove flag_loop_unroll_jam.
9741
9742 2015-08-27 Uros Bizjak <ubizjak@gmail.com>
9743
9744 PR target/67317
9745 * config/i386/i386.md (*add<mode>3_cc): Remove insn pattern.
9746 (addqi3_cc): Ditto.
9747 (UNSPEC_ADD_CARRY): Remove.
9748 (addqi3_cconly_overflow): New expander.
9749 (*add<dwi>3_doubleword): Split to add<mode>3_cconly_overflow.
9750 Adjust for changed add<mode>3_carry.
9751 (*neg<dwi>2_doubleword): Adjust for changed add<mode>3_carry.
9752 (*sub<dwi>3_doubleword): Adjust for changed sub<mode>3_carry.
9753 (<plusminus_insn><mode>3_carry): Remove expander.
9754 (*<plusminus_insn><mode>3_carry): Split insn pattern to
9755 add<mode>3_carry and sub<mode>3_carry.
9756 (plusminus_carry_mnemonic): Remove code attribute.
9757 (add<mode>3_carry): Canonicalize insn pattern.
9758 (*addsi3_carry_zext): Ditto.
9759 (sub<mode>3_carry): Ditto.
9760 (*subsi3_carry_zext): Ditto.
9761 (adcx<mode>3): Remove insn pattern.
9762 (addcarry<mode>): New insn pattern.
9763 (subborrow<mode>): Ditto.
9764 * config/i386/i386.c (ix86_expand_strlensi_unroll_1): Use
9765 gen_addqi3_cconly_overflow instead of gen_addqi3_cc.
9766 (ix86_expand_builtin) <case IX86_BUILTIN_SBB32,
9767 case IX86_BUILTIN_SBB64, case IX86_BUILTIN_ADDCARRY32,
9768 case IX86_BUILTIN_ADDCARRY64>: Use CODE_FOR_subborrowsi,
9769 CODE_FOR_subborrowdi, CODE_FOR_addcarrysi and CODE_FOR_addcarrydi.
9770 Rewrite expander to not clobber carry flag chains.
9771
9772 2015-08-27 Pat Haugen <pthaugen@us.ibm.com>
9773
9774 * config/rs6000/vector.md (vec_shr_<mode>): Fix to do a shift
9775 instead of a rotate.
9776
9777 2015-08-27 Marek Polacek <polacek@redhat.com>
9778
9779 PR middle-end/67005
9780 * tree-ssa-dce.c (remove_dead_stmt): Also schedule fixup if removing
9781 an entry into an irreducible region.
9782
9783 2015-08-27 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
9784
9785 * configure: Regenerate.
9786
9787 2015-08-27 Alan Lawrence <alan.lawrence@arm.com>
9788
9789 PR tree-optimization/67283
9790 * tree-sra.c (type_consists_of_records_p): Rename to...
9791 (scalarizable_type_p): ...this, add case for ARRAY_TYPE.
9792
9793 (completely_scalarize_record): Rename to...
9794 (completely_scalarize): ...this, add ARRAY_TYPE case, move some code to:
9795 (scalarize_elem): New.
9796
9797 2015-08-27 Alan Lawrence <alan.lawrence@arm.com>
9798
9799 * tree-sra.c (completely_scalarize_var): Rename to...
9800 (create_total_scalarization_access): ... Here. Drop call to
9801 completely_scalarize_record.
9802
9803 (analyze_all_variable_accesses): Replace completely_scalarize_var
9804 with create_total_scalarization_access and completely_scalarize_record.
9805
9806 2015-08-27 Alan Modra <amodra@gmail.com>
9807
9808 PR target/67356
9809 * config/rs6000/rs6000.md (ior<mode>_mask): Use constraint "0"
9810 for operand 1.
9811
9812 2015-08-27 Richard Biener <rguenther@suse.de>
9813
9814 * passes.c (rest_of_decl_compilation): Guard early_global_decl
9815 call with !seen_error ().
9816 * cgraphunit.c (symbol_table::finalize_compilation_unit): Move
9817 early debug generation and finish...
9818 (symbol_table::compile): ... here to put it after a !seen_error ()
9819 guard.
9820
9821 2015-08-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9822
9823 * config.gcc (*-*-solaris2*): Enable default_use_cxa_atexit on
9824 Solaris 12+.
9825
9826 2015-08-27 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9827 Andre Vieira <andre.simoesdiasvieira@arm.com>
9828
9829 * config/aarch64/aarch64.md (*condjump): Handle functions > 1 MiB.
9830 (*cb<optab><mode>1): Likewise.
9831 (*tb<optab><mode>1): Likewise.
9832 (*cb<optab><mode>1): Likewise.
9833 * config/aarch64/iterators.md (inv_cb): New code attribute.
9834 (inv_tb): Likewise.
9835 * config/aarch64/aarch64.c (aarch64_gen_far_branch): New.
9836 * config/aarch64/aarch64-protos.h (aarch64_gen_far_branch): New.
9837
9838 2015-08-27 Richard Biener <rguenther@suse.de>
9839
9840 * ipa.c (cgraph_build_static_cdtor_1): Set DECL_IGNORED_P.
9841
9842 2015-08-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
9843
9844 * config/s390/s390.c (s390_emit_prologue): Add emit_barrier() after
9845 trap to fix ICE.
9846
9847 2015-08-26 Michael Meissner <meissner@linux.vnet.ibm.com>
9848
9849 * config/rs6000/rs6000-protos.h (rs6000_expand_float128_convert):
9850 Add declaration.
9851
9852 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Fix a
9853 comment.
9854 (rs6000_cannot_change_mode_class): Add support for IEEE 128-bit
9855 floating point in VSX registers.
9856 (rs6000_output_move_128bit): Always print out the set insn if we
9857 can't generate an appropriate 128-bit move.
9858 (rs6000_generate_compare): Add support for IEEE 128-bit floating
9859 point in VSX registers comparisons.
9860 (rs6000_expand_float128_convert): Likewise.
9861
9862 * config/rs6000/predicates.md (int_reg_operand_not_pseudo): New
9863 predicate for only GPR hard registers.
9864
9865 * config/rs6000/rs6000.md (FP): Add IEEE 128-bit floating point
9866 modes to iterators. Add new iterators for moving 128-bit values in
9867 scalar FPR registers and VSX registers.
9868 (FMOVE128): Likewise.
9869 (FMOVE128_FPR): Likewise.
9870 (FMOVE128_GPR): Likewise.
9871 (FMOVE128_VSX): Likewise.
9872 (FLOAT128_SFDFTF): New iterators for IEEE 128-bit floating point
9873 in VSX registers.
9874 (IFKF): Likewise.
9875 (IBM128): Likewise.
9876 (TFIFKF): Likewise.
9877 (RELOAD): Add IEEE 128-bit floating point modes.
9878 (signbittf2): Convert TF insns to add support for new IEEE 128-bit
9879 floating point in VSX registers modes.
9880 (signbit<mode>2, IBM128 iterator): Likewise.
9881 (mov<mode>_64bit_dm, FMOVE128_FPR iterator): Likewise.
9882 (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
9883 (negtf2): Likewise.
9884 (neg<mode>2, TFIFKF iterator): Likewise.
9885 (negtf2_internal): Likewise.
9886 (abstf2): Likewise.
9887 (abs<mode>2, TFIFKF iterator): Likewise.
9888 (ieee_128bit_negative_zero): New IEEE 128-bit floating point in
9889 VSX insn support for negate, absolute value, and negative absolute
9890 value.
9891 (ieee_128bit_vsx_neg<mode>2): Likewise.
9892 (ieee_128bit_vsx_neg<mode>2_internal): Likewise.
9893 (ieee_128bit_vsx_abs<mode>2): Likewise.
9894 (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
9895 (ieee_128bit_vsx_nabs<mode>2): Likewise.
9896 (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
9897 (FP128_64): Update pack/unpack 128-bit insns for IEEE 128-bit
9898 floating point in VSX registers.
9899 (unpack<mode>_dm): Likewise.
9900 (unpack<mode>_nodm): Likewise.
9901 (pack<mode>): Likewise.
9902 (unpackv1ti): Likewise.
9903 (unpack<mode>, FMOVE128_VSX iterator): Likewise.
9904 (packv1ti): Likewise.
9905 (pack<mode>, FMOVE128_VSX iterator): Likewise.
9906 (extenddftf2): Add support for IEEE 128-bit floating point in VSX
9907 registers.
9908 (extenddftf2_internal): Likewise.
9909 (trunctfdf2): Likewise.
9910 (trunctfdf2_internal2): Likewise.
9911 (fix_trunc_helper): Likewise.
9912 (fix_trunctfdi2"): Likewise.
9913 (floatditf2): Likewise.
9914 (floatuns<mode>tf2): Likewise.
9915 (extend<FLOAT128_SFDFTF:mode><IFKF:mode>2): Likewise.
9916 (trunc<IFKF:mode><FLOAT128_SFDFTF:mode>2): Likewise.
9917 (fix_trunc<IFKF:mode><SDI:mode>2): Likewise.
9918 (fixuns_trunc<IFKF:mode><SDI:mode>2): Likewise.
9919 (float<SDI:mode><IFKF:mode>2): Likewise.
9920 (floatuns<SDI:mode><IFKF:mode>2): Likewise.
9921
9922 2015-08-26 Renlin Li <renlin.li@arm.com>
9923
9924 * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode><ALLX:mode>4): New.
9925
9926 2015-08-26 Marcus Shawcroft <marcus.shawcroft@arm.com>
9927 Jiong Wang <jiong.wang@arm.com>
9928
9929 * config/aarch64/aarch64.md (UNSPEC_GOTTINYTLS): New UNSPEC.
9930 (tlsie_tiny_<mode>): New define_insn.
9931 (tlsie_tiny_sidi): Likewise.
9932 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
9933 SYMBOL_TINY_TLSIE.
9934 (aarch64_symbol_context): New comment for SYMBOL_TINY_TLSIE.
9935 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
9936 SYMBOL_TINY_TLSIE.
9937 (aarch64_expand_mov_immediate): Likewise.
9938 (aarch64_print_operand): Likewise.
9939 (arch64_classify_tls_symbol): Likewise.
9940
9941 2015-08-26 Matthew Wahab <matthew.wahab@arm.com>
9942
9943 * config/arm/arm-arches.def: Replace single value flags with
9944 an initializer built from ARM_FSET_MAKE_CPU1.
9945 * config/arm/arm-cores.def: Likewise.
9946 * config/arm/arm.c: (all_cores): Remove ARM_FSET_MAKE_CPU1
9947 derivation from the ARM_CORE macro definition, use the given value
9948 instead.
9949 (all_architectures): Remove ARM_FSET_MAKE_CPU1 derivation from the
9950 ARM_ARCH macro definition, use the given value instead.
9951
9952 2015-08-26 Matthew Wahab <matthew.wahab@arm.com>
9953
9954 * config/arm/arm-builtins.c (def_mbuiltin): Test all flags in a
9955 feature set.
9956 (struct builtin_description): Replace field mask with field
9957 features.
9958 (IWMMXT_BUILTIN): Use ARM_FSET macros for feature flags.
9959 (IWMMXT2_BUILTIN): Likewise.
9960 (IWMMXT2_BUILTIN2): Likewise.
9961 (FP_BUILTIN): Likewise.
9962 (CRC32_BUILTIN): Likewise.
9963 (CRYPTO_BUILTIN): Likewise.
9964 (iwmmx_mbuiltin): Likewise.
9965 (iwmmx2_mbuiltin): Likewise.
9966 (arm_init_iwmmxt_builtins): Likewise. Also, update for change to
9967 struct builtin_description.
9968
9969 2015-08-26 Matthew Wahab <matthew.wahab@arm.com>
9970
9971 * config/arm/arm-builtins.c (def_mbuiltin): Use ARM_FSET macro.
9972 (struct builtin_description): Change type of mask to unsigned
9973 long.
9974 * config/arm/arm-protos.h (insn_flags): Declare as type
9975 arm_feature_set.
9976 (tune_flags): Likewise.
9977 * config/arm/arm.c (feature_count): New.
9978 (insn_flags): Define as type arm_feature_set.
9979 (tune_flags): Likewise.
9980 (struct processors): Define field flags as type arm_feature_set.
9981 (all_cores): Update for change to struct processors.
9982 (all_architectures): Likewise.
9983 (arm_option_check_internal): Use arm_feature_set and ARM_FSET
9984 macros.
9985 (arm_option_override_internal): Likewise.
9986 (arm_option_override): Likewise.
9987
9988 2015-08-26 Marcus Shawcroft <marcus.shawcroft@arm.com>
9989 Jiong Wang <jiong.wang@arm.com>
9990
9991 * config/aarch64/aarch64.c (initialize_aarch64_tls_size): Set default
9992 tls size for tiny, small, large memory model.
9993 (aarch64_load_symref_appropriately): Support new symbol types.
9994 (aarch64_expand_mov_immediate): Likewise.
9995 (aarch64_print_operand): Likewise.
9996 (aarch64_classify_tls_symbol): Likewise.
9997 * config/aarch64/aarch64-protos.h (aarch64_symbol_context): Likewise.
9998 (aarch64_symbol_type): Likewise.
9999 * config/aarch64/aarch64.md (tlsle): Deleted.
10000 (tlsle12_<mode>): New define_insn.
10001 (tlsle24_<mode>): Likewise.
10002 (tlsle32_<mode>): Likewise.
10003 (tlsle48_<mode>): Likewise.
10004 * doc/sourcebuild.texi (AArch64-specific attributes): Document
10005 "aarch64_tlsle32".
10006
10007 2015-08-26 Matthew Wahab <matthew.wahab@arm.com>
10008
10009 * config/arm/arm-protos.h (FL_NONE): New.
10010 (FL_ANY): New.
10011 (arm_feature_set): New.
10012 (ARM_FSET_MAKE): New.
10013 (ARM_FSET_MAKE_CPU1): New.
10014 (ARM_FSET_MAKE_CPU2): New.
10015 (ARM_FSET_CPU1): New.
10016 (ARM_FSET_CPU2): New.
10017 (ARM_FSET_EMPTY): New.
10018 (ARM_FSET_ANY): New.
10019 (ARM_FSET_HAS_CPU1): New.
10020 (ARM_FSET_HAS_CPU2): New.
10021 (ARM_FSET_HAS_CPU): New.
10022 (ARM_FSET_ADD_CPU1): New.
10023 (ARM_FSET_ADD_CPU2): New.
10024 (ARM_FSET_DEL_CPU1): New.
10025 (ARM_FSET_DEL_CPU2): New.
10026 (ARM_FSET_UNION): New.
10027 (ARM_FSET_INTER): New.
10028 (ARM_FSET_XOR): New.
10029 (ARM_FSET_EXCLUDE): New.
10030 (AFM_FSET_IS_EMPTY): New.
10031 (ARM_FSET_CPU_SUBSET): New.
10032
10033 2015-08-26 Jiong Wang <jiong.wang@arm.com>
10034
10035 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
10036 SYMBOL_TLSLE to SYMBOL_TLSLE24.
10037 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
10038 Likewise.
10039 (aarch64_expand_mov_immediate): Likewise.
10040 (aarch64_print_operand): Likewise.
10041 (aarch64_classify_symbol): Likewise.
10042
10043 2015-08-26 Jiong Wang <jiong.wang@arm.com>
10044
10045 * config/aarch64/aarch64.opt (mtls-size): New entry.
10046 * config/aarch64/aarch64.c (initialize_aarch64_tls_size): New function.
10047 (aarch64_override_options_internal): Call initialize_aarch64_tls_size.
10048 * doc/invoke.texi (AArch64 Options): Document -mtls-size.
10049
10050 2015-08-26 Matthew Wahab <matthew.wahab@arm.com>
10051
10052 * config/arm/arm-cores.def: Add FL_FOR_ARCH flag for each
10053 ARM_CORE entry. Fix some white-space.
10054 * config/arm/arm.c: Remove FL_FOR_ARCH derivation from
10055 ARM_CORE definition.
10056
10057 2015-08-26 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
10058
10059 * fold-const.c (fold_binary_loc) : Move Optimize
10060 root(x)*root(y) as root(x*y) to match.pd.
10061 Move Optimize expN(x)*expN(y) as expN(x+y) to match.pd.
10062 Move Optimize pow(x,y)*pow(x,z) as pow(x,y+z) to match.pd.
10063 Move Optimize a/root(b/c) into a*root(c/b) to match.pd.
10064 Move Optimize x/expN(y) into x*expN(-y) to match.pd.
10065 * match.pd (mult (root:s @0) (root:s @1)): New simplifier.
10066 (mult (POW:s @0 @1) (POW:s @0 @2)) : New simplifier.
10067 (mult (exps:s @0) (exps:s @1)) : New simplifier.
10068 (rdiv @0 (root:s (rdiv:s @1 @2))) : New simplifier.
10069 (rdiv @0 (exps:s @1)) : New simplifier.
10070
10071 2015-08-25 Joseph Myers <joseph@codesourcery.com>
10072
10073 * gcc.c (driver::finalize): Only assign to extra_specs if
10074 [EXTRA_SPECS].
10075
10076 2015-08-25 Marek Polacek <polacek@redhat.com>
10077
10078 PR middle-end/67330
10079 * varasm.c (declare_weak): Return after giving an error.
10080
10081 2015-08-25 David Malcolm <dmalcolm@redhat.com>
10082
10083 * gcc-main.c (main): Add params to driver ctor.
10084 * gcc.c (class env_manager): New.
10085 (env): New global.
10086 (env_manager::init): New.
10087 (env_manager::get): New.
10088 (env_manager::xput): New.
10089 (env_manager::restore): New.
10090 Poison getenv and putenv.
10091 (DEFAULT_TARGET_SYSTEM_ROOT): New.
10092 (target_system_root): Update initialization to use
10093 DEFAULT_TARGET_SYSTEM_ROOT.
10094 (struct spec_list): Add field "default_ptr".
10095 (INIT_STATIC_SPEC): Initialize new field "default_ptr".
10096 (init_spec): Likewise.
10097 (set_spec): Clear field "default_ptr".
10098 (read_specs): Free "spec" and "buffer".
10099 (xputenv): Reimplement in terms of env_manager.
10100 (process_command): Replace ::getenv calls with calls to the
10101 env_manager singleton.
10102 (process_brace_body): Free string in three places.
10103 (driver::driver): New.
10104 (driver::~driver): New.
10105 (used_arg): Convert from a function to...
10106 (class used_arg_t): ...this class, and...
10107 (used_arg): ...this new global instance.
10108 (used_arg_t::finalize): New function.
10109 (getenv_spec_function): Add "const" to local "value". Replace
10110 ::getenv call with call to the env_manager singleton.
10111 (path_prefix_reset): New function.
10112 (driver::finalize): New function.
10113 * gcc.h (driver::driver): New.
10114 (driver::~driver): New.
10115 (driver::finalize): New.
10116
10117 2015-08-25 Nathan Sidwell <nathan@acm.org>
10118
10119 * optabs.c (emit_indirect_jump): Don't try an emit a jump if the
10120 target doesn't have one.
10121
10122 2015-08-25 Segher Boessenkool <segher@kernel.crashing.org>
10123
10124 PR target/67346
10125 * config/rs6000/rs6000.md (*ior<mode>_mask): Use a match_scratch.
10126
10127 2015-08-25 Segher Boessenkool <segher@kernel.crashing.org>
10128
10129 PR target/67344
10130 * config/rs6000/rs6000.md (*and<mode>3_imm_dot_shifted): Change to
10131 a define_insn, remove second alternative.
10132
10133 2015-08-25 Thomas Schwinge <thomas@codesourcery.com>
10134 Joseph Myers <joseph@codesourcery.com>
10135
10136 * gcc.c (struct switchstr): Expand comment.
10137
10138 2015-08-25 Nathan Sidwell <nathan@acm.org>
10139
10140 * config/nvptx/nvptx.c (nvptx_write_function_decl): Reformat.
10141 (nvptx_reorg_subreg): Pass insn pattern to asm_operands.
10142
10143 2015-08-25 Richard Biener <rguenther@suse.de>
10144
10145 PR middle-end/67306
10146 * genmatch.c (expr::gen_transform): Verify the result of
10147 builtin_decl_implicit.
10148 (dt_simplify::gen_1): Likewise.
10149
10150 2015-08-25 Thomas Preud'homme <thomas.preudhomme@arm.com>
10151
10152 * config/arm/constraints.md: Also list Cs and US ARM-specific
10153 constraints as used.
10154
10155 2015-08-24 Kaz Kojima <kkojima@gcc.gnu.org>
10156
10157 PR target/66609
10158 * config/sh/sh.c (sh_asm_output_addr_const_extra): Handle
10159 UNSPEC_PCREL.
10160 (nonpic_symbol_mentioned_p): Likewise.
10161 (sh_delegitimize_address): Likewise.
10162 (sh_function_ok_for_sibcall): Take into account weak symbols.
10163 (sh_expand_sym_label2reg): New.
10164 * config/sh/sh-protos.h (sh_expand_sym_label2reg): Declare.
10165 * config/sh/sh.md (UNSPEC_PCREL): New enum.
10166 (call_pcrel): Use sh_expand_sym_label2reg.
10167 (call_value_pcrel, sibcall_pcrel, sibcall_value_pcrel): Likewise.
10168 (symPCREL_label2reg) New expand.
10169
10170 2015-08-24 Aditya Kumar <aditya.k7@samsung.com>
10171
10172 * graphite-poly.c: Change type of region from void* to sese.
10173 * graphite-poly.h (struct scop): Changing the type of scop::region
10174 from void* to sese. Change accessor macro accordingly.
10175 * graphite-sese-to-poly.c (extract_affine_chrec): Use accessor macro.
10176
10177 2015-08-24 Aditya Kumar <aditya.k7@samsung.com>
10178
10179 * graphite-scop-detection.c (stmt_simple_for_scop_p):
10180 Constrain only on INTEGER_TYPE.
10181
10182 2015-08-24 Michael Meissner <meissner@linux.vnet.ibm.com>
10183
10184 PR target/67211
10185 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Set
10186 -mefficient-unaligned-vsx on ISA 2.7.
10187
10188 * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Convert
10189 option to a masked option.
10190
10191 * config/rs6000/rs6000.c (rs6000_option_override_internal): Rework
10192 logic for -mefficient-unaligned-vsx so that it is set via an arch
10193 ISA option, instead of being set if -mtune=power8 is set. Move
10194 -mefficient-unaligned-vsx and -mallow-movmisalign handling to be
10195 near other default option handling.
10196
10197 2015-08-24 Richard Sandiford <richard.sandiford@arm.com>
10198
10199 * genflags.c (gen_macro): Delete.
10200 (gen_proto): Don't create GEN.*CALL.* macros.
10201 * gensupport.h (get_file_location): Declare.
10202 * gensupport.c (rtx_locs): New variable.
10203 (read_md_rtx): Record rtx locations.
10204 (get_file_location): New function.
10205 * target-insns.def (call, call_pop, call_value, call_value_pop)
10206 (sibcall, sibcall_value): New patterns.
10207 * gentarget-def.c (parse_argument): New function.
10208 (def_target_insn): Use it. Handle optional operands. Raise an
10209 error if an .md pattern has the wrong number of operands for the
10210 pattern name. Remove the names of unused operands from the prototype.
10211 * builtins.c (expand_builtin_apply): Use targetm functions
10212 instead of HAVE_call_value and GEN_CALL_VALUE.
10213 * calls.c (emit_call_1): Likewise. Remove support for sibcall_pop
10214 and sibcall_value_pop.
10215 * config/aarch64/aarch64.md (untyped_call): Use gen_call instead
10216 of GEN_CALL.
10217 * config/alpha/alpha.md (untyped_call): Likewise.
10218 * config/iq2000/iq2000.md (untyped_call): Likewise.
10219 * config/m68k/m68k.md (untyped_call): Likewise.
10220 * config/mips/mips.md (untyped_call): Likewise.
10221 * config/pa/pa.md (untyped_call): Likewise.
10222 * config/rs6000/rs6000.md (untyped_call): Likewise.
10223 * config/sparc/sparc.md (untyped_call): Likewise.
10224 * config/tilegx/tilegx.md (untyped_call): Likewise.
10225 * config/tilepro/tilepro.md (untyped_call): Likewise.
10226 * config/visium/visium.md (untyped_call): Likewise.
10227 * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Use
10228 gen_call_value instead of GEN_CALL_VALUE.
10229 * config/arm/arm.md (untyped_call): Likewise.
10230 * config/cr16/cr16.c (cr16_function_arg): Remove reference to
10231 GEN_CALL.
10232
10233 2015-08-24 Richard Sandiford <richard.sandiford@arm.com>
10234
10235 * ifcvt.c (HAVE_incscc, HAVE_decscc, HAVE_cbranchcc4): Delete.
10236 (have_cbranchcc4): New variable.
10237 (cc_in_cond, noce_emit_cmove, noce_get_alt_condition)
10238 (noce_get_condition): Use it instead of HAVE_cbranchcc4.
10239 (if_convert): Initialize have_cbranchcc4.
10240
10241 2015-08-24 Richard Sandiford <richard.sandiford@arm.com>
10242
10243 * builtins.c (expand_cmpstrn): Rename to...
10244 (expand_cmpstrn_or_cmpmem): ...this.
10245 (expand_builtin_strcmp, expand_builtin_strncmp): Update accordingly.
10246 (expand_builtin_memcmp): Use optabs instead of HAVE_cmpmem/gen_cmpmem.
10247 Remove mode argument.
10248 (expand_builtin): Update accordingly.
10249
10250 2015-08-24 Richard Sandiford <richard.sandiford@arm.com>
10251
10252 * builtins.c (expand_cmpstr, expand_cmpstrn): New functions.
10253 (expand_builtin_strcmp, expand_builtin_strncmp): Use them. Remove
10254 references to HAVE_cmpstr{,n}si and CODE_FOR_cmpstr{,n}si.
10255 * config/m32c/blkmov.md (cmpstrsi): Fix predicates of operands 1 and 2.
10256 Add predicates for operands 0 and 3.
10257 * config/rx/rx.md (cmpstrnsi): Remove force_operand for the length
10258 operand.
10259 * config/sh/sh.md (cmpstrnsi): Change the length predicate from
10260 immediate_operand to nonmemory_operand.
10261
10262 2015-08-24 Richard Sandiford <richard.sandiford@arm.com>
10263
10264 * df-scan.c (df_insn_info_init_fields): New function, split out
10265 from...
10266 (df_insn_create_insn_record): ...here.
10267 (df_insn_info_free_fields): New function, split out from...
10268 (df_insn_info_delete): ...here.
10269 (df_insn_rescan): Use the new functions instead of freeing and
10270 reallocating the df_insn_info.
10271
10272 2015-08-24 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
10273
10274 * doc/install.texi (Binaries): Remove links no longer valid.
10275
10276 2015-08-24 Nathan Sidwell <nathan@codesourcery.com>
10277
10278 * config/nvptx/mkoffload.c (process): Replace
10279 GOMP_offload_{,un}register with GOMP_offload_{,un}register_ver.
10280
10281 2015-08-24 H.J. Lu <hongjiu.lu@intel.com>
10282
10283 PR target/67329
10284 * config/i386/i386.c (iamcu_cost): Set MOVE_RATIO cost to 9.
10285
10286 2015-08-24 Renlin Li <renlin.li@arm.com>
10287
10288 * config/arm/arm-protos.h (arm_valid_symbolic_address_p): Declare.
10289 * config/arm/arm.c (arm_valid_symbolic_address_p): Define.
10290 * config/arm/arm.md (arm_movt): Use arm_valid_symbolic_address_p.
10291 * config/arm/constraints.md ("j"): Add check for high code.
10292
10293 2015-08-24 Tom de Vries <tom@codesourcery.com>
10294
10295 PR tree-optimization/65468
10296 * omp-low.c (expand_omp_for_static_chunk): Remove inner loop if
10297 chunk_size is one.
10298
10299 2015-08-24 Nathan Sidwell <nathan@acm.org>
10300
10301 * config/nvptx/nvptx.c (walk_args_for_param): Revert previous
10302 change to nvptx_type_from_mode call. Use arg_promotion for both
10303 split and non-split args.
10304
10305 2015-08-24 Richard Sandiford <richard.sandiford@arm.com>
10306
10307 * target-insns.def (movstr): New pattern.
10308 * builtins.c (HAVE_movstr, CODE_FOR_movstr): Delete.
10309 (expand_movstr): Use targetm rather than HAVE_movstr/
10310 CODE_FOR_movstr.
10311
10312 2015-08-24 Richard Sandiford <richard.sandiford@arm.com>
10313
10314 * config/microblaze/microblaze.c (microblaze_classify_unspec): Fix
10315 cast syntax.
10316
10317 2015-08-24 Andrew Pinski <apinski@cavium.com>
10318
10319 * config/aarch64/aarch64-tuning-flags.def: Remove all index to
10320 AARCH64_EXTRA_TUNING_OPTION.
10321 * config/aarch64/aarch64-protos.h (aarch64_extra_tuning_flags_index):
10322 New enum.
10323 (aarch64_extra_tuning_flags): Base the shifted value on the index
10324 instead of the argument to AARCH64_EXTRA_TUNING_OPTION.
10325 * config/aarch64/aarch64.c: Remove the last argument to
10326 AARCH64_EXTRA_TUNING_OPTION.
10327
10328 2015-08-23 Nathan Sidwell <nathan@acm.org>
10329
10330 * config/nvptx/nvptx.c (walk_args_for_param): Promote arg reg
10331 decls.
10332 (nvptx_declare_function_name): Insert formatting tabs for
10333 consistency.
10334
10335 2015-08-23 Tom de Vries <tom@codesourcery.com>
10336
10337 * omp-low.c (expand_omp_taskreg): If in ssa, set rhs of parcopy stmt to
10338 parm_decl, rather than generating a dummy default def in cfun.
10339 * tree-cfg.c (replace_ssa_name): Assume no default defs. Make sure
10340 ssa_name from cfun and child_fn do not share a stmt as def stmt.
10341 (move_stmt_op): Handle PARM_DECl.
10342 (gather_ssa_name_hash_map_from): New function.
10343 (move_sese_region_to_fn): Add default defs for function params, and add
10344 them to vars_map. Release copied ssa names.
10345 * tree-cfg.h (gather_ssa_name_hash_map_from): Declare.
10346
10347 2015-08-23 Tom de Vries <tom@codesourcery.com>
10348
10349 * doc/sourcebuild.texi: Rename vect_no_int_max with
10350 vect_no_int_min_max. Update description.
10351
10352 2015-08-22 Andrew Pinski <apinski@cavium.com>
10353
10354 * aarch64-fusion-pairs.def: Remove all index to AARCH64_FUSION_PAIR.
10355 * config/aarch64/aarch64-protos.h
10356 (aarch64_fusion_pairs_index): New enum.
10357 (aarch64_fusion_pairs): Base the shifted value on the index instead
10358 Rewrite AARCH64_FUSE_ALL to be based on the end index.
10359 of the argument to AARCH64_FUSION_PAIR.
10360 * config/aarch64/aarch64.c: Remove the last argument to
10361 AARCH64_FUSION_PAIR.
10362
10363 2015-08-22 Mikhail Maltsev <maltsevm@gmail.com>
10364
10365 * dominance.c (new_zero_array): Define.
10366 (dom_info): Redefine as class with proper encapsulation.
10367 (dom_info::m_n_basic_blocks, m_reverse, m_start_block, m_end_block):
10368 Add new members.
10369 (dom_info::dom_info, ~dom_info): Define. Use new/delete for memory
10370 allocations/deallocations. Pass function as parameter (instead of
10371 using cfun).
10372 (dom_info::get_idom): Define accessor method.
10373 (dom_info::calc_dfs_tree_nonrec, calc_dfs_tree, compress, eval,
10374 link_roots, calc_idoms): Redefine as class members. Do not use cfun.
10375 (calculate_dominance_info): Adjust to use dom_info class.
10376 (verify_dominators): Likewise.
10377
10378 2015-08-21 Alexandre Oliva <aoliva@redhat.com>
10379
10380 * print-rtl.c (print_rtx): Check the correct range for
10381 flag_dump_unnumbered_links to behave as documented.
10382
10383 PR rtl-optimization/67227
10384 PR rtl-optimization/64164
10385 * alias.c (memrefs_conflict_p): Handle VALUEs in PLUS better.
10386 (nonoverlapping_memrefs_p): Test offsets and sizes when given
10387 identical gimple_reg exprs.
10388
10389 2015-08-21 Nathan Sidwell <nathan@acm.org>
10390
10391 * config/nvptx/nvptx.md (allocate_stack): Emit sorry during
10392 expansion.
10393 * config/nvptx/nvptx.c (nvptx_declare_function_name): Look at
10394 crtl->stack_alignment_needed to determine alignment.
10395 (nvptx_get_drap_rtx): New.
10396 (TARGET_GET_DRAP_RTX): Override.
10397 * config/nvptx/nvptx.h (MAX_STACK_ALIGNMENT): Set.
10398
10399 2015-08-21 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
10400
10401 * config.build: Remove case for m68000-hp-hpux* | m68k-hp-hpux*.
10402
10403 2015-08-21 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
10404
10405 * configure.ac: Remove uwin* cases.
10406 * config.build: Remove cases for i370-*-opened*, i370-*-mvs*,
10407 i[34567]86-*-sco3.2v5*, i[34567]86-sequent-ptx4*,
10408 i[34567]86-sequent-sysv4*, i[34567]86-*-sysv4*,
10409 i[34567]86-*-udk*, i[34567]86-*-uwin*, i386-*-vsta.
10410 * config.host: Remove cases for i370-*-opened*, i370-*-mvs*,
10411 i[34567]86-*-uwin*, powerpc-*-beos*.
10412
10413 2015-08-21 Richard Sandiford <richard.sandiford@arm.com>
10414
10415 * gencodes.c (gencodes): Print the comma for the preceding
10416 enum value rather than the current one. Use aliased enum values
10417 rather than #defines for compiled-out patterns.
10418 (main): Update accordingly. Replace LAST_INSN_CODE with
10419 NUM_INSN_CODES.
10420 * lra.c (insn_code_data): Update accordingly.
10421 (finish_insn_code_data_once, get_static_insn_data): Likewise.
10422 * recog.h (target_recog): Likewise.
10423 (preprocess_insn_constraints): Change parameter to unsigned int.
10424 * recog.c (preprocess_insn_constraints): Likewise.
10425 (recog_init): Replace LAST_INSN_CODE with NUM_INSN_CODES.
10426 * tree-vect-stmts.c (vectorizable_operation): Simplify.
10427
10428 2015-08-21 Markus Trippelsdorf <markus@trippelsdorf.de>
10429
10430 PR rtl-optimization/61657
10431 * loop-iv.c (iv_number_of_iterations): Declare up and down as
10432 unsigned. Remove superflous uint64_t cast.
10433
10434 2014-08-21 Felix Yang <felix.yang@huawei.com>
10435 Jiji Jiang <jiangjiji@huawei.com>
10436
10437 * value-prof.c (interesting_stringop_to_profile_p): Removed FNDECL
10438 argument and get builtin function code directly from CALL.
10439 (gimple_stringop_fixed_value): Modified accordingly.
10440 (gimple_stringops_transform, gimple_stringops_values_to_profile):
10441 Modified accordingly and only accept BUILT_IN_NORMAL string operations.
10442
10443 2015-08-21 Dominik Vogt <vogt@linux.vnet.ibm.com>
10444
10445 * config/s390/s390-builtins.def: Fix value range of vec_load_bndry.
10446
10447 2015-08-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
10448
10449 * fold-const.c (fold_binary_loc) : Move sqrt(x)*sqrt(x) as x
10450 to match.pd.
10451 Move Optimize pow(x,y)*pow(z,y) as pow(x*z,y)to match.pd.
10452 Move Optimize tan(x)*cos(x) as sin(x) to match.pd.
10453 Move Optimize x*pow(x,c) as pow(x,c+1) to match.pd.
10454 Move Optimize pow(x,c)*x as pow(x,c+1) to match.pd.
10455 Move Optimize sin(x)/cos(x) as tan(x) to match.pd.
10456 Move Optimize cos(x)/sin(x) as 1.0/tan(x) to match.pd.
10457 Move Optimize sin(x)/tan(x) as cos(x) to match.pd.
10458 Move Optimize tan(x)/sin(x) as 1.0/cos(x) to match.pd.
10459 Move Optimize pow(x,c)/x as pow(x,c-1) to match.pd.
10460 Move Optimize x/pow(y,z) into x*pow(y,-z) to match.pd.
10461
10462 * match.pd (SIN ) : New Operator.
10463 (TAN) : New Operator.
10464 (mult (SQRT@1 @0) @1) : New simplifier.
10465 (mult (POW:s @0 @1) (POW:s @2 @1)) : New simplifier.
10466 (mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
10467 (mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
10468 (rdiv (SIN:s @0) (COS:s @0)) : New simplifier.
10469 (rdiv (COS:s @0) (SIN:s @0)) : New simplifier.
10470 (rdiv (SIN:s @0) (TAN:s @0)) : New simplifier.
10471 (rdiv (TAN:s @0) (SIN:s @0)) : New simplifier.
10472 (rdiv (POW:s @0 REAL_CST@1) @0) : New simplifier.
10473 (rdiv @0 (SQRT:s (rdiv:s @1 @2))) : New simplifier.
10474 (rdiv @0 (POW:s @1 @2)) : New simplifier.
10475
10476 2015-08-21 Bin Cheng <bin.cheng@arm.com>
10477
10478 * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Break
10479 loop if EXPR is simplified to const value.
10480
10481 2015-08-21 Yury Gribov <y.gribov@samsung.com>
10482
10483 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
10484 BUILT_IN_UBSAN_HANDLE_NONNULL_ARG): Fix builtin types.
10485
10486 2015-08-21 Richard Biener <rguenther@suse.de>
10487
10488 PR middle-end/67285
10489 * gimple-fold.c (replace_stmt_with_simplification): Assert
10490 seq is empty when replacing a call with itself but different
10491 arguments.
10492 * gimple-match-head.c (maybe_push_res_to_seq): When pushing
10493 a call require that it is const.
10494
10495 2015-08-20 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10496
10497 * defaults.h (CONSTANT_ALIGNMENT): New macro definition.
10498 * builtins.c (get_object_alignment_2): Adjust.
10499 * varasm.c (align_variable): Likewise.
10500 (get_variable_align): Likewise.
10501 (build_constant_desc): Likewise.
10502 (force_const_mem): Likewise.
10503 * doc/tm.texi.in: Likewise.
10504 * doc/tm.texi: Regenerate.
10505
10506 2015-08-20 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10507
10508 * genconfig.c (main): Always define HAVE_cc0.
10509 * recog.c (rest_of_handle_peephole2): Adjust.
10510
10511 2015-08-20 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10512
10513 * reorg.c (relax_delay_slots): Don't use #if to check value of
10514 HAVE_cc0.
10515
10516 2015-08-20 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10517
10518 * genconfig.c (main): Always define HAVE_CONDITIONAL_EXECUTION.
10519 * targhooks.c (default_have_conditional_execution): Adjust.
10520
10521 2015-08-20 Richard Sandiford <richard.sandiford@arm.com>
10522
10523 * rtl.h (rtvec_all_equal_p): Declare.
10524 (const_vec_duplicate_p, unwrap_const_vec_duplicate): New functions.
10525 * rtl.c (rtvec_all_equal_p): New function.
10526 * expmed.c (expand_mult): Use unwrap_const_vec_duplicate.
10527 * config/aarch64/aarch64.c (aarch64_vect_float_const_representable_p)
10528 (aarch64_simd_dup_constant): Use const_vec_duplicate_p.
10529 * config/arm/arm.c (neon_vdup_constant): Likewise.
10530 * config/s390/s390.c (s390_contiguous_bitmask_vector_p): Likewise.
10531 * config/tilegx/constraints.md (W, Y): Likewise.
10532 * config/tilepro/constraints.md (W, Y): Likewise.
10533 * config/spu/spu.c (spu_legitimate_constant_p): Likewise.
10534 (classify_immediate): Use unwrap_const_vec_duplicate.
10535 * config/tilepro/predicates.md (reg_or_v4s8bit_operand): Likewise.
10536 (reg_or_v2s8bit_operand): Likewise.
10537 * config/tilegx/predicates.md (reg_or_v8s8bit_operand): Likewise.
10538 (reg_or_v4s8bit_operand): Likewise.
10539
10540 2015-08-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10541
10542 * config/rs6000/altivec.h (vec_pmsum_be): New #define.
10543 (vec_shasigma_be): New #define.
10544 * config/rs6000/rs6000-builtin.def (VPMSUMB): New BU_P8V_AV2_2.
10545 (VPMSUMH): Likewise.
10546 (VPMSUMW): Likewise.
10547 (VPMSUMD): Likewise.
10548 (VPMSUM): New BU_P8V_OVERLOAD_2.
10549 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): New
10550 entries for VEC_MADD and VEC_VPMSUM.
10551
10552 2015-08-20 Georg-Johann Lay <avr@gjlay.de>
10553
10554 * config/avr/avr.c (avr_insert_attributes): In diagnostic essage:
10555 Multiply argument avr_n_flash by 64 to match unit of "KiB".
10556 (avr_pgm_check_var_decl): Same.
10557
10558 2015-08-20 Alan Lawrence <alan.lawrence@arm.com>
10559
10560 * config/arm/arm-builtins.c (arm_init_simd_builtin_types): Move
10561 initialization of HFmode scalar type (float16_t) to...
10562 (arm_init_fp16_builtins): ... Here. Combine with __fp16 initialization
10563 code.
10564
10565 (arm_init_builtins): Call arm_init_fp16_builtins earlier and always.
10566
10567 * config/arm/arm_neon.h (vcvt_f16_f32, vcvt_f32_f16): Condition on
10568 having an -mfp16-format.
10569
10570 2015-08-20 Richard Sandiford <richard.sandiford@arm.com>
10571
10572 * config/i386/predicates.md (vector_all_ones_operand): Use
10573 CONSTM1_RTX to simplify definition.
10574
10575 2015-08-20 Richard Biener <rguenther@suse.de>
10576
10577 * toplev.c (compile_file): Remove loop calling late_global_decl
10578 on all symbols.
10579 * varpool.c (varpool_node::assemble_decl): Call late_global_decl
10580 on decls we assembled.
10581
10582 2015-08-20 James Greenhalgh <james.greenhalgh@arm.com>
10583
10584 * common/config/aarch64/aarch64-common.c
10585 (AARCH64_CPU_NAME_LENGTH): Delete.
10586 (aarch64_option_extension): New.
10587 (all_extensions): Likewise.
10588 (processor_name_to_arch): Likewise.
10589 (arch_to_arch_name): Likewise.
10590 (all_cores): New.
10591 (all_architectures): Likewise.
10592 (aarch64_get_extension_string_for_isa_flags): Likewise.
10593 (aarch64_rewrite_selected_cpu): Change to rewrite CPU names to
10594 architecture names.
10595 * config/aarch64/aarch64-protos.h
10596 (aarch64_get_extension_string_for_isa_flags): New.
10597 * config/aarch64/aarch64.c (aarch64_print_extension): Delete.
10598 (aarch64_option_print): Get the string to print from
10599 aarch64_get_extension_string_for_isa_flags.
10600 (aarch64_declare_function_name): Likewise.
10601 * config/aarch64/aarch64.h (BIG_LITTLE_SPEC): Rename to...
10602 (MCPU_TO_MARCH_SPEC): This.
10603 (ASM_CPU_SPEC): Use it.
10604 (BIG_LITTLE_SPEC_FUNCTIONS): Rename to...
10605 (MCPU_TO_MARCH_SPEC_FUNCTIONS): ...This.
10606 (EXTRA_SPEC_FUNCTIONS): Use it.
10607
10608 2015-08-20 Simon Dardis <simon.dardis@imgtec.com>
10609
10610 * config/mips/mips.c (mips_expand_block_move): Enable inline memcpy
10611 expansion when !ISA_HAS_LWL_LWR.
10612 (mips_block_move_straight): Update the size of elements copied to
10613 account for alignment when !ISA_HAS_LWL_LWR.
10614 * config/mips/mips.h (MIPS_MIN_MOVE_MEM_ALIGN): New macro.
10615
10616 2015-08-19 Jiong Wang <jiong.wang@arm.com>
10617
10618 * expr.c (expand_expr_real_2): Check gimple statement during
10619 LSHIFT_EXPR expand.
10620
10621 2015-08-19 Magnus Granberg <zorry@gentoo.org>
10622
10623 * common.opt (fstack-protector): Initialize to -1.
10624 (fstack-protector-all): Likewise.
10625 (fstack-protector-strong): Likewise.
10626 (fstack-protector-explicit): Likewise.
10627 * configure.ac: Add --enable-default-ssp.
10628 * defaults.h (DEFAULT_FLAG_SSP): New. Default SSP to strong.
10629 * opts.c (finish_options): Update opts->x_flag_stack_protect if it is
10630 -1.
10631 * doc/install.texi: Document --enable-default-ssp.
10632 * config.in: Regenerated.
10633 * configure: Likewise.
10634
10635 2015-08-19 Alexandre Oliva <aoliva@redhat.com>
10636
10637 PR rtl-optimization/64164
10638 * cfgexpand.c (parm_maybe_byref_p): Renamed to...
10639 (parm_in_stack_slot_p): ... this. Disregard mode, what
10640 matters is whether the parm will live in a pseudo or a stack
10641 slot.
10642 (expand_one_ssa_partition): Deal with params without a default
10643 def. Disregard mode.
10644 * cfgexpand.h: Renamed function declaration.
10645 * tree-ssa-coalesce.c: Adjust.
10646 * function.c (split_complex_args): Allocate stack slot for
10647 unassigned parms before splitting.
10648 (parm_in_unassigned_mem_p): New. Use it instead of
10649 parm_maybe_byref_p throughout this file.
10650 (assign_parm_setup_block): Use it. Accept pseudos in the
10651 expand-assigned rtl.
10652 (assign_parm_setup_reg): Drop BLKmode requirement.
10653 (assign_parm_setup_stack): Allocate and fill in the address of
10654 unassigned MEM parms.
10655
10656 2015-08-19 David Sherwood <david.sherwood@arm.com>
10657
10658 * genmodes.c (emit_mode_unit_size_inline): New function.
10659 (emit_mode_unit_precision_inline): New function.
10660 (emit_insn_modes_h): Emit new #define. Emit new functions.
10661 (emit_mode_unit_size): New function.
10662 (emit_mode_unit_precision): New function.
10663 (emit_mode_adjustments): Add mode_unit_size adjustments.
10664 (emit_insn_modes_c): Emit new arrays.
10665 * machmode.h (GET_MODE_UNIT_SIZE, GET_MODE_UNIT_PRECISION): Update to
10666 use new inline methods.
10667
10668 2015-08-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10669
10670 * config/aarch64/aarch64.c (bit_count): Delete prototype
10671 and definition.
10672 (aarch64_print_operand): Use popcount_hwi instead of the above.
10673
10674 2015-08-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10675
10676 * config/aarch64/aarch64-option-extensions.def: Delete obsolete
10677 comment.
10678
10679 2015-08-19 Marek Polacek <polacek@redhat.com>
10680
10681 PR middle-end/67133
10682 * gimple-ssa-isolate-paths.c
10683 (insert_trap_and_remove_trailing_statements): Rename to ...
10684 (insert_trap): ... this. Don't remove trailing statements; split
10685 block instead.
10686 (find_explicit_erroneous_behaviour): Don't remove all outgoing edges.
10687
10688 2015-08-19 Mikael Morin <mikael@gcc.gnu.org>
10689
10690 PR other/67042
10691 * hwint.h (sext_hwi): Switch to unsigned for the left shift, and
10692 conditionalize the whole on __GNUC__. Add fallback code
10693 depending neither on undefined nor implementation-defined behaviour.
10694
10695 2015-08-19 Jiong Wang <jiong.wang@arm.com>
10696
10697 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Replace
10698 whitespaces with tab.
10699
10700 2015-08-19 Florian Weimer <fweimer@redhat.com>
10701
10702 * prj.adb (For_Every_Project_Imported_Context.Recursive_Check_Context):
10703 Move Name_Id_Set instantiation to the Prj package, to avoid trampolines.
10704 * prj-proc.adb (Process.Process_Expression_Variable_Decl):
10705 Move Name_Ids instantiation to the Prj.Proc package, to avoid
10706 trampolines.
10707
10708 2015-08-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10709
10710 * config/arm/arm.c (bounds_check): Use %wd print format
10711 for HOST_WIDE_INT arguments.
10712
10713 2015-08-18 Trevor Saunders <tbsaunde@tbsaunde.org>
10714
10715 * bb-reorder.c, cfgloop.h, collect2.c, combine.c, dse.c,
10716 dwarf2cfi.c, gcse-common.h, genopinit.c, ggc-page.c, machmode.h,
10717 mcf.c, modulo-sched.c, omp-low.c, read-rtl.c, sched-rgn.c,
10718 signop.h, tree-call-cdce.c, tree-dfa.c, tree-diagnostic.c,
10719 tree-inline.h, tree-scalar-evolution.c, tree-ssa-address.c,
10720 tree-ssa-loop-niter.c, tree-ssa-loop.h, tree-ssa-pre.c,
10721 tree-ssa-reassoc.c, tree-ssa-sccvn.h, tree-ssa-structalias.c,
10722 tree-ssa-uninit.c, tree-ssa.h, tree-vect-loop-manip.c,
10723 tree-vectorizer.h, tree-vrp.c, var-tracking.c: Remove useless
10724 typedefs.
10725
10726 2015-08-18 trevor Saunders <tbsaunde@tbsaunde.org>
10727
10728 * bt-load.c, cgraph.h, dwarf2out.c, dwarf2out.h, final.c,
10729 function.c, graphite-scop-detection.c, haifa-sched.c,
10730 ipa-devirt.c, ipa-split.c, recog.c, ree.c, stmt.c,
10731 tree-data-ref.c, tree-ssa-dom.c, tree-ssa-loop-ivopts.c,
10732 varasm.c: Remove typedefs of structs.
10733
10734 2015-08-18 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
10735
10736 * config/rs6000/altivec.h (vec_adde): New define.
10737 (vec_addec): Likewise.
10738 (vec_double): Likewise.
10739 (vec_bperm): Likewise.
10740 (vec_gb): Likewise.
10741 * config/rs6000/rs6000-builtin.def (ADDE): New
10742 BU_ALTIVEC_OVERLOAD_3.
10743 (ADDEC): Likewise.
10744 (DOUBLE): New BU_VSX_OVERLOAD_1.
10745 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add new
10746 entries for ALTIVEC_BUILTIN_VEC_ADDC, ALTIVEC_BUILTIN_VEC_ADDE,
10747 ALTIVEC_BUILTIN_VEC_ADDEC, ALTIVEC_BUILTIN_VEC_ANDC,
10748 VSX_BUILTIN_VEC_DOUBLE, ALTIVEC_BUILTIN_VEC_MERGEH,
10749 ALTIVEC_BUILTIN_VEC_MERGEL, ALTIVEC_BUILTIN_VEC_NOR,
10750 ALTIVEC_BUILTIN_VEC_OR, ALTIVEC_BUILTIN_VEC_XOR,
10751 ALTIVEC_BUILTIN_VEC_PERM, ALTIVEC_BUILTIN_VEC_SEL,
10752 P8V_BUILTIN_VEC_EQV, P8V_BUILTIN_VEC_NAND, P8V_BUILTIN_VEC_ORC,
10753 and P8V_BUILTIN_VEC_VBPERMQ.
10754
10755 2015-08-18 Jason Merrill <jason@redhat.com>
10756
10757 * print-tree.c (print_node): Handle TREE_BINFO.
10758
10759 2015-08-18 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
10760
10761 PR middle-end/36757
10762 * builtins.c (expand_builtin_signbit): Add asserts to make sure
10763 we can expand BUILT_IN_SIGNBIT inline.
10764 * builtins.def (BUILT_IN_SIGNBIT): Make type-generic.
10765 * doc/extend.texi: Document the type-generic __builtin_signbit.
10766
10767 2015-08-18 Richard Sandiford <richard.sandiford@arm.com>
10768
10769 PR rtl-optimization/67218
10770 * simplify-rtx.c (exact_int_to_float_conversion_p): New function.
10771 (simplify_unary_operation_1): Use it.
10772
10773 2015-08-18 Marek Polacek <polacek@redhat.com>
10774
10775 PR middle-end/67222
10776 * gimple-low.c (lower_stmt): Don't lower BUILT_IN_POSIX_MEMALIGN
10777 if the call isn't valid.
10778 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Check builtins using
10779 gimple_call_builtin_p.
10780 (call_may_clobber_ref_p_1): Likewise.
10781 (stmt_kills_ref_p): Likewise.
10782
10783 2015-08-18 Robert Suchanek <robert.suchanek@imgtec.com>
10784
10785 * config/mips/mips-protos.h (mips_hard_regno_rename_ok): New prototype.
10786 * config/mips/mips.c (mips_hard_regno_rename_ok): New function.
10787 (mips_hard_regno_scratch_ok): Likewise.
10788 (TARGET_HARD_REGNO_SCRATCH_OK): Define macro.
10789 * config/mips/mips.h (HARD_REGNO_RENAME_OK): New.
10790
10791 2015-08-18 Bin Cheng <bin.cheng@arm.com>
10792
10793 * tree-ssa-loop-niter.c (refine_value_range_using_guard): New.
10794 (determine_value_range): Call refine_value_range_using_guard for
10795 each loop initial condition to improve value range.
10796
10797 2015-08-17 Aldy Hernandez <aldyh@redhat.com>
10798
10799 * config/i386/i386.c: Remove include of fibheap.h.
10800
10801 2015-08-17 Richard Biener <rguenther@suse.de>
10802
10803 PR tree-optimization/67221
10804 * tree-ssa-sccvn.c (visit_phi): Keep all-TOP args TOP.
10805 (sccvn_dom_walker::before_dom_children): Mark backedges of
10806 non-executable blocks as not executable.
10807
10808 2015-08-17 David Sherwood <david.sherwood@arm.com>
10809
10810 * config/arm/arm.c (neon_element_bits): Replace call to
10811 GET_MODE_BITSIZE (GET_MODE_INNER (m)) with GET_MODE_UNIT_BITSIZE (m).
10812 * config/arm/neon.md (neon_vget_lane<mode>): Likewise.
10813 (neon_vget_laneu<mode>, neon_vset_lane<mode>): Likewise
10814 (neon_vdup_lane<mode>): Likewise.
10815 * config/i386/i386.c (ix86_expand_int_vcond): Likewise.
10816 (ix86_expand_multi_arg_builtin, ix86_expand_reduc): Likewise.
10817 (expand_vec_perm_palignr, ix86_expand_sse2_abs): Likewise.
10818 * config/rs6000/rs6000.c (rs6000_do_expand_vec_perm): Likewise.
10819 * config/spu/spu.c (arith_immediate_p): Likewise.
10820 * expmed.c (store_bit_field_1, extract_bit_field_1): Likewise.
10821 * expr.c (expand_expr_real_2): Likewise.
10822 * optabs.c (shift_amt_for_vec_perm_mask): Likewise.
10823 * simplify-rtx.c (simplify_immed_subreg): Likewise.
10824 * tree-cfg.c (verify_gimple_assign_ternary): Likewise.
10825 * tree-vect-patterns.c (vect_recog_mixed_size_cond_pattern): Likewise.
10826 New variable.
10827 * fold-const.c (fold_binary_loc): Replace call to
10828 GET_MODE_PRECISION (GET_MODE_INNER (m)) with
10829 GET_MODE_UNIT_PRECISION (m).
10830
10831 2015-08-17 Mike Stump <mikestump@comcast.net>
10832
10833 * config/arm/arm.c (arm_block_move_unaligned_straight):
10834 Emit normal move instead of unaligned load when source or destination
10835 are appropriately aligned.
10836
10837 2015-08-17 Richard Biener <rguenther@suse.de>
10838 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
10839
10840 PR middle-end/16107
10841 * match.pd (div (coss (op @0) : New simplifier.
10842
10843 2015-08-14 Alexandre Oliva <aoliva@redhat.com>
10844
10845 PR rtl-optimization/64164
10846 PR bootstrap/66978
10847 PR middle-end/66983
10848 PR rtl-optimization/67000
10849 PR middle-end/67034
10850 PR middle-end/67035
10851 * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
10852 * tree-ssa-copyrename.c: Removed.
10853 * opts.c (default_options_table): Drop -ftree-copyrename. Add
10854 -ftree-coalesce-vars.
10855 * passes.def: Drop all occurrences of pass_rename_ssa_copies.
10856 * common.opt (ftree-copyrename): Ignore.
10857 (ftree-coalesce-inlined-vars): Likewise.
10858 * doc/invoke.texi: Remove the ignored options above.
10859 * gimple-expr.h (gimple_can_coalesce_p): Move declaration
10860 * tree-ssa-coalesce.h: ... here.
10861 * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
10862 headers required by it.
10863 * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
10864 across variables when flag_tree_coalesce_vars. Check register
10865 use and promoted modes to allow coalescing. Do not coalesce
10866 maybe-byref parms with SSA_NAMEs of other variables, or
10867 anonymous SSA_NAMEs. Moved to tree-ssa-coalesce.c.
10868 * tree-ssa-live.c (struct tree_int_map_hasher): Move along
10869 with its member functions to tree-ssa-coalesce.c.
10870 (var_map_base_init): Likewise. Renamed to
10871 compute_samebase_partition_bases.
10872 (partition_view_normal): Drop want_bases parameter.
10873 (partition_view_bitmap): Likewise.
10874 * tree-ssa-live.h: Adjust declarations.
10875 * tree-ssa-coalesce.c: Include explow.h and cfgexpand.h.
10876 (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
10877 default defs at the entry point.
10878 (dump_part_var_map): New.
10879 (compute_optimized_partition_bases): New, called by...
10880 (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
10881 of compute_samebase_partition_bases. Adjust.
10882 * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
10883 * cfgexpand.c (leader_merge, parm_maybe_byref_p): New.
10884 (ssa_default_def_partition): New.
10885 (get_rtl_for_parm_ssa_default_def): New.
10886 (align_local_variable, add_stack_var): Support anonymous SSA
10887 names.
10888 (defer_stack_allocation): Likewise. Declare earlier.
10889 (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
10890 vars. Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
10891 Do no record deferred-allocation marker in
10892 SA.partition_to_pseudo.
10893 (expand_stack_vars): Adjust check for the marker in it.
10894 (expand_one_stack_var_at): Handle anonymous SSA_NAMEs. Drop
10895 redundant MEM attr setting.
10896 (expand_one_stack_var_1): Handle anonymous SSA_NAMEs. Renamed
10897 from...
10898 (expand_one_stack_var): ... this. New wrapper to check and
10899 skip already expanded SSA partitions.
10900 (record_alignment_for_reg_var): New, factored out of...
10901 (expand_one_var): ... this.
10902 (expand_one_ssa_partition): New.
10903 (adjust_one_expanded_partition_var): New.
10904 (expand_one_register_var): Check and skip already expanded SSA
10905 partitions.
10906 (expand_used_vars): Don't create DECLs for anonymous SSA
10907 names. Expand all SSA partitions, then adjust all SSA names.
10908 (pass::execute): Replace the loops that set
10909 SA.partition_to_pseudo from partition leaders and cleared
10910 DECL_RTL for multi-location variables, and that which used to
10911 rename vars and set attrs, with one that clears DECL_RTL and
10912 checks that PARMs and RESULTs default_defs match DECL_RTL.
10913 * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
10914 * emit-rtl.c: Include stor-layout.h.
10915 (set_reg_attrs_for_parm): Handle NULL decl.
10916 (set_reg_attrs_for_decl_rtl): Take mode from expression if
10917 it's not a DECL.
10918 * stmt.c (emit_case_decision_tree): Pass it the SSA_NAME
10919 rather than its possibly-NULL DECL.
10920 * explow.c (promote_ssa_mode): New.
10921 * explow.h (promote_ssa_mode): Declare.
10922 * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
10923 (read_complex_part): Export.
10924 * expr.h (read_complex_part): Declare.
10925 * cfgexpand.h (parm_maybe_byref_p): Declare.
10926 * function.c: Include cfgexpand.h.
10927 (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
10928 (use_register_for_parm_decl): Wrapper for the above to
10929 special-case the result_ptr.
10930 (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
10931 (split_complex_args): Take assign_parm_data_all argument.
10932 Pass it to rtl_for_parm. Set up rtl and context for split
10933 args. Reset complex parm before fetching its default decl
10934 rtl.
10935 (assign_parms_unsplit_complex): Use the default-def complex
10936 parm rtl if it matches the components.
10937 (assign_parms_augmented_arg_list): Adjust.
10938 (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
10939 multiple locations. Recognize split complex args.
10940 (assign_parm_adjust_stack_rtl): Add all and parm arguments,
10941 for rtl_for_parm. For SSA-assigned parms, zero stack_parm.
10942 (assign_parm_setup_block): Prefer SSA-assigned location, and
10943 fill in its address if the memory location of a maybe-byref
10944 parm was not assigned by cfgexpand.
10945 (assign_parm_setup_reg): Likewise. Adjust its mode as
10946 needed. Use entry_parm for equiv if stack_parm is NULL. Make
10947 sure passed_pointer parms don't need conversion. Copy address
10948 or value as needed.
10949 (assign_parm_setup_stack): Prefer SSA-assigned location.
10950 (assign_parms): Maybe reset DECL_RTL of params. Adjust stack
10951 rtl before testing for pointer bounds. Special-case result_ptr.
10952 (expand_function_start): Maybe reset DECL_RTL of result.
10953 Prefer SSA-assigned location for result and static chain.
10954 Factor out DECL_RESULT and SET_DECL_RTL. Convert static chain
10955 to Pmode if needed, from H.J. Lu <hongjiu.lu@intel.com>.
10956 * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
10957 anonymous SSA names. Use promote_ssa_mode.
10958 (get_temp_reg): Likewise.
10959 (remove_ssa_form): Adjust.
10960 * stor-layout.c (layout_decl): Don't set mem attributes of
10961 non-MEMs.
10962 * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
10963 and get its reg_usage for reg invalidation.
10964 (compute_bb_dataflow): Pass it insn.
10965 (emit_notes_in_bb): Likewise.
10966
10967 2015-08-14 Marek Polacek <polacek@redhat.com>
10968
10969 * tree-core.h (tree_base): Fix typo.
10970
10971 2015-08-14 Marek Polacek <polacek@redhat.com>
10972
10973 PR middle-end/67133
10974 * gimple.c (infer_nonnull_range_by_attribute): Check that the
10975 nonnull argument position is not outside function arguments.
10976
10977 2015-08-14 Matthew Wahab <matthew.wahab@arm.com>
10978
10979 PR target/67143
10980 * config/aarch64/atomics.md (atomic_<optab><mode>): Replace
10981 'lconst_atomic' with 'const_atomic'.
10982 (atomic_fetch_<optab><mode>): Likewise.
10983 (atomic_<optab>_fetch<mode>): Likewise.
10984 * config/aarch64/iterators.md (lconst-atomic): Move below
10985 'const_atomic'.
10986 (const_atomic): New.
10987
10988 2015-08-14 Thomas Schwinge <thomas@codesourcery.com>
10989 Bernd Schmidt <bernds@codesourcery.com>
10990
10991 * config/nvptx/nvptx.c (nvptx_option_override): Don't override
10992 debug options.
10993 * config/nvptx/nvptx.h (DWARF2_LINENO_DEBUGGING_INFO): Define.
10994 (DWARF2_DEBUGGING_INFO): Don't define.
10995 * debug.h (dwarf2_lineno_debug_hooks): Declare.
10996 * toplev.c (process_options): Add a case for it.
10997 * dwarf2out.c (dwarf2_lineno_debug_hooks): New variable.
10998 (dwarf2out_init): Skip most initializations if
10999 DWARF2_LINENO_DEBUGGING_INFO, but set cur_line_info_table in that
11000 case.
11001 * defaults.h (PREFERRED_DEBUGGING_TYPE): Also use DWARF2_DEBUG if
11002 DWARF2_LINENO_DEBUGGING_INFO.
11003 * opts.c (set_debug_level): Likewise.
11004
11005 2015-08-14 James Greenhalgh <james.greenhalgh@arm.com>
11006
11007 * config/arm/types.md (is_neon_type): Add missing types.
11008
11009 2015-08-14 Yuri Rumyantsev <ysrumyan@gmail.com>
11010
11011 * config/i386/driver-i386.c (host_detect_local_cpu): Add support
11012 for skylake.
11013 * config/i386/i386.c (PTA_SKYLAKE): New macros.
11014 (processor_alias_table): Add skylake description.
11015 (enum processor_model): Add skylake processor.
11016 (arch_names_table): Add skylake record.
11017 * doc/invoke.texi: Add skylake item.
11018
11019 2015-08-13 Andrew MacLeod <amacleod@redhat.com>
11020
11021 * ira-int.h: Include recog.h.
11022 * ira-build.c: Don't include recog.h.
11023 * ira-color.c: Likewise.
11024 * ira-conflicts.c: Likewise.
11025 * ira-costs.c: Likewise.
11026 * ira-emit.c: Likewise.
11027 * ira-lives.c: Likewise.
11028 * ira.c: Likewise.
11029 * sched-deps.c: Likewise.
11030 * sel-sched.c: Likewise.
11031 * target-globals.c: Likewise.
11032
11033 2015-08-13 Richard Sandiford <richard.sandiford@arm.com>
11034
11035 PR bootstrap/55035
11036 * reload1.c (elimination_costs_in_insn): Make it obvious to the
11037 compiler that the n_dups and n_operands loop bounds are invariant.
11038
11039 2015-08-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11040
11041 * ifcvt.c (noce_try_store_flag_constants): Handle PLUS-immediate
11042 expressions in A and B.
11043
11044 2015-08-13 Richard Biener <rguenther@suse.de>
11045
11046 * tree.c (nonnull_arg_p): Move from ...
11047 * tree-vrp.c (nonnull_arg_p): ... here.
11048 * tree.h (nonnull_arg_p): Declare.
11049 * tree-ssa-sccvn.c (init_scc_vn): Perform all lattice init
11050 here, register ptr != 0 for nonnull_arg_p pointer arguments.
11051 Properly initialize static chain and by-reference result pointer.
11052 (run_scc_vn): Adjust.
11053
11054 2015-08-13 Robert Suchanek <robert.suchanek@imgtec.com>
11055
11056 * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Enable load/store pairs for
11057 TUNE_I6400.
11058
11059 2015-08-13 Matthew Wahab <matthew.wahab@arm.com>
11060
11061 * config/aarch64/aarch64-protos.h
11062 (aarch64_gen_atomic_cas): Declare.
11063 * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap):
11064 Choose appropriate instruction pattern for the target.
11065 (aarch64_gen_atomic_cas): New.
11066 * config/aarch64/atomics.md (UNSPECV_ATOMIC_CAS): New.
11067 (atomic_compare_and_swap<mode>_1): Rename to
11068 aarch64_compare_and_swap<mode>. Fix some indentation.
11069 (aarch64_compare_and_swap<mode>_lse): New.
11070 (aarch64_atomic_cas<mode>): New.
11071
11072 2015-08-13 Matthew Wahab <matthew.wahab@arm.com>
11073
11074 * config/aarch64/aarch64.h (AARCH64_ISA_LSE): New.
11075 (TARGET_LSE): New.
11076
11077 2015-08-13 Richard Biener <rguenther@suse.de>
11078
11079 PR tree-optimization/67191
11080 * tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children): Remove
11081 assert we value-numbered last stmts operand because it can validly
11082 trigger for unreachable code.
11083
11084 2015-08-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11085
11086 PR rtl-optimization/67103
11087 * ifcvt.c (noce_try_store_flag_constants): Move
11088 x = (-(test != 0) & (b - a)) + a transformation to...
11089 (noce_try_cmove): ... Here. Try it if normal conditional
11090 move fails.
11091
11092 2015-08-13 Robert Suchanek <robert.suchanek@imgtec.com>
11093
11094 * config/mips/mips.c (mips_rtx_cost_data): Remove costs for W32 and W64
11095 pseudo-processors.
11096 * config/mips/mips.md (processor): Remove w32 and w64.
11097
11098 2015-08-13 Richard Biener <rguenther@suse.de>
11099
11100 PR tree-optimization/66502
11101 PR tree-optimization/67167
11102 * tree-ssa-sccvn.c (vn_phi_compute_hash): Do not include
11103 backedge arguments.
11104 (vn_phi_lookup): Adjust.
11105 (vn_phi_insert): Likewise.
11106 (visit_phi): Prefer to value-number to another PHI node
11107 over value-numbering to a PHI argument.
11108 (init_scc_vn): Mark DFS back edges.
11109
11110 2015-08-13 Richard Biener <rguenther@suse.de>
11111
11112 * gimple.h (gcall::code_): New constant static member.
11113 (gcond::code_): Likewise.
11114 * gimple.c (gcall::code_): Define.
11115 (gcond::code_): Likewise.
11116 (is_a_helper <const gcond *>): Add.
11117 (gimple_call_lhs): Use GIMPLE_CHECK2 in the gimple overload
11118 and forward to a new gcall overload with less checking and a
11119 cheaper way to access the operand.
11120 (gimple_call_lhs_ptr): Likewise.
11121 (gimple_call_set_lhs): Likewise.
11122 (gimple_call_internal_p): Likewise.
11123 (gimple_call_with_bounds_p): Likewise.
11124 (gimple_call_set_with_bounds): Likewise.
11125 (gimple_call_internal_fn): Likewise.
11126 (gimple_call_set_ctrl_altering): Likewise.
11127 (gimple_call_ctrl_altering_p): Likewise.
11128 (gimple_call_fntype): Likewise.
11129 (gimple_call_fn): Likewise.
11130 (gimple_call_fn_ptr): Likewise.
11131 (gimple_call_set_fndecl): Likewise.
11132 (gimple_call_fndecl): Likewise.
11133 (gimple_call_chain): Likewise.
11134 (gimple_call_num_args): Likewise.
11135 (gimple_call_arg): Likewise.
11136 (gimple_call_arg_ptr): Likewise.
11137 (gimple_call_set_arg): Likewise.
11138 (gimple_call_noreturn_p): Likewise.
11139 (gimple_cond_code): Likewise.
11140 (gimple_cond_lhs): Likewise.
11141 (gimple_cond_rhs): Likewise.
11142 (gimple_has_lhs): Reduce checking.
11143
11144 2015-08-13 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
11145
11146 PR middle-end/25529
11147 * match.pd (div (mult @0 @1) @1) : New simplifier.
11148
11149 2015-08-12 Michael Meissner <meissner@linux.vnet.ibm.com>
11150
11151 PR target/67071
11152 * config/rs6000/predicates.md (easy_vector_constant_vsldoi): New
11153 predicate to allow construction of vector constants using the
11154 VSLDOI vector shift instruction.
11155
11156 * config/rs6000/rs6000-protos.h (vspltis_shifted): Add
11157 declaration.
11158
11159 * config/rs6000/rs6000.c (vspltis_shifted): New function to return
11160 the number of bytes to be shifted left and filled in with either
11161 all zero or all one bits.
11162 (gen_easy_altivec_constant): Call vsplitis_shifted if no other
11163 methods exist.
11164 (output_vec_const_move): On power8, generate XXLORC to generate
11165 a vector constant with all 1's. Do a split if we need to use a
11166 VSLDOI instruction.
11167
11168 * config/rs6000/rs6000.h (EASY_VECTOR_MSB): Use mode mask to
11169 properly test for the MSB.
11170
11171 * config/rs6000/altivec.md (VSLDOI splitter): Add splitter for
11172 vector constants that can be created with VSLDOI.
11173
11174 2015-08-11 Trevor Saunders <tbsaunde@tbsaunde.org>
11175
11176 revert:
11177 * compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c,
11178 gimple-ssa-strength-reduction.c, graphite.c, init-regs.c,
11179 ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c,
11180 omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c,
11181 tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
11182 tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
11183 tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c,
11184 tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c,
11185 vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous
11186
11187 2015-08-12 Max Filippov <jcmvbkbc@gmail.com>
11188
11189 * config/xtensa/constraints.md (define_constraint "Y"): New
11190 constraint.
11191 * config/xtensa/elf.h (ASM_SPEC): Add m(no-)auto-litpools.
11192 * config/xtensa/linux.h (ASM_SPEC): Likewise.
11193 * config/xtensa/predicates.md (move_operand): Match constants
11194 and symbols in the presence of TARGET_AUTO_LITPOOLS.
11195 * config/xtensa/xtensa.c (xtensa_valid_move): Don't allow
11196 immediate references to TLS data.
11197 (xtensa_emit_move_sequence): Don't force constants to memory in
11198 the presence of TARGET_AUTO_LITPOOLS.
11199 (print_operand): Add 'y' format, same as default, but capable of
11200 printing SF mode constants as well.
11201 * config/xtensa/xtensa.md (movsi_internal, movhi_internal)
11202 (movsf_internal): Add movi pattern that loads literal.
11203 (movsf, movdf): Don't force constants to memory in the presence
11204 of TARGET_AUTO_LITPOOLS.
11205 (movdf_internal): Add 'Y' constraint.
11206 * config/xtensa/xtensa.opt (mauto-litpools): New option.
11207 * doc/invoke.text (Xtensa options): Document -mauto-litpools.
11208
11209 2015-08-12 Matthew Wahab <matthew.wahab@arm.com>
11210
11211 * config/arm/arm-fpus.def: Replace booleans with feature flags.
11212 Update comment.
11213 * config/arm/arm.c (ARM_FPU): Update macro.
11214 * config/arm/arm.h (TARGET_NEON_FP16): Update feature test.
11215 (TARGET_FP16): Likewise.
11216 (TARGET_CRYPTO): Likewise.
11217 (TARGET_NEON): Likewise.
11218 (struct arm_fpu_desc): Remove fields neon, fp16 and crypto. Add
11219 field features.
11220
11221 2015-08-12 Tom de Vries <tom@codesourcery.com>
11222
11223 PR other/67092
11224 PR other/67098
11225 * doc/install.texi: Remove --with_host_libstdcxx item. Update
11226 --with-stage1-libs, --with-boot-ldflags and --with-boot-libs items
11227 accordingly. Mention default for --with-stage1-ldflags.
11228
11229 2015-08-12 Matthew Wahab <matthew.wahab@arm.com>
11230
11231 * config/arm/arm.h (arm_fpu_feature_set): New.
11232 (ARM_FPU_FSET_HAS): New.
11233 (FPU_FL_NONE): New.
11234 (FPU_FL_NEON): New.
11235 (FPU_FL_FP16): New.
11236 (FPU_FL_CRYPTO): New.
11237
11238 2015-08-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11239
11240 * config/aarch64/aarch64.c (initialize_aarch64_code_model): Break
11241 after -mcmodel=large -fPIC sorry.
11242
11243 2015-08-12 Richard Biener <rguenther@suse.de>
11244
11245 * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Also canonicalize
11246 comparison operand order and commutative ternary op operand order.
11247 (sccvn_dom_walker::cond_stack): New state to track temporary
11248 expressions.
11249 (sccvn_dom_walker::after_dom_children): Remove tempoary expressions
11250 no longer valid.
11251 (sccvn_dom_walker::record_cond): Add a single temporary conditional
11252 expression.
11253 (sccvn_dom_walker::record_conds): Add a temporary conditional
11254 expressions and all related expressions also true/false.
11255 (sccvn_dom_walker::before_dom_children): Record temporary
11256 expressions based on the controlling condition of a single
11257 predecessor. When trying to simplify a conditional statement
11258 lookup expressions we might have inserted earlier.
11259
11260 2015-08-12 Yvan Roux <yvan.roux@linaro.org>
11261
11262 PR target/67127
11263 * config/arm/arm.md (movdi): Restrict illegitimate ldrd/strd checking
11264 to ARM core registers.
11265
11266 2015-08-12 Nathan Sidwell <nathan@acm.org>
11267
11268 * tree-vrp.c (simplify_min_or_max_using_ranges): New.
11269 (simplify_stmt_using_ranges): Simplify MIN and MAX exprs.
11270
11271 2015-08-12 Simon Dardis <simon.dardis@imgtec.com>
11272
11273 * config/mips/mips.c (mips_store_data_bypass_p): Bring code into
11274 line with comments.
11275 * config/mips/sb1.md: Update usage of mips_store_data_bypass_p.
11276
11277 2015-08-12 Richard Biener <rguenther@suse.de>
11278
11279 * gimple.h (remove_pointer): New trait.
11280 (GIMPLE_CHECK2): New inline template function.
11281 (gassign::code_): New constant static member.
11282 (is_a_helper<const gassign *>): Add.
11283 (gimple_assign_lhs): Use GIMPLE_CHECK2 in the gimple overload
11284 and forward to a new gassign overload with less checking and a
11285 cheaper way to access the operand.
11286 (gimple_assign_lhs_ptr): Likewise.
11287 (gimple_assign_set_lhs): Likewise.
11288 (gimple_assign_rhs1, gimple_assign_rhs1_ptr, gimple_assign_set_rhs1):
11289 Likewise.
11290 (gimple_assign_rhs2, gimple_assign_rhs2_ptr, gimple_assign_set_rhs2):
11291 Likewise.
11292 (gimple_assign_rhs3, gimple_assign_rhs3_ptr, gimple_assign_set_rhs3):
11293 Likewise.
11294 (gimple_assign_rhs_code): Likewise.
11295 * gimple.c (gassign::code_): Define.
11296
11297 2015-08-12 Richard Biener <rguenther@suse.de>
11298
11299 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
11300 Eliminate edges marked as not executable by SCCVN.
11301 * tree-ssa-sccvn.c: Include gimple-iterator.h.
11302 (cond_dom_walker): Rename to sccvn_dom_walker.
11303 (sccvn_dom_walker::before_dom_children): Value-number defs
11304 of all stmts.
11305 (run_scc_vn): Remove loop value-numbering all SSA names.
11306 Drop not visited SSA names to varying.
11307
11308 2015-08-11 Trevor Saunders <tbsaunde@tbsaunde.org>
11309
11310 * compare-elim.c, dce.c, dse.c, gimple-ssa-isolate-paths.c,
11311 gimple-ssa-strength-reduction.c, graphite.c, init-regs.c,
11312 ipa-pure-const.c, ipa-visibility.c, ipa.c, mode-switching.c,
11313 omp-low.c, reorg.c, sanopt.c, trans-mem.c, tree-eh.c,
11314 tree-if-conv.c, tree-ssa-copyrename.c, tree-ssa-dce.c,
11315 tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
11316 tree-ssa-sink.c, tree-ssanames.c, tree-stdarg.c, tree-tailcall.c,
11317 tree-vect-generic.c, tree.c, ubsan.c, var-tracking.c,
11318 vtable-verify.c, web.c: Use GCC_FINAL instead of the anonymous
11319
11320 2015-08-11 Uros Bizjak <ubizjak@gmail.com>
11321
11322 PR target/66954
11323 * config/i386/i386.c (get_builtin_code_for_version): Add P_PCLMUL
11324 to enum feature_priority and feature_list.
11325 (fold_builtin_cpu): Add F_PCLMUL to enum processor_features
11326 and isa_names_table.
11327
11328 2015-08-11 Yuri Rumyantsev <ysrumyan@gmail.com>
11329
11330 * tree-vect-stmts.c (vectorizable_shift): Add missed test on
11331 vect_induction_def.
11332
11333 2015-08-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
11334
11335 PR c/66098
11336 PR c/66711
11337 * diagnostic.c (diagnostic_classify_diagnostic): Take -Werror into
11338 account when deciding what was the command-line status.
11339
11340 2015-08-11 Nathan Sidwell <nathan@acm.org>
11341
11342 * tree-vrp.c (simplify_abs_using_ranges): Simplify.
11343
11344 * tree-ssa-phiopt.c (minmax_replacement): Create new ssa name if
11345 we're not the only contributor to target phi.
11346
11347 2015-08-11 Jiong Wang <jiong.wang@arm.com>
11348
11349 * config/aarch64/aarch64.h (REG_CLASS_NAMES): Add the missing ',' after
11350 FIXED_REG0.
11351
11352 2015-08-11 Tom de Vries <tom@codesourcery.com>
11353
11354 * tree-cfg.c (move_sese_region_to_fn): Add todo comment.
11355
11356 2015-08-10 H.J. Lu <hongjiu.lu@intel.com>
11357
11358 * config/i386/i386.c (processor_alias_table): Replace CPU_KNL
11359 with CPU_SLM.
11360 * config/i386/i386.md (cpu): Remove knl.
11361
11362 2015-08-10 Thomas Schwinge <thomas@codesourcery.com>
11363
11364 PR libgomp/65742
11365 PR middle-end/66332
11366 * builtins.c (expand_builtin_acc_on_device) [ACCEL_COMPILER]: Emit
11367 open-coded sequence.
11368 * omp-low.c (oacc_process_reduction_data): Remove handline of
11369 GOMP_DEVICE_HOST_NONSHM.
11370
11371 * lto-streamer-in.c (lto_input_mode_table): Adjust to
11372 GET_MODE_INNER changes.
11373
11374 2015-08-10 Thomas Schwinge <thomas@codesourcery.com>
11375 Ilya Verbin <ilya.verbin@intel.com>
11376
11377 * lto-streamer-in.c (lto_input_mode_table): Correctly advance iterator.
11378
11379 2015-08-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
11380
11381 * doc/options.texi (EnabledBy): Document that the argument must be
11382 a Common option.
11383 * doc/invoke.texi (Wnull-dereference): Move after Wnonnull.
11384 Not enabled by -Wall.
11385 * optc-gen.awk: Give nicer error messages. Detect if the argument
11386 of EnabledBy is not a Common option.
11387 * common.opt (Wnull-dereference): Not enabled by -Wall.
11388 * opt-functions.awk (lang_enabled_by): Nicer error messages.
11389
11390 2015-08-09 H.J. Lu <hongjiu.lu@intel.com>
11391
11392 * config/i386/driver-i386.c (host_detect_local_cpu): Treat
11393 model == 0x4f as Broadwell.
11394
11395 2015-08-08 Segher Boessenkool <segher@kernel.crashing.org>
11396
11397 PR rtl-optimization/67028
11398 * combine.c (simplify_comparison): Fix comment. Rearrange code.
11399 Add test to see if a const_int fits in the new mode.
11400
11401 2015-08-07 DJ Delorie <dj@redhat.com>
11402
11403 * config/rx/rx.c (rx_mode_dependent_address_p): Remove unneeded asserts.
11404
11405 2015-08-07 H.J. Lu <hongjiu.lu@intel.com>
11406
11407 PR rtl-optimization/67029
11408 * ira-color.c: Include "recog.h" before including "ira-int.h".
11409 * target-globals.c: Likewise.
11410 * ira-lives.c (ira_implicitly_set_insn_hard_regs): Add an
11411 adds an alternative_mask argument and use it instead of
11412 preferred_alternatives.
11413 * ira.h (ira_implicitly_set_insn_hard_regs): Moved to ...
11414 * ira-int.h (ira_implicitly_set_insn_hard_regs): Here.
11415 * sched-deps.c: Include "ira-int.h" after including "ira.h".
11416 (sched_analyze_insn): Update call to
11417 ira_implicitly_set_insn_hard_regs.
11418 * sel-sched.c: Include "ira-int.h" after including "ira.h".
11419 (implicit_clobber_conflict_p): Update call to
11420 ira_implicitly_set_insn_hard_regs.
11421
11422 2015-08-06 Uros Bizjak <ubizjak@gmail.com>
11423
11424 * Makefile.in (.INTERMEDIATE): Add gpl.pod.
11425
11426 2015-08-07 Kaz Kojima <kkojima@gcc.gnu.org>
11427
11428 PR target/67002
11429 * config/sh/sh.c (sh_recog_treg_set_expr): Return false when
11430 currently_expanding_to_rtl is set.
11431
11432 2015-08-06 Yaakov Selkowitz <yselkowi@redhat.com>
11433
11434 * configure.ac: Define LIBICONV_DEP with in-tree libiconv.
11435 * configure: Regenerate.
11436
11437 2015-08-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11438 Jiong Wang <jiong.wang@arm.com>
11439
11440 * config/aarch64/aarch64.d (tlsdesc_small_pseudo_<mode>): New pattern.
11441 * config/aarch64/aarch64.h (reg_class): New enumeration FIXED_REG0.
11442 (REG_CLASS_NAMES): Likewise.
11443 (REG_CLASS_CONTENTS): Likewise.
11444 * config/aarch64/aarch64.c (aarch64_class_max_nregs): Likewise.
11445 (aarch64_register_move_cost): Likewise.
11446 (aarch64_load_symref_appropriately): Invoke the new added pattern if
11447 possible.
11448 * config/aarch64/constraints.md (Uc0): New constraint.
11449
11450 2015-08-06 Jiong Wang <jiong.wang@arm.com>
11451
11452 * config/aarch64/constraints.md (Usf): Add the test of
11453 aarch64_is_noplt_call_p.
11454
11455 2015-08-06 Jiong Wang <jiong.wang@arm.com>
11456
11457 * config/aarch64/aarch64-protos.h (aarch64_is_noplt_call_p): New
11458 declaration.
11459 * config/aarch64/aarch64.c (aarch64_is_noplt_call_p): New function.
11460 * config/aarch64/aarch64.md (call_value_symbol): Check noplt scenarios.
11461 (call_symbol): Likewise.
11462
11463 2015-08-06 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
11464
11465 * tree-vect-patterns.c (vect_recog_mult_pattern): New function
11466 for vectorizing multiplication patterns.
11467 * tree-vectorizer.h: Adjust the number of patterns.
11468
11469 2015-08-06 Uros Bizjak <ubizjak@gmail.com>
11470
11471 * config/i386/sse.md (*vec_concatv2df): Declare added
11472 alternatives as sselog type.
11473
11474 2015-08-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11475
11476 * config/s390/s390.c (s390_dwarf_frame_reg_mode): Return Pmode for
11477 all GPRs.
11478
11479 2015-08-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11480
11481 * config/s390/s390.c (s390_expand_tbegin): Expand either
11482 tbegin_1_z13 or tbegin_1 depending on VX flag.
11483 * config/s390/s390.md ("tbegin_1_z13"): New expander.
11484
11485 2015-08-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11486
11487 * config/s390/s390.opt: Clarify description for -mzvector
11488 * doc/invoke.texi: Add documentation for -mhtm, -mvx, and
11489 -mzvector.
11490
11491 2015-08-06 Richard Biener <rguenther@suse.de>
11492
11493 * gimple.h (gimple_call_set_fn): Access op member directly.
11494 (gimple_call_chain_ptr): Likewise.
11495 (gimple_call_set_chain): Likewise.
11496 (gimple_cond_lhs_ptr): Likewise.
11497 (gimple_cond_set_lhs): Likewise.
11498 (gimple_cond_rhs_ptr): Likewise.
11499 (gimple_cond_set_rhs): Likewise.
11500 (gimple_cond_true_label): Likewise.
11501 (gimple_cond_set_true_label): Likewise.
11502 (gimple_cond_set_false_label): Likewise.
11503 (gimple_cond_false_label): Likewise.
11504 (gimple_label_label): Likewise.
11505 (gimple_label_set_label): Likewise.
11506 (gimple_goto_set_dest): Likewise.
11507 (gimple_asm_input_op): Likewise.
11508 (gimple_asm_input_op_ptr): Likewise.
11509 (gimple_asm_set_input_op): Likewise.
11510 (gimple_asm_output_op): Likewise.
11511 (gimple_asm_output_op_ptr): Likewise.
11512 (gimple_asm_set_output_op): Likewise.
11513 (gimple_asm_clobber_op): Likewise.
11514 (gimple_asm_set_clobber_op): Likewise.
11515 (gimple_asm_label_op): Likewise.
11516 (gimple_asm_set_label_op): Likewise.
11517 (gimple_switch_index): Likewise.
11518 (gimple_switch_index_ptr): Likewise.
11519 (gimple_return_retval_ptr): Likewise.
11520 (gimple_return_retval): Likewise.
11521 (gimple_return_set_retval): Likewise.
11522 (gimple_switch_set_index): Likewise. Remove superfluous GIMPLE_CHECK.
11523 (gimple_switch_label): Likewise.
11524 (gimple_switch_set_label): Likewise.
11525
11526 2015-08-06 Richard Biener <rguenther@suse.de>
11527
11528 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Simplify
11529 bool comparison canonicalization and restrict to integers.
11530
11531 2015-08-05 Andrew MacLeod <amacleod@redhat.com>
11532
11533 * coretypes.h (enum symbol_visibility): Relocate here.
11534 * flag-types.h (enum symbol_visibility): Remove.
11535 * tree-core.h (enum symbol_visibility): Remove.
11536
11537 2015-08-05 Lynn Boger <laboger@linux.vnet.ibm.com>
11538
11539 PR target/66870
11540 * config/rs6000/rs6000.c (rs6000_emit_prologue): Check
11541 for no_split_stack function attribute along with
11542 flag_split_stack.
11543 (rs6000_expand_split_stack_prologue): Likewise.
11544
11545 2015-08-05 Manuel López-Ibáñez <manu@gcc.gnu.org>
11546 Jeff Law <law@redhat.com>
11547
11548 PR c/16351
11549 * doc/invoke.texi (Wnull-dereference): New.
11550 * tree-vrp.c (infer_value_range): Update call to infer_nonnull_range.
11551 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour):
11552 Warn for potential NULL dereferences.
11553 (find_explicit_erroneous_behaviour): Warn for NULL dereferences.
11554 * ubsan.c (instrument_nonnull_arg): Call
11555 infer_nonnull_range_by_attribute.
11556 (instrument_nonnull_return): Likewise.
11557 * common.opt (Wnull-dereference); New.
11558 * gimple.c (infer_nonnull_range): Remove bool arguments.
11559 (infer_nonnull_range_by_dereference): New.
11560 (infer_nonnull_range_by_attribute): New.
11561 * gimple.h: Update declarations.
11562
11563 2015-08-05 Richard Sandiford <richard.sandiford@arm.com>
11564
11565 * gensupport.c (sequence_num): Replace with...
11566 (insn_sequence_num, split_sequence_num, peephole2_sequence_num):
11567 ...these new variables.
11568 (init_rtx_reader_args_cb): Update accordingly.
11569 (get_num_code_insns): Likewise.
11570 (read_md_rtx): Rework to use a while loop and get_c_test.
11571 Use the new counters. Remove redundant DEFINE_SUBST case.
11572 * genoutput.c (gen_split): Delete.
11573 (main): Don't call it.
11574
11575 2015-08-05 Richard Sandiford <richard.sandiford@arm.com>
11576
11577 * gensupport.h (get_c_test): Declare.
11578 * gensupport.c (get_c_test): New function.
11579 * genconditions.c (main): Use it.
11580 * genrecog.c (validate_pattern): Likewise.
11581 (match_pattern_1): Likewise. Remove c_test argument.
11582 (match_pattern): Update accordingly and remove c_test argument.
11583 (main): Update accordingly.
11584
11585 2015-08-05 Richard Sandiford <richard.sandiford@arm.com>
11586
11587 * gensupport.h (get_num_insn_codes): Declare.
11588 * gensupport.c (get_num_insn_codes): New function.
11589 * genattrtab.c (optimize_attrs): Rename max_insn_code to
11590 num_insn_codes.
11591 (main): Likewise. Use get_num_insn_codes.
11592 * gencodes.c (main): Remove "last" and use get_num_insn_codes.
11593
11594 2015-08-05 Richard Sandiford <richard.sandiford@arm.com>
11595
11596 PR middle-end/66311
11597 * wide-int.cc (wi::from_mpz): Make sure that absolute mpz value
11598 is zero- rather than sign-extended.
11599
11600 2015-08-05 Richard Sandiford <richard.sandiford@arm.com>
11601
11602 * target-insns.def (can_extend): Delete.
11603
11604 2015-08-05 Richard Biener <rguenther@suse.de>
11605
11606 PR tree-optimization/67121
11607 * tree-if-conv.c (combine_blocks): Clear range-info produced
11608 by stmts no longer executed conditionally.
11609
11610 2015-08-05 Nick Clifton <nickc@redhat.com>
11611
11612 * config/rl78/rl78.c (rl78_force_nonfar_3): Remove optimization
11613 to allow identical far pointers to remain.
11614
11615 2015-08-05 Richard Biener <rguenther@suse.de>
11616
11617 PR middle-end/67120
11618 * match.pd: Compare address bases with == if they are decls
11619 or SSA names, not operand_equal_p. Otherwise fail.
11620
11621 2015-08-05 Richard Biener <rguenther@suse.de>
11622
11623 PR tree-optimization/67055
11624 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Handle
11625 NULL gimple_block.
11626
11627 * g++.dg/torture/pr67055.C: New testcase.
11628
11629 2015-08-05 Kirill Yukhin <kirill.yukhin@intel.com>
11630
11631 * config/i386/i386.md (define_attr "isa"): Addd avx512vl and
11632 noavx512vl.
11633 (define_attr "enabled"): Handle avx521vl and noavx512vl.
11634 * config/i386/sse.md (define_insn "vec_dupv2df<mask_name>"): Split
11635 AVX-512 alternative out of SSE.
11636 (define_insn "*vec_concatv2df"): Ditto.
11637
11638 2015-08-05 Kirill Yukhin <kirill.yukhin@intel.com>
11639
11640 * config/i386/i386.c (bdesc_args): Rename CODE_FOR_sse4_1_ptest into
11641 CODE_FOR_sse4_1_ptestv2di and CODE_FOR_avx_vtestps256 into
11642 CODE_FOR_avx_ptestv4di.
11643 * config/i386/sse.md (define_mode_iterator V_AVX): New.
11644 (define_mode_attr sse4_1): Extend to other 128/256-bit modes.
11645 (define_insn "avx_ptest256"): Merge this ...
11646 (define_insn "sse4_1_ptest"): And this ...
11647 (define_insn "<sse4_1>_ptest<mode>"): Into this. Use V_AVX iterator.
11648
11649 2015-08-05 Richard Biener <rguenther@suse.de>
11650
11651 PR tree-optimization/67109
11652 * tree-vect-data-refs.c (vect_analyze_group_access_1): Check
11653 against too big groups. Print whether this is a load or store
11654 group. Rename from ...
11655 (vect_analyze_group_access): ... this which is now a wrapper
11656 dissolving an invalid group.
11657 (vect_analyze_data_ref_accesses): Print whether this is a load
11658 or store group.
11659
11660 2015-08-05 Richard Biener <rguenther@suse.de>
11661
11662 PR middle-end/67107
11663 * match.pd: Guard const_binop result checking against NULL_TREE
11664 result.
11665
11666 2015-08-05 Kugan Vivekanandarajah <kuganv@linaro.org>
11667
11668 * cse.c (cse_insn): Restoring old behaviour for src_eqv
11669 when dest and value in the REG_EQUAL are same and dest
11670 is STRICT_LOW_PART.
11671
11672 2015-08-04 Anatoly Sokolov <aesok@post.ru>
11673
11674 * config/moxie/moxie.h (PRINT_OPERAND,
11675 PRINT_OPERAND_ADDRESS): Remove macros.
11676 * config/moxie/moxie-protos.h (moxie_print_operand,
11677 moxie_print_operand_address): Remove declaration.
11678 * config/moxie/moxie.c (TARGET_PRINT_OPERAND,
11679 TARGET_PRINT_OPERAND_ADDRESS): Define.
11680 (moxie_print_operand, moxie_print_operand_address): Make static.
11681
11682 2015-08-04 Szabolcs Nagy <szabolcs.nagy@arm.com>
11683
11684 PR target/66731
11685 * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix NEG cost for FNMUL.
11686 (aarch64_rtx_mult_cost): Fix MULT cost with -frounding-math.
11687
11688 2015-08-04 Richard Biener <rguenther@suse.de>
11689
11690 * genmatch.c (dt_node::gen_kids_1): Use gassign and gcall in
11691 generated code.
11692 (dt_operand::gen_gimple_expr): Adjust.
11693
11694 2015-08-04 Richard Biener <rguenther@suse.de>
11695
11696 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Canonicalize
11697 bool compares on RHS.
11698 * match.pd: Add X ==/!= !X is false/true pattern.
11699
11700 2015-08-04 Pawel Kupidura <pawel.kupidura@arm.com>
11701
11702 * config/aarch64/aarch64.c: Change inner loop statement cost
11703 to be consistent with other targets.
11704
11705 2015-08-04 Christophe Lyon <christophe.lyon@linaro.org>
11706
11707 * config/arm/neon.md (neon_vget_lanev2di): Handle big-endian
11708 targets.
11709
11710 2015-08-04 Nathan Sidwell <nathan@codesourcery.com>
11711
11712 * config/nvptx/nvptx.h (struct nvptx_pseudo_info): Delete.
11713 (machine_function): Remove pseudos field.
11714
11715 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11716
11717 * config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
11718 Exit early and use target_option_current_node if processing current
11719 pragma.
11720
11721 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11722
11723 * doc/extend.texi (AArch64 Function Attributes): New node.
11724 (AArch64 Pragmas): Likewise.
11725
11726 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11727
11728 * config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
11729 Initialize simd builtins if TARGET_SIMD.
11730 * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
11731 Make sure that the builtins are initialized only once no matter how
11732 many times the function is called.
11733 (aarch64_init_builtins): Unconditionally initialize crc builtins.
11734 (aarch64_relayout_simd_param): New function.
11735 (aarch64_simd_expand_args): Use above during argument expansion.
11736 * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): Initialize
11737 simd builtins if TARGET_SIMD.
11738 * config/aarch64/aarch64-protos.h (aarch64_init_simd_builtins): New
11739 prototype.
11740 (aarch64_relayout_simd_types): Likewise.
11741
11742 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11743
11744 * config.gcc (aarch64*-*-*): Specify c_target_objs and cxx_target_objs.
11745 * config/aarch64/aarch64.h (REGISTER_TARGET_PRAGMAS): Define.
11746 (TARGET_CPU_CPP_BUILTINS): Redefine to call aarch64_cpu_cpp_builtins.
11747 * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
11748 static keyword.
11749 (aarch64_reset_previous_fndecl): New function.
11750 (aarch64_handle_attr_isa_flags): Handle "+nothing" in the beginning of
11751 the string.
11752 * config/aarch64/aarch64-c.c: New file.
11753 * config/aarch64/arm_acle.h: Add pragma +crc+nofp at the top.
11754 Push and pop options at beginning and end. Remove ifdef
11755 __ARM_FEATURE_CRC32.
11756 * config/aarch64/arm_neon.h: Remove #ifdef check on __ARM_NEON.
11757 Add pragma +nothing+simd and +nothing+crypto where appropriate.
11758 * config/aarch64/t-aarch64 (aarch64-c.o): New rule.
11759 * config/aarch64/aarch64-protos.h (aarch64_cpu_cpp_builtins):
11760 Define prototype.
11761 (aarch64_register_pragmas): Likewise.
11762 (aarch64_reset_previous_fndecl): Likewise.
11763 (aarch64_process_target_attr): Likewise.
11764 (aarch64_override_options_internal): Likewise.
11765
11766 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11767
11768 * config/aarch64/aarch64.c (aarch64_tribools_ok_for_inlining_p):
11769 New function.
11770 (aarch64_can_inline_p): Likewise.
11771 (TARGET_CAN_INLINE_P): Define.
11772
11773 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11774
11775 * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
11776 Remove static. Handle OPT_mgeneral_regs_only,
11777 OPT_mfix_cortex_a53_835769, OPT_mstrict_align,
11778 OPT_momit_leaf_frame_pointer.
11779 * config/aarch64/aarch64.c: Include opts.h and diagnostic.h
11780 (aarch64_attr_opt_type): New enum.
11781 (aarch64_attribute_info): New struct.
11782 (aarch64_handle_attr_arch): New function.
11783 (aarch64_handle_attr_cpu): Likewise.
11784 (aarch64_handle_attr_tune): Likewise.
11785 (aarch64_handle_attr_isa_flags): Likewise.
11786 (aarch64_attributes): New table.
11787 (aarch64_process_one_target_attr): New function.
11788 (num_occurences_in_str): Likewise.
11789 (aarch64_process_target_attr): Likewise.
11790 (aarch64_option_valid_attribute_p): Likewise.
11791 (TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
11792 * config/aarch64/aarch64-protos.h: Include input.h
11793 (aarch64_handle_option): Declare prototype.
11794
11795 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11796
11797 * config/aarch64/aarch64.h (SWITCHABLE_TARGET): Define.
11798 * config/aarch64/aarch64.c: Include target-globals.h
11799 (aarch64_previous_fndecl): New variable.
11800 (aarch64_set_current_function): New function.
11801 (TARGET_SET_CURRENT_FUNCTION): Define.
11802
11803 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11804
11805 * config/aarch64/aarch64.opt (explicit_tune_core): New TargetVariable.
11806 (explicit_arch): Likewise.
11807 (x_aarch64_isa_flags): Likewise.
11808 (mgeneral-regs-only): Mark as Save.
11809 (mfix-cortex-a53-835769): Likewise.
11810 (mcmodel=): Likewise.
11811 (mstrict-align): Likewise.
11812 (momit-leaf-frame-pointer): Likewise.
11813 (mtls-dialect): Likewise.
11814 (master=): Likewise.
11815 * config/aarch64/aarch64.h (ASM_DECLARE_FUNCTION_NAME): Define.
11816 (aarch64_isa_flags): Remove extern declaration.
11817 * config/aarch64/aarch64.c (aarch64_validate_mcpu): Return a bool
11818 to indicate success or failure.
11819 (aarch64_validate_march): Likewise.
11820 (aarch64_validate_mtune): Likewise.
11821 (aarch64_isa_flags): Delete.
11822 (aarch64_override_options_internal): Access opts->x_aarch64_isa_flags
11823 instead of aarch64_isa_flags.
11824 (aarch64_get_tune_cpu): New function.
11825 (aarch64_get_arch): Likewise.
11826 (aarch64_override_options): Use above and set up explicit_tune_core
11827 and explicit_arch.
11828 (aarch64_print_extension): Move earlier in file. Add isa_flags
11829 argument and use that instead of the global aarch64_isa_flags.
11830 (aarch64_option_save): New function.
11831 (aarch64_option_restore): Likewise.
11832 (aarch64_option_print): Likewise.
11833 (aarch64_declare_function_name): Likewise.
11834 (aarch64_start_file): Delete.
11835 (TARGET_ASM_FILE_START): Do not define.
11836 (TARGET_OPTION_RESTORE, TARGET_OPTION_PRINT): Define.
11837 * config/aarch64/aarch64-protos.h (aarch64_declare_function_name):
11838 Declare prototype.
11839
11840 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11841
11842 * config/aarch64/aarch64.opt (momit-leaf-frame-pointer): Initialize
11843 flag_omit_leaf_frame_pointer to 2.
11844
11845 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11846
11847 * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_835769_DEFAULT): Always
11848 define to 0 or 1.
11849 (TARGET_FIX_ERR_A53_835769): New macro.
11850 * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
11851 handling of opts->x_aarch64_fix_a53_err835769.
11852 (aarch64_madd_needs_nop): Check for TARGET_FIX_ERR_A53_835769 rather
11853 than aarch64_fix_a53_err835769.
11854 * config/aarch64/aarch64-elf-raw.h: Update for above changes.
11855 * config/aarch64/aarch64-linux.h: Likewise.
11856
11857 2015-08-04 Uros Bizjak <ubizjak@gmail.com>
11858
11859 * config/i386/i386.c (ix86_expand_int_movcc): Check result of
11860 ix86_expand_int_movcc as boolean.
11861
11862 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11863
11864 * config/aarch64/aarch64.opt (aarch64_arch_string): Delete.
11865 (aarch64_cpu_string): Likewise.
11866 (aarch64_tune_string): Likewise.
11867 * config/aarch64/aarch64.c (aarch64_parse_opt_result): New enum.
11868 (aarch64_parse_extension): Return aarch64_parse_opt_result.
11869 Add extra argument to put result into.
11870 (aarch64_parse_arch): Likewise. Do not set selected_cpu.
11871 (aarch64_parse_cpu): Add arguments to put results into. Return
11872 aarch64_parse_opt_result.
11873 (aarch64_parse_tune): Likewise.
11874 (aarch64_override_options_after_change_1): New function.
11875 (aarch64_override_options_internal): New function.
11876 (aarch64_validate_mcpu): Likewise.
11877 (aarch64_validate_march): Likewise.
11878 (aarch64_validate_mtune): Likewise.
11879 (aarch64_override_options): Update to reflect above changes.
11880 Move some logic into aarch64_override_options_internal.
11881 Initialize target_option_default_node and target_option_current_node.
11882 (aarch64_override_options_after_change): Move logic into
11883 aarch64_override_options_after_change_1 and call it with global_options.
11884 (initialize_aarch64_code_model): Take a gcc_options pointer and use the
11885 flag values from that.
11886
11887 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11888
11889 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
11890 __ARM_ARCH_8A directly rather than with cpp_define_formatted.
11891 * config/aarch64/aarch64.c (struct processor): Add arch field.
11892 (all_architectures): Handle above, move above all_cores.
11893 (all_cores): Handle above.
11894 (aarch64_parse_arch): Handle above changes.
11895 * config/aarch64/aarch64-arches.def (armv8-a): Extend according to
11896 above. Update comments.
11897 (armv8.1-a): Likewise.
11898 * config/aarch64/aarch64-cores.def: Update according to above.
11899 * config/aarch64/aarch64-opts.h (aarch64_arch): New enum.
11900 * config/aarch64/driver-aarch64.c (struct aarch64_arch): Rename to
11901 aarch64_arch_driver_info.
11902
11903 2015-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11904
11905 * config/aarch64/aarch64.c (struct processor): Add ident field.
11906 Rename core sched_core.
11907 (all_cores): Handle above changes.
11908 (all_architectures): Likewise.
11909 (aarch64_parse_arch): Likewise.
11910 (aarch64_override_options): Likewise.
11911
11912 2015-08-04 Richard Biener <rguenther@suse.de>
11913
11914 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
11915 dispatching to fold_binary for GIMPLE_BINARY_RHS and for
11916 comparisons embedded in [VEC_]COND_EXPRs.
11917
11918 2015-08-03 Abe Skolnik <a.skolnik@samsung.com>
11919
11920 * tree-if-conv.c: Fix various typos in comments.
11921 * tree-vect-stmts.c: Likewise.
11922
11923 2015-08-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
11924
11925 PR tree-optimization/67043
11926 * loop-invariant.c (move_invariant_reg): Recompute luids in loop
11927 preheader after hoisting invariant in it.
11928 (find_defs): Force recomputation of all luids.
11929
11930 2015-08-03 Peter Bergner <bergner@vnet.ibm.com>
11931
11932 * config/rs6000/htm.md (tabort.): Restrict the source operand to
11933 using a base register.
11934
11935 2015-08-03 David Malcolm <dmalcolm@redhat.com>
11936
11937 * main.c (main): Pass in NULL for toplev's external_timer.
11938 * timevar.c: Include coretypes.h.
11939 (class timer::named_items): New.
11940 (timer::named_items::named_items): New.
11941 (timer::named_items::~named_items): New.
11942 (timer::named_items::push): New.
11943 (timer::named_items::pop): New.
11944 (timer::named_items::print): New.
11945 (timer::timer): Initialize field "m_jit_client_items".
11946 (timer::~timer): New.
11947 (timer::push): Move bulk of implementation to...
11948 (timer::push_internal): ...here. New function.
11949 (timer::pop): Move bulk of implementation to...
11950 (timer::pop_internal): ...here. New function.
11951 (timer::push_client_item): New.
11952 (timer::pop_client_item): New.
11953 (timer::print_row): New function, taken from timer::print.
11954 (timer::print): Print "GCC items" header if we also have client
11955 items. Move row-printing to timer::print_row. Print any client
11956 items.
11957 (timer::get_topmost_item_name): New method.
11958 * timevar.def (TV_JIT_ACQUIRING_MUTEX): New.
11959 (TV_JIT_CLIENT_CODE): New.
11960 * timevar.h (timer::push_client_item): New declaration.
11961 (timer::pop_client_item): New declaration.
11962 (timer::get_topmost_item_name): New method.
11963 (timer::push_internal): New declaration.
11964 (timer::pop_internal): New declaration.
11965 (timer::print_row): New declaration.
11966 (timer::named_items): New declaration.
11967 (timer::m_jit_client_items): New field.
11968 (timer): Add friend class named_items.
11969 (auto_timevar::auto_timevar): Add timer param.
11970 (auto_timevar::~auto_timevar): Use field "m_timer".
11971 (auto_timevar::m_timer): New field.
11972 * toplev.c (initialize_rtl): Add g_timer as param when
11973 constructing auto_timevar instance.
11974 (toplev::toplev): Add "external_timer" param, and use it to
11975 initialize the "g_timer" global if non-NULL.
11976 (toplev::~toplev): If this created "g_timer", delete it.
11977 * toplev.h (toplev::toplev): Replace "use_TV_TOTAL" bool param
11978 with "external_timer" timer *.
11979
11980 2015-08-03 Alexander Basov <coohpt@gmail.com>
11981
11982 PR middle-end/64744
11983 PR middle-end/48470
11984 PR middle-end/43404
11985 * cfgexpand.c (expand_one_var): Add check if stack is going to
11986 be used in naked function.
11987 * expr.c (expand_expr_addr_expr_1): Remove excess checking
11988 whether expression should not reside in MEM.
11989 * function.c (use_register_for_decl): Do not use registers for
11990 non-register things (volatile, float, BLKMode) in naked functions.
11991
11992 2015-08-03 John David Anglin <danglin@gcc.gnu.org>
11993
11994 PR target/67060
11995 * config/pa/pa.md (call_reg_64bit): Remove reg:DI 1 clobber.
11996 Adjust splits to match new pattern.
11997
11998 2015-08-03 Michael Meissner <meissner@linux.vnet.ibm.com>
11999
12000 * config/rs6000/vector.md (VEC_L): Add KFmode and TFmode.
12001 (VEC_M): Likewise.
12002 (VEC_N): Likewise.
12003 (mov<mode>, VEC_M iterator): Add support for IEEE 128-bit floating
12004 point in VSX registers.
12005
12006 * config/rs6000/constraints.md (wb constraint): Document unused
12007 w<x> constraint.
12008 (we constraint): Likewise.
12009 (wo constraint): Likewise.
12010 (wp constraint): New constraint for IEEE 128-bit floating point in
12011 VSX registers.
12012 (wq constraint): Likewise.
12013
12014 * config/rs6000/predicates.md (easy_fp_constant): Add support for
12015 IEEE 128-bit floating point in VSX registers.
12016 (easy_scalar_constant): Likewise.
12017
12018 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add new
12019 constraints (wp, wq) for IEEE 128-bit floating point in VSX
12020 registers.
12021 (rs6000_init_hard_regno_mode_ok): Likewise.
12022
12023 * config/rs6000/vsx.md (VSX_LE_128): Add support for IEEE 128-bit
12024 floating point in VSX registers.
12025 (VSX_L): Likewise.
12026 (VSX_M): Likewise.
12027 (VSX_M2): Likewise.
12028 (VSm): Likewise.
12029 (VSs): Likewise.
12030 (VSr): Likewise.
12031 (VSa): Likewise.
12032 (VSv): Likewise.
12033 (vsx_le_permute_<mode>): Add support to properly swap bytes for
12034 IEEE 128-bit floating point in VSX registers on little endian.
12035 (vsx_le_undo_permute_<mode>): Likewise.
12036 (vsx_le_perm_load_<mode>): Likewise.
12037 (vsx_le_perm_store_<mode>): Likewise.
12038 (splitters for IEEE 128-bit fp moves): Likewise.
12039
12040 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wp and
12041 wq constraints.
12042
12043 * config/rs6000/altivec.md (VM): Add support for IEEE 128-bit
12044 floating point in VSX registers.
12045 (VM2): Likewise.
12046
12047 * doc/md.text (Machine Constraints): Document wp and wq
12048 constraints on PowerPC.
12049
12050 2015-08-03 Jeff Law <law@redhat.com>
12051
12052 PR middle-end/66314
12053 PR gcov-profile/66899
12054 * tree-ssa-threadupdate.c (mark_threaded_blocks): Correctly
12055 iterate over the jump threading paths when an element in the
12056 jump threading paths array is eliminated.
12057
12058 2015-08-03 Segher Boessenkool <segher@kernel.crashing.org>
12059
12060 * Makefile.in (OBJS): Put gimple-match.o and generic-match.o first.
12061
12062 2015-08-03 Patrick Palka <ppalka@gcc.gnu.org>
12063
12064 * tree-ssa-uninit.c (find_uninit_use): Declare and pass to
12065 is_use_properly_guarded the variable def_preds. Free its
12066 contents before returning.
12067 (prune_uninit_phi_opnds_in_unrealizable_paths): Same.
12068 (is_use_properly_guarded): Replace local variable def_preds with
12069 a parameter. Adjust accordingly. Only update *def_preds if it's
12070 the empty vector.
12071
12072 2015-08-03 Richard Biener <rguenther@suse.de>
12073
12074 * genmatch.c (simplify::for_subst_vec): New member.
12075 (binary_ok): New helper for for lowering.
12076 (lower_for): Delay substituting operators into result expressions
12077 if we can merge the results eventually again.
12078 (capture_info::walk_result): Adjust for user_id appearing as
12079 result expression operator.
12080 (expr::gen_transform): Likewise.
12081 (dt_simplify::gen_1): Likewise.
12082 (dt_simplify::gen): Pass not substituted operators to tail
12083 functions or initialize local variable with it.
12084 (decision_tree::gen): Adjust function signature.
12085 * match.pd: Fix tests against global code and add default
12086 cases to switch stmts.
12087
12088 2015-08-03 Richard Biener <rguenther@suse.de>
12089
12090 * genmatch.c (dt_simplify::gen): Create captures array
12091 with an initializer.
12092
12093 2015-08-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
12094
12095 * configure.ac: Set aliasing_flags to -fno-strict-aliasing if
12096 the host compiler is affected by placement new aliasing bug.
12097 * configure: Regenerate.
12098 * Makefile.in (ALIASING_FLAGS): New variable.
12099 (ALL_CXXFLAGS): Add $(ALIASING_FLAGS).
12100
12101 2015-08-03 Szabolcs Nagy <szabolcs.nagy@arm.com>
12102
12103 PR target/66731
12104 * config/arm/vfp.md (negmuldf3_vfp): Add new pattern.
12105 (negmulsf3_vfp): Likewise.
12106 (muldf3negdf_vfp): Disable for -frounding-math.
12107 (mulsf3negsf_vfp): Likewise.
12108 * config/arm/arm.c (arm_new_rtx_costs): Fix NEG cost for VNMUL,
12109 fix MULT cost with -frounding-math.
12110
12111 2015-08-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12112
12113 * ifcvt.c (noce_try_store_flag_constants): Make logic of the case
12114 when diff == STORE_FLAG_VALUE or diff == -STORE_FLAG_VALUE more
12115 explicit. Prefer to add the flag whenever possible.
12116 (noce_process_if_block): Try noce_try_store_flag_constants before
12117 noce_try_cmove.
12118
12119 2015-08-03 Richard Biener <rguenther@suse.de>
12120
12121 * genmatch.c (struct sinfo, struct sinfo_hashmap_traits, sinfo_map_t):
12122 New hash-map to record equivalent transforms.
12123 (dt_node::analyze): Populate the equivalent transforms hash-map.
12124 (dt_simplify::info): Add reference to hash-map entry.
12125 (dt_simplify::gen): If we have split out a function for the
12126 transform, generate a call to it.
12127 (sinfo_hashmap_traits::hash): New function.
12128 (compare_op): New helper function for ...
12129 (sinfo_hashmap_traits::equal_keys): ... this new function.
12130 (decision_tree::gen): Split out common equivalent transforms
12131 into functions.
12132
12133 2015-08-03 Richard Biener <rguenther@suse.de>
12134
12135 * gimple-fold.c (fold_gimple_assign): Remove folding of
12136 the comparison in COND_EXPRs.
12137
12138 2015-08-03 Richard Biener <rguenther@suse.de>
12139
12140 * gimple-match-head.c (gimple_simplify): For [VEC_]COND_EXPRs
12141 on the rhs of assignments first simplify the embedded
12142 GENERIC condition.
12143
12144 2015-08-03 Richard Biener <rguenther@suse.de>
12145
12146 PR tree-optimization/66917
12147 * tree-vectorizer.h (struct dataref_aux): Add base_element_aligned
12148 field.
12149 (DR_VECT_AUX): New macro.
12150 (set_dr_misalignment): Adjust.
12151 (dr_misalignment): Likewise.
12152 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
12153 Compute whether the base is at least element aligned.
12154 * tree-vect-stmts.c (ensure_base_align): Adjust.
12155 (vectorizable_store): If the base is not element aligned
12156 preserve alignment of the original access if misalignment is unknown.
12157 (vectorizable_load): Likewise.
12158
12159 2015-08-02 Martin Sebor <msebor@redhat.com>
12160
12161 * c-family/c.opt (-Wframe-address): New warning option.
12162 * doc/invoke.texi (Wframe-address): Document it.
12163 * doc/extend.texi (__builtin_frame_address, __builtin_return_address):
12164 Clarify possible effects of calling the functions with non-zero
12165 arguments and mention -Wframe-address.
12166 * builtins.c (expand_builtin_frame_address): Handle -Wframe-address.
12167
12168 2015-08-01 Michael Collison <michael.collison@linaro.org
12169 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
12170
12171 * config/arm/arm.md (*arm_smin_cmp): New pattern.
12172 (*arm_umin_cmp): Likewise.
12173
12174 2015-08-01 Caroline Tice <cmtice@google.com>
12175
12176 PR 66521
12177 * vtable-verify.c (vtbl_mangled_name_types, vtbl_mangled_name_ids): New
12178 global variables.
12179 (vtbl_find_mangled_name): New function.
12180 (vtbl_register_mangled_name): New function.
12181 (vtbl_map_get_node): If DECL_ASSEMBLER_NAME is "<anon>", look up
12182 mangled name in mangled name vectors.
12183 (find_or_create_vtbl_map_node): Ditto.
12184 (var_is_used_for_virtual_call_p): Add recursion_depth parameter;
12185 update recursion_depth on function entry; pass it to every recursive
12186 call; automatically exit if depth > 25 (give up looking at that point).
12187 (verify_bb_vtables): Initialize recursion_depth and pass it to
12188 var_is_used_for_virtual_call_p.
12189 * vtable-verify.h (vtbl_mangbled_name_types, vtbl_mangled_name_ids): New
12190 global variable decls.
12191 (vtbl_register_mangled_name): New extern function decl.
12192
12193 2015-08-01 Tom de Vries <tom@codesourcery.com>
12194
12195 * tree.c (operation_can_overflow, operation_no_trapping_overflow): New
12196 function.
12197 * tree.h (operation_can_overflow, operation_no_trapping_overflow):
12198 Declare.
12199 * tree-vect-loop.c (vect_is_simple_reduction_1): Use
12200 operation_no_trapping_overflow. Allow non-overflow operations.
12201 * graphite-sese-to-poly.c (is_reduction_operation_p): Allow non-overflow
12202 operations.
12203
12204 2015-07-31 Kaz Kojima <kkojima@gcc.gnu.org>
12205
12206 PR target/67049
12207 * config/sh/sh.md (GOTaddr2picreg): Fix typo.
12208
12209 2015-07-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12210
12211 * config/arm/arm.md (*if_neg_move): Convert to insn_and_split.
12212 Enable for TARGET_32BIT.
12213 (*if_move_neg): Likewise.
12214
12215 2015-07-31 Nick Clifton <nickc@redhat.com>
12216
12217 * config/m32r/m32r.c (m32r_attribute_identifier): New function.
12218 Returns true for __model__.
12219 (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
12220
12221 2015-07-31 Alan Modra <amodra@gmail.com>
12222
12223 PR target/66870
12224 * config/rs6000/rs6000.c (machine_function): Add split_stack_argp_used.
12225 (rs6000_emit_prologue): Set it.
12226 (rs6000_set_up_by_prologue): Specify r12 when split_stack_argp_used.
12227
12228 2015-07-31 Richard Biener <rguenther@suse.de>
12229
12230 * fold-const.c (fold_binary_loc): Remove X ^ C1 == C2
12231 -> X == (C1 ^ C2) which is already implemented in match.pd.
12232 Remove redundant dispatching to fold_relational_const.
12233 Move unordered self and NaN compares ...
12234 * match.pd: ... as patterns here. Remove some stray captures
12235 and add a comment.
12236
12237 2015-07-31 Petr Murzin <petr.murzin@intel.com>
12238
12239 * config/i386/i386.c
12240 (bdesc_special_args): Convert mask type from signed to unsigned for
12241 masked builtins.
12242 (ix86_expand_args_builtin): Do not handle UINT_FTYPE_V2DF,
12243 UINT64_FTYPE_V2DF, UINT64_FTYPE_V4SF, V16QI_FTYPE_V8DI,
12244 V16HI_FTYPE_V16SI, V16SI_FTYPE_V16SI, V16SF_FTYPE_FLOAT,
12245 V8HI_FTYPE_V8DI, V8UHI_FTYPE_V8UHI, V8SI_FTYPE_V8DI, V8SF_FTYPE_V8DF,
12246 V8DI_FTYPE_INT64, V8DI_FTYPE_V4DI, V8DI_FTYPE_V8DI, V8DF_FTYPE_DOUBLE,
12247 V8DF_FTYPE_V8SI, V16SI_FTYPE_V16SI_V16SI, V16SF_FTYPE_V16SF_V16SI,
12248 V8DI_FTYPE_V8DI_V8DI, V8DF_FTYPE_V8DF_V8DI, V4SI_FTYPE_V4SF_V4SF,
12249 V4SF_FTYPE_V4SF_UINT64, V2UDI_FTYPE_V4USI_V4USI, V2DI_FTYPE_V2DF_V2DF,
12250 V2DF_FTYPE_V2DF_UINT64, V4UDI_FTYPE_V8USI_V8USI, QI_FTYPE_V8DI_V8DI,
12251 HI_FTYPE_V16SI_V16SI, HI_FTYPE_HI_INT, V16SF_FTYPE_V16SF_V16SF_V16SF,
12252 V16SF_FTYPE_V16SF_V16SI_V16SF, V16SF_FTYPE_V16SI_V16SF_HI,
12253 V16SF_FTYPE_V16SI_V16SF_V16SF, V16SI_FTYPE_V16SF_V16SI_HI,
12254 V8DI_FTYPE_V8SF_V8DI_QI, V8SF_FTYPE_V8DI_V8SF_QI, V8DI_FTYPE_PV4DI,
12255 V8DF_FTYPE_V8DI_V8DF_QI, V16SI_FTYPE_V16SI_V16SI_V16SI,
12256 V2DI_FTYPE_V2DI_V2DI_V2DI, V8DI_FTYPE_V8DF_V8DI_QI, V8DF_FTYPE_PV4DF,
12257 V8SI_FTYPE_V8SI_V8SI_V8SI, V8DF_FTYPE_V8DF_V8DF_V8DF, UINT_FTYPE_V4SF,
12258 V8DF_FTYPE_V8DF_V8DI_V8DF, V8DF_FTYPE_V8DI_V8DF_V8DF,
12259 V8DF_FTYPE_V8SF_V8DF_QI, V8DI_FTYPE_V8DI_V8DI_V8DI, V16SF_FTYPE_PV4SF,
12260 V8SF_FTYPE_V8DF_V8SF_QI, V8SI_FTYPE_V8DF_V8SI_QI, V16SI_FTYPE_PV4SI,
12261 V2DF_FTYPE_V2DF_V4SF_V2DF_QI, V4SF_FTYPE_V4SF_V2DF_V4SF_QI,
12262 V8DI_FTYPE_V8DI_SI_V8DI_V8DI, QI_FTYPE_V8DF_V8DF_INT_QI,
12263 HI_FTYPE_V16SF_V16SF_INT_HI, V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI,
12264 VOID_FTYPE_PDOUBLE_V2DF_QI, VOID_FTYPE_PFLOAT_V4SF_QI,
12265 V2DF_FTYPE_PCDOUBLE_V2DF_QI, V4SF_FTYPE_PCFLOAT_V4SF_QI.
12266 * config/i386/i386-builtin-types.def
12267 (V16QI_FTYPE_V16SI): Remove.
12268 (V8DF_FTYPE_V8SI): Ditto.
12269 (V8HI_FTYPE_V8DI): Ditto.
12270 (V8SI_FTYPE_V8DI): Ditto.
12271 (V8SF_FTYPE_V8DF): Ditto.
12272 (V8SF_FTYPE_V8DF_V8SF_QI): Ditto.
12273 (V16HI_FTYPE_V16SI): Ditto.
12274 (V16SF_FTYPE_V16HI): Ditto.
12275 (V16SF_FTYPE_V16HI_V16SF_HI): Ditto.
12276 (V16SF_FTYPE_V16SI): Ditto.
12277 (V4DI_FTYPE_V4DI): Ditto.
12278 (V16SI_FTYPE_V16SF): Ditto.
12279 (V16SF_FTYPE_FLOAT): Ditto.
12280 (V8DF_FTYPE_DOUBLE): Ditto.
12281 (V8DI_FTYPE_INT64): Ditto.
12282 (V8DI_FTYPE_V4DI): Ditto.
12283 (V16QI_FTYPE_V8DI): Ditto.
12284 (UINT_FTYPE_V4SF): Ditto.
12285 (UINT64_FTYPE_V4SF): Ditto.
12286 (UINT_FTYPE_V2DF): Ditto.
12287 (UINT64_FTYPE_V2DF): Ditto.
12288 (V16SI_FTYPE_V16SI): Ditto.
12289 (V8DI_FTYPE_V8DI): Ditto.
12290 (V16SI_FTYPE_PV4SI): Ditto.
12291 (V16SF_FTYPE_PV4SF): Ditto.
12292 (V8DI_FTYPE_PV2DI): Ditto.
12293 (V8DF_FTYPE_PV2DF): Ditto.
12294 (V4DI_FTYPE_PV2DI): Ditto.
12295 (V4DF_FTYPE_PV2DF): Ditto.
12296 (V16SI_FTYPE_PV2SI): Ditto.
12297 (V16SF_FTYPE_PV2SF): Ditto.
12298 (V8DI_FTYPE_PV4DI): Ditto.
12299 (V8DF_FTYPE_PV4DF): Ditto.
12300 (V8SF_FTYPE_FLOAT): Ditto.
12301 (V4SF_FTYPE_FLOAT): Ditto.
12302 (V4DF_FTYPE_DOUBLE): Ditto.
12303 (V8SF_FTYPE_PV4SF): Ditto.
12304 (V8SI_FTYPE_PV4SI): Ditto.
12305 (V4SI_FTYPE_PV2SI): Ditto.
12306 (V8SF_FTYPE_PV2SF): Ditto.
12307 (V8SI_FTYPE_PV2SI): Ditto.
12308 (V16SF_FTYPE_PV8SF): Ditto.
12309 (V16SI_FTYPE_PV8SI): Ditto.
12310 (V8DI_FTYPE_V8SF): Ditto.
12311 (V4DI_FTYPE_V4SF): Ditto.
12312 (V2DI_FTYPE_V4SF): Ditto.
12313 (V64QI_FTYPE_QI): Ditto.
12314 (V32HI_FTYPE_HI): Ditto.
12315 (V8UHI_FTYPE_V8UHI): Ditto.
12316 (V16UHI_FTYPE_V16UHI): Ditto.
12317 (V32UHI_FTYPE_V32UHI): Ditto.
12318 (V2UDI_FTYPE_V2UDI): Ditto.
12319 (V4UDI_FTYPE_V4UDI): Ditto.
12320 (V8UDI_FTYPE_V8UDI): Ditto.
12321 (V4USI_FTYPE_V4USI): Ditto.
12322 (V8USI_FTYPE_V8USI): Ditto.
12323 (V16USI_FTYPE_V16USI): Ditto.
12324 (V2DF_FTYPE_V2DF_UINT64): Ditto.
12325 (V2DI_FTYPE_V2DF_V2DF): Ditto.
12326 (V2UDI_FTYPE_V4USI_V4USI): Ditto.
12327 (V8DF_FTYPE_V8DF_V8DI): Ditto.
12328 (V4SF_FTYPE_V4SF_UINT64): Ditto.
12329 (V4SI_FTYPE_V4SF_V4SF): Ditto.
12330 (V16SF_FTYPE_V16SF_V16SI): Ditto.
12331 (V64QI_FTYPE_V32HI_V32HI): Ditto.
12332 (V32HI_FTYPE_V16SI_V16SI): Ditto.
12333 (V8DF_FTYPE_V8DF_V8DF_V8DI_INT_QI): Ditto.
12334 (V16SF_FTYPE_V16SF_V16SF_V16SI_INT_HI): Ditto.
12335 (V32HI_FTYPE_V64QI_V64QI): Ditto.
12336 (V32HI_FTYPE_V32HI_V32HI): Ditto.
12337 (V16HI_FTYPE_V16HI_V16HI_INT_V16HI_HI): Ditto.
12338 (V16SI_FTYPE_V16SI_V4SI): Ditto.
12339 (V16SI_FTYPE_V16SI_V16SI): Ditto.
12340 (V16SI_FTYPE_V32HI_V32HI): Ditto.
12341 (V16SI_FTYPE_V16SI_SI): Ditto.
12342 (V8DI_FTYPE_V8DI_V8DI): Ditto.
12343 (V4UDI_FTYPE_V8USI_V8USI): Ditto.
12344 (V8DI_FTYPE_V16SI_V16SI): Ditto.
12345 (V8DI_FTYPE_V8DI_V2DI): Ditto.
12346 (QI_FTYPE_QI): Ditto.
12347 (SI_FTYPE_SI): Ditto.
12348 (DI_FTYPE_DI): Ditto.
12349 (QI_FTYPE_QI_QI): Ditto.
12350 (QI_FTYPE_QI_INT): Ditto.
12351 (HI_FTYPE_HI_INT): Ditto.
12352 (SI_FTYPE_SI_INT): Ditto.
12353 (DI_FTYPE_DI_INT): Ditto.
12354 (HI_FTYPE_V16QI_V16QI): Ditto.
12355 (SI_FTYPE_V32QI_V32QI): Ditto.
12356 (DI_FTYPE_V64QI_V64QI): Ditto.
12357 (QI_FTYPE_V8HI_V8HI): Ditto.
12358 (HI_FTYPE_V16HI_V16HI): Ditto.
12359 (SI_FTYPE_V32HI_V32HI): Ditto.
12360 (QI_FTYPE_V4SI_V4SI): Ditto.
12361 (QI_FTYPE_V8SI_V8SI): Ditto.
12362 (QI_FTYPE_V2DI_V2DI): Ditto.
12363 (QI_FTYPE_V4DI_V4DI): Ditto.
12364 (QI_FTYPE_V8DI_V8DI): Ditto.
12365 (HI_FTYPE_V16SI_V16SI): Ditto.
12366 (HI_FTYPE_V16SI_V16SI_INT_HI): Ditto.
12367 (QI_FTYPE_V8DF_V8DF_INT_QI): Ditto.
12368 (HI_FTYPE_V16SF_V16SF_INT_HI): Ditto.
12369 (V32HI_FTYPE_V32HI_V32HI_V32HI): Ditto.
12370 (V4SF_FTYPE_V4SF_V2DF_V4SF_QI): Ditto.
12371 (V8DF_FTYPE_V8DF_V8DF_V8DF): Ditto.
12372 (V16SF_FTYPE_V16SF_V16SF_V16SF): Ditto.
12373 (V8DF_FTYPE_V8SF_V8DF_QI): Ditto.
12374 (V8DI_FTYPE_V8DF_V8DI_QI): Ditto.
12375 (V8DF_FTYPE_V8DI_V8DF_V8DF): Ditto.
12376 (V2DF_FTYPE_V2DF_V4SF_V2DF_QI): Ditto.
12377 (V16SF_FTYPE_V16SI_V16SF_HI): Ditto.
12378 (V16SF_FTYPE_V16SI_V16SF_V16SF): Ditto.
12379 (V8SI_FTYPE_V8DF_V8SI_QI): Ditto.
12380 (V8DI_FTYPE_PCCHAR_V8DI_QI): Ditto.
12381 (V8SF_FTYPE_PCFLOAT_V8SF_QI): Ditto.
12382 (V4SF_FTYPE_PCFLOAT_V4SF_QI): Ditto.
12383 (V4DF_FTYPE_PCDOUBLE_V4DF_QI): Ditto.
12384 (V2DF_FTYPE_PCDOUBLE_V2DF_QI): Ditto.
12385 (V8SI_FTYPE_PCCHAR_V8SI_QI): Ditto.
12386 (V4SI_FTYPE_PCCHAR_V4SI_QI): Ditto.
12387 (V4DI_FTYPE_PCCHAR_V4DI_QI): Ditto.
12388 (V2DI_FTYPE_PCCHAR_V2DI_QI): Ditto.
12389 (V16SF_FTYPE_PCV8SF_V16SF_HI): Ditto.
12390 (V16SI_FTYPE_PCV8SI_V16SI_HI): Ditto.
12391 (V8DF_FTYPE_PCV2DF_V8DF_QI): Ditto.
12392 (V8SF_FTYPE_PCV4SF_V8SF_QI): Ditto.
12393 (V8DI_FTYPE_PCV2DI_V8DI_QI): Ditto.
12394 (V8SI_FTYPE_PCV4SI_V8SI_QI): Ditto.
12395 (V4DF_FTYPE_PCV2DF_V4DF_QI): Ditto.
12396 (V4DI_FTYPE_PCV2DI_V4DI_QI): Ditto.
12397 (VOID_FTYPE_PDOUBLE_V2DF_QI): Ditto.
12398 (VOID_FTYPE_PFLOAT_V4SF_QI): Ditto.
12399 (V16SI_FTYPE_V16SF_V16SI_HI): Ditto.
12400 (V8DI_FTYPE_V8SF_V8DI_QI): Ditto.
12401 (V8SF_FTYPE_V8DI_V8SF_QI): Ditto.
12402 (V8DF_FTYPE_V8DI_V8DF_QI): Ditto.
12403 (V2DF_FTYPE_V2DF_V2DF_V2DI): Ditto.
12404 (V4SF_FTYPE_V4SF_V4SF_V4SI): Ditto.
12405 (V2UDI_FTYPE_V2UDI_V2UDI_V2UDI): Ditto.
12406 (V4USI_FTYPE_V4USI_V4USI_V4USI): Ditto.
12407 (V8UHI_FTYPE_V8UHI_V8UHI_V8UHI): Ditto.
12408 (V16UQI_FTYPE_V16UQI_V16UQI_V16UQI): Ditto.
12409 (V4DF_FTYPE_V4DF_V4DF_V4DI): Ditto.
12410 (V8SF_FTYPE_V8SF_V8SF_V8SI): Ditto.
12411 (V8DI_FTYPE_V8DI_V8DI_V8DI): Ditto.
12412 (V16SI_FTYPE_V16SI_V16SI_V16SI): Ditto.
12413 (V2DF_FTYPE_V2DF_V2DI_V2DF): Ditto.
12414 (V4DF_FTYPE_V4DF_V4DI_V4DF): Ditto.
12415 (V8DF_FTYPE_V8DF_V8DI_V8DF): Ditto.
12416 (V4SF_FTYPE_V4SF_V4SI_V4SF): Ditto.
12417 (V8SF_FTYPE_V8SF_V8SI_V8SF): Ditto.
12418 (V16SF_FTYPE_V16SF_V16SI_V16SF): Ditto.
12419 (V8DI_FTYPE_V8DI_SI_V8DI_V8DI): Ditto.
12420 (PVOID_FTYPE_PVOID_PVOID_ULONG): Ditto.
12421 (V4SF_FTYPE_V2DF_V4SF_QI): Convert mask type from signed to unsigned.
12422 (V4SF_FTYPE_V4DF_V4SF_QI): Ditto.
12423 (V4SF_FTYPE_V8HI_V4SF_QI): Ditto.
12424 (V8SF_FTYPE_V8HI_V8SF_QI): Ditto.
12425 (V16SI_FTYPE_V16SI_V16SI_HI): Ditto.
12426 (V8DI_FTYPE_V8DI_V8DI_QI): Ditto.
12427 (V2DF_FTYPE_V4DF_INT_V2DF_QI): Ditto.
12428 (V2DF_FTYPE_V8DF_INT_V2DF_QI): Ditto.
12429 (V2DI_FTYPE_V2DI_INT_V2DI_QI): Ditto.
12430 (V4DF_FTYPE_V8DF_INT_V4DF_QI): Ditto.
12431 (V4SF_FTYPE_V8SF_INT_V4SF_QI): Ditto.
12432 (V4SI_FTYPE_V2DF_V4SI_QI): Ditto.
12433 (V4SI_FTYPE_V4SI_INT_V4SI_QI): Ditto.
12434 (V4SI_FTYPE_V8HI_V8HI_V4SI_QI): Ditto.
12435 (V4SI_FTYPE_V8SI_INT_V4SI_QI): Ditto.
12436 (V8HI_FTYPE_V16QI_V16QI_V8HI_QI): Ditto.
12437 (V8HI_FTYPE_V8SF_INT_V8HI_QI): Ditto.
12438 (V8HI_FTYPE_V4SF_INT_V8HI_QI): Ditto.
12439 (V8SF_FTYPE_V16SF_INT_V8SF_QI): Ditto.
12440 (V4SF_FTYPE_V16SF_INT_V4SF_QI): Ditto.
12441 (V8DF_FTYPE_V8DF_V2DF_INT_V8DF_QI): Ditto.
12442 (V8DF_FTYPE_V8DF_V4DF_INT_V8DF_QI): Ditto.
12443 (V8DF_FTYPE_V8DF_V8DF_INT_V8DF_QI): Ditto.
12444 (V8DF_FTYPE_V8DF_INT_V8DF_QI): Ditto.
12445 (V4DF_FTYPE_V4DF_V4DF_V4DI_INT_QI): Ditto.
12446 (V2DF_FTYPE_V2DF_V2DF_V2DI_INT_QI): Ditto.
12447 (V16SF_FTYPE_V16SF_V16SF_INT_V16SF_HI): Ditto.
12448 (V16SF_FTYPE_V16SF_INT_V16SF_HI): Ditto.
12449 (V16SI_FTYPE_V16SI_V4SI_INT_V16SI_HI): Ditto.
12450 (V8SF_FTYPE_V8SF_V8SF_V8SI_INT_QI): Ditto.
12451 (V4SF_FTYPE_V4SF_V4SF_V4SI_INT_QI): Ditto.
12452 (V16SF_FTYPE_V16SF_V4SF_INT_V16SF_HI): Ditto.
12453 (V16SF_FTYPE_V16SF_V8SF_INT_V16SF_HI): Ditto.
12454 (V16HI_FTYPE_V32QI_V32QI_V16HI_HI): Ditto.
12455 (V32HI_FTYPE_V64QI_V64QI_V32HI_SI): Ditto.
12456 (V16HI_FTYPE_V16SF_INT_V16HI_HI): Ditto.
12457 (V16SI_FTYPE_V16SI_V8SI_INT_V16SI_HI): Ditto.
12458 (V4SI_FTYPE_V16SI_INT_V4SI_QI): Ditto.
12459 (V16SI_FTYPE_V16SI_V16SI_INT_V16SI_HI): Ditto.
12460 (V8SI_FTYPE_V16HI_V16HI_V8SI_QI): Ditto.
12461 (V16SI_FTYPE_V32HI_V32HI_V16SI_HI): Ditto.
12462 (V8SI_FTYPE_V8SI_INT_V8SI_QI): Ditto.
12463 (V8SI_FTYPE_V16SI_INT_V8SI_QI): Ditto.
12464 (V16SI_FTYPE_V16SI_V4SI_V16SI_HI): Ditto.
12465 (V16SI_FTYPE_V16SI_INT_V16SI_HI): Ditto.
12466 (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_QI): Ditto.
12467 (V8DI_FTYPE_V8DI_V8DI_INT_V8DI_DI): Ditto.
12468 (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_SI): Ditto.
12469 (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_HI): Ditto.
12470 (V8DI_FTYPE_V8DI_V2DI_INT_V8DI_QI): Ditto.
12471 (V8DI_FTYPE_V8DI_V4DI_INT_V8DI_QI): Ditto.
12472 (V4DI_FTYPE_V8DI_INT_V4DI_QI): Ditto.
12473 (V8DI_FTYPE_V8DI_V2DI_V8DI_QI): Ditto.
12474 (V8DI_FTYPE_V8DI_INT_V8DI_QI): Ditto.
12475 (V4DI_FTYPE_V4DI_INT_V4DI_QI): Ditto.
12476 (V2DI_FTYPE_V4DI_INT_V2DI_QI): Ditto.
12477 (V2DI_FTYPE_V8DI_INT_V2DI_QI): Ditto.
12478 (HI_FTYPE_HI): Ditto.
12479 (HI_FTYPE_V16QI): Ditto.
12480 (SI_FTYPE_V32QI): Ditto.
12481 (DI_FTYPE_V64QI): Ditto.
12482 (QI_FTYPE_V8HI): Ditto.
12483 (HI_FTYPE_V16HI): Ditto.
12484 (SI_FTYPE_V32HI): Ditto.
12485 (QI_FTYPE_V4SI): Ditto.
12486 (QI_FTYPE_V8SI): Ditto.
12487 (HI_FTYPE_V16SI): Ditto.
12488 (QI_FTYPE_V2DI): Ditto.
12489 (QI_FTYPE_V4DI): Ditto.
12490 (QI_FTYPE_V8DI): Ditto.
12491 (V16QI_FTYPE_HI): Ditto.
12492 (V32QI_FTYPE_SI): Ditto.
12493 (V64QI_FTYPE_DI): Ditto.
12494 (V8HI_FTYPE_QI): Ditto.
12495 (V16HI_FTYPE_HI): Ditto.
12496 (V32HI_FTYPE_SI): Ditto.
12497 (V4SI_FTYPE_QI): Ditto.
12498 (V4SI_FTYPE_HI): Ditto.
12499 (V8SI_FTYPE_QI): Ditto.
12500 (V8SI_FTYPE_HI): Ditto.
12501 (V2DI_FTYPE_QI): Ditto.
12502 (V4DI_FTYPE_QI): Ditto.
12503 (HI_FTYPE_HI_HI): Ditto.
12504 (SI_FTYPE_SI_SI): Ditto.
12505 (DI_FTYPE_DI_DI): Ditto.
12506 (HI_FTYPE_V16QI_V16QI_HI): Ditto.
12507 (HI_FTYPE_V16QI_V16QI_INT_HI): Ditto.
12508 (SI_FTYPE_V32QI_V32QI_SI): Ditto.
12509 (SI_FTYPE_V32QI_V32QI_INT_SI): Ditto.
12510 (DI_FTYPE_V64QI_V64QI_DI): Ditto.
12511 (DI_FTYPE_V64QI_V64QI_INT_DI): Ditto.
12512 (QI_FTYPE_V8HI_V8HI_QI): Ditto.
12513 (QI_FTYPE_V8HI_V8HI_INT_QI): Ditto.
12514 (HI_FTYPE_V16HI_V16HI_HI): Ditto.
12515 (HI_FTYPE_V16HI_V16HI_INT_HI): Ditto.
12516 (SI_FTYPE_V32HI_V32HI_SI): Ditto.
12517 (SI_FTYPE_V32HI_V32HI_INT_SI): Ditto.
12518 (QI_FTYPE_V4SI_V4SI_QI): Ditto.
12519 (QI_FTYPE_V4SI_V4SI_INT_QI): Ditto.
12520 (QI_FTYPE_V8SI_V8SI_QI): Ditto.
12521 (QI_FTYPE_V8SI_V8SI_INT_QI): Ditto.
12522 (QI_FTYPE_V2DI_V2DI_QI): Ditto.
12523 (QI_FTYPE_V2DI_V2DI_INT_QI): Ditto.
12524 (QI_FTYPE_V4DI_V4DI_QI): Ditto.
12525 (QI_FTYPE_V4DI_V4DI_INT_QI): Ditto.
12526 (QI_FTYPE_V8DI_V8DI_QI): Ditto.
12527 (HI_FTYPE_V16SI_V16SI_HI): Ditto.
12528 (QI_FTYPE_V8DI_V8DI_INT): Ditto.
12529 (QI_FTYPE_V8DI_V8DI_INT_QI): Ditto.
12530 (HI_FTYPE_V16SI_V16SI_INT): Ditto.
12531 (HI_FTYPE_V16SI_V16SI_INT _HI): Ditto.
12532 (QI_FTYPE_V8DF_V8DF_INT): Ditto.
12533 (QI_FTYPE_V8DF_V8DF_INT_QI_INT): Ditto.
12534 (HI_FTYPE_V16SF_V16SF_INT): Ditto.
12535 (HI_FTYPE_V16SF_V16SF_INT_HI_INT): Ditto.
12536 (QI_FTYPE_V2DF_V2DF_INT): Ditto.
12537 (QI_FTYPE_V2DF_V2DF_INT_QI): Ditto.
12538 (QI_FTYPE_V2DF_V2DF_INT_QI_INT): Ditto.
12539 (QI_FTYPE_V4SF_V4SF_INT): Ditto.
12540 (QI_FTYPE_V4SF_V4SF_INT_QI): Ditto.
12541 (QI_FTYPE_V4SF_V4SF_INT_QI_INT): Ditto.
12542 (V16SI_FTYPE_HI): Ditto.
12543 (V8DI_FTYPE_QI): Ditto.
12544 (V2DF_FTYPE_V2DI_V2DF_V2DF_QI): Ditto.
12545 (V2DF_FTYPE_V2DF_V2DI_V2DF_QI): Ditto.
12546 (V4DF_FTYPE_V4DF_V2DF_INT_V4DF_QI): Ditto.
12547 (V4SF_FTYPE_V4SI_V4SF_V4SF_QI): Ditto.
12548 (V4SF_FTYPE_V4SF_V4SI_V4SF_QI): Ditto.
12549 (V4SF_FTYPE_V4SF_V4SF_V4SF_QI): Ditto.
12550 (V8SF_FTYPE_V8SF_V4SF_INT_V8SF_QI): Ditto.
12551 (V8SI_FTYPE_V8SI_V4SI_INT_V8SI_QI): Ditto.
12552 (V4DI_FTYPE_V4DI_V2DI_INT_V4DI_QI): Ditto.
12553 (V2DF_FTYPE_V2DF_V2DF_QI): Ditto.
12554 (V2DF_FTYPE_V4SF_V2DF_QI): Ditto.
12555 (V2DF_FTYPE_V4SI_V2DF_QI): Ditto.
12556 (V4DF_FTYPE_V4DF_V4DF_QI): Ditto.
12557 (V4DF_FTYPE_V4SF_V4DF_QI): Ditto.
12558 (V4DF_FTYPE_V4SI_V4DF_QI): Ditto.
12559 (V8DF_FTYPE_V8DF_V8DF_QI): Ditto.
12560 (V8DF_FTYPE_V8SI_V8DF_QI): Ditto.
12561 (V2DI_FTYPE_V4SI_V2DI_QI): Ditto.
12562 (V2DI_FTYPE_V8HI_V2DI_QI): Ditto.
12563 (V4DI_FTYPE_V4DF_V4DI_QI): Ditto.
12564 (V2DI_FTYPE_V2DF_V2DI_QI): Ditto.
12565 (V2DI_FTYPE_V2DI_V2DI_V2DI_QI): Ditto.
12566 (V2DI_FTYPE_V2DI_V2DI_INT_V2DI_QI): Ditto.
12567 (V4DI_FTYPE_V4DI_V4DI_V4DI_QI): Ditto.
12568 (V4DI_FTYPE_V4DI_V4DI_INT_V4DI_QI): Ditto.
12569 (V8DI_FTYPE_V8SI_V8DI_QI): Ditto.
12570 (V8DI_FTYPE_V8HI_V8DI_QI): Ditto.
12571 (V8DI_FTYPE_V16QI_V8DI_QI): Ditto.
12572 (V2DI_FTYPE_V16QI_V2DI_QI): Ditto.
12573 (V4DI_FTYPE_V16QI_V4DI_QI): Ditto.
12574 (V4DI_FTYPE_V4DI_V4DI_QI): Ditto.
12575 (V4DI_FTYPE_V4SI_V4DI_QI): Ditto.
12576 (V4DI_FTYPE_V8HI_V4DI_QI): Ditto.
12577 (V8DI_FTYPE_V8DI_V8DI_V8DI_QI): Ditto.
12578 (V8DF_FTYPE_V8DI_V8DF_V8DF_QI): Ditto.
12579 (V8DF_FTYPE_V8DF_V8DI_V8DF_QI): Ditto.
12580 (V4DF_FTYPE_V4DI_V4DF_V4DF_QI): Ditto.
12581 (V4DF_FTYPE_V4DF_V4DI_V4DF_QI): Ditto.
12582 (V4DF_FTYPE_V4DF_V4DF_V4DF_QI): Ditto.
12583 (V8DF_FTYPE_V8DF_V8DF_V8DF_QI): Ditto.
12584 (V16QI_FTYPE_V16QI_V16QI_V16QI_HI): Ditto.
12585 (V16HI_FTYPE_V16HI_V16HI_V16HI_HI): Ditto.
12586 (V16SI_FTYPE_V16SI_V16SI_V16SI_HI): Ditto.
12587 (V2DF_FTYPE_V2DF_V2DF_V2DF_QI): Ditto.
12588 (V32HI_FTYPE_V32HI_V32HI_V32HI_SI): Ditto.
12589 (V64QI_FTYPE_V64QI_V64QI_V64QI_DI): Ditto.
12590 (V32QI_FTYPE_V32QI_V32QI_V32QI_SI): Ditto.
12591 (V8HI_FTYPE_V8HI_V8HI_V8HI_QI): Ditto.
12592 (V4SF_FTYPE_V4SF_V4SF_QI): Ditto.
12593 (V4SF_FTYPE_V4SI_V4SF_QI): Ditto.
12594 (V8SF_FTYPE_V8SF_V8SF_QI): Ditto.
12595 (V8SF_FTYPE_V8SI_V8SF_QI): Ditto.
12596 (V16SF_FTYPE_V16SF_V16SF_HI): Ditto.
12597 (V4SI_FTYPE_V16QI_V4SI_QI): Ditto.
12598 (V4SI_FTYPE_V8HI_V4SI_QI): Ditto.
12599 (V8SI_FTYPE_V8SI_V8SI_QI): Ditto.
12600 (V8SI_FTYPE_V8HI_V8SI_QI): Ditto.
12601 (V8SI_FTYPE_V16QI_V8SI_QI): Ditto.
12602 (V4SI_FTYPE_V4SI_V4SI_V4SI_QI): Ditto.
12603 (V4SI_FTYPE_V4SI_V4SI_INT_V4SI_QI): Ditto.
12604 (V8SF_FTYPE_V8SF_V8SF_V8SF_QI): Ditto.
12605 (V8SF_FTYPE_V8SI_V8SF_V8SF_QI): Ditto.
12606 (V8SF_FTYPE_V8SF_V8SI_V8SF_QI): Ditto.
12607 (V8SI_FTYPE_V8SI_V8SI_V8SI_QI): Ditto.
12608 (V8SI_FTYPE_V8SI_V8SI_INT_V8SI_QI): Ditto.
12609 (V16SF_FTYPE_V16SF_V16SF_V16SF_HI): Ditto.
12610 (V16SF_FTYPE_V16SI_V16SF_V16SF_HI): Ditto.
12611 (V16SF_FTYPE_V16SF_V16SI_V16SF_HI): Ditto.
12612 (V16SF_FTYPE_V8SF_V16SF_HI): Ditto.
12613 (V16SF_FTYPE_V4SF_V16SF_HI): Ditto.
12614 (V8DF_FTYPE_V4DF_V8DF_QI): Ditto.
12615 (V8DF_FTYPE_V2DF_V8DF_QI): Ditto.
12616 (V16SI_FTYPE_V8SI_V16SI_HI): Ditto.
12617 (V16SI_FTYPE_V4SI_V16SI_HI): Ditto.
12618 (V16SI_FTYPE_SI_V16SI_HI): Ditto.
12619 (V16SI_FTYPE_V16HI_V16SI_HI): Ditto.
12620 (V16SI_FTYPE_V16QI_V16SI_HI): Ditto.
12621 (V8DI_FTYPE_V4DI_V8DI_QI): Ditto.
12622 (V4SI_FTYPE_V4DF_V4SI_QI): Ditto.
12623 (V8DI_FTYPE_V2DI_V8DI_QI): Ditto.
12624 (V8DI_FTYPE_DI_V8DI_QI): Ditto.
12625 (V16QI_FTYPE_V16SI_V16QI_HI): Ditto.
12626 (V16QI_FTYPE_V8DI_V16QI_QI): Ditto.
12627 (V32HI_FTYPE_V32HI_V32HI_SI): Ditto.
12628 (V32HI_FTYPE_V32QI_V32HI_SI): Ditto.
12629 (V16HI_FTYPE_V16HI_V16HI_HI): Ditto.
12630 (V16HI_FTYPE_V16QI_V16HI_HI): Ditto.
12631 (V8HI_FTYPE_V16QI_V8HI_QI): Ditto.
12632 (V8SF_FTYPE_V4SF_V8SF_QI): Ditto.
12633 (V4DF_FTYPE_V2DF_V4DF_QI): Ditto.
12634 (V8SI_FTYPE_V4SI_V8SI_QI): Ditto.
12635 (V8SI_FTYPE_SI_V8SI_QI): Ditto.
12636 (V4SI_FTYPE_V4SI_V4SI_QI): Ditto.
12637 (V4SI_FTYPE_SI_V4SI_QI): Ditto.
12638 (V4DI_FTYPE_V2DI_V4DI_QI): Ditto.
12639 (V4DI_FTYPE_DI_V4DI_QI): Ditto.
12640 (V2DI_FTYPE_V2DI_V2DI_QI): Ditto.
12641 (V2DI_FTYPE_DI_V2DI_QI): Ditto.
12642 (V64QI_FTYPE_V64QI_V64QI_DI): Ditto.
12643 (V64QI_FTYPE_V16QI_V64QI_DI): Ditto.
12644 (V64QI_FTYPE_QI_V64QI_DI): Ditto.
12645 (V32QI_FTYPE_V32QI_V32QI_SI): Ditto.
12646 (V32QI_FTYPE_V16QI_V32QI_SI): Ditto.
12647 (V32QI_FTYPE_QI_V32QI_SI): Ditto.
12648 (V16QI_FTYPE_V16QI_V16QI_HI): Ditto.
12649 (V16QI_FTYPE_QI_V16QI_HI): Ditto.
12650 (V32HI_FTYPE_V8HI_V32HI_SI): Ditto.
12651 (V32HI_FTYPE_HI_V32HI_SI): Ditto.
12652 (V16HI_FTYPE_V8HI_V16HI_HI): Ditto.
12653 (V16HI_FTYPE_HI_V16HI_HI): Ditto.
12654 (V8HI_FTYPE_V8HI_V8HI_QI): Ditto.
12655 (V8HI_FTYPE_HI_V8HI_QI): Ditto.
12656 (V64QI_FTYPE_PCV64QI_V64QI_DI): Ditto.
12657 (V32HI_FTYPE_PCV32HI_V32HI_SI): Ditto.
12658 (V32QI_FTYPE_PCV32QI_V32QI_SI): Ditto.
12659 (V16SF_FTYPE_PCV16SF_V16SF_HI): Ditto.
12660 (V8DF_FTYPE_PCV8DF_V8DF_QI): Ditto.
12661 (V16SI_FTYPE_PCV16SI_V16SI_HI): Ditto.
12662 (V16HI_FTYPE_PCV16HI_V16HI_HI): Ditto.
12663 (V16QI_FTYPE_PCV16QI_V16QI_HI): Ditto.
12664 (V8SF_FTYPE_PCV8SF_V8SF_QI): Ditto.
12665 (V8DI_FTYPE_PCV8DI_V8DI_QI): Ditto.
12666 (V8SI_FTYPE_PCV8SI_V8SI_QI): Ditto.
12667 (V8HI_FTYPE_PCV8HI_V8HI_QI): Ditto.
12668 (V4DF_FTYPE_PCV4DF_V4DF_QI): Ditto.
12669 (V4SF_FTYPE_PCV4SF_V4SF_QI): Ditto.
12670 (V4DI_FTYPE_PCV4DI_V4DI_QI): Ditto.
12671 (V4SI_FTYPE_PCV4SI_V4SI_QI): Ditto.
12672 (V2DF_FTYPE_PCV2DF_V2DF_QI): Ditto.
12673 (V2DI_FTYPE_PCV2DI_V2DI_QI): Ditto.
12674 (V16HI_FTYPE_V16SI_V16HI_HI): Ditto.
12675 (V8SI_FTYPE_V8DI_V8SI_QI): Ditto.
12676 (V8HI_FTYPE_V8DI_V8HI_QI): Ditto.
12677 (V16QI_FTYPE_V8HI_V16QI_QI): Ditto.
12678 (V16QI_FTYPE_V16HI_V16QI_HI): Ditto.
12679 (V16QI_FTYPE_V4SI_V16QI_QI): Ditto.
12680 (V16QI_FTYPE_V8SI_V16QI_QI): Ditto.
12681 (V8HI_FTYPE_V4SI_V8HI_QI): Ditto.
12682 (V8HI_FTYPE_V8SI_V8HI_QI): Ditto.
12683 (V16QI_FTYPE_V2DI_V16QI_QI): Ditto.
12684 (V16QI_FTYPE_V4DI_V16QI_QI): Ditto.
12685 (V8HI_FTYPE_V2DI_V8HI_QI): Ditto.
12686 (V8HI_FTYPE_V4DI_V8HI_QI): Ditto.
12687 (V4SI_FTYPE_V2DI_V4SI_QI): Ditto.
12688 (V4SI_FTYPE_V4DI_V4SI_QI): Ditto.
12689 (V32QI_FTYPE_V32HI_V32QI_SI): Ditto.
12690 (V2DF_FTYPE_V2DF_INT_V2DF_QI): Ditto.
12691 (V4DF_FTYPE_V4DF_INT_V4DF_QI): Ditto.
12692 (V4SF_FTYPE_V4SF_INT_V4SF_QI): Ditto.
12693 (V8SF_FTYPE_V8SF_INT_V8SF_QI): Ditto.
12694 (V4DF_FTYPE_V4DF_V4DF_INT_V4DF_QI): Ditto.
12695 (V2DF_FTYPE_V2DF_V2DF_INT_V2DF_QI): Ditto.
12696 (V8SF_FTYPE_V8SF_V8SF_INT_V8SF_QI): Ditto.
12697 (V4SF_FTYPE_V4SF_V4SF_INT_V4SF_QI): Ditto.
12698 (VOID_FTYPE_PV8DF_V8DF_QI): Ditto.
12699 (VOID_FTYPE_PV8SI_V8DI_QI): Ditto.
12700 (VOID_FTYPE_PV8HI_V8DI_QI): Ditto.
12701 (VOID_FTYPE_PV8HI_V4DI_QI): Ditto.
12702 (VOID_FTYPE_PV8HI_V2DI_QI): Ditto.
12703 (VOID_FTYPE_PV4SI_V4DI_QI): Ditto.
12704 (VOID_FTYPE_PV4SI_V2DI_QI): Ditto.
12705 (VOID_FTYPE_PV8HI_V8SI_QI): Ditto.
12706 (VOID_FTYPE_PV8HI_V4SI_QI): Ditto.
12707 (VOID_FTYPE_PV4DF_V4DF_QI): Ditto.
12708 (VOID_FTYPE_PV2DF_V2DF_QI): Ditto.
12709 (VOID_FTYPE_PV16SF_V16SF_HI): Ditto.
12710 (VOID_FTYPE_PV8SF_V8SF_QI): Ditto.
12711 (VOID_FTYPE_PV4SF_V4SF_QI): Ditto.
12712 (VOID_FTYPE_PV8DI_V8DI_QI): Ditto.
12713 (VOID_FTYPE_PV4DI_V4DI_QI): Ditto.
12714 (VOID_FTYPE_PV2DI_V2DI_QI): Ditto.
12715 (VOID_FTYPE_PV16SI_V16SI_HI): Ditto.
12716 (VOID_FTYPE_PV16HI_V16SI_HI): Ditto.
12717 (VOID_FTYPE_PV16QI_V16SI_HI): Ditto.
12718 (VOID_FTYPE_PV16QI_V8SI_QI): Ditto.
12719 (VOID_FTYPE_PV16QI_V4SI_QI): Ditto.
12720 (VOID_FTYPE_PV16QI_V8DI_QI): Ditto.
12721 (VOID_FTYPE_PV16QI_V4DI_QI): Ditto.
12722 (VOID_FTYPE_PV16QI_V2DI_QI): Ditto.
12723 (VOID_FTYPE_PV8SI_V8SI_QI): Ditto.
12724 (VOID_FTYPE_PV4SI_V4SI_QI): Ditto.
12725 (VOID_FTYPE_PV32HI_V32HI_SI): Ditto.
12726 (VOID_FTYPE_PV16HI_V16HI_HI): Ditto.
12727 (VOID_FTYPE_PV8HI_V8HI_QI): Ditto.
12728 (VOID_FTYPE_PV64QI_V64QI_DI): Ditto.
12729 (VOID_FTYPE_PV32QI_V32QI_SI): Ditto.
12730 (VOID_FTYPE_PV16QI_V16QI_HI): Ditto.
12731 (V8DI_FTYPE_V8DI_V8DI_V8DI_INT_QI): Ditto.
12732 (V8SI_FTYPE_V8SF_V8SI_QI): Ditto.
12733 (V4SI_FTYPE_V4SF_V4SI_QI): Ditto.
12734 (V4DI_FTYPE_V4SF_V4DI_QI): Ditto.
12735 (V2DI_FTYPE_V4SF_V2DI_QI): Ditto.
12736 (V4SF_FTYPE_V4DI_V4SF_QI): Ditto.
12737 (V4SF_FTYPE_V2DI_V4SF_QI): Ditto.
12738 (V4DF_FTYPE_V4DI_V4DF_QI): Ditto.
12739 (V2DF_FTYPE_V2DI_V2DF_QI): Ditto.
12740 (V32HI_FTYPE_V32HI_INT_V32HI_SI): Ditto.
12741 (V32HI_FTYPE_V32HI_V8HI_V32HI_SI): Ditto.
12742 (V16HI_FTYPE_V16HI_INT_V16HI_HI): Ditto.
12743 (V16HI_FTYPE_V16HI_V8HI_V16HI_HI): Ditto.
12744 (V8HI_FTYPE_V8HI_INT_V8HI_QI): Ditto.
12745 (V32HI_FTYPE_V64QI_V64QI_INT_V32HI_SI): Ditto.
12746 (V16HI_FTYPE_V32QI_V32QI_INT_V16HI_HI): Ditto.
12747 (V8HI_FTYPE_V16QI_V16QI_INT_V8HI_QI): Ditto.
12748 (V64QI_FTYPE_V32HI_V32HI_V64QI_DI): Ditto.
12749 (V32QI_FTYPE_V16HI_V16HI_V32QI_SI): Ditto.
12750 (V16QI_FTYPE_V8HI_V8HI_V16QI_HI): Ditto.
12751 (V32HI_FTYPE_V16SI_V16SI_V32HI_SI): Ditto.
12752 (V16HI_FTYPE_V8SI_V8SI_V16HI_HI): Ditto.
12753 (V8HI_FTYPE_V4SI_V4SI_V8HI_QI): Ditto.
12754 (V8DI_FTYPE_V16SI_V16SI_V8DI_QI): Ditto.
12755 (V4DI_FTYPE_V8SI_V8SI_V4DI_QI): Ditto.
12756 (V2DI_FTYPE_V4SI_V4SI_V2DI_QI): Ditto.
12757 (V16SI_FTYPE_V16SI_V16SI_V16SI_INT_HI): Ditto.
12758 (V8SI_FTYPE_V8SI_V8SI_V8SI_INT_QI): Ditto.
12759 (V4DI_FTYPE_V4DI_V4DI_V4DI_INT_QI): Ditto.
12760 (V4SI_FTYPE_V4SI_V4SI_V4SI_INT_QI): Ditto.
12761 (V2DI_FTYPE_V2DI_V2DI_V2DI_INT_QI): Ditto.
12762 (V8SI_FTYPE_V8SI_V4SI_V8SI_QI): Ditto.
12763 (V4DI_FTYPE_V4DI_V2DI_V4DI_QI): Ditto.
12764 (QI_FTYPE_V4DF_V4DF_INT_QI): Ditto.
12765 (QI_FTYPE_V8SF_V8SF_INT_QI): Ditto.
12766 (QI_FTYPE_V8DF_INT_QI): Ditto.
12767 (QI_FTYPE_V4DF_INT_QI): Ditto.
12768 (QI_FTYPE_V2DF_INT_QI): Ditto.
12769 (HI_FTYPE_V16SF_INT_HI): Ditto.
12770 (QI_FTYPE_V8SF_INT_QI): Ditto.
12771 (QI_FTYPE_V4SF_INT_QI): Ditto.
12772 (V8DF_FTYPE_V8DF_V8DF_V8DF_QI_INT): Ditto.
12773
12774 2015-07-31 Richard Biener <rguenther@suse.de>
12775
12776 * gimple-fold.c (fold_gimple_assign): Remove folding of
12777 GIMPLE_BINARY_RHS.
12778
12779 2015-07-31 Tom de Vries <tom@codesourcery.com>
12780
12781 PR tree-optimization/66846
12782 * omp-low.c (expand_omp_taskreg) [ENABLE_CHECKING]: Call
12783 verify_loop_structure for child_cfun if !LOOPS_NEED_FIXUP.
12784 (expand_omp_target) [ENABLE_CHECKING]: Same.
12785 (execute_expand_omp) [ENABLE_CHECKING]: Call verify_loop_structure for
12786 cfun if !LOOPS_NEED_FIXUP.
12787 (expand_omp_for_static_nochunk): Handle simple latch bb. Handle case
12788 that omp_for already has its own loop struct.
12789 * tree-parloops.c (create_phi_for_local_result)
12790 (create_call_for_reduction): Handle simple latch bb.
12791 (create_parallel_loop): Add simple latch bb to preserve
12792 LOOPS_HAVE_SIMPLE_LATCHES. Record new exit. Handle simple latch bb.
12793 (gen_parallel_loop): Remove call to cancel_loop_tree.
12794 (parallelize_loops): Skip loops that are inner loops of parallelized
12795 loops.
12796 (pass_parallelize_loops::execute) [ENABLE_CHECKING]: Call
12797 verify_loop_structure.
12798
12799 2015-07-30 Anatoly Sokolov <aesok@post.ru>
12800
12801 * config/v850/v850.h (LIBCALL_VALUE): Remove macros.
12802 * config/v850/v850.md (RV_REGNUM): New constants.
12803 * config/v850/v850.c (v850_libcall_value): New functions.
12804 (v850_function_value_regno_p, v850_function_value): Use RV_REGNUM.
12805 (TARGET_LIBCALL_VALUE): Define.
12806
12807 2015-07-30 Anatoly Sokolov <aesok@post.ru>
12808
12809 * rtl.h (lowpart_subreg): Move in file.
12810 * loop-iv.c (lowpart_subreg): Move to...
12811 * simplify-rtx.c (lowpart_subreg): ...here.
12812 (simplify_binary_operation_1): Use lowpart_subreg instead of
12813 simplify_gen_subreg.
12814 * expr.c (expand_expr_real_2): Ditto.
12815 * emit-rtl.c (gen_lowpart_common): Ditto.
12816 * combine.c (gen_lowpart_for_combine): Ditto.
12817 * cfgexpand.c (convert_debug_memory_address, expand_debug_expr,
12818 expand_debug_source_expr): Ditto.
12819
12820 2015-07-30 Richard Sandiford <richard.sandiford@arm.com>
12821
12822 * builtins.c (HAVE_atomic_clear, gen_atomic_clear): Delete.
12823 (expand_builtin_atomic_clear): Remove support for atomic_clear
12824 pattern.
12825
12826 2015-07-30 Richard Biener <rguenther@suse.de>
12827
12828 * gimple-fold.c (fold_gimple_assign): Only fold !tcc_comparison
12829 binaries. Move X == 0, X == 1, X != 0, and X != 1 canonicalization ...
12830 (fold_stmt_1): ... here and work on GIMPLE directly. Remove
12831 redundant operand canonicalization.
12832
12833 2015-07-30 David Sherwood <david.sherwood@arm.com>
12834
12835 * config/aarch64/aarch64-simd.md (aarch64_ext<mode>): Replace call to
12836 GET_MODE_SIZE (GET_MODE_INNER (m)) with GET_MODE_UNIT_SIZE (m).
12837 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Likewise.
12838 * config/arm/arm.c (neon_valid_immediate): Likewise.
12839 * config/i386/i386.c (classify_argument, ix86_expand_int_vcond)
12840 (expand_vec_perm_blend, expand_vec_perm_pshufb): Likewise.
12841 (expand_vec_perm_pshufb2, expand_vec_perm_vpshufb2_vpermq): Likewise.
12842 (expand_vec_perm_vpshufb2_vpermq): Likewise.
12843 (expand_vec_perm_vpshufb2_vpermq_even_odd): Likewise.
12844 (expand_vec_perm_vpshufb4_vpermq2): Likewise.
12845 * config/i386/sse.md
12846 (<extract_type>_vinsert<shuffletype><extract_suf>_mask): Likewise.
12847 (*ssse3_palignr<mode>_perm): Likewise.
12848 * config/rs6000/rs6000.c (rs6000_complex_function_value): Likewise.
12849 * config/spu/spu.c (arith_immediate_p): Likewise.
12850 * simplify-rtx.c (simplify_const_unary_operation): Likewise.
12851 (simplify_binary_operation_1, simplify_ternary_operation): Likewise.
12852
12853 2015-07-30 Richard Biener <rguenther@suse.de>
12854
12855 * genmatch.c (decision_tree::gen_gimple): Merge with ...
12856 (decision_tree::gen_generic): ... this into ...
12857 (decision_tree::gen): ... this.
12858 (main): Adjust callers.
12859
12860 2015-07-30 Richard Biener <rguenther@suse.de>
12861
12862 * genmatch.c (verbose): New global.
12863 (warning_at): Add overload with source_location.
12864 (capture_info::capture_info): Add bool whether generating gimple
12865 or generic. Add gimple member.
12866 (capture_info::cinfo): Add capture member.
12867 (capture_info::walk_match): Record capture. Warn on
12868 non-captured leafs.
12869 (capture_info::walk_c_expr): Add more fragments captures cannot
12870 escape through. Warn on escaped captures.
12871 (dt_simplify::gen_1): Warn on operands we force to have no
12872 side-effects.
12873 (main): Initialize verbose.
12874 * match.pd: Add integer_nonzerop and HONOR_NANS predicates.
12875
12876 2015-07-30 Richard Biener <rguenther@suse.de>
12877
12878 PR middle-end/67053
12879 * match.pd: Allow both operands to independently have conversion
12880 when simplifying compares of addresses.
12881
12882 2015-07-29 Segher Boessenkool <segher@kernel.crashing.org>
12883
12884 PR target/66217
12885 PR target/67045
12886 * config/rs6000/rs6000.md (and<mode>3): Put a CONST_INT_P check
12887 around those cases that need one.
12888
12889 2015-07-29 Aditya Kumar <hiraditya@msn.com>
12890
12891 * params.def (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Default to 3.
12892
12893 2015-07-29 H.J. Lu <hongjiu.lu@intel.com>
12894
12895 * config/i386/iamcu.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE):
12896 New. Copied from config/i386/gnu-user.h.
12897 (ASM_COMMENT_START): Likewise.
12898 (DBX_REGISTER_NUMBER): Likewise.
12899
12900 2015-07-29 Richard Biener <rguenther@suse.de>
12901
12902 * gimple-fold.c (fold_gimple_cond): Remove.
12903 (fold_stmt_1): Do not call it.
12904
12905 2015-07-29 Alan Lawrence <alan.lawrence@arm.com>
12906
12907 * config/aarch64/aarch64-builtins.c (aarch64_fp16_type_node): New.
12908 (aarch64_init_builtins): Make aarch64_fp16_type_node, use for __fp16.
12909
12910 * config/aarch64/aarch64-modes.def: Add HFmode.
12911
12912 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
12913 __ARM_FP16_FORMAT_IEEE and __ARM_FP16_ARGS. Set bit 1 of __ARM_FP.
12914
12915 * config/aarch64/aarch64.c (aarch64_init_libfuncs,
12916 aarch64_promoted_type): New.
12917
12918 (aarch64_float_const_representable_p): Disable HFmode.
12919 (aarch64_mangle_type): Mangle half-precision floats to "Dh".
12920 (TARGET_PROMOTED_TYPE): Define to aarch64_promoted_type.
12921 (TARGET_INIT_LIBFUNCS): Define to aarch64_init_libfuncs.
12922
12923 * config/aarch64/aarch64.md (mov<mode>): Include HFmode using GPF_F16.
12924 (movhf_aarch64, extendhfsf2, extendhfdf2, truncsfhf2, truncdfhf2): New.
12925
12926 * config/aarch64/iterators.md (GPF_F16): New.
12927
12928 2015-07-29 Richard Biener <rguenther@suse.de>
12929
12930 * match.pd: Merge address comparison patterns and make them
12931 handle some more cases.
12932
12933 2015-07-29 Richard Biener <rguenther@suse.de>
12934
12935 * genmatch.c (c_expr::gen_transform): Error on unknown captures.
12936 (parser::parse_capture): Add bool argument on whether to reject
12937 unknown captures.
12938 (parser::parse_expr): Adjust.
12939 (parser::parse_op): Likewise.
12940 (parser::parse_pattern): Likewise.
12941
12942 2015-07-29 Richard Biener <rguenther@suse.de>
12943
12944 * gimple-fold.c (has_use_on_stmt): New function.
12945 (replace_stmt_with_simplification): Use it to allow
12946 abnormals originally referenced in the stmt.
12947 (fold_stmt_1): Canonicalize operand order.
12948
12949 2015-07-28 David Sherwood <david.sherwood@arm.com>
12950
12951 * config/arm/arm.c (neon_element_bits, neon_valid_immediate): Call
12952 GET_MODE_INNER unconditionally.
12953 * config/spu/spu.c (arith_immediate_p): Likewise.
12954 * config/i386/i386.c (ix86_build_signbit_mask): Likewise.
12955 * expmed.c (synth_mult): Remove check for VOIDmode result from
12956 GET_MODE_INNER.
12957 (expand_mult_const): Likewise.
12958 * fold-const.c (fold_binary_loc): Replace call to element_precision
12959 with call to GET_MODE_PRECISION.
12960 * genmodes.c (emit_mode_inner_inline): Replace void_mode->name with
12961 m->name.
12962 (emit_mode_inner): Likewise.
12963 * lto-streamer-out.c (lto_write_mode_table): Update GET_MODE_INNER
12964 result check.
12965 * machmode.h (GET_MODE_UNIT_SIZE): Simplify.
12966 (GET_MODE_UNIT_PRECISION): Likewise.
12967 * rtlanal.c (subreg_get_info): Call GET_MODE_INNER unconditionally.
12968 * simplify-rtx.c (simplify_immed_subreg): Likewise.
12969 * stor-layout.c (bitwise_type_for_mode): Update assert.
12970 (element_precision): Remove.
12971
12972 2015-07-28 Richard Sandiford <richard.sandiford@arm.com>
12973
12974 * target-insns.def (reload_load_address): New targetm instruction
12975 pattern.
12976 * reload1.c (gen_reload): Use it instead of HAVE_*/gen_* interface.
12977
12978 2015-07-28 Richard Sandiford <richard.sandiford@arm.com>
12979
12980 * target-insns.def (atomic_test_and_set): New targetm instruction
12981 pattern.
12982 * optabs.c (maybe_emit_atomic_test_and_set): Use it instead of
12983 HAVE_*/gen_* interface.
12984
12985 2015-07-28 Richard Sandiford <richard.sandiford@arm.com>
12986
12987 * target-insns.def (can_extend, ptr_extend): New targetm instruction
12988 patterns.
12989 * optabs.c (can_extend_p): Use them instead of HAVE_*/gen_* interface.
12990 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
12991 * emit-rtl.c (set_reg_attrs_from_value): Likewise.
12992 * rtlanal.c (nonzero_bits1): Likewise.
12993 (num_sign_bit_copies1): Likewise.
12994
12995 2015-07-28 Richard Sandiford <richard.sandiford@arm.com>
12996
12997 * target-insns.def (eh_return): New targetm instruction pattern.
12998 * except.c (expand_eh_return): Use it instead of HAVE_*/gen_*
12999 interface.
13000 * function.c (thread_prologue_and_epilogue_insns): Remove
13001 preprocessor condition.
13002
13003 2015-07-28 Richard Sandiford <richard.sandiford@arm.com>
13004
13005 * target-insns.def (indirect_jump): New targetm instruction pattern.
13006 * optabs.c (emit_indirect_jump): Use it instead of HAVE_*/gen_*
13007 interface.
13008
13009 2015-07-28 Richard Sandiford <richard.sandiford@arm.com>
13010
13011 * config/fr30/fr30.md (indirect_jump): Use pmode_register_operand
13012 instead of nonimmediate_operand. Remove C condiition.
13013
13014 2015-07-28 Richard Biener <rguenther@suse.de>
13015
13016 * match.pd: Add more simplification of address comparisons.
13017
13018 2015-07-28 Richard Biener <rguenther@suse.de>
13019
13020 * match.pd: Re-order two cases in comparison with max/min
13021 value simplification to make it apply for bools.
13022
13023 2015-07-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13024
13025 * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p):
13026 Handle simple SIGN_EXTEND or ZERO_EXTEND.
13027 (aarch64_rtx_costs): Properly strip extend or extract before
13028 passing down to rtx costs again.
13029
13030 2015-07-28 Nick Clifton <nickc@redhat.com>
13031
13032 * config/rl78/rl78.c (rl78_addsi3_internal): New function.
13033 Optimizes the case where -mes0 is active and a constant symbolic
13034 address is used.
13035 * config/rl78/rl78-protos.h: Prototype the new function.
13036 * config/rl78/rl78.md (addsi3_internal_real): Call new function.
13037
13038 2015-07-28 Tom de Vries <tom@codesourcery.com>
13039
13040 * tree-parloops.c (reduc_stmt_res): New function.
13041 (initialize_reductions, add_field_for_reduction)
13042 (create_phi_for_local_result, create_loads_for_reductions)
13043 (create_stores_for_reduction, build_new_reduction): Handle case that
13044 reduc_stmt is a phi.
13045 (gather_scalar_reductions): Allow double_reduc reductions.
13046
13047 2015-07-28 Richard Biener <rguenther@suse.de>
13048
13049 * fold-const.c (fold_comparison): Remove equality folding
13050 of decl addresses ...
13051 * match.pd: ... here and merge with existing pattern.
13052
13053 2015-07-28 Thomas Preud'homme <thomas.preudhomme@arm.com>
13054
13055 PR tree-optimization/66828
13056 * tree-ssa-math-opts.c (perform_symbolic_merge): Change type of inc
13057 from int64_t to uint64_t.
13058
13059 2015-07-28 Dominik Vogt <vogt@linux.vnet.ibm.com>
13060
13061 * opts-common.c (read_cmdline_option): List DriverOnly enum values
13062 as valid only in the error message of the driver, not in the
13063 messages of the language compilers.
13064
13065 2015-07-27 Tom de Vries <tom@codesourcery.com>
13066
13067 * tree-parloops.c (gather_scalar_reductions): Simplify function
13068 structure.
13069
13070 2015-07-27 Marek Polacek <polacek@redhat.com>
13071
13072 * ipa-devirt.c (types_same_for_odr): Fix typo.
13073
13074 2015-07-27 Jason Merrill <jason@redhat.com>
13075
13076 PR debug/66468
13077 * dwarf2out.c (gen_inlined_subroutine_die): Check
13078 cgraph_function_possibly_inlined_p.
13079
13080 2015-07-27 Wilco Dijkstra <wdijkstr@arm.com>
13081
13082 * config/aarch64/aarch64.md (aarch64_lshr_sisd_or_int_<mode>3):
13083 Place integer variant first.
13084 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
13085
13086 2015-07-27 Alan Lawrence <alan.lawrence@arm.com>
13087
13088 PR/63870
13089 * config/arm/arm-builtins.c (enum arm_builtins):
13090 Add ARM_BUILTIN_NEON_BASE and ARM_BUILTIN_NEON_LANE_CHECK.
13091 (ARM_BUILTIN_NEON_BASE): Rename macro to....
13092 (ARM_BUILTIN_NEON_PATTERN_START): ...this.
13093 (arm_init_neon_builtins): Register __builtin_arm_lane_check.
13094 (arm_expand_neon_builtin): Handle ARM_BUILTIN_NEON_LANE_CHECK.
13095
13096 2015-07-27 Alan Lawrence <alan.lawrence@arm.com>
13097
13098 PR/63870
13099 * config/arm/arm-builtins.c (enum arm_type_qualifiers):
13100 Add qualifier_lane_index.
13101 (arm_binop_imm_qualifiers, BINOP_IMM_QUALIFIERS): New.
13102 (arm_getlane_qualifiers): Use qualifier_lane_index.
13103 (arm_lanemac_qualifiers): Rename to...
13104 (arm_mac_n_qualifiers): ...this.
13105 (LANEMAC_QUALIFIERS): Rename to...
13106 (MAC_N_QUALIFIERS): ...this.
13107 (arm_mac_lane_qualifiers, MAC_LANE_QUALIFIERS): New.
13108 (arm_setlane_qualifiers): Use qualifier_lane_index.
13109 (arm_ternop_imm_qualifiers, TERNOP_IMM_QUALIFIERS): New.
13110 (enum builtin_arg): Add NEON_ARG_LANE_INDEX.
13111 (arm_expand_neon_args): Handle NEON_ARG_LANE_INDEX.
13112 (arm_expand_neon_builtin): Handle qualifier_lane_index.
13113
13114 * config/arm/arm-protos.h (neon_lane_bounds): Add const_tree parameter.
13115 * config/arm/arm.c (bounds_check): Likewise, improve error message.
13116 (neon_lane_bounds, neon_const_bounds): Add arguments to bounds_check.
13117 * config/arm/arm_neon_builtins.def (vshrs_n, vshru_n, vrshrs_n,
13118 vrshru_n, vshrn_n, vrshrn_n, vqshrns_n, vqshrnu_n, vqrshrns_n,
13119 vqrshrnu_n, vqshrun_n, vqrshrun_n, vshl_n, vqshl_s_n, vqshl_u_n,
13120 vqshlu_n, vshlls_n, vshllu_n): Change qualifiers to BINOP_IMM.
13121 (vsras_n, vsrau_n, vrsras_n, vrsrau_n, vsri_n, vsli_n): Change
13122 qualifiers to TERNOP_IMM.
13123 (vdup_lane): Change qualifiers to GETLANE.
13124 (vmla_lane, vmlals_lane, vmlalu_lane, vqdmlal_lane, vmls_lane,
13125 vmlsls_lane, vmlslu_lane, vqdmlsl_lane): Change qualifiers to MAC_LANE.
13126 (vmla_n, vmlals_n, vmlalu_n, vqdmlal_n, vmls_n, vmlsls_n, vmlslu_n,
13127 vqdmlsl_n): Change qualifiers to MAC_N.
13128
13129 * config/arm/neon.md (neon_vget_lane<mode>, neon_vget_laneu<mode>,
13130 neon_vget_lanedi, neon_vget_lanev2di, neon_vset_lane<mode>,
13131 neon_vset_lanedi, neon_vdup_lane<mode>, neon_vdup_lanedi,
13132 neon_vdup_lanev2di, neon_vmul_lane<mode>, neon_vmul_lane<mode>,
13133 neon_vmull<sup>_lane<mode>, neon_vqdmull_lane<mode>,
13134 neon_vq<r>dmulh_lane<mode>, neon_vq<r>dmulh_lane<mode>,
13135 neon_vmla_lane<mode>, neon_vmla_lane<mode>, neon_vmlal<sup>_lane<mode>,
13136 neon_vqdmlal_lane<mode>, neon_vmls_lane<mode>, neon_vmls_lane<mode>,
13137 neon_vmlsl<sup>_lane<mode>, neon_vqdmlsl_lane<mode>):
13138 Remove call to neon_lane_bounds.
13139
13140 2015-07-27 Wilco Dijkstra <wdijkstr@arm.com>
13141
13142 * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
13143 Place integer variant first.
13144
13145 2015-07-27 Matthew Wahab <matthew.wahab@arm.com>
13146
13147 * config/arm/arm-arches.def: Add "armv6kz". Replace 6ZK with 6KZ
13148 and FL_FOR_ARCH6ZK with FL_FOR_ARCH6KZ.
13149 * config/arm/arm-c.c (arm_cpu_builtins): Emit "__ARM_ARCH_6ZK__"
13150 for armv6kz targets.
13151 * config/arm/arm-cores.def: Replace 6ZK with 6KZ.
13152 * config/arm/arm-protos.h (FL_ARCH6KZ): New.
13153 (FL_FOR_ARCH6ZK): Remove.
13154 (FL_FOR_ARCH6KZ): New.
13155 (arm_arch6zk): New declaration.
13156 * config/arm/arm-tables.opt: Regenerate.
13157 * config/arm/arm.c (arm_arch6kz): New.
13158 (arm_option_override): Set arm_arch6kz.
13159 * config/arm/arm.h (BASE_ARCH_6ZK): Rename to BASE_ARCH_6KZ.
13160 * config/arm/driver-arm.c: Add comment to "armv6zk" entry.
13161 * doc/invoke.texi: Replace "armv6zk" with "armv6kz".
13162
13163 2015-07-27 Marek Polacek <polacek@redhat.com>
13164
13165 PR c++/66555
13166 PR c/54979
13167 * doc/invoke.texi: Document -Wtautological-compare.
13168
13169 2015-07-27 Richard Biener <rguenther@suse.de>
13170
13171 * genmatch.c (decision_tree::gen_gimple): Split out large
13172 subtrees into separate functions.
13173 (decision_tree::gen_generic): Likewise.
13174
13175 2015-07-26 Uros Bizjak <ubizjak@gmail.com>
13176
13177 * config/alpha/alpha.c: Use SUBREG_P predicate.
13178 * config/alpha/predicates.md: Ditto.
13179
13180 2015-07-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
13181
13182 * config.host (s390*-*-*): Include driver-native.c only when
13183 building with s390* as host *and* target.
13184
13185 2015-07-25 Oleg Endo <olegendo@gcc.gnu.org>
13186
13187 PR target/66930
13188 * config/sh/sh.c (sh_split_movrt_negc_to_movt_xor): Add missing
13189 T bit register modified_between_p check.
13190
13191 2015-07-25 Uros Bizjak <ubizjak@gmail.com>
13192
13193 * config/i386/i386.c: Use SUBREG_P predicate.
13194 * config/i386/i386.md: Ditto.
13195 * config/i386/sse.md: Ditto.
13196 * config/i386/predicates.md: Ditto.
13197
13198 2015-07-25 Uros Bizjak <ubizjak@gmail.com>
13199
13200 PR target/67004
13201 * config/i386/i386.h (ADJUST_INSN_LENGTH): Use NONDEBUG_INSN_P (INSN)
13202 predicate and INSN_CODE (INSN) >= 0 to check for valid instruction.
13203
13204 2015-07-25 Sebastian Pop <s.pop@samsung.com>
13205
13206 * Makefile.in: Remove use of TREEBROWSER.
13207 * config.in: Regenerated.
13208 * configure: Regenerated.
13209 * configure.ac: Remove definition of TREEBROWSER.
13210 * tree-browser.c: Removed.
13211 * tree-browser.def: Removed.
13212
13213 2015-07-25 Sebastian Pop <s.pop@samsung.com>
13214
13215 * graphite-scop-detection.c: Include gimple-pretty-print.h.
13216 (stmt_simple_for_scop_p): Print when a stmt is not handled in
13217 Graphite.
13218 (scopdet_basic_block_info): Print when a loop or bb cannot be
13219 represented in Graphite.
13220
13221 2015-07-25 Uros Bizjak <ubizjak@gmail.com>
13222
13223 PR target/66648
13224 * config/i386/i386.c (ix86_expand_set_or_movmem): Emit main loop
13225 execution guard when min_size is less than size_needed.
13226
13227 2015-07-25 Sebastian Pop <s.pop@samsung.com>
13228
13229 * doc/install.texi: Document supported versions of ISL.
13230
13231 2015-07-25 Jeff Law <law@redhat.com>
13232
13233 Revert:
13234 PR lto/66752
13235 * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
13236 unable to find X NE 0 in the tables, return X as the simplified
13237 condition.
13238 (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
13239 in VISISTED_BBS, then return failure. Else add nodes from NEXT_PATH
13240 to VISISTED_BBS. */
13241 * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
13242 after removing the control flow statement and unnecessary edges.
13243
13244 2015-07-25 David Edelsohn <dje.gcc@gmail.com>
13245
13246 Revert:
13247 2015-07-23 Alexandre Oliva <aoliva@redhat.com>
13248
13249 PR rtl-optimization/64164
13250 * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
13251 * tree-ssa-copyrename.c: Removed.
13252 * opts.c (default_options_table): Drop -ftree-copyrename. Add
13253 -ftree-coalesce-vars.
13254 * passes.def: Drop all occurrences of pass_rename_ssa_copies.
13255 * common.opt (ftree-copyrename): Ignore.
13256 (ftree-coalesce-inlined-vars): Likewise.
13257 * doc/invoke.texi: Remove the ignored options above.
13258 * gimple-expr.h (gimple_can_coalesce_p): Move declaration
13259 * tree-ssa-coalesce.h: ... here.
13260 * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
13261 headers required by it.
13262 * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
13263 across variables when flag_tree_coalesce_vars. Check register
13264 use and promoted modes to allow coalescing. Moved to
13265 tree-ssa-coalesce.c.
13266 * tree-ssa-live.c (struct tree_int_map_hasher): Move along
13267 with its member functions to tree-ssa-coalesce.c.
13268 (var_map_base_init): Likewise. Renamed to
13269 compute_samebase_partition_bases.
13270 (partition_view_normal): Drop want_bases parameter.
13271 (partition_view_bitmap): Likewise.
13272 * tree-ssa-live.h: Adjust declarations.
13273 * tree-ssa-coalesce.c: Include explow.h.
13274 (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
13275 default defs at the entry point.
13276 (dump_part_var_map): New.
13277 (compute_optimized_partition_bases): New, called by...
13278 (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
13279 of compute_samebase_partition_bases. Adjust.
13280 * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
13281 * cfgexpand.c (leader_merge): New.
13282 (get_rtl_for_parm_ssa_default_def): New.
13283 (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
13284 vars. Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
13285 (expand_one_stack_var_at): Handle anonymous SSA_NAMEs. Drop
13286 redundant MEM attr setting.
13287 (expand_one_stack_var_1): Handle anonymous SSA_NAMEs. Renamed
13288 from...
13289 (expand_one_stack_var): ... this. New wrapper to check and
13290 skip already expanded SSA partitions.
13291 (record_alignment_for_reg_var): New, factored out of...
13292 (expand_one_var): ... this.
13293 (expand_one_ssa_partition): New.
13294 (adjust_one_expanded_partition_var): New.
13295 (expand_one_register_var): Check and skip already expanded SSA
13296 partitions.
13297 (expand_used_vars): Don't create DECLs for anonymous SSA
13298 names. Expand all SSA partitions, then adjust all SSA names.
13299 (pass::execute): Replace the loops that set
13300 SA.partition_to_pseudo from partition leaders and cleared
13301 DECL_RTL for multi-location variables, and that which used to
13302 rename vars and set attrs, with one that clears DECL_RTL and
13303 checks that PARMs and RESULTs default_defs match DECL_RTL.
13304 * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
13305 * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
13306 * explow.c (promote_ssa_mode): New.
13307 * explow.h (promote_ssa_mode): Declare.
13308 * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
13309 * function.c: Include cfgexpand.h.
13310 (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
13311 (use_register_for_parm_decl): Wrapper for the above to
13312 special-case the result_ptr.
13313 (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
13314 (split_complex_args): Take assign_parm_data_all argument.
13315 Pass it to rtl_for_parm. Set up rtl and context for split
13316 args.
13317 (assign_parms_augmented_arg_list): Adjust.
13318 (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
13319 multiple locations. Recognize split complex args.
13320 (assign_parm_adjust_stack_rtl): Add all and parm arguments,
13321 for rtl_for_parm. For SSA-assigned parms, zero stack_parm.
13322 (assign_parm_setup_block): Prefer SSA-assigned location.
13323 (assign_parm_setup_reg): Likewise. Use entry_parm for equiv
13324 if stack_parm is NULL.
13325 (assign_parm_setup_stack): Prefer SSA-assigned location.
13326 (assign_parms): Maybe reset DECL_RTL of params. Adjust stack
13327 rtl before testing for pointer bounds. Special-case result_ptr.
13328 (expand_function_start): Maybe reset DECL_RTL of result.
13329 Prefer SSA-assigned location for result and static chain.
13330 Factor out DECL_RESULT and SET_DECL_RTL.
13331 * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
13332 anonymous SSA names. Use promote_ssa_mode.
13333 (get_temp_reg): Likewise.
13334 (remove_ssa_form): Adjust.
13335 * stor-layout.c (layout_decl): Don't set mem attributes of
13336 non-MEMs.
13337 * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
13338 and get its reg_usage for reg invalidation.
13339 (compute_bb_dataflow): Pass it insn.
13340 (emit_notes_in_bb): Likewise.
13341
13342 2015-07-25 Uros Bizjak <ubizjak@gmail.com>
13343
13344 * config/i386/i386.c (ix86_va_start): Remove
13345 unneeded !TARGET_64BIT check.
13346 (ix86_gimplify_va_arg): Ditto.
13347
13348 2015-07-24 Tom de Vries <tom@codesourcery.com>
13349
13350 * graphite-sese-to-poly.c (build_poly_scop): Always call
13351 rewrite_commutative_reductions_out_of_ssa.
13352
13353 2015-07-24 Tom de Vries <tom@codesourcery.com>
13354
13355 * graphite-sese-to-poly.c (is_reduction_operation_p): Limit
13356 flag_associative_math to FLOAT_TYPE_P. Honour
13357 TYPE_OVERFLOW_WRAPS for INTEGRAL_TYPE_P. Don't allow any other types.
13358
13359 2015-07-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
13360
13361 PR c++/64079
13362 * toplev.c (check_global_declaration): Use DECL_SOURCE_LOCATION
13363 and "%qD" in warning_at instead of "%q+D" in warning.
13364
13365 2015-07-24 Uros Bizjak <ubizjak@gmail.com>
13366
13367 * config/i386/i386.c (ix86_call_abi_override): Call ix86_function_abi.
13368 (ix86_function_abi): Cleanup.
13369
13370 2015-07-24 Michael Darling <darlingm@gmail.com>
13371
13372 PR other/66259
13373 * acinclude.m4: Reflects renaming of configure.in to configure.ac
13374 * configure: Likewise
13375 * configure.ac: Likewise
13376 * doc/install.texi: Likewise
13377 * doc/tm.texi: Likewise
13378 * doc/tm.texi.in: Likewise
13379
13380 2015-07-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13381
13382 * alias.c (nonoverlapping_memrefs_p): Use std::swap instead of
13383 manually swapping values.
13384 * cse.c (fold_rtx): Likewise.
13385 * lra-eliminations.c (form_sum): Likewise.
13386
13387 2015-07-24 Uros Bizjak <ubizjak@gmail.com>
13388
13389 PR target/64003
13390 * config/i386/i386.h (ADJUST_INSN_LENGTH): New define.
13391 * config/i386/i386.md (maybe_prefix_bnd): New attribute.
13392 (*jcc_1, *jcc_2, jump, simple_return_internal)
13393 (simple_return_pop_internal): Set attribute maybe_prefix_bnd.
13394 Set length_nobnd attribute instead of length attribute.
13395 (indirect_jump, *tablejump_1): Set attribute maybe_prefix_bnd.
13396 (length_nobnd): Remove attribute.
13397 (length): Remove length_nobnd processing.
13398
13399 2015-07-24 Nathan Sidwell <nathan@codesourcery.com>
13400
13401 * gimplify.c (omp_default_clause): New function. Reorganize flow
13402 for clarity. Broken out of ...
13403 (omp_notice_variable): ... here.
13404
13405 2015-07-24 Gary Funck <gary@intrepid.com>
13406
13407 PR middle-end/66984
13408 * fold-const.c (fold_binary_loc): Call fold_convert on arguments to
13409 fold_build2 for CEIL_DIV_EXPR and FLOOR_DIV_EXPR optimization.
13410
13411 2015-07-24 Tom de Vries <tom@codesourcery.com>
13412
13413 * tree-parloops.c (gen_parallel_loop): Add debug print for alternative
13414 exit-first loop transform.
13415
13416 2015-07-24 Cesar Philippidis <cesar@codesourcery.com>
13417
13418 PR 66714
13419 * tree-cfg.c (struct replace_decls_d): New struct.
13420 (replace_block_vars_by_duplicates_1): New function.
13421 (replace_block_vars_by_duplicates): Use it to replace the decls
13422 in the value exprs by duplicates.
13423
13424 2015-07-24 Szabolcs Nagy <szabolcs.nagy@arm.com>
13425
13426 * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Handle -h, -static,
13427 -shared, -symbolic, -rdynamic.
13428
13429 2015-07-24 Szabolcs Nagy <szabolcs.nagy@arm.com>
13430
13431 PR target/65711
13432 * config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Move
13433 -dynamic-linker within %{!static %{!shared, and -rdynamic within
13434 %{!static.
13435
13436 2015-07-24 Ilya Enkovich <enkovich.gnu@gmail.com>
13437
13438 PR ipa/66566
13439 * ipa-inline-analysis.c (estimate_calls_size_and_time): Check
13440 edge summary is available.
13441
13442 2015-07-24 Richard Biener <rguenther@suse.de>
13443
13444 * genmatch.c (struct dt_node): Add statistic fields.
13445 (dt_node::analyze): New method.
13446 (decision_tree::gen_gimple): Call analyze on the root node
13447 and print statistics to stderr.
13448 (decision_tree::gen_generic): Likewise.
13449
13450 2015-07-24 Richard Biener <rguenther@suse.de>
13451
13452 * fold-const.c (fold_binary_loc): Move simplifying of comparisons
13453 against the highest or lowest possible integer ...
13454 * match.pd: ... as patterns here.
13455
13456 2015-07-24 Richard Biener <rguenther@suse.de>
13457
13458 * genmatch.c (struct capture_info): Add same_as field.
13459 (capture_info::capture_info): Initialize same_as.
13460 (capture_info::walk_match): Compute same_as.
13461 (capture_info::walk_result): Compute stuff for the leader.
13462 (capture_info::walk_c_expr): Likewise.
13463 (dt_simplify::gen_1): Only look at leaders when deciding
13464 to force no side-effects or emit side-effects of omitted operands.
13465
13466 2015-07-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13467
13468 * config/s390/s390.c (s390_save_gprs_to_fprs): Add CFA_REGISTER
13469 reg note to the GPR -> FPR save instructions.
13470
13471 2015-07-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13472
13473 * config/s390/s390.c (s390_rtx_costs): Make risbg patterns
13474 cheaper.
13475 (s390_expand_insv): Don't generate risbg pattern for constant zero
13476 sources.
13477 * config/s390/s390.md ("*insv<mode>_zEC12_appendbitsleft")
13478 ("*insv<mode>_z10_appendbitsleft"): New pattern definitions. New
13479 splitters.
13480
13481 2015-07-24 Dominik Vogt <vogt@linux.vnet.ibm.com>
13482
13483 * config/s390/s390.c (s390_reorg): Clean up handling of processors
13484 with
13485 -mtune=
13486 (s390_issue_rate): Likewise.
13487 (s390_sched_reorder): Likewise.
13488 (s390_sched_variable_issue): Likewise.
13489 (s390_loop_unroll_adjust): Likewise.
13490 (s390_option_override): Likewise.
13491
13492 2015-07-24 Dominik Vogt <vogt@linux.vnet.ibm.com>
13493
13494 * config/s390/driver-native.c (s390_host_detect_local_cpu): Handle
13495 processor capabilities with -march=native.
13496 * config/s390/s390.h (MARCH_MTUNE_NATIVE_SPECS): Likewise.
13497 (DRIVER_SELF_SPECS): Likewise. Join specs for 31 and 64 bit.
13498 (S390_TARGET_BITS_STRING): Macro to simplify specs.
13499
13500 2015-07-24 Dominik Vogt <vogt@linux.vnet.ibm.com>
13501
13502 * config/s390/s390.c (s390_issue_rate): Handle
13503 PROCESSOR_2094_Z9_EC.
13504 (s390_option_override): Likewise.
13505 (s390_adjust_priority): Likewise.
13506
13507 2015-07-24 Dominik Vogt <vogt@linux.vnet.ibm.com>
13508
13509 * config/s390/s390.h: S390: Do not define EXTRA_SPEC_FUNCTIONS
13510 when cross compiling.
13511
13512 2015-07-24 Richard Biener <rguenther@suse.de>
13513
13514 * fold-const.c (maybe_canonicalize_comparison_1): Move
13515 A code CST canonicalization ...
13516 * match.pd: ... to a pattern here.
13517
13518 2015-07-24 Jiong Wang <jiong.wang@arm.com>
13519
13520 Revert:
13521 2015-07-22 Jiong Wang <jiong.wang@arm.com>
13522 PR target/63521
13523 * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
13524 (HONOR_REG_ALLOC_ORDER): Define.
13525
13526 2015-07-24 Richard Biener <rguenther@suse.de>
13527
13528 * genmatch.c (add_operator): Allow SSA_NAME as predicate.
13529 * fold-const.c (fold_comparison): Move parameter does not
13530 alias &local simplification ...
13531 * match.pd: ... as a pattern here.
13532
13533 2015-07-24 Richard Biener <rguenther@suse.de>
13534
13535 * gimple-fold.c (replace_stmt_with_simplification): Special-case
13536 valueizing call operands.
13537 * gimple-match-head.c (maybe_push_res_to_seq): Take
13538 number of call arguments from ops array.
13539 (do_valueize): New function.
13540 (gimple_simplify): Return true if valueization changed
13541 any operand even if the result didn't simplify further.
13542
13543 2015-07-24 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
13544
13545 PR middle-end/25530
13546 * match.pd (mult (trunc_div @0 integer_pow2p@1) @1) : New simplifier.
13547
13548 2015-07-24 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
13549
13550 PR middle-end/25529
13551 * match.pd (trunc_div (mult @0 integer_pow2p@1) @1) : New simplifier.
13552
13553 2015-07-23 Kugan Vivekanandarajah <kuganv@linaro.org>
13554
13555 * config/arm/arm.c (arm_emit_movpair): Add REG_EQUAL notes to
13556 instruction.
13557
13558 2015-07-23 Kugan Vivekanandarajah <kuganv@linaro.org>
13559
13560 * cse.c (cse_insn): Fix missing check for STRICT_LOW_PART and minor
13561 clean up.
13562
13563 2015-07-23 Uros Bizjak <ubizjak@gmail.com>
13564
13565 * config/i386/i386.c (ix86_build_builtin_va_list_64): Rename
13566 from ix86_build_builtin_va_list_abi. Handle only 64bit non-MS_ABI
13567 targets here.
13568 (ix86_build_builtin_va_list): Rewrite sysv_va_list_type_node and
13569 ms_va_list_type_node initialization.
13570
13571 2015-07-23 Jeff Law <law@redhat.com>
13572
13573 PR lto/66752
13574 * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
13575 unable to find X NE 0 in the tables, return X as the simplified
13576 condition.
13577 (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
13578 in VISISTED_BBS, then return failure. Else add nodes from NEXT_PATH
13579 to VISISTED_BBS. */
13580 * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
13581 after removing the control flow statement and unnecessary edges.
13582
13583 2015-07-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
13584
13585 * tree-pass.h (get_current_pass_name): Removed.
13586
13587 2015-07-23 Alexandre Oliva <aoliva@redhat.com>
13588
13589 PR rtl-optimization/64164
13590 * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
13591 * tree-ssa-copyrename.c: Removed.
13592 * opts.c (default_options_table): Drop -ftree-copyrename. Add
13593 -ftree-coalesce-vars.
13594 * passes.def: Drop all occurrences of pass_rename_ssa_copies.
13595 * common.opt (ftree-copyrename): Ignore.
13596 (ftree-coalesce-inlined-vars): Likewise.
13597 * doc/invoke.texi: Remove the ignored options above.
13598 * gimple-expr.h (gimple_can_coalesce_p): Move declaration
13599 * tree-ssa-coalesce.h: ... here.
13600 * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
13601 headers required by it.
13602 * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
13603 across variables when flag_tree_coalesce_vars. Check register
13604 use and promoted modes to allow coalescing. Moved to
13605 tree-ssa-coalesce.c.
13606 * tree-ssa-live.c (struct tree_int_map_hasher): Move along
13607 with its member functions to tree-ssa-coalesce.c.
13608 (var_map_base_init): Likewise. Renamed to
13609 compute_samebase_partition_bases.
13610 (partition_view_normal): Drop want_bases parameter.
13611 (partition_view_bitmap): Likewise.
13612 * tree-ssa-live.h: Adjust declarations.
13613 * tree-ssa-coalesce.c: Include explow.h.
13614 (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
13615 default defs at the entry point.
13616 (dump_part_var_map): New.
13617 (compute_optimized_partition_bases): New, called by...
13618 (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
13619 of compute_samebase_partition_bases. Adjust.
13620 * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
13621 * cfgexpand.c (leader_merge): New.
13622 (get_rtl_for_parm_ssa_default_def): New.
13623 (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
13624 vars. Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
13625 (expand_one_stack_var_at): Handle anonymous SSA_NAMEs. Drop
13626 redundant MEM attr setting.
13627 (expand_one_stack_var_1): Handle anonymous SSA_NAMEs. Renamed
13628 from...
13629 (expand_one_stack_var): ... this. New wrapper to check and
13630 skip already expanded SSA partitions.
13631 (record_alignment_for_reg_var): New, factored out of...
13632 (expand_one_var): ... this.
13633 (expand_one_ssa_partition): New.
13634 (adjust_one_expanded_partition_var): New.
13635 (expand_one_register_var): Check and skip already expanded SSA
13636 partitions.
13637 (expand_used_vars): Don't create DECLs for anonymous SSA
13638 names. Expand all SSA partitions, then adjust all SSA names.
13639 (pass::execute): Replace the loops that set
13640 SA.partition_to_pseudo from partition leaders and cleared
13641 DECL_RTL for multi-location variables, and that which used to
13642 rename vars and set attrs, with one that clears DECL_RTL and
13643 checks that PARMs and RESULTs default_defs match DECL_RTL.
13644 * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
13645 * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
13646 * explow.c (promote_ssa_mode): New.
13647 * explow.h (promote_ssa_mode): Declare.
13648 * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
13649 * function.c: Include cfgexpand.h.
13650 (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
13651 (use_register_for_parm_decl): Wrapper for the above to
13652 special-case the result_ptr.
13653 (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
13654 (split_complex_args): Take assign_parm_data_all argument.
13655 Pass it to rtl_for_parm. Set up rtl and context for split
13656 args.
13657 (assign_parms_augmented_arg_list): Adjust.
13658 (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
13659 multiple locations. Recognize split complex args.
13660 (assign_parm_adjust_stack_rtl): Add all and parm arguments,
13661 for rtl_for_parm. For SSA-assigned parms, zero stack_parm.
13662 (assign_parm_setup_block): Prefer SSA-assigned location.
13663 (assign_parm_setup_reg): Likewise. Use entry_parm for equiv
13664 if stack_parm is NULL.
13665 (assign_parm_setup_stack): Prefer SSA-assigned location.
13666 (assign_parms): Maybe reset DECL_RTL of params. Adjust stack
13667 rtl before testing for pointer bounds. Special-case result_ptr.
13668 (expand_function_start): Maybe reset DECL_RTL of result.
13669 Prefer SSA-assigned location for result and static chain.
13670 Factor out DECL_RESULT and SET_DECL_RTL.
13671 * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
13672 anonymous SSA names. Use promote_ssa_mode.
13673 (get_temp_reg): Likewise.
13674 (remove_ssa_form): Adjust.
13675 * stor-layout.c (layout_decl): Don't set mem attributes of
13676 non-MEMs.
13677 * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
13678 and get its reg_usage for reg invalidation.
13679 (compute_bb_dataflow): Pass it insn.
13680 (emit_notes_in_bb): Likewise.
13681
13682 2015-07-23 Segher Boessenkool <segher@kernel.crashing.org>
13683
13684 PR target/66217
13685 * config/rs6000/rs6000-protos.h (rs6000_emit_2insn_and): Change
13686 prototype.
13687 * config/rs6000/rs6000.c (rs6000_emit_dot_insn): New function.
13688 (rs6000_emit_2insn_and): Handle dot forms.
13689 * config/rs6000/rs6000.md (and<mode>3): Adjust.
13690 (*and<mode>3_2insn): Remove TODO. Adjust. Add "type" attr.
13691 (*and<mode>3_2insn_dot, *and<mode>3_2insn_dot2): New.
13692
13693 2015-07-23 Richard Biener <rguenther@suse.de>
13694
13695 * generic-match-head.c: Include cgraph.h.
13696 * gimple-match-head.c: Likewise.
13697 * tree-ssa-sccvn.c (free_scc_vn): Guard against newly created
13698 SSA names.
13699 * fold-const.c (fold_binary_loc): Move &A ==/!= &B simplification...
13700 * match.pd: ...to a pattern here. Add &A ==/!= 0 simplification
13701 pattern.
13702
13703 2015-07-23 Richard Biener <rguenther@suse.de>
13704
13705 * gimple-fold.c (fold_gimple_cond): Do not require folding
13706 results to pass valid_gimple_rhs_p.
13707 * tree-cfg.h (fold_cond_expr_cond): Remove.
13708 * tree-cfg.c (fold_cond_expr_cond): Likewise.
13709 (make_edges): Do not call it.
13710 * tree-inline.c (tree_function_versioning): Likewise.
13711
13712 2015-07-23 Tom de Vries <tom@codesourcery.com>
13713
13714 * tree-parloops.c (gather_scalar_reductions): Add arg to call to
13715 vect_force_simple_reduction.
13716 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Same.
13717 (vect_is_simple_reduction_1): Add and handle
13718 need_wrapping_integral_overflow parameter.
13719 (vect_is_simple_reduction, vect_force_simple_reduction): Add and pass
13720 need_wrapping_integral_overflow parameter.
13721 (vectorizable_reduction): Add arg to call to vect_is_simple_reduction.
13722 * tree-vectorizer.h (vect_force_simple_reduction): Add parameter to
13723 decl.
13724
13725 2015-07-23 Yuri Rumyantsev <ysrumyan@gmail.com>
13726
13727 PR tree-optimization/66926,66951
13728 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Delete
13729 INNER_LOOP and fix up condition for renaming virtual operands.
13730
13731 2015-07-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13732
13733 * combine.c (try_combine): Use std::swap instead of manually
13734 swapping.
13735
13736 2015-07-23 Prachi Godbole <prachi.godbole@imgtec.com>
13737
13738 * config/mips/i6400.md: New file.
13739 * config/mips/mips-cpus.def (mips32r6): Change to PROCESSOR_I6400.
13740 (mips64r6): Likewise.
13741 (i6400): Define.
13742 * config/mips/mips-tables.opt: Regenerate.
13743 * config/mips/mips.c (mips_rtx_cost_data): Add I6400 processor.
13744 (mips_issue_rate): Add support for i6400.
13745 (mips_multipass_dfa_lookahead): Likewise.
13746 * config/mips/mips.h (TUNE_I6400): Define.
13747 * config/mips/mips.md: Include i6400.md.
13748 (processor): Add i6400.
13749 * doc/invoke.texi (-march=@var{arch}): Add i6400.
13750
13751 2015-07-23 Richard Biener <rguenther@suse.de>
13752
13753 PR middle-end/66916
13754 * match.pd: Guard widen and sign-change comparison simplification
13755 with single_use.
13756
13757 2015-07-23 Richard Biener <rguenther@suse.de>
13758
13759 PR tree-optimization/66945
13760 * tree-ssa-propagate.c (substitute_and_fold_dom_walker
13761 ::before_dom_children): Force the propagators idea of
13762 non-executable edges to materialize, not what the folder
13763 chooses.
13764
13765 2015-07-23 Richard Biener <rguenther@suse.de>
13766
13767 * gimple.h (gimple_cond_make_false): Use 0 != 0.
13768 (gimple_cond_make_true): Use 1 != 0.
13769
13770 2015-07-22 DJ Delorie <dj@redhat.com>
13771
13772 * config/msp430/t-msp430 (MULTILIB_DIRNAMES): Remove trailing
13773 slashes.
13774
13775 * config/msp430/msp430.md (ashlhi3): Optimize shifts of subregs.
13776 (ashrhi3): Likewise.
13777 (lshrhi3): Likewise.
13778 (movhi): Take advantage of zero-extend to load small constants.
13779 (movpsi): Likewise.
13780 (and<mode>3): Likewise.
13781 (zero_extendqihi2): Likewise.
13782 (zero_extendqisi2): New.
13783 * config/msp430/constraints.md (N,O): New.
13784 * config/msp430/msp430.h (WORD_REGISTER_OPERATIONS): Define.
13785
13786 2015-07-22 Uros Bizjak <ubizjak@gmail.com>
13787
13788 PR target/66954
13789 * config/i386/i386.c (get_builtin_code_for_version): Add P_AES
13790 to enum feature_priority and feature_list.
13791 (fold_builtin_cpu): Add F_AES to enum processor_features
13792 and isa_names_table.
13793
13794 2015-07-22 Ilya Enkovich <enkovich.gnu@gmail.com>
13795
13796 PR driver/66737
13797 * config/i386/linux-common.h (MPX_SPEC): Use linker option
13798 for 64bit target only.
13799
13800 2015-07-22 Bernd Schmidt <bernds@codesourcery.com>
13801
13802 * config/nvptx/nvptx.c: Expand some comments.
13803
13804 2015-07-22 James Greenhalgh <james.greenhalgh@arm.com>
13805
13806 * config/arm/cortex-a53 (cortex_53_advsimd): Rename to...
13807 (cortex_a53_advsimd): ...This.
13808
13809 2015-07-22 Richard Biener <rguenther@suse.de>
13810
13811 * genmatch.c (expr::gen_transform): Clarify error message
13812 and display location.
13813
13814 2015-07-22 Richard Biener <rguenther@suse.de>
13815
13816 * genmatch.c (struct operand): Add location member.
13817 (predicate, expr, c_expr, capture, if_expr, with_expr): Adjust
13818 constructors.
13819 (struct simplify): Remove match_location and result_location
13820 members.
13821 (elsehwere): Adjust.
13822
13823 2015-07-22 Prachi Godbole <prachi.godbole@imgtec.com>
13824
13825 * config/mips/m5100.md: New file.
13826 * config/mips/mips-cpus.def (m5100, m5101): Define.
13827 * config/mips/mips-tables.opt: Regenerate.
13828 * config/mips/mips.c (mips_rtx_cost_data): Add costs for m5100.
13829 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=m5100 and
13830 -march=m5101 to -mips32r5.
13831 (MIPS_ARCH_FLOAT_SPEC): Map -m5101 to -msoft-float.
13832 (MIPS_ISA_NAN2008_SPEC): Map -march=m51* to -mnan=2008 if
13833 !-msoft-float.
13834 * config/mips/mips.md: Include m5100.md.
13835 (processor): Add m5100.
13836 * doc/invoke.texi (-march=@var{arch}): Add m5100, m5101.
13837
13838 2015-07-22 Robert Suchanek <robert.suchanek@imgtec.com>
13839
13840 * config/mips/mips-cpus.def (interaptiv): Define.
13841 * config/mips/mips-tables.opt: Regenerate.
13842 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=interaptiv to
13843 -mips32r2.
13844 (BASE_DRIVER_SELF_SPECS): Likewise but map to -mdsp.
13845 * doc/invoke.texi (-march=@var{arch}): Add interaptiv.
13846
13847 2015-07-22 Jiong Wang <jiong.wang@arm.com>
13848
13849 PR target/63521
13850 * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
13851 (HONOR_REG_ALLOC_ORDER): Define.
13852
13853 2015-07-22 Richard Biener <rguenther@suse.de>
13854
13855 PR tree-optimization/66952
13856 * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): For
13857 blocks we end up executing unconditionally reset all SSA
13858 info such as range and alignment.
13859 * tree-ssanames.h (reset_flow_sensitive_info): Declare.
13860 * tree-ssanames.c (reset_flow_sensitive_info): New function.
13861
13862 2015-07-22 Charles Baylis <charles.baylis@linaro.org>
13863
13864 * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Fix
13865 typo in attribute.
13866
13867 2015-07-22 Richard Biener <rguenther@suse.de>
13868
13869 * genmatch.c (parser::parse_result): Properly handle
13870 match with result operands and conditions.
13871
13872 2015-07-22 Charles Baylis <charles.baylis@linaro.org>
13873
13874 PR target/63870
13875 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
13876 Add qualifier_struct_load_store_lane_index.
13877 (aarch64_types_loadstruct_lane_qualifiers): Use
13878 qualifier_struct_load_store_lane_index for lane index argument for
13879 last argument.
13880 (aarch64_types_storestruct_lane_qualifiers): Ditto.
13881 (builtin_simd_arg): Add SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
13882 (aarch64_simd_expand_args): Add new argument describing mode of
13883 builtin. Check lane bounds for arguments with
13884 SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
13885 (aarch64_simd_expand_builtin): Emit error for incorrect lane indices
13886 if marked with SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
13887 (aarch64_simd_expand_builtin): Handle arguments with
13888 qualifier_struct_load_store_lane_index. Pass machine mode of builtin to
13889 aarch64_simd_expand_args.
13890 * config/aarch64/aarch64-simd-builtins.def: Declare ld[234]_lane and
13891 vst[234]_lane with BUILTIN_VALLDIF.
13892 * config/aarch64/aarch64-simd.md:
13893 (aarch64_vec_load_lanesoi_lane<mode>): Use VALLDIF iterator. Perform
13894 endianness reversal on lane index.
13895 (aarch64_vec_load_lanesci_lane<mode>): Ditto.
13896 (aarch64_vec_load_lanesxi_lane<mode>): Ditto.
13897 (vec_store_lanesoi_lane<mode>): Use VALLDIF iterator.
13898 (vec_store_lanesci_lane<mode>): Ditto.
13899 (vec_store_lanesxi_lane<mode>): Ditto.
13900 (aarch64_ld2_lane<mode>): Use VALLDIF iterator. Remove endianness
13901 reversal of lane index.
13902 (aarch64_ld3_lane<mode>): Ditto.
13903 (aarch64_ld4_lane<mode>): Ditto.
13904 (aarch64_st2_lane<mode>): Ditto.
13905 (aarch64_st3_lane<mode>): Ditto.
13906 (aarch64_st4_lane<mode>): Ditto.
13907 * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rename mode parameter
13908 to qmode. Add new mode parameter. Update uses.
13909 (__LD3_LANE_FUNC): Ditto.
13910 (__LD4_LANE_FUNC): Ditto.
13911 (__ST2_LANE_FUNC): Ditto.
13912 (__ST3_LANE_FUNC): Ditto.
13913 (__ST4_LANE_FUNC): Ditto.
13914
13915 2015-07-22 Jonathan Wakely <jwakely@redhat.com>
13916
13917 * doc/invoke.texi (Language Independent Options): Rename node to
13918 Diagnostic Message Formatting Options.
13919
13920 2015-07-21 Vladimir Makarov <vmakarov@redhat.com>
13921
13922 PR ipa/66424.
13923 * lra-remat.c (operand_to_remat): Prevent using insns with input
13924 subregs processed separately by IRA.
13925
13926 2015-07-21 Andrew MacLeod <amacleod@redhat.com>
13927
13928 * ssa-iterators.h (has_zero_uses, has_single_use): Implement as
13929 straight loops.
13930 (single_imm_use): Check for iterator node.
13931 (num_imm_uses): Likewise.
13932 * tree-ssa-operands.c (has_zero_uses_1): Delete.
13933 (single_imm_use_1): Check for iterator node.
13934
13935 2015-07-21 Mike Frysinger <vapier@gentoo.org>
13936 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
13937
13938 * configure.ac: Add check for new options in isl-0.15.
13939 * config.in, configure: Rebuilt.
13940 * graphite-blocking.c: Include <isl/constraint.h>
13941 * graphite-interchange.c, graphite-poly.c: Likewise.
13942 * graphhite-scop-detection.c, graphite-sese-to-poly.c: Likewise.
13943 * graphite.c: Likewise.
13944 * graphite-isl-ast-to-gimple.c: Include <isl/constraint.h> and
13945 <isl/union_set.h>.
13946 * graphite-dependences.c: Include <isl/constraint.h>.
13947 (max_number_of_out_dimensions): Returns isl_stat.
13948 (extend_schedule_1): Likewise
13949 (extend_schedule): Corresponding changes.
13950 * graphite-optimize-isl.c: Include <isl/constraint.h> and
13951 <isl/union_set.h>.
13952 (getSingleMap): Change return type of isl_stat.
13953 (optimize_isl): Conditionally use
13954 isl_options_set_schedule_serialize_sccs.
13955 * graphite-poly.h (isl_stat, isl_stat_ok): Define fallbacks
13956 if not HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS.
13957
13958 2015-07-21 Georg-Johann Lay <avr@gjlay.de>
13959
13960 PR target/66956
13961 * config/avr/avr-dimode.md (<extend_u>mulsidi3_insn)
13962 (<extend_u>mulsidi3): Don't use if !AVR_HAVE_MUL.
13963
13964 2015-07-21 Richard Biener <rguenther@suse.de>
13965
13966 PR tree-optimization/66948
13967 * genmatch.c (capture_info::walk_match): Also recurse to
13968 captures. Properly compute expr state from captures of
13969 captures.
13970 * match.pd: Add single-use guards to
13971 (X & C2) >> C1 into (X >> C1) & (C2 >> C1) transform.
13972
13973 2015-07-21 Nathan Sidwell <nathan@codesourcery.com>
13974
13975 * config/nvptx/mkoffload.c (process): Add static destructor call.
13976
13977 2015-07-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13978
13979 PR middle-end/66915
13980 * match.pd (A - B -> A + (-B)): Don't allow folding
13981 when type if a fixed-point type.
13982
13983 2015-07-20 DJ Delorie <dj@redhat.com>
13984
13985 * config/rl78/rl78-real.md (andqi3_real): Expand operands for clr1.
13986 (iorqi3_real): Likewise for set1.
13987
13988 2015-07-20 Uros Bizjak <ubizjak@gmail.com>
13989
13990 * config/i386/i386.c (ix86_md_asm_adjust): Handle DImode dest_mode
13991 for !TARGET_64BIT.
13992
13993 2015-07-20 Aditya Kumar <hiraditya@msn.com>
13994
13995 * graphite-isl-ast-to-gimple.c:
13996 Refactor so that each function can access 'region'. This will help
13997 maintain a parameter rename_map within a region.
13998
13999 2015-07-20 Segher Boessenkool <segher@kernel.crashing.org>
14000
14001 * config/rs6000/rs6000.md (*lt0_disi): New.
14002
14003 2015-07-20 Segher Boessenkool <segher@kernel.crashing.org>
14004
14005 PR target/66217
14006 * config/rs6000/constraints.md ("S", "T", "t"): Delete. Update
14007 "available letters" comment.
14008 * config/rs6000/predicates.md (mask_operand, mask_operand_wrap,
14009 mask64_operand, mask64_2_operand, any_mask_operand, and64_2_operand,
14010 and_2rld_operand): Delete.
14011 (and_operand): Adjust.
14012 (rotate_mask_operator): New.
14013 * config/rs6000/rs6000-protos.h (build_mask64_2_operands,
14014 includes_lshift_p, includes_rshift_p, includes_rldic_lshift_p,
14015 includes_rldicr_lshift_p, insvdi_rshift_rlwimi_p, extract_MB,
14016 extract_ME): Delete.
14017 (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
14018 rs6000_is_valid_shift_mask, rs6000_is_valid_insert_mask,
14019 rs6000_insn_for_and_mask, rs6000_insn_for_shift_mask,
14020 rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
14021 rs6000_emit_2insn_and): New.
14022 * config/rs6000/rs6000.c (num_insns_constant): Adjust.
14023 (build_mask64_2_operands, includes_lshift_p, includes_rshift_p,
14024 includes_rldic_lshift_p, includes_rldicr_lshift_p,
14025 insvdi_rshift_rlwimi_p, extract_MB, extract_ME): Delete.
14026 (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
14027 rs6000_insn_for_and_mask, rs6000_is_valid_shift_mask,
14028 s6000_insn_for_shift_mask, rs6000_is_valid_insert_mask,
14029 rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
14030 rs6000_emit_2insn_and): New.
14031 (print_operand) <'b', 'B', 'm', 'M', 's', 'S', 'W'>: Delete.
14032 (rs6000_rtx_costs) <CONST_INT>: Delete mask_operand and mask64_operand
14033 handling.
14034 <NOT>: Don't fall through to next case.
14035 <AND>: Handle the various rotate-and-mask cases directly.
14036 <IOR>: Always cost as one insn.
14037 * config/rs6000/rs6000.md (splitter for bswap:SI): Adjust.
14038 (and<mode>3): Adjust expander for the new patterns.
14039 (and<mode>3_imm, and<mode>3_imm_dot, and<mode>3_imm_dot2,
14040 and<mode>3_imm_mask_dot, and<mode>3_imm_mask_dot2): Adjust condition.
14041 (*and<mode>3_imm_dot_shifted): New.
14042 (*and<mode>3_mask): Delete, rewrite as ...
14043 (and<mode>3_mask): ... New.
14044 (*and<mode>3_mask_dot, *and<mode>3_mask_dot): Rewrite.
14045 (andsi3_internal0_nomc): Delete.
14046 (*andsi3_internal6): Delete.
14047 (*and<mode>3_2insn): New.
14048 (insv, insvsi_internal, *insvsi_internal1, *insvsi_internal2,
14049 *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
14050 *insvsi_internal6, insvdi_internal, *insvdi_internal2,
14051 *insvdi_internal3): Delete.
14052 (*rotl<mode>3_mask, *rotl<mode>3_mask_dot, *rotl<mode>3_mask_dot2,
14053 *rotl<mode>3_insert, *rotl<mode>3_insert_2, *rotl<mode>3_insert_3,
14054 *rotl<mode>3_insert_4, two splitters for multi-precision shifts,
14055 *ior<mode>_mask): New.
14056 (extzv, extzvdi_internal, *extzvdi_internal1, *extzvdi_internal2,
14057 *rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
14058 *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
14059 *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
14060 Delete.
14061 (ashr<mode>3): Delete expander.
14062 (*ashr<mode>3): Rename to ...
14063 (ashr<mode>3): ... This.
14064 (ashrdi3_no_power, *ashrdisi3_noppc64be): Delete.
14065 (*rotldi3_internal4, *rotldi3_internal5 and split,
14066 *rotldi3_internal6 and split, *ashldi3_internal4, ashldi3_internal5
14067 and split, *ashldi3_internal6 and split, *ashldi3_internal7,
14068 ashldi3_internal8 and split, *ashldi3_internal9 and split): Delete.
14069 (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): Delete.
14070 (splitter for loading a mask): Adjust.
14071 * doc/md.texi (Machine Constraints): Remove q, S, T, t constraints.
14072
14073 2015-07-20 Marek Polacek <polacek@redhat.com>
14074
14075 * genemit.c (print_code, gen_exp, gen_insn, gen_expand, gen_split,
14076 output_add_clobbers, output_added_clobbers_hard_reg_p,
14077 gen_rtx_scratch): Remove declarations.
14078
14079 2015-07-20 Marek Polacek <polacek@redhat.com>
14080
14081 PR c++/55095
14082 * doc/invoke.texi: Document -Wshift-overflow and -Wshift-overflow=.
14083
14084 2015-07-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14085
14086 * simplify-rtx.c (simplify_unary_operation_1, NEG case):
14087 (neg (x ? (neg y) : y)) -> !x ? (neg y) : y.
14088
14089 2015-07-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14090
14091 * combine.c (combine_simplify_rtx): Move simplification step
14092 before various transformations/substitutions.
14093
14094 2015-07-20 Mikhail Maltsev <maltsevm@gmail.com>
14095
14096 * wide-int.h (struct binary_traits): Fix partial specialization syntax.
14097 (struct int_traits): Likewise.
14098
14099 2015-07-18 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
14100
14101 * vmsdbgout.c (vmsdbgout_decl): Change name of prototyped
14102 function to vmsdbgout_function_decl.
14103
14104 2015-07-18 Uros Bizjak <ubizjak@gmail.com>
14105
14106 PR target/66922
14107 * config/i386/i386.c (ix86_expand_pextr): Reject extractions
14108 from misaligned positions.
14109 (ix86_expand_pinsr): Reject insertions to misaligned positions.
14110
14111 2015-07-18 Sebastian Pop <s.pop@samsung.com>
14112
14113 PR middle-end/46851
14114 PR middle-end/60340
14115 * Makefile.in: Removed omega.o.
14116 * common.opt: Document flag fcheck-data-deps as deprecated.
14117 * doc/invoke.texi: Remove documentation for fcheck-data-deps and
14118 its associated params: omega-max-vars, omega-max-geqs,
14119 omega-max-eqs, omega-max-wild-cards, omega-hash-table-size,
14120 omega-max-keys, omega-eliminate-redundant-constraints.
14121 * doc/loop.texi: Remove all the section on Omega.
14122 * graphite-blocking.c: Include missing params.h: it used to be
14123 included through tree-data-ref.h and omega.h.
14124 * graphite-isl-ast-to-gimple.c: Same.
14125 * graphite-optimize-isl.c: Same.
14126 * graphite-sese-to-poly.c: Same.
14127 * graphite.c: Same.
14128 * omega.c: Remove.
14129 * omega.h: Remove.
14130 * params.def: Removed PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
14131 PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
14132 PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS, and
14133 PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS.
14134 * passes.def: Remove pass_check_data_deps.
14135 * tree-data-ref.c (dump_affine_function): Declare DEBUG_FUNCTION.
14136 (dump_conflict_function): Same.
14137 (dump_subscript): Same.
14138 (print_direction_vector): Same.
14139 (print_dir_vectors): Same.
14140 (print_lambda_vector): Same.
14141 (print_dist_vectors): Same.
14142 (dump_data_dependence_relation): Same.
14143 (dump_data_dependence_relations): Same.
14144 (dump_dist_dir_vectors): Same.
14145 (dump_ddrs): Same.
14146 (init_omega_eq_with_af): Removed.
14147 (omega_extract_distance_vectors): Removed.
14148 (omega_setup_subscript): Removed.
14149 (init_omega_for_ddr_1): Removed.
14150 (init_omega_for_ddr): Removed.
14151 (ddr_consistent_p): Removed.
14152 (compute_affine_dependence): Do not use omega to check data
14153 dependences.
14154 (compute_data_dependences_for_bb): Removed.
14155 (analyze_all_data_dependences): Removed.
14156 (tree_check_data_deps): Removed.
14157 * tree-data-ref.h: Do not include omega.h.
14158 (compute_data_dependences_for_bb): Removed.
14159 (tree_check_data_deps): Removed.
14160 * tree-ssa-loop.c (pass_check_data_deps): Removed.
14161 (make_pass_check_data_deps): Removed.
14162 * tree-ssa-phiopt.c: Include params.h.
14163 * tree-vect-data-refs.c: Same.
14164 * tree-vect-slp.c: Same.
14165
14166 2015-07-18 Uros Bizjak <ubizjak@gmail.com>
14167
14168 * config/i386/i386.md (pushsf splitter): Pass curr_insn to
14169 find_constant_src. FAIL if find_constant_src returns NULL_RTX.
14170 (mem->fpreg splitters): Ditto.
14171 (general_operand->nonimmediate_operand splitter): Use explicit modes.
14172 Disable DFmode for TARGET_64BIT.
14173
14174 2015-07-17 H.J. Lu <hongjiu.lu@intel.com>
14175
14176 PR target/66906
14177 * config/i386/i386.c (ix86_expand_prologue): Replicate static
14178 chain on the stack.
14179
14180 2015-07-17 Nathan Sidwell <nathan@codesourcery.com>
14181
14182 * config/nvptx/mkoffload.c (process): Constify host data.
14183 * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
14184 Constify host data.
14185 (generate_host_descr_file): Likewise.
14186
14187 2015-07-17 Aditya Kumar <aditya.k7@samsung.com>
14188 Sebastian Pop <s.pop@samsung.com>
14189
14190 PR middle-end/61929
14191 * graphite-dependences.c (add_pdr_constraints): Renamed
14192 pdr->extent to pdr->subscript_sizes.
14193 * graphite-interchange.c (build_linearized_memory_access): Add
14194 back all gcc_assert's that the "isl_int to isl_val conversion"
14195 patch has removed. Refactored.
14196 (pdr_stride_in_loop): Renamed pdr->extent to pdr->subscript_sizes.
14197 * graphite-poly.c (new_poly_dr): Same.
14198 (free_poly_dr): Same.
14199 * graphite-poly.h (struct poly_dr): Same.
14200 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Ignore
14201 all data references other than ARRAY_REF, MEM_REF, and COMPONENT_REF.
14202 * graphite-scop-detection.h: Fix space.
14203 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Add
14204 back all gcc_assert's removed by a previous patch.
14205 (wrap): Remove the_isl_ctx global variable that the same patch has
14206 added.
14207 (build_loop_iteration_domains): Same.
14208 (add_param_constraints): Same.
14209 (pdr_add_data_dimensions): Same. Refactored.
14210 (build_poly_dr): Renamed extent to subscript_sizes.
14211
14212 2015-07-17 Marek Polacek <polacek@redhat.com>
14213
14214 * fold-const.c (fold_binary_loc): Move A - (A & B) into ~B & A ...
14215 * match.pd: ... here.
14216
14217 2015-07-17 Nathan Sidwell <nathan@codesourcery.com>
14218
14219 * config/nvptx/mkoffload.c (process): Constify target data.
14220 * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
14221 Constify target data.
14222 (generate_target_offloadend_file): Likewise.
14223
14224 2015-07-17 Yuri Rumyantsev <ysrumyan@gmail.com>
14225
14226 * tree-vect-loop-manip.c (rename_variables_in_bb): Add argument
14227 to allow renaming of PHI arguments on edges incoming from outer
14228 loop header, add corresponding check before start PHI iterator.
14229 (slpeel_tree_duplicate_loop_to_edge_cfg): Introduce new bool
14230 variable DUPLICATE_OUTER_LOOP and set it to true for outer loops
14231 with true force_vectorize. Set-up dominator for outer loop too.
14232 Pass DUPLICATE_OUTER_LOOP as argument to rename_variables_in_bb.
14233 (slpeel_can_duplicate_loop_p): Allow duplicate of outer loop if it
14234 was marked with force_vectorize and has restricted cfg.
14235 (slpeel_tree_peel_loop_to_edge): Do not rename exit PHI uses in
14236 inner loop.
14237 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
14238 do peeling for outer loops.
14239
14240 2015-07-17 Yvan Roux <yvan.roux@linaro.org>
14241 Matthias Klose <doko@ubuntu.com>
14242
14243 * configure.ac: Move AC_ARG_WITH checks for native-system-header-dir,
14244 build-sysroot, sysroot from the `Miscenalleous configure options' to
14245 the `Directories' section and strip trailing `/' from with_sysroot.
14246 (gcc_gxx_include_dir): Don't strip a `/' sysroot value.
14247 * configure: Regenerated.
14248
14249 2015-07-17 Uros Bizjak <ubizjak@gmail.com>
14250
14251 PR target/66824
14252 * config/i386/i386.h (TARGET_HARD_SF_REGS): New define.
14253 (TARGET_HARD_DF_REGS): Ditto.
14254 (TARGET_HARD_XF_REGS): Ditto.
14255 * config/i386/i386.md (*movxf_internal): Add alternatives 9 and 10.
14256 Enable alternatives 9 and 10 only for !TARGET_HARD_XF_REG target.
14257 (*movdf_internal): Add alternatives 22, 23, 24 and 25. Enable
14258 alternatives 22, 23, 24 and 25 only for !TARGET_HARD_DF_REG target.
14259 (*movsf_internal): Add alternatives 16 and 17. Enable
14260 alternatives 16 and 17 only for !TARGET_HARD_SF_REG target.
14261
14262 2015-07-17 Uros Bizjak <ubizjak@gmail.com>
14263
14264 PR rtl-optimization/66891
14265 * calls.c (expand_call): Wrap precompute_register_parameters with
14266 NO_DEFER_POP/OK_DEFER_POP to prevent deferred pops.
14267
14268 2015-07-16 Nathan Sidwell <nathan@codesourcery.com>
14269
14270 * config/nvptx/mkoffload.c (process): Constify mapping variables.
14271 Define target data struct and initialize it.
14272
14273 2015-07-16 Vladimir Makarov <vmakarov@redhat.com>
14274
14275 PR rtl-optimization/66626
14276 * ira.h (emit-rtl.h): Include.
14277 (non_spilled_static_chain_regno_p): New.
14278 * ira-color.c (setup_profitable_hard_regs): Clear profitable regs
14279 unless it is non spilled static chain pseudo.
14280 (assign_hard_rego): Spill memory profitable allocno unless it is
14281 non spilled static chain pseudo.
14282 (allocno_spill_priority_compare): Put non spilled static chain
14283 pseudo at the end of sorted array.
14284 (improve_allocation): Do nothing if we have static chain and
14285 non-local goto.
14286 (allocno__priority_compare_func): Put non spilled static chain
14287 pseudo at the beginning of sorted array.
14288 (move_spill_restore): Ignore non spilled static chain pseudo.
14289 * ira-costs.c (find_costs_and_classes): Don't assign class NO_REGS
14290 to non spilled static chain pseudo.
14291 * lra-assigns.c (pseudo_compare_func): Put non spilled static chain
14292 pseudo at the beginning of sorted array.
14293 (spill_for): Spill non spilled static chain pseudo last.
14294 * lra-constraints.c (lra_constraints): Remove static chain pseudo
14295 check for equivalence.
14296
14297 2015-07-16 Martin Liska <mliska@suse.cz>
14298
14299 PR ipa/66896.
14300 * ipa-prop.c (update_jump_functions_after_inlining): Create properly
14301 dst_ctx if it does not exist.
14302
14303 2015-07-16 Martin Liska <mliska@suse.cz>
14304
14305 * hash-set.h (remove): New function.
14306 (iterator): New iteration class for hash_set.
14307
14308 2015-07-16 Richard Sandiford <richard.sandiford@arm.com>
14309
14310 * genattrtab.c (make_canonical): Add a file_location parameter.
14311 Use fatal_at rather than fatal.
14312 (get_attr_value): Likewise. Update call to make_canonical.
14313 (fill_attr, make_length_attrs, optimize_attrs, gen_attr)
14314 (make_internal_attr): Update calls accordingly.
14315
14316 2015-07-16 Richard Sandiford <richard.sandiford@arm.com>
14317
14318 * read-md.h (message_with_line, error_with_line): Delete.
14319 * read-md.c (message_with_line, error_with_line): Delete.
14320 * gensupport.h: Include read-md.h.
14321 (md_rtx_info): New structure.
14322 (read_md_rtx): Use it. Return a bool success value.
14323 * gensupport.c (read_md_rtx): Likewise.
14324 * genattr-common.c (gen_attr): Take an md_rtx_info rather than an rtx.
14325 (main): Update after interface changes.
14326 * genattr.c (gen_attr): Take an md_rtx_info rather than an rtx.
14327 (main): Update after interface changes.
14328 * genattrtab.c (insn_code_number): Delete.
14329 (optimize_attrs): Add a max_insn_code parameter and use it instead
14330 of insn_code_number.
14331 (gen_attr): Take an md_rtx_info rather than an rtx and lineno.
14332 Use *_at rather than *_with_line functions.
14333 (gen_insn): Likewise.
14334 (gen_delay): Likewise.
14335 (gen_insn_reserv): Likewise.
14336 (gen_bypass): Take an md_rtx_info rather than an rtx.
14337 (main): Update after interface changes. Use a local max_insn_code
14338 variable instead of insn_code_number.
14339 * genautomata.c (gen_cpu_unit): Take an md_rtx_info rather than
14340 an rtx. Use fatal_at rather than fatal.
14341 (gen_query_cpu_unit, gen_bypass, gen_excl_set)
14342 (gen_presence_absence_set, gen_presence_set, gen_final_presence_set)
14343 (gen_absence_set, gen_final_absence_set, gen_automaton)
14344 (gen_automata_option, gen_reserv, gen_insn_reserv): Likewise.
14345 (main): Update after interface changes.
14346 * gencodes.c (gen_insn): Take an md_rtx_info rather than an rtx
14347 and code number.
14348 (main): Update after interface changes.
14349 * genconditions.c (main): Use new read_md_rtx interface.
14350 * genconfig.c (gen_insn): Take an md_rtx_info rather than an rtx.
14351 (gen_expand, gen_split, gen_peephole, gen_peephole2): Likewise.
14352 (main): Update after interface changes.
14353 * genemit.c (insn_code_number, insn_index_number): Delete.
14354 (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
14355 Use fatal_at rather than fatal.
14356 (gen_expand): Take an md_rtx_info rather than an rtx. Use fatal_at
14357 rather than fatal.
14358 (gen_split): Likewise.
14359 (main): Update after interface changes.
14360 * genextract.c (line_no): Delete.
14361 (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
14362 Update call to walk_rtx.
14363 (VEC_safe_set_locstr): Add an md_rtx_info argument. Use message_at
14364 rather than message_with_line.
14365 (walk_rtx): Add an md_rtx_info argument. Update call to
14366 VEC_safe_set_locstr.
14367 (main): Update after interface changes.
14368 * genflags.c (gen_insn): Take an md_rtx_info rather than an rtx
14369 and lineno. Use error_at rather than separate message_with_line
14370 calls and have_error assignments.
14371 (main): Update after interface changes.
14372 * genmddump.c (main): Use new read_md_rtx interface.
14373 * genopinit.c (insn): Take an md_rtx_info rather than an rtx.
14374 (main): Update after interface changes.
14375 * genoutput.c (next_code_number): Delete.
14376 (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
14377 (gen_peephole, gen_expand, gen_split): Likewise.
14378 (note_constraint): Likewise. Use *_at rather than *_with_line
14379 functions.
14380 (main): Update after interface changes.
14381 * genpeep.c (gen_peephole): Take an md_rtx_info rather than an
14382 rtx and lineno.
14383 (main): Update after interface changes.
14384 * genpreds.c (process_define_predicate): Take an md_rtx_info rather
14385 than an rtx and lineno.
14386 (process_define_constraint): Likewise.
14387 (process_define_register_constraint): Likewise.
14388 (main): Update after interface changes.
14389 * genrecog.c (next_insn_code, pattern_lineno): Delete.
14390 (validate_pattern): Replace top-level rtx with an md_rtx_info.
14391 Use *_at rather than *_with_line functions.
14392 (match_pattern_2): Likewise.
14393 (match_pattern_1, match_pattern): Add an md_rtx_info parameter.
14394 (get_peephole2_pattern): Take an md_rtx_info rather than an rtvec.
14395 Use *_at rather than *_with_line functions.
14396 * gentarget-def.c (add_insn): New function.
14397 (main): Use it. Use new read_md_rtx interface.
14398
14399 2015-07-16 Richard Sandiford <richard.sandiford@arm.com>
14400
14401 * gensupport.h (compute_test_codes): Take a file_location rather
14402 than a line number.
14403 * gensupport.c (compute_test_codes): Likewise. Use *_at functions
14404 rather than *_with_line functions.
14405 (process_define_predicate): Update call to compute_test_codes.
14406 * genpreds.c (validate_exp): Take a file_location rather than a
14407 line number. Use *_at functions rather than *_with_line functions.
14408 (process_define_predicate): Update call to validate_exp.
14409 (constraint_data): Replace lineno field with a file_location.
14410 (add_constraint): Take a file_location rather than a line number.
14411 Use *_at functions rather than *_with_line functions. Fix error
14412 message for address constraints. Update after changes to
14413 validate_exp, constraint_data and compute_test_codes.
14414 (process_define_constraint): Update accordingly.
14415 (process_define_register_constraint): Likewise.
14416
14417 2015-07-16 Richard Sandiford <richard.sandiford@arm.com>
14418
14419 * genoutput.c (data): Use a file_location to record the source
14420 position.
14421 (nothing): Delete.
14422 (idata, idata_end): Remove initialization.
14423 (constraint_data): Replace lineno with a file_location.
14424 (output_insn_data): Update after changes to data.
14425 (gen_insn, gen_peephole, gen_expand, gen_split): Likewise.
14426 (scan_operands): Likewise, using *_at rather than *_with_line
14427 functions.
14428 (process_template): Likewise.
14429 (validate_insn_alternatives): Likewise.
14430 (validate_insn_operands): Likewise.
14431 (validate_optab_operands): Likewise.
14432 (init_insn_for_nothing): Initialize idata and idata_end.
14433 (note_constraint): Update after changes to constraint_data,
14434 using at rather than with_line functions.
14435 (mdep_constraint_len): Take a file_location rather than a
14436 line number. Use at rather than with_line functions.
14437
14438 2015-07-16 Richard Sandiford <richard.sandiford@arm.com>
14439
14440 * read-md.h (fatal_at): Declare.
14441 * read-md.c (fatal_at): New function.
14442 * genattrtab.c (insn_def, attr_desc, delay_desc): Use a file_location
14443 to record the source position.
14444 (check_attr_test): Take a file_location instead of a line number.
14445 Use fatal_at instead of fatal.
14446 (check_attr_value): Update after above changes, using "at"
14447 rather than "with_line" reporting functions.
14448 (convert_set_attr_alternative): Likewise.
14449 (gen_attr): Likewise.
14450 (check_defs): Likewise. Don't assign to read_md_filename.
14451 (gen_insn): Update initialization after above changes.
14452 (gen_delay): Likewise.
14453 (write_insn_cases): Print the filename for a define_peephole.
14454 (gen_insn_reserv): Take a line number as argument and update
14455 the call to check_attr_test.
14456 (main): Pass a line number to gen_insn_reserv.
14457
14458 2015-07-16 Richard Sandiford <richard.sandiford@arm.com>
14459
14460 * read-md.h (file_location): New structure.
14461 (directive_handler_t): Take a file_location rather than a line number.
14462 (message_at, error_at): Declare.
14463 (read_skip_construct): Delete.
14464 * read-md.c (message_with_line_1): Replace with...
14465 (message_at_1): ...this new function.
14466 (message_at, error_at): New functions.
14467 (message_with_line, error_with_line): Update to use message_at_1.
14468 (handle_enum): Take a file_location rather than a line number
14469 and use error_at for error reporting.
14470 (handle_include): Likewise.
14471 (read_skip_construct): Likewise. Make static.
14472 (handle_file): Update after above changes. Pass a file_location
14473 rather than a line number to handle_directive.
14474 * gensupport.c (queue_elem): Replace separate filename and lineno
14475 with a file_location.
14476 (queue_pattern): Replace filename and lineno arguments with a
14477 file_location. Update after change to queue_elem.
14478 (process_define_predicate): Replace lineno argument with a
14479 file_location and use error_at for error reporting. Update
14480 after above changes.
14481 (process_rtx): Likewise.
14482 (subst_pattern_match): Likewise.
14483 (get_alternatives_number): Likewise.
14484 (alter_predicate_for_insn): Likewise.
14485 (rtx_handle_directive): Likewise.
14486 (is_predicable): Update after above changes, using error_at rather
14487 than error_with_line.
14488 (has_subst_attribute): Likewise.
14489 (identify_predicable_attribute): Likewise.
14490 (alter_attrs_for_subst_insn): Likewise.
14491 (process_one_cond_exec): Likewise.
14492 (process_substs_on_one_elem): Likewise.
14493 (process_define_subst): Likewise.
14494 (check_define_attr_duplicates): Likewise.
14495 (read_md_rtx): Update after change to queue_elem.
14496
14497 2015-07-16 Richard Sandiford <richard.sandiford@arm.com>
14498
14499 * genoutput.c (next_index_number): Delete.
14500 (data): Remove index_number.
14501 (gen_insn, gen_peephole, gen_expand, gen_split): Update accordingly.
14502 (main): Remove manipulation of next_index_number.
14503
14504 2015-07-16 Richard Sandiford <richard.sandiford@arm.com>
14505
14506 * genattrtab.c (check_attr_value): Remove handling of null attrs.
14507 (make_canonical): Likewise.
14508
14509 2015-07-16 Eric Botcazou <ebotcazou@adacore.com>
14510
14511 * config/sparc/sparc.md (save_stack_nonlocal): Use adjust_address
14512 instead of adjust_address_nv.
14513 (restore_stack_nonlocal): Likewise.
14514 (nonlocal_goto): Likewise.
14515
14516 2015-07-16 Tom de Vries <tom@codesourcery.com>
14517
14518 * tree-parloops.c (create_parallel_loop): Handle case that exit phi does
14519 not have a corresponding loop header phi.
14520
14521 2015-07-16 Tom de Vries <tom@codesourcery.com>
14522
14523 * tree-parloops.c (create_loads_for_reductions): Handle case that
14524 reduction is unused.
14525
14526 2015-07-16 Richard Biener <rguenther@suse.de>
14527
14528 PR tree-optimization/66894
14529 * tree-vrp.c (register_edge_assert_for_2): Fix bad assumption
14530 about deriving NE_EXPR from truncated values.
14531
14532 2015-07-16 Martin Liska <mliska@suse.cz>
14533
14534 * alloc-pool.h
14535 (object_allocator): Add new class.
14536 (pool_allocator::initialize): Use the underlying class.
14537 (pool_allocator::allocate): Likewise.
14538 (pool_allocator::remove): Likewise.
14539 (operator new): A new generic allocator.
14540 * asan.c (struct asan_mem_ref): Remove unused members.
14541 (asan_mem_ref_new): Replace new operator with
14542 object_allocator::allocate.
14543 (free_mem_ref_resources): Change deallocation.
14544 * cfg.c (initialize_original_copy_tables): Replace pool_allocator
14545 with object_allocator.
14546 * config/sh/sh.c (add_constant): Replace new operator with
14547 object_allocator::allocate.
14548 (sh_reorg): Change call to a release method.
14549 * cselib.c (struct elt_list): Remove unused members.
14550 (new_elt_list): Replace new operator with
14551 object_allocator::allocate.
14552 (new_elt_loc_list): Likewise.
14553 (new_cselib_val): Likewise.
14554 (unchain_one_elt_list): Change delete operator with remove method.
14555 (unchain_one_elt_loc_list): Likewise.
14556 (unchain_one_value): Likewise.
14557 (cselib_finish): Release newly added static allocators.
14558 * cselib.h (struct cselib_val): Remove unused members.
14559 (struct elt_loc_list): Likewise.
14560 * df-problems.c (df_chain_alloc): Replace pool_allocator with
14561 object_allocator.
14562 * df-scan.c (struct df_scan_problem_data): Likewise.
14563 (df_scan_alloc): Likewise.
14564 * df.h (struct dataflow): Likewise.
14565 * dse.c (struct read_info_type): Likewise.
14566 (struct insn_info_type): Likewise.
14567 (struct dse_bb_info_type): Likewise.
14568 (struct group_info): Likewise.
14569 (struct deferred_change): Likewise.
14570 (get_group_info): Likewise.
14571 (delete_dead_store_insn): Likewise.
14572 (free_read_records): Likewise.
14573 (replace_read): Likewise.
14574 (check_mem_read_rtx): Likewise.
14575 (scan_insn): Likewise.
14576 (dse_step1): Likewise.
14577 (dse_step7): Likewise.
14578 * et-forest.c (struct et_occ): Remove unused members.
14579 (et_new_occ): Use allocate instead of new operator.
14580 (et_new_tree): Likewise.
14581 (et_free_tree): Call release method explicitly.
14582 (et_free_tree_force): Likewise.
14583 (et_free_pools): Likewise.
14584 (et_split): Use remove instead of delete operator.
14585 * et-forest.h (struct et_node): Remove unused members.
14586 * ipa-cp.c: Change pool_allocator to object_allocator.
14587 * ipa-inline-analysis.c: Likewise.
14588 * ipa-profile.c: Likewise.
14589 * ipa-prop.c: Likewise.
14590 * ipa-prop.h: Likewise.
14591 * ira-build.c (initiate_cost_vectors): Cast return value.
14592 (ira_allocate_cost_vector): Likewise.
14593 * ira-color.c (struct update_cost_record): Remove unused members.
14594 * lra-int.h (struct lra_live_range): Likewise.
14595 (struct lra_copy): Likewise.
14596 (struct lra_insn_reg): Likewise.
14597 * lra-lives.c (lra_live_ranges_finish): Release new static allocator.
14598 * lra.c (new_insn_reg): Replace new operator with allocate method.
14599 (free_insn_regs): Same for operator delete.
14600 (finish_insn_regs): Release new static allocator.
14601 (finish_insn_recog_data): Likewise.
14602 (lra_free_copies): Replace delete operator with remove method.
14603 (lra_create_copy): Replace operator new with allocate method.
14604 (invalidate_insn_data_regno_info): Same for remove method.
14605 * regcprop.c (struct queued_debug_insn_change): Remove unused members.
14606 (free_debug_insn_changes): Replace delete operator with remove method.
14607 (replace_oldest_value_reg): Replace operator new with allocate method.
14608 (pass_cprop_hardreg::execute): Release new static variable.
14609 * sched-deps.c (sched_deps_init): Change pool_allocator to
14610 object_allocator.
14611 * sel-sched-ir.c: Likewise.
14612 * sel-sched-ir.h: Likewise.
14613 * stmt.c (expand_case): Likewise.
14614 (expand_sjlj_dispatch_table): Likewise.
14615 * tree-sra.c (struct access): Remove unused members.
14616 (struct assign_link): Likewise.
14617 (sra_deinitialize): Release newly added static pools.
14618 (create_access_1):Replace operator new with allocate method.
14619 (build_accesses_from_assign): Likewise.
14620 (create_artificial_child_access): Likewise.
14621 * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Change
14622 pool_allocator to object_allocator.
14623 * tree-ssa-pre.c: Likewise.
14624 * tree-ssa-reassoc.c: Likewise.
14625 * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
14626 * tree-ssa-strlen.c: Likewise.
14627 * tree-ssa-structalias.c: Likewise.
14628 * var-tracking.c (onepart_pool_allocate): New function.
14629 (unshare_variable): Use the newly added function.
14630 (variable_merge_over_cur): Likewise.
14631 (variable_from_dropped): Likewise.
14632 (variable_was_changed): Likewise.
14633 (set_slot_part): Likewise.
14634 (emit_notes_for_differences_1): Likewise.
14635 (vt_finalize): Release newly added static pools.
14636
14637 2015-07-16 Martin Jambor <mjambor@suse.cz>
14638
14639 * ipa-prop.h (param_aa_status): Rename to ipa_param_aa_status. Adjust
14640 all uses. Fix two typos in its general comment.
14641 (func_body_info): Rename to ipa_func_body_info. Adjust all uses.
14642
14643 2015-07-16 Ilya Enkovich <enkovich.gnu@gmail.com>
14644
14645 * config/i386/linux-common.h (LINK_MPX): New.
14646 (MPX_SPEC): Use LINK_MPX instead of %(link_mpx).
14647 * configure.ac: Add HAVE_LD_BNDPLT_SUPPORT macro
14648 indicating '-z bndplt' support by linker.
14649 * configure: Regenerate.
14650 * config.in: Regenerate.
14651
14652 2015-07-16 Richard Biener <rguenther@suse.de>
14653
14654 * fold-const.c (fold_widened_comparison): Remove.
14655 (fold_sign_changed_comparison): Likewise.
14656 (fold_comparison): Move widened and sign-changed comparison
14657 simplification ...
14658 * match.pd: ... to patterns here.
14659 * generic-match-head.c: Include target.h.
14660 * gimple-match-head.c: Likewise.
14661
14662 2015-07-16 Richard Biener <rguenther@suse.de>
14663
14664 * tree-ssa-dom.c (dom_valueize): New function.
14665 (record_temporary_equivalences): Also record equivalences
14666 for dominating stmts that have uses of equivalences we are
14667 about to record.
14668
14669 2015-07-16 Bin Cheng <bin.cheng@arm.com>
14670
14671 * tree-ssa-loop-ivopts.c (add_candidate): Remove call to
14672 add_autoinc_candidates.
14673 (add_iv_candidate_for_biv): Rename to add_iv_candidate_for_biv.
14674 (add_iv_candidate_for_biv): Rename from add_iv_candidate_for_biv.
14675 (add_old_ivs_candidates): Rename to add_iv_candidate_for_bivs.
14676 (add_iv_candidate_for_bivs): Rename from add_old_ivs_candidates.
14677 Call new function.
14678 (add_iv_value_candidates): Rename to add_iv_candidate_for_use.
14679 (add_iv_candidate_for_use): Rename from add_iv_value_candidates.
14680 Remove parameter struct iv*. Call add_autoinc_candidates here.
14681 (add_derived_ivs_candidates): Rename to add_iv_candidate_for_uses.
14682 (add_iv_candidate_for_uses): Rename from add_derived_ivs_candidates.
14683 Call new function.
14684 (find_iv_candidates): Call new functions.
14685
14686 2015-07-16 Sandra Loosemore <sandra@codesourcery.com>
14687
14688 * config/nios2/nios2.c (nios2_emit_stack_limit_check): Fix
14689 uninitialized-variable warning.
14690
14691 2015-07-16 Kaz Kojima <kkojima@gcc.gnu.org>
14692
14693 PR target/65249
14694 * config/sh/sh.md (movdi): Split simple reg move to two movsi
14695 when the destination is R0.
14696
14697 2015-07-16 Uros Bizjak <ubizjak@gmail.com>
14698
14699 PR target/66866
14700 * config/i386/i386-protos.h (ix86_expand_pextr): New prototype.
14701 * config/i386/i386.c (ix86_expand_pextr): New function.
14702 (ix86_expand_pinsr): Handle V1TI and TI modes. Call ix86_expand_pextr
14703 for non-lowpart subregs.
14704 * config/i386/i386.md (extzv<mode>): Expand with ix86_expand_pextr.
14705 (insv<mode>): Use SWI248 mode iterator.
14706 (insv<mode>_1): Ditto.
14707
14708 2015-07-15 Aditya Kumar <aditya.k7@samsung.com>
14709 Sebastian Pop <s.pop@samsung.com>
14710
14711 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Point
14712 iterator to use_stmt.
14713
14714 2015-07-15 Aditya Kumar <aditya.k7@samsung.com>
14715 Sebastian Pop <s.pop@samsung.com>
14716
14717 * graphite-scop-detection.c (build_scops_1): Discard scops for
14718 which entry==exit.
14719
14720 2015-07-15 Aditya Kumar <aditya.k7@samsung.com>
14721 Sebastian Pop <s.pop@samsung.com>
14722
14723 * graphite-scop-detection.c (stmt_simple_for_scop_p): Bail out in
14724 case of a return statement in scop.
14725
14726 2015-07-15 Aditya Kumar <aditya.k7@samsung.com>
14727 Sebastian Pop <s.pop@samsung.com>
14728
14729 * graphite-sese-to-poly.c (parameter_index_in_region): Only handle
14730 INTEGER_TYPE parameters.
14731 (scan_tree_for_params): Handle REAL_CST, COMPLEX_CST, and
14732 VECTOR_CST in scan_tree_for_params.
14733 (add_conditions_to_domain): Only constrain on INTEGER_TYPE.
14734
14735 2015-07-15 Andrew MacLeod <amacleod@redhat.com>
14736
14737 * gimple-pretty-print.h: Don't include pretty-print.h.
14738 * tree-streamer.h: Don't include lto-streamer.h.
14739 * gimple-streamer.h: Include tree-streamer.h rather than lto-streamer.h.
14740 * gimple-streamer-in.c: Remove redundant includes.
14741 * gimple-streamer-out.c: Likewise.
14742 * ipa-devirt.c: Likewise.
14743 * ipa-icf.c: Likewise.
14744 * ipa-inline-analysis.c: Likewise.
14745 * ipa-polymorphic-call.c: Likewise.
14746 * ipa-profile.c: Likewise.
14747 * ipa-prop.c: Likewise.
14748 * ipa-pure-const.c: Likewise.
14749 * lto-cgraph.c: Likewise.
14750 * lto-streamer-in.c: Likewise.
14751 * lto-streamer-out.c: Likewise.
14752 * lto-streamer.c: Likewise.
14753 * tree-streamer-in.c: Likewise.
14754 * tree-streamer-out.c: Likewise.
14755 * tree-streamer.c: Likewise.
14756
14757 2015-07-15 Andrew MacLeod <amacleod@redhat.com>
14758
14759 * opth-gen.awk: Check for UNKNOWN_LOCATION rather than GCC_TM_H, don't
14760 include input.h.
14761 * opts.c: Remove multiline #include comment.
14762
14763 2015-07-15 Nathan Sidwell <nathan@codesourcery.com>
14764
14765 * config/nvptx/mkoffload.c (process): Add C++ protection to
14766 emitted code.
14767
14768 2015-07-14 Michael Meissner <meissner@linux.vnet.ibm.com>
14769
14770 PR target/66854
14771 * config/rs6000/rs6000.c (rs6000_pass_by_reference): Move test for
14772 null before IEEE 128-bit floating point support patch.
14773
14774 2015-07-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14775
14776 * simplify-rtx.c (simplify_ternary_operation): Add simplification
14777 for (!c) != {0,...,0} ? a : b for vector modes.
14778
14779 2015-07-15 Paolo Bonzini <bonzini@gnu.org>
14780 Martin Jambor <mjambor@suse.cz>
14781
14782 * ipa-inline-analysis.c (unmodified_parm_or_parm_agg_item): Accept
14783 struct func_body_info* instead of struct ipa_node_params*, expecting
14784 fbi->info to be filled in. Replace throughout. Adjust call to
14785 ipa_load_from_parm_agg.
14786 (set_cond_stmt_execution_predicate): Accept struct func_body_info*
14787 instead of struct ipa_node_params*. Adjust calls to other functions
14788 so that they pass either fbi or fbi->info.
14789 (set_switch_stmt_execution_predicate): Likewise.
14790 (will_be_nonconstant_predicate): Likewise.
14791 (compute_bb_predicates): Likewise.
14792 (estimate_function_body_sizes): Move asserts earlier. Fill in
14793 struct func_body_info, replace parms_info with fbi.info. Adjust
14794 calls to functions that now accept struct func_body_info.
14795 * ipa-prop.c (param_aa_status, struct ipa_bb_info): Move to ipa-prop.h.
14796 (struct func_body_info): Likewise.
14797 (ipa_load_from_parm_agg_1): Rename to ipa_load_from_parm_agg,
14798 remove static. Adjust callers.
14799 (ipa_load_from_parm_agg): Remove.
14800 * ipa-prop.h (param_aa_status, ipa_bb_info): Move from ipa-prop.c.
14801 (func_body_info): Likewise.
14802 (ipa_load_from_parm_agg): Adjust prototype.
14803
14804 2015-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
14805
14806 * gensupport.c (rtx_handle_directive): Adjust.
14807 * read-rtl.c (apply_iterators): Take vector to add rtxs to
14808 instead of expr list rtx.
14809 (add_define_attr_for_define_subst): Likewise.
14810 (add_define_subst_attr): Likewise.
14811 (read_subst_mapping): Likewise.
14812 (read_rtx): Likewise.
14813 * rtl.h (read_rtx): Adjust.
14814
14815 2015-07-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14816
14817 * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use cinc mnemonic.
14818
14819 2015-07-15 Uros Bizjak <ubizjak@gmail.com>
14820
14821 PR target/58066
14822 * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Depend on SP_REG.
14823 (*tls_local_dynamic_base_64_<mode>): Ditto.
14824 (*tls_local_dynamic_base_64_largepic): Ditto.
14825 (tls_global_dynamic_64_<mode>): Update expander pattern.
14826 (tls_local_dynamic_base_64_<mode>): Ditto.
14827
14828 2015-07-15 Richard Biener <rguenther@suse.de>
14829
14830 * fold-const.c (fold_binary_loc): Move bool_var != 0 -> bool_var
14831 and bool_var == 1 -> bool_var simplifications ...
14832 * match.pd: ... to patterns here. Factor out negate_expr_p
14833 cases from the A - B -> A + (-B) patterns as negate_expr_p
14834 predicate and add a -(A + B) -> (-B) - A pattern.
14835
14836 2015-07-15 Robert Suchanek <robert.suchanek@imgtec.com>
14837
14838 * config/mips/mips.c (mips_emit_save_slot_move): Fix typo.
14839
14840 2015-07-15 Matthew Fortune <matthew.fortune@imgtec.com>
14841 Robert Suchanek <robert.suchanek@imgtec.com>
14842
14843 * config/mips/mips.c (mips_int_mask): New enum.
14844 (mips_shadow_set): Likewise.
14845 (int_mask): New variable.
14846 (use_shadow_register_set_p): Change type to enum mips_shadow_set.
14847 (machine_function): Add int_mask and use_shadow_register_set.
14848 (mips_attribute_table): Add attribute handlers for interrupt and
14849 use_shadow_register_set.
14850 (mips_interrupt_mask): New static function.
14851 (mips_handle_interrupt_attr): Likewise.
14852 (mips_handle_use_shadow_register_set_attr): Likewise.
14853 (mips_use_shadow_register_set): Change return type to enum
14854 mips_shadow_set. Add argument handling for use_shadow_register_set
14855 attribute.
14856 (mips_interrupt_extra_called_saved_reg_p): Update the conditional to
14857 compare with mips_shadow_set enum.
14858 (mips_compute_frame_info): Add interrupt mask and
14859 use_shadow_register_set to per-function information structure.
14860 Add a stack slot for EPC unconditionally.
14861 (mips_expand_prologue): Compare use_shadow_register_set value
14862 with mips_shadow_set enum. Save EPC always in K1, clobber only K1 for
14863 masked interrupt register but in EIC mode use K0 and save Cause in K0.
14864 EPC saved and restored unconditionally. Use PMODE_INSN macro when
14865 copying the stack pointer from the shadow register set.
14866 * config/mips/mips.h (SR_IM0): New define.
14867 * config/mips/mips.md (mips_rdpgpr): Rename to...
14868 (mips_rdpgpr_<mode>): ...this. Use the Pmode iterator.
14869 * doc/extend.texi (Declaring Attributes of Functions): Document
14870 optional arguments for interrupt and use_shadow_register_set
14871 attributes.
14872
14873 2015-07-15 Robert Suchanek <robert.suchanek@imgtec.com>
14874
14875 * config/mips/mips.c (mips_compute_frame_info): Allow -mhard-float in
14876 interrupt attribute.
14877 (mips_expand_prologue): Disable the floating point unit in an ISR.
14878 * config/mips/mips.h (SR_COP1): New define.
14879
14880 2015-07-15 Richard Biener <rguenther@suse.de>
14881
14882 * genmatch.c (parser::peek, parser::peek_ident): Add argument
14883 to tell how many tokens to peek ahead (default 1).
14884 (parser::eat_token, parser::eat_ident): Return token consumed.
14885 (parser::parse_result): Parse new switch statement.
14886 * match.pd: Use case statements where appropriate.
14887
14888 2015-07-15 Uros Bizjak <ubizjak@gmail.com>
14889
14890 PR rtl-optimization/58066
14891 * calls.c (expand_call): Precompute register parameters before stack
14892 alignment is performed.
14893
14894 2015-07-15 Uros Bizjak <ubizjak@gmail.com>
14895
14896 PR rtl-optimization/66838
14897 * postreload.c (reload_cse_move2add): Also process
14898 CALL_INSN_FUNCTION_USAGE when resetting information of
14899 call-clobbered registers.
14900
14901 2015-07-14 Sandra Loosemore <sandra@codesourcery.com>
14902 Cesar Philippidis <cesar@codesourcery.com>
14903 Chung-Lin Tang <cltang@codesourcery.com>
14904
14905 * config/nios2/constraints.md (U, v): New constraints.
14906 * config/nios2/predicates.md (rdprs_dcache_operand): New.
14907 (ldstex_memory_operand): New.
14908 * config/nios2/sync.md: New file.
14909 * config/nios2/nios2.md (unspecv): Add new builtin function
14910 UNSPECV codes.
14911 (rdprs, flushd, flushda, wrpie, eni): New patterns.
14912 (top-level): Include sync.md.
14913 * config/nios2/nios2.c (N2_FTYPES): Add function types for
14914 new builtins.
14915 (N2_BUILTINS): Add arch field setting, add new builtins.
14916 (enum nios2_builtin_code,nios2_builtins): Update N2_BUILTIN_DEF
14917 for arch field.
14918 (nios2_expand_ldst_builtin): Rename from nios2_expand_ldstio_builtin.
14919 Also handle ldex/stex/ldsex/stsex builtins.
14920 (nios2_expand_rdprs_builtin): New function.
14921 (nios2_expand_cache_builtin): New function.
14922 (nios2_expand_wrpie_builtin): New function.
14923 (nios2_expand_eni_builtin): New function.
14924 (nios2_expand_builtin): Add arch field handling and new builtin
14925 cases.
14926 * doc/extend.texi (Altera Nios II Built-in Functions): Document
14927 new builtins.
14928 * doc/md.texi (Machine Constraints): Document U and v constraints.
14929
14930 2015-07-14 Sandra Loosemore <sandra@codesourcery.com>
14931 Cesar Philippidis <cesar@codesourcery.com>
14932 Chung-Lin Tang <cltang@codesourcery.com>
14933
14934 * config/nios2/nios2-protos.h (nios2_expand_return): Declare.
14935 * config/nios2/nios2.c (struct GTY (()) machine_function): Add
14936 callee_save_reg_size and uses_anonymous_args fields.
14937 (nios2_compute_frame_layout): Update for CDX push.n/pop.n usage.
14938 (nios2_create_cfa_notes): New function.
14939 (nios2_adjust_stack): New function for adjusting stack.
14940 (nios2_expand_prologue): Update for CDX push.n/pop.n usage.
14941 Use nios2_adjust_stack.
14942 (nios2_expand_epilogue): Likewise.
14943 (nios2_expand_return): New function.
14944 (nios2_can_use_return_insn): Update for CDX pop.n usage.
14945 (nios2_setup_incoming_varargs): Set uses_anonymous_args flag.
14946 If TARGET_HAS_CDX, defer pushing regs to nios2_expand_prologue.
14947 * config/nios2/nios2.md (return): Use nios2_expand_return.
14948
14949 2015-07-14 Sandra Loosemore <sandra@codesourcery.com>
14950 Cesar Philippidis <cesar@codesourcery.com>
14951 Chung-Lin Tang <cltang@codesourcery.com>
14952
14953 * config/nios2/predicates.md (pop_operation): New.
14954 (ldwm_operation, stwm_operation): New.
14955 (nios2_hard_register_operand): New.
14956 * config/nios2/nios2-protos.h (pop_operation_p): Declare.
14957 (ldstwm_operation_p): Declare.
14958 (gen_ldstwm_peep): Declare.
14959 * config/nios2/nios2.c: (nios2_ldst_parallel): Declare.
14960 (base_reg_adjustment_p): New.
14961 (pop_operation_p): New.
14962 (CDX_LDSTWM_VALID_REGS_0, CDX_LDSTWM_VALID_REGS_1): Define.
14963 (nios2_ldstwm_regset_p): New.
14964 (ldstwm_operation_p): New.
14965 (gen_ldst): New.
14966 (nios2_ldst_parallel): New.
14967 (struct ldswm_operand): Declare.
14968 (compare_ldstwm_operands): New.
14969 (can_use_cdx_ldstw): New.
14970 (gen_ldstwm_peep): New.
14971 * config/nios2/nios2-ldstwm.sml: New.
14972 * config/nios2/nios2.md: Include ldstwm.md.
14973 * config/nios2/ldstwm.md: Generated.
14974
14975 2015-07-14 Sandra Loosemore <sandra@codesourcery.com>
14976 Cesar Philippidis <cesar@codesourcery.com>
14977 Chung-Lin Tang <cltang@codesourcery.com>
14978
14979 * config/nios2/nios2.h (LABEL_ALIGN): Define.
14980 (REG_ALLOC_ORDER): Define.
14981 (ADJUST_REG_ALLOC_ORDER): Define.
14982 (HONOR_REG_ALLOC_ORDER): Define.
14983 (CDX_REG_P): Define.
14984 (ANDCLEAR_INT): Define.
14985 * config/nios2/nios2-protos.h (nios2_add_insn_asm): Declare.
14986 (nios2_label_align): Declare.
14987 (nios2_cdx_narrow_form_p): Declare.
14988 (nios2_adjust_reg_alloc_order): Declare.
14989 * config/nios2/nios2.c (nios2_rtx_costs): Adjust for BMX zero-extract
14990 operation.
14991 (nios2_large_unspec_reloc_p): New function, split from...
14992 (nios2_legitimate_pic_operand_p): ...here.
14993 (nios2_emit_move_sequence): Add *high/*lo_sum constant expand code.
14994 (nios2_print_operand_punct_valid_p): New.
14995 (nios2_print_operand): Add %., %!, %x, %y, %A. Remove %U.
14996 (split_mem_address): New.
14997 (split_alu_insn): New.
14998 (cdxreg): New.
14999 (cdx_add_immed, cdx_and_immed, cdx_mov_immed, cdx_shift_immed): New.
15000 (enum nios2_add_insn_kind): New.
15001 (nios2_add_insn_names, nios2_add_insn_narrow): New.
15002 (nios2_add_insn_classify): New.
15003 (nios2_add_insn_asm): New.
15004 (nios2_cdx_narrow_form_p): New.
15005 (label_align, min_labelno, max_labelno): New.
15006 (nios2_reorg): New.
15007 (nios2_label_align): New.
15008 (nios2_adjust_reg_alloc_order): New.
15009 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
15010 (TARGET_MACHINE_DEPENDENT_REORG): Define.
15011 * config/nios2/constraints.md (P): New constraint.
15012 * config/nios2/predicates.md (const_and_operand): New.
15013 (and_operand): New.
15014 (stack_memory_operand): New.
15015 * config/nios2/nios2.md (SP_REGNO): Define stack pointer regno.
15016 (length): Update to use nios2_cdx_narrow_form_p().
15017 (type): Add new insn type values.
15018 (control, alu, st, ld, shift): Update insn reservations with
15019 new insn type values.
15020 (*high, *lo_sum): Define new insn patterns for constant generation.
15021 (movqi_internal, movhi_internal, movsi_internal): Reduce
15022 alternatives, update asm template to handle CDX variants, update
15023 type attributes.
15024 (zero_extendhisi2, zero_extendqi<mode>2): Add CDX variants to asm
15025 template, update type attributes.
15026 (extendhisi2, extendqi<mode>2): Likewise.
15027 (addsi3): Change to use function for asm string.
15028 (subsi3): Add CDX notation to asm template, update type attributes.
15029 (negsi3, one_cmplsi3): Likewise.
15030 (andsi3): New pattern, specialized from logical patterns.
15031 (<code>si3): Remove and case, combine alternatives, update asm
15032 template.
15033 (<shift_op>si3): Add CDX notation, update type attributes.
15034 (rotrsi3): Update type attribute.
15035 (*merge, extzv, insv): New insn patterns.
15036 (return): Change to define_expand.
15037 (simple_return): Add CDX notation, update type attributes.
15038 (indirect_jump): Add CDX notation.
15039 (jump): Update asm cases, update length attribute expression.
15040 (*call, *call_value, *sibcall, *sibcall_value): Add CDX variant.
15041 (nios2_cbranch): Update asm cases and length attribute expression
15042 to handle CDX variants.
15043 (nios2_cmp<code>): Update asm template.
15044 (nop): Add CDX notation, update type attributes.
15045 (trap): Add CDX notation.
15046 (ctrapsi4): Update asm cases and length attribute expression to
15047 handle CDX variant.
15048 * doc/md.texi (Machine Constraints): Document P constraint.
15049
15050 2015-07-14 Sandra Loosemore <sandra@codesourcery.com>
15051 Cesar Philippidis <cesar@codesourcery.com>
15052 Chung-Lin Tang <cltang@codesourcery.com>
15053
15054 * config/nios2/nios2.h (SMALL_INT12): New macro.
15055 * config/nios2/nios2.c (nios2_valid_addr_offset_p): New function.
15056 (nios2_valid_addr_expr_p): Use it.
15057 (nios2_symbol_ref_in_small_data_p): Disallow GP-relative addressing
15058 with implicit "io" instructions on R2.
15059 * config/nios2/constraints.md (w): New constraint.
15060 * config/nios2/predicates.md (ldstio_memory_operand): New.
15061 * config/nios2/nios2.md (ld<bhw_uns>io, ld<bh>io): Update memory
15062 operand predicate and constraint.
15063 (ld<bh>io_signed, st<bhw>io>): Likewise.
15064 * doc/md.texi (Machine Constraints): Document w constraint.
15065
15066 2015-07-14 Sandra Loosemore <sandra@codesourcery.com>
15067 Cesar Philippidis <cesar@codesourcery.com>
15068 Chung-Lin Tang <cltang@codesourcery.com>
15069
15070 * config/nios2/nios2.opt (march, mbmx, mcdx): New options.
15071 * config/nios2/nios2-opts.h (enum nios2_arch_type): New enum for
15072 Nios II architecture level.
15073 * config/nios2/nios2.h (TARGET_ARCH_R2): New define.
15074 (TARGET_CPU_CPP_BUILTINS): Add definition of __nios2_arch__ symbol.
15075 (OPTION_DEFAULT_SPECS): Define.
15076 (ASM_SPEC): Add -march= spec strings.
15077 * config/nios2/nios2.c (nios2_option_override): Check for
15078 conflicts involving new options.
15079 * config.gcc (nios2*-*-*): Support --with-arch=.
15080 * doc/invoke.texi (Option Summary, Nios II Options): Document
15081 -march=, -mbmx, and -mcdx.
15082
15083 2015-07-14 Vladimir Makarov <vmakarov@redhat.com>
15084
15085 PR rtl-optimization/66626
15086 * lra-constraints.c (lra_constraints): Prevent equivalence
15087 substitution for static chain pseudo in functions with nonlocal
15088 goto.
15089
15090 2015-07-14 Sandra Loosemore <sandra@codesourcery.com>
15091
15092 * config/nios2/nios2.c (TEMP_REG_NUM): Move define up in file.
15093 (nios2_emit_stack_limit_check): Add size parameter. Handle
15094 -fstack-limit-symbol as well as -fstack-limit-register.
15095 (nios2_expand_prologue): Emit only a single stack limit check,
15096 even if multiple stack adjustments are required.
15097 (nios2_option_override): Diagnose unsupported combination of -fpic
15098 and -stack-limit-symbol.
15099
15100 2015-07-14 H.J. Lu <hongjiu.lu@intel.com>
15101
15102 * Makefile.in (top_srcdir): New.
15103 * configure.ac: Use AM_ZLIB.
15104 * configure: Regeneated.
15105
15106 2015-07-14 Matthias Klose <doko@ubuntu.com>
15107
15108 PR target/66840
15109 * config/rs6000/t-rs6000 (TM_H): Add rs6000-cpus.def.
15110
15111 2015-07-14 Richard Biener <rguenther@suse.de>
15112
15113 PR tree-optimization/66863
15114 * tree-vrp.c (register_edge_assert_for_2): Properly restrict
15115 what we record for conversion use stmt lhs inequalities.
15116
15117 2015-07-14 Richard Biener <rguenther@suse.de>
15118
15119 * genmatch.c (dt_node::gen_kids_1): Fix case label indenting.
15120 (decision_tree::gen_gimple): Likewise.
15121
15122 2015-07-14 Tom de Vries <tom@codesourcery.com>
15123
15124 * gcc.c (greater_than_spec_func): Declare forward.
15125 (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use gt to ignore
15126 -ftree-parallelize-loops={0,1}.
15127 (static_spec_functions): Add greater_than_spec_func function with name
15128 "gt".
15129 (greater_than_spec_func): New function.
15130
15131 2015-07-14 Richard Biener <rguenther@suse.de>
15132
15133 * tree-ssa-dom.c (record_temporary_equivalences): Merge
15134 wideing type conversion case from record_equivalences_from_incoming_edge
15135 and use record_equality to record equivalences.
15136 (record_equivalences_from_incoming_edge): Call
15137 record_temporary_equivalences.
15138
15139 2015-07-14 Richard Biener <rguenther@suse.de>
15140
15141 * genmatch.c (struct operand): Add OP_IF and OP_WITH op_types.
15142 (struct if_expr): New.
15143 (struct with_expr): Likewise.
15144 (is_a_helper): Add helpers for if_expr and with_expr.
15145 (struct simplify): Add simplify_kind enum and member. Remove
15146 ifexpr_vec member.
15147 (simplify::simplify): Adjust.
15148 (lower_commutative): Adjust.
15149 (lower_opt_convert): Likewise.
15150 (lower_cond): Likewise.
15151 (replace_id): Handle with_expr and if_expr.
15152 (lower_for): Adjust.
15153 (dt_simplify::gen_1): New recursive worker, split out from ...
15154 (dt_simplify::gen): ... here. Deal with if and with expansion
15155 recursively.
15156 (capture_info::capture_info): Take context argument
15157 (capture_info::walk_result): Only analyze specific result.
15158 (parser::parse_result): New function.
15159 (parser::parse_simplify): Adjust to parse ifs with then end
15160 else case.
15161 (parser::parse_if): Simplify.
15162 (parser::parse_pattern): Pass down simplify kind.
15163 * match.pd: Convert if structure to new syntax.
15164
15165 2015-07-13 Marek Polacek <polacek@redhat.com>
15166
15167 * rtl.c (rtx_equal_p_cb): Fix typo.
15168
15169 2015-07-13 Andrew MacLeod <amacleod@redhat.com>
15170
15171 * omega.h: Don't include config.h, don't include params.h again if
15172 omega.h has already been included.
15173 * graphite-poly.h: Include sese.h.
15174 * graphite.c: Don't include sese.h, remove needless includes and
15175 minimize includes outside #ifdef HAVE_isl block.
15176 * graphite-blocking.c: Don't include sese.h, remove needless includes,
15177 and wrap entire file in #ifdef HAVE_isl
15178 * graphite-dependences.c: Likewise.
15179 * graphite-interchange.c: Likewise.
15180 * graphite-isl-ast-to-gimple.c: Likewise.
15181 * graphite-optimize-isl.c: Likewise.
15182 * graphite-poly.c: Likewise.
15183 * graphite-scop-detection.c: Likewise.
15184 * graphite-sese-to-poly.c: Likewise.
15185
15186 2015-07-13 Tom de Vries <tom@codesourcery.com>
15187
15188 * omp-low.c (build_receiver_ref): Mark *.omp_data_i as non-trapping.
15189
15190 2015-07-13 Renlin Li <renlin.li@arm.com>
15191
15192 PR rtl/66556
15193 * simplify-rtx.c (simplify_const_relational_operation): Add
15194 side_effects_p checks.
15195
15196 2015-07-12 Aldy Hernandez <aldyh@redhat.com>
15197
15198 * bitmap.h: Fix double word typos.
15199 * builtins.c: Same.
15200 * calls.c: Same.
15201 * cfgloopmanip.c: Same.
15202 * cgraph.c: Same.
15203 * cgraph.h: Same.
15204 * cgraphclones.c: Same.
15205 * combine.c: Same.
15206 * config/aarch64/aarch64-protos.h: Same.
15207 * config/aarch64/aarch64.c: Same.
15208 * config/aarch64/aarch64.md: Same.
15209 * config/arm/arm.md: Same.
15210 * config/arm/arm1020e.md: Same.
15211 * config/arm/arm1026ejs.md: Same.
15212 * config/arm/arm926ejs.md: Same.
15213 * config/arm/fa526.md: Same.
15214 * config/arm/fa606te.md: Same.
15215 * config/arm/fa626te.md: Same.
15216 * config/arm/fa726te.md: Same.
15217 * config/arm/fmp626.md: Same.
15218 * config/darwin.c: Same.
15219 * config/epiphany/epiphany.c: Same.
15220 * config/frv/frv.c: Same.
15221 * config/ft32/ft32.c: Same.
15222 * config/gnu-user.h: Same.
15223 * config/h8300/constraints.md: Same.
15224 * config/i386/i386.c: Same.
15225 * config/i386/i386.md: Same.
15226 * config/iq2000/iq2000.md: Same.
15227 * config/mips/mips.c: Same.
15228 * config/mmix/mmix.md: Same.
15229 * config/moxie/moxie.c: Same.
15230 * config/nds32/nds32.md: Same.
15231 * config/pa/pa.h: Same.
15232 * config/rs6000/aix.h: Same.
15233 * config/rs6000/rs6000.h: Same.
15234 * config/sh/sh.c: Same.
15235 * config/tilegx/tilegx.md: Same.
15236 * config/tilepro/gen-mul-tables.cc: Same.
15237 * cse.c: Same.
15238 * dbxout.c: Same.
15239 * doc/invoke.texi: Same.
15240 * dse.c: Same.
15241 * dwarf2out.c: Same.
15242 * final.c: Same.
15243 * gcc.c: Same.
15244 * genmatch.c: Same.
15245 * gimplify.c: Same.
15246 * hash-table.h: Same.
15247 * internal-fn.c: Same.
15248 * ipa-cp.c: Same.
15249 * ipa-devirt.c: Same.
15250 * ipa-icf.c: Same.
15251 * ipa-icf.h: Same.
15252 * ipa-profile.c: Same.
15253 * ipa-prop.c: Same.
15254 * ipa-prop.h: Same.
15255 * ira.c: Same.
15256 * omp-low.c: Same.
15257 * reg-stack.c: Same.
15258 * regcprop.c: Same.
15259 * reorg.c: Same.
15260 * rtl.h: Same.
15261 * sbitmap.h: Same.
15262 * tree-eh.c: Same.
15263 * tree-inline.c: Same.
15264 * tree-sra.c: Same.
15265 * tree-ssa-dom.c: Same.
15266 * tree-ssa-loop-ivopts.c: Same.
15267 * tree-ssa-structalias.c: Same.
15268 * tree-ssa-tail-merge.c: Same.
15269 * tree-ssa-ter.c: Same.
15270 * tree-ssa-threadupdate.c: Same.
15271 * tree-ssa-uninit.c: Same.
15272 * tree-ssanames.c: Same.
15273 * tree-vect-loop-manip.c: Same.
15274 * tree-vrp.c: Same.
15275 * tree.c: Same.
15276 * valtrack.c: Same.
15277 * vec.h: Same.
15278
15279 2015-07-12 Kugan Vivekanandarajah <kuganv@linaro.org>
15280
15281 PR middle-end/66726
15282 * tree-ssa-phiopt.c(factor_out_conditional_conversion): New function.
15283 tree_ssa_phiopt_worker): Call it.
15284
15285 2015-07-12 Kugan Vivekanandarajah <kuganv@linaro.org>
15286
15287 * cse.c (cse_insn): Calculate src_eqv for ZERO_EXTRACT.
15288 * emit-rtl.c (set_for_reg_notes): Allow ZERO_EXTRACT to set
15289 REG_EQUAL note.
15290
15291 2015-07-11 Marek Polacek <polacek@redhat.com>
15292
15293 PR middle-end/66353
15294 * basic-block.h (has_abnormal_call_or_eh_pred_edge_p): New function.
15295 * ira-lives.c (bb_has_abnormal_call_pred): Remove function.
15296 (process_bb_node_lives): Call has_abnormal_call_or_eh_pred_edge_p
15297 rather than bb_has_abnormal_call_pred.
15298 * lra-lives.c (bb_has_abnormal_call_pred): Remove function.
15299 (process_bb_lives): Call has_abnormal_call_or_eh_pred_edge_p
15300 rather than bb_has_abnormal_call_pred.
15301
15302 2015-07-10 Anatoly Sokolov <aesok@post.ru>
15303
15304 * config/v850/v850.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
15305 REG_OK_FOR_BASE_P_STRICT, REG_OK_FOR_INDEX_P_STRICT, STRICT,
15306 RTX_OK_FOR_BASE_P, GO_IF_LEGITIMATE_ADDRESS): Remove macros.
15307 * config/v850/v850.c (v850_reg_ok_for_base_, v850_rtx_ok_for_base_p,
15308 v850_legitimate_address_p): New functions.
15309 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
15310
15311 2015-07-10 H.J. Lu <hongjiu.lu@intel.com>
15312
15313 PR target/66819
15314 * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow
15315 indirect sibcall with register arguments if register available
15316 for argument passing.
15317 (init_cumulative_args): Set cfun->machine->arg_reg_available
15318 to (cum->nregs > 0) or to true if function has a variable
15319 argument list.
15320 (function_arg_advance_32): Set cfun->machine->arg_reg_available
15321 to false if cum->nregs <= 0.
15322 * config/i386/i386.h (machine_function): Add arg_reg_available.
15323
15324 2015-07-10 Uros Bizjak <ubizjak@gmail.com>
15325
15326 * config/i386/sse.md (movdi_to_sse): Use gen_lowpart
15327 and gen_higpart instead of gen_rtx_SUBREG.
15328 * config/i386/i386.md
15329 (floatdi<X87MODEF:mode>2_i387_with_xmm splitter): Ditto.
15330 (read-modify peephole2): Use gen_lowpart instead of
15331 gen_rtx_SUBREG for operand 5.
15332
15333 2015-07-10 Andrew MacLeod <amacleod@redhat.com>
15334
15335 * config/tilepro/gen-mul-tables.cc (main): Change include list for
15336 generated files.
15337 * config/tilepro/mul-tables.c: Regenerate.
15338 * config/tilegx/mul-tables.c: Regenerate.
15339
15340 2015-07-10 Richard Biener <rguenther@suse.de>
15341
15342 * fold-const.c (distribute_bit_expr): Remove.
15343 (fold_binary_loc): Move simplifying (A & C1) + (B & C2)
15344 to (A & C1) | (B & C2), distributing (A & B) | (A & C)
15345 to A & (B | C) and simplifying A << C1 << C2 to ...
15346 * match.pd: ... patterns here.
15347
15348 2015-07-10 Jiong Wang <jiong.wang@arm.com>
15349
15350 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
15351 Mark mem as READONLY and NOTRAP for PIC symbol.
15352
15353 2015-07-10 Andrew MacLeod <amacleod@redhat.com>
15354
15355 * gimple-predict.h: New file.
15356 (gimple_predict_predictor, gimple_predict_set_predictor,
15357 gimple_predict_outcome, gimple_predict_set_outcome,
15358 gimple_build_predict): Relocate here.
15359 * gimple.h (gimple_predict_predictor, gimple_predict_set_predictor,
15360 gimple_predict_outcome, gimple_predict_set_outcome): Move to
15361 gimple-predict.h.
15362 * gimple.c (gimple_build_predict): Move to gimple-predict.h
15363 * basic-block.h: Don't include cfghooks.h.
15364 * backend.h: Don't include predict.h.
15365 * cfghooks.h: Include predict.h.
15366 * gimple-pretty-print.c: Include gimple-predict.h.
15367 * gimplify.c: Likwise.
15368 * predict.c: Adjust includes.
15369 * tree-inline.c: Likewise.
15370 * asan.c: Likewise.
15371 * auto-inc-dec.c: Likewise.
15372 * auto-profile.c: Likewise.
15373 * bb-reorder.c: Likewise.
15374 * builtins.c: Likewise.
15375 * caller-save.c: Likewise.
15376 * calls.c: Likewise.
15377 * cfganal.c: Likewise.
15378 * cfgbuild.c: Likewise.
15379 * cfg.c: Likewise.
15380 * cfgcleanup.c: Likewise.
15381 * cfgexpand.c: Likewise.
15382 * cfghooks.c: Likewise.
15383 * cfgloopanal.c: Likewise.
15384 * cfgloop.c: Likewise.
15385 * cfgloopmanip.c: Likewise.
15386 * cfgrtl.c: Likewise.
15387 * cgraph.c: Likewise.
15388 * cgraphunit.c: Likewise.
15389 * combine.c: Likewise.
15390 * cprop.c: Likewise.
15391 * cse.c: Likewise.
15392 * dce.c: Likewise.
15393 * dojump.c: Likewise.
15394 * dse.c: Likewise.
15395 * except.c: Likewise.
15396 * expmed.c: Likewise.
15397 * expr.c: Likewise.
15398 * final.c: Likewise.
15399 * fold-const.c: Likewise.
15400 * function.c: Likewise.
15401 * fwprop.c: Likewise.
15402 * gcc-plugin.h: Likewise.
15403 * gcse.c: Likewise.
15404 * genattrtab.c: Likewise.
15405 * genemit.c: Likewise.
15406 * gengtype.c: Likewise.
15407 * genopinit.c: Likewise.
15408 * genoutput.c: Likewise.
15409 * genpreds.c: Likewise.
15410 * genrecog.c: Likewise.
15411 * gimple-fold.c: Likewise.
15412 * gimple-iterator.c: Likewise.
15413 * gimple-ssa-isolate-paths.c: Likewise.
15414 * gimple-ssa-strength-reduction.c: Likewise.
15415 * graph.c: Likewise.
15416 * graphite-blocking.c: Likewise.
15417 * graphite.c: Likewise.
15418 * graphite-dependences.c: Likewise.
15419 * graphite-interchange.c: Likewise.
15420 * graphite-isl-ast-to-gimple.c: Likewise.
15421 * graphite-optimize-isl.c: Likewise.
15422 * graphite-poly.c: Likewise.
15423 * graphite-scop-detection.c: Likewise.
15424 * graphite-sese-to-poly.c: Likewise.
15425 * haifa-sched.c: Likewise.
15426 * ifcvt.c: Likewise.
15427 * internal-fn.c: Likewise.
15428 * ipa-cp.c: Likewise.
15429 * ipa-profile.c: Likewise.
15430 * ipa-split.c: Likewise.
15431 * ipa-utils.c: Likewise.
15432 * ira-build.c: Likewise.
15433 * ira-color.c: Likewise.
15434 * ira-conflicts.c: Likewise.
15435 * ira-costs.c: Likewise.
15436 * ira-emit.c: Likewise.
15437 * ira-lives.c: Likewise.
15438 * jump.c: Likewise.
15439 * loop-doloop.c: Likewise.
15440 * loop-init.c: Likewise.
15441 * loop-invariant.c: Likewise.
15442 * loop-unroll.c: Likewise.
15443 * lower-subreg.c: Likewise.
15444 * lra-assigns.c: Likewise.
15445 * lra.c: Likewise.
15446 * lra-coalesce.c: Likewise.
15447 * lra-constraints.c: Likewise.
15448 * lra-lives.c: Likewise.
15449 * lto-cgraph.c: Likewise.
15450 * lto-streamer-in.c: Likewise.
15451 * mode-switching.c: Likewise.
15452 * modulo-sched.c: Likewise.
15453 * omp-low.c: Likewise.
15454 * optabs.c: Likewise.
15455 * passes.c: Likewise.
15456 * postreload.c: Likewise.
15457 * postreload-gcse.c: Likewise.
15458 * profile.c: Likewise.
15459 * recog.c: Likewise.
15460 * regstat.c: Likewise.
15461 * reload1.c: Likewise.
15462 * reorg.c: Likewise.
15463 * rtlanal.c: Likewise.
15464 * sched-ebb.c: Likewise.
15465 * sel-sched-ir.c: Likewise.
15466 * sese.c: Likewise.
15467 * shrink-wrap.c: Likewise.
15468 * simplify-rtx.c: Likewise.
15469 * stmt.c: Likewise.
15470 * store-motion.c: Likewise.
15471 * tracer.c: Likewise.
15472 * trans-mem.c: Likewise.
15473 * tree-call-cdce.c: Likewise.
15474 * tree-cfg.c: Likewise.
15475 * tree-cfgcleanup.c: Likewise.
15476 * tree-chkp.c: Likewise.
15477 * tree-complex.c: Likewise.
15478 * tree-eh.c: Likewise.
15479 * tree-if-conv.c: Likewise.
15480 * tree-loop-distribution.c: Likewise.
15481 * tree-outof-ssa.c: Likewise.
15482 * tree-parloops.c: Likewise.
15483 * tree-predcom.c: Likewise.
15484 * tree-pretty-print.c: Likewise.
15485 * tree-profile.c: Likewise.
15486 * tree-sra.c: Likewise.
15487 * tree-ssa.c: Likewise.
15488 * tree-ssa-coalesce.c: Likewise.
15489 * tree-ssa-dce.c: Likewise.
15490 * tree-ssa-dom.c: Likewise.
15491 * tree-ssa-forwprop.c: Likewise.
15492 * tree-ssa-ifcombine.c: Likewise.
15493 * tree-ssa-loop-ch.c: Likewise.
15494 * tree-ssa-loop-im.c: Likewise.
15495 * tree-ssa-loop-ivcanon.c: Likewise.
15496 * tree-ssa-loop-ivopts.c: Likewise.
15497 * tree-ssa-loop-manip.c: Likewise.
15498 * tree-ssa-loop-prefetch.c: Likewise.
15499 * tree-ssa-loop-unswitch.c: Likewise.
15500 * tree-ssa-math-opts.c: Likewise.
15501 * tree-ssa-phiopt.c: Likewise.
15502 * tree-ssa-pre.c: Likewise.
15503 * tree-ssa-reassoc.c: Likewise.
15504 * tree-ssa-sink.c: Likewise.
15505 * tree-ssa-tail-merge.c: Likewise.
15506 * tree-ssa-threadedge.c: Likewise.
15507 * tree-ssa-threadupdate.c: Likewise.
15508 * tree-switch-conversion.c: Likewise.
15509 * tree-tailcall.c: Likewise.
15510 * tree-vect-data-refs.c: Likewise.
15511 * tree-vect-loop.c: Likewise.
15512 * tree-vect-loop-manip.c: Likewise.
15513 * tree-vectorizer.c: Likewise.
15514 * tree-vrp.c: Likewise.
15515 * ubsan.c: Likewise.
15516 * value-prof.c: Likewise.
15517 * varasm.c: Likewise.
15518 * var-tracking.c: Likewise.
15519 * config/aarch64/aarch64-builtins.c: Likewise.
15520 * config/aarch64/aarch64.c: Likewise.
15521 * config/aarch64/cortex-a57-fma-steering.c: Likewise.
15522 * config/alpha/alpha.c: Likewise.
15523 * config/arc/arc.c: Likewise.
15524 * config/arm/arm.c: Likewise.
15525 * config/avr/avr.c: Likewise.
15526 * config/bfin/bfin.c: Likewise.
15527 * config/c6x/c6x.c: Likewise.
15528 * config/cr16/cr16.c: Likewise.
15529 * config/cris/cris.c: Likewise.
15530 * config/darwin.c: Likewise.
15531 * config/darwin-c.c: Likewise.
15532 * config/epiphany/epiphany.c: Likewise.
15533 * config/epiphany/mode-switch-use.c: Likewise.
15534 * config/epiphany/resolve-sw-modes.c: Likewise.
15535 * config/fr30/fr30.c: Likewise.
15536 * config/frv/frv.c: Likewise.
15537 * config/ft32/ft32.c: Likewise.
15538 * config/h8300/h8300.c: Likewise.
15539 * config/i386/i386.c: Likewise.
15540 * config/i386/winnt.c: Likewise.
15541 * config/ia64/ia64.c: Likewise.
15542 * config/iq2000/iq2000.c: Likewise.
15543 * config/lm32/lm32.c: Likewise.
15544 * config/m32c/m32c.c: Likewise.
15545 * config/m32r/m32r.c: Likewise.
15546 * config/m68k/m68k.c: Likewise.
15547 * config/mcore/mcore.c: Likewise.
15548 * config/mep/mep.c: Likewise.
15549 * config/microblaze/microblaze.c: Likewise.
15550 * config/mips/mips.c: Likewise.
15551 * config/mmix/mmix.c: Likewise.
15552 * config/mn10300/mn10300.c: Likewise.
15553 * config/moxie/moxie.c: Likewise.
15554 * config/msp430/msp430.c: Likewise.
15555 * config/nds32/nds32.c: Likewise.
15556 * config/nds32/nds32-cost.c: Likewise.
15557 * config/nds32/nds32-fp-as-gp.c: Likewise.
15558 * config/nds32/nds32-intrinsic.c: Likewise.
15559 * config/nds32/nds32-isr.c: Likewise.
15560 * config/nds32/nds32-md-auxiliary.c: Likewise.
15561 * config/nds32/nds32-memory-manipulation.c: Likewise.
15562 * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
15563 * config/nds32/nds32-predicates.c: Likewise.
15564 * config/nios2/nios2.c: Likewise.
15565 * config/nvptx/nvptx.c: Likewise.
15566 * config/pa/pa.c: Likewise.
15567 * config/pdp11/pdp11.c: Likewise.
15568 * config/rl78/rl78.c: Likewise.
15569 * config/rs6000/rs6000.c: Likewise.
15570 * config/rx/rx.c: Likewise.
15571 * config/s390/s390.c: Likewise.
15572 * config/sh/sh.c: Likewise.
15573 * config/sh/sh-mem.cc: Likewise.
15574 * config/sh/sh_optimize_sett_clrt.cc: Likewise.
15575 * config/sh/sh_treg_combine.cc: Likewise.
15576 * config/sparc/sparc.c: Likewise.
15577 * config/spu/spu.c: Likewise.
15578 * config/stormy16/stormy16.c: Likewise.
15579 * config/tilegx/tilegx.c: Likewise.
15580 * config/tilepro/tilepro.c: Likewise.
15581 * config/v850/v850.c: Likewise.
15582 * config/vax/vax.c: Likewise.
15583 * config/visium/visium.c: Likewise.
15584 * config/xtensa/xtensa.c: Likewise.
15585
15586 2015-07-10 Richard Biener <rguenther@suse.de>
15587
15588 * genmatch.c (dt_node::gen_kids_1): Fix indenting of case labels.
15589 (decision_tree::gen_gimple): Likewise.
15590 (decision_tree::gen_generic): Likewise.
15591
15592 2015-07-10 Uros Bizjak <ubizjak@gmail.com>
15593
15594 PR target/66813
15595 * config/i386/i386.c (ix86_md_asm_adjust): Emit movstrictqi
15596 sequence for TARGET_ZERO_EXTEND_WITH_AND targets.
15597
15598 2015-07-10 Jakub Jelinek <jakub@redhat.com>
15599
15600 PR middle-end/66820
15601 * gimplify.c (maybe_fold_stmt): Don't fold in ORT_PARALLEL
15602 or ORT_TASK contexts.
15603 * omp-low.c (lower_omp): Call fold_stmt even if taskreg_nesting_level
15604 is non-zero.
15605
15606 2015-07-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15607
15608 * expr.c (expand_cond_expr_using_cmove): Fix typos in comment
15609 above function.
15610
15611 2015-07-10 Tom de Vries <tom@codesourcery.com>
15612
15613 * tree-parloops.c (try_transform_to_exit_first_loop_alt): If not found,
15614 insert nit + 1 bound.
15615
15616 2015-07-10 Richard Biener <rguenther@suse.de>
15617
15618 * tree-if-conv.c (if_convertible_gimple_assign_stmt_p):
15619 Use ifcvt_could_trap_p also when not flag_tree_loop_if_convert_stores.
15620 (if_convertible_loop_p_1): For this always compute bb predicates.
15621 (if_convertible_loop_p): And free them.
15622
15623 2015-07-10 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
15624
15625 * ipa-icf.c (sem_item_optimizer::do_congruence_step): Fix typo
15626 in dump message.
15627
15628 2015-07-10 Richard Biener <rguenther@suse.de>
15629
15630 PR tree-optimization/66823
15631 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Fix
15632 inverted predicate.
15633
15634 2015-07-09 Steve Ellcey <sellcey@imgtec.com>
15635
15636 * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): Update
15637 to handle mips[32|64]r3 and mips[32|64]r5.
15638
15639 2015-07-09 Jakub Jelinek <jakub@redhat.com>
15640
15641 PR middle-end/66633
15642 * tree-nested.c (get_static_chain): Or in a flag into
15643 info->static_chain_added.
15644 (get_frame_field, get_nonlocal_debug_decl): Likewise.
15645 (convert_nonlocal_omp_clauses, convert_local_omp_clauses): Revert
15646 2015-07-01 changes.
15647 (convert_tramp_reference_stmt): If a frame_decl or chain_decl
15648 is needed newly inside of GIMPLE_OMP_{PARALLEL,TASK,TARGET} body,
15649 add it to clauses.
15650
15651 PR tree-optimization/66718
15652 * tree-vect-stmts.c (struct simd_call_arg_info): Add simd_lane_linear
15653 field.
15654 (vect_simd_lane_linear): New function.
15655 (vectorizable_simd_clone_call): Support using linear arguments for
15656 addresses of arrays elements indexed by GOMP_SIMD_LANE result.
15657
15658 2015-07-09 H.J. Lu <hongjiu.lu@intel.com>
15659
15660 PR target/66821
15661 * config/i386/i386.c (iamcu_cost): Adjust variable shift costs.
15662
15663 2015-07-09 Michael Meissner <meissner@linux.vnet.ibm.com>
15664
15665 * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_memory):
15666 Use machine mode, not enum machine_mode in the prototype.
15667
15668 * config/rs6000/rs6000.h (FLOAT128_IEEE_P): New helper macros to
15669 classify 128-bit floating point support.
15670 (FLOAT128_IBM_P): Likewise.
15671 (FLOAT128_VECTOR_P): Likewise.
15672 (FLOAT128_2REG_P): Likewise.
15673 (SCALAR_FLOAT_MODE_NOT_VECTOR_P): Likewise.
15674 (SLOW_UNALIGNED_ACCESS): Add IEEE 128-bit floating point support.
15675 (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
15676 (HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
15677
15678 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Drop
15679 tests against TFmode/TDmode, since those modes do not use VSX
15680 addresses.
15681 (rs6000_hard_regno_mode_ok): Add IEEE 128-bit floating point
15682 support.
15683 (rs6000_init_hard_regno_mode_ok): Use new helper macros instead of
15684 tests against TFmode, etc.
15685 (invalid_e500_subreg): Add tests against IFmode/KFmode.
15686 (reg_offset_addressing_ok_p): Likewise.
15687 (rs6000_legitimate_offset_address_p): Likewise.
15688 (rs6000_legitimize_address): Likewise.
15689 (rs6000_legitimize_reload_address): Likewise.
15690 (rs6000_legitimate_address_p): Clean up tests against TFmode and
15691 TDmode to use the new helper macros, which will include IFmode and
15692 KFmode.
15693 (rs6000_emit_move): Likewise.
15694 (rs6000_darwin64_record_arg_recurse): Likewise.
15695 (print_operand): Likewise.
15696 (rs6000_member_type_forces_blk): Treat IEEE 128-bit floating point
15697 that uses a single vector register as a vector and not as a
15698 floating point register in terms of the calling sequence.
15699 (rs6000_discover_homogeneous_aggregate): Likewise.
15700 (rs6000_return_in_memory): Likewise.
15701 (init_cumulative_args): Likewise.
15702 (rs6000_function_arg_boundary): Likewise.
15703 (rs6000_function_arg_advance_1): Likewise.
15704 (rs6000_function_arg): Likewise.
15705 (rs6000_pass_by_reference): Likewise.
15706 (rs6000_gimplify_va_arg): Likewise.
15707 (rs6000_secondary_reload_memory): Use machine_mode not enum
15708 machine mode.
15709 (rs6000_split_multireg_move): Use new helper macros.
15710 (spe_func_has_64bit_regs_p): Likewise.
15711 (rs6000_output_function_epilogue): Add IFmode/KFmode support.
15712 (output_toc): Use new helper macros.
15713 (rs6000_register_move_cost): Likewise.
15714 (rs6000_function_value): Add IEEE 128-bit floating point calling
15715 sequence support.
15716 (rs6000_libcall_value): Likewise.
15717 (rs6000_scalar_mode_supported_p): Add support for IEEE 128-bit
15718 floating point support.
15719 (rs6000_vector_mode_supported_p): Likewise.
15720
15721 2015-07-09 Vladimir Makarov <vmakarov@redhat.com>
15722
15723 PR rtl-optimization/66782
15724 * lra-int.h (struct lra_insn_recog_data): Add comment about
15725 clobbered hard regs for arg_hard_regs.
15726 * lra.c (lra_set_insn_recog_data): Add clobbered hard regs.
15727 * lra-lives.c (process_bb_lives): Process clobbered hard regs.
15728 Add condition for processing used hard regs.
15729 * lra-constraints.c (update_ebb_live_info, inherit_in_ebb):
15730 Process clobbered hard regs.
15731
15732 2015-07-09 Michael Matz <matz@suse.de>
15733
15734 * genmatch.c (fprintf_indent): New function.
15735 (operand::gen_transform): Add indent parameter.
15736 (expr::gen_transform, c_expr::gen_transform,
15737 capture::gen_transform): Ditto and use fprintf_indent.
15738 (dt_node::gen, dt_node::gen_kids, dt_node::gen_kids_1): Ditto.
15739 (dt_operand::gen, dt_operand::gen_predicate,
15740 dt_operand::gen_match_op, dt_operand::gen_gimple_expr,
15741 dt_operand::gen_generic_expr, dt_simplify::gen): Ditto.
15742 (decision_tree::gen_gimple): Adjust calls and indent generated
15743 code.
15744 (decision_tree::gen_generic): Ditto.
15745 (write_predicate): Ditto.
15746
15747 2015-07-08 Uros Bizjak <ubizjak@gmail.com>
15748
15749 PR target/66814
15750 * config/i386/predicates.md (nonimmediate_gr_operand): New predicate.
15751 * config/i386/i386.md (not peephole2): Use nonimmediate_gr_operand.
15752 (varous peephole2s): Use {GENERAL,SSE,MMX}_REGNO_P instead of
15753 {GENERAL,SSE,MMX}_REG_P where appropriate.
15754
15755 2015-07-09 Andrew MacLeod <amacleod@redhat.com>
15756
15757 * lto-streamer.h: Don't include target.h and alloc-pool.h.
15758 * builtins.c: Adjust includes.
15759 * gimple.c: Likewise.
15760 * ipa-icf.c: Likewise.
15761 * lto-opts.c: Likewise.
15762 * ipa-reference.c: Likewise.
15763 * lto-section-out.c: Likewise.
15764 * lto-streamer-in.c: Likewise.
15765 * lto-streamer-out.c: Likewise.
15766 * opts-global.c: Likewise.
15767 * symtab.c: Likewise.
15768 * tree-chkp.c: Likewise.
15769 * tree-ssa-live.c: Likewise.
15770 * tree-streamer-in.c: Likewise.
15771 * tree-streamer-out.c: Likewise.
15772 * config/darwin.c: Likewise.
15773 * config/i386/winnt.c: Likewise.
15774
15775 2015-07-09 Richard Biener <rguenther@suse.de>
15776
15777 * genmatch.c (struct expr): Add force_single_use flag.
15778 (expr::expr): Add copy constructor.
15779 (capture_info::walk_match): Gather force_single_use captures.
15780 (expr::gen_transform): Use possibly NULLified sequence.
15781 (dt_simplify::gen): Apply single-use restrictions by NULLifying
15782 seq if any constrained expr is not single-use.
15783 (parser::parse_expr): Refactor to allow multiple flags. Handle
15784 's' flag to force an expression have a single-use if the pattern
15785 simplifies to more than one statement.
15786 * match.pd: Convert most single_use conditionals to :s flags.
15787
15788 2015-07-09 H.J. Lu <hongjiu.lu@intel.com>
15789
15790 * config/i386/iamcu.h (ASM_OUTPUT_ALIGNED_BSS): New.
15791 (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
15792 (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
15793
15794 2015-07-09 Andrew MacLeod <amacleod@redhat.com>
15795
15796 * flags.h: Don't include flag-types.h or options.h.
15797 * opts-common.c: Adjust includes.
15798 * opts-global.c: Likewise.
15799 * common/config/epiphany/epiphany-common.c: Likewise.
15800
15801 2015-07-09 H.J. Lu <hongjiu.lu@intel.com>
15802
15803 PR target/66818
15804 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Defined to 32
15805 for IA MCU.
15806
15807 2015-07-09 H.J. Lu <hongjiu.lu@intel.com>
15808
15809 PR target/66817
15810 * config/i386/i386.c (ix86_return_in_memory): Return true
15811 if int_size_in_bytes returns negative for IA MCU.
15812
15813 2015-07-09 Marek Polacek <polacek@redhat.com>
15814
15815 PR tree-optimization/66718
15816 * Makefile.in (OBJS): Add gimple-laddress.o.
15817 * passes.def: Schedule pass_laddress.
15818 * timevar.def (DEFTIMEVAR): Add TV_GIMPLE_LADDRESS.
15819 * tree-pass.h (make_pass_laddress): Declare.
15820 * gimple-laddress.c: New file.
15821
15822 2015-07-09 Richard Biener <rguenther@suse.de>
15823
15824 * toplev.c (compile_file): Reset maximum_field_alignment after parsing.
15825
15826 2015-07-09 Richard Biener <rguenther@suse.de>
15827
15828 PR tree-optimization/66807
15829 * tree-chkp-opt.c (chkp_opt_fini): Free post dominator info.
15830
15831 2015-07-08 Kito Cheng <kito.cheng@gmail.com>
15832
15833 * function.c (stack_protect_epilogue): Use if rather than switch for
15834 check targetm.have_stack_protect_test.
15835
15836 2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15837
15838 * defaults.h: Provide default for WORD_REGISTER_OPERATIONS.
15839 * config/alpha/alpha.h: Define WORD_REGISTER_OPERATIONS to 1.
15840 * config/arc/arc.h: Likewise.
15841 * config/arm/arm.h: Likewise.
15842 * config/bfin/bfin.h: Likewise.
15843 * config/epiphany/epiphany.h: Likewise.
15844 * config/frv/frv.h: Likewise.
15845 * config/ia64/ia64.h: Likewise.
15846 * config/iq2000/iq2000.h: Likewise.
15847 * config/lm32/lm32.h: Likewise.
15848 * config/m32r/m32r.h: Likewise.
15849 * config/mcore/mcore.h: Likewise.
15850 * config/mep/mep.h: Likewise.
15851 * config/microblaze/microblaze.h: Likewise.
15852 * config/mips/mips.h: Likewise.
15853 * config/mmix/mmix.h: Likewise.
15854 * config/mn10300/mn10300.h: Likewise.
15855 * config/nds32/nds32.h: Likewise.
15856 * config/nios2/nios2.h: Likewise.
15857 * config/pa/pa.h: Likewise.
15858 * config/rl78/rl78.h: Likewise.
15859 * config/sh/sh.h: Likewise.
15860 * config/sparc/sparc.h: Likewise.
15861 * config/stormy16/stormy16.h: Likewise.
15862 * config/tilegx/tilegx.h: Likewise.
15863 * config/tilepro/tilepro.h: Likewise.
15864 * config/v850/v850.h: Likewise.
15865 * config/xtensa/xtensa.h: Likewise.
15866 * doc/tm.texi: Regenerate.
15867 * doc/tm.texi.in: Adjust.
15868 * combine.c (simplify_set): Likewise.
15869 (simplify_comparison): Likewise.
15870 * expr.c (store_constructor): Likewise.
15871 * internal-fn.c (expand_arith_overflow): Likewise.
15872 * reload.c (push_reload): Likewise.
15873 (find_reloads): Likewise.
15874 (find_reloads_subreg_address): Likewise.
15875 * reload1.c (eliminate_regs_1): Likewise.
15876 * rtlanal.c (nonzero_bits1): Likewise.
15877 (num_sign_bit_copies1): Likewise.
15878 * simplify-rtx.c (simplify_truncation): Likewise.
15879
15880 2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15881
15882 * auto-inc-dec.c (pass_inc_dec::execute): Don't check the value
15883 of AUTO_INC_DEC with the preprocessor.
15884 * combine.c (combine_instructions): Likewise.
15885 (can_combine_p): Likewise.
15886 (try_combine): Likewise.
15887 * emit-rtl.c (try_split): Likewise.
15888 * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
15889 * lower-subreg.c (resolve_simple_move): Likewise.
15890 * lra.c (update_inc_notes): Likewise.
15891 * recog.c (asm_operand_ok): Likewise.
15892 (constrain_operands): Likewise.
15893 * regrename.c (scan_rtx_address): Likewise.
15894 * reload.c (update_auto_inc_notes): Likewise.
15895 (reg_inc_found_and_valid_p): Likewise.
15896 * reload1.c (reload): Likewise.
15897 (emit_input_reload_insns): Likewise.
15898 (delete_output_reload): Likewise.
15899 * sched-deps.c (init_insn_reg_pressure_info): Likewise.
15900 * valtrack.c (cleanup_auto_inc_dec): Likewise.
15901
15902 2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15903
15904 * rtl.h: Always define AUTO_INC_DEC.
15905 * auto-inc-dec.c (pass_inc_dec::execute): Adjust.
15906 * combine.c (combine_instructions): Likewise.
15907 (can_combine_p): Likewise.
15908 (try_combine): Likewise.
15909 * emit-rtl.c (try_split): Likewise.
15910 * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
15911 * lower-subreg.c (resolve_simple_move): Likewise.
15912 * lra.c (update_inc_notes): Likewise.
15913 * recog.c (asm_operand_ok): Likewise.
15914 (constrain_operands): Likewise.
15915 * regrename.c (scan_rtx_address): Likewise.
15916 * reload.c (update_auto_inc_notes): Likewise.
15917 (find_equiv_reg): Likewise.
15918 * reload1.c (reload): Likewise.
15919 (reload_as_needed): Likewise.
15920 (choose_reload_regs): Likewise.
15921 (emit_input_reload_insns): Likewise.
15922 (delete_output_reload): Likewise.
15923 * sched-deps.c (init_insn_reg_pressure_info): Likewise.
15924 * valtrack.c (cleanup_auto_inc_dec): Likewise.
15925
15926 2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15927
15928 * combine.c (can_combine_def_p): Don't check the value of
15929 HARD_FRAME_POINTER_IS_FRAME_POINTER with the preprocessor.
15930 (combinable_i3pat): Likewise.
15931 (mark_used_regs_combine): Likewise.
15932 * regrename.c (rename_chains): Likewise.
15933 * reload.c (find_reloads_address): Likewise.
15934 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
15935
15936 2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15937
15938 * combine.c (update_rsp_from_reg_equal): Don't check if
15939 SHORT_IMMEDIATES_SIGN_EXTEND is defined.
15940 (reg_nonzero_bits_for_combine): Likewise.
15941 * config/alpha/alpha.h: Define SHORT_IMMEDIATES_SIGN_EXTEND to
15942 1.
15943 * config/frv/frv.h: Likewise.
15944 * config/lm32/lm32.h: Likewise.
15945 * config/mep/mep.h: Likewise.
15946 * config/mips/mips.h: Likewise.
15947 * config/rs6000/rs6000.h: Likewise.
15948 * config/sh/sh.h: Likewise.
15949 * config/tilegx/tilegx.h (enum reg_class): Likewise.
15950 * config/tilepro/tilepro.h: Likewise.
15951 * defaults.h: Add default for SHORT_IMMEDIATES_SIGN_EXTEND.
15952 * doc/tm.texi: Regenerate.
15953 * doc/tm.texi.in: Adjust.
15954 * rtlanal.c (nonzero_bits1): Likewise.
15955
15956 2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15957
15958 * combine.c (do_SUBST_MODE): Don't check the value of HAVE_cc0
15959 with the preprocessor.
15960 (combine_instructions): Likewise.
15961 (try_combine): Likewise.
15962 (subst): Likewise.
15963 (distribute_notes): Likewise.
15964
15965 2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
15966
15967 * combine.c (try_combine): Don't check if LOAD_EXTEND_OP is
15968 defined.
15969 (simplify_set): Likewise.
15970 * cse.c (cse_insn): Likewise.
15971 * fold-const.c (fold_single_bit_test): Likewise.
15972 (fold_unary_loc): Likewise.
15973 * postreload.c (reload_cse_simplify_set): Likewise.
15974 (reload_cse_simplify_operands): Likewise.
15975
15976 2015-07-08 Jiong Wang <jiong.wang@arm.com>
15977
15978 * config/aarch64/aarch64.c (aarch64_unspec_may_trap_p): New function.
15979 (TARGET_UNSPEC_MAY_TRAP_P): Define as aarch64_unspec_may_trap_p.
15980
15981 2015-07-08 H.J. Lu <hongjiu.lu@intel.com>
15982
15983 PR target/66746
15984 * config/i386/x86intrin.h: Include <adxintrin.h> even if
15985 __iamcu__ is defined.
15986
15987 2015-07-08 Uros Bizjak <ubizjak@gmail.com>
15988
15989 * config/i386/predicates.md (general_reg_operand): Use GENERAL_REGNO_P.
15990
15991 2015-07-08 Iain Sandoe <iain@codesourcery.com>
15992
15993 PR target/66523
15994 * config/darwin.c (darwin_mark_decl_preserved): Exclude 'L' label
15995 names from preservation.
15996
15997 2015-07-08 H.J. Lu <hongjiu.lu@intel.com>
15998
15999 PR target/66806
16000 * config/i386/i386.c (type_natural_mode): Don't warn vector ABI
16001 change for IAMCU.
16002 (function_arg_advance_32): Don't pass vectors in registers for
16003 IAMCU.
16004 (function_arg_32): Likewise.
16005 (ix86_return_in_memory): Don't return vectors in registers for
16006 IAMCU.
16007
16008 2015-07-08 Vladimir Makarov <vmakarov@redhat.com>
16009
16010 PR middle-end/66334
16011 * ira-lives.c (process_bb_node_lives): Make conflicts with PIC
16012 hard regno live at the start of BB with incoming abnormal edges.
16013 * lra-lives.c (process_bb_lives): Ditto.
16014
16015 2015-07-08 Thomas Schwinge <thomas@codesourcery.com>
16016
16017 PR libgomp/65099
16018 * config/nvptx/mkoffload.c (main): Create an offload image only in
16019 64-bit configurations.
16020
16021 2015-07-08 Martin Liska <mliska@suse.cz>
16022
16023 PR bootstrap/66744
16024 * tree-sra.c (create_access_1): Call ctor without brackets.
16025 (create_artificial_child_access): Likewise.
16026
16027 2015-07-08 Richard Biener <rguenther@suse.de>
16028
16029 PR tree-optimization/66793
16030 * gimple-ssa-isolate-paths.c (insert_trap_and_remove_trailing_statemen):
16031 Properly split the block after stmts ending it.
16032
16033 2015-07-08 Richard Biener <rguenther@suse.de>
16034
16035 PR tree-optimization/66794
16036 * passes.c (execute_function_todo): Assert that post-dominators
16037 are not computed.
16038 * gimple-ssa-isolate-paths.c (gimple_ssa_isolate_erroneous_paths):
16039 Free post-dominators.
16040
16041 2015-07-08 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16042
16043 * config/s390/s390.c (s390_init_frame_layout): Replace assertion
16044 with early exit.
16045
16046 2015-07-08 Uros Bizjak <ubizjak@gmail.com>
16047
16048 * config/i386/i386.md (*jcc_bt<mode>): Only allow const_int values
16049 more than or equal 8 and less than 32 when optimizing for size.
16050
16051 2015-07-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16052
16053 * config/arm/arm.c (arm_new_rtx_costs): Initialise cost to
16054 COSTS_N_INSNS (1) and increment it appropriately throughout the
16055 function.
16056
16057 2015-07-08 Richard Biener <rguenther@suse.de>
16058
16059 * fold-const.c (fold_widened_comparison): Fix inverted comparison.
16060
16061 2015-07-08 Alan Modra <amodra@gmail.com>
16062
16063 * target.def (rtx_costs): Remove "code" param, add "mode".
16064 * rtl.h (rtx_cost, get_full_rtx_cost): Update prototype.
16065 (set_src_cost, get_full_set_src_cost): Likewise. Move later in file.
16066 (set_rtx_cost, get_full_set_rtx_cost): Move later in file.
16067 * rtlanal.c (rtx_cost): Add "mode" parameter. Update targetm.rtx_costs
16068 call. Track mode when given in rtx.
16069 (get_full_rtx_cost): Add "mode" parameter. Update rtx_cost calls.
16070 (default_address_cost): Pass Pmode to rtx_cost.
16071 (insn_rtx_cost): Pass dest mode of set to set_src_cost.
16072 * cprop.c (try_replace_reg): Ensure set_rtx_cost is not called
16073 with NULL set.
16074 * cse.c (COST, COST_IN): Add MODE param. Update all uses.
16075 (notreg_cost): Add mode param. Use it.
16076 * gcse.c (want_to_gcse_p): Delete forward declaration. Add
16077 mode param and pass to set_src_cost. Update all calls.
16078 (hash_scan_set): Formatting.
16079 * hooks.c (hook_bool_rtx_int_int_int_intp_bool_false): Delete.
16080 (hook_bool_rtx_mode_int_int_intp_bool_false): New function.
16081 * hooks.h: Ditto.
16082 * expmed.c (init_expmed_one_conv, init_expmed_one_mode,
16083 init_expmed, expand_mult, mult_by_coeff_cost, expand_smod_pow2,
16084 emit_store_flag): Update set_src_cost and rtx_cost calls.
16085 * auto-inc-dec.c (attempt_change): Likewise.
16086 * calls.c (precompute_register_parameters): Likewise.
16087 * combine.c (expand_compound_operation, make_extraction,
16088 force_to_mode, distribute_and_simplify_rtx): Likewise.
16089 * dojump.c (prefer_and_bit_test): Likewise.
16090 * dse.c (find_shift_sequence): Likewise.
16091 * expr.c (compress_float_constant): Likewise.
16092 * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
16093 * ifcvt.c (noce_try_sign_mask): Likewise.
16094 * loop-doloop.c (doloop_optimize): Likewise.
16095 * loop-invariant.c (create_new_invariant): Likewise.
16096 * lower-subreg.c (shift_cost, compute_costs): Likewise.
16097 * optabs.c (avoid_expensive_constant, prepare_cmp_insn,
16098 lshift_cheap_p): Likewise.
16099 * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
16100 try_replace_in_use, reload_cse_move2add): Likewise.
16101 * reload1.c (calculate_elim_costs_all_insns, note_reg_elim_costly):
16102 Likewise.
16103 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
16104 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
16105 * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Likewise.
16106 * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
16107 * config/aarch64/aarch64.c (aarch64_rtx_costs): Delete "code" param,
16108 add "mode" param. Use "mode: in place of GET_MODE (x). Pass mode
16109 to rtx_cost calls.
16110 * config/alpha/alpha.c (alpha_rtx_costs): Likewise.
16111 * config/arc/arc.c (arc_rtx_costs): Likewise.
16112 * config/arm/arm.c (arm_rtx_costs): Likewise.
16113 * config/avr/avr.c (avr_rtx_costs, avr_rtx_costs_1): Likewise.
16114 * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
16115 * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
16116 * config/cris/cris.c (cris_rtx_costs): Likewise.
16117 * config/epiphany/epiphany.c (epiphany_rtx_costs): Likewise.
16118 * config/frv/frv.c (frv_rtx_costs): Likewise.
16119 * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
16120 * config/i386/i386.c (ix86_rtx_costs): Likewise.
16121 * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
16122 * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
16123 * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
16124 * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
16125 * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
16126 * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
16127 * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
16128 * config/mep/mep.c (mep_rtx_cost): Likewise.
16129 * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
16130 * config/mips/mips.c (mips_rtx_costs): Likewise.
16131 * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
16132 * config/mn10300/mn10300.c (mn10300_rtx_costs): Likewise.
16133 * config/msp430/msp430.c (msp430_rtx_costs): Likewise.
16134 * config/nds32/nds32-cost.c (nds32_rtx_costs_impl): Likewise.
16135 * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Likewise.
16136 * config/nds32/nds32.c (nds32_rtx_costs): Likewise.
16137 * config/nios2/nios2.c (nios2_rtx_costs): Likewise.
16138 * config/pa/pa.c (hppa_rtx_costs): Likewise.
16139 * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
16140 * config/rl78/rl78.c (rl78_rtx_costs): Likewise.
16141 * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
16142 * config/s390/s390.c (s390_rtx_costs): Likewise.
16143 * config/sh/sh.c (sh_rtx_costs): Likewise.
16144 * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
16145 * config/spu/spu.c (spu_rtx_costs): Likewise.
16146 * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
16147 * config/tilegx/tilegx.c (tilegx_rtx_costs): Likewise.
16148 * config/tilepro/tilepro.c (tilepro_rtx_costs): Likewise.
16149 * config/v850/v850.c (v850_rtx_costs): Likewise.
16150 * config/vax/vax.c (vax_rtx_costs): Likewise.
16151 * config/visium/visium.c (visium_rtx_costs): Likewise.
16152 * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
16153 * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Change type of
16154 "code" param, and pass as outer_code to first rtx_cost call. Pass
16155 mode to rtx_cost calls.
16156 (aarch64_address_cost, aarch64_if_then_else_costs): Update rtx_cost
16157 calls.
16158 (aarch64_rtx_costs_wrapper): Update.
16159 * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs,
16160 arm_unspec_cost, arm_new_rtx_costs, arm_slowmul_rtx_costs): Update
16161 rtx_cost calls.
16162 * config/avr/avr.c (avr_final_prescan_insn): Update set_src_cost
16163 and rtx_cost calls.
16164 (avr_operand_rtx_cost): Similarly.
16165 (avr_rtx_costs_1): Correct mode passed to avr_operand_rtx_cost
16166 for subexpressions of ZERO_EXTEND, SIGN_EXTEND and COMPARE.
16167 * config/mips/mips.c (mips_stack_address_p): Comment typo.
16168 (mips_binary_cost): Update rtx_cost and set_src_cost calls.
16169 (mips_rtx_costs): Use GET_MODE (x) to detect const_int.
16170 * config/mn10300/mn10300.c (mn10300_address_cost): Pass Pmode to
16171 rtx_cost.
16172 (mn10300_rtx_costs): Correct mode passed to mn10300_address_cost.
16173 * config/rs6000/rs6000.c (rs6000_debug_rtx_costs): Update.
16174 * config/sh/sh.c (and_xor_ior_costs): Update rtx_cost call.
16175 * doc/tm.texi: Regenerate.
16176
16177 2015-07-07 Andrew MacLeod <amacleod@redhat.com>
16178
16179 * tree-core.h: Include symtab.h.
16180 * rtl.h: Include hard-reg-set.h but not flags.h.
16181 (HARD_CONST): Remove condition compilation involving HARD_CONST since
16182 hard-reg-set.h is always included.
16183 * regs.h: Don't include hard-reg-set.h or rtl.h.
16184 * cfg.h: Include dominance.h.
16185 * gimple.h: Include tree-ssa-alias.h and gimple-expr.h.
16186 * backend.h: New. Aggregate commonly used backend header files.
16187 * gimple-ssa.h: Don't include tree-hasher.h.
16188 * ssa.h: New. Aggregate commonly used SSA header files.
16189 * regset.h: Remove bitmap.h and hard-reg-set.h #includes.
16190 * sel-sched-ir.h: Flatten includes.
16191 * lra-int.h: Flatten completely.
16192 * sel-sched-dump.h: Flatten includes.
16193 * ira-int.h: Flatten includes.
16194 * gimple-streamer.h: Remove all includes.
16195 * cfgloop.h: Remove all #includes except cfgloopmanip.h.
16196 * resource.h: Flatten hard-reg-set.h and df.h.
16197 * sched-int.h: Flatten insn-arrt.h and df.h.
16198 * valtrack.h: flatten bitmap.h, df.h, and rtl.h
16199 * df.h: Flatten includes, leaving regset.h, alloc-pool.h and timevar.h.
16200 * genattrtab.c (write_header): Adjust generated includes.
16201 * genautomata.c (main): Likewise.
16202 * genconditions.c (write-header): Likewise.
16203 * genemit.c (main): Likewise.
16204 * gengtype.c (open_base_files): Likewise.
16205 * genopinit.c (main): Likewise.
16206 * genoutput.c (output_prologue): Likewise.
16207 * genpeep.c (main): Likewise.
16208 * genpreds.c (write_insn_preds_c): Likewise.
16209 * genrecog.c (write_header): Likewise.
16210 * alias.c: Adjust includes.
16211 * asan.c: Likewise.
16212 * attribs.c: Likewise.
16213 * auto-inc-dec.c: Likewise.
16214 * auto-profile.c: Likewise.
16215 * bb-reorder.c: Likewise.
16216 * bt-load.c: Likewise.
16217 * builtins.c: Likewise.
16218 * caller-save.c: Likewise.
16219 * calls.c: Likewise.
16220 * ccmp.c: Likewise.
16221 * cfg.c: Likewise.
16222 * cfganal.c: Likewise.
16223 * cfgbuild.c: Likewise.
16224 * cfgcleanup.c: Likewise.
16225 * cfgexpand.c: Likewise.
16226 * cfghooks.c: Likewise.
16227 * cfgloop.c: Likewise.
16228 * cfgloopanal.c: Likewise.
16229 * cfgloopmanip.c: Likewise.
16230 * cfgrtl.c: Likewise.
16231 * cgraph.c: Likewise.
16232 * cgraphbuild.c: Likewise.
16233 * cgraphclones.c: Likewise.
16234 * cgraphunit.c: Likewise.
16235 * cilk-common.c: Likewise.
16236 * combine-stack-adj.c: Likewise.
16237 * combine.c: Likewise.
16238 * compare-elim.c: Likewise.
16239 * convert.c: Likewise.
16240 * coverage.c: Likewise.
16241 * cppbuiltin.c: Likewise.
16242 * cprop.c: Likewise.
16243 * cse.c: Likewise.
16244 * cselib.c: Likewise.
16245 * data-streamer-in.c: Likewise.
16246 * data-streamer-out.c: Likewise.
16247 * data-streamer.c: Likewise.
16248 * dbxout.c: Likewise.
16249 * dce.c: Likewise.
16250 * ddg.c: Likewise.
16251 * debug.c: Likewise.
16252 * df-core.c: Likewise.
16253 * df-problems.c: Likewise.
16254 * df-scan.c: Likewise.
16255 * dfp.c: Likewise.
16256 * dojump.c: Likewise.
16257 * dominance.c: Likewise.
16258 * domwalk.c: Likewise.
16259 * double-int.c: Likewise.
16260 * dse.c: Likewise.
16261 * dumpfile.c: Likewise.
16262 * dwarf2asm.c: Likewise.
16263 * dwarf2cfi.c: Likewise.
16264 * dwarf2out.c: Likewise.
16265 * emit-rtl.c: Likewise.
16266 * et-forest.c: Likewise.
16267 * except.c: Likewise.
16268 * explow.c: Likewise.
16269 * expmed.c: Likewise.
16270 * expr.c: Likewise.
16271 * final.c: Likewise.
16272 * fixed-value.c: Likewise.
16273 * fold-const.c: Likewise.
16274 * function.c: Likewise.
16275 * fwprop.c: Likewise.
16276 * gcc-plugin.h: Likewise.
16277 * gcse-common.c: Likewise.
16278 * gcse.c: Likewise.
16279 * generic-match-head.c: Likewise.
16280 * ggc-page.c: Likewise.
16281 * gimple-builder.c: Likewise.
16282 * gimple-expr.c: Likewise.
16283 * gimple-fold.c: Likewise.
16284 * gimple-iterator.c: Likewise.
16285 * gimple-low.c: Likewise.
16286 * gimple-match-head.c: Likewise.
16287 * gimple-pretty-print.c: Likewise.
16288 * gimple-ssa-isolate-paths.c: Likewise.
16289 * gimple-ssa-strength-reduction.c: Likewise.
16290 * gimple-streamer-in.c: Likewise.
16291 * gimple-streamer-out.c: Likewise.
16292 * gimple-walk.c: Likewise.
16293 * gimple.c: Likewise.
16294 * gimplify-me.c: Likewise.
16295 * gimplify.c: Likewise.
16296 * godump.c: Likewise.
16297 * graph.c: Likewise.
16298 * graphite-blocking.c: Likewise.
16299 * graphite-dependences.c: Likewise.
16300 * graphite-interchange.c: Likewise.
16301 * graphite-isl-ast-to-gimple.c: Likewise.
16302 * graphite-optimize-isl.c: Likewise.
16303 * graphite-poly.c: Likewise.
16304 * graphite-scop-detection.c: Likewise.
16305 * graphite-sese-to-poly.c: Likewise.
16306 * graphite.c: Likewise.
16307 * haifa-sched.c: Likewise.
16308 * hw-doloop.c: Likewise.
16309 * ifcvt.c: Likewise.
16310 * init-regs.c: Likewise.
16311 * internal-fn.c: Likewise.
16312 * ipa-chkp.c: Likewise.
16313 * ipa-comdats.c: Likewise.
16314 * ipa-cp.c: Likewise.
16315 * ipa-devirt.c: Likewise.
16316 * ipa-icf-gimple.c: Likewise.
16317 * ipa-icf.c: Likewise.
16318 * ipa-inline-analysis.c: Likewise.
16319 * ipa-inline-transform.c: Likewise.
16320 * ipa-inline.c: Likewise.
16321 * ipa-polymorphic-call.c: Likewise.
16322 * ipa-profile.c: Likewise.
16323 * ipa-prop.c: Likewise.
16324 * ipa-pure-const.c: Likewise.
16325 * ipa-ref.c: Likewise.
16326 * ipa-reference.c: Likewise.
16327 * ipa-split.c: Likewise.
16328 * ipa-utils.c: Likewise.
16329 * ipa-visibility.c: Likewise.
16330 * ipa.c: Likewise.
16331 * ira-build.c: Likewise.
16332 * ira-color.c: Likewise.
16333 * ira-conflicts.c: Likewise.
16334 * ira-costs.c: Likewise.
16335 * ira-emit.c: Likewise.
16336 * ira-lives.c: Likewise.
16337 * ira.c: Likewise.
16338 * jump.c: Likewise.
16339 * langhooks.c: Likewise.
16340 * lcm.c: Likewise.
16341 * loop-doloop.c: Likewise.
16342 * loop-init.c: Likewise.
16343 * loop-invariant.c: Likewise.
16344 * loop-iv.c: Likewise.
16345 * loop-unroll.c: Likewise.
16346 * lower-subreg.c: Likewise.
16347 * lra-assigns.c: Likewise.
16348 * lra-coalesce.c: Likewise.
16349 * lra-constraints.c: Likewise.
16350 * lra-eliminations.c: Likewise.
16351 * lra-lives.c: Likewise.
16352 * lra-remat.c: Likewise.
16353 * lra-spills.c: Likewise.
16354 * lra.c: Likewise.
16355 * lto-cgraph.c: Likewise.
16356 * lto-compress.c: Likewise.
16357 * lto-opts.c: Likewise.
16358 * lto-section-in.c: Likewise.
16359 * lto-section-out.c: Likewise.
16360 * lto-streamer-in.c: Likewise.
16361 * lto-streamer-out.c: Likewise.
16362 * lto-streamer.c: Likewise.
16363 * mcf.c: Likewise.
16364 * mode-switching.c: Likewise.
16365 * modulo-sched.c: Likewise.
16366 * omega.c: Likewise.
16367 * omp-low.c: Likewise.
16368 * optabs.c: Likewise.
16369 * opts-global.c: Likewise.
16370 * passes.c: Likewise.
16371 * plugin.c: Likewise.
16372 * postreload-gcse.c: Likewise.
16373 * postreload.c: Likewise.
16374 * predict.c: Likewise.
16375 * print-rtl.c: Likewise.
16376 * print-tree.c: Likewise.
16377 * profile.c: Likewise.
16378 * real.c: Likewise.
16379 * realmpfr.c: Likewise.
16380 * recog.c: Likewise.
16381 * ree.c: Likewise.
16382 * reg-stack.c: Likewise.
16383 * regcprop.c: Likewise.
16384 * reginfo.c: Likewise.
16385 * regrename.c: Likewise.
16386 * regstat.c: Likewise.
16387 * reload.c: Likewise.
16388 * reload1.c: Likewise.
16389 * reorg.c: Likewise.
16390 * resource.c: Likewise.
16391 * rtl-chkp.c: Likewise.
16392 * rtlanal.c: Likewise.
16393 * rtlhooks.c: Likewise.
16394 * sanopt.c: Likewise.
16395 * sched-deps.c: Likewise.
16396 * sched-ebb.c: Likewise.
16397 * sched-rgn.c: Likewise.
16398 * sched-vis.c: Likewise.
16399 * sdbout.c: Likewise.
16400 * sel-sched-dump.c: Likewise.
16401 * sel-sched-ir.c: Likewise.
16402 * sel-sched.c: Likewise.
16403 * sese.c: Likewise.
16404 * shrink-wrap.c: Likewise.
16405 * simplify-rtx.c: Likewise.
16406 * stack-ptr-mod.c: Likewise.
16407 * stmt.c: Likewise.
16408 * stor-layout.c: Likewise.
16409 * store-motion.c: Likewise.
16410 * stringpool.c: Likewise.
16411 * symtab.c: Likewise.
16412 * target-globals.c: Likewise.
16413 * targhooks.c: Likewise.
16414 * toplev.c: Likewise.
16415 * tracer.c: Likewise.
16416 * trans-mem.c: Likewise.
16417 * tree-affine.c: Likewise.
16418 * tree-browser.c: Likewise.
16419 * tree-call-cdce.c: Likewise.
16420 * tree-cfg.c: Likewise.
16421 * tree-cfgcleanup.c: Likewise.
16422 * tree-chkp-opt.c: Likewise.
16423 * tree-chkp.c: Likewise.
16424 * tree-chrec.c: Likewise.
16425 * tree-complex.c: Likewise.
16426 * tree-data-ref.c: Likewise.
16427 * tree-dfa.c: Likewise.
16428 * tree-diagnostic.c: Likewise.
16429 * tree-dump.c: Likewise.
16430 * tree-eh.c: Likewise.
16431 * tree-emutls.c: Likewise.
16432 * tree-if-conv.c: Likewise.
16433 * tree-inline.c: Likewise.
16434 * tree-into-ssa.c: Likewise.
16435 * tree-iterator.c: Likewise.
16436 * tree-loop-distribution.c: Likewise.
16437 * tree-nested.c: Likewise.
16438 * tree-nrv.c: Likewise.
16439 * tree-object-size.c: Likewise.
16440 * tree-outof-ssa.c: Likewise.
16441 * tree-parloops.c: Likewise.
16442 * tree-phinodes.c: Likewise.
16443 * tree-predcom.c: Likewise.
16444 * tree-pretty-print.c: Likewise.
16445 * tree-profile.c: Likewise.
16446 * tree-scalar-evolution.c: Likewise.
16447 * tree-sra.c: Likewise.
16448 * tree-ssa-address.c: Likewise.
16449 * tree-ssa-alias.c: Likewise.
16450 * tree-ssa-ccp.c: Likewise.
16451 * tree-ssa-coalesce.c: Likewise.
16452 * tree-ssa-copy.c: Likewise.
16453 * tree-ssa-copyrename.c: Likewise.
16454 * tree-ssa-dce.c: Likewise.
16455 * tree-ssa-dom.c: Likewise.
16456 * tree-ssa-dse.c: Likewise.
16457 * tree-ssa-forwprop.c: Likewise.
16458 * tree-ssa-ifcombine.c: Likewise.
16459 * tree-ssa-live.c: Likewise.
16460 * tree-ssa-loop-ch.c: Likewise.
16461 * tree-ssa-loop-im.c: Likewise.
16462 * tree-ssa-loop-ivcanon.c: Likewise.
16463 * tree-ssa-loop-ivopts.c: Likewise.
16464 * tree-ssa-loop-manip.c: Likewise.
16465 * tree-ssa-loop-niter.c: Likewise.
16466 * tree-ssa-loop-prefetch.c: Likewise.
16467 * tree-ssa-loop-unswitch.c: Likewise.
16468 * tree-ssa-loop.c: Likewise.
16469 * tree-ssa-math-opts.c: Likewise.
16470 * tree-ssa-operands.c: Likewise.
16471 * tree-ssa-phiopt.c: Likewise.
16472 * tree-ssa-phiprop.c: Likewise.
16473 * tree-ssa-pre.c: Likewise.
16474 * tree-ssa-propagate.c: Likewise.
16475 * tree-ssa-reassoc.c: Likewise.
16476 * tree-ssa-sccvn.c: Likewise.
16477 * tree-ssa-scopedtables.c: Likewise.
16478 * tree-ssa-sink.c: Likewise.
16479 * tree-ssa-strlen.c: Likewise.
16480 * tree-ssa-structalias.c: Likewise.
16481 * tree-ssa-tail-merge.c: Likewise.
16482 * tree-ssa-ter.c: Likewise.
16483 * tree-ssa-threadedge.c: Likewise.
16484 * tree-ssa-threadupdate.c: Likewise.
16485 * tree-ssa-uncprop.c: Likewise.
16486 * tree-ssa-uninit.c: Likewise.
16487 * tree-ssa.c: Likewise.
16488 * tree-ssanames.c: Likewise.
16489 * tree-stdarg.c: Likewise.
16490 * tree-streamer-in.c: Likewise.
16491 * tree-streamer-out.c: Likewise.
16492 * tree-streamer.c: Likewise.
16493 * tree-switch-conversion.c: Likewise.
16494 * tree-tailcall.c: Likewise.
16495 * tree-vect-data-refs.c: Likewise.
16496 * tree-vect-generic.c: Likewise.
16497 * tree-vect-loop-manip.c: Likewise.
16498 * tree-vect-loop.c: Likewise.
16499 * tree-vect-patterns.c: Likewise.
16500 * tree-vect-slp.c: Likewise.
16501 * tree-vect-stmts.c: Likewise.
16502 * tree-vectorizer.c: Likewise.
16503 * tree-vrp.c: Likewise.
16504 * tree.c: Likewise.
16505 * tsan.c: Likewise.
16506 * ubsan.c: Likewise.
16507 * valtrack.c: Likewise.
16508 * value-prof.c: Likewise.
16509 * var-tracking.c: Likewise.
16510 * varasm.c: Likewise.
16511 * varpool.c: Likewise.
16512 * vmsdbgout.c: Likewise.
16513 * vtable-verify.c: Likewise.
16514 * web.c: Likewise.
16515 * wide-int.cc: Likewise.
16516 * xcoffout.c: Likewise.
16517 * config/aarch64/aarch64-builtins.c: Likewise.
16518 * config/aarch64/aarch64.c: Likewise.
16519 * config/aarch64/cortex-a57-fma-steering.c: Likewise.
16520 * config/alpha/alpha.c: Likewise.
16521 * config/arc/arc.c: Likewise.
16522 * config/arm/aarch-common.c: Likewise.
16523 * config/arm/arm-builtins.c: Likewise.
16524 * config/arm/arm-c.c: Likewise.
16525 * config/arm/arm.c: Likewise.
16526 * config/avr/avr-c.c: Likewise.
16527 * config/avr/avr-log.c: Likewise.
16528 * config/avr/avr.c: Likewise.
16529 * config/bfin/bfin.c: Likewise.
16530 * config/c6x/c6x.c: Likewise.
16531 * config/cr16/cr16.c: Likewise.
16532 * config/cris/cris.c: Likewise.
16533 * config/darwin-c.c: Likewise.
16534 * config/darwin.c: Likewise.
16535 * config/epiphany/epiphany.c: Likewise.
16536 * config/epiphany/mode-switch-use.c: Likewise.
16537 * config/epiphany/resolve-sw-modes.c: Likewise.
16538 * config/fr30/fr30.c: Likewise.
16539 * config/frv/frv.c: Likewise.
16540 * config/ft32/ft32.c: Likewise.
16541 * config/h8300/h8300.c: Likewise.
16542 * config/i386/i386-c.c: Likewise.
16543 * config/i386/i386.c: Likewise.
16544 * config/i386/msformat-c.c: Likewise.
16545 * config/i386/winnt-cxx.c: Likewise.
16546 * config/i386/winnt-stubs.c: Likewise.
16547 * config/i386/winnt.c: Likewise.
16548 * config/ia64/ia64-c.c: Likewise.
16549 * config/ia64/ia64.c: Likewise.
16550 * config/iq2000/iq2000.c: Likewise.
16551 * config/lm32/lm32.c: Likewise.
16552 * config/m32c/m32c-pragma.c: Likewise.
16553 * config/m32c/m32c.c: Likewise.
16554 * config/m32r/m32r.c: Likewise.
16555 * config/m68k/m68k.c: Likewise.
16556 * config/mcore/mcore.c: Likewise.
16557 * config/mep/mep-pragma.c: Likewise.
16558 * config/mep/mep.c: Likewise.
16559 * config/microblaze/microblaze-c.c: Likewise.
16560 * config/microblaze/microblaze.c: Likewise.
16561 * config/mips/mips.c: Likewise.
16562 * config/mmix/mmix.c: Likewise.
16563 * config/mn10300/mn10300.c: Likewise.
16564 * config/moxie/moxie.c: Likewise.
16565 * config/msp430/msp430-c.c: Likewise.
16566 * config/msp430/msp430.c: Likewise.
16567 * config/nds32/nds32-cost.c: Likewise.
16568 * config/nds32/nds32-fp-as-gp.c: Likewise.
16569 * config/nds32/nds32-intrinsic.c: Likewise.
16570 * config/nds32/nds32-isr.c: Likewise.
16571 * config/nds32/nds32-md-auxiliary.c: Likewise.
16572 * config/nds32/nds32-memory-manipulation.c: Likewise.
16573 * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
16574 * config/nds32/nds32-predicates.c: Likewise.
16575 * config/nds32/nds32.c: Likewise.
16576 * config/nios2/nios2.c: Likewise.
16577 * config/nvptx/nvptx.c: Likewise.
16578 * config/pa/pa.c: Likewise.
16579 * config/pdp11/pdp11.c: Likewise.
16580 * config/rl78/rl78-c.c: Likewise.
16581 * config/rl78/rl78.c: Likewise.
16582 * config/rs6000/rs6000-c.c: Likewise.
16583 * config/rs6000/rs6000.c: Likewise.
16584 * config/rx/rx.c: Likewise.
16585 * config/s390/s390-c.c: Likewise.
16586 * config/s390/s390.c: Likewise.
16587 * config/sh/sh-c.c: Likewise.
16588 * config/sh/sh-mem.cc: Likewise.
16589 * config/sh/sh.c: Likewise.
16590 * config/sh/sh_optimize_sett_clrt.cc: Likewise.
16591 * config/sh/sh_treg_combine.cc: Likewise.
16592 * config/sol2-c.c: Likewise.
16593 * config/sol2-cxx.c: Likewise.
16594 * config/sol2-stubs.c: Likewise.
16595 * config/sol2.c: Likewise.
16596 * config/sparc/sparc-c.c: Likewise.
16597 * config/sparc/sparc.c: Likewise.
16598 * config/spu/spu-c.c: Likewise.
16599 * config/spu/spu.c: Likewise.
16600 * config/stormy16/stormy16.c: Likewise.
16601 * config/tilegx/mul-tables.c: Likewise.
16602 * config/tilegx/tilegx-c.c: Likewise.
16603 * config/tilegx/tilegx.c: Likewise.
16604 * config/tilepro/mul-tables.c: Likewise.
16605 * config/tilepro/tilepro-c.c: Likewise.
16606 * config/tilepro/tilepro.c: Likewise.
16607 * config/v850/v850-c.c: Likewise.
16608 * config/v850/v850.c: Likewise.
16609 * config/vax/vax.c: Likewise.
16610 * config/visium/visium.c: Likewise.
16611 * config/vms/vms-c.c: Likewise.
16612 * config/vms/vms.c: Likewise.
16613 * config/vxworks.c: Likewise.
16614 * config/xtensa/xtensa.c: Likewise.
16615
16616 2015-07-07 Uros Bizjak <ubizjak@gmail.com>
16617
16618 * config/i386/i386.md (*jcc_bt<mode>): Only split before reload.
16619 Remove operand constraints. Change operand 2 predicate to
16620 nonmemory operand. Limit const_int values to mode bitsize. Only
16621 allow const_int values less than 32 when optimizing for size.
16622 (*jcc_bt<mode>_1, *jcc_bt<mode>_mask): Only split before reload.
16623 Remove operand constraints.
16624 (*bt<mode>): Use SImode for const_int values less than 32.
16625 (regmode): Remove mode attribute.
16626
16627 2015-07-07 Anatoly Sokolov <aesok@post.ru>
16628
16629 * config/moxie/moxie.h (GO_IF_LEGITIMATE_ADDRESS): Remove macros.
16630 * config/moxie/moxie.c (moxie_reg_ok_for_base_p,
16631 moxie_legitimate_address_p): New functions.
16632 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
16633
16634 2015-07-07 Tom de Vries <tom@codesourcery.com>
16635
16636 PR tree-optimization/66642
16637 * tree-parloops.c (transform_to_exit_first_loop_alt): Update function
16638 header comment. Rename split_edge variable to edge_at_split. Split
16639 exit edge to create new loop exit bb. Insert loop exit phis in new
16640 loop exit bb.
16641
16642 2015-07-07 Tom de Vries <tom@codesourcery.com>
16643
16644 * tree-cfg.c (get_virtual_phi): New function.
16645 * tree-cfg.h (get_virtual_phi): Declare.
16646 * tree-ssa-loop-manip.c (replace_uses_in_dominated_bbs)
16647 (rewrite_virtuals_into_loop_closed_ssa): New function.
16648 * tree-ssa-loop-manip.h (rewrite_virtuals_into_loop_closed_ssa):
16649 Declare.
16650 * tree-parloops.c (replace_uses_in_bbs_by): Remove.
16651 (transform_to_exit_first_loop_alt): Use
16652 rewrite_virtuals_into_loop_closed_ssa.
16653
16654 2015-07-07 Richard Biener <rguenther@suse.de>
16655
16656 * fold-const.c (fold_binary_loc): Move
16657 (X & C2) << C1 -> (X << C1) & (C2 << C1) simplification ...
16658 * match.pd: ... here.
16659 Add (X * C1) % C2 -> 0 simplification pattern derived from
16660 extract_muldiv_1.
16661
16662 2015-07-07 Kaz Kojima <kkojima@gcc.gnu.org>
16663
16664 PR target/66780
16665 * config/sh/sh.md (symGOT_load): Revert a part of 2015-03-03
16666 change for target/65249.
16667
16668 2015-07-07 Paulo Matos <pmatos@broadcom.com>
16669
16670 * symtab.c (address_matters_1): Fix typo in comment above.
16671 (can_increase_alignment_p): Likewise.
16672
16673 2015-07-07 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
16674
16675 * function.c (free_after_compilation): Clear PROP_cfg in
16676 f->curr_properties.
16677
16678 2015-07-07 Richard Biener <rguenther@suse.de>
16679
16680 * tree-ssa-propagate.c (add_ssa_edge): Dump what edge list we
16681 add which use to.
16682 (add_control_edge): Remove excessive vertical space in dumping.
16683 (process_ssa_edge_worklist): Simulate at most one statement and
16684 return whether we did. Do not simulate PHIs if they are in a
16685 BB not yet simulated.
16686 (ssa_propagate): Adjust to always drain the BB worklist whenever
16687 a BB is available there, likewise the VARYING edges list before
16688 the interesting edge list.
16689
16690 2015-07-07 Christian Bruel <christian.bruel@st.com>
16691
16692 PR target/52144
16693 * config/arm/elf.h (TARGET_ASM_FILE_START_APP_OFF): Delete.
16694
16695 2015-07-07 Richard Biener <rguenther@suse.de>
16696
16697 PR middle-end/66739
16698 * match.pd: Condition A - B ==/!= 0 -> A ==/!= B on single-use
16699 A - B.
16700
16701 2015-07-06 Uros Bizjak <ubizjak@gmail.com>
16702
16703 * config/i386/i386.md (insv<mode>): Rename from insv. Use SWI48
16704 modes for operands 0 and 3. Use SImode for operands 2 and 3.
16705 Copy operand 0 to a temporary if !ext_register_operand. Remove
16706 ancient extract_bit_field workaround.
16707 (insv<mode>_1): Rename from mov<mode>_insv_1.
16708 (*insvqi): Rename from *movqi_insv_2.
16709 * config/i386/i386.c (emit_i386_cw_initialization): Update calls
16710 for renamed insvsi_1.
16711 (promote_duplicated_reg): Ditto for renamed insv<mode>_1.
16712
16713 2015-07-06 Nathan Sidwell <nathan@codesourcery.com>
16714
16715 * config/nvptx/nvptx.c (nvptx_reorg): Remove unused vars. Fix
16716 call to nvptx_reorg_subreg.
16717
16718 2015-07-06 Jim Wilson <jim.wilson@linaro.org>
16719
16720 * graphite-blocking.c (HAVE_isl): Include <stddef.h>.
16721 * graphite-dependencies.c, graphite-interchange.c,
16722 graphite-isl-ast-to-gimple.c, graphite-optimize-isl.c, graphite-poly.c,
16723 graphite-scop-detection.c, graphite-sese-to-poly.c, graphite.c:
16724 Likewise.
16725
16726 2015-07-06 Marc Glisse <marc.glisse@inria.fr>
16727
16728 * match.pd: Remove element_mode inside HONOR_*.
16729 (~ (-A) -> A - 1, ~ (A - 1) -> -A): Handle complex types.
16730 (~X | X -> -1, ~X ^ X -> -1): Merge.
16731 * tree.c (build_each_one_cst): New function.
16732 * tree.h (build_each_one_cst): Likewise.
16733
16734 2015-07-06 H.J. Lu <hongjiu.lu@intel.com>
16735
16736 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
16737 PROCESSOR_IAMCU.
16738
16739 2015-07-06 Steve Ellcey <sellcey@imgtec.com>
16740
16741 * config.gcc <mips*-*-*>: Add fused-madd.opt.
16742 * config/mips/mips.opt (mfused-madd): Remove.
16743 * config/mips/mips.c (mips_rtx_costs): Update cost calculations.
16744 * config/mips/mips.h (TARGET_MIPS8000): New.
16745 (ISA_HAS_FP_MADD4_MSUB4): Remove.
16746 (ISA_HAS_FP_MADDF_MSUBF): Remove.
16747 (ISA_HAS_FP_MADD3_MSUB3): Remove.
16748 (ISA_HAS_NMADD4_NMSUB4): Remove.
16749 (ISA_HAS_NMADD3_NMSUB3): Remove.
16750 (ISA_HAS_FUSED_MADD4): New.
16751 (ISA_HAS_UNFUSED_MADD4): New.
16752 (ISA_HAS_FUSED_MADDF): New.
16753 (ISA_HAS_FUSED_MADD3): New.
16754 * config/mips/mips.md: (fma<mode>4) Change from insn to expand.
16755 (*fma<mode>4_madd3) New.
16756 (*fma<mode>4_madd4) New.
16757 (*fma<mode>4_maddf) New.
16758 (fms<mode>4) New.
16759 (*fms<mode>4_msub3) New.
16760 (*fms<mode>4_msub4) New.
16761 (fnma<mode>4) New.
16762 (*fnma<mode>4_nmadd3) New.
16763 (*fnma<mode>4_nmadd4) New.
16764 (fnms<mode>4) New.
16765 (*fnms<mode>4_nmsub3) New.
16766 (*fnms<mode>4_nmsub4) New.
16767 (*madd4<mode>) Modify to be unfused only.
16768 (*msub4<mode>) Modify to be unfused only.
16769 (*nmadd4<mode>) Modify to be unfused only.
16770 (*nmsub4<mode>) Modify to be unfused only.
16771 (*madd3<mode>) Remove.
16772 (*msub3<mode>) Remove.
16773 (*nmadd3<mode>) Remove.
16774 (*nmsub3<mode>) Remove.
16775 (*nmadd3<mode>_fastmath) Remove.
16776 (*nmsub3<mode>_fastmath) Remove.
16777 (*nmadd4<mode>_fastmath) Update condition.
16778 (*nmsub4<mode>_fastmath) Update condition.
16779
16780 2015-07-06 Alan Lawrence <alan.lawrence@arm.com>
16781
16782 PR target/65956
16783 * config/arm/arm.c (arm_needs_doubleword_align): Drop any outer
16784 alignment attribute, exploring one level down for records and arrays.
16785
16786 2015-07-06 Uros Bizjak <ubizjak@gmail.com>
16787
16788 * config/i386/i386.md (extv<mode>): Rename from extv. Use SWI24
16789 modes for operands 0 and 1. Use SImode for operands 2 and 3.
16790 Copy operand 1 to a temporary if !ext_register_operand. Remove
16791 ancient extract_bit_field workaround.
16792 (*extv<mode>): Rename from *mov<mode>_extv_1.
16793 (*extvqi): Rename from *movqi_extv_1.
16794 (extzv<mode>): Rename from extzv. Use SWI248 modes for
16795 operands 0 and 1. Use SImode for operands 2 and 3. Copy operand 1
16796 to a temporary if !ext_register_operand. Remove ancient
16797 extract_bit_field workaround.
16798 (*extzv<mode>): Rename from *mov<mode>_extzv_1.
16799 (*extzvqi): Rename from *movqi_extzv_2.
16800 (*testqi_ext_3): Remove modes from const_int_operand predicated
16801 operands. Add "n" constraint.
16802 (*btsq, *btrq, *btcq): Remove mode from const_0_to_63 predicated
16803 operand. Add "J" constraint.
16804 (*btsq, *btrq, *btcq peephole2s): Remove mode from
16805 const_0_to_63 predicated operand.
16806 (regmode): New insn attribute.
16807 (*bt<mode>): Use SImode for operand 1. Change operand 1 predicate
16808 to nonmemory_operand. Use regmode insn attribute.
16809 (*jcc_bt<mode>_1): Convert operand 2 to SImode.
16810 (*jcc_bt<mode>_mask): Remove mode from operand 3.
16811 (*jcc_btsi_1, *jcc_btsi_mask_1): Remove patterns.
16812 (tbm_bextri_<mode>): Remove modes from const_0_to_255 predicated
16813 operands. Use "N" constraint instead of "n".
16814
16815 2015-07-06 Alan Lawrence <alan.lawrence@arm.com>
16816
16817 * config/arm/arm.md (movdi): Avoid odd-number ldrd/strd in ARM state.
16818
16819 2015-07-06 H.J. Lu <hongjiu.lu@intel.com>
16820
16821 PR target/66749
16822 * config/i386/i386.c (iamcu_cost): New.
16823 (m_IAMCU): Likewise.
16824 (initial_ix86_arch_features): Disable X86_ARCH_CMOV for m_IAMCU.
16825 (processor_target_table): Add an entry for "iamcu".
16826 (processor_alias_table): Likewise.
16827 (ix86_issue_rate): Handle PROCESSOR_IAMCU.
16828 (ix86_adjust_cost): Likewise.
16829 (ia32_multipass_dfa_lookahead): Likewise.
16830 * config/i386/i386.h (processor_type): Add PROCESSOR_IAMCU.
16831 * config/i386/x86-tune.def: Updated for m_IAMCU.
16832
16833 2015-07-06 Richard Biener <rguenther@suse.de>
16834
16835 PR tree-optimization/66772
16836 * tree-ssa-ccp.c (ccp_visit_phi_node): Make sure that copy
16837 values are available in the PHI node BB when there are
16838 still unexecutable edges.
16839
16840 2015-07-06 Richard Biener <rguenther@suse.de>
16841
16842 PR tree-optimization/66767
16843 * tree-vect-loop-manip.c (vect_create_cond_for_align_checks):
16844 Make sure to build the alignment test on a SSA name without
16845 final alignment info valid only if the alignment test
16846 evaluates to true.
16847
16848 2015-07-06 Bernd Schmidt <bernds@codesourcery.com>
16849
16850 PR target/66620
16851 * config/bfin/bfin.c (hwloop_optimize): Create new bb between jump and
16852 loop start when inserting LSETUP.
16853
16854 2015-07-06 H.J. Lu <hongjiu.lu@intel.com>
16855
16856 PR target/53383
16857 * config/i386/i386.c (ix86_option_override_internal): Allow
16858 -mincoming-stack-boundary=3 for 64-bit if SSE is disabled.
16859
16860 2015-07-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16861
16862 * read-md.c (decimal_string): Rename to ...
16863 (md_decimal_string): ... this.
16864 (handle_enum): Reflect this.
16865
16866 2015-07-06 Szabolcs Nagy <szabolcs.nagy@arm.com>
16867
16868 PR target/66731
16869 * config/aarch64/aarch64.md (fnmul<mode>3): Handle -frounding-math.
16870
16871 2015-07-06 Richard Biener <rguenther@suse.de>
16872
16873 PR middle-end/66759
16874 * match.pd: Add missing constraint of y to REAL_CST in
16875 REAL_CST - x CMP y to y - CST CMP x simplification.
16876
16877 2015-07-06 Eric Botcazou <ebotcazou@adacore.com>
16878
16879 PR tree-optimization/66757
16880 * match.pd: Add missing condition to ~X ^ C -> X ^ ~C.
16881
16882 2015-07-05 Chung-Lin Tang <cltang@codesourcery.com>
16883 Sandra Loosemore <sandra@codesourcery.com>
16884
16885 * config/nios2/nios2-protos.h (nios2_symbol_ref_in_small_data_p):
16886 Delete extern declaration.
16887 (gprel_constant_p): Add extern declaration.
16888 * config/nios2/constraints.md ("S"): Use gprel_constant_p
16889 instead of nios2_symbol_ref_in_small_data_p.
16890 * config/nios2/nios2.c (nios2_legitimate_address_p): Likewise.
16891 (nios2_symbol_ref_in_small_data_p): Make static.
16892 (gprel_constant_p): Make non-static.
16893
16894 2015-07-05 Gerald Pfeifer <gerald@pfeifer.com>
16895
16896 * doc/fragments.texi (Target Fragment): Convert debian.org
16897 link to use https.
16898 * doc/install.texi (Configuration): Ditto.
16899
16900 2015-07-05 Jakub Jelinek <jakub@redhat.com>
16901
16902 PR tree-optimization/66718
16903 * tree-vect-stmts.c (vectorizable_call): Replace uses of
16904 GOMP_SIMD_LANE outside of loop with vf - 1 rather than 0.
16905
16906 PR tree-optimization/66718
16907 * tree-vect-stmts.c (vectorizable_assignment, vectorizable_store,
16908 vectorizable_load, vectorizable_condition): Move vectype,
16909 nunits, ncopies computation after checking what kind of statement
16910 stmt is.
16911
16912 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
16913
16914 * target-insns.def (extv, extzv, insv): New targetm instruction
16915 patterns.
16916 * optabs.c (get_extraction_insn): Use them instead of HAVE_*/gen_*
16917 interface.
16918 * recog.c (simplify_while_replacing): Likewise.
16919
16920 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
16921
16922 * target-insns.def (doloop_begin, doloop_end): New targetm
16923 instruction patterns.
16924 * loop-init.c: Include target.h.
16925 (pass_loop2::gate): Use the new targetm patterns instead of
16926 HAVE_*/gen_* interface.
16927 (pass_rtl_doloop::gate): Likewise.
16928 (pass_rtl_doloop::execute): Remove preprocessor condition.
16929 * hw-doloop.c: Build unconditionally.
16930 * loop-doloop.c: Likewise.
16931 (doloop_optimize): Use the new targetm patterns instead of
16932 HAVE_*/gen_* interface.
16933 (doloop_modify): Likewise. Change type of doloop_seq to rtx_insn *.
16934 * modulo-sched.c (doloop_register_get): Likewise.
16935
16936 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
16937
16938 * target-insns.def (clear_cache): New targetm instruction pattern.
16939 * builtins.c (expand_builtin___clear_cache): Use it instead of
16940 HAVE_*/gen_* interface.
16941
16942 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
16943
16944 * target-insns.def (allocate_stack, check_stack, probe_stack)
16945 (probe_stack_address, split_stack_prologue, split_stack_space_check):
16946 New targetm instruction patterns.
16947 * explow.c (allocate_dynamic_stack_space): Use them instead of
16948 HAVE_*/gen_* interface.
16949 (emit_stack_probe): Likewise.
16950 (probe_stack_range): Likewise.
16951 * function.c (thread_prologue_and_epilogue_insns): Likewise.
16952
16953 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
16954
16955 * target-insns.def (stack_protect_set, stack_protect_test): New
16956 targetm instruction patterns.
16957 * cfgexpand.c (stack_protect_prologue): Use them instead of
16958 HAVE_*/gen_* interface.
16959 * function.c (stack_protect_epilogue): Likewise.
16960
16961 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
16962
16963 * expr.h (gen_move_insn_uncast): Delete.
16964 * expr.c (gen_move_insn_uncast): Delete.
16965
16966 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
16967
16968 * target-insns.def (restore_stack_block, restore_stack_function)
16969 (restore_stack_nonlocal, save_stack_block, save_stack_function)
16970 (save_stack_nonlocal): New targetm instruction patterns.
16971 * builtins.c (expand_builtin_apply): Use them instead of
16972 HAVE_*/gen_* interface.
16973 * explow.c (emit_stack_save, emit_stack_restore): Likewise.
16974
16975 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
16976
16977 * target-insns.def (trap): New targetm instruction pattern.
16978 * builtins.c (expand_builtin_trap): Use it instead of HAVE_*/gen_*
16979 interface.
16980 * explow.c (allocate_dynamic_stack_space): Likewise.
16981 * ifcvt.c (find_if_header): Likewise.
16982
16983 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
16984
16985 * target-insns.def (prefetch): New targetm instruction pattern.
16986 * tree-ssa-loop-prefetch.c: Include targeth.
16987 (tree_ssa_prefetch_arrays): Use prefetch targetm pattern instead
16988 of HAVE_*/gen_* interface.
16989 * builtins.c (expand_builtin_prefetch): Likewise.
16990 * toplev.c (process_options): Likewise.
16991
16992 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
16993
16994 * target-insns.def (untyped_call, untyped_return): New targetm
16995 instruction patterns.
16996 * builtins.c (expand_builtin_apply): Use them instead of
16997 HAVE_*/gen_* interface.
16998 (result_vector): Define unconditionally.
16999
17000 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
17001
17002 * target-insns.def (builtin_longjmp, builtin_setjmp_receiver)
17003 (builtin_setjmp_setup, exception_receiver, nonlocal_goto)
17004 (nonlocal_goto_receiver): New targetm instruction patterns.
17005 * builtins.c (expand_builtin_setjmp_setup): Use them instead
17006 of HAVE_*/gen_* interface.
17007 (expand_builtin_setjmp_receiver): Likewise.
17008 (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
17009 * except.c (expand_dw2_landing_pad_for_region): Likewise.
17010
17011 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
17012
17013 * target.def: Add code_for_* hooks.
17014 * gentarget-def.c (def_target_insn): Add TARGET_CODE_FOR_* macros.
17015 * defaults.h (HAVE_tablejump, gen_tablejump): Delete.
17016 * target-insns.def (casesi, tablejump): New targetm instruction
17017 patterns.
17018 * expr.c (try_casesi): Use them instead of HAVE_*/gen_* interface.
17019 (do_tablejump): Likewise.
17020 * stmt.c (expand_switch_as_decision_tree_p): Likewise.
17021 (expand_sjlj_dispatch_table): Likewise.
17022 * targhooks.c (default_case_values_threshold): Likewise.
17023
17024 2015-07-04 Sandra Loosemore <sandra@codesourcery.com>
17025
17026 * config/nios2/nios2.c (save_reg, restore_reg): Use plus_constant.
17027 Use rtx_insn * instead of rtx.
17028 (nios2_emit_add_constant): Use rtx_insn * instead of rtx.
17029 (nios2_expand_prologue, nios2_expand_epilogue): Likewise.
17030 (nios2_call_tls_get_addr): Likewise.
17031 (nios2_emit_expensive_div): Likewise.
17032 (nios2_emit_move_sequence): Change return type to bool.
17033 * config/nios2/nios2-protos.h (nios2_emit_move_sequence):
17034 Change return type to bool.
17035
17036 2015-07-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
17037
17038 PR target/66747
17039 * config/mips/mips.c (mips_find_gp_ref): Handle instruction sequences.
17040
17041 2015-07-04 John David Anglin <danglin@gcc.gnu.org>
17042
17043 PR target/66114
17044 * config/pa/pa.md (indirect_jump): Use pmode_register_operand instead
17045 of register_operand. Remove constraint.
17046
17047 2015-07-04 Marc Glisse <marc.glisse@inria.fr>
17048
17049 * tree-cfg.c (verify_gimple_assign_ternary) <VEC_COND_EXPR>: Check
17050 the first argument.
17051
17052 2015-07-03 Paolo Carlini <paolo.carlini@oracle.com>
17053
17054 * attribs.c (decl_attributes): Guard inform with the return value
17055 of the preceding warning.
17056
17057 2015-07-03 James Greenhalgh <james.greenhalgh@arm.com>
17058
17059 * doc/invoke.texi (moverride): Move to correct section.
17060
17061 2015-07-03 Richard Biener <rguenther@suse.de>
17062
17063 * genmatch.c (commutative_tree_code, commutative_ternary_tree_code):
17064 Copy from tree.c
17065 (dt_operand::gen_gimple_expr): After valueizing operands
17066 re-canonicalize operand order for commutative tree codes.
17067
17068 2015-07-03 H.J. Lu <hongjiu.lu@intel.com>
17069
17070 PR target/66746.
17071 * config/i386/ia32intrin.h (__crc32b): Don't define if __iamcu__
17072 is defined.
17073 (__crc32w): Likewise.
17074 (__crc32d): Likewise.
17075 (__rdpmc): Likewise.
17076 (__rdtscp): Likewise.
17077 (_rdpmc): Likewise.
17078 (_rdtscp): Likewise.
17079 * config/i386/x86intrin.h: Only include ia32intrin.h if __iamcu__
17080 is defined.
17081
17082 2015-07-03 Richard Biener <rguenther@suse.de>
17083
17084 * fold-const.c (fold_mathfn_compare): Remove.
17085 (fold_inf_compare): Likewise.
17086 (fold_comparison): Move floating point comparison simplifications...
17087 * match.pd: ... to patterns here. Introduce simple_comparisons
17088 operator list and use it for patterns formerly in fold_comparison.
17089
17090 2015-07-03 James Greenhalgh <james.greenhalgh@arm.com>
17091
17092 PR tree-optimization/66119
17093 * toplev.c (process_options): Don't set up default values for
17094 the sra_max_scalarization_size_{speed,size} parameters.
17095 * tree-sra (analyze_all_variable_accesses): If no values
17096 have been set for the sra_max_scalarization_size_{speed,size}
17097 parameters, call get_move_ratio to get target defaults.
17098
17099 2015-07-03 Richard Biener <rguenther@suse.de>
17100
17101 * fold-const.c (fold_binary_loc): Move (T)ptr & CST folding...
17102 * match.pd: ... here.
17103
17104 2015-07-03 Gerald Pfeifer <gerald@pfeifer.com>
17105
17106 PR target/37072
17107 * doc/invoke.texi (i386 and x86-64 Options): -mno-fancy-math-387
17108 is not actually the default on FreeBSD.
17109
17110 2015-07-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17111
17112 * config/rs6000/rs6000-builtin.def (CMPGE_16QI): New built-in
17113 definition.
17114 (CMPGE_8HI): Likewise.
17115 (CMPGE_4SI): Likewise.
17116 (CMPGE_2DI): Likewise.
17117 (CMPGE_U16QI): Likewise.
17118 (CMPGE_U8HI): Likewise.
17119 (CMPGE_U4SI): Likewise.
17120 (CMPGE_U2DI): Likewise.
17121 (CMPLE_16QI): Likewise.
17122 (CMPLE_8HI): Likewise.
17123 (CMPLE_4SI): Likewise.
17124 (CMPLE_2DI): Likewise.
17125 (CMPLE_U16QI): Likewise.
17126 (CMPLE_U8HI): Likewise.
17127 (CMPLE_U4SI): Likewise.
17128 (CMPLE_U2DI): Likewise.
17129 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
17130 overloads for ALTIVEC_BUILTIN_VEC_CMPGE and
17131 ALTIVEC_BUILTIN_VEC_CMPLE.
17132 * config/rs6000/vector.md (vector_ge<mode>): Restrict to
17133 floating-point vector modes.
17134 (vector_nlt<mode>): New define_expand.
17135 (vector_nltu<mode>): Likewise.
17136 (vector_ngt<mode>): Likewise.
17137 (vector_ngtu<mode>): Likewise.
17138
17139 2015-07-02 Segher Boessenkool <segher@kernel.crashing.org>
17140
17141 PR rtl-optimization/66706
17142 * combine.c (make_compound_operation): If an AND of SUBREG of
17143 LSHIFTRT does not simplify, see if just the AND of SUBREG does.
17144
17145 2015-07-02 Alan Lawrence <alan.lawrence@arm.com>
17146
17147 * tree-pass.h (make_pass_ch_vect): New.
17148 * passes.def: Add pass_ch_vect just before pass_if_conversion.
17149
17150 * tree-ssa-loop-ch.c (ch_base, pass_ch_vect, pass_data_ch_vect,
17151 pass_ch::process_loop_p, pass_ch_vect::process_loop_p,
17152 make_pass_ch_vect): New.
17153 (pass_ch): Extend ch_base.
17154
17155 (pass_ch::execute): Move all but loop_optimizer_init/finalize to...
17156 (ch_base::copy_headers): ...here.
17157
17158 2015-07-02 Richard Biener <rguenther@suse.de>
17159
17160 * builtins.c (get_pointer_alignment_1): Handle POINTER_PLUS_EXPR.
17161 * fold-const.c (get_pointer_modulus_and_residue): Remove.
17162 (fold_binary_loc): Implement (T)ptr & CST in terms of
17163 get_pointer_alignment_1.
17164 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
17165 Make sure to build the alignment test on a SSA name without
17166 final alignment info valid only after the prologue.
17167
17168 2015-07-02 Hans-Peter Nilsson <hp@axis.com>
17169
17170 * config/cris/cris.md ("epilogue"): Remove condition.
17171 ("prologue"): Ditto.
17172
17173 2015-07-02 Richard Biener <rguenther@suse.de>
17174
17175 * tree-ssa-dom.c (build_and_record_new_cond): Add optional
17176 parameter to record a condition that is false.
17177 (record_conditions): When recording an extra NE_EXPR that is
17178 true also record a EQ_EXPR that is false.
17179
17180 2015-07-02 Bin Cheng <bin.cheng@arm.com>
17181
17182 * tree-ssa-loop-ivopts.c (struct ivopts_data): New field iv_obstack.
17183 (tree_ssa_iv_optimize_init): Initialize iv_obstack.
17184 (alloc_iv): New parameter. Allocate struct iv using obstack_alloc.
17185 (set_iv, find_interesting_uses_address, add_candidate_1): New
17186 argument to alloc_iv.
17187 (find_interesting_uses_op, find_interesting_uses_cond): Don't
17188 duplicate struct iv.
17189 (free_loop_data): Don't free struct iv explicitly.
17190 (tree_ssa_iv_optimize_finalize): Free iv_obstack.
17191
17192 2015-07-01 DJ Delorie <dj@redhat.com>
17193
17194 * config/s390/tpf.h (LIBSTDCXX): Change to CPP1.
17195 (LIB_SPEC): Add.
17196 (SUPPORTS_DISCRIMINATOR): Define.
17197
17198 2015-07-01 Richard Sandiford <richard.sandiford@arm.com>
17199
17200 PR bootstrap/66685
17201 * rtl.c (classify_insn): Only return JUMP_INSN for parallel returns if
17202 there are no CALLs in the same pattern.
17203
17204 2015-07-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
17205
17206 PR rtl-optimization/61047
17207 * rtlanal.c (get_initial_register_offset): New function.
17208 (rtx_addr_can_trap_p_1): Check offsets of stack references.
17209
17210 2015-07-01 Richard Biener <rguenther@suse.de>
17211
17212 * fold-const.c (fold_comparison): Move X - Y CMP 0 -> X CMP Y,
17213 X * C1 CMP 0 -> X CMP 0, X CMP X, ~X CMP ~Y -> Y CMP X and
17214 ~X CMP C -> X CMP' ~C to ...
17215 * match.pd: ... patterns here.
17216
17217 2015-07-01 Nick Clifton <nickc@redhat.com>
17218
17219 * config/msp430/msp430.md (zero_extendhipsi2): Use MOVX.A to store
17220 a 16-bit value into a 20-bit memory slot.
17221
17222 2015-07-01 Jiong Wang <jiong.wang@arm.com>
17223
17224 * doc/sourcebuild.texi (AArch64-specific attributes): Document
17225 "aarch64_tiny", "aarch64_small", "aarch64_large",
17226 "aarch64_little_endian", "aarch64_big_endian".
17227
17228 2015-07-01 Jiong Wang <jiong.wang@arm.com>
17229
17230 * doc/sourcebuild.texi (AArch64-specific attributes): New subsection.
17231 Document "aarch64_small_fpic".
17232
17233 2015-07-01 Jiong Wang <jiong.wang@arm.com>
17234
17235 * configure.ac: Add check for aarch64 assembler -fpic relocation
17236 modifier support.
17237 * configure: Regenerate.
17238 * config.in: Regenerate.
17239 * config/aarch64/aarch64.c (initialize_aarch64_code_model): Fall back
17240 to -fPIC if not support of -fpic relocation modifier in assembler.
17241
17242 2015-07-01 Richard Sandiford <richard.sandiford@arm.com>
17243
17244 PR bootstrap/66685
17245 * rtl.c (classify_insn): Handle returns in PARALLELs.
17246
17247 2015-07-01 Eric Botcazou <ebotcazou@adacore.com>
17248
17249 PR middle-end/66633
17250 * tree-nested.c (convert_nonlocal_omp_clauses): Initialize need_chain
17251 to true if the function is nested and if not optimizing.
17252 (convert_local_omp_clauses): Initialize need_frame to true if the
17253 function contains nested functions and if not optimizing.
17254
17255 2015-07-01 Richard Biener <rguenther@suse.de>
17256
17257 * fold-const.c (fold_binary_loc): Move ~X ^ X -> -1 and
17258 (X & Y) ^ Y -> ~X & Y transforms to ...
17259 * match.pd: ... here.
17260
17261 2015-07-01 Richard Biener <rguenther@suse.de>
17262
17263 * genmatch.c (expr::gen_transform): Shortcut re-simplifying
17264 of converts to avoid uninteresting noise from the conversion
17265 simplifying patterns.
17266
17267 2015-06-30 Sandra Loosemore <sandra@codesourcery.com>
17268
17269 * config/c6x/c6x.c (try_rename_operands): Do not depend on
17270 gcc_assert evaluating its argument for side-effect.
17271
17272 2015-06-30 Kaz Kojima <kkojima@gcc.gnu.org>
17273
17274 PR target/64833
17275 * config/sh/sh.md (casesi_worker_1): Set length to 8 when
17276 flag_pic is set.
17277
17278 2015-06-30 Eric Botcazou <ebotcazou@adacore.com>
17279
17280 * lto-streamer-out.c (class DFS): Adjust hash_scc method.
17281 (DFS::DFS): Pass this_ref_p and ref_p to hash_scc.
17282 (hash_scc): Add this_ref_p and ref_p parameters and pass them
17283 to the inner DFS walk.
17284
17285 2015-06-30 Richard Sandiford <richard.sandiford@arm.com>
17286
17287 * target-insns.def (jump): New targetm instruction pattern.
17288 * bb-reorder.c (get_uncond_jump_length): Use targetm.gen_jump
17289 instead of gen_jump.
17290 (fix_up_crossing_landing_pad): Likewise.
17291 (add_labels_and_missing_jumps): Likewise.
17292 (fix_crossing_conditional_branches): Likewise.
17293 * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
17294 (force_nonfallthru_and_redirect): Likewise.
17295 * cse.c (cse_insn): Likewise.
17296 * expmed.c (expand_divmod): Likewise.
17297 * expr.c (store_expr_with_bounds, expand_expr_real_2): Likewise.
17298 * haifa-sched.c (init_before_recovery): Likewise.
17299 (sched_create_recovery_edges): Likewise.
17300 * ifcvt.c (find_cond_trap): Likewise.
17301 * optabs.c (expand_doubleword_shift, expand_doubleword_clz): Likewise.
17302 (expand_float, expand_fix): Likewise.
17303 * stmt.c (emit_jump): Likewise.
17304
17305 2015-06-30 Richard Sandiford <richard.sandiford@arm.com>
17306
17307 * defaults.h (HAVE_load_multiple, gen_load_multiple)
17308 (HAVE_store_multiple, gen_store_multiple): Delete.
17309 * target-insns.def (load_multiple, store_multiple): New targetm
17310 instruction patterns.
17311 * expr.c (move_block_to_reg, move_block_from_reg): Use them instead
17312 of HAVE_*/gen_* interface.
17313
17314 2015-06-30 Richard Sandiford <richard.sandiford@arm.com>
17315
17316 * defaults.h (HAVE_mem_thread_fence, gen_mem_thread_fence)
17317 (HAVE_memory_barrier, gen_memory_barrier, HAVE_mem_signal_fence)
17318 (gen_mem_signal_fence): Delete.
17319 * target-insns.def (mem_signal_fence, mem_thread_fence)
17320 (memory_barrier): New targetm instruction patterns.
17321 * optabs.c (expand_mem_thread_fence): Use them instead of HAVE_*/gen_*
17322 interface.
17323 (expand_mem_signal_fence): Likewise.
17324
17325 2015-06-30 Richard Sandiford <richard.sandiford@arm.com>
17326
17327 * defaults.h (HAVE_epilogue, gen_epilogue): Delete.
17328 * target-insns.def (epilogue, prologue, sibcall_prologue): New
17329 targetm instruction patterns.
17330 * alias.c (init_alias_analysis): Use them instead of HAVE_*/gen_*
17331 interface.
17332 * calls.c (expand_call): Likewise.
17333 * cfgrtl.c (cfg_layout_finalize): Likewise.
17334 * df-scan.c (df_get_entry_block_def_set): Likewise.
17335 (df_get_exit_block_use_set): Likewise.
17336 * dwarf2cfi.c (pass_dwarf2_frame::gate): Likewise.
17337 * final.c (final_start_function): Likewise.
17338 * function.c (thread_prologue_and_epilogue_insns): Likewise.
17339 (reposition_prologue_and_epilogue_notes): Likewise.
17340 * reorg.c (find_end_label): Likewise.
17341 * toplev.c (process_options): Likewise.
17342
17343 2015-06-30 David Malcolm <dmalcolm@redhat.com>
17344
17345 * typed-splay-tree.h: New file.
17346
17347 2015-06-30 Vladimir Makarov <vmakarov@redhat.com>
17348
17349 PR debug/66691
17350 * lra-int.h (lra_substitute_pseudo): Add a parameter.
17351 (lra_substitute_pseudo_within_insn): Ditto.
17352 * lra.c (lra_substitute_pseudo): Add a parameter. Simplify subreg
17353 of constant.
17354 (lra_substitute_pseudo_within_insn): Add a parameter. Transfer it
17355 to lra_substitute_pseudo.
17356 * lra-lives.c (process_bb_lives): Add an argument to
17357 lra_substitute_pseudo_within_insn call.
17358 * lra-constraints.c (inherit_reload_reg, split_reg): Add an
17359 argument to lra_substitute_pseudo and
17360 lra_substitute_pseudo_within_insn calls.
17361 (remove_inheritance_pseudos, undo_optional_reloads): Ditto.
17362
17363 2015-06-30 H.J. Lu <hongjiu.lu@intel.com>
17364
17365 * configure: Regenerated.
17366
17367 2015-06-30 H.J. Lu <hongjiu.lu@intel.com>
17368
17369 * config.gcc: Support i[34567]86-*-elfiamcu target.
17370 * config/i386/iamcu.h: New.
17371 * config/i386/i386.opt: Add -miamcu.
17372 * doc/invoke.texi: Document -miamcu.
17373 * common/config/i386/i386-common.c (ix86_handle_option): Turn
17374 off x87/MMX/SSE/AVX codegen for -miamcu.
17375 * config/i386/i386-c.c (ix86_target_macros_internal): Define
17376 __iamcu/__iamcu__ for -miamcu.
17377 * config/i386/i386.h (PREFERRED_STACK_BOUNDARY_DEFAULT): Set
17378 to MIN_STACK_BOUNDARY if TARGET_IAMCU is true.
17379 (BIGGEST_ALIGNMENT): Set to 32 if TARGET_IAMCU is true.
17380 * config/i386/i386.c (ix86_option_override_internal): Ignore and
17381 warn -mregparm for Intel MCU. Turn on -mregparm=3 for Intel
17382 MCU by default. Default long double to 64-bit for Intel MCU.
17383 Turn on -freg-struct-return for Intel MCU. Issue an error when
17384 -miamcu is used in 64-bit or x32 mode or if x87, MMX, SSE or
17385 AVX is turned on.
17386 (function_arg_advance_32): Pass value whose size is no larger
17387 than 8 bytes in registers for Intel MCU.
17388 (function_arg_32): Likewise.
17389 (ix86_return_in_memory): Return value whose size is no larger
17390 than 8 bytes in registers for Intel MCU.
17391 (iamcu_alignment): New function.
17392 (ix86_data_alignment): Call iamcu_alignment if TARGET_IAMCU is
17393 true.
17394 (ix86_local_alignment): Don't increase alignment for Intel MCU.
17395 (x86_field_alignment): Return iamcu_alignment if TARGET_IAMCU is
17396 true.
17397
17398 2015-06-30 Marek Polacek <polacek@redhat.com>
17399
17400 * match.pd (X - (X / Y) * Y): Use convert1 and convert2. Convert
17401 both operands of the resulting expression.
17402
17403 * match.pd (~x | x): Don't use tree_nop_conversion_p. Build
17404 the final expression with the operand's type and then convert
17405 it to the type of the expression.
17406
17407 2015-06-30 Richard Biener <rguenther@suse.de>
17408
17409 * fold-const.c (fold_binary_loc): Move ~x & ~y -> ~(x | y) and
17410 ~x | ~y -> ~(x & y), (x & CST) ^ (x & CST2) -> (x & CST) | (x & CST2),
17411 (X | Y) ^ X -> Y & ~ X, ~X ^ ~Y to X ^ Y and ~X ^ C to X ^ ~C ...
17412 * match.pd: ... to patterns here.
17413
17414 2015-06-30 Richard Biener <rguenther@suse.de>
17415
17416 PR tree-optimization/66704
17417 * tree-vect-data-refs.c (vect_setup_realignment): Use
17418 make_ssa_name for non-SSA name source.
17419
17420 2015-06-30 Jakub Jelinek <jakub@redhat.com>
17421
17422 PR middle-end/66702
17423 * omp-low.c (simd_clone_adjust): Handle addressable linear
17424 or uniform parameters or non-gimple type uniform parameters.
17425
17426 2015-06-30 Richard Biener <rguenther@suse.de>
17427
17428 * fold-const.c (fold_unary_loc): Move abs(abs(x)) -> abs(x),
17429 ~ (-A) to A - 1, ~ (A - 1) or ~ (A + -1) to -A and some cases of
17430 ~(X ^ Y) to ~X ^ Y or X ^ ~Y if ~X or ~Y simplify to ...
17431 * match.pd: ... here.
17432 Add a few cases of A - B -> A + (-B) when B "easily" negates.
17433 Move (x & y) | x -> x and friends before
17434 (x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2).
17435
17436 2015-06-30 Eric Botcazou <ebotcazou@adacore.com>
17437
17438 * config/sparc/leon.md (leon_load): Enable for all LEON variants if
17439 -mfix-ut699 is not specified.
17440 (leon3_load): Rename into...
17441 (ut699_load): ...this. Enable for all LEON variants if -mfix-ut699
17442 is specified.
17443
17444 2015-06-30 Marek Polacek <polacek@redhat.com>
17445
17446 * fold-const.c (fold_binary_loc): Move ~X | X folding ...
17447 * match.pd: ... here.
17448
17449 2015-06-30 Richard Biener <rguenther@suse.de>
17450
17451 * target-insns.def (canonicalize_funcptr_for_compare): Add.
17452 * fold-const.c (build_range_check): Replace uses of
17453 HAVE_canonicalize_funcptr_for_compare.
17454 (fold_widened_comparison): Likewise.
17455 (fold_sign_changed_comparison): Likewise.
17456 * dojump.c: Include "target.h".
17457 (do_compare_and_jump): Replace uses of
17458 HAVE_canonicalize_funcptr_for_compare and
17459 gen_canonicalize_funcptr_for_compare.
17460 * expr.c (do_store_flag): Likewise.
17461
17462 2015-06-30 Tom de Vries <tom@codesourcery.com>
17463
17464 PR tree-optimization/66652
17465 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
17466 max_loop_iterations to determine if nit + 1 overflows.
17467
17468 2015-06-30 Richard Biener <rguenther@suse.de>
17469
17470 * tree-vrp.c (register_edge_assert_for_2): Also register
17471 asserts for dominating conversion results.
17472
17473 2015-06-30 Bin Cheng <bin.cheng@arm.com>
17474
17475 * tree-ssa-loop-ivopts.c (record_sub_use): Don't reset ssa_name
17476 field in struct iv.
17477
17478 2015-06-29 Jack Howarth <howarth.at.gcc@gmail.com>
17479
17480 PR target/66509
17481 * configure.ac: Fix filds and fildq test for 64-bit.
17482 * configure: Regenerated.
17483
17484 2015-06-29 Nathan Sidwell <nathan@codesourcery.com>
17485
17486 * config/nvptx/nvptx.md (nvptx_reorg_subreg): New fn, broken out of ...
17487 (nvptx_reorg): Here. Keep the non-subreg pieces.
17488
17489 2015-06-29 H.J. Lu <hongjiu.lu@intel.com>
17490
17491 * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Use
17492 PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
17493
17494 2015-06-29 Uros Bizjak <ubizjak@gmail.com>
17495
17496 * config/i386/i386.md (*jcc_1): Use %! in asm template.
17497 Set attribute "length_nobnd" instead of "length".
17498 (*jcc_2): Ditto.
17499 (jump): Ditto.
17500 (*jcc_1_bnd, *jcc_2_bnd, jump_bnd): Remove insn patterns.
17501
17502 2015-06-29 Sandra Loosemore <sandra@codesourcery.com>
17503
17504 * config/nios2/nios2.c (nios2_delegitimize_address): Make
17505 assert less restrictive.
17506
17507 2015-06-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
17508
17509 PR fortran/66605
17510 * cgraphunit.c (cgraph_node::finalize_function): Do not call
17511 do_warn_unused_parameter.
17512 * function.c (do_warn_unused_parameter): Move from here.
17513 * function.h (do_warn_unused_parameter): Do not declare.
17514
17515 2015-06-29 Matthew Wahab <matthew.wahab@arm.com>
17516
17517 PR target/65697
17518 * gcc.target/arm/armv-sync-comp-swap.c: New.
17519 * gcc.target/arm/armv-sync-op-acquire.c: New.
17520 * gcc.target/arm/armv-sync-op-full.c: New.
17521 * gcc.target/arm/armv-sync-op-release.c: New.
17522
17523 2015-06-29 Matthew Wahab <matthew.wahab@arm.com>
17524
17525 PR target/65697
17526 * config/armc/arm.c (arm_split_compare_and_swap): For ARMv8, replace an
17527 initial acquire barrier with final barrier.
17528
17529 2015-06-29 Matthew Wahab <matthew.wahab@arm.com>
17530
17531 PR target/65697
17532 * config/armc/arm.c (arm_split_atomic_op): For ARMv8, replace an
17533 initial acquire barrier with final barrier.
17534
17535 2015-06-29 Richard Henderson <rth@redhat.com>
17536
17537 * config/i386/constraints.md (Bf): New constraint.
17538 * config/i386/i386-c.c (ix86_target_macros): Define
17539 __GCC_ASM_FLAG_OUTPUTS__.
17540 * config/i386/i386.c (ix86_md_asm_adjust): Handle =@cc* constraints
17541 as flags outputs.
17542 * doc/extend.texi (FlagOutputOperands): Document them.
17543
17544 2015-06-29 Jiong Wang <jiong.wang@arm.com>
17545
17546 * config/arch64/aarch64.md (UNSPEC_TLSLE): New enumeration.
17547 * config/arch64/aarch64.md (tlsle_small): Rename to tlsle and use new
17548 unspec name.
17549 (tlsle_small_<mode>): Rename to tlsle_<mode> and use new unspec name.
17550 * config/arch64/aarch64-protos.h (arch64_symbol_type): Rename
17551 SYMBOL_SMALL_TPREL to SYMBOL_TLSLE.
17552 (aarch64_symbol_context): Ditto.
17553 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto
17554 and use new pattern name.
17555 (aarch64_expand_mov_immediate): Ditto.
17556 (aarch64_print_operand): Ditto.
17557 (aarch64_classify_tls_symbol): Ditto.
17558
17559 2015-06-29 Marek Polacek <polacek@redhat.com>
17560 Marc Glisse <marc.glisse@inria.fr>
17561
17562 * fold-const.c (fold_binary_loc): Move X - (X / Y) * Y -> X % Y to ...
17563 * match.pd: ... pattern here.
17564
17565 2015-06-29 Tom de Vries <tom@codesourcery.com>
17566
17567 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Simplify
17568 function structure.
17569
17570 2015-06-29 Matthew Wahab <matthew.wahab@arm.com>
17571
17572 * doc/invoke.texi (Aarch64 Options, -march): Split out arch and
17573 feature description, split out the native option, add a link to
17574 the feature documentation, rearrange and slightly rewrite text.
17575 (Aarch64 options, -mcpu): Likewise.
17576 (Aarch64 options, Feature Modifiers): Add an anchor. Mention
17577 +rdma implies Adv. SIMD.
17578
17579 2015-06-29 Marek Polacek <polacek@redhat.com>
17580
17581 PR c/66322
17582 * function.c (stack_protect_epilogue): Remove a cast to int.
17583 * doc/invoke.texi: Update -Wswitch-bool description.
17584
17585 2015-06-29 Richard Biener <rguenther@suse.de>
17586
17587 * genmatch.c (add_operator): Treat ADDR_EXPR as atom.
17588 * fold-const.c (fold_binary_loc): Move &A - &B simplification
17589 via ptr_difference_const ...
17590 * match.pd: ... here.
17591 When matching (X ^ Y) == Y also match with swapped operands.
17592
17593 2015-06-29 Richard Biener <rguenther@suse.de>
17594
17595 * lto-streamer.h (LTO_major_version): Bump to 5.
17596
17597 2015-06-29 Richard Biener <rguenther@suse.de>
17598
17599 PR tree-optimization/66677
17600 * tree-vect-stmts.c (vect_transform_stmt): Make assert about
17601 STMT_VINFO_VEC_STMT clobbering less strict.
17602
17603 2015-06-29 Kugan Vivekanandarajah <kuganv@linaro.org>
17604
17605 PR middle-end/64130
17606 * tree-vrp.c (extract_range_from_binary_expr_1): For unsigned
17607 division, compute max and min when value ranges for dividend and
17608 divisor are available.
17609
17610 2015-06-28 Chung-Lin Tang <cltang@codesourcery.com>
17611 Sandra Loosemore <sandra@codesourcery.com>
17612
17613 * regrename.h (regrename_do_replace): Change to return bool.
17614 * regrename.c (rename_chains): Check return value of
17615 regname_do_replace.
17616 (regrename_do_replace): Re-validate the modified insns and
17617 return bool status.
17618 * config/aarch64/cortex-a57-fma-steering.c (rename_single_chain):
17619 Update to match rename_chains changes.
17620 * config/c6x/c6x.c (try_rename_operands): Assert that
17621 regrename_do_replace returns true.
17622
17623 2015-06-28 Uros Bizjak <ubizjak@gmail.com>
17624
17625 * config/i386/i386.md (<mode>_ldx): Do not zero-extend non-Pmode
17626 operand 2 here. Use copy_addr_to_reg to copy non-index
17627 register operand 2 to a temporary.
17628 (<mode>_stx): Ditto for operand 1.
17629 (*<mode>_ldx, *<mode>_stx): Remove enclosing parallel.
17630 * config/i386/i386.c (ix86_load_bounds): Zero-extend non-Pmode ptr here.
17631 (ix86_store_bounds): Ditto.
17632
17633 2015-06-27 Patrick Palka <ppalka@gcc.gnu.org>
17634
17635 * print-tree.c (print_node) [TREE_VEC]: Print its length.
17636
17637 2015-06-26 Andrew MacLeod <amacleod@redhat.com>
17638
17639 * gimple.c (gimple_call_set_fndecl): Remove.
17640 * gimple.h (gimple_call_set_fndecl): Relocate to gimple.h and call
17641 build1_loc directly instead of build_fold_addr_expr_loc.
17642
17643 2015-06-26 Richard Sandiford <richard.sandiford@arm.com>
17644
17645 * hash-map.h (hash_map::traverse): Use the definition of the
17646 Key typedef rather than the typedef itself.
17647
17648 2015-06-26 Martin Jambor <mjambor@suse.cz>
17649
17650 PR debug/66301
17651 * tree-ssa-pre.c (before_dom_children): Check that dump_file is not
17652 NULL instead of calling dump_enabled_p.
17653
17654 2015-06-26 James Greenhalgh <james.greenhalgh@arm.com>
17655
17656 * config/aarch64/aarch64.opt: (override): New.
17657 * doc/invoke.texi (override): Document.
17658 * config/aarch64/aarch64.c (aarch64_flag_desc): New
17659 (aarch64_fusible_pairs): Likewise.
17660 (aarch64_tuning_flags): Likewise.
17661 (aarch64_tuning_override_function): Likewise.
17662 (aarch64_tuning_override_functions): Likewise.
17663 (aarch64_parse_one_option_token): Likewise.
17664 (aarch64_parse_boolean_options): Likewise.
17665 (aarch64_parse_fuse_string): Likewise.
17666 (aarch64_parse_tune_string): Likewise.
17667 (aarch64_parse_one_override_token): Likewise.
17668 (aarch64_parse_override_string): Likewise.
17669 (aarch64_override_options): Parse the -override string if it
17670 is present.
17671
17672 2015-06-26 James Greenhalgh <james.greenhalgh@arm.com>
17673
17674 * config/aarch64/aarch64-protos.h (tune_params): Remove
17675 const from members.
17676 (aarch64_tune_params): Remove const, change to no longer be
17677 a pointer.
17678 * config/aarch64/aarch64.c (aarch64_tune_params): Remove const,
17679 change to no longer be a pointer, initialize to generic_tunings.
17680 (aarch64_min_divisions_for_recip_mul): Change dereference of
17681 aarch64_tune_params to member access.
17682 (aarch64_reassociation_width): Likewise.
17683 (aarch64_rtx_mult_cost): Likewise.
17684 (aarch64_address_cost): Likewise.
17685 (aarch64_branch_cost): Likewise.
17686 (aarch64_rtx_costs): Likewise.
17687 (aarch64_register_move_cost): Likewise.
17688 (aarch64_memory_move_cost): Likewise.
17689 (aarch64_sched_issue_rate): Likewise.
17690 (aarch64_builtin_vectorization_cost): Likewise.
17691 (aarch64_override_options): Take a copy of the selected tuning
17692 struct in to aarch64_tune_params, rather than just setting
17693 a pointer, change dereferences of aarch64_tune_params to member
17694 accesses.
17695 (aarch64_override_options_after_change): Change dereferences of
17696 aarch64_tune_params to member access.
17697 (aarch64_macro_fusion_p): Likewise.
17698 (aarch_macro_fusion_pair_p): Likewise.
17699 * config/aarch64/cortex-a57-fma-steering.c (gate): Likewise.
17700
17701 2015-06-26 James Greenhalgh <james.greenhalgh@arm.com>
17702
17703 * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Delete.
17704 (aarch64_tune_flags): Likewise.
17705 (AARCH64_TUNE_FMA_STEERING): Likewise.
17706 * config/aarch64/aarch64-cores.def (cortex-a57): Remove reference
17707 to AARCH64_FL_USE_FMA_STEERING_PASS.
17708 (cortex-a57.cortex-a53): Likewise.
17709 (cortex-a72): Use cortexa72_tunings.
17710 (cortex-a72.cortex-a53): Likewise.
17711 (exynos-m1): Likewise.
17712 * config/aarch64/aarch64-protos.h (tune_params): Add
17713 a field: extra_tuning_flags.
17714 * config/aarch64/aarch64-tuning-flags.def: New.
17715 * config/aarch64/aarch64-protos.h (AARCH64_EXTRA_TUNING_OPTION): New.
17716 (aarch64_extra_tuning_flags): Likewise.
17717 (aarch64_tune_params): Declare here.
17718 * config/aarch64/aarch64.c (generic_tunings): Set extra_tuning_flags.
17719 (cortexa53_tunings): Likewise.
17720 (cortexa57_tunings): Likewise.
17721 (thunderx_tunings): Likewise.
17722 (xgene1_tunings): Likewise.
17723 (cortexa72_tunings): New.
17724 * config/aarch64/cortex-a57-fma-steering.c: Include aarch64-protos.h.
17725 (gate): Check against aarch64_tune_params.
17726 * config/aarch64/t-aarch64 (cortex-a57-fma-steering.o): Depend on
17727 aarch64-protos.h.
17728
17729 2015-06-26 James Greenhalgh <james.greenhalgh@arm.com>
17730
17731 * config/aarch64/aarch64-fusion-pairs.def: New.
17732 * config/aarch64/aarch64-protos.h (aarch64_fusion_pairs): New.
17733 * config/aarch64/aarch64.c (AARCH64_FUSE_NOTHING): Move to
17734 aarch64_fusion_pairs.
17735 (AARCH64_FUSE_MOV_MOVK): Likewise.
17736 (AARCH64_FUSE_ADRP_ADD): Likewise.
17737 (AARCH64_FUSE_MOVK_MOVK): Likewise.
17738 (AARCH64_FUSE_ADRP_LDR): Likewise.
17739 (AARCH64_FUSE_CMP_BRANCH): Likewise.
17740
17741 2015-06-26 Jiong Wang <jiong.wang@arm.com>
17742
17743 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): New type
17744 SYMBOL_SMALL_GOT_28K.
17745 * config/aarch64/aarch64.md: (ldr_got_small_<mode>): Support new GOT
17746 relocation modifiers.
17747 (unspec): New enum "UNSPEC_GOTMALLPIC28K.
17748 (ldr_got_small_28k_<mode>): New.
17749 (ldr_got_small_28k_sidi): New.
17750 * config/aarch64/iterators.md (got_modifier): New mode iterator.
17751 * config/aarch64/aarch64-otps.h (aarch64_code_model): New model.
17752 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
17753 SYMBOL_SMALL_GOT_28K.
17754 (aarch64_rtx_costs): Add costs for new instruction sequences.
17755 (initialize_aarch64_code_model): Initialize new model.
17756 (aarch64_classify_symbol): Recognize new model and new symbol classification.
17757 (aarch64_asm_preferred_eh_data_format): Support new model.
17758 (aarch64_load_symref_appropriately): Generate new instruction
17759 sequences for -fpic.
17760 (TARGET_USE_PSEUDO_PIC_REG): New definition.
17761 (aarch64_use_pseudo_pic_reg): New function.
17762
17763 2015-06-26 Jiong Wang <jiong.wang@arm.com>
17764
17765 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
17766 SYMBOL_SMALL_GOT to SYMBOL_SMALL_GOT_4G.
17767 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto.
17768 (aarch64_expand_mov_immediate): Ditto.
17769 (aarch64_print_operand): Ditto.
17770 (aarch64_classify_symbol): Ditto.
17771
17772 2015-06-26 Nathan Sidwell <nathan@codesourcery.com>
17773
17774 * config/nvptx/nvptx.md (call_operation): Remove unused variables.
17775
17776 2015-06-26 Bin Cheng <bin.cheng@arm.com>
17777
17778 PR bootstrap/66638
17779 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Skip if
17780 assertion failed. Remove assertion itself.
17781
17782 2015-06-26 Richard Biener <rguenther@suse.de>
17783
17784 * fold-const.c (fold_binary_loc): Remove -A CMP -B -> A CMP B
17785 and -A CMP CST -> A CMP -CST which is redundant with a pattern
17786 in match.pd.
17787 Move (A | C) == D where C & ~D != 0 -> 0, (X ^ Y) ==/!= 0 -> X ==/!= Y,
17788 (X ^ Y) ==/!= {Y,X} -> {X,Y} ==/!= 0 and
17789 (X ^ C1) op C2 -> X op (C1 ^ C2) to ...
17790 * match.pd: ... patterns here.
17791
17792 2015-06-26 Marek Polacek <polacek@redhat.com>
17793
17794 * match.pd ((x | y) & ~(x & y) -> x ^ y,
17795 (x | y) & (~x ^ y) -> x & y): New patterns.
17796
17797 2015-06-26 Richard Sandiford <richard.sandiford@arm.com>
17798
17799 * rtl.h (emit): Add an optional boolean parameter to control
17800 whether barriers are emitted.
17801 * emit-rtl.c (emit): Likewise.
17802 * gensupport.c (get_emit_function): Return null rather than "emit".
17803 * genemit.c (gen_emit_seq): Handle the null return value.
17804 Don't emit barriers after the final instruction in the sequence.
17805 * gentarget-def.c (main): Don't emit barriers after the instruction.
17806
17807 2015-06-26 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
17808
17809 * config/arm/arm.c (arm_output_multireg_pop): Fix use of
17810 TARGET_UNIFIED_ASM.
17811
17812 2015-06-26 Richard Biener <rguenther@suse.de>
17813
17814 * match.pd: Allow associating FLOAT_TYPE_P when flag_associative_math.
17815
17816 2015-06-26 Richard Biener <rguenther@suse.de>
17817
17818 * match.pd: Allow (p +p off1) +p off2 to (p +p (off1 + off2))
17819 irrespective on whether the inner operation has a single use
17820 of both off are constant.
17821
17822 2015-06-26 Uros Bizjak <ubizjak@gmail.com>
17823 Segher Boessenkool <segher@kernel.crashing.org>
17824
17825 PR target/66412
17826 * config/i386/i386.md (various splitters): Use shallow_copy_rtx
17827 before doing PUT_MODE or PUT_CODE on operands to avoid
17828 in-place RTX modification.
17829
17830 2015-06-25 H.J. Lu <hongjiu.lu@intel.com>
17831
17832 * gentarget-def.c (def_target_insn): Cast return of strtol to
17833 unsigned int.
17834
17835 2015-06-25 Andrew MacLeod <amacleod@redhat.com>
17836
17837 * gimple.h (gimple_call_set_fn): Move inline function.
17838 * gimple.c (gimple_call_set_fn): Relocate here.
17839
17840 2015-06-25 Oleg Endo <olegendo@gcc.gnu.org>
17841
17842 PR target/65979
17843 PR target/66611
17844 * config/sh/sh.md (tstsi_t peephole2): Use insn_invalid_p to check if
17845 the replacement insn will work.
17846
17847 2015-06-25 H.J. Lu <hongjiu.lu@intel.com>
17848
17849 * gcc.c (driver_handle_option): Validate -pie if PIE is enabled
17850 by default.
17851
17852 2015-06-25 Andrew MacLeod <amacleod@redhat.com>
17853
17854 * function.h (ipa_opt_pass, ipa_opt_pass_d): Move forward declarations.
17855 * cgraph.h: Include ipa-ref.h and plugin-api.h.
17856 (ipa_opt_pass, ipa_opt_pass_d)): Relocate forward declarations here.
17857 (symtab_node::address_can_be_compared_p): Move function.
17858 * cgraph.c (symtab_node::address_can_be_compared_p): Relocate function
17859 definition here.
17860 * asan.c: Remove ipa-ref.h and plugin-api.h from include list.
17861 * auto-profile.c: Likewise.
17862 * bb-reorder.c: Likewise.
17863 * builtins.c: Likewise.
17864 * calls.c: Likewise.
17865 * cfgexpand.c: Likewise.
17866 * cgraphbuild.c: Likewise.
17867 * cgraphclones.c: Likewise.
17868 * cgraphunit.c: Likewise.
17869 * combine.c: Likewise.
17870 * coverage.c: Likewise.
17871 * data-streamer-in.c: Likewise.
17872 * data-streamer-out.c: Likewise.
17873 * data-streamer.c: Likewise.
17874 * dbxout.c: Likewise.
17875 * dwarf2out.c: Likewise.
17876 * except.c: Likewise.
17877 * expr.c: Likewise.
17878 * final.c: Likewise.
17879 * fold-const.c: Likewise.
17880 * ggc-page.c: Likewise.
17881 * gimple-fold.c: Likewise.
17882 * gimple-iterator.c: Likewise.
17883 * gimple-pretty-print.c: Likewise.
17884 * gimple-streamer-in.c: Likewise.
17885 * gimple-streamer-out.c: Likewise.
17886 * gimple.c: Likewise.
17887 * gimplify.c: Likewise.
17888 * ipa-chkp.c: Likewise.
17889 * ipa-comdats.c: Likewise.
17890 * ipa-cp.c: Likewise.
17891 * ipa-devirt.c: Likewise.
17892 * ipa-icf-gimple.c: Likewise.
17893 * ipa-icf.c: Likewise.
17894 * ipa-inline-analysis.c: Likewise.
17895 * ipa-inline-transform.c: Likewise.
17896 * ipa-inline.c: Likewise.
17897 * ipa-polymorphic-call.c: Likewise.
17898 * ipa-profile.c: Likewise.
17899 * ipa-prop.c: Likewise.
17900 * ipa-pure-const.c: Likewise.
17901 * ipa-ref.c: Likewise.
17902 * ipa-reference.c: Likewise.
17903 * ipa-split.c: Likewise.
17904 * ipa-utils.c: Likewise.
17905 * ipa-visibility.c: Likewise.
17906 * ipa.c: Likewise.
17907 * langhooks.c: Likewise.
17908 * lto-cgraph.c: Likewise.
17909 * lto-compress.c: Likewise.
17910 * lto-opts.c: Likewise.
17911 * lto-section-in.c: Likewise.
17912 * lto-section-out.c: Likewise.
17913 * lto-streamer-in.c: Likewise.
17914 * lto-streamer-out.c: Likewise.
17915 * lto-streamer.c: Likewise.
17916 * omp-low.c: Likewise.
17917 * opts-global.c: Likewise.
17918 * passes.c: Likewise.
17919 * predict.c: Likewise.
17920 * print-tree.c: Likewise.
17921 * profile.c: Likewise.
17922 * ree.c: Likewise.
17923 * sanopt.c: Likewise.
17924 * stor-layout.c: Likewise.
17925 * symtab.c: Likewise.
17926 * toplev.c: Likewise.
17927 * trans-mem.c: Likewise.
17928 * tree-cfg.c: Likewise.
17929 * tree-chkp.c: Likewise.
17930 * tree-eh.c: Likewise.
17931 * tree-emutls.c: Likewise.
17932 * tree-inline.c: Likewise.
17933 * tree-nested.c: Likewise.
17934 * tree-parloops.c: Likewise.
17935 * tree-pretty-print.c: Likewise.
17936 * tree-profile.c: Likewise.
17937 * tree-sra.c: Likewise.
17938 * tree-ssa-alias.c: Likewise.
17939 * tree-ssa-live.c: Likewise.
17940 * tree-ssa-loop-ivcanon.c: Likewise.
17941 * tree-ssa-loop-ivopts.c: Likewise.
17942 * tree-ssa-pre.c: Likewise.
17943 * tree-ssa-sccvn.c: Likewise.
17944 * tree-ssa-strlen.c: Likewise.
17945 * tree-ssa-structalias.c: Likewise.
17946 * tree-streamer-in.c: Likewise.
17947 * tree-streamer-out.c: Likewise.
17948 * tree-streamer.c: Likewise.
17949 * tree-switch-conversion.c: Likewise.
17950 * tree-tailcall.c: Likewise.
17951 * tree-vect-data-refs.c: Likewise.
17952 * tree-vect-stmts.c: Likewise.
17953 * tree-vectorizer.c: Likewise.
17954 * tree.c: Likewise.
17955 * tsan.c: Likewise.
17956 * ubsan.c: Likewise.
17957 * value-prof.c: Likewise.
17958 * varasm.c: Likewise.
17959 * varpool.c: Likewise.
17960 * config/arm/arm.c: Likewise.
17961 * config/bfin/bfin.c: Likewise.
17962 * config/c6x/c6x.c: Likewise.
17963 * config/cris/cris.c: Likewise.
17964 * config/darwin-c.c: Likewise.
17965 * config/darwin.c: Likewise.
17966 * config/i386/i386.c: Likewise.
17967 * config/i386/winnt.c: Likewise.
17968 * config/microblaze/microblaze.c: Likewise.
17969 * config/mips/mips.c: Likewise.
17970 * config/rs6000/rs6000.c: Likewise.
17971 * config/rx/rx.c: Likewise.
17972 * config/s390/s390.c: Likewise.
17973 * config/tilegx/mul-tables.c: Likewise.
17974
17975 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17976
17977 * config/aarch64/aarch64.c, config/alpha/alpha.c,
17978 config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
17979 config/c6x/c6x.c, config/cr16/cr16.c, config/cris/cris.c,
17980 config/fr30/fr30.c, config/frv/frv.c, config/h8300/h8300.c,
17981 config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
17982 config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
17983 config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
17984 config/microblaze/microblaze.c, config/mips/mips.c,
17985 config/mmix/mmix.c, config/mn10300/mn10300.c,
17986 config/moxie/moxie.c, config/msp430/msp430.c,
17987 config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
17988 config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
17989 config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
17990 config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
17991 config/stormy16/stormy16.c, config/tilegx/tilegx.c,
17992 config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
17993 config/visium/visium.c, config/xtensa/xtensa.c: Add comment above
17994 target-def.h include.
17995 * config/ft32/ft32.c: Likewise. Fix misapplied hunk.
17996
17997 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
17998
17999 * Makefile.in (TARGET_DEF): Add target-insns.def.
18000 (.PRECIOUS, simple_rtl_generated_h): Add insn-target-def.h.
18001 (build/gentarget-def.o): New rule.
18002 (genprogrtl): Add target-def.
18003 * target-insns.def, gentarget-def.c: New files.
18004 * target.def: Add targetm.have_* and targetm.gen_* hooks,
18005 based on the contents of target-insns.def.
18006 * defaults.h (HAVE_simple_return, gen_simple_return): Delete.
18007 (HAVE_return, gen_return): Delete.
18008 * target-def.h: Include insn-target-def.h.
18009 * cfgrtl.c (force_nonfallthru_and_redirect): Use targetm interface
18010 instead of direct calls. Rely on them to do the appropriate assertions.
18011 * function.c (gen_return_pattern): Likewise. Return an rtx_insn *.
18012 (convert_jumps_to_returns): Use targetm interface instead of
18013 direct calls.
18014 (thread_prologue_and_epilogue_insns): Likewise.
18015 * reorg.c (find_end_label, dbr_schedule): Likewise.
18016 * shrink-wrap.h (SHRINK_WRAPPING_ENABLED): Likewise.
18017 * shrink-wrap.c (convert_to_simple_return): Likewise.
18018 (try_shrink_wrapping): Use SHRINK_WRAPPING_ENABLED.
18019
18020 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
18021
18022 * config/aarch64/aarch64.c, config/alpha/alpha.c, config/arm/arm.c,
18023 config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
18024 config/cr16/cr16.c, config/cris/cris.c, config/fr30/fr30.c,
18025 config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
18026 config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
18027 config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
18028 config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
18029 config/microblaze/microblaze.c, config/mips/mips.c, config/mmix/mmix.c,
18030 config/mn10300/mn10300.c, config/moxie/moxie.c, config/msp430/msp430.c,
18031 config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
18032 config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
18033 config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
18034 config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
18035 config/stormy16/stormy16.c, config/tilegx/tilegx.c,
18036 config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
18037 config/visium/visium.c, config/xtensa/xtensa.c: Move target-def.h
18038 includes to end.
18039
18040 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
18041
18042 * hash-map-traits.h (simple_hashmap_traits::key_type): New typedef.
18043 (unbounded_int_hashmap_traits::key_type): Likewise.
18044 * hash-map.h (hash_map): Get the key type from the traits.
18045 * hash-traits.h (default_hash_traits): By default, inherit from the
18046 template parameter.
18047 * alias.c (alias_set_traits): Delete.
18048 (alias_set_entry_d::children): Use alias_set_hash as the first
18049 template parameter.
18050 (record_alias_subset): Update accordingly.
18051 * except.c (tree_hash_traits): Delete.
18052 (type_to_runtime_map): Use tree_hash as the first template parameter.
18053 (init_eh): Update accordingly.
18054 * genmatch.c (capture_id_map_hasher): Delete.
18055 (cid_map_t): Use nofree_string_hash as first template parameter.
18056 * ipa-icf.h (symbol_compare_hashmap_traits): Delete.
18057 * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
18058 Use symbol_compare_hash as the first template parameter in
18059 subdivide_hash_map.
18060 * mem-stats.h (mem_usage_pair::mem_alloc_hashmap_traits): Delete.
18061 (mem_usage_pair::mem_map_t): Use mem_location_hash as the first
18062 template parameter.
18063 * passes.c (pass_registry_hasher): Delete.
18064 (name_to_pass_map): Use nofree_string_hash as the first template
18065 parameter.
18066 (register_pass_name): Update accordingly.
18067 * sanopt.c (sanopt_tree_map_traits): Delete.
18068 (sanopt_tree_triplet_map_traits): Delete.
18069 (sanopt_ctx::asan_check_map): Use tree_operand_hash as the first
18070 template parameter.
18071 (sanopt_ctx::vptr_check_map): Use sanopt_tree_triplet_hash as
18072 the first template parameter.
18073 * sese.c (rename_map_hasher): Delete.
18074 (rename_map_type): Use tree_ssa_name_hash as the first template
18075 parameter.
18076 * symbol-summary.h (function_summary::summary_hashmap_traits): Delete.
18077 (function_summary::m_map): Use map_hash as the first template
18078 parameter.
18079 (function_summary::release): Update accordingly.
18080 * tree-if-conv.c (phi_args_hash_traits): Delete.
18081 (predicate_scalar_phi): Use tree_operand_hash as the first template
18082 parameter to phi_arg_map.
18083 * tree-inline.h (dependence_hasher): Delete.
18084 (copy_body_data::dependence_map): Use dependence_hash as the first
18085 template parameter.
18086 * tree-inline.c (remap_dependence_clique): Update accordingly.
18087 * tree-ssa-strlen.c (stridxlist_hash_traits): Delete.
18088 (decl_to_stridxlist_htab): Use tree_decl_hash as the first template
18089 parameter.
18090 (addr_stridxptr): Update accordingly.
18091 * value-prof.c (profile_id_traits): Delete.
18092 (cgraph_node_map): Use profile_id_hash as the first template
18093 parameter.
18094 (init_node_map): Update accordingly.
18095 * config/alpha/alpha.c (string_traits): Delete.
18096 (machine_function::links): Use nofree_string_hash as the first
18097 template parameter.
18098 (alpha_use_linkage, alpha_write_linkage): Update accordingly.
18099 * config/m32c/m32c.c (pragma_traits): Delete.
18100 (pragma_htab): Use nofree_string_hash as the first template parameter.
18101 (m32c_note_pragma_address): Update accordingly.
18102 * config/mep/mep.c (pragma_traits): Delete.
18103 (pragma_htab): Use nofree_string_hash as the first template parameter.
18104 (mep_note_pragma_flag): Update accordingly.
18105 * config/mips/mips.c (mips16_flip_traits): Delete.
18106 (mflip_mips16_htab): Use nofree_string_hash as the first template
18107 parameter.
18108 (mflip_mips16_use_mips16_p): Update accordingly.
18109 (local_alias_traits): Delete.
18110 (mips16_local_aliases): Use nofree_string_hash as the first template
18111 parameter.
18112 (mips16_local_alias): Update accordingly.
18113
18114 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
18115
18116 * hash-map-traits.h (default_hashmap_traits): Delete.
18117
18118 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
18119
18120 * hash-map-traits.h (unbounded_hashmap_traits): New class.
18121 (unbounded_int_hashmap_traits): Likewise.
18122 * cfgexpand.c (part_traits): Use unbounded_int_hashmap_traits.
18123
18124 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
18125
18126 * ipa-icf.h (symbol_compare_hash): New class.
18127 (symbol_compare_hashmap_traits): Use it.
18128 * mem-stats.h (mem_alloc_description::mem_location_hash): New class.
18129 (mem_alloc_description::mem_alloc_hashmap_traits): Use it.
18130 (mem_alloc_description::reverse_mem_map_t): Remove redundant
18131 default_hashmap_traits.
18132 * sanopt.c (sanopt_tree_triplet_hash): New class.
18133 (sanopt_tree_triplet_map_traits): Use it.
18134
18135 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
18136
18137 * gengtype-parse.c (require_template_declaration): Allow '+' in
18138 template parameters. Consolidate cases.
18139 * hash-traits.h (int_hash): New class.
18140 * alias.c (alias_set_hash): New structure.
18141 (alias_set_traits): Use it.
18142 * symbol-summary.h (function_summary::map_hash): New class.
18143 (function_summary::summary_hashmap_traits): Use it.
18144 * tree-inline.h (dependence_hash): New class.
18145 (dependence_hasher): Use it.
18146 * tree-ssa-reassoc.c (oecount_hasher): Use int_hash.
18147 * value-prof.c (profile_id_hash): New class.
18148 (profile_id_traits): Use it.
18149
18150 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
18151
18152 * config/mips/mips.c (mips16_flip_traits): Use it.
18153 (local_alias_traits, mips16_local_aliases): Convert from a map of
18154 rtxes to a map of symbol names.
18155 (mips16_local_alias): Update accordingly.
18156
18157 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
18158
18159 * hash-traits.h (string_hash, nofree_string_hash): New classes.
18160 * genmatch.c (capture_id_map_hasher): Use nofree_string_hash.
18161 * passes.c (pass_registry_hasher): Likewise.
18162 * config/alpha/alpha.c (string_traits): Likewise.
18163 * config/i386/winnt.c (i386_find_on_wrapper_list): Likewise.
18164 * config/m32c/m32c.c (pragma_traits): Likewise.
18165 * config/mep/mep.c (pragma_traits): Likewise.
18166
18167 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
18168
18169 * tree-hash-traits.h (tree_hash): New class.
18170 * except.c: Include tree-hash-traits.h.
18171 (tree_hash_traits): Use tree_hash.
18172
18173 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
18174
18175 * tree-hash-traits.h (tree_ssa_name_hasher): New class.
18176 * sese.c: Include tree-hash-traits.h.
18177 (rename_map_hasher): Use tree_ssa_name_hasher.
18178
18179 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
18180
18181 * tree-hash-traits.h (tree_decl_hash): New class.
18182 * tree-ssa-strlen.c: Include tree-hash-traits.h.
18183 (stridxlist_hash_traits): Use tree_decl_hash.
18184
18185 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
18186
18187 * tree-hash-traits.h: New file.
18188 (tree_operand_hash): New class.
18189 * sanopt.c: Include tree-hash-traits.h.
18190 (sanopt_tree_map_traits): Use tree_operand_hash.
18191 * tree-if-conv.c: Include tree-hash-traits.h.
18192 (phi_args_hash_traits): Use tree_operand_hash.
18193 * tree-ssa-uncprop.c: Include tree-hash-traits.h.
18194 (val_ssa_equiv_hash_traits): Use tree_operand_hash.
18195
18196 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
18197
18198 * hash-map-traits.h: Include hash-traits.h.
18199 (simple_hashmap_traits): New class.
18200 * mem-stats.h (hash_map): Change the default traits to
18201 simple_hashmap_traits<default_hash_traits<Key> >.
18202
18203 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
18204
18205 * hash-table.h: Update comments.
18206
18207 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
18208
18209 * hash-traits.h (default_hash_traits): New structure.
18210 * hash-set.h (default_hashset_traits): Delete.
18211 (hash_set): Use default_hash_traits<Key> instead of
18212 default_hashset_traits. Delete hash_entry type and use Key directly.
18213 * ipa-devirt.c (pair_traits): Delete.
18214 (default_hash_traits <type_pair>): Override.
18215 (odr_subtypes_equivalent_p): Remove pair_types template parameter.
18216 (odr_types_equivalent_p, add_type_duplicate): Likewise.
18217
18218 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
18219
18220 * hash-traits.h (typed_noop_remove): Don't require a pointer type.
18221
18222 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
18223
18224 * hash-table.h (has_is_deleted, is_deleted_helper): Delete.
18225 (has_is_empty, is_empty_helper): Delete.
18226 (has_mark_deleted, mark_deleted_helper): Delete.
18227 (has_mark_empty, mark_empty_helper): Delete.
18228 (hash_table::is_deleted): Call the Descriptor unconditionally.
18229 (hash_table::is_empty): Likewise.
18230 (hash_table::mark_deleted): Likewise.
18231 (hash_table::mark_empty): Likewise.
18232
18233 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
18234
18235 * cgraph.h (asmname_hasher): Inherit from ggc_ptr_hash. Remove
18236 redundant typedefs and members.
18237 * coverage.c (counts_entry): Inherit from pointer_hash. Remove
18238 redundant typedefs.
18239 * dwarf2out.c (cu_hash_table_entry_hasher): Likewise.
18240 * ipa-devirt.c (odr_name_hasher): Likewise.
18241 (polymorphic_call_target_hasher): Likewise.
18242 * ira-costs.c (cost_classes_hasher): Likewise.
18243 * statistics.c (stats_counter_hasher): Likewise.
18244 * trans-mem.c (log_entry_hasher): Likewise.
18245 * tree-ssa-dom.c (expr_elt_hasher): Likewise.
18246 * tree-ssa-sccvn.c (vn_phi_hasher, vn_reference_hasher): Likewise.
18247 * tree-ssa-tail-merge.c (same_succ_def): Likewise.
18248 * var-tracking.c (variable_hasher): Likewise.
18249 * valtrack.h (dead_debug_hash_descr): Inherit from free_ptr_hash.
18250 Remove redundant typedefs and members.
18251
18252 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
18253
18254 * hash-traits.h (ggc_cache_hasher): Rename to...
18255 (ggc_cache_remove): ...this and remove typedefs.
18256 (ggc_cache_ptr_hash): New class.
18257 * hash-table.h: Update commentary.
18258 * emit-rtl.c (const_int_hasher): Inherit from ggc_cache_ptr_hash
18259 rather than ggc_cache_hasher.
18260 (const_wide_int_hasher, reg_attr_hasher): Likewise.
18261 (const_double_hasher, const_fixed_hasher): Likewise.
18262 * function.c (insn_cache_hasher): Likewise.
18263 * trans-mem.c (tm_wrapper_hasher): Likewise.
18264 * tree.h (tree_decl_map_cache_hasher): Likewise.
18265 * tree.c (type_cache_hasher, int_cst_hasher): Likewise.
18266 (cl_option_hasher, tree_vec_map_cache_hasher): Likewise.
18267 * ubsan.c (tree_type_map_cache_hasher): Likewise.
18268 * varasm.c (tm_clone_hasher): Likewise.
18269 * config/i386/i386.c (dllimport_hasher): Likewise.
18270 * config/nvptx/nvptx.c (declared_libfunc_hasher): Likewise.
18271 (tree_hasher): Likewise.
18272
18273 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
18274
18275 * hash-traits.h (ggc_hasher): Rename to...
18276 (ggc_remover): ...this and remove typedefs.
18277 (ggc_cache_hasher): Update accordingly. Add typedefs.
18278 (ggc_ptr_hash): New class.
18279 * hash-table.h: Update comment.
18280 * cfgloop.h (loop_exit_hasher): Inherit from ggc_ptr_hash rather than
18281 ggc_hasher.
18282 * cgraph.h (section_name_hasher, cgraph_edge_hasher): Likewise.
18283 (tree_descriptor_hasher): Likewise.
18284 * cgraph.c (function_version_hasher): Likewise.
18285 * dwarf2out.c (indirect_string_hasher, dwarf_file_hasher): Likewise.
18286 (decl_die_hasher, block_die_hasher, decl_loc_hasher): Likewise.
18287 (dw_loc_list_hasher, addr_hasher): Likewise.
18288 * function.h (used_type_hasher): Likewise.
18289 * function.c (temp_address_hasher): Likewise.
18290 * gimple-ssa.h (tm_restart_hasher, ssa_name_hasher): Likewise.
18291 * libfuncs.h (libfunc_hasher): Likewise.
18292 * lto-streamer.h (decl_state_hasher): Likewise.
18293 * optabs.c (libfunc_decl_hasher): Likewise.
18294 * tree-scalar-evolution.c (scev_info_hasher): Likewise.
18295 * varasm.c (section_hasher, object_block_hasher): Likewise.
18296 (const_rtx_desc_hasher): Likewise.
18297 * config/darwin.c (indirection_hasher, cfstring_hasher): Likewise.
18298 * config/rs6000/rs6000.c (toc_hasher, builtin_hasher): Likewise.
18299
18300 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
18301
18302 * hash-traits.h (free_ptr_hash): New class.
18303 * dwarf2out.c (decl_table_entry_hasher): Inherit from free_ptr_hash
18304 rather than typed_free_remove. Remove redudant typedefs.
18305 (external_ref_hasher): Likewise.
18306 * except.c (action_record_hasher, ttypes_filter_hasher): Likewise.
18307 (ehspec_hasher): Likewise.
18308 * ggc-common.c (saving_hasher): Likewise.
18309 * gimplify.c (gimplify_hasher): Likewise.
18310 * haifa-sched.c (delay_i2_hasher): Likewise.
18311 * loop-invariant.c (invariant_expr_hasher): Likewise.
18312 * loop-iv.c (biv_entry_hasher): Likewise.
18313 * loop-unroll.c (iv_split_hasher, var_expand_hasher): Likewise.
18314 * trans-mem.c (tm_mem_map_hasher, tm_memop_hasher): Likewise.
18315 * tree-cfg.c (locus_discrim_hasher): Likewise.
18316 * tree-eh.c (finally_tree_hasher): Likewise.
18317 * tree-into-ssa.c (var_info_hasher): Likewise.
18318 * tree-parloops.c (reduction_hasher, name_to_copy_hasher): Likewise.
18319 * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher): Likewise.
18320 * tree-ssa-phiopt.c (ssa_names_hasher): Likewise.
18321 * tree-ssa-pre.c (expr_pred_trans_d): Likewise.
18322 * tree-ssa-sccvn.c (vn_constant_hasher): Likewise.
18323 * tree-ssa-structalias.c (equiv_class_hasher): Likewise.
18324 (shared_bitmap_hasher): Likewise.
18325 * tree-ssa-threadupdate.c (redirection_data): Likewise.
18326 * tree-vectorizer.h (peel_info_hasher): Likewise.
18327 * tree-vectorizer.c (simduid_to_vf, simd_array_to_simduid): Likewise.
18328 * config/mips/mips.c (mips_lo_sum_offset_hasher): Likewise.
18329
18330 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
18331
18332 * hash-table.h: Update comments.
18333 * hash-traits.h (pointer_hash): Don't inherit from typed_noop_remove.
18334 (nofree_ptr_hash): New class.
18335 * asan.c (asan_mem_ref_hasher): Inherit from nofree_ptr_hash rather
18336 than typed_noop_remove. Remove redudant typedefs.
18337 * attribs.c (attribute_hasher): Likewise.
18338 * cfg.c (bb_copy_hasher): Likewise.
18339 * cselib.c (cselib_hasher): Likewise.
18340 * dse.c (invariant_group_base_hasher): Likewise.
18341 * dwarf2cfi.c (trace_info_hasher): Likewise.
18342 * dwarf2out.c (macinfo_entry_hasher): Likewise.
18343 (comdat_type_hasher, loc_list_hasher): Likewise.
18344 * gcse.c (pre_ldst_expr_hasher): Likewise.
18345 * genmatch.c (id_base): Likewise.
18346 * genrecog.c (test_pattern_hasher): Likewise.
18347 * gimple-ssa-strength-reduction.c (cand_chain_hasher): Likewise.
18348 * haifa-sched.c (delay_i1_hasher): Likewise.
18349 * hard-reg-set.h (simplifiable_subregs_hasher): Likewise.
18350 * ipa-icf.h (congruence_class_group_hash): Likewise.
18351 * ipa-profile.c (histogram_hash): Likewise.
18352 * ira-color.c (allocno_hard_regs_hasher): Likewise.
18353 * lto-streamer.h (string_slot_hasher): Likewise.
18354 * lto-streamer.c (tree_entry_hasher): Likewise.
18355 * plugin.c (event_hasher): Likewise.
18356 * postreload-gcse.c (expr_hasher): Likewise.
18357 * store-motion.c (st_expr_hasher): Likewise.
18358 * tree-sra.c (uid_decl_hasher): Likewise.
18359 * tree-ssa-coalesce.c (coalesce_pair_hasher): Likewise.
18360 (ssa_name_var_hash): Likewise.
18361 * tree-ssa-live.c (tree_int_map_hasher): Likewise.
18362 * tree-ssa-loop-im.c (mem_ref_hasher): Likewise.
18363 * tree-ssa-pre.c (pre_expr_d): Likewise.
18364 * tree-ssa-sccvn.c (vn_nary_op_hasher): Likewise.
18365 * vtable-verify.h (registration_hasher): Likewise.
18366 * vtable-verify.c (vtbl_map_hasher): Likewise.
18367 * config/arm/arm.c (libcall_hasher): Likewise.
18368 * config/i386/winnt.c (wrapped_symbol_hasher): Likewise.
18369 * config/ia64/ia64.c (bundle_state_hasher): Likewise.
18370 * config/sol2.c (comdat_entry_hasher): Likewise.
18371 * fold-const.c (fold): Use nofree_ptr_hash instead of pointer_hash.
18372 (print_fold_checksum, fold_checksum_tree): Likewise.
18373 (debug_fold_checksum, fold_build1_stat_loc): Likewise.
18374 (fold_build2_stat_loc, fold_build3_stat_loc): Likewise.
18375 (fold_build_call_array_loc): Likewise.
18376 * tree-ssa-ccp.c (gimple_htab): Likewise.
18377 * tree-browser.c (tree_upper_hasher): Inherit from nofree_ptr_hash
18378 rather than pointer_type.
18379
18380 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
18381
18382 * hash-traits.h (pointer_hash::mark_deleted, pointer_hash::mark_empty)
18383 (pointer_hash::is_deleted, pointer_hash::is_empty): New functions.
18384
18385 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
18386
18387 * hash-traits.h (ggc_hasher::remove): Take a reference parameter.
18388 (ggc_hasher::ggc_mx): Likewise.
18389 (ggc_cache_hasher): Inherit from ggc_hasher. Remove definitions
18390 that duplicate ggc_hasher ones.
18391
18392 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
18393
18394 * hash-table.h (hash_table): Add gt_cleare_cache as a friend.
18395 (gt_cleare_cache): Check here for deleted and empty entries.
18396 Replace handle_cache_entry with a call to keep_cache_entry.
18397 * hash-traits.h (ggc_cache_hasher::handle_cache_entry): Delete.
18398 (ggc_cache_hasher::keep_cache_entry): New function.
18399 * trans-mem.c (tm_wrapper_hasher::handle_cache_entry): Delete.
18400 (tm_wrapper_hasher::keep_cache_entry): New function.
18401 * tree.h (tree_decl_map_cache_hasher::handle_cache_entry): Delete.
18402 (tree_vec_map_cache_hasher::keep_cache_entry): New function.
18403 * tree.c (type_cache_hasher::handle_cache_entry): Delete.
18404 (type_cache_hasher::keep_cache_entry): New function.
18405 (tree_vec_map_cache_hasher::handle_cache_entry): Delete.
18406 (tree_vec_map_cache_hasher::keep_cache_entry): New function.
18407 * ubsan.c (tree_type_map_cache_hasher::handle_cache_entry): Delete.
18408 (tree_type_map_cache_hasher::keep_cache_entry): New function.
18409 * varasm.c (tm_clone_hasher::handle_cache_entry): Delete.
18410 (tm_clone_hasher::keep_cache_entry): New function.
18411 * config/i386/i386.c (dllimport_hasher::handle_cache_entry): Delete.
18412 (dllimport_hasher::keep_cache_entry): New function.
18413
18414 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
18415
18416 * hash-table.h: Include hash-traits.h.
18417 (typed_free_remove, typed_noop_remove, pointer_hash, ggc_hasher)
18418 (ggc_cache_hasher): Move to...
18419 * hash-traits.h: ...this new file.
18420
18421 2015-06-25 Andrew MacLeod <amacleod@redhat.com>
18422
18423 * tree-core.h (struct tree_optimization_option): Make opts a pointer to
18424 struct cl_optimization.
18425 * tree.h (TREE_OPTIMIZATION): Return the pointer, not the address of it.
18426 * tree.c (make_node_stat): Allocate cl_optimization struct.
18427 (copy_node_stat): Allocate and copy cl_optimization struct.
18428
18429 2015-06-25 Andrew MacLeod <amacleod@redhat.com>
18430
18431 * function.h (struct incoming_args): Move struct.
18432 (pass_by_reference, reference_callee_copied): Remove prototypes.
18433 * emit-rtl.h (struct incoming_args): Relocate struct here.
18434 * calls.h (pass_by_reference, reference_callee_copied): Relocate
18435 prototypes here.
18436 * function.c (pass_by_reference, reference_callee_copied): Move.
18437 * calls.c (pass_by_reference, reference_callee_copied): Relocate here.
18438 * cfgloop.h: Don't include tm.h or hard-reg-set.h.
18439 * ipa-chkp.c: Include calls.h.
18440
18441 2015-06-25 Andrew Macleod <amacleod@redhat.com>
18442
18443 * alias.h (alias_set_type): Move typedef.
18444 * coretypes.h (alias_set_type): Relocate typedef here.
18445 * rtl.h: Don't include alias.h.
18446
18447 2015-06-25 Andrew MacLeod <amacleod@redhat.com>
18448
18449 * cgraph.h (cgraph_rtl_info): Move to rtl.h
18450 (cgraph_node): Maintain pointer to struct cgraph_rtl_info instead of
18451 and instance.
18452 * rtl.h (struct cgraph_rtl_info): Define when HARD_REG_SET available.
18453 * cgraph.c (cgraph_node::rtl_info): Allocate cgraph_rtl_info if one
18454 doesn't exist.
18455 * calls.c: Include hard-reg-set.h before rtl.h.
18456 * ira.c: Likewise.
18457
18458 2015-06-25 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
18459 Vladimir Makarov <vmakarov@redhat.com>
18460
18461 * ira-color.c (assign_hard_reg): Remove unecessary bitmap check.
18462 Add assert.
18463
18464 2015-06-25 Richard Biener <rguenther@suse.de>
18465
18466 * fold-const.c (fold_binary_loc): Move simplification of
18467 (X <<>> C1) & C2 ...
18468 * match.pd: ... here.
18469
18470 2015-06-25 Eric Botcazou <ebotcazou@adacore.com>
18471
18472 * lto-streamer-out.c (DFS::hash_scc): Fix typos & formatting glitches.
18473
18474 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
18475
18476 * match.pd: Add patterns for vec_conds between 1 and 0.
18477
18478 2015-06-25 Richard Biener <rguenther@suse.de>
18479
18480 * tree-vect-stmts.c (vectorizable_conversion): Do not set
18481 STMT_VINFO_VEC_STMT for SLP.
18482 (vectorizable_store): Likewise.
18483 (vectorizable_load): Likewise.
18484 (vect_transform_stmt): Catch SLP vectorization clobbering
18485 STMT_VINFO_VEC_STMT.
18486
18487 2015-06-25 Richard Biener <rguenther@suse.de>
18488
18489 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Improve debug
18490 dumping.
18491 (vect_create_mask_and_perm): Do not set STMT_VINFO_VEC_STMT and
18492 cleanup resulting dead code and parameters.
18493 (vect_transform_slp_perm_load): Adjust.
18494
18495 2015-06-25 Nick Clifton <nickc@redhat.com>
18496
18497 * config/bfin/bfin.c (bfin_expand_prologue): Set
18498 current_function_static_stack_size if flag_stack_usage_info is set.
18499 * config/ft32/ft32.c (ft32_expand_prologue): Likewise.
18500 * config/h8300/h8300.c (h8300_expand_prologue): Likewise.
18501 * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
18502 * config/m32c/m32c.c (m32c_emit_prologue): Likewise.
18503
18504 2015-06-25 Tom de Vries <tom@codesourcery.com>
18505
18506 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Don't claim in header
18507 comment that the generated IV is unsigned.
18508
18509 2015-06-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
18510
18511 PR target/29693
18512 * config/arm/arm.c (arm_dbx_register_number): Return
18513 DWARF_FRAME_REGISTERS by default.
18514
18515 2015-06-25 Tom de Vries <tom@codesourcery.com>
18516
18517 * dominance.c (calculate_dominance_info): Fix verify_dominators call
18518 argument. Call verify_dominator when reusing dominator info.
18519
18520 2015-06-24 Kaz Kojima <kkojima@gcc.gnu.org>
18521
18522 PR target/66563
18523 * config/sh/sh.md (GOTaddr2picreg): Add a new operand for
18524 an additional element of the unspec vector. Modify indices
18525 of operands.
18526 (builtin_setjmp_receiver): Pass const0_rtx to gen_GOTaddr2picreg.
18527 * config/sh/sh.c (prepare_move_operands): Pass incremented
18528 const_int to gen_GOTaddr2picreg.
18529 (sh_expand_prologue): Pass const0_rtx to gen_GOTaddr2picreg.
18530
18531 2015-06-24 Alan Lawrence <alan.lawrence@arm.com>
18532
18533 * config/aarch64/aarch64.md (<optab><fcvt_target><GPF:mode>2):
18534 Condition on TARGET_FLOAT.
18535
18536 2015-06-24 Alan Lawrence <alan.lawrence@arm.com>
18537
18538 * doc/invoke.texi: Clarify AArch64 feature modifiers (no)fp, (no)simd
18539 and (no)crypto.
18540
18541 2015-06-24 Alan Lawrence <alan.lawrence@arm.com>
18542
18543 * config/aarch64/aarch64-protos.h (aarch64_err_no_fpadvsimd): New.
18544
18545 * config/aarch64/aarch64.md (mov<mode>/GPF, movtf): Use
18546 aarch64_err_no_fpadvsimd.
18547
18548 * config/aarch64/aarch64.c (aarch64_err_no_fpadvsimd): New.
18549 (aarch64_layout_arg, aarch64_init_cumulative_args): Use
18550 aarch64_err_no_fpadvsimd if !TARGET_FLOAT and we need FP regs.
18551 (aarch64_expand_builtin_va_start, aarch64_setup_incoming_varargs):
18552 Turn error into assert, test TARGET_FLOAT.
18553 (aarch64_gimplify_va_arg_expr): Use aarch64_err_no_fpadvsimd, test
18554 TARGET_FLOAT.
18555
18556 2015-06-24 Aldy Hernandez <aldyh@redhat.com>
18557
18558 PR debug/66482
18559 * dwarf2out.c (gen_formal_parameter_die): Remove assert.
18560
18561 2015-06-24 Ilya Enkovich <enkovich.gnu@gmail.com>
18562
18563 * tree-vect-slp.c (vect_build_slp_tree_1): Init vectype.
18564
18565 2015-06-24 Renlin Li <renlin.li@arm.com>
18566
18567 * config/aarch64/aarch64.h(TARGET_CPU_CPP_BUILTINS): Add
18568 __ARM_ALIGN_MAX_PWR, __ARM_ALIGN_MAX_STACK_PWR.
18569
18570 2015-06-24 Richard Biener <rguenther@suse.de>
18571
18572 * genmatch.c (enum tree_code): Add VIEW_CONVERT[012].
18573 (main): Likewise.
18574 (lower_opt_convert): Support lowering of conditional view_convert.
18575 (parser::parse_operation): Likewise.
18576 (parser::parse_for): Likewise.
18577
18578 2015-06-24 Renlin Li <renlin.li@arm.com>
18579
18580 * varasm.c (emit_local): Use unsigned int for align variable.
18581
18582 2015-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
18583
18584 PR target/63408
18585 * config/arm/arm.c (vfp3_const_double_for_fract_bits): Disable
18586 for negative numbers.
18587
18588 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18589
18590 PR rtl-optimization/66306
18591 * reload.c (find_reloads): Swap the match_dup info for
18592 commutative operands.
18593
18594 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18595
18596 * config/s390/vx-builtins.md
18597 ("vec_scatter_element<mode>_<non_vec_int>")
18598 ("vec_scatter_element<V_HW_64:mode>_SI"): Replace gf mode
18599 attribute with bhfgq.
18600
18601 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18602
18603 * config/s390/s390-builtins.def: Fix vpopct instruction comments.
18604
18605 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18606
18607 * config/s390/s390-builtin-types.def: Add flag to indicate the
18608 options under which the function type is needed.
18609 * config/s390/s390-builtins.def: Add flag to indicate the options
18610 under which the builtin is enabled.
18611 * config/s390/s390-builtins.h: Add flags parameter to macro
18612 definitions.
18613 (bflags_for_builtin): New function.
18614 (flags_for_builtin): Renamed to ...
18615 (opflags_for_builtin): ... this.
18616 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Rename
18617 flags_for_builtin to bflags_for_builtin and
18618 flags_overloaded_builtin_var to opflags_overloaded_builtin_var.
18619 * config/s390/s390.c: Add initialization of bflags_builtin and
18620 opflags_builtin arrays.
18621 Remove code for flags_builtin.
18622 (s390_init_builtins): Only create builtin function types if one of
18623 their flags is active.
18624 Only create builtins if all of their flags are active.
18625 (s390_expand_builtin): Rename flags_for_builtin to
18626 opflags_for_builtin.
18627
18628 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18629
18630 * config/s390/vecintrin.h: Remove internal builtins.
18631
18632 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18633
18634 * config/s390/s390.c (s390_secondary_reload): Fix check for
18635 GENERAL_REGS register class.
18636
18637 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18638
18639 * config/s390/s390.c (s390_support_vector_misalignment): Call
18640 default implementation for !TARGET_VX.
18641
18642 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18643
18644 * config/s390/s390.c (s390_legitimate_constant_p): Add
18645 TARGET_VX check.
18646
18647 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18648
18649 * config/s390/s390.c (s390_vector_abi): New variable definition.
18650 (s390_check_type_for_vector_abi): New function.
18651 (TARGET_ASM_FILE_END): New macro definition.
18652 (s390_asm_file_end): New function.
18653 (s390_function_arg): Call s390_check_type_for_vector_abi.
18654 (s390_gimplify_va_arg): Likewise.
18655 * configure: Regenerate.
18656 * configure.ac: Check for .gnu_attribute Binutils feature.
18657
18658 2015-06-23 Chen Gang <gang.chen.5i5j@gmail.com>
18659
18660 PR target/65803
18661 * config/bfin/bfin.c (hwloop_optimize): Initialize
18662 JUMP_LABEL for newly created jump.
18663
18664 2015-06-23 Tristan Gingold <gingold@adacore.com>
18665
18666 * collect-utils.c (collect_wait): Unlink the response file here
18667 instead of...
18668 (do_wait): ...here.
18669 (utils_cleanup): ...and here.
18670
18671 2015-06-23 Richard Sandiford <richard.sandiford@arm.com>
18672
18673 * df-scan.c: Don't include target-def.h.
18674 * targhooks.c: Likewise.
18675 * config/arm/arm-c.c: Likewise.
18676 * config/i386/i386-c.c: Likewise.
18677 * config/nds32/nds32-cost.c: Likewise.
18678 * config/nds32/nds32-fp-as-gp.c: Likewise.
18679 * config/nds32/nds32-intrinsic.c: Likewise.
18680 * config/nds32/nds32-isr.c: Likewise.
18681 * config/nds32/nds32-md-auxiliary.c: Likewise.
18682 * config/nds32/nds32-memory-manipulation.c: Likewise.
18683 * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
18684 * config/nds32/nds32-predicates.c: Likewise.
18685
18686 2015-06-23 Richard Biener <rguenther@suse.de>
18687
18688 PR tree-optimization/66636
18689 * tree-vect-stmts.c (vectorizable_store): Properly compute the
18690 def type for further defs for strided stores.
18691
18692 2015-06-23 Nathan Sidwell <nathan@codesourcery.com>
18693
18694 * config/nvptx/nvptx.md (sel_true<mode>, sel_false<mode>): New
18695 conditional selects.
18696 (setcc_int<mode>, setcc_float<mode>): Reformat.
18697
18698 2015-06-23 Marek Polacek <polacek@redhat.com>
18699
18700 * match.pd ((x + y) - (x | y) -> x & y,
18701 (x + y) - (x & y) -> x | y): New patterns.
18702
18703 2015-06-23 Ludovic Courtès <ludo@gnu.org>
18704
18705 PR 65711
18706 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Move
18707 '-dynamic-linker' within %{!shared: ...}.
18708
18709 2015-06-23 Uros Bizjak <ubizjak@gmail.com>
18710
18711 PR target/66560
18712 * config/i386/predicates.md (addsub_vm_operator): New predicate.
18713 (addsub_vs_operator): Ditto.
18714 (addsub_vs_parallel): Ditto.
18715 * config/i386/sse.md (ssedoublemode): Add V4SF and V2DF modes.
18716 (avx_addsubv4df3, avx_addsubv8sf3, sse3_addsubv2df3, sse3_addsubv4sf3):
18717 Put minus RTX before plus and adjust vec_merge selector.
18718 (*avx_addsubv4df3_1, *avx_addsubv4df3_1s, *sse3_addsubv2df3_1)
18719 (*sse_addsubv2df3_1s, *avx_addsubv8sf3_1, *avx_addsubv8sf3_1s)
18720 (*sse3_addsubv4sf3_1, *sse_addsubv4sf3_1s): Remove insn patterns.
18721 (addsub vec_merge splitters): New combiner splitters.
18722 (addsub vec_select/vec_concat splitters): Ditto.
18723
18724 2015-06-23 Bin Cheng <bin.cheng@arm.com>
18725
18726 PR tree-optimization/66449
18727 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Use
18728 POINTER_PLUS_EXPR for pointers.
18729
18730 2015-06-23 Alan Modra <amodra@gmail.com>
18731
18732 * rtlanal.c (commutative_operand_precedence): Correct comments.
18733 * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Delete forward
18734 declaration. Return an int. Distinguish REG,REG return from
18735 others.
18736 (struct simplify_plus_minus_op_data): Make local to function.
18737 (simplify_plus_minus): Don't set canonicalized if merely sorting
18738 registers. Avoid packing ops if nothing changes. White space fixes.
18739
18740 2015-06-22 Pierre-Marie de Rodat <derodat@adacore.com>
18741
18742 * gcc.c (default_compilers): Pass "-o %g.s" to cc1 for headers even if
18743 -fdump-ada-spec is passed but not if -fsyntax-only is.
18744
18745 2015-06-22 Vladimir Makarov <vmakarov@redhat.com>
18746
18747 PR bootstrap/63740
18748 * lra-lives.c (process_bb_lives): Check insn copying the same
18749 reload pseudo and don't create a copy for it.
18750
18751 2015-06-22 Tom de Vries <tom@codesourcery.com>
18752
18753 * tree-parloops.c (transform_to_exit_first_loop_alt): Add update_stmt
18754 for cond_stmt.
18755
18756 2015-06-22 Tom de Vries <tom@codesourcery.com>
18757
18758 * builtins.def (DEF_GOMP_BUILTIN): Test
18759 'flag_tree_parallelize_loops > 1' instead of
18760 'flag_tree_parallelize_loops'. Test flag_cilkplus.
18761
18762 2015-06-22 Tom de Vries <tom@codesourcery.com>
18763
18764 * dominance.c (calculate_dominance_info): Verify dominators if
18765 early-out.
18766
18767 2015-06-22 Marek Polacek <polacek@redhat.com>
18768
18769 * match.pd ((x ^ y) ^ (x | y) -> x & y,
18770 (x & y) + (x ^ y) -> x | y, (x & y) | (x ^ y) -> x | y,
18771 (x & y) ^ (x ^ y) -> x | y, (x & y) + (x | y) -> x + y,
18772 (x | y) - (x ^ y) -> x & y, (x | y) - (x & y) -> x ^ y): New patterns.
18773
18774 2015-06-22 Uros Bizjak <ubizjak@gmail.com>
18775
18776 PR target/65871
18777 * config/i386/i386.c (ix86_rtx_costs) <case COMPARE>: Ignore the
18778 cost of embedded comparison.
18779
18780 2015-06-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18781
18782 PR target/65914
18783 * config/rs6000/predicates.md (altivec_register_operand): Permit
18784 virtual stack registers.
18785 (vsx_register_operand): Likewise.
18786 (vfloat_operand): Likewise.
18787 (vint_operand): Likewise.
18788 (vlogical_operand): Likewise.
18789
18790 2015-06-22 Richard Biener <rguenther@suse.de>
18791
18792 * tree-vectorizer.h (_loop_vec_info): Add scalar_cost_vec
18793 and single_scalar_iteration_cost members.
18794 (LOOP_VINFO_SCALAR_ITERATION_COST): New.
18795 (LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST): Likewise.
18796 (vect_get_single_scalar_iteration_cost): Remove.
18797 * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
18798 Use LOOP_VINFO_SCALAR_ITERATION_COST.
18799 * tree-vect-loop.c (destroy_loop_vec_info): Free
18800 scalar_cost_vec.
18801 (vect_get_single_scalar_iteration_cost): Compute result into
18802 LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST and
18803 LOOP_VINFO_SCALAR_ITERATION_COST. Make static.
18804 (vect_analyze_loop_2): Call vect_get_single_scalar_iteration_cost.
18805 (vect_estimate_min_profitable_iters): Use them.
18806
18807 2015-06-22 Christian Bruel <christian.bruel@st.com>
18808
18809 PR target/52144
18810 * config/arm/arm.c (add_attribute, arm_insert_attributes): New functions
18811 (TARGET_INSERT_ATTRIBUTES): Define.
18812 (thumb_flipper): New var.
18813 * config/arm/arm.opt (-mflip-thumb): New switch.
18814
18815 2015-06-22 Jan Hubicka <hubicka@ucw.cz>
18816 Martin Liska <mliska@suse.cz>
18817
18818 PR ipa/65908
18819 * ipa-icf.c (sem_item::target_supports_symbol_aliases): Remove
18820 construction of arg_types.
18821 (sem_function::sem_function): Likewise.
18822 (sem_function::~sem_function): Remove destruction of arg_types.
18823 (sem_function::compatible_parm_types_p): New function.
18824 (sem_function::equals_wpa): Reorg matching of return values
18825 and parameter types.
18826 (sem_function::equals_private): Reorg mathcing of argument types.
18827 (sem_function::parse_tree_args): Remove.
18828 * ipa-icf.h (init_wpa): Do not call it.
18829 (parse_tree_args): Remove.
18830 (compatible_parm_types_p): Declare.
18831 (result_type): Remove.
18832 (arg_types): Remove.
18833
18834 2015-06-22 Jan Hubicka <hubicka@ucw.cz>
18835
18836 PR ipa/66351
18837 * ipa-polymorphic-call.c
18838 (ipa_polymorphic_call_context::get_dynamic_type): Fix thinko when
18839 initializing alias oracle; fix formating; set base_alias_set if it
18840 is known.
18841
18842 2015-06-22 Mikhail Maltsev <maltsevm@gmail.com>
18843
18844 * auto-inc-dec.c (reverse_mem, reverse_inc): Remove.
18845 (parse_add_or_inc): Use std::swap instead of reverse_{mem,inc}.
18846 (find_inc): Likewise.
18847 * combine.c (combine_simplify_rtx): Use std::swap instead of manually
18848 swapping.
18849 * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
18850 * df-scan.c (df_swap_refs): Remove.
18851 (df_sort_and_compress_refs): Use std::swap instead of df_swap_refs.
18852 * dominance.c (link_roots): Use std::swap instead of manually swapping.
18853 * expr.c (expand_expr_real_2, do_store_flag): Likewise.
18854 * fold-const.c (fold_relational_const): Likewise.
18855 * genattrtab.c (simplify_test_exp): Likewise.
18856 * gimple-match-head.c (gimple_resimplify2, gimple_resimplify3,
18857 gimple_simplify): Likewise.
18858 * ifcvt.c (noce_try_abs, find_if_header): Likewise.
18859 * internal-fn.c (expand_addsub_overflow, expand_mul_overflow): Likewise.
18860 * ipa-devirt.c (add_type_duplicate): Likewise.
18861 * loop-iv.c (get_biv_step_1, iv_number_of_iterations): Likewise.
18862 * lra-lives.c (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
18863 * lra.c (lra_create_copy): Likewise.
18864 * lto-streamer-out.c (DFS::DFS): Likewise.
18865 * modulo-sched.c (get_sched_window): Likewise.
18866 * omega.c (omega_pretty_print_problem): Likewise.
18867 * optabs.c (prepare_float_lib_cmp, expand_mult_highpart): Likewise.
18868 * reload1.c (reloads_unique_chain_p): Likewise.
18869 * sel-sched-ir.c (exchange_lv_sets, exchange_av_sets): Remove.
18870 (exchange_data_sets): Move logic from exchange_{av,lv}_sets here and
18871 use std::swap.
18872 * simplify-rtx.c (simplify_unary_operation_1): Use std::swap instead of
18873 manually swapping.
18874 * tree-if-conv.c (is_cond_scalar_reduction, predicate_scalar_phi,
18875 predicate_mem_writes): Likewise.
18876 * tree-loop-distribution.c (pg_add_dependence_edges): Likewise.
18877 * tree-predcom.c (combine_chains): Likewise.
18878 * tree-ssa-alias.c (nonoverlapping_component_refs_p,
18879 refs_may_alias_p_1): Likewise.
18880 * tree-ssa-ifcombine.c (recognize_if_then_else): Likewise.
18881 * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
18882 * tree-ssa-loop-niter.c (refine_bounds_using_guard,
18883 number_of_iterations_cond): Likewise.
18884 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
18885 * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
18886 * tree-vect-slp.c (vect_build_slp_tree): Likewise.
18887 * tree-vect-stmts.c (supportable_widening_operation): Likewise.
18888 * tree-vrp.c (extract_range_from_binary_expr_1,
18889 extract_range_from_unary_expr_1): Likewise.
18890
18891 2015-06-20 Marek Polacek <polacek@redhat.com>
18892
18893 * common.opt (fsanitize-undefined-trap-on-error): Add Driver.
18894
18895 2015-06-19 Kaz Kojima <kkojima@gcc.gnu.org>
18896
18897 PR target/66591
18898 * config/sh/sh.c (prepare_move_operands): Replace subreg
18899 index term with R0 for base and index addressing.
18900
18901 2015-06-19 Jim Wilson <jim.wilson@linaro.org>
18902
18903 * config/aarch64/aarch64.md (mov<mode>:GPF): Don't call force_reg if
18904 op1 is an fp zero.
18905 (movsf_aarch64): Change condition from register_operand to
18906 aarch64_reg_or_fp_zero for op1. Change type for alternative 6 to
18907 load1. Change type for alternative 7 to store1.
18908 (movdf_aarch64): Likewise.
18909
18910 2015-06-19 James Greenhalgh <james.greenhalgh@arm.com>
18911
18912 * config/vax/vax.md: Adjust sign/zero extend patterns to
18913 handle SUBREGs in operands[1].
18914
18915 2015-06-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18916
18917 * config/i386/i386.c (ix86_function_versions): Use std::swap instead
18918 of manually swapping.
18919 (expand_vec_perm_interleave2): Likewise.
18920
18921 2015-06-19 Ilya Enkovich <enkovich.gnu@gmail.com>
18922
18923 * tree-chkp.c (chkp_compute_bounds_for_assignment): Don't
18924 reuse bounds created for abnormal ssa names.
18925
18926 2015-06-19 Jakub Jelinek <jakub@redhat.com>
18927
18928 * config/nvptx/nvptx.md (allocate_stack): Rename to...
18929 (allocate_stack_<mode>): ... this, and add :P on both
18930 match_operand and unspec.
18931 (allocate_stack): New expander.
18932
18933 2015-06-19 Christian Bruel <christian.bruel@st.com>
18934
18935 PR target/66541
18936 PR target/52144
18937 * config/arm/arm.c (arm_set_current_function): Handle
18938 explicit default options.
18939
18940 2015-06-18 Uros Bizjak <ubizjak@gmail.com>
18941
18942 * config/i386/i386.md (*movsicc_noc_zext): New insn.
18943 (zero-extended cmove with mem peephole2): New pattern.
18944 (cmove with mem peephole2): Merge patterns.
18945
18946 2015-06-18 Segher Boessenkool <segher@kernel.crashing.org>
18947
18948 * config/rs6000/rs6000.h (WORD_REGISTER_OPERATIONS): Delete.
18949
18950 2015-06-18 Steve Ellcey <sellcey@imgtec.com>
18951
18952 * config/mips/mips.c (mips_rtx_costs): Remove HONOR_NAN check.
18953 * config/mips/mips.md (*madd4<mode>): Ditto.
18954 (*nmadd3<mode>) Ditto.
18955 (*nmadd4<mode>_fastmath): Ditto.
18956 (*nmadd3<mode>_fastmath): Ditto.
18957 (*nmsub4<mode>): Ditto.
18958 (*nmsub3<mode>): Ditto.
18959 (*nmsub4<mode>_fastmath): Ditto.
18960 (*nmsub3<mode>_fastmath): Ditto.
18961
18962 2015-06-18 Michael Matz <matz@suse.de>
18963
18964 PR middle-end/66253
18965 * tree-vect-stmts.c (vectorizable_store): Implement non-SLP
18966 grouped strided stores.
18967 (vectorizable_load): Don't use the DR from first_stmt in
18968 the non-SLP grouped strided case.
18969
18970 2015-06-18 Ilya Enkovich <enkovich.gnu@gmail.com>
18971
18972 PR target/66569
18973 * function.c (assign_bounds): Add arguments assign_regs,
18974 assign_special, assign_bt.
18975 (assign_parms): For vararg functions handle bounds in BT
18976 and special slots after incoming vararg bounds.
18977
18978 2015-06-18 Ilya Enkovich <enkovich.gnu@gmail.com>
18979
18980 PR middle-end/66568
18981 * cfgexpand.c (expand_return): Handle missing bounds.
18982 (expand_gimple_stmt_1): Likewise.
18983 * tree-chkp.c (chkp_expand_zero_bounds): New.
18984 * tree-chkp.h (chkp_expand_zero_bounds): New.
18985
18986 2015-06-18 Ilya Enkovich <enkovich.gnu@gmail.com>
18987
18988 PR middle-end/66567
18989 * ipa-chkp.c (chkp_maybe_create_clone): Require
18990 functions to be instrumentable.
18991 * tree-chkp.c (chkp_replace_function_pointer): Use
18992 chkp_instrumentable_p instead of attribute check.
18993
18994 2015-06-18 Richard Biener <rguenther@suse.de>
18995
18996 PR tree-optimization/66510
18997 * tree-vect-stmts.c (vectorizable_load): Properly compute the
18998 number of vector loads for SLP permuted loads.
18999 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Also
19000 check the stride for loop vectorization.
19001 (vect_enhance_data_refs_alignment): Deal with SLP adjusted
19002 vectorization factor.
19003 (vect_analyze_group_access): If the group size is not a power
19004 of two require a epilogue loop.
19005 * tree-vect-loop.c (vect_analyze_loop_2): Move alignment
19006 compute and optimizing and alias test pruning after final
19007 vectorization factor computation.
19008 * tree-vect-slp.c (vect_build_slp_tree_1): Remove check on
19009 vector alignment.
19010 (vect_transform_slp_perm_load): Properly compute the original
19011 number of vector load stmts.
19012
19013 2015-06-18 Uros Bizjak <ubizjak@gmail.com>
19014
19015 * doc/invoke.texi (-fsanitize-sections): Split @var to avoid
19016 "unlikely character , in @var" warning.
19017
19018 2015-06-17 Uros Bizjak <ubizjak@gmail.com>
19019
19020 * config/i386/i386.c (ix86_function_arg): Nest TARGET_64BIT code.
19021 (ix86_function_arg_advance): Ditto.
19022 (ix86_pass_by_reference): Ditto. Rewrite MS_ABI part.
19023
19024 2015-06-17 Andrew MacLeod <amacleod@redhat.com>
19025
19026 * function.h (struct rtl_data): Remove struct and accessor macros.
19027 * emit-rtl.h (struct rtl_data): Relocate to here.
19028 * Makefile.in (GTFILES): Add emit-rtl.h.
19029 * df-core.c: Include emit-rtl.h.
19030 * genattrtab.c: Likewise.
19031 * genconditions.c: Likewise.
19032 * genpreds.c: Likewise.
19033 * genrecog.c: Likewise.
19034 * regcprop.c: Likewise.
19035 * resource.c: Likewise.
19036 * sched-rgn.c: Likewise.
19037 * config/aarch64/cortex-a57-fma-steering.c: Likewise.
19038 * config/i386/winnt.c: Likewise.
19039
19040 2015-06-17 Jakub Jelinek <jakub@redhat.com>
19041
19042 PR middle-end/66429
19043 * omp-low.c (expand_omp_taskreg, expand_omp_target): Use child_cfun
19044 instead of DECL_STRUCT_FUNCTION (child_fn). Or in has_simduid_loops
19045 and has_force_vectorize_loops flags from cfun into
19046 child_cfun.
19047 (expand_omp_simd): For broken loop, set cfun->has_simduid_loops
19048 if simduid is non-NULL.
19049 * tree-pass.h (make_pass_simduid_cleanup): New prototype.
19050 * passes.def (pass_simduid_cleanup): Add new pass after loop
19051 passes.
19052 * tree-vectorizer.c (adjust_simduid_builtins): Remove one unnecessary
19053 indirection from htab argument's type.
19054 (shrink_simd_arrays): New function.
19055 (vectorize_loops): Use it. Adjust adjust_simduid_builtins caller.
19056 Don't call adjust_simduid_builtins if there are no loops.
19057 (pass_data_simduid_cleanup, pass_simduid_cleanup): New variables.
19058 (pass_simduid_cleanup::execute): New method.
19059 (make_pass_simduid_cleanup): New function.
19060
19061 2017-06-17 Andrew MacLeod <amacleod@redhat.com>
19062
19063 * tree-core.h (tree_target_option): Make opts field a pointer to a
19064 cl_target_option instead of an instance of the struct.
19065 * tree.h (TREE_TARGET_OPTION): Return the pointer, not an address of
19066 the structure.
19067 * tree.c (make_node_stat ): Allocate a cl_target_option struct for
19068 TARGET_OPTION_NODE.
19069 (copy_node_stat): Allocate and copy struct cl_target_option.
19070
19071 2015-06-17 Andrew MacLeod <amacleod@redhat.com>
19072
19073 * tree.h (merge_dllimport_decl_attributes, handle_dll_attribute):
19074 Remove conditional exposure of prototypes.
19075 (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Delete.
19076 * tree.c (anon_aggrname_format, anon_aggrname_p): New. Replace macro
19077 definitions in tree.h with functions.
19078 * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Use
19079 anon_aggrname_p.
19080 * tree-streamer-out.c (write_ts_decl_minimal_tree_pointers): Likewise.
19081
19082 2015-06-17 Segher Boessenkool <segher@kernel.crashing.org>
19083
19084 * config/rs6000/rs6000.md (*cmp<mode>_internal1): Rename to...
19085 (*cmp<mode>_signed): ... this.
19086 (*cmpsi_internal2, *cmpdi_internal2): Merge, rename to...
19087 (*cmp<mode>_unsigned): ... this. Remove %b.
19088
19089 2015-06-17 Andrew MacLeod <amacleod@redhat.com>
19090
19091 * coretypes.h: Include input.h and as-a.h.
19092 * rtl.h: Include input.h and as-a.h for generator files.
19093 * hwint.c: Include coretypes.h, don't include diagnostic-core.h.
19094 * vec.c: Don't include diagnostic-core.h.
19095 * alias.c: Do not include input.h, line-map.h or is-a.h.
19096 * asan.c: Likewise.
19097 * attribs.c: Likewise.
19098 * auto-inc-dec.c: Likewise.
19099 * auto-profile.c: Likewise.
19100 * bb-reorder.c: Likewise.
19101 * bt-load.c: Likewise.
19102 * builtins.c: Likewise.
19103 * caller-save.c: Likewise.
19104 * calls.c: Likewise.
19105 * ccmp.c: Likewise.
19106 * cfg.c: Likewise.
19107 * cfganal.c: Likewise.
19108 * cfgbuild.c: Likewise.
19109 * cfgcleanup.c: Likewise.
19110 * cfgexpand.c: Likewise.
19111 * cfghooks.c: Likewise.
19112 * cfgloop.c: Likewise.
19113 * cfgloop.h: Likewise.
19114 * cfgloopanal.c: Likewise.
19115 * cfgloopmanip.c: Likewise.
19116 * cfgrtl.c: Likewise.
19117 * cgraph.c: Likewise.
19118 * cgraphbuild.c: Likewise.
19119 * cgraphclones.c: Likewise.
19120 * cgraphunit.c: Likewise.
19121 * cilk-common.c: Likewise.
19122 * combine-stack-adj.c: Likewise.
19123 * combine.c: Likewise.
19124 * compare-elim.c: Likewise.
19125 * convert.c: Likewise.
19126 * coverage.c: Likewise.
19127 * cppbuiltin.c: Likewise.
19128 * cprop.c: Likewise.
19129 * cse.c: Likewise.
19130 * cselib.c: Likewise.
19131 * data-streamer-in.c: Likewise.
19132 * data-streamer-out.c: Likewise.
19133 * data-streamer.c: Likewise.
19134 * dbxout.c: Likewise.
19135 * dce.c: Likewise.
19136 * ddg.c: Likewise.
19137 * debug.c: Likewise.
19138 * df-core.c: Likewise.
19139 * df-problems.c: Likewise.
19140 * df-scan.c: Likewise.
19141 * df.h: Likewise.
19142 * dfp.c: Likewise.
19143 * diagnostic-core.h: Likewise.
19144 * diagnostic.c: Likewise.
19145 * dojump.c: Likewise.
19146 * dominance.c: Likewise.
19147 * domwalk.c: Likewise.
19148 * double-int.c: Likewise.
19149 * dse.c: Likewise.
19150 * dumpfile.c: Likewise.
19151 * dumpfile.h: Likewise.
19152 * dwarf2asm.c: Likewise.
19153 * dwarf2cfi.c: Likewise.
19154 * dwarf2out.c: Likewise.
19155 * emit-rtl.c: Likewise.
19156 * et-forest.c: Likewise.
19157 * except.c: Likewise.
19158 * explow.c: Likewise.
19159 * expmed.c: Likewise.
19160 * expr.c: Likewise.
19161 * final.c: Likewise.
19162 * fixed-value.c: Likewise.
19163 * fold-const.c: Likewise.
19164 * function.c: Likewise.
19165 * fwprop.c: Likewise.
19166 * gcc-plugin.h: Likewise.
19167 * gcse.c: Likewise.
19168 * generic-match-head.c: Likewise.
19169 * ggc-page.c: Likewise.
19170 * gimple-builder.c: Likewise.
19171 * gimple-expr.c: Likewise.
19172 * gimple-fold.c: Likewise.
19173 * gimple-iterator.c: Likewise.
19174 * gimple-low.c: Likewise.
19175 * gimple-match-head.c: Likewise.
19176 * gimple-pretty-print.c: Likewise.
19177 * gimple-ssa-isolate-paths.c: Likewise.
19178 * gimple-ssa-strength-reduction.c: Likewise.
19179 * gimple-streamer-in.c: Likewise.
19180 * gimple-streamer-out.c: Likewise.
19181 * gimple-streamer.h: Likewise.
19182 * gimple-walk.c: Likewise.
19183 * gimple.c: Likewise.
19184 * gimplify-me.c: Likewise.
19185 * gimplify.c: Likewise.
19186 * godump.c: Likewise.
19187 * graph.c: Likewise.
19188 * graphite-blocking.c: Likewise.
19189 * graphite-dependences.c: Likewise.
19190 * graphite-interchange.c: Likewise.
19191 * graphite-isl-ast-to-gimple.c: Likewise.
19192 * graphite-optimize-isl.c: Likewise.
19193 * graphite-poly.c: Likewise.
19194 * graphite-scop-detection.c: Likewise.
19195 * graphite-sese-to-poly.c: Likewise.
19196 * graphite.c: Likewise.
19197 * haifa-sched.c: Likewise.
19198 * hw-doloop.c: Likewise.
19199 * ifcvt.c: Likewise.
19200 * init-regs.c: Likewise.
19201 * input.c: Likewise.
19202 * internal-fn.c: Likewise.
19203 * ipa-chkp.c: Likewise.
19204 * ipa-comdats.c: Likewise.
19205 * ipa-cp.c: Likewise.
19206 * ipa-devirt.c: Likewise.
19207 * ipa-icf-gimple.c: Likewise.
19208 * ipa-icf.c: Likewise.
19209 * ipa-inline-analysis.c: Likewise.
19210 * ipa-inline-transform.c: Likewise.
19211 * ipa-inline.c: Likewise.
19212 * ipa-polymorphic-call.c: Likewise.
19213 * ipa-profile.c: Likewise.
19214 * ipa-prop.c: Likewise.
19215 * ipa-pure-const.c: Likewise.
19216 * ipa-ref.c: Likewise.
19217 * ipa-reference.c: Likewise.
19218 * ipa-split.c: Likewise.
19219 * ipa-utils.c: Likewise.
19220 * ipa-visibility.c: Likewise.
19221 * ipa.c: Likewise.
19222 * ira-build.c: Likewise.
19223 * ira-color.c: Likewise.
19224 * ira-conflicts.c: Likewise.
19225 * ira-costs.c: Likewise.
19226 * ira-emit.c: Likewise.
19227 * ira-lives.c: Likewise.
19228 * ira.c: Likewise.
19229 * jump.c: Likewise.
19230 * langhooks.c: Likewise.
19231 * lcm.c: Likewise.
19232 * loop-doloop.c: Likewise.
19233 * loop-init.c: Likewise.
19234 * loop-invariant.c: Likewise.
19235 * loop-iv.c: Likewise.
19236 * loop-unroll.c: Likewise.
19237 * lower-subreg.c: Likewise.
19238 * lra-assigns.c: Likewise.
19239 * lra-coalesce.c: Likewise.
19240 * lra-constraints.c: Likewise.
19241 * lra-eliminations.c: Likewise.
19242 * lra-lives.c: Likewise.
19243 * lra-remat.c: Likewise.
19244 * lra-spills.c: Likewise.
19245 * lra.c: Likewise.
19246 * lto-cgraph.c: Likewise.
19247 * lto-compress.c: Likewise.
19248 * lto-opts.c: Likewise.
19249 * lto-section-in.c: Likewise.
19250 * lto-section-out.c: Likewise.
19251 * lto-streamer-in.c: Likewise.
19252 * lto-streamer-out.c: Likewise.
19253 * lto-streamer.c: Likewise.
19254 * mcf.c: Likewise.
19255 * mode-switching.c: Likewise.
19256 * modulo-sched.c: Likewise.
19257 * omega.c: Likewise.
19258 * omp-low.c: Likewise.
19259 * optabs.c: Likewise.
19260 * opts-global.c: Likewise.
19261 * opts.h: Likewise.
19262 * passes.c: Likewise.
19263 * plugin.c: Likewise.
19264 * postreload-gcse.c: Likewise.
19265 * postreload.c: Likewise.
19266 * predict.c: Likewise.
19267 * pretty-print.h: Likewise.
19268 * print-rtl.c: Likewise.
19269 * print-tree.c: Likewise.
19270 * profile.c: Likewise.
19271 * real.c: Likewise.
19272 * realmpfr.c: Likewise.
19273 * recog.c: Likewise.
19274 * ree.c: Likewise.
19275 * reg-stack.c: Likewise.
19276 * regcprop.c: Likewise.
19277 * reginfo.c: Likewise.
19278 * regrename.c: Likewise.
19279 * regstat.c: Likewise.
19280 * reload.c: Likewise.
19281 * reload1.c: Likewise.
19282 * reorg.c: Likewise.
19283 * resource.c: Likewise.
19284 * rtl-chkp.c: Likewise.
19285 * rtl-error.c: Likewise.
19286 * rtlanal.c: Likewise.
19287 * rtlhooks.c: Likewise.
19288 * sanopt.c: Likewise.
19289 * sched-deps.c: Likewise.
19290 * sched-ebb.c: Likewise.
19291 * sched-rgn.c: Likewise.
19292 * sched-vis.c: Likewise.
19293 * sdbout.c: Likewise.
19294 * sel-sched-dump.c: Likewise.
19295 * sel-sched-ir.c: Likewise.
19296 * sel-sched.c: Likewise.
19297 * sese.c: Likewise.
19298 * shrink-wrap.c: Likewise.
19299 * simplify-rtx.c: Likewise.
19300 * stack-ptr-mod.c: Likewise.
19301 * statistics.c: Likewise.
19302 * stmt.c: Likewise.
19303 * stor-layout.c: Likewise.
19304 * store-motion.c: Likewise.
19305 * streamer-hooks.c: Likewise.
19306 * stringpool.c: Likewise.
19307 * symtab.c: Likewise.
19308 * target-globals.c: Likewise.
19309 * targhooks.c: Likewise.
19310 * toplev.c: Likewise.
19311 * tracer.c: Likewise.
19312 * trans-mem.c: Likewise.
19313 * tree-affine.c: Likewise.
19314 * tree-browser.c: Likewise.
19315 * tree-call-cdce.c: Likewise.
19316 * tree-cfg.c: Likewise.
19317 * tree-cfgcleanup.c: Likewise.
19318 * tree-chkp-opt.c: Likewise.
19319 * tree-chkp.c: Likewise.
19320 * tree-chrec.c: Likewise.
19321 * tree-complex.c: Likewise.
19322 * tree-data-ref.c: Likewise.
19323 * tree-dfa.c: Likewise.
19324 * tree-diagnostic.c: Likewise.
19325 * tree-dump.c: Likewise.
19326 * tree-eh.c: Likewise.
19327 * tree-emutls.c: Likewise.
19328 * tree-if-conv.c: Likewise.
19329 * tree-inline.c: Likewise.
19330 * tree-into-ssa.c: Likewise.
19331 * tree-iterator.c: Likewise.
19332 * tree-loop-distribution.c: Likewise.
19333 * tree-nested.c: Likewise.
19334 * tree-nrv.c: Likewise.
19335 * tree-object-size.c: Likewise.
19336 * tree-outof-ssa.c: Likewise.
19337 * tree-parloops.c: Likewise.
19338 * tree-phinodes.c: Likewise.
19339 * tree-predcom.c: Likewise.
19340 * tree-pretty-print.c: Likewise.
19341 * tree-profile.c: Likewise.
19342 * tree-scalar-evolution.c: Likewise.
19343 * tree-sra.c: Likewise.
19344 * tree-ssa-address.c: Likewise.
19345 * tree-ssa-alias.c: Likewise.
19346 * tree-ssa-ccp.c: Likewise.
19347 * tree-ssa-coalesce.c: Likewise.
19348 * tree-ssa-copy.c: Likewise.
19349 * tree-ssa-copyrename.c: Likewise.
19350 * tree-ssa-dce.c: Likewise.
19351 * tree-ssa-dom.c: Likewise.
19352 * tree-ssa-dse.c: Likewise.
19353 * tree-ssa-forwprop.c: Likewise.
19354 * tree-ssa-ifcombine.c: Likewise.
19355 * tree-ssa-live.c: Likewise.
19356 * tree-ssa-loop-ch.c: Likewise.
19357 * tree-ssa-loop-im.c: Likewise.
19358 * tree-ssa-loop-ivcanon.c: Likewise.
19359 * tree-ssa-loop-ivopts.c: Likewise.
19360 * tree-ssa-loop-manip.c: Likewise.
19361 * tree-ssa-loop-niter.c: Likewise.
19362 * tree-ssa-loop-prefetch.c: Likewise.
19363 * tree-ssa-loop-unswitch.c: Likewise.
19364 * tree-ssa-loop.c: Likewise.
19365 * tree-ssa-math-opts.c: Likewise.
19366 * tree-ssa-operands.c: Likewise.
19367 * tree-ssa-phiopt.c: Likewise.
19368 * tree-ssa-phiprop.c: Likewise.
19369 * tree-ssa-pre.c: Likewise.
19370 * tree-ssa-propagate.c: Likewise.
19371 * tree-ssa-reassoc.c: Likewise.
19372 * tree-ssa-sccvn.c: Likewise.
19373 * tree-ssa-scopedtables.c: Likewise.
19374 * tree-ssa-sink.c: Likewise.
19375 * tree-ssa-strlen.c: Likewise.
19376 * tree-ssa-structalias.c: Likewise.
19377 * tree-ssa-tail-merge.c: Likewise.
19378 * tree-ssa-ter.c: Likewise.
19379 * tree-ssa-threadedge.c: Likewise.
19380 * tree-ssa-threadupdate.c: Likewise.
19381 * tree-ssa-uncprop.c: Likewise.
19382 * tree-ssa-uninit.c: Likewise.
19383 * tree-ssa.c: Likewise.
19384 * tree-ssanames.c: Likewise.
19385 * tree-stdarg.c: Likewise.
19386 * tree-streamer-in.c: Likewise.
19387 * tree-streamer-out.c: Likewise.
19388 * tree-streamer.c: Likewise.
19389 * tree-switch-conversion.c: Likewise.
19390 * tree-tailcall.c: Likewise.
19391 * tree-vect-data-refs.c: Likewise.
19392 * tree-vect-generic.c: Likewise.
19393 * tree-vect-loop-manip.c: Likewise.
19394 * tree-vect-loop.c: Likewise.
19395 * tree-vect-patterns.c: Likewise.
19396 * tree-vect-slp.c: Likewise.
19397 * tree-vect-stmts.c: Likewise.
19398 * tree-vectorizer.c: Likewise.
19399 * tree-vrp.c: Likewise.
19400 * tree.c: Likewise.
19401 * tsan.c: Likewise.
19402 * ubsan.c: Likewise.
19403 * valtrack.c: Likewise.
19404 * value-prof.c: Likewise.
19405 * var-tracking.c: Likewise.
19406 * varasm.c: Likewise.
19407 * varpool.c: Likewise.
19408 * vmsdbgout.c: Likewise.
19409 * vtable-verify.c: Likewise.
19410 * web.c: Likewise.
19411 * wide-int.cc: Likewise.
19412 * xcoffout.c: Likewise.
19413 * common/common-target.h: Do not include input.h, line-map.h or is-a.h.
19414 * common/common-targhooks.c: Likewise.
19415 * config/aarch64/aarch64-builtins.c: Likewise.
19416 * config/aarch64/aarch64.c: Likewise.
19417 * config/alpha/alpha.c: Likewise.
19418 * config/arc/arc.c: Likewise.
19419 * config/arm/aarch-common.c: Likewise.
19420 * config/arm/arm-builtins.c: Likewise.
19421 * config/arm/arm-c.c: Likewise.
19422 * config/arm/arm.c: Likewise.
19423 * config/avr/avr-c.c: Likewise.
19424 * config/avr/avr-log.c: Likewise.
19425 * config/avr/avr.c: Likewise.
19426 * config/bfin/bfin.c: Likewise.
19427 * config/c6x/c6x.c: Likewise.
19428 * config/cr16/cr16.c: Likewise.
19429 * config/cris/cris.c: Likewise.
19430 * config/darwin-c.c: Likewise.
19431 * config/darwin.c: Likewise.
19432 * config/default-c.c: Likewise.
19433 * config/epiphany/epiphany.c: Likewise.
19434 * config/epiphany/mode-switch-use.c: Likewise.
19435 * config/epiphany/resolve-sw-modes.c: Likewise.
19436 * config/fr30/fr30.c: Likewise.
19437 * config/frv/frv.c: Likewise.
19438 * config/ft32/ft32.c: Likewise.
19439 * config/glibc-c.c: Likewise.
19440 * config/h8300/h8300.c: Likewise.
19441 * config/i386/i386-c.c: Likewise.
19442 * config/i386/i386.c: Likewise.
19443 * config/i386/msformat-c.c: Likewise.
19444 * config/i386/winnt-cxx.c: Likewise.
19445 * config/i386/winnt-stubs.c: Likewise.
19446 * config/i386/winnt.c: Likewise.
19447 * config/ia64/ia64-c.c: Likewise.
19448 * config/ia64/ia64.c: Likewise.
19449 * config/iq2000/iq2000.c: Likewise.
19450 * config/lm32/lm32.c: Likewise.
19451 * config/m32c/m32c-pragma.c: Likewise.
19452 * config/m32c/m32c.c: Likewise.
19453 * config/m32r/m32r.c: Likewise.
19454 * config/m68k/m68k.c: Likewise.
19455 * config/mcore/mcore.c: Likewise.
19456 * config/mep/mep-pragma.c: Likewise.
19457 * config/mep/mep.c: Likewise.
19458 * config/microblaze/microblaze-c.c: Likewise.
19459 * config/microblaze/microblaze.c: Likewise.
19460 * config/mips/mips.c: Likewise.
19461 * config/mmix/mmix.c: Likewise.
19462 * config/mn10300/mn10300.c: Likewise.
19463 * config/moxie/moxie.c: Likewise.
19464 * config/msp430/msp430-c.c: Likewise.
19465 * config/msp430/msp430.c: Likewise.
19466 * config/nds32/nds32-cost.c: Likewise.
19467 * config/nds32/nds32-fp-as-gp.c: Likewise.
19468 * config/nds32/nds32-intrinsic.c: Likewise.
19469 * config/nds32/nds32-isr.c: Likewise.
19470 * config/nds32/nds32-md-auxiliary.c: Likewise.
19471 * config/nds32/nds32-memory-manipulation.c: Likewise.
19472 * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
19473 * config/nds32/nds32-predicates.c: Likewise.
19474 * config/nds32/nds32.c: Likewise.
19475 * config/nios2/nios2.c: Likewise.
19476 * config/nvptx/nvptx.c: Likewise.
19477 * config/pa/pa.c: Likewise.
19478 * config/pdp11/pdp11.c: Likewise.
19479 * config/rl78/rl78-c.c: Likewise.
19480 * config/rl78/rl78.c: Likewise.
19481 * config/rs6000/rs6000-c.c: Likewise.
19482 * config/rs6000/rs6000.c: Likewise.
19483 * config/rx/rx.c: Likewise.
19484 * config/s390/s390-c.c: Likewise.
19485 * config/s390/s390.c: Likewise.
19486 * config/sh/sh-c.c: Likewise.
19487 * config/sh/sh-mem.cc: Likewise.
19488 * config/sh/sh.c: Likewise.
19489 * config/sh/sh_optimize_sett_clrt.cc: Likewise.
19490 * config/sh/sh_treg_combine.cc: Likewise.
19491 * config/sol2-c.c: Likewise.
19492 * config/sol2-cxx.c: Likewise.
19493 * config/sol2-stubs.c: Likewise.
19494 * config/sol2.c: Likewise.
19495 * config/sparc/sparc-c.c: Likewise.
19496 * config/sparc/sparc.c: Likewise.
19497 * config/spu/spu-c.c: Likewise.
19498 * config/spu/spu.c: Likewise.
19499 * config/stormy16/stormy16.c: Likewise.
19500 * config/tilegx/mul-tables.c: Likewise.
19501 * config/tilegx/tilegx-c.c: Likewise.
19502 * config/tilegx/tilegx.c: Likewise.
19503 * config/tilepro/mul-tables.c: Likewise.
19504 * config/tilepro/tilepro-c.c: Likewise.
19505 * config/tilepro/tilepro.c: Likewise.
19506 * config/v850/v850-c.c: Likewise.
19507 * config/v850/v850.c: Likewise.
19508 * config/vax/vax.c: Likewise.
19509 * config/visium/visium.c: Likewise.
19510 * config/vms/vms-c.c: Likewise.
19511 * config/vms/vms.c: Likewise.
19512 * config/vxworks.c: Likewise.
19513 * config/winnt-c.c: Likewise.
19514 * config/xtensa/xtensa.c: Likewise.
19515
19516 2015-06-17 Robert Suchanek <robert.suchanek@imgtec.com>
19517
19518 * config/mips/mips.c (mips_ira_change_pseudo_allocno_class): New
19519 function.
19520 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define macro.
19521
19522 2015-06-17 Richard Biener <rguenther@suse.de>
19523
19524 PR tree-optimization/66251
19525 * tree-vect-stmts.c (vectorizable_store): Fix gathering of vectorized
19526 stmts for SLP strided stores.
19527
19528 Revert
19529 2015-05-22 Richard Biener <rguenther@suse.de>
19530
19531 PR tree-optimization/66251
19532 * tree-vect-stmts.c (vectorizable_conversion): Properly
19533 set STMT_VINFO_VEC_STMT even for the SLP case.
19534
19535 2015-05-26 Michael Matz <matz@suse.de>
19536
19537 PR middle-end/66251
19538 * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set
19539 STMT_VINFO_VEC_STMT, also with SLP.
19540
19541 2015-06-16 Uros Bizjak <ubizjak@gmail.com>
19542
19543 PR target/56766
19544 * config/i386/sse.md (*avx_addsubv4df3_1): New insn pattern.
19545 (*avx_addsubv4df3_1s): Ditto.
19546 (*sse3_addsubv2df3_1): Ditto.
19547 (*sse3_addsubv2df3_1s): Ditto.
19548 (*avx_addsubv8sf3_1): Ditto.
19549 (*avx_addsubv8sf3_1s): Ditto.
19550 (*sse3_addsubv4sf3_1): Ditto.
19551 (*sse3_addsubv4sf3_1s): Ditto.
19552
19553 2015-06-16 Steve Ellcey <sellcey@imgtec.com>
19554
19555 * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): New.
19556 (SYSROOT_SUFFIX_SPEC): Update.
19557 (SYSROOT_HEADERS_SUFFIX_SPEC): New.
19558 (STARTFILE_PREFIX_SPEC): Update.
19559 * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Remove.
19560 (MULTILIB_REQUIRED): New.
19561 (MULTILIB_OSDIRNAMES): New.
19562 * config/mips/t-img-linux (MULTILIB_EXCEPTIONS): Remove.
19563 (MULTILIB_REQUIRED): New.
19564 (MULTILIB_OSDIRNAMES): New.
19565
19566 2015-06-16 Matthew Wahab <matthew.wahab@arm.com>
19567
19568 * config/aarch64/aarch64-arches.def: Add "armv8.1-a".
19569 * config/aarch64/aarch64-options-extensions.def: Update "fP",
19570 "simd" and "crypto". Add "lse", "pan", "lor" and "rdma".
19571 * config/aarch64/aarch64.h (AARCH64_FL_LSE): New.
19572 (AARCH64_FL_PAN): New.
19573 (AARCH64_FL_LOR): New.
19574 (AARCH64_FL_RDMA): New.
19575 (AARCH64_FL_FOR_ARCH8_1): New.
19576 * doc/invoke.texi (AArch64 Options): Add "armv8.1-a" to
19577 -march. Add "lse", "pan", "lor", "rdma" to feature modifiers.
19578
19579 2015-06-16 Martin Liska <mliska@suse.cz>
19580
19581 * bitmap.c (dump_bitmap_statistics): Fix GNU coding style.
19582 * hash-table.c (void dump_hash_table_loc_statistics): Add missing
19583 guard.
19584
19585 2015-06-16 Richard Biener <rguenther@suse.de>
19586
19587 * tree-vect-stmts.c (vectorizable_store): Adjust.
19588 (vectorizable_load): Likewise.
19589 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
19590 Simplify.
19591 (vect_create_data_ref_ptr): Likewise.
19592 (bump_vector_ptr): Adjust.
19593
19594 2015-06-16 Richard Biener <rguenther@suse.de>
19595
19596 * tree-vect-stmts.c (vectorizable_load): Properly start loads
19597 with the first element if this is grouped loads.
19598
19599 2015-06-16 James Greenhalgh <james.greenhalgh@arm.com>
19600
19601 * config/arm/arm-protos.h (struct tune_params): Rename
19602 log_op_non_sc to log_op_non_short_circuit, and rename enum
19603 values to expand SC to SHORT_CIRCUIT.
19604 * config/arm/arm.c (arm_slowmul_tune): Expand LOG_OP_NON_SC
19605 to LOG_OP_NON_SHORT_CIRCUIT.
19606 (arm_fastmul_tune):Likewise
19607 (arm_strongarm_tune): Likewise.
19608 (arm_xscale_tune): Likewise.
19609 (arm_9e_tune): Likewise.
19610 (arm_marvell_pj4_tune): Likewise.
19611 (arm_v6t2_tune): Likewise.
19612 (arm_cortex_tune): Likewise.
19613 (arm_cortex_a8_tune): Likewise.
19614 (arm_cortex_a7_tune): Likewise.
19615 (arm_cortex_a15_tune): Likewise.
19616 (arm_cortex_a53_tune): Likewise.
19617 (arm_cortex_a57_tune): Likewise.
19618 (arm_xgene1_tune): Likewise.
19619 (arm_cortex_a5_tune): Likewise.
19620 (arm_cortex_a9_tune): Likewise.
19621 (arm_cortex_a12_tune): Likewise.
19622 (arm_v7m_tune): Likewise.
19623 (arm_cortex_m7_tune): Likewise.
19624 (arm_v6m_tune): Likewise.
19625 (arm_fa726te_tune): Likewise.
19626
19627 2015-06-15 David Edelsohn <dje.gcc@gmail.com>
19628
19629 * altivec.md: Delete UNSPEC_VMLADDUHM.
19630 (mulv4si3_p8): New pattern.
19631 (mulv4si3): Use it for POWER8.
19632 (mulv8hi3): Use vmladduhm with zero addend.
19633 (altivec_vmladduhm): Descriptive RTL.
19634
19635 2015-06-15 Jim Wilson <jim.wilson@linaro.org>
19636
19637 * config/aarch64/aarch64.md (mov<mode>_aarch64): Change alternative 2
19638 to use neon_move instead of mov_imm.
19639 (movdi_aarch64): Change alternative 14 to use neon_move not fmov.
19640 (movtf_aarch64): Change alternative 4 to use neon_move_q not fconstd.
19641
19642 * config/aarch64/aarch64.c (aarch64_valid_floating_const): Move
19643 aarch64_float_const_zero_rtx_p check before TFmode check.
19644 * config/aarch64/aarch64.md (movtf): Don't call force_reg if op1 is
19645 an fp zero.
19646 (movtf_aarch64): Separate ?rY alternative into two. Adjust assembly
19647 code and attributes to match. Change condition from register_operand
19648 to aarch64_reg_or_fp_zero for op1. Change type for ldp from
19649 neon_load1_2reg to load2. Change type for stp from neon_store1_2reg
19650 to store2.
19651
19652 2015-06-15 Aldy Hernandez <aldyh@redhat.com>
19653
19654 PR debug/66535
19655 * dwarf2out.c (gen_subprogram_die): Do not check a parent's tag if
19656 there is no parent.
19657
19658 2015-06-14 Shiva Chen <shiva0217@gmail.com>
19659
19660 * aarch64.c (aarch64_simd_lane_bounds): Change %ld to %wd for
19661 HOST_WIDE_INT parameter.
19662
19663 2015-06-14 Jan Hubicka <hubicka@ucw.cz>
19664
19665 PR ipa/66181
19666 * lto-streamer-out.c (hash_tree): Do not hash TYPE_NO_FORCE_BLK.
19667 * tree-streamer-out.c (pack_ts_type_common_value_fields): Do not stream
19668 TYPE_NO_FORCE_BLK.
19669 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Likewise.
19670
19671 2015-06-14 Richard Sandiford <richard.sandiford@arm.com>
19672
19673 * rtl.h (classify_insn): Declare.
19674 * emit-rtl.c (classify_insn): Move to...
19675 * rtl.c: ...here and add generator support.
19676 * gensupport.h (get_emit_function, needs_barrier_p): Declare.
19677 * gensupport.c (get_emit_function, needs_barrier_p): New functions.
19678 * genemit.c (gen_emit_seq): New function.
19679 (gen_expand, gen_split): Use it.
19680
19681 2015-06-13 Patrick Palka <ppalka@gcc.gnu.org>
19682
19683 * tree.c (make_vector_stat): Fix comment to state that the
19684 function returns a VECTOR_CST.
19685
19686 2015-06-13 Richard Sandiford <richard.sandiford@arm.com>
19687
19688 * gensupport.h (add_implicit_parallel): Declare.
19689 * genrecog.c (add_implicit_parallel): Move to...
19690 * gensupport.c (add_implicit_parallel): ...here.
19691 (process_one_cond_exec): Use it.
19692 * genemit.c (gen_insn): Likewise.
19693
19694 2015-06-13 Iain Sandoe <iain@codesourcery.com>
19695
19696 PR bootstrap/66448
19697 * passes.c (rest_of_decl_compilation): Do not register globals for
19698 early debug if they are declared in built-ins.
19699
19700 2015-06-12 Aldy Hernandez <aldyh@redhat.com>
19701
19702 * dwarf2out.c (check_die): Protect with ENABLE_CHECKING.
19703
19704 2015-06-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19705
19706 * ifcvt.c (noce_try_store_flag_constants): Use std::swap instead of
19707 manually swapping.
19708 (noce_try_cmove_arith): Likewise.
19709 (noce_get_alt_condition): Likewise.
19710
19711 2015-06-12 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
19712
19713 * common/config/i386/i386-common.c
19714 (OPTION_MASK_ISA_MWAITX_SET): New.
19715 (ix86_handle_option): Handle mwaitx.
19716 * config.gcc (i[34567]86-*-*): Add mwaitxintrin.h,
19717 (x86_64-*-*): Likewise.
19718 * config/i386/mwaitxintrin.h: New header.
19719 * config/i386/cpuid.h (bit_MWAITX): Define.
19720 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
19721 MWAITX support.
19722 * config/i386/i386.opt (mwaitx): New.
19723 * config/i386/i386-builtin-types.def
19724 (VOID_FTYPE_UNSIGNED_ UNSIGNED_UNSIGNED): New function type.
19725 * config/i386/i386-c.c: Define __MWAITX__ if needed.
19726 * config/i386/i386.c (ix86_target_string): Define -mmwaitx option.
19727 (PTA_MWAITX): New.
19728 (ix86_option_override_internal): Handle new option.
19729 (processor_alias_table): Added PTA_MWAITX.
19730 (ix86_valid_target_attribute_inner_p): Add OPT_mmwaitx.
19731 (ix86_builtins): Add IX86_BUILTIN_MWAITX, IX86_BUILTIN_MONITORX.
19732 (ix86_expand_builtin): Handle IX86_BUILTIN_MWAITX and
19733 IX86_BUILTIN_MONITORX built-ins.
19734 * config/i386/i386.h (TARGET_MWAITX): New.
19735 * config/i386/i386.md (unspecv): Add UNSPEC_MWAITX and
19736 UNSPEC_MONITORX.
19737 (mwaitx): New pattern.
19738 (monitorx_<mode>): New pattern.
19739 * config/i386/x86intrin.h: Include mwaitxintrin.h.
19740 * doc/extend.texi: Document monitorx and mwaitx builtins.
19741 * doc/invoke.texi: Document -mmwaitx option.
19742
19743 2015-06-12 Uros Bizjak <ubizjak@gmail.com>
19744
19745 * emit-rtl.c (need_atomic_barrier_p): Mask model with
19746 MEMMODEL_BASE_MASK. Remove MEMMODEL_SYNC_* cases.
19747
19748 2015-06-11 David Edelsohn <dje.gcc@gmail.com>
19749
19750 * dbxout.c (xcoff_debug_hooks): Provide a function for
19751 register_main_translation_unit hook.
19752
19753 2015-06-11 David Edelsohn <dje.gcc@gmail.com>
19754
19755 * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Remove SYNC
19756 variants cases from switch.
19757 (rs6000_post_atomic_barrier): Same.
19758 (rs6000_expand_atomic_compare_and_swap): Use memmodel_base.
19759 (rs6000_expand_atomic_exchange): Same.
19760 (rs6000_expand_atomic_op): Same.
19761 * config/rs6000/sync.md (mem_thread_fence): Use memodel_base. Remove
19762 SYNC variants cases from switch.
19763 (atomic_load): Same.
19764 (atomic_store): Same.
19765
19766 2015-06-11 John David Anglin <danglin@gcc.gnu.org>
19767
19768 * config/pa/pa.c (pa_output_global_address): Handle LABEL_REF plus
19769 CONST_INT for goto.
19770
19771 2015-06-11 Aldy Hernandez <aldyh@redhat.com>
19772
19773 PR bootstrap/66448
19774 * dwarf2out.c (check_die): Check for common duplicate attributes.
19775 (add_location_or_const_value_attribute): Do not add duplicate
19776 attributes.
19777 (gen_formal_parameter_die): Do not add DW_AT_artificial the second
19778 time around.
19779 (gen_struct_or_union_type_die): Bail early if TREE_ASM_WRITTEN.
19780 (gen_type_die_with_usage): Call check_die.
19781 (dwarf2out_decl): Only call check_die() when ENABLE_CHECKING.
19782
19783 2015-06-11 Jason Merrill <jason@redhat.com>
19784
19785 * dwarf2out.c (prune_unused_types): Handle unused top-level limbo
19786 dies.
19787
19788 2015-06-11 Marek Polacek <polacek@redhat.com>
19789
19790 * match.pd ((x & y) ^ (x | y)): Don't check for single_use.
19791
19792 2015-06-11 Eric Botcazou <ebotcazou@adacore.com>
19793
19794 PR bootstrap/66252
19795 * config/sparc/sparc.c (hard_regno_mode_classes): Add ??? comment.
19796 * config/sparc/sparc.md (zero_extendsidi2_insn_sp32): Use single order.
19797 (*addx_extend_sp32): Fix pasto.
19798 (*subx_extend): Rename into...
19799 (*subx_extend_sp32): ...this.
19800 (*adddi3_extend_sp32): Add earlyclobber.
19801 (*subdi3_insn_sp32): Likewise.
19802 (*subdi3_extend_sp32): Likewise.
19803 (*and_not_di_sp32): Likewise.
19804 (*or_not_di_sp32): Likewise.
19805 (*xor_not_di_sp32): Likewise.
19806 (*negdi2_sp32): Likewise.
19807 (*one_cmpldi2_sp32): Likewise.
19808
19809 2015-06-11 Pierre-Marie de Rodat <derodat@adacore.com>
19810
19811 * debug.h (struct gcc_debug_hooks): Add a
19812 register_main_translation_unit hook.
19813 * debug.c (do_nothing_debug_hooks): Provide a function for this
19814 new hook.
19815 * dbxout.c (dbx_debug_hooks): Likewise.
19816 * sdbout.c (sdb_debug_hooks): Likewise.
19817 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
19818 * dwarf2out.c (main_translation_unit): New global variable.
19819 (dwarf2out_register_main_translation_unit): New function
19820 implementing the new hook.
19821 (dwarf2_debug_hooks): Assign
19822 dwarf2out_register_main_translation_unit to this new hook.
19823 (dwarf2out_init): Associate any main translation unit to
19824 comp_unit_die ().
19825
19826 2015-06-11 Marek Polacek <polacek@redhat.com>
19827
19828 * match.pd ((x & y) ^ (x | y) -> x ^ y): New pattern.
19829
19830 2015-06-11 Marek Polacek <polacek@redhat.com>
19831
19832 * match.pd: Use single_use throughout.
19833
19834 2015-06-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19835
19836 * config/arm/arm.c (arm_option_params_internal): When optimising
19837 for speed set max_insns_skipped when arm_restrict_it.
19838
19839 2015-06-11 Christian Bruel <christian.bruel@st.com>
19840
19841 PR target/52144
19842 * config/arm/arm-c.c (arm_cpu_cpp_builtins): Conditionally define
19843 macros in ...
19844 (arm_cpu_builtins): New function.
19845 (arm_pragma_target_parse): Call arm_cpu_builtins.
19846 * config/arm/arm-protos.h (arm_cpu_builtins): Declare.
19847 (arm_register_target_pragmas): Likewise.
19848 * config/arm/arm.h (REGISTER_TARGET_PRAGMAS):
19849 Call arm_register_target_pragmas.
19850 * config/arm/arm-c.c (arm_register_target_pragmas): New function.
19851 (arm_pragma_target_parse): Likewise.
19852
19853 2015-06-10 Kaz Kojima <kkojima@gcc.gnu.org>
19854
19855 * config/sh/sh.md (tstsi_t): Add '?' modifier to 'r' alternative
19856 of the second operand.
19857
19858 2015-06-10 Uros Bizjak <ubizjak@gmail.com>
19859
19860 PR target/66473
19861 * config/i386/i386.c (ix86_expand_vector_set): Use gen_int_mode
19862 to prepare mask operand for AVX512 modes.
19863
19864 2015-06-10 Michael Meissner <meissner@linux.vnet.ibm.com>
19865
19866 PR target/66474
19867 * doc/md.texi (Machine Constraints): Document that on the PowerPC
19868 if you use a constraint that targets a VSX register, you must use
19869 %x<n> in the template.
19870
19871 2015-06-10 Max Filippov <jcmvbkbc@gmail.com>
19872
19873 * config/xtensa/xtensa.h (TARGET_DEBUG): New definition.
19874 * config/xtensa/xtensa.md (define_attr "type"): New type "trap".
19875 (define_insn "trap"): New definition.
19876
19877 2015-06-10 Richard Biener <rguenther@suse.de>
19878
19879 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Split
19880 out from ...
19881 (vect_supported_load_permutation_p): ... here. Handle
19882 supportable permutations in reductions.
19883 * tree-vect-stmts.c (vectorizable_load): Handle SLP permutations
19884 for vectorizing strided group loads.
19885
19886 2015-06-10 Jakub Jelinek <jakub@redhat.com>
19887
19888 PR target/66470
19889 * config/i386/i386.c (ix86_split_long_move): For collisions
19890 involving direct tls segment refs, move the UNSPEC_TP possibly
19891 wrapped in ZERO_EXTEND out of the address for lea, to each of
19892 the memory loads.
19893
19894 2015-06-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
19895
19896 * config/arm/sync.md (*memory_barrier): Use dmb ish instead of
19897 dmb sy. Adjust tabs.
19898
19899 2015-06-10 Tom de Vries <tom@codesourcery.com>
19900
19901 * omp-low.c (expand_omp_target): Remove duplicate declaration of node.
19902
19903 2015-06-10 Martin Liska <mliska@suse.cz>
19904
19905 PR bootstrap/66471
19906 * mem-stats-traits.h (enum mem_alloc_origin): Add _ORIGIN suffix for
19907 all enum values in mem_alloc_origin.
19908 * alloc-pool.c (dump_alloc_pool_statistics): Use newly changed enum
19909 name.
19910 * alloc-pool.h (pool_allocator::pool_allocator): Likewise.
19911 * bitmap.c (bitmap_register): Likewise.
19912 (dump_bitmap_statistics): Likewise.
19913 * ggc-common.c (dump_ggc_loc_statistics): Likewise.
19914 (ggc_record_overhead): Likewise.
19915 * hash-map.h: Likewise.
19916 * hash-set.h: Likewise.
19917 * hash-table.c (void dump_hash_table_loc_statistics): Likewise.
19918 * hash-table.h: Likewise.
19919 * vec.c (vec_prefix::register_overhead): Likewise.
19920 (vec_prefix::release_overhead): Likewise.
19921 (dump_vec_loc_statistics): Likewise.
19922
19923 2015-06-09 Christian Bruel <christian.bruel@st.com>
19924
19925 PR target/52144
19926 * config/arm/arm.opt (THUMB, arm_restrict_it, inline_asm_unified): Save.
19927 * config/arm/arm-protos.h (arm_valid_target_attribute_tree): Declare.
19928 (arm_reset_previous_fndecl, arm_change_mode_p): Likewise.
19929 * config/arm/arm.h (SWITCHABLE_TARGET): Define.
19930 * config/arm/arm.c (arm_reset_previous_fndecl): New functions.
19931 (arm_valid_target_attribute_tree, arm_change_mode_p): Likewise.
19932 (arm_valid_target_attribute_p): Likewise.
19933 (arm_set_current_function, arm_can_inline_p): Likewise.
19934 (arm_valid_target_attribute_rec): Likewise.
19935 (arm_previous_fndecl): New variable.
19936 (TARGET_SET_CURRENT_FUNCTION, TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
19937 (TARGET_CAN_INLINE_P): Define.
19938 (arm_asm_trampoline_template): Emit mode.
19939 (arm_file_start): Don't set unified syntax.
19940 (arm_declare_function_name): Set unified syntax and mode.
19941 (arm_option_override): Init target_option_default_node.
19942 and target_option_current_node.
19943 * config/arm/arm.md (*call_value_symbol): Set mode when possible.
19944 (*call_symbol): Likewise.
19945 * doc/extend.texi: Document ARM/Thumb target attribute.
19946 * doc/invoke.texi: Likewise.
19947
19948 2015-06-09 Alexandre Oliva <aoliva@redhat.com>
19949
19950 Revert:
19951 2015-06-09 Alexandre Oliva <aoliva@redhat.com>
19952 PR rtl-optimization/64164
19953 * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
19954 * tree-ssa-copyrename.c: Removed.
19955 * opts.c (default_options_table): Drop -ftree-copyrename. Add
19956 -ftree-coalesce-vars.
19957 * passes.def: Drop all occurrences of pass_rename_ssa_copies.
19958 * common.opt (ftree-copyrename): Ignore.
19959 (ftree-coalesce-inlined-vars): Likewise.
19960 * doc/invoke.texi: Remove the ignored options above.
19961 * gimple-expr.h (gimple_can_coalesce_p): Move declaration
19962 * tree-ssa-coalesce.h: ... here.
19963 * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
19964 headers required by it.
19965 * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
19966 across variables when flag_tree_coalesce_vars. Check register
19967 use and promoted modes to allow coalescing. Moved to
19968 tree-ssa-coalesce.c.
19969 * tree-ssa-live.c (struct tree_int_map_hasher): Move along
19970 with its member functions to tree-ssa-coalesce.c.
19971 (var_map_base_init): Likewise. Renamed to
19972 compute_samebase_partition_bases.
19973 (partition_view_normal): Drop want_bases parameter.
19974 (partition_view_bitmap): Likewise.
19975 * tree-ssa-live.h: Adjust declarations.
19976 * tree-ssa-coalesce.c: Include explow.h.
19977 (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
19978 default defs at the entry point.
19979 (dump_part_var_map): New.
19980 (compute_optimized_partition_bases): New, called by...
19981 (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
19982 of compute_samebase_partition_bases. Adjust.
19983 * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
19984 * cfgexpand.c (leader_merge): New.
19985 (get_rtl_for_parm_ssa_default_def): New.
19986 (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
19987 vars. Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
19988 (expand_one_stack_var_at): Handle anonymous SSA_NAMEs. Drop
19989 redundant MEM attr setting.
19990 (expand_one_stack_var_1): Handle anonymous SSA_NAMEs. Renamed
19991 from...
19992 (expand_one_stack_var): ... this. New wrapper to check and
19993 skip already expanded SSA partitions.
19994 (record_alignment_for_reg_var): New, factored out of...
19995 (expand_one_var): ... this.
19996 (expand_one_ssa_partition): New.
19997 (adjust_one_expanded_partition_var): New.
19998 (expand_one_register_var): Check and skip already expanded SSA
19999 partitions.
20000 (expand_used_vars): Don't create DECLs for anonymous SSA
20001 names. Expand all SSA partitions, then adjust all SSA names.
20002 (pass::execute): Replace the loops that set
20003 SA.partition_to_pseudo from partition leaders and cleared
20004 DECL_RTL for multi-location variables, and that which used to
20005 rename vars and set attrs, with one that clears DECL_RTL and
20006 checks that PARMs and RESULTs default_defs match DECL_RTL.
20007 * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
20008 * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
20009 * explow.c (promote_ssa_mode): New.
20010 * explow.h (promote_ssa_mode): Declare.
20011 * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
20012 * function.c: Include cfgexpand.h.
20013 (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
20014 (use_register_for_parm_decl): Wrapper for the above to
20015 special-case the result_ptr.
20016 (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
20017 (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
20018 multiple locations.
20019 (assign_parm_adjust_stack_rtl): Add all and parm arguments,
20020 for rtl_for_parm. For SSA-assigned parms, zero stack_parm.
20021 (assign_parm_setup_block): Prefer SSA-assigned location.
20022 (assign_parm_setup_reg): Likewise. Use entry_parm for equiv
20023 if stack_parm is NULL.
20024 (assign_parm_setup_stack): Prefer SSA-assigned location.
20025 (assign_parms): Maybe reset DECL_RTL of params. Adjust stack
20026 rtl before testing for pointer bounds. Special-case result_ptr.
20027 (expand_function_start): Maybe reset DECL_RTL of result.
20028 Prefer SSA-assigned location for result and static chain.
20029 Factor out DECL_RESULT and SET_DECL_RTL.
20030 * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
20031 anonymous SSA names. Use promote_ssa_mode.
20032 (get_temp_reg): Likewise.
20033 (remove_ssa_form): Adjust.
20034 * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
20035 and get its reg_usage for reg invalidation.
20036 (compute_bb_dataflow): Pass it insn.
20037 (emit_notes_in_bb): Likewise.
20038 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
20039 fail assert on conversion between unsigned types.
20040
20041 2015-06-09 Tom de Vries <tom@codesourcery.com>
20042
20043 PR tree-optimization/65460
20044 * omp-low.c (expand_omp_target): Set parallelized_function on
20045 cgraph_node for child_fn.
20046
20047 2015-06-09 Tom de Vries <tom@codesourcery.com>
20048
20049 * omp-low.c (finalize_task_copyfn, expand_omp_taskreg): Mark function
20050 parallelized_function before add_new_function.
20051
20052 2015-06-09 Andrew MacLeod <amacleod@redhat.com>
20053
20054 * gcc-plugin.h: Move decls to plugin.h and include it.
20055 * plugin.h: Relocate decls from gcc-plugin.h
20056 * ggc-page.c: Include required header files.
20057 * passes.c: Likewise.
20058 * cgraphunit.c: Likewise.
20059
20060 2015-06-09 Tom de Vries <tom@codesourcery.com>
20061
20062 * tree-stdarg.c (expand_ifn_va_arg_1): Handle location.
20063
20064 2015-06-09 Jason Merrill <jason@redhat.com>
20065
20066 PR bootstrap/66448
20067 * toplev.c (check_global_declaration): Don't warn about a clone.
20068
20069 2015-06-09 Marek Polacek <polacek@redhat.com>
20070
20071 PR tree-optimization/66299
20072 * match.pd ((CST1 << A) == CST2 -> A == ctz (CST2) - ctz (CST1)
20073 ((CST1 << A) != CST2 -> A != ctz (CST2) - ctz (CST1)): New
20074 patterns.
20075
20076 2015-06-09 Richard Biener <rguenther@suse.de>
20077
20078 * tree-vect-slp.c (vect_build_slp_tree_1): Remove bailout on gaps.
20079 (vect_analyze_slp_instance): Instead do not falsely drop
20080 load permutations.
20081
20082 2015-06-09 Richard Biener <rguenther@suse.de>
20083
20084 PR middle-end/66423
20085 * match.pd: Handle A % (unsigned)(1 << B).
20086
20087 2015-06-09 Aldy Hernandez <aldyh@redhat.com>
20088
20089 * varasm.c (output_object_block_htab): Remove.
20090 (output_object_block_compare): New.
20091 (output_object_blocks): Sort named object_blocks before outputting
20092 them.
20093
20094 2015-06-09 Richard Biener <rguenther@suse.de>
20095
20096 PR tree-optimization/66419
20097 * tree-vect-slp.c (vect_supported_load_permutation_p): Properly
20098 consider GROUP_GAP when detecting a perfect subchain.
20099
20100 2015-06-09 Nick Clifton <nickc@redhat.com>
20101
20102 * config/rl78/rl78.c (rl78_select_section): When -mes0 is active
20103 place read only data in the .frodata section.
20104
20105 2015-06-09 Shiva Chen <shiva0217@gmail.com>
20106
20107 * sync.md (atomic_load<mode>): Add conditional code for lda/ldr
20108 (atomic_store<mode>): Likewise.
20109
20110 2015-06-09 Richard Biener <rguenther@suse.de>
20111
20112 * cfgloop.c (get_loop_body_in_bfs_order): Fix assert.
20113
20114 2015-06-09 Richard Biener <rguenther@suse.de>
20115
20116 PR middle-end/66413
20117 * tree-inline.c (insert_init_debug_bind): Unshare value.
20118
20119 2015-06-09 Richard Biener <rguenther@suse.de>
20120
20121 PR tree-optimization/66396
20122 * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
20123 Rename virtual operands.
20124
20125 2015-06-09 Tom de Vries <tom@codesourcery.com>
20126
20127 * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Don't
20128 always return false.
20129
20130 2015-06-09 Alexandre Oliva <aoliva@redhat.com>
20131
20132 PR rtl-optimization/64164
20133 * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
20134 * tree-ssa-copyrename.c: Removed.
20135 * opts.c (default_options_table): Drop -ftree-copyrename. Add
20136 -ftree-coalesce-vars.
20137 * passes.def: Drop all occurrences of pass_rename_ssa_copies.
20138 * common.opt (ftree-copyrename): Ignore.
20139 (ftree-coalesce-inlined-vars): Likewise.
20140 * doc/invoke.texi: Remove the ignored options above.
20141 * gimple-expr.h (gimple_can_coalesce_p): Move declaration
20142 * tree-ssa-coalesce.h: ... here.
20143 * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
20144 headers required by it.
20145 * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
20146 across variables when flag_tree_coalesce_vars. Check register
20147 use and promoted modes to allow coalescing. Moved to
20148 tree-ssa-coalesce.c.
20149 * tree-ssa-live.c (struct tree_int_map_hasher): Move along
20150 with its member functions to tree-ssa-coalesce.c.
20151 (var_map_base_init): Likewise. Renamed to
20152 compute_samebase_partition_bases.
20153 (partition_view_normal): Drop want_bases parameter.
20154 (partition_view_bitmap): Likewise.
20155 * tree-ssa-live.h: Adjust declarations.
20156 * tree-ssa-coalesce.c: Include explow.h.
20157 (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
20158 default defs at the entry point.
20159 (dump_part_var_map): New.
20160 (compute_optimized_partition_bases): New, called by...
20161 (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
20162 of compute_samebase_partition_bases. Adjust.
20163 * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
20164 * cfgexpand.c (leader_merge): New.
20165 (get_rtl_for_parm_ssa_default_def): New.
20166 (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
20167 vars. Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
20168 (expand_one_stack_var_at): Handle anonymous SSA_NAMEs. Drop
20169 redundant MEM attr setting.
20170 (expand_one_stack_var_1): Handle anonymous SSA_NAMEs. Renamed
20171 from...
20172 (expand_one_stack_var): ... this. New wrapper to check and
20173 skip already expanded SSA partitions.
20174 (record_alignment_for_reg_var): New, factored out of...
20175 (expand_one_var): ... this.
20176 (expand_one_ssa_partition): New.
20177 (adjust_one_expanded_partition_var): New.
20178 (expand_one_register_var): Check and skip already expanded SSA
20179 partitions.
20180 (expand_used_vars): Don't create DECLs for anonymous SSA
20181 names. Expand all SSA partitions, then adjust all SSA names.
20182 (pass::execute): Replace the loops that set
20183 SA.partition_to_pseudo from partition leaders and cleared
20184 DECL_RTL for multi-location variables, and that which used to
20185 rename vars and set attrs, with one that clears DECL_RTL and
20186 checks that PARMs and RESULTs default_defs match DECL_RTL.
20187 * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
20188 * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
20189 * explow.c (promote_ssa_mode): New.
20190 * explow.h (promote_ssa_mode): Declare.
20191 * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
20192 * function.c: Include cfgexpand.h.
20193 (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
20194 (use_register_for_parm_decl): Wrapper for the above to
20195 special-case the result_ptr.
20196 (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
20197 (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
20198 multiple locations.
20199 (assign_parm_adjust_stack_rtl): Add all and parm arguments,
20200 for rtl_for_parm. For SSA-assigned parms, zero stack_parm.
20201 (assign_parm_setup_block): Prefer SSA-assigned location.
20202 (assign_parm_setup_reg): Likewise. Use entry_parm for equiv
20203 if stack_parm is NULL.
20204 (assign_parm_setup_stack): Prefer SSA-assigned location.
20205 (assign_parms): Maybe reset DECL_RTL of params. Adjust stack
20206 rtl before testing for pointer bounds. Special-case result_ptr.
20207 (expand_function_start): Maybe reset DECL_RTL of result.
20208 Prefer SSA-assigned location for result and static chain.
20209 Factor out DECL_RESULT and SET_DECL_RTL.
20210 * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
20211 anonymous SSA names. Use promote_ssa_mode.
20212 (get_temp_reg): Likewise.
20213 (remove_ssa_form): Adjust.
20214 * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
20215 and get its reg_usage for reg invalidation.
20216 (compute_bb_dataflow): Pass it insn.
20217 (emit_notes_in_bb): Likewise.
20218 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
20219 fail assert on conversion between unsigned types.
20220
20221 2015-06-09 Alexandre Oliva <aoliva@redhat.com>
20222
20223 PR debug/58315
20224 * tree-inline.c (reset_debug_binding): New.
20225 (reset_debug_bindings): Likewise.
20226 (expand_call_inline): Call it.
20227
20228 2015-06-08 Jan Hubicka <hubicka@ucw.cz>
20229
20230 * tree.c (gimple_canonical_types_compatible_p): Drop comparsion of
20231 TYPE_STRING_FLAG.
20232
20233 2015-06-08 Jan Hubicka <hubicka@ucw.cz>
20234
20235 * lto-streamer-out.c (lto_output_location): Stream
20236 reserved locations correctly.
20237 * lto-streamer-in.c (lto_output_location): Likewise.
20238
20239 2015-06-08 Andrew MacLeod <amacleod@redhat.com>
20240
20241 * coretypes.h: Include hash-table.h and hash-set.h for host files.
20242 * ggc.h: Don't include statistics.h>
20243 * hash-map.h: Remove all includes.
20244 * hash-set.h: Likewise.
20245 * hash-table.h: Add statistics.h, inchash.h and hash-map-traits.h to
20246 the include list. Remove <new>.
20247 * inchash.h: Remove all includes.
20248 * mem-stats.h: Likewise.
20249 * vec.h: No special processing for generators or ggc.
20250 * alias.c : Adjust include files.
20251 * alloc-pool.c : Likewise.
20252 * alloc-pool.h : Likewise.
20253 * asan.c : Likewise.
20254 * attribs.c : Likewise.
20255 * auto-inc-dec.c : Likewise.
20256 * auto-profile.c : Likewise.
20257 * bb-reorder.c : Likewise.
20258 * bitmap.c : Likewise.
20259 * bitmap.h : Likewise.
20260 * bt-load.c : Likewise.
20261 * builtins.c : Likewise.
20262 * caller-save.c : Likewise.
20263 * calls.c : Likewise.
20264 * ccmp.c : Likewise.
20265 * cfg.c : Likewise.
20266 * cfganal.c : Likewise.
20267 * cfgbuild.c : Likewise.
20268 * cfgcleanup.c : Likewise.
20269 * cfgexpand.c : Likewise.
20270 * cfghooks.c : Likewise.
20271 * cfgloop.c : Likewise.
20272 * cfgloop.h : Likewise.
20273 * cfgloopanal.c : Likewise.
20274 * cfgloopmanip.c : Likewise.
20275 * cfgrtl.c : Likewise.
20276 * cgraph.c : Likewise.
20277 * cgraphbuild.c : Likewise.
20278 * cgraphclones.c : Likewise.
20279 * cgraphunit.c : Likewise.
20280 * cilk-common.c : Likewise.
20281 * combine-stack-adj.c : Likewise.
20282 * combine.c : Likewise.
20283 * compare-elim.c : Likewise.
20284 * context.c : Likewise.
20285 * convert.c : Likewise.
20286 * coverage.c : Likewise.
20287 * cppbuiltin.c : Likewise.
20288 * cprop.c : Likewise.
20289 * cse.c : Likewise.
20290 * cselib.c : Likewise.
20291 * data-streamer-in.c : Likewise.
20292 * data-streamer-out.c : Likewise.
20293 * data-streamer.c : Likewise.
20294 * data-streamer.h : Likewise.
20295 * dbxout.c : Likewise.
20296 * dce.c : Likewise.
20297 * ddg.c : Likewise.
20298 * debug.c : Likewise.
20299 * df-core.c : Likewise.
20300 * df-problems.c : Likewise.
20301 * df-scan.c : Likewise.
20302 * df.h : Likewise.
20303 * dfp.c : Likewise.
20304 * dojump.c : Likewise.
20305 * dominance.c : Likewise.
20306 * domwalk.c : Likewise.
20307 * double-int.c : Likewise.
20308 * dse.c : Likewise.
20309 * dumpfile.c : Likewise.
20310 * dwarf2asm.c : Likewise.
20311 * dwarf2cfi.c : Likewise.
20312 * dwarf2out.c : Likewise.
20313 * emit-rtl.c : Likewise.
20314 * et-forest.c : Likewise.
20315 * except.c : Likewise.
20316 * except.h : Likewise.
20317 * explow.c : Likewise.
20318 * expmed.c : Likewise.
20319 * expr.c : Likewise.
20320 * final.c : Likewise.
20321 * fixed-value.c : Likewise.
20322 * fold-const.c : Likewise.
20323 * function.c : Likewise.
20324 * fwprop.c : Likewise.
20325 * gcc-plugin.h : Likewise.
20326 * gcc.c : Likewise.
20327 * gcse-common.c : Likewise.
20328 * gcse.c : Likewise.
20329 * genattrtab.c : Likewise.
20330 * genautomata.c : Likewise.
20331 * genconditions.c : Likewise.
20332 * genemit.c : Likewise.
20333 * generic-match-head.c : Likewise.
20334 * genextract.c : Likewise.
20335 * gengtype-state.c : Likewise.
20336 * gengtype.c : Likewise.
20337 * genhooks.c : Likewise.
20338 * genmatch.c : Likewise.
20339 * genmodes.c : Likewise.
20340 * genrecog.c : Likewise.
20341 * gensupport.c : Likewise.
20342 * ggc-common.c : Likewise.
20343 * ggc-internal.h : Likewise.
20344 * ggc-none.c : Likewise.
20345 * ggc-page.c : Likewise.
20346 * gimple-builder.c : Likewise.
20347 * gimple-expr.c : Likewise.
20348 * gimple-fold.c : Likewise.
20349 * gimple-iterator.c : Likewise.
20350 * gimple-low.c : Likewise.
20351 * gimple-match-head.c : Likewise.
20352 * gimple-pretty-print.c : Likewise.
20353 * gimple-ssa-isolate-paths.c : Likewise.
20354 * gimple-ssa-strength-reduction.c : Likewise.
20355 * gimple-ssa.h : Likewise.
20356 * gimple-streamer-in.c : Likewise.
20357 * gimple-streamer-out.c : Likewise.
20358 * gimple-streamer.h : Likewise.
20359 * gimple-walk.c : Likewise.
20360 * gimple.c : Likewise.
20361 * gimplify-me.c : Likewise.
20362 * gimplify.c : Likewise.
20363 * godump.c : Likewise.
20364 * graph.c : Likewise.
20365 * graphds.c : Likewise.
20366 * graphite-blocking.c : Likewise.
20367 * graphite-dependences.c : Likewise.
20368 * graphite-interchange.c : Likewise.
20369 * graphite-isl-ast-to-gimple.c : Likewise.
20370 * graphite-optimize-isl.c : Likewise.
20371 * graphite-poly.c : Likewise.
20372 * graphite-scop-detection.c : Likewise.
20373 * graphite-sese-to-poly.c : Likewise.
20374 * graphite.c : Likewise.
20375 * haifa-sched.c : Likewise.
20376 * hard-reg-set.h : Likewise.
20377 * hw-doloop.c : Likewise.
20378 * ifcvt.c : Likewise.
20379 * inchash.c : Likewise.
20380 * incpath.c : Likewise.
20381 * init-regs.c : Likewise.
20382 * input.c : Likewise.
20383 * internal-fn.c : Likewise.
20384 * ipa-chkp.c : Likewise.
20385 * ipa-comdats.c : Likewise.
20386 * ipa-cp.c : Likewise.
20387 * ipa-devirt.c : Likewise.
20388 * ipa-icf-gimple.c : Likewise.
20389 * ipa-icf.c : Likewise.
20390 * ipa-inline-analysis.c : Likewise.
20391 * ipa-inline-transform.c : Likewise.
20392 * ipa-inline.c : Likewise.
20393 * ipa-polymorphic-call.c : Likewise.
20394 * ipa-profile.c : Likewise.
20395 * ipa-prop.c : Likewise.
20396 * ipa-pure-const.c : Likewise.
20397 * ipa-ref.c : Likewise.
20398 * ipa-reference.c : Likewise.
20399 * ipa-split.c : Likewise.
20400 * ipa-utils.c : Likewise.
20401 * ipa-visibility.c : Likewise.
20402 * ipa.c : Likewise.
20403 * ira-build.c : Likewise.
20404 * ira-color.c : Likewise.
20405 * ira-conflicts.c : Likewise.
20406 * ira-costs.c : Likewise.
20407 * ira-emit.c : Likewise.
20408 * ira-lives.c : Likewise.
20409 * ira.c : Likewise.
20410 * jump.c : Likewise.
20411 * langhooks.c : Likewise.
20412 * lcm.c : Likewise.
20413 * libfuncs.h : Likewise.
20414 * lists.c : Likewise.
20415 * loop-doloop.c : Likewise.
20416 * loop-init.c : Likewise.
20417 * loop-invariant.c : Likewise.
20418 * loop-iv.c : Likewise.
20419 * loop-unroll.c : Likewise.
20420 * lower-subreg.c : Likewise.
20421 * lra-assigns.c : Likewise.
20422 * lra-coalesce.c : Likewise.
20423 * lra-constraints.c : Likewise.
20424 * lra-eliminations.c : Likewise.
20425 * lra-lives.c : Likewise.
20426 * lra-remat.c : Likewise.
20427 * lra-spills.c : Likewise.
20428 * lra.c : Likewise.
20429 * lto-cgraph.c : Likewise.
20430 * lto-compress.c : Likewise.
20431 * lto-opts.c : Likewise.
20432 * lto-section-in.c : Likewise.
20433 * lto-section-out.c : Likewise.
20434 * lto-streamer-in.c : Likewise.
20435 * lto-streamer-out.c : Likewise.
20436 * lto-streamer.c : Likewise.
20437 * lto-streamer.h : Likewise.
20438 * mcf.c : Likewise.
20439 * mode-switching.c : Likewise.
20440 * modulo-sched.c : Likewise.
20441 * omega.c : Likewise.
20442 * omp-low.c : Likewise.
20443 * optabs.c : Likewise.
20444 * opts-global.c : Likewise.
20445 * opts.h : Likewise.
20446 * passes.c : Likewise.
20447 * plugin.c : Likewise.
20448 * postreload-gcse.c : Likewise.
20449 * postreload.c : Likewise.
20450 * predict.c : Likewise.
20451 * print-rtl.c : Likewise.
20452 * print-tree.c : Likewise.
20453 * profile.c : Likewise.
20454 * read-md.c : Likewise.
20455 * read-md.h : Likewise.
20456 * read-rtl.c : Likewise.
20457 * real.c : Likewise.
20458 * realmpfr.c : Likewise.
20459 * recog.c : Likewise.
20460 * ree.c : Likewise.
20461 * reg-stack.c : Likewise.
20462 * regcprop.c : Likewise.
20463 * reginfo.c : Likewise.
20464 * regrename.c : Likewise.
20465 * regstat.c : Likewise.
20466 * reload.c : Likewise.
20467 * reload1.c : Likewise.
20468 * reorg.c : Likewise.
20469 * resource.c : Likewise.
20470 * rtl-chkp.c : Likewise.
20471 * rtl.c : Likewise.
20472 * rtl.h : Likewise.
20473 * rtlanal.c : Likewise.
20474 * rtlhash.c : Likewise.
20475 * rtlhash.h : Likewise.
20476 * rtlhooks.c : Likewise.
20477 * sanopt.c : Likewise.
20478 * sched-deps.c : Likewise.
20479 * sched-ebb.c : Likewise.
20480 * sched-rgn.c : Likewise.
20481 * sched-vis.c : Likewise.
20482 * sdbout.c : Likewise.
20483 * sel-sched-dump.c : Likewise.
20484 * sel-sched-ir.c : Likewise.
20485 * sel-sched-ir.h : Likewise.
20486 * sel-sched.c : Likewise.
20487 * sese.c : Likewise.
20488 * shrink-wrap.c : Likewise.
20489 * shrink-wrap.h : Likewise.
20490 * simplify-rtx.c : Likewise.
20491 * stack-ptr-mod.c : Likewise.
20492 * statistics.c : Likewise.
20493 * stmt.c : Likewise.
20494 * stor-layout.c : Likewise.
20495 * store-motion.c : Likewise.
20496 * stringpool.c : Likewise.
20497 * symtab.c : Likewise.
20498 * target-globals.c : Likewise.
20499 * targhooks.c : Likewise.
20500 * tlink.c : Likewise.
20501 * toplev.c : Likewise.
20502 * tracer.c : Likewise.
20503 * trans-mem.c : Likewise.
20504 * tree-affine.c : Likewise.
20505 * tree-affine.h : Likewise.
20506 * tree-browser.c : Likewise.
20507 * tree-call-cdce.c : Likewise.
20508 * tree-cfg.c : Likewise.
20509 * tree-cfgcleanup.c : Likewise.
20510 * tree-chkp-opt.c : Likewise.
20511 * tree-chkp.c : Likewise.
20512 * tree-chrec.c : Likewise.
20513 * tree-complex.c : Likewise.
20514 * tree-data-ref.c : Likewise.
20515 * tree-dfa.c : Likewise.
20516 * tree-diagnostic.c : Likewise.
20517 * tree-dump.c : Likewise.
20518 * tree-eh.c : Likewise.
20519 * tree-eh.h : Likewise.
20520 * tree-emutls.c : Likewise.
20521 * tree-hasher.h : Likewise.
20522 * tree-if-conv.c : Likewise.
20523 * tree-inline.c : Likewise.
20524 * tree-inline.h : Likewise.
20525 * tree-into-ssa.c : Likewise.
20526 * tree-iterator.c : Likewise.
20527 * tree-loop-distribution.c : Likewise.
20528 * tree-nested.c : Likewise.
20529 * tree-nrv.c : Likewise.
20530 * tree-object-size.c : Likewise.
20531 * tree-outof-ssa.c : Likewise.
20532 * tree-parloops.c : Likewise.
20533 * tree-phinodes.c : Likewise.
20534 * tree-predcom.c : Likewise.
20535 * tree-pretty-print.c : Likewise.
20536 * tree-profile.c : Likewise.
20537 * tree-scalar-evolution.c : Likewise.
20538 * tree-sra.c : Likewise.
20539 * tree-ssa-address.c : Likewise.
20540 * tree-ssa-alias.c : Likewise.
20541 * tree-ssa-ccp.c : Likewise.
20542 * tree-ssa-coalesce.c : Likewise.
20543 * tree-ssa-copy.c : Likewise.
20544 * tree-ssa-copyrename.c : Likewise.
20545 * tree-ssa-dce.c : Likewise.
20546 * tree-ssa-dom.c : Likewise.
20547 * tree-ssa-dse.c : Likewise.
20548 * tree-ssa-forwprop.c : Likewise.
20549 * tree-ssa-ifcombine.c : Likewise.
20550 * tree-ssa-live.c : Likewise.
20551 * tree-ssa-loop-ch.c : Likewise.
20552 * tree-ssa-loop-im.c : Likewise.
20553 * tree-ssa-loop-ivcanon.c : Likewise.
20554 * tree-ssa-loop-ivopts.c : Likewise.
20555 * tree-ssa-loop-manip.c : Likewise.
20556 * tree-ssa-loop-niter.c : Likewise.
20557 * tree-ssa-loop-prefetch.c : Likewise.
20558 * tree-ssa-loop-unswitch.c : Likewise.
20559 * tree-ssa-loop.c : Likewise.
20560 * tree-ssa-math-opts.c : Likewise.
20561 * tree-ssa-operands.c : Likewise.
20562 * tree-ssa-phiopt.c : Likewise.
20563 * tree-ssa-phiprop.c : Likewise.
20564 * tree-ssa-pre.c : Likewise.
20565 * tree-ssa-propagate.c : Likewise.
20566 * tree-ssa-reassoc.c : Likewise.
20567 * tree-ssa-sccvn.c : Likewise.
20568 * tree-ssa-scopedtables.c : Likewise.
20569 * tree-ssa-sink.c : Likewise.
20570 * tree-ssa-strlen.c : Likewise.
20571 * tree-ssa-structalias.c : Likewise.
20572 * tree-ssa-tail-merge.c : Likewise.
20573 * tree-ssa-ter.c : Likewise.
20574 * tree-ssa-threadedge.c : Likewise.
20575 * tree-ssa-threadupdate.c : Likewise.
20576 * tree-ssa-uncprop.c : Likewise.
20577 * tree-ssa-uninit.c : Likewise.
20578 * tree-ssa.c : Likewise.
20579 * tree-ssanames.c : Likewise.
20580 * tree-stdarg.c : Likewise.
20581 * tree-streamer-in.c : Likewise.
20582 * tree-streamer-out.c : Likewise.
20583 * tree-streamer.c : Likewise.
20584 * tree-streamer.h : Likewise.
20585 * tree-switch-conversion.c : Likewise.
20586 * tree-tailcall.c : Likewise.
20587 * tree-vect-data-refs.c : Likewise.
20588 * tree-vect-generic.c : Likewise.
20589 * tree-vect-loop-manip.c : Likewise.
20590 * tree-vect-loop.c : Likewise.
20591 * tree-vect-patterns.c : Likewise.
20592 * tree-vect-slp.c : Likewise.
20593 * tree-vect-stmts.c : Likewise.
20594 * tree-vectorizer.c : Likewise.
20595 * tree-vectorizer.h : Likewise.
20596 * tree-vrp.c : Likewise.
20597 * tree.c : Likewise.
20598 * tsan.c : Likewise.
20599 * ubsan.c : Likewise.
20600 * valtrack.c : Likewise.
20601 * valtrack.h : Likewise.
20602 * value-prof.c : Likewise.
20603 * var-tracking.c : Likewise.
20604 * varasm.c : Likewise.
20605 * varpool.c : Likewise.
20606 * vec.c: Likewise.
20607 * vmsdbgout.c : Likewise.
20608 * vtable-verify.c : Likewise.
20609 * vtable-verify.h : Likewise.
20610 * web.c : Likewise.
20611 * wide-int.cc : Likewise.
20612 * xcoffout.c : Likewise.
20613 * config/aarch64/aarch64-builtins.c : Likewise.
20614 * config/aarch64/aarch64.c : Likewise.
20615 * config/aarch64/cortex-a57-fma-steering.c : Likewise.
20616 * config/alpha/alpha.c : Likewise.
20617 * config/arc/arc.c : Likewise.
20618 * config/arm/aarch-common.c : Likewise.
20619 * config/arm/arm-builtins.c : Likewise.
20620 * config/arm/arm-c.c : Likewise.
20621 * config/arm/arm.c : Likewise.
20622 * config/avr/avr-c.c : Likewise.
20623 * config/avr/avr-log.c : Likewise.
20624 * config/avr/avr.c : Likewise.
20625 * config/bfin/bfin.c : Likewise.
20626 * config/c6x/c6x.c : Likewise.
20627 * config/cr16/cr16.c : Likewise.
20628 * config/cris/cris.c : Likewise.
20629 * config/darwin-c.c : Likewise.
20630 * config/darwin.c : Likewise.
20631 * config/default-c.c : Likewise.
20632 * config/epiphany/epiphany.c : Likewise.
20633 * config/epiphany/mode-switch-use.c : Likewise.
20634 * config/epiphany/resolve-sw-modes.c : Likewise.
20635 * config/fr30/fr30.c : Likewise.
20636 * config/frv/frv.c : Likewise.
20637 * config/ft32/ft32.c : Likewise.
20638 * config/glibc-c.c : Likewise.
20639 * config/h8300/h8300.c : Likewise.
20640 * config/i386/i386-c.c : Likewise.
20641 * config/i386/i386.c : Likewise.
20642 * config/i386/msformat-c.c : Likewise.
20643 * config/i386/winnt-cxx.c : Likewise.
20644 * config/i386/winnt-stubs.c : Likewise.
20645 * config/i386/winnt.c : Likewise.
20646 * config/ia64/ia64-c.c : Likewise.
20647 * config/ia64/ia64.c : Likewise.
20648 * config/iq2000/iq2000.c : Likewise.
20649 * config/lm32/lm32.c : Likewise.
20650 * config/m32c/m32c-pragma.c : Likewise.
20651 * config/m32c/m32c.c : Likewise.
20652 * config/m32r/m32r.c : Likewise.
20653 * config/m68k/m68k.c : Likewise.
20654 * config/mcore/mcore.c : Likewise.
20655 * config/mep/mep-pragma.c : Likewise.
20656 * config/mep/mep.c : Likewise.
20657 * config/microblaze/microblaze-c.c : Likewise.
20658 * config/microblaze/microblaze.c : Likewise.
20659 * config/mips/mips.c : Likewise.
20660 * config/mmix/mmix.c : Likewise.
20661 * config/mn10300/mn10300.c : Likewise.
20662 * config/moxie/moxie.c : Likewise.
20663 * config/msp430/msp430-c.c : Likewise.
20664 * config/msp430/msp430.c : Likewise.
20665 * config/nds32/nds32-cost.c : Likewise.
20666 * config/nds32/nds32-fp-as-gp.c : Likewise.
20667 * config/nds32/nds32-intrinsic.c : Likewise.
20668 * config/nds32/nds32-isr.c : Likewise.
20669 * config/nds32/nds32-md-auxiliary.c : Likewise.
20670 * config/nds32/nds32-memory-manipulation.c : Likewise.
20671 * config/nds32/nds32-pipelines-auxiliary.c : Likewise.
20672 * config/nds32/nds32-predicates.c : Likewise.
20673 * config/nds32/nds32.c : Likewise.
20674 * config/nios2/nios2.c : Likewise.
20675 * config/nvptx/nvptx.c : Likewise.
20676 * config/pa/pa.c : Likewise.
20677 * config/pdp11/pdp11.c : Likewise.
20678 * config/rl78/rl78-c.c : Likewise.
20679 * config/rl78/rl78.c : Likewise.
20680 * config/rs6000/rs6000-c.c : Likewise.
20681 * config/rs6000/rs6000.c : Likewise.
20682 * config/rx/rx.c : Likewise.
20683 * config/s390/s390-c.c : Likewise.
20684 * config/s390/s390.c : Likewise.
20685 * config/sh/sh-c.c : Likewise.
20686 * config/sh/sh-mem.cc : Likewise.
20687 * config/sh/sh.c : Likewise.
20688 * config/sh/sh_optimize_sett_clrt.cc : Likewise.
20689 * config/sh/sh_treg_combine.cc : Likewise.
20690 * config/sol2-c.c : Likewise.
20691 * config/sol2-cxx.c : Likewise.
20692 * config/sol2-stubs.c : Likewise.
20693 * config/sol2.c : Likewise.
20694 * config/sparc/sparc-c.c : Likewise.
20695 * config/sparc/sparc.c : Likewise.
20696 * config/spu/spu-c.c : Likewise.
20697 * config/spu/spu.c : Likewise.
20698 * config/stormy16/stormy16.c : Likewise.
20699 * config/tilegx/mul-tables.c : Likewise.
20700 * config/tilegx/tilegx-c.c : Likewise.
20701 * config/tilegx/tilegx.c : Likewise.
20702 * config/tilepro/mul-tables.c : Likewise.
20703 * config/tilepro/tilepro-c.c : Likewise.
20704 * config/tilepro/tilepro.c : Likewise.
20705 * config/v850/v850-c.c : Likewise.
20706 * config/v850/v850.c : Likewise.
20707 * config/vax/vax.c : Likewise.
20708 * config/visium/visium.c : Likewise.
20709 * config/vms/vms-c.c : Likewise.
20710 * config/vms/vms.c : Likewise.
20711 * config/vxworks.c : Likewise.
20712 * config/winnt-c.c : Likewise.
20713 * config/xtensa/xtensa.c : Likewise.
20714
20715 2015-06-08 Jan Hubicka <hubicka@ucw.cz>
20716
20717 PR lto/65378
20718 * ipa-utils.h (warn_types_mismatch): Update prototype.
20719 * ipa-devirt.c (odr_types_equivalent_p): Add loc1/loc2
20720 parameters.
20721 (type_mismatch_p): New function.
20722 (warn_types_mismatch): Reorg to work better on non-C++ types.
20723 (odr_types_equivalent_p): Add loc1/loc2 parameters.
20724 (add_type_duplicate): Update.
20725
20726 2015-06-08 Tom de Vries <tom@codesourcery.com>
20727
20728 PR rtl-optimization/66444
20729 * postreload.c (reload_combine): Use get_call_reg_set_usage instead of
20730 call_used_regs.
20731
20732 2015-06-08 Richard Biener <rguenther@suse.de>
20733
20734 PR tree-optimization/66422
20735 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Split
20736 block after inserted gcc_unreachable.
20737
20738 2015-06-08 Nick Clifton <nickc@redhat.com>
20739
20740 * config/rx/rx.c (rx_function_value): Do not promote vector types.
20741 (rx_promote_function_mode): Likewise.
20742 * config/rx/rx.h (LIBCALL_VALUE): Likewise.
20743
20744 2015-06-08 Jakub Jelinek <jakub@redhat.com>
20745
20746 * genattrtab.c (insn_alternatives): Change type from int *
20747 to uint64_t *.
20748 (check_attr_test): Shift ((uint64_t) 1) instead of 1 up.
20749 (get_attr_value): Change type of num_alt to uint64_t.
20750 (compute_alternative_mask): Change return type from
20751 int to uint64_t, shift ((uint64_t) 1) instead of 1 up.
20752 (make_alternative_compare, mk_attr_alt): Change argument type
20753 from int to uint64_t.
20754 (simplify_test_exp): Change type of i from int to uint64_t.
20755 Shift ((uint64_t) 1) instead of 1 up.
20756 (main): Adjust oballocvec first argument from int to uint64_t.
20757 Shift ((uint64_t) 1) instead of 1 up.
20758
20759 2015-06-08 Jan Kratochvil <jan.kratochvil@redhat.com>
20760
20761 PR other/65366
20762 * gdbhooks.py: Import sys.
20763 (intptr): New function. Replace int(...) by intptr(...).
20764
20765 2015-06-08 Richard Biener <rguenther@suse.de>
20766
20767 * tree-vect-stmts.c (vectorizable_load): Compute the pointer
20768 adjustment for gaps at the end of a SLP load group properly.
20769 * tree-vect-slp.c (vect_supported_load_permutation_p): Allow
20770 all permutations we can generate.
20771 (vect_transform_slp_perm_load): Use the correct group-size.
20772
20773 2015-06-08 Marc Glisse <marc.glisse@inria.fr>
20774
20775 * genmatch.c (expr::gen_transform): For conditions, guess the type
20776 from the second operand.
20777
20778 2015-06-08 Tom de Vries <tom@codesourcery.com>
20779
20780 PR tree-optimization/66442
20781 * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Add function.
20782 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Return false
20783 if the loop latch is not a singleton. Use
20784 gimple_seq_nondebug_singleton_p instead of gimple_seq_singleton_p.
20785
20786 2015-06-08 Marek Polacek <polacek@redhat.com>
20787
20788 PR sanitizer/66452
20789 * toplev.c (check_global_declaration): Don't warn about artificial
20790 decls.
20791
20792 2015-06-08 Tom de Vries <tom@codesourcery.com>
20793
20794 PR tree-optimization/66436
20795 * cgraphunit.c (cgraph_node::analyze): Don't dump function to gimple
20796 dump file.
20797 * gimplify.c: Add tree-dump.h include.
20798 (gimplify_function_tree): Dump function to gimple dump file.
20799 * stor-layout.c (finalize_size_functions): Don't dump function to gimple
20800 dump file.
20801
20802 2015-06-08 Tom de Vries <tom@codesourcery.com>
20803
20804 PR tree-optimization/66435
20805 * cgraphunit.c (cgraph_node::add_new_function): Dump message on new
20806 function.
20807
20808 2015-06-06 Jan Hubicka <hubicka@ucw.cz>
20809
20810 * alias.c (get_alias_set): Be ready for TYPE_CANONICAL
20811 of ptr_type_node to not be ptr_to_node.
20812 * tree.c (gimple_types_compatible_p): Do not match TREE_CODE of
20813 TREE_TYPE of pointers.
20814 * gimple-expr.c (useless_type_conversion): Reorder the check for
20815 function pointers and TYPE_CANONICAL.
20816
20817 2015-06-06 John David Anglin <danglin@gcc.gnu.org>
20818
20819 PR bootstrap/66319
20820 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Rearrange builtin
20821 defines. Define _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE for c++.
20822 Define _XOPEN_UNIX and _XOPEN_SOURCE_EXTENDED for c++ if unix95 or
20823 later.
20824 * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Likewise.
20825 Define _INCLUDE_STDC_SOURCE_PRE_199901, _INCLUDE_STDC_SOURCE_199901,
20826 _INCLUDE_XOPEN_SOURCE_PRE_500, _INCLUDE_XOPEN_SOURCE_520,
20827 _INCLUDE_XOPEN_SOURCE_PRE_600 and _INCLUDE_XOPEN_SOURCE_600 for c++
20828 and non iso if unix2003.
20829
20830 2015-06-06 Aldy Hernandez <aldyh@redhat.com>
20831
20832 * dwarf2out.c (gen_lexical_block_die): Initialize stmt_die.
20833
20834 2015-06-06 Richard Sandiford <richard.sandiford@arm.com>
20835
20836 * emit-rtl.c, expr.c, gcse.c, optabs.c, optabs.h, print-rtl.c,
20837 rtl.h, bb-reorder.c, builtins.c, calls.c, cfgbuild.c, cfgexpand.c,
20838 cfgrtl.c, cilk-common.c, config/i386/i386.md, cse.c, dwarf2cfi.c,
20839 except.c, final.c, function.c, gcse-common.c, genemit.c,
20840 haifa-sched.c, ifcvt.c, jump.c, loop-invariant.c, loop-iv.c,
20841 lra-constraints.c, lra.c, reload1.c, resource.c, rtlanal.c,
20842 sched-deps.c, sched-ebb.c, sel-sched-ir.c, sel-sched.c,
20843 shrink-wrap.c, stmt.c, store-motion.c: Replace rtx base types with
20844 more derived ones.
20845
20846 2015-06-06 Mikhail Maltsev <maltsevm@gmail.com>
20847
20848 * combine.c (combine_split_insns): Remove cast.
20849 * config/bfin/bfin.c (hwloop_fail): Add cast in try_split call.
20850 * config/sh/sh.c (sh_try_split_insn_simple): Remove cast.
20851 * config/sh/sh_treg_combine.cc (sh_treg_combine::execute): Add cast.
20852 * emit-rtl.c (try_split): Promote type of trial argument to rtx_insn.
20853 * genemit.c (gen_split): Change return type of generated functions to
20854 rtx_insn.
20855 * genrecog.c (get_failure_return): Use NULL instead of NULL_RTX.
20856 (print_subroutine_start): Promote rtx to rtx_insn in gen_split_* and
20857 gen_peephole2_* functions.
20858 (print_subroutine, main): Likewise.
20859 * recog.c (peephole2_optimize): Remove cast.
20860 (peep2_next_insn): Promote return type to rtx_insn.
20861 * recog.h (peep2_next_insn): Fix prototype.
20862 * rtl.h (try_split, split_insns): Likewise.
20863
20864 2015-06-06 DJ Delorie <dj@redhat.com>
20865
20866 * config/msp430/msp430.c (msp430_asm_integer): Support addition
20867 and subtraction too.
20868
20869 2015-06-05 Kaz Kojima <kkojima@gcc.gnu.org>
20870
20871 PR target/66410
20872 * config/sh/constraints.md (Sid, Ssd): New memory constraints.
20873 * config/sh/sh.md (*mov<mode>): Use Sid and Ssd alternatives
20874 instead of Snd. Disparage Sid/z alternative with '^'.
20875
20876 2015-06-05 Aldy Hernandez <aldyh@redhat.com>
20877
20878 * dwarf2out.c: Remove deferred_locations*.
20879 (dwarf2_debug_hooks): Add early_finish hook.
20880 Remove global_decl hook.
20881 Add early_global_decl and late_global_decl hook.
20882 New global early_dwarf.
20883 New structure set_early_dwarf.
20884 (output_die): Indicate whether a DIE was generated early
20885 when generating assembly with -dA.
20886 (struct limbo_die_struct): Document created_for field.
20887 Remove file_table_last_lookup.
20888 (remove_AT): Return TRUE if successful.
20889 (remove_child_TAG): Clear die_parent.
20890 (reparent_child): New function abstracted from...
20891 (splice_child_die): ...here.
20892 (new_die): ICE if a DIE ends up in limbo too late.
20893 (check_die): New.
20894 (defer_location): Remove.
20895 (add_subscript_info): Reuse DW_TAG_subrange_type if available.
20896 (fill_variable_array_bounds): New.
20897 (decl_start_label): Call fill_variable_array_bounds.
20898 (gen_formal_parameter_die): Rewrite to reuse previously generated
20899 DIEs.
20900 (gen_subprogram_die): Same.
20901 (gen_variable_die): Same.
20902 (gen_const_die): Same.
20903 (gen_label_die): Same.
20904 (gen_lexical_block_die): Same.
20905 (decl_will_get_specification_p): New.
20906 (local_function_static): New.
20907 (gen_struct_or_union_type_die): Fill in variable-length fields.
20908 (gen_typedef_die): Fill in variable-length typedefs.
20909 (gen_tagged_type_die): Gracefully return on error_mark_node.
20910 Handle re-entrancy.
20911 (gen_type_die_with_usage): Handle variable-length types.
20912 Remove duplicate code for ARRAY_TYPE case.
20913 (process_scope_var): Only process imported modules during early
20914 dwarf.
20915 (dwarf2out_early_global_decl): New.
20916 (dwarf2out_late_global_decl): Rename from dwarf2out_global_decl.
20917 (dwarf2out_type_decl): Set early_dwarf while calling
20918 dwarf2out_decl.
20919 (dwarf2out_decl): Verify that we did not recreate a previously
20920 generated DIE.
20921 Do not return on DECL_EXTERNALs in VAR_DECLs.
20922 Abstract some code to local_function_static.
20923 (lookup_filename): Remove use of file_table_last_lookup.
20924 Gracefully exit on missing file_name.
20925 (dwarf2out_finish): Verify limbo list.
20926 Remove deferred_locations_list use.
20927 Move deferred_asm_name and limbo flushing to...
20928 (dwarf2out_early_finish): ...here. New.
20929 (dwarf2out_c_finalize): Remove set of deferred_location_list,
20930 deferred_asm_name, and file_table_last_lookup.
20931 * cgraph.h (referred_to_p): Add default argument.
20932 * cgraphunit.c (referred_to_p): Add and handle include_self
20933 argument.
20934 (analyze_functions): Add first_time argument.
20935 Call check_global_declaration for all symbols.
20936 Call late_global_decl for nodes for moribund nodes.
20937 (finalize_compilation_unit): Add new argument to
20938 analyze_functions.
20939 Call early_global_decl for functions.
20940 Call early_finish debug hook.
20941 * dbxout.c (dbxout_early_global_decl): New.
20942 (dbxout_late_global_decl): New. Adapted from dbxout_global_decl.
20943 (dbx_debug_hooks): Add new hooks.
20944 (xcoff_debug_hooks): Same.
20945 * debug.c (do_nothing_debug_hooks): Add early_finish field.
20946 Add early and late debug hooks.
20947 Remove global_decl hook.
20948 * debug.h (struct gcc_debug_hooks): Add early_finish,
20949 early_global_decl, and late_global_decl fields.
20950 Remove global_decl field.
20951 Document gcc_debug_hooks.
20952 * gengtype.c (output_typename): Remove.
20953 * godump.c (go_early_global_decl): New.
20954 (go_late_global_decl): New.
20955 (go_global_decl): Remove.
20956 (dump_go_spec_init): Remove global_decl. Add
20957 {early,late}_global_decl.
20958 * langhooks-def.h (LANG_HOOKS_WRITE_GLOBALS): Remove.
20959 (LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS): New.
20960 * langhooks.c (lhd_warn_unused_global_decl): Adjust comment.
20961 (write_global_declarations): Remove.
20962 (global_decl_processing): New.
20963 * langhooks.h (struct lang_hooks_for_decls): Remove
20964 final_write_globals field.
20965 Add post_compilation_parsing_cleanups field.
20966 * passes.c (rest_of_decl_compilation): Call early_global_decl.
20967 * sdbout.c: Add early and late_global_decl hooks. Remove
20968 sdbout_global_decl hook.
20969 Add early_finish field for sdb_debug_hooks.
20970 (sdbout_global_decl): Remove.
20971 (sdbout_early_global_decl): New.
20972 (sdbout_late_global_decl): New.
20973 * timevar.def (TV_PHASE_LATE_PARSING_CLEANUPS): New.
20974 * toplev.c (check_global_declaration): Rename from
20975 check_global_declaration_1.
20976 Adapt to use symtab infrastructure.
20977 (check_global_declarations): Remove.
20978 (emit_debug_global_declarations): Remove.
20979 (compile_file): Remove call to final_write_globals langhook.
20980 Run the actual compilation process.
20981 Perform any post compilation parser cleanups.
20982 Generate late debug info.
20983 * toplev.h (check_global_declaration): New.
20984 (check_global_declaration_1): Remove.
20985 (check_global_declarations): Remove.
20986 (write_global_declarations): Remove.
20987 (emit_debug_global_declarations): Remove.
20988 (global_decl_processing): New.
20989 * tree-core.h (struct tree_block): Add DIE field.
20990 * tree.h (BLOCK_DIE): New.
20991 * vmsdbgout.c (vmsdbgout_global_decl): Remove function and its use
20992 throughout.
20993 (vmsdbgout_early_global_decl): New.
20994 (vmsdbgout_late_global_decl): New.
20995 Add early_finish debug hook field to vmsdbg_debug_hooks.
20996 Remove vmsdbgout_decl to vmsdbgout_function_decl.
20997 Add early and late_global_decl debug hooks.
20998
20999 2015-06-05 Julian Brown <julian@codesourcery.com>
21000 Sandra Loosemore <sandra@codesourcery.com>
21001
21002 * config/print-sysroot-suffix.sh: Handle MULTILIB_REUSE settings.
21003 * config/t-sysroot-suffix (sysroot-suffix.h): Pass MULTILIB_REUSE
21004 to print-sysroot-suffix.sh script.
21005
21006 2015-06-05 Tom de Vries <tom@codesourcery.com>
21007
21008 merge from gomp4 branch:
21009 2015-05-28 Tom de Vries <tom@codesourcery.com>
21010
21011 PR tree-optimization/65443
21012 * tree-parloops.c (replace_imm_uses, replace_uses_in_bb_by)
21013 (replace_uses_in_bbs_by, transform_to_exit_first_loop_alt)
21014 (try_transform_to_exit_first_loop_alt): New function.
21015 (transform_to_exit_first_loop): Use
21016 try_transform_to_exit_first_loop_alt.
21017
21018 2015-06-05 James Greenhalgh <james.greenhalgh@arm.com>
21019
21020 * builtins.c (expand_builtin_atomic_compare_exchange): Call
21021 emit_cmp_and_jump_insns with the mode of target.
21022
21023 2015-06-05 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
21024
21025 * config/i386/sse.md (sse3_mwait): Swap the operand constriants.
21026
21027 2015-06-04 DJ Delorie <dj@redhat.com>
21028
21029 * config/msp430/msp430.md (movsi_s): New. Special case for
21030 storing a 20-bit symbol into a 32-bit register.
21031 * config/msp430/msp430.c (msp430_subreg): Add support for it.
21032 * config/msp430/predicates.md (msp430_symbol_operand): New.
21033
21034 2015-06-04 Sriraman Tallam <tmsriram@google.com>
21035
21036 * c-family/c-common.c (noplt): New attribute.
21037 (handle_noplt_attribute): New handler.
21038 * calls.c (prepare_call_address): Check for noplt
21039 attribute.
21040 * config/i386/i386.c (ix86_expand_call): Check
21041 for noplt attribute.
21042 (ix86_nopic_noplt_attribute_p): New function.
21043 (ix86_output_call_insn): Output indirect call for non-pic
21044 no plt calls.
21045 * doc/extend.texi (noplt): Document new attribute.
21046 * doc/invoke.texi: Document new attribute.
21047
21048 2015-06-04 Andrew MacLeod <amacleod@redhat.com>
21049
21050 * coretypes.h: Include machmode.h, signop.h, wide-int.h, double-int.h,
21051 real.h, and fixed-value.h when included in host source files.
21052 * double-int.h: Remove redundant #includes listed above.
21053 * fixed-value.h: Likewise.
21054 * real.h: Likewise.
21055 * wide-int.h: Likewise.
21056 * inchash.h: Likewise.
21057 * rtl.h: Add some include files When included from a generator file.
21058 * target.h: Remove wide-int.h and insn-modes.h from the include list.
21059 * internal-fn.h: Don't include coretypes.h.
21060 * alias.c: Adjust includes for restructured coretypes.h.
21061 * asan.c: Likewise.
21062 * attribs.c: Likewise.
21063 * auto-inc-dec.c: Likewise.
21064 * auto-profile.c: Likewise.
21065 * bb-reorder.c: Likewise.
21066 * bt-load.c: Likewise.
21067 * builtins.c: Likewise.
21068 * caller-save.c: Likewise.
21069 * calls.c: Likewise.
21070 * ccmp.c: Likewise.
21071 * cfg.c: Likewise.
21072 * cfganal.c: Likewise.
21073 * cfgbuild.c: Likewise.
21074 * cfgcleanup.c: Likewise.
21075 * cfgexpand.c: Likewise.
21076 * cfghooks.c: Likewise.
21077 * cfgloop.c: Likewise.
21078 * cfgloop.h: Likewise.
21079 * cfgloopanal.c: Likewise.
21080 * cfgloopmanip.c: Likewise.
21081 * cfgrtl.c: Likewise.
21082 * cgraph.c: Likewise.
21083 * cgraphbuild.c: Likewise.
21084 * cgraphclones.c: Likewise.
21085 * cgraphunit.c: Likewise.
21086 * cilk-common.c: Likewise.
21087 * combine-stack-adj.c: Likewise.
21088 * combine.c: Likewise.
21089 * compare-elim.c: Likewise.
21090 * convert.c: Likewise.
21091 * coverage.c: Likewise.
21092 * cppbuiltin.c: Likewise.
21093 * cprop.c: Likewise.
21094 * cse.c: Likewise.
21095 * cselib.c: Likewise.
21096 * data-streamer-in.c: Likewise.
21097 * data-streamer-out.c: Likewise.
21098 * data-streamer.c: Likewise.
21099 * dbxout.c: Likewise.
21100 * dce.c: Likewise.
21101 * ddg.c: Likewise.
21102 * debug.c: Likewise.
21103 * df-core.c: Likewise.
21104 * df-problems.c: Likewise.
21105 * df-scan.c: Likewise.
21106 * df.h: Likewise.
21107 * dfp.c: Likewise.
21108 * dojump.c: Likewise.
21109 * dominance.c: Likewise.
21110 * domwalk.c: Likewise.
21111 * double-int.c: Likewise.
21112 * dse.c: Likewise.
21113 * dumpfile.c: Likewise.
21114 * dwarf2asm.c: Likewise.
21115 * dwarf2cfi.c: Likewise.
21116 * dwarf2out.c: Likewise.
21117 * dwarf2out.h: Likewise.
21118 * emit-rtl.c: Likewise.
21119 * et-forest.c: Likewise.
21120 * except.c: Likewise.
21121 * explow.c: Likewise.
21122 * expmed.c: Likewise.
21123 * expr.c: Likewise.
21124 * final.c: Likewise.
21125 * fixed-value.c: Likewise.
21126 * fold-const.c: Likewise.
21127 * function.c: Likewise.
21128 * fwprop.c: Likewise.
21129 * gcc-plugin.h: Likewise.
21130 * gcse.c: Likewise.
21131 * generic-match-head.c: Likewise.
21132 * ggc-page.c: Likewise.
21133 * gimple-builder.c: Likewise.
21134 * gimple-expr.c: Likewise.
21135 * gimple-fold.c: Likewise.
21136 * gimple-iterator.c: Likewise.
21137 * gimple-low.c: Likewise.
21138 * gimple-match-head.c: Likewise.
21139 * gimple-pretty-print.c: Likewise.
21140 * gimple-ssa-isolate-paths.c: Likewise.
21141 * gimple-ssa-strength-reduction.c: Likewise.
21142 * gimple-streamer-in.c: Likewise.
21143 * gimple-streamer-out.c: Likewise.
21144 * gimple-streamer.h: Likewise.
21145 * gimple-walk.c: Likewise.
21146 * gimple.c: Likewise.
21147 * gimplify-me.c: Likewise.
21148 * gimplify.c: Likewise.
21149 * godump.c: Likewise.
21150 * graph.c: Likewise.
21151 * graphite-blocking.c: Likewise.
21152 * graphite-dependences.c: Likewise.
21153 * graphite-interchange.c: Likewise.
21154 * graphite-isl-ast-to-gimple.c: Likewise.
21155 * graphite-optimize-isl.c: Likewise.
21156 * graphite-poly.c: Likewise.
21157 * graphite-scop-detection.c: Likewise.
21158 * graphite-sese-to-poly.c: Likewise.
21159 * graphite.c: Likewise.
21160 * haifa-sched.c: Likewise.
21161 * hooks.h: Likewise.
21162 * hw-doloop.c: Likewise.
21163 * ifcvt.c: Likewise.
21164 * incpath.c: Likewise.
21165 * init-regs.c: Likewise.
21166 * internal-fn.c: Likewise.
21167 * ipa-chkp.c: Likewise.
21168 * ipa-comdats.c: Likewise.
21169 * ipa-cp.c: Likewise.
21170 * ipa-devirt.c: Likewise.
21171 * ipa-icf-gimple.c: Likewise.
21172 * ipa-icf.c: Likewise.
21173 * ipa-inline-analysis.c: Likewise.
21174 * ipa-inline-transform.c: Likewise.
21175 * ipa-inline.c: Likewise.
21176 * ipa-polymorphic-call.c: Likewise.
21177 * ipa-profile.c: Likewise.
21178 * ipa-prop.c: Likewise.
21179 * ipa-pure-const.c: Likewise.
21180 * ipa-ref.c: Likewise.
21181 * ipa-reference.c: Likewise.
21182 * ipa-split.c: Likewise.
21183 * ipa-utils.c: Likewise.
21184 * ipa-visibility.c: Likewise.
21185 * ipa.c: Likewise.
21186 * ira-build.c: Likewise.
21187 * ira-color.c: Likewise.
21188 * ira-conflicts.c: Likewise.
21189 * ira-costs.c: Likewise.
21190 * ira-emit.c: Likewise.
21191 * ira-lives.c: Likewise.
21192 * ira.c: Likewise.
21193 * jump.c: Likewise.
21194 * langhooks.c: Likewise.
21195 * lcm.c: Likewise.
21196 * loop-doloop.c: Likewise.
21197 * loop-init.c: Likewise.
21198 * loop-invariant.c: Likewise.
21199 * loop-iv.c: Likewise.
21200 * loop-unroll.c: Likewise.
21201 * lower-subreg.c: Likewise.
21202 * lra-assigns.c: Likewise.
21203 * lra-coalesce.c: Likewise.
21204 * lra-constraints.c: Likewise.
21205 * lra-eliminations.c: Likewise.
21206 * lra-lives.c: Likewise.
21207 * lra-remat.c: Likewise.
21208 * lra-spills.c: Likewise.
21209 * lra.c: Likewise.
21210 * lto-cgraph.c: Likewise.
21211 * lto-compress.c: Likewise.
21212 * lto-opts.c: Likewise.
21213 * lto-section-in.c: Likewise.
21214 * lto-section-out.c: Likewise.
21215 * lto-streamer-in.c: Likewise.
21216 * lto-streamer-out.c: Likewise.
21217 * lto-streamer.c: Likewise.
21218 * mcf.c: Likewise.
21219 * mode-switching.c: Likewise.
21220 * modulo-sched.c: Likewise.
21221 * omega.c: Likewise.
21222 * omp-low.c: Likewise.
21223 * optabs.c: Likewise.
21224 * opts-global.c: Likewise.
21225 * passes.c: Likewise.
21226 * plugin.c: Likewise.
21227 * postreload-gcse.c: Likewise.
21228 * postreload.c: Likewise.
21229 * predict.c: Likewise.
21230 * print-rtl.c: Likewise.
21231 * print-tree.c: Likewise.
21232 * profile.c: Likewise.
21233 * real.c: Likewise.
21234 * realmpfr.c: Likewise.
21235 * realmpfr.h: Likewise.
21236 * recog.c: Likewise.
21237 * ree.c: Likewise.
21238 * reg-stack.c: Likewise.
21239 * regcprop.c: Likewise.
21240 * reginfo.c: Likewise.
21241 * regrename.c: Likewise.
21242 * regs.h: Likewise.
21243 * regstat.c: Likewise.
21244 * reload.c: Likewise.
21245 * reload1.c: Likewise.
21246 * reorg.c: Likewise.
21247 * resource.c: Likewise.
21248 * rtl-chkp.c: Likewise.
21249 * rtlanal.c: Likewise.
21250 * rtlhooks.c: Likewise.
21251 * sanopt.c: Likewise.
21252 * sched-deps.c: Likewise.
21253 * sched-ebb.c: Likewise.
21254 * sched-rgn.c: Likewise.
21255 * sched-vis.c: Likewise.
21256 * sdbout.c: Likewise.
21257 * sel-sched-dump.c: Likewise.
21258 * sel-sched-ir.c: Likewise.
21259 * sel-sched.c: Likewise.
21260 * sese.c: Likewise.
21261 * shrink-wrap.c: Likewise.
21262 * shrink-wrap.h: Likewise.
21263 * simplify-rtx.c: Likewise.
21264 * stack-ptr-mod.c: Likewise.
21265 * statistics.c: Likewise.
21266 * stmt.c: Likewise.
21267 * stor-layout.c: Likewise.
21268 * store-motion.c: Likewise.
21269 * stringpool.c: Likewise.
21270 * symtab.c: Likewise.
21271 * target-globals.c: Likewise.
21272 * targhooks.c: Likewise.
21273 * toplev.c: Likewise.
21274 * tracer.c: Likewise.
21275 * trans-mem.c: Likewise.
21276 * tree-affine.c: Likewise.
21277 * tree-affine.h: Likewise.
21278 * tree-browser.c: Likewise.
21279 * tree-call-cdce.c: Likewise.
21280 * tree-cfg.c: Likewise.
21281 * tree-cfgcleanup.c: Likewise.
21282 * tree-chkp-opt.c: Likewise.
21283 * tree-chkp.c: Likewise.
21284 * tree-chrec.c: Likewise.
21285 * tree-complex.c: Likewise.
21286 * tree-data-ref.c: Likewise.
21287 * tree-dfa.c: Likewise.
21288 * tree-diagnostic.c: Likewise.
21289 * tree-dump.c: Likewise.
21290 * tree-eh.c: Likewise.
21291 * tree-emutls.c: Likewise.
21292 * tree-if-conv.c: Likewise.
21293 * tree-inline.c: Likewise.
21294 * tree-into-ssa.c: Likewise.
21295 * tree-iterator.c: Likewise.
21296 * tree-loop-distribution.c: Likewise.
21297 * tree-nested.c: Likewise.
21298 * tree-nrv.c: Likewise.
21299 * tree-object-size.c: Likewise.
21300 * tree-outof-ssa.c: Likewise.
21301 * tree-parloops.c: Likewise.
21302 * tree-phinodes.c: Likewise.
21303 * tree-predcom.c: Likewise.
21304 * tree-pretty-print.c: Likewise.
21305 * tree-pretty-print.h: Likewise.
21306 * tree-profile.c: Likewise.
21307 * tree-scalar-evolution.c: Likewise.
21308 * tree-sra.c: Likewise.
21309 * tree-ssa-address.c: Likewise.
21310 * tree-ssa-alias.c: Likewise.
21311 * tree-ssa-ccp.c: Likewise.
21312 * tree-ssa-coalesce.c: Likewise.
21313 * tree-ssa-copy.c: Likewise.
21314 * tree-ssa-copyrename.c: Likewise.
21315 * tree-ssa-dce.c: Likewise.
21316 * tree-ssa-dom.c: Likewise.
21317 * tree-ssa-dse.c: Likewise.
21318 * tree-ssa-forwprop.c: Likewise.
21319 * tree-ssa-ifcombine.c: Likewise.
21320 * tree-ssa-live.c: Likewise.
21321 * tree-ssa-loop-ch.c: Likewise.
21322 * tree-ssa-loop-im.c: Likewise.
21323 * tree-ssa-loop-ivcanon.c: Likewise.
21324 * tree-ssa-loop-ivopts.c: Likewise.
21325 * tree-ssa-loop-manip.c: Likewise.
21326 * tree-ssa-loop-niter.c: Likewise.
21327 * tree-ssa-loop-prefetch.c: Likewise.
21328 * tree-ssa-loop-unswitch.c: Likewise.
21329 * tree-ssa-loop.c: Likewise.
21330 * tree-ssa-loop.h: Likewise.
21331 * tree-ssa-math-opts.c: Likewise.
21332 * tree-ssa-operands.c: Likewise.
21333 * tree-ssa-phiopt.c: Likewise.
21334 * tree-ssa-phiprop.c: Likewise.
21335 * tree-ssa-pre.c: Likewise.
21336 * tree-ssa-propagate.c: Likewise.
21337 * tree-ssa-reassoc.c: Likewise.
21338 * tree-ssa-sccvn.c: Likewise.
21339 * tree-ssa-scopedtables.c: Likewise.
21340 * tree-ssa-sink.c: Likewise.
21341 * tree-ssa-strlen.c: Likewise.
21342 * tree-ssa-structalias.c: Likewise.
21343 * tree-ssa-tail-merge.c: Likewise.
21344 * tree-ssa-ter.c: Likewise.
21345 * tree-ssa-threadedge.c: Likewise.
21346 * tree-ssa-threadupdate.c: Likewise.
21347 * tree-ssa-uncprop.c: Likewise.
21348 * tree-ssa-uninit.c: Likewise.
21349 * tree-ssa.c: Likewise.
21350 * tree-ssanames.c: Likewise.
21351 * tree-stdarg.c: Likewise.
21352 * tree-streamer-in.c: Likewise.
21353 * tree-streamer-out.c: Likewise.
21354 * tree-streamer.c: Likewise.
21355 * tree-switch-conversion.c: Likewise.
21356 * tree-tailcall.c: Likewise.
21357 * tree-vect-data-refs.c: Likewise.
21358 * tree-vect-generic.c: Likewise.
21359 * tree-vect-loop-manip.c: Likewise.
21360 * tree-vect-loop.c: Likewise.
21361 * tree-vect-patterns.c: Likewise.
21362 * tree-vect-slp.c: Likewise.
21363 * tree-vect-stmts.c: Likewise.
21364 * tree-vectorizer.c: Likewise.
21365 * tree-vrp.c: Likewise.
21366 * tree.c: Likewise.
21367 * tsan.c: Likewise.
21368 * ubsan.c: Likewise.
21369 * valtrack.c: Likewise.
21370 * value-prof.c: Likewise.
21371 * var-tracking.c: Likewise.
21372 * varasm.c: Likewise.
21373 * varpool.c: Likewise.
21374 * vmsdbgout.c: Likewise.
21375 * vtable-verify.c: Likewise.
21376 * web.c: Likewise.
21377 * wide-int-print.cc: Likewise.
21378 * wide-int-print.h: Likewise.
21379 * wide-int.cc: Likewise.
21380 * xcoffout.c: Likewise.
21381 * config/aarch64/aarch64-builtins.c: Likewise.
21382 * config/aarch64/aarch64.c: Likewise.
21383 * config/aarch64/cortex-a57-fma-steering.c: Likewise.
21384 * config/alpha/alpha.c: Likewise.
21385 * config/arc/arc.c: Likewise.
21386 * config/arm/aarch-common.c: Likewise.
21387 * config/arm/arm-builtins.c: Likewise.
21388 * config/arm/arm-c.c: Likewise.
21389 * config/arm/arm.c: Likewise.
21390 * config/avr/avr-c.c: Likewise.
21391 * config/avr/avr-log.c: Likewise.
21392 * config/avr/avr.c: Likewise.
21393 * config/bfin/bfin.c: Likewise.
21394 * config/c6x/c6x.c: Likewise.
21395 * config/cr16/cr16.c: Likewise.
21396 * config/cris/cris.c: Likewise.
21397 * config/darwin-c.c: Likewise.
21398 * config/darwin.c: Likewise.
21399 * config/default-c.c: Likewise.
21400 * config/epiphany/epiphany.c: Likewise.
21401 * config/epiphany/mode-switch-use.c: Likewise.
21402 * config/epiphany/resolve-sw-modes.c: Likewise.
21403 * config/fr30/fr30.c: Likewise.
21404 * config/frv/frv.c: Likewise.
21405 * config/ft32/ft32.c: Likewise.
21406 * config/glibc-c.c: Likewise.
21407 * config/h8300/h8300.c: Likewise.
21408 * config/i386/i386-c.c: Likewise.
21409 * config/i386/i386.c: Likewise.
21410 * config/i386/msformat-c.c: Likewise.
21411 * config/i386/winnt-cxx.c: Likewise.
21412 * config/i386/winnt-stubs.c: Likewise.
21413 * config/i386/winnt.c: Likewise.
21414 * config/ia64/ia64-c.c: Likewise.
21415 * config/ia64/ia64.c: Likewise.
21416 * config/iq2000/iq2000.c: Likewise.
21417 * config/lm32/lm32.c: Likewise.
21418 * config/m32c/m32c-pragma.c: Likewise.
21419 * config/m32c/m32c.c: Likewise.
21420 * config/m32r/m32r.c: Likewise.
21421 * config/m68k/m68k.c: Likewise.
21422 * config/mcore/mcore.c: Likewise.
21423 * config/mep/mep-pragma.c: Likewise.
21424 * config/mep/mep.c: Likewise.
21425 * config/microblaze/microblaze-c.c: Likewise.
21426 * config/microblaze/microblaze.c: Likewise.
21427 * config/mips/mips.c: Likewise.
21428 * config/mmix/mmix.c: Likewise.
21429 * config/mn10300/mn10300.c: Likewise.
21430 * config/moxie/moxie.c: Likewise.
21431 * config/msp430/msp430-c.c: Likewise.
21432 * config/msp430/msp430.c: Likewise.
21433 * config/nds32/nds32-cost.c: Likewise.
21434 * config/nds32/nds32-fp-as-gp.c: Likewise.
21435 * config/nds32/nds32-intrinsic.c: Likewise.
21436 * config/nds32/nds32-isr.c: Likewise.
21437 * config/nds32/nds32-md-auxiliary.c: Likewise.
21438 * config/nds32/nds32-memory-manipulation.c: Likewise.
21439 * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
21440 * config/nds32/nds32-predicates.c: Likewise.
21441 * config/nds32/nds32.c: Likewise.
21442 * config/nios2/nios2.c: Likewise.
21443 * config/nvptx/nvptx.c: Likewise.
21444 * config/pa/pa.c: Likewise.
21445 * config/pdp11/pdp11.c: Likewise.
21446 * config/rl78/rl78-c.c: Likewise.
21447 * config/rl78/rl78.c: Likewise.
21448 * config/rs6000/rs6000-c.c: Likewise.
21449 * config/rs6000/rs6000.c: Likewise.
21450 * config/rx/rx.c: Likewise.
21451 * config/s390/s390-c.c: Likewise.
21452 * config/s390/s390.c: Likewise.
21453 * config/sh/sh-c.c: Likewise.
21454 * config/sh/sh-mem.cc: Likewise.
21455 * config/sh/sh.c: Likewise.
21456 * config/sh/sh_optimize_sett_clrt.cc: Likewise.
21457 * config/sh/sh_treg_combine.cc: Likewise.
21458 * config/sol2-c.c: Likewise.
21459 * config/sol2-cxx.c: Likewise.
21460 * config/sol2-stubs.c: Likewise.
21461 * config/sol2.c: Likewise.
21462 * config/sparc/sparc-c.c: Likewise.
21463 * config/sparc/sparc.c: Likewise.
21464 * config/spu/spu-c.c: Likewise.
21465 * config/spu/spu.c: Likewise.
21466 * config/stormy16/stormy16.c: Likewise.
21467 * config/tilegx/mul-tables.c: Likewise.
21468 * config/tilegx/tilegx-c.c: Likewise.
21469 * config/tilegx/tilegx.c: Likewise.
21470 * config/tilepro/mul-tables.c: Likewise.
21471 * config/tilepro/tilepro-c.c: Likewise.
21472 * config/tilepro/tilepro.c: Likewise.
21473 * config/v850/v850-c.c: Likewise.
21474 * config/v850/v850.c: Likewise.
21475 * config/vax/vax.c: Likewise.
21476 * config/visium/visium.c: Likewise.
21477 * config/vms/vms-c.c: Likewise.
21478 * config/vms/vms.c: Likewise.
21479 * config/vxworks.c: Likewise.
21480 * config/winnt-c.c: Likewise.
21481 * config/xtensa/xtensa.c: Likewise.
21482 * common/config/bfin/bfin-common.c: Likewise.
21483
21484 2015-06-04 Jan Hubicka <hubicka@ucw.cz>
21485
21486 * tree.h (tree_code_for_canonical_type_merging): New function.
21487 * tree.c (gimple_canonical_types_compatible_p): Use
21488 tree_code_for_canonical_type_merging..
21489
21490 2015-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21491
21492 PR c++/66192
21493 PR target/66200
21494 * doc/tm.texi: Regenerate.
21495 * doc/tm.texi.in (TARGET_RELAXED_ORDERING): Delete.
21496 * target.def (TARGET_RELAXED_ORDERING): Likewise.
21497 * config/alpha/alpha.c (TARGET_RELAXED_ORDERING): Likewise.
21498 * config/ia64/ia64.c (TARGET_RELAXED_ORDERING): Likewise.
21499 * config/rs6000/rs6000.c (TARGET_RELAXED_ORDERING): Likewise.
21500 * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Likewise.
21501 * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
21502 * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Likewise.
21503 * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Likewise.
21504
21505 2015-06-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21506
21507 * config/aarch64/aarch64.c (aarch64_override_options): Unconditionally
21508 register fma steering pass.
21509 * config/aarch64/cortex-a57-fma-steering.c (gate): Add gating on
21510 AARCH64_TUNE_FMA_STEERING.
21511
21512 2015-06-03 Jan Hubicka <hubicka@ucw.cz>
21513
21514 * tree.c (verify_type_variant): Verify that type and variant is
21515 compatible.
21516 (gimple_canonical_types_compatible_p): Look for main variants.
21517
21518 2015-06-03 Michael Meissner <meissner@linux.vnet.ibm.com>
21519
21520 * config.gcc (powerpc*-*-*): Add support for a new configure
21521 option --with-advance-toolchain=<xxx> which overrides using the
21522 default header files, libraries and dynamic linker.
21523
21524 * config/rs6000/linux64.h (SUBSUBTARGET_EXTRA_SPECS): Add new
21525 specs to support the configure --with-advance-toolchain=<xxx>
21526 option.
21527 (INCLUDE_EXTRA_SPEC): Likewise.
21528 (LINK_OS_EXTRA_SPEC32): Likewise.
21529 (LINK_OK_EXTRA_SPEC64): Likewise.
21530 (LINK_OS_NEW_DTAGS_SPEC): Likewise.
21531 (DYNAMIC_LINKER_PREFIX): Likewise.
21532 (CPP_OS_DEFAULT_SPEC): Use the new specs for providing advance
21533 toolchain support.
21534 (GLIBC_DYNAMIC_LINKER32): Likewise.
21535 (GLIBC_DYNAMIC_LINKER64): Likewise.
21536 (LINK_OS_LINUX_SPEC32): Likewise.
21537 (LINK_OS_LINUX_SPEC64): Likewise.
21538
21539 * doc/install.texi (--enable-advance-toolchain=<xx>): Document new
21540 configuration option.
21541
21542 2015-06-03 Uros Bizjak <ubizjak@gmail.com>
21543
21544 PR target/66275
21545 * config/i386/i386.c (ix86_function_arg_regno): Use ix86_cfun_abi
21546 to determine current function ABI.
21547 (ix86_function_value_regno_p): Ditto.
21548
21549 2015-06-03 Martin Liska <mliska@suse.cz>
21550
21551 * alloc-pool.h (struct pool_usage): Correct GNU coding style.
21552 * bitmap.h (struct bitmap_usage): Likewise.
21553 * ggc-common.c (struct ggc_usage): Likewise.
21554 * mem-stats.h (struct mem_location): Likewise.
21555 (struct mem_usage): Likewise.
21556 * vec.c (struct vec_usage): Likewise.
21557
21558 2015-06-03 Benigno B. Junior <bbj@gentoo.org>
21559
21560 * config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Turn -symbolic into
21561 -Bsymbolic.
21562
21563 2015-06-02 Andres Tiraboschi <andres.tiraboschi@tallertechnologies.com>
21564
21565 * doc/plugins.texi (enum plugin_event): New event.
21566 * plugin.c (register_callback): Handle PLUGIN_START_PARSE_FUNCTION
21567 and PLUGIN_FINISH_FUNCTION.
21568 * plugin.def (PLUGIN_START_PARSE_FUNCTION): Add plugin event
21569 (PLUGIN_FINISH_PARSE_FUNCTION): Likewise.
21570
21571 2015-06-03 Richard Biener <rguenther@suse.de>
21572
21573 * tree-vect-data-refs.c (vect_analyze_group_access): Properly
21574 compute GROUP_GAP for the first element.
21575 * tree-vect-slp.c (vect_build_slp_tree_1): Remove restriction
21576 on in-group gaps.
21577
21578 2015-06-03 Nick Clifton <nickc@redhat.com>
21579
21580 * config/rl78/rl78-real.md: Add peepholes to avoid a register
21581 copy when calling a function.
21582 * config/rl78/rl78.c (need_to_save): Do not push the frame
21583 pointer in an interrupt handler prologue if it is never used.
21584
21585 2015-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21586
21587 * ifcvt (end_ifcvt_sequence): Fix typo in comment above.
21588
21589 2015-06-03 Ilya Enkovich <ilya.enkovich@intel.com>
21590
21591 * ipa-chkp.c (chkp_maybe_create_clone): Create alias
21592 reference when cloning alias node.
21593
21594 2015-06-03 Martin Liska <mliska@suse.cz>
21595
21596 * alloc-pool.h (struct pool_usage): Correct space padding.
21597 * ggc-page.c (ggc_print_statistics): Align columns in a report.
21598 * mem-stats.h (struct mem_usage): Add argument to print_dash_line.
21599 * tree.c (dump_tree_statistics): Align columns in a report.
21600
21601 2015-06-03 Martin Liska <mliska@suse.cz>
21602
21603 * alloc-pool.c (allocate_pool_descriptor): Remove.
21604 (struct pool_output_info): Likewise.
21605 (print_alloc_pool_statistics): Likewise.
21606 (dump_alloc_pool_statistics): Likewise.
21607 * alloc-pool.h (struct pool_usage): New struct.
21608 (pool_allocator::initialize): Change usage of memory statistics
21609 to a new interface.
21610 (pool_allocator::release): Likewise.
21611 (pool_allocator::allocate): Likewise.
21612 (pool_allocator::remove): Likewise.
21613 * mem-stats-traits.h (enum mem_alloc_origin): Add new enum value
21614 for a pool allocator.
21615 * mem-stats.h (struct mem_location): Add new ctor.
21616 (struct mem_usage): Add counter for number of
21617 instances.
21618 (mem_alloc_description::register_descriptor): New overload of
21619 * mem-stats.h (mem_location::to_string): New function.
21620 * bitmap.h (struct bitmap_usage): Use this new function.
21621 * ggc-common.c (struct ggc_usage): Likewise.
21622 the function.
21623
21624 2015-06-03 Richard Sandiford <richard.sandiford@arm.com>
21625
21626 * defaults.h (SWITCHABLE_TARGET, TARGET_SUPPORTS_WIDE_INT): Move out
21627 of GCC_INSN_FLAGS_H block.
21628
21629 2015-06-03 Andrew Bennett <andrew.bennett@imgtec.com>
21630
21631 * explow.c (plus_constant): Update check after force_const_mem call
21632 to see if the value returned is not a NULL_RTX.
21633
21634 2015-06-03 Ilya Enkovich <ilya.enkovich@intel.com>
21635
21636 * ipa.c (symbol_table::remove_unreachable_nodes): Don't
21637 remove instumentation thunks calling reachable functions.
21638 * lto-cgraph.c (output_refs): Always output IPA_REF_CHKP.
21639 * lto/lto-partition.c (privatize_symbol_name_1): New.
21640 (privatize_symbol_name): Privatize both decl and orig_decl
21641 names for instrumented functions.
21642 * cgraph.c (cgraph_node::verify_node): Add transparent
21643 alias chain check for instrumented node.
21644
21645 2015-06-03 Marek Polacek <polacek@redhat.com>
21646
21647 PR c/64223
21648 PR c/29358
21649 * tree.c (attribute_value_equal): Handle attribute format.
21650 (cmp_attrib_identifiers): Factor out of lookup_ident_attribute.
21651
21652 2015-06-03 Richard Biener <rguenther@suse.de>
21653
21654 PR tree-optimization/63916
21655 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
21656 Forward-propagate non-invariant addresses by splicing their
21657 reference ops if the result isn't going to be used by PRE.
21658 (vn_reference_lookup_3): Remove pointless assert.
21659
21660 2015-06-03 Richard Biener <rguenther@suse.de>
21661
21662 PR tree-optimization/66375
21663 * tree-scalar-evolution.c (follow_ssa_edge_binary): First
21664 add to the evolution before following SSA edges.
21665
21666 2015-06-03 Bin Cheng <bin.cheng@arm.com>
21667
21668 * tree-ssa-loop-ivopts.c (dump_iv): New parameter.
21669 (dump_use, dump_cand, find_induction_variables): Pass new argument
21670 to dump_iv.
21671 (record_use): Preserve the ssa name information in IV.
21672
21673 2015-06-03 Richard Sandiford <richard.sandiford@arm.com>
21674
21675 * genpreds.c (mark_mode_tests): Mark all MATCH_CODEs as
21676 NO_MODE_TEST.
21677 (add_mode_tests): Don't add mode tests if the predicate only
21678 accepts scalar constant integers. Otherwise, allow the mode
21679 of "op" to be VOIDmode if the predicate does accept such integers.
21680
21681 2015-06-02 Jim Wilson <jim.wilson@linaro.org>
21682
21683 PR target/66258
21684 * config/aarch64/aarch64.c (aarch64_function_value_regno_p): Change
21685 !TARGET_GENERAL_REGS_ONLY to TARGET_FLOAT.
21686 (aarch64_secondary_reload): Likewise
21687 (aarch64_expand_builtin_va_start): Change TARGET_GENERAL_REGS_ONLY
21688 to !TARGET_FLOAT.
21689 (aarch64_gimplify_va_arg_expr, aarch64_setup_incoming_varargs):
21690 Likewise.
21691
21692 2015-06-03 Kugan Vivekanandarajah <kuganv@linaro.org>
21693 Zhenqiang Chen <zhenqiang.chen@linaro.org>
21694
21695 PR target/65768
21696 * cprop.c (try_replace_reg): Check cost of constants before propagating.
21697
21698 2015-06-02 Michael Meissner <meissner@linux.vnet.ibm.com>
21699
21700 * config/rs6000/rs6000-modes.def (IFmode): Define IFmode to
21701 provide access to the IBM extended double floating point mode if
21702 long double is IEEE 128-bit floating point.
21703 (KFmode): Define KFmode to provide access to IEEE 128-bit floating
21704 point if long double is the IBM extended double type.
21705
21706 * config/rs6000/rs6000.opt (-mfloat128-none): New switches to
21707 enable adding IEEE 128-bit floating point support.
21708 (-mfloat128-software): Likewise.
21709 (-mfloat128-sw): Likewise.
21710
21711 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Do not allow
21712 128-bit floating point types to occupy any register if
21713 -mlong-double-64. Do not allow use of IFmode/KFmode unless
21714 -mfloat128-software is enabled.
21715 (rs6000_debug_reg_global): Add IEEE 128-bit floating point debug
21716 support.
21717 (rs6000_option_override_internal): Add -mfloat128-* support.
21718 (rs6000_init_builtins): Setup __ibm128 and __float128 type modes.
21719
21720 * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add ibm128
21721 and float128 type nodes.
21722 (ieee128_float_type_node): Likewise.
21723 (ibm128_float_type_node): Likewise.
21724
21725 2015-06-02 Szabolcs Nagy <szabolcs.nagy@arm.com>
21726
21727 PR target/66136
21728 * config/aarch64/geniterators.sh: Rewrite in awk.
21729
21730 2015-06-02 Martin Liska <mliska@suse.cz>
21731
21732 * alloc-pool.h (pool_allocator::pool_allocator): Set implicit
21733 values to avoid -Wmaybe-uninitialized errors.
21734
21735 2015-06-02 Richard Biener <rguenther@suse.de>
21736
21737 PR debug/65549
21738 * dwarf2out.c (lookup_context_die): New function.
21739 (resolve_addr): Avoid forcing a full DIE for the
21740 target of a DW_TAG_GNU_call_site during late compilation.
21741 Instead create a stub DIE without a type if we have a
21742 context DIE present.
21743
21744 2015-06-02 Uros Bizjak <ubizjak@gmail.com>
21745
21746 * df-scan.c (df_scan_start_dump): Add space between regno and regname.
21747
21748 2015-06-02 Bin Cheng <bin.cheng@arm.com>
21749
21750 PR tree-optimization/48052
21751 * cfgloop.h (struct control_iv): New.
21752 (struct loop): New field control_ivs.
21753 * tree-ssa-loop-niter.c : Include "stor-layout.h".
21754 (number_of_iterations_lt): Set no_overflow information.
21755 (number_of_iterations_exit): Init control iv in niter struct.
21756 (record_control_iv): New.
21757 (estimate_numbers_of_iterations_loop): Call record_control_iv.
21758 (loop_exits_before_overflow): New. Interface factored out of
21759 scev_probably_wraps_p.
21760 (scev_probably_wraps_p): Factor loop niter related code into
21761 loop_exits_before_overflow.
21762 (free_numbers_of_iterations_estimates_loop): Free control ivs.
21763 * tree-ssa-loop-niter.h (free_loop_control_ivs): New.
21764
21765 2015-06-02 Eric Botcazou <ebotcazou@adacore.com>
21766
21767 * gimplify.c (gimplify_modify_expr): Do not create a DECL_DEBUG_EXPR if
21768 the target doesn't belong to the current function.
21769
21770 2015-06-02 Marek Polacek <polacek@redhat.com>
21771
21772 PR middle-end/66345
21773 * gimple-fold.c (gimple_fold_builtin_snprintf): Return false if
21774 get_maxval_strlen does not produce an INTEGER_CST.
21775
21776 2015-06-02 Richard Sandiford <richard.sandiford@arm.com>
21777
21778 * config/arc/constraints.md: Use lower-case names in match_code.
21779 * config/mmix/constraints.md: Likewise.
21780
21781 2015-06-02 Richard Biener <rguenther@suse.de>
21782
21783 PR tree-optimization/65961
21784 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove bogus
21785 check and clarify dump message.
21786 (vect_build_slp_tree): If all children are built up from scalars
21787 build up the parent from scalars instead.
21788 * tree-vect-stmts.c (vect_is_simple_use): Cleanup.
21789
21790 2015-06-02 Jan Kratochvil <jan.kratochvil@redhat.com>
21791
21792 PR other/65366
21793 * gdbhooks.py: Use int(...) instead of long(...). Use print(...)
21794 instead of print ... .
21795
21796 2015-06-02 Alan Modra <amodra@gmail.com>
21797
21798 * config/rs6000/vsx.md (vsx_extract_v4sf): Revert accidental
21799 2014-08-11 change.
21800
21801 2015-06-02 Bin Cheng <bin.cheng@arm.com>
21802
21803 PR tree-optimization/52563
21804 PR tree-optimization/62173
21805 * tree-ssa-loop-ivopts.c (struct iv): New field. Reorder fields.
21806 (alloc_iv, set_iv): New parameter.
21807 (determine_biv_step): Delete.
21808 (find_bivs): Inline original determine_biv_step. Pass new
21809 argument to set_iv.
21810 (idx_find_step): Use no_overflow information for conversion.
21811 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Let
21812 resolve_mixers handle folded_casts.
21813 (instantiate_scev_name): Change bool parameter to bool pointer.
21814 (instantiate_scev_poly, instantiate_scev_binary): Ditto.
21815 (instantiate_array_ref, instantiate_scev_not): Ditto.
21816 (instantiate_scev_3, instantiate_scev_2): Ditto.
21817 (instantiate_scev_1, instantiate_scev_r): Ditto.
21818 (instantiate_scev_convert, ): Change parameter. Pass argument
21819 to chrec_convert_aggressive.
21820 (instantiate_scev): Change argument.
21821 (resolve_mixers): New parameter and set it.
21822 (scev_const_prop): New argument.
21823 * tree-scalar-evolution.h (resolve_mixers): New parameter.
21824 * tree-chrec.c (convert_affine_scev): Call chrec_convert instead
21825 of chrec_conert_1.
21826 (chrec_convert): New parameter. Move definition below.
21827 (chrec_convert_aggressive): New parameter and set it. Call
21828 convert_affine_scev.
21829 * tree-chrec.h (chrec_convert): New parameter.
21830 (chrec_convert_aggressive): Ditto.
21831
21832 2015-06-01 Eric Botcazou <ebotcazou@adacore.com>
21833
21834 * gimplify.c (gimplify_modify_expr_rhs): Use simple test on the size.
21835 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Do not remove
21836 the LHS of a no-return call if its type has variable size.
21837 * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
21838 * tree-cfg.c (verify_gimple_call): Accept these no-return calls.
21839
21840 2015-06-01 Andreas Tobler <andreast@gcc.gnu.org>
21841
21842 * read-rtl.c: Adapt to use HAVE_DECL_ATOLL instead of HAVE_ATOLL.
21843 * config.in: Regenerate.
21844
21845 2015-06-01 Yuri Rumyantsev <ysrumyan@gmail.com>
21846
21847 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
21848 consecutive accesses within outer-loop with force_vectorize
21849 for references with zero step in inner-loop.
21850
21851 2015-06-01 Vidya Praveen <vidyapraveen@arm.com>
21852
21853 * Makefile.in: Pick up gcov-dump dependencies from gcc/ directory
21854 rather than from gcc/build directory.
21855
21856 2015-06-01 Matthew Wahab <matthew.wahab@arm.com>
21857
21858 PR target/65697
21859 * config/aarch64/aarch64.c (aarch64_split_compare_and_swap): Check
21860 for __sync memory models, emit initial loads and final barriers as
21861 appropriate.
21862
21863 2015-06-01 Matthew Wahab <matthew.wahab@arm.com>
21864
21865 PR target/65697
21866 * config/aarch64/aarch64.c (aarch64_emit_post_barrier):New.
21867 (aarch64_split_atomic_op): Check for __sync memory models, emit
21868 appropriate initial loads and final barriers.
21869
21870 2015-06-01 Vidya Praveen <vidyapraveen@arm.com>
21871
21872 * Makefile.in: Fix gcov dependencies that should
21873 not point to a build folder.
21874
21875 2015-06-01 Richard Biener <rguenther@suse.de>
21876
21877 Revert
21878 2015-05-29 Richard Biener <rguenther@suse.de>
21879
21880 PR tree-optimization/66314
21881 * tree-ssa-threadupdate.c (create_block_for_threading): Add
21882 parameter that says which loop the new block belongs to.
21883 (ssa_create_duplicates): Blocks duplicated for the threaded
21884 path belong to the loop of the thread destination.
21885
21886 2015-06-01 Martin Liska <mliska@suse.cz>
21887
21888 * sched-deps.c: Include pool-alloc.h before
21889 cselib.h header file is included.
21890
21891 2015-06-01 Richard Biener <rguenther@suse.de>
21892
21893 * tree-ssa-structalias.c (ipa_pta_execute): Handle address-taken
21894 functions.
21895
21896 2015-06-01 Martin Liska <mliska@suse.cz>
21897
21898 * alloc-pool.h: Add ATTRIBUTE_UNUSED for
21899 a function local variable.
21900
21901 2015-06-01 Martin Liska <mliska@suse.cz>
21902
21903 * alloc-pool.c (create_alloc_pool): Remove.
21904 (empty_alloc_pool): Likewise.
21905 (free_alloc_pool): Likewise.
21906 (free_alloc_pool_if_empty): Likewise.
21907 (pool_alloc): Likewise.
21908 (pool_free): Likewise.
21909 * alloc-pool.h: Remove old declarations.
21910
21911 2015-06-01 Martin Liska <mliska@suse.cz>
21912
21913 * ira-build.c (initiate_allocnos): Use new type-based pool allocator.
21914 (ira_create_object): Likewise.
21915 (ira_create_allocno): Likewise.
21916 (ira_create_live_range): Likewise.
21917 (copy_live_range): Likewise.
21918 (ira_finish_live_range): Likewise.
21919 (ira_free_allocno_costs): Likewise.
21920 (finish_allocno): Likewise.
21921 (finish_allocnos): Likewise.
21922 (initiate_prefs): Likewise.
21923 (ira_create_pref): Likewise.
21924 (finish_pref): Likewise.
21925 (finish_prefs): Likewise.
21926 (initiate_copies): Likewise.
21927 (ira_create_copy): Likewise.
21928 (finish_copy): Likewise.
21929 (finish_copies): Likewise.
21930 (finish_prefs): Likewise.
21931
21932 2015-06-01 Martin Liska <mliska@suse.cz>
21933
21934 * ipa-cp.c (ipcp_value::add_source): Use new type-based pool allocator.
21935 (allocate_and_init_ipcp_value): Likewise.
21936 (ipcp_lattice::add_value): Likewise.
21937 (merge_agg_lats_step): Likewise.
21938 (ipcp_driver): Likewise.
21939 * ipa-prop.c (ipa_free_all_structures_after_ipa_cp): Likewise.
21940 (ipa_free_all_structures_after_iinln): Likewise.
21941 * ipa-prop.h: Likewise.
21942
21943 2015-06-01 Martin Liska <mliska@suse.cz>
21944
21945 * ipa-inline-analysis.c (edge_set_predicate): Use new type-based
21946 pool allocator.
21947 (set_hint_predicate): Likewise.
21948 (inline_summary_alloc): Likewise.
21949 (reset_inline_edge_summary): Likewise.
21950 (reset_inline_summary): Likewise.
21951 (set_cond_stmt_execution_predicate): Likewise.
21952 (set_switch_stmt_execution_predicate): Likewise.
21953 (compute_bb_predicates): Likewise.
21954 (estimate_function_body_sizes): Likewise.
21955 (inline_free_summary): Likewise.
21956
21957 2015-06-01 Martin Liska <mliska@suse.cz>
21958
21959 * ipa-prop.c (ipa_set_jf_constant): Use new type-based pool allocator.
21960 (ipa_edge_duplication_hook): Likewise.
21961 (ipa_free_all_structures_after_ipa_cp): Likewise.
21962 (ipa_free_all_structures_after_iinln): Likewise.
21963
21964 2015-06-01 Martin Liska <mliska@suse.cz>
21965
21966 * ipa-profile.c (account_time_size): Use new type-based pool allocator.
21967 (ipa_profile_generate_summary): Likewise.
21968 (ipa_profile_read_summary): Likewise.
21969 (ipa_profile): Likewise.
21970
21971 2015-06-01 Martin Liska <mliska@suse.cz>
21972
21973 * tree-ssa-structalias.c (new_var_info): Use new type-based
21974 pool allocator.
21975 (new_constraint): Likewise.
21976 (init_alias_vars): Likewise.
21977 (delete_points_to_sets): Likewise.
21978
21979 2015-06-01 Martin Liska <mliska@suse.cz>
21980
21981 * tree-ssa-strlen.c (new_strinfo): Use new type-based pool allocator.
21982 (free_strinfo): Likewise.
21983 (pass_strlen::execute): Likewise.
21984
21985 2015-06-01 Martin Liska <mliska@suse.cz>
21986
21987 * tree-ssa-sccvn.c (vn_reference_insert): Use new type-based
21988 pool allocator.
21989 (vn_reference_insert_pieces): Likewise.
21990 (vn_phi_insert): Likewise.
21991 (visit_reference_op_call): Likewise.
21992 (copy_phi): Likewise.
21993 (copy_reference): Likewise.
21994 (process_scc): Likewise.
21995 (allocate_vn_table): Likewise.
21996 (free_vn_table): Likewise.
21997
21998 2015-06-01 Martin Liska <mliska@suse.cz>
21999
22000 * tree-ssa-reassoc.c (add_to_ops_vec): Use new type-based
22001 pool allocator.
22002 (add_repeat_to_ops_vec): Likewise.
22003 (get_ops): Likewise.
22004 (maybe_optimize_range_tests): Likewise.
22005 (init_reassoc): Likewise.
22006 (fini_reassoc): Likewise.
22007
22008 2015-06-01 Martin Liska <mliska@suse.cz>
22009
22010 * tree-ssa-pre.c (get_or_alloc_expr_for_name): Use new type-based
22011 pool allocator.
22012 (bitmap_set_new): Likewise.
22013 (get_or_alloc_expr_for_constant): Likewise.
22014 (get_or_alloc_expr_for): Likewise.
22015 (phi_translate_1): Likewise.
22016 (compute_avail): Likewise.
22017 (init_pre): Likewise.
22018 (fini_pre): Likewise.
22019
22020 2015-06-01 Martin Liska <mliska@suse.cz>
22021
22022 * sched-deps.c (create_dep_node): Use new type-based pool allocator.
22023 (delete_dep_node): Likewise.
22024 (create_deps_list): Likewise.
22025 (free_deps_list): Likewise.
22026 (sched_deps_init): Likewise.
22027 (sched_deps_finish): Likewise.
22028
22029 2015-06-01 Martin Liska <mliska@suse.cz>
22030
22031 * regcprop.c (free_debug_insn_changes): Use new type-based
22032 pool allocator.
22033 (replace_oldest_value_reg): Likewise.
22034 (pass_cprop_hardreg::execute): Likewise.
22035
22036 2015-06-01 Martin Liska <mliska@suse.cz>
22037
22038 * ira-build.c (initiate_cost_vectors): Use new type-based
22039 pool allocator.
22040 (ira_allocate_cost_vector): Likewise.
22041 (ira_free_cost_vector): Likewise.
22042 (finish_cost_vectors): Likewise.
22043
22044 2015-06-01 Martin Liska <mliska@suse.cz>
22045
22046 * sel-sched-ir.c (alloc_sched_pools): Use new type-based
22047 pool allocator.
22048 (free_sched_pools): Likewise.
22049 * sel-sched-ir.h (_list_alloc): Likewise.
22050 (_list_remove): Likewise.
22051
22052 2015-06-01 Martin Liska <mliska@suse.cz>
22053
22054 * stmt.c (add_case_node): Use new type-based pool allocator.
22055 (expand_case): Likewise.
22056 (expand_sjlj_dispatch_table): Likewise.
22057
22058 2015-06-01 Martin Liska <mliska@suse.cz>
22059
22060 * tree-ssa-math-opts.c (occ_new): Use new type-based pool allocator.
22061 (free_bb): Likewise.
22062 (pass_cse_reciprocals::execute): Likewise.
22063
22064 2015-06-01 Martin Liska <mliska@suse.cz>
22065
22066 * tree-sra.c (sra_initialize): Use new type-based pool allocator.
22067 (sra_deinitialize) Likewise.
22068 (create_access_1) Likewise.
22069 (build_accesses_from_assign) Likewise.
22070 (create_artificial_child_access) Likewise.
22071
22072 2015-06-01 Martin Liska <mliska@suse.cz>
22073
22074 * dse.c (get_group_info):Use new type-based pool allocator.
22075 (dse_step0) Likewise.
22076 (free_store_info) Likewise.
22077 (delete_dead_store_insn) Likewise.
22078 (free_read_records) Likewise.
22079 (record_store) Likewise.
22080 (replace_read) Likewise.
22081 (check_mem_read_rtx) Likewise.
22082 (scan_insn) Likewise.
22083 (dse_step1) Likewise.
22084 (dse_step7) Likewise.
22085
22086 2015-06-01 Martin Liska <mliska@suse.cz>
22087
22088 * df-scan.c (struct df_scan_problem_data):Use new type-based
22089 pool allocator.
22090 (df_scan_free_internal) Likewise.
22091 (df_scan_alloc) Likewise.
22092 (df_grow_reg_info) Likewise.
22093 (df_free_ref) Likewise.
22094 (df_insn_create_insn_record) Likewise.
22095 (df_mw_hardreg_chain_delete) Likewise.
22096 (df_insn_info_delete) Likewise.
22097 (df_free_collection_rec) Likewise.
22098 (df_mw_hardreg_chain_delete_eq_uses) Likewise.
22099 (df_sort_and_compress_mws) Likewise.
22100 (df_ref_create_structure) Likewise.
22101 (df_ref_record) Likewise.
22102
22103 2015-06-01 Martin Liska <mliska@suse.cz>
22104
22105 * df-problems.c (df_chain_create):Use new type-based pool allocator.
22106 (df_chain_unlink_1) Likewise.
22107 (df_chain_unlink) Likewise.
22108 (df_chain_remove_problem) Likewise.
22109 (df_chain_alloc) Likewise.
22110 (df_chain_free) Likewise.
22111 * df.h (struct dataflow) Likewise.
22112
22113 2015-06-01 Martin Liska <mliska@suse.cz>
22114
22115 * cselib.c (new_elt_list):Use new type-based pool allocator.
22116 (new_elt_loc_list) Likewise.
22117 (unchain_one_elt_list) Likewise.
22118 (unchain_one_elt_loc_list) Likewise.
22119 (unchain_one_value) Likewise.
22120 (new_cselib_val) Likewise.
22121 (cselib_init) Likewise.
22122 (cselib_finish) Likewise.
22123
22124 2015-06-01 Martin Liska <mliska@suse.cz>
22125
22126 * config/sh/sh.c (add_constant):Use new type-based pool allocator.
22127 (sh_reorg) Likewise.
22128
22129 2015-06-01 Martin Liska <mliska@suse.cz>
22130
22131 * cfg.c (initialize_original_copy_tables):Use new type-based
22132 pool allocator.
22133 (free_original_copy_tables) Likewise.
22134 (copy_original_table_clear) Likewise.
22135 (copy_original_table_set) Likewise.
22136
22137 2015-06-01 Martin Liska <mliska@suse.cz>
22138
22139 * asan.c (asan_mem_ref_get_alloc_pool):Use new type-based
22140 pool allocator.
22141 (asan_mem_ref_new) Likewise.
22142 (free_mem_ref_resources) Likewise.
22143
22144 2015-06-01 Martin Liska <mliska@suse.cz>
22145
22146 * var-tracking.c (variable_htab_free):Use new type-based
22147 pool allocator.
22148 (attrs_list_clear) Likewise.
22149 (attrs_list_insert) Likewise.
22150 (attrs_list_copy) Likewise.
22151 (shared_hash_unshare) Likewise.
22152 (shared_hash_destroy) Likewise.
22153 (unshare_variable) Likewise.
22154 (var_reg_delete_and_set) Likewise.
22155 (var_reg_delete) Likewise.
22156 (var_regno_delete) Likewise.
22157 (drop_overlapping_mem_locs) Likewise.
22158 (variable_union) Likewise.
22159 (insert_into_intersection) Likewise.
22160 (canonicalize_values_star) Likewise.
22161 (variable_merge_over_cur) Likewise.
22162 (dataflow_set_merge) Likewise.
22163 (remove_duplicate_values) Likewise.
22164 (variable_post_merge_new_vals) Likewise.
22165 (dataflow_set_preserve_mem_locs) Likewise.
22166 (dataflow_set_remove_mem_locs) Likewise.
22167 (variable_from_dropped) Likewise.
22168 (variable_was_changed) Likewise.
22169 (set_slot_part) Likewise.
22170 (clobber_slot_part) Likewise.
22171 (delete_slot_part) Likewise.
22172 (loc_exp_insert_dep) Likewise.
22173 (notify_dependents_of_changed_value) Likewise.
22174 (emit_notes_for_differences_1) Likewise.
22175 (vt_emit_notes) Likewise.
22176 (vt_initialize) Likewise.
22177 (vt_finalize) Likewise.
22178
22179 2015-06-01 Martin Liska <mliska@suse.cz>
22180
22181 * ira-color.c (init_update_cost_records):Use new type-based
22182 pool allocator.
22183 (get_update_cost_record) Likewise.
22184 (free_update_cost_record_list) Likewise.
22185 (finish_update_cost_records) Likewise.
22186 (initiate_cost_update) Likewise.
22187
22188 2015-06-01 Martin Liska <mliska@suse.cz>
22189
22190 * lra.c (init_insn_regs): Use new type-based pool allocator.
22191 (new_insn_reg) Likewise.
22192 (free_insn_reg) Likewise.
22193 (free_insn_regs) Likewise.
22194 (finish_insn_regs) Likewise.
22195 (init_insn_recog_data) Likewise.
22196 (init_reg_info) Likewise.
22197 (finish_reg_info) Likewise.
22198 (lra_free_copies) Likewise.
22199 (lra_create_copy) Likewise.
22200 (invalidate_insn_data_regno_info) Likewise.
22201
22202 2015-06-01 Martin Liska <mliska@suse.cz>
22203
22204 * lra-lives.c (free_live_range): Use new type-based pool allocator.
22205 (free_live_range_list) Likewise.
22206 (create_live_range) Likewise.
22207 (copy_live_range) Likewise.
22208 (lra_merge_live_ranges) Likewise.
22209 (remove_some_program_points_and_update_live_ranges) Likewise.
22210 (lra_live_ranges_init) Likewise.
22211 (lra_live_ranges_finish) Likewise.
22212
22213 2015-06-01 Martin Liska <mliska@suse.cz>
22214
22215 * et-forest.c (et_new_occ): Use new type-based pool allocator.
22216 (et_new_tree): Likewise.
22217 (et_free_tree): Likewise.
22218 (et_free_tree_force): Likewise.
22219 (et_free_pools): Likewise.
22220 (et_split): Likewise.
22221
22222 2015-06-01 Martin Liska <mliska@suse.cz>
22223
22224 * alloc-pool.c (struct alloc_pool_descriptor): Move definition
22225 to header file.
22226 * alloc-pool.h (pool_allocator::pool_allocator): New function.
22227 (pool_allocator::release): Likewise.
22228 (inline pool_allocator::release_if_empty): Likewise.
22229 (inline pool_allocator::~pool_allocator): Likewise.
22230 (pool_allocator::allocate): Likewise.
22231 (pool_allocator::remove): Likewise.
22232
22233 2015-06-01 James Greenhalgh <james.greenhalgh@arm.com>
22234
22235 * sched-deps.c (sched_analyze_2): Replace fuseable with fusible
22236 in comment.
22237
22238 2015-06-01 James Greenhalgh <james.greenhalgh@arm.com>
22239
22240 * config/arm/arm-protos.h (tune_params): Rename fuseable_ops
22241 to fusible_ops.
22242 * config/arm/arm.c (arm_print_tune_info): Likewise.
22243 (arm_macro_fusion_p): Likewise.
22244 (arm_macro_fusion_pair_p): Likewise.
22245
22246 2015-06-01 James Greenhalgh <james.greenhalgh@arm.com>
22247
22248 * config/aarch64/aarch64-protos.h (tune_params): Rename
22249 fuseable_ops to fusible_ops.
22250 * config/aarch64/aarch64.c (generic_tunings): Rename
22251 fuseable_ops to fusible_ops.
22252 (cortexa53_tunings): Likewise.
22253 (cortexa57_tunings): Likewise.
22254 (thunderx_tunings): Likewise.
22255 (xgene1_tunings): Likewise.
22256 (aarch64_macro_fusion_p): Likewise.
22257 (aarch64_macro_fusion_pair_p): Likewise.
22258
22259 2015-06-01 Dominik Vogt <vogt@linux.vnet.ibm.com>
22260
22261 * config/s390/driver-native.c: New file.
22262 * config/s390/x-native: New file.
22263 * config.host: Add new files for s390.
22264 * config/s390/s390.h (DRIVER_SELF_SPECS): Add support for -mtune=native
22265 and -march=native
22266 * config.gcc: Likewise.
22267 * config/s390/s390.opt (march): Likewise; add PROCESSOR_NATIVE
22268 * config/s390/s390-opts.h (enum processor_type): Ditto.
22269 * config/s390/s390.c (s390_option_override): Catch unhandled
22270 PROCESSOR_NATIVE
22271
22272 2015-06-01 Ilya Enkovich <ilya.enkovich@intel.com>
22273
22274 PR target/65527
22275 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Add
22276 redirection for instrumented calls.
22277 * lto-wrapper.c (merge_and_complain): Merge -fcheck-pointer-bounds.
22278 (append_compiler_options): Append -fcheck-pointer-bounds.
22279 * tree-chkp.h (chkp_copy_call_skip_bounds): New.
22280 (chkp_redirect_edge): New.
22281 * tree-chkp.c (chkp_copy_call_skip_bounds): New.
22282 (chkp_redirect_edge): New.
22283
22284 2015-06-01 Richard Biener <rguenther@suse.de>
22285
22286 PR tree-optimization/66280
22287 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Fix pattern
22288 def-use walking.
22289
22290 2015-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22291
22292 * config/aarch64/aarch64.md
22293 (*<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Change type to
22294 logic_shift_imm.
22295
22296 2015-06-01 Eric Botcazou <ebotcazou@adacore.com>
22297
22298 * config/i386/winnt.c (i386_pe_encode_section_info) <FUNCTION_DECL>:
22299 Remove obsolete kludge.
22300
22301 2015-06-01 Richard Biener <rguenther@suse.de>
22302
22303 * tree-ssa-reassoc.c (get_rank): Simplify.
22304
22305 2015-05-31 H.J. Lu <hongjiu.lu@intel.com>
22306
22307 * configure.ac (NO_PIE_CFLAGS): Check CXXFLAGS instead of CFLAGS.
22308 * configure: Regenerated.
22309
22310 2015-05-31 Mikhail Maltsev <maltsevm@gmail.com>
22311
22312 * config/cris/cris.h (CRIS_ARCH_CPP_DEFAULT): Fix C++11 compatibility
22313 issue (add space between string literal and macro).
22314 * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Likewise.
22315
22316 2015-05-30 Andreas Schwab <schwab@linux-m68k.org>
22317
22318 * config/m68k/m68k.h (ASM_PCREL_SPEC): Pass --pcrel also for
22319 implict or explicit -fPIE or -fpie.
22320
22321 2015-05-30 Mike Frysinger <vapier@gentoo.org>
22322
22323 * config/alpha/elf.h (ASM_SPEC): Add %{mcpu=*:-m%*}.
22324
22325 2015-05-28 DJ Delorie <dj@redhat.com>
22326
22327 * expmed.c (extract_bit_field_1): Avoid clobbering a
22328 yet-to-be-used base/index register.
22329
22330 2015-05-30 Jan Hubicka <hubicka@ucw.cz>
22331
22332 * alias.c (alias_set_entry_d): Add is_pointer and has_pointer.
22333 (alias_stats): Add num_universal.
22334 (alias_set_subset_of): Special case pointers; be ready for NULL
22335 children.
22336 (alias_sets_conflict_p): Special case pointers; be ready for NULL
22337 children.
22338 (init_alias_set_entry): Break out from ...
22339 (record_alias_subset): ... here; propagate new fields;
22340 allocate children only when really needed.
22341 (get_alias_set): Do less generous pointer globbing.
22342 (dump_alias_stats_in_alias_c): Update statistics.
22343
22344 2015-05-30 Alan Modra <amodra@gmail.com>
22345
22346 * config/rs6000/rs6000.c (split_stack_arg_pointer_used_p): Scan
22347 correct block for use of r12.
22348 (rs6000_expand_split_stack_prologue): Error on r29 asm global reg.
22349
22350 2015-05-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
22351
22352 PR target/66215
22353 * config/s390/s390.c (s390_reorg): Fix placement of post-label NOPs
22354 with -mhotpatch=.
22355
22356 2015-05-29 Jakub Jelinek <jakub@redhat.com>
22357
22358 PR tree-optimization/66142
22359 * tree-if-conv.c (if_convertible_phi_p): Don't give up on
22360 virtual phis that feed themselves.
22361
22362 2015-05-29 Richard Biener <rguenther@suse.de>
22363
22364 PR tree-optimization/66314
22365 * tree-ssa-threadupdate.c (create_block_for_threading): Add
22366 parameter that says which loop the new block belongs to.
22367 (ssa_create_duplicates): Blocks duplicated for the threaded
22368 path belong to the loop of the thread destination.
22369
22370 2015-05-29 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
22371
22372 * config/arm/neon-testgen.ml (emit_epilogue): Remove manual call
22373 to cleanup-saved-temps.
22374 * doc/sourcebuild.texi (Clean up generated test files): Expand
22375 introduction.
22376 (dg-keep-saved-temps): Document new proc.
22377 (cleanup-ipa-dump, cleanup-rtl-dump, cleanup-tree-dump,
22378 cleanup-saved-temps): Remove.
22379
22380 2015-05-28 Andreas Tobler <andreast@gcc.gnu.org>
22381
22382 * configure.ac: Move the atoll check from AC_CHECK_FUNCS to
22383 gcc_AC_CHECK_DECLS.
22384 * configure: Regenerate.
22385
22386 2015-05-28 Mike Frysinger <vapier@gentoo.org>
22387
22388 * config/nios2/linux.h (CPP_SPEC): Define.
22389
22390 2015-05-28 Mike Frysinger <vapier@gentoo.org>
22391
22392 * config/microblaze/linux.h (CPP_SPEC): Define.
22393
22394 2015-05-28 Mike Frysinger <vapier@gentoo.org>
22395
22396 * config/pa/pa-linux.h (CPP_SPEC): Change so -D_REENTRANT is used when
22397 -pthread is specified.
22398
22399 2015-05-28 Richard Biener <rguenther@suse.de>
22400
22401 * tree-vect-loop.c (vect_fixup_reduc_chain): New function.
22402 (vect_fixup_scalar_cycles_with_patterns): Likewise.
22403 (vect_analyze_loop_2): Call vect_fixup_scalar_cycles_with_patterns
22404 after pattern recog.
22405 (vect_create_epilog_for_reduction): Properly handle reductions
22406 with patterns.
22407 (vectorizable_reduction): Likewise.
22408 * tree-vect-slp.c (vect_analyze_slp_instance): Properly mark
22409 reduction chains.
22410 (vect_get_constant_vectors): Create the correct number of
22411 initial values for reductions.
22412 (vect_schedule_slp_instance): Handle reduction chains that are
22413 type changing properly.
22414 * tree-vect-stmts.c (vect_analyze_stmt): Adjust.
22415
22416 2015-05-28 Richard Biener <rguenther@suse.de>
22417
22418 PR tree-optimization/66142
22419 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle non-GIMPLE
22420 values better in memcpy destination handling. Handle non-aliasing
22421 we discover here.
22422
22423 2015-05-28 Lawrence Velázquez <vq@larryv.me>
22424
22425 PR target/63810
22426 * config/darwin-c.c (version_components): New global enum.
22427 (parse_version, version_as_legacy_macro)
22428 (version_as_modern_macro, macosx_version_as_macro): New functions.
22429 (version_as_macro): Remove.
22430 (darwin_cpp_builtins): Use new function.
22431
22432 2015-05-28 H.J. Lu <hongjiu.lu@intel.com>
22433
22434 * builtins.c (expand_builtin_acc_on_device): Mark parameters
22435 with ATTRIBUTE_UNUSED.
22436
22437 2015-05-28 Julian Brown <julian@codesourcery.com>
22438
22439 PR libgomp/65742
22440
22441 * builtins.c (expand_builtin_acc_on_device): Don't use open-coded
22442 sequence for !ACCEL_COMPILER.
22443
22444 2015-05-28 Nick Clifton <nickc@redhat.com>
22445
22446 * config/rx/rx.c (push_regs): New function. Extracts code from...
22447 (rx_expand_prologue): ... here. Use push_regs to push even small
22448 spans of registers.
22449 (pop_regs): New function.
22450 (rx_expand_epilogue): Use pop_regs to pop even small spans of
22451 registers.
22452
22453 2015-05-28 Richard Biener <rguenther@suse.de>
22454
22455 * tree-vectorizer.h (struct _slp_instance): Remove body_cost_vec
22456 member.
22457 (SLP_INSTANCE_BODY_COST_VEC): Remove.
22458 (vect_update_slp_costs_according_to_vf): Likewise.
22459 (vect_slp_analyze_operations): Update prototype.
22460 * tree-vect-loop.c (vect_analyze_loop_2): Remove call to
22461 vect_update_slp_costs_according_to_vf, adjust.
22462 * tree-vect-slp.c (vect_free_slp_instance): Adjust.
22463 (vect_analyze_slp_cost_1): Likewise.
22464 (vect_analyze_slp_cost): Likewise. Properly deal with
22465 widening reduction ops. Commit body costs.
22466 (vect_analyze_slp_instance): Adjust. Do not analyze SLP
22467 cost for loops from here.
22468 (vect_slp_analyze_operations): But do it from here when
22469 the vectorization factor is known and stmts are analyzed.
22470 (vect_bb_vectorization_profitable_p): Simplify.
22471 (vect_slp_analyze_bb_1): Do not compute SLP cost here.
22472 (vect_update_slp_costs_according_to_vf): Remove.
22473
22474 2015-05-27 Magnus Granberg <zorry@gentoo.org>
22475 H.J. Lu <hongjiu.lu@intel.com>
22476
22477 * Makefile.in (COMPILER): Add @NO_PIE_CFLAGS@.
22478 (BUILD_CFLAGS): Likewise.
22479 (BUILD_CXXFLAGS): Likewise.
22480 (LINKER): Add @NO_PIE_FLAG@.
22481 (BUILD_LDFLAGS): Likewise.
22482 (libgcc.mvars): Set NO_PIE_CFLAGS to -fno-PIE for
22483 --enable-default-pie.
22484 * common.opt (fPIE): Initialize to -1.
22485 (fpie): Likewise.
22486 (no-pie): New option.
22487 (pie): Replace "Negative(shared)" with "Negative(no-pie)".
22488 * configure.ac: Add --enable-default-pie.
22489 (NO_PIE_CFLAGS): New. Check if -fno-PIE works. AC_SUBST.
22490 (NO_PIE_FLAG): New. Check if -no-pie works. AC_SUBST.
22491 * defaults.h (DEFAULT_FLAG_PIE): New. Default PIE to -fPIE.
22492 * gcc.c (NO_PIE_SPEC): New.
22493 (PIE_SPEC): Likewise.
22494 (NO_FPIE1_SPEC): Likewise.
22495 (FPIE1_SPEC): Likewise.
22496 (NO_FPIE2_SPEC): Likewise.
22497 (FPIE2_SPEC): Likewise.
22498 (NO_FPIE2_SPEC): Likewise.
22499 (FPIE_SPEC): Likewise.
22500 (NO_FPIE_SPEC): Likewise.
22501 (NO_FPIC1_SPEC): Likewise.
22502 (FPIC1_SPEC): Likewise.
22503 (NO_FPIC2_SPEC): Likewise.
22504 (FPIC2_SPEC): Likewise.
22505 (NO_FPIC2_SPEC): Likewise.
22506 (FPIC_SPEC): Likewise.
22507 (NO_FPIC_SPEC): Likewise.
22508 (NO_FPIE1_AND_FPIC1_SPEC): Likewise.
22509 (FPIE1_OR_FPIC1_SPEC): Likewise.
22510 (NO_FPIE2_AND_FPIC2_SPEC): Likewise.
22511 (FPIE2_OR_FPIC2_SPEC): Likewise.
22512 (NO_FPIE_AND_FPIC_SPEC): Likewise.
22513 (FPIE_OR_FPIC_SPEC): Likewise.
22514 (LD_PIE_SPEC): Likewise.
22515 (LINK_PIE_SPEC): Handle -no-pie. Use PIE_SPEC and LD_PIE_SPEC.
22516 * opts.c (finish_options): Update opts->x_flag_pie if it is -1.
22517 * config/darwin.h (PIE_SPEC): Renamed to ...
22518 (DARWIN_PIE_SPEC): This.
22519 (LINK_SPEC): Replace PIE_SPEC with DARWIN_PIE_SPEC.
22520 * config/darwin9.h (PIE_SPEC): Renamed to ...
22521 (DARWIN_PIE_SPEC): This.
22522 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use
22523 PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
22524 * config/openbsd.h (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and
22525 FPIE2_OR_FPIC2_SPEC.
22526 * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
22527 * config/m68k/openbsd.h (ASM_SPEC): Likewise.
22528 * config/sol2.h (ASM_PIC_SPEC): Likewise.
22529 * config/arm/freebsd.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
22530 * config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
22531 * config/arm/semi.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
22532 * config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
22533 * config/m32r/m32r.h (ASM_SPEC): Likewise.
22534 * config/m68k/uclinux.h (DRIVER_SELF_SPECS): Likewise.
22535 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
22536 * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
22537 * config/sparc/freebsd.h (ASM_SPEC): Likewise.
22538 * config/sparc/linux.h (ASM_SPEC): Likewise.
22539 * config/sparc/linux64.h (ASM_SPEC): Likewise.
22540 * config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
22541 * config/sparc/openbsd64.h (ASM_SPEC): Likewise.
22542 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
22543 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
22544 * config/sparc/sparc.h (ASM_SPEC): Likewise.
22545 * config/sparc/sysv4.h (ASM_SPEC): Likewise.
22546 * config/sparc/vxworks.h (ASM_SPEC): Likewise.
22547 * config/c6x/elf-common.h (ASM_SPEC): Use NO_FPIC2_SPEC,
22548 FPIC2_SPEC, FPIC1_SPEC and FPIC2_SPEC.
22549 * config/c6x/uclinux-elf.h (LINK_SPEC): Use FPIE_SPEC.
22550 * config/frv/frv.h (DRIVER_SELF_SPECS): Use FPIC_SPEC,
22551 NO_FPIC_SPEC and NO_FPIE1_AND_FPIC1_SPEC.
22552 (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and FPIE2_OR_FPIC2_SPEC.
22553 * config/m68k/m68k.h (ASM_PCREL_SPEC): Use FPIC_SPEC and NO_FPIC_SPEC.
22554 * config/mips/gnu-user.h (NO_SHARED_SPECS): Use NO_FPIE_AND_FPIC_SPEC.
22555 * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Use FPIC_SPEC.
22556 * config/rs6000/freebsd64.h (ASM_SPEC32): Likewise.
22557 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
22558 * config/vax/linux.h (ASM_SPEC): Likewise.
22559 * doc/install.texi: Document --enable-default-pie.
22560 * doc/invoke.texi: Document -no-pie.
22561 * config.in: Regenerated.
22562 * configure: Likewise.
22563
22564 2015-05-28 Thomas Preud'homme <thomas.preudhomme@arm.com>
22565
22566 PR rtl-optimization/66168
22567 * loop-invariant.c (move_invariant_reg): Pass dest rather than reg to
22568 can_move_invariant_reg.
22569
22570 2015-05-27 John David Anglin <danglin@gcc.gnu.org>
22571
22572 PR target/66148
22573 * config/pa/pa.c (pa_emit_move_sequence): Correct placement of
22574 REG_EQUAL note when doing insert.
22575
22576 * config/pa/pa.c (pa_print_operand): Use HOST_WIDE_INT_PRINT_DEC
22577 instead of "%d" for 'o' operand.
22578
22579 2015-05-27 Nathan Sidwell <nathan@acm.org>
22580
22581 PR c++/66270
22582 * tree.c (build_pointer_type_for_mode): Canonical type does not
22583 inherit can_alias_all.
22584 (build_reference_type_for_mode): Likewise.
22585
22586 2015-05-27 Eric Botcazou <ebotcazou@adacore.com>
22587
22588 * expr.h (array_at_struct_end_p): Move to...
22589 (array_ref_element_size): Likewise.
22590 (component_ref_field_offset): Likewise.
22591 * tree.h (array_ref_element_size): ...here.
22592 (array_at_struct_end_p): Likewise.
22593 (component_ref_field_offset): Likewise.
22594 * expr.c (array_ref_element_size): Move to...
22595 (array_ref_low_bound): Likewise.
22596 (array_at_struct_end_p): Likewise.
22597 (array_ref_up_bound): Likewise.
22598 (component_ref_field_offset): Likewise.
22599 * tree.c (array_ref_element_size): ...here.
22600 (array_ref_low_bound): Likewise.
22601 (array_ref_up_bound): Likewise.
22602 (array_at_struct_end_p): Likewise.
22603 (component_ref_field_offset): Likewise.
22604
22605 2015-05-27 Gregor Richards <gregor.richards@uwaterloo.ca>
22606 Szabolcs Nagy <szabolcs.nagy@arm.com>
22607
22608 * config/aarch64/aarch64-linux.h (MUSL_DYNAMIC_LINKER): Define.
22609
22610 2015-05-27 Jason Merrill <jason@redhat.com>
22611
22612 PR bootstrap/66304
22613 * configure.ac: Use ACX_PROG_CXX_WARNING_OPTS,
22614 ACX_PROG_CXX_WARNING_ALMOST_PEDANTIC, and
22615 ACX_PROG_CXX_WARNINGS_ARE_ERRORS.
22616
22617 2015-05-22 Aditya Kumar <hiraditya@msn.com>
22618
22619 * auto-profile.c (afdo_calculate_branch_prob): Break once has_sample
22620 is true.
22621
22622 * statistics.c (statistics_fini_pass): Print pass name.
22623
22624 2015-05-27 Richard Biener <rguenther@suse.de>
22625
22626 PR tree-optimization/66272
22627 Revert parts of
22628 2014-08-15 Richard Biener <rguenther@suse.de>
22629
22630 PR tree-optimization/62031
22631 * tree-data-ref.c (dr_analyze_indices): Do not set
22632 DR_UNCONSTRAINED_BASE.
22633 (dr_may_alias_p): All indirect accesses have to go the
22634 formerly DR_UNCONSTRAINED_BASE path.
22635 * tree-data-ref.h (struct indices): Remove
22636 unconstrained_base member.
22637 (DR_UNCONSTRAINED_BASE): Remove.
22638
22639 2015-05-27 Aldy Hernandez <aldyh@redhat.com>
22640
22641 * dwarf2out.c: Remove block_map.
22642 (gen_call_site_die): Replace block_map use with BLOCK_DIE.
22643 (gen_lexical_block_die): Same.
22644 (dwarf2out_function_decl): Remove block_map use.
22645 (dwarf2out_c_finalize): Same.
22646 * tree-core.h (struct tree_block): Add die field.
22647 * tree.h (BLOCK_DIE): New.
22648
22649 2015-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22650
22651 PR target/65358
22652 * expr.c (memory_load_overlap): New function.
22653 (emit_push_insn): When pushing partial args to the stack would
22654 clobber the register part load the overlapping part into a pseudo
22655 and put it into the hard reg after pushing. Change return type
22656 to bool. Add bool argument.
22657 * expr.h (emit_push_insn): Change return type to bool.
22658 Add bool argument.
22659 * calls.c (expand_call): Cancel sibcall optimization when encountering
22660 partial argument on targets with ARGS_GROW_DOWNWARD and
22661 !STACK_GROWS_DOWNWARD.
22662 (emit_library_call_value_1): Update callsite of emit_push_insn.
22663 (store_one_arg): Likewise.
22664
22665 2015-05-27 Gregor Richards <gregor.richards@uwaterloo.ca>
22666
22667 * config/arm/linux-eabi.h (MUSL_DYNAMIC_LINKER): Define.
22668
22669 2015-05-27 Martin Liska <mliska@suse.cz>
22670
22671 * Makefile.in: Add additional dependencies related to memory report
22672 enhancement.
22673 * alloc-pool.c (allocate_pool_descriptor): Use new ctor.
22674 * bitmap.c (struct bitmap_descriptor_d): Remove.
22675 (struct loc): Likewise.
22676 (struct bitmap_desc_hasher): Likewise.
22677 (bitmap_desc_hasher::hash): Likewise.
22678 (bitmap_desc_hasher::equal): Likewise.
22679 (get_bitmap_descriptor): Likewise.
22680 (bitmap_register): User new memory descriptor API.
22681 (register_overhead): Likewise.
22682 (bitmap_find_bit): Register nsearches and search_iter statistics.
22683 (struct bitmap_output_info): Remove.
22684 (print_statistics): Likewise.
22685 (dump_bitmap_statistics): Use new memory descriptor.
22686 * bitmap.h (struct bitmap_usage): New class.
22687 * genmatch.c: Extend header file inclusion.
22688 * genpreds.c: Likewise.
22689 * ggc-common.c (struct ggc_usage): New class.
22690 (struct ggc_loc_desc_hasher): Remove.
22691 (ggc_loc_desc_hasher::hash): Likewise.
22692 (ggc_loc_desc_hasher::equal): Likewise.
22693 (struct ggc_ptr_hash_entry): Likewise.
22694 (struct ptr_hash_hasher): Likewise.
22695 (ptr_hash_hasher::hash): Likewise.
22696 (ptr_hash_hasher::equal): Likewise.
22697 (make_loc_descriptor): Likewise.
22698 (ggc_prune_ptr): Likewise.
22699 (dump_ggc_loc_statistics): Use new memory descriptor.
22700 (ggc_record_overhead): Likewise.
22701 (ggc_free_overhead): Likewise.
22702 (final_cmp_statistic): Remove.
22703 (cmp_statistic): Likewise.
22704 (ggc_add_statistics): Liekwise.
22705 (ggc_prune_overhead_list): Likewise.
22706 * hash-map-traits.h: New file.
22707 * hash-map.h (struct default_hashmap_traits): Move the traits to a
22708 separate header file.
22709 * hash-set.h: Pass memory statistics info to ctor.
22710 * hash-table.c (void dump_hash_table_loc_statistics): New function.
22711 * hash-table.h (hash_table::hash_table): Add new ctor arguments.
22712 (hash_table::~hash_table): Register memory release operation.
22713 (hash_table::alloc_entries): Handle memory allocation operation.
22714 (hash_table::expand): Likewise.
22715 * inchash.c (iterative_hash_hashval_t): Move implementation to header
22716 file.
22717 (iterative_hash_host_wide_int): Likewise.
22718 * inchash.h (class hash): Likewise.
22719 * mem-stats-traits.h: New file.
22720 * mem-stats.h: New file.
22721 (mem_location): Add new class.
22722 (mem_usage): Likewise.
22723 (mem_alloc_description): Likewise.
22724 * sese.c: Add new header file inclusision.
22725 * toplev.c (dump_memory_report): Add report for hash_table, hash_map
22726 and hash_set.
22727 * tree-sra.c: Add new header file inclusision.
22728 * vec.c (struct vec_descriptor): Remove.
22729 (hash_descriptor): Likewise.
22730 (struct vec_usage): Likewise.
22731 (struct ptr_hash_entry): Likewise.
22732 (hash_ptr): Likewise.
22733 (eq_ptr): Likewise.
22734 (vec_prefix::register_overhead): Use new memory descriptor API.
22735 (vec_prefix::release_overhead): Likewise.
22736 (add_statistics): Remove.
22737 (dump_vec_loc_statistics): Use new memory descriptor API.
22738 * vec.h (struct vec_prefix): Likewise.
22739 (va_heap::reserve): Likewise.
22740 (va_heap::release): Likewise.
22741 * emit-rtl.c (gen_raw_REG): Fix passing MEM_STAT.
22742
22743 2015-05-27 Richard Biener <rguenther@suse.de>
22744
22745 * tree-vect-stmts.c (vectorizable_load): Initialize slp_perm
22746 earlier and remove ??? comment.
22747 (vect_analyze_stmt): If we are analyzing a pure SLP stmt
22748 and got called from loop analysis bail out. Always pass the SLP
22749 node to the vectorizable_* functions.
22750 * tree-vect-loop.c (vect_analyze_loop_operations): Remove
22751 the premature SLP check here.
22752 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Dump hybrid
22753 detected SLP stmts.
22754 (vect_detect_hybrid_slp_1): Likewise.
22755
22756 2015-05-26 Jeff Law <law@redhat.com>
22757
22758 * combine.c (find_split_point): Verify that the shift count is a
22759 constant when choosing (plus (ashift ...)) as a split point.
22760
22761 * tree-ssa-threadupdate.c: Replace 8 space sequences with tabs.
22762 No functional changes.
22763
22764 2015-05-26 Jan Hubicka <hubicka@ucw.cz>
22765
22766 * ipa-polymorphic-call.c
22767 (ipa_polymorphic_call_context::get_dynamic_type): Short circuit the
22768 case when call target is already known.
22769
22770 2015-05-26 Oleg Endo <olegendo@gcc.gnu.org>
22771
22772 PR target/65979
22773 * config/sh/sh.md (tstsi_t peephole2): Use gen_rtx_SET and
22774 take into account the case that operands[1] and operands[2]
22775 are the same register.
22776
22777 2015-05-26 Michael Matz <matz@suse.de>
22778
22779 PR middle-end/66251
22780
22781 * tree-vect-stmts.c (vect_model_store_cost): Handled strided group
22782 stores.
22783 (vect_create_vectorized_demotion_stmts): Always set
22784 STMT_VINFO_VEC_STMT, also with SLP.
22785 (vectorizable_store): Handle strided group stores.
22786
22787 2015-05-26 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
22788
22789 PR target/66049
22790 * config/aarch64/aarch64.md
22791 (*adds_shift_imm_<mode>): New pattern.
22792 (*subs_shift_imm_<mode>): Likewise.
22793 (*adds_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
22794 (*subs_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
22795 (*add_uxt<mode>_shift2): Likewise.
22796 (*add_uxtsi_shift2_uxtw): Likewise.
22797 (*sub_uxt<mode>_shift2): Likewise.
22798 (*sub_uxtsi_shift2_uxtw): Likewise.
22799
22800 2015-05-26 David Edelsohn <dje.gcc@gmail.com>
22801
22802 * config/rs6000/constraints.md (Y, U): Use match_test.
22803
22804 2015-05-26 Christian Bruel <christian.bruel@st.com>
22805
22806 PR target/52144
22807 * config/arm/arm.c (arm_option_check_internal)
22808 (arm_option_params_internal): Check opts->target_flags to set macros.
22809 (TREE_TARGET_ARM, TREE_TARGET_THUMB)
22810 (TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Replace with...
22811 (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
22812 (builtin_define): Replaced with def_or_undef_macro.
22813 * config/arm/arm.h (TREE_TARGET_ARM, TREE_TARGET_THUMB)
22814 TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Redefine with...
22815 (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
22816 (TARGET_32BIT_P, TARGET_ARM_QBIT_P, TARGET_ARM_SAT_P, TARGET_IDIV_P)
22817 (TARGET_HAVE_LDREX_P, TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P)
22818 (TARGET_ARM_FEATURE_LDREX_P)
22819 (TARGET_DSP_MULTIPLY_P, TARGET_INT_SIMD_P): New macros.
22820 * config/arm/arm-c.c (def_or_undef_macro): New function.
22821 (arm_cpu_cpp_builtins): Use def_or_undef_macro for macros definition.
22822
22823 2015-05-26 Christian Bruel <christian.bruel@st.com>
22824
22825 * c-common.h (builtin_define_with_int_value)
22826 (builtin_define_type_sizeof): Declare.
22827 * c-cppbuiltin.c (builtin_define_with_int_value)
22828 (builtin_define_type_sizeof): Externalize.
22829 (builtin_define_std): Cleanup declaration.
22830 * config/arm/arm-protos.h (arm_cpu_cpp_builtins): Declare.
22831 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Move macro defines into...
22832 * config/arm/arm-c.c (arm_cpu_cpp_builtins): New function.
22833 (builtin_define, builtin_assert): New macros.
22834
22835 2015-05-26 Richard Biener <rguenther@suse.de>
22836
22837 PR tree-optimization/66142
22838 * tree-ssa-sccvn.c (vn_reference_lookup_3): Manually compare
22839 MEM_REFs for the same base address.
22840
22841 2015-05-26 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
22842
22843 PR ipa/66181
22844 * tree.c (verify_type_variant): Do not check TYPE_NO_FORCE_BLK.
22845
22846 2015-05-26 Jason Merrill <jason@redhat.com>
22847
22848 * configure.ac: Set CXXFLAGS for ISL test.
22849 * configure: Regenerate.
22850
22851 * configure.ac: Use C++ for all tests. Use AC_CHECK_DECLS for
22852 strstr and basename.
22853 * configure: Regenerate.
22854
22855 2015-05-26 Richard Biener <rguenther@suse.de>
22856
22857 * fold-const.c (fold_binary_loc): Move X % -Y -> X % Y and
22858 X % C -> X & (C - 1) for C being a power-of two to ...
22859 * match.pd: ... patterns.
22860
22861 2015-05-26 Marc Glisse <marc.glisse@inria.fr>
22862
22863 * match.pd (swapped_tcc_comparison): New operator list.
22864 (-A CMP -B): New simplification.
22865 * fold-const.c (fold_comparison): Remove corresponding code.
22866
22867 2015-05-26 Richard Sandiford <richard.sandiford@arm.com>
22868
22869 * caller-save.c (init_caller_save): Base temporary register numbers
22870 on LAST_VIRTUAL_REGISTER + 1 rather than FIRST_PSEUDO_REGISTER.
22871 * cfgloopanal.c (init_set_costs): Likewise.
22872 * dojump.c (prefer_and_bit_test): Likewise.
22873 * expr.c (init_expr_target): Likewise.
22874 * ira.c (setup_prohibited_mode_move_regs): Likewise.
22875 * lower-subreg.c (init_lower_subreg): Likewise.
22876 * postreload.c (reload_cse_regs_1): Likewise.
22877
22878 2015-05-26 Richard Sandiford <richard.sandiford@arm.com>
22879
22880 * gensupport.h (compute_test_codes): Declare.
22881 * gensupport.c (compute_predicate_codes): Rename to...
22882 (compute_test_codes): ...this. Generalize error message.
22883 (process_define_predicate): Update accordingly.
22884 * genpreds.c (compute_maybe_allows): Delete.
22885 (add_constraint): Use compute_test_codes to determine whether
22886 something can accept a SUBREG, REG or MEM.
22887
22888 2015-05-26 Torvald Riegel <triegel@redhat.com>
22889
22890 * doc/extend.texi (__atomic Builtins): Use 'memory order' instead of
22891 'memory model' to align with C++11; fix description of memory orders;
22892 fix a few typos.
22893
22894 2015-05-26 Richard Biener <rguenther@suse.de>
22895
22896 * tree-vect-loop.c (vect_update_vf_for_slp): Split out from ...
22897 (vect_analyze_loop_operations): ... here. Remove slp parameter,
22898 detect whether we apply SLP. Remove call to
22899 vect_update_slp_costs_according_to_vf.
22900 (vect_analyze_loop_2): Call vect_update_vf_for_slp and
22901 vect_update_slp_costs_according_to_vf from here. Dispatch
22902 to vect_slp_analyze_operations to analyze SLP stmts.
22903 * tree-vect-slp.c (vect_slp_analyze_node_operations): Drop
22904 unused bb_vec_info parameter, adjust assert.
22905 (vect_slp_analyze_operations): Pass in the slp instance tree
22906 instead of bb_vec_info.
22907 (vect_slp_analyze_bb_1): Adjust call to vect_slp_analyze_operations.
22908 * tree-vectorizer.h (vect_slp_analyze_operations): Declare.
22909
22910 2015-05-25 Alexander Monakov <amonakov@ispras.ru>
22911
22912 * config/i386/i386.h (enum reg_class): Move CLOBBERED_REGS prior to
22913 Q_REGS. Expand comment.
22914 (REG_CLASS_NAMES): Ditto.
22915 (REG_CLASS_CONTENTS): Ditto.
22916
22917 2015-05-25 Uros Bizjak <ubizjak@gmail.com>
22918
22919 PR target/66274
22920 * config/i386/i386.c (print_reg): Only print "r" for TARGET_64BIT
22921 when LEGACY_INT_REGNO_P is processed.
22922
22923 2015-05-25 Alexander Monakov <amonakov@ispras.ru>
22924
22925 * config/i386/i386.c (ix86_function_ok_for_sibcall): Check flag_plt.
22926
22927 2015-05-25 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
22928
22929 * config/avr/avr.c (avr_out_load_psi_reg_no_disp_tiny): Restore base
22930 register if not marked dead/unused, before return.
22931
22932 2015-05-24 Jan Hubicka <hubicka@ucw.cz>
22933
22934 PR lto/66180
22935 * ipa-devirt.c (type_with_linkage): Check that TYPE_STUB_DECL
22936 is set; check for assembler name at LTO time.
22937 (type_in_anonymous_namespace): Remove hacks, check that all
22938 anonymous types are called "<anon>"
22939 (odr_type_p): Simplify; add check for "<anon>"
22940 (odr_subtypes_equivalent): Add odr_type_p check.
22941 * tree.c (need_assembler_name_p): Even anonymous namespace needs
22942 assembler name.
22943
22944 2015-05-24 Jan Hubicka <hubicka@ucw.cz>
22945
22946 * ipa-utils.h (method_class_type): Remove.
22947 * cgraphunit.c (walk_polymorphic_call_targets): Use
22948 TYPE_METHOD_BASETYPE.
22949 * ipa-devirt.c (type_in_anonymous_namespace_p): Check that it is called
22950 on main variants only.
22951 (method_class_type): Remove.
22952 (update_type_inheritance_graph): Use TYPE_METHOD_BASETYPE.
22953 (build_type_inheritance_graph): Likewise.
22954 * ipa-icf.c (sem_function::equals_wpa): Likewise.
22955 * pa-polymorphic-call.c (decl_maybe_in_construction_p,
22956 check_stmt_for_type_change): Use TYPE_METHOD_BASETYPE.
22957
22958 2015-05-24 Jan Hubicka <hubicka@ucw.cz>
22959
22960 * tree.c (prototype_p, virtual_method_call_p, obj_type_ref_class,
22961 is_typedef_decl, typedef_variant_p): Constify.
22962 * tree.h (prototype_p, virtual_method_call_p, obj_type_ref_class,
22963 is_typedef_decl, typedef_variant_p): Constify.
22964
22965 2015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22966
22967 * defaults.h (gen_tablejump): New function.
22968 (HAVE_tablejump): Add default value.
22969 * expr.c: Adjust.
22970 * stmt.c: Likewise.
22971
22972 2015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22973
22974 * defaults.h (gen_store_multiple): New function.
22975 (HAVE_store_multiple): Add default value.
22976 * expr.c (move_block_from_reg): Adjust.
22977
22978 2015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22979
22980 * defaults.h (gen_load_multiple): New function.
22981 (HAVE_load_multiple): Add default value.
22982 * expr.c (move_block_to_reg): Adjust.
22983
22984 2015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22985
22986 * defaults.h (gen_mem_signal_fence): New function.
22987 (HAVE_mem_signal_fence): Add default value.
22988 * optabs.c: Adjust.
22989
22990 2015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22991
22992 * defaults.h (gen_memory_barrier): New function.
22993 (HAVE_memory_barrier): Add default value.
22994 * optabs.c: Adjust.
22995
22996 2015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
22997
22998 * defaults.h (gen_mem_thread_fence): New function.
22999 (HAVE_mem_thread_fence): Add default definition.
23000 * optabs.c: Adjust.
23001
23002 2015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
23003
23004 * combine.c (find_split_point): Check the value of HAVE_lo_sum
23005 instead of if it is defined.
23006 (combine_simplify_rtx): Likewise.
23007 * lra-constraints.c (process_address_1): Likewise.
23008 * config/darwin.c: Adjust.
23009 * genconfig.c (main): Always define HAVE_lo_sum.
23010
23011 2015-05-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
23012
23013 * genmatch.c (parser::parse_operation): Reject expanding
23014 operator-list inside 'for'.
23015
23016 2015-05-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
23017
23018 * genmatch.c (parser::parse_for): Reject iterator if used as
23019 operator-list.
23020
23021 2015-05-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
23022
23023 * genmatch.c (parser::parse_operator_list): Check for CPP_CLOSE_PAREN
23024 after end of id-list.
23025
23026 2015-05-22 Jan Hubicka <hubicka@ucw.cz>
23027
23028 * tree.c (gimple_canonical_types_compatible_p): Sanity check that
23029 we do not try to compute canonical type for type that does not need
23030 alias set.
23031 (verify_type): Drop FIXME for METHOD_TYPE, update FIXME for
23032 FUNCITON_TYPE.
23033 * tree.h (type_with_alias_set_p): New.
23034
23035 2015-05-22 Jan Hubicka <hubicka@ucw.cz>
23036
23037 * tree.c (gimple_canonical_types_compatible_p): Do not compare
23038 function attributes.
23039 (verify_type): Remove METHOD_TYPE FIXME; update FUNCTION_TYPE.
23040
23041 2015-05-22 Jim Wilson <jim.wilson@linaro.org>
23042
23043 * Makefile.in (check_gcc_parallelize): Delete.
23044 (lang_checks_parallelized): Update comment.
23045
23046 2015-05-22 Mikhail Maltsev <maltsevm@gmail.com>
23047
23048 PR rtl-optimization/66237
23049 * bb-reorder.c (fix_crossing_conditional_branches): Fix wrong
23050 location of an "as_a" cast.
23051
23052 2015-05-22 Jeff Law <law@redhat.com>
23053
23054 * config/pa/pa.md (non-canonical shift-add insns): Remove.
23055 (peepholes with non-canonical RTL sources): Remove.
23056 (peepholes for indexed stores of FP regs in integer modes): Match and
23057 generate canonical RTL.
23058
23059 2015-05-22 Marc Glisse <marc.glisse@inria.fr>
23060
23061 PR tree-optimization/63387
23062 * match.pd ((X /[ex] A) * A -> X): Remove unnecessary condition.
23063 ((x ord x) & (y ord y) -> (x ord y),
23064 (x ord x) & (x ord y) -> (x ord y)): New simplifications.
23065 * fold-const.c (tree_unary_nonnegative_warnv_p) <ABS_EXPR>: Handle
23066 vectors like scalars.
23067
23068 2015-05-22 Marc Glisse <marc.glisse@inria.fr>
23069
23070 * convert.c (convert_to_integer, convert_to_vector): Include the
23071 types in the error message.
23072
23073 2015-05-22 Marc Glisse <marc.glisse@inria.fr>
23074
23075 * match.pd ((x | y) & ~x -> y & ~x, (x & y) | ~x -> y | ~x): New
23076 simplifications.
23077
23078 2015-05-22 Jeff Law <law@redhat.com>
23079
23080 * config/pa/pa.md (integer_indexed_store splitters): Use
23081 mem_shadd_operand. Use ASHIFT rather than MULT in the resulting
23082 insns -- adjusting the constant 2nd operand accordingly.
23083
23084 * combine.c (try_combine): Canonicalize (plus (mult X pow2) Y) into
23085 (plus (ashift X log2) Y) if it is a split point.
23086
23087 * config/pa/pa.c (mem_shadd_or_shadd_rtx_p): New function factoredx
23088 out of hppa_legitimize_address to handle both forms of a multiply
23089 by 2, 4 or 8.
23090 (hppa_legitimize_address): Use mem_shadd_or_shadd_rtx_p.
23091 Always generate the ASHIFT variant as the result is not directly
23092 used in a MEM. Update comments and refactor slightly to improve
23093 readability.
23094
23095 2015-05-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23096
23097 PR target/65491
23098 * config/aarch64/aarch64.c (aarch64_short_vector_p): Move above
23099 aarch64_composite_type_p. Remove check for aarch64_composite_type_p.
23100 (aarch64_composite_type_p): Return false if given type and mode are
23101 for a short vector.
23102
23103 2015-05-22 Richard Biener <rguenther@suse.de>
23104
23105 * tree-vectorizer.h (struct _slp_oprnd_info): Add second_pattern
23106 member.
23107 * tree-vect-loop.c (vect_analyze_loop_operations): Look at
23108 patterns when determining whether SLP is pure.
23109 (vect_is_slp_reduction): Remove check for pattern stmts.
23110 (vect_is_simple_reduction_1): Remove dead code.
23111 * tree-vect-slp.c (vect_create_oprnd_info): Initialize second_pattern.
23112 (vect_get_and_check_slp_defs): Pass in the stmt number.
23113 Allow the first def in a reduction to be not a pattern stmt when
23114 the rest of the stmts def are patterns.
23115 (vect_build_slp_tree_1): Allow tcc_expression codes like
23116 SAD_EXPR and DOT_PROD_EXPR.
23117 (vect_build_slp_tree): Adjust.
23118 (vect_analyze_slp): Refactor and move BB vect error message ...
23119 (vect_slp_analyze_bb_1): ... here.
23120
23121 2015-05-22 Aldy Hernandez <aldyh@redhat.com>
23122
23123 * tree-switch-conversion.c (build_one_array): Set DECL_IGNORED_P
23124 for CSWTCH temporary.
23125
23126 2015-05-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23127
23128 * config/arm/arm.c (arm_new_rtx_costs): Handle UNSPEC_VOLATILE.
23129 (arm_unspec_cost): Allow UNSPEC_VOLATILE. Do not recurse inside
23130 unknown unspecs.
23131
23132 2015-05-22 Richard Biener <rguenther@suse.de>
23133
23134 PR tree-optimization/66251
23135 * tree-vect-stmts.c (vectorizable_conversion): Properly
23136 set STMT_VINFO_VEC_STMT even for the SLP case.
23137
23138 2015-05-22 Marek Polacek <polacek@redhat.com>
23139
23140 * doc/extend.texi: Use @pxref instead of @xref.
23141
23142 2015-05-22 hiraditya <hiraditya@msn.com>
23143
23144 * gimple.h (gimple_expr_type): Refactor to make it concise. Remove
23145 redundant if.
23146
23147 2015-05-22 Richard Biener <rguenther@suse.de>
23148
23149 PR tree-optimization/65701
23150 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
23151 Move peeling cost models into one place. Peel for alignment
23152 for single loads only if an aligned load is cheaper than
23153 an unaligned load.
23154
23155 2015-05-22 Marek Polacek <polacek@redhat.com>
23156
23157 PR c/47043
23158 * doc/extend.texi (Enumerator Attributes): New section.
23159 Document syntax of enumerator attributes.
23160
23161 2015-05-22 Richard Biener <rguenther@suse.de>
23162
23163 * tree-vect-loop.c (get_reduction_op): New function.
23164 (vect_model_reduction_cost): Use it, add reduc_index parameter.
23165 Make ready for BB reductions.
23166 (vect_create_epilog_for_reduction): Use get_reduction_op.
23167 (vectorizable_reduction): Init reduc_index to a valid value.
23168 Adjust vect_model_reduction_cost call.
23169 * tree-vect-slp.c (vect_get_constant_vectors): Use the proper
23170 operand for reduction defaults. Add SAD_EXPR support.
23171 Assert we have a neutral op for SLP reductions.
23172 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): When
23173 walking pattern stmt ops only recurse to SSA names.
23174
23175 2015-05-22 Richard Biener <rguenther@suse.de>
23176
23177 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Replace
23178 assert with guard, remove check on detected reduction.
23179 (vect_recog_sad_pattern): Likewise.
23180 (vect_recog_widen_sum_pattern): Likewise.
23181
23182 2015-05-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23183
23184 * config/aarch64/arm_neon.h (vaeseq_u8): Add __extension__ and
23185 __always_inline__ attribute.
23186 (vaesdq_u8): Likewise.
23187 (vaesmcq_u8): Likewise.
23188 (vaesimcq_u8): Likewise.
23189 (vsha1cq_u32): Likewise.
23190 (vsha1mq_u32): Likewise.
23191 (vsha1pq_u32): Likewise.
23192 (vsha1h_u32): Likewise.
23193 (vsha1su0q_u32): Likewise.
23194 (vsha1su1q_u32): Likewise.
23195 (vsha256hq_u32): Likewise.
23196 (vsha256h2q_u32): Likewise.
23197 (vsha256su0q_u32): Likewise.
23198 (vsha256su1q_u32): Likewise.
23199 (vmull_p64): Likewise.
23200 (vmull_high_p64): Likewise.
23201
23202 2015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
23203
23204 * final.c (final_scan_insn): Don't check HAVE_peephole with the
23205 preprocessor.
23206 * output.h: Likewise.
23207 * genconfig.c (main): Alwways define HAVE_peephole.
23208 * genpeep.c: Don't emit checks of HAVE_peephole.
23209
23210 2015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
23211
23212 * combine.c, expmed.c, expr.c, optabs.c optabs.h, toplev.c: DOn't
23213 check HAVE_conditional_move with the preprocessor.
23214
23215 2015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
23216
23217 * genconfig.c (main): Always define HAVE_conditional_move.
23218 * combine.c, expmed.c, expr.c, ifcvt.c, optabs.c, optabs.h,
23219 toplev.c, tree-ssa-phiopt.c: Don't check if HAVE_conditional_move
23220 is defined.
23221
23222 2015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
23223
23224 * combine.c, df-problems.c, df-scan.c, emit-rtl.c, reginfo.c,
23225 reload.c, rtlanal.c: Remove comparison of ARG_FRAME_POINTER_REGNUM
23226 and FRAME_POINTER_REGNUM with the preprocessor.
23227
23228 2015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
23229
23230 * defaults.h: Add default for STACK_PUSH_CODE.
23231 * expr.c: Don't redefine STACK_PUSH_CODE.
23232 * recog.c: Likewise.
23233
23234 2015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
23235
23236 * builtins.c, dwarf2cfi.c, explow.c, expr.c, recog.c,
23237 sched-deps.c: Use if instead of preprocessor checks with
23238 STACK_GROWS_DOWNWARD.
23239
23240 2015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
23241
23242 * *.c: Check the value of STACK_GROWS_DOWNWARD rather than if it
23243 is defined.
23244 * config/**/*.h: Define STACK_GROWS_DOWNWARD to an integer.
23245 * defaults.h: Provide default for STACK_GROWS_DOWNWARD.
23246 * doc/tm.texi.in: Update references to STACK_GROWS_DOWNWARD.
23247 * doc/tm.texi: Regenerate.
23248
23249 2015-05-21 H.J. Lu <hongjiu.lu@intel.com>
23250
23251 PR target/66232
23252 * config/i386/constraints.md (Bg): New constraint for GOT memory
23253 operand.
23254 * config/i386/i386.md (*call_got_x32): New pattern.
23255 (*call_value_got_x32): Likewise.
23256 * config/i386/predicates.md (GOT_memory_operand): New predicate.
23257
23258 2015-05-21 Jakub Jelinek <jakub@redhat.com>
23259
23260 PR tree-optimization/66233
23261 * match.pd (ocvt (icvt@1 @0)): Don't handle vector types.
23262 Simplify.
23263
23264 2015-05-21 Jeff Law <law@redhat.com>
23265
23266 * config/pa/pa.md (add-with-constant splitter): Use ASHIFT rather
23267 than MULT for shadd sequences.
23268
23269 2015-05-08 Jan Hubicka <hubicka@ucw.cz>
23270
23271 * alias.c (alias_stats): New static var.
23272 (alias_sets_conflict_p, alias_sets_must_conflict_p): Update stats.
23273 (dump_alias_stats_in_alias_c): New function.
23274 * alias.h (dump_alias_stats_in_alias_c): Declare.
23275 * tree-ssa-alias.c (dump_alias_stats): Call it.
23276
23277 2015-05-08 Michael Matz <matz@suse.de>
23278
23279 * tree-vectorizer.h (struct _stmt_vec_info): Rename stride_load_p
23280 to strided_p.
23281 (STMT_VINFO_STRIDE_LOAD_P): Rename to ...
23282 (STMT_VINFO_STRIDED_P): ... this.
23283 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust.
23284 (vect_verify_datarefs_alignment): Likewise.
23285 (vect_enhance_data_refs_alignment): Likewise.
23286 (vect_analyze_data_ref_access): Likewise.
23287 (vect_analyze_data_refs): Accept strided stores.
23288 * tree-vect-stmts.c (vect_model_store_cost): Count strided stores.
23289 (vect_model_load_cost): Adjust for macro rename.
23290 (vectorizable_mask_load_store): Likewise.
23291 (vectorizable_load): Likewise.
23292 (vectorizable_store): Open code strided stores.
23293
23294 2015-05-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23295
23296 * doc/sourcebuild.texi (7.2.3.9 Other hardware attributes):
23297 Document sqrt_insn.
23298
23299 2015-05-21 Richard Biener <rguenther@suse.de>
23300
23301 PR c++/66211
23302 * match.pd: Guard pattern optimzing (int)(float)int
23303 conversions to apply only on GIMPLE.
23304
23305 2015-05-21 Jeff Law <law@redhat.com>
23306
23307 * combine.c (find_split_point): Handle ASHIFT like MULT to encourage
23308 multiply-accumulate/shift-add insn generation.
23309
23310 2015-05-21 Oleg Endo <olegendo@gcc.gnu.org>
23311
23312 PR target/54236
23313 * config/sh/sh.md (*round_int_even): Reject pattern if operands[0] and
23314 operands[1] are the same.
23315
23316 2015-05-21 Ilya Enkovich <enkovich.gnu@gmail.com>
23317
23318 PR middle-end/66221
23319 * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Use
23320 build_distinct_type_copy to copy bounds.
23321
23322 2015-05-21 Thomas Schwinge <thomas@codesourcery.com>
23323
23324 * genrecog.c (MAX_DEPTH, MIN_NUM_STATEMENTS, MAX_NUM_STATEMENTS):
23325 Change to unsigned int.
23326
23327 2015-05-20 Jeff Law <law@redhat.com>
23328
23329 * config/pa/pa.c (pa_print_operand): New 'o' output modifier.
23330 (pa_mem_shadd_constant_p): Renamed from pa_shadd_constant_p.
23331 (pa_shadd_constant_p): Allow constants for shadd insns rather
23332 than valid scaling constants for memory addresses.
23333 * config/pa/pa-protos.h (pa_mem_shadd_constant_p): Add prototype.
23334 * config/pa/predicates.md (mem_shadd_operand): New predicate.
23335 * config/pa/pa.md (shift-add insns using MULT): Use mem_shadd_operand.
23336 (shift-add insns using ASHIFT): New patterns.
23337
23338 2015-05-20 Mikhail Maltsev <maltsevm@gmail.com>
23339
23340 * bb-reorder.c (set_edge_can_fallthru_flag): Use rtx_jump_insn where
23341 feasible.
23342 (fix_up_fall_thru_edges): Likewise.
23343 (fix_crossing_conditional_branches): Likewise. Promote jump targets
23344 from to rtx_insn to rtx_code_label where feasible.
23345 * bt-load.c (move_btr_def): Remove as-a cast of the value returned by
23346 gen_move_insn (returned type changed to rtx_insn).
23347 * builtins.c (expand_errno_check): Fix arguments of
23348 do_compare_rtx_and_jump (now expects rtx_code_label).
23349 (expand_builtin_acc_on_device): Likewise.
23350 * cfgcleanup.c (try_simplify_condjump): Add cast when calling
23351 invert_jump (now exprects rtx_jump_insn).
23352 * cfgexpand.c (label_rtx_for_bb): Promote return type to rtx_code_label.
23353 (construct_init_block): Use rtx_code_label.
23354 * cfgrtl.c (block_label): Promote return type to rtx_code_label.
23355 (try_redirect_by_replacing_jump): Use cast to rtx_jump_insn when
23356 calling redirect_jump.
23357 (patch_jump_insn): Likewise.
23358 (redirect_branch_edge): Likewise.
23359 (force_nonfallthru_and_redirect): Likewise.
23360 (fixup_reorder_chain): Explicitly use rtx_jump_insn instead of rtx_insn
23361 when suitable.
23362 (rtl_lv_add_condition_to_bb): Update call of do_compare_rtx_and_jump.
23363 * cfgrtl.h: Promote return type of block_label to rtx_code_label.
23364 * config/bfin/bfin.c (hwloop_optimize): Fix call of emit_label_before.
23365 * config/i386/i386.c (ix86_emit_cmove): Explicitly use rtx_code_label
23366 to store the value retured by gen_label_rtx.
23367 * config/mips/mips.c (mips16_split_long_branches): Promote rtx_insn to
23368 rtx_jump_insn.
23369 * config/sh/sh.c (gen_far_branch): Likewise. Fix call of invert_jump.
23370 (split_branches): Fix calls of redirect_jump.
23371 * dojump.c (jumpifnot): Promote argument type from rtx to
23372 rtx_code_label.
23373 (jumpifnot_1): Likewise.
23374 (jumpif): Likewise.
23375 (jumpif_1): Likewise.
23376 (do_jump_1): Likewise.
23377 (do_jump): Likewise. Use rtx_code_label when feasible.
23378 (do_jump_by_parts_greater_rtx): Likewise.
23379 (do_jump_by_parts_zero_rtx): Likewise.
23380 (do_jump_by_parts_equality_rtx): Likewise.
23381 (do_compare_rtx_and_jump): Likewise.
23382 * dojump.h: Update function prototypes.
23383 * dse.c (emit_inc_dec_insn_before): Remove case (gen_move_insn now
23384 returns rtx_insn).
23385 * emit-rtl.c (emit_jump_insn_before_noloc): Promote return type to
23386 rtx_jump_insn.
23387 (emit_label_before): Likewise.
23388 (emit_jump_insn_after_noloc): Likewise.
23389 (emit_jump_insn_after_setloc): Likewise.
23390 (emit_jump_insn_after): Likewise
23391 (emit_jump_insn_before_setloc): Likewise.
23392 (emit_jump_insn_before): Likewise.
23393 (emit_label_before): Promote return type to rtx_code_label.
23394 (emit_label): Likewise.
23395 * except.c (sjlj_emit_dispatch_table): Use jump_target_rtx.
23396 * explow.c (emit_stack_save): Use gen_move_insn_uncast instead of
23397 gen_move_insn.
23398 (emit_stack_restore): Likewise.
23399 * expmed.c (emit_store_flag_force): Fix calls of do_compare_rtx_and_jump.
23400 (do_cmp_and_jump): Likewise.
23401 * expr.c (expand_expr_real_2): Likewise. Promote some local variables
23402 from rtx to rtx_code_label.
23403 (gen_move_insn_uncast): New function.
23404 * expr.h: Update return type of gen_move_insn (promote to rtx_insn).
23405 * function.c (convert_jumps_to_returns): Fix call of redirect_jump.
23406 * gcse.c (pre_insert_copy_insn): Use rtx_insn instead of rtx.
23407 * ifcvt.c (dead_or_predicable): Use rtx_jump_insn when calling
23408 invert_jump_1 and redirect_jump_1.
23409 * internal-fn.c (expand_arith_overflow_result_store): Fix call of
23410 do_compare_rtx_and_jump.
23411 (expand_addsub_overflow): Likewise.
23412 (expand_neg_overflow): Likewise.
23413 (expand_mul_overflow): Likewise.
23414 * ira.c (split_live_ranges_for_shrink_wrap): Use rtx_insn for
23415 return value of gen_move_insn.
23416 * jump.c (redirect_jump): Promote argument from rtx to rtx_jump_insn.
23417 * loop-doloop.c (add_test): Use rtx_code_label.
23418 (doloop_modify): Likewise.
23419 (doloop_optimize): Likewise.
23420 * loop-unroll.c (compare_and_jump_seq): Promote rtx to rtx_code_label.
23421 * lra-constraints.c (emit_spill_move): Remove cast of value returned
23422 by gen_move_insn.
23423 (inherit_reload_reg): Add cast when calling dump_insn_slim.
23424 (split_reg): Likewise.
23425 * modulo-sched.c (schedule_reg_moves): Remove cast of value returned by
23426 gen_move_insn.
23427 * optabs.c (expand_binop_directly): Remove casts of values returned by
23428 maybe_gen_insn.
23429 (expand_unop_direct): Likewise.
23430 (expand_abs): Likewise.
23431 (maybe_emit_unop_insn): Likewise.
23432 (maybe_gen_insn): Promote return type to rtx_insn.
23433 * optabs.h: Update prototype of maybe_gen_insn.
23434 * postreload-gcse.c (eliminate_partially_redundant_load): Remove
23435 redundant cast.
23436 * recog.c (struct peep2_insn_data): Promote type of insn field to
23437 rtx_insn.
23438 (peep2_reinit_state): Use NULL instead of NULL_RTX.
23439 (peep2_attempt): Remove casts of insn in peep2_insn_data.
23440 (peep2_fill_buffer): Promote argument from rtx to rtx_insn
23441 * recog.h (struct insn_gen_fn): Promote return types of function
23442 pointers and operator ().from rtx to rtx_insn.
23443 * reorg.c (fill_simple_delay_slots): Promote rtx_insn to rtx_jump_insn.
23444 (fill_eager_delay_slots): Likewise.
23445 (relax_delay_slots): Likewise.
23446 (make_return_insns): Likewise.
23447 (dbr_schedule): Likewise.
23448 (optimize_skips): Likewise.
23449 (reorg_redirect_jump): Likewise.
23450 (fill_slots_from_thread): Likewise.
23451 * reorg.h: Update prototypes.
23452 * resource.c (find_dead_or_set_registers): Use dyn_cast to
23453 rtx_jump_insn instead of check. Use it's jump_target method.
23454 * rtl.h (rtx_jump_insn::jump_label): Define new method.
23455 (rtx_jump_insn::jump_target): Define new method.
23456 (rtx_jump_insn::set_jump_target): Define new method.
23457 * rtlanal.c (tablejump_p): Promote type of one local variable.
23458 * sched-deps.c (sched_analyze_2): Promote rtx to rtx_insn_list.
23459 (sched_analyze_insn): Likewise.
23460 * sched-vis.c (print_insn_with_notes): Promote rtx to rtx_insn.
23461 (print_insn): Likewise.
23462 * stmt.c (label_rtx): Promote return type to rtx_insn.
23463 (force_label_rtx): Likewise.
23464 (jump_target_rtx): Define new function.
23465 (expand_label): Use it, get rid of one cast.
23466 (expand_naked_return): Promote rtx to rtx_code_label.
23467 (do_jump_if_equal): Fix do_compare_rtx_and_jump call.
23468 (expand_case): Use rtx_code_label instread of rtx where feasible.
23469 (expand_sjlj_dispatch_table): Likewise.
23470 (emit_case_nodes): Likewise.
23471 * stmt.h: Declare jump_target_rtx. Update prototypes. Fix comments.
23472 * store-motion.c (insert_store): Make use of new return type of
23473 gen_move_insn and remove a cast.
23474 (replace_store_insn): Likewise.
23475
23476 2015-05-20 Max Filippov <jcmvbkbc@gmail.com>
23477
23478 * config/xtensa/xtensa.c (init_alignment_context): Replace MULT
23479 by BITS_PER_UNIT with ASHIFT by exact_log2 (BITS_PER_UNIT).
23480
23481 2015-05-20 Jeff Law <law@redhat.com>
23482
23483 * tree-ssa-threadupdate.c (mark_threaded_blocks): Properly
23484 dispose of the jump thread path when the jump threading
23485 opportunity is cancelled.
23486
23487 2015-05-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
23488
23489 * diagnostic.c (diagnostic_print_caret_line): Fix off-by-one error
23490 when printing the caret character.
23491
23492 2015-05-20 Marek Polacek <polacek@redhat.com>
23493
23494 * cfgexpand.c (expand_debug_expr): Use UNARY_CLASS_P.
23495
23496 2015-05-20 Marek Polacek <polacek@redhat.com>
23497
23498 * expr.c (expand_cond_expr_using_cmove): Use COMPARISON_CLASS_P.
23499 * gimple-expr.c (gimple_cond_get_ops_from_tree): Likewise.
23500 * gimple-fold.c (canonicalize_bool): Likewise.
23501 (same_bool_result_p): Likewise.
23502 * tree-if-conv.c (parse_predicate): Likewise.
23503
23504 2015-05-20 Marek Polacek <polacek@redhat.com>
23505
23506 * gimple-fold.c (fold_const_aggregate_ref_1): Use DECL_P.
23507 * gimplify.c (gimplify_modify_expr_rhs): Likewise.
23508
23509 2015-05-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23510
23511 * config/aarch64/aarch64.c (aarch64_class_max_nregs):
23512 Use UNITS_PER_VREG and UNITS_PER_WORD instead of their direct
23513 values.
23514
23515 2015-05-20 Robert Suchanek <robert.suchanek@imgtec.com>
23516
23517 * config/mips/mips.h (micromips_globals): Declare.
23518
23519 2015-05-20 David Malcolm <dmalcolm@redhat.com>
23520
23521 * timevar.def (TV_INITIALIZE_RTL): New.
23522 * toplev.c (initialize_rtl): Use an auto_timevar to account this
23523 function's time to TV_INITIALIZE_RTL.
23524
23525 2015-05-20 Ilya Enkovich <enkovich.gnu@gmail.com>
23526
23527 * tree-chkp.c (chkp_maybe_copy_and_register_bounds): Remove useless
23528 gimple_build_nop calls.
23529 (chkp_find_bounds_for_elem): Likewise.
23530 (chkp_get_zero_bounds): Likewise.
23531 (chkp_get_none_bounds): Likewise.
23532 (chkp_get_bounds_by_definition): Likewise.
23533 (chkp_generate_extern_var_bounds): Likewise.
23534 (chkp_get_bounds_for_decl_addr): Likewise.
23535 (chkp_get_bounds_for_string_cst): Likewise.
23536
23537 2015-05-20 Bin Cheng <bin.cheng@arm.com>
23538
23539 PR tree-optimization/65447
23540 * tree-ssa-loop-ivopts.c (struct iv_use): New fields.
23541 (dump_use, dump_uses): Support to dump sub use.
23542 (record_use): New parameters to support sub use. Remove call to
23543 dump_use.
23544 (record_sub_use, record_group_use): New functions.
23545 (compute_max_addr_offset, split_all_small_groups): New functions.
23546 (group_address_uses, rewrite_use_address): New functions.
23547 (strip_offset): New declaration.
23548 (find_interesting_uses_address): Call record_group_use.
23549 (add_candidate): New assertion.
23550 (infinite_cost_p): Move definition forward.
23551 (add_costs): Check INFTY cost and return immediately.
23552 (get_computation_cost_at): Clear setup cost and dependent bitmap
23553 for sub uses.
23554 (determine_use_iv_cost_address): Compute cost for sub uses.
23555 (rewrite_use_address_1): Rename from old rewrite_use_address.
23556 (free_loop_data): Free sub uses.
23557 (tree_ssa_iv_optimize_loop): Call group_address_uses.
23558
23559 2015-05-20 Kugan Vivekanandarajah <kuganv@linaro.org>
23560 Jim Wilson <jim.wilson@linaro.org>
23561
23562 * config/arm/aarch-common-protos.h (struct mem_cost_table): Added
23563 new fields loadv and storev.
23564 * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
23565 Initialize loadv and storev.
23566 * config/arm/aarch-cost-tables.h (generic_extra_costs): Likewise.
23567 (cortexa53_extra_costs): Likewise.
23568 (cortexa57_extra_costs): Likewise.
23569 (xgene1_extra_costs): Likewise.
23570 * config/aarch64/aarch64.c (aarch64_rtx_costs): Update vector
23571 rtx_costs.
23572
23573 2015-05-20 Kugan Vivekanandarajah <kuganv@linaro.org>
23574
23575 * config/arm/arm.c (cortexa9_extra_costs): Initialize loadv and
23576 storev.
23577 (cortexa8_extra_costs): Likewise.
23578 (cortexa5_extra_costs): Likewise.
23579 (cortexa7_extra_costs): Likewise.
23580 (cortexa12_extra_costs): Likewise.
23581 (cortexa15_extra_costs): Likewise.
23582 (v7m_extra_costs): Likewise.
23583
23584 2015-05-20 Jeff Law <law@redhat.com>
23585
23586 * tree-ssa-threadupdate.c (thread_single_edge): Use delete_jump_thread
23587 instead of open-coded version. Also delete the jump thread created
23588 within this function.
23589
23590 2015-05-20 Alan Modra <amodra@gmail.com>
23591
23592 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Return
23593 stack adjusting insn. Formatting.
23594 (rs6000_emit_prologue): Track stack adjusting insn, and use of
23595 r12. If possible, emit first -fsplit-stack arg pointer insn
23596 before stack adjust. Don't use r12 to save cr if split-stack.
23597
23598 2015-05-20 Alan Modra <amodra@gmail.com>
23599
23600 * common/config/rs6000/rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK):
23601 Define.
23602 (rs6000_supports_split_stack): New function.
23603 * config/rs6000/rs6000.c (machine_function): Add
23604 split_stack_arg_pointer.
23605 (TARGET_EXTRA_LIVE_ON_ENTRY, TARGET_INTERNAL_ARG_POINTER): Define.
23606 (setup_incoming_varargs): Use crtl->args.internal_arg_pointer
23607 rather than virtual_incoming_args_rtx.
23608 (rs6000_va_start): Likewise.
23609 (split_stack_arg_pointer_used_p): New function.
23610 (rs6000_emit_prologue): Set up arg pointer for -fsplit-stack.
23611 (morestack_ref): New var.
23612 (gen_add3_const, rs6000_expand_split_stack_prologue,
23613 rs6000_internal_arg_pointer, rs6000_live_on_entry,
23614 rs6000_split_stack_space_check): New functions.
23615 (rs6000_elf_file_end): Call file_end_indicate_split_stack.
23616 * config/rs6000/rs6000.md (UNSPEC_STACK_CHECK): Define.
23617 (UNSPECV_SPLIT_STACK_RETURN): Define.
23618 (split_stack_prologue, load_split_stack_limit,
23619 load_split_stack_limit_di, load_split_stack_limit_si,
23620 split_stack_return, split_stack_space_check): New expands and insns.
23621 * config/rs6000/rs6000-protos.h
23622 (rs6000_expand_split_stack_prologue): Declare.
23623 (rs6000_split_stack_space_check): Declare.
23624
23625 2015-05-20 Alan Modra <amodra@gmail.com>
23626
23627 * config/rs6000/rs6000.c (struct rs6000_stack): Correct comments.
23628 (direct_return): Test vrsave_size rather than vrsave_mask.
23629 (rs6000_emit_prologue): Likewise. Remove redundant altivec tests.
23630 (rs6000_emit_epilogue): Likewise.
23631
23632 2015-05-20 Alan Modra <amodra@gmail.com>
23633
23634 * config/rs6000/rs6000.c (rs6000_stack_info): Don't zero offsets
23635 when not saving registers.
23636 (debug_stack_info): Adjust to omit printing unused offsets,
23637 as before.
23638 (rs6000_emit_epilogue): Adjust use_backchain_to_restore_sp
23639 expression.
23640
23641 2015-05-19 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
23642
23643 PR c++/65835
23644 * config/i386/winnt.c (struct wrapped_symbol_hasher): Change
23645 value_type to const char *.
23646
23647 2015-05-19 Sandra Loosemore <sandra@codesourcery.com>
23648
23649 * config.gcc [powerpc*-*-linux*]: Allow --enable-targets=all
23650 to build a biarch toolchain again.
23651
23652 2015-05-19 Jan Hubicka <hubicka@ucw.cz>
23653
23654 * ipa-devirt.c (type_in_anonymous_namespace_p): Return true
23655 or implicit declarations.
23656 (odr_type_p): Check that TYPE_NAME is TYPE_DECL before looking
23657 into it.
23658 (get_odr_type): Check type has linkage before adding bases.
23659 (register_odr_type): Check that type has linkage before adding it.
23660 (type_known_to_have_no_deriavations_p): Rename to ..
23661 (type_known_to_have_no_derivations_p): This one.
23662 * ipa-utils.h (type_known_to_have_no_deriavations_p): Rename to ..
23663 (type_known_to_have_no_derivations_p): This one.
23664 * ipa-polymorphic-call.c
23665 (ipa_polymorphic_call_context::restrict_to_inner_type): Check that
23666 type has linkage.
23667
23668 2015-05-19 Eric Botcazou <ebotcazou@adacore.com>
23669
23670 * stor-layout.c (finalize_type_size): Use AGGREGATE_TYPE_P.
23671 (layout_type): Use RECORD_OR_UNION_TYPE_P.
23672
23673 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23674
23675 * config/s390/s390.c (s390_vector_bool_type_p): New function.
23676 (s390_invalid_binary_op): New function.
23677 (TARGET_INVALID_BINARY_OP): Define macro.
23678
23679 2015-05-19 David Sherwood <david.sherwood@arm.com>
23680
23681 * loop-invariant.c (create_new_invariant): Don't calculate address cost
23682 if mode is not a scalar integer.
23683 (get_inv_cost): Increase computational cost for unused invariants.
23684
23685 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23686
23687 * config.gcc: Add vecintrin.h to extra_headers. Add s390-c.o to
23688 c_target_objs and cxx_target_objs. Add t-s390 to tmake_file.
23689 * config/s390/s390-builtin-types.def: New file.
23690 * config/s390/s390-builtins.def: New file.
23691 * config/s390/s390-builtins.h: New file.
23692 * config/s390/s390-c.c: New file.
23693 * config/s390/s390-modes.def: Add modes CCVEQANY, CCVH,
23694 CCVHANY, CCVHU, CCVHUANY, CCVFHANY, CCVFHEANY.
23695 * config/s390/s390-protos.h (s390_expand_vec_compare_cc)
23696 (s390_cpu_cpp_builtins, s390_register_target_pragmas): Add
23697 prototypes.
23698 * config/s390/s390.c (s390-builtins.h, s390-builtins.def):
23699 Include.
23700 (flags_builtin, flags_overloaded_builtin_var, s390_builtin_types)
23701 (s390_builtin_fn_types, s390_builtin_decls, code_for_builtin): New
23702 variable definitions.
23703 (s390_const_operand_ok): New function.
23704 (s390_expand_builtin): Rewrite.
23705 (s390_init_builtins): New function.
23706 (s390_handle_vectorbool_attribute): New function.
23707 (s390_attribute_table): Add s390_vector_bool attribute.
23708 (s390_match_ccmode_set): Handle new cc modes CCVH, CCVHU.
23709 (s390_branch_condition_mask): Generate masks for new modes.
23710 (s390_expand_vec_compare_cc): New function.
23711 (s390_mangle_type): Add mangling for vector bool types.
23712 (enum s390_builtin): Remove.
23713 (s390_atomic_assign_expand_fenv): Rename constants for sfpc and
23714 efpc builtins.
23715 * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Call
23716 s390_cpu_cpp_builtins.
23717 (REGISTER_TARGET_PRAGMAS): New macro.
23718 * config/s390/s390.md: Define more UNSPEC_VEC_* constants.
23719 (insn_cmp mode attribute): Add new CC modes.
23720 (s390_sfpc, s390_efpc): Rename patterns to sfpc and efpc.
23721 (lcbb): New pattern definition.
23722 * config/s390/s390intrin.h: Include vecintrin.h.
23723 * config/s390/t-s390: New file.
23724 * config/s390/vecintrin.h: New file.
23725 * config/s390/vector.md: Include vx-builtins.md.
23726 * config/s390/vx-builtins.md: New file.S/390 zvector builtin
23727 support.
23728
23729 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23730
23731 * config/s390/s390-modes.def: Add new modes CCVEQ, CCVFH, and
23732 CCVFHE.
23733 * config/s390/s390.c (s390_match_ccmode_set): Handle new modes.
23734 (s390_select_ccmode): Likewise.
23735 (s390_canonicalize_comparison): Swap operands if necessary.
23736 (s390_expand_vec_compare_scalar): Expand DFmode compare using
23737 single element vector instructions.
23738 (s390_emit_compare): Call s390_expand_vec_compare_scalar.
23739 (s390_branch_condition_mask): Generate CC masks for the new modes.
23740 * config/s390/s390.md (v0, vf, vd): New mode attributes.
23741 (VFCMP, asm_fcmp, insn_cmp): New mode iterator and attributes.
23742 (*vec_cmp<insn_cmp>df_cconly, *fixuns_truncdfdi2_z13)
23743 (*fix_trunc<BFP:mode><GPR:mode>2_bfp, *floatunsdidf2_z13)
23744 (*floatuns<GPR:mode><FP:mode>2, *extendsfdf2_z13)
23745 (*extend<DSF:mode><BFP:mode>2): New insn definition.
23746 (fix_trunc<BFP:mode><GPR:mode>2_bfp, loatuns<GPR:mode><FP:mode>2)
23747 (extend<DSF:mode><BFP:mode>2): Turn into expander.
23748 (floatdi<mode>2, truncdfsf2, add<mode>3, sub<mode>3, mul<mode>3)
23749 (div<mode>3, *neg<mode>2, *abs<mode>2, *negabs<mode>2)
23750 (sqrt<mode>2): Add vector instruction.
23751
23752 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23753
23754 * config/s390/constraints.md (j00, jm1, jxx, jyy, v): New
23755 constraints.
23756 * config/s390/predicates.md (const0_operand, constm1_operand)
23757 (constable_operand): Accept vector operands.
23758 * config/s390/s390-modes.def: Add supported vector modes.
23759 * config/s390/s390-protos.h (s390_cannot_change_mode_class)
23760 (s390_function_arg_vector, s390_contiguous_bitmask_vector_p)
23761 (s390_bytemask_vector_p, s390_expand_vec_strlen)
23762 (s390_expand_vec_compare, s390_expand_vcond)
23763 (s390_expand_vec_init): Add prototypes.
23764 * config/s390/s390.c (VEC_ARG_NUM_REG): New macro.
23765 (s390_vector_mode_supported_p): New function.
23766 (s390_contiguous_bitmask_p): Mask out the irrelevant bits.
23767 (s390_contiguous_bitmask_vector_p): New function.
23768 (s390_bytemask_vector_p): New function.
23769 (s390_split_ok_p): Vector regs don't work either.
23770 (regclass_map): Add VEC_REGS.
23771 (s390_legitimate_constant_p): Handle vector constants.
23772 (s390_cannot_force_const_mem): Handle CONST_VECTOR.
23773 (legitimate_reload_vector_constant_p): New function.
23774 (s390_preferred_reload_class): Handle CONST_VECTOR.
23775 (s390_reload_symref_address): Likewise.
23776 (s390_secondary_reload): Vector memory instructions only support
23777 short displacements. Rename reload*_nonoffmem* to reload*_la*.
23778 (s390_emit_ccraw_jump): New function.
23779 (s390_expand_vec_strlen): New function.
23780 (s390_expand_vec_compare): New function.
23781 (s390_expand_vcond): New function.
23782 (s390_expand_vec_init): New function.
23783 (s390_dwarf_frame_reg_mode): New function.
23784 (print_operand): Handle addresses with 'O' and 'R' constraints.
23785 (NR_C_MODES, constant_modes): Add vector modes.
23786 (s390_output_pool_entry): Handle vector constants.
23787 (s390_hard_regno_mode_ok): Handle vector registers.
23788 (s390_class_max_nregs): Likewise.
23789 (s390_cannot_change_mode_class): New function.
23790 (s390_invalid_arg_for_unprototyped_fn): New function.
23791 (s390_function_arg_vector): New function.
23792 (s390_function_arg_float): Remove size variable.
23793 (s390_pass_by_reference): Handle vector arguments.
23794 (s390_function_arg_advance): Likewise.
23795 (s390_function_arg): Likewise.
23796 (s390_return_in_memory): Vector values are returned in a VR if
23797 possible.
23798 (s390_function_and_libcall_value): Handle vector arguments.
23799 (s390_gimplify_va_arg): Likewise.
23800 (s390_call_saved_register_used): Consider the arguments named.
23801 (s390_conditional_register_usage): Disable v16-v31 for non-vec
23802 targets.
23803 (s390_preferred_simd_mode): New function.
23804 (s390_support_vector_misalignment): New function.
23805 (s390_vector_alignment): New function.
23806 (TARGET_STRICT_ARGUMENT_NAMING, TARGET_DWARF_FRAME_REG_MODE)
23807 (TARGET_VECTOR_MODE_SUPPORTED_P)
23808 (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN)
23809 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
23810 (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT)
23811 (TARGET_VECTOR_ALIGNMENT): Define target macro.
23812 * config/s390/s390.h (FUNCTION_ARG_PADDING): Define macro.
23813 (FIRST_PSEUDO_REGISTER): Increase value.
23814 (VECTOR_NOFP_REGNO_P, VECTOR_REGNO_P, VECTOR_NOFP_REG_P)
23815 (VECTOR_REG_P): Define macros.
23816 (FIXED_REGISTERS, CALL_USED_REGISTERS)
23817 (CALL_REALLY_USED_REGISTERS, REG_ALLOC_ORDER)
23818 (HARD_REGNO_CALL_PART_CLOBBERED, REG_CLASS_NAMES)
23819 (FUNCTION_ARG_REGNO_P, FUNCTION_VALUE_REGNO_P, REGISTER_NAMES):
23820 Add vector registers.
23821 (CANNOT_CHANGE_MODE_CLASS): Call C function.
23822 (enum reg_class): Add VEC_REGS, ADDR_VEC_REGS, GENERAL_VEC_REGS.
23823 (SECONDARY_MEMORY_NEEDED): Allow SF<->SI mode moves without
23824 memory.
23825 (DBX_REGISTER_NUMBER, FIRST_VEC_ARG_REGNO, LAST_VEC_ARG_REGNO)
23826 (SHORT_DISP_IN_RANGE, VECTOR_STORE_FLAG_VALUE): Define macro.
23827 * config/s390/s390.md (UNSPEC_VEC_*): New constants.
23828 (VR*_REGNUM): New constants.
23829 (ALL): New mode iterator.
23830 (INTALL): Remove mode iterator.
23831 Include vector.md.
23832 (movti): Implement TImode moves for VRs.
23833 Disable TImode splitter for VR targets.
23834 Implement splitting TImode GPR<->VR moves.
23835 (reload*_tomem_z10, reload*_toreg_z10): Replace INTALL with ALL.
23836 (reload<mode>_nonoffmem_in, reload<mode>_nonoffmem_out): Rename to
23837 reload<mode>_la_in, reload<mode>_la_out.
23838 (*movdi_64, *movsi_zarch, *movhi, *movqi, *mov<mode>_64dfp)
23839 (*mov<mode>_64, *mov<mode>_31): Add vector instructions.
23840 (TD/TF mode splitter): Enable for GPRs only (formerly !FP).
23841 (mov<mode> SF SD): Prefer lder, lde for loading.
23842 Add lrl and strl instructions.
23843 Add vector instructions.
23844 (strlen<mode>): Rename old strlen<mode> to strlen_srst<mode>.
23845 Call s390_expand_vec_strlen on z13.
23846 (*cc_to_int): Change predicate to nonimmediate_operand.
23847 (addti3): Rename to *addti3. New expander.
23848 (subti3): Rename to *subti3. New expander.
23849 * config/s390/vector.md: New file.
23850
23851 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23852
23853 * common/config/s390/s390-common.c (processor_flags_table): Add
23854 z13.
23855 * config.gcc: Add z13.
23856 * config/s390/s390-opts.h (enum processor_type): Add
23857 PROCESSOR_2964_Z13.
23858 * config/s390/s390.c (s390_adjust_priority): Check for
23859 PROCESSOR_2964_Z13.
23860 (s390_reorg): Likewise.
23861 (s390_sched_reorder): Likewise.
23862 (s390_sched_variable_issue): Likewise.
23863 (s390_loop_unroll_adjust): Likewise.
23864 (s390_option_override): Likewise. Default to -mvx when available.
23865 * config/s390/s390.h (enum processor_flags): Add PF_Z13 and PF_VX.
23866 (TARGET_CPU_Z13, TARGET_CPU_VX, TARGET_Z13, TARGET_VX)
23867 (TARGET_VX_ABI): Define macros.
23868 macros.
23869 (TARGET_DEFAULT): Add MASK_OPT_VX.
23870 * config/s390/s390.md ("cpu" attribute): Add z13.
23871 ("cpu_facility" attribute): Add vec.
23872 * config/s390/s390.opt (processor_type): Add z13.
23873 (mvx): New options.
23874 * doc/invoke.texi: Add z13 option for -march.
23875
23876 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23877
23878 * config/s390/predicates.md (shift_count_or_setmem_operand): Add
23879 mode check to make sure that only scalar integer values are
23880 accepted.
23881
23882 2015-05-19 Jan Hubicka <hubicka@ucw.cz>
23883
23884 * tree.c (verify_type_variant): Fix #undef.
23885 (gimple_canonical_types_compatible_p): Move here from lto.c
23886 (verify_type): Verify TYPE_CANONICAL compatibility.
23887 * tree.h (gimple_canonical_types_compatible_p): Declare.
23888
23889 2015-05-19 Jakub Jelinek <jakub@redhat.com>
23890
23891 PR middle-end/66199
23892 * tree.h (OMP_TEAMS_COMBINED): Define.
23893 * gimplify.c (enum gimplify_omp_var_data): Add
23894 GOVD_LINEAR_LASTPRIVATE_NO_OUTER.
23895 (enum omp_region_type): Add ORT_COMBINED_TEAMS.
23896 (omp_notice_variable): Accept both ORT_TEAMS
23897 and ORT_COMBINED_TEAMS. Don't recurse if
23898 GOVD_LINEAR_LASTPRIVATE_NO_OUTER is set and either
23899 GOVD_LINEAR is set, or GOVD_LASTPRIVATE without
23900 GOVD_FIRSTPRIVATE.
23901 (omp_no_lastprivate): New function.
23902 (gimplify_scan_omp_clauses): For OMP_CLAUSE_LASTPRIVATE
23903 and OMP_CLAUSE_LINEAR, if omp_no_lastprivate, don't
23904 notice_outer and set appropriate bits, otherwise make
23905 sure default(none) combined constructs won't complain.
23906 (gimplify_adjust_omp_clauses): Remove OMP_CLAUSE_LINEAR
23907 outer special casing, for OMP_CLAUSE_LASTPRIVATE if
23908 omp_no_lastprivate either remove the clause or turn it
23909 into OMP_CLAUSE_PRIVATE.
23910 (gimplify_omp_for): Fix up handling of implicit
23911 lastprivate or linear iterators.
23912 (gimplify_omp_workshare): For OMP_TEAMS_COMBINED use
23913 ORT_COMBINED_TEAMS.
23914 * omp-low.c (lower_omp_for_lastprivate): For combined
23915 for simd use fd.loop.n2 from the for rather than simd.
23916
23917 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
23918
23919 * config/cris/cris.c (cris_expand_prologue): Use gen_raw_REG
23920 instead of gen_rtx_raw_REG.
23921 (cris_expand_epilogue): Likewise.
23922 * config/microblaze/microblaze.c (microblaze_classify_address):
23923 Likewise.
23924 * config/sparc/sparc.md: Likewise.
23925
23926 2015-05-19 Uros Bizjak <ubizjak@gmail.com>
23927
23928 * config/alpha/alpha.c (alpha_legitimize_reload_address)
23929 (alpha_preferred_reload_class, alpha_legitimate_constant_p): Use
23930 CONST_INT_P, CONST_SCALAR_INT_P and CONST_DOUBLE_P predicates.
23931 (alpha_split_reload_pair) <case CONST_INT, case CONST_WIDE_INT>:
23932 Use CASE_CONST_SCALAR_INT.
23933 (print_operand) <case 'M'>: Use mode_width_operand to check the
23934 value of the constant.
23935 * config/alpha/alpha.md (movti): Use CONST_SCALAR_INT_P predicate.
23936 * config/alpha/predicates.md (input_operand): Use general_operand
23937 instead of match_code as operand check.
23938 (symbolic_operand): Use match_code with subexpression digits.
23939 * config/alpha/constraints.md (Q): Ditto.
23940
23941 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23942
23943 * optabs.c (expand_vec_perm): Don't re-use SEL as target operand.
23944
23945 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23946
23947 * config/s390/s390.c (s390_secondary_reload): Fix check for
23948 load/store relative.
23949
23950 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
23951
23952 * recog.h: Increase MAX_RECOG_ALTERNATIVES. Change type of
23953 alternative_mask to uint64_t.
23954
23955 2015-05-19 Jakub Jelinek <jakub@redhat.com>
23956
23957 PR tree-optimization/66187
23958 * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
23959 Pass TYPE_SIGN to tree_int_cst_min_precision. If
23960 !TYPE_OVERFLOW_WRAPS, ensure @4 is non-negative.
23961
23962 2015-05-19 David Malcolm <dmalcolm@redhat.com>
23963
23964 * diagnostic.c (diagnostic_report_current_module): Strengthen
23965 local "new_map" from const line_map * to
23966 const line_map_ordinary *.
23967 * genmatch.c (error_cb): Likewise for local "map".
23968 (output_line_directive): Likewise for local "map".
23969 * input.c (expand_location_1): Likewise for local "map".
23970 Pass NULL rather than &map to
23971 linemap_unwind_to_first_non_reserved_loc, since the value is never
23972 read from there, and the value written back not read from here.
23973 (is_location_from_builtin_token): Strengthen local "map" from
23974 const line_map * to const line_map_ordinary *.
23975 (dump_location_info): Strengthen locals "map" from
23976 line_map *, one to const line_map_ordinary *, the other
23977 to const line_map_macro *.
23978 * tree-diagnostic.c (loc_map_pair): Strengthen field "map" from
23979 const line_map * to const line_map_macro *.
23980 (maybe_unwind_expanded_macro_loc): Add a call to
23981 linemap_check_macro when writing to the "map" field of the
23982 loc_map_pair.
23983 Introduce local const line_map_ordinary * "ord_map", using it in
23984 place of "map" in the part of the function where we know we have
23985 an ordinary map. Strengthen local "m" from const line_map * to
23986 const line_map_ordinary *.
23987
23988 2015-05-19 Nick Clifton <nickc@redhat.com>
23989
23990 PR target/66156
23991 * config/msp430/msp430.md (zero_extendhisi2): Add support for
23992 separate source and destination registers.
23993
23994 2015-05-19 Richard Biener <rguenther@suse.de>
23995
23996 PR tree-optimization/66165
23997 * tree-vect-slp.c (vect_supported_load_permutation_p): Add guard
23998 for no load permutation.
23999
24000 PR tree-optimization/66185
24001 * tree-vect-slp.c (vect_build_slp_tree): Properly roll back
24002 when building the SLP node from scalars.
24003
24004 2015-05-19 Eric Botcazou <ebotcazou@adacore.com>
24005 Tristan Gingold <gingold@adacore.com>
24006
24007 * insn-notes.def (UPDATE_SJLJ_CONTEXT): New note.
24008 * builtins.c (expand_builtin_update_setjmp_buf): Make global.
24009 (expand_stack_restore): Call record_new_stack_level.
24010 (expand_stack_save): Do not call do_pending_stack_adjust.
24011 * builtins.h (expand_builtin_update_setjmp_buf): Declare.
24012 * calls.c (expand_call): Call record_new_stack_level for alloca.
24013 * except.c (sjlj_mark_call_sites): Expand builtin_update_setjmp_buf
24014 wherever a NOTE_INSN_UPDATE_SJLJ_CONTEXT note is present.
24015 (update_sjlj_context): New global function.
24016 * except.h (update_sjlj_context): Declare.
24017 * explow.c (record_new_stack_level): New global function.
24018 (allocate_dynamic_stack_space): Call record_new_stack_level.
24019 * explow.h (record_new_stack_level): Declare.
24020 * final.c (final_scan_insn): Deal with NOTE_INSN_UPDATE_SJLJ_CONTEXT.
24021 * cfgrtl.c (duplicate_insn_chain): Likewise.
24022
24023 2015-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24024
24025 * calls.c: Always define STACK_GROWS_DOWNWARD as 0 or 1.
24026 (mem_overlaps_already_clobbered_arg_p): Rewrite ifdef
24027 STACK_GROWS_DOWNWARD as normal if.
24028 (expand_call): Likewise.
24029
24030 2015-05-19 Oleg Endo <olegendo@gcc.gnu.org>
24031
24032 PR target/54236
24033 * config/sh/sh.md (*round_int_even): New insn_and_split and
24034 accompanying new unnamed split.
24035
24036 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
24037
24038 * bitmap.c (bitmap_set_range): Handle count==1 specially.
24039 (bitmap_clear_range): Likewise.
24040 * cfgcleanup.c (mark_effect): Use bitmap_clear_range and
24041 bitmap_set_range unconditionally.
24042 * df-problems.c (df_simulate_one_insn_forwards): Likewise.
24043 * df-scan.c (df_mark_reg): Likewise.
24044 * haifa-sched.c (setup_ref_regs): Likewise.
24045 * sched-rgn.c (update_live_1): Likewise.
24046
24047 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
24048
24049 * regs.h (END_HARD_REGNO): Delete.
24050 (END_REGNO): Move to...
24051 * rtl.h: ...here.
24052 * bt-load.c (note_btr_set): Use END_REGNO instead of END_HARD_REGNO.
24053 * caller-save.c (mark_set_regs): Likewise.
24054 * combine.c (move_deaths, distribute_notes): Likewise.
24055 * cse.c (invalidate, invalidate_for_call): Likewise.
24056 * df-scan.c (df_ref_record): Likewise.
24057 * postreload-gcse.c (reg_changed_after_insn_p): Likewise.
24058 (record_last_reg_set_info): Likewise.
24059 * reg-stack.c (convert_regs_exit): Likewise.
24060 * reload.c (reg_overlap_mentioned_for_reload_p): Likewise.
24061 * resource.c (update_live_status): Likewise.
24062 * rtlanal.c (find_reg_fusage, find_regno_fusage): Likewise.
24063
24064 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
24065
24066 * rtl.h (reg_info): Add an nregs field.
24067 (REG_NREGS): Use it.
24068 (SET_REGNO_RAW): Delete.
24069 (set_regno_raw): New function.
24070 * regs.h (END_HARD_REGNO): Make equivalent to END_REGNO.
24071 (END_REGNO): Redefine in terms of REG_NREGS.
24072 * read-rtl.c (read_rtx_code): Call set_regno_raw instead of
24073 SET_REGNO_RAW.
24074 * emit-rtl.c (set_mode_and_regno): Likewise.
24075 * df-scan.c (df_ref_change_reg_with_loc): Use set_mode_and_regno
24076 instead of SET_REGNO_RAW.
24077
24078 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
24079
24080 * rtl.h (PUT_MODE_RAW): New macro.
24081 (PUT_REG_NOTE_KIND): Use it.
24082 (set_mode_and_regno): Declare.
24083 (gen_raw_REG): Change regno to "unsigned int".
24084 (gen_rtx_REG): Change "unsigned" to "unsigned int".
24085 (PUT_MODE): Forward to PUT_MODE_RAW for generators, otherwise
24086 use set_mode_and_regno to change the mode of registers.
24087 * gengenrtl.c (gendef): Use PUT_MODE_RAW.
24088 * emit-rtl.c (set_mode_and_regno): New function.
24089 (gen_raw_REG): Change regno to unsigned int. Use set_mode_and_regno.
24090 * caller-save.c (reg_save_code): Use set_mode_and_regno.
24091 * expr.c (init_expr_target): Likewise.
24092 * ira.c (setup_prohibited_mode_move_regs): Likewise.
24093 * postreload.c (reload_cse_simplify_operands): Likewise.
24094
24095 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
24096
24097 * caller-save.c (init_caller_save): Use word_mode and
24098 FIRST_PSEUDO_REGISTER when creating temporary rtxes.
24099 * expr.c (init_expr_target): Likewise.
24100 * ira.c (setup_prohibited_mode_move_regs): Likewise.
24101 * postreload.c (reload_cse_regs_1): Likewise.
24102
24103 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
24104
24105 * rtl.def (REG): Change format to "r".
24106 * rtl.h (rtunion): Remove rt_reg.
24107 (reg_info): New structure.
24108 (rtx_def): Add reg field to main union.
24109 (X0REGATTR): Delete.
24110 (REG_CHECK): New macro.
24111 (SET_REGNO_RAW, rhs_regno, REG_ATTRS): Use it.
24112 * rtl.c (rtx_format): Document "r".
24113 (rtx_code_size): Handle REG specially.
24114 * gengenrtl.c (special_format): Return true for formats
24115 that include 'r'.
24116 * gengtype.c (adjust_field_rtx_def): Handle 'r' fields.
24117 Deal with REG_ATTRS after the field loop.
24118 * emit-rtl.c (gen_raw_REG): Call rtx_alloc_stat directly.
24119 * expmed.c (init_expmed): Call gen_raw_REG instead of
24120 gen_rtx_raw_REG.
24121 * expr.c (init_expr_target): Likewise.
24122 * regcprop.c (maybe_mode_change): Likewise.
24123 * varasm.c (make_decl_rtl): Likewise.
24124 * final.c (leaf_renumber_regs_insn): Return early after
24125 handling REGs.
24126 * genemit.c (gen_exp): Handle 'r' fields.
24127 * genpeep.c (match_rtx): Likewise.
24128 * gensupport.c (subst_pattern_match): Likewise.
24129 (get_alternatives_number, collect_insn_data, alter_predicate_for_insn)
24130 (alter_constraints, subst_dup): Likewise.
24131 * read-rtl.c (read_rtx_code): Likewise.
24132 * print-rtl.c (print_rtx): Likewise.
24133 * genrecog.c (find_operand, find_matching_operand): Likewise.
24134 (validate_pattern, match_pattern_2): Likewise.
24135 (parameter::UINT, rtx_test::REGNO_FIELD): New enum values.
24136 (rtx_test::regno_field): New function.
24137 (operator ==, safe_to_hoist_p, transition_parameter_type)
24138 (parameter_type_string, print_parameter_value)
24139 (print_nonbool_test, print_test): Handle new enum values.
24140 * cselib.c (rtx_equal_for_cselib_1): Handle REG specially.
24141 * lra-constraints.c (operands_match_p): Likewise.
24142
24143 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
24144
24145 * df.h (df_ref_change_reg_with_loc): Remove old_regno parameter.
24146 Change type of new_regno to unsigned int.
24147 * df-scan.c (df_ref_change_reg_with_loc_1): Change type of
24148 new_regno to unsigned int.
24149 (df_ref_change_reg_with_loc): Remove old_regno parameter.
24150 Change type of new_regno to unsigned int. Use SET_REGNO_RAW.
24151 * rtl.h (SET_REGNO): Update call to df_ref_change_reg_with_loc.
24152 (SET_REGNO_RAW): Add space after ",".
24153
24154 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
24155
24156 * rtl.h (REG_NREGS): New macro
24157 * alias.c (record_set): Use it.
24158 * cfgcleanup.c (mark_effect): Likewise.
24159 * combine.c (likely_spilled_retval_1): Likewise.
24160 (likely_spilled_retval_p, can_change_dest_mode): Likewise.
24161 (move_deaths, distribute_notes): Likewise.
24162 * cselib.c (cselib_record_set): Likewise.
24163 * df-problems.c (df_simulate_one_insn_forwards): Likewise.
24164 * df-scan.c (df_mark_reg): Likewise.
24165 * dse.c (look_for_hardregs): Likewise.
24166 * dwarf2out.c (reg_loc_descriptor): Likewise.
24167 (multiple_reg_loc_descriptor): Likewise.
24168 * expr.c (write_complex_part, read_complex_part): Likewise.
24169 (emit_move_complex): Likewise.
24170 * haifa-sched.c (setup_ref_regs): Likewise.
24171 * ira-lives.c (mark_hard_reg_live): Likewise.
24172 * lra.c (lra_set_insn_recog_data): Likewise.
24173 * mode-switching.c (create_pre_exit): Likewise.
24174 * postreload.c (reload_combine_recognize_const_pattern): Likewise.
24175 (reload_combine_recognize_pattern): Likewise.
24176 (reload_combine_note_use, move2add_record_mode): Likewise.
24177 (reload_cse_move2add): Likewise.
24178 * reg-stack.c (subst_stack_regs_pat): Likewise.
24179 * regcprop.c (kill_value, copy_value): Likewise.
24180 (copyprop_hardreg_forward_1): Likewise.
24181 * regrename.c (verify_reg_in_set, scan_rtx_reg): Likewise.
24182 (build_def_use): Likewise.
24183 * sched-deps.c (mark_insn_reg_birth, mark_reg_death): Likewise.
24184 (deps_analyze_insn): Likewise.
24185 * sched-rgn.c (check_live_1, update_live_1): Likewise.
24186 * sel-sched.c (count_occurrences_equiv): Likewise.
24187 * valtrack.c (dead_debug_insert_temp): Likewise.
24188
24189 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
24190
24191 * cfgcleanup.c (mentions_nonequal_regs): Use END_REGNO.
24192 * dse.c (note_add_store): Likewise.
24193 * ira-lives.c (mark_hard_reg_dead): Likewise.
24194 * loop-invariant.c (mark_reg_store): Likewise.
24195 (mark_reg_death): Likewise.
24196 * postreload.c (reload_combine): Likewise.
24197 (reload_combine_note_store): Likewise.
24198 (reload_combine_note_use): Likewise.
24199 * recog.c (peep2_reg_dead_p): Likewise.
24200
24201 2015-05-19 Alan Modra <amodra@gmail.com>
24202
24203 * config/rs6000/predicates.md (gpc_reg_operand): Don't allow all
24204 hard registers numbered greater or equal to ARG_POINTER_REGNUM.
24205 (reg_or_neg_short_operand, fix_trunc_dest_operand): Delete
24206 unused predicates.
24207 * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*):
24208 Use altivec_register_operand. Make insn predicate TARGET_ALTIVEC.
24209 * config/rs6000/rs6000.md (extzvdi_internal2): Use cc_reg_operand.
24210 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Expand comment.
24211
24212 2015-05-19 Sameera Deshpande <Sameera.Deshpande@imgtec.com>
24213
24214 * config/mips/mips.md (JOIN_MODE): New mode iterator.
24215 (join2_load_Store<JOIN_MODE:mode>): New pattern.
24216 (join2_loadhi): Likewise.
24217 (define_peehole2): Add peephole2 patterns to join 2 HI/SI/SF/DF-mode
24218 load-load and store-stores.
24219 * config/mips/mips.opt (mload-store-pairs): New option.
24220 (TARGET_LOAD_STORE_PAIRS): New macro.
24221 * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Likewise.
24222 * config/mips/mips-protos.h (mips_load_store_bonding_p): New prototype.
24223 * config/mips/mips.c (mips_load_store_bonding_p): New function.
24224
24225 2015-05-19 Mikhail Maltsev <maltsevm@gmail.com>
24226
24227 * bb-reorder.c (fix_up_fall_thru_edges): Use std::swap instead of
24228 explicit swaps.
24229 * dojump.c (do_compare_rtx_and_jump): Likewise.
24230 * expmed.c (emit_store_flag_1): Likewise.
24231 * fibonacci_heap.h (fibonacci_heap::union_with): Likewise.
24232 * final.c (sprint_ul): Use std::reverse for reversing a string.
24233 * fold-const.c (extract_muldiv_1): Use std::swap.
24234 * genmodes.c (emit_mode_int_n): Likewise.
24235 * ifcvt.c (dead_or_predicable): Likewise.
24236 * ira-build.c (ira_merge_live_ranges): Likewise.
24237 (swap_allocno_copy_ends_if_necessary): Likewise.
24238 * ira.c (ira_setup_alts): Likewise.
24239 * loop-iv.c (iv_analyze_expr): Likewise.
24240 (implies_p): Likewise.
24241 (canon_condition): Likewise.
24242 * lra-constraints.c (swap_operands): Likewise.
24243 * lra-lives.c (lra_merge_live_ranges): Likewise.
24244 * omega.c (swap): Remove.
24245 (bswap): Remove.
24246 (omega_unprotect_1): Use std::swap.
24247 (omega_solve_geq): Likewise.
24248 * optabs.c (expand_binop_directly): Likewise.
24249 (expand_binop): Likewise.
24250 (emit_conditional_move): Likewise.
24251 (emit_conditional_add): Likewise.
24252 * postreload.c (reload_cse_simplify_operands): Likewise.
24253 * reg-stack.c (emit_swap_insn): Likewise.
24254 (swap_to_top): Likewise.
24255 (compare_for_stack_reg): Likewise.
24256 (subst_asm_stack_regs): Likewise.
24257 * reload.c (find_reloads): Likewise.
24258 * reload1.c (gen_reload_chain_without_interm_reg_p): Likewise.
24259 * sel-sched.c (invoke_reorder_hooks): Likewise.
24260 (create_block_for_bookkeeping): Likewise.
24261 * tree-data-ref.c (lambda_matrix_row_exchange): Remove.
24262 (lambda_matrix_right_hermite): Use std::swap.
24263 * tree-ssa-coalesce.c (sort_coalesce_list): Likewise.
24264 * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
24265 * tree-ssa-loop-ivopts.c (iv_ca_delta_reverse): Likewise.
24266 * tree-ssa-math-opts.c (is_widening_mult_p): Likewise.
24267 * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
24268 * tree-ssa-reassoc.c (linearize_expr_tree): Likewise.
24269 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
24270 * tree-vrp.c (compare_ranges): Likewise.
24271 * var-tracking.c (add_with_sets): Likewise.
24272 (vt_find_locations): Likewise.
24273
24274 2015-05-18 Andreas Tobler <andreast@gcc.gnu.org>
24275
24276 * config/freebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build
24277 pie executables.
24278 (FBSD_ENDFILE_SPEC): Likewise.
24279 * config/i386/freebsd.h (STARTFILE_SPEC): Remove and use the one from
24280 config/freebsd-spec.h.
24281 (ENDFILE_SPEC): Likewise.
24282
24283 2015-05-18 Uros Bizjak <ubizjak@gmail.com>
24284 Richard Henderson <rth@redhat.com>
24285
24286 PR target/57032
24287 * config/alpha/constraints.md (Q): Rewrite as define_memory_constraint.
24288 Check for a memory location that is not a reference (using an AND)
24289 to an unaligned location here.
24290 * config/alpha/predicates.md (normal_memory_operand): Remove.
24291
24292 2015-05-18 Alex Velenko <Alex.Velenko@arm.com>
24293
24294 * config/arm/arm.md (andsi_not_shiftsi_si_scc): New pattern.
24295 (andsi_not_shiftsi_si_scc_no_reuse): New pattern.
24296
24297 2015-05-18 Robert Suchanek <robert.suchanek@imgtec.com>
24298
24299 * config/mips/mips.c (micromips_globals): New variable.
24300 (mips_set_compression_mode): Save and reinitialize target-dependent
24301 state for microMIPS.
24302
24303 2015-05-18 Martin Liska <mliska@suse.cz>
24304
24305 * dbgcnt.def: Add new counter.
24306 * ipa-icf.c (sem_item_optimizer::merge_classes): Use the counter.
24307
24308 2015-05-18 Martin Liska <mliska@suse.cz>
24309
24310 * dbgcnt.def: Sort counters.
24311 * opts.c (common_handle_option): Do not compile if
24312 -fdbg-cnt-list is enabled.
24313
24314 2015-05-18 Tom de Vries <tom@codesourcery.com>
24315
24316 * gimplify.c (gimplify_modify_expr): Remove do_deref handling.
24317 (gimplify_va_arg_expr): Remove do_deref handling. Remove adding of
24318 address operator to va_list operand.
24319 * tree-stdarg.c (expand_ifn_va_arg_1): Do deref of va_list operand
24320 unconditionally.
24321 * config/i386/i386.c (ix86_gimplify_va_arg): Remove deref on va_list
24322 operand.
24323 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Same.
24324 * config/s390/s390.c (s390_gimplify_va_arg): Same.
24325 * config/spu/spu.c (spu_gimplify_va_arg_expr): Same.
24326
24327 2015-05-18 Tom de Vries <tom@codesourcery.com>
24328
24329 * tree-ssa-tail-merge.c: Fix whitespace.
24330
24331 2015-05-17 Jim Wilson <jim.wilson@linaro.org>
24332
24333 * doc/invoke.texi (ARM Options, mtune): Add generic-armv7-a,
24334 cortex-a17, and cortex-a17.cortex-a7.
24335
24336 2015-05-17 Oleg Endo <olegendo@gcc.gnu.org>
24337
24338 PR target/54236
24339 * config/sh/sh.md (*addc_2r_t): Use ashift instead of mult.
24340
24341 2015-05-17 Uros Bizjak <ubizjak@gmail.com>
24342
24343 PR target/66174
24344 * config/i386/i386.c (expand_vec_perm_blend): Enable HImode and
24345 QImode inner modes for TARGET_AVX512BW. Force mask operand
24346 to a register for AVX512F modes.
24347
24348 2015-05-16 Jan Hubicka <hubicka@ucw.cz>
24349
24350 * toplev.c (emit_debug_global_declarations): Do not output debug info
24351 when doing slim LTO objects.
24352
24353 2015-05-16 Jan Hubicka <hubicka@ucw.cz>
24354
24355 * ipa-utils.h (warn_types_mismatch, odr_or_derived_type_p,
24356 odr_types_equivalent_p): Declare.
24357 (odr_type_p): Use gcc_checking_assert.
24358 (type_in_anonymous_namespace_p) Declare.
24359 (type_with_linkage_p): Declare.
24360 * common.opt (Wlto-type-mismatch): New warning.
24361 * ipa-devirt.c (compound_type_base): New function.
24362 (odr_or_derived_type_p): New function.
24363 (odr_types_equivalent_p): New function.
24364 (add_type_duplicate): Simplify.
24365 (type_with_linkage_p): Add hack to prevent false positives on C types
24366 (type_in_anonymous_namespace_p): Likewise.
24367 * tree.c (need_assembler_name_p): Use type_with_linkage.
24368 * tree.h (type_in_anonymous_namespace_p): Remove.
24369 * doc/invoke.texi (-Wlto-type-mismatch): Document
24370
24371 2015-05-16 Jan Hubicka <hubicka@ucw.cz>
24372
24373 * tree.c (verify_type_variant): Verify tree_base and type_common flags.
24374 (verify_type): Verify STRING_FLAG.
24375
24376 2015-05-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
24377
24378 PR fortran/44054
24379 * tree-pretty-print.c (percent_K_format): Replace locus pointer
24380 with accessor function.
24381 * tree-diagnostic.c (diagnostic_report_current_function): Use
24382 diagnostic_location function.
24383 (maybe_unwind_expanded_macro_loc): Likewise.
24384 (virt_loc_aware_diagnostic_finalizer): Likewise.
24385 (default_tree_printer): Replace locus pointer with accessor function.
24386 * diagnostic.c (diagnostic_initialize): Initialize caret_chars array.
24387 (diagnostic_set_info_translated): Initialize second location.
24388 (diagnostic_build_prefix): Use CARET_LINE_MARGIN.
24389 (diagnostic_show_locus): Handle two locations. Call
24390 diagnostic_print_caret_line.
24391 (diagnostic_print_caret_line): New.
24392 (default_diagnostic_starter): Use diagnostic_location function.
24393 (diagnostic_report_diagnostic): Use diagnostic_location function.
24394 (verbatim): Do not set text.locus.
24395 * diagnostic.h (struct diagnostic_info): Remove location field.
24396 (struct diagnostic_context): Make caret_chars an array of two.
24397 (diagnostic_location): New inline.
24398 (diagnostic_expand_location): Handle two locations.
24399 (diagnostic_same_line): New inline.
24400 (diagnostic_print_caret_line): Declare.
24401 (CARET_LINE_MARGIN): New constant.
24402 * pretty-print.c (pp_printf): Do not set text.locus.
24403 (pp_verbatim): Do not set text.locus.
24404 * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): New constant.
24405 (struct text_info): Replace locus pointer with locations
24406 array. Add accessor functions.
24407
24408 2015-05-16 Kugan Vivekanandarajah <kuganv@linaro.org>
24409 Zhenqiang Chen <zhenqiang.chen@linaro.org>
24410
24411 PR target/65768
24412 * config/arm/arm.h (DONT_EARLY_SPLIT_CONSTANT): New macro.
24413 * config/arm/arm.md (subsi3, andsi3, iorsi3, xorsi3, movsi): Keep some
24414 large constants in register instead of splitting them.
24415
24416 2015-05-16 Uros Bizjak <ubizjak@gmail.com>
24417
24418 PR target/66140
24419 * config/alpha/alpha.c (get_aligned_mem): Also look for reload
24420 replacements in memory addresses.
24421 (get_unaligned_address): Ditto.
24422
24423 2015-05-16 James Bowman <james.bowman@ftdichip.com>
24424
24425 * config/ft32/*: New files for FT32 port.
24426 * doc/install.texi: Add FT32 information.
24427 * doc/invoke.texi: Add FT32 information.
24428 * doc/md.texi: Add FT32 information.
24429 * doc/contrib.texi: Self added.
24430
24431 2015-05-15 Marc Glisse <marc.glisse@inria.fr>
24432
24433 PR tree-optimization/64454
24434 * match.pd ((X % Y) % Y, (X % Y) < Y): New patterns.
24435 (-1 - A -> ~A): Remove unnecessary condition.
24436
24437 2015-05-15 Gregor Richards <gregor.richards@uwaterloo.ca>
24438
24439 * config/i386/linux.h (MUSL_DYNAMIC_LINKER): Define.
24440 * config/i386/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
24441 (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32): Define.
24442
24443 2015-05-15 Ilya Enkovich <ilya.enkovich@intel.com>
24444
24445 * ipa-chkp.h (chkp_wrap_function): New.
24446 * ipa-chkp.c (chkp_wrap_function): Remove 'static'.
24447 (chkp_wrap_function_name): New.
24448 (chkp_build_instrumented_fndecl): Use chkp_wrap_function_name
24449 to get wrapper name.
24450 * lto-cgraph.c: Include ipa-chkp.h.
24451 (input_cgraph_1): Avoid alias chain for wrappers.
24452
24453 2015-05-15 Ilya Enkovich <enkovich.gnu@gmail.com>
24454
24455 PR middle-end/66134
24456 * tree-chkp.c (chkp_get_orginal_bounds_for_abnormal_copy): New.
24457 (chkp_maybe_copy_and_register_bounds): Don't copy abnormal copy.
24458
24459 2015-05-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24460
24461 * config/aarch64/aarch64.h (AARCH64_TUNE_SLOWMUL): Delete.
24462 (AARCH64_FL_SLOWMUL): Delete.
24463 (AARCH64_FL_CRC): Redefine to 1<<3.
24464 (AARCH64_FL_USE_FMA_STEERING_PASS): Redefine to 1<<4.
24465
24466 2015-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
24467
24468 * config/arm/arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Add appropriate
24469 casting.
24470
24471 2015-05-15 Uros Bizjak <ubizjak@gmail.com>
24472
24473 * config/alpha/alpha.md (extendqidi2): Use general_operand
24474 instead of some_operand for operand[1] predicate.
24475 (extendhidi2): Ditto.
24476 (cbranchdi4): Use general_operand instead of some_operand
24477 for operand[1] and operands[2] predicates.
24478 (cstoredi4): Ditto.
24479 * config/alpha/predicates.md (some_operand): Remove unused predicate.
24480 (some_ni_operand): Ditto.
24481
24482 2015-05-15 Uros Bizjak <ubizjak@gmail.com>
24483
24484 * config/alpha/alpha.c (alpha_extract_integer): Do not handle
24485 CONST_WIDE_INT and CONST_DOUBLE. Assert CONST_INT_P (x).
24486 (alpha_legitimate_constant_p) <case CONST_WIDE_INT>: Check high and
24487 low part of the constant using alpha_emit_set_const_1.
24488 (alpha_expand_mov): Do not handle CONST_WIDE_INT and CONST_DOUBLE.
24489
24490 2015-05-14 Rohit Arul Raj <rohitrulraj@freescale.com>
24491
24492 * varasm.c (output_constant_pool_1): Pass down alignment from
24493 constant pool entry's descriptor to output_constant_pool_2.
24494 (output_object_block): Add comment prior to call to
24495 output_constant_pool_1.
24496
24497 2015-05-14 Vladimir Makarov <vmakarov@redhat.com>
24498
24499 PR rtl-optimization/65862
24500 * target.def (ira_change_pseudo_allocno_class): New hook.
24501 * targhooks.c (default_ira_change_pseudo_allocno_class): Default
24502 value of the hook.
24503 * targhooks.h (default_ira_change_pseudo_allocno_class): New extern.
24504 * doc/tm.texi.in (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Add the
24505 hook.
24506 * ira-costs.c (find_costs_and_classes): Call the hook and change
24507 classes when it is necessary.
24508 * doc/tm.texi: Update.
24509
24510 2015-05-14 Alexander Monakov <amonakov@ispras.ru>
24511
24512 * config/i386/i386.md (sibcall_memory): Check that register with
24513 callee address is not also used as one of the arguments, instead
24514 of checking that it is not live after the sibcall.
24515 (sibcall_pop_memory): Ditto.
24516 (sibcall_value_memory): Ditto.
24517 (sibcall_value_pop_memory): Ditto.
24518
24519 2015-05-14 Marc Glisse <marc.glisse@inria.fr>
24520
24521 * generic-match-head.c (types_match): Handle non-types.
24522 * gimple-match-head.c (types_match): Likewise.
24523 * match.pd: Remove unnecessary TREE_TYPE for types_match.
24524
24525 2015-05-14 Wilco Dijkstra <wdijkstr@arm.com>
24526
24527 * config/aarch64/aarch64.md (absdi2): Optimize abs expansion.
24528 (csneg3<mode>_insn): Enable expansion of pattern.
24529
24530 2015-05-14 Nick Clifton <nickc@redhat.com>
24531
24532 * config/rl78/rl78.c (rl78_select_section): Select the correct
24533 default section based upon the category of the decl.
24534
24535 2015-05-13 Segher Boessenkool <segher@kernel.crashing.org>
24536
24537 PR rtl-optimization/30967
24538 * config/rs6000/rs6000.c (rs6000_rtx_costs): Don't consider
24539 destination mode for the cost of scc patterns.
24540
24541 2015-05-13 Uros Bizjak <ubizjak@gmail.com>
24542
24543 * config/i386/i386.md (*mul<mode>3_1): Merge with *mulhi3_1
24544 using SWIM248 mode iterator.
24545 (*mulv<mode>4): Use x86_64_sext_operand for operand[2] constraint.
24546 (*mulvhi4): mark operand[1] as commutative. Use nonimmediate_operand
24547 for operand[2] constraint.
24548 (*mulv<mode>4_1): Merge with *mulvhi4_1 using SWI248 mode iterator.
24549
24550 2015-05-13 Jakub Jelinek <jakub@redhat.com>
24551
24552 PR middle-end/66133
24553 * omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion,
24554 make sure it is never noreturn, even when the task body does not
24555 return.
24556 (lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE
24557 right before GIMPLE_OMP_RETURN.
24558 (make_gimple_omp_edges): Accept GIMPLE_OMP_CONTINUE as ->cont
24559 for GIMPLE_OMP_TASK. For GIMPLE_OMP_RETURN corresponding to
24560 GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit.
24561
24562 2015-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24563
24564 * params.def (PARAM_MAX_POW_SQRT_DEPTH): New param.
24565 * tree-ssa-math-opts.c: Include params.h
24566 (pow_synth_sqrt_info): New struct.
24567 (representable_as_half_series_p): New function.
24568 (get_fn_chain): Likewise.
24569 (print_nested_fn): Likewise.
24570 (dump_fractional_sqrt_sequence): Likewise.
24571 (dump_integer_part): Likewise.
24572 (expand_pow_as_sqrts): Likewise.
24573 (gimple_expand_builtin_pow): Use above to attempt to expand
24574 pow as series of square roots. Removed now unused variables.
24575
24576 2015-05-13 Uros Bizjak <ubizjak@gmail.com>
24577
24578 * config/alpha/alpha.c (alpha_emit_set_long_const): Remove c1 argument.
24579 (alpha_extract_integer): Redeclare as static HOST_WIDE_INT.
24580 Remove *p0 and *p1 arguments. Rewrite function.
24581 (alpha_legitimate_constant_p): Update call to alpha_extract_integer.
24582 (alpha_split_const_mov): Update calls to alpha_extract_integer and
24583 alpha_emit_set_long_const.
24584 (alpha_expand_epilogue): Update calls to alpha_emit_set_long_const.
24585 (alpha_output_mi_thunk_osf): Ditto.
24586 * config/alpha/alpha.md (movti): Do not check operands[1]
24587 for CONST_DOUBLE.
24588
24589 2015-05-13 Richard Biener <rguenther@suse.de>
24590
24591 PR tree-optimization/66129
24592 * tree-vect-slp.c (vect_build_slp_tree): Make sure all ops are
24593 commutative.
24594 (vect_schedule_slp_instance): Fix typo.
24595
24596 2015-05-13 David Malcolm <dmalcolm@redhat.com>
24597
24598 * common.opt (fdump-internal-locations): New option.
24599 * input.c: Include diagnostic-core.h.
24600 (get_end_location): New function.
24601 (write_digit): New function.
24602 (write_digit_row): New function.
24603 (dump_location_range): New function.
24604 (dump_labelled_location_range): New function.
24605 (dump_location_info): New function.
24606 * input.h (dump_location_info): New prototype.
24607 * toplev.c (compile_file): Handle flag_dump_locations.
24608
24609 2015-05-13 Eric Botcazou <ebotcazou@adacore.com>
24610
24611 * gimple-expr.h (is_gimple_constant): Reorder.
24612 * tree-ssa-propagate.c (before_dom_children): Use inline accessor.
24613
24614 2015-05-13 Segher Boessenkool <segher@kernel.crashing.org>
24615
24616 * combine.c (simplify_set): When generating a CC set, if the
24617 source already is in the correct mode, do not wrap it in a
24618 compare. Simplify the rest of that code.
24619
24620 2015-05-13 Richard Biener <rguenther@suse.de>
24621
24622 PR tree-optimization/66123
24623 * tree-ssa-dom.c (propagate_rhs_into_lhs): Check if we found
24624 a taken edge.
24625
24626 2015-05-13 Richard Biener <rguenther@suse.de>
24627
24628 PR middle-end/66110
24629 * alias.c (alias_sets_conflict_p): Do not treat has_zero_child
24630 specially.
24631 * Makefile.in (dfp.o-warn): Add -Wno-strict-aliasing.
24632
24633 2015-05-13 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
24634
24635 * doc/install.texi: Bump latest automake 1.11 version to 1.11.6.
24636 * aclocal.m4: Regenerated with automake-1.11.6.
24637
24638 2015-05-13 Tom de Vries <tom@codesourcery.com>
24639
24640 PR tree-optimization/66010
24641 * gimplify.h (gimplify_va_arg_internal): Remove declaration.
24642 * gimplify.c (gimplify_va_arg_internal): Remove and inline into ...
24643 * tree-stdarg.c (expand_ifn_va_arg_1): ... here. Choose between lval
24644 and rval based on do_deref.
24645
24646 2015-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
24647
24648 PR target/65103
24649 * config/i386/i386.c (ix86_rtx_costs): We want to propagate
24650 link time constants into adress expressions and therefore set
24651 their cost to 0.
24652
24653 2015-05-13 Jakub Jelinek <jakub@redhat.com>
24654
24655 PR target/66112
24656 * config/i386/i386.md (mulv<mode>4, umulv<mode>4, *umulv<mode>4):
24657 Use SWI248 iterator instead of SWI.
24658 (*mulv<mode>4_1): Use SWI48 instead of SWI. Simplify output template.
24659 Use eq_attr "alternative" "0" instead of match_test in
24660 length_immediate attribute computation.
24661 (*mulvhi4, *mulvhi4_1): New define_insns.
24662
24663 PR target/66112
24664 * internal-fn.c (get_min_precision): Use UNSIGNED instead of
24665 SIGNED to get precision of non-negative value.
24666
24667 2015-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
24668
24669 PR target/66048
24670 * function.c (diddle_return_value_1): Process bounds first.
24671 * config/i38/i386.c (ix86_function_value_regno_p): Add bnd1
24672 register.
24673
24674 2015-05-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
24675
24676 PR rtl-optimization/64616
24677 * loop-invariant.c (can_move_invariant_reg): New.
24678 (move_invariant_reg): Call above new function to decide whether
24679 instruction can just be moved, skipping creation of temporary
24680 register.
24681
24682 2015-05-12 Jan Hubicka <hubicka@ucw.cz>
24683
24684 PR target/pr66047.c
24685 * i386.c (ix86_function_sseregparm): Only return -1 if local function
24686 with implied regparm is called from -mno-sse function.
24687 (init_cumulative_args): Output error if ix86_function_sseregparm
24688 return -1 and SSE register would be needed.
24689 (function_arg_advance_32): Likewise.
24690 (function_arg_32): Likewise.
24691 * i386.h (ix86_args): Add decl field.
24692
24693 2015-05-12 Jan Hubicka <hubicka@ucw.cz>
24694
24695 PR ipa/65873
24696 * ipa-inline.c (can_inline_edge_p): Allow early inlining of always
24697 inlines across optimization boundary.
24698
24699 2015-05-12 Jason Merrill <jason@redhat.com>
24700
24701 * config/mmix/mmix.c, config/msp430/msp430.c: Add space between
24702 string literal and macro name.
24703
24704 2015-05-12 Steve Ellcey <sellcey@imgtec.com>
24705
24706 * config/mips/mips.c (mips_print_operand): Remove 'y' operand code.
24707 * config/mips/mips.md (<GPR:d>lsa): Rewrite with shift operator.
24708 * config/mips/predicates.md (const_immlsa_operand): Remove log call.
24709
24710 2015-05-12 David Malcolm <dmalcolm@redhat.com>
24711
24712 * doc/invoke.texi (Warning Options): Add -Wmisleading-indentation.
24713 (-Wmisleading-indentation): New option.
24714 * Makefile.in (C_COMMON_OBJS): Add c-family/c-indentation.o.
24715
24716 2015-05-12 Uros Bizjak <ubizjak@gmail.com>
24717
24718 * config/alpha/alpha.h (TARGET_SUPPORTS_WIDE_INT): New define.
24719 * config/alpha/alpha.c (alpha_rtx_costs): Handle CONST_WIDE_INT.
24720 (alpha_extract_integer): Ditto.
24721 (alpha_legitimate_constant_p): Ditto.
24722 (alpha_split_tmode_pair): Ditto.
24723 (alpha_preferred_reload_class): Add CONST_WIDE_INT.
24724 (alpha_expand_mov): Ditto.
24725 (print_operand): Remove handling of 'H' modifier.
24726 <case 'm'>: Remove CONST_DOUBLE handling.
24727 (summarize_insn): Handle CONST_WIDE_INT.
24728 * config/alpha/alpha.md (*andsi_internal): Remove H constraint.
24729 (anddi3): Ditto.
24730 (movti): Handle CONST_WIDE_INT.
24731 * config/alpha/constraints.md ('H'): Remove constraint definition.
24732 ('G'): Do not match MODE_FLOAT class.
24733 * config/alpha/predicates.md (const0_operand): Also match
24734 const_wide_int.
24735 (non_add_const_operand): Ditto.
24736 (non_zero_const_operand): Ditto.
24737 (some_operand): Ditto.
24738 (input_operand): Ditto. Handle CONST_WIDE_INT.
24739 (and_operand): Do not match const_double.
24740 * config/alpha/sync.md (fetchop_constr): Remove H constraint.
24741
24742 2015-05-12 Andrew MacLeod <amacleod@redhat.com>
24743
24744 PR target/65697
24745 * coretypes.h (MEMMODEL_SYNC, MEMMODEL_BASE_MASK): New macros.
24746 (enum memmodel): Add SYNC_{ACQUIRE,RELEASE,SEQ_CST}.
24747 * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
24748 is_mm_consume,is_mm_acquire, is_mm_release, is_mm_acq_rel,
24749 is_mm_seq_cst, is_mm_sync): New accessor functions.
24750 * builtins.c (expand_builtin_sync_operation,
24751 expand_builtin_compare_and_swap): Use MEMMODEL_SYNC_SEQ_CST.
24752 (expand_builtin_sync_lock_release): Use MEMMODEL_SYNC_RELEASE.
24753 (get_memmodel, expand_builtin_atomic_compare_exchange,
24754 expand_builtin_atomic_load, expand_builtin_atomic_store,
24755 expand_builtin_atomic_clear): Use new accessor routines.
24756 (expand_builtin_sync_synchronize): Use MEMMODEL_SYNC_SEQ_CST.
24757 * optabs.c (expand_compare_and_swap_loop): Use MEMMODEL_SYNC_SEQ_CST.
24758 (maybe_emit_sync_lock_test_and_set): Use new accessors and
24759 MEMMODEL_SYNC_ACQUIRE.
24760 (expand_sync_lock_test_and_set): Use MEMMODEL_SYNC_ACQUIRE.
24761 (expand_mem_thread_fence, expand_mem_signal_fence, expand_atomic_load,
24762 expand_atomic_store): Use new accessors.
24763 * emit-rtl.c (need_atomic_barrier_p): Add additional enum cases.
24764 * tsan.c (instrument_builtin_call): Update check for memory model beyond
24765 final enum to use MEMMODEL_LAST.
24766 * c-family/c-common.c: Use new accessor for memmodel_base.
24767 * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap): Use new
24768 accessors.
24769 * config/aarch64/atomics.md (atomic_load<mode>,atomic_store<mode>,
24770 arch64_load_exclusive<mode>, aarch64_store_exclusive<mode>,
24771 mem_thread_fence, *dmb): Likewise.
24772 * config/alpha/alpha.c (alpha_split_compare_and_swap,
24773 alpha_split_compare_and_swap_12): Likewise.
24774 * config/arm/arm.c (arm_expand_compare_and_swap,
24775 arm_split_compare_and_swap, arm_split_atomic_op): Likewise.
24776 * config/arm/sync.md (atomic_load<mode>, atomic_store<mode>,
24777 atomic_loaddi): Likewise.
24778 * config/i386/i386.c (ix86_destroy_cost_data, ix86_memmodel_check):
24779 Likewise.
24780 * config/i386/sync.md (mem_thread_fence, atomic_store<mode>): Likewise.
24781 * config/ia64/ia64.c (ia64_expand_atomic_op): Add new memmodel cases and
24782 use new accessors.
24783 * config/ia64/sync.md (mem_thread_fence, atomic_load<mode>,
24784 atomic_store<mode>, atomic_compare_and_swap<mode>,
24785 atomic_exchange<mode>): Use new accessors.
24786 * config/mips/mips.c (mips_process_sync_loop): Likewise.
24787 * config/pa/pa.md (atomic_loaddi, atomic_storedi): Likewise.
24788 * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier,
24789 rs6000_post_atomic_barrier): Add new cases.
24790 (rs6000_expand_atomic_compare_and_swap): Use new accessors.
24791 * config/rs6000/sync.md (mem_thread_fence): Add new cases.
24792 (atomic_load<mode>): Add new cases and use new accessors.
24793 (store_quadpti): Add new cases.
24794 * config/s390/s390.md (mem_thread_fence, atomic_store<mode>): Use new
24795 accessors.
24796 * config/sparc/sparc.c (sparc_emit_membar_for_model): Use new accessors.
24797 * doc/extend.texi: Update docs to indicate 16 bits are used for memory
24798 model, not 8.
24799
24800 2015-05-12 Jan Hubicka <hubicka@ucw.cz>
24801
24802 * ipa-devirt.c (type_with_linkage_p): New function.
24803 (type_in_anonymous_namespace_p): Move here from tree.c; assert that
24804 type has linkage.
24805 (odr_type_p): Move here from ipa-utils.h; use type_with_linkage_p.
24806 (can_be_name_hashed_p): Simplify.
24807 (hash_odr_name): Check that type has linkage before checking if it is
24808 anonymous.
24809 (types_same_for_odr): Likewise.
24810 (odr_name_hasher::equal): Likewise.
24811 (odr_subtypes_equivalent_p): Likewise.
24812 (warn_types_mismatch): Likewise.
24813 (get_odr_type): Likewise.
24814 (odr_types_equivalent_p): Fix checking of TYPE_MAIN_VARIANT.
24815 * ipa-utils.h (odr_type_p): Move offline.
24816 * tree.c (need_assembler_name_p): Fix handling of types
24817 without linkages.
24818 (type_in_anonymous_namespace_p): Move to ipa-devirt.c
24819
24820 2015-05-12 David Malcolm <dmalcolm@redhat.com>
24821
24822 * timevar.c (timevar_enable): Delete in favor of...
24823 (g_timer): New global.
24824 (struct timevar_def): Move to timevar.h inside class timer.
24825 (struct timevar_stack_def): Likewise.
24826 (timevars): Delete global in favor of field "m_timevars" within
24827 class timer in timevar.h
24828 (stack): Likewise, in favor of field "m_stack".
24829 (unused_stack_instances): Likewise, in favor of field
24830 "m_unused_stack_instances".
24831 (start_time): Likewise, in favor of field "m_start_time".
24832 (get_time): Eliminate check for timevar_enable.
24833 (timer::timer): New function, built from part of timevar_init.
24834 (timevar_init): Rewrite idempotency test from using
24835 "timevar_enable" bool to using dynamic allocation of "g_timer".
24836 Move rest of implementation into timer's constructor.
24837 (timevar_push_1): Rename to...
24838 (timer::push): ...this, adding "m_" prefixes to variables that
24839 are now fields of timer.
24840 (timevar_pop_1): Likewise, rename to...
24841 (timer::pop): ...this, and add "m_" prefixes.
24842 (timevar_start): Replace test for "timevar_enable" with one for
24843 "g_timer", and move bulk of implementation to...
24844 (timer::start): ...here, adding "m_" prefixes.
24845 (timevar_stop): Likewise, from here...
24846 (timer::stop): ...to here.
24847 (timevar_cond_start): Likewise, from here...
24848 (timer::cond_start): ...to here.
24849 (timevar_cond_stop): Likewise, from here...
24850 (timer::cond_stop): ...to here.
24851 (validate_phases): Rename to...
24852 (timer::validate_phases): ...this, and add "m_" prefixes. Make
24853 locals "total" and "tv" const.
24854 (timevar_print): Rename to...
24855 (timer::print): ...this, and add "m_" prefixes. Make locals
24856 "total" and "tv" const. Eliminate test for timevar_enable.
24857 * timevar.h (timevar_enable): Eliminate.
24858 (g_timer): New declaration.
24859 (timevar_push_1): Eliminate.
24860 (timevar_pop_1): Eliminate.
24861 (timevar_print): Eliminate.
24862 (class timer): New class.
24863 (timevar_push): Rewrite to use g_timer.
24864 (timevar_pop): Likewise.
24865 * toplev.c (toplev::~toplev): Likewise.
24866
24867 2015-05-12 Richard Earnshaw <rearnsha@arm.com>
24868
24869 * arm-protos.h (arm_sched_autopref): Delete.
24870 (tune_params): Re-organize, use enums for flag values.
24871 (FUSE_OPS): New macro.
24872 * arm.c (ARM_PREFETCH_NOT_BENEFICIAL): Update.
24873 (ARM_PREFETCH_BENEFICIAL): Likewise.
24874 (ARM_FUSE_NOTHING, ARM_FUSE_MOVW_MOVT): Delete.
24875 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
24876 (arm_xscale_tune, arm_9e_tune, arm_marvell_pj4_tune)
24877 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a8_tune)
24878 (arm_cortex_a7_tune, arm_cortex_a15_tune, arm_cortex_a53_tune)
24879 (arm_cortex_a57_tune, arm_xgene1_tune, arm_cortex_a5_tune)
24880 (arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune)
24881 (arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune): Use new
24882 format.
24883 (arm_option_override, thumb2_reorg, arm_print_tune_info)
24884 (aarch_macro_fusion_pair_p): Update uses of current_tune.
24885 * arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Likewise.
24886
24887 2015-05-12 Sandra Loosemore <sandra@codesourcery.com>
24888
24889 * config/nios2/nios2.md (trap, ctrapsi4): Use "trap" instead of
24890 "break".
24891
24892 2015-05-12 Chung-Lin Tang <cltang@codesourcery.com>
24893 Sandra Loosemore <sandra@codesourcery.com>
24894
24895 * config/nios2/nios2.h (enum reg_class): Add IJMP_REGS enum
24896 value.
24897 (REG_CLASS_NAMES): Add "IJMP_REGS".
24898 (REG_CLASS_CONTENTS): Add new entry for IJMP_REGS.
24899 * config/nios2/nios2.md (indirect_jump,*tablejump): Adjust to
24900 use new "c" register constraint.
24901 * config/nios2/constraint.md (c): New register constraint
24902 corresponding to IJMP_REGS.
24903
24904 2015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
24905
24906 * config/rs6000/rs6000.md (*rotlsi3_internal4, *rotlsi3_internal5,
24907 *rotlsi3_internal6, rlwinm, 5 unnamed define_insns, and 6
24908 define_splits): Delete, revamp, transmogrify into ...
24909 (*rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
24910 *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
24911 *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
24912 New.
24913
24914 2015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
24915
24916 * config/rs6000/rs6000.md (rs6000_adjust_atomic_subword): Use
24917 gen_ashlsi3 and gen_andsi3 instead of gen_rlwinm.
24918
24919 2015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
24920
24921 * config/rs6000/rs6000.md (extzv): FAIL for SImode.
24922 (extzvsi_internal, *extzvsi_internal1, *extzvsi_internal2,
24923 *rotlsi3_internal7le, *rotlsi3_internal7be, *rotlsi3_internal8le,
24924 *rotlsi3_internal8be, *rotlsi3_internal9le, *rotlsi3_internal9be,
24925 *rotlsi3_internal10le, *rotlsi3_internal10be, *rotlsi3_internal11le,
24926 *rotlsi3_internal11be, *rotlsi3_internal12le, *rotlsi3_internal12be,
24927 *lshiftrt_internal1le, *lshiftrt_internal1be, *lshiftrt_internal2le,
24928 *lshiftrt_internal2be, *lshiftrt_internal3le, *lshiftrt_internal3be,
24929 *lshiftrt_internal4le, *lshiftrt_internal4be, *lshiftrt_internal5le,
24930 *lshiftrt_internal5be, *lshiftrt_internal5le, *lshiftrt_internal5be,
24931 *rotldi3_internal7le, *rotldi3_internal7be, *rotldi3_internal8le,
24932 *rotldi3_internal8be, *rotldi3_internal9le, *rotldi3_internal9be,
24933 *rotldi3_internal10le, *rotldi3_internal10be, *rotldi3_internal11le,
24934 *rotldi3_internal11be, *rotldi3_internal12le, *rotldi3_internal12be,
24935 *rotldi3_internal13le, *rotldi3_internal13be, *rotldi3_internal14le,
24936 *rotldi3_internal14be, *rotldi3_internal15le, *rotldi3_internal15be,
24937 and 30 corresponding splitters): Delete.
24938
24939 2015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
24940
24941 * config/rs6000/rs6000.md (define_split for bswaphi): Don't use
24942 zero_extract.
24943
24944 2015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
24945
24946 * combine.c (recog_for_combine_1): New function, factored out
24947 from recog_for_combine.
24948 (change_zero_ext): New function.
24949 (recog_for_combine): If recog fails, try again with the pattern
24950 modified by change_zero_ext; if that still fails, restore the
24951 pattern.
24952
24953 2015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
24954
24955 * combine.c (get_undo_marker): New function.
24956 (undo_to_marker): New function, largely factored out from ...
24957 (undo_all): ... this. Adjust.
24958
24959 2015-05-12 Richard Biener <rguenther@suse.de>
24960
24961 PR tree-optimization/66101
24962 * tree-ssa-dce.c (remove_dead_stmt): Properly mark loops for
24963 fixup if we turn a loop exit edge to a fallthru edge.
24964
24965 2015-05-12 Richard Biener <rguenther@suse.de>
24966
24967 PR tree-optimization/37021
24968 * tree-vectorizer.h (struct _slp_tree): Add two_operators flag.
24969 (SLP_TREE_TWO_OPERATORS): New define.
24970 * tree-vect-slp.c (vect_create_new_slp_node): Initialize
24971 SLP_TREE_TWO_OPERATORS.
24972 (vect_build_slp_tree_1): Allow two mixing plus/minus in an
24973 SLP node.
24974 (vect_build_slp_tree): Adjust.
24975 (vect_analyze_slp_cost_1): Likewise.
24976 (vect_schedule_slp_instance): Vectorize mixing plus/minus by
24977 emitting two vector stmts and mixing the results.
24978
24979 2015-05-12 Dominik Vogt <vogt@linux.vnet.ibm.com>
24980
24981 * call.c (print_z_candidates): Remove dead code.
24982
24983 2015-05-12 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24984
24985 * config/s390/2827.md: Split zEC12_simple into zEC12_simple_int
24986 and zEC12_simple_fp.
24987 * config/s390/s390.c (s390_issue_rate): Set issue rate for zEC12
24988 to 1.
24989
24990 2015-05-12 Tom de Vries <tom@codesourcery.com>
24991
24992 PR tree-optimization/66010
24993 * gimplify.c (gimplify_modify_expr): Handle new do_deref argument of
24994 ifn_va_arg.
24995 * gimplify.h (gimplify_va_arg_internal): Remove loc parameter.
24996 (gimplify_va_arg_internal): Remove loc parameter. Assert no array-typed
24997 va_lists are passed, and remove corresponding handling.
24998 (gimplify_va_arg_expr): Only take address of ap if necessary. Add
24999 do_deref argument to ifn_va_arg.
25000 * tree-stdarg.c (expand_ifn_va_arg_1): Handle new do_deref argument of
25001 ifn_va_arg.
25002
25003 2015-05-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
25004
25005 PR target/65955
25006 * config/arm/arm.md (movcond_addsi): Check that operands[2] is a
25007 REG before taking its REGNO.
25008
25009 2015-05-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
25010
25011 * combine.c i(set_nonzero_bits_and_sign_copies): Split code updating
25012 rsp->sign_bit_copies and rsp->nonzero_bits into ...
25013 (update_rsp_from_reg_equal): This. Also use REG_EQUAL note on src if
25014 present to get more accurate information about the number of sign bit
25015 copies and non zero bits.
25016
25017 2015-05-12 Richard Biener <rguenther@suse.de>
25018
25019 * tree-vect-slp.c (vect_build_slp_tree_1): For BB vectorization
25020 do not allow unrolling.
25021
25022 2015-05-11 Richard Henderson <rth@redhat.com>
25023
25024 * config/i386/i386-modes.def (CCP): New.
25025 * config/i386/i386.c (put_condition_code): Handle it.
25026 (ix86_match_ccmode, ix86_cc_modes_compatible): Likewise.
25027
25028 2015-05-11 Richard Henderson <rth@redhat.com>
25029
25030 * target.def (md_asm_clobbers): Replace with...
25031 (md_asm_adjust): this.
25032 * tm.texi.in (TARGET_MD_ASM_CLOBBERS): Remove.
25033 (TARGET_MD_ASM_ADJUST): New.
25034 * tm.texi: Rebuild.
25035 * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Remove.
25036 * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Remove.
25037 * system.h (TARGET_MD_ASM_CLOBBERS): Poison.
25038
25039 * cfgexpand.c (check_operand_nalternatives): Accept vector of
25040 constraints instead of lists of outputs and inputs.
25041 (expand_asm_stmt): Save and restore input_location around the
25042 body of the function. Move asm data into vectors instead of
25043 building tree lists. Generate cleanup sequences as needed,
25044 rather than waiting til the end. Use new md_asm_adjust hook.
25045
25046 * config/vxworks.c: Include vec.h before target.h.
25047 * gimple.c: Likewise.
25048 * incpath.c: Likewise.
25049 * mode-switching.c: Likewise.
25050
25051 * config/cris/cris.c (cris_md_asm_clobbers): Convert to...
25052 (cris_md_asm_adjust): this.
25053 (TARGET_MD_ASM_CLOBBERS): Remove.
25054 (TARGET_MD_ASM_ADJUST): New.
25055 * config/i386/i386.c (ix86_md_asm_clobbers): Convert to...
25056 (ix86_md_asm_adjust): this.
25057 (TARGET_MD_ASM_CLOBBERS): Remove.
25058 (TARGET_MD_ASM_ADJUST): New.
25059 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): Convert to...
25060 (mn10300_md_asm_adjust): this.
25061 (TARGET_MD_ASM_CLOBBERS): Remove.
25062 (TARGET_MD_ASM_ADJUST): New.
25063 * config/rs6000/rs6000.c (rs6000_md_asm_clobbers): Convert to...
25064 (rs6000_md_asm_adjust): this.
25065 (TARGET_MD_ASM_CLOBBERS): Remove.
25066 (TARGET_MD_ASM_ADJUST): New.
25067 * config/visium/visium.c (visium_md_asm_clobbers): Convert to...
25068 (visium_md_asm_adjust): this.
25069 (TARGET_MD_ASM_CLOBBERS): Remove.
25070 (TARGET_MD_ASM_ADJUST): New.
25071
25072 2015-05-11 Richard Henderson <rth@redhat.com>
25073
25074 * gimplify.c (gimplify_asm_expr): Set gimple_asm_volatile_p
25075 if noutputs is zero.
25076 * cfgexpand.c (expand_asm_stmt): Use gimple_asm_volatile_p unchanged.
25077
25078 * cfgexpand.c (expand_asm_operands): Merge into...
25079 (expand_asm_stmt): ... here.
25080
25081 * cfgexpand.c (expand_asm_operands): Don't call
25082 resolve_asm_operand_names.
25083 * stmt.c (resolve_asm_operand_names): Clarify block comment.
25084
25085 2015-05-11 Jan Hubicka <hubicka@ucw.cz>
25086
25087 * dwarf2out.c (gen_member_die): Sanity check that we access
25088 TYPE_MAIN_VARIANT for TYPE_METHODS.
25089 * function.c (use_register_for_decl): Look for TYPE_MAIN_VARIANT when
25090 checking TYPE_METHODS.
25091 * tree.c (free_lang_data_in_type): See TYPE_METHODS to error_mark_node
25092 if non-null.
25093 (build_distinct_type_copy): Clear TYPE_METHODS.
25094 (verify_type_variant): Verify that TYPE_METHODS is NULL for variants.
25095 (verify_type): Allow TYPE_METHODS to be error_mark_node.
25096 * tree.def: Update docs of TYPE_STUB_DECL and TYPE_METHODS.
25097
25098 2015-05-11 Eric Botcazou <ebotcazou@adacore.com>
25099
25100 * emit-rtl.c (emit_pattern_after_setloc): Add missing guard.
25101 (emit_pattern_before_setloc): Likewise.
25102
25103 2015-05-11 Richard Sandiford <richard.sandiford@arm.com>
25104
25105 * genrecog.c (match_pattern_1): Expect the pattern to be a SEQUENCE
25106 for define_peephole2s.
25107 (get_peephole2_pattern): New function.
25108 (main): Use it. Call validate_pattern.
25109
25110 2015-05-11 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
25111
25112 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Use
25113 LAST_CALLEE_SAVED_REG instead of hard-coded register number.
25114 (Last callee saved reg is different for AVR_TINY architecture)
25115
25116 2015-05-11 Uros Bizjak <ubizjak@gmail.com>
25117
25118 * config/i386/i386.c (ix86_loop_unroll_adjust): Use PATTERN (insn)
25119 when looking for memory references.
25120
25121 2015-05-11 Alexander Monakov <amonakov@ispras.ru>
25122
25123 PR target/65753
25124 * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow PIC sibcalls
25125 via function pointers.
25126
25127 2015-05-11 Alexander Monakov <amonakov@ispras.ru>
25128
25129 * calls.c (prepare_call_address): Transform PLT call to GOT lookup and
25130 indirect call by forcing address into a pseudo with -fno-plt.
25131 * common.opt (flag_plt): New option.
25132 * doc/invoke.texi (Code Generation Options): Add -fno-plt.
25133 ([-fno-plt]): Document.
25134
25135 2015-05-11 Markus Trippelsdorf <markus@trippelsdorf.de>
25136
25137 PR bootstrap/66105
25138 * config/rs6000/option-defaults.h: Add space between string literal
25139 and macro name.
25140
25141 2015-05-11 Thomas Preud'homme <thomas.preudhomme@arm.com>
25142
25143 * gcc.target/arm/pr64616.c: Test dump rather than assembly to work
25144 accross ARM targets.
25145
25146 2015-05-11 Christian Bruel <christian.bruel@st.com>
25147
25148 * config/arm/arm-protos.h (thumb_code, thumb1_code): Remove.
25149 * config/arm/vxworks.h (thumb_code): Replace with TARGET_THUMB.
25150
25151 2015-05-11 Richard Sandiford <richard.sandiford@arm.com>
25152
25153 PR rtl-optimization/66076
25154 * rtlanal.c (generic_subrtx_iterator <T>::add_single_to_queue):
25155 Don't grow the heap array if it is already big enough from a
25156 previous iteration.
25157
25158 2015-05-11 Christian Bruel <christian.bruel@st.com>
25159
25160 * config/arm/arm-protos.h (arm_declare_function_name): Declare.
25161 (is_called_in_ARM_mode): Remove.
25162 * config/arm/arm.c (is_called_in_ARM_mode): Declare static bool.
25163 (arm_declare_function_name): Moved from from ARM_DECLARE_FUNCTION_NAME.
25164 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Call
25165 arm_declare_function_name.
25166
25167 2015-05-11 Christian Bruel <christian.bruel@st.com>
25168
25169 * config/arm/arm.c (arm_option_override): Reoganized and split into :
25170 (arm_option_params_internal); New function.
25171 (arm_option_check_internal): New function.
25172 (arm_option_override_internal): New function.
25173 (thumb_code, thumb1_code): Remove.
25174 * config/arm/arm.h (TREE_TARGET_THUMB, TREE_TARGET_THUMB1): New macros.
25175 (TREE_TARGET_THUM2, TREE_TARGET_ARM): Likewise.
25176 (thumb_code, thumb1_code): Remove.
25177 * config/arm/arm.md (is_thumb, is_thumb1): Check TARGET flag.
25178
25179 2015-05-11 Uros Bizjak <ubizjak@gmail.com>
25180
25181 * config/alpha/alpha.c (alpha_emit_set_const_1)
25182 (alpha_emit_set_long_const, alpha_extract_integer)
25183 (alpha_legitimate_constant_p, alpha_split_const_mov)
25184 (alpha_expand_block_clear, alpha_expand_zap_mask, print_operand):
25185 [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
25186 (alpha_emit_set_const_1): Change "(HOST_WIDE_INT) 1" to
25187 HOST_WIDE_INT_1U.
25188 * config/alpha/predicates.md (mode_mask_operand): Do not match
25189 const_double RTX.
25190 [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
25191 * config/alpha/alpha.md (abstf, *abstf_internal, UNSPEC_ZAP splitter):
25192 Change "(HOST_WIDE_INT) 1" to HOST_WIDE_INT_1U.
25193 [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
25194 (*negtf_internal): Use gen_int_mode instead of immed_double_const.
25195
25196 2015-05-11 Jakub Jelinek <jakub@redhat.com>
25197
25198 PR target/65780
25199 * config/s390/linux.h (TARGET_BINDS_LOCAL_P): Define to
25200 default_binds_local_p_2.
25201 * config/arm/linux-elf.h (TARGET_BINDS_LOCAL_P): Likewise.
25202 * config/aarch64/aarch64-linux.h (TARGET_BINDS_LOCAL_P): Likewise.
25203
25204 2015-05-09 Jan Hubicka <hubicka@ucw.cz>
25205
25206 * tree.c (verify_type_variant): Check TYPE_VALUES_RAW and TYPE_PRECISION
25207
25208 2015-05-09 Jan Hubicka <hubicka@ucw.cz>
25209
25210 Patch by Richard Biener
25211 * coverage.c (coverage_obj_init): Delay building of type variant
25212 until the type is finished.
25213
25214 2015-05-09 Jan Hubicka <hubicka@ucw.cz>
25215
25216 * ipa-devirt.c (warn_types_mismatch): Do not ICE when warning about
25217 mismatch between C and C++ type; compoare correctly ARG_TYPES
25218 for non-prototypes and output correctly parameter index for METHOD_TYPE.
25219 (odr_types_equivalent_p): Fix wording of warning about attributes;
25220 it is OK to match prototype and non-prototype.
25221
25222 2015-05-09 Jan Hubicka <hubicka@ucw.cz>
25223
25224 * tree.c (free_lang_data_in_type): Free TREE_PURPOSE of
25225 TYPE_ARG_TYPES list.
25226 (verify_type): Permit non-NULL TREE_PURPOSE in non-LTO builds.
25227 * tree.def (FUNCTION_TYPE): Document TREE_PURPOSE in TYPE_ARG_TYPES
25228
25229 2015-05-09 Jan Hubicka <hubicka@ucw.cz>
25230
25231 * tree.c (verify_type): Verify TYPE_BINFO and TYPE_VALUES_RAW.
25232 * tree.h (is_lang_specific): Constify.
25233
25234 2015-05-09 Marc Glisse <marc.glisse@inria.fr>
25235
25236 PR tree-optimization/64454
25237 * tree-vrp.c (extract_range_from_binary_expr_1) <TRUNC_MOD_EXPR>:
25238 Rewrite.
25239
25240 2015-05-08 Jason Merrill <jason@redhat.com>
25241
25242 * bitmap.c, c/c-aux-info.c, cfg.c, cfghooks.c, cgraph.c,
25243 config/aarch64/aarch64.md config/alpha/vms.h, config/darwin.c,
25244 config/darwin.h, config/darwin9.h, config/elfos.h,
25245 config/i386/bsd.h, config/ia64/ia64.c, config/lm32/lm32.h,
25246 config/microblaze/microblaze.h, config/mips/mips.h,
25247 config/mmix/mmix.c, config/msp430/msp430.c, config/nios2/nios2.h,
25248 config/nvptx/nvptx.c, config/nvptx/nvptx.h, config/pa/pa.c,
25249 config/pa/pa.h, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
25250 config/rs6000/xcoff.h, config/rx/rx.h, config/s390/s390.h,
25251 config/sparc/sol2.h, config/sparc/sparc.h, config/visium/visium.h,
25252 cppbuiltin.c, defaults.h, doc/invoke.texi, dwarf2cfi.c,
25253 dwarf2out.c, final.c, gcc.c, gcov-dump.c, gcov.c, ipa-cp.c,
25254 ipa-inline.c, ipa-polymorphic-call.c, ipa-profile.c, ipa-prop.c,
25255 ira-color.c, ira.c, loop-doloop.c, loop-iv.c, mcf.c,
25256 modulo-sched.c, predict.c, profile.c, stor-layout.c, toplev.c,
25257 tree-ssa-reassoc.c, value-prof.c, wide-int-print.cc: Add space
25258 between string literal and macro name.
25259
25260 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25261
25262 * jump.c: Change argument types to rtx_insn *.
25263 * rtl.h: Adjust.
25264
25265 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25266
25267 * lra-constraints.c: Change argument type to rtx_insn *.
25268
25269 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25270
25271 * df-problems.c: Change argument type to rtx_insn *.
25272
25273 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25274
25275 * combine.c: Change argument type to rtx_insn *.
25276
25277 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25278
25279 * rtl.h: Adjust.
25280 * rtlanal.c: Change argument type to rtx_insn *.
25281
25282 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25283
25284 * sched-deps.c: Change argument types to rtx_insn *.
25285 * sched-int.h: Adjust.
25286
25287 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25288
25289 * dwarf2cfi.c: Change argument type to rtx_insn *.
25290
25291 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25292
25293 * ira.c (decrease_live_ranges_number): Changetype of local
25294 variable to rtx_insn *.
25295 * recog.c: Change argument types to rtx_insn *.
25296 * recog.h: Adjust.
25297
25298 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25299
25300 * reorg.c: Change argument types to rtx_insn *.
25301
25302 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25303
25304 * ira-color.c: Change argument types to rtx_insn *.
25305 * lra-eliminations.c: Likewise.
25306 * ira.h: Adjust.
25307
25308 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25309
25310 * gcse.c: Change argument types to rtx_insn *.
25311
25312 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25313
25314 * cse.c (cse_change_cc0_mode): Change argument type to rtx_insn *.
25315
25316 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25317
25318 * emit-rtl.c (emit_debug_insn_before): Change argument type to
25319 rtx_insn *.
25320 * rtl.h: Adjust.
25321
25322 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25323
25324 * emit-rtl.c (emit_note_before): Change argument type to rtx_insn *.
25325 * rtl.h: Adjust.
25326
25327 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25328
25329 * emit-rtl.c (emit_note_after): Change argument type to rtx_insn *.
25330 * rtl.h: Adjust.
25331
25332 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25333
25334 * emit-rtl.c (prev_cc0_setter): Change argument type to rtx_insn *.
25335 * rtl.h: Adjust.
25336
25337 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25338
25339 * rtlanal.c (noop_move_p): Change argument type to rtx_insn *.
25340 * rtl.h: Adjust.
25341
25342 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25343
25344 * rtlanal.c (add_shallow_copy_of_reg_note): Change argument type
25345 to rtx_insn *.
25346 * rtl.h: Adjust.
25347
25348 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25349
25350 * rtlanal.c (remove_reg_equal_equiv_notes): Change argument type
25351 to rtx_insn *.
25352 * rtl.h: Likewise.
25353
25354 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25355
25356 * except.c (can_nonlocal_goto): Change type of argument to
25357 rtx_insn *.
25358 * rtl.h: Adjust.
25359
25360 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25361
25362 * rtlanal.c (computed_jump_p): Cange argument type to rtx_insn *.
25363 * rtl.h: Adjust.
25364
25365 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25366
25367 * rtlanal.c (in_insn_list_p): Renamed from in_expr_list_p.
25368 * cfgrtl.c (can_delete_label_p): Adjust.
25369 * rtl.h: likewise.
25370
25371 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25372
25373 * reorg.c (stop_search_p): Change argument to rtx_insn *.
25374
25375 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25376
25377 * except.c (make_reg_eh_region_note): Change argument to
25378 rtx_insn *.
25379 (make_reg_eh_region_note_nothrow_nononlocal): Likewise.
25380 * except.h: Adjust.
25381
25382 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25383
25384 * mode-switching.c (commit_mode_sets): Change type of local
25385 variable from rtx to rtx_insn *.
25386
25387 2015-05-08 Jim Wilson <jim.wilson@linaro.org>
25388
25389 * doc/install.texi (--enable-languages): Add missing jit and lto info.
25390 Add ^ to grep command.
25391 * doc/match-and-simplify.texi (GIMPLE API): Add missing fourth tree
25392 arg to last gimple_simplify declaration. Add missing gimple_build
25393 declaration for built-in function case with four tree args.
25394
25395 2015-05-08 Gregor Richards <gregor.richards@uwaterloo.ca>
25396 Szabolcs Nagy <szabolcs.nagy@arm.com>
25397
25398 * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Define.
25399 (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Define.
25400 (GNU_USER_DYNAMIC_LINKERN32): Update.
25401
25402 2015-05-08 Richard Biener <rguenther@suse.de>
25403
25404 PR tree-optimization/66036
25405 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
25406 Handle strided group loads.
25407 (vect_verify_datarefs_alignment): Likewise.
25408 (vect_enhance_data_refs_alignment): Likewise.
25409 (vect_analyze_group_access): Likewise.
25410 (vect_analyze_data_ref_access): Likewise.
25411 (vect_analyze_data_ref_accesses): Likewise.
25412 * tree-vect-stmts.c (vect_model_load_cost): Likewise.
25413 (vectorizable_load): Likewise.
25414
25415 2015-05-08 Segher Boessenkool <segher@kernel.crashing.org>
25416
25417 * config/rs6000/rs6000.md: Require operand inequality in one
25418 of the peepholes.
25419
25420 2015-05-08 Richard Sandiford <richard.sandiford@arm.com>
25421 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
25422
25423 * config/i386/i386.md (<mode>_ldx, *<mode>_ldx): Remove mode
25424 from (set ...).
25425 * config/rx/rx.md (movdi, movdf): Likewise.
25426 Likewise for define_peephole2s.
25427
25428 2015-05-08 Alan Lawrence <alan.lawrence@arm.com>
25429
25430 * config/aarch64/arm_neon.h (vceq_s64, vceq_u64, vceqz_s64, vceqz_u64,
25431 vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64, vcgtz_s64, vcle_s64,
25432 vcle_u64, vclez_s64, vclt_s64, vclt_u64, vcltz_s64, vtst_s64,
25433 vtst_u64): Rewrite using gcc vector extensions.
25434
25435 2015-05-08 Alan Lawrence <alan.lawrence@arm.com>
25436
25437 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>,
25438 vcond<mode><mode>, vcondu<mode><mode>): Add DImode variant.
25439
25440 2015-05-08 Alan Lawrence <alan.lawrence@arm.com>
25441
25442 * optabs.c (vector_compare_rtx): Handle RTL operands having VOIDmode.
25443
25444 2015-05-08 Szabolcs Nagy <szabolcs.nagy@arm.com>
25445
25446 * config/glibc-stdint.h (OPTION_MUSL): Define.
25447 (INT_FAST16_TYPE, INT_FAST32_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE):
25448 Change the definition based on OPTION_MUSL for 64 bit targets.
25449 * config/linux.h (OPTION_MUSL): Redefine.
25450 * config/alpha/linux.h (OPTION_MUSL): Redefine.
25451 * config/rs6000/linux.h (OPTION_MUSL): Redefine.
25452 * config/rs6000/linux64.h (OPTION_MUSL): Redefine.
25453
25454 2015-05-08 Gregor Richards <gregor.richards@uwaterloo.ca>
25455 Szabolcs Nagy <szabolcs.nagy@arm.com>
25456
25457 * config.gcc (LIBC_MUSL): New tm_defines macro.
25458 * config/linux.h (OPTION_MUSL): Define.
25459 (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER32,)
25460 (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32,)
25461 (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
25462 (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
25463 (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
25464 * config/linux.opt (mmusl): New option.
25465 * doc/invoke.texi (GNU/Linux Options): Document -mmusl.
25466 * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
25467 (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
25468 * configure: Regenerate.
25469
25470 2015-05-08 H.J. Lu <hongjiu.lu@intel.com>
25471 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
25472
25473 PR target/48904
25474 * config.gcc (x86_64-*-knetbsd*-gnu): Add i386/knetbsd-gnu64.h.
25475 * config/i386/knetbsd-gnu64.h: New file.
25476
25477 2015-05-08 Marek Polacek <polacek@redhat.com>
25478
25479 PR c/64918
25480 * doc/invoke.texi: Document -Woverride-init-side-effects.
25481
25482 2015-05-07 Marek Polacek <polacek@redhat.com>
25483
25484 PR c/65179
25485 * doc/invoke.texi: Document -Wshift-negative-value.
25486
25487 2015-05-06 Aditya Kumar <hiraditya@msn.com>
25488
25489 * gcov-tool.c (do_merge): Refactore to remove int ret.
25490 * ipa-icf.c (sem_item::hash_referenced_symbol_properties): Change
25491 !type == FUNC to type != FUNC.
25492 * reload.h (struct target_reload): Changee to type of
25493 x_spill_indirect_levels from bool to unsigned char.
25494
25495 2015-05-07 Richard Sandiford <richard.sandiford@arm.com>
25496
25497 * rtl.h (always_void_p): New function.
25498 * gengenrtl.c (always_void_p): Likewise.
25499 (genmacro): Don't add a mode parameter to gen_rtx_foo if rtxes
25500 with code foo are always VOIDmode.
25501 * genemit.c (gen_exp): Update gen_rtx_foo calls accordingly.
25502 * builtins.c, caller-save.c, calls.c, cfgexpand.c, combine.c,
25503 compare-elim.c, config/aarch64/aarch64.c,
25504 config/aarch64/aarch64.md, config/alpha/alpha.c,
25505 config/alpha/alpha.md, config/arc/arc.c, config/arc/arc.md,
25506 config/arm/arm-fixed.md, config/arm/arm.c, config/arm/arm.md,
25507 config/arm/ldrdstrd.md, config/arm/thumb2.md, config/arm/vfp.md,
25508 config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
25509 config/c6x/c6x.md, config/cr16/cr16.c, config/cris/cris.c,
25510 config/cris/cris.md, config/darwin.c, config/epiphany/epiphany.c,
25511 config/epiphany/epiphany.md, config/fr30/fr30.c, config/frv/frv.c,
25512 config/frv/frv.md, config/h8300/h8300.c, config/i386/i386.c,
25513 config/i386/i386.md, config/i386/sse.md, config/ia64/ia64.c,
25514 config/ia64/vect.md, config/iq2000/iq2000.c,
25515 config/iq2000/iq2000.md, config/lm32/lm32.c, config/lm32/lm32.md,
25516 config/m32c/m32c.c, config/m32r/m32r.c, config/m68k/m68k.c,
25517 config/m68k/m68k.md, config/mcore/mcore.c, config/mcore/mcore.md,
25518 config/mep/mep.c, config/microblaze/microblaze.c,
25519 config/mips/mips.c, config/mips/mips.md, config/mmix/mmix.c,
25520 config/mn10300/mn10300.c, config/msp430/msp430.c,
25521 config/nds32/nds32-memory-manipulation.c, config/nds32/nds32.c,
25522 config/nds32/nds32.md, config/nios2/nios2.c, config/nvptx/nvptx.c,
25523 config/pa/pa.c, config/pa/pa.md, config/rl78/rl78.c,
25524 config/rs6000/altivec.md, config/rs6000/rs6000.c,
25525 config/rs6000/rs6000.md, config/rs6000/vector.md,
25526 config/rs6000/vsx.md, config/rx/rx.c, config/rx/rx.md,
25527 config/s390/s390.c, config/s390/s390.md, config/sh/sh.c,
25528 config/sh/sh.md, config/sh/sh_treg_combine.cc,
25529 config/sparc/sparc.c, config/sparc/sparc.md, config/spu/spu.c,
25530 config/spu/spu.md, config/stormy16/stormy16.c,
25531 config/tilegx/tilegx.c, config/tilegx/tilegx.md,
25532 config/tilepro/tilepro.c, config/tilepro/tilepro.md,
25533 config/v850/v850.c, config/v850/v850.md, config/vax/vax.c,
25534 config/visium/visium.c, config/xtensa/xtensa.c, cprop.c, dse.c,
25535 expr.c, gcse.c, ifcvt.c, ira.c, jump.c, lower-subreg.c,
25536 lra-constraints.c, lra-eliminations.c, lra.c, postreload.c, ree.c,
25537 reg-stack.c, reload.c, reload1.c, reorg.c, sel-sched.c,
25538 var-tracking.c: Update calls accordingly.
25539
25540 2015-05-07 Segher Boessenkool <segher@kernel.crashing.org>
25541
25542 PR middle-end/192
25543 PR middle-end/54303
25544 * varasm.c (function_mergeable_rodata_prefix): New function.
25545 (mergeable_string_section): Use it.
25546 (mergeable_constant_section): Use it.
25547
25548 2015-05-07 Jeff Law <law@redhat.com>
25549
25550 PR target/39726
25551 * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
25552 simplifier to narrow arithmetic.
25553 * generic-match-head.c: (types_match, single_use): New functions.
25554 * gimple-match-head.c: (types_match, single_use): New functions.
25555
25556 2015-05-07 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
25557
25558 * combine.c (make_compound_operation): Remove checks for PLUS/MINUS
25559 rtx type.
25560
25561 2015-05-07 Richard Biener <rguenther@suse.de>
25562
25563 PR tree-optimization/66002
25564 * passes.def: Schedule another pass_merge_phi after ifcombine, right
25565 before phiopt.
25566
25567 2015-05-07 Marek Polacek <polacek@redhat.com>
25568 Martin Uecker <uecker@eecs.berkeley.edu>
25569
25570 * doc/invoke.texi: Document -fsanitize=bounds-strict.
25571 * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS_STRICT, or it
25572 into SANITIZE_NONDEFAULT.
25573 * opts.c (common_handle_option): Handle -fsanitize=bounds-strict.
25574
25575 2015-05-07 Uros Bizjak <ubizjak@gmail.com>
25576
25577 PR target/66015
25578 * config/alpha/alpha.c (alpha_override_options_after_change): New.
25579 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
25580 (alpha_override_options): Move align_loops, align_jumps and
25581 align_functions handling into alpha_override_options_after_change.
25582
25583 2015-05-06 Sandra Loosemore <sandra@codesourcery.com>
25584 Chris Jones <chrisj@nvidia.com>
25585 Joshua Conner <jconner@nvidia.com>
25586
25587 * config/arm/unknown-elf.h (STARTFILE_SPEC): Add conditional
25588 linking of crtfastmath.o.
25589 * config/arm/linux-eabi.h (STARTFILE_SPEC): Likewise.
25590
25591 2015-05-06 Segher Boessenkool <segher@kernel.crashing.org>
25592
25593 * config/rs6000/rs6000.md (cstore<mode>4_signed_imm): New expander.
25594 (cstore<mode>4_unsigned_imm): New expander.
25595 (cstore<mode>4): Remove empty constraint strings. Use the new
25596 expanders.
25597
25598 2015-05-06 Yvan Roux <yvan.roux@linaro.org>
25599
25600 PR target/64208
25601 * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Cleanup redundant
25602 alternatives.
25603
25604 2015-05-06 Szabolcs Nagy <szabolcs.nagy@arm.com>
25605
25606 * config/aarch64/geniterators.sh: Use standard BRE in sed.
25607
25608 2015-05-06 Alan Modra <amodra@gmail.com>
25609
25610 PR target/66033
25611 * config/rs6000/rs6000.md (nop): Use an unspec pattern.
25612 (UNSPEC_NOP): Define.
25613 (reload_vsx_from_gpr<mode>): Add missing DONE.
25614 (reload_gpr_from_vsx<mode>): Likewise.
25615 * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
25616 (vsx_div_v2di, vsx_udiv_v2di): Likewise.
25617
25618 2015-05-06 Christian Bruel <christian.bruel@st.com>
25619
25620 PR target/66015
25621 * config/aarch64/aarch64.c (aarch64_override_options): Move align_loops,
25622 align_jumps, align_functions into aarch64_override_options_after_change.
25623
25624 2015-05-06 Richard Biener <rguenther@suse.de>
25625
25626 * tree-vect-slp.c (vect_supported_load_permutation_p): Use
25627 vect_transform_slp_perm_load to check if we support a permutation
25628 for basic-block vectorization.
25629
25630 2015-05-06 Nick Clifton <nickc@redhat.com>
25631
25632 * config/rl78/rl78.c (need_to_save): Save register 22 if it is
25633 used, even if it is not being used as a frame pointer.
25634
25635 2015-05-05 Jason Merrill <jason@redhat.com>
25636
25637 * dwarf2out.c (gen_member_die): Don't emit anything for an
25638 anonymous class constructor.
25639
25640 2015-05-05 David Malcolm <dmalcolm@redhat.com>
25641
25642 * auto-profile.c (afdo_find_equiv_class): Fix indentation so
25643 that it reflects the block structure.
25644 (afdo_propagate_edge): Likewise.
25645 (afdo_calculate_branch_prob): Likewise.
25646 (afdo_annotate_cfg): Likewise.
25647 * cfgcleanup.c (equal_different_set_p): Likewise.
25648 (try_crossjump_to_edge): Likewise.
25649 * cgraph.c (cgraph_node::verify_node): Likewise.
25650 * cgraphunit.c (expand_all_functions): Likewise.
25651 * config/i386/i386.c (ix86_expand_copysign): Likewise.
25652 (exact_dependency_1): Likewise.
25653 * dwarf2asm.c (dw2_output_indirect_constants): Likewise.
25654 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Likewise.
25655 * gensupport.c (process_define_subst): Likewise.
25656 * lto-wrapper.c (merge_and_complain): Likewise.
25657 * tree-if-conv.c (if_convertible_bb_p): Likewise.
25658 * tree-ssa-loop-prefetch.c (find_or_create_group): Likewise.
25659 * tree-ssa-tail-merge.c (gsi_advance_fw_nondebug_nonlocal): Likewise.
25660 * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
25661 * tree-vect-loop.c (vectorizable_reduction): Likewise.
25662 * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
25663 * tree-vect-stmts.c (vectorizable_shift): Likewise.
25664 * tree-vrp.c (vrp_finalize): Likewise.
25665 * tree.c (variably_modified_type_p): Likewise.
25666
25667 2015-05-05 Jack Howarth <howarth.at.gcc@gmail.com>
25668
25669 * config.gcc: Use darwin9.h, darwin10.h and darwin12.h
25670 on darwin12 and later.
25671 * config/darwin12.h (LINK_GCC_C_SEQUENCE_SPEC): Add
25672 file to pass -rdynamic on darwin12 and later.
25673 * config/darwin.opt (rdynamic): Add.
25674
25675 2015-05-05 Uros Bizjak <ubizjak@gmail.com>
25676
25677 * doc/extend.texi (C Extensions): Update menu for moved Variable
25678 Attributes and Type Attributes sections.
25679
25680 2015-05-05 Uros Bizjak <ubizjak@gmail.com>
25681
25682 PR target/65990
25683 * config/i386/i386.c (ix86_parse_stringop_strategy_string): Error out
25684 if rep_8byte stringop strategy was specified for 32-bit target.
25685
25686 2015-05-05 Ilya Tocar <ilya.tocar@intel.com>
25687
25688 PR target/65915
25689 * config/i386/i386.md (vector convert to float spltiter): Check for
25690 xmm16+, when splitting scalar float conversion.
25691 * config/i386/sse.md (sse2_cvtsi2sd): Support EVEX version.
25692
25693 2015-05-05 Nick Clifton <nickc@redhat.com>
25694
25695 * config/msp430/msp430-opts.h (enum msp430_regions): New.
25696 * config/msp430/msp430.c (msp430_override_options): Complain if
25697 -mcode-region or -mdata-region is used on a non MSP430X.
25698 (msp430_section_attr): New function. Checks lower, upper and
25699 either attributes.
25700 (msp430_attribute_table): Add lower, upper and either.
25701 (gen_prefix): New function. Generates a prefix for a section
25702 name.
25703 (msp430_select_section): New function - handles the choice of
25704 section for an object. Takes into account memory region
25705 attributes and options.
25706 (msp430_function_section): Use gen_prefix.
25707 (TARGET_SECTION_TYPE_FLAGS): Define.
25708 (msp430_section_type_flags): New function.
25709 (TARGET_ASM_UNIQUE_SECTION): Define.
25710 (msp430_unique_section): New function.
25711 (msp430_output_aligned_decl_common): New function.
25712 (msp430_do_not_relax_short_jumps): New function.
25713 * config/msp430/msp430.h (USE_SELECT_SECTION_FOR_FUNCTIONS):
25714 Define.
25715 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
25716 * config/msp430/msp430-protos.h
25717 (msp430_do_not_relax_short_jumps): New prototype.
25718 (msp430_output_aligned_decl_common): New prototype.
25719 * config/msp430/msp430.md (length): New attribute.
25720 (cbranchhi4_real): If msp430_do_not_relax_short_jumps is true
25721 then use a long code sequence for short jumps.
25722 * config/msp430/msp430.opt (mcode-region): New.
25723 (mdata-region): New.
25724 * doc/invoke.texi: Document new options.
25725 * doc/extend.texi: Document new attributes.
25726
25727 2015-05-05 Matthew Wahab <matthew.wahab@arm.com>
25728
25729 * config/aarch64-protos.h (struct cpu_branch_cost): New.
25730 (tune_params): Add field branch_costs.
25731 (aarch64_branch_cost): Declare.
25732 * config/aarch64.c (generic_branch_cost): New.
25733 (generic_tunings): Set field cpu_branch_cost to generic_branch_cost.
25734 (cortexa53_tunings): Likewise.
25735 (cortexa57_tunings): Likewise.
25736 (thunderx_tunings): Likewise.
25737 (xgene1_tunings): Likewise.
25738 (aarch64_branch_cost): Define.
25739 * config/aarch64/aarch64.h (BRANCH_COST): Redefine.
25740
25741 2015-05-05 Uros Bizjak <ubizjak@gmail.com>
25742
25743 * config/i386/i386.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1
25744 and HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1.
25745 * config/i386/i386.md: Ditto.
25746 * config/i386/winnt.c: Ditto.
25747
25748 2015-05-05 Matthew Wahab <matthew.wahab@arm.com>
25749
25750 * doc/extend.texi (__atomic Builtins): Move implementation details
25751 to the end of the description, rewrite opening paragraphs, state
25752 difference with __sync builtins, state C11/C++11 assumptions,
25753 weaken itemized descriptions, add explanation of memory model
25754 behaviour, expand description of compare-exchange, simplify text.
25755
25756 2015-05-05 Renlin Li <renlin.li@arm.com>
25757
25758 * config/aarch64/aarch64.md (add<mode>3): Use mov when allowed.
25759
25760 2015-05-05 Yvan Roux <yvan.roux@linaro.org>
25761
25762 * config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define.
25763 (LINK_SPEC): Include CA53_ERR_843419_SPEC.
25764 * config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define.
25765 (LINK_SPEC): Include CA53_ERR_843419_SPEC.
25766 * config/aarch64/aarch64.opt (mfix-cortex-a53-843419): New option.
25767 * configure: Regenerate.
25768 * configure.ac: Add --enable-fix-cortex-a53-843419 option.
25769 * doc/install.texi (aarch64*-*-*): Document new
25770 --enable-fix-cortex-a53-843419 option.
25771 * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-843419
25772 and -mno-fix-cortex-a53-843419 options.
25773
25774 2015-05-05 Uros Bizjak <ubizjak@gmail.com>
25775
25776 PR target/65871
25777 * config/i386/i386.md (*bmi_andn_<mode>_ccno): New pattern.
25778
25779 2015-05-04 Jan Hubicka <hubicka@ucw.cz>
25780
25781 * tree.c (verify_type): Check various uses of TYPE_MAXVAL;
25782 fix overactive TYPE_MIN_VALUE check and add FIXME for type
25783 compatibility problems.
25784
25785 2015-05-04 Ajit Agarwal <ajitkum@xilinx.com>
25786
25787 * config/microblaze/microblaze.md (cbranchsi4): Added immediate
25788 constraints.
25789 (cbranchsi4_reg): New.
25790 * config/microblaze/microblaze.c
25791 (microblaze_expand_conditional_branch_reg): New.
25792 * config/microblaze/microblaze-protos.h
25793 (microblaze_expand_conditional_branch_reg): New prototype.
25794
25795 2015-05-04 Ajit Agarwal <ajitkum@xilinx.com>
25796
25797 * config/microblaze/microblaze.md (peephole2): New.
25798
25799 2015-05-04 Jeff Law <law@redhat.com>
25800
25801 Revert:
25802 2015-05-04 Jeff Law <law@redhat.com>
25803
25804 * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
25805 simplifier to narrow arithmetic.
25806 * generic-match-head.c: (types_match, single_use): New functions.
25807 * gimple-match-head.c: (types_match, single_use): New functions.
25808
25809 2015-05-04 Kaz Kojima <kkojima@gcc.gnu.org>
25810
25811 PR target/65987
25812 * config/sh/sh.c (output_far_jump): Take into account crossing jumps.
25813 (split_branches): Likewise.
25814
25815 2015-05-04 Sandra Loosemore <sandra@codesourcery.com>
25816
25817 * common.opt (fdelete-null-pointer-checks): Init to -1.
25818 * config/nios2/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define to
25819 override flag_delete_null_pointer_checks default.
25820 * doc/invoke.texi (-fdelete-null-pointer-checks): Clarify
25821 behavior re address zero. Better document target-specific behavior.
25822 (-fisolate-errneous-paths-dereference): Mention relationship to
25823 -fdelete-null-pointer-checks.
25824
25825 2015-05-04 Jakub Jelinek <jakub@redhat.com>
25826
25827 PR tree-optimization/65984
25828 * ubsan.c: Include tree-cfg.h.
25829 (instrument_bool_enum_load): Use stmt_ends_bb_p instead of
25830 stmt_could_throw_p test, rename can_throw variable to ends_bb.
25831
25832 2015-05-04 Uros Bizjak <ubizjak@gmail.com>
25833
25834 * config/i386/i386.c: Change GET_CODE (...) == CONST_DOUBLE check
25835 to CONST_DOUBLE_P predicate.
25836 (standard_sse_constant_p): Return 0 for !TARGET_SSE.
25837 (ix86_legitimate_constant_p) <case CONST_WIDE_INT>: For 32bit targets,
25838 allow only operands that satisfy standard_sse_constant_p predicate.
25839 * config/i386/i386.md: Change GET_CODE (...) == CONST_DOUBLE check
25840 to CONST_DOUBLE_P predicate.
25841
25842 2015-05-04 Jeff Law <law@redhat.com>
25843
25844 * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
25845 simplifier to narrow arithmetic.
25846 * generic-match-head.c: (types_match, single_use): New functions.
25847 * gimple-match-head.c: (types_match, single_use): New functions.
25848
25849 2015-05-04 Andreas Tobler <andreast@gcc.gnu.org>
25850
25851 * config/arm/arm.c: Restore bootstrap.
25852
25853 2015-05-04 Uros Bizjak <ubizjak@gmail.com>
25854
25855 * config/i386/i386.h (TARGET_SUPPORTS_WIDE_INT): New define.
25856 * config/i386/i386.c (ix86_legitimate_constant_p): Handle TImode
25857 as CONST_WIDE_INT, not CONST_DOUBLE.
25858 (ix86_cannot_force_const_mem): Handle CONST_WIDE_INT.
25859 (output_pic_addr_const): Do not handle VOIDmode CONST_DOUBLEs.
25860 (ix86_find_base_term): Do not check for CONST_DOUBLE.
25861 (ix86_print_operand): Do not handle non-FPmode CONST_DOUBLEs.
25862 (ix86_build_signbit_mask): Rewrite using wide ints.
25863 (ix86_split_to_parts) [HOST_BITS_PER_WIDE_INT < 64]: Remove.
25864 (ix86_rtx_costs): Handle CONST_WIDE_INT.
25865 (find_constant): Ditto.
25866 * config/i386/i386.md (bts, btr, btc peepholes): Rewrite
25867 using gen_int_mode.
25868 * config/i386/predicates.md (x86_64_immediate_operand)
25869 <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
25870 (x86_64_zext_immediate_operand): Remove CONST_DOUBLE handling.
25871 <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
25872 (const0_operand): Also match const_wide_int.
25873 (constm1_operand): Ditto.
25874 (const1_operand): Ditto.
25875
25876 2015-05-04 Richard Biener <rguenther@suse.de>
25877
25878 PR tree-optimization/65965
25879 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
25880 store groups at gaps.
25881
25882 2015-05-04 Richard Biener <rguenther@suse.de>
25883
25884 PR tree-optimization/65935
25885 * tree-vect-slp.c (vect_build_slp_tree): If we swapped operands
25886 then make sure to apply that swapping to the IL.
25887
25888 2015-05-04 Jakub Jelinek <jakub@redhat.com>
25889
25890 * Makefile.in (PATCHLEVEL_c): New variable.
25891 (DATESTAMP_s, REVISION_s): If PATCHLEVEL_c is not 0,
25892 expand the same way as if DEVPHASE_c was non-empty.
25893
25894 2015-05-04 Kai Tietz <ktietz@redhat.com>
25895
25896 PR target/65559
25897 * lto-wrapper.c (run_gcc): Open filename
25898 in binary-mode.
25899
25900 2015-05-03 Sandra Loosemore <sandra@codesourcery.com>
25901
25902 * doc/extend.texi (Variable Attributes, Type Attributes): Move
25903 sections up in file, to immediately after the Function Attributes
25904 section.
25905
25906 2015-05-02 Jan Hubicka <hubicka@ucw.cz>
25907
25908 * tree.c (verify_type): Check various uses of TYPE_MINVAL.
25909
25910 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25911
25912 * tree-outof-ssa.c (emit_partition_copy): Return rtx_insn *.
25913 (insert_partition_copy_on_edge): Adjust.
25914 (insert_rtx_to_part_on_edge): Likewise.
25915 (insert_part_to_rtx_on_edge): Likewise.
25916
25917 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25918
25919 * function.c (set_return_jump_label): Change type of argument to
25920 rtx_insn *.
25921 * function.h (set_return_jump_label): Adjust.
25922
25923 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25924
25925 * reload.h (struct reg_equivs_t): Change type of init to
25926 rtx_insn *.
25927 * ira.c (fix_reg_equiv_init): Adjust.
25928 * reload1.c (eliminate_regs_1): Likewise.
25929 (init_eliminable_invariants): Likewise.
25930
25931 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25932
25933 * cselib.c (fp_setter_insn): Take a rtx_insn *.
25934 * cselib.h (fp_setter_insn): Adjust.
25935
25936 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25937
25938 * recog.c (struct validate_replace_src_data): Change type of
25939 insn field to rtx_insn *.
25940 (validate_replace_src_group): Change type of argument to rtx_insn *.
25941 * recog.h (validate_replace_src_group): Adjust.
25942
25943 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25944
25945 * haifa-sched.c: Change the type of some variables to rtx_insn *.
25946 * sched-deps.c: Likewise.
25947 * sched-int.h: Likewise.
25948 * sched-rgn.c: Likewise.
25949 * sel-sched.c: Likewise.
25950
25951 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25952
25953 to rtx_insn *.
25954 * config/i386/i386.c: Change the type of some arguments to
25955 rtx_insn *.
25956 * config/arm/arm.c: Likewise.
25957
25958 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25959
25960 * lra-constraints.c: Change type of some arguments to rtx_insn *.
25961
25962 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25963
25964 * regcprop.c (kill_autoinc_value): Change type of argument to
25965 rtx_insn *.
25966
25967 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25968
25969 * genrecog.c (print_subroutine): Adjust.
25970 * recog.c (get_bool_attr_mask_uncached): Likewise.
25971 * recog.h (struct recog_data_d): Change the type of insn to
25972 rtx_insn *.
25973
25974 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25975
25976 * dwarf2cfi.c (add_cfi_insn): Change type to rtx_insn *.
25977
25978 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25979
25980 * df-problems.c (df_set_note): Change type of argument to
25981 rtx_insn *.
25982
25983 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
25984
25985 * builtins.c (expand_builtin_trap): Change type of local
25986 variable to rtx_insn *.
25987 (add_sched_insns_for_speculation): Likewise.
25988 (ix86_emit_save_regs): Likewise.
25989 (get_scratch_register_on_entry): Likewise.
25990 (ix86_emit_restore_reg_using_pop): Likewise.
25991 (ix86_emit_leave): Likewise.
25992 (ix86_emit_restore_regs_using_mov): Likewise.
25993 (ix86_expand_epilogue): Likewise.
25994 Likewise.
25995 (rl78_alloc_physical_registers_umul): Likewise.
25996 * cselib.c (discard_useless_locs): Likewise.
25997 (cselib_invalidate_regno): Likewise.
25998 (cselib_invalidate_mem): Likewise.
25999 * function.c (expand_function_start): Likewise.
26000 (emit_use_return_register_into_block): Likewise.
26001 * gcse.c: Likewise.
26002 * haifa-sched.c (ok_for_early_queue_removal): Likewise.
26003 * ifcvt.c (noce_get_alt_condition): Likewise.
26004 * loop-doloop.c (doloop_condition_get): Likewise.
26005 * lra-constraints.c (inherit_in_ebb): Likewise.
26006 * modulo-sched.c (sms_schedule_by_order): Likewise.
26007 * recog.c (next_insn_tests_no_inequality): Likewise.
26008 * reorg.c (emit_delay_sequence): Likewise.
26009 (update_reg_dead_notes): Likewise.
26010 (fix_reg_dead_note): Likewise.
26011 (fill_slots_from_thread): Likewise.
26012 (delete_computation): Likewise.
26013
26014 2015-05-01 Sandra Loosemore <sandra@codesourcery.com>
26015
26016 * doc/extend.texi (Variable Attributes): Add menu and proper
26017 @nodes to subsections. Move Microsoft Windows attributes to
26018 their own subsection.
26019 (Type Attributes): Reorganize introduction to remove duplicate
26020 list of attributes. Add menu and proper @nodes to subsections.
26021 Alphabetize the main table of common attributes.
26022
26023 2015-05-01 Rasmus Villemoes <rv@rasmusvillemoes.dk>
26024
26025 * match.pd: New simplification patterns.
26026 (x + (x & 1)) -> ((x + 1) & ~1)
26027 (x & ~(x & y)) -> ((x & ~y))
26028 (x | ~(x | y)) -> ((x | ~y))
26029
26030 2015-05-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26031
26032 * target.def (attribute_table): Mention that struct attribute_spec
26033 is defined in tree-core.h rather than tree.h
26034 * doc/tm.texi: Regenerate.
26035
26036 2015-05-01 Richard Sandiford <richard.sandiford@arm.com>
26037
26038 * genrecog.c (test): Rename to rtx_test. Update rest of file
26039 accordingly.
26040
26041 2015-05-01 Andreas Schwab <schwab@linux-m68k.org>
26042
26043 PR translation/65959
26044 * params.h (DEFPARAM): Rename msgid to nocmsgid.
26045
26046 2015-05-01 Wilco Dijkstra <wdijkstr@arm.com>
26047
26048 * config/aarch64/aarch64-protos.h (tune_params):
26049 Add min_div_recip_mul_sf and min_div_recip_mul_df fields.
26050 * config/aarch64/aarch64.c (aarch64_min_divisions_for_recip_mul):
26051 Return value depending on target.
26052 (generic_tunings): Initialize new target settings.
26053 (cortexa53_tunings): Likewise.
26054 (cortexa57_tunings): Likewise.
26055 (thunderx_tunings): Likewise.
26056 (xgene1_tunings): Likewise.
26057
26058 2015-05-01 Wilco Dijkstra <wdijkstr@arm.com>
26059
26060 * config/arm/aarch-cost-tables.h (cortexa53_extra_costs):
26061 Make Cortex-A53 shift costs more accurate.
26062
26063 2015-05-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26064
26065 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle FLOAT and
26066 UNSIGNED_FLOAT.
26067
26068 2015-05-01 Wilco Dijkstra <wdijkstr@arm.com>
26069
26070 * config/aarch64/aarch64.c (aarch64_rtx_costs):
26071 Calculate cost of op0 and op1 in PLUS and MINUS cases.
26072
26073 2015-05-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26074
26075 * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
26076 Add cost of op0 in the compare-with-fpzero case.
26077
26078 2015-04-30 David Malcolm <dmalcolm@redhat.com>
26079
26080 * builtins.c (fold_builtin_1): Remove spurious second
26081 semicolon.
26082 * cgraph.h (symtab_node::get_availability): Likewise.
26083 * opts.c (common_handle_option): Remove spurious second semicolon.
26084 * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
26085 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
26086
26087 2015-04-30 Caroline Tice <cmtice@google.com>
26088
26089 PR gcov-profile/65929
26090 * config/elfos.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro definition.
26091 (ASM_DECLARE_COLD_FUNCTION_SIZE): New macro definition.
26092 * doc/tm.texi.in (ASM_DECLARE_COLD_FUNCTION_NAME): Document new macro.
26093 (ASM_DECLARE_COLD_FUNCTION_SIZE): Document new macro.
26094 * doc/tm.texi: Regenerate.
26095 * final.c (final_scan_insn): Use ASM_DECLARE_COLD_FUNCTION_NAME
26096 instead of ASM_DECLARE_FUNCTION_NAME for cold partition name.
26097 * varasm.c (assemble_end_function): Use ASM_DECLARE_COLD_FUNCTION_SIZE
26098 instead of ASM_DECLARE_FUNCTION_SIZE for cold partition size.
26099
26100 2015-04-30 Marek Polacek <polacek@redhat.com>
26101
26102 * varasm.c (handle_cache_entry): Fix logic.
26103
26104 2015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26105
26106 * config/aarch64/aarch64.md (*extr<mode>5_insn_alt): New pattern.
26107 (*extrsi5_insn_uxtw_alt): Likewise.
26108 * config/aarch64/aarch64.c (aarch64_extr_rtx_p): New function.
26109 (aarch64_rtx_costs, IOR case): Use above to properly cost extr
26110 operations.
26111
26112 2015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26113
26114 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle pattern for
26115 fabd in ABS case.
26116
26117 2015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26118
26119 * config/aarch64/aarch64.md
26120 (*eor_one_cmpl_<SHIFT:optab><mode>3_alt): New pattern.
26121 (*eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
26122 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle MVN-shift
26123 appropriately. Handle alternative EON form.
26124
26125 2015-04-30 Renlin Li <renlin.li@arm.com>
26126
26127 * config/aarch64/aarch64-simd.md (vec_shr): Defined as an unspec.
26128 * config/aarch64/iterators.md (unspec): Add UNSPEC_VEC_SHR.
26129
26130 2015-04-30 Jan Hubicka <hubicka@ucw.cz>
26131
26132 PR ipa/65873
26133 * ipa-inline.c (can_inline_edge_p): It is safe to inline across
26134 -fstrict-aliasing boundaries.
26135
26136 2015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26137
26138 * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Handle MNEG
26139 and [SU]MNEGL patterns.
26140
26141 2015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26142
26143 * config/aarch64/aarch64.c (aarch64_shift_p): New function.
26144 (aarch64_rtx_mult_cost): Update comment to reflect that it also handles
26145 combined arithmetic-shift ops. Properly handle all shift and extend
26146 operations that can occur in combination with PLUS/MINUS.
26147 Rename maybe_fma to compound_p.
26148 (aarch64_rtx_costs): Use aarch64_shift_p when costing compound
26149 arithmetic and shift operations.
26150
26151 2015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26152
26153 * config/aarch64/aarch64.c (aarch64_rtx_costs): Use extend_arith
26154 rather than arith_shift cost when costing ADD/MINUS of an
26155 extended value.
26156
26157 2015-04-30 Jan Hubicka <hubicka@ucw.cz>
26158
26159 PR lto/65948
26160 * ipa-devirt.c (odr_types_equivalent_p): NULLPTR_TYPE is equivalent
26161 to itself.
26162
26163 2015-04-30 Richard Sandiford <richard.sandiford@arm.com>
26164
26165 * genrecog.c (simplify_tests): Check that CONST_INT and XWINT tests
26166 are for the same position.
26167
26168 2015-04-29 Aditya Kumar <hiraditya@hotmail.com>
26169
26170 * tree-vectorizer.c (set_uid_loop_bbs): New. Factored out of
26171 vectorize_loops.
26172 (vectorize_loops): Use it.
26173
26174 2015-04-29 Jan Hubicka <hubicka@ucw.cz>
26175
26176 * ipa-devirt.c (odr_subtypes_equivalent_p): Compare TYPE_NAME only
26177 for aggregate types.
26178 (register_odr_type): Be ready for MAIN_VARIANT of ODR type
26179 type to be non_ODR.
26180 * tree.c (need_assembler_name_p): Compute mangled name for
26181 non-fundamental types and integer types.
26182
26183 2015-04-29 Mikhail Maltsev <maltsevm@gmail.com>
26184
26185 * dojump.c (do_compare_rtx_and_jump): Use std::swap instead of
26186 manual swaps.
26187 * expr.c (expand_expr_real_2): Likewise.
26188
26189 2015-04-29 Jan Hubicka <hubicka@ucw.cz>
26190
26191 * tree.c (build_common_builtin_nodes): Do not build
26192 __builtin_alloca_with_align as equivalent of library alloca.
26193
26194 2015-04-29 Jan Hubicka <hubicka@ucw.cz>
26195
26196 * dwarf2out.c (gen_type_die_with_usage): Call verify_type.
26197 * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Do not produce
26198 bugus variants.
26199 * tree.c: Include print-tree.h and ipa-utils.h
26200 (free_lang_data_in_type): Clear TYPE_VFIELD leaked by C FE.
26201 (free_lang_data_in_cgraph): Call verify_type.
26202 (verify_type_variant): New function.
26203 (verify_type): New function.
26204 * tree.h (verify_type): Declare.
26205
26206 2015-04-29 Steve Ellcey <sellcey@imgtec.com>
26207
26208 * config/mips/mips-cpus.def: (mips4): Change default processor
26209 from PROCESSOR_R8000 to PROCESSOR_R10000.
26210
26211 2015-04-29 Petar Jovanovic <petar.jovanovic@rt-rk.com>
26212
26213 * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Fix the macro to use
26214 la/jalr instead of jal.
26215
26216 2015-04-29 Uros Bizjak <ubizjak@gmail.com>
26217
26218 PR target/65871
26219 * config/i386/i386.md (*bmi_bextr_<mode>_ccz): New pattern.
26220 (*bmi2_bzhi_<mode>3_1_ccz): Ditto.
26221 (setcc+movzbl peephole2): Check also clobbered reg.
26222 (setcc+andl peephole2): Ditto.
26223
26224 2015-04-29 Thomas Schwinge <thomas@codesourcery.com>
26225
26226 PR libgomp/65099
26227 * config/nvptx/mkoffload.c (target_ilp32): New variable.
26228 (main): Set it depending on "-foffload-abi=[...]".
26229 (compile_native, main): Use it to pass "-m32" or "-m64" to the
26230 compiler.
26231
26232 2015-04-29 Alan Lawrence <alan.lawrence@arm.com>
26233
26234 PR target/65770
26235 * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>,
26236 vec_store_lanesci_lane<mode>, vec_store_lanesxi_lane<mode>):
26237 Flip lane index back at assembly time for bigendian.
26238
26239 2015-04-29 Thomas Schwinge <thomas@codesourcery.com>
26240
26241 * tree.h (OMP_STANDALONE_CLAUSES): New macro.
26242 * gimplify.c (gimplify_omp_workshare): Use it.
26243
26244 2015-04-29 Richard Sandiford <richard.sandiford@arm.com>
26245
26246 * Makefile.in (build/genrecog.o): Depend on inchash.h.
26247 (build/genrecog$(build_exeext): Depend on build/hash-table.o and
26248 build/inchash.o
26249 * genrecog.c: Rewrite most of the code except for the third page.
26250
26251 2015-04-29 Richard Sandiford <richard.sandiford@arm.com>
26252
26253 * inchash.h, inchash.c: Include bconfig.h for build objects.
26254 * Makefile.in (build/inchash.o): New rule.
26255
26256 2015-04-29 Yvan Roux <yvan.roux@linaro.org>
26257
26258 PR target/65924
26259 * config/arm/thumb2.md (*thumb2_addsi3_compare0_scratch): Fix operand
26260 number in type attribute expression.
26261
26262 2015-04-29 Richard Sandiford <richard.sandiford@arm.com>
26263
26264 * loop-iv.c (canon_condition): Generalize to all types of integer
26265 constant.
26266
26267 2015-04-29 Bernhard Reuther-Fischer <aldot@gcc.gnu.org>
26268
26269 * gimple-walk.c: Prune duplicate or unneeded includes.
26270 (walk_gimple_asm): Only call parse_input_constraint or
26271 parse_output_constraint if their findings are used.
26272 Honour parse_input_constraint and parse_output_constraint
26273 result.
26274
26275 2015-04-29 Alan Lawrence <alan.lawrence@arm.com>
26276
26277 * config/arm/neon.md (vec_shl<mode>, vec_shr<mode>): Remove.
26278
26279 2015-04-29 Tom de Vries <tom@codesourcery.com>
26280
26281 PR tree-optimization/65893
26282 * passes.def (pass_all_optimizations): Move pass_stdarg to after
26283 pass_dce.
26284
26285 2015-04-29 Richard Biener <rguenther@suse.de>
26286
26287 * tree-vect-data-refs.c (vect_analyze_group_access): Properly
26288 compute GROUP_SIZE for basic-block SLP.
26289 * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Properly
26290 take into account gaps.
26291 (vect_get_mask_element): Properly reject references to previous
26292 vectors.
26293 (vect_transform_slp_perm_load): Likewise.
26294
26295 2015-04-29 Christian Bruel <christian.bruel@st.com>
26296
26297 PR target/64835
26298 * config/i386/i386.c (ix86_default_align): New function.
26299 (ix86_override_options_after_change): Call ix86_default_align.
26300 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New hook.
26301 (ix86_override_options_after_change): New function.
26302
26303 2015-04-28 Jeff Law <law@redhat.com>
26304
26305 * tree-ssa-dom.c (record_equality); Fix comment typos.
26306
26307 2015-04-28 Tom de Vries <tom@codesourcery.com>
26308
26309 PR tree-optimization/65887
26310 * gimplify.c (gimplify_modify_expr): Remove ifn_va_arg ap fixup.
26311
26312 2015-04-28 Sandra Loosemore <sandra@codesourcery.com>
26313
26314 * doc/extend.texi (Declaring Attributes of Functions): Split into
26315 subsections by target. Alphabetize the table of common attributes.
26316 Rewrite some of the introductory text to reflect the new structure.
26317 Update some cross-references to point to the new subsections.
26318 (Attribute Syntax): Put paragraph about "__" naming here. Remove
26319 duplicate copies in the discussion of function, label, and type
26320 attributes.
26321
26322 2015-04-28 Dominique d'Humieres <dominiq@lps.ens.fr>
26323
26324 PR bootstrap/65910
26325 * varasm.c (assemble_end_function): Guard ASM_DECLARE_FUNCTION_SIZE.
26326
26327 2015-04-28 Jason Merrill <jason@redhat.com>
26328
26329 PR c++/65734
26330 * stor-layout.c (layout_type): Layout the TYPE_MAIN_VARIANT.
26331 (finalize_type_size): Respect TYPE_USER_ALIGN.
26332 (layout_type) [ARRAY_TYPE]: Likewise.
26333
26334 2015-04-28 Yvan Roux <yvan.roux@linaro.org>
26335
26336 * config/arm/arm.md (*arm_movt): Fix type attribute.
26337 (*cmpsi_shiftsi): Likewise.
26338 (*cmpsi_shiftsi_swp): Likewise.
26339 (*movsicc_insn): Likewise.
26340 (*cond_move): Likewise.
26341 (*if_plus_move): Likewise.
26342 (*if_move_plus): Likewise.
26343 (*if_arith_move): Likewise.
26344 (*if_move_arith): Likewise.
26345 (*if_shift_move): Likewise.
26346 (*if_move_shift): Likewise.
26347 (*arm_movtas_ze): Likewise.
26348 * config/arm/thumb2.md (*thumb2_movsicc_insn): Fix alternative
26349 redundancy and type attribute.
26350 (*thumb2_movsi_insn): Fix type attribute.
26351 (*thumb2_addsi_short): Likewise.
26352 (thumb2_addsi3_compare0): Likewise.
26353 (*thumb2_addsi3_compare0_scratch): Merge alternatives and fix
26354 attributes accordingly.
26355
26356 2015-04-28 Markus Trippelsdorf <markus@trippelsdorf.de>
26357
26358 PR other/65911
26359 * function.c (pad_to_arg_alignment): Add parentheses.
26360
26361 2015-04-28 Uros Bizjak <ubizjak@gmail.com>
26362
26363 * config/frv/frv.h (CRT_GET_RFIB_DATA): Move definition to
26364 libgcc/config/frv/elf-lib.h.
26365
26366 2015-04-28 Tom de Vries <tom@codesourcery.com>
26367
26368 * tree-call-cdce.c: Fix example in header comment.
26369
26370 2015-04-28 Richard Biener <rguenther@suse.de>
26371
26372 PR tree-optimization/62283
26373 * tree-vect-slp.c (vect_build_slp_tree): When the SLP build
26374 fails fatally and we are vectorizing a basic-block simply
26375 cause the child to be constructed piecewise.
26376 (vect_analyze_slp_cost_1): Adjust.
26377 (vect_detect_hybrid_slp_stmts): Likewise.
26378 (vect_bb_slp_scalar_cost): Likewise.
26379 (vect_get_constant_vectors): For piecewise constructed
26380 constants place them after the last def.
26381 (vect_get_slp_defs): Adjust.
26382 * tree-vect-stmts.c (vect_is_simple_use): Detect in-BB
26383 externals for basic-block vectorization.
26384
26385 2015-04-28 Thomas Preud'homme <thomas.preudhomme@arm.com>
26386
26387 PR target/63503
26388 * config.gcc: Add cortex-a57-fma-steering.o to extra_objs for
26389 aarch64-*-*.
26390 * config/aarch64/t-aarch64: Add a rule for cortex-a57-fma-steering.o.
26391 * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Define.
26392 (AARCH64_TUNE_FMA_STEERING): Likewise.
26393 * config/aarch64/aarch64-cores.def: Set
26394 AARCH64_FL_USE_FMA_STEERING_PASS for cores with dynamic steering of
26395 FMUL/FMADD instructions.
26396 * config/aarch64/aarch64.c (aarch64_register_fma_steering): Declare.
26397 (aarch64_override_options): Include cortex-a57-fma-steering.h. Call
26398 aarch64_register_fma_steering () if AARCH64_TUNE_FMA_STEERING is true.
26399 * config/aarch64/cortex-a57-fma-steering.h: New file.
26400 * config/aarch64/cortex-a57-fma-steering.c: Likewise.
26401
26402 2015-04-28 Richard Sandiford <richard.sandiford@arm.com>
26403
26404 * gensupport.c (std_preds): Add missing codes to address_operand entry.
26405
26406 2015-04-28 Richard Biener <rguenther@suse.de>
26407
26408 PR tree-optimization/65851
26409 * tree-ssa-ccp.c (set_lattice_value): Perform a meet when
26410 changing CONSTANT to CONSTANT non-copy. Get new_val by reference.
26411 (ccp_lattice_meet): Remove stray argument. Use operand_equal_p
26412 rather than simple_cst_equal as the latter doesn't handle COMPLEX_CST.
26413 (ccp_visit_phi_node): Adjust.
26414 (evaluate_stmt): For simplifications to SSA names return its
26415 lattice value if that isn't VARYING. Return immediately when
26416 simplified to a constant.
26417 (visit_assignment): Adjust.
26418 (ccp_visit_stmt): Likewise.
26419
26420 2015-04-28 Tom de Vries <tom@codesourcery.com>
26421
26422 PR tree-optimization/65818
26423 * tree-stdarg.c (expand_ifn_va_arg_1): Ensure that side-effects are
26424 evaluated.
26425
26426 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
26427
26428 * calls.c (save_fixed_argument_area): Don't check
26429 ARGS_GROW_DOWNWARD with the preprocessor.
26430 (restore_fixed_argument_area): Likewise.
26431 (mem_overlaps_already_clobbered_arg_p): Likewise.
26432 (check_sibcall_argument_overlap): Likewise.
26433 (expand_call): Likewise.
26434 (emit_library_call_value_1): Likewise.
26435 (store_one_arg): Likewise.
26436 * function.c (assign_parms): Likewise.
26437 (locate_and_pad_parm): Likewise.
26438 (pad_to_arg_alignment): Likewise.
26439 * targhooks.c (std_gimplify_va_arg_expr): Likewise.
26440
26441 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
26442
26443 * config/pa/pa.h (ARGS_GROW_DOWNWARD): Define to 1.
26444 * defaults.h (ARGS_GROW_DOWNWARD): Define it to 0 by default.
26445 * calls.c (save_fixed_argument_area): Don't chekc if
26446 ARGS_GROW_DOWNWARD is defined.
26447 (restore_fixed_argument_area): Likewise.
26448 (mem_overlaps_already_clobbered_arg_p): Likewise.
26449 (check_sibcall_argument_overlap): Likewise.
26450 (expand_call): Likewise.
26451 (emit_library_call_value_1): Likewise.
26452 (store_one_arg): Likewise.
26453 * function.c (assign_parms): Likewise.
26454 (locate_and_pad_parm): Likewise.
26455 (pad_to_arg_alignment): Likewise.
26456 * targhooks.c (std_gimplify_va_arg_expr): Likewise.
26457
26458 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
26459
26460 * defaults.h (gen_epilogue): New function.
26461 * alias.c (init_alias_analysis): don't check if HAVE_epilogue is
26462 defined.
26463 * cfgrtl.c (cfg_layout_finalize): Likewise.
26464 * df-scan.c: Likewise.
26465 * function.c (thread_prologue_and_epilogue_insns): Likewise.
26466 (reposition_prologue_and_epilogue_notes): Likewise.
26467 * reorg.c (find_end_label): Likewise.
26468 * toplev.c: Likewise.
26469
26470 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
26471
26472 * bb-reorder.c (HAVE_return): Don't check if its undefined.
26473 * defaults.h (gen_simple_return): New function.
26474 (gen_simple_return): Likewise.
26475 (HAVE_return): Add default definition to false.
26476 (HAVE_simple_return): Likewise.
26477 * cfgrtl.c (force_nonfallthru_and_redirect): Remove checks if
26478 HAVE_return and HAVE_simple_return are defined.
26479 * function.c (gen_return_pattern): Likewise.
26480 (convert_jumps_to_returns): Likewise.
26481 (thread_prologue_and_epilogue_insns): Likewise.
26482 * reorg.c (find_end_label): Likewise.
26483 (dbr_schedule): Likewise.
26484 * shrink-wrap.c: Likewise.
26485 * shrink-wrap.h: Likewise.
26486
26487 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
26488
26489 * defaults.h (EPILOGUE_USES): Add default definition of false.
26490 * df-scan.c (EPILOGUE_USES): Remove check if its undefined.
26491 * resource.c (init_resource_info): Likewise.
26492
26493 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
26494
26495 * defaults.h (PCC_BITFIELD_TYPE_MATTERS): Add default definition
26496 to false.
26497 * dwarf2out.c (field_byte_offset): REmove check if
26498 PCC_BITFIELD_TYPE_MATTERS is defined.
26499 * stor-layout.c (layout_decl): Likewise.
26500 (update_alignment_for_field): Likewise.
26501 (place_field): Likewise.
26502
26503 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
26504
26505 * defaults.h (HARD_REGNO_RENAME_OK): Add default definition to
26506 true.
26507 * regrename.c (check_new_reg_p): Remove check if
26508 HARD_REGNO_RENAME_OK is defined.
26509 * sel-sched.c (sel_hard_regno_rename_ok): Likewise.
26510
26511 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
26512
26513 * calls.c (prepare_call_address): Remove ifdef NO_FUNCTION_CSE.
26514 * cse.c (fold_rtx): Likewise.
26515 * config/alpha/alpha.h (NO_FUNCTION_CSE): Define to 1.
26516 * config/arc/arc.h (NO_FUNCTION_CSE): Likewise.
26517 * config/avr/avr.h (NO_FUNCTION_CSE): Likewise.
26518 * config/cr16/cr16.h (NO_FUNCTION_CSE): Likewise.
26519 * config/epiphany/epiphany.h (NO_FUNCTION_CSE): Likewise.
26520 * config/frv/frv.h (NO_FUNCTION_CSE): Likewise.
26521 * config/h8300/h8300.h (NO_FUNCTION_CSE): Likewise.
26522 * config/i386/i386.h (NO_FUNCTION_CSE): Likewise.
26523 * config/ia64/ia64.h (NO_FUNCTION_CSE): Likewise.
26524 * config/lm32/lm32.h (enum reg_class) (NO_FUNCTION_CSE):
26525 * Likewise.
26526 * config/m32r/m32r.h (NO_FUNCTION_CSE): Likewise.
26527 * config/mep/mep.h (NO_FUNCTION_CSE): Likewise.
26528 * config/mn10300/mn10300.h (NO_FUNCTION_CSE): Likewise.
26529 * config/nds32/nds32.h (NO_FUNCTION_CSE): Likewise.
26530 * config/nios2/nios2.h (NO_FUNCTION_CSE): Likewise.
26531 * config/pa/pa.h (NO_FUNCTION_CSE): Likewise.
26532 * config/rs6000/rs6000.h (NO_FUNCTION_CSE): Likewise.
26533 * config/s390/s390.h (NO_FUNCTION_CSE): Likewise.
26534 * config/sparc/sparc.h (NO_FUNCTION_CSE): Likewise.
26535 * config/spu/spu.h (NO_FUNCTION_CSE): Likewise.
26536 * config/stormy16/stormy16.h (NO_FUNCTION_CSE): Likewise.
26537 * config/v850/v850.h (NO_FUNCTION_CSE): Likewise.
26538 * defaults.h (NO_FUNCTION_CSE): Provide default definition to 0.
26539 * doc/tm.texi: Regenerate.
26540 * doc/tm.texi.in: Document NO_FUNCTION_CSE is always defined to
26541 either true or false.
26542
26543 2015-04-27 Jeff Law <law@redhat.com>
26544
26545 PR tree-optimization/65217
26546 * tree-ssa-dom.c (record_equality): Given two SSA_NAMEs, if just one
26547 of them has a single use, make sure it is the LHS of the implied
26548 copy.
26549
26550 2015-04-28 Alan Modra <amodra@gmail.com>
26551
26552 PR target/65810
26553 * config/rs6000/rs6000.c (POWERPC64_TOC_POINTER_ALIGNMENT): Define.
26554 (offsettable_ok_by_alignment): Use minimum of decl and toc
26555 pointer alignment. Replace dead code with assertion.
26556 (use_toc_relative_ref): Add mode arg. Return false in -mcmodel=medium
26557 case if size exceeds toc pointer alignment.
26558 (rs6000_legitimize_reload_address): Update use_toc_relative_ref call.
26559 (rs6000_emit_move): Likewise.
26560 * configure.ac: Add linker toc pointer alignment check.
26561 * configure: Regenerate.
26562 * config.in: Regenerate.
26563
26564 2015-04-27 Yoshinori Sato <ysato@users.sourceforge.jp>
26565
26566 * config.gcc: Add h8300-*-linux.
26567 * config/h8300/linux.h: New.
26568 * config/h8300/t-linux: New.
26569 * config/h8300/h8300.c (h8300_option_override): Normal mode
26570 is not supported for h8300-*-linux.
26571 (h8300_file_start): Target priority change.
26572 (get_shift_alg): Likewise.
26573 (h8300_shift_need_scratch_p): Likewise.
26574 * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise.
26575 * config/h8300/h8300.md (define_peephole2): Remove duplicate condition.
26576
26577 2015-04-27 Caroline Tice <cmtice@google.com>
26578
26579 * final.c (final_scan_insn): Output cold_function_name as function
26580 type.
26581 * varasm.c (cold_function_name): Make global.
26582 (assemble_start_function): Re-set cold_function_name.
26583 (assemble_end_function): Output cold partition size.
26584 * varasm.h (cold_function_name): Declare global.
26585
26586 2015-04-27 Ilya Tocar <ilya.tocar@intel.com>
26587
26588 * config/i386/i386.h (EXT_REX_SSE_REG_P): New.
26589 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Use "v"
26590 constraint.
26591 (*movxi_internal_avx512f): Ditto.
26592 (define_split): Check for xmm16+, when splitting scalar float_extend.
26593 (*extendsfdf2_mixed): Use "v" constraint.
26594 (define_split): Check for xmm16+, when splitting scalar float_truncate.
26595 (*truncdfsf_fast_sse): Use "v" constraint.
26596 (fix_trunc<MODEF:mode><SWI48:mode>_sse): Ditto.
26597 (*float<SWI48:mode><MODEF:mode>2_sse): Ditto.
26598 (define_peephole2): Check for xmm16+, when converting scalar
26599 float_truncate.
26600 (define_peephole2): Check for xmm16+, when converting scalar
26601 float_extend.
26602 (*fop_<mode>_comm_mixed): Use "v" constraint.
26603 (*fop_<mode>_comm_sse): Ditto.
26604 (*fop_<mode>_1_mixed): Ditto.
26605 (*sqrt<mode>2_sse): Ditto.
26606 (*ieee_s<ieee_maxmin><mode>3): Ditto.
26607
26608 2015-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26609
26610 * combine.c (simplify_if_then_else): Use std::swap instead
26611 of manually swapping.
26612 (known_cond): Likewise.
26613 (simplify_comparison): Likewise.
26614
26615 2015-04-27 Peter Bergner <bergner@vnet.ibm.com>
26616
26617 PR target/64579
26618 * config/rs6000/htm.md: Remove all define_expands.
26619 (UNSPECV_HTM_TABORTDC, UNSPECV_HTM_TABORTDCI, UNSPECV_HTM_TABORTWC,
26620 UNSPECV_HTM_TABORTWCI): Remove.
26621 (UNSPECV_HTM_TABORTXC, UNSPECV_HTM_TABORTXCI, UNSPECV_HTM_TTEST): New.
26622 (tabort_internal, tbegin_internal, tcheck_internal, tend_internal,
26623 trechkpt_internal, treclaim_internal, tsr_internal): Rename from this...
26624 (tabort, tbegin, tcheck, tend, trechkpt, treclaim, tsr): ...to this.
26625 (tabortdc_internal, tabortdci_internal, tabortwc_internal,
26626 tabortwci_internal): Remove define_insns.
26627 (tabort<wd>c, tabort<wd>ci): New define_insns.
26628 (tabort): Use gpc_reg_operand.
26629 (tcheck): Remove operand.
26630 (htm_mfspr_<mode>, htm_mtspr_<mode>): Use GPR mode macro.
26631 * config/rs6000/htmxlintrin.h (__TM_end): Use _HTM_TRANSACTIONAL as
26632 expected value.
26633 * config/rs6000/rs6000-builtin.def (BU_HTM_SPR0): Remove.
26634 (BU_HTM_SPR1): Rename to BU_HTM_V1. Remove use of RS6000_BTC_SPR.
26635 (tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin,
26636 tcheck, tend, tendall, trechkpt, treclaim, tresume, tsuspend,
26637 tsr, ttest): Pass in the RS6000_BTC_CR attribute.
26638 (get_tfhar, set_tfhar, get_tfiar, set_tfiar, get_texasr, set_texasr,
26639 get_texasru, set_texasru): Pass in the RS6000_BTC_SPR attribute.
26640 (tcheck): Remove builtin argument.
26641 * config/rs6000/rs6000.c (rs6000_htm_spr_icode): Use TARGET_POWERPC64
26642 not TARGET_64BIT.
26643 (htm_expand_builtin): Fix usage of expandedp. Disallow usage of the
26644 tabortdc and tabortdci builtins when not in 64-bit mode.
26645 Modify code to handle the loss of the HTM define_expands.
26646 Emit code to copy the CR register to TARGET.
26647 (htm_init_builtins): Modify code to handle the loss of the HTM
26648 define_expands.
26649 * config/rs6000/rs6000.h (RS6000_BTC_32BIT): Delete.
26650 (RS6000_BTC_64BIT): Likewise.
26651 (RS6000_BTC_CR): New macro.
26652 * doc/extend.texi: Update documentation for htm builtins.
26653
26654 2015-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26655
26656 * simplify-rtx.c (simplify_gen_binary): Use std::swap instead
26657 of manually swapping.
26658 (simplify_associative_operation): Likewise.
26659 (simplify_binary_operation): Likewise.
26660 (simplify_plus_minus): Likewise.
26661 (simplify_relational_operation): Likewise.
26662 (simplify_ternary_operation): Likewise.
26663
26664 2015-04-27 Richard Sandiford <richard.sandiford@arm.com>
26665
26666 * config/stormy16/predicates.md (xs_hi_general_operand): Delete.
26667 (xs_hi_nonmemory_operand): Remove error.
26668 * config/stormy16/stormy16.md (movhi, movhi_internal): Use
26669 general_operand rather than xs_hi_general_operand.
26670
26671 2015-04-27 Richard Biener <rguenther@suse.de>
26672
26673 * tree-ssa-dom.c (record_equivalences_from_phis): Valueize PHI arg.
26674 (record_equivalences_from_stmt): Valueize rhs.
26675 (record_equality): Canonicalize x and y order via
26676 tree_swap_operands_p. Do not swap operands for same loop depth.
26677
26678 2015-04-27 Georg-Johann Lay <avr@gjlay.de>
26679
26680 PR target/65296
26681 PR target/65895
26682 * config/avr/gen-avr-mmcu-specs.c (print_mcu): Close file.
26683 Add hint how to use own spec file.
26684
26685 2015-04-27 Jakub Jelinek <jakub@redhat.com>
26686
26687 PR tree-optimization/65875
26688 * tree-vrp.c (update_value_range): If in is_new case setting
26689 old_vr to VR_VARYING, also set new_vr to it. Remove
26690 old_vr->type == VR_VARYING test.
26691 (vrp_visit_phi_node): Return SSA_PROP_VARYING instead of
26692 SSA_PROP_INTERESTING if update_value_range returned true,
26693 but new range is VR_VARYING.
26694
26695 2015-04-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
26696
26697 * combine.c (sign_extend_short_imm): New.
26698 (set_nonzero_bits_and_sign_copies): Use above new function for sign
26699 extension of src short immediate.
26700 (reg_nonzero_bits_for_combine): Likewise for tem.
26701
26702 2015-04-27 Eric Botcazou <ebotcazou@adacore.com>
26703
26704 * stor-layout.c (self_referential_component_ref_p): New predicate.
26705 (copy_self_referential_tree_r): Use it.
26706 (self_referential_size): Punt for simple operations directly involving
26707 self-referential component references.
26708 * tree-cfg.c (dump_function_to_file): Add missing final curly bracket.
26709
26710 2015-04-27 Eric Botcazou <ebotcazou@adacore.com>
26711
26712 * ipa-icf.c (icf_handled_component_p): Remove redundant tests.
26713
26714 2015-04-27 Richard Sandiford <richard.sandiford@arm.com>
26715
26716 * vec.h (vec): Make splice arguments const. Update definitions
26717 accordingly.
26718
26719 2015-04-27 Yvan Roux <yvan.roux@linaro.org>
26720
26721 * config/arm/arm.md (*arm_subsi3_insn): Fixed redundant
26722 alternatives.
26723
26724 2015-04-26 Tom de Vries <tom@codesourcery.com>
26725
26726 PR tree-optimization/65826
26727 * internal-fn.def: Mark VA_ARG with ECF_LEAF.
26728
26729 2015-04-24 Steve Ellcey <sellcey@imgtec.com>
26730
26731 * config/mips/mips.md: (*madd4<mode>) Remove accum_in attribute.
26732 (*madd3<mode>): Ditto.
26733 (*msub4<mode>): Ditto.
26734 (*msub3<mode>): Ditto.
26735 (*nmadd4<mode>): Ditto.
26736 (*nmadd3<mode>): Ditto.
26737 (*nmadd4<mode>_fastmath): Ditto.
26738 (*nmadd3<mode>_fastmath): Ditto.
26739 (*nmsub4<mode>): Ditto.
26740 (*nmsub3<mode>): Ditto.
26741 (*nmsub4<mode>_fastmath): Ditto.
26742 (*nmsub3<mode>_fastmath): Ditto.
26743
26744 2015-04-24 Jason Merrill <jason@redhat.com>
26745
26746 PR c++/50800
26747 * tree.c (build_reference_type_for_mode): Don't pass can_alias_all
26748 down when building TYPE_CANONICAL.
26749 (build_pointer_type_for_mode): Likewise.
26750
26751 2015-04-24 Chen Gang <gang.chen.5i5j@gmail.com>
26752
26753 * genrecog.c (validate_pattern): Check matching constraint refers
26754 to a lower numbered operand.
26755
26756 2015-04-24 Michael Meissner <meissner@linux.vnet.ibm.com>
26757
26758 PR target/65849
26759 * config/rs6000/rs6000.opt (-mvsx-align-128): Make options that
26760 save to independent variables use the Save attribute. This will
26761 allow these options to be modified with the #pragma/attribute
26762 target support.
26763 (-mallow-movmisalign): Likewise.
26764 (-mallow-df-permute): Likewise.
26765 (-msched-groups): Likewise.
26766 (-malways-hint): Likewise.
26767 (-malign-branch-targets): Likewise.
26768 (-mvectorize-builtins): Likewise.
26769 (-msave-toc-indirect): Likewise.
26770
26771 * config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that
26772 can be set via the #pragma/attribute target support.
26773 (rs6000_opt_vars): Likewise.
26774 (rs6000_inner_target_options): If VSX was set, also set
26775 -mno-avoid-indexed-addresses.
26776
26777 2015-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26778
26779 * config/arm/iterators.md (shiftable_ops): Rename to...
26780 (SHIFTABLE_OPS): ... This. Update use in comments.
26781 (ior_xor): Rename to...
26782 (IOR_XOR): ... This.
26783 (vqh_ops): Rename to...
26784 (VQH_OPS): ... This.
26785 (vqhs_ops): Rename to...
26786 (VQHS_OPS): ... This.
26787 (rshifts): Rename to...
26788 (RSHIFTS): ... This.
26789 (returns): Rename to...
26790 (RETURNS): ... This.
26791 * config/arm/arm.md: Update uses of the above.
26792 * config/arm/neon.md: Likewise.
26793
26794 2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26795
26796 * config.host (case ${host}): Add aarch64*-*-linux case.
26797 * config/aarch64/aarch64-cores.def: Add IMPLEMENTER_ID and PART_NUMBER
26798 fields to all the cores.
26799 * config/aarch64/aarch64-elf.h (DRIVER_SELF_SPECS):
26800 Add MCPU_MTUNE_NATIVE_SPECS.
26801 * config/aarch64/aarch64-option-extensions.def: Add FEATURE_STRING
26802 field to all extensions.
26803 * config/aarch64/aarch64-opts.h: Adjust definition of AARCH64_CORE.
26804 * config/aarch64/aarch64.c: Adjust definition of AARCH64_CORE.
26805 Adjust definition of AARCH64_OPT_EXTENSION.
26806 * config/aarch64/aarch64.h: Adjust definition of AARCH64_CORE.
26807 (MCPU_MTUNE_NATIVE_SPECS): Define.
26808 * config/aarch64/driver-aarch64.c: New file.
26809 * config/aarch64/x-arch64: New file.
26810 * doc/invoke.texi (AArch64 Options): Document native value for -mcpu,
26811 -mtune and -march.
26812
26813 2015-04-24 Uros Bizjak <ubizjak@gmail.com>
26814 Wei Mi <wmi@google.com>
26815
26816 * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple): New.
26817 * config/i386/i386.c (extract_base_offset_in_addr): New function.
26818 (ix86_operands_ok_for_move_multiple): Ditto.
26819 * config/i386/sse.md (movsd/movhpd to movupd peephole2): New pattern.
26820 (movlpd/movhpd to movupd peephole2): Ditto.
26821
26822 2015-04-24 Marek Polacek <polacek@redhat.com>
26823
26824 PR c/61534
26825 * input.h (from_macro_expansion_at): Define.
26826
26827 PR c/63357
26828 * doc/invoke.texi: Update description of -Wlogical-op.
26829
26830 2015-04-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
26831
26832 * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): fix
26833 ternary operator in fprintf and harmonize spacing.
26834
26835 2015-04-24 Uros Bizjak <ubizjak@gmail.com>
26836
26837 * config/i386/sse.md (*vec_widen_smult_even_v8si<mask_name>):
26838 Mark operand1 commutative.
26839
26840 2015-04-24 Uros Bizjak <ubizjak@gmail.com>
26841
26842 * config/i386/sse.md (*vec_concatv2sf_sse4_1): Do not allow both
26843 input operands in memory.
26844 (*vec_concatv2si_sse4_1): Ditto.
26845 (*vec_concatv2df): Ditto, except for SSE3 and equal input operands.
26846 (vec_extract_lo_<mode><mask_name>): Change operand 1 predicate to
26847 register_operand.
26848 (vec_extract_hi_v32hi): Ditto.
26849 (vec_extract_hi_v64hi): Ditto.
26850 (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
26851
26852 2015-04-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
26853 Steven Bosscher <steven@gcc.gnu.org>
26854
26855 PR rtl-optimization/34503
26856 * cprop.c (cprop_reg_p): New.
26857 (hash_scan_set): Use above function to check if register can be
26858 propagated.
26859 (find_avail_set): Return up to two sets, one whose source is a
26860 register and one whose source is a constant. Sets are returned in an
26861 array passed as parameter rather than as a return value.
26862 (cprop_insn): Use a do while loop rather than a goto. Try each of the
26863 sets returned by find_avail_set, starting with the one whose source is
26864 a constant. Use cprop_reg_p to check if register can be propagated.
26865 (do_local_cprop): Use cprop_reg_p to check if register can be
26866 propagated.
26867 (implicit_set_cond_p): Likewise.
26868
26869 2015-04-23 Jan Hubicka <hubicka@ucw.cz>
26870
26871 * ipa-icf.c (sem_function::equals_wpa): Compare thunk info.
26872 (sem_function::equals): IGNORED_NODES parameter is now unused;
26873 update call of equals_private.
26874 (sem_function::equals_private): Do not call equals_wpa; skip
26875 gimple body matching if there is no body.
26876 (sem_function::init): Add logic to hash tthunk info.
26877 (sem_function::parse): Also parse thunks.
26878 * ipa-icf.h (equals_private): Update declaration.
26879
26880 2015-04-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26881
26882 * config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove
26883 asterisk from name so this can be generated directly.
26884 (*altivec_stvx_<mode>_internal): Likewise.
26885 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert
26886 that this is never called during or after reload/lra.
26887 (rs6000_frame_related): Remove split_reg
26888 argument and logic that references it.
26889 (emit_frame_save): Remove last parameter from call to
26890 rs6000_frame_related.
26891 (rs6000_emit_prologue): Remove last parameter from eight calls to
26892 rs6000_frame_related. Force generation of stvx instruction for
26893 Altivec register saves. Remove split_reg handling, which is no
26894 longer needed.
26895 (rs6000_emit_epilogue): Force generation of lvx instruction for
26896 Altivec register restores.
26897
26898 2015-04-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26899
26900 * config/rs6000/rs6000.opt (mcrypto): Change option description to
26901 match category changes in ISA 2.07B.
26902
26903 2015-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26904
26905 * config/arm/iterators.md (GTGE, GTUGEU, COMPARISONS): New code
26906 iterators.
26907 (cmp_op, cmp_type): New code attributes.
26908 (NEON_VCMP, NEON_VACMP): New int iterators.
26909 (cmp_op_unsp): New int attribute.
26910 * config/arm/neon.md (neon_vc<cmp_op><mode>): New define_expand.
26911 (neon_vceq<mode>): Delete.
26912 (neon_vc<cmp_op><mode>_insn): New pattern.
26913 (neon_vc<cmp_op_unsp><mode>_insn_unspec): Likewise.
26914 (neon_vcgeu<mode>): Delete.
26915 (neon_vcle<mode>): Likewise.
26916 (neon_vclt<mode>: Likewise.
26917 (neon_vcage<mode>): Likewise.
26918 (neon_vcagt<mode>): Likewise.
26919 (neon_vca<cmp_op><mode>): New define_expand.
26920 (neon_vca<cmp_op><mode>_insn): New pattern.
26921 (neon_vca<cmp_op_unsp><mode>_insn_unspec): Likewise.
26922
26923 2015-04-23 Jan Hubicka <hubicka@ucw.cz>
26924
26925 * tree.h (attribute_value_equal): Declare.
26926 * tree.c (attribute_value_equal): Export.
26927
26928 2015-04-23 Jan Hubicka <hubicka@ucw.cz>
26929
26930 * ipa-icf.c (sem_item::compare_attributes): New function.
26931 (sem_item::compare_referenced_symbol_properties): Compare variable
26932 attributes.
26933 (sem_item::hash_referenced_symbol_properties): Record DECL_ALIGN.
26934 (sem_function::param_used_p): New function.
26935 (sem_function::equals_wpa): Fix attribute comparsion; match
26936 parameter type codes; do not compare paremter flags when
26937 they are not used; compare edge flags; compare indirect calls.
26938 (sem_item::update_hash_by_addr_refs): Hash reference type.
26939 (sem_function::equals_private): Do not match DECL_ATTRIBUTES.
26940 (sem_variable::equals_wpa): Do not match DECL_ALIGN; match
26941 reference use type.
26942 (sem_item_optimizer::update_hash_by_addr_refs): Use param_used_p.
26943 * ipa-icf.h (compare_attributes, param_used_p): Declare.
26944
26945 2015-04-23 Jan Hubicka <hubicka@ucw.cz>
26946
26947 * ipa-icf.c (symbol_compare_collection::symbol_compare_collection):
26948 cleanup.
26949 (sem_function::get_hash): Do not hash DECL_DISREGARD_INLINE_LIMITS,
26950 DECL_DECLARED_INLINE_P and DECL_IS_OPERATOR_NEW.
26951 (sem_item::compare_referenced_symbol_properties): New.
26952 (sem_item::hash_referenced_symbol_properties): New.
26953 (sem_item::compare_cgraph_references): Rename to ...
26954 (sem_item::compare_symbol_references): ... this one; use
26955 compare_referenced_symbol_properties.
26956 (sem_function::equals_wpa): Do not compare
26957 DECL_DISREGARD_INLINE_LIMITS, DECL_DECLARED_INLINE_P,
26958 DECL_IS_OPERATOR_NEW; compare pointer sizes.
26959 (sem_item::update_hash_by_addr_refs): Call
26960 hash_referenced_symbol_properties.
26961 (sem_item::update_hash_by_local_refs): Cleanup.
26962 (sem_function::merge): Do not mix up symbol properties.
26963 (sem_variable::equals_wpa): Use compare_symbol_references.
26964 * ipa-icf.h (sem_item::compare_referenced_symbol_properties): New.
26965 (sem_item::hash_referenced_symbol_properties): New.
26966 (sem_item::compare_symbol_references): New.
26967 (sem_item::compare_cgraph_references): Remove.
26968
26969 2015-04-23 Kwok Cheung Yeung <kcy@codesourcery.com>
26970
26971 PR target/26702
26972 * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL):
26973 Emit size of local.
26974
26975 2015-04-23 Nick Clifton <nickc@redhat.com>
26976
26977 * config/rl78/rl78.c (rl78_preferred_reload_class): Add
26978 ATTRIBUTE_UNUSED to x parameter.
26979 * config/rl78/rl78-opts.h (enum rl78_mul_types): Remove unused MUL_RL78.
26980
26981 2015-04-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
26982
26983 * config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
26984 TARGET_CRYPTO to TARGET_P8_VECTOR>
26985 (crypto_vpermxor_<mode>): Likewise.
26986 * config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
26987 (BU_CRYPTO_3A): Likewise.
26988 (BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
26989 (BU_CRYPTO_OVERLOAD_3A): New #define.
26990 (VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
26991 (VPMSUMH): Likewise.
26992 (VPMSUMW): Likewise.
26993 (VPMSUMD): Likewise.
26994 (VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
26995 (VPERMXOR_V4SI): Likewise.
26996 (VPERMXOR_V8HI): Likewise.
26997 (VPERMXOR_V16QI): Likewise.
26998 (VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
26999 BU_CRYPTO_OVERLOAD_2A.
27000 (VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
27001 BU_CRYPTO_OVERLOAD_3A.
27002 * config/rs6000/rs6000.opt (mcrypto): Change description of
27003 option.
27004
27005 2015-04-23 Richard Biener <rguenther@suse.de>
27006
27007 * passes.def: Remove copy propagation passes run directly after CCP.
27008 * tree-ssa-ccp.c (get_value_for_expr): Fall back to a COPY for
27009 SSA names.
27010 (ccp_visit_phi_node): Rework to handle first executable edge
27011 specially.
27012
27013 2015-04-23 Matthew Wahab <matthew.wahab@arm.com>
27014
27015 * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
27016 (ARM_LEGITIMIZE_RELOAD_ADDRESS): Remove.
27017 (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Remove.
27018 * config/arm/arm.c (arm_legimitimize_reload_address): Remove.
27019 (thumb_legimitimize_reload_address): Remove.
27020 * config/arm/arm-protos.h (arm_legimitimize_reload_address):
27021 Remove.
27022 (thumb_legimitimize_reload_address): Remove.
27023
27024 2015-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27025
27026 * conditions.h (CC_STATUS_INIT): Gate on #ifndef CC_STATUS_INIT.
27027
27028 2015-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27029
27030 * config/arm/arm.md (load_multiple): Reject operand 2 greater than
27031 MAX_LDM_STM_OPS.
27032 (store_multiple): Likewise.
27033
27034 2015-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27035
27036 * config/arm/arm-protos.h (struct tune_params): Add issue_rate field.
27037 * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune,
27038 arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune,
27039 arm_cortex_tune, arm_cortex_a8_tune, arm_cortex_a7_tune,
27040 arm_cortex_a15_tune, arm_cortex_a53_tune, arm_cortex_a57_tune,
27041 arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune,
27042 arm_fa726te_tune arm_cortex_a5_tune, arm_xgene1_tune):
27043 Specify issue_rate value.
27044 (arm_issue_rate): Look up issue rate from tuning structs. Remove
27045 large switch statement.
27046 (arm_marvell_pj4_tune): New struct.
27047 * config/arm/arm-cores.def (marvell-pj4): Use arm_marvell_pj4_tune
27048 struct.
27049
27050 2015-04-23 Richard Biener <rguenther@suse.de>
27051
27052 * tree-vect-slp.c (vect_find_first_load_in_slp_instance): Remove.
27053 (vect_find_last_store_in_slp_instance): Rename to ...
27054 (vect_find_last_scalar_stmt_in_slp): ... this and generalize.
27055 (vect_analyze_slp_cost_1): Use vector_load for constant defs
27056 and vec_construct for external defs when estimating prologue cost.
27057 (vect_analyze_slp_instance): Do not init SLP_INSTANCE_FIRST_LOAD_STMT.
27058 Compute costs here only when vectorizing loops.
27059 (vect_slp_analyze_bb_1): Compute SLP cost here, after vector types
27060 have been determined.
27061 (vect_schedule_slp_instance): Simplify vectorized code placement
27062 and prepare for in-BB external defs.
27063 * tree-vectorizer.h (struct _slp_instance): Remove first_load member.
27064 (SLP_INSTANCE_FIRST_LOAD_STMT): Remove.
27065 * tree-vect-stmts.c (vect_model_store_cost): Remove PURE_SLP_STMT
27066 guard.
27067 (vect_model_load_cost): Likewise.
27068 (vectorizable_store): Instead add it here.
27069 (vectorizable_load): Likewise.
27070 (vect_is_simple_use): Dump def type textually.
27071
27072 2015-04-23 Richard Biener <rguenther@suse.de>
27073
27074 * cfgexpand.c (expand_gimple_stmt_1): Use ops.code.
27075 * cfgloop.c (verify_loop_structure): Verify the root loop node.
27076 * except.c (duplicate_eh_regions): Call get_eh_region_from_lp_number_fn
27077 instead of get_eh_region_from_lp_number.
27078 * loop-init.c (fix_loop_structure): If we removed a loop, reset
27079 the SCEV cache.
27080
27081 2015-04-23 Anton Blanchard <anton@samba.org>
27082
27083 * config/rs6000/rs6000.c (rs6000_output_function_prologue): No
27084 need for -mprofile-kernel to save LR to stack.
27085
27086 2015-04-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
27087
27088 * config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
27089 adjustments.
27090 (insn_is_swappable_p): Return 1 for a convert from double to
27091 single precision when all of its uses are splats of BE element
27092 zero.
27093
27094 2015-04-23 Kugan Vivekanandarajah <kuganv@linaro.org>
27095
27096 * ira-costs.c (record_operand_costs): Fix typo (remove redundant code).
27097
27098 2015-04-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
27099
27100 PR target/65456
27101 * config/rs6000/rs6000.c (rs6000_option_override_internal): For
27102 VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
27103 TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
27104 option.
27105 (rs6000_builtin_mask_for_load): Return 0 for targets with
27106 efficient unaligned VSX accesses so that the vectorizer will use
27107 direct unaligned loads.
27108 (rs6000_builtin_support_vector_misalignment): Always return true
27109 for targets with efficient unaligned VSX accesses.
27110 (rs6000_builtin_vectorization_cost): Cost of unaligned loads and
27111 stores on targets with efficient unaligned VSX accesses is almost
27112 always the same as the cost of an aligned load or store, so model
27113 it that way.
27114 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
27115 unaligned vectors if we have efficient unaligned VSX accesses.
27116 * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
27117 undocumented option.
27118
27119 2015-04-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27120
27121 Revert:
27122 2015-04-22 Gregor Richards <gregor.richards@uwaterloo.ca>
27123
27124 * config.gcc (LIBC_MUSL): New tm_defines macro.
27125 * config/linux.h (OPTION_MUSL): Define.
27126 (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
27127 (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
27128 (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
27129
27130 * config/linux.opt (mmusl): New option.
27131 * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
27132 (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
27133
27134 * configure: Regenerate.
27135
27136 2015-04-22 Gregor Richards <gregor.richards@uwaterloo.ca>
27137
27138 * config.gcc (LIBC_MUSL): New tm_defines macro.
27139 * config/linux.h (OPTION_MUSL): Define.
27140 (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
27141 (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
27142 (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
27143
27144 * config/linux.opt (mmusl): New option.
27145 * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
27146 (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
27147
27148 * configure: Regenerate.
27149
27150 2015-04-22 Yury Gribov <y.gribov@samsung.com>
27151
27152 * doc/invoke.texi (-fsanitize-sections): Update description.
27153 * asan.c (set_sanitized_sections): Parse incoming arg.
27154 (section_sanitized_p): Support wildcards.
27155
27156 2015-04-22 Tom de Vries <tom@codesourcery.com>
27157
27158 PR tree-optimization/65823
27159 * gimplify.c (gimplify_modify_expr): Use operand_equal_p to test for
27160 equality between ap_copy and ap.
27161
27162 2015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
27163
27164 PR target/47098
27165 * config/openbsd-oldgas.h (OBSD_LIB_SPEC): Add.
27166
27167 2015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
27168
27169 PR target/47122
27170 * config.gcc (vax-*-openbsd*): Fix name of pthread spec header.
27171
27172 2015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
27173
27174 PR target/55144
27175 * config.gcc (bfin*-linux-uclibc*): Prepend tmake_file and
27176 remove already contained t-files.
27177
27178 2015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
27179
27180 * tree-tailcall.c (suitable_for_tail_opt_p, find_tail_calls):
27181 Remove unneeded forward declarations.
27182 (suitable_for_tail_call_opt_p): Commentary typo fix.
27183
27184 2015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
27185
27186 * varasm.c (emit_bss): Remove redundant guard.
27187
27188 2015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
27189
27190 * config/c6x/c6x.h (TARGET_CPU_CPP_BUILTINS): Add unk_isa.
27191
27192 2015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
27193
27194 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Add BFIN_CPU_UNKNOWN.
27195
27196 2015-04-22 Hale Wang <hale.wang@arm.com>
27197 Terry Guo <terry.guo@arm.com>
27198
27199 PR rtl-optimization/64818
27200 * combine.c (can_combine_p): Don't combine user-specified
27201 register if it is in an asm input.
27202
27203 2015-04-21 Jan Hubicka <hubicka@ucw.cz>
27204
27205 PR ipa/65076
27206 * passes.def (early_optimizations): Add pass_dse.
27207
27208 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
27209
27210 * defaults.h (INSN_REFERENCES_ARE_DELAYED): New definition.
27211 * reorg.c (redundant_insn): Remove ifdef
27212 INSN_REFERENCES_ARE_DELAYED.
27213 * resource.c (mark_referenced_resources): Likewise.
27214
27215 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
27216
27217 * defaults.h (INSN_SETS_ARE_DELAYED): New definition.
27218 * reorg.c (redundant_insn): Remove ifdef INSN_SETS_ARE_DELAYED.
27219 * resource.c (mark_set_resources): Likewise.
27220
27221 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
27222
27223 * caller-save.c (insert_one_insn): Remove ifdef HAVE_cc0.
27224 * cfgcleanup.c (flow_find_cross_jump): Likewise.
27225 (flow_find_head_matching_sequence): Likewise.
27226 (try_head_merge_bb): Likewise.
27227 * combine.c (can_combine_p): Likewise.
27228 (try_combine): Likewise.
27229 (distribute_notes): Likewise.
27230 * df-problems.c (can_move_insns_across): Likewise.
27231 * final.c (final): Likewise.
27232 * gcse.c (insert_insn_end_basic_block): Likewise.
27233 * ira.c (find_moveable_pseudos): Likewise.
27234 * reorg.c (try_merge_delay_insns): Likewise.
27235 (fill_simple_delay_slots): Likewise.
27236 (fill_slots_from_thread): Likewise.
27237 * sched-deps.c (sched_analyze_2): Likewise.
27238
27239 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
27240
27241 * df-scan.c (df_get_entry_block_def_set): Remove #ifdef
27242 PIC_OFFSET_TABLE_REGNUM.
27243
27244 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
27245
27246 * alias.c (init_alias_target): Remove ifdef
27247 * HARD_FRAME_POINTER_IS_FRAME_POINTER.
27248 * df-scan.c (df_insn_refs_collect): Likewise.
27249 (df_get_regular_block_artificial_uses): Likewise.
27250 (df_get_eh_block_artificial_uses): Likewise.
27251 (df_get_entry_block_def_set): Likewise.
27252 (df_get_exit_block_use_set): Likewise.
27253 * emit-rtl.c (gen_rtx_REG): Likewise.
27254 * ira.c (ira_setup_eliminable_regset): Likewise.
27255 * reginfo.c (init_reg_sets_1): Likewise.
27256 * regrename.c (rename_chains): Likewise.
27257 * reload1.c (reload): Likewise.
27258 (eliminate_regs_in_insn): Likewise.
27259 * resource.c (mark_referenced_resources): Likewise.
27260 (init_resource_info): Likewise.
27261
27262 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
27263
27264 * defaults.h (MASK_RETURN_ADDR): New definition.
27265 * except.c (expand_builtin_extract_return_addr): Remove ifdef
27266 MASK_RETURN_ADDR.
27267
27268 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
27269
27270 * defaults.h (RETURN_ADDR_OFFSET): New definition.
27271 * except.c (expand_builtin_extract_return_addr): Remove ifdef
27272 RETURN_ADDR_OFFSET.
27273 (expand_builtin_frob_return_addr): Likewise.
27274
27275 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
27276
27277 * cfgrtl.c (rtl_merge_blocks): Change #if HAVE_cc0 to if (HAVE_cc0)
27278 (try_redirect_by_replacing_jump): Likewise.
27279 (rtl_tidy_fallthru_edge): Likewise.
27280 * combine.c (insn_a_feeds_b): Likewise.
27281 (find_split_point): Likewise.
27282 (simplify_set): Likewise.
27283 * cprop.c (cprop_jump): Likewise.
27284 * cse.c (cse_extended_basic_block): Likewise.
27285 * df-problems.c (can_move_insns_across): Likewise.
27286 * function.c (emit_use_return_register_into_block): Likewise.
27287 * haifa-sched.c (sched_init): Likewise.
27288 * ira.c (find_moveable_pseudos): Likewise.
27289 * loop-invariant.c (find_invariant_insn): Likewise.
27290 * lra-constraints.c (curr_insn_transform): Likewise.
27291 * postreload.c (reload_combine_recognize_const_pattern):
27292 * Likewise.
27293 * reload.c (find_reloads): Likewise.
27294 * reorg.c (delete_scheduled_jump): Likewise.
27295 (steal_delay_list_from_target): Likewise.
27296 (steal_delay_list_from_fallthrough): Likewise.
27297 (redundant_insn): Likewise.
27298 (fill_simple_delay_slots): Likewise.
27299 (fill_slots_from_thread): Likewise.
27300 (delete_computation): Likewise.
27301 * sched-rgn.c (add_branch_dependences): Likewise.
27302
27303 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
27304
27305 * genconfig.c (main): Always define HAVE_cc0.
27306 * caller-save.c (insert_one_insn): Change ifdef HAVE_cc0 to #if
27307 HAVE_cc0.
27308 * cfgcleanup.c (flow_find_cross_jump): Likewise.
27309 (flow_find_head_matching_sequence): Likewise.
27310 (try_head_merge_bb): Likewise.
27311 * cfgrtl.c (rtl_merge_blocks): Likewise.
27312 (try_redirect_by_replacing_jump): Likewise.
27313 (rtl_tidy_fallthru_edge): Likewise.
27314 * combine.c (do_SUBST_MODE): Likewise.
27315 (insn_a_feeds_b): Likewise.
27316 (combine_instructions): Likewise.
27317 (can_combine_p): Likewise.
27318 (try_combine): Likewise.
27319 (find_split_point): Likewise.
27320 (subst): Likewise.
27321 (simplify_set): Likewise.
27322 (distribute_notes): Likewise.
27323 * cprop.c (cprop_jump): Likewise.
27324 * cse.c (cse_extended_basic_block): Likewise.
27325 * df-problems.c (can_move_insns_across): Likewise.
27326 * final.c (final): Likewise.
27327 (final_scan_insn): Likewise.
27328 * function.c (emit_use_return_register_into_block): Likewise.
27329 * gcse.c (insert_insn_end_basic_block): Likewise.
27330 * haifa-sched.c (sched_init): Likewise.
27331 * ira.c (find_moveable_pseudos): Likewise.
27332 * loop-invariant.c (find_invariant_insn): Likewise.
27333 * lra-constraints.c (curr_insn_transform): Likewise.
27334 * optabs.c (prepare_cmp_insn): Likewise.
27335 * postreload.c (reload_combine_recognize_const_pattern):
27336 * Likewise.
27337 * reload.c (find_reloads): Likewise.
27338 (find_reloads_address_1): Likewise.
27339 * reorg.c (delete_scheduled_jump): Likewise.
27340 (steal_delay_list_from_target): Likewise.
27341 (steal_delay_list_from_fallthrough): Likewise.
27342 (try_merge_delay_insns): Likewise.
27343 (redundant_insn): Likewise.
27344 (fill_simple_delay_slots): Likewise.
27345 (fill_slots_from_thread): Likewise.
27346 (delete_computation): Likewise.
27347 (relax_delay_slots): Likewise.
27348 * sched-deps.c (sched_analyze_2): Likewise.
27349 * sched-rgn.c (add_branch_dependences): Likewise.
27350
27351 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
27352
27353 * combine.c (find_single_use): Remove HAVE_cc0 ifdef for code
27354 that is trivially ded on non cc0 targets.
27355 (simplify_set): Likewise.
27356 (mark_used_regs_combine): Likewise.
27357 * cse.c (new_basic_block): Likewise.
27358 (fold_rtx): Likewise.
27359 (cse_insn): Likewise.
27360 (cse_extended_basic_block): Likewise.
27361 (set_live_p): Likewise.
27362 * rtlanal.c (canonicalize_condition): Likewise.
27363 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
27364
27365 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
27366
27367 * conditions.h: Define macros even if HAVE_cc0 is undefined.
27368 * emit-rtl.c: Define functions even if HAVE_cc0 is undefined.
27369 * final.c: Likewise.
27370 * jump.c: Likewise.
27371 * recog.c: Likewise.
27372 * recog.h: Declare functions even when HAVE_cc0 is undefined.
27373 * sched-deps.c (sched_analyze_2): Always compile case for cc0.
27374
27375 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
27376
27377 * defaults.h: New definition of EH_RETURN_DATA_REGNO.
27378 * except.c: Remove definition of EH_RETURN_DATA_REGNO.
27379 * builtins.c (expand_builtin): Remove check if
27380 EH_RETURN_DATA_REGNO is defined.
27381 * df-scan.c (df_bb_refs_collect): Likewise.
27382 (df_get_exit_block_use_set): Likewise.
27383 * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
27384 * ira-lives.c (process_bb_node_lives): Likewise.
27385 * lra-lives.c (process_bb_lives): Likewise.
27386
27387 2015-04-21 Uros Bizjak <ubizjak@gmail.com>
27388
27389 * config/i386/i386.md (ARGP_REG, FRAME_REG, BND2_REG, BND3_REG,
27390 FIRST_PSEUDO_REG): New.
27391 * config/i386/i386.h (STACK_POINTER_REGNUM): Define to SP_REG.
27392 (ARG_POINTER_REGNUM): Define to ARGP_REG.
27393 (FRAME_POINTER_REGNUM): Define to FRAME_REG.
27394 (HARD_FRAME_POINTER_REGNUM): Define to BP_REG.
27395 (FIRST_PSEUDO_REGISTER): Define to FIRST_PSEUDO_REG.
27396 (FIRST_INT_REG): New.
27397 (LAST_INT_REG): New.
27398 (FIRST_*_REG): Define using *_REG.
27399 (LAST_*_REG): Ditto.
27400 (QI_REGNO_P): Define using FIRST_QU_REG and LAST_QI_REG.
27401 (LEGACY_INT_REGNO_P): Define using FIRST_INT_REG and LAST_INT_REG.
27402 (FIRST_FLOAT_REG): Define to FIRST_STACK_REG.
27403
27404 2015-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27405
27406 * expmed.c: (synth_mult): Only assume overlapping
27407 shift with previous steps in alg_sub_t_m2 case.
27408
27409 2015-04-21 Richard Biener <rguenther@suse.de>
27410
27411 PR tree-optimization/65650
27412 * tree-ssa-ccp.c (valid_lattice_transition): Allow lattice
27413 transitions involving copies.
27414 (set_lattice_value): Adjust for copy lattice state.
27415 (ccp_lattice_meet): Do not merge UNDEFINED and a copy to the copy
27416 if that doesn't dominate the merge point.
27417 (bit_value_unop): Adjust what we treat as varying mask.
27418 (bit_value_binop): Likewise.
27419 (bit_value_assume_aligned): Likewise.
27420 (evaluate_stmt): When we simplified to a SSA name record a copy
27421 instead of dropping to varying.
27422 (visit_assignment): Simplify.
27423
27424 * gimple-match.h (gimple_simplify): Add another callback.
27425 * gimple-fold.c (fold_stmt_1): Adjust caller.
27426 (gimple_fold_stmt_to_constant_1): Likewise - pass valueize
27427 for the 2nd callback.
27428 * gimple-match-head.c (gimple_simplify): Add a callback that is
27429 used to valueize the stmt operands and use it that way.
27430
27431 2015-04-21 Richard Biener <rguenther@suse.de>
27432
27433 PR tree-optimization/65788
27434 * tree-ssa-ccp.c (evaluate_stmt): Evaluate to UNDEFINED early.
27435
27436 2015-04-21 Richard Biener <rguenther@suse.de>
27437
27438 * config/i386/i386.c (ix86_builtin_vectorization_cost): Scale
27439 vec_construct cost by vec_stmt_cost.
27440
27441 2015-04-21 Richard Biener <rguenther@suse.de>
27442
27443 * cfghooks.h (create_basic_block): Replace with two overloads
27444 for RTL and GIMPLE.
27445 (split_block): Likewise.
27446 * cfghooks.c (split_block): Rename to ...
27447 (split_block_1): ... this.
27448 (split_block): Add two type-safe overloads for RTL and GIMPLE.
27449 (split_block_after_labels): Call split_block_1.
27450 (create_basic_block): Rename to ...
27451 (create_basic_block_1): ... this.
27452 (create_basic_block): Add two type-safe overloads for RTL and GIMPLE.
27453 (create_empty_bb): Call create_basic_block_1.
27454 * cfgrtl.c (fixup_fallthru_exit_predecessor): Use
27455 split_block_after_labels.
27456 * omp-low.c (expand_parallel_call): Likewise.
27457 (expand_omp_target): Likewise.
27458 (simd_clone_adjust): Likewise.
27459 * tree-chkp.c (chkp_get_entry_block): Likewise.
27460 * cgraphunit.c (init_lowered_empty_function): Use the GIMPLE
27461 create_basic_block overload.
27462 (cgraph_node::expand_thunk): Likewise.
27463 * tree-cfg.c (make_blocks): Likewise.
27464 (handle_abnormal_edges): Likewise.
27465 * tree-inline.c (copy_bb): Likewise.
27466
27467 2015-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27468
27469 * config/aarch64/aarch64.md (*<NLOGICAL:optab>_one_cmplsidi3_ze):
27470 New pattern.
27471 (*xor_one_cmplsidi3_ze): Likewise.
27472
27473 2015-04-21 Thomas Preud'homme <thomas.preudhomme@arm.com>
27474
27475 * df-core.c (df_finish_pass): Iterate over df->problems_by_index[] and
27476 use df_remove_problem rather than manually removing problems, leaving
27477 holes in df->problems_in_order[].
27478
27479 2015-04-21 Tom de Vries <tom@codesourcery.com>
27480
27481 PR tree-optimization/65802
27482 * internal-fn.def (VA_ARG): Add ECF_NOTROW to flags.
27483
27484 2015-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27485
27486 * common/config/aarch64/aarch64-common.c (AARCH64_CPU_NAME_LENGTH):
27487 Increase to 128.
27488 (aarch64_rewrite_selected_cpu): Do not chop off extensions starting
27489 at '.'. Assert that there's enough space for everything.
27490
27491 2015-04-21 Uros Bizjak <ubizjak@gmail.com>
27492
27493 PR tree-optimization/64950
27494 Revert:
27495 2010-08-02 Uros Bizjak <ubizjak@gmail.com>
27496
27497 PR target/41089
27498 * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
27499 as volatile.
27500
27501 2015-04-20 Shiva Chen <shiva0217@gmail.com>
27502
27503 PR rtl-optimization/64916
27504 * cfgcleanup.c (values_equal_p): New function.
27505 (can_replace_by): Use it.
27506
27507 2015-04-20 Paolo Carlini <paolo.carlini@oracle.com>
27508
27509 PR c++/65801
27510 * doc/invoke.texi ([-Wnarrowing]): Update.
27511
27512 2015-04-20 Jeff Law <law@redhat.com>
27513
27514 PR tree-optimization/65658
27515 * tree-ssa-threadupdate.c (redirection_block_p): Remove
27516 redundant test for GIMPLE_ASSIGN in last change.
27517
27518 2015-04-20 Uros Bizjak <ubizjak@gmail.com>
27519
27520 * config/i386/i386.c (set_pic_reg_ever_live): Remove.
27521 (legitimize_pic_address): Do not call set_pic_reg_ever_live.
27522 (legitimize_tls_address): Ditto.
27523 (ix86_expand_move): Ditto.
27524 (ix86_expand_binary_operator): Remove reload_in_progress checks.
27525 (ix86_expand_unary_operator): Ditto.
27526 * config/i386/predicates.md (index_register_operand): Ditto.
27527
27528 2015-04-20 Selim Belbachir <selim.belbachir@fr.thalesgroup.com>
27529
27530 * reorg.c (try_merge_delay_insns): Improve correctness checking
27531 for targets with multiple delay slots.
27532
27533 2015-04-20 Jeff Law <law@redhat.com>
27534
27535 PR tree-optimization/65658
27536 * tree-ssa-threadupdate.c (redirection_block_p): Ignore clobber
27537 statements too.
27538
27539 2015-04-20 Alan Lawrence <alan.lawrence@arm.com>
27540
27541 * config/aarch64/aarch64.c (aarch64_simd_emit_pair_result_insn): Delete.
27542 * config/aarch64/aarch64-protos.h (aarch64_simd_emit_pair_result_insn):
27543 Delete.
27544
27545 2015-04-20 Jakub Jelinek <jakub@redhat.com>
27546
27547 PR debug/65807
27548 * dwarf2out.c (add_AT_wide): Clear attr.dw_attr_val.val_entry.
27549
27550 2015-04-20 Richard Biener <rguenther@suse.de>
27551
27552 * gimple-fold.h (gimple_build): Remove optional valueize arguments.
27553 * gimple-fold.c (gimple_build_valueize): New function.
27554 (gimple_build): Always use gimple_build_valueize as valueize hook.
27555
27556 2015-04-20 Alan Lawrence <alan.lawrence@arm.com>
27557
27558 PR target/64134
27559 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Load constant
27560 and overwrite variable parts if <= 1/2 the elements are variable.
27561
27562 2015-04-19 Vladimir Makarov <vmakarov@redhat.com>
27563
27564 PR rtl-optimization/65805
27565 * lra-eliminations.c (lra_eliminate_regs_1): Add new assert.
27566 Don't use difference of offset and previous offset if
27567 update_sp_offset is non-zero.
27568 (eliminate_regs_in_insn): Ditto.
27569 * lra-spills.c (remove_pseudos): Exchange 4th and 6th args in
27570 lra_eliminate_regs_1 call.
27571 * lra-constraints.c (get_equiv_with_elimination): Ditto.
27572
27573 2015-04-18 Trevor Saunders <tsaunders@mozilla.com>
27574
27575 * hash-table.h: Remove version of hash_table that stored value_type *.
27576 * asan.c, attribs.c, bitmap.c, cfg.c, cgraph.h, config/arm/arm.c,
27577 config/i386/winnt.c, config/ia64/ia64.c, config/mips/mips.c,
27578 config/sol2.c, coverage.c, cselib.c, dse.c, dwarf2cfi.c,
27579 dwarf2out.c, except.c, gcse.c, genmatch.c, ggc-common.c,
27580 gimple-ssa-strength-reduction.c, gimplify.c, haifa-sched.c,
27581 hard-reg-set.h, hash-map.h, hash-set.h, ipa-devirt.c, ipa-icf.h,
27582 ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
27583 loop-iv.c, loop-unroll.c, lto-streamer.h, plugin.c, postreload-gcse.c,
27584 reginfo.c, statistics.c, store-motion.c, trans-mem.c, tree-cfg.c,
27585 tree-eh.c, tree-hasher.h, tree-into-ssa.c, tree-parloops.c,
27586 tree-sra.c, tree-ssa-coalesce.c, tree-ssa-dom.c, tree-ssa-live.c,
27587 tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c,
27588 tree-ssa-pre.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
27589 tree-ssa-structalias.c, tree-ssa-tail-merge.c,
27590 tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
27591 valtrack.h, var-tracking.c, vtable-verify.c, vtable-verify.h: Adjust.
27592
27593 2015-04-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
27594 Jakub Jelinek <jakub@redhat.com>
27595
27596 PR target/65787
27597 * config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a
27598 subsequent SH_NONE operand does not overwrite an existing *special
27599 value.
27600 (adjust_extract): Handle case where a vec_extract operation is
27601 wrapped in a PARALLEL.
27602
27603 2015-04-17 H.J. Lu <hongjiu.lu@intel.com>
27604
27605 PR target/65780
27606 * config/i386/i386.c (ix86_binds_local_p): Define only if
27607 TARGET_MACHO and TARGET_DLLIMPORT_DECL_ATTRIBUTES are false.
27608
27609 2015-04-17 Jeff Law <law@redhat.com>
27610
27611 PR tree-optimization/47679
27612 * Makefile.in (OBJS); Add tree-ssa-scopedtables.o.
27613 * tree-ssa-scopedtables.c: New file.
27614 * tree-ssa-scopedtables.h: New file.
27615 * tree-ssa-dom.c: Include tree-ssa-scopedtables.h.
27616 (const_and_copies): Change name/type.
27617 (record_const_or_copy): Move into tree-ssa-scopedtables.c
27618 (record_const_or_copy_1): Similarly.
27619 (restore_vars_to_original_value): Similarly.
27620 (pass_dominator::execute): Create and destroy const_and_copies table.
27621 (thread_across_edge): Update passing of const_and_copies.
27622 (record_temporary_equivalence): Use method calls rather than
27623 manipulating const_and_copies directly.
27624 (record_equality, cprop_into_successor_phis): Similarly.
27625 (dom_opt_dom_walker::before_dom_children): Similarly.
27626 (dom_opt_dom_walker::after_dom_children): Similarly.
27627 (eliminate_redundant_computations): Similarly.
27628 * tree-ssa-threadedge.c (remove_temporary_equivalences): Delete.
27629 (record_temporary_equivalence): Likewise.
27630 (invalidate_equivalences): Likewise.
27631 (record_temporary_equivalences_from_phis): Update due to type
27632 change of const_and_copies. Use method calls rather than
27633 manipulating the stack directly.
27634 (record_temporary_equivalences_from_stmts_at_dest): Likewise.
27635 (thread_through_normal_block, thread_across_edge): Likewise.
27636 (thread_across_edge): Likewise.
27637 * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
27638 * tree-vrp.c: Include tree-ssa-scopedtables.h. Change type
27639 of equiv_stack.
27640 (identify_jump_threads): Update due to type change of equiv_stack.
27641 (finalize_jump_threads): Delete the equiv_stack when complete.
27642
27643 2015-04-17 Uros Bizjak <ubizjak@gmail.com>
27644
27645 * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
27646 * config/i386/i386.c (ix86_legitimize_reload_address): Ditto.
27647 * config/i386/i386-protos.h (ix86_legitimize_reload_address): Ditto.
27648
27649 2015-04-17 Andreas Tobler <andreast@gcc.gnu.org>
27650
27651 PR target/65535
27652 * config.gcc: Exit with a comment when we do not have a major version
27653 number for the FreeBSD target.
27654
27655 2015-04-17 Jakub Jelinek <jakub@redhat.com>
27656
27657 PR target/65689
27658 * genpreds.c (struct constraint_data): Add maybe_allows_reg and
27659 maybe_allows_mem bitfields.
27660 (maybe_allows_none_start, maybe_allows_none_end,
27661 maybe_allows_reg_start, maybe_allows_reg_end, maybe_allows_mem_start,
27662 maybe_allows_mem_end): New variables.
27663 (compute_maybe_allows): New function.
27664 (add_constraint): Use it to initialize maybe_allows_reg and
27665 maybe_allows_mem fields.
27666 (choose_enum_order): Sort the non-is_register/is_const_int/is_memory/
27667 is_address constraints such that those that allow neither mem nor
27668 reg come first, then those that only allow reg but not mem, then
27669 those that only allow mem but not reg, then the rest.
27670 (write_allows_reg_mem_function): New function.
27671 (write_tm_preds_h): Call it.
27672 * stmt.c (parse_output_constraint, parse_input_constraint): Use
27673 the generated insn_extra_constraint_allows_reg_mem function
27674 instead of always setting *allows_reg = true; *allows_mem = true;
27675 for unknown extra constraints.
27676
27677 2015-04-17 H.J. Lu <hongjiu.lu@intel.com>
27678
27679 PR target/65780
27680 * output.h (default_binds_local_p_3): New.
27681 * varasm.c (default_binds_local_p_3): Make it public. Take an
27682 argument to indicate if common symbol may be local. If common
27683 symbol may be local, treat non-external variable as defined
27684 locally.
27685 (default_binds_local_p_2): Pass !flag_pic to default_binds_local_p_3.
27686 (default_binds_local_p_1): Pass false to default_binds_local_p_3.
27687 * config/i386/i386.c (ix86_binds_local_p): New.
27688 (TARGET_BINDS_LOCAL_P): Replace default_binds_local_p_2 with
27689 ix86_binds_local_p.
27690
27691 2015-04-17 Jakub Jelinek <jakub@redhat.com>
27692
27693 PR debug/65771
27694 * dwarf2out.c (mem_loc_descriptor): For CONST, fallback to
27695 trying mem_loc_descriptor on XEXP (rtl, 0).
27696
27697 2015-04-17 Martin Liska <mliska@suse.cz>
27698
27699 * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
27700 Release symbol_compare_collection.
27701 * ipa-reference.c: Add TODO that a vector should be released.
27702
27703 2015-04-17 Sivanupandi Pitchumani <Pitchumani.Sivanupandi@atmel.com>
27704
27705 PR target/65296
27706 * config/avr/gen-avr-mmcu-specs.c (*avrlibc_startfile): Adjust
27707 to new AVR-LibC file layout (bug #44574).
27708 (*avrlibc_devicelib): Same.
27709 * config/avr/avr-mcus.def: Adjust comments.
27710 * config/avr/avr.opt (nodevicelib): Adjust help.
27711
27712 2015-04-17 Alan Lawrence <alan.lawrence@arm.com>
27713
27714 * config/aarch64/arm_neon.h (vdup_n_f32): Remove forward declaration.
27715
27716 2015-04-17 Patrick Palka <ppalka@gcc.gnu.org>
27717
27718 PR c++/64527
27719 * gimplify.c (gimplify_init_constructor): Always emit a
27720 side-effecting constructor.
27721
27722 2015-04-17 Tom de Vries <tom@codesourcery.com>
27723
27724 PR tree-optimization/64950
27725 * gimplify.c (gimplify_function_tree): Tentatively set PROP_gimple_lva
27726 in cfun->curr_properties.
27727 (gimplify_va_arg_expr): Clear PROP_gimple_lva in cfun->curr_properties
27728 if we generate an IFN_VA_ARG.
27729 * tree-inline.c (expand_call_inline): Reset PROP_gimple_lva in dest
27730 function if PROP_gimple_lva is not set in src function.
27731
27732 2015-04-17 Tom de Vries <tom@codesourcery.com>
27733 Michael Matz <matz@suse.de>
27734
27735 PR tree-optimization/64950
27736 * gimple-iterator.c (update_modified_stmts): Remove static.
27737 * gimple-iterator.h (update_modified_stmts): Declare.
27738 * gimplify.c (gimplify_modify_expr): Handle IFN_VA_ARG.
27739 (gimplify_va_arg_internal): New function.
27740 (gimplify_va_arg_expr): Use IFN_VA_ARG.
27741 * gimplify.h (gimplify_va_arg_internal): Declare.
27742 * internal-fn.c (expand_VA_ARG): New unreachable function.
27743 * internal-fn.def (VA_ARG): New DEF_INTERNAL_FN.
27744 * tree-stdarg.c (gimple_call_ifn_va_arg_p, expand_ifn_va_arg_1)
27745 (expand_ifn_va_arg): New function.
27746 (pass_data_stdarg): Add PROP_gimple_lva to properties_provided field.
27747 (pass_stdarg::execute): Call expand_ifn_va_arg.
27748 (pass_data_lower_vaarg): New pass_data.
27749 (pass_lower_vaarg): New gimple_opt_pass.
27750 (pass_lower_vaarg::gate, pass_lower_vaarg::execute)
27751 (make_pass_lower_vaarg): New function.
27752 * cfgexpand.c (pass_data_expand): Add PROP_gimple_lva to
27753 properties_required field.
27754 * passes.def (all_passes): Add pass_lower_vaarg.
27755 * tree-pass.h (PROP_gimple_lva): Add define.
27756 (make_pass_lower_vaarg): Declare.
27757
27758 2015-04-17 Tom de Vries <tom@codesourcery.com>
27759
27760 * fold-const.c (operand_equal_p): Handle INTERNAL_FNs.
27761 * calls.c (call_expr_flags): Same.
27762
27763 2015-04-17 Tom de Vries <tom@codesourcery.com>
27764
27765 * tree-stdarg.c (optimize_va_list_gpr_fpr_size): Factor out of ...
27766 (pass_stdarg::execute): ... here.
27767
27768 2015-04-17 Tom de Vries <tom@codesourcery.com>
27769 Michael Matz <matz@suse.de>
27770
27771 * tree-cfg.c (make_blocks_1): Factor out of ...
27772 (make_blocks): ... here.
27773 (make_edges_bb): Factor out of ...
27774 (make_edges): ... here.
27775 (gimple_find_sub_bbs): New function.
27776 * tree-cfg.h (gimple_find_sub_bbs): Declare.
27777
27778 2015-04-17 Tom de Vries <tom@codesourcery.com>
27779
27780 * tree.c (free_lang_data): Disable lang_hooks.gimplify_expr.
27781
27782 2015-04-17 Yury Gribov <y.gribov@samsung.com>
27783
27784 * asan.c (set_sanitized_sections): New function.
27785 (section_sanitized_p): Ditto.
27786 (asan_protect_global): Optionally sanitize user-defined
27787 sections.
27788 * asan.h (set_sanitized_sections): Declare new function.
27789 * common.opt (fsanitize-sections): New option.
27790 * doc/invoke.texi (-fsanitize-sections): Document new option.
27791 * opts-global.c (handle_common_deferred_options): Handle new
27792 option.
27793
27794 2015-04-17 Jakub Jelinek <jakub@redhat.com>
27795
27796 PR debug/65771
27797 * dwarf2out.c (loc_list_from_tree): Return NULL
27798 for DEBUG_EXPR_DECL.
27799
27800 2015-04-17 Christian Bruel <christian.bruel@st.com>
27801
27802 * ipa-inline.c (can_inline_edge_p): Allow inlining of functions with
27803 same attributes.
27804
27805 2015-04-16 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
27806
27807 * ira-color.c (setup_left_conflict_sizes_p): Do not process
27808 node itself when computing left conflict subnode size.
27809
27810 2015-04-16 Uros Bizjak <ubizjak@gmail.com>
27811
27812 * config/i386/predicates.md (register_mixssei387nonimm_operand): New.
27813 * config/i386/i386.md (*fop_<mode>_1_mixed): Merge with
27814 *fop_<mode>_1_sse using enabled attribute. Use
27815 register_mixssei387nonimm_operand operand 1 predicate. Change
27816 alternative 3 constraints from "x" to "v".
27817
27818 2015-04-16 Richard Biener <rguenther@suse.de>
27819
27820 PR tree-optimization/65774
27821 * tree-ssa-ccp.c (evaluate_stmt): Constrain types we invoke
27822 bit-value tracking on.
27823
27824 2015-04-16 Richard Biener <rguenther@suse.de>
27825
27826 PR tree-optimization/64277
27827 * tree-vrp.c (check_array_ref): Fix anti-range handling,
27828 simplify upper bound handling.
27829 (search_for_addr_array): Simplify.
27830 (check_array_bounds): Handle ADDR_EXPRs here.
27831 (check_all_array_refs): Simplify.
27832
27833 2015-04-16 Uros Bizjak <ubizjak@gmail.com>
27834
27835 * config/i386/i386.c (print_reg): Rewrite function.
27836
27837 2015-04-16 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
27838
27839 * config/s390/s390.h (IRA_HARD_REGNO_ADD_COST_MULTIPLIER):
27840 Invert the condition.
27841
27842 2015-04-16 Renlin Li <renlin.li@arm.com>
27843
27844 * simplify-rtx.c (simplify_unary_operation_1): Fix a typo. Enable two
27845 simplifications for UNSIGNED_FLOAT.
27846
27847 2015-04-16 Nick Clifton <nickc@redhat.com>
27848
27849 * config/rl78/rl78-opts.h (enum rl78_mul_types): Add MUL_G14 and
27850 MUL_UNINIT.
27851 (enum rl78_cpu_type): New.
27852 * config/rl78/rl78-virt.md (attr valloc): Add divhi and divsi.
27853 (umulhi3_shift_virt): Remove m constraint from operand 1.
27854 (umulqihi3_virt): Likewise.
27855 * config/rl78/rl78.c (rl78_option_override): Add code to process
27856 -mcpu and -mmul options.
27857 (rl78_alloc_physical_registers): Add code to handle divhi and
27858 divsi valloc attributes.
27859 (set_origin): Likewise.
27860 * config/rl78/rl78.h (RL78_MUL_G14): Define.
27861 (TARGET_G10, TARGET_G13, TARGET_G14): Define.
27862 (TARGET_CPU_CPP_BUILTINS): Define __RL78_MUL_xxx__ and
27863 __RL78_Gxx__.
27864 (ASM_SPEC): Pass -mcpu on to assembler.
27865 * config/rl78/rl78.md (mulqi3): Add a clobber of AX.
27866 (mulqi3_rl78): Likewise.
27867 (mulhi3_g13): Likewise.
27868 (mulhi3): Generate the G13 or G14 versions of the insn directly.
27869 (mulsi3): Likewise.
27870 (mulhi3_g14): Add clobbers of AX and BC.
27871 (mulsi3_g14): Likewise.
27872 (mulsi3_g13): Likewise.
27873 (udivmodhi4, udivmodhi4_g14, udivmodsi4): New patterns.
27874 (udivmodsi4_g14, udivmodsi4_g13): New patterns.
27875 * config/rl78/rl78.opt (mmul): Initialise value to
27876 RL78_MUL_UNINIT.
27877 (mcpu): New option.
27878 (m13, m14, mrl78): New option aliases.
27879 * config/rl78/t-rl78 (MULTILIB_OPTIONS): Add mg13 and mg14.
27880 (MULTILIB_DIRNAMES): Add g13 and g14.
27881 * doc/invoke.texi: Document -mcpu and -mmul options.
27882
27883 2015-04-16 Richard Biener <rguenther@suse.de>
27884
27885 * tree-ssa-ccp.c (likely_value): See if we have operands that
27886 are marked as never simulate again and return CONSTANT in this
27887 case.
27888 * tree-ssa-propagate.c (simulate_stmt): Mark stmts that do
27889 not have any operands that will be simulated again as
27890 not being simulated again.
27891
27892 2015-04-15 Uros Bizjak <ubizjak@gmail.com>
27893
27894 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed):
27895 Merge with *cmpi<FPCMP:unord><MODEF:mode>_sse using enabled attribute.
27896 (*extendsfdf2_mixed): Merge with *extendsfdf2_sse using enabled
27897 attribute.
27898 (*truncdfsf_fast_mixed): Merge with *truncdfsf_fast_sse using
27899 enabled attribute.
27900 (*float<SWI48:mode><MODEF:mode>2_mixed): Rename from
27901 *float<SWI48:mode><MODEF:mode>2_sse.
27902 (*absneg<mode>2_mixed): Merge with *absneg<mode>2_sse using
27903 enabled attribute.
27904 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_sse using
27905 enabled attribute.
27906
27907 2015-04-15 Tom de Vries <tom@codesourcery.com>
27908
27909 PR other/65487
27910 * function.c (push_dummy_function): New function.
27911 (init_dummy_function_start): Use push_dummy_function.
27912 (pop_dummy_function): New function. Factored out of ...
27913 (expand_dummy_function_end): ... here.
27914 * function.h (push_dummy_function, pop_dummy_function): Declare.
27915 * passes.c (pass_manager::dump_passes): Use push_dummy_function and
27916 pop_dummy_function.
27917 * tree-chkp.c (chkp_gate): Handle cgraph_node::get (cfun->decl) == NULL.
27918
27919 2015-04-15 Jeff Law <law@redhat.com>
27920
27921 PR tree-optimization/47679
27922 * tree-ssa-dom.c (build_and_record_new_cond): Moved to avoid
27923 need for forward declaration in upcoming changes.
27924 (record_conditions, record_edge_info): Likewise.
27925
27926 PR rtl-optimization/42522
27927 * cse.c (fold_rtx): Try to simplify a ZERO_EXTRACT or
27928 SIGN_EXTRACT as a whole object rather than simplifying
27929 its operand.
27930
27931 2015-04-15 Jakub Jelinek <jakub@redhat.com>
27932
27933 PR ipa/65765
27934 * ipa-icf-gimple.c (func_checker::compare_bb): For GIMPLE_NOP
27935 and GIMPLE_PREDICT use break instead of return true. For
27936 GIMPLE_EH_DISPATCH, compare dispatch region.
27937
27938 2015-04-14 Matthew Wahab <matthew.wahab@arm.com>
27939
27940 * doc/extend.texi (__sync Builtins): Simplify some text. Update
27941 details about the implementation. Make clear preference for
27942 __atomic builtins. Reduce possibility of future change.
27943
27944 2015-04-15 Nick Clifton <nickc@redhat.com>
27945
27946 * config/rx/rx.opt (mallow-string-insns): New option.
27947 * config/rx/rx.c (RX_BUILTIN_RMPA): Disable the use of this
27948 builtin if string instructions are denied.
27949 * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Define
27950 __RX_ALLOW_STRING_INSNS__ or __RX_DISALLOW_STRING_INSNS__, as
27951 appropriate.
27952 (ASM_SPEC): Pass -mno-allow-string-insns on to the assembler.
27953 * config/rx/rx.md (movstr): Enable pattern only if string
27954 instructions are allowed.
27955 (rx_movstr, rx_strend, movmemsi, rx_movmem): Likewise.
27956 (cmpstrnsi, cmpstrsi, rx_cmpstrn, rmpa): Likewise.
27957 * config/rx/t-rx (MULTILIB_OPTIONS): Add mno-allow-string-insns.
27958 (MULTILIB_DIRNAMES): Add no-strings.
27959 * doc/invoke.texi: Document -mno-allow-string-insns.
27960
27961 2015-04-15 Alan Modra <amodra@gmail.com>
27962
27963 PR target/65408
27964 PR target/58744
27965 PR middle-end/36043
27966 * calls.c (load_register_parameters): Don't load past end of
27967 mem unless suitably aligned.
27968
27969 2015-04-15 Nick Clifton <nickc@redhat.com>
27970
27971 * config/rl78/rl78.c (rl78_expand_prologue): Mark large stack
27972 decrement instruction as being frame related.
27973 (rl78_print_operand_1): Handle 'p' modifier to add +0 to HL
27974 based addresses.
27975 If zero extending a function address enclose the operation in
27976 %code(...).
27977 (rl78_preferred_reload_class): New function.
27978 (TARGET_PREFERRED_RELOAD_CLASS): Define.
27979 * config/rl78/rl78.md: Remove useless constraints in expanders.
27980 (mulqi3_rl78): Remove + qualifier on input-only operand 1.
27981 (mulhi3_rl78): Likewise.
27982 (mulhi3_g13): Likewise.
27983 (mulsi3_rl78): Likewise.
27984 (es_addr): Move to before the multiply patterns.
27985
27986 2015-04-15 Alan Modra <amodra@gmail.com>
27987
27988 * function.h (struct emit_status): Delete x_first_insn, x_last_insn
27989 and sequence_stack. Add seq.
27990 (seq_stack): Delete.
27991 * function.c (prepare_function_start): Don't access x_last_insn.
27992 * emit-rtl.h (get_current_sequence, get_topmost_sequence): New.
27993 (get_insns, set_first_insn, get_last_insn, set_last_insn): Use them.
27994 * emit_rtl.c (start_sequence, push_topmost_sequence,
27995 pop_topmost_sequence, end_sequence, in_sequence_p, init_emit): Use
27996 sequence accessors.
27997 (get_last_insn_anywhere, add_insn_after_nobb, add_insn_before_nobb,
27998 remove_insn): Likewise. Simplify.
27999 * config/m32c/m32c.c (m32c_leaf_function_p): Use push_topmost_sequence
28000 and pop_topmost_sequence.
28001 (m32c_function_needs_enter): Use get_topmost_sequence. Ignore
28002 debug insns.
28003 * config/rs6000/rs6000.c (rs6000_call_aix): Use get_current_sequence.
28004
28005 2015-04-14 Yvan Roux <yvan.roux@linaro.org>
28006
28007 PR target/65729
28008 * lra-constraints.c (prohibited_class_reg_set_mode_p): Restore and fix
28009 the assertiion.
28010
28011 2015-04-14 Uros Bizjak <ubizjak@gmail.com>
28012
28013 * config/i386/i386.h (LEGACY_INT_REG_P): New define.
28014 (LEGACY_INT_REGNO_P): Ditto.
28015 (GENERAL_REGNO_P): Use LEGACY_INT_REGNO_P.
28016 (ANY_MASK_REG_P): Remove.
28017 (BND_REG_P): Rename from ANY_BND_REG_P.
28018 * config/i386/i386.c (print_reg): Use LEGACY_INT_REG_P to print
28019 legacy integer registers. Do not handle MMX_REG_P in a special way.
28020 Merge 64byte and 32byte SSE handling.
28021
28022 2015-04-14 Nick Clifton <nickc@redhat.com>
28023
28024 * expr.c (expand_assignment): Force an address offset computation
28025 into a register before changing its mode.
28026 (expand_expr_real_1): Likewise.
28027
28028 2015-04-14 Alan Lawrence <alan.lawrence@arm.com>
28029
28030 * config/aarch64/arm_neon.h (vst1_lane_f32, vst1_lane_f64,
28031 vst1_lane_p8, vst1_lane_p16, vst1_lane_s8, vst1_lane_s16,
28032 vst1_lane_s32, vst1_lane_s64, vst1_lane_u8, vst1_lane_u16,
28033 vst1_lane_u32, vst1_lane_u64, vst1q_lane_f32, vst1q_lane_f64,
28034 vst1q_lane_p8, vst1q_lane_p16, vst1q_lane_s8, vst1q_lane_s16,
28035 vst1q_lane_s32, vst1q_lane_s64, vst1q_lane_u8, vst1q_lane_u16,
28036 vst1q_lane_u32, vst1q_lane_u64): Reimplement with pointer dereference
28037 and __aarch64_vget_lane_any.
28038
28039 2015-04-14 Jakub Jelinek <jakub@redhat.com>
28040
28041 PR rtl-optimization/65761
28042 * cfgrtl.c (rtl_split_edge): For EDGE_CROSSING split, use
28043 get_last_bb_insn (after) instead of NEXT_INSN (BB_END (after)).
28044
28045 2015-04-14 Richard Biener <rguenther@suse.de>
28046
28047 * graphite-scop-detection.c: Do not include cp/cp-tree.h.
28048 (graphite_can_represent_scev): Use POINTER_TYPE_P.
28049
28050 2015-04-14 Richard Biener <rguenther@suse.de>
28051
28052 PR tree-optimization/65758
28053 * tree-ssa-ccp.c (get_value_from_alignment): Adjust mask test
28054 against -1.
28055 (ccp_lattice_meet): Likewise.
28056 (bit_value_unop): Likewise.
28057 (bit_value_binop): Likewise.
28058 (bit_value_assume_aligned): Likewise.
28059
28060 2015-04-14 Christian Bruel <christian.bruel@st.com>
28061
28062 * execute_dwarf2_frame (dw_frame_pointer_regnum): Reinitialize for each
28063 function.
28064
28065 2015-04-14 Marc Glisse <marc.glisse@inria.fr>
28066
28067 PR tree-optimization/63387
28068 * match.pd ((x unord x) | (y unord y) -> (x unord y),
28069 (x unord x) | (x unord y) -> (x unord y)): New simplifications.
28070
28071 2015-04-14 Uros Bizjak <ubizjak@gmail.com>
28072
28073 * config/i386/predicates.md (any_QIreg_operand): Rename from
28074 q_regs_operand. Do not process subregs.
28075 (QIreg_operand): Use QI_REGNO_P predicate.
28076 (ext_QIreg_operand): Ditto.
28077 (ext_register_operand): Ditto.
28078 * config/i386/i386.md (TEST splitters): Use QIreg_operand predicate.
28079 (AND splitters): Ditto.
28080 (AND with -65536 splitter): Add SWI48 mode for operand 0.
28081 (AND with -256 splitter): Use any_QIreg_operand predicate and
28082 SWI248 mode for operand 0.
28083 (AND with -65281 splitter): Use QIreg_operand predicate and SWI248
28084 mode for operand 0.
28085 (SETCC + MOVZBL peepholes): Update for renamed any_QIreg_operand.
28086
28087 2015-04-13 Gerald Pfeifer <gerald@pfeifer.com>
28088
28089 * doc/plugins.texi: Rewrite first introductory paragraph.
28090
28091 2015-04-12 Jan Hubicka <hubicka@ucw.cz>
28092
28093 * tree-vrp.c (nonnull_arg_p): THIS pointers and references are non-zero.
28094 (gimple_stmt_nonzero_warnv_p): Reference return values are non-zero.
28095
28096 2015-04-12 Jan Hubicka <hubicka@ucw.cz>
28097
28098 * ipa-profie.c (ipa_profile): Check number of parameters
28099 and possible polymorphic call targets before
28100 devirtualizing.
28101
28102 2015-04-13 Uros Bizjak <ubizjak@gmail.com>
28103
28104 * config/i386/i386.md (*bmi2_umul<mode><dwi>3_1): Merge from
28105 *bmi2_umulsidi3_1 and *bmi2_umulditi3_1 using DWIH mode iterator.
28106
28107 2015-04-13 Richard Biener <rguenther@suse.de>
28108
28109 PR tree-optimization/65204
28110 * tree-ssa-ccp.c (evaluate_stmt): Always evaluate address
28111 takens for bit-CCP.
28112
28113 2015-04-13 Richard Biener <rguenther@suse.de>
28114
28115 PR target/65660
28116 * config/i386/i386.c (bdver1_cost): Double cond_taken_branch_cost
28117 and cond_not_taken_branch_cost to 4 and 2.
28118 (bdver2_cost): Likewise.
28119 (bdver3_cost): Likewise.
28120 (bdver4_cost): Likewise.
28121
28122 2015-04-12 Jan Hubicka <hubicka@ucw.cz>
28123
28124 * hash-table.h (hash_table constructor): Add mem stats.
28125 (alloc_entries): Likewise.
28126
28127 2015-04-12 Jan Hubicka <hubicka@ucw.cz>
28128
28129 * ipa-cp.c (ipcp_driver): Relase prev_edge.
28130 * passes.c (execute_one_pass): Only add transform if pass has one.
28131
28132 2015-04-12 Joseph Myers <joseph@codesourcery.com>
28133
28134 * config/i386/i386.c (ix86_option_override_internal): Don't set
28135 -fprefetch-loop-arrays if optimizing for size.
28136
28137 2015-04-12 Jan Hubicka <hubicka@ucw.cz>
28138 Gerald Pfeifer <gerald@pfeifer.com>
28139
28140 * doc/contrib.texi (Contributors): Add Martin Jambor and
28141 Michael Matz.
28142
28143 2015-04-12 Jakub Jelinek <jakub@redhat.com>
28144
28145 * BASE-VER: Set to 6.0.0.
28146
28147 PR tree-optimization/65747
28148 * ipa-icf-gimple.c (func_checker::compare_operand): Use compare_operand
28149 rather than compare_ssa_name for OBJ_TYPE_REF_OBJECT.
28150
28151 2015-04-12 Gerald Pfeifer <gerald@pfeifer.com>
28152
28153 * doc/invoke.texi (-Wmemset-transposed-args): Break a long
28154 sentence. Improve grammar.
28155
28156 2015-04-12 Gerald Pfeifer <gerald@pfeifer.com>
28157
28158 * doc/contrib.texi (Contributors): Add Maxim Kuvyrkov.
28159
28160 2015-04-11 Jan Hubicka <hubicka@ucw.cz>
28161
28162 PR ipa/65743
28163 * ipa-inline-transform.c (speculation_removed): Remove static var.
28164 (check_speculations): New function.
28165 (clone_inlined_nodes): Do not check spculations.
28166 (inline_call): Call check_speculations.
28167 * ipa-prop.c (ipa_make_edge_direct_to_target): Do not
28168 consider non-invariants.
28169
28170 2015-04-11 Jan Hubicka <hubicka@ucw.cz>
28171 Martin Liska <mliska@suse.cz>
28172
28173 PR ipa/65722
28174 * ipa-icf.c (sem_item::compare_cgraph_references): function and
28175 variable can not match.
28176 (sem_item::update_hash_by_addr_refs): Fix handling of virtual tables.
28177 (sem_variable::equals_wpa): Fix checking of DECL_FINAL_P patch.
28178
28179 2015-04-11 Jakub Jelinek <jakub@redhat.com>
28180
28181 PR tree-optimization/65735
28182 * tree-ssa-threadedge.c (fsm_find_control_statement_thread_paths):
28183 Remove visited_phis argument, add visited_bbs, avoid recursing into the
28184 same bb rather than just into the same phi node.
28185 (thread_through_normal_block): Adjust caller.
28186
28187 2015-04-11 Gerald Pfeifer <gerald@pfeifer.com>
28188
28189 * doc/contrib.texi (Contributors): Add Ira Rosen.
28190
28191 2015-04-11 Benno Schulenberg <bensberg@justemail.net>
28192
28193 * gcov.c (find_source): Fix miswording in error message.
28194 * config/i386/i386.c (ix86_handle_cconv_attribute): Likewise.
28195 (ix86_expand_sse_comi_round): Fix typo in error message.
28196
28197 2015-04-11 Gerald Pfeifer <gerald@pfeifer.com>
28198
28199 * doc/contrib.texi (Contributors): Add Laurynas Biveinis.
28200
28201 2015-04-10 Gerald Pfeifer <gerald@pfeifer.com>
28202
28203 * doc/contrib.texi (Contributors): Update Joe Buck's entry.
28204
28205 2015-04-10 Vladimir Makarov <vmakarov@redhat.com>
28206
28207 PR target/65710
28208 * lra-assigns.c (spill_for): Update smallest_bad_spills_num.
28209 Print bad_spills_num and insn_pseudos_num.
28210
28211 2015-04-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28212
28213 PR target/65694
28214 * config/arm/arm.c (arm_canonicalize_comparison): Use ARM_SIGN_EXTEND
28215 when creating +1 values for SImode.
28216
28217 2015-04-10 Vladimir Makarov <vmakarov@redhat.com>
28218
28219 PR target/65729
28220 * lra-constraints.c (prohibited_class_reg_set_mode_p): Comment the
28221 assert.
28222
28223 2015-04-10 Jakub Jelinek <jakub@redhat.com>
28224 Iain Sandoe <iain@codesourcery.com>
28225
28226 PR target/65351
28227 * configure: Regenerate.
28228
28229 2015-04-09 Kirill Yukhin <kirill.yukhin@intel.com>
28230
28231 PR target/65671
28232 * config/i386/sse.md: Generate vextract32x4 if AVX-512DQ is disabled.
28233
28234 2015-04-09 Gerald Pfeifer <gerald@pfeifer.com>
28235
28236 * doc/contrib.texi (Contributors): Add John Marino.
28237
28238 2015-04-09 Jakub Jelinek <jakub@redhat.com>
28239
28240 PR tree-optimization/65709
28241 * ubsan.c (instrument_mem_ref): Use TREE_TYPE (base) instead of
28242 TREE_TYPE (TREE_TYPE (t)).
28243
28244 2015-04-09 Vladimir Makarov <vmakarov@redhat.com>
28245
28246 PR target/65710
28247 * lra-int.h (lra_bad_spill_regno_start): New.
28248 * lra.c (lra_bad_spill_regno_start): New.
28249 (lra): Set up lra_bad_spill_regno_start. Set up
28250 lra_constraint_new_regno_start unconditionally.
28251 * lra-assigns.c (spill_for): Use lra_bad_spill_regno_start for
28252 spill preferences.
28253
28254 2015-04-09 Marek Polacek <polacek@redhat.com>
28255 Jakub Jelinek <jakub@redhat.com>
28256
28257 PR middle-end/65554
28258 * gimple-fold.c (gimple_fold_builtin_memory_op): Update comment.
28259 (fold_ctor_reference): Use STRIP_USELESS_TYPE_CONVERSION instead
28260 of STRIP_NOPS.
28261
28262 2015-04-09 Segher Boessenkool <segher@kernel.crashing.org>
28263
28264 PR rtl-optimization/65693
28265 * combine.c (is_parallel_of_n_reg_sets): Move outside of
28266 #ifndef HAVE_cc0.
28267
28268 2015-04-09 Georg-Johann Lay <avr@gjlay.de>
28269
28270 PR target/65296
28271 * config/avr/driver-avr.c (avr_devicespecs_file): Don't specify a
28272 device specs file if "device-specs%s" didn't resolve to a path.
28273
28274 2015-04-09 Kirill Yukhin <kirill.yukhin@intel.com>
28275
28276 PR target/65676
28277 * config/i386/i386.c (fixup_modeless_constant): New.
28278 (ix86_expand_args_builtin): Fixup modeless constant operand.
28279 (ix86_expand_round_builtin): Ditto.
28280 (ix86_expand_special_args_builtin): Ditto.
28281 (ix86_expand_builtin): Ditto.
28282
28283 2015-04-09 Jakub Jelinek <jakub@redhat.com>
28284
28285 PR target/65693
28286 * config/i386/i386.md (*udivmod<mode>4_pow2): Allow
28287 any pow2 integer in between 2 and 0x80000000U inclusive.
28288
28289 2015-04-08 Segher Boessenkool <segher@kernel.crashing.org>
28290
28291 PR rtl-optimization/65693
28292 * combine.c (is_parallel_of_n_reg_sets): Change first argument
28293 from an rtx_insn * to an rtx.
28294 (try_combine): Adjust both callers. Use it once more.
28295
28296 2015-04-08 Ilya Enkovich <ilya.enkovich@intel.com>
28297
28298 * tree-chkp.c (chkp_find_const_bounds_var): Remove.
28299 (chkp_make_static_const_bounds): Search existing
28300 symbol by assembler name. Use make_decl_one_only.
28301 (chkp_get_zero_bounds_var): Remove node search which
28302 is now performed in chkp_make_static_const_bounds.
28303 (chkp_get_none_bounds_var): Likewise.
28304
28305 2015-04-08 Michael Witten <mfwitten@gmail.com>
28306
28307 * doc/extend.texi (Attribute Syntax): Add a trailing semicolon
28308 to an example.
28309
28310 2015-04-08 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
28311
28312 * tree.h (CONVERT_EXPR_P): Commentary typo fix.
28313
28314 2015-04-08 Gerald Pfeifer <gerald@pfeifer.com>
28315
28316 * doc/extend.texi (__sync Builtins): Fix grammar.
28317
28318 2015-04-08 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
28319
28320 * doc/cfg.texi (GIMPLE statement iterators): Fix typo.
28321
28322 2015-04-08 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
28323
28324 * varasm.c (emit_local): Move definition of align.
28325
28326 2015-04-08 Julian Brown <julian@codesourcery.com>
28327
28328 * config/nvptx/mkoffload.c (process): Support variable mapping.
28329
28330 2015-03-27 Trevor Saunders <tbsaunde@tbsaunde.org>
28331
28332 * config/alpha/alpha.c (alpha_use_linkage): Change type of slot to
28333 alpha_links **.
28334 (alpha_write_one_linkage): Correct typo.
28335
28336 2015-04-08 Ilya Enkovich <ilya.enkovich@intel.com>
28337
28338 * ipa-comdats.c (propagate_comdat_group): Walk through thunks.
28339
28340 2015-04-08 Gerald Pfeifer <gerald@pfeifer.com>
28341
28342 * doc/install.texi (bootstrap-lto-noplugin): Rewrite.
28343
28344 2015-04-08 Ilya Enkovich <ilya.enkovich@intel.com>
28345
28346 * tree-chkp.h (chkp_insert_retbnd_call): New.
28347 * tree-chkp.c (chkp_insert_retbnd_call): New.
28348 * ipa-split.c (insert_bndret_call_after): Remove.
28349 (split_function): Use chkp_insert_retbnd_call.
28350 * cgraphunit.c (cgraph_node::expand_thunk): Build returned
28351 bounds for instrumented functions.
28352
28353 2015-04-07 Jan Hubicka <hubicka@ucw.cz>
28354
28355 PR ipa/65540
28356 * calls.c (initialize_argument_information): When producing tail
28357 call also turn SSA_NAMES passed by references to original PARM_DECLs
28358
28359 2015-04-07 Vladimir Makarov <vmakarov@redhat.com>
28360
28361 PR target/65648
28362 * lra-remat.c (do_remat): Process input and non-input insn
28363 registers separately.
28364
28365 2015-04-07 Jakub Jelinek <jakub@redhat.com>
28366
28367 PR debug/65678
28368 * valtrack.c (debug_lowpart_subreg): New function.
28369 (dead_debug_insert_temp): Use it.
28370
28371 PR middle-end/65680
28372 * expr.c (get_inner_reference): Handle bit_offset that doesn't fit
28373 into signed HOST_WIDE_INT the same as negative bit_offset.
28374
28375 2015-04-07 Ilya Enkovich <ilya.enkovich@intel.com>
28376
28377 * ipa-comdats.c (ipa_comdats): Visit all thunks
28378 to set proper comdat group.
28379
28380 2015-04-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28381
28382 PR target/65489
28383 * config/arm/arm.c (arm_legitimate_constant_p_1): Remove restriction
28384 on constants for NEON VSTRUCT modes.
28385
28386 2015-04-07 Jakub Jelinek <jakub@redhat.com>
28387 Iain Sandoe <iain@codesourcery.com>
28388
28389 PR target/65351
28390 * configure: Regenerate.
28391
28392 2015-04-06 Michael Meissner <meissner@linux.vnet.ibm.com>
28393
28394 PR target/65614
28395 * config/rs6000/rs6000.c (struct processor_costs): Add cost field
28396 for SF->DF conversions to make FLOAT_EXTEND more expensive, so
28397 that LFD is used to load double constants instead of LFS. Add
28398 defaults for all costs structures. Add comments for missing
28399 initialization fields.
28400 (size32_cost): Likewise.
28401 (size64_cost): Likewise.
28402 (rs64a_cost): Likewise.
28403 (mpccore_cost): Likewise.
28404 (ppc403_cost): Likewise.
28405 (ppc405_cost): Likewise.
28406 (ppc440_cost): Likewise.
28407 (ppc476_cost): Likewise.
28408 (ppc601_cost): Likewise.
28409 (ppc603_cost): Likewise.
28410 (ppc604_cost): Likewise.
28411 (ppc604e_cost): Likewise.
28412 (ppc620_cost): Likewise.
28413 (ppc630_cost): Likewise.
28414 (ppccell_cost): Likewise.
28415 (ppc750_cost): Likewise.
28416 (ppc7450_cost): Likewise.
28417 (ppc8540_cost): Likewise.
28418 (ppce300c2c3_cost): Likewise.
28419 (ppce500mc_cost): Likewise.
28420 (ppce500mc64_cost): Likewise.
28421 (ppce5500_cost): Likewise.
28422 (ppce6500_cost): Likewise.
28423 (titan_cost): Likewise.
28424 (power4_cost): Likewise.
28425 (power6_cost): Likewise.
28426 (power7_cost): Likewise.
28427 (power8_cost): Likewise.
28428 (ppca2_cost): Likewise.
28429 (rs6000_rtx_costs): Make FLOAT_EXTEND use SFDF_convert field.
28430
28431 * config/rs6000/rs6000.md (extendsfdf2_fpr): Generate XSCPSGNDP
28432 instead of XXLOR to copy SFmode to clear out dirty bits created
28433 when SFmode denormals are generated.
28434 (mov<mode>_hardfloat, FMOVE32 case): Likewise.
28435 (truncdfsf2_fpr): Add support for ISA 2.07 XSRSP instruction.
28436
28437 2015-04-06 Evandro Menezes <e.menezes@samsung.com>
28438
28439 * doc/invoke.texi (AARCH64/mtune): Add exynos-m1 as an option.
28440 * config/aarch64/aarch64-cores.def (exynos-m1): New core.
28441 * config/aarch64/aarch64-tune.md: Regenerate.
28442
28443 2015-04-06 Evandro Menezes <e.menezes@samsung.com>
28444
28445 * doc/invoke.texi (ARM/mtune): Add "exynos-m1" as an option.
28446 * config/arm/arm.c (arm_issue_rate): Specify "3" for "exynosm1".
28447 * config/arm/arm-cores.def (exynos-m1): New core.
28448 * config/arm/arm-tune.md: Regenerate.
28449 * config/arm/arm-tables.opt: Add entry for "exynos-m1".
28450 * config/arm/bpabi.h: Likewise.
28451
28452 2015-04-06 Ilya Enkovich <ilya.enkovich@intel.com>
28453
28454 * ipa-cp (set_single_call_flag): Remove too
28455 restrictive assert.
28456
28457 2015-04-06 Ilya Verbin <ilya.verbin@intel.com>
28458
28459 * config/i386/intelmic-mkoffload.c (generate_host_descr_file): Call
28460 GOMP_offload_unregister from the destructor.
28461
28462 2015-04-06 Ilya Enkovich <ilya.enkovich@intel.com>
28463
28464 * ipa-chkp.c (chkp_maybe_create_clone): Reset cdtor
28465 flags for instrumentation thunk.
28466 (chkp_produce_thunks): Likewise.
28467
28468 2015-04-05 Martin Liska <mliska@suse.cz>
28469
28470 PR ipa/65665
28471 * ipa-icf.c (sem_function::equals_wpa): Verify that IPA CP
28472 has computed data structure.
28473 (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
28474
28475 2015-04-04 Jan Hubicka <hubicka@ucw.cz>
28476
28477 * invoke.texi (inline-unit-growth): Increase growth to 20%
28478 * params.def (PARAM_INLINE_UNIT_GROWTH): Likewise.
28479
28480 2015-04-04 Vladimir Makarov <vmakarov@redhat.com>
28481
28482 PR target/65647
28483 * lra-int.h (LRA_MAX_REMATERIALIZATION_PASSES): New. Add its
28484 value checking.
28485 (lra_rematerialization_iter): New.
28486 * lra.c (lra): Initialize lra_rematerialization_iter.
28487 Stop updating lra_constraint_new_regno_start after switching of
28488 inheritance and rematerialization.
28489 * lra-remat.c (lra_rematerialization_iter): New.
28490 (lra_remat): Add printing pass iteration. Do rematerialization
28491 only first LRA_MAX_REMATERIALIZATION_PASSES iterations.
28492
28493 2015-04-04 Richard Biener <rguenther@suse.de>
28494
28495 PR tree-optimization/64909
28496 PR tree-optimization/65660
28497 * tree-vectorizer.h (vect_get_known_peeling_cost): Adjust
28498 to take a cost vector for scalar iteration cost.
28499 (vect_get_single_scalar_iteration_cost): Likewise.
28500 * tree-vect-loop.c (vect_get_single_scalar_iteration_cost):
28501 Compute the scalar iteration cost into a cost vector.
28502 (vect_get_known_peeling_cost): Use the scalar cost vector to
28503 account for the cost of the peeled iterations.
28504 (vect_estimate_min_profitable_iters): Likewise.
28505 * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
28506 Likewise.
28507
28508 2015-04-04 Alan Modra <amodra@gmail.com>
28509
28510 PR target/65576
28511 PR target/65240
28512 * config/rs6000/predicates.md (zero_reg_mem_operand): Exclude
28513 0.0 constant unless TARGET_VSX.
28514 * config/rs6000/rs6000.md (extenddftf2_internal): Remove last
28515 alternative.
28516
28517 2015-04-03 Jan Hubicka <hubicka@ucw.cz>
28518
28519 PR ipa/65654
28520 * ipa-inline-transform.c (inline_call): Skip sanity check to work
28521 around the ICE
28522
28523 2015-04-03 Jan Hubicka <hubicka@ucw.cz>
28524
28525 PR ipa/65655
28526 * ipa-inline-analysis.c (edge_set_predicate): Do not redirect
28527 speculative indirect edges to avoid ordering issue.
28528
28529 2015-04-03 Jan Hubicka <hubicka@ucw.cz>
28530
28531 PR ipa/65076
28532 * ipa-inline.c (edge_badness): Add combined size to the denominator.
28533
28534 2015-04-03 Jakub Jelinek <jakub@redhat.com>
28535
28536 * omp-low.c (scan_omp_parallel, scan_omp_task, scan_omp_target): Set
28537 TYPE_ARTIFICIAL on the .omp_data* types.
28538
28539 2015-04-02 Ilya Enkovich <ilya.enkovich@intel.com>
28540
28541 * cgraphunit.c (cgraph_node::expand_thunk): Don't expand
28542 instrumentation thunks.
28543
28544 2015-04-02 Ilya Enkovich <ilya.enkovich@intel.com>
28545
28546 * config/i386/i386.c (ix86_expand_call): Avoid nested
28547 PARALLEL in returned call value.
28548
28549 2015-04-02 Ilya Enkovich <ilya.enkovich@intel.com>
28550
28551 * lto-cgraph.c (input_cgraph_1): Always link instrumented
28552 assembler name with original one.
28553
28554 2015-04-02 Uros Bizjak <ubizjak@gmail.com>
28555
28556 * config/i386/i386.c (ix86_register_priority): Use AX_REG.
28557
28558 2015-04-02 Uros Bizjak <ubizjak@gmail.com>
28559
28560 Revert parts of r216820.
28561 * config/i386/i386.md (movqi_internal): Correct type calculation
28562 for alternatives 3 and 5.
28563
28564 2015-04-02 Jakub Jelinek <jakub@redhat.com>
28565
28566 PR preprocessor/61977
28567 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Don't
28568 predefine __vector/__bool/__pixel macros nor context sensitive
28569 macros for CLK_ASM.
28570 * config/spu/spu-c.c (spu_cpu_cpp_builtins): Similarly.
28571
28572 2015-04-02 John David Anglin <danglin@gcc.gnu.org>
28573
28574 * config/pa/pa.c (pa_output_move_double): Directly handle register
28575 indexed memory operand. Simplify handling of scaled register indexed
28576 memory operands.
28577
28578 2015-04-02 Ilya Enkovich <ilya.enkovich@intel.com>
28579
28580 PR driver/65444
28581 * config/i386/linux-common.h (MPX_SPEC): New.
28582 (CHKP_SPEC): Add MPX_SPEC.
28583 * doc/invoke.texi (-fcheck-pointer-boudns): Document
28584 possible issues with '-z bndplt' support in linker.
28585
28586 2015-04-02 Uros Bizjak <ubizjak@gmail.com>
28587
28588 * config/i386/sync.md (UNSPEC_FILD_ATOMIC, UNSPEC_FIST_ATOMIC): New.
28589 (loaddi_via_fpu): Use UNSPEC_FILD_ATOMIC.
28590 (storedi_via_fpu): Use UNSPEC_FIST_ATOMIC.
28591 * reg-stack.c (get_true_reg): Change UNSPEC_LDA to UNSPEC_FILD_ATOMIC.
28592 (subst_stack_regs_pat): Change UNSPEC_STA to UNSPEC_FIST_ATOMIC.
28593
28594 2015-04-01 Uros Bizjak <ubizjak@gmail.com>
28595
28596 * config/i386/sync.md (UNSPEC_MOVA): Remove.
28597 (atomic_load<mode>): Change operand 0 predicate to
28598 nonimmediate_operand and fix up the destination when needed.
28599 Use UNSPEC_LDA.
28600 (atomic_loaddi_fpu): Use UNSPEC_LDA.
28601 (atomic_store<mode>): Change operand 1 predicate to
28602 nonimmendate_operand and move the source to register when needed.
28603 Use UNSPEC_STA.
28604 (atomic_store<mode>_1): Use UNSPEC_STA.
28605 (atomic_storedi_fpu): Change operand 1 to nonimmediate_operand.
28606 Fix moves from memory operand. Use UNSPEC_STA.
28607
28608 2015-04-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
28609
28610 * expmed.c (strict_volatile_bitfield_p): Check that the access will
28611 not cross a MODESIZE boundary.
28612 (store_bit_field, extract_bit_field): Added assertions in the
28613 strict volatile bitfields code path.
28614
28615 2015-04-01 Max Ostapenko <m.ostapenko@partner.samsung.com>
28616
28617 PR target/65624
28618 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
28619 Increase args array size by one to avoid buffer overflow.
28620
28621 2015-03-31 Jan Hubicka <hubicka@ucw.cz>
28622
28623 * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
28624 split_part.
28625 * ipa-inline.c (edge_badness): Add wrapper penalty.
28626 (sum_callers): Move up.
28627 (inline_small_functions): Set single_caller.
28628 * ipa-inline.h (inline_summary): Add single_caller.
28629 * ipa-split.c (split_function): Set split_part.
28630 (cgraph_node::create_clone): Do not shadow decl; copy split_part.
28631 * cgraph.h (cgraph_node): Add split_part.
28632
28633 2015-03-31 Uros Bizjak <ubizjak@gmail.com>
28634
28635 PR target/58945
28636 * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
28637 Do not split operands 0 and operands 2 to halfmode.
28638 (atomic_compare_and_swap<mode>): Update for
28639 atomic_compare_and_swap<dwi>_doubleword changes.
28640
28641 2015-03-31 Jan Hubicka <hubicka@ucw.cz>
28642
28643 * tree.c (need_assembler_name_p): Artificial types have no ODR names.
28644 * ipa-devirt.c (warn_odr): Do not try to apply ODR cache when
28645 no caching is done.
28646
28647 2015-03-31 Martin Liska <mliska@suse.cz>
28648
28649 PR ipa/65557
28650 * ipa-icf.c (sem_function::equals_wpa): Check if IPA CP
28651 has already filled up function summary.
28652 (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
28653
28654 2015-03-31 Richard Biener <rguenther@suse.de>
28655
28656 * tree-sra.c (create_access_replacement): Drop under-/over-alignment
28657 of types.
28658
28659 2015-03-31 Dominik Vogt <vogt@linux.vnet.ibm.com>
28660
28661 * config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
28662 nested functions.
28663 (s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw.
28664 (s390_asm_output_function_label): Adapt to new signature of
28665 s390_function_num_hotpatch_hw
28666 Optimise the code generating assembler output.
28667 Add comments to assembler file.
28668
28669 2015-03-31 Richard Biener <rguenther@suse.de>
28670
28671 PR middle-end/65626
28672 * tree-cfgcleanup.c (fixup_noreturn_call): Only split the block
28673 of the noreturn call so it is last and cleanup_control_flow_bb
28674 can do the CFG part.
28675
28676 2015-03-31 Ilya Enkovich <ilya.enkovich@intel.com>
28677
28678 PR target/65531
28679 * ipa-chkp.c (chkp_maybe_create_clone): Don't set
28680 same_comdat_group for external symbols.
28681 * symtab.c (symtab_node::verify_symtab_nodes): Avoid
28682 infinite same_comdat_group traversal loop.
28683
28684 2015-03-31 Jakub Jelinek <jakub@redhat.com>
28685
28686 PR plugins/61176
28687 * Makefile.in (install-plugin): Add all gcc/*.{h,def} files
28688 automatically to $headers.
28689
28690 2015-03-30 Jakub Jelinek <jakub@redhat.com>
28691
28692 PR ipa/65610
28693 * ipa-utils.h (inlined_polymorphic_ctor_dtor_block_p): Declare.
28694 * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p): New
28695 function.
28696 (decl_maybe_in_construction_p, noncall_stmt_may_be_vtbl_ptr_store):
28697 Use it.
28698 * ipa-prop.c (param_type_may_change_p): Likewise.
28699 * tree-ssa-live.c: Include ipa-utils.h and its dependencies.
28700 (remove_unused_scope_block_p): Add in_ctor_dtor_block
28701 argument. Before inlining, preserve
28702 inlined_polymorphic_ctor_dtor_block_p blocks and the outermost block
28703 with FUNCTION_DECL BLOCK_ABSTRACT_ORIGIN inside of them. Adjust
28704 recursive calls.
28705 (remove_unused_locals): Adjust remove_unused_scope_block_p caller.
28706
28707 2015-03-27 Jan Hubicka <hubicka@ucw.cz>
28708
28709 PR ipa/65076
28710 * ipa-inline.c (edge_badness): Base denominator on callee's
28711 grwoth squared.
28712
28713 2015-03-27 Martin Jambor <mjambor@suse.cz>
28714
28715 PR ipa/65478
28716 * params.def (PARAM_IPA_CP_RECURSION_PENALTY) : New.
28717 (PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise.
28718 * ipa-prop.h (ipa_node_params): New flags node_within_scc and
28719 node_calling_single_call.
28720 * ipa-cp.c (count_callers): New function.
28721 (set_single_call_flag): Likewise.
28722 (initialize_node_lattices): Count callers and set single_flag_call if
28723 necessary.
28724 (incorporate_penalties): New function.
28725 (good_cloning_opportunity_p): Use it, dump new flags.
28726 (propagate_constants_topo): Set node_within_scc flag if appropriate.
28727 * doc/invoke.texi (ipa-cp-recursion-penalty,
28728 ipa-cp-single-call-pentalty): Document.
28729
28730 2015-03-27 Jan Hubicka <hubicka@ucw.cz>
28731
28732 PR ipa/65588
28733 * symtab.c (symtab_node::get_partitioning_class): Register vars
28734 are duplicated.
28735 * varpool.c (symbol_table::output_variables) Do not assemble unefined
28736 decls for non-symbols.
28737
28738 2015-03-27 H.J. Lu <hongjiu.lu@intel.com>
28739
28740 PR target/65248
28741 * output.h (default_binds_local_p_2): New.
28742 * varasm.c (default_binds_local_p_2): Renamed to ...
28743 (default_binds_local_p_3): This. Don't return true on protected
28744 data symbol if protected data may be external.
28745 (default_binds_local_p): Use default_binds_local_p_3.
28746 (default_binds_local_p_1): Likewise.
28747 (default_binds_local_p_2): New.
28748 * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Set to
28749 default_binds_local_p_2 if TARGET_MACHO is undefined.
28750
28751 2015-03-27 Jakub Jelinek <jakub@redhat.com>
28752
28753 PR target/65593
28754 * config/i386/i386.c (legitimize_pic_address): If base
28755 is SYMBOL_REF or LABEL_REF using %rip addressing, force
28756 it to reg to avoid PLUS of SYMBOL_REF/LABEL_REF and register.
28757
28758 2015-03-27 Jan Hubicka <hubicka@ucw.cz>
28759
28760 PR target/65531
28761 * symtab.c (symtab_node::verify_symtab_nodes): Fix verification of
28762 comdat groups.
28763
28764 2015-03-27 Jan Hubicka <hubicka@ucw.cz>
28765
28766 PR ipa/65600
28767 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Fix the case
28768 of optimized out indirect call.
28769 (redirect_to_unreachable): Always build symbol table node for
28770 BUILT_IN_UNREACHABLE
28771
28772 2015-03-27 Vladimir Makarov <vmakarov@redhat.com>
28773
28774 PR target/65407
28775 * ira-costs.c (record_reg_classes): Process all constraint string
28776 containing 0-9.
28777
28778 2015-03-27 Bernd Schmidt <bernds@codesourcery.com>
28779
28780 * config/c6x/c6x.md (movmisalign<mode>): Use MEM_P, not
28781 memory_operand.
28782
28783 PR target/65052
28784 * config/c6x/constraints.md (S3): New constraint.
28785 * config/c6x/c6x.md (real_jump): Use it.
28786
28787 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
28788
28789 PR middle-end/65595
28790 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Only
28791 do redirection if the call is not optimized out.
28792
28793 2015-03-27 Ilya Enkovich <ilya.enkovich@intel.com>
28794
28795 PR target/65495
28796 * c-family/c.opt (fcheck-pointer-bounds): List supported languages.
28797 (fchkp-check-incomplete-type): Add LTO.
28798 (fchkp-zero-input-bounds-for-main): Likewise.
28799 (fchkp-first-field-has-own-bounds): Likewise.
28800 (fchkp-narrow-bounds): Likewise.
28801 (fchkp-narrow-to-innermost-array): Likewise.
28802 (fchkp-use-static-bounds): Likewise.
28803 (fchkp-use-static-const-bounds): Likewise.
28804 (fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
28805
28806 2015-03-27 Marek Polacek <polacek@redhat.com>
28807
28808 * gimple-iterator.h (gsi_prev_nondebug): Fix typo.
28809
28810 2015-03-27 Marek Polacek <polacek@redhat.com>
28811
28812 PR sanitizer/65583
28813 * ubsan.c (ubsan_create_edge): New function.
28814 (instrument_bool_enum_load): Call it.
28815 (instrument_nonnull_arg): Likewise.
28816 (instrument_nonnull_return): Likewise.
28817 (instrument_object_size): Likewise.
28818
28819 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
28820
28821 * lto-streamer.h (class lto_location_cache): Turn loc_cache into
28822 auto_vec.
28823
28824 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
28825
28826 PR lto/65536
28827 * lto-streamer.h (class lto_location_cache): New.
28828 (struct data_in): Add location_cache.
28829 (lto_input_location): Update prototype.
28830 (stream_input_location_now): New.
28831 * streamer-hooks.h (struct streamer_hooks): Make input_location to take
28832 pointer to location.
28833 (stream_input_location): Update.
28834 * ipa-devirt.c: Include streamer-hooks.h and lto-streamer.h
28835 (warn_odr): Apply location cache before warning.
28836 (lto_input_location): Update prototype.
28837 * gimple-streamer-in.c (input_phi, input_gimple_stmt):
28838 Use stream_input_location_now.
28839 * lto-streamer-in.c (lto_location_cache::current_cache): New static
28840 variable.
28841 (lto_location_cache::cmp_loc): New function.
28842 (lto_location_cache::apply_location_cache): New function.
28843 (lto_location_cache::accept_location_cache): New function.
28844 (lto_location_cache::revert_location_cache): New function.
28845 (lto_location_cache::input_location): New function.
28846 (lto_input_location): Do location caching.
28847 (stream_input_location_now): New function.
28848 (input_eh_region, input_struct_function_base): Use
28849 stream_input_location_now.
28850 (lto_data_in_create): use new.
28851 (lto_data_in_delete): Use delete.
28852 * tree-streamer-in.c (unpack_ts_block_value_fields,
28853 unpack_ts_omp_clause_value_fields, streamer_read_tree_bitfields,
28854 lto_input_ts_exp_tree_pointers): Update for cached location api.
28855
28856 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
28857
28858 PR ipa/65076
28859 * passes.def: Add pass_nothrow.
28860 * ipa-pure-const.c: (pass_data_nothrow): New.
28861 (pass_nothrow): New.
28862 (pass_nothrow::execute): New.
28863 (make_pass_nothrow): New.
28864 * tree-pass.h (make_pass_nothrow): Declare.
28865
28866 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
28867
28868 * ipa-inline-analysis.c (redirect_to_unreachable): Be prepared for
28869 edge to change by speculation resolution or redirection.
28870 (edge_set_predicate): Likewise.
28871 (inline_summary_t::duplicate): Likewise.
28872 (remap_edge_summaries): Likewise.
28873
28874 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
28875
28876 * ipa-inline.c (check_maybe_up, check_maybe_down, check_match):
28877 New macros.
28878 (can_inline_edge_p): Relax option matching for always inline functions.
28879
28880 2015-03-26 Uros Bizjak <ubizjak@gmail.com>
28881
28882 PR target/65561
28883 * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm):
28884 Check operand 4 and operand 0 for equality.
28885 (avx512f_vextract<shuffletype>32x4_1_maskm):
28886 Check operand 6 and operand 0 for equality.
28887 (vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
28888 for equality.
28889 (vec_extract_hi_<mode>_maskm): Ditto.
28890
28891 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
28892
28893 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not bring
28894 dead calls back to live.
28895 (cgraph_edge::verify_count_and_frequency): Move cgraph/cfg frequency
28896 cross check to ...
28897 (cgraph_node::verify_node): ... here; verify only callee edges,
28898 not caller.
28899 * cif-code.def (CILK_SPAWN): New code.
28900
28901 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
28902
28903 * ipa-inline-analysis.c (redirect_to_unreachable): New function.
28904 (edge_set_predicate): Use it to mark unreachable edges.
28905 (inline_summary_t::duplicate): Remove unnecesary code.
28906 (remap_edge_summaries): Likewise.
28907 (dump_inline_summary): Report contains_cilk_spawn.
28908 (compute_inline_parameters): Compute contains_cilk_spawn.
28909 (inline_read_section, inline_write_summary): Stream
28910 contains_cilk_spawn.
28911 * ipa-inline.c (can_inline_edge_p): Do not touch
28912 DECL_STRUCT_FUNCTION that may not be available;
28913 use CIF_CILK_SPAWN for cilk; fix optimization attribute checks;
28914 remove check for callee_fun->can_throw_non_call_exceptions and
28915 replace it by optimization attribute check; check for flag_exceptions.
28916 * ipa-inline-transform.c (inline_call): Maintain
28917 DECL_FUNCTION_PERSONALITY
28918 * ipa-inline.h (inline_summary): Add contains_cilk_spawn.
28919
28920 2015-03-26 Jakub Jelinek <jakub@redhat.com>
28921
28922 PR tree-optimization/65551
28923 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use
28924 TYPE_PRECISION only for INTEGRAL_TYPE_P types.
28925
28926 2015-03-26 Richard Biener <rguenther@suse.de>
28927
28928 PR middle-end/65555
28929 * tree-cfg.c (verify_gimple_call): Do not require a call to
28930 have no LHS if it wasn't recognized as control altering yet.
28931
28932 2015-03-26 Jakub Jelinek <jakub@redhat.com>
28933
28934 PR tree-optimization/64715
28935 * passes.def: Add another instance of pass_object_sizes before ccp1.
28936 * tree-object-size.c (pass_object_sizes::execute): In
28937 first_pass_instance, only handle __bos (, 1) and __bos (, 3)
28938 calls, and keep the call in the IL, as {MIN,MAX}_EXPR of the
28939 __bos result and the computed constant. Remove redundant
28940 checks, obsoleted by gimple_call_builtin_p test.
28941
28942 * var-tracking.c (variable_tracking_main_1): Don't track
28943 variables for targetm.no_register_allocation targets.
28944
28945 2015-03-26 Oleg Endo <olegendo@gcc.gnu.org>
28946
28947 * config/sh/t-linux (DEFAULT_ENDIAN, MULTILIB_EXCEPTIONS): Remove.
28948 * config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.
28949
28950 2015-03-25 Michael Meissner <meissner@linux.vnet.ibm.com>
28951
28952 PR target/65569
28953 * config/rs6000/rs6000.md (extenddftf2_fprs): On VSX systems use
28954 XXLXOR to create 0.0. On pre-VSX systems make sure the constant
28955 0.0 is correctly setup.
28956 (extenddftf2_internal): Likewise.
28957
28958 2015-03-25 Sebastian Pop <s.pop@samsung.com>
28959
28960 PR tree-optimization/65177
28961 * tree-ssa-threadupdate.c (verify_seme): Renamed verify_jump_thread.
28962 (bb_in_bbs): New.
28963 (duplicate_seme_region): Renamed duplicate_thread_path. Redirect all
28964 edges not adjacent on the path to the original code.
28965
28966 2015-03-25 Uros Bizjak <ubizjak@gmail.com>
28967
28968 PR bootstrap/65537
28969 * doc/install.texi (Building a native compiler): Document new
28970 bootstrap-lto-noplugin configuration. Mention that bootstrap-lto
28971 configuration assumes that the host supports the linker plugin.
28972
28973 2015-03-25 Ilya Enkovich <ilya.enkovich@intel.com>
28974
28975 PR target/65508
28976 * tree-chkp.c (chkp_add_bounds_to_call_stmt): Set static
28977 chain for generated call.
28978
28979 2015-03-25 Richard Biener <rguenther@suse.de>
28980
28981 * passes.c (pass_manager::execute_early_local_passes): Guard
28982 execution of pass_chkp_instrumentation_passes with
28983 flag_check_pointer_bounds.
28984 (pass_chkp_instrumentation_passes::gate): Likewise.
28985
28986 2015-03-25 Martin Liska <mliska@suse.cz>
28987
28988 PR tree-optimization/65538
28989 * symbol-summary.h (function_summary::~function_summary):
28990 Relese memory for allocated summaries.
28991 (function_summary::release): New function.
28992
28993 2015-03-25 Jakub Jelinek <jakub@redhat.com>
28994
28995 PR lto/65515
28996 * lto-streamer-out.c (DFS::worklist): New struct.
28997 (DFS::worklist_vec): New data member.
28998 (DFS::next_dfs_num): Remove.
28999 (DFS::DFS): Rewritten using worklist instead of recursion,
29000 using most of code from DFS::DFS_write_tree.
29001 (DFS::DFS_write_tree_body): Remove SINGLE_P argument, don't
29002 pass it to DFS_write_tree calls.
29003 (DFS::DFS_write_tree): Remove SINGLE_P argument, after
29004 quick initial checks push it into worklist_vec and return.
29005
29006 2015-03-25 Richard Biener <rguenther@suse.de>
29007
29008 PR middle-end/65519
29009 * genmatch.c (expr::gen_transform): Re-write to avoid
29010 using gimple_build.
29011
29012 2015-03-25 Bin Cheng <bin.cheng@arm.com>
29013
29014 * doc/sourcebuild.texi (arm_tune_string_ops_prefer_neon): New.
29015
29016 2015-03-25 Bin Cheng <bin.cheng@arm.com>
29017
29018 * config/arm/arm.opt (print_tune_info): New option.
29019 * config/arm/arm.c (arm_print_tune_info): New function.
29020 (arm_file_start): Call arm_print_tune_info.
29021 * config/arm/arm-protos.h (struct tune_params): Add comment.
29022 * doc/invoke.texi (@item -mprint-tune-info): New item.
29023 (-mtune): mention it in ARM Option Summary.
29024
29025 2015-03-25 DJ Delorie <dj@redhat.com>
29026
29027 * config/rl78/rl78.c (rl78_print_operand_1): Move 'p' test to
29028 correct clause.
29029
29030 2015-03-24 Jan Hubicka <hubicka@ucw.cz>
29031 Martin Liska <mliska@suse.cz>
29032
29033 * ipa-icf-gimple.h (return_with_result): Add missing colon to dump.
29034 * ipa-icf.c (sem_function::get_hash): Hash new declaration properties.
29035 (sem_item::add_type): New function.
29036 (sem_function::hash_stmt): Add TREE_TYPE of gimple_op.
29037 (sem_function::compare_polymorphic_p): Do not consider indirect calls.
29038 (sem_item_optimizer::update_hash_by_addr_refs): Add ODR type to hash.
29039 (sem_function::equals_wpa): Fix typo.
29040 * ipa-icf.h (sem_item::add_type): New function.
29041 (symbol_compare_hashmap_traits): Replace hashing of pointer with symbol
29042 order.
29043
29044 2015-03-24 Jakub Jelinek <jakub@redhat.com>
29045
29046 PR tree-optimization/65533
29047 * tree-vect-slp.c (vect_build_slp_tree): Before re-trying
29048 with swapped operands, call vect_free_slp_tree on
29049 SLP_TREE_CHILDREN of child and truncate the SLP_TREE_CHILDREN
29050 vector.
29051
29052 2015-03-24 Richard Biener <rguenther@suse.de>
29053
29054 PR middle-end/65517
29055 * tree-cfg.c (remove_edge_and_dominated_blocks): Mark loops
29056 for fixup if necessary.
29057
29058 2015-03-23 Sandra Loosemore <sandra@codesourcery.com>
29059
29060 * doc/extend.texi (Function Attributes): Add @cindex entries
29061 for all attributes and regularize their format. Delete text
29062 about long-obsolete 68HC11 and 68HC12 targets. Move misplaced
29063 information about "eightbit_data", "tiny_data", and "model"
29064 variable attributes to the Variable Attributes section. Fix
29065 some obvious typos and copy-editing issues.
29066 (Variable Attributes, Type Attributes): Likewise add/fix
29067 @cindex entries for all attributes.
29068
29069 2015-03-23 Jakub Jelinek <jakub@redhat.com>
29070
29071 PR target/65523
29072 * tree-chkp.c (chkp_build_returned_bound): Ignore
29073 ERF_RETURNS_ARG calls if they have fewer than needed arguments.
29074
29075 2015-03-23 Oleg Endo <olegendo@gcc.gnu.org>
29076
29077 PR target/65505
29078 * config/sh/predicates.md (simple_mem_operand,
29079 displacement_mem_operand): Add test for reg.
29080 (short_displacement_mem_operand): Test for displacement_mem_operand
29081 before invoking sh_disp_addr_displacement.
29082 * config/sh/constraints.md (Sdd, Sra): Simplify.
29083 * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1):
29084 Remove redundant displacement_mem_operand tests.
29085
29086 2015-03-23 Georg-Johann Lay <avr@gjlay.de>
29087
29088 PR target/65296
29089 * config/avr/driver-avr.c (avr_devicespecs_file): Allow to specify
29090 the same -mmcu=MCU more than once.
29091
29092 2015-03-23 Jakub Jelinek <jakub@redhat.com>
29093
29094 PR bootstrap/65522
29095 * ipa-devirt.c: Remove duplicate demangle.h include.
29096
29097 PR target/65504
29098 * config/i386/i386.c (ix86_copy_addr_to_reg): Set REG_POINTER
29099 on the pseudo.
29100 (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Set
29101 REG_POINTER on *destptr after adjusting it for prologue size.
29102
29103 PR ipa/65521
29104 * ipa-icf.c (sem_item::update_hash_by_addr_refs): Hash
29105 ultimate_alias_target ()->order ints instead of
29106 ultimate_alias_target () pointers.
29107
29108 2015-03-23 Richard Biener <rguenther@suse.de>
29109
29110 PR tree-optimization/65518
29111 * tree-vect-stmts.c (vectorizable_load): Reject single-element
29112 interleaving cases we generate absymal code for.
29113
29114 2015-03-23 Richard Biener <rguenther@suse.de>
29115
29116 PR tree-optimization/65494
29117 * tree-vect-slp.c (vect_build_slp_tree): Do not (re-)allocate
29118 matches here.
29119 (vect_analyze_slp_instance): But do that here, always and once.
29120
29121 2015-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29122
29123 * expmed.c (synth_mult): Fix comment about multiplying by T-1 and
29124 adding T or multiplying by T+1 and subracting T.
29125
29126 2015-03-22 Jeff Law <law@redhat.com>
29127
29128 PR rtl-optimization/64317
29129 * Makefile.in (OBJS): Add gcse-common.c
29130 * gcse.c: Include gcse-common.h
29131 (struct modify_pair_s): Move structure definition to gcse-common.h
29132 (compute_transp): Move function to gcse-common.c.
29133 (canon_list_insert): Similarly.
29134 (record_last_mem_set_info): Break out some code and put it into
29135 gcse-common.c. Call into the new common code.
29136 (compute_local_properties): Pass additional arguments to compute_transp.
29137 * postreload-gcse.c: Include gcse-common.h and df.h
29138 (modify_mem_list_set, blocks_with_calls): New variables.
29139 (modify_mem_list, canon_modify_mem_list, transp): Likewise.
29140 (get_bb_avail_insn): Pass in the expression index too.
29141 (alloc_mem): Allocate memory for the new bitmaps and lists.
29142 (free_mem): Free memory for the new bitmaps and lists.
29143 (insert_expr_in_table): Record a bitmap index for each entry we
29144 add to the table.
29145 (record_last_mem_set_info): Call into common code in gcse-common.c.
29146 (get_bb_avail_insn): If no available insn was found in the requested
29147 BB. If BB has a single predecessor, see if the expression is
29148 transparent in BB and available in that single predecessor.
29149 (compute_expr_transp): New wrapper for compute_transp.
29150 (eliminate_partially_redundant_load): Pass expression's bitmap_index
29151 to get_bb_avail_insn. Compute next_pred_bb_end a bit later.
29152 (gcse_after_reload_main): If there are elements in the hash table,
29153 then compute transparency for all the elements in the hash table.
29154 * gcse-common.h: New file.
29155 * gcse-common.c: New file.
29156
29157 2015-03-22 Sandra Loosemore <sandra@codesourcery.com>
29158
29159 * doc/cpp.texi (Search Path): Hyphenate "command-line" when used
29160 as an adjective.
29161 (System Headers): Likewise.
29162 (Ifdef): Likewise.
29163 (Traditional macros): Likewise.
29164 (Invocation): Likewise.
29165 (Option Index): Likewise.
29166 * doc/cppopts.texi (-M): Likewise.
29167 (-finput-charset): Likewise.
29168 (--help): Likewise.
29169 * doc.invoke.texi (AVR Options): Likewise.
29170 (V850 Options): Likewise.
29171
29172 2015-03-22 Jan Hubicka <hubicka@ucw.cz>
29173
29174 PR ipa/65475
29175 * ipa-devirt.c: Include demangle.h
29176 (odr_type_d): Add field rtti_broken.
29177 (odr_subtypes_equivalent_p): Do not require name to match.
29178 (compare_virtual_tables): Fix typo; if type already has ODR violation,
29179 bypass the tests; be ready for function referneces in vtables that are
29180 not DECL_VIRTUAL; make warnings to be OPT_Wodr.
29181 (warn_odr): Give up for nameless types.
29182 (warn_types_mismatch): Report mismatch in mangled names;
29183 report mismatch in anonymous namespaces; look into component types to
29184 give useful error; report when mismatch is dragged in from other ODR
29185 type.
29186 (odr_types_equivalent_p): Match types for being polymorphic; avoid
29187 duplicated diagnostics.
29188 (add_type_duplicate): Reorder checks so more informative ones come
29189 first; fix typo; do not output "the extra base is defined here" when
29190 we did not warn.
29191 (BINFO_N_BASE_BINFOS): Relax sanity check.
29192
29193 2015-03-22 Martin Liska <mliska@suse.cz>
29194 Jakub Jelinek <jakub@redhat.com>
29195
29196 * config/i386/i386.c (def_builtin): Set deferred_isa_values for
29197 masks that can potentially include a builtin.
29198 (ix86_add_new_builtins): Introduce fast filter for isa values
29199 that cannot trigger builtin inclusion.
29200
29201 2015-03-22 Martin Liska <mliska@suse.cz>
29202
29203 * ipa-icf.c (sem_item::update_hash_by_addr_refs): New function.
29204 (sem_item::update_hash_by_local_refs): Likewise.
29205 (sem_variable::get_hash): Empty line is fixed.
29206 (sem_item_optimizer::execute): Include adding of hash references.
29207 (sem_item_optimizer::update_hash_by_addr_refs): New function.
29208 (sem_item_optimizer::build_hash_based_classes): Use local hash.
29209 * ipa-icf.h (sem_item::update_hash_by_addr_refs): New function.
29210 (sem_item::update_hash_by_local_refs): Likewise.
29211
29212 2015-03-20 Jan Hubicka <hubicka@ucw.cz>
29213
29214 PR ipa/65502
29215 * ipa-comdats.c (enqueue_references): Walk through thunks.
29216 (ipa_comdats): Likewise.
29217 (set_comdat_group_1): New function.
29218
29219 2015-03-20 Jan Hubicka <hubicka@ucw.cz>
29220
29221 PR ipa/65475
29222 * ipa-devirt.c (add_type_duplicate): Prevail polymorphic type over
29223 non-polymorphic
29224
29225 2015-03-22 Dave Korn <dave.korn.cygwin@gmail.com>
29226 Gerald Pfeifer <gerald@pfeifer.com>
29227
29228 * doc/contrib.texi (Contributors): Update entry for Danny Smith.
29229
29230 2015-03-21 Chung-Lin Tang <cltang@codesourcery.com>
29231 Sandra Loosemore <sandra@codesourcery.com>
29232
29233 * config/nios2/nios2-protos.h (nios2_adjust_call_address): Adjust
29234 function parameter declaration.
29235 * config/nios2/nios2.md (call,call_value,sibcall,sibcall_value):
29236 Update arguments to nios2_adjust_call_address().
29237 (sibcall_internal): Rename from *sibcall.
29238 (sibcall_value_internal): Rename from *sibcall_value.
29239 * config/nios2/nios2.c (nios2_emit_add_constant): New function.
29240 (nios2_large_got_address): Add target temp reg parameter.
29241 (nios2_got_address): Adjust call to nios2_large_got_address, add
29242 force_reg around it.
29243 (nios2_load_pic_address): Add target temp reg parameter, replace call
29244 to nios2_got_address with corresponding code.
29245 (nios2_legitimize_constant_address): Update call to
29246 nios2_load_pic_address.
29247 (nios2_adjust_call_address): Add temp reg parameter, update PIC case
29248 to use temp reg for PIC loading purposes.
29249 (nios2_asm_output_mi_thunk): Implement TARGET_ASM_OUTPUT_MI_THUNK.
29250 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
29251 (TARGET_ASM_OUTPUT_MI_THUNK): Likewise.
29252
29253 2015-03-21 Sandra Loosemore <sandra@codesourcery.com>
29254
29255 * doc/invoke.texi (-fno-diagnostics-show-caret): Fix
29256 usage of "the @option{...}".
29257 (-Wopenmp-simd): Likewise.
29258 (-fsanitize-recover): Likewise.
29259 (-fsanitize-undefined-trap-on-error): Likewise.
29260 (-flto): Likewise.
29261 (tracer-dynamic-coverage-feedback): Likewise.
29262 (reorder-block-duplicate-feedback): Likewise.
29263 (loop-unroll-jam-size): Likewise.
29264 (-B): Likewise.
29265 (-I-): Likewise.
29266 (-mabs=legacy): Likewise.
29267 (-mupper-regs-df): Likewise.
29268 (-mupper-regs-sf): Likewise.
29269 (-mpointers-to-nested-functions): Likewise.
29270
29271 2015-03-21 Sandra Loosemore <sandra@codesourcery.com>
29272
29273 * doc/extend.texi (Cilk Plus Builtins): Add markup.
29274
29275 2015-03-21 Sandra Loosemore <sandra@codesourcery.com>
29276
29277 * doc/invoke.texi (-fcheck-pointer-bounds): Copy-edit, add
29278 additional index entries and cross-references.
29279 (-fchkp-check-incomplete-type): Likewise.
29280 (-fchkp-first-field-has-own-bounds): Likewise.
29281 (-fchkp-narrow-to-innermost-array): Likewise.
29282 (-fchkp-use-fast-string-functions): Likewise.
29283 (-fchkp-use-nochk-string-functions): Likewise.
29284 (-fchkp-use-static-const-bounds): Likewise.
29285 (-fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
29286 (-fchkp-instrument-marked-only): Likewise.
29287 (-fchkp-use-wrappers): Likewise.
29288 (-static-libmpx): Likewise.
29289 (-static-libmpxwrappers): Likewise.
29290 * doc/extend.texi (bnd_legacy): Likewise.
29291 (bnd_instrument): Likewise.
29292 (bnd_variable_size): Likewise.
29293 (Pointer Bounds Checker builtins): Likewise.
29294
29295 2015-03-21 Tom de Vries <tom@codesourcery.com>
29296
29297 PR tree-optimization/65458
29298 * cgraph.c (cgraph_node::dump): Handle parallelized_function field.
29299 * cgraph.h (cgraph_node): Add parallelized_function field.
29300 * lto-cgraph.c (lto_output_node): Write parallelized_function field.
29301 (input_overwrite_node): Read parallelized_function field.
29302 * omp-low.c (expand_omp_taskreg, finalize_task_copyfn): Set
29303 parallelized_function on cgraph_node for child_fn.
29304 * tree-parloops.c: Add include of plugin-api.h, ipa-ref.h and cgraph.h.
29305 Remove include of gt-tree-parloops.h.
29306 (parallelized_functions): Remove static variable.
29307 (parallelized_function_p): Rewrite using parallelized_function field of
29308 cgraph_node.
29309 (create_loop_fn): Remove adding to parallelized_functions.
29310 * Makefile.in (GTFILES): Remove tree-parloops.c
29311
29312 2015-03-20 Vladimir Makarov <vmakarov@redhat.com>
29313
29314 PR rtl-optimization/64366
29315 * lra.c (lra_update_insn_regno_info): Consider regs in
29316 CALL_INSN_FUNCTION_USAGE memory.
29317
29318 2015-03-20 Richard Biener <rguenther@suse.de>
29319
29320 PR middle-end/64715
29321 * tree-chrec.c (chrec_fold_poly_cst): Use useless_type_conversion_p
29322 for type comparison and gcc_checking_assert.
29323 (chrec_fold_plus_poly_poly): Likewise.
29324 (chrec_fold_multiply_poly_poly): Likewise.
29325 (chrec_convert_1): Likewise.
29326 * gimplify.c (gimplify_expr): Remove premature folding of
29327 &X + CST to &MEM[&X, CST].
29328
29329 2015-03-20 Jan Hubicka <hubicka@ucw.cz>
29330
29331 * ipa-inline.c (can_inline_edge_p): Short circuit if inline_failed
29332 already is final.
29333 (ipa_inline): Recompute inline_failed codes.
29334 * cif-code.def (FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
29335 USES_COMDAT_LOCAL, ATTRIBUTE_MISMATCH, UNREACHABLE): Declare as
29336 CIF_FINAL_ERROR.
29337
29338 2015-03-20 Uros Bizjak <ubizjak@gmail.com>
29339
29340 PR rtl-optimization/60851
29341 * recog.c (constrain_operands): Accept a pseudo register before reload
29342 for LRA enabled targets.
29343
29344 2015-03-19 Michael Meissner <meissner@linux.vnet.ibm.com>
29345
29346 PR target/65240
29347 * config/rs6000/predicates.md (easy_fp_constant): Remove special
29348 -ffast-math handling that kept non-0 constants live in the RTL
29349 until reload. Remove logic testing the number of instructions it
29350 took to create a constant in a GPR that was never used, due to a
29351 test for soft-float earlier.
29352 (memory_fp_constant): Delete, no longer used.
29353
29354 * config/rs6000/rs6000.md (mov<MODE>_hardfloat): Remove
29355 alternatives for loading non-0 constants into GPRs for hard
29356 floating point that is no longer needed due to changes in
29357 easy_fp_constant. Add support for loading 0.0 into GPRs.
29358 (mov<mode>_hardfloat32): Likewise.
29359 (mov<mode>_hardfloat64): Likewise.
29360 (mov<mode>_64bit_dm): Likewise.
29361 (movtd_64bit_nodm): Likewise.
29362 (pre-reload move FP constant define_split): Delete define_split,
29363 since it is no longer used.
29364 (extenddftf2_internal): Remove GHF constraints that are not valid
29365 for extenddftf2.
29366
29367 2015-03-19 Vladimir Makarov <vmakarov@redhat.com>
29368
29369 PR rtl-optimization/63491
29370 * lra-constraints.c (check_and_process_move): Use src instead of
29371 sreg. Remove some dead code.
29372
29373 2015-03-19 Jan Hubicka <hubicka@ucw.cz>
29374
29375 PR ipa/65380
29376 * ipa-icf.c (sem_function::merge): Do not merge DECL_EXTERNAL symbols.
29377 (sem_variable::merge): Likewise.
29378
29379 2015-03-19 Martin Liska <mliska@suse.cz>
29380
29381 PR ipa/65465
29382 * cgraphunit.c (cgraph_node::create_wrapper): Correctly reset
29383 all fields of cgraph_thunk_info.
29384
29385 2015-03-19 Ilya Enkovich <ilya.enkovich@intel.com>
29386
29387 * ipa-chkp.c (chkp_maybe_create_clone): Don't try to
29388 clone instrumented thunks.
29389
29390 2015-03-19 Richard Biener <rguenther@suse.de>
29391
29392 Revert
29393 2015-03-10 Richard Biener <rguenther@suse.de>
29394
29395 PR middle-end/63155
29396 * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
29397 * tree-ssa-coalesce.c: Include timevar.h.
29398 (attempt_coalesce): Handle graph being NULL.
29399 (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
29400 Split out abnormal coalescing to ...
29401 (perform_abnormal_coalescing): ... this function.
29402 (coalesce_ssa_name): Perform abnormal coalescing without computing
29403 live/conflict.
29404 (verify_ssa_coalescing_worker): New function.
29405 (verify_ssa_coalescing): Likewise.
29406
29407 2015-03-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
29408 Jakub Jelinek <jakub@redhat.com>
29409
29410 PR sanitizer/65400
29411 * tsan.c (instrument_gimple): Clear tail call flag on
29412 calls.
29413
29414 2015-03-19 Jakub Jelinek <jakub@redhat.com>
29415
29416 PR sanitizer/65400
29417 * ipa-split.c (find_return_bb): Allow TSAN_FUNC_EXIT internal
29418 call in the return bb.
29419 (find_split_points): Add RETURN_BB argument, don't call
29420 find_return_bb.
29421 (split_function): Likewise. Add ADD_TSAN_FUNC_EXIT argument,
29422 if true append TSAN_FUNC_EXIT internal call after the call to
29423 the split off function.
29424 (execute_split_functions): Call find_return_bb here.
29425 Don't optimize if TSAN_FUNC_EXIT is found in unexpected places.
29426 Adjust find_split_points and split_function calls.
29427
29428 2015-03-18 DJ Delorie <dj@redhat.com>
29429
29430 * config/rl78/rl78-virt.md (andqi3_virt): Allow far operands.
29431 (iorqi3_virt): Likewise.
29432
29433 2015-03-18 Tom de Vries <tom@codesourcery.com>
29434
29435 * tree-parloops.c (parallelize_loops): Make static.
29436 * tree-parloops.h (parallelize_loops): Remove extern declaration.
29437
29438 2015-03-18 Andrew Stubbs <ams@codesourcery.com>
29439
29440 PR middle-end/64491
29441 Revert:
29442 2014-11-20 Andrew Stubbs <ams@codesourcery.com>
29443
29444 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
29445 condition would be removed due to undefined behaviour.
29446
29447 2015-03-18 Martin Liska <mliska@suse.cz>
29448
29449 PR ipa/65432
29450 * cgraph.c (cgraph_node::get_create): Remove unnecessary
29451 xstrdup_for_dump wrapper.
29452 * ipa-icf.c (sem_item::dump): Use symtab_node::name instead of
29453 sem_item::name.
29454 (sem_function::equals): Wrap symtab_node::name and symtab_node::asm_name
29455 with xstrdup_for_dump.
29456 (sem_variable::equals): Likewise.
29457 (sem_item_optimizer::read_section): Use symtab_node::name instead of
29458 sem_item::name.
29459 (sem_item_optimizer::parse_funcs_and_vars): Likewise.
29460 (sem_item_optimizer::merge_classes): Wrap symtab_node::name and
29461 symtab_node::asm_name with xstrdup_for_dump.
29462 (congruence_class::dump): Use symtab_node::name instead of
29463 sem_item::name.
29464 * ipa-icf.h (symtab_node::name): Remove.
29465 (symtab_node::asm_name): Likewise.
29466
29467 2015-03-18 Jakub Jelinek <jakub@redhat.com>
29468
29469 PR tree-optimization/65450
29470 * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): New
29471 function.
29472 (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr): Use
29473 it instead of duplicate_ssa_name_ptr_info.
29474
29475 PR target/65222
29476 * doc/invoke.texi: Add knl as x86 -march=/-mtune= CPU type.
29477
29478 2015-03-18 Richard Biener <rguenther@suse.de>
29479
29480 * tree-data-ref.h (struct access_matrix): Remove.
29481 (AM_LOOP_NEST, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
29482 AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
29483 AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT): Likewise.
29484 (am_vector_index_for_loop): Likewise.
29485 (struct data_reference): Remove access_matrix member.
29486 (DR_ACCESS_MATRIX): Remove.
29487 (lambda_vector_new): Add comment.
29488 (lambda_matrix_new): Use XOBNEWVEC.
29489
29490 2015-03-18 Richard Biener <rguenther@suse.de>
29491
29492 * tree-ssa-loop-ch.c (pass_data_ch): Remove TODO_cleanup_cfg.
29493 (pass_ch::execute): Cleanup the CFG only if we did sth.
29494 * tree-vect-generic.c (pass_data_lower_vector): Remove TODO_cleanup_cfg.
29495
29496 2015-03-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29497
29498 * expmed.c (synth_mult): Use std::swap instead of manually
29499 swapping algorithms.
29500
29501 2015-03-18 Jakub Jelinek <jakub@redhat.com>
29502
29503 PR target/65078
29504 * config/i386/sse.md (movsi/movdi -> vec_extract_*_0 splitter): New.
29505
29506 2015-03-16 Georg-Johann Lay <avr@gjlay.de>
29507
29508 PR target/65296
29509 * config/avr/avr.opt (-nodevicelib): New option.
29510 * doc/invoke.texi (AVR Options): Document it.
29511 * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC) [avr1]: Don't link
29512 libgcc.a, libc.a, libm.a.
29513 * config/avr/specs.h: Same.
29514 * config/avr/gen-avr-mmcu-specs.c (print_mcu): Don't print specs
29515 which don't (directly) depend on the device. Print more help.
29516 (*avrlibc_devicelib) [-nodevicelib]: Don't link libdev.a.
29517 (*cpp): Don't define __AVR_DEV_LIB_NAME__.
29518 * config/avr/driver-avr.c: Remove -nodevicelib from option list in
29519 case of an error.
29520 (avr_devicespecs_file): Use suffix "%s" instead of absolute path
29521 for specs file name.
29522 * config/avr/avr-arch.h (avr_mcu_t) [.library_name]: Remove.
29523 * config/avr/avr-mcus.def: Adjust initializers and comments.
29524
29525 2015-03-16 Jan Hubicka <hubicka@ucw.cz>
29526
29527 * tree-sra.c (ipa_sra_preliminary_function_checks): Use
29528 DECL_ONE_ONLY to check if decl is one only.
29529 * ipa-split.c (consider_split): Limit splitt of one only functions.
29530
29531 2015-03-16 Jakub Jelinek <jakub@redhat.com>
29532
29533 PR tree-optimization/65427
29534 * tree-vect-generic.c (do_cond, expand_vector_scalar_condition): New
29535 functions.
29536 (expand_vector_operations_1): Handle BLKmode vector COND_EXPR.
29537
29538 2015-03-16 Marek Polacek <polacek@redhat.com>
29539
29540 * cgraph.h (add_new_static_var): Remove declaration.
29541 * varpool.c (add_new_static_var): Remove function.
29542
29543 2015-03-16 Jakub Jelinek <jakub@redhat.com>
29544
29545 * omp-low.c (expand_omp_target): Use auto_vec<tree, 11>
29546 instead of vec<tree> * with vec_alloc and release for args.
29547 Adjust all users.
29548
29549 PR middle-end/65431
29550 * omp-low.c (delete_omp_context): Only splay_tree_delete
29551 reduction_map in GIMPLE_OMP_TARGET is_gimple_omp_offloaded
29552 is_gimple_omp_oacc contexts. Don't look at ctx->outer.
29553
29554 2015-03-16 Max Ostapenko <m.ostapenko@partner.samsung.com>
29555
29556 PR sanitizer/64820
29557 * cfgexpand.c (align_base): New function.
29558 (alloc_stack_frame_space): Call it.
29559 (expand_stack_vars): Align prev_frame to be sure
29560 data->asan_vec elements aligned properly.
29561
29562 2015-03-16 Eric Botcazou <ebotcazou@adacore.com>
29563
29564 PR middle-end/65409
29565 * expr.c (store_field): Do not do a direct block copy if the source is
29566 a PARALLEL with BLKmode.
29567
29568 2015-03-16 Tom de Vries <tom@codesourcery.com>
29569
29570 PR middle-end/65414
29571 Revert:
29572 2015-03-12 Tom de Vries <tom@codesourcery.com>
29573
29574 PR rtl-optimization/64895
29575 * lra-lives.c (check_pseudos_live_through_calls): Use
29576 actual_call_used_reg_set instead of call_used_reg_set, if available.
29577
29578 2015-03-16 Alan Modra <amodra@gmail.com>
29579
29580 PR target/63150
29581 * config/rs6000/rs6000.md (bswapdi2): Remove one scratch reg.
29582 Modify Z->r bswapdi splitter to use dest in place of scratch.
29583 In r->Z and Z->r bswapdi splitter rename word_high, word_low
29584 to word1, word2 and rearrange logic to suit.
29585 (bswapdi2_64bit): Remove early clobber on Z->r alternative.
29586 (bswapdi2_ldbrx): Likewise. Remove '??' on r->r.
29587 (bswapdi2_32bit): Remove early clobber on Z->r alternative.
29588 Add one '?' on r->r. Modify Z->r splitter to avoid need for
29589 early clobber.
29590
29591 2015-03-14 Jakub Jelinek <jakub@redhat.com>
29592
29593 PR tree-optimization/65369
29594 * tree-vect-stmts.c (vectorizable_load) <case dr_explicit_realign>:
29595 Set bump to vs * TYPE_SIZE_UNIT (elem_type) - 1 instead of
29596 (vs - 1) * TYPE_SIZE_UNIT (elem_type).
29597
29598 PR tree-optimization/65418
29599 * tree-ssa-reassoc.c (extract_bit_test_mask): If there
29600 are casts in the first PLUS_EXPR operand, ensure tbias and
29601 *totallowp are in the inner type.
29602
29603 PR rtl-optimization/65401
29604 * combine.c (rtx_equal_for_field_assignment_p): Add widen_x
29605 argument. If true, adjust_address_nv of x with big-endian
29606 correction for the mode widening to GET_MODE (y).
29607 (make_field_assignment): Don't do MEM mode widening here.
29608 Use MEM_P instead of GET_CODE == MEM.
29609
29610 2015-03-13 Ilya Verbin <ilya.verbin@intel.com>
29611
29612 * varpool.c (varpool_node::get_create): Don't set 'offloadable' flag for
29613 the external decls.
29614
29615 2015-03-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29616
29617 PR target/64600
29618 * config/arm/arm.c (arm_gen_constant, AND case): Use
29619 ARM_SIGN_EXTEND when constructing AND mask.
29620
29621 2015-03-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
29622
29623 * graph.c (print_graph_cfg): Make function names visible and append
29624 parenthesis to it. Also make groups of basic blocks belonging to the
29625 same function visible.
29626
29627 2015-03-12 Richard Biener <rguenther@suse.de>
29628
29629 PR middle-end/44563
29630 * tree-inline.c (gimple_expand_calls_inline): Walk BB backwards
29631 to avoid quadratic behavior with inline expansion splitting blocks.
29632 * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not merge block
29633 with the successor if the predecessor will be merged with it.
29634 * tree-cfg.c (gimple_can_merge_blocks_p): We can't merge the
29635 entry block with its successor.
29636
29637 2015-03-13 Richard Biener <rguenther@suse.de>
29638
29639 PR middle-end/44563
29640 * tree-cfgcleanup.c (split_bb_on_noreturn_calls): Remove.
29641 (cleanup_tree_cfg_1): Do not call it.
29642 (execute_cleanup_cfg_post_optimizing): Fixup the CFG here.
29643 (fixup_noreturn_call): Mark the stmt as control altering.
29644 * tree-cfg.c (execute_fixup_cfg): Do not dump the function
29645 here.
29646 (pass_data_fixup_cfg): Produce a dump file.
29647 * tree-ssa-dom.c: Include tree-cfgcleanup.h.
29648 (need_noreturn_fixup): New global.
29649 (pass_dominator::execute): Fixup queued noreturn calls.
29650 (optimize_stmt): Queue calls that became noreturn for fixup.
29651 * tree-ssa-forwprop.c (pass_forwprop::execute): Likewise.
29652 * tree-ssa-pre.c: Include tree-cfgcleanup.h.
29653 (el_to_fixup): New global.
29654 (eliminate_dom_walker::before_dom_childre): Queue calls that
29655 became noreturn for fixup.
29656 (eliminate): Fixup queued noreturn calls.
29657 * tree-ssa-propagate.c: Include tree-cfgcleanup.h.
29658 (substitute_and_fold_dom_walker): New member stmts_to_fixup.
29659 (substitute_and_fold_dom_walker::before_dom_children): Queue
29660 alls that became noreturn for fixup.
29661 (substitute_and_fold): Fixup queued noreturn calls.
29662
29663 2015-03-12 Jan Hubicka <hubicka@ucw.cz>
29664
29665 * ipa-icf.c (sem_function::equals_wpa): Match CXX_CONSTRUCTOR_P
29666 and CXX_DESTURCTOR_P. For consutrctors match ODR type of class they
29667 are building; for methods check ODR type of class they belong to if
29668 they may lead to a polymorphic call.
29669 (sem_function::compare_polymorphic_p): Be bit smarter about testing
29670 when function may lead to a polymorphic call.
29671 (sem_function::compare_type_list): Remove.
29672 (sem_variable::equals): Update use of compatible_types_p.
29673 (sem_variable::parse_tree_refs): Remove.
29674 (sem_item_optimizer::filter_removed_items): Do not filter out CXX
29675 cdtor.
29676 * ipa-icf-gimple.c (func_checker::compare_decl): Do polymorphic
29677 matching here.
29678 (func_checker::compatible_polymorphic_types_p): Break out from ...
29679 (unc_checker::compatible_types_p): ... here.
29680 * ipa-icf-gimple.h (func_checker::compatible_polymorphic_types_p):
29681 Declare.
29682 (unc_checker::compatible_types_p): Update.
29683 * ipa-icf.h (compare_type_list, parse_tree_refs, compare_sections):
29684 Remove.
29685
29686 2015-03-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29687
29688 PR rtl-optimization/65235
29689 * simplify-rtx.c (simplify_binary_operation_1, VEC_SELECT case):
29690 When first element of vec_concat is const_int, calculate its size
29691 using second element.
29692
29693 2015-03-12 Richard Biener <rguenther@suse.de>
29694
29695 PR middle-end/65270
29696 * fold-const.c (operand_equal_p): Fix ordering of resetting
29697 OEP_ADDRESS_OF and checking for it in the [TARGET_]MEM_REF case.
29698
29699 2015-03-12 Dominik Vogt <vogt@linux.vnet.ibm.com>
29700
29701 * config/s390/s390.c (s390_reorg): Move code to output nops after label
29702 to s390_reorg ().
29703 (s390_asm_output_function_label): Likewise.
29704 * config/s390/s390.c (s390_asm_output_function_label):
29705 Fix function label alignment with -mhtopatch.
29706 * config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE,
29707 UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE
29708 ("nop_2_byte"): New define_insn.
29709 ("nop_4_byte"): Likewise.
29710 ("nop_6_byte"): Likewise.
29711 * doc/extend.texi (hotpatch): hotpatch attribute doc fixes.
29712 * doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes.
29713
29714 2015-03-12 Ilya Enkovich <ilya.enkovich@intel.com>
29715
29716 PR target/65103
29717 * config/i386/i386.c (ix86_address_cost): Fix cost of a PIC
29718 register.
29719
29720 2015-03-12 Ilya Enkovich <ilya.enkovich@intel.com>
29721
29722 PR target/65044
29723 * toplev.c (process_options): Restrict Pointer Bounds Checker
29724 usage with Address Sanitizer.
29725
29726 2015-03-12 Richard Biener <rguenther@suse.de>
29727
29728 * tree-cfg.c (gimple_split_block): Remove loop finding stmt
29729 to split on.
29730 * omp-low.c (expand_omp_taskreg): Split block before removing
29731 the stmt.
29732 (expand_omp_target): Likewise.
29733 * ubsan.c (ubsan_expand_null_ifn): Adjust stmt if we replaced it.
29734 * tree-parloops.c (create_call_for_reduction_1): Pass a proper
29735 stmt to split_block.
29736
29737 2015-03-12 Tom de Vries <tom@codesourcery.com>
29738
29739 PR rtl-optimization/64895
29740 * lra-lives.c (check_pseudos_live_through_calls): Use
29741 actual_call_used_reg_set instead of call_used_reg_set, if available.
29742
29743 2015-03-10 Jan Hubicka <hubicka@ucw.cz>
29744
29745 * cgraph.c (cgraph_node::release_body): Free function_in_decl_state.
29746 (cgraph_node::remove): Likewise.
29747 (cgraph_node::get_untransformed_body): Likewise.
29748 * varpool.c (varpool_node::remove): Likewise.
29749 (varpool_node::get_constructor): Add sanity check.
29750
29751 2015-03-11 Sandra Loosemore <sandra@codesourcery.com>
29752
29753 * doc/invoke.texi (-fgnu89-inline): Remove discussion about
29754 old GCC versions.
29755 (-fabi-compat-version): Likewise.
29756 (-ffriend-injection): Likewise.
29757 (-Wdeclaration-after-statement): Likewise.
29758 (-fomit-frame-pointer): Likewise.
29759 (-ftree-coalesce-inlined-vars): Likewise.
29760 (-fvisibility=): Likewise.
29761 * doc/extend.texi (Typeof): Likewise.
29762 (Zero Length): Likewise.
29763 (Escaped Newlines): Likewise.
29764 (Compound Literals): Likewise.
29765 (Function Attributes): Likewise.
29766 (Label Attributes): Likewise.
29767 (Type Attributes): Likewise.
29768 (Function Names): Likewise.
29769 (Other Builtins): Likewise.
29770 (Function Specific Option Pragmas): Likewise.
29771 (C++ Interface): Likewise.
29772
29773 2015-03-11 Thomas Schwinge <thomas@codesourcery.com>
29774
29775 * config/nvptx/nvptx.h (LIBSTDCXX): Define to "gcc".
29776
29777 2015-03-11 Marek Polacek <polacek@redhat.com>
29778
29779 PR tree-optimization/65388
29780 * tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.
29781
29782 2015-03-10 Georg-Johann Lay <avr@gjlay.de>
29783
29784 PR target/65296
29785 * configure.ac [avr]: Check as for options -mrmw, --mlink-relax.
29786 * configure: Regenerate.
29787 * config.in: Regenerate.
29788 * doc/invoke.texi (AVR Options) [-mrmw]: Document it.
29789 [-mn-flash]: Document it.
29790 [__AVR_ARCH__]: Document avrtiny.
29791
29792 * config/avr/gen-avr-mmcu-specs.c (config.h): Include it.
29793 (*asm_relax): Only define spec if HAVE_AS_AVR_MLINK_RELAX_OPTION.
29794 (*asm_rmw): Only define spec if HAVE_AS_AVR_MRMW_OPTION.
29795
29796 2015-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
29797
29798 * doc/invoke.texi: Add missing cpu values (z196, zEC12).
29799
29800 2015-03-11 Michael Meissner <meissner@linux.vnet.ibm.com>
29801
29802 PR target/65242
29803 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Do not
29804 allow reloads of PLUS in floating point/VSX registers.
29805
29806 2015-03-11 Junmo Park <junmoz.park@samsung.com>
29807
29808 * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Add
29809 crypto_sha256_fast.
29810 (cortex_a57_crypto_complex): Add crypto_sha256_slow.
29811
29812 2015-03-11 Richard Biener <rguenther@suse.de>
29813
29814 PR tree-optimization/65310
29815 * tree-sra.c (build_ref_for_offset): Also preserve larger
29816 alignment.
29817
29818 2015-03-11 Marat Zakirov <m.zakirov@samsung.com>
29819
29820 * asan.c (instrument_derefs): Disable instrumentation on asan-globals=0.
29821
29822 2015-03-10 Jakub Jelinek <jakub@redhat.com>
29823
29824 PR target/65368
29825 * config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn,
29826 new define_expand.
29827 (*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns.
29828
29829 2015-03-10 Jan Hubicka <hubicka@ucw.cz>
29830
29831 * ipa-icf.c (sem_function::equals_wpa): Move here some checks from ...
29832 (sem_function::equals_wpa): ... here.
29833
29834 2015-03-10 Marek Polacek <polacek@redhat.com>
29835 Jakub Jelinek <jakub@redhat.com>
29836
29837 PR sanitizer/65367
29838 * ubsan.c (ubsan_expand_objsize_ifn): Update GSI instead of GSI_ORIG
29839 when only removing the statement. Handle expanding UBSAN_OBJECT_SIZE
29840 separately.
29841
29842 2015-03-10 Jakub Jelinek <jakub@redhat.com>
29843
29844 PR target/65286
29845 * config/rs6000/t-linux: For powerpc64* target set
29846 MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.
29847
29848 2015-03-10 Richard Biener <rguenther@suse.de>
29849
29850 PR middle-end/44563
29851 * tree-inline.c (copy_cfg_body): Skip block mapped to entry/exit
29852 for redirect_all_calls.
29853
29854 2015-03-10 Marek Polacek <polacek@redhat.com>
29855
29856 * gdbinit.in (pcfun): Define and document.
29857
29858 2015-03-10 Ilya Verbin <ilya.verbin@intel.com>
29859
29860 * config/i386/intelmic-mkoffload.c: Include intelmic-offload.h instead
29861 of libgomp-plugin.h.
29862 (find_target_compiler): Support a case when the path to gcc is
29863 specified in the PATH env var, so COLLECT_GCC doesn't contain a path.
29864 (generate_host_descr_file): Use GOMP_DEVICE_INTEL_MIC from
29865 intelmic-offload.h instead of OFFLOAD_TARGET_TYPE_INTEL_MIC from
29866 libgomp-plugin.h.
29867 (main): Use GCC_INSTALL_NAME as target_driver_name.
29868 * config/i386/t-intelmic (CFLAGS-mkoffload.o): Add GCC_INSTALL_NAME
29869 define.
29870 (mkoffload.o): Remove obsolete include path and defines.
29871 (mkoffload$(exeext)): Use $(LINKER) instead of $(COMPILER).
29872
29873 2015-03-10 Richard Biener <rguenther@suse.de>
29874
29875 PR middle-end/63155
29876 * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
29877 * tree-ssa-coalesce.c: Include timevar.h.
29878 (attempt_coalesce): Handle graph being NULL.
29879 (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
29880 Split out abnormal coalescing to ...
29881 (perform_abnormal_coalescing): ... this function.
29882 (coalesce_ssa_name): Perform abnormal coalescing without computing
29883 live/conflict.
29884 (verify_ssa_coalescing_worker): New function.
29885 (verify_ssa_coalescing): Likewise.
29886
29887 2015-03-10 Georg-Johann Lay <avr@gjlay.de>
29888
29889 PR target/65296
29890 * config.gcc (extra_options) [avr]: Remove.
29891 (extra_gcc_objs) [avr]: Use driver-avr.o, avr-devices.o.
29892 (tm_file) [avr]: Add avr/specs.h after avr/avr.h.
29893 (tm_defines) [avr-*-rtems*]: Add WITH_RTEMS.
29894
29895 * config/avr/avr.opt (config/avr/avr-arch.h): Remove include.
29896 (-mmcu=): Add Var and MissingArgError properties.
29897 (-march=): Remove.
29898 * config/avr/genmultilib.awk: Use -mmcu= instead of -march=.
29899 * config/avr/t-multilib: Regenerate.
29900 * config/avr/specs.h: New file.
29901 * config/avr/driver-avr.c: New file.
29902 * config/avr/genopt.sh: Remove file.
29903 * config/avr/avr-tables.opt: Remove file.
29904 * config/avr/predicates.md (avr_current_arch): Rename to avr_arch.
29905 * config/avr/avr-c.c: Same.
29906 * avr-arch.h: Same.
29907 (avr_current_device): Remove proto.
29908 * config/avr/avr.h (avr_current_arch): Rename to avr_arch.
29909 (AVR_HAVE_8BIT_SP): Don't depend on avr_current_device.
29910 (EXTRA_SPEC_FUNCTIONS): Define.
29911 (avr_devicespecs_file): New specs function proto.
29912 (DRIVER_SELF_SPECS): Use device-specs-file spec function.
29913 * config/avr/avr.c (avr_current_arch): Rename to avr_arch.
29914 (avr_current_device): Remove definition and usage.
29915 (avr_set_core_architecture): New static function.
29916 (avr_option_override): Use it.
29917 * config/avr/avr-devices.c (diagnostic.h, avr-arch.h): Include them.
29918 (mcu_name): New static array.
29919 (comparator, avr_archs_str, avr_mcus_str): New static functions.
29920 (avr_inform_devices, avr_inform_core_architectures): New functions.
29921 * config/avr/gen-avr-mmcu-specs.c (avr-arch.h, specs.h): Include.
29922 (avrlibc.h) [WITH_AVRLIBC]: Include.
29923 (../rtems.h, rtems.h) [WITH_RTEMS]: Include.
29924 (print_mcu): Rewrite from scratch.
29925 * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC, STARTFILE_SPEC):
29926 Forward to avr-specific specs defined in device-specs file.
29927 * config/avr/t-avr (driver-avr.o): New rule.
29928 (avr-devices.o): Depend on avr-arch.h.
29929 (avr-mcus): No more depend on avr-tables.opt.
29930 (avr-tables.opt): Remove rule.
29931 (install-device-specs): Use INSTALL_DATA, not INSTALL_PROGRAM.
29932
29933 2015-03-10 Ilya Enkovich <ilya.enkovich@intel.com>
29934
29935 * c-family/c.opt (fchkp-use-wrappers): New.
29936 * ipa-chkp.c (CHKP_WRAPPER_SYMBOL_PREFIX): New.
29937 (chkp_wrap_function): New.
29938 (chkp_build_instrumented_fndecl): Support wrapped
29939 functions.
29940 * doc/invoke.texi (-fcheck-pointer-bounds): New.
29941 (-fchkp-check-incomplete-type): New.
29942 (-fchkp-first-field-has-own-bounds): New.
29943 (-fchkp-narrow-bounds): New.
29944 (-fchkp-narrow-to-innermost-array): New.
29945 (-fchkp-optimize): New.
29946 (-fchkp-use-fast-string-functions): New.
29947 (-fchkp-use-nochk-string-functions): New.
29948 (-fchkp-use-static-bounds): New.
29949 (-fchkp-use-static-const-bounds): New.
29950 (-fchkp-treat-zero-dynamic-size-as-infinite): New.
29951 (-fchkp-check-read): New.
29952 (-fchkp-check-write): New.
29953 (-fchkp-store-bounds): New.
29954 (-fchkp-instrument-calls): New.
29955 (-fchkp-instrument-marked-only): New.
29956 (-fchkp-use-wrappers): New.
29957 (-static-libmpx): New.
29958 (-static-libmpxwrappers): New.
29959
29960 2015-03-10 Ilya Enkovich <ilya.enkovich@intel.com>
29961
29962 * config/i386/linux-common.h (LIBMPX_WRAPPERSSPEC): New.
29963 (CHKP_SPEC): Add wrappers library.
29964 * c-family/c.opt (static-libmpxwrappers): New.
29965
29966 2015-03-10 Ilya Enkovich <ilya.enkovich@intel.com>
29967
29968 * config/i386/linux-common.h (LIBMPX_LIBS): New.
29969 (LIBMPX_SPEC): New.
29970 (CHKP_SPEC): New.
29971 * gcc.c (CHKP_SPEC): New.
29972 (LINK_COMMAND_SPEC): Add CHKP_SPEC.
29973 * c-family/c.opt (static-libmpx): New.
29974
29975 2015-03-10 Richard Biener <rguenther@suse.de>
29976
29977 PR middle-end/44563
29978 * cgraph.h (struct cgraph_edge_hasher): Add hash overload
29979 for compare_type.
29980 * cgraph.c (cgraph_edge_hasher::hash): Inline htab_hash_pointer.
29981 (cgraph_update_edge_in_call_site_hash): Use cgraph_edge_hasher::hash.
29982 (cgraph_add_edge_to_call_site_hash): Likewise.
29983 (cgraph_node::get_edge): Likewise.
29984 (cgraph_edge::set_call_stmt): Likewise.
29985 (cgraph_edge::remove_caller): Likewise.
29986
29987 2015-03-10 Chung-Ju Wu <jasonwucj@gmail.com>
29988
29989 * config/nds32/nds32.h (callee_saved_regs_size): Rename to ...
29990 (callee_saved_gpr_regs_size): ... this.
29991 (callee_saved_regs_first_regno): Rename to ...
29992 (callee_saved_first_gpr_regno): ... this.
29993 (callee_saved_regs_last_regno) Rename to ...
29994 (callee_saved_last_gpr_regno): ... this.
29995 * config/nds32/nds32.c (nds32_compute_stack_frame): Adjust renamed
29996 variables.
29997 (nds32_initial_elimination_offset): Likewise.
29998 (nds32_expand_prologue): Likewise.
29999 (nds32_expand_epilogue): Likewise.
30000 (nds32_expand_prologue_v3push): Likewise.
30001 (nds32_expand_epilogue_v3pop): Likewise.
30002 * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
30003 Adjust renamed variables.
30004 (nds32_output_stack_pop): Likewise.
30005
30006 2015-03-10 Thomas Preud'homme <thomas.preudhomme@arm.com>
30007
30008 * dominance.c (nearest_common_dominator_for_set): Fix A_Dominated_by_B
30009 code in comment.
30010
30011 2015-03-10 Jakub Jelinek <jakub@redhat.com>
30012
30013 PR rtl-optimization/65321
30014 * cfgexpand.c (expand_debug_expr): Ensure shift amount isn't wider
30015 than shift mode.
30016 * var-tracking.c (use_narrower_mode): Likewise.
30017
30018 2015-03-10 Jan Hubicka <hubicka@ucw.cz>
30019
30020 PR tree-optimization/65355
30021 * varasm.c (notice_global_symbol): Do not produce RTL.
30022 * symtab.c (symtab_node::can_increase_alignment_p): Check for section
30023 anchor.
30024 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
30025 check for section anchors.
30026
30027 2015-03-10 Alan Modra <amodra@gmail.com>
30028
30029 PR target/65286
30030 * config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
30031 to be single-arch by default. Set cpu_is_64bit for powerpc64
30032 given --with-cpu=native.
30033 * config/rs6000/t-fprules: Do not set default MULTILIB vars.
30034 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
30035 and powerpc64le.
30036 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
30037 rs6000_isa_flags rather than TARGET_64BIT.
30038
30039 2015-03-09 Yoshinori Sato <ysato@users.sourceforge.jp>
30040 Kaz Kojima <kkojima@gcc.gnu.org>
30041
30042 * config/sh/t-linux (MULTILIB_EXCEPTIONS): Define for m2a cases.
30043
30044 2015-03-09 Jakub Jelinek <jakub@redhat.com>
30045
30046 PR lto/65361
30047 * ipa-devirt.c (add_type_duplicate): Don't use DECL_CONTEXT
30048 on a TREE_BINFO, instead use BINFO_TYPE.
30049
30050 2015-03-09 Richard Biener <rguenther@suse.de>
30051
30052 PR middle-end/65270
30053 * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF.
30054 * fold-const.c (operand_equal_p): When recursing for ADDR_EXPRs
30055 operand set OEP_ADDRESS_OF. Clear it when recursing to non-bases
30056 of that. When comparing dereferences compare alignment.
30057 When comparing MEM_REFs or TARGET_MEM_REFs compare dependence info.
30058
30059 2015-03-08 Jan Hubicka <hubicka@ucw.cz>
30060
30061 * ipa-inline-analysis.c (check_callers): Check
30062 node->can_remove_if_no_direct_calls_and_refs_p.
30063 (growth_likely_positive): Reorganize to call
30064 can_remove_if_no_direct_calls_p later.
30065 * cgraph.h (will_be_removed_from_program_if_no_direct_calls_p,
30066 will_be_removed_from_program_if_no_direct_calls_p): Add
30067 will_inline parameter.
30068 * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p,
30069 cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
30070 Handle inliner case correctly.
30071
30072 2015-03-09 Thomas Preud'homme <thomas.preudhomme@arm.com>
30073
30074 PR tree-optimization/63743
30075 * cfgexpand.c (reorder_operands): Also reorder if only second operand
30076 had its definition forwarded by TER.
30077
30078 2015-03-08 Jan Hubicka <hubicka@ucw.cz>
30079
30080 PR lto/65316
30081 * ipa-utils.h (types_odr_comparable): Add strict argument.
30082 * ipa-devirt.c: Fix whitespace;
30083 (odr_hasher): Remove.
30084 (odr_name_hasher, odr_vtable_hasher): New hashers.
30085 (can_be_name_hashed_p): New predicate.
30086 (hash_type_name): remove.
30087 (hash_odr_name): New.
30088 (odr_name_hasher::hash): new.
30089 (can_be_vtable_hashed_p): New.
30090 (hash_odr_vtable): New.
30091 (odr_vtable_hasher::hash): New.
30092 (types_same_for_odr): Add strict parameter.
30093 (types_odr_comparable): Likewise.
30094 (odr_name_hasher::equal): New.
30095 (odr_vtable_hasher::equal): New.
30096 (odr_name_hasher::remove): New.
30097 (odr_hash_type): Change to hash_table<odr_name_hasher>.
30098 (odr_vtable_hash_type): New.
30099 (odr_vtable_hash): New.
30100 (odr_subtypes_equivalent_p): Do strict comparsion.
30101 (add_type_duplicate): Merge type names; cleanup; avoid type
30102 duplicates.
30103 (register_odr_type): Initialize vtable hash.
30104 (build_type_inheritance_graph): Likewise
30105 (get_odr_type): Reorg to use two hashes.
30106 (dump_possible_polymorphic_call_targets): Move sanity check after debug
30107 output.
30108 (ipa_devirt): Dump type_inheritance_graph.
30109 (types_same_for_odr): Add strict mode.
30110
30111 2015-03-05 Jan Hubicka <hubicka@ucw.cz>
30112
30113 PR ipa/65334
30114 * cgraph.h (symtab_node): Add definition_alignment,
30115 can_increase_alignment_p and increase_alignment.
30116 * symtab.c (symtab_node::can_increase_alignment_p,
30117 increase_alignment_1, symtab_node::increase_alignment,
30118 symtab_node::definition_alignment): New.
30119 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Use
30120 can_increase_alignment_p.
30121 * tree-vectorizer.c (increase_alignment): Use increase_alignment.
30122 * tree-vect-stmts.c (ensure_base_align): Likewise.
30123 * varasm.c (function_section_1): Use definition_alignment.
30124 (assemble_start_function): Likewise.
30125 (emit_local): likewise.
30126 (build_constant_desc): Likewsie.
30127 (output_constant_def_contents): Likewise.
30128 (place_block_symbol): Likewise.
30129 (output_object_block): Likewise.
30130
30131 2015-03-05 Jan Hubicka <hubicka@ucw.cz>
30132
30133 PR ipa/65316
30134 * tree.c (free_lang_data_in_type): Be sure to keep BINFO_VTABLE
30135 when outputting debug.
30136
30137 2015-03-07 Marek Polacek <polacek@redhat.com>
30138 Martin Uecker <uecker@eecs.berkeley.edu>
30139
30140 PR sanitizer/65280
30141 * doc/invoke.texi: Update description of -fsanitize=bounds.
30142
30143 2015-03-06 Wilco Dijkstra <wilco.dijkstra@arm.com>
30144
30145 * tree-ssa-phiopt.c (neg_replacement): Remove.
30146 (tree_ssa_phiopt_worker): Remove negate optimization.
30147
30148 2015-03-05 Jan Hubicka <hubicka@ucw.cz>
30149
30150 PR ipa/65302
30151 * value-prof.c (gimple_ic): Pure dead eh edges when needed.
30152
30153 2015-03-06 Richard Biener <rguenther@suse.de>
30154
30155 PR middle-end/64928
30156 * tree-ssa-live.h (struct tree_live_info_d): Add livein_obstack
30157 and liveout_obstack members.
30158 (calculate_live_on_exit): Remove.
30159 (calculate_live_ranges): Change declaration.
30160 * tree-ssa-live.c (liveness_bitmap_obstack): Remove global var.
30161 (new_tree_live_info): Adjust.
30162 (calculate_live_ranges): Delete livein when not wanted.
30163 (calculate_live_ranges): Do not initialize liveness_bitmap_obstack.
30164 Deal with partly deleted live info.
30165 (loe_visit_block): Remove temporary bitmap by using
30166 bitmap_ior_and_compl_into.
30167 (live_worklist): Adjust accordingly.
30168 (calculate_live_on_exit): Make static.
30169 * tree-ssa-coalesce.c (coalesce_ssa_name): Tell calculate_live_ranges
30170 we do not need livein.
30171
30172 2015-03-06 Jonathan Wakely <jwakely@redhat.com>
30173
30174 * real.c (real_from_string): Fix typo in assertion.
30175
30176 2015-03-06 Alex Velenko <alex.velenko@arm.com>
30177
30178 * ChangeLog (2015-03-05): Reflect Richard Henderson as actual author of
30179 the patch.
30180
30181 2015-03-05 Jan Hubicka <hubicka@ucw.cz>
30182
30183 * ipa-icf.c (sem_variable::equals_wpa): Check FINAL flags.
30184
30185 2015-03-05 Vladimir Makarov <vmakarov@redhat.com>
30186
30187 PR target/64342
30188 * lra-assigns.c (find_hard_regno_for): Rename to
30189 find_hard_regno_for_1. Add a new parameter.
30190 (find_hard_regno_for): New function using find_hard_regno_for_1.
30191
30192 2015-03-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
30193
30194 PR rtl-optimization/65067
30195 * expmed.c (store_bit_field, extract_bit_field): Reworked the
30196 strict volatile bitfield handling.
30197
30198 2015-03-05 Martin Liska <mliska@suse.cz>
30199
30200 PR ipa/65318
30201 * ipa-icf.c (sem_variable::equals): Compare variables types.
30202
30203 2015-03-05 Richard Henderson <rth@redhat.com>
30204
30205 PR target/65121
30206 * config/arm/arm.c (arm_function_in_section_p): Fix predicate to
30207 correctly check weak symbol binding.
30208
30209 2015-03-05 Steve Ellcey <sellcey@imgtec.com>
30210
30211 PR middle-end/65315
30212 * cfgexpand.c (expand_stack_vars): Update large_align to maximum
30213 needed alignment.
30214
30215 2015-03-05 Martin Liska <mliska@suse.cz>
30216
30217 * ipa-inline.c (inline_small_functions): Set default value to
30218 prevent warning during bootstrap.
30219 * tree.h: Add pragma guard that ignores false positives during
30220 bootstrap.
30221
30222 2015-03-05 Richard Biener <rguenther@suse.de>
30223
30224 PR tree-optimization/65310
30225 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
30226 Properly preserve alignment of the base of the access.
30227
30228 2015-03-05 Richard Biener <rguenther@suse.de>
30229
30230 PR ipa/65270
30231 * ipa-icf-gimple.c (func_checker::compare_memory_operand):
30232 Compare dependence info.
30233
30234 2015-03-05 Richard Biener <rguenther@suse.de>
30235
30236 PR middle-end/65233
30237 * ipa-polymorphic-call.c: Include tree-ssa-operands.h and
30238 tree-into-ssa.h.
30239 (walk_ssa_copies): Revert last chage. Instead do not walk
30240 SSA names registered for SSA update.
30241
30242 2015-03-03 Jan Hubicka <hubicka@ucw.cz>
30243
30244 PR ipa/65270
30245 * ipa-icf.c (sem_item::compare_cgraph_references): Compare
30246 vtable references for their containing type.
30247 (sem_function::equals_wpa): Compare TYPE_RESTRICT
30248 and type attributes.
30249
30250 2015-03-04 Eric Botcazou <ebotcazou@adacore.com>
30251
30252 * fold-const.c (round_up_loc): Cast divisor to signed on all paths
30253 before negating it.
30254 * stor-layout.c (finalize_record_size): Revert latest change.
30255
30256 2015-03-04 Andreas Tobler <andreast@gcc.gnu.org>
30257
30258 * config/rs6000/t-freebsd64: Remove 32-bit soft-float multilibs.
30259
30260 2015-03-03 Jan Hubicka <hubicka@ucw.cz>
30261
30262 * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p): Rewrite
30263 for correct comdat handling.
30264 (cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
30265 Likewise.
30266 * cgraph.h (call_for_symbol_and_aliases): Fix formating.
30267 (used_from_object_file_p_worker): Remove.
30268 (cgraph_node::only_called_directly_or_alised): Add
30269 used_from_object_file_p.
30270 * ipa-inline-analysis.c (growth_likely_positive): Optimie.
30271 * ipa-inline-transform.c (can_remove_node_now_p_1): Use
30272 can_remove_if_no_direct_calls_and_refs_p.
30273
30274 2015-03-04 Nick Clifton <nickc@redhat.com>
30275
30276 * config/rl78/rl78.h (enum reg_class): Remove real registers from
30277 General register class.
30278 * config/rl78/rl78-real.md: Replace general register constraints
30279 with real+virtual register constraints.
30280
30281 2015-03-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
30282
30283 * config/s390/s390.c (s390_expand_builtin): Exlude non-htm builtins
30284 from checking for -mhtm option.
30285
30286 2015-03-03 Jan Hubicka <hubicka@ucw.cz>
30287
30288 * tree-sra.c (convert_callers): Use call_for_symbol_and_aliases.
30289 (struct ipa_sra_check_caller_data): Add has_thunk field.
30290 (ipa_sra_check_caller): Check for thunk.
30291 (ipa_sra_preliminary_function_checks): Give up on function with
30292 thunks.
30293 (ipa_early_sra): Use call_for_symbol_and_aliases.
30294
30295 2015-03-03 Kaz Kojima <kkojima@gcc.gnu.org>
30296
30297 PR target/65249
30298 * config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
30299 called for __stack_chk_guard symbol.
30300
30301 2015-03-03 DJ Delorie <dj@redhat.com>
30302
30303 * config/rl78/rl78-real.md (*addqi_real): Allow SADDR types for
30304 inc/dec.
30305 (*addhi3_real): Likewise.
30306 * config/rl78/rl78-virt.md (*inc<mode>3_virt): Additional
30307 pattern to match incrementing memory.
30308 * config/rl78/predicates.md (rl78_1_2_operand): New.
30309 * config/rl78/rl78.c (rl78_force_nonfar_3): Allow far mem-mem if
30310 it's the same and only mem.
30311 (rl78_alloc_physical_registers_op2): If there's effectively only
30312 one MEM, transcode it into HL.
30313 (rl78_far_p): Reject addresses that aren't legitimate.
30314
30315 2015-03-03 Eric Botcazou <ebotcazou@adacore.com>
30316
30317 * fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before
30318 negating it.
30319
30320 * tree-sra.c (pa_sra_preliminary_function_checks): Fix typo in message.
30321
30322 2015-03-03 Max Filippov <jcmvbkbc@gmail.com>
30323
30324 Implement call0 ABI for xtensa
30325 * config/xtensa/constraints.md ("a" constraint): Include stack
30326 pointer in case of call0 ABI.
30327 ("q" constraint): Make empty in case of call0 ABI.
30328 ("D" constraint): Include stack pointer in case of call0 ABI.
30329 * config/xtensa/xtensa-protos.h (xtensa_set_return_address,
30330 xtensa_expand_epilogue, xtensa_regno_to_class): Add new function
30331 prototypes.
30332 * config/xtensa/xtensa.c (xtensa_callee_save_size): New
30333 variable.
30334 (xtensa_regno_to_class): Make it a local variable in the
30335 function xtensa_regno_to_class.
30336 (xtensa_function_epilogue, TARGET_ASM_FUNCTION_EPILOGUE): Remove
30337 macro, function prototype and implementation.
30338 (reg_nonleaf_alloc_order): Make it a local variable in the
30339 function order_regs_for_local_alloc.
30340 (xtensa_conditional_register_usage): New function.
30341 (TARGET_CONDITIONAL_REGISTER_USAGE): Define macro.
30342 (xtensa_valid_move): Allow direct moves to stack pointer
30343 register in call0 ABI.
30344 (xtensa_setup_frame_addresses): Only spill register windows in
30345 windowed ABI.
30346 (xtensa_emit_call): Emit call(x)8 or call(x)0 in windowed and
30347 call0 ABI respectively.
30348 (xtensa_function_arg_1): Only mark a7 register for copying in
30349 windowed ABI.
30350 (xtensa_call_save_reg): New function.
30351 (compute_frame_size): Add space for callee saved register
30352 storage to the frame size in call0 ABI.
30353 (xtensa_expand_prologue): Generate code to set up stack frame
30354 and save callee-saved registers in call0 ABI.
30355 (xtensa_expand_epilogue): New function.
30356 (xtensa_set_return_address): New function.
30357 (xtensa_return_addr): Calculate return address in call0 ABI.
30358 (xtensa_builtin_saveregs): Only mark a7 register for copying and
30359 emit copying code in windowed ABI.
30360 (order_regs_for_local_alloc): Add preferred register allocation
30361 order for non-leaf function in call0 ABI.
30362 (xtensa_static_chain): Add atatic chain passing for call0 ABI.
30363 (xtensa_asm_trampoline_template): Add trampoline generation for
30364 call0 ABI.
30365 (xtensa_trampoline_init): Add trampoline initialization for
30366 call0 ABI.
30367 (xtensa_conditional_register_usage, xtensa_regno_to_class): New
30368 functions.
30369 * config/xtensa/xtensa.h (TARGET_WINDOWED_ABI): New macro.
30370 (TARGET_CPU_CPP_BUILTINS): Add built-in define for call0 ABI.
30371 (CALL_USED_REGISTERS): Modify to encode both windowed and call0
30372 ABI call-used registers.
30373 (HARD_FRAME_POINTER_REGNUM): Add frame pointer for call0 ABI.
30374 (INCOMING_REGNO, OUTGOING_REGNO): Use argument unchanged in
30375 call0 ABI.
30376 (REG_CLASS_CONTENTS): Include all registers into the preferred
30377 reload registers set, adjust the set in the
30378 xtensa_conditional_register_usage.
30379 (xtensa_regno_to_class): Drop variable declaration.
30380 (REGNO_REG_CLASS): Redefine to use xtensa_regno_to_class
30381 function.
30382 (WINDOW_SIZE): Define as 8 or 0 for windowed and call0 ABI
30383 respectively.
30384 (FUNCTION_PROFILER): Add _mcount call for call0 ABI.
30385 (TRAMPOLINE_SIZE): Define trampoline size for call0 ABI.
30386 (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 in call0 ABI.
30387 (ASM_OUTPUT_POOL_PROLOGUE): Always generate literal pool
30388 location in call0 ABI.
30389 (EH_RETURN_STACKADJ_RTX): New definition, use a10 for passing
30390 stack adjustment size when handling exception.
30391 (CRT_CALL_STATIC_FUNCTION): Add definition for call0 ABI.
30392 * config/xtensa/xtensa.md (A9_REG, UNSPECV_BLOCKAGE): New
30393 definitions.
30394 ("return" pattern): Generate ret.n/ret in call0 ABI.
30395 ("epilogue" pattern): Expand epilogue.
30396 ("nonlocal_goto" pattern): Use default in call0 ABI.
30397 ("eh_return" pattern): Move implementation to eh_set_a0_windowed,
30398 emit eh_set_a0_* depending on ABI.
30399 ("eh_set_a0_windowed" pattern): Former eh_return pattern.
30400 ("eh_set_a0_call0", "blockage"): New patterns.
30401
30402 2015-03-03 Martin Liska <mliska@suse.cz>
30403
30404 PR ipa/65287
30405 * ipa-icf.c (sem_variable::parse): Skip all alias variables.
30406
30407 2015-03-03 Michael Meissner <meissner@linux.vnet.ibm.com>
30408
30409 PR 65138/target
30410 * config/rs6000/rs6000-tables.opt: Regenerate table.
30411
30412 2015-03-03 Renlin Li <renlin.li@arm.com>
30413
30414 * doc/md.texi (@item ^): Change ? into ^.
30415
30416 2015-03-03 H.J. Lu <hongjiu.lu@intel.com>
30417
30418 * doc/tm.texi: Regenerated.
30419
30420 2015-03-03 Max Filippov <jcmvbkbc@gmail.com>
30421
30422 * builtins.c (expand_builtin_return_addr): Add
30423 RETURN_ADDR_IN_PREVIOUS_FRAME to 'if' condition, remove
30424 surrounding #ifdef.
30425 * config/sparc/sparc.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Change
30426 definition to 1.
30427 * config/xtensa/xtensa.h (RETURN_ADDR_IN_PREVIOUS_FRAME):
30428 Likewise.
30429 * defaults.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 if
30430 undefined.
30431 * doc/tm.texi.in (RETURN_ADDR_IN_PREVIOUS_FRAME): Update
30432 paragraph.
30433
30434 2015-03-03 Martin Jambor <mjambor@suse.cz>
30435 Eric Botcazou <ebotcazou@adacore.com>
30436
30437 * tree-sra.c (ipa_sra_check_caller_data): New type.
30438 (has_caller_p): Removed.
30439 (ipa_sra_check_caller): New function.
30440 (ipa_sra_preliminary_function_checks): Use it.
30441
30442 2015-03-03 Martin Liska <mliska@suse.cz>
30443
30444 * ipa-icf.c (sem_item_optimizer::merge_classes): Use bit or
30445 instead of if branch.
30446
30447 2015-03-03 Martin Liska <mliska@suse.cz>
30448
30449 PR ipa/65282
30450 * ipa-icf.c (sem_variable::equals): Fix wrong condition.
30451
30452 2015-03-23 Jeff Law <law@redhat.com>
30453
30454 PR tree-optimization/65241
30455 * tree-ssa-dom.c (lookup_avail_expr): Only modify the avail_expr
30456 hash table if INSERT is true.
30457
30458 2015-03-03 Georg-Johann Lay <avr@gjlay.de>
30459
30460 PR target/65296
30461 * config.gcc (extra_gcc_objs) [avr-*-rtems*]: Remove.
30462
30463 2015-03-03 Georg-Johann Lay <avr@gjlay.de>
30464
30465 PR target/64331
30466 * config/avr/avr.c (context.h, tree-pass.h): Include them.
30467 (avr_pass_data_recompute_notes): New static variable.
30468 (avr_pass_recompute_notes): New class.
30469 (avr_register_passes): New static function.
30470 (avr_option_override): Call it.
30471
30472 2015-03-03 Georg-Johann Lay <avr@gjlay.de>
30473
30474 Fix various problems with specs file generation.
30475
30476 PR target/65296
30477 * config.gcc (extra_gcc_objs) [avr]: Remove.
30478 * config/avr/driver-avr.c: Remove file.
30479 * config/avr/t-avr (driver-avr.o): Remove rule.
30480 (gen-avr-mmcu-specs): Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD and
30481 INCLUDES to build. Depend on TM_H.
30482 * config/avr/gen-avr-mmcu-specs.c: Tidy up code. Fix various
30483 build warnings. Fix non-matching types and non-existing %-codes.
30484 (tm.h): Include.
30485 (*lib) [!WITH_AVRLIBC]: Don't link libdev.a.
30486 (*libgcc) [WITH_AVRLIBC]: Add "-lm".
30487 * config/avr/avrlibc.h (LIBGCC_SPEC): Remove definition.
30488 * config/avr/avr.h (DRIVER_SELF_SPECS): Fix handling of -march=.
30489 (CPP_SPEC, CC1PLUS_SPEC, ASM_SPEC, LINK_SPEC, LIB_SPEC)
30490 (LIBGCC_SPEC): Remove definitions.
30491
30492 2015-03-03 Eric Botcazou <ebotcazou@adacore.com>
30493
30494 * config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
30495 to create a register in testing mode.
30496
30497 2015-03-03 Martin Liska <mliska@suse.cz>
30498 Jan Hubicka <hubicka@ucw.cz>
30499
30500 PR ipa/65263
30501 * cgraph.c (cgraph_node::has_thunk_p): New function.
30502 * cgraph.h (cgraph_node::has_thunk_p: Likewise.
30503 * ipa-icf.c (redirect_all_callers): Do not redirect thunks.
30504 (sem_function::merge): Assert is changed.
30505
30506 2015-03-03 Martin Liska <mliska@suse.cz>
30507 Martin Jambor <mjambor@suse.cz>
30508
30509 PR ipa/65087
30510 * ipa-icf.c (sem_item_optimizer::execute): Change function
30511 return value to boolean.
30512 (sem_item_optimizer::merge_classes): Likewise.
30513 (ipa_icf_driver): Return TODO_remove_functions in case there's
30514 a merge operation processed.
30515 * ipa-icf.h: Change function return value to boolean.
30516
30517 2015-03-02 Michael Meissner <meissner@linux.vnet.ibm.com>
30518
30519 PR 65138/target
30520 * config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
30521 processor type for 64-bit little endian PowerPC.
30522
30523 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
30524 -mdebug=reg, print TARGET_DEFAULT. Fix logic to use
30525 TARGET_DEFAULT if there is no default cpu. Fix -mdebug=reg
30526 printing built-in mask so it does not pass NULL pointers.
30527
30528 * doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
30529 -mcpu=powerpc64le.
30530
30531 2015-03-02 Steve Ellcey <sellcey@imgtec.com>
30532
30533 PR target/58158
30534 * config/mips/mips.md (mov<mode>cc): Change ISA_HAS_SEL check to
30535 !ISA_HAS_FP_CONDMOVE.
30536
30537 2015-03-02 Aldy Hernandez <aldyh@redhat.com>
30538
30539 * config/i386/i386.md (*udivmod<mode>4_pow2): Remove
30540 reload_completed.
30541
30542 2015-03-02 Ulrich Drepper <drepper@gmail.com>
30543
30544 * doc/invoke.texi (Options for Code Generation Conventions):
30545 Fix URL of DSO paper.
30546
30547 2015-03-02 Jan Hubicka <hubicka@ucw.cz>
30548
30549 PR ipa/65130
30550 * ipa-inline.c (check_callers): Looks for recursion.
30551 (inline_to_all_callers): Give up on uninlinable or recursive edges.
30552 * ipa-inline-analysis.c (inline_summary_t::duplicate): Do not update
30553 summary of inline clones.
30554 (do_estimate_growth_1): Fix recursion check.
30555
30556 2015-03-02 Jan Hubicka <hubicka@ucw.cz>
30557
30558 PR ipa/64988
30559 * ipa-inline-transform.c (clone_inlined_nodes): Do not dissolve
30560 comdat groups.
30561
30562 2015-03-02 Jan Hubicka <hubicka@ucw.cz>
30563 Aldy Hernandez <aldyh@redhat.com>
30564
30565 PR lto/65276
30566 * ipa-devirt.c (add_type_duplicate): Remove odr_violated assert
30567 when checking TYPE_BINFO.
30568
30569 2015-03-02 Richard Biener <rguenther@suse.de>
30570
30571 PR ipa/65270
30572 * ipa-icf-gimple.c: Include builtins.h.
30573 (func_checker::compare_memory_operand): Compare base alignment.
30574
30575 2015-03-02 Ilya Enkovich <ilya.enkovich@intel.com>
30576
30577 PR target/65184
30578 * config/i386/i386.c (ix86_pass_by_reference): Bounds are never
30579 passed by reference.
30580
30581 2015-03-02 Ilya Enkovich <ilya.enkovich@intel.com>
30582
30583 PR target/65183
30584 * tree-chkp.c (chkp_check_lower): Don't check against
30585 zero bounds for already instrumented functions.
30586 (chkp_check_upper): Likewise.
30587 (chkp_fini): Clean pass local data to avoid wrong reusage.
30588
30589 2015-02-28 Martin Liska <mliska@suse.cz>
30590 Jan Hubicka <hubicka@ucw.cz>
30591
30592 * ipa-icf.c (sem_variable::equals): Improve debug output;
30593 get variable constructor.
30594 (sem_variable::parse): Do not filter out too early; give up on
30595 volatile and register vars.
30596 (sem_item_optimizer::filter_removed_items): Filter out nonreadonly
30597 variables.
30598 * ipa-icf.h (sem_variable::init): Do not set ctor.
30599 (sem_variable::ctor): Remove.
30600
30601 2015-03-01 Aldy Hernandez <aldyh@redhat.com>
30602
30603 PR middle-end/65233
30604 * ipa-polymorphic-call.c (walk_ssa_copies): Handle empty PHIs.
30605
30606 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
30607
30608 * ipa-icf.c: Include stor-layout.h
30609 (sem_function::compare_cgraph_references): Rename to ...
30610 (sem_item::compare_cgraph_references): ... this one.
30611 (sem_variable::equals_wpa): New function
30612 (sem_variable::equals): Do not check stuff already verified by
30613 equals_wpa.
30614 (sem_variable::equals): Reorg based on varasm.c:compare_constant.
30615 * ipa-icf.h (sem_item): Add compare_cgraph_references.
30616 (sem_function): Remove compare_cgraph_references.
30617 (sem_variable): Turns equals_wpa into non-inline.
30618
30619 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
30620
30621 * ipa-icf.c (sem_function::init): Fix formating; skip GIMPLE_PREDICT.
30622 (sem_item::add_expr): New function.
30623 (sem_function::hash_stmt): Handle operands of most statements.
30624 (sem_variable::get_hash): Hash the actual constructor.
30625 * ipa-icf.h (sem_item): Add add_expr.
30626 (sem_function): Update prototype of hash_stmt
30627
30628 2015-02-28 Martin Liska <mliska@suse.cz>
30629 Jan Hubicka <hubicka@ucw.cz>
30630
30631 PR ipa/65245
30632 * ipa-icf-gimple.c (func_checker::compare_function_decl):
30633 Remove.
30634 (func_checker::compare_variable_decl): Skip symtab vars.
30635 (func_checker::compare_cst_or_decl): Update.
30636 * ipa-icf.c (sem_function::parse): Do not consider aliases.
30637 (sem_function::compare_cgraph_references): Add ADDRESS parameter;
30638 use correct symtab predicates.
30639 (sem_function::equals_wpa): Update uses of compare_cgraph_references.
30640 (sem_variable::parse): Update comment.
30641 (sem_item_optimizer::build_graph): Consider ultimate aliases
30642 for references.
30643
30644 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
30645
30646 * ipa-icf-gimple.c (func_checker::compare_operand): Fix handling
30647 of OBJ_TYPE_REF.
30648
30649 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
30650
30651 * ipa-icf.c (sem_function::merge): Fix handling of COMDAT.
30652 (sem_variable::merge) Likewise.
30653
30654 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
30655
30656 * ipa-inline.c (can_inline_edge_p): Match opt_for_fn on inline
30657 target; also match flag_ipa_devirt.
30658
30659 2015-03-01 Martin Liska <mliska@suse.cz>
30660 Jan Hubicka <hubicka@ucw.cz>
30661
30662 * ipa-icf-gimple.c (func_checker::compare_variable_decl):
30663 Validate variable alignment.
30664 * ipa-icf.c (sem_function::equals_private): Be more precise
30665 about non-common function attributes.
30666 (sem_variable::equals): Likewise.
30667
30668 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
30669
30670 PR ipa/65237
30671 * ipa-icf.c (sem_function::merge): Do not attempt to produce alias
30672 across COMDAT group boundary.
30673
30674 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
30675
30676 PR ipa/65232
30677 * ipa-icf.c (clear_decl_rtl): New function.
30678 (sem_function::merge): Clear RTL before forming alias.
30679 (sem_variable::merge): Clear RTL before forming alias.
30680
30681 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
30682
30683 PR ipa/65236
30684 * cgraphunit.c (cgraph_node::expand_thunk): Enable return slot opt.
30685
30686 2015-02-28 Xingxing Pan <xxingpan@marvell.com>
30687
30688 * config/aarch64/aarch64.md: (mov<mode>_aarch64): Change type
30689 to neon_to_gp<q>.
30690
30691 2015-02-27 Vladimir Makarov <vmakarov@redhat.com>
30692
30693 * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): Fix
30694 a typo in the description.
30695
30696 2015-02-27 Vladimir Makarov <vmakarov@redhat.com>
30697
30698 PR target/64317
30699 * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
30700 * params.h (LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
30701 * lra-constraints.c: Include "params.h".
30702 (EBB_PROBABILITY_CUTOFF): Use
30703 LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF.
30704 (lra_inheritance): Use '<' instead of '<=' for
30705 EBB_PROBABILITY_CUTOFF.
30706 * doc/invoke.texi (lra-inheritance-ebb-probability-cutoff):
30707 Document change.
30708
30709 2015-02-27 Martin Liska <mliska@suse.cz>
30710
30711 * ipa-icf.h (struct symbol_compare_hashmap_traits): Add missing
30712 vector length condition.
30713
30714 2015-02-27 Sandra Loosemore <sandra@codesourcery.com>
30715
30716 * doc/extend.texi (x86 transactional memory intrinsics):
30717 Reorganize discussion of _xbegin. Clarify that the return
30718 value is a bit mask. Expand example and move to end of section.
30719
30720 2015-02-26 Jakub Jelinek <jakub@redhat.com>
30721 Aldy Hernandez <aldyh@redhat.com>
30722
30723 PR rtl-optimization/65220
30724 * config/i386/i386.md (*udivmod<mode>4_pow2): New.
30725
30726 2015-02-27 Vladimir Makarov <vmakarov@redhat.com>
30727
30728 PR target/65032
30729 * lra-remat.c (update_scratch_ops): New.
30730 (do_remat): Call it.
30731 * lra.c (lra_register_new_scratch_op): New. Take code from ...
30732 (remove_scratches): ... here.
30733 * lra-int.h (lra_register_new_scratch_op): New prototype.
30734
30735 2015-02-27 Marek Polacek <polacek@redhat.com>
30736
30737 PR c/65040
30738 * doc/invoke.texi: Update to reflect that -Wformat=2 doesn't enable
30739 -Wformat-signedness anymore.
30740
30741 2015-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
30742
30743 * config/s390/s390.c: (s390_atomic_assign_expand_fenv): New
30744 function.
30745 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define macro.
30746
30747 2015-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
30748
30749 * config/s390/s390.c (enum s390_builtin):
30750 Add S390_BUILTIN_S390_SFPC and S390_BUILTIN_S390_EFPC.
30751 (code_for_builtin): Add CODE_FOR_s390_sfpc and CODE_FOR_s390_efpc.
30752 (s390_init_builtins): Generate new builtin functions.
30753 * config/s390/s390.md (UNSPECV_SFPC, UNSPECV_EFPC): New constants.
30754 (s390_sfpc, s390_efpc): New pattern definitions.
30755
30756 2015-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
30757
30758 * config/s390/s390.c: (enum s390_builtin, s390_expand_builtin):
30759 Rename S390_BUILTIN_max to S390_BUILTIN_MAX.
30760 (s390_builtin_decls): New array.
30761 (s390_init_builtins): Put builtin decls into s390_builtin_decls.
30762 (s390_builtin_decl): New function.
30763 (TARGET_BUILTIN_DECL): Define macro.
30764
30765 2015-02-27 Richard Biener <rguenther@suse.de>
30766
30767 PR middle-end/63175
30768 * builtins.c (get_object_alignment_2): Make sure to re-apply
30769 the ANDed mask after recursing to its operand gets us a new
30770 misalignment bit position.
30771
30772 2015-02-26 Jan Hubicka <hubicka@ucw.cz>
30773 Martin Liska <mliska@suse.cz>
30774
30775 PR bootstrap/65150
30776 * ipa-icf.c (symbol_compare_collection::symbol_compare_colleciton):
30777 Use address_matters_p.
30778 (redirect_all_callers, set_addressable): New functions.
30779 (sem_function::merge): Reorganize and fix merging issues.
30780 (sem_variable::merge): Likewise.
30781 (sem_variable::compare_sections): Remove.
30782 * common.opt (fmerge-all-constants, fmerge-constants): Remove
30783 Optimization flag.
30784 * symtab.c (symtab_node::resolve_alias): When alias has aliases,
30785 redirect them.
30786 (symtab_node::make_decl_local): Set ADDRESSABLE bit when
30787 decl is used.
30788 (address_matters_1): New function.
30789 (symtab_node::address_matters_p): New function.
30790 * cgraph.c (cgraph_edge::verify_corresponds_to_fndecl): Fix
30791 check for merged flag.
30792 * cgraph.h (address_matters_p): Declare.
30793 (symtab_node::address_taken_from_non_vtable_p): Remove.
30794 (symtab_node::address_can_be_compared_p): New method.
30795 (ipa_ref::address_matters_p): Move here from ipa-ref.c; simplify.
30796 * ipa-visibility.c (symtab_node::address_taken_from_non_vtable_p):
30797 Remove.
30798 (comdat_can_be_unshared_p_1) Use address_matters_p.
30799 (update_vtable_references): Fix formating.
30800 * ipa-ref.c (ipa_ref::address_matters_p): Move inline.
30801 * cgraphunit.c (cgraph_node::create_wrapper): Drop UNINLINABLE flag.
30802 * cgraphclones.c: Preserve merged and icf_merged flags.
30803
30804 2015-02-26 Sandra Loosemore <sandra@codesourcery.com>
30805
30806 * doc/extend.texi (Function Attributes): Fix spelling and typos.
30807 (Label Attributes): Likewise.
30808 (Cilk Plus Builtins): Likewise.
30809 (ARC SIMD Built-in Functions): Likewise.
30810 (ARM C Language Extensions (ACLE)): Likewise.
30811 (PowerPC Built-in Functions): Likewise.
30812 (PowerPC Hardware Transactional Memory Built-in Functions):
30813 Likewise.
30814
30815 2015-02-26 Jakub Jelinek <jakub@redhat.com>
30816
30817 PR tree-optimization/65216
30818 * tree-ssa-reassoc.c (rewrite_expr_tree): Force creation of
30819 new stmt and new SSA_NAME for lhs whenever the arguments have
30820 changed and weren't just swapped. Fix comment typo.
30821
30822 PR tree-optimization/65215
30823 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Return false
30824 for PDP endian targets.
30825 (perform_symbolic_merge, find_bswap_or_nop_1, find_bswap_or_nop):
30826 Fix up formatting issues.
30827 (bswap_replace): Likewise. For BYTES_BIG_ENDIAN, if the final access
30828 size is smaller than the original, adjust MEM_REF offset by the
30829 difference of sizes. Use is_gimple_mem_ref_addr instead of
30830 is_gimple_min_invariant test to avoid adding address temporaries.
30831
30832 2015-02-26 Martin Liska <mliska@suse.cz>
30833 Jan Hubicka <hubicka@ucw.cz>
30834
30835 PR ipa/64693
30836 * ipa-icf.c (symbol_compare_collection::symbol_compare_collection): New.
30837 (sem_item_optimizer::subdivide_classes_by_sensitive_refs): New function.
30838 (sem_item_optimizer::process_cong_reduction): Include division by
30839 sensitive references.
30840 * ipa-icf.h (struct symbol_compare_hashmap_traits): New class.
30841 * ipa-ref.c (ipa_ref::address_matters_p): New function.
30842 * ipa-ref.h (ipa_ref::address_matters_p): Likewise.
30843
30844 2015-02-26 Georg-Johann Lay <avr@gjlay.de>
30845
30846 PR target/65192
30847 * config/avr/avr-protos.h (tiny_valid_direct_memory_access_range):
30848 Remove.
30849 * config/avr/avr.c: Same.
30850 (avr_legitimate_address_p) <AVR_TINY, CONSTANT_ADDRESS_P>:
30851 Refuse any constant address not in 0..0xbf.
30852 * config/avr/avr.md (*mov<mode>, *movsf): Remove
30853 tiny_valid_direct_memory_access_range from insn conditions.
30854 (mov<mode>): Don't special-case expansion of avrtiny addresses.
30855
30856 2015-02-26 Oleg Endo <olegendo@gcc.gnu.org>
30857
30858 PR target/61142
30859 * config/sh/sh.c (sh_check_add_incdec_notes): New function.
30860 * config/sh/sh-protos.h (sh_check_add_incdec_notes): Declare it.
30861 * config/sh/predicates.md (const_logical_operand): New predicate.
30862 * config/sh/sh.md: Add new peephole2 patterns.
30863
30864 2015-02-26 Marek Polacek <polacek@redhat.com>
30865
30866 PR ipa/65008
30867 * ipa-inline.c (early_inliner): Recompute inline parameters.
30868
30869 2015-02-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
30870
30871 PR target/65171
30872 * config/rs6000/rs6000.c (rs6000_analyze_swaps): Ensure
30873 instructions with TImode operands are included in the analysis.
30874
30875 2015-02-26 Sebastian Pop <s.pop@samsung.com>
30876
30877 * tree-ssa-threadupdate.c (dump_jump_thread_path): Print all edges
30878 of an EDGE_FSM_THREAD.
30879
30880 2015-02-25 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
30881
30882 * config/rs6000/htm.md (tcheck): Fix assembly encoding.
30883
30884 2015-02-25 Aldy Hernandez <aldyh@redhat.com>
30885
30886 PR debug/46102
30887 * dwarf2out.c (dwarf2out_init): Disable -feliminate-dwarf2-dups.
30888
30889 2015-02-26 Sebastian Pop <s.pop@samsung.com>
30890
30891 PR tree-optimization/65048
30892 * tree-ssa-threadupdate.c (valid_jump_thread_path): New.
30893 (thread_through_all_blocks): Call valid_jump_thread_path.
30894 Remove invalid FSM jump-thread paths.
30895
30896 2015-02-26 Jakub Jelinek <jakub@redhat.com>
30897
30898 * passes.c (ipa_write_summaries_1): Call lto_output_init_mode_table.
30899 (ipa_write_optimization_summaries): Likewise.
30900 * tree-streamer.h: Include data-streamer.h.
30901 (streamer_mode_table): Declare extern variable.
30902 (bp_pack_machine_mode, bp_unpack_machine_mode): New inline functions.
30903 * lto-streamer-out.c (lto_output_init_mode_table,
30904 lto_write_mode_table): New functions.
30905 (produce_asm_for_decls): Call lto_write_mode_table when streaming
30906 offloading LTO.
30907 * lto-section-in.c (lto_section_name): Add "mode_table" entry.
30908 (lto_create_simple_input_block): Add mode_table argument to the
30909 lto_input_block constructors.
30910 * ipa-prop.c (ipa_prop_read_section, read_replacements_section):
30911 Likewise.
30912 * data-streamer-in.c (string_for_index): Likewise.
30913 * ipa-inline-analysis.c (inline_read_section): Likewise.
30914 * ipa-icf.c (sem_item_optimizer::read_section): Likewise.
30915 * lto-cgraph.c (input_cgraph_opt_section): Likewise.
30916 * lto-streamer-in.c (lto_read_body_or_constructor,
30917 lto_input_toplevel_asms): Likewise.
30918 (lto_input_mode_table): New function.
30919 * tree-streamer-out.c (pack_ts_fixed_cst_value_fields,
30920 pack_ts_decl_common_value_fields, pack_ts_type_common_value_fields):
30921 Use bp_pack_machine_mode.
30922 * real.h (struct real_format): Add name field.
30923 * lto-streamer.h (enum lto_section_type): Add LTO_section_mode_table.
30924 (class lto_input_block): Add mode_table member.
30925 (lto_input_block::lto_input_block): Add mode_table_ argument,
30926 initialize mode_table.
30927 (struct lto_file_decl_data): Add mode_table field.
30928 (lto_input_mode_table, lto_output_init_mode_table): New prototypes.
30929 * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields,
30930 unpack_ts_decl_common_value_fields,
30931 unpack_ts_type_common_value_fields): Call bp_unpack_machine_mode.
30932 * tree-streamer.c (streamer_mode_table): New variable.
30933 * real.c (ieee_single_format, mips_single_format,
30934 motorola_single_format, spu_single_format, ieee_double_format,
30935 mips_double_format, motorola_double_format,
30936 ieee_extended_motorola_format, ieee_extended_intel_96_format,
30937 ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
30938 ibm_extended_format, mips_extended_format, ieee_quad_format,
30939 mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
30940 decimal_single_format, decimal_double_format, decimal_quad_format,
30941 ieee_half_format, arm_half_format, real_internal_format): Add name
30942 field.
30943 * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
30944
30945 2015-02-26 Yuri Rumyantsev <ysrumyan@gmail.com>
30946
30947 PR target/65161
30948 * config/i386/i386.c (ix86_sched_reorder): Skip instruction
30949 reordering for selective scheduling.
30950
30951 2015-02-26 Terry Guo <terry.guo@arm.com>
30952
30953 * config/arm/arm-cores.def (cortex-m7): Add flag FL_NO_VOLATILE_CE.
30954 * config/arm/arm-protos.h (FL_NO_VOLATILE_CE): New flag.
30955 (arm_arch_no_volatile_ce): Declare new global variable.
30956 * config/arm/arm.c (arm_arch_no_volatile_ce): New global variable.
30957 (arm_option_override): Assign value to arm_arch_no_volatile_ce.
30958 * config/arm/arm.h (arm_arch_no_volatile_ce): Declare it.
30959 (TARGET_NO_VOLATILE_CE): New macro.
30960 * config/arm/arm.md (arm_comparison_operator): Disabled if not allow
30961 volatile memory access in IT block
30962
30963 2015-02-25 Kai Tietz <ktietz@redhat.com>
30964
30965 PR tree-optimization/61917
30966 * tree-vect-loop.c (vectorizable_reduction): Handle obvious case
30967 that reduc_def_stmt is null.
30968
30969 2015-02-25 Martin Liska <mliska@suse.cz>
30970
30971 * ipa-icf-gimple.c (func_checker::compare_variable_decl): Compare
30972 hard register variables.
30973
30974 2015-02-25 Kai Tietz <ktietz@redhat.com>
30975
30976 PR target/64212
30977 * symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
30978 (symtab::noninterposable_alias): Likewise.
30979
30980 2015-02-25 Ilya Enkovich <ilya.enkovich@intel.com>
30981
30982 PR target/65167
30983 * config/i386/i386.c (ix86_function_arg_regno_p): Support
30984 bounds registers.
30985 (avoid_func_arg_motion): Add dependencies for BNDSTX insns.
30986
30987 2015-02-25 Alan Lawrence <alan.lawrence@arm.com>
30988
30989 PR target/64997
30990 * config/aarch64/aarch64.md (*xor_one_cmpl<mode>3): Use FP_REGNUM_P
30991 as split condition; force split via '#' in output pattern.
30992
30993 2015-02-25 Richard Biener <rguenther@suse.de>
30994 Kai Tietz <ktietz@redhat.com>
30995
30996 PR tree-optimization/61917
30997 * tree-vect-loop.c (vectorizable_reduction): Allow
30998 vect_internal_def without reduction to exit graceful.
30999
31000 2015-02-25 Georg-Johann Lay <avr@gjlay.de>
31001
31002 PR target/65196
31003 * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
31004 only with NONDEBUG_INSN_P.
31005
31006 2015-02-25 Georg-Johann Lay <avr@gjlay.de>
31007
31008 Use variadic macros with avr-log.c.
31009
31010 * config/avr/avr-protos.h (avr_vdump): New prototype.
31011 (avr_log_set_caller_e, avr_log_set_caller_f): Remove protos.
31012 (avr_edump, avr_fdump, avr_dump): (Re)define to use avr_vdump.
31013 * config/avr/avr-log.c: Adjust comments.
31014 (avr_vdump): New function.
31015 (avr_vadump): Pass caller as 2nd argument instead of format string.
31016 (avr_log_caller, avr_log_fdump_e, avr_log_fdump_f)
31017 (avr_log_set_caller_e, avr_log_set_caller_f): Remove.
31018
31019 2015-02-25 Jakub Jelinek <jakub@redhat.com>
31020
31021 PR lto/64374
31022 * target.def (target_option_stream_in): New target hook.
31023 * tree-streamer-in.c (streamer_read_tree_bitfields): Invoke
31024 targetm.target_option.post_stream_in if non-NULL.
31025 * doc/tm.texi.in: Add @hook TARGET_OPTION_POST_STREAM_IN.
31026 * doc/tm.texi: Updated.
31027 * config/i386/i386.c (ix86_function_specific_post_stream_in): New
31028 function.
31029 (TARGET_OPTION_POST_STREAM_IN): Redefine.
31030
31031 2015-02-24 Jeff Law <law@redhat.com>
31032
31033 PR target/65117
31034 * config/xtensa/xtensa.md (zero_cost_loop_start): Reverse numbering
31035 of operand 0 and operand 2.
31036 (zero_cost_loop_end, loop_end): Similarly.
31037
31038 2015-02-24 Aldy Hernandez <aldyh@redhat.com>
31039
31040 * gimple.h (gimple_build_assign): Rename CXX_MEM_STAT_DECL to
31041 CXX_MEM_STAT_INFO.
31042
31043 2015-02-24 DJ Delorie <dj@redhat.com>
31044
31045 * config/rl78/rl78-protos.h (rl78_split_movsi): Accept a mode as well.
31046 * config/rl78/rl78-expand.md (movsf): New, same as movsi.
31047 * config/rl78/rl78.c (rl78_split_movsi): Accept a mode, use it
31048 instead of hardcoding SImode.
31049
31050 2015-02-24 Bernd Schmidt <bernds@codesourcery.com>
31051
31052 * omp-low.c (create_omp_child_function): Tag entrypoint
31053 functions with a special attribute.
31054
31055 2015-02-24 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
31056
31057 PR target/65058
31058 * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Drop unused variable.
31059
31060 2015-02-24 Vladimir Makarov <vmakarov@redhat.com>
31061
31062 PR rtl-optimization/65123
31063 * lra-remat.c (operand_to_remat): Check hard regs in insn
31064 definition too.
31065
31066 2015-02-24 Nick Clifton <nickc@redhat.com>
31067
31068 * config/v850/v850.h (ASM_SPEC): Pass -msoft-float/-mhard-float on
31069 to the assembler.
31070
31071 2015-02-24 Thomas Schwinge <thomas@codesourcery.com>
31072
31073 PR libgomp/64625
31074 * omp-builtins.def (BUILT_IN_GOACC_DATA_START): Specify as
31075 BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, not
31076 BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR.
31077 (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_UPDATE): Specify as
31078 BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR, not
31079 BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR.
31080 (BUILT_IN_GOACC_PARALLEL): Specify as
31081 BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR, not
31082 BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR.
31083 * builtin-types.def
31084 (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
31085 (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
31086 Remove function types.
31087 (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
31088 (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
31089 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
31090 New function types.
31091
31092 2015-02-24 Georg-Johann Lay <avr@gjlay.de>
31093
31094 * config/avr/stdfix.h [__WITH_AVRLIBC__]: Include <stdfix-avrlibc.h>.
31095
31096 2015-02-24 Jakub Jelinek <jakub@redhat.com>
31097
31098 PR tree-optimization/65170
31099 * wide-int.cc (wi::mul_internal): For the umul_ppmm optimization,
31100 if val[1] < 0, clear also val[2] and return 3.
31101
31102 2015-02-24 Alan Modra <amodra@gmail.com>
31103
31104 PR target/65172
31105 * config/rs6000/rs6000.c (get_memref_parts): Only return true
31106 when *base is a reg. Handle nested plus addresses. Simplify
31107 pre_modify test.
31108
31109 2015-02-22 Max Filippov <jcmvbkbc@gmail.com>
31110
31111 * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT, DATA_ALIGNMENT):
31112 use natural alignment when optimizing for size.
31113
31114 2015-02-23 Kaz Kojima <kkojima@gcc.gnu.org>
31115
31116 PR target/65153
31117 * config/sh/sh.md (movsicc_true+3): Remove peephole.
31118 * config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
31119 * config/sh/sh.c (replace_n_hard_rtx): Remove.
31120
31121 2015-02-23 Richard Sandiford <richard.sandiford@arm.com>
31122
31123 PR fortran/63427
31124 * wide-int.cc (wi::from_mpz): Cope with unwrapped values that are
31125 too big for a wide_int. Implement missing wrapping operation.
31126
31127 2015-02-23 Oleg Endo <olegendo@gcc.gnu.org>
31128
31129 PR target/65163
31130 * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
31131 instead of const_int 4294901760.
31132
31133 2015-02-23 Georg-Johann Lay <avr@gjlay.de>
31134
31135 * config/avr/t-avr: Fix typo in comment.
31136
31137 2015-02-21 Richard Sandiford <richard.sandiford@arm.com>
31138
31139 * doc/rtl.texi (fma): Clarify documentation.
31140
31141 2015-02-20 Aldy Hernandez <aldyh@redhat.com>
31142
31143 PR debug/58123
31144 * gimplify.c (gimplify_expr): Prefer location of TRY_FINALLY_EXPR
31145 over input_location.
31146
31147 2015-02-20 Bernd Schmidt <bernds@codesourcery.com>
31148
31149 * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
31150 unpack_ts_type_common_value_fields): If ACCEL_COMPILER,
31151 restrict alignments to absolute_biggest_alignment.
31152 * config/i386/i386.c (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT):
31153 Define.
31154 * doc/tm.texi.in (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT): Add.
31155 * doc/tm.texi: Regenerate.
31156 * target.def (absolute_biggest_alignment): New DEFHOOKPOD.
31157
31158 2015-02-20 Vladimir Makarov <vmakarov@redhat.com>
31159
31160 PR target/64172
31161 * ira-color.c (color_pass): Prevent splitting multi-register pseudos.
31162
31163 2015-02-20 Richard Biener <rguenther@suse.de>
31164
31165 PR tree-optimization/65136
31166 * tree-ssa-propagate.c: Include cfgloop.h.
31167 (replace_phi_args_in): Avoid replacing loop latch edge PHI
31168 arguments with constants.
31169
31170 2015-02-20 Jakub Jelinek <jakub@redhat.com>
31171 Martin Liska <mliska@suse.cz>
31172
31173 PR target/63892
31174 * ipa-icf.c (sem_function::merge): If DECL_COMDAT_GROUP (alias->decl),
31175 don't try to create_thunk if stdarg_p. If
31176 !sem_item::target_supports_symbol_aliases_p (), similarly, and try to
31177 redirect_callers if possible.
31178 (sem_item_optimizer::execute): Call unregister_hooks here...
31179 (ipa_icf_driver): ... instead of here.
31180
31181 2015-02-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
31182
31183 * config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
31184 Mark operand 0 as earlyclobber in 2nd alternative.
31185 (1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
31186 Write negated shift amount into QI lowpart operand 0 and use it
31187 in the shift step.
31188 (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
31189
31190 2015-02-20 Bernd Schmidt <bernds@codesourcery.com>
31191
31192 * cgraph.h (clone_function_name_1): Declare.
31193 * cgraphclones.c (clone_function_name_1): New function.
31194 (clone_function_name): Use it.
31195 * lto-partition.c: Include "stringpool.h".
31196 (must_not_rename, maybe_rewrite_identifier)
31197 (validize_symbol_for_target): New static functions.
31198 (privatize_symbol_name): Use must_not_rename.
31199 (promote_symbol): Call validize_symbol_for_target.
31200 (lto_promote_cross_file_statics): Likewise.
31201 (lto_promote_statics_nonwpa): Likewise.
31202
31203 2015-02-20 Georg-Johann Lay <avr@gjlay.de>
31204
31205 PR target/64452
31206 * config/avr/avr.md (pushhi_insn): New insn.
31207 (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
31208
31209 2015-02-20 Bernd Schmidt <bernds@codesourcery.com>
31210 Jakub Jelinek <jakub@redhat.com>
31211
31212 * tree-streamer.c (preload_common_nodes): Don't preload
31213 TI_VA_LIST* for offloading.
31214 * tree-stdarg.c (pass_stdarg::gate): Disable for ACCEL_COMPILER
31215 in_lto_p.
31216
31217 2015-02-19 John David Anglin <danlgin@gcc.gnu.org>
31218
31219 * config/pa/pa.c (pa_emit_move_sequence): Always force
31220 (const (plus (symbol) (const_int))) to const mem. Put REG_EQUAL
31221 note on insn.
31222
31223 * config/pa/pa.c (pa_reloc_rw_mask): New function.
31224 (TARGET_ASM_RELOC_RW_MASK): Define.
31225 (pa_cannot_force_const_mem): Revert previous change.
31226
31227 2015-02-19 Martin Jambor <mjmabor@suse.cz>
31228 Jan Hubicka <hubicka@ucw.cz>
31229
31230 PR ipa/65028
31231 * ipa-cp.c (propagate_alignment_accross_jump_function): Fix propagation
31232 across jump functions.
31233
31234 2015-02-19 Uros Bizjak <ubizjak@gmail.com>
31235
31236 * config/alpha/alpha.c (alpha_in_small_data_p): Reject common symbols.
31237
31238 2015-02-19 Sandra Loosemore <sandra@codesourcery.com>
31239
31240 * doc/extend.texi (x86 transactional memory intrinsics): Copy-edit.
31241
31242 2015-02-19 Richard Henderson <rth@redhat.com>
31243
31244 PR middle-end/65074
31245 * varasm.c (default_binds_local_p_2): Don't test node->definition;
31246 test DECL_EXTERNAL independent of symtab_node.
31247
31248 2015-02-19 Jakub Jelinek <jakub@redhat.com>
31249
31250 PR lto/65012
31251 * varpool.c (varpool_node::get_constructor): Return early
31252 if this->lto_file_data is NULL.
31253
31254 2015-02-19 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
31255
31256 * haifa-sched.c (enum rfs_decision, rfs_str): Remove RFS_DEBUG.
31257 (rank_for_schedule_debug): Update.
31258 (ready_sort): Make static. Move sorting logic to ...
31259 (ready_sort_debug, ready_sort_real): New static functions.
31260 (schedule_block): Sort both debug insns and real insns in preparation
31261 for ready list trimming. Improve debug output.
31262 * sched-int.h (ready_sort): Remove global declaration.
31263
31264 2015-02-18 Trevor Saunders <tsaunders@mozilla.com>
31265
31266 * ipa-icf.c (sem_function::equals_private): Adjust.
31267 (sem_function::bb_dict_test): Take a vec<int> * instead of
31268 auto_vec<int>.
31269 * ipa-icf.h (bb_dict_test): Likewise.
31270
31271 2015-02-18 Jakub Jelinek <jakub@redhat.com>
31272
31273 PR gcov-profile/64634
31274 * tree-eh.c (frob_into_branch_around): Fix up typos
31275 in function comment.
31276 (lower_catch): Put eh_seq resulting from EH lowering of
31277 the cleanup sequence after the cleanup rather than before it.
31278
31279 2015-02-18 Tom de Vries <tom@codesourcery.com>
31280
31281 * common.opt (fstdarg-opt): New option.
31282 * tree-stdarg.c (pass_stdarg::gate): Use flag_stdarg_opt.
31283 * doc/invoke.texi (@item Optimization Options): Add -fstdarg-opt.
31284 (@item -fstdarg-opt): New item.
31285
31286 2015-02-18 H.J. Lu <hongjiu.lu@intel.com>
31287
31288 PR target/65064
31289 * config/ia64/predicates.md (sdata_symbolic_operand): Return false
31290 for common symbols.
31291
31292 2015-02-18 Jakub Jelinek <jakub@redhat.com>
31293
31294 * config/i386/t-intelmic (mkoffload.o): Remove dependency on
31295 insn-modes.h.
31296 (ALL_HOST_OBJS): Add mkoffload.o.
31297 * config/nvptx/t-nvptx (ALL_HOST_OBJS): Likewise.
31298
31299 2015-02-18 Jan Hubicka <hubicka@ucw.cz>
31300
31301 * ipa-devirt.c (odr_subtypes_equivalent_p): Fix formating.
31302 (compare_virtual_tables): Be smarter about skipping typeinfos;
31303 do sane output on virtual table table mismatch.
31304 (warn_odr): Be ready for forward declarations of enums;
31305 output sane info on base mismatch and virtual table mismatch.
31306 (add_type_duplicate): Fix code choosing prevailing type; do not ICE
31307 when only one type is polymorphic.
31308 (get_odr_type): Fix hashtable corruption.
31309 (dump_odr_type): Dump mangled names.
31310
31311 2015-02-18 Richard Biener <rguenther@suse.de>
31312
31313 PR tree-optimization/65063
31314 * tree-predcom.c (determine_unroll_factor): Return 1 if we
31315 have replaced looparound PHIs.
31316
31317 2015-02-18 Martin Liska <mliska@suse.cz>
31318
31319 * lto-streamer.c (lto_streamer_init): Encapsulate
31320 streamer_check_handled_ts_structures with checking macro.
31321
31322 2015-02-18 Jakub Jelinek <jakub@redhat.com>
31323
31324 PR ipa/65087
31325 * cgraphclones.c (cgraph_node::create_virtual_clone): Only copy
31326 section if !implicit_section.
31327 (cgraph_node::create_version_clone_with_body): Likewise.
31328 * trans-mem.c (ipa_tm_create_version): Likewise.
31329
31330 2015-02-18 Richard Biener <rguenther@suse.de>
31331
31332 PR tree-optimization/62217
31333 * tree-ssa-dom.c (cprop_operand): Avoid propagating copies
31334 into BIVs.
31335
31336 2015-02-18 Marek Polacek <polacek@redhat.com>
31337
31338 PR sanitizer/65081
31339 * ubsan.c (OBJSZ_MAX_OFFSET): Define.
31340 (ubsan_expand_objsize_ifn): Don't emit run-time check if the offset
31341 is in range [-16K, -1]. Don't issue run-time error if
31342 (ptr > ptr + offset).
31343
31344 2015-02-18 Thomas Schwinge <thomas@codesourcery.com>
31345
31346 * doc/install.texi (nvptx-*-none): New section.
31347 * doc/invoke.texi (Nvidia PTX Options): Likewise.
31348 * config/nvptx/nvptx.opt: Update.
31349
31350 * config/nvptx/mkoffload.c (parse_env_var, free_array_of_ptrs)
31351 (access_check): New functions, copied from
31352 config/i386/intelmic-mkoffload.c.
31353 (main): For non-installed testing, look in all COMPILER_PATHs for
31354 GCC_INSTALL_NAME.
31355
31356 * config/nvptx/nvptx.h (GOMP_SELF_SPECS): Define macro.
31357
31358 2015-02-18 Andrew Pinski <apinski@cavium.com>
31359 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
31360
31361 * config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
31362 Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.
31363
31364 2015-02-17 Jan Hubicka <hubicka@ucw.cz>
31365
31366 * ipa-visibility.c (function_and_variable_visibility): Only
31367 check locality if node is not already local.
31368 * ipa-inline.c (want_inline_function_to_all_callers_p): Use
31369 call_for_symbol_and_aliases instead of
31370 call_for_symbol_thunks_and_aliases.
31371 (ipa_inline): Likewise.
31372 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
31373 first walk aliases.
31374 * ipa.c (symbol_table::remove_unreachable_nodes): Use
31375 call_for_symbol_and_aliases.
31376 * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
31377 (ipa_propagate_frequency_1): Use it; use opt_for_fn
31378 (ipa_propagate_frequency): Update.
31379 (ipa_profile): Add opt_for_fn gueards.
31380
31381 2015-02-17 Oleg Endo <olegendo@gcc.gnu.org>
31382
31383 * config/sh/sh.opt (mcbranch-force-delay-slot): New option.
31384 * doc/invoke.texi (SH options): Document it.
31385 * config/sh/sh.c (sh_insn_length_adjustment): Check
31386 TARGET_CBRANCH_FORCE_DELAY_SLOT instead of sh_cpu_attr == CPU_SH2E.
31387
31388 2015-02-17 H.J. Lu <hongjiu.lu@intel.com>
31389
31390 * common.opt (fipa-cp-alignment): New.
31391 * ipa-cp.c (ipcp_store_alignment_results): Check
31392 flag_ipa_cp_alignment.
31393 * opts.c (default_options_table): Enable -fipa-cp-alignment for
31394 -O2.
31395 (enable_fdo_optimizations): Set x_flag_ipa_cp_alignment.
31396 * doc/invoke.texi: Document -fipa-cp-alignment.
31397
31398 2015-02-17 Oleg Endo <olegendo@gcc.gnu.org>
31399
31400 PR target/64793
31401 * config/sh/sh.md (cbranch define_delay): Set annulled true branch insn
31402 to nil. Adjust comments.
31403
31404 2015-02-17 Jan Hubicka <hubicka@ucw.cz>
31405
31406 * ipa-visibility.c (function_and_variable_visibility): Only
31407 check locality if node is not already local.
31408 * ipa-inline.c (want_inline_function_to_all_callers_p): Use
31409 call_for_symbol_and_aliases instead of
31410 call_for_symbol_thunks_and_aliases.
31411 (ipa_inline): Likewise.
31412 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
31413 first walk aliases.
31414 * ipa.c (symbol_table::remove_unreachable_nodes): Use
31415 call_for_symbol_and_aliases.
31416 * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
31417 (ipa_propagate_frequency_1): Use it; use opt_for_fn
31418 (ipa_propagate_frequency): Update.
31419 (ipa_profile): Add opt_for_fn guards.
31420
31421 2015-02-17 Thomas Schwinge <thomas@codesourcery.com>
31422
31423 * config/nvptx/mkoffload.c (parse_file): Fix logic error in
31424 skipping of "strange" tokens.
31425
31426 2015-02-17 Jeff Law <law@redhat.com>
31427
31428 * tree-vrp.c (identify_jump_threads): Use last_stmt. Remove
31429 obsolete comment.
31430
31431 2015-02-17 James Greenhalgh <james.greenhalgh@arm.com>
31432
31433 * haifa-sched.c (recompute_todo_spec): Treat SCHED_GROUP_P
31434 as forcing a HARD_DEP between instructions, thereby
31435 disallowing rewriting to break dependencies.
31436
31437 2015-02-16 Jan Hubicka <hubicka@ucw.cz>
31438
31439 * symtab.c (symtab_node::verify_base): Verify body_removed->!definiton
31440 * lto-cgraph.c (lto_output_varpool_node): Do not keep definition of
31441 variables in boundary that have no inlitalizer encoded and are
31442 not aliases.
31443 * varasm.c (default_binds_local_p_2): External definitions do not
31444 count as definitions here.
31445
31446 2015-02-16 Jeff Law <law@redhat.com>
31447
31448 PR tree-optimization/64823
31449 * tree-vrp.c (identify_jump_threads): Handle blocks with no real
31450 statements.
31451 * tree-ssa-threadedge.c (potentially_threadable_block): Allow
31452 threading through blocks with PHIs, but no statements.
31453 (thread_through_normal_block): Distinguish between blocks where
31454 we did not process all the statements and blocks with no statements.
31455
31456 2015-02-16 Jakub Jelinek <jakub@redhat.com>
31457 James Greenhalgh <james.greenhalgh@arm.com>
31458
31459 PR ipa/64963
31460 * cgraphclones.c (cgraph_node::create_virtual_clone): Copy
31461 section if not linkonce. Fix up formatting.
31462 (cgraph_node::create_version_clone_with_body): Copy section.
31463 * trans-mem.c (ipa_tm_create_version): Likewise.
31464
31465 2015-02-16 Richard Biener <rguenther@suse.de>
31466
31467 PR tree-optimization/65077
31468 * tree-ssa-structalias.c (get_constraint_for_1): Handle
31469 IMAGPART_EXPR, REALPART_EXPR and BIT_FIELD_REF.
31470 (find_func_aliases): Allow float values to carry pointers again.
31471
31472 2015-02-16 James Greenhalgh <james.greenhalgh@arm.com>
31473
31474 * doc/install.texi (Specific): Reorder targets list to put
31475 aarch64 in alphabetical order. Add a link to aarch64*-*-*
31476 from the top menu.
31477
31478 2015-02-16 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
31479 David Edelsohn <dje.gcc@gmail.com>
31480
31481 PR target/65058
31482 * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Append storage
31483 mapping class to external variable or function reference.
31484 * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Do not append storage
31485 mapping class.
31486
31487 2015-02-16 David Eelsohn <dje.gcc@gmail.com>
31488
31489 PR target/53348
31490 * config/rs6000/rs6000.c (rs6000_declare_alias): Only use
31491 ASM_WEAKEN_DECL if defined.
31492
31493 2015-02-16 Richard Biener <rguenther@suse.de>
31494
31495 PR lto/65015
31496 * varasm.c (default_file_start): For LTO produced units
31497 emit <artificial> as file directive.
31498
31499 2015-02-16 Richard Biener <rguenther@suse.de>
31500
31501 PR tree-optimization/63593
31502 * tree-predcom.c (execute_pred_commoning_chain): Delay removing
31503 stmts and releasing SSA names until...
31504 (execute_pred_commoning): ... after processing all chains.
31505
31506 2015-02-16 Jan Hubicka <hubicka@ucw.cz>
31507
31508 PR ipa/65059
31509 * ipa-comdats.c (ipa_comdats): Do not categorize thunks to
31510 external functions.
31511
31512 2015-02-15 Sandra Loosemore <sandra@codesourcery.com>
31513
31514 * doc/bugreport.texi: Adjust section titles throughout the file
31515 to use "Title Case".
31516 * doc/extend.texi: Likewise.
31517 * doc/gcov.texi: Likewise.
31518 * doc/implement-c.texi: Likewise.
31519 * doc/implement-cxx.texi: Likewise.
31520 * doc/invoke.texi: Likewise.
31521 * doc/objc.texi: Likewise.
31522 * doc/standards.texi: Likewise.
31523 * doc/trouble.texi: Likewise.
31524
31525 2015-02-15 Jan Hubicka <hubicka@ucw.cz>
31526
31527 * cgraph.h (symtab_node::has_aliases_p): Simplify.
31528 (symtab_node::call_for_symbol_and_aliases): Use has_aliases_p
31529 * tree.c (lookup_binfo_at_offset): Make static.
31530 (get_binfo_at_offset): Do not shadow offset; add explanatory
31531 comment.
31532
31533 2015-02-15 John David Anglin <danglin@gcc.gnu.org>
31534
31535 * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
31536 for all floading point loads and stores except those using a register
31537 index address.
31538 * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
31539 to a register.
31540
31541 2015-02-14 Jan Hubicka <hubicka@ucw.cz>
31542
31543 * ipa-inline-analysis.c (growth_data): Add uninlinable field.
31544 (do_estimate_growth_1): Record if any uninlinable edge was seen.
31545 (estimate_growth): Handle uninlinable edges correctly.
31546 (check_callers): New.
31547 (growth_likely_positive): Handle aliases correctly.
31548
31549 2015-02-14 Jan Hubicka <hubicka@ucw.cz>
31550
31551 * ipa-chkp.c: Use iterate_direct_aliases.
31552 * symtab.c (resolution_used_from_other_file_p): Move inline.
31553 (symtab_node::create_reference): Fix formating.
31554 (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
31555 (symtab_node::iterate_reference): Move inline.
31556 (symtab_node::iterate_referring): Move inline.
31557 (symtab_node::iterate_direct_aliases): Move inline.
31558 (symtab_node::used_from_object_file_p_worker): Inline into ...
31559 (symtab_node::used_from_object_file_p): ... this one; move inline.
31560 (symtab_node::call_for_symbol_and_aliases): Move inline;
31561 use iterate_direct_aliases.
31562 (symtab_node::call_for_symbol_and_aliases_1): New method.
31563 (cgraph_node::call_for_symbol_and_aliases): Move inline;
31564 use iterate_direct_aliases.
31565 (cgraph_node::call_for_symbol_and_aliases_1): New method.
31566 (varpool_node::call_for_node_and_aliases): Rename to ...
31567 (varpool_node::call_for_symbol_and_aliases): ... this one; Move inline;
31568 use iterate_direct_aliases.
31569 (varpool_node::call_for_symbol_and_aliases_1): New method.
31570 * ipa.c (ipa_single_use): Use iterate_direct_aliases.
31571 (ipa_discover_readonly_nonaddressable_var): Update.
31572 * ipa-devirt.c: Fix formating.
31573 * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
31574 Move inline.
31575 (cgraph_node::call_for_symbol_and_aliases): Move inline.
31576 (cgraph_node::call_for_symbol_and_aliases_1): New function..
31577 * cgraph.h (used_from_object_file_p_worker): Remove.
31578 (resolution_used_from_other_file_p): Move inline.
31579 (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
31580 (symtab_node::iterate_reference): Move inline.
31581 (symtab_node::iterate_referring): Move inline.
31582 (symtab_node::iterate_direct_aliases): Move inline.
31583 (symtab_node::used_from_object_file_p_worker): Inline into ...
31584 (symtab_node::used_from_object_file_p): Move inline.
31585 * tree-emutls.c (ipa_lower_emutls): Update.
31586 * varpool.c (varpool_node::call_for_symbol_and_aliases_1): New method.
31587 (varpool_node::call_for_node_and_aliases): Remove.
31588
31589 2015-02-14 Jakub Jelinek <jakub@redhat.com>
31590
31591 PR tree-optimization/62209
31592 * tree-ssa-reassoc.c (update_range_test): If stmt is a PHI and
31593 op == range->exp, insert seq and gimplified code after labels
31594 instead of after the phi.
31595
31596 2015-02-13 Jeff Law <law@redhat.com>
31597
31598 PR bootstrap/65060
31599 Revert my change for tree-optimization/64823.
31600
31601 2015-02-13 Jakub Jelinek <jakub@redhat.com>
31602
31603 PR tree-optimization/65053
31604 * tree-ssa-phiopt.c (value_replacement): When moving assign before
31605 cond, either reset VR on lhs or set it to phi result VR.
31606
31607 2015-02-13 Jeff Law <law@redhat.com>
31608
31609 PR tree-optimization/64823
31610 * tree-vrp.c (identify_jump_threads): Handle blocks with no statements.
31611 * tree-ssa-threadedge.c (potentially_threadable_block): Allow
31612 threading through blocks with PHIs, but no statements.
31613 (thread_through_normal_block): Distinguish between blocks where
31614 we did not process all the statements and blocks with no statements.
31615
31616 PR rtl-optimization/47477
31617 * match.pd (convert (plus/minus (convert @0) (convert @1): New
31618 simplifier to narrow arithmetic.
31619
31620 2015-02-13 Jan Hubicka <hubicka@ucw.cz>
31621
31622 PR ipa/65028
31623 * ipa-prop.c (update_indirect_edges_after_inlining): Do not drop
31624 polymorphic call info when type is not known to be preserved.
31625
31626 2015-02-13 Maritn Jambor <mjambor@suse.cz>
31627
31628 PR ipa/65028
31629 * ipa-inline-transform.c (mark_all_inlined_calls_cdtor): New function.
31630 (inline_call): Use it.
31631
31632 2015-02-13 Thomas Schwinge <thomas@codesourcery.com>
31633
31634 * config/nvptx/offload.h (ACCEL_COMPILER_acc_device): Define to
31635 GOMP_DEVICE_NVIDIA_PTX.
31636
31637 2015-02-13 Jakub Jelinek <jakub@redhat.com>
31638
31639 PR ipa/65034
31640 * stmt.c (emit_case_nodes): Use void_type_node instead of
31641 NULL_TREE as LABEL_DECL type.
31642
31643 2015-02-13 John David Anglin <danglin@gcc.gnu.org>
31644
31645 * config/pa/constraints.md: Change "Q" and "T" constraints to memory
31646 constraints.
31647 * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
31648 symbolic references to data to be forced to constant memory on the
31649 SOM target.
31650
31651 2015-02-13 Ilya Enkovich <ilya.enkovich@intel.com>
31652
31653 PR tree-optimization/65002
31654 * tree-cfg.c (pass_data_fixup_cfg): Don't update
31655 SSA on start.
31656 * tree-sra.c (some_callers_have_no_vuse_p): New.
31657 (ipa_early_sra): Reject functions whose callers
31658 assume function is read only.
31659
31660 2015-02-13 Richard Biener <rguenther@suse.de>
31661
31662 PR lto/65015
31663 * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
31664 for LTO produced CUs.
31665
31666 2015-02-13 Bin Cheng <bin.cheng@arm.com>
31667
31668 PR tree-optimization/64705
31669 * tree-ssa-loop-niter.h (expand_simple_operations): New parameter.
31670 * tree-ssa-loop-niter.c (expand_simple_operations): New parameter.
31671 * tree-ssa-loop-ivopts.c (extract_single_var_from_expr): New.
31672 (find_bivs, find_givs_in_stmt_scev): Pass new argument to
31673 expand_simple_operations.
31674
31675 2015-02-13 H.J. Lu <hongjiu.lu@intel.com>
31676 Richard Henderson <rth@redhat.com>
31677
31678 PR rtl/32219
31679 * cgraphunit.c (cgraph_node::finalize_function): Set definition
31680 before notice_global_symbol.
31681 (varpool_node::finalize_decl): Likewise.
31682 * varasm.c (default_binds_local_p_2): Rename from
31683 default_binds_local_p_1, add weak_dominate argument. Use direct
31684 returns instead of assigning to local variable. Unify varpool and
31685 cgraph paths via symtab_node. Reject undef weak variables before
31686 testing visibility. Reorder tests for simplicity.
31687 (default_binds_local_p): Use default_binds_local_p_2.
31688 (default_binds_local_p_1): Likewise.
31689 (decl_binds_to_current_def_p): Unify varpool and cgraph paths
31690 via symtab_node.
31691 (default_elf_asm_output_external): Emit visibility when specified.
31692
31693 2015-02-13 Alan Modra <amodra@gmail.com>
31694
31695 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Fix typo in
31696 code setting up r11 for out-of-line fp restore.
31697
31698 2015-02-13 Eric Botcazou <ebotcazou@adacore.com>
31699
31700 * config/visium/visium.opt (msv-mode): Add RejectNegative and Report.
31701 (muser-mode): Likewise.
31702
31703 2015-02-13 Alan Modra <amodra@gmail.com>
31704
31705 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Use addsi3_carry
31706 or adddi3_carry when restoring frame_reg_rtx from r0 after restvr.
31707
31708 2015-02-12 David Howells <dhowells@redhat.com>
31709
31710 * tree-sra.c (dump_dereferences_table): Avoid -Wformat-security
31711 warning.
31712 * tree-ssa-uninit.c (dump_predicates): Likewise.
31713 * opts.c (print_filtered_help): Likewise.
31714
31715 2015-02-12 Jakub Jelinek <jakub@redhat.com>
31716
31717 * dwarf2out.c (output_die): Use "%s", name instead of name to
31718 avoid -Wformat-security warning.
31719
31720 * dwarf2asm.c (dw2_asm_output_vms_delta): Only define
31721 if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
31722 * dwarf2out.c (output_die): Use dw2_asm_output_vms_delta
31723 only if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
31724
31725 2015-02-12 Jason Merrill <jason@redhat.com>
31726
31727 * common.opt (-flifetime-dse): New.
31728
31729 2015-02-12 Jakub Jelinek <jakub@redhat.com>
31730
31731 PR sanitizer/65019
31732 * ubsan.c (ubsan_expand_objsize_ifn): Always return true.
31733
31734 PR tree-optimization/65014
31735 * fold-const.c (fold_binary_loc): When creating {L,R}ROTATE_EXPR,
31736 use original second operand of arg0 or arg1 instead of
31737 that adjusted by STRIP_NOPS.
31738
31739 2015-02-11 Jeff Law <law@redhat.com>
31740
31741 PR target/63347
31742 * haifa-sched.c (prune_ready_list): If we have a SCHED_GROUP_P insn
31743 that needs to be queued, just queue it for a single cycle.
31744
31745 2015-02-11 Jan Hubicka <hubicka@ucw.cz>
31746
31747 * ipa.c (symbol_table::remove_unreachable_nodes): Avoid releasing
31748 bodies of thunks; comment on why.
31749 * symtab.c (symtab_node::get_partitioning_class): Aliases of extern
31750 symbols are extern.
31751
31752 2015-02-11 Richard Henderson <rth@redhat.com>
31753
31754 PR sanitize/65000
31755 * tree-eh.c (mark_reachable_handlers): Mark source and destination
31756 regions of __builtin_eh_copy_values.
31757
31758 2015-02-11 Jakub Jelinek <jakub@redhat.com>
31759
31760 PR middle-end/65003
31761 * varasm.c (place_block_symbol): Assert that DECL_RTL of the
31762 ultimate alias is MEM with SYMBOL_REF satisfying
31763 SYMBOL_REF_HAS_BLOCK_INFO_P as its operand. Don't pass the MEM
31764 to place_block_symbol, but instead pass the SYMBOL_REF operand of it.
31765
31766 2015-02-11 Thomas Schwinge <thomas@codesourcery.com>
31767
31768 * config/nvptx/mkoffload.c: Include "diagnostic.h" instead of
31769 "diagnostic-core.h".
31770 (main): Initialize progname, and call diagnostic_initialize.
31771
31772 * config/nvptx/mkoffload.c (process): Refer to __OFFLOAD_TABLE__
31773 instead of __OPENMP_TARGET__.
31774
31775 * config/nvptx/mkoffload.c: Include "gomp-constants.h".
31776 (process): Use its GOMP_DEVICE_NVIDIA_PTX instead of (wrongly)
31777 hard-coding PTX_ID.
31778
31779 2015-02-11 H.J. Lu <hongjiu.lu@intel.com>
31780
31781 * doc/sourcebuild.texi (pie_enabled): Document.
31782
31783 2015-02-11 Martin Liska <mliska@suse.cz>
31784
31785 PR ipa/64813
31786 * cgraphunit.c (cgraph_node::expand_thunk): Do not create
31787 a return value for call to a function that is noreturn.
31788
31789 2015-02-11 Richard Biener <rguenther@suse.de>
31790
31791 PR lto/65015
31792 * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
31793 and -fresolution.
31794
31795 2015-02-11 Andrew Pinski <apinski@cavium.com>
31796
31797 PR target/64893
31798 * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
31799 Change the first argument type to size_type_node and add another
31800 size_type_node.
31801 (aarch64_simd_expand_builtin): Handle the new argument to
31802 AARCH64_SIMD_BUILTIN_LANE_CHECK and don't ICE but rather
31803 print an out when the first two arguments are not
31804 nonzero integer constants.
31805 * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK):
31806 Pass the sizeof directly to __builtin_aarch64_im_lane_boundsi.
31807
31808 2015-02-11 Jakub Jelinek <jakub@redhat.com>
31809
31810 PR target/61925
31811 * config/i386/i386.c (ix86_reset_to_default_globals): Removed.
31812 (ix86_reset_previous_fndecl): Restore it here, unconditionally.
31813 (ix86_set_current_function): Rewritten.
31814 (ix86_add_new_builtins): Temporarily clear current_target_pragma
31815 when creating builtin fndecls.
31816
31817 2015-02-10 Jan Hubicka <hubicka@ucw.cz>
31818
31819 PR ipa/65005
31820 * ipa-visibility.c (cgraph_node::non_local_p): Turn into static
31821 function.
31822 * symtab.c (symtab_node::verify_base): Remove check that non-definitions
31823 have no comdat group.
31824 * lto-cgraph.c (lto_output_node): Always output thunk and alias info.
31825 (lto_output_varpool_node): Always output alias info.
31826 (output_refs): Output refs of boundary aliases, too.
31827 (compute_ltrans_boundary): Add alias and thunk target into boundaries.
31828 (output_symtab): Output call eges in thunks in boundary.
31829 (get_alias_symbol): Remove.
31830 (input_node, input_varpool_node): Do not special case weakrefs.
31831 * ipa.c (symbol_table::remove_unreachable_nodes): Do not remove
31832 alias and thunks targets in the boundary; do not take removed symbols
31833 from their comdat groups.
31834 * cgraph.c (cgraph_node::local_info): Look through aliases and thunks.
31835 (cgraph_node::global_info): Remove.
31836 (cgraph_node::rtl_info): Look through aliases and thunks.
31837 * cgrpah.h (global_info): Remove.
31838 (non_local_p): Remove.
31839
31840 2015-02-10 David Wohlferd <dw@LimeGreenSocks.com>
31841 Sandra Loosemore <sandra@codesourcery.com>
31842
31843 * doc/invoke.texi (x86 Options [-masm=dialect]): Add cross-references
31844 to inline asm. List dialects in proper order.
31845
31846 2015-02-10 David Wohlferd <dw@LimeGreenSocks.com>
31847 Sandra Loosemore <sandra@codesourcery.com>
31848
31849 * doc/extend.texi (Loop-Specific Pragmas): Fix grammar error.
31850
31851 2015-02-10 David Wohlferd <dw@LimeGreenSocks.com>
31852
31853 * doc/extend.texi (Symbol-Renaming Pragmas): Restore (slightly
31854 modified) reference to Solaris.
31855
31856 2015-02-10 Sandra Loosemore <sandra@codesourcery.com>
31857
31858 * doc/extend.texi (Extended Asm): Fix typos.
31859
31860 2015-02-10 Jakub Jelinek <jakub@redhat.com>
31861
31862 PR sanitizer/65004
31863 * ubsan.c (ubsan_expand_vptr_ifn): Always return true.
31864
31865 2015-02-10 Oleg Endo <olegendo@gcc.gnu.org>
31866
31867 PR target/64661
31868 * config/sh/sh-protos.h (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
31869 TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
31870 TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Add parentheses.
31871 * config/sh/constraints.md (Ara, Add): New constraints.
31872 * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1): New
31873 predicates.
31874 (atomic_compare_and_swap<mode>, atomic_exchange<mode>): Use
31875 atomic_mem_operand_0. Don't use force_reg on the memory address.
31876 (atomic_compare_and_swapsi_hard): Use atomic_mem_operand_0 predicate and
31877 Sra constraint. Convert to insn_and_split. Add workaround for
31878 PR 64974.
31879 (atomic_compare_and_swap<mode>_hard): Copy to
31880 atomic_compare_and_swap<mode>_hard_1. Convert to insn_and_split.
31881 Use atomic_mem_operand_0 predicate.
31882 (atomic_compare_and_swap<mode>_soft_gusa,
31883 atomic_exchange<mode>_soft_gusa): Use atomic_mem_operand_0 predicate and
31884 AraAdd constraints.
31885 (atomic_compare_and_swap<mode>_soft_tcb,
31886 atomic_compare_and_swap<mode>_soft_imask,
31887 atomic_exchange<mode>_soft_tcb, atomic_exchange<mode>_soft_imask): Use
31888 atomic_mem_operand_0 predicate and SraSdd constraints.
31889 (atomic_exchangesi_hard) Use atomic_mem_operand_0 predicate and Sra
31890 constraint.
31891 (atomic_exchange<mode>_hard): Copy to atomic_exchange<mode>_hard_1.
31892 Convert to insn_and_split. Use atomic_mem_operand_0 predicate.
31893 (atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
31894 atomic_<fetchop_name>_fetch<mode>): Use atomic_mem_operand_1. Don't use
31895 force_reg on the memory address.
31896 (atomic_fetch_<fetchop_name>si_hard, atomic_fetch_notsi_hard,
31897 atomic_fetch_nandsi_hard, atomic_<fetchop_name>_fetchsi_hard,
31898 atomic_not_fetchsi_hard, atomic_nand_fetchsi_hard): Use
31899 atomic_mem_operand_1 predicate and Sra constraint.
31900 (atomic_fetch_<fetchop_name><mode>_hard): Copy to
31901 atomic_fetch_<fetchop_name><mode>_hard_1. Convert to insn_and_split.
31902 Use atomic_mem_operand_1 predicate.
31903 (atomic_<fetchop_name><mode>_hard): Copy to
31904 atomic_<fetchop_name><mode>_hard_1. Convert to insn_and_split.
31905 Use atomic_mem_operand_1 predicate.
31906 (atomic_fetch_nand<mode>_hard): Copy to atomic_fetch_nand<mode>_hard_1.
31907 Convert to insn_and_split. Use atomic_mem_operand_1 predicate.
31908 (atomic_nand<mode>_hard): Copy to atomic_nand<mode>_hard_1. Convert to
31909 insn_and_split. Use atomic_mem_operand_1 predicate.
31910 (atomic_<fetchop_name>_fetch<mode>_hard): Copy to
31911 atomic_<fetchop_name>_fetch<mode>_hard_1. Convert to insn_and_split.
31912 Use atomic_mem_operand_1 predicate.
31913 (atomic_nand_fetch<mode>_hard): Copy to atomic_nand_fetch<mode>_hard_1.
31914 Convert to insn_and_split. Use atomic_mem_operand_1 predicate.
31915 (atomic_fetch_not<mode>_hard, atomic_not_fetch<mode>_hard): Replace mems
31916 in generated insn with original mem operand before emitting the insn.
31917 (atomic_fetch_<fetchop_name><mode>_soft_gusa,
31918 atomic_fetch_not<mode>_soft_gusa, atomic_fetch_nand<mode>_soft_gusa,
31919 atomic_<fetchop_name>_fetch<mode>_soft_gusa,
31920 atomic_not_fetch<mode>_soft_gusa, atomic_nand_fetch<mode>_soft_gusa):
31921 Use atomic_mem_operand_1 predicate and AraAdd constraints.
31922 (atomic_fetch_<fetchop_name><mode>_soft_tcb,
31923 atomic_<fetchop_name><mode>_soft_tcb, atomic_fetch_not<mode>_soft_tcb,
31924 atomic_not<mode>_soft_tcb, atomic_fetch_<fetchop_name><mode>_soft_imask,
31925 atomic_fetch_not<mode>_soft_imask, atomic_fetch_nand<mode>_soft_tcb,
31926 atomic_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask,
31927 atomic_<fetchop_name>_fetch<mode>_soft_tcb,
31928 atomic_not_fetch<mode>_soft_tcb,
31929 atomic_<fetchop_name>_fetch<mode>_soft_imask,
31930 atomic_not_fetch<mode>_soft_imask, atomic_nand_fetch<mode>,
31931 atomic_nand_fetch<mode>_soft_tcb, atomic_nand_fetch<mode>_soft_imask):
31932 Use atomic_mem_operand_1 predicate and SraSdd constraints.
31933
31934 2015-02-10 Uros Bizjak <ubizjak@gmail.com>
31935
31936 * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
31937 and 3 earlyclobber operands.
31938
31939 2015-02-10 Jan Hubicka <hubicka@ucw.cz>
31940
31941 * common.opt (fstack-reuse): Mark as optimization.
31942
31943 2015-02-10 Jan Hubicka <hubicka@ucw.cz>
31944
31945 PR ipa/64982
31946 * cgraphunit.c (cgraph_node::expand_thunk): Look for stdarg thunks.
31947
31948 2015-02-10 Trevor Saunders <tsaunders@mozilla.com>
31949
31950 PR tree-optimization/64326
31951 * cfghooks.c (make_forwarder_block): Cap frequency of created block.
31952
31953 2015-02-10 Rainer Emrich <rainer@emrich-ebersheim.de>
31954
31955 PR gcov-profile/61889
31956 * gcov-tool.c: Remove wrong #if !defined(_WIN32)
31957
31958 2015-02-10 Richard Biener <rguenther@suse.de>
31959
31960 PR tree-optimization/64995
31961 * tree-ssa-sccvn.c (set_ssa_val_to): Assert that the
31962 value we use is final.
31963 (visit_reference_op_store): Always valueize op.
31964 (visit_use): Properly valueize vuses.
31965
31966 2015-02-10 Richard Biener <rguenther@suse.de>
31967
31968 PR tree-optimization/64909
31969 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
31970 pass a scalar-stmt count estimate to the cost model.
31971 * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
31972
31973 2015-02-10 Alexander Monakov <amonakov@ispras.ru>
31974
31975 * doc/invoke.texi (-fvar-tracking-assignments): Clarify that VTA is
31976 enabled by default together with var-tracking.
31977
31978 2015-02-10 Nick Clifton <nickc@redhat.com>
31979
31980 * config/rl78/rl78.c: Remove DIV attribute code accidentally
31981 included in previous rl78 commit.
31982
31983 2015-02-10 Richard Biener <rguenther@suse.de>
31984
31985 * tree-streamer.h (streamer_read_tree_bitfields): Adjust.
31986 * tree-streamer-in.c (streamer_read_tree_bitfields): Do not
31987 return the bitpack.
31988
31989 2015-02-09 Trevor Saunders <tsaunders@mozilla.com>
31990
31991 PR gcov-profile/61889
31992 * config.in: regenerate.
31993 * configure.in: Likewise.
31994 * configure.ac: Check for ftw.h.
31995 * gcov-tool.c: Check for ftw.h before using nftw.
31996
31997 2015-02-09 Trevor Saunders <tsaunders@mozilla.com>
31998
31999 PR lto/64076
32000 * ipa-visibility.c (update_visibility_by_resolution_info): Only
32001 assert when not in lto mode.
32002
32003 2015-02-09 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
32004
32005 * ira-color.c (setup_left_conflict_sizes_p): Simplify
32006 initialization/assignment of conflict_size.
32007
32008 2015-02-09 Jan Hubicka <hubicka@ucw.cz>
32009
32010 PR ipa/64978
32011 * ipa-cp.c (gather_caller_stats): Skip thunks.
32012 (propagate_constants_topo): Skip aliases.
32013
32014 2015-02-09 Kaz Kojima <kkojima@gcc.gnu.org>
32015
32016 PR target/64761
32017 * config/sh/sh.c (sh_option_override): Don't change
32018 -freorder-blocks-and-partition to -freorder-blocks even when
32019 unwinding is enabled.
32020 (sh_can_follow_jump): Return false if the followee jump is
32021 a crossing jump when -freorder-blocks-and-partition is specified.
32022 * config/sh/sh.md (*jump_compact_crossing): New insn.
32023
32024 2015-02-09 Joern Rennecke <joern.rennecke@embecosm.com>
32025 Kaz Kojima <kkojima@gcc.gnu.org>
32026
32027 PR target/64761
32028 * config/sh/sh-protos.h (sh_can_redirect_branch): Don't declare.
32029 * config/sh/sh.c (TARGET_CAN_FOLLOW_JUMP): Redefine.
32030 (sh_can_redirect_branch): Rename to ...
32031 (sh_can_follow_jump): ... this. Constify argument types.
32032 * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): Don't define.
32033 * doc/tm.texi.in (MD_CAN_REDIRECT_BRANCH): Remove documentation.
32034 * reorg.c (steal_delay_list_from_target): Use targetm.can_follow_jump.
32035 * doc/tm.texi: Regenerate.
32036
32037 2015-02-09 Jakub Jelinek <jakub@redhat.com>
32038
32039 PR sanitizer/64981
32040 * builtins.c (expand_builtin): Call targetm.expand_builtin
32041 for BUILT_IN_MD builtins regardless of asan_intercepted_p.
32042
32043 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
32044
32045 PR ipa/61548
32046 * tree-emutls.c (ipa_lower_emutls): Avoid duplicates in TLS_VARS.
32047
32048 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
32049
32050 PR ipa/63566
32051 * ipa-icf.c (set_local): New function.
32052 (sem_function::merge): Use it.
32053
32054 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
32055
32056 * ipa-devirt.c (odr_types_equivalent_p): Fix formating.
32057 (add_type_duplicate): Fix comparison of BINFOs.
32058
32059 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
32060
32061 * ipa-polymorphic-call.c (ipa_polymorphic_call_context): Avoid ICE
32062 on getting VOID pointer.
32063
32064 2015-02-09 Jakub Jelinek <jakub@redhat.com>
32065
32066 PR target/64979
32067 * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
32068 va_list escapes.
32069
32070 2015-02-09 Richard Biener <rguenther@suse.de>
32071
32072 * genmatch.c (replace_id): Copy expr_type.
32073
32074 2015-02-09 Richard Biener <rguenther@suse.de>
32075
32076 * tree-streamer.h (streamer_pack_tree_bitfields): Remove.
32077 (streamer_write_tree_bitfields): Declare.
32078 * tree-streamer-in.c (unpack_ts_base_value_fields): Inline,
32079 properly unpack padding.
32080 (unpack_value_fields): Inline ...
32081 (streamer_read_tree_bitfields): ... here.
32082 * tree-streamer-out.c (pack_ts_base_value_fields): Inline
32083 and properly add padding bits.
32084 (streamer_pack_tree_bitfields): Fold into ...
32085 (streamer_write_tree_bitfields): ... this new function,
32086 exposing the bitpack object.
32087 * lto-streamer-out.c (lto_write_tree_1): Call
32088 streamer_write_tree_bitfields.
32089
32090 2015-02-09 Richard Biener <rguenther@suse.de>
32091
32092 PR tree-optimization/54000
32093 * tree-ssa-looo-ivopts.c: Include tree-vectorizer.h.
32094 (struct ivopts_data): Add loop_loc member.
32095 (tree_ssa_iv_optimize_loop): Dump loop location.
32096 (create_new_ivs): Likewise, also dump number of IVs generated.
32097
32098 2015-02-09 Martin Liska <mliska@suse.cz>
32099
32100 * ipa-icf.c (sem_item_optimizer::register_hooks): Register hooks
32101 just if not yet registered.
32102 (ipa_icf_generate_summary): Register callgraph hooks.
32103
32104 2015-02-08 Andrew Pinski <apinski@cavium.com>
32105
32106 * config/aarch64/aarch64.c (gty_dummy): Delete.
32107
32108 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
32109
32110 PR ipa/63566
32111 * ipa-visibility.c (cgraph_node::non_local_p): Accept aliases.
32112 (cgraph_node::local_p): Remove thunk related FIXME.
32113
32114 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
32115
32116 PR ipa/63566
32117 * i386.c (ix86_function_regparm): Look through aliases to see if callee
32118 is local and optimized.
32119 (ix86_function_sseregparm): Likewise; also use target's SSE math
32120 settings; error out instead of silently generating wrong code
32121 on mismatches.
32122 (init_cumulative_args): Look through aliases.
32123
32124 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
32125
32126 PR ipa/63566
32127 * ipa-split.c (execute_split_functions): Split if function has aliases.
32128
32129 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
32130
32131 PR ipa/63566
32132 * cgraphunit.c (cgraph_node::analyze): Be sure target of thunk is
32133 aliases before trying to expand it.
32134 (cgraph_node::expand_thunk): Fix formating.
32135
32136 2015-02-07 Sandra Loosemore <sandra@codesourcery.com>
32137
32138 * doc/extend.texi (Function Attributes [naked]): Copy-edit.
32139 (Using Assembly Language with C): Expand introduction.
32140 (Basic Asm): Copy-edit. Add more information about uses of
32141 basic asm.
32142 (Extended Asm): Copy-edit. Document new escape syntax and
32143 %l[label] syntax.
32144 (Global Reg Vars): Copy-edit.
32145 (Local Reg Vars): Likewise.
32146
32147 2015-02-06 David Edelsohn <dje.gcc@gmail.com>
32148
32149 PR debug/2714
32150 PR bootstrap/64256
32151 * xcoffout.h (DBX_CONTIN_LENGTH): Define as 16384.
32152 (DBX_CONTIN_CHAR): Define.
32153
32154 2015-02-06 Sebastian Pop <s.pop@samsung.com>
32155 Brian Rzycki <b.rzycki@samsung.com>
32156
32157 PR tree-optimization/64878
32158 * tree-ssa-threadedge.c: Include tree-ssa-loop.h.
32159 (fsm_find_control_statement_thread_paths): Add parameter seen_loop_phi.
32160 Stop recursion at loop phi nodes after having visited a loop phi node.
32161
32162 2015-02-06 Jakub Jelinek <jakub@redhat.com>
32163
32164 * toplev.c (process_options): Change flag_ipa_ra before creating
32165 optimization_{default,current}_node.
32166
32167 PR ipa/64896
32168 * cgraphunit.c (cgraph_node::expand_thunk): If
32169 restype is not is_gimple_reg_type nor the thunk_fndecl
32170 returns aggregate_value_p, set restmp to a temporary variable
32171 instead of resdecl.
32172
32173 2015-02-06 Vladimir Makarov <vmakarov@redhat.com>
32174
32175 * lra.c (lra_emit_add): Fix a typo in using disp instead of base.
32176
32177 2015-02-06 Michael Meissner <meissner@linux.vnet.ibm.com>
32178
32179 PR target/64205
32180 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
32181 add a general secondary reload handler for SDmode, unless we have
32182 both read/write support for SDmode.
32183
32184 2015-02-06 Jakub Jelinek <jakub@redhat.com>
32185
32186 PR middle-end/64937
32187 * dwarf2out.c (set_block_abstract_flags, set_decl_abstract_flags):
32188 Replace setting argument with abstract_vec, always set BLOCK_ABSTRACT
32189 or DECL_ABSTRACT_P flags to 1 rather than to setting, and if it wasn't
32190 1 before, push it to abstract_vec.
32191 (dwarf2out_abstract_function): Adjust caller. Don't call
32192 set_decl_abstract_flags second time, instead clear BLOCK_ABSTRACT or
32193 DECL_ABSTRACT_P flags for all abstract_vec elts.
32194
32195 2015-02-06 Renlin Li <renlin.li@arm.com>
32196
32197 * tree-ssa-forwprop.c (execute): Keep location info while rewrite
32198 complex gimple.
32199 * tree-ssa.c (execute_update_addresses_taken): Likewise.
32200
32201 2015-02-06 Jeff Law <law@redhat.com>
32202
32203 PR target/64889
32204 * config/h8300/h8300.c (push): New argument "in_prologue".
32205 Pass "in_prologue" along to "F".
32206 (h8300_push_pop): Corresponding changes.
32207 (h8300_expand_prologue): Likewise.
32208 (h8300_swap_into_er6): Likewise. Do not set RTX_FRAME_RELATED_P.
32209
32210 2015-02-06 Jakub Jelinek <jakub@redhat.com>
32211
32212 PR rtl-optimization/64957
32213 PR debug/64817
32214 * simplify-rtx.c (simplify_binary_operation_1): Use ~cval for
32215 IOR rather than for AND.
32216
32217 2015-02-06 Eric Botcazou <ebotcazou@adacore.com>
32218
32219 PR target/62631
32220 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Use the mininum of costs
32221 of shift-add and (add + shift) operations. Rename local variable.
32222
32223 2015-02-05 Jeff Law <law@redhat.com>
32224
32225 PR target/17306
32226 * config/h8300/constraints.md (U): Correctly dectect
32227 "eightbit_data" memory addresses.
32228 * config/h8300/h8300.c (eightbit_constant_address_p): Also
32229 handle (const (plus (symbol_ref (x)))) where x is declared
32230 as an 8-bit data memory address.
32231 * config/h8300/h8300.md (call, call_value): Correctly detect
32232 "funcvec" functions.
32233
32234 PR target/43264
32235 * config/h8300/h8300.c (get_shift_alg): Fix ASHIFTRT by
32236 24 to 28 bits for the H8/300.
32237
32238 2015-02-06 Alan Modra <amodra@gmail.com>
32239
32240 PR target/64876
32241 * config/rs6000/rs6000.c (chain_already_loaded): New function.
32242 (rs6000_call_aix): Use it.
32243
32244 2015-02-05 Jan Hubicka <hubicka@ucw.cz>
32245
32246 * ipa-cp.c (ipa_value_from_jfunc, ipa_context_from_jfunc): Add bounds
32247 check.
32248
32249 2015-02-05 Joern Rennecke <joern.rennecke@embecosm.com>
32250
32251 * config/h8300/constraints.md ("U" constraint): Use strict
32252 variant of REG_OK_FOR_BASE_P after reload has started.
32253
32254 2015-02-04 Mantas Mikaitis <mantas.mikaitis@arm.com>
32255
32256 * config/arm/arm.h (TARGET_NEON_FP): Removed conditional definition,
32257 define to zero if !TARGET_NEON.
32258 (TARGET_ARM_FP): Added !TARGET_SOFT_FLOAT into conditional definition.
32259
32260 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
32261 Trevor Saunders <tsaunders@mozilla.com>
32262
32263 PR ipa/61548
32264 * tree-emultls.c (new_emutls_decl): Resolve alias after creating it.
32265
32266 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
32267
32268 PR ipa/61548
32269 * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering issue
32270 when removing varpool nodes.
32271
32272 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
32273
32274 PR ipa/61548
32275 * varpool.c (varpool_node::remove): Fix order of variables.
32276
32277 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
32278
32279 PR ipa/64686
32280 * ipa-inline.c (inline_small_functions): Fix ordering issue between
32281 speculation resolution and key updates.
32282
32283 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
32284
32285 * ipa-prop.c (update_indirect_edges_after_inlining): By more careful
32286 about not letting any speculative edges unupdated.
32287
32288 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
32289
32290 PR gcov/64123
32291 * gcov-io.c (gcov_var): Export.
32292
32293 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
32294
32295 PR middle-end/64922
32296 * ipa-prop.c (update_indirect_edges_after_inlining): Correctly update
32297 edges that become speculative.
32298
32299 2015-02-04 Jakub Jelinek <jakub@redhat.com>
32300
32301 * dwarf2out.c (is_fortran): Also return true for DW_LANG_Fortran03
32302 or DW_LANG_Fortran08.
32303 (lower_bound_default): Return 1 for DW_LANG_Fortran03 or
32304 DW_LANG_Fortran08.
32305 (gen_compile_unit_die): Handle "GNU Fortran2003" and
32306 "GNU Fortran2008" language strings.
32307 * dbxout.c (get_lang_number): Use lang_GNU_Fortran.
32308 * langhooks.h (lang_GNU_Fortran): New prototype.
32309 * langhooks.c (lang_GNU_Fortran): New function.
32310 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
32311 lang_GNU_Fortran.
32312
32313 2015-02-04 Eric Botcazou <ebotcazou@adacore.com>
32314
32315 * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P): Fix off-by-one error.
32316 (RTX_OK_FOR_OLO10_P): Likewise.
32317
32318 2015-02-04 Eric Botcazou <ebotcazou@adacore.com>
32319
32320 * tree-ssa-loop-ivopts.c (get_address_cost): Use right mode for offset.
32321
32322 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
32323
32324 PR middle-end/64922
32325 * gimple.c: Include gimple-ssa.h.
32326 (maybe_remove_unused_call_args): New function.
32327 * gimple.h (maybe_remove_unused_call_args): Declare.
32328 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
32329 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
32330 * gimple-fold.c (gimple_fold_call): Likewise.
32331
32332 2015-02-04 H.J. Lu <hongjiu.lu@intel.com>
32333
32334 PR rtl-optimization/64905
32335 * lra-eliminations.c (setup_can_eliminate): Clear hard frame
32336 pointer alignment if it isn't needed.
32337
32338 2015-02-04 Matthew Wahab <matthew.wahab@arm.com>
32339
32340 * config/aarch64/aarch64-cores.def: Add cortex-a72 and
32341 cortex-a72.cortex-a53.
32342 * config/aarch64/aarch64-tune.md: Regenerate.
32343 * doc/invoke.texi (AArch64 Options/-mtune): Add "cortex-a72".
32344
32345 2015-02-04 Nick Clifton <nickc@redhat.com>
32346
32347 * config/rl78/rl78.c (rl78_note_reg_set): Note the use of REGs
32348 inside a MEM.
32349
32350 2015-02-04 Jakub Jelinek <jakub@redhat.com>
32351
32352 * builtins.def (DEF_BUILTIN_CHKP): Define if not defined.
32353 (DEF_LIB_BUILTIN_CHKP, DEF_EXT_LIB_BUILTIN_CHKP): Redefine.
32354 (DEF_CHKP_BUILTIN): Define using DEF_BUILTIN_CHKP instead
32355 of DEF_BUILTIN.
32356 (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET, BUILT_IN_STRCAT,
32357 BUILT_IN_STRCHR, BUILT_IN_STRCPY, BUILT_IN_STRLEN): Use
32358 DEF_LIB_BUILTIN_CHKP macro instead of DEF_LIB_BUILTIN.
32359 (BUILT_IN_MEMCPY_CHK, BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK,
32360 BUILT_IN_MEMPCPY, BUILT_IN_MEMSET_CHK, BUILT_IN_STPCPY_CHK,
32361 BUILT_IN_STPCPY, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK): Use
32362 DEF_EXT_LIB_BUILTIN_CHKP macro instead of DEF_EXT_LIB_BUILTIN.
32363 * tree-core.h (enum built_in_function): In between
32364 BEGIN_CHKP_BUILTINS and END_CHKP_BUILTINS only define enum values
32365 for builtins that use DEF_BUILTIN_CHKP macro.
32366
32367 2015-02-04 Alexandre Oliva <aoliva@redhat.com>
32368
32369 PR debug/64817
32370 * cfgexpand.c (expand_debug_expr): Compute unsignedp from
32371 operands for tcc_comparison exprs. Fix typos.
32372
32373 PR debug/64817
32374 * simplify-rtx.c (simplify_binary_operation_1): Simplify one
32375 of two XORs that have an intervening AND or IOR.
32376
32377 PR debug/64817
32378 * simplify-rtx.c (simplify_binary_operation_1): Rewrite
32379 simplification of XOR of AND to not allocate new rtx before
32380 committing to a simplification.
32381
32382 2015-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32383
32384 * config/aarch64/aarch64-ldpstp.md: Use std::swap instead of
32385 manual swaps in all peepholes.
32386
32387 2015-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32388
32389 * config/aarch64/aarch64.c (aarch64_evpc_ext): Use std::swap instead
32390 of manual swapping implementation.
32391 (aarch64_expand_vec_perm_const_1): Likewise.
32392
32393 2015-02-04 James Greenhalgh <james.greenhalgh@arm.com>
32394
32395 * config/aarch64/aarch64.c (NAMED_PARAM): Delete it.
32396 (generic_addrcost_table): Remove NAMED_PARAM.
32397 (cortexa57_addrcost_table): Likewise.
32398 (xgene1_addrcost_table): Likewise.
32399 (generic_regmove_table): Likewise.
32400 (cortexa53_regmove_table): Likewise.
32401 (xgene1_regmove_table): Likewise.
32402 (generic_vector_table): Likewise.
32403 (cortexa57_vector_table): Likewise.
32404 (xgene1_vector_table): Likewise.
32405 (generic_tunings): Likewise.
32406 (cortexa53_tunings): Likewise.
32407 (cortexa57_tunings): Likewise.
32408 (xgene1_tunings): Likewise.
32409
32410 2015-02-04 Matthew Wahab <matthew.wahab@arm.com>
32411
32412 * config/arm/arm-cores.def: Add cortex-a72 and
32413 cortex-a72.cortex-a53.
32414 * config/arm/bpabi.h (BE8_LINK_SPEC): Likewise.
32415 * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
32416 * config/arm/arm-tune.md: Regenerate.
32417 * config/arm/arm-tables.opt: Add entries for "cortex-a72" and
32418 "cortex-a72.cortex-a53".
32419 * doc/invoke.texi (ARM Options/-mtune): Likewise.
32420
32421 2015-02-04 Nick Clifton <nickc@redhat.com>
32422
32423 PR target/64408
32424 * config/fr30/predicates.md (di_operand): Add SUBREG to the list
32425 of accepted codes.
32426 (nonimmediate_di_operand): Likewise.
32427
32428 * config/msp430/msp430.c (msp430_use_f5_series_hwmult): Add more
32429 prefixes of known F5 using MSP430 MCUs.
32430
32431 2015-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32432
32433 * config/aarch64/aarch64-simd-builtins.def (sqrt): Use BUILTIN_VDQF_DF.
32434 * config/aarch64/arm_neon.h (vsqrt_f64): Use __builtin_aarch64_sqrtdf
32435 instead of __builtin_sqrt.
32436
32437 2015-02-04 Ilya Enkovich <ilya.enkovich@intel.com>
32438
32439 * varasm.c (do_assemble_alias): Follow transparent alias
32440 chain for target.
32441 (default_assemble_visibility): Follow transparent alias
32442 chain for decl name.
32443
32444 2015-02-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
32445
32446 PR middle-end/62103
32447 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use TYPE_PRECISION
32448 to compute size of referenced value in the constant case.
32449
32450 2015-02-03 Jakub Jelinek <jakub@redhat.com>
32451
32452 PR rtl-optimization/64756
32453 * cse.c (invalidate_dest): New function.
32454 (cse_insn): Use it. If dest != SET_DEST (sets[i].rtl) and
32455 HASH (SET_DEST (sets[i].rtl), mode) computation sets do_not_record,
32456 invalidate and do not record it.
32457
32458 2015-02-03 Oleg Endo <olegendo@gcc.gnu.org>
32459
32460 PR target/64660
32461 * config/sh/sync.md (atomic_<fetchop_name><mode>_hard,
32462 atomic_not<mode>_hard, atomic_<fetchop_name><mode>_soft_tcb,
32463 atomic_not<mode>_soft_tcb, atomic_nand<mode>_hard,
32464 atomic_nand<mode>_soft_tcb): New insns.
32465 (atomic_fetch_<fetchop_name>si_hard): Convert to insn_and_split.
32466 Split into atomic_<fetchop_name>_fetchsi_hard if operands[0] is unused.
32467 (define_insn "atomic_fetch_notsi_hard): Convert to insn_and_split.
32468 Split into atomic_not_fetchsi_hard if operands[0] is unused.
32469 (atomic_fetch_<fetchop_name><mode>_hard): Convert to insn_and_split.
32470 Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
32471 (atomic_fetch_not<mode>_hard): Convert to insn_and_split. Split into
32472 atomic_not<mode>_hard if operands[0] is unused.
32473 (atomic_fetch_<fetchop_name><mode>_soft_gusa): Convert to
32474 insn_and_split. Split into atomic_<fetchop_name>_fetch<mode>_soft_gusa
32475 if operands[0] is unused.
32476 (atomic_fetch_not<mode>_soft_gusa): Convert to insn_and_split. Split
32477 into atomic_not_fetch<mode>_soft_gusa if operands[0] is unused.
32478 (atomic_fetch_<fetchop_name><mode>_soft_tcb): Convert to insn_and_split.
32479 Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
32480 unused.
32481 (atomic_fetch_not<mode>_soft_tcb): Convert to insn_and_split. Split
32482 into atomic_not<mode>_soft_tcb if operands[0] is unused.
32483 (atomic_fetch_<fetchop_name><mode>_soft_imask): Convert to
32484 insn_and_split. Split into atomic_<fetchop_name>_fetch<mode>_soft_imask
32485 if operands[0] is unused.
32486 (atomic_fetch_not<mode>_soft_imask): Convert to insn_and_split. Split
32487 into atomic_not_fetch<mode>_soft_imask is operands[0] is unused.
32488 (atomic_fetch_nandsi_hard): Convert to insn_and_split. Split into
32489 atomic_nand_fetchsi_hard if operands[0] is unused.
32490 (atomic_fetch_nand<mode>_hard): Convert to insn_and_split. Split into
32491 atomic_nand<mode>_hard if operands[0] is unused.
32492 (atomic_fetch_nand<mode>_soft_gusa): Convert to insn_and_split. Split
32493 into atomic_nand_fetch<mode>_soft_gusa if operands[0] is unused.
32494 (atomic_fetch_nand<mode>_soft_tcb): Convert to insn_and_split. Split
32495 into atomic_nand<mode>_soft_tcb if operands[0] is unused.
32496 (atomic_fetch_nand<mode>_soft_imask): Convert to insn_and_split. Split
32497 into atomic_nand_fetch<mode>_soft_imask if operands[0] is unused.
32498 (atomic_<fetchop_name>_fetch<mode>_hard): Convert to insn_and_split.
32499 Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
32500 (atomic_not_fetch<mode>_hard): Convert to insn_and_split. Split into
32501 atomic_not<mode>_hard if operands[0] is unused.
32502 (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Convert to insn_and_split.
32503 Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
32504 unused.
32505 (atomic_not_fetch<mode>_soft_tcb): Convert to insn_and_split. Split
32506 into atomic_not<mode>_soft_tcb if operands[0] is unused.
32507 (atomic_nand_fetch<mode>_hard): Convert to insn_and_split. Split into
32508 atomic_nand<mode>_hard if operands[0] is unused.
32509 (atomic_nand_fetch<mode>_soft_tcb): Convert to insn_and_split. Split
32510 into atomic_nand<mode>_soft_tcb if operands[0] is unused.
32511
32512 2015-02-03 David Malcolm <dmalcolm@redhat.com>
32513
32514 PR jit/64810
32515 * Makefile.in (GCC_OBJS): Add gcc-main.o.
32516 * gcc-main.c: New file, containing "main" taken from gcc.c.
32517 * gcc.c (do_self_spec): Free decoded_options.
32518 (class driver): Move declaration to gcc.h.
32519 (main): Move declaration and implementation to new file
32520 gcc-main.c.
32521 (driver_get_configure_time_options): New function.
32522 * gcc.h (class driver): Move this declaration here, from
32523 gcc.c.
32524 (driver_get_configure_time_options): New declaration.
32525
32526 2015-02-03 Jan Hubicka <hubicka@ucw.cz>
32527
32528 * ipa-inline-analysis.c (simple_edge_hints): Fix check for
32529 cross-module inlining.
32530 * cgraph.h (cgraph_node): Add flag merged.
32531 * ipa-icf.c (sem_function::merge): Maintain it.
32532
32533 2015-02-03 Richard Sandiford <richard.sandiford@arm.com>
32534
32535 * config/arm/arm.c (thumb2_reorg): Test UNARY_P and BINARY_P
32536 instead of OBJECT_P.
32537
32538 2015-02-03 Eric Botcazou <ebotcazou@adacore.com>
32539
32540 PR target/62631
32541 * config/sparc/sparc.h (TARGET_HARD_MUL): Remove TARGET_V8PLUS.
32542 (TARGET_HARD_MUL32): Rewrite based on TARGET_HARD_MUL.
32543 * config/sparc/sparc.c (sparc_rtx_costs) <MULT>: Return costs based on
32544 int_mulX for integers in 64-bit mode if TARGET_HARD_MUL is not set.
32545
32546 2015-02-03 Jakub Jelinek <jakub@redhat.com>
32547
32548 PR other/63504
32549 * combine.c (reg_n_sets_max): New variable.
32550 (can_change_dest_mode, reg_nonzero_bits_for_combine,
32551 reg_num_sign_bit_copies_for_combine, get_last_value_validate,
32552 get_last_value): Use REG_N_SETS only on pseudos < reg_n_sets_max.
32553 (try_combine): Use INC_REG_N_SETS only on pseudos < reg_n_sets_max.
32554 (rest_of_handle_combine): Initialize reg_n_sets_max.
32555
32556 2015-02-02 Jan Hubicka <hubicka@ucw.cz>
32557
32558 * ipa-inline.c (early_inliner): Skip inlining only in always_inlined;
32559 if some always_inline was inlined, apply changes before inlining
32560 heuristically.
32561
32562 2015-02-02 David Malcolm <dmalcolm@redhat.com>
32563
32564 PR jit/64810
32565 * config/arm/arm.c (arm_option_override): Set
32566 arm_selected_arch/cpu/tune to NULL on entry.
32567
32568 2015-02-02 Tejas Belagod <tejas.belagod@arm.com>
32569 Andrew Pinski <pinskia@gcc.gnu.org>
32570 Jakub Jelinek <jakub@gcc.gnu.org>
32571
32572 PR target/64231
32573 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix large
32574 integer typing for small model. Use IN_RANGE.
32575
32576 2015-02-02 Richard Biener <rguenther@suse.de>
32577
32578 * tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
32579 * tree-vrp.c (vrp_valueize_1): Likewise.
32580
32581 2015-02-02 Alan Modra <amodra@gmail.com>
32582
32583 * config/rs6000/rs6000.c (rs6000_call_aix): Use unspec rather
32584 than mem for toc_restore.
32585 * config/rs6000/rs6000.md (UNSPEC_TOCSLOT): Define.
32586 (call_indirect_aix, call_value_indirect_aix): Adjust to suit.
32587 (call_indirect_elfv2, call_value_indirect_elfv2): Likewise.
32588
32589 2015-02-01 David Edelsohn <dje.gcc@gmail.com>
32590
32591 PR target/64047
32592 * config/rs6000/rs6000.c (rs6000_set_current_function): Handle
32593 explicit default options.
32594
32595 2015-02-01 Jan Hubicka <hubicka@ucw.cz>
32596
32597 PR ipa/64872
32598 * ipa-utils.c (ipa_merge_profiles): Add release argument.
32599 * ipa-icf.c (sem_function::merge): Do not release body when merging.
32600 * ipa-utils.h (ipa_merge_profiles): Update prototype.
32601
32602 2015-02-01 Jakub Jelinek <jakub@redhat.com>
32603
32604 PR debug/64817
32605 * cfgexpand.c (deep_ter_debug_map): New variable.
32606 (avoid_deep_ter_for_debug): New function.
32607 (expand_debug_expr): If TERed SSA_NAME is in
32608 deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL
32609 instead of trying to expand SSA_NAME's def stmt.
32610 (expand_debug_locations): When expanding debug bind
32611 of a DEBUG_EXPR_DECL to corresponding SSA_NAME,
32612 temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's
32613 value.
32614 (pass_expand::execute): Call avoid_deep_ter_for_debug on
32615 all debug bind stmts. Delete deep_ter_debug_map after
32616 expand_debug_location if non-NULL and clear it.
32617
32618 2015-02-01 Oleg Endo <olegendo@gcc.gnu.org>
32619
32620 PR target/64851
32621 * config/sh/sync.md (atomic_fetch_notsi_hard,
32622 atomic_fetch_not<mode>_hard, atomic_fetch_not<mode>_soft_gusa,
32623 atomic_fetch_not<mode>_soft_tcb, atomic_fetch_not<mode>_soft_imask,
32624 atomic_not_fetchsi_hard, atomic_not_fetch<mode>_hard,
32625 atomic_not_fetch<mode>_soft_gusa, atomic_not_fetch<mode>_soft_tcb,
32626 atomic_not_fetch<mode>_soft_imask): New insns.
32627
32628 2015-02-01 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
32629
32630 * haifa-sched.c (INSN_RFS_DEBUG_ORIG_ORDER): New access macro.
32631 (rank_for_schedule_debug): Split from ...
32632 (rank_for_schedule): ... this.
32633 (ready_sort): Sort DEBUG_INSNs separately from normal INSNs.
32634 * sched-int.h (struct _haifa_insn_data): New field rfs_debug_orig_order.
32635
32636 2015-01-31 Sandra Loosemore <sandra@codesourcery.com>
32637
32638 * doc/md.texi (Machine Constraints): Alphabetize table by target.
32639 * doc/extend.texi (x86 Variable Attributes): Move section to
32640 correct alphabetization after renaming.
32641 (x86 Type Attributes): Likewise.
32642 (Target Builtins): Re-alphabetize menu.
32643 (x86 Built-in Functions): Move section to correct alphabetization
32644 after renaming.
32645 (x86 transactional memory intrinsics): Likewise.
32646 * doc/invoke.texi (Option Summary): Re-alphabetize x86 Options
32647 and x86 Windows Options in table and menu.
32648 (x86 Options): Move section to correct alphabetization after
32649 renaming.
32650 (x86 Windows Options): Likewise.
32651
32652 2015-01-31 Sandra Loosemore <sandra@codesourcery.com>
32653
32654 * doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the
32655 preferred names of the architecture and its 32- and 64-bit
32656 variants.
32657 * doc/invoke.texi: Likewise.
32658 * doc/md.texi: Likewise.
32659
32660 2015-01-31 Uros Bizjak <ubizjak@gmail.com>
32661
32662 PR target/64882
32663 * config/i386/predicates.md (address_no_seg_operand): Reject
32664 non-CONST_INT_P operands in invalid mode.
32665
32666 2015-01-31 Uros Bizjak <ubizjak@gmail.com>
32667
32668 * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
32669 address_operand 0. Rename from *prefetch_prefetchwt1_<mode>.
32670 * config/i386/predicates.md (address_no_seg_operand): Call
32671 address_operand with VOIDmode.
32672 (vsib_address_operand): Ditto.
32673 (address_mpx_no_base_operand): Ditto.
32674 (address_mpx_no_index_operand): Ditto.
32675
32676 2015-01-30 Vladimir Makarov <vmakarov@redhat.com>
32677
32678 PR target/64688
32679 * lra-constraints.c (original_subreg_reg_mode): New.
32680 (simplify_operand_subreg): Try to simplify subreg of const. Use
32681 original_subreg_reg_mode for it.
32682 (swap_operands): Update original_subreg_reg_mode.
32683 (curr_insn_transform): Set up original_subreg_reg_mode.
32684
32685 2015-01-30 Vladimir Makarov <vmakarov@redhat.com>
32686
32687 PR target/64617
32688 * lra-constraints.c (prohibited_class_reg_set_mode_p): New
32689 function.
32690 (process_alt_operands): Use it.
32691 (curr_insn_transform): Check the optional reload pseudo class is
32692 ok for the mode.
32693
32694 2015-01-30 Joseph Myers <joseph@codesourcery.com>
32695
32696 * diagnostic.c (fatal_error (const char *, ...)): Remove function.
32697 * diagnostic-core.h (fatal_error (const char *, ...)): Remove
32698 prototype.
32699 * toplev.h (init_asm_output): Update comment on use of
32700 UNKNOWN_LOCATION with fatal_error.
32701 * cgraph.c, collect-utils.c, collect2.c, config/arc/arc.c,
32702 config/arc/arc.md, config/avr/avr.c, config/c6x/c6x.h,
32703 config/darwin.c, config/host-darwin.c, config/i386/host-cygwin.c,
32704 config/i386/intelmic-mkoffload.c, config/nios2/nios2.c,
32705 config/nvptx/mkoffload.c, config/nvptx/nvptx.h,
32706 config/rs6000/host-darwin.c, config/rs6000/rs6000.c,
32707 config/s390/s390.c, gcc.c, gcov-io.h, gcov-tool.c, ggc-common.c,
32708 ggc-page.c, graph.c, ipa-inline-analysis.c, ipa-reference.c,
32709 lto-cgraph.c, lto-section-in.c, lto-streamer-in.c, lto-streamer.c,
32710 lto-wrapper.c, objc/objc-act.c, opts.c, passes.c, plugin.c,
32711 tlink.c, toplev.c, tree-streamer-in.c, varpool.c: All callers of
32712 fatal_error changed to pass input_location as first argument.
32713
32714 2015-01-30 Martin Liska <mliska@suse.cz>
32715
32716 * tree.h: Change GCC_VERSION >= 4004 to GCC_VERSION >= 4006
32717 in #pragma GCC diagnostic guards.
32718
32719 2015-01-30 Richard Biener <rguenther@suse.de>
32720
32721 PR tree-optimization/64829
32722 * tree-vect-patterns.c (vect_handle_widen_op_by_const): Do
32723 not add a widening conversion pattern but hand off extra
32724 widenings to callers.
32725 (vect_recog_widen_mult_pattern): Handle extra widening produced
32726 by vect_handle_widen_op_by_const.
32727 (vect_recog_widen_shift_pattern): Likewise.
32728 (vect_pattern_recog_1): Remove excess vertical space in dumping.
32729 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
32730 (vect_init_vector_1): Likewise.
32731 (vect_get_vec_def_for_operand): Likewise.
32732 (vect_finish_stmt_generation): Likewise.
32733 (vectorizable_load): Likewise.
32734 (vect_analyze_stmt): Likewise.
32735 (vect_is_simple_use): Likewise.
32736
32737 2015-01-29 Jeff Law <law@redhat.com>
32738
32739 * combine.c (try_combine): Fix typo in comment.
32740
32741 2015-01-29 Segher Boessenkool <segher@kernel.crashing.org>
32742
32743 PR target/64580
32744 * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
32745 (rs6000_stack_info): Add assert.
32746 (rs6000_output_savres_externs): New function, split off from...
32747 (rs6000_output_function_prologue): ... here. Do not call it for
32748 thunks.
32749
32750 2015-01-29 Jeff Law <law@redhat.com>
32751
32752 PR target/15184
32753 * combine.c (try_combine): If I0 is a memory load and I3 a store
32754 to a related address, increase the "goodness" of doing a 4-insn
32755 combination with I0-I3.
32756 (make_field_assignment): Handle SUBREGs in the ior+and case.
32757
32758 2015-01-29 Yuri Rumyantsev <ysrumyan@gmail.com>
32759
32760 PR tree-optimization/64746
32761 * tree-if-conv.c (mask_exists): New function.
32762 (predicate_mem_writes): Save created mask with given size for further
32763 use.
32764 (stmt_is_root_of_bool_pattern): Remove argument VAR and store to it.
32765 (ifcvt_repair_bool_pattern): Collect all statements that are root
32766 of bool pattern and use iterative algorithm to remove multiple uses
32767 of predicates, display number of required iterations.
32768
32769 2015-01-29 Richard Biener <rguenther@suse.de>
32770
32771 PR tree-optimization/64853
32772 * tree-vrp.c (vrp_valueize_1): Do not return anything if the
32773 stmt will get simulated again.
32774 * tree-ssa-ccp.c (valueize_op_1): Likewise.
32775
32776 2015-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
32777
32778 * config/arm/arm.c (arm_emit_multi_reg_pop): Simplify definition of
32779 return_in_pc. Remove redundant assignments.
32780 (thumb2_emit_ldrd_pop): Simplify definition of return_in_pc.
32781 (arm_expand_epilogue): Don't compare boolean with true in if condition.
32782
32783 2015-01-29 Uros Bizjak <ubizjak@gmail.com>
32784
32785 * config/i386/i386.c (ix86_mode_after): Make static.
32786
32787 2015-01-29 Richard Biener <rguenther@suse.de>
32788
32789 PR tree-optimization/64844
32790 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Always
32791 dump cost model analysis.
32792 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
32793 Do not register adjusted load/store costs here.
32794
32795 2015-01-29 Ilya Enkovich <ilya.enkovich@intel.com>
32796 Uros Bizjak <ubizjak@gmail.com>
32797
32798 * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): New.
32799 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Simplify by
32800 using x86_use_pseudo_pic_reg.
32801 * config/i386/i386.c (ix86_conditional_register_usage): Remove
32802 support for fixed PIC register.
32803 (ix86_use_pseudo_pic_reg): Not static any more.
32804
32805 2015-01-29 Ilya Enkovich <ilya.enkovich@intel.com>
32806
32807 PR middle-end/64805
32808 * ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference
32809 to avoid error in cgraph node verification.
32810
32811 2015-01-29 Marek Polacek <polacek@redhat.com>
32812
32813 * doc/standards.texi: Reflect that the default for C is gnu11.
32814
32815 2015-01-29 Kaz Kojima <kkojima@gcc.gnu.org>
32816
32817 PR target/64761
32818 * reorg.c (switch_text_sections_between_p): New function.
32819 (relax_delay_slots): Call it when testing if the jump insn
32820 is removable. Use targetm.can_follow_jump when testing if
32821 the conditional branch can follow an unconditional jump.
32822
32823 2015-01-27 Caroline Tice <cmtice@google.com>
32824
32825 Committing VTV Cywin/Ming patch for Patrick Wollgast
32826 * config/i386/cygwin.h (STARTFILE_SPEC): Add vtv_start.o,
32827 if -fvtable-verify=preinit/std is used.
32828 * config/i386/mingw-w64.h (STARTFILE_SPEC): Likewise.
32829 * config/i386/mingw32.h (STARTFILE_SPEC): Likewise.
32830 * config/i386/cygwin.h (ENDFILE_SPEC): Add vtv_end.o,
32831 if -fvtable-verify=preinit/std is used.
32832 * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
32833 * config/i386/cygwin.h (LIB_SPEC): Pass -lvtv and -lpsapi,
32834 if -fvtable-verify=preinit/std is used.
32835 * config/i386/mingw-w64.h (LIB_SPEC): Likewise.
32836 * config/i386/mingw32.h (LIB_SPEC): Likewise.
32837 * varasm.c (assemble_variable): Add code to properly set the comdat
32838 section and name for the .vtable_map_vars section in case the
32839 target is PE or COFF.
32840
32841 2015-01-29 Jan Hubicka <hubicka@ucw.cz>
32842
32843 PR ipa/64801
32844 * cgraphunit.c (init_lowered_empty_function): Add CoUNT parameter;
32845 make sane BB profile.
32846 (cgraph_node::expand_thunk): Make sane BB profile.
32847 (cgraph_node::create_wrapper): Do not set call_stmt_cannot_inline_p.
32848 * cgraph.h (init_lowered_empty_function): Update prototype.
32849 * config/i386/i386.c (make_resolver_func): Update call.
32850 * predict.c (gate): Disable branch prediction pass if
32851 profile is already there.
32852
32853 2015-01-29 Jan Hubicka <hubicka@ucw.cz>
32854
32855 * optc-save-gen.awk: flag_fp_contract_mode is no longer speical.
32856 * opth-gen.awk: Likewise.
32857 * common.opt: Mark flag_fp_contract_mode as Optimization.
32858
32859 2015-01-29 Bernd Edlinger <bernd.edlinger@hotmail.de>
32860
32861 * config/i386/cygwin.h (LIBGCJ_SONAME): Set libgcj version to -16.
32862 * config/i386/mingw32.h (LIBGCJ_SONAME): Set libgcj version to -16.
32863
32864 2015-01-28 Oleg Endo <olegendo@gcc.gnu.org>
32865
32866 PR target/64659
32867 * config/sh/predicates.md (atomic_arith_operand,
32868 atomic_logical_operand): Remove.
32869 * config/sh/sync.md (fetchop_predicate, fetchop_constraint): Remove.
32870 (atomic_arith_operand_0): New predicate.
32871 (atomic_compare_and_swap<mode>): Use arith_reg_dest for output values.
32872 Use atomic_arith_operand_0 for input values.
32873 (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
32874 atomic_compare_and_swap<mode>_soft_gusa,
32875 atomic_compare_and_swap<mode>_soft_tcb,
32876 atomic_compare_and_swap<mode>_soft_imask): Use arith_reg_dest and
32877 arith_reg_operand instead of register_operand.
32878 (atomic_exchange<mode>): Use arith_reg_dest for output value. Use
32879 atomic_arith_operand_0 for newval input.
32880 (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
32881 atomic_exchange<mode>_soft_gusa, atomic_exchange<mode>_soft_tcb,
32882 atomic_exchange<mode>_soft_imask): Use arith_reg_dest and
32883 arith_reg_operand instead of register_operand.
32884 (atomic_arith_operand_1, atomic_logical_operand_1): New predicates.
32885 fetchop_predicate_1, fetchop_constraint_1_llcs,
32886 fetchop_constraint_1_gusa, fetchop_constraint_1_tcb,
32887 fetchop_constraint_1_imask): New code iterator attributes.
32888 (atomic_fetch_<fetchop_name><mode>): Use arith_reg_dest instead of
32889 register_operand. Use fetchop_predicate_1.
32890 (atomic_fetch_<fetchop_name>si_hard,
32891 atomic_fetch_<fetchop_name><mode>_hard): Use arith_reg_dest instead of
32892 register_operand. Use fetchop_predicate_1, fetchop_constraint_1_llcs.
32893 (atomic_fetch_<fetchop_name><mode>_soft_gusa): Use arith_reg_dest
32894 and arith_reg_operand instead of register_operand. Use
32895 fetchop_predicate_1, fetchop_constraint_1_gusa.
32896 (atomic_fetch_<fetchop_name><mode>_soft_tcb): Use arith_reg_dest
32897 and arith_reg_operand instead of register_operand. Use
32898 fetchop_predicate_1, fetchop_constraint_1_tcb. Adjust asm sequence
32899 to allow R0 usage.
32900 (atomic_fetch_<fetchop_name><mode>_soft_imask): Use arith_reg_dest
32901 and arith_reg_operand instead of register_operand. Use
32902 fetchop_predicate_1, fetchop_constraint_1_imask. Adjust asm sequence
32903 to allow R0 usage.
32904 (atomic_fetch_nand<mode>): Use arith_reg_dest instead of
32905 register_operand. Use atomic_logical_operand_1.
32906 (atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
32907 atomic_fetch_nand<mode>_soft_gusa): Use arith_reg_dest and
32908 arith_reg_operand instead of register_operand.
32909 (atomic_fetch_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask):
32910 Use arith_reg_dest and arith_reg_operand instead of register_operand.
32911 Use logical_operand and rK08. Adjust asm sequence to allow R0 usage.
32912 (atomic_<fetchop_name>_fetch<mode>): Use arith_reg_dest instead of
32913 register_operand. Use fetchop_predicate_1.
32914 (atomic_<fetchop_name>_fetchsi_hard,
32915 atomic_<fetchop_name>_fetch<mode>_hard): Use arith_reg_dest and
32916 arith_reg_operand instead of register_operand. Use fetchop_predicate_1,
32917 fetchop_constraint_1_llcs.
32918 (atomic_<fetchop_name>_fetch<mode>_soft_gusa): Use arith_reg_dest and
32919 arith_reg_operand instead of register_operand. Use fetchop_predicate_1,
32920 fetchop_constraint_1_gusa.
32921 (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Use arith_reg_dest and
32922 arith_reg_operand instead of register_operand. Use fetchop_predicate_1,
32923 fetchop_constraint_1_tcb. Adjust asm sequence to allow R0 usage.
32924 (atomic_<fetchop_name>_fetch<mode>_soft_imask): Use arith_reg_dest and
32925 arith_reg_operand instead of register_operand. Use fetchop_predicate_1,
32926 fetchop_constraint_1_imask. Adjust asm sequence to allow R0 usage.
32927 (atomic_nand_fetch<mode>): Use arith_reg_dest instead of
32928 register_operand. Use atomic_logical_operand_1.
32929 (atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
32930 atomic_nand_fetch<mode>_soft_gusa): Use arith_reg_dest and
32931 arith_reg_operand instead of register_operand.
32932 (atomic_nand_fetch<mode>_soft_tcb): Use arith_reg_dest and
32933 arith_reg_operand instead of register_operand. Use logical_operand
32934 and K08. Adjust asm sequence to allow R0 usage.
32935 (atomic_nand_fetch<mode>_soft_imask): Use arith_reg_dest and
32936 arith_reg_operand instead of register_operand. Use logical_operand
32937 and K08.
32938
32939 2015-01-28 Jakub Jelinek <jakub@redhat.com>
32940
32941 PR other/63504
32942 * dwarf2out.c (add_AT_wide, mem_loc_descriptor, loc_descriptor):
32943 Use ggc_alloc<wide_int> instead of ggc_cleared_alloc<wide_int>.
32944 (attr_checksum, attr_checksum_ordered, hash_loc_operands): Checksum
32945 only get_full_len HOST_WIDE_INTs from get_val () array rather than
32946 all bits in *val_wide.
32947
32948 2015-01-28 Jan Hubicka <hubicka@ucw.cz>
32949
32950 * varpool.c (tls_model_names): Fix names.
32951 (varpool_node::dump): Dump tls- prefix for tls models.
32952
32953 2015-01-28 Thomas Schwinge <thomas@codesourcery.com>
32954 Bernd Schmidt <bernds@codesourcery.com>
32955 Nathan Sidwell <nathan@codesourcery.com>
32956
32957 * config/nvptx/mkoffload.c: New file.
32958 * config/nvptx/t-nvptx: Add build rules for it.
32959 * config.gcc <nvptx-*> [$enable_as_accelerator = yes]
32960 (extra_programs): Add mkoffload.
32961 * config/nvptx/nvptx.c (nvptx_record_offload_symbol): New
32962 function.
32963 (TARGET_RECORD_OFFLOAD_SYMBOL): Define macro to use it.
32964
32965 2015-01-28 Yuri Rumyantsev <ysrumyan@gmail.com>
32966
32967 PR middle-end/64809
32968 * cfgexpand.c (reorder_operands): Skip debug gimples.
32969
32970 2015-01-28 Ilya Enkovich <ilya.enkovich@intel.com>
32971
32972 PR tree-optimization/64277
32973 * tree-ssa-loop-niter.c (record_nonwrapping_iv): Use base
32974 range info when possible to refine estimation.
32975
32976 2015-01-28 Thomas Preud'homme <thomas.preudhomme@arm.com>
32977
32978 PR tree-optimization/64718
32979 * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Make bswap_type
32980 be a 16bit unsigned integer when n->range is 16.
32981 (bswap_replace): Convert src to that type if necessary for all bswap
32982 sizes. Fix rotation right notation in nearby comment. Use bswap_type
32983 set in pass_optimize_bswap::execute ().
32984
32985 2015-01-28 James Greenhalgh <james.greenhalgh@arm.com>
32986
32987 * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): New.
32988 * config/aarch64/aarch64-simd-builtins.def (abs): Split by
32989 integer and floating point variants.
32990 * config/aarch64/iterators.md (unspec): Add UNSPEC_ABS.
32991
32992 2015-01-28 Robert Suchanek <robert.suchanek@imgtec.com>
32993
32994 * config/mips/mips.c (mips_hard_regno_mode_ok_p): Prohibit accumulators
32995 for all vector modes.
32996
32997 2015-01-28 Jakub Jelinek <jakub@redhat.com>
32998
32999 PR bootstrap/64612
33000 * doc/sourcebuild.texi (comdat_group): Document.
33001
33002 2015-01-28 Terry Guo <terry.guo@arm.com>
33003
33004 * config/arm/thumb1.md (*thumb1_movpc_insn): New insn pattern.
33005
33006 2015-01-27 David Malcolm <dmalcolm@redhat.com>
33007
33008 * toplev.c (print_version): Add param "show_global_state", and
33009 only print GGC and plugin information if it is true.
33010 (init_asm_output): Pass in "true" for the new param when calling
33011 print_version.
33012 (process_options): Likewise.
33013 (toplev::main): Likewise.
33014 * toplev.h (print_version): Add new param to decl.
33015
33016 2015-01-27 Jan Hubicka <hubicka@ucw.cz>
33017
33018 PR ipa/60871
33019 PR ipa/64139
33020 * tree.c (lookup_binfo_at_offset): New function.
33021 (get_binfo_at_offset): Use it.
33022
33023 2015-01-27 Jan Hubicka <hubicka@ucw.cz>
33024
33025 PR ipa/64282
33026 * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert
33027 on vtable being vtable.
33028
33029 2015-01-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
33030
33031 * doc/extend.texi: s/390: Update documentation of hotpatch attribute.
33032 * doc/invoke.texi (-mhotpatch): s/390: Update documentation of
33033 -mhotpatch= option.
33034 * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
33035 -mno-hotpatch options. Change syntax of -mhotpatch= option.
33036 * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
33037 Renamed.
33038 (s390_hotpatch_trampoline_halfwords_max): Renamed.
33039 (s390_hotpatch_hw_max): New name.
33040 (s390_hotpatch_trampoline_halfwords): Renamed.
33041 (s390_hotpatch_hw_before_label): New name.
33042 (get_hotpatch_attribute): Removed.
33043 (s390_hotpatch_hw_after_label): New name.
33044 (s390_handle_hotpatch_attribute): Add second parameter to hotpatch
33045 attribute.
33046 (s390_attribute_table): Ditto.
33047 (s390_function_num_hotpatch_trampoline_halfwords): Renamed.
33048 (s390_function_num_hotpatch_hw): New name.
33049 Remove special handling of inline functions and hotpatching.
33050 Return number of nops before and after the function label.
33051 (s390_can_inline_p): Removed.
33052 (s390_asm_output_function_label): Emit a configurable number of nops
33053 after the function label.
33054 (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
33055 (TARGET_CAN_INLINE_P) Removed.
33056 (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.
33057
33058 2015-01-27 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
33059 Jiong Wang <jiong.wang@arm.com>
33060
33061 * config/aarch64/aarch64.md (tb<optab><mode>1): Clobber CC reg instead
33062 of scratch reg.
33063 (cb<optab><mode>1): Likewise.
33064 * config/aarch64/iterators.md (bcond): New define_code_attr.
33065
33066 2015-01-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
33067
33068 * config/s390/s390.c (s390_memory_move_cost): Increase costs for
33069 memory accesses.
33070
33071 2015-01-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
33072
33073 * config/s390/s390.c (s390_register_move_cost): Increase costs for
33074 FPR->GPR moves.
33075
33076 2015-01-27 Richard Biener <rguenther@suse.de>
33077
33078 * tree-vrp.c (update_value_range): Intersect the range with
33079 old recorded SSA name range information.
33080
33081 2015-01-27 Nick Clifton <nickc@redhat.com>
33082
33083 * config/rl78/rl78.c (rl78_expand_prologue): In G10 mode push the
33084 BC, DE and HL registers directly, not via AX.
33085 When decrementing the stack pointer by a large amount, transfer SP
33086 into AX and perform the subtraction there.
33087 (rl78_expand_epilogue): Perform the inverse of the above
33088 enhancements.
33089
33090 2015-01-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
33091
33092 * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Remove.
33093
33094 2015-01-27 Jakub Jelinek <jakub@redhat.com>
33095 Yury Gribov <y.gribov@samsung.com>
33096
33097 PR ubsan/64741
33098 * ubsan.c (ubsan_source_location): Refactor code.
33099 (ubsan_type_descriptor): Update type size. Refactor code.
33100
33101 2015-01-27 Richard Biener <rguenther@suse.de>
33102
33103 PR tree-optimization/56273
33104 PR tree-optimization/59124
33105 PR tree-optimization/64277
33106 * tree-vrp.c (vrp_finalize): Emit array-bound warnings only
33107 from the first VRP pass.
33108
33109 2015-01-27 Jakub Jelinek <jakub@redhat.com>
33110
33111 PR ipa/64776
33112 * cgraphunit.c (cgraph_node::expand_thunk): If not this_adjusting,
33113 handle the first argument in the same loop as all the other arguments.
33114
33115 PR rtl-optimization/61058
33116 * jump.c (cleanup_barriers): Update basic block boundaries
33117 if BLOCK_FOR_INSN is non-NULL on PREV.
33118
33119 2015-01-27 Ilya Enkovich <ilya.enkovich@intel.com>
33120
33121 * tree-chkp.c (chkp_call_returns_bounds_p): Fix handling of
33122 bounds narrowing, already instrumented calls and calls to
33123 not instrumentable functions.
33124
33125 2015-01-27 Jakub Jelinek <jakub@redhat.com>
33126
33127 PR tree-optimization/64807
33128 * wide-int.cc (wi::divmod_internal): Clear
33129 b_dividend[dividend_blocks_needed].
33130
33131 2015-01-26 DJ Delorie <dj@redhat.com>
33132
33133 * config/rl78/rl78.c (move_elim_pass): Don't optimize away
33134 volatile memory references.
33135
33136 2015-01-26 Oleg Endo <olegendo@gcc.gnu.org>
33137
33138 PR target/49263
33139 * config/sh/sh.c (sh_split_treg_set_expr): Invoke emit_insn before
33140 remove_insn.
33141 * config/sh/sh.md (tstsi_t): Don't try to optimize constant with right
33142 shifts if it already fits into K08.
33143
33144 2015-01-26 Jakub Jelinek <jakub@redhat.com>
33145
33146 PR ipa/64730
33147 * ipa-inline.c (inline_small_functions): Print "unknown" even
33148 if edge->call_stmt is non-NULL, but has builtins or unknown
33149 location.
33150
33151 PR middle-end/64421
33152 * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
33153 with asterisk, skip the first character.
33154
33155 2015-01-26 H.J. Lu <hongjiu.lu@intel.com>
33156
33157 PR target/64806
33158 * config/i386/i386 (feature_priority): Revert the last P_POPCNT
33159 order change.
33160
33161 2015-01-26 Uros Bizjak <ubizjak@gmail.com>
33162
33163 PR target/64795
33164 * config/i386/i386.md (*movdi_internal): Also check operand 0
33165 to determine TYPE_LEA operand.
33166 (*movsi_internal): Ditto.
33167
33168 2015-01-26 Jakub Jelinek <jakub@redhat.com>
33169
33170 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
33171 OPTION_MASK_QUAD_MEMORY_ATOMIC.
33172
33173 2015-01-26 Renlin Li <renlin.li@arm.com>
33174
33175 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Correct
33176 the comment.
33177 * config/aarch64/aarch64.md (tlsle_small_<mode>): Add left shift 12-bit
33178 for higher part.
33179
33180 2015-01-26 Richard Biener <rguenther@suse.de>
33181
33182 PR middle-end/64764
33183 * tree-ssa-uninit.c (is_pred_expr_subset_of): Handle
33184 combining two BIT_AND_EXPR predicates.
33185
33186 2015-01-26 H.J. Lu <hongjiu.lu@intel.com>
33187
33188 PR bootstrap/64754
33189 * tree-ssa-structalias.c (new_var_info): Initialize ruid.
33190
33191 2015-01-26 Terry Guo <terry.guo@arm.com>
33192
33193 * config/arm/arm.c (arm_file_start): Update the assignment of
33194 Tag_ABI_HardFP_use.
33195
33196 2015-01-25 James Greenhalgh <james.greenhalgh@arm.com>
33197
33198 * config/arm/arm-cores.def (cortex-a57): Use the new Cortex-A57
33199 pipeline model.
33200 config/arm/arm.md: Include the new Cortex-A57 model.
33201 (generic_sched): Don't use generic_sched when tuning for
33202 Cortex-A57.
33203
33204 2015-01-25 Allan Sandfeld Jensen <sandfeld@kde.org>
33205 Uros Bizjak <ubizjak@gmail.com>
33206
33207 * config/i386/i386.c (get_builtin_code_for_version): Add
33208 support for BMI and BMI2 multiversion functions.
33209
33210 2015-01-25 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
33211
33212 * emit-rtl.h (store_bit_field): Move prototype to expmed.h.
33213 (extract_bit_field): Likewise.
33214 (extract_low_bits): Likewise.
33215 (expand_mult): Likewise.
33216 (expand_mult_highpart_adjust): Likewise.
33217
33218 2015-01-24 H.J. Lu <hongjiu.lu@intel.com>
33219
33220 * config/i386/driver-i386.c (host_detect_local_cpu): Check new
33221 Silvermont, Haswell, Broadwell and Knights Landing model numbers.
33222 * config/i386/i386.c (processor_model): Add
33223 M_INTEL_COREI7_BROADWELL.
33224 (arch_names_table): Add "broadwell".
33225
33226 2015-01-24 Oleg Endo <olegendo@gcc.gnu.org>
33227
33228 PR target/49263
33229 PR target/53987
33230 PR target/64345
33231 PR target/59533
33232 PR target/52933
33233 PR target/54236
33234 PR target/51244
33235 * config/sh/sh-protos.h
33236 (sh_extending_set_of_reg::can_use_as_unextended_reg,
33237 sh_extending_set_of_reg::use_as_unextended_reg,
33238 sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn,
33239 sh_is_movrt_insn, sh_insn_operands_modified_between_p,
33240 sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr,
33241 sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions.
33242 (sh_treg_insns): New class.
33243 * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook.
33244 (scope_counter): New class.
33245 (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest,
33246 sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn,
33247 sh_extending_set_of_reg::can_use_as_unextended_reg,
33248 sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr,
33249 sh_in_recog_treg_set_expr, sh_try_split_insn_simple,
33250 sh_split_treg_set_expr): New functions.
33251 (addsubcosts): Handle treg_set_expr.
33252 (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT.
33253 (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND.
33254 (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases.
33255 (sh_insn_operands_modified_between_p): Make non-static.
33256 * config/sh/predicates.md (zero_extend_movu_operand): Allow
33257 simple_mem_operand in addition to displacement_mem_operand.
33258 (zero_extend_operand): Don't allow zero_extend_movu_operand.
33259 (treg_set_expr, treg_set_expr_not_const01,
33260 arith_reg_or_treg_set_expr): New predicates.
33261 * config/sh/sh.md (tstsi_t): Use arith_reg_operand and
33262 arith_or_int_operand instead of logical_operand. Convert to
33263 insn_and_split. Try to optimize constant operand in splitter.
33264 (tsthi_t, tstqi_t): Fold into *tst<mode>_t. Convert to insn_and_split.
33265 (*tstqi_t_zero): Delete.
33266 (*tst<mode>_t_subregs): Add !sh_in_recog_treg_set_expr split condition.
33267 (tstsi_t_and_not): Delete.
33268 (tst<mode>_t_zero_extract_eq): Rename to *tst<mode>_t_zero_extract.
33269 Convert to insn_and_split.
33270 (unnamed split, tstsi_t_zero_extract_xor,
33271 tstsi_t_zero_extract_subreg_xor_little,
33272 tstsi_t_zero_extract_subreg_xor_big): Delete.
33273 (*tstsi_t_shift_mask): New insn_and_split.
33274 (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try
33275 to recombine with surrounding insns when splitting.
33276 (*negtstsi): Add !sh_in_recog_treg_set_expr condition.
33277 (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ...
33278 (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4,
33279 *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns.
33280 (*cbranch_div0s: Delete.
33281 (*addc): Convert to insn_and_split. Use treg_set_expr as 3rd operand.
33282 Try to recombine with surrounding insns when splitting. Add operand
33283 order variants.
33284 (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01.
33285 (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb,
33286 *addc_r_r_msb, *addc_2r_msb): Delete.
33287 (*addc_2r_lsb): Rename to *addc_2r_t. Use treg_set_expr. Add operand
33288 order variant.
33289 (*addc_negreg_t): New insn_and_split.
33290 (*subc): Convert to insn_and_split. Use treg_set_expr as 3rd operand.
33291 Try to recombine with surrounding insns when splitting.
33292 Add operand order variants.
33293 (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New
33294 insn_and_split patterns.
33295 (*rotcr): Use arith_reg_or_treg_set_expr. Try to recombine with
33296 surrounding insns when splitting.
33297 (unnamed rotcr split): Use arith_reg_or_treg_set_expr.
33298 (*rotcl): Likewise. Add zero_extract variant.
33299 (*ashrsi2_31): New insn_and_split.
33300 (*negc): Convert to insn_and_split. Use treg_set_expr.
33301 (*zero_extend<mode>si2_disp_mem): Update comment.
33302 (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split
33303 condition.
33304 (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr. Try to recombine
33305 with surrounding insns when splitting.
33306 (any_treg_expr_to_reg): New insn_and_split.
33307 (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2,
33308 *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5,
33309 *neg_zero_extract_6, *zero_extract_0, *zero_extract_1,
33310 *zero_extract_2): New single bit zero extract patterns.
33311 (bld_reg, *bld_regqi): Fold into bld<mode>_reg.
33312 (*get_thread_pointersi, store_gbr, *mov<mode>_gbr_load,
33313 *mov<mode>_gbr_load, *mov<mode>_gbr_load, *mov<mode>_gbr_load,
33314 *movdi_gbr_load): Use arith_reg_dest instead of register_operand for
33315 set destination.
33316 (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of
33317 register_operand for set source.
33318
33319 2015-01-23 Jan Hubicka <hubicka@ucw.cz>
33320
33321 * i386.opt (prefetch_sse): New targetsave.
33322 * i386.c (ix86_function_specific_save): Save prefetch_sse.
33323 (ix86_function_specific_restore): Restore prefetch_sse and initialize
33324 ix86_cost/ix86_tune_cost.
33325
33326 2015-01-23 David Malcolm <dmalcolm@redhat.com>
33327
33328 * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
33329 Support the JIT by using 0 as the language type.
33330
33331 2015-01-23 Vladimir Makarov <vmakarov@redhat.com>
33332
33333 PR target/64317
33334 * lra-lives.c (make_hard_regno_born): Add parameter. Don't make
33335 REAL_PIC_OFFSET_TABLE_REGNUM conflicting with pic offset pseudo.
33336 (mark_regno_live, process_bb_lives): Pass new parameter value to
33337 make_hard_regno_born.
33338
33339 2015-01-23 Jakub Jelinek <jakub@redhat.com>
33340
33341 PR rtl-optimization/63637
33342 PR rtl-optimization/60663
33343 * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
33344 if elt->cost is MAX_COST for ASM_OPERANDS.
33345 (find_sets_in_insn): Fix up comment typo.
33346 (cse_insn): Don't set src_volatile for all non-volatile
33347 ASM_OPERANDS in PARALLELs, but just those with multiple outputs
33348 or with "memory" clobber. Set elt->cost to MAX_COST
33349 for ASM_OPERANDS in PARALLEL. Set src_elt->cost to MAX_COST
33350 if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
33351
33352 2015-01-23 Uros Bizjak <ubizjak@gmail.com>
33353
33354 * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
33355 alternative 1.
33356
33357 2015-01-23 Uros Bizjak <ubizjak@gmail.com>
33358
33359 * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Move definition to
33360 libgcc/config/i386/elf-lib.h.
33361
33362 2015-01-23 Jakub Jelinek <jakub@redhat.com>
33363
33364 PR driver/64737
33365 * gcc.c (print_configuration): Don't print a blank line at the end
33366 here...
33367 (run_attempt): ... but here unstead.
33368
33369 PR middle-end/64734
33370 * omp-low.c (scan_sharing_clauses): Don't ignore
33371 OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
33372 on target data/update constructs.
33373
33374 2015-01-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
33375
33376 PR target/50928
33377 * config/m32c/m32c.c (encode_pattern_1): Removed gcc_unreachable here.
33378 (DEBUG_RELOAD): Removed define.
33379 (m32c_limit_reload_class): Enable traces with if DEBUG0.
33380 (m32c_function_arg): Added a type cast.
33381 (m32c_legitimize_reload_address): Push A_REGS reload with PSImode.
33382 * config/m32c/addsub.md (addsi3_1): Specify the mode of all arguments.
33383 * config/m32c/bitops.md (andqi3_16): Likewise.
33384 * config/m32c/mov.md (m32c_immd_dbl_mov): Likewise.
33385 (push_a01_l): Likewise.
33386
33387 2015-01-23 David Malcolm <dmalcolm@redhat.com>
33388
33389 PR jit/64721
33390 * main.c (main): Construct toplev instances with init_signals=true.
33391 * toplev.c (general_init): Add param "init_signals", and use it to
33392 conditionalize the calls to signal and host_hooks.extra_signals.
33393 (toplev::toplev): Add param "init_signals".
33394 (toplev::main): When invoking general_init, pass m_init_signals
33395 to control whether signal-handlers are installed.
33396 * toplev.h (toplev::toplev): Add param "init_signals".
33397 (toplev::m_init_signals): New field.
33398
33399 2015-01-23 David Malcolm <dmalcolm@redhat.com>
33400
33401 PR jit/64722
33402 * emit-rtl.c (init_emit_regs): Set pic_offset_table_rtx to
33403 NULL_RTX before testing PIC_OFFSET_TABLE_REGNUM, since the
33404 latter may be affected by the former (e.g. on i686).
33405
33406 2015-01-23 Martin Liska <mliska@suse.cz>
33407
33408 * tree.h (tree_vec_elt_check): Workaround -Wstrict-overflow
33409 false positive during profiledbootstrap.
33410
33411 2015-01-23 Tom de Vries <tom@codesourcery.com>
33412
33413 PR libgomp/64672
33414 * lto-opts.c (lto_write_options): Output non-explicit conservative
33415 -fno-openacc.
33416 * lto-wrapper.c (merge_and_complain): Handle merging -fopenacc.
33417 (append_compiler_options): Pass -fopenacc through.
33418
33419 2015-01-23 Tom de Vries <tom@codesourcery.com>
33420
33421 PR libgomp/64707
33422 * lto-opts.c (lto_write_options): Output non-explicit conservative
33423 -fno-openmp.
33424 * lto-wrapper.c (merge_and_complain): Handle merging -fopenmp.
33425 (append_compiler_options): Pass -fopenmp through.
33426
33427 2015-01-23 Jakub Jelinek <jakub@redhat.com>
33428
33429 PR debug/64511
33430 * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
33431 GTY markup.
33432
33433 * diagnostic-core.h (internal_error_no_backtrace): New prototype.
33434 * diagnostic.def (DK_ICE_NOBT): New kind.
33435 * diagnostic.c (diagnostic_action_after_output): Handle DK_ICE_NOBT
33436 like DK_ICE, but never print backtrace.
33437 (diagnostic_report_diagnostic): Handle DK_ICE_NOBT like DK_ICE.
33438 (internal_error_no_backtrace): New function.
33439 * gcc.c (execute): Use internal_error_no_backtrace instead of
33440 internal_error.
33441
33442 2015-01-22 Jeff Law <law@redhat.com>
33443
33444 PR target/52076
33445 * config/m68k/m68k.md (xorsi3_internal): Twiddle constraints to
33446 improve code density for small immediate to memory case.
33447 (insv): Better handle bitfield assignments when the field is
33448 being set to all ones.
33449 * config/m68k/predicates.md (reg_or_pow2_m1_operand): New
33450 operand predicate.
33451
33452 2015-01-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
33453 Jakub Jelinek <jakub@redhat.com>
33454
33455 PR middle-end/64729
33456 * gcc.c (LINK_SSP_SPEC): Handle -fstack-protector-explicit
33457 for !TARGET_LIBC_PROVIDES_SSP version and
33458 -fstack-protector-{all,strong,explicit} otherwise.
33459 * config/freebsd.h (LINK_SSP_SPEC): Handle
33460 -fstack-protector-{strong,explicit}.
33461
33462 2015-01-22 Jan Hubicka <hubicka@ucw.cz>
33463 H.J. Lu <hongjiu.lu@intel.com>
33464
33465 PR ipa/64694
33466 * ipa-inline.c (inline_small_functions): Fix thinko in maintenance of
33467 heap.
33468
33469 2015-01-22 Wei Mi <wmi@google.com>
33470
33471 PR rtl-optimization/64557
33472 * dse.c (record_store): Call get_addr for mem_addr.
33473 (check_mem_read_rtx): Likewise.
33474
33475 2015-01-22 Eric Botcazou <ebotcazou@adacore.com>
33476
33477 * fold-const.c (const_binop): Add early return for non-tcc_binary.
33478
33479 2015-01-22 Chen Gang <gang.chen.5i5j@gmail.com>
33480
33481 * toplev.c (init_local_tick): Process the failure when read
33482 fails for random_seed.
33483
33484 * ubsan.c (ubsan_type_descriptor): Use 'pretty_print' for
33485 'pretty_name' to avoid memory overflow.
33486
33487 2015-01-22 Richard Biener <rguenther@suse.de>
33488
33489 PR middle-end/64728
33490 * tree-ssa-coalesce.c (coalesce_partitions): Do not perform
33491 abnormal coalescing on undefined SSA names.
33492
33493 2015-22-01 Uros Bizjak <ubizjak@gmail.com>
33494
33495 PR target/64688
33496 PR target/64477
33497 * config/i386/sse.md (vec_set<mode>_0): Use (Yi/r/C) constraints
33498 for alternative 3.
33499 (*vec_dup<mode>): Use (Yi/$r) constraints for alternative 1.
33500
33501 2015-01-22 Trevor Saunders <tsaunders@mozilla.com>
33502
33503 PR middle-end/63325
33504 * fold-const.c (fold_checksum_tree): Don't include value of
33505 expr->decl_with_vis.symtab_node in the checksum.
33506
33507 2015-01-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
33508
33509 * config/s390/s390.md (atomic code attribute): Fix typo "ior" -> "or".
33510
33511 2015-01-22 Max Ostapenko <m.ostapenko@partner.samsung.com>
33512
33513 PR driver/64690
33514 * gcc.c (insert_comments): New function.
33515 (try_generate_repro): Call it.
33516 (append_text): Removed.
33517
33518 2015-01-22 Richard Biener <rguenther@suse.de>
33519
33520 * ipa-inline.c (can_inline_edge_p): Disable inlining of edges
33521 with IL incompatible options. Properly honor user optimize
33522 attributes.
33523
33524 2015-01-21 Segher Boessenkool <segher@kernel.crashing.org>
33525
33526 PR rtl-optimization/64682
33527 * combine.c (distribute_notes): When moving a death note for
33528 a register that is set in the new I2, make sure to put it
33529 before that new I2.
33530
33531 2015-01-21 David Edelsohn <dje.gcc@gmail.com>
33532
33533 * config/rs6000/rs6000.c (rs6000_file_start): Use rs6000_isa_flags
33534 not TARGET_DEFAULT.
33535
33536 2015-01-21 Jakub Jelinek <jakub@redhat.com>
33537
33538 PR debug/64511
33539 * simplify-rtx.c (simplify_relational_operation_1): Don't try to
33540 optimize (eq/ne (and (side_effects) (const_int 0)) (const_int 0))
33541 into (eq/ne (and (not (side_effects)) (const_int 0)) (const_int 0)).
33542
33543 PR sanitizer/64706
33544 * doc/invoke.texi (-fsanitize=vptr): Document.
33545
33546 PR rtl-optimization/62078
33547 * dse.c: Include cfgcleanup.h.
33548 (rest_of_handle_dse): For -fnon-call-exceptions, if DSE removed
33549 anything call purge_all_dead_edges and cleanup_cfg at the end
33550 of the pass.
33551
33552 2015-01-21 Jan Hubicka <hubicka@ucw.cz>
33553
33554 * ipa-utils.c (ipa_merge_profiles): Avoid ICE on mismatch in indirect
33555 edges.
33556
33557 2015-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
33558
33559 * gimplify.c (gimplify_function_tree): Check the no_sanitize_thread
33560 decl attribute.
33561
33562 2015-01-21 David Sherwood <david.sherwood@arm.com>
33563 Tejas Belagod <Tejas.Belagod@arm.com>
33564
33565 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Removed.
33566 * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class): Removed.
33567 * config/aarch64/aarch64-protos.h (aarch64_cannot_change_mode_class):
33568 Removed.
33569
33570 2015-01-21 David Sherwood <david.sherwood@arm.com>
33571 Tejas Belagod <Tejas.Belagod@arm.com>
33572
33573 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist)
33574 (aarch64_reverse_mask): New decls.
33575 * config/aarch64/iterators.md (UNSPEC_REV_REGLIST): New enum.
33576 (insn_count): New mode_attr.
33577 * config/aarch64/aarch64-simd.md (vec_store_lanesoi, vec_store_lanesci)
33578 (vec_store_lanesxi, vec_load_lanesoi, vec_load_lanesci)
33579 (vec_load_lanesxi): Made ABI compliant for Big Endian targets.
33580 (aarch64_rev_reglist, aarch64_simd_ld2, aarch64_simd_ld3)
33581 (aarch64_simd_ld4, aarch64_simd_st2, aarch64_simd_st3)
33582 (aarch64_simd_st4): New patterns.
33583 * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist)
33584 (aarch64_reverse_mask): New functions.
33585
33586 2015-01-21 Alan Hayward <alan.hayward@arm.com>
33587
33588 * config/aarch64/aarch64-protos.h (aarch64_simd_disambiguate_copy):
33589 Declare.
33590 * config/aarch64/aarch64.c (aarch64_classify_address): Allow extra
33591 addressing modes for BE.
33592 (aarch64_print_operand): Add 'R' specifier.
33593 (aarch64_simd_disambiguate_copy): Delete.
33594 (aarch64_simd_emit_reg_reg_move): New function.
33595 * config/aarch64/aarch64-simd.md: Use aarch64_simd_emit_reg_reg_move
33596 in define_splits for structural moves.
33597 (mov<mode>): Use less restrictive predicates.
33598 (*aarch64_mov<mode>): Simplify and only allow for LE.
33599 (*aarch64_be_movoi, *aarch64_be_movci, *aarch64_be_movxi): New.
33600
33601 2015-01-21 Alan Hayward <alan.hayward@arm.com>
33602
33603 * rtlanal.c (subreg_get_info): Exit early for simple and common cases.
33604
33605 2015-01-21 Richard Henderson <rth@redhat.com>
33606
33607 PR target/64669
33608 * ccmp.c (used_in_cond_stmt_p): Remove.
33609 (expand_ccmp_expr): Don't use it.
33610
33611 2015-01-21 Nick Clifton <nickc@redhat.com>
33612
33613 * config/rl78/rl78.c (rl78_calculate_death_notes): Look inside
33614 PARALLELs.
33615
33616 2015-01-21 Richard Biener <rguenther@suse.de>
33617
33618 PR middle-end/64313
33619 * tree-core.h (builtin_info, builtin_info_type): Turn from
33620 an object with two arrays into an array of an object with
33621 decl and two flags, implicit_p and declared_p.
33622 * tree.h (builtin_decl_explicit, builtin_decl_implicit,
33623 set_builtin_decl, set_builtin_decl_implicit_p,
33624 builtin_decl_explicit_p, builtin_decl_implicit_p): Adjust.
33625 (set_builtin_decl_declared_p, builtin_decl_declared_p): New functions.
33626 * builtins.c (builtin_info): Adjust.
33627 * gimplify.c (gimplify_addr_expr): References to builtins
33628 that have been declared by the user makes them eligible for
33629 use by the compiler. Call set_builtin_decl_implicit_p on them.
33630
33631 2015-01-20 Jeff Law <law@redhat.com>
33632
33633 PR target/59946
33634 * config/m68k/m68k.md (Comparison expanders and patterns): Do not
33635 allow pc-relative addresses in operand predicates or constraints.
33636
33637 2015-01-21 Bin Cheng <bin.cheng@arm.com>
33638
33639 * config/arm/arm.c (arm_cortex_a53_tune, arm_cortex_a57_tune): Prefer
33640 neon on aarch32 processors for stringops.
33641
33642 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
33643
33644 PR ipa/63576
33645 * ipa-utils.c (ipa_merge_profiles): Merge speculative edges.
33646
33647 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
33648
33649 PR lto/45375
33650 * ipa-inline.c: Include lto-streamer.h
33651 (report_inline_failed_reason): Output source file differences and
33652 flags on optimization/target node mismatch.
33653 (can_inline_edge_p): Consider caller to be the outer inline function;
33654 be less restrictive about matching opimize and optimize_size attributes.
33655 (inline_account_function_p): Break out from ...
33656 (inline_small_functions): ... here.
33657 * ipa-inline-transform.c (clone_inlined_nodes): Use
33658 inline_account_function_p.
33659 (inline_call): Use optimize attribution; use inline_account_function_p.
33660 (inline_transform): Use opt_for_fn.
33661 * ipa-inline.h (inline_account_function_p): Declare.
33662
33663 2015-01-20 Jakub Jelinek <jakub@redhat.com>
33664
33665 PR debug/64663
33666 * dwarf2out.c (decl_piece_node): Don't put bitsize into
33667 mode if bitsize <= 0.
33668 (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
33669 dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
33670 sizes and positions.
33671
33672 2015-01-20 Chung-Lin Tang <cltang@codesourcery.com>
33673
33674 * config/nios2/nios2.c (nios2_asm_file_end): Implement
33675 TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
33676 needed.
33677 (TARGET_ASM_FILE_END): Define.
33678
33679 2015-01-20 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
33680
33681 * config/arm/arm-protos.h (enum arm_sched_autopref): New constants.
33682 (struct tune_params): Use the enum.
33683 * arm.c (arm_*_tune): Update.
33684 (arm_option_override): Update.
33685
33686 2015-01-20 Richard Biener <rguenther@suse.de>
33687
33688 PR ipa/64684
33689 * ipa-reference.c (add_static_var): Inline ...
33690 (analyze_function): ... here after splitting out from ...
33691 (is_proper_for_analysis): ... this.
33692
33693 2015-01-20 Matthew Wahab <matthew.wahab@arm.com>
33694
33695 PR target/64149
33696 * config/arm/arm.opt: Remove lra option and arm_lra_flag variablesle.
33697 * config/arm/arm.h (MODE_BASE_REG_CLASS): Remove use of arm_lra_flagag,
33698 replace the conditional with it's true branch.
33699 * config/arm/arm.config (TARGET_LRA_P): Set to hook_bool_void_true.
33700 (arm_lra_p): Remove.
33701
33702 2015-01-20 Eric Botcazou <ebotcazou@adacore.com>
33703
33704 * config/visium/visium.h (LIB_SPEC): Adjust in default case.
33705
33706 2015-01-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
33707
33708 * config/tilegx/mul-tables.c: Move symtab.h include after
33709 coretypes.h include.
33710 * config/tilepro/mul-tables.c: Add includes hashtab.h, hash-set.h,
33711 vec.h, machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h,
33712 flags.h, statistics.h, double-int.h, real.h, fixed-value.h, alias.h,
33713 wide-int.h, inchash.h, tree.h, insn-config.h, expmed.h, dojump.h,
33714 explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
33715
33716 2015-01-20 Igor Zamyatin <igor.zamyatin@intel.com>
33717
33718 PR bootstrap/64676
33719 Revert:
33720 2015-01-19 Igor Zamyatin <igor.zamyatin@intel.com>
33721
33722 PR rtl-optimization/64081
33723 * loop-iv.c (def_pred_latch_p): New function.
33724 (latch_dominating_def): Allow specific cases with non-single
33725 definitions.
33726 (iv_get_reaching_def): Likewise.
33727 (check_complex_exit_p): New function.
33728 (check_simple_exit): Use check_complex_exit_p to allow certain cases
33729 with exits not executing on any iteration.
33730
33731 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
33732
33733 PR lto/45375
33734 * i386.c (ix86_option_override_internal): Use ix86_tune_cost
33735 to set branch cost.
33736
33737 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
33738
33739 PR lto/45375
33740 * i386.c (gate): Check flag_expensive_optimizations and
33741 optimize_size.
33742 (ix86_option_override_internal): Drop optimize_size condition
33743 on MASK_ACCUMULATE_OUTGOING_ARGS, MASK_VZEROUPPER,
33744 MASK_AVX256_SPLIT_UNALIGNED_LOAD, MASK_AVX256_SPLIT_UNALIGNED_STORE,
33745 MASK_PREFER_AVX128.
33746 (ix86_avx256_split_vector_move_misalign,
33747 ix86_avx256_split_vector_move_misalign): Check optimize_insn_for_speed.
33748 * sse.md (all uses of TARGET_PREFER_AVX128): Add
33749 optimize_insn_for_speed_p check.
33750
33751 2015-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
33752
33753 * config/mips/mips.h (FP_ASM_SPEC): New define.
33754 (ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
33755 instead.
33756
33757 2015-01-19 Oleg Endo <olegendo@gcc.gnu.org>
33758
33759 PR target/53988
33760 * config/sh/sh-protos.h (sh_find_set_of_reg): Make sure not to return
33761 nullptr for insn when reaching the first insn.
33762 * config/sh/sh.c (sh_unspec_insn_p): Rewrite using subrtx_iterator.
33763 (sh_insn_operands_modified_between_p): Add nullptr check.
33764 (sh_find_extending_set_of_reg): Fix log message. Don't accept
33765 sign extending mem load if the insn contains any UNSPEC or
33766 UNSPEC_VOLATILE.
33767
33768 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
33769
33770 * params.def (inline-unit-growth): Drop to 15%.
33771 * invoke.texi (inline-unit-growth): Document change.
33772
33773 2015-01-19 Martin Liska <mliska@suse.cz>
33774
33775 PR ipa/64668
33776 * ipa-icf-gimple.c (func_checker::compare_operand): Call proper
33777 function for second argument of OBJ_TYPE_REF.
33778
33779 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
33780
33781 PR ipa/64218
33782 * ipa-inline.c (want_inline_function_to_all_callers_p): Fix check
33783 whether function is an alias.
33784
33785 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
33786
33787 * ipa-devirt.c (ipa_devirt): Drop polymorphic call info in hopeless
33788 cases.
33789
33790 2015-01-19 Vladimir Makarov <vmakarov@redhat.com>
33791
33792 PR rtl-optimization/64671
33793 * lra-remat.c (operand_to_remat): Don't consider jump and call
33794 insns.
33795
33796 2015-01-19 David Edelsohn <dje.gcc@gmail.com>
33797
33798 PR target/59828
33799 * config/rs6000/default64.h: Include rs6000-cpus.def.
33800 (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
33801 (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
33802 * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
33803 and POWER8.
33804 * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
33805 POWER8.
33806 * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
33807 pseudo-op to specify assembler dialect.
33808
33809 2015-01-19 Martin Liska <mliska@suse.cz>
33810
33811 PR ipa/64664
33812 * ipa-icf.c (sem_item_optimizer::filter_removed_items):
33813 Handle safe potentially removed nodes during filtering.
33814
33815 2015-01-19 Martin Liska <mliska@suse.cz>
33816
33817 * doc/extend.texi (no_icf): Add new attribute description.
33818 * ipa-icf.c (sem_item_optimizer::merge_classes): Handle cases
33819 where the pass attempts to merge a function with no_icf attribute.
33820
33821 2015-01-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
33822
33823 PR target/64532
33824 * doc/md.texi (ARM Options): Document register constraints.
33825
33826 2015-01-19 Jiong Wang <jiong.wang@arm.com>
33827 Andrew Pinski <apinski@cavium.com>
33828
33829 PR target/64304
33830 * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
33831 (ashl<mode>3): Don't expand if operands[2] is not constant.
33832
33833 2015-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
33834
33835 PR target/64448
33836 * config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal):
33837 Match xor-and-xor RTL pattern.
33838
33839 2015-01-19 Igor Zamyatin <igor.zamyatin@intel.com>
33840
33841 PR rtl-optimization/64081
33842 * loop-iv.c (def_pred_latch_p): New function.
33843 (latch_dominating_def): Allow specific cases with non-single
33844 definitions.
33845 (iv_get_reaching_def): Likewise.
33846 (check_complex_exit_p): New function.
33847 (check_simple_exit): Use check_complex_exit_p to allow certain cases
33848 with exits not executing on any iteration.
33849
33850 2015-01-19 Jakub Jelinek <jakub@redhat.com>
33851
33852 * common.opt (fgraphite): Fix a typo.
33853
33854 2015-01-19 Felix Yang <felix.yang@huawei.com>
33855
33856 * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): New
33857 pattern.
33858 * config/aarch64/aarch64-simd-builtins.def (smaxp, sminp, umaxp,
33859 uminp, smax_nanp, smin_nanp): New builtins.
33860 * config/aarch64/arm_neon.h (vpmax_s8, vpmax_s16, vpmax_s32,
33861 vpmax_u8, vpmax_u16, vpmax_u32, vpmaxq_s8, vpmaxq_s16, vpmaxq_s32,
33862 vpmaxq_u8, vpmaxq_u16, vpmaxq_u32, vpmax_f32, vpmaxq_f32, vpmaxq_f64,
33863 vpmaxqd_f64, vpmaxs_f32, vpmaxnm_f32, vpmaxnmq_f32, vpmaxnmq_f64,
33864 vpmaxnmqd_f64, vpmaxnms_f32, vpmin_s8, vpmin_s16, vpmin_s32, vpmin_u8,
33865 vpmin_u16, vpmin_u32, vpminq_s8, vpminq_s16, vpminq_s32, vpminq_u8,
33866 vpminq_u16, vpminq_u32, vpmin_f32, vpminq_f32, vpminq_f64, vpminqd_f64,
33867 vpmins_f32, vpminnm_f32, vpminnmq_f32, vpminnmq_f64, vpminnmqd_f64,
33868 vpminnms_f32): Rewrite using builtin functions.
33869
33870 2015-01-19 Thomas Schwinge <thomas@codesourcery.com>
33871
33872 PR libgomp/64625
33873 * omp-low.c (offload_symbol_decl): Remove variable.
33874 (get_offload_symbol_decl): Remove function.
33875 (expand_omp_target): For BUILT_IN_GOMP_TARGET,
33876 BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
33877 instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
33878 BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
33879 BUILT_IN_GOACC_UPDATE don't pass it at all.
33880
33881 2015-01-19 Ilya Enkovich <ilya.enkovich@intel.com>
33882
33883 * tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
33884 callers.
33885
33886 2015-01-19 Ilya Enkovich <ilya.enkovich@intel.com>
33887
33888 * ipa-chkp.c (chkp_produce_thunks): Add early param
33889 to split thunks production into two passes. Keep
33890 'always_inline' function bodies after the first pass.
33891 (pass_data_ipa_chkp_early_produce_thunks): New.
33892 (pass_ipa_chkp_early_produce_thunks): New.
33893 (pass_ipa_chkp_produce_thunks::execute): Adjust to new
33894 chkp_produce_thunks signature.
33895 (make_pass_ipa_chkp_early_produce_thunks): New.
33896 * passes.def (pass_ipa_chkp_early_produce_thunks): New.
33897 (pass_ipa_chkp_produce_thunks): Move after local optimizations.
33898 * tree-pass.h (make_pass_ipa_chkp_early_produce_thunks): New.
33899
33900 2015-01-18 Jan Hubicka <hubicka@ucw.cz>
33901
33902 * cgraph.c (cgraph_node::dump): Dump profile flags.
33903
33904 2015-01-18 Oleg Endo <olegendo@gcc.gnu.org>
33905
33906 PR target/64652
33907 * config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
33908 reg appear first in the parallel.
33909
33910 2015-01-18 Jan Hubicka <hubicka@ucw.cz>
33911
33912 * ipa-reference.c (set_reference_optimization_summary,
33913 ipa_reference_get_not_written_global): Do nothing if ipa-reference is
33914 disabled.
33915 (ignore_module_statics): New static var.
33916 (propagate_bits): If ipa-reference is disabled, do not look into local
33917 properties.
33918 (analyze_function): Disable analysis when ipa_reference is disabled.
33919 (generate_summary): Do not dump when reference is disabled;
33920 collect vars accessed from functions with ipa-reference disabled.
33921 (get_read_write_all_from_node): When ipa-reference is disabled, use the
33922 node flags.
33923 (gate): Enable for LTO.
33924 (ignore_edge_p): New function.
33925 (propagate): Skip functions w/o ipa-reference analysis.
33926 * optc-save-gen.awk: Handle optimize_debug correctly.
33927 * opth-gen.awk: Likewise.
33928 * common.opt (fauto-inc-dec, fdelete-dead-exceptions, ffunction-cse,
33929 fgraphite, fstrict-volatile-bitfields, fira-algorithm, fira-region,
33930 fira-share-save-slots, fira-share-spill-slots,
33931 fmodulo-sched-allow-regmoves, fpartial-inlining,
33932 sched-stalled-insns, fsched-stalled-insns-dep, fstrict-overflow,
33933 ftracer, ftree-parallelize-loops, fassociative-math,
33934 freciprocal-math, fvect-cost-model, fsimd-cost-model): Mark as
33935 Optimization
33936 (fauto-profile, fcommon, fdata-sections, fipa-icf-variables,
33937 ftoplevel-reorder, funit-at-a-time, fwhole-program): Do not mark as
33938 Optimization.
33939 * ipa-icf.c (gate, sem_item_optimizer::filter_removed_items):
33940 Fix for IPA.
33941
33942 2015-01-18 Jan Hubicka <hubicka@ucw.cz>
33943
33944 PR ipa/64378
33945 * ipa-prop.c (try_make_edge_direct_virtual_call): Clear speculative
33946 flag correctly.
33947 * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
33948
33949 2015-01-18 Sandra Loosemore <sandra@codesourcery.com>
33950
33951 * doc/invoke.texi ([-funroll-loops], [-funroll-all-loops]):
33952 Remove duplicate option listings.
33953
33954 2015-01-18 Felix Yang <felix.yang@huawei.com>
33955
33956 * auto-profile.c (afdo_find_equiv_class): Remove unnecessary test.
33957 (autofdo_source_profile::get_callsite_total_count,
33958 function_instance::get_function_instance_by_decl,
33959 string_table::get_index, string_table::get_index_by_decl,
33960 afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
33961 Fix comment typos. Reformatting and minor code rearrangement.
33962
33963 2015-01-17 Segher Boessenkool <segher@kernel.crashing.org>
33964
33965 * config/rs6000/rs6000.md (probe_stack): Delete.
33966 (probe_stack_address): New.
33967
33968 2015-01-17 Segher Boessenkool <segher@kernel.crashing.org>
33969
33970 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use TARGET_32BIT
33971 to test for 32-bit ABIs, not !TARGET_POWERPC64.
33972
33973 2015-01-17 Segher Boessenkool <segher@kernel.crashing.org>
33974
33975 * config/rs6000/rs6000.c (rs6000_parallel_return): New function.
33976 (rs6000_function_value): Use it. Handle SCmode and TCmode as well,
33977 for TARGET_32BIT && TARGET_POWERPC64. Fix another BITS_PER_WORD
33978 snafu.
33979 (rs6000_libcall_value): Use the new function.
33980
33981 2015-01-17 Sandra Loosemore <sandra@codesourcery.com>
33982
33983 * doc/invoke.texi ([-ftracer]): Remove duplicate option listing.
33984
33985 2015-01-17 Eric Botcazou <ebotcazou@adacore.com>
33986
33987 * reorg.c (fill_simple_delay_slots): If TARGET_FLAGS_REGNUM is valid,
33988 implement a more precise life analysis for it during backward scan.
33989
33990 2015-01-17 Jan Kratochvil <jan.kratochvil@redhat.com>
33991
33992 * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
33993
33994 2015-01-17 Bernd Schmidt <bernds@codesourcery.com>
33995
33996 PR rtl-optimization/52773
33997 * calls.c (emit_library_call_value): When pushing arguments use
33998 stack_pointer_rtx rather than virtual_outgoing_args_rtx in
33999 CALL_INSN_FUNCTION_USAGE. Only emit one of use of the magic
34000 stack pointer reference into CALL_INSN_FUNCTION_USAGE.
34001
34002 2015-01-17 Jeff Law <law@redhat.com>
34003
34004 PR rtl-optimization/32790
34005 * reginfo.c (reg_scan_mark_refs): Look for ZERO_EXTRACT,
34006 not ZERO_EXTEND in SET_DESTs.
34007
34008 2015-01-17 Alan Modra <amodra@gmail.com>
34009
34010 * cprop.c (do_local_cprop): Revert last change.
34011
34012 2015-01-16 DJ Delorie <dj@redhat.com>
34013 Nick Clifton <nickc@redhat.com>
34014
34015 * config/rl78/rl78-real.md (addqi3_real): Allow volatiles.
34016 (addhi3_real): Likewise. Fix [HL+0] syntax.
34017 (subqi3_real): Likewise.
34018 (subhi3_real): Likewise.
34019 (cbranchqi4_real): Likewise. Allow saddr,#imm.
34020 (cbranchhi4_real): Likewise.
34021 (cbranchhi4_real_inverted): Likewise.
34022 (cbranchsi4_real_lt): Likewise.
34023 (cbranchsi4_real_ge): Likewise.
34024 (cbranchsi4_real_ge): Likewise.
34025 * config/rl78/rl78-virt.md (add<mode>3_virt): Likewise.
34026 (sub<mode>3_virt): Likewise.
34027 (cbranchqi4_virt): Likewise.
34028 (cbranchhi4_virt): Likewise.
34029 * config/rl78/rl78.c (rl78_print_operand_1): 'p' modifier means
34030 always use '[reg+imm]' even when imm is zero.
34031 * config/rl78/predicates.md (rl78_volatile_memory_operand): New.
34032 (rl78_general_operand): New.
34033 (rl78_nonimmediate_operand): New.
34034 (rl78_nonfar_operand): Use them.
34035 (rl78_nonfar_nonimm_operand): Likewise.
34036 (rl78_stack_based_mem): Fix.
34037 * config/rl78/constraints.md (Ibqi): New.
34038 (IBqi): New.
34039 (Wsa): New.
34040 (Wsf): New.
34041 (Cs1): Fix.
34042 * config/rl78/rl78-expand.md (andqi3): Accept volatiles.
34043 (iorqi3): Likewise.
34044 (xorqi3): Likewise.
34045 * config/rl78/rl78-protos.h (rl78_sfr_p): New.
34046
34047 * config/rl78/constrains (Qs8): New constraint.
34048 * config/rl78/rl78.c (rl78_flags_already_set): New function.
34049 * config/rl78/rl78-protos.h (rl78_flags_already_set): New prototype.
34050 * config/rl78/rl78-real.md (update_Z): New attribute.
34051 Update patterns to set it.
34052 (cbranchqi4_real): Call rl78_flags_already_set() to determine if a
34053 shorter compare and branch sequence can be used.
34054 (cbranchhi4_real): Likewise.
34055 (cbranchhi4_real_inverted): Likewise.
34056
34057 * config/rl78/predicates.md (uword_operand): Allow symbol_refs.
34058 * config/rl78/rl78-c.c (rl78_register_pragmas): Register __near
34059 address space.
34060 * config/rl78/rl78.c (rl78_get_name_encoding): New.
34061 (rl78_option_override): Allow -mes0 only if C.
34062 (characterize_address): Support subregs of symbol_refs.
34063 (rl78_addr_space_address_mode): Move. Add __near.
34064 (rl78_far_p): Likewise.
34065 (rl78_addr_space_pointer_mode): Likewise.
34066 (rl78_as_legitimate_address): Likewise.
34067 (rl78_addr_space_subset_p): Likewise.
34068 (rl78_addr_space_convert): Likewise.
34069 (rl78_print_operand_1): Support 16-bit addressing of 32-bit
34070 symbols with -mes0.
34071 (transcode_memory_rtx): Don't copy ES if -mes0. Allow symbol[BC]
34072 addressing.
34073 (rl78_alloc_physical_registers_op1): Change logic to prefer
34074 symbol[BC] addressing.
34075 (frodata_section): New.
34076 (rl78_asm_init_sections): Initialize it.
34077 (rl78_select_section): Put __far readonly symbols in .frodata.
34078 (rl78_make_type_far): New.
34079 (rl78_insert_attributes): Force all readonly symbols to be
34080 __far when -mes0.
34081 (rl78_asm_out_integer): New.
34082 * config/rl78/rl78.h (ADDR_SPACE_NEAR): New.
34083 * config/rl78/rl78.opt (-mes0): New.
34084
34085 * config/rl78/rl78.h (ASM_OUTPUT_LABELREF): New.
34086 (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
34087 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
34088 * config/rl78/rl78-protos.h (rl78_output_labelref): New.
34089 (rl78_saddr_p): New.
34090 (rl78_output_aligned_common): New.
34091 * config/rl78/rl78.c (rl78_output_symbol_ref): Strip encodings.
34092 (rl78_handle_saddr_attribute): New.
34093 (rl78_handle_naked_attribute): New.
34094 (rl78_attribute_table): Add saddr.
34095 (rl78_print_operand_1): Don't print '!' on saddr operands.
34096 (rl78_print_operand_1): Strip encodings.
34097 (rl78_sfr_p): New.
34098 (rl78_strip_name_encoding): New.
34099 (rl78_attrlist_to_encoding): New.
34100 (rl78_encode_section_info): New.
34101 (rl78_asm_init_sections): New.
34102 (rl78_select_section): New.
34103 (rl78_output_labelref): New.
34104 (rl78_output_aligned_common): New.
34105 (rl78_asm_out_integer): New.
34106 (rl78_asm_ctor_dtor): New.
34107 (rl78_asm_constructor): New.
34108 (rl78_asm_destructor): New.
34109
34110 * config/rl78/rl78-real.md (movqi_es): Rename to movqi_to_es.
34111 * config/rl78/rl78.c (rl78_expand_epilogue): Update.
34112 (transcode_memory_rtx): Update.
34113 (rl78_expand_epilogue): Use A_REG instead of 0.
34114
34115 2015-01-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
34116
34117 * config/arm/arm-protos.h (struct tune_params): New field
34118 sched_autopref_queue_depth.
34119 * config/arm/arm.c (sched-int.h): Include header.
34120 (arm_first_cycle_multipass_dfa_lookahead_guard,)
34121 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define hook.
34122 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,)
34123 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,)
34124 (arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,)
34125 (arm_cortex_a53_tune, arm_cortex_a57_tune, arm_xgene1_tune,)
34126 (arm_cortex_a5_tune, arm_cortex_a9_tune, arm_cortex_a12_tune,)
34127 (arm_v7m_tune, arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune):
34128 Specify sched_autopref_queue_depth value. Enabled for A15 and A57.
34129 * config/arm/t-arm (arm.o): Update.
34130 * haifa-sched.c (update_insn_after_change): Update.
34131 (rank_for_schedule): Use auto-prefetcher model, if requested.
34132 (autopref_multipass_init): New static function.
34133 (autopref_rank_for_schedule): New rank_for_schedule heuristic.
34134 (autopref_multipass_dfa_lookahead_guard_started_dump_p): New static
34135 variable for debug dumps.
34136 (autopref_multipass_dfa_lookahead_guard_1): New static helper function.
34137 (autopref_multipass_dfa_lookahead_guard): New global function that
34138 implements TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD hook.
34139 (init_h_i_d): Update.
34140 * params.def (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH): New tuning knob.
34141 * sched-int.h (enum autopref_multipass_data_status): New const enum.
34142 (autopref_multipass_data_): Structure for auto-prefetcher data.
34143 (autopref_multipass_data_def, autopref_multipass_data_t): New typedefs.
34144 (struct _haifa_insn_data:autopref_multipass_data): New field.
34145 (INSN_AUTOPREF_MULTIPASS_DATA): New access macro.
34146 (autopref_multipass_dfa_lookahead_guard): Declare.
34147
34148 2015-01-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
34149
34150 * rtlanal.c (get_base_term): Handle SCRATCH.
34151
34152 2015-01-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
34153
34154 * config/aarch64/aarch64.c
34155 (aarch64_sched_first_cycle_multipass_dfa_lookahead): Implement hook.
34156 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
34157 * config/arm/arm.c
34158 (arm_first_cycle_multipass_dfa_lookahead): Implement hook.
34159 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
34160
34161 2015-01-17 Alan Modra <amodra@gmail.com>
34162
34163 * cprop.c (do_local_cprop): Disallow replacement of fixed
34164 hard registers.
34165
34166 2015-01-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34167
34168 PR target/62066
34169 * config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
34170 early return 0.
34171
34172 2015-01-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
34173
34174 * sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
34175 * tsan.c (instrument_expr): Fixed parameters of __tsan_vptr_update.
34176
34177 2015-01-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34178
34179 * config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
34180 * config/arm/thumb1.md: ... Here.
34181
34182 2015-01-16 Segher Boessenkool <segher@kernel.crashing.org>
34183
34184 * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
34185 TImode for TARGET_32BIT.
34186
34187 2015-01-16 Segher Boessenkool <segher@kernel.crashing.org>
34188
34189 * config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
34190 TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
34191 as ...
34192 (rs6000_abi_word_mode): New function.
34193
34194 2015-01-16 Segher Boessenkool <segher@kernel.crashing.org>
34195
34196 * config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD
34197 instead of UNITS_PER_WORD to describe the size of stack slots.
34198
34199 2015-01-16 Segher Boessenkool <segher@kernel.crashing.org>
34200
34201 * config/rs6000/rs6000.c (TARGET_PROMOTE_FUNCTION_MODE): Implement
34202 as rs6000_promote_function_mode. Move comment to there.
34203 (rs6000_promote_function_mode): New function.
34204
34205 2015-01-16 Segher Boessenkool <segher@kernel.crashing.org>
34206
34207 * config/rs6000/rs6000.h (PROMOTE_MODE): Correct test for when -m32
34208 -mpowerpc64 is active.
34209
34210 2015-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
34211
34212 PR middle-end/64353
34213 * tree-cfg.c (pass_data_fixup_cfg): Update SSA for
34214 virtuals on start.
34215
34216 2015-01-16 James Greenhalgh <james.greenhalgh@arm.com>
34217
34218 * config/arm/cortex-a57.md: Remove duplicate of file accidentally
34219 introduced in revision 219724.
34220
34221 2015-01-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34222 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
34223
34224 PR target/64263
34225 * config/aarch64/aarch64.md (*movsi_aarch64): Don't split if the
34226 destination is not a GP reg.
34227 (*movdi_aarch64): Likewise.
34228
34229 2015-01-16 David Edelsohn <dje.gcc@gmail.com>
34230
34231 PR target/64623
34232 * config/rs6000/default64.h: Revert ISA change.
34233
34234 2015-01-16 Richard Biener <rguenther@suse.de>
34235
34236 PR middle-end/64614
34237 * tree-ssa-uninit.c: Include tree-cfg.h.
34238 (MAX_SWITCH_CASES): New define.
34239 (convert_control_dep_chain_into_preds): Handle switch statements.
34240 (is_pred_expr_subset_of): Handle x == CST vs. (x & CST) != 0.
34241 (normalize_one_pred_1): Do not split bit-manipulations.
34242 Record (x & CST).
34243
34244 2015-01-16 Richard Biener <rguenther@suse.de>
34245
34246 PR tree-optimization/64568
34247 * tree-ssa-forwprop.c (pass_forwprop::execute): Guard
34248 complex load rewriting for TARGET_MEM_REFs.
34249
34250 2015-01-16 Uros Bizjak <ubizjak@gmail.com>
34251
34252 * builtins.c (expand_builtin_acc_on_device): Check target for NULL.
34253
34254 2015-01-16 Matthew Wahab <matthew.wahab@arm.com>
34255
34256 PR target/64149
34257 * config/aarch64/aarch64.opt: Remove lra option and aarch64_lra_flag
34258 variable.
34259 * config/aarch64/aarch64.c (TARGET_LRA_P): Set to hook_bool_void_true.
34260 (aarch64_lra_p): Remove.
34261
34262 2015-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
34263
34264 PR target/64363
34265 * ipa-chkp.h (chkp_instrumentable_p): New.
34266 * ipa-chkp.c: Include tree-inline.h.
34267 (chkp_instrumentable_p): New.
34268 (chkp_maybe_create_clone): Use chkp_instrumentable_p.
34269 Fix processing of not instrumentable functions.
34270 (chkp_versioning): Use chkp_instrumentable_p. Warn about
34271 not instrumentable functions.
34272 * tree-chkp.c (chkp_add_bounds_to_call_stmt): Use
34273 chkp_instrumentable_p.
34274 * tree-inline.h (copy_forbidden): New.
34275 * tree-inline.c (copy_forbidden): Not static anymore.
34276
34277 2015-01-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
34278
34279 * optc-save-gen.awk (cl_target_option_print_diff): Mark indent,
34280 ptr1, ptr2 unused.
34281
34282 2015-01-16 Robert Suchanek <robert.suchanek@imgtec.com>
34283
34284 * lra-constraints.c (curr_insn_transform): Change a reload pseudo of
34285 type OP_OUT to OP_INOUT.
34286
34287 2015-01-16 Robert Suchanek <robert.suchanek@imgtec.com>
34288
34289 * simplify-rtx.c (simplify_replace_fn_rtx): Simplify (lo_sum
34290 (high x) y) to y if x and y have the same base.
34291
34292 2015-01-16 James Greenhalgh <james.greenhalgh@arm.com>
34293
34294 * config/arm/cortex-a57.md: New.
34295 * config/aarch64/aarch64.md: Include it.
34296 * config/aarch64/aarch64-cores.def (cortex-a57): Tune for it.
34297 * config/aarch64/aarch64-tune.md: Regenerate.
34298
34299 2015-01-16 Zhenqiang Chen <zhenqiang.chen@arm.com>
34300
34301 PR target/64015
34302 * ccmp.c (expand_ccmp_next): New function.
34303 (expand_ccmp_expr_1, expand_ccmp_expr): Handle operand insn sequence
34304 and compare insn sequence.
34305 * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
34306 aarch64_gen_ccmp_first, aarch64_gen_ccmp_next): New functions.
34307 (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New MICRO.
34308 * config/aarch64/aarch64.md (*ccmp_and): Changed to ccmp_and<mode>.
34309 (*ccmp_ior): Changed to ccmp_ior<mode>.
34310 (cmp<mode>): New pattern.
34311 * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Update
34312 parameters.
34313 * target.def (gen_ccmp_first, gen_ccmp_next): Update parameters.
34314
34315 2015-01-16 Ilya Tocar <ilya.tocar@intel.com>
34316
34317 * config/i386/avx2intrin.h (_mm256_bslli_epi128,
34318 _mm256_bsrli_epi128): New.
34319 * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
34320
34321 2015-01-15 Jiong Wang <jiong.wang@arm.com>
34322
34323 * expmed.c (store_bit_field_using_insv): Improve warning message.
34324 Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED.
34325
34326 2015-01-15 Jiong Wang <jiong.wang@arm.com>
34327
34328 PR rtl-optimization/64011
34329 * expmed.c (store_bit_field_using_insv): Warn and truncate bitsize when
34330 there is partial overflow.
34331
34332 2015-01-16 Chung-Ju Wu <jasonwucj@gmail.com>
34333
34334 * config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
34335 prototype.
34336 (nds32_expand_epilogue_v3pop): Likewise.
34337 * config/nds32/nds32.md (sibcall): Define this for sibling call
34338 optimization.
34339 (sibcall_register): Likewise.
34340 (sibcall_immediate): Likewise.
34341 (sibcall_value): Likewise.
34342 (sibcall_value_register): Likewise.
34343 (sibcall_value_immediate): Likewise.
34344 (sibcall_epilogue): Likewise.
34345 (epilogue): Pass false to indicate this is not a sibcall epilogue.
34346 * config/nds32/nds32.c (nds32_expand_epilogue): Consider sibcall case.
34347 (nds32_expand_epilogue_v3pop): Likewise.
34348
34349 2015-01-16 Chung-Ju Wu <jasonwucj@gmail.com>
34350
34351 * config/nds32/nds32-protos.h (nds32_can_use_return_insn): New.
34352 * config/nds32/nds32.md (unspec_volatile_func_return): Remove.
34353 (return_internal): New.
34354 (return): Define this named pattern.
34355 (simple_return): Define this named pattern.
34356 * config/nds32/nds32.c (nds32_expand_epilogue): Emit return_internal
34357 pattern instead of unspec_volatile_func_return.
34358 (nds32_expand_epilogue_v3pop): Likewise.
34359 (nds32_can_use_return_insn): New function.
34360
34361 2015-01-16 Chung-Ju Wu <jasonwucj@gmail.com>
34362
34363 * config/nds32/constants.md (UNSPEC_VOLATILE_POP25_RETURN): New.
34364 * config/nds32/nds32.md (pop25return): New.
34365 * config/nds32/nds32.c (nds32_expand_epilogue_v3pop): Emit
34366 pop25return pattern.
34367
34368 2015-01-16 Chung-Ju Wu <jasonwucj@gmail.com>
34369
34370 * doc/invoke.texi (NDS32 Options): Remove -mforce-fp-as-gp,
34371 -mforbid-fp-as-gp, and -mex9 options.
34372
34373 2015-01-16 Chung-Ju Wu <jasonwucj@gmail.com>
34374
34375 * doc/invoke.texi (NDS32 Options): Add -mcmodel= option and
34376 remove -mgp-direct option.
34377
34378 2015-01-15 Jan Hubicka <hubicka@ucw.cz>
34379
34380 * doc/invoke.texi (--param early-inlining-insns): Update default value.
34381 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 14.
34382
34383 2015-01-15 Jan Hubicka <hubicka@ucw.cz>
34384
34385 * ipa-inline.c (inline_small_functions): Work around hints
34386 cache issue.
34387
34388 2015-01-15 Sandra Loosemore <sandra@codesourcery.com>
34389
34390 PR target/59710
34391 * doc/invoke.texi (Option Summary): Document new Nios II
34392 -mgpopt= syntax.
34393 (Nios II Options): Likewise.
34394 * config/nios2/nios2.opt: Add -mgpopt= option support.
34395 Modify existing -mgpopt and -mno-gpopt options to be aliases.
34396 * config/nios2/nios2-opts.h (enum nios2_gpopt_type): New.
34397 * config/nios2/nios2.c (nios2_option_override): Adjust
34398 -mgpopt defaulting.
34399 (nios2_in_small_data_p): Return true for explicit small data
34400 sections even with -G0.
34401 (nios2_symbol_ref_in_small_data_p): Adjust to handle new -mgpopt=
34402 option choices.
34403
34404 2015-01-15 Jan Hubicka <hubicka@ucw.cz>
34405
34406 PR ipa/64612
34407 * ipa-inline-transform.c (can_remove_node_now_p): Fix handling
34408 of comdat locals.
34409 (inline_call): Fix removal of aliases.
34410
34411 2015-01-15 Jakub Jelinek <jakub@redhat.com>
34412
34413 * flag-types.h (enum sanitize_code): Add SANITIZE_VPTR,
34414 include SANITIZE_VPTR in SANITIZE_UNDEFINED.
34415 * opts.c (common_handle_option): Add -fsanitize=vptr.
34416 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS,
34417 BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS_ABORT): New.
34418 * ubsan.h (enum ubsan_null_ckind): Add UBSAN_DOWNCAST_POINTER,
34419 UBSAN_DOWNCAST_REFERENCE, UBSAN_UPCAST and UBSAN_CAST_TO_VBASE.
34420 (ubsan_expand_vptr_ifn): New prototype.
34421 * internal-fn.c (expand_ANNOTATE, expand_GOMP_SIMD_LANE,
34422 expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE, expand_UBSAN_NULL,
34423 expand_UBSAN_BOUNDS, expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK,
34424 expand_LOOP_VECTORIZED): Make argument nameless, remove
34425 ATTRIBUTE_UNUSED.
34426 (expand_UBSAN_VPTR): New function.
34427 * internal-fn.def (UBSAN_NULL, ASAN_CHECK): Use R instead of W
34428 in fn spec.
34429 (UBSAN_VPTR): New internal function.
34430 * sanopt.c (tree_map_traits): Renamed to ...
34431 (sanopt_tree_map_traits): ... this.
34432 (sanopt_tree_triplet, sanopt_tree_triplet_map_traits): New classes.
34433 (sanopt_ctx): Adjust asan_check_map type for tree_map_traits
34434 to sanopt_tree_map_traits renaming. Add vptr_check_map field.
34435 (maybe_optimize_ubsan_vptr_ifn): New function.
34436 (sanopt_optimize_walker): Handle IFN_UBSAN_VPTR.
34437 (pass_sanopt::execute): Likewise. Call sanopt_optimize even for
34438 -fsanitize=vptr.
34439 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Handle certain
34440 internal calls like pure functions for aliasing, even when they
34441 have other side-effects that prevent making them ECF_PURE.
34442 * ubsan.c (ubsan_vptr_type_cache_decl): New variable.
34443 (ubsan_expand_vptr_ifn): New function.
34444
34445 2015-01-15 Vladimir Makarov <vmakarov@redhat.com>
34446
34447 PR rtl-optimization/64110
34448 * stmt.c (parse_output_constraint): Process '^' and '$'.
34449 (parse_input_constraint): Ditto.
34450 * lra-constraints.c (process_alt_operands): Process the new
34451 constraints.
34452 * ira-costs.c (record_reg_classes): Process the new constraint
34453 '^'.
34454 * genoutput.c (indep_constraints): Add '^' and '$'.
34455 * config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'.
34456 * doc/md.texi: Add description of the new constraints.
34457
34458 2015-01-15 Thomas Schwinge <thomas@codesourcery.com>
34459 Bernd Schmidt <bernds@codesourcery.com>
34460 Cesar Philippidis <cesar@codesourcery.com>
34461 James Norris <jnorris@codesourcery.com>
34462 Tom de Vries <tom@codesourcery.com>
34463 Ilmir Usmanov <i.usmanov@samsung.com>
34464 Dmitry Bocharnikov <dmitry.b@samsung.com>
34465 Evgeny Gavrin <e.gavrin@samsung.com>
34466 Jakub Jelinek <jakub@redhat.com>
34467
34468 * builtin-types.def (BT_FN_VOID_INT_INT_VAR)
34469 (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
34470 (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
34471 New function types.
34472 * builtins.c: Include "gomp-constants.h".
34473 (expand_builtin_acc_on_device): New function.
34474 (expand_builtin, is_inexpensive_builtin): Handle
34475 BUILT_IN_ACC_ON_DEVICE.
34476 * builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
34477 New macros.
34478 * cgraph.c (cgraph_node::create): Consider flag_openacc next to
34479 flag_openmp.
34480 * config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
34481 <*-intelmic-* | *-intelmicemul-*> (tm_file): Add
34482 i386/intelmic-offload.h.
34483 * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
34484 to libgomp and its dependencies.
34485 * config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
34486 * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
34487 * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
34488 * config/ia64/hpux.h (LIB_SPEC): Likewise.
34489 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
34490 * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
34491 * doc/generic.texi: Update for OpenACC changes.
34492 * doc/gimple.texi: Likewise.
34493 * doc/invoke.texi: Likewise.
34494 * doc/sourcebuild.texi: Likewise.
34495 * gimple-pretty-print.c (dump_gimple_omp_for): Handle
34496 GF_OMP_FOR_KIND_OACC_LOOP.
34497 (dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
34498 GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
34499 GF_OMP_TARGET_KIND_OACC_UPDATE,
34500 GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
34501 Dump more data.
34502 * gimple.c: Update comments for OpenACC changes.
34503 * gimple.def: Likewise.
34504 * gimple.h: Likewise.
34505 (enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
34506 GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
34507 GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
34508 GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
34509 (gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
34510 appropriate place.
34511 (is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
34512 * gimplify.c: Include "gomp-constants.h".
34513 Update comments for OpenACC changes.
34514 (is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
34515 OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
34516 OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
34517 (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
34518 OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
34519 OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
34520 OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
34521 OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
34522 OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
34523 OMP_CLAUSE_SEQ.
34524 (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
34525 GOMP_MAP_* instead of OMP_CLAUSE_MAP_*. Use
34526 OMP_CLAUSE_SET_MAP_KIND.
34527 (gimplify_oacc_cache): New function.
34528 (gimplify_omp_for): Handle OACC_LOOP.
34529 (gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
34530 OACC_DATA.
34531 (gimplify_omp_target_update): Handle OACC_ENTER_DATA,
34532 OACC_EXIT_DATA, OACC_UPDATE.
34533 (gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
34534 OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
34535 OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
34536 (gimplify_body): Consider flag_openacc next to flag_openmp.
34537 * lto-streamer-out.c: Include "gomp-constants.h".
34538 * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
34539 (BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
34540 (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
34541 (BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
34542 (BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
34543 (BUILT_IN_ACC_ON_DEVICE): New builtins.
34544 * omp-low.c: Include "gomp-constants.h".
34545 Update comments for OpenACC changes.
34546 (struct omp_context): Add reduction_map, gwv_below, gwv_this
34547 members.
34548 (extract_omp_for_data, use_pointer_for_field, install_var_field)
34549 (new_omp_context, delete_omp_context, scan_sharing_clauses)
34550 (create_omp_child_function, scan_omp_for, scan_omp_target)
34551 (check_omp_nesting_restrictions, lower_reduction_clauses)
34552 (build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
34553 Update for OpenACC changes.
34554 (scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
34555 OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
34556 OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
34557 OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
34558 OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
34559 OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ. Use GOMP_MAP_* instead of
34560 OMP_CLAUSE_MAP_*.
34561 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
34562 Handle GF_OMP_FOR_KIND_OACC_LOOP.
34563 (expand_omp_target, lower_omp_target): Handle
34564 GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
34565 GF_OMP_TARGET_KIND_OACC_UPDATE,
34566 GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
34567 GF_OMP_TARGET_KIND_OACC_DATA.
34568 (pass_expand_omp::execute, execute_lower_omp)
34569 (pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
34570 flag_openmp.
34571 (offload_symbol_decl): New variable.
34572 (oacc_get_reduction_array_id, oacc_max_threads)
34573 (get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
34574 (maybe_lookup_oacc_reduction, enclosing_target_ctx)
34575 (oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
34576 (oacc_gimple_assign, oacc_initialize_reduction_data)
34577 (oacc_finalize_reduction_data, oacc_process_reduction_data): New
34578 functions.
34579 (is_targetreg_ctx): Remove function.
34580 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
34581 OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
34582 OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
34583 OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
34584 OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
34585 OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
34586 * tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
34587 * tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
34588 (OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
34589 (OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
34590 (OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
34591 (OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
34592 * tree-core.h: Update comments for OpenACC changes.
34593 (enum omp_clause_map_kind): Remove.
34594 (struct tree_omp_clause): Change type of map_kind member from enum
34595 omp_clause_map_kind to unsigned char.
34596 * tree-inline.c: Update comments for OpenACC changes.
34597 * tree-nested.c: Likewise. Include "gomp-constants.h".
34598 (convert_nonlocal_reference_stmt, convert_local_reference_stmt)
34599 (convert_tramp_reference_stmt, convert_gimple_call): Update for
34600 OpenACC changes. Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*. Use
34601 OMP_CLAUSE_SET_MAP_KIND.
34602 * tree-pretty-print.c: Include "gomp-constants.h".
34603 (dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
34604 OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
34605 OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
34606 OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
34607 OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
34608 OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT. Use GOMP_MAP_*
34609 instead of OMP_CLAUSE_MAP_*.
34610 (dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
34611 OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
34612 OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
34613 * tree-streamer-in.c: Include "gomp-constants.h".
34614 (unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
34615 OMP_CLAUSE_MAP_*. Use OMP_CLAUSE_SET_MAP_KIND.
34616 * tree-streamer-out.c: Include "gomp-constants.h".
34617 (pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
34618 OMP_CLAUSE_MAP_*.
34619 * tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
34620 (OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
34621 (OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
34622 * tree.c (omp_clause_num_ops): Update accordingly.
34623 * tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
34624 Likewise.
34625 (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
34626 (OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
34627 (OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
34628 (OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
34629 (OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
34630 (OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
34631 * tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
34632 (OMP_CLAUSE_SET_MAP_KIND): New macro.
34633 * varpool.c (varpool_node::get_create): Consider flag_openacc next
34634 to flag_openmp.
34635 * config/i386/intelmic-offload.h: New file.
34636 * config/nvptx/offload.h: Likewise.
34637
34638 2015-01-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
34639
34640 * explow.h: Remove duplicate contents.
34641 * dojump.h: Likewise.
34642
34643 2015-01-15 Richard Earnshaw <rearnsha@arm.com>
34644
34645 * arm.c (arm_xgene_tune): Add default initializer for instruction
34646 fusion.
34647
34648 2015-01-15 Jan Hubicka <hubicka@ucw.cz>
34649
34650 PR ipa/64068
34651 PR ipa/64559
34652 * ipa.c (symbol_table::remove_unreachable_nodes):
34653 Do not put abstract origins into boundary.
34654
34655 2015-01-15 Evgeny Stupachenko <evstupac@gmail.com>
34656
34657 * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
34658 * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.
34659
34660 2015-01-15 Steve Ellcey <sellcey@mips.com>
34661
34662 * Makefile.in (PLUGIN_HEADERS): Add dominance.h, cfg.h, cfgrtl.h,
34663 cfganal.h, cfgbuild.h, cfgcleanup.h, lcm.h, cfgloopmanip.h,
34664 builtins.def, and chkp-builtins.def.
34665
34666 2015-01-15 David Edelsohn <dje.gcc@gmail.com>
34667
34668 * config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
34669 ISA 2.7 (POWER8).
34670
34671 2015-01-15 Richard Biener <rguenther@suse.de>
34672
34673 PR tree-optimization/61743
34674 * tree-ssa-pre.c (insert_into_preds_of_block): Preserve range
34675 information on PHIs for some simple cases.
34676
34677 2015-01-15 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
34678
34679 * config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
34680 Include xgene1.md.
34681 * config/arm/arm.c (arm_issue_rate): Specify 4 for xgene1.
34682 * config/arm/arm-cores.def (xgene1): New entry.
34683 * config/arm/arm-tables.opt: Regenerate.
34684 * config/arm/arm-tune.md: Regenerate.
34685 * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=xgene1.
34686
34687 2015-01-15 Yuri Rumyantsev <ysrumyan@gmail.com>
34688
34689 * tree-if-conv.c: Include hash-map.h.
34690 (aggressive_if_conv): New variable.
34691 (fold_build_cond_expr): Add simplification of non-zero condition.
34692 (add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
34693 destination block is not always executed.
34694 (if_convertible_phi_p): Fix commentary, allow phi nodes have more
34695 than two predecessors if AGGRESSIVE_IF_CONV is true.
34696 (if_convertible_stmt_p): Fix commentary.
34697 (all_preds_critical_p): New function.
34698 (has_pred_critical_p): New function.
34699 (if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
34700 BB can have more than two predecessors and all incoming edges can be
34701 critical.
34702 (predicate_bbs): Skip predication for loop exit block, use build2_loc
34703 to compute predicate for true edge.
34704 (find_phi_replacement_condition): Delete this function.
34705 (is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
34706 Allow interchange PHI arguments if EXTENDED is false.
34707 Change check that block containing reduction statement candidate
34708 is predecessor of phi-block since phi may have more than two arguments.
34709 (phi_args_hash_traits): New helper structure.
34710 (struct phi_args_hash_traits): New type.
34711 (phi_args_hash_traits::hash): New function.
34712 (phi_args_hash_traits::equal_keys): New function.
34713 (gen_phi_arg_condition): New function.
34714 (predicate_scalar_phi): Add handling of phi nodes with more than two
34715 arguments, delete COND and TRUE_BB arguments, insert body of
34716 find_phi_replacement_condition to predicate ordinary phi nodes.
34717 (predicate_all_scalar_phis): Skip blocks with the only predecessor,
34718 delete call of find_phi_replacement_condition and invoke
34719 predicate_scalar_phi with two arguments.
34720 (insert_gimplified_predicates): Add assert that non-predicated block
34721 don't have statements to insert.
34722 (ifcvt_split_critical_edges): New function.
34723 (ifcvt_split_def_stmt): Likewise.
34724 (ifcvt_walk_pattern_tree): Likewise.
34725 (stmt_is_root_of_bool_pattern): Likewise.
34726 (ifcvt_repair_bool_pattern): Likewise.
34727 (ifcvt_local_dce): Likewise.
34728 (tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
34729 is copy of inner or outer loop force_vectorize field, invoke
34730 ifcvt_split_critical_edges, ifcvt_local_dce and
34731 ifcvt_repair_bool_pattern for aggressive if-conversion.
34732
34733 2015-01-15 Philipp Tomsich <ptomsich@theobroma-systems.com>
34734
34735 * config/aarch64/aarch64.md: Include xgene1.md.
34736 * config/aarch64/xgene1.md: New file.
34737
34738 2015-01-15 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
34739
34740 * config/aarch64/aarch64-cores.def (xgene1): Update/add the
34741 xgene1 (APM XGene-1) core definition.
34742 * config/aarch64/aarch64.c: Add cost tables for APM XGene-1
34743 * config/arm/aarch-cost-tables.h: Add cost tables for APM XGene-1
34744 * doc/invoke.texi: Document -mcpu=xgene1.
34745
34746 2015-01-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
34747
34748 * dojump.h: New header file.
34749 * explow.h: Likewise.
34750 * expr.h: Remove includes.
34751 Move expmed.c prototypes to expmed.h.
34752 Move dojump.c prototypes to dojump.h.
34753 Move alias.c prototypes to alias.h.
34754 Move explow.c prototypes to explow.h.
34755 Move calls.c prototypes to calls.h.
34756 Move emit-rtl.c prototypes to emit-rtl.h.
34757 Move varasm.c prototypes to varasm.h.
34758 Move stmt.c prototypes to stmt.h.
34759 (saved_pending_stack_adjust): Move to dojump.h.
34760 (adjust_address): Move to explow.h.
34761 (adjust_address_nv): Move to emit-rtl.h.
34762 (adjust_bitfield_address): Likewise.
34763 (adjust_bitfield_address_size): Likewise.
34764 (adjust_bitfield_address_nv): Likewise.
34765 (adjust_automodify_address_nv): Likewise.
34766 * explow.c (expr_size): Move to expr.c.
34767 (int_expr_size): Likewise.
34768 (tree_expr_size): Likewise.
34769 Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34770 fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
34771 * genemit.c (main): Generate includes statistics.h, real.h,
34772 fixed-value.h, insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
34773 stmt.h.
34774 * genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h,
34775 function.h, statistics.h, real.h, fixed-value.h, expmed.h, dojump.h,
34776 explow.h, emit-rtl.h, stmt.h.
34777 * genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
34778 fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
34779 * genemit.c (open_base_files): Generate includes flags.h, statistics.h,
34780 real.h, fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h,
34781 emit-rtl.h, varasm.h, stmt.h.
34782 * config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h,
34783 hash-set.h, vec.h, machmode.h, tm.h, hard-reg-set.h, input.h,
34784 function.h, rtl.h, flags.h, statistics.h, double-int.h, real.h,
34785 fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h, insn-config.h,
34786 expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
34787 * config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
34788 double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
34789 function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
34790 insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
34791 tm.h tree.h varasm.h vec.h wide-int.h.
34792 * rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
34793 explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
34794 hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
34795 real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
34796 * cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h
34797 emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h
34798 insn-config.h real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
34799 * loop-iv.c: Likewise.
34800 * lra-assigns.c: Include alias.h calls.h dojump.h double-int.h
34801 emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h real.h
34802 statistics.h stmt.h tree.h varasm.h wide-int.h.
34803 * lra-constraints.c: Likewise.
34804 * lra-eliminations.c: Likewise.
34805 * lra-lives.c: Likewise.
34806 * lra-remat.c: Likewise.
34807 * bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
34808 explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
34809 statistics.h stmt.h tree.h varasm.h wide-int.h.
34810 * hw-doloop.c: Likewise.
34811 * ira-color.c: Likewise.
34812 * ira-emit.c: Likewise.
34813 * loop-doloop.c: Likewise.
34814 * loop-invariant.c: Likewise.
34815 * reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
34816 explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
34817 statistics.h stmt.h tree.h varasm.h wide-int.h.
34818 * caller-save.c: Include alias.h calls.h dojump.h double-int.h
34819 emit-rtl.h explow.h expmed.h fixed-value.h inchash.h real.h
34820 statistics.h stmt.h tree.h varasm.h wide-int.h.
34821 * combine-stack-adj.c: Likewise.
34822 * cse.c: Likewise.
34823 * ddg.c: Likewise.
34824 * ifcvt.c: Likewise.
34825 * ira-costs.c: Likewise.
34826 * jump.c: Likewise.
34827 * lra-coalesce.c: Likewise.
34828 * lra-spills.c: Likewise.
34829 * profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
34830 explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
34831 stmt.h varasm.h wide-int.h.
34832 * lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
34833 explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
34834 varasm.h.
34835 * config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
34836 double-int.h explow.h expmed.h fixed-value.h flags.h real.h
34837 statistics.h stmt.h varasm.h wide-int.h.
34838 * reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
34839 expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
34840 varasm.h wide-int.h.
34841 * reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
34842 expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
34843 * config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
34844 emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
34845 statistics.h stmt.h.
34846 * config/tilepro/tilepro.c: Likewise.
34847 * config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
34848 explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
34849 * config/pdp11/pdp11.c: Likewise.
34850 * config/xtensa/xtensa.c: Likewise.
34851 * config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
34852 explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
34853 varasm.h.
34854 * tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34855 fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
34856 insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
34857 * cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34858 fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
34859 insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
34860 * rtl-chkp.c: Likewise.
34861 * tree-chkp-opt.c: Likewise.
34862 * config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h
34863 explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
34864 hashtab.h insn-config.h real.h statistics.h stmt.h varasm.h.
34865 * ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34866 fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
34867 statistics.h stmt.h.
34868 * tree-vect-data-refs.c: Likewise.
34869 * graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
34870 expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
34871 rtl.h statistics.h stmt.h varasm.h.
34872 * internal-fn.c: Likewise.
34873 * ipa-icf-gimple.c: Likewise.
34874 * lto-section-out.c: Likewise.
34875 * tree-data-ref.c: Likewise.
34876 * tree-nested.c: Likewise.
34877 * tree-outof-ssa.c: Likewise.
34878 * tree-predcom.c: Likewise.
34879 * tree-pretty-print.c: Likewise.
34880 * tree-scalar-evolution.c: Likewise.
34881 * tree-ssa-strlen.c: Likewise.
34882 * tree-vect-loop.c: Likewise.
34883 * tree-vect-patterns.c: Likewise.
34884 * tree-vect-slp.c: Likewise.
34885 * tree-vect-stmts.c: Likewise.
34886 * tsan.c: Likewise.
34887 * targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34888 fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
34889 stmt.h.
34890 * config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
34891 expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
34892 statistics.h stmt.h varasm.h.
34893 * loop-unroll.c: Likewise.
34894 * ubsan.c: Likewise.
34895 * tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
34896 expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
34897 stmt.h varasm.h.
34898 * dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34899 fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
34900 * tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
34901 expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
34902 statistics.h stmt.h.
34903 * generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
34904 expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
34905 statistics.h stmt.h varasm.h.
34906 * gimple-match-head.c: Likewise.
34907 * lto-cgraph.c: Likewise.
34908 * lto-section-in.c: Likewise.
34909 * lto-streamer-in.c: Likewise.
34910 * lto-streamer-out.c: Likewise.
34911 * tree-affine.c: Likewise.
34912 * tree-cfg.c: Likewise.
34913 * tree-cfgcleanup.c: Likewise.
34914 * tree-if-conv.c: Likewise.
34915 * tree-into-ssa.c: Likewise.
34916 * tree-ssa-alias.c: Likewise.
34917 * tree-ssa-copyrename.c: Likewise.
34918 * tree-ssa-dse.c: Likewise.
34919 * tree-ssa-forwprop.c: Likewise.
34920 * tree-ssa-live.c: Likewise.
34921 * tree-ssa-math-opts.c: Likewise.
34922 * tree-ssa-pre.c: Likewise.
34923 * tree-ssa-sccvn.c: Likewise.
34924 * tree-tailcall.c: Likewise.
34925 * tree-vect-generic.c: Likewise.
34926 * tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34927 fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
34928 * stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34929 fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
34930 * varasm.c: Likewise.
34931 * coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34932 fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
34933 varasm.h.
34934 * init-regs.c: Likewise.
34935 * ira.c: Likewise.
34936 * omp-low.c: Likewise.
34937 * stack-ptr-mod.c: Likewise.
34938 * tree-ssa-reassoc.c: Likewise.
34939 * tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34940 fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
34941 varasm.h.
34942 * dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34943 fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
34944 * shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34945 fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
34946 * recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34947 fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
34948 * tree-ssa-phiopt.c: Likewise.
34949 * config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34950 fixed-value.h hashtab.h real.h statistics.h stmt.h.
34951 * config/fr30/fr30.c: Likewise.
34952 * config/frv/frv.c: Likewise.
34953 * expr.c: Likewise.
34954 * final.c: Likewise.
34955 * optabs.c: Likewise.
34956 * passes.c: Likewise.
34957 * simplify-rtx.c: Likewise.
34958 * stmt.c: Likewise.
34959 * toplev.c: Likewise.
34960 * var-tracking.c: Likewise.
34961 * gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34962 fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
34963 * lower-subreg.c: Likewise.
34964 * postreload-gcse.c: Likewise.
34965 * ree.c: Likewise.
34966 * reginfo.c: Likewise.
34967 * store-motion.c: Likewise.
34968 * combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34969 fixed-value.h hashtab.h real.h stmt.h varasm.h.
34970 * emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34971 fixed-value.h hashtab.h statistics.h stmt.h.
34972 * dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34973 fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
34974 * except.c: Likewise.
34975 * explow.c: Likewise.
34976 * tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34977 fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
34978 varasm.h.
34979 * gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34980 fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
34981 * tree-ssa-structalias.c: Likewise.
34982 * cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34983 fixed-value.h insn-config.h real.h statistics.h.
34984 * calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34985 fixed-value.h insn-config.h real.h statistics.h stmt.h.
34986 * bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34987 fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
34988 * cfgbuild.c: Likewise.
34989 * function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34990 fixed-value.h real.h rtl.h statistics.h stmt.h.
34991 * cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34992 fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
34993 * dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34994 fixed-value.h real.h statistics.h stmt.h.
34995 * auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
34996 fixed-value.h real.h statistics.h stmt.h varasm.h.
34997 * cprop.c: Likewise.
34998 * modulo-sched.c: Likewise.
34999 * postreload.c: Likewise.
35000 * ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
35001 flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
35002 statistics.h stmt.h varasm.h.
35003 * gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
35004 explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
35005 rtl.h statistics.h stmt.h varasm.h.
35006 * tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
35007 fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
35008 varasm.h.
35009 * expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
35010 function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
35011 varasm.h.
35012 * target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
35013 fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
35014 varasm.h.
35015 * tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
35016 fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
35017 * cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
35018 function.h real.h statistics.h stmt.h varasm.h.
35019 * alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
35020 insn-config.h real.h statistics.h stmt.h.
35021 * dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
35022 statistics.h stmt.h.
35023 * config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
35024 fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
35025 statistics.h stmt.h varasm.h.
35026 * gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h
35027 fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
35028 * asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
35029 flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
35030 * ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
35031 fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
35032 statistics.h stmt.h varasm.h.
35033 * ipa-polymorphic-call.c: Likewise.
35034 * config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h
35035 expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
35036 statistics.h stmt.h.
35037 * config/c6x/c6x.c: Likewise.
35038 * config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h
35039 explow.h expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
35040 statistics.h stmt.h varasm.h.
35041 * ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h
35042 fixed-value.h hashtab.h insn-config.h real.h rtl.h statistics.h
35043 stmt.h varasm.h.
35044 * ipa-split.c: Likewise.
35045 * tree-eh.c: Likewise.
35046 * tree-ssa-dce.c: Likewise.
35047 * tree-ssa-loop-niter.c: Likewise.
35048 * tree-vrp.c: Likewise.
35049 * config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
35050 expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
35051 stmt.h.
35052 * config/nds32/nds32-fp-as-gp.c: Likewise.
35053 * config/nds32/nds32-intrinsic.c: Likewise.
35054 * config/nds32/nds32-isr.c: Likewise.
35055 * config/nds32/nds32-md-auxiliary.c: Likewise.
35056 * config/nds32/nds32-memory-manipulation.c: Likewise.
35057 * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
35058 * config/nds32/nds32-predicates.c: Likewise.
35059 * config/nds32/nds32.c: Likewise.
35060 * config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
35061 fixed-value.h hashtab.h real.h statistics.h.
35062 * config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
35063 fixed-value.h hashtab.h real.h statistics.h stmt.h.
35064 * config/arm/arm.c: Likewise.
35065 * config/avr/avr.c: Likewise.
35066 * config/bfin/bfin.c: Likewise.
35067 * config/h8300/h8300.c: Likewise.
35068 * config/i386/i386.c: Likewise.
35069 * config/ia64/ia64.c: Likewise.
35070 * config/iq2000/iq2000.c: Likewise.
35071 * config/m32c/m32c.c: Likewise.
35072 * config/m32r/m32r.c: Likewise.
35073 * config/m68k/m68k.c: Likewise.
35074 * config/mcore/mcore.c: Likewise.
35075 * config/mep/mep.c: Likewise.
35076 * config/mips/mips.c: Likewise.
35077 * config/mn10300/mn10300.c: Likewise.
35078 * config/moxie/moxie.c: Likewise.
35079 * config/pa/pa.c: Likewise.
35080 * config/rl78/rl78.c: Likewise.
35081 * config/rx/rx.c: Likewise.
35082 * config/s390/s390.c: Likewise.
35083 * config/sh/sh.c: Likewise.
35084 * config/sparc/sparc.c: Likewise.
35085 * config/spu/spu.c: Likewise.
35086 * config/stormy16/stormy16.c: Likewise.
35087 * config/v850/v850.c: Likewise.
35088 * config/vax/vax.c: Likewise.
35089 * config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
35090 fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
35091 * config/msp430/msp430.c: Likewise.
35092 * predict.c: Likewise.
35093 * value-prof.c: Likewise.
35094 * config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
35095 expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
35096 * config/microblaze/microblaze.c: Likewise.
35097 * config/nios2/nios2.c: Likewise.
35098 * config/rs6000/rs6000.c: Likewise.
35099 * tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
35100 insn-config.h real.h rtl.h statistics.h stmt.h.
35101 * cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
35102 insn-config.h real.h statistics.h stmt.h.
35103 * fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
35104 fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
35105 * tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
35106 fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
35107 * builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h
35108 fixed-value.h real.h statistics.h stmt.h.
35109 * config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
35110 fixed-value.h statistics.h stmt.h.
35111 * config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
35112 stmt.h.
35113
35114 2015-01-15 Jakub Jelinek <jakub@redhat.com>
35115
35116 * gengtype.c (create_user_defined_type): Workaround
35117 -Wmaybe-uninitialized false positives.
35118 * cse.c (fold_rtx): Likewise.
35119 * loop-invariant.c (gain_for_invariant): Likewise.
35120
35121 2015-01-15 Eric Botcazou <ebotcazou@adacore.com>
35122
35123 * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
35124 set the memory attributes in all cases but clear MEM_EXPR if need be.
35125
35126 2015-01-15 Yuri Rumyantsev <ysrumyan@gmail.com>
35127
35128 PR tree-optimization/64434
35129 * cfgexpand.c (reorder_operands): New function.
35130 (expand_gimple_basic_block): Insert call of reorder_operands if
35131 optimized is true.
35132
35133 2015-01-15 Matthew Fortune <matthew.fortune@imgtec.com>
35134
35135 * config/mips/micromips.md (*swp): Remove explicit parallel.
35136 (jraddiusp, *movep<MOVEP1:mode><MOVEP2:mode>): Likewise.
35137 * config/mips/mips-dsp.md (add<DSPV:mode>3): Likewise.
35138 (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>, sub<DSPV:mode>3): Likewise.
35139 (mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc): Likewise.
35140 (mips_addwc, mips_absq_s_<DSPQ:dspfmt2>): Likewise.
35141 (mips_precrq_rs_ph_w, mips_precrqu_s_qb_ph): Likewise.
35142 (mips_shll_<DSPV:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>): Likewise.
35143 (mips_muleu_s_ph_qbl, mips_muleu_s_ph_qbr): Likewise.
35144 (mips_mulq_rs_ph, mips_muleq_s_w_phl, mips_muleq_s_w_phr): Likewise.
35145 (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph): Likewise.
35146 (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_s_w_phl): Likewise.
35147 (mips_maq_s_w_phr, mips_maq_sa_w_phl, mips_maq_sa_w_phr): Likewise.
35148 (mips_extr_w, mips_extr_r_w, mips_extr_rs_w): Likewise.
35149 (mips_extr_s_h, mips_extp, mips_extpdp, mips_mthlip): Likewise.
35150 (mips_wrdsp): Likewise.
35151 * config/mips/mips-dspr2.md (mips_absq_s_qb): Remove explicit
35152 parallel.
35153 (mips_addu_ph, mips_addu_s_ph, mips_cmpgdu_eq_qb): Likewise.
35154 (mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb, mulv2hi3): Likewise.
35155 (mips_mul_s_ph, mips_mulq_rs_w, mips_mulq_s_ph): Likewise.
35156 (mips_mulq_s_w, mips_subu_ph, mips_subu_s_ph): Likewise.
35157 (mips_dpaqx_s_w_ph, mips_dpaqx_sa_w_ph): Likewise.
35158 (mips_dpsqx_s_w_ph, mips_dpsqx_sa_w_ph): Likewise.
35159 * config/mips/mips-fixed.md (usadd<mode>3): Remove explicit parallel.
35160 (ssadd<mode>3, ussub<mode>3, sssub<mode>3, ssmul<mode>3): Likewise.
35161 (ssmaddsqdq4, ssmsubsqdq4): Likewise.
35162
35163 2015-01-14 Matthew Fortune <matthew.fortune@imgtec.com>
35164
35165 * config/mips/mips.c (mips_rtx_costs): Set costs for LSA/DLSA.
35166 (mips_print_operand): Support 'y' to print exact log2 in decimal
35167 of a const_int.
35168 * config/mips/mips.h (ISA_HAS_LSA): New define.
35169 (ISA_HAS_DLSA): Likewise.
35170 * config/mips/mips.md (<GPR:d>lsa): New define_insn.
35171 * config/mips/predicates.md (const_immlsa_operand): New predicate.
35172
35173 2015-01-15 Martin Liska <mliska@suse.cz>
35174
35175 PR target/64377
35176 * optc-save-gen.awk: Add support for array types.
35177
35178 2015-01-15 Richard Biener <rguenther@suse.de>
35179
35180 PR middle-end/64365
35181 * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
35182 for MEM_REF access functions with the same base can never partially
35183 overlap.
35184
35185 2015-01-14 Marcos Diaz <marcos.diaz@tallertechnologies.com>
35186
35187 * common.opt: New option -fstack-protector-explicit.
35188 * cfgexpand.c (SPCT_FLAG_EXPLICIT): New enum.
35189 (stack_protect_decl_phase): Handle stack_protect attribute for
35190 explicit stack protection requests.
35191 (expand_used_vars): Similarly.
35192 * doc/cpp.texi (__SSP_EXPLICIT__): Document predefined macro.
35193 * doc/extend.texi: Add documentation for "stack_protect" attribute.
35194 * doc/invoke.texi: Add documentation for -fstack-protector-explicit.
35195
35196 2015-01-14 Oleg Endo <olegendo@gcc.gnu.org>
35197
35198 PR target/53988
35199 * config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
35200 reg-reg copies.
35201 (sh_extending_set_of_reg): New struct.
35202 (sh_find_extending_set_of_reg, sh_split_tst_subregs,
35203 sh_remove_reg_dead_or_unused_notes): New Declarations.
35204 * config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
35205 sh_find_extending_set_of_reg, sh_split_tst_subregs,
35206 sh_extending_set_of_reg::use_as_extended_reg): New functions.
35207 * config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
35208 convert to insn_and_split and use new function sh_split_tst_subregs.
35209
35210 2015-01-14 Sandra Loosemore <sandra@codesourcery.com>
35211
35212 * doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
35213 option.
35214 (Optimization Options): Move -fuse-ld documentation to...
35215 (Link Options): ...here.
35216
35217 2015-01-14 Matthew Fortune <matthew.fortune@imgtec.com>
35218
35219 * config/mips/constraints.md (ZC): Add support for R6 LL/SC
35220 offsets.
35221 (ZD): Update to use ISA_HAS_9BIT_DISPLACEMENT.
35222 * config/mips/mips.h (ISA_HAS_PREFETCH_9BIT): Rename to...
35223 (ISA_HAS_9BIT_DISPLACEMENT): ... this. New macro.
35224 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZC
35225 instead of ZR for the memory operand of LL/SC.
35226 (compare_and_swap_12, sync_add<mode>): Likewise.
35227 (sync_<optab>_12, sync_old_<optab>_12): Likewise.
35228 (sync_new_<optab>_12, sync_nand_12): Likewise.
35229 (sync_old_nand_12, sync_new_nand_12): Likewise.
35230 (sync_sub<mode>, sync_old_add<mode>): Likewise.
35231 (sync_old_sub<mode>, sync_new_add<mode>): Likewise.
35232 (sync_new_sub<mode>, sync_<optab><mode>): Likewise.
35233 (sync_old_<optab><mode>, sync_new_<optab><mode>"): Likewise.
35234 (sync_nand<mode>, sync_old_nand<mode>): Likewise.
35235 (sync_new_nand<mode>, sync_lock_test_and_set<mode>): Likewise.
35236 (test_and_set_12, atomic_compare_and_swap<mode>): Likewise.
35237 (atomic_exchange<mode>_llsc, atomic_fetch_add<mode>_llsc): Likewise.
35238 * doc/md.texi (ZC): Update description.
35239
35240 2015-01-14 Andrew MacLeod <amacleod@redhat.com>
35241
35242 * builtins.c (expand_builtin_atomic_exchange): Remove error when
35243 memory model is CONSUME.
35244 (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
35245 expand_builtin_atomic_store): Change invalid memory model errors to
35246 warnings.
35247 (expand_builtin_atomic_clear): Change invalid model errors to warnings
35248 and issue warning for CONSUME.
35249
35250 2015-01-14 Aldy Hernandez <aldyh@redhat.com>
35251
35252 * lto-cgraph: Update function comments for
35253 lto_symtab_encoder_encode_*.
35254
35255 2015-01-14 Ilya Verbin <ilya.verbin@intel.com>
35256
35257 * Makefile.in (site.exp): Do not set ENABLE_LTO.
35258
35259 2015-01-14 Ilya Verbin <ilya.verbin@intel.com>
35260
35261 * cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
35262 * lto-cgraph.c (select_what_to_stream): Remove argument, use
35263 lto_stream_offload_p instead.
35264 * lto-streamer.h (select_what_to_stream): Remove argument.
35265 * passes.c (ipa_write_summaries): Likewise.
35266 * tree-pass.h (ipa_write_summaries): Likewise.
35267
35268 2015-01-14 Richard Biener <rguenther@suse.de>
35269
35270 PR tree-optimization/59354
35271 * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
35272 groups larger than the slp group size as having gaps.
35273
35274 2015-01-14 Andrew MacLeod <amacleod@redhat.com>
35275
35276 PR middle-end/59448
35277 * builtins.c (get_memmodel): Promote consume to acquire always.
35278
35279 2015-01-14 Ilya Tocar <ilya.tocar@intel.com>
35280
35281 PR target/64386
35282 * config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
35283 V32HImode.
35284
35285 2015-01-14 Ilya Tocar <ilya.tocar@intel.com>
35286
35287 PR target/64393
35288 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
35289 Enable AVX512BW.
35290 (OPTION_MASK_ISA_AVX512BW_UNSET): Disable AVX512VBMI.
35291 * config/i386/i386.c (ix86_hard_regno_mode_ok): Don't check
35292 AVX512VBMI, as it implies AVX512BW.
35293
35294 2015-01-14 Ilya Tocar <ilya.tocar@intel.com>
35295
35296 PR target/64387
35297 * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
35298 (vec_unpacks_hi_v16sf): Ditto.
35299
35300 2015-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
35301
35302 * config/aarch64/arm_neon.h: Error out if AdvancedSIMD
35303 is not available.
35304
35305 2015-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
35306
35307 * doc/invoke.texi (mapcs): Mention deprecation.
35308 (mapcs-frame): Likewise.
35309
35310 2015-01-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
35311
35312 PR target/64453
35313 * config/arm/arm.c (callee_saved_reg_p): Define.
35314 (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
35315 register is callee saved instead of !call_used_regs[reg].
35316 (thumb1_compute_save_reg_mask): Likewise.
35317
35318 2015-01-14 Hale Wang <hale.wang@arm.com>
35319
35320 * config/arm/arm.c: Tune the max_cond_insns/branch_cost for
35321 Cortex-M7.
35322
35323 2015-01-14 Richard Biener <rguenther@suse.de>
35324
35325 PR lto/64415
35326 * tree-inline.c (insert_debug_decl_map): Check destination
35327 function MAY_HAVE_DEBUG_STMTS.
35328 (insert_init_debug_bind): Likewise.
35329 (insert_init_stmt): Remove redundant check.
35330 (remap_gimple_stmt): Drop debug stmts if the destination
35331 function has var-tracking assignments disabled.
35332
35333 2015-01-14 Martin Liska <mliska@suse.cz>
35334
35335 * ipa-icf-gimple.c (func_checker::compare_operand): Add support for
35336 IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.
35337
35338 2015-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
35339
35340 PR target/64460
35341 * config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
35342 (*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.
35343
35344 2015-01-14 Matthew Fortune <matthew.fortune@imgtec.com>
35345
35346 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Only infer an ISA
35347 level from an ARCH; do not inject the default.
35348 (MIPS_DEFAULT_ISA_LEVEL_SPEC): New macro split out from
35349 MIPS_ISA_LEVEL_SPEC.
35350 (MIPS_ISA_NAN2008_SPEC): Update comment.
35351 (BASE_DRIVER_SELF_SPECS): Likewise.
35352 * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add
35353 MIPS_DEFAULT_ISA_LEVEL_SPEC.
35354 * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Likewise.
35355 * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise.
35356 * config/mips/sde.h (DRIVER_SELF_SPECS): Likewise.
35357
35358 2015-01-14 Richard Biener <rguenther@suse.de>
35359
35360 PR tree-optimization/64493
35361 PR tree-optimization/64495
35362 * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
35363 assign the proper vectorized PHI to the inner loop exit PHIs.
35364
35365 2015-01-14 Joey Ye <joey.ye@arm.com>
35366
35367 * config/arm/arm.c (arm_compute_save_reg_mask):
35368 Do not save lr in case of tail call.
35369 * config/arm/thumb2.md (*thumb2_pop_single): New pattern.
35370
35371 2015-01-14 Martin Uecker <uecker@eecs.berkeley.edu>
35372
35373 * tree-vrp.c (check_array_ref): Emit more warnings
35374 for warn_array_bounds >= 2.
35375 * common.opt: New option -Warray-bounds=.
35376 * doc/invoke.texi: Document -Warray-bounds=.
35377
35378 2015-01-14 Chung-Ju Wu <jasonwucj@gmail.com>
35379
35380 * config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
35381 (mforbid-fp-as-gp): Remove.
35382 (mex9): Remove.
35383 * config/nds32/nds32-fp-as-gp.c (nds32_have_prologue_p): Remove.
35384 (nds32_symbol_load_store_p): Remove.
35385 (nds32_fp_as_gp_check_available): Clean up implementation.
35386 * config/nds32/nds32.h (LINK_SPEC): Remove -mforce-as-gp and -mex9
35387 cases.
35388 * config/nds32/nds32.c (nds32_asm_file_start): No need to consider
35389 fp-as-gp and ex9 cases.
35390
35391 2015-01-13 Jan Hubicka <hubicka@ucw.cz>
35392
35393 * tree-profile.c (init_ic_make_global_vars): Drop workaround
35394 for bintuils bug 14342.
35395 (init_ic_make_global_vars): Likewise.
35396 (gimple_init_edge_profiler): Likewise.
35397 (gimple_gen_ic_func_profiler): Likewise.
35398
35399 2015-01-13 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
35400
35401 * ipa-inline.c (inline_small_functions): Swap the operands in
35402 enum.
35403
35404 2015-01-13 Jan Hubicka <hubicka@ucw.cz>
35405
35406 PR ipa/64481
35407 * ipa-inline-analysis.c (node_growth_cache): Remove.
35408 (initialize_growth_caches): Do not initialize it.
35409 (free_growth_caches): Do not free it.
35410 (do_estimate_growth): Rename to ...
35411 (estimate_growth): ... this one; drop growth cache code.
35412 (growth_likely_positive): Always go the heuristics way.
35413 * ipa-inline.c (can_inline_edge_p): Walk through aliases.
35414 (reset_edge_caches): Do not reset node growth.
35415 (heap_edge_removal_hook): Do not maintain cache.
35416 (inline_small_functions): Likewise; strenghten sanity check.
35417 (ipa_inline): Do not maintain caches.
35418 * ipa-inline.h (node_growth_cache): Remove.
35419 (do_estimate_growth): Remove to ...
35420 (estimate_growth): this one; remove inline version.
35421 (reset_node_growth_cache): Remove.
35422
35423 2015-01-13 Jan Hubicka <hubicka@ucw.cz>
35424
35425 PR ipa/64565
35426 * ipa-inline.c (inline_small_functions): Update callee keys after
35427 resolving speculation
35428 (inline_small_functions): Always check monotonicity of the queue.
35429
35430 2015-01-13 Marek Polacek <polacek@redhat.com>
35431
35432 PR middle-end/64391
35433 * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
35434
35435 2015-01-13 Jakub Jelinek <jakub@redhat.com>
35436
35437 PR rtl-optimization/64286
35438 * ree.c (combine_reaching_defs): Move part of comment earlier,
35439 remove !SCALAR_INT_MODE_P check.
35440 (add_removable_extension): Don't add vector mode
35441 extensions if all uses of the source register aren't the same
35442 vector extensions.
35443
35444 2015-01-13 Renlin Li <renlin.li@arm.com>
35445
35446 * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
35447 (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
35448
35449 2015-01-13 Martin Liska <mliska@suse.cz>
35450
35451 * ipa-icf.c (sem_function::equals_private): Call new functions
35452 cl_target_option_print_diff and cl_optimization_print_diff.
35453 * optc-save-gen.awk (cl_target_option_print_diff): New function.
35454 (cl_optimization_print_diff): Likewise.
35455 * opth-gen.awk: Likewise.
35456
35457 2015-01-13 Richard Sandiford <richard.sandiford@arm.com>
35458
35459 * config/aarch64/aarch64.md (subsi3, *subsi3_uxtw, subdi3)
35460 (*sub_<optab><ALLX:mode>_<GPI:mode>, *sub_<optab><SHORT:mode>_si_uxtw)
35461 (*sub_<optab><ALLX:mode>_shft_<GPI:mode>)
35462 (*sub_<optab><SHORT:mode>_shft_si_uxtw, *sub_<optab><mode>_multp2)
35463 (*sub_<optab>si_multp2_uxtw, *sub_uxt<mode>_multp2)
35464 (*sub_uxtsi_multp2_uxtw): Add stack pointer sources.
35465
35466 2015-01-13 Andrew Pinski <apinski@cavium.com>
35467
35468 * config/aarch64/aarch64.c (fusion_load_store): Check dest mode
35469 instead of src mode.
35470
35471 2015-01-13 Richard Biener <rguenther@suse.de>
35472
35473 PR lto/64373
35474 * lto-streamer-out.c (tree_is_indexable): Guard for NULL
35475 DECL_CONTEXT.
35476
35477 2015-01-13 Andrew Pinski <apinski@cavium.com>
35478
35479 * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
35480 volatile mems.
35481 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
35482
35483 2015-01-13 Jakub Jelinek <jakub@redhat.com>
35484
35485 PR middle-end/63974
35486 * cfgexpand.c (expand_computed_goto): Don't call
35487 convert_memory_address here.
35488
35489 2015-01-13 Richard Biener <rguenther@suse.de>
35490
35491 PR tree-optimization/64406
35492 * tree-loop-distibution.c (pass_loop_distribution::execute):
35493 Reset the SCEV hashtable if we distributed anything.
35494
35495 2015-01-13 Richard Biener <rguenther@suse.de>
35496
35497 PR tree-optimization/64404
35498 * tree-vect-stmts.c (vectorizable_load): Reject conflicting
35499 SLP types for CSEd loads.
35500
35501 2015-01-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
35502
35503 PR tree-optimization/64436
35504 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Move code performing the
35505 merge of two symbolic numbers for a bitwise OR to ...
35506 (perform_symbolic_merge): This. Also fix computation of the range and
35507 end of the symbolic number corresponding to the result of a bitwise OR.
35508
35509 2015-01-13 Richard Biener <rguenther@suse.de>
35510
35511 PR tree-optimization/64568
35512 * tree-ssa-forwprop.c (pass_forwprop::execute): Properly
35513 release defs of removed stmts, avoid splitting TARGET_MEM_REFs.
35514
35515 2015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
35516
35517 * config/nds32/nds32.c (nds32_legitimate_address_p): Consider
35518 TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.
35519
35520 2015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
35521
35522 * config/nds32/nds32.h (NDS32_SYMBOL_FLAG_RODATA): Define our own
35523 target-specific symbol_ref flag.
35524 (NDS32_SYMBOL_REF_RODATA_P): Define it to check if the symbol_ref
35525 resides in rodata section.
35526 * config/nds32/nds32.c (TARGET_ENCODE_SECTION_INFO): Define.
35527 (nds32_encode_section_info): New function.
35528
35529 2015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
35530
35531 * config/nds32/nds32.md (call): Use pseudo instruction bal which
35532 clobbers TA_REGNUM if large code model is specified.
35533 (call_register): Likewise.
35534 (call_immediate): Likewise.
35535 (call_value): Likewise.
35536 (call_value_register): Likewise.
35537 (call_value_immediate): Likewise.
35538
35539 2015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
35540
35541 * config/nds32/nds32.h (TARGET_CMODEL_SMALL): New macro.
35542 (TARGET_CMODEL_MEDIUM): New macro.
35543 (TARGET_CMODEL_LARGE): New macro.
35544 * config/nds32/nds32.c (nds32_asm_file_start): Display corresponding
35545 code model setting in assembly code.
35546
35547 2015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
35548
35549 * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
35550 Remove MASK_GP_DIRECT flag.
35551 * config/nds32/nds32.h (MULTILIB_DEFAULTS): Have -mcmodel=medium as
35552 one of the multilib default options.
35553 * config/nds32/nds32.opt (mgp-direct): Remove.
35554 * config/nds32/t-mlibs (MULTILIB_OPTIONS): Use -mcmodel instead of
35555 -mgp-direct. We also remove unnecessary -mlittle-endian/-mbig-endian.
35556
35557 2015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
35558
35559 * config/nds32/nds32.opt (mcmodel): Add new option.
35560 * config/nds32/nds32-opts.h (nds32_cmodel_type): Add new enum type
35561 to describe code model.
35562
35563 2015-01-13 Oleg Endo <olegendo@gcc.gnu.org>
35564
35565 PR target/64479
35566 * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
35567
35568 2015-01-12 Kaz Kojima <kkojima@gcc.gnu.org>
35569
35570 * config/sh/sh.c (sh_atomic_assign_expand_fenv): New function.
35571 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
35572 (sh_builtin_get_fpscr, sh_builtin_set_fpscr): New variables.
35573 (sh_init_builtins): Record decls for __builtin_sh_get_fpscr and
35574 __builtin_sh_set_fpscr.
35575
35576 2015-01-12 Sandra Loosemore <sandra@codesourcery.com>
35577
35578 * doc/invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses
35579 after a funtion name just to indicate it is a function.
35580 ([-fsanitize-undefined-trap-on-error]): Likewise.
35581 ([-fdbg-cnt=]): Likewise.
35582 ([-mmemcpy]): Likewise.
35583 ([-mflush-func]): Likewise.
35584 ([-msynci]): Likewise.
35585
35586 2015-01-12 Sandra Loosemore <sandra@codesourcery.com>
35587
35588 * doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
35589 example.
35590
35591 2015-01-12 Jakub Jelinek <jakub@redhat.com>
35592
35593 PR tree-optimization/64563
35594 * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
35595 instead of != VR_VARYING.
35596
35597 PR target/64513
35598 * config/i386/i386.c (ix86_expand_prologue): Add
35599 REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
35600
35601 PR tree-optimization/64454
35602 * tree-vrp.c (simplify_div_or_mod_using_ranges): Optimize
35603 op0 % op1 into op0 if op0 is in range [-op1 + 1, op1 - 1]
35604 for signed or [0, op1 - 1] for unsigned modulo.
35605 (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
35606 even if op1 does not satisfy integer_pow2p.
35607
35608 PR other/64370
35609 * sreal.c (sreal::to_double): Use ldexp instead of scalbnl.
35610
35611 2015-01-12 Jeff Law <law@redhat.com>
35612
35613 PR target/64461
35614 * config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
35615 (trunchiqi2, truncsihi2): Similarly.
35616
35617 * config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
35618 rather than calling F.
35619
35620 2015-01-12 Bernd Edlinger <bernd.edlinger@hotmail.de>
35621
35622 * tsan.c (instrument_expr): Use force_gimple_operand.
35623 Use may_be_nonaddressable_p instead of is_gimple_addressable.
35624
35625 2015-01-12 Richard Biener <rguenther@suse.de>
35626
35627 PR tree-optimization/64530
35628 * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
35629 back dr1.
35630
35631 2015-01-12 Richard Biener <rguenther@suse.de>
35632
35633 PR middle-end/64357
35634 * tree-cfg.c (gimple_can_merge_blocks_p): Protect simple
35635 latches properly.
35636
35637 2015-01-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
35638
35639 * config/arm/arm.c (arm_cortex_a12_tune): Update entries to match
35640 Cortex-A17 tuning parameters.
35641 * config/arm/arm-cores.def (cortex-a12): Schedule for cortex-a17.
35642
35643 2015-01-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
35644
35645 * config/arm/arm-protos.h (tune_params): Add fuseable_ops field.
35646 * config/arm/arm.c (arm_macro_fusion_p): New function.
35647 (arm_macro_fusion_pair_p): Likewise.
35648 (TARGET_SCHED_MACRO_FUSION_P): Define.
35649 (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
35650 (ARM_FUSE_NOTHING): Likewise.
35651 (ARM_FUSE_MOVW_MOVT): Likewise.
35652 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
35653 arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
35654 arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
35655 arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
35656 arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
35657 arm_cortex_a5_tune): Specify fuseable_ops value.
35658
35659 2015-01-12 H.J. Lu <hongjiu.lu@intel.com>
35660
35661 PR bootstrap/64561
35662 * configure.ac (HAVE_LD_PIE_COPYRELOC): Update Linux/x86-64 linker
35663 test for PIE with copy reloc.
35664 * configure: Regenerated.
35665
35666 2015-01-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
35667
35668 * config/arm/arm.c (arm_load_tp): Use R0_REGNUM instead of constant 0
35669 in gen_rtx_REG.
35670 (arm_tls_descseq_addr): Likewise.
35671 (arm_gen_movmemqi): Likewise.
35672 (arm_expand_epilogue_apcs_frame): Likewise.
35673 (arm_expand_epilogue): Likewise.
35674 (arm_expand_prologue): Likewise. Use R1_REGNUM instead of constant 1
35675 in gen_rtx_REG.
35676
35677 2015-01-12 Martin Liska <mliska@suse.cz>
35678
35679 PR ipa/64550
35680 * ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare
35681 volatility for correct operands.
35682
35683 2015-01-12 Martin Liska <mliska@suse.cz>
35684
35685 * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as
35686 indication that a function is not leaf.
35687 (sem_function::compare_polymorphic_p): Likewise.
35688
35689 2015-01-12 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
35690
35691 * config/visium/visium.c: Add includes hashtab.h, hash-set.h,
35692 machmode.h, input.h, statistics.h, vec.h, double-int.h, real.h,
35693 fixed-value.h, alias.h, symtab.h, tree-core.h, wide-int.h, inchash.h,
35694 fold-const.h, tree-check.h.
35695
35696 2015-01-12 Jan Hubicka <hubicka@ucw.cz>
35697
35698 PR ipa/63967
35699 PR ipa/64425
35700 * ipa-inline.c (compute_uninlined_call_time,
35701 compute_inlined_call_time): Use counts for extra precision when
35702 needed possible.
35703 (big_speedup_p): Fix formating.
35704 (RELATIVE_TIME_BENEFIT_RANGE): Remove.
35705 (relative_time_benefit): Remove.
35706 (edge_badness): Turn DECL_DISREGARD_INLINE_LIMITS into hint;
35707 merge guessed and read profile paths.
35708 (inline_small_functions): Count only !optimize_size functions into
35709 initial size; be more lax about sanity check when profile is used;
35710 be sure to update inlined function profile when profile is read.
35711
35712 2015-01-12 Jan Hubicka <hubicka@ucw.cz>
35713
35714 PR ipa/63470
35715 * ipa-inline-analysis.c (inline_edge_duplication_hook): Adjust
35716 cost when edge becomes direct.
35717 * ipa-prop.c (make_edge_direct): Do not adjust when speculation
35718 is resolved or when introducing new speculation.
35719
35720 2015-01-12 Chen Gang <gang.chen.5i5j@gmail.com>
35721
35722 PR ipa/64551
35723 PR ipa/64552
35724 * ipa-icf.c (sem_function::equals_private): Use '&&' instead of
35725 '||' to fix typo issue.
35726
35727 * tree.h (target_opts_for_fn): Check NULL_TREE since it can
35728 accept and return NULL.
35729
35730 2015-01-12 Martin Liska <mliska@suse.cz>
35731
35732 * cgraph.c (cgraph_edge::remove_callee): Move function to header
35733 file for being inlined.
35734 (cgraph_set_edge_callee): Delete.
35735 (cgraph_edge::redirect_callee): Move function to header file
35736 for being inlined.
35737 (cgraph_edge::make_direct): Use new function.
35738 (cgraph_edge::dump_edge_flags): New function created from
35739 static dump_edge_flags function.
35740 (cgraph_node::dump): Use new function.
35741 (cgraph_edge::verify_count_and_frequency): New function created
35742 from verify_edge_count_and_frequency.
35743 (cgraph_edge::verify_corresponds_to_fndecl): New function created
35744 from verify_edge_corresponds_to_fndecl.
35745 (verify_edge_corresponds_to_fndecl): Delete.
35746 (cgraph_node::verify_node): Use new function.
35747 * cgraph.h (cgraph_edge::set_callee): New function.
35748 (cgraph_edge::dump_edge_flags): Likewise.
35749 (cgraph_edge::verify_corresponds_to_fndecl): Likewise.
35750
35751 2015-01-11 Jan Hubicka <hubicka@ucw.cz>
35752
35753 * ipa-utils.c (estimate_function_body_sizes): Do not
35754 free node params when called late with early=true.
35755
35756 2015-01-11 James Greenhalgh <james.greenhalgh@arm.com>
35757
35758 * doc/md.texi (Instruction Patterns): Rewrite text for
35759 clarity.
35760 (Example): Likewise.
35761
35762 2015-01-10 Sandra Loosemore <sandra@codesourcery.com>
35763
35764 * doc/invoke.texi (Option Summary): Break long lines.
35765 [(-fdiagnostics-color)]: Put long literal in @smallexample
35766 instead of inline.
35767 [(-fsanitize-recover)]: Likewise.
35768 [(-fdump-rtl-split*)]: Rewrite to fix over-full hbox.
35769 [(-ffast-math)]: Likewise.
35770 [(--param max-inline-insns-recursive)]: Likewise.
35771 [(--param max-inline-recursive-depth)]: Likewise.
35772 [(-mno-text-section-literals)]: Likewise.
35773
35774 2015-01-10 Thomas Schwinge <thomas@codesourcery.com>
35775
35776 * doc/install.texi: Update for libgomp being renamed from "GNU
35777 OpenMP Runtime Library" to "GNU Offloading and Multi Processing
35778 Runtime Library".
35779 * doc/sourcebuild.texi: Likewise.
35780
35781 2015-01-10 Anthony Green <green@moxielogic.com>
35782
35783 * config/moxie/moxie.c (moxie_option_override): Fix forcing of
35784 mul.x availability for moxiebox configuration.
35785
35786 2015-01-09 Anthony Green <green@moxielogic.com>
35787
35788 * config/moxie/moxie.md: Tabify assembly output.
35789
35790 2015-01-09 Anthony Green <green@moxielogic.com>
35791
35792 * config/moxie/moxie.md (CC_REG): Correct register definition.
35793
35794 2015-01-09 Sandra Loosemore <sandra@codesourcery.com>
35795
35796 * doc/invoke.texi ([-fvtable-verify]): Copy-edit and fix markup.
35797 ([-fvtv-debug], [-fvtv-counts]): Likewise. Correct location
35798 of log files.
35799
35800 2015-01-09 Andreas Tobler <andreast@gcc.gnu.org>
35801
35802 * config/arm/arm.h (MAX_SYNC_LIBFUNC_SIZE): Delete semicolon.
35803
35804 2015-01-09 Bernd Schmidt <bernds@codesourcery.com>
35805 Jakub Jelinek <jakub@redhat.com>
35806
35807 PR middle-end/64412
35808 * lto-streamer.h (lto_stream_offload_p): New declaration.
35809 * lto-streamer.c (lto_stream_offload_p): New variable.
35810 * cgraphunit.c (ipa_passes): Set lto_stream_offload_p
35811 at the same time as section_name_prefix.
35812 * lto-streamer-out.c (hash_tree): Don't hash TREE_TARGET_OPTION
35813 if lto_stream_offload_p.
35814 * tree-streamer-out.c (streamer_pack_tree_bitfields): Don't
35815 stream TREE_TARGET_OPTION if lto_stream_offload_p.
35816 (write_ts_function_decl_tree_pointers): Don't
35817 stream DECL_FUNCTION_SPECIFIC_TARGET if lto_stream_offload_p.
35818 * tree-streamer-in.c (unpack_value_fields): Don't stream
35819 TREE_TARGET_OPTION in if ACCEL_COMPILER.
35820 (lto_input_ts_function_decl_tree_pointers): Don't stream
35821 DECL_FUNCTION_SPECIFIC_TARGET in if ACCEL_COMPILER.
35822 * lto-opts.c (lto_write_options): Use lto_stream_offload_p
35823 instead of section_name_prefix string comparisons.
35824
35825 2015-01-09 Jakub Jelinek <jakub@redhat.com>
35826
35827 PR rtl-optimization/64536
35828 * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
35829 tablejumps.
35830
35831 2015-01-09 Michael Collison <michael.collison@linaro.org>
35832
35833 PR tree-optimization/64322
35834 * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
35835 range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
35836
35837 2015-01-09 Tom de Vries <tom@codesourcery.com>
35838
35839 PR rtl-optimization/64539
35840 * regcprop.c (kill_clobbered_values): Factor out of ...
35841 (copyprop_hardreg_forward_1): ... here. Use kill_clobbered_values
35842 instead of note_stores with kill_clobbered_value.
35843
35844 2015-01-09 Andreas Tobler <andreast@gcc.gnu.org>
35845
35846 * ginclude/unwind-arm-common.h: Revert previous commit.
35847
35848 2015-01-09 Andreas Tobler <andreast@gcc.gnu.org>
35849
35850 * config.gcc (arm*-*-freebsd*): New configuration.
35851 * config/arm/freebsd.h: New file.
35852 * config.host: Add extra components for arm*-*-freebsd*.
35853 * config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
35854 * config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.
35855
35856 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
35857
35858 * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
35859 for -mcpu=e6500.
35860 * config/rs6000/t-rtems: Add e6500 multilibs.
35861
35862 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
35863
35864 * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
35865 MPC8540.
35866
35867 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
35868
35869 * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
35870 MULTILIB_EXCEPTIONS.
35871
35872 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
35873
35874 * config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
35875 MULTILIB_EXCEPTIONS.
35876
35877 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
35878
35879 * config/arm/t-rtems-eabi: Rename to...
35880 * config/arm/t-rtems: ...this.
35881 * config/arm/rtems-eabi.h: Rename to...
35882 * config/arm/rtems.h: ...this.
35883 * config.gcc (arm*-*-rtems*): Reflect changes above.
35884
35885 2015-01-09 Richard Biener <rguenther@suse.de>
35886
35887 PR tree-optimization/64410
35888 * tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
35889 on the LHS.
35890 (execute_update_addresses_taken): Deal with that.
35891 * tree-ssa-forwprop.c (pass_forwprop::execute): Use component-wise
35892 loads/stores for complex variables.
35893
35894 2015-01-09 Martin Liska <mliska@suse.cz>
35895
35896 * ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
35897 name comparison.
35898 (func_checker::compare_memory_operand): New function.
35899 (func_checker::compare_operand): Split case to newly
35900 added functions.
35901 (func_checker::compare_cst_or_decl): New function.
35902 (func_checker::compare_gimple_call): Identify
35903 memory operands.
35904 (func_checker::compare_gimple_assign): Likewise.
35905 * ipa-icf-gimple.h: New function.
35906
35907 2015-01-09 Martin Liska <mliska@suse.cz>
35908
35909 PR ipa/64503
35910 * sreal.c (sreal::dump): Change unsigned format to signed for
35911 m_exp value.
35912 (sreal::to_double): Replace exp2 with scalbln.
35913
35914 2015-01-09 Martin Liska <mliska@suse.cz>
35915
35916 * cgraphunit.c (cgraph_node::create_wrapper): Fix level of indentation.
35917 * ipa-icf.c (sem_function::equals_private): Add support for target and
35918 (sem_item_optimizer::merge_classes): Remove redundant function
35919 optimization flags comparison.
35920 * tree.h (target_opts_for_fn): New function.
35921
35922 2015-01-09 Tom de Vries <tom@codesourcery.com>
35923
35924 * omp-low.c (expand_omp_for_static_chunk): Fix assert.
35925
35926 2015-01-09 Kito Cheng <kito@0xlab.org>
35927
35928 PR rtl-optimization/64348
35929 * lra-constraints.c (split_reg): Fix caller-save store/restore
35930 instruction generation.
35931
35932 2015-01-08 John David Anglin <danglin@gcc.gnu.org>
35933
35934 PR gcov-profile/61790
35935 * gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
35936 long long. Fallback to int64_t if host doesn't have long long and
35937 use strtol if int64_t is long. Otherwise, use sscanf for conversion.
35938
35939 2015-01-08 Jakub Jelinek <jakub@redhat.com>
35940
35941 PR tree-optimization/63989
35942 * params.def (PARAM_MAX_TRACKED_STRLENS): Increment default
35943 from 1000 to 10000.
35944 * tree-ssa-strlen.c (get_strinfo): Moved earlier.
35945 (get_stridx): If we don't have a record for certain SSA_NAME,
35946 but it is POINTER_PLUS_EXPR of some SSA_NAME we do with
35947 constant offset, call get_stridx_plus_constant.
35948 (get_stridx_plus_constant): New function.
35949 (zero_length_string): Don't use get_stridx here.
35950
35951 PR target/55023
35952 PR middle-end/64388
35953 * dse.c (struct insn_info): Mention frame_read set also
35954 before reload for tail calls on some targets.
35955 (scan_insn): Revert 2014-12-22 change. Set frame_read
35956 also before reload for tail calls if
35957 HARD_FRAME_POINTER_IS_ARG_POINTER. Call add_wild_read
35958 instead of add_non_frame_wild_read for non-const/memset
35959 tail calls after reload.
35960
35961 2015-01-08 Jason Merrill <jason@redhat.com>
35962
35963 * ubsan.c (do_ubsan_in_current_function): New.
35964 (pass_ubsan::gate): Use it.
35965 * ubsan.h: Declare it.
35966 * convert.c (convert_to_integer): Use it.
35967
35968 2015-01-08 Jakub Jelinek <jakub@redhat.com>
35969
35970 PR target/64338
35971 * config/i386/i386.c (ix86_expand_int_movcc): Don't reverse
35972 compare_code when it is unconditionally overwritten afterwards.
35973 Use ix86_reverse_condition instead of reverse_condition. Don't
35974 change code if *reverse_condition* returned UNKNOWN and don't
35975 swap ct/cf and negate diff in that case.
35976
35977 2015-01-08 Mike Stump <mikestump@comcast.net>
35978
35979 * tsan.c (pass_tsan::gate): Add no_sanitize_thread support.
35980 (pass_tsan_O0::gate): Likewise.
35981 * extend.texi (Function Attributes): Add no_sanitize_thread
35982 documentation.
35983
35984 2015-01-08 Thomas Schwinge <thomas@codesourcery.com>
35985
35986 * builtins.def (DEF_GOMP_BUILTIN): Also consider flag_offload_abi
35987 for registering builtins.
35988 * config/i386/intelmic-mkoffload.c (prepare_target_image): Don't
35989 add -fopenmp to the argv_obstack used when invoking
35990 compile_for_target.
35991
35992 * config/i386/intelmic-mkoffload.c (compile_for_target): Always
35993 add "-m32" or "-m64" to argv_obstack.
35994 (generate_host_descr_file): Likewise, when invoking host_compiler.
35995 (main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
35996 ld.
35997
35998 2015-01-08 Oleg Endo <olegendo@gcc.gnu.org>
35999
36000 * config/sh/sh-mem.cc: Use constant as second operand when emitting
36001 tstsi_t insns.
36002
36003 2015-01-08 Oleg Endo <olegendo@gcc.gnu.org>
36004
36005 PR target/55212
36006 * config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
36007 constant load if constant operand fits into I08.
36008
36009 2015-01-08 Jakub Jelinek <jakub@redhat.com>
36010
36011 PR sanitizer/64336
36012 * tree.c (build2_stat): Fix up initialization of TREE_READONLY
36013 and TREE_THIS_VOLATILE for MEM_REFs.
36014 (build5_stat): Fix up initialization of TREE_READONLY and
36015 TREE_THIS_VOLATILE for TARGET_MEM_REFs.
36016
36017 2015-01-08 Kaz Kojima <kkojima@gcc.gnu.org>
36018
36019 PR target/64533
36020 * config/sh/sh.md (*addsi3_compact): Use u constraint instead
36021 of r for the second alternative of the destination operand.
36022
36023 2015-01-07 Segher Boessenkool <segher@kernel.crashing.org>
36024
36025 PR target/36557
36026 * config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.
36027
36028 2015-01-07 Sandra Loosemore <sandra@codesourcery.com>
36029
36030 * doc/invoke.texi ([-fvtable-verify]): Fix markup on option
36031 keywords.
36032 ([-fivar-visibility], [-fvisibility]): Likewise.
36033
36034 2015-01-07 Sandra Loosemore <sandra@codesourcery.com>
36035
36036 * doc/invoke.texi: Fix incorrect uses of @samp markup throughout
36037 the file where @code, @command, etc is more appropriate.
36038
36039 2015-01-06 Sandra Loosemore <sandra@codesourcery.com>
36040
36041 * doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
36042 of -mrecip= documentation.
36043
36044 2015-01-06 Michael Meissner <meissner@linux.vnet.ibm.com>
36045
36046 PR target/64505
36047 * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
36048 correct reload handler if -m32 -mpowerpc64 is used.
36049
36050 2015-01-06 Tom de Vries <tom@codesourcery.com>
36051
36052 * tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.
36053
36054 2015-01-08 Christian Bruel <christian.bruel@st.com>
36055
36056 PR target/64507
36057 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
36058
36059 2015-01-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
36060
36061 PR tree-optimization/63259
36062 * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
36063 if optab exists for 16bit byteswap.
36064
36065 2015-01-06 Jakub Jelinek <jakub@redhat.com>
36066
36067 * opts.c (common_handle_option): Add support for
36068 -fno-sanitize=all and -f{,no-}sanitize-recover=all.
36069 * doc/invoke.texi: Document -fno-sanitize=all,
36070 -f{,no-}sanitize-recover=all. Document that
36071 -fsanitize=float-cast-overflow is not enabled
36072 by -fsanitize=undefined. Fix up documentation
36073 of -f{,no-}sanitize-recover.
36074
36075 2015-01-06 Eric Botcazou <ebotcazou@adacore.com>
36076
36077 * config.gcc: Add Visium support.
36078 * configure.ac: Likewise.
36079 * configure: Regenerate.
36080 * doc/extend.texi (interrupt attribute): Add Visium.
36081 * doc/invoke.texi: Document Visium options.
36082 * doc/install.texi: Document Visium target.
36083 * doc/md.texi: Document Visium constraints.
36084 * common/config/visium: New directory.
36085 * config/visium: Likewise.
36086
36087 2015-01-05 Segher Boessenkool <segher@kernel.crashing.org>
36088
36089 * simplify-rtx.c (simplify_binary_operation_1): Handle more cases
36090 for the "(and X (ior (not X) Y) -> (and X Y)" transform.
36091
36092 2015-01-05 Segher Boessenkool <segher@kernel.crashing.org>
36093
36094 * combine.c (combine_validate_cost): Do not count the cost of a
36095 split I2 twice. Do not display it twice in the dump, either.
36096
36097 2015-01-05 Sandra Loosemore <sandra@codesourcery.com>
36098
36099 Revert parts of r219199.
36100 * doc/invoke.texi ([-Wliteral-suffix]): Restore markup on
36101 <inttypes.h>.
36102 ([-Wtraditional]): Restore markup on <limits.h>.
36103
36104 2015-01-05 Trevor Saunders <tsaunders@mozilla.com>
36105
36106 PR c++/31397
36107 * doc/invoke.texi: Document -Wsuggest-override.
36108
36109 2015-01-05 Radovan Obradovic <radovan.obradovic@imgtec.com>
36110
36111 PR rtl-optimization/64287
36112 * toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
36113 (process_options): Disable flag_ipa_ra if profiling.
36114
36115 2015-01-05 Eric Botcazou <ebotcazou@adacore.com>
36116
36117 * config/nds32/nds32-peephole2.md: Do not mention define_peephole.
36118
36119 2015-01-05 Max Filippov <jcmvbkbc@gmail.com>
36120
36121 * config/xtensa/xtensa.c (hwloop_optimize, hwloop_fail,
36122 hwloop_pattern_reg, xtensa_doloop_hooks, xtensa_reorg_loops):
36123 put under #if TARGET_LOOPS guard.
36124
36125 2015-01-05 Uros Bizjak <ubizjak@gmail.com>
36126
36127 * config/i386/i386.c (output_387_binary_op): Use std::swap.
36128
36129 2015-01-05 Oleg Endo <olegendo@gcc.gnu.org>
36130
36131 * rtlanal.c (refers_to_regno_p): Change return value from int to bool.
36132 * rtl.h (refers_to_regno_p): Add overload.
36133 * cse.c: Use it.
36134 * bt-load.c: Likewise.
36135 * combine.c: Likewise.
36136 * df-scan.c: Likewise.
36137 * sched-deps.c: Likewise.
36138 * config/s390/s390.c: Likewise.
36139 * config/m32r/m32r.c: Likewise.
36140 * config/rs6000/spe.md: Likewise.
36141 * config/rs6000/rs6000.c: Likewise.
36142 * config/pa/pa.c: Likewise.
36143 * config/stormy16/stormy16.c: Likewise.
36144 * config/cris/cris.c: Likewise.
36145 * config/arc/arc.md: Likewise.
36146 * config/arc/arc.c: Likewise.
36147 * config/sh/sh.md: Likewise.
36148 * config/sh/sh.c: Likewise.
36149 * config/frv/frv.c: Likewise.
36150
36151 2015-01-05 Jakub Jelinek <jakub@redhat.com>
36152
36153 PR sanitizer/64265
36154 * gimplify.c (gimplify_function_tree): Add TSAN_FUNC_EXIT internal
36155 call as cleanup of the whole body.
36156 * internal-fn.def (TSAN_FUNC_EXIT): New internal call.
36157 * tsan.c (replace_func_exit): New function.
36158 (instrument_func_exit): Moved earlier.
36159 (instrument_memory_accesses): Adjust TSAN_FUNC_EXIT internal calls.
36160 Call instrument_func_exit if no TSAN_FUNC_EXIT internal calls have
36161 been found.
36162 (tsan_pass): Don't call instrument_func_exit.
36163 * internal-fn.c (expand_TSAN_FUNC_EXIT): New function.
36164 * tree-inline.c (copy_bb): Drop TSAN_FUNC_EXIT internal calls during
36165 inlining.
36166
36167 PR sanitizer/64344
36168 * ubsan.h (ubsan_instrument_float_cast): Add ARG argument.
36169 * ubsan.c (ubsan_instrument_float_cast): Add ARG argument, pass
36170 it to libubsan handler instead of EXPR. Fold comparisons earlier,
36171 if the result is integer_zerop, return NULL_TREE.
36172 * convert.c (convert_to_integer): Pass expr as ARG.
36173
36174 PR tree-optimization/64465
36175 * tree-inline.c (redirect_all_calls): During inlining
36176 clean up EH stmts and EH edges if redirect_call_stmt_to_callee
36177 changed the stmt to a non-throwing call.
36178
36179 2015-01-05 Sandra Loosemore <sandra@codesourcery.com>
36180
36181 * doc/invoke.texi: Fix incorrect uses of @code, @option, @samp,
36182 etc markup throughout the file.
36183
36184 2015-01-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
36185
36186 Enable experimental TSAN support for Ada.
36187 * tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.
36188
36189 2015-01-05 Jakub Jelinek <jakub@redhat.com>
36190
36191 PR tree-optimization/64494
36192 * tree-ssa-loop-im.c (move_computations_dom_walker::before_dom): Also
36193 clear SSA_NAME_ANTI_RANGE_P flag.
36194
36195 2015-01-05 Marek Polacek <polacek@redhat.com>
36196
36197 * doc/extend.texi (Arrays of Length Zero): Add missing comma.
36198
36199 2015-01-05 Jakub Jelinek <jakub@redhat.com>
36200
36201 Update copyright years.
36202
36203 * gcc.c (process_command): Update copyright notice dates.
36204 * gcov-dump.c: Ditto.
36205 * gcov.c: Ditto.
36206 * doc/cpp.texi: Bump @copying's copyright year.
36207 * doc/cppinternals.texi: Ditto.
36208 * doc/gcc.texi: Ditto.
36209 * doc/gccint.texi: Ditto.
36210 * doc/gcov.texi: Ditto.
36211 * doc/install.texi: Ditto.
36212 * doc/invoke.texi: Ditto.
36213
36214 * auto-profile.c, auto-profile.h: Fix up Copyright line.
36215
36216 2015-01-04 Sandra Loosemore <sandra@codesourcery.com>
36217
36218 * doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
36219 verb tense, etc.
36220 ([-fvtable-verify], [-fvtv-debug]): Likewise.
36221 ([-Wabi]): Likewise.
36222 ([-fmessage-length]): Likewise.
36223 ([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
36224 ([-Wno-discarded-qualifiers]): Likewise.
36225 ([-Wnodiscarded-array-qualifiers]): Likewise.
36226 ([-Wno-virtual-move-assign]): Likewise.
36227 ([-fsanitize=address], [-fsanitize=thread]): Likewise.
36228 ([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
36229 ([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
36230 ([-fsanitize-undefined-trap-on-error]): Likewise.
36231 ([-floop-interchange]): Likewise.
36232 ([-ftree-coalesce-inlined-vars]): Likewise.
36233 ([-fvect-cost-model]): Likewise.
36234 ([-flto]): Likewise.
36235 ([--param]): Likewise.
36236 (Spec Files): Likewise.
36237 ([-mstrict-align]): Likewise.
36238 ([-mfix-cortex-a53-835769]): Likewise.
36239 ([-march], [-mtune]): Likewise.
36240 ([-mpic-register]): Likewise.
36241 ([-munaligned-access]): Likewise.
36242 ([-msp8]): Likewise.
36243 (EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
36244 (AVR Built-in Macros): Likewise.
36245 ([-mpreferred-stack-boundary]): Likewise.
36246 ([-mtune-crtl]): Likewise.
36247 ([-mashf]): Likewise.
36248 ([-mmcu=]): Likewise.
36249 ([-minrt]): Likewise.
36250 ([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
36251 ([-mupper-regs]): Likewise.
36252 ([-matomic-model]): Likewise.
36253 ([-mdiv]): Likewise.
36254 ([-mzdcbranch]): Likewise.
36255 ([-mdisable-callt]): Likewise.
36256 ([-msoft-float]): Likewise.
36257 ([-m8byte-align]): Likewise.
36258 ([-fstack-reuse]): Likewise.
36259
36260 2015-01-03 Sandra Loosemore <sandra@codesourcery.com>
36261
36262 * doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):
36263 Fix markup, light copy-editing.
36264 ([-fauto-profile]): Rewrite to fix formatting and content
36265 problems.
36266
36267 2015-01-03 Sandra Loosemore <sandra@codesourcery.com>
36268
36269 * doc/invoke.texi ([-fisolate-erroneous-paths-dereference]):
36270 Copy-edit description.
36271 ([-fisolate-erroneous-paths-attribute]): Likewise.
36272 * common.opt (fisolate-erroneous-paths-dereference):
36273 Copy-edit description.
36274 (fisolate-erroneous-paths-attribute): Likewise.
36275
36276 2015-01-03 Sandra Loosemore <sandra@codesourcery.com>
36277
36278 * doc/invoke.texi ([-fsemantic-interposition]): Fix typos and
36279 tidy grammar.
36280
36281 2015-01-03 Sandra Loosemore <sandra@codesourcery.com>
36282
36283 * doc/invoke.texi ([-fplan9-extensions]): Add/fix @opindex.
36284 ([-fvtv-debug]): Likewise.
36285 ([-Wc++-compat]): Likewise.
36286 ([-Wc++11-compat]): Likewise.
36287 ([-Wc++14-compat]): Likewise.
36288 ([-Wno-sized-deallocation]): Likewise.
36289 ([-femit-class-debug-always]): Likewise.
36290 ([-femit-struct-debug-detailed]): Likewise.
36291 ([-fno-keep-inline-dllexport]): Likewise.
36292 ([-fira-algorithm]): Likewise.
36293 ([-fira-region]): Likewise.
36294 ([-flra-remat]): Likewise.
36295 ([-fipa-ra]): Likewise.
36296 ([-fhoist-adjacent-loads]): Likewise.
36297 ([-fisolate-erroneous-paths-dereference]): Likewise.
36298 ([-fisolate-erroneous-paths-attribute]): Likewise.
36299 ([-ftree-switch-conversion]): Likewise.
36300 ([-ftree-tail-merge]): Likewise.
36301 ([-ftree-loop-if-convert]): Likewise.
36302 ([-ftree-loop-if-convert-stores]): Likewise.
36303 ([-ftree-loop-distribution]): Likewise.
36304 ([-ftree-loop-distribute-patterns]): Likewise.
36305 ([-flto-compression-level]): Likewise.
36306 ([-flto-report]): Likewise.
36307 ([-flto-report-wpa]): Likewise.
36308 ([-fuse-linker-plugin]): Likewise.
36309 ([-mfix-cortex-a53-835769]): Likewise.
36310 ([-mno-fix-cortex-a53-835769]): Likewise.
36311 ([-mmmx]...[-mno-3dnow]): Remove the -mno- forms from the
36312 explicit listing; add a note to the discussion indicating they
36313 exist. Reorder table to group similar options. Add missing
36314 @opindex entries. Add @need commands throughout the table to
36315 allow it to be split across multiple pages.
36316 ([-m8bit-idiv]): Fix @opindex.
36317 ([-mavx256-split-unaligned-load]): Likewise.
36318 ([-mavx256-split-unaligned-store]): Likewise.
36319 ([-mstack-protector-guard]): Likewise.
36320 ([-mcpu=]): Likewise.
36321 ([-mcpu]): Likewise.
36322 ([-mpointer-size=]): Likewise.
36323
36324 2015-01-03 John David Anglin <danglin@gcc.gnu.org>
36325
36326 * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
36327 instead of `m' constraint. Likewise for unnamed movb comparison
36328 patterns using reg_before_reload_operand predicate.
36329 * config/pa/predicates.md (reg_before_reload_operand): Tighten
36330 predicate to reject register index and LO_SUM DLT memory forms
36331 after reload.
36332
36333 2015-01-02 Sandra Loosemore <sandra@codesourcery.com>
36334
36335 * doc/invoke.texi (Option Summary): Fix spelling of
36336 -fdevirtualize-at-ltrans.
36337 ([-fdevirtualize]): Fix markup.
36338 ([-fdevirtualize-speculatively]): Fix typo.
36339 ([-fdevirtualize-at-ltrans]): Likewise. Make description less
36340 implementor-speaky.
36341 * common.opt (fdevirtualize-at-ltrans): Likewise.
36342 * ipa-devirt.c: Fix typos in comments throughout the file.
36343 (ipa_devirt): Fix typos in format strings for dump output.
36344
36345 2015-01-02 Sandra Loosemore <sandra@codesourcery.com>
36346
36347 * doc/invoke.texi ([-fopt-info]): Fix markup, consolidate
36348 discussion of defaults, light copy-editing.
36349
36350 2015-01-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
36351
36352 * tsan.c (instrument_expr): corrected previous checkin.
36353
36354 2015-01-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
36355
36356 Instrument bit field and unaligned accesses for TSAN.
36357 * sanitizer.def (BUILT_IN_TSAN_READ_RANGE): New built-in function.
36358 (BUILT_IN_TSAN_WRITE_RANGE): New built-in function.
36359 * tsan.c (instrument_expr): Handle COMPONENT_REF and BIT_FIELD_REF.
36360 Use BUILT_IN_TSAN_READ_RANGE and BUILT_IN_TSAN_WRITE_RANGE for
36361 unaligned memory regions.
36362
36363 2015-01-01 Anthony Green <green@moxielogic.com>
36364
36365 * config/moxie/predicates.md (moxie_general_movsrc_operand):
36366 Restrict move source register offsets to 16 bits.
36367 \f
36368 Copyright (C) 2015 Free Software Foundation, Inc.
36369
36370 Copying and distribution of this file, with or without modification,
36371 are permitted in any medium without royalty provided the copyright
36372 notice and this notice are preserved.