i386.c: Use SUBREG_P predicate.
[gcc.git] / gcc / ChangeLog
1 2015-07-25 Uros Bizjak <ubizjak@gmail.com>
2
3 * config/i386/i386.c: Use SUBREG_P predicate.
4 * config/i386/i386.md: Ditto.
5 * config/i386/sse.md: Ditto.
6 * config/i386/predicates.md: Ditto.
7
8 2015-07-25 Uros Bizjak <ubizjak@gmail.com>
9
10 PR target/67004
11 * config/i386/i386.h (ADJUST_INSN_LENGTH): Use NONDEBUG_INSN_P (INSN)
12 predicate and INSN_CODE (INSN) >= 0 to check for valid instruction.
13
14 2015-07-25 Sebastian Pop <s.pop@samsung.com>
15
16 * Makefile.in: Remove use of TREEBROWSER.
17 * config.in: Regenerated.
18 * configure: Regenerated.
19 * configure.ac: Remove definition of TREEBROWSER.
20 * tree-browser.c: Removed.
21 * tree-browser.def: Removed.
22
23 2015-07-25 Sebastian Pop <s.pop@samsung.com>
24
25 * graphite-scop-detection.c: Include gimple-pretty-print.h.
26 (stmt_simple_for_scop_p): Print when a stmt is not handled in
27 Graphite.
28 (scopdet_basic_block_info): Print when a loop or bb cannot be
29 represented in Graphite.
30
31 2015-07-25 Uros Bizjak <ubizjak@gmail.com>
32
33 PR target/66648
34 * config/i386/i386.c (ix86_expand_set_or_movmem): Emit main loop
35 execution guard when min_size is less than size_needed.
36
37 2015-07-25 Sebastian Pop <s.pop@samsung.com>
38
39 * doc/install.texi: Document supported versions of ISL.
40
41 2015-07-25 Jeff Law <law@redhat.com>
42
43 Revert:
44 PR lto/66752
45 * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
46 unable to find X NE 0 in the tables, return X as the simplified
47 condition.
48 (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
49 in VISISTED_BBS, then return failure. Else add nodes from NEXT_PATH
50 to VISISTED_BBS. */
51 * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
52 after removing the control flow statement and unnecessary edges.
53
54 2015-07-25 David Edelsohn <dje.gcc@gmail.com>
55
56 Revert:
57 2015-07-23 Alexandre Oliva <aoliva@redhat.com>
58
59 PR rtl-optimization/64164
60 * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
61 * tree-ssa-copyrename.c: Removed.
62 * opts.c (default_options_table): Drop -ftree-copyrename. Add
63 -ftree-coalesce-vars.
64 * passes.def: Drop all occurrences of pass_rename_ssa_copies.
65 * common.opt (ftree-copyrename): Ignore.
66 (ftree-coalesce-inlined-vars): Likewise.
67 * doc/invoke.texi: Remove the ignored options above.
68 * gimple-expr.h (gimple_can_coalesce_p): Move declaration
69 * tree-ssa-coalesce.h: ... here.
70 * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
71 headers required by it.
72 * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
73 across variables when flag_tree_coalesce_vars. Check register
74 use and promoted modes to allow coalescing. Moved to
75 tree-ssa-coalesce.c.
76 * tree-ssa-live.c (struct tree_int_map_hasher): Move along
77 with its member functions to tree-ssa-coalesce.c.
78 (var_map_base_init): Likewise. Renamed to
79 compute_samebase_partition_bases.
80 (partition_view_normal): Drop want_bases parameter.
81 (partition_view_bitmap): Likewise.
82 * tree-ssa-live.h: Adjust declarations.
83 * tree-ssa-coalesce.c: Include explow.h.
84 (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
85 default defs at the entry point.
86 (dump_part_var_map): New.
87 (compute_optimized_partition_bases): New, called by...
88 (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
89 of compute_samebase_partition_bases. Adjust.
90 * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
91 * cfgexpand.c (leader_merge): New.
92 (get_rtl_for_parm_ssa_default_def): New.
93 (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
94 vars. Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
95 (expand_one_stack_var_at): Handle anonymous SSA_NAMEs. Drop
96 redundant MEM attr setting.
97 (expand_one_stack_var_1): Handle anonymous SSA_NAMEs. Renamed
98 from...
99 (expand_one_stack_var): ... this. New wrapper to check and
100 skip already expanded SSA partitions.
101 (record_alignment_for_reg_var): New, factored out of...
102 (expand_one_var): ... this.
103 (expand_one_ssa_partition): New.
104 (adjust_one_expanded_partition_var): New.
105 (expand_one_register_var): Check and skip already expanded SSA
106 partitions.
107 (expand_used_vars): Don't create DECLs for anonymous SSA
108 names. Expand all SSA partitions, then adjust all SSA names.
109 (pass::execute): Replace the loops that set
110 SA.partition_to_pseudo from partition leaders and cleared
111 DECL_RTL for multi-location variables, and that which used to
112 rename vars and set attrs, with one that clears DECL_RTL and
113 checks that PARMs and RESULTs default_defs match DECL_RTL.
114 * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
115 * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
116 * explow.c (promote_ssa_mode): New.
117 * explow.h (promote_ssa_mode): Declare.
118 * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
119 * function.c: Include cfgexpand.h.
120 (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
121 (use_register_for_parm_decl): Wrapper for the above to
122 special-case the result_ptr.
123 (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
124 (split_complex_args): Take assign_parm_data_all argument.
125 Pass it to rtl_for_parm. Set up rtl and context for split
126 args.
127 (assign_parms_augmented_arg_list): Adjust.
128 (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
129 multiple locations. Recognize split complex args.
130 (assign_parm_adjust_stack_rtl): Add all and parm arguments,
131 for rtl_for_parm. For SSA-assigned parms, zero stack_parm.
132 (assign_parm_setup_block): Prefer SSA-assigned location.
133 (assign_parm_setup_reg): Likewise. Use entry_parm for equiv
134 if stack_parm is NULL.
135 (assign_parm_setup_stack): Prefer SSA-assigned location.
136 (assign_parms): Maybe reset DECL_RTL of params. Adjust stack
137 rtl before testing for pointer bounds. Special-case result_ptr.
138 (expand_function_start): Maybe reset DECL_RTL of result.
139 Prefer SSA-assigned location for result and static chain.
140 Factor out DECL_RESULT and SET_DECL_RTL.
141 * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
142 anonymous SSA names. Use promote_ssa_mode.
143 (get_temp_reg): Likewise.
144 (remove_ssa_form): Adjust.
145 * stor-layout.c (layout_decl): Don't set mem attributes of
146 non-MEMs.
147 * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
148 and get its reg_usage for reg invalidation.
149 (compute_bb_dataflow): Pass it insn.
150 (emit_notes_in_bb): Likewise.
151
152 2015-07-25 Uros Bizjak <ubizjak@gmail.com>
153
154 * config/i386/i386.c (ix86_va_start): Remove
155 unneeded !TARGET_64BIT check.
156 (ix86_gimplify_va_arg): Ditto.
157
158 2015-07-24 Tom de Vries <tom@codesourcery.com>
159
160 * graphite-sese-to-poly.c (build_poly_scop): Always call
161 rewrite_commutative_reductions_out_of_ssa.
162
163 2015-07-24 Tom de Vries <tom@codesourcery.com>
164
165 * graphite-sese-to-poly.c (is_reduction_operation_p): Limit
166 flag_associative_math to FLOAT_TYPE_P. Honour
167 TYPE_OVERFLOW_WRAPS for INTEGRAL_TYPE_P. Don't allow any other types.
168
169 2015-07-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
170
171 PR c++/64079
172 * toplev.c (check_global_declaration): Use DECL_SOURCE_LOCATION
173 and "%qD" in warning_at instead of "%q+D" in warning.
174
175 2015-07-24 Uros Bizjak <ubizjak@gmail.com>
176
177 * config/i386/i386.c (ix86_call_abi_override): Call ix86_function_abi.
178 (ix86_function_abi): Cleanup.
179
180 2015-07-24 Michael Darling <darlingm@gmail.com>
181
182 PR other/66259
183 * acinclude.m4: Reflects renaming of configure.in to configure.ac
184 * configure: Likewise
185 * configure.ac: Likewise
186 * doc/install.texi: Likewise
187 * doc/tm.texi: Likewise
188 * doc/tm.texi.in: Likewise
189
190 2015-07-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
191
192 * alias.c (nonoverlapping_memrefs_p): Use std::swap instead of
193 manually swapping values.
194 * cse.c (fold_rtx): Likewise.
195 * lra-eliminations.c (form_sum): Likewise.
196
197 2015-07-24 Uros Bizjak <ubizjak@gmail.com>
198
199 PR target/64003
200 * config/i386/i386.h (ADJUST_INSN_LENGTH): New define.
201 * config/i386/i386.md (maybe_prefix_bnd): New attribute.
202 (*jcc_1, *jcc_2, jump, simple_return_internal)
203 (simple_return_pop_internal): Set attribute maybe_prefix_bnd.
204 Set length_nobnd attribute instead of length attribute.
205 (indirect_jump, *tablejump_1): Set attribute maybe_prefix_bnd.
206 (length_nobnd): Remove attribute.
207 (length): Remove length_nobnd processing.
208
209 2015-07-24 Nathan Sidwell <nathan@codesourcery.com>
210
211 * gimplify.c (omp_default_clause): New function. Reorganize flow
212 for clarity. Broken out of ...
213 (omp_notice_variable): ... here.
214
215 2015-07-24 Gary Funck <gary@intrepid.com>
216
217 PR middle-end/66984
218 * fold-const.c (fold_binary_loc): Call fold_convert on arguments to
219 fold_build2 for CEIL_DIV_EXPR and FLOOR_DIV_EXPR optimization.
220
221 2015-07-24 Tom de Vries <tom@codesourcery.com>
222
223 * tree-parloops.c (gen_parallel_loop): Add debug print for alternative
224 exit-first loop transform.
225
226 2015-07-24 Cesar Philippidis <cesar@codesourcery.com>
227
228 PR 66714
229 * tree-cfg.c (struct replace_decls_d): New struct.
230 (replace_block_vars_by_duplicates_1): New function.
231 (replace_block_vars_by_duplicates): Use it to replace the decls
232 in the value exprs by duplicates.
233
234 2015-07-24 Szabolcs Nagy <szabolcs.nagy@arm.com>
235
236 * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Handle -h, -static,
237 -shared, -symbolic, -rdynamic.
238
239 2015-07-24 Szabolcs Nagy <szabolcs.nagy@arm.com>
240
241 PR target/65711
242 * config/aarch64/aarch64-linux.h (LINUX_TARGET_LINK_SPEC): Move
243 -dynamic-linker within %{!static %{!shared, and -rdynamic within
244 %{!static.
245
246 2015-07-24 Ilya Enkovich <enkovich.gnu@gmail.com>
247
248 PR ipa/66566
249 * ipa-inline-analysis.c (estimate_calls_size_and_time): Check
250 edge summary is available.
251
252 2015-07-24 Richard Biener <rguenther@suse.de>
253
254 * genmatch.c (struct dt_node): Add statistic fields.
255 (dt_node::analyze): New method.
256 (decision_tree::gen_gimple): Call analyze on the root node
257 and print statistics to stderr.
258 (decision_tree::gen_generic): Likewise.
259
260 2015-07-24 Richard Biener <rguenther@suse.de>
261
262 * fold-const.c (fold_binary_loc): Move simplifying of comparisons
263 against the highest or lowest possible integer ...
264 * match.pd: ... as patterns here.
265
266 2015-07-24 Richard Biener <rguenther@suse.de>
267
268 * genmatch.c (struct capture_info): Add same_as field.
269 (capture_info::capture_info): Initialize same_as.
270 (capture_info::walk_match): Compute same_as.
271 (capture_info::walk_result): Compute stuff for the leader.
272 (capture_info::walk_c_expr): Likewise.
273 (dt_simplify::gen_1): Only look at leaders when deciding
274 to force no side-effects or emit side-effects of omitted operands.
275
276 2015-07-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
277
278 * config/s390/s390.c (s390_save_gprs_to_fprs): Add CFA_REGISTER
279 reg note to the GPR -> FPR save instructions.
280
281 2015-07-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
282
283 * config/s390/s390.c (s390_rtx_costs): Make risbg patterns
284 cheaper.
285 (s390_expand_insv): Don't generate risbg pattern for constant zero
286 sources.
287 * config/s390/s390.md ("*insv<mode>_zEC12_appendbitsleft")
288 ("*insv<mode>_z10_appendbitsleft"): New pattern definitions. New
289 splitters.
290
291 2015-07-24 Dominik Vogt <vogt@linux.vnet.ibm.com>
292
293 * config/s390/s390.c (s390_reorg): Clean up handling of processors
294 with
295 -mtune=
296 (s390_issue_rate): Likewise.
297 (s390_sched_reorder): Likewise.
298 (s390_sched_variable_issue): Likewise.
299 (s390_loop_unroll_adjust): Likewise.
300 (s390_option_override): Likewise.
301
302 2015-07-24 Dominik Vogt <vogt@linux.vnet.ibm.com>
303
304 * config/s390/driver-native.c (s390_host_detect_local_cpu): Handle
305 processor capabilities with -march=native.
306 * config/s390/s390.h (MARCH_MTUNE_NATIVE_SPECS): Likewise.
307 (DRIVER_SELF_SPECS): Likewise. Join specs for 31 and 64 bit.
308 (S390_TARGET_BITS_STRING): Macro to simplify specs.
309
310 2015-07-24 Dominik Vogt <vogt@linux.vnet.ibm.com>
311
312 * config/s390/s390.c (s390_issue_rate): Handle
313 PROCESSOR_2094_Z9_EC.
314 (s390_option_override): Likewise.
315 (s390_adjust_priority): Likewise.
316
317 2015-07-24 Dominik Vogt <vogt@linux.vnet.ibm.com>
318
319 * config/s390/s390.h: S390: Do not define EXTRA_SPEC_FUNCTIONS
320 when cross compiling.
321
322 2015-07-24 Richard Biener <rguenther@suse.de>
323
324 * fold-const.c (maybe_canonicalize_comparison_1): Move
325 A code CST canonicalization ...
326 * match.pd: ... to a pattern here.
327
328 2015-07-24 Jiong Wang <jiong.wang@arm.com>
329
330 Revert:
331 2015-07-22 Jiong Wang <jiong.wang@arm.com>
332 PR target/63521
333 * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
334 (HONOR_REG_ALLOC_ORDER): Define.
335
336 2015-07-24 Richard Biener <rguenther@suse.de>
337
338 * genmatch.c (add_operator): Allow SSA_NAME as predicate.
339 * fold-const.c (fold_comparison): Move parameter does not
340 alias &local simplification ...
341 * match.pd: ... as a pattern here.
342
343 2015-07-24 Richard Biener <rguenther@suse.de>
344
345 * gimple-fold.c (replace_stmt_with_simplification): Special-case
346 valueizing call operands.
347 * gimple-match-head.c (maybe_push_res_to_seq): Take
348 number of call arguments from ops array.
349 (do_valueize): New function.
350 (gimple_simplify): Return true if valueization changed
351 any operand even if the result didn't simplify further.
352
353 2015-07-24 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
354
355 PR middle-end/25530
356 * match.pd (mult (trunc_div @0 integer_pow2p@1) @1) : New simplifier.
357
358 2015-07-24 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
359
360 PR middle-end/25529
361 * match.pd (trunc_div (mult @0 integer_pow2p@1) @1) : New simplifier.
362
363 2015-07-23 Kugan Vivekanandarajah <kuganv@linaro.org>
364
365 * config/arm/arm.c (arm_emit_movpair): Add REG_EQUAL notes to
366 instruction.
367
368 2015-07-23 Kugan Vivekanandarajah <kuganv@linaro.org>
369
370 * cse.c (cse_insn): Fix missing check for STRICT_LOW_PART and minor
371 clean up.
372
373 2015-07-23 Uros Bizjak <ubizjak@gmail.com>
374
375 * config/i386/i386.c (ix86_build_builtin_va_list_64): Rename
376 from ix86_build_builtin_va_list_abi. Handle only 64bit non-MS_ABI
377 targets here.
378 (ix86_build_builtin_va_list): Rewrite sysv_va_list_type_node and
379 ms_va_list_type_node initialization.
380
381 2015-07-23 Jeff Law <law@redhat.com>
382
383 PR lto/66752
384 * tree-ssa-threadedge.c (simplify_conrol_stmt_condition): If we are
385 unable to find X NE 0 in the tables, return X as the simplified
386 condition.
387 (fsm_find_control_statement_thread_paths): If nodes in NEXT_PATH are
388 in VISISTED_BBS, then return failure. Else add nodes from NEXT_PATH
389 to VISISTED_BBS. */
390 * tree-ssa-threadupdate.c (duplicate_thread_path): Fix up edge flags
391 after removing the control flow statement and unnecessary edges.
392
393 2015-07-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
394
395 * tree-pass.h (get_current_pass_name): Removed.
396
397 2015-07-23 Alexandre Oliva <aoliva@redhat.com>
398
399 PR rtl-optimization/64164
400 * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
401 * tree-ssa-copyrename.c: Removed.
402 * opts.c (default_options_table): Drop -ftree-copyrename. Add
403 -ftree-coalesce-vars.
404 * passes.def: Drop all occurrences of pass_rename_ssa_copies.
405 * common.opt (ftree-copyrename): Ignore.
406 (ftree-coalesce-inlined-vars): Likewise.
407 * doc/invoke.texi: Remove the ignored options above.
408 * gimple-expr.h (gimple_can_coalesce_p): Move declaration
409 * tree-ssa-coalesce.h: ... here.
410 * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
411 headers required by it.
412 * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
413 across variables when flag_tree_coalesce_vars. Check register
414 use and promoted modes to allow coalescing. Moved to
415 tree-ssa-coalesce.c.
416 * tree-ssa-live.c (struct tree_int_map_hasher): Move along
417 with its member functions to tree-ssa-coalesce.c.
418 (var_map_base_init): Likewise. Renamed to
419 compute_samebase_partition_bases.
420 (partition_view_normal): Drop want_bases parameter.
421 (partition_view_bitmap): Likewise.
422 * tree-ssa-live.h: Adjust declarations.
423 * tree-ssa-coalesce.c: Include explow.h.
424 (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
425 default defs at the entry point.
426 (dump_part_var_map): New.
427 (compute_optimized_partition_bases): New, called by...
428 (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
429 of compute_samebase_partition_bases. Adjust.
430 * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
431 * cfgexpand.c (leader_merge): New.
432 (get_rtl_for_parm_ssa_default_def): New.
433 (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
434 vars. Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
435 (expand_one_stack_var_at): Handle anonymous SSA_NAMEs. Drop
436 redundant MEM attr setting.
437 (expand_one_stack_var_1): Handle anonymous SSA_NAMEs. Renamed
438 from...
439 (expand_one_stack_var): ... this. New wrapper to check and
440 skip already expanded SSA partitions.
441 (record_alignment_for_reg_var): New, factored out of...
442 (expand_one_var): ... this.
443 (expand_one_ssa_partition): New.
444 (adjust_one_expanded_partition_var): New.
445 (expand_one_register_var): Check and skip already expanded SSA
446 partitions.
447 (expand_used_vars): Don't create DECLs for anonymous SSA
448 names. Expand all SSA partitions, then adjust all SSA names.
449 (pass::execute): Replace the loops that set
450 SA.partition_to_pseudo from partition leaders and cleared
451 DECL_RTL for multi-location variables, and that which used to
452 rename vars and set attrs, with one that clears DECL_RTL and
453 checks that PARMs and RESULTs default_defs match DECL_RTL.
454 * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
455 * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
456 * explow.c (promote_ssa_mode): New.
457 * explow.h (promote_ssa_mode): Declare.
458 * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
459 * function.c: Include cfgexpand.h.
460 (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
461 (use_register_for_parm_decl): Wrapper for the above to
462 special-case the result_ptr.
463 (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
464 (split_complex_args): Take assign_parm_data_all argument.
465 Pass it to rtl_for_parm. Set up rtl and context for split
466 args.
467 (assign_parms_augmented_arg_list): Adjust.
468 (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
469 multiple locations. Recognize split complex args.
470 (assign_parm_adjust_stack_rtl): Add all and parm arguments,
471 for rtl_for_parm. For SSA-assigned parms, zero stack_parm.
472 (assign_parm_setup_block): Prefer SSA-assigned location.
473 (assign_parm_setup_reg): Likewise. Use entry_parm for equiv
474 if stack_parm is NULL.
475 (assign_parm_setup_stack): Prefer SSA-assigned location.
476 (assign_parms): Maybe reset DECL_RTL of params. Adjust stack
477 rtl before testing for pointer bounds. Special-case result_ptr.
478 (expand_function_start): Maybe reset DECL_RTL of result.
479 Prefer SSA-assigned location for result and static chain.
480 Factor out DECL_RESULT and SET_DECL_RTL.
481 * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
482 anonymous SSA names. Use promote_ssa_mode.
483 (get_temp_reg): Likewise.
484 (remove_ssa_form): Adjust.
485 * stor-layout.c (layout_decl): Don't set mem attributes of
486 non-MEMs.
487 * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
488 and get its reg_usage for reg invalidation.
489 (compute_bb_dataflow): Pass it insn.
490 (emit_notes_in_bb): Likewise.
491
492 2015-07-23 Segher Boessenkool <segher@kernel.crashing.org>
493
494 PR target/66217
495 * config/rs6000/rs6000-protos.h (rs6000_emit_2insn_and): Change
496 prototype.
497 * config/rs6000/rs6000.c (rs6000_emit_dot_insn): New function.
498 (rs6000_emit_2insn_and): Handle dot forms.
499 * config/rs6000/rs6000.md (and<mode>3): Adjust.
500 (*and<mode>3_2insn): Remove TODO. Adjust. Add "type" attr.
501 (*and<mode>3_2insn_dot, *and<mode>3_2insn_dot2): New.
502
503 2015-07-23 Richard Biener <rguenther@suse.de>
504
505 * generic-match-head.c: Include cgraph.h.
506 * gimple-match-head.c: Likewise.
507 * tree-ssa-sccvn.c (free_scc_vn): Guard against newly created
508 SSA names.
509 * fold-const.c (fold_binary_loc): Move &A ==/!= &B simplification...
510 * match.pd: ...to a pattern here. Add &A ==/!= 0 simplification
511 pattern.
512
513 2015-07-23 Richard Biener <rguenther@suse.de>
514
515 * gimple-fold.c (fold_gimple_cond): Do not require folding
516 results to pass valid_gimple_rhs_p.
517 * tree-cfg.h (fold_cond_expr_cond): Remove.
518 * tree-cfg.c (fold_cond_expr_cond): Likewise.
519 (make_edges): Do not call it.
520 * tree-inline.c (tree_function_versioning): Likewise.
521
522 2015-07-23 Tom de Vries <tom@codesourcery.com>
523
524 * tree-parloops.c (gather_scalar_reductions): Add arg to call to
525 vect_force_simple_reduction.
526 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Same.
527 (vect_is_simple_reduction_1): Add and handle
528 need_wrapping_integral_overflow parameter.
529 (vect_is_simple_reduction, vect_force_simple_reduction): Add and pass
530 need_wrapping_integral_overflow parameter.
531 (vectorizable_reduction): Add arg to call to vect_is_simple_reduction.
532 * tree-vectorizer.h (vect_force_simple_reduction): Add parameter to
533 decl.
534
535 2015-07-23 Yuri Rumyantsev <ysrumyan@gmail.com>
536
537 PR tree-optimization/66926,66951
538 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Delete
539 INNER_LOOP and fix up condition for renaming virtual operands.
540
541 2015-07-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
542
543 * combine.c (try_combine): Use std::swap instead of manually
544 swapping.
545
546 2015-07-23 Prachi Godbole <prachi.godbole@imgtec.com>
547
548 * config/mips/i6400.md: New file.
549 * config/mips/mips-cpus.def (mips32r6): Change to PROCESSOR_I6400.
550 (mips64r6): Likewise.
551 (i6400): Define.
552 * config/mips/mips-tables.opt: Regenerate.
553 * config/mips/mips.c (mips_rtx_cost_data): Add I6400 processor.
554 (mips_issue_rate): Add support for i6400.
555 (mips_multipass_dfa_lookahead): Likewise.
556 * config/mips/mips.h (TUNE_I6400): Define.
557 * config/mips/mips.md: Include i6400.md.
558 (processor): Add i6400.
559 * doc/invoke.texi (-march=@var{arch}): Add i6400.
560
561 2015-07-23 Richard Biener <rguenther@suse.de>
562
563 PR middle-end/66916
564 * match.pd: Guard widen and sign-change comparison simplification
565 with single_use.
566
567 2015-07-23 Richard Biener <rguenther@suse.de>
568
569 PR tree-optimization/66945
570 * tree-ssa-propagate.c (substitute_and_fold_dom_walker
571 ::before_dom_children): Force the propagators idea of
572 non-executable edges to materialize, not what the folder
573 chooses.
574
575 2015-07-23 Richard Biener <rguenther@suse.de>
576
577 * gimple.h (gimple_cond_make_false): Use 0 != 0.
578 (gimple_cond_make_true): Use 1 != 0.
579
580 2015-07-22 DJ Delorie <dj@redhat.com>
581
582 * config/msp430/t-msp430 (MULTILIB_DIRNAMES): Remove trailing
583 slashes.
584
585 * config/msp430/msp430.md (ashlhi3): Optimize shifts of subregs.
586 (ashrhi3): Likewise.
587 (lshrhi3): Likewise.
588 (movhi): Take advantage of zero-extend to load small constants.
589 (movpsi): Likewise.
590 (and<mode>3): Likewise.
591 (zero_extendqihi2): Likewise.
592 (zero_extendqisi2): New.
593 * config/msp430/constraints.md (N,O): New.
594 * config/msp430/msp430.h (WORD_REGISTER_OPERATIONS): Define.
595
596 2015-07-22 Uros Bizjak <ubizjak@gmail.com>
597
598 PR target/66954
599 * config/i386/i386.c (get_builtin_code_for_version): Add P_AES
600 to enum feature_priority and feature_list.
601 (fold_builtin_cpu): Add F_AES to enum processor_features
602 and isa_names_table.
603
604 2015-07-22 Ilya Enkovich <enkovich.gnu@gmail.com>
605
606 PR driver/66737
607 * config/i386/linux-common.h (MPX_SPEC): Use linker option
608 for 64bit target only.
609
610 2015-07-22 Bernd Schmidt <bernds@codesourcery.com>
611
612 * config/nvptx/nvptx.c: Expand some comments.
613
614 2015-07-22 James Greenhalgh <james.greenhalgh@arm.com>
615
616 * config/arm/cortex-a53 (cortex_53_advsimd): Rename to...
617 (cortex_a53_advsimd): ...This.
618
619 2015-07-22 Richard Biener <rguenther@suse.de>
620
621 * genmatch.c (expr::gen_transform): Clarify error message
622 and display location.
623
624 2015-07-22 Richard Biener <rguenther@suse.de>
625
626 * genmatch.c (struct operand): Add location member.
627 (predicate, expr, c_expr, capture, if_expr, with_expr): Adjust
628 constructors.
629 (struct simplify): Remove match_location and result_location
630 members.
631 (elsehwere): Adjust.
632
633 2015-07-22 Prachi Godbole <prachi.godbole@imgtec.com>
634
635 * config/mips/m5100.md: New file.
636 * config/mips/mips-cpus.def (m5100, m5101): Define.
637 * config/mips/mips-tables.opt: Regenerate.
638 * config/mips/mips.c (mips_rtx_cost_data): Add costs for m5100.
639 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=m5100 and
640 -march=m5101 to -mips32r5.
641 (MIPS_ARCH_FLOAT_SPEC): Map -m5101 to -msoft-float.
642 (MIPS_ISA_NAN2008_SPEC): Map -march=m51* to -mnan=2008 if
643 !-msoft-float.
644 * config/mips/mips.md: Include m5100.md.
645 (processor): Add m5100.
646 * doc/invoke.texi (-march=@var{arch}): Add m5100, m5101.
647
648 2015-07-22 Robert Suchanek <robert.suchanek@imgtec.com>
649
650 * config/mips/mips-cpus.def (interaptiv): Define.
651 * config/mips/mips-tables.opt: Regenerate.
652 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Map -march=interaptiv to
653 -mips32r2.
654 (BASE_DRIVER_SELF_SPECS): Likewise but map to -mdsp.
655 * doc/invoke.texi (-march=@var{arch}): Add interaptiv.
656
657 2015-07-22 Jiong Wang <jiong.wang@arm.com>
658
659 PR target/63521
660 * config/aarch64/aarch64.h (REG_ALLOC_ORDER): Define.
661 (HONOR_REG_ALLOC_ORDER): Define.
662
663 2015-07-22 Richard Biener <rguenther@suse.de>
664
665 PR tree-optimization/66952
666 * tree-ssa-ifcombine.c (pass_tree_ifcombine::execute): For
667 blocks we end up executing unconditionally reset all SSA
668 info such as range and alignment.
669 * tree-ssanames.h (reset_flow_sensitive_info): Declare.
670 * tree-ssanames.c (reset_flow_sensitive_info): New function.
671
672 2015-07-22 Charles Baylis <charles.baylis@linaro.org>
673
674 * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): Fix
675 typo in attribute.
676
677 2015-07-22 Richard Biener <rguenther@suse.de>
678
679 * genmatch.c (parser::parse_result): Properly handle
680 match with result operands and conditions.
681
682 2015-07-22 Charles Baylis <charles.baylis@linaro.org>
683
684 PR target/63870
685 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
686 Add qualifier_struct_load_store_lane_index.
687 (aarch64_types_loadstruct_lane_qualifiers): Use
688 qualifier_struct_load_store_lane_index for lane index argument for
689 last argument.
690 (aarch64_types_storestruct_lane_qualifiers): Ditto.
691 (builtin_simd_arg): Add SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
692 (aarch64_simd_expand_args): Add new argument describing mode of
693 builtin. Check lane bounds for arguments with
694 SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
695 (aarch64_simd_expand_builtin): Emit error for incorrect lane indices
696 if marked with SIMD_ARG_STRUCT_LOAD_STORE_LANE_INDEX.
697 (aarch64_simd_expand_builtin): Handle arguments with
698 qualifier_struct_load_store_lane_index. Pass machine mode of builtin to
699 aarch64_simd_expand_args.
700 * config/aarch64/aarch64-simd-builtins.def: Declare ld[234]_lane and
701 vst[234]_lane with BUILTIN_VALLDIF.
702 * config/aarch64/aarch64-simd.md:
703 (aarch64_vec_load_lanesoi_lane<mode>): Use VALLDIF iterator. Perform
704 endianness reversal on lane index.
705 (aarch64_vec_load_lanesci_lane<mode>): Ditto.
706 (aarch64_vec_load_lanesxi_lane<mode>): Ditto.
707 (vec_store_lanesoi_lane<mode>): Use VALLDIF iterator.
708 (vec_store_lanesci_lane<mode>): Ditto.
709 (vec_store_lanesxi_lane<mode>): Ditto.
710 (aarch64_ld2_lane<mode>): Use VALLDIF iterator. Remove endianness
711 reversal of lane index.
712 (aarch64_ld3_lane<mode>): Ditto.
713 (aarch64_ld4_lane<mode>): Ditto.
714 (aarch64_st2_lane<mode>): Ditto.
715 (aarch64_st3_lane<mode>): Ditto.
716 (aarch64_st4_lane<mode>): Ditto.
717 * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Rename mode parameter
718 to qmode. Add new mode parameter. Update uses.
719 (__LD3_LANE_FUNC): Ditto.
720 (__LD4_LANE_FUNC): Ditto.
721 (__ST2_LANE_FUNC): Ditto.
722 (__ST3_LANE_FUNC): Ditto.
723 (__ST4_LANE_FUNC): Ditto.
724
725 2015-07-22 Jonathan Wakely <jwakely@redhat.com>
726
727 * doc/invoke.texi (Language Independent Options): Rename node to
728 Diagnostic Message Formatting Options.
729
730 2015-07-21 Vladimir Makarov <vmakarov@redhat.com>
731
732 PR ipa/66424.
733 * lra-remat.c (operand_to_remat): Prevent using insns with input
734 subregs processed separately by IRA.
735
736 2015-07-21 Andrew MacLeod <amacleod@redhat.com>
737
738 * ssa-iterators.h (has_zero_uses, has_single_use): Implement as
739 straight loops.
740 (single_imm_use): Check for iterator node.
741 (num_imm_uses): Likewise.
742 * tree-ssa-operands.c (has_zero_uses_1): Delete.
743 (single_imm_use_1): Check for iterator node.
744
745 2015-07-21 Mike Frysinger <vapier@gentoo.org>
746 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
747
748 * configure.ac: Add check for new options in isl-0.15.
749 * config.in, configure: Rebuilt.
750 * graphite-blocking.c: Include <isl/constraint.h>
751 * graphite-interchange.c, graphite-poly.c: Likewise.
752 * graphhite-scop-detection.c, graphite-sese-to-poly.c: Likewise.
753 * graphite.c: Likewise.
754 * graphite-isl-ast-to-gimple.c: Include <isl/constraint.h> and
755 <isl/union_set.h>.
756 * graphite-dependences.c: Include <isl/constraint.h>.
757 (max_number_of_out_dimensions): Returns isl_stat.
758 (extend_schedule_1): Likewise
759 (extend_schedule): Corresponding changes.
760 * graphite-optimize-isl.c: Include <isl/constraint.h> and
761 <isl/union_set.h>.
762 (getSingleMap): Change return type of isl_stat.
763 (optimize_isl): Conditionally use
764 isl_options_set_schedule_serialize_sccs.
765 * graphite-poly.h (isl_stat, isl_stat_ok): Define fallbacks
766 if not HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS.
767
768 2015-07-21 Georg-Johann Lay <avr@gjlay.de>
769
770 PR target/66956
771 * config/avr/avr-dimode.md (<extend_u>mulsidi3_insn)
772 (<extend_u>mulsidi3): Don't use if !AVR_HAVE_MUL.
773
774 2015-07-21 Richard Biener <rguenther@suse.de>
775
776 PR tree-optimization/66948
777 * genmatch.c (capture_info::walk_match): Also recurse to
778 captures. Properly compute expr state from captures of
779 captures.
780 * match.pd: Add single-use guards to
781 (X & C2) >> C1 into (X >> C1) & (C2 >> C1) transform.
782
783 2015-07-21 Nathan Sidwell <nathan@codesourcery.com>
784
785 * config/nvptx/mkoffload.c (process): Add static destructor call.
786
787 2015-07-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
788
789 PR middle-end/66915
790 * match.pd (A - B -> A + (-B)): Don't allow folding
791 when type if a fixed-point type.
792
793 2015-07-20 DJ Delorie <dj@redhat.com>
794
795 * config/rl78/rl78-real.md (andqi3_real): Expand operands for clr1.
796 (iorqi3_real): Likewise for set1.
797
798 2015-07-20 Uros Bizjak <ubizjak@gmail.com>
799
800 * config/i386/i386.c (ix86_md_asm_adjust): Handle DImode dest_mode
801 for !TARGET_64BIT.
802
803 2015-07-20 Aditya Kumar <hiraditya@msn.com>
804
805 * graphite-isl-ast-to-gimple.c:
806 Refactor so that each function can access 'region'. This will help
807 maintain a parameter rename_map within a region.
808
809 2015-07-20 Segher Boessenkool <segher@kernel.crashing.org>
810
811 * config/rs6000/rs6000.md (*lt0_disi): New.
812
813 2015-07-20 Segher Boessenkool <segher@kernel.crashing.org>
814
815 PR target/66217
816 * config/rs6000/constraints.md ("S", "T", "t"): Delete. Update
817 "available letters" comment.
818 * config/rs6000/predicates.md (mask_operand, mask_operand_wrap,
819 mask64_operand, mask64_2_operand, any_mask_operand, and64_2_operand,
820 and_2rld_operand): Delete.
821 (and_operand): Adjust.
822 (rotate_mask_operator): New.
823 * config/rs6000/rs6000-protos.h (build_mask64_2_operands,
824 includes_lshift_p, includes_rshift_p, includes_rldic_lshift_p,
825 includes_rldicr_lshift_p, insvdi_rshift_rlwimi_p, extract_MB,
826 extract_ME): Delete.
827 (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
828 rs6000_is_valid_shift_mask, rs6000_is_valid_insert_mask,
829 rs6000_insn_for_and_mask, rs6000_insn_for_shift_mask,
830 rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
831 rs6000_emit_2insn_and): New.
832 * config/rs6000/rs6000.c (num_insns_constant): Adjust.
833 (build_mask64_2_operands, includes_lshift_p, includes_rshift_p,
834 includes_rldic_lshift_p, includes_rldicr_lshift_p,
835 insvdi_rshift_rlwimi_p, extract_MB, extract_ME): Delete.
836 (rs6000_is_valid_mask, rs6000_is_valid_and_mask,
837 rs6000_insn_for_and_mask, rs6000_is_valid_shift_mask,
838 s6000_insn_for_shift_mask, rs6000_is_valid_insert_mask,
839 rs6000_insn_for_insert_mask, rs6000_is_valid_2insn_and,
840 rs6000_emit_2insn_and): New.
841 (print_operand) <'b', 'B', 'm', 'M', 's', 'S', 'W'>: Delete.
842 (rs6000_rtx_costs) <CONST_INT>: Delete mask_operand and mask64_operand
843 handling.
844 <NOT>: Don't fall through to next case.
845 <AND>: Handle the various rotate-and-mask cases directly.
846 <IOR>: Always cost as one insn.
847 * config/rs6000/rs6000.md (splitter for bswap:SI): Adjust.
848 (and<mode>3): Adjust expander for the new patterns.
849 (and<mode>3_imm, and<mode>3_imm_dot, and<mode>3_imm_dot2,
850 and<mode>3_imm_mask_dot, and<mode>3_imm_mask_dot2): Adjust condition.
851 (*and<mode>3_imm_dot_shifted): New.
852 (*and<mode>3_mask): Delete, rewrite as ...
853 (and<mode>3_mask): ... New.
854 (*and<mode>3_mask_dot, *and<mode>3_mask_dot): Rewrite.
855 (andsi3_internal0_nomc): Delete.
856 (*andsi3_internal6): Delete.
857 (*and<mode>3_2insn): New.
858 (insv, insvsi_internal, *insvsi_internal1, *insvsi_internal2,
859 *insvsi_internal3, *insvsi_internal4, *insvsi_internal5,
860 *insvsi_internal6, insvdi_internal, *insvdi_internal2,
861 *insvdi_internal3): Delete.
862 (*rotl<mode>3_mask, *rotl<mode>3_mask_dot, *rotl<mode>3_mask_dot2,
863 *rotl<mode>3_insert, *rotl<mode>3_insert_2, *rotl<mode>3_insert_3,
864 *rotl<mode>3_insert_4, two splitters for multi-precision shifts,
865 *ior<mode>_mask): New.
866 (extzv, extzvdi_internal, *extzvdi_internal1, *extzvdi_internal2,
867 *rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
868 *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
869 *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
870 Delete.
871 (ashr<mode>3): Delete expander.
872 (*ashr<mode>3): Rename to ...
873 (ashr<mode>3): ... This.
874 (ashrdi3_no_power, *ashrdisi3_noppc64be): Delete.
875 (*rotldi3_internal4, *rotldi3_internal5 and split,
876 *rotldi3_internal6 and split, *ashldi3_internal4, ashldi3_internal5
877 and split, *ashldi3_internal6 and split, *ashldi3_internal7,
878 ashldi3_internal8 and split, *ashldi3_internal9 and split): Delete.
879 (*anddi3_2rld, *anddi3_2rld_dot, *anddi3_2rld_dot2): Delete.
880 (splitter for loading a mask): Adjust.
881 * doc/md.texi (Machine Constraints): Remove q, S, T, t constraints.
882
883 2015-07-20 Marek Polacek <polacek@redhat.com>
884
885 * genemit.c (print_code, gen_exp, gen_insn, gen_expand, gen_split,
886 output_add_clobbers, output_added_clobbers_hard_reg_p,
887 gen_rtx_scratch): Remove declarations.
888
889 2015-07-20 Marek Polacek <polacek@redhat.com>
890
891 PR c++/55095
892 * doc/invoke.texi: Document -Wshift-overflow and -Wshift-overflow=.
893
894 2015-07-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
895
896 * simplify-rtx.c (simplify_unary_operation_1, NEG case):
897 (neg (x ? (neg y) : y)) -> !x ? (neg y) : y.
898
899 2015-07-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
900
901 * combine.c (combine_simplify_rtx): Move simplification step
902 before various transformations/substitutions.
903
904 2015-07-20 Mikhail Maltsev <maltsevm@gmail.com>
905
906 * wide-int.h (struct binary_traits): Fix partial specialization syntax.
907 (struct int_traits): Likewise.
908
909 2015-07-18 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
910
911 * vmsdbgout.c (vmsdbgout_decl): Change name of prototyped
912 function to vmsdbgout_function_decl.
913
914 2015-07-18 Uros Bizjak <ubizjak@gmail.com>
915
916 PR target/66922
917 * config/i386/i386.c (ix86_expand_pextr): Reject extractions
918 from misaligned positions.
919 (ix86_expand_pinsr): Reject insertions to misaligned positions.
920
921 2015-07-18 Sebastian Pop <s.pop@samsung.com>
922
923 PR middle-end/46851
924 PR middle-end/60340
925 * Makefile.in: Removed omega.o.
926 * common.opt: Document flag fcheck-data-deps as deprecated.
927 * doc/invoke.texi: Remove documentation for fcheck-data-deps and
928 its associated params: omega-max-vars, omega-max-geqs,
929 omega-max-eqs, omega-max-wild-cards, omega-hash-table-size,
930 omega-max-keys, omega-eliminate-redundant-constraints.
931 * doc/loop.texi: Remove all the section on Omega.
932 * graphite-blocking.c: Include missing params.h: it used to be
933 included through tree-data-ref.h and omega.h.
934 * graphite-isl-ast-to-gimple.c: Same.
935 * graphite-optimize-isl.c: Same.
936 * graphite-sese-to-poly.c: Same.
937 * graphite.c: Same.
938 * omega.c: Remove.
939 * omega.h: Remove.
940 * params.def: Removed PARAM_OMEGA_MAX_VARS, PARAM_OMEGA_MAX_GEQS,
941 PARAM_OMEGA_MAX_EQS, PARAM_OMEGA_MAX_WILD_CARDS,
942 PARAM_OMEGA_HASH_TABLE_SIZE, PARAM_OMEGA_MAX_KEYS, and
943 PARAM_OMEGA_ELIMINATE_REDUNDANT_CONSTRAINTS.
944 * passes.def: Remove pass_check_data_deps.
945 * tree-data-ref.c (dump_affine_function): Declare DEBUG_FUNCTION.
946 (dump_conflict_function): Same.
947 (dump_subscript): Same.
948 (print_direction_vector): Same.
949 (print_dir_vectors): Same.
950 (print_lambda_vector): Same.
951 (print_dist_vectors): Same.
952 (dump_data_dependence_relation): Same.
953 (dump_data_dependence_relations): Same.
954 (dump_dist_dir_vectors): Same.
955 (dump_ddrs): Same.
956 (init_omega_eq_with_af): Removed.
957 (omega_extract_distance_vectors): Removed.
958 (omega_setup_subscript): Removed.
959 (init_omega_for_ddr_1): Removed.
960 (init_omega_for_ddr): Removed.
961 (ddr_consistent_p): Removed.
962 (compute_affine_dependence): Do not use omega to check data
963 dependences.
964 (compute_data_dependences_for_bb): Removed.
965 (analyze_all_data_dependences): Removed.
966 (tree_check_data_deps): Removed.
967 * tree-data-ref.h: Do not include omega.h.
968 (compute_data_dependences_for_bb): Removed.
969 (tree_check_data_deps): Removed.
970 * tree-ssa-loop.c (pass_check_data_deps): Removed.
971 (make_pass_check_data_deps): Removed.
972 * tree-ssa-phiopt.c: Include params.h.
973 * tree-vect-data-refs.c: Same.
974 * tree-vect-slp.c: Same.
975
976 2015-07-18 Uros Bizjak <ubizjak@gmail.com>
977
978 * config/i386/i386.md (pushsf splitter): Pass curr_insn to
979 find_constant_src. FAIL if find_constant_src returns NULL_RTX.
980 (mem->fpreg splitters): Ditto.
981 (general_operand->nonimmediate_operand splitter): Use explicit modes.
982 Disable DFmode for TARGET_64BIT.
983
984 2015-07-17 H.J. Lu <hongjiu.lu@intel.com>
985
986 PR target/66906
987 * config/i386/i386.c (ix86_expand_prologue): Replicate static
988 chain on the stack.
989
990 2015-07-17 Nathan Sidwell <nathan@codesourcery.com>
991
992 * config/nvptx/mkoffload.c (process): Constify host data.
993 * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
994 Constify host data.
995 (generate_host_descr_file): Likewise.
996
997 2015-07-17 Aditya Kumar <aditya.k7@samsung.com>
998 Sebastian Pop <s.pop@samsung.com>
999
1000 PR middle-end/61929
1001 * graphite-dependences.c (add_pdr_constraints): Renamed
1002 pdr->extent to pdr->subscript_sizes.
1003 * graphite-interchange.c (build_linearized_memory_access): Add
1004 back all gcc_assert's that the "isl_int to isl_val conversion"
1005 patch has removed. Refactored.
1006 (pdr_stride_in_loop): Renamed pdr->extent to pdr->subscript_sizes.
1007 * graphite-poly.c (new_poly_dr): Same.
1008 (free_poly_dr): Same.
1009 * graphite-poly.h (struct poly_dr): Same.
1010 * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Ignore
1011 all data references other than ARRAY_REF, MEM_REF, and COMPONENT_REF.
1012 * graphite-scop-detection.h: Fix space.
1013 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Add
1014 back all gcc_assert's removed by a previous patch.
1015 (wrap): Remove the_isl_ctx global variable that the same patch has
1016 added.
1017 (build_loop_iteration_domains): Same.
1018 (add_param_constraints): Same.
1019 (pdr_add_data_dimensions): Same. Refactored.
1020 (build_poly_dr): Renamed extent to subscript_sizes.
1021
1022 2015-07-17 Marek Polacek <polacek@redhat.com>
1023
1024 * fold-const.c (fold_binary_loc): Move A - (A & B) into ~B & A ...
1025 * match.pd: ... here.
1026
1027 2015-07-17 Nathan Sidwell <nathan@codesourcery.com>
1028
1029 * config/nvptx/mkoffload.c (process): Constify target data.
1030 * config/i386/intelmic-mkoffload.c (generate_target_descr_file):
1031 Constify target data.
1032 (generate_target_offloadend_file): Likewise.
1033
1034 2015-07-17 Yuri Rumyantsev <ysrumyan@gmail.com>
1035
1036 * tree-vect-loop-manip.c (rename_variables_in_bb): Add argument
1037 to allow renaming of PHI arguments on edges incoming from outer
1038 loop header, add corresponding check before start PHI iterator.
1039 (slpeel_tree_duplicate_loop_to_edge_cfg): Introduce new bool
1040 variable DUPLICATE_OUTER_LOOP and set it to true for outer loops
1041 with true force_vectorize. Set-up dominator for outer loop too.
1042 Pass DUPLICATE_OUTER_LOOP as argument to rename_variables_in_bb.
1043 (slpeel_can_duplicate_loop_p): Allow duplicate of outer loop if it
1044 was marked with force_vectorize and has restricted cfg.
1045 (slpeel_tree_peel_loop_to_edge): Do not rename exit PHI uses in
1046 inner loop.
1047 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
1048 do peeling for outer loops.
1049
1050 2015-07-17 Yvan Roux <yvan.roux@linaro.org>
1051 Matthias Klose <doko@ubuntu.com>
1052
1053 * configure.ac: Move AC_ARG_WITH checks for native-system-header-dir,
1054 build-sysroot, sysroot from the `Miscenalleous configure options' to
1055 the `Directories' section and strip trailing `/' from with_sysroot.
1056 (gcc_gxx_include_dir): Don't strip a `/' sysroot value.
1057 * configure: Regenerated.
1058
1059 2015-07-17 Uros Bizjak <ubizjak@gmail.com>
1060
1061 PR target/66824
1062 * config/i386/i386.h (TARGET_HARD_SF_REGS): New define.
1063 (TARGET_HARD_DF_REGS): Ditto.
1064 (TARGET_HARD_XF_REGS): Ditto.
1065 * config/i386/i386.md (*movxf_internal): Add alternatives 9 and 10.
1066 Enable alternatives 9 and 10 only for !TARGET_HARD_XF_REG target.
1067 (*movdf_internal): Add alternatives 22, 23, 24 and 25. Enable
1068 alternatives 22, 23, 24 and 25 only for !TARGET_HARD_DF_REG target.
1069 (*movsf_internal): Add alternatives 16 and 17. Enable
1070 alternatives 16 and 17 only for !TARGET_HARD_SF_REG target.
1071
1072 2015-07-17 Uros Bizjak <ubizjak@gmail.com>
1073
1074 PR rtl-optimization/66891
1075 * calls.c (expand_call): Wrap precompute_register_parameters with
1076 NO_DEFER_POP/OK_DEFER_POP to prevent deferred pops.
1077
1078 2015-07-16 Nathan Sidwell <nathan@codesourcery.com>
1079
1080 * config/nvptx/mkoffload.c (process): Constify mapping variables.
1081 Define target data struct and initialize it.
1082
1083 2015-07-16 Vladimir Makarov <vmakarov@redhat.com>
1084
1085 PR rtl-optimization/66626
1086 * ira.h (emit-rtl.h): Include.
1087 (non_spilled_static_chain_regno_p): New.
1088 * ira-color.c (setup_profitable_hard_regs): Clear profitable regs
1089 unless it is non spilled static chain pseudo.
1090 (assign_hard_rego): Spill memory profitable allocno unless it is
1091 non spilled static chain pseudo.
1092 (allocno_spill_priority_compare): Put non spilled static chain
1093 pseudo at the end of sorted array.
1094 (improve_allocation): Do nothing if we have static chain and
1095 non-local goto.
1096 (allocno__priority_compare_func): Put non spilled static chain
1097 pseudo at the beginning of sorted array.
1098 (move_spill_restore): Ignore non spilled static chain pseudo.
1099 * ira-costs.c (find_costs_and_classes): Don't assign class NO_REGS
1100 to non spilled static chain pseudo.
1101 * lra-assigns.c (pseudo_compare_func): Put non spilled static chain
1102 pseudo at the beginning of sorted array.
1103 (spill_for): Spill non spilled static chain pseudo last.
1104 * lra-constraints.c (lra_constraints): Remove static chain pseudo
1105 check for equivalence.
1106
1107 2015-07-16 Martin Liska <mliska@suse.cz>
1108
1109 PR ipa/66896.
1110 * ipa-prop.c (update_jump_functions_after_inlining): Create properly
1111 dst_ctx if it does not exist.
1112
1113 2015-07-16 Martin Liska <mliska@suse.cz>
1114
1115 * hash-set.h (remove): New function.
1116 (iterator): New iteration class for hash_set.
1117
1118 2015-07-16 Richard Sandiford <richard.sandiford@arm.com>
1119
1120 * genattrtab.c (make_canonical): Add a file_location parameter.
1121 Use fatal_at rather than fatal.
1122 (get_attr_value): Likewise. Update call to make_canonical.
1123 (fill_attr, make_length_attrs, optimize_attrs, gen_attr)
1124 (make_internal_attr): Update calls accordingly.
1125
1126 2015-07-16 Richard Sandiford <richard.sandiford@arm.com>
1127
1128 * read-md.h (message_with_line, error_with_line): Delete.
1129 * read-md.c (message_with_line, error_with_line): Delete.
1130 * gensupport.h: Include read-md.h.
1131 (md_rtx_info): New structure.
1132 (read_md_rtx): Use it. Return a bool success value.
1133 * gensupport.c (read_md_rtx): Likewise.
1134 * genattr-common.c (gen_attr): Take an md_rtx_info rather than an rtx.
1135 (main): Update after interface changes.
1136 * genattr.c (gen_attr): Take an md_rtx_info rather than an rtx.
1137 (main): Update after interface changes.
1138 * genattrtab.c (insn_code_number): Delete.
1139 (optimize_attrs): Add a max_insn_code parameter and use it instead
1140 of insn_code_number.
1141 (gen_attr): Take an md_rtx_info rather than an rtx and lineno.
1142 Use *_at rather than *_with_line functions.
1143 (gen_insn): Likewise.
1144 (gen_delay): Likewise.
1145 (gen_insn_reserv): Likewise.
1146 (gen_bypass): Take an md_rtx_info rather than an rtx.
1147 (main): Update after interface changes. Use a local max_insn_code
1148 variable instead of insn_code_number.
1149 * genautomata.c (gen_cpu_unit): Take an md_rtx_info rather than
1150 an rtx. Use fatal_at rather than fatal.
1151 (gen_query_cpu_unit, gen_bypass, gen_excl_set)
1152 (gen_presence_absence_set, gen_presence_set, gen_final_presence_set)
1153 (gen_absence_set, gen_final_absence_set, gen_automaton)
1154 (gen_automata_option, gen_reserv, gen_insn_reserv): Likewise.
1155 (main): Update after interface changes.
1156 * gencodes.c (gen_insn): Take an md_rtx_info rather than an rtx
1157 and code number.
1158 (main): Update after interface changes.
1159 * genconditions.c (main): Use new read_md_rtx interface.
1160 * genconfig.c (gen_insn): Take an md_rtx_info rather than an rtx.
1161 (gen_expand, gen_split, gen_peephole, gen_peephole2): Likewise.
1162 (main): Update after interface changes.
1163 * genemit.c (insn_code_number, insn_index_number): Delete.
1164 (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
1165 Use fatal_at rather than fatal.
1166 (gen_expand): Take an md_rtx_info rather than an rtx. Use fatal_at
1167 rather than fatal.
1168 (gen_split): Likewise.
1169 (main): Update after interface changes.
1170 * genextract.c (line_no): Delete.
1171 (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
1172 Update call to walk_rtx.
1173 (VEC_safe_set_locstr): Add an md_rtx_info argument. Use message_at
1174 rather than message_with_line.
1175 (walk_rtx): Add an md_rtx_info argument. Update call to
1176 VEC_safe_set_locstr.
1177 (main): Update after interface changes.
1178 * genflags.c (gen_insn): Take an md_rtx_info rather than an rtx
1179 and lineno. Use error_at rather than separate message_with_line
1180 calls and have_error assignments.
1181 (main): Update after interface changes.
1182 * genmddump.c (main): Use new read_md_rtx interface.
1183 * genopinit.c (insn): Take an md_rtx_info rather than an rtx.
1184 (main): Update after interface changes.
1185 * genoutput.c (next_code_number): Delete.
1186 (gen_insn): Take an md_rtx_info rather than an rtx and lineno.
1187 (gen_peephole, gen_expand, gen_split): Likewise.
1188 (note_constraint): Likewise. Use *_at rather than *_with_line
1189 functions.
1190 (main): Update after interface changes.
1191 * genpeep.c (gen_peephole): Take an md_rtx_info rather than an
1192 rtx and lineno.
1193 (main): Update after interface changes.
1194 * genpreds.c (process_define_predicate): Take an md_rtx_info rather
1195 than an rtx and lineno.
1196 (process_define_constraint): Likewise.
1197 (process_define_register_constraint): Likewise.
1198 (main): Update after interface changes.
1199 * genrecog.c (next_insn_code, pattern_lineno): Delete.
1200 (validate_pattern): Replace top-level rtx with an md_rtx_info.
1201 Use *_at rather than *_with_line functions.
1202 (match_pattern_2): Likewise.
1203 (match_pattern_1, match_pattern): Add an md_rtx_info parameter.
1204 (get_peephole2_pattern): Take an md_rtx_info rather than an rtvec.
1205 Use *_at rather than *_with_line functions.
1206 * gentarget-def.c (add_insn): New function.
1207 (main): Use it. Use new read_md_rtx interface.
1208
1209 2015-07-16 Richard Sandiford <richard.sandiford@arm.com>
1210
1211 * gensupport.h (compute_test_codes): Take a file_location rather
1212 than a line number.
1213 * gensupport.c (compute_test_codes): Likewise. Use *_at functions
1214 rather than *_with_line functions.
1215 (process_define_predicate): Update call to compute_test_codes.
1216 * genpreds.c (validate_exp): Take a file_location rather than a
1217 line number. Use *_at functions rather than *_with_line functions.
1218 (process_define_predicate): Update call to validate_exp.
1219 (constraint_data): Replace lineno field with a file_location.
1220 (add_constraint): Take a file_location rather than a line number.
1221 Use *_at functions rather than *_with_line functions. Fix error
1222 message for address constraints. Update after changes to
1223 validate_exp, constraint_data and compute_test_codes.
1224 (process_define_constraint): Update accordingly.
1225 (process_define_register_constraint): Likewise.
1226
1227 2015-07-16 Richard Sandiford <richard.sandiford@arm.com>
1228
1229 * genoutput.c (data): Use a file_location to record the source
1230 position.
1231 (nothing): Delete.
1232 (idata, idata_end): Remove initialization.
1233 (constraint_data): Replace lineno with a file_location.
1234 (output_insn_data): Update after changes to data.
1235 (gen_insn, gen_peephole, gen_expand, gen_split): Likewise.
1236 (scan_operands): Likewise, using *_at rather than *_with_line
1237 functions.
1238 (process_template): Likewise.
1239 (validate_insn_alternatives): Likewise.
1240 (validate_insn_operands): Likewise.
1241 (validate_optab_operands): Likewise.
1242 (init_insn_for_nothing): Initialize idata and idata_end.
1243 (note_constraint): Update after changes to constraint_data,
1244 using at rather than with_line functions.
1245 (mdep_constraint_len): Take a file_location rather than a
1246 line number. Use at rather than with_line functions.
1247
1248 2015-07-16 Richard Sandiford <richard.sandiford@arm.com>
1249
1250 * read-md.h (fatal_at): Declare.
1251 * read-md.c (fatal_at): New function.
1252 * genattrtab.c (insn_def, attr_desc, delay_desc): Use a file_location
1253 to record the source position.
1254 (check_attr_test): Take a file_location instead of a line number.
1255 Use fatal_at instead of fatal.
1256 (check_attr_value): Update after above changes, using "at"
1257 rather than "with_line" reporting functions.
1258 (convert_set_attr_alternative): Likewise.
1259 (gen_attr): Likewise.
1260 (check_defs): Likewise. Don't assign to read_md_filename.
1261 (gen_insn): Update initialization after above changes.
1262 (gen_delay): Likewise.
1263 (write_insn_cases): Print the filename for a define_peephole.
1264 (gen_insn_reserv): Take a line number as argument and update
1265 the call to check_attr_test.
1266 (main): Pass a line number to gen_insn_reserv.
1267
1268 2015-07-16 Richard Sandiford <richard.sandiford@arm.com>
1269
1270 * read-md.h (file_location): New structure.
1271 (directive_handler_t): Take a file_location rather than a line number.
1272 (message_at, error_at): Declare.
1273 (read_skip_construct): Delete.
1274 * read-md.c (message_with_line_1): Replace with...
1275 (message_at_1): ...this new function.
1276 (message_at, error_at): New functions.
1277 (message_with_line, error_with_line): Update to use message_at_1.
1278 (handle_enum): Take a file_location rather than a line number
1279 and use error_at for error reporting.
1280 (handle_include): Likewise.
1281 (read_skip_construct): Likewise. Make static.
1282 (handle_file): Update after above changes. Pass a file_location
1283 rather than a line number to handle_directive.
1284 * gensupport.c (queue_elem): Replace separate filename and lineno
1285 with a file_location.
1286 (queue_pattern): Replace filename and lineno arguments with a
1287 file_location. Update after change to queue_elem.
1288 (process_define_predicate): Replace lineno argument with a
1289 file_location and use error_at for error reporting. Update
1290 after above changes.
1291 (process_rtx): Likewise.
1292 (subst_pattern_match): Likewise.
1293 (get_alternatives_number): Likewise.
1294 (alter_predicate_for_insn): Likewise.
1295 (rtx_handle_directive): Likewise.
1296 (is_predicable): Update after above changes, using error_at rather
1297 than error_with_line.
1298 (has_subst_attribute): Likewise.
1299 (identify_predicable_attribute): Likewise.
1300 (alter_attrs_for_subst_insn): Likewise.
1301 (process_one_cond_exec): Likewise.
1302 (process_substs_on_one_elem): Likewise.
1303 (process_define_subst): Likewise.
1304 (check_define_attr_duplicates): Likewise.
1305 (read_md_rtx): Update after change to queue_elem.
1306
1307 2015-07-16 Richard Sandiford <richard.sandiford@arm.com>
1308
1309 * genoutput.c (next_index_number): Delete.
1310 (data): Remove index_number.
1311 (gen_insn, gen_peephole, gen_expand, gen_split): Update accordingly.
1312 (main): Remove manipulation of next_index_number.
1313
1314 2015-07-16 Richard Sandiford <richard.sandiford@arm.com>
1315
1316 * genattrtab.c (check_attr_value): Remove handling of null attrs.
1317 (make_canonical): Likewise.
1318
1319 2015-07-16 Eric Botcazou <ebotcazou@adacore.com>
1320
1321 * config/sparc/sparc.md (save_stack_nonlocal): Use adjust_address
1322 instead of adjust_address_nv.
1323 (restore_stack_nonlocal): Likewise.
1324 (nonlocal_goto): Likewise.
1325
1326 2015-07-16 Tom de Vries <tom@codesourcery.com>
1327
1328 * tree-parloops.c (create_parallel_loop): Handle case that exit phi does
1329 not have a corresponding loop header phi.
1330
1331 2015-07-16 Tom de Vries <tom@codesourcery.com>
1332
1333 * tree-parloops.c (create_loads_for_reductions): Handle case that
1334 reduction is unused.
1335
1336 2015-07-16 Richard Biener <rguenther@suse.de>
1337
1338 PR tree-optimization/66894
1339 * tree-vrp.c (register_edge_assert_for_2): Fix bad assumption
1340 about deriving NE_EXPR from truncated values.
1341
1342 2015-07-16 Martin Liska <mliska@suse.cz>
1343
1344 * alloc-pool.h
1345 (object_allocator): Add new class.
1346 (pool_allocator::initialize): Use the underlying class.
1347 (pool_allocator::allocate): Likewise.
1348 (pool_allocator::remove): Likewise.
1349 (operator new): A new generic allocator.
1350 * asan.c (struct asan_mem_ref): Remove unused members.
1351 (asan_mem_ref_new): Replace new operator with
1352 object_allocator::allocate.
1353 (free_mem_ref_resources): Change deallocation.
1354 * cfg.c (initialize_original_copy_tables): Replace pool_allocator
1355 with object_allocator.
1356 * config/sh/sh.c (add_constant): Replace new operator with
1357 object_allocator::allocate.
1358 (sh_reorg): Change call to a release method.
1359 * cselib.c (struct elt_list): Remove unused members.
1360 (new_elt_list): Replace new operator with
1361 object_allocator::allocate.
1362 (new_elt_loc_list): Likewise.
1363 (new_cselib_val): Likewise.
1364 (unchain_one_elt_list): Change delete operator with remove method.
1365 (unchain_one_elt_loc_list): Likewise.
1366 (unchain_one_value): Likewise.
1367 (cselib_finish): Release newly added static allocators.
1368 * cselib.h (struct cselib_val): Remove unused members.
1369 (struct elt_loc_list): Likewise.
1370 * df-problems.c (df_chain_alloc): Replace pool_allocator with
1371 object_allocator.
1372 * df-scan.c (struct df_scan_problem_data): Likewise.
1373 (df_scan_alloc): Likewise.
1374 * df.h (struct dataflow): Likewise.
1375 * dse.c (struct read_info_type): Likewise.
1376 (struct insn_info_type): Likewise.
1377 (struct dse_bb_info_type): Likewise.
1378 (struct group_info): Likewise.
1379 (struct deferred_change): Likewise.
1380 (get_group_info): Likewise.
1381 (delete_dead_store_insn): Likewise.
1382 (free_read_records): Likewise.
1383 (replace_read): Likewise.
1384 (check_mem_read_rtx): Likewise.
1385 (scan_insn): Likewise.
1386 (dse_step1): Likewise.
1387 (dse_step7): Likewise.
1388 * et-forest.c (struct et_occ): Remove unused members.
1389 (et_new_occ): Use allocate instead of new operator.
1390 (et_new_tree): Likewise.
1391 (et_free_tree): Call release method explicitly.
1392 (et_free_tree_force): Likewise.
1393 (et_free_pools): Likewise.
1394 (et_split): Use remove instead of delete operator.
1395 * et-forest.h (struct et_node): Remove unused members.
1396 * ipa-cp.c: Change pool_allocator to object_allocator.
1397 * ipa-inline-analysis.c: Likewise.
1398 * ipa-profile.c: Likewise.
1399 * ipa-prop.c: Likewise.
1400 * ipa-prop.h: Likewise.
1401 * ira-build.c (initiate_cost_vectors): Cast return value.
1402 (ira_allocate_cost_vector): Likewise.
1403 * ira-color.c (struct update_cost_record): Remove unused members.
1404 * lra-int.h (struct lra_live_range): Likewise.
1405 (struct lra_copy): Likewise.
1406 (struct lra_insn_reg): Likewise.
1407 * lra-lives.c (lra_live_ranges_finish): Release new static allocator.
1408 * lra.c (new_insn_reg): Replace new operator with allocate method.
1409 (free_insn_regs): Same for operator delete.
1410 (finish_insn_regs): Release new static allocator.
1411 (finish_insn_recog_data): Likewise.
1412 (lra_free_copies): Replace delete operator with remove method.
1413 (lra_create_copy): Replace operator new with allocate method.
1414 (invalidate_insn_data_regno_info): Same for remove method.
1415 * regcprop.c (struct queued_debug_insn_change): Remove unused members.
1416 (free_debug_insn_changes): Replace delete operator with remove method.
1417 (replace_oldest_value_reg): Replace operator new with allocate method.
1418 (pass_cprop_hardreg::execute): Release new static variable.
1419 * sched-deps.c (sched_deps_init): Change pool_allocator to
1420 object_allocator.
1421 * sel-sched-ir.c: Likewise.
1422 * sel-sched-ir.h: Likewise.
1423 * stmt.c (expand_case): Likewise.
1424 (expand_sjlj_dispatch_table): Likewise.
1425 * tree-sra.c (struct access): Remove unused members.
1426 (struct assign_link): Likewise.
1427 (sra_deinitialize): Release newly added static pools.
1428 (create_access_1):Replace operator new with allocate method.
1429 (build_accesses_from_assign): Likewise.
1430 (create_artificial_child_access): Likewise.
1431 * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Change
1432 pool_allocator to object_allocator.
1433 * tree-ssa-pre.c: Likewise.
1434 * tree-ssa-reassoc.c: Likewise.
1435 * tree-ssa-sccvn.c (allocate_vn_table): Likewise.
1436 * tree-ssa-strlen.c: Likewise.
1437 * tree-ssa-structalias.c: Likewise.
1438 * var-tracking.c (onepart_pool_allocate): New function.
1439 (unshare_variable): Use the newly added function.
1440 (variable_merge_over_cur): Likewise.
1441 (variable_from_dropped): Likewise.
1442 (variable_was_changed): Likewise.
1443 (set_slot_part): Likewise.
1444 (emit_notes_for_differences_1): Likewise.
1445 (vt_finalize): Release newly added static pools.
1446
1447 2015-07-16 Martin Jambor <mjambor@suse.cz>
1448
1449 * ipa-prop.h (param_aa_status): Rename to ipa_param_aa_status. Adjust
1450 all uses. Fix two typos in its general comment.
1451 (func_body_info): Rename to ipa_func_body_info. Adjust all uses.
1452
1453 2015-07-16 Ilya Enkovich <enkovich.gnu@gmail.com>
1454
1455 * config/i386/linux-common.h (LINK_MPX): New.
1456 (MPX_SPEC): Use LINK_MPX instead of %(link_mpx).
1457 * configure.ac: Add HAVE_LD_BNDPLT_SUPPORT macro
1458 indicating '-z bndplt' support by linker.
1459 * configure: Regenerate.
1460 * config.in: Regenerate.
1461
1462 2015-07-16 Richard Biener <rguenther@suse.de>
1463
1464 * fold-const.c (fold_widened_comparison): Remove.
1465 (fold_sign_changed_comparison): Likewise.
1466 (fold_comparison): Move widened and sign-changed comparison
1467 simplification ...
1468 * match.pd: ... to patterns here.
1469 * generic-match-head.c: Include target.h.
1470 * gimple-match-head.c: Likewise.
1471
1472 2015-07-16 Richard Biener <rguenther@suse.de>
1473
1474 * tree-ssa-dom.c (dom_valueize): New function.
1475 (record_temporary_equivalences): Also record equivalences
1476 for dominating stmts that have uses of equivalences we are
1477 about to record.
1478
1479 2015-07-16 Bin Cheng <bin.cheng@arm.com>
1480
1481 * tree-ssa-loop-ivopts.c (add_candidate): Remove call to
1482 add_autoinc_candidates.
1483 (add_iv_candidate_for_biv): Rename to add_iv_candidate_for_biv.
1484 (add_iv_candidate_for_biv): Rename from add_iv_candidate_for_biv.
1485 (add_old_ivs_candidates): Rename to add_iv_candidate_for_bivs.
1486 (add_iv_candidate_for_bivs): Rename from add_old_ivs_candidates.
1487 Call new function.
1488 (add_iv_value_candidates): Rename to add_iv_candidate_for_use.
1489 (add_iv_candidate_for_use): Rename from add_iv_value_candidates.
1490 Remove parameter struct iv*. Call add_autoinc_candidates here.
1491 (add_derived_ivs_candidates): Rename to add_iv_candidate_for_uses.
1492 (add_iv_candidate_for_uses): Rename from add_derived_ivs_candidates.
1493 Call new function.
1494 (find_iv_candidates): Call new functions.
1495
1496 2015-07-16 Sandra Loosemore <sandra@codesourcery.com>
1497
1498 * config/nios2/nios2.c (nios2_emit_stack_limit_check): Fix
1499 uninitialized-variable warning.
1500
1501 2015-07-16 Kaz Kojima <kkojima@gcc.gnu.org>
1502
1503 PR target/65249
1504 * config/sh/sh.md (movdi): Split simple reg move to two movsi
1505 when the destination is R0.
1506
1507 2015-07-16 Uros Bizjak <ubizjak@gmail.com>
1508
1509 PR target/66866
1510 * config/i386/i386-protos.h (ix86_expand_pextr): New prototype.
1511 * config/i386/i386.c (ix86_expand_pextr): New function.
1512 (ix86_expand_pinsr): Handle V1TI and TI modes. Call ix86_expand_pextr
1513 for non-lowpart subregs.
1514 * config/i386/i386.md (extzv<mode>): Expand with ix86_expand_pextr.
1515 (insv<mode>): Use SWI248 mode iterator.
1516 (insv<mode>_1): Ditto.
1517
1518 2015-07-15 Aditya Kumar <aditya.k7@samsung.com>
1519 Sebastian Pop <s.pop@samsung.com>
1520
1521 * graphite-sese-to-poly.c (rewrite_cross_bb_scalar_deps): Point
1522 iterator to use_stmt.
1523
1524 2015-07-15 Aditya Kumar <aditya.k7@samsung.com>
1525 Sebastian Pop <s.pop@samsung.com>
1526
1527 * graphite-scop-detection.c (build_scops_1): Discard scops for
1528 which entry==exit.
1529
1530 2015-07-15 Aditya Kumar <aditya.k7@samsung.com>
1531 Sebastian Pop <s.pop@samsung.com>
1532
1533 * graphite-scop-detection.c (stmt_simple_for_scop_p): Bail out in
1534 case of a return statement in scop.
1535
1536 2015-07-15 Aditya Kumar <aditya.k7@samsung.com>
1537 Sebastian Pop <s.pop@samsung.com>
1538
1539 * graphite-sese-to-poly.c (parameter_index_in_region): Only handle
1540 INTEGER_TYPE parameters.
1541 (scan_tree_for_params): Handle REAL_CST, COMPLEX_CST, and
1542 VECTOR_CST in scan_tree_for_params.
1543 (add_conditions_to_domain): Only constrain on INTEGER_TYPE.
1544
1545 2015-07-15 Andrew MacLeod <amacleod@redhat.com>
1546
1547 * gimple-pretty-print.h: Don't include pretty-print.h.
1548 * tree-streamer.h: Don't include lto-streamer.h.
1549 * gimple-streamer.h: Include tree-streamer.h rather than lto-streamer.h.
1550 * gimple-streamer-in.c: Remove redundant includes.
1551 * gimple-streamer-out.c: Likewise.
1552 * ipa-devirt.c: Likewise.
1553 * ipa-icf.c: Likewise.
1554 * ipa-inline-analysis.c: Likewise.
1555 * ipa-polymorphic-call.c: Likewise.
1556 * ipa-profile.c: Likewise.
1557 * ipa-prop.c: Likewise.
1558 * ipa-pure-const.c: Likewise.
1559 * lto-cgraph.c: Likewise.
1560 * lto-streamer-in.c: Likewise.
1561 * lto-streamer-out.c: Likewise.
1562 * lto-streamer.c: Likewise.
1563 * tree-streamer-in.c: Likewise.
1564 * tree-streamer-out.c: Likewise.
1565 * tree-streamer.c: Likewise.
1566
1567 2015-07-15 Andrew MacLeod <amacleod@redhat.com>
1568
1569 * opth-gen.awk: Check for UNKNOWN_LOCATION rather than GCC_TM_H, don't
1570 include input.h.
1571 * opts.c: Remove multiline #include comment.
1572
1573 2015-07-15 Nathan Sidwell <nathan@codesourcery.com>
1574
1575 * config/nvptx/mkoffload.c (process): Add C++ protection to
1576 emitted code.
1577
1578 2015-07-14 Michael Meissner <meissner@linux.vnet.ibm.com>
1579
1580 PR target/66854
1581 * config/rs6000/rs6000.c (rs6000_pass_by_reference): Move test for
1582 null before IEEE 128-bit floating point support patch.
1583
1584 2015-07-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1585
1586 * simplify-rtx.c (simplify_ternary_operation): Add simplification
1587 for (!c) != {0,...,0} ? a : b for vector modes.
1588
1589 2015-07-15 Paolo Bonzini <bonzini@gnu.org>
1590 Martin Jambor <mjambor@suse.cz>
1591
1592 * ipa-inline-analysis.c (unmodified_parm_or_parm_agg_item): Accept
1593 struct func_body_info* instead of struct ipa_node_params*, expecting
1594 fbi->info to be filled in. Replace throughout. Adjust call to
1595 ipa_load_from_parm_agg.
1596 (set_cond_stmt_execution_predicate): Accept struct func_body_info*
1597 instead of struct ipa_node_params*. Adjust calls to other functions
1598 so that they pass either fbi or fbi->info.
1599 (set_switch_stmt_execution_predicate): Likewise.
1600 (will_be_nonconstant_predicate): Likewise.
1601 (compute_bb_predicates): Likewise.
1602 (estimate_function_body_sizes): Move asserts earlier. Fill in
1603 struct func_body_info, replace parms_info with fbi.info. Adjust
1604 calls to functions that now accept struct func_body_info.
1605 * ipa-prop.c (param_aa_status, struct ipa_bb_info): Move to ipa-prop.h.
1606 (struct func_body_info): Likewise.
1607 (ipa_load_from_parm_agg_1): Rename to ipa_load_from_parm_agg,
1608 remove static. Adjust callers.
1609 (ipa_load_from_parm_agg): Remove.
1610 * ipa-prop.h (param_aa_status, ipa_bb_info): Move from ipa-prop.c.
1611 (func_body_info): Likewise.
1612 (ipa_load_from_parm_agg): Adjust prototype.
1613
1614 2015-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1615
1616 * gensupport.c (rtx_handle_directive): Adjust.
1617 * read-rtl.c (apply_iterators): Take vector to add rtxs to
1618 instead of expr list rtx.
1619 (add_define_attr_for_define_subst): Likewise.
1620 (add_define_subst_attr): Likewise.
1621 (read_subst_mapping): Likewise.
1622 (read_rtx): Likewise.
1623 * rtl.h (read_rtx): Adjust.
1624
1625 2015-07-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1626
1627 * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use cinc mnemonic.
1628
1629 2015-07-15 Uros Bizjak <ubizjak@gmail.com>
1630
1631 PR target/58066
1632 * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Depend on SP_REG.
1633 (*tls_local_dynamic_base_64_<mode>): Ditto.
1634 (*tls_local_dynamic_base_64_largepic): Ditto.
1635 (tls_global_dynamic_64_<mode>): Update expander pattern.
1636 (tls_local_dynamic_base_64_<mode>): Ditto.
1637
1638 2015-07-15 Richard Biener <rguenther@suse.de>
1639
1640 * fold-const.c (fold_binary_loc): Move bool_var != 0 -> bool_var
1641 and bool_var == 1 -> bool_var simplifications ...
1642 * match.pd: ... to patterns here. Factor out negate_expr_p
1643 cases from the A - B -> A + (-B) patterns as negate_expr_p
1644 predicate and add a -(A + B) -> (-B) - A pattern.
1645
1646 2015-07-15 Robert Suchanek <robert.suchanek@imgtec.com>
1647
1648 * config/mips/mips.c (mips_emit_save_slot_move): Fix typo.
1649
1650 2015-07-15 Matthew Fortune <matthew.fortune@imgtec.com>
1651 Robert Suchanek <robert.suchanek@imgtec.com>
1652
1653 * config/mips/mips.c (mips_int_mask): New enum.
1654 (mips_shadow_set): Likewise.
1655 (int_mask): New variable.
1656 (use_shadow_register_set_p): Change type to enum mips_shadow_set.
1657 (machine_function): Add int_mask and use_shadow_register_set.
1658 (mips_attribute_table): Add attribute handlers for interrupt and
1659 use_shadow_register_set.
1660 (mips_interrupt_mask): New static function.
1661 (mips_handle_interrupt_attr): Likewise.
1662 (mips_handle_use_shadow_register_set_attr): Likewise.
1663 (mips_use_shadow_register_set): Change return type to enum
1664 mips_shadow_set. Add argument handling for use_shadow_register_set
1665 attribute.
1666 (mips_interrupt_extra_called_saved_reg_p): Update the conditional to
1667 compare with mips_shadow_set enum.
1668 (mips_compute_frame_info): Add interrupt mask and
1669 use_shadow_register_set to per-function information structure.
1670 Add a stack slot for EPC unconditionally.
1671 (mips_expand_prologue): Compare use_shadow_register_set value
1672 with mips_shadow_set enum. Save EPC always in K1, clobber only K1 for
1673 masked interrupt register but in EIC mode use K0 and save Cause in K0.
1674 EPC saved and restored unconditionally. Use PMODE_INSN macro when
1675 copying the stack pointer from the shadow register set.
1676 * config/mips/mips.h (SR_IM0): New define.
1677 * config/mips/mips.md (mips_rdpgpr): Rename to...
1678 (mips_rdpgpr_<mode>): ...this. Use the Pmode iterator.
1679 * doc/extend.texi (Declaring Attributes of Functions): Document
1680 optional arguments for interrupt and use_shadow_register_set
1681 attributes.
1682
1683 2015-07-15 Robert Suchanek <robert.suchanek@imgtec.com>
1684
1685 * config/mips/mips.c (mips_compute_frame_info): Allow -mhard-float in
1686 interrupt attribute.
1687 (mips_expand_prologue): Disable the floating point unit in an ISR.
1688 * config/mips/mips.h (SR_COP1): New define.
1689
1690 2015-07-15 Richard Biener <rguenther@suse.de>
1691
1692 * genmatch.c (parser::peek, parser::peek_ident): Add argument
1693 to tell how many tokens to peek ahead (default 1).
1694 (parser::eat_token, parser::eat_ident): Return token consumed.
1695 (parser::parse_result): Parse new switch statement.
1696 * match.pd: Use case statements where appropriate.
1697
1698 2015-07-15 Uros Bizjak <ubizjak@gmail.com>
1699
1700 PR rtl-optimization/58066
1701 * calls.c (expand_call): Precompute register parameters before stack
1702 alignment is performed.
1703
1704 2015-07-15 Uros Bizjak <ubizjak@gmail.com>
1705
1706 PR rtl-optimization/66838
1707 * postreload.c (reload_cse_move2add): Also process
1708 CALL_INSN_FUNCTION_USAGE when resetting information of
1709 call-clobbered registers.
1710
1711 2015-07-14 Sandra Loosemore <sandra@codesourcery.com>
1712 Cesar Philippidis <cesar@codesourcery.com>
1713 Chung-Lin Tang <cltang@codesourcery.com>
1714
1715 * config/nios2/constraints.md (U, v): New constraints.
1716 * config/nios2/predicates.md (rdprs_dcache_operand): New.
1717 (ldstex_memory_operand): New.
1718 * config/nios2/sync.md: New file.
1719 * config/nios2/nios2.md (unspecv): Add new builtin function
1720 UNSPECV codes.
1721 (rdprs, flushd, flushda, wrpie, eni): New patterns.
1722 (top-level): Include sync.md.
1723 * config/nios2/nios2.c (N2_FTYPES): Add function types for
1724 new builtins.
1725 (N2_BUILTINS): Add arch field setting, add new builtins.
1726 (enum nios2_builtin_code,nios2_builtins): Update N2_BUILTIN_DEF
1727 for arch field.
1728 (nios2_expand_ldst_builtin): Rename from nios2_expand_ldstio_builtin.
1729 Also handle ldex/stex/ldsex/stsex builtins.
1730 (nios2_expand_rdprs_builtin): New function.
1731 (nios2_expand_cache_builtin): New function.
1732 (nios2_expand_wrpie_builtin): New function.
1733 (nios2_expand_eni_builtin): New function.
1734 (nios2_expand_builtin): Add arch field handling and new builtin
1735 cases.
1736 * doc/extend.texi (Altera Nios II Built-in Functions): Document
1737 new builtins.
1738 * doc/md.texi (Machine Constraints): Document U and v constraints.
1739
1740 2015-07-14 Sandra Loosemore <sandra@codesourcery.com>
1741 Cesar Philippidis <cesar@codesourcery.com>
1742 Chung-Lin Tang <cltang@codesourcery.com>
1743
1744 * config/nios2/nios2-protos.h (nios2_expand_return): Declare.
1745 * config/nios2/nios2.c (struct GTY (()) machine_function): Add
1746 callee_save_reg_size and uses_anonymous_args fields.
1747 (nios2_compute_frame_layout): Update for CDX push.n/pop.n usage.
1748 (nios2_create_cfa_notes): New function.
1749 (nios2_adjust_stack): New function for adjusting stack.
1750 (nios2_expand_prologue): Update for CDX push.n/pop.n usage.
1751 Use nios2_adjust_stack.
1752 (nios2_expand_epilogue): Likewise.
1753 (nios2_expand_return): New function.
1754 (nios2_can_use_return_insn): Update for CDX pop.n usage.
1755 (nios2_setup_incoming_varargs): Set uses_anonymous_args flag.
1756 If TARGET_HAS_CDX, defer pushing regs to nios2_expand_prologue.
1757 * config/nios2/nios2.md (return): Use nios2_expand_return.
1758
1759 2015-07-14 Sandra Loosemore <sandra@codesourcery.com>
1760 Cesar Philippidis <cesar@codesourcery.com>
1761 Chung-Lin Tang <cltang@codesourcery.com>
1762
1763 * config/nios2/predicates.md (pop_operation): New.
1764 (ldwm_operation, stwm_operation): New.
1765 (nios2_hard_register_operand): New.
1766 * config/nios2/nios2-protos.h (pop_operation_p): Declare.
1767 (ldstwm_operation_p): Declare.
1768 (gen_ldstwm_peep): Declare.
1769 * config/nios2/nios2.c: (nios2_ldst_parallel): Declare.
1770 (base_reg_adjustment_p): New.
1771 (pop_operation_p): New.
1772 (CDX_LDSTWM_VALID_REGS_0, CDX_LDSTWM_VALID_REGS_1): Define.
1773 (nios2_ldstwm_regset_p): New.
1774 (ldstwm_operation_p): New.
1775 (gen_ldst): New.
1776 (nios2_ldst_parallel): New.
1777 (struct ldswm_operand): Declare.
1778 (compare_ldstwm_operands): New.
1779 (can_use_cdx_ldstw): New.
1780 (gen_ldstwm_peep): New.
1781 * config/nios2/nios2-ldstwm.sml: New.
1782 * config/nios2/nios2.md: Include ldstwm.md.
1783 * config/nios2/ldstwm.md: Generated.
1784
1785 2015-07-14 Sandra Loosemore <sandra@codesourcery.com>
1786 Cesar Philippidis <cesar@codesourcery.com>
1787 Chung-Lin Tang <cltang@codesourcery.com>
1788
1789 * config/nios2/nios2.h (LABEL_ALIGN): Define.
1790 (REG_ALLOC_ORDER): Define.
1791 (ADJUST_REG_ALLOC_ORDER): Define.
1792 (HONOR_REG_ALLOC_ORDER): Define.
1793 (CDX_REG_P): Define.
1794 (ANDCLEAR_INT): Define.
1795 * config/nios2/nios2-protos.h (nios2_add_insn_asm): Declare.
1796 (nios2_label_align): Declare.
1797 (nios2_cdx_narrow_form_p): Declare.
1798 (nios2_adjust_reg_alloc_order): Declare.
1799 * config/nios2/nios2.c (nios2_rtx_costs): Adjust for BMX zero-extract
1800 operation.
1801 (nios2_large_unspec_reloc_p): New function, split from...
1802 (nios2_legitimate_pic_operand_p): ...here.
1803 (nios2_emit_move_sequence): Add *high/*lo_sum constant expand code.
1804 (nios2_print_operand_punct_valid_p): New.
1805 (nios2_print_operand): Add %., %!, %x, %y, %A. Remove %U.
1806 (split_mem_address): New.
1807 (split_alu_insn): New.
1808 (cdxreg): New.
1809 (cdx_add_immed, cdx_and_immed, cdx_mov_immed, cdx_shift_immed): New.
1810 (enum nios2_add_insn_kind): New.
1811 (nios2_add_insn_names, nios2_add_insn_narrow): New.
1812 (nios2_add_insn_classify): New.
1813 (nios2_add_insn_asm): New.
1814 (nios2_cdx_narrow_form_p): New.
1815 (label_align, min_labelno, max_labelno): New.
1816 (nios2_reorg): New.
1817 (nios2_label_align): New.
1818 (nios2_adjust_reg_alloc_order): New.
1819 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
1820 (TARGET_MACHINE_DEPENDENT_REORG): Define.
1821 * config/nios2/constraints.md (P): New constraint.
1822 * config/nios2/predicates.md (const_and_operand): New.
1823 (and_operand): New.
1824 (stack_memory_operand): New.
1825 * config/nios2/nios2.md (SP_REGNO): Define stack pointer regno.
1826 (length): Update to use nios2_cdx_narrow_form_p().
1827 (type): Add new insn type values.
1828 (control, alu, st, ld, shift): Update insn reservations with
1829 new insn type values.
1830 (*high, *lo_sum): Define new insn patterns for constant generation.
1831 (movqi_internal, movhi_internal, movsi_internal): Reduce
1832 alternatives, update asm template to handle CDX variants, update
1833 type attributes.
1834 (zero_extendhisi2, zero_extendqi<mode>2): Add CDX variants to asm
1835 template, update type attributes.
1836 (extendhisi2, extendqi<mode>2): Likewise.
1837 (addsi3): Change to use function for asm string.
1838 (subsi3): Add CDX notation to asm template, update type attributes.
1839 (negsi3, one_cmplsi3): Likewise.
1840 (andsi3): New pattern, specialized from logical patterns.
1841 (<code>si3): Remove and case, combine alternatives, update asm
1842 template.
1843 (<shift_op>si3): Add CDX notation, update type attributes.
1844 (rotrsi3): Update type attribute.
1845 (*merge, extzv, insv): New insn patterns.
1846 (return): Change to define_expand.
1847 (simple_return): Add CDX notation, update type attributes.
1848 (indirect_jump): Add CDX notation.
1849 (jump): Update asm cases, update length attribute expression.
1850 (*call, *call_value, *sibcall, *sibcall_value): Add CDX variant.
1851 (nios2_cbranch): Update asm cases and length attribute expression
1852 to handle CDX variants.
1853 (nios2_cmp<code>): Update asm template.
1854 (nop): Add CDX notation, update type attributes.
1855 (trap): Add CDX notation.
1856 (ctrapsi4): Update asm cases and length attribute expression to
1857 handle CDX variant.
1858 * doc/md.texi (Machine Constraints): Document P constraint.
1859
1860 2015-07-14 Sandra Loosemore <sandra@codesourcery.com>
1861 Cesar Philippidis <cesar@codesourcery.com>
1862 Chung-Lin Tang <cltang@codesourcery.com>
1863
1864 * config/nios2/nios2.h (SMALL_INT12): New macro.
1865 * config/nios2/nios2.c (nios2_valid_addr_offset_p): New function.
1866 (nios2_valid_addr_expr_p): Use it.
1867 (nios2_symbol_ref_in_small_data_p): Disallow GP-relative addressing
1868 with implicit "io" instructions on R2.
1869 * config/nios2/constraints.md (w): New constraint.
1870 * config/nios2/predicates.md (ldstio_memory_operand): New.
1871 * config/nios2/nios2.md (ld<bhw_uns>io, ld<bh>io): Update memory
1872 operand predicate and constraint.
1873 (ld<bh>io_signed, st<bhw>io>): Likewise.
1874 * doc/md.texi (Machine Constraints): Document w constraint.
1875
1876 2015-07-14 Sandra Loosemore <sandra@codesourcery.com>
1877 Cesar Philippidis <cesar@codesourcery.com>
1878 Chung-Lin Tang <cltang@codesourcery.com>
1879
1880 * config/nios2/nios2.opt (march, mbmx, mcdx): New options.
1881 * config/nios2/nios2-opts.h (enum nios2_arch_type): New enum for
1882 Nios II architecture level.
1883 * config/nios2/nios2.h (TARGET_ARCH_R2): New define.
1884 (TARGET_CPU_CPP_BUILTINS): Add definition of __nios2_arch__ symbol.
1885 (OPTION_DEFAULT_SPECS): Define.
1886 (ASM_SPEC): Add -march= spec strings.
1887 * config/nios2/nios2.c (nios2_option_override): Check for
1888 conflicts involving new options.
1889 * config.gcc (nios2*-*-*): Support --with-arch=.
1890 * doc/invoke.texi (Option Summary, Nios II Options): Document
1891 -march=, -mbmx, and -mcdx.
1892
1893 2015-07-14 Vladimir Makarov <vmakarov@redhat.com>
1894
1895 PR rtl-optimization/66626
1896 * lra-constraints.c (lra_constraints): Prevent equivalence
1897 substitution for static chain pseudo in functions with nonlocal
1898 goto.
1899
1900 2015-07-14 Sandra Loosemore <sandra@codesourcery.com>
1901
1902 * config/nios2/nios2.c (TEMP_REG_NUM): Move define up in file.
1903 (nios2_emit_stack_limit_check): Add size parameter. Handle
1904 -fstack-limit-symbol as well as -fstack-limit-register.
1905 (nios2_expand_prologue): Emit only a single stack limit check,
1906 even if multiple stack adjustments are required.
1907 (nios2_option_override): Diagnose unsupported combination of -fpic
1908 and -stack-limit-symbol.
1909
1910 2015-07-14 H.J. Lu <hongjiu.lu@intel.com>
1911
1912 * Makefile.in (top_srcdir): New.
1913 * configure.ac: Use AM_ZLIB.
1914 * configure: Regeneated.
1915
1916 2015-07-14 Matthias Klose <doko@ubuntu.com>
1917
1918 PR target/66840
1919 * config/rs6000/t-rs6000 (TM_H): Add rs6000-cpus.def.
1920
1921 2015-07-14 Richard Biener <rguenther@suse.de>
1922
1923 PR tree-optimization/66863
1924 * tree-vrp.c (register_edge_assert_for_2): Properly restrict
1925 what we record for conversion use stmt lhs inequalities.
1926
1927 2015-07-14 Richard Biener <rguenther@suse.de>
1928
1929 * genmatch.c (dt_node::gen_kids_1): Fix case label indenting.
1930 (decision_tree::gen_gimple): Likewise.
1931
1932 2015-07-14 Tom de Vries <tom@codesourcery.com>
1933
1934 * gcc.c (greater_than_spec_func): Declare forward.
1935 (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use gt to ignore
1936 -ftree-parallelize-loops={0,1}.
1937 (static_spec_functions): Add greater_than_spec_func function with name
1938 "gt".
1939 (greater_than_spec_func): New function.
1940
1941 2015-07-14 Richard Biener <rguenther@suse.de>
1942
1943 * tree-ssa-dom.c (record_temporary_equivalences): Merge
1944 wideing type conversion case from record_equivalences_from_incoming_edge
1945 and use record_equality to record equivalences.
1946 (record_equivalences_from_incoming_edge): Call
1947 record_temporary_equivalences.
1948
1949 2015-07-14 Richard Biener <rguenther@suse.de>
1950
1951 * genmatch.c (struct operand): Add OP_IF and OP_WITH op_types.
1952 (struct if_expr): New.
1953 (struct with_expr): Likewise.
1954 (is_a_helper): Add helpers for if_expr and with_expr.
1955 (struct simplify): Add simplify_kind enum and member. Remove
1956 ifexpr_vec member.
1957 (simplify::simplify): Adjust.
1958 (lower_commutative): Adjust.
1959 (lower_opt_convert): Likewise.
1960 (lower_cond): Likewise.
1961 (replace_id): Handle with_expr and if_expr.
1962 (lower_for): Adjust.
1963 (dt_simplify::gen_1): New recursive worker, split out from ...
1964 (dt_simplify::gen): ... here. Deal with if and with expansion
1965 recursively.
1966 (capture_info::capture_info): Take context argument
1967 (capture_info::walk_result): Only analyze specific result.
1968 (parser::parse_result): New function.
1969 (parser::parse_simplify): Adjust to parse ifs with then end
1970 else case.
1971 (parser::parse_if): Simplify.
1972 (parser::parse_pattern): Pass down simplify kind.
1973 * match.pd: Convert if structure to new syntax.
1974
1975 2015-07-13 Marek Polacek <polacek@redhat.com>
1976
1977 * rtl.c (rtx_equal_p_cb): Fix typo.
1978
1979 2015-07-13 Andrew MacLeod <amacleod@redhat.com>
1980
1981 * omega.h: Don't include config.h, don't include params.h again if
1982 omega.h has already been included.
1983 * graphite-poly.h: Include sese.h.
1984 * graphite.c: Don't include sese.h, remove needless includes and
1985 minimize includes outside #ifdef HAVE_isl block.
1986 * graphite-blocking.c: Don't include sese.h, remove needless includes,
1987 and wrap entire file in #ifdef HAVE_isl
1988 * graphite-dependences.c: Likewise.
1989 * graphite-interchange.c: Likewise.
1990 * graphite-isl-ast-to-gimple.c: Likewise.
1991 * graphite-optimize-isl.c: Likewise.
1992 * graphite-poly.c: Likewise.
1993 * graphite-scop-detection.c: Likewise.
1994 * graphite-sese-to-poly.c: Likewise.
1995
1996 2015-07-13 Tom de Vries <tom@codesourcery.com>
1997
1998 * omp-low.c (build_receiver_ref): Mark *.omp_data_i as non-trapping.
1999
2000 2015-07-13 Renlin Li <renlin.li@arm.com>
2001
2002 PR rtl/66556
2003 * simplify-rtx.c (simplify_const_relational_operation): Add
2004 side_effects_p checks.
2005
2006 2015-07-12 Aldy Hernandez <aldyh@redhat.com>
2007
2008 * bitmap.h: Fix double word typos.
2009 * builtins.c: Same.
2010 * calls.c: Same.
2011 * cfgloopmanip.c: Same.
2012 * cgraph.c: Same.
2013 * cgraph.h: Same.
2014 * cgraphclones.c: Same.
2015 * combine.c: Same.
2016 * config/aarch64/aarch64-protos.h: Same.
2017 * config/aarch64/aarch64.c: Same.
2018 * config/aarch64/aarch64.md: Same.
2019 * config/arm/arm.md: Same.
2020 * config/arm/arm1020e.md: Same.
2021 * config/arm/arm1026ejs.md: Same.
2022 * config/arm/arm926ejs.md: Same.
2023 * config/arm/fa526.md: Same.
2024 * config/arm/fa606te.md: Same.
2025 * config/arm/fa626te.md: Same.
2026 * config/arm/fa726te.md: Same.
2027 * config/arm/fmp626.md: Same.
2028 * config/darwin.c: Same.
2029 * config/epiphany/epiphany.c: Same.
2030 * config/frv/frv.c: Same.
2031 * config/ft32/ft32.c: Same.
2032 * config/gnu-user.h: Same.
2033 * config/h8300/constraints.md: Same.
2034 * config/i386/i386.c: Same.
2035 * config/i386/i386.md: Same.
2036 * config/iq2000/iq2000.md: Same.
2037 * config/mips/mips.c: Same.
2038 * config/mmix/mmix.md: Same.
2039 * config/moxie/moxie.c: Same.
2040 * config/nds32/nds32.md: Same.
2041 * config/pa/pa.h: Same.
2042 * config/rs6000/aix.h: Same.
2043 * config/rs6000/rs6000.h: Same.
2044 * config/sh/sh.c: Same.
2045 * config/tilegx/tilegx.md: Same.
2046 * config/tilepro/gen-mul-tables.cc: Same.
2047 * cse.c: Same.
2048 * dbxout.c: Same.
2049 * doc/invoke.texi: Same.
2050 * dse.c: Same.
2051 * dwarf2out.c: Same.
2052 * final.c: Same.
2053 * gcc.c: Same.
2054 * genmatch.c: Same.
2055 * gimplify.c: Same.
2056 * hash-table.h: Same.
2057 * internal-fn.c: Same.
2058 * ipa-cp.c: Same.
2059 * ipa-devirt.c: Same.
2060 * ipa-icf.c: Same.
2061 * ipa-icf.h: Same.
2062 * ipa-profile.c: Same.
2063 * ipa-prop.c: Same.
2064 * ipa-prop.h: Same.
2065 * ira.c: Same.
2066 * omp-low.c: Same.
2067 * reg-stack.c: Same.
2068 * regcprop.c: Same.
2069 * reorg.c: Same.
2070 * rtl.h: Same.
2071 * sbitmap.h: Same.
2072 * tree-eh.c: Same.
2073 * tree-inline.c: Same.
2074 * tree-sra.c: Same.
2075 * tree-ssa-dom.c: Same.
2076 * tree-ssa-loop-ivopts.c: Same.
2077 * tree-ssa-structalias.c: Same.
2078 * tree-ssa-tail-merge.c: Same.
2079 * tree-ssa-ter.c: Same.
2080 * tree-ssa-threadupdate.c: Same.
2081 * tree-ssa-uninit.c: Same.
2082 * tree-ssanames.c: Same.
2083 * tree-vect-loop-manip.c: Same.
2084 * tree-vrp.c: Same.
2085 * tree.c: Same.
2086 * valtrack.c: Same.
2087 * vec.h: Same.
2088
2089 2015-07-12 Kugan Vivekanandarajah <kuganv@linaro.org>
2090
2091 PR middle-end/66726
2092 * tree-ssa-phiopt.c(factor_out_conditional_conversion): New function.
2093 tree_ssa_phiopt_worker): Call it.
2094
2095 2015-07-12 Kugan Vivekanandarajah <kuganv@linaro.org>
2096
2097 * cse.c (cse_insn): Calculate src_eqv for ZERO_EXTRACT.
2098 * emit-rtl.c (set_for_reg_notes): Allow ZERO_EXTRACT to set
2099 REG_EQUAL note.
2100
2101 2015-07-11 Marek Polacek <polacek@redhat.com>
2102
2103 PR middle-end/66353
2104 * basic-block.h (has_abnormal_call_or_eh_pred_edge_p): New function.
2105 * ira-lives.c (bb_has_abnormal_call_pred): Remove function.
2106 (process_bb_node_lives): Call has_abnormal_call_or_eh_pred_edge_p
2107 rather than bb_has_abnormal_call_pred.
2108 * lra-lives.c (bb_has_abnormal_call_pred): Remove function.
2109 (process_bb_lives): Call has_abnormal_call_or_eh_pred_edge_p
2110 rather than bb_has_abnormal_call_pred.
2111
2112 2015-07-10 Anatoly Sokolov <aesok@post.ru>
2113
2114 * config/v850/v850.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P,
2115 REG_OK_FOR_BASE_P_STRICT, REG_OK_FOR_INDEX_P_STRICT, STRICT,
2116 RTX_OK_FOR_BASE_P, GO_IF_LEGITIMATE_ADDRESS): Remove macros.
2117 * config/v850/v850.c (v850_reg_ok_for_base_, v850_rtx_ok_for_base_p,
2118 v850_legitimate_address_p): New functions.
2119 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
2120
2121 2015-07-10 H.J. Lu <hongjiu.lu@intel.com>
2122
2123 PR target/66819
2124 * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow
2125 indirect sibcall with register arguments if register available
2126 for argument passing.
2127 (init_cumulative_args): Set cfun->machine->arg_reg_available
2128 to (cum->nregs > 0) or to true if function has a variable
2129 argument list.
2130 (function_arg_advance_32): Set cfun->machine->arg_reg_available
2131 to false if cum->nregs <= 0.
2132 * config/i386/i386.h (machine_function): Add arg_reg_available.
2133
2134 2015-07-10 Uros Bizjak <ubizjak@gmail.com>
2135
2136 * config/i386/sse.md (movdi_to_sse): Use gen_lowpart
2137 and gen_higpart instead of gen_rtx_SUBREG.
2138 * config/i386/i386.md
2139 (floatdi<X87MODEF:mode>2_i387_with_xmm splitter): Ditto.
2140 (read-modify peephole2): Use gen_lowpart instead of
2141 gen_rtx_SUBREG for operand 5.
2142
2143 2015-07-10 Andrew MacLeod <amacleod@redhat.com>
2144
2145 * config/tilepro/gen-mul-tables.cc (main): Change include list for
2146 generated files.
2147 * config/tilepro/mul-tables.c: Regenerate.
2148 * config/tilegx/mul-tables.c: Regenerate.
2149
2150 2015-07-10 Richard Biener <rguenther@suse.de>
2151
2152 * fold-const.c (distribute_bit_expr): Remove.
2153 (fold_binary_loc): Move simplifying (A & C1) + (B & C2)
2154 to (A & C1) | (B & C2), distributing (A & B) | (A & C)
2155 to A & (B | C) and simplifying A << C1 << C2 to ...
2156 * match.pd: ... patterns here.
2157
2158 2015-07-10 Jiong Wang <jiong.wang@arm.com>
2159
2160 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
2161 Mark mem as READONLY and NOTRAP for PIC symbol.
2162
2163 2015-07-10 Andrew MacLeod <amacleod@redhat.com>
2164
2165 * gimple-predict.h: New file.
2166 (gimple_predict_predictor, gimple_predict_set_predictor,
2167 gimple_predict_outcome, gimple_predict_set_outcome,
2168 gimple_build_predict): Relocate here.
2169 * gimple.h (gimple_predict_predictor, gimple_predict_set_predictor,
2170 gimple_predict_outcome, gimple_predict_set_outcome): Move to
2171 gimple-predict.h.
2172 * gimple.c (gimple_build_predict): Move to gimple-predict.h
2173 * basic-block.h: Don't include cfghooks.h.
2174 * backend.h: Don't include predict.h.
2175 * cfghooks.h: Include predict.h.
2176 * gimple-pretty-print.c: Include gimple-predict.h.
2177 * gimplify.c: Likwise.
2178 * predict.c: Adjust includes.
2179 * tree-inline.c: Likewise.
2180 * asan.c: Likewise.
2181 * auto-inc-dec.c: Likewise.
2182 * auto-profile.c: Likewise.
2183 * bb-reorder.c: Likewise.
2184 * builtins.c: Likewise.
2185 * caller-save.c: Likewise.
2186 * calls.c: Likewise.
2187 * cfganal.c: Likewise.
2188 * cfgbuild.c: Likewise.
2189 * cfg.c: Likewise.
2190 * cfgcleanup.c: Likewise.
2191 * cfgexpand.c: Likewise.
2192 * cfghooks.c: Likewise.
2193 * cfgloopanal.c: Likewise.
2194 * cfgloop.c: Likewise.
2195 * cfgloopmanip.c: Likewise.
2196 * cfgrtl.c: Likewise.
2197 * cgraph.c: Likewise.
2198 * cgraphunit.c: Likewise.
2199 * combine.c: Likewise.
2200 * cprop.c: Likewise.
2201 * cse.c: Likewise.
2202 * dce.c: Likewise.
2203 * dojump.c: Likewise.
2204 * dse.c: Likewise.
2205 * except.c: Likewise.
2206 * expmed.c: Likewise.
2207 * expr.c: Likewise.
2208 * final.c: Likewise.
2209 * fold-const.c: Likewise.
2210 * function.c: Likewise.
2211 * fwprop.c: Likewise.
2212 * gcc-plugin.h: Likewise.
2213 * gcse.c: Likewise.
2214 * genattrtab.c: Likewise.
2215 * genemit.c: Likewise.
2216 * gengtype.c: Likewise.
2217 * genopinit.c: Likewise.
2218 * genoutput.c: Likewise.
2219 * genpreds.c: Likewise.
2220 * genrecog.c: Likewise.
2221 * gimple-fold.c: Likewise.
2222 * gimple-iterator.c: Likewise.
2223 * gimple-ssa-isolate-paths.c: Likewise.
2224 * gimple-ssa-strength-reduction.c: Likewise.
2225 * graph.c: Likewise.
2226 * graphite-blocking.c: Likewise.
2227 * graphite.c: Likewise.
2228 * graphite-dependences.c: Likewise.
2229 * graphite-interchange.c: Likewise.
2230 * graphite-isl-ast-to-gimple.c: Likewise.
2231 * graphite-optimize-isl.c: Likewise.
2232 * graphite-poly.c: Likewise.
2233 * graphite-scop-detection.c: Likewise.
2234 * graphite-sese-to-poly.c: Likewise.
2235 * haifa-sched.c: Likewise.
2236 * ifcvt.c: Likewise.
2237 * internal-fn.c: Likewise.
2238 * ipa-cp.c: Likewise.
2239 * ipa-profile.c: Likewise.
2240 * ipa-split.c: Likewise.
2241 * ipa-utils.c: Likewise.
2242 * ira-build.c: Likewise.
2243 * ira-color.c: Likewise.
2244 * ira-conflicts.c: Likewise.
2245 * ira-costs.c: Likewise.
2246 * ira-emit.c: Likewise.
2247 * ira-lives.c: Likewise.
2248 * jump.c: Likewise.
2249 * loop-doloop.c: Likewise.
2250 * loop-init.c: Likewise.
2251 * loop-invariant.c: Likewise.
2252 * loop-unroll.c: Likewise.
2253 * lower-subreg.c: Likewise.
2254 * lra-assigns.c: Likewise.
2255 * lra.c: Likewise.
2256 * lra-coalesce.c: Likewise.
2257 * lra-constraints.c: Likewise.
2258 * lra-lives.c: Likewise.
2259 * lto-cgraph.c: Likewise.
2260 * lto-streamer-in.c: Likewise.
2261 * mode-switching.c: Likewise.
2262 * modulo-sched.c: Likewise.
2263 * omp-low.c: Likewise.
2264 * optabs.c: Likewise.
2265 * passes.c: Likewise.
2266 * postreload.c: Likewise.
2267 * postreload-gcse.c: Likewise.
2268 * profile.c: Likewise.
2269 * recog.c: Likewise.
2270 * regstat.c: Likewise.
2271 * reload1.c: Likewise.
2272 * reorg.c: Likewise.
2273 * rtlanal.c: Likewise.
2274 * sched-ebb.c: Likewise.
2275 * sel-sched-ir.c: Likewise.
2276 * sese.c: Likewise.
2277 * shrink-wrap.c: Likewise.
2278 * simplify-rtx.c: Likewise.
2279 * stmt.c: Likewise.
2280 * store-motion.c: Likewise.
2281 * tracer.c: Likewise.
2282 * trans-mem.c: Likewise.
2283 * tree-call-cdce.c: Likewise.
2284 * tree-cfg.c: Likewise.
2285 * tree-cfgcleanup.c: Likewise.
2286 * tree-chkp.c: Likewise.
2287 * tree-complex.c: Likewise.
2288 * tree-eh.c: Likewise.
2289 * tree-if-conv.c: Likewise.
2290 * tree-loop-distribution.c: Likewise.
2291 * tree-outof-ssa.c: Likewise.
2292 * tree-parloops.c: Likewise.
2293 * tree-predcom.c: Likewise.
2294 * tree-pretty-print.c: Likewise.
2295 * tree-profile.c: Likewise.
2296 * tree-sra.c: Likewise.
2297 * tree-ssa.c: Likewise.
2298 * tree-ssa-coalesce.c: Likewise.
2299 * tree-ssa-dce.c: Likewise.
2300 * tree-ssa-dom.c: Likewise.
2301 * tree-ssa-forwprop.c: Likewise.
2302 * tree-ssa-ifcombine.c: Likewise.
2303 * tree-ssa-loop-ch.c: Likewise.
2304 * tree-ssa-loop-im.c: Likewise.
2305 * tree-ssa-loop-ivcanon.c: Likewise.
2306 * tree-ssa-loop-ivopts.c: Likewise.
2307 * tree-ssa-loop-manip.c: Likewise.
2308 * tree-ssa-loop-prefetch.c: Likewise.
2309 * tree-ssa-loop-unswitch.c: Likewise.
2310 * tree-ssa-math-opts.c: Likewise.
2311 * tree-ssa-phiopt.c: Likewise.
2312 * tree-ssa-pre.c: Likewise.
2313 * tree-ssa-reassoc.c: Likewise.
2314 * tree-ssa-sink.c: Likewise.
2315 * tree-ssa-tail-merge.c: Likewise.
2316 * tree-ssa-threadedge.c: Likewise.
2317 * tree-ssa-threadupdate.c: Likewise.
2318 * tree-switch-conversion.c: Likewise.
2319 * tree-tailcall.c: Likewise.
2320 * tree-vect-data-refs.c: Likewise.
2321 * tree-vect-loop.c: Likewise.
2322 * tree-vect-loop-manip.c: Likewise.
2323 * tree-vectorizer.c: Likewise.
2324 * tree-vrp.c: Likewise.
2325 * ubsan.c: Likewise.
2326 * value-prof.c: Likewise.
2327 * varasm.c: Likewise.
2328 * var-tracking.c: Likewise.
2329 * config/aarch64/aarch64-builtins.c: Likewise.
2330 * config/aarch64/aarch64.c: Likewise.
2331 * config/aarch64/cortex-a57-fma-steering.c: Likewise.
2332 * config/alpha/alpha.c: Likewise.
2333 * config/arc/arc.c: Likewise.
2334 * config/arm/arm.c: Likewise.
2335 * config/avr/avr.c: Likewise.
2336 * config/bfin/bfin.c: Likewise.
2337 * config/c6x/c6x.c: Likewise.
2338 * config/cr16/cr16.c: Likewise.
2339 * config/cris/cris.c: Likewise.
2340 * config/darwin.c: Likewise.
2341 * config/darwin-c.c: Likewise.
2342 * config/epiphany/epiphany.c: Likewise.
2343 * config/epiphany/mode-switch-use.c: Likewise.
2344 * config/epiphany/resolve-sw-modes.c: Likewise.
2345 * config/fr30/fr30.c: Likewise.
2346 * config/frv/frv.c: Likewise.
2347 * config/ft32/ft32.c: Likewise.
2348 * config/h8300/h8300.c: Likewise.
2349 * config/i386/i386.c: Likewise.
2350 * config/i386/winnt.c: Likewise.
2351 * config/ia64/ia64.c: Likewise.
2352 * config/iq2000/iq2000.c: Likewise.
2353 * config/lm32/lm32.c: Likewise.
2354 * config/m32c/m32c.c: Likewise.
2355 * config/m32r/m32r.c: Likewise.
2356 * config/m68k/m68k.c: Likewise.
2357 * config/mcore/mcore.c: Likewise.
2358 * config/mep/mep.c: Likewise.
2359 * config/microblaze/microblaze.c: Likewise.
2360 * config/mips/mips.c: Likewise.
2361 * config/mmix/mmix.c: Likewise.
2362 * config/mn10300/mn10300.c: Likewise.
2363 * config/moxie/moxie.c: Likewise.
2364 * config/msp430/msp430.c: Likewise.
2365 * config/nds32/nds32.c: Likewise.
2366 * config/nds32/nds32-cost.c: Likewise.
2367 * config/nds32/nds32-fp-as-gp.c: Likewise.
2368 * config/nds32/nds32-intrinsic.c: Likewise.
2369 * config/nds32/nds32-isr.c: Likewise.
2370 * config/nds32/nds32-md-auxiliary.c: Likewise.
2371 * config/nds32/nds32-memory-manipulation.c: Likewise.
2372 * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
2373 * config/nds32/nds32-predicates.c: Likewise.
2374 * config/nios2/nios2.c: Likewise.
2375 * config/nvptx/nvptx.c: Likewise.
2376 * config/pa/pa.c: Likewise.
2377 * config/pdp11/pdp11.c: Likewise.
2378 * config/rl78/rl78.c: Likewise.
2379 * config/rs6000/rs6000.c: Likewise.
2380 * config/rx/rx.c: Likewise.
2381 * config/s390/s390.c: Likewise.
2382 * config/sh/sh.c: Likewise.
2383 * config/sh/sh-mem.cc: Likewise.
2384 * config/sh/sh_optimize_sett_clrt.cc: Likewise.
2385 * config/sh/sh_treg_combine.cc: Likewise.
2386 * config/sparc/sparc.c: Likewise.
2387 * config/spu/spu.c: Likewise.
2388 * config/stormy16/stormy16.c: Likewise.
2389 * config/tilegx/tilegx.c: Likewise.
2390 * config/tilepro/tilepro.c: Likewise.
2391 * config/v850/v850.c: Likewise.
2392 * config/vax/vax.c: Likewise.
2393 * config/visium/visium.c: Likewise.
2394 * config/xtensa/xtensa.c: Likewise.
2395
2396 2015-07-10 Richard Biener <rguenther@suse.de>
2397
2398 * genmatch.c (dt_node::gen_kids_1): Fix indenting of case labels.
2399 (decision_tree::gen_gimple): Likewise.
2400 (decision_tree::gen_generic): Likewise.
2401
2402 2015-07-10 Uros Bizjak <ubizjak@gmail.com>
2403
2404 PR target/66813
2405 * config/i386/i386.c (ix86_md_asm_adjust): Emit movstrictqi
2406 sequence for TARGET_ZERO_EXTEND_WITH_AND targets.
2407
2408 2015-07-10 Jakub Jelinek <jakub@redhat.com>
2409
2410 PR middle-end/66820
2411 * gimplify.c (maybe_fold_stmt): Don't fold in ORT_PARALLEL
2412 or ORT_TASK contexts.
2413 * omp-low.c (lower_omp): Call fold_stmt even if taskreg_nesting_level
2414 is non-zero.
2415
2416 2015-07-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2417
2418 * expr.c (expand_cond_expr_using_cmove): Fix typos in comment
2419 above function.
2420
2421 2015-07-10 Tom de Vries <tom@codesourcery.com>
2422
2423 * tree-parloops.c (try_transform_to_exit_first_loop_alt): If not found,
2424 insert nit + 1 bound.
2425
2426 2015-07-10 Richard Biener <rguenther@suse.de>
2427
2428 * tree-if-conv.c (if_convertible_gimple_assign_stmt_p):
2429 Use ifcvt_could_trap_p also when not flag_tree_loop_if_convert_stores.
2430 (if_convertible_loop_p_1): For this always compute bb predicates.
2431 (if_convertible_loop_p): And free them.
2432
2433 2015-07-10 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
2434
2435 * ipa-icf.c (sem_item_optimizer::do_congruence_step): Fix typo
2436 in dump message.
2437
2438 2015-07-10 Richard Biener <rguenther@suse.de>
2439
2440 PR tree-optimization/66823
2441 * tree-if-conv.c (memrefs_read_or_written_unconditionally): Fix
2442 inverted predicate.
2443
2444 2015-07-09 Steve Ellcey <sellcey@imgtec.com>
2445
2446 * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): Update
2447 to handle mips[32|64]r3 and mips[32|64]r5.
2448
2449 2015-07-09 Jakub Jelinek <jakub@redhat.com>
2450
2451 PR middle-end/66633
2452 * tree-nested.c (get_static_chain): Or in a flag into
2453 info->static_chain_added.
2454 (get_frame_field, get_nonlocal_debug_decl): Likewise.
2455 (convert_nonlocal_omp_clauses, convert_local_omp_clauses): Revert
2456 2015-07-01 changes.
2457 (convert_tramp_reference_stmt): If a frame_decl or chain_decl
2458 is needed newly inside of GIMPLE_OMP_{PARALLEL,TASK,TARGET} body,
2459 add it to clauses.
2460
2461 PR tree-optimization/66718
2462 * tree-vect-stmts.c (struct simd_call_arg_info): Add simd_lane_linear
2463 field.
2464 (vect_simd_lane_linear): New function.
2465 (vectorizable_simd_clone_call): Support using linear arguments for
2466 addresses of arrays elements indexed by GOMP_SIMD_LANE result.
2467
2468 2015-07-09 H.J. Lu <hongjiu.lu@intel.com>
2469
2470 PR target/66821
2471 * config/i386/i386.c (iamcu_cost): Adjust variable shift costs.
2472
2473 2015-07-09 Michael Meissner <meissner@linux.vnet.ibm.com>
2474
2475 * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_memory):
2476 Use machine mode, not enum machine_mode in the prototype.
2477
2478 * config/rs6000/rs6000.h (FLOAT128_IEEE_P): New helper macros to
2479 classify 128-bit floating point support.
2480 (FLOAT128_IBM_P): Likewise.
2481 (FLOAT128_VECTOR_P): Likewise.
2482 (FLOAT128_2REG_P): Likewise.
2483 (SCALAR_FLOAT_MODE_NOT_VECTOR_P): Likewise.
2484 (SLOW_UNALIGNED_ACCESS): Add IEEE 128-bit floating point support.
2485 (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
2486 (HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
2487
2488 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Drop
2489 tests against TFmode/TDmode, since those modes do not use VSX
2490 addresses.
2491 (rs6000_hard_regno_mode_ok): Add IEEE 128-bit floating point
2492 support.
2493 (rs6000_init_hard_regno_mode_ok): Use new helper macros instead of
2494 tests against TFmode, etc.
2495 (invalid_e500_subreg): Add tests against IFmode/KFmode.
2496 (reg_offset_addressing_ok_p): Likewise.
2497 (rs6000_legitimate_offset_address_p): Likewise.
2498 (rs6000_legitimize_address): Likewise.
2499 (rs6000_legitimize_reload_address): Likewise.
2500 (rs6000_legitimate_address_p): Clean up tests against TFmode and
2501 TDmode to use the new helper macros, which will include IFmode and
2502 KFmode.
2503 (rs6000_emit_move): Likewise.
2504 (rs6000_darwin64_record_arg_recurse): Likewise.
2505 (print_operand): Likewise.
2506 (rs6000_member_type_forces_blk): Treat IEEE 128-bit floating point
2507 that uses a single vector register as a vector and not as a
2508 floating point register in terms of the calling sequence.
2509 (rs6000_discover_homogeneous_aggregate): Likewise.
2510 (rs6000_return_in_memory): Likewise.
2511 (init_cumulative_args): Likewise.
2512 (rs6000_function_arg_boundary): Likewise.
2513 (rs6000_function_arg_advance_1): Likewise.
2514 (rs6000_function_arg): Likewise.
2515 (rs6000_pass_by_reference): Likewise.
2516 (rs6000_gimplify_va_arg): Likewise.
2517 (rs6000_secondary_reload_memory): Use machine_mode not enum
2518 machine mode.
2519 (rs6000_split_multireg_move): Use new helper macros.
2520 (spe_func_has_64bit_regs_p): Likewise.
2521 (rs6000_output_function_epilogue): Add IFmode/KFmode support.
2522 (output_toc): Use new helper macros.
2523 (rs6000_register_move_cost): Likewise.
2524 (rs6000_function_value): Add IEEE 128-bit floating point calling
2525 sequence support.
2526 (rs6000_libcall_value): Likewise.
2527 (rs6000_scalar_mode_supported_p): Add support for IEEE 128-bit
2528 floating point support.
2529 (rs6000_vector_mode_supported_p): Likewise.
2530
2531 2015-07-09 Vladimir Makarov <vmakarov@redhat.com>
2532
2533 PR rtl-optimization/66782
2534 * lra-int.h (struct lra_insn_recog_data): Add comment about
2535 clobbered hard regs for arg_hard_regs.
2536 * lra.c (lra_set_insn_recog_data): Add clobbered hard regs.
2537 * lra-lives.c (process_bb_lives): Process clobbered hard regs.
2538 Add condition for processing used hard regs.
2539 * lra-constraints.c (update_ebb_live_info, inherit_in_ebb):
2540 Process clobbered hard regs.
2541
2542 2015-07-09 Michael Matz <matz@suse.de>
2543
2544 * genmatch.c (fprintf_indent): New function.
2545 (operand::gen_transform): Add indent parameter.
2546 (expr::gen_transform, c_expr::gen_transform,
2547 capture::gen_transform): Ditto and use fprintf_indent.
2548 (dt_node::gen, dt_node::gen_kids, dt_node::gen_kids_1): Ditto.
2549 (dt_operand::gen, dt_operand::gen_predicate,
2550 dt_operand::gen_match_op, dt_operand::gen_gimple_expr,
2551 dt_operand::gen_generic_expr, dt_simplify::gen): Ditto.
2552 (decision_tree::gen_gimple): Adjust calls and indent generated
2553 code.
2554 (decision_tree::gen_generic): Ditto.
2555 (write_predicate): Ditto.
2556
2557 2015-07-08 Uros Bizjak <ubizjak@gmail.com>
2558
2559 PR target/66814
2560 * config/i386/predicates.md (nonimmediate_gr_operand): New predicate.
2561 * config/i386/i386.md (not peephole2): Use nonimmediate_gr_operand.
2562 (varous peephole2s): Use {GENERAL,SSE,MMX}_REGNO_P instead of
2563 {GENERAL,SSE,MMX}_REG_P where appropriate.
2564
2565 2015-07-09 Andrew MacLeod <amacleod@redhat.com>
2566
2567 * lto-streamer.h: Don't include target.h and alloc-pool.h.
2568 * builtins.c: Adjust includes.
2569 * gimple.c: Likewise.
2570 * ipa-icf.c: Likewise.
2571 * lto-opts.c: Likewise.
2572 * ipa-reference.c: Likewise.
2573 * lto-section-out.c: Likewise.
2574 * lto-streamer-in.c: Likewise.
2575 * lto-streamer-out.c: Likewise.
2576 * opts-global.c: Likewise.
2577 * symtab.c: Likewise.
2578 * tree-chkp.c: Likewise.
2579 * tree-ssa-live.c: Likewise.
2580 * tree-streamer-in.c: Likewise.
2581 * tree-streamer-out.c: Likewise.
2582 * config/darwin.c: Likewise.
2583 * config/i386/winnt.c: Likewise.
2584
2585 2015-07-09 Richard Biener <rguenther@suse.de>
2586
2587 * genmatch.c (struct expr): Add force_single_use flag.
2588 (expr::expr): Add copy constructor.
2589 (capture_info::walk_match): Gather force_single_use captures.
2590 (expr::gen_transform): Use possibly NULLified sequence.
2591 (dt_simplify::gen): Apply single-use restrictions by NULLifying
2592 seq if any constrained expr is not single-use.
2593 (parser::parse_expr): Refactor to allow multiple flags. Handle
2594 's' flag to force an expression have a single-use if the pattern
2595 simplifies to more than one statement.
2596 * match.pd: Convert most single_use conditionals to :s flags.
2597
2598 2015-07-09 H.J. Lu <hongjiu.lu@intel.com>
2599
2600 * config/i386/iamcu.h (ASM_OUTPUT_ALIGNED_BSS): New.
2601 (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
2602 (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
2603
2604 2015-07-09 Andrew MacLeod <amacleod@redhat.com>
2605
2606 * flags.h: Don't include flag-types.h or options.h.
2607 * opts-common.c: Adjust includes.
2608 * opts-global.c: Likewise.
2609 * common/config/epiphany/epiphany-common.c: Likewise.
2610
2611 2015-07-09 H.J. Lu <hongjiu.lu@intel.com>
2612
2613 PR target/66818
2614 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Defined to 32
2615 for IA MCU.
2616
2617 2015-07-09 H.J. Lu <hongjiu.lu@intel.com>
2618
2619 PR target/66817
2620 * config/i386/i386.c (ix86_return_in_memory): Return true
2621 if int_size_in_bytes returns negative for IA MCU.
2622
2623 2015-07-09 Marek Polacek <polacek@redhat.com>
2624
2625 PR tree-optimization/66718
2626 * Makefile.in (OBJS): Add gimple-laddress.o.
2627 * passes.def: Schedule pass_laddress.
2628 * timevar.def (DEFTIMEVAR): Add TV_GIMPLE_LADDRESS.
2629 * tree-pass.h (make_pass_laddress): Declare.
2630 * gimple-laddress.c: New file.
2631
2632 2015-07-09 Richard Biener <rguenther@suse.de>
2633
2634 * toplev.c (compile_file): Reset maximum_field_alignment after parsing.
2635
2636 2015-07-09 Richard Biener <rguenther@suse.de>
2637
2638 PR tree-optimization/66807
2639 * tree-chkp-opt.c (chkp_opt_fini): Free post dominator info.
2640
2641 2015-07-08 Kito Cheng <kito.cheng@gmail.com>
2642
2643 * function.c (stack_protect_epilogue): Use if rather than switch for
2644 check targetm.have_stack_protect_test.
2645
2646 2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2647
2648 * defaults.h: Provide default for WORD_REGISTER_OPERATIONS.
2649 * config/alpha/alpha.h: Define WORD_REGISTER_OPERATIONS to 1.
2650 * config/arc/arc.h: Likewise.
2651 * config/arm/arm.h: Likewise.
2652 * config/bfin/bfin.h: Likewise.
2653 * config/epiphany/epiphany.h: Likewise.
2654 * config/frv/frv.h: Likewise.
2655 * config/ia64/ia64.h: Likewise.
2656 * config/iq2000/iq2000.h: Likewise.
2657 * config/lm32/lm32.h: Likewise.
2658 * config/m32r/m32r.h: Likewise.
2659 * config/mcore/mcore.h: Likewise.
2660 * config/mep/mep.h: Likewise.
2661 * config/microblaze/microblaze.h: Likewise.
2662 * config/mips/mips.h: Likewise.
2663 * config/mmix/mmix.h: Likewise.
2664 * config/mn10300/mn10300.h: Likewise.
2665 * config/nds32/nds32.h: Likewise.
2666 * config/nios2/nios2.h: Likewise.
2667 * config/pa/pa.h: Likewise.
2668 * config/rl78/rl78.h: Likewise.
2669 * config/sh/sh.h: Likewise.
2670 * config/sparc/sparc.h: Likewise.
2671 * config/stormy16/stormy16.h: Likewise.
2672 * config/tilegx/tilegx.h: Likewise.
2673 * config/tilepro/tilepro.h: Likewise.
2674 * config/v850/v850.h: Likewise.
2675 * config/xtensa/xtensa.h: Likewise.
2676 * doc/tm.texi: Regenerate.
2677 * doc/tm.texi.in: Adjust.
2678 * combine.c (simplify_set): Likewise.
2679 (simplify_comparison): Likewise.
2680 * expr.c (store_constructor): Likewise.
2681 * internal-fn.c (expand_arith_overflow): Likewise.
2682 * reload.c (push_reload): Likewise.
2683 (find_reloads): Likewise.
2684 (find_reloads_subreg_address): Likewise.
2685 * reload1.c (eliminate_regs_1): Likewise.
2686 * rtlanal.c (nonzero_bits1): Likewise.
2687 (num_sign_bit_copies1): Likewise.
2688 * simplify-rtx.c (simplify_truncation): Likewise.
2689
2690 2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2691
2692 * auto-inc-dec.c (pass_inc_dec::execute): Don't check the value
2693 of AUTO_INC_DEC with the preprocessor.
2694 * combine.c (combine_instructions): Likewise.
2695 (can_combine_p): Likewise.
2696 (try_combine): Likewise.
2697 * emit-rtl.c (try_split): Likewise.
2698 * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
2699 * lower-subreg.c (resolve_simple_move): Likewise.
2700 * lra.c (update_inc_notes): Likewise.
2701 * recog.c (asm_operand_ok): Likewise.
2702 (constrain_operands): Likewise.
2703 * regrename.c (scan_rtx_address): Likewise.
2704 * reload.c (update_auto_inc_notes): Likewise.
2705 (reg_inc_found_and_valid_p): Likewise.
2706 * reload1.c (reload): Likewise.
2707 (emit_input_reload_insns): Likewise.
2708 (delete_output_reload): Likewise.
2709 * sched-deps.c (init_insn_reg_pressure_info): Likewise.
2710 * valtrack.c (cleanup_auto_inc_dec): Likewise.
2711
2712 2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2713
2714 * rtl.h: Always define AUTO_INC_DEC.
2715 * auto-inc-dec.c (pass_inc_dec::execute): Adjust.
2716 * combine.c (combine_instructions): Likewise.
2717 (can_combine_p): Likewise.
2718 (try_combine): Likewise.
2719 * emit-rtl.c (try_split): Likewise.
2720 * loop-invariant.c (calculate_loop_reg_pressure): Likewise.
2721 * lower-subreg.c (resolve_simple_move): Likewise.
2722 * lra.c (update_inc_notes): Likewise.
2723 * recog.c (asm_operand_ok): Likewise.
2724 (constrain_operands): Likewise.
2725 * regrename.c (scan_rtx_address): Likewise.
2726 * reload.c (update_auto_inc_notes): Likewise.
2727 (find_equiv_reg): Likewise.
2728 * reload1.c (reload): Likewise.
2729 (reload_as_needed): Likewise.
2730 (choose_reload_regs): Likewise.
2731 (emit_input_reload_insns): Likewise.
2732 (delete_output_reload): Likewise.
2733 * sched-deps.c (init_insn_reg_pressure_info): Likewise.
2734 * valtrack.c (cleanup_auto_inc_dec): Likewise.
2735
2736 2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2737
2738 * combine.c (can_combine_def_p): Don't check the value of
2739 HARD_FRAME_POINTER_IS_FRAME_POINTER with the preprocessor.
2740 (combinable_i3pat): Likewise.
2741 (mark_used_regs_combine): Likewise.
2742 * regrename.c (rename_chains): Likewise.
2743 * reload.c (find_reloads_address): Likewise.
2744 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
2745
2746 2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2747
2748 * combine.c (update_rsp_from_reg_equal): Don't check if
2749 SHORT_IMMEDIATES_SIGN_EXTEND is defined.
2750 (reg_nonzero_bits_for_combine): Likewise.
2751 * config/alpha/alpha.h: Define SHORT_IMMEDIATES_SIGN_EXTEND to
2752 1.
2753 * config/frv/frv.h: Likewise.
2754 * config/lm32/lm32.h: Likewise.
2755 * config/mep/mep.h: Likewise.
2756 * config/mips/mips.h: Likewise.
2757 * config/rs6000/rs6000.h: Likewise.
2758 * config/sh/sh.h: Likewise.
2759 * config/tilegx/tilegx.h (enum reg_class): Likewise.
2760 * config/tilepro/tilepro.h: Likewise.
2761 * defaults.h: Add default for SHORT_IMMEDIATES_SIGN_EXTEND.
2762 * doc/tm.texi: Regenerate.
2763 * doc/tm.texi.in: Adjust.
2764 * rtlanal.c (nonzero_bits1): Likewise.
2765
2766 2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2767
2768 * combine.c (do_SUBST_MODE): Don't check the value of HAVE_cc0
2769 with the preprocessor.
2770 (combine_instructions): Likewise.
2771 (try_combine): Likewise.
2772 (subst): Likewise.
2773 (distribute_notes): Likewise.
2774
2775 2015-07-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2776
2777 * combine.c (try_combine): Don't check if LOAD_EXTEND_OP is
2778 defined.
2779 (simplify_set): Likewise.
2780 * cse.c (cse_insn): Likewise.
2781 * fold-const.c (fold_single_bit_test): Likewise.
2782 (fold_unary_loc): Likewise.
2783 * postreload.c (reload_cse_simplify_set): Likewise.
2784 (reload_cse_simplify_operands): Likewise.
2785
2786 2015-07-08 Jiong Wang <jiong.wang@arm.com>
2787
2788 * config/aarch64/aarch64.c (aarch64_unspec_may_trap_p): New function.
2789 (TARGET_UNSPEC_MAY_TRAP_P): Define as aarch64_unspec_may_trap_p.
2790
2791 2015-07-08 H.J. Lu <hongjiu.lu@intel.com>
2792
2793 PR target/66746
2794 * config/i386/x86intrin.h: Include <adxintrin.h> even if
2795 __iamcu__ is defined.
2796
2797 2015-07-08 Uros Bizjak <ubizjak@gmail.com>
2798
2799 * config/i386/predicates.md (general_reg_operand): Use GENERAL_REGNO_P.
2800
2801 2015-07-08 Iain Sandoe <iain@codesourcery.com>
2802
2803 PR target/66523
2804 * config/darwin.c (darwin_mark_decl_preserved): Exclude 'L' label
2805 names from preservation.
2806
2807 2015-07-08 H.J. Lu <hongjiu.lu@intel.com>
2808
2809 PR target/66806
2810 * config/i386/i386.c (type_natural_mode): Don't warn vector ABI
2811 change for IAMCU.
2812 (function_arg_advance_32): Don't pass vectors in registers for
2813 IAMCU.
2814 (function_arg_32): Likewise.
2815 (ix86_return_in_memory): Don't return vectors in registers for
2816 IAMCU.
2817
2818 2015-07-08 Vladimir Makarov <vmakarov@redhat.com>
2819
2820 PR middle-end/66334
2821 * ira-lives.c (process_bb_node_lives): Make conflicts with PIC
2822 hard regno live at the start of BB with incoming abnormal edges.
2823 * lra-lives.c (process_bb_lives): Ditto.
2824
2825 2015-07-08 Thomas Schwinge <thomas@codesourcery.com>
2826
2827 PR libgomp/65099
2828 * config/nvptx/mkoffload.c (main): Create an offload image only in
2829 64-bit configurations.
2830
2831 2015-07-08 Martin Liska <mliska@suse.cz>
2832
2833 PR bootstrap/66744
2834 * tree-sra.c (create_access_1): Call ctor without brackets.
2835 (create_artificial_child_access): Likewise.
2836
2837 2015-07-08 Richard Biener <rguenther@suse.de>
2838
2839 PR tree-optimization/66793
2840 * gimple-ssa-isolate-paths.c (insert_trap_and_remove_trailing_statemen):
2841 Properly split the block after stmts ending it.
2842
2843 2015-07-08 Richard Biener <rguenther@suse.de>
2844
2845 PR tree-optimization/66794
2846 * passes.c (execute_function_todo): Assert that post-dominators
2847 are not computed.
2848 * gimple-ssa-isolate-paths.c (gimple_ssa_isolate_erroneous_paths):
2849 Free post-dominators.
2850
2851 2015-07-08 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2852
2853 * config/s390/s390.c (s390_init_frame_layout): Replace assertion
2854 with early exit.
2855
2856 2015-07-08 Uros Bizjak <ubizjak@gmail.com>
2857
2858 * config/i386/i386.md (*jcc_bt<mode>): Only allow const_int values
2859 more than or equal 8 and less than 32 when optimizing for size.
2860
2861 2015-07-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2862
2863 * config/arm/arm.c (arm_new_rtx_costs): Initialise cost to
2864 COSTS_N_INSNS (1) and increment it appropriately throughout the
2865 function.
2866
2867 2015-07-08 Richard Biener <rguenther@suse.de>
2868
2869 * fold-const.c (fold_widened_comparison): Fix inverted comparison.
2870
2871 2015-07-08 Alan Modra <amodra@gmail.com>
2872
2873 * target.def (rtx_costs): Remove "code" param, add "mode".
2874 * rtl.h (rtx_cost, get_full_rtx_cost): Update prototype.
2875 (set_src_cost, get_full_set_src_cost): Likewise. Move later in file.
2876 (set_rtx_cost, get_full_set_rtx_cost): Move later in file.
2877 * rtlanal.c (rtx_cost): Add "mode" parameter. Update targetm.rtx_costs
2878 call. Track mode when given in rtx.
2879 (get_full_rtx_cost): Add "mode" parameter. Update rtx_cost calls.
2880 (default_address_cost): Pass Pmode to rtx_cost.
2881 (insn_rtx_cost): Pass dest mode of set to set_src_cost.
2882 * cprop.c (try_replace_reg): Ensure set_rtx_cost is not called
2883 with NULL set.
2884 * cse.c (COST, COST_IN): Add MODE param. Update all uses.
2885 (notreg_cost): Add mode param. Use it.
2886 * gcse.c (want_to_gcse_p): Delete forward declaration. Add
2887 mode param and pass to set_src_cost. Update all calls.
2888 (hash_scan_set): Formatting.
2889 * hooks.c (hook_bool_rtx_int_int_int_intp_bool_false): Delete.
2890 (hook_bool_rtx_mode_int_int_intp_bool_false): New function.
2891 * hooks.h: Ditto.
2892 * expmed.c (init_expmed_one_conv, init_expmed_one_mode,
2893 init_expmed, expand_mult, mult_by_coeff_cost, expand_smod_pow2,
2894 emit_store_flag): Update set_src_cost and rtx_cost calls.
2895 * auto-inc-dec.c (attempt_change): Likewise.
2896 * calls.c (precompute_register_parameters): Likewise.
2897 * combine.c (expand_compound_operation, make_extraction,
2898 force_to_mode, distribute_and_simplify_rtx): Likewise.
2899 * dojump.c (prefer_and_bit_test): Likewise.
2900 * dse.c (find_shift_sequence): Likewise.
2901 * expr.c (compress_float_constant): Likewise.
2902 * fwprop.c (should_replace_address, try_fwprop_subst): Likewise.
2903 * ifcvt.c (noce_try_sign_mask): Likewise.
2904 * loop-doloop.c (doloop_optimize): Likewise.
2905 * loop-invariant.c (create_new_invariant): Likewise.
2906 * lower-subreg.c (shift_cost, compute_costs): Likewise.
2907 * optabs.c (avoid_expensive_constant, prepare_cmp_insn,
2908 lshift_cheap_p): Likewise.
2909 * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands,
2910 try_replace_in_use, reload_cse_move2add): Likewise.
2911 * reload1.c (calculate_elim_costs_all_insns, note_reg_elim_costly):
2912 Likewise.
2913 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
2914 * tree-ssa-loop-ivopts.c (computation_cost): Likewise.
2915 * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Likewise.
2916 * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
2917 * config/aarch64/aarch64.c (aarch64_rtx_costs): Delete "code" param,
2918 add "mode" param. Use "mode: in place of GET_MODE (x). Pass mode
2919 to rtx_cost calls.
2920 * config/alpha/alpha.c (alpha_rtx_costs): Likewise.
2921 * config/arc/arc.c (arc_rtx_costs): Likewise.
2922 * config/arm/arm.c (arm_rtx_costs): Likewise.
2923 * config/avr/avr.c (avr_rtx_costs, avr_rtx_costs_1): Likewise.
2924 * config/bfin/bfin.c (bfin_rtx_costs): Likewise.
2925 * config/c6x/c6x.c (c6x_rtx_costs): Likewise.
2926 * config/cris/cris.c (cris_rtx_costs): Likewise.
2927 * config/epiphany/epiphany.c (epiphany_rtx_costs): Likewise.
2928 * config/frv/frv.c (frv_rtx_costs): Likewise.
2929 * config/h8300/h8300.c (h8300_rtx_costs): Likewise.
2930 * config/i386/i386.c (ix86_rtx_costs): Likewise.
2931 * config/ia64/ia64.c (ia64_rtx_costs): Likewise.
2932 * config/iq2000/iq2000.c (iq2000_rtx_costs): Likewise.
2933 * config/lm32/lm32.c (lm32_rtx_costs): Likewise.
2934 * config/m32c/m32c.c (m32c_rtx_costs): Likewise.
2935 * config/m32r/m32r.c (m32r_rtx_costs): Likewise.
2936 * config/m68k/m68k.c (m68k_rtx_costs): Likewise.
2937 * config/mcore/mcore.c (mcore_rtx_costs): Likewise.
2938 * config/mep/mep.c (mep_rtx_cost): Likewise.
2939 * config/microblaze/microblaze.c (microblaze_rtx_costs): Likewise.
2940 * config/mips/mips.c (mips_rtx_costs): Likewise.
2941 * config/mmix/mmix.c (mmix_rtx_costs): Likewise.
2942 * config/mn10300/mn10300.c (mn10300_rtx_costs): Likewise.
2943 * config/msp430/msp430.c (msp430_rtx_costs): Likewise.
2944 * config/nds32/nds32-cost.c (nds32_rtx_costs_impl): Likewise.
2945 * config/nds32/nds32-protos.h (nds32_rtx_costs_impl): Likewise.
2946 * config/nds32/nds32.c (nds32_rtx_costs): Likewise.
2947 * config/nios2/nios2.c (nios2_rtx_costs): Likewise.
2948 * config/pa/pa.c (hppa_rtx_costs): Likewise.
2949 * config/pdp11/pdp11.c (pdp11_rtx_costs): Likewise.
2950 * config/rl78/rl78.c (rl78_rtx_costs): Likewise.
2951 * config/rs6000/rs6000.c (rs6000_rtx_costs): Likewise.
2952 * config/s390/s390.c (s390_rtx_costs): Likewise.
2953 * config/sh/sh.c (sh_rtx_costs): Likewise.
2954 * config/sparc/sparc.c (sparc_rtx_costs): Likewise.
2955 * config/spu/spu.c (spu_rtx_costs): Likewise.
2956 * config/stormy16/stormy16.c (xstormy16_rtx_costs): Likewise.
2957 * config/tilegx/tilegx.c (tilegx_rtx_costs): Likewise.
2958 * config/tilepro/tilepro.c (tilepro_rtx_costs): Likewise.
2959 * config/v850/v850.c (v850_rtx_costs): Likewise.
2960 * config/vax/vax.c (vax_rtx_costs): Likewise.
2961 * config/visium/visium.c (visium_rtx_costs): Likewise.
2962 * config/xtensa/xtensa.c (xtensa_rtx_costs): Likewise.
2963 * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Change type of
2964 "code" param, and pass as outer_code to first rtx_cost call. Pass
2965 mode to rtx_cost calls.
2966 (aarch64_address_cost, aarch64_if_then_else_costs): Update rtx_cost
2967 calls.
2968 (aarch64_rtx_costs_wrapper): Update.
2969 * config/arm/arm.c (arm_rtx_costs_1, arm_size_rtx_costs,
2970 arm_unspec_cost, arm_new_rtx_costs, arm_slowmul_rtx_costs): Update
2971 rtx_cost calls.
2972 * config/avr/avr.c (avr_final_prescan_insn): Update set_src_cost
2973 and rtx_cost calls.
2974 (avr_operand_rtx_cost): Similarly.
2975 (avr_rtx_costs_1): Correct mode passed to avr_operand_rtx_cost
2976 for subexpressions of ZERO_EXTEND, SIGN_EXTEND and COMPARE.
2977 * config/mips/mips.c (mips_stack_address_p): Comment typo.
2978 (mips_binary_cost): Update rtx_cost and set_src_cost calls.
2979 (mips_rtx_costs): Use GET_MODE (x) to detect const_int.
2980 * config/mn10300/mn10300.c (mn10300_address_cost): Pass Pmode to
2981 rtx_cost.
2982 (mn10300_rtx_costs): Correct mode passed to mn10300_address_cost.
2983 * config/rs6000/rs6000.c (rs6000_debug_rtx_costs): Update.
2984 * config/sh/sh.c (and_xor_ior_costs): Update rtx_cost call.
2985 * doc/tm.texi: Regenerate.
2986
2987 2015-07-07 Andrew MacLeod <amacleod@redhat.com>
2988
2989 * tree-core.h: Include symtab.h.
2990 * rtl.h: Include hard-reg-set.h but not flags.h.
2991 (HARD_CONST): Remove condition compilation involving HARD_CONST since
2992 hard-reg-set.h is always included.
2993 * regs.h: Don't include hard-reg-set.h or rtl.h.
2994 * cfg.h: Include dominance.h.
2995 * gimple.h: Include tree-ssa-alias.h and gimple-expr.h.
2996 * backend.h: New. Aggregate commonly used backend header files.
2997 * gimple-ssa.h: Don't include tree-hasher.h.
2998 * ssa.h: New. Aggregate commonly used SSA header files.
2999 * regset.h: Remove bitmap.h and hard-reg-set.h #includes.
3000 * sel-sched-ir.h: Flatten includes.
3001 * lra-int.h: Flatten completely.
3002 * sel-sched-dump.h: Flatten includes.
3003 * ira-int.h: Flatten includes.
3004 * gimple-streamer.h: Remove all includes.
3005 * cfgloop.h: Remove all #includes except cfgloopmanip.h.
3006 * resource.h: Flatten hard-reg-set.h and df.h.
3007 * sched-int.h: Flatten insn-arrt.h and df.h.
3008 * valtrack.h: flatten bitmap.h, df.h, and rtl.h
3009 * df.h: Flatten includes, leaving regset.h, alloc-pool.h and timevar.h.
3010 * genattrtab.c (write_header): Adjust generated includes.
3011 * genautomata.c (main): Likewise.
3012 * genconditions.c (write-header): Likewise.
3013 * genemit.c (main): Likewise.
3014 * gengtype.c (open_base_files): Likewise.
3015 * genopinit.c (main): Likewise.
3016 * genoutput.c (output_prologue): Likewise.
3017 * genpeep.c (main): Likewise.
3018 * genpreds.c (write_insn_preds_c): Likewise.
3019 * genrecog.c (write_header): Likewise.
3020 * alias.c: Adjust includes.
3021 * asan.c: Likewise.
3022 * attribs.c: Likewise.
3023 * auto-inc-dec.c: Likewise.
3024 * auto-profile.c: Likewise.
3025 * bb-reorder.c: Likewise.
3026 * bt-load.c: Likewise.
3027 * builtins.c: Likewise.
3028 * caller-save.c: Likewise.
3029 * calls.c: Likewise.
3030 * ccmp.c: Likewise.
3031 * cfg.c: Likewise.
3032 * cfganal.c: Likewise.
3033 * cfgbuild.c: Likewise.
3034 * cfgcleanup.c: Likewise.
3035 * cfgexpand.c: Likewise.
3036 * cfghooks.c: Likewise.
3037 * cfgloop.c: Likewise.
3038 * cfgloopanal.c: Likewise.
3039 * cfgloopmanip.c: Likewise.
3040 * cfgrtl.c: Likewise.
3041 * cgraph.c: Likewise.
3042 * cgraphbuild.c: Likewise.
3043 * cgraphclones.c: Likewise.
3044 * cgraphunit.c: Likewise.
3045 * cilk-common.c: Likewise.
3046 * combine-stack-adj.c: Likewise.
3047 * combine.c: Likewise.
3048 * compare-elim.c: Likewise.
3049 * convert.c: Likewise.
3050 * coverage.c: Likewise.
3051 * cppbuiltin.c: Likewise.
3052 * cprop.c: Likewise.
3053 * cse.c: Likewise.
3054 * cselib.c: Likewise.
3055 * data-streamer-in.c: Likewise.
3056 * data-streamer-out.c: Likewise.
3057 * data-streamer.c: Likewise.
3058 * dbxout.c: Likewise.
3059 * dce.c: Likewise.
3060 * ddg.c: Likewise.
3061 * debug.c: Likewise.
3062 * df-core.c: Likewise.
3063 * df-problems.c: Likewise.
3064 * df-scan.c: Likewise.
3065 * dfp.c: Likewise.
3066 * dojump.c: Likewise.
3067 * dominance.c: Likewise.
3068 * domwalk.c: Likewise.
3069 * double-int.c: Likewise.
3070 * dse.c: Likewise.
3071 * dumpfile.c: Likewise.
3072 * dwarf2asm.c: Likewise.
3073 * dwarf2cfi.c: Likewise.
3074 * dwarf2out.c: Likewise.
3075 * emit-rtl.c: Likewise.
3076 * et-forest.c: Likewise.
3077 * except.c: Likewise.
3078 * explow.c: Likewise.
3079 * expmed.c: Likewise.
3080 * expr.c: Likewise.
3081 * final.c: Likewise.
3082 * fixed-value.c: Likewise.
3083 * fold-const.c: Likewise.
3084 * function.c: Likewise.
3085 * fwprop.c: Likewise.
3086 * gcc-plugin.h: Likewise.
3087 * gcse-common.c: Likewise.
3088 * gcse.c: Likewise.
3089 * generic-match-head.c: Likewise.
3090 * ggc-page.c: Likewise.
3091 * gimple-builder.c: Likewise.
3092 * gimple-expr.c: Likewise.
3093 * gimple-fold.c: Likewise.
3094 * gimple-iterator.c: Likewise.
3095 * gimple-low.c: Likewise.
3096 * gimple-match-head.c: Likewise.
3097 * gimple-pretty-print.c: Likewise.
3098 * gimple-ssa-isolate-paths.c: Likewise.
3099 * gimple-ssa-strength-reduction.c: Likewise.
3100 * gimple-streamer-in.c: Likewise.
3101 * gimple-streamer-out.c: Likewise.
3102 * gimple-walk.c: Likewise.
3103 * gimple.c: Likewise.
3104 * gimplify-me.c: Likewise.
3105 * gimplify.c: Likewise.
3106 * godump.c: Likewise.
3107 * graph.c: Likewise.
3108 * graphite-blocking.c: Likewise.
3109 * graphite-dependences.c: Likewise.
3110 * graphite-interchange.c: Likewise.
3111 * graphite-isl-ast-to-gimple.c: Likewise.
3112 * graphite-optimize-isl.c: Likewise.
3113 * graphite-poly.c: Likewise.
3114 * graphite-scop-detection.c: Likewise.
3115 * graphite-sese-to-poly.c: Likewise.
3116 * graphite.c: Likewise.
3117 * haifa-sched.c: Likewise.
3118 * hw-doloop.c: Likewise.
3119 * ifcvt.c: Likewise.
3120 * init-regs.c: Likewise.
3121 * internal-fn.c: Likewise.
3122 * ipa-chkp.c: Likewise.
3123 * ipa-comdats.c: Likewise.
3124 * ipa-cp.c: Likewise.
3125 * ipa-devirt.c: Likewise.
3126 * ipa-icf-gimple.c: Likewise.
3127 * ipa-icf.c: Likewise.
3128 * ipa-inline-analysis.c: Likewise.
3129 * ipa-inline-transform.c: Likewise.
3130 * ipa-inline.c: Likewise.
3131 * ipa-polymorphic-call.c: Likewise.
3132 * ipa-profile.c: Likewise.
3133 * ipa-prop.c: Likewise.
3134 * ipa-pure-const.c: Likewise.
3135 * ipa-ref.c: Likewise.
3136 * ipa-reference.c: Likewise.
3137 * ipa-split.c: Likewise.
3138 * ipa-utils.c: Likewise.
3139 * ipa-visibility.c: Likewise.
3140 * ipa.c: Likewise.
3141 * ira-build.c: Likewise.
3142 * ira-color.c: Likewise.
3143 * ira-conflicts.c: Likewise.
3144 * ira-costs.c: Likewise.
3145 * ira-emit.c: Likewise.
3146 * ira-lives.c: Likewise.
3147 * ira.c: Likewise.
3148 * jump.c: Likewise.
3149 * langhooks.c: Likewise.
3150 * lcm.c: Likewise.
3151 * loop-doloop.c: Likewise.
3152 * loop-init.c: Likewise.
3153 * loop-invariant.c: Likewise.
3154 * loop-iv.c: Likewise.
3155 * loop-unroll.c: Likewise.
3156 * lower-subreg.c: Likewise.
3157 * lra-assigns.c: Likewise.
3158 * lra-coalesce.c: Likewise.
3159 * lra-constraints.c: Likewise.
3160 * lra-eliminations.c: Likewise.
3161 * lra-lives.c: Likewise.
3162 * lra-remat.c: Likewise.
3163 * lra-spills.c: Likewise.
3164 * lra.c: Likewise.
3165 * lto-cgraph.c: Likewise.
3166 * lto-compress.c: Likewise.
3167 * lto-opts.c: Likewise.
3168 * lto-section-in.c: Likewise.
3169 * lto-section-out.c: Likewise.
3170 * lto-streamer-in.c: Likewise.
3171 * lto-streamer-out.c: Likewise.
3172 * lto-streamer.c: Likewise.
3173 * mcf.c: Likewise.
3174 * mode-switching.c: Likewise.
3175 * modulo-sched.c: Likewise.
3176 * omega.c: Likewise.
3177 * omp-low.c: Likewise.
3178 * optabs.c: Likewise.
3179 * opts-global.c: Likewise.
3180 * passes.c: Likewise.
3181 * plugin.c: Likewise.
3182 * postreload-gcse.c: Likewise.
3183 * postreload.c: Likewise.
3184 * predict.c: Likewise.
3185 * print-rtl.c: Likewise.
3186 * print-tree.c: Likewise.
3187 * profile.c: Likewise.
3188 * real.c: Likewise.
3189 * realmpfr.c: Likewise.
3190 * recog.c: Likewise.
3191 * ree.c: Likewise.
3192 * reg-stack.c: Likewise.
3193 * regcprop.c: Likewise.
3194 * reginfo.c: Likewise.
3195 * regrename.c: Likewise.
3196 * regstat.c: Likewise.
3197 * reload.c: Likewise.
3198 * reload1.c: Likewise.
3199 * reorg.c: Likewise.
3200 * resource.c: Likewise.
3201 * rtl-chkp.c: Likewise.
3202 * rtlanal.c: Likewise.
3203 * rtlhooks.c: Likewise.
3204 * sanopt.c: Likewise.
3205 * sched-deps.c: Likewise.
3206 * sched-ebb.c: Likewise.
3207 * sched-rgn.c: Likewise.
3208 * sched-vis.c: Likewise.
3209 * sdbout.c: Likewise.
3210 * sel-sched-dump.c: Likewise.
3211 * sel-sched-ir.c: Likewise.
3212 * sel-sched.c: Likewise.
3213 * sese.c: Likewise.
3214 * shrink-wrap.c: Likewise.
3215 * simplify-rtx.c: Likewise.
3216 * stack-ptr-mod.c: Likewise.
3217 * stmt.c: Likewise.
3218 * stor-layout.c: Likewise.
3219 * store-motion.c: Likewise.
3220 * stringpool.c: Likewise.
3221 * symtab.c: Likewise.
3222 * target-globals.c: Likewise.
3223 * targhooks.c: Likewise.
3224 * toplev.c: Likewise.
3225 * tracer.c: Likewise.
3226 * trans-mem.c: Likewise.
3227 * tree-affine.c: Likewise.
3228 * tree-browser.c: Likewise.
3229 * tree-call-cdce.c: Likewise.
3230 * tree-cfg.c: Likewise.
3231 * tree-cfgcleanup.c: Likewise.
3232 * tree-chkp-opt.c: Likewise.
3233 * tree-chkp.c: Likewise.
3234 * tree-chrec.c: Likewise.
3235 * tree-complex.c: Likewise.
3236 * tree-data-ref.c: Likewise.
3237 * tree-dfa.c: Likewise.
3238 * tree-diagnostic.c: Likewise.
3239 * tree-dump.c: Likewise.
3240 * tree-eh.c: Likewise.
3241 * tree-emutls.c: Likewise.
3242 * tree-if-conv.c: Likewise.
3243 * tree-inline.c: Likewise.
3244 * tree-into-ssa.c: Likewise.
3245 * tree-iterator.c: Likewise.
3246 * tree-loop-distribution.c: Likewise.
3247 * tree-nested.c: Likewise.
3248 * tree-nrv.c: Likewise.
3249 * tree-object-size.c: Likewise.
3250 * tree-outof-ssa.c: Likewise.
3251 * tree-parloops.c: Likewise.
3252 * tree-phinodes.c: Likewise.
3253 * tree-predcom.c: Likewise.
3254 * tree-pretty-print.c: Likewise.
3255 * tree-profile.c: Likewise.
3256 * tree-scalar-evolution.c: Likewise.
3257 * tree-sra.c: Likewise.
3258 * tree-ssa-address.c: Likewise.
3259 * tree-ssa-alias.c: Likewise.
3260 * tree-ssa-ccp.c: Likewise.
3261 * tree-ssa-coalesce.c: Likewise.
3262 * tree-ssa-copy.c: Likewise.
3263 * tree-ssa-copyrename.c: Likewise.
3264 * tree-ssa-dce.c: Likewise.
3265 * tree-ssa-dom.c: Likewise.
3266 * tree-ssa-dse.c: Likewise.
3267 * tree-ssa-forwprop.c: Likewise.
3268 * tree-ssa-ifcombine.c: Likewise.
3269 * tree-ssa-live.c: Likewise.
3270 * tree-ssa-loop-ch.c: Likewise.
3271 * tree-ssa-loop-im.c: Likewise.
3272 * tree-ssa-loop-ivcanon.c: Likewise.
3273 * tree-ssa-loop-ivopts.c: Likewise.
3274 * tree-ssa-loop-manip.c: Likewise.
3275 * tree-ssa-loop-niter.c: Likewise.
3276 * tree-ssa-loop-prefetch.c: Likewise.
3277 * tree-ssa-loop-unswitch.c: Likewise.
3278 * tree-ssa-loop.c: Likewise.
3279 * tree-ssa-math-opts.c: Likewise.
3280 * tree-ssa-operands.c: Likewise.
3281 * tree-ssa-phiopt.c: Likewise.
3282 * tree-ssa-phiprop.c: Likewise.
3283 * tree-ssa-pre.c: Likewise.
3284 * tree-ssa-propagate.c: Likewise.
3285 * tree-ssa-reassoc.c: Likewise.
3286 * tree-ssa-sccvn.c: Likewise.
3287 * tree-ssa-scopedtables.c: Likewise.
3288 * tree-ssa-sink.c: Likewise.
3289 * tree-ssa-strlen.c: Likewise.
3290 * tree-ssa-structalias.c: Likewise.
3291 * tree-ssa-tail-merge.c: Likewise.
3292 * tree-ssa-ter.c: Likewise.
3293 * tree-ssa-threadedge.c: Likewise.
3294 * tree-ssa-threadupdate.c: Likewise.
3295 * tree-ssa-uncprop.c: Likewise.
3296 * tree-ssa-uninit.c: Likewise.
3297 * tree-ssa.c: Likewise.
3298 * tree-ssanames.c: Likewise.
3299 * tree-stdarg.c: Likewise.
3300 * tree-streamer-in.c: Likewise.
3301 * tree-streamer-out.c: Likewise.
3302 * tree-streamer.c: Likewise.
3303 * tree-switch-conversion.c: Likewise.
3304 * tree-tailcall.c: Likewise.
3305 * tree-vect-data-refs.c: Likewise.
3306 * tree-vect-generic.c: Likewise.
3307 * tree-vect-loop-manip.c: Likewise.
3308 * tree-vect-loop.c: Likewise.
3309 * tree-vect-patterns.c: Likewise.
3310 * tree-vect-slp.c: Likewise.
3311 * tree-vect-stmts.c: Likewise.
3312 * tree-vectorizer.c: Likewise.
3313 * tree-vrp.c: Likewise.
3314 * tree.c: Likewise.
3315 * tsan.c: Likewise.
3316 * ubsan.c: Likewise.
3317 * valtrack.c: Likewise.
3318 * value-prof.c: Likewise.
3319 * var-tracking.c: Likewise.
3320 * varasm.c: Likewise.
3321 * varpool.c: Likewise.
3322 * vmsdbgout.c: Likewise.
3323 * vtable-verify.c: Likewise.
3324 * web.c: Likewise.
3325 * wide-int.cc: Likewise.
3326 * xcoffout.c: Likewise.
3327 * config/aarch64/aarch64-builtins.c: Likewise.
3328 * config/aarch64/aarch64.c: Likewise.
3329 * config/aarch64/cortex-a57-fma-steering.c: Likewise.
3330 * config/alpha/alpha.c: Likewise.
3331 * config/arc/arc.c: Likewise.
3332 * config/arm/aarch-common.c: Likewise.
3333 * config/arm/arm-builtins.c: Likewise.
3334 * config/arm/arm-c.c: Likewise.
3335 * config/arm/arm.c: Likewise.
3336 * config/avr/avr-c.c: Likewise.
3337 * config/avr/avr-log.c: Likewise.
3338 * config/avr/avr.c: Likewise.
3339 * config/bfin/bfin.c: Likewise.
3340 * config/c6x/c6x.c: Likewise.
3341 * config/cr16/cr16.c: Likewise.
3342 * config/cris/cris.c: Likewise.
3343 * config/darwin-c.c: Likewise.
3344 * config/darwin.c: Likewise.
3345 * config/epiphany/epiphany.c: Likewise.
3346 * config/epiphany/mode-switch-use.c: Likewise.
3347 * config/epiphany/resolve-sw-modes.c: Likewise.
3348 * config/fr30/fr30.c: Likewise.
3349 * config/frv/frv.c: Likewise.
3350 * config/ft32/ft32.c: Likewise.
3351 * config/h8300/h8300.c: Likewise.
3352 * config/i386/i386-c.c: Likewise.
3353 * config/i386/i386.c: Likewise.
3354 * config/i386/msformat-c.c: Likewise.
3355 * config/i386/winnt-cxx.c: Likewise.
3356 * config/i386/winnt-stubs.c: Likewise.
3357 * config/i386/winnt.c: Likewise.
3358 * config/ia64/ia64-c.c: Likewise.
3359 * config/ia64/ia64.c: Likewise.
3360 * config/iq2000/iq2000.c: Likewise.
3361 * config/lm32/lm32.c: Likewise.
3362 * config/m32c/m32c-pragma.c: Likewise.
3363 * config/m32c/m32c.c: Likewise.
3364 * config/m32r/m32r.c: Likewise.
3365 * config/m68k/m68k.c: Likewise.
3366 * config/mcore/mcore.c: Likewise.
3367 * config/mep/mep-pragma.c: Likewise.
3368 * config/mep/mep.c: Likewise.
3369 * config/microblaze/microblaze-c.c: Likewise.
3370 * config/microblaze/microblaze.c: Likewise.
3371 * config/mips/mips.c: Likewise.
3372 * config/mmix/mmix.c: Likewise.
3373 * config/mn10300/mn10300.c: Likewise.
3374 * config/moxie/moxie.c: Likewise.
3375 * config/msp430/msp430-c.c: Likewise.
3376 * config/msp430/msp430.c: Likewise.
3377 * config/nds32/nds32-cost.c: Likewise.
3378 * config/nds32/nds32-fp-as-gp.c: Likewise.
3379 * config/nds32/nds32-intrinsic.c: Likewise.
3380 * config/nds32/nds32-isr.c: Likewise.
3381 * config/nds32/nds32-md-auxiliary.c: Likewise.
3382 * config/nds32/nds32-memory-manipulation.c: Likewise.
3383 * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
3384 * config/nds32/nds32-predicates.c: Likewise.
3385 * config/nds32/nds32.c: Likewise.
3386 * config/nios2/nios2.c: Likewise.
3387 * config/nvptx/nvptx.c: Likewise.
3388 * config/pa/pa.c: Likewise.
3389 * config/pdp11/pdp11.c: Likewise.
3390 * config/rl78/rl78-c.c: Likewise.
3391 * config/rl78/rl78.c: Likewise.
3392 * config/rs6000/rs6000-c.c: Likewise.
3393 * config/rs6000/rs6000.c: Likewise.
3394 * config/rx/rx.c: Likewise.
3395 * config/s390/s390-c.c: Likewise.
3396 * config/s390/s390.c: Likewise.
3397 * config/sh/sh-c.c: Likewise.
3398 * config/sh/sh-mem.cc: Likewise.
3399 * config/sh/sh.c: Likewise.
3400 * config/sh/sh_optimize_sett_clrt.cc: Likewise.
3401 * config/sh/sh_treg_combine.cc: Likewise.
3402 * config/sol2-c.c: Likewise.
3403 * config/sol2-cxx.c: Likewise.
3404 * config/sol2-stubs.c: Likewise.
3405 * config/sol2.c: Likewise.
3406 * config/sparc/sparc-c.c: Likewise.
3407 * config/sparc/sparc.c: Likewise.
3408 * config/spu/spu-c.c: Likewise.
3409 * config/spu/spu.c: Likewise.
3410 * config/stormy16/stormy16.c: Likewise.
3411 * config/tilegx/mul-tables.c: Likewise.
3412 * config/tilegx/tilegx-c.c: Likewise.
3413 * config/tilegx/tilegx.c: Likewise.
3414 * config/tilepro/mul-tables.c: Likewise.
3415 * config/tilepro/tilepro-c.c: Likewise.
3416 * config/tilepro/tilepro.c: Likewise.
3417 * config/v850/v850-c.c: Likewise.
3418 * config/v850/v850.c: Likewise.
3419 * config/vax/vax.c: Likewise.
3420 * config/visium/visium.c: Likewise.
3421 * config/vms/vms-c.c: Likewise.
3422 * config/vms/vms.c: Likewise.
3423 * config/vxworks.c: Likewise.
3424 * config/xtensa/xtensa.c: Likewise.
3425
3426 2015-07-07 Uros Bizjak <ubizjak@gmail.com>
3427
3428 * config/i386/i386.md (*jcc_bt<mode>): Only split before reload.
3429 Remove operand constraints. Change operand 2 predicate to
3430 nonmemory operand. Limit const_int values to mode bitsize. Only
3431 allow const_int values less than 32 when optimizing for size.
3432 (*jcc_bt<mode>_1, *jcc_bt<mode>_mask): Only split before reload.
3433 Remove operand constraints.
3434 (*bt<mode>): Use SImode for const_int values less than 32.
3435 (regmode): Remove mode attribute.
3436
3437 2015-07-07 Anatoly Sokolov <aesok@post.ru>
3438
3439 * config/moxie/moxie.h (GO_IF_LEGITIMATE_ADDRESS): Remove macros.
3440 * config/moxie/moxie.c (moxie_reg_ok_for_base_p,
3441 moxie_legitimate_address_p): New functions.
3442 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define.
3443
3444 2015-07-07 Tom de Vries <tom@codesourcery.com>
3445
3446 PR tree-optimization/66642
3447 * tree-parloops.c (transform_to_exit_first_loop_alt): Update function
3448 header comment. Rename split_edge variable to edge_at_split. Split
3449 exit edge to create new loop exit bb. Insert loop exit phis in new
3450 loop exit bb.
3451
3452 2015-07-07 Tom de Vries <tom@codesourcery.com>
3453
3454 * tree-cfg.c (get_virtual_phi): New function.
3455 * tree-cfg.h (get_virtual_phi): Declare.
3456 * tree-ssa-loop-manip.c (replace_uses_in_dominated_bbs)
3457 (rewrite_virtuals_into_loop_closed_ssa): New function.
3458 * tree-ssa-loop-manip.h (rewrite_virtuals_into_loop_closed_ssa):
3459 Declare.
3460 * tree-parloops.c (replace_uses_in_bbs_by): Remove.
3461 (transform_to_exit_first_loop_alt): Use
3462 rewrite_virtuals_into_loop_closed_ssa.
3463
3464 2015-07-07 Richard Biener <rguenther@suse.de>
3465
3466 * fold-const.c (fold_binary_loc): Move
3467 (X & C2) << C1 -> (X << C1) & (C2 << C1) simplification ...
3468 * match.pd: ... here.
3469 Add (X * C1) % C2 -> 0 simplification pattern derived from
3470 extract_muldiv_1.
3471
3472 2015-07-07 Kaz Kojima <kkojima@gcc.gnu.org>
3473
3474 PR target/66780
3475 * config/sh/sh.md (symGOT_load): Revert a part of 2015-03-03
3476 change for target/65249.
3477
3478 2015-07-07 Paulo Matos <pmatos@broadcom.com>
3479
3480 * symtab.c (address_matters_1): Fix typo in comment above.
3481 (can_increase_alignment_p): Likewise.
3482
3483 2015-07-07 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3484
3485 * function.c (free_after_compilation): Clear PROP_cfg in
3486 f->curr_properties.
3487
3488 2015-07-07 Richard Biener <rguenther@suse.de>
3489
3490 * tree-ssa-propagate.c (add_ssa_edge): Dump what edge list we
3491 add which use to.
3492 (add_control_edge): Remove excessive vertical space in dumping.
3493 (process_ssa_edge_worklist): Simulate at most one statement and
3494 return whether we did. Do not simulate PHIs if they are in a
3495 BB not yet simulated.
3496 (ssa_propagate): Adjust to always drain the BB worklist whenever
3497 a BB is available there, likewise the VARYING edges list before
3498 the interesting edge list.
3499
3500 2015-07-07 Christian Bruel <christian.bruel@st.com>
3501
3502 PR target/52144
3503 * config/arm/elf.h (TARGET_ASM_FILE_START_APP_OFF): Delete.
3504
3505 2015-07-07 Richard Biener <rguenther@suse.de>
3506
3507 PR middle-end/66739
3508 * match.pd: Condition A - B ==/!= 0 -> A ==/!= B on single-use
3509 A - B.
3510
3511 2015-07-06 Uros Bizjak <ubizjak@gmail.com>
3512
3513 * config/i386/i386.md (insv<mode>): Rename from insv. Use SWI48
3514 modes for operands 0 and 3. Use SImode for operands 2 and 3.
3515 Copy operand 0 to a temporary if !ext_register_operand. Remove
3516 ancient extract_bit_field workaround.
3517 (insv<mode>_1): Rename from mov<mode>_insv_1.
3518 (*insvqi): Rename from *movqi_insv_2.
3519 * config/i386/i386.c (emit_i386_cw_initialization): Update calls
3520 for renamed insvsi_1.
3521 (promote_duplicated_reg): Ditto for renamed insv<mode>_1.
3522
3523 2015-07-06 Nathan Sidwell <nathan@codesourcery.com>
3524
3525 * config/nvptx/nvptx.c (nvptx_reorg): Remove unused vars. Fix
3526 call to nvptx_reorg_subreg.
3527
3528 2015-07-06 Jim Wilson <jim.wilson@linaro.org>
3529
3530 * graphite-blocking.c (HAVE_isl): Include <stddef.h>.
3531 * graphite-dependencies.c, graphite-interchange.c,
3532 graphite-isl-ast-to-gimple.c, graphite-optimize-isl.c, graphite-poly.c,
3533 graphite-scop-detection.c, graphite-sese-to-poly.c, graphite.c:
3534 Likewise.
3535
3536 2015-07-06 Marc Glisse <marc.glisse@inria.fr>
3537
3538 * match.pd: Remove element_mode inside HONOR_*.
3539 (~ (-A) -> A - 1, ~ (A - 1) -> -A): Handle complex types.
3540 (~X | X -> -1, ~X ^ X -> -1): Merge.
3541 * tree.c (build_each_one_cst): New function.
3542 * tree.h (build_each_one_cst): Likewise.
3543
3544 2015-07-06 H.J. Lu <hongjiu.lu@intel.com>
3545
3546 * config/i386/i386-c.c (ix86_target_macros_internal): Handle
3547 PROCESSOR_IAMCU.
3548
3549 2015-07-06 Steve Ellcey <sellcey@imgtec.com>
3550
3551 * config.gcc <mips*-*-*>: Add fused-madd.opt.
3552 * config/mips/mips.opt (mfused-madd): Remove.
3553 * config/mips/mips.c (mips_rtx_costs): Update cost calculations.
3554 * config/mips/mips.h (TARGET_MIPS8000): New.
3555 (ISA_HAS_FP_MADD4_MSUB4): Remove.
3556 (ISA_HAS_FP_MADDF_MSUBF): Remove.
3557 (ISA_HAS_FP_MADD3_MSUB3): Remove.
3558 (ISA_HAS_NMADD4_NMSUB4): Remove.
3559 (ISA_HAS_NMADD3_NMSUB3): Remove.
3560 (ISA_HAS_FUSED_MADD4): New.
3561 (ISA_HAS_UNFUSED_MADD4): New.
3562 (ISA_HAS_FUSED_MADDF): New.
3563 (ISA_HAS_FUSED_MADD3): New.
3564 * config/mips/mips.md: (fma<mode>4) Change from insn to expand.
3565 (*fma<mode>4_madd3) New.
3566 (*fma<mode>4_madd4) New.
3567 (*fma<mode>4_maddf) New.
3568 (fms<mode>4) New.
3569 (*fms<mode>4_msub3) New.
3570 (*fms<mode>4_msub4) New.
3571 (fnma<mode>4) New.
3572 (*fnma<mode>4_nmadd3) New.
3573 (*fnma<mode>4_nmadd4) New.
3574 (fnms<mode>4) New.
3575 (*fnms<mode>4_nmsub3) New.
3576 (*fnms<mode>4_nmsub4) New.
3577 (*madd4<mode>) Modify to be unfused only.
3578 (*msub4<mode>) Modify to be unfused only.
3579 (*nmadd4<mode>) Modify to be unfused only.
3580 (*nmsub4<mode>) Modify to be unfused only.
3581 (*madd3<mode>) Remove.
3582 (*msub3<mode>) Remove.
3583 (*nmadd3<mode>) Remove.
3584 (*nmsub3<mode>) Remove.
3585 (*nmadd3<mode>_fastmath) Remove.
3586 (*nmsub3<mode>_fastmath) Remove.
3587 (*nmadd4<mode>_fastmath) Update condition.
3588 (*nmsub4<mode>_fastmath) Update condition.
3589
3590 2015-07-06 Alan Lawrence <alan.lawrence@arm.com>
3591
3592 PR target/65956
3593 * config/arm/arm.c (arm_needs_doubleword_align): Drop any outer
3594 alignment attribute, exploring one level down for records and arrays.
3595
3596 2015-07-06 Uros Bizjak <ubizjak@gmail.com>
3597
3598 * config/i386/i386.md (extv<mode>): Rename from extv. Use SWI24
3599 modes for operands 0 and 1. Use SImode for operands 2 and 3.
3600 Copy operand 1 to a temporary if !ext_register_operand. Remove
3601 ancient extract_bit_field workaround.
3602 (*extv<mode>): Rename from *mov<mode>_extv_1.
3603 (*extvqi): Rename from *movqi_extv_1.
3604 (extzv<mode>): Rename from extzv. Use SWI248 modes for
3605 operands 0 and 1. Use SImode for operands 2 and 3. Copy operand 1
3606 to a temporary if !ext_register_operand. Remove ancient
3607 extract_bit_field workaround.
3608 (*extzv<mode>): Rename from *mov<mode>_extzv_1.
3609 (*extzvqi): Rename from *movqi_extzv_2.
3610 (*testqi_ext_3): Remove modes from const_int_operand predicated
3611 operands. Add "n" constraint.
3612 (*btsq, *btrq, *btcq): Remove mode from const_0_to_63 predicated
3613 operand. Add "J" constraint.
3614 (*btsq, *btrq, *btcq peephole2s): Remove mode from
3615 const_0_to_63 predicated operand.
3616 (regmode): New insn attribute.
3617 (*bt<mode>): Use SImode for operand 1. Change operand 1 predicate
3618 to nonmemory_operand. Use regmode insn attribute.
3619 (*jcc_bt<mode>_1): Convert operand 2 to SImode.
3620 (*jcc_bt<mode>_mask): Remove mode from operand 3.
3621 (*jcc_btsi_1, *jcc_btsi_mask_1): Remove patterns.
3622 (tbm_bextri_<mode>): Remove modes from const_0_to_255 predicated
3623 operands. Use "N" constraint instead of "n".
3624
3625 2015-07-06 Alan Lawrence <alan.lawrence@arm.com>
3626
3627 * config/arm/arm.md (movdi): Avoid odd-number ldrd/strd in ARM state.
3628
3629 2015-07-06 H.J. Lu <hongjiu.lu@intel.com>
3630
3631 PR target/66749
3632 * config/i386/i386.c (iamcu_cost): New.
3633 (m_IAMCU): Likewise.
3634 (initial_ix86_arch_features): Disable X86_ARCH_CMOV for m_IAMCU.
3635 (processor_target_table): Add an entry for "iamcu".
3636 (processor_alias_table): Likewise.
3637 (ix86_issue_rate): Handle PROCESSOR_IAMCU.
3638 (ix86_adjust_cost): Likewise.
3639 (ia32_multipass_dfa_lookahead): Likewise.
3640 * config/i386/i386.h (processor_type): Add PROCESSOR_IAMCU.
3641 * config/i386/x86-tune.def: Updated for m_IAMCU.
3642
3643 2015-07-06 Richard Biener <rguenther@suse.de>
3644
3645 PR tree-optimization/66772
3646 * tree-ssa-ccp.c (ccp_visit_phi_node): Make sure that copy
3647 values are available in the PHI node BB when there are
3648 still unexecutable edges.
3649
3650 2015-07-06 Richard Biener <rguenther@suse.de>
3651
3652 PR tree-optimization/66767
3653 * tree-vect-loop-manip.c (vect_create_cond_for_align_checks):
3654 Make sure to build the alignment test on a SSA name without
3655 final alignment info valid only if the alignment test
3656 evaluates to true.
3657
3658 2015-07-06 Bernd Schmidt <bernds@codesourcery.com>
3659
3660 PR target/66620
3661 * config/bfin/bfin.c (hwloop_optimize): Create new bb between jump and
3662 loop start when inserting LSETUP.
3663
3664 2015-07-06 H.J. Lu <hongjiu.lu@intel.com>
3665
3666 PR target/53383
3667 * config/i386/i386.c (ix86_option_override_internal): Allow
3668 -mincoming-stack-boundary=3 for 64-bit if SSE is disabled.
3669
3670 2015-07-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3671
3672 * read-md.c (decimal_string): Rename to ...
3673 (md_decimal_string): ... this.
3674 (handle_enum): Reflect this.
3675
3676 2015-07-06 Szabolcs Nagy <szabolcs.nagy@arm.com>
3677
3678 PR target/66731
3679 * config/aarch64/aarch64.md (fnmul<mode>3): Handle -frounding-math.
3680
3681 2015-07-06 Richard Biener <rguenther@suse.de>
3682
3683 PR middle-end/66759
3684 * match.pd: Add missing constraint of y to REAL_CST in
3685 REAL_CST - x CMP y to y - CST CMP x simplification.
3686
3687 2015-07-06 Eric Botcazou <ebotcazou@adacore.com>
3688
3689 PR tree-optimization/66757
3690 * match.pd: Add missing condition to ~X ^ C -> X ^ ~C.
3691
3692 2015-07-05 Chung-Lin Tang <cltang@codesourcery.com>
3693 Sandra Loosemore <sandra@codesourcery.com>
3694
3695 * config/nios2/nios2-protos.h (nios2_symbol_ref_in_small_data_p):
3696 Delete extern declaration.
3697 (gprel_constant_p): Add extern declaration.
3698 * config/nios2/constraints.md ("S"): Use gprel_constant_p
3699 instead of nios2_symbol_ref_in_small_data_p.
3700 * config/nios2/nios2.c (nios2_legitimate_address_p): Likewise.
3701 (nios2_symbol_ref_in_small_data_p): Make static.
3702 (gprel_constant_p): Make non-static.
3703
3704 2015-07-05 Gerald Pfeifer <gerald@pfeifer.com>
3705
3706 * doc/fragments.texi (Target Fragment): Convert debian.org
3707 link to use https.
3708 * doc/install.texi (Configuration): Ditto.
3709
3710 2015-07-05 Jakub Jelinek <jakub@redhat.com>
3711
3712 PR tree-optimization/66718
3713 * tree-vect-stmts.c (vectorizable_call): Replace uses of
3714 GOMP_SIMD_LANE outside of loop with vf - 1 rather than 0.
3715
3716 PR tree-optimization/66718
3717 * tree-vect-stmts.c (vectorizable_assignment, vectorizable_store,
3718 vectorizable_load, vectorizable_condition): Move vectype,
3719 nunits, ncopies computation after checking what kind of statement
3720 stmt is.
3721
3722 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
3723
3724 * target-insns.def (extv, extzv, insv): New targetm instruction
3725 patterns.
3726 * optabs.c (get_extraction_insn): Use them instead of HAVE_*/gen_*
3727 interface.
3728 * recog.c (simplify_while_replacing): Likewise.
3729
3730 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
3731
3732 * target-insns.def (doloop_begin, doloop_end): New targetm
3733 instruction patterns.
3734 * loop-init.c: Include target.h.
3735 (pass_loop2::gate): Use the new targetm patterns instead of
3736 HAVE_*/gen_* interface.
3737 (pass_rtl_doloop::gate): Likewise.
3738 (pass_rtl_doloop::execute): Remove preprocessor condition.
3739 * hw-doloop.c: Build unconditionally.
3740 * loop-doloop.c: Likewise.
3741 (doloop_optimize): Use the new targetm patterns instead of
3742 HAVE_*/gen_* interface.
3743 (doloop_modify): Likewise. Change type of doloop_seq to rtx_insn *.
3744 * modulo-sched.c (doloop_register_get): Likewise.
3745
3746 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
3747
3748 * target-insns.def (clear_cache): New targetm instruction pattern.
3749 * builtins.c (expand_builtin___clear_cache): Use it instead of
3750 HAVE_*/gen_* interface.
3751
3752 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
3753
3754 * target-insns.def (allocate_stack, check_stack, probe_stack)
3755 (probe_stack_address, split_stack_prologue, split_stack_space_check):
3756 New targetm instruction patterns.
3757 * explow.c (allocate_dynamic_stack_space): Use them instead of
3758 HAVE_*/gen_* interface.
3759 (emit_stack_probe): Likewise.
3760 (probe_stack_range): Likewise.
3761 * function.c (thread_prologue_and_epilogue_insns): Likewise.
3762
3763 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
3764
3765 * target-insns.def (stack_protect_set, stack_protect_test): New
3766 targetm instruction patterns.
3767 * cfgexpand.c (stack_protect_prologue): Use them instead of
3768 HAVE_*/gen_* interface.
3769 * function.c (stack_protect_epilogue): Likewise.
3770
3771 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
3772
3773 * expr.h (gen_move_insn_uncast): Delete.
3774 * expr.c (gen_move_insn_uncast): Delete.
3775
3776 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
3777
3778 * target-insns.def (restore_stack_block, restore_stack_function)
3779 (restore_stack_nonlocal, save_stack_block, save_stack_function)
3780 (save_stack_nonlocal): New targetm instruction patterns.
3781 * builtins.c (expand_builtin_apply): Use them instead of
3782 HAVE_*/gen_* interface.
3783 * explow.c (emit_stack_save, emit_stack_restore): Likewise.
3784
3785 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
3786
3787 * target-insns.def (trap): New targetm instruction pattern.
3788 * builtins.c (expand_builtin_trap): Use it instead of HAVE_*/gen_*
3789 interface.
3790 * explow.c (allocate_dynamic_stack_space): Likewise.
3791 * ifcvt.c (find_if_header): Likewise.
3792
3793 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
3794
3795 * target-insns.def (prefetch): New targetm instruction pattern.
3796 * tree-ssa-loop-prefetch.c: Include targeth.
3797 (tree_ssa_prefetch_arrays): Use prefetch targetm pattern instead
3798 of HAVE_*/gen_* interface.
3799 * builtins.c (expand_builtin_prefetch): Likewise.
3800 * toplev.c (process_options): Likewise.
3801
3802 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
3803
3804 * target-insns.def (untyped_call, untyped_return): New targetm
3805 instruction patterns.
3806 * builtins.c (expand_builtin_apply): Use them instead of
3807 HAVE_*/gen_* interface.
3808 (result_vector): Define unconditionally.
3809
3810 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
3811
3812 * target-insns.def (builtin_longjmp, builtin_setjmp_receiver)
3813 (builtin_setjmp_setup, exception_receiver, nonlocal_goto)
3814 (nonlocal_goto_receiver): New targetm instruction patterns.
3815 * builtins.c (expand_builtin_setjmp_setup): Use them instead
3816 of HAVE_*/gen_* interface.
3817 (expand_builtin_setjmp_receiver): Likewise.
3818 (expand_builtin_longjmp, expand_builtin_nonlocal_goto): Likewise.
3819 * except.c (expand_dw2_landing_pad_for_region): Likewise.
3820
3821 2015-07-05 Richard Sandiford <richard.sandiford@arm.com>
3822
3823 * target.def: Add code_for_* hooks.
3824 * gentarget-def.c (def_target_insn): Add TARGET_CODE_FOR_* macros.
3825 * defaults.h (HAVE_tablejump, gen_tablejump): Delete.
3826 * target-insns.def (casesi, tablejump): New targetm instruction
3827 patterns.
3828 * expr.c (try_casesi): Use them instead of HAVE_*/gen_* interface.
3829 (do_tablejump): Likewise.
3830 * stmt.c (expand_switch_as_decision_tree_p): Likewise.
3831 (expand_sjlj_dispatch_table): Likewise.
3832 * targhooks.c (default_case_values_threshold): Likewise.
3833
3834 2015-07-04 Sandra Loosemore <sandra@codesourcery.com>
3835
3836 * config/nios2/nios2.c (save_reg, restore_reg): Use plus_constant.
3837 Use rtx_insn * instead of rtx.
3838 (nios2_emit_add_constant): Use rtx_insn * instead of rtx.
3839 (nios2_expand_prologue, nios2_expand_epilogue): Likewise.
3840 (nios2_call_tls_get_addr): Likewise.
3841 (nios2_emit_expensive_div): Likewise.
3842 (nios2_emit_move_sequence): Change return type to bool.
3843 * config/nios2/nios2-protos.h (nios2_emit_move_sequence):
3844 Change return type to bool.
3845
3846 2015-07-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
3847
3848 PR target/66747
3849 * config/mips/mips.c (mips_find_gp_ref): Handle instruction sequences.
3850
3851 2015-07-04 John David Anglin <danglin@gcc.gnu.org>
3852
3853 PR target/66114
3854 * config/pa/pa.md (indirect_jump): Use pmode_register_operand instead
3855 of register_operand. Remove constraint.
3856
3857 2015-07-04 Marc Glisse <marc.glisse@inria.fr>
3858
3859 * tree-cfg.c (verify_gimple_assign_ternary) <VEC_COND_EXPR>: Check
3860 the first argument.
3861
3862 2015-07-03 Paolo Carlini <paolo.carlini@oracle.com>
3863
3864 * attribs.c (decl_attributes): Guard inform with the return value
3865 of the preceding warning.
3866
3867 2015-07-03 James Greenhalgh <james.greenhalgh@arm.com>
3868
3869 * doc/invoke.texi (moverride): Move to correct section.
3870
3871 2015-07-03 Richard Biener <rguenther@suse.de>
3872
3873 * genmatch.c (commutative_tree_code, commutative_ternary_tree_code):
3874 Copy from tree.c
3875 (dt_operand::gen_gimple_expr): After valueizing operands
3876 re-canonicalize operand order for commutative tree codes.
3877
3878 2015-07-03 H.J. Lu <hongjiu.lu@intel.com>
3879
3880 PR target/66746.
3881 * config/i386/ia32intrin.h (__crc32b): Don't define if __iamcu__
3882 is defined.
3883 (__crc32w): Likewise.
3884 (__crc32d): Likewise.
3885 (__rdpmc): Likewise.
3886 (__rdtscp): Likewise.
3887 (_rdpmc): Likewise.
3888 (_rdtscp): Likewise.
3889 * config/i386/x86intrin.h: Only include ia32intrin.h if __iamcu__
3890 is defined.
3891
3892 2015-07-03 Richard Biener <rguenther@suse.de>
3893
3894 * fold-const.c (fold_mathfn_compare): Remove.
3895 (fold_inf_compare): Likewise.
3896 (fold_comparison): Move floating point comparison simplifications...
3897 * match.pd: ... to patterns here. Introduce simple_comparisons
3898 operator list and use it for patterns formerly in fold_comparison.
3899
3900 2015-07-03 James Greenhalgh <james.greenhalgh@arm.com>
3901
3902 PR tree-optimization/66119
3903 * toplev.c (process_options): Don't set up default values for
3904 the sra_max_scalarization_size_{speed,size} parameters.
3905 * tree-sra (analyze_all_variable_accesses): If no values
3906 have been set for the sra_max_scalarization_size_{speed,size}
3907 parameters, call get_move_ratio to get target defaults.
3908
3909 2015-07-03 Richard Biener <rguenther@suse.de>
3910
3911 * fold-const.c (fold_binary_loc): Move (T)ptr & CST folding...
3912 * match.pd: ... here.
3913
3914 2015-07-03 Gerald Pfeifer <gerald@pfeifer.com>
3915
3916 PR target/37072
3917 * doc/invoke.texi (i386 and x86-64 Options): -mno-fancy-math-387
3918 is not actually the default on FreeBSD.
3919
3920 2015-07-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3921
3922 * config/rs6000/rs6000-builtin.def (CMPGE_16QI): New built-in
3923 definition.
3924 (CMPGE_8HI): Likewise.
3925 (CMPGE_4SI): Likewise.
3926 (CMPGE_2DI): Likewise.
3927 (CMPGE_U16QI): Likewise.
3928 (CMPGE_U8HI): Likewise.
3929 (CMPGE_U4SI): Likewise.
3930 (CMPGE_U2DI): Likewise.
3931 (CMPLE_16QI): Likewise.
3932 (CMPLE_8HI): Likewise.
3933 (CMPLE_4SI): Likewise.
3934 (CMPLE_2DI): Likewise.
3935 (CMPLE_U16QI): Likewise.
3936 (CMPLE_U8HI): Likewise.
3937 (CMPLE_U4SI): Likewise.
3938 (CMPLE_U2DI): Likewise.
3939 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
3940 overloads for ALTIVEC_BUILTIN_VEC_CMPGE and
3941 ALTIVEC_BUILTIN_VEC_CMPLE.
3942 * config/rs6000/vector.md (vector_ge<mode>): Restrict to
3943 floating-point vector modes.
3944 (vector_nlt<mode>): New define_expand.
3945 (vector_nltu<mode>): Likewise.
3946 (vector_ngt<mode>): Likewise.
3947 (vector_ngtu<mode>): Likewise.
3948
3949 2015-07-02 Segher Boessenkool <segher@kernel.crashing.org>
3950
3951 PR rtl-optimization/66706
3952 * combine.c (make_compound_operation): If an AND of SUBREG of
3953 LSHIFTRT does not simplify, see if just the AND of SUBREG does.
3954
3955 2015-07-02 Alan Lawrence <alan.lawrence@arm.com>
3956
3957 * tree-pass.h (make_pass_ch_vect): New.
3958 * passes.def: Add pass_ch_vect just before pass_if_conversion.
3959
3960 * tree-ssa-loop-ch.c (ch_base, pass_ch_vect, pass_data_ch_vect,
3961 pass_ch::process_loop_p, pass_ch_vect::process_loop_p,
3962 make_pass_ch_vect): New.
3963 (pass_ch): Extend ch_base.
3964
3965 (pass_ch::execute): Move all but loop_optimizer_init/finalize to...
3966 (ch_base::copy_headers): ...here.
3967
3968 2015-07-02 Richard Biener <rguenther@suse.de>
3969
3970 * builtins.c (get_pointer_alignment_1): Handle POINTER_PLUS_EXPR.
3971 * fold-const.c (get_pointer_modulus_and_residue): Remove.
3972 (fold_binary_loc): Implement (T)ptr & CST in terms of
3973 get_pointer_alignment_1.
3974 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
3975 Make sure to build the alignment test on a SSA name without
3976 final alignment info valid only after the prologue.
3977
3978 2015-07-02 Hans-Peter Nilsson <hp@axis.com>
3979
3980 * config/cris/cris.md ("epilogue"): Remove condition.
3981 ("prologue"): Ditto.
3982
3983 2015-07-02 Richard Biener <rguenther@suse.de>
3984
3985 * tree-ssa-dom.c (build_and_record_new_cond): Add optional
3986 parameter to record a condition that is false.
3987 (record_conditions): When recording an extra NE_EXPR that is
3988 true also record a EQ_EXPR that is false.
3989
3990 2015-07-02 Bin Cheng <bin.cheng@arm.com>
3991
3992 * tree-ssa-loop-ivopts.c (struct ivopts_data): New field iv_obstack.
3993 (tree_ssa_iv_optimize_init): Initialize iv_obstack.
3994 (alloc_iv): New parameter. Allocate struct iv using obstack_alloc.
3995 (set_iv, find_interesting_uses_address, add_candidate_1): New
3996 argument to alloc_iv.
3997 (find_interesting_uses_op, find_interesting_uses_cond): Don't
3998 duplicate struct iv.
3999 (free_loop_data): Don't free struct iv explicitly.
4000 (tree_ssa_iv_optimize_finalize): Free iv_obstack.
4001
4002 2015-07-01 DJ Delorie <dj@redhat.com>
4003
4004 * config/s390/tpf.h (LIBSTDCXX): Change to CPP1.
4005 (LIB_SPEC): Add.
4006 (SUPPORTS_DISCRIMINATOR): Define.
4007
4008 2015-07-01 Richard Sandiford <richard.sandiford@arm.com>
4009
4010 PR bootstrap/66685
4011 * rtl.c (classify_insn): Only return JUMP_INSN for parallel returns if
4012 there are no CALLs in the same pattern.
4013
4014 2015-07-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
4015
4016 PR rtl-optimization/61047
4017 * rtlanal.c (get_initial_register_offset): New function.
4018 (rtx_addr_can_trap_p_1): Check offsets of stack references.
4019
4020 2015-07-01 Richard Biener <rguenther@suse.de>
4021
4022 * fold-const.c (fold_comparison): Move X - Y CMP 0 -> X CMP Y,
4023 X * C1 CMP 0 -> X CMP 0, X CMP X, ~X CMP ~Y -> Y CMP X and
4024 ~X CMP C -> X CMP' ~C to ...
4025 * match.pd: ... patterns here.
4026
4027 2015-07-01 Nick Clifton <nickc@redhat.com>
4028
4029 * config/msp430/msp430.md (zero_extendhipsi2): Use MOVX.A to store
4030 a 16-bit value into a 20-bit memory slot.
4031
4032 2015-07-01 Jiong Wang <jiong.wang@arm.com>
4033
4034 * doc/sourcebuild.texi (AArch64-specific attributes): Document
4035 "aarch64_tiny", "aarch64_small", "aarch64_large",
4036 "aarch64_little_endian", "aarch64_big_endian".
4037
4038 2015-07-01 Jiong Wang <jiong.wang@arm.com>
4039
4040 * doc/sourcebuild.texi (AArch64-specific attributes): New subsection.
4041 Document "aarch64_small_fpic".
4042
4043 2015-07-01 Jiong Wang <jiong.wang@arm.com>
4044
4045 * configure.ac: Add check for aarch64 assembler -fpic relocation
4046 modifier support.
4047 * configure: Regenerate.
4048 * config.in: Regenerate.
4049 * config/aarch64/aarch64.c (initialize_aarch64_code_model): Fall back
4050 to -fPIC if not support of -fpic relocation modifier in assembler.
4051
4052 2015-07-01 Richard Sandiford <richard.sandiford@arm.com>
4053
4054 PR bootstrap/66685
4055 * rtl.c (classify_insn): Handle returns in PARALLELs.
4056
4057 2015-07-01 Eric Botcazou <ebotcazou@adacore.com>
4058
4059 PR middle-end/66633
4060 * tree-nested.c (convert_nonlocal_omp_clauses): Initialize need_chain
4061 to true if the function is nested and if not optimizing.
4062 (convert_local_omp_clauses): Initialize need_frame to true if the
4063 function contains nested functions and if not optimizing.
4064
4065 2015-07-01 Richard Biener <rguenther@suse.de>
4066
4067 * fold-const.c (fold_binary_loc): Move ~X ^ X -> -1 and
4068 (X & Y) ^ Y -> ~X & Y transforms to ...
4069 * match.pd: ... here.
4070
4071 2015-07-01 Richard Biener <rguenther@suse.de>
4072
4073 * genmatch.c (expr::gen_transform): Shortcut re-simplifying
4074 of converts to avoid uninteresting noise from the conversion
4075 simplifying patterns.
4076
4077 2015-06-30 Sandra Loosemore <sandra@codesourcery.com>
4078
4079 * config/c6x/c6x.c (try_rename_operands): Do not depend on
4080 gcc_assert evaluating its argument for side-effect.
4081
4082 2015-06-30 Kaz Kojima <kkojima@gcc.gnu.org>
4083
4084 PR target/64833
4085 * config/sh/sh.md (casesi_worker_1): Set length to 8 when
4086 flag_pic is set.
4087
4088 2015-06-30 Eric Botcazou <ebotcazou@adacore.com>
4089
4090 * lto-streamer-out.c (class DFS): Adjust hash_scc method.
4091 (DFS::DFS): Pass this_ref_p and ref_p to hash_scc.
4092 (hash_scc): Add this_ref_p and ref_p parameters and pass them
4093 to the inner DFS walk.
4094
4095 2015-06-30 Richard Sandiford <richard.sandiford@arm.com>
4096
4097 * target-insns.def (jump): New targetm instruction pattern.
4098 * bb-reorder.c (get_uncond_jump_length): Use targetm.gen_jump
4099 instead of gen_jump.
4100 (fix_up_crossing_landing_pad): Likewise.
4101 (add_labels_and_missing_jumps): Likewise.
4102 (fix_crossing_conditional_branches): Likewise.
4103 * cfgrtl.c (try_redirect_by_replacing_jump): Likewise.
4104 (force_nonfallthru_and_redirect): Likewise.
4105 * cse.c (cse_insn): Likewise.
4106 * expmed.c (expand_divmod): Likewise.
4107 * expr.c (store_expr_with_bounds, expand_expr_real_2): Likewise.
4108 * haifa-sched.c (init_before_recovery): Likewise.
4109 (sched_create_recovery_edges): Likewise.
4110 * ifcvt.c (find_cond_trap): Likewise.
4111 * optabs.c (expand_doubleword_shift, expand_doubleword_clz): Likewise.
4112 (expand_float, expand_fix): Likewise.
4113 * stmt.c (emit_jump): Likewise.
4114
4115 2015-06-30 Richard Sandiford <richard.sandiford@arm.com>
4116
4117 * defaults.h (HAVE_load_multiple, gen_load_multiple)
4118 (HAVE_store_multiple, gen_store_multiple): Delete.
4119 * target-insns.def (load_multiple, store_multiple): New targetm
4120 instruction patterns.
4121 * expr.c (move_block_to_reg, move_block_from_reg): Use them instead
4122 of HAVE_*/gen_* interface.
4123
4124 2015-06-30 Richard Sandiford <richard.sandiford@arm.com>
4125
4126 * defaults.h (HAVE_mem_thread_fence, gen_mem_thread_fence)
4127 (HAVE_memory_barrier, gen_memory_barrier, HAVE_mem_signal_fence)
4128 (gen_mem_signal_fence): Delete.
4129 * target-insns.def (mem_signal_fence, mem_thread_fence)
4130 (memory_barrier): New targetm instruction patterns.
4131 * optabs.c (expand_mem_thread_fence): Use them instead of HAVE_*/gen_*
4132 interface.
4133 (expand_mem_signal_fence): Likewise.
4134
4135 2015-06-30 Richard Sandiford <richard.sandiford@arm.com>
4136
4137 * defaults.h (HAVE_epilogue, gen_epilogue): Delete.
4138 * target-insns.def (epilogue, prologue, sibcall_prologue): New
4139 targetm instruction patterns.
4140 * alias.c (init_alias_analysis): Use them instead of HAVE_*/gen_*
4141 interface.
4142 * calls.c (expand_call): Likewise.
4143 * cfgrtl.c (cfg_layout_finalize): Likewise.
4144 * df-scan.c (df_get_entry_block_def_set): Likewise.
4145 (df_get_exit_block_use_set): Likewise.
4146 * dwarf2cfi.c (pass_dwarf2_frame::gate): Likewise.
4147 * final.c (final_start_function): Likewise.
4148 * function.c (thread_prologue_and_epilogue_insns): Likewise.
4149 (reposition_prologue_and_epilogue_notes): Likewise.
4150 * reorg.c (find_end_label): Likewise.
4151 * toplev.c (process_options): Likewise.
4152
4153 2015-06-30 David Malcolm <dmalcolm@redhat.com>
4154
4155 * typed-splay-tree.h: New file.
4156
4157 2015-06-30 Vladimir Makarov <vmakarov@redhat.com>
4158
4159 PR debug/66691
4160 * lra-int.h (lra_substitute_pseudo): Add a parameter.
4161 (lra_substitute_pseudo_within_insn): Ditto.
4162 * lra.c (lra_substitute_pseudo): Add a parameter. Simplify subreg
4163 of constant.
4164 (lra_substitute_pseudo_within_insn): Add a parameter. Transfer it
4165 to lra_substitute_pseudo.
4166 * lra-lives.c (process_bb_lives): Add an argument to
4167 lra_substitute_pseudo_within_insn call.
4168 * lra-constraints.c (inherit_reload_reg, split_reg): Add an
4169 argument to lra_substitute_pseudo and
4170 lra_substitute_pseudo_within_insn calls.
4171 (remove_inheritance_pseudos, undo_optional_reloads): Ditto.
4172
4173 2015-06-30 H.J. Lu <hongjiu.lu@intel.com>
4174
4175 * configure: Regenerated.
4176
4177 2015-06-30 H.J. Lu <hongjiu.lu@intel.com>
4178
4179 * config.gcc: Support i[34567]86-*-elfiamcu target.
4180 * config/i386/iamcu.h: New.
4181 * config/i386/i386.opt: Add -miamcu.
4182 * doc/invoke.texi: Document -miamcu.
4183 * common/config/i386/i386-common.c (ix86_handle_option): Turn
4184 off x87/MMX/SSE/AVX codegen for -miamcu.
4185 * config/i386/i386-c.c (ix86_target_macros_internal): Define
4186 __iamcu/__iamcu__ for -miamcu.
4187 * config/i386/i386.h (PREFERRED_STACK_BOUNDARY_DEFAULT): Set
4188 to MIN_STACK_BOUNDARY if TARGET_IAMCU is true.
4189 (BIGGEST_ALIGNMENT): Set to 32 if TARGET_IAMCU is true.
4190 * config/i386/i386.c (ix86_option_override_internal): Ignore and
4191 warn -mregparm for Intel MCU. Turn on -mregparm=3 for Intel
4192 MCU by default. Default long double to 64-bit for Intel MCU.
4193 Turn on -freg-struct-return for Intel MCU. Issue an error when
4194 -miamcu is used in 64-bit or x32 mode or if x87, MMX, SSE or
4195 AVX is turned on.
4196 (function_arg_advance_32): Pass value whose size is no larger
4197 than 8 bytes in registers for Intel MCU.
4198 (function_arg_32): Likewise.
4199 (ix86_return_in_memory): Return value whose size is no larger
4200 than 8 bytes in registers for Intel MCU.
4201 (iamcu_alignment): New function.
4202 (ix86_data_alignment): Call iamcu_alignment if TARGET_IAMCU is
4203 true.
4204 (ix86_local_alignment): Don't increase alignment for Intel MCU.
4205 (x86_field_alignment): Return iamcu_alignment if TARGET_IAMCU is
4206 true.
4207
4208 2015-06-30 Marek Polacek <polacek@redhat.com>
4209
4210 * match.pd (X - (X / Y) * Y): Use convert1 and convert2. Convert
4211 both operands of the resulting expression.
4212
4213 * match.pd (~x | x): Don't use tree_nop_conversion_p. Build
4214 the final expression with the operand's type and then convert
4215 it to the type of the expression.
4216
4217 2015-06-30 Richard Biener <rguenther@suse.de>
4218
4219 * fold-const.c (fold_binary_loc): Move ~x & ~y -> ~(x | y) and
4220 ~x | ~y -> ~(x & y), (x & CST) ^ (x & CST2) -> (x & CST) | (x & CST2),
4221 (X | Y) ^ X -> Y & ~ X, ~X ^ ~Y to X ^ Y and ~X ^ C to X ^ ~C ...
4222 * match.pd: ... to patterns here.
4223
4224 2015-06-30 Richard Biener <rguenther@suse.de>
4225
4226 PR tree-optimization/66704
4227 * tree-vect-data-refs.c (vect_setup_realignment): Use
4228 make_ssa_name for non-SSA name source.
4229
4230 2015-06-30 Jakub Jelinek <jakub@redhat.com>
4231
4232 PR middle-end/66702
4233 * omp-low.c (simd_clone_adjust): Handle addressable linear
4234 or uniform parameters or non-gimple type uniform parameters.
4235
4236 2015-06-30 Richard Biener <rguenther@suse.de>
4237
4238 * fold-const.c (fold_unary_loc): Move abs(abs(x)) -> abs(x),
4239 ~ (-A) to A - 1, ~ (A - 1) or ~ (A + -1) to -A and some cases of
4240 ~(X ^ Y) to ~X ^ Y or X ^ ~Y if ~X or ~Y simplify to ...
4241 * match.pd: ... here.
4242 Add a few cases of A - B -> A + (-B) when B "easily" negates.
4243 Move (x & y) | x -> x and friends before
4244 (x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2).
4245
4246 2015-06-30 Eric Botcazou <ebotcazou@adacore.com>
4247
4248 * config/sparc/leon.md (leon_load): Enable for all LEON variants if
4249 -mfix-ut699 is not specified.
4250 (leon3_load): Rename into...
4251 (ut699_load): ...this. Enable for all LEON variants if -mfix-ut699
4252 is specified.
4253
4254 2015-06-30 Marek Polacek <polacek@redhat.com>
4255
4256 * fold-const.c (fold_binary_loc): Move ~X | X folding ...
4257 * match.pd: ... here.
4258
4259 2015-06-30 Richard Biener <rguenther@suse.de>
4260
4261 * target-insns.def (canonicalize_funcptr_for_compare): Add.
4262 * fold-const.c (build_range_check): Replace uses of
4263 HAVE_canonicalize_funcptr_for_compare.
4264 (fold_widened_comparison): Likewise.
4265 (fold_sign_changed_comparison): Likewise.
4266 * dojump.c: Include "target.h".
4267 (do_compare_and_jump): Replace uses of
4268 HAVE_canonicalize_funcptr_for_compare and
4269 gen_canonicalize_funcptr_for_compare.
4270 * expr.c (do_store_flag): Likewise.
4271
4272 2015-06-30 Tom de Vries <tom@codesourcery.com>
4273
4274 PR tree-optimization/66652
4275 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Use
4276 max_loop_iterations to determine if nit + 1 overflows.
4277
4278 2015-06-30 Richard Biener <rguenther@suse.de>
4279
4280 * tree-vrp.c (register_edge_assert_for_2): Also register
4281 asserts for dominating conversion results.
4282
4283 2015-06-30 Bin Cheng <bin.cheng@arm.com>
4284
4285 * tree-ssa-loop-ivopts.c (record_sub_use): Don't reset ssa_name
4286 field in struct iv.
4287
4288 2015-06-29 Jack Howarth <howarth.at.gcc@gmail.com>
4289
4290 PR target/66509
4291 * configure.ac: Fix filds and fildq test for 64-bit.
4292 * configure: Regenerated.
4293
4294 2015-06-29 Nathan Sidwell <nathan@codesourcery.com>
4295
4296 * config/nvptx/nvptx.md (nvptx_reorg_subreg): New fn, broken out of ...
4297 (nvptx_reorg): Here. Keep the non-subreg pieces.
4298
4299 2015-06-29 H.J. Lu <hongjiu.lu@intel.com>
4300
4301 * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Use
4302 PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
4303
4304 2015-06-29 Uros Bizjak <ubizjak@gmail.com>
4305
4306 * config/i386/i386.md (*jcc_1): Use %! in asm template.
4307 Set attribute "length_nobnd" instead of "length".
4308 (*jcc_2): Ditto.
4309 (jump): Ditto.
4310 (*jcc_1_bnd, *jcc_2_bnd, jump_bnd): Remove insn patterns.
4311
4312 2015-06-29 Sandra Loosemore <sandra@codesourcery.com>
4313
4314 * config/nios2/nios2.c (nios2_delegitimize_address): Make
4315 assert less restrictive.
4316
4317 2015-06-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
4318
4319 PR fortran/66605
4320 * cgraphunit.c (cgraph_node::finalize_function): Do not call
4321 do_warn_unused_parameter.
4322 * function.c (do_warn_unused_parameter): Move from here.
4323 * function.h (do_warn_unused_parameter): Do not declare.
4324
4325 2015-06-29 Matthew Wahab <matthew.wahab@arm.com>
4326
4327 PR target/65697
4328 * gcc.target/arm/armv-sync-comp-swap.c: New.
4329 * gcc.target/arm/armv-sync-op-acquire.c: New.
4330 * gcc.target/arm/armv-sync-op-full.c: New.
4331 * gcc.target/arm/armv-sync-op-release.c: New.
4332
4333 2015-06-29 Matthew Wahab <matthew.wahab@arm.com>
4334
4335 PR target/65697
4336 * config/armc/arm.c (arm_split_compare_and_swap): For ARMv8, replace an
4337 initial acquire barrier with final barrier.
4338
4339 2015-06-29 Matthew Wahab <matthew.wahab@arm.com>
4340
4341 PR target/65697
4342 * config/armc/arm.c (arm_split_atomic_op): For ARMv8, replace an
4343 initial acquire barrier with final barrier.
4344
4345 2015-06-29 Richard Henderson <rth@redhat.com>
4346
4347 * config/i386/constraints.md (Bf): New constraint.
4348 * config/i386/i386-c.c (ix86_target_macros): Define
4349 __GCC_ASM_FLAG_OUTPUTS__.
4350 * config/i386/i386.c (ix86_md_asm_adjust): Handle =@cc* constraints
4351 as flags outputs.
4352 * doc/extend.texi (FlagOutputOperands): Document them.
4353
4354 2015-06-29 Jiong Wang <jiong.wang@arm.com>
4355
4356 * config/arch64/aarch64.md (UNSPEC_TLSLE): New enumeration.
4357 * config/arch64/aarch64.md (tlsle_small): Rename to tlsle and use new
4358 unspec name.
4359 (tlsle_small_<mode>): Rename to tlsle_<mode> and use new unspec name.
4360 * config/arch64/aarch64-protos.h (arch64_symbol_type): Rename
4361 SYMBOL_SMALL_TPREL to SYMBOL_TLSLE.
4362 (aarch64_symbol_context): Ditto.
4363 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto
4364 and use new pattern name.
4365 (aarch64_expand_mov_immediate): Ditto.
4366 (aarch64_print_operand): Ditto.
4367 (aarch64_classify_tls_symbol): Ditto.
4368
4369 2015-06-29 Marek Polacek <polacek@redhat.com>
4370 Marc Glisse <marc.glisse@inria.fr>
4371
4372 * fold-const.c (fold_binary_loc): Move X - (X / Y) * Y -> X % Y to ...
4373 * match.pd: ... pattern here.
4374
4375 2015-06-29 Tom de Vries <tom@codesourcery.com>
4376
4377 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Simplify
4378 function structure.
4379
4380 2015-06-29 Matthew Wahab <matthew.wahab@arm.com>
4381
4382 * doc/invoke.texi (Aarch64 Options, -march): Split out arch and
4383 feature description, split out the native option, add a link to
4384 the feature documentation, rearrange and slightly rewrite text.
4385 (Aarch64 options, -mcpu): Likewise.
4386 (Aarch64 options, Feature Modifiers): Add an anchor. Mention
4387 +rdma implies Adv. SIMD.
4388
4389 2015-06-29 Marek Polacek <polacek@redhat.com>
4390
4391 PR c/66322
4392 * function.c (stack_protect_epilogue): Remove a cast to int.
4393 * doc/invoke.texi: Update -Wswitch-bool description.
4394
4395 2015-06-29 Richard Biener <rguenther@suse.de>
4396
4397 * genmatch.c (add_operator): Treat ADDR_EXPR as atom.
4398 * fold-const.c (fold_binary_loc): Move &A - &B simplification
4399 via ptr_difference_const ...
4400 * match.pd: ... here.
4401 When matching (X ^ Y) == Y also match with swapped operands.
4402
4403 2015-06-29 Richard Biener <rguenther@suse.de>
4404
4405 * lto-streamer.h (LTO_major_version): Bump to 5.
4406
4407 2015-06-29 Richard Biener <rguenther@suse.de>
4408
4409 PR tree-optimization/66677
4410 * tree-vect-stmts.c (vect_transform_stmt): Make assert about
4411 STMT_VINFO_VEC_STMT clobbering less strict.
4412
4413 2015-06-29 Kugan Vivekanandarajah <kuganv@linaro.org>
4414
4415 PR middle-end/64130
4416 * tree-vrp.c (extract_range_from_binary_expr_1): For unsigned
4417 division, compute max and min when value ranges for dividend and
4418 divisor are available.
4419
4420 2015-06-28 Chung-Lin Tang <cltang@codesourcery.com>
4421 Sandra Loosemore <sandra@codesourcery.com>
4422
4423 * regrename.h (regrename_do_replace): Change to return bool.
4424 * regrename.c (rename_chains): Check return value of
4425 regname_do_replace.
4426 (regrename_do_replace): Re-validate the modified insns and
4427 return bool status.
4428 * config/aarch64/cortex-a57-fma-steering.c (rename_single_chain):
4429 Update to match rename_chains changes.
4430 * config/c6x/c6x.c (try_rename_operands): Assert that
4431 regrename_do_replace returns true.
4432
4433 2015-06-28 Uros Bizjak <ubizjak@gmail.com>
4434
4435 * config/i386/i386.md (<mode>_ldx): Do not zero-extend non-Pmode
4436 operand 2 here. Use copy_addr_to_reg to copy non-index
4437 register operand 2 to a temporary.
4438 (<mode>_stx): Ditto for operand 1.
4439 (*<mode>_ldx, *<mode>_stx): Remove enclosing parallel.
4440 * config/i386/i386.c (ix86_load_bounds): Zero-extend non-Pmode ptr here.
4441 (ix86_store_bounds): Ditto.
4442
4443 2015-06-27 Patrick Palka <ppalka@gcc.gnu.org>
4444
4445 * print-tree.c (print_node) [TREE_VEC]: Print its length.
4446
4447 2015-06-26 Andrew MacLeod <amacleod@redhat.com>
4448
4449 * gimple.c (gimple_call_set_fndecl): Remove.
4450 * gimple.h (gimple_call_set_fndecl): Relocate to gimple.h and call
4451 build1_loc directly instead of build_fold_addr_expr_loc.
4452
4453 2015-06-26 Richard Sandiford <richard.sandiford@arm.com>
4454
4455 * hash-map.h (hash_map::traverse): Use the definition of the
4456 Key typedef rather than the typedef itself.
4457
4458 2015-06-26 Martin Jambor <mjambor@suse.cz>
4459
4460 PR debug/66301
4461 * tree-ssa-pre.c (before_dom_children): Check that dump_file is not
4462 NULL instead of calling dump_enabled_p.
4463
4464 2015-06-26 James Greenhalgh <james.greenhalgh@arm.com>
4465
4466 * config/aarch64/aarch64.opt: (override): New.
4467 * doc/invoke.texi (override): Document.
4468 * config/aarch64/aarch64.c (aarch64_flag_desc): New
4469 (aarch64_fusible_pairs): Likewise.
4470 (aarch64_tuning_flags): Likewise.
4471 (aarch64_tuning_override_function): Likewise.
4472 (aarch64_tuning_override_functions): Likewise.
4473 (aarch64_parse_one_option_token): Likewise.
4474 (aarch64_parse_boolean_options): Likewise.
4475 (aarch64_parse_fuse_string): Likewise.
4476 (aarch64_parse_tune_string): Likewise.
4477 (aarch64_parse_one_override_token): Likewise.
4478 (aarch64_parse_override_string): Likewise.
4479 (aarch64_override_options): Parse the -override string if it
4480 is present.
4481
4482 2015-06-26 James Greenhalgh <james.greenhalgh@arm.com>
4483
4484 * config/aarch64/aarch64-protos.h (tune_params): Remove
4485 const from members.
4486 (aarch64_tune_params): Remove const, change to no longer be
4487 a pointer.
4488 * config/aarch64/aarch64.c (aarch64_tune_params): Remove const,
4489 change to no longer be a pointer, initialize to generic_tunings.
4490 (aarch64_min_divisions_for_recip_mul): Change dereference of
4491 aarch64_tune_params to member access.
4492 (aarch64_reassociation_width): Likewise.
4493 (aarch64_rtx_mult_cost): Likewise.
4494 (aarch64_address_cost): Likewise.
4495 (aarch64_branch_cost): Likewise.
4496 (aarch64_rtx_costs): Likewise.
4497 (aarch64_register_move_cost): Likewise.
4498 (aarch64_memory_move_cost): Likewise.
4499 (aarch64_sched_issue_rate): Likewise.
4500 (aarch64_builtin_vectorization_cost): Likewise.
4501 (aarch64_override_options): Take a copy of the selected tuning
4502 struct in to aarch64_tune_params, rather than just setting
4503 a pointer, change dereferences of aarch64_tune_params to member
4504 accesses.
4505 (aarch64_override_options_after_change): Change dereferences of
4506 aarch64_tune_params to member access.
4507 (aarch64_macro_fusion_p): Likewise.
4508 (aarch_macro_fusion_pair_p): Likewise.
4509 * config/aarch64/cortex-a57-fma-steering.c (gate): Likewise.
4510
4511 2015-06-26 James Greenhalgh <james.greenhalgh@arm.com>
4512
4513 * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Delete.
4514 (aarch64_tune_flags): Likewise.
4515 (AARCH64_TUNE_FMA_STEERING): Likewise.
4516 * config/aarch64/aarch64-cores.def (cortex-a57): Remove reference
4517 to AARCH64_FL_USE_FMA_STEERING_PASS.
4518 (cortex-a57.cortex-a53): Likewise.
4519 (cortex-a72): Use cortexa72_tunings.
4520 (cortex-a72.cortex-a53): Likewise.
4521 (exynos-m1): Likewise.
4522 * config/aarch64/aarch64-protos.h (tune_params): Add
4523 a field: extra_tuning_flags.
4524 * config/aarch64/aarch64-tuning-flags.def: New.
4525 * config/aarch64/aarch64-protos.h (AARCH64_EXTRA_TUNING_OPTION): New.
4526 (aarch64_extra_tuning_flags): Likewise.
4527 (aarch64_tune_params): Declare here.
4528 * config/aarch64/aarch64.c (generic_tunings): Set extra_tuning_flags.
4529 (cortexa53_tunings): Likewise.
4530 (cortexa57_tunings): Likewise.
4531 (thunderx_tunings): Likewise.
4532 (xgene1_tunings): Likewise.
4533 (cortexa72_tunings): New.
4534 * config/aarch64/cortex-a57-fma-steering.c: Include aarch64-protos.h.
4535 (gate): Check against aarch64_tune_params.
4536 * config/aarch64/t-aarch64 (cortex-a57-fma-steering.o): Depend on
4537 aarch64-protos.h.
4538
4539 2015-06-26 James Greenhalgh <james.greenhalgh@arm.com>
4540
4541 * config/aarch64/aarch64-fusion-pairs.def: New.
4542 * config/aarch64/aarch64-protos.h (aarch64_fusion_pairs): New.
4543 * config/aarch64/aarch64.c (AARCH64_FUSE_NOTHING): Move to
4544 aarch64_fusion_pairs.
4545 (AARCH64_FUSE_MOV_MOVK): Likewise.
4546 (AARCH64_FUSE_ADRP_ADD): Likewise.
4547 (AARCH64_FUSE_MOVK_MOVK): Likewise.
4548 (AARCH64_FUSE_ADRP_LDR): Likewise.
4549 (AARCH64_FUSE_CMP_BRANCH): Likewise.
4550
4551 2015-06-26 Jiong Wang <jiong.wang@arm.com>
4552
4553 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): New type
4554 SYMBOL_SMALL_GOT_28K.
4555 * config/aarch64/aarch64.md: (ldr_got_small_<mode>): Support new GOT
4556 relocation modifiers.
4557 (unspec): New enum "UNSPEC_GOTMALLPIC28K.
4558 (ldr_got_small_28k_<mode>): New.
4559 (ldr_got_small_28k_sidi): New.
4560 * config/aarch64/iterators.md (got_modifier): New mode iterator.
4561 * config/aarch64/aarch64-otps.h (aarch64_code_model): New model.
4562 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Support
4563 SYMBOL_SMALL_GOT_28K.
4564 (aarch64_rtx_costs): Add costs for new instruction sequences.
4565 (initialize_aarch64_code_model): Initialize new model.
4566 (aarch64_classify_symbol): Recognize new model and new symbol classification.
4567 (aarch64_asm_preferred_eh_data_format): Support new model.
4568 (aarch64_load_symref_appropriately): Generate new instruction
4569 sequences for -fpic.
4570 (TARGET_USE_PSEUDO_PIC_REG): New definition.
4571 (aarch64_use_pseudo_pic_reg): New function.
4572
4573 2015-06-26 Jiong Wang <jiong.wang@arm.com>
4574
4575 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Rename
4576 SYMBOL_SMALL_GOT to SYMBOL_SMALL_GOT_4G.
4577 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Ditto.
4578 (aarch64_expand_mov_immediate): Ditto.
4579 (aarch64_print_operand): Ditto.
4580 (aarch64_classify_symbol): Ditto.
4581
4582 2015-06-26 Nathan Sidwell <nathan@codesourcery.com>
4583
4584 * config/nvptx/nvptx.md (call_operation): Remove unused variables.
4585
4586 2015-06-26 Bin Cheng <bin.cheng@arm.com>
4587
4588 PR bootstrap/66638
4589 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Skip if
4590 assertion failed. Remove assertion itself.
4591
4592 2015-06-26 Richard Biener <rguenther@suse.de>
4593
4594 * fold-const.c (fold_binary_loc): Remove -A CMP -B -> A CMP B
4595 and -A CMP CST -> A CMP -CST which is redundant with a pattern
4596 in match.pd.
4597 Move (A | C) == D where C & ~D != 0 -> 0, (X ^ Y) ==/!= 0 -> X ==/!= Y,
4598 (X ^ Y) ==/!= {Y,X} -> {X,Y} ==/!= 0 and
4599 (X ^ C1) op C2 -> X op (C1 ^ C2) to ...
4600 * match.pd: ... patterns here.
4601
4602 2015-06-26 Marek Polacek <polacek@redhat.com>
4603
4604 * match.pd ((x | y) & ~(x & y) -> x ^ y,
4605 (x | y) & (~x ^ y) -> x & y): New patterns.
4606
4607 2015-06-26 Richard Sandiford <richard.sandiford@arm.com>
4608
4609 * rtl.h (emit): Add an optional boolean parameter to control
4610 whether barriers are emitted.
4611 * emit-rtl.c (emit): Likewise.
4612 * gensupport.c (get_emit_function): Return null rather than "emit".
4613 * genemit.c (gen_emit_seq): Handle the null return value.
4614 Don't emit barriers after the final instruction in the sequence.
4615 * gentarget-def.c (main): Don't emit barriers after the instruction.
4616
4617 2015-06-26 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4618
4619 * config/arm/arm.c (arm_output_multireg_pop): Fix use of
4620 TARGET_UNIFIED_ASM.
4621
4622 2015-06-26 Richard Biener <rguenther@suse.de>
4623
4624 * match.pd: Allow associating FLOAT_TYPE_P when flag_associative_math.
4625
4626 2015-06-26 Richard Biener <rguenther@suse.de>
4627
4628 * match.pd: Allow (p +p off1) +p off2 to (p +p (off1 + off2))
4629 irrespective on whether the inner operation has a single use
4630 of both off are constant.
4631
4632 2015-06-26 Uros Bizjak <ubizjak@gmail.com>
4633 Segher Boessenkool <segher@kernel.crashing.org>
4634
4635 PR target/66412
4636 * config/i386/i386.md (various splitters): Use shallow_copy_rtx
4637 before doing PUT_MODE or PUT_CODE on operands to avoid
4638 in-place RTX modification.
4639
4640 2015-06-25 H.J. Lu <hongjiu.lu@intel.com>
4641
4642 * gentarget-def.c (def_target_insn): Cast return of strtol to
4643 unsigned int.
4644
4645 2015-06-25 Andrew MacLeod <amacleod@redhat.com>
4646
4647 * gimple.h (gimple_call_set_fn): Move inline function.
4648 * gimple.c (gimple_call_set_fn): Relocate here.
4649
4650 2015-06-25 Oleg Endo <olegendo@gcc.gnu.org>
4651
4652 PR target/65979
4653 PR target/66611
4654 * config/sh/sh.md (tstsi_t peephole2): Use insn_invalid_p to check if
4655 the replacement insn will work.
4656
4657 2015-06-25 H.J. Lu <hongjiu.lu@intel.com>
4658
4659 * gcc.c (driver_handle_option): Validate -pie if PIE is enabled
4660 by default.
4661
4662 2015-06-25 Andrew MacLeod <amacleod@redhat.com>
4663
4664 * function.h (ipa_opt_pass, ipa_opt_pass_d): Move forward declarations.
4665 * cgraph.h: Include ipa-ref.h and plugin-api.h.
4666 (ipa_opt_pass, ipa_opt_pass_d)): Relocate forward declarations here.
4667 (symtab_node::address_can_be_compared_p): Move function.
4668 * cgraph.c (symtab_node::address_can_be_compared_p): Relocate function
4669 definition here.
4670 * asan.c: Remove ipa-ref.h and plugin-api.h from include list.
4671 * auto-profile.c: Likewise.
4672 * bb-reorder.c: Likewise.
4673 * builtins.c: Likewise.
4674 * calls.c: Likewise.
4675 * cfgexpand.c: Likewise.
4676 * cgraphbuild.c: Likewise.
4677 * cgraphclones.c: Likewise.
4678 * cgraphunit.c: Likewise.
4679 * combine.c: Likewise.
4680 * coverage.c: Likewise.
4681 * data-streamer-in.c: Likewise.
4682 * data-streamer-out.c: Likewise.
4683 * data-streamer.c: Likewise.
4684 * dbxout.c: Likewise.
4685 * dwarf2out.c: Likewise.
4686 * except.c: Likewise.
4687 * expr.c: Likewise.
4688 * final.c: Likewise.
4689 * fold-const.c: Likewise.
4690 * ggc-page.c: Likewise.
4691 * gimple-fold.c: Likewise.
4692 * gimple-iterator.c: Likewise.
4693 * gimple-pretty-print.c: Likewise.
4694 * gimple-streamer-in.c: Likewise.
4695 * gimple-streamer-out.c: Likewise.
4696 * gimple.c: Likewise.
4697 * gimplify.c: Likewise.
4698 * ipa-chkp.c: Likewise.
4699 * ipa-comdats.c: Likewise.
4700 * ipa-cp.c: Likewise.
4701 * ipa-devirt.c: Likewise.
4702 * ipa-icf-gimple.c: Likewise.
4703 * ipa-icf.c: Likewise.
4704 * ipa-inline-analysis.c: Likewise.
4705 * ipa-inline-transform.c: Likewise.
4706 * ipa-inline.c: Likewise.
4707 * ipa-polymorphic-call.c: Likewise.
4708 * ipa-profile.c: Likewise.
4709 * ipa-prop.c: Likewise.
4710 * ipa-pure-const.c: Likewise.
4711 * ipa-ref.c: Likewise.
4712 * ipa-reference.c: Likewise.
4713 * ipa-split.c: Likewise.
4714 * ipa-utils.c: Likewise.
4715 * ipa-visibility.c: Likewise.
4716 * ipa.c: Likewise.
4717 * langhooks.c: Likewise.
4718 * lto-cgraph.c: Likewise.
4719 * lto-compress.c: Likewise.
4720 * lto-opts.c: Likewise.
4721 * lto-section-in.c: Likewise.
4722 * lto-section-out.c: Likewise.
4723 * lto-streamer-in.c: Likewise.
4724 * lto-streamer-out.c: Likewise.
4725 * lto-streamer.c: Likewise.
4726 * omp-low.c: Likewise.
4727 * opts-global.c: Likewise.
4728 * passes.c: Likewise.
4729 * predict.c: Likewise.
4730 * print-tree.c: Likewise.
4731 * profile.c: Likewise.
4732 * ree.c: Likewise.
4733 * sanopt.c: Likewise.
4734 * stor-layout.c: Likewise.
4735 * symtab.c: Likewise.
4736 * toplev.c: Likewise.
4737 * trans-mem.c: Likewise.
4738 * tree-cfg.c: Likewise.
4739 * tree-chkp.c: Likewise.
4740 * tree-eh.c: Likewise.
4741 * tree-emutls.c: Likewise.
4742 * tree-inline.c: Likewise.
4743 * tree-nested.c: Likewise.
4744 * tree-parloops.c: Likewise.
4745 * tree-pretty-print.c: Likewise.
4746 * tree-profile.c: Likewise.
4747 * tree-sra.c: Likewise.
4748 * tree-ssa-alias.c: Likewise.
4749 * tree-ssa-live.c: Likewise.
4750 * tree-ssa-loop-ivcanon.c: Likewise.
4751 * tree-ssa-loop-ivopts.c: Likewise.
4752 * tree-ssa-pre.c: Likewise.
4753 * tree-ssa-sccvn.c: Likewise.
4754 * tree-ssa-strlen.c: Likewise.
4755 * tree-ssa-structalias.c: Likewise.
4756 * tree-streamer-in.c: Likewise.
4757 * tree-streamer-out.c: Likewise.
4758 * tree-streamer.c: Likewise.
4759 * tree-switch-conversion.c: Likewise.
4760 * tree-tailcall.c: Likewise.
4761 * tree-vect-data-refs.c: Likewise.
4762 * tree-vect-stmts.c: Likewise.
4763 * tree-vectorizer.c: Likewise.
4764 * tree.c: Likewise.
4765 * tsan.c: Likewise.
4766 * ubsan.c: Likewise.
4767 * value-prof.c: Likewise.
4768 * varasm.c: Likewise.
4769 * varpool.c: Likewise.
4770 * config/arm/arm.c: Likewise.
4771 * config/bfin/bfin.c: Likewise.
4772 * config/c6x/c6x.c: Likewise.
4773 * config/cris/cris.c: Likewise.
4774 * config/darwin-c.c: Likewise.
4775 * config/darwin.c: Likewise.
4776 * config/i386/i386.c: Likewise.
4777 * config/i386/winnt.c: Likewise.
4778 * config/microblaze/microblaze.c: Likewise.
4779 * config/mips/mips.c: Likewise.
4780 * config/rs6000/rs6000.c: Likewise.
4781 * config/rx/rx.c: Likewise.
4782 * config/s390/s390.c: Likewise.
4783 * config/tilegx/mul-tables.c: Likewise.
4784
4785 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
4786
4787 * config/aarch64/aarch64.c, config/alpha/alpha.c,
4788 config/arm/arm.c, config/avr/avr.c, config/bfin/bfin.c,
4789 config/c6x/c6x.c, config/cr16/cr16.c, config/cris/cris.c,
4790 config/fr30/fr30.c, config/frv/frv.c, config/h8300/h8300.c,
4791 config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
4792 config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
4793 config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
4794 config/microblaze/microblaze.c, config/mips/mips.c,
4795 config/mmix/mmix.c, config/mn10300/mn10300.c,
4796 config/moxie/moxie.c, config/msp430/msp430.c,
4797 config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
4798 config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
4799 config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
4800 config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
4801 config/stormy16/stormy16.c, config/tilegx/tilegx.c,
4802 config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
4803 config/visium/visium.c, config/xtensa/xtensa.c: Add comment above
4804 target-def.h include.
4805 * config/ft32/ft32.c: Likewise. Fix misapplied hunk.
4806
4807 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
4808
4809 * Makefile.in (TARGET_DEF): Add target-insns.def.
4810 (.PRECIOUS, simple_rtl_generated_h): Add insn-target-def.h.
4811 (build/gentarget-def.o): New rule.
4812 (genprogrtl): Add target-def.
4813 * target-insns.def, gentarget-def.c: New files.
4814 * target.def: Add targetm.have_* and targetm.gen_* hooks,
4815 based on the contents of target-insns.def.
4816 * defaults.h (HAVE_simple_return, gen_simple_return): Delete.
4817 (HAVE_return, gen_return): Delete.
4818 * target-def.h: Include insn-target-def.h.
4819 * cfgrtl.c (force_nonfallthru_and_redirect): Use targetm interface
4820 instead of direct calls. Rely on them to do the appropriate assertions.
4821 * function.c (gen_return_pattern): Likewise. Return an rtx_insn *.
4822 (convert_jumps_to_returns): Use targetm interface instead of
4823 direct calls.
4824 (thread_prologue_and_epilogue_insns): Likewise.
4825 * reorg.c (find_end_label, dbr_schedule): Likewise.
4826 * shrink-wrap.h (SHRINK_WRAPPING_ENABLED): Likewise.
4827 * shrink-wrap.c (convert_to_simple_return): Likewise.
4828 (try_shrink_wrapping): Use SHRINK_WRAPPING_ENABLED.
4829
4830 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
4831
4832 * config/aarch64/aarch64.c, config/alpha/alpha.c, config/arm/arm.c,
4833 config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
4834 config/cr16/cr16.c, config/cris/cris.c, config/fr30/fr30.c,
4835 config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
4836 config/i386/i386.c, config/ia64/ia64.c, config/iq2000/iq2000.c,
4837 config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
4838 config/m68k/m68k.c, config/mcore/mcore.c, config/mep/mep.c,
4839 config/microblaze/microblaze.c, config/mips/mips.c, config/mmix/mmix.c,
4840 config/mn10300/mn10300.c, config/moxie/moxie.c, config/msp430/msp430.c,
4841 config/nds32/nds32.c, config/nios2/nios2.c, config/nvptx/nvptx.c,
4842 config/pa/pa.c, config/pdp11/pdp11.c, config/rl78/rl78.c,
4843 config/rs6000/rs6000.c, config/rx/rx.c, config/s390/s390.c,
4844 config/sh/sh.c, config/sparc/sparc.c, config/spu/spu.c,
4845 config/stormy16/stormy16.c, config/tilegx/tilegx.c,
4846 config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
4847 config/visium/visium.c, config/xtensa/xtensa.c: Move target-def.h
4848 includes to end.
4849
4850 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
4851
4852 * hash-map-traits.h (simple_hashmap_traits::key_type): New typedef.
4853 (unbounded_int_hashmap_traits::key_type): Likewise.
4854 * hash-map.h (hash_map): Get the key type from the traits.
4855 * hash-traits.h (default_hash_traits): By default, inherit from the
4856 template parameter.
4857 * alias.c (alias_set_traits): Delete.
4858 (alias_set_entry_d::children): Use alias_set_hash as the first
4859 template parameter.
4860 (record_alias_subset): Update accordingly.
4861 * except.c (tree_hash_traits): Delete.
4862 (type_to_runtime_map): Use tree_hash as the first template parameter.
4863 (init_eh): Update accordingly.
4864 * genmatch.c (capture_id_map_hasher): Delete.
4865 (cid_map_t): Use nofree_string_hash as first template parameter.
4866 * ipa-icf.h (symbol_compare_hashmap_traits): Delete.
4867 * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
4868 Use symbol_compare_hash as the first template parameter in
4869 subdivide_hash_map.
4870 * mem-stats.h (mem_usage_pair::mem_alloc_hashmap_traits): Delete.
4871 (mem_usage_pair::mem_map_t): Use mem_location_hash as the first
4872 template parameter.
4873 * passes.c (pass_registry_hasher): Delete.
4874 (name_to_pass_map): Use nofree_string_hash as the first template
4875 parameter.
4876 (register_pass_name): Update accordingly.
4877 * sanopt.c (sanopt_tree_map_traits): Delete.
4878 (sanopt_tree_triplet_map_traits): Delete.
4879 (sanopt_ctx::asan_check_map): Use tree_operand_hash as the first
4880 template parameter.
4881 (sanopt_ctx::vptr_check_map): Use sanopt_tree_triplet_hash as
4882 the first template parameter.
4883 * sese.c (rename_map_hasher): Delete.
4884 (rename_map_type): Use tree_ssa_name_hash as the first template
4885 parameter.
4886 * symbol-summary.h (function_summary::summary_hashmap_traits): Delete.
4887 (function_summary::m_map): Use map_hash as the first template
4888 parameter.
4889 (function_summary::release): Update accordingly.
4890 * tree-if-conv.c (phi_args_hash_traits): Delete.
4891 (predicate_scalar_phi): Use tree_operand_hash as the first template
4892 parameter to phi_arg_map.
4893 * tree-inline.h (dependence_hasher): Delete.
4894 (copy_body_data::dependence_map): Use dependence_hash as the first
4895 template parameter.
4896 * tree-inline.c (remap_dependence_clique): Update accordingly.
4897 * tree-ssa-strlen.c (stridxlist_hash_traits): Delete.
4898 (decl_to_stridxlist_htab): Use tree_decl_hash as the first template
4899 parameter.
4900 (addr_stridxptr): Update accordingly.
4901 * value-prof.c (profile_id_traits): Delete.
4902 (cgraph_node_map): Use profile_id_hash as the first template
4903 parameter.
4904 (init_node_map): Update accordingly.
4905 * config/alpha/alpha.c (string_traits): Delete.
4906 (machine_function::links): Use nofree_string_hash as the first
4907 template parameter.
4908 (alpha_use_linkage, alpha_write_linkage): Update accordingly.
4909 * config/m32c/m32c.c (pragma_traits): Delete.
4910 (pragma_htab): Use nofree_string_hash as the first template parameter.
4911 (m32c_note_pragma_address): Update accordingly.
4912 * config/mep/mep.c (pragma_traits): Delete.
4913 (pragma_htab): Use nofree_string_hash as the first template parameter.
4914 (mep_note_pragma_flag): Update accordingly.
4915 * config/mips/mips.c (mips16_flip_traits): Delete.
4916 (mflip_mips16_htab): Use nofree_string_hash as the first template
4917 parameter.
4918 (mflip_mips16_use_mips16_p): Update accordingly.
4919 (local_alias_traits): Delete.
4920 (mips16_local_aliases): Use nofree_string_hash as the first template
4921 parameter.
4922 (mips16_local_alias): Update accordingly.
4923
4924 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
4925
4926 * hash-map-traits.h (default_hashmap_traits): Delete.
4927
4928 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
4929
4930 * hash-map-traits.h (unbounded_hashmap_traits): New class.
4931 (unbounded_int_hashmap_traits): Likewise.
4932 * cfgexpand.c (part_traits): Use unbounded_int_hashmap_traits.
4933
4934 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
4935
4936 * ipa-icf.h (symbol_compare_hash): New class.
4937 (symbol_compare_hashmap_traits): Use it.
4938 * mem-stats.h (mem_alloc_description::mem_location_hash): New class.
4939 (mem_alloc_description::mem_alloc_hashmap_traits): Use it.
4940 (mem_alloc_description::reverse_mem_map_t): Remove redundant
4941 default_hashmap_traits.
4942 * sanopt.c (sanopt_tree_triplet_hash): New class.
4943 (sanopt_tree_triplet_map_traits): Use it.
4944
4945 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
4946
4947 * gengtype-parse.c (require_template_declaration): Allow '+' in
4948 template parameters. Consolidate cases.
4949 * hash-traits.h (int_hash): New class.
4950 * alias.c (alias_set_hash): New structure.
4951 (alias_set_traits): Use it.
4952 * symbol-summary.h (function_summary::map_hash): New class.
4953 (function_summary::summary_hashmap_traits): Use it.
4954 * tree-inline.h (dependence_hash): New class.
4955 (dependence_hasher): Use it.
4956 * tree-ssa-reassoc.c (oecount_hasher): Use int_hash.
4957 * value-prof.c (profile_id_hash): New class.
4958 (profile_id_traits): Use it.
4959
4960 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
4961
4962 * config/mips/mips.c (mips16_flip_traits): Use it.
4963 (local_alias_traits, mips16_local_aliases): Convert from a map of
4964 rtxes to a map of symbol names.
4965 (mips16_local_alias): Update accordingly.
4966
4967 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
4968
4969 * hash-traits.h (string_hash, nofree_string_hash): New classes.
4970 * genmatch.c (capture_id_map_hasher): Use nofree_string_hash.
4971 * passes.c (pass_registry_hasher): Likewise.
4972 * config/alpha/alpha.c (string_traits): Likewise.
4973 * config/i386/winnt.c (i386_find_on_wrapper_list): Likewise.
4974 * config/m32c/m32c.c (pragma_traits): Likewise.
4975 * config/mep/mep.c (pragma_traits): Likewise.
4976
4977 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
4978
4979 * tree-hash-traits.h (tree_hash): New class.
4980 * except.c: Include tree-hash-traits.h.
4981 (tree_hash_traits): Use tree_hash.
4982
4983 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
4984
4985 * tree-hash-traits.h (tree_ssa_name_hasher): New class.
4986 * sese.c: Include tree-hash-traits.h.
4987 (rename_map_hasher): Use tree_ssa_name_hasher.
4988
4989 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
4990
4991 * tree-hash-traits.h (tree_decl_hash): New class.
4992 * tree-ssa-strlen.c: Include tree-hash-traits.h.
4993 (stridxlist_hash_traits): Use tree_decl_hash.
4994
4995 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
4996
4997 * tree-hash-traits.h: New file.
4998 (tree_operand_hash): New class.
4999 * sanopt.c: Include tree-hash-traits.h.
5000 (sanopt_tree_map_traits): Use tree_operand_hash.
5001 * tree-if-conv.c: Include tree-hash-traits.h.
5002 (phi_args_hash_traits): Use tree_operand_hash.
5003 * tree-ssa-uncprop.c: Include tree-hash-traits.h.
5004 (val_ssa_equiv_hash_traits): Use tree_operand_hash.
5005
5006 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
5007
5008 * hash-map-traits.h: Include hash-traits.h.
5009 (simple_hashmap_traits): New class.
5010 * mem-stats.h (hash_map): Change the default traits to
5011 simple_hashmap_traits<default_hash_traits<Key> >.
5012
5013 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
5014
5015 * hash-table.h: Update comments.
5016
5017 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
5018
5019 * hash-traits.h (default_hash_traits): New structure.
5020 * hash-set.h (default_hashset_traits): Delete.
5021 (hash_set): Use default_hash_traits<Key> instead of
5022 default_hashset_traits. Delete hash_entry type and use Key directly.
5023 * ipa-devirt.c (pair_traits): Delete.
5024 (default_hash_traits <type_pair>): Override.
5025 (odr_subtypes_equivalent_p): Remove pair_types template parameter.
5026 (odr_types_equivalent_p, add_type_duplicate): Likewise.
5027
5028 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
5029
5030 * hash-traits.h (typed_noop_remove): Don't require a pointer type.
5031
5032 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
5033
5034 * hash-table.h (has_is_deleted, is_deleted_helper): Delete.
5035 (has_is_empty, is_empty_helper): Delete.
5036 (has_mark_deleted, mark_deleted_helper): Delete.
5037 (has_mark_empty, mark_empty_helper): Delete.
5038 (hash_table::is_deleted): Call the Descriptor unconditionally.
5039 (hash_table::is_empty): Likewise.
5040 (hash_table::mark_deleted): Likewise.
5041 (hash_table::mark_empty): Likewise.
5042
5043 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
5044
5045 * cgraph.h (asmname_hasher): Inherit from ggc_ptr_hash. Remove
5046 redundant typedefs and members.
5047 * coverage.c (counts_entry): Inherit from pointer_hash. Remove
5048 redundant typedefs.
5049 * dwarf2out.c (cu_hash_table_entry_hasher): Likewise.
5050 * ipa-devirt.c (odr_name_hasher): Likewise.
5051 (polymorphic_call_target_hasher): Likewise.
5052 * ira-costs.c (cost_classes_hasher): Likewise.
5053 * statistics.c (stats_counter_hasher): Likewise.
5054 * trans-mem.c (log_entry_hasher): Likewise.
5055 * tree-ssa-dom.c (expr_elt_hasher): Likewise.
5056 * tree-ssa-sccvn.c (vn_phi_hasher, vn_reference_hasher): Likewise.
5057 * tree-ssa-tail-merge.c (same_succ_def): Likewise.
5058 * var-tracking.c (variable_hasher): Likewise.
5059 * valtrack.h (dead_debug_hash_descr): Inherit from free_ptr_hash.
5060 Remove redundant typedefs and members.
5061
5062 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
5063
5064 * hash-traits.h (ggc_cache_hasher): Rename to...
5065 (ggc_cache_remove): ...this and remove typedefs.
5066 (ggc_cache_ptr_hash): New class.
5067 * hash-table.h: Update commentary.
5068 * emit-rtl.c (const_int_hasher): Inherit from ggc_cache_ptr_hash
5069 rather than ggc_cache_hasher.
5070 (const_wide_int_hasher, reg_attr_hasher): Likewise.
5071 (const_double_hasher, const_fixed_hasher): Likewise.
5072 * function.c (insn_cache_hasher): Likewise.
5073 * trans-mem.c (tm_wrapper_hasher): Likewise.
5074 * tree.h (tree_decl_map_cache_hasher): Likewise.
5075 * tree.c (type_cache_hasher, int_cst_hasher): Likewise.
5076 (cl_option_hasher, tree_vec_map_cache_hasher): Likewise.
5077 * ubsan.c (tree_type_map_cache_hasher): Likewise.
5078 * varasm.c (tm_clone_hasher): Likewise.
5079 * config/i386/i386.c (dllimport_hasher): Likewise.
5080 * config/nvptx/nvptx.c (declared_libfunc_hasher): Likewise.
5081 (tree_hasher): Likewise.
5082
5083 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
5084
5085 * hash-traits.h (ggc_hasher): Rename to...
5086 (ggc_remover): ...this and remove typedefs.
5087 (ggc_cache_hasher): Update accordingly. Add typedefs.
5088 (ggc_ptr_hash): New class.
5089 * hash-table.h: Update comment.
5090 * cfgloop.h (loop_exit_hasher): Inherit from ggc_ptr_hash rather than
5091 ggc_hasher.
5092 * cgraph.h (section_name_hasher, cgraph_edge_hasher): Likewise.
5093 (tree_descriptor_hasher): Likewise.
5094 * cgraph.c (function_version_hasher): Likewise.
5095 * dwarf2out.c (indirect_string_hasher, dwarf_file_hasher): Likewise.
5096 (decl_die_hasher, block_die_hasher, decl_loc_hasher): Likewise.
5097 (dw_loc_list_hasher, addr_hasher): Likewise.
5098 * function.h (used_type_hasher): Likewise.
5099 * function.c (temp_address_hasher): Likewise.
5100 * gimple-ssa.h (tm_restart_hasher, ssa_name_hasher): Likewise.
5101 * libfuncs.h (libfunc_hasher): Likewise.
5102 * lto-streamer.h (decl_state_hasher): Likewise.
5103 * optabs.c (libfunc_decl_hasher): Likewise.
5104 * tree-scalar-evolution.c (scev_info_hasher): Likewise.
5105 * varasm.c (section_hasher, object_block_hasher): Likewise.
5106 (const_rtx_desc_hasher): Likewise.
5107 * config/darwin.c (indirection_hasher, cfstring_hasher): Likewise.
5108 * config/rs6000/rs6000.c (toc_hasher, builtin_hasher): Likewise.
5109
5110 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
5111
5112 * hash-traits.h (free_ptr_hash): New class.
5113 * dwarf2out.c (decl_table_entry_hasher): Inherit from free_ptr_hash
5114 rather than typed_free_remove. Remove redudant typedefs.
5115 (external_ref_hasher): Likewise.
5116 * except.c (action_record_hasher, ttypes_filter_hasher): Likewise.
5117 (ehspec_hasher): Likewise.
5118 * ggc-common.c (saving_hasher): Likewise.
5119 * gimplify.c (gimplify_hasher): Likewise.
5120 * haifa-sched.c (delay_i2_hasher): Likewise.
5121 * loop-invariant.c (invariant_expr_hasher): Likewise.
5122 * loop-iv.c (biv_entry_hasher): Likewise.
5123 * loop-unroll.c (iv_split_hasher, var_expand_hasher): Likewise.
5124 * trans-mem.c (tm_mem_map_hasher, tm_memop_hasher): Likewise.
5125 * tree-cfg.c (locus_discrim_hasher): Likewise.
5126 * tree-eh.c (finally_tree_hasher): Likewise.
5127 * tree-into-ssa.c (var_info_hasher): Likewise.
5128 * tree-parloops.c (reduction_hasher, name_to_copy_hasher): Likewise.
5129 * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher): Likewise.
5130 * tree-ssa-phiopt.c (ssa_names_hasher): Likewise.
5131 * tree-ssa-pre.c (expr_pred_trans_d): Likewise.
5132 * tree-ssa-sccvn.c (vn_constant_hasher): Likewise.
5133 * tree-ssa-structalias.c (equiv_class_hasher): Likewise.
5134 (shared_bitmap_hasher): Likewise.
5135 * tree-ssa-threadupdate.c (redirection_data): Likewise.
5136 * tree-vectorizer.h (peel_info_hasher): Likewise.
5137 * tree-vectorizer.c (simduid_to_vf, simd_array_to_simduid): Likewise.
5138 * config/mips/mips.c (mips_lo_sum_offset_hasher): Likewise.
5139
5140 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
5141
5142 * hash-table.h: Update comments.
5143 * hash-traits.h (pointer_hash): Don't inherit from typed_noop_remove.
5144 (nofree_ptr_hash): New class.
5145 * asan.c (asan_mem_ref_hasher): Inherit from nofree_ptr_hash rather
5146 than typed_noop_remove. Remove redudant typedefs.
5147 * attribs.c (attribute_hasher): Likewise.
5148 * cfg.c (bb_copy_hasher): Likewise.
5149 * cselib.c (cselib_hasher): Likewise.
5150 * dse.c (invariant_group_base_hasher): Likewise.
5151 * dwarf2cfi.c (trace_info_hasher): Likewise.
5152 * dwarf2out.c (macinfo_entry_hasher): Likewise.
5153 (comdat_type_hasher, loc_list_hasher): Likewise.
5154 * gcse.c (pre_ldst_expr_hasher): Likewise.
5155 * genmatch.c (id_base): Likewise.
5156 * genrecog.c (test_pattern_hasher): Likewise.
5157 * gimple-ssa-strength-reduction.c (cand_chain_hasher): Likewise.
5158 * haifa-sched.c (delay_i1_hasher): Likewise.
5159 * hard-reg-set.h (simplifiable_subregs_hasher): Likewise.
5160 * ipa-icf.h (congruence_class_group_hash): Likewise.
5161 * ipa-profile.c (histogram_hash): Likewise.
5162 * ira-color.c (allocno_hard_regs_hasher): Likewise.
5163 * lto-streamer.h (string_slot_hasher): Likewise.
5164 * lto-streamer.c (tree_entry_hasher): Likewise.
5165 * plugin.c (event_hasher): Likewise.
5166 * postreload-gcse.c (expr_hasher): Likewise.
5167 * store-motion.c (st_expr_hasher): Likewise.
5168 * tree-sra.c (uid_decl_hasher): Likewise.
5169 * tree-ssa-coalesce.c (coalesce_pair_hasher): Likewise.
5170 (ssa_name_var_hash): Likewise.
5171 * tree-ssa-live.c (tree_int_map_hasher): Likewise.
5172 * tree-ssa-loop-im.c (mem_ref_hasher): Likewise.
5173 * tree-ssa-pre.c (pre_expr_d): Likewise.
5174 * tree-ssa-sccvn.c (vn_nary_op_hasher): Likewise.
5175 * vtable-verify.h (registration_hasher): Likewise.
5176 * vtable-verify.c (vtbl_map_hasher): Likewise.
5177 * config/arm/arm.c (libcall_hasher): Likewise.
5178 * config/i386/winnt.c (wrapped_symbol_hasher): Likewise.
5179 * config/ia64/ia64.c (bundle_state_hasher): Likewise.
5180 * config/sol2.c (comdat_entry_hasher): Likewise.
5181 * fold-const.c (fold): Use nofree_ptr_hash instead of pointer_hash.
5182 (print_fold_checksum, fold_checksum_tree): Likewise.
5183 (debug_fold_checksum, fold_build1_stat_loc): Likewise.
5184 (fold_build2_stat_loc, fold_build3_stat_loc): Likewise.
5185 (fold_build_call_array_loc): Likewise.
5186 * tree-ssa-ccp.c (gimple_htab): Likewise.
5187 * tree-browser.c (tree_upper_hasher): Inherit from nofree_ptr_hash
5188 rather than pointer_type.
5189
5190 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
5191
5192 * hash-traits.h (pointer_hash::mark_deleted, pointer_hash::mark_empty)
5193 (pointer_hash::is_deleted, pointer_hash::is_empty): New functions.
5194
5195 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
5196
5197 * hash-traits.h (ggc_hasher::remove): Take a reference parameter.
5198 (ggc_hasher::ggc_mx): Likewise.
5199 (ggc_cache_hasher): Inherit from ggc_hasher. Remove definitions
5200 that duplicate ggc_hasher ones.
5201
5202 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
5203
5204 * hash-table.h (hash_table): Add gt_cleare_cache as a friend.
5205 (gt_cleare_cache): Check here for deleted and empty entries.
5206 Replace handle_cache_entry with a call to keep_cache_entry.
5207 * hash-traits.h (ggc_cache_hasher::handle_cache_entry): Delete.
5208 (ggc_cache_hasher::keep_cache_entry): New function.
5209 * trans-mem.c (tm_wrapper_hasher::handle_cache_entry): Delete.
5210 (tm_wrapper_hasher::keep_cache_entry): New function.
5211 * tree.h (tree_decl_map_cache_hasher::handle_cache_entry): Delete.
5212 (tree_vec_map_cache_hasher::keep_cache_entry): New function.
5213 * tree.c (type_cache_hasher::handle_cache_entry): Delete.
5214 (type_cache_hasher::keep_cache_entry): New function.
5215 (tree_vec_map_cache_hasher::handle_cache_entry): Delete.
5216 (tree_vec_map_cache_hasher::keep_cache_entry): New function.
5217 * ubsan.c (tree_type_map_cache_hasher::handle_cache_entry): Delete.
5218 (tree_type_map_cache_hasher::keep_cache_entry): New function.
5219 * varasm.c (tm_clone_hasher::handle_cache_entry): Delete.
5220 (tm_clone_hasher::keep_cache_entry): New function.
5221 * config/i386/i386.c (dllimport_hasher::handle_cache_entry): Delete.
5222 (dllimport_hasher::keep_cache_entry): New function.
5223
5224 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
5225
5226 * hash-table.h: Include hash-traits.h.
5227 (typed_free_remove, typed_noop_remove, pointer_hash, ggc_hasher)
5228 (ggc_cache_hasher): Move to...
5229 * hash-traits.h: ...this new file.
5230
5231 2015-06-25 Andrew MacLeod <amacleod@redhat.com>
5232
5233 * tree-core.h (struct tree_optimization_option): Make opts a pointer to
5234 struct cl_optimization.
5235 * tree.h (TREE_OPTIMIZATION): Return the pointer, not the address of it.
5236 * tree.c (make_node_stat): Allocate cl_optimization struct.
5237 (copy_node_stat): Allocate and copy cl_optimization struct.
5238
5239 2015-06-25 Andrew MacLeod <amacleod@redhat.com>
5240
5241 * function.h (struct incoming_args): Move struct.
5242 (pass_by_reference, reference_callee_copied): Remove prototypes.
5243 * emit-rtl.h (struct incoming_args): Relocate struct here.
5244 * calls.h (pass_by_reference, reference_callee_copied): Relocate
5245 prototypes here.
5246 * function.c (pass_by_reference, reference_callee_copied): Move.
5247 * calls.c (pass_by_reference, reference_callee_copied): Relocate here.
5248 * cfgloop.h: Don't include tm.h or hard-reg-set.h.
5249 * ipa-chkp.c: Include calls.h.
5250
5251 2015-06-25 Andrew Macleod <amacleod@redhat.com>
5252
5253 * alias.h (alias_set_type): Move typedef.
5254 * coretypes.h (alias_set_type): Relocate typedef here.
5255 * rtl.h: Don't include alias.h.
5256
5257 2015-06-25 Andrew MacLeod <amacleod@redhat.com>
5258
5259 * cgraph.h (cgraph_rtl_info): Move to rtl.h
5260 (cgraph_node): Maintain pointer to struct cgraph_rtl_info instead of
5261 and instance.
5262 * rtl.h (struct cgraph_rtl_info): Define when HARD_REG_SET available.
5263 * cgraph.c (cgraph_node::rtl_info): Allocate cgraph_rtl_info if one
5264 doesn't exist.
5265 * calls.c: Include hard-reg-set.h before rtl.h.
5266 * ira.c: Likewise.
5267
5268 2015-06-25 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
5269 Vladimir Makarov <vmakarov@redhat.com>
5270
5271 * ira-color.c (assign_hard_reg): Remove unecessary bitmap check.
5272 Add assert.
5273
5274 2015-06-25 Richard Biener <rguenther@suse.de>
5275
5276 * fold-const.c (fold_binary_loc): Move simplification of
5277 (X <<>> C1) & C2 ...
5278 * match.pd: ... here.
5279
5280 2015-06-25 Eric Botcazou <ebotcazou@adacore.com>
5281
5282 * lto-streamer-out.c (DFS::hash_scc): Fix typos & formatting glitches.
5283
5284 2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
5285
5286 * match.pd: Add patterns for vec_conds between 1 and 0.
5287
5288 2015-06-25 Richard Biener <rguenther@suse.de>
5289
5290 * tree-vect-stmts.c (vectorizable_conversion): Do not set
5291 STMT_VINFO_VEC_STMT for SLP.
5292 (vectorizable_store): Likewise.
5293 (vectorizable_load): Likewise.
5294 (vect_transform_stmt): Catch SLP vectorization clobbering
5295 STMT_VINFO_VEC_STMT.
5296
5297 2015-06-25 Richard Biener <rguenther@suse.de>
5298
5299 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Improve debug
5300 dumping.
5301 (vect_create_mask_and_perm): Do not set STMT_VINFO_VEC_STMT and
5302 cleanup resulting dead code and parameters.
5303 (vect_transform_slp_perm_load): Adjust.
5304
5305 2015-06-25 Nick Clifton <nickc@redhat.com>
5306
5307 * config/bfin/bfin.c (bfin_expand_prologue): Set
5308 current_function_static_stack_size if flag_stack_usage_info is set.
5309 * config/ft32/ft32.c (ft32_expand_prologue): Likewise.
5310 * config/h8300/h8300.c (h8300_expand_prologue): Likewise.
5311 * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
5312 * config/m32c/m32c.c (m32c_emit_prologue): Likewise.
5313
5314 2015-06-25 Tom de Vries <tom@codesourcery.com>
5315
5316 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Don't claim in header
5317 comment that the generated IV is unsigned.
5318
5319 2015-06-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5320
5321 PR target/29693
5322 * config/arm/arm.c (arm_dbx_register_number): Return
5323 DWARF_FRAME_REGISTERS by default.
5324
5325 2015-06-25 Tom de Vries <tom@codesourcery.com>
5326
5327 * dominance.c (calculate_dominance_info): Fix verify_dominators call
5328 argument. Call verify_dominator when reusing dominator info.
5329
5330 2015-06-24 Kaz Kojima <kkojima@gcc.gnu.org>
5331
5332 PR target/66563
5333 * config/sh/sh.md (GOTaddr2picreg): Add a new operand for
5334 an additional element of the unspec vector. Modify indices
5335 of operands.
5336 (builtin_setjmp_receiver): Pass const0_rtx to gen_GOTaddr2picreg.
5337 * config/sh/sh.c (prepare_move_operands): Pass incremented
5338 const_int to gen_GOTaddr2picreg.
5339 (sh_expand_prologue): Pass const0_rtx to gen_GOTaddr2picreg.
5340
5341 2015-06-24 Alan Lawrence <alan.lawrence@arm.com>
5342
5343 * config/aarch64/aarch64.md (<optab><fcvt_target><GPF:mode>2):
5344 Condition on TARGET_FLOAT.
5345
5346 2015-06-24 Alan Lawrence <alan.lawrence@arm.com>
5347
5348 * doc/invoke.texi: Clarify AArch64 feature modifiers (no)fp, (no)simd
5349 and (no)crypto.
5350
5351 2015-06-24 Alan Lawrence <alan.lawrence@arm.com>
5352
5353 * config/aarch64/aarch64-protos.h (aarch64_err_no_fpadvsimd): New.
5354
5355 * config/aarch64/aarch64.md (mov<mode>/GPF, movtf): Use
5356 aarch64_err_no_fpadvsimd.
5357
5358 * config/aarch64/aarch64.c (aarch64_err_no_fpadvsimd): New.
5359 (aarch64_layout_arg, aarch64_init_cumulative_args): Use
5360 aarch64_err_no_fpadvsimd if !TARGET_FLOAT and we need FP regs.
5361 (aarch64_expand_builtin_va_start, aarch64_setup_incoming_varargs):
5362 Turn error into assert, test TARGET_FLOAT.
5363 (aarch64_gimplify_va_arg_expr): Use aarch64_err_no_fpadvsimd, test
5364 TARGET_FLOAT.
5365
5366 2015-06-24 Aldy Hernandez <aldyh@redhat.com>
5367
5368 PR debug/66482
5369 * dwarf2out.c (gen_formal_parameter_die): Remove assert.
5370
5371 2015-06-24 Ilya Enkovich <enkovich.gnu@gmail.com>
5372
5373 * tree-vect-slp.c (vect_build_slp_tree_1): Init vectype.
5374
5375 2015-06-24 Renlin Li <renlin.li@arm.com>
5376
5377 * config/aarch64/aarch64.h(TARGET_CPU_CPP_BUILTINS): Add
5378 __ARM_ALIGN_MAX_PWR, __ARM_ALIGN_MAX_STACK_PWR.
5379
5380 2015-06-24 Richard Biener <rguenther@suse.de>
5381
5382 * genmatch.c (enum tree_code): Add VIEW_CONVERT[012].
5383 (main): Likewise.
5384 (lower_opt_convert): Support lowering of conditional view_convert.
5385 (parser::parse_operation): Likewise.
5386 (parser::parse_for): Likewise.
5387
5388 2015-06-24 Renlin Li <renlin.li@arm.com>
5389
5390 * varasm.c (emit_local): Use unsigned int for align variable.
5391
5392 2015-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5393
5394 PR target/63408
5395 * config/arm/arm.c (vfp3_const_double_for_fract_bits): Disable
5396 for negative numbers.
5397
5398 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5399
5400 PR rtl-optimization/66306
5401 * reload.c (find_reloads): Swap the match_dup info for
5402 commutative operands.
5403
5404 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5405
5406 * config/s390/vx-builtins.md
5407 ("vec_scatter_element<mode>_<non_vec_int>")
5408 ("vec_scatter_element<V_HW_64:mode>_SI"): Replace gf mode
5409 attribute with bhfgq.
5410
5411 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5412
5413 * config/s390/s390-builtins.def: Fix vpopct instruction comments.
5414
5415 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5416
5417 * config/s390/s390-builtin-types.def: Add flag to indicate the
5418 options under which the function type is needed.
5419 * config/s390/s390-builtins.def: Add flag to indicate the options
5420 under which the builtin is enabled.
5421 * config/s390/s390-builtins.h: Add flags parameter to macro
5422 definitions.
5423 (bflags_for_builtin): New function.
5424 (flags_for_builtin): Renamed to ...
5425 (opflags_for_builtin): ... this.
5426 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Rename
5427 flags_for_builtin to bflags_for_builtin and
5428 flags_overloaded_builtin_var to opflags_overloaded_builtin_var.
5429 * config/s390/s390.c: Add initialization of bflags_builtin and
5430 opflags_builtin arrays.
5431 Remove code for flags_builtin.
5432 (s390_init_builtins): Only create builtin function types if one of
5433 their flags is active.
5434 Only create builtins if all of their flags are active.
5435 (s390_expand_builtin): Rename flags_for_builtin to
5436 opflags_for_builtin.
5437
5438 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5439
5440 * config/s390/vecintrin.h: Remove internal builtins.
5441
5442 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5443
5444 * config/s390/s390.c (s390_secondary_reload): Fix check for
5445 GENERAL_REGS register class.
5446
5447 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5448
5449 * config/s390/s390.c (s390_support_vector_misalignment): Call
5450 default implementation for !TARGET_VX.
5451
5452 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5453
5454 * config/s390/s390.c (s390_legitimate_constant_p): Add
5455 TARGET_VX check.
5456
5457 2015-06-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5458
5459 * config/s390/s390.c (s390_vector_abi): New variable definition.
5460 (s390_check_type_for_vector_abi): New function.
5461 (TARGET_ASM_FILE_END): New macro definition.
5462 (s390_asm_file_end): New function.
5463 (s390_function_arg): Call s390_check_type_for_vector_abi.
5464 (s390_gimplify_va_arg): Likewise.
5465 * configure: Regenerate.
5466 * configure.ac: Check for .gnu_attribute Binutils feature.
5467
5468 2015-06-23 Chen Gang <gang.chen.5i5j@gmail.com>
5469
5470 PR target/65803
5471 * config/bfin/bfin.c (hwloop_optimize): Initialize
5472 JUMP_LABEL for newly created jump.
5473
5474 2015-06-23 Tristan Gingold <gingold@adacore.com>
5475
5476 * collect-utils.c (collect_wait): Unlink the response file here
5477 instead of...
5478 (do_wait): ...here.
5479 (utils_cleanup): ...and here.
5480
5481 2015-06-23 Richard Sandiford <richard.sandiford@arm.com>
5482
5483 * df-scan.c: Don't include target-def.h.
5484 * targhooks.c: Likewise.
5485 * config/arm/arm-c.c: Likewise.
5486 * config/i386/i386-c.c: Likewise.
5487 * config/nds32/nds32-cost.c: Likewise.
5488 * config/nds32/nds32-fp-as-gp.c: Likewise.
5489 * config/nds32/nds32-intrinsic.c: Likewise.
5490 * config/nds32/nds32-isr.c: Likewise.
5491 * config/nds32/nds32-md-auxiliary.c: Likewise.
5492 * config/nds32/nds32-memory-manipulation.c: Likewise.
5493 * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
5494 * config/nds32/nds32-predicates.c: Likewise.
5495
5496 2015-06-23 Richard Biener <rguenther@suse.de>
5497
5498 PR tree-optimization/66636
5499 * tree-vect-stmts.c (vectorizable_store): Properly compute the
5500 def type for further defs for strided stores.
5501
5502 2015-06-23 Nathan Sidwell <nathan@codesourcery.com>
5503
5504 * config/nvptx/nvptx.md (sel_true<mode>, sel_false<mode>): New
5505 conditional selects.
5506 (setcc_int<mode>, setcc_float<mode>): Reformat.
5507
5508 2015-06-23 Marek Polacek <polacek@redhat.com>
5509
5510 * match.pd ((x + y) - (x | y) -> x & y,
5511 (x + y) - (x & y) -> x | y): New patterns.
5512
5513 2015-06-23 Ludovic Courtès <ludo@gnu.org>
5514
5515 PR 65711
5516 * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Move
5517 '-dynamic-linker' within %{!shared: ...}.
5518
5519 2015-06-23 Uros Bizjak <ubizjak@gmail.com>
5520
5521 PR target/66560
5522 * config/i386/predicates.md (addsub_vm_operator): New predicate.
5523 (addsub_vs_operator): Ditto.
5524 (addsub_vs_parallel): Ditto.
5525 * config/i386/sse.md (ssedoublemode): Add V4SF and V2DF modes.
5526 (avx_addsubv4df3, avx_addsubv8sf3, sse3_addsubv2df3, sse3_addsubv4sf3):
5527 Put minus RTX before plus and adjust vec_merge selector.
5528 (*avx_addsubv4df3_1, *avx_addsubv4df3_1s, *sse3_addsubv2df3_1)
5529 (*sse_addsubv2df3_1s, *avx_addsubv8sf3_1, *avx_addsubv8sf3_1s)
5530 (*sse3_addsubv4sf3_1, *sse_addsubv4sf3_1s): Remove insn patterns.
5531 (addsub vec_merge splitters): New combiner splitters.
5532 (addsub vec_select/vec_concat splitters): Ditto.
5533
5534 2015-06-23 Bin Cheng <bin.cheng@arm.com>
5535
5536 PR tree-optimization/66449
5537 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Use
5538 POINTER_PLUS_EXPR for pointers.
5539
5540 2015-06-23 Alan Modra <amodra@gmail.com>
5541
5542 * rtlanal.c (commutative_operand_precedence): Correct comments.
5543 * simplify-rtx.c (simplify_plus_minus_op_data_cmp): Delete forward
5544 declaration. Return an int. Distinguish REG,REG return from
5545 others.
5546 (struct simplify_plus_minus_op_data): Make local to function.
5547 (simplify_plus_minus): Don't set canonicalized if merely sorting
5548 registers. Avoid packing ops if nothing changes. White space fixes.
5549
5550 2015-06-22 Pierre-Marie de Rodat <derodat@adacore.com>
5551
5552 * gcc.c (default_compilers): Pass "-o %g.s" to cc1 for headers even if
5553 -fdump-ada-spec is passed but not if -fsyntax-only is.
5554
5555 2015-06-22 Vladimir Makarov <vmakarov@redhat.com>
5556
5557 PR bootstrap/63740
5558 * lra-lives.c (process_bb_lives): Check insn copying the same
5559 reload pseudo and don't create a copy for it.
5560
5561 2015-06-22 Tom de Vries <tom@codesourcery.com>
5562
5563 * tree-parloops.c (transform_to_exit_first_loop_alt): Add update_stmt
5564 for cond_stmt.
5565
5566 2015-06-22 Tom de Vries <tom@codesourcery.com>
5567
5568 * builtins.def (DEF_GOMP_BUILTIN): Test
5569 'flag_tree_parallelize_loops > 1' instead of
5570 'flag_tree_parallelize_loops'. Test flag_cilkplus.
5571
5572 2015-06-22 Tom de Vries <tom@codesourcery.com>
5573
5574 * dominance.c (calculate_dominance_info): Verify dominators if
5575 early-out.
5576
5577 2015-06-22 Marek Polacek <polacek@redhat.com>
5578
5579 * match.pd ((x ^ y) ^ (x | y) -> x & y,
5580 (x & y) + (x ^ y) -> x | y, (x & y) | (x ^ y) -> x | y,
5581 (x & y) ^ (x ^ y) -> x | y, (x & y) + (x | y) -> x + y,
5582 (x | y) - (x ^ y) -> x & y, (x | y) - (x & y) -> x ^ y): New patterns.
5583
5584 2015-06-22 Uros Bizjak <ubizjak@gmail.com>
5585
5586 PR target/65871
5587 * config/i386/i386.c (ix86_rtx_costs) <case COMPARE>: Ignore the
5588 cost of embedded comparison.
5589
5590 2015-06-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5591
5592 PR target/65914
5593 * config/rs6000/predicates.md (altivec_register_operand): Permit
5594 virtual stack registers.
5595 (vsx_register_operand): Likewise.
5596 (vfloat_operand): Likewise.
5597 (vint_operand): Likewise.
5598 (vlogical_operand): Likewise.
5599
5600 2015-06-22 Richard Biener <rguenther@suse.de>
5601
5602 * tree-vectorizer.h (_loop_vec_info): Add scalar_cost_vec
5603 and single_scalar_iteration_cost members.
5604 (LOOP_VINFO_SCALAR_ITERATION_COST): New.
5605 (LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST): Likewise.
5606 (vect_get_single_scalar_iteration_cost): Remove.
5607 * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
5608 Use LOOP_VINFO_SCALAR_ITERATION_COST.
5609 * tree-vect-loop.c (destroy_loop_vec_info): Free
5610 scalar_cost_vec.
5611 (vect_get_single_scalar_iteration_cost): Compute result into
5612 LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST and
5613 LOOP_VINFO_SCALAR_ITERATION_COST. Make static.
5614 (vect_analyze_loop_2): Call vect_get_single_scalar_iteration_cost.
5615 (vect_estimate_min_profitable_iters): Use them.
5616
5617 2015-06-22 Christian Bruel <christian.bruel@st.com>
5618
5619 PR target/52144
5620 * config/arm/arm.c (add_attribute, arm_insert_attributes): New functions
5621 (TARGET_INSERT_ATTRIBUTES): Define.
5622 (thumb_flipper): New var.
5623 * config/arm/arm.opt (-mflip-thumb): New switch.
5624
5625 2015-06-22 Jan Hubicka <hubicka@ucw.cz>
5626 Martin Liska <mliska@suse.cz>
5627
5628 PR ipa/65908
5629 * ipa-icf.c (sem_item::target_supports_symbol_aliases): Remove
5630 construction of arg_types.
5631 (sem_function::sem_function): Likewise.
5632 (sem_function::~sem_function): Remove destruction of arg_types.
5633 (sem_function::compatible_parm_types_p): New function.
5634 (sem_function::equals_wpa): Reorg matching of return values
5635 and parameter types.
5636 (sem_function::equals_private): Reorg mathcing of argument types.
5637 (sem_function::parse_tree_args): Remove.
5638 * ipa-icf.h (init_wpa): Do not call it.
5639 (parse_tree_args): Remove.
5640 (compatible_parm_types_p): Declare.
5641 (result_type): Remove.
5642 (arg_types): Remove.
5643
5644 2015-06-22 Jan Hubicka <hubicka@ucw.cz>
5645
5646 PR ipa/66351
5647 * ipa-polymorphic-call.c
5648 (ipa_polymorphic_call_context::get_dynamic_type): Fix thinko when
5649 initializing alias oracle; fix formating; set base_alias_set if it
5650 is known.
5651
5652 2015-06-22 Mikhail Maltsev <maltsevm@gmail.com>
5653
5654 * auto-inc-dec.c (reverse_mem, reverse_inc): Remove.
5655 (parse_add_or_inc): Use std::swap instead of reverse_{mem,inc}.
5656 (find_inc): Likewise.
5657 * combine.c (combine_simplify_rtx): Use std::swap instead of manually
5658 swapping.
5659 * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
5660 * df-scan.c (df_swap_refs): Remove.
5661 (df_sort_and_compress_refs): Use std::swap instead of df_swap_refs.
5662 * dominance.c (link_roots): Use std::swap instead of manually swapping.
5663 * expr.c (expand_expr_real_2, do_store_flag): Likewise.
5664 * fold-const.c (fold_relational_const): Likewise.
5665 * genattrtab.c (simplify_test_exp): Likewise.
5666 * gimple-match-head.c (gimple_resimplify2, gimple_resimplify3,
5667 gimple_simplify): Likewise.
5668 * ifcvt.c (noce_try_abs, find_if_header): Likewise.
5669 * internal-fn.c (expand_addsub_overflow, expand_mul_overflow): Likewise.
5670 * ipa-devirt.c (add_type_duplicate): Likewise.
5671 * loop-iv.c (get_biv_step_1, iv_number_of_iterations): Likewise.
5672 * lra-lives.c (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
5673 * lra.c (lra_create_copy): Likewise.
5674 * lto-streamer-out.c (DFS::DFS): Likewise.
5675 * modulo-sched.c (get_sched_window): Likewise.
5676 * omega.c (omega_pretty_print_problem): Likewise.
5677 * optabs.c (prepare_float_lib_cmp, expand_mult_highpart): Likewise.
5678 * reload1.c (reloads_unique_chain_p): Likewise.
5679 * sel-sched-ir.c (exchange_lv_sets, exchange_av_sets): Remove.
5680 (exchange_data_sets): Move logic from exchange_{av,lv}_sets here and
5681 use std::swap.
5682 * simplify-rtx.c (simplify_unary_operation_1): Use std::swap instead of
5683 manually swapping.
5684 * tree-if-conv.c (is_cond_scalar_reduction, predicate_scalar_phi,
5685 predicate_mem_writes): Likewise.
5686 * tree-loop-distribution.c (pg_add_dependence_edges): Likewise.
5687 * tree-predcom.c (combine_chains): Likewise.
5688 * tree-ssa-alias.c (nonoverlapping_component_refs_p,
5689 refs_may_alias_p_1): Likewise.
5690 * tree-ssa-ifcombine.c (recognize_if_then_else): Likewise.
5691 * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
5692 * tree-ssa-loop-niter.c (refine_bounds_using_guard,
5693 number_of_iterations_cond): Likewise.
5694 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
5695 * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise.
5696 * tree-vect-slp.c (vect_build_slp_tree): Likewise.
5697 * tree-vect-stmts.c (supportable_widening_operation): Likewise.
5698 * tree-vrp.c (extract_range_from_binary_expr_1,
5699 extract_range_from_unary_expr_1): Likewise.
5700
5701 2015-06-20 Marek Polacek <polacek@redhat.com>
5702
5703 * common.opt (fsanitize-undefined-trap-on-error): Add Driver.
5704
5705 2015-06-19 Kaz Kojima <kkojima@gcc.gnu.org>
5706
5707 PR target/66591
5708 * config/sh/sh.c (prepare_move_operands): Replace subreg
5709 index term with R0 for base and index addressing.
5710
5711 2015-06-19 Jim Wilson <jim.wilson@linaro.org>
5712
5713 * config/aarch64/aarch64.md (mov<mode>:GPF): Don't call force_reg if
5714 op1 is an fp zero.
5715 (movsf_aarch64): Change condition from register_operand to
5716 aarch64_reg_or_fp_zero for op1. Change type for alternative 6 to
5717 load1. Change type for alternative 7 to store1.
5718 (movdf_aarch64): Likewise.
5719
5720 2015-06-19 James Greenhalgh <james.greenhalgh@arm.com>
5721
5722 * config/vax/vax.md: Adjust sign/zero extend patterns to
5723 handle SUBREGs in operands[1].
5724
5725 2015-06-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5726
5727 * config/i386/i386.c (ix86_function_versions): Use std::swap instead
5728 of manually swapping.
5729 (expand_vec_perm_interleave2): Likewise.
5730
5731 2015-06-19 Ilya Enkovich <enkovich.gnu@gmail.com>
5732
5733 * tree-chkp.c (chkp_compute_bounds_for_assignment): Don't
5734 reuse bounds created for abnormal ssa names.
5735
5736 2015-06-19 Jakub Jelinek <jakub@redhat.com>
5737
5738 * config/nvptx/nvptx.md (allocate_stack): Rename to...
5739 (allocate_stack_<mode>): ... this, and add :P on both
5740 match_operand and unspec.
5741 (allocate_stack): New expander.
5742
5743 2015-06-19 Christian Bruel <christian.bruel@st.com>
5744
5745 PR target/66541
5746 PR target/52144
5747 * config/arm/arm.c (arm_set_current_function): Handle
5748 explicit default options.
5749
5750 2015-06-18 Uros Bizjak <ubizjak@gmail.com>
5751
5752 * config/i386/i386.md (*movsicc_noc_zext): New insn.
5753 (zero-extended cmove with mem peephole2): New pattern.
5754 (cmove with mem peephole2): Merge patterns.
5755
5756 2015-06-18 Segher Boessenkool <segher@kernel.crashing.org>
5757
5758 * config/rs6000/rs6000.h (WORD_REGISTER_OPERATIONS): Delete.
5759
5760 2015-06-18 Steve Ellcey <sellcey@imgtec.com>
5761
5762 * config/mips/mips.c (mips_rtx_costs): Remove HONOR_NAN check.
5763 * config/mips/mips.md (*madd4<mode>): Ditto.
5764 (*nmadd3<mode>) Ditto.
5765 (*nmadd4<mode>_fastmath): Ditto.
5766 (*nmadd3<mode>_fastmath): Ditto.
5767 (*nmsub4<mode>): Ditto.
5768 (*nmsub3<mode>): Ditto.
5769 (*nmsub4<mode>_fastmath): Ditto.
5770 (*nmsub3<mode>_fastmath): Ditto.
5771
5772 2015-06-18 Michael Matz <matz@suse.de>
5773
5774 PR middle-end/66253
5775 * tree-vect-stmts.c (vectorizable_store): Implement non-SLP
5776 grouped strided stores.
5777 (vectorizable_load): Don't use the DR from first_stmt in
5778 the non-SLP grouped strided case.
5779
5780 2015-06-18 Ilya Enkovich <enkovich.gnu@gmail.com>
5781
5782 PR target/66569
5783 * function.c (assign_bounds): Add arguments assign_regs,
5784 assign_special, assign_bt.
5785 (assign_parms): For vararg functions handle bounds in BT
5786 and special slots after incoming vararg bounds.
5787
5788 2015-06-18 Ilya Enkovich <enkovich.gnu@gmail.com>
5789
5790 PR middle-end/66568
5791 * cfgexpand.c (expand_return): Handle missing bounds.
5792 (expand_gimple_stmt_1): Likewise.
5793 * tree-chkp.c (chkp_expand_zero_bounds): New.
5794 * tree-chkp.h (chkp_expand_zero_bounds): New.
5795
5796 2015-06-18 Ilya Enkovich <enkovich.gnu@gmail.com>
5797
5798 PR middle-end/66567
5799 * ipa-chkp.c (chkp_maybe_create_clone): Require
5800 functions to be instrumentable.
5801 * tree-chkp.c (chkp_replace_function_pointer): Use
5802 chkp_instrumentable_p instead of attribute check.
5803
5804 2015-06-18 Richard Biener <rguenther@suse.de>
5805
5806 PR tree-optimization/66510
5807 * tree-vect-stmts.c (vectorizable_load): Properly compute the
5808 number of vector loads for SLP permuted loads.
5809 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Also
5810 check the stride for loop vectorization.
5811 (vect_enhance_data_refs_alignment): Deal with SLP adjusted
5812 vectorization factor.
5813 (vect_analyze_group_access): If the group size is not a power
5814 of two require a epilogue loop.
5815 * tree-vect-loop.c (vect_analyze_loop_2): Move alignment
5816 compute and optimizing and alias test pruning after final
5817 vectorization factor computation.
5818 * tree-vect-slp.c (vect_build_slp_tree_1): Remove check on
5819 vector alignment.
5820 (vect_transform_slp_perm_load): Properly compute the original
5821 number of vector load stmts.
5822
5823 2015-06-18 Uros Bizjak <ubizjak@gmail.com>
5824
5825 * doc/invoke.texi (-fsanitize-sections): Split @var to avoid
5826 "unlikely character , in @var" warning.
5827
5828 2015-06-17 Uros Bizjak <ubizjak@gmail.com>
5829
5830 * config/i386/i386.c (ix86_function_arg): Nest TARGET_64BIT code.
5831 (ix86_function_arg_advance): Ditto.
5832 (ix86_pass_by_reference): Ditto. Rewrite MS_ABI part.
5833
5834 2015-06-17 Andrew MacLeod <amacleod@redhat.com>
5835
5836 * function.h (struct rtl_data): Remove struct and accessor macros.
5837 * emit-rtl.h (struct rtl_data): Relocate to here.
5838 * Makefile.in (GTFILES): Add emit-rtl.h.
5839 * df-core.c: Include emit-rtl.h.
5840 * genattrtab.c: Likewise.
5841 * genconditions.c: Likewise.
5842 * genpreds.c: Likewise.
5843 * genrecog.c: Likewise.
5844 * regcprop.c: Likewise.
5845 * resource.c: Likewise.
5846 * sched-rgn.c: Likewise.
5847 * config/aarch64/cortex-a57-fma-steering.c: Likewise.
5848 * config/i386/winnt.c: Likewise.
5849
5850 2015-06-17 Jakub Jelinek <jakub@redhat.com>
5851
5852 PR middle-end/66429
5853 * omp-low.c (expand_omp_taskreg, expand_omp_target): Use child_cfun
5854 instead of DECL_STRUCT_FUNCTION (child_fn). Or in has_simduid_loops
5855 and has_force_vectorize_loops flags from cfun into
5856 child_cfun.
5857 (expand_omp_simd): For broken loop, set cfun->has_simduid_loops
5858 if simduid is non-NULL.
5859 * tree-pass.h (make_pass_simduid_cleanup): New prototype.
5860 * passes.def (pass_simduid_cleanup): Add new pass after loop
5861 passes.
5862 * tree-vectorizer.c (adjust_simduid_builtins): Remove one unnecessary
5863 indirection from htab argument's type.
5864 (shrink_simd_arrays): New function.
5865 (vectorize_loops): Use it. Adjust adjust_simduid_builtins caller.
5866 Don't call adjust_simduid_builtins if there are no loops.
5867 (pass_data_simduid_cleanup, pass_simduid_cleanup): New variables.
5868 (pass_simduid_cleanup::execute): New method.
5869 (make_pass_simduid_cleanup): New function.
5870
5871 2017-06-17 Andrew MacLeod <amacleod@redhat.com>
5872
5873 * tree-core.h (tree_target_option): Make opts field a pointer to a
5874 cl_target_option instead of an instance of the struct.
5875 * tree.h (TREE_TARGET_OPTION): Return the pointer, not an address of
5876 the structure.
5877 * tree.c (make_node_stat ): Allocate a cl_target_option struct for
5878 TARGET_OPTION_NODE.
5879 (copy_node_stat): Allocate and copy struct cl_target_option.
5880
5881 2015-06-17 Andrew MacLeod <amacleod@redhat.com>
5882
5883 * tree.h (merge_dllimport_decl_attributes, handle_dll_attribute):
5884 Remove conditional exposure of prototypes.
5885 (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Delete.
5886 * tree.c (anon_aggrname_format, anon_aggrname_p): New. Replace macro
5887 definitions in tree.h with functions.
5888 * lto-streamer-out.c (DFS_write_tree_body, hash_tree): Use
5889 anon_aggrname_p.
5890 * tree-streamer-out.c (write_ts_decl_minimal_tree_pointers): Likewise.
5891
5892 2015-06-17 Segher Boessenkool <segher@kernel.crashing.org>
5893
5894 * config/rs6000/rs6000.md (*cmp<mode>_internal1): Rename to...
5895 (*cmp<mode>_signed): ... this.
5896 (*cmpsi_internal2, *cmpdi_internal2): Merge, rename to...
5897 (*cmp<mode>_unsigned): ... this. Remove %b.
5898
5899 2015-06-17 Andrew MacLeod <amacleod@redhat.com>
5900
5901 * coretypes.h: Include input.h and as-a.h.
5902 * rtl.h: Include input.h and as-a.h for generator files.
5903 * hwint.c: Include coretypes.h, don't include diagnostic-core.h.
5904 * vec.c: Don't include diagnostic-core.h.
5905 * alias.c: Do not include input.h, line-map.h or is-a.h.
5906 * asan.c: Likewise.
5907 * attribs.c: Likewise.
5908 * auto-inc-dec.c: Likewise.
5909 * auto-profile.c: Likewise.
5910 * bb-reorder.c: Likewise.
5911 * bt-load.c: Likewise.
5912 * builtins.c: Likewise.
5913 * caller-save.c: Likewise.
5914 * calls.c: Likewise.
5915 * ccmp.c: Likewise.
5916 * cfg.c: Likewise.
5917 * cfganal.c: Likewise.
5918 * cfgbuild.c: Likewise.
5919 * cfgcleanup.c: Likewise.
5920 * cfgexpand.c: Likewise.
5921 * cfghooks.c: Likewise.
5922 * cfgloop.c: Likewise.
5923 * cfgloop.h: Likewise.
5924 * cfgloopanal.c: Likewise.
5925 * cfgloopmanip.c: Likewise.
5926 * cfgrtl.c: Likewise.
5927 * cgraph.c: Likewise.
5928 * cgraphbuild.c: Likewise.
5929 * cgraphclones.c: Likewise.
5930 * cgraphunit.c: Likewise.
5931 * cilk-common.c: Likewise.
5932 * combine-stack-adj.c: Likewise.
5933 * combine.c: Likewise.
5934 * compare-elim.c: Likewise.
5935 * convert.c: Likewise.
5936 * coverage.c: Likewise.
5937 * cppbuiltin.c: Likewise.
5938 * cprop.c: Likewise.
5939 * cse.c: Likewise.
5940 * cselib.c: Likewise.
5941 * data-streamer-in.c: Likewise.
5942 * data-streamer-out.c: Likewise.
5943 * data-streamer.c: Likewise.
5944 * dbxout.c: Likewise.
5945 * dce.c: Likewise.
5946 * ddg.c: Likewise.
5947 * debug.c: Likewise.
5948 * df-core.c: Likewise.
5949 * df-problems.c: Likewise.
5950 * df-scan.c: Likewise.
5951 * df.h: Likewise.
5952 * dfp.c: Likewise.
5953 * diagnostic-core.h: Likewise.
5954 * diagnostic.c: Likewise.
5955 * dojump.c: Likewise.
5956 * dominance.c: Likewise.
5957 * domwalk.c: Likewise.
5958 * double-int.c: Likewise.
5959 * dse.c: Likewise.
5960 * dumpfile.c: Likewise.
5961 * dumpfile.h: Likewise.
5962 * dwarf2asm.c: Likewise.
5963 * dwarf2cfi.c: Likewise.
5964 * dwarf2out.c: Likewise.
5965 * emit-rtl.c: Likewise.
5966 * et-forest.c: Likewise.
5967 * except.c: Likewise.
5968 * explow.c: Likewise.
5969 * expmed.c: Likewise.
5970 * expr.c: Likewise.
5971 * final.c: Likewise.
5972 * fixed-value.c: Likewise.
5973 * fold-const.c: Likewise.
5974 * function.c: Likewise.
5975 * fwprop.c: Likewise.
5976 * gcc-plugin.h: Likewise.
5977 * gcse.c: Likewise.
5978 * generic-match-head.c: Likewise.
5979 * ggc-page.c: Likewise.
5980 * gimple-builder.c: Likewise.
5981 * gimple-expr.c: Likewise.
5982 * gimple-fold.c: Likewise.
5983 * gimple-iterator.c: Likewise.
5984 * gimple-low.c: Likewise.
5985 * gimple-match-head.c: Likewise.
5986 * gimple-pretty-print.c: Likewise.
5987 * gimple-ssa-isolate-paths.c: Likewise.
5988 * gimple-ssa-strength-reduction.c: Likewise.
5989 * gimple-streamer-in.c: Likewise.
5990 * gimple-streamer-out.c: Likewise.
5991 * gimple-streamer.h: Likewise.
5992 * gimple-walk.c: Likewise.
5993 * gimple.c: Likewise.
5994 * gimplify-me.c: Likewise.
5995 * gimplify.c: Likewise.
5996 * godump.c: Likewise.
5997 * graph.c: Likewise.
5998 * graphite-blocking.c: Likewise.
5999 * graphite-dependences.c: Likewise.
6000 * graphite-interchange.c: Likewise.
6001 * graphite-isl-ast-to-gimple.c: Likewise.
6002 * graphite-optimize-isl.c: Likewise.
6003 * graphite-poly.c: Likewise.
6004 * graphite-scop-detection.c: Likewise.
6005 * graphite-sese-to-poly.c: Likewise.
6006 * graphite.c: Likewise.
6007 * haifa-sched.c: Likewise.
6008 * hw-doloop.c: Likewise.
6009 * ifcvt.c: Likewise.
6010 * init-regs.c: Likewise.
6011 * input.c: Likewise.
6012 * internal-fn.c: Likewise.
6013 * ipa-chkp.c: Likewise.
6014 * ipa-comdats.c: Likewise.
6015 * ipa-cp.c: Likewise.
6016 * ipa-devirt.c: Likewise.
6017 * ipa-icf-gimple.c: Likewise.
6018 * ipa-icf.c: Likewise.
6019 * ipa-inline-analysis.c: Likewise.
6020 * ipa-inline-transform.c: Likewise.
6021 * ipa-inline.c: Likewise.
6022 * ipa-polymorphic-call.c: Likewise.
6023 * ipa-profile.c: Likewise.
6024 * ipa-prop.c: Likewise.
6025 * ipa-pure-const.c: Likewise.
6026 * ipa-ref.c: Likewise.
6027 * ipa-reference.c: Likewise.
6028 * ipa-split.c: Likewise.
6029 * ipa-utils.c: Likewise.
6030 * ipa-visibility.c: Likewise.
6031 * ipa.c: Likewise.
6032 * ira-build.c: Likewise.
6033 * ira-color.c: Likewise.
6034 * ira-conflicts.c: Likewise.
6035 * ira-costs.c: Likewise.
6036 * ira-emit.c: Likewise.
6037 * ira-lives.c: Likewise.
6038 * ira.c: Likewise.
6039 * jump.c: Likewise.
6040 * langhooks.c: Likewise.
6041 * lcm.c: Likewise.
6042 * loop-doloop.c: Likewise.
6043 * loop-init.c: Likewise.
6044 * loop-invariant.c: Likewise.
6045 * loop-iv.c: Likewise.
6046 * loop-unroll.c: Likewise.
6047 * lower-subreg.c: Likewise.
6048 * lra-assigns.c: Likewise.
6049 * lra-coalesce.c: Likewise.
6050 * lra-constraints.c: Likewise.
6051 * lra-eliminations.c: Likewise.
6052 * lra-lives.c: Likewise.
6053 * lra-remat.c: Likewise.
6054 * lra-spills.c: Likewise.
6055 * lra.c: Likewise.
6056 * lto-cgraph.c: Likewise.
6057 * lto-compress.c: Likewise.
6058 * lto-opts.c: Likewise.
6059 * lto-section-in.c: Likewise.
6060 * lto-section-out.c: Likewise.
6061 * lto-streamer-in.c: Likewise.
6062 * lto-streamer-out.c: Likewise.
6063 * lto-streamer.c: Likewise.
6064 * mcf.c: Likewise.
6065 * mode-switching.c: Likewise.
6066 * modulo-sched.c: Likewise.
6067 * omega.c: Likewise.
6068 * omp-low.c: Likewise.
6069 * optabs.c: Likewise.
6070 * opts-global.c: Likewise.
6071 * opts.h: Likewise.
6072 * passes.c: Likewise.
6073 * plugin.c: Likewise.
6074 * postreload-gcse.c: Likewise.
6075 * postreload.c: Likewise.
6076 * predict.c: Likewise.
6077 * pretty-print.h: Likewise.
6078 * print-rtl.c: Likewise.
6079 * print-tree.c: Likewise.
6080 * profile.c: Likewise.
6081 * real.c: Likewise.
6082 * realmpfr.c: Likewise.
6083 * recog.c: Likewise.
6084 * ree.c: Likewise.
6085 * reg-stack.c: Likewise.
6086 * regcprop.c: Likewise.
6087 * reginfo.c: Likewise.
6088 * regrename.c: Likewise.
6089 * regstat.c: Likewise.
6090 * reload.c: Likewise.
6091 * reload1.c: Likewise.
6092 * reorg.c: Likewise.
6093 * resource.c: Likewise.
6094 * rtl-chkp.c: Likewise.
6095 * rtl-error.c: Likewise.
6096 * rtlanal.c: Likewise.
6097 * rtlhooks.c: Likewise.
6098 * sanopt.c: Likewise.
6099 * sched-deps.c: Likewise.
6100 * sched-ebb.c: Likewise.
6101 * sched-rgn.c: Likewise.
6102 * sched-vis.c: Likewise.
6103 * sdbout.c: Likewise.
6104 * sel-sched-dump.c: Likewise.
6105 * sel-sched-ir.c: Likewise.
6106 * sel-sched.c: Likewise.
6107 * sese.c: Likewise.
6108 * shrink-wrap.c: Likewise.
6109 * simplify-rtx.c: Likewise.
6110 * stack-ptr-mod.c: Likewise.
6111 * statistics.c: Likewise.
6112 * stmt.c: Likewise.
6113 * stor-layout.c: Likewise.
6114 * store-motion.c: Likewise.
6115 * streamer-hooks.c: Likewise.
6116 * stringpool.c: Likewise.
6117 * symtab.c: Likewise.
6118 * target-globals.c: Likewise.
6119 * targhooks.c: Likewise.
6120 * toplev.c: Likewise.
6121 * tracer.c: Likewise.
6122 * trans-mem.c: Likewise.
6123 * tree-affine.c: Likewise.
6124 * tree-browser.c: Likewise.
6125 * tree-call-cdce.c: Likewise.
6126 * tree-cfg.c: Likewise.
6127 * tree-cfgcleanup.c: Likewise.
6128 * tree-chkp-opt.c: Likewise.
6129 * tree-chkp.c: Likewise.
6130 * tree-chrec.c: Likewise.
6131 * tree-complex.c: Likewise.
6132 * tree-data-ref.c: Likewise.
6133 * tree-dfa.c: Likewise.
6134 * tree-diagnostic.c: Likewise.
6135 * tree-dump.c: Likewise.
6136 * tree-eh.c: Likewise.
6137 * tree-emutls.c: Likewise.
6138 * tree-if-conv.c: Likewise.
6139 * tree-inline.c: Likewise.
6140 * tree-into-ssa.c: Likewise.
6141 * tree-iterator.c: Likewise.
6142 * tree-loop-distribution.c: Likewise.
6143 * tree-nested.c: Likewise.
6144 * tree-nrv.c: Likewise.
6145 * tree-object-size.c: Likewise.
6146 * tree-outof-ssa.c: Likewise.
6147 * tree-parloops.c: Likewise.
6148 * tree-phinodes.c: Likewise.
6149 * tree-predcom.c: Likewise.
6150 * tree-pretty-print.c: Likewise.
6151 * tree-profile.c: Likewise.
6152 * tree-scalar-evolution.c: Likewise.
6153 * tree-sra.c: Likewise.
6154 * tree-ssa-address.c: Likewise.
6155 * tree-ssa-alias.c: Likewise.
6156 * tree-ssa-ccp.c: Likewise.
6157 * tree-ssa-coalesce.c: Likewise.
6158 * tree-ssa-copy.c: Likewise.
6159 * tree-ssa-copyrename.c: Likewise.
6160 * tree-ssa-dce.c: Likewise.
6161 * tree-ssa-dom.c: Likewise.
6162 * tree-ssa-dse.c: Likewise.
6163 * tree-ssa-forwprop.c: Likewise.
6164 * tree-ssa-ifcombine.c: Likewise.
6165 * tree-ssa-live.c: Likewise.
6166 * tree-ssa-loop-ch.c: Likewise.
6167 * tree-ssa-loop-im.c: Likewise.
6168 * tree-ssa-loop-ivcanon.c: Likewise.
6169 * tree-ssa-loop-ivopts.c: Likewise.
6170 * tree-ssa-loop-manip.c: Likewise.
6171 * tree-ssa-loop-niter.c: Likewise.
6172 * tree-ssa-loop-prefetch.c: Likewise.
6173 * tree-ssa-loop-unswitch.c: Likewise.
6174 * tree-ssa-loop.c: Likewise.
6175 * tree-ssa-math-opts.c: Likewise.
6176 * tree-ssa-operands.c: Likewise.
6177 * tree-ssa-phiopt.c: Likewise.
6178 * tree-ssa-phiprop.c: Likewise.
6179 * tree-ssa-pre.c: Likewise.
6180 * tree-ssa-propagate.c: Likewise.
6181 * tree-ssa-reassoc.c: Likewise.
6182 * tree-ssa-sccvn.c: Likewise.
6183 * tree-ssa-scopedtables.c: Likewise.
6184 * tree-ssa-sink.c: Likewise.
6185 * tree-ssa-strlen.c: Likewise.
6186 * tree-ssa-structalias.c: Likewise.
6187 * tree-ssa-tail-merge.c: Likewise.
6188 * tree-ssa-ter.c: Likewise.
6189 * tree-ssa-threadedge.c: Likewise.
6190 * tree-ssa-threadupdate.c: Likewise.
6191 * tree-ssa-uncprop.c: Likewise.
6192 * tree-ssa-uninit.c: Likewise.
6193 * tree-ssa.c: Likewise.
6194 * tree-ssanames.c: Likewise.
6195 * tree-stdarg.c: Likewise.
6196 * tree-streamer-in.c: Likewise.
6197 * tree-streamer-out.c: Likewise.
6198 * tree-streamer.c: Likewise.
6199 * tree-switch-conversion.c: Likewise.
6200 * tree-tailcall.c: Likewise.
6201 * tree-vect-data-refs.c: Likewise.
6202 * tree-vect-generic.c: Likewise.
6203 * tree-vect-loop-manip.c: Likewise.
6204 * tree-vect-loop.c: Likewise.
6205 * tree-vect-patterns.c: Likewise.
6206 * tree-vect-slp.c: Likewise.
6207 * tree-vect-stmts.c: Likewise.
6208 * tree-vectorizer.c: Likewise.
6209 * tree-vrp.c: Likewise.
6210 * tree.c: Likewise.
6211 * tsan.c: Likewise.
6212 * ubsan.c: Likewise.
6213 * valtrack.c: Likewise.
6214 * value-prof.c: Likewise.
6215 * var-tracking.c: Likewise.
6216 * varasm.c: Likewise.
6217 * varpool.c: Likewise.
6218 * vmsdbgout.c: Likewise.
6219 * vtable-verify.c: Likewise.
6220 * web.c: Likewise.
6221 * wide-int.cc: Likewise.
6222 * xcoffout.c: Likewise.
6223 * common/common-target.h: Do not include input.h, line-map.h or is-a.h.
6224 * common/common-targhooks.c: Likewise.
6225 * config/aarch64/aarch64-builtins.c: Likewise.
6226 * config/aarch64/aarch64.c: Likewise.
6227 * config/alpha/alpha.c: Likewise.
6228 * config/arc/arc.c: Likewise.
6229 * config/arm/aarch-common.c: Likewise.
6230 * config/arm/arm-builtins.c: Likewise.
6231 * config/arm/arm-c.c: Likewise.
6232 * config/arm/arm.c: Likewise.
6233 * config/avr/avr-c.c: Likewise.
6234 * config/avr/avr-log.c: Likewise.
6235 * config/avr/avr.c: Likewise.
6236 * config/bfin/bfin.c: Likewise.
6237 * config/c6x/c6x.c: Likewise.
6238 * config/cr16/cr16.c: Likewise.
6239 * config/cris/cris.c: Likewise.
6240 * config/darwin-c.c: Likewise.
6241 * config/darwin.c: Likewise.
6242 * config/default-c.c: Likewise.
6243 * config/epiphany/epiphany.c: Likewise.
6244 * config/epiphany/mode-switch-use.c: Likewise.
6245 * config/epiphany/resolve-sw-modes.c: Likewise.
6246 * config/fr30/fr30.c: Likewise.
6247 * config/frv/frv.c: Likewise.
6248 * config/ft32/ft32.c: Likewise.
6249 * config/glibc-c.c: Likewise.
6250 * config/h8300/h8300.c: Likewise.
6251 * config/i386/i386-c.c: Likewise.
6252 * config/i386/i386.c: Likewise.
6253 * config/i386/msformat-c.c: Likewise.
6254 * config/i386/winnt-cxx.c: Likewise.
6255 * config/i386/winnt-stubs.c: Likewise.
6256 * config/i386/winnt.c: Likewise.
6257 * config/ia64/ia64-c.c: Likewise.
6258 * config/ia64/ia64.c: Likewise.
6259 * config/iq2000/iq2000.c: Likewise.
6260 * config/lm32/lm32.c: Likewise.
6261 * config/m32c/m32c-pragma.c: Likewise.
6262 * config/m32c/m32c.c: Likewise.
6263 * config/m32r/m32r.c: Likewise.
6264 * config/m68k/m68k.c: Likewise.
6265 * config/mcore/mcore.c: Likewise.
6266 * config/mep/mep-pragma.c: Likewise.
6267 * config/mep/mep.c: Likewise.
6268 * config/microblaze/microblaze-c.c: Likewise.
6269 * config/microblaze/microblaze.c: Likewise.
6270 * config/mips/mips.c: Likewise.
6271 * config/mmix/mmix.c: Likewise.
6272 * config/mn10300/mn10300.c: Likewise.
6273 * config/moxie/moxie.c: Likewise.
6274 * config/msp430/msp430-c.c: Likewise.
6275 * config/msp430/msp430.c: Likewise.
6276 * config/nds32/nds32-cost.c: Likewise.
6277 * config/nds32/nds32-fp-as-gp.c: Likewise.
6278 * config/nds32/nds32-intrinsic.c: Likewise.
6279 * config/nds32/nds32-isr.c: Likewise.
6280 * config/nds32/nds32-md-auxiliary.c: Likewise.
6281 * config/nds32/nds32-memory-manipulation.c: Likewise.
6282 * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
6283 * config/nds32/nds32-predicates.c: Likewise.
6284 * config/nds32/nds32.c: Likewise.
6285 * config/nios2/nios2.c: Likewise.
6286 * config/nvptx/nvptx.c: Likewise.
6287 * config/pa/pa.c: Likewise.
6288 * config/pdp11/pdp11.c: Likewise.
6289 * config/rl78/rl78-c.c: Likewise.
6290 * config/rl78/rl78.c: Likewise.
6291 * config/rs6000/rs6000-c.c: Likewise.
6292 * config/rs6000/rs6000.c: Likewise.
6293 * config/rx/rx.c: Likewise.
6294 * config/s390/s390-c.c: Likewise.
6295 * config/s390/s390.c: Likewise.
6296 * config/sh/sh-c.c: Likewise.
6297 * config/sh/sh-mem.cc: Likewise.
6298 * config/sh/sh.c: Likewise.
6299 * config/sh/sh_optimize_sett_clrt.cc: Likewise.
6300 * config/sh/sh_treg_combine.cc: Likewise.
6301 * config/sol2-c.c: Likewise.
6302 * config/sol2-cxx.c: Likewise.
6303 * config/sol2-stubs.c: Likewise.
6304 * config/sol2.c: Likewise.
6305 * config/sparc/sparc-c.c: Likewise.
6306 * config/sparc/sparc.c: Likewise.
6307 * config/spu/spu-c.c: Likewise.
6308 * config/spu/spu.c: Likewise.
6309 * config/stormy16/stormy16.c: Likewise.
6310 * config/tilegx/mul-tables.c: Likewise.
6311 * config/tilegx/tilegx-c.c: Likewise.
6312 * config/tilegx/tilegx.c: Likewise.
6313 * config/tilepro/mul-tables.c: Likewise.
6314 * config/tilepro/tilepro-c.c: Likewise.
6315 * config/tilepro/tilepro.c: Likewise.
6316 * config/v850/v850-c.c: Likewise.
6317 * config/v850/v850.c: Likewise.
6318 * config/vax/vax.c: Likewise.
6319 * config/visium/visium.c: Likewise.
6320 * config/vms/vms-c.c: Likewise.
6321 * config/vms/vms.c: Likewise.
6322 * config/vxworks.c: Likewise.
6323 * config/winnt-c.c: Likewise.
6324 * config/xtensa/xtensa.c: Likewise.
6325
6326 2015-06-17 Robert Suchanek <robert.suchanek@imgtec.com>
6327
6328 * config/mips/mips.c (mips_ira_change_pseudo_allocno_class): New
6329 function.
6330 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define macro.
6331
6332 2015-06-17 Richard Biener <rguenther@suse.de>
6333
6334 PR tree-optimization/66251
6335 * tree-vect-stmts.c (vectorizable_store): Fix gathering of vectorized
6336 stmts for SLP strided stores.
6337
6338 Revert
6339 2015-05-22 Richard Biener <rguenther@suse.de>
6340
6341 PR tree-optimization/66251
6342 * tree-vect-stmts.c (vectorizable_conversion): Properly
6343 set STMT_VINFO_VEC_STMT even for the SLP case.
6344
6345 2015-05-26 Michael Matz <matz@suse.de>
6346
6347 PR middle-end/66251
6348 * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Always set
6349 STMT_VINFO_VEC_STMT, also with SLP.
6350
6351 2015-06-16 Uros Bizjak <ubizjak@gmail.com>
6352
6353 PR target/56766
6354 * config/i386/sse.md (*avx_addsubv4df3_1): New insn pattern.
6355 (*avx_addsubv4df3_1s): Ditto.
6356 (*sse3_addsubv2df3_1): Ditto.
6357 (*sse3_addsubv2df3_1s): Ditto.
6358 (*avx_addsubv8sf3_1): Ditto.
6359 (*avx_addsubv8sf3_1s): Ditto.
6360 (*sse3_addsubv4sf3_1): Ditto.
6361 (*sse3_addsubv4sf3_1s): Ditto.
6362
6363 2015-06-16 Steve Ellcey <sellcey@imgtec.com>
6364
6365 * config/mips/mti-linux.h (MIPS_SYSVERSION_SPEC): New.
6366 (SYSROOT_SUFFIX_SPEC): Update.
6367 (SYSROOT_HEADERS_SUFFIX_SPEC): New.
6368 (STARTFILE_PREFIX_SPEC): Update.
6369 * config/mips/t-mti-linux (MULTILIB_EXCEPTIONS): Remove.
6370 (MULTILIB_REQUIRED): New.
6371 (MULTILIB_OSDIRNAMES): New.
6372 * config/mips/t-img-linux (MULTILIB_EXCEPTIONS): Remove.
6373 (MULTILIB_REQUIRED): New.
6374 (MULTILIB_OSDIRNAMES): New.
6375
6376 2015-06-16 Matthew Wahab <matthew.wahab@arm.com>
6377
6378 * config/aarch64/aarch64-arches.def: Add "armv8.1-a".
6379 * config/aarch64/aarch64-options-extensions.def: Update "fP",
6380 "simd" and "crypto". Add "lse", "pan", "lor" and "rdma".
6381 * gcc/config/aarch64/aarch64.h (AARCH64_FL_LSE): New.
6382 (AARCH64_FL_PAN): New.
6383 (AARCH64_FL_LOR): New.
6384 (AARCH64_FL_RDMA): New.
6385 (AARCH64_FL_FOR_ARCH8_1): New.
6386 * doc/invoke.texi (AArch64 Options): Add "armv8.1-a" to
6387 -march. Add "lse", "pan", "lor", "rdma" to feature modifiers.
6388
6389 2015-06-16 Martin Liska <mliska@suse.cz>
6390
6391 * bitmap.c (dump_bitmap_statistics): Fix GNU coding style.
6392 * hash-table.c (void dump_hash_table_loc_statistics): Add missing
6393 guard.
6394
6395 2015-06-16 Richard Biener <rguenther@suse.de>
6396
6397 * tree-vect-stmts.c (vectorizable_store): Adjust.
6398 (vectorizable_load): Likewise.
6399 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
6400 Simplify.
6401 (vect_create_data_ref_ptr): Likewise.
6402 (bump_vector_ptr): Adjust.
6403
6404 2015-06-16 Richard Biener <rguenther@suse.de>
6405
6406 * tree-vect-stmts.c (vectorizable_load): Properly start loads
6407 with the first element if this is grouped loads.
6408
6409 2015-06-16 James Greenhalgh <james.greenhalgh@arm.com>
6410
6411 * config/arm/arm-protos.h (struct tune_params): Rename
6412 log_op_non_sc to log_op_non_short_circuit, and rename enum
6413 values to expand SC to SHORT_CIRCUIT.
6414 * config/arm/arm.c (arm_slowmul_tune): Expand LOG_OP_NON_SC
6415 to LOG_OP_NON_SHORT_CIRCUIT.
6416 (arm_fastmul_tune):Likewise
6417 (arm_strongarm_tune): Likewise.
6418 (arm_xscale_tune): Likewise.
6419 (arm_9e_tune): Likewise.
6420 (arm_marvell_pj4_tune): Likewise.
6421 (arm_v6t2_tune): Likewise.
6422 (arm_cortex_tune): Likewise.
6423 (arm_cortex_a8_tune): Likewise.
6424 (arm_cortex_a7_tune): Likewise.
6425 (arm_cortex_a15_tune): Likewise.
6426 (arm_cortex_a53_tune): Likewise.
6427 (arm_cortex_a57_tune): Likewise.
6428 (arm_xgene1_tune): Likewise.
6429 (arm_cortex_a5_tune): Likewise.
6430 (arm_cortex_a9_tune): Likewise.
6431 (arm_cortex_a12_tune): Likewise.
6432 (arm_v7m_tune): Likewise.
6433 (arm_cortex_m7_tune): Likewise.
6434 (arm_v6m_tune): Likewise.
6435 (arm_fa726te_tune): Likewise.
6436
6437 2015-06-15 David Edelsohn <dje.gcc@gmail.com>
6438
6439 * altivec.md: Delete UNSPEC_VMLADDUHM.
6440 (mulv4si3_p8): New pattern.
6441 (mulv4si3): Use it for POWER8.
6442 (mulv8hi3): Use vmladduhm with zero addend.
6443 (altivec_vmladduhm): Descriptive RTL.
6444
6445 2015-06-15 Jim Wilson <jim.wilson@linaro.org>
6446
6447 * config/aarch64/aarch64.md (mov<mode>_aarch64): Change alternative 2
6448 to use neon_move instead of mov_imm.
6449 (movdi_aarch64): Change alternative 14 to use neon_move not fmov.
6450 (movtf_aarch64): Change alternative 4 to use neon_move_q not fconstd.
6451
6452 * config/aarch64/aarch64.c (aarch64_valid_floating_const): Move
6453 aarch64_float_const_zero_rtx_p check before TFmode check.
6454 * config/aarch64/aarch64.md (movtf): Don't call force_reg if op1 is
6455 an fp zero.
6456 (movtf_aarch64): Separate ?rY alternative into two. Adjust assembly
6457 code and attributes to match. Change condition from register_operand
6458 to aarch64_reg_or_fp_zero for op1. Change type for ldp from
6459 neon_load1_2reg to load2. Change type for stp from neon_store1_2reg
6460 to store2.
6461
6462 2015-06-15 Aldy Hernandez <aldyh@redhat.com>
6463
6464 PR debug/66535
6465 * dwarf2out.c (gen_subprogram_die): Do not check a parent's tag if
6466 there is no parent.
6467
6468 2015-06-14 Shiva Chen <shiva0217@gmail.com>
6469
6470 * aarch64.c (aarch64_simd_lane_bounds): Change %ld to %wd for
6471 HOST_WIDE_INT parameter.
6472
6473 2015-06-14 Jan Hubicka <hubicka@ucw.cz>
6474
6475 PR ipa/66181
6476 * lto-streamer-out.c (hash_tree): Do not hash TYPE_NO_FORCE_BLK.
6477 * tree-streamer-out.c (pack_ts_type_common_value_fields): Do not stream
6478 TYPE_NO_FORCE_BLK.
6479 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Likewise.
6480
6481 2015-06-14 Richard Sandiford <richard.sandiford@arm.com>
6482
6483 * rtl.h (classify_insn): Declare.
6484 * emit-rtl.c (classify_insn): Move to...
6485 * rtl.c: ...here and add generator support.
6486 * gensupport.h (get_emit_function, needs_barrier_p): Declare.
6487 * gensupport.c (get_emit_function, needs_barrier_p): New functions.
6488 * genemit.c (gen_emit_seq): New function.
6489 (gen_expand, gen_split): Use it.
6490
6491 2015-06-13 Patrick Palka <ppalka@gcc.gnu.org>
6492
6493 * tree.c (make_vector_stat): Fix comment to state that the
6494 function returns a VECTOR_CST.
6495
6496 2015-06-13 Richard Sandiford <richard.sandiford@arm.com>
6497
6498 * gensupport.h (add_implicit_parallel): Declare.
6499 * genrecog.c (add_implicit_parallel): Move to...
6500 * gensupport.c (add_implicit_parallel): ...here.
6501 (process_one_cond_exec): Use it.
6502 * genemit.c (gen_insn): Likewise.
6503
6504 2015-06-13 Iain Sandoe <iain@codesourcery.com>
6505
6506 PR bootstrap/66448
6507 * passes.c (rest_of_decl_compilation): Do not register globals for
6508 early debug if they are declared in built-ins.
6509
6510 2015-06-12 Aldy Hernandez <aldyh@redhat.com>
6511
6512 * dwarf2out.c (check_die): Protect with ENABLE_CHECKING.
6513
6514 2015-06-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6515
6516 * ifcvt.c (noce_try_store_flag_constants): Use std::swap instead of
6517 manually swapping.
6518 (noce_try_cmove_arith): Likewise.
6519 (noce_get_alt_condition): Likewise.
6520
6521 2015-06-12 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
6522
6523 * common/config/i386/i386-common.c
6524 (OPTION_MASK_ISA_MWAITX_SET): New.
6525 (ix86_handle_option): Handle mwaitx.
6526 * config.gcc (i[34567]86-*-*): Add mwaitxintrin.h,
6527 (x86_64-*-*): Likewise.
6528 * config/i386/mwaitxintrin.h: New header.
6529 * config/i386/cpuid.h (bit_MWAITX): Define.
6530 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
6531 MWAITX support.
6532 * config/i386/i386.opt (mwaitx): New.
6533 * config/i386/i386-builtin-types.def
6534 (VOID_FTYPE_UNSIGNED_ UNSIGNED_UNSIGNED): New function type.
6535 * config/i386/i386-c.c: Define __MWAITX__ if needed.
6536 * config/i386/i386.c (ix86_target_string): Define -mmwaitx option.
6537 (PTA_MWAITX): New.
6538 (ix86_option_override_internal): Handle new option.
6539 (processor_alias_table): Added PTA_MWAITX.
6540 (ix86_valid_target_attribute_inner_p): Add OPT_mmwaitx.
6541 (ix86_builtins): Add IX86_BUILTIN_MWAITX, IX86_BUILTIN_MONITORX.
6542 (ix86_expand_builtin): Handle IX86_BUILTIN_MWAITX and
6543 IX86_BUILTIN_MONITORX built-ins.
6544 * config/i386/i386.h (TARGET_MWAITX): New.
6545 * config/i386/i386.md (unspecv): Add UNSPEC_MWAITX and
6546 UNSPEC_MONITORX.
6547 (mwaitx): New pattern.
6548 (monitorx_<mode>): New pattern.
6549 * config/i386/x86intrin.h: Include mwaitxintrin.h.
6550 * doc/extend.texi: Document monitorx and mwaitx builtins.
6551 * doc/invoke.texi: Document -mmwaitx option.
6552
6553 2015-06-12 Uros Bizjak <ubizjak@gmail.com>
6554
6555 * emit-rtl.c (need_atomic_barrier_p): Mask model with
6556 MEMMODEL_BASE_MASK. Remove MEMMODEL_SYNC_* cases.
6557
6558 2015-06-11 David Edelsohn <dje.gcc@gmail.com>
6559
6560 * dbxout.c (xcoff_debug_hooks): Provide a function for
6561 register_main_translation_unit hook.
6562
6563 2015-06-11 David Edelsohn <dje.gcc@gmail.com>
6564
6565 * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Remove SYNC
6566 variants cases from switch.
6567 (rs6000_post_atomic_barrier): Same.
6568 (rs6000_expand_atomic_compare_and_swap): Use memmodel_base.
6569 (rs6000_expand_atomic_exchange): Same.
6570 (rs6000_expand_atomic_op): Same.
6571 * config/rs6000/sync.md (mem_thread_fence): Use memodel_base. Remove
6572 SYNC variants cases from switch.
6573 (atomic_load): Same.
6574 (atomic_store): Same.
6575
6576 2015-06-11 John David Anglin <danglin@gcc.gnu.org>
6577
6578 * config/pa/pa.c (pa_output_global_address): Handle LABEL_REF plus
6579 CONST_INT for goto.
6580
6581 2015-06-11 Aldy Hernandez <aldyh@redhat.com>
6582
6583 PR bootstrap/66448
6584 * dwarf2out.c (check_die): Check for common duplicate attributes.
6585 (add_location_or_const_value_attribute): Do not add duplicate
6586 attributes.
6587 (gen_formal_parameter_die): Do not add DW_AT_artificial the second
6588 time around.
6589 (gen_struct_or_union_type_die): Bail early if TREE_ASM_WRITTEN.
6590 (gen_type_die_with_usage): Call check_die.
6591 (dwarf2out_decl): Only call check_die() when ENABLE_CHECKING.
6592
6593 2015-06-11 Jason Merrill <jason@redhat.com>
6594
6595 * dwarf2out.c (prune_unused_types): Handle unused top-level limbo
6596 dies.
6597
6598 2015-06-11 Marek Polacek <polacek@redhat.com>
6599
6600 * match.pd ((x & y) ^ (x | y)): Don't check for single_use.
6601
6602 2015-06-11 Eric Botcazou <ebotcazou@adacore.com>
6603
6604 PR bootstrap/66252
6605 * config/sparc/sparc.c (hard_regno_mode_classes): Add ??? comment.
6606 * config/sparc/sparc.md (zero_extendsidi2_insn_sp32): Use single order.
6607 (*addx_extend_sp32): Fix pasto.
6608 (*subx_extend): Rename into...
6609 (*subx_extend_sp32): ...this.
6610 (*adddi3_extend_sp32): Add earlyclobber.
6611 (*subdi3_insn_sp32): Likewise.
6612 (*subdi3_extend_sp32): Likewise.
6613 (*and_not_di_sp32): Likewise.
6614 (*or_not_di_sp32): Likewise.
6615 (*xor_not_di_sp32): Likewise.
6616 (*negdi2_sp32): Likewise.
6617 (*one_cmpldi2_sp32): Likewise.
6618
6619 2015-06-11 Pierre-Marie de Rodat <derodat@adacore.com>
6620
6621 * debug.h (struct gcc_debug_hooks): Add a
6622 register_main_translation_unit hook.
6623 * debug.c (do_nothing_debug_hooks): Provide a function for this
6624 new hook.
6625 * dbxout.c (dbx_debug_hooks): Likewise.
6626 * sdbout.c (sdb_debug_hooks): Likewise.
6627 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
6628 * dwarf2out.c (main_translation_unit): New global variable.
6629 (dwarf2out_register_main_translation_unit): New function
6630 implementing the new hook.
6631 (dwarf2_debug_hooks): Assign
6632 dwarf2out_register_main_translation_unit to this new hook.
6633 (dwarf2out_init): Associate any main translation unit to
6634 comp_unit_die ().
6635
6636 2015-06-11 Marek Polacek <polacek@redhat.com>
6637
6638 * match.pd ((x & y) ^ (x | y) -> x ^ y): New pattern.
6639
6640 2015-06-11 Marek Polacek <polacek@redhat.com>
6641
6642 * match.pd: Use single_use throughout.
6643
6644 2015-06-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6645
6646 * config/arm/arm.c (arm_option_params_internal): When optimising
6647 for speed set max_insns_skipped when arm_restrict_it.
6648
6649 2015-06-11 Christian Bruel <christian.bruel@st.com>
6650
6651 PR target/52144
6652 * config/arm/arm-c.c (arm_cpu_cpp_builtins): Conditionally define
6653 macros in ...
6654 (arm_cpu_builtins): New function.
6655 (arm_pragma_target_parse): Call arm_cpu_builtins.
6656 * config/arm/arm-protos.h (arm_cpu_builtins): Declare.
6657 (arm_register_target_pragmas): Likewise.
6658 * config/arm/arm.h (REGISTER_TARGET_PRAGMAS):
6659 Call arm_register_target_pragmas.
6660 * config/arm/arm-c.c (arm_register_target_pragmas): New function.
6661 (arm_pragma_target_parse): Likewise.
6662
6663 2015-06-10 Kaz Kojima <kkojima@gcc.gnu.org>
6664
6665 * config/sh/sh.md (tstsi_t): Add '?' modifier to 'r' alternative
6666 of the second operand.
6667
6668 2015-06-10 Uros Bizjak <ubizjak@gmail.com>
6669
6670 PR target/66473
6671 * config/i386/i386.c (ix86_expand_vector_set): Use gen_int_mode
6672 to prepare mask operand for AVX512 modes.
6673
6674 2015-06-10 Michael Meissner <meissner@linux.vnet.ibm.com>
6675
6676 PR target/66474
6677 * doc/md.texi (Machine Constraints): Document that on the PowerPC
6678 if you use a constraint that targets a VSX register, you must use
6679 %x<n> in the template.
6680
6681 2015-06-10 Max Filippov <jcmvbkbc@gmail.com>
6682
6683 * config/xtensa/xtensa.h (TARGET_DEBUG): New definition.
6684 * config/xtensa/xtensa.md (define_attr "type"): New type "trap".
6685 (define_insn "trap"): New definition.
6686
6687 2015-06-10 Richard Biener <rguenther@suse.de>
6688
6689 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Split
6690 out from ...
6691 (vect_supported_load_permutation_p): ... here. Handle
6692 supportable permutations in reductions.
6693 * tree-vect-stmts.c (vectorizable_load): Handle SLP permutations
6694 for vectorizing strided group loads.
6695
6696 2015-06-10 Jakub Jelinek <jakub@redhat.com>
6697
6698 PR target/66470
6699 * config/i386/i386.c (ix86_split_long_move): For collisions
6700 involving direct tls segment refs, move the UNSPEC_TP possibly
6701 wrapped in ZERO_EXTEND out of the address for lea, to each of
6702 the memory loads.
6703
6704 2015-06-10 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6705
6706 * config/arm/sync.md (*memory_barrier): Use dmb ish instead of
6707 dmb sy. Adjust tabs.
6708
6709 2015-06-10 Tom de Vries <tom@codesourcery.com>
6710
6711 * omp-low.c (expand_omp_target): Remove duplicate declaration of node.
6712
6713 2015-06-10 Martin Liska <mliska@suse.cz>
6714
6715 PR bootstrap/66471
6716 * mem-stats-traits.h (enum mem_alloc_origin): Add _ORIGIN suffix for
6717 all enum values in mem_alloc_origin.
6718 * alloc-pool.c (dump_alloc_pool_statistics): Use newly changed enum
6719 name.
6720 * alloc-pool.h (pool_allocator::pool_allocator): Likewise.
6721 * bitmap.c (bitmap_register): Likewise.
6722 (dump_bitmap_statistics): Likewise.
6723 * ggc-common.c (dump_ggc_loc_statistics): Likewise.
6724 (ggc_record_overhead): Likewise.
6725 * hash-map.h: Likewise.
6726 * hash-set.h: Likewise.
6727 * hash-table.c (void dump_hash_table_loc_statistics): Likewise.
6728 * hash-table.h: Likewise.
6729 * vec.c (vec_prefix::register_overhead): Likewise.
6730 (vec_prefix::release_overhead): Likewise.
6731 (dump_vec_loc_statistics): Likewise.
6732
6733 2015-06-09 Christian Bruel <christian.bruel@st.com>
6734
6735 PR target/52144
6736 * config/arm/arm.opt (THUMB, arm_restrict_it, inline_asm_unified): Save.
6737 * config/arm/arm-protos.h (arm_valid_target_attribute_tree): Declare.
6738 (arm_reset_previous_fndecl, arm_change_mode_p): Likewise.
6739 * config/arm/arm.h (SWITCHABLE_TARGET): Define.
6740 * config/arm/arm.c (arm_reset_previous_fndecl): New functions.
6741 (arm_valid_target_attribute_tree, arm_change_mode_p): Likewise.
6742 (arm_valid_target_attribute_p): Likewise.
6743 (arm_set_current_function, arm_can_inline_p): Likewise.
6744 (arm_valid_target_attribute_rec): Likewise.
6745 (arm_previous_fndecl): New variable.
6746 (TARGET_SET_CURRENT_FUNCTION, TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
6747 (TARGET_CAN_INLINE_P): Define.
6748 (arm_asm_trampoline_template): Emit mode.
6749 (arm_file_start): Don't set unified syntax.
6750 (arm_declare_function_name): Set unified syntax and mode.
6751 (arm_option_override): Init target_option_default_node.
6752 and target_option_current_node.
6753 * config/arm/arm.md (*call_value_symbol): Set mode when possible.
6754 (*call_symbol): Likewise.
6755 * doc/extend.texi: Document ARM/Thumb target attribute.
6756 * doc/invoke.texi: Likewise.
6757
6758 2015-06-09 Alexandre Oliva <aoliva@redhat.com>
6759
6760 Revert:
6761 2015-06-09 Alexandre Oliva <aoliva@redhat.com>
6762 PR rtl-optimization/64164
6763 * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
6764 * tree-ssa-copyrename.c: Removed.
6765 * opts.c (default_options_table): Drop -ftree-copyrename. Add
6766 -ftree-coalesce-vars.
6767 * passes.def: Drop all occurrences of pass_rename_ssa_copies.
6768 * common.opt (ftree-copyrename): Ignore.
6769 (ftree-coalesce-inlined-vars): Likewise.
6770 * doc/invoke.texi: Remove the ignored options above.
6771 * gimple-expr.h (gimple_can_coalesce_p): Move declaration
6772 * tree-ssa-coalesce.h: ... here.
6773 * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
6774 headers required by it.
6775 * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
6776 across variables when flag_tree_coalesce_vars. Check register
6777 use and promoted modes to allow coalescing. Moved to
6778 tree-ssa-coalesce.c.
6779 * tree-ssa-live.c (struct tree_int_map_hasher): Move along
6780 with its member functions to tree-ssa-coalesce.c.
6781 (var_map_base_init): Likewise. Renamed to
6782 compute_samebase_partition_bases.
6783 (partition_view_normal): Drop want_bases parameter.
6784 (partition_view_bitmap): Likewise.
6785 * tree-ssa-live.h: Adjust declarations.
6786 * tree-ssa-coalesce.c: Include explow.h.
6787 (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
6788 default defs at the entry point.
6789 (dump_part_var_map): New.
6790 (compute_optimized_partition_bases): New, called by...
6791 (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
6792 of compute_samebase_partition_bases. Adjust.
6793 * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
6794 * cfgexpand.c (leader_merge): New.
6795 (get_rtl_for_parm_ssa_default_def): New.
6796 (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
6797 vars. Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
6798 (expand_one_stack_var_at): Handle anonymous SSA_NAMEs. Drop
6799 redundant MEM attr setting.
6800 (expand_one_stack_var_1): Handle anonymous SSA_NAMEs. Renamed
6801 from...
6802 (expand_one_stack_var): ... this. New wrapper to check and
6803 skip already expanded SSA partitions.
6804 (record_alignment_for_reg_var): New, factored out of...
6805 (expand_one_var): ... this.
6806 (expand_one_ssa_partition): New.
6807 (adjust_one_expanded_partition_var): New.
6808 (expand_one_register_var): Check and skip already expanded SSA
6809 partitions.
6810 (expand_used_vars): Don't create DECLs for anonymous SSA
6811 names. Expand all SSA partitions, then adjust all SSA names.
6812 (pass::execute): Replace the loops that set
6813 SA.partition_to_pseudo from partition leaders and cleared
6814 DECL_RTL for multi-location variables, and that which used to
6815 rename vars and set attrs, with one that clears DECL_RTL and
6816 checks that PARMs and RESULTs default_defs match DECL_RTL.
6817 * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
6818 * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
6819 * explow.c (promote_ssa_mode): New.
6820 * explow.h (promote_ssa_mode): Declare.
6821 * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
6822 * function.c: Include cfgexpand.h.
6823 (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
6824 (use_register_for_parm_decl): Wrapper for the above to
6825 special-case the result_ptr.
6826 (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
6827 (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
6828 multiple locations.
6829 (assign_parm_adjust_stack_rtl): Add all and parm arguments,
6830 for rtl_for_parm. For SSA-assigned parms, zero stack_parm.
6831 (assign_parm_setup_block): Prefer SSA-assigned location.
6832 (assign_parm_setup_reg): Likewise. Use entry_parm for equiv
6833 if stack_parm is NULL.
6834 (assign_parm_setup_stack): Prefer SSA-assigned location.
6835 (assign_parms): Maybe reset DECL_RTL of params. Adjust stack
6836 rtl before testing for pointer bounds. Special-case result_ptr.
6837 (expand_function_start): Maybe reset DECL_RTL of result.
6838 Prefer SSA-assigned location for result and static chain.
6839 Factor out DECL_RESULT and SET_DECL_RTL.
6840 * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
6841 anonymous SSA names. Use promote_ssa_mode.
6842 (get_temp_reg): Likewise.
6843 (remove_ssa_form): Adjust.
6844 * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
6845 and get its reg_usage for reg invalidation.
6846 (compute_bb_dataflow): Pass it insn.
6847 (emit_notes_in_bb): Likewise.
6848 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
6849 fail assert on conversion between unsigned types.
6850
6851 2015-06-09 Tom de Vries <tom@codesourcery.com>
6852
6853 PR tree-optimization/65460
6854 * omp-low.c (expand_omp_target): Set parallelized_function on
6855 cgraph_node for child_fn.
6856
6857 2015-06-09 Tom de Vries <tom@codesourcery.com>
6858
6859 * omp-low.c (finalize_task_copyfn, expand_omp_taskreg): Mark function
6860 parallelized_function before add_new_function.
6861
6862 2015-06-09 Andrew MacLeod <amacleod@redhat.com>
6863
6864 * gcc-plugin.h: Move decls to plugin.h and include it.
6865 * plugin.h: Relocate decls from gcc-plugin.h
6866 * ggc-page.c: Include required header files.
6867 * passes.c: Likewise.
6868 * cgraphunit.c: Likewise.
6869
6870 2015-06-09 Tom de Vries <tom@codesourcery.com>
6871
6872 * tree-stdarg.c (expand_ifn_va_arg_1): Handle location.
6873
6874 2015-06-09 Jason Merrill <jason@redhat.com>
6875
6876 PR bootstrap/66448
6877 * toplev.c (check_global_declaration): Don't warn about a clone.
6878
6879 2015-06-09 Marek Polacek <polacek@redhat.com>
6880
6881 PR tree-optimization/66299
6882 * match.pd ((CST1 << A) == CST2 -> A == ctz (CST2) - ctz (CST1)
6883 ((CST1 << A) != CST2 -> A != ctz (CST2) - ctz (CST1)): New
6884 patterns.
6885
6886 2015-06-09 Richard Biener <rguenther@suse.de>
6887
6888 * tree-vect-slp.c (vect_build_slp_tree_1): Remove bailout on gaps.
6889 (vect_analyze_slp_instance): Instead do not falsely drop
6890 load permutations.
6891
6892 2015-06-09 Richard Biener <rguenther@suse.de>
6893
6894 PR middle-end/66423
6895 * match.pd: Handle A % (unsigned)(1 << B).
6896
6897 2015-06-09 Aldy Hernandez <aldyh@redhat.com>
6898
6899 * varasm.c (output_object_block_htab): Remove.
6900 (output_object_block_compare): New.
6901 (output_object_blocks): Sort named object_blocks before outputting
6902 them.
6903
6904 2015-06-09 Richard Biener <rguenther@suse.de>
6905
6906 PR tree-optimization/66419
6907 * tree-vect-slp.c (vect_supported_load_permutation_p): Properly
6908 consider GROUP_GAP when detecting a perfect subchain.
6909
6910 2015-06-09 Nick Clifton <nickc@redhat.com>
6911
6912 * config/rl78/rl78.c (rl78_select_section): When -mes0 is active
6913 place read only data in the .frodata section.
6914
6915 2015-06-09 Shiva Chen <shiva0217@gmail.com>
6916
6917 * sync.md (atomic_load<mode>): Add conditional code for lda/ldr
6918 (atomic_store<mode>): Likewise.
6919
6920 2015-06-09 Richard Biener <rguenther@suse.de>
6921
6922 * cfgloop.c (get_loop_body_in_bfs_order): Fix assert.
6923
6924 2015-06-09 Richard Biener <rguenther@suse.de>
6925
6926 PR middle-end/66413
6927 * tree-inline.c (insert_init_debug_bind): Unshare value.
6928
6929 2015-06-09 Richard Biener <rguenther@suse.de>
6930
6931 PR tree-optimization/66396
6932 * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl):
6933 Rename virtual operands.
6934
6935 2015-06-09 Tom de Vries <tom@codesourcery.com>
6936
6937 * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Don't
6938 always return false.
6939
6940 2015-06-09 Alexandre Oliva <aoliva@redhat.com>
6941
6942 PR rtl-optimization/64164
6943 * Makefile.in (OBJS): Drop tree-ssa-copyrename.o.
6944 * tree-ssa-copyrename.c: Removed.
6945 * opts.c (default_options_table): Drop -ftree-copyrename. Add
6946 -ftree-coalesce-vars.
6947 * passes.def: Drop all occurrences of pass_rename_ssa_copies.
6948 * common.opt (ftree-copyrename): Ignore.
6949 (ftree-coalesce-inlined-vars): Likewise.
6950 * doc/invoke.texi: Remove the ignored options above.
6951 * gimple-expr.h (gimple_can_coalesce_p): Move declaration
6952 * tree-ssa-coalesce.h: ... here.
6953 * tree-ssa-uncprop.c: Include tree-ssa-coalesce.h and other
6954 headers required by it.
6955 * gimple-expr.c (gimple_can_coalesce_p): Allow coalescing
6956 across variables when flag_tree_coalesce_vars. Check register
6957 use and promoted modes to allow coalescing. Moved to
6958 tree-ssa-coalesce.c.
6959 * tree-ssa-live.c (struct tree_int_map_hasher): Move along
6960 with its member functions to tree-ssa-coalesce.c.
6961 (var_map_base_init): Likewise. Renamed to
6962 compute_samebase_partition_bases.
6963 (partition_view_normal): Drop want_bases parameter.
6964 (partition_view_bitmap): Likewise.
6965 * tree-ssa-live.h: Adjust declarations.
6966 * tree-ssa-coalesce.c: Include explow.h.
6967 (build_ssa_conflict_graph): Process PARM_ and RESULT_DECLs's
6968 default defs at the entry point.
6969 (dump_part_var_map): New.
6970 (compute_optimized_partition_bases): New, called by...
6971 (coalesce_ssa_name): ... when flag_tree_coalesce_vars, instead
6972 of compute_samebase_partition_bases. Adjust.
6973 * alias.c (nonoverlapping_memrefs_p): Disregard gimple-regs.
6974 * cfgexpand.c (leader_merge): New.
6975 (get_rtl_for_parm_ssa_default_def): New.
6976 (set_rtl): Merge exprs and attrs, even for MEMs and non-SSA
6977 vars. Update DECL_RTL for PARM_DECLs and RESULT_DECLs too.
6978 (expand_one_stack_var_at): Handle anonymous SSA_NAMEs. Drop
6979 redundant MEM attr setting.
6980 (expand_one_stack_var_1): Handle anonymous SSA_NAMEs. Renamed
6981 from...
6982 (expand_one_stack_var): ... this. New wrapper to check and
6983 skip already expanded SSA partitions.
6984 (record_alignment_for_reg_var): New, factored out of...
6985 (expand_one_var): ... this.
6986 (expand_one_ssa_partition): New.
6987 (adjust_one_expanded_partition_var): New.
6988 (expand_one_register_var): Check and skip already expanded SSA
6989 partitions.
6990 (expand_used_vars): Don't create DECLs for anonymous SSA
6991 names. Expand all SSA partitions, then adjust all SSA names.
6992 (pass::execute): Replace the loops that set
6993 SA.partition_to_pseudo from partition leaders and cleared
6994 DECL_RTL for multi-location variables, and that which used to
6995 rename vars and set attrs, with one that clears DECL_RTL and
6996 checks that PARMs and RESULTs default_defs match DECL_RTL.
6997 * cfgexpand.h (get_rtl_for_parm_ssa_default_def): Declare.
6998 * emit-rtl.c (set_reg_attrs_for_parm): Handle NULL decl.
6999 * explow.c (promote_ssa_mode): New.
7000 * explow.h (promote_ssa_mode): Declare.
7001 * expr.c (expand_expr_real_1): Handle anonymous SSA_NAMEs.
7002 * function.c: Include cfgexpand.h.
7003 (use_register_for_decl): Handle SSA_NAMEs, anonymous or not.
7004 (use_register_for_parm_decl): Wrapper for the above to
7005 special-case the result_ptr.
7006 (rtl_for_parm): Ditto for get_rtl_for_parm_ssa_default_def.
7007 (maybe_reset_rtl_for_parm): Reset DECL_RTL of parms with
7008 multiple locations.
7009 (assign_parm_adjust_stack_rtl): Add all and parm arguments,
7010 for rtl_for_parm. For SSA-assigned parms, zero stack_parm.
7011 (assign_parm_setup_block): Prefer SSA-assigned location.
7012 (assign_parm_setup_reg): Likewise. Use entry_parm for equiv
7013 if stack_parm is NULL.
7014 (assign_parm_setup_stack): Prefer SSA-assigned location.
7015 (assign_parms): Maybe reset DECL_RTL of params. Adjust stack
7016 rtl before testing for pointer bounds. Special-case result_ptr.
7017 (expand_function_start): Maybe reset DECL_RTL of result.
7018 Prefer SSA-assigned location for result and static chain.
7019 Factor out DECL_RESULT and SET_DECL_RTL.
7020 * tree-outof-ssa.c (insert_value_copy_on_edge): Handle
7021 anonymous SSA names. Use promote_ssa_mode.
7022 (get_temp_reg): Likewise.
7023 (remove_ssa_form): Adjust.
7024 * var-tracking.c (dataflow_set_clear_at_call): Take call_insn
7025 and get its reg_usage for reg invalidation.
7026 (compute_bb_dataflow): Pass it insn.
7027 (emit_notes_in_bb): Likewise.
7028 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Don't
7029 fail assert on conversion between unsigned types.
7030
7031 2015-06-09 Alexandre Oliva <aoliva@redhat.com>
7032
7033 PR debug/58315
7034 * tree-inline.c (reset_debug_binding): New.
7035 (reset_debug_bindings): Likewise.
7036 (expand_call_inline): Call it.
7037
7038 2015-06-08 Jan Hubicka <hubicka@ucw.cz>
7039
7040 * tree.c (gimple_canonical_types_compatible_p): Drop comparsion of
7041 TYPE_STRING_FLAG.
7042
7043 2015-06-08 Jan Hubicka <hubicka@ucw.cz>
7044
7045 * lto-streamer-out.c (lto_output_location): Stream
7046 reserved locations correctly.
7047 * lto-streamer-in.c (lto_output_location): Likewise.
7048
7049 2015-06-08 Andrew MacLeod <amacleod@redhat.com>
7050
7051 * coretypes.h: Include hash-table.h and hash-set.h for host files.
7052 * ggc.h: Don't include statistics.h>
7053 * hash-map.h: Remove all includes.
7054 * hash-set.h: Likewise.
7055 * hash-table.h: Add statistics.h, inchash.h and hash-map-traits.h to
7056 the include list. Remove <new>.
7057 * inchash.h: Remove all includes.
7058 * mem-stats.h: Likewise.
7059 * vec.h: No special processing for generators or ggc.
7060 * alias.c : Adjust include files.
7061 * alloc-pool.c : Likewise.
7062 * alloc-pool.h : Likewise.
7063 * asan.c : Likewise.
7064 * attribs.c : Likewise.
7065 * auto-inc-dec.c : Likewise.
7066 * auto-profile.c : Likewise.
7067 * bb-reorder.c : Likewise.
7068 * bitmap.c : Likewise.
7069 * bitmap.h : Likewise.
7070 * bt-load.c : Likewise.
7071 * builtins.c : Likewise.
7072 * caller-save.c : Likewise.
7073 * calls.c : Likewise.
7074 * ccmp.c : Likewise.
7075 * cfg.c : Likewise.
7076 * cfganal.c : Likewise.
7077 * cfgbuild.c : Likewise.
7078 * cfgcleanup.c : Likewise.
7079 * cfgexpand.c : Likewise.
7080 * cfghooks.c : Likewise.
7081 * cfgloop.c : Likewise.
7082 * cfgloop.h : Likewise.
7083 * cfgloopanal.c : Likewise.
7084 * cfgloopmanip.c : Likewise.
7085 * cfgrtl.c : Likewise.
7086 * cgraph.c : Likewise.
7087 * cgraphbuild.c : Likewise.
7088 * cgraphclones.c : Likewise.
7089 * cgraphunit.c : Likewise.
7090 * cilk-common.c : Likewise.
7091 * combine-stack-adj.c : Likewise.
7092 * combine.c : Likewise.
7093 * compare-elim.c : Likewise.
7094 * context.c : Likewise.
7095 * convert.c : Likewise.
7096 * coverage.c : Likewise.
7097 * cppbuiltin.c : Likewise.
7098 * cprop.c : Likewise.
7099 * cse.c : Likewise.
7100 * cselib.c : Likewise.
7101 * data-streamer-in.c : Likewise.
7102 * data-streamer-out.c : Likewise.
7103 * data-streamer.c : Likewise.
7104 * data-streamer.h : Likewise.
7105 * dbxout.c : Likewise.
7106 * dce.c : Likewise.
7107 * ddg.c : Likewise.
7108 * debug.c : Likewise.
7109 * df-core.c : Likewise.
7110 * df-problems.c : Likewise.
7111 * df-scan.c : Likewise.
7112 * df.h : Likewise.
7113 * dfp.c : Likewise.
7114 * dojump.c : Likewise.
7115 * dominance.c : Likewise.
7116 * domwalk.c : Likewise.
7117 * double-int.c : Likewise.
7118 * dse.c : Likewise.
7119 * dumpfile.c : Likewise.
7120 * dwarf2asm.c : Likewise.
7121 * dwarf2cfi.c : Likewise.
7122 * dwarf2out.c : Likewise.
7123 * emit-rtl.c : Likewise.
7124 * et-forest.c : Likewise.
7125 * except.c : Likewise.
7126 * except.h : Likewise.
7127 * explow.c : Likewise.
7128 * expmed.c : Likewise.
7129 * expr.c : Likewise.
7130 * final.c : Likewise.
7131 * fixed-value.c : Likewise.
7132 * fold-const.c : Likewise.
7133 * function.c : Likewise.
7134 * fwprop.c : Likewise.
7135 * gcc-plugin.h : Likewise.
7136 * gcc.c : Likewise.
7137 * gcse-common.c : Likewise.
7138 * gcse.c : Likewise.
7139 * genattrtab.c : Likewise.
7140 * genautomata.c : Likewise.
7141 * genconditions.c : Likewise.
7142 * genemit.c : Likewise.
7143 * generic-match-head.c : Likewise.
7144 * genextract.c : Likewise.
7145 * gengtype-state.c : Likewise.
7146 * gengtype.c : Likewise.
7147 * genhooks.c : Likewise.
7148 * genmatch.c : Likewise.
7149 * genmodes.c : Likewise.
7150 * genrecog.c : Likewise.
7151 * gensupport.c : Likewise.
7152 * ggc-common.c : Likewise.
7153 * ggc-internal.h : Likewise.
7154 * ggc-none.c : Likewise.
7155 * ggc-page.c : Likewise.
7156 * gimple-builder.c : Likewise.
7157 * gimple-expr.c : Likewise.
7158 * gimple-fold.c : Likewise.
7159 * gimple-iterator.c : Likewise.
7160 * gimple-low.c : Likewise.
7161 * gimple-match-head.c : Likewise.
7162 * gimple-pretty-print.c : Likewise.
7163 * gimple-ssa-isolate-paths.c : Likewise.
7164 * gimple-ssa-strength-reduction.c : Likewise.
7165 * gimple-ssa.h : Likewise.
7166 * gimple-streamer-in.c : Likewise.
7167 * gimple-streamer-out.c : Likewise.
7168 * gimple-streamer.h : Likewise.
7169 * gimple-walk.c : Likewise.
7170 * gimple.c : Likewise.
7171 * gimplify-me.c : Likewise.
7172 * gimplify.c : Likewise.
7173 * godump.c : Likewise.
7174 * graph.c : Likewise.
7175 * graphds.c : Likewise.
7176 * graphite-blocking.c : Likewise.
7177 * graphite-dependences.c : Likewise.
7178 * graphite-interchange.c : Likewise.
7179 * graphite-isl-ast-to-gimple.c : Likewise.
7180 * graphite-optimize-isl.c : Likewise.
7181 * graphite-poly.c : Likewise.
7182 * graphite-scop-detection.c : Likewise.
7183 * graphite-sese-to-poly.c : Likewise.
7184 * graphite.c : Likewise.
7185 * haifa-sched.c : Likewise.
7186 * hard-reg-set.h : Likewise.
7187 * hw-doloop.c : Likewise.
7188 * ifcvt.c : Likewise.
7189 * inchash.c : Likewise.
7190 * incpath.c : Likewise.
7191 * init-regs.c : Likewise.
7192 * input.c : Likewise.
7193 * internal-fn.c : Likewise.
7194 * ipa-chkp.c : Likewise.
7195 * ipa-comdats.c : Likewise.
7196 * ipa-cp.c : Likewise.
7197 * ipa-devirt.c : Likewise.
7198 * ipa-icf-gimple.c : Likewise.
7199 * ipa-icf.c : Likewise.
7200 * ipa-inline-analysis.c : Likewise.
7201 * ipa-inline-transform.c : Likewise.
7202 * ipa-inline.c : Likewise.
7203 * ipa-polymorphic-call.c : Likewise.
7204 * ipa-profile.c : Likewise.
7205 * ipa-prop.c : Likewise.
7206 * ipa-pure-const.c : Likewise.
7207 * ipa-ref.c : Likewise.
7208 * ipa-reference.c : Likewise.
7209 * ipa-split.c : Likewise.
7210 * ipa-utils.c : Likewise.
7211 * ipa-visibility.c : Likewise.
7212 * ipa.c : Likewise.
7213 * ira-build.c : Likewise.
7214 * ira-color.c : Likewise.
7215 * ira-conflicts.c : Likewise.
7216 * ira-costs.c : Likewise.
7217 * ira-emit.c : Likewise.
7218 * ira-lives.c : Likewise.
7219 * ira.c : Likewise.
7220 * jump.c : Likewise.
7221 * langhooks.c : Likewise.
7222 * lcm.c : Likewise.
7223 * libfuncs.h : Likewise.
7224 * lists.c : Likewise.
7225 * loop-doloop.c : Likewise.
7226 * loop-init.c : Likewise.
7227 * loop-invariant.c : Likewise.
7228 * loop-iv.c : Likewise.
7229 * loop-unroll.c : Likewise.
7230 * lower-subreg.c : Likewise.
7231 * lra-assigns.c : Likewise.
7232 * lra-coalesce.c : Likewise.
7233 * lra-constraints.c : Likewise.
7234 * lra-eliminations.c : Likewise.
7235 * lra-lives.c : Likewise.
7236 * lra-remat.c : Likewise.
7237 * lra-spills.c : Likewise.
7238 * lra.c : Likewise.
7239 * lto-cgraph.c : Likewise.
7240 * lto-compress.c : Likewise.
7241 * lto-opts.c : Likewise.
7242 * lto-section-in.c : Likewise.
7243 * lto-section-out.c : Likewise.
7244 * lto-streamer-in.c : Likewise.
7245 * lto-streamer-out.c : Likewise.
7246 * lto-streamer.c : Likewise.
7247 * lto-streamer.h : Likewise.
7248 * mcf.c : Likewise.
7249 * mode-switching.c : Likewise.
7250 * modulo-sched.c : Likewise.
7251 * omega.c : Likewise.
7252 * omp-low.c : Likewise.
7253 * optabs.c : Likewise.
7254 * opts-global.c : Likewise.
7255 * opts.h : Likewise.
7256 * passes.c : Likewise.
7257 * plugin.c : Likewise.
7258 * postreload-gcse.c : Likewise.
7259 * postreload.c : Likewise.
7260 * predict.c : Likewise.
7261 * print-rtl.c : Likewise.
7262 * print-tree.c : Likewise.
7263 * profile.c : Likewise.
7264 * read-md.c : Likewise.
7265 * read-md.h : Likewise.
7266 * read-rtl.c : Likewise.
7267 * real.c : Likewise.
7268 * realmpfr.c : Likewise.
7269 * recog.c : Likewise.
7270 * ree.c : Likewise.
7271 * reg-stack.c : Likewise.
7272 * regcprop.c : Likewise.
7273 * reginfo.c : Likewise.
7274 * regrename.c : Likewise.
7275 * regstat.c : Likewise.
7276 * reload.c : Likewise.
7277 * reload1.c : Likewise.
7278 * reorg.c : Likewise.
7279 * resource.c : Likewise.
7280 * rtl-chkp.c : Likewise.
7281 * rtl.c : Likewise.
7282 * rtl.h : Likewise.
7283 * rtlanal.c : Likewise.
7284 * rtlhash.c : Likewise.
7285 * rtlhash.h : Likewise.
7286 * rtlhooks.c : Likewise.
7287 * sanopt.c : Likewise.
7288 * sched-deps.c : Likewise.
7289 * sched-ebb.c : Likewise.
7290 * sched-rgn.c : Likewise.
7291 * sched-vis.c : Likewise.
7292 * sdbout.c : Likewise.
7293 * sel-sched-dump.c : Likewise.
7294 * sel-sched-ir.c : Likewise.
7295 * sel-sched-ir.h : Likewise.
7296 * sel-sched.c : Likewise.
7297 * sese.c : Likewise.
7298 * shrink-wrap.c : Likewise.
7299 * shrink-wrap.h : Likewise.
7300 * simplify-rtx.c : Likewise.
7301 * stack-ptr-mod.c : Likewise.
7302 * statistics.c : Likewise.
7303 * stmt.c : Likewise.
7304 * stor-layout.c : Likewise.
7305 * store-motion.c : Likewise.
7306 * stringpool.c : Likewise.
7307 * symtab.c : Likewise.
7308 * target-globals.c : Likewise.
7309 * targhooks.c : Likewise.
7310 * tlink.c : Likewise.
7311 * toplev.c : Likewise.
7312 * tracer.c : Likewise.
7313 * trans-mem.c : Likewise.
7314 * tree-affine.c : Likewise.
7315 * tree-affine.h : Likewise.
7316 * tree-browser.c : Likewise.
7317 * tree-call-cdce.c : Likewise.
7318 * tree-cfg.c : Likewise.
7319 * tree-cfgcleanup.c : Likewise.
7320 * tree-chkp-opt.c : Likewise.
7321 * tree-chkp.c : Likewise.
7322 * tree-chrec.c : Likewise.
7323 * tree-complex.c : Likewise.
7324 * tree-data-ref.c : Likewise.
7325 * tree-dfa.c : Likewise.
7326 * tree-diagnostic.c : Likewise.
7327 * tree-dump.c : Likewise.
7328 * tree-eh.c : Likewise.
7329 * tree-eh.h : Likewise.
7330 * tree-emutls.c : Likewise.
7331 * tree-hasher.h : Likewise.
7332 * tree-if-conv.c : Likewise.
7333 * tree-inline.c : Likewise.
7334 * tree-inline.h : Likewise.
7335 * tree-into-ssa.c : Likewise.
7336 * tree-iterator.c : Likewise.
7337 * tree-loop-distribution.c : Likewise.
7338 * tree-nested.c : Likewise.
7339 * tree-nrv.c : Likewise.
7340 * tree-object-size.c : Likewise.
7341 * tree-outof-ssa.c : Likewise.
7342 * tree-parloops.c : Likewise.
7343 * tree-phinodes.c : Likewise.
7344 * tree-predcom.c : Likewise.
7345 * tree-pretty-print.c : Likewise.
7346 * tree-profile.c : Likewise.
7347 * tree-scalar-evolution.c : Likewise.
7348 * tree-sra.c : Likewise.
7349 * tree-ssa-address.c : Likewise.
7350 * tree-ssa-alias.c : Likewise.
7351 * tree-ssa-ccp.c : Likewise.
7352 * tree-ssa-coalesce.c : Likewise.
7353 * tree-ssa-copy.c : Likewise.
7354 * tree-ssa-copyrename.c : Likewise.
7355 * tree-ssa-dce.c : Likewise.
7356 * tree-ssa-dom.c : Likewise.
7357 * tree-ssa-dse.c : Likewise.
7358 * tree-ssa-forwprop.c : Likewise.
7359 * tree-ssa-ifcombine.c : Likewise.
7360 * tree-ssa-live.c : Likewise.
7361 * tree-ssa-loop-ch.c : Likewise.
7362 * tree-ssa-loop-im.c : Likewise.
7363 * tree-ssa-loop-ivcanon.c : Likewise.
7364 * tree-ssa-loop-ivopts.c : Likewise.
7365 * tree-ssa-loop-manip.c : Likewise.
7366 * tree-ssa-loop-niter.c : Likewise.
7367 * tree-ssa-loop-prefetch.c : Likewise.
7368 * tree-ssa-loop-unswitch.c : Likewise.
7369 * tree-ssa-loop.c : Likewise.
7370 * tree-ssa-math-opts.c : Likewise.
7371 * tree-ssa-operands.c : Likewise.
7372 * tree-ssa-phiopt.c : Likewise.
7373 * tree-ssa-phiprop.c : Likewise.
7374 * tree-ssa-pre.c : Likewise.
7375 * tree-ssa-propagate.c : Likewise.
7376 * tree-ssa-reassoc.c : Likewise.
7377 * tree-ssa-sccvn.c : Likewise.
7378 * tree-ssa-scopedtables.c : Likewise.
7379 * tree-ssa-sink.c : Likewise.
7380 * tree-ssa-strlen.c : Likewise.
7381 * tree-ssa-structalias.c : Likewise.
7382 * tree-ssa-tail-merge.c : Likewise.
7383 * tree-ssa-ter.c : Likewise.
7384 * tree-ssa-threadedge.c : Likewise.
7385 * tree-ssa-threadupdate.c : Likewise.
7386 * tree-ssa-uncprop.c : Likewise.
7387 * tree-ssa-uninit.c : Likewise.
7388 * tree-ssa.c : Likewise.
7389 * tree-ssanames.c : Likewise.
7390 * tree-stdarg.c : Likewise.
7391 * tree-streamer-in.c : Likewise.
7392 * tree-streamer-out.c : Likewise.
7393 * tree-streamer.c : Likewise.
7394 * tree-streamer.h : Likewise.
7395 * tree-switch-conversion.c : Likewise.
7396 * tree-tailcall.c : Likewise.
7397 * tree-vect-data-refs.c : Likewise.
7398 * tree-vect-generic.c : Likewise.
7399 * tree-vect-loop-manip.c : Likewise.
7400 * tree-vect-loop.c : Likewise.
7401 * tree-vect-patterns.c : Likewise.
7402 * tree-vect-slp.c : Likewise.
7403 * tree-vect-stmts.c : Likewise.
7404 * tree-vectorizer.c : Likewise.
7405 * tree-vectorizer.h : Likewise.
7406 * tree-vrp.c : Likewise.
7407 * tree.c : Likewise.
7408 * tsan.c : Likewise.
7409 * ubsan.c : Likewise.
7410 * valtrack.c : Likewise.
7411 * valtrack.h : Likewise.
7412 * value-prof.c : Likewise.
7413 * var-tracking.c : Likewise.
7414 * varasm.c : Likewise.
7415 * varpool.c : Likewise.
7416 * vec.c: Likewise.
7417 * vmsdbgout.c : Likewise.
7418 * vtable-verify.c : Likewise.
7419 * vtable-verify.h : Likewise.
7420 * web.c : Likewise.
7421 * wide-int.cc : Likewise.
7422 * xcoffout.c : Likewise.
7423 * config/aarch64/aarch64-builtins.c : Likewise.
7424 * config/aarch64/aarch64.c : Likewise.
7425 * config/aarch64/cortex-a57-fma-steering.c : Likewise.
7426 * config/alpha/alpha.c : Likewise.
7427 * config/arc/arc.c : Likewise.
7428 * config/arm/aarch-common.c : Likewise.
7429 * config/arm/arm-builtins.c : Likewise.
7430 * config/arm/arm-c.c : Likewise.
7431 * config/arm/arm.c : Likewise.
7432 * config/avr/avr-c.c : Likewise.
7433 * config/avr/avr-log.c : Likewise.
7434 * config/avr/avr.c : Likewise.
7435 * config/bfin/bfin.c : Likewise.
7436 * config/c6x/c6x.c : Likewise.
7437 * config/cr16/cr16.c : Likewise.
7438 * config/cris/cris.c : Likewise.
7439 * config/darwin-c.c : Likewise.
7440 * config/darwin.c : Likewise.
7441 * config/default-c.c : Likewise.
7442 * config/epiphany/epiphany.c : Likewise.
7443 * config/epiphany/mode-switch-use.c : Likewise.
7444 * config/epiphany/resolve-sw-modes.c : Likewise.
7445 * config/fr30/fr30.c : Likewise.
7446 * config/frv/frv.c : Likewise.
7447 * config/ft32/ft32.c : Likewise.
7448 * config/glibc-c.c : Likewise.
7449 * config/h8300/h8300.c : Likewise.
7450 * config/i386/i386-c.c : Likewise.
7451 * config/i386/i386.c : Likewise.
7452 * config/i386/msformat-c.c : Likewise.
7453 * config/i386/winnt-cxx.c : Likewise.
7454 * config/i386/winnt-stubs.c : Likewise.
7455 * config/i386/winnt.c : Likewise.
7456 * config/ia64/ia64-c.c : Likewise.
7457 * config/ia64/ia64.c : Likewise.
7458 * config/iq2000/iq2000.c : Likewise.
7459 * config/lm32/lm32.c : Likewise.
7460 * config/m32c/m32c-pragma.c : Likewise.
7461 * config/m32c/m32c.c : Likewise.
7462 * config/m32r/m32r.c : Likewise.
7463 * config/m68k/m68k.c : Likewise.
7464 * config/mcore/mcore.c : Likewise.
7465 * config/mep/mep-pragma.c : Likewise.
7466 * config/mep/mep.c : Likewise.
7467 * config/microblaze/microblaze-c.c : Likewise.
7468 * config/microblaze/microblaze.c : Likewise.
7469 * config/mips/mips.c : Likewise.
7470 * config/mmix/mmix.c : Likewise.
7471 * config/mn10300/mn10300.c : Likewise.
7472 * config/moxie/moxie.c : Likewise.
7473 * config/msp430/msp430-c.c : Likewise.
7474 * config/msp430/msp430.c : Likewise.
7475 * config/nds32/nds32-cost.c : Likewise.
7476 * config/nds32/nds32-fp-as-gp.c : Likewise.
7477 * config/nds32/nds32-intrinsic.c : Likewise.
7478 * config/nds32/nds32-isr.c : Likewise.
7479 * config/nds32/nds32-md-auxiliary.c : Likewise.
7480 * config/nds32/nds32-memory-manipulation.c : Likewise.
7481 * config/nds32/nds32-pipelines-auxiliary.c : Likewise.
7482 * config/nds32/nds32-predicates.c : Likewise.
7483 * config/nds32/nds32.c : Likewise.
7484 * config/nios2/nios2.c : Likewise.
7485 * config/nvptx/nvptx.c : Likewise.
7486 * config/pa/pa.c : Likewise.
7487 * config/pdp11/pdp11.c : Likewise.
7488 * config/rl78/rl78-c.c : Likewise.
7489 * config/rl78/rl78.c : Likewise.
7490 * config/rs6000/rs6000-c.c : Likewise.
7491 * config/rs6000/rs6000.c : Likewise.
7492 * config/rx/rx.c : Likewise.
7493 * config/s390/s390-c.c : Likewise.
7494 * config/s390/s390.c : Likewise.
7495 * config/sh/sh-c.c : Likewise.
7496 * config/sh/sh-mem.cc : Likewise.
7497 * config/sh/sh.c : Likewise.
7498 * config/sh/sh_optimize_sett_clrt.cc : Likewise.
7499 * config/sh/sh_treg_combine.cc : Likewise.
7500 * config/sol2-c.c : Likewise.
7501 * config/sol2-cxx.c : Likewise.
7502 * config/sol2-stubs.c : Likewise.
7503 * config/sol2.c : Likewise.
7504 * config/sparc/sparc-c.c : Likewise.
7505 * config/sparc/sparc.c : Likewise.
7506 * config/spu/spu-c.c : Likewise.
7507 * config/spu/spu.c : Likewise.
7508 * config/stormy16/stormy16.c : Likewise.
7509 * config/tilegx/mul-tables.c : Likewise.
7510 * config/tilegx/tilegx-c.c : Likewise.
7511 * config/tilegx/tilegx.c : Likewise.
7512 * config/tilepro/mul-tables.c : Likewise.
7513 * config/tilepro/tilepro-c.c : Likewise.
7514 * config/tilepro/tilepro.c : Likewise.
7515 * config/v850/v850-c.c : Likewise.
7516 * config/v850/v850.c : Likewise.
7517 * config/vax/vax.c : Likewise.
7518 * config/visium/visium.c : Likewise.
7519 * config/vms/vms-c.c : Likewise.
7520 * config/vms/vms.c : Likewise.
7521 * config/vxworks.c : Likewise.
7522 * config/winnt-c.c : Likewise.
7523 * config/xtensa/xtensa.c : Likewise.
7524
7525 2015-06-08 Jan Hubicka <hubicka@ucw.cz>
7526
7527 PR lto/65378
7528 * ipa-utils.h (warn_types_mismatch): Update prototype.
7529 * ipa-devirt.c (odr_types_equivalent_p): Add loc1/loc2
7530 parameters.
7531 (type_mismatch_p): New function.
7532 (warn_types_mismatch): Reorg to work better on non-C++ types.
7533 (odr_types_equivalent_p): Add loc1/loc2 parameters.
7534 (add_type_duplicate): Update.
7535
7536 2015-06-08 Tom de Vries <tom@codesourcery.com>
7537
7538 PR rtl-optimization/66444
7539 * postreload.c (reload_combine): Use get_call_reg_set_usage instead of
7540 call_used_regs.
7541
7542 2015-06-08 Richard Biener <rguenther@suse.de>
7543
7544 PR tree-optimization/66422
7545 * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Split
7546 block after inserted gcc_unreachable.
7547
7548 2015-06-08 Nick Clifton <nickc@redhat.com>
7549
7550 * config/rx/rx.c (rx_function_value): Do not promote vector types.
7551 (rx_promote_function_mode): Likewise.
7552 * config/rx/rx.h (LIBCALL_VALUE): Likewise.
7553
7554 2015-06-08 Jakub Jelinek <jakub@redhat.com>
7555
7556 * genattrtab.c (insn_alternatives): Change type from int *
7557 to uint64_t *.
7558 (check_attr_test): Shift ((uint64_t) 1) instead of 1 up.
7559 (get_attr_value): Change type of num_alt to uint64_t.
7560 (compute_alternative_mask): Change return type from
7561 int to uint64_t, shift ((uint64_t) 1) instead of 1 up.
7562 (make_alternative_compare, mk_attr_alt): Change argument type
7563 from int to uint64_t.
7564 (simplify_test_exp): Change type of i from int to uint64_t.
7565 Shift ((uint64_t) 1) instead of 1 up.
7566 (main): Adjust oballocvec first argument from int to uint64_t.
7567 Shift ((uint64_t) 1) instead of 1 up.
7568
7569 2015-06-08 Jan Kratochvil <jan.kratochvil@redhat.com>
7570
7571 PR other/65366
7572 * gdbhooks.py: Import sys.
7573 (intptr): New function. Replace int(...) by intptr(...).
7574
7575 2015-06-08 Richard Biener <rguenther@suse.de>
7576
7577 * tree-vect-stmts.c (vectorizable_load): Compute the pointer
7578 adjustment for gaps at the end of a SLP load group properly.
7579 * tree-vect-slp.c (vect_supported_load_permutation_p): Allow
7580 all permutations we can generate.
7581 (vect_transform_slp_perm_load): Use the correct group-size.
7582
7583 2015-06-08 Marc Glisse <marc.glisse@inria.fr>
7584
7585 * genmatch.c (expr::gen_transform): For conditions, guess the type
7586 from the second operand.
7587
7588 2015-06-08 Tom de Vries <tom@codesourcery.com>
7589
7590 PR tree-optimization/66442
7591 * gimple-iterator.h (gimple_seq_nondebug_singleton_p): Add function.
7592 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Return false
7593 if the loop latch is not a singleton. Use
7594 gimple_seq_nondebug_singleton_p instead of gimple_seq_singleton_p.
7595
7596 2015-06-08 Marek Polacek <polacek@redhat.com>
7597
7598 PR sanitizer/66452
7599 * toplev.c (check_global_declaration): Don't warn about artificial
7600 decls.
7601
7602 2015-06-08 Tom de Vries <tom@codesourcery.com>
7603
7604 PR tree-optimization/66436
7605 * cgraphunit.c (cgraph_node::analyze): Don't dump function to gimple
7606 dump file.
7607 * gimplify.c: Add tree-dump.h include.
7608 (gimplify_function_tree): Dump function to gimple dump file.
7609 * stor-layout.c (finalize_size_functions): Don't dump function to gimple
7610 dump file.
7611
7612 2015-06-08 Tom de Vries <tom@codesourcery.com>
7613
7614 PR tree-optimization/66435
7615 * cgraphunit.c (cgraph_node::add_new_function): Dump message on new
7616 function.
7617
7618 2015-06-06 Jan Hubicka <hubicka@ucw.cz>
7619
7620 * alias.c (get_alias_set): Be ready for TYPE_CANONICAL
7621 of ptr_type_node to not be ptr_to_node.
7622 * tree.c (gimple_types_compatible_p): Do not match TREE_CODE of
7623 TREE_TYPE of pointers.
7624 * gimple-expr.c (useless_type_conversion): Reorder the check for
7625 function pointers and TYPE_CANONICAL.
7626
7627 2015-06-06 John David Anglin <danglin@gcc.gnu.org>
7628
7629 PR bootstrap/66319
7630 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Rearrange builtin
7631 defines. Define _LARGEFILE_SOURCE and _LARGEFILE64_SOURCE for c++.
7632 Define _XOPEN_UNIX and _XOPEN_SOURCE_EXTENDED for c++ if unix95 or
7633 later.
7634 * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Likewise.
7635 Define _INCLUDE_STDC_SOURCE_PRE_199901, _INCLUDE_STDC_SOURCE_199901,
7636 _INCLUDE_XOPEN_SOURCE_PRE_500, _INCLUDE_XOPEN_SOURCE_520,
7637 _INCLUDE_XOPEN_SOURCE_PRE_600 and _INCLUDE_XOPEN_SOURCE_600 for c++
7638 and non iso if unix2003.
7639
7640 2015-06-06 Aldy Hernandez <aldyh@redhat.com>
7641
7642 * dwarf2out.c (gen_lexical_block_die): Initialize stmt_die.
7643
7644 2015-06-06 Richard Sandiford <richard.sandiford@arm.com>
7645
7646 * emit-rtl.c, expr.c, gcse.c, optabs.c, optabs.h, print-rtl.c,
7647 rtl.h, bb-reorder.c, builtins.c, calls.c, cfgbuild.c, cfgexpand.c,
7648 cfgrtl.c, cilk-common.c, config/i386/i386.md, cse.c, dwarf2cfi.c,
7649 except.c, final.c, function.c, gcse-common.c, genemit.c,
7650 haifa-sched.c, ifcvt.c, jump.c, loop-invariant.c, loop-iv.c,
7651 lra-constraints.c, lra.c, reload1.c, resource.c, rtlanal.c,
7652 sched-deps.c, sched-ebb.c, sel-sched-ir.c, sel-sched.c,
7653 shrink-wrap.c, stmt.c, store-motion.c: Replace rtx base types with
7654 more derived ones.
7655
7656 2015-06-06 Mikhail Maltsev <maltsevm@gmail.com>
7657
7658 * combine.c (combine_split_insns): Remove cast.
7659 * config/bfin/bfin.c (hwloop_fail): Add cast in try_split call.
7660 * config/sh/sh.c (sh_try_split_insn_simple): Remove cast.
7661 * config/sh/sh_treg_combine.cc (sh_treg_combine::execute): Add cast.
7662 * emit-rtl.c (try_split): Promote type of trial argument to rtx_insn.
7663 * genemit.c (gen_split): Change return type of generated functions to
7664 rtx_insn.
7665 * genrecog.c (get_failure_return): Use NULL instead of NULL_RTX.
7666 (print_subroutine_start): Promote rtx to rtx_insn in gen_split_* and
7667 gen_peephole2_* functions.
7668 (print_subroutine, main): Likewise.
7669 * recog.c (peephole2_optimize): Remove cast.
7670 (peep2_next_insn): Promote return type to rtx_insn.
7671 * recog.h (peep2_next_insn): Fix prototype.
7672 * rtl.h (try_split, split_insns): Likewise.
7673
7674 2015-06-06 DJ Delorie <dj@redhat.com>
7675
7676 * config/msp430/msp430.c (msp430_asm_integer): Support addition
7677 and subtraction too.
7678
7679 2015-06-05 Kaz Kojima <kkojima@gcc.gnu.org>
7680
7681 PR target/66410
7682 * config/sh/constraints.md (Sid, Ssd): New memory constraints.
7683 * config/sh/sh.md (*mov<mode>): Use Sid and Ssd alternatives
7684 instead of Snd. Disparage Sid/z alternative with '^'.
7685
7686 2015-06-05 Aldy Hernandez <aldyh@redhat.com>
7687
7688 * dwarf2out.c: Remove deferred_locations*.
7689 (dwarf2_debug_hooks): Add early_finish hook.
7690 Remove global_decl hook.
7691 Add early_global_decl and late_global_decl hook.
7692 New global early_dwarf.
7693 New structure set_early_dwarf.
7694 (output_die): Indicate whether a DIE was generated early
7695 when generating assembly with -dA.
7696 (struct limbo_die_struct): Document created_for field.
7697 Remove file_table_last_lookup.
7698 (remove_AT): Return TRUE if successful.
7699 (remove_child_TAG): Clear die_parent.
7700 (reparent_child): New function abstracted from...
7701 (splice_child_die): ...here.
7702 (new_die): ICE if a DIE ends up in limbo too late.
7703 (check_die): New.
7704 (defer_location): Remove.
7705 (add_subscript_info): Reuse DW_TAG_subrange_type if available.
7706 (fill_variable_array_bounds): New.
7707 (decl_start_label): Call fill_variable_array_bounds.
7708 (gen_formal_parameter_die): Rewrite to reuse previously generated
7709 DIEs.
7710 (gen_subprogram_die): Same.
7711 (gen_variable_die): Same.
7712 (gen_const_die): Same.
7713 (gen_label_die): Same.
7714 (gen_lexical_block_die): Same.
7715 (decl_will_get_specification_p): New.
7716 (local_function_static): New.
7717 (gen_struct_or_union_type_die): Fill in variable-length fields.
7718 (gen_typedef_die): Fill in variable-length typedefs.
7719 (gen_tagged_type_die): Gracefully return on error_mark_node.
7720 Handle re-entrancy.
7721 (gen_type_die_with_usage): Handle variable-length types.
7722 Remove duplicate code for ARRAY_TYPE case.
7723 (process_scope_var): Only process imported modules during early
7724 dwarf.
7725 (dwarf2out_early_global_decl): New.
7726 (dwarf2out_late_global_decl): Rename from dwarf2out_global_decl.
7727 (dwarf2out_type_decl): Set early_dwarf while calling
7728 dwarf2out_decl.
7729 (dwarf2out_decl): Verify that we did not recreate a previously
7730 generated DIE.
7731 Do not return on DECL_EXTERNALs in VAR_DECLs.
7732 Abstract some code to local_function_static.
7733 (lookup_filename): Remove use of file_table_last_lookup.
7734 Gracefully exit on missing file_name.
7735 (dwarf2out_finish): Verify limbo list.
7736 Remove deferred_locations_list use.
7737 Move deferred_asm_name and limbo flushing to...
7738 (dwarf2out_early_finish): ...here. New.
7739 (dwarf2out_c_finalize): Remove set of deferred_location_list,
7740 deferred_asm_name, and file_table_last_lookup.
7741 * cgraph.h (referred_to_p): Add default argument.
7742 * cgraphunit.c (referred_to_p): Add and handle include_self
7743 argument.
7744 (analyze_functions): Add first_time argument.
7745 Call check_global_declaration for all symbols.
7746 Call late_global_decl for nodes for moribund nodes.
7747 (finalize_compilation_unit): Add new argument to
7748 analyze_functions.
7749 Call early_global_decl for functions.
7750 Call early_finish debug hook.
7751 * dbxout.c (dbxout_early_global_decl): New.
7752 (dbxout_late_global_decl): New. Adapted from dbxout_global_decl.
7753 (dbx_debug_hooks): Add new hooks.
7754 (xcoff_debug_hooks): Same.
7755 * debug.c (do_nothing_debug_hooks): Add early_finish field.
7756 Add early and late debug hooks.
7757 Remove global_decl hook.
7758 * debug.h (struct gcc_debug_hooks): Add early_finish,
7759 early_global_decl, and late_global_decl fields.
7760 Remove global_decl field.
7761 Document gcc_debug_hooks.
7762 * gengtype.c (output_typename): Remove.
7763 * godump.c (go_early_global_decl): New.
7764 (go_late_global_decl): New.
7765 (go_global_decl): Remove.
7766 (dump_go_spec_init): Remove global_decl. Add
7767 {early,late}_global_decl.
7768 * langhooks-def.h (LANG_HOOKS_WRITE_GLOBALS): Remove.
7769 (LANG_HOOKS_POST_COMPILATION_PARSING_CLEANUPS): New.
7770 * langhooks.c (lhd_warn_unused_global_decl): Adjust comment.
7771 (write_global_declarations): Remove.
7772 (global_decl_processing): New.
7773 * langhooks.h (struct lang_hooks_for_decls): Remove
7774 final_write_globals field.
7775 Add post_compilation_parsing_cleanups field.
7776 * passes.c (rest_of_decl_compilation): Call early_global_decl.
7777 * sdbout.c: Add early and late_global_decl hooks. Remove
7778 sdbout_global_decl hook.
7779 Add early_finish field for sdb_debug_hooks.
7780 (sdbout_global_decl): Remove.
7781 (sdbout_early_global_decl): New.
7782 (sdbout_late_global_decl): New.
7783 * timevar.def (TV_PHASE_LATE_PARSING_CLEANUPS): New.
7784 * toplev.c (check_global_declaration): Rename from
7785 check_global_declaration_1.
7786 Adapt to use symtab infrastructure.
7787 (check_global_declarations): Remove.
7788 (emit_debug_global_declarations): Remove.
7789 (compile_file): Remove call to final_write_globals langhook.
7790 Run the actual compilation process.
7791 Perform any post compilation parser cleanups.
7792 Generate late debug info.
7793 * toplev.h (check_global_declaration): New.
7794 (check_global_declaration_1): Remove.
7795 (check_global_declarations): Remove.
7796 (write_global_declarations): Remove.
7797 (emit_debug_global_declarations): Remove.
7798 (global_decl_processing): New.
7799 * tree-core.h (struct tree_block): Add DIE field.
7800 * tree.h (BLOCK_DIE): New.
7801 * vmsdbgout.c (vmsdbgout_global_decl): Remove function and its use
7802 throughout.
7803 (vmsdbgout_early_global_decl): New.
7804 (vmsdbgout_late_global_decl): New.
7805 Add early_finish debug hook field to vmsdbg_debug_hooks.
7806 Remove vmsdbgout_decl to vmsdbgout_function_decl.
7807 Add early and late_global_decl debug hooks.
7808
7809 2015-06-05 Julian Brown <julian@codesourcery.com>
7810 Sandra Loosemore <sandra@codesourcery.com>
7811
7812 * config/print-sysroot-suffix.sh: Handle MULTILIB_REUSE settings.
7813 * config/t-sysroot-suffix (sysroot-suffix.h): Pass MULTILIB_REUSE
7814 to print-sysroot-suffix.sh script.
7815
7816 2015-06-05 Tom de Vries <tom@codesourcery.com>
7817
7818 merge from gomp4 branch:
7819 2015-05-28 Tom de Vries <tom@codesourcery.com>
7820
7821 PR tree-optimization/65443
7822 * tree-parloops.c (replace_imm_uses, replace_uses_in_bb_by)
7823 (replace_uses_in_bbs_by, transform_to_exit_first_loop_alt)
7824 (try_transform_to_exit_first_loop_alt): New function.
7825 (transform_to_exit_first_loop): Use
7826 try_transform_to_exit_first_loop_alt.
7827
7828 2015-06-05 James Greenhalgh <james.greenhalgh@arm.com>
7829
7830 * builtins.c (expand_builtin_atomic_compare_exchange): Call
7831 emit_cmp_and_jump_insns with the mode of target.
7832
7833 2015-06-05 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
7834
7835 * config/i386/sse.md (sse3_mwait): Swap the operand constriants.
7836
7837 2015-06-04 DJ Delorie <dj@redhat.com>
7838
7839 * config/msp430/msp430.md (movsi_s): New. Special case for
7840 storing a 20-bit symbol into a 32-bit register.
7841 * config/msp430/msp430.c (msp430_subreg): Add support for it.
7842 * config/msp430/predicates.md (msp430_symbol_operand): New.
7843
7844 2015-06-04 Sriraman Tallam <tmsriram@google.com>
7845
7846 * c-family/c-common.c (noplt): New attribute.
7847 (handle_noplt_attribute): New handler.
7848 * calls.c (prepare_call_address): Check for noplt
7849 attribute.
7850 * config/i386/i386.c (ix86_expand_call): Check
7851 for noplt attribute.
7852 (ix86_nopic_noplt_attribute_p): New function.
7853 (ix86_output_call_insn): Output indirect call for non-pic
7854 no plt calls.
7855 * doc/extend.texi (noplt): Document new attribute.
7856 * doc/invoke.texi: Document new attribute.
7857
7858 2015-06-04 Andrew MacLeod <amacleod@redhat.com>
7859
7860 * coretypes.h: Include machmode.h, signop.h, wide-int.h, double-int.h,
7861 real.h, and fixed-value.h when included in host source files.
7862 * double-int.h: Remove redundant #includes listed above.
7863 * fixed-value.h: Likewise.
7864 * real.h: Likewise.
7865 * wide-int.h: Likewise.
7866 * inchash.h: Likewise.
7867 * rtl.h: Add some include files When included from a generator file.
7868 * target.h: Remove wide-int.h and insn-modes.h from the include list.
7869 * internal-fn.h: Don't include coretypes.h.
7870 * alias.c: Adjust includes for restructured coretypes.h.
7871 * asan.c: Likewise.
7872 * attribs.c: Likewise.
7873 * auto-inc-dec.c: Likewise.
7874 * auto-profile.c: Likewise.
7875 * bb-reorder.c: Likewise.
7876 * bt-load.c: Likewise.
7877 * builtins.c: Likewise.
7878 * caller-save.c: Likewise.
7879 * calls.c: Likewise.
7880 * ccmp.c: Likewise.
7881 * cfg.c: Likewise.
7882 * cfganal.c: Likewise.
7883 * cfgbuild.c: Likewise.
7884 * cfgcleanup.c: Likewise.
7885 * cfgexpand.c: Likewise.
7886 * cfghooks.c: Likewise.
7887 * cfgloop.c: Likewise.
7888 * cfgloop.h: Likewise.
7889 * cfgloopanal.c: Likewise.
7890 * cfgloopmanip.c: Likewise.
7891 * cfgrtl.c: Likewise.
7892 * cgraph.c: Likewise.
7893 * cgraphbuild.c: Likewise.
7894 * cgraphclones.c: Likewise.
7895 * cgraphunit.c: Likewise.
7896 * cilk-common.c: Likewise.
7897 * combine-stack-adj.c: Likewise.
7898 * combine.c: Likewise.
7899 * compare-elim.c: Likewise.
7900 * convert.c: Likewise.
7901 * coverage.c: Likewise.
7902 * cppbuiltin.c: Likewise.
7903 * cprop.c: Likewise.
7904 * cse.c: Likewise.
7905 * cselib.c: Likewise.
7906 * data-streamer-in.c: Likewise.
7907 * data-streamer-out.c: Likewise.
7908 * data-streamer.c: Likewise.
7909 * dbxout.c: Likewise.
7910 * dce.c: Likewise.
7911 * ddg.c: Likewise.
7912 * debug.c: Likewise.
7913 * df-core.c: Likewise.
7914 * df-problems.c: Likewise.
7915 * df-scan.c: Likewise.
7916 * df.h: Likewise.
7917 * dfp.c: Likewise.
7918 * dojump.c: Likewise.
7919 * dominance.c: Likewise.
7920 * domwalk.c: Likewise.
7921 * double-int.c: Likewise.
7922 * dse.c: Likewise.
7923 * dumpfile.c: Likewise.
7924 * dwarf2asm.c: Likewise.
7925 * dwarf2cfi.c: Likewise.
7926 * dwarf2out.c: Likewise.
7927 * dwarf2out.h: Likewise.
7928 * emit-rtl.c: Likewise.
7929 * et-forest.c: Likewise.
7930 * except.c: Likewise.
7931 * explow.c: Likewise.
7932 * expmed.c: Likewise.
7933 * expr.c: Likewise.
7934 * final.c: Likewise.
7935 * fixed-value.c: Likewise.
7936 * fold-const.c: Likewise.
7937 * function.c: Likewise.
7938 * fwprop.c: Likewise.
7939 * gcc-plugin.h: Likewise.
7940 * gcse.c: Likewise.
7941 * generic-match-head.c: Likewise.
7942 * ggc-page.c: Likewise.
7943 * gimple-builder.c: Likewise.
7944 * gimple-expr.c: Likewise.
7945 * gimple-fold.c: Likewise.
7946 * gimple-iterator.c: Likewise.
7947 * gimple-low.c: Likewise.
7948 * gimple-match-head.c: Likewise.
7949 * gimple-pretty-print.c: Likewise.
7950 * gimple-ssa-isolate-paths.c: Likewise.
7951 * gimple-ssa-strength-reduction.c: Likewise.
7952 * gimple-streamer-in.c: Likewise.
7953 * gimple-streamer-out.c: Likewise.
7954 * gimple-streamer.h: Likewise.
7955 * gimple-walk.c: Likewise.
7956 * gimple.c: Likewise.
7957 * gimplify-me.c: Likewise.
7958 * gimplify.c: Likewise.
7959 * godump.c: Likewise.
7960 * graph.c: Likewise.
7961 * graphite-blocking.c: Likewise.
7962 * graphite-dependences.c: Likewise.
7963 * graphite-interchange.c: Likewise.
7964 * graphite-isl-ast-to-gimple.c: Likewise.
7965 * graphite-optimize-isl.c: Likewise.
7966 * graphite-poly.c: Likewise.
7967 * graphite-scop-detection.c: Likewise.
7968 * graphite-sese-to-poly.c: Likewise.
7969 * graphite.c: Likewise.
7970 * haifa-sched.c: Likewise.
7971 * hooks.h: Likewise.
7972 * hw-doloop.c: Likewise.
7973 * ifcvt.c: Likewise.
7974 * incpath.c: Likewise.
7975 * init-regs.c: Likewise.
7976 * internal-fn.c: Likewise.
7977 * ipa-chkp.c: Likewise.
7978 * ipa-comdats.c: Likewise.
7979 * ipa-cp.c: Likewise.
7980 * ipa-devirt.c: Likewise.
7981 * ipa-icf-gimple.c: Likewise.
7982 * ipa-icf.c: Likewise.
7983 * ipa-inline-analysis.c: Likewise.
7984 * ipa-inline-transform.c: Likewise.
7985 * ipa-inline.c: Likewise.
7986 * ipa-polymorphic-call.c: Likewise.
7987 * ipa-profile.c: Likewise.
7988 * ipa-prop.c: Likewise.
7989 * ipa-pure-const.c: Likewise.
7990 * ipa-ref.c: Likewise.
7991 * ipa-reference.c: Likewise.
7992 * ipa-split.c: Likewise.
7993 * ipa-utils.c: Likewise.
7994 * ipa-visibility.c: Likewise.
7995 * ipa.c: Likewise.
7996 * ira-build.c: Likewise.
7997 * ira-color.c: Likewise.
7998 * ira-conflicts.c: Likewise.
7999 * ira-costs.c: Likewise.
8000 * ira-emit.c: Likewise.
8001 * ira-lives.c: Likewise.
8002 * ira.c: Likewise.
8003 * jump.c: Likewise.
8004 * langhooks.c: Likewise.
8005 * lcm.c: Likewise.
8006 * loop-doloop.c: Likewise.
8007 * loop-init.c: Likewise.
8008 * loop-invariant.c: Likewise.
8009 * loop-iv.c: Likewise.
8010 * loop-unroll.c: Likewise.
8011 * lower-subreg.c: Likewise.
8012 * lra-assigns.c: Likewise.
8013 * lra-coalesce.c: Likewise.
8014 * lra-constraints.c: Likewise.
8015 * lra-eliminations.c: Likewise.
8016 * lra-lives.c: Likewise.
8017 * lra-remat.c: Likewise.
8018 * lra-spills.c: Likewise.
8019 * lra.c: Likewise.
8020 * lto-cgraph.c: Likewise.
8021 * lto-compress.c: Likewise.
8022 * lto-opts.c: Likewise.
8023 * lto-section-in.c: Likewise.
8024 * lto-section-out.c: Likewise.
8025 * lto-streamer-in.c: Likewise.
8026 * lto-streamer-out.c: Likewise.
8027 * lto-streamer.c: Likewise.
8028 * mcf.c: Likewise.
8029 * mode-switching.c: Likewise.
8030 * modulo-sched.c: Likewise.
8031 * omega.c: Likewise.
8032 * omp-low.c: Likewise.
8033 * optabs.c: Likewise.
8034 * opts-global.c: Likewise.
8035 * passes.c: Likewise.
8036 * plugin.c: Likewise.
8037 * postreload-gcse.c: Likewise.
8038 * postreload.c: Likewise.
8039 * predict.c: Likewise.
8040 * print-rtl.c: Likewise.
8041 * print-tree.c: Likewise.
8042 * profile.c: Likewise.
8043 * real.c: Likewise.
8044 * realmpfr.c: Likewise.
8045 * realmpfr.h: Likewise.
8046 * recog.c: Likewise.
8047 * ree.c: Likewise.
8048 * reg-stack.c: Likewise.
8049 * regcprop.c: Likewise.
8050 * reginfo.c: Likewise.
8051 * regrename.c: Likewise.
8052 * regs.h: Likewise.
8053 * regstat.c: Likewise.
8054 * reload.c: Likewise.
8055 * reload1.c: Likewise.
8056 * reorg.c: Likewise.
8057 * resource.c: Likewise.
8058 * rtl-chkp.c: Likewise.
8059 * rtlanal.c: Likewise.
8060 * rtlhooks.c: Likewise.
8061 * sanopt.c: Likewise.
8062 * sched-deps.c: Likewise.
8063 * sched-ebb.c: Likewise.
8064 * sched-rgn.c: Likewise.
8065 * sched-vis.c: Likewise.
8066 * sdbout.c: Likewise.
8067 * sel-sched-dump.c: Likewise.
8068 * sel-sched-ir.c: Likewise.
8069 * sel-sched.c: Likewise.
8070 * sese.c: Likewise.
8071 * shrink-wrap.c: Likewise.
8072 * shrink-wrap.h: Likewise.
8073 * simplify-rtx.c: Likewise.
8074 * stack-ptr-mod.c: Likewise.
8075 * statistics.c: Likewise.
8076 * stmt.c: Likewise.
8077 * stor-layout.c: Likewise.
8078 * store-motion.c: Likewise.
8079 * stringpool.c: Likewise.
8080 * symtab.c: Likewise.
8081 * target-globals.c: Likewise.
8082 * targhooks.c: Likewise.
8083 * toplev.c: Likewise.
8084 * tracer.c: Likewise.
8085 * trans-mem.c: Likewise.
8086 * tree-affine.c: Likewise.
8087 * tree-affine.h: Likewise.
8088 * tree-browser.c: Likewise.
8089 * tree-call-cdce.c: Likewise.
8090 * tree-cfg.c: Likewise.
8091 * tree-cfgcleanup.c: Likewise.
8092 * tree-chkp-opt.c: Likewise.
8093 * tree-chkp.c: Likewise.
8094 * tree-chrec.c: Likewise.
8095 * tree-complex.c: Likewise.
8096 * tree-data-ref.c: Likewise.
8097 * tree-dfa.c: Likewise.
8098 * tree-diagnostic.c: Likewise.
8099 * tree-dump.c: Likewise.
8100 * tree-eh.c: Likewise.
8101 * tree-emutls.c: Likewise.
8102 * tree-if-conv.c: Likewise.
8103 * tree-inline.c: Likewise.
8104 * tree-into-ssa.c: Likewise.
8105 * tree-iterator.c: Likewise.
8106 * tree-loop-distribution.c: Likewise.
8107 * tree-nested.c: Likewise.
8108 * tree-nrv.c: Likewise.
8109 * tree-object-size.c: Likewise.
8110 * tree-outof-ssa.c: Likewise.
8111 * tree-parloops.c: Likewise.
8112 * tree-phinodes.c: Likewise.
8113 * tree-predcom.c: Likewise.
8114 * tree-pretty-print.c: Likewise.
8115 * tree-pretty-print.h: Likewise.
8116 * tree-profile.c: Likewise.
8117 * tree-scalar-evolution.c: Likewise.
8118 * tree-sra.c: Likewise.
8119 * tree-ssa-address.c: Likewise.
8120 * tree-ssa-alias.c: Likewise.
8121 * tree-ssa-ccp.c: Likewise.
8122 * tree-ssa-coalesce.c: Likewise.
8123 * tree-ssa-copy.c: Likewise.
8124 * tree-ssa-copyrename.c: Likewise.
8125 * tree-ssa-dce.c: Likewise.
8126 * tree-ssa-dom.c: Likewise.
8127 * tree-ssa-dse.c: Likewise.
8128 * tree-ssa-forwprop.c: Likewise.
8129 * tree-ssa-ifcombine.c: Likewise.
8130 * tree-ssa-live.c: Likewise.
8131 * tree-ssa-loop-ch.c: Likewise.
8132 * tree-ssa-loop-im.c: Likewise.
8133 * tree-ssa-loop-ivcanon.c: Likewise.
8134 * tree-ssa-loop-ivopts.c: Likewise.
8135 * tree-ssa-loop-manip.c: Likewise.
8136 * tree-ssa-loop-niter.c: Likewise.
8137 * tree-ssa-loop-prefetch.c: Likewise.
8138 * tree-ssa-loop-unswitch.c: Likewise.
8139 * tree-ssa-loop.c: Likewise.
8140 * tree-ssa-loop.h: Likewise.
8141 * tree-ssa-math-opts.c: Likewise.
8142 * tree-ssa-operands.c: Likewise.
8143 * tree-ssa-phiopt.c: Likewise.
8144 * tree-ssa-phiprop.c: Likewise.
8145 * tree-ssa-pre.c: Likewise.
8146 * tree-ssa-propagate.c: Likewise.
8147 * tree-ssa-reassoc.c: Likewise.
8148 * tree-ssa-sccvn.c: Likewise.
8149 * tree-ssa-scopedtables.c: Likewise.
8150 * tree-ssa-sink.c: Likewise.
8151 * tree-ssa-strlen.c: Likewise.
8152 * tree-ssa-structalias.c: Likewise.
8153 * tree-ssa-tail-merge.c: Likewise.
8154 * tree-ssa-ter.c: Likewise.
8155 * tree-ssa-threadedge.c: Likewise.
8156 * tree-ssa-threadupdate.c: Likewise.
8157 * tree-ssa-uncprop.c: Likewise.
8158 * tree-ssa-uninit.c: Likewise.
8159 * tree-ssa.c: Likewise.
8160 * tree-ssanames.c: Likewise.
8161 * tree-stdarg.c: Likewise.
8162 * tree-streamer-in.c: Likewise.
8163 * tree-streamer-out.c: Likewise.
8164 * tree-streamer.c: Likewise.
8165 * tree-switch-conversion.c: Likewise.
8166 * tree-tailcall.c: Likewise.
8167 * tree-vect-data-refs.c: Likewise.
8168 * tree-vect-generic.c: Likewise.
8169 * tree-vect-loop-manip.c: Likewise.
8170 * tree-vect-loop.c: Likewise.
8171 * tree-vect-patterns.c: Likewise.
8172 * tree-vect-slp.c: Likewise.
8173 * tree-vect-stmts.c: Likewise.
8174 * tree-vectorizer.c: Likewise.
8175 * tree-vrp.c: Likewise.
8176 * tree.c: Likewise.
8177 * tsan.c: Likewise.
8178 * ubsan.c: Likewise.
8179 * valtrack.c: Likewise.
8180 * value-prof.c: Likewise.
8181 * var-tracking.c: Likewise.
8182 * varasm.c: Likewise.
8183 * varpool.c: Likewise.
8184 * vmsdbgout.c: Likewise.
8185 * vtable-verify.c: Likewise.
8186 * web.c: Likewise.
8187 * wide-int-print.cc: Likewise.
8188 * wide-int-print.h: Likewise.
8189 * wide-int.cc: Likewise.
8190 * xcoffout.c: Likewise.
8191 * config/aarch64/aarch64-builtins.c: Likewise.
8192 * config/aarch64/aarch64.c: Likewise.
8193 * config/aarch64/cortex-a57-fma-steering.c: Likewise.
8194 * config/alpha/alpha.c: Likewise.
8195 * config/arc/arc.c: Likewise.
8196 * config/arm/aarch-common.c: Likewise.
8197 * config/arm/arm-builtins.c: Likewise.
8198 * config/arm/arm-c.c: Likewise.
8199 * config/arm/arm.c: Likewise.
8200 * config/avr/avr-c.c: Likewise.
8201 * config/avr/avr-log.c: Likewise.
8202 * config/avr/avr.c: Likewise.
8203 * config/bfin/bfin.c: Likewise.
8204 * config/c6x/c6x.c: Likewise.
8205 * config/cr16/cr16.c: Likewise.
8206 * config/cris/cris.c: Likewise.
8207 * config/darwin-c.c: Likewise.
8208 * config/darwin.c: Likewise.
8209 * config/default-c.c: Likewise.
8210 * config/epiphany/epiphany.c: Likewise.
8211 * config/epiphany/mode-switch-use.c: Likewise.
8212 * config/epiphany/resolve-sw-modes.c: Likewise.
8213 * config/fr30/fr30.c: Likewise.
8214 * config/frv/frv.c: Likewise.
8215 * config/ft32/ft32.c: Likewise.
8216 * config/glibc-c.c: Likewise.
8217 * config/h8300/h8300.c: Likewise.
8218 * config/i386/i386-c.c: Likewise.
8219 * config/i386/i386.c: Likewise.
8220 * config/i386/msformat-c.c: Likewise.
8221 * config/i386/winnt-cxx.c: Likewise.
8222 * config/i386/winnt-stubs.c: Likewise.
8223 * config/i386/winnt.c: Likewise.
8224 * config/ia64/ia64-c.c: Likewise.
8225 * config/ia64/ia64.c: Likewise.
8226 * config/iq2000/iq2000.c: Likewise.
8227 * config/lm32/lm32.c: Likewise.
8228 * config/m32c/m32c-pragma.c: Likewise.
8229 * config/m32c/m32c.c: Likewise.
8230 * config/m32r/m32r.c: Likewise.
8231 * config/m68k/m68k.c: Likewise.
8232 * config/mcore/mcore.c: Likewise.
8233 * config/mep/mep-pragma.c: Likewise.
8234 * config/mep/mep.c: Likewise.
8235 * config/microblaze/microblaze-c.c: Likewise.
8236 * config/microblaze/microblaze.c: Likewise.
8237 * config/mips/mips.c: Likewise.
8238 * config/mmix/mmix.c: Likewise.
8239 * config/mn10300/mn10300.c: Likewise.
8240 * config/moxie/moxie.c: Likewise.
8241 * config/msp430/msp430-c.c: Likewise.
8242 * config/msp430/msp430.c: Likewise.
8243 * config/nds32/nds32-cost.c: Likewise.
8244 * config/nds32/nds32-fp-as-gp.c: Likewise.
8245 * config/nds32/nds32-intrinsic.c: Likewise.
8246 * config/nds32/nds32-isr.c: Likewise.
8247 * config/nds32/nds32-md-auxiliary.c: Likewise.
8248 * config/nds32/nds32-memory-manipulation.c: Likewise.
8249 * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
8250 * config/nds32/nds32-predicates.c: Likewise.
8251 * config/nds32/nds32.c: Likewise.
8252 * config/nios2/nios2.c: Likewise.
8253 * config/nvptx/nvptx.c: Likewise.
8254 * config/pa/pa.c: Likewise.
8255 * config/pdp11/pdp11.c: Likewise.
8256 * config/rl78/rl78-c.c: Likewise.
8257 * config/rl78/rl78.c: Likewise.
8258 * config/rs6000/rs6000-c.c: Likewise.
8259 * config/rs6000/rs6000.c: Likewise.
8260 * config/rx/rx.c: Likewise.
8261 * config/s390/s390-c.c: Likewise.
8262 * config/s390/s390.c: Likewise.
8263 * config/sh/sh-c.c: Likewise.
8264 * config/sh/sh-mem.cc: Likewise.
8265 * config/sh/sh.c: Likewise.
8266 * config/sh/sh_optimize_sett_clrt.cc: Likewise.
8267 * config/sh/sh_treg_combine.cc: Likewise.
8268 * config/sol2-c.c: Likewise.
8269 * config/sol2-cxx.c: Likewise.
8270 * config/sol2-stubs.c: Likewise.
8271 * config/sol2.c: Likewise.
8272 * config/sparc/sparc-c.c: Likewise.
8273 * config/sparc/sparc.c: Likewise.
8274 * config/spu/spu-c.c: Likewise.
8275 * config/spu/spu.c: Likewise.
8276 * config/stormy16/stormy16.c: Likewise.
8277 * config/tilegx/mul-tables.c: Likewise.
8278 * config/tilegx/tilegx-c.c: Likewise.
8279 * config/tilegx/tilegx.c: Likewise.
8280 * config/tilepro/mul-tables.c: Likewise.
8281 * config/tilepro/tilepro-c.c: Likewise.
8282 * config/tilepro/tilepro.c: Likewise.
8283 * config/v850/v850-c.c: Likewise.
8284 * config/v850/v850.c: Likewise.
8285 * config/vax/vax.c: Likewise.
8286 * config/visium/visium.c: Likewise.
8287 * config/vms/vms-c.c: Likewise.
8288 * config/vms/vms.c: Likewise.
8289 * config/vxworks.c: Likewise.
8290 * config/winnt-c.c: Likewise.
8291 * config/xtensa/xtensa.c: Likewise.
8292 * common/config/bfin/bfin-common.c: Likewise.
8293
8294 2015-06-04 Jan Hubicka <hubicka@ucw.cz>
8295
8296 * tree.h (tree_code_for_canonical_type_merging): New function.
8297 * tree.c (gimple_canonical_types_compatible_p): Use
8298 tree_code_for_canonical_type_merging..
8299
8300 2015-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8301
8302 PR c++/66192
8303 PR target/66200
8304 * doc/tm.texi: Regenerate.
8305 * doc/tm.texi.in (TARGET_RELAXED_ORDERING): Delete.
8306 * target.def (TARGET_RELAXED_ORDERING): Likewise.
8307 * config/alpha/alpha.c (TARGET_RELAXED_ORDERING): Likewise.
8308 * config/ia64/ia64.c (TARGET_RELAXED_ORDERING): Likewise.
8309 * config/rs6000/rs6000.c (TARGET_RELAXED_ORDERING): Likewise.
8310 * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Likewise.
8311 * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
8312 * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Likewise.
8313 * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Likewise.
8314
8315 2015-06-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8316
8317 * config/aarch64/aarch64.c (aarch64_override_options): Unconditionally
8318 register fma steering pass.
8319 * config/aarch64/cortex-a57-fma-steering.c (gate): Add gating on
8320 AARCH64_TUNE_FMA_STEERING.
8321
8322 2015-06-03 Jan Hubicka <hubicka@ucw.cz>
8323
8324 * tree.c (verify_type_variant): Verify that type and variant is
8325 compatible.
8326 (gimple_canonical_types_compatible_p): Look for main variants.
8327
8328 2015-06-03 Michael Meissner <meissner@linux.vnet.ibm.com>
8329
8330 * config.gcc (powerpc*-*-*): Add support for a new configure
8331 option --with-advance-toolchain=<xxx> which overrides using the
8332 default header files, libraries and dynamic linker.
8333
8334 * config/rs6000/linux64.h (SUBSUBTARGET_EXTRA_SPECS): Add new
8335 specs to support the configure --with-advance-toolchain=<xxx>
8336 option.
8337 (INCLUDE_EXTRA_SPEC): Likewise.
8338 (LINK_OS_EXTRA_SPEC32): Likewise.
8339 (LINK_OK_EXTRA_SPEC64): Likewise.
8340 (LINK_OS_NEW_DTAGS_SPEC): Likewise.
8341 (DYNAMIC_LINKER_PREFIX): Likewise.
8342 (CPP_OS_DEFAULT_SPEC): Use the new specs for providing advance
8343 toolchain support.
8344 (GLIBC_DYNAMIC_LINKER32): Likewise.
8345 (GLIBC_DYNAMIC_LINKER64): Likewise.
8346 (LINK_OS_LINUX_SPEC32): Likewise.
8347 (LINK_OS_LINUX_SPEC64): Likewise.
8348
8349 * doc/install.texi (--enable-advance-toolchain=<xx>): Document new
8350 configuration option.
8351
8352 2015-06-03 Uros Bizjak <ubizjak@gmail.com>
8353
8354 PR target/66275
8355 * config/i386/i386.c (ix86_function_arg_regno): Use ix86_cfun_abi
8356 to determine current function ABI.
8357 (ix86_function_value_regno_p): Ditto.
8358
8359 2015-06-03 Martin Liska <mliska@suse.cz>
8360
8361 * alloc-pool.h (struct pool_usage): Correct GNU coding style.
8362 * bitmap.h (struct bitmap_usage): Likewise.
8363 * ggc-common.c (struct ggc_usage): Likewise.
8364 * mem-stats.h (struct mem_location): Likewise.
8365 (struct mem_usage): Likewise.
8366 * vec.c (struct vec_usage): Likewise.
8367
8368 2015-06-03 Benigno B. Junior <bbj@gentoo.org>
8369
8370 * config/netbsd-elf.h (NETBSD_LINK_SPEC_ELF): Turn -symbolic into
8371 -Bsymbolic.
8372
8373 2015-06-02 Andres Tiraboschi <andres.tiraboschi@tallertechnologies.com>
8374
8375 * doc/plugins.texi (enum plugin_event): New event.
8376 * plugin.c (register_callback): Handle PLUGIN_START_PARSE_FUNCTION
8377 and PLUGIN_FINISH_FUNCTION.
8378 * plugin.def (PLUGIN_START_PARSE_FUNCTION): Add plugin event
8379 (PLUGIN_FINISH_PARSE_FUNCTION): Likewise.
8380
8381 2015-06-03 Richard Biener <rguenther@suse.de>
8382
8383 * tree-vect-data-refs.c (vect_analyze_group_access): Properly
8384 compute GROUP_GAP for the first element.
8385 * tree-vect-slp.c (vect_build_slp_tree_1): Remove restriction
8386 on in-group gaps.
8387
8388 2015-06-03 Nick Clifton <nickc@redhat.com>
8389
8390 * config/rl78/rl78-real.md: Add peepholes to avoid a register
8391 copy when calling a function.
8392 * config/rl78/rl78.c (need_to_save): Do not push the frame
8393 pointer in an interrupt handler prologue if it is never used.
8394
8395 2015-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8396
8397 * ifcvt (end_ifcvt_sequence): Fix typo in comment above.
8398
8399 2015-06-03 Ilya Enkovich <ilya.enkovich@intel.com>
8400
8401 * ipa-chkp.c (chkp_maybe_create_clone): Create alias
8402 reference when cloning alias node.
8403
8404 2015-06-03 Martin Liska <mliska@suse.cz>
8405
8406 * alloc-pool.h (struct pool_usage): Correct space padding.
8407 * ggc-page.c (ggc_print_statistics): Align columns in a report.
8408 * mem-stats.h (struct mem_usage): Add argument to print_dash_line.
8409 * tree.c (dump_tree_statistics): Align columns in a report.
8410
8411 2015-06-03 Martin Liska <mliska@suse.cz>
8412
8413 * alloc-pool.c (allocate_pool_descriptor): Remove.
8414 (struct pool_output_info): Likewise.
8415 (print_alloc_pool_statistics): Likewise.
8416 (dump_alloc_pool_statistics): Likewise.
8417 * alloc-pool.h (struct pool_usage): New struct.
8418 (pool_allocator::initialize): Change usage of memory statistics
8419 to a new interface.
8420 (pool_allocator::release): Likewise.
8421 (pool_allocator::allocate): Likewise.
8422 (pool_allocator::remove): Likewise.
8423 * mem-stats-traits.h (enum mem_alloc_origin): Add new enum value
8424 for a pool allocator.
8425 * mem-stats.h (struct mem_location): Add new ctor.
8426 (struct mem_usage): Add counter for number of
8427 instances.
8428 (mem_alloc_description::register_descriptor): New overload of
8429 * mem-stats.h (mem_location::to_string): New function.
8430 * bitmap.h (struct bitmap_usage): Use this new function.
8431 * ggc-common.c (struct ggc_usage): Likewise.
8432 the function.
8433
8434 2015-06-03 Richard Sandiford <richard.sandiford@arm.com>
8435
8436 * defaults.h (SWITCHABLE_TARGET, TARGET_SUPPORTS_WIDE_INT): Move out
8437 of GCC_INSN_FLAGS_H block.
8438
8439 2015-06-03 Andrew Bennett <andrew.bennett@imgtec.com>
8440
8441 * explow.c (plus_constant): Update check after force_const_mem call
8442 to see if the value returned is not a NULL_RTX.
8443
8444 2015-06-03 Ilya Enkovich <ilya.enkovich@intel.com>
8445
8446 * ipa.c (symbol_table::remove_unreachable_nodes): Don't
8447 remove instumentation thunks calling reachable functions.
8448 * lto-cgraph.c (output_refs): Always output IPA_REF_CHKP.
8449 * lto/lto-partition.c (privatize_symbol_name_1): New.
8450 (privatize_symbol_name): Privatize both decl and orig_decl
8451 names for instrumented functions.
8452 * cgraph.c (cgraph_node::verify_node): Add transparent
8453 alias chain check for instrumented node.
8454
8455 2015-06-03 Marek Polacek <polacek@redhat.com>
8456
8457 PR c/64223
8458 PR c/29358
8459 * tree.c (attribute_value_equal): Handle attribute format.
8460 (cmp_attrib_identifiers): Factor out of lookup_ident_attribute.
8461
8462 2015-06-03 Richard Biener <rguenther@suse.de>
8463
8464 PR tree-optimization/63916
8465 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
8466 Forward-propagate non-invariant addresses by splicing their
8467 reference ops if the result isn't going to be used by PRE.
8468 (vn_reference_lookup_3): Remove pointless assert.
8469
8470 2015-06-03 Richard Biener <rguenther@suse.de>
8471
8472 PR tree-optimization/66375
8473 * tree-scalar-evolution.c (follow_ssa_edge_binary): First
8474 add to the evolution before following SSA edges.
8475
8476 2015-06-03 Bin Cheng <bin.cheng@arm.com>
8477
8478 * tree-ssa-loop-ivopts.c (dump_iv): New parameter.
8479 (dump_use, dump_cand, find_induction_variables): Pass new argument
8480 to dump_iv.
8481 (record_use): Preserve the ssa name information in IV.
8482
8483 2015-06-03 Richard Sandiford <richard.sandiford@arm.com>
8484
8485 * genpreds.c (mark_mode_tests): Mark all MATCH_CODEs as
8486 NO_MODE_TEST.
8487 (add_mode_tests): Don't add mode tests if the predicate only
8488 accepts scalar constant integers. Otherwise, allow the mode
8489 of "op" to be VOIDmode if the predicate does accept such integers.
8490
8491 2015-06-02 Jim Wilson <jim.wilson@linaro.org>
8492
8493 PR target/66258
8494 * config/aarch64/aarch64.c (aarch64_function_value_regno_p): Change
8495 !TARGET_GENERAL_REGS_ONLY to TARGET_FLOAT.
8496 (aarch64_secondary_reload): Likewise
8497 (aarch64_expand_builtin_va_start): Change TARGET_GENERAL_REGS_ONLY
8498 to !TARGET_FLOAT.
8499 (aarch64_gimplify_va_arg_expr, aarch64_setup_incoming_varargs):
8500 Likewise.
8501
8502 2015-06-03 Kugan Vivekanandarajah <kuganv@linaro.org>
8503 Zhenqiang Chen <zhenqiang.chen@linaro.org>
8504
8505 PR target/65768
8506 * cprop.c (try_replace_reg): Check cost of constants before propagating.
8507
8508 2015-06-02 Michael Meissner <meissner@linux.vnet.ibm.com>
8509
8510 * config/rs6000/rs6000-modes.def (IFmode): Define IFmode to
8511 provide access to the IBM extended double floating point mode if
8512 long double is IEEE 128-bit floating point.
8513 (KFmode): Define KFmode to provide access to IEEE 128-bit floating
8514 point if long double is the IBM extended double type.
8515
8516 * config/rs6000/rs6000.opt (-mfloat128-none): New switches to
8517 enable adding IEEE 128-bit floating point support.
8518 (-mfloat128-software): Likewise.
8519 (-mfloat128-sw): Likewise.
8520
8521 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Do not allow
8522 128-bit floating point types to occupy any register if
8523 -mlong-double-64. Do not allow use of IFmode/KFmode unless
8524 -mfloat128-software is enabled.
8525 (rs6000_debug_reg_global): Add IEEE 128-bit floating point debug
8526 support.
8527 (rs6000_option_override_internal): Add -mfloat128-* support.
8528 (rs6000_init_builtins): Setup __ibm128 and __float128 type modes.
8529
8530 * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add ibm128
8531 and float128 type nodes.
8532 (ieee128_float_type_node): Likewise.
8533 (ibm128_float_type_node): Likewise.
8534
8535 2015-06-02 Szabolcs Nagy <szabolcs.nagy@arm.com>
8536
8537 PR target/66136
8538 * config/aarch64/geniterators.sh: Rewrite in awk.
8539
8540 2015-06-02 Martin Liska <mliska@suse.cz>
8541
8542 * alloc-pool.h (pool_allocator::pool_allocator): Set implicit
8543 values to avoid -Wmaybe-uninitialized errors.
8544
8545 2015-06-02 Richard Biener <rguenther@suse.de>
8546
8547 PR debug/65549
8548 * dwarf2out.c (lookup_context_die): New function.
8549 (resolve_addr): Avoid forcing a full DIE for the
8550 target of a DW_TAG_GNU_call_site during late compilation.
8551 Instead create a stub DIE without a type if we have a
8552 context DIE present.
8553
8554 2015-06-02 Uros Bizjak <ubizjak@gmail.com>
8555
8556 * df-scan.c (df_scan_start_dump): Add space between regno and regname.
8557
8558 2015-06-02 Bin Cheng <bin.cheng@arm.com>
8559
8560 PR tree-optimization/48052
8561 * cfgloop.h (struct control_iv): New.
8562 (struct loop): New field control_ivs.
8563 * tree-ssa-loop-niter.c : Include "stor-layout.h".
8564 (number_of_iterations_lt): Set no_overflow information.
8565 (number_of_iterations_exit): Init control iv in niter struct.
8566 (record_control_iv): New.
8567 (estimate_numbers_of_iterations_loop): Call record_control_iv.
8568 (loop_exits_before_overflow): New. Interface factored out of
8569 scev_probably_wraps_p.
8570 (scev_probably_wraps_p): Factor loop niter related code into
8571 loop_exits_before_overflow.
8572 (free_numbers_of_iterations_estimates_loop): Free control ivs.
8573 * tree-ssa-loop-niter.h (free_loop_control_ivs): New.
8574
8575 2015-06-02 Eric Botcazou <ebotcazou@adacore.com>
8576
8577 * gimplify.c (gimplify_modify_expr): Do not create a DECL_DEBUG_EXPR if
8578 the target doesn't belong to the current function.
8579
8580 2015-06-02 Marek Polacek <polacek@redhat.com>
8581
8582 PR middle-end/66345
8583 * gimple-fold.c (gimple_fold_builtin_snprintf): Return false if
8584 get_maxval_strlen does not produce an INTEGER_CST.
8585
8586 2015-06-02 Richard Sandiford <richard.sandiford@arm.com>
8587
8588 * config/arc/constraints.md: Use lower-case names in match_code.
8589 * config/mmix/constraints.md: Likewise.
8590
8591 2015-06-02 Richard Biener <rguenther@suse.de>
8592
8593 PR tree-optimization/65961
8594 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove bogus
8595 check and clarify dump message.
8596 (vect_build_slp_tree): If all children are built up from scalars
8597 build up the parent from scalars instead.
8598 * tree-vect-stmts.c (vect_is_simple_use): Cleanup.
8599
8600 2015-06-02 Jan Kratochvil <jan.kratochvil@redhat.com>
8601
8602 PR other/65366
8603 * gdbhooks.py: Use int(...) instead of long(...). Use print(...)
8604 instead of print ... .
8605
8606 2015-06-02 Alan Modra <amodra@gmail.com>
8607
8608 * config/rs6000/vsx.md (vsx_extract_v4sf): Revert accidental
8609 2014-08-11 change.
8610
8611 2015-06-02 Bin Cheng <bin.cheng@arm.com>
8612
8613 PR tree-optimization/52563
8614 PR tree-optimization/62173
8615 * tree-ssa-loop-ivopts.c (struct iv): New field. Reorder fields.
8616 (alloc_iv, set_iv): New parameter.
8617 (determine_biv_step): Delete.
8618 (find_bivs): Inline original determine_biv_step. Pass new
8619 argument to set_iv.
8620 (idx_find_step): Use no_overflow information for conversion.
8621 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): Let
8622 resolve_mixers handle folded_casts.
8623 (instantiate_scev_name): Change bool parameter to bool pointer.
8624 (instantiate_scev_poly, instantiate_scev_binary): Ditto.
8625 (instantiate_array_ref, instantiate_scev_not): Ditto.
8626 (instantiate_scev_3, instantiate_scev_2): Ditto.
8627 (instantiate_scev_1, instantiate_scev_r): Ditto.
8628 (instantiate_scev_convert, ): Change parameter. Pass argument
8629 to chrec_convert_aggressive.
8630 (instantiate_scev): Change argument.
8631 (resolve_mixers): New parameter and set it.
8632 (scev_const_prop): New argument.
8633 * tree-scalar-evolution.h (resolve_mixers): New parameter.
8634 * tree-chrec.c (convert_affine_scev): Call chrec_convert instead
8635 of chrec_conert_1.
8636 (chrec_convert): New parameter. Move definition below.
8637 (chrec_convert_aggressive): New parameter and set it. Call
8638 convert_affine_scev.
8639 * tree-chrec.h (chrec_convert): New parameter.
8640 (chrec_convert_aggressive): Ditto.
8641
8642 2015-06-01 Eric Botcazou <ebotcazou@adacore.com>
8643
8644 * gimplify.c (gimplify_modify_expr_rhs): Use simple test on the size.
8645 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Do not remove
8646 the LHS of a no-return call if its type has variable size.
8647 * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
8648 * tree-cfg.c (verify_gimple_call): Accept these no-return calls.
8649
8650 2015-06-01 Andreas Tobler <andreast@gcc.gnu.org>
8651
8652 * read-rtl.c: Adapt to use HAVE_DECL_ATOLL instead of HAVE_ATOLL.
8653 * config.in: Regenerate.
8654
8655 2015-06-01 Yuri Rumyantsev <ysrumyan@gmail.com>
8656
8657 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
8658 consecutive accesses within outer-loop with force_vectorize
8659 for references with zero step in inner-loop.
8660
8661 2015-06-01 Vidya Praveen <vidyapraveen@arm.com>
8662
8663 * Makefile.in: Pick up gcov-dump dependencies from gcc/ directory
8664 rather than from gcc/build directory.
8665
8666 2015-06-01 Matthew Wahab <matthew.wahab@arm.com>
8667
8668 PR target/65697
8669 * config/aarch64/aarch64.c (aarch64_split_compare_and_swap): Check
8670 for __sync memory models, emit initial loads and final barriers as
8671 appropriate.
8672
8673 2015-06-01 Matthew Wahab <matthew.wahab@arm.com>
8674
8675 PR target/65697
8676 * config/aarch64/aarch64.c (aarch64_emit_post_barrier):New.
8677 (aarch64_split_atomic_op): Check for __sync memory models, emit
8678 appropriate initial loads and final barriers.
8679
8680 2015-06-01 Vidya Praveen <vidyapraveen@arm.com>
8681
8682 * Makefile.in: Fix gcov dependencies that should
8683 not point to a build folder.
8684
8685 2015-06-01 Richard Biener <rguenther@suse.de>
8686
8687 Revert
8688 2015-05-29 Richard Biener <rguenther@suse.de>
8689
8690 PR tree-optimization/66314
8691 * tree-ssa-threadupdate.c (create_block_for_threading): Add
8692 parameter that says which loop the new block belongs to.
8693 (ssa_create_duplicates): Blocks duplicated for the threaded
8694 path belong to the loop of the thread destination.
8695
8696 2015-06-01 Martin Liska <mliska@suse.cz>
8697
8698 * sched-deps.c: Include pool-alloc.h before
8699 cselib.h header file is included.
8700
8701 2015-06-01 Richard Biener <rguenther@suse.de>
8702
8703 * tree-ssa-structalias.c (ipa_pta_execute): Handle address-taken
8704 functions.
8705
8706 2015-06-01 Martin Liska <mliska@suse.cz>
8707
8708 * alloc-pool.h: Add ATTRIBUTE_UNUSED for
8709 a function local variable.
8710
8711 2015-06-01 Martin Liska <mliska@suse.cz>
8712
8713 * alloc-pool.c (create_alloc_pool): Remove.
8714 (empty_alloc_pool): Likewise.
8715 (free_alloc_pool): Likewise.
8716 (free_alloc_pool_if_empty): Likewise.
8717 (pool_alloc): Likewise.
8718 (pool_free): Likewise.
8719 * alloc-pool.h: Remove old declarations.
8720
8721 2015-06-01 Martin Liska <mliska@suse.cz>
8722
8723 * ira-build.c (initiate_allocnos): Use new type-based pool allocator.
8724 (ira_create_object): Likewise.
8725 (ira_create_allocno): Likewise.
8726 (ira_create_live_range): Likewise.
8727 (copy_live_range): Likewise.
8728 (ira_finish_live_range): Likewise.
8729 (ira_free_allocno_costs): Likewise.
8730 (finish_allocno): Likewise.
8731 (finish_allocnos): Likewise.
8732 (initiate_prefs): Likewise.
8733 (ira_create_pref): Likewise.
8734 (finish_pref): Likewise.
8735 (finish_prefs): Likewise.
8736 (initiate_copies): Likewise.
8737 (ira_create_copy): Likewise.
8738 (finish_copy): Likewise.
8739 (finish_copies): Likewise.
8740 (finish_prefs): Likewise.
8741
8742 2015-06-01 Martin Liska <mliska@suse.cz>
8743
8744 * ipa-cp.c (ipcp_value::add_source): Use new type-based pool allocator.
8745 (allocate_and_init_ipcp_value): Likewise.
8746 (ipcp_lattice::add_value): Likewise.
8747 (merge_agg_lats_step): Likewise.
8748 (ipcp_driver): Likewise.
8749 * ipa-prop.c (ipa_free_all_structures_after_ipa_cp): Likewise.
8750 (ipa_free_all_structures_after_iinln): Likewise.
8751 * ipa-prop.h: Likewise.
8752
8753 2015-06-01 Martin Liska <mliska@suse.cz>
8754
8755 * ipa-inline-analysis.c (edge_set_predicate): Use new type-based
8756 pool allocator.
8757 (set_hint_predicate): Likewise.
8758 (inline_summary_alloc): Likewise.
8759 (reset_inline_edge_summary): Likewise.
8760 (reset_inline_summary): Likewise.
8761 (set_cond_stmt_execution_predicate): Likewise.
8762 (set_switch_stmt_execution_predicate): Likewise.
8763 (compute_bb_predicates): Likewise.
8764 (estimate_function_body_sizes): Likewise.
8765 (inline_free_summary): Likewise.
8766
8767 2015-06-01 Martin Liska <mliska@suse.cz>
8768
8769 * ipa-prop.c (ipa_set_jf_constant): Use new type-based pool allocator.
8770 (ipa_edge_duplication_hook): Likewise.
8771 (ipa_free_all_structures_after_ipa_cp): Likewise.
8772 (ipa_free_all_structures_after_iinln): Likewise.
8773
8774 2015-06-01 Martin Liska <mliska@suse.cz>
8775
8776 * ipa-profile.c (account_time_size): Use new type-based pool allocator.
8777 (ipa_profile_generate_summary): Likewise.
8778 (ipa_profile_read_summary): Likewise.
8779 (ipa_profile): Likewise.
8780
8781 2015-06-01 Martin Liska <mliska@suse.cz>
8782
8783 * tree-ssa-structalias.c (new_var_info): Use new type-based
8784 pool allocator.
8785 (new_constraint): Likewise.
8786 (init_alias_vars): Likewise.
8787 (delete_points_to_sets): Likewise.
8788
8789 2015-06-01 Martin Liska <mliska@suse.cz>
8790
8791 * tree-ssa-strlen.c (new_strinfo): Use new type-based pool allocator.
8792 (free_strinfo): Likewise.
8793 (pass_strlen::execute): Likewise.
8794
8795 2015-06-01 Martin Liska <mliska@suse.cz>
8796
8797 * tree-ssa-sccvn.c (vn_reference_insert): Use new type-based
8798 pool allocator.
8799 (vn_reference_insert_pieces): Likewise.
8800 (vn_phi_insert): Likewise.
8801 (visit_reference_op_call): Likewise.
8802 (copy_phi): Likewise.
8803 (copy_reference): Likewise.
8804 (process_scc): Likewise.
8805 (allocate_vn_table): Likewise.
8806 (free_vn_table): Likewise.
8807
8808 2015-06-01 Martin Liska <mliska@suse.cz>
8809
8810 * tree-ssa-reassoc.c (add_to_ops_vec): Use new type-based
8811 pool allocator.
8812 (add_repeat_to_ops_vec): Likewise.
8813 (get_ops): Likewise.
8814 (maybe_optimize_range_tests): Likewise.
8815 (init_reassoc): Likewise.
8816 (fini_reassoc): Likewise.
8817
8818 2015-06-01 Martin Liska <mliska@suse.cz>
8819
8820 * tree-ssa-pre.c (get_or_alloc_expr_for_name): Use new type-based
8821 pool allocator.
8822 (bitmap_set_new): Likewise.
8823 (get_or_alloc_expr_for_constant): Likewise.
8824 (get_or_alloc_expr_for): Likewise.
8825 (phi_translate_1): Likewise.
8826 (compute_avail): Likewise.
8827 (init_pre): Likewise.
8828 (fini_pre): Likewise.
8829
8830 2015-06-01 Martin Liska <mliska@suse.cz>
8831
8832 * sched-deps.c (create_dep_node): Use new type-based pool allocator.
8833 (delete_dep_node): Likewise.
8834 (create_deps_list): Likewise.
8835 (free_deps_list): Likewise.
8836 (sched_deps_init): Likewise.
8837 (sched_deps_finish): Likewise.
8838
8839 2015-06-01 Martin Liska <mliska@suse.cz>
8840
8841 * regcprop.c (free_debug_insn_changes): Use new type-based
8842 pool allocator.
8843 (replace_oldest_value_reg): Likewise.
8844 (pass_cprop_hardreg::execute): Likewise.
8845
8846 2015-06-01 Martin Liska <mliska@suse.cz>
8847
8848 * ira-build.c (initiate_cost_vectors): Use new type-based
8849 pool allocator.
8850 (ira_allocate_cost_vector): Likewise.
8851 (ira_free_cost_vector): Likewise.
8852 (finish_cost_vectors): Likewise.
8853
8854 2015-06-01 Martin Liska <mliska@suse.cz>
8855
8856 * sel-sched-ir.c (alloc_sched_pools): Use new type-based
8857 pool allocator.
8858 (free_sched_pools): Likewise.
8859 * sel-sched-ir.h (_list_alloc): Likewise.
8860 (_list_remove): Likewise.
8861
8862 2015-06-01 Martin Liska <mliska@suse.cz>
8863
8864 * stmt.c (add_case_node): Use new type-based pool allocator.
8865 (expand_case): Likewise.
8866 (expand_sjlj_dispatch_table): Likewise.
8867
8868 2015-06-01 Martin Liska <mliska@suse.cz>
8869
8870 * tree-ssa-math-opts.c (occ_new): Use new type-based pool allocator.
8871 (free_bb): Likewise.
8872 (pass_cse_reciprocals::execute): Likewise.
8873
8874 2015-06-01 Martin Liska <mliska@suse.cz>
8875
8876 * tree-sra.c (sra_initialize): Use new type-based pool allocator.
8877 (sra_deinitialize) Likewise.
8878 (create_access_1) Likewise.
8879 (build_accesses_from_assign) Likewise.
8880 (create_artificial_child_access) Likewise.
8881
8882 2015-06-01 Martin Liska <mliska@suse.cz>
8883
8884 * dse.c (get_group_info):Use new type-based pool allocator.
8885 (dse_step0) Likewise.
8886 (free_store_info) Likewise.
8887 (delete_dead_store_insn) Likewise.
8888 (free_read_records) Likewise.
8889 (record_store) Likewise.
8890 (replace_read) Likewise.
8891 (check_mem_read_rtx) Likewise.
8892 (scan_insn) Likewise.
8893 (dse_step1) Likewise.
8894 (dse_step7) Likewise.
8895
8896 2015-06-01 Martin Liska <mliska@suse.cz>
8897
8898 * df-scan.c (struct df_scan_problem_data):Use new type-based
8899 pool allocator.
8900 (df_scan_free_internal) Likewise.
8901 (df_scan_alloc) Likewise.
8902 (df_grow_reg_info) Likewise.
8903 (df_free_ref) Likewise.
8904 (df_insn_create_insn_record) Likewise.
8905 (df_mw_hardreg_chain_delete) Likewise.
8906 (df_insn_info_delete) Likewise.
8907 (df_free_collection_rec) Likewise.
8908 (df_mw_hardreg_chain_delete_eq_uses) Likewise.
8909 (df_sort_and_compress_mws) Likewise.
8910 (df_ref_create_structure) Likewise.
8911 (df_ref_record) Likewise.
8912
8913 2015-06-01 Martin Liska <mliska@suse.cz>
8914
8915 * df-problems.c (df_chain_create):Use new type-based pool allocator.
8916 (df_chain_unlink_1) Likewise.
8917 (df_chain_unlink) Likewise.
8918 (df_chain_remove_problem) Likewise.
8919 (df_chain_alloc) Likewise.
8920 (df_chain_free) Likewise.
8921 * df.h (struct dataflow) Likewise.
8922
8923 2015-06-01 Martin Liska <mliska@suse.cz>
8924
8925 * cselib.c (new_elt_list):Use new type-based pool allocator.
8926 (new_elt_loc_list) Likewise.
8927 (unchain_one_elt_list) Likewise.
8928 (unchain_one_elt_loc_list) Likewise.
8929 (unchain_one_value) Likewise.
8930 (new_cselib_val) Likewise.
8931 (cselib_init) Likewise.
8932 (cselib_finish) Likewise.
8933
8934 2015-06-01 Martin Liska <mliska@suse.cz>
8935
8936 * config/sh/sh.c (add_constant):Use new type-based pool allocator.
8937 (sh_reorg) Likewise.
8938
8939 2015-06-01 Martin Liska <mliska@suse.cz>
8940
8941 * cfg.c (initialize_original_copy_tables):Use new type-based
8942 pool allocator.
8943 (free_original_copy_tables) Likewise.
8944 (copy_original_table_clear) Likewise.
8945 (copy_original_table_set) Likewise.
8946
8947 2015-06-01 Martin Liska <mliska@suse.cz>
8948
8949 * asan.c (asan_mem_ref_get_alloc_pool):Use new type-based
8950 pool allocator.
8951 (asan_mem_ref_new) Likewise.
8952 (free_mem_ref_resources) Likewise.
8953
8954 2015-06-01 Martin Liska <mliska@suse.cz>
8955
8956 * var-tracking.c (variable_htab_free):Use new type-based
8957 pool allocator.
8958 (attrs_list_clear) Likewise.
8959 (attrs_list_insert) Likewise.
8960 (attrs_list_copy) Likewise.
8961 (shared_hash_unshare) Likewise.
8962 (shared_hash_destroy) Likewise.
8963 (unshare_variable) Likewise.
8964 (var_reg_delete_and_set) Likewise.
8965 (var_reg_delete) Likewise.
8966 (var_regno_delete) Likewise.
8967 (drop_overlapping_mem_locs) Likewise.
8968 (variable_union) Likewise.
8969 (insert_into_intersection) Likewise.
8970 (canonicalize_values_star) Likewise.
8971 (variable_merge_over_cur) Likewise.
8972 (dataflow_set_merge) Likewise.
8973 (remove_duplicate_values) Likewise.
8974 (variable_post_merge_new_vals) Likewise.
8975 (dataflow_set_preserve_mem_locs) Likewise.
8976 (dataflow_set_remove_mem_locs) Likewise.
8977 (variable_from_dropped) Likewise.
8978 (variable_was_changed) Likewise.
8979 (set_slot_part) Likewise.
8980 (clobber_slot_part) Likewise.
8981 (delete_slot_part) Likewise.
8982 (loc_exp_insert_dep) Likewise.
8983 (notify_dependents_of_changed_value) Likewise.
8984 (emit_notes_for_differences_1) Likewise.
8985 (vt_emit_notes) Likewise.
8986 (vt_initialize) Likewise.
8987 (vt_finalize) Likewise.
8988
8989 2015-06-01 Martin Liska <mliska@suse.cz>
8990
8991 * ira-color.c (init_update_cost_records):Use new type-based
8992 pool allocator.
8993 (get_update_cost_record) Likewise.
8994 (free_update_cost_record_list) Likewise.
8995 (finish_update_cost_records) Likewise.
8996 (initiate_cost_update) Likewise.
8997
8998 2015-06-01 Martin Liska <mliska@suse.cz>
8999
9000 * lra.c (init_insn_regs): Use new type-based pool allocator.
9001 (new_insn_reg) Likewise.
9002 (free_insn_reg) Likewise.
9003 (free_insn_regs) Likewise.
9004 (finish_insn_regs) Likewise.
9005 (init_insn_recog_data) Likewise.
9006 (init_reg_info) Likewise.
9007 (finish_reg_info) Likewise.
9008 (lra_free_copies) Likewise.
9009 (lra_create_copy) Likewise.
9010 (invalidate_insn_data_regno_info) Likewise.
9011
9012 2015-06-01 Martin Liska <mliska@suse.cz>
9013
9014 * lra-lives.c (free_live_range): Use new type-based pool allocator.
9015 (free_live_range_list) Likewise.
9016 (create_live_range) Likewise.
9017 (copy_live_range) Likewise.
9018 (lra_merge_live_ranges) Likewise.
9019 (remove_some_program_points_and_update_live_ranges) Likewise.
9020 (lra_live_ranges_init) Likewise.
9021 (lra_live_ranges_finish) Likewise.
9022
9023 2015-06-01 Martin Liska <mliska@suse.cz>
9024
9025 * et-forest.c (et_new_occ): Use new type-based pool allocator.
9026 (et_new_tree): Likewise.
9027 (et_free_tree): Likewise.
9028 (et_free_tree_force): Likewise.
9029 (et_free_pools): Likewise.
9030 (et_split): Likewise.
9031
9032 2015-06-01 Martin Liska <mliska@suse.cz>
9033
9034 * alloc-pool.c (struct alloc_pool_descriptor): Move definition
9035 to header file.
9036 * alloc-pool.h (pool_allocator::pool_allocator): New function.
9037 (pool_allocator::release): Likewise.
9038 (inline pool_allocator::release_if_empty): Likewise.
9039 (inline pool_allocator::~pool_allocator): Likewise.
9040 (pool_allocator::allocate): Likewise.
9041 (pool_allocator::remove): Likewise.
9042
9043 2015-06-01 James Greenhalgh <james.greenhalgh@arm.com>
9044
9045 * sched-deps.c (sched_analyze_2): Replace fuseable with fusible
9046 in comment.
9047
9048 2015-06-01 James Greenhalgh <james.greenhalgh@arm.com>
9049
9050 * gcc/config/arm/arm-protos.h (tune_params): Rename fuseable_ops
9051 to fusible_ops.
9052 * gcc/config/arm/arm.c (arm_print_tune_info): Likewise.
9053 (arm_macro_fusion_p): Likewise.
9054 (arm_macro_fusion_pair_p): Likewise.
9055
9056 2015-06-01 James Greenhalgh <james.greenhalgh@arm.com>
9057
9058 * config/aarch64/aarch64-protos.h (tune_params): Rename
9059 fuseable_ops to fusible_ops.
9060 * config/aarch64/aarch64.c (generic_tunings): Rename
9061 fuseable_ops to fusible_ops.
9062 (cortexa53_tunings): Likewise.
9063 (cortexa57_tunings): Likewise.
9064 (thunderx_tunings): Likewise.
9065 (xgene1_tunings): Likewise.
9066 (aarch64_macro_fusion_p): Likewise.
9067 (aarch64_macro_fusion_pair_p): Likewise.
9068
9069 2015-06-01 Dominik Vogt <vogt@linux.vnet.ibm.com>
9070
9071 * config/s390/driver-native.c: New file.
9072 * config/s390/x-native: New file.
9073 * config.host: Add new files for s390.
9074 * config/s390/s390.h (DRIVER_SELF_SPECS): Add support for -mtune=native
9075 and -march=native
9076 * config.gcc: Likewise.
9077 * config/s390/s390.opt (march): Likewise; add PROCESSOR_NATIVE
9078 * config/s390/s390-opts.h (enum processor_type): Ditto.
9079 * config/s390/s390.c (s390_option_override): Catch unhandled
9080 PROCESSOR_NATIVE
9081
9082 2015-06-01 Ilya Enkovich <ilya.enkovich@intel.com>
9083
9084 PR target/65527
9085 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Add
9086 redirection for instrumented calls.
9087 * lto-wrapper.c (merge_and_complain): Merge -fcheck-pointer-bounds.
9088 (append_compiler_options): Append -fcheck-pointer-bounds.
9089 * tree-chkp.h (chkp_copy_call_skip_bounds): New.
9090 (chkp_redirect_edge): New.
9091 * tree-chkp.c (chkp_copy_call_skip_bounds): New.
9092 (chkp_redirect_edge): New.
9093
9094 2015-06-01 Richard Biener <rguenther@suse.de>
9095
9096 PR tree-optimization/66280
9097 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Fix pattern
9098 def-use walking.
9099
9100 2015-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9101
9102 * config/aarch64/aarch64.md
9103 (*<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Change type to
9104 logic_shift_imm.
9105
9106 2015-06-01 Eric Botcazou <ebotcazou@adacore.com>
9107
9108 * config/i386/winnt.c (i386_pe_encode_section_info) <FUNCTION_DECL>:
9109 Remove obsolete kludge.
9110
9111 2015-06-01 Richard Biener <rguenther@suse.de>
9112
9113 * tree-ssa-reassoc.c (get_rank): Simplify.
9114
9115 2015-05-31 H.J. Lu <hongjiu.lu@intel.com>
9116
9117 * configure.ac (NO_PIE_CFLAGS): Check CXXFLAGS instead of CFLAGS.
9118 * configure: Regenerated.
9119
9120 2015-05-31 Mikhail Maltsev <maltsevm@gmail.com>
9121
9122 * config/cris/cris.h (CRIS_ARCH_CPP_DEFAULT): Fix C++11 compatibility
9123 issue (add space between string literal and macro).
9124 * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Likewise.
9125
9126 2015-05-30 Andreas Schwab <schwab@linux-m68k.org>
9127
9128 * config/m68k/m68k.h (ASM_PCREL_SPEC): Pass --pcrel also for
9129 implict or explicit -fPIE or -fpie.
9130
9131 2015-05-30 Mike Frysinger <vapier@gentoo.org>
9132
9133 * gcc/config/alpha/elf.h (ASM_SPEC): Add %{mcpu=*:-m%*}.
9134
9135 2015-05-28 DJ Delorie <dj@redhat.com>
9136
9137 * expmed.c (extract_bit_field_1): Avoid clobbering a
9138 yet-to-be-used base/index register.
9139
9140 2015-05-30 Jan Hubicka <hubicka@ucw.cz>
9141
9142 * alias.c (alias_set_entry_d): Add is_pointer and has_pointer.
9143 (alias_stats): Add num_universal.
9144 (alias_set_subset_of): Special case pointers; be ready for NULL
9145 children.
9146 (alias_sets_conflict_p): Special case pointers; be ready for NULL
9147 children.
9148 (init_alias_set_entry): Break out from ...
9149 (record_alias_subset): ... here; propagate new fields;
9150 allocate children only when really needed.
9151 (get_alias_set): Do less generous pointer globbing.
9152 (dump_alias_stats_in_alias_c): Update statistics.
9153
9154 2015-05-30 Alan Modra <amodra@gmail.com>
9155
9156 * config/rs6000/rs6000.c (split_stack_arg_pointer_used_p): Scan
9157 correct block for use of r12.
9158 (rs6000_expand_split_stack_prologue): Error on r29 asm global reg.
9159
9160 2015-05-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
9161
9162 PR target/66215
9163 * config/s390/s390.c (s390_reorg): Fix placement of post-label NOPs
9164 with -mhotpatch=.
9165
9166 2015-05-29 Jakub Jelinek <jakub@redhat.com>
9167
9168 PR tree-optimization/66142
9169 * tree-if-conv.c (if_convertible_phi_p): Don't give up on
9170 virtual phis that feed themselves.
9171
9172 2015-05-29 Richard Biener <rguenther@suse.de>
9173
9174 PR tree-optimization/66314
9175 * tree-ssa-threadupdate.c (create_block_for_threading): Add
9176 parameter that says which loop the new block belongs to.
9177 (ssa_create_duplicates): Blocks duplicated for the threaded
9178 path belong to the loop of the thread destination.
9179
9180 2015-05-29 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
9181
9182 * config/arm/neon-testgen.ml (emit_epilogue): Remove manual call
9183 to cleanup-saved-temps.
9184 * doc/sourcebuild.texi (Clean up generated test files): Expand
9185 introduction.
9186 (dg-keep-saved-temps): Document new proc.
9187 (cleanup-ipa-dump, cleanup-rtl-dump, cleanup-tree-dump,
9188 cleanup-saved-temps): Remove.
9189
9190 2015-05-28 Andreas Tobler <andreast@gcc.gnu.org>
9191
9192 * configure.ac: Move the atoll check from AC_CHECK_FUNCS to
9193 gcc_AC_CHECK_DECLS.
9194 * configure: Regenerate.
9195
9196 2015-05-28 Mike Frysinger <vapier@gentoo.org>
9197
9198 * config/nios2/linux.h (CPP_SPEC): Define.
9199
9200 2015-05-28 Mike Frysinger <vapier@gentoo.org>
9201
9202 * config/microblaze/linux.h (CPP_SPEC): Define.
9203
9204 2015-05-28 Mike Frysinger <vapier@gentoo.org>
9205
9206 * config/pa/pa-linux.h (CPP_SPEC): Change so -D_REENTRANT is used when
9207 -pthread is specified.
9208
9209 2015-05-28 Richard Biener <rguenther@suse.de>
9210
9211 * tree-vect-loop.c (vect_fixup_reduc_chain): New function.
9212 (vect_fixup_scalar_cycles_with_patterns): Likewise.
9213 (vect_analyze_loop_2): Call vect_fixup_scalar_cycles_with_patterns
9214 after pattern recog.
9215 (vect_create_epilog_for_reduction): Properly handle reductions
9216 with patterns.
9217 (vectorizable_reduction): Likewise.
9218 * tree-vect-slp.c (vect_analyze_slp_instance): Properly mark
9219 reduction chains.
9220 (vect_get_constant_vectors): Create the correct number of
9221 initial values for reductions.
9222 (vect_schedule_slp_instance): Handle reduction chains that are
9223 type changing properly.
9224 * tree-vect-stmts.c (vect_analyze_stmt): Adjust.
9225
9226 2015-05-28 Richard Biener <rguenther@suse.de>
9227
9228 PR tree-optimization/66142
9229 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle non-GIMPLE
9230 values better in memcpy destination handling. Handle non-aliasing
9231 we discover here.
9232
9233 2015-05-28 Lawrence Velázquez <vq@larryv.me>
9234
9235 PR target/63810
9236 * config/darwin-c.c (version_components): New global enum.
9237 (parse_version, version_as_legacy_macro)
9238 (version_as_modern_macro, macosx_version_as_macro): New functions.
9239 (version_as_macro): Remove.
9240 (darwin_cpp_builtins): Use new function.
9241
9242 2015-05-28 H.J. Lu <hongjiu.lu@intel.com>
9243
9244 * builtins.c (expand_builtin_acc_on_device): Mark parameters
9245 with ATTRIBUTE_UNUSED.
9246
9247 2015-05-28 Julian Brown <julian@codesourcery.com>
9248
9249 PR libgomp/65742
9250
9251 * builtins.c (expand_builtin_acc_on_device): Don't use open-coded
9252 sequence for !ACCEL_COMPILER.
9253
9254 2015-05-28 Nick Clifton <nickc@redhat.com>
9255
9256 * config/rx/rx.c (push_regs): New function. Extracts code from...
9257 (rx_expand_prologue): ... here. Use push_regs to push even small
9258 spans of registers.
9259 (pop_regs): New function.
9260 (rx_expand_epilogue): Use pop_regs to pop even small spans of
9261 registers.
9262
9263 2015-05-28 Richard Biener <rguenther@suse.de>
9264
9265 * tree-vectorizer.h (struct _slp_instance): Remove body_cost_vec
9266 member.
9267 (SLP_INSTANCE_BODY_COST_VEC): Remove.
9268 (vect_update_slp_costs_according_to_vf): Likewise.
9269 (vect_slp_analyze_operations): Update prototype.
9270 * tree-vect-loop.c (vect_analyze_loop_2): Remove call to
9271 vect_update_slp_costs_according_to_vf, adjust.
9272 * tree-vect-slp.c (vect_free_slp_instance): Adjust.
9273 (vect_analyze_slp_cost_1): Likewise.
9274 (vect_analyze_slp_cost): Likewise. Properly deal with
9275 widening reduction ops. Commit body costs.
9276 (vect_analyze_slp_instance): Adjust. Do not analyze SLP
9277 cost for loops from here.
9278 (vect_slp_analyze_operations): But do it from here when
9279 the vectorization factor is known and stmts are analyzed.
9280 (vect_bb_vectorization_profitable_p): Simplify.
9281 (vect_slp_analyze_bb_1): Do not compute SLP cost here.
9282 (vect_update_slp_costs_according_to_vf): Remove.
9283
9284 2015-05-27 Magnus Granberg <zorry@gentoo.org>
9285 H.J. Lu <hongjiu.lu@intel.com>
9286
9287 * Makefile.in (COMPILER): Add @NO_PIE_CFLAGS@.
9288 (BUILD_CFLAGS): Likewise.
9289 (BUILD_CXXFLAGS): Likewise.
9290 (LINKER): Add @NO_PIE_FLAG@.
9291 (BUILD_LDFLAGS): Likewise.
9292 (libgcc.mvars): Set NO_PIE_CFLAGS to -fno-PIE for
9293 --enable-default-pie.
9294 * common.opt (fPIE): Initialize to -1.
9295 (fpie): Likewise.
9296 (no-pie): New option.
9297 (pie): Replace "Negative(shared)" with "Negative(no-pie)".
9298 * configure.ac: Add --enable-default-pie.
9299 (NO_PIE_CFLAGS): New. Check if -fno-PIE works. AC_SUBST.
9300 (NO_PIE_FLAG): New. Check if -no-pie works. AC_SUBST.
9301 * defaults.h (DEFAULT_FLAG_PIE): New. Default PIE to -fPIE.
9302 * gcc.c (NO_PIE_SPEC): New.
9303 (PIE_SPEC): Likewise.
9304 (NO_FPIE1_SPEC): Likewise.
9305 (FPIE1_SPEC): Likewise.
9306 (NO_FPIE2_SPEC): Likewise.
9307 (FPIE2_SPEC): Likewise.
9308 (NO_FPIE2_SPEC): Likewise.
9309 (FPIE_SPEC): Likewise.
9310 (NO_FPIE_SPEC): Likewise.
9311 (NO_FPIC1_SPEC): Likewise.
9312 (FPIC1_SPEC): Likewise.
9313 (NO_FPIC2_SPEC): Likewise.
9314 (FPIC2_SPEC): Likewise.
9315 (NO_FPIC2_SPEC): Likewise.
9316 (FPIC_SPEC): Likewise.
9317 (NO_FPIC_SPEC): Likewise.
9318 (NO_FPIE1_AND_FPIC1_SPEC): Likewise.
9319 (FPIE1_OR_FPIC1_SPEC): Likewise.
9320 (NO_FPIE2_AND_FPIC2_SPEC): Likewise.
9321 (FPIE2_OR_FPIC2_SPEC): Likewise.
9322 (NO_FPIE_AND_FPIC_SPEC): Likewise.
9323 (FPIE_OR_FPIC_SPEC): Likewise.
9324 (LD_PIE_SPEC): Likewise.
9325 (LINK_PIE_SPEC): Handle -no-pie. Use PIE_SPEC and LD_PIE_SPEC.
9326 * opts.c (finish_options): Update opts->x_flag_pie if it is -1.
9327 * config/darwin.h (PIE_SPEC): Renamed to ...
9328 (DARWIN_PIE_SPEC): This.
9329 (LINK_SPEC): Replace PIE_SPEC with DARWIN_PIE_SPEC.
9330 * config/darwin9.h (PIE_SPEC): Renamed to ...
9331 (DARWIN_PIE_SPEC): This.
9332 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use
9333 PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
9334 * config/openbsd.h (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and
9335 FPIE2_OR_FPIC2_SPEC.
9336 * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
9337 * config/m68k/openbsd.h (ASM_SPEC): Likewise.
9338 * gcc/config/sol2.h (ASM_PIC_SPEC): Likewise.
9339 * config/arm/freebsd.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
9340 * config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
9341 * config/arm/semi.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
9342 * config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
9343 * config/m32r/m32r.h (ASM_SPEC): Likewise.
9344 * config/m68k/uclinux.h (DRIVER_SELF_SPECS): Likewise.
9345 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
9346 * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
9347 * config/sparc/freebsd.h (ASM_SPEC): Likewise.
9348 * config/sparc/linux.h (ASM_SPEC): Likewise.
9349 * config/sparc/linux64.h (ASM_SPEC): Likewise.
9350 * config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
9351 * config/sparc/openbsd64.h (ASM_SPEC): Likewise.
9352 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
9353 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
9354 * config/sparc/sparc.h (ASM_SPEC): Likewise.
9355 * config/sparc/sysv4.h (ASM_SPEC): Likewise.
9356 * config/sparc/vxworks.h (ASM_SPEC): Likewise.
9357 * config/c6x/elf-common.h (ASM_SPEC): Use NO_FPIC2_SPEC,
9358 FPIC2_SPEC, FPIC1_SPEC and FPIC2_SPEC.
9359 * config/c6x/uclinux-elf.h (LINK_SPEC): Use FPIE_SPEC.
9360 * config/frv/frv.h (DRIVER_SELF_SPECS): Use FPIC_SPEC,
9361 NO_FPIC_SPEC and NO_FPIE1_AND_FPIC1_SPEC.
9362 (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and FPIE2_OR_FPIC2_SPEC.
9363 * config/m68k/m68k.h (ASM_PCREL_SPEC): Use FPIC_SPEC and NO_FPIC_SPEC.
9364 * config/mips/gnu-user.h (NO_SHARED_SPECS): Use NO_FPIE_AND_FPIC_SPEC.
9365 * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Use FPIC_SPEC.
9366 * config/rs6000/freebsd64.h (ASM_SPEC32): Likewise.
9367 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
9368 * config/vax/linux.h (ASM_SPEC): Likewise.
9369 * doc/install.texi: Document --enable-default-pie.
9370 * doc/invoke.texi: Document -no-pie.
9371 * config.in: Regenerated.
9372 * configure: Likewise.
9373
9374 2015-05-28 Thomas Preud'homme <thomas.preudhomme@arm.com>
9375
9376 PR rtl-optimization/66168
9377 * loop-invariant.c (move_invariant_reg): Pass dest rather than reg to
9378 can_move_invariant_reg.
9379
9380 2015-05-27 John David Anglin <danglin@gcc.gnu.org>
9381
9382 PR target/66148
9383 * config/pa/pa.c (pa_emit_move_sequence): Correct placement of
9384 REG_EQUAL note when doing insert.
9385
9386 * config/pa/pa.c (pa_print_operand): Use HOST_WIDE_INT_PRINT_DEC
9387 instead of "%d" for 'o' operand.
9388
9389 2015-05-27 Nathan Sidwell <nathan@acm.org>
9390
9391 PR c++/66270
9392 * tree.c (build_pointer_type_for_mode): Canonical type does not
9393 inherit can_alias_all.
9394 (build_reference_type_for_mode): Likewise.
9395
9396 2015-05-27 Eric Botcazou <ebotcazou@adacore.com>
9397
9398 * expr.h (array_at_struct_end_p): Move to...
9399 (array_ref_element_size): Likewise.
9400 (component_ref_field_offset): Likewise.
9401 * tree.h (array_ref_element_size): ...here.
9402 (array_at_struct_end_p): Likewise.
9403 (component_ref_field_offset): Likewise.
9404 * expr.c (array_ref_element_size): Move to...
9405 (array_ref_low_bound): Likewise.
9406 (array_at_struct_end_p): Likewise.
9407 (array_ref_up_bound): Likewise.
9408 (component_ref_field_offset): Likewise.
9409 * tree.c (array_ref_element_size): ...here.
9410 (array_ref_low_bound): Likewise.
9411 (array_ref_up_bound): Likewise.
9412 (array_at_struct_end_p): Likewise.
9413 (component_ref_field_offset): Likewise.
9414
9415 2015-05-27 Gregor Richards <gregor.richards@uwaterloo.ca>
9416 Szabolcs Nagy <szabolcs.nagy@arm.com>
9417
9418 * config/aarch64/aarch64-linux.h (MUSL_DYNAMIC_LINKER): Define.
9419
9420 2015-05-27 Jason Merrill <jason@redhat.com>
9421
9422 PR bootstrap/66304
9423 * configure.ac: Use ACX_PROG_CXX_WARNING_OPTS,
9424 ACX_PROG_CXX_WARNING_ALMOST_PEDANTIC, and
9425 ACX_PROG_CXX_WARNINGS_ARE_ERRORS.
9426
9427 2015-05-22 Aditya Kumar <hiraditya@msn.com>
9428
9429 * auto-profile.c (afdo_calculate_branch_prob): Break once has_sample
9430 is true.
9431
9432 * statistics.c (statistics_fini_pass): Print pass name.
9433
9434 2015-05-27 Richard Biener <rguenther@suse.de>
9435
9436 PR tree-optimization/66272
9437 Revert parts of
9438 2014-08-15 Richard Biener <rguenther@suse.de>
9439
9440 PR tree-optimization/62031
9441 * tree-data-ref.c (dr_analyze_indices): Do not set
9442 DR_UNCONSTRAINED_BASE.
9443 (dr_may_alias_p): All indirect accesses have to go the
9444 formerly DR_UNCONSTRAINED_BASE path.
9445 * tree-data-ref.h (struct indices): Remove
9446 unconstrained_base member.
9447 (DR_UNCONSTRAINED_BASE): Remove.
9448
9449 2015-05-27 Aldy Hernandez <aldyh@redhat.com>
9450
9451 * dwarf2out.c: Remove block_map.
9452 (gen_call_site_die): Replace block_map use with BLOCK_DIE.
9453 (gen_lexical_block_die): Same.
9454 (dwarf2out_function_decl): Remove block_map use.
9455 (dwarf2out_c_finalize): Same.
9456 * tree-core.h (struct tree_block): Add die field.
9457 * tree.h (BLOCK_DIE): New.
9458
9459 2015-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9460
9461 PR target/65358
9462 * expr.c (memory_load_overlap): New function.
9463 (emit_push_insn): When pushing partial args to the stack would
9464 clobber the register part load the overlapping part into a pseudo
9465 and put it into the hard reg after pushing. Change return type
9466 to bool. Add bool argument.
9467 * expr.h (emit_push_insn): Change return type to bool.
9468 Add bool argument.
9469 * calls.c (expand_call): Cancel sibcall optimization when encountering
9470 partial argument on targets with ARGS_GROW_DOWNWARD and
9471 !STACK_GROWS_DOWNWARD.
9472 (emit_library_call_value_1): Update callsite of emit_push_insn.
9473 (store_one_arg): Likewise.
9474
9475 2015-05-27 Gregor Richards <gregor.richards@uwaterloo.ca>
9476
9477 * config/arm/linux-eabi.h (MUSL_DYNAMIC_LINKER): Define.
9478
9479 2015-05-27 Martin Liska <mliska@suse.cz>
9480
9481 * Makefile.in: Add additional dependencies related to memory report
9482 enhancement.
9483 * alloc-pool.c (allocate_pool_descriptor): Use new ctor.
9484 * bitmap.c (struct bitmap_descriptor_d): Remove.
9485 (struct loc): Likewise.
9486 (struct bitmap_desc_hasher): Likewise.
9487 (bitmap_desc_hasher::hash): Likewise.
9488 (bitmap_desc_hasher::equal): Likewise.
9489 (get_bitmap_descriptor): Likewise.
9490 (bitmap_register): User new memory descriptor API.
9491 (register_overhead): Likewise.
9492 (bitmap_find_bit): Register nsearches and search_iter statistics.
9493 (struct bitmap_output_info): Remove.
9494 (print_statistics): Likewise.
9495 (dump_bitmap_statistics): Use new memory descriptor.
9496 * bitmap.h (struct bitmap_usage): New class.
9497 * genmatch.c: Extend header file inclusion.
9498 * genpreds.c: Likewise.
9499 * ggc-common.c (struct ggc_usage): New class.
9500 (struct ggc_loc_desc_hasher): Remove.
9501 (ggc_loc_desc_hasher::hash): Likewise.
9502 (ggc_loc_desc_hasher::equal): Likewise.
9503 (struct ggc_ptr_hash_entry): Likewise.
9504 (struct ptr_hash_hasher): Likewise.
9505 (ptr_hash_hasher::hash): Likewise.
9506 (ptr_hash_hasher::equal): Likewise.
9507 (make_loc_descriptor): Likewise.
9508 (ggc_prune_ptr): Likewise.
9509 (dump_ggc_loc_statistics): Use new memory descriptor.
9510 (ggc_record_overhead): Likewise.
9511 (ggc_free_overhead): Likewise.
9512 (final_cmp_statistic): Remove.
9513 (cmp_statistic): Likewise.
9514 (ggc_add_statistics): Liekwise.
9515 (ggc_prune_overhead_list): Likewise.
9516 * hash-map-traits.h: New file.
9517 * hash-map.h (struct default_hashmap_traits): Move the traits to a
9518 separate header file.
9519 * hash-set.h: Pass memory statistics info to ctor.
9520 * hash-table.c (void dump_hash_table_loc_statistics): New function.
9521 * hash-table.h (hash_table::hash_table): Add new ctor arguments.
9522 (hash_table::~hash_table): Register memory release operation.
9523 (hash_table::alloc_entries): Handle memory allocation operation.
9524 (hash_table::expand): Likewise.
9525 * inchash.c (iterative_hash_hashval_t): Move implementation to header
9526 file.
9527 (iterative_hash_host_wide_int): Likewise.
9528 * inchash.h (class hash): Likewise.
9529 * mem-stats-traits.h: New file.
9530 * mem-stats.h: New file.
9531 (mem_location): Add new class.
9532 (mem_usage): Likewise.
9533 (mem_alloc_description): Likewise.
9534 * sese.c: Add new header file inclusision.
9535 * toplev.c (dump_memory_report): Add report for hash_table, hash_map
9536 and hash_set.
9537 * tree-sra.c: Add new header file inclusision.
9538 * vec.c (struct vec_descriptor): Remove.
9539 (hash_descriptor): Likewise.
9540 (struct vec_usage): Likewise.
9541 (struct ptr_hash_entry): Likewise.
9542 (hash_ptr): Likewise.
9543 (eq_ptr): Likewise.
9544 (vec_prefix::register_overhead): Use new memory descriptor API.
9545 (vec_prefix::release_overhead): Likewise.
9546 (add_statistics): Remove.
9547 (dump_vec_loc_statistics): Use new memory descriptor API.
9548 * vec.h (struct vec_prefix): Likewise.
9549 (va_heap::reserve): Likewise.
9550 (va_heap::release): Likewise.
9551 * emit-rtl.c (gen_raw_REG): Fix passing MEM_STAT.
9552
9553 2015-05-27 Richard Biener <rguenther@suse.de>
9554
9555 * tree-vect-stmts.c (vectorizable_load): Initialize slp_perm
9556 earlier and remove ??? comment.
9557 (vect_analyze_stmt): If we are analyzing a pure SLP stmt
9558 and got called from loop analysis bail out. Always pass the SLP
9559 node to the vectorizable_* functions.
9560 * tree-vect-loop.c (vect_analyze_loop_operations): Remove
9561 the premature SLP check here.
9562 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Dump hybrid
9563 detected SLP stmts.
9564 (vect_detect_hybrid_slp_1): Likewise.
9565
9566 2015-05-26 Jeff Law <law@redhat.com>
9567
9568 * combine.c (find_split_point): Verify that the shift count is a
9569 constant when choosing (plus (ashift ...)) as a split point.
9570
9571 * tree-ssa-threadupdate.c: Replace 8 space sequences with tabs.
9572 No functional changes.
9573
9574 2015-05-26 Jan Hubicka <hubicka@ucw.cz>
9575
9576 * ipa-polymorphic-call.c
9577 (ipa_polymorphic_call_context::get_dynamic_type): Short circuit the
9578 case when call target is already known.
9579
9580 2015-05-26 Oleg Endo <olegendo@gcc.gnu.org>
9581
9582 PR target/65979
9583 * config/sh/sh.md (tstsi_t peephole2): Use gen_rtx_SET and
9584 take into account the case that operands[1] and operands[2]
9585 are the same register.
9586
9587 2015-05-26 Michael Matz <matz@suse.de>
9588
9589 PR middle-end/66251
9590
9591 * tree-vect-stmts.c (vect_model_store_cost): Handled strided group
9592 stores.
9593 (vect_create_vectorized_demotion_stmts): Always set
9594 STMT_VINFO_VEC_STMT, also with SLP.
9595 (vectorizable_store): Handle strided group stores.
9596
9597 2015-05-26 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
9598
9599 PR target/66049
9600 * config/aarch64/aarch64.md
9601 (*adds_shift_imm_<mode>): New pattern.
9602 (*subs_shift_imm_<mode>): Likewise.
9603 (*adds_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
9604 (*subs_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
9605 (*add_uxt<mode>_shift2): Likewise.
9606 (*add_uxtsi_shift2_uxtw): Likewise.
9607 (*sub_uxt<mode>_shift2): Likewise.
9608 (*sub_uxtsi_shift2_uxtw): Likewise.
9609
9610 2015-05-26 David Edelsohn <dje.gcc@gmail.com>
9611
9612 * config/rs6000/constraints.md (Y, U): Use match_test.
9613
9614 2015-05-26 Christian Bruel <christian.bruel@st.com>
9615
9616 PR target/52144
9617 * config/arm/arm.c (arm_option_check_internal)
9618 (arm_option_params_internal): Check opts->target_flags to set macros.
9619 (TREE_TARGET_ARM, TREE_TARGET_THUMB)
9620 (TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Replace with...
9621 (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
9622 (builtin_define): Replaced with def_or_undef_macro.
9623 * config/arm/arm.h (TREE_TARGET_ARM, TREE_TARGET_THUMB)
9624 TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Redefine with...
9625 (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
9626 (TARGET_32BIT_P, TARGET_ARM_QBIT_P, TARGET_ARM_SAT_P, TARGET_IDIV_P)
9627 (TARGET_HAVE_LDREX_P, TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P)
9628 (TARGET_ARM_FEATURE_LDREX_P)
9629 (TARGET_DSP_MULTIPLY_P, TARGET_INT_SIMD_P): New macros.
9630 * config/arm/arm-c.c (def_or_undef_macro): New function.
9631 (arm_cpu_cpp_builtins): Use def_or_undef_macro for macros definition.
9632
9633 2015-05-26 Christian Bruel <christian.bruel@st.com>
9634
9635 * c-common.h (builtin_define_with_int_value)
9636 (builtin_define_type_sizeof): Declare.
9637 * c-cppbuiltin.c (builtin_define_with_int_value)
9638 (builtin_define_type_sizeof): Externalize.
9639 (builtin_define_std): Cleanup declaration.
9640 * config/arm/arm-protos.h (arm_cpu_cpp_builtins): Declare.
9641 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Move macro defines into...
9642 * config/arm/arm-c.c (arm_cpu_cpp_builtins): New function.
9643 (builtin_define, builtin_assert): New macros.
9644
9645 2015-05-26 Richard Biener <rguenther@suse.de>
9646
9647 PR tree-optimization/66142
9648 * tree-ssa-sccvn.c (vn_reference_lookup_3): Manually compare
9649 MEM_REFs for the same base address.
9650
9651 2015-05-26 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
9652
9653 PR ipa/66181
9654 * tree.c (verify_type_variant): Do not check TYPE_NO_FORCE_BLK.
9655
9656 2015-05-26 Jason Merrill <jason@redhat.com>
9657
9658 * configure.ac: Set CXXFLAGS for ISL test.
9659 * configure: Regenerate.
9660
9661 * configure.ac: Use C++ for all tests. Use AC_CHECK_DECLS for
9662 strstr and basename.
9663 * configure: Regenerate.
9664
9665 2015-05-26 Richard Biener <rguenther@suse.de>
9666
9667 * fold-const.c (fold_binary_loc): Move X % -Y -> X % Y and
9668 X % C -> X & (C - 1) for C being a power-of two to ...
9669 * match.pd: ... patterns.
9670
9671 2015-05-26 Marc Glisse <marc.glisse@inria.fr>
9672
9673 * match.pd (swapped_tcc_comparison): New operator list.
9674 (-A CMP -B): New simplification.
9675 * fold-const.c (fold_comparison): Remove corresponding code.
9676
9677 2015-05-26 Richard Sandiford <richard.sandiford@arm.com>
9678
9679 * caller-save.c (init_caller_save): Base temporary register numbers
9680 on LAST_VIRTUAL_REGISTER + 1 rather than FIRST_PSEUDO_REGISTER.
9681 * cfgloopanal.c (init_set_costs): Likewise.
9682 * dojump.c (prefer_and_bit_test): Likewise.
9683 * expr.c (init_expr_target): Likewise.
9684 * ira.c (setup_prohibited_mode_move_regs): Likewise.
9685 * lower-subreg.c (init_lower_subreg): Likewise.
9686 * postreload.c (reload_cse_regs_1): Likewise.
9687
9688 2015-05-26 Richard Sandiford <richard.sandiford@arm.com>
9689
9690 * gensupport.h (compute_test_codes): Declare.
9691 * gensupport.c (compute_predicate_codes): Rename to...
9692 (compute_test_codes): ...this. Generalize error message.
9693 (process_define_predicate): Update accordingly.
9694 * genpreds.c (compute_maybe_allows): Delete.
9695 (add_constraint): Use compute_test_codes to determine whether
9696 something can accept a SUBREG, REG or MEM.
9697
9698 2015-05-26 Torvald Riegel <triegel@redhat.com>
9699
9700 * doc/extend.texi (__atomic Builtins): Use 'memory order' instead of
9701 'memory model' to align with C++11; fix description of memory orders;
9702 fix a few typos.
9703
9704 2015-05-26 Richard Biener <rguenther@suse.de>
9705
9706 * tree-vect-loop.c (vect_update_vf_for_slp): Split out from ...
9707 (vect_analyze_loop_operations): ... here. Remove slp parameter,
9708 detect whether we apply SLP. Remove call to
9709 vect_update_slp_costs_according_to_vf.
9710 (vect_analyze_loop_2): Call vect_update_vf_for_slp and
9711 vect_update_slp_costs_according_to_vf from here. Dispatch
9712 to vect_slp_analyze_operations to analyze SLP stmts.
9713 * tree-vect-slp.c (vect_slp_analyze_node_operations): Drop
9714 unused bb_vec_info parameter, adjust assert.
9715 (vect_slp_analyze_operations): Pass in the slp instance tree
9716 instead of bb_vec_info.
9717 (vect_slp_analyze_bb_1): Adjust call to vect_slp_analyze_operations.
9718 * tree-vectorizer.h (vect_slp_analyze_operations): Declare.
9719
9720 2015-05-25 Alexander Monakov <amonakov@ispras.ru>
9721
9722 * config/i386/i386.h (enum reg_class): Move CLOBBERED_REGS prior to
9723 Q_REGS. Expand comment.
9724 (REG_CLASS_NAMES): Ditto.
9725 (REG_CLASS_CONTENTS): Ditto.
9726
9727 2015-05-25 Uros Bizjak <ubizjak@gmail.com>
9728
9729 PR target/66274
9730 * config/i386/i386.c (print_reg): Only print "r" for TARGET_64BIT
9731 when LEGACY_INT_REGNO_P is processed.
9732
9733 2015-05-25 Alexander Monakov <amonakov@ispras.ru>
9734
9735 * config/i386/i386.c (ix86_function_ok_for_sibcall): Check flag_plt.
9736
9737 2015-05-25 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
9738
9739 * config/avr/avr.c (avr_out_load_psi_reg_no_disp_tiny): Restore base
9740 register if not marked dead/unused, before return.
9741
9742 2015-05-24 Jan Hubicka <hubicka@ucw.cz>
9743
9744 PR lto/66180
9745 * ipa-devirt.c (type_with_linkage): Check that TYPE_STUB_DECL
9746 is set; check for assembler name at LTO time.
9747 (type_in_anonymous_namespace): Remove hacks, check that all
9748 anonymous types are called "<anon>"
9749 (odr_type_p): Simplify; add check for "<anon>"
9750 (odr_subtypes_equivalent): Add odr_type_p check.
9751 * tree.c (need_assembler_name_p): Even anonymous namespace needs
9752 assembler name.
9753
9754 2015-05-24 Jan Hubicka <hubicka@ucw.cz>
9755
9756 * ipa-utils.h (method_class_type): Remove.
9757 * cgraphunit.c (walk_polymorphic_call_targets): Use
9758 TYPE_METHOD_BASETYPE.
9759 * ipa-devirt.c (type_in_anonymous_namespace_p): Check that it is called
9760 on main variants only.
9761 (method_class_type): Remove.
9762 (update_type_inheritance_graph): Use TYPE_METHOD_BASETYPE.
9763 (build_type_inheritance_graph): Likewise.
9764 * ipa-icf.c (sem_function::equals_wpa): Likewise.
9765 * pa-polymorphic-call.c (decl_maybe_in_construction_p,
9766 check_stmt_for_type_change): Use TYPE_METHOD_BASETYPE.
9767
9768 2015-05-24 Jan Hubicka <hubicka@ucw.cz>
9769
9770 * tree.c (prototype_p, virtual_method_call_p, obj_type_ref_class,
9771 is_typedef_decl, typedef_variant_p): Constify.
9772 * tree.h (prototype_p, virtual_method_call_p, obj_type_ref_class,
9773 is_typedef_decl, typedef_variant_p): Constify.
9774
9775 2015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9776
9777 * defaults.h (gen_tablejump): New function.
9778 (HAVE_tablejump): Add default value.
9779 * expr.c: Adjust.
9780 * stmt.c: Likewise.
9781
9782 2015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9783
9784 * defaults.h (gen_store_multiple): New function.
9785 (HAVE_store_multiple): Add default value.
9786 * expr.c (move_block_from_reg): Adjust.
9787
9788 2015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9789
9790 * defaults.h (gen_load_multiple): New function.
9791 (HAVE_load_multiple): Add default value.
9792 * expr.c (move_block_to_reg): Adjust.
9793
9794 2015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9795
9796 * defaults.h (gen_mem_signal_fence): New function.
9797 (HAVE_mem_signal_fence): Add default value.
9798 * optabs.c: Adjust.
9799
9800 2015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9801
9802 * defaults.h (gen_memory_barrier): New function.
9803 (HAVE_memory_barrier): Add default value.
9804 * optabs.c: Adjust.
9805
9806 2015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9807
9808 * defaults.h (gen_mem_thread_fence): New function.
9809 (HAVE_mem_thread_fence): Add default definition.
9810 * optabs.c: Adjust.
9811
9812 2015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9813
9814 * combine.c (find_split_point): Check the value of HAVE_lo_sum
9815 instead of if it is defined.
9816 (combine_simplify_rtx): Likewise.
9817 * lra-constraints.c (process_address_1): Likewise.
9818 * config/darwin.c: Adjust.
9819 * genconfig.c (main): Always define HAVE_lo_sum.
9820
9821 2015-05-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
9822
9823 * genmatch.c (parser::parse_operation): Reject expanding
9824 operator-list inside 'for'.
9825
9826 2015-05-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
9827
9828 * genmatch.c (parser::parse_for): Reject iterator if used as
9829 operator-list.
9830
9831 2015-05-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
9832
9833 * genmatch.c (parser::parse_operator_list): Check for CPP_CLOSE_PAREN
9834 after end of id-list.
9835
9836 2015-05-22 Jan Hubicka <hubicka@ucw.cz>
9837
9838 * tree.c (gimple_canonical_types_compatible_p): Sanity check that
9839 we do not try to compute canonical type for type that does not need
9840 alias set.
9841 (verify_type): Drop FIXME for METHOD_TYPE, update FIXME for
9842 FUNCITON_TYPE.
9843 * tree.h (type_with_alias_set_p): New.
9844
9845 2015-05-22 Jan Hubicka <hubicka@ucw.cz>
9846
9847 * tree.c (gimple_canonical_types_compatible_p): Do not compare
9848 function attributes.
9849 (verify_type): Remove METHOD_TYPE FIXME; update FUNCTION_TYPE.
9850
9851 2015-05-22 Jim Wilson <jim.wilson@linaro.org>
9852
9853 * Makefile.in (check_gcc_parallelize): Delete.
9854 (lang_checks_parallelized): Update comment.
9855
9856 2015-05-22 Mikhail Maltsev <maltsevm@gmail.com>
9857
9858 PR rtl-optimization/66237
9859 * bb-reorder.c (fix_crossing_conditional_branches): Fix wrong
9860 location of an "as_a" cast.
9861
9862 2015-05-22 Jeff Law <law@redhat.com>
9863
9864 * config/pa/pa.md (non-canonical shift-add insns): Remove.
9865 (peepholes with non-canonical RTL sources): Remove.
9866 (peepholes for indexed stores of FP regs in integer modes): Match and
9867 generate canonical RTL.
9868
9869 2015-05-22 Marc Glisse <marc.glisse@inria.fr>
9870
9871 PR tree-optimization/63387
9872 * match.pd ((X /[ex] A) * A -> X): Remove unnecessary condition.
9873 ((x ord x) & (y ord y) -> (x ord y),
9874 (x ord x) & (x ord y) -> (x ord y)): New simplifications.
9875 * fold-const.c (tree_unary_nonnegative_warnv_p) <ABS_EXPR>: Handle
9876 vectors like scalars.
9877
9878 2015-05-22 Marc Glisse <marc.glisse@inria.fr>
9879
9880 * convert.c (convert_to_integer, convert_to_vector): Include the
9881 types in the error message.
9882
9883 2015-05-22 Marc Glisse <marc.glisse@inria.fr>
9884
9885 * match.pd ((x | y) & ~x -> y & ~x, (x & y) | ~x -> y | ~x): New
9886 simplifications.
9887
9888 2015-05-22 Jeff Law <law@redhat.com>
9889
9890 * config/pa/pa.md (integer_indexed_store splitters): Use
9891 mem_shadd_operand. Use ASHIFT rather than MULT in the resulting
9892 insns -- adjusting the constant 2nd operand accordingly.
9893
9894 * combine.c (try_combine): Canonicalize (plus (mult X pow2) Y) into
9895 (plus (ashift X log2) Y) if it is a split point.
9896
9897 * config/pa/pa.c (mem_shadd_or_shadd_rtx_p): New function factoredx
9898 out of hppa_legitimize_address to handle both forms of a multiply
9899 by 2, 4 or 8.
9900 (hppa_legitimize_address): Use mem_shadd_or_shadd_rtx_p.
9901 Always generate the ASHIFT variant as the result is not directly
9902 used in a MEM. Update comments and refactor slightly to improve
9903 readability.
9904
9905 2015-05-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9906
9907 PR target/65491
9908 * config/aarch64/aarch64.c (aarch64_short_vector_p): Move above
9909 aarch64_composite_type_p. Remove check for aarch64_composite_type_p.
9910 (aarch64_composite_type_p): Return false if given type and mode are
9911 for a short vector.
9912
9913 2015-05-22 Richard Biener <rguenther@suse.de>
9914
9915 * tree-vectorizer.h (struct _slp_oprnd_info): Add second_pattern
9916 member.
9917 * tree-vect-loop.c (vect_analyze_loop_operations): Look at
9918 patterns when determining whether SLP is pure.
9919 (vect_is_slp_reduction): Remove check for pattern stmts.
9920 (vect_is_simple_reduction_1): Remove dead code.
9921 * tree-vect-slp.c (vect_create_oprnd_info): Initialize second_pattern.
9922 (vect_get_and_check_slp_defs): Pass in the stmt number.
9923 Allow the first def in a reduction to be not a pattern stmt when
9924 the rest of the stmts def are patterns.
9925 (vect_build_slp_tree_1): Allow tcc_expression codes like
9926 SAD_EXPR and DOT_PROD_EXPR.
9927 (vect_build_slp_tree): Adjust.
9928 (vect_analyze_slp): Refactor and move BB vect error message ...
9929 (vect_slp_analyze_bb_1): ... here.
9930
9931 2015-05-22 Aldy Hernandez <aldyh@redhat.com>
9932
9933 * tree-switch-conversion.c (build_one_array): Set DECL_IGNORED_P
9934 for CSWTCH temporary.
9935
9936 2015-05-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9937
9938 * config/arm/arm.c (arm_new_rtx_costs): Handle UNSPEC_VOLATILE.
9939 (arm_unspec_cost): Allow UNSPEC_VOLATILE. Do not recurse inside
9940 unknown unspecs.
9941
9942 2015-05-22 Richard Biener <rguenther@suse.de>
9943
9944 PR tree-optimization/66251
9945 * tree-vect-stmts.c (vectorizable_conversion): Properly
9946 set STMT_VINFO_VEC_STMT even for the SLP case.
9947
9948 2015-05-22 Marek Polacek <polacek@redhat.com>
9949
9950 * doc/extend.texi: Use @pxref instead of @xref.
9951
9952 2015-05-22 hiraditya <hiraditya@msn.com>
9953
9954 * gimple.h (gimple_expr_type): Refactor to make it concise. Remove
9955 redundant if.
9956
9957 2015-05-22 Richard Biener <rguenther@suse.de>
9958
9959 PR tree-optimization/65701
9960 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
9961 Move peeling cost models into one place. Peel for alignment
9962 for single loads only if an aligned load is cheaper than
9963 an unaligned load.
9964
9965 2015-05-22 Marek Polacek <polacek@redhat.com>
9966
9967 PR c/47043
9968 * doc/extend.texi (Enumerator Attributes): New section.
9969 Document syntax of enumerator attributes.
9970
9971 2015-05-22 Richard Biener <rguenther@suse.de>
9972
9973 * tree-vect-loop.c (get_reduction_op): New function.
9974 (vect_model_reduction_cost): Use it, add reduc_index parameter.
9975 Make ready for BB reductions.
9976 (vect_create_epilog_for_reduction): Use get_reduction_op.
9977 (vectorizable_reduction): Init reduc_index to a valid value.
9978 Adjust vect_model_reduction_cost call.
9979 * tree-vect-slp.c (vect_get_constant_vectors): Use the proper
9980 operand for reduction defaults. Add SAD_EXPR support.
9981 Assert we have a neutral op for SLP reductions.
9982 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): When
9983 walking pattern stmt ops only recurse to SSA names.
9984
9985 2015-05-22 Richard Biener <rguenther@suse.de>
9986
9987 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Replace
9988 assert with guard, remove check on detected reduction.
9989 (vect_recog_sad_pattern): Likewise.
9990 (vect_recog_widen_sum_pattern): Likewise.
9991
9992 2015-05-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9993
9994 * config/aarch64/arm_neon.h (vaeseq_u8): Add __extension__ and
9995 __always_inline__ attribute.
9996 (vaesdq_u8): Likewise.
9997 (vaesmcq_u8): Likewise.
9998 (vaesimcq_u8): Likewise.
9999 (vsha1cq_u32): Likewise.
10000 (vsha1mq_u32): Likewise.
10001 (vsha1pq_u32): Likewise.
10002 (vsha1h_u32): Likewise.
10003 (vsha1su0q_u32): Likewise.
10004 (vsha1su1q_u32): Likewise.
10005 (vsha256hq_u32): Likewise.
10006 (vsha256h2q_u32): Likewise.
10007 (vsha256su0q_u32): Likewise.
10008 (vsha256su1q_u32): Likewise.
10009 (vmull_p64): Likewise.
10010 (vmull_high_p64): Likewise.
10011
10012 2015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10013
10014 * final.c (final_scan_insn): Don't check HAVE_peephole with the
10015 preprocessor.
10016 * output.h: Likewise.
10017 * genconfig.c (main): Alwways define HAVE_peephole.
10018 * genpeep.c: Don't emit checks of HAVE_peephole.
10019
10020 2015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10021
10022 * combine.c, expmed.c, expr.c, optabs.c optabs.h, toplev.c: DOn't
10023 check HAVE_conditional_move with the preprocessor.
10024
10025 2015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10026
10027 * genconfig.c (main): Always define HAVE_conditional_move.
10028 * combine.c, expmed.c, expr.c, ifcvt.c, optabs.c, optabs.h,
10029 toplev.c, tree-ssa-phiopt.c: Don't check if HAVE_conditional_move
10030 is defined.
10031
10032 2015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10033
10034 * combine.c, df-problems.c, df-scan.c, emit-rtl.c, reginfo.c,
10035 reload.c, rtlanal.c: Remove comparison of ARG_FRAME_POINTER_REGNUM
10036 and FRAME_POINTER_REGNUM with the preprocessor.
10037
10038 2015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10039
10040 * defaults.h: Add default for STACK_PUSH_CODE.
10041 * expr.c: Don't redefine STACK_PUSH_CODE.
10042 * recog.c: Likewise.
10043
10044 2015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10045
10046 * builtins.c, dwarf2cfi.c, explow.c, expr.c, recog.c,
10047 sched-deps.c: Use if instead of preprocessor checks with
10048 STACK_GROWS_DOWNWARD.
10049
10050 2015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10051
10052 * *.c: Check the value of STACK_GROWS_DOWNWARD rather than if it
10053 is defined.
10054 * config/**/*.h: Define STACK_GROWS_DOWNWARD to an integer.
10055 * defaults.h: Provide default for STACK_GROWS_DOWNWARD.
10056 * doc/tm.texi.in: Update references to STACK_GROWS_DOWNWARD.
10057 * doc/tm.texi: Regenerate.
10058
10059 2015-05-21 H.J. Lu <hongjiu.lu@intel.com>
10060
10061 PR target/66232
10062 * config/i386/constraints.md (Bg): New constraint for GOT memory
10063 operand.
10064 * config/i386/i386.md (*call_got_x32): New pattern.
10065 (*call_value_got_x32): Likewise.
10066 * config/i386/predicates.md (GOT_memory_operand): New predicate.
10067
10068 2015-05-21 Jakub Jelinek <jakub@redhat.com>
10069
10070 PR tree-optimization/66233
10071 * match.pd (ocvt (icvt@1 @0)): Don't handle vector types.
10072 Simplify.
10073
10074 2015-05-21 Jeff Law <law@redhat.com>
10075
10076 * config/pa/pa.md (add-with-constant splitter): Use ASHIFT rather
10077 than MULT for shadd sequences.
10078
10079 2015-05-08 Jan Hubicka <hubicka@ucw.cz>
10080
10081 * alias.c (alias_stats): New static var.
10082 (alias_sets_conflict_p, alias_sets_must_conflict_p): Update stats.
10083 (dump_alias_stats_in_alias_c): New function.
10084 * alias.h (dump_alias_stats_in_alias_c): Declare.
10085 * tree-ssa-alias.c (dump_alias_stats): Call it.
10086
10087 2015-05-08 Michael Matz <matz@suse.de>
10088
10089 * tree-vectorizer.h (struct _stmt_vec_info): Rename stride_load_p
10090 to strided_p.
10091 (STMT_VINFO_STRIDE_LOAD_P): Rename to ...
10092 (STMT_VINFO_STRIDED_P): ... this.
10093 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust.
10094 (vect_verify_datarefs_alignment): Likewise.
10095 (vect_enhance_data_refs_alignment): Likewise.
10096 (vect_analyze_data_ref_access): Likewise.
10097 (vect_analyze_data_refs): Accept strided stores.
10098 * tree-vect-stmts.c (vect_model_store_cost): Count strided stores.
10099 (vect_model_load_cost): Adjust for macro rename.
10100 (vectorizable_mask_load_store): Likewise.
10101 (vectorizable_load): Likewise.
10102 (vectorizable_store): Open code strided stores.
10103
10104 2015-05-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10105
10106 * doc/sourcebuild.texi (7.2.3.9 Other hardware attributes):
10107 Document sqrt_insn.
10108
10109 2015-05-21 Richard Biener <rguenther@suse.de>
10110
10111 PR c++/66211
10112 * match.pd: Guard pattern optimzing (int)(float)int
10113 conversions to apply only on GIMPLE.
10114
10115 2015-05-21 Jeff Law <law@redhat.com>
10116
10117 * combine.c (find_split_point): Handle ASHIFT like MULT to encourage
10118 multiply-accumulate/shift-add insn generation.
10119
10120 2015-05-21 Oleg Endo <olegendo@gcc.gnu.org>
10121
10122 PR target/54236
10123 * config/sh/sh.md (*round_int_even): Reject pattern if operands[0] and
10124 operands[1] are the same.
10125
10126 2015-05-21 Ilya Enkovich <enkovich.gnu@gmail.com>
10127
10128 PR middle-end/66221
10129 * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Use
10130 build_distinct_type_copy to copy bounds.
10131
10132 2015-05-21 Thomas Schwinge <thomas@codesourcery.com>
10133
10134 * genrecog.c (MAX_DEPTH, MIN_NUM_STATEMENTS, MAX_NUM_STATEMENTS):
10135 Change to unsigned int.
10136
10137 2015-05-20 Jeff Law <law@redhat.com>
10138
10139 * config/pa/pa.c (pa_print_operand): New 'o' output modifier.
10140 (pa_mem_shadd_constant_p): Renamed from pa_shadd_constant_p.
10141 (pa_shadd_constant_p): Allow constants for shadd insns rather
10142 than valid scaling constants for memory addresses.
10143 * config/pa/pa-protos.h (pa_mem_shadd_constant_p): Add prototype.
10144 * config/pa/predicates.md (mem_shadd_operand): New predicate.
10145 * config/pa/pa.md (shift-add insns using MULT): Use mem_shadd_operand.
10146 (shift-add insns using ASHIFT): New patterns.
10147
10148 2015-05-20 Mikhail Maltsev <maltsevm@gmail.com>
10149
10150 * bb-reorder.c (set_edge_can_fallthru_flag): Use rtx_jump_insn where
10151 feasible.
10152 (fix_up_fall_thru_edges): Likewise.
10153 (fix_crossing_conditional_branches): Likewise. Promote jump targets
10154 from to rtx_insn to rtx_code_label where feasible.
10155 * bt-load.c (move_btr_def): Remove as-a cast of the value returned by
10156 gen_move_insn (returned type changed to rtx_insn).
10157 * builtins.c (expand_errno_check): Fix arguments of
10158 do_compare_rtx_and_jump (now expects rtx_code_label).
10159 (expand_builtin_acc_on_device): Likewise.
10160 * cfgcleanup.c (try_simplify_condjump): Add cast when calling
10161 invert_jump (now exprects rtx_jump_insn).
10162 * cfgexpand.c (label_rtx_for_bb): Promote return type to rtx_code_label.
10163 (construct_init_block): Use rtx_code_label.
10164 * cfgrtl.c (block_label): Promote return type to rtx_code_label.
10165 (try_redirect_by_replacing_jump): Use cast to rtx_jump_insn when
10166 calling redirect_jump.
10167 (patch_jump_insn): Likewise.
10168 (redirect_branch_edge): Likewise.
10169 (force_nonfallthru_and_redirect): Likewise.
10170 (fixup_reorder_chain): Explicitly use rtx_jump_insn instead of rtx_insn
10171 when suitable.
10172 (rtl_lv_add_condition_to_bb): Update call of do_compare_rtx_and_jump.
10173 * cfgrtl.h: Promote return type of block_label to rtx_code_label.
10174 * config/bfin/bfin.c (hwloop_optimize): Fix call of emit_label_before.
10175 * config/i386/i386.c (ix86_emit_cmove): Explicitly use rtx_code_label
10176 to store the value retured by gen_label_rtx.
10177 * config/mips/mips.c (mips16_split_long_branches): Promote rtx_insn to
10178 rtx_jump_insn.
10179 * config/sh/sh.c (gen_far_branch): Likewise. Fix call of invert_jump.
10180 (split_branches): Fix calls of redirect_jump.
10181 * dojump.c (jumpifnot): Promote argument type from rtx to
10182 rtx_code_label.
10183 (jumpifnot_1): Likewise.
10184 (jumpif): Likewise.
10185 (jumpif_1): Likewise.
10186 (do_jump_1): Likewise.
10187 (do_jump): Likewise. Use rtx_code_label when feasible.
10188 (do_jump_by_parts_greater_rtx): Likewise.
10189 (do_jump_by_parts_zero_rtx): Likewise.
10190 (do_jump_by_parts_equality_rtx): Likewise.
10191 (do_compare_rtx_and_jump): Likewise.
10192 * dojump.h: Update function prototypes.
10193 * dse.c (emit_inc_dec_insn_before): Remove case (gen_move_insn now
10194 returns rtx_insn).
10195 * emit-rtl.c (emit_jump_insn_before_noloc): Promote return type to
10196 rtx_jump_insn.
10197 (emit_label_before): Likewise.
10198 (emit_jump_insn_after_noloc): Likewise.
10199 (emit_jump_insn_after_setloc): Likewise.
10200 (emit_jump_insn_after): Likewise
10201 (emit_jump_insn_before_setloc): Likewise.
10202 (emit_jump_insn_before): Likewise.
10203 (emit_label_before): Promote return type to rtx_code_label.
10204 (emit_label): Likewise.
10205 * except.c (sjlj_emit_dispatch_table): Use jump_target_rtx.
10206 * explow.c (emit_stack_save): Use gen_move_insn_uncast instead of
10207 gen_move_insn.
10208 (emit_stack_restore): Likewise.
10209 * expmed.c (emit_store_flag_force): Fix calls of do_compare_rtx_and_jump.
10210 (do_cmp_and_jump): Likewise.
10211 * expr.c (expand_expr_real_2): Likewise. Promote some local variables
10212 from rtx to rtx_code_label.
10213 (gen_move_insn_uncast): New function.
10214 * expr.h: Update return type of gen_move_insn (promote to rtx_insn).
10215 * function.c (convert_jumps_to_returns): Fix call of redirect_jump.
10216 * gcse.c (pre_insert_copy_insn): Use rtx_insn instead of rtx.
10217 * ifcvt.c (dead_or_predicable): Use rtx_jump_insn when calling
10218 invert_jump_1 and redirect_jump_1.
10219 * internal-fn.c (expand_arith_overflow_result_store): Fix call of
10220 do_compare_rtx_and_jump.
10221 (expand_addsub_overflow): Likewise.
10222 (expand_neg_overflow): Likewise.
10223 (expand_mul_overflow): Likewise.
10224 * ira.c (split_live_ranges_for_shrink_wrap): Use rtx_insn for
10225 return value of gen_move_insn.
10226 * jump.c (redirect_jump): Promote argument from rtx to rtx_jump_insn.
10227 * loop-doloop.c (add_test): Use rtx_code_label.
10228 (doloop_modify): Likewise.
10229 (doloop_optimize): Likewise.
10230 * loop-unroll.c (compare_and_jump_seq): Promote rtx to rtx_code_label.
10231 * lra-constraints.c (emit_spill_move): Remove cast of value returned
10232 by gen_move_insn.
10233 (inherit_reload_reg): Add cast when calling dump_insn_slim.
10234 (split_reg): Likewise.
10235 * modulo-sched.c (schedule_reg_moves): Remove cast of value returned by
10236 gen_move_insn.
10237 * optabs.c (expand_binop_directly): Remove casts of values returned by
10238 maybe_gen_insn.
10239 (expand_unop_direct): Likewise.
10240 (expand_abs): Likewise.
10241 (maybe_emit_unop_insn): Likewise.
10242 (maybe_gen_insn): Promote return type to rtx_insn.
10243 * optabs.h: Update prototype of maybe_gen_insn.
10244 * postreload-gcse.c (eliminate_partially_redundant_load): Remove
10245 redundant cast.
10246 * recog.c (struct peep2_insn_data): Promote type of insn field to
10247 rtx_insn.
10248 (peep2_reinit_state): Use NULL instead of NULL_RTX.
10249 (peep2_attempt): Remove casts of insn in peep2_insn_data.
10250 (peep2_fill_buffer): Promote argument from rtx to rtx_insn
10251 * recog.h (struct insn_gen_fn): Promote return types of function
10252 pointers and operator ().from rtx to rtx_insn.
10253 * reorg.c (fill_simple_delay_slots): Promote rtx_insn to rtx_jump_insn.
10254 (fill_eager_delay_slots): Likewise.
10255 (relax_delay_slots): Likewise.
10256 (make_return_insns): Likewise.
10257 (dbr_schedule): Likewise.
10258 (optimize_skips): Likewise.
10259 (reorg_redirect_jump): Likewise.
10260 (fill_slots_from_thread): Likewise.
10261 * reorg.h: Update prototypes.
10262 * resource.c (find_dead_or_set_registers): Use dyn_cast to
10263 rtx_jump_insn instead of check. Use it's jump_target method.
10264 * rtl.h (rtx_jump_insn::jump_label): Define new method.
10265 (rtx_jump_insn::jump_target): Define new method.
10266 (rtx_jump_insn::set_jump_target): Define new method.
10267 * rtlanal.c (tablejump_p): Promote type of one local variable.
10268 * sched-deps.c (sched_analyze_2): Promote rtx to rtx_insn_list.
10269 (sched_analyze_insn): Likewise.
10270 * sched-vis.c (print_insn_with_notes): Promote rtx to rtx_insn.
10271 (print_insn): Likewise.
10272 * stmt.c (label_rtx): Promote return type to rtx_insn.
10273 (force_label_rtx): Likewise.
10274 (jump_target_rtx): Define new function.
10275 (expand_label): Use it, get rid of one cast.
10276 (expand_naked_return): Promote rtx to rtx_code_label.
10277 (do_jump_if_equal): Fix do_compare_rtx_and_jump call.
10278 (expand_case): Use rtx_code_label instread of rtx where feasible.
10279 (expand_sjlj_dispatch_table): Likewise.
10280 (emit_case_nodes): Likewise.
10281 * stmt.h: Declare jump_target_rtx. Update prototypes. Fix comments.
10282 * store-motion.c (insert_store): Make use of new return type of
10283 gen_move_insn and remove a cast.
10284 (replace_store_insn): Likewise.
10285
10286 2015-05-20 Max Filippov <jcmvbkbc@gmail.com>
10287
10288 * config/xtensa/xtensa.c (init_alignment_context): Replace MULT
10289 by BITS_PER_UNIT with ASHIFT by exact_log2 (BITS_PER_UNIT).
10290
10291 2015-05-20 Jeff Law <law@redhat.com>
10292
10293 * tree-ssa-threadupdate.c (mark_threaded_blocks): Properly
10294 dispose of the jump thread path when the jump threading
10295 opportunity is cancelled.
10296
10297 2015-05-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
10298
10299 * diagnostic.c (diagnostic_print_caret_line): Fix off-by-one error
10300 when printing the caret character.
10301
10302 2015-05-20 Marek Polacek <polacek@redhat.com>
10303
10304 * cfgexpand.c (expand_debug_expr): Use UNARY_CLASS_P.
10305
10306 2015-05-20 Marek Polacek <polacek@redhat.com>
10307
10308 * expr.c (expand_cond_expr_using_cmove): Use COMPARISON_CLASS_P.
10309 * gimple-expr.c (gimple_cond_get_ops_from_tree): Likewise.
10310 * gimple-fold.c (canonicalize_bool): Likewise.
10311 (same_bool_result_p): Likewise.
10312 * tree-if-conv.c (parse_predicate): Likewise.
10313
10314 2015-05-20 Marek Polacek <polacek@redhat.com>
10315
10316 * gimple-fold.c (fold_const_aggregate_ref_1): Use DECL_P.
10317 * gimplify.c (gimplify_modify_expr_rhs): Likewise.
10318
10319 2015-05-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10320
10321 * config/aarch64/aarch64.c (aarch64_class_max_nregs):
10322 Use UNITS_PER_VREG and UNITS_PER_WORD instead of their direct
10323 values.
10324
10325 2015-05-20 Robert Suchanek <robert.suchanek@imgtec.com>
10326
10327 * config/mips/mips.h (micromips_globals): Declare.
10328
10329 2015-05-20 David Malcolm <dmalcolm@redhat.com>
10330
10331 * timevar.def (TV_INITIALIZE_RTL): New.
10332 * toplev.c (initialize_rtl): Use an auto_timevar to account this
10333 function's time to TV_INITIALIZE_RTL.
10334
10335 2015-05-20 Ilya Enkovich <enkovich.gnu@gmail.com>
10336
10337 * tree-chkp.c (chkp_maybe_copy_and_register_bounds): Remove useless
10338 gimple_build_nop calls.
10339 (chkp_find_bounds_for_elem): Likewise.
10340 (chkp_get_zero_bounds): Likewise.
10341 (chkp_get_none_bounds): Likewise.
10342 (chkp_get_bounds_by_definition): Likewise.
10343 (chkp_generate_extern_var_bounds): Likewise.
10344 (chkp_get_bounds_for_decl_addr): Likewise.
10345 (chkp_get_bounds_for_string_cst): Likewise.
10346
10347 2015-05-20 Bin Cheng <bin.cheng@arm.com>
10348
10349 PR tree-optimization/65447
10350 * tree-ssa-loop-ivopts.c (struct iv_use): New fields.
10351 (dump_use, dump_uses): Support to dump sub use.
10352 (record_use): New parameters to support sub use. Remove call to
10353 dump_use.
10354 (record_sub_use, record_group_use): New functions.
10355 (compute_max_addr_offset, split_all_small_groups): New functions.
10356 (group_address_uses, rewrite_use_address): New functions.
10357 (strip_offset): New declaration.
10358 (find_interesting_uses_address): Call record_group_use.
10359 (add_candidate): New assertion.
10360 (infinite_cost_p): Move definition forward.
10361 (add_costs): Check INFTY cost and return immediately.
10362 (get_computation_cost_at): Clear setup cost and dependent bitmap
10363 for sub uses.
10364 (determine_use_iv_cost_address): Compute cost for sub uses.
10365 (rewrite_use_address_1): Rename from old rewrite_use_address.
10366 (free_loop_data): Free sub uses.
10367 (tree_ssa_iv_optimize_loop): Call group_address_uses.
10368
10369 2015-05-20 Kugan Vivekanandarajah <kuganv@linaro.org>
10370 Jim Wilson <jim.wilson@linaro.org>
10371
10372 * config/arm/aarch-common-protos.h (struct mem_cost_table): Added
10373 new fields loadv and storev.
10374 * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
10375 Initialize loadv and storev.
10376 * config/arm/aarch-cost-tables.h (generic_extra_costs): Likewise.
10377 (cortexa53_extra_costs): Likewise.
10378 (cortexa57_extra_costs): Likewise.
10379 (xgene1_extra_costs): Likewise.
10380 * config/aarch64/aarch64.c (aarch64_rtx_costs): Update vector
10381 rtx_costs.
10382
10383 2015-05-20 Kugan Vivekanandarajah <kuganv@linaro.org>
10384
10385 * config/arm/arm.c (cortexa9_extra_costs): Initialize loadv and
10386 storev.
10387 (cortexa8_extra_costs): Likewise.
10388 (cortexa5_extra_costs): Likewise.
10389 (cortexa7_extra_costs): Likewise.
10390 (cortexa12_extra_costs): Likewise.
10391 (cortexa15_extra_costs): Likewise.
10392 (v7m_extra_costs): Likewise.
10393
10394 2015-05-20 Jeff Law <law@redhat.com>
10395
10396 * tree-ssa-threadupdate.c (thread_single_edge): Use delete_jump_thread
10397 instead of open-coded version. Also delete the jump thread created
10398 within this function.
10399
10400 2015-05-20 Alan Modra <amodra@gmail.com>
10401
10402 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Return
10403 stack adjusting insn. Formatting.
10404 (rs6000_emit_prologue): Track stack adjusting insn, and use of
10405 r12. If possible, emit first -fsplit-stack arg pointer insn
10406 before stack adjust. Don't use r12 to save cr if split-stack.
10407
10408 2015-05-20 Alan Modra <amodra@gmail.com>
10409
10410 * common/config/rs6000/rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK):
10411 Define.
10412 (rs6000_supports_split_stack): New function.
10413 * gcc/config/rs6000/rs6000.c (machine_function): Add
10414 split_stack_arg_pointer.
10415 (TARGET_EXTRA_LIVE_ON_ENTRY, TARGET_INTERNAL_ARG_POINTER): Define.
10416 (setup_incoming_varargs): Use crtl->args.internal_arg_pointer
10417 rather than virtual_incoming_args_rtx.
10418 (rs6000_va_start): Likewise.
10419 (split_stack_arg_pointer_used_p): New function.
10420 (rs6000_emit_prologue): Set up arg pointer for -fsplit-stack.
10421 (morestack_ref): New var.
10422 (gen_add3_const, rs6000_expand_split_stack_prologue,
10423 rs6000_internal_arg_pointer, rs6000_live_on_entry,
10424 rs6000_split_stack_space_check): New functions.
10425 (rs6000_elf_file_end): Call file_end_indicate_split_stack.
10426 * gcc/config/rs6000/rs6000.md (UNSPEC_STACK_CHECK): Define.
10427 (UNSPECV_SPLIT_STACK_RETURN): Define.
10428 (split_stack_prologue, load_split_stack_limit,
10429 load_split_stack_limit_di, load_split_stack_limit_si,
10430 split_stack_return, split_stack_space_check): New expands and insns.
10431 * gcc/config/rs6000/rs6000-protos.h
10432 (rs6000_expand_split_stack_prologue): Declare.
10433 (rs6000_split_stack_space_check): Declare.
10434
10435 2015-05-20 Alan Modra <amodra@gmail.com>
10436
10437 * config/rs6000/rs6000.c (struct rs6000_stack): Correct comments.
10438 (direct_return): Test vrsave_size rather than vrsave_mask.
10439 (rs6000_emit_prologue): Likewise. Remove redundant altivec tests.
10440 (rs6000_emit_epilogue): Likewise.
10441
10442 2015-05-20 Alan Modra <amodra@gmail.com>
10443
10444 * config/rs6000/rs6000.c (rs6000_stack_info): Don't zero offsets
10445 when not saving registers.
10446 (debug_stack_info): Adjust to omit printing unused offsets,
10447 as before.
10448 (rs6000_emit_epilogue): Adjust use_backchain_to_restore_sp
10449 expression.
10450
10451 2015-05-19 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
10452
10453 PR c++/65835
10454 * config/i386/winnt.c (struct wrapped_symbol_hasher): Change
10455 value_type to const char *.
10456
10457 2015-05-19 Sandra Loosemore <sandra@codesourcery.com>
10458
10459 * config.gcc [powerpc*-*-linux*]: Allow --enable-targets=all
10460 to build a biarch toolchain again.
10461
10462 2015-05-19 Jan Hubicka <hubicka@ucw.cz>
10463
10464 * ipa-devirt.c (type_in_anonymous_namespace_p): Return true
10465 or implicit declarations.
10466 (odr_type_p): Check that TYPE_NAME is TYPE_DECL before looking
10467 into it.
10468 (get_odr_type): Check type has linkage before adding bases.
10469 (register_odr_type): Check that type has linkage before adding it.
10470 (type_known_to_have_no_deriavations_p): Rename to ..
10471 (type_known_to_have_no_derivations_p): This one.
10472 * ipa-utils.h (type_known_to_have_no_deriavations_p): Rename to ..
10473 (type_known_to_have_no_derivations_p): This one.
10474 * ipa-polymorphic-call.c
10475 (ipa_polymorphic_call_context::restrict_to_inner_type): Check that
10476 type has linkage.
10477
10478 2015-05-19 Eric Botcazou <ebotcazou@adacore.com>
10479
10480 * stor-layout.c (finalize_type_size): Use AGGREGATE_TYPE_P.
10481 (layout_type): Use RECORD_OR_UNION_TYPE_P.
10482
10483 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10484
10485 * config/s390/s390.c (s390_vector_bool_type_p): New function.
10486 (s390_invalid_binary_op): New function.
10487 (TARGET_INVALID_BINARY_OP): Define macro.
10488
10489 2015-05-19 David Sherwood <david.sherwood@arm.com>
10490
10491 * loop-invariant.c (create_new_invariant): Don't calculate address cost
10492 if mode is not a scalar integer.
10493 (get_inv_cost): Increase computational cost for unused invariants.
10494
10495 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10496
10497 * config.gcc: Add vecintrin.h to extra_headers. Add s390-c.o to
10498 c_target_objs and cxx_target_objs. Add t-s390 to tmake_file.
10499 * config/s390/s390-builtin-types.def: New file.
10500 * config/s390/s390-builtins.def: New file.
10501 * config/s390/s390-builtins.h: New file.
10502 * config/s390/s390-c.c: New file.
10503 * config/s390/s390-modes.def: Add modes CCVEQANY, CCVH,
10504 CCVHANY, CCVHU, CCVHUANY, CCVFHANY, CCVFHEANY.
10505 * config/s390/s390-protos.h (s390_expand_vec_compare_cc)
10506 (s390_cpu_cpp_builtins, s390_register_target_pragmas): Add
10507 prototypes.
10508 * config/s390/s390.c (s390-builtins.h, s390-builtins.def):
10509 Include.
10510 (flags_builtin, flags_overloaded_builtin_var, s390_builtin_types)
10511 (s390_builtin_fn_types, s390_builtin_decls, code_for_builtin): New
10512 variable definitions.
10513 (s390_const_operand_ok): New function.
10514 (s390_expand_builtin): Rewrite.
10515 (s390_init_builtins): New function.
10516 (s390_handle_vectorbool_attribute): New function.
10517 (s390_attribute_table): Add s390_vector_bool attribute.
10518 (s390_match_ccmode_set): Handle new cc modes CCVH, CCVHU.
10519 (s390_branch_condition_mask): Generate masks for new modes.
10520 (s390_expand_vec_compare_cc): New function.
10521 (s390_mangle_type): Add mangling for vector bool types.
10522 (enum s390_builtin): Remove.
10523 (s390_atomic_assign_expand_fenv): Rename constants for sfpc and
10524 efpc builtins.
10525 * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Call
10526 s390_cpu_cpp_builtins.
10527 (REGISTER_TARGET_PRAGMAS): New macro.
10528 * config/s390/s390.md: Define more UNSPEC_VEC_* constants.
10529 (insn_cmp mode attribute): Add new CC modes.
10530 (s390_sfpc, s390_efpc): Rename patterns to sfpc and efpc.
10531 (lcbb): New pattern definition.
10532 * config/s390/s390intrin.h: Include vecintrin.h.
10533 * config/s390/t-s390: New file.
10534 * config/s390/vecintrin.h: New file.
10535 * config/s390/vector.md: Include vx-builtins.md.
10536 * config/s390/vx-builtins.md: New file.S/390 zvector builtin
10537 support.
10538
10539 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10540
10541 * config/s390/s390-modes.def: Add new modes CCVEQ, CCVFH, and
10542 CCVFHE.
10543 * config/s390/s390.c (s390_match_ccmode_set): Handle new modes.
10544 (s390_select_ccmode): Likewise.
10545 (s390_canonicalize_comparison): Swap operands if necessary.
10546 (s390_expand_vec_compare_scalar): Expand DFmode compare using
10547 single element vector instructions.
10548 (s390_emit_compare): Call s390_expand_vec_compare_scalar.
10549 (s390_branch_condition_mask): Generate CC masks for the new modes.
10550 * config/s390/s390.md (v0, vf, vd): New mode attributes.
10551 (VFCMP, asm_fcmp, insn_cmp): New mode iterator and attributes.
10552 (*vec_cmp<insn_cmp>df_cconly, *fixuns_truncdfdi2_z13)
10553 (*fix_trunc<BFP:mode><GPR:mode>2_bfp, *floatunsdidf2_z13)
10554 (*floatuns<GPR:mode><FP:mode>2, *extendsfdf2_z13)
10555 (*extend<DSF:mode><BFP:mode>2): New insn definition.
10556 (fix_trunc<BFP:mode><GPR:mode>2_bfp, loatuns<GPR:mode><FP:mode>2)
10557 (extend<DSF:mode><BFP:mode>2): Turn into expander.
10558 (floatdi<mode>2, truncdfsf2, add<mode>3, sub<mode>3, mul<mode>3)
10559 (div<mode>3, *neg<mode>2, *abs<mode>2, *negabs<mode>2)
10560 (sqrt<mode>2): Add vector instruction.
10561
10562 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10563
10564 * config/s390/constraints.md (j00, jm1, jxx, jyy, v): New
10565 constraints.
10566 * config/s390/predicates.md (const0_operand, constm1_operand)
10567 (constable_operand): Accept vector operands.
10568 * config/s390/s390-modes.def: Add supported vector modes.
10569 * config/s390/s390-protos.h (s390_cannot_change_mode_class)
10570 (s390_function_arg_vector, s390_contiguous_bitmask_vector_p)
10571 (s390_bytemask_vector_p, s390_expand_vec_strlen)
10572 (s390_expand_vec_compare, s390_expand_vcond)
10573 (s390_expand_vec_init): Add prototypes.
10574 * config/s390/s390.c (VEC_ARG_NUM_REG): New macro.
10575 (s390_vector_mode_supported_p): New function.
10576 (s390_contiguous_bitmask_p): Mask out the irrelevant bits.
10577 (s390_contiguous_bitmask_vector_p): New function.
10578 (s390_bytemask_vector_p): New function.
10579 (s390_split_ok_p): Vector regs don't work either.
10580 (regclass_map): Add VEC_REGS.
10581 (s390_legitimate_constant_p): Handle vector constants.
10582 (s390_cannot_force_const_mem): Handle CONST_VECTOR.
10583 (legitimate_reload_vector_constant_p): New function.
10584 (s390_preferred_reload_class): Handle CONST_VECTOR.
10585 (s390_reload_symref_address): Likewise.
10586 (s390_secondary_reload): Vector memory instructions only support
10587 short displacements. Rename reload*_nonoffmem* to reload*_la*.
10588 (s390_emit_ccraw_jump): New function.
10589 (s390_expand_vec_strlen): New function.
10590 (s390_expand_vec_compare): New function.
10591 (s390_expand_vcond): New function.
10592 (s390_expand_vec_init): New function.
10593 (s390_dwarf_frame_reg_mode): New function.
10594 (print_operand): Handle addresses with 'O' and 'R' constraints.
10595 (NR_C_MODES, constant_modes): Add vector modes.
10596 (s390_output_pool_entry): Handle vector constants.
10597 (s390_hard_regno_mode_ok): Handle vector registers.
10598 (s390_class_max_nregs): Likewise.
10599 (s390_cannot_change_mode_class): New function.
10600 (s390_invalid_arg_for_unprototyped_fn): New function.
10601 (s390_function_arg_vector): New function.
10602 (s390_function_arg_float): Remove size variable.
10603 (s390_pass_by_reference): Handle vector arguments.
10604 (s390_function_arg_advance): Likewise.
10605 (s390_function_arg): Likewise.
10606 (s390_return_in_memory): Vector values are returned in a VR if
10607 possible.
10608 (s390_function_and_libcall_value): Handle vector arguments.
10609 (s390_gimplify_va_arg): Likewise.
10610 (s390_call_saved_register_used): Consider the arguments named.
10611 (s390_conditional_register_usage): Disable v16-v31 for non-vec
10612 targets.
10613 (s390_preferred_simd_mode): New function.
10614 (s390_support_vector_misalignment): New function.
10615 (s390_vector_alignment): New function.
10616 (TARGET_STRICT_ARGUMENT_NAMING, TARGET_DWARF_FRAME_REG_MODE)
10617 (TARGET_VECTOR_MODE_SUPPORTED_P)
10618 (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN)
10619 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
10620 (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT)
10621 (TARGET_VECTOR_ALIGNMENT): Define target macro.
10622 * config/s390/s390.h (FUNCTION_ARG_PADDING): Define macro.
10623 (FIRST_PSEUDO_REGISTER): Increase value.
10624 (VECTOR_NOFP_REGNO_P, VECTOR_REGNO_P, VECTOR_NOFP_REG_P)
10625 (VECTOR_REG_P): Define macros.
10626 (FIXED_REGISTERS, CALL_USED_REGISTERS)
10627 (CALL_REALLY_USED_REGISTERS, REG_ALLOC_ORDER)
10628 (HARD_REGNO_CALL_PART_CLOBBERED, REG_CLASS_NAMES)
10629 (FUNCTION_ARG_REGNO_P, FUNCTION_VALUE_REGNO_P, REGISTER_NAMES):
10630 Add vector registers.
10631 (CANNOT_CHANGE_MODE_CLASS): Call C function.
10632 (enum reg_class): Add VEC_REGS, ADDR_VEC_REGS, GENERAL_VEC_REGS.
10633 (SECONDARY_MEMORY_NEEDED): Allow SF<->SI mode moves without
10634 memory.
10635 (DBX_REGISTER_NUMBER, FIRST_VEC_ARG_REGNO, LAST_VEC_ARG_REGNO)
10636 (SHORT_DISP_IN_RANGE, VECTOR_STORE_FLAG_VALUE): Define macro.
10637 * config/s390/s390.md (UNSPEC_VEC_*): New constants.
10638 (VR*_REGNUM): New constants.
10639 (ALL): New mode iterator.
10640 (INTALL): Remove mode iterator.
10641 Include vector.md.
10642 (movti): Implement TImode moves for VRs.
10643 Disable TImode splitter for VR targets.
10644 Implement splitting TImode GPR<->VR moves.
10645 (reload*_tomem_z10, reload*_toreg_z10): Replace INTALL with ALL.
10646 (reload<mode>_nonoffmem_in, reload<mode>_nonoffmem_out): Rename to
10647 reload<mode>_la_in, reload<mode>_la_out.
10648 (*movdi_64, *movsi_zarch, *movhi, *movqi, *mov<mode>_64dfp)
10649 (*mov<mode>_64, *mov<mode>_31): Add vector instructions.
10650 (TD/TF mode splitter): Enable for GPRs only (formerly !FP).
10651 (mov<mode> SF SD): Prefer lder, lde for loading.
10652 Add lrl and strl instructions.
10653 Add vector instructions.
10654 (strlen<mode>): Rename old strlen<mode> to strlen_srst<mode>.
10655 Call s390_expand_vec_strlen on z13.
10656 (*cc_to_int): Change predicate to nonimmediate_operand.
10657 (addti3): Rename to *addti3. New expander.
10658 (subti3): Rename to *subti3. New expander.
10659 * config/s390/vector.md: New file.
10660
10661 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10662
10663 * common/config/s390/s390-common.c (processor_flags_table): Add
10664 z13.
10665 * config.gcc: Add z13.
10666 * config/s390/s390-opts.h (enum processor_type): Add
10667 PROCESSOR_2964_Z13.
10668 * config/s390/s390.c (s390_adjust_priority): Check for
10669 PROCESSOR_2964_Z13.
10670 (s390_reorg): Likewise.
10671 (s390_sched_reorder): Likewise.
10672 (s390_sched_variable_issue): Likewise.
10673 (s390_loop_unroll_adjust): Likewise.
10674 (s390_option_override): Likewise. Default to -mvx when available.
10675 * config/s390/s390.h (enum processor_flags): Add PF_Z13 and PF_VX.
10676 (TARGET_CPU_Z13, TARGET_CPU_VX, TARGET_Z13, TARGET_VX)
10677 (TARGET_VX_ABI): Define macros.
10678 macros.
10679 (TARGET_DEFAULT): Add MASK_OPT_VX.
10680 * config/s390/s390.md ("cpu" attribute): Add z13.
10681 ("cpu_facility" attribute): Add vec.
10682 * config/s390/s390.opt (processor_type): Add z13.
10683 (mvx): New options.
10684 * doc/invoke.texi: Add z13 option for -march.
10685
10686 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10687
10688 * config/s390/predicates.md (shift_count_or_setmem_operand): Add
10689 mode check to make sure that only scalar integer values are
10690 accepted.
10691
10692 2015-05-19 Jan Hubicka <hubicka@ucw.cz>
10693
10694 * tree.c (verify_type_variant): Fix #undef.
10695 (gimple_canonical_types_compatible_p): Move here from lto.c
10696 (verify_type): Verify TYPE_CANONICAL compatibility.
10697 * tree.h (gimple_canonical_types_compatible_p): Declare.
10698
10699 2015-05-19 Jakub Jelinek <jakub@redhat.com>
10700
10701 PR middle-end/66199
10702 * tree.h (OMP_TEAMS_COMBINED): Define.
10703 * gimplify.c (enum gimplify_omp_var_data): Add
10704 GOVD_LINEAR_LASTPRIVATE_NO_OUTER.
10705 (enum omp_region_type): Add ORT_COMBINED_TEAMS.
10706 (omp_notice_variable): Accept both ORT_TEAMS
10707 and ORT_COMBINED_TEAMS. Don't recurse if
10708 GOVD_LINEAR_LASTPRIVATE_NO_OUTER is set and either
10709 GOVD_LINEAR is set, or GOVD_LASTPRIVATE without
10710 GOVD_FIRSTPRIVATE.
10711 (omp_no_lastprivate): New function.
10712 (gimplify_scan_omp_clauses): For OMP_CLAUSE_LASTPRIVATE
10713 and OMP_CLAUSE_LINEAR, if omp_no_lastprivate, don't
10714 notice_outer and set appropriate bits, otherwise make
10715 sure default(none) combined constructs won't complain.
10716 (gimplify_adjust_omp_clauses): Remove OMP_CLAUSE_LINEAR
10717 outer special casing, for OMP_CLAUSE_LASTPRIVATE if
10718 omp_no_lastprivate either remove the clause or turn it
10719 into OMP_CLAUSE_PRIVATE.
10720 (gimplify_omp_for): Fix up handling of implicit
10721 lastprivate or linear iterators.
10722 (gimplify_omp_workshare): For OMP_TEAMS_COMBINED use
10723 ORT_COMBINED_TEAMS.
10724 * omp-low.c (lower_omp_for_lastprivate): For combined
10725 for simd use fd.loop.n2 from the for rather than simd.
10726
10727 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
10728
10729 * config/cris/cris.c (cris_expand_prologue): Use gen_raw_REG
10730 instead of gen_rtx_raw_REG.
10731 (cris_expand_epilogue): Likewise.
10732 * config/microblaze/microblaze.c (microblaze_classify_address):
10733 Likewise.
10734 * config/sparc/sparc.md: Likewise.
10735
10736 2015-05-19 Uros Bizjak <ubizjak@gmail.com>
10737
10738 * config/alpha/alpha.c (alpha_legitimize_reload_address)
10739 (alpha_preferred_reload_class, alpha_legitimate_constant_p): Use
10740 CONST_INT_P, CONST_SCALAR_INT_P and CONST_DOUBLE_P predicates.
10741 (alpha_split_reload_pair) <case CONST_INT, case CONST_WIDE_INT>:
10742 Use CASE_CONST_SCALAR_INT.
10743 (print_operand) <case 'M'>: Use mode_width_operand to check the
10744 value of the constant.
10745 * config/alpha/alpha.md (movti): Use CONST_SCALAR_INT_P predicate.
10746 * config/alpha/predicates.md (input_operand): Use general_operand
10747 instead of match_code as operand check.
10748 (symbolic_operand): Use match_code with subexpression digits.
10749 * config/alpha/constraints.md (Q): Ditto.
10750
10751 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10752
10753 * optabs.c (expand_vec_perm): Don't re-use SEL as target operand.
10754
10755 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10756
10757 * config/s390/s390.c (s390_secondary_reload): Fix check for
10758 load/store relative.
10759
10760 2015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10761
10762 * recog.h: Increase MAX_RECOG_ALTERNATIVES. Change type of
10763 alternative_mask to uint64_t.
10764
10765 2015-05-19 Jakub Jelinek <jakub@redhat.com>
10766
10767 PR tree-optimization/66187
10768 * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
10769 Pass TYPE_SIGN to tree_int_cst_min_precision. If
10770 !TYPE_OVERFLOW_WRAPS, ensure @4 is non-negative.
10771
10772 2015-05-19 David Malcolm <dmalcolm@redhat.com>
10773
10774 * diagnostic.c (diagnostic_report_current_module): Strengthen
10775 local "new_map" from const line_map * to
10776 const line_map_ordinary *.
10777 * genmatch.c (error_cb): Likewise for local "map".
10778 (output_line_directive): Likewise for local "map".
10779 * input.c (expand_location_1): Likewise for local "map".
10780 Pass NULL rather than &map to
10781 linemap_unwind_to_first_non_reserved_loc, since the value is never
10782 read from there, and the value written back not read from here.
10783 (is_location_from_builtin_token): Strengthen local "map" from
10784 const line_map * to const line_map_ordinary *.
10785 (dump_location_info): Strengthen locals "map" from
10786 line_map *, one to const line_map_ordinary *, the other
10787 to const line_map_macro *.
10788 * tree-diagnostic.c (loc_map_pair): Strengthen field "map" from
10789 const line_map * to const line_map_macro *.
10790 (maybe_unwind_expanded_macro_loc): Add a call to
10791 linemap_check_macro when writing to the "map" field of the
10792 loc_map_pair.
10793 Introduce local const line_map_ordinary * "ord_map", using it in
10794 place of "map" in the part of the function where we know we have
10795 an ordinary map. Strengthen local "m" from const line_map * to
10796 const line_map_ordinary *.
10797
10798 2015-05-19 Nick Clifton <nickc@redhat.com>
10799
10800 PR target/66156
10801 * config/msp430/msp430.md (zero_extendhisi2): Add support for
10802 separate source and destination registers.
10803
10804 2015-05-19 Richard Biener <rguenther@suse.de>
10805
10806 PR tree-optimization/66165
10807 * tree-vect-slp.c (vect_supported_load_permutation_p): Add guard
10808 for no load permutation.
10809
10810 PR tree-optimization/66185
10811 * tree-vect-slp.c (vect_build_slp_tree): Properly roll back
10812 when building the SLP node from scalars.
10813
10814 2015-05-19 Eric Botcazou <ebotcazou@adacore.com>
10815 Tristan Gingold <gingold@adacore.com>
10816
10817 * insn-notes.def (UPDATE_SJLJ_CONTEXT): New note.
10818 * builtins.c (expand_builtin_update_setjmp_buf): Make global.
10819 (expand_stack_restore): Call record_new_stack_level.
10820 (expand_stack_save): Do not call do_pending_stack_adjust.
10821 * builtins.h (expand_builtin_update_setjmp_buf): Declare.
10822 * calls.c (expand_call): Call record_new_stack_level for alloca.
10823 * except.c (sjlj_mark_call_sites): Expand builtin_update_setjmp_buf
10824 wherever a NOTE_INSN_UPDATE_SJLJ_CONTEXT note is present.
10825 (update_sjlj_context): New global function.
10826 * except.h (update_sjlj_context): Declare.
10827 * explow.c (record_new_stack_level): New global function.
10828 (allocate_dynamic_stack_space): Call record_new_stack_level.
10829 * explow.h (record_new_stack_level): Declare.
10830 * final.c (final_scan_insn): Deal with NOTE_INSN_UPDATE_SJLJ_CONTEXT.
10831 * cfgrtl.c (duplicate_insn_chain): Likewise.
10832
10833 2015-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10834
10835 * calls.c: Always define STACK_GROWS_DOWNWARD as 0 or 1.
10836 (mem_overlaps_already_clobbered_arg_p): Rewrite ifdef
10837 STACK_GROWS_DOWNWARD as normal if.
10838 (expand_call): Likewise.
10839
10840 2015-05-19 Oleg Endo <olegendo@gcc.gnu.org>
10841
10842 PR target/54236
10843 * config/sh/sh.md (*round_int_even): New insn_and_split and
10844 accompanying new unnamed split.
10845
10846 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
10847
10848 * bitmap.c (bitmap_set_range): Handle count==1 specially.
10849 (bitmap_clear_range): Likewise.
10850 * cfgcleanup.c (mark_effect): Use bitmap_clear_range and
10851 bitmap_set_range unconditionally.
10852 * df-problems.c (df_simulate_one_insn_forwards): Likewise.
10853 * df-scan.c (df_mark_reg): Likewise.
10854 * haifa-sched.c (setup_ref_regs): Likewise.
10855 * sched-rgn.c (update_live_1): Likewise.
10856
10857 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
10858
10859 * regs.h (END_HARD_REGNO): Delete.
10860 (END_REGNO): Move to...
10861 * rtl.h: ...here.
10862 * bt-load.c (note_btr_set): Use END_REGNO instead of END_HARD_REGNO.
10863 * caller-save.c (mark_set_regs): Likewise.
10864 * combine.c (move_deaths, distribute_notes): Likewise.
10865 * cse.c (invalidate, invalidate_for_call): Likewise.
10866 * df-scan.c (df_ref_record): Likewise.
10867 * postreload-gcse.c (reg_changed_after_insn_p): Likewise.
10868 (record_last_reg_set_info): Likewise.
10869 * reg-stack.c (convert_regs_exit): Likewise.
10870 * reload.c (reg_overlap_mentioned_for_reload_p): Likewise.
10871 * resource.c (update_live_status): Likewise.
10872 * rtlanal.c (find_reg_fusage, find_regno_fusage): Likewise.
10873
10874 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
10875
10876 * rtl.h (reg_info): Add an nregs field.
10877 (REG_NREGS): Use it.
10878 (SET_REGNO_RAW): Delete.
10879 (set_regno_raw): New function.
10880 * regs.h (END_HARD_REGNO): Make equivalent to END_REGNO.
10881 (END_REGNO): Redefine in terms of REG_NREGS.
10882 * read-rtl.c (read_rtx_code): Call set_regno_raw instead of
10883 SET_REGNO_RAW.
10884 * emit-rtl.c (set_mode_and_regno): Likewise.
10885 * df-scan.c (df_ref_change_reg_with_loc): Use set_mode_and_regno
10886 instead of SET_REGNO_RAW.
10887
10888 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
10889
10890 * rtl.h (PUT_MODE_RAW): New macro.
10891 (PUT_REG_NOTE_KIND): Use it.
10892 (set_mode_and_regno): Declare.
10893 (gen_raw_REG): Change regno to "unsigned int".
10894 (gen_rtx_REG): Change "unsigned" to "unsigned int".
10895 (PUT_MODE): Forward to PUT_MODE_RAW for generators, otherwise
10896 use set_mode_and_regno to change the mode of registers.
10897 * gengenrtl.c (gendef): Use PUT_MODE_RAW.
10898 * emit-rtl.c (set_mode_and_regno): New function.
10899 (gen_raw_REG): Change regno to unsigned int. Use set_mode_and_regno.
10900 * caller-save.c (reg_save_code): Use set_mode_and_regno.
10901 * expr.c (init_expr_target): Likewise.
10902 * ira.c (setup_prohibited_mode_move_regs): Likewise.
10903 * postreload.c (reload_cse_simplify_operands): Likewise.
10904
10905 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
10906
10907 * caller-save.c (init_caller_save): Use word_mode and
10908 FIRST_PSEUDO_REGISTER when creating temporary rtxes.
10909 * expr.c (init_expr_target): Likewise.
10910 * ira.c (setup_prohibited_mode_move_regs): Likewise.
10911 * postreload.c (reload_cse_regs_1): Likewise.
10912
10913 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
10914
10915 * rtl.def (REG): Change format to "r".
10916 * rtl.h (rtunion): Remove rt_reg.
10917 (reg_info): New structure.
10918 (rtx_def): Add reg field to main union.
10919 (X0REGATTR): Delete.
10920 (REG_CHECK): New macro.
10921 (SET_REGNO_RAW, rhs_regno, REG_ATTRS): Use it.
10922 * rtl.c (rtx_format): Document "r".
10923 (rtx_code_size): Handle REG specially.
10924 * gengenrtl.c (special_format): Return true for formats
10925 that include 'r'.
10926 * gengtype.c (adjust_field_rtx_def): Handle 'r' fields.
10927 Deal with REG_ATTRS after the field loop.
10928 * emit-rtl.c (gen_raw_REG): Call rtx_alloc_stat directly.
10929 * expmed.c (init_expmed): Call gen_raw_REG instead of
10930 gen_rtx_raw_REG.
10931 * expr.c (init_expr_target): Likewise.
10932 * regcprop.c (maybe_mode_change): Likewise.
10933 * varasm.c (make_decl_rtl): Likewise.
10934 * final.c (leaf_renumber_regs_insn): Return early after
10935 handling REGs.
10936 * genemit.c (gen_exp): Handle 'r' fields.
10937 * genpeep.c (match_rtx): Likewise.
10938 * gensupport.c (subst_pattern_match): Likewise.
10939 (get_alternatives_number, collect_insn_data, alter_predicate_for_insn)
10940 (alter_constraints, subst_dup): Likewise.
10941 * read-rtl.c (read_rtx_code): Likewise.
10942 * print-rtl.c (print_rtx): Likewise.
10943 * genrecog.c (find_operand, find_matching_operand): Likewise.
10944 (validate_pattern, match_pattern_2): Likewise.
10945 (parameter::UINT, rtx_test::REGNO_FIELD): New enum values.
10946 (rtx_test::regno_field): New function.
10947 (operator ==, safe_to_hoist_p, transition_parameter_type)
10948 (parameter_type_string, print_parameter_value)
10949 (print_nonbool_test, print_test): Handle new enum values.
10950 * cselib.c (rtx_equal_for_cselib_1): Handle REG specially.
10951 * lra-constraints.c (operands_match_p): Likewise.
10952
10953 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
10954
10955 * df.h (df_ref_change_reg_with_loc): Remove old_regno parameter.
10956 Change type of new_regno to unsigned int.
10957 * df-scan.c (df_ref_change_reg_with_loc_1): Change type of
10958 new_regno to unsigned int.
10959 (df_ref_change_reg_with_loc): Remove old_regno parameter.
10960 Change type of new_regno to unsigned int. Use SET_REGNO_RAW.
10961 * rtl.h (SET_REGNO): Update call to df_ref_change_reg_with_loc.
10962 (SET_REGNO_RAW): Add space after ",".
10963
10964 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
10965
10966 * rtl.h (REG_NREGS): New macro
10967 * alias.c (record_set): Use it.
10968 * cfgcleanup.c (mark_effect): Likewise.
10969 * combine.c (likely_spilled_retval_1): Likewise.
10970 (likely_spilled_retval_p, can_change_dest_mode): Likewise.
10971 (move_deaths, distribute_notes): Likewise.
10972 * cselib.c (cselib_record_set): Likewise.
10973 * df-problems.c (df_simulate_one_insn_forwards): Likewise.
10974 * df-scan.c (df_mark_reg): Likewise.
10975 * dse.c (look_for_hardregs): Likewise.
10976 * dwarf2out.c (reg_loc_descriptor): Likewise.
10977 (multiple_reg_loc_descriptor): Likewise.
10978 * expr.c (write_complex_part, read_complex_part): Likewise.
10979 (emit_move_complex): Likewise.
10980 * haifa-sched.c (setup_ref_regs): Likewise.
10981 * ira-lives.c (mark_hard_reg_live): Likewise.
10982 * lra.c (lra_set_insn_recog_data): Likewise.
10983 * mode-switching.c (create_pre_exit): Likewise.
10984 * postreload.c (reload_combine_recognize_const_pattern): Likewise.
10985 (reload_combine_recognize_pattern): Likewise.
10986 (reload_combine_note_use, move2add_record_mode): Likewise.
10987 (reload_cse_move2add): Likewise.
10988 * reg-stack.c (subst_stack_regs_pat): Likewise.
10989 * regcprop.c (kill_value, copy_value): Likewise.
10990 (copyprop_hardreg_forward_1): Likewise.
10991 * regrename.c (verify_reg_in_set, scan_rtx_reg): Likewise.
10992 (build_def_use): Likewise.
10993 * sched-deps.c (mark_insn_reg_birth, mark_reg_death): Likewise.
10994 (deps_analyze_insn): Likewise.
10995 * sched-rgn.c (check_live_1, update_live_1): Likewise.
10996 * sel-sched.c (count_occurrences_equiv): Likewise.
10997 * valtrack.c (dead_debug_insert_temp): Likewise.
10998
10999 2015-05-19 Richard Sandiford <richard.sandiford@arm.com>
11000
11001 * cfgcleanup.c (mentions_nonequal_regs): Use END_REGNO.
11002 * dse.c (note_add_store): Likewise.
11003 * ira-lives.c (mark_hard_reg_dead): Likewise.
11004 * loop-invariant.c (mark_reg_store): Likewise.
11005 (mark_reg_death): Likewise.
11006 * postreload.c (reload_combine): Likewise.
11007 (reload_combine_note_store): Likewise.
11008 (reload_combine_note_use): Likewise.
11009 * recog.c (peep2_reg_dead_p): Likewise.
11010
11011 2015-05-19 Alan Modra <amodra@gmail.com>
11012
11013 * config/rs6000/predicates.md (gpc_reg_operand): Don't allow all
11014 hard registers numbered greater or equal to ARG_POINTER_REGNUM.
11015 (reg_or_neg_short_operand, fix_trunc_dest_operand): Delete
11016 unused predicates.
11017 * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*):
11018 Use altivec_register_operand. Make insn predicate TARGET_ALTIVEC.
11019 * config/rs6000/rs6000.md (extzvdi_internal2): Use cc_reg_operand.
11020 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Expand comment.
11021
11022 2015-05-19 Sameera Deshpande <Sameera.Deshpande@imgtec.com>
11023
11024 * config/mips/mips.md (JOIN_MODE): New mode iterator.
11025 (join2_load_Store<JOIN_MODE:mode>): New pattern.
11026 (join2_loadhi): Likewise.
11027 (define_peehole2): Add peephole2 patterns to join 2 HI/SI/SF/DF-mode
11028 load-load and store-stores.
11029 * config/mips/mips.opt (mload-store-pairs): New option.
11030 (TARGET_LOAD_STORE_PAIRS): New macro.
11031 * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Likewise.
11032 * config/mips/mips-protos.h (mips_load_store_bonding_p): New prototype.
11033 * config/mips/mips.c (mips_load_store_bonding_p): New function.
11034
11035 2015-05-19 Mikhail Maltsev <maltsevm@gmail.com>
11036
11037 * bb-reorder.c (fix_up_fall_thru_edges): Use std::swap instead of
11038 explicit swaps.
11039 * dojump.c (do_compare_rtx_and_jump): Likewise.
11040 * expmed.c (emit_store_flag_1): Likewise.
11041 * fibonacci_heap.h (fibonacci_heap::union_with): Likewise.
11042 * final.c (sprint_ul): Use std::reverse for reversing a string.
11043 * fold-const.c (extract_muldiv_1): Use std::swap.
11044 * genmodes.c (emit_mode_int_n): Likewise.
11045 * ifcvt.c (dead_or_predicable): Likewise.
11046 * ira-build.c (ira_merge_live_ranges): Likewise.
11047 (swap_allocno_copy_ends_if_necessary): Likewise.
11048 * ira.c (ira_setup_alts): Likewise.
11049 * loop-iv.c (iv_analyze_expr): Likewise.
11050 (implies_p): Likewise.
11051 (canon_condition): Likewise.
11052 * lra-constraints.c (swap_operands): Likewise.
11053 * lra-lives.c (lra_merge_live_ranges): Likewise.
11054 * omega.c (swap): Remove.
11055 (bswap): Remove.
11056 (omega_unprotect_1): Use std::swap.
11057 (omega_solve_geq): Likewise.
11058 * optabs.c (expand_binop_directly): Likewise.
11059 (expand_binop): Likewise.
11060 (emit_conditional_move): Likewise.
11061 (emit_conditional_add): Likewise.
11062 * postreload.c (reload_cse_simplify_operands): Likewise.
11063 * reg-stack.c (emit_swap_insn): Likewise.
11064 (swap_to_top): Likewise.
11065 (compare_for_stack_reg): Likewise.
11066 (subst_asm_stack_regs): Likewise.
11067 * reload.c (find_reloads): Likewise.
11068 * reload1.c (gen_reload_chain_without_interm_reg_p): Likewise.
11069 * sel-sched.c (invoke_reorder_hooks): Likewise.
11070 (create_block_for_bookkeeping): Likewise.
11071 * tree-data-ref.c (lambda_matrix_row_exchange): Remove.
11072 (lambda_matrix_right_hermite): Use std::swap.
11073 * tree-ssa-coalesce.c (sort_coalesce_list): Likewise.
11074 * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
11075 * tree-ssa-loop-ivopts.c (iv_ca_delta_reverse): Likewise.
11076 * tree-ssa-math-opts.c (is_widening_mult_p): Likewise.
11077 * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
11078 * tree-ssa-reassoc.c (linearize_expr_tree): Likewise.
11079 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
11080 * tree-vrp.c (compare_ranges): Likewise.
11081 * var-tracking.c (add_with_sets): Likewise.
11082 (vt_find_locations): Likewise.
11083
11084 2015-05-18 Andreas Tobler <andreast@gcc.gnu.org>
11085
11086 * config/freebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build
11087 pie executables.
11088 (FBSD_ENDFILE_SPEC): Likewise.
11089 * config/i386/freebsd.h (STARTFILE_SPEC): Remove and use the one from
11090 config/freebsd-spec.h.
11091 (ENDFILE_SPEC): Likewise.
11092
11093 2015-05-18 Uros Bizjak <ubizjak@gmail.com>
11094 Richard Henderson <rth@redhat.com>
11095
11096 PR target/57032
11097 * config/alpha/constraints.md (Q): Rewrite as define_memory_constraint.
11098 Check for a memory location that is not a reference (using an AND)
11099 to an unaligned location here.
11100 * config/alpha/predicates.md (normal_memory_operand): Remove.
11101
11102 2015-05-18 Alex Velenko <Alex.Velenko@arm.com>
11103
11104 * config/arm/arm.md (andsi_not_shiftsi_si_scc): New pattern.
11105 (andsi_not_shiftsi_si_scc_no_reuse): New pattern.
11106
11107 2015-05-18 Robert Suchanek <robert.suchanek@imgtec.com>
11108
11109 * config/mips/mips.c (micromips_globals): New variable.
11110 (mips_set_compression_mode): Save and reinitialize target-dependent
11111 state for microMIPS.
11112
11113 2015-05-18 Martin Liska <mliska@suse.cz>
11114
11115 * dbgcnt.def: Add new counter.
11116 * ipa-icf.c (sem_item_optimizer::merge_classes): Use the counter.
11117
11118 2015-05-18 Martin Liska <mliska@suse.cz>
11119
11120 * dbgcnt.def: Sort counters.
11121 * opts.c (common_handle_option): Do not compile if
11122 -fdbg-cnt-list is enabled.
11123
11124 2015-05-18 Tom de Vries <tom@codesourcery.com>
11125
11126 * gimplify.c (gimplify_modify_expr): Remove do_deref handling.
11127 (gimplify_va_arg_expr): Remove do_deref handling. Remove adding of
11128 address operator to va_list operand.
11129 * tree-stdarg.c (expand_ifn_va_arg_1): Do deref of va_list operand
11130 unconditionally.
11131 * config/i386/i386.c (ix86_gimplify_va_arg): Remove deref on va_list
11132 operand.
11133 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Same.
11134 * config/s390/s390.c (s390_gimplify_va_arg): Same.
11135 * config/spu/spu.c (spu_gimplify_va_arg_expr): Same.
11136
11137 2015-05-18 Tom de Vries <tom@codesourcery.com>
11138
11139 * tree-ssa-tail-merge.c: Fix whitespace.
11140
11141 2015-05-17 Jim Wilson <jim.wilson@linaro.org>
11142
11143 * doc/invoke.texi (ARM Options, mtune): Add generic-armv7-a,
11144 cortex-a17, and cortex-a17.cortex-a7.
11145
11146 2015-05-17 Oleg Endo <olegendo@gcc.gnu.org>
11147
11148 PR target/54236
11149 * config/sh/sh.md (*addc_2r_t): Use ashift instead of mult.
11150
11151 2015-05-17 Uros Bizjak <ubizjak@gmail.com>
11152
11153 PR target/66174
11154 * config/i386/i386.c (expand_vec_perm_blend): Enable HImode and
11155 QImode inner modes for TARGET_AVX512BW. Force mask operand
11156 to a register for AVX512F modes.
11157
11158 2015-05-16 Jan Hubicka <hubicka@ucw.cz>
11159
11160 * toplev.c (emit_debug_global_declarations): Do not output debug info
11161 when doing slim LTO objects.
11162
11163 2015-05-16 Jan Hubicka <hubicka@ucw.cz>
11164
11165 * ipa-utils.h (warn_types_mismatch, odr_or_derived_type_p,
11166 odr_types_equivalent_p): Declare.
11167 (odr_type_p): Use gcc_checking_assert.
11168 (type_in_anonymous_namespace_p) Declare.
11169 (type_with_linkage_p): Declare.
11170 * common.opt (Wlto-type-mismatch): New warning.
11171 * ipa-devirt.c (compound_type_base): New function.
11172 (odr_or_derived_type_p): New function.
11173 (odr_types_equivalent_p): New function.
11174 (add_type_duplicate): Simplify.
11175 (type_with_linkage_p): Add hack to prevent false positives on C types
11176 (type_in_anonymous_namespace_p): Likewise.
11177 * tree.c (need_assembler_name_p): Use type_with_linkage.
11178 * tree.h (type_in_anonymous_namespace_p): Remove.
11179 * doc/invoke.texi (-Wlto-type-mismatch): Document
11180
11181 2015-05-16 Jan Hubicka <hubicka@ucw.cz>
11182
11183 * tree.c (verify_type_variant): Verify tree_base and type_common flags.
11184 (verify_type): Verify STRING_FLAG.
11185
11186 2015-05-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
11187
11188 PR fortran/44054
11189 * tree-pretty-print.c (percent_K_format): Replace locus pointer
11190 with accessor function.
11191 * tree-diagnostic.c (diagnostic_report_current_function): Use
11192 diagnostic_location function.
11193 (maybe_unwind_expanded_macro_loc): Likewise.
11194 (virt_loc_aware_diagnostic_finalizer): Likewise.
11195 (default_tree_printer): Replace locus pointer with accessor function.
11196 * diagnostic.c (diagnostic_initialize): Initialize caret_chars array.
11197 (diagnostic_set_info_translated): Initialize second location.
11198 (diagnostic_build_prefix): Use CARET_LINE_MARGIN.
11199 (diagnostic_show_locus): Handle two locations. Call
11200 diagnostic_print_caret_line.
11201 (diagnostic_print_caret_line): New.
11202 (default_diagnostic_starter): Use diagnostic_location function.
11203 (diagnostic_report_diagnostic): Use diagnostic_location function.
11204 (verbatim): Do not set text.locus.
11205 * diagnostic.h (struct diagnostic_info): Remove location field.
11206 (struct diagnostic_context): Make caret_chars an array of two.
11207 (diagnostic_location): New inline.
11208 (diagnostic_expand_location): Handle two locations.
11209 (diagnostic_same_line): New inline.
11210 (diagnostic_print_caret_line): Declare.
11211 (CARET_LINE_MARGIN): New constant.
11212 * pretty-print.c (pp_printf): Do not set text.locus.
11213 (pp_verbatim): Do not set text.locus.
11214 * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): New constant.
11215 (struct text_info): Replace locus pointer with locations
11216 array. Add accessor functions.
11217
11218 2015-05-16 Kugan Vivekanandarajah <kuganv@linaro.org>
11219 Zhenqiang Chen <zhenqiang.chen@linaro.org>
11220
11221 PR target/65768
11222 * config/arm/arm.h (DONT_EARLY_SPLIT_CONSTANT): New macro.
11223 * config/arm/arm.md (subsi3, andsi3, iorsi3, xorsi3, movsi): Keep some
11224 large constants in register instead of splitting them.
11225
11226 2015-05-16 Uros Bizjak <ubizjak@gmail.com>
11227
11228 PR target/66140
11229 * config/alpha/alpha.c (get_aligned_mem): Also look for reload
11230 replacements in memory addresses.
11231 (get_unaligned_address): Ditto.
11232
11233 2015-05-16 James Bowman <james.bowman@ftdichip.com>
11234
11235 * config/ft32/*: New files for FT32 port.
11236 * doc/install.texi: Add FT32 information.
11237 * doc/invoke.texi: Add FT32 information.
11238 * doc/md.texi: Add FT32 information.
11239 * doc/contrib.texi: Self added.
11240
11241 2015-05-15 Marc Glisse <marc.glisse@inria.fr>
11242
11243 PR tree-optimization/64454
11244 * match.pd ((X % Y) % Y, (X % Y) < Y): New patterns.
11245 (-1 - A -> ~A): Remove unnecessary condition.
11246
11247 2015-05-15 Gregor Richards <gregor.richards@uwaterloo.ca>
11248
11249 * config/i386/linux.h (MUSL_DYNAMIC_LINKER): Define.
11250 * config/i386/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
11251 (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32): Define.
11252
11253 2015-05-15 Ilya Enkovich <ilya.enkovich@intel.com>
11254
11255 * ipa-chkp.h (chkp_wrap_function): New.
11256 * ipa-chkp.c (chkp_wrap_function): Remove 'static'.
11257 (chkp_wrap_function_name): New.
11258 (chkp_build_instrumented_fndecl): Use chkp_wrap_function_name
11259 to get wrapper name.
11260 * lto-cgraph.c: Include ipa-chkp.h.
11261 (input_cgraph_1): Avoid alias chain for wrappers.
11262
11263 2015-05-15 Ilya Enkovich <enkovich.gnu@gmail.com>
11264
11265 PR middle-end/66134
11266 * tree-chkp.c (chkp_get_orginal_bounds_for_abnormal_copy): New.
11267 (chkp_maybe_copy_and_register_bounds): Don't copy abnormal copy.
11268
11269 2015-05-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11270
11271 * config/aarch64/aarch64.h (AARCH64_TUNE_SLOWMUL): Delete.
11272 (AARCH64_FL_SLOWMUL): Delete.
11273 (AARCH64_FL_CRC): Redefine to 1<<3.
11274 (AARCH64_FL_USE_FMA_STEERING_PASS): Redefine to 1<<4.
11275
11276 2015-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11277
11278 * config/arm/arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Add appropriate
11279 casting.
11280
11281 2015-05-15 Uros Bizjak <ubizjak@gmail.com>
11282
11283 * config/alpha/alpha.md (extendqidi2): Use general_operand
11284 instead of some_operand for operand[1] predicate.
11285 (extendhidi2): Ditto.
11286 (cbranchdi4): Use general_operand instead of some_operand
11287 for operand[1] and operands[2] predicates.
11288 (cstoredi4): Ditto.
11289 * config/alpha/predicates.md (some_operand): Remove unused predicate.
11290 (some_ni_operand): Ditto.
11291
11292 2015-05-15 Uros Bizjak <ubizjak@gmail.com>
11293
11294 * config/alpha/alpha.c (alpha_extract_integer): Do not handle
11295 CONST_WIDE_INT and CONST_DOUBLE. Assert CONST_INT_P (x).
11296 (alpha_legitimate_constant_p) <case CONST_WIDE_INT>: Check high and
11297 low part of the constant using alpha_emit_set_const_1.
11298 (alpha_expand_mov): Do not handle CONST_WIDE_INT and CONST_DOUBLE.
11299
11300 2015-05-14 Rohit Arul Raj <rohitrulraj@freescale.com>
11301
11302 * varasm.c (output_constant_pool_1): Pass down alignment from
11303 constant pool entry's descriptor to output_constant_pool_2.
11304 (output_object_block): Add comment prior to call to
11305 output_constant_pool_1.
11306
11307 2015-05-14 Vladimir Makarov <vmakarov@redhat.com>
11308
11309 PR rtl-optimization/65862
11310 * target.def (ira_change_pseudo_allocno_class): New hook.
11311 * targhooks.c (default_ira_change_pseudo_allocno_class): Default
11312 value of the hook.
11313 * targhooks.h (default_ira_change_pseudo_allocno_class): New extern.
11314 * doc/tm.texi.in (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Add the
11315 hook.
11316 * ira-costs.c (find_costs_and_classes): Call the hook and change
11317 classes when it is necessary.
11318 * doc/tm.texi: Update.
11319
11320 2015-05-14 Alexander Monakov <amonakov@ispras.ru>
11321
11322 * config/i386/i386.md (sibcall_memory): Check that register with
11323 callee address is not also used as one of the arguments, instead
11324 of checking that it is not live after the sibcall.
11325 (sibcall_pop_memory): Ditto.
11326 (sibcall_value_memory): Ditto.
11327 (sibcall_value_pop_memory): Ditto.
11328
11329 2015-05-14 Marc Glisse <marc.glisse@inria.fr>
11330
11331 * generic-match-head.c (types_match): Handle non-types.
11332 * gimple-match-head.c (types_match): Likewise.
11333 * match.pd: Remove unnecessary TREE_TYPE for types_match.
11334
11335 2015-05-14 Wilco Dijkstra <wdijkstr@arm.com>
11336
11337 * config/aarch64/aarch64.md (absdi2): Optimize abs expansion.
11338 (csneg3<mode>_insn): Enable expansion of pattern.
11339
11340 2015-05-14 Nick Clifton <nickc@redhat.com>
11341
11342 * config/rl78/rl78.c (rl78_select_section): Select the correct
11343 default section based upon the category of the decl.
11344
11345 2015-05-13 Segher Boessenkool <segher@kernel.crashing.org>
11346
11347 PR rtl-optimization/30967
11348 * config/rs6000/rs6000.c (rs6000_rtx_costs): Don't consider
11349 destination mode for the cost of scc patterns.
11350
11351 2015-05-13 Uros Bizjak <ubizjak@gmail.com>
11352
11353 * config/i386/i386.md (*mul<mode>3_1): Merge with *mulhi3_1
11354 using SWIM248 mode iterator.
11355 (*mulv<mode>4): Use x86_64_sext_operand for operand[2] constraint.
11356 (*mulvhi4): mark operand[1] as commutative. Use nonimmediate_operand
11357 for operand[2] constraint.
11358 (*mulv<mode>4_1): Merge with *mulvhi4_1 using SWI248 mode iterator.
11359
11360 2015-05-13 Jakub Jelinek <jakub@redhat.com>
11361
11362 PR middle-end/66133
11363 * omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion,
11364 make sure it is never noreturn, even when the task body does not
11365 return.
11366 (lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE
11367 right before GIMPLE_OMP_RETURN.
11368 (make_gimple_omp_edges): Accept GIMPLE_OMP_CONTINUE as ->cont
11369 for GIMPLE_OMP_TASK. For GIMPLE_OMP_RETURN corresponding to
11370 GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit.
11371
11372 2015-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11373
11374 * params.def (PARAM_MAX_POW_SQRT_DEPTH): New param.
11375 * tree-ssa-math-opts.c: Include params.h
11376 (pow_synth_sqrt_info): New struct.
11377 (representable_as_half_series_p): New function.
11378 (get_fn_chain): Likewise.
11379 (print_nested_fn): Likewise.
11380 (dump_fractional_sqrt_sequence): Likewise.
11381 (dump_integer_part): Likewise.
11382 (expand_pow_as_sqrts): Likewise.
11383 (gimple_expand_builtin_pow): Use above to attempt to expand
11384 pow as series of square roots. Removed now unused variables.
11385
11386 2015-05-13 Uros Bizjak <ubizjak@gmail.com>
11387
11388 * config/alpha/alpha.c (alpha_emit_set_long_const): Remove c1 argument.
11389 (alpha_extract_integer): Redeclare as static HOST_WIDE_INT.
11390 Remove *p0 and *p1 arguments. Rewrite function.
11391 (alpha_legitimate_constant_p): Update call to alpha_extract_integer.
11392 (alpha_split_const_mov): Update calls to alpha_extract_integer and
11393 alpha_emit_set_long_const.
11394 (alpha_expand_epilogue): Update calls to alpha_emit_set_long_const.
11395 (alpha_output_mi_thunk_osf): Ditto.
11396 * config/alpha/alpha.md (movti): Do not check operands[1]
11397 for CONST_DOUBLE.
11398
11399 2015-05-13 Richard Biener <rguenther@suse.de>
11400
11401 PR tree-optimization/66129
11402 * tree-vect-slp.c (vect_build_slp_tree): Make sure all ops are
11403 commutative.
11404 (vect_schedule_slp_instance): Fix typo.
11405
11406 2015-05-13 David Malcolm <dmalcolm@redhat.com>
11407
11408 * common.opt (fdump-internal-locations): New option.
11409 * input.c: Include diagnostic-core.h.
11410 (get_end_location): New function.
11411 (write_digit): New function.
11412 (write_digit_row): New function.
11413 (dump_location_range): New function.
11414 (dump_labelled_location_range): New function.
11415 (dump_location_info): New function.
11416 * input.h (dump_location_info): New prototype.
11417 * toplev.c (compile_file): Handle flag_dump_locations.
11418
11419 2015-05-13 Eric Botcazou <ebotcazou@adacore.com>
11420
11421 * gimple-expr.h (is_gimple_constant): Reorder.
11422 * tree-ssa-propagate.c (before_dom_children): Use inline accessor.
11423
11424 2015-05-13 Segher Boessenkool <segher@kernel.crashing.org>
11425
11426 * combine.c (simplify_set): When generating a CC set, if the
11427 source already is in the correct mode, do not wrap it in a
11428 compare. Simplify the rest of that code.
11429
11430 2015-05-13 Richard Biener <rguenther@suse.de>
11431
11432 PR tree-optimization/66123
11433 * tree-ssa-dom.c (propagate_rhs_into_lhs): Check if we found
11434 a taken edge.
11435
11436 2015-05-13 Richard Biener <rguenther@suse.de>
11437
11438 PR middle-end/66110
11439 * alias.c (alias_sets_conflict_p): Do not treat has_zero_child
11440 specially.
11441 * Makefile.in (dfp.o-warn): Add -Wno-strict-aliasing.
11442
11443 2015-05-13 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
11444
11445 * doc/install.texi: Bump latest automake 1.11 version to 1.11.6.
11446 * aclocal.m4: Regenerated with automake-1.11.6.
11447
11448 2015-05-13 Tom de Vries <tom@codesourcery.com>
11449
11450 PR tree-optimization/66010
11451 * gimplify.h (gimplify_va_arg_internal): Remove declaration.
11452 * gimplify.c (gimplify_va_arg_internal): Remove and inline into ...
11453 * tree-stdarg.c (expand_ifn_va_arg_1): ... here. Choose between lval
11454 and rval based on do_deref.
11455
11456 2015-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
11457
11458 PR target/65103
11459 * config/i386/i386.c (ix86_rtx_costs): We want to propagate
11460 link time constants into adress expressions and therefore set
11461 their cost to 0.
11462
11463 2015-05-13 Jakub Jelinek <jakub@redhat.com>
11464
11465 PR target/66112
11466 * config/i386/i386.md (mulv<mode>4, umulv<mode>4, *umulv<mode>4):
11467 Use SWI248 iterator instead of SWI.
11468 (*mulv<mode>4_1): Use SWI48 instead of SWI. Simplify output template.
11469 Use eq_attr "alternative" "0" instead of match_test in
11470 length_immediate attribute computation.
11471 (*mulvhi4, *mulvhi4_1): New define_insns.
11472
11473 PR target/66112
11474 * internal-fn.c (get_min_precision): Use UNSIGNED instead of
11475 SIGNED to get precision of non-negative value.
11476
11477 2015-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
11478
11479 PR target/66048
11480 * function.c (diddle_return_value_1): Process bounds first.
11481 * config/i38/i386.c (ix86_function_value_regno_p): Add bnd1
11482 register.
11483
11484 2015-05-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
11485
11486 PR rtl-optimization/64616
11487 * loop-invariant.c (can_move_invariant_reg): New.
11488 (move_invariant_reg): Call above new function to decide whether
11489 instruction can just be moved, skipping creation of temporary
11490 register.
11491
11492 2015-05-12 Jan Hubicka <hubicka@ucw.cz>
11493
11494 PR target/pr66047.c
11495 * i386.c (ix86_function_sseregparm): Only return -1 if local function
11496 with implied regparm is called from -mno-sse function.
11497 (init_cumulative_args): Output error if ix86_function_sseregparm
11498 return -1 and SSE register would be needed.
11499 (function_arg_advance_32): Likewise.
11500 (function_arg_32): Likewise.
11501 * i386.h (ix86_args): Add decl field.
11502
11503 2015-05-12 Jan Hubicka <hubicka@ucw.cz>
11504
11505 PR ipa/65873
11506 * ipa-inline.c (can_inline_edge_p): Allow early inlining of always
11507 inlines across optimization boundary.
11508
11509 2015-05-12 Jason Merrill <jason@redhat.com>
11510
11511 * config/mmix/mmix.c, config/msp430/msp430.c: Add space between
11512 string literal and macro name.
11513
11514 2015-05-12 Steve Ellcey <sellcey@imgtec.com>
11515
11516 * config/mips/mips.c (mips_print_operand): Remove 'y' operand code.
11517 * config/mips/mips.md (<GPR:d>lsa): Rewrite with shift operator.
11518 * config/mips/predicates.md (const_immlsa_operand): Remove log call.
11519
11520 2015-05-12 David Malcolm <dmalcolm@redhat.com>
11521
11522 * doc/invoke.texi (Warning Options): Add -Wmisleading-indentation.
11523 (-Wmisleading-indentation): New option.
11524 * Makefile.in (C_COMMON_OBJS): Add c-family/c-indentation.o.
11525
11526 2015-05-12 Uros Bizjak <ubizjak@gmail.com>
11527
11528 * config/alpha/alpha.h (TARGET_SUPPORTS_WIDE_INT): New define.
11529 * config/alpha/alpha.c (alpha_rtx_costs): Handle CONST_WIDE_INT.
11530 (alpha_extract_integer): Ditto.
11531 (alpha_legitimate_constant_p): Ditto.
11532 (alpha_split_tmode_pair): Ditto.
11533 (alpha_preferred_reload_class): Add CONST_WIDE_INT.
11534 (alpha_expand_mov): Ditto.
11535 (print_operand): Remove handling of 'H' modifier.
11536 <case 'm'>: Remove CONST_DOUBLE handling.
11537 (summarize_insn): Handle CONST_WIDE_INT.
11538 * config/alpha/alpha.md (*andsi_internal): Remove H constraint.
11539 (anddi3): Ditto.
11540 (movti): Handle CONST_WIDE_INT.
11541 * config/alpha/constraints.md ('H'): Remove constraint definition.
11542 ('G'): Do not match MODE_FLOAT class.
11543 * config/alpha/predicates.md (const0_operand): Also match
11544 const_wide_int.
11545 (non_add_const_operand): Ditto.
11546 (non_zero_const_operand): Ditto.
11547 (some_operand): Ditto.
11548 (input_operand): Ditto. Handle CONST_WIDE_INT.
11549 (and_operand): Do not match const_double.
11550 * config/alpha/sync.md (fetchop_constr): Remove H constraint.
11551
11552 2015-05-12 Andrew MacLeod <amacleod@redhat.com>
11553
11554 PR target/65697
11555 * coretypes.h (MEMMODEL_SYNC, MEMMODEL_BASE_MASK): New macros.
11556 (enum memmodel): Add SYNC_{ACQUIRE,RELEASE,SEQ_CST}.
11557 * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
11558 is_mm_consume,is_mm_acquire, is_mm_release, is_mm_acq_rel,
11559 is_mm_seq_cst, is_mm_sync): New accessor functions.
11560 * builtins.c (expand_builtin_sync_operation,
11561 expand_builtin_compare_and_swap): Use MEMMODEL_SYNC_SEQ_CST.
11562 (expand_builtin_sync_lock_release): Use MEMMODEL_SYNC_RELEASE.
11563 (get_memmodel, expand_builtin_atomic_compare_exchange,
11564 expand_builtin_atomic_load, expand_builtin_atomic_store,
11565 expand_builtin_atomic_clear): Use new accessor routines.
11566 (expand_builtin_sync_synchronize): Use MEMMODEL_SYNC_SEQ_CST.
11567 * optabs.c (expand_compare_and_swap_loop): Use MEMMODEL_SYNC_SEQ_CST.
11568 (maybe_emit_sync_lock_test_and_set): Use new accessors and
11569 MEMMODEL_SYNC_ACQUIRE.
11570 (expand_sync_lock_test_and_set): Use MEMMODEL_SYNC_ACQUIRE.
11571 (expand_mem_thread_fence, expand_mem_signal_fence, expand_atomic_load,
11572 expand_atomic_store): Use new accessors.
11573 * emit-rtl.c (need_atomic_barrier_p): Add additional enum cases.
11574 * tsan.c (instrument_builtin_call): Update check for memory model beyond
11575 final enum to use MEMMODEL_LAST.
11576 * c-family/c-common.c: Use new accessor for memmodel_base.
11577 * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap): Use new
11578 accessors.
11579 * config/aarch64/atomics.md (atomic_load<mode>,atomic_store<mode>,
11580 arch64_load_exclusive<mode>, aarch64_store_exclusive<mode>,
11581 mem_thread_fence, *dmb): Likewise.
11582 * config/alpha/alpha.c (alpha_split_compare_and_swap,
11583 alpha_split_compare_and_swap_12): Likewise.
11584 * config/arm/arm.c (arm_expand_compare_and_swap,
11585 arm_split_compare_and_swap, arm_split_atomic_op): Likewise.
11586 * config/arm/sync.md (atomic_load<mode>, atomic_store<mode>,
11587 atomic_loaddi): Likewise.
11588 * config/i386/i386.c (ix86_destroy_cost_data, ix86_memmodel_check):
11589 Likewise.
11590 * config/i386/sync.md (mem_thread_fence, atomic_store<mode>): Likewise.
11591 * config/ia64/ia64.c (ia64_expand_atomic_op): Add new memmodel cases and
11592 use new accessors.
11593 * config/ia64/sync.md (mem_thread_fence, atomic_load<mode>,
11594 atomic_store<mode>, atomic_compare_and_swap<mode>,
11595 atomic_exchange<mode>): Use new accessors.
11596 * config/mips/mips.c (mips_process_sync_loop): Likewise.
11597 * config/pa/pa.md (atomic_loaddi, atomic_storedi): Likewise.
11598 * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier,
11599 rs6000_post_atomic_barrier): Add new cases.
11600 (rs6000_expand_atomic_compare_and_swap): Use new accessors.
11601 * config/rs6000/sync.md (mem_thread_fence): Add new cases.
11602 (atomic_load<mode>): Add new cases and use new accessors.
11603 (store_quadpti): Add new cases.
11604 * config/s390/s390.md (mem_thread_fence, atomic_store<mode>): Use new
11605 accessors.
11606 * config/sparc/sparc.c (sparc_emit_membar_for_model): Use new accessors.
11607 * doc/extend.texi: Update docs to indicate 16 bits are used for memory
11608 model, not 8.
11609
11610 2015-05-12 Jan Hubicka <hubicka@ucw.cz>
11611
11612 * ipa-devirt.c (type_with_linkage_p): New function.
11613 (type_in_anonymous_namespace_p): Move here from tree.c; assert that
11614 type has linkage.
11615 (odr_type_p): Move here from ipa-utils.h; use type_with_linkage_p.
11616 (can_be_name_hashed_p): Simplify.
11617 (hash_odr_name): Check that type has linkage before checking if it is
11618 anonymous.
11619 (types_same_for_odr): Likewise.
11620 (odr_name_hasher::equal): Likewise.
11621 (odr_subtypes_equivalent_p): Likewise.
11622 (warn_types_mismatch): Likewise.
11623 (get_odr_type): Likewise.
11624 (odr_types_equivalent_p): Fix checking of TYPE_MAIN_VARIANT.
11625 * ipa-utils.h (odr_type_p): Move offline.
11626 * tree.c (need_assembler_name_p): Fix handling of types
11627 without linkages.
11628 (type_in_anonymous_namespace_p): Move to ipa-devirt.c
11629
11630 2015-05-12 David Malcolm <dmalcolm@redhat.com>
11631
11632 * timevar.c (timevar_enable): Delete in favor of...
11633 (g_timer): New global.
11634 (struct timevar_def): Move to timevar.h inside class timer.
11635 (struct timevar_stack_def): Likewise.
11636 (timevars): Delete global in favor of field "m_timevars" within
11637 class timer in timevar.h
11638 (stack): Likewise, in favor of field "m_stack".
11639 (unused_stack_instances): Likewise, in favor of field
11640 "m_unused_stack_instances".
11641 (start_time): Likewise, in favor of field "m_start_time".
11642 (get_time): Eliminate check for timevar_enable.
11643 (timer::timer): New function, built from part of timevar_init.
11644 (timevar_init): Rewrite idempotency test from using
11645 "timevar_enable" bool to using dynamic allocation of "g_timer".
11646 Move rest of implementation into timer's constructor.
11647 (timevar_push_1): Rename to...
11648 (timer::push): ...this, adding "m_" prefixes to variables that
11649 are now fields of timer.
11650 (timevar_pop_1): Likewise, rename to...
11651 (timer::pop): ...this, and add "m_" prefixes.
11652 (timevar_start): Replace test for "timevar_enable" with one for
11653 "g_timer", and move bulk of implementation to...
11654 (timer::start): ...here, adding "m_" prefixes.
11655 (timevar_stop): Likewise, from here...
11656 (timer::stop): ...to here.
11657 (timevar_cond_start): Likewise, from here...
11658 (timer::cond_start): ...to here.
11659 (timevar_cond_stop): Likewise, from here...
11660 (timer::cond_stop): ...to here.
11661 (validate_phases): Rename to...
11662 (timer::validate_phases): ...this, and add "m_" prefixes. Make
11663 locals "total" and "tv" const.
11664 (timevar_print): Rename to...
11665 (timer::print): ...this, and add "m_" prefixes. Make locals
11666 "total" and "tv" const. Eliminate test for timevar_enable.
11667 * timevar.h (timevar_enable): Eliminate.
11668 (g_timer): New declaration.
11669 (timevar_push_1): Eliminate.
11670 (timevar_pop_1): Eliminate.
11671 (timevar_print): Eliminate.
11672 (class timer): New class.
11673 (timevar_push): Rewrite to use g_timer.
11674 (timevar_pop): Likewise.
11675 * toplev.c (toplev::~toplev): Likewise.
11676
11677 2015-05-12 Richard Earnshaw <rearnsha@arm.com>
11678
11679 * arm-protos.h (arm_sched_autopref): Delete.
11680 (tune_params): Re-organize, use enums for flag values.
11681 (FUSE_OPS): New macro.
11682 * arm.c (ARM_PREFETCH_NOT_BENEFICIAL): Update.
11683 (ARM_PREFETCH_BENEFICIAL): Likewise.
11684 (ARM_FUSE_NOTHING, ARM_FUSE_MOVW_MOVT): Delete.
11685 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
11686 (arm_xscale_tune, arm_9e_tune, arm_marvell_pj4_tune)
11687 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a8_tune)
11688 (arm_cortex_a7_tune, arm_cortex_a15_tune, arm_cortex_a53_tune)
11689 (arm_cortex_a57_tune, arm_xgene1_tune, arm_cortex_a5_tune)
11690 (arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune)
11691 (arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune): Use new
11692 format.
11693 (arm_option_override, thumb2_reorg, arm_print_tune_info)
11694 (aarch_macro_fusion_pair_p): Update uses of current_tune.
11695 * arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Likewise.
11696
11697 2015-05-12 Sandra Loosemore <sandra@codesourcery.com>
11698
11699 * config/nios2/nios2.md (trap, ctrapsi4): Use "trap" instead of
11700 "break".
11701
11702 2015-05-12 Chung-Lin Tang <cltang@codesourcery.com>
11703 Sandra Loosemore <sandra@codesourcery.com>
11704
11705 * config/nios2/nios2.h (enum reg_class): Add IJMP_REGS enum
11706 value.
11707 (REG_CLASS_NAMES): Add "IJMP_REGS".
11708 (REG_CLASS_CONTENTS): Add new entry for IJMP_REGS.
11709 * config/nios2/nios2.md (indirect_jump,*tablejump): Adjust to
11710 use new "c" register constraint.
11711 * config/nios2/constraint.md (c): New register constraint
11712 corresponding to IJMP_REGS.
11713
11714 2015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
11715
11716 * config/rs6000/rs6000.md (*rotlsi3_internal4, *rotlsi3_internal5,
11717 *rotlsi3_internal6, rlwinm, 5 unnamed define_insns, and 6
11718 define_splits): Delete, revamp, transmogrify into ...
11719 (*rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
11720 *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
11721 *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
11722 New.
11723
11724 2015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
11725
11726 * config/rs6000/rs6000.md (rs6000_adjust_atomic_subword): Use
11727 gen_ashlsi3 and gen_andsi3 instead of gen_rlwinm.
11728
11729 2015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
11730
11731 * config/rs6000/rs6000.md (extzv): FAIL for SImode.
11732 (extzvsi_internal, *extzvsi_internal1, *extzvsi_internal2,
11733 *rotlsi3_internal7le, *rotlsi3_internal7be, *rotlsi3_internal8le,
11734 *rotlsi3_internal8be, *rotlsi3_internal9le, *rotlsi3_internal9be,
11735 *rotlsi3_internal10le, *rotlsi3_internal10be, *rotlsi3_internal11le,
11736 *rotlsi3_internal11be, *rotlsi3_internal12le, *rotlsi3_internal12be,
11737 *lshiftrt_internal1le, *lshiftrt_internal1be, *lshiftrt_internal2le,
11738 *lshiftrt_internal2be, *lshiftrt_internal3le, *lshiftrt_internal3be,
11739 *lshiftrt_internal4le, *lshiftrt_internal4be, *lshiftrt_internal5le,
11740 *lshiftrt_internal5be, *lshiftrt_internal5le, *lshiftrt_internal5be,
11741 *rotldi3_internal7le, *rotldi3_internal7be, *rotldi3_internal8le,
11742 *rotldi3_internal8be, *rotldi3_internal9le, *rotldi3_internal9be,
11743 *rotldi3_internal10le, *rotldi3_internal10be, *rotldi3_internal11le,
11744 *rotldi3_internal11be, *rotldi3_internal12le, *rotldi3_internal12be,
11745 *rotldi3_internal13le, *rotldi3_internal13be, *rotldi3_internal14le,
11746 *rotldi3_internal14be, *rotldi3_internal15le, *rotldi3_internal15be,
11747 and 30 corresponding splitters): Delete.
11748
11749 2015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
11750
11751 * config/rs6000/rs6000.md (define_split for bswaphi): Don't use
11752 zero_extract.
11753
11754 2015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
11755
11756 * combine.c (recog_for_combine_1): New function, factored out
11757 from recog_for_combine.
11758 (change_zero_ext): New function.
11759 (recog_for_combine): If recog fails, try again with the pattern
11760 modified by change_zero_ext; if that still fails, restore the
11761 pattern.
11762
11763 2015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
11764
11765 * combine.c (get_undo_marker): New function.
11766 (undo_to_marker): New function, largely factored out from ...
11767 (undo_all): ... this. Adjust.
11768
11769 2015-05-12 Richard Biener <rguenther@suse.de>
11770
11771 PR tree-optimization/66101
11772 * tree-ssa-dce.c (remove_dead_stmt): Properly mark loops for
11773 fixup if we turn a loop exit edge to a fallthru edge.
11774
11775 2015-05-12 Richard Biener <rguenther@suse.de>
11776
11777 PR tree-optimization/37021
11778 * tree-vectorizer.h (struct _slp_tree): Add two_operators flag.
11779 (SLP_TREE_TWO_OPERATORS): New define.
11780 * tree-vect-slp.c (vect_create_new_slp_node): Initialize
11781 SLP_TREE_TWO_OPERATORS.
11782 (vect_build_slp_tree_1): Allow two mixing plus/minus in an
11783 SLP node.
11784 (vect_build_slp_tree): Adjust.
11785 (vect_analyze_slp_cost_1): Likewise.
11786 (vect_schedule_slp_instance): Vectorize mixing plus/minus by
11787 emitting two vector stmts and mixing the results.
11788
11789 2015-05-12 Dominik Vogt <vogt@linux.vnet.ibm.com>
11790
11791 * call.c (print_z_candidates): Remove dead code.
11792
11793 2015-05-12 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11794
11795 * config/s390/2827.md: Split zEC12_simple into zEC12_simple_int
11796 and zEC12_simple_fp.
11797 * config/s390/s390.c (s390_issue_rate): Set issue rate for zEC12
11798 to 1.
11799
11800 2015-05-12 Tom de Vries <tom@codesourcery.com>
11801
11802 PR tree-optimization/66010
11803 * gimplify.c (gimplify_modify_expr): Handle new do_deref argument of
11804 ifn_va_arg.
11805 * gimplify.h (gimplify_va_arg_internal): Remove loc parameter.
11806 (gimplify_va_arg_internal): Remove loc parameter. Assert no array-typed
11807 va_lists are passed, and remove corresponding handling.
11808 (gimplify_va_arg_expr): Only take address of ap if necessary. Add
11809 do_deref argument to ifn_va_arg.
11810 * tree-stdarg.c (expand_ifn_va_arg_1): Handle new do_deref argument of
11811 ifn_va_arg.
11812
11813 2015-05-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11814
11815 PR target/65955
11816 * config/arm/arm.md (movcond_addsi): Check that operands[2] is a
11817 REG before taking its REGNO.
11818
11819 2015-05-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
11820
11821 * combine.c i(set_nonzero_bits_and_sign_copies): Split code updating
11822 rsp->sign_bit_copies and rsp->nonzero_bits into ...
11823 (update_rsp_from_reg_equal): This. Also use REG_EQUAL note on src if
11824 present to get more accurate information about the number of sign bit
11825 copies and non zero bits.
11826
11827 2015-05-12 Richard Biener <rguenther@suse.de>
11828
11829 * tree-vect-slp.c (vect_build_slp_tree_1): For BB vectorization
11830 do not allow unrolling.
11831
11832 2015-05-11 Richard Henderson <rth@redhat.com>
11833
11834 * config/i386/i386-modes.def (CCP): New.
11835 * config/i386/i386.c (put_condition_code): Handle it.
11836 (ix86_match_ccmode, ix86_cc_modes_compatible): Likewise.
11837
11838 2015-05-11 Richard Henderson <rth@redhat.com>
11839
11840 * target.def (md_asm_clobbers): Replace with...
11841 (md_asm_adjust): this.
11842 * tm.texi.in (TARGET_MD_ASM_CLOBBERS): Remove.
11843 (TARGET_MD_ASM_ADJUST): New.
11844 * tm.texi: Rebuild.
11845 * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Remove.
11846 * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Remove.
11847 * system.h (TARGET_MD_ASM_CLOBBERS): Poison.
11848
11849 * cfgexpand.c (check_operand_nalternatives): Accept vector of
11850 constraints instead of lists of outputs and inputs.
11851 (expand_asm_stmt): Save and restore input_location around the
11852 body of the function. Move asm data into vectors instead of
11853 building tree lists. Generate cleanup sequences as needed,
11854 rather than waiting til the end. Use new md_asm_adjust hook.
11855
11856 * config/vxworks.c: Include vec.h before target.h.
11857 * gimple.c: Likewise.
11858 * incpath.c: Likewise.
11859 * mode-switching.c: Likewise.
11860
11861 * config/cris/cris.c (cris_md_asm_clobbers): Convert to...
11862 (cris_md_asm_adjust): this.
11863 (TARGET_MD_ASM_CLOBBERS): Remove.
11864 (TARGET_MD_ASM_ADJUST): New.
11865 * config/i386/i386.c (ix86_md_asm_clobbers): Convert to...
11866 (ix86_md_asm_adjust): this.
11867 (TARGET_MD_ASM_CLOBBERS): Remove.
11868 (TARGET_MD_ASM_ADJUST): New.
11869 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): Convert to...
11870 (mn10300_md_asm_adjust): this.
11871 (TARGET_MD_ASM_CLOBBERS): Remove.
11872 (TARGET_MD_ASM_ADJUST): New.
11873 * config/rs6000/rs6000.c (rs6000_md_asm_clobbers): Convert to...
11874 (rs6000_md_asm_adjust): this.
11875 (TARGET_MD_ASM_CLOBBERS): Remove.
11876 (TARGET_MD_ASM_ADJUST): New.
11877 * config/visium/visium.c (visium_md_asm_clobbers): Convert to...
11878 (visium_md_asm_adjust): this.
11879 (TARGET_MD_ASM_CLOBBERS): Remove.
11880 (TARGET_MD_ASM_ADJUST): New.
11881
11882 2015-05-11 Richard Henderson <rth@redhat.com>
11883
11884 * gimplify.c (gimplify_asm_expr): Set gimple_asm_volatile_p
11885 if noutputs is zero.
11886 * cfgexpand.c (expand_asm_stmt): Use gimple_asm_volatile_p unchanged.
11887
11888 * cfgexpand.c (expand_asm_operands): Merge into...
11889 (expand_asm_stmt): ... here.
11890
11891 * cfgexpand.c (expand_asm_operands): Don't call
11892 resolve_asm_operand_names.
11893 * stmt.c (resolve_asm_operand_names): Clarify block comment.
11894
11895 2015-05-11 Jan Hubicka <hubicka@ucw.cz>
11896
11897 * dwarf2out.c (gen_member_die): Sanity check that we access
11898 TYPE_MAIN_VARIANT for TYPE_METHODS.
11899 * function.c (use_register_for_decl): Look for TYPE_MAIN_VARIANT when
11900 checking TYPE_METHODS.
11901 * tree.c (free_lang_data_in_type): See TYPE_METHODS to error_mark_node
11902 if non-null.
11903 (build_distinct_type_copy): Clear TYPE_METHODS.
11904 (verify_type_variant): Verify that TYPE_METHODS is NULL for variants.
11905 (verify_type): Allow TYPE_METHODS to be error_mark_node.
11906 * tree.def: Update docs of TYPE_STUB_DECL and TYPE_METHODS.
11907
11908 2015-05-11 Eric Botcazou <ebotcazou@adacore.com>
11909
11910 * emit-rtl.c (emit_pattern_after_setloc): Add missing guard.
11911 (emit_pattern_before_setloc): Likewise.
11912
11913 2015-05-11 Richard Sandiford <richard.sandiford@arm.com>
11914
11915 * genrecog.c (match_pattern_1): Expect the pattern to be a SEQUENCE
11916 for define_peephole2s.
11917 (get_peephole2_pattern): New function.
11918 (main): Use it. Call validate_pattern.
11919
11920 2015-05-11 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
11921
11922 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Use
11923 LAST_CALLEE_SAVED_REG instead of hard-coded register number.
11924 (Last callee saved reg is different for AVR_TINY architecture)
11925
11926 2015-05-11 Uros Bizjak <ubizjak@gmail.com>
11927
11928 * config/i386/i386.c (ix86_loop_unroll_adjust): Use PATTERN (insn)
11929 when looking for memory references.
11930
11931 2015-05-11 Alexander Monakov <amonakov@ispras.ru>
11932
11933 PR target/65753
11934 * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow PIC sibcalls
11935 via function pointers.
11936
11937 2015-05-11 Alexander Monakov <amonakov@ispras.ru>
11938
11939 * calls.c (prepare_call_address): Transform PLT call to GOT lookup and
11940 indirect call by forcing address into a pseudo with -fno-plt.
11941 * common.opt (flag_plt): New option.
11942 * doc/invoke.texi (Code Generation Options): Add -fno-plt.
11943 ([-fno-plt]): Document.
11944
11945 2015-05-11 Markus Trippelsdorf <markus@trippelsdorf.de>
11946
11947 PR bootstrap/66105
11948 * config/rs6000/option-defaults.h: Add space between string literal
11949 and macro name.
11950
11951 2015-05-11 Thomas Preud'homme <thomas.preudhomme@arm.com>
11952
11953 * gcc.target/arm/pr64616.c: Test dump rather than assembly to work
11954 accross ARM targets.
11955
11956 2015-05-11 Christian Bruel <christian.bruel@st.com>
11957
11958 * config/arm/arm-protos.h (thumb_code, thumb1_code): Remove.
11959 * config/arm/vxworks.h (thumb_code): Replace with TARGET_THUMB.
11960
11961 2015-05-11 Richard Sandiford <richard.sandiford@arm.com>
11962
11963 PR rtl-optimization/66076
11964 * rtlanal.c (generic_subrtx_iterator <T>::add_single_to_queue):
11965 Don't grow the heap array if it is already big enough from a
11966 previous iteration.
11967
11968 2015-05-11 Christian Bruel <christian.bruel@st.com>
11969
11970 * config/arm/arm-protos.h (arm_declare_function_name): Declare.
11971 (is_called_in_ARM_mode): Remove.
11972 * config/arm/arm.c (is_called_in_ARM_mode): Declare static bool.
11973 (arm_declare_function_name): Moved from from ARM_DECLARE_FUNCTION_NAME.
11974 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Call
11975 arm_declare_function_name.
11976
11977 2015-05-11 Christian Bruel <christian.bruel@st.com>
11978
11979 * config/arm/arm.c (arm_option_override): Reoganized and split into :
11980 (arm_option_params_internal); New function.
11981 (arm_option_check_internal): New function.
11982 (arm_option_override_internal): New function.
11983 (thumb_code, thumb1_code): Remove.
11984 * config/arm/arm.h (TREE_TARGET_THUMB, TREE_TARGET_THUMB1): New macros.
11985 (TREE_TARGET_THUM2, TREE_TARGET_ARM): Likewise.
11986 (thumb_code, thumb1_code): Remove.
11987 * config/arm/arm.md (is_thumb, is_thumb1): Check TARGET flag.
11988
11989 2015-05-11 Uros Bizjak <ubizjak@gmail.com>
11990
11991 * config/alpha/alpha.c (alpha_emit_set_const_1)
11992 (alpha_emit_set_long_const, alpha_extract_integer)
11993 (alpha_legitimate_constant_p, alpha_split_const_mov)
11994 (alpha_expand_block_clear, alpha_expand_zap_mask, print_operand):
11995 [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
11996 (alpha_emit_set_const_1): Change "(HOST_WIDE_INT) 1" to
11997 HOST_WIDE_INT_1U.
11998 * config/alpha/predicates.md (mode_mask_operand): Do not match
11999 const_double RTX.
12000 [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
12001 * config/alpha/alpha.md (abstf, *abstf_internal, UNSPEC_ZAP splitter):
12002 Change "(HOST_WIDE_INT) 1" to HOST_WIDE_INT_1U.
12003 [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
12004 (*negtf_internal): Use gen_int_mode instead of immed_double_const.
12005
12006 2015-05-11 Jakub Jelinek <jakub@redhat.com>
12007
12008 PR target/65780
12009 * config/s390/linux.h (TARGET_BINDS_LOCAL_P): Define to
12010 default_binds_local_p_2.
12011 * config/arm/linux-elf.h (TARGET_BINDS_LOCAL_P): Likewise.
12012 * config/aarch64/aarch64-linux.h (TARGET_BINDS_LOCAL_P): Likewise.
12013
12014 2015-05-09 Jan Hubicka <hubicka@ucw.cz>
12015
12016 * tree.c (verify_type_variant): Check TYPE_VALUES_RAW and TYPE_PRECISION
12017
12018 2015-05-09 Jan Hubicka <hubicka@ucw.cz>
12019
12020 Patch by Richard Biener
12021 * coverage.c (coverage_obj_init): Delay building of type variant
12022 until the type is finished.
12023
12024 2015-05-09 Jan Hubicka <hubicka@ucw.cz>
12025
12026 * ipa-devirt.c (warn_types_mismatch): Do not ICE when warning about
12027 mismatch between C and C++ type; compoare correctly ARG_TYPES
12028 for non-prototypes and output correctly parameter index for METHOD_TYPE.
12029 (odr_types_equivalent_p): Fix wording of warning about attributes;
12030 it is OK to match prototype and non-prototype.
12031
12032 2015-05-09 Jan Hubicka <hubicka@ucw.cz>
12033
12034 * tree.c (free_lang_data_in_type): Free TREE_PURPOSE of
12035 TYPE_ARG_TYPES list.
12036 (verify_type): Permit non-NULL TREE_PURPOSE in non-LTO builds.
12037 * tree.def (FUNCTION_TYPE): Document TREE_PURPOSE in TYPE_ARG_TYPES
12038
12039 2015-05-09 Jan Hubicka <hubicka@ucw.cz>
12040
12041 * tree.c (verify_type): Verify TYPE_BINFO and TYPE_VALUES_RAW.
12042 * tree.h (is_lang_specific): Constify.
12043
12044 2015-05-09 Marc Glisse <marc.glisse@inria.fr>
12045
12046 PR tree-optimization/64454
12047 * tree-vrp.c (extract_range_from_binary_expr_1) <TRUNC_MOD_EXPR>:
12048 Rewrite.
12049
12050 2015-05-08 Jason Merrill <jason@redhat.com>
12051
12052 * bitmap.c, c/c-aux-info.c, cfg.c, cfghooks.c, cgraph.c,
12053 config/aarch64/aarch64.md config/alpha/vms.h, config/darwin.c,
12054 config/darwin.h, config/darwin9.h, config/elfos.h,
12055 config/i386/bsd.h, config/ia64/ia64.c, config/lm32/lm32.h,
12056 config/microblaze/microblaze.h, config/mips/mips.h,
12057 config/mmix/mmix.c, config/msp430/msp430.c, config/nios2/nios2.h,
12058 config/nvptx/nvptx.c, config/nvptx/nvptx.h, config/pa/pa.c,
12059 config/pa/pa.h, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
12060 config/rs6000/xcoff.h, config/rx/rx.h, config/s390/s390.h,
12061 config/sparc/sol2.h, config/sparc/sparc.h, config/visium/visium.h,
12062 cppbuiltin.c, defaults.h, doc/invoke.texi, dwarf2cfi.c,
12063 dwarf2out.c, final.c, gcc.c, gcov-dump.c, gcov.c, ipa-cp.c,
12064 ipa-inline.c, ipa-polymorphic-call.c, ipa-profile.c, ipa-prop.c,
12065 ira-color.c, ira.c, loop-doloop.c, loop-iv.c, mcf.c,
12066 modulo-sched.c, predict.c, profile.c, stor-layout.c, toplev.c,
12067 tree-ssa-reassoc.c, value-prof.c, wide-int-print.cc: Add space
12068 between string literal and macro name.
12069
12070 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12071
12072 * jump.c: Change argument types to rtx_insn *.
12073 * rtl.h: Adjust.
12074
12075 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12076
12077 * lra-constraints.c: Change argument type to rtx_insn *.
12078
12079 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12080
12081 * df-problems.c: Change argument type to rtx_insn *.
12082
12083 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12084
12085 * combine.c: Change argument type to rtx_insn *.
12086
12087 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12088
12089 * rtl.h: Adjust.
12090 * rtlanal.c: Change argument type to rtx_insn *.
12091
12092 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12093
12094 * sched-deps.c: Change argument types to rtx_insn *.
12095 * sched-int.h: Adjust.
12096
12097 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12098
12099 * dwarf2cfi.c: Change argument type to rtx_insn *.
12100
12101 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12102
12103 * ira.c (decrease_live_ranges_number): Changetype of local
12104 variable to rtx_insn *.
12105 * recog.c: Change argument types to rtx_insn *.
12106 * recog.h: Adjust.
12107
12108 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12109
12110 * reorg.c: Change argument types to rtx_insn *.
12111
12112 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12113
12114 * ira-color.c: Change argument types to rtx_insn *.
12115 * lra-eliminations.c: Likewise.
12116 * ira.h: Adjust.
12117
12118 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12119
12120 * gcse.c: Change argument types to rtx_insn *.
12121
12122 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12123
12124 * cse.c (cse_change_cc0_mode): Change argument type to rtx_insn *.
12125
12126 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12127
12128 * emit-rtl.c (emit_debug_insn_before): Change argument type to
12129 rtx_insn *.
12130 * rtl.h: Adjust.
12131
12132 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12133
12134 * emit-rtl.c (emit_note_before): Change argument type to rtx_insn *.
12135 * rtl.h: Adjust.
12136
12137 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12138
12139 * emit-rtl.c (emit_note_after): Change argument type to rtx_insn *.
12140 * rtl.h: Adjust.
12141
12142 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12143
12144 * emit-rtl.c (prev_cc0_setter): Change argument type to rtx_insn *.
12145 * rtl.h: Adjust.
12146
12147 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12148
12149 * rtlanal.c (noop_move_p): Change argument type to rtx_insn *.
12150 * rtl.h: Adjust.
12151
12152 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12153
12154 * rtlanal.c (add_shallow_copy_of_reg_note): Change argument type
12155 to rtx_insn *.
12156 * rtl.h: Adjust.
12157
12158 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12159
12160 * rtlanal.c (remove_reg_equal_equiv_notes): Change argument type
12161 to rtx_insn *.
12162 * rtl.h: Likewise.
12163
12164 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12165
12166 * except.c (can_nonlocal_goto): Change type of argument to
12167 rtx_insn *.
12168 * rtl.h: Adjust.
12169
12170 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12171
12172 * rtlanal.c (computed_jump_p): Cange argument type to rtx_insn *.
12173 * rtl.h: Adjust.
12174
12175 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12176
12177 * rtlanal.c (in_insn_list_p): Renamed from in_expr_list_p.
12178 * cfgrtl.c (can_delete_label_p): Adjust.
12179 * rtl.h: likewise.
12180
12181 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12182
12183 * reorg.c (stop_search_p): Change argument to rtx_insn *.
12184
12185 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12186
12187 * except.c (make_reg_eh_region_note): Change argument to
12188 rtx_insn *.
12189 (make_reg_eh_region_note_nothrow_nononlocal): Likewise.
12190 * except.h: Adjust.
12191
12192 2015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12193
12194 * mode-switching.c (commit_mode_sets): Change type of local
12195 variable from rtx to rtx_insn *.
12196
12197 2015-05-08 Jim Wilson <jim.wilson@linaro.org>
12198
12199 * doc/install.texi (--enable-languages): Add missing jit and lto info.
12200 Add ^ to grep command.
12201 * doc/match-and-simplify.texi (GIMPLE API): Add missing fourth tree
12202 arg to last gimple_simplify declaration. Add missing gimple_build
12203 declaration for built-in function case with four tree args.
12204
12205 2015-05-08 Gregor Richards <gregor.richards@uwaterloo.ca>
12206 Szabolcs Nagy <szabolcs.nagy@arm.com>
12207
12208 * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Define.
12209 (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Define.
12210 (GNU_USER_DYNAMIC_LINKERN32): Update.
12211
12212 2015-05-08 Richard Biener <rguenther@suse.de>
12213
12214 PR tree-optimization/66036
12215 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
12216 Handle strided group loads.
12217 (vect_verify_datarefs_alignment): Likewise.
12218 (vect_enhance_data_refs_alignment): Likewise.
12219 (vect_analyze_group_access): Likewise.
12220 (vect_analyze_data_ref_access): Likewise.
12221 (vect_analyze_data_ref_accesses): Likewise.
12222 * tree-vect-stmts.c (vect_model_load_cost): Likewise.
12223 (vectorizable_load): Likewise.
12224
12225 2015-05-08 Segher Boessenkool <segher@kernel.crashing.org>
12226
12227 * config/rs6000/rs6000.md: Require operand inequality in one
12228 of the peepholes.
12229
12230 2015-05-08 Richard Sandiford <richard.sandiford@arm.com>
12231 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
12232
12233 * config/i386/i386.md (<mode>_ldx, *<mode>_ldx): Remove mode
12234 from (set ...).
12235 * config/rx/rx.md (movdi, movdf): Likewise.
12236 Likewise for define_peephole2s.
12237
12238 2015-05-08 Alan Lawrence <alan.lawrence@arm.com>
12239
12240 * config/aarch64/arm_neon.h (vceq_s64, vceq_u64, vceqz_s64, vceqz_u64,
12241 vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64, vcgtz_s64, vcle_s64,
12242 vcle_u64, vclez_s64, vclt_s64, vclt_u64, vcltz_s64, vtst_s64,
12243 vtst_u64): Rewrite using gcc vector extensions.
12244
12245 2015-05-08 Alan Lawrence <alan.lawrence@arm.com>
12246
12247 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>,
12248 vcond<mode><mode>, vcondu<mode><mode>): Add DImode variant.
12249
12250 2015-05-08 Alan Lawrence <alan.lawrence@arm.com>
12251
12252 * optabs.c (vector_compare_rtx): Handle RTL operands having VOIDmode.
12253
12254 2015-05-08 Szabolcs Nagy <szabolcs.nagy@arm.com>
12255
12256 * config/glibc-stdint.h (OPTION_MUSL): Define.
12257 (INT_FAST16_TYPE, INT_FAST32_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE):
12258 Change the definition based on OPTION_MUSL for 64 bit targets.
12259 * config/linux.h (OPTION_MUSL): Redefine.
12260 * config/alpha/linux.h (OPTION_MUSL): Redefine.
12261 * config/rs6000/linux.h (OPTION_MUSL): Redefine.
12262 * config/rs6000/linux64.h (OPTION_MUSL): Redefine.
12263
12264 2015-05-08 Gregor Richards <gregor.richards@uwaterloo.ca>
12265 Szabolcs Nagy <szabolcs.nagy@arm.com>
12266
12267 * config.gcc (LIBC_MUSL): New tm_defines macro.
12268 * config/linux.h (OPTION_MUSL): Define.
12269 (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER32,)
12270 (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32,)
12271 (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
12272 (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
12273 (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
12274 * config/linux.opt (mmusl): New option.
12275 * doc/invoke.texi (GNU/Linux Options): Document -mmusl.
12276 * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
12277 (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
12278 * configure: Regenerate.
12279
12280 2015-05-08 H.J. Lu <hongjiu.lu@intel.com>
12281 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
12282
12283 PR target/48904
12284 * config.gcc (x86_64-*-knetbsd*-gnu): Add i386/knetbsd-gnu64.h.
12285 * config/i386/knetbsd-gnu64.h: New file.
12286
12287 2015-05-08 Marek Polacek <polacek@redhat.com>
12288
12289 PR c/64918
12290 * doc/invoke.texi: Document -Woverride-init-side-effects.
12291
12292 2015-05-07 Marek Polacek <polacek@redhat.com>
12293
12294 PR c/65179
12295 * doc/invoke.texi: Document -Wshift-negative-value.
12296
12297 2015-05-06 Aditya Kumar <hiraditya@msn.com>
12298
12299 * gcov-tool.c (do_merge): Refactore to remove int ret.
12300 * ipa-icf.c (sem_item::hash_referenced_symbol_properties): Change
12301 !type == FUNC to type != FUNC.
12302 * reload.h (struct target_reload): Changee to type of
12303 x_spill_indirect_levels from bool to unsigned char.
12304
12305 2015-05-07 Richard Sandiford <richard.sandiford@arm.com>
12306
12307 * rtl.h (always_void_p): New function.
12308 * gengenrtl.c (always_void_p): Likewise.
12309 (genmacro): Don't add a mode parameter to gen_rtx_foo if rtxes
12310 with code foo are always VOIDmode.
12311 * genemit.c (gen_exp): Update gen_rtx_foo calls accordingly.
12312 * builtins.c, caller-save.c, calls.c, cfgexpand.c, combine.c,
12313 compare-elim.c, config/aarch64/aarch64.c,
12314 config/aarch64/aarch64.md, config/alpha/alpha.c,
12315 config/alpha/alpha.md, config/arc/arc.c, config/arc/arc.md,
12316 config/arm/arm-fixed.md, config/arm/arm.c, config/arm/arm.md,
12317 config/arm/ldrdstrd.md, config/arm/thumb2.md, config/arm/vfp.md,
12318 config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
12319 config/c6x/c6x.md, config/cr16/cr16.c, config/cris/cris.c,
12320 config/cris/cris.md, config/darwin.c, config/epiphany/epiphany.c,
12321 config/epiphany/epiphany.md, config/fr30/fr30.c, config/frv/frv.c,
12322 config/frv/frv.md, config/h8300/h8300.c, config/i386/i386.c,
12323 config/i386/i386.md, config/i386/sse.md, config/ia64/ia64.c,
12324 config/ia64/vect.md, config/iq2000/iq2000.c,
12325 config/iq2000/iq2000.md, config/lm32/lm32.c, config/lm32/lm32.md,
12326 config/m32c/m32c.c, config/m32r/m32r.c, config/m68k/m68k.c,
12327 config/m68k/m68k.md, config/mcore/mcore.c, config/mcore/mcore.md,
12328 config/mep/mep.c, config/microblaze/microblaze.c,
12329 config/mips/mips.c, config/mips/mips.md, config/mmix/mmix.c,
12330 config/mn10300/mn10300.c, config/msp430/msp430.c,
12331 config/nds32/nds32-memory-manipulation.c, config/nds32/nds32.c,
12332 config/nds32/nds32.md, config/nios2/nios2.c, config/nvptx/nvptx.c,
12333 config/pa/pa.c, config/pa/pa.md, config/rl78/rl78.c,
12334 config/rs6000/altivec.md, config/rs6000/rs6000.c,
12335 config/rs6000/rs6000.md, config/rs6000/vector.md,
12336 config/rs6000/vsx.md, config/rx/rx.c, config/rx/rx.md,
12337 config/s390/s390.c, config/s390/s390.md, config/sh/sh.c,
12338 config/sh/sh.md, config/sh/sh_treg_combine.cc,
12339 config/sparc/sparc.c, config/sparc/sparc.md, config/spu/spu.c,
12340 config/spu/spu.md, config/stormy16/stormy16.c,
12341 config/tilegx/tilegx.c, config/tilegx/tilegx.md,
12342 config/tilepro/tilepro.c, config/tilepro/tilepro.md,
12343 config/v850/v850.c, config/v850/v850.md, config/vax/vax.c,
12344 config/visium/visium.c, config/xtensa/xtensa.c, cprop.c, dse.c,
12345 expr.c, gcse.c, ifcvt.c, ira.c, jump.c, lower-subreg.c,
12346 lra-constraints.c, lra-eliminations.c, lra.c, postreload.c, ree.c,
12347 reg-stack.c, reload.c, reload1.c, reorg.c, sel-sched.c,
12348 var-tracking.c: Update calls accordingly.
12349
12350 2015-05-07 Segher Boessenkool <segher@kernel.crashing.org>
12351
12352 PR middle-end/192
12353 PR middle-end/54303
12354 * varasm.c (function_mergeable_rodata_prefix): New function.
12355 (mergeable_string_section): Use it.
12356 (mergeable_constant_section): Use it.
12357
12358 2015-05-07 Jeff Law <law@redhat.com>
12359
12360 PR target/39726
12361 * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
12362 simplifier to narrow arithmetic.
12363 * generic-match-head.c: (types_match, single_use): New functions.
12364 * gimple-match-head.c: (types_match, single_use): New functions.
12365
12366 2015-05-07 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
12367
12368 * combine.c (make_compound_operation): Remove checks for PLUS/MINUS
12369 rtx type.
12370
12371 2015-05-07 Richard Biener <rguenther@suse.de>
12372
12373 PR tree-optimization/66002
12374 * passes.def: Schedule another pass_merge_phi after ifcombine, right
12375 before phiopt.
12376
12377 2015-05-07 Marek Polacek <polacek@redhat.com>
12378 Martin Uecker <uecker@eecs.berkeley.edu>
12379
12380 * doc/invoke.texi: Document -fsanitize=bounds-strict.
12381 * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS_STRICT, or it
12382 into SANITIZE_NONDEFAULT.
12383 * opts.c (common_handle_option): Handle -fsanitize=bounds-strict.
12384
12385 2015-05-07 Uros Bizjak <ubizjak@gmail.com>
12386
12387 PR target/66015
12388 * config/alpha/alpha.c (alpha_override_options_after_change): New.
12389 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
12390 (alpha_override_options): Move align_loops, align_jumps and
12391 align_functions handling into alpha_override_options_after_change.
12392
12393 2015-05-06 Sandra Loosemore <sandra@codesourcery.com>
12394 Chris Jones <chrisj@nvidia.com>
12395 Joshua Conner <jconner@nvidia.com>
12396
12397 * config/arm/unknown-elf.h (STARTFILE_SPEC): Add conditional
12398 linking of crtfastmath.o.
12399 * config/arm/linux-eabi.h (STARTFILE_SPEC): Likewise.
12400
12401 2015-05-06 Segher Boessenkool <segher@kernel.crashing.org>
12402
12403 * config/rs6000/rs6000.md (cstore<mode>4_signed_imm): New expander.
12404 (cstore<mode>4_unsigned_imm): New expander.
12405 (cstore<mode>4): Remove empty constraint strings. Use the new
12406 expanders.
12407
12408 2015-05-06 Yvan Roux <yvan.roux@linaro.org>
12409
12410 PR target/64208
12411 * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Cleanup redundant
12412 alternatives.
12413
12414 2015-05-06 Szabolcs Nagy <szabolcs.nagy@arm.com>
12415
12416 * config/aarch64/geniterators.sh: Use standard BRE in sed.
12417
12418 2015-05-06 Alan Modra <amodra@gmail.com>
12419
12420 PR target/66033
12421 * config/rs6000/rs6000.md (nop): Use an unspec pattern.
12422 (UNSPEC_NOP): Define.
12423 (reload_vsx_from_gpr<mode>): Add missing DONE.
12424 (reload_gpr_from_vsx<mode>): Likewise.
12425 * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
12426 (vsx_div_v2di, vsx_udiv_v2di): Likewise.
12427
12428 2015-05-06 Christian Bruel <christian.bruel@st.com>
12429
12430 PR target/66015
12431 * config/aarch64/aarch64.c (aarch64_override_options): Move align_loops,
12432 align_jumps, align_functions into aarch64_override_options_after_change.
12433
12434 2015-05-06 Richard Biener <rguenther@suse.de>
12435
12436 * tree-vect-slp.c (vect_supported_load_permutation_p): Use
12437 vect_transform_slp_perm_load to check if we support a permutation
12438 for basic-block vectorization.
12439
12440 2015-05-06 Nick Clifton <nickc@redhat.com>
12441
12442 * config/rl78/rl78.c (need_to_save): Save register 22 if it is
12443 used, even if it is not being used as a frame pointer.
12444
12445 2015-05-05 Jason Merrill <jason@redhat.com>
12446
12447 * dwarf2out.c (gen_member_die): Don't emit anything for an
12448 anonymous class constructor.
12449
12450 2015-05-05 David Malcolm <dmalcolm@redhat.com>
12451
12452 * auto-profile.c (afdo_find_equiv_class): Fix indentation so
12453 that it reflects the block structure.
12454 (afdo_propagate_edge): Likewise.
12455 (afdo_calculate_branch_prob): Likewise.
12456 (afdo_annotate_cfg): Likewise.
12457 * cfgcleanup.c (equal_different_set_p): Likewise.
12458 (try_crossjump_to_edge): Likewise.
12459 * cgraph.c (cgraph_node::verify_node): Likewise.
12460 * cgraphunit.c (expand_all_functions): Likewise.
12461 * config/i386/i386.c (ix86_expand_copysign): Likewise.
12462 (exact_dependency_1): Likewise.
12463 * dwarf2asm.c (dw2_output_indirect_constants): Likewise.
12464 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Likewise.
12465 * gensupport.c (process_define_subst): Likewise.
12466 * lto-wrapper.c (merge_and_complain): Likewise.
12467 * tree-if-conv.c (if_convertible_bb_p): Likewise.
12468 * tree-ssa-loop-prefetch.c (find_or_create_group): Likewise.
12469 * tree-ssa-tail-merge.c (gsi_advance_fw_nondebug_nonlocal): Likewise.
12470 * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
12471 * tree-vect-loop.c (vectorizable_reduction): Likewise.
12472 * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
12473 * tree-vect-stmts.c (vectorizable_shift): Likewise.
12474 * tree-vrp.c (vrp_finalize): Likewise.
12475 * tree.c (variably_modified_type_p): Likewise.
12476
12477 2015-05-05 Jack Howarth <howarth.at.gcc@gmail.com>
12478
12479 * config.gcc: Use darwin9.h, darwin10.h and darwin12.h
12480 on darwin12 and later.
12481 * config/darwin12.h (LINK_GCC_C_SEQUENCE_SPEC): Add
12482 file to pass -rdynamic on darwin12 and later.
12483 * config/darwin.opt (rdynamic): Add.
12484
12485 2015-05-05 Uros Bizjak <ubizjak@gmail.com>
12486
12487 * doc/extend.texi (C Extensions): Update menu for moved Variable
12488 Attributes and Type Attributes sections.
12489
12490 2015-05-05 Uros Bizjak <ubizjak@gmail.com>
12491
12492 PR target/65990
12493 * config/i386/i386.c (ix86_parse_stringop_strategy_string): Error out
12494 if rep_8byte stringop strategy was specified for 32-bit target.
12495
12496 2015-05-05 Ilya Tocar <ilya.tocar@intel.com>
12497
12498 PR target/65915
12499 * config/i386/i386.md (vector convert to float spltiter): Check for
12500 xmm16+, when splitting scalar float conversion.
12501 * config/i386/sse.md (sse2_cvtsi2sd): Support EVEX version.
12502
12503 2015-05-05 Nick Clifton <nickc@redhat.com>
12504
12505 * config/msp430/msp430-opts.h (enum msp430_regions): New.
12506 * config/msp430/msp430.c (msp430_override_options): Complain if
12507 -mcode-region or -mdata-region is used on a non MSP430X.
12508 (msp430_section_attr): New function. Checks lower, upper and
12509 either attributes.
12510 (msp430_attribute_table): Add lower, upper and either.
12511 (gen_prefix): New function. Generates a prefix for a section
12512 name.
12513 (msp430_select_section): New function - handles the choice of
12514 section for an object. Takes into account memory region
12515 attributes and options.
12516 (msp430_function_section): Use gen_prefix.
12517 (TARGET_SECTION_TYPE_FLAGS): Define.
12518 (msp430_section_type_flags): New function.
12519 (TARGET_ASM_UNIQUE_SECTION): Define.
12520 (msp430_unique_section): New function.
12521 (msp430_output_aligned_decl_common): New function.
12522 (msp430_do_not_relax_short_jumps): New function.
12523 * config/msp430/msp430.h (USE_SELECT_SECTION_FOR_FUNCTIONS):
12524 Define.
12525 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
12526 * config/msp430/msp430-protos.h
12527 (msp430_do_not_relax_short_jumps): New prototype.
12528 (msp430_output_aligned_decl_common): New prototype.
12529 * config/msp430/msp430.md (length): New attribute.
12530 (cbranchhi4_real): If msp430_do_not_relax_short_jumps is true
12531 then use a long code sequence for short jumps.
12532 * config/msp430/msp430.opt (mcode-region): New.
12533 (mdata-region): New.
12534 * doc/invoke.texi: Document new options.
12535 * doc/extend.texi: Document new attributes.
12536
12537 2015-05-05 Matthew Wahab <matthew.wahab@arm.com>
12538
12539 * gcc/config/aarch64-protos.h (struct cpu_branch_cost): New.
12540 (tune_params): Add field branch_costs.
12541 (aarch64_branch_cost): Declare.
12542 * gcc/config/aarch64.c (generic_branch_cost): New.
12543 (generic_tunings): Set field cpu_branch_cost to generic_branch_cost.
12544 (cortexa53_tunings): Likewise.
12545 (cortexa57_tunings): Likewise.
12546 (thunderx_tunings): Likewise.
12547 (xgene1_tunings): Likewise.
12548 (aarch64_branch_cost): Define.
12549 * gcc/config/aarch64/aarch64.h (BRANCH_COST): Redefine.
12550
12551 2015-05-05 Uros Bizjak <ubizjak@gmail.com>
12552
12553 * config/i386/i386.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1
12554 and HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1.
12555 * config/i386/i386.md: Ditto.
12556 * config/i386/winnt.c: Ditto.
12557
12558 2015-05-05 Matthew Wahab <matthew.wahab@arm.com>
12559
12560 * doc/extend.texi (__atomic Builtins): Move implementation details
12561 to the end of the description, rewrite opening paragraphs, state
12562 difference with __sync builtins, state C11/C++11 assumptions,
12563 weaken itemized descriptions, add explanation of memory model
12564 behaviour, expand description of compare-exchange, simplify text.
12565
12566 2015-05-05 Renlin Li <renlin.li@arm.com>
12567
12568 * config/aarch64/aarch64.md (add<mode>3): Use mov when allowed.
12569
12570 2015-05-05 Yvan Roux <yvan.roux@linaro.org>
12571
12572 * config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define.
12573 (LINK_SPEC): Include CA53_ERR_843419_SPEC.
12574 * config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define.
12575 (LINK_SPEC): Include CA53_ERR_843419_SPEC.
12576 * config/aarch64/aarch64.opt (mfix-cortex-a53-843419): New option.
12577 * configure: Regenerate.
12578 * configure.ac: Add --enable-fix-cortex-a53-843419 option.
12579 * doc/install.texi (aarch64*-*-*): Document new
12580 --enable-fix-cortex-a53-843419 option.
12581 * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-843419
12582 and -mno-fix-cortex-a53-843419 options.
12583
12584 2015-05-05 Uros Bizjak <ubizjak@gmail.com>
12585
12586 PR target/65871
12587 * config/i386/i386.md (*bmi_andn_<mode>_ccno): New pattern.
12588
12589 2015-05-04 Jan Hubicka <hubicka@ucw.cz>
12590
12591 * tree.c (verify_type): Check various uses of TYPE_MAXVAL;
12592 fix overactive TYPE_MIN_VALUE check and add FIXME for type
12593 compatibility problems.
12594
12595 2015-05-04 Ajit Agarwal <ajitkum@xilinx.com>
12596
12597 * config/microblaze/microblaze.md (cbranchsi4): Added immediate
12598 constraints.
12599 (cbranchsi4_reg): New.
12600 * config/microblaze/microblaze.c
12601 (microblaze_expand_conditional_branch_reg): New.
12602 * config/microblaze/microblaze-protos.h
12603 (microblaze_expand_conditional_branch_reg): New prototype.
12604
12605 2015-05-04 Ajit Agarwal <ajitkum@xilinx.com>
12606
12607 * config/microblaze/microblaze.md (peephole2): New.
12608
12609 2015-05-04 Jeff Law <law@redhat.com>
12610
12611 Revert:
12612 2015-05-04 Jeff Law <law@redhat.com>
12613
12614 * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
12615 simplifier to narrow arithmetic.
12616 * generic-match-head.c: (types_match, single_use): New functions.
12617 * gimple-match-head.c: (types_match, single_use): New functions.
12618
12619 2015-05-04 Kaz Kojima <kkojima@gcc.gnu.org>
12620
12621 PR target/65987
12622 * config/sh/sh.c (output_far_jump): Take into account crossing jumps.
12623 (split_branches): Likewise.
12624
12625 2015-05-04 Sandra Loosemore <sandra@codesourcery.com>
12626
12627 * common.opt (fdelete-null-pointer-checks): Init to -1.
12628 * config/nios2/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define to
12629 override flag_delete_null_pointer_checks default.
12630 * doc/invoke.texi (-fdelete-null-pointer-checks): Clarify
12631 behavior re address zero. Better document target-specific behavior.
12632 (-fisolate-errneous-paths-dereference): Mention relationship to
12633 -fdelete-null-pointer-checks.
12634
12635 2015-05-04 Jakub Jelinek <jakub@redhat.com>
12636
12637 PR tree-optimization/65984
12638 * ubsan.c: Include tree-cfg.h.
12639 (instrument_bool_enum_load): Use stmt_ends_bb_p instead of
12640 stmt_could_throw_p test, rename can_throw variable to ends_bb.
12641
12642 2015-05-04 Uros Bizjak <ubizjak@gmail.com>
12643
12644 * config/i386/i386.c: Change GET_CODE (...) == CONST_DOUBLE check
12645 to CONST_DOUBLE_P predicate.
12646 (standard_sse_constant_p): Return 0 for !TARGET_SSE.
12647 (ix86_legitimate_constant_p) <case CONST_WIDE_INT>: For 32bit targets,
12648 allow only operands that satisfy standard_sse_constant_p predicate.
12649 * config/i386/i386.md: Change GET_CODE (...) == CONST_DOUBLE check
12650 to CONST_DOUBLE_P predicate.
12651
12652 2015-05-04 Jeff Law <law@redhat.com>
12653
12654 * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
12655 simplifier to narrow arithmetic.
12656 * generic-match-head.c: (types_match, single_use): New functions.
12657 * gimple-match-head.c: (types_match, single_use): New functions.
12658
12659 2015-05-04 Andreas Tobler <andreast@gcc.gnu.org>
12660
12661 * config/arm/arm.c: Restore bootstrap.
12662
12663 2015-05-04 Uros Bizjak <ubizjak@gmail.com>
12664
12665 * config/i386/i386.h (TARGET_SUPPORTS_WIDE_INT): New define.
12666 * config/i386/i386.c (ix86_legitimate_constant_p): Handle TImode
12667 as CONST_WIDE_INT, not CONST_DOUBLE.
12668 (ix86_cannot_force_const_mem): Handle CONST_WIDE_INT.
12669 (output_pic_addr_const): Do not handle VOIDmode CONST_DOUBLEs.
12670 (ix86_find_base_term): Do not check for CONST_DOUBLE.
12671 (ix86_print_operand): Do not handle non-FPmode CONST_DOUBLEs.
12672 (ix86_build_signbit_mask): Rewrite using wide ints.
12673 (ix86_split_to_parts) [HOST_BITS_PER_WIDE_INT < 64]: Remove.
12674 (ix86_rtx_costs): Handle CONST_WIDE_INT.
12675 (find_constant): Ditto.
12676 * config/i386/i386.md (bts, btr, btc peepholes): Rewrite
12677 using gen_int_mode.
12678 * config/i386/predicates.md (x86_64_immediate_operand)
12679 <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
12680 (x86_64_zext_immediate_operand): Remove CONST_DOUBLE handling.
12681 <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
12682 (const0_operand): Also match const_wide_int.
12683 (constm1_operand): Ditto.
12684 (const1_operand): Ditto.
12685
12686 2015-05-04 Richard Biener <rguenther@suse.de>
12687
12688 PR tree-optimization/65965
12689 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
12690 store groups at gaps.
12691
12692 2015-05-04 Richard Biener <rguenther@suse.de>
12693
12694 PR tree-optimization/65935
12695 * tree-vect-slp.c (vect_build_slp_tree): If we swapped operands
12696 then make sure to apply that swapping to the IL.
12697
12698 2015-05-04 Jakub Jelinek <jakub@redhat.com>
12699
12700 * Makefile.in (PATCHLEVEL_c): New variable.
12701 (DATESTAMP_s, REVISION_s): If PATCHLEVEL_c is not 0,
12702 expand the same way as if DEVPHASE_c was non-empty.
12703
12704 2015-05-04 Kai Tietz <ktietz@redhat.com>
12705
12706 PR target/65559
12707 * lto-wrapper.c (run_gcc): Open filename
12708 in binary-mode.
12709
12710 2015-05-03 Sandra Loosemore <sandra@codesourcery.com>
12711
12712 * doc/extend.texi (Variable Attributes, Type Attributes): Move
12713 sections up in file, to immediately after the Function Attributes
12714 section.
12715
12716 2015-05-02 Jan Hubicka <hubicka@ucw.cz>
12717
12718 * tree.c (verify_type): Check various uses of TYPE_MINVAL.
12719
12720 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12721
12722 * tree-outof-ssa.c (emit_partition_copy): Return rtx_insn *.
12723 (insert_partition_copy_on_edge): Adjust.
12724 (insert_rtx_to_part_on_edge): Likewise.
12725 (insert_part_to_rtx_on_edge): Likewise.
12726
12727 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12728
12729 * function.c (set_return_jump_label): Change type of argument to
12730 rtx_insn *.
12731 * function.h (set_return_jump_label): Adjust.
12732
12733 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12734
12735 * reload.h (struct reg_equivs_t): Change type of init to
12736 rtx_insn *.
12737 * ira.c (fix_reg_equiv_init): Adjust.
12738 * reload1.c (eliminate_regs_1): Likewise.
12739 (init_eliminable_invariants): Likewise.
12740
12741 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12742
12743 * cselib.c (fp_setter_insn): Take a rtx_insn *.
12744 * cselib.h (fp_setter_insn): Adjust.
12745
12746 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12747
12748 * recog.c (struct validate_replace_src_data): Change type of
12749 insn field to rtx_insn *.
12750 (validate_replace_src_group): Change type of argument to rtx_insn *.
12751 * recog.h (validate_replace_src_group): Adjust.
12752
12753 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12754
12755 * haifa-sched.c: Change the type of some variables to rtx_insn *.
12756 * sched-deps.c: Likewise.
12757 * sched-int.h: Likewise.
12758 * sched-rgn.c: Likewise.
12759 * sel-sched.c: Likewise.
12760
12761 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12762
12763 to rtx_insn *.
12764 * config/i386/i386.c: Change the type of some arguments to
12765 rtx_insn *.
12766 * config/arm/arm.c: Likewise.
12767
12768 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12769
12770 * lra-constraints.c: Change type of some arguments to rtx_insn *.
12771
12772 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12773
12774 * regcprop.c (kill_autoinc_value): Change type of argument to
12775 rtx_insn *.
12776
12777 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12778
12779 * genrecog.c (print_subroutine): Adjust.
12780 * recog.c (get_bool_attr_mask_uncached): Likewise.
12781 * recog.h (struct recog_data_d): Change the type of insn to
12782 rtx_insn *.
12783
12784 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12785
12786 * dwarf2cfi.c (add_cfi_insn): Change type to rtx_insn *.
12787
12788 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12789
12790 * df-problems.c (df_set_note): Change type of argument to
12791 rtx_insn *.
12792
12793 2015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
12794
12795 * builtins.c (expand_builtin_trap): Change type of local
12796 variable to rtx_insn *.
12797 (add_sched_insns_for_speculation): Likewise.
12798 (ix86_emit_save_regs): Likewise.
12799 (get_scratch_register_on_entry): Likewise.
12800 (ix86_emit_restore_reg_using_pop): Likewise.
12801 (ix86_emit_leave): Likewise.
12802 (ix86_emit_restore_regs_using_mov): Likewise.
12803 (ix86_expand_epilogue): Likewise.
12804 Likewise.
12805 (rl78_alloc_physical_registers_umul): Likewise.
12806 * cselib.c (discard_useless_locs): Likewise.
12807 (cselib_invalidate_regno): Likewise.
12808 (cselib_invalidate_mem): Likewise.
12809 * function.c (expand_function_start): Likewise.
12810 (emit_use_return_register_into_block): Likewise.
12811 * gcse.c: Likewise.
12812 * haifa-sched.c (ok_for_early_queue_removal): Likewise.
12813 * ifcvt.c (noce_get_alt_condition): Likewise.
12814 * loop-doloop.c (doloop_condition_get): Likewise.
12815 * lra-constraints.c (inherit_in_ebb): Likewise.
12816 * modulo-sched.c (sms_schedule_by_order): Likewise.
12817 * recog.c (next_insn_tests_no_inequality): Likewise.
12818 * reorg.c (emit_delay_sequence): Likewise.
12819 (update_reg_dead_notes): Likewise.
12820 (fix_reg_dead_note): Likewise.
12821 (fill_slots_from_thread): Likewise.
12822 (delete_computation): Likewise.
12823
12824 2015-05-01 Sandra Loosemore <sandra@codesourcery.com>
12825
12826 * doc/extend.texi (Variable Attributes): Add menu and proper
12827 @nodes to subsections. Move Microsoft Windows attributes to
12828 their own subsection.
12829 (Type Attributes): Reorganize introduction to remove duplicate
12830 list of attributes. Add menu and proper @nodes to subsections.
12831 Alphabetize the main table of common attributes.
12832
12833 2015-05-01 Rasmus Villemoes <rv@rasmusvillemoes.dk>
12834
12835 * match.pd: New simplification patterns.
12836 (x + (x & 1)) -> ((x + 1) & ~1)
12837 (x & ~(x & y)) -> ((x & ~y))
12838 (x | ~(x | y)) -> ((x | ~y))
12839
12840 2015-05-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12841
12842 * target.def (attribute_table): Mention that struct attribute_spec
12843 is defined in tree-core.h rather than tree.h
12844 * doc/tm.texi: Regenerate.
12845
12846 2015-05-01 Richard Sandiford <richard.sandiford@arm.com>
12847
12848 * genrecog.c (test): Rename to rtx_test. Update rest of file
12849 accordingly.
12850
12851 2015-05-01 Andreas Schwab <schwab@linux-m68k.org>
12852
12853 PR translation/65959
12854 * params.h (DEFPARAM): Rename msgid to nocmsgid.
12855
12856 2015-05-01 Wilco Dijkstra <wdijkstr@arm.com>
12857
12858 * gcc/config/aarch64/aarch64-protos.h (tune_params):
12859 Add min_div_recip_mul_sf and min_div_recip_mul_df fields.
12860 * gcc/config/aarch64/aarch64.c (aarch64_min_divisions_for_recip_mul):
12861 Return value depending on target.
12862 (generic_tunings): Initialize new target settings.
12863 (cortexa53_tunings): Likewise.
12864 (cortexa57_tunings): Likewise.
12865 (thunderx_tunings): Likewise.
12866 (xgene1_tunings): Likewise.
12867
12868 2015-05-01 Wilco Dijkstra <wdijkstr@arm.com>
12869
12870 * gcc/config/arm/aarch-cost-tables.h (cortexa53_extra_costs):
12871 Make Cortex-A53 shift costs more accurate.
12872
12873 2015-05-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12874
12875 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle FLOAT and
12876 UNSIGNED_FLOAT.
12877
12878 2015-05-01 Wilco Dijkstra <wdijkstr@arm.com>
12879
12880 * gcc/config/aarch64/aarch64.c (aarch64_rtx_costs):
12881 Calculate cost of op0 and op1 in PLUS and MINUS cases.
12882
12883 2015-05-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12884
12885 * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
12886 Add cost of op0 in the compare-with-fpzero case.
12887
12888 2015-04-30 David Malcolm <dmalcolm@redhat.com>
12889
12890 * builtins.c (fold_builtin_1): Remove spurious second
12891 semicolon.
12892 * cgraph.h (symtab_node::get_availability): Likewise.
12893 * opts.c (common_handle_option): Remove spurious second semicolon.
12894 * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
12895 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
12896
12897 2015-04-30 Caroline Tice <cmtice@google.com>
12898
12899 PR gcov-profile/65929
12900 * config/elfos.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro definition.
12901 (ASM_DECLARE_COLD_FUNCTION_SIZE): New macro definition.
12902 * doc/tm.texi.in (ASM_DECLARE_COLD_FUNCTION_NAME): Document new macro.
12903 (ASM_DECLARE_COLD_FUNCTION_SIZE): Document new macro.
12904 * doc/tm.texi: Regenerate.
12905 * final.c (final_scan_insn): Use ASM_DECLARE_COLD_FUNCTION_NAME
12906 instead of ASM_DECLARE_FUNCTION_NAME for cold partition name.
12907 * varasm.c (assemble_end_function): Use ASM_DECLARE_COLD_FUNCTION_SIZE
12908 instead of ASM_DECLARE_FUNCTION_SIZE for cold partition size.
12909
12910 2015-04-30 Marek Polacek <polacek@redhat.com>
12911
12912 * varasm.c (handle_cache_entry): Fix logic.
12913
12914 2015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12915
12916 * config/aarch64/aarch64.md (*extr<mode>5_insn_alt): New pattern.
12917 (*extrsi5_insn_uxtw_alt): Likewise.
12918 * config/aarch64/aarch64.c (aarch64_extr_rtx_p): New function.
12919 (aarch64_rtx_costs, IOR case): Use above to properly cost extr
12920 operations.
12921
12922 2015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12923
12924 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle pattern for
12925 fabd in ABS case.
12926
12927 2015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12928
12929 * config/aarch64/aarch64.md
12930 (*eor_one_cmpl_<SHIFT:optab><mode>3_alt): New pattern.
12931 (*eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
12932 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle MVN-shift
12933 appropriately. Handle alternative EON form.
12934
12935 2015-04-30 Renlin Li <renlin.li@arm.com>
12936
12937 * config/aarch64/aarch64-simd.md (vec_shr): Defined as an unspec.
12938 * config/aarch64/iterators.md (unspec): Add UNSPEC_VEC_SHR.
12939
12940 2015-04-30 Jan Hubicka <hubicka@ucw.cz>
12941
12942 PR ipa/65873
12943 * ipa-inline.c (can_inline_edge_p): It is safe to inline across
12944 -fstrict-aliasing boundaries.
12945
12946 2015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12947
12948 * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Handle MNEG
12949 and [SU]MNEGL patterns.
12950
12951 2015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12952
12953 * config/aarch64/aarch64.c (aarch64_shift_p): New function.
12954 (aarch64_rtx_mult_cost): Update comment to reflect that it also handles
12955 combined arithmetic-shift ops. Properly handle all shift and extend
12956 operations that can occur in combination with PLUS/MINUS.
12957 Rename maybe_fma to compound_p.
12958 (aarch64_rtx_costs): Use aarch64_shift_p when costing compound
12959 arithmetic and shift operations.
12960
12961 2015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12962
12963 * config/aarch64/aarch64.c (aarch64_rtx_costs): Use extend_arith
12964 rather than arith_shift cost when costing ADD/MINUS of an
12965 extended value.
12966
12967 2015-04-30 Jan Hubicka <hubicka@ucw.cz>
12968
12969 PR lto/65948
12970 * ipa-devirt.c (odr_types_equivalent_p): NULLPTR_TYPE is equivalent
12971 to itself.
12972
12973 2015-04-30 Richard Sandiford <richard.sandiford@arm.com>
12974
12975 * genrecog.c (simplify_tests): Check that CONST_INT and XWINT tests
12976 are for the same position.
12977
12978 2015-04-29 Aditya Kumar <hiraditya@hotmail.com>
12979
12980 * tree-vectorizer.c (set_uid_loop_bbs): New. Factored out of
12981 vectorize_loops.
12982 (vectorize_loops): Use it.
12983
12984 2015-04-29 Jan Hubicka <hubicka@ucw.cz>
12985
12986 * ipa-devirt.c (odr_subtypes_equivalent_p): Compare TYPE_NAME only
12987 for aggregate types.
12988 (register_odr_type): Be ready for MAIN_VARIANT of ODR type
12989 type to be non_ODR.
12990 * tree.c (need_assembler_name_p): Compute mangled name for
12991 non-fundamental types and integer types.
12992
12993 2015-04-29 Mikhail Maltsev <maltsevm@gmail.com>
12994
12995 * dojump.c (do_compare_rtx_and_jump): Use std::swap instead of
12996 manual swaps.
12997 * expr.c (expand_expr_real_2): Likewise.
12998
12999 2015-04-29 Jan Hubicka <hubicka@ucw.cz>
13000
13001 * tree.c (build_common_builtin_nodes): Do not build
13002 __builtin_alloca_with_align as equivalent of library alloca.
13003
13004 2015-04-29 Jan Hubicka <hubicka@ucw.cz>
13005
13006 * dwarf2out.c (gen_type_die_with_usage): Call verify_type.
13007 * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Do not produce
13008 bugus variants.
13009 * tree.c: Include print-tree.h and ipa-utils.h
13010 (free_lang_data_in_type): Clear TYPE_VFIELD leaked by C FE.
13011 (free_lang_data_in_cgraph): Call verify_type.
13012 (verify_type_variant): New function.
13013 (verify_type): New function.
13014 * tree.h (verify_type): Declare.
13015
13016 2015-04-29 Steve Ellcey <sellcey@imgtec.com>
13017
13018 * config/mips/mips-cpus.def: (mips4): Change default processor
13019 from PROCESSOR_R8000 to PROCESSOR_R10000.
13020
13021 2015-04-29 Petar Jovanovic <petar.jovanovic@rt-rk.com>
13022
13023 * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Fix the macro to use
13024 la/jalr instead of jal.
13025
13026 2015-04-29 Uros Bizjak <ubizjak@gmail.com>
13027
13028 PR target/65871
13029 * config/i386/i386.md (*bmi_bextr_<mode>_ccz): New pattern.
13030 (*bmi2_bzhi_<mode>3_1_ccz): Ditto.
13031 (setcc+movzbl peephole2): Check also clobbered reg.
13032 (setcc+andl peephole2): Ditto.
13033
13034 2015-04-29 Thomas Schwinge <thomas@codesourcery.com>
13035
13036 PR libgomp/65099
13037 * config/nvptx/mkoffload.c (target_ilp32): New variable.
13038 (main): Set it depending on "-foffload-abi=[...]".
13039 (compile_native, main): Use it to pass "-m32" or "-m64" to the
13040 compiler.
13041
13042 2015-04-29 Alan Lawrence <alan.lawrence@arm.com>
13043
13044 PR target/65770
13045 * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>,
13046 vec_store_lanesci_lane<mode>, vec_store_lanesxi_lane<mode>):
13047 Flip lane index back at assembly time for bigendian.
13048
13049 2015-04-29 Thomas Schwinge <thomas@codesourcery.com>
13050
13051 * tree.h (OMP_STANDALONE_CLAUSES): New macro.
13052 * gimplify.c (gimplify_omp_workshare): Use it.
13053
13054 2015-04-29 Richard Sandiford <richard.sandiford@arm.com>
13055
13056 * Makefile.in (build/genrecog.o): Depend on inchash.h.
13057 (build/genrecog$(build_exeext): Depend on build/hash-table.o and
13058 build/inchash.o
13059 * genrecog.c: Rewrite most of the code except for the third page.
13060
13061 2015-04-29 Richard Sandiford <richard.sandiford@arm.com>
13062
13063 * inchash.h, inchash.c: Include bconfig.h for build objects.
13064 * Makefile.in (build/inchash.o): New rule.
13065
13066 2015-04-29 Yvan Roux <yvan.roux@linaro.org>
13067
13068 PR target/65924
13069 * config/arm/thumb2.md (*thumb2_addsi3_compare0_scratch): Fix operand
13070 number in type attribute expression.
13071
13072 2015-04-29 Richard Sandiford <richard.sandiford@arm.com>
13073
13074 * loop-iv.c (canon_condition): Generalize to all types of integer
13075 constant.
13076
13077 2015-04-29 Bernhard Reuther-Fischer <aldot@gcc.gnu.org>
13078
13079 * gimple-walk.c: Prune duplicate or unneeded includes.
13080 (walk_gimple_asm): Only call parse_input_constraint or
13081 parse_output_constraint if their findings are used.
13082 Honour parse_input_constraint and parse_output_constraint
13083 result.
13084
13085 2015-04-29 Alan Lawrence <alan.lawrence@arm.com>
13086
13087 * config/arm/neon.md (vec_shl<mode>, vec_shr<mode>): Remove.
13088
13089 2015-04-29 Tom de Vries <tom@codesourcery.com>
13090
13091 PR tree-optimization/65893
13092 * passes.def (pass_all_optimizations): Move pass_stdarg to after
13093 pass_dce.
13094
13095 2015-04-29 Richard Biener <rguenther@suse.de>
13096
13097 * tree-vect-data-refs.c (vect_analyze_group_access): Properly
13098 compute GROUP_SIZE for basic-block SLP.
13099 * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Properly
13100 take into account gaps.
13101 (vect_get_mask_element): Properly reject references to previous
13102 vectors.
13103 (vect_transform_slp_perm_load): Likewise.
13104
13105 2015-04-29 Christian Bruel <christian.bruel@st.com>
13106
13107 PR target/64835
13108 * config/i386/i386.c (ix86_default_align): New function.
13109 (ix86_override_options_after_change): Call ix86_default_align.
13110 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New hook.
13111 (ix86_override_options_after_change): New function.
13112
13113 2015-04-28 Jeff Law <law@redhat.com>
13114
13115 * tree-ssa-dom.c (record_equality); Fix comment typos.
13116
13117 2015-04-28 Tom de Vries <tom@codesourcery.com>
13118
13119 PR tree-optimization/65887
13120 * gimplify.c (gimplify_modify_expr): Remove ifn_va_arg ap fixup.
13121
13122 2015-04-28 Sandra Loosemore <sandra@codesourcery.com>
13123
13124 * doc/extend.texi (Declaring Attributes of Functions): Split into
13125 subsections by target. Alphabetize the table of common attributes.
13126 Rewrite some of the introductory text to reflect the new structure.
13127 Update some cross-references to point to the new subsections.
13128 (Attribute Syntax): Put paragraph about "__" naming here. Remove
13129 duplicate copies in the discussion of function, label, and type
13130 attributes.
13131
13132 2015-04-28 Dominique d'Humieres <dominiq@lps.ens.fr>
13133
13134 PR bootstrap/65910
13135 * varasm.c (assemble_end_function): Guard ASM_DECLARE_FUNCTION_SIZE.
13136
13137 2015-04-28 Jason Merrill <jason@redhat.com>
13138
13139 PR c++/65734
13140 * stor-layout.c (layout_type): Layout the TYPE_MAIN_VARIANT.
13141 (finalize_type_size): Respect TYPE_USER_ALIGN.
13142 (layout_type) [ARRAY_TYPE]: Likewise.
13143
13144 2015-04-28 Yvan Roux <yvan.roux@linaro.org>
13145
13146 * config/arm/arm.md (*arm_movt): Fix type attribute.
13147 (*cmpsi_shiftsi): Likewise.
13148 (*cmpsi_shiftsi_swp): Likewise.
13149 (*movsicc_insn): Likewise.
13150 (*cond_move): Likewise.
13151 (*if_plus_move): Likewise.
13152 (*if_move_plus): Likewise.
13153 (*if_arith_move): Likewise.
13154 (*if_move_arith): Likewise.
13155 (*if_shift_move): Likewise.
13156 (*if_move_shift): Likewise.
13157 (*arm_movtas_ze): Likewise.
13158 * config/arm/thumb2.md (*thumb2_movsicc_insn): Fix alternative
13159 redundancy and type attribute.
13160 (*thumb2_movsi_insn): Fix type attribute.
13161 (*thumb2_addsi_short): Likewise.
13162 (thumb2_addsi3_compare0): Likewise.
13163 (*thumb2_addsi3_compare0_scratch): Merge alternatives and fix
13164 attributes accordingly.
13165
13166 2015-04-28 Markus Trippelsdorf <markus@trippelsdorf.de>
13167
13168 PR other/65911
13169 * function.c (pad_to_arg_alignment): Add parentheses.
13170
13171 2015-04-28 Uros Bizjak <ubizjak@gmail.com>
13172
13173 * config/frv/frv.h (CRT_GET_RFIB_DATA): Move definition to
13174 libgcc/config/frv/elf-lib.h.
13175
13176 2015-04-28 Tom de Vries <tom@codesourcery.com>
13177
13178 * tree-call-cdce.c: Fix example in header comment.
13179
13180 2015-04-28 Richard Biener <rguenther@suse.de>
13181
13182 PR tree-optimization/62283
13183 * tree-vect-slp.c (vect_build_slp_tree): When the SLP build
13184 fails fatally and we are vectorizing a basic-block simply
13185 cause the child to be constructed piecewise.
13186 (vect_analyze_slp_cost_1): Adjust.
13187 (vect_detect_hybrid_slp_stmts): Likewise.
13188 (vect_bb_slp_scalar_cost): Likewise.
13189 (vect_get_constant_vectors): For piecewise constructed
13190 constants place them after the last def.
13191 (vect_get_slp_defs): Adjust.
13192 * tree-vect-stmts.c (vect_is_simple_use): Detect in-BB
13193 externals for basic-block vectorization.
13194
13195 2015-04-28 Thomas Preud'homme <thomas.preudhomme@arm.com>
13196
13197 PR target/63503
13198 * config.gcc: Add cortex-a57-fma-steering.o to extra_objs for
13199 aarch64-*-*.
13200 * config/aarch64/t-aarch64: Add a rule for cortex-a57-fma-steering.o.
13201 * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Define.
13202 (AARCH64_TUNE_FMA_STEERING): Likewise.
13203 * config/aarch64/aarch64-cores.def: Set
13204 AARCH64_FL_USE_FMA_STEERING_PASS for cores with dynamic steering of
13205 FMUL/FMADD instructions.
13206 * config/aarch64/aarch64.c (aarch64_register_fma_steering): Declare.
13207 (aarch64_override_options): Include cortex-a57-fma-steering.h. Call
13208 aarch64_register_fma_steering () if AARCH64_TUNE_FMA_STEERING is true.
13209 * config/aarch64/cortex-a57-fma-steering.h: New file.
13210 * config/aarch64/cortex-a57-fma-steering.c: Likewise.
13211
13212 2015-04-28 Richard Sandiford <richard.sandiford@arm.com>
13213
13214 * gensupport.c (std_preds): Add missing codes to address_operand entry.
13215
13216 2015-04-28 Richard Biener <rguenther@suse.de>
13217
13218 PR tree-optimization/65851
13219 * tree-ssa-ccp.c (set_lattice_value): Perform a meet when
13220 changing CONSTANT to CONSTANT non-copy. Get new_val by reference.
13221 (ccp_lattice_meet): Remove stray argument. Use operand_equal_p
13222 rather than simple_cst_equal as the latter doesn't handle COMPLEX_CST.
13223 (ccp_visit_phi_node): Adjust.
13224 (evaluate_stmt): For simplifications to SSA names return its
13225 lattice value if that isn't VARYING. Return immediately when
13226 simplified to a constant.
13227 (visit_assignment): Adjust.
13228 (ccp_visit_stmt): Likewise.
13229
13230 2015-04-28 Tom de Vries <tom@codesourcery.com>
13231
13232 PR tree-optimization/65818
13233 * tree-stdarg.c (expand_ifn_va_arg_1): Ensure that side-effects are
13234 evaluated.
13235
13236 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
13237
13238 * calls.c (save_fixed_argument_area): Don't check
13239 ARGS_GROW_DOWNWARD with the preprocessor.
13240 (restore_fixed_argument_area): Likewise.
13241 (mem_overlaps_already_clobbered_arg_p): Likewise.
13242 (check_sibcall_argument_overlap): Likewise.
13243 (expand_call): Likewise.
13244 (emit_library_call_value_1): Likewise.
13245 (store_one_arg): Likewise.
13246 * function.c (assign_parms): Likewise.
13247 (locate_and_pad_parm): Likewise.
13248 (pad_to_arg_alignment): Likewise.
13249 * targhooks.c (std_gimplify_va_arg_expr): Likewise.
13250
13251 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
13252
13253 * config/pa/pa.h (ARGS_GROW_DOWNWARD): Define to 1.
13254 * defaults.h (ARGS_GROW_DOWNWARD): Define it to 0 by default.
13255 * calls.c (save_fixed_argument_area): Don't chekc if
13256 ARGS_GROW_DOWNWARD is defined.
13257 (restore_fixed_argument_area): Likewise.
13258 (mem_overlaps_already_clobbered_arg_p): Likewise.
13259 (check_sibcall_argument_overlap): Likewise.
13260 (expand_call): Likewise.
13261 (emit_library_call_value_1): Likewise.
13262 (store_one_arg): Likewise.
13263 * function.c (assign_parms): Likewise.
13264 (locate_and_pad_parm): Likewise.
13265 (pad_to_arg_alignment): Likewise.
13266 * targhooks.c (std_gimplify_va_arg_expr): Likewise.
13267
13268 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
13269
13270 * defaults.h (gen_epilogue): New function.
13271 * alias.c (init_alias_analysis): don't check if HAVE_epilogue is
13272 defined.
13273 * cfgrtl.c (cfg_layout_finalize): Likewise.
13274 * df-scan.c: Likewise.
13275 * function.c (thread_prologue_and_epilogue_insns): Likewise.
13276 (reposition_prologue_and_epilogue_notes): Likewise.
13277 * reorg.c (find_end_label): Likewise.
13278 * toplev.c: Likewise.
13279
13280 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
13281
13282 * bb-reorder.c (HAVE_return): Don't check if its undefined.
13283 * defaults.h (gen_simple_return): New function.
13284 (gen_simple_return): Likewise.
13285 (HAVE_return): Add default definition to false.
13286 (HAVE_simple_return): Likewise.
13287 * cfgrtl.c (force_nonfallthru_and_redirect): Remove checks if
13288 HAVE_return and HAVE_simple_return are defined.
13289 * function.c (gen_return_pattern): Likewise.
13290 (convert_jumps_to_returns): Likewise.
13291 (thread_prologue_and_epilogue_insns): Likewise.
13292 * reorg.c (find_end_label): Likewise.
13293 (dbr_schedule): Likewise.
13294 * shrink-wrap.c: Likewise.
13295 * shrink-wrap.h: Likewise.
13296
13297 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
13298
13299 * defaults.h (EPILOGUE_USES): Add default definition of false.
13300 * df-scan.c (EPILOGUE_USES): Remove check if its undefined.
13301 * resource.c (init_resource_info): Likewise.
13302
13303 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
13304
13305 * defaults.h (PCC_BITFIELD_TYPE_MATTERS): Add default definition
13306 to false.
13307 * dwarf2out.c (field_byte_offset): REmove check if
13308 PCC_BITFIELD_TYPE_MATTERS is defined.
13309 * stor-layout.c (layout_decl): Likewise.
13310 (update_alignment_for_field): Likewise.
13311 (place_field): Likewise.
13312
13313 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
13314
13315 * defaults.h (HARD_REGNO_RENAME_OK): Add default definition to
13316 true.
13317 * regrename.c (check_new_reg_p): Remove check if
13318 HARD_REGNO_RENAME_OK is defined.
13319 * sel-sched.c (sel_hard_regno_rename_ok): Likewise.
13320
13321 2015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
13322
13323 * calls.c (prepare_call_address): Remove ifdef NO_FUNCTION_CSE.
13324 * cse.c (fold_rtx): Likewise.
13325 * config/alpha/alpha.h (NO_FUNCTION_CSE): Define to 1.
13326 * config/arc/arc.h (NO_FUNCTION_CSE): Likewise.
13327 * config/avr/avr.h (NO_FUNCTION_CSE): Likewise.
13328 * config/cr16/cr16.h (NO_FUNCTION_CSE): Likewise.
13329 * config/epiphany/epiphany.h (NO_FUNCTION_CSE): Likewise.
13330 * config/frv/frv.h (NO_FUNCTION_CSE): Likewise.
13331 * config/h8300/h8300.h (NO_FUNCTION_CSE): Likewise.
13332 * config/i386/i386.h (NO_FUNCTION_CSE): Likewise.
13333 * config/ia64/ia64.h (NO_FUNCTION_CSE): Likewise.
13334 * config/lm32/lm32.h (enum reg_class) (NO_FUNCTION_CSE):
13335 * Likewise.
13336 * config/m32r/m32r.h (NO_FUNCTION_CSE): Likewise.
13337 * config/mep/mep.h (NO_FUNCTION_CSE): Likewise.
13338 * config/mn10300/mn10300.h (NO_FUNCTION_CSE): Likewise.
13339 * config/nds32/nds32.h (NO_FUNCTION_CSE): Likewise.
13340 * config/nios2/nios2.h (NO_FUNCTION_CSE): Likewise.
13341 * config/pa/pa.h (NO_FUNCTION_CSE): Likewise.
13342 * config/rs6000/rs6000.h (NO_FUNCTION_CSE): Likewise.
13343 * config/s390/s390.h (NO_FUNCTION_CSE): Likewise.
13344 * config/sparc/sparc.h (NO_FUNCTION_CSE): Likewise.
13345 * config/spu/spu.h (NO_FUNCTION_CSE): Likewise.
13346 * config/stormy16/stormy16.h (NO_FUNCTION_CSE): Likewise.
13347 * config/v850/v850.h (NO_FUNCTION_CSE): Likewise.
13348 * defaults.h (NO_FUNCTION_CSE): Provide default definition to 0.
13349 * doc/tm.texi: Regenerate.
13350 * doc/tm.texi.in: Document NO_FUNCTION_CSE is always defined to
13351 either true or false.
13352
13353 2015-04-27 Jeff Law <law@redhat.com>
13354
13355 PR tree-optimization/65217
13356 * tree-ssa-dom.c (record_equality): Given two SSA_NAMEs, if just one
13357 of them has a single use, make sure it is the LHS of the implied
13358 copy.
13359
13360 2015-04-28 Alan Modra <amodra@gmail.com>
13361
13362 PR target/65810
13363 * config/rs6000/rs6000.c (POWERPC64_TOC_POINTER_ALIGNMENT): Define.
13364 (offsettable_ok_by_alignment): Use minimum of decl and toc
13365 pointer alignment. Replace dead code with assertion.
13366 (use_toc_relative_ref): Add mode arg. Return false in -mcmodel=medium
13367 case if size exceeds toc pointer alignment.
13368 (rs6000_legitimize_reload_address): Update use_toc_relative_ref call.
13369 (rs6000_emit_move): Likewise.
13370 * configure.ac: Add linker toc pointer alignment check.
13371 * configure: Regenerate.
13372 * config.in: Regenerate.
13373
13374 2015-04-27 Yoshinori Sato <ysato@users.sourceforge.jp>
13375
13376 * config.gcc: Add h8300-*-linux.
13377 * config/h8300/linux.h: New.
13378 * config/h8300/t-linux: New.
13379 * config/h8300/h8300.c (h8300_option_override): Normal mode
13380 is not supported for h8300-*-linux.
13381 (h8300_file_start): Target priority change.
13382 (get_shift_alg): Likewise.
13383 (h8300_shift_need_scratch_p): Likewise.
13384 * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise.
13385 * config/h8300/h8300.md (define_peephole2): Remove duplicate condition.
13386
13387 2015-04-27 Caroline Tice <cmtice@google.com>
13388
13389 * final.c (final_scan_insn): Output cold_function_name as function
13390 type.
13391 * varasm.c (cold_function_name): Make global.
13392 (assemble_start_function): Re-set cold_function_name.
13393 (assemble_end_function): Output cold partition size.
13394 * varasm.h (cold_function_name): Declare global.
13395
13396 2015-04-27 Ilya Tocar <ilya.tocar@intel.com>
13397
13398 * config/i386/i386.h (EXT_REX_SSE_REG_P): New.
13399 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Use "v"
13400 constraint.
13401 (*movxi_internal_avx512f): Ditto.
13402 (define_split): Check for xmm16+, when splitting scalar float_extend.
13403 (*extendsfdf2_mixed): Use "v" constraint.
13404 (define_split): Check for xmm16+, when splitting scalar float_truncate.
13405 (*truncdfsf_fast_sse): Use "v" constraint.
13406 (fix_trunc<MODEF:mode><SWI48:mode>_sse): Ditto.
13407 (*float<SWI48:mode><MODEF:mode>2_sse): Ditto.
13408 (define_peephole2): Check for xmm16+, when converting scalar
13409 float_truncate.
13410 (define_peephole2): Check for xmm16+, when converting scalar
13411 float_extend.
13412 (*fop_<mode>_comm_mixed): Use "v" constraint.
13413 (*fop_<mode>_comm_sse): Ditto.
13414 (*fop_<mode>_1_mixed): Ditto.
13415 (*sqrt<mode>2_sse): Ditto.
13416 (*ieee_s<ieee_maxmin><mode>3): Ditto.
13417
13418 2015-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13419
13420 * combine.c (simplify_if_then_else): Use std::swap instead
13421 of manually swapping.
13422 (known_cond): Likewise.
13423 (simplify_comparison): Likewise.
13424
13425 2015-04-27 Peter Bergner <bergner@vnet.ibm.com>
13426
13427 PR target/64579
13428 * config/rs6000/htm.md: Remove all define_expands.
13429 (UNSPECV_HTM_TABORTDC, UNSPECV_HTM_TABORTDCI, UNSPECV_HTM_TABORTWC,
13430 UNSPECV_HTM_TABORTWCI): Remove.
13431 (UNSPECV_HTM_TABORTXC, UNSPECV_HTM_TABORTXCI, UNSPECV_HTM_TTEST): New.
13432 (tabort_internal, tbegin_internal, tcheck_internal, tend_internal,
13433 trechkpt_internal, treclaim_internal, tsr_internal): Rename from this...
13434 (tabort, tbegin, tcheck, tend, trechkpt, treclaim, tsr): ...to this.
13435 (tabortdc_internal, tabortdci_internal, tabortwc_internal,
13436 tabortwci_internal): Remove define_insns.
13437 (tabort<wd>c, tabort<wd>ci): New define_insns.
13438 (tabort): Use gpc_reg_operand.
13439 (tcheck): Remove operand.
13440 (htm_mfspr_<mode>, htm_mtspr_<mode>): Use GPR mode macro.
13441 * config/rs6000/htmxlintrin.h (__TM_end): Use _HTM_TRANSACTIONAL as
13442 expected value.
13443 * config/rs6000/rs6000-builtin.def (BU_HTM_SPR0): Remove.
13444 (BU_HTM_SPR1): Rename to BU_HTM_V1. Remove use of RS6000_BTC_SPR.
13445 (tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin,
13446 tcheck, tend, tendall, trechkpt, treclaim, tresume, tsuspend,
13447 tsr, ttest): Pass in the RS6000_BTC_CR attribute.
13448 (get_tfhar, set_tfhar, get_tfiar, set_tfiar, get_texasr, set_texasr,
13449 get_texasru, set_texasru): Pass in the RS6000_BTC_SPR attribute.
13450 (tcheck): Remove builtin argument.
13451 * config/rs6000/rs6000.c (rs6000_htm_spr_icode): Use TARGET_POWERPC64
13452 not TARGET_64BIT.
13453 (htm_expand_builtin): Fix usage of expandedp. Disallow usage of the
13454 tabortdc and tabortdci builtins when not in 64-bit mode.
13455 Modify code to handle the loss of the HTM define_expands.
13456 Emit code to copy the CR register to TARGET.
13457 (htm_init_builtins): Modify code to handle the loss of the HTM
13458 define_expands.
13459 * config/rs6000/rs6000.h (RS6000_BTC_32BIT): Delete.
13460 (RS6000_BTC_64BIT): Likewise.
13461 (RS6000_BTC_CR): New macro.
13462 * doc/extend.texi: Update documentation for htm builtins.
13463
13464 2015-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13465
13466 * simplify-rtx.c (simplify_gen_binary): Use std::swap instead
13467 of manually swapping.
13468 (simplify_associative_operation): Likewise.
13469 (simplify_binary_operation): Likewise.
13470 (simplify_plus_minus): Likewise.
13471 (simplify_relational_operation): Likewise.
13472 (simplify_ternary_operation): Likewise.
13473
13474 2015-04-27 Richard Sandiford <richard.sandiford@arm.com>
13475
13476 * config/stormy16/predicates.md (xs_hi_general_operand): Delete.
13477 (xs_hi_nonmemory_operand): Remove error.
13478 * config/stormy16/stormy16.md (movhi, movhi_internal): Use
13479 general_operand rather than xs_hi_general_operand.
13480
13481 2015-04-27 Richard Biener <rguenther@suse.de>
13482
13483 * tree-ssa-dom.c (record_equivalences_from_phis): Valueize PHI arg.
13484 (record_equivalences_from_stmt): Valueize rhs.
13485 (record_equality): Canonicalize x and y order via
13486 tree_swap_operands_p. Do not swap operands for same loop depth.
13487
13488 2015-04-27 Georg-Johann Lay <avr@gjlay.de>
13489
13490 PR target/65296
13491 PR target/65895
13492 * config/avr/gen-avr-mmcu-specs.c (print_mcu): Close file.
13493 Add hint how to use own spec file.
13494
13495 2015-04-27 Jakub Jelinek <jakub@redhat.com>
13496
13497 PR tree-optimization/65875
13498 * tree-vrp.c (update_value_range): If in is_new case setting
13499 old_vr to VR_VARYING, also set new_vr to it. Remove
13500 old_vr->type == VR_VARYING test.
13501 (vrp_visit_phi_node): Return SSA_PROP_VARYING instead of
13502 SSA_PROP_INTERESTING if update_value_range returned true,
13503 but new range is VR_VARYING.
13504
13505 2015-04-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
13506
13507 * combine.c (sign_extend_short_imm): New.
13508 (set_nonzero_bits_and_sign_copies): Use above new function for sign
13509 extension of src short immediate.
13510 (reg_nonzero_bits_for_combine): Likewise for tem.
13511
13512 2015-04-27 Eric Botcazou <ebotcazou@adacore.com>
13513
13514 * stor-layout.c (self_referential_component_ref_p): New predicate.
13515 (copy_self_referential_tree_r): Use it.
13516 (self_referential_size): Punt for simple operations directly involving
13517 self-referential component references.
13518 * tree-cfg.c (dump_function_to_file): Add missing final curly bracket.
13519
13520 2015-04-27 Eric Botcazou <ebotcazou@adacore.com>
13521
13522 * ipa-icf.c (icf_handled_component_p): Remove redundant tests.
13523
13524 2015-04-27 Richard Sandiford <richard.sandiford@arm.com>
13525
13526 * vec.h (vec): Make splice arguments const. Update definitions
13527 accordingly.
13528
13529 2015-04-27 Yvan Roux <yvan.roux@linaro.org>
13530
13531 * config/arm/arm.md (*arm_subsi3_insn): Fixed redundant
13532 alternatives.
13533
13534 2015-04-26 Tom de Vries <tom@codesourcery.com>
13535
13536 PR tree-optimization/65826
13537 * internal-fn.def: Mark VA_ARG with ECF_LEAF.
13538
13539 2015-04-24 Steve Ellcey <sellcey@imgtec.com>
13540
13541 * config/mips/mips.md: (*madd4<mode>) Remove accum_in attribute.
13542 (*madd3<mode>): Ditto.
13543 (*msub4<mode>): Ditto.
13544 (*msub3<mode>): Ditto.
13545 (*nmadd4<mode>): Ditto.
13546 (*nmadd3<mode>): Ditto.
13547 (*nmadd4<mode>_fastmath): Ditto.
13548 (*nmadd3<mode>_fastmath): Ditto.
13549 (*nmsub4<mode>): Ditto.
13550 (*nmsub3<mode>): Ditto.
13551 (*nmsub4<mode>_fastmath): Ditto.
13552 (*nmsub3<mode>_fastmath): Ditto.
13553
13554 2015-04-24 Jason Merrill <jason@redhat.com>
13555
13556 PR c++/50800
13557 * tree.c (build_reference_type_for_mode): Don't pass can_alias_all
13558 down when building TYPE_CANONICAL.
13559 (build_pointer_type_for_mode): Likewise.
13560
13561 2015-04-24 Chen Gang <gang.chen.5i5j@gmail.com>
13562
13563 * genrecog.c (validate_pattern): Check matching constraint refers
13564 to a lower numbered operand.
13565
13566 2015-04-24 Michael Meissner <meissner@linux.vnet.ibm.com>
13567
13568 PR target/65849
13569 * config/rs6000/rs6000.opt (-mvsx-align-128): Make options that
13570 save to independent variables use the Save attribute. This will
13571 allow these options to be modified with the #pragma/attribute
13572 target support.
13573 (-mallow-movmisalign): Likewise.
13574 (-mallow-df-permute): Likewise.
13575 (-msched-groups): Likewise.
13576 (-malways-hint): Likewise.
13577 (-malign-branch-targets): Likewise.
13578 (-mvectorize-builtins): Likewise.
13579 (-msave-toc-indirect): Likewise.
13580
13581 * config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that
13582 can be set via the #pragma/attribute target support.
13583 (rs6000_opt_vars): Likewise.
13584 (rs6000_inner_target_options): If VSX was set, also set
13585 -mno-avoid-indexed-addresses.
13586
13587 2015-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13588
13589 * config/arm/iterators.md (shiftable_ops): Rename to...
13590 (SHIFTABLE_OPS): ... This. Update use in comments.
13591 (ior_xor): Rename to...
13592 (IOR_XOR): ... This.
13593 (vqh_ops): Rename to...
13594 (VQH_OPS): ... This.
13595 (vqhs_ops): Rename to...
13596 (VQHS_OPS): ... This.
13597 (rshifts): Rename to...
13598 (RSHIFTS): ... This.
13599 (returns): Rename to...
13600 (RETURNS): ... This.
13601 * config/arm/arm.md: Update uses of the above.
13602 * config/arm/neon.md: Likewise.
13603
13604 2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13605
13606 * config.host (case ${host}): Add aarch64*-*-linux case.
13607 * config/aarch64/aarch64-cores.def: Add IMPLEMENTER_ID and PART_NUMBER
13608 fields to all the cores.
13609 * config/aarch64/aarch64-elf.h (DRIVER_SELF_SPECS):
13610 Add MCPU_MTUNE_NATIVE_SPECS.
13611 * config/aarch64/aarch64-option-extensions.def: Add FEATURE_STRING
13612 field to all extensions.
13613 * config/aarch64/aarch64-opts.h: Adjust definition of AARCH64_CORE.
13614 * config/aarch64/aarch64.c: Adjust definition of AARCH64_CORE.
13615 Adjust definition of AARCH64_OPT_EXTENSION.
13616 * config/aarch64/aarch64.h: Adjust definition of AARCH64_CORE.
13617 (MCPU_MTUNE_NATIVE_SPECS): Define.
13618 * config/aarch64/driver-aarch64.c: New file.
13619 * config/aarch64/x-arch64: New file.
13620 * doc/invoke.texi (AArch64 Options): Document native value for -mcpu,
13621 -mtune and -march.
13622
13623 2015-04-24 Uros Bizjak <ubizjak@gmail.com>
13624 Wei Mi <wmi@google.com>
13625
13626 * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple): New.
13627 * config/i386/i386.c (extract_base_offset_in_addr): New function.
13628 (ix86_operands_ok_for_move_multiple): Ditto.
13629 * config/i386/sse.md (movsd/movhpd to movupd peephole2): New pattern.
13630 (movlpd/movhpd to movupd peephole2): Ditto.
13631
13632 2015-04-24 Marek Polacek <polacek@redhat.com>
13633
13634 PR c/61534
13635 * input.h (from_macro_expansion_at): Define.
13636
13637 PR c/63357
13638 * doc/invoke.texi: Update description of -Wlogical-op.
13639
13640 2015-04-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
13641
13642 * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): fix
13643 ternary operator in fprintf and harmonize spacing.
13644
13645 2015-04-24 Uros Bizjak <ubizjak@gmail.com>
13646
13647 * config/i386/sse.md (*vec_widen_smult_even_v8si<mask_name>):
13648 Mark operand1 commutative.
13649
13650 2015-04-24 Uros Bizjak <ubizjak@gmail.com>
13651
13652 * config/i386/sse.md (*vec_concatv2sf_sse4_1): Do not allow both
13653 input operands in memory.
13654 (*vec_concatv2si_sse4_1): Ditto.
13655 (*vec_concatv2df): Ditto, except for SSE3 and equal input operands.
13656 (vec_extract_lo_<mode><mask_name>): Change operand 1 predicate to
13657 register_operand.
13658 (vec_extract_hi_v32hi): Ditto.
13659 (vec_extract_hi_v64hi): Ditto.
13660 (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
13661
13662 2015-04-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
13663 Steven Bosscher <steven@gcc.gnu.org>
13664
13665 PR rtl-optimization/34503
13666 * cprop.c (cprop_reg_p): New.
13667 (hash_scan_set): Use above function to check if register can be
13668 propagated.
13669 (find_avail_set): Return up to two sets, one whose source is a
13670 register and one whose source is a constant. Sets are returned in an
13671 array passed as parameter rather than as a return value.
13672 (cprop_insn): Use a do while loop rather than a goto. Try each of the
13673 sets returned by find_avail_set, starting with the one whose source is
13674 a constant. Use cprop_reg_p to check if register can be propagated.
13675 (do_local_cprop): Use cprop_reg_p to check if register can be
13676 propagated.
13677 (implicit_set_cond_p): Likewise.
13678
13679 2015-04-23 Jan Hubicka <hubicka@ucw.cz>
13680
13681 * ipa-icf.c (sem_function::equals_wpa): Compare thunk info.
13682 (sem_function::equals): IGNORED_NODES parameter is now unused;
13683 update call of equals_private.
13684 (sem_function::equals_private): Do not call equals_wpa; skip
13685 gimple body matching if there is no body.
13686 (sem_function::init): Add logic to hash tthunk info.
13687 (sem_function::parse): Also parse thunks.
13688 * ipa-icf.h (equals_private): Update declaration.
13689
13690 2015-04-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13691
13692 * config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove
13693 asterisk from name so this can be generated directly.
13694 (*altivec_stvx_<mode>_internal): Likewise.
13695 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert
13696 that this is never called during or after reload/lra.
13697 (rs6000_frame_related): Remove split_reg
13698 argument and logic that references it.
13699 (emit_frame_save): Remove last parameter from call to
13700 rs6000_frame_related.
13701 (rs6000_emit_prologue): Remove last parameter from eight calls to
13702 rs6000_frame_related. Force generation of stvx instruction for
13703 Altivec register saves. Remove split_reg handling, which is no
13704 longer needed.
13705 (rs6000_emit_epilogue): Force generation of lvx instruction for
13706 Altivec register restores.
13707
13708 2015-04-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13709
13710 * config/rs6000/rs6000.opt (mcrypto): Change option description to
13711 match category changes in ISA 2.07B.
13712
13713 2015-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13714
13715 * config/arm/iterators.md (GTGE, GTUGEU, COMPARISONS): New code
13716 iterators.
13717 (cmp_op, cmp_type): New code attributes.
13718 (NEON_VCMP, NEON_VACMP): New int iterators.
13719 (cmp_op_unsp): New int attribute.
13720 * config/arm/neon.md (neon_vc<cmp_op><mode>): New define_expand.
13721 (neon_vceq<mode>): Delete.
13722 (neon_vc<cmp_op><mode>_insn): New pattern.
13723 (neon_vc<cmp_op_unsp><mode>_insn_unspec): Likewise.
13724 (neon_vcgeu<mode>): Delete.
13725 (neon_vcle<mode>): Likewise.
13726 (neon_vclt<mode>: Likewise.
13727 (neon_vcage<mode>): Likewise.
13728 (neon_vcagt<mode>): Likewise.
13729 (neon_vca<cmp_op><mode>): New define_expand.
13730 (neon_vca<cmp_op><mode>_insn): New pattern.
13731 (neon_vca<cmp_op_unsp><mode>_insn_unspec): Likewise.
13732
13733 2015-04-23 Jan Hubicka <hubicka@ucw.cz>
13734
13735 * tree.h (attribute_value_equal): Declare.
13736 * tree.c (attribute_value_equal): Export.
13737
13738 2015-04-23 Jan Hubicka <hubicka@ucw.cz>
13739
13740 * ipa-icf.c (sem_item::compare_attributes): New function.
13741 (sem_item::compare_referenced_symbol_properties): Compare variable
13742 attributes.
13743 (sem_item::hash_referenced_symbol_properties): Record DECL_ALIGN.
13744 (sem_function::param_used_p): New function.
13745 (sem_function::equals_wpa): Fix attribute comparsion; match
13746 parameter type codes; do not compare paremter flags when
13747 they are not used; compare edge flags; compare indirect calls.
13748 (sem_item::update_hash_by_addr_refs): Hash reference type.
13749 (sem_function::equals_private): Do not match DECL_ATTRIBUTES.
13750 (sem_variable::equals_wpa): Do not match DECL_ALIGN; match
13751 reference use type.
13752 (sem_item_optimizer::update_hash_by_addr_refs): Use param_used_p.
13753 * ipa-icf.h (compare_attributes, param_used_p): Declare.
13754
13755 2015-04-23 Jan Hubicka <hubicka@ucw.cz>
13756
13757 * ipa-icf.c (symbol_compare_collection::symbol_compare_collection):
13758 cleanup.
13759 (sem_function::get_hash): Do not hash DECL_DISREGARD_INLINE_LIMITS,
13760 DECL_DECLARED_INLINE_P and DECL_IS_OPERATOR_NEW.
13761 (sem_item::compare_referenced_symbol_properties): New.
13762 (sem_item::hash_referenced_symbol_properties): New.
13763 (sem_item::compare_cgraph_references): Rename to ...
13764 (sem_item::compare_symbol_references): ... this one; use
13765 compare_referenced_symbol_properties.
13766 (sem_function::equals_wpa): Do not compare
13767 DECL_DISREGARD_INLINE_LIMITS, DECL_DECLARED_INLINE_P,
13768 DECL_IS_OPERATOR_NEW; compare pointer sizes.
13769 (sem_item::update_hash_by_addr_refs): Call
13770 hash_referenced_symbol_properties.
13771 (sem_item::update_hash_by_local_refs): Cleanup.
13772 (sem_function::merge): Do not mix up symbol properties.
13773 (sem_variable::equals_wpa): Use compare_symbol_references.
13774 * ipa-icf.h (sem_item::compare_referenced_symbol_properties): New.
13775 (sem_item::hash_referenced_symbol_properties): New.
13776 (sem_item::compare_symbol_references): New.
13777 (sem_item::compare_cgraph_references): Remove.
13778
13779 2015-04-23 Kwok Cheung Yeung <kcy@codesourcery.com>
13780
13781 PR target/26702
13782 * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL):
13783 Emit size of local.
13784
13785 2015-04-23 Nick Clifton <nickc@redhat.com>
13786
13787 * config/rl78/rl78.c (rl78_preferred_reload_class): Add
13788 ATTRIBUTE_UNUSED to x parameter.
13789 * config/rl78/rl78-opts.h (enum rl78_mul_types): Remove unused MUL_RL78.
13790
13791 2015-04-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13792
13793 * config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
13794 TARGET_CRYPTO to TARGET_P8_VECTOR>
13795 (crypto_vpermxor_<mode>): Likewise.
13796 * config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
13797 (BU_CRYPTO_3A): Likewise.
13798 (BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
13799 (BU_CRYPTO_OVERLOAD_3A): New #define.
13800 (VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
13801 (VPMSUMH): Likewise.
13802 (VPMSUMW): Likewise.
13803 (VPMSUMD): Likewise.
13804 (VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
13805 (VPERMXOR_V4SI): Likewise.
13806 (VPERMXOR_V8HI): Likewise.
13807 (VPERMXOR_V16QI): Likewise.
13808 (VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
13809 BU_CRYPTO_OVERLOAD_2A.
13810 (VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
13811 BU_CRYPTO_OVERLOAD_3A.
13812 * config/rs6000/rs6000.opt (mcrypto): Change description of
13813 option.
13814
13815 2015-04-23 Richard Biener <rguenther@suse.de>
13816
13817 * passes.def: Remove copy propagation passes run directly after CCP.
13818 * tree-ssa-ccp.c (get_value_for_expr): Fall back to a COPY for
13819 SSA names.
13820 (ccp_visit_phi_node): Rework to handle first executable edge
13821 specially.
13822
13823 2015-04-23 Matthew Wahab <matthew.wahab@arm.com>
13824
13825 * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
13826 (ARM_LEGITIMIZE_RELOAD_ADDRESS): Remove.
13827 (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Remove.
13828 * config/arm/arm.c (arm_legimitimize_reload_address): Remove.
13829 (thumb_legimitimize_reload_address): Remove.
13830 * config/arm/arm-protos.h (arm_legimitimize_reload_address):
13831 Remove.
13832 (thumb_legimitimize_reload_address): Remove.
13833
13834 2015-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13835
13836 * conditions.h (CC_STATUS_INIT): Gate on #ifndef CC_STATUS_INIT.
13837
13838 2015-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13839
13840 * config/arm/arm.md (load_multiple): Reject operand 2 greater than
13841 MAX_LDM_STM_OPS.
13842 (store_multiple): Likewise.
13843
13844 2015-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13845
13846 * config/arm/arm-protos.h (struct tune_params): Add issue_rate field.
13847 * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune,
13848 arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune,
13849 arm_cortex_tune, arm_cortex_a8_tune, arm_cortex_a7_tune,
13850 arm_cortex_a15_tune, arm_cortex_a53_tune, arm_cortex_a57_tune,
13851 arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune,
13852 arm_fa726te_tune arm_cortex_a5_tune, arm_xgene1_tune):
13853 Specify issue_rate value.
13854 (arm_issue_rate): Look up issue rate from tuning structs. Remove
13855 large switch statement.
13856 (arm_marvell_pj4_tune): New struct.
13857 * config/arm/arm-cores.def (marvell-pj4): Use arm_marvell_pj4_tune
13858 struct.
13859
13860 2015-04-23 Richard Biener <rguenther@suse.de>
13861
13862 * tree-vect-slp.c (vect_find_first_load_in_slp_instance): Remove.
13863 (vect_find_last_store_in_slp_instance): Rename to ...
13864 (vect_find_last_scalar_stmt_in_slp): ... this and generalize.
13865 (vect_analyze_slp_cost_1): Use vector_load for constant defs
13866 and vec_construct for external defs when estimating prologue cost.
13867 (vect_analyze_slp_instance): Do not init SLP_INSTANCE_FIRST_LOAD_STMT.
13868 Compute costs here only when vectorizing loops.
13869 (vect_slp_analyze_bb_1): Compute SLP cost here, after vector types
13870 have been determined.
13871 (vect_schedule_slp_instance): Simplify vectorized code placement
13872 and prepare for in-BB external defs.
13873 * tree-vectorizer.h (struct _slp_instance): Remove first_load member.
13874 (SLP_INSTANCE_FIRST_LOAD_STMT): Remove.
13875 * tree-vect-stmts.c (vect_model_store_cost): Remove PURE_SLP_STMT
13876 guard.
13877 (vect_model_load_cost): Likewise.
13878 (vectorizable_store): Instead add it here.
13879 (vectorizable_load): Likewise.
13880 (vect_is_simple_use): Dump def type textually.
13881
13882 2015-04-23 Richard Biener <rguenther@suse.de>
13883
13884 * cfgexpand.c (expand_gimple_stmt_1): Use ops.code.
13885 * cfgloop.c (verify_loop_structure): Verify the root loop node.
13886 * except.c (duplicate_eh_regions): Call get_eh_region_from_lp_number_fn
13887 instead of get_eh_region_from_lp_number.
13888 * loop-init.c (fix_loop_structure): If we removed a loop, reset
13889 the SCEV cache.
13890
13891 2015-04-23 Anton Blanchard <anton@samba.org>
13892
13893 * config/rs6000/rs6000.c (rs6000_output_function_prologue): No
13894 need for -mprofile-kernel to save LR to stack.
13895
13896 2015-04-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13897
13898 * config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
13899 adjustments.
13900 (insn_is_swappable_p): Return 1 for a convert from double to
13901 single precision when all of its uses are splats of BE element
13902 zero.
13903
13904 2015-04-23 Kugan Vivekanandarajah <kuganv@linaro.org>
13905
13906 * ira-costs.c (record_operand_costs): Fix typo (remove redundant code).
13907
13908 2015-04-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13909
13910 PR target/65456
13911 * config/rs6000/rs6000.c (rs6000_option_override_internal): For
13912 VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
13913 TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
13914 option.
13915 (rs6000_builtin_mask_for_load): Return 0 for targets with
13916 efficient unaligned VSX accesses so that the vectorizer will use
13917 direct unaligned loads.
13918 (rs6000_builtin_support_vector_misalignment): Always return true
13919 for targets with efficient unaligned VSX accesses.
13920 (rs6000_builtin_vectorization_cost): Cost of unaligned loads and
13921 stores on targets with efficient unaligned VSX accesses is almost
13922 always the same as the cost of an aligned load or store, so model
13923 it that way.
13924 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
13925 unaligned vectors if we have efficient unaligned VSX accesses.
13926 * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
13927 undocumented option.
13928
13929 2015-04-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13930
13931 Revert:
13932 2015-04-22 Gregor Richards <gregor.richards@uwaterloo.ca>
13933
13934 * config.gcc (LIBC_MUSL): New tm_defines macro.
13935 * config/linux.h (OPTION_MUSL): Define.
13936 (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
13937 (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
13938 (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
13939
13940 * config/linux.opt (mmusl): New option.
13941 * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
13942 (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
13943
13944 * configure: Regenerate.
13945
13946 2015-04-22 Gregor Richards <gregor.richards@uwaterloo.ca>
13947
13948 * config.gcc (LIBC_MUSL): New tm_defines macro.
13949 * config/linux.h (OPTION_MUSL): Define.
13950 (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
13951 (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
13952 (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
13953
13954 * config/linux.opt (mmusl): New option.
13955 * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
13956 (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
13957
13958 * configure: Regenerate.
13959
13960 2015-04-22 Yury Gribov <y.gribov@samsung.com>
13961
13962 * doc/invoke.texi (-fsanitize-sections): Update description.
13963 * asan.c (set_sanitized_sections): Parse incoming arg.
13964 (section_sanitized_p): Support wildcards.
13965
13966 2015-04-22 Tom de Vries <tom@codesourcery.com>
13967
13968 PR tree-optimization/65823
13969 * gimplify.c (gimplify_modify_expr): Use operand_equal_p to test for
13970 equality between ap_copy and ap.
13971
13972 2015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
13973
13974 PR target/47098
13975 * config/openbsd-oldgas.h (OBSD_LIB_SPEC): Add.
13976
13977 2015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
13978
13979 PR target/47122
13980 * config.gcc (vax-*-openbsd*): Fix name of pthread spec header.
13981
13982 2015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
13983
13984 PR target/55144
13985 * config.gcc (bfin*-linux-uclibc*): Prepend tmake_file and
13986 remove already contained t-files.
13987
13988 2015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
13989
13990 * tree-tailcall.c (suitable_for_tail_opt_p, find_tail_calls):
13991 Remove unneeded forward declarations.
13992 (suitable_for_tail_call_opt_p): Commentary typo fix.
13993
13994 2015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
13995
13996 * varasm.c (emit_bss): Remove redundant guard.
13997
13998 2015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
13999
14000 * config/c6x/c6x.h (TARGET_CPU_CPP_BUILTINS): Add unk_isa.
14001
14002 2015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
14003
14004 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Add BFIN_CPU_UNKNOWN.
14005
14006 2015-04-22 Hale Wang <hale.wang@arm.com>
14007 Terry Guo <terry.guo@arm.com>
14008
14009 PR rtl-optimization/64818
14010 * combine.c (can_combine_p): Don't combine user-specified
14011 register if it is in an asm input.
14012
14013 2015-04-21 Jan Hubicka <hubicka@ucw.cz>
14014
14015 PR ipa/65076
14016 * passes.def (early_optimizations): Add pass_dse.
14017
14018 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
14019
14020 * defaults.h (INSN_REFERENCES_ARE_DELAYED): New definition.
14021 * reorg.c (redundant_insn): Remove ifdef
14022 INSN_REFERENCES_ARE_DELAYED.
14023 * resource.c (mark_referenced_resources): Likewise.
14024
14025 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
14026
14027 * defaults.h (INSN_SETS_ARE_DELAYED): New definition.
14028 * reorg.c (redundant_insn): Remove ifdef INSN_SETS_ARE_DELAYED.
14029 * resource.c (mark_set_resources): Likewise.
14030
14031 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
14032
14033 * caller-save.c (insert_one_insn): Remove ifdef HAVE_cc0.
14034 * cfgcleanup.c (flow_find_cross_jump): Likewise.
14035 (flow_find_head_matching_sequence): Likewise.
14036 (try_head_merge_bb): Likewise.
14037 * combine.c (can_combine_p): Likewise.
14038 (try_combine): Likewise.
14039 (distribute_notes): Likewise.
14040 * df-problems.c (can_move_insns_across): Likewise.
14041 * final.c (final): Likewise.
14042 * gcse.c (insert_insn_end_basic_block): Likewise.
14043 * ira.c (find_moveable_pseudos): Likewise.
14044 * reorg.c (try_merge_delay_insns): Likewise.
14045 (fill_simple_delay_slots): Likewise.
14046 (fill_slots_from_thread): Likewise.
14047 * sched-deps.c (sched_analyze_2): Likewise.
14048
14049 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
14050
14051 * df-scan.c (df_get_entry_block_def_set): Remove #ifdef
14052 PIC_OFFSET_TABLE_REGNUM.
14053
14054 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
14055
14056 * alias.c (init_alias_target): Remove ifdef
14057 * HARD_FRAME_POINTER_IS_FRAME_POINTER.
14058 * df-scan.c (df_insn_refs_collect): Likewise.
14059 (df_get_regular_block_artificial_uses): Likewise.
14060 (df_get_eh_block_artificial_uses): Likewise.
14061 (df_get_entry_block_def_set): Likewise.
14062 (df_get_exit_block_use_set): Likewise.
14063 * emit-rtl.c (gen_rtx_REG): Likewise.
14064 * ira.c (ira_setup_eliminable_regset): Likewise.
14065 * reginfo.c (init_reg_sets_1): Likewise.
14066 * regrename.c (rename_chains): Likewise.
14067 * reload1.c (reload): Likewise.
14068 (eliminate_regs_in_insn): Likewise.
14069 * resource.c (mark_referenced_resources): Likewise.
14070 (init_resource_info): Likewise.
14071
14072 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
14073
14074 * defaults.h (MASK_RETURN_ADDR): New definition.
14075 * except.c (expand_builtin_extract_return_addr): Remove ifdef
14076 MASK_RETURN_ADDR.
14077
14078 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
14079
14080 * defaults.h (RETURN_ADDR_OFFSET): New definition.
14081 * except.c (expand_builtin_extract_return_addr): Remove ifdef
14082 RETURN_ADDR_OFFSET.
14083 (expand_builtin_frob_return_addr): Likewise.
14084
14085 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
14086
14087 * cfgrtl.c (rtl_merge_blocks): Change #if HAVE_cc0 to if (HAVE_cc0)
14088 (try_redirect_by_replacing_jump): Likewise.
14089 (rtl_tidy_fallthru_edge): Likewise.
14090 * combine.c (insn_a_feeds_b): Likewise.
14091 (find_split_point): Likewise.
14092 (simplify_set): Likewise.
14093 * cprop.c (cprop_jump): Likewise.
14094 * cse.c (cse_extended_basic_block): Likewise.
14095 * df-problems.c (can_move_insns_across): Likewise.
14096 * function.c (emit_use_return_register_into_block): Likewise.
14097 * haifa-sched.c (sched_init): Likewise.
14098 * ira.c (find_moveable_pseudos): Likewise.
14099 * loop-invariant.c (find_invariant_insn): Likewise.
14100 * lra-constraints.c (curr_insn_transform): Likewise.
14101 * postreload.c (reload_combine_recognize_const_pattern):
14102 * Likewise.
14103 * reload.c (find_reloads): Likewise.
14104 * reorg.c (delete_scheduled_jump): Likewise.
14105 (steal_delay_list_from_target): Likewise.
14106 (steal_delay_list_from_fallthrough): Likewise.
14107 (redundant_insn): Likewise.
14108 (fill_simple_delay_slots): Likewise.
14109 (fill_slots_from_thread): Likewise.
14110 (delete_computation): Likewise.
14111 * sched-rgn.c (add_branch_dependences): Likewise.
14112
14113 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
14114
14115 * genconfig.c (main): Always define HAVE_cc0.
14116 * caller-save.c (insert_one_insn): Change ifdef HAVE_cc0 to #if
14117 HAVE_cc0.
14118 * cfgcleanup.c (flow_find_cross_jump): Likewise.
14119 (flow_find_head_matching_sequence): Likewise.
14120 (try_head_merge_bb): Likewise.
14121 * cfgrtl.c (rtl_merge_blocks): Likewise.
14122 (try_redirect_by_replacing_jump): Likewise.
14123 (rtl_tidy_fallthru_edge): Likewise.
14124 * combine.c (do_SUBST_MODE): Likewise.
14125 (insn_a_feeds_b): Likewise.
14126 (combine_instructions): Likewise.
14127 (can_combine_p): Likewise.
14128 (try_combine): Likewise.
14129 (find_split_point): Likewise.
14130 (subst): Likewise.
14131 (simplify_set): Likewise.
14132 (distribute_notes): Likewise.
14133 * cprop.c (cprop_jump): Likewise.
14134 * cse.c (cse_extended_basic_block): Likewise.
14135 * df-problems.c (can_move_insns_across): Likewise.
14136 * final.c (final): Likewise.
14137 (final_scan_insn): Likewise.
14138 * function.c (emit_use_return_register_into_block): Likewise.
14139 * gcse.c (insert_insn_end_basic_block): Likewise.
14140 * haifa-sched.c (sched_init): Likewise.
14141 * ira.c (find_moveable_pseudos): Likewise.
14142 * loop-invariant.c (find_invariant_insn): Likewise.
14143 * lra-constraints.c (curr_insn_transform): Likewise.
14144 * optabs.c (prepare_cmp_insn): Likewise.
14145 * postreload.c (reload_combine_recognize_const_pattern):
14146 * Likewise.
14147 * reload.c (find_reloads): Likewise.
14148 (find_reloads_address_1): Likewise.
14149 * reorg.c (delete_scheduled_jump): Likewise.
14150 (steal_delay_list_from_target): Likewise.
14151 (steal_delay_list_from_fallthrough): Likewise.
14152 (try_merge_delay_insns): Likewise.
14153 (redundant_insn): Likewise.
14154 (fill_simple_delay_slots): Likewise.
14155 (fill_slots_from_thread): Likewise.
14156 (delete_computation): Likewise.
14157 (relax_delay_slots): Likewise.
14158 * sched-deps.c (sched_analyze_2): Likewise.
14159 * sched-rgn.c (add_branch_dependences): Likewise.
14160
14161 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
14162
14163 * combine.c (find_single_use): Remove HAVE_cc0 ifdef for code
14164 that is trivially ded on non cc0 targets.
14165 (simplify_set): Likewise.
14166 (mark_used_regs_combine): Likewise.
14167 * cse.c (new_basic_block): Likewise.
14168 (fold_rtx): Likewise.
14169 (cse_insn): Likewise.
14170 (cse_extended_basic_block): Likewise.
14171 (set_live_p): Likewise.
14172 * rtlanal.c (canonicalize_condition): Likewise.
14173 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
14174
14175 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
14176
14177 * conditions.h: Define macros even if HAVE_cc0 is undefined.
14178 * emit-rtl.c: Define functions even if HAVE_cc0 is undefined.
14179 * final.c: Likewise.
14180 * jump.c: Likewise.
14181 * recog.c: Likewise.
14182 * recog.h: Declare functions even when HAVE_cc0 is undefined.
14183 * sched-deps.c (sched_analyze_2): Always compile case for cc0.
14184
14185 2015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
14186
14187 * defaults.h: New definition of EH_RETURN_DATA_REGNO.
14188 * except.c: Remove definition of EH_RETURN_DATA_REGNO.
14189 * builtins.c (expand_builtin): Remove check if
14190 EH_RETURN_DATA_REGNO is defined.
14191 * df-scan.c (df_bb_refs_collect): Likewise.
14192 (df_get_exit_block_use_set): Likewise.
14193 * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
14194 * ira-lives.c (process_bb_node_lives): Likewise.
14195 * lra-lives.c (process_bb_lives): Likewise.
14196
14197 2015-04-21 Uros Bizjak <ubizjak@gmail.com>
14198
14199 * config/i386/i386.md (ARGP_REG, FRAME_REG, BND2_REG, BND3_REG,
14200 FIRST_PSEUDO_REG): New.
14201 * config/i386/i386.h (STACK_POINTER_REGNUM): Define to SP_REG.
14202 (ARG_POINTER_REGNUM): Define to ARGP_REG.
14203 (FRAME_POINTER_REGNUM): Define to FRAME_REG.
14204 (HARD_FRAME_POINTER_REGNUM): Define to BP_REG.
14205 (FIRST_PSEUDO_REGISTER): Define to FIRST_PSEUDO_REG.
14206 (FIRST_INT_REG): New.
14207 (LAST_INT_REG): New.
14208 (FIRST_*_REG): Define using *_REG.
14209 (LAST_*_REG): Ditto.
14210 (QI_REGNO_P): Define using FIRST_QU_REG and LAST_QI_REG.
14211 (LEGACY_INT_REGNO_P): Define using FIRST_INT_REG and LAST_INT_REG.
14212 (FIRST_FLOAT_REG): Define to FIRST_STACK_REG.
14213
14214 2015-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14215
14216 * expmed.c: (synth_mult): Only assume overlapping
14217 shift with previous steps in alg_sub_t_m2 case.
14218
14219 2015-04-21 Richard Biener <rguenther@suse.de>
14220
14221 PR tree-optimization/65650
14222 * tree-ssa-ccp.c (valid_lattice_transition): Allow lattice
14223 transitions involving copies.
14224 (set_lattice_value): Adjust for copy lattice state.
14225 (ccp_lattice_meet): Do not merge UNDEFINED and a copy to the copy
14226 if that doesn't dominate the merge point.
14227 (bit_value_unop): Adjust what we treat as varying mask.
14228 (bit_value_binop): Likewise.
14229 (bit_value_assume_aligned): Likewise.
14230 (evaluate_stmt): When we simplified to a SSA name record a copy
14231 instead of dropping to varying.
14232 (visit_assignment): Simplify.
14233
14234 * gimple-match.h (gimple_simplify): Add another callback.
14235 * gimple-fold.c (fold_stmt_1): Adjust caller.
14236 (gimple_fold_stmt_to_constant_1): Likewise - pass valueize
14237 for the 2nd callback.
14238 * gimple-match-head.c (gimple_simplify): Add a callback that is
14239 used to valueize the stmt operands and use it that way.
14240
14241 2015-04-21 Richard Biener <rguenther@suse.de>
14242
14243 PR tree-optimization/65788
14244 * tree-ssa-ccp.c (evaluate_stmt): Evaluate to UNDEFINED early.
14245
14246 2015-04-21 Richard Biener <rguenther@suse.de>
14247
14248 * config/i386/i386.c (ix86_builtin_vectorization_cost): Scale
14249 vec_construct cost by vec_stmt_cost.
14250
14251 2015-04-21 Richard Biener <rguenther@suse.de>
14252
14253 * cfghooks.h (create_basic_block): Replace with two overloads
14254 for RTL and GIMPLE.
14255 (split_block): Likewise.
14256 * cfghooks.c (split_block): Rename to ...
14257 (split_block_1): ... this.
14258 (split_block): Add two type-safe overloads for RTL and GIMPLE.
14259 (split_block_after_labels): Call split_block_1.
14260 (create_basic_block): Rename to ...
14261 (create_basic_block_1): ... this.
14262 (create_basic_block): Add two type-safe overloads for RTL and GIMPLE.
14263 (create_empty_bb): Call create_basic_block_1.
14264 * cfgrtl.c (fixup_fallthru_exit_predecessor): Use
14265 split_block_after_labels.
14266 * omp-low.c (expand_parallel_call): Likewise.
14267 (expand_omp_target): Likewise.
14268 (simd_clone_adjust): Likewise.
14269 * tree-chkp.c (chkp_get_entry_block): Likewise.
14270 * cgraphunit.c (init_lowered_empty_function): Use the GIMPLE
14271 create_basic_block overload.
14272 (cgraph_node::expand_thunk): Likewise.
14273 * tree-cfg.c (make_blocks): Likewise.
14274 (handle_abnormal_edges): Likewise.
14275 * tree-inline.c (copy_bb): Likewise.
14276
14277 2015-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14278
14279 * config/aarch64/aarch64.md (*<NLOGICAL:optab>_one_cmplsidi3_ze):
14280 New pattern.
14281 (*xor_one_cmplsidi3_ze): Likewise.
14282
14283 2015-04-21 Thomas Preud'homme <thomas.preudhomme@arm.com>
14284
14285 * df-core.c (df_finish_pass): Iterate over df->problems_by_index[] and
14286 use df_remove_problem rather than manually removing problems, leaving
14287 holes in df->problems_in_order[].
14288
14289 2015-04-21 Tom de Vries <tom@codesourcery.com>
14290
14291 PR tree-optimization/65802
14292 * internal-fn.def (VA_ARG): Add ECF_NOTROW to flags.
14293
14294 2015-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14295
14296 * common/config/aarch64/aarch64-common.c (AARCH64_CPU_NAME_LENGTH):
14297 Increase to 128.
14298 (aarch64_rewrite_selected_cpu): Do not chop off extensions starting
14299 at '.'. Assert that there's enough space for everything.
14300
14301 2015-04-21 Uros Bizjak <ubizjak@gmail.com>
14302
14303 PR tree-optimization/64950
14304 Revert:
14305 2010-08-02 Uros Bizjak <ubizjak@gmail.com>
14306
14307 PR target/41089
14308 * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
14309 as volatile.
14310
14311 2015-04-20 Shiva Chen <shiva0217@gmail.com>
14312
14313 PR rtl-optimization/64916
14314 * cfgcleanup.c (values_equal_p): New function.
14315 (can_replace_by): Use it.
14316
14317 2015-04-20 Paolo Carlini <paolo.carlini@oracle.com>
14318
14319 PR c++/65801
14320 * doc/invoke.texi ([-Wnarrowing]): Update.
14321
14322 2015-04-20 Jeff Law <law@redhat.com>
14323
14324 PR tree-optimization/65658
14325 * tree-ssa-threadupdate.c (redirection_block_p): Remove
14326 redundant test for GIMPLE_ASSIGN in last change.
14327
14328 2015-04-20 Uros Bizjak <ubizjak@gmail.com>
14329
14330 * config/i386/i386.c (set_pic_reg_ever_live): Remove.
14331 (legitimize_pic_address): Do not call set_pic_reg_ever_live.
14332 (legitimize_tls_address): Ditto.
14333 (ix86_expand_move): Ditto.
14334 (ix86_expand_binary_operator): Remove reload_in_progress checks.
14335 (ix86_expand_unary_operator): Ditto.
14336 * config/i386/predicates.md (index_register_operand): Ditto.
14337
14338 2015-04-20 Selim Belbachir <selim.belbachir@fr.thalesgroup.com>
14339
14340 * reorg.c (try_merge_delay_insns): Improve correctness checking
14341 for targets with multiple delay slots.
14342
14343 2015-04-20 Jeff Law <law@redhat.com>
14344
14345 PR tree-optimization/65658
14346 * tree-ssa-threadupdate.c (redirection_block_p): Ignore clobber
14347 statements too.
14348
14349 2015-04-20 Alan Lawrence <alan.lawrence@arm.com>
14350
14351 * config/aarch64/aarch64.c (aarch64_simd_emit_pair_result_insn): Delete.
14352 * config/aarch64/aarch64-protos.h (aarch64_simd_emit_pair_result_insn):
14353 Delete.
14354
14355 2015-04-20 Jakub Jelinek <jakub@redhat.com>
14356
14357 PR debug/65807
14358 * dwarf2out.c (add_AT_wide): Clear attr.dw_attr_val.val_entry.
14359
14360 2015-04-20 Richard Biener <rguenther@suse.de>
14361
14362 * gimple-fold.h (gimple_build): Remove optional valueize arguments.
14363 * gimple-fold.c (gimple_build_valueize): New function.
14364 (gimple_build): Always use gimple_build_valueize as valueize hook.
14365
14366 2015-04-20 Alan Lawrence <alan.lawrence@arm.com>
14367
14368 PR target/64134
14369 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Load constant
14370 and overwrite variable parts if <= 1/2 the elements are variable.
14371
14372 2015-04-19 Vladimir Makarov <vmakarov@redhat.com>
14373
14374 PR rtl-optimization/65805
14375 * lra-eliminations.c (lra_eliminate_regs_1): Add new assert.
14376 Don't use difference of offset and previous offset if
14377 update_sp_offset is non-zero.
14378 (eliminate_regs_in_insn): Ditto.
14379 * lra-spills.c (remove_pseudos): Exchange 4th and 6th args in
14380 lra_eliminate_regs_1 call.
14381 * lra-constraints.c (get_equiv_with_elimination): Ditto.
14382
14383 2015-04-18 Trevor Saunders <tsaunders@mozilla.com>
14384
14385 * hash-table.h: Remove version of hash_table that stored value_type *.
14386 * asan.c, attribs.c, bitmap.c, cfg.c, cgraph.h, config/arm/arm.c,
14387 config/i386/winnt.c, config/ia64/ia64.c, config/mips/mips.c,
14388 config/sol2.c, coverage.c, cselib.c, dse.c, dwarf2cfi.c,
14389 dwarf2out.c, except.c, gcse.c, genmatch.c, ggc-common.c,
14390 gimple-ssa-strength-reduction.c, gimplify.c, haifa-sched.c,
14391 hard-reg-set.h, hash-map.h, hash-set.h, ipa-devirt.c, ipa-icf.h,
14392 ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
14393 loop-iv.c, loop-unroll.c, lto-streamer.h, plugin.c, postreload-gcse.c,
14394 reginfo.c, statistics.c, store-motion.c, trans-mem.c, tree-cfg.c,
14395 tree-eh.c, tree-hasher.h, tree-into-ssa.c, tree-parloops.c,
14396 tree-sra.c, tree-ssa-coalesce.c, tree-ssa-dom.c, tree-ssa-live.c,
14397 tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c,
14398 tree-ssa-pre.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
14399 tree-ssa-structalias.c, tree-ssa-tail-merge.c,
14400 tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
14401 valtrack.h, var-tracking.c, vtable-verify.c, vtable-verify.h: Adjust.
14402
14403 2015-04-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14404 Jakub Jelinek <jakub@redhat.com>
14405
14406 PR target/65787
14407 * config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a
14408 subsequent SH_NONE operand does not overwrite an existing *special
14409 value.
14410 (adjust_extract): Handle case where a vec_extract operation is
14411 wrapped in a PARALLEL.
14412
14413 2015-04-17 H.J. Lu <hongjiu.lu@intel.com>
14414
14415 PR target/65780
14416 * config/i386/i386.c (ix86_binds_local_p): Define only if
14417 TARGET_MACHO and TARGET_DLLIMPORT_DECL_ATTRIBUTES are false.
14418
14419 2015-04-17 Jeff Law <law@redhat.com>
14420
14421 PR tree-optimization/47679
14422 * Makefile.in (OBJS); Add tree-ssa-scopedtables.o.
14423 * tree-ssa-scopedtables.c: New file.
14424 * tree-ssa-scopedtables.h: New file.
14425 * tree-ssa-dom.c: Include tree-ssa-scopedtables.h.
14426 (const_and_copies): Change name/type.
14427 (record_const_or_copy): Move into tree-ssa-scopedtables.c
14428 (record_const_or_copy_1): Similarly.
14429 (restore_vars_to_original_value): Similarly.
14430 (pass_dominator::execute): Create and destroy const_and_copies table.
14431 (thread_across_edge): Update passing of const_and_copies.
14432 (record_temporary_equivalence): Use method calls rather than
14433 manipulating const_and_copies directly.
14434 (record_equality, cprop_into_successor_phis): Similarly.
14435 (dom_opt_dom_walker::before_dom_children): Similarly.
14436 (dom_opt_dom_walker::after_dom_children): Similarly.
14437 (eliminate_redundant_computations): Similarly.
14438 * tree-ssa-threadedge.c (remove_temporary_equivalences): Delete.
14439 (record_temporary_equivalence): Likewise.
14440 (invalidate_equivalences): Likewise.
14441 (record_temporary_equivalences_from_phis): Update due to type
14442 change of const_and_copies. Use method calls rather than
14443 manipulating the stack directly.
14444 (record_temporary_equivalences_from_stmts_at_dest): Likewise.
14445 (thread_through_normal_block, thread_across_edge): Likewise.
14446 (thread_across_edge): Likewise.
14447 * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
14448 * tree-vrp.c: Include tree-ssa-scopedtables.h. Change type
14449 of equiv_stack.
14450 (identify_jump_threads): Update due to type change of equiv_stack.
14451 (finalize_jump_threads): Delete the equiv_stack when complete.
14452
14453 2015-04-17 Uros Bizjak <ubizjak@gmail.com>
14454
14455 * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
14456 * config/i386/i386.c (ix86_legitimize_reload_address): Ditto.
14457 * config/i386/i386-protos.h (ix86_legitimize_reload_address): Ditto.
14458
14459 2015-04-17 Andreas Tobler <andreast@gcc.gnu.org>
14460
14461 PR target/65535
14462 * config.gcc: Exit with a comment when we do not have a major version
14463 number for the FreeBSD target.
14464
14465 2015-04-17 Jakub Jelinek <jakub@redhat.com>
14466
14467 PR target/65689
14468 * genpreds.c (struct constraint_data): Add maybe_allows_reg and
14469 maybe_allows_mem bitfields.
14470 (maybe_allows_none_start, maybe_allows_none_end,
14471 maybe_allows_reg_start, maybe_allows_reg_end, maybe_allows_mem_start,
14472 maybe_allows_mem_end): New variables.
14473 (compute_maybe_allows): New function.
14474 (add_constraint): Use it to initialize maybe_allows_reg and
14475 maybe_allows_mem fields.
14476 (choose_enum_order): Sort the non-is_register/is_const_int/is_memory/
14477 is_address constraints such that those that allow neither mem nor
14478 reg come first, then those that only allow reg but not mem, then
14479 those that only allow mem but not reg, then the rest.
14480 (write_allows_reg_mem_function): New function.
14481 (write_tm_preds_h): Call it.
14482 * stmt.c (parse_output_constraint, parse_input_constraint): Use
14483 the generated insn_extra_constraint_allows_reg_mem function
14484 instead of always setting *allows_reg = true; *allows_mem = true;
14485 for unknown extra constraints.
14486
14487 2015-04-17 H.J. Lu <hongjiu.lu@intel.com>
14488
14489 PR target/65780
14490 * output.h (default_binds_local_p_3): New.
14491 * varasm.c (default_binds_local_p_3): Make it public. Take an
14492 argument to indicate if common symbol may be local. If common
14493 symbol may be local, treat non-external variable as defined
14494 locally.
14495 (default_binds_local_p_2): Pass !flag_pic to default_binds_local_p_3.
14496 (default_binds_local_p_1): Pass false to default_binds_local_p_3.
14497 * config/i386/i386.c (ix86_binds_local_p): New.
14498 (TARGET_BINDS_LOCAL_P): Replace default_binds_local_p_2 with
14499 ix86_binds_local_p.
14500
14501 2015-04-17 Jakub Jelinek <jakub@redhat.com>
14502
14503 PR debug/65771
14504 * dwarf2out.c (mem_loc_descriptor): For CONST, fallback to
14505 trying mem_loc_descriptor on XEXP (rtl, 0).
14506
14507 2015-04-17 Martin Liska <mliska@suse.cz>
14508
14509 * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
14510 Release symbol_compare_collection.
14511 * ipa-reference.c: Add TODO that a vector should be released.
14512
14513 2015-04-17 Sivanupandi Pitchumani <Pitchumani.Sivanupandi@atmel.com>
14514
14515 PR target/65296
14516 * config/avr/gen-avr-mmcu-specs.c (*avrlibc_startfile): Adjust
14517 to new AVR-LibC file layout (bug #44574).
14518 (*avrlibc_devicelib): Same.
14519 * config/avr/avr-mcus.def: Adjust comments.
14520 * config/avr/avr.opt (nodevicelib): Adjust help.
14521
14522 2015-04-17 Alan Lawrence <alan.lawrence@arm.com>
14523
14524 * config/aarch64/arm_neon.h (vdup_n_f32): Remove forward declaration.
14525
14526 2015-04-17 Patrick Palka <ppalka@gcc.gnu.org>
14527
14528 PR c++/64527
14529 * gimplify.c (gimplify_init_constructor): Always emit a
14530 side-effecting constructor.
14531
14532 2015-04-17 Tom de Vries <tom@codesourcery.com>
14533
14534 PR tree-optimization/64950
14535 * gimplify.c (gimplify_function_tree): Tentatively set PROP_gimple_lva
14536 in cfun->curr_properties.
14537 (gimplify_va_arg_expr): Clear PROP_gimple_lva in cfun->curr_properties
14538 if we generate an IFN_VA_ARG.
14539 * tree-inline.c (expand_call_inline): Reset PROP_gimple_lva in dest
14540 function if PROP_gimple_lva is not set in src function.
14541
14542 2015-04-17 Tom de Vries <tom@codesourcery.com>
14543 Michael Matz <matz@suse.de>
14544
14545 PR tree-optimization/64950
14546 * gimple-iterator.c (update_modified_stmts): Remove static.
14547 * gimple-iterator.h (update_modified_stmts): Declare.
14548 * gimplify.c (gimplify_modify_expr): Handle IFN_VA_ARG.
14549 (gimplify_va_arg_internal): New function.
14550 (gimplify_va_arg_expr): Use IFN_VA_ARG.
14551 * gimplify.h (gimplify_va_arg_internal): Declare.
14552 * internal-fn.c (expand_VA_ARG): New unreachable function.
14553 * internal-fn.def (VA_ARG): New DEF_INTERNAL_FN.
14554 * tree-stdarg.c (gimple_call_ifn_va_arg_p, expand_ifn_va_arg_1)
14555 (expand_ifn_va_arg): New function.
14556 (pass_data_stdarg): Add PROP_gimple_lva to properties_provided field.
14557 (pass_stdarg::execute): Call expand_ifn_va_arg.
14558 (pass_data_lower_vaarg): New pass_data.
14559 (pass_lower_vaarg): New gimple_opt_pass.
14560 (pass_lower_vaarg::gate, pass_lower_vaarg::execute)
14561 (make_pass_lower_vaarg): New function.
14562 * cfgexpand.c (pass_data_expand): Add PROP_gimple_lva to
14563 properties_required field.
14564 * passes.def (all_passes): Add pass_lower_vaarg.
14565 * tree-pass.h (PROP_gimple_lva): Add define.
14566 (make_pass_lower_vaarg): Declare.
14567
14568 2015-04-17 Tom de Vries <tom@codesourcery.com>
14569
14570 * fold-const.c (operand_equal_p): Handle INTERNAL_FNs.
14571 * calls.c (call_expr_flags): Same.
14572
14573 2015-04-17 Tom de Vries <tom@codesourcery.com>
14574
14575 * tree-stdarg.c (optimize_va_list_gpr_fpr_size): Factor out of ...
14576 (pass_stdarg::execute): ... here.
14577
14578 2015-04-17 Tom de Vries <tom@codesourcery.com>
14579 Michael Matz <matz@suse.de>
14580
14581 * tree-cfg.c (make_blocks_1): Factor out of ...
14582 (make_blocks): ... here.
14583 (make_edges_bb): Factor out of ...
14584 (make_edges): ... here.
14585 (gimple_find_sub_bbs): New function.
14586 * tree-cfg.h (gimple_find_sub_bbs): Declare.
14587
14588 2015-04-17 Tom de Vries <tom@codesourcery.com>
14589
14590 * tree.c (free_lang_data): Disable lang_hooks.gimplify_expr.
14591
14592 2015-04-17 Yury Gribov <y.gribov@samsung.com>
14593
14594 * asan.c (set_sanitized_sections): New function.
14595 (section_sanitized_p): Ditto.
14596 (asan_protect_global): Optionally sanitize user-defined
14597 sections.
14598 * asan.h (set_sanitized_sections): Declare new function.
14599 * common.opt (fsanitize-sections): New option.
14600 * doc/invoke.texi (-fsanitize-sections): Document new option.
14601 * opts-global.c (handle_common_deferred_options): Handle new
14602 option.
14603
14604 2015-04-17 Jakub Jelinek <jakub@redhat.com>
14605
14606 PR debug/65771
14607 * dwarf2out.c (loc_list_from_tree): Return NULL
14608 for DEBUG_EXPR_DECL.
14609
14610 2015-04-17 Christian Bruel <christian.bruel@st.com>
14611
14612 * ipa-inline.c (can_inline_edge_p): Allow inlining of functions with
14613 same attributes.
14614
14615 2015-04-16 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
14616
14617 * ira-color.c (setup_left_conflict_sizes_p): Do not process
14618 node itself when computing left conflict subnode size.
14619
14620 2015-04-16 Uros Bizjak <ubizjak@gmail.com>
14621
14622 * config/i386/predicates.md (register_mixssei387nonimm_operand): New.
14623 * config/i386/i386.md (*fop_<mode>_1_mixed): Merge with
14624 *fop_<mode>_1_sse using enabled attribute. Use
14625 register_mixssei387nonimm_operand operand 1 predicate. Change
14626 alternative 3 constraints from "x" to "v".
14627
14628 2015-04-16 Richard Biener <rguenther@suse.de>
14629
14630 PR tree-optimization/65774
14631 * tree-ssa-ccp.c (evaluate_stmt): Constrain types we invoke
14632 bit-value tracking on.
14633
14634 2015-04-16 Richard Biener <rguenther@suse.de>
14635
14636 PR tree-optimization/64277
14637 * tree-vrp.c (check_array_ref): Fix anti-range handling,
14638 simplify upper bound handling.
14639 (search_for_addr_array): Simplify.
14640 (check_array_bounds): Handle ADDR_EXPRs here.
14641 (check_all_array_refs): Simplify.
14642
14643 2015-04-16 Uros Bizjak <ubizjak@gmail.com>
14644
14645 * config/i386/i386.c (print_reg): Rewrite function.
14646
14647 2015-04-16 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14648
14649 * config/s390/s390.h (IRA_HARD_REGNO_ADD_COST_MULTIPLIER):
14650 Invert the condition.
14651
14652 2015-04-16 Renlin Li <renlin.li@arm.com>
14653
14654 * simplify-rtx.c (simplify_unary_operation_1): Fix a typo. Enable two
14655 simplifications for UNSIGNED_FLOAT.
14656
14657 2015-04-16 Nick Clifton <nickc@redhat.com>
14658
14659 * config/rl78/rl78-opts.h (enum rl78_mul_types): Add MUL_G14 and
14660 MUL_UNINIT.
14661 (enum rl78_cpu_type): New.
14662 * config/rl78/rl78-virt.md (attr valloc): Add divhi and divsi.
14663 (umulhi3_shift_virt): Remove m constraint from operand 1.
14664 (umulqihi3_virt): Likewise.
14665 * config/rl78/rl78.c (rl78_option_override): Add code to process
14666 -mcpu and -mmul options.
14667 (rl78_alloc_physical_registers): Add code to handle divhi and
14668 divsi valloc attributes.
14669 (set_origin): Likewise.
14670 * config/rl78/rl78.h (RL78_MUL_G14): Define.
14671 (TARGET_G10, TARGET_G13, TARGET_G14): Define.
14672 (TARGET_CPU_CPP_BUILTINS): Define __RL78_MUL_xxx__ and
14673 __RL78_Gxx__.
14674 (ASM_SPEC): Pass -mcpu on to assembler.
14675 * config/rl78/rl78.md (mulqi3): Add a clobber of AX.
14676 (mulqi3_rl78): Likewise.
14677 (mulhi3_g13): Likewise.
14678 (mulhi3): Generate the G13 or G14 versions of the insn directly.
14679 (mulsi3): Likewise.
14680 (mulhi3_g14): Add clobbers of AX and BC.
14681 (mulsi3_g14): Likewise.
14682 (mulsi3_g13): Likewise.
14683 (udivmodhi4, udivmodhi4_g14, udivmodsi4): New patterns.
14684 (udivmodsi4_g14, udivmodsi4_g13): New patterns.
14685 * config/rl78/rl78.opt (mmul): Initialise value to
14686 RL78_MUL_UNINIT.
14687 (mcpu): New option.
14688 (m13, m14, mrl78): New option aliases.
14689 * config/rl78/t-rl78 (MULTILIB_OPTIONS): Add mg13 and mg14.
14690 (MULTILIB_DIRNAMES): Add g13 and g14.
14691 * doc/invoke.texi: Document -mcpu and -mmul options.
14692
14693 2015-04-16 Richard Biener <rguenther@suse.de>
14694
14695 * tree-ssa-ccp.c (likely_value): See if we have operands that
14696 are marked as never simulate again and return CONSTANT in this
14697 case.
14698 * tree-ssa-propagate.c (simulate_stmt): Mark stmts that do
14699 not have any operands that will be simulated again as
14700 not being simulated again.
14701
14702 2015-04-15 Uros Bizjak <ubizjak@gmail.com>
14703
14704 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed):
14705 Merge with *cmpi<FPCMP:unord><MODEF:mode>_sse using enabled attribute.
14706 (*extendsfdf2_mixed): Merge with *extendsfdf2_sse using enabled
14707 attribute.
14708 (*truncdfsf_fast_mixed): Merge with *truncdfsf_fast_sse using
14709 enabled attribute.
14710 (*float<SWI48:mode><MODEF:mode>2_mixed): Rename from
14711 *float<SWI48:mode><MODEF:mode>2_sse.
14712 (*absneg<mode>2_mixed): Merge with *absneg<mode>2_sse using
14713 enabled attribute.
14714 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_sse using
14715 enabled attribute.
14716
14717 2015-04-15 Tom de Vries <tom@codesourcery.com>
14718
14719 PR other/65487
14720 * function.c (push_dummy_function): New function.
14721 (init_dummy_function_start): Use push_dummy_function.
14722 (pop_dummy_function): New function. Factored out of ...
14723 (expand_dummy_function_end): ... here.
14724 * function.h (push_dummy_function, pop_dummy_function): Declare.
14725 * passes.c (pass_manager::dump_passes): Use push_dummy_function and
14726 pop_dummy_function.
14727 * tree-chkp.c (chkp_gate): Handle cgraph_node::get (cfun->decl) == NULL.
14728
14729 2015-04-15 Jeff Law <law@redhat.com>
14730
14731 PR tree-optimization/47679
14732 * tree-ssa-dom.c (build_and_record_new_cond): Moved to avoid
14733 need for forward declaration in upcoming changes.
14734 (record_conditions, record_edge_info): Likewise.
14735
14736 PR rtl-optimization/42522
14737 * cse.c (fold_rtx): Try to simplify a ZERO_EXTRACT or
14738 SIGN_EXTRACT as a whole object rather than simplifying
14739 its operand.
14740
14741 2015-04-15 Jakub Jelinek <jakub@redhat.com>
14742
14743 PR ipa/65765
14744 * ipa-icf-gimple.c (func_checker::compare_bb): For GIMPLE_NOP
14745 and GIMPLE_PREDICT use break instead of return true. For
14746 GIMPLE_EH_DISPATCH, compare dispatch region.
14747
14748 2015-04-14 Matthew Wahab <matthew.wahab@arm.com>
14749
14750 * doc/extend.texi (__sync Builtins): Simplify some text. Update
14751 details about the implementation. Make clear preference for
14752 __atomic builtins. Reduce possibility of future change.
14753
14754 2015-04-15 Nick Clifton <nickc@redhat.com>
14755
14756 * config/rx/rx.opt (mallow-string-insns): New option.
14757 * config/rx/rx.c (RX_BUILTIN_RMPA): Disable the use of this
14758 builtin if string instructions are denied.
14759 * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Define
14760 __RX_ALLOW_STRING_INSNS__ or __RX_DISALLOW_STRING_INSNS__, as
14761 appropriate.
14762 (ASM_SPEC): Pass -mno-allow-string-insns on to the assembler.
14763 * config/rx/rx.md (movstr): Enable pattern only if string
14764 instructions are allowed.
14765 (rx_movstr, rx_strend, movmemsi, rx_movmem): Likewise.
14766 (cmpstrnsi, cmpstrsi, rx_cmpstrn, rmpa): Likewise.
14767 * config/rx/t-rx (MULTILIB_OPTIONS): Add mno-allow-string-insns.
14768 (MULTILIB_DIRNAMES): Add no-strings.
14769 * doc/invoke.texi: Document -mno-allow-string-insns.
14770
14771 2015-04-15 Alan Modra <amodra@gmail.com>
14772
14773 PR target/65408
14774 PR target/58744
14775 PR middle-end/36043
14776 * calls.c (load_register_parameters): Don't load past end of
14777 mem unless suitably aligned.
14778
14779 2015-04-15 Nick Clifton <nickc@redhat.com>
14780
14781 * config/rl78/rl78.c (rl78_expand_prologue): Mark large stack
14782 decrement instruction as being frame related.
14783 (rl78_print_operand_1): Handle 'p' modifier to add +0 to HL
14784 based addresses.
14785 If zero extending a function address enclose the operation in
14786 %code(...).
14787 (rl78_preferred_reload_class): New function.
14788 (TARGET_PREFERRED_RELOAD_CLASS): Define.
14789 * config/rl78/rl78.md: Remove useless constraints in expanders.
14790 (mulqi3_rl78): Remove + qualifier on input-only operand 1.
14791 (mulhi3_rl78): Likewise.
14792 (mulhi3_g13): Likewise.
14793 (mulsi3_rl78): Likewise.
14794 (es_addr): Move to before the multiply patterns.
14795
14796 2015-04-15 Alan Modra <amodra@gmail.com>
14797
14798 * function.h (struct emit_status): Delete x_first_insn, x_last_insn
14799 and sequence_stack. Add seq.
14800 (seq_stack): Delete.
14801 * function.c (prepare_function_start): Don't access x_last_insn.
14802 * emit-rtl.h (get_current_sequence, get_topmost_sequence): New.
14803 (get_insns, set_first_insn, get_last_insn, set_last_insn): Use them.
14804 * emit_rtl.c (start_sequence, push_topmost_sequence,
14805 pop_topmost_sequence, end_sequence, in_sequence_p, init_emit): Use
14806 sequence accessors.
14807 (get_last_insn_anywhere, add_insn_after_nobb, add_insn_before_nobb,
14808 remove_insn): Likewise. Simplify.
14809 * config/m32c/m32c.c (m32c_leaf_function_p): Use push_topmost_sequence
14810 and pop_topmost_sequence.
14811 (m32c_function_needs_enter): Use get_topmost_sequence. Ignore
14812 debug insns.
14813 * config/rs6000/rs6000.c (rs6000_call_aix): Use get_current_sequence.
14814
14815 2015-04-14 Yvan Roux <yvan.roux@linaro.org>
14816
14817 PR target/65729
14818 * lra-constraints.c (prohibited_class_reg_set_mode_p): Restore and fix
14819 the assertiion.
14820
14821 2015-04-14 Uros Bizjak <ubizjak@gmail.com>
14822
14823 * config/i386/i386.h (LEGACY_INT_REG_P): New define.
14824 (LEGACY_INT_REGNO_P): Ditto.
14825 (GENERAL_REGNO_P): Use LEGACY_INT_REGNO_P.
14826 (ANY_MASK_REG_P): Remove.
14827 (BND_REG_P): Rename from ANY_BND_REG_P.
14828 * config/i386/i386.c (print_reg): Use LEGACY_INT_REG_P to print
14829 legacy integer registers. Do not handle MMX_REG_P in a special way.
14830 Merge 64byte and 32byte SSE handling.
14831
14832 2015-04-14 Nick Clifton <nickc@redhat.com>
14833
14834 * expr.c (expand_assignment): Force an address offset computation
14835 into a register before changing its mode.
14836 (expand_expr_real_1): Likewise.
14837
14838 2015-04-14 Alan Lawrence <alan.lawrence@arm.com>
14839
14840 * config/aarch64/arm_neon.h (vst1_lane_f32, vst1_lane_f64,
14841 vst1_lane_p8, vst1_lane_p16, vst1_lane_s8, vst1_lane_s16,
14842 vst1_lane_s32, vst1_lane_s64, vst1_lane_u8, vst1_lane_u16,
14843 vst1_lane_u32, vst1_lane_u64, vst1q_lane_f32, vst1q_lane_f64,
14844 vst1q_lane_p8, vst1q_lane_p16, vst1q_lane_s8, vst1q_lane_s16,
14845 vst1q_lane_s32, vst1q_lane_s64, vst1q_lane_u8, vst1q_lane_u16,
14846 vst1q_lane_u32, vst1q_lane_u64): Reimplement with pointer dereference
14847 and __aarch64_vget_lane_any.
14848
14849 2015-04-14 Jakub Jelinek <jakub@redhat.com>
14850
14851 PR rtl-optimization/65761
14852 * cfgrtl.c (rtl_split_edge): For EDGE_CROSSING split, use
14853 get_last_bb_insn (after) instead of NEXT_INSN (BB_END (after)).
14854
14855 2015-04-14 Richard Biener <rguenther@suse.de>
14856
14857 * graphite-scop-detection.c: Do not include cp/cp-tree.h.
14858 (graphite_can_represent_scev): Use POINTER_TYPE_P.
14859
14860 2015-04-14 Richard Biener <rguenther@suse.de>
14861
14862 PR tree-optimization/65758
14863 * tree-ssa-ccp.c (get_value_from_alignment): Adjust mask test
14864 against -1.
14865 (ccp_lattice_meet): Likewise.
14866 (bit_value_unop): Likewise.
14867 (bit_value_binop): Likewise.
14868 (bit_value_assume_aligned): Likewise.
14869
14870 2015-04-14 Christian Bruel <christian.bruel@st.com>
14871
14872 * execute_dwarf2_frame (dw_frame_pointer_regnum): Reinitialize for each
14873 function.
14874
14875 2015-04-14 Marc Glisse <marc.glisse@inria.fr>
14876
14877 PR tree-optimization/63387
14878 * match.pd ((x unord x) | (y unord y) -> (x unord y),
14879 (x unord x) | (x unord y) -> (x unord y)): New simplifications.
14880
14881 2015-04-14 Uros Bizjak <ubizjak@gmail.com>
14882
14883 * config/i386/predicates.md (any_QIreg_operand): Rename from
14884 q_regs_operand. Do not process subregs.
14885 (QIreg_operand): Use QI_REGNO_P predicate.
14886 (ext_QIreg_operand): Ditto.
14887 (ext_register_operand): Ditto.
14888 * config/i386/i386.md (TEST splitters): Use QIreg_operand predicate.
14889 (AND splitters): Ditto.
14890 (AND with -65536 splitter): Add SWI48 mode for operand 0.
14891 (AND with -256 splitter): Use any_QIreg_operand predicate and
14892 SWI248 mode for operand 0.
14893 (AND with -65281 splitter): Use QIreg_operand predicate and SWI248
14894 mode for operand 0.
14895 (SETCC + MOVZBL peepholes): Update for renamed any_QIreg_operand.
14896
14897 2015-04-13 Gerald Pfeifer <gerald@pfeifer.com>
14898
14899 * doc/plugins.texi: Rewrite first introductory paragraph.
14900
14901 2015-04-12 Jan Hubicka <hubicka@ucw.cz>
14902
14903 * tree-vrp.c (nonnull_arg_p): THIS pointers and references are non-zero.
14904 (gimple_stmt_nonzero_warnv_p): Reference return values are non-zero.
14905
14906 2015-04-12 Jan Hubicka <hubicka@ucw.cz>
14907
14908 * ipa-profie.c (ipa_profile): Check number of parameters
14909 and possible polymorphic call targets before
14910 devirtualizing.
14911
14912 2015-04-13 Uros Bizjak <ubizjak@gmail.com>
14913
14914 * config/i386/i386.md (*bmi2_umul<mode><dwi>3_1): Merge from
14915 *bmi2_umulsidi3_1 and *bmi2_umulditi3_1 using DWIH mode iterator.
14916
14917 2015-04-13 Richard Biener <rguenther@suse.de>
14918
14919 PR tree-optimization/65204
14920 * tree-ssa-ccp.c (evaluate_stmt): Always evaluate address
14921 takens for bit-CCP.
14922
14923 2015-04-13 Richard Biener <rguenther@suse.de>
14924
14925 PR target/65660
14926 * config/i386/i386.c (bdver1_cost): Double cond_taken_branch_cost
14927 and cond_not_taken_branch_cost to 4 and 2.
14928 (bdver2_cost): Likewise.
14929 (bdver3_cost): Likewise.
14930 (bdver4_cost): Likewise.
14931
14932 2015-04-12 Jan Hubicka <hubicka@ucw.cz>
14933
14934 * hash-table.h (hash_table constructor): Add mem stats.
14935 (alloc_entries): Likewise.
14936
14937 2015-04-12 Jan Hubicka <hubicka@ucw.cz>
14938
14939 * ipa-cp.c (ipcp_driver): Relase prev_edge.
14940 * passes.c (execute_one_pass): Only add transform if pass has one.
14941
14942 2015-04-12 Joseph Myers <joseph@codesourcery.com>
14943
14944 * config/i386/i386.c (ix86_option_override_internal): Don't set
14945 -fprefetch-loop-arrays if optimizing for size.
14946
14947 2015-04-12 Jan Hubicka <hubicka@ucw.cz>
14948 Gerald Pfeifer <gerald@pfeifer.com>
14949
14950 * doc/contrib.texi (Contributors): Add Martin Jambor and
14951 Michael Matz.
14952
14953 2015-04-12 Jakub Jelinek <jakub@redhat.com>
14954
14955 * BASE-VER: Set to 6.0.0.
14956
14957 PR tree-optimization/65747
14958 * ipa-icf-gimple.c (func_checker::compare_operand): Use compare_operand
14959 rather than compare_ssa_name for OBJ_TYPE_REF_OBJECT.
14960
14961 2015-04-12 Gerald Pfeifer <gerald@pfeifer.com>
14962
14963 * doc/invoke.texi (-Wmemset-transposed-args): Break a long
14964 sentence. Improve grammar.
14965
14966 2015-04-12 Gerald Pfeifer <gerald@pfeifer.com>
14967
14968 * doc/contrib.texi (Contributors): Add Maxim Kuvyrkov.
14969
14970 2015-04-11 Jan Hubicka <hubicka@ucw.cz>
14971
14972 PR ipa/65743
14973 * ipa-inline-transform.c (speculation_removed): Remove static var.
14974 (check_speculations): New function.
14975 (clone_inlined_nodes): Do not check spculations.
14976 (inline_call): Call check_speculations.
14977 * ipa-prop.c (ipa_make_edge_direct_to_target): Do not
14978 consider non-invariants.
14979
14980 2015-04-11 Jan Hubicka <hubicka@ucw.cz>
14981 Martin Liska <mliska@suse.cz>
14982
14983 PR ipa/65722
14984 * ipa-icf.c (sem_item::compare_cgraph_references): function and
14985 variable can not match.
14986 (sem_item::update_hash_by_addr_refs): Fix handling of virtual tables.
14987 (sem_variable::equals_wpa): Fix checking of DECL_FINAL_P patch.
14988
14989 2015-04-11 Jakub Jelinek <jakub@redhat.com>
14990
14991 PR tree-optimization/65735
14992 * tree-ssa-threadedge.c (fsm_find_control_statement_thread_paths):
14993 Remove visited_phis argument, add visited_bbs, avoid recursing into the
14994 same bb rather than just into the same phi node.
14995 (thread_through_normal_block): Adjust caller.
14996
14997 2015-04-11 Gerald Pfeifer <gerald@pfeifer.com>
14998
14999 * doc/contrib.texi (Contributors): Add Ira Rosen.
15000
15001 2015-04-11 Benno Schulenberg <bensberg@justemail.net>
15002
15003 * gcov.c (find_source): Fix miswording in error message.
15004 * config/i386/i386.c (ix86_handle_cconv_attribute): Likewise.
15005 (ix86_expand_sse_comi_round): Fix typo in error message.
15006
15007 2015-04-11 Gerald Pfeifer <gerald@pfeifer.com>
15008
15009 * doc/contrib.texi (Contributors): Add Laurynas Biveinis.
15010
15011 2015-04-10 Gerald Pfeifer <gerald@pfeifer.com>
15012
15013 * doc/contrib.texi (Contributors): Update Joe Buck's entry.
15014
15015 2015-04-10 Vladimir Makarov <vmakarov@redhat.com>
15016
15017 PR target/65710
15018 * lra-assigns.c (spill_for): Update smallest_bad_spills_num.
15019 Print bad_spills_num and insn_pseudos_num.
15020
15021 2015-04-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15022
15023 PR target/65694
15024 * config/arm/arm.c (arm_canonicalize_comparison): Use ARM_SIGN_EXTEND
15025 when creating +1 values for SImode.
15026
15027 2015-04-10 Vladimir Makarov <vmakarov@redhat.com>
15028
15029 PR target/65729
15030 * lra-constraints.c (prohibited_class_reg_set_mode_p): Comment the
15031 assert.
15032
15033 2015-04-10 Jakub Jelinek <jakub@redhat.com>
15034 Iain Sandoe <iain@codesourcery.com>
15035
15036 PR target/65351
15037 * configure: Regenerate.
15038
15039 2015-04-09 Kirill Yukhin <kirill.yukhin@intel.com>
15040
15041 PR target/65671
15042 * config/i386/sse.md: Generate vextract32x4 if AVX-512DQ is disabled.
15043
15044 2015-04-09 Gerald Pfeifer <gerald@pfeifer.com>
15045
15046 * doc/contrib.texi (Contributors): Add John Marino.
15047
15048 2015-04-09 Jakub Jelinek <jakub@redhat.com>
15049
15050 PR tree-optimization/65709
15051 * ubsan.c (instrument_mem_ref): Use TREE_TYPE (base) instead of
15052 TREE_TYPE (TREE_TYPE (t)).
15053
15054 2015-04-09 Vladimir Makarov <vmakarov@redhat.com>
15055
15056 PR target/65710
15057 * lra-int.h (lra_bad_spill_regno_start): New.
15058 * lra.c (lra_bad_spill_regno_start): New.
15059 (lra): Set up lra_bad_spill_regno_start. Set up
15060 lra_constraint_new_regno_start unconditionally.
15061 * lra-assigns.c (spill_for): Use lra_bad_spill_regno_start for
15062 spill preferences.
15063
15064 2015-04-09 Marek Polacek <polacek@redhat.com>
15065 Jakub Jelinek <jakub@redhat.com>
15066
15067 PR middle-end/65554
15068 * gimple-fold.c (gimple_fold_builtin_memory_op): Update comment.
15069 (fold_ctor_reference): Use STRIP_USELESS_TYPE_CONVERSION instead
15070 of STRIP_NOPS.
15071
15072 2015-04-09 Segher Boessenkool <segher@kernel.crashing.org>
15073
15074 PR rtl-optimization/65693
15075 * combine.c (is_parallel_of_n_reg_sets): Move outside of
15076 #ifndef HAVE_cc0.
15077
15078 2015-04-09 Georg-Johann Lay <avr@gjlay.de>
15079
15080 PR target/65296
15081 * config/avr/driver-avr.c (avr_devicespecs_file): Don't specify a
15082 device specs file if "device-specs%s" didn't resolve to a path.
15083
15084 2015-04-09 Kirill Yukhin <kirill.yukhin@intel.com>
15085
15086 PR target/65676
15087 * config/i386/i386.c (fixup_modeless_constant): New.
15088 (ix86_expand_args_builtin): Fixup modeless constant operand.
15089 (ix86_expand_round_builtin): Ditto.
15090 (ix86_expand_special_args_builtin): Ditto.
15091 (ix86_expand_builtin): Ditto.
15092
15093 2015-04-09 Jakub Jelinek <jakub@redhat.com>
15094
15095 PR target/65693
15096 * config/i386/i386.md (*udivmod<mode>4_pow2): Allow
15097 any pow2 integer in between 2 and 0x80000000U inclusive.
15098
15099 2015-04-08 Segher Boessenkool <segher@kernel.crashing.org>
15100
15101 PR rtl-optimization/65693
15102 * combine.c (is_parallel_of_n_reg_sets): Change first argument
15103 from an rtx_insn * to an rtx.
15104 (try_combine): Adjust both callers. Use it once more.
15105
15106 2015-04-08 Ilya Enkovich <ilya.enkovich@intel.com>
15107
15108 * tree-chkp.c (chkp_find_const_bounds_var): Remove.
15109 (chkp_make_static_const_bounds): Search existing
15110 symbol by assembler name. Use make_decl_one_only.
15111 (chkp_get_zero_bounds_var): Remove node search which
15112 is now performed in chkp_make_static_const_bounds.
15113 (chkp_get_none_bounds_var): Likewise.
15114
15115 2015-04-08 Michael Witten <mfwitten@gmail.com>
15116
15117 * doc/extend.texi (Attribute Syntax): Add a trailing semicolon
15118 to an example.
15119
15120 2015-04-08 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
15121
15122 * tree.h (CONVERT_EXPR_P): Commentary typo fix.
15123
15124 2015-04-08 Gerald Pfeifer <gerald@pfeifer.com>
15125
15126 * doc/extend.texi (__sync Builtins): Fix grammar.
15127
15128 2015-04-08 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
15129
15130 * doc/cfg.texi (GIMPLE statement iterators): Fix typo.
15131
15132 2015-04-08 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
15133
15134 * varasm.c (emit_local): Move definition of align.
15135
15136 2015-04-08 Julian Brown <julian@codesourcery.com>
15137
15138 * config/nvptx/mkoffload.c (process): Support variable mapping.
15139
15140 2015-03-27 Trevor Saunders <tbsaunde@tbsaunde.org>
15141
15142 * config/alpha/alpha.c (alpha_use_linkage): Change type of slot to
15143 alpha_links **.
15144 (alpha_write_one_linkage): Correct typo.
15145
15146 2015-04-08 Ilya Enkovich <ilya.enkovich@intel.com>
15147
15148 * ipa-comdats.c (propagate_comdat_group): Walk through thunks.
15149
15150 2015-04-08 Gerald Pfeifer <gerald@pfeifer.com>
15151
15152 * doc/install.texi (bootstrap-lto-noplugin): Rewrite.
15153
15154 2015-04-08 Ilya Enkovich <ilya.enkovich@intel.com>
15155
15156 * tree-chkp.h (chkp_insert_retbnd_call): New.
15157 * tree-chkp.c (chkp_insert_retbnd_call): New.
15158 * ipa-split.c (insert_bndret_call_after): Remove.
15159 (split_function): Use chkp_insert_retbnd_call.
15160 * cgraphunit.c (cgraph_node::expand_thunk): Build returned
15161 bounds for instrumented functions.
15162
15163 2015-04-07 Jan Hubicka <hubicka@ucw.cz>
15164
15165 PR ipa/65540
15166 * calls.c (initialize_argument_information): When producing tail
15167 call also turn SSA_NAMES passed by references to original PARM_DECLs
15168
15169 2015-04-07 Vladimir Makarov <vmakarov@redhat.com>
15170
15171 PR target/65648
15172 * lra-remat.c (do_remat): Process input and non-input insn
15173 registers separately.
15174
15175 2015-04-07 Jakub Jelinek <jakub@redhat.com>
15176
15177 PR debug/65678
15178 * valtrack.c (debug_lowpart_subreg): New function.
15179 (dead_debug_insert_temp): Use it.
15180
15181 PR middle-end/65680
15182 * expr.c (get_inner_reference): Handle bit_offset that doesn't fit
15183 into signed HOST_WIDE_INT the same as negative bit_offset.
15184
15185 2015-04-07 Ilya Enkovich <ilya.enkovich@intel.com>
15186
15187 * ipa-comdats.c (ipa_comdats): Visit all thunks
15188 to set proper comdat group.
15189
15190 2015-04-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15191
15192 PR target/65489
15193 * config/arm/arm.c (arm_legitimate_constant_p_1): Remove restriction
15194 on constants for NEON VSTRUCT modes.
15195
15196 2015-04-07 Jakub Jelinek <jakub@redhat.com>
15197 Iain Sandoe <iain@codesourcery.com>
15198
15199 PR target/65351
15200 * configure: Regenerate.
15201
15202 2015-04-06 Michael Meissner <meissner@linux.vnet.ibm.com>
15203
15204 PR target/65614
15205 * config/rs6000/rs6000.c (struct processor_costs): Add cost field
15206 for SF->DF conversions to make FLOAT_EXTEND more expensive, so
15207 that LFD is used to load double constants instead of LFS. Add
15208 defaults for all costs structures. Add comments for missing
15209 initialization fields.
15210 (size32_cost): Likewise.
15211 (size64_cost): Likewise.
15212 (rs64a_cost): Likewise.
15213 (mpccore_cost): Likewise.
15214 (ppc403_cost): Likewise.
15215 (ppc405_cost): Likewise.
15216 (ppc440_cost): Likewise.
15217 (ppc476_cost): Likewise.
15218 (ppc601_cost): Likewise.
15219 (ppc603_cost): Likewise.
15220 (ppc604_cost): Likewise.
15221 (ppc604e_cost): Likewise.
15222 (ppc620_cost): Likewise.
15223 (ppc630_cost): Likewise.
15224 (ppccell_cost): Likewise.
15225 (ppc750_cost): Likewise.
15226 (ppc7450_cost): Likewise.
15227 (ppc8540_cost): Likewise.
15228 (ppce300c2c3_cost): Likewise.
15229 (ppce500mc_cost): Likewise.
15230 (ppce500mc64_cost): Likewise.
15231 (ppce5500_cost): Likewise.
15232 (ppce6500_cost): Likewise.
15233 (titan_cost): Likewise.
15234 (power4_cost): Likewise.
15235 (power6_cost): Likewise.
15236 (power7_cost): Likewise.
15237 (power8_cost): Likewise.
15238 (ppca2_cost): Likewise.
15239 (rs6000_rtx_costs): Make FLOAT_EXTEND use SFDF_convert field.
15240
15241 * config/rs6000/rs6000.md (extendsfdf2_fpr): Generate XSCPSGNDP
15242 instead of XXLOR to copy SFmode to clear out dirty bits created
15243 when SFmode denormals are generated.
15244 (mov<mode>_hardfloat, FMOVE32 case): Likewise.
15245 (truncdfsf2_fpr): Add support for ISA 2.07 XSRSP instruction.
15246
15247 2015-04-06 Evandro Menezes <e.menezes@samsung.com>
15248
15249 * doc/invoke.texi (AARCH64/mtune): Add exynos-m1 as an option.
15250 * config/aarch64/aarch64-cores.def (exynos-m1): New core.
15251 * config/aarch64/aarch64-tune.md: Regenerate.
15252
15253 2015-04-06 Evandro Menezes <e.menezes@samsung.com>
15254
15255 * doc/invoke.texi (ARM/mtune): Add "exynos-m1" as an option.
15256 * config/arm/arm.c (arm_issue_rate): Specify "3" for "exynosm1".
15257 * config/arm/arm-cores.def (exynos-m1): New core.
15258 * config/arm/arm-tune.md: Regenerate.
15259 * config/arm/arm-tables.opt: Add entry for "exynos-m1".
15260 * config/arm/bpabi.h: Likewise.
15261
15262 2015-04-06 Ilya Enkovich <ilya.enkovich@intel.com>
15263
15264 * ipa-cp (set_single_call_flag): Remove too
15265 restrictive assert.
15266
15267 2015-04-06 Ilya Verbin <ilya.verbin@intel.com>
15268
15269 * config/i386/intelmic-mkoffload.c (generate_host_descr_file): Call
15270 GOMP_offload_unregister from the destructor.
15271
15272 2015-04-06 Ilya Enkovich <ilya.enkovich@intel.com>
15273
15274 * ipa-chkp.c (chkp_maybe_create_clone): Reset cdtor
15275 flags for instrumentation thunk.
15276 (chkp_produce_thunks): Likewise.
15277
15278 2015-04-05 Martin Liska <mliska@suse.cz>
15279
15280 PR ipa/65665
15281 * ipa-icf.c (sem_function::equals_wpa): Verify that IPA CP
15282 has computed data structure.
15283 (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
15284
15285 2015-04-04 Jan Hubicka <hubicka@ucw.cz>
15286
15287 * invoke.texi (inline-unit-growth): Increase growth to 20%
15288 * params.def (PARAM_INLINE_UNIT_GROWTH): Likewise.
15289
15290 2015-04-04 Vladimir Makarov <vmakarov@redhat.com>
15291
15292 PR target/65647
15293 * lra-int.h (LRA_MAX_REMATERIALIZATION_PASSES): New. Add its
15294 value checking.
15295 (lra_rematerialization_iter): New.
15296 * lra.c (lra): Initialize lra_rematerialization_iter.
15297 Stop updating lra_constraint_new_regno_start after switching of
15298 inheritance and rematerialization.
15299 * lra-remat.c (lra_rematerialization_iter): New.
15300 (lra_remat): Add printing pass iteration. Do rematerialization
15301 only first LRA_MAX_REMATERIALIZATION_PASSES iterations.
15302
15303 2015-04-04 Richard Biener <rguenther@suse.de>
15304
15305 PR tree-optimization/64909
15306 PR tree-optimization/65660
15307 * tree-vectorizer.h (vect_get_known_peeling_cost): Adjust
15308 to take a cost vector for scalar iteration cost.
15309 (vect_get_single_scalar_iteration_cost): Likewise.
15310 * tree-vect-loop.c (vect_get_single_scalar_iteration_cost):
15311 Compute the scalar iteration cost into a cost vector.
15312 (vect_get_known_peeling_cost): Use the scalar cost vector to
15313 account for the cost of the peeled iterations.
15314 (vect_estimate_min_profitable_iters): Likewise.
15315 * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
15316 Likewise.
15317
15318 2015-04-04 Alan Modra <amodra@gmail.com>
15319
15320 PR target/65576
15321 PR target/65240
15322 * config/rs6000/predicates.md (zero_reg_mem_operand): Exclude
15323 0.0 constant unless TARGET_VSX.
15324 * config/rs6000/rs6000.md (extenddftf2_internal): Remove last
15325 alternative.
15326
15327 2015-04-03 Jan Hubicka <hubicka@ucw.cz>
15328
15329 PR ipa/65654
15330 * ipa-inline-transform.c (inline_call): Skip sanity check to work
15331 around the ICE
15332
15333 2015-04-03 Jan Hubicka <hubicka@ucw.cz>
15334
15335 PR ipa/65655
15336 * ipa-inline-analysis.c (edge_set_predicate): Do not redirect
15337 speculative indirect edges to avoid ordering issue.
15338
15339 2015-04-03 Jan Hubicka <hubicka@ucw.cz>
15340
15341 PR ipa/65076
15342 * ipa-inline.c (edge_badness): Add combined size to the denominator.
15343
15344 2015-04-03 Jakub Jelinek <jakub@redhat.com>
15345
15346 * omp-low.c (scan_omp_parallel, scan_omp_task, scan_omp_target): Set
15347 TYPE_ARTIFICIAL on the .omp_data* types.
15348
15349 2015-04-02 Ilya Enkovich <ilya.enkovich@intel.com>
15350
15351 * cgraphunit.c (cgraph_node::expand_thunk): Don't expand
15352 instrumentation thunks.
15353
15354 2015-04-02 Ilya Enkovich <ilya.enkovich@intel.com>
15355
15356 * config/i386/i386.c (ix86_expand_call): Avoid nested
15357 PARALLEL in returned call value.
15358
15359 2015-04-02 Ilya Enkovich <ilya.enkovich@intel.com>
15360
15361 * lto-cgraph.c (input_cgraph_1): Always link instrumented
15362 assembler name with original one.
15363
15364 2015-04-02 Uros Bizjak <ubizjak@gmail.com>
15365
15366 * config/i386/i386.c (ix86_register_priority): Use AX_REG.
15367
15368 2015-04-02 Uros Bizjak <ubizjak@gmail.com>
15369
15370 Revert parts of r216820.
15371 * config/i386/i386.md (movqi_internal): Correct type calculation
15372 for alternatives 3 and 5.
15373
15374 2015-04-02 Jakub Jelinek <jakub@redhat.com>
15375
15376 PR preprocessor/61977
15377 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Don't
15378 predefine __vector/__bool/__pixel macros nor context sensitive
15379 macros for CLK_ASM.
15380 * config/spu/spu-c.c (spu_cpu_cpp_builtins): Similarly.
15381
15382 2015-04-02 John David Anglin <danglin@gcc.gnu.org>
15383
15384 * config/pa/pa.c (pa_output_move_double): Directly handle register
15385 indexed memory operand. Simplify handling of scaled register indexed
15386 memory operands.
15387
15388 2015-04-02 Ilya Enkovich <ilya.enkovich@intel.com>
15389
15390 PR driver/65444
15391 * config/i386/linux-common.h (MPX_SPEC): New.
15392 (CHKP_SPEC): Add MPX_SPEC.
15393 * doc/invoke.texi (-fcheck-pointer-boudns): Document
15394 possible issues with '-z bndplt' support in linker.
15395
15396 2015-04-02 Uros Bizjak <ubizjak@gmail.com>
15397
15398 * config/i386/sync.md (UNSPEC_FILD_ATOMIC, UNSPEC_FIST_ATOMIC): New.
15399 (loaddi_via_fpu): Use UNSPEC_FILD_ATOMIC.
15400 (storedi_via_fpu): Use UNSPEC_FIST_ATOMIC.
15401 * reg-stack.c (get_true_reg): Change UNSPEC_LDA to UNSPEC_FILD_ATOMIC.
15402 (subst_stack_regs_pat): Change UNSPEC_STA to UNSPEC_FIST_ATOMIC.
15403
15404 2015-04-01 Uros Bizjak <ubizjak@gmail.com>
15405
15406 * config/i386/sync.md (UNSPEC_MOVA): Remove.
15407 (atomic_load<mode>): Change operand 0 predicate to
15408 nonimmediate_operand and fix up the destination when needed.
15409 Use UNSPEC_LDA.
15410 (atomic_loaddi_fpu): Use UNSPEC_LDA.
15411 (atomic_store<mode>): Change operand 1 predicate to
15412 nonimmendate_operand and move the source to register when needed.
15413 Use UNSPEC_STA.
15414 (atomic_store<mode>_1): Use UNSPEC_STA.
15415 (atomic_storedi_fpu): Change operand 1 to nonimmediate_operand.
15416 Fix moves from memory operand. Use UNSPEC_STA.
15417
15418 2015-04-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
15419
15420 * expmed.c (strict_volatile_bitfield_p): Check that the access will
15421 not cross a MODESIZE boundary.
15422 (store_bit_field, extract_bit_field): Added assertions in the
15423 strict volatile bitfields code path.
15424
15425 2015-04-01 Max Ostapenko <m.ostapenko@partner.samsung.com>
15426
15427 PR target/65624
15428 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
15429 Increase args array size by one to avoid buffer overflow.
15430
15431 2015-03-31 Jan Hubicka <hubicka@ucw.cz>
15432
15433 * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
15434 split_part.
15435 * ipa-inline.c (edge_badness): Add wrapper penalty.
15436 (sum_callers): Move up.
15437 (inline_small_functions): Set single_caller.
15438 * ipa-inline.h (inline_summary): Add single_caller.
15439 * ipa-split.c (split_function): Set split_part.
15440 (cgraph_node::create_clone): Do not shadow decl; copy split_part.
15441 * cgraph.h (cgraph_node): Add split_part.
15442
15443 2015-03-31 Uros Bizjak <ubizjak@gmail.com>
15444
15445 PR target/58945
15446 * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
15447 Do not split operands 0 and operands 2 to halfmode.
15448 (atomic_compare_and_swap<mode>): Update for
15449 atomic_compare_and_swap<dwi>_doubleword changes.
15450
15451 2015-03-31 Jan Hubicka <hubicka@ucw.cz>
15452
15453 * tree.c (need_assembler_name_p): Artificial types have no ODR names.
15454 * ipa-devirt.c (warn_odr): Do not try to apply ODR cache when
15455 no caching is done.
15456
15457 2015-03-31 Martin Liska <mliska@suse.cz>
15458
15459 PR ipa/65557
15460 * ipa-icf.c (sem_function::equals_wpa): Check if IPA CP
15461 has already filled up function summary.
15462 (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
15463
15464 2015-03-31 Richard Biener <rguenther@suse.de>
15465
15466 * tree-sra.c (create_access_replacement): Drop under-/over-alignment
15467 of types.
15468
15469 2015-03-31 Dominik Vogt <vogt@linux.vnet.ibm.com>
15470
15471 * config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
15472 nested functions.
15473 (s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw.
15474 (s390_asm_output_function_label): Adapt to new signature of
15475 s390_function_num_hotpatch_hw
15476 Optimise the code generating assembler output.
15477 Add comments to assembler file.
15478
15479 2015-03-31 Richard Biener <rguenther@suse.de>
15480
15481 PR middle-end/65626
15482 * tree-cfgcleanup.c (fixup_noreturn_call): Only split the block
15483 of the noreturn call so it is last and cleanup_control_flow_bb
15484 can do the CFG part.
15485
15486 2015-03-31 Ilya Enkovich <ilya.enkovich@intel.com>
15487
15488 PR target/65531
15489 * ipa-chkp.c (chkp_maybe_create_clone): Don't set
15490 same_comdat_group for external symbols.
15491 * symtab.c (symtab_node::verify_symtab_nodes): Avoid
15492 infinite same_comdat_group traversal loop.
15493
15494 2015-03-31 Jakub Jelinek <jakub@redhat.com>
15495
15496 PR plugins/61176
15497 * Makefile.in (install-plugin): Add all gcc/*.{h,def} files
15498 automatically to $headers.
15499
15500 2015-03-30 Jakub Jelinek <jakub@redhat.com>
15501
15502 PR ipa/65610
15503 * ipa-utils.h (inlined_polymorphic_ctor_dtor_block_p): Declare.
15504 * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p): New
15505 function.
15506 (decl_maybe_in_construction_p, noncall_stmt_may_be_vtbl_ptr_store):
15507 Use it.
15508 * ipa-prop.c (param_type_may_change_p): Likewise.
15509 * tree-ssa-live.c: Include ipa-utils.h and its dependencies.
15510 (remove_unused_scope_block_p): Add in_ctor_dtor_block
15511 argument. Before inlining, preserve
15512 inlined_polymorphic_ctor_dtor_block_p blocks and the outermost block
15513 with FUNCTION_DECL BLOCK_ABSTRACT_ORIGIN inside of them. Adjust
15514 recursive calls.
15515 (remove_unused_locals): Adjust remove_unused_scope_block_p caller.
15516
15517 2015-03-27 Jan Hubicka <hubicka@ucw.cz>
15518
15519 PR ipa/65076
15520 * ipa-inline.c (edge_badness): Base denominator on callee's
15521 grwoth squared.
15522
15523 2015-03-27 Martin Jambor <mjambor@suse.cz>
15524
15525 PR ipa/65478
15526 * params.def (PARAM_IPA_CP_RECURSION_PENALTY) : New.
15527 (PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise.
15528 * ipa-prop.h (ipa_node_params): New flags node_within_scc and
15529 node_calling_single_call.
15530 * ipa-cp.c (count_callers): New function.
15531 (set_single_call_flag): Likewise.
15532 (initialize_node_lattices): Count callers and set single_flag_call if
15533 necessary.
15534 (incorporate_penalties): New function.
15535 (good_cloning_opportunity_p): Use it, dump new flags.
15536 (propagate_constants_topo): Set node_within_scc flag if appropriate.
15537 * doc/invoke.texi (ipa-cp-recursion-penalty,
15538 ipa-cp-single-call-pentalty): Document.
15539
15540 2015-03-27 Jan Hubicka <hubicka@ucw.cz>
15541
15542 PR ipa/65588
15543 * symtab.c (symtab_node::get_partitioning_class): Register vars
15544 are duplicated.
15545 * varpool.c (symbol_table::output_variables) Do not assemble unefined
15546 decls for non-symbols.
15547
15548 2015-03-27 H.J. Lu <hongjiu.lu@intel.com>
15549
15550 PR target/65248
15551 * output.h (default_binds_local_p_2): New.
15552 * varasm.c (default_binds_local_p_2): Renamed to ...
15553 (default_binds_local_p_3): This. Don't return true on protected
15554 data symbol if protected data may be external.
15555 (default_binds_local_p): Use default_binds_local_p_3.
15556 (default_binds_local_p_1): Likewise.
15557 (default_binds_local_p_2): New.
15558 * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Set to
15559 default_binds_local_p_2 if TARGET_MACHO is undefined.
15560
15561 2015-03-27 Jakub Jelinek <jakub@redhat.com>
15562
15563 PR target/65593
15564 * config/i386/i386.c (legitimize_pic_address): If base
15565 is SYMBOL_REF or LABEL_REF using %rip addressing, force
15566 it to reg to avoid PLUS of SYMBOL_REF/LABEL_REF and register.
15567
15568 2015-03-27 Jan Hubicka <hubicka@ucw.cz>
15569
15570 PR target/65531
15571 * symtab.c (symtab_node::verify_symtab_nodes): Fix verification of
15572 comdat groups.
15573
15574 2015-03-27 Jan Hubicka <hubicka@ucw.cz>
15575
15576 PR ipa/65600
15577 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Fix the case
15578 of optimized out indirect call.
15579 (redirect_to_unreachable): Always build symbol table node for
15580 BUILT_IN_UNREACHABLE
15581
15582 2015-03-27 Vladimir Makarov <vmakarov@redhat.com>
15583
15584 PR target/65407
15585 * ira-costs.c (record_reg_classes): Process all constraint string
15586 containing 0-9.
15587
15588 2015-03-27 Bernd Schmidt <bernds@codesourcery.com>
15589
15590 * config/c6x/c6x.md (movmisalign<mode>): Use MEM_P, not
15591 memory_operand.
15592
15593 PR target/65052
15594 * config/c6x/constraints.md (S3): New constraint.
15595 * config/c6x/c6x.md (real_jump): Use it.
15596
15597 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
15598
15599 PR middle-end/65595
15600 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Only
15601 do redirection if the call is not optimized out.
15602
15603 2015-03-27 Ilya Enkovich <ilya.enkovich@intel.com>
15604
15605 PR target/65495
15606 * c-family/c.opt (fcheck-pointer-bounds): List supported languages.
15607 (fchkp-check-incomplete-type): Add LTO.
15608 (fchkp-zero-input-bounds-for-main): Likewise.
15609 (fchkp-first-field-has-own-bounds): Likewise.
15610 (fchkp-narrow-bounds): Likewise.
15611 (fchkp-narrow-to-innermost-array): Likewise.
15612 (fchkp-use-static-bounds): Likewise.
15613 (fchkp-use-static-const-bounds): Likewise.
15614 (fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
15615
15616 2015-03-27 Marek Polacek <polacek@redhat.com>
15617
15618 * gimple-iterator.h (gsi_prev_nondebug): Fix typo.
15619
15620 2015-03-27 Marek Polacek <polacek@redhat.com>
15621
15622 PR sanitizer/65583
15623 * ubsan.c (ubsan_create_edge): New function.
15624 (instrument_bool_enum_load): Call it.
15625 (instrument_nonnull_arg): Likewise.
15626 (instrument_nonnull_return): Likewise.
15627 (instrument_object_size): Likewise.
15628
15629 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
15630
15631 * lto-streamer.h (class lto_location_cache): Turn loc_cache into
15632 auto_vec.
15633
15634 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
15635
15636 PR lto/65536
15637 * lto-streamer.h (class lto_location_cache): New.
15638 (struct data_in): Add location_cache.
15639 (lto_input_location): Update prototype.
15640 (stream_input_location_now): New.
15641 * streamer-hooks.h (struct streamer_hooks): Make input_location to take
15642 pointer to location.
15643 (stream_input_location): Update.
15644 * ipa-devirt.c: Include streamer-hooks.h and lto-streamer.h
15645 (warn_odr): Apply location cache before warning.
15646 (lto_input_location): Update prototype.
15647 * gimple-streamer-in.c (input_phi, input_gimple_stmt):
15648 Use stream_input_location_now.
15649 * lto-streamer-in.c (lto_location_cache::current_cache): New static
15650 variable.
15651 (lto_location_cache::cmp_loc): New function.
15652 (lto_location_cache::apply_location_cache): New function.
15653 (lto_location_cache::accept_location_cache): New function.
15654 (lto_location_cache::revert_location_cache): New function.
15655 (lto_location_cache::input_location): New function.
15656 (lto_input_location): Do location caching.
15657 (stream_input_location_now): New function.
15658 (input_eh_region, input_struct_function_base): Use
15659 stream_input_location_now.
15660 (lto_data_in_create): use new.
15661 (lto_data_in_delete): Use delete.
15662 * tree-streamer-in.c (unpack_ts_block_value_fields,
15663 unpack_ts_omp_clause_value_fields, streamer_read_tree_bitfields,
15664 lto_input_ts_exp_tree_pointers): Update for cached location api.
15665
15666 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
15667
15668 PR ipa/65076
15669 * passes.def: Add pass_nothrow.
15670 * ipa-pure-const.c: (pass_data_nothrow): New.
15671 (pass_nothrow): New.
15672 (pass_nothrow::execute): New.
15673 (make_pass_nothrow): New.
15674 * tree-pass.h (make_pass_nothrow): Declare.
15675
15676 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
15677
15678 * ipa-inline-analysis.c (redirect_to_unreachable): Be prepared for
15679 edge to change by speculation resolution or redirection.
15680 (edge_set_predicate): Likewise.
15681 (inline_summary_t::duplicate): Likewise.
15682 (remap_edge_summaries): Likewise.
15683
15684 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
15685
15686 * ipa-inline.c (check_maybe_up, check_maybe_down, check_match):
15687 New macros.
15688 (can_inline_edge_p): Relax option matching for always inline functions.
15689
15690 2015-03-26 Uros Bizjak <ubizjak@gmail.com>
15691
15692 PR target/65561
15693 * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm):
15694 Check operand 4 and operand 0 for equality.
15695 (avx512f_vextract<shuffletype>32x4_1_maskm):
15696 Check operand 6 and operand 0 for equality.
15697 (vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
15698 for equality.
15699 (vec_extract_hi_<mode>_maskm): Ditto.
15700
15701 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
15702
15703 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not bring
15704 dead calls back to live.
15705 (cgraph_edge::verify_count_and_frequency): Move cgraph/cfg frequency
15706 cross check to ...
15707 (cgraph_node::verify_node): ... here; verify only callee edges,
15708 not caller.
15709 * cif-code.def (CILK_SPAWN): New code.
15710
15711 2015-03-26 Jan Hubicka <hubicka@ucw.cz>
15712
15713 * ipa-inline-analysis.c (redirect_to_unreachable): New function.
15714 (edge_set_predicate): Use it to mark unreachable edges.
15715 (inline_summary_t::duplicate): Remove unnecesary code.
15716 (remap_edge_summaries): Likewise.
15717 (dump_inline_summary): Report contains_cilk_spawn.
15718 (compute_inline_parameters): Compute contains_cilk_spawn.
15719 (inline_read_section, inline_write_summary): Stream
15720 contains_cilk_spawn.
15721 * ipa-inline.c (can_inline_edge_p): Do not touch
15722 DECL_STRUCT_FUNCTION that may not be available;
15723 use CIF_CILK_SPAWN for cilk; fix optimization attribute checks;
15724 remove check for callee_fun->can_throw_non_call_exceptions and
15725 replace it by optimization attribute check; check for flag_exceptions.
15726 * ipa-inline-transform.c (inline_call): Maintain
15727 DECL_FUNCTION_PERSONALITY
15728 * ipa-inline.h (inline_summary): Add contains_cilk_spawn.
15729
15730 2015-03-26 Jakub Jelinek <jakub@redhat.com>
15731
15732 PR tree-optimization/65551
15733 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use
15734 TYPE_PRECISION only for INTEGRAL_TYPE_P types.
15735
15736 2015-03-26 Richard Biener <rguenther@suse.de>
15737
15738 PR middle-end/65555
15739 * tree-cfg.c (verify_gimple_call): Do not require a call to
15740 have no LHS if it wasn't recognized as control altering yet.
15741
15742 2015-03-26 Jakub Jelinek <jakub@redhat.com>
15743
15744 PR tree-optimization/64715
15745 * passes.def: Add another instance of pass_object_sizes before ccp1.
15746 * tree-object-size.c (pass_object_sizes::execute): In
15747 first_pass_instance, only handle __bos (, 1) and __bos (, 3)
15748 calls, and keep the call in the IL, as {MIN,MAX}_EXPR of the
15749 __bos result and the computed constant. Remove redundant
15750 checks, obsoleted by gimple_call_builtin_p test.
15751
15752 * var-tracking.c (variable_tracking_main_1): Don't track
15753 variables for targetm.no_register_allocation targets.
15754
15755 2015-03-26 Oleg Endo <olegendo@gcc.gnu.org>
15756
15757 * config/sh/t-linux (DEFAULT_ENDIAN, MULTILIB_EXCEPTIONS): Remove.
15758 * config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.
15759
15760 2015-03-25 Michael Meissner <meissner@linux.vnet.ibm.com>
15761
15762 PR target/65569
15763 * config/rs6000/rs6000.md (extenddftf2_fprs): On VSX systems use
15764 XXLXOR to create 0.0. On pre-VSX systems make sure the constant
15765 0.0 is correctly setup.
15766 (extenddftf2_internal): Likewise.
15767
15768 2015-03-25 Sebastian Pop <s.pop@samsung.com>
15769
15770 PR tree-optimization/65177
15771 * tree-ssa-threadupdate.c (verify_seme): Renamed verify_jump_thread.
15772 (bb_in_bbs): New.
15773 (duplicate_seme_region): Renamed duplicate_thread_path. Redirect all
15774 edges not adjacent on the path to the original code.
15775
15776 2015-03-25 Uros Bizjak <ubizjak@gmail.com>
15777
15778 PR bootstrap/65537
15779 * doc/install.texi (Building a native compiler): Document new
15780 bootstrap-lto-noplugin configuration. Mention that bootstrap-lto
15781 configuration assumes that the host supports the linker plugin.
15782
15783 2015-03-25 Ilya Enkovich <ilya.enkovich@intel.com>
15784
15785 PR target/65508
15786 * tree-chkp.c (chkp_add_bounds_to_call_stmt): Set static
15787 chain for generated call.
15788
15789 2015-03-25 Richard Biener <rguenther@suse.de>
15790
15791 * passes.c (pass_manager::execute_early_local_passes): Guard
15792 execution of pass_chkp_instrumentation_passes with
15793 flag_check_pointer_bounds.
15794 (pass_chkp_instrumentation_passes::gate): Likewise.
15795
15796 2015-03-25 Martin Liska <mliska@suse.cz>
15797
15798 PR tree-optimization/65538
15799 * symbol-summary.h (function_summary::~function_summary):
15800 Relese memory for allocated summaries.
15801 (function_summary::release): New function.
15802
15803 2015-03-25 Jakub Jelinek <jakub@redhat.com>
15804
15805 PR lto/65515
15806 * lto-streamer-out.c (DFS::worklist): New struct.
15807 (DFS::worklist_vec): New data member.
15808 (DFS::next_dfs_num): Remove.
15809 (DFS::DFS): Rewritten using worklist instead of recursion,
15810 using most of code from DFS::DFS_write_tree.
15811 (DFS::DFS_write_tree_body): Remove SINGLE_P argument, don't
15812 pass it to DFS_write_tree calls.
15813 (DFS::DFS_write_tree): Remove SINGLE_P argument, after
15814 quick initial checks push it into worklist_vec and return.
15815
15816 2015-03-25 Richard Biener <rguenther@suse.de>
15817
15818 PR middle-end/65519
15819 * genmatch.c (expr::gen_transform): Re-write to avoid
15820 using gimple_build.
15821
15822 2015-03-25 Bin Cheng <bin.cheng@arm.com>
15823
15824 * doc/sourcebuild.texi (arm_tune_string_ops_prefer_neon): New.
15825
15826 2015-03-25 Bin Cheng <bin.cheng@arm.com>
15827
15828 * config/arm/arm.opt (print_tune_info): New option.
15829 * config/arm/arm.c (arm_print_tune_info): New function.
15830 (arm_file_start): Call arm_print_tune_info.
15831 * config/arm/arm-protos.h (struct tune_params): Add comment.
15832 * doc/invoke.texi (@item -mprint-tune-info): New item.
15833 (-mtune): mention it in ARM Option Summary.
15834
15835 2015-03-25 DJ Delorie <dj@redhat.com>
15836
15837 * config/rl78/rl78.c (rl78_print_operand_1): Move 'p' test to
15838 correct clause.
15839
15840 2015-03-24 Jan Hubicka <hubicka@ucw.cz>
15841 Martin Liska <mliska@suse.cz>
15842
15843 * ipa-icf-gimple.h (return_with_result): Add missing colon to dump.
15844 * ipa-icf.c (sem_function::get_hash): Hash new declaration properties.
15845 (sem_item::add_type): New function.
15846 (sem_function::hash_stmt): Add TREE_TYPE of gimple_op.
15847 (sem_function::compare_polymorphic_p): Do not consider indirect calls.
15848 (sem_item_optimizer::update_hash_by_addr_refs): Add ODR type to hash.
15849 (sem_function::equals_wpa): Fix typo.
15850 * ipa-icf.h (sem_item::add_type): New function.
15851 (symbol_compare_hashmap_traits): Replace hashing of pointer with symbol
15852 order.
15853
15854 2015-03-24 Jakub Jelinek <jakub@redhat.com>
15855
15856 PR tree-optimization/65533
15857 * tree-vect-slp.c (vect_build_slp_tree): Before re-trying
15858 with swapped operands, call vect_free_slp_tree on
15859 SLP_TREE_CHILDREN of child and truncate the SLP_TREE_CHILDREN
15860 vector.
15861
15862 2015-03-24 Richard Biener <rguenther@suse.de>
15863
15864 PR middle-end/65517
15865 * tree-cfg.c (remove_edge_and_dominated_blocks): Mark loops
15866 for fixup if necessary.
15867
15868 2015-03-23 Sandra Loosemore <sandra@codesourcery.com>
15869
15870 * doc/extend.texi (Function Attributes): Add @cindex entries
15871 for all attributes and regularize their format. Delete text
15872 about long-obsolete 68HC11 and 68HC12 targets. Move misplaced
15873 information about "eightbit_data", "tiny_data", and "model"
15874 variable attributes to the Variable Attributes section. Fix
15875 some obvious typos and copy-editing issues.
15876 (Variable Attributes, Type Attributes): Likewise add/fix
15877 @cindex entries for all attributes.
15878
15879 2015-03-23 Jakub Jelinek <jakub@redhat.com>
15880
15881 PR target/65523
15882 * tree-chkp.c (chkp_build_returned_bound): Ignore
15883 ERF_RETURNS_ARG calls if they have fewer than needed arguments.
15884
15885 2015-03-23 Oleg Endo <olegendo@gcc.gnu.org>
15886
15887 PR target/65505
15888 * config/sh/predicates.md (simple_mem_operand,
15889 displacement_mem_operand): Add test for reg.
15890 (short_displacement_mem_operand): Test for displacement_mem_operand
15891 before invoking sh_disp_addr_displacement.
15892 * config/sh/constraints.md (Sdd, Sra): Simplify.
15893 * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1):
15894 Remove redundant displacement_mem_operand tests.
15895
15896 2015-03-23 Georg-Johann Lay <avr@gjlay.de>
15897
15898 PR target/65296
15899 * config/avr/driver-avr.c (avr_devicespecs_file): Allow to specify
15900 the same -mmcu=MCU more than once.
15901
15902 2015-03-23 Jakub Jelinek <jakub@redhat.com>
15903
15904 PR bootstrap/65522
15905 * ipa-devirt.c: Remove duplicate demangle.h include.
15906
15907 PR target/65504
15908 * config/i386/i386.c (ix86_copy_addr_to_reg): Set REG_POINTER
15909 on the pseudo.
15910 (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Set
15911 REG_POINTER on *destptr after adjusting it for prologue size.
15912
15913 PR ipa/65521
15914 * ipa-icf.c (sem_item::update_hash_by_addr_refs): Hash
15915 ultimate_alias_target ()->order ints instead of
15916 ultimate_alias_target () pointers.
15917
15918 2015-03-23 Richard Biener <rguenther@suse.de>
15919
15920 PR tree-optimization/65518
15921 * tree-vect-stmts.c (vectorizable_load): Reject single-element
15922 interleaving cases we generate absymal code for.
15923
15924 2015-03-23 Richard Biener <rguenther@suse.de>
15925
15926 PR tree-optimization/65494
15927 * tree-vect-slp.c (vect_build_slp_tree): Do not (re-)allocate
15928 matches here.
15929 (vect_analyze_slp_instance): But do that here, always and once.
15930
15931 2015-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15932
15933 * expmed.c (synth_mult): Fix comment about multiplying by T-1 and
15934 adding T or multiplying by T+1 and subracting T.
15935
15936 2015-03-22 Jeff Law <law@redhat.com>
15937
15938 PR rtl-optimization/64317
15939 * Makefile.in (OBJS): Add gcse-common.c
15940 * gcse.c: Include gcse-common.h
15941 (struct modify_pair_s): Move structure definition to gcse-common.h
15942 (compute_transp): Move function to gcse-common.c.
15943 (canon_list_insert): Similarly.
15944 (record_last_mem_set_info): Break out some code and put it into
15945 gcse-common.c. Call into the new common code.
15946 (compute_local_properties): Pass additional arguments to compute_transp.
15947 * postreload-gcse.c: Include gcse-common.h and df.h
15948 (modify_mem_list_set, blocks_with_calls): New variables.
15949 (modify_mem_list, canon_modify_mem_list, transp): Likewise.
15950 (get_bb_avail_insn): Pass in the expression index too.
15951 (alloc_mem): Allocate memory for the new bitmaps and lists.
15952 (free_mem): Free memory for the new bitmaps and lists.
15953 (insert_expr_in_table): Record a bitmap index for each entry we
15954 add to the table.
15955 (record_last_mem_set_info): Call into common code in gcse-common.c.
15956 (get_bb_avail_insn): If no available insn was found in the requested
15957 BB. If BB has a single predecessor, see if the expression is
15958 transparent in BB and available in that single predecessor.
15959 (compute_expr_transp): New wrapper for compute_transp.
15960 (eliminate_partially_redundant_load): Pass expression's bitmap_index
15961 to get_bb_avail_insn. Compute next_pred_bb_end a bit later.
15962 (gcse_after_reload_main): If there are elements in the hash table,
15963 then compute transparency for all the elements in the hash table.
15964 * gcse-common.h: New file.
15965 * gcse-common.c: New file.
15966
15967 2015-03-22 Sandra Loosemore <sandra@codesourcery.com>
15968
15969 * doc/cpp.texi (Search Path): Hyphenate "command-line" when used
15970 as an adjective.
15971 (System Headers): Likewise.
15972 (Ifdef): Likewise.
15973 (Traditional macros): Likewise.
15974 (Invocation): Likewise.
15975 (Option Index): Likewise.
15976 * doc/cppopts.texi (-M): Likewise.
15977 (-finput-charset): Likewise.
15978 (--help): Likewise.
15979 * doc.invoke.texi (AVR Options): Likewise.
15980 (V850 Options): Likewise.
15981
15982 2015-03-22 Jan Hubicka <hubicka@ucw.cz>
15983
15984 PR ipa/65475
15985 * ipa-devirt.c: Include demangle.h
15986 (odr_type_d): Add field rtti_broken.
15987 (odr_subtypes_equivalent_p): Do not require name to match.
15988 (compare_virtual_tables): Fix typo; if type already has ODR violation,
15989 bypass the tests; be ready for function referneces in vtables that are
15990 not DECL_VIRTUAL; make warnings to be OPT_Wodr.
15991 (warn_odr): Give up for nameless types.
15992 (warn_types_mismatch): Report mismatch in mangled names;
15993 report mismatch in anonymous namespaces; look into component types to
15994 give useful error; report when mismatch is dragged in from other ODR
15995 type.
15996 (odr_types_equivalent_p): Match types for being polymorphic; avoid
15997 duplicated diagnostics.
15998 (add_type_duplicate): Reorder checks so more informative ones come
15999 first; fix typo; do not output "the extra base is defined here" when
16000 we did not warn.
16001 (BINFO_N_BASE_BINFOS): Relax sanity check.
16002
16003 2015-03-22 Martin Liska <mliska@suse.cz>
16004 Jakub Jelinek <jakub@redhat.com>
16005
16006 * config/i386/i386.c (def_builtin): Set deferred_isa_values for
16007 masks that can potentially include a builtin.
16008 (ix86_add_new_builtins): Introduce fast filter for isa values
16009 that cannot trigger builtin inclusion.
16010
16011 2015-03-22 Martin Liska <mliska@suse.cz>
16012
16013 * ipa-icf.c (sem_item::update_hash_by_addr_refs): New function.
16014 (sem_item::update_hash_by_local_refs): Likewise.
16015 (sem_variable::get_hash): Empty line is fixed.
16016 (sem_item_optimizer::execute): Include adding of hash references.
16017 (sem_item_optimizer::update_hash_by_addr_refs): New function.
16018 (sem_item_optimizer::build_hash_based_classes): Use local hash.
16019 * ipa-icf.h (sem_item::update_hash_by_addr_refs): New function.
16020 (sem_item::update_hash_by_local_refs): Likewise.
16021
16022 2015-03-20 Jan Hubicka <hubicka@ucw.cz>
16023
16024 PR ipa/65502
16025 * ipa-comdats.c (enqueue_references): Walk through thunks.
16026 (ipa_comdats): Likewise.
16027 (set_comdat_group_1): New function.
16028
16029 2015-03-20 Jan Hubicka <hubicka@ucw.cz>
16030
16031 PR ipa/65475
16032 * ipa-devirt.c (add_type_duplicate): Prevail polymorphic type over
16033 non-polymorphic
16034
16035 2015-03-22 Dave Korn <dave.korn.cygwin@gmail.com>
16036 Gerald Pfeifer <gerald@pfeifer.com>
16037
16038 * doc/contrib.texi (Contributors): Update entry for Danny Smith.
16039
16040 2015-03-21 Chung-Lin Tang <cltang@codesourcery.com>
16041 Sandra Loosemore <sandra@codesourcery.com>
16042
16043 * config/nios2/nios2-protos.h (nios2_adjust_call_address): Adjust
16044 function parameter declaration.
16045 * config/nios2/nios2.md (call,call_value,sibcall,sibcall_value):
16046 Update arguments to nios2_adjust_call_address().
16047 (sibcall_internal): Rename from *sibcall.
16048 (sibcall_value_internal): Rename from *sibcall_value.
16049 * config/nios2/nios2.c (nios2_emit_add_constant): New function.
16050 (nios2_large_got_address): Add target temp reg parameter.
16051 (nios2_got_address): Adjust call to nios2_large_got_address, add
16052 force_reg around it.
16053 (nios2_load_pic_address): Add target temp reg parameter, replace call
16054 to nios2_got_address with corresponding code.
16055 (nios2_legitimize_constant_address): Update call to
16056 nios2_load_pic_address.
16057 (nios2_adjust_call_address): Add temp reg parameter, update PIC case
16058 to use temp reg for PIC loading purposes.
16059 (nios2_asm_output_mi_thunk): Implement TARGET_ASM_OUTPUT_MI_THUNK.
16060 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
16061 (TARGET_ASM_OUTPUT_MI_THUNK): Likewise.
16062
16063 2015-03-21 Sandra Loosemore <sandra@codesourcery.com>
16064
16065 * doc/invoke.texi (-fno-diagnostics-show-caret): Fix
16066 usage of "the @option{...}".
16067 (-Wopenmp-simd): Likewise.
16068 (-fsanitize-recover): Likewise.
16069 (-fsanitize-undefined-trap-on-error): Likewise.
16070 (-flto): Likewise.
16071 (tracer-dynamic-coverage-feedback): Likewise.
16072 (reorder-block-duplicate-feedback): Likewise.
16073 (loop-unroll-jam-size): Likewise.
16074 (-B): Likewise.
16075 (-I-): Likewise.
16076 (-mabs=legacy): Likewise.
16077 (-mupper-regs-df): Likewise.
16078 (-mupper-regs-sf): Likewise.
16079 (-mpointers-to-nested-functions): Likewise.
16080
16081 2015-03-21 Sandra Loosemore <sandra@codesourcery.com>
16082
16083 * doc/extend.texi (Cilk Plus Builtins): Add markup.
16084
16085 2015-03-21 Sandra Loosemore <sandra@codesourcery.com>
16086
16087 * doc/invoke.texi (-fcheck-pointer-bounds): Copy-edit, add
16088 additional index entries and cross-references.
16089 (-fchkp-check-incomplete-type): Likewise.
16090 (-fchkp-first-field-has-own-bounds): Likewise.
16091 (-fchkp-narrow-to-innermost-array): Likewise.
16092 (-fchkp-use-fast-string-functions): Likewise.
16093 (-fchkp-use-nochk-string-functions): Likewise.
16094 (-fchkp-use-static-const-bounds): Likewise.
16095 (-fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
16096 (-fchkp-instrument-marked-only): Likewise.
16097 (-fchkp-use-wrappers): Likewise.
16098 (-static-libmpx): Likewise.
16099 (-static-libmpxwrappers): Likewise.
16100 * doc/extend.texi (bnd_legacy): Likewise.
16101 (bnd_instrument): Likewise.
16102 (bnd_variable_size): Likewise.
16103 (Pointer Bounds Checker builtins): Likewise.
16104
16105 2015-03-21 Tom de Vries <tom@codesourcery.com>
16106
16107 PR tree-optimization/65458
16108 * cgraph.c (cgraph_node::dump): Handle parallelized_function field.
16109 * cgraph.h (cgraph_node): Add parallelized_function field.
16110 * lto-cgraph.c (lto_output_node): Write parallelized_function field.
16111 (input_overwrite_node): Read parallelized_function field.
16112 * omp-low.c (expand_omp_taskreg, finalize_task_copyfn): Set
16113 parallelized_function on cgraph_node for child_fn.
16114 * tree-parloops.c: Add include of plugin-api.h, ipa-ref.h and cgraph.h.
16115 Remove include of gt-tree-parloops.h.
16116 (parallelized_functions): Remove static variable.
16117 (parallelized_function_p): Rewrite using parallelized_function field of
16118 cgraph_node.
16119 (create_loop_fn): Remove adding to parallelized_functions.
16120 * Makefile.in (GTFILES): Remove tree-parloops.c
16121
16122 2015-03-20 Vladimir Makarov <vmakarov@redhat.com>
16123
16124 PR rtl-optimization/64366
16125 * lra.c (lra_update_insn_regno_info): Consider regs in
16126 CALL_INSN_FUNCTION_USAGE memory.
16127
16128 2015-03-20 Richard Biener <rguenther@suse.de>
16129
16130 PR middle-end/64715
16131 * tree-chrec.c (chrec_fold_poly_cst): Use useless_type_conversion_p
16132 for type comparison and gcc_checking_assert.
16133 (chrec_fold_plus_poly_poly): Likewise.
16134 (chrec_fold_multiply_poly_poly): Likewise.
16135 (chrec_convert_1): Likewise.
16136 * gimplify.c (gimplify_expr): Remove premature folding of
16137 &X + CST to &MEM[&X, CST].
16138
16139 2015-03-20 Jan Hubicka <hubicka@ucw.cz>
16140
16141 * ipa-inline.c (can_inline_edge_p): Short circuit if inline_failed
16142 already is final.
16143 (ipa_inline): Recompute inline_failed codes.
16144 * cif-code.def (FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
16145 USES_COMDAT_LOCAL, ATTRIBUTE_MISMATCH, UNREACHABLE): Declare as
16146 CIF_FINAL_ERROR.
16147
16148 2015-03-20 Uros Bizjak <ubizjak@gmail.com>
16149
16150 PR rtl-optimization/60851
16151 * recog.c (constrain_operands): Accept a pseudo register before reload
16152 for LRA enabled targets.
16153
16154 2015-03-19 Michael Meissner <meissner@linux.vnet.ibm.com>
16155
16156 PR target/65240
16157 * config/rs6000/predicates.md (easy_fp_constant): Remove special
16158 -ffast-math handling that kept non-0 constants live in the RTL
16159 until reload. Remove logic testing the number of instructions it
16160 took to create a constant in a GPR that was never used, due to a
16161 test for soft-float earlier.
16162 (memory_fp_constant): Delete, no longer used.
16163
16164 * config/rs6000/rs6000.md (mov<MODE>_hardfloat): Remove
16165 alternatives for loading non-0 constants into GPRs for hard
16166 floating point that is no longer needed due to changes in
16167 easy_fp_constant. Add support for loading 0.0 into GPRs.
16168 (mov<mode>_hardfloat32): Likewise.
16169 (mov<mode>_hardfloat64): Likewise.
16170 (mov<mode>_64bit_dm): Likewise.
16171 (movtd_64bit_nodm): Likewise.
16172 (pre-reload move FP constant define_split): Delete define_split,
16173 since it is no longer used.
16174 (extenddftf2_internal): Remove GHF constraints that are not valid
16175 for extenddftf2.
16176
16177 2015-03-19 Vladimir Makarov <vmakarov@redhat.com>
16178
16179 PR rtl-optimization/63491
16180 * lra-constraints.c (check_and_process_move): Use src instead of
16181 sreg. Remove some dead code.
16182
16183 2015-03-19 Jan Hubicka <hubicka@ucw.cz>
16184
16185 PR ipa/65380
16186 * ipa-icf.c (sem_function::merge): Do not merge DECL_EXTERNAL symbols.
16187 (sem_variable::merge): Likewise.
16188
16189 2015-03-19 Martin Liska <mliska@suse.cz>
16190
16191 PR ipa/65465
16192 * cgraphunit.c (cgraph_node::create_wrapper): Correctly reset
16193 all fields of cgraph_thunk_info.
16194
16195 2015-03-19 Ilya Enkovich <ilya.enkovich@intel.com>
16196
16197 * ipa-chkp.c (chkp_maybe_create_clone): Don't try to
16198 clone instrumented thunks.
16199
16200 2015-03-19 Richard Biener <rguenther@suse.de>
16201
16202 Revert
16203 2015-03-10 Richard Biener <rguenther@suse.de>
16204
16205 PR middle-end/63155
16206 * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
16207 * tree-ssa-coalesce.c: Include timevar.h.
16208 (attempt_coalesce): Handle graph being NULL.
16209 (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
16210 Split out abnormal coalescing to ...
16211 (perform_abnormal_coalescing): ... this function.
16212 (coalesce_ssa_name): Perform abnormal coalescing without computing
16213 live/conflict.
16214 (verify_ssa_coalescing_worker): New function.
16215 (verify_ssa_coalescing): Likewise.
16216
16217 2015-03-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
16218 Jakub Jelinek <jakub@redhat.com>
16219
16220 PR sanitizer/65400
16221 * tsan.c (instrument_gimple): Clear tail call flag on
16222 calls.
16223
16224 2015-03-19 Jakub Jelinek <jakub@redhat.com>
16225
16226 PR sanitizer/65400
16227 * ipa-split.c (find_return_bb): Allow TSAN_FUNC_EXIT internal
16228 call in the return bb.
16229 (find_split_points): Add RETURN_BB argument, don't call
16230 find_return_bb.
16231 (split_function): Likewise. Add ADD_TSAN_FUNC_EXIT argument,
16232 if true append TSAN_FUNC_EXIT internal call after the call to
16233 the split off function.
16234 (execute_split_functions): Call find_return_bb here.
16235 Don't optimize if TSAN_FUNC_EXIT is found in unexpected places.
16236 Adjust find_split_points and split_function calls.
16237
16238 2015-03-18 DJ Delorie <dj@redhat.com>
16239
16240 * config/rl78/rl78-virt.md (andqi3_virt): Allow far operands.
16241 (iorqi3_virt): Likewise.
16242
16243 2015-03-18 Tom de Vries <tom@codesourcery.com>
16244
16245 * tree-parloops.c (parallelize_loops): Make static.
16246 * tree-parloops.h (parallelize_loops): Remove extern declaration.
16247
16248 2015-03-18 Andrew Stubbs <ams@codesourcery.com>
16249
16250 PR middle-end/64491
16251 Revert:
16252 2014-11-20 Andrew Stubbs <ams@codesourcery.com>
16253
16254 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
16255 condition would be removed due to undefined behaviour.
16256
16257 2015-03-18 Martin Liska <mliska@suse.cz>
16258
16259 PR ipa/65432
16260 * cgraph.c (cgraph_node::get_create): Remove unnecessary
16261 xstrdup_for_dump wrapper.
16262 * ipa-icf.c (sem_item::dump): Use symtab_node::name instead of
16263 sem_item::name.
16264 (sem_function::equals): Wrap symtab_node::name and symtab_node::asm_name
16265 with xstrdup_for_dump.
16266 (sem_variable::equals): Likewise.
16267 (sem_item_optimizer::read_section): Use symtab_node::name instead of
16268 sem_item::name.
16269 (sem_item_optimizer::parse_funcs_and_vars): Likewise.
16270 (sem_item_optimizer::merge_classes): Wrap symtab_node::name and
16271 symtab_node::asm_name with xstrdup_for_dump.
16272 (congruence_class::dump): Use symtab_node::name instead of
16273 sem_item::name.
16274 * ipa-icf.h (symtab_node::name): Remove.
16275 (symtab_node::asm_name): Likewise.
16276
16277 2015-03-18 Jakub Jelinek <jakub@redhat.com>
16278
16279 PR tree-optimization/65450
16280 * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): New
16281 function.
16282 (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr): Use
16283 it instead of duplicate_ssa_name_ptr_info.
16284
16285 PR target/65222
16286 * doc/invoke.texi: Add knl as x86 -march=/-mtune= CPU type.
16287
16288 2015-03-18 Richard Biener <rguenther@suse.de>
16289
16290 * tree-data-ref.h (struct access_matrix): Remove.
16291 (AM_LOOP_NEST, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
16292 AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
16293 AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT): Likewise.
16294 (am_vector_index_for_loop): Likewise.
16295 (struct data_reference): Remove access_matrix member.
16296 (DR_ACCESS_MATRIX): Remove.
16297 (lambda_vector_new): Add comment.
16298 (lambda_matrix_new): Use XOBNEWVEC.
16299
16300 2015-03-18 Richard Biener <rguenther@suse.de>
16301
16302 * tree-ssa-loop-ch.c (pass_data_ch): Remove TODO_cleanup_cfg.
16303 (pass_ch::execute): Cleanup the CFG only if we did sth.
16304 * tree-vect-generic.c (pass_data_lower_vector): Remove TODO_cleanup_cfg.
16305
16306 2015-03-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16307
16308 * expmed.c (synth_mult): Use std::swap instead of manually
16309 swapping algorithms.
16310
16311 2015-03-18 Jakub Jelinek <jakub@redhat.com>
16312
16313 PR target/65078
16314 * config/i386/sse.md (movsi/movdi -> vec_extract_*_0 splitter): New.
16315
16316 2015-03-16 Georg-Johann Lay <avr@gjlay.de>
16317
16318 PR target/65296
16319 * config/avr/avr.opt (-nodevicelib): New option.
16320 * doc/invoke.texi (AVR Options): Document it.
16321 * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC) [avr1]: Don't link
16322 libgcc.a, libc.a, libm.a.
16323 * config/avr/specs.h: Same.
16324 * config/avr/gen-avr-mmcu-specs.c (print_mcu): Don't print specs
16325 which don't (directly) depend on the device. Print more help.
16326 (*avrlibc_devicelib) [-nodevicelib]: Don't link libdev.a.
16327 (*cpp): Don't define __AVR_DEV_LIB_NAME__.
16328 * config/avr/driver-avr.c: Remove -nodevicelib from option list in
16329 case of an error.
16330 (avr_devicespecs_file): Use suffix "%s" instead of absolute path
16331 for specs file name.
16332 * config/avr/avr-arch.h (avr_mcu_t) [.library_name]: Remove.
16333 * config/avr/avr-mcus.def: Adjust initializers and comments.
16334
16335 2015-03-16 Jan Hubicka <hubicka@ucw.cz>
16336
16337 * tree-sra.c (ipa_sra_preliminary_function_checks): Use
16338 DECL_ONE_ONLY to check if decl is one only.
16339 * ipa-split.c (consider_split): Limit splitt of one only functions.
16340
16341 2015-03-16 Jakub Jelinek <jakub@redhat.com>
16342
16343 PR tree-optimization/65427
16344 * tree-vect-generic.c (do_cond, expand_vector_scalar_condition): New
16345 functions.
16346 (expand_vector_operations_1): Handle BLKmode vector COND_EXPR.
16347
16348 2015-03-16 Marek Polacek <polacek@redhat.com>
16349
16350 * cgraph.h (add_new_static_var): Remove declaration.
16351 * varpool.c (add_new_static_var): Remove function.
16352
16353 2015-03-16 Jakub Jelinek <jakub@redhat.com>
16354
16355 * omp-low.c (expand_omp_target): Use auto_vec<tree, 11>
16356 instead of vec<tree> * with vec_alloc and release for args.
16357 Adjust all users.
16358
16359 PR middle-end/65431
16360 * omp-low.c (delete_omp_context): Only splay_tree_delete
16361 reduction_map in GIMPLE_OMP_TARGET is_gimple_omp_offloaded
16362 is_gimple_omp_oacc contexts. Don't look at ctx->outer.
16363
16364 2015-03-16 Max Ostapenko <m.ostapenko@partner.samsung.com>
16365
16366 PR sanitizer/64820
16367 * cfgexpand.c (align_base): New function.
16368 (alloc_stack_frame_space): Call it.
16369 (expand_stack_vars): Align prev_frame to be sure
16370 data->asan_vec elements aligned properly.
16371
16372 2015-03-16 Eric Botcazou <ebotcazou@adacore.com>
16373
16374 PR middle-end/65409
16375 * expr.c (store_field): Do not do a direct block copy if the source is
16376 a PARALLEL with BLKmode.
16377
16378 2015-03-16 Tom de Vries <tom@codesourcery.com>
16379
16380 PR middle-end/65414
16381 Revert:
16382 2015-03-12 Tom de Vries <tom@codesourcery.com>
16383
16384 PR rtl-optimization/64895
16385 * lra-lives.c (check_pseudos_live_through_calls): Use
16386 actual_call_used_reg_set instead of call_used_reg_set, if available.
16387
16388 2015-03-16 Alan Modra <amodra@gmail.com>
16389
16390 PR target/63150
16391 * config/rs6000/rs6000.md (bswapdi2): Remove one scratch reg.
16392 Modify Z->r bswapdi splitter to use dest in place of scratch.
16393 In r->Z and Z->r bswapdi splitter rename word_high, word_low
16394 to word1, word2 and rearrange logic to suit.
16395 (bswapdi2_64bit): Remove early clobber on Z->r alternative.
16396 (bswapdi2_ldbrx): Likewise. Remove '??' on r->r.
16397 (bswapdi2_32bit): Remove early clobber on Z->r alternative.
16398 Add one '?' on r->r. Modify Z->r splitter to avoid need for
16399 early clobber.
16400
16401 2015-03-14 Jakub Jelinek <jakub@redhat.com>
16402
16403 PR tree-optimization/65369
16404 * tree-vect-stmts.c (vectorizable_load) <case dr_explicit_realign>:
16405 Set bump to vs * TYPE_SIZE_UNIT (elem_type) - 1 instead of
16406 (vs - 1) * TYPE_SIZE_UNIT (elem_type).
16407
16408 PR tree-optimization/65418
16409 * tree-ssa-reassoc.c (extract_bit_test_mask): If there
16410 are casts in the first PLUS_EXPR operand, ensure tbias and
16411 *totallowp are in the inner type.
16412
16413 PR rtl-optimization/65401
16414 * combine.c (rtx_equal_for_field_assignment_p): Add widen_x
16415 argument. If true, adjust_address_nv of x with big-endian
16416 correction for the mode widening to GET_MODE (y).
16417 (make_field_assignment): Don't do MEM mode widening here.
16418 Use MEM_P instead of GET_CODE == MEM.
16419
16420 2015-03-13 Ilya Verbin <ilya.verbin@intel.com>
16421
16422 * varpool.c (varpool_node::get_create): Don't set 'offloadable' flag for
16423 the external decls.
16424
16425 2015-03-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16426
16427 PR target/64600
16428 * config/arm/arm.c (arm_gen_constant, AND case): Use
16429 ARM_SIGN_EXTEND when constructing AND mask.
16430
16431 2015-03-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
16432
16433 * graph.c (print_graph_cfg): Make function names visible and append
16434 parenthesis to it. Also make groups of basic blocks belonging to the
16435 same function visible.
16436
16437 2015-03-12 Richard Biener <rguenther@suse.de>
16438
16439 PR middle-end/44563
16440 * tree-inline.c (gimple_expand_calls_inline): Walk BB backwards
16441 to avoid quadratic behavior with inline expansion splitting blocks.
16442 * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not merge block
16443 with the successor if the predecessor will be merged with it.
16444 * tree-cfg.c (gimple_can_merge_blocks_p): We can't merge the
16445 entry block with its successor.
16446
16447 2015-03-13 Richard Biener <rguenther@suse.de>
16448
16449 PR middle-end/44563
16450 * tree-cfgcleanup.c (split_bb_on_noreturn_calls): Remove.
16451 (cleanup_tree_cfg_1): Do not call it.
16452 (execute_cleanup_cfg_post_optimizing): Fixup the CFG here.
16453 (fixup_noreturn_call): Mark the stmt as control altering.
16454 * tree-cfg.c (execute_fixup_cfg): Do not dump the function
16455 here.
16456 (pass_data_fixup_cfg): Produce a dump file.
16457 * tree-ssa-dom.c: Include tree-cfgcleanup.h.
16458 (need_noreturn_fixup): New global.
16459 (pass_dominator::execute): Fixup queued noreturn calls.
16460 (optimize_stmt): Queue calls that became noreturn for fixup.
16461 * tree-ssa-forwprop.c (pass_forwprop::execute): Likewise.
16462 * tree-ssa-pre.c: Include tree-cfgcleanup.h.
16463 (el_to_fixup): New global.
16464 (eliminate_dom_walker::before_dom_childre): Queue calls that
16465 became noreturn for fixup.
16466 (eliminate): Fixup queued noreturn calls.
16467 * tree-ssa-propagate.c: Include tree-cfgcleanup.h.
16468 (substitute_and_fold_dom_walker): New member stmts_to_fixup.
16469 (substitute_and_fold_dom_walker::before_dom_children): Queue
16470 alls that became noreturn for fixup.
16471 (substitute_and_fold): Fixup queued noreturn calls.
16472
16473 2015-03-12 Jan Hubicka <hubicka@ucw.cz>
16474
16475 * ipa-icf.c (sem_function::equals_wpa): Match CXX_CONSTRUCTOR_P
16476 and CXX_DESTURCTOR_P. For consutrctors match ODR type of class they
16477 are building; for methods check ODR type of class they belong to if
16478 they may lead to a polymorphic call.
16479 (sem_function::compare_polymorphic_p): Be bit smarter about testing
16480 when function may lead to a polymorphic call.
16481 (sem_function::compare_type_list): Remove.
16482 (sem_variable::equals): Update use of compatible_types_p.
16483 (sem_variable::parse_tree_refs): Remove.
16484 (sem_item_optimizer::filter_removed_items): Do not filter out CXX
16485 cdtor.
16486 * ipa-icf-gimple.c (func_checker::compare_decl): Do polymorphic
16487 matching here.
16488 (func_checker::compatible_polymorphic_types_p): Break out from ...
16489 (unc_checker::compatible_types_p): ... here.
16490 * ipa-icf-gimple.h (func_checker::compatible_polymorphic_types_p):
16491 Declare.
16492 (unc_checker::compatible_types_p): Update.
16493 * ipa-icf.h (compare_type_list, parse_tree_refs, compare_sections):
16494 Remove.
16495
16496 2015-03-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16497
16498 PR rtl-optimization/65235
16499 * simplify-rtx.c (simplify_binary_operation_1, VEC_SELECT case):
16500 When first element of vec_concat is const_int, calculate its size
16501 using second element.
16502
16503 2015-03-12 Richard Biener <rguenther@suse.de>
16504
16505 PR middle-end/65270
16506 * fold-const.c (operand_equal_p): Fix ordering of resetting
16507 OEP_ADDRESS_OF and checking for it in the [TARGET_]MEM_REF case.
16508
16509 2015-03-12 Dominik Vogt <vogt@linux.vnet.ibm.com>
16510
16511 * config/s390/s390.c (s390_reorg): Move code to output nops after label
16512 to s390_reorg ().
16513 (s390_asm_output_function_label): Likewise.
16514 * config/s390/s390.c (s390_asm_output_function_label):
16515 Fix function label alignment with -mhtopatch.
16516 * config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE,
16517 UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE
16518 ("nop_2_byte"): New define_insn.
16519 ("nop_4_byte"): Likewise.
16520 ("nop_6_byte"): Likewise.
16521 * doc/extend.texi (hotpatch): hotpatch attribute doc fixes.
16522 * doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes.
16523
16524 2015-03-12 Ilya Enkovich <ilya.enkovich@intel.com>
16525
16526 PR target/65103
16527 * config/i386/i386.c (ix86_address_cost): Fix cost of a PIC
16528 register.
16529
16530 2015-03-12 Ilya Enkovich <ilya.enkovich@intel.com>
16531
16532 PR target/65044
16533 * toplev.c (process_options): Restrict Pointer Bounds Checker
16534 usage with Address Sanitizer.
16535
16536 2015-03-12 Richard Biener <rguenther@suse.de>
16537
16538 * tree-cfg.c (gimple_split_block): Remove loop finding stmt
16539 to split on.
16540 * omp-low.c (expand_omp_taskreg): Split block before removing
16541 the stmt.
16542 (expand_omp_target): Likewise.
16543 * ubsan.c (ubsan_expand_null_ifn): Adjust stmt if we replaced it.
16544 * tree-parloops.c (create_call_for_reduction_1): Pass a proper
16545 stmt to split_block.
16546
16547 2015-03-12 Tom de Vries <tom@codesourcery.com>
16548
16549 PR rtl-optimization/64895
16550 * lra-lives.c (check_pseudos_live_through_calls): Use
16551 actual_call_used_reg_set instead of call_used_reg_set, if available.
16552
16553 2015-03-10 Jan Hubicka <hubicka@ucw.cz>
16554
16555 * cgraph.c (cgraph_node::release_body): Free function_in_decl_state.
16556 (cgraph_node::remove): Likewise.
16557 (cgraph_node::get_untransformed_body): Likewise.
16558 * varpool.c (varpool_node::remove): Likewise.
16559 (varpool_node::get_constructor): Add sanity check.
16560
16561 2015-03-11 Sandra Loosemore <sandra@codesourcery.com>
16562
16563 * doc/invoke.texi (-fgnu89-inline): Remove discussion about
16564 old GCC versions.
16565 (-fabi-compat-version): Likewise.
16566 (-ffriend-injection): Likewise.
16567 (-Wdeclaration-after-statement): Likewise.
16568 (-fomit-frame-pointer): Likewise.
16569 (-ftree-coalesce-inlined-vars): Likewise.
16570 (-fvisibility=): Likewise.
16571 * doc/extend.texi (Typeof): Likewise.
16572 (Zero Length): Likewise.
16573 (Escaped Newlines): Likewise.
16574 (Compound Literals): Likewise.
16575 (Function Attributes): Likewise.
16576 (Label Attributes): Likewise.
16577 (Type Attributes): Likewise.
16578 (Function Names): Likewise.
16579 (Other Builtins): Likewise.
16580 (Function Specific Option Pragmas): Likewise.
16581 (C++ Interface): Likewise.
16582
16583 2015-03-11 Thomas Schwinge <thomas@codesourcery.com>
16584
16585 * config/nvptx/nvptx.h (LIBSTDCXX): Define to "gcc".
16586
16587 2015-03-11 Marek Polacek <polacek@redhat.com>
16588
16589 PR tree-optimization/65388
16590 * tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.
16591
16592 2015-03-10 Georg-Johann Lay <avr@gjlay.de>
16593
16594 PR target/65296
16595 * configure.ac [avr]: Check as for options -mrmw, --mlink-relax.
16596 * configure: Regenerate.
16597 * config.in: Regenerate.
16598 * doc/invoke.texi (AVR Options) [-mrmw]: Document it.
16599 [-mn-flash]: Document it.
16600 [__AVR_ARCH__]: Document avrtiny.
16601
16602 * config/avr/gen-avr-mmcu-specs.c (config.h): Include it.
16603 (*asm_relax): Only define spec if HAVE_AS_AVR_MLINK_RELAX_OPTION.
16604 (*asm_rmw): Only define spec if HAVE_AS_AVR_MRMW_OPTION.
16605
16606 2015-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16607
16608 * doc/invoke.texi: Add missing cpu values (z196, zEC12).
16609
16610 2015-03-11 Michael Meissner <meissner@linux.vnet.ibm.com>
16611
16612 PR target/65242
16613 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Do not
16614 allow reloads of PLUS in floating point/VSX registers.
16615
16616 2015-03-11 Junmo Park <junmoz.park@samsung.com>
16617
16618 * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Add
16619 crypto_sha256_fast.
16620 (cortex_a57_crypto_complex): Add crypto_sha256_slow.
16621
16622 2015-03-11 Richard Biener <rguenther@suse.de>
16623
16624 PR tree-optimization/65310
16625 * tree-sra.c (build_ref_for_offset): Also preserve larger
16626 alignment.
16627
16628 2015-03-11 Marat Zakirov <m.zakirov@samsung.com>
16629
16630 * asan.c (instrument_derefs): Disable instrumentation on asan-globals=0.
16631
16632 2015-03-10 Jakub Jelinek <jakub@redhat.com>
16633
16634 PR target/65368
16635 * config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn,
16636 new define_expand.
16637 (*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns.
16638
16639 2015-03-10 Jan Hubicka <hubicka@ucw.cz>
16640
16641 * ipa-icf.c (sem_function::equals_wpa): Move here some checks from ...
16642 (sem_function::equals_wpa): ... here.
16643
16644 2015-03-10 Marek Polacek <polacek@redhat.com>
16645 Jakub Jelinek <jakub@redhat.com>
16646
16647 PR sanitizer/65367
16648 * ubsan.c (ubsan_expand_objsize_ifn): Update GSI instead of GSI_ORIG
16649 when only removing the statement. Handle expanding UBSAN_OBJECT_SIZE
16650 separately.
16651
16652 2015-03-10 Jakub Jelinek <jakub@redhat.com>
16653
16654 PR target/65286
16655 * config/rs6000/t-linux: For powerpc64* target set
16656 MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.
16657
16658 2015-03-10 Richard Biener <rguenther@suse.de>
16659
16660 PR middle-end/44563
16661 * tree-inline.c (copy_cfg_body): Skip block mapped to entry/exit
16662 for redirect_all_calls.
16663
16664 2015-03-10 Marek Polacek <polacek@redhat.com>
16665
16666 * gdbinit.in (pcfun): Define and document.
16667
16668 2015-03-10 Ilya Verbin <ilya.verbin@intel.com>
16669
16670 * config/i386/intelmic-mkoffload.c: Include intelmic-offload.h instead
16671 of libgomp-plugin.h.
16672 (find_target_compiler): Support a case when the path to gcc is
16673 specified in the PATH env var, so COLLECT_GCC doesn't contain a path.
16674 (generate_host_descr_file): Use GOMP_DEVICE_INTEL_MIC from
16675 intelmic-offload.h instead of OFFLOAD_TARGET_TYPE_INTEL_MIC from
16676 libgomp-plugin.h.
16677 (main): Use GCC_INSTALL_NAME as target_driver_name.
16678 * config/i386/t-intelmic (CFLAGS-mkoffload.o): Add GCC_INSTALL_NAME
16679 define.
16680 (mkoffload.o): Remove obsolete include path and defines.
16681 (mkoffload$(exeext)): Use $(LINKER) instead of $(COMPILER).
16682
16683 2015-03-10 Richard Biener <rguenther@suse.de>
16684
16685 PR middle-end/63155
16686 * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
16687 * tree-ssa-coalesce.c: Include timevar.h.
16688 (attempt_coalesce): Handle graph being NULL.
16689 (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
16690 Split out abnormal coalescing to ...
16691 (perform_abnormal_coalescing): ... this function.
16692 (coalesce_ssa_name): Perform abnormal coalescing without computing
16693 live/conflict.
16694 (verify_ssa_coalescing_worker): New function.
16695 (verify_ssa_coalescing): Likewise.
16696
16697 2015-03-10 Georg-Johann Lay <avr@gjlay.de>
16698
16699 PR target/65296
16700 * config.gcc (extra_options) [avr]: Remove.
16701 (extra_gcc_objs) [avr]: Use driver-avr.o, avr-devices.o.
16702 (tm_file) [avr]: Add avr/specs.h after avr/avr.h.
16703 (tm_defines) [avr-*-rtems*]: Add WITH_RTEMS.
16704
16705 * config/avr/avr.opt (config/avr/avr-arch.h): Remove include.
16706 (-mmcu=): Add Var and MissingArgError properties.
16707 (-march=): Remove.
16708 * config/avr/genmultilib.awk: Use -mmcu= instead of -march=.
16709 * config/avr/t-multilib: Regenerate.
16710 * config/avr/specs.h: New file.
16711 * config/avr/driver-avr.c: New file.
16712 * config/avr/genopt.sh: Remove file.
16713 * config/avr/avr-tables.opt: Remove file.
16714 * config/avr/predicates.md (avr_current_arch): Rename to avr_arch.
16715 * config/avr/avr-c.c: Same.
16716 * avr-arch.h: Same.
16717 (avr_current_device): Remove proto.
16718 * config/avr/avr.h (avr_current_arch): Rename to avr_arch.
16719 (AVR_HAVE_8BIT_SP): Don't depend on avr_current_device.
16720 (EXTRA_SPEC_FUNCTIONS): Define.
16721 (avr_devicespecs_file): New specs function proto.
16722 (DRIVER_SELF_SPECS): Use device-specs-file spec function.
16723 * config/avr/avr.c (avr_current_arch): Rename to avr_arch.
16724 (avr_current_device): Remove definition and usage.
16725 (avr_set_core_architecture): New static function.
16726 (avr_option_override): Use it.
16727 * config/avr/avr-devices.c (diagnostic.h, avr-arch.h): Include them.
16728 (mcu_name): New static array.
16729 (comparator, avr_archs_str, avr_mcus_str): New static functions.
16730 (avr_inform_devices, avr_inform_core_architectures): New functions.
16731 * config/avr/gen-avr-mmcu-specs.c (avr-arch.h, specs.h): Include.
16732 (avrlibc.h) [WITH_AVRLIBC]: Include.
16733 (../rtems.h, rtems.h) [WITH_RTEMS]: Include.
16734 (print_mcu): Rewrite from scratch.
16735 * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC, STARTFILE_SPEC):
16736 Forward to avr-specific specs defined in device-specs file.
16737 * config/avr/t-avr (driver-avr.o): New rule.
16738 (avr-devices.o): Depend on avr-arch.h.
16739 (avr-mcus): No more depend on avr-tables.opt.
16740 (avr-tables.opt): Remove rule.
16741 (install-device-specs): Use INSTALL_DATA, not INSTALL_PROGRAM.
16742
16743 2015-03-10 Ilya Enkovich <ilya.enkovich@intel.com>
16744
16745 * c-family/c.opt (fchkp-use-wrappers): New.
16746 * ipa-chkp.c (CHKP_WRAPPER_SYMBOL_PREFIX): New.
16747 (chkp_wrap_function): New.
16748 (chkp_build_instrumented_fndecl): Support wrapped
16749 functions.
16750 * doc/invoke.texi (-fcheck-pointer-bounds): New.
16751 (-fchkp-check-incomplete-type): New.
16752 (-fchkp-first-field-has-own-bounds): New.
16753 (-fchkp-narrow-bounds): New.
16754 (-fchkp-narrow-to-innermost-array): New.
16755 (-fchkp-optimize): New.
16756 (-fchkp-use-fast-string-functions): New.
16757 (-fchkp-use-nochk-string-functions): New.
16758 (-fchkp-use-static-bounds): New.
16759 (-fchkp-use-static-const-bounds): New.
16760 (-fchkp-treat-zero-dynamic-size-as-infinite): New.
16761 (-fchkp-check-read): New.
16762 (-fchkp-check-write): New.
16763 (-fchkp-store-bounds): New.
16764 (-fchkp-instrument-calls): New.
16765 (-fchkp-instrument-marked-only): New.
16766 (-fchkp-use-wrappers): New.
16767 (-static-libmpx): New.
16768 (-static-libmpxwrappers): New.
16769
16770 2015-03-10 Ilya Enkovich <ilya.enkovich@intel.com>
16771
16772 * config/i386/linux-common.h (LIBMPX_WRAPPERSSPEC): New.
16773 (CHKP_SPEC): Add wrappers library.
16774 * c-family/c.opt (static-libmpxwrappers): New.
16775
16776 2015-03-10 Ilya Enkovich <ilya.enkovich@intel.com>
16777
16778 * config/i386/linux-common.h (LIBMPX_LIBS): New.
16779 (LIBMPX_SPEC): New.
16780 (CHKP_SPEC): New.
16781 * gcc.c (CHKP_SPEC): New.
16782 (LINK_COMMAND_SPEC): Add CHKP_SPEC.
16783 * c-family/c.opt (static-libmpx): New.
16784
16785 2015-03-10 Richard Biener <rguenther@suse.de>
16786
16787 PR middle-end/44563
16788 * cgraph.h (struct cgraph_edge_hasher): Add hash overload
16789 for compare_type.
16790 * cgraph.c (cgraph_edge_hasher::hash): Inline htab_hash_pointer.
16791 (cgraph_update_edge_in_call_site_hash): Use cgraph_edge_hasher::hash.
16792 (cgraph_add_edge_to_call_site_hash): Likewise.
16793 (cgraph_node::get_edge): Likewise.
16794 (cgraph_edge::set_call_stmt): Likewise.
16795 (cgraph_edge::remove_caller): Likewise.
16796
16797 2015-03-10 Chung-Ju Wu <jasonwucj@gmail.com>
16798
16799 * config/nds32/nds32.h (callee_saved_regs_size): Rename to ...
16800 (callee_saved_gpr_regs_size): ... this.
16801 (callee_saved_regs_first_regno): Rename to ...
16802 (callee_saved_first_gpr_regno): ... this.
16803 (callee_saved_regs_last_regno) Rename to ...
16804 (callee_saved_last_gpr_regno): ... this.
16805 * config/nds32/nds32.c (nds32_compute_stack_frame): Adjust renamed
16806 variables.
16807 (nds32_initial_elimination_offset): Likewise.
16808 (nds32_expand_prologue): Likewise.
16809 (nds32_expand_epilogue): Likewise.
16810 (nds32_expand_prologue_v3push): Likewise.
16811 (nds32_expand_epilogue_v3pop): Likewise.
16812 * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
16813 Adjust renamed variables.
16814 (nds32_output_stack_pop): Likewise.
16815
16816 2015-03-10 Thomas Preud'homme <thomas.preudhomme@arm.com>
16817
16818 * dominance.c (nearest_common_dominator_for_set): Fix A_Dominated_by_B
16819 code in comment.
16820
16821 2015-03-10 Jakub Jelinek <jakub@redhat.com>
16822
16823 PR rtl-optimization/65321
16824 * cfgexpand.c (expand_debug_expr): Ensure shift amount isn't wider
16825 than shift mode.
16826 * var-tracking.c (use_narrower_mode): Likewise.
16827
16828 2015-03-10 Jan Hubicka <hubicka@ucw.cz>
16829
16830 PR tree-optimization/65355
16831 * varasm.c (notice_global_symbol): Do not produce RTL.
16832 * symtab.c (symtab_node::can_increase_alignment_p): Check for section
16833 anchor.
16834 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
16835 check for section anchors.
16836
16837 2015-03-10 Alan Modra <amodra@gmail.com>
16838
16839 PR target/65286
16840 * config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
16841 to be single-arch by default. Set cpu_is_64bit for powerpc64
16842 given --with-cpu=native.
16843 * config/rs6000/t-fprules: Do not set default MULTILIB vars.
16844 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
16845 and powerpc64le.
16846 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
16847 rs6000_isa_flags rather than TARGET_64BIT.
16848
16849 2015-03-09 Yoshinori Sato <ysato@users.sourceforge.jp>
16850 Kaz Kojima <kkojima@gcc.gnu.org>
16851
16852 * config/sh/t-linux (MULTILIB_EXCEPTIONS): Define for m2a cases.
16853
16854 2015-03-09 Jakub Jelinek <jakub@redhat.com>
16855
16856 PR lto/65361
16857 * ipa-devirt.c (add_type_duplicate): Don't use DECL_CONTEXT
16858 on a TREE_BINFO, instead use BINFO_TYPE.
16859
16860 2015-03-09 Richard Biener <rguenther@suse.de>
16861
16862 PR middle-end/65270
16863 * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF.
16864 * fold-const.c (operand_equal_p): When recursing for ADDR_EXPRs
16865 operand set OEP_ADDRESS_OF. Clear it when recursing to non-bases
16866 of that. When comparing dereferences compare alignment.
16867 When comparing MEM_REFs or TARGET_MEM_REFs compare dependence info.
16868
16869 2015-03-08 Jan Hubicka <hubicka@ucw.cz>
16870
16871 * ipa-inline-analysis.c (check_callers): Check
16872 node->can_remove_if_no_direct_calls_and_refs_p.
16873 (growth_likely_positive): Reorganize to call
16874 can_remove_if_no_direct_calls_p later.
16875 * cgraph.h (will_be_removed_from_program_if_no_direct_calls_p,
16876 will_be_removed_from_program_if_no_direct_calls_p): Add
16877 will_inline parameter.
16878 * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p,
16879 cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
16880 Handle inliner case correctly.
16881
16882 2015-03-09 Thomas Preud'homme <thomas.preudhomme@arm.com>
16883
16884 PR tree-optimization/63743
16885 * cfgexpand.c (reorder_operands): Also reorder if only second operand
16886 had its definition forwarded by TER.
16887
16888 2015-03-08 Jan Hubicka <hubicka@ucw.cz>
16889
16890 PR lto/65316
16891 * ipa-utils.h (types_odr_comparable): Add strict argument.
16892 * ipa-devirt.c: Fix whitespace;
16893 (odr_hasher): Remove.
16894 (odr_name_hasher, odr_vtable_hasher): New hashers.
16895 (can_be_name_hashed_p): New predicate.
16896 (hash_type_name): remove.
16897 (hash_odr_name): New.
16898 (odr_name_hasher::hash): new.
16899 (can_be_vtable_hashed_p): New.
16900 (hash_odr_vtable): New.
16901 (odr_vtable_hasher::hash): New.
16902 (types_same_for_odr): Add strict parameter.
16903 (types_odr_comparable): Likewise.
16904 (odr_name_hasher::equal): New.
16905 (odr_vtable_hasher::equal): New.
16906 (odr_name_hasher::remove): New.
16907 (odr_hash_type): Change to hash_table<odr_name_hasher>.
16908 (odr_vtable_hash_type): New.
16909 (odr_vtable_hash): New.
16910 (odr_subtypes_equivalent_p): Do strict comparsion.
16911 (add_type_duplicate): Merge type names; cleanup; avoid type
16912 duplicates.
16913 (register_odr_type): Initialize vtable hash.
16914 (build_type_inheritance_graph): Likewise
16915 (get_odr_type): Reorg to use two hashes.
16916 (dump_possible_polymorphic_call_targets): Move sanity check after debug
16917 output.
16918 (ipa_devirt): Dump type_inheritance_graph.
16919 (types_same_for_odr): Add strict mode.
16920
16921 2015-03-05 Jan Hubicka <hubicka@ucw.cz>
16922
16923 PR ipa/65334
16924 * cgraph.h (symtab_node): Add definition_alignment,
16925 can_increase_alignment_p and increase_alignment.
16926 * symtab.c (symtab_node::can_increase_alignment_p,
16927 increase_alignment_1, symtab_node::increase_alignment,
16928 symtab_node::definition_alignment): New.
16929 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Use
16930 can_increase_alignment_p.
16931 * tree-vectorizer.c (increase_alignment): Use increase_alignment.
16932 * tree-vect-stmts.c (ensure_base_align): Likewise.
16933 * varasm.c (function_section_1): Use definition_alignment.
16934 (assemble_start_function): Likewise.
16935 (emit_local): likewise.
16936 (build_constant_desc): Likewsie.
16937 (output_constant_def_contents): Likewise.
16938 (place_block_symbol): Likewise.
16939 (output_object_block): Likewise.
16940
16941 2015-03-05 Jan Hubicka <hubicka@ucw.cz>
16942
16943 PR ipa/65316
16944 * tree.c (free_lang_data_in_type): Be sure to keep BINFO_VTABLE
16945 when outputting debug.
16946
16947 2015-03-07 Marek Polacek <polacek@redhat.com>
16948 Martin Uecker <uecker@eecs.berkeley.edu>
16949
16950 PR sanitizer/65280
16951 * doc/invoke.texi: Update description of -fsanitize=bounds.
16952
16953 2015-03-06 Wilco Dijkstra <wilco.dijkstra@arm.com>
16954
16955 * tree-ssa-phiopt.c (neg_replacement): Remove.
16956 (tree_ssa_phiopt_worker): Remove negate optimization.
16957
16958 2015-03-05 Jan Hubicka <hubicka@ucw.cz>
16959
16960 PR ipa/65302
16961 * value-prof.c (gimple_ic): Pure dead eh edges when needed.
16962
16963 2015-03-06 Richard Biener <rguenther@suse.de>
16964
16965 PR middle-end/64928
16966 * tree-ssa-live.h (struct tree_live_info_d): Add livein_obstack
16967 and liveout_obstack members.
16968 (calculate_live_on_exit): Remove.
16969 (calculate_live_ranges): Change declaration.
16970 * tree-ssa-live.c (liveness_bitmap_obstack): Remove global var.
16971 (new_tree_live_info): Adjust.
16972 (calculate_live_ranges): Delete livein when not wanted.
16973 (calculate_live_ranges): Do not initialize liveness_bitmap_obstack.
16974 Deal with partly deleted live info.
16975 (loe_visit_block): Remove temporary bitmap by using
16976 bitmap_ior_and_compl_into.
16977 (live_worklist): Adjust accordingly.
16978 (calculate_live_on_exit): Make static.
16979 * tree-ssa-coalesce.c (coalesce_ssa_name): Tell calculate_live_ranges
16980 we do not need livein.
16981
16982 2015-03-06 Jonathan Wakely <jwakely@redhat.com>
16983
16984 * real.c (real_from_string): Fix typo in assertion.
16985
16986 2015-03-06 Alex Velenko <alex.velenko@arm.com>
16987
16988 * ChangeLog (2015-03-05): Reflect Richard Henderson as actual author of
16989 the patch.
16990
16991 2015-03-05 Jan Hubicka <hubicka@ucw.cz>
16992
16993 * ipa-icf.c (sem_variable::equals_wpa): Check FINAL flags.
16994
16995 2015-03-05 Vladimir Makarov <vmakarov@redhat.com>
16996
16997 PR target/64342
16998 * lra-assigns.c (find_hard_regno_for): Rename to
16999 find_hard_regno_for_1. Add a new parameter.
17000 (find_hard_regno_for): New function using find_hard_regno_for_1.
17001
17002 2015-03-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
17003
17004 PR rtl-optimization/65067
17005 * expmed.c (store_bit_field, extract_bit_field): Reworked the
17006 strict volatile bitfield handling.
17007
17008 2015-03-05 Martin Liska <mliska@suse.cz>
17009
17010 PR ipa/65318
17011 * ipa-icf.c (sem_variable::equals): Compare variables types.
17012
17013 2015-03-05 Richard Henderson <rth@redhat.com>
17014
17015 PR target/65121
17016 * config/arm/arm.c (arm_function_in_section_p): Fix predicate to
17017 correctly check weak symbol binding.
17018
17019 2015-03-05 Steve Ellcey <sellcey@imgtec.com>
17020
17021 PR middle-end/65315
17022 * cfgexpand.c (expand_stack_vars): Update large_align to maximum
17023 needed alignment.
17024
17025 2015-03-05 Martin Liska <mliska@suse.cz>
17026
17027 * ipa-inline.c (inline_small_functions): Set default value to
17028 prevent warning during bootstrap.
17029 * tree.h: Add pragma guard that ignores false positives during
17030 bootstrap.
17031
17032 2015-03-05 Richard Biener <rguenther@suse.de>
17033
17034 PR tree-optimization/65310
17035 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
17036 Properly preserve alignment of the base of the access.
17037
17038 2015-03-05 Richard Biener <rguenther@suse.de>
17039
17040 PR ipa/65270
17041 * ipa-icf-gimple.c (func_checker::compare_memory_operand):
17042 Compare dependence info.
17043
17044 2015-03-05 Richard Biener <rguenther@suse.de>
17045
17046 PR middle-end/65233
17047 * ipa-polymorphic-call.c: Include tree-ssa-operands.h and
17048 tree-into-ssa.h.
17049 (walk_ssa_copies): Revert last chage. Instead do not walk
17050 SSA names registered for SSA update.
17051
17052 2015-03-03 Jan Hubicka <hubicka@ucw.cz>
17053
17054 PR ipa/65270
17055 * ipa-icf.c (sem_item::compare_cgraph_references): Compare
17056 vtable references for their containing type.
17057 (sem_function::equals_wpa): Compare TYPE_RESTRICT
17058 and type attributes.
17059
17060 2015-03-04 Eric Botcazou <ebotcazou@adacore.com>
17061
17062 * fold-const.c (round_up_loc): Cast divisor to signed on all paths
17063 before negating it.
17064 * stor-layout.c (finalize_record_size): Revert latest change.
17065
17066 2015-03-04 Andreas Tobler <andreast@gcc.gnu.org>
17067
17068 * config/rs6000/t-freebsd64: Remove 32-bit soft-float multilibs.
17069
17070 2015-03-03 Jan Hubicka <hubicka@ucw.cz>
17071
17072 * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p): Rewrite
17073 for correct comdat handling.
17074 (cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
17075 Likewise.
17076 * cgraph.h (call_for_symbol_and_aliases): Fix formating.
17077 (used_from_object_file_p_worker): Remove.
17078 (cgraph_node::only_called_directly_or_alised): Add
17079 used_from_object_file_p.
17080 * ipa-inline-analysis.c (growth_likely_positive): Optimie.
17081 * ipa-inline-transform.c (can_remove_node_now_p_1): Use
17082 can_remove_if_no_direct_calls_and_refs_p.
17083
17084 2015-03-04 Nick Clifton <nickc@redhat.com>
17085
17086 * config/rl78/rl78.h (enum reg_class): Remove real registers from
17087 General register class.
17088 * config/rl78/rl78-real.md: Replace general register constraints
17089 with real+virtual register constraints.
17090
17091 2015-03-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17092
17093 * config/s390/s390.c (s390_expand_builtin): Exlude non-htm builtins
17094 from checking for -mhtm option.
17095
17096 2015-03-03 Jan Hubicka <hubicka@ucw.cz>
17097
17098 * tree-sra.c (convert_callers): Use call_for_symbol_and_aliases.
17099 (struct ipa_sra_check_caller_data): Add has_thunk field.
17100 (ipa_sra_check_caller): Check for thunk.
17101 (ipa_sra_preliminary_function_checks): Give up on function with
17102 thunks.
17103 (ipa_early_sra): Use call_for_symbol_and_aliases.
17104
17105 2015-03-03 Kaz Kojima <kkojima@gcc.gnu.org>
17106
17107 PR target/65249
17108 * config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
17109 called for __stack_chk_guard symbol.
17110
17111 2015-03-03 DJ Delorie <dj@redhat.com>
17112
17113 * config/rl78/rl78-real.md (*addqi_real): Allow SADDR types for
17114 inc/dec.
17115 (*addhi3_real): Likewise.
17116 * config/rl78/rl78-virt.md (*inc<mode>3_virt): Additional
17117 pattern to match incrementing memory.
17118 * config/rl78/predicates.md (rl78_1_2_operand): New.
17119 * config/rl78/rl78.c (rl78_force_nonfar_3): Allow far mem-mem if
17120 it's the same and only mem.
17121 (rl78_alloc_physical_registers_op2): If there's effectively only
17122 one MEM, transcode it into HL.
17123 (rl78_far_p): Reject addresses that aren't legitimate.
17124
17125 2015-03-03 Eric Botcazou <ebotcazou@adacore.com>
17126
17127 * fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before
17128 negating it.
17129
17130 * tree-sra.c (pa_sra_preliminary_function_checks): Fix typo in message.
17131
17132 2015-03-03 Max Filippov <jcmvbkbc@gmail.com>
17133
17134 Implement call0 ABI for xtensa
17135 * config/xtensa/constraints.md ("a" constraint): Include stack
17136 pointer in case of call0 ABI.
17137 ("q" constraint): Make empty in case of call0 ABI.
17138 ("D" constraint): Include stack pointer in case of call0 ABI.
17139 * config/xtensa/xtensa-protos.h (xtensa_set_return_address,
17140 xtensa_expand_epilogue, xtensa_regno_to_class): Add new function
17141 prototypes.
17142 * config/xtensa/xtensa.c (xtensa_callee_save_size): New
17143 variable.
17144 (xtensa_regno_to_class): Make it a local variable in the
17145 function xtensa_regno_to_class.
17146 (xtensa_function_epilogue, TARGET_ASM_FUNCTION_EPILOGUE): Remove
17147 macro, function prototype and implementation.
17148 (reg_nonleaf_alloc_order): Make it a local variable in the
17149 function order_regs_for_local_alloc.
17150 (xtensa_conditional_register_usage): New function.
17151 (TARGET_CONDITIONAL_REGISTER_USAGE): Define macro.
17152 (xtensa_valid_move): Allow direct moves to stack pointer
17153 register in call0 ABI.
17154 (xtensa_setup_frame_addresses): Only spill register windows in
17155 windowed ABI.
17156 (xtensa_emit_call): Emit call(x)8 or call(x)0 in windowed and
17157 call0 ABI respectively.
17158 (xtensa_function_arg_1): Only mark a7 register for copying in
17159 windowed ABI.
17160 (xtensa_call_save_reg): New function.
17161 (compute_frame_size): Add space for callee saved register
17162 storage to the frame size in call0 ABI.
17163 (xtensa_expand_prologue): Generate code to set up stack frame
17164 and save callee-saved registers in call0 ABI.
17165 (xtensa_expand_epilogue): New function.
17166 (xtensa_set_return_address): New function.
17167 (xtensa_return_addr): Calculate return address in call0 ABI.
17168 (xtensa_builtin_saveregs): Only mark a7 register for copying and
17169 emit copying code in windowed ABI.
17170 (order_regs_for_local_alloc): Add preferred register allocation
17171 order for non-leaf function in call0 ABI.
17172 (xtensa_static_chain): Add atatic chain passing for call0 ABI.
17173 (xtensa_asm_trampoline_template): Add trampoline generation for
17174 call0 ABI.
17175 (xtensa_trampoline_init): Add trampoline initialization for
17176 call0 ABI.
17177 (xtensa_conditional_register_usage, xtensa_regno_to_class): New
17178 functions.
17179 * config/xtensa/xtensa.h (TARGET_WINDOWED_ABI): New macro.
17180 (TARGET_CPU_CPP_BUILTINS): Add built-in define for call0 ABI.
17181 (CALL_USED_REGISTERS): Modify to encode both windowed and call0
17182 ABI call-used registers.
17183 (HARD_FRAME_POINTER_REGNUM): Add frame pointer for call0 ABI.
17184 (INCOMING_REGNO, OUTGOING_REGNO): Use argument unchanged in
17185 call0 ABI.
17186 (REG_CLASS_CONTENTS): Include all registers into the preferred
17187 reload registers set, adjust the set in the
17188 xtensa_conditional_register_usage.
17189 (xtensa_regno_to_class): Drop variable declaration.
17190 (REGNO_REG_CLASS): Redefine to use xtensa_regno_to_class
17191 function.
17192 (WINDOW_SIZE): Define as 8 or 0 for windowed and call0 ABI
17193 respectively.
17194 (FUNCTION_PROFILER): Add _mcount call for call0 ABI.
17195 (TRAMPOLINE_SIZE): Define trampoline size for call0 ABI.
17196 (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 in call0 ABI.
17197 (ASM_OUTPUT_POOL_PROLOGUE): Always generate literal pool
17198 location in call0 ABI.
17199 (EH_RETURN_STACKADJ_RTX): New definition, use a10 for passing
17200 stack adjustment size when handling exception.
17201 (CRT_CALL_STATIC_FUNCTION): Add definition for call0 ABI.
17202 * config/xtensa/xtensa.md (A9_REG, UNSPECV_BLOCKAGE): New
17203 definitions.
17204 ("return" pattern): Generate ret.n/ret in call0 ABI.
17205 ("epilogue" pattern): Expand epilogue.
17206 ("nonlocal_goto" pattern): Use default in call0 ABI.
17207 ("eh_return" pattern): Move implementation to eh_set_a0_windowed,
17208 emit eh_set_a0_* depending on ABI.
17209 ("eh_set_a0_windowed" pattern): Former eh_return pattern.
17210 ("eh_set_a0_call0", "blockage"): New patterns.
17211
17212 2015-03-03 Martin Liska <mliska@suse.cz>
17213
17214 PR ipa/65287
17215 * ipa-icf.c (sem_variable::parse): Skip all alias variables.
17216
17217 2015-03-03 Michael Meissner <meissner@linux.vnet.ibm.com>
17218
17219 PR 65138/target
17220 * config/rs6000/rs6000-tables.opt: Regenerate table.
17221
17222 2015-03-03 Renlin Li <renlin.li@arm.com>
17223
17224 * doc/md.texi (@item ^): Change ? into ^.
17225
17226 2015-03-03 H.J. Lu <hongjiu.lu@intel.com>
17227
17228 * doc/tm.texi: Regenerated.
17229
17230 2015-03-03 Max Filippov <jcmvbkbc@gmail.com>
17231
17232 * builtins.c (expand_builtin_return_addr): Add
17233 RETURN_ADDR_IN_PREVIOUS_FRAME to 'if' condition, remove
17234 surrounding #ifdef.
17235 * config/sparc/sparc.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Change
17236 definition to 1.
17237 * config/xtensa/xtensa.h (RETURN_ADDR_IN_PREVIOUS_FRAME):
17238 Likewise.
17239 * defaults.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 if
17240 undefined.
17241 * doc/tm.texi.in (RETURN_ADDR_IN_PREVIOUS_FRAME): Update
17242 paragraph.
17243
17244 2015-03-03 Martin Jambor <mjambor@suse.cz>
17245 Eric Botcazou <ebotcazou@adacore.com>
17246
17247 * tree-sra.c (ipa_sra_check_caller_data): New type.
17248 (has_caller_p): Removed.
17249 (ipa_sra_check_caller): New function.
17250 (ipa_sra_preliminary_function_checks): Use it.
17251
17252 2015-03-03 Martin Liska <mliska@suse.cz>
17253
17254 * ipa-icf.c (sem_item_optimizer::merge_classes): Use bit or
17255 instead of if branch.
17256
17257 2015-03-03 Martin Liska <mliska@suse.cz>
17258
17259 PR ipa/65282
17260 * ipa-icf.c (sem_variable::equals): Fix wrong condition.
17261
17262 2015-03-23 Jeff Law <law@redhat.com>
17263
17264 PR tree-optimization/65241
17265 * tree-ssa-dom.c (lookup_avail_expr): Only modify the avail_expr
17266 hash table if INSERT is true.
17267
17268 2015-03-03 Georg-Johann Lay <avr@gjlay.de>
17269
17270 PR target/65296
17271 * config.gcc (extra_gcc_objs) [avr-*-rtems*]: Remove.
17272
17273 2015-03-03 Georg-Johann Lay <avr@gjlay.de>
17274
17275 PR target/64331
17276 * config/avr/avr.c (context.h, tree-pass.h): Include them.
17277 (avr_pass_data_recompute_notes): New static variable.
17278 (avr_pass_recompute_notes): New class.
17279 (avr_register_passes): New static function.
17280 (avr_option_override): Call it.
17281
17282 2015-03-03 Georg-Johann Lay <avr@gjlay.de>
17283
17284 Fix various problems with specs file generation.
17285
17286 PR target/65296
17287 * config.gcc (extra_gcc_objs) [avr]: Remove.
17288 * config/avr/driver-avr.c: Remove file.
17289 * config/avr/t-avr (driver-avr.o): Remove rule.
17290 (gen-avr-mmcu-specs): Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD and
17291 INCLUDES to build. Depend on TM_H.
17292 * config/avr/gen-avr-mmcu-specs.c: Tidy up code. Fix various
17293 build warnings. Fix non-matching types and non-existing %-codes.
17294 (tm.h): Include.
17295 (*lib) [!WITH_AVRLIBC]: Don't link libdev.a.
17296 (*libgcc) [WITH_AVRLIBC]: Add "-lm".
17297 * config/avr/avrlibc.h (LIBGCC_SPEC): Remove definition.
17298 * config/avr/avr.h (DRIVER_SELF_SPECS): Fix handling of -march=.
17299 (CPP_SPEC, CC1PLUS_SPEC, ASM_SPEC, LINK_SPEC, LIB_SPEC)
17300 (LIBGCC_SPEC): Remove definitions.
17301
17302 2015-03-03 Eric Botcazou <ebotcazou@adacore.com>
17303
17304 * config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
17305 to create a register in testing mode.
17306
17307 2015-03-03 Martin Liska <mliska@suse.cz>
17308 Jan Hubicka <hubicka@ucw.cz>
17309
17310 PR ipa/65263
17311 * cgraph.c (cgraph_node::has_thunk_p): New function.
17312 * cgraph.h (cgraph_node::has_thunk_p: Likewise.
17313 * ipa-icf.c (redirect_all_callers): Do not redirect thunks.
17314 (sem_function::merge): Assert is changed.
17315
17316 2015-03-03 Martin Liska <mliska@suse.cz>
17317 Martin Jambor <mjambor@suse.cz>
17318
17319 PR ipa/65087
17320 * ipa-icf.c (sem_item_optimizer::execute): Change function
17321 return value to boolean.
17322 (sem_item_optimizer::merge_classes): Likewise.
17323 (ipa_icf_driver): Return TODO_remove_functions in case there's
17324 a merge operation processed.
17325 * ipa-icf.h: Change function return value to boolean.
17326
17327 2015-03-02 Michael Meissner <meissner@linux.vnet.ibm.com>
17328
17329 PR 65138/target
17330 * config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
17331 processor type for 64-bit little endian PowerPC.
17332
17333 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
17334 -mdebug=reg, print TARGET_DEFAULT. Fix logic to use
17335 TARGET_DEFAULT if there is no default cpu. Fix -mdebug=reg
17336 printing built-in mask so it does not pass NULL pointers.
17337
17338 * doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
17339 -mcpu=powerpc64le.
17340
17341 2015-03-02 Steve Ellcey <sellcey@imgtec.com>
17342
17343 PR target/58158
17344 * config/mips/mips.md (mov<mode>cc): Change ISA_HAS_SEL check to
17345 !ISA_HAS_FP_CONDMOVE.
17346
17347 2015-03-02 Aldy Hernandez <aldyh@redhat.com>
17348
17349 * config/i386/i386.md (*udivmod<mode>4_pow2): Remove
17350 reload_completed.
17351
17352 2015-03-02 Ulrich Drepper <drepper@gmail.com>
17353
17354 * doc/invoke.texi (Options for Code Generation Conventions):
17355 Fix URL of DSO paper.
17356
17357 2015-03-02 Jan Hubicka <hubicka@ucw.cz>
17358
17359 PR ipa/65130
17360 * ipa-inline.c (check_callers): Looks for recursion.
17361 (inline_to_all_callers): Give up on uninlinable or recursive edges.
17362 * ipa-inline-analysis.c (inline_summary_t::duplicate): Do not update
17363 summary of inline clones.
17364 (do_estimate_growth_1): Fix recursion check.
17365
17366 2015-03-02 Jan Hubicka <hubicka@ucw.cz>
17367
17368 PR ipa/64988
17369 * ipa-inline-transform.c (clone_inlined_nodes): Do not dissolve
17370 comdat groups.
17371
17372 2015-03-02 Jan Hubicka <hubicka@ucw.cz>
17373 Aldy Hernandez <aldyh@redhat.com>
17374
17375 PR lto/65276
17376 * ipa-devirt.c (add_type_duplicate): Remove odr_violated assert
17377 when checking TYPE_BINFO.
17378
17379 2015-03-02 Richard Biener <rguenther@suse.de>
17380
17381 PR ipa/65270
17382 * ipa-icf-gimple.c: Include builtins.h.
17383 (func_checker::compare_memory_operand): Compare base alignment.
17384
17385 2015-03-02 Ilya Enkovich <ilya.enkovich@intel.com>
17386
17387 PR target/65184
17388 * gcc/config/i386/i386.c (ix86_pass_by_reference) Bounds
17389 are never passed by reference.
17390
17391 2015-03-02 Ilya Enkovich <ilya.enkovich@intel.com>
17392
17393 PR target/65183
17394 * tree-chkp.c (chkp_check_lower): Don't check against
17395 zero bounds for already instrumented functions.
17396 (chkp_check_upper): Likewise.
17397 (chkp_fini): Clean pass local data to avoid wrong reusage.
17398
17399 2015-02-28 Martin Liska <mliska@suse.cz>
17400 Jan Hubicka <hubicka@ucw.cz>
17401
17402 * ipa-icf.c (sem_variable::equals): Improve debug output;
17403 get variable constructor.
17404 (sem_variable::parse): Do not filter out too early; give up on
17405 volatile and register vars.
17406 (sem_item_optimizer::filter_removed_items): Filter out nonreadonly
17407 variables.
17408 * ipa-icf.h (sem_variable::init): Do not set ctor.
17409 (sem_variable::ctor): Remove.
17410
17411 2015-03-01 Aldy Hernandez <aldyh@redhat.com>
17412
17413 PR middle-end/65233
17414 * ipa-polymorphic-call.c (walk_ssa_copies): Handle empty PHIs.
17415
17416 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
17417
17418 * ipa-icf.c: Include stor-layout.h
17419 (sem_function::compare_cgraph_references): Rename to ...
17420 (sem_item::compare_cgraph_references): ... this one.
17421 (sem_variable::equals_wpa): New function
17422 (sem_variable::equals): Do not check stuff already verified by
17423 equals_wpa.
17424 (sem_variable::equals): Reorg based on varasm.c:compare_constant.
17425 * ipa-icf.h (sem_item): Add compare_cgraph_references.
17426 (sem_function): Remove compare_cgraph_references.
17427 (sem_variable): Turns equals_wpa into non-inline.
17428
17429 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
17430
17431 * ipa-icf.c (sem_function::init): Fix formating; skip GIMPLE_PREDICT.
17432 (sem_item::add_expr): New function.
17433 (sem_function::hash_stmt): Handle operands of most statements.
17434 (sem_variable::get_hash): Hash the actual constructor.
17435 * ipa-icf.h (sem_item): Add add_expr.
17436 (sem_function): Update prototype of hash_stmt
17437
17438 2015-02-28 Martin Liska <mliska@suse.cz>
17439 Jan Hubicka <hubicka@ucw.cz>
17440
17441 PR ipa/65245
17442 * ipa-icf-gimple.c (func_checker::compare_function_decl):
17443 Remove.
17444 (func_checker::compare_variable_decl): Skip symtab vars.
17445 (func_checker::compare_cst_or_decl): Update.
17446 * ipa-icf.c (sem_function::parse): Do not consider aliases.
17447 (sem_function::compare_cgraph_references): Add ADDRESS parameter;
17448 use correct symtab predicates.
17449 (sem_function::equals_wpa): Update uses of compare_cgraph_references.
17450 (sem_variable::parse): Update comment.
17451 (sem_item_optimizer::build_graph): Consider ultimate aliases
17452 for references.
17453
17454 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
17455
17456 * ipa-icf-gimple.c (func_checker::compare_operand): Fix handling
17457 of OBJ_TYPE_REF.
17458
17459 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
17460
17461 * ipa-icf.c (sem_function::merge): Fix handling of COMDAT.
17462 (sem_variable::merge) Likewise.
17463
17464 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
17465
17466 * ipa-inline.c (can_inline_edge_p): Match opt_for_fn on inline
17467 target; also match flag_ipa_devirt.
17468
17469 2015-03-01 Martin Liska <mliska@suse.cz>
17470 Jan Hubicka <hubicka@ucw.cz>
17471
17472 * ipa-icf-gimple.c (func_checker::compare_variable_decl):
17473 Validate variable alignment.
17474 * ipa-icf.c (sem_function::equals_private): Be more precise
17475 about non-common function attributes.
17476 (sem_variable::equals): Likewise.
17477
17478 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
17479
17480 PR ipa/65237
17481 * ipa-icf.c (sem_function::merge): Do not attempt to produce alias
17482 across COMDAT group boundary.
17483
17484 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
17485
17486 PR ipa/65232
17487 * ipa-icf.c (clear_decl_rtl): New function.
17488 (sem_function::merge): Clear RTL before forming alias.
17489 (sem_variable::merge): Clear RTL before forming alias.
17490
17491 2015-02-28 Jan Hubicka <hubicka@ucw.cz>
17492
17493 PR ipa/65236
17494 * cgraphunit.c (cgraph_node::expand_thunk): Enable return slot opt.
17495
17496 2015-02-28 Xingxing Pan <xxingpan@marvell.com>
17497
17498 * config/aarch64/aarch64.md: (mov<mode>_aarch64): Change type
17499 to neon_to_gp<q>.
17500
17501 2015-02-27 Vladimir Makarov <vmakarov@redhat.com>
17502
17503 * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): Fix
17504 a typo in the description.
17505
17506 2015-02-27 Vladimir Makarov <vmakarov@redhat.com>
17507
17508 PR target/64317
17509 * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
17510 * params.h (LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
17511 * lra-constraints.c: Include "params.h".
17512 (EBB_PROBABILITY_CUTOFF): Use
17513 LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF.
17514 (lra_inheritance): Use '<' instead of '<=' for
17515 EBB_PROBABILITY_CUTOFF.
17516 * doc/invoke.texi (lra-inheritance-ebb-probability-cutoff):
17517 Document change.
17518
17519 2015-02-27 Martin Liska <mliska@suse.cz>
17520
17521 * ipa-icf.h (struct symbol_compare_hashmap_traits): Add missing
17522 vector length condition.
17523
17524 2015-02-27 Sandra Loosemore <sandra@codesourcery.com>
17525
17526 * doc/extend.texi (x86 transactional memory intrinsics):
17527 Reorganize discussion of _xbegin. Clarify that the return
17528 value is a bit mask. Expand example and move to end of section.
17529
17530 2015-02-26 Jakub Jelinek <jakub@redhat.com>
17531 Aldy Hernandez <aldyh@redhat.com>
17532
17533 PR rtl-optimization/65220
17534 * config/i386/i386.md (*udivmod<mode>4_pow2): New.
17535
17536 2015-02-27 Vladimir Makarov <vmakarov@redhat.com>
17537
17538 PR target/65032
17539 * lra-remat.c (update_scratch_ops): New.
17540 (do_remat): Call it.
17541 * lra.c (lra_register_new_scratch_op): New. Take code from ...
17542 (remove_scratches): ... here.
17543 * lra-int.h (lra_register_new_scratch_op): New prototype.
17544
17545 2015-02-27 Marek Polacek <polacek@redhat.com>
17546
17547 PR c/65040
17548 * doc/invoke.texi: Update to reflect that -Wformat=2 doesn't enable
17549 -Wformat-signedness anymore.
17550
17551 2015-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17552
17553 * config/s390/s390.c: (s390_atomic_assign_expand_fenv): New
17554 function.
17555 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define macro.
17556
17557 2015-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17558
17559 * config/s390/s390.c (enum s390_builtin):
17560 Add S390_BUILTIN_S390_SFPC and S390_BUILTIN_S390_EFPC.
17561 (code_for_builtin): Add CODE_FOR_s390_sfpc and CODE_FOR_s390_efpc.
17562 (s390_init_builtins): Generate new builtin functions.
17563 * config/s390/s390.md (UNSPECV_SFPC, UNSPECV_EFPC): New constants.
17564 (s390_sfpc, s390_efpc): New pattern definitions.
17565
17566 2015-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17567
17568 * config/s390/s390.c: (enum s390_builtin, s390_expand_builtin):
17569 Rename S390_BUILTIN_max to S390_BUILTIN_MAX.
17570 (s390_builtin_decls): New array.
17571 (s390_init_builtins): Put builtin decls into s390_builtin_decls.
17572 (s390_builtin_decl): New function.
17573 (TARGET_BUILTIN_DECL): Define macro.
17574
17575 2015-02-27 Richard Biener <rguenther@suse.de>
17576
17577 PR middle-end/63175
17578 * builtins.c (get_object_alignment_2): Make sure to re-apply
17579 the ANDed mask after recursing to its operand gets us a new
17580 misalignment bit position.
17581
17582 2015-02-26 Jan Hubicka <hubicka@ucw.cz>
17583 Martin Liska <mliska@suse.cz>
17584
17585 PR bootstrap/65150
17586 * ipa-icf.c (symbol_compare_collection::symbol_compare_colleciton):
17587 Use address_matters_p.
17588 (redirect_all_callers, set_addressable): New functions.
17589 (sem_function::merge): Reorganize and fix merging issues.
17590 (sem_variable::merge): Likewise.
17591 (sem_variable::compare_sections): Remove.
17592 * common.opt (fmerge-all-constants, fmerge-constants): Remove
17593 Optimization flag.
17594 * symtab.c (symtab_node::resolve_alias): When alias has aliases,
17595 redirect them.
17596 (symtab_node::make_decl_local): Set ADDRESSABLE bit when
17597 decl is used.
17598 (address_matters_1): New function.
17599 (symtab_node::address_matters_p): New function.
17600 * cgraph.c (cgraph_edge::verify_corresponds_to_fndecl): Fix
17601 check for merged flag.
17602 * cgraph.h (address_matters_p): Declare.
17603 (symtab_node::address_taken_from_non_vtable_p): Remove.
17604 (symtab_node::address_can_be_compared_p): New method.
17605 (ipa_ref::address_matters_p): Move here from ipa-ref.c; simplify.
17606 * ipa-visibility.c (symtab_node::address_taken_from_non_vtable_p):
17607 Remove.
17608 (comdat_can_be_unshared_p_1) Use address_matters_p.
17609 (update_vtable_references): Fix formating.
17610 * ipa-ref.c (ipa_ref::address_matters_p): Move inline.
17611 * cgraphunit.c (cgraph_node::create_wrapper): Drop UNINLINABLE flag.
17612 * cgraphclones.c: Preserve merged and icf_merged flags.
17613
17614 2015-02-26 Sandra Loosemore <sandra@codesourcery.com>
17615
17616 * doc/extend.texi (Function Attributes): Fix spelling and typos.
17617 (Label Attributes): Likewise.
17618 (Cilk Plus Builtins): Likewise.
17619 (ARC SIMD Built-in Functions): Likewise.
17620 (ARM C Language Extensions (ACLE)): Likewise.
17621 (PowerPC Built-in Functions): Likewise.
17622 (PowerPC Hardware Transactional Memory Built-in Functions):
17623 Likewise.
17624
17625 2015-02-26 Jakub Jelinek <jakub@redhat.com>
17626
17627 PR tree-optimization/65216
17628 * tree-ssa-reassoc.c (rewrite_expr_tree): Force creation of
17629 new stmt and new SSA_NAME for lhs whenever the arguments have
17630 changed and weren't just swapped. Fix comment typo.
17631
17632 PR tree-optimization/65215
17633 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Return false
17634 for PDP endian targets.
17635 (perform_symbolic_merge, find_bswap_or_nop_1, find_bswap_or_nop):
17636 Fix up formatting issues.
17637 (bswap_replace): Likewise. For BYTES_BIG_ENDIAN, if the final access
17638 size is smaller than the original, adjust MEM_REF offset by the
17639 difference of sizes. Use is_gimple_mem_ref_addr instead of
17640 is_gimple_min_invariant test to avoid adding address temporaries.
17641
17642 2015-02-26 Martin Liska <mliska@suse.cz>
17643 Jan Hubicka <hubicka@ucw.cz>
17644
17645 PR ipa/64693
17646 * ipa-icf.c (symbol_compare_collection::symbol_compare_collection): New.
17647 (sem_item_optimizer::subdivide_classes_by_sensitive_refs): New function.
17648 (sem_item_optimizer::process_cong_reduction): Include division by
17649 sensitive references.
17650 * ipa-icf.h (struct symbol_compare_hashmap_traits): New class.
17651 * ipa-ref.c (ipa_ref::address_matters_p): New function.
17652 * ipa-ref.h (ipa_ref::address_matters_p): Likewise.
17653
17654 2015-02-26 Georg-Johann Lay <avr@gjlay.de>
17655
17656 PR target/65192
17657 * config/avr/avr-protos.h (tiny_valid_direct_memory_access_range):
17658 Remove.
17659 * config/avr/avr.c: Same.
17660 (avr_legitimate_address_p) <AVR_TINY, CONSTANT_ADDRESS_P>:
17661 Refuse any constant address not in 0..0xbf.
17662 * config/avr/avr.md (*mov<mode>, *movsf): Remove
17663 tiny_valid_direct_memory_access_range from insn conditions.
17664 (mov<mode>): Don't special-case expansion of avrtiny addresses.
17665
17666 2015-02-26 Oleg Endo <olegendo@gcc.gnu.org>
17667
17668 PR target/61142
17669 * config/sh/sh.c (sh_check_add_incdec_notes): New function.
17670 * config/sh/sh-protos.h (sh_check_add_incdec_notes): Declare it.
17671 * config/sh/predicates.md (const_logical_operand): New predicate.
17672 * config/sh/sh.md: Add new peephole2 patterns.
17673
17674 2015-02-26 Marek Polacek <polacek@redhat.com>
17675
17676 PR ipa/65008
17677 * ipa-inline.c (early_inliner): Recompute inline parameters.
17678
17679 2015-02-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17680
17681 PR target/65171
17682 * config/rs6000/rs6000.c (rs6000_analyze_swaps): Ensure
17683 instructions with TImode operands are included in the analysis.
17684
17685 2015-02-26 Sebastian Pop <s.pop@samsung.com>
17686
17687 * tree-ssa-threadupdate.c (dump_jump_thread_path): Print all edges
17688 of an EDGE_FSM_THREAD.
17689
17690 2015-02-25 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
17691
17692 * config/rs6000/htm.md (tcheck): Fix assembly encoding.
17693
17694 2015-02-25 Aldy Hernandez <aldyh@redhat.com>
17695
17696 PR debug/46102
17697 * dwarf2out.c (dwarf2out_init): Disable -feliminate-dwarf2-dups.
17698
17699 2015-02-26 Sebastian Pop <s.pop@samsung.com>
17700
17701 PR tree-optimization/65048
17702 * tree-ssa-threadupdate.c (valid_jump_thread_path): New.
17703 (thread_through_all_blocks): Call valid_jump_thread_path.
17704 Remove invalid FSM jump-thread paths.
17705
17706 2015-02-26 Jakub Jelinek <jakub@redhat.com>
17707
17708 * passes.c (ipa_write_summaries_1): Call lto_output_init_mode_table.
17709 (ipa_write_optimization_summaries): Likewise.
17710 * tree-streamer.h: Include data-streamer.h.
17711 (streamer_mode_table): Declare extern variable.
17712 (bp_pack_machine_mode, bp_unpack_machine_mode): New inline functions.
17713 * lto-streamer-out.c (lto_output_init_mode_table,
17714 lto_write_mode_table): New functions.
17715 (produce_asm_for_decls): Call lto_write_mode_table when streaming
17716 offloading LTO.
17717 * lto-section-in.c (lto_section_name): Add "mode_table" entry.
17718 (lto_create_simple_input_block): Add mode_table argument to the
17719 lto_input_block constructors.
17720 * ipa-prop.c (ipa_prop_read_section, read_replacements_section):
17721 Likewise.
17722 * data-streamer-in.c (string_for_index): Likewise.
17723 * ipa-inline-analysis.c (inline_read_section): Likewise.
17724 * ipa-icf.c (sem_item_optimizer::read_section): Likewise.
17725 * lto-cgraph.c (input_cgraph_opt_section): Likewise.
17726 * lto-streamer-in.c (lto_read_body_or_constructor,
17727 lto_input_toplevel_asms): Likewise.
17728 (lto_input_mode_table): New function.
17729 * tree-streamer-out.c (pack_ts_fixed_cst_value_fields,
17730 pack_ts_decl_common_value_fields, pack_ts_type_common_value_fields):
17731 Use bp_pack_machine_mode.
17732 * real.h (struct real_format): Add name field.
17733 * lto-streamer.h (enum lto_section_type): Add LTO_section_mode_table.
17734 (class lto_input_block): Add mode_table member.
17735 (lto_input_block::lto_input_block): Add mode_table_ argument,
17736 initialize mode_table.
17737 (struct lto_file_decl_data): Add mode_table field.
17738 (lto_input_mode_table, lto_output_init_mode_table): New prototypes.
17739 * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields,
17740 unpack_ts_decl_common_value_fields,
17741 unpack_ts_type_common_value_fields): Call bp_unpack_machine_mode.
17742 * tree-streamer.c (streamer_mode_table): New variable.
17743 * real.c (ieee_single_format, mips_single_format,
17744 motorola_single_format, spu_single_format, ieee_double_format,
17745 mips_double_format, motorola_double_format,
17746 ieee_extended_motorola_format, ieee_extended_intel_96_format,
17747 ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
17748 ibm_extended_format, mips_extended_format, ieee_quad_format,
17749 mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
17750 decimal_single_format, decimal_double_format, decimal_quad_format,
17751 ieee_half_format, arm_half_format, real_internal_format): Add name
17752 field.
17753 * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
17754
17755 2015-02-26 Yuri Rumyantsev <ysrumyan@gmail.com>
17756
17757 PR target/65161
17758 * config/i386/i386.c (ix86_sched_reorder): Skip instruction
17759 reordering for selective scheduling.
17760
17761 2015-02-26 Terry Guo <terry.guo@arm.com>
17762
17763 * config/arm/arm-cores.def (cortex-m7): Add flag FL_NO_VOLATILE_CE.
17764 * config/arm/arm-protos.h (FL_NO_VOLATILE_CE): New flag.
17765 (arm_arch_no_volatile_ce): Declare new global variable.
17766 * config/arm/arm.c (arm_arch_no_volatile_ce): New global variable.
17767 (arm_option_override): Assign value to arm_arch_no_volatile_ce.
17768 * config/arm/arm.h (arm_arch_no_volatile_ce): Declare it.
17769 (TARGET_NO_VOLATILE_CE): New macro.
17770 * config/arm/arm.md (arm_comparison_operator): Disabled if not allow
17771 volatile memory access in IT block
17772
17773 2015-02-25 Kai Tietz <ktietz@redhat.com>
17774
17775 PR tree-optimization/61917
17776 * tree-vect-loop.c (vectorizable_reduction): Handle obvious case
17777 that reduc_def_stmt is null.
17778
17779 2015-02-25 Martin Liska <mliska@suse.cz>
17780
17781 * ipa-icf-gimple.c (func_checker::compare_variable_decl): Compare
17782 hard register variables.
17783
17784 2015-02-25 Kai Tietz <ktietz@redhat.com>
17785
17786 PR target/64212
17787 * symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
17788 (symtab::noninterposable_alias): Likewise.
17789
17790 2015-02-25 Ilya Enkovich <ilya.enkovich@intel.com>
17791
17792 PR target/65167
17793 * gcc/config/i386/i386.c (ix86_function_arg_regno_p): Support
17794 bounds registers.
17795 (avoid_func_arg_motion): Add dependencies for BNDSTX insns.
17796
17797 2015-02-25 Alan Lawrence <alan.lawrence@arm.com>
17798
17799 PR target/64997
17800 * config/aarch64/aarch64.md (*xor_one_cmpl<mode>3): Use FP_REGNUM_P
17801 as split condition; force split via '#' in output pattern.
17802
17803 2015-02-25 Richard Biener <rguenther@suse.de>
17804 Kai Tietz <ktietz@redhat.com>
17805
17806 PR tree-optimization/61917
17807 * tree-vect-loop.c (vectorizable_reduction): Allow
17808 vect_internal_def without reduction to exit graceful.
17809
17810 2015-02-25 Georg-Johann Lay <avr@gjlay.de>
17811
17812 PR target/65196
17813 * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
17814 only with NONDEBUG_INSN_P.
17815
17816 2015-02-25 Georg-Johann Lay <avr@gjlay.de>
17817
17818 Use variadic macros with avr-log.c.
17819
17820 * config/avr/avr-protos.h (avr_vdump): New prototype.
17821 (avr_log_set_caller_e, avr_log_set_caller_f): Remove protos.
17822 (avr_edump, avr_fdump, avr_dump): (Re)define to use avr_vdump.
17823 * config/avr/avr-log.c: Adjust comments.
17824 (avr_vdump): New function.
17825 (avr_vadump): Pass caller as 2nd argument instead of format string.
17826 (avr_log_caller, avr_log_fdump_e, avr_log_fdump_f)
17827 (avr_log_set_caller_e, avr_log_set_caller_f): Remove.
17828
17829 2015-02-25 Jakub Jelinek <jakub@redhat.com>
17830
17831 PR lto/64374
17832 * target.def (target_option_stream_in): New target hook.
17833 * tree-streamer-in.c (streamer_read_tree_bitfields): Invoke
17834 targetm.target_option.post_stream_in if non-NULL.
17835 * doc/tm.texi.in: Add @hook TARGET_OPTION_POST_STREAM_IN.
17836 * doc/tm.texi: Updated.
17837 * config/i386/i386.c (ix86_function_specific_post_stream_in): New
17838 function.
17839 (TARGET_OPTION_POST_STREAM_IN): Redefine.
17840
17841 2015-02-24 Jeff Law <law@redhat.com>
17842
17843 PR target/65117
17844 * config/xtensa/xtensa.md (zero_cost_loop_start): Reverse numbering
17845 of operand 0 and operand 2.
17846 (zero_cost_loop_end, loop_end): Similarly.
17847
17848 2015-02-24 Aldy Hernandez <aldyh@redhat.com>
17849
17850 * gimple.h (gimple_build_assign): Rename CXX_MEM_STAT_DECL to
17851 CXX_MEM_STAT_INFO.
17852
17853 2015-02-24 DJ Delorie <dj@redhat.com>
17854
17855 * config/rl78/rl78-protos.h (rl78_split_movsi): Accept a mode as well.
17856 * config/rl78/rl78-expand.md (movsf): New, same as movsi.
17857 * config/rl78/rl78.c (rl78_split_movsi): Accept a mode, use it
17858 instead of hardcoding SImode.
17859
17860 2015-02-24 Bernd Schmidt <bernds@codesourcery.com>
17861
17862 * omp-low.c (create_omp_child_function): Tag entrypoint
17863 functions with a special attribute.
17864
17865 2015-02-24 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
17866
17867 PR target/65058
17868 * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Drop unused variable.
17869
17870 2015-02-24 Vladimir Makarov <vmakarov@redhat.com>
17871
17872 PR rtl-optimization/65123
17873 * lra-remat.c (operand_to_remat): Check hard regs in insn
17874 definition too.
17875
17876 2015-02-24 Nick Clifton <nickc@redhat.com>
17877
17878 * config/v850/v850.h (ASM_SPEC): Pass -msoft-float/-mhard-float on
17879 to the assembler.
17880
17881 2015-02-24 Thomas Schwinge <thomas@codesourcery.com>
17882
17883 PR libgomp/64625
17884 * omp-builtins.def (BUILT_IN_GOACC_DATA_START): Specify as
17885 BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, not
17886 BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR.
17887 (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_UPDATE): Specify as
17888 BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR, not
17889 BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR.
17890 (BUILT_IN_GOACC_PARALLEL): Specify as
17891 BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR, not
17892 BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR.
17893 * builtin-types.def
17894 (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
17895 (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
17896 Remove function types.
17897 (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
17898 (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
17899 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
17900 New function types.
17901
17902 2015-02-24 Georg-Johann Lay <avr@gjlay.de>
17903
17904 * config/avr/stdfix.h [__WITH_AVRLIBC__]: Include <stdfix-avrlibc.h>.
17905
17906 2015-02-24 Jakub Jelinek <jakub@redhat.com>
17907
17908 PR tree-optimization/65170
17909 * wide-int.cc (wi::mul_internal): For the umul_ppmm optimization,
17910 if val[1] < 0, clear also val[2] and return 3.
17911
17912 2015-02-24 Alan Modra <amodra@gmail.com>
17913
17914 PR target/65172
17915 * config/rs6000/rs6000.c (get_memref_parts): Only return true
17916 when *base is a reg. Handle nested plus addresses. Simplify
17917 pre_modify test.
17918
17919 2015-02-22 Max Filippov <jcmvbkbc@gmail.com>
17920
17921 * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT, DATA_ALIGNMENT):
17922 use natural alignment when optimizing for size.
17923
17924 2015-02-23 Kaz Kojima <kkojima@gcc.gnu.org>
17925
17926 PR target/65153
17927 * config/sh/sh.md (movsicc_true+3): Remove peephole.
17928 * config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
17929 * config/sh/sh.c (replace_n_hard_rtx): Remove.
17930
17931 2015-02-23 Richard Sandiford <richard.sandiford@arm.com>
17932
17933 PR fortran/63427
17934 * wide-int.cc (wi::from_mpz): Cope with unwrapped values that are
17935 too big for a wide_int. Implement missing wrapping operation.
17936
17937 2015-02-23 Oleg Endo <olegendo@gcc.gnu.org>
17938
17939 PR target/65163
17940 * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
17941 instead of const_int 4294901760.
17942
17943 2015-02-23 Georg-Johann Lay <avr@gjlay.de>
17944
17945 * config/avr/t-avr: Fix typo in comment.
17946
17947 2015-02-21 Richard Sandiford <richard.sandiford@arm.com>
17948
17949 * doc/rtl.texi (fma): Clarify documentation.
17950
17951 2015-02-20 Aldy Hernandez <aldyh@redhat.com>
17952
17953 PR debug/58123
17954 * gimplify.c (gimplify_expr): Prefer location of TRY_FINALLY_EXPR
17955 over input_location.
17956
17957 2015-02-20 Bernd Schmidt <bernds@codesourcery.com>
17958
17959 * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
17960 unpack_ts_type_common_value_fields): If ACCEL_COMPILER,
17961 restrict alignments to absolute_biggest_alignment.
17962 * config/i386/i386.c (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT):
17963 Define.
17964 * doc/tm.texi.in (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT): Add.
17965 * doc/tm.texi: Regenerate.
17966 * target.def (absolute_biggest_alignment): New DEFHOOKPOD.
17967
17968 2015-02-20 Vladimir Makarov <vmakarov@redhat.com>
17969
17970 PR target/64172
17971 * ira-color.c (color_pass): Prevent splitting multi-register pseudos.
17972
17973 2015-02-20 Richard Biener <rguenther@suse.de>
17974
17975 PR tree-optimization/65136
17976 * tree-ssa-propagate.c: Include cfgloop.h.
17977 (replace_phi_args_in): Avoid replacing loop latch edge PHI
17978 arguments with constants.
17979
17980 2015-02-20 Jakub Jelinek <jakub@redhat.com>
17981 Martin Liska <mliska@suse.cz>
17982
17983 PR target/63892
17984 * ipa-icf.c (sem_function::merge): If DECL_COMDAT_GROUP (alias->decl),
17985 don't try to create_thunk if stdarg_p. If
17986 !sem_item::target_supports_symbol_aliases_p (), similarly, and try to
17987 redirect_callers if possible.
17988 (sem_item_optimizer::execute): Call unregister_hooks here...
17989 (ipa_icf_driver): ... instead of here.
17990
17991 2015-02-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17992
17993 * config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
17994 Mark operand 0 as earlyclobber in 2nd alternative.
17995 (1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
17996 Write negated shift amount into QI lowpart operand 0 and use it
17997 in the shift step.
17998 (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
17999
18000 2015-02-20 Bernd Schmidt <bernds@codesourcery.com>
18001
18002 * cgraph.h (clone_function_name_1): Declare.
18003 * cgraphclones.c (clone_function_name_1): New function.
18004 (clone_function_name): Use it.
18005 * lto-partition.c: Include "stringpool.h".
18006 (must_not_rename, maybe_rewrite_identifier)
18007 (validize_symbol_for_target): New static functions.
18008 (privatize_symbol_name): Use must_not_rename.
18009 (promote_symbol): Call validize_symbol_for_target.
18010 (lto_promote_cross_file_statics): Likewise.
18011 (lto_promote_statics_nonwpa): Likewise.
18012
18013 2015-02-20 Georg-Johann Lay <avr@gjlay.de>
18014
18015 PR target/64452
18016 * config/avr/avr.md (pushhi_insn): New insn.
18017 (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
18018
18019 2015-02-20 Bernd Schmidt <bernds@codesourcery.com>
18020 Jakub Jelinek <jakub@redhat.com>
18021
18022 * tree-streamer.c (preload_common_nodes): Don't preload
18023 TI_VA_LIST* for offloading.
18024 * tree-stdarg.c (pass_stdarg::gate): Disable for ACCEL_COMPILER
18025 in_lto_p.
18026
18027 2015-02-19 John David Anglin <danlgin@gcc.gnu.org>
18028
18029 * config/pa/pa.c (pa_emit_move_sequence): Always force
18030 (const (plus (symbol) (const_int))) to const mem. Put REG_EQUAL
18031 note on insn.
18032
18033 * config/pa/pa.c (pa_reloc_rw_mask): New function.
18034 (TARGET_ASM_RELOC_RW_MASK): Define.
18035 (pa_cannot_force_const_mem): Revert previous change.
18036
18037 2015-02-19 Martin Jambor <mjmabor@suse.cz>
18038 Jan Hubicka <hubicka@ucw.cz>
18039
18040 PR ipa/65028
18041 * ipa-cp.c (propagate_alignment_accross_jump_function): Fix propagation
18042 across jump functions.
18043
18044 2015-02-19 Uros Bizjak <ubizjak@gmail.com>
18045
18046 * config/alpha/alpha.c (alpha_in_small_data_p): Reject common symbols.
18047
18048 2015-02-19 Sandra Loosemore <sandra@codesourcery.com>
18049
18050 * doc/extend.texi (x86 transactional memory intrinsics): Copy-edit.
18051
18052 2015-02-19 Richard Henderson <rth@redhat.com>
18053
18054 PR middle-end/65074
18055 * varasm.c (default_binds_local_p_2): Don't test node->definition;
18056 test DECL_EXTERNAL independent of symtab_node.
18057
18058 2015-02-19 Jakub Jelinek <jakub@redhat.com>
18059
18060 PR lto/65012
18061 * varpool.c (varpool_node::get_constructor): Return early
18062 if this->lto_file_data is NULL.
18063
18064 2015-02-19 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
18065
18066 * haifa-sched.c (enum rfs_decision, rfs_str): Remove RFS_DEBUG.
18067 (rank_for_schedule_debug): Update.
18068 (ready_sort): Make static. Move sorting logic to ...
18069 (ready_sort_debug, ready_sort_real): New static functions.
18070 (schedule_block): Sort both debug insns and real insns in preparation
18071 for ready list trimming. Improve debug output.
18072 * sched-int.h (ready_sort): Remove global declaration.
18073
18074 2015-02-18 Trevor Saunders <tsaunders@mozilla.com>
18075
18076 * ipa-icf.c (sem_function::equals_private): Adjust.
18077 (sem_function::bb_dict_test): Take a vec<int> * instead of
18078 auto_vec<int>.
18079 * ipa-icf.h (bb_dict_test): Likewise.
18080
18081 2015-02-18 Jakub Jelinek <jakub@redhat.com>
18082
18083 PR gcov-profile/64634
18084 * tree-eh.c (frob_into_branch_around): Fix up typos
18085 in function comment.
18086 (lower_catch): Put eh_seq resulting from EH lowering of
18087 the cleanup sequence after the cleanup rather than before it.
18088
18089 2015-02-18 Tom de Vries <tom@codesourcery.com>
18090
18091 * common.opt (fstdarg-opt): New option.
18092 * tree-stdarg.c (pass_stdarg::gate): Use flag_stdarg_opt.
18093 * doc/invoke.texi (@item Optimization Options): Add -fstdarg-opt.
18094 (@item -fstdarg-opt): New item.
18095
18096 2015-02-18 H.J. Lu <hongjiu.lu@intel.com>
18097
18098 PR target/65064
18099 * config/ia64/predicates.md (sdata_symbolic_operand): Return false
18100 for common symbols.
18101
18102 2015-02-18 Jakub Jelinek <jakub@redhat.com>
18103
18104 * config/i386/t-intelmic (mkoffload.o): Remove dependency on
18105 insn-modes.h.
18106 (ALL_HOST_OBJS): Add mkoffload.o.
18107 * config/nvptx/t-nvptx (ALL_HOST_OBJS): Likewise.
18108
18109 2015-02-18 Jan Hubicka <hubicka@ucw.cz>
18110
18111 * ipa-devirt.c (odr_subtypes_equivalent_p): Fix formating.
18112 (compare_virtual_tables): Be smarter about skipping typeinfos;
18113 do sane output on virtual table table mismatch.
18114 (warn_odr): Be ready for forward declarations of enums;
18115 output sane info on base mismatch and virtual table mismatch.
18116 (add_type_duplicate): Fix code choosing prevailing type; do not ICE
18117 when only one type is polymorphic.
18118 (get_odr_type): Fix hashtable corruption.
18119 (dump_odr_type): Dump mangled names.
18120
18121 2015-02-18 Richard Biener <rguenther@suse.de>
18122
18123 PR tree-optimization/65063
18124 * tree-predcom.c (determine_unroll_factor): Return 1 if we
18125 have replaced looparound PHIs.
18126
18127 2015-02-18 Martin Liska <mliska@suse.cz>
18128
18129 * lto-streamer.c (lto_streamer_init): Encapsulate
18130 streamer_check_handled_ts_structures with checking macro.
18131
18132 2015-02-18 Jakub Jelinek <jakub@redhat.com>
18133
18134 PR ipa/65087
18135 * cgraphclones.c (cgraph_node::create_virtual_clone): Only copy
18136 section if !implicit_section.
18137 (cgraph_node::create_version_clone_with_body): Likewise.
18138 * trans-mem.c (ipa_tm_create_version): Likewise.
18139
18140 2015-02-18 Richard Biener <rguenther@suse.de>
18141
18142 PR tree-optimization/62217
18143 * tree-ssa-dom.c (cprop_operand): Avoid propagating copies
18144 into BIVs.
18145
18146 2015-02-18 Marek Polacek <polacek@redhat.com>
18147
18148 PR sanitizer/65081
18149 * ubsan.c (OBJSZ_MAX_OFFSET): Define.
18150 (ubsan_expand_objsize_ifn): Don't emit run-time check if the offset
18151 is in range [-16K, -1]. Don't issue run-time error if
18152 (ptr > ptr + offset).
18153
18154 2015-02-18 Thomas Schwinge <thomas@codesourcery.com>
18155
18156 * doc/install.texi (nvptx-*-none): New section.
18157 * doc/invoke.texi (Nvidia PTX Options): Likewise.
18158 * config/nvptx/nvptx.opt: Update.
18159
18160 * config/nvptx/mkoffload.c (parse_env_var, free_array_of_ptrs)
18161 (access_check): New functions, copied from
18162 config/i386/intelmic-mkoffload.c.
18163 (main): For non-installed testing, look in all COMPILER_PATHs for
18164 GCC_INSTALL_NAME.
18165
18166 * config/nvptx/nvptx.h (GOMP_SELF_SPECS): Define macro.
18167
18168 2015-02-18 Andrew Pinski <apinski@cavium.com>
18169 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
18170
18171 * config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
18172 Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.
18173
18174 2015-02-17 Jan Hubicka <hubicka@ucw.cz>
18175
18176 * ipa-visibility.c (function_and_variable_visibility): Only
18177 check locality if node is not already local.
18178 * ipa-inline.c (want_inline_function_to_all_callers_p): Use
18179 call_for_symbol_and_aliases instead of
18180 call_for_symbol_thunks_and_aliases.
18181 (ipa_inline): Likewise.
18182 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
18183 first walk aliases.
18184 * ipa.c (symbol_table::remove_unreachable_nodes): Use
18185 call_for_symbol_and_aliases.
18186 * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
18187 (ipa_propagate_frequency_1): Use it; use opt_for_fn
18188 (ipa_propagate_frequency): Update.
18189 (ipa_profile): Add opt_for_fn gueards.
18190
18191 2015-02-17 Oleg Endo <olegendo@gcc.gnu.org>
18192
18193 * config/sh/sh.opt (mcbranch-force-delay-slot): New option.
18194 * doc/invoke.texi (SH options): Document it.
18195 * config/sh/sh.c (sh_insn_length_adjustment): Check
18196 TARGET_CBRANCH_FORCE_DELAY_SLOT instead of sh_cpu_attr == CPU_SH2E.
18197
18198 2015-02-17 H.J. Lu <hongjiu.lu@intel.com>
18199
18200 * common.opt (fipa-cp-alignment): New.
18201 * ipa-cp.c (ipcp_store_alignment_results): Check
18202 flag_ipa_cp_alignment.
18203 * opts.c (default_options_table): Enable -fipa-cp-alignment for
18204 -O2.
18205 (enable_fdo_optimizations): Set x_flag_ipa_cp_alignment.
18206 * doc/invoke.texi: Document -fipa-cp-alignment.
18207
18208 2015-02-17 Oleg Endo <olegendo@gcc.gnu.org>
18209
18210 PR target/64793
18211 * config/sh/sh.md (cbranch define_delay): Set annulled true branch insn
18212 to nil. Adjust comments.
18213
18214 2015-02-17 Jan Hubicka <hubicka@ucw.cz>
18215
18216 * ipa-visibility.c (function_and_variable_visibility): Only
18217 check locality if node is not already local.
18218 * ipa-inline.c (want_inline_function_to_all_callers_p): Use
18219 call_for_symbol_and_aliases instead of
18220 call_for_symbol_thunks_and_aliases.
18221 (ipa_inline): Likewise.
18222 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
18223 first walk aliases.
18224 * ipa.c (symbol_table::remove_unreachable_nodes): Use
18225 call_for_symbol_and_aliases.
18226 * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
18227 (ipa_propagate_frequency_1): Use it; use opt_for_fn
18228 (ipa_propagate_frequency): Update.
18229 (ipa_profile): Add opt_for_fn guards.
18230
18231 2015-02-17 Thomas Schwinge <thomas@codesourcery.com>
18232
18233 * config/nvptx/mkoffload.c (parse_file): Fix logic error in
18234 skipping of "strange" tokens.
18235
18236 2015-02-17 Jeff Law <law@redhat.com>
18237
18238 * tree-vrp.c (identify_jump_threads): Use last_stmt. Remove
18239 obsolete comment.
18240
18241 2015-02-17 James Greenhalgh <james.greenhalgh@arm.com>
18242
18243 * haifa-sched.c (recompute_todo_spec): Treat SCHED_GROUP_P
18244 as forcing a HARD_DEP between instructions, thereby
18245 disallowing rewriting to break dependencies.
18246
18247 2015-02-16 Jan Hubicka <hubicka@ucw.cz>
18248
18249 * symtab.c (symtab_node::verify_base): Verify body_removed->!definiton
18250 * lto-cgraph.c (lto_output_varpool_node): Do not keep definition of
18251 variables in boundary that have no inlitalizer encoded and are
18252 not aliases.
18253 * varasm.c (default_binds_local_p_2): External definitions do not
18254 count as definitions here.
18255
18256 2015-02-16 Jeff Law <law@redhat.com>
18257
18258 PR tree-optimization/64823
18259 * tree-vrp.c (identify_jump_threads): Handle blocks with no real
18260 statements.
18261 * tree-ssa-threadedge.c (potentially_threadable_block): Allow
18262 threading through blocks with PHIs, but no statements.
18263 (thread_through_normal_block): Distinguish between blocks where
18264 we did not process all the statements and blocks with no statements.
18265
18266 2015-02-16 Jakub Jelinek <jakub@redhat.com>
18267 James Greenhalgh <james.greenhalgh@arm.com>
18268
18269 PR ipa/64963
18270 * cgraphclones.c (cgraph_node::create_virtual_clone): Copy
18271 section if not linkonce. Fix up formatting.
18272 (cgraph_node::create_version_clone_with_body): Copy section.
18273 * trans-mem.c (ipa_tm_create_version): Likewise.
18274
18275 2015-02-16 Richard Biener <rguenther@suse.de>
18276
18277 PR tree-optimization/65077
18278 * tree-ssa-structalias.c (get_constraint_for_1): Handle
18279 IMAGPART_EXPR, REALPART_EXPR and BIT_FIELD_REF.
18280 (find_func_aliases): Allow float values to carry pointers again.
18281
18282 2015-02-16 James Greenhalgh <james.greenhalgh@arm.com>
18283
18284 * doc/install.texi (Specific): Reorder targets list to put
18285 aarch64 in alphabetical order. Add a link to aarch64*-*-*
18286 from the top menu.
18287
18288 2015-02-16 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
18289 David Edelsohn <dje.gcc@gmail.com>
18290
18291 PR target/65058
18292 * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Append storage
18293 mapping class to external variable or function reference.
18294 * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Do not append storage
18295 mapping class.
18296
18297 2015-02-16 David Eelsohn <dje.gcc@gmail.com>
18298
18299 PR target/53348
18300 * config/rs6000/rs6000.c (rs6000_declare_alias): Only use
18301 ASM_WEAKEN_DECL if defined.
18302
18303 2015-02-16 Richard Biener <rguenther@suse.de>
18304
18305 PR lto/65015
18306 * varasm.c (default_file_start): For LTO produced units
18307 emit <artificial> as file directive.
18308
18309 2015-02-16 Richard Biener <rguenther@suse.de>
18310
18311 PR tree-optimization/63593
18312 * tree-predcom.c (execute_pred_commoning_chain): Delay removing
18313 stmts and releasing SSA names until...
18314 (execute_pred_commoning): ... after processing all chains.
18315
18316 2015-02-16 Jan Hubicka <hubicka@ucw.cz>
18317
18318 PR ipa/65059
18319 * ipa-comdats.c (ipa_comdats): Do not categorize thunks to
18320 external functions.
18321
18322 2015-02-15 Sandra Loosemore <sandra@codesourcery.com>
18323
18324 * doc/bugreport.texi: Adjust section titles throughout the file
18325 to use "Title Case".
18326 * doc/extend.texi: Likewise.
18327 * doc/gcov.texi: Likewise.
18328 * doc/implement-c.texi: Likewise.
18329 * doc/implement-cxx.texi: Likewise.
18330 * doc/invoke.texi: Likewise.
18331 * doc/objc.texi: Likewise.
18332 * doc/standards.texi: Likewise.
18333 * doc/trouble.texi: Likewise.
18334
18335 2015-02-15 Jan Hubicka <hubicka@ucw.cz>
18336
18337 * cgraph.h (symtab_node::has_aliases_p): Simplify.
18338 (symtab_node::call_for_symbol_and_aliases): Use has_aliases_p
18339 * tree.c (lookup_binfo_at_offset): Make static.
18340 (get_binfo_at_offset): Do not shadow offset; add explanatory
18341 comment.
18342
18343 2015-02-15 John David Anglin <danglin@gcc.gnu.org>
18344
18345 * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
18346 for all floading point loads and stores except those using a register
18347 index address.
18348 * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
18349 to a register.
18350
18351 2015-02-14 Jan Hubicka <hubicka@ucw.cz>
18352
18353 * ipa-inline-analysis.c (growth_data): Add uninlinable field.
18354 (do_estimate_growth_1): Record if any uninlinable edge was seen.
18355 (estimate_growth): Handle uninlinable edges correctly.
18356 (check_callers): New.
18357 (growth_likely_positive): Handle aliases correctly.
18358
18359 2015-02-14 Jan Hubicka <hubicka@ucw.cz>
18360
18361 * ipa-chkp.c: Use iterate_direct_aliases.
18362 * symtab.c (resolution_used_from_other_file_p): Move inline.
18363 (symtab_node::create_reference): Fix formating.
18364 (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
18365 (symtab_node::iterate_reference): Move inline.
18366 (symtab_node::iterate_referring): Move inline.
18367 (symtab_node::iterate_direct_aliases): Move inline.
18368 (symtab_node::used_from_object_file_p_worker): Inline into ...
18369 (symtab_node::used_from_object_file_p): ... this one; move inline.
18370 (symtab_node::call_for_symbol_and_aliases): Move inline;
18371 use iterate_direct_aliases.
18372 (symtab_node::call_for_symbol_and_aliases_1): New method.
18373 (cgraph_node::call_for_symbol_and_aliases): Move inline;
18374 use iterate_direct_aliases.
18375 (cgraph_node::call_for_symbol_and_aliases_1): New method.
18376 (varpool_node::call_for_node_and_aliases): Rename to ...
18377 (varpool_node::call_for_symbol_and_aliases): ... this one; Move inline;
18378 use iterate_direct_aliases.
18379 (varpool_node::call_for_symbol_and_aliases_1): New method.
18380 * ipa.c (ipa_single_use): Use iterate_direct_aliases.
18381 (ipa_discover_readonly_nonaddressable_var): Update.
18382 * ipa-devirt.c: Fix formating.
18383 * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
18384 Move inline.
18385 (cgraph_node::call_for_symbol_and_aliases): Move inline.
18386 (cgraph_node::call_for_symbol_and_aliases_1): New function..
18387 * cgraph.h (used_from_object_file_p_worker): Remove.
18388 (resolution_used_from_other_file_p): Move inline.
18389 (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
18390 (symtab_node::iterate_reference): Move inline.
18391 (symtab_node::iterate_referring): Move inline.
18392 (symtab_node::iterate_direct_aliases): Move inline.
18393 (symtab_node::used_from_object_file_p_worker): Inline into ...
18394 (symtab_node::used_from_object_file_p): Move inline.
18395 * tree-emutls.c (ipa_lower_emutls): Update.
18396 * varpool.c (varpool_node::call_for_symbol_and_aliases_1): New method.
18397 (varpool_node::call_for_node_and_aliases): Remove.
18398
18399 2015-02-14 Jakub Jelinek <jakub@redhat.com>
18400
18401 PR tree-optimization/62209
18402 * tree-ssa-reassoc.c (update_range_test): If stmt is a PHI and
18403 op == range->exp, insert seq and gimplified code after labels
18404 instead of after the phi.
18405
18406 2015-02-13 Jeff Law <law@redhat.com>
18407
18408 PR bootstrap/65060
18409 Revert my change for tree-optimization/64823.
18410
18411 2015-02-13 Jakub Jelinek <jakub@redhat.com>
18412
18413 PR tree-optimization/65053
18414 * tree-ssa-phiopt.c (value_replacement): When moving assign before
18415 cond, either reset VR on lhs or set it to phi result VR.
18416
18417 2015-02-13 Jeff Law <law@redhat.com>
18418
18419 PR tree-optimization/64823
18420 * tree-vrp.c (identify_jump_threads): Handle blocks with no statements.
18421 * tree-ssa-threadedge.c (potentially_threadable_block): Allow
18422 threading through blocks with PHIs, but no statements.
18423 (thread_through_normal_block): Distinguish between blocks where
18424 we did not process all the statements and blocks with no statements.
18425
18426 PR rtl-optimization/47477
18427 * match.pd (convert (plus/minus (convert @0) (convert @1): New
18428 simplifier to narrow arithmetic.
18429
18430 2015-02-13 Jan Hubicka <hubicka@ucw.cz>
18431
18432 PR ipa/65028
18433 * ipa-prop.c (update_indirect_edges_after_inlining): Do not drop
18434 polymorphic call info when type is not known to be preserved.
18435
18436 2015-02-13 Maritn Jambor <mjambor@suse.cz>
18437
18438 PR ipa/65028
18439 * ipa-inline-transform.c (mark_all_inlined_calls_cdtor): New function.
18440 (inline_call): Use it.
18441
18442 2015-02-13 Thomas Schwinge <thomas@codesourcery.com>
18443
18444 * config/nvptx/offload.h (ACCEL_COMPILER_acc_device): Define to
18445 GOMP_DEVICE_NVIDIA_PTX.
18446
18447 2015-02-13 Jakub Jelinek <jakub@redhat.com>
18448
18449 PR ipa/65034
18450 * stmt.c (emit_case_nodes): Use void_type_node instead of
18451 NULL_TREE as LABEL_DECL type.
18452
18453 2015-02-13 John David Anglin <danglin@gcc.gnu.org>
18454
18455 * config/pa/constraints.md: Change "Q" and "T" constraints to memory
18456 constraints.
18457 * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
18458 symbolic references to data to be forced to constant memory on the
18459 SOM target.
18460
18461 2015-02-13 Ilya Enkovich <ilya.enkovich@intel.com>
18462
18463 PR tree-optimization/65002
18464 * tree-cfg.c (pass_data_fixup_cfg): Don't update
18465 SSA on start.
18466 * tree-sra.c (some_callers_have_no_vuse_p): New.
18467 (ipa_early_sra): Reject functions whose callers
18468 assume function is read only.
18469
18470 2015-02-13 Richard Biener <rguenther@suse.de>
18471
18472 PR lto/65015
18473 * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
18474 for LTO produced CUs.
18475
18476 2015-02-13 Bin Cheng <bin.cheng@arm.com>
18477
18478 PR tree-optimization/64705
18479 * tree-ssa-loop-niter.h (expand_simple_operations): New parameter.
18480 * tree-ssa-loop-niter.c (expand_simple_operations): New parameter.
18481 * tree-ssa-loop-ivopts.c (extract_single_var_from_expr): New.
18482 (find_bivs, find_givs_in_stmt_scev): Pass new argument to
18483 expand_simple_operations.
18484
18485 2015-02-13 H.J. Lu <hongjiu.lu@intel.com>
18486 Richard Henderson <rth@redhat.com>
18487
18488 PR rtl/32219
18489 * cgraphunit.c (cgraph_node::finalize_function): Set definition
18490 before notice_global_symbol.
18491 (varpool_node::finalize_decl): Likewise.
18492 * varasm.c (default_binds_local_p_2): Rename from
18493 default_binds_local_p_1, add weak_dominate argument. Use direct
18494 returns instead of assigning to local variable. Unify varpool and
18495 cgraph paths via symtab_node. Reject undef weak variables before
18496 testing visibility. Reorder tests for simplicity.
18497 (default_binds_local_p): Use default_binds_local_p_2.
18498 (default_binds_local_p_1): Likewise.
18499 (decl_binds_to_current_def_p): Unify varpool and cgraph paths
18500 via symtab_node.
18501 (default_elf_asm_output_external): Emit visibility when specified.
18502
18503 2015-02-13 Alan Modra <amodra@gmail.com>
18504
18505 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Fix typo in
18506 code setting up r11 for out-of-line fp restore.
18507
18508 2015-02-13 Eric Botcazou <ebotcazou@adacore.com>
18509
18510 * config/visium/visium.opt (msv-mode): Add RejectNegative and Report.
18511 (muser-mode): Likewise.
18512
18513 2015-02-13 Alan Modra <amodra@gmail.com>
18514
18515 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Use addsi3_carry
18516 or adddi3_carry when restoring frame_reg_rtx from r0 after restvr.
18517
18518 2015-02-12 David Howells <dhowells@redhat.com>
18519
18520 * tree-sra.c (dump_dereferences_table): Avoid -Wformat-security
18521 warning.
18522 * tree-ssa-uninit.c (dump_predicates): Likewise.
18523 * opts.c (print_filtered_help): Likewise.
18524
18525 2015-02-12 Jakub Jelinek <jakub@redhat.com>
18526
18527 * dwarf2out.c (output_die): Use "%s", name instead of name to
18528 avoid -Wformat-security warning.
18529
18530 * dwarf2asm.c (dw2_asm_output_vms_delta): Only define
18531 if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
18532 * dwarf2out.c (output_die): Use dw2_asm_output_vms_delta
18533 only if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
18534
18535 2015-02-12 Jason Merrill <jason@redhat.com>
18536
18537 * common.opt (-flifetime-dse): New.
18538
18539 2015-02-12 Jakub Jelinek <jakub@redhat.com>
18540
18541 PR sanitizer/65019
18542 * ubsan.c (ubsan_expand_objsize_ifn): Always return true.
18543
18544 PR tree-optimization/65014
18545 * fold-const.c (fold_binary_loc): When creating {L,R}ROTATE_EXPR,
18546 use original second operand of arg0 or arg1 instead of
18547 that adjusted by STRIP_NOPS.
18548
18549 2015-02-11 Jeff Law <law@redhat.com>
18550
18551 PR target/63347
18552 * haifa-sched.c (prune_ready_list): If we have a SCHED_GROUP_P insn
18553 that needs to be queued, just queue it for a single cycle.
18554
18555 2015-02-11 Jan Hubicka <hubicka@ucw.cz>
18556
18557 * ipa.c (symbol_table::remove_unreachable_nodes): Avoid releasing
18558 bodies of thunks; comment on why.
18559 * symtab.c (symtab_node::get_partitioning_class): Aliases of extern
18560 symbols are extern.
18561
18562 2015-02-11 Richard Henderson <rth@redhat.com>
18563
18564 PR sanitize/65000
18565 * tree-eh.c (mark_reachable_handlers): Mark source and destination
18566 regions of __builtin_eh_copy_values.
18567
18568 2015-02-11 Jakub Jelinek <jakub@redhat.com>
18569
18570 PR middle-end/65003
18571 * varasm.c (place_block_symbol): Assert that DECL_RTL of the
18572 ultimate alias is MEM with SYMBOL_REF satisfying
18573 SYMBOL_REF_HAS_BLOCK_INFO_P as its operand. Don't pass the MEM
18574 to place_block_symbol, but instead pass the SYMBOL_REF operand of it.
18575
18576 2015-02-11 Thomas Schwinge <thomas@codesourcery.com>
18577
18578 * config/nvptx/mkoffload.c: Include "diagnostic.h" instead of
18579 "diagnostic-core.h".
18580 (main): Initialize progname, and call diagnostic_initialize.
18581
18582 * config/nvptx/mkoffload.c (process): Refer to __OFFLOAD_TABLE__
18583 instead of __OPENMP_TARGET__.
18584
18585 * config/nvptx/mkoffload.c: Include "gomp-constants.h".
18586 (process): Use its GOMP_DEVICE_NVIDIA_PTX instead of (wrongly)
18587 hard-coding PTX_ID.
18588
18589 2015-02-11 H.J. Lu <hongjiu.lu@intel.com>
18590
18591 * doc/sourcebuild.texi (pie_enabled): Document.
18592
18593 2015-02-11 Martin Liska <mliska@suse.cz>
18594
18595 PR ipa/64813
18596 * cgraphunit.c (cgraph_node::expand_thunk): Do not create
18597 a return value for call to a function that is noreturn.
18598
18599 2015-02-11 Richard Biener <rguenther@suse.de>
18600
18601 PR lto/65015
18602 * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
18603 and -fresolution.
18604
18605 2015-02-11 Andrew Pinski <apinski@cavium.com>
18606
18607 PR target/64893
18608 * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
18609 Change the first argument type to size_type_node and add another
18610 size_type_node.
18611 (aarch64_simd_expand_builtin): Handle the new argument to
18612 AARCH64_SIMD_BUILTIN_LANE_CHECK and don't ICE but rather
18613 print an out when the first two arguments are not
18614 nonzero integer constants.
18615 * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK):
18616 Pass the sizeof directly to __builtin_aarch64_im_lane_boundsi.
18617
18618 2015-02-11 Jakub Jelinek <jakub@redhat.com>
18619
18620 PR target/61925
18621 * config/i386/i386.c (ix86_reset_to_default_globals): Removed.
18622 (ix86_reset_previous_fndecl): Restore it here, unconditionally.
18623 (ix86_set_current_function): Rewritten.
18624 (ix86_add_new_builtins): Temporarily clear current_target_pragma
18625 when creating builtin fndecls.
18626
18627 2015-02-10 Jan Hubicka <hubicka@ucw.cz>
18628
18629 PR ipa/65005
18630 * ipa-visibility.c (cgraph_node::non_local_p): Turn into static
18631 function.
18632 * symtab.c (symtab_node::verify_base): Remove check that non-definitions
18633 have no comdat group.
18634 * lto-cgraph.c (lto_output_node): Always output thunk and alias info.
18635 (lto_output_varpool_node): Always output alias info.
18636 (output_refs): Output refs of boundary aliases, too.
18637 (compute_ltrans_boundary): Add alias and thunk target into boundaries.
18638 (output_symtab): Output call eges in thunks in boundary.
18639 (get_alias_symbol): Remove.
18640 (input_node, input_varpool_node): Do not special case weakrefs.
18641 * ipa.c (symbol_table::remove_unreachable_nodes): Do not remove
18642 alias and thunks targets in the boundary; do not take removed symbols
18643 from their comdat groups.
18644 * cgraph.c (cgraph_node::local_info): Look through aliases and thunks.
18645 (cgraph_node::global_info): Remove.
18646 (cgraph_node::rtl_info): Look through aliases and thunks.
18647 * cgrpah.h (global_info): Remove.
18648 (non_local_p): Remove.
18649
18650 2015-02-10 David Wohlferd <dw@LimeGreenSocks.com>
18651 Sandra Loosemore <sandra@codesourcery.com>
18652
18653 * doc/invoke.texi (x86 Options [-masm=dialect]): Add cross-references
18654 to inline asm. List dialects in proper order.
18655
18656 2015-02-10 David Wohlferd <dw@LimeGreenSocks.com>
18657 Sandra Loosemore <sandra@codesourcery.com>
18658
18659 * doc/extend.texi (Loop-Specific Pragmas): Fix grammar error.
18660
18661 2015-02-10 David Wohlferd <dw@LimeGreenSocks.com>
18662
18663 * doc/extend.texi (Symbol-Renaming Pragmas): Restore (slightly
18664 modified) reference to Solaris.
18665
18666 2015-02-10 Sandra Loosemore <sandra@codesourcery.com>
18667
18668 * doc/extend.texi (Extended Asm): Fix typos.
18669
18670 2015-02-10 Jakub Jelinek <jakub@redhat.com>
18671
18672 PR sanitizer/65004
18673 * ubsan.c (ubsan_expand_vptr_ifn): Always return true.
18674
18675 2015-02-10 Oleg Endo <olegendo@gcc.gnu.org>
18676
18677 PR target/64661
18678 * config/sh/sh-protos.h (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
18679 TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
18680 TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Add parentheses.
18681 * config/sh/constraints.md (Ara, Add): New constraints.
18682 * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1): New
18683 predicates.
18684 (atomic_compare_and_swap<mode>, atomic_exchange<mode>): Use
18685 atomic_mem_operand_0. Don't use force_reg on the memory address.
18686 (atomic_compare_and_swapsi_hard): Use atomic_mem_operand_0 predicate and
18687 Sra constraint. Convert to insn_and_split. Add workaround for
18688 PR 64974.
18689 (atomic_compare_and_swap<mode>_hard): Copy to
18690 atomic_compare_and_swap<mode>_hard_1. Convert to insn_and_split.
18691 Use atomic_mem_operand_0 predicate.
18692 (atomic_compare_and_swap<mode>_soft_gusa,
18693 atomic_exchange<mode>_soft_gusa): Use atomic_mem_operand_0 predicate and
18694 AraAdd constraints.
18695 (atomic_compare_and_swap<mode>_soft_tcb,
18696 atomic_compare_and_swap<mode>_soft_imask,
18697 atomic_exchange<mode>_soft_tcb, atomic_exchange<mode>_soft_imask): Use
18698 atomic_mem_operand_0 predicate and SraSdd constraints.
18699 (atomic_exchangesi_hard) Use atomic_mem_operand_0 predicate and Sra
18700 constraint.
18701 (atomic_exchange<mode>_hard): Copy to atomic_exchange<mode>_hard_1.
18702 Convert to insn_and_split. Use atomic_mem_operand_0 predicate.
18703 (atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
18704 atomic_<fetchop_name>_fetch<mode>): Use atomic_mem_operand_1. Don't use
18705 force_reg on the memory address.
18706 (atomic_fetch_<fetchop_name>si_hard, atomic_fetch_notsi_hard,
18707 atomic_fetch_nandsi_hard, atomic_<fetchop_name>_fetchsi_hard,
18708 atomic_not_fetchsi_hard, atomic_nand_fetchsi_hard): Use
18709 atomic_mem_operand_1 predicate and Sra constraint.
18710 (atomic_fetch_<fetchop_name><mode>_hard): Copy to
18711 atomic_fetch_<fetchop_name><mode>_hard_1. Convert to insn_and_split.
18712 Use atomic_mem_operand_1 predicate.
18713 (atomic_<fetchop_name><mode>_hard): Copy to
18714 atomic_<fetchop_name><mode>_hard_1. Convert to insn_and_split.
18715 Use atomic_mem_operand_1 predicate.
18716 (atomic_fetch_nand<mode>_hard): Copy to atomic_fetch_nand<mode>_hard_1.
18717 Convert to insn_and_split. Use atomic_mem_operand_1 predicate.
18718 (atomic_nand<mode>_hard): Copy to atomic_nand<mode>_hard_1. Convert to
18719 insn_and_split. Use atomic_mem_operand_1 predicate.
18720 (atomic_<fetchop_name>_fetch<mode>_hard): Copy to
18721 atomic_<fetchop_name>_fetch<mode>_hard_1. Convert to insn_and_split.
18722 Use atomic_mem_operand_1 predicate.
18723 (atomic_nand_fetch<mode>_hard): Copy to atomic_nand_fetch<mode>_hard_1.
18724 Convert to insn_and_split. Use atomic_mem_operand_1 predicate.
18725 (atomic_fetch_not<mode>_hard, atomic_not_fetch<mode>_hard): Replace mems
18726 in generated insn with original mem operand before emitting the insn.
18727 (atomic_fetch_<fetchop_name><mode>_soft_gusa,
18728 atomic_fetch_not<mode>_soft_gusa, atomic_fetch_nand<mode>_soft_gusa,
18729 atomic_<fetchop_name>_fetch<mode>_soft_gusa,
18730 atomic_not_fetch<mode>_soft_gusa, atomic_nand_fetch<mode>_soft_gusa):
18731 Use atomic_mem_operand_1 predicate and AraAdd constraints.
18732 (atomic_fetch_<fetchop_name><mode>_soft_tcb,
18733 atomic_<fetchop_name><mode>_soft_tcb, atomic_fetch_not<mode>_soft_tcb,
18734 atomic_not<mode>_soft_tcb, atomic_fetch_<fetchop_name><mode>_soft_imask,
18735 atomic_fetch_not<mode>_soft_imask, atomic_fetch_nand<mode>_soft_tcb,
18736 atomic_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask,
18737 atomic_<fetchop_name>_fetch<mode>_soft_tcb,
18738 atomic_not_fetch<mode>_soft_tcb,
18739 atomic_<fetchop_name>_fetch<mode>_soft_imask,
18740 atomic_not_fetch<mode>_soft_imask, atomic_nand_fetch<mode>,
18741 atomic_nand_fetch<mode>_soft_tcb, atomic_nand_fetch<mode>_soft_imask):
18742 Use atomic_mem_operand_1 predicate and SraSdd constraints.
18743
18744 2015-02-10 Uros Bizjak <ubizjak@gmail.com>
18745
18746 * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
18747 and 3 earlyclobber operands.
18748
18749 2015-02-10 Jan Hubicka <hubicka@ucw.cz>
18750
18751 * common.opt (fstack-reuse): Mark as optimization.
18752
18753 2015-02-10 Jan Hubicka <hubicka@ucw.cz>
18754
18755 PR ipa/64982
18756 * cgraphunit.c (cgraph_node::expand_thunk): Look for stdarg thunks.
18757
18758 2015-02-10 Trevor Saunders <tsaunders@mozilla.com>
18759
18760 PR tree-optimization/64326
18761 * cfghooks.c (make_forwarder_block): Cap frequency of created block.
18762
18763 2015-02-10 Rainer Emrich <rainer@emrich-ebersheim.de>
18764
18765 PR gcov-profile/61889
18766 * gcov-tool.c: Remove wrong #if !defined(_WIN32)
18767
18768 2015-02-10 Richard Biener <rguenther@suse.de>
18769
18770 PR tree-optimization/64995
18771 * tree-ssa-sccvn.c (set_ssa_val_to): Assert that the
18772 value we use is final.
18773 (visit_reference_op_store): Always valueize op.
18774 (visit_use): Properly valueize vuses.
18775
18776 2015-02-10 Richard Biener <rguenther@suse.de>
18777
18778 PR tree-optimization/64909
18779 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
18780 pass a scalar-stmt count estimate to the cost model.
18781 * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
18782
18783 2015-02-10 Alexander Monakov <amonakov@ispras.ru>
18784
18785 * doc/invoke.texi (-fvar-tracking-assignments): Clarify that VTA is
18786 enabled by default together with var-tracking.
18787
18788 2015-02-10 Nick Clifton <nickc@redhat.com>
18789
18790 * config/rl78/rl78.c: Remove DIV attribute code accidentally
18791 included in previous rl78 commit.
18792
18793 2015-02-10 Richard Biener <rguenther@suse.de>
18794
18795 * tree-streamer.h (streamer_read_tree_bitfields): Adjust.
18796 * tree-streamer-in.c (streamer_read_tree_bitfields): Do not
18797 return the bitpack.
18798
18799 2015-02-09 Trevor Saunders <tsaunders@mozilla.com>
18800
18801 PR gcov-profile/61889
18802 * config.in: regenerate.
18803 * configure.in: Likewise.
18804 * configure.ac: Check for ftw.h.
18805 * gcov-tool.c: Check for ftw.h before using nftw.
18806
18807 2015-02-09 Trevor Saunders <tsaunders@mozilla.com>
18808
18809 PR lto/64076
18810 * ipa-visibility.c (update_visibility_by_resolution_info): Only
18811 assert when not in lto mode.
18812
18813 2015-02-09 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
18814
18815 * ira-color.c (setup_left_conflict_sizes_p): Simplify
18816 initialization/assignment of conflict_size.
18817
18818 2015-02-09 Jan Hubicka <hubicka@ucw.cz>
18819
18820 PR ipa/64978
18821 * ipa-cp.c (gather_caller_stats): Skip thunks.
18822 (propagate_constants_topo): Skip aliases.
18823
18824 2015-02-09 Kaz Kojima <kkojima@gcc.gnu.org>
18825
18826 PR target/64761
18827 * config/sh/sh.c (sh_option_override): Don't change
18828 -freorder-blocks-and-partition to -freorder-blocks even when
18829 unwinding is enabled.
18830 (sh_can_follow_jump): Return false if the followee jump is
18831 a crossing jump when -freorder-blocks-and-partition is specified.
18832 * config/sh/sh.md (*jump_compact_crossing): New insn.
18833
18834 2015-02-09 Joern Rennecke <joern.rennecke@embecosm.com>
18835 Kaz Kojima <kkojima@gcc.gnu.org>
18836
18837 PR target/64761
18838 * config/sh/sh-protos.h (sh_can_redirect_branch): Don't declare.
18839 * config/sh/sh.c (TARGET_CAN_FOLLOW_JUMP): Redefine.
18840 (sh_can_redirect_branch): Rename to ...
18841 (sh_can_follow_jump): ... this. Constify argument types.
18842 * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): Don't define.
18843 * doc/tm.texi.in (MD_CAN_REDIRECT_BRANCH): Remove documentation.
18844 * reorg.c (steal_delay_list_from_target): Use targetm.can_follow_jump.
18845 * doc/tm.texi: Regenerate.
18846
18847 2015-02-09 Jakub Jelinek <jakub@redhat.com>
18848
18849 PR sanitizer/64981
18850 * builtins.c (expand_builtin): Call targetm.expand_builtin
18851 for BUILT_IN_MD builtins regardless of asan_intercepted_p.
18852
18853 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
18854
18855 PR ipa/61548
18856 * tree-emutls.c (ipa_lower_emutls): Avoid duplicates in TLS_VARS.
18857
18858 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
18859
18860 PR ipa/63566
18861 * ipa-icf.c (set_local): New function.
18862 (sem_function::merge): Use it.
18863
18864 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
18865
18866 * ipa-devirt.c (odr_types_equivalent_p): Fix formating.
18867 (add_type_duplicate): Fix comparison of BINFOs.
18868
18869 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
18870
18871 * ipa-polymorphic-call.c (ipa_polymorphic_call_context): Avoid ICE
18872 on getting VOID pointer.
18873
18874 2015-02-09 Jakub Jelinek <jakub@redhat.com>
18875
18876 PR target/64979
18877 * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
18878 va_list escapes.
18879
18880 2015-02-09 Richard Biener <rguenther@suse.de>
18881
18882 * genmatch.c (replace_id): Copy expr_type.
18883
18884 2015-02-09 Richard Biener <rguenther@suse.de>
18885
18886 * tree-streamer.h (streamer_pack_tree_bitfields): Remove.
18887 (streamer_write_tree_bitfields): Declare.
18888 * tree-streamer-in.c (unpack_ts_base_value_fields): Inline,
18889 properly unpack padding.
18890 (unpack_value_fields): Inline ...
18891 (streamer_read_tree_bitfields): ... here.
18892 * tree-streamer-out.c (pack_ts_base_value_fields): Inline
18893 and properly add padding bits.
18894 (streamer_pack_tree_bitfields): Fold into ...
18895 (streamer_write_tree_bitfields): ... this new function,
18896 exposing the bitpack object.
18897 * lto-streamer-out.c (lto_write_tree_1): Call
18898 streamer_write_tree_bitfields.
18899
18900 2015-02-09 Richard Biener <rguenther@suse.de>
18901
18902 PR tree-optimization/54000
18903 * tree-ssa-looo-ivopts.c: Include tree-vectorizer.h.
18904 (struct ivopts_data): Add loop_loc member.
18905 (tree_ssa_iv_optimize_loop): Dump loop location.
18906 (create_new_ivs): Likewise, also dump number of IVs generated.
18907
18908 2015-02-09 Martin Liska <mliska@suse.cz>
18909
18910 * ipa-icf.c (sem_item_optimizer::register_hooks): Register hooks
18911 just if not yet registered.
18912 (ipa_icf_generate_summary): Register callgraph hooks.
18913
18914 2015-02-08 Andrew Pinski <apinski@cavium.com>
18915
18916 * config/aarch64/aarch64.c (gty_dummy): Delete.
18917
18918 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
18919
18920 PR ipa/63566
18921 * ipa-visibility.c (cgraph_node::non_local_p): Accept aliases.
18922 (cgraph_node::local_p): Remove thunk related FIXME.
18923
18924 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
18925
18926 PR ipa/63566
18927 * i386.c (ix86_function_regparm): Look through aliases to see if callee
18928 is local and optimized.
18929 (ix86_function_sseregparm): Likewise; also use target's SSE math
18930 settings; error out instead of silently generating wrong code
18931 on mismatches.
18932 (init_cumulative_args): Look through aliases.
18933
18934 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
18935
18936 PR ipa/63566
18937 * ipa-split.c (execute_split_functions): Split if function has aliases.
18938
18939 2015-02-08 Jan Hubicka <hubicka@ucw.cz>
18940
18941 PR ipa/63566
18942 * cgraphunit.c (cgraph_node::analyze): Be sure target of thunk is
18943 aliases before trying to expand it.
18944 (cgraph_node::expand_thunk): Fix formating.
18945
18946 2015-02-07 Sandra Loosemore <sandra@codesourcery.com>
18947
18948 * doc/extend.texi (Function Attributes [naked]): Copy-edit.
18949 (Using Assembly Language with C): Expand introduction.
18950 (Basic Asm): Copy-edit. Add more information about uses of
18951 basic asm.
18952 (Extended Asm): Copy-edit. Document new escape syntax and
18953 %l[label] syntax.
18954 (Global Reg Vars): Copy-edit.
18955 (Local Reg Vars): Likewise.
18956
18957 2015-02-06 David Edelsohn <dje.gcc@gmail.com>
18958
18959 PR debug/2714
18960 PR bootstrap/64256
18961 * xcoffout.h (DBX_CONTIN_LENGTH): Define as 16384.
18962 (DBX_CONTIN_CHAR): Define.
18963
18964 2015-02-06 Sebastian Pop <s.pop@samsung.com>
18965 Brian Rzycki <b.rzycki@samsung.com>
18966
18967 PR tree-optimization/64878
18968 * tree-ssa-threadedge.c: Include tree-ssa-loop.h.
18969 (fsm_find_control_statement_thread_paths): Add parameter seen_loop_phi.
18970 Stop recursion at loop phi nodes after having visited a loop phi node.
18971
18972 2015-02-06 Jakub Jelinek <jakub@redhat.com>
18973
18974 * toplev.c (process_options): Change flag_ipa_ra before creating
18975 optimization_{default,current}_node.
18976
18977 PR ipa/64896
18978 * cgraphunit.c (cgraph_node::expand_thunk): If
18979 restype is not is_gimple_reg_type nor the thunk_fndecl
18980 returns aggregate_value_p, set restmp to a temporary variable
18981 instead of resdecl.
18982
18983 2015-02-06 Vladimir Makarov <vmakarov@redhat.com>
18984
18985 * lra.c (lra_emit_add): Fix a typo in using disp instead of base.
18986
18987 2015-02-06 Michael Meissner <meissner@linux.vnet.ibm.com>
18988
18989 PR target/64205
18990 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
18991 add a general secondary reload handler for SDmode, unless we have
18992 both read/write support for SDmode.
18993
18994 2015-02-06 Jakub Jelinek <jakub@redhat.com>
18995
18996 PR middle-end/64937
18997 * dwarf2out.c (set_block_abstract_flags, set_decl_abstract_flags):
18998 Replace setting argument with abstract_vec, always set BLOCK_ABSTRACT
18999 or DECL_ABSTRACT_P flags to 1 rather than to setting, and if it wasn't
19000 1 before, push it to abstract_vec.
19001 (dwarf2out_abstract_function): Adjust caller. Don't call
19002 set_decl_abstract_flags second time, instead clear BLOCK_ABSTRACT or
19003 DECL_ABSTRACT_P flags for all abstract_vec elts.
19004
19005 2015-02-06 Renlin Li <renlin.li@arm.com>
19006
19007 * tree-ssa-forwprop.c (execute): Keep location info while rewrite
19008 complex gimple.
19009 * tree-ssa.c (execute_update_addresses_taken): Likewise.
19010
19011 2015-02-06 Jeff Law <law@redhat.com>
19012
19013 PR target/64889
19014 * config/h8300/h8300.c (push): New argument "in_prologue".
19015 Pass "in_prologue" along to "F".
19016 (h8300_push_pop): Corresponding changes.
19017 (h8300_expand_prologue): Likewise.
19018 (h8300_swap_into_er6): Likewise. Do not set RTX_FRAME_RELATED_P.
19019
19020 2015-02-06 Jakub Jelinek <jakub@redhat.com>
19021
19022 PR rtl-optimization/64957
19023 PR debug/64817
19024 * simplify-rtx.c (simplify_binary_operation_1): Use ~cval for
19025 IOR rather than for AND.
19026
19027 2015-02-06 Eric Botcazou <ebotcazou@adacore.com>
19028
19029 PR target/62631
19030 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Use the mininum of costs
19031 of shift-add and (add + shift) operations. Rename local variable.
19032
19033 2015-02-05 Jeff Law <law@redhat.com>
19034
19035 PR target/17306
19036 * config/h8300/constraints.md (U): Correctly dectect
19037 "eightbit_data" memory addresses.
19038 * config/h8300/h8300.c (eightbit_constant_address_p): Also
19039 handle (const (plus (symbol_ref (x)))) where x is declared
19040 as an 8-bit data memory address.
19041 * config/h8300/h8300.md (call, call_value): Correctly detect
19042 "funcvec" functions.
19043
19044 PR target/43264
19045 * config/h8300/h8300.c (get_shift_alg): Fix ASHIFTRT by
19046 24 to 28 bits for the H8/300.
19047
19048 2015-02-06 Alan Modra <amodra@gmail.com>
19049
19050 PR target/64876
19051 * config/rs6000/rs6000.c (chain_already_loaded): New function.
19052 (rs6000_call_aix): Use it.
19053
19054 2015-02-05 Jan Hubicka <hubicka@ucw.cz>
19055
19056 * ipa-cp.c (ipa_value_from_jfunc, ipa_context_from_jfunc): Add bounds
19057 check.
19058
19059 2015-02-05 Joern Rennecke <joern.rennecke@embecosm.com>
19060
19061 * config/h8300/constraints.md ("U" constraint): Use strict
19062 variant of REG_OK_FOR_BASE_P after reload has started.
19063
19064 2015-02-04 Mantas Mikaitis <mantas.mikaitis@arm.com>
19065
19066 * config/arm/arm.h (TARGET_NEON_FP): Removed conditional definition,
19067 define to zero if !TARGET_NEON.
19068 (TARGET_ARM_FP): Added !TARGET_SOFT_FLOAT into conditional definition.
19069
19070 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
19071 Trevor Saunders <tsaunders@mozilla.com>
19072
19073 PR ipa/61548
19074 * tree-emultls.c (new_emutls_decl): Resolve alias after creating it.
19075
19076 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
19077
19078 PR ipa/61548
19079 * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering issue
19080 when removing varpool nodes.
19081
19082 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
19083
19084 PR ipa/61548
19085 * varpool.c (varpool_node::remove): Fix order of variables.
19086
19087 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
19088
19089 PR ipa/64686
19090 * ipa-inline.c (inline_small_functions): Fix ordering issue between
19091 speculation resolution and key updates.
19092
19093 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
19094
19095 * ipa-prop.c (update_indirect_edges_after_inlining): By more careful
19096 about not letting any speculative edges unupdated.
19097
19098 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
19099
19100 PR gcov/64123
19101 * gcov-io.c (gcov_var): Export.
19102
19103 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
19104
19105 PR middle-end/64922
19106 * ipa-prop.c (update_indirect_edges_after_inlining): Correctly update
19107 edges that become speculative.
19108
19109 2015-02-04 Jakub Jelinek <jakub@redhat.com>
19110
19111 * dwarf2out.c (is_fortran): Also return true for DW_LANG_Fortran03
19112 or DW_LANG_Fortran08.
19113 (lower_bound_default): Return 1 for DW_LANG_Fortran03 or
19114 DW_LANG_Fortran08.
19115 (gen_compile_unit_die): Handle "GNU Fortran2003" and
19116 "GNU Fortran2008" language strings.
19117 * dbxout.c (get_lang_number): Use lang_GNU_Fortran.
19118 * langhooks.h (lang_GNU_Fortran): New prototype.
19119 * langhooks.c (lang_GNU_Fortran): New function.
19120 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
19121 lang_GNU_Fortran.
19122
19123 2015-02-04 Eric Botcazou <ebotcazou@adacore.com>
19124
19125 * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P): Fix off-by-one error.
19126 (RTX_OK_FOR_OLO10_P): Likewise.
19127
19128 2015-02-04 Eric Botcazou <ebotcazou@adacore.com>
19129
19130 * tree-ssa-loop-ivopts.c (get_address_cost): Use right mode for offset.
19131
19132 2015-02-04 Jan Hubicka <hubicka@ucw.cz>
19133
19134 PR middle-end/64922
19135 * gimple.c: Include gimple-ssa.h.
19136 (maybe_remove_unused_call_args): New function.
19137 * gimple.h (maybe_remove_unused_call_args): Declare.
19138 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
19139 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
19140 * gimple-fold.c (gimple_fold_call): Likewise.
19141
19142 2015-02-04 H.J. Lu <hongjiu.lu@intel.com>
19143
19144 PR rtl-optimization/64905
19145 * lra-eliminations.c (setup_can_eliminate): Clear hard frame
19146 pointer alignment if it isn't needed.
19147
19148 2015-02-04 Matthew Wahab <matthew.wahab@arm.com>
19149
19150 * config/aarch64/aarch64-cores.def: Add cortex-a72 and
19151 cortex-a72.cortex-a53.
19152 * config/aarch64/aarch64-tune.md: Regenerate.
19153 * doc/invoke.texi (AArch64 Options/-mtune): Add "cortex-a72".
19154
19155 2015-02-04 Nick Clifton <nickc@redhat.com>
19156
19157 * config/rl78/rl78.c (rl78_note_reg_set): Note the use of REGs
19158 inside a MEM.
19159
19160 2015-02-04 Jakub Jelinek <jakub@redhat.com>
19161
19162 * builtins.def (DEF_BUILTIN_CHKP): Define if not defined.
19163 (DEF_LIB_BUILTIN_CHKP, DEF_EXT_LIB_BUILTIN_CHKP): Redefine.
19164 (DEF_CHKP_BUILTIN): Define using DEF_BUILTIN_CHKP instead
19165 of DEF_BUILTIN.
19166 (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET, BUILT_IN_STRCAT,
19167 BUILT_IN_STRCHR, BUILT_IN_STRCPY, BUILT_IN_STRLEN): Use
19168 DEF_LIB_BUILTIN_CHKP macro instead of DEF_LIB_BUILTIN.
19169 (BUILT_IN_MEMCPY_CHK, BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK,
19170 BUILT_IN_MEMPCPY, BUILT_IN_MEMSET_CHK, BUILT_IN_STPCPY_CHK,
19171 BUILT_IN_STPCPY, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK): Use
19172 DEF_EXT_LIB_BUILTIN_CHKP macro instead of DEF_EXT_LIB_BUILTIN.
19173 * tree-core.h (enum built_in_function): In between
19174 BEGIN_CHKP_BUILTINS and END_CHKP_BUILTINS only define enum values
19175 for builtins that use DEF_BUILTIN_CHKP macro.
19176
19177 2015-02-04 Alexandre Oliva <aoliva@redhat.com>
19178
19179 PR debug/64817
19180 * cfgexpand.c (expand_debug_expr): Compute unsignedp from
19181 operands for tcc_comparison exprs. Fix typos.
19182
19183 PR debug/64817
19184 * simplify-rtx.c (simplify_binary_operation_1): Simplify one
19185 of two XORs that have an intervening AND or IOR.
19186
19187 PR debug/64817
19188 * simplify-rtx.c (simplify_binary_operation_1): Rewrite
19189 simplification of XOR of AND to not allocate new rtx before
19190 committing to a simplification.
19191
19192 2015-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19193
19194 * config/aarch64/aarch64-ldpstp.md: Use std::swap instead of
19195 manual swaps in all peepholes.
19196
19197 2015-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19198
19199 * config/aarch64/aarch64.c (aarch64_evpc_ext): Use std::swap instead
19200 of manual swapping implementation.
19201 (aarch64_expand_vec_perm_const_1): Likewise.
19202
19203 2015-02-04 James Greenhalgh <james.greenhalgh@arm.com>
19204
19205 * config/aarch64/aarch64.c (NAMED_PARAM): Delete it.
19206 (generic_addrcost_table): Remove NAMED_PARAM.
19207 (cortexa57_addrcost_table): Likewise.
19208 (xgene1_addrcost_table): Likewise.
19209 (generic_regmove_table): Likewise.
19210 (cortexa53_regmove_table): Likewise.
19211 (xgene1_regmove_table): Likewise.
19212 (generic_vector_table): Likewise.
19213 (cortexa57_vector_table): Likewise.
19214 (xgene1_vector_table): Likewise.
19215 (generic_tunings): Likewise.
19216 (cortexa53_tunings): Likewise.
19217 (cortexa57_tunings): Likewise.
19218 (xgene1_tunings): Likewise.
19219
19220 2015-02-04 Matthew Wahab <matthew.wahab@arm.com>
19221
19222 * config/arm/arm-cores.def: Add cortex-a72 and
19223 cortex-a72.cortex-a53.
19224 * config/arm/bpabi.h (BE8_LINK_SPEC): Likewise.
19225 * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
19226 * config/arm/arm-tune.md: Regenerate.
19227 * config/arm/arm-tables.opt: Add entries for "cortex-a72" and
19228 "cortex-a72.cortex-a53".
19229 * doc/invoke.texi (ARM Options/-mtune): Likewise.
19230
19231 2015-02-04 Nick Clifton <nickc@redhat.com>
19232
19233 PR target/64408
19234 * config/fr30/predicates.md (di_operand): Add SUBREG to the list
19235 of accepted codes.
19236 (nonimmediate_di_operand): Likewise.
19237
19238 * config/msp430/msp430.c (msp430_use_f5_series_hwmult): Add more
19239 prefixes of known F5 using MSP430 MCUs.
19240
19241 2015-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19242
19243 * config/aarch64/aarch64-simd-builtins.def (sqrt): Use BUILTIN_VDQF_DF.
19244 * config/aarch64/arm_neon.h (vsqrt_f64): Use __builtin_aarch64_sqrtdf
19245 instead of __builtin_sqrt.
19246
19247 2015-02-04 Ilya Enkovich <ilya.enkovich@intel.com>
19248
19249 * varasm.c (do_assemble_alias): Follow transparent alias
19250 chain for target.
19251 (default_assemble_visibility): Follow transparent alias
19252 chain for decl name.
19253
19254 2015-02-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
19255
19256 PR middle-end/62103
19257 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use TYPE_PRECISION
19258 to compute size of referenced value in the constant case.
19259
19260 2015-02-03 Jakub Jelinek <jakub@redhat.com>
19261
19262 PR rtl-optimization/64756
19263 * cse.c (invalidate_dest): New function.
19264 (cse_insn): Use it. If dest != SET_DEST (sets[i].rtl) and
19265 HASH (SET_DEST (sets[i].rtl), mode) computation sets do_not_record,
19266 invalidate and do not record it.
19267
19268 2015-02-03 Oleg Endo <olegendo@gcc.gnu.org>
19269
19270 PR target/64660
19271 * config/sh/sync.md (atomic_<fetchop_name><mode>_hard,
19272 atomic_not<mode>_hard, atomic_<fetchop_name><mode>_soft_tcb,
19273 atomic_not<mode>_soft_tcb, atomic_nand<mode>_hard,
19274 atomic_nand<mode>_soft_tcb): New insns.
19275 (atomic_fetch_<fetchop_name>si_hard): Convert to insn_and_split.
19276 Split into atomic_<fetchop_name>_fetchsi_hard if operands[0] is unused.
19277 (define_insn "atomic_fetch_notsi_hard): Convert to insn_and_split.
19278 Split into atomic_not_fetchsi_hard if operands[0] is unused.
19279 (atomic_fetch_<fetchop_name><mode>_hard): Convert to insn_and_split.
19280 Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
19281 (atomic_fetch_not<mode>_hard): Convert to insn_and_split. Split into
19282 atomic_not<mode>_hard if operands[0] is unused.
19283 (atomic_fetch_<fetchop_name><mode>_soft_gusa): Convert to
19284 insn_and_split. Split into atomic_<fetchop_name>_fetch<mode>_soft_gusa
19285 if operands[0] is unused.
19286 (atomic_fetch_not<mode>_soft_gusa): Convert to insn_and_split. Split
19287 into atomic_not_fetch<mode>_soft_gusa if operands[0] is unused.
19288 (atomic_fetch_<fetchop_name><mode>_soft_tcb): Convert to insn_and_split.
19289 Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
19290 unused.
19291 (atomic_fetch_not<mode>_soft_tcb): Convert to insn_and_split. Split
19292 into atomic_not<mode>_soft_tcb if operands[0] is unused.
19293 (atomic_fetch_<fetchop_name><mode>_soft_imask): Convert to
19294 insn_and_split. Split into atomic_<fetchop_name>_fetch<mode>_soft_imask
19295 if operands[0] is unused.
19296 (atomic_fetch_not<mode>_soft_imask): Convert to insn_and_split. Split
19297 into atomic_not_fetch<mode>_soft_imask is operands[0] is unused.
19298 (atomic_fetch_nandsi_hard): Convert to insn_and_split. Split into
19299 atomic_nand_fetchsi_hard if operands[0] is unused.
19300 (atomic_fetch_nand<mode>_hard): Convert to insn_and_split. Split into
19301 atomic_nand<mode>_hard if operands[0] is unused.
19302 (atomic_fetch_nand<mode>_soft_gusa): Convert to insn_and_split. Split
19303 into atomic_nand_fetch<mode>_soft_gusa if operands[0] is unused.
19304 (atomic_fetch_nand<mode>_soft_tcb): Convert to insn_and_split. Split
19305 into atomic_nand<mode>_soft_tcb if operands[0] is unused.
19306 (atomic_fetch_nand<mode>_soft_imask): Convert to insn_and_split. Split
19307 into atomic_nand_fetch<mode>_soft_imask if operands[0] is unused.
19308 (atomic_<fetchop_name>_fetch<mode>_hard): Convert to insn_and_split.
19309 Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
19310 (atomic_not_fetch<mode>_hard): Convert to insn_and_split. Split into
19311 atomic_not<mode>_hard if operands[0] is unused.
19312 (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Convert to insn_and_split.
19313 Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
19314 unused.
19315 (atomic_not_fetch<mode>_soft_tcb): Convert to insn_and_split. Split
19316 into atomic_not<mode>_soft_tcb if operands[0] is unused.
19317 (atomic_nand_fetch<mode>_hard): Convert to insn_and_split. Split into
19318 atomic_nand<mode>_hard if operands[0] is unused.
19319 (atomic_nand_fetch<mode>_soft_tcb): Convert to insn_and_split. Split
19320 into atomic_nand<mode>_soft_tcb if operands[0] is unused.
19321
19322 2015-02-03 David Malcolm <dmalcolm@redhat.com>
19323
19324 PR jit/64810
19325 * Makefile.in (GCC_OBJS): Add gcc-main.o.
19326 * gcc-main.c: New file, containing "main" taken from gcc.c.
19327 * gcc.c (do_self_spec): Free decoded_options.
19328 (class driver): Move declaration to gcc.h.
19329 (main): Move declaration and implementation to new file
19330 gcc-main.c.
19331 (driver_get_configure_time_options): New function.
19332 * gcc.h (class driver): Move this declaration here, from
19333 gcc.c.
19334 (driver_get_configure_time_options): New declaration.
19335
19336 2015-02-03 Jan Hubicka <hubicka@ucw.cz>
19337
19338 * ipa-inline-analysis.c (simple_edge_hints): Fix check for
19339 cross-module inlining.
19340 * cgraph.h (cgraph_node): Add flag merged.
19341 * ipa-icf.c (sem_function::merge): Maintain it.
19342
19343 2015-02-03 Richard Sandiford <richard.sandiford@arm.com>
19344
19345 * config/arm/arm.c (thumb2_reorg): Test UNARY_P and BINARY_P
19346 instead of OBJECT_P.
19347
19348 2015-02-03 Eric Botcazou <ebotcazou@adacore.com>
19349
19350 PR target/62631
19351 * config/sparc/sparc.h (TARGET_HARD_MUL): Remove TARGET_V8PLUS.
19352 (TARGET_HARD_MUL32): Rewrite based on TARGET_HARD_MUL.
19353 * config/sparc/sparc.c (sparc_rtx_costs) <MULT>: Return costs based on
19354 int_mulX for integers in 64-bit mode if TARGET_HARD_MUL is not set.
19355
19356 2015-02-03 Jakub Jelinek <jakub@redhat.com>
19357
19358 PR other/63504
19359 * combine.c (reg_n_sets_max): New variable.
19360 (can_change_dest_mode, reg_nonzero_bits_for_combine,
19361 reg_num_sign_bit_copies_for_combine, get_last_value_validate,
19362 get_last_value): Use REG_N_SETS only on pseudos < reg_n_sets_max.
19363 (try_combine): Use INC_REG_N_SETS only on pseudos < reg_n_sets_max.
19364 (rest_of_handle_combine): Initialize reg_n_sets_max.
19365
19366 2015-02-02 Jan Hubicka <hubicka@ucw.cz>
19367
19368 * ipa-inline.c (early_inliner): Skip inlining only in always_inlined;
19369 if some always_inline was inlined, apply changes before inlining
19370 heuristically.
19371
19372 2015-02-02 David Malcolm <dmalcolm@redhat.com>
19373
19374 PR jit/64810
19375 * config/arm/arm.c (arm_option_override): Set
19376 arm_selected_arch/cpu/tune to NULL on entry.
19377
19378 2015-02-02 Tejas Belagod <tejas.belagod@arm.com>
19379 Andrew Pinski <pinskia@gcc.gnu.org>
19380 Jakub Jelinek <jakub@gcc.gnu.org>
19381
19382 PR target/64231
19383 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix large
19384 integer typing for small model. Use IN_RANGE.
19385
19386 2015-02-02 Richard Biener <rguenther@suse.de>
19387
19388 * tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
19389 * tree-vrp.c (vrp_valueize_1): Likewise.
19390
19391 2015-02-02 Alan Modra <amodra@gmail.com>
19392
19393 * config/rs6000/rs6000.c (rs6000_call_aix): Use unspec rather
19394 than mem for toc_restore.
19395 * config/rs6000/rs6000.md (UNSPEC_TOCSLOT): Define.
19396 (call_indirect_aix, call_value_indirect_aix): Adjust to suit.
19397 (call_indirect_elfv2, call_value_indirect_elfv2): Likewise.
19398
19399 2015-02-01 David Edelsohn <dje.gcc@gmail.com>
19400
19401 PR target/64047
19402 * config/rs6000/rs6000.c (rs6000_set_current_function): Handle
19403 explicit default options.
19404
19405 2015-02-01 Jan Hubicka <hubicka@ucw.cz>
19406
19407 PR ipa/64872
19408 * ipa-utils.c (ipa_merge_profiles): Add release argument.
19409 * ipa-icf.c (sem_function::merge): Do not release body when merging.
19410 * ipa-utils.h (ipa_merge_profiles): Update prototype.
19411
19412 2015-02-01 Jakub Jelinek <jakub@redhat.com>
19413
19414 PR debug/64817
19415 * cfgexpand.c (deep_ter_debug_map): New variable.
19416 (avoid_deep_ter_for_debug): New function.
19417 (expand_debug_expr): If TERed SSA_NAME is in
19418 deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL
19419 instead of trying to expand SSA_NAME's def stmt.
19420 (expand_debug_locations): When expanding debug bind
19421 of a DEBUG_EXPR_DECL to corresponding SSA_NAME,
19422 temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's
19423 value.
19424 (pass_expand::execute): Call avoid_deep_ter_for_debug on
19425 all debug bind stmts. Delete deep_ter_debug_map after
19426 expand_debug_location if non-NULL and clear it.
19427
19428 2015-02-01 Oleg Endo <olegendo@gcc.gnu.org>
19429
19430 PR target/64851
19431 * config/sh/sync.md (atomic_fetch_notsi_hard,
19432 atomic_fetch_not<mode>_hard, atomic_fetch_not<mode>_soft_gusa,
19433 atomic_fetch_not<mode>_soft_tcb, atomic_fetch_not<mode>_soft_imask,
19434 atomic_not_fetchsi_hard, atomic_not_fetch<mode>_hard,
19435 atomic_not_fetch<mode>_soft_gusa, atomic_not_fetch<mode>_soft_tcb,
19436 atomic_not_fetch<mode>_soft_imask): New insns.
19437
19438 2015-02-01 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
19439
19440 * haifa-sched.c (INSN_RFS_DEBUG_ORIG_ORDER): New access macro.
19441 (rank_for_schedule_debug): Split from ...
19442 (rank_for_schedule): ... this.
19443 (ready_sort): Sort DEBUG_INSNs separately from normal INSNs.
19444 * sched-int.h (struct _haifa_insn_data): New field rfs_debug_orig_order.
19445
19446 2015-01-31 Sandra Loosemore <sandra@codesourcery.com>
19447
19448 * doc/md.texi (Machine Constraints): Alphabetize table by target.
19449 * doc/extend.texi (x86 Variable Attributes): Move section to
19450 correct alphabetization after renaming.
19451 (x86 Type Attributes): Likewise.
19452 (Target Builtins): Re-alphabetize menu.
19453 (x86 Built-in Functions): Move section to correct alphabetization
19454 after renaming.
19455 (x86 transactional memory intrinsics): Likewise.
19456 * doc/invoke.texi (Option Summary): Re-alphabetize x86 Options
19457 and x86 Windows Options in table and menu.
19458 (x86 Options): Move section to correct alphabetization after
19459 renaming.
19460 (x86 Windows Options): Likewise.
19461
19462 2015-01-31 Sandra Loosemore <sandra@codesourcery.com>
19463
19464 * doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the
19465 preferred names of the architecture and its 32- and 64-bit
19466 variants.
19467 * doc/invoke.texi: Likewise.
19468 * doc/md.texi: Likewise.
19469
19470 2015-01-31 Uros Bizjak <ubizjak@gmail.com>
19471
19472 PR target/64882
19473 * config/i386/predicates.md (address_no_seg_operand): Reject
19474 non-CONST_INT_P operands in invalid mode.
19475
19476 2015-01-31 Uros Bizjak <ubizjak@gmail.com>
19477
19478 * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
19479 address_operand 0. Rename from *prefetch_prefetchwt1_<mode>.
19480 * config/i386/predicates.md (address_no_seg_operand): Call
19481 address_operand with VOIDmode.
19482 (vsib_address_operand): Ditto.
19483 (address_mpx_no_base_operand): Ditto.
19484 (address_mpx_no_index_operand): Ditto.
19485
19486 2015-01-30 Vladimir Makarov <vmakarov@redhat.com>
19487
19488 PR target/64688
19489 * lra-constraints.c (original_subreg_reg_mode): New.
19490 (simplify_operand_subreg): Try to simplify subreg of const. Use
19491 original_subreg_reg_mode for it.
19492 (swap_operands): Update original_subreg_reg_mode.
19493 (curr_insn_transform): Set up original_subreg_reg_mode.
19494
19495 2015-01-30 Vladimir Makarov <vmakarov@redhat.com>
19496
19497 PR target/64617
19498 * lra-constraints.c (prohibited_class_reg_set_mode_p): New
19499 function.
19500 (process_alt_operands): Use it.
19501 (curr_insn_transform): Check the optional reload pseudo class is
19502 ok for the mode.
19503
19504 2015-01-30 Joseph Myers <joseph@codesourcery.com>
19505
19506 * diagnostic.c (fatal_error (const char *, ...)): Remove function.
19507 * diagnostic-core.h (fatal_error (const char *, ...)): Remove
19508 prototype.
19509 * toplev.h (init_asm_output): Update comment on use of
19510 UNKNOWN_LOCATION with fatal_error.
19511 * cgraph.c, collect-utils.c, collect2.c, config/arc/arc.c,
19512 config/arc/arc.md, config/avr/avr.c, config/c6x/c6x.h,
19513 config/darwin.c, config/host-darwin.c, config/i386/host-cygwin.c,
19514 config/i386/intelmic-mkoffload.c, config/nios2/nios2.c,
19515 config/nvptx/mkoffload.c, config/nvptx/nvptx.h,
19516 config/rs6000/host-darwin.c, config/rs6000/rs6000.c,
19517 config/s390/s390.c, gcc.c, gcov-io.h, gcov-tool.c, ggc-common.c,
19518 ggc-page.c, graph.c, ipa-inline-analysis.c, ipa-reference.c,
19519 lto-cgraph.c, lto-section-in.c, lto-streamer-in.c, lto-streamer.c,
19520 lto-wrapper.c, objc/objc-act.c, opts.c, passes.c, plugin.c,
19521 tlink.c, toplev.c, tree-streamer-in.c, varpool.c: All callers of
19522 fatal_error changed to pass input_location as first argument.
19523
19524 2015-01-30 Martin Liska <mliska@suse.cz>
19525
19526 * tree.h: Change GCC_VERSION >= 4004 to GCC_VERSION >= 4006
19527 in #pragma GCC diagnostic guards.
19528
19529 2015-01-30 Richard Biener <rguenther@suse.de>
19530
19531 PR tree-optimization/64829
19532 * tree-vect-patterns.c (vect_handle_widen_op_by_const): Do
19533 not add a widening conversion pattern but hand off extra
19534 widenings to callers.
19535 (vect_recog_widen_mult_pattern): Handle extra widening produced
19536 by vect_handle_widen_op_by_const.
19537 (vect_recog_widen_shift_pattern): Likewise.
19538 (vect_pattern_recog_1): Remove excess vertical space in dumping.
19539 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
19540 (vect_init_vector_1): Likewise.
19541 (vect_get_vec_def_for_operand): Likewise.
19542 (vect_finish_stmt_generation): Likewise.
19543 (vectorizable_load): Likewise.
19544 (vect_analyze_stmt): Likewise.
19545 (vect_is_simple_use): Likewise.
19546
19547 2015-01-29 Jeff Law <law@redhat.com>
19548
19549 * combine.c (try_combine): Fix typo in comment.
19550
19551 2015-01-29 Segher Boessenkool <segher@kernel.crashing.org>
19552
19553 PR target/64580
19554 * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
19555 (rs6000_stack_info): Add assert.
19556 (rs6000_output_savres_externs): New function, split off from...
19557 (rs6000_output_function_prologue): ... here. Do not call it for
19558 thunks.
19559
19560 2015-01-29 Jeff Law <law@redhat.com>
19561
19562 PR target/15184
19563 * combine.c (try_combine): If I0 is a memory load and I3 a store
19564 to a related address, increase the "goodness" of doing a 4-insn
19565 combination with I0-I3.
19566 (make_field_assignment): Handle SUBREGs in the ior+and case.
19567
19568 2015-01-29 Yuri Rumyantsev <ysrumyan@gmail.com>
19569
19570 PR tree-optimization/64746
19571 * tree-if-conv.c (mask_exists): New function.
19572 (predicate_mem_writes): Save created mask with given size for further
19573 use.
19574 (stmt_is_root_of_bool_pattern): Remove argument VAR and store to it.
19575 (ifcvt_repair_bool_pattern): Collect all statements that are root
19576 of bool pattern and use iterative algorithm to remove multiple uses
19577 of predicates, display number of required iterations.
19578
19579 2015-01-29 Richard Biener <rguenther@suse.de>
19580
19581 PR tree-optimization/64853
19582 * tree-vrp.c (vrp_valueize_1): Do not return anything if the
19583 stmt will get simulated again.
19584 * tree-ssa-ccp.c (valueize_op_1): Likewise.
19585
19586 2015-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19587
19588 * config/arm/arm.c (arm_emit_multi_reg_pop): Simplify definition of
19589 return_in_pc. Remove redundant assignments.
19590 (thumb2_emit_ldrd_pop): Simplify definition of return_in_pc.
19591 (arm_expand_epilogue): Don't compare boolean with true in if condition.
19592
19593 2015-01-29 Uros Bizjak <ubizjak@gmail.com>
19594
19595 * config/i386/i386.c (ix86_mode_after): Make static.
19596
19597 2015-01-29 Richard Biener <rguenther@suse.de>
19598
19599 PR tree-optimization/64844
19600 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Always
19601 dump cost model analysis.
19602 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
19603 Do not register adjusted load/store costs here.
19604
19605 2015-01-29 Ilya Enkovich <ilya.enkovich@intel.com>
19606 Uros Bizjak <ubizjak@gmail.com>
19607
19608 * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): New.
19609 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Simplify by
19610 using x86_use_pseudo_pic_reg.
19611 * config/i386/i386.c (ix86_conditional_register_usage): Remove
19612 support for fixed PIC register.
19613 (ix86_use_pseudo_pic_reg): Not static any more.
19614
19615 2015-01-29 Ilya Enkovich <ilya.enkovich@intel.com>
19616
19617 PR middle-end/64805
19618 * ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference
19619 to avoid error in cgraph node verification.
19620
19621 2015-01-29 Marek Polacek <polacek@redhat.com>
19622
19623 * doc/standards.texi: Reflect that the default for C is gnu11.
19624
19625 2015-01-29 Kaz Kojima <kkojima@gcc.gnu.org>
19626
19627 PR target/64761
19628 * reorg.c (switch_text_sections_between_p): New function.
19629 (relax_delay_slots): Call it when testing if the jump insn
19630 is removable. Use targetm.can_follow_jump when testing if
19631 the conditional branch can follow an unconditional jump.
19632
19633 2015-01-27 Caroline Tice <cmtice@google.com>
19634
19635 Committing VTV Cywin/Ming patch for Patrick Wollgast
19636 * config/i386/cygwin.h (STARTFILE_SPEC): Add vtv_start.o,
19637 if -fvtable-verify=preinit/std is used.
19638 * config/i386/mingw-w64.h (STARTFILE_SPEC): Likewise.
19639 * config/i386/mingw32.h (STARTFILE_SPEC): Likewise.
19640 * config/i386/cygwin.h (ENDFILE_SPEC): Add vtv_end.o,
19641 if -fvtable-verify=preinit/std is used.
19642 * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
19643 * config/i386/cygwin.h (LIB_SPEC): Pass -lvtv and -lpsapi,
19644 if -fvtable-verify=preinit/std is used.
19645 * config/i386/mingw-w64.h (LIB_SPEC): Likewise.
19646 * config/i386/mingw32.h (LIB_SPEC): Likewise.
19647 * varasm.c (assemble_variable): Add code to properly set the comdat
19648 section and name for the .vtable_map_vars section in case the
19649 target is PE or COFF.
19650
19651 2015-01-29 Jan Hubicka <hubicka@ucw.cz>
19652
19653 PR ipa/64801
19654 * cgraphunit.c (init_lowered_empty_function): Add CoUNT parameter;
19655 make sane BB profile.
19656 (cgraph_node::expand_thunk): Make sane BB profile.
19657 (cgraph_node::create_wrapper): Do not set call_stmt_cannot_inline_p.
19658 * cgraph.h (init_lowered_empty_function): Update prototype.
19659 * config/i386/i386.c (make_resolver_func): Update call.
19660 * predict.c (gate): Disable branch prediction pass if
19661 profile is already there.
19662
19663 2015-01-29 Jan Hubicka <hubicka@ucw.cz>
19664
19665 * optc-save-gen.awk: flag_fp_contract_mode is no longer speical.
19666 * opth-gen.awk: Likewise.
19667 * common.opt: Mark flag_fp_contract_mode as Optimization.
19668
19669 2015-01-29 Bernd Edlinger <bernd.edlinger@hotmail.de>
19670
19671 * config/i386/cygwin.h (LIBGCJ_SONAME): Set libgcj version to -16.
19672 * config/i386/mingw32.h (LIBGCJ_SONAME): Set libgcj version to -16.
19673
19674 2015-01-28 Oleg Endo <olegendo@gcc.gnu.org>
19675
19676 PR target/64659
19677 * config/sh/predicates.md (atomic_arith_operand,
19678 atomic_logical_operand): Remove.
19679 * config/sh/sync.md (fetchop_predicate, fetchop_constraint): Remove.
19680 (atomic_arith_operand_0): New predicate.
19681 (atomic_compare_and_swap<mode>): Use arith_reg_dest for output values.
19682 Use atomic_arith_operand_0 for input values.
19683 (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
19684 atomic_compare_and_swap<mode>_soft_gusa,
19685 atomic_compare_and_swap<mode>_soft_tcb,
19686 atomic_compare_and_swap<mode>_soft_imask): Use arith_reg_dest and
19687 arith_reg_operand instead of register_operand.
19688 (atomic_exchange<mode>): Use arith_reg_dest for output value. Use
19689 atomic_arith_operand_0 for newval input.
19690 (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
19691 atomic_exchange<mode>_soft_gusa, atomic_exchange<mode>_soft_tcb,
19692 atomic_exchange<mode>_soft_imask): Use arith_reg_dest and
19693 arith_reg_operand instead of register_operand.
19694 (atomic_arith_operand_1, atomic_logical_operand_1): New predicates.
19695 fetchop_predicate_1, fetchop_constraint_1_llcs,
19696 fetchop_constraint_1_gusa, fetchop_constraint_1_tcb,
19697 fetchop_constraint_1_imask): New code iterator attributes.
19698 (atomic_fetch_<fetchop_name><mode>): Use arith_reg_dest instead of
19699 register_operand. Use fetchop_predicate_1.
19700 (atomic_fetch_<fetchop_name>si_hard,
19701 atomic_fetch_<fetchop_name><mode>_hard): Use arith_reg_dest instead of
19702 register_operand. Use fetchop_predicate_1, fetchop_constraint_1_llcs.
19703 (atomic_fetch_<fetchop_name><mode>_soft_gusa): Use arith_reg_dest
19704 and arith_reg_operand instead of register_operand. Use
19705 fetchop_predicate_1, fetchop_constraint_1_gusa.
19706 (atomic_fetch_<fetchop_name><mode>_soft_tcb): Use arith_reg_dest
19707 and arith_reg_operand instead of register_operand. Use
19708 fetchop_predicate_1, fetchop_constraint_1_tcb. Adjust asm sequence
19709 to allow R0 usage.
19710 (atomic_fetch_<fetchop_name><mode>_soft_imask): Use arith_reg_dest
19711 and arith_reg_operand instead of register_operand. Use
19712 fetchop_predicate_1, fetchop_constraint_1_imask. Adjust asm sequence
19713 to allow R0 usage.
19714 (atomic_fetch_nand<mode>): Use arith_reg_dest instead of
19715 register_operand. Use atomic_logical_operand_1.
19716 (atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
19717 atomic_fetch_nand<mode>_soft_gusa): Use arith_reg_dest and
19718 arith_reg_operand instead of register_operand.
19719 (atomic_fetch_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask):
19720 Use arith_reg_dest and arith_reg_operand instead of register_operand.
19721 Use logical_operand and rK08. Adjust asm sequence to allow R0 usage.
19722 (atomic_<fetchop_name>_fetch<mode>): Use arith_reg_dest instead of
19723 register_operand. Use fetchop_predicate_1.
19724 (atomic_<fetchop_name>_fetchsi_hard,
19725 atomic_<fetchop_name>_fetch<mode>_hard): Use arith_reg_dest and
19726 arith_reg_operand instead of register_operand. Use fetchop_predicate_1,
19727 fetchop_constraint_1_llcs.
19728 (atomic_<fetchop_name>_fetch<mode>_soft_gusa): Use arith_reg_dest and
19729 arith_reg_operand instead of register_operand. Use fetchop_predicate_1,
19730 fetchop_constraint_1_gusa.
19731 (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Use arith_reg_dest and
19732 arith_reg_operand instead of register_operand. Use fetchop_predicate_1,
19733 fetchop_constraint_1_tcb. Adjust asm sequence to allow R0 usage.
19734 (atomic_<fetchop_name>_fetch<mode>_soft_imask): Use arith_reg_dest and
19735 arith_reg_operand instead of register_operand. Use fetchop_predicate_1,
19736 fetchop_constraint_1_imask. Adjust asm sequence to allow R0 usage.
19737 (atomic_nand_fetch<mode>): Use arith_reg_dest instead of
19738 register_operand. Use atomic_logical_operand_1.
19739 (atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
19740 atomic_nand_fetch<mode>_soft_gusa): Use arith_reg_dest and
19741 arith_reg_operand instead of register_operand.
19742 (atomic_nand_fetch<mode>_soft_tcb): Use arith_reg_dest and
19743 arith_reg_operand instead of register_operand. Use logical_operand
19744 and K08. Adjust asm sequence to allow R0 usage.
19745 (atomic_nand_fetch<mode>_soft_imask): Use arith_reg_dest and
19746 arith_reg_operand instead of register_operand. Use logical_operand
19747 and K08.
19748
19749 2015-01-28 Jakub Jelinek <jakub@redhat.com>
19750
19751 PR other/63504
19752 * dwarf2out.c (add_AT_wide, mem_loc_descriptor, loc_descriptor):
19753 Use ggc_alloc<wide_int> instead of ggc_cleared_alloc<wide_int>.
19754 (attr_checksum, attr_checksum_ordered, hash_loc_operands): Checksum
19755 only get_full_len HOST_WIDE_INTs from get_val () array rather than
19756 all bits in *val_wide.
19757
19758 2015-01-28 Jan Hubicka <hubicka@ucw.cz>
19759
19760 * varpool.c (tls_model_names): Fix names.
19761 (varpool_node::dump): Dump tls- prefix for tls models.
19762
19763 2015-01-28 Thomas Schwinge <thomas@codesourcery.com>
19764 Bernd Schmidt <bernds@codesourcery.com>
19765 Nathan Sidwell <nathan@codesourcery.com>
19766
19767 * config/nvptx/mkoffload.c: New file.
19768 * config/nvptx/t-nvptx: Add build rules for it.
19769 * config.gcc <nvptx-*> [$enable_as_accelerator = yes]
19770 (extra_programs): Add mkoffload.
19771 * config/nvptx/nvptx.c (nvptx_record_offload_symbol): New
19772 function.
19773 (TARGET_RECORD_OFFLOAD_SYMBOL): Define macro to use it.
19774
19775 2015-01-28 Yuri Rumyantsev <ysrumyan@gmail.com>
19776
19777 PR middle-end/64809
19778 * cfgexpand.c (reorder_operands): Skip debug gimples.
19779
19780 2015-01-28 Ilya Enkovich <ilya.enkovich@intel.com>
19781
19782 PR tree-optimization/64277
19783 * tree-ssa-loop-niter.c (record_nonwrapping_iv): Use base
19784 range info when possible to refine estimation.
19785
19786 2015-01-28 Thomas Preud'homme <thomas.preudhomme@arm.com>
19787
19788 PR tree-optimization/64718
19789 * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Make bswap_type
19790 be a 16bit unsigned integer when n->range is 16.
19791 (bswap_replace): Convert src to that type if necessary for all bswap
19792 sizes. Fix rotation right notation in nearby comment. Use bswap_type
19793 set in pass_optimize_bswap::execute ().
19794
19795 2015-01-28 James Greenhalgh <james.greenhalgh@arm.com>
19796
19797 * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): New.
19798 * config/aarch64/aarch64-simd-builtins.def (abs): Split by
19799 integer and floating point variants.
19800 * config/aarch64/iterators.md (unspec): Add UNSPEC_ABS.
19801
19802 2015-01-28 Robert Suchanek <robert.suchanek@imgtec.com>
19803
19804 * config/mips/mips.c (mips_hard_regno_mode_ok_p): Prohibit accumulators
19805 for all vector modes.
19806
19807 2015-01-28 Jakub Jelinek <jakub@redhat.com>
19808
19809 PR bootstrap/64612
19810 * doc/sourcebuild.texi (comdat_group): Document.
19811
19812 2015-01-28 Terry Guo <terry.guo@arm.com>
19813
19814 * config/arm/thumb1.md (*thumb1_movpc_insn): New insn pattern.
19815
19816 2015-01-27 David Malcolm <dmalcolm@redhat.com>
19817
19818 * toplev.c (print_version): Add param "show_global_state", and
19819 only print GGC and plugin information if it is true.
19820 (init_asm_output): Pass in "true" for the new param when calling
19821 print_version.
19822 (process_options): Likewise.
19823 (toplev::main): Likewise.
19824 * toplev.h (print_version): Add new param to decl.
19825
19826 2015-01-27 Jan Hubicka <hubicka@ucw.cz>
19827
19828 PR ipa/60871
19829 PR ipa/64139
19830 * tree.c (lookup_binfo_at_offset): New function.
19831 (get_binfo_at_offset): Use it.
19832
19833 2015-01-27 Jan Hubicka <hubicka@ucw.cz>
19834
19835 PR ipa/64282
19836 * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert
19837 on vtable being vtable.
19838
19839 2015-01-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
19840
19841 * doc/extend.texi: s/390: Update documentation of hotpatch attribute.
19842 * doc/invoke.texi (-mhotpatch): s/390: Update documentation of
19843 -mhotpatch= option.
19844 * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
19845 -mno-hotpatch options. Change syntax of -mhotpatch= option.
19846 * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
19847 Renamed.
19848 (s390_hotpatch_trampoline_halfwords_max): Renamed.
19849 (s390_hotpatch_hw_max): New name.
19850 (s390_hotpatch_trampoline_halfwords): Renamed.
19851 (s390_hotpatch_hw_before_label): New name.
19852 (get_hotpatch_attribute): Removed.
19853 (s390_hotpatch_hw_after_label): New name.
19854 (s390_handle_hotpatch_attribute): Add second parameter to hotpatch
19855 attribute.
19856 (s390_attribute_table): Ditto.
19857 (s390_function_num_hotpatch_trampoline_halfwords): Renamed.
19858 (s390_function_num_hotpatch_hw): New name.
19859 Remove special handling of inline functions and hotpatching.
19860 Return number of nops before and after the function label.
19861 (s390_can_inline_p): Removed.
19862 (s390_asm_output_function_label): Emit a configurable number of nops
19863 after the function label.
19864 (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
19865 (TARGET_CAN_INLINE_P) Removed.
19866 (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.
19867
19868 2015-01-27 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
19869 Jiong Wang <jiong.wang@arm.com>
19870
19871 * config/aarch64/aarch64.md (tb<optab><mode>1): Clobber CC reg instead
19872 of scratch reg.
19873 (cb<optab><mode>1): Likewise.
19874 * config/aarch64/iterators.md (bcond): New define_code_attr.
19875
19876 2015-01-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19877
19878 * config/s390/s390.c (s390_memory_move_cost): Increase costs for
19879 memory accesses.
19880
19881 2015-01-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19882
19883 * config/s390/s390.c (s390_register_move_cost): Increase costs for
19884 FPR->GPR moves.
19885
19886 2015-01-27 Richard Biener <rguenther@suse.de>
19887
19888 * tree-vrp.c (update_value_range): Intersect the range with
19889 old recorded SSA name range information.
19890
19891 2015-01-27 Nick Clifton <nickc@redhat.com>
19892
19893 * config/rl78/rl78.c (rl78_expand_prologue): In G10 mode push the
19894 BC, DE and HL registers directly, not via AX.
19895 When decrementing the stack pointer by a large amount, transfer SP
19896 into AX and perform the subtraction there.
19897 (rl78_expand_epilogue): Perform the inverse of the above
19898 enhancements.
19899
19900 2015-01-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19901
19902 * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Remove.
19903
19904 2015-01-27 Jakub Jelinek <jakub@redhat.com>
19905 Yury Gribov <y.gribov@samsung.com>
19906
19907 PR ubsan/64741
19908 * ubsan.c (ubsan_source_location): Refactor code.
19909 (ubsan_type_descriptor): Update type size. Refactor code.
19910
19911 2015-01-27 Richard Biener <rguenther@suse.de>
19912
19913 PR tree-optimization/56273
19914 PR tree-optimization/59124
19915 PR tree-optimization/64277
19916 * tree-vrp.c (vrp_finalize): Emit array-bound warnings only
19917 from the first VRP pass.
19918
19919 2015-01-27 Jakub Jelinek <jakub@redhat.com>
19920
19921 PR ipa/64776
19922 * cgraphunit.c (cgraph_node::expand_thunk): If not this_adjusting,
19923 handle the first argument in the same loop as all the other arguments.
19924
19925 PR rtl-optimization/61058
19926 * jump.c (cleanup_barriers): Update basic block boundaries
19927 if BLOCK_FOR_INSN is non-NULL on PREV.
19928
19929 2015-01-27 Ilya Enkovich <ilya.enkovich@intel.com>
19930
19931 * tree-chkp.c (chkp_call_returns_bounds_p): Fix handling of
19932 bounds narrowing, already instrumented calls and calls to
19933 not instrumentable functions.
19934
19935 2015-01-27 Jakub Jelinek <jakub@redhat.com>
19936
19937 PR tree-optimization/64807
19938 * wide-int.cc (wi::divmod_internal): Clear
19939 b_dividend[dividend_blocks_needed].
19940
19941 2015-01-26 DJ Delorie <dj@redhat.com>
19942
19943 * config/rl78/rl78.c (move_elim_pass): Don't optimize away
19944 volatile memory references.
19945
19946 2015-01-26 Oleg Endo <olegendo@gcc.gnu.org>
19947
19948 PR target/49263
19949 * config/sh/sh.c (sh_split_treg_set_expr): Invoke emit_insn before
19950 remove_insn.
19951 * config/sh/sh.md (tstsi_t): Don't try to optimize constant with right
19952 shifts if it already fits into K08.
19953
19954 2015-01-26 Jakub Jelinek <jakub@redhat.com>
19955
19956 PR ipa/64730
19957 * ipa-inline.c (inline_small_functions): Print "unknown" even
19958 if edge->call_stmt is non-NULL, but has builtins or unknown
19959 location.
19960
19961 PR middle-end/64421
19962 * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
19963 with asterisk, skip the first character.
19964
19965 2015-01-26 H.J. Lu <hongjiu.lu@intel.com>
19966
19967 PR target/64806
19968 * config/i386/i386 (feature_priority): Revert the last P_POPCNT
19969 order change.
19970
19971 2015-01-26 Uros Bizjak <ubizjak@gmail.com>
19972
19973 PR target/64795
19974 * config/i386/i386.md (*movdi_internal): Also check operand 0
19975 to determine TYPE_LEA operand.
19976 (*movsi_internal): Ditto.
19977
19978 2015-01-26 Jakub Jelinek <jakub@redhat.com>
19979
19980 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
19981 OPTION_MASK_QUAD_MEMORY_ATOMIC.
19982
19983 2015-01-26 Renlin Li <renlin.li@arm.com>
19984
19985 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Correct
19986 the comment.
19987 * config/aarch64/aarch64.md (tlsle_small_<mode>): Add left shift 12-bit
19988 for higher part.
19989
19990 2015-01-26 Richard Biener <rguenther@suse.de>
19991
19992 PR middle-end/64764
19993 * tree-ssa-uninit.c (is_pred_expr_subset_of): Handle
19994 combining two BIT_AND_EXPR predicates.
19995
19996 2015-01-26 H.J. Lu <hongjiu.lu@intel.com>
19997
19998 PR bootstrap/64754
19999 * tree-ssa-structalias.c (new_var_info): Initialize ruid.
20000
20001 2015-01-26 Terry Guo <terry.guo@arm.com>
20002
20003 * config/arm/arm.c (arm_file_start): Update the assignment of
20004 Tag_ABI_HardFP_use.
20005
20006 2015-01-25 James Greenhalgh <james.greenhalgh@arm.com>
20007
20008 * config/arm/arm-cores.def (cortex-a57): Use the new Cortex-A57
20009 pipeline model.
20010 config/arm/arm.md: Include the new Cortex-A57 model.
20011 (generic_sched): Don't use generic_sched when tuning for
20012 Cortex-A57.
20013
20014 2015-01-25 Allan Sandfeld Jensen <sandfeld@kde.org>
20015 Uros Bizjak <ubizjak@gmail.com>
20016
20017 * config/i386/i386.c (get_builtin_code_for_version): Add
20018 support for BMI and BMI2 multiversion functions.
20019
20020 2015-01-25 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
20021
20022 * emit-rtl.h (store_bit_field): Move prototype to expmed.h.
20023 (extract_bit_field): Likewise.
20024 (extract_low_bits): Likewise.
20025 (expand_mult): Likewise.
20026 (expand_mult_highpart_adjust): Likewise.
20027
20028 2015-01-24 H.J. Lu <hongjiu.lu@intel.com>
20029
20030 * config/i386/driver-i386.c (host_detect_local_cpu): Check new
20031 Silvermont, Haswell, Broadwell and Knights Landing model numbers.
20032 * config/i386/i386.c (processor_model): Add
20033 M_INTEL_COREI7_BROADWELL.
20034 (arch_names_table): Add "broadwell".
20035
20036 2015-01-24 Oleg Endo <olegendo@gcc.gnu.org>
20037
20038 PR target/49263
20039 PR target/53987
20040 PR target/64345
20041 PR target/59533
20042 PR target/52933
20043 PR target/54236
20044 PR target/51244
20045 * config/sh/sh-protos.h
20046 (sh_extending_set_of_reg::can_use_as_unextended_reg,
20047 sh_extending_set_of_reg::use_as_unextended_reg,
20048 sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn,
20049 sh_is_movrt_insn, sh_insn_operands_modified_between_p,
20050 sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr,
20051 sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions.
20052 (sh_treg_insns): New class.
20053 * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook.
20054 (scope_counter): New class.
20055 (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest,
20056 sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn,
20057 sh_extending_set_of_reg::can_use_as_unextended_reg,
20058 sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr,
20059 sh_in_recog_treg_set_expr, sh_try_split_insn_simple,
20060 sh_split_treg_set_expr): New functions.
20061 (addsubcosts): Handle treg_set_expr.
20062 (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT.
20063 (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND.
20064 (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases.
20065 (sh_insn_operands_modified_between_p): Make non-static.
20066 * config/sh/predicates.md (zero_extend_movu_operand): Allow
20067 simple_mem_operand in addition to displacement_mem_operand.
20068 (zero_extend_operand): Don't allow zero_extend_movu_operand.
20069 (treg_set_expr, treg_set_expr_not_const01,
20070 arith_reg_or_treg_set_expr): New predicates.
20071 * config/sh/sh.md (tstsi_t): Use arith_reg_operand and
20072 arith_or_int_operand instead of logical_operand. Convert to
20073 insn_and_split. Try to optimize constant operand in splitter.
20074 (tsthi_t, tstqi_t): Fold into *tst<mode>_t. Convert to insn_and_split.
20075 (*tstqi_t_zero): Delete.
20076 (*tst<mode>_t_subregs): Add !sh_in_recog_treg_set_expr split condition.
20077 (tstsi_t_and_not): Delete.
20078 (tst<mode>_t_zero_extract_eq): Rename to *tst<mode>_t_zero_extract.
20079 Convert to insn_and_split.
20080 (unnamed split, tstsi_t_zero_extract_xor,
20081 tstsi_t_zero_extract_subreg_xor_little,
20082 tstsi_t_zero_extract_subreg_xor_big): Delete.
20083 (*tstsi_t_shift_mask): New insn_and_split.
20084 (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try
20085 to recombine with surrounding insns when splitting.
20086 (*negtstsi): Add !sh_in_recog_treg_set_expr condition.
20087 (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ...
20088 (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4,
20089 *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns.
20090 (*cbranch_div0s: Delete.
20091 (*addc): Convert to insn_and_split. Use treg_set_expr as 3rd operand.
20092 Try to recombine with surrounding insns when splitting. Add operand
20093 order variants.
20094 (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01.
20095 (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb,
20096 *addc_r_r_msb, *addc_2r_msb): Delete.
20097 (*addc_2r_lsb): Rename to *addc_2r_t. Use treg_set_expr. Add operand
20098 order variant.
20099 (*addc_negreg_t): New insn_and_split.
20100 (*subc): Convert to insn_and_split. Use treg_set_expr as 3rd operand.
20101 Try to recombine with surrounding insns when splitting.
20102 Add operand order variants.
20103 (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New
20104 insn_and_split patterns.
20105 (*rotcr): Use arith_reg_or_treg_set_expr. Try to recombine with
20106 surrounding insns when splitting.
20107 (unnamed rotcr split): Use arith_reg_or_treg_set_expr.
20108 (*rotcl): Likewise. Add zero_extract variant.
20109 (*ashrsi2_31): New insn_and_split.
20110 (*negc): Convert to insn_and_split. Use treg_set_expr.
20111 (*zero_extend<mode>si2_disp_mem): Update comment.
20112 (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split
20113 condition.
20114 (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr. Try to recombine
20115 with surrounding insns when splitting.
20116 (any_treg_expr_to_reg): New insn_and_split.
20117 (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2,
20118 *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5,
20119 *neg_zero_extract_6, *zero_extract_0, *zero_extract_1,
20120 *zero_extract_2): New single bit zero extract patterns.
20121 (bld_reg, *bld_regqi): Fold into bld<mode>_reg.
20122 (*get_thread_pointersi, store_gbr, *mov<mode>_gbr_load,
20123 *mov<mode>_gbr_load, *mov<mode>_gbr_load, *mov<mode>_gbr_load,
20124 *movdi_gbr_load): Use arith_reg_dest instead of register_operand for
20125 set destination.
20126 (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of
20127 register_operand for set source.
20128
20129 2015-01-23 Jan Hubicka <hubicka@ucw.cz>
20130
20131 * i386.opt (prefetch_sse): New targetsave.
20132 * i386.c (ix86_function_specific_save): Save prefetch_sse.
20133 (ix86_function_specific_restore): Restore prefetch_sse and initialize
20134 ix86_cost/ix86_tune_cost.
20135
20136 2015-01-23 David Malcolm <dmalcolm@redhat.com>
20137
20138 * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
20139 Support the JIT by using 0 as the language type.
20140
20141 2015-01-23 Vladimir Makarov <vmakarov@redhat.com>
20142
20143 PR target/64317
20144 * lra-lives.c (make_hard_regno_born): Add parameter. Don't make
20145 REAL_PIC_OFFSET_TABLE_REGNUM conflicting with pic offset pseudo.
20146 (mark_regno_live, process_bb_lives): Pass new parameter value to
20147 make_hard_regno_born.
20148
20149 2015-01-23 Jakub Jelinek <jakub@redhat.com>
20150
20151 PR rtl-optimization/63637
20152 PR rtl-optimization/60663
20153 * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
20154 if elt->cost is MAX_COST for ASM_OPERANDS.
20155 (find_sets_in_insn): Fix up comment typo.
20156 (cse_insn): Don't set src_volatile for all non-volatile
20157 ASM_OPERANDS in PARALLELs, but just those with multiple outputs
20158 or with "memory" clobber. Set elt->cost to MAX_COST
20159 for ASM_OPERANDS in PARALLEL. Set src_elt->cost to MAX_COST
20160 if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
20161
20162 2015-01-23 Uros Bizjak <ubizjak@gmail.com>
20163
20164 * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
20165 alternative 1.
20166
20167 2015-01-23 Uros Bizjak <ubizjak@gmail.com>
20168
20169 * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Move definition to
20170 libgcc/config/i386/elf-lib.h.
20171
20172 2015-01-23 Jakub Jelinek <jakub@redhat.com>
20173
20174 PR driver/64737
20175 * gcc.c (print_configuration): Don't print a blank line at the end
20176 here...
20177 (run_attempt): ... but here unstead.
20178
20179 PR middle-end/64734
20180 * omp-low.c (scan_sharing_clauses): Don't ignore
20181 OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
20182 on target data/update constructs.
20183
20184 2015-01-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
20185
20186 PR target/50928
20187 * config/m32c/m32c.c (encode_pattern_1): Removed gcc_unreachable here.
20188 (DEBUG_RELOAD): Removed define.
20189 (m32c_limit_reload_class): Enable traces with if DEBUG0.
20190 (m32c_function_arg): Added a type cast.
20191 (m32c_legitimize_reload_address): Push A_REGS reload with PSImode.
20192 * config/m32c/addsub.md (addsi3_1): Specify the mode of all arguments.
20193 * config/m32c/bitops.md (andqi3_16): Likewise.
20194 * config/m32c/mov.md (m32c_immd_dbl_mov): Likewise.
20195 (push_a01_l): Likewise.
20196
20197 2015-01-23 David Malcolm <dmalcolm@redhat.com>
20198
20199 PR jit/64721
20200 * main.c (main): Construct toplev instances with init_signals=true.
20201 * toplev.c (general_init): Add param "init_signals", and use it to
20202 conditionalize the calls to signal and host_hooks.extra_signals.
20203 (toplev::toplev): Add param "init_signals".
20204 (toplev::main): When invoking general_init, pass m_init_signals
20205 to control whether signal-handlers are installed.
20206 * toplev.h (toplev::toplev): Add param "init_signals".
20207 (toplev::m_init_signals): New field.
20208
20209 2015-01-23 David Malcolm <dmalcolm@redhat.com>
20210
20211 PR jit/64722
20212 * emit-rtl.c (init_emit_regs): Set pic_offset_table_rtx to
20213 NULL_RTX before testing PIC_OFFSET_TABLE_REGNUM, since the
20214 latter may be affected by the former (e.g. on i686).
20215
20216 2015-01-23 Martin Liska <mliska@suse.cz>
20217
20218 * tree.h (tree_vec_elt_check): Workaround -Wstrict-overflow
20219 false positive during profiledbootstrap.
20220
20221 2015-01-23 Tom de Vries <tom@codesourcery.com>
20222
20223 PR libgomp/64672
20224 * lto-opts.c (lto_write_options): Output non-explicit conservative
20225 -fno-openacc.
20226 * lto-wrapper.c (merge_and_complain): Handle merging -fopenacc.
20227 (append_compiler_options): Pass -fopenacc through.
20228
20229 2015-01-23 Tom de Vries <tom@codesourcery.com>
20230
20231 PR libgomp/64707
20232 * lto-opts.c (lto_write_options): Output non-explicit conservative
20233 -fno-openmp.
20234 * lto-wrapper.c (merge_and_complain): Handle merging -fopenmp.
20235 (append_compiler_options): Pass -fopenmp through.
20236
20237 2015-01-23 Jakub Jelinek <jakub@redhat.com>
20238
20239 PR debug/64511
20240 * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
20241 GTY markup.
20242
20243 * diagnostic-core.h (internal_error_no_backtrace): New prototype.
20244 * diagnostic.def (DK_ICE_NOBT): New kind.
20245 * diagnostic.c (diagnostic_action_after_output): Handle DK_ICE_NOBT
20246 like DK_ICE, but never print backtrace.
20247 (diagnostic_report_diagnostic): Handle DK_ICE_NOBT like DK_ICE.
20248 (internal_error_no_backtrace): New function.
20249 * gcc.c (execute): Use internal_error_no_backtrace instead of
20250 internal_error.
20251
20252 2015-01-22 Jeff Law <law@redhat.com>
20253
20254 PR target/52076
20255 * config/m68k/m68k.md (xorsi3_internal): Twiddle constraints to
20256 improve code density for small immediate to memory case.
20257 (insv): Better handle bitfield assignments when the field is
20258 being set to all ones.
20259 * config/m68k/predicates.md (reg_or_pow2_m1_operand): New
20260 operand predicate.
20261
20262 2015-01-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20263 Jakub Jelinek <jakub@redhat.com>
20264
20265 PR middle-end/64729
20266 * gcc.c (LINK_SSP_SPEC): Handle -fstack-protector-explicit
20267 for !TARGET_LIBC_PROVIDES_SSP version and
20268 -fstack-protector-{all,strong,explicit} otherwise.
20269 * config/freebsd.h (LINK_SSP_SPEC): Handle
20270 -fstack-protector-{strong,explicit}.
20271
20272 2015-01-22 Jan Hubicka <hubicka@ucw.cz>
20273 H.J. Lu <hongjiu.lu@intel.com>
20274
20275 PR ipa/64694
20276 * ipa-inline.c (inline_small_functions): Fix thinko in maintenance of
20277 heap.
20278
20279 2015-01-22 Wei Mi <wmi@google.com>
20280
20281 PR rtl-optimization/64557
20282 * dse.c (record_store): Call get_addr for mem_addr.
20283 (check_mem_read_rtx): Likewise.
20284
20285 2015-01-22 Eric Botcazou <ebotcazou@adacore.com>
20286
20287 * fold-const.c (const_binop): Add early return for non-tcc_binary.
20288
20289 2015-01-22 Chen Gang <gang.chen.5i5j@gmail.com>
20290
20291 * toplev.c (init_local_tick): Process the failure when read
20292 fails for random_seed.
20293
20294 * ubsan.c (ubsan_type_descriptor): Use 'pretty_print' for
20295 'pretty_name' to avoid memory overflow.
20296
20297 2015-01-22 Richard Biener <rguenther@suse.de>
20298
20299 PR middle-end/64728
20300 * tree-ssa-coalesce.c (coalesce_partitions): Do not perform
20301 abnormal coalescing on undefined SSA names.
20302
20303 2015-22-01 Uros Bizjak <ubizjak@gmail.com>
20304
20305 PR target/64688
20306 PR target/64477
20307 * config/i386/sse.md (vec_set<mode>_0): Use (Yi/r/C) constraints
20308 for alternative 3.
20309 (*vec_dup<mode>): Use (Yi/$r) constraints for alternative 1.
20310
20311 2015-01-22 Trevor Saunders <tsaunders@mozilla.com>
20312
20313 PR middle-end/63325
20314 * fold-const.c (fold_checksum_tree): Don't include value of
20315 expr->decl_with_vis.symtab_node in the checksum.
20316
20317 2015-01-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20318
20319 * config/s390/s390.md (atomic code attribute): Fix typo "ior" -> "or".
20320
20321 2015-01-22 Max Ostapenko <m.ostapenko@partner.samsung.com>
20322
20323 PR driver/64690
20324 * gcc.c (insert_comments): New function.
20325 (try_generate_repro): Call it.
20326 (append_text): Removed.
20327
20328 2015-01-22 Richard Biener <rguenther@suse.de>
20329
20330 * ipa-inline.c (can_inline_edge_p): Disable inlining of edges
20331 with IL incompatible options. Properly honor user optimize
20332 attributes.
20333
20334 2015-01-21 Segher Boessenkool <segher@kernel.crashing.org>
20335
20336 PR rtl-optimization/64682
20337 * combine.c (distribute_notes): When moving a death note for
20338 a register that is set in the new I2, make sure to put it
20339 before that new I2.
20340
20341 2015-01-21 David Edelsohn <dje.gcc@gmail.com>
20342
20343 * config/rs6000/rs6000.c (rs6000_file_start): Use rs6000_isa_flags
20344 not TARGET_DEFAULT.
20345
20346 2015-01-21 Jakub Jelinek <jakub@redhat.com>
20347
20348 PR debug/64511
20349 * simplify-rtx.c (simplify_relational_operation_1): Don't try to
20350 optimize (eq/ne (and (side_effects) (const_int 0)) (const_int 0))
20351 into (eq/ne (and (not (side_effects)) (const_int 0)) (const_int 0)).
20352
20353 PR sanitizer/64706
20354 * doc/invoke.texi (-fsanitize=vptr): Document.
20355
20356 PR rtl-optimization/62078
20357 * dse.c: Include cfgcleanup.h.
20358 (rest_of_handle_dse): For -fnon-call-exceptions, if DSE removed
20359 anything call purge_all_dead_edges and cleanup_cfg at the end
20360 of the pass.
20361
20362 2015-01-21 Jan Hubicka <hubicka@ucw.cz>
20363
20364 * ipa-utils.c (ipa_merge_profiles): Avoid ICE on mismatch in indirect
20365 edges.
20366
20367 2015-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
20368
20369 * gimplify.c (gimplify_function_tree): Check the no_sanitize_thread
20370 decl attribute.
20371
20372 2015-01-21 David Sherwood <david.sherwood@arm.com>
20373 Tejas Belagod <Tejas.Belagod@arm.com>
20374
20375 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Removed.
20376 * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class): Removed.
20377 * config/aarch64/aarch64-protos.h (aarch64_cannot_change_mode_class):
20378 Removed.
20379
20380 2015-01-21 David Sherwood <david.sherwood@arm.com>
20381 Tejas Belagod <Tejas.Belagod@arm.com>
20382
20383 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist)
20384 (aarch64_reverse_mask): New decls.
20385 * config/aarch64/iterators.md (UNSPEC_REV_REGLIST): New enum.
20386 (insn_count): New mode_attr.
20387 * config/aarch64/aarch64-simd.md (vec_store_lanesoi, vec_store_lanesci)
20388 (vec_store_lanesxi, vec_load_lanesoi, vec_load_lanesci)
20389 (vec_load_lanesxi): Made ABI compliant for Big Endian targets.
20390 (aarch64_rev_reglist, aarch64_simd_ld2, aarch64_simd_ld3)
20391 (aarch64_simd_ld4, aarch64_simd_st2, aarch64_simd_st3)
20392 (aarch64_simd_st4): New patterns.
20393 * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist)
20394 (aarch64_reverse_mask): New functions.
20395
20396 2015-01-21 Richard Sandiford <richard.sandiford@arm.com>
20397
20398 * config/aarch64/aarch64-protos.h (aarch64_simd_disambiguate_copy):
20399 Declare.
20400 * config/aarch64/aarch64.c (aarch64_classify_address): Allow extra
20401 addressing modes for BE.
20402 (aarch64_print_operand): Add 'R' specifier.
20403 (aarch64_simd_disambiguate_copy): Delete.
20404 (aarch64_simd_emit_reg_reg_move): New function.
20405 * config/aarch64/aarch64-simd.md: Use aarch64_simd_emit_reg_reg_move
20406 in define_splits for structural moves.
20407 (mov<mode>): Use less restrictive predicates.
20408 (*aarch64_mov<mode>): Simplify and only allow for LE.
20409 (*aarch64_be_movoi, *aarch64_be_movci, *aarch64_be_movxi): New.
20410
20411 2015-01-21 Alan Hayward <alan.hayward@arm.com>
20412
20413 * rtlanal.c (subreg_get_info): Exit early for simple and common cases.
20414
20415 2015-01-21 Richard Henderson <rth@redhat.com>
20416
20417 PR target/64669
20418 * ccmp.c (used_in_cond_stmt_p): Remove.
20419 (expand_ccmp_expr): Don't use it.
20420
20421 2015-01-21 Nick Clifton <nickc@redhat.com>
20422
20423 * config/rl78/rl78.c (rl78_calculate_death_notes): Look inside
20424 PARALLELs.
20425
20426 2015-01-21 Richard Biener <rguenther@suse.de>
20427
20428 PR middle-end/64313
20429 * tree-core.h (builtin_info, builtin_info_type): Turn from
20430 an object with two arrays into an array of an object with
20431 decl and two flags, implicit_p and declared_p.
20432 * tree.h (builtin_decl_explicit, builtin_decl_implicit,
20433 set_builtin_decl, set_builtin_decl_implicit_p,
20434 builtin_decl_explicit_p, builtin_decl_implicit_p): Adjust.
20435 (set_builtin_decl_declared_p, builtin_decl_declared_p): New functions.
20436 * builtins.c (builtin_info): Adjust.
20437 * gimplify.c (gimplify_addr_expr): References to builtins
20438 that have been declared by the user makes them eligible for
20439 use by the compiler. Call set_builtin_decl_implicit_p on them.
20440
20441 2015-01-20 Jeff Law <law@redhat.com>
20442
20443 PR target/59946
20444 * config/m68k/m68k.md (Comparison expanders and patterns): Do not
20445 allow pc-relative addresses in operand predicates or constraints.
20446
20447 2015-01-21 Bin Cheng <bin.cheng@arm.com>
20448
20449 * config/arm/arm.c (arm_cortex_a53_tune, arm_cortex_a57_tune): Prefer
20450 neon on aarch32 processors for stringops.
20451
20452 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
20453
20454 PR ipa/63576
20455 * ipa-utils.c (ipa_merge_profiles): Merge speculative edges.
20456
20457 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
20458
20459 PR lto/45375
20460 * ipa-inline.c: Include lto-streamer.h
20461 (report_inline_failed_reason): Output source file differences and
20462 flags on optimization/target node mismatch.
20463 (can_inline_edge_p): Consider caller to be the outer inline function;
20464 be less restrictive about matching opimize and optimize_size attributes.
20465 (inline_account_function_p): Break out from ...
20466 (inline_small_functions): ... here.
20467 * ipa-inline-transform.c (clone_inlined_nodes): Use
20468 inline_account_function_p.
20469 (inline_call): Use optimize attribution; use inline_account_function_p.
20470 (inline_transform): Use opt_for_fn.
20471 * ipa-inline.h (inline_account_function_p): Declare.
20472
20473 2015-01-20 Jakub Jelinek <jakub@redhat.com>
20474
20475 PR debug/64663
20476 * dwarf2out.c (decl_piece_node): Don't put bitsize into
20477 mode if bitsize <= 0.
20478 (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
20479 dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
20480 sizes and positions.
20481
20482 2015-01-20 Chung-Lin Tang <cltang@codesourcery.com>
20483
20484 * config/nios2/nios2.c (nios2_asm_file_end): Implement
20485 TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
20486 needed.
20487 (TARGET_ASM_FILE_END): Define.
20488
20489 2015-01-20 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
20490
20491 * config/arm/arm-protos.h (enum arm_sched_autopref): New constants.
20492 (struct tune_params): Use the enum.
20493 * arm.c (arm_*_tune): Update.
20494 (arm_option_override): Update.
20495
20496 2015-01-20 Richard Biener <rguenther@suse.de>
20497
20498 PR ipa/64684
20499 * ipa-reference.c (add_static_var): Inline ...
20500 (analyze_function): ... here after splitting out from ...
20501 (is_proper_for_analysis): ... this.
20502
20503 2015-01-20 Matthew Wahab <matthew.wahab@arm.com>
20504
20505 PR target/64149
20506 * config/arm/arm.opt: Remove lra option and arm_lra_flag variablesle.
20507 * config/arm/arm.h (MODE_BASE_REG_CLASS): Remove use of arm_lra_flagag,
20508 replace the conditional with it's true branch.
20509 * config/arm/arm.config (TARGET_LRA_P): Set to hook_bool_void_true.
20510 (arm_lra_p): Remove.
20511
20512 2015-01-20 Eric Botcazou <ebotcazou@adacore.com>
20513
20514 * config/visium/visium.h (LIB_SPEC): Adjust in default case.
20515
20516 2015-01-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
20517
20518 * config/tilegx/mul-tables.c: Move symtab.h include after
20519 coretypes.h include.
20520 * config/tilepro/mul-tables.c: Add includes hashtab.h, hash-set.h,
20521 vec.h, machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h,
20522 flags.h, statistics.h, double-int.h, real.h, fixed-value.h, alias.h,
20523 wide-int.h, inchash.h, tree.h, insn-config.h, expmed.h, dojump.h,
20524 explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
20525
20526 2015-01-20 Igor Zamyatin <igor.zamyatin@intel.com>
20527
20528 PR bootstrap/64676
20529 Revert:
20530 2015-01-19 Igor Zamyatin <igor.zamyatin@intel.com>
20531
20532 PR rtl-optimization/64081
20533 * loop-iv.c (def_pred_latch_p): New function.
20534 (latch_dominating_def): Allow specific cases with non-single
20535 definitions.
20536 (iv_get_reaching_def): Likewise.
20537 (check_complex_exit_p): New function.
20538 (check_simple_exit): Use check_complex_exit_p to allow certain cases
20539 with exits not executing on any iteration.
20540
20541 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
20542
20543 PR lto/45375
20544 * i386.c (ix86_option_override_internal): Use ix86_tune_cost
20545 to set branch cost.
20546
20547 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
20548
20549 PR lto/45375
20550 * i386.c (gate): Check flag_expensive_optimizations and
20551 optimize_size.
20552 (ix86_option_override_internal): Drop optimize_size condition
20553 on MASK_ACCUMULATE_OUTGOING_ARGS, MASK_VZEROUPPER,
20554 MASK_AVX256_SPLIT_UNALIGNED_LOAD, MASK_AVX256_SPLIT_UNALIGNED_STORE,
20555 MASK_PREFER_AVX128.
20556 (ix86_avx256_split_vector_move_misalign,
20557 ix86_avx256_split_vector_move_misalign): Check optimize_insn_for_speed.
20558 * sse.md (all uses of TARGET_PREFER_AVX128): Add
20559 optimize_insn_for_speed_p check.
20560
20561 2015-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
20562
20563 * config/mips/mips.h (FP_ASM_SPEC): New define.
20564 (ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
20565 instead.
20566
20567 2015-01-19 Oleg Endo <olegendo@gcc.gnu.org>
20568
20569 PR target/53988
20570 * config/sh/sh-protos.h (sh_find_set_of_reg): Make sure not to return
20571 nullptr for insn when reaching the first insn.
20572 * config/sh/sh.c (sh_unspec_insn_p): Rewrite using subrtx_iterator.
20573 (sh_insn_operands_modified_between_p): Add nullptr check.
20574 (sh_find_extending_set_of_reg): Fix log message. Don't accept
20575 sign extending mem load if the insn contains any UNSPEC or
20576 UNSPEC_VOLATILE.
20577
20578 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
20579
20580 * params.def (inline-unit-growth): Drop to 15%.
20581 * invoke.texi (inline-unit-growth): Document change.
20582
20583 2015-01-19 Martin Liska <mliska@suse.cz>
20584
20585 PR ipa/64668
20586 * ipa-icf-gimple.c (func_checker::compare_operand): Call proper
20587 function for second argument of OBJ_TYPE_REF.
20588
20589 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
20590
20591 PR ipa/64218
20592 * ipa-inline.c (want_inline_function_to_all_callers_p): Fix check
20593 whether function is an alias.
20594
20595 2015-01-19 Jan Hubicka <hubicka@ucw.cz>
20596
20597 * ipa-devirt.c (ipa_devirt): Drop polymorphic call info in hopeless
20598 cases.
20599
20600 2015-01-19 Vladimir Makarov <vmakarov@redhat.com>
20601
20602 PR rtl-optimization/64671
20603 * lra-remat.c (operand_to_remat): Don't consider jump and call
20604 insns.
20605
20606 2015-01-19 David Edelsohn <dje.gcc@gmail.com>
20607
20608 PR target/59828
20609 * config/rs6000/default64.h: Include rs6000-cpus.def.
20610 (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
20611 (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
20612 * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
20613 and POWER8.
20614 * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
20615 POWER8.
20616 * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
20617 pseudo-op to specify assembler dialect.
20618
20619 2015-01-19 Martin Liska <mliska@suse.cz>
20620
20621 PR ipa/64664
20622 * ipa-icf.c (sem_item_optimizer::filter_removed_items):
20623 Handle safe potentially removed nodes during filtering.
20624
20625 2015-01-19 Martin Liska <mliska@suse.cz>
20626
20627 * doc/extend.texi (no_icf): Add new attribute description.
20628 * ipa-icf.c (sem_item_optimizer::merge_classes): Handle cases
20629 where the pass attempts to merge a function with no_icf attribute.
20630
20631 2015-01-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
20632
20633 PR target/64532
20634 * doc/md.texi (ARM Options): Document register constraints.
20635
20636 2015-01-19 Jiong Wang <jiong.wang@arm.com>
20637 Andrew Pinski <apinski@cavium.com>
20638
20639 PR target/64304
20640 * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
20641 (ashl<mode>3): Don't expand if operands[2] is not constant.
20642
20643 2015-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20644
20645 PR target/64448
20646 * config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal):
20647 Match xor-and-xor RTL pattern.
20648
20649 2015-01-19 Igor Zamyatin <igor.zamyatin@intel.com>
20650
20651 PR rtl-optimization/64081
20652 * loop-iv.c (def_pred_latch_p): New function.
20653 (latch_dominating_def): Allow specific cases with non-single
20654 definitions.
20655 (iv_get_reaching_def): Likewise.
20656 (check_complex_exit_p): New function.
20657 (check_simple_exit): Use check_complex_exit_p to allow certain cases
20658 with exits not executing on any iteration.
20659
20660 2015-01-19 Jakub Jelinek <jakub@redhat.com>
20661
20662 * common.opt (fgraphite): Fix a typo.
20663
20664 2015-01-19 Felix Yang <felix.yang@huawei.com>
20665
20666 * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): New
20667 pattern.
20668 * config/aarch64/aarch64-simd-builtins.def (smaxp, sminp, umaxp,
20669 uminp, smax_nanp, smin_nanp): New builtins.
20670 * config/aarch64/arm_neon.h (vpmax_s8, vpmax_s16, vpmax_s32,
20671 vpmax_u8, vpmax_u16, vpmax_u32, vpmaxq_s8, vpmaxq_s16, vpmaxq_s32,
20672 vpmaxq_u8, vpmaxq_u16, vpmaxq_u32, vpmax_f32, vpmaxq_f32, vpmaxq_f64,
20673 vpmaxqd_f64, vpmaxs_f32, vpmaxnm_f32, vpmaxnmq_f32, vpmaxnmq_f64,
20674 vpmaxnmqd_f64, vpmaxnms_f32, vpmin_s8, vpmin_s16, vpmin_s32, vpmin_u8,
20675 vpmin_u16, vpmin_u32, vpminq_s8, vpminq_s16, vpminq_s32, vpminq_u8,
20676 vpminq_u16, vpminq_u32, vpmin_f32, vpminq_f32, vpminq_f64, vpminqd_f64,
20677 vpmins_f32, vpminnm_f32, vpminnmq_f32, vpminnmq_f64, vpminnmqd_f64,
20678 vpminnms_f32): Rewrite using builtin functions.
20679
20680 2015-01-19 Thomas Schwinge <thomas@codesourcery.com>
20681
20682 PR libgomp/64625
20683 * omp-low.c (offload_symbol_decl): Remove variable.
20684 (get_offload_symbol_decl): Remove function.
20685 (expand_omp_target): For BUILT_IN_GOMP_TARGET,
20686 BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
20687 instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
20688 BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
20689 BUILT_IN_GOACC_UPDATE don't pass it at all.
20690
20691 2015-01-19 Ilya Enkovich <ilya.enkovich@intel.com>
20692
20693 * tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
20694 callers.
20695
20696 2015-01-19 Ilya Enkovich <ilya.enkovich@intel.com>
20697
20698 * ipa-chkp.c (chkp_produce_thunks): Add early param
20699 to split thunks production into two passes. Keep
20700 'always_inline' function bodies after the first pass.
20701 (pass_data_ipa_chkp_early_produce_thunks): New.
20702 (pass_ipa_chkp_early_produce_thunks): New.
20703 (pass_ipa_chkp_produce_thunks::execute): Adjust to new
20704 chkp_produce_thunks signature.
20705 (make_pass_ipa_chkp_early_produce_thunks): New.
20706 * passes.def (pass_ipa_chkp_early_produce_thunks): New.
20707 (pass_ipa_chkp_produce_thunks): Move after local optimizations.
20708 * tree-pass.h (make_pass_ipa_chkp_early_produce_thunks): New.
20709
20710 2015-01-18 Jan Hubicka <hubicka@ucw.cz>
20711
20712 * cgraph.c (cgraph_node::dump): Dump profile flags.
20713
20714 2015-01-18 Oleg Endo <olegendo@gcc.gnu.org>
20715
20716 PR target/64652
20717 * config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
20718 reg appear first in the parallel.
20719
20720 2015-01-18 Jan Hubicka <hubicka@ucw.cz>
20721
20722 * ipa-reference.c (set_reference_optimization_summary,
20723 ipa_reference_get_not_written_global): Do nothing if ipa-reference is
20724 disabled.
20725 (ignore_module_statics): New static var.
20726 (propagate_bits): If ipa-reference is disabled, do not look into local
20727 properties.
20728 (analyze_function): Disable analysis when ipa_reference is disabled.
20729 (generate_summary): Do not dump when reference is disabled;
20730 collect vars accessed from functions with ipa-reference disabled.
20731 (get_read_write_all_from_node): When ipa-reference is disabled, use the
20732 node flags.
20733 (gate): Enable for LTO.
20734 (ignore_edge_p): New function.
20735 (propagate): Skip functions w/o ipa-reference analysis.
20736 * optc-save-gen.awk: Handle optimize_debug correctly.
20737 * opth-gen.awk: Likewise.
20738 * common.opt (fauto-inc-dec, fdelete-dead-exceptions, ffunction-cse,
20739 fgraphite, fstrict-volatile-bitfields, fira-algorithm, fira-region,
20740 fira-share-save-slots, fira-share-spill-slots,
20741 fmodulo-sched-allow-regmoves, fpartial-inlining,
20742 sched-stalled-insns, fsched-stalled-insns-dep, fstrict-overflow,
20743 ftracer, ftree-parallelize-loops, fassociative-math,
20744 freciprocal-math, fvect-cost-model, fsimd-cost-model): Mark as
20745 Optimization
20746 (fauto-profile, fcommon, fdata-sections, fipa-icf-variables,
20747 ftoplevel-reorder, funit-at-a-time, fwhole-program): Do not mark as
20748 Optimization.
20749 * ipa-icf.c (gate, sem_item_optimizer::filter_removed_items):
20750 Fix for IPA.
20751
20752 2015-01-18 Jan Hubicka <hubicka@ucw.cz>
20753
20754 PR ipa/64378
20755 * ipa-prop.c (try_make_edge_direct_virtual_call): Clear speculative
20756 flag correctly.
20757 * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
20758
20759 2015-01-18 Sandra Loosemore <sandra@codesourcery.com>
20760
20761 * doc/invoke.texi ([-funroll-loops], [-funroll-all-loops]):
20762 Remove duplicate option listings.
20763
20764 2015-01-18 Felix Yang <felix.yang@huawei.com>
20765
20766 * auto-profile.c (afdo_find_equiv_class): Remove unnecessary test.
20767 (autofdo_source_profile::get_callsite_total_count,
20768 function_instance::get_function_instance_by_decl,
20769 string_table::get_index, string_table::get_index_by_decl,
20770 afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
20771 Fix comment typos. Reformatting and minor code rearrangement.
20772
20773 2015-01-17 Segher Boessenkool <segher@kernel.crashing.org>
20774
20775 * config/rs6000/rs6000.md (probe_stack): Delete.
20776 (probe_stack_address): New.
20777
20778 2015-01-17 Segher Boessenkool <segher@kernel.crashing.org>
20779
20780 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use TARGET_32BIT
20781 to test for 32-bit ABIs, not !TARGET_POWERPC64.
20782
20783 2015-01-17 Segher Boessenkool <segher@kernel.crashing.org>
20784
20785 * config/rs6000/rs6000.c (rs6000_parallel_return): New function.
20786 (rs6000_function_value): Use it. Handle SCmode and TCmode as well,
20787 for TARGET_32BIT && TARGET_POWERPC64. Fix another BITS_PER_WORD
20788 snafu.
20789 (rs6000_libcall_value): Use the new function.
20790
20791 2015-01-17 Sandra Loosemore <sandra@codesourcery.com>
20792
20793 * doc/invoke.texi ([-ftracer]): Remove duplicate option listing.
20794
20795 2015-01-17 Eric Botcazou <ebotcazou@adacore.com>
20796
20797 * reorg.c (fill_simple_delay_slots): If TARGET_FLAGS_REGNUM is valid,
20798 implement a more precise life analysis for it during backward scan.
20799
20800 2015-01-17 Jan Kratochvil <jan.kratochvil@redhat.com>
20801
20802 * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
20803
20804 2015-01-17 Bernd Schmidt <bernds@codesourcery.com>
20805
20806 PR rtl-optimization/52773
20807 * calls.c (emit_library_call_value): When pushing arguments use
20808 stack_pointer_rtx rather than virtual_outgoing_args_rtx in
20809 CALL_INSN_FUNCTION_USAGE. Only emit one of use of the magic
20810 stack pointer reference into CALL_INSN_FUNCTION_USAGE.
20811
20812 2015-01-17 Jeff Law <law@redhat.com>
20813
20814 PR rtl-optimization/32790
20815 * reginfo.c (reg_scan_mark_refs): Look for ZERO_EXTRACT,
20816 not ZERO_EXTEND in SET_DESTs.
20817
20818 2015-01-17 Alan Modra <amodra@gmail.com>
20819
20820 * cprop.c (do_local_cprop): Revert last change.
20821
20822 2015-01-16 DJ Delorie <dj@redhat.com>
20823 Nick Clifton <nickc@redhat.com>
20824
20825 * config/rl78/rl78-real.md (addqi3_real): Allow volatiles.
20826 (addhi3_real): Likewise. Fix [HL+0] syntax.
20827 (subqi3_real): Likewise.
20828 (subhi3_real): Likewise.
20829 (cbranchqi4_real): Likewise. Allow saddr,#imm.
20830 (cbranchhi4_real): Likewise.
20831 (cbranchhi4_real_inverted): Likewise.
20832 (cbranchsi4_real_lt): Likewise.
20833 (cbranchsi4_real_ge): Likewise.
20834 (cbranchsi4_real_ge): Likewise.
20835 * config/rl78/rl78-virt.md (add<mode>3_virt): Likewise.
20836 (sub<mode>3_virt): Likewise.
20837 (cbranchqi4_virt): Likewise.
20838 (cbranchhi4_virt): Likewise.
20839 * config/rl78/rl78.c (rl78_print_operand_1): 'p' modifier means
20840 always use '[reg+imm]' even when imm is zero.
20841 * config/rl78/predicates.md (rl78_volatile_memory_operand): New.
20842 (rl78_general_operand): New.
20843 (rl78_nonimmediate_operand): New.
20844 (rl78_nonfar_operand): Use them.
20845 (rl78_nonfar_nonimm_operand): Likewise.
20846 (rl78_stack_based_mem): Fix.
20847 * config/rl78/constraints.md (Ibqi): New.
20848 (IBqi): New.
20849 (Wsa): New.
20850 (Wsf): New.
20851 (Cs1): Fix.
20852 * config/rl78/rl78-expand.md (andqi3): Accept volatiles.
20853 (iorqi3): Likewise.
20854 (xorqi3): Likewise.
20855 * config/rl78/rl78-protos.h (rl78_sfr_p): New.
20856
20857 * config/rl78/constrains (Qs8): New constraint.
20858 * config/rl78/rl78.c (rl78_flags_already_set): New function.
20859 * config/rl78/rl78-protos.h (rl78_flags_already_set): New prototype.
20860 * config/rl78/rl78-real.md (update_Z): New attribute.
20861 Update patterns to set it.
20862 (cbranchqi4_real): Call rl78_flags_already_set() to determine if a
20863 shorter compare and branch sequence can be used.
20864 (cbranchhi4_real): Likewise.
20865 (cbranchhi4_real_inverted): Likewise.
20866
20867 * config/rl78/predicates.md (uword_operand): Allow symbol_refs.
20868 * config/rl78/rl78-c.c (rl78_register_pragmas): Register __near
20869 address space.
20870 * config/rl78/rl78.c (rl78_get_name_encoding): New.
20871 (rl78_option_override): Allow -mes0 only if C.
20872 (characterize_address): Support subregs of symbol_refs.
20873 (rl78_addr_space_address_mode): Move. Add __near.
20874 (rl78_far_p): Likewise.
20875 (rl78_addr_space_pointer_mode): Likewise.
20876 (rl78_as_legitimate_address): Likewise.
20877 (rl78_addr_space_subset_p): Likewise.
20878 (rl78_addr_space_convert): Likewise.
20879 (rl78_print_operand_1): Support 16-bit addressing of 32-bit
20880 symbols with -mes0.
20881 (transcode_memory_rtx): Don't copy ES if -mes0. Allow symbol[BC]
20882 addressing.
20883 (rl78_alloc_physical_registers_op1): Change logic to prefer
20884 symbol[BC] addressing.
20885 (frodata_section): New.
20886 (rl78_asm_init_sections): Initialize it.
20887 (rl78_select_section): Put __far readonly symbols in .frodata.
20888 (rl78_make_type_far): New.
20889 (rl78_insert_attributes): Force all readonly symbols to be
20890 __far when -mes0.
20891 (rl78_asm_out_integer): New.
20892 * config/rl78/rl78.h (ADDR_SPACE_NEAR): New.
20893 * config/rl78/rl78.opt (-mes0): New.
20894
20895 * config/rl78/rl78.h (ASM_OUTPUT_LABELREF): New.
20896 (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
20897 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
20898 * config/rl78/rl78-protos.h (rl78_output_labelref): New.
20899 (rl78_saddr_p): New.
20900 (rl78_output_aligned_common): New.
20901 * config/rl78/rl78.c (rl78_output_symbol_ref): Strip encodings.
20902 (rl78_handle_saddr_attribute): New.
20903 (rl78_handle_naked_attribute): New.
20904 (rl78_attribute_table): Add saddr.
20905 (rl78_print_operand_1): Don't print '!' on saddr operands.
20906 (rl78_print_operand_1): Strip encodings.
20907 (rl78_sfr_p): New.
20908 (rl78_strip_name_encoding): New.
20909 (rl78_attrlist_to_encoding): New.
20910 (rl78_encode_section_info): New.
20911 (rl78_asm_init_sections): New.
20912 (rl78_select_section): New.
20913 (rl78_output_labelref): New.
20914 (rl78_output_aligned_common): New.
20915 (rl78_asm_out_integer): New.
20916 (rl78_asm_ctor_dtor): New.
20917 (rl78_asm_constructor): New.
20918 (rl78_asm_destructor): New.
20919
20920 * config/rl78/rl78-real.md (movqi_es): Rename to movqi_to_es.
20921 * config/rl78/rl78.c (rl78_expand_epilogue): Update.
20922 (transcode_memory_rtx): Update.
20923 (rl78_expand_epilogue): Use A_REG instead of 0.
20924
20925 2015-01-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
20926
20927 * config/arm/arm-protos.h (struct tune_params): New field
20928 sched_autopref_queue_depth.
20929 * config/arm/arm.c (sched-int.h): Include header.
20930 (arm_first_cycle_multipass_dfa_lookahead_guard,)
20931 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define hook.
20932 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,)
20933 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,)
20934 (arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,)
20935 (arm_cortex_a53_tune, arm_cortex_a57_tune, arm_xgene1_tune,)
20936 (arm_cortex_a5_tune, arm_cortex_a9_tune, arm_cortex_a12_tune,)
20937 (arm_v7m_tune, arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune):
20938 Specify sched_autopref_queue_depth value. Enabled for A15 and A57.
20939 * config/arm/t-arm (arm.o): Update.
20940 * haifa-sched.c (update_insn_after_change): Update.
20941 (rank_for_schedule): Use auto-prefetcher model, if requested.
20942 (autopref_multipass_init): New static function.
20943 (autopref_rank_for_schedule): New rank_for_schedule heuristic.
20944 (autopref_multipass_dfa_lookahead_guard_started_dump_p): New static
20945 variable for debug dumps.
20946 (autopref_multipass_dfa_lookahead_guard_1): New static helper function.
20947 (autopref_multipass_dfa_lookahead_guard): New global function that
20948 implements TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD hook.
20949 (init_h_i_d): Update.
20950 * params.def (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH): New tuning knob.
20951 * sched-int.h (enum autopref_multipass_data_status): New const enum.
20952 (autopref_multipass_data_): Structure for auto-prefetcher data.
20953 (autopref_multipass_data_def, autopref_multipass_data_t): New typedefs.
20954 (struct _haifa_insn_data:autopref_multipass_data): New field.
20955 (INSN_AUTOPREF_MULTIPASS_DATA): New access macro.
20956 (autopref_multipass_dfa_lookahead_guard): Declare.
20957
20958 2015-01-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
20959
20960 * rtlanal.c (get_base_term): Handle SCRATCH.
20961
20962 2015-01-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
20963
20964 * config/aarch64/aarch64.c
20965 (aarch64_sched_first_cycle_multipass_dfa_lookahead): Implement hook.
20966 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
20967 * config/arm/arm.c
20968 (arm_first_cycle_multipass_dfa_lookahead): Implement hook.
20969 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
20970
20971 2015-01-17 Alan Modra <amodra@gmail.com>
20972
20973 * cprop.c (do_local_cprop): Disallow replacement of fixed
20974 hard registers.
20975
20976 2015-01-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20977
20978 PR target/62066
20979 * config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
20980 early return 0.
20981
20982 2015-01-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
20983
20984 * sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
20985 * tsan.c (instrument_expr): Fixed parameters of __tsan_vptr_update.
20986
20987 2015-01-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20988
20989 * config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
20990 * config/arm/thumb1.md: ... Here.
20991
20992 2015-01-16 Segher Boessenkool <segher@kernel.crashing.org>
20993
20994 * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
20995 TImode for TARGET_32BIT.
20996
20997 2015-01-16 Segher Boessenkool <segher@kernel.crashing.org>
20998
20999 * config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
21000 TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
21001 as ...
21002 (rs6000_abi_word_mode): New function.
21003
21004 2015-01-16 Segher Boessenkool <segher@kernel.crashing.org>
21005
21006 * config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD
21007 instead of UNITS_PER_WORD to describe the size of stack slots.
21008
21009 2015-01-16 Segher Boessenkool <segher@kernel.crashing.org>
21010
21011 * config/rs6000/rs6000.c (TARGET_PROMOTE_FUNCTION_MODE): Implement
21012 as rs6000_promote_function_mode. Move comment to there.
21013 (rs6000_promote_function_mode): New function.
21014
21015 2015-01-16 Segher Boessenkool <segher@kernel.crashing.org>
21016
21017 * config/rs6000/rs6000.h (PROMOTE_MODE): Correct test for when -m32
21018 -mpowerpc64 is active.
21019
21020 2015-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
21021
21022 PR middle-end/64353
21023 * tree-cfg.c (pass_data_fixup_cfg): Update SSA for
21024 virtuals on start.
21025
21026 2015-01-16 James Greenhalgh <james.greenhalgh@arm.com>
21027
21028 * config/arm/cortex-a57.md: Remove duplicate of file accidentally
21029 introduced in revision 219724.
21030
21031 2015-01-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21032 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21033
21034 PR target/64263
21035 * config/aarch64/aarch64.md (*movsi_aarch64): Don't split if the
21036 destination is not a GP reg.
21037 (*movdi_aarch64): Likewise.
21038
21039 2015-01-16 David Edelsohn <dje.gcc@gmail.com>
21040
21041 PR target/64623
21042 * config/rs6000/default64.h: Revert ISA change.
21043
21044 2015-01-16 Richard Biener <rguenther@suse.de>
21045
21046 PR middle-end/64614
21047 * tree-ssa-uninit.c: Include tree-cfg.h.
21048 (MAX_SWITCH_CASES): New define.
21049 (convert_control_dep_chain_into_preds): Handle switch statements.
21050 (is_pred_expr_subset_of): Handle x == CST vs. (x & CST) != 0.
21051 (normalize_one_pred_1): Do not split bit-manipulations.
21052 Record (x & CST).
21053
21054 2015-01-16 Richard Biener <rguenther@suse.de>
21055
21056 PR tree-optimization/64568
21057 * tree-ssa-forwprop.c (pass_forwprop::execute): Guard
21058 complex load rewriting for TARGET_MEM_REFs.
21059
21060 2015-01-16 Uros Bizjak <ubizjak@gmail.com>
21061
21062 * builtins.c (expand_builtin_acc_on_device): Check target for NULL.
21063
21064 2015-01-16 Matthew Wahab <matthew.wahab@arm.com>
21065
21066 PR target/64149
21067 * config/aarch64/aarch64.opt: Remove lra option and aarch64_lra_flag
21068 variable.
21069 * config/aarch64/aarch64.c (TARGET_LRA_P): Set to hook_bool_void_true.
21070 (aarch64_lra_p): Remove.
21071
21072 2015-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
21073
21074 PR target/64363
21075 * ipa-chkp.h (chkp_instrumentable_p): New.
21076 * ipa-chkp.c: Include tree-inline.h.
21077 (chkp_instrumentable_p): New.
21078 (chkp_maybe_create_clone): Use chkp_instrumentable_p.
21079 Fix processing of not instrumentable functions.
21080 (chkp_versioning): Use chkp_instrumentable_p. Warn about
21081 not instrumentable functions.
21082 * tree-chkp.c (chkp_add_bounds_to_call_stmt): Use
21083 chkp_instrumentable_p.
21084 * tree-inline.h (copy_forbidden): New.
21085 * tree-inline.c (copy_forbidden): Not static anymore.
21086
21087 2015-01-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
21088
21089 * optc-save-gen.awk (cl_target_option_print_diff): Mark indent,
21090 ptr1, ptr2 unused.
21091
21092 2015-01-16 Robert Suchanek <robert.suchanek@imgtec.com>
21093
21094 * lra-constraints.c (curr_insn_transform): Change a reload pseudo of
21095 type OP_OUT to OP_INOUT.
21096
21097 2015-01-16 Robert Suchanek <robert.suchanek@imgtec.com>
21098
21099 * simplify-rtx.c (simplify_replace_fn_rtx): Simplify (lo_sum
21100 (high x) y) to y if x and y have the same base.
21101
21102 2015-01-16 James Greenhalgh <james.greenhalgh@arm.com>
21103
21104 * config/arm/cortex-a57.md: New.
21105 * config/aarch64/aarch64.md: Include it.
21106 * config/aarch64/aarch64-cores.def (cortex-a57): Tune for it.
21107 * config/aarch64/aarch64-tune.md: Regenerate.
21108
21109 2015-01-16 Zhenqiang Chen <zhenqiang.chen@arm.com>
21110
21111 PR target/64015
21112 * ccmp.c (expand_ccmp_next): New function.
21113 (expand_ccmp_expr_1, expand_ccmp_expr): Handle operand insn sequence
21114 and compare insn sequence.
21115 * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
21116 aarch64_gen_ccmp_first, aarch64_gen_ccmp_next): New functions.
21117 (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New MICRO.
21118 * config/aarch64/aarch64.md (*ccmp_and): Changed to ccmp_and<mode>.
21119 (*ccmp_ior): Changed to ccmp_ior<mode>.
21120 (cmp<mode>): New pattern.
21121 * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Update
21122 parameters.
21123 * target.def (gen_ccmp_first, gen_ccmp_next): Update parameters.
21124
21125 2015-01-16 Ilya Tocar <ilya.tocar@intel.com>
21126
21127 * config/i386/avx2intrin.h (_mm256_bslli_epi128,
21128 _mm256_bsrli_epi128): New.
21129 * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
21130
21131 2015-01-15 Jiong Wang <jiong.wang@arm.com>
21132
21133 * expmed.c (store_bit_field_using_insv): Improve warning message.
21134 Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED.
21135
21136 2015-01-15 Jiong Wang <jiong.wang@arm.com>
21137
21138 PR rtl-optimization/64011
21139 * expmed.c (store_bit_field_using_insv): Warn and truncate bitsize when
21140 there is partial overflow.
21141
21142 2015-01-16 Chung-Ju Wu <jasonwucj@gmail.com>
21143
21144 * config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
21145 prototype.
21146 (nds32_expand_epilogue_v3pop): Likewise.
21147 * config/nds32/nds32.md (sibcall): Define this for sibling call
21148 optimization.
21149 (sibcall_register): Likewise.
21150 (sibcall_immediate): Likewise.
21151 (sibcall_value): Likewise.
21152 (sibcall_value_register): Likewise.
21153 (sibcall_value_immediate): Likewise.
21154 (sibcall_epilogue): Likewise.
21155 (epilogue): Pass false to indicate this is not a sibcall epilogue.
21156 * config/nds32/nds32.c (nds32_expand_epilogue): Consider sibcall case.
21157 (nds32_expand_epilogue_v3pop): Likewise.
21158
21159 2015-01-16 Chung-Ju Wu <jasonwucj@gmail.com>
21160
21161 * config/nds32/nds32-protos.h (nds32_can_use_return_insn): New.
21162 * config/nds32/nds32.md (unspec_volatile_func_return): Remove.
21163 (return_internal): New.
21164 (return): Define this named pattern.
21165 (simple_return): Define this named pattern.
21166 * config/nds32/nds32.c (nds32_expand_epilogue): Emit return_internal
21167 pattern instead of unspec_volatile_func_return.
21168 (nds32_expand_epilogue_v3pop): Likewise.
21169 (nds32_can_use_return_insn): New function.
21170
21171 2015-01-16 Chung-Ju Wu <jasonwucj@gmail.com>
21172
21173 * config/nds32/constants.md (UNSPEC_VOLATILE_POP25_RETURN): New.
21174 * config/nds32/nds32.md (pop25return): New.
21175 * config/nds32/nds32.c (nds32_expand_epilogue_v3pop): Emit
21176 pop25return pattern.
21177
21178 2015-01-16 Chung-Ju Wu <jasonwucj@gmail.com>
21179
21180 * doc/invoke.texi (NDS32 Options): Remove -mforce-fp-as-gp,
21181 -mforbid-fp-as-gp, and -mex9 options.
21182
21183 2015-01-16 Chung-Ju Wu <jasonwucj@gmail.com>
21184
21185 * doc/invoke.texi (NDS32 Options): Add -mcmodel= option and
21186 remove -mgp-direct option.
21187
21188 2015-01-15 Jan Hubicka <hubicka@ucw.cz>
21189
21190 * doc/invoke.texi (--param early-inlining-insns): Update default value.
21191 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 14.
21192
21193 2015-01-15 Jan Hubicka <hubicka@ucw.cz>
21194
21195 * ipa-inline.c (inline_small_functions): Work around hints
21196 cache issue.
21197
21198 2015-01-15 Sandra Loosemore <sandra@codesourcery.com>
21199
21200 PR target/59710
21201 * doc/invoke.texi (Option Summary): Document new Nios II
21202 -mgpopt= syntax.
21203 (Nios II Options): Likewise.
21204 * config/nios2/nios2.opt: Add -mgpopt= option support.
21205 Modify existing -mgpopt and -mno-gpopt options to be aliases.
21206 * config/nios2/nios2-opts.h (enum nios2_gpopt_type): New.
21207 * config/nios2/nios2.c (nios2_option_override): Adjust
21208 -mgpopt defaulting.
21209 (nios2_in_small_data_p): Return true for explicit small data
21210 sections even with -G0.
21211 (nios2_symbol_ref_in_small_data_p): Adjust to handle new -mgpopt=
21212 option choices.
21213
21214 2015-01-15 Jan Hubicka <hubicka@ucw.cz>
21215
21216 PR ipa/64612
21217 * ipa-inline-transform.c (can_remove_node_now_p): Fix handling
21218 of comdat locals.
21219 (inline_call): Fix removal of aliases.
21220
21221 2015-01-15 Jakub Jelinek <jakub@redhat.com>
21222
21223 * flag-types.h (enum sanitize_code): Add SANITIZE_VPTR,
21224 include SANITIZE_VPTR in SANITIZE_UNDEFINED.
21225 * opts.c (common_handle_option): Add -fsanitize=vptr.
21226 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS,
21227 BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS_ABORT): New.
21228 * ubsan.h (enum ubsan_null_ckind): Add UBSAN_DOWNCAST_POINTER,
21229 UBSAN_DOWNCAST_REFERENCE, UBSAN_UPCAST and UBSAN_CAST_TO_VBASE.
21230 (ubsan_expand_vptr_ifn): New prototype.
21231 * internal-fn.c (expand_ANNOTATE, expand_GOMP_SIMD_LANE,
21232 expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE, expand_UBSAN_NULL,
21233 expand_UBSAN_BOUNDS, expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK,
21234 expand_LOOP_VECTORIZED): Make argument nameless, remove
21235 ATTRIBUTE_UNUSED.
21236 (expand_UBSAN_VPTR): New function.
21237 * internal-fn.def (UBSAN_NULL, ASAN_CHECK): Use R instead of W
21238 in fn spec.
21239 (UBSAN_VPTR): New internal function.
21240 * sanopt.c (tree_map_traits): Renamed to ...
21241 (sanopt_tree_map_traits): ... this.
21242 (sanopt_tree_triplet, sanopt_tree_triplet_map_traits): New classes.
21243 (sanopt_ctx): Adjust asan_check_map type for tree_map_traits
21244 to sanopt_tree_map_traits renaming. Add vptr_check_map field.
21245 (maybe_optimize_ubsan_vptr_ifn): New function.
21246 (sanopt_optimize_walker): Handle IFN_UBSAN_VPTR.
21247 (pass_sanopt::execute): Likewise. Call sanopt_optimize even for
21248 -fsanitize=vptr.
21249 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Handle certain
21250 internal calls like pure functions for aliasing, even when they
21251 have other side-effects that prevent making them ECF_PURE.
21252 * ubsan.c (ubsan_vptr_type_cache_decl): New variable.
21253 (ubsan_expand_vptr_ifn): New function.
21254
21255 2015-01-15 Vladimir Makarov <vmakarov@redhat.com>
21256
21257 PR rtl-optimization/64110
21258 * stmt.c (parse_output_constraint): Process '^' and '$'.
21259 (parse_input_constraint): Ditto.
21260 * lra-constraints.c (process_alt_operands): Process the new
21261 constraints.
21262 * ira-costs.c (record_reg_classes): Process the new constraint
21263 '^'.
21264 * genoutput.c (indep_constraints): Add '^' and '$'.
21265 * config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'.
21266 * doc/md.texi: Add description of the new constraints.
21267
21268 2015-01-15 Thomas Schwinge <thomas@codesourcery.com>
21269 Bernd Schmidt <bernds@codesourcery.com>
21270 Cesar Philippidis <cesar@codesourcery.com>
21271 James Norris <jnorris@codesourcery.com>
21272 Tom de Vries <tom@codesourcery.com>
21273 Ilmir Usmanov <i.usmanov@samsung.com>
21274 Dmitry Bocharnikov <dmitry.b@samsung.com>
21275 Evgeny Gavrin <e.gavrin@samsung.com>
21276 Jakub Jelinek <jakub@redhat.com>
21277
21278 * builtin-types.def (BT_FN_VOID_INT_INT_VAR)
21279 (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
21280 (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
21281 New function types.
21282 * builtins.c: Include "gomp-constants.h".
21283 (expand_builtin_acc_on_device): New function.
21284 (expand_builtin, is_inexpensive_builtin): Handle
21285 BUILT_IN_ACC_ON_DEVICE.
21286 * builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
21287 New macros.
21288 * cgraph.c (cgraph_node::create): Consider flag_openacc next to
21289 flag_openmp.
21290 * config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
21291 <*-intelmic-* | *-intelmicemul-*> (tm_file): Add
21292 i386/intelmic-offload.h.
21293 * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
21294 to libgomp and its dependencies.
21295 * config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
21296 * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
21297 * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
21298 * config/ia64/hpux.h (LIB_SPEC): Likewise.
21299 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
21300 * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
21301 * doc/generic.texi: Update for OpenACC changes.
21302 * doc/gimple.texi: Likewise.
21303 * doc/invoke.texi: Likewise.
21304 * doc/sourcebuild.texi: Likewise.
21305 * gimple-pretty-print.c (dump_gimple_omp_for): Handle
21306 GF_OMP_FOR_KIND_OACC_LOOP.
21307 (dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
21308 GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
21309 GF_OMP_TARGET_KIND_OACC_UPDATE,
21310 GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
21311 Dump more data.
21312 * gimple.c: Update comments for OpenACC changes.
21313 * gimple.def: Likewise.
21314 * gimple.h: Likewise.
21315 (enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
21316 GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
21317 GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
21318 GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
21319 (gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
21320 appropriate place.
21321 (is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
21322 * gimplify.c: Include "gomp-constants.h".
21323 Update comments for OpenACC changes.
21324 (is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
21325 OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
21326 OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
21327 (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
21328 OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
21329 OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
21330 OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
21331 OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
21332 OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
21333 OMP_CLAUSE_SEQ.
21334 (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
21335 GOMP_MAP_* instead of OMP_CLAUSE_MAP_*. Use
21336 OMP_CLAUSE_SET_MAP_KIND.
21337 (gimplify_oacc_cache): New function.
21338 (gimplify_omp_for): Handle OACC_LOOP.
21339 (gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
21340 OACC_DATA.
21341 (gimplify_omp_target_update): Handle OACC_ENTER_DATA,
21342 OACC_EXIT_DATA, OACC_UPDATE.
21343 (gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
21344 OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
21345 OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
21346 (gimplify_body): Consider flag_openacc next to flag_openmp.
21347 * lto-streamer-out.c: Include "gomp-constants.h".
21348 * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
21349 (BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
21350 (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
21351 (BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
21352 (BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
21353 (BUILT_IN_ACC_ON_DEVICE): New builtins.
21354 * omp-low.c: Include "gomp-constants.h".
21355 Update comments for OpenACC changes.
21356 (struct omp_context): Add reduction_map, gwv_below, gwv_this
21357 members.
21358 (extract_omp_for_data, use_pointer_for_field, install_var_field)
21359 (new_omp_context, delete_omp_context, scan_sharing_clauses)
21360 (create_omp_child_function, scan_omp_for, scan_omp_target)
21361 (check_omp_nesting_restrictions, lower_reduction_clauses)
21362 (build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
21363 Update for OpenACC changes.
21364 (scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
21365 OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
21366 OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
21367 OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
21368 OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
21369 OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ. Use GOMP_MAP_* instead of
21370 OMP_CLAUSE_MAP_*.
21371 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
21372 Handle GF_OMP_FOR_KIND_OACC_LOOP.
21373 (expand_omp_target, lower_omp_target): Handle
21374 GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
21375 GF_OMP_TARGET_KIND_OACC_UPDATE,
21376 GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
21377 GF_OMP_TARGET_KIND_OACC_DATA.
21378 (pass_expand_omp::execute, execute_lower_omp)
21379 (pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
21380 flag_openmp.
21381 (offload_symbol_decl): New variable.
21382 (oacc_get_reduction_array_id, oacc_max_threads)
21383 (get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
21384 (maybe_lookup_oacc_reduction, enclosing_target_ctx)
21385 (oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
21386 (oacc_gimple_assign, oacc_initialize_reduction_data)
21387 (oacc_finalize_reduction_data, oacc_process_reduction_data): New
21388 functions.
21389 (is_targetreg_ctx): Remove function.
21390 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
21391 OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
21392 OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
21393 OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
21394 OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
21395 OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
21396 * tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
21397 * tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
21398 (OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
21399 (OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
21400 (OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
21401 (OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
21402 * tree-core.h: Update comments for OpenACC changes.
21403 (enum omp_clause_map_kind): Remove.
21404 (struct tree_omp_clause): Change type of map_kind member from enum
21405 omp_clause_map_kind to unsigned char.
21406 * tree-inline.c: Update comments for OpenACC changes.
21407 * tree-nested.c: Likewise. Include "gomp-constants.h".
21408 (convert_nonlocal_reference_stmt, convert_local_reference_stmt)
21409 (convert_tramp_reference_stmt, convert_gimple_call): Update for
21410 OpenACC changes. Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*. Use
21411 OMP_CLAUSE_SET_MAP_KIND.
21412 * tree-pretty-print.c: Include "gomp-constants.h".
21413 (dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
21414 OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
21415 OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
21416 OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
21417 OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
21418 OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT. Use GOMP_MAP_*
21419 instead of OMP_CLAUSE_MAP_*.
21420 (dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
21421 OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
21422 OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
21423 * tree-streamer-in.c: Include "gomp-constants.h".
21424 (unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
21425 OMP_CLAUSE_MAP_*. Use OMP_CLAUSE_SET_MAP_KIND.
21426 * tree-streamer-out.c: Include "gomp-constants.h".
21427 (pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
21428 OMP_CLAUSE_MAP_*.
21429 * tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
21430 (OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
21431 (OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
21432 * tree.c (omp_clause_num_ops): Update accordingly.
21433 * tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
21434 Likewise.
21435 (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
21436 (OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
21437 (OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
21438 (OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
21439 (OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
21440 (OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
21441 * tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
21442 (OMP_CLAUSE_SET_MAP_KIND): New macro.
21443 * varpool.c (varpool_node::get_create): Consider flag_openacc next
21444 to flag_openmp.
21445 * config/i386/intelmic-offload.h: New file.
21446 * config/nvptx/offload.h: Likewise.
21447
21448 2015-01-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
21449
21450 * explow.h: Remove duplicate contents.
21451 * dojump.h: Likewise.
21452
21453 2015-01-15 Richard Earnshaw <rearnsha@arm.com>
21454
21455 * arm.c (arm_xgene_tune): Add default initializer for instruction
21456 fusion.
21457
21458 2015-01-15 Jan Hubicka <hubicka@ucw.cz>
21459
21460 PR ipa/64068
21461 PR ipa/64559
21462 * ipa.c (symbol_table::remove_unreachable_nodes):
21463 Do not put abstract origins into boundary.
21464
21465 2015-01-15 Evgeny Stupachenko <evstupac@gmail.com>
21466
21467 * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
21468 * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.
21469
21470 2015-01-15 Steve Ellcey <sellcey@mips.com>
21471
21472 * Makefile.in (PLUGIN_HEADERS): Add dominance.h, cfg.h, cfgrtl.h,
21473 cfganal.h, cfgbuild.h, cfgcleanup.h, lcm.h, cfgloopmanip.h,
21474 builtins.def, and chkp-builtins.def.
21475
21476 2015-01-15 David Edelsohn <dje.gcc@gmail.com>
21477
21478 * config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
21479 ISA 2.7 (POWER8).
21480
21481 2015-01-15 Richard Biener <rguenther@suse.de>
21482
21483 PR tree-optimization/61743
21484 * tree-ssa-pre.c (insert_into_preds_of_block): Preserve range
21485 information on PHIs for some simple cases.
21486
21487 2015-01-15 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
21488
21489 * config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
21490 Include xgene1.md.
21491 * config/arm/arm.c (arm_issue_rate): Specify 4 for xgene1.
21492 * config/arm/arm-cores.def (xgene1): New entry.
21493 * config/arm/arm-tables.opt: Regenerate.
21494 * config/arm/arm-tune.md: Regenerate.
21495 * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=xgene1.
21496
21497 2015-01-15 Yuri Rumyantsev <ysrumyan@gmail.com>
21498
21499 * tree-if-conv.c: Include hash-map.h.
21500 (aggressive_if_conv): New variable.
21501 (fold_build_cond_expr): Add simplification of non-zero condition.
21502 (add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
21503 destination block is not always executed.
21504 (if_convertible_phi_p): Fix commentary, allow phi nodes have more
21505 than two predecessors if AGGRESSIVE_IF_CONV is true.
21506 (if_convertible_stmt_p): Fix commentary.
21507 (all_preds_critical_p): New function.
21508 (has_pred_critical_p): New function.
21509 (if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
21510 BB can have more than two predecessors and all incoming edges can be
21511 critical.
21512 (predicate_bbs): Skip predication for loop exit block, use build2_loc
21513 to compute predicate for true edge.
21514 (find_phi_replacement_condition): Delete this function.
21515 (is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
21516 Allow interchange PHI arguments if EXTENDED is false.
21517 Change check that block containing reduction statement candidate
21518 is predecessor of phi-block since phi may have more than two arguments.
21519 (phi_args_hash_traits): New helper structure.
21520 (struct phi_args_hash_traits): New type.
21521 (phi_args_hash_traits::hash): New function.
21522 (phi_args_hash_traits::equal_keys): New function.
21523 (gen_phi_arg_condition): New function.
21524 (predicate_scalar_phi): Add handling of phi nodes with more than two
21525 arguments, delete COND and TRUE_BB arguments, insert body of
21526 find_phi_replacement_condition to predicate ordinary phi nodes.
21527 (predicate_all_scalar_phis): Skip blocks with the only predecessor,
21528 delete call of find_phi_replacement_condition and invoke
21529 predicate_scalar_phi with two arguments.
21530 (insert_gimplified_predicates): Add assert that non-predicated block
21531 don't have statements to insert.
21532 (ifcvt_split_critical_edges): New function.
21533 (ifcvt_split_def_stmt): Likewise.
21534 (ifcvt_walk_pattern_tree): Likewise.
21535 (stmt_is_root_of_bool_pattern): Likewise.
21536 (ifcvt_repair_bool_pattern): Likewise.
21537 (ifcvt_local_dce): Likewise.
21538 (tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
21539 is copy of inner or outer loop force_vectorize field, invoke
21540 ifcvt_split_critical_edges, ifcvt_local_dce and
21541 ifcvt_repair_bool_pattern for aggressive if-conversion.
21542
21543 2015-01-15 Philipp Tomsich <ptomsich@theobroma-systems.com>
21544
21545 * config/aarch64/aarch64.md: Include xgene1.md.
21546 * config/aarch64/xgene1.md: New file.
21547
21548 2015-01-15 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
21549
21550 * config/aarch64/aarch64-cores.def (xgene1): Update/add the
21551 xgene1 (APM XGene-1) core definition.
21552 * gcc/config/aarch64/aarch64.c: Add cost tables for APM XGene-1
21553 * config/arm/aarch-cost-tables.h: Add cost tables for APM XGene-1
21554 * doc/invoke.texi: Document -mcpu=xgene1.
21555
21556 2015-01-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
21557
21558 * dojump.h: New header file.
21559 * explow.h: Likewise.
21560 * expr.h: Remove includes.
21561 Move expmed.c prototypes to expmed.h.
21562 Move dojump.c prototypes to dojump.h.
21563 Move alias.c prototypes to alias.h.
21564 Move explow.c prototypes to explow.h.
21565 Move calls.c prototypes to calls.h.
21566 Move emit-rtl.c prototypes to emit-rtl.h.
21567 Move varasm.c prototypes to varasm.h.
21568 Move stmt.c prototypes to stmt.h.
21569 (saved_pending_stack_adjust): Move to dojump.h.
21570 (adjust_address): Move to explow.h.
21571 (adjust_address_nv): Move to emit-rtl.h.
21572 (adjust_bitfield_address): Likewise.
21573 (adjust_bitfield_address_size): Likewise.
21574 (adjust_bitfield_address_nv): Likewise.
21575 (adjust_automodify_address_nv): Likewise.
21576 * explow.c (expr_size): Move to expr.c.
21577 (int_expr_size): Likewise.
21578 (tree_expr_size): Likewise.
21579 Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21580 fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
21581 * genemit.c (main): Generate includes statistics.h, real.h,
21582 fixed-value.h, insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
21583 stmt.h.
21584 * genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h,
21585 function.h, statistics.h, real.h, fixed-value.h, expmed.h, dojump.h,
21586 explow.h, emit-rtl.h, stmt.h.
21587 * genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
21588 fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
21589 * genemit.c (open_base_files): Generate includes flags.h, statistics.h,
21590 real.h, fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h,
21591 emit-rtl.h, varasm.h, stmt.h.
21592 * config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h,
21593 hash-set.h, vec.h, machmode.h, tm.h, hard-reg-set.h, input.h,
21594 function.h, rtl.h, flags.h, statistics.h, double-int.h, real.h,
21595 fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h, insn-config.h,
21596 expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
21597 * config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
21598 double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
21599 function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
21600 insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
21601 tm.h tree.h varasm.h vec.h wide-int.h.
21602 * rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
21603 explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
21604 hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
21605 real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
21606 * cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h
21607 emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h
21608 insn-config.h real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
21609 * loop-iv.c: Likewise.
21610 * lra-assigns.c: Include alias.h calls.h dojump.h double-int.h
21611 emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h real.h
21612 statistics.h stmt.h tree.h varasm.h wide-int.h.
21613 * lra-constraints.c: Likewise.
21614 * lra-eliminations.c: Likewise.
21615 * lra-lives.c: Likewise.
21616 * lra-remat.c: Likewise.
21617 * bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
21618 explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
21619 statistics.h stmt.h tree.h varasm.h wide-int.h.
21620 * hw-doloop.c: Likewise.
21621 * ira-color.c: Likewise.
21622 * ira-emit.c: Likewise.
21623 * loop-doloop.c: Likewise.
21624 * loop-invariant.c: Likewise.
21625 * reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
21626 explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
21627 statistics.h stmt.h tree.h varasm.h wide-int.h.
21628 * caller-save.c: Include alias.h calls.h dojump.h double-int.h
21629 emit-rtl.h explow.h expmed.h fixed-value.h inchash.h real.h
21630 statistics.h stmt.h tree.h varasm.h wide-int.h.
21631 * combine-stack-adj.c: Likewise.
21632 * cse.c: Likewise.
21633 * ddg.c: Likewise.
21634 * ifcvt.c: Likewise.
21635 * ira-costs.c: Likewise.
21636 * jump.c: Likewise.
21637 * lra-coalesce.c: Likewise.
21638 * lra-spills.c: Likewise.
21639 * profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
21640 explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
21641 stmt.h varasm.h wide-int.h.
21642 * lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
21643 explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
21644 varasm.h.
21645 * config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
21646 double-int.h explow.h expmed.h fixed-value.h flags.h real.h
21647 statistics.h stmt.h varasm.h wide-int.h.
21648 * reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
21649 expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
21650 varasm.h wide-int.h.
21651 * reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
21652 expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
21653 * config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
21654 emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
21655 statistics.h stmt.h.
21656 * config/tilepro/tilepro.c: Likewise.
21657 * config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
21658 explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
21659 * config/pdp11/pdp11.c: Likewise.
21660 * config/xtensa/xtensa.c: Likewise.
21661 * config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
21662 explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
21663 varasm.h.
21664 * tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21665 fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
21666 insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
21667 * cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21668 fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
21669 insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
21670 * rtl-chkp.c: Likewise.
21671 * tree-chkp-opt.c: Likewise.
21672 * config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h
21673 explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
21674 hashtab.h insn-config.h real.h statistics.h stmt.h varasm.h.
21675 * ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21676 fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
21677 statistics.h stmt.h.
21678 * tree-vect-data-refs.c: Likewise.
21679 * graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
21680 expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
21681 rtl.h statistics.h stmt.h varasm.h.
21682 * internal-fn.c: Likewise.
21683 * ipa-icf-gimple.c: Likewise.
21684 * lto-section-out.c: Likewise.
21685 * tree-data-ref.c: Likewise.
21686 * tree-nested.c: Likewise.
21687 * tree-outof-ssa.c: Likewise.
21688 * tree-predcom.c: Likewise.
21689 * tree-pretty-print.c: Likewise.
21690 * tree-scalar-evolution.c: Likewise.
21691 * tree-ssa-strlen.c: Likewise.
21692 * tree-vect-loop.c: Likewise.
21693 * tree-vect-patterns.c: Likewise.
21694 * tree-vect-slp.c: Likewise.
21695 * tree-vect-stmts.c: Likewise.
21696 * tsan.c: Likewise.
21697 * targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21698 fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
21699 stmt.h.
21700 * config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
21701 expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
21702 statistics.h stmt.h varasm.h.
21703 * loop-unroll.c: Likewise.
21704 * ubsan.c: Likewise.
21705 * tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
21706 expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
21707 stmt.h varasm.h.
21708 * dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21709 fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
21710 * tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
21711 expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
21712 statistics.h stmt.h.
21713 * generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
21714 expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
21715 statistics.h stmt.h varasm.h.
21716 * gimple-match-head.c: Likewise.
21717 * lto-cgraph.c: Likewise.
21718 * lto-section-in.c: Likewise.
21719 * lto-streamer-in.c: Likewise.
21720 * lto-streamer-out.c: Likewise.
21721 * tree-affine.c: Likewise.
21722 * tree-cfg.c: Likewise.
21723 * tree-cfgcleanup.c: Likewise.
21724 * tree-if-conv.c: Likewise.
21725 * tree-into-ssa.c: Likewise.
21726 * tree-ssa-alias.c: Likewise.
21727 * tree-ssa-copyrename.c: Likewise.
21728 * tree-ssa-dse.c: Likewise.
21729 * tree-ssa-forwprop.c: Likewise.
21730 * tree-ssa-live.c: Likewise.
21731 * tree-ssa-math-opts.c: Likewise.
21732 * tree-ssa-pre.c: Likewise.
21733 * tree-ssa-sccvn.c: Likewise.
21734 * tree-tailcall.c: Likewise.
21735 * tree-vect-generic.c: Likewise.
21736 * tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21737 fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
21738 * stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21739 fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
21740 * varasm.c: Likewise.
21741 * coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21742 fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
21743 varasm.h.
21744 * init-regs.c: Likewise.
21745 * ira.c: Likewise.
21746 * omp-low.c: Likewise.
21747 * stack-ptr-mod.c: Likewise.
21748 * tree-ssa-reassoc.c: Likewise.
21749 * tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21750 fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
21751 varasm.h.
21752 * dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21753 fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
21754 * shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21755 fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
21756 * recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21757 fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
21758 * tree-ssa-phiopt.c: Likewise.
21759 * config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21760 fixed-value.h hashtab.h real.h statistics.h stmt.h.
21761 * config/fr30/fr30.c: Likewise.
21762 * config/frv/frv.c: Likewise.
21763 * expr.c: Likewise.
21764 * final.c: Likewise.
21765 * optabs.c: Likewise.
21766 * passes.c: Likewise.
21767 * simplify-rtx.c: Likewise.
21768 * stmt.c: Likewise.
21769 * toplev.c: Likewise.
21770 * var-tracking.c: Likewise.
21771 * gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21772 fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
21773 * lower-subreg.c: Likewise.
21774 * postreload-gcse.c: Likewise.
21775 * ree.c: Likewise.
21776 * reginfo.c: Likewise.
21777 * store-motion.c: Likewise.
21778 * combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21779 fixed-value.h hashtab.h real.h stmt.h varasm.h.
21780 * emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21781 fixed-value.h hashtab.h statistics.h stmt.h.
21782 * dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21783 fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
21784 * except.c: Likewise.
21785 * explow.c: Likewise.
21786 * tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21787 fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
21788 varasm.h.
21789 * gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21790 fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
21791 * tree-ssa-structalias.c: Likewise.
21792 * cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21793 fixed-value.h insn-config.h real.h statistics.h.
21794 * calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21795 fixed-value.h insn-config.h real.h statistics.h stmt.h.
21796 * bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21797 fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
21798 * cfgbuild.c: Likewise.
21799 * function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21800 fixed-value.h real.h rtl.h statistics.h stmt.h.
21801 * cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21802 fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
21803 * dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21804 fixed-value.h real.h statistics.h stmt.h.
21805 * auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
21806 fixed-value.h real.h statistics.h stmt.h varasm.h.
21807 * cprop.c: Likewise.
21808 * modulo-sched.c: Likewise.
21809 * postreload.c: Likewise.
21810 * ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
21811 flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
21812 statistics.h stmt.h varasm.h.
21813 * gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
21814 explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
21815 rtl.h statistics.h stmt.h varasm.h.
21816 * tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
21817 fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
21818 varasm.h.
21819 * expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
21820 function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
21821 varasm.h.
21822 * target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
21823 fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
21824 varasm.h.
21825 * tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
21826 fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
21827 * cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
21828 function.h real.h statistics.h stmt.h varasm.h.
21829 * alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
21830 insn-config.h real.h statistics.h stmt.h.
21831 * dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
21832 statistics.h stmt.h.
21833 * config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
21834 fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
21835 statistics.h stmt.h varasm.h.
21836 * gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h
21837 fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
21838 * asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
21839 flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
21840 * ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
21841 fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
21842 statistics.h stmt.h varasm.h.
21843 * ipa-polymorphic-call.c: Likewise.
21844 * config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h
21845 expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
21846 statistics.h stmt.h.
21847 * config/c6x/c6x.c: Likewise.
21848 * config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h
21849 explow.h expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
21850 statistics.h stmt.h varasm.h.
21851 * ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h
21852 fixed-value.h hashtab.h insn-config.h real.h rtl.h statistics.h
21853 stmt.h varasm.h.
21854 * ipa-split.c: Likewise.
21855 * tree-eh.c: Likewise.
21856 * tree-ssa-dce.c: Likewise.
21857 * tree-ssa-loop-niter.c: Likewise.
21858 * tree-vrp.c: Likewise.
21859 * config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
21860 expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
21861 stmt.h.
21862 * config/nds32/nds32-fp-as-gp.c: Likewise.
21863 * config/nds32/nds32-intrinsic.c: Likewise.
21864 * config/nds32/nds32-isr.c: Likewise.
21865 * config/nds32/nds32-md-auxiliary.c: Likewise.
21866 * config/nds32/nds32-memory-manipulation.c: Likewise.
21867 * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
21868 * config/nds32/nds32-predicates.c: Likewise.
21869 * config/nds32/nds32.c: Likewise.
21870 * config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
21871 fixed-value.h hashtab.h real.h statistics.h.
21872 * config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
21873 fixed-value.h hashtab.h real.h statistics.h stmt.h.
21874 * config/arm/arm.c: Likewise.
21875 * config/avr/avr.c: Likewise.
21876 * config/bfin/bfin.c: Likewise.
21877 * config/h8300/h8300.c: Likewise.
21878 * config/i386/i386.c: Likewise.
21879 * config/ia64/ia64.c: Likewise.
21880 * config/iq2000/iq2000.c: Likewise.
21881 * config/m32c/m32c.c: Likewise.
21882 * config/m32r/m32r.c: Likewise.
21883 * config/m68k/m68k.c: Likewise.
21884 * config/mcore/mcore.c: Likewise.
21885 * config/mep/mep.c: Likewise.
21886 * config/mips/mips.c: Likewise.
21887 * config/mn10300/mn10300.c: Likewise.
21888 * config/moxie/moxie.c: Likewise.
21889 * config/pa/pa.c: Likewise.
21890 * config/rl78/rl78.c: Likewise.
21891 * config/rx/rx.c: Likewise.
21892 * config/s390/s390.c: Likewise.
21893 * config/sh/sh.c: Likewise.
21894 * config/sparc/sparc.c: Likewise.
21895 * config/spu/spu.c: Likewise.
21896 * config/stormy16/stormy16.c: Likewise.
21897 * config/v850/v850.c: Likewise.
21898 * config/vax/vax.c: Likewise.
21899 * config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
21900 fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
21901 * config/msp430/msp430.c: Likewise.
21902 * predict.c: Likewise.
21903 * value-prof.c: Likewise.
21904 * config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
21905 expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
21906 * config/microblaze/microblaze.c: Likewise.
21907 * config/nios2/nios2.c: Likewise.
21908 * config/rs6000/rs6000.c: Likewise.
21909 * tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
21910 insn-config.h real.h rtl.h statistics.h stmt.h.
21911 * cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
21912 insn-config.h real.h statistics.h stmt.h.
21913 * fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
21914 fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
21915 * tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
21916 fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
21917 * builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h
21918 fixed-value.h real.h statistics.h stmt.h.
21919 * config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
21920 fixed-value.h statistics.h stmt.h.
21921 * config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
21922 stmt.h.
21923
21924 2015-01-15 Jakub Jelinek <jakub@redhat.com>
21925
21926 * gengtype.c (create_user_defined_type): Workaround
21927 -Wmaybe-uninitialized false positives.
21928 * cse.c (fold_rtx): Likewise.
21929 * loop-invariant.c (gain_for_invariant): Likewise.
21930
21931 2015-01-15 Eric Botcazou <ebotcazou@adacore.com>
21932
21933 * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
21934 set the memory attributes in all cases but clear MEM_EXPR if need be.
21935
21936 2015-01-15 Yuri Rumyantsev <ysrumyan@gmail.com>
21937
21938 PR tree-optimization/64434
21939 * cfgexpand.c (reorder_operands): New function.
21940 (expand_gimple_basic_block): Insert call of reorder_operands if
21941 optimized is true.
21942
21943 2015-01-15 Matthew Fortune <matthew.fortune@imgtec.com>
21944
21945 * config/mips/micromips.md (*swp): Remove explicit parallel.
21946 (jraddiusp, *movep<MOVEP1:mode><MOVEP2:mode>): Likewise.
21947 * config/mips/mips-dsp.md (add<DSPV:mode>3): Likewise.
21948 (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>, sub<DSPV:mode>3): Likewise.
21949 (mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc): Likewise.
21950 (mips_addwc, mips_absq_s_<DSPQ:dspfmt2>): Likewise.
21951 (mips_precrq_rs_ph_w, mips_precrqu_s_qb_ph): Likewise.
21952 (mips_shll_<DSPV:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>): Likewise.
21953 (mips_muleu_s_ph_qbl, mips_muleu_s_ph_qbr): Likewise.
21954 (mips_mulq_rs_ph, mips_muleq_s_w_phl, mips_muleq_s_w_phr): Likewise.
21955 (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph): Likewise.
21956 (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_s_w_phl): Likewise.
21957 (mips_maq_s_w_phr, mips_maq_sa_w_phl, mips_maq_sa_w_phr): Likewise.
21958 (mips_extr_w, mips_extr_r_w, mips_extr_rs_w): Likewise.
21959 (mips_extr_s_h, mips_extp, mips_extpdp, mips_mthlip): Likewise.
21960 (mips_wrdsp): Likewise.
21961 * config/mips/mips-dspr2.md (mips_absq_s_qb): Remove explicit
21962 parallel.
21963 (mips_addu_ph, mips_addu_s_ph, mips_cmpgdu_eq_qb): Likewise.
21964 (mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb, mulv2hi3): Likewise.
21965 (mips_mul_s_ph, mips_mulq_rs_w, mips_mulq_s_ph): Likewise.
21966 (mips_mulq_s_w, mips_subu_ph, mips_subu_s_ph): Likewise.
21967 (mips_dpaqx_s_w_ph, mips_dpaqx_sa_w_ph): Likewise.
21968 (mips_dpsqx_s_w_ph, mips_dpsqx_sa_w_ph): Likewise.
21969 * config/mips/mips-fixed.md (usadd<mode>3): Remove explicit parallel.
21970 (ssadd<mode>3, ussub<mode>3, sssub<mode>3, ssmul<mode>3): Likewise.
21971 (ssmaddsqdq4, ssmsubsqdq4): Likewise.
21972
21973 2015-01-14 Matthew Fortune <matthew.fortune@imgtec.com>
21974
21975 * config/mips/mips.c (mips_rtx_costs): Set costs for LSA/DLSA.
21976 (mips_print_operand): Support 'y' to print exact log2 in decimal
21977 of a const_int.
21978 * config/mips/mips.h (ISA_HAS_LSA): New define.
21979 (ISA_HAS_DLSA): Likewise.
21980 * config/mips/mips.md (<GPR:d>lsa): New define_insn.
21981 * config/mips/predicates.md (const_immlsa_operand): New predicate.
21982
21983 2015-01-15 Martin Liska <mliska@suse.cz>
21984
21985 PR target/64377
21986 * optc-save-gen.awk: Add support for array types.
21987
21988 2015-01-15 Richard Biener <rguenther@suse.de>
21989
21990 PR middle-end/64365
21991 * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
21992 for MEM_REF access functions with the same base can never partially
21993 overlap.
21994
21995 2015-01-14 Marcos Diaz <marcos.diaz@tallertechnologies.com>
21996
21997 * common.opt: New option -fstack-protector-explicit.
21998 * cfgexpand.c (SPCT_FLAG_EXPLICIT): New enum.
21999 (stack_protect_decl_phase): Handle stack_protect attribute for
22000 explicit stack protection requests.
22001 (expand_used_vars): Similarly.
22002 * doc/cpp.texi (__SSP_EXPLICIT__): Document predefined macro.
22003 * doc/extend.texi: Add documentation for "stack_protect" attribute.
22004 * doc/invoke.texi: Add documentation for -fstack-protector-explicit.
22005
22006 2015-01-14 Oleg Endo <olegendo@gcc.gnu.org>
22007
22008 PR target/53988
22009 * config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
22010 reg-reg copies.
22011 (sh_extending_set_of_reg): New struct.
22012 (sh_find_extending_set_of_reg, sh_split_tst_subregs,
22013 sh_remove_reg_dead_or_unused_notes): New Declarations.
22014 * config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
22015 sh_find_extending_set_of_reg, sh_split_tst_subregs,
22016 sh_extending_set_of_reg::use_as_extended_reg): New functions.
22017 * config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
22018 convert to insn_and_split and use new function sh_split_tst_subregs.
22019
22020 2015-01-14 Sandra Loosemore <sandra@codesourcery.com>
22021
22022 * doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
22023 option.
22024 (Optimization Options): Move -fuse-ld documentation to...
22025 (Link Options): ...here.
22026
22027 2015-01-14 Matthew Fortune <matthew.fortune@imgtec.com>
22028
22029 * config/mips/constraints.md (ZC): Add support for R6 LL/SC
22030 offsets.
22031 (ZD): Update to use ISA_HAS_9BIT_DISPLACEMENT.
22032 * config/mips/mips.h (ISA_HAS_PREFETCH_9BIT): Rename to...
22033 (ISA_HAS_9BIT_DISPLACEMENT): ... this. New macro.
22034 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZC
22035 instead of ZR for the memory operand of LL/SC.
22036 (compare_and_swap_12, sync_add<mode>): Likewise.
22037 (sync_<optab>_12, sync_old_<optab>_12): Likewise.
22038 (sync_new_<optab>_12, sync_nand_12): Likewise.
22039 (sync_old_nand_12, sync_new_nand_12): Likewise.
22040 (sync_sub<mode>, sync_old_add<mode>): Likewise.
22041 (sync_old_sub<mode>, sync_new_add<mode>): Likewise.
22042 (sync_new_sub<mode>, sync_<optab><mode>): Likewise.
22043 (sync_old_<optab><mode>, sync_new_<optab><mode>"): Likewise.
22044 (sync_nand<mode>, sync_old_nand<mode>): Likewise.
22045 (sync_new_nand<mode>, sync_lock_test_and_set<mode>): Likewise.
22046 (test_and_set_12, atomic_compare_and_swap<mode>): Likewise.
22047 (atomic_exchange<mode>_llsc, atomic_fetch_add<mode>_llsc): Likewise.
22048 * doc/md.texi (ZC): Update description.
22049
22050 2015-01-14 Andrew MacLeod <amacleod@redhat.com>
22051
22052 * builtins.c (expand_builtin_atomic_exchange): Remove error when
22053 memory model is CONSUME.
22054 (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
22055 expand_builtin_atomic_store): Change invalid memory model errors to
22056 warnings.
22057 (expand_builtin_atomic_clear): Change invalid model errors to warnings
22058 and issue warning for CONSUME.
22059
22060 2015-01-14 Aldy Hernandez <aldyh@redhat.com>
22061
22062 * lto-cgraph: Update function comments for
22063 lto_symtab_encoder_encode_*.
22064
22065 2015-01-14 Ilya Verbin <ilya.verbin@intel.com>
22066
22067 * Makefile.in (site.exp): Do not set ENABLE_LTO.
22068
22069 2015-01-14 Ilya Verbin <ilya.verbin@intel.com>
22070
22071 * cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
22072 * lto-cgraph.c (select_what_to_stream): Remove argument, use
22073 lto_stream_offload_p instead.
22074 * lto-streamer.h (select_what_to_stream): Remove argument.
22075 * passes.c (ipa_write_summaries): Likewise.
22076 * tree-pass.h (ipa_write_summaries): Likewise.
22077
22078 2015-01-14 Richard Biener <rguenther@suse.de>
22079
22080 PR tree-optimization/59354
22081 * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
22082 groups larger than the slp group size as having gaps.
22083
22084 2015-01-14 Andrew MacLeod <amacleod@redhat.com>
22085
22086 PR middle-end/59448
22087 * builtins.c (get_memmodel): Promote consume to acquire always.
22088
22089 2015-01-14 Ilya Tocar <ilya.tocar@intel.com>
22090
22091 PR target/64386
22092 * config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
22093 V32HImode.
22094
22095 2015-01-14 Ilya Tocar <ilya.tocar@intel.com>
22096
22097 PR target/64393
22098 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
22099 Enable AVX512BW.
22100 (OPTION_MASK_ISA_AVX512BW_UNSET): Disable AVX512VBMI.
22101 * config/i386/i386.c (ix86_hard_regno_mode_ok): Don't check
22102 AVX512VBMI, as it implies AVX512BW.
22103
22104 2015-01-14 Ilya Tocar <ilya.tocar@intel.com>
22105
22106 PR target/64387
22107 * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
22108 (vec_unpacks_hi_v16sf): Ditto.
22109
22110 2015-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22111
22112 * config/aarch64/arm_neon.h: Error out if AdvancedSIMD
22113 is not available.
22114
22115 2015-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22116
22117 * doc/invoke.texi (mapcs): Mention deprecation.
22118 (mapcs-frame): Likewise.
22119
22120 2015-01-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
22121
22122 PR target/64453
22123 * config/arm/arm.c (callee_saved_reg_p): Define.
22124 (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
22125 register is callee saved instead of !call_used_regs[reg].
22126 (thumb1_compute_save_reg_mask): Likewise.
22127
22128 2015-01-14 Hale Wang <hale.wang@arm.com>
22129
22130 * config/arm/arm.c: Tune the max_cond_insns/branch_cost for
22131 Cortex-M7.
22132
22133 2015-01-14 Richard Biener <rguenther@suse.de>
22134
22135 PR lto/64415
22136 * tree-inline.c (insert_debug_decl_map): Check destination
22137 function MAY_HAVE_DEBUG_STMTS.
22138 (insert_init_debug_bind): Likewise.
22139 (insert_init_stmt): Remove redundant check.
22140 (remap_gimple_stmt): Drop debug stmts if the destination
22141 function has var-tracking assignments disabled.
22142
22143 2015-01-14 Martin Liska <mliska@suse.cz>
22144
22145 * ipa-icf-gimple.c (func_checker::compare_operand): Add support for
22146 IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.
22147
22148 2015-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22149
22150 PR target/64460
22151 * config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
22152 (*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.
22153
22154 2015-01-14 Matthew Fortune <matthew.fortune@imgtec.com>
22155
22156 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Only infer an ISA
22157 level from an ARCH; do not inject the default.
22158 (MIPS_DEFAULT_ISA_LEVEL_SPEC): New macro split out from
22159 MIPS_ISA_LEVEL_SPEC.
22160 (MIPS_ISA_NAN2008_SPEC): Update comment.
22161 (BASE_DRIVER_SELF_SPECS): Likewise.
22162 * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add
22163 MIPS_DEFAULT_ISA_LEVEL_SPEC.
22164 * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Likewise.
22165 * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise.
22166 * config/mips/sde.h (DRIVER_SELF_SPECS): Likewise.
22167
22168 2015-01-14 Richard Biener <rguenther@suse.de>
22169
22170 PR tree-optimization/64493
22171 PR tree-optimization/64495
22172 * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
22173 assign the proper vectorized PHI to the inner loop exit PHIs.
22174
22175 2015-01-14 Joey Ye <joey.ye@arm.com>
22176
22177 * config/arm/arm.c (arm_compute_save_reg_mask):
22178 Do not save lr in case of tail call.
22179 * config/arm/thumb2.md (*thumb2_pop_single): New pattern.
22180
22181 2015-01-14 Martin Uecker <uecker@eecs.berkeley.edu>
22182
22183 * tree-vrp.c (check_array_ref): Emit more warnings
22184 for warn_array_bounds >= 2.
22185 * common.opt: New option -Warray-bounds=.
22186 * doc/invoke.texi: Document -Warray-bounds=.
22187
22188 2015-01-14 Chung-Ju Wu <jasonwucj@gmail.com>
22189
22190 * config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
22191 (mforbid-fp-as-gp): Remove.
22192 (mex9): Remove.
22193 * config/nds32/nds32-fp-as-gp.c (nds32_have_prologue_p): Remove.
22194 (nds32_symbol_load_store_p): Remove.
22195 (nds32_fp_as_gp_check_available): Clean up implementation.
22196 * config/nds32/nds32.h (LINK_SPEC): Remove -mforce-as-gp and -mex9
22197 cases.
22198 * config/nds32/nds32.c (nds32_asm_file_start): No need to consider
22199 fp-as-gp and ex9 cases.
22200
22201 2015-01-13 Jan Hubicka <hubicka@ucw.cz>
22202
22203 * tree-profile.c (init_ic_make_global_vars): Drop workaround
22204 for bintuils bug 14342.
22205 (init_ic_make_global_vars): Likewise.
22206 (gimple_init_edge_profiler): Likewise.
22207 (gimple_gen_ic_func_profiler): Likewise.
22208
22209 2015-01-13 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
22210
22211 * ipa-inline.c (inline_small_functions): Swap the operands in
22212 enum.
22213
22214 2015-01-13 Jan Hubicka <hubicka@ucw.cz>
22215
22216 PR ipa/64481
22217 * ipa-inline-analysis.c (node_growth_cache): Remove.
22218 (initialize_growth_caches): Do not initialize it.
22219 (free_growth_caches): Do not free it.
22220 (do_estimate_growth): Rename to ...
22221 (estimate_growth): ... this one; drop growth cache code.
22222 (growth_likely_positive): Always go the heuristics way.
22223 * ipa-inline.c (can_inline_edge_p): Walk through aliases.
22224 (reset_edge_caches): Do not reset node growth.
22225 (heap_edge_removal_hook): Do not maintain cache.
22226 (inline_small_functions): Likewise; strenghten sanity check.
22227 (ipa_inline): Do not maintain caches.
22228 * ipa-inline.h (node_growth_cache): Remove.
22229 (do_estimate_growth): Remove to ...
22230 (estimate_growth): this one; remove inline version.
22231 (reset_node_growth_cache): Remove.
22232
22233 2015-01-13 Jan Hubicka <hubicka@ucw.cz>
22234
22235 PR ipa/64565
22236 * ipa-inline.c (inline_small_functions): Update callee keys after
22237 resolving speculation
22238 (inline_small_functions): Always check monotonicity of the queue.
22239
22240 2015-01-13 Marek Polacek <polacek@redhat.com>
22241
22242 PR middle-end/64391
22243 * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
22244
22245 2015-01-13 Jakub Jelinek <jakub@redhat.com>
22246
22247 PR rtl-optimization/64286
22248 * ree.c (combine_reaching_defs): Move part of comment earlier,
22249 remove !SCALAR_INT_MODE_P check.
22250 (add_removable_extension): Don't add vector mode
22251 extensions if all uses of the source register aren't the same
22252 vector extensions.
22253
22254 2015-01-13 Renlin Li <renlin.li@arm.com>
22255
22256 * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
22257 (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
22258
22259 2015-01-13 Martin Liska <mliska@suse.cz>
22260
22261 * ipa-icf.c (sem_function::equals_private): Call new functions
22262 cl_target_option_print_diff and cl_optimization_print_diff.
22263 * optc-save-gen.awk (cl_target_option_print_diff): New function.
22264 (cl_optimization_print_diff): Likewise.
22265 * opth-gen.awk: Likewise.
22266
22267 2015-01-13 Richard Sandiford <richard.sandiford@arm.com>
22268
22269 * config/aarch64/aarch64.md (subsi3, *subsi3_uxtw, subdi3)
22270 (*sub_<optab><ALLX:mode>_<GPI:mode>, *sub_<optab><SHORT:mode>_si_uxtw)
22271 (*sub_<optab><ALLX:mode>_shft_<GPI:mode>)
22272 (*sub_<optab><SHORT:mode>_shft_si_uxtw, *sub_<optab><mode>_multp2)
22273 (*sub_<optab>si_multp2_uxtw, *sub_uxt<mode>_multp2)
22274 (*sub_uxtsi_multp2_uxtw): Add stack pointer sources.
22275
22276 2015-01-13 Andrew Pinski <apinski@cavium.com>
22277
22278 * config/aarch64/aarch64.c (fusion_load_store): Check dest mode
22279 instead of src mode.
22280
22281 2015-01-13 Richard Biener <rguenther@suse.de>
22282
22283 PR lto/64373
22284 * lto-streamer-out.c (tree_is_indexable): Guard for NULL
22285 DECL_CONTEXT.
22286
22287 2015-01-13 Andrew Pinski <apinski@cavium.com>
22288
22289 * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
22290 volatile mems.
22291 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
22292
22293 2015-01-13 Jakub Jelinek <jakub@redhat.com>
22294
22295 PR middle-end/63974
22296 * cfgexpand.c (expand_computed_goto): Don't call
22297 convert_memory_address here.
22298
22299 2015-01-13 Richard Biener <rguenther@suse.de>
22300
22301 PR tree-optimization/64406
22302 * tree-loop-distibution.c (pass_loop_distribution::execute):
22303 Reset the SCEV hashtable if we distributed anything.
22304
22305 2015-01-13 Richard Biener <rguenther@suse.de>
22306
22307 PR tree-optimization/64404
22308 * tree-vect-stmts.c (vectorizable_load): Reject conflicting
22309 SLP types for CSEd loads.
22310
22311 2015-01-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
22312
22313 PR tree-optimization/64436
22314 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Move code performing the
22315 merge of two symbolic numbers for a bitwise OR to ...
22316 (perform_symbolic_merge): This. Also fix computation of the range and
22317 end of the symbolic number corresponding to the result of a bitwise OR.
22318
22319 2015-01-13 Richard Biener <rguenther@suse.de>
22320
22321 PR tree-optimization/64568
22322 * tree-ssa-forwprop.c (pass_forwprop::execute): Properly
22323 release defs of removed stmts, avoid splitting TARGET_MEM_REFs.
22324
22325 2015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
22326
22327 * config/nds32/nds32.c (nds32_legitimate_address_p): Consider
22328 TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.
22329
22330 2015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
22331
22332 * config/nds32/nds32.h (NDS32_SYMBOL_FLAG_RODATA): Define our own
22333 target-specific symbol_ref flag.
22334 (NDS32_SYMBOL_REF_RODATA_P): Define it to check if the symbol_ref
22335 resides in rodata section.
22336 * config/nds32/nds32.c (TARGET_ENCODE_SECTION_INFO): Define.
22337 (nds32_encode_section_info): New function.
22338
22339 2015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
22340
22341 * config/nds32/nds32.md (call): Use pseudo instruction bal which
22342 clobbers TA_REGNUM if large code model is specified.
22343 (call_register): Likewise.
22344 (call_immediate): Likewise.
22345 (call_value): Likewise.
22346 (call_value_register): Likewise.
22347 (call_value_immediate): Likewise.
22348
22349 2015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
22350
22351 * config/nds32/nds32.h (TARGET_CMODEL_SMALL): New macro.
22352 (TARGET_CMODEL_MEDIUM): New macro.
22353 (TARGET_CMODEL_LARGE): New macro.
22354 * config/nds32/nds32.c (nds32_asm_file_start): Display corresponding
22355 code model setting in assembly code.
22356
22357 2015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
22358
22359 * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
22360 Remove MASK_GP_DIRECT flag.
22361 * config/nds32/nds32.h (MULTILIB_DEFAULTS): Have -mcmodel=medium as
22362 one of the multilib default options.
22363 * config/nds32/nds32.opt (mgp-direct): Remove.
22364 * config/nds32/t-mlibs (MULTILIB_OPTIONS): Use -mcmodel instead of
22365 -mgp-direct. We also remove unnecessary -mlittle-endian/-mbig-endian.
22366
22367 2015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
22368
22369 * config/nds32/nds32.opt (mcmodel): Add new option.
22370 * config/nds32/nds32-opts.h (nds32_cmodel_type): Add new enum type
22371 to describe code model.
22372
22373 2015-01-13 Oleg Endo <olegendo@gcc.gnu.org>
22374
22375 PR target/64479
22376 * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
22377
22378 2015-01-12 Kaz Kojima <kkojima@gcc.gnu.org>
22379
22380 * config/sh/sh.c (sh_atomic_assign_expand_fenv): New function.
22381 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
22382 (sh_builtin_get_fpscr, sh_builtin_set_fpscr): New variables.
22383 (sh_init_builtins): Record decls for __builtin_sh_get_fpscr and
22384 __builtin_sh_set_fpscr.
22385
22386 2015-01-12 Sandra Loosemore <sandra@codesourcery.com>
22387
22388 * doc/invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses
22389 after a funtion name just to indicate it is a function.
22390 ([-fsanitize-undefined-trap-on-error]): Likewise.
22391 ([-fdbg-cnt=]): Likewise.
22392 ([-mmemcpy]): Likewise.
22393 ([-mflush-func]): Likewise.
22394 ([-msynci]): Likewise.
22395
22396 2015-01-12 Sandra Loosemore <sandra@codesourcery.com>
22397
22398 * doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
22399 example.
22400
22401 2015-01-12 Jakub Jelinek <jakub@redhat.com>
22402
22403 PR tree-optimization/64563
22404 * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
22405 instead of != VR_VARYING.
22406
22407 PR target/64513
22408 * config/i386/i386.c (ix86_expand_prologue): Add
22409 REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
22410
22411 PR tree-optimization/64454
22412 * tree-vrp.c (simplify_div_or_mod_using_ranges): Optimize
22413 op0 % op1 into op0 if op0 is in range [-op1 + 1, op1 - 1]
22414 for signed or [0, op1 - 1] for unsigned modulo.
22415 (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
22416 even if op1 does not satisfy integer_pow2p.
22417
22418 PR other/64370
22419 * sreal.c (sreal::to_double): Use ldexp instead of scalbnl.
22420
22421 2015-01-12 Jeff Law <law@redhat.com>
22422
22423 PR target/64461
22424 * config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
22425 (trunchiqi2, truncsihi2): Similarly.
22426
22427 * config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
22428 rather than calling F.
22429
22430 2015-01-12 Bernd Edlinger <bernd.edlinger@hotmail.de>
22431
22432 * tsan.c (instrument_expr): Use force_gimple_operand.
22433 Use may_be_nonaddressable_p instead of is_gimple_addressable.
22434
22435 2015-01-12 Richard Biener <rguenther@suse.de>
22436
22437 PR tree-optimization/64530
22438 * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
22439 back dr1.
22440
22441 2015-01-12 Richard Biener <rguenther@suse.de>
22442
22443 PR middle-end/64357
22444 * tree-cfg.c (gimple_can_merge_blocks_p): Protect simple
22445 latches properly.
22446
22447 2015-01-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22448
22449 * config/arm/arm.c (arm_cortex_a12_tune): Update entries to match
22450 Cortex-A17 tuning parameters.
22451 * config/arm/arm-cores.def (cortex-a12): Schedule for cortex-a17.
22452
22453 2015-01-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22454
22455 * config/arm/arm-protos.h (tune_params): Add fuseable_ops field.
22456 * config/arm/arm.c (arm_macro_fusion_p): New function.
22457 (arm_macro_fusion_pair_p): Likewise.
22458 (TARGET_SCHED_MACRO_FUSION_P): Define.
22459 (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
22460 (ARM_FUSE_NOTHING): Likewise.
22461 (ARM_FUSE_MOVW_MOVT): Likewise.
22462 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
22463 arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
22464 arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
22465 arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
22466 arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
22467 arm_cortex_a5_tune): Specify fuseable_ops value.
22468
22469 2015-01-12 H.J. Lu <hongjiu.lu@intel.com>
22470
22471 PR bootstrap/64561
22472 * configure.ac (HAVE_LD_PIE_COPYRELOC): Update Linux/x86-64 linker
22473 test for PIE with copy reloc.
22474 * configure: Regenerated.
22475
22476 2015-01-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22477
22478 * config/arm/arm.c (arm_load_tp): Use R0_REGNUM instead of constant 0
22479 in gen_rtx_REG.
22480 (arm_tls_descseq_addr): Likewise.
22481 (arm_gen_movmemqi): Likewise.
22482 (arm_expand_epilogue_apcs_frame): Likewise.
22483 (arm_expand_epilogue): Likewise.
22484 (arm_expand_prologue): Likewise. Use R1_REGNUM instead of constant 1
22485 in gen_rtx_REG.
22486
22487 2015-01-12 Martin Liska <mliska@suse.cz>
22488
22489 PR ipa/64550
22490 * ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare
22491 volatility for correct operands.
22492
22493 2015-01-12 Martin Liska <mliska@suse.cz>
22494
22495 * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as
22496 indication that a function is not leaf.
22497 (sem_function::compare_polymorphic_p): Likewise.
22498
22499 2015-01-12 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
22500
22501 * config/visium/visium.c: Add includes hashtab.h, hash-set.h,
22502 machmode.h, input.h, statistics.h, vec.h, double-int.h, real.h,
22503 fixed-value.h, alias.h, symtab.h, tree-core.h, wide-int.h, inchash.h,
22504 fold-const.h, tree-check.h.
22505
22506 2015-01-12 Jan Hubicka <hubicka@ucw.cz>
22507
22508 PR ipa/63967
22509 PR ipa/64425
22510 * ipa-inline.c (compute_uninlined_call_time,
22511 compute_inlined_call_time): Use counts for extra precision when
22512 needed possible.
22513 (big_speedup_p): Fix formating.
22514 (RELATIVE_TIME_BENEFIT_RANGE): Remove.
22515 (relative_time_benefit): Remove.
22516 (edge_badness): Turn DECL_DISREGARD_INLINE_LIMITS into hint;
22517 merge guessed and read profile paths.
22518 (inline_small_functions): Count only !optimize_size functions into
22519 initial size; be more lax about sanity check when profile is used;
22520 be sure to update inlined function profile when profile is read.
22521
22522 2015-01-12 Jan Hubicka <hubicka@ucw.cz>
22523
22524 PR ipa/63470
22525 * ipa-inline-analysis.c (inline_edge_duplication_hook): Adjust
22526 cost when edge becomes direct.
22527 * ipa-prop.c (make_edge_direct): Do not adjust when speculation
22528 is resolved or when introducing new speculation.
22529
22530 2015-01-12 Chen Gang <gang.chen.5i5j@gmail.com>
22531
22532 PR ipa/64551
22533 PR ipa/64552
22534 * ipa-icf.c (sem_function::equals_private): Use '&&' instead of
22535 '||' to fix typo issue.
22536
22537 * gcc/tree.h (target_opts_for_fn): Check NULL_TREE since it can
22538 accept and return NULL.
22539
22540 2015-01-12 Martin Liska <mliska@suse.cz>
22541
22542 * cgraph.c (cgraph_edge::remove_callee): Move function to header
22543 file for being inlined.
22544 (cgraph_set_edge_callee): Delete.
22545 (cgraph_edge::redirect_callee): Move function to header file
22546 for being inlined.
22547 (cgraph_edge::make_direct): Use new function.
22548 (cgraph_edge::dump_edge_flags): New function created from
22549 static dump_edge_flags function.
22550 (cgraph_node::dump): Use new function.
22551 (cgraph_edge::verify_count_and_frequency): New function created
22552 from verify_edge_count_and_frequency.
22553 (cgraph_edge::verify_corresponds_to_fndecl): New function created
22554 from verify_edge_corresponds_to_fndecl.
22555 (verify_edge_corresponds_to_fndecl): Delete.
22556 (cgraph_node::verify_node): Use new function.
22557 * cgraph.h (cgraph_edge::set_callee): New function.
22558 (cgraph_edge::dump_edge_flags): Likewise.
22559 (cgraph_edge::verify_corresponds_to_fndecl): Likewise.
22560
22561 2015-01-11 Jan Hubicka <hubicka@ucw.cz>
22562
22563 * ipa-utils.c (estimate_function_body_sizes): Do not
22564 free node params when called late with early=true.
22565
22566 2015-01-11 James Greenhalgh <james.greenhalgh@arm.com>
22567
22568 * doc/md.texi (Instruction Patterns): Rewrite text for
22569 clarity.
22570 (Example): Likewise.
22571
22572 2015-01-10 Sandra Loosemore <sandra@codesourcery.com>
22573
22574 * doc/invoke.texi (Option Summary): Break long lines.
22575 [(-fdiagnostics-color)]: Put long literal in @smallexample
22576 instead of inline.
22577 [(-fsanitize-recover)]: Likewise.
22578 [(-fdump-rtl-split*)]: Rewrite to fix over-full hbox.
22579 [(-ffast-math)]: Likewise.
22580 [(--param max-inline-insns-recursive)]: Likewise.
22581 [(--param max-inline-recursive-depth)]: Likewise.
22582 [(-mno-text-section-literals)]: Likewise.
22583
22584 2015-01-10 Thomas Schwinge <thomas@codesourcery.com>
22585
22586 * doc/install.texi: Update for libgomp being renamed from "GNU
22587 OpenMP Runtime Library" to "GNU Offloading and Multi Processing
22588 Runtime Library".
22589 * doc/sourcebuild.texi: Likewise.
22590
22591 2015-01-10 Anthony Green <green@moxielogic.com>
22592
22593 * config/moxie/moxie.c (moxie_option_override): Fix forcing of
22594 mul.x availability for moxiebox configuration.
22595
22596 2015-01-09 Anthony Green <green@moxielogic.com>
22597
22598 * config/moxie/moxie.md: Tabify assembly output.
22599
22600 2015-01-09 Anthony Green <green@moxielogic.com>
22601
22602 * config/moxie/moxie.md (CC_REG): Correct register definition.
22603
22604 2015-01-09 Sandra Loosemore <sandra@codesourcery.com>
22605
22606 * doc/invoke.texi ([-fvtable-verify]): Copy-edit and fix markup.
22607 ([-fvtv-debug], [-fvtv-counts]): Likewise. Correct location
22608 of log files.
22609
22610 2015-01-09 Andreas Tobler <andreast@gcc.gnu.org>
22611
22612 * config/arm/arm.h (MAX_SYNC_LIBFUNC_SIZE): Delete semicolon.
22613
22614 2015-01-09 Bernd Schmidt <bernds@codesourcery.com>
22615 Jakub Jelinek <jakub@redhat.com>
22616
22617 PR middle-end/64412
22618 * lto-streamer.h (lto_stream_offload_p): New declaration.
22619 * lto-streamer.c (lto_stream_offload_p): New variable.
22620 * cgraphunit.c (ipa_passes): Set lto_stream_offload_p
22621 at the same time as section_name_prefix.
22622 * lto-streamer-out.c (hash_tree): Don't hash TREE_TARGET_OPTION
22623 if lto_stream_offload_p.
22624 * tree-streamer-out.c (streamer_pack_tree_bitfields): Don't
22625 stream TREE_TARGET_OPTION if lto_stream_offload_p.
22626 (write_ts_function_decl_tree_pointers): Don't
22627 stream DECL_FUNCTION_SPECIFIC_TARGET if lto_stream_offload_p.
22628 * tree-streamer-in.c (unpack_value_fields): Don't stream
22629 TREE_TARGET_OPTION in if ACCEL_COMPILER.
22630 (lto_input_ts_function_decl_tree_pointers): Don't stream
22631 DECL_FUNCTION_SPECIFIC_TARGET in if ACCEL_COMPILER.
22632 * lto-opts.c (lto_write_options): Use lto_stream_offload_p
22633 instead of section_name_prefix string comparisons.
22634
22635 2015-01-09 Jakub Jelinek <jakub@redhat.com>
22636
22637 PR rtl-optimization/64536
22638 * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
22639 tablejumps.
22640
22641 2015-01-09 Michael Collison <michael.collison@linaro.org>
22642
22643 PR tree-optimization/64322
22644 * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
22645 range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
22646
22647 2015-01-09 Tom de Vries <tom@codesourcery.com>
22648
22649 PR rtl-optimization/64539
22650 * regcprop.c (kill_clobbered_values): Factor out of ...
22651 (copyprop_hardreg_forward_1): ... here. Use kill_clobbered_values
22652 instead of note_stores with kill_clobbered_value.
22653
22654 2015-01-09 Andreas Tobler <andreast@gcc.gnu.org>
22655
22656 * ginclude/unwind-arm-common.h: Revert previous commit.
22657
22658 2015-01-09 Andreas Tobler <andreast@gcc.gnu.org>
22659
22660 * config.gcc (arm*-*-freebsd*): New configuration.
22661 * config/arm/freebsd.h: New file.
22662 * config.host: Add extra components for arm*-*-freebsd*.
22663 * config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
22664 * config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.
22665
22666 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
22667
22668 * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
22669 for -mcpu=e6500.
22670 * config/rs6000/t-rtems: Add e6500 multilibs.
22671
22672 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
22673
22674 * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
22675 MPC8540.
22676
22677 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
22678
22679 * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
22680 MULTILIB_EXCEPTIONS.
22681
22682 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
22683
22684 * config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
22685 MULTILIB_EXCEPTIONS.
22686
22687 2015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
22688
22689 * config/arm/t-rtems-eabi: Rename to...
22690 * config/arm/t-rtems: ...this.
22691 * config/arm/rtems-eabi.h: Rename to...
22692 * config/arm/rtems.h: ...this.
22693 * config.gcc (arm*-*-rtems*): Reflect changes above.
22694
22695 2015-01-09 Richard Biener <rguenther@suse.de>
22696
22697 PR tree-optimization/64410
22698 * tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
22699 on the LHS.
22700 (execute_update_addresses_taken): Deal with that.
22701 * tree-ssa-forwprop.c (pass_forwprop::execute): Use component-wise
22702 loads/stores for complex variables.
22703
22704 2015-01-09 Martin Liska <mliska@suse.cz>
22705
22706 * ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
22707 name comparison.
22708 (func_checker::compare_memory_operand): New function.
22709 (func_checker::compare_operand): Split case to newly
22710 added functions.
22711 (func_checker::compare_cst_or_decl): New function.
22712 (func_checker::compare_gimple_call): Identify
22713 memory operands.
22714 (func_checker::compare_gimple_assign): Likewise.
22715 * ipa-icf-gimple.h: New function.
22716
22717 2015-01-09 Martin Liska <mliska@suse.cz>
22718
22719 PR ipa/64503
22720 * sreal.c (sreal::dump): Change unsigned format to signed for
22721 m_exp value.
22722 (sreal::to_double): Replace exp2 with scalbln.
22723
22724 2015-01-09 Martin Liska <mliska@suse.cz>
22725
22726 * cgraphunit.c (cgraph_node::create_wrapper): Fix level of indentation.
22727 * ipa-icf.c (sem_function::equals_private): Add support for target and
22728 (sem_item_optimizer::merge_classes): Remove redundant function
22729 optimization flags comparison.
22730 * tree.h (target_opts_for_fn): New function.
22731
22732 2015-01-09 Tom de Vries <tom@codesourcery.com>
22733
22734 * omp-low.c (expand_omp_for_static_chunk): Fix assert.
22735
22736 2015-01-09 Kito Cheng <kito@0xlab.org>
22737
22738 PR rtl-optimization/64348
22739 * lra-constraints.c (split_reg): Fix caller-save store/restore
22740 instruction generation.
22741
22742 2015-01-08 John David Anglin <danglin@gcc.gnu.org>
22743
22744 PR gcov-profile/61790
22745 * gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
22746 long long. Fallback to int64_t if host doesn't have long long and
22747 use strtol if int64_t is long. Otherwise, use sscanf for conversion.
22748
22749 2015-01-08 Jakub Jelinek <jakub@redhat.com>
22750
22751 PR tree-optimization/63989
22752 * params.def (PARAM_MAX_TRACKED_STRLENS): Increment default
22753 from 1000 to 10000.
22754 * tree-ssa-strlen.c (get_strinfo): Moved earlier.
22755 (get_stridx): If we don't have a record for certain SSA_NAME,
22756 but it is POINTER_PLUS_EXPR of some SSA_NAME we do with
22757 constant offset, call get_stridx_plus_constant.
22758 (get_stridx_plus_constant): New function.
22759 (zero_length_string): Don't use get_stridx here.
22760
22761 PR target/55023
22762 PR middle-end/64388
22763 * dse.c (struct insn_info): Mention frame_read set also
22764 before reload for tail calls on some targets.
22765 (scan_insn): Revert 2014-12-22 change. Set frame_read
22766 also before reload for tail calls if
22767 HARD_FRAME_POINTER_IS_ARG_POINTER. Call add_wild_read
22768 instead of add_non_frame_wild_read for non-const/memset
22769 tail calls after reload.
22770
22771 2015-01-08 Jason Merrill <jason@redhat.com>
22772
22773 * ubsan.c (do_ubsan_in_current_function): New.
22774 (pass_ubsan::gate): Use it.
22775 * ubsan.h: Declare it.
22776 * convert.c (convert_to_integer): Use it.
22777
22778 2015-01-08 Jakub Jelinek <jakub@redhat.com>
22779
22780 PR target/64338
22781 * config/i386/i386.c (ix86_expand_int_movcc): Don't reverse
22782 compare_code when it is unconditionally overwritten afterwards.
22783 Use ix86_reverse_condition instead of reverse_condition. Don't
22784 change code if *reverse_condition* returned UNKNOWN and don't
22785 swap ct/cf and negate diff in that case.
22786
22787 2015-01-08 Mike Stump <mikestump@comcast.net>
22788
22789 * tsan.c (pass_tsan::gate): Add no_sanitize_thread support.
22790 (pass_tsan_O0::gate): Likewise.
22791 * extend.texi (Function Attributes): Add no_sanitize_thread
22792 documentation.
22793
22794 2015-01-08 Thomas Schwinge <thomas@codesourcery.com>
22795
22796 * builtins.def (DEF_GOMP_BUILTIN): Also consider flag_offload_abi
22797 for registering builtins.
22798 * config/i386/intelmic-mkoffload.c (prepare_target_image): Don't
22799 add -fopenmp to the argv_obstack used when invoking
22800 compile_for_target.
22801
22802 * config/i386/intelmic-mkoffload.c (compile_for_target): Always
22803 add "-m32" or "-m64" to argv_obstack.
22804 (generate_host_descr_file): Likewise, when invoking host_compiler.
22805 (main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
22806 ld.
22807
22808 2015-01-08 Oleg Endo <olegendo@gcc.gnu.org>
22809
22810 * config/sh/sh-mem.cc: Use constant as second operand when emitting
22811 tstsi_t insns.
22812
22813 2015-01-08 Oleg Endo <olegendo@gcc.gnu.org>
22814
22815 PR target/55212
22816 * config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
22817 constant load if constant operand fits into I08.
22818
22819 2015-01-08 Jakub Jelinek <jakub@redhat.com>
22820
22821 PR sanitizer/64336
22822 * tree.c (build2_stat): Fix up initialization of TREE_READONLY
22823 and TREE_THIS_VOLATILE for MEM_REFs.
22824 (build5_stat): Fix up initialization of TREE_READONLY and
22825 TREE_THIS_VOLATILE for TARGET_MEM_REFs.
22826
22827 2015-01-08 Kaz Kojima <kkojima@gcc.gnu.org>
22828
22829 PR target/64533
22830 * config/sh/sh.md (*addsi3_compact): Use u constraint instead
22831 of r for the second alternative of the destination operand.
22832
22833 2015-01-07 Segher Boessenkool <segher@kernel.crashing.org>
22834
22835 PR target/36557
22836 * config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.
22837
22838 2015-01-07 Sandra Loosemore <sandra@codesourcery.com>
22839
22840 * doc/invoke.texi ([-fvtable-verify]): Fix markup on option
22841 keywords.
22842 ([-fivar-visibility], [-fvisibility]): Likewise.
22843
22844 2015-01-07 Sandra Loosemore <sandra@codesourcery.com>
22845
22846 * doc/invoke.texi: Fix incorrect uses of @samp markup throughout
22847 the file where @code, @command, etc is more appropriate.
22848
22849 2015-01-06 Sandra Loosemore <sandra@codesourcery.com>
22850
22851 * doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
22852 of -mrecip= documentation.
22853
22854 2015-01-06 Michael Meissner <meissner@linux.vnet.ibm.com>
22855
22856 PR target/64505
22857 * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
22858 correct reload handler if -m32 -mpowerpc64 is used.
22859
22860 2015-01-06 Tom de Vries <tom@codesourcery.com>
22861
22862 * tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.
22863
22864 2015-01-08 Christian Bruel <christian.bruel@st.com>
22865
22866 PR target/64507
22867 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
22868
22869 2015-01-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
22870
22871 PR tree-optimization/63259
22872 * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
22873 if optab exists for 16bit byteswap.
22874
22875 2015-01-06 Jakub Jelinek <jakub@redhat.com>
22876
22877 * opts.c (common_handle_option): Add support for
22878 -fno-sanitize=all and -f{,no-}sanitize-recover=all.
22879 * doc/invoke.texi: Document -fno-sanitize=all,
22880 -f{,no-}sanitize-recover=all. Document that
22881 -fsanitize=float-cast-overflow is not enabled
22882 by -fsanitize=undefined. Fix up documentation
22883 of -f{,no-}sanitize-recover.
22884
22885 2015-01-06 Eric Botcazou <ebotcazou@adacore.com>
22886
22887 * config.gcc: Add Visium support.
22888 * configure.ac: Likewise.
22889 * configure: Regenerate.
22890 * doc/extend.texi (interrupt attribute): Add Visium.
22891 * doc/invoke.texi: Document Visium options.
22892 * doc/install.texi: Document Visium target.
22893 * doc/md.texi: Document Visium constraints.
22894 * common/config/visium: New directory.
22895 * config/visium: Likewise.
22896
22897 2015-01-05 Segher Boessenkool <segher@kernel.crashing.org>
22898
22899 * simplify-rtx.c (simplify_binary_operation_1): Handle more cases
22900 for the "(and X (ior (not X) Y) -> (and X Y)" transform.
22901
22902 2015-01-05 Segher Boessenkool <segher@kernel.crashing.org>
22903
22904 * combine.c (combine_validate_cost): Do not count the cost of a
22905 split I2 twice. Do not display it twice in the dump, either.
22906
22907 2015-01-05 Sandra Loosemore <sandra@codesourcery.com>
22908
22909 Revert parts of r219199.
22910 * doc/invoke.texi ([-Wliteral-suffix]): Restore markup on
22911 <inttypes.h>.
22912 ([-Wtraditional]): Restore markup on <limits.h>.
22913
22914 2015-01-05 Trevor Saunders <tsaunders@mozilla.com>
22915
22916 PR c++/31397
22917 * doc/invoke.texi: Document -Wsuggest-override.
22918
22919 2015-01-05 Radovan Obradovic <radovan.obradovic@imgtec.com>
22920
22921 PR rtl-optimization/64287
22922 * toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
22923 (process_options): Disable flag_ipa_ra if profiling.
22924
22925 2015-01-05 Eric Botcazou <ebotcazou@adacore.com>
22926
22927 * config/nds32/nds32-peephole2.md: Do not mention define_peephole.
22928
22929 2015-01-05 Max Filippov <jcmvbkbc@gmail.com>
22930
22931 * config/xtensa/xtensa.c (hwloop_optimize, hwloop_fail,
22932 hwloop_pattern_reg, xtensa_doloop_hooks, xtensa_reorg_loops):
22933 put under #if TARGET_LOOPS guard.
22934
22935 2015-01-05 Uros Bizjak <ubizjak@gmail.com>
22936
22937 * config/i386/i386.c (output_387_binary_op): Use std::swap.
22938
22939 2015-01-05 Oleg Endo <olegendo@gcc.gnu.org>
22940
22941 * rtlanal.c (refers_to_regno_p): Change return value from int to bool.
22942 * rtl.h (refers_to_regno_p): Add overload.
22943 * cse.c: Use it.
22944 * bt-load.c: Likewise.
22945 * combine.c: Likewise.
22946 * df-scan.c: Likewise.
22947 * sched-deps.c: Likewise.
22948 * config/s390/s390.c: Likewise.
22949 * config/m32r/m32r.c: Likewise.
22950 * config/rs6000/spe.md: Likewise.
22951 * config/rs6000/rs6000.c: Likewise.
22952 * config/pa/pa.c: Likewise.
22953 * config/stormy16/stormy16.c: Likewise.
22954 * config/cris/cris.c: Likewise.
22955 * config/arc/arc.md: Likewise.
22956 * config/arc/arc.c: Likewise.
22957 * config/sh/sh.md: Likewise.
22958 * config/sh/sh.c: Likewise.
22959 * config/frv/frv.c: Likewise.
22960
22961 2015-01-05 Jakub Jelinek <jakub@redhat.com>
22962
22963 PR sanitizer/64265
22964 * gimplify.c (gimplify_function_tree): Add TSAN_FUNC_EXIT internal
22965 call as cleanup of the whole body.
22966 * internal-fn.def (TSAN_FUNC_EXIT): New internal call.
22967 * tsan.c (replace_func_exit): New function.
22968 (instrument_func_exit): Moved earlier.
22969 (instrument_memory_accesses): Adjust TSAN_FUNC_EXIT internal calls.
22970 Call instrument_func_exit if no TSAN_FUNC_EXIT internal calls have
22971 been found.
22972 (tsan_pass): Don't call instrument_func_exit.
22973 * internal-fn.c (expand_TSAN_FUNC_EXIT): New function.
22974 * tree-inline.c (copy_bb): Drop TSAN_FUNC_EXIT internal calls during
22975 inlining.
22976
22977 PR sanitizer/64344
22978 * ubsan.h (ubsan_instrument_float_cast): Add ARG argument.
22979 * ubsan.c (ubsan_instrument_float_cast): Add ARG argument, pass
22980 it to libubsan handler instead of EXPR. Fold comparisons earlier,
22981 if the result is integer_zerop, return NULL_TREE.
22982 * convert.c (convert_to_integer): Pass expr as ARG.
22983
22984 PR tree-optimization/64465
22985 * tree-inline.c (redirect_all_calls): During inlining
22986 clean up EH stmts and EH edges if redirect_call_stmt_to_callee
22987 changed the stmt to a non-throwing call.
22988
22989 2015-01-05 Sandra Loosemore <sandra@codesourcery.com>
22990
22991 * doc/invoke.texi: Fix incorrect uses of @code, @option, @samp,
22992 etc markup throughout the file.
22993
22994 2015-01-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
22995
22996 Enable experimental TSAN support for Ada.
22997 * tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.
22998
22999 2015-01-05 Jakub Jelinek <jakub@redhat.com>
23000
23001 PR tree-optimization/64494
23002 * tree-ssa-loop-im.c (move_computations_dom_walker::before_dom): Also
23003 clear SSA_NAME_ANTI_RANGE_P flag.
23004
23005 2015-01-05 Marek Polacek <polacek@redhat.com>
23006
23007 * doc/extend.texi (Arrays of Length Zero): Add missing comma.
23008
23009 2015-01-05 Jakub Jelinek <jakub@redhat.com>
23010
23011 Update copyright years.
23012
23013 * gcc.c (process_command): Update copyright notice dates.
23014 * gcov-dump.c: Ditto.
23015 * gcov.c: Ditto.
23016 * doc/cpp.texi: Bump @copying's copyright year.
23017 * doc/cppinternals.texi: Ditto.
23018 * doc/gcc.texi: Ditto.
23019 * doc/gccint.texi: Ditto.
23020 * doc/gcov.texi: Ditto.
23021 * doc/install.texi: Ditto.
23022 * doc/invoke.texi: Ditto.
23023
23024 * auto-profile.c, auto-profile.h: Fix up Copyright line.
23025
23026 2015-01-04 Sandra Loosemore <sandra@codesourcery.com>
23027
23028 * doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
23029 verb tense, etc.
23030 ([-fvtable-verify], [-fvtv-debug]): Likewise.
23031 ([-Wabi]): Likewise.
23032 ([-fmessage-length]): Likewise.
23033 ([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
23034 ([-Wno-discarded-qualifiers]): Likewise.
23035 ([-Wnodiscarded-array-qualifiers]): Likewise.
23036 ([-Wno-virtual-move-assign]): Likewise.
23037 ([-fsanitize=address], [-fsanitize=thread]): Likewise.
23038 ([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
23039 ([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
23040 ([-fsanitize-undefined-trap-on-error]): Likewise.
23041 ([-floop-interchange]): Likewise.
23042 ([-ftree-coalesce-inlined-vars]): Likewise.
23043 ([-fvect-cost-model]): Likewise.
23044 ([-flto]): Likewise.
23045 ([--param]): Likewise.
23046 (Spec Files): Likewise.
23047 ([-mstrict-align]): Likewise.
23048 ([-mfix-cortex-a53-835769]): Likewise.
23049 ([-march], [-mtune]): Likewise.
23050 ([-mpic-register]): Likewise.
23051 ([-munaligned-access]): Likewise.
23052 ([-msp8]): Likewise.
23053 (EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
23054 (AVR Built-in Macros): Likewise.
23055 ([-mpreferred-stack-boundary]): Likewise.
23056 ([-mtune-crtl]): Likewise.
23057 ([-mashf]): Likewise.
23058 ([-mmcu=]): Likewise.
23059 ([-minrt]): Likewise.
23060 ([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
23061 ([-mupper-regs]): Likewise.
23062 ([-matomic-model]): Likewise.
23063 ([-mdiv]): Likewise.
23064 ([-mzdcbranch]): Likewise.
23065 ([-mdisable-callt]): Likewise.
23066 ([-msoft-float]): Likewise.
23067 ([-m8byte-align]): Likewise.
23068 ([-fstack-reuse]): Likewise.
23069
23070 2015-01-03 Sandra Loosemore <sandra@codesourcery.com>
23071
23072 * doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):
23073 Fix markup, light copy-editing.
23074 ([-fauto-profile]): Rewrite to fix formatting and content
23075 problems.
23076
23077 2015-01-03 Sandra Loosemore <sandra@codesourcery.com>
23078
23079 * doc/invoke.texi ([-fisolate-erroneous-paths-dereference]):
23080 Copy-edit description.
23081 ([-fisolate-erroneous-paths-attribute]): Likewise.
23082 * common.opt (fisolate-erroneous-paths-dereference):
23083 Copy-edit description.
23084 (fisolate-erroneous-paths-attribute): Likewise.
23085
23086 2015-01-03 Sandra Loosemore <sandra@codesourcery.com>
23087
23088 * doc/invoke.texi ([-fsemantic-interposition]): Fix typos and
23089 tidy grammar.
23090
23091 2015-01-03 Sandra Loosemore <sandra@codesourcery.com>
23092
23093 * doc/invoke.texi ([-fplan9-extensions]): Add/fix @opindex.
23094 ([-fvtv-debug]): Likewise.
23095 ([-Wc++-compat]): Likewise.
23096 ([-Wc++11-compat]): Likewise.
23097 ([-Wc++14-compat]): Likewise.
23098 ([-Wno-sized-deallocation]): Likewise.
23099 ([-femit-class-debug-always]): Likewise.
23100 ([-femit-struct-debug-detailed]): Likewise.
23101 ([-fno-keep-inline-dllexport]): Likewise.
23102 ([-fira-algorithm]): Likewise.
23103 ([-fira-region]): Likewise.
23104 ([-flra-remat]): Likewise.
23105 ([-fipa-ra]): Likewise.
23106 ([-fhoist-adjacent-loads]): Likewise.
23107 ([-fisolate-erroneous-paths-dereference]): Likewise.
23108 ([-fisolate-erroneous-paths-attribute]): Likewise.
23109 ([-ftree-switch-conversion]): Likewise.
23110 ([-ftree-tail-merge]): Likewise.
23111 ([-ftree-loop-if-convert]): Likewise.
23112 ([-ftree-loop-if-convert-stores]): Likewise.
23113 ([-ftree-loop-distribution]): Likewise.
23114 ([-ftree-loop-distribute-patterns]): Likewise.
23115 ([-flto-compression-level]): Likewise.
23116 ([-flto-report]): Likewise.
23117 ([-flto-report-wpa]): Likewise.
23118 ([-fuse-linker-plugin]): Likewise.
23119 ([-mfix-cortex-a53-835769]): Likewise.
23120 ([-mno-fix-cortex-a53-835769]): Likewise.
23121 ([-mmmx]...[-mno-3dnow]): Remove the -mno- forms from the
23122 explicit listing; add a note to the discussion indicating they
23123 exist. Reorder table to group similar options. Add missing
23124 @opindex entries. Add @need commands throughout the table to
23125 allow it to be split across multiple pages.
23126 ([-m8bit-idiv]): Fix @opindex.
23127 ([-mavx256-split-unaligned-load]): Likewise.
23128 ([-mavx256-split-unaligned-store]): Likewise.
23129 ([-mstack-protector-guard]): Likewise.
23130 ([-mcpu=]): Likewise.
23131 ([-mcpu]): Likewise.
23132 ([-mpointer-size=]): Likewise.
23133
23134 2015-01-03 John David Anglin <danglin@gcc.gnu.org>
23135
23136 * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
23137 instead of `m' constraint. Likewise for unnamed movb comparison
23138 patterns using reg_before_reload_operand predicate.
23139 * config/pa/predicates.md (reg_before_reload_operand): Tighten
23140 predicate to reject register index and LO_SUM DLT memory forms
23141 after reload.
23142
23143 2015-01-02 Sandra Loosemore <sandra@codesourcery.com>
23144
23145 * doc/invoke.texi (Option Summary): Fix spelling of
23146 -fdevirtualize-at-ltrans.
23147 ([-fdevirtualize]): Fix markup.
23148 ([-fdevirtualize-speculatively]): Fix typo.
23149 ([-fdevirtualize-at-ltrans]): Likewise. Make description less
23150 implementor-speaky.
23151 * common.opt (fdevirtualize-at-ltrans): Likewise.
23152 * ipa-devirt.c: Fix typos in comments throughout the file.
23153 (ipa_devirt): Fix typos in format strings for dump output.
23154
23155 2015-01-02 Sandra Loosemore <sandra@codesourcery.com>
23156
23157 * doc/invoke.texi ([-fopt-info]): Fix markup, consolidate
23158 discussion of defaults, light copy-editing.
23159
23160 2015-01-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
23161
23162 * tsan.c (instrument_expr): corrected previous checkin.
23163
23164 2015-01-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
23165
23166 Instrument bit field and unaligned accesses for TSAN.
23167 * sanitizer.def (BUILT_IN_TSAN_READ_RANGE): New built-in function.
23168 (BUILT_IN_TSAN_WRITE_RANGE): New built-in function.
23169 * tsan.c (instrument_expr): Handle COMPONENT_REF and BIT_FIELD_REF.
23170 Use BUILT_IN_TSAN_READ_RANGE and BUILT_IN_TSAN_WRITE_RANGE for
23171 unaligned memory regions.
23172
23173 2015-01-01 Anthony Green <green@moxielogic.com>
23174
23175 * config/moxie/predicates.md (moxie_general_movsrc_operand):
23176 Restrict move source register offsets to 16 bits.
23177 \f
23178 Copyright (C) 2015 Free Software Foundation, Inc.
23179
23180 Copying and distribution of this file, with or without modification,
23181 are permitted in any medium without royalty provided the copyright
23182 notice and this notice are preserved.