]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
Change use to type-based pool allocator in regcprop.c.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
fe4549c4 12015-06-01 Martin Liska <mliska@suse.cz>
2
3 * regcprop.c (free_debug_insn_changes): Use new type-based pool allocator.
4 (replace_oldest_value_reg): Likewise.
5 (pass_cprop_hardreg::execute): Likewise.
6
91211101 72015-06-01 Martin Liska <mliska@suse.cz>
8
9 * ira-build.c (initiate_cost_vectors): Use new type-based pool allocator.
10 (ira_allocate_cost_vector): Likewise.
11 (ira_free_cost_vector): Likewise.
12 (finish_cost_vectors): Likewise.
13
e26b6f42 142015-06-01 Martin Liska <mliska@suse.cz>
15
16 * sel-sched-ir.c (alloc_sched_pools): Use new type-based pool allocator.
17 (free_sched_pools): Likewise.
18 * sel-sched-ir.h (_list_alloc): Likewise.
19 (_list_remove): Likewise.
20
41003862 212015-06-01 Martin Liska <mliska@suse.cz>
22
23 * stmt.c (add_case_node): Use new type-based pool allocator.
24 (expand_case): Likewise.
25 (expand_sjlj_dispatch_table): Likewise.
26
d8e7268c 272015-06-01 Martin Liska <mliska@suse.cz>
28
29 * tree-ssa-math-opts.c (occ_new): Use new type-based pool allocator.
30 (free_bb): Likewise.
31 (pass_cse_reciprocals::execute): Likewise.
32
317998ba 332015-06-01 Martin Liska <mliska@suse.cz>
34
35 * tree-sra.c (sra_initialize): Use new type-based pool allocator.
36 (sra_deinitialize) Likewise.
37 (create_access_1) Likewise.
38 (build_accesses_from_assign) Likewise.
39 (create_artificial_child_access) Likewise.
40
55c5ac9f 412015-06-01 Martin Liska <mliska@suse.cz>
42
43 * dse.c (get_group_info):Use new type-based pool allocator.
44 (dse_step0) Likewise.
45 (free_store_info) Likewise.
46 (delete_dead_store_insn) Likewise.
47 (free_read_records) Likewise.
48 (record_store) Likewise.
49 (replace_read) Likewise.
50 (check_mem_read_rtx) Likewise.
51 (scan_insn) Likewise.
52 (dse_step1) Likewise.
53 (dse_step7) Likewise.
54
399ea05d 552015-06-01 Martin Liska <mliska@suse.cz>
56
57 * df-scan.c (struct df_scan_problem_data):Use new type-based pool allocator.
58 (df_scan_free_internal) Likewise.
59 (df_scan_alloc) Likewise.
60 (df_grow_reg_info) Likewise.
61 (df_free_ref) Likewise.
62 (df_insn_create_insn_record) Likewise.
63 (df_mw_hardreg_chain_delete) Likewise.
64 (df_insn_info_delete) Likewise.
65 (df_free_collection_rec) Likewise.
66 (df_mw_hardreg_chain_delete_eq_uses) Likewise.
67 (df_sort_and_compress_mws) Likewise.
68 (df_ref_create_structure) Likewise.
69 (df_ref_record) Likewise.
70
a964de4b 712015-06-01 Martin Liska <mliska@suse.cz>
72
73 * df-problems.c (df_chain_create):Use new type-based pool allocator.
74 (df_chain_unlink_1) Likewise.
75 (df_chain_unlink) Likewise.
76 (df_chain_remove_problem) Likewise.
77 (df_chain_alloc) Likewise.
78 (df_chain_free) Likewise.
79 * df.h (struct dataflow) Likewise.
80
f7d27fdc 812015-06-01 Martin Liska <mliska@suse.cz>
82
83 * cselib.c (new_elt_list):Use new type-based pool allocator.
84 (new_elt_loc_list) Likewise.
85 (unchain_one_elt_list) Likewise.
86 (unchain_one_elt_loc_list) Likewise.
87 (unchain_one_value) Likewise.
88 (new_cselib_val) Likewise.
89 (cselib_init) Likewise.
90 (cselib_finish) Likewise.
91
f56b5538 922015-06-01 Martin Liska <mliska@suse.cz>
93
94 * config/sh/sh.c (add_constant):Use new type-based pool allocator.
95 (sh_reorg) Likewise.
96
1394066b 972015-06-01 Martin Liska <mliska@suse.cz>
98
99 * cfg.c (initialize_original_copy_tables):Use new type-based pool allocator.
100 (free_original_copy_tables) Likewise.
101 (copy_original_table_clear) Likewise.
102 (copy_original_table_set) Likewise.
103
e815c2c5 1042015-06-01 Martin Liska <mliska@suse.cz>
105
106 * asan.c (asan_mem_ref_get_alloc_pool):Use new type-based pool allocator.
107 (asan_mem_ref_new) Likewise.
108 (free_mem_ref_resources) Likewise.
109
9789d67d 1102015-06-01 Martin Liska <mliska@suse.cz>
111
112 * var-tracking.c (variable_htab_free):Use new type-based pool allocator.
113 (attrs_list_clear) Likewise.
114 (attrs_list_insert) Likewise.
115 (attrs_list_copy) Likewise.
116 (shared_hash_unshare) Likewise.
117 (shared_hash_destroy) Likewise.
118 (unshare_variable) Likewise.
119 (var_reg_delete_and_set) Likewise.
120 (var_reg_delete) Likewise.
121 (var_regno_delete) Likewise.
122 (drop_overlapping_mem_locs) Likewise.
123 (variable_union) Likewise.
124 (insert_into_intersection) Likewise.
125 (canonicalize_values_star) Likewise.
126 (variable_merge_over_cur) Likewise.
127 (dataflow_set_merge) Likewise.
128 (remove_duplicate_values) Likewise.
129 (variable_post_merge_new_vals) Likewise.
130 (dataflow_set_preserve_mem_locs) Likewise.
131 (dataflow_set_remove_mem_locs) Likewise.
132 (variable_from_dropped) Likewise.
133 (variable_was_changed) Likewise.
134 (set_slot_part) Likewise.
135 (clobber_slot_part) Likewise.
136 (delete_slot_part) Likewise.
137 (loc_exp_insert_dep) Likewise.
138 (notify_dependents_of_changed_value) Likewise.
139 (emit_notes_for_differences_1) Likewise.
140 (vt_emit_notes) Likewise.
141 (vt_initialize) Likewise.
142 (vt_finalize) Likewise.
143
fff2cf25 1442015-06-01 Martin Liska <mliska@suse.cz>
145
146 * ira-color.c (init_update_cost_records):Use new type-based pool allocator.
147 (get_update_cost_record) Likewise.
148 (free_update_cost_record_list) Likewise.
149 (finish_update_cost_records) Likewise.
150 (initiate_cost_update) Likewise.
151
16f90944 1522015-06-01 Martin Liska <mliska@suse.cz>
153
154 * lra.c (init_insn_regs): Use new type-based pool allocator.
155 (new_insn_reg) Likewise.
156 (free_insn_reg) Likewise.
157 (free_insn_regs) Likewise.
158 (finish_insn_regs) Likewise.
159 (init_insn_recog_data) Likewise.
160 (init_reg_info) Likewise.
161 (finish_reg_info) Likewise.
162 (lra_free_copies) Likewise.
163 (lra_create_copy) Likewise.
164 (invalidate_insn_data_regno_info) Likewise.
165
a940269d 1662015-06-01 Martin Liska <mliska@suse.cz>
167
168 * lra-lives.c (free_live_range): Use new type-based pool allocator.
169 (free_live_range_list) Likewise.
170 (create_live_range) Likewise.
171 (copy_live_range) Likewise.
172 (lra_merge_live_ranges) Likewise.
173 (remove_some_program_points_and_update_live_ranges) Likewise.
174 (lra_live_ranges_init) Likewise.
175 (lra_live_ranges_finish) Likewise.
176
63c440eb 1772015-06-01 Martin Liska <mliska@suse.cz>
178
179 * et-forest.c (et_new_occ): Use new type-based pool allocator.
180 (et_new_tree): Likewise.
181 (et_free_tree): Likewise.
182 (et_free_tree_force): Likewise.
183 (et_free_pools): Likewise.
184 (et_split): Likewise.
185
419f2d62 1862015-06-01 Martin Liska <mliska@suse.cz>
187
188 * alloc-pool.c (struct alloc_pool_descriptor): Move definition
189 to header file.
190 * alloc-pool.h (pool_allocator::pool_allocator): New function.
191 (pool_allocator::release): Likewise.
192 (inline pool_allocator::release_if_empty): Likewise.
193 (inline pool_allocator::~pool_allocator): Likewise.
194 (pool_allocator::allocate): Likewise.
195 (pool_allocator::remove): Likewise.
196
6da3491c 1972015-06-01 James Greenhalgh <james.greenhalgh@arm.com>
198
199 * sched-deps.c (sched_analyze_2): Replace fuseable with fusible
200 in comment.
201
5bf8e0f8 2022015-06-01 James Greenhalgh <james.greenhalgh@arm.com>
203
204 * gcc/config/arm/arm-protos.h (tune_params): Rename fuseable_ops
205 to fusible_ops.
206 * gcc/config/arm/arm.c (arm_print_tune_info): Likewise.
207 (arm_macro_fusion_p): Likewise.
208 (arm_macro_fusion_pair_p): Likewise.
209
37ef9e23 2102015-06-01 James Greenhalgh <james.greenhalgh@arm.com>
211
212 * config/aarch64/aarch64-protos.h (tune_params): Rename
213 fuseable_ops to fusible_ops.
214 * config/aarch64/aarch64.c (generic_tunings): Rename
215 fuseable_ops to fusible_ops.
216 (cortexa53_tunings): Likewise.
217 (cortexa57_tunings): Likewise.
218 (thunderx_tunings): Likewise.
219 (xgene1_tunings): Likewise.
220 (aarch64_macro_fusion_p): Likewise.
221 (aarch64_macro_fusion_pair_p): Likewise.
222
db249f37 2232015-06-01 Dominik Vogt <vogt@linux.vnet.ibm.com>
224
225 * config/s390/driver-native.c: New file.
226 * config/s390/x-native: New file.
227 * config.host: Add new files for s390.
228 * config/s390/s390.h (DRIVER_SELF_SPECS): Add support for -mtune=native
229 and -march=native
230 * config.gcc: Likewise.
231 * config/s390/s390.opt (march): Likewise; add PROCESSOR_NATIVE
232 * config/s390/s390-opts.h (enum processor_type): Ditto.
233 * config/s390/s390.c (s390_option_override): Catch unhandled
234 PROCESSOR_NATIVE
235
100c2304 2362015-06-01 Ilya Enkovich <ilya.enkovich@intel.com>
237
238 PR target/65527
239 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Add
240 redirection for instrumented calls.
241 * lto-wrapper.c (merge_and_complain): Merge -fcheck-pointer-bounds.
242 (append_compiler_options): Append -fcheck-pointer-bounds.
243 * tree-chkp.h (chkp_copy_call_skip_bounds): New.
244 (chkp_redirect_edge): New.
245 * tree-chkp.c (chkp_copy_call_skip_bounds): New.
246 (chkp_redirect_edge): New.
247
0906dd56 2482015-06-01 Richard Biener <rguenther@suse.de>
249
250 PR tree-optimization/66280
251 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Fix pattern
252 def-use walking.
253
b9432776 2542015-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
255
256 * config/aarch64/aarch64.md
257 (*<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Change type to
258 logic_shift_imm.
259
7ebb8c82 2602015-06-01 Eric Botcazou <ebotcazou@adacore.com>
261
262 * config/i386/winnt.c (i386_pe_encode_section_info) <FUNCTION_DECL>:
263 Remove obsolete kludge.
264
e86e65ef 2652015-06-01 Richard Biener <rguenther@suse.de>
266
267 * tree-ssa-reassoc.c (get_rank): Simplify.
268
ba637bab 2692015-05-31 H.J. Lu <hongjiu.lu@intel.com>
270
271 * configure.ac (NO_PIE_CFLAGS): Check CXXFLAGS instead of CFLAGS.
272 * configure: Regenerated.
273
1e0b903d 2742015-05-31 Mikhail Maltsev <maltsevm@gmail.com>
275
276 * config/cris/cris.h (CRIS_ARCH_CPP_DEFAULT): Fix C++11 compatibility
277 issue (add space between string literal and macro).
278 * config/i386/mingw32.h (REAL_LIBGCC_SPEC): Likewise.
279
4341f847 2802015-05-30 Andreas Schwab <schwab@linux-m68k.org>
281
282 * config/m68k/m68k.h (ASM_PCREL_SPEC): Pass --pcrel also for
283 implict or explicit -fPIE or -fpie.
284
ef1a5efb 2852015-05-30 Mike Frysinger <vapier@gentoo.org>
286
287 * gcc/config/alpha/elf.h (ASM_SPEC): Add %{mcpu=*:-m%*}.
288
d342df18 2892015-05-28 DJ Delorie <dj@redhat.com>
290
291 * expmed.c (extract_bit_field_1): Avoid clobbering a
292 yet-to-be-used base/index register.
293
fdc195e1 2942015-05-30 Jan Hubicka <hubicka@ucw.cz>
295
296 * alias.c (alias_set_entry_d): Add is_pointer and has_pointer.
297 (alias_stats): Add num_universal.
298 (alias_set_subset_of): Special case pointers; be ready for NULL
299 children.
300 (alias_sets_conflict_p): Special case pointers; be ready for NULL
301 children.
302 (init_alias_set_entry): Break out from ...
303 (record_alias_subset): ... here; propagate new fields;
304 allocate children only when really needed.
305 (get_alias_set): Do less generous pointer globbing.
306 (dump_alias_stats_in_alias_c): Update statistics.
307
846754b6 3082015-05-30 Alan Modra <amodra@gmail.com>
309
310 * config/rs6000/rs6000.c (split_stack_arg_pointer_used_p): Scan
311 correct block for use of r12.
312 (rs6000_expand_split_stack_prologue): Error on r29 asm global reg.
313
8ae6e291 3142015-05-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
315
316 PR target/66215
317 * config/s390/s390.c (s390_reorg): Fix placement of post-label NOPs
318 with -mhotpatch=.
319
2f439a71 3202015-05-29 Jakub Jelinek <jakub@redhat.com>
321
322 PR tree-optimization/66142
323 * tree-if-conv.c (if_convertible_phi_p): Don't give up on
324 virtual phis that feed themselves.
325
874cacba 3262015-05-29 Richard Biener <rguenther@suse.de>
327
328 PR tree-optimization/66314
329 * tree-ssa-threadupdate.c (create_block_for_threading): Add
330 parameter that says which loop the new block belongs to.
331 (ssa_create_duplicates): Blocks duplicated for the threaded
332 path belong to the loop of the thread destination.
333
79d46209 3342015-05-29 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
335
336 * config/arm/neon-testgen.ml (emit_epilogue): Remove manual call
337 to cleanup-saved-temps.
338 * doc/sourcebuild.texi (Clean up generated test files): Expand
339 introduction.
340 (dg-keep-saved-temps): Document new proc.
341 (cleanup-ipa-dump, cleanup-rtl-dump, cleanup-tree-dump,
342 cleanup-saved-temps): Remove.
343
93da3efe 3442015-05-28 Andreas Tobler <andreast@gcc.gnu.org>
345
346 * configure.ac: Move the atoll check from AC_CHECK_FUNCS to
347 gcc_AC_CHECK_DECLS.
348 * configure: Regenerate.
349
774b89af 3502015-05-28 Mike Frysinger <vapier@gentoo.org>
351
352 * config/nios2/linux.h (CPP_SPEC): Define.
353
2a524945 3542015-05-28 Mike Frysinger <vapier@gentoo.org>
355
356 * config/microblaze/linux.h (CPP_SPEC): Define.
357
6fded034 3582015-05-28 Mike Frysinger <vapier@gentoo.org>
359
360 * config/pa/pa-linux.h (CPP_SPEC): Change so -D_REENTRANT is used when
361 -pthread is specified.
362
34563054 3632015-05-28 Richard Biener <rguenther@suse.de>
364
365 * tree-vect-loop.c (vect_fixup_reduc_chain): New function.
366 (vect_fixup_scalar_cycles_with_patterns): Likewise.
367 (vect_analyze_loop_2): Call vect_fixup_scalar_cycles_with_patterns
368 after pattern recog.
369 (vect_create_epilog_for_reduction): Properly handle reductions
370 with patterns.
371 (vectorizable_reduction): Likewise.
372 * tree-vect-slp.c (vect_analyze_slp_instance): Properly mark
373 reduction chains.
374 (vect_get_constant_vectors): Create the correct number of
375 initial values for reductions.
376 (vect_schedule_slp_instance): Handle reduction chains that are
377 type changing properly.
378 * tree-vect-stmts.c (vect_analyze_stmt): Adjust.
379
6325605f 3802015-05-28 Richard Biener <rguenther@suse.de>
381
382 PR tree-optimization/66142
383 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle non-GIMPLE
384 values better in memcpy destination handling. Handle non-aliasing
385 we discover here.
386
598bdc16 3872015-05-28 Lawrence Velázquez <vq@larryv.me>
388
389 PR target/63810
390 * config/darwin-c.c (version_components): New global enum.
391 (parse_version, version_as_legacy_macro)
392 (version_as_modern_macro, macosx_version_as_macro): New functions.
393 (version_as_macro): Remove.
394 (darwin_cpp_builtins): Use new function.
395
86181b33 3962015-05-28 H.J. Lu <hongjiu.lu@intel.com>
397
398 * builtins.c (expand_builtin_acc_on_device): Mark parameters
399 with ATTRIBUTE_UNUSED.
400
071f2c66 4012015-05-28 Julian Brown <julian@codesourcery.com>
402
403 PR libgomp/65742
404
405 * builtins.c (expand_builtin_acc_on_device): Don't use open-coded
406 sequence for !ACCEL_COMPILER.
407
75759166 4082015-05-28 Nick Clifton <nickc@redhat.com>
409
410 * config/rx/rx.c (push_regs): New function. Extracts code from...
411 (rx_expand_prologue): ... here. Use push_regs to push even small
412 spans of registers.
413 (pop_regs): New function.
414 (rx_expand_epilogue): Use pop_regs to pop even small spans of
415 registers.
416
31bf2c9a 4172015-05-28 Richard Biener <rguenther@suse.de>
418
419 * tree-vectorizer.h (struct _slp_instance): Remove body_cost_vec
420 member.
421 (SLP_INSTANCE_BODY_COST_VEC): Remove.
422 (vect_update_slp_costs_according_to_vf): Likewise.
423 (vect_slp_analyze_operations): Update prototype.
424 * tree-vect-loop.c (vect_analyze_loop_2): Remove call to
425 vect_update_slp_costs_according_to_vf, adjust.
426 * tree-vect-slp.c (vect_free_slp_instance): Adjust.
427 (vect_analyze_slp_cost_1): Likewise.
428 (vect_analyze_slp_cost): Likewise. Properly deal with
429 widening reduction ops. Commit body costs.
430 (vect_analyze_slp_instance): Adjust. Do not analyze SLP
431 cost for loops from here.
432 (vect_slp_analyze_operations): But do it from here when
433 the vectorization factor is known and stmts are analyzed.
434 (vect_bb_vectorization_profitable_p): Simplify.
435 (vect_slp_analyze_bb_1): Do not compute SLP cost here.
436 (vect_update_slp_costs_according_to_vf): Remove.
437
e9abca4f 4382015-05-27 Magnus Granberg <zorry@gentoo.org>
439 H.J. Lu <hongjiu.lu@intel.com>
440
441 * Makefile.in (COMPILER): Add @NO_PIE_CFLAGS@.
442 (BUILD_CFLAGS): Likewise.
443 (BUILD_CXXFLAGS): Likewise.
444 (LINKER): Add @NO_PIE_FLAG@.
445 (BUILD_LDFLAGS): Likewise.
446 (libgcc.mvars): Set NO_PIE_CFLAGS to -fno-PIE for
447 --enable-default-pie.
448 * common.opt (fPIE): Initialize to -1.
449 (fpie): Likewise.
450 (no-pie): New option.
451 (pie): Replace "Negative(shared)" with "Negative(no-pie)".
452 * configure.ac: Add --enable-default-pie.
453 (NO_PIE_CFLAGS): New. Check if -fno-PIE works. AC_SUBST.
454 (NO_PIE_FLAG): New. Check if -no-pie works. AC_SUBST.
455 * defaults.h (DEFAULT_FLAG_PIE): New. Default PIE to -fPIE.
456 * gcc.c (NO_PIE_SPEC): New.
457 (PIE_SPEC): Likewise.
458 (NO_FPIE1_SPEC): Likewise.
459 (FPIE1_SPEC): Likewise.
460 (NO_FPIE2_SPEC): Likewise.
461 (FPIE2_SPEC): Likewise.
462 (NO_FPIE2_SPEC): Likewise.
463 (FPIE_SPEC): Likewise.
464 (NO_FPIE_SPEC): Likewise.
465 (NO_FPIC1_SPEC): Likewise.
466 (FPIC1_SPEC): Likewise.
467 (NO_FPIC2_SPEC): Likewise.
468 (FPIC2_SPEC): Likewise.
469 (NO_FPIC2_SPEC): Likewise.
470 (FPIC_SPEC): Likewise.
471 (NO_FPIC_SPEC): Likewise.
472 (NO_FPIE1_AND_FPIC1_SPEC): Likewise.
473 (FPIE1_OR_FPIC1_SPEC): Likewise.
474 (NO_FPIE2_AND_FPIC2_SPEC): Likewise.
475 (FPIE2_OR_FPIC2_SPEC): Likewise.
476 (NO_FPIE_AND_FPIC_SPEC): Likewise.
477 (FPIE_OR_FPIC_SPEC): Likewise.
478 (LD_PIE_SPEC): Likewise.
479 (LINK_PIE_SPEC): Handle -no-pie. Use PIE_SPEC and LD_PIE_SPEC.
480 * opts.c (finish_options): Update opts->x_flag_pie if it is -1.
481 * config/darwin.h (PIE_SPEC): Renamed to ...
482 (DARWIN_PIE_SPEC): This.
483 (LINK_SPEC): Replace PIE_SPEC with DARWIN_PIE_SPEC.
484 * config/darwin9.h (PIE_SPEC): Renamed to ...
485 (DARWIN_PIE_SPEC): This.
486 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Use
487 PIE_SPEC and NO_PIE_SPEC if HAVE_LD_PIE is defined.
488 * config/openbsd.h (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and
489 FPIE2_OR_FPIC2_SPEC.
490 * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
491 * config/m68k/openbsd.h (ASM_SPEC): Likewise.
492 * gcc/config/sol2.h (ASM_PIC_SPEC): Likewise.
493 * config/arm/freebsd.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
494 * config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
495 * config/arm/semi.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
496 * config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
497 * config/m32r/m32r.h (ASM_SPEC): Likewise.
498 * config/m68k/uclinux.h (DRIVER_SELF_SPECS): Likewise.
499 * config/rs6000/linux64.h (ASM_SPEC32): Likewise.
500 * config/rs6000/sysv4.h (ASM_SPEC): Likewise.
501 * config/sparc/freebsd.h (ASM_SPEC): Likewise.
502 * config/sparc/linux.h (ASM_SPEC): Likewise.
503 * config/sparc/linux64.h (ASM_SPEC): Likewise.
504 * config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
505 * config/sparc/openbsd64.h (ASM_SPEC): Likewise.
506 * config/sparc/sp-elf.h (ASM_SPEC): Likewise.
507 * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
508 * config/sparc/sparc.h (ASM_SPEC): Likewise.
509 * config/sparc/sysv4.h (ASM_SPEC): Likewise.
510 * config/sparc/vxworks.h (ASM_SPEC): Likewise.
511 * config/c6x/elf-common.h (ASM_SPEC): Use NO_FPIC2_SPEC,
512 FPIC2_SPEC, FPIC1_SPEC and FPIC2_SPEC.
513 * config/c6x/uclinux-elf.h (LINK_SPEC): Use FPIE_SPEC.
514 * config/frv/frv.h (DRIVER_SELF_SPECS): Use FPIC_SPEC,
515 NO_FPIC_SPEC and NO_FPIE1_AND_FPIC1_SPEC.
516 (ASM_SPEC): Use FPIE1_OR_FPIC1_SPEC and FPIE2_OR_FPIC2_SPEC.
517 * config/m68k/m68k.h (ASM_PCREL_SPEC): Use FPIC_SPEC and
518 NO_FPIC_SPEC.
519 * config/mips/gnu-user.h (NO_SHARED_SPECS): Use
520 NO_FPIE_AND_FPIC_SPEC.
521 * config/mips/vxworks.h (SUBTARGET_ASM_SPEC): Use FPIC_SPEC.
522 * config/rs6000/freebsd64.h (ASM_SPEC32): Likewise.
523 * config/rs6000/vxworks.h (ASM_SPEC): Likewise.
524 * config/vax/linux.h (ASM_SPEC): Likewise.
525 * doc/install.texi: Document --enable-default-pie.
526 * doc/invoke.texi: Document -no-pie.
527 * config.in: Regenerated.
528 * configure: Likewise.
529
734ac122 5302015-05-28 Thomas Preud'homme <thomas.preudhomme@arm.com>
531
532 PR rtl-optimization/66168
533 * loop-invariant.c (move_invariant_reg): Pass dest rather than reg to
534 can_move_invariant_reg.
535
bcfa200d 5362015-05-27 John David Anglin <danglin@gcc.gnu.org>
537
59ed0a0f 538 PR target/66148
539 * config/pa/pa.c (pa_emit_move_sequence): Correct placement of
540 REG_EQUAL note when doing insert.
541
bcfa200d 542 * config/pa/pa.c (pa_print_operand): Use HOST_WIDE_INT_PRINT_DEC
543 instead of "%d" for 'o' operand.
544
9521eda4 5452015-05-27 Nathan Sidwell <nathan@acm.org>
546
547 PR c++/66270
548 * tree.c (build_pointer_type_for_mode): Canonical type does not
549 inherit can_alias_all.
550 (build_reference_type_for_mode): Likewise.
551
e0b2f2ab 5522015-05-27 Eric Botcazou <ebotcazou@adacore.com>
553
554 * expr.h (array_at_struct_end_p): Move to...
555 (array_ref_element_size): Likewise.
556 (component_ref_field_offset): Likewise.
557 * tree.h (array_ref_element_size): ...here.
558 (array_at_struct_end_p): Likewise.
559 (component_ref_field_offset): Likewise.
560 * expr.c (array_ref_element_size): Move to...
561 (array_ref_low_bound): Likewise.
562 (array_at_struct_end_p): Likewise.
563 (array_ref_up_bound): Likewise.
564 (component_ref_field_offset): Likewise.
565 * tree.c (array_ref_element_size): ...here.
566 (array_ref_low_bound): Likewise.
567 (array_ref_up_bound): Likewise.
568 (array_at_struct_end_p): Likewise.
569 (component_ref_field_offset): Likewise.
570
b3ff21cf 5712015-05-27 Gregor Richards <gregor.richards@uwaterloo.ca>
572 Szabolcs Nagy <szabolcs.nagy@arm.com>
573
574 * config/aarch64/aarch64-linux.h (MUSL_DYNAMIC_LINKER): Define.
575
a487af0e 5762015-05-27 Jason Merrill <jason@redhat.com>
577
578 PR bootstrap/66304
579 * configure.ac: Use ACX_PROG_CXX_WARNING_OPTS,
580 ACX_PROG_CXX_WARNING_ALMOST_PEDANTIC, and
581 ACX_PROG_CXX_WARNINGS_ARE_ERRORS.
582
53d04190 5832015-05-22 Aditya Kumar <hiraditya@msn.com>
584
f3942525 585 * auto-profile.c (afdo_calculate_branch_prob): Break once has_sample
586 is true.
587
53d04190 588 * statistics.c (statistics_fini_pass): Print pass name.
589
f146c442 5902015-05-27 Richard Biener <rguenther@suse.de>
591
592 PR tree-optimization/66272
593 Revert parts of
594 2014-08-15 Richard Biener <rguenther@suse.de>
595
596 PR tree-optimization/62031
597 * tree-data-ref.c (dr_analyze_indices): Do not set
598 DR_UNCONSTRAINED_BASE.
599 (dr_may_alias_p): All indirect accesses have to go the
600 formerly DR_UNCONSTRAINED_BASE path.
601 * tree-data-ref.h (struct indices): Remove
602 unconstrained_base member.
603 (DR_UNCONSTRAINED_BASE): Remove.
604
a9de8605 6052015-05-27 Aldy Hernandez <aldyh@redhat.com>
606
607 * dwarf2out.c: Remove block_map.
608 (gen_call_site_die): Replace block_map use with BLOCK_DIE.
609 (gen_lexical_block_die): Same.
610 (dwarf2out_function_decl): Remove block_map use.
611 (dwarf2out_c_finalize): Same.
612 * tree-core.h (struct tree_block): Add die field.
613 * tree.h (BLOCK_DIE): New.
614
a95e5776 6152015-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
616
617 PR target/65358
618 * expr.c (memory_load_overlap): New function.
619 (emit_push_insn): When pushing partial args to the stack would
620 clobber the register part load the overlapping part into a pseudo
621 and put it into the hard reg after pushing. Change return type
622 to bool. Add bool argument.
623 * expr.h (emit_push_insn): Change return type to bool.
624 Add bool argument.
625 * calls.c (expand_call): Cancel sibcall optimization when encountering
626 partial argument on targets with ARGS_GROW_DOWNWARD and
627 !STACK_GROWS_DOWNWARD.
628 (emit_library_call_value_1): Update callsite of emit_push_insn.
629 (store_one_arg): Likewise.
630
de799bd0 6312015-05-27 Gregor Richards <gregor.richards@uwaterloo.ca>
632
633 * config/arm/linux-eabi.h (MUSL_DYNAMIC_LINKER): Define.
634
0ff42de5 6352015-05-27 Martin Liska <mliska@suse.cz>
636
637 * Makefile.in: Add additional dependencies related to memory report
638 enhancement.
639 * alloc-pool.c (allocate_pool_descriptor): Use new ctor.
640 * bitmap.c (struct bitmap_descriptor_d): Remove.
641 (struct loc): Likewise.
642 (struct bitmap_desc_hasher): Likewise.
643 (bitmap_desc_hasher::hash): Likewise.
644 (bitmap_desc_hasher::equal): Likewise.
645 (get_bitmap_descriptor): Likewise.
646 (bitmap_register): User new memory descriptor API.
647 (register_overhead): Likewise.
648 (bitmap_find_bit): Register nsearches and search_iter statistics.
649 (struct bitmap_output_info): Remove.
650 (print_statistics): Likewise.
651 (dump_bitmap_statistics): Use new memory descriptor.
652 * bitmap.h (struct bitmap_usage): New class.
653 * genmatch.c: Extend header file inclusion.
654 * genpreds.c: Likewise.
655 * ggc-common.c (struct ggc_usage): New class.
656 (struct ggc_loc_desc_hasher): Remove.
657 (ggc_loc_desc_hasher::hash): Likewise.
658 (ggc_loc_desc_hasher::equal): Likewise.
659 (struct ggc_ptr_hash_entry): Likewise.
660 (struct ptr_hash_hasher): Likewise.
661 (ptr_hash_hasher::hash): Likewise.
662 (ptr_hash_hasher::equal): Likewise.
663 (make_loc_descriptor): Likewise.
664 (ggc_prune_ptr): Likewise.
665 (dump_ggc_loc_statistics): Use new memory descriptor.
666 (ggc_record_overhead): Likewise.
667 (ggc_free_overhead): Likewise.
668 (final_cmp_statistic): Remove.
669 (cmp_statistic): Likewise.
670 (ggc_add_statistics): Liekwise.
671 (ggc_prune_overhead_list): Likewise.
672 * hash-map-traits.h: New file.
673 * hash-map.h (struct default_hashmap_traits): Move the traits to a
674 separate header file.
675 * hash-set.h: Pass memory statistics info to ctor.
676 * hash-table.c (void dump_hash_table_loc_statistics): New function.
677 * hash-table.h (hash_table::hash_table): Add new ctor arguments.
678 (hash_table::~hash_table): Register memory release operation.
679 (hash_table::alloc_entries): Handle memory allocation operation.
680 (hash_table::expand): Likewise.
681 * inchash.c (iterative_hash_hashval_t): Move implementation to header
682 file.
683 (iterative_hash_host_wide_int): Likewise.
684 * inchash.h (class hash): Likewise.
685 * mem-stats-traits.h: New file.
686 * mem-stats.h: New file.
687 (mem_location): Add new class.
688 (mem_usage): Likewise.
689 (mem_alloc_description): Likewise.
690 * sese.c: Add new header file inclusision.
691 * toplev.c (dump_memory_report): Add report for hash_table, hash_map
692 and hash_set.
693 * tree-sra.c: Add new header file inclusision.
694 * vec.c (struct vec_descriptor): Remove.
695 (hash_descriptor): Likewise.
696 (struct vec_usage): Likewise.
697 (struct ptr_hash_entry): Likewise.
698 (hash_ptr): Likewise.
699 (eq_ptr): Likewise.
700 (vec_prefix::register_overhead): Use new memory descriptor API.
701 (vec_prefix::release_overhead): Likewise.
702 (add_statistics): Remove.
703 (dump_vec_loc_statistics): Use new memory descriptor API.
704 * vec.h (struct vec_prefix): Likewise.
705 (va_heap::reserve): Likewise.
706 (va_heap::release): Likewise.
707 * emit-rtl.c (gen_raw_REG): Fix passing MEM_STAT.
708
81ad436b 7092015-05-27 Richard Biener <rguenther@suse.de>
710
711 * tree-vect-stmts.c (vectorizable_load): Initialize slp_perm
712 earlier and remove ??? comment.
713 (vect_analyze_stmt): If we are analyzing a pure SLP stmt
714 and got called from loop analysis bail out. Always pass the SLP
715 node to the vectorizable_* functions.
716 * tree-vect-loop.c (vect_analyze_loop_operations): Remove
717 the premature SLP check here.
718 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Dump hybrid
719 detected SLP stmts.
720 (vect_detect_hybrid_slp_1): Likewise.
721
9943b198 7222015-05-26 Jeff Law <law@redhat.com>
723
bebaef09 724 * combine.c (find_split_point): Verify that the shift count is a
725 constant when choosing (plus (ashift ...)) as a split point.
726
9943b198 727 * tree-ssa-threadupdate.c: Replace 8 space sequences with tabs.
728 No functional changes.
729
e821df4d 7302015-05-26 Jan Hubicka <hubicka@ucw.cz>
731
732 * ipa-polymorphic-call.c
733 (ipa_polymorphic_call_context::get_dynamic_type): Short circuit the
734 case when call target is already known.
735
21a7a8c2 7362015-05-26 Oleg Endo <olegendo@gcc.gnu.org>
737
738 PR target/65979
739 * config/sh/sh.md (tstsi_t peephole2): Use gen_rtx_SET and
740 take into account the case that operands[1] and operands[2]
741 are the same register.
742
b11ca813 7432015-05-26 Michael Matz <matz@suse.de>
744
745 PR middle-end/66251
746
747 * tree-vect-stmts.c (vect_model_store_cost): Handled strided group
748 stores.
749 (vect_create_vectorized_demotion_stmts): Always set
750 STMT_VINFO_VEC_STMT, also with SLP.
751 (vectorizable_store): Handle strided group stores.
752
8d4f39c3 7532015-05-26 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
754
755 PR target/66049
756 * config/aarch64/aarch64.md
757 (*adds_shift_imm_<mode>): New pattern.
758 (*subs_shift_imm_<mode>): Likewise.
759 (*adds_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
760 (*subs_<optab><ALLX:mode>_shift_<GPI:mode>): Likewise.
761 (*add_uxt<mode>_shift2): Likewise.
762 (*add_uxtsi_shift2_uxtw): Likewise.
763 (*sub_uxt<mode>_shift2): Likewise.
764 (*sub_uxtsi_shift2_uxtw): Likewise.
765
55919abb 7662015-05-26 David Edelsohn <dje.gcc@gmail.com>
767
768 * config/rs6000/constraints.md (Y, U): Use match_test.
769
92568e6b 7702015-05-26 Christian Bruel <christian.bruel@st.com>
74489440 771
772 PR target/52144
773 * config/arm/arm.c (arm_option_check_internal)
774 (arm_option_params_internal): Check opts->target_flags to set macros.
775 (TREE_TARGET_ARM, TREE_TARGET_THUMB)
776 (TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Replace with...
777 (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
778 (builtin_define): Replaced with def_or_undef_macro.
779 * config/arm/arm.h (TREE_TARGET_ARM, TREE_TARGET_THUMB)
780 TREE_TARGET_THUMB1, TREE_TARGET_THUMB2) Redefine with...
781 (TARGET_ARM_P, TARGET_THUMB_P, TARGET_THUMB1_P, TARGET_THUMB2_P)
782 (TARGET_32BIT_P, TARGET_ARM_QBIT_P, TARGET_ARM_SAT_P, TARGET_IDIV_P)
783 (TARGET_HAVE_LDREX_P, TARGET_HAVE_LDREXBH_P, TARGET_HAVE_LDREXD_P)
784 (TARGET_ARM_FEATURE_LDREX_P)
785 (TARGET_DSP_MULTIPLY_P, TARGET_INT_SIMD_P): New macros.
e572c080 786 * config/arm/arm-c.c (def_or_undef_macro): New function.
787 (arm_cpu_cpp_builtins): Use def_or_undef_macro for macros definition.
74489440 788
4b11ffbd 7892015-05-26 Christian Bruel <christian.bruel@st.com>
790
791 * c-common.h (builtin_define_with_int_value)
792 (builtin_define_type_sizeof): Declare.
793 * c-cppbuiltin.c (builtin_define_with_int_value)
794 (builtin_define_type_sizeof): Externalize.
795 (builtin_define_std): Cleanup declaration.
796 * config/arm/arm-protos.h (arm_cpu_cpp_builtins): Declare.
797 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Move macro defines into...
798 * config/arm/arm-c.c (arm_cpu_cpp_builtins): New function.
799 (builtin_define, builtin_assert): New macros.
800
e5d08bfd 8012015-05-26 Richard Biener <rguenther@suse.de>
802
803 PR tree-optimization/66142
804 * tree-ssa-sccvn.c (vn_reference_lookup_3): Manually compare
805 MEM_REFs for the same base address.
806
038ce8c6 8072015-05-26 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
808
809 PR ipa/66181
810 * tree.c (verify_type_variant): Do not check TYPE_NO_FORCE_BLK.
811
c20b03af 8122015-05-26 Jason Merrill <jason@redhat.com>
813
2822b473 814 * configure.ac: Set CXXFLAGS for ISL test.
815 * configure: Regenerate.
816
c20b03af 817 * configure.ac: Use C++ for all tests. Use AC_CHECK_DECLS for
818 strstr and basename.
819 * configure: Regenerate.
820
c09f2960 8212015-05-26 Richard Biener <rguenther@suse.de>
822
823 * fold-const.c (fold_binary_loc): Move X % -Y -> X % Y and
824 X % C -> X & (C - 1) for C being a power-of two to ...
825 * match.pd: ... patterns.
826
0c3c84e3 8272015-05-26 Marc Glisse <marc.glisse@inria.fr>
828
829 * match.pd (swapped_tcc_comparison): New operator list.
830 (-A CMP -B): New simplification.
831 * fold-const.c (fold_comparison): Remove corresponding code.
832
dcd6d0f4 8332015-05-26 Richard Sandiford <richard.sandiford@arm.com>
834
835 * caller-save.c (init_caller_save): Base temporary register numbers
836 on LAST_VIRTUAL_REGISTER + 1 rather than FIRST_PSEUDO_REGISTER.
837 * cfgloopanal.c (init_set_costs): Likewise.
838 * dojump.c (prefer_and_bit_test): Likewise.
839 * expr.c (init_expr_target): Likewise.
840 * ira.c (setup_prohibited_mode_move_regs): Likewise.
841 * lower-subreg.c (init_lower_subreg): Likewise.
842 * postreload.c (reload_cse_regs_1): Likewise.
843
d5e47a46 8442015-05-26 Richard Sandiford <richard.sandiford@arm.com>
845
846 * gensupport.h (compute_test_codes): Declare.
847 * gensupport.c (compute_predicate_codes): Rename to...
848 (compute_test_codes): ...this. Generalize error message.
849 (process_define_predicate): Update accordingly.
850 * genpreds.c (compute_maybe_allows): Delete.
851 (add_constraint): Use compute_test_codes to determine whether
852 something can accept a SUBREG, REG or MEM.
853
cb369051 8542015-05-26 Torvald Riegel <triegel@redhat.com>
855
856 * doc/extend.texi (__atomic Builtins): Use 'memory order' instead of
857 'memory model' to align with C++11; fix description of memory orders;
858 fix a few typos.
859
5cb834f3 8602015-05-26 Richard Biener <rguenther@suse.de>
861
862 * tree-vect-loop.c (vect_update_vf_for_slp): Split out from ...
863 (vect_analyze_loop_operations): ... here. Remove slp parameter,
864 detect whether we apply SLP. Remove call to
865 vect_update_slp_costs_according_to_vf.
866 (vect_analyze_loop_2): Call vect_update_vf_for_slp and
867 vect_update_slp_costs_according_to_vf from here. Dispatch
868 to vect_slp_analyze_operations to analyze SLP stmts.
869 * tree-vect-slp.c (vect_slp_analyze_node_operations): Drop
870 unused bb_vec_info parameter, adjust assert.
871 (vect_slp_analyze_operations): Pass in the slp instance tree
872 instead of bb_vec_info.
873 (vect_slp_analyze_bb_1): Adjust call to vect_slp_analyze_operations.
874 * tree-vectorizer.h (vect_slp_analyze_operations): Declare.
875
5971a5b3 8762015-05-25 Alexander Monakov <amonakov@ispras.ru>
877
878 * config/i386/i386.h (enum reg_class): Move CLOBBERED_REGS prior to
879 Q_REGS. Expand comment.
880 (REG_CLASS_NAMES): Ditto.
881 (REG_CLASS_CONTENTS): Ditto.
882
ea0685f5 8832015-05-25 Uros Bizjak <ubizjak@gmail.com>
884
885 PR target/66274
886 * config/i386/i386.c (print_reg): Only print "r" for TARGET_64BIT
887 when LEGACY_INT_REGNO_P is processed.
888
ad32aa90 8892015-05-25 Alexander Monakov <amonakov@ispras.ru>
890
891 * config/i386/i386.c (ix86_function_ok_for_sibcall): Check flag_plt.
892
f1c4a634 8932015-05-25 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
894
895 * config/avr/avr.c (avr_out_load_psi_reg_no_disp_tiny): Restore base
896 register if not marked dead/unused, before return.
897
ad32aa90 8982015-05-24 Jan Hubicka <hubicka@ucw.cz>
960a5573 899
900 PR lto/66180
901 * ipa-devirt.c (type_with_linkage): Check that TYPE_STUB_DECL
902 is set; check for assembler name at LTO time.
903 (type_in_anonymous_namespace): Remove hacks, check that all
904 anonymous types are called "<anon>"
905 (odr_type_p): Simplify; add check for "<anon>"
906 (odr_subtypes_equivalent): Add odr_type_p check.
907 * tree.c (need_assembler_name_p): Even anonymous namespace needs
908 assembler name.
909
ad32aa90 9102015-05-24 Jan Hubicka <hubicka@ucw.cz>
1fda15e2 911
912 * ipa-utils.h (method_class_type): Remove.
960184c2 913 * cgraphunit.c (walk_polymorphic_call_targets): Use
914 TYPE_METHOD_BASETYPE.
1fda15e2 915 * ipa-devirt.c (type_in_anonymous_namespace_p): Check that it is called
916 on main variants only.
917 (method_class_type): Remove.
918 (update_type_inheritance_graph): Use TYPE_METHOD_BASETYPE.
919 (build_type_inheritance_graph): Likewise.
920 * ipa-icf.c (sem_function::equals_wpa): Likewise.
960184c2 921 * pa-polymorphic-call.c (decl_maybe_in_construction_p,
1fda15e2 922 check_stmt_for_type_change): Use TYPE_METHOD_BASETYPE.
923
ad32aa90 9242015-05-24 Jan Hubicka <hubicka@ucw.cz>
6ffeceb1 925
926 * tree.c (prototype_p, virtual_method_call_p, obj_type_ref_class,
927 is_typedef_decl, typedef_variant_p): Constify.
928 * tree.h (prototype_p, virtual_method_call_p, obj_type_ref_class,
929 is_typedef_decl, typedef_variant_p): Constify.
930
b67840ef 9312015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
932
933 * defaults.h (gen_tablejump): New function.
934 (HAVE_tablejump): Add default value.
935 * expr.c: Adjust.
936 * stmt.c: Likewise.
937
440220c9 9382015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
939
940 * defaults.h (gen_store_multiple): New function.
941 (HAVE_store_multiple): Add default value.
942 * expr.c (move_block_from_reg): Adjust.
943
95951ddc 9442015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
945
946 * defaults.h (gen_load_multiple): New function.
947 (HAVE_load_multiple): Add default value.
948 * expr.c (move_block_to_reg): Adjust.
949
d0751ac9 9502015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
951
952 * defaults.h (gen_mem_signal_fence): New function.
953 (HAVE_mem_signal_fence): Add default value.
954 * optabs.c: Adjust.
955
6b5c01be 9562015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
957
958 * defaults.h (gen_memory_barrier): New function.
959 (HAVE_memory_barrier): Add default value.
960 * optabs.c: Adjust.
961
eaa700f2 9622015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
963
964 * defaults.h (gen_mem_thread_fence): New function.
965 (HAVE_mem_thread_fence): Add default definition.
966 * optabs.c: Adjust.
967
6cc3d6ec 9682015-05-23 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
969
970 * combine.c (find_split_point): Check the value of HAVE_lo_sum
971 instead of if it is defined.
972 (combine_simplify_rtx): Likewise.
973 * lra-constraints.c (process_address_1): Likewise.
974 * config/darwin.c: Adjust.
975 * genconfig.c (main): Always define HAVE_lo_sum.
976
b2f775ec 9772015-05-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
978
960184c2 979 * genmatch.c (parser::parse_operation): Reject expanding
980 operator-list inside 'for'.
b2f775ec 981
f6083535 9822015-05-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
dbe4b31f 983
960184c2 984 * genmatch.c (parser::parse_for): Reject iterator if used as
985 operator-list.
dbe4b31f 986
a03dcfdb 9872015-05-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
988
960184c2 989 * genmatch.c (parser::parse_operator_list): Check for CPP_CLOSE_PAREN
990 after end of id-list.
a03dcfdb 991
24a769d9 9922015-05-22 Jan Hubicka <hubicka@ucw.cz>
993
994 * tree.c (gimple_canonical_types_compatible_p): Sanity check that
995 we do not try to compute canonical type for type that does not need
996 alias set.
997 (verify_type): Drop FIXME for METHOD_TYPE, update FIXME for
998 FUNCITON_TYPE.
999 * tree.h (type_with_alias_set_p): New.
1000
5b50c035 10012015-05-22 Jan Hubicka <hubicka@ucw.cz>
1002
1003 * tree.c (gimple_canonical_types_compatible_p): Do not compare
1004 function attributes.
1005 (verify_type): Remove METHOD_TYPE FIXME; update FUNCTION_TYPE.
1006
eeec71b4 10072015-05-22 Jim Wilson <jim.wilson@linaro.org>
1008
1009 * Makefile.in (check_gcc_parallelize): Delete.
1010 (lang_checks_parallelized): Update comment.
1011
ea44a2ac 10122015-05-22 Mikhail Maltsev <maltsevm@gmail.com>
1013
1014 PR rtl-optimization/66237
1015 * bb-reorder.c (fix_crossing_conditional_branches): Fix wrong
1016 location of an "as_a" cast.
1017
97782bc4 10182015-05-22 Jeff Law <law@redhat.com>
1019
1020 * config/pa/pa.md (non-canonical shift-add insns): Remove.
1021 (peepholes with non-canonical RTL sources): Remove.
1022 (peepholes for indexed stores of FP regs in integer modes): Match and
1023 generate canonical RTL.
1024
c59372d1 10252015-05-22 Marc Glisse <marc.glisse@inria.fr>
1026
1027 PR tree-optimization/63387
1028 * match.pd ((X /[ex] A) * A -> X): Remove unnecessary condition.
1029 ((x ord x) & (y ord y) -> (x ord y),
1030 (x ord x) & (x ord y) -> (x ord y)): New simplifications.
1031 * fold-const.c (tree_unary_nonnegative_warnv_p) <ABS_EXPR>: Handle
1032 vectors like scalars.
1033
cc77228c 10342015-05-22 Marc Glisse <marc.glisse@inria.fr>
1035
1036 * convert.c (convert_to_integer, convert_to_vector): Include the
1037 types in the error message.
1038
5af95dbe 10392015-05-22 Marc Glisse <marc.glisse@inria.fr>
1040
1041 * match.pd ((x | y) & ~x -> y & ~x, (x & y) | ~x -> y | ~x): New
1042 simplifications.
1043
dedf65c3 10442015-05-22 Jeff Law <law@redhat.com>
1045
3cc6ed02 1046 * config/pa/pa.md (integer_indexed_store splitters): Use
1047 mem_shadd_operand. Use ASHIFT rather than MULT in the resulting
1048 insns -- adjusting the constant 2nd operand accordingly.
1049
b3676e5e 1050 * combine.c (try_combine): Canonicalize (plus (mult X pow2) Y) into
1051 (plus (ashift X log2) Y) if it is a split point.
1052
97782bc4 1053 * config/pa/pa.c (mem_shadd_or_shadd_rtx_p): New function factoredx
1054 out of hppa_legitimize_address to handle both forms of a multiply
dedf65c3 1055 by 2, 4 or 8.
960184c2 1056 (hppa_legitimize_address): Use mem_shadd_or_shadd_rtx_p.
dedf65c3 1057 Always generate the ASHIFT variant as the result is not directly
1058 used in a MEM. Update comments and refactor slightly to improve
1059 readability.
1060
d86303d8 10612015-05-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1062
1063 PR target/65491
1064 * config/aarch64/aarch64.c (aarch64_short_vector_p): Move above
1065 aarch64_composite_type_p. Remove check for aarch64_composite_type_p.
1066 (aarch64_composite_type_p): Return false if given type and mode are
1067 for a short vector.
1068
423475a3 10692015-05-22 Richard Biener <rguenther@suse.de>
1070
1071 * tree-vectorizer.h (struct _slp_oprnd_info): Add second_pattern
1072 member.
1073 * tree-vect-loop.c (vect_analyze_loop_operations): Look at
1074 patterns when determining whether SLP is pure.
1075 (vect_is_slp_reduction): Remove check for pattern stmts.
1076 (vect_is_simple_reduction_1): Remove dead code.
1077 * tree-vect-slp.c (vect_create_oprnd_info): Initialize second_pattern.
1078 (vect_get_and_check_slp_defs): Pass in the stmt number.
1079 Allow the first def in a reduction to be not a pattern stmt when
1080 the rest of the stmts def are patterns.
1081 (vect_build_slp_tree_1): Allow tcc_expression codes like
1082 SAD_EXPR and DOT_PROD_EXPR.
1083 (vect_build_slp_tree): Adjust.
1084 (vect_analyze_slp): Refactor and move BB vect error message ...
1085 (vect_slp_analyze_bb_1): ... here.
1086
0f9e75c9 10872015-05-22 Aldy Hernandez <aldyh@redhat.com>
1088
1089 * tree-switch-conversion.c (build_one_array): Set DECL_IGNORED_P
1090 for CSWTCH temporary.
1091
ddbcfcd0 10922015-05-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1093
1094 * config/arm/arm.c (arm_new_rtx_costs): Handle UNSPEC_VOLATILE.
1095 (arm_unspec_cost): Allow UNSPEC_VOLATILE. Do not recurse inside
1096 unknown unspecs.
1097
126fecae 10982015-05-22 Richard Biener <rguenther@suse.de>
1099
1100 PR tree-optimization/66251
1101 * tree-vect-stmts.c (vectorizable_conversion): Properly
1102 set STMT_VINFO_VEC_STMT even for the SLP case.
1103
09c66167 11042015-05-22 Marek Polacek <polacek@redhat.com>
1105
1106 * doc/extend.texi: Use @pxref instead of @xref.
1107
bb882464 11082015-05-22 hiraditya <hiraditya@msn.com>
1109
1110 * gimple.h (gimple_expr_type): Refactor to make it concise. Remove
1111 redundant if.
1112
eb10b471 11132015-05-22 Richard Biener <rguenther@suse.de>
1114
1115 PR tree-optimization/65701
1116 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
1117 Move peeling cost models into one place. Peel for alignment
1118 for single loads only if an aligned load is cheaper than
1119 an unaligned load.
1120
5a4c69dd 11212015-05-22 Marek Polacek <polacek@redhat.com>
1122
1123 PR c/47043
1124 * doc/extend.texi (Enumerator Attributes): New section.
1125 Document syntax of enumerator attributes.
1126
95fd3578 11272015-05-22 Richard Biener <rguenther@suse.de>
1128
1129 * tree-vect-loop.c (get_reduction_op): New function.
1130 (vect_model_reduction_cost): Use it, add reduc_index parameter.
1131 Make ready for BB reductions.
1132 (vect_create_epilog_for_reduction): Use get_reduction_op.
1133 (vectorizable_reduction): Init reduc_index to a valid value.
1134 Adjust vect_model_reduction_cost call.
1135 * tree-vect-slp.c (vect_get_constant_vectors): Use the proper
1136 operand for reduction defaults. Add SAD_EXPR support.
1137 Assert we have a neutral op for SLP reductions.
1138 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): When
1139 walking pattern stmt ops only recurse to SSA names.
1140
741d8227 11412015-05-22 Richard Biener <rguenther@suse.de>
1142
1143 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Replace
1144 assert with guard, remove check on detected reduction.
1145 (vect_recog_sad_pattern): Likewise.
1146 (vect_recog_widen_sum_pattern): Likewise.
1147
588ee06b 11482015-05-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1149
1150 * config/aarch64/arm_neon.h (vaeseq_u8): Add __extension__ and
1151 __always_inline__ attribute.
1152 (vaesdq_u8): Likewise.
1153 (vaesmcq_u8): Likewise.
1154 (vaesimcq_u8): Likewise.
1155 (vsha1cq_u32): Likewise.
1156 (vsha1mq_u32): Likewise.
1157 (vsha1pq_u32): Likewise.
1158 (vsha1h_u32): Likewise.
1159 (vsha1su0q_u32): Likewise.
1160 (vsha1su1q_u32): Likewise.
1161 (vsha256hq_u32): Likewise.
1162 (vsha256h2q_u32): Likewise.
1163 (vsha256su0q_u32): Likewise.
1164 (vsha256su1q_u32): Likewise.
1165 (vmull_p64): Likewise.
1166 (vmull_high_p64): Likewise.
1167
044580bb 11682015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
211a5d90 1169
1170 * final.c (final_scan_insn): Don't check HAVE_peephole with the
1171 preprocessor.
1172 * output.h: Likewise.
1173 * genconfig.c (main): Alwways define HAVE_peephole.
1174 * genpeep.c: Don't emit checks of HAVE_peephole.
1175
044580bb 11762015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
9630036a 1177
1178 * combine.c, expmed.c, expr.c, optabs.c optabs.h, toplev.c: DOn't
1179 check HAVE_conditional_move with the preprocessor.
1180
044580bb 11812015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
cf2f2c56 1182
1183 * genconfig.c (main): Always define HAVE_conditional_move.
1184 * combine.c, expmed.c, expr.c, ifcvt.c, optabs.c, optabs.h,
1185 toplev.c, tree-ssa-phiopt.c: Don't check if HAVE_conditional_move
1186 is defined.
1187
044580bb 11882015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
c6bb296a 1189
1190 * combine.c, df-problems.c, df-scan.c, emit-rtl.c, reginfo.c,
1191 reload.c, rtlanal.c: Remove comparison of ARG_FRAME_POINTER_REGNUM
1192 and FRAME_POINTER_REGNUM with the preprocessor.
1193
044580bb 11942015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
279a4851 1195
1196 * defaults.h: Add default for STACK_PUSH_CODE.
1197 * expr.c: Don't redefine STACK_PUSH_CODE.
1198 * recog.c: Likewise.
1199
044580bb 12002015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3764c94e 1201
1202 * builtins.c, dwarf2cfi.c, explow.c, expr.c, recog.c,
1203 sched-deps.c: Use if instead of preprocessor checks with
1204 STACK_GROWS_DOWNWARD.
1205
044580bb 12062015-05-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
2b785411 1207
1208 * *.c: Check the value of STACK_GROWS_DOWNWARD rather than if it
1209 is defined.
1210 * config/**/*.h: Define STACK_GROWS_DOWNWARD to an integer.
1211 * defaults.h: Provide default for STACK_GROWS_DOWNWARD.
1212 * doc/tm.texi.in: Update references to STACK_GROWS_DOWNWARD.
1213 * doc/tm.texi: Regenerate.
1214
38e98f58 12152015-05-21 H.J. Lu <hongjiu.lu@intel.com>
1216
1217 PR target/66232
1218 * config/i386/constraints.md (Bg): New constraint for GOT memory
1219 operand.
1220 * config/i386/i386.md (*call_got_x32): New pattern.
1221 (*call_value_got_x32): Likewise.
1222 * config/i386/predicates.md (GOT_memory_operand): New predicate.
1223
bcce7ce7 12242015-05-21 Jakub Jelinek <jakub@redhat.com>
1225
1226 PR tree-optimization/66233
1227 * match.pd (ocvt (icvt@1 @0)): Don't handle vector types.
1228 Simplify.
1229
098e94fb 12302015-05-21 Jeff Law <law@redhat.com>
1231
1232 * config/pa/pa.md (add-with-constant splitter): Use ASHIFT rather
1233 than MULT for shadd sequences.
1234
5b6bf098 12352015-05-08 Jan Hubicka <hubicka@ucw.cz>
1236
960184c2 1237 * alias.c (alias_stats): New static var.
5b6bf098 1238 (alias_sets_conflict_p, alias_sets_must_conflict_p): Update stats.
1239 (dump_alias_stats_in_alias_c): New function.
1240 * alias.h (dump_alias_stats_in_alias_c): Declare.
1241 * tree-ssa-alias.c (dump_alias_stats): Call it.
1242
e1c75243 12432015-05-08 Michael Matz <matz@suse.de>
1244
1245 * tree-vectorizer.h (struct _stmt_vec_info): Rename stride_load_p
1246 to strided_p.
1247 (STMT_VINFO_STRIDE_LOAD_P): Rename to ...
1248 (STMT_VINFO_STRIDED_P): ... this.
1249 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust.
1250 (vect_verify_datarefs_alignment): Likewise.
1251 (vect_enhance_data_refs_alignment): Likewise.
1252 (vect_analyze_data_ref_access): Likewise.
1253 (vect_analyze_data_refs): Accept strided stores.
1254 * tree-vect-stmts.c (vect_model_store_cost): Count strided stores.
1255 (vect_model_load_cost): Adjust for macro rename.
1256 (vectorizable_mask_load_store): Likewise.
1257 (vectorizable_load): Likewise.
1258 (vectorizable_store): Open code strided stores.
1259
20e93ff8 12602015-05-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1261
1262 * doc/sourcebuild.texi (7.2.3.9 Other hardware attributes):
1263 Document sqrt_insn.
1264
1ebb5060 12652015-05-21 Richard Biener <rguenther@suse.de>
1266
1267 PR c++/66211
1268 * match.pd: Guard pattern optimzing (int)(float)int
1269 conversions to apply only on GIMPLE.
1270
100a3e05 12712015-05-21 Jeff Law <law@redhat.com>
1272
1273 * combine.c (find_split_point): Handle ASHIFT like MULT to encourage
1274 multiply-accumulate/shift-add insn generation.
1275
dedba428 12762015-05-21 Oleg Endo <olegendo@gcc.gnu.org>
1277
1278 PR target/54236
1279 * config/sh/sh.md (*round_int_even): Reject pattern if operands[0] and
1280 operands[1] are the same.
1281
cf6a4316 12822015-05-21 Ilya Enkovich <enkovich.gnu@gmail.com>
1283
1284 PR middle-end/66221
1285 * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Use
1286 build_distinct_type_copy to copy bounds.
1287
00788409 12882015-05-21 Thomas Schwinge <thomas@codesourcery.com>
1289
1290 * genrecog.c (MAX_DEPTH, MIN_NUM_STATEMENTS, MAX_NUM_STATEMENTS):
1291 Change to unsigned int.
1292
edb1ad78 12932015-05-20 Jeff Law <law@redhat.com>
1294
1295 * config/pa/pa.c (pa_print_operand): New 'o' output modifier.
1296 (pa_mem_shadd_constant_p): Renamed from pa_shadd_constant_p.
1297 (pa_shadd_constant_p): Allow constants for shadd insns rather
1298 than valid scaling constants for memory addresses.
1299 * config/pa/pa-protos.h (pa_mem_shadd_constant_p): Add prototype.
1300 * config/pa/predicates.md (mem_shadd_operand): New predicate.
1301 * config/pa/pa.md (shift-add insns using MULT): Use mem_shadd_operand.
1302 (shift-add insns using ASHIFT): New patterns.
1303
f9a00e9e 13042015-05-20 Mikhail Maltsev <maltsevm@gmail.com>
1305
1306 * bb-reorder.c (set_edge_can_fallthru_flag): Use rtx_jump_insn where
1307 feasible.
1308 (fix_up_fall_thru_edges): Likewise.
1309 (fix_crossing_conditional_branches): Likewise. Promote jump targets
1310 from to rtx_insn to rtx_code_label where feasible.
1311 * bt-load.c (move_btr_def): Remove as-a cast of the value returned by
1312 gen_move_insn (returned type changed to rtx_insn).
1313 * builtins.c (expand_errno_check): Fix arguments of
1314 do_compare_rtx_and_jump (now expects rtx_code_label).
1315 (expand_builtin_acc_on_device): Likewise.
1316 * cfgcleanup.c (try_simplify_condjump): Add cast when calling
1317 invert_jump (now exprects rtx_jump_insn).
1318 * cfgexpand.c (label_rtx_for_bb): Promote return type to rtx_code_label.
1319 (construct_init_block): Use rtx_code_label.
1320 * cfgrtl.c (block_label): Promote return type to rtx_code_label.
1321 (try_redirect_by_replacing_jump): Use cast to rtx_jump_insn when
1322 calling redirect_jump.
1323 (patch_jump_insn): Likewise.
1324 (redirect_branch_edge): Likewise.
1325 (force_nonfallthru_and_redirect): Likewise.
1326 (fixup_reorder_chain): Explicitly use rtx_jump_insn instead of rtx_insn
1327 when suitable.
1328 (rtl_lv_add_condition_to_bb): Update call of do_compare_rtx_and_jump.
1329 * cfgrtl.h: Promote return type of block_label to rtx_code_label.
1330 * config/bfin/bfin.c (hwloop_optimize): Fix call of emit_label_before.
1331 * config/i386/i386.c (ix86_emit_cmove): Explicitly use rtx_code_label
1332 to store the value retured by gen_label_rtx.
1333 * config/mips/mips.c (mips16_split_long_branches): Promote rtx_insn to
1334 rtx_jump_insn.
1335 * config/sh/sh.c (gen_far_branch): Likewise. Fix call of invert_jump.
1336 (split_branches): Fix calls of redirect_jump.
960184c2 1337 * dojump.c (jumpifnot): Promote argument type from rtx to
1338 rtx_code_label.
f9a00e9e 1339 (jumpifnot_1): Likewise.
1340 (jumpif): Likewise.
1341 (jumpif_1): Likewise.
1342 (do_jump_1): Likewise.
1343 (do_jump): Likewise. Use rtx_code_label when feasible.
1344 (do_jump_by_parts_greater_rtx): Likewise.
1345 (do_jump_by_parts_zero_rtx): Likewise.
1346 (do_jump_by_parts_equality_rtx): Likewise.
1347 (do_compare_rtx_and_jump): Likewise.
1348 * dojump.h: Update function prototypes.
1349 * dse.c (emit_inc_dec_insn_before): Remove case (gen_move_insn now
1350 returns rtx_insn).
1351 * emit-rtl.c (emit_jump_insn_before_noloc): Promote return type to
1352 rtx_jump_insn.
1353 (emit_label_before): Likewise.
1354 (emit_jump_insn_after_noloc): Likewise.
1355 (emit_jump_insn_after_setloc): Likewise.
1356 (emit_jump_insn_after): Likewise
1357 (emit_jump_insn_before_setloc): Likewise.
1358 (emit_jump_insn_before): Likewise.
1359 (emit_label_before): Promote return type to rtx_code_label.
1360 (emit_label): Likewise.
1361 * except.c (sjlj_emit_dispatch_table): Use jump_target_rtx.
1362 * explow.c (emit_stack_save): Use gen_move_insn_uncast instead of
1363 gen_move_insn.
1364 (emit_stack_restore): Likewise.
1365 * expmed.c (emit_store_flag_force): Fix calls of do_compare_rtx_and_jump.
1366 (do_cmp_and_jump): Likewise.
1367 * expr.c (expand_expr_real_2): Likewise. Promote some local variables
1368 from rtx to rtx_code_label.
1369 (gen_move_insn_uncast): New function.
1370 * expr.h: Update return type of gen_move_insn (promote to rtx_insn).
1371 * function.c (convert_jumps_to_returns): Fix call of redirect_jump.
1372 * gcse.c (pre_insert_copy_insn): Use rtx_insn instead of rtx.
1373 * ifcvt.c (dead_or_predicable): Use rtx_jump_insn when calling
1374 invert_jump_1 and redirect_jump_1.
1375 * internal-fn.c (expand_arith_overflow_result_store): Fix call of
1376 do_compare_rtx_and_jump.
1377 (expand_addsub_overflow): Likewise.
1378 (expand_neg_overflow): Likewise.
1379 (expand_mul_overflow): Likewise.
1380 * ira.c (split_live_ranges_for_shrink_wrap): Use rtx_insn for
1381 return value of gen_move_insn.
1382 * jump.c (redirect_jump): Promote argument from rtx to rtx_jump_insn.
1383 * loop-doloop.c (add_test): Use rtx_code_label.
1384 (doloop_modify): Likewise.
1385 (doloop_optimize): Likewise.
1386 * loop-unroll.c (compare_and_jump_seq): Promote rtx to rtx_code_label.
1387 * lra-constraints.c (emit_spill_move): Remove cast of value returned
1388 by gen_move_insn.
1389 (inherit_reload_reg): Add cast when calling dump_insn_slim.
1390 (split_reg): Likewise.
1391 * modulo-sched.c (schedule_reg_moves): Remove cast of value returned by
1392 gen_move_insn.
1393 * optabs.c (expand_binop_directly): Remove casts of values returned by
1394 maybe_gen_insn.
1395 (expand_unop_direct): Likewise.
1396 (expand_abs): Likewise.
1397 (maybe_emit_unop_insn): Likewise.
1398 (maybe_gen_insn): Promote return type to rtx_insn.
1399 * optabs.h: Update prototype of maybe_gen_insn.
1400 * postreload-gcse.c (eliminate_partially_redundant_load): Remove
1401 redundant cast.
1402 * recog.c (struct peep2_insn_data): Promote type of insn field to
1403 rtx_insn.
1404 (peep2_reinit_state): Use NULL instead of NULL_RTX.
1405 (peep2_attempt): Remove casts of insn in peep2_insn_data.
1406 (peep2_fill_buffer): Promote argument from rtx to rtx_insn
1407 * recog.h (struct insn_gen_fn): Promote return types of function
1408 pointers and operator ().from rtx to rtx_insn.
1409 * reorg.c (fill_simple_delay_slots): Promote rtx_insn to rtx_jump_insn.
1410 (fill_eager_delay_slots): Likewise.
1411 (relax_delay_slots): Likewise.
1412 (make_return_insns): Likewise.
1413 (dbr_schedule): Likewise.
1414 (optimize_skips): Likewise.
1415 (reorg_redirect_jump): Likewise.
1416 (fill_slots_from_thread): Likewise.
1417 * reorg.h: Update prototypes.
1418 * resource.c (find_dead_or_set_registers): Use dyn_cast to
1419 rtx_jump_insn instead of check. Use it's jump_target method.
1420 * rtl.h (rtx_jump_insn::jump_label): Define new method.
1421 (rtx_jump_insn::jump_target): Define new method.
1422 (rtx_jump_insn::set_jump_target): Define new method.
1423 * rtlanal.c (tablejump_p): Promote type of one local variable.
1424 * sched-deps.c (sched_analyze_2): Promote rtx to rtx_insn_list.
1425 (sched_analyze_insn): Likewise.
1426 * sched-vis.c (print_insn_with_notes): Promote rtx to rtx_insn.
1427 (print_insn): Likewise.
1428 * stmt.c (label_rtx): Promote return type to rtx_insn.
1429 (force_label_rtx): Likewise.
1430 (jump_target_rtx): Define new function.
1431 (expand_label): Use it, get rid of one cast.
1432 (expand_naked_return): Promote rtx to rtx_code_label.
1433 (do_jump_if_equal): Fix do_compare_rtx_and_jump call.
1434 (expand_case): Use rtx_code_label instread of rtx where feasible.
1435 (expand_sjlj_dispatch_table): Likewise.
1436 (emit_case_nodes): Likewise.
1437 * stmt.h: Declare jump_target_rtx. Update prototypes. Fix comments.
1438 * store-motion.c (insert_store): Make use of new return type of
1439 gen_move_insn and remove a cast.
1440 (replace_store_insn): Likewise.
1441
64ab0923 14422015-05-20 Max Filippov <jcmvbkbc@gmail.com>
1443
1444 * config/xtensa/xtensa.c (init_alignment_context): Replace MULT
1445 by BITS_PER_UNIT with ASHIFT by exact_log2 (BITS_PER_UNIT).
1446
5d293e79 14472015-05-20 Jeff Law <law@redhat.com>
1448
1449 * tree-ssa-threadupdate.c (mark_threaded_blocks): Properly
1450 dispose of the jump thread path when the jump threading
1451 opportunity is cancelled.
1452
e943462b 14532015-05-20 Manuel López-Ibáñez <manu@gcc.gnu.org>
1454
1455 * diagnostic.c (diagnostic_print_caret_line): Fix off-by-one error
1456 when printing the caret character.
1457
72f8014e 14582015-05-20 Marek Polacek <polacek@redhat.com>
1459
1460 * cfgexpand.c (expand_debug_expr): Use UNARY_CLASS_P.
1461
21c8a0ab 14622015-05-20 Marek Polacek <polacek@redhat.com>
1463
1464 * expr.c (expand_cond_expr_using_cmove): Use COMPARISON_CLASS_P.
1465 * gimple-expr.c (gimple_cond_get_ops_from_tree): Likewise.
1466 * gimple-fold.c (canonicalize_bool): Likewise.
1467 (same_bool_result_p): Likewise.
1468 * tree-if-conv.c (parse_predicate): Likewise.
1469
74efe522 14702015-05-20 Marek Polacek <polacek@redhat.com>
1471
1472 * gimple-fold.c (fold_const_aggregate_ref_1): Use DECL_P.
1473 * gimplify.c (gimplify_modify_expr_rhs): Likewise.
1474
c4985cef 14752015-05-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1476
1477 * config/aarch64/aarch64.c (aarch64_class_max_nregs):
1478 Use UNITS_PER_VREG and UNITS_PER_WORD instead of their direct
1479 values.
1480
60b5d25f 14812015-05-20 Robert Suchanek <robert.suchanek@imgtec.com>
1482
1483 * config/mips/mips.h (micromips_globals): Declare.
1484
41fddcd4 14852015-05-20 David Malcolm <dmalcolm@redhat.com>
1486
1487 * timevar.def (TV_INITIALIZE_RTL): New.
1488 * toplev.c (initialize_rtl): Use an auto_timevar to account this
1489 function's time to TV_INITIALIZE_RTL.
1490
3ec9c447 14912015-05-20 Ilya Enkovich <enkovich.gnu@gmail.com>
1492
1493 * tree-chkp.c (chkp_maybe_copy_and_register_bounds): Remove useless
1494 gimple_build_nop calls.
1495 (chkp_find_bounds_for_elem): Likewise.
1496 (chkp_get_zero_bounds): Likewise.
1497 (chkp_get_none_bounds): Likewise.
1498 (chkp_get_bounds_by_definition): Likewise.
1499 (chkp_generate_extern_var_bounds): Likewise.
1500 (chkp_get_bounds_for_decl_addr): Likewise.
1501 (chkp_get_bounds_for_string_cst): Likewise.
1502
ad478851 15032015-05-20 Bin Cheng <bin.cheng@arm.com>
1504
1505 PR tree-optimization/65447
1506 * tree-ssa-loop-ivopts.c (struct iv_use): New fields.
1507 (dump_use, dump_uses): Support to dump sub use.
1508 (record_use): New parameters to support sub use. Remove call to
1509 dump_use.
1510 (record_sub_use, record_group_use): New functions.
1511 (compute_max_addr_offset, split_all_small_groups): New functions.
1512 (group_address_uses, rewrite_use_address): New functions.
1513 (strip_offset): New declaration.
1514 (find_interesting_uses_address): Call record_group_use.
1515 (add_candidate): New assertion.
1516 (infinite_cost_p): Move definition forward.
1517 (add_costs): Check INFTY cost and return immediately.
1518 (get_computation_cost_at): Clear setup cost and dependent bitmap
1519 for sub uses.
1520 (determine_use_iv_cost_address): Compute cost for sub uses.
1521 (rewrite_use_address_1): Rename from old rewrite_use_address.
1522 (free_loop_data): Free sub uses.
1523 (tree_ssa_iv_optimize_loop): Call group_address_uses.
1524
155e90fe 15252015-05-20 Kugan Vivekanandarajah <kuganv@linaro.org>
1526 Jim Wilson <jim.wilson@linaro.org>
1527
1528 * config/arm/aarch-common-protos.h (struct mem_cost_table): Added
1529 new fields loadv and storev.
1530 * config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
1531 Initialize loadv and storev.
1532 * config/arm/aarch-cost-tables.h (generic_extra_costs): Likewise.
1533 (cortexa53_extra_costs): Likewise.
1534 (cortexa57_extra_costs): Likewise.
1535 (xgene1_extra_costs): Likewise.
1536 * config/aarch64/aarch64.c (aarch64_rtx_costs): Update vector
1537 rtx_costs.
1538
15392015-05-20 Kugan Vivekanandarajah <kuganv@linaro.org>
1540
1541 * config/arm/arm.c (cortexa9_extra_costs): Initialize loadv and
1542 storev.
1543 (cortexa8_extra_costs): Likewise.
1544 (cortexa5_extra_costs): Likewise.
1545 (cortexa7_extra_costs): Likewise.
1546 (cortexa12_extra_costs): Likewise.
1547 (cortexa15_extra_costs): Likewise.
1548 (v7m_extra_costs): Likewise.
1549
32b97880 15502015-05-20 Jeff Law <law@redhat.com>
1551
1552 * tree-ssa-threadupdate.c (thread_single_edge): Use delete_jump_thread
1553 instead of open-coded version. Also delete the jump thread created
1554 within this function.
1555
2c50f1c8 15562015-05-20 Alan Modra <amodra@gmail.com>
1557
1558 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Return
1559 stack adjusting insn. Formatting.
1560 (rs6000_emit_prologue): Track stack adjusting insn, and use of
1561 r12. If possible, emit first -fsplit-stack arg pointer insn
1562 before stack adjust. Don't use r12 to save cr if split-stack.
1563
ec3f28c9 15642015-05-20 Alan Modra <amodra@gmail.com>
1565
1566 * common/config/rs6000/rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK):
1567 Define.
1568 (rs6000_supports_split_stack): New function.
1569 * gcc/config/rs6000/rs6000.c (machine_function): Add
1570 split_stack_arg_pointer.
1571 (TARGET_EXTRA_LIVE_ON_ENTRY, TARGET_INTERNAL_ARG_POINTER): Define.
1572 (setup_incoming_varargs): Use crtl->args.internal_arg_pointer
1573 rather than virtual_incoming_args_rtx.
1574 (rs6000_va_start): Likewise.
1575 (split_stack_arg_pointer_used_p): New function.
1576 (rs6000_emit_prologue): Set up arg pointer for -fsplit-stack.
1577 (morestack_ref): New var.
1578 (gen_add3_const, rs6000_expand_split_stack_prologue,
1579 rs6000_internal_arg_pointer, rs6000_live_on_entry,
1580 rs6000_split_stack_space_check): New functions.
1581 (rs6000_elf_file_end): Call file_end_indicate_split_stack.
1582 * gcc/config/rs6000/rs6000.md (UNSPEC_STACK_CHECK): Define.
1583 (UNSPECV_SPLIT_STACK_RETURN): Define.
1584 (split_stack_prologue, load_split_stack_limit,
1585 load_split_stack_limit_di, load_split_stack_limit_si,
1586 split_stack_return, split_stack_space_check): New expands and insns.
1587 * gcc/config/rs6000/rs6000-protos.h
1588 (rs6000_expand_split_stack_prologue): Declare.
1589 (rs6000_split_stack_space_check): Declare.
1590
6cd388e6 15912015-05-20 Alan Modra <amodra@gmail.com>
1592
1593 * config/rs6000/rs6000.c (struct rs6000_stack): Correct comments.
1594 (rs6000_stack_info): Don't zero offsets when not saving registers.
1595 (debug_stack_info): Adjust to omit printing unused offsets,
1596 as before.
1597 (direct_return): Test vrsave_size rather than vrsave_mask.
1598 (rs6000_emit_prologue): Likewise. Remove redundant altivec tests.
1599 (rs6000_emit_epilogue): Likewise.
1600
cf8caba3 16012015-05-20 Alan Modra <amodra@gmail.com>
1602
1603 * config/rs6000/rs6000.c (rs6000_stack_info): Don't zero offsets
1604 when not saving registers.
1605 (debug_stack_info): Adjust to omit printing unused offsets,
1606 as before.
1607 (rs6000_emit_epilogue): Adjust use_backchain_to_restore_sp
1608 expression.
1609
5f042f2e 16102015-05-19 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1611
1612 PR c++/65835
1613 * config/i386/winnt.c (struct wrapped_symbol_hasher): Change
1614 value_type to const char *.
1615
bcfd2aea 16162015-05-19 Sandra Loosemore <sandra@codesourcery.com>
1617
1618 * config.gcc [powerpc*-*-linux*]: Allow --enable-targets=all
1619 to build a biarch toolchain again.
1620
2bfdc8e7 16212015-05-19 Jan Hubicka <hubicka@ucw.cz>
1622
1623 * ipa-devirt.c (type_in_anonymous_namespace_p): Return true
1624 or implicit declarations.
1625 (odr_type_p): Check that TYPE_NAME is TYPE_DECL before looking
1626 into it.
1627 (get_odr_type): Check type has linkage before adding bases.
1628 (register_odr_type): Check that type has linkage before adding it.
1629 (type_known_to_have_no_deriavations_p): Rename to ..
1630 (type_known_to_have_no_derivations_p): This one.
1631 * ipa-utils.h (type_known_to_have_no_deriavations_p): Rename to ..
1632 (type_known_to_have_no_derivations_p): This one.
1633 * ipa-polymorphic-call.c
1634 (ipa_polymorphic_call_context::restrict_to_inner_type): Check that
1635 type has linkage.
1636
3d54a731 16372015-05-19 Eric Botcazou <ebotcazou@adacore.com>
1638
1639 * stor-layout.c (finalize_type_size): Use AGGREGATE_TYPE_P.
1640 (layout_type): Use RECORD_OR_UNION_TYPE_P.
1641
f0c550e7 16422015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1643
1644 * config/s390/s390.c (s390_vector_bool_type_p): New function.
1645 (s390_invalid_binary_op): New function.
1646 (TARGET_INVALID_BINARY_OP): Define macro.
1647
09c7ce53 16482015-05-19 David Sherwood <david.sherwood@arm.com>
1649
1650 * loop-invariant.c (create_new_invariant): Don't calculate address cost
1651 if mode is not a scalar integer.
1652 (get_inv_cost): Increase computational cost for unused invariants.
1653
7b2097d6 16542015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1655
1656 * config.gcc: Add vecintrin.h to extra_headers. Add s390-c.o to
1657 c_target_objs and cxx_target_objs. Add t-s390 to tmake_file.
1658 * config/s390/s390-builtin-types.def: New file.
1659 * config/s390/s390-builtins.def: New file.
1660 * config/s390/s390-builtins.h: New file.
1661 * config/s390/s390-c.c: New file.
1662 * config/s390/s390-modes.def: Add modes CCVEQANY, CCVH,
1663 CCVHANY, CCVHU, CCVHUANY, CCVFHANY, CCVFHEANY.
1664 * config/s390/s390-protos.h (s390_expand_vec_compare_cc)
1665 (s390_cpu_cpp_builtins, s390_register_target_pragmas): Add
1666 prototypes.
1667 * config/s390/s390.c (s390-builtins.h, s390-builtins.def):
1668 Include.
1669 (flags_builtin, flags_overloaded_builtin_var, s390_builtin_types)
1670 (s390_builtin_fn_types, s390_builtin_decls, code_for_builtin): New
1671 variable definitions.
1672 (s390_const_operand_ok): New function.
1673 (s390_expand_builtin): Rewrite.
1674 (s390_init_builtins): New function.
1675 (s390_handle_vectorbool_attribute): New function.
1676 (s390_attribute_table): Add s390_vector_bool attribute.
1677 (s390_match_ccmode_set): Handle new cc modes CCVH, CCVHU.
1678 (s390_branch_condition_mask): Generate masks for new modes.
1679 (s390_expand_vec_compare_cc): New function.
1680 (s390_mangle_type): Add mangling for vector bool types.
1681 (enum s390_builtin): Remove.
1682 (s390_atomic_assign_expand_fenv): Rename constants for sfpc and
1683 efpc builtins.
1684 * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Call
1685 s390_cpu_cpp_builtins.
1686 (REGISTER_TARGET_PRAGMAS): New macro.
1687 * config/s390/s390.md: Define more UNSPEC_VEC_* constants.
1688 (insn_cmp mode attribute): Add new CC modes.
1689 (s390_sfpc, s390_efpc): Rename patterns to sfpc and efpc.
1690 (lcbb): New pattern definition.
1691 * config/s390/s390intrin.h: Include vecintrin.h.
1692 * config/s390/t-s390: New file.
1693 * config/s390/vecintrin.h: New file.
1694 * config/s390/vector.md: Include vx-builtins.md.
1695 * config/s390/vx-builtins.md: New file.S/390 zvector builtin
1696 support.
1697
26233f43 16982015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1699
1700 * config/s390/s390-modes.def: Add new modes CCVEQ, CCVFH, and
1701 CCVFHE.
1702 * config/s390/s390.c (s390_match_ccmode_set): Handle new modes.
1703 (s390_select_ccmode): Likewise.
1704 (s390_canonicalize_comparison): Swap operands if necessary.
1705 (s390_expand_vec_compare_scalar): Expand DFmode compare using
1706 single element vector instructions.
1707 (s390_emit_compare): Call s390_expand_vec_compare_scalar.
1708 (s390_branch_condition_mask): Generate CC masks for the new modes.
1709 * config/s390/s390.md (v0, vf, vd): New mode attributes.
1710 (VFCMP, asm_fcmp, insn_cmp): New mode iterator and attributes.
1711 (*vec_cmp<insn_cmp>df_cconly, *fixuns_truncdfdi2_z13)
1712 (*fix_trunc<BFP:mode><GPR:mode>2_bfp, *floatunsdidf2_z13)
1713 (*floatuns<GPR:mode><FP:mode>2, *extendsfdf2_z13)
1714 (*extend<DSF:mode><BFP:mode>2): New insn definition.
1715 (fix_trunc<BFP:mode><GPR:mode>2_bfp, loatuns<GPR:mode><FP:mode>2)
1716 (extend<DSF:mode><BFP:mode>2): Turn into expander.
1717 (floatdi<mode>2, truncdfsf2, add<mode>3, sub<mode>3, mul<mode>3)
1718 (div<mode>3, *neg<mode>2, *abs<mode>2, *negabs<mode>2)
1719 (sqrt<mode>2): Add vector instruction.
1720
76a4c804 17212015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1722
1723 * config/s390/constraints.md (j00, jm1, jxx, jyy, v): New
1724 constraints.
1725 * config/s390/predicates.md (const0_operand, constm1_operand)
1726 (constable_operand): Accept vector operands.
1727 * config/s390/s390-modes.def: Add supported vector modes.
1728 * config/s390/s390-protos.h (s390_cannot_change_mode_class)
1729 (s390_function_arg_vector, s390_contiguous_bitmask_vector_p)
1730 (s390_bytemask_vector_p, s390_expand_vec_strlen)
1731 (s390_expand_vec_compare, s390_expand_vcond)
1732 (s390_expand_vec_init): Add prototypes.
1733 * config/s390/s390.c (VEC_ARG_NUM_REG): New macro.
1734 (s390_vector_mode_supported_p): New function.
1735 (s390_contiguous_bitmask_p): Mask out the irrelevant bits.
1736 (s390_contiguous_bitmask_vector_p): New function.
1737 (s390_bytemask_vector_p): New function.
1738 (s390_split_ok_p): Vector regs don't work either.
1739 (regclass_map): Add VEC_REGS.
1740 (s390_legitimate_constant_p): Handle vector constants.
1741 (s390_cannot_force_const_mem): Handle CONST_VECTOR.
1742 (legitimate_reload_vector_constant_p): New function.
1743 (s390_preferred_reload_class): Handle CONST_VECTOR.
1744 (s390_reload_symref_address): Likewise.
1745 (s390_secondary_reload): Vector memory instructions only support
1746 short displacements. Rename reload*_nonoffmem* to reload*_la*.
1747 (s390_emit_ccraw_jump): New function.
1748 (s390_expand_vec_strlen): New function.
1749 (s390_expand_vec_compare): New function.
1750 (s390_expand_vcond): New function.
1751 (s390_expand_vec_init): New function.
1752 (s390_dwarf_frame_reg_mode): New function.
1753 (print_operand): Handle addresses with 'O' and 'R' constraints.
1754 (NR_C_MODES, constant_modes): Add vector modes.
1755 (s390_output_pool_entry): Handle vector constants.
1756 (s390_hard_regno_mode_ok): Handle vector registers.
1757 (s390_class_max_nregs): Likewise.
1758 (s390_cannot_change_mode_class): New function.
1759 (s390_invalid_arg_for_unprototyped_fn): New function.
1760 (s390_function_arg_vector): New function.
1761 (s390_function_arg_float): Remove size variable.
1762 (s390_pass_by_reference): Handle vector arguments.
1763 (s390_function_arg_advance): Likewise.
1764 (s390_function_arg): Likewise.
1765 (s390_return_in_memory): Vector values are returned in a VR if
1766 possible.
1767 (s390_function_and_libcall_value): Handle vector arguments.
1768 (s390_gimplify_va_arg): Likewise.
1769 (s390_call_saved_register_used): Consider the arguments named.
1770 (s390_conditional_register_usage): Disable v16-v31 for non-vec
1771 targets.
1772 (s390_preferred_simd_mode): New function.
1773 (s390_support_vector_misalignment): New function.
1774 (s390_vector_alignment): New function.
1775 (TARGET_STRICT_ARGUMENT_NAMING, TARGET_DWARF_FRAME_REG_MODE)
1776 (TARGET_VECTOR_MODE_SUPPORTED_P)
1777 (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN)
1778 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
1779 (TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT)
1780 (TARGET_VECTOR_ALIGNMENT): Define target macro.
1781 * config/s390/s390.h (FUNCTION_ARG_PADDING): Define macro.
1782 (FIRST_PSEUDO_REGISTER): Increase value.
1783 (VECTOR_NOFP_REGNO_P, VECTOR_REGNO_P, VECTOR_NOFP_REG_P)
1784 (VECTOR_REG_P): Define macros.
1785 (FIXED_REGISTERS, CALL_USED_REGISTERS)
1786 (CALL_REALLY_USED_REGISTERS, REG_ALLOC_ORDER)
1787 (HARD_REGNO_CALL_PART_CLOBBERED, REG_CLASS_NAMES)
1788 (FUNCTION_ARG_REGNO_P, FUNCTION_VALUE_REGNO_P, REGISTER_NAMES):
1789 Add vector registers.
1790 (CANNOT_CHANGE_MODE_CLASS): Call C function.
1791 (enum reg_class): Add VEC_REGS, ADDR_VEC_REGS, GENERAL_VEC_REGS.
1792 (SECONDARY_MEMORY_NEEDED): Allow SF<->SI mode moves without
1793 memory.
1794 (DBX_REGISTER_NUMBER, FIRST_VEC_ARG_REGNO, LAST_VEC_ARG_REGNO)
1795 (SHORT_DISP_IN_RANGE, VECTOR_STORE_FLAG_VALUE): Define macro.
1796 * config/s390/s390.md (UNSPEC_VEC_*): New constants.
1797 (VR*_REGNUM): New constants.
1798 (ALL): New mode iterator.
1799 (INTALL): Remove mode iterator.
1800 Include vector.md.
1801 (movti): Implement TImode moves for VRs.
1802 Disable TImode splitter for VR targets.
1803 Implement splitting TImode GPR<->VR moves.
1804 (reload*_tomem_z10, reload*_toreg_z10): Replace INTALL with ALL.
1805 (reload<mode>_nonoffmem_in, reload<mode>_nonoffmem_out): Rename to
1806 reload<mode>_la_in, reload<mode>_la_out.
1807 (*movdi_64, *movsi_zarch, *movhi, *movqi, *mov<mode>_64dfp)
1808 (*mov<mode>_64, *mov<mode>_31): Add vector instructions.
1809 (TD/TF mode splitter): Enable for GPRs only (formerly !FP).
1810 (mov<mode> SF SD): Prefer lder, lde for loading.
1811 Add lrl and strl instructions.
1812 Add vector instructions.
1813 (strlen<mode>): Rename old strlen<mode> to strlen_srst<mode>.
1814 Call s390_expand_vec_strlen on z13.
1815 (*cc_to_int): Change predicate to nonimmediate_operand.
1816 (addti3): Rename to *addti3. New expander.
1817 (subti3): Rename to *subti3. New expander.
1818 * config/s390/vector.md: New file.
1819
cc79fcc9 18202015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1821
1822 * common/config/s390/s390-common.c (processor_flags_table): Add
1823 z13.
1824 * config.gcc: Add z13.
1825 * config/s390/s390-opts.h (enum processor_type): Add
1826 PROCESSOR_2964_Z13.
1827 * config/s390/s390.c (s390_adjust_priority): Check for
1828 PROCESSOR_2964_Z13.
1829 (s390_reorg): Likewise.
1830 (s390_sched_reorder): Likewise.
1831 (s390_sched_variable_issue): Likewise.
1832 (s390_loop_unroll_adjust): Likewise.
1833 (s390_option_override): Likewise. Default to -mvx when available.
1834 * config/s390/s390.h (enum processor_flags): Add PF_Z13 and PF_VX.
1835 (TARGET_CPU_Z13, TARGET_CPU_VX, TARGET_Z13, TARGET_VX)
1836 (TARGET_VX_ABI): Define macros.
1837 macros.
1838 (TARGET_DEFAULT): Add MASK_OPT_VX.
1839 * config/s390/s390.md ("cpu" attribute): Add z13.
1840 ("cpu_facility" attribute): Add vec.
1841 * config/s390/s390.opt (processor_type): Add z13.
1842 (mvx): New options.
1843 * doc/invoke.texi: Add z13 option for -march.
1844
3cddccea 18452015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1846
1847 * config/s390/predicates.md (shift_count_or_setmem_operand): Add
1848 mode check to make sure that only scalar integer values are
1849 accepted.
1850
82915df7 18512015-05-19 Jan Hubicka <hubicka@ucw.cz>
1852
1853 * tree.c (verify_type_variant): Fix #undef.
1854 (gimple_canonical_types_compatible_p): Move here from lto.c
1855 (verify_type): Verify TYPE_CANONICAL compatibility.
1856 * tree.h (gimple_canonical_types_compatible_p): Declare.
1857
d7729e26 18582015-05-19 Jakub Jelinek <jakub@redhat.com>
1859
1860 PR middle-end/66199
1861 * tree.h (OMP_TEAMS_COMBINED): Define.
1862 * gimplify.c (enum gimplify_omp_var_data): Add
1863 GOVD_LINEAR_LASTPRIVATE_NO_OUTER.
1864 (enum omp_region_type): Add ORT_COMBINED_TEAMS.
1865 (omp_notice_variable): Accept both ORT_TEAMS
1866 and ORT_COMBINED_TEAMS. Don't recurse if
1867 GOVD_LINEAR_LASTPRIVATE_NO_OUTER is set and either
1868 GOVD_LINEAR is set, or GOVD_LASTPRIVATE without
1869 GOVD_FIRSTPRIVATE.
1870 (omp_no_lastprivate): New function.
1871 (gimplify_scan_omp_clauses): For OMP_CLAUSE_LASTPRIVATE
1872 and OMP_CLAUSE_LINEAR, if omp_no_lastprivate, don't
1873 notice_outer and set appropriate bits, otherwise make
1874 sure default(none) combined constructs won't complain.
1875 (gimplify_adjust_omp_clauses): Remove OMP_CLAUSE_LINEAR
1876 outer special casing, for OMP_CLAUSE_LASTPRIVATE if
1877 omp_no_lastprivate either remove the clause or turn it
1878 into OMP_CLAUSE_PRIVATE.
1879 (gimplify_omp_for): Fix up handling of implicit
1880 lastprivate or linear iterators.
1881 (gimplify_omp_workshare): For OMP_TEAMS_COMBINED use
1882 ORT_COMBINED_TEAMS.
1883 * omp-low.c (lower_omp_for_lastprivate): For combined
1884 for simd use fd.loop.n2 from the for rather than simd.
1885
e8ac5777 18862015-05-19 Richard Sandiford <richard.sandiford@arm.com>
1887
1888 * config/cris/cris.c (cris_expand_prologue): Use gen_raw_REG
1889 instead of gen_rtx_raw_REG.
1890 (cris_expand_epilogue): Likewise.
1891 * config/microblaze/microblaze.c (microblaze_classify_address):
1892 Likewise.
1893 * config/sparc/sparc.md: Likewise.
1894
7bc95bfb 18952015-05-19 Uros Bizjak <ubizjak@gmail.com>
1896
1897 * config/alpha/alpha.c (alpha_legitimize_reload_address)
1898 (alpha_preferred_reload_class, alpha_legitimate_constant_p): Use
1899 CONST_INT_P, CONST_SCALAR_INT_P and CONST_DOUBLE_P predicates.
1900 (alpha_split_reload_pair) <case CONST_INT, case CONST_WIDE_INT>:
1901 Use CASE_CONST_SCALAR_INT.
1902 (print_operand) <case 'M'>: Use mode_width_operand to check the
1903 value of the constant.
1904 * config/alpha/alpha.md (movti): Use CONST_SCALAR_INT_P predicate.
1905 * config/alpha/predicates.md (input_operand): Use general_operand
1906 instead of match_code as operand check.
1907 (symbolic_operand): Use match_code with subexpression digits.
1908 * config/alpha/constraints.md (Q): Ditto.
1909
cc0a1ae3 19102015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1911
1912 * optabs.c (expand_vec_perm): Don't re-use SEL as target operand.
1913
ddb92daa 19142015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1915
1916 * config/s390/s390.c (s390_secondary_reload): Fix check for
1917 load/store relative.
1918
e8cdfdfd 19192015-05-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1920
1921 * recog.h: Increase MAX_RECOG_ALTERNATIVES. Change type of
1922 alternative_mask to uint64_t.
1923
676ec1ba 19242015-05-19 Jakub Jelinek <jakub@redhat.com>
1925
1926 PR tree-optimization/66187
1927 * match.pd ((bit_and (plus/minus (convert @0) (convert @1)) mask)):
1928 Pass TYPE_SIGN to tree_int_cst_min_precision. If
1929 !TYPE_OVERFLOW_WRAPS, ensure @4 is non-negative.
1930
551e34da 19312015-05-19 David Malcolm <dmalcolm@redhat.com>
1932
1933 * diagnostic.c (diagnostic_report_current_module): Strengthen
1934 local "new_map" from const line_map * to
1935 const line_map_ordinary *.
1936 * genmatch.c (error_cb): Likewise for local "map".
1937 (output_line_directive): Likewise for local "map".
1938 * input.c (expand_location_1): Likewise for local "map".
1939 Pass NULL rather than &map to
1940 linemap_unwind_to_first_non_reserved_loc, since the value is never
1941 read from there, and the value written back not read from here.
1942 (is_location_from_builtin_token): Strengthen local "map" from
1943 const line_map * to const line_map_ordinary *.
1944 (dump_location_info): Strengthen locals "map" from
1945 line_map *, one to const line_map_ordinary *, the other
1946 to const line_map_macro *.
1947 * tree-diagnostic.c (loc_map_pair): Strengthen field "map" from
1948 const line_map * to const line_map_macro *.
1949 (maybe_unwind_expanded_macro_loc): Add a call to
1950 linemap_check_macro when writing to the "map" field of the
1951 loc_map_pair.
1952 Introduce local const line_map_ordinary * "ord_map", using it in
1953 place of "map" in the part of the function where we know we have
1954 an ordinary map. Strengthen local "m" from const line_map * to
1955 const line_map_ordinary *.
1956
02737e05 19572015-05-19 Nick Clifton <nickc@redhat.com>
1958
1959 PR target/66156
1960 * config/msp430/msp430.md (zero_extendhisi2): Add support for
1961 separate source and destination registers.
1962
41fdc863 19632015-05-19 Richard Biener <rguenther@suse.de>
1964
1965 PR tree-optimization/66165
1966 * tree-vect-slp.c (vect_supported_load_permutation_p): Add guard
1967 for no load permutation.
1968
1969 PR tree-optimization/66185
1970 * tree-vect-slp.c (vect_build_slp_tree): Properly roll back
1971 when building the SLP node from scalars.
1972
97354ae4 19732015-05-19 Eric Botcazou <ebotcazou@adacore.com>
1974 Tristan Gingold <gingold@adacore.com>
1975
1976 * insn-notes.def (UPDATE_SJLJ_CONTEXT): New note.
1977 * builtins.c (expand_builtin_update_setjmp_buf): Make global.
1978 (expand_stack_restore): Call record_new_stack_level.
1979 (expand_stack_save): Do not call do_pending_stack_adjust.
1980 * builtins.h (expand_builtin_update_setjmp_buf): Declare.
1981 * calls.c (expand_call): Call record_new_stack_level for alloca.
1982 * except.c (sjlj_mark_call_sites): Expand builtin_update_setjmp_buf
1983 wherever a NOTE_INSN_UPDATE_SJLJ_CONTEXT note is present.
1984 (update_sjlj_context): New global function.
1985 * except.h (update_sjlj_context): Declare.
1986 * explow.c (record_new_stack_level): New global function.
1987 (allocate_dynamic_stack_space): Call record_new_stack_level.
1988 * explow.h (record_new_stack_level): Declare.
1989 * final.c (final_scan_insn): Deal with NOTE_INSN_UPDATE_SJLJ_CONTEXT.
1990 * cfgrtl.c (duplicate_insn_chain): Likewise.
1991
a8b58ffb 19922015-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1993
1994 * calls.c: Always define STACK_GROWS_DOWNWARD as 0 or 1.
1995 (mem_overlaps_already_clobbered_arg_p): Rewrite ifdef
1996 STACK_GROWS_DOWNWARD as normal if.
02737e05 1997 (expand_call): Likewise.
a8b58ffb 1998
cf9350df 19992015-05-19 Oleg Endo <olegendo@gcc.gnu.org>
2000
2001 PR target/54236
2002 * config/sh/sh.md (*round_int_even): New insn_and_split and
2003 accompanying new unnamed split.
2004
837d3ea8 20052015-05-19 Richard Sandiford <richard.sandiford@arm.com>
2006
2007 * bitmap.c (bitmap_set_range): Handle count==1 specially.
2008 (bitmap_clear_range): Likewise.
2009 * cfgcleanup.c (mark_effect): Use bitmap_clear_range and
2010 bitmap_set_range unconditionally.
2011 * df-problems.c (df_simulate_one_insn_forwards): Likewise.
2012 * df-scan.c (df_mark_reg): Likewise.
2013 * haifa-sched.c (setup_ref_regs): Likewise.
2014 * sched-rgn.c (update_live_1): Likewise.
2015
788bed51 20162015-05-19 Richard Sandiford <richard.sandiford@arm.com>
2017
2018 * regs.h (END_HARD_REGNO): Delete.
2019 (END_REGNO): Move to...
2020 * rtl.h: ...here.
2021 * bt-load.c (note_btr_set): Use END_REGNO instead of END_HARD_REGNO.
2022 * caller-save.c (mark_set_regs): Likewise.
2023 * combine.c (move_deaths, distribute_notes): Likewise.
2024 * cse.c (invalidate, invalidate_for_call): Likewise.
2025 * df-scan.c (df_ref_record): Likewise.
2026 * postreload-gcse.c (reg_changed_after_insn_p): Likewise.
2027 (record_last_reg_set_info): Likewise.
2028 * reg-stack.c (convert_regs_exit): Likewise.
2029 * reload.c (reg_overlap_mentioned_for_reload_p): Likewise.
2030 * resource.c (update_live_status): Likewise.
2031 * rtlanal.c (find_reg_fusage, find_regno_fusage): Likewise.
2032
1c0849e5 20332015-05-19 Richard Sandiford <richard.sandiford@arm.com>
2034
2035 * rtl.h (reg_info): Add an nregs field.
2036 (REG_NREGS): Use it.
2037 (SET_REGNO_RAW): Delete.
2038 (set_regno_raw): New function.
2039 * regs.h (END_HARD_REGNO): Make equivalent to END_REGNO.
2040 (END_REGNO): Redefine in terms of REG_NREGS.
2041 * read-rtl.c (read_rtx_code): Call set_regno_raw instead of
2042 SET_REGNO_RAW.
2043 * emit-rtl.c (set_mode_and_regno): Likewise.
2044 * df-scan.c (df_ref_change_reg_with_loc): Use set_mode_and_regno
2045 instead of SET_REGNO_RAW.
2046
937ca48e 20472015-05-19 Richard Sandiford <richard.sandiford@arm.com>
2048
2049 * rtl.h (PUT_MODE_RAW): New macro.
2050 (PUT_REG_NOTE_KIND): Use it.
2051 (set_mode_and_regno): Declare.
2052 (gen_raw_REG): Change regno to "unsigned int".
2053 (gen_rtx_REG): Change "unsigned" to "unsigned int".
2054 (PUT_MODE): Forward to PUT_MODE_RAW for generators, otherwise
2055 use set_mode_and_regno to change the mode of registers.
2056 * gengenrtl.c (gendef): Use PUT_MODE_RAW.
2057 * emit-rtl.c (set_mode_and_regno): New function.
2058 (gen_raw_REG): Change regno to unsigned int. Use set_mode_and_regno.
2059 * caller-save.c (reg_save_code): Use set_mode_and_regno.
2060 * expr.c (init_expr_target): Likewise.
2061 * ira.c (setup_prohibited_mode_move_regs): Likewise.
2062 * postreload.c (reload_cse_simplify_operands): Likewise.
2063
06a78ffe 20642015-05-19 Richard Sandiford <richard.sandiford@arm.com>
2065
2066 * caller-save.c (init_caller_save): Use word_mode and
2067 FIRST_PSEUDO_REGISTER when creating temporary rtxes.
2068 * expr.c (init_expr_target): Likewise.
2069 * ira.c (setup_prohibited_mode_move_regs): Likewise.
2070 * postreload.c (reload_cse_regs_1): Likewise.
2071
15183fd2 20722015-05-19 Richard Sandiford <richard.sandiford@arm.com>
2073
2074 * rtl.def (REG): Change format to "r".
2075 * rtl.h (rtunion): Remove rt_reg.
2076 (reg_info): New structure.
2077 (rtx_def): Add reg field to main union.
2078 (X0REGATTR): Delete.
2079 (REG_CHECK): New macro.
2080 (SET_REGNO_RAW, rhs_regno, REG_ATTRS): Use it.
2081 * rtl.c (rtx_format): Document "r".
2082 (rtx_code_size): Handle REG specially.
2083 * gengenrtl.c (special_format): Return true for formats
2084 that include 'r'.
2085 * gengtype.c (adjust_field_rtx_def): Handle 'r' fields.
2086 Deal with REG_ATTRS after the field loop.
2087 * emit-rtl.c (gen_raw_REG): Call rtx_alloc_stat directly.
2088 * expmed.c (init_expmed): Call gen_raw_REG instead of
2089 gen_rtx_raw_REG.
2090 * expr.c (init_expr_target): Likewise.
2091 * regcprop.c (maybe_mode_change): Likewise.
2092 * varasm.c (make_decl_rtl): Likewise.
2093 * final.c (leaf_renumber_regs_insn): Return early after
2094 handling REGs.
2095 * genemit.c (gen_exp): Handle 'r' fields.
2096 * genpeep.c (match_rtx): Likewise.
2097 * gensupport.c (subst_pattern_match): Likewise.
2098 (get_alternatives_number, collect_insn_data, alter_predicate_for_insn)
2099 (alter_constraints, subst_dup): Likewise.
2100 * read-rtl.c (read_rtx_code): Likewise.
2101 * print-rtl.c (print_rtx): Likewise.
2102 * genrecog.c (find_operand, find_matching_operand): Likewise.
2103 (validate_pattern, match_pattern_2): Likewise.
2104 (parameter::UINT, rtx_test::REGNO_FIELD): New enum values.
2105 (rtx_test::regno_field): New function.
2106 (operator ==, safe_to_hoist_p, transition_parameter_type)
2107 (parameter_type_string, print_parameter_value)
2108 (print_nonbool_test, print_test): Handle new enum values.
2109 * cselib.c (rtx_equal_for_cselib_1): Handle REG specially.
2110 * lra-constraints.c (operands_match_p): Likewise.
2111
91f5b5cb 21122015-05-19 Richard Sandiford <richard.sandiford@arm.com>
2113
2114 * df.h (df_ref_change_reg_with_loc): Remove old_regno parameter.
2115 Change type of new_regno to unsigned int.
2116 * df-scan.c (df_ref_change_reg_with_loc_1): Change type of
2117 new_regno to unsigned int.
2118 (df_ref_change_reg_with_loc): Remove old_regno parameter.
2119 Change type of new_regno to unsigned int. Use SET_REGNO_RAW.
2120 * rtl.h (SET_REGNO): Update call to df_ref_change_reg_with_loc.
2121 (SET_REGNO_RAW): Add space after ",".
2122
0933f1d9 21232015-05-19 Richard Sandiford <richard.sandiford@arm.com>
2124
2125 * rtl.h (REG_NREGS): New macro
2126 * alias.c (record_set): Use it.
2127 * cfgcleanup.c (mark_effect): Likewise.
2128 * combine.c (likely_spilled_retval_1): Likewise.
2129 (likely_spilled_retval_p, can_change_dest_mode): Likewise.
2130 (move_deaths, distribute_notes): Likewise.
2131 * cselib.c (cselib_record_set): Likewise.
2132 * df-problems.c (df_simulate_one_insn_forwards): Likewise.
2133 * df-scan.c (df_mark_reg): Likewise.
2134 * dse.c (look_for_hardregs): Likewise.
2135 * dwarf2out.c (reg_loc_descriptor): Likewise.
2136 (multiple_reg_loc_descriptor): Likewise.
2137 * expr.c (write_complex_part, read_complex_part): Likewise.
2138 (emit_move_complex): Likewise.
2139 * haifa-sched.c (setup_ref_regs): Likewise.
2140 * ira-lives.c (mark_hard_reg_live): Likewise.
2141 * lra.c (lra_set_insn_recog_data): Likewise.
2142 * mode-switching.c (create_pre_exit): Likewise.
2143 * postreload.c (reload_combine_recognize_const_pattern): Likewise.
2144 (reload_combine_recognize_pattern): Likewise.
2145 (reload_combine_note_use, move2add_record_mode): Likewise.
2146 (reload_cse_move2add): Likewise.
2147 * reg-stack.c (subst_stack_regs_pat): Likewise.
2148 * regcprop.c (kill_value, copy_value): Likewise.
2149 (copyprop_hardreg_forward_1): Likewise.
2150 * regrename.c (verify_reg_in_set, scan_rtx_reg): Likewise.
2151 (build_def_use): Likewise.
2152 * sched-deps.c (mark_insn_reg_birth, mark_reg_death): Likewise.
2153 (deps_analyze_insn): Likewise.
2154 * sched-rgn.c (check_live_1, update_live_1): Likewise.
2155 * sel-sched.c (count_occurrences_equiv): Likewise.
2156 * valtrack.c (dead_debug_insert_temp): Likewise.
2157
6a298741 21582015-05-19 Richard Sandiford <richard.sandiford@arm.com>
2159
2160 * cfgcleanup.c (mentions_nonequal_regs): Use END_REGNO.
2161 * dse.c (note_add_store): Likewise.
2162 * ira-lives.c (mark_hard_reg_dead): Likewise.
2163 * loop-invariant.c (mark_reg_store): Likewise.
2164 (mark_reg_death): Likewise.
2165 * postreload.c (reload_combine): Likewise.
2166 (reload_combine_note_store): Likewise.
2167 (reload_combine_note_use): Likewise.
2168 * recog.c (peep2_reg_dead_p): Likewise.
2169
d27fe72b 21702015-05-19 Alan Modra <amodra@gmail.com>
2171
2172 * config/rs6000/predicates.md (gpc_reg_operand): Don't allow all
2173 hard registers numbered greater or equal to ARG_POINTER_REGNUM.
2174 (reg_or_neg_short_operand, fix_trunc_dest_operand): Delete
2175 unused predicates.
2176 * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*):
2177 Use altivec_register_operand. Make insn predicate TARGET_ALTIVEC.
2178 * config/rs6000/rs6000.md (extzvdi_internal2): Use cc_reg_operand.
2179 * config/rs6000/vsx.md (vsx_float<VSi><mode>2): Expand comment.
2180
069b9d52 21812015-05-19 Sameera Deshpande <Sameera.Deshpande@imgtec.com>
2182
2183 * config/mips/mips.md (JOIN_MODE): New mode iterator.
2184 (join2_load_Store<JOIN_MODE:mode>): New pattern.
2185 (join2_loadhi): Likewise.
2186 (define_peehole2): Add peephole2 patterns to join 2 HI/SI/SF/DF-mode
2187 load-load and store-stores.
2188 * config/mips/mips.opt (mload-store-pairs): New option.
2189 (TARGET_LOAD_STORE_PAIRS): New macro.
2190 * config/mips/mips.h (ENABLE_LD_ST_PAIRS): Likewise.
2191 * config/mips/mips-protos.h (mips_load_store_bonding_p): New prototype.
2192 * config/mips/mips.c (mips_load_store_bonding_p): New function.
2193
dfcf26a5 21942015-05-19 Mikhail Maltsev <maltsevm@gmail.com>
2195
2196 * bb-reorder.c (fix_up_fall_thru_edges): Use std::swap instead of
2197 explicit swaps.
2198 * dojump.c (do_compare_rtx_and_jump): Likewise.
2199 * expmed.c (emit_store_flag_1): Likewise.
2200 * fibonacci_heap.h (fibonacci_heap::union_with): Likewise.
2201 * final.c (sprint_ul): Use std::reverse for reversing a string.
2202 * fold-const.c (extract_muldiv_1): Use std::swap.
2203 * genmodes.c (emit_mode_int_n): Likewise.
2204 * ifcvt.c (dead_or_predicable): Likewise.
2205 * ira-build.c (ira_merge_live_ranges): Likewise.
2206 (swap_allocno_copy_ends_if_necessary): Likewise.
2207 * ira.c (ira_setup_alts): Likewise.
2208 * loop-iv.c (iv_analyze_expr): Likewise.
2209 (implies_p): Likewise.
2210 (canon_condition): Likewise.
2211 * lra-constraints.c (swap_operands): Likewise.
2212 * lra-lives.c (lra_merge_live_ranges): Likewise.
2213 * omega.c (swap): Remove.
2214 (bswap): Remove.
2215 (omega_unprotect_1): Use std::swap.
2216 (omega_solve_geq): Likewise.
2217 * optabs.c (expand_binop_directly): Likewise.
2218 (expand_binop): Likewise.
2219 (emit_conditional_move): Likewise.
2220 (emit_conditional_add): Likewise.
2221 * postreload.c (reload_cse_simplify_operands): Likewise.
2222 * reg-stack.c (emit_swap_insn): Likewise.
2223 (swap_to_top): Likewise.
2224 (compare_for_stack_reg): Likewise.
2225 (subst_asm_stack_regs): Likewise.
2226 * reload.c (find_reloads): Likewise.
2227 * reload1.c (gen_reload_chain_without_interm_reg_p): Likewise.
2228 * sel-sched.c (invoke_reorder_hooks): Likewise.
2229 (create_block_for_bookkeeping): Likewise.
2230 * tree-data-ref.c (lambda_matrix_row_exchange): Remove.
2231 (lambda_matrix_right_hermite): Use std::swap.
2232 * tree-ssa-coalesce.c (sort_coalesce_list): Likewise.
2233 * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
2234 * tree-ssa-loop-ivopts.c (iv_ca_delta_reverse): Likewise.
2235 * tree-ssa-math-opts.c (is_widening_mult_p): Likewise.
2236 * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
2237 * tree-ssa-reassoc.c (linearize_expr_tree): Likewise.
2238 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
2239 * tree-vrp.c (compare_ranges): Likewise.
2240 * var-tracking.c (add_with_sets): Likewise.
2241 (vt_find_locations): Likewise.
2242
c13554dd 22432015-05-18 Andreas Tobler <andreast@gcc.gnu.org>
2244
2245 * config/freebsd-spec.h (FBSD_STARTFILE_SPEC): Add the bits to build
2246 pie executables.
2247 (FBSD_ENDFILE_SPEC): Likewise.
2248 * config/i386/freebsd.h (STARTFILE_SPEC): Remove and use the one from
2249 config/freebsd-spec.h.
2250 (ENDFILE_SPEC): Likewise.
2251
21469cdd 22522015-05-18 Uros Bizjak <ubizjak@gmail.com>
2253 Richard Henderson <rth@redhat.com>
2254
2255 PR target/57032
2256 * config/alpha/constraints.md (Q): Rewrite as define_memory_constraint.
2257 Check for a memory location that is not a reference (using an AND)
2258 to an unaligned location here.
2259 * config/alpha/predicates.md (normal_memory_operand): Remove.
2260
9ed784d8 22612015-05-18 Alex Velenko <Alex.Velenko@arm.com>
2262
2263 * config/arm/arm.md (andsi_not_shiftsi_si_scc): New pattern.
2264 (andsi_not_shiftsi_si_scc_no_reuse): New pattern.
2265
c4d69063 22662015-05-18 Robert Suchanek <robert.suchanek@imgtec.com>
2267
2268 * config/mips/mips.c (micromips_globals): New variable.
2269 (mips_set_compression_mode): Save and reinitialize target-dependent
2270 state for microMIPS.
2271
bf4fc919 22722015-05-18 Martin Liska <mliska@suse.cz>
2273
2274 * dbgcnt.def: Add new counter.
7bc95bfb 2275 * ipa-icf.c (sem_item_optimizer::merge_classes): Use the counter.
bf4fc919 2276
0c976409 22772015-05-18 Martin Liska <mliska@suse.cz>
2278
2279 * dbgcnt.def: Sort counters.
2280 * opts.c (common_handle_option): Do not compile if
2281 -fdbg-cnt-list is enabled.
2282
2e474820 22832015-05-18 Tom de Vries <tom@codesourcery.com>
2284
2285 * gimplify.c (gimplify_modify_expr): Remove do_deref handling.
2286 (gimplify_va_arg_expr): Remove do_deref handling. Remove adding of
2287 address operator to va_list operand.
2288 * tree-stdarg.c (expand_ifn_va_arg_1): Do deref of va_list operand
2289 unconditionally.
2290 * config/i386/i386.c (ix86_gimplify_va_arg): Remove deref on va_list
2291 operand.
2292 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Same.
2293 * config/s390/s390.c (s390_gimplify_va_arg): Same.
2294 * config/spu/spu.c (spu_gimplify_va_arg_expr): Same.
2295
67a8fb5d 22962015-05-18 Tom de Vries <tom@codesourcery.com>
2297
2298 * tree-ssa-tail-merge.c: Fix whitespace.
2299
56c066e0 23002015-05-17 Jim Wilson <jim.wilson@linaro.org>
2301
2302 * doc/invoke.texi (ARM Options, mtune): Add generic-armv7-a,
2303 cortex-a17, and cortex-a17.cortex-a7.
2304
cc3ebac3 23052015-05-17 Oleg Endo <olegendo@gcc.gnu.org>
2306
2307 PR target/54236
2308 * config/sh/sh.md (*addc_2r_t): Use ashift instead of mult.
2309
d997eb17 23102015-05-17 Uros Bizjak <ubizjak@gmail.com>
2311
2312 PR target/66174
2313 * config/i386/i386.c (expand_vec_perm_blend): Enable HImode and
2314 QImode inner modes for TARGET_AVX512BW. Force mask operand
2315 to a register for AVX512F modes.
2316
23172015-05-16 Jan Hubicka <hubicka@ucw.cz>
5be0de38 2318
2319 * toplev.c (emit_debug_global_declarations): Do not output debug info
2320 when doing slim LTO objects.
2321
d997eb17 23222015-05-16 Jan Hubicka <hubicka@ucw.cz>
2c803c54 2323
2324 * ipa-utils.h (warn_types_mismatch, odr_or_derived_type_p,
2325 odr_types_equivalent_p): Declare.
2326 (odr_type_p): Use gcc_checking_assert.
2327 (type_in_anonymous_namespace_p) Declare.
2328 (type_with_linkage_p): Declare.
2329 * common.opt (Wlto-type-mismatch): New warning.
2330 * ipa-devirt.c (compound_type_base): New function.
2331 (odr_or_derived_type_p): New function.
2332 (odr_types_equivalent_p): New function.
2333 (add_type_duplicate): Simplify.
2334 (type_with_linkage_p): Add hack to prevent false positives on C types
2335 (type_in_anonymous_namespace_p): Likewise.
2336 * tree.c (need_assembler_name_p): Use type_with_linkage.
2337 * tree.h (type_in_anonymous_namespace_p): Remove.
2338 * doc/invoke.texi (-Wlto-type-mismatch): Document
2339
d997eb17 23402015-05-16 Jan Hubicka <hubicka@ucw.cz>
17223f31 2341
2342 * tree.c (verify_type_variant): Verify tree_base and type_common flags.
2343 (verify_type): Verify STRING_FLAG.
2344
09172322 23452015-05-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
2346
2347 PR fortran/44054
2348 * tree-pretty-print.c (percent_K_format): Replace locus pointer
2349 with accessor function.
2350 * tree-diagnostic.c (diagnostic_report_current_function): Use
2351 diagnostic_location function.
2352 (maybe_unwind_expanded_macro_loc): Likewise.
2353 (virt_loc_aware_diagnostic_finalizer): Likewise.
2354 (default_tree_printer): Replace locus pointer with accessor function.
2355 * diagnostic.c (diagnostic_initialize): Initialize caret_chars array.
2356 (diagnostic_set_info_translated): Initialize second location.
2357 (diagnostic_build_prefix): Use CARET_LINE_MARGIN.
2358 (diagnostic_show_locus): Handle two locations. Call
2359 diagnostic_print_caret_line.
2360 (diagnostic_print_caret_line): New.
2361 (default_diagnostic_starter): Use diagnostic_location function.
2362 (diagnostic_report_diagnostic): Use diagnostic_location function.
2363 (verbatim): Do not set text.locus.
2364 * diagnostic.h (struct diagnostic_info): Remove location field.
2365 (struct diagnostic_context): Make caret_chars an array of two.
2366 (diagnostic_location): New inline.
2367 (diagnostic_expand_location): Handle two locations.
2368 (diagnostic_same_line): New inline.
2369 (diagnostic_print_caret_line): Declare.
2370 (CARET_LINE_MARGIN): New constant.
2371 * pretty-print.c (pp_printf): Do not set text.locus.
2372 (pp_verbatim): Do not set text.locus.
2373 * pretty-print.h (MAX_LOCATIONS_PER_MESSAGE): New constant.
2374 (struct text_info): Replace locus pointer with locations
2375 array. Add accessor functions.
2376
17202aa5 23772015-05-16 Kugan Vivekanandarajah <kuganv@linaro.org>
2378 Zhenqiang Chen <zhenqiang.chen@linaro.org>
2379
2380 PR target/65768
2381 * config/arm/arm.h (DONT_EARLY_SPLIT_CONSTANT): New macro.
2382 * config/arm/arm.md (subsi3, andsi3, iorsi3, xorsi3, movsi): Keep some
2383 large constants in register instead of splitting them.
2384
b4e5c0d9 23852015-05-16 Uros Bizjak <ubizjak@gmail.com>
2386
2387 PR target/66140
2388 * config/alpha/alpha.c (get_aligned_mem): Also look for reload
2389 replacements in memory addresses.
2390 (get_unaligned_address): Ditto.
2391
d792dcdf 23922015-05-15 Marc Glisse <marc.glisse@inria.fr>
2393
2394 PR tree-optimization/64454
2395 * match.pd ((X % Y) % Y, (X % Y) < Y): New patterns.
2396 (-1 - A -> ~A): Remove unnecessary condition.
2397
5551c8d9 23982015-05-15 Gregor Richards <gregor.richards@uwaterloo.ca>
2399
2400 * config/i386/linux.h (MUSL_DYNAMIC_LINKER): Define.
2401 * config/i386/linux64.h (MUSL_DYNAMIC_LINKER32): Define.
2402 (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32): Define.
2403
9664a778 24042015-05-15 Ilya Enkovich <ilya.enkovich@intel.com>
2405
2406 * ipa-chkp.h (chkp_wrap_function): New.
2407 * ipa-chkp.c (chkp_wrap_function): Remove 'static'.
2408 (chkp_wrap_function_name): New.
2409 (chkp_build_instrumented_fndecl): Use chkp_wrap_function_name
2410 to get wrapper name.
2411 * lto-cgraph.c: Include ipa-chkp.h.
2412 (input_cgraph_1): Avoid alias chain for wrappers.
2413
d86dfeae 24142015-05-15 Ilya Enkovich <enkovich.gnu@gmail.com>
2415
2416 PR middle-end/66134
2417 * tree-chkp.c (chkp_get_orginal_bounds_for_abnormal_copy): New.
2418 (chkp_maybe_copy_and_register_bounds): Don't copy abnormal copy.
2419
0da7e4e7 24202015-05-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2421
2422 * config/aarch64/aarch64.h (AARCH64_TUNE_SLOWMUL): Delete.
2423 (AARCH64_FL_SLOWMUL): Delete.
2424 (AARCH64_FL_CRC): Redefine to 1<<3.
2425 (AARCH64_FL_USE_FMA_STEERING_PASS): Redefine to 1<<4.
2426
38663330 24272015-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2428
2429 * config/arm/arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Add appropriate
2430 casting.
2431
4afce771 24322015-05-15 Uros Bizjak <ubizjak@gmail.com>
2433
2434 * config/alpha/alpha.md (extendqidi2): Use general_operand
2435 instead of some_operand for operand[1] predicate.
2436 (extendhidi2): Ditto.
2437 (cbranchdi4): Use general_operand instead of some_operand
2438 for operand[1] and operands[2] predicates.
2439 (cstoredi4): Ditto.
2440 * config/alpha/predicates.md (some_operand): Remove unused predicate.
2441 (some_ni_operand): Ditto.
2442
316e4f71 24432015-05-15 Uros Bizjak <ubizjak@gmail.com>
2444
2445 * config/alpha/alpha.c (alpha_extract_integer): Do not handle
2446 CONST_WIDE_INT and CONST_DOUBLE. Assert CONST_INT_P (x).
2447 (alpha_legitimate_constant_p) <case CONST_WIDE_INT>: Check high and
2448 low part of the constant using alpha_emit_set_const_1.
2449 (alpha_expand_mov): Do not handle CONST_WIDE_INT and CONST_DOUBLE.
2450
8e2a42ca 24512015-05-14 Rohit Arul Raj <rohitrulraj@freescale.com>
2452
2453 * varasm.c (output_constant_pool_1): Pass down alignment from
2454 constant pool entry's descriptor to output_constant_pool_2.
2455 (output_object_block): Add comment prior to call to
2456 output_constant_pool_1.
2457
20c3c7fc 24582015-05-14 Vladimir Makarov <vmakarov@redhat.com>
2459
2460 PR rtl-optimization/65862
2461 * target.def (ira_change_pseudo_allocno_class): New hook.
2462 * targhooks.c (default_ira_change_pseudo_allocno_class): Default
2463 value of the hook.
316e4f71 2464 * targhooks.h (default_ira_change_pseudo_allocno_class): New extern.
20c3c7fc 2465 * doc/tm.texi.in (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Add the
2466 hook.
2467 * ira-costs.c (find_costs_and_classes): Call the hook and change
2468 classes when it is necessary.
2469 * doc/tm.texi: Update.
2470
d92a49b5 24712015-05-14 Alexander Monakov <amonakov@ispras.ru>
2472
2473 * config/i386/i386.md (sibcall_memory): Check that register with
2474 callee address is not also used as one of the arguments, instead
2475 of checking that it is not live after the sibcall.
2476 (sibcall_pop_memory): Ditto.
2477 (sibcall_value_memory): Ditto.
316e4f71 2478 (sibcall_value_pop_memory): Ditto.
d92a49b5 2479
b1306f12 24802015-05-14 Marc Glisse <marc.glisse@inria.fr>
2481
2482 * generic-match-head.c (types_match): Handle non-types.
2483 * gimple-match-head.c (types_match): Likewise.
2484 * match.pd: Remove unnecessary TREE_TYPE for types_match.
2485
f036380a 24862015-05-14 Wilco Dijkstra <wdijkstr@arm.com>
2487
2488 * config/aarch64/aarch64.md (absdi2): Optimize abs expansion.
2489 (csneg3<mode>_insn): Enable expansion of pattern.
2490
8d2e95d3 24912015-05-14 Nick Clifton <nickc@redhat.com>
2492
2493 * config/rl78/rl78.c (rl78_select_section): Select the correct
2494 default section based upon the category of the decl.
2495
ee8d5530 24962015-05-13 Segher Boessenkool <segher@kernel.crashing.org>
2497
2498 PR rtl-optimization/30967
2499 * config/rs6000/rs6000.c (rs6000_rtx_costs): Don't consider
2500 destination mode for the cost of scc patterns.
2501
8fc8b916 25022015-05-13 Uros Bizjak <ubizjak@gmail.com>
2503
2504 * config/i386/i386.md (*mul<mode>3_1): Merge with *mulhi3_1
2505 using SWIM248 mode iterator.
2506 (*mulv<mode>4): Use x86_64_sext_operand for operand[2] constraint.
2507 (*mulvhi4): mark operand[1] as commutative. Use nonimmediate_operand
2508 for operand[2] constraint.
2509 (*mulv<mode>4_1): Merge with *mulvhi4_1 using SWI248 mode iterator.
2510
b25f70fd 25112015-05-13 Jakub Jelinek <jakub@redhat.com>
2512
2513 PR middle-end/66133
2514 * omp-low.c (expand_omp_taskreg): For GIMPLE_OMP_TASK expansion,
2515 make sure it is never noreturn, even when the task body does not
2516 return.
2517 (lower_omp_taskreg): For GIMPLE_OMP_TASK, emit GIMPLE_OMP_CONTINUE
2518 right before GIMPLE_OMP_RETURN.
2519 (make_gimple_omp_edges): Accept GIMPLE_OMP_CONTINUE as ->cont
2520 for GIMPLE_OMP_TASK. For GIMPLE_OMP_RETURN corresponding to
2521 GIMPLE_OMP_TASK add an EDGE_ABNORMAL edge from entry to exit.
2522
c3206272 25232015-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2524
2525 * params.def (PARAM_MAX_POW_SQRT_DEPTH): New param.
2526 * tree-ssa-math-opts.c: Include params.h
2527 (pow_synth_sqrt_info): New struct.
2528 (representable_as_half_series_p): New function.
2529 (get_fn_chain): Likewise.
2530 (print_nested_fn): Likewise.
2531 (dump_fractional_sqrt_sequence): Likewise.
2532 (dump_integer_part): Likewise.
2533 (expand_pow_as_sqrts): Likewise.
2534 (gimple_expand_builtin_pow): Use above to attempt to expand
2535 pow as series of square roots. Removed now unused variables.
2536
debb7e7a 25372015-05-13 Uros Bizjak <ubizjak@gmail.com>
2538
2539 * config/alpha/alpha.c (alpha_emit_set_long_const): Remove c1 argument.
2540 (alpha_extract_integer): Redeclare as static HOST_WIDE_INT.
2541 Remove *p0 and *p1 arguments. Rewrite function.
2542 (alpha_legitimate_constant_p): Update call to alpha_extract_integer.
2543 (alpha_split_const_mov): Update calls to alpha_extract_integer and
2544 alpha_emit_set_long_const.
2545 (alpha_expand_epilogue): Update calls to alpha_emit_set_long_const.
2546 (alpha_output_mi_thunk_osf): Ditto.
2547 * config/alpha/alpha.md (movti): Do not check operands[1]
2548 for CONST_DOUBLE.
2549
7f2a705a 25502015-05-13 Richard Biener <rguenther@suse.de>
2551
2552 PR tree-optimization/66129
2553 * tree-vect-slp.c (vect_build_slp_tree): Make sure all ops are
2554 commutative.
2555 (vect_schedule_slp_instance): Fix typo.
2556
28f17529 25572015-05-13 David Malcolm <dmalcolm@redhat.com>
2558
2559 * common.opt (fdump-internal-locations): New option.
2560 * input.c: Include diagnostic-core.h.
2561 (get_end_location): New function.
2562 (write_digit): New function.
2563 (write_digit_row): New function.
2564 (dump_location_range): New function.
2565 (dump_labelled_location_range): New function.
2566 (dump_location_info): New function.
2567 * input.h (dump_location_info): New prototype.
2568 * toplev.c (compile_file): Handle flag_dump_locations.
2569
1fa87479 25702015-05-13 Eric Botcazou <ebotcazou@adacore.com>
2571
2572 * gimple-expr.h (is_gimple_constant): Reorder.
2573 * tree-ssa-propagate.c (before_dom_children): Use inline accessor.
2574
bbaa616a 25752015-05-13 Segher Boessenkool <segher@kernel.crashing.org>
2576
2577 * combine.c (simplify_set): When generating a CC set, if the
2578 source already is in the correct mode, do not wrap it in a
2579 compare. Simplify the rest of that code.
2580
db0dd9ee 25812015-05-13 Richard Biener <rguenther@suse.de>
2582
2583 PR tree-optimization/66123
2584 * tree-ssa-dom.c (propagate_rhs_into_lhs): Check if we found
2585 a taken edge.
2586
e8a68f8c 25872015-05-13 Richard Biener <rguenther@suse.de>
2588
2589 PR middle-end/66110
2590 * alias.c (alias_sets_conflict_p): Do not treat has_zero_child
2591 specially.
2592 * Makefile.in (dfp.o-warn): Add -Wno-strict-aliasing.
2593
771e3be2 25942015-05-13 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
2595
2596 * doc/install.texi: Bump latest automake 1.11 version to 1.11.6.
2597 * aclocal.m4: Regenerated with automake-1.11.6.
2598
20d9b9e9 25992015-05-13 Tom de Vries <tom@codesourcery.com>
2600
2601 PR tree-optimization/66010
2602 * gimplify.h (gimplify_va_arg_internal): Remove declaration.
2603 * gimplify.c (gimplify_va_arg_internal): Remove and inline into ...
2604 * tree-stdarg.c (expand_ifn_va_arg_1): ... here. Choose between lval
2605 and rval based on do_deref.
2606
5f895b5c 26072015-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
2608
2609 PR target/65103
2610 * config/i386/i386.c (ix86_rtx_costs): We want to propagate
2611 link time constants into adress expressions and therefore set
2612 their cost to 0.
2613
4e417836 26142015-05-13 Jakub Jelinek <jakub@redhat.com>
2615
3aa63c73 2616 PR target/66112
2617 * config/i386/i386.md (mulv<mode>4, umulv<mode>4, *umulv<mode>4):
2618 Use SWI248 iterator instead of SWI.
2619 (*mulv<mode>4_1): Use SWI48 instead of SWI. Simplify output template.
2620 Use eq_attr "alternative" "0" instead of match_test in
2621 length_immediate attribute computation.
2622 (*mulvhi4, *mulvhi4_1): New define_insns.
2623
4e417836 2624 PR target/66112
2625 * internal-fn.c (get_min_precision): Use UNSIGNED instead of
2626 SIGNED to get precision of non-negative value.
2627
1b172b45 26282015-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
2629
2630 PR target/66048
2631 * function.c (diddle_return_value_1): Process bounds first.
2632 * config/i38/i386.c (ix86_function_value_regno_p): Add bnd1
2633 register.
2634
570c7ca7 26352015-05-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
2636
2637 PR rtl-optimization/64616
2638 * loop-invariant.c (can_move_invariant_reg): New.
2639 (move_invariant_reg): Call above new function to decide whether
2640 instruction can just be moved, skipping creation of temporary
2641 register.
2642
f5eab8eb 26432015-05-12 Jan Hubicka <hubicka@ucw.cz>
2644
2645 PR target/pr66047.c
2646 * i386.c (ix86_function_sseregparm): Only return -1 if local function
2647 with implied regparm is called from -mno-sse function.
2648 (init_cumulative_args): Output error if ix86_function_sseregparm
2649 return -1 and SSE register would be needed.
2650 (function_arg_advance_32): Likewise.
2651 (function_arg_32): Likewise.
2652 * i386.h (ix86_args): Add decl field.
2653
be8cbfec 26542015-05-12 Jan Hubicka <hubicka@ucw.cz>
2655
2656 PR ipa/65873
2657 * ipa-inline.c (can_inline_edge_p): Allow early inlining of always
2658 inlines across optimization boundary.
2659
9d247a3d 26602015-05-12 Jason Merrill <jason@redhat.com>
2661
2662 * config/mmix/mmix.c, config/msp430/msp430.c: Add space between
2663 string literal and macro name.
2664
a30fc7a9 26652015-05-12 Steve Ellcey <sellcey@imgtec.com>
2666
2667 * config/mips/mips.c (mips_print_operand): Remove 'y' operand code.
2668 * config/mips/mips.md (<GPR:d>lsa): Rewrite with shift operator.
2669 * config/mips/predicates.md (const_immlsa_operand): Remove log call.
2670
e5f01cba 26712015-05-12 David Malcolm <dmalcolm@redhat.com>
2672
2673 * doc/invoke.texi (Warning Options): Add -Wmisleading-indentation.
2674 (-Wmisleading-indentation): New option.
2675 * Makefile.in (C_COMMON_OBJS): Add c-family/c-indentation.o.
2676
5c5c1f00 26772015-05-12 Uros Bizjak <ubizjak@gmail.com>
2678
2679 * config/alpha/alpha.h (TARGET_SUPPORTS_WIDE_INT): New define.
2680 * config/alpha/alpha.c (alpha_rtx_costs): Handle CONST_WIDE_INT.
2681 (alpha_extract_integer): Ditto.
2682 (alpha_legitimate_constant_p): Ditto.
2683 (alpha_split_tmode_pair): Ditto.
2684 (alpha_preferred_reload_class): Add CONST_WIDE_INT.
2685 (alpha_expand_mov): Ditto.
2686 (print_operand): Remove handling of 'H' modifier.
2687 <case 'm'>: Remove CONST_DOUBLE handling.
2688 (summarize_insn): Handle CONST_WIDE_INT.
2689 * config/alpha/alpha.md (*andsi_internal): Remove H constraint.
2690 (anddi3): Ditto.
2691 (movti): Handle CONST_WIDE_INT.
2692 * config/alpha/constraints.md ('H'): Remove constraint definition.
2693 ('G'): Do not match MODE_FLOAT class.
2694 * config/alpha/predicates.md (const0_operand): Also match
2695 const_wide_int.
2696 (non_add_const_operand): Ditto.
2697 (non_zero_const_operand): Ditto.
2698 (some_operand): Ditto.
2699 (input_operand): Ditto. Handle CONST_WIDE_INT.
2700 (and_operand): Do not match const_double.
2701 * config/alpha/sync.md (fetchop_constr): Remove H constraint.
2702
a372f7ca 27032015-05-12 Andrew MacLeod <amacleod@redhat.com>
2704
2705 PR target/65697
2706 * coretypes.h (MEMMODEL_SYNC, MEMMODEL_BASE_MASK): New macros.
2707 (enum memmodel): Add SYNC_{ACQUIRE,RELEASE,SEQ_CST}.
2708 * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
2709 is_mm_consume,is_mm_acquire, is_mm_release, is_mm_acq_rel,
2710 is_mm_seq_cst, is_mm_sync): New accessor functions.
2711 * builtins.c (expand_builtin_sync_operation,
2712 expand_builtin_compare_and_swap): Use MEMMODEL_SYNC_SEQ_CST.
2713 (expand_builtin_sync_lock_release): Use MEMMODEL_SYNC_RELEASE.
2714 (get_memmodel, expand_builtin_atomic_compare_exchange,
2715 expand_builtin_atomic_load, expand_builtin_atomic_store,
2716 expand_builtin_atomic_clear): Use new accessor routines.
2717 (expand_builtin_sync_synchronize): Use MEMMODEL_SYNC_SEQ_CST.
2718 * optabs.c (expand_compare_and_swap_loop): Use MEMMODEL_SYNC_SEQ_CST.
2719 (maybe_emit_sync_lock_test_and_set): Use new accessors and
2720 MEMMODEL_SYNC_ACQUIRE.
2721 (expand_sync_lock_test_and_set): Use MEMMODEL_SYNC_ACQUIRE.
2722 (expand_mem_thread_fence, expand_mem_signal_fence, expand_atomic_load,
2723 expand_atomic_store): Use new accessors.
2724 * emit-rtl.c (need_atomic_barrier_p): Add additional enum cases.
2725 * tsan.c (instrument_builtin_call): Update check for memory model beyond
2726 final enum to use MEMMODEL_LAST.
2727 * c-family/c-common.c: Use new accessor for memmodel_base.
2728 * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap): Use new
2729 accessors.
2730 * config/aarch64/atomics.md (atomic_load<mode>,atomic_store<mode>,
2731 arch64_load_exclusive<mode>, aarch64_store_exclusive<mode>,
2732 mem_thread_fence, *dmb): Likewise.
2733 * config/alpha/alpha.c (alpha_split_compare_and_swap,
2734 alpha_split_compare_and_swap_12): Likewise.
2735 * config/arm/arm.c (arm_expand_compare_and_swap,
2736 arm_split_compare_and_swap, arm_split_atomic_op): Likewise.
2737 * config/arm/sync.md (atomic_load<mode>, atomic_store<mode>,
2738 atomic_loaddi): Likewise.
2739 * config/i386/i386.c (ix86_destroy_cost_data, ix86_memmodel_check):
2740 Likewise.
2741 * config/i386/sync.md (mem_thread_fence, atomic_store<mode>): Likewise.
2742 * config/ia64/ia64.c (ia64_expand_atomic_op): Add new memmodel cases and
2743 use new accessors.
2744 * config/ia64/sync.md (mem_thread_fence, atomic_load<mode>,
2745 atomic_store<mode>, atomic_compare_and_swap<mode>,
2746 atomic_exchange<mode>): Use new accessors.
2747 * config/mips/mips.c (mips_process_sync_loop): Likewise.
2748 * config/pa/pa.md (atomic_loaddi, atomic_storedi): Likewise.
2749 * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier,
2750 rs6000_post_atomic_barrier): Add new cases.
2751 (rs6000_expand_atomic_compare_and_swap): Use new accessors.
2752 * config/rs6000/sync.md (mem_thread_fence): Add new cases.
2753 (atomic_load<mode>): Add new cases and use new accessors.
2754 (store_quadpti): Add new cases.
2755 * config/s390/s390.md (mem_thread_fence, atomic_store<mode>): Use new
2756 accessors.
2757 * config/sparc/sparc.c (sparc_emit_membar_for_model): Use new accessors.
2758 * doc/extend.texi: Update docs to indicate 16 bits are used for memory
2759 model, not 8.
2760
1a39dc4d 27612015-05-12 Jan Hubicka <hubicka@ucw.cz>
2762
2763 * ipa-devirt.c (type_with_linkage_p): New function.
2764 (type_in_anonymous_namespace_p): Move here from tree.c; assert that
2765 type has linkage.
2766 (odr_type_p): Move here from ipa-utils.h; use type_with_linkage_p.
2767 (can_be_name_hashed_p): Simplify.
2768 (hash_odr_name): Check that type has linkage before checking if it is
2769 anonymous.
2770 (types_same_for_odr): Likewise.
2771 (odr_name_hasher::equal): Likewise.
2772 (odr_subtypes_equivalent_p): Likewise.
2773 (warn_types_mismatch): Likewise.
2774 (get_odr_type): Likewise.
2775 (odr_types_equivalent_p): Fix checking of TYPE_MAIN_VARIANT.
2776 * ipa-utils.h (odr_type_p): Move offline.
2777 * tree.c (need_assembler_name_p): Fix handling of types
2778 without linkages.
2779 (type_in_anonymous_namespace_p): Move to ipa-devirt.c
2780
dd4d567f 27812015-05-12 David Malcolm <dmalcolm@redhat.com>
2782
2783 * timevar.c (timevar_enable): Delete in favor of...
2784 (g_timer): New global.
2785 (struct timevar_def): Move to timevar.h inside class timer.
2786 (struct timevar_stack_def): Likewise.
2787 (timevars): Delete global in favor of field "m_timevars" within
2788 class timer in timevar.h
2789 (stack): Likewise, in favor of field "m_stack".
2790 (unused_stack_instances): Likewise, in favor of field
2791 "m_unused_stack_instances".
2792 (start_time): Likewise, in favor of field "m_start_time".
2793 (get_time): Eliminate check for timevar_enable.
2794 (timer::timer): New function, built from part of timevar_init.
2795 (timevar_init): Rewrite idempotency test from using
2796 "timevar_enable" bool to using dynamic allocation of "g_timer".
2797 Move rest of implementation into timer's constructor.
2798 (timevar_push_1): Rename to...
2799 (timer::push): ...this, adding "m_" prefixes to variables that
2800 are now fields of timer.
2801 (timevar_pop_1): Likewise, rename to...
2802 (timer::pop): ...this, and add "m_" prefixes.
2803 (timevar_start): Replace test for "timevar_enable" with one for
2804 "g_timer", and move bulk of implementation to...
2805 (timer::start): ...here, adding "m_" prefixes.
2806 (timevar_stop): Likewise, from here...
2807 (timer::stop): ...to here.
2808 (timevar_cond_start): Likewise, from here...
2809 (timer::cond_start): ...to here.
2810 (timevar_cond_stop): Likewise, from here...
2811 (timer::cond_stop): ...to here.
2812 (validate_phases): Rename to...
2813 (timer::validate_phases): ...this, and add "m_" prefixes. Make
2814 locals "total" and "tv" const.
2815 (timevar_print): Rename to...
2816 (timer::print): ...this, and add "m_" prefixes. Make locals
2817 "total" and "tv" const. Eliminate test for timevar_enable.
2818 * timevar.h (timevar_enable): Eliminate.
2819 (g_timer): New declaration.
2820 (timevar_push_1): Eliminate.
2821 (timevar_pop_1): Eliminate.
2822 (timevar_print): Eliminate.
2823 (class timer): New class.
2824 (timevar_push): Rewrite to use g_timer.
2825 (timevar_pop): Likewise.
2826 * toplev.c (toplev::~toplev): Likewise.
2827
07b456c3 28282015-05-12 Richard Earnshaw <rearnsha@arm.com>
2829
2830 * arm-protos.h (arm_sched_autopref): Delete.
2831 (tune_params): Re-organize, use enums for flag values.
2832 (FUSE_OPS): New macro.
2833 * arm.c (ARM_PREFETCH_NOT_BENEFICIAL): Update.
2834 (ARM_PREFETCH_BENEFICIAL): Likewise.
2835 (ARM_FUSE_NOTHING, ARM_FUSE_MOVW_MOVT): Delete.
2836 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
2837 (arm_xscale_tune, arm_9e_tune, arm_marvell_pj4_tune)
2838 (arm_v6t2_tune, arm_cortex_tune, arm_cortex_a8_tune)
2839 (arm_cortex_a7_tune, arm_cortex_a15_tune, arm_cortex_a53_tune)
2840 (arm_cortex_a57_tune, arm_xgene1_tune, arm_cortex_a5_tune)
2841 (arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune)
2842 (arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune): Use new
2843 format.
2844 (arm_option_override, thumb2_reorg, arm_print_tune_info)
2845 (aarch_macro_fusion_pair_p): Update uses of current_tune.
38663330 2846 * arm.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Likewise.
07b456c3 2847
1fe5296b 28482015-05-12 Sandra Loosemore <sandra@codesourcery.com>
2849
2850 * config/nios2/nios2.md (trap, ctrapsi4): Use "trap" instead of
2851 "break".
2852
1d67120d 28532015-05-12 Chung-Lin Tang <cltang@codesourcery.com>
2854 Sandra Loosemore <sandra@codesourcery.com>
2855
2856 * config/nios2/nios2.h (enum reg_class): Add IJMP_REGS enum
2857 value.
2858 (REG_CLASS_NAMES): Add "IJMP_REGS".
2859 (REG_CLASS_CONTENTS): Add new entry for IJMP_REGS.
2860 * config/nios2/nios2.md (indirect_jump,*tablejump): Adjust to
2861 use new "c" register constraint.
2862 * config/nios2/constraint.md (c): New register constraint
2863 corresponding to IJMP_REGS.
2864
11e11570 28652015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
2866
2867 * config/rs6000/rs6000.md (*rotlsi3_internal4, *rotlsi3_internal5,
2868 *rotlsi3_internal6, rlwinm, 5 unnamed define_insns, and 6
2869 define_splits): Delete, revamp, transmogrify into ...
2870 (*rotlsi3_mask, *rotlsi3_mask_dot, *rotlsi3_mask_dot2,
2871 *ashlsi3_imm_mask, *ashlsi3_imm_mask_dot, *ashlsi3_imm_mask_dot2,
2872 *lshrsi3_imm_mask, *lshrsi3_imm_mask_dot, *lshrsi3_imm_mask_dot2):
2873 New.
2874
66708653 28752015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
2876
2877 * config/rs6000/rs6000.md (rs6000_adjust_atomic_subword): Use
2878 gen_ashlsi3 and gen_andsi3 instead of gen_rlwinm.
2879
8031ee3d 28802015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
2881
2882 * config/rs6000/rs6000.md (extzv): FAIL for SImode.
2883 (extzvsi_internal, *extzvsi_internal1, *extzvsi_internal2,
2884 *rotlsi3_internal7le, *rotlsi3_internal7be, *rotlsi3_internal8le,
2885 *rotlsi3_internal8be, *rotlsi3_internal9le, *rotlsi3_internal9be,
2886 *rotlsi3_internal10le, *rotlsi3_internal10be, *rotlsi3_internal11le,
2887 *rotlsi3_internal11be, *rotlsi3_internal12le, *rotlsi3_internal12be,
2888 *lshiftrt_internal1le, *lshiftrt_internal1be, *lshiftrt_internal2le,
2889 *lshiftrt_internal2be, *lshiftrt_internal3le, *lshiftrt_internal3be,
2890 *lshiftrt_internal4le, *lshiftrt_internal4be, *lshiftrt_internal5le,
2891 *lshiftrt_internal5be, *lshiftrt_internal5le, *lshiftrt_internal5be,
2892 *rotldi3_internal7le, *rotldi3_internal7be, *rotldi3_internal8le,
2893 *rotldi3_internal8be, *rotldi3_internal9le, *rotldi3_internal9be,
2894 *rotldi3_internal10le, *rotldi3_internal10be, *rotldi3_internal11le,
2895 *rotldi3_internal11be, *rotldi3_internal12le, *rotldi3_internal12be,
2896 *rotldi3_internal13le, *rotldi3_internal13be, *rotldi3_internal14le,
2897 *rotldi3_internal14be, *rotldi3_internal15le, *rotldi3_internal15be,
2898 and 30 corresponding splitters): Delete.
2899
bace1071 29002015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
2901
2902 * config/rs6000/rs6000.md (define_split for bswaphi): Don't use
2903 zero_extract.
2904
f5882f7a 29052015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
2906
2907 * combine.c (recog_for_combine_1): New function, factored out
2908 from recog_for_combine.
2909 (change_zero_ext): New function.
2910 (recog_for_combine): If recog fails, try again with the pattern
2911 modified by change_zero_ext; if that still fails, restore the
2912 pattern.
2913
20985f44 29142015-05-12 Segher Boessenkool <segher@kernel.crashing.org>
2915
2916 * combine.c (get_undo_marker): New function.
2917 (undo_to_marker): New function, largely factored out from ...
2918 (undo_all): ... this. Adjust.
2919
c1d1f6d2 29202015-05-12 Richard Biener <rguenther@suse.de>
2921
2922 PR tree-optimization/66101
2923 * tree-ssa-dce.c (remove_dead_stmt): Properly mark loops for
2924 fixup if we turn a loop exit edge to a fallthru edge.
2925
66e30248 29262015-05-12 Richard Biener <rguenther@suse.de>
2927
2928 PR tree-optimization/37021
2929 * tree-vectorizer.h (struct _slp_tree): Add two_operators flag.
2930 (SLP_TREE_TWO_OPERATORS): New define.
2931 * tree-vect-slp.c (vect_create_new_slp_node): Initialize
2932 SLP_TREE_TWO_OPERATORS.
2933 (vect_build_slp_tree_1): Allow two mixing plus/minus in an
2934 SLP node.
2935 (vect_build_slp_tree): Adjust.
2936 (vect_analyze_slp_cost_1): Likewise.
2937 (vect_schedule_slp_instance): Vectorize mixing plus/minus by
2938 emitting two vector stmts and mixing the results.
2939
9291c52b 29402015-05-12 Dominik Vogt <vogt@linux.vnet.ibm.com>
2941
2942 * call.c (print_z_candidates): Remove dead code.
2943
5ed1f72b 29442015-05-12 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2945
2946 * config/s390/2827.md: Split zEC12_simple into zEC12_simple_int
2947 and zEC12_simple_fp.
2948 * config/s390/s390.c (s390_issue_rate): Set issue rate for zEC12
2949 to 1.
2950
c37be9ec 29512015-05-12 Tom de Vries <tom@codesourcery.com>
2952
2953 PR tree-optimization/66010
2954 * gimplify.c (gimplify_modify_expr): Handle new do_deref argument of
2955 ifn_va_arg.
2956 * gimplify.h (gimplify_va_arg_internal): Remove loc parameter.
2957 (gimplify_va_arg_internal): Remove loc parameter. Assert no array-typed
2958 va_lists are passed, and remove corresponding handling.
2959 (gimplify_va_arg_expr): Only take address of ap if necessary. Add
2960 do_deref argument to ifn_va_arg.
2961 * tree-stdarg.c (expand_ifn_va_arg_1): Handle new do_deref argument of
2962 ifn_va_arg.
2963
22440aeb 29642015-05-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2965
2966 PR target/65955
2967 * config/arm/arm.md (movcond_addsi): Check that operands[2] is a
2968 REG before taking its REGNO.
2969
1f451691 29702015-05-12 Thomas Preud'homme <thomas.preudhomme@arm.com>
2971
2972 * combine.c i(set_nonzero_bits_and_sign_copies): Split code updating
2973 rsp->sign_bit_copies and rsp->nonzero_bits into ...
2974 (update_rsp_from_reg_equal): This. Also use REG_EQUAL note on src if
2975 present to get more accurate information about the number of sign bit
2976 copies and non zero bits.
2977
0d80b45d 29782015-05-12 Richard Biener <rguenther@suse.de>
2979
2980 * tree-vect-slp.c (vect_build_slp_tree_1): For BB vectorization
2981 do not allow unrolling.
2982
f969a6d2 29832015-05-11 Richard Henderson <rth@redhat.com>
2984
2985 * config/i386/i386-modes.def (CCP): New.
2986 * config/i386/i386.c (put_condition_code): Handle it.
2987 (ix86_match_ccmode, ix86_cc_modes_compatible): Likewise.
2988
2af3d775 29892015-05-11 Richard Henderson <rth@redhat.com>
2990
2991 * target.def (md_asm_clobbers): Replace with...
2992 (md_asm_adjust): this.
2993 * tm.texi.in (TARGET_MD_ASM_CLOBBERS): Remove.
2994 (TARGET_MD_ASM_ADJUST): New.
2995 * tm.texi: Rebuild.
2996 * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Remove.
2997 * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Remove.
2998 * system.h (TARGET_MD_ASM_CLOBBERS): Poison.
2999
3000 * cfgexpand.c (check_operand_nalternatives): Accept vector of
3001 constraints instead of lists of outputs and inputs.
3002 (expand_asm_stmt): Save and restore input_location around the
3003 body of the function. Move asm data into vectors instead of
3004 building tree lists. Generate cleanup sequences as needed,
3005 rather than waiting til the end. Use new md_asm_adjust hook.
3006
3007 * config/vxworks.c: Include vec.h before target.h.
3008 * gimple.c: Likewise.
3009 * incpath.c: Likewise.
3010 * mode-switching.c: Likewise.
3011
3012 * config/cris/cris.c (cris_md_asm_clobbers): Convert to...
3013 (cris_md_asm_adjust): this.
3014 (TARGET_MD_ASM_CLOBBERS): Remove.
3015 (TARGET_MD_ASM_ADJUST): New.
3016 * config/i386/i386.c (ix86_md_asm_clobbers): Convert to...
3017 (ix86_md_asm_adjust): this.
3018 (TARGET_MD_ASM_CLOBBERS): Remove.
3019 (TARGET_MD_ASM_ADJUST): New.
3020 * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): Convert to...
3021 (mn10300_md_asm_adjust): this.
3022 (TARGET_MD_ASM_CLOBBERS): Remove.
3023 (TARGET_MD_ASM_ADJUST): New.
3024 * config/rs6000/rs6000.c (rs6000_md_asm_clobbers): Convert to...
3025 (rs6000_md_asm_adjust): this.
3026 (TARGET_MD_ASM_CLOBBERS): Remove.
3027 (TARGET_MD_ASM_ADJUST): New.
3028 * config/visium/visium.c (visium_md_asm_clobbers): Convert to...
3029 (visium_md_asm_adjust): this.
3030 (TARGET_MD_ASM_CLOBBERS): Remove.
3031 (TARGET_MD_ASM_ADJUST): New.
3032
2d564016 30332015-05-11 Richard Henderson <rth@redhat.com>
3034
6753c3c6 3035 * gimplify.c (gimplify_asm_expr): Set gimple_asm_volatile_p
3036 if noutputs is zero.
3037 * cfgexpand.c (expand_asm_stmt): Use gimple_asm_volatile_p unchanged.
3038
ae231cbd 3039 * cfgexpand.c (expand_asm_operands): Merge into...
3040 (expand_asm_stmt): ... here.
3041
2d564016 3042 * cfgexpand.c (expand_asm_operands): Don't call
3043 resolve_asm_operand_names.
3044 * stmt.c (resolve_asm_operand_names): Clarify block comment.
3045
041558e3 30462015-05-11 Jan Hubicka <hubicka@ucw.cz>
3047
3048 * dwarf2out.c (gen_member_die): Sanity check that we access
3049 TYPE_MAIN_VARIANT for TYPE_METHODS.
3050 * function.c (use_register_for_decl): Look for TYPE_MAIN_VARIANT when
3051 checking TYPE_METHODS.
3052 * tree.c (free_lang_data_in_type): See TYPE_METHODS to error_mark_node
3053 if non-null.
3054 (build_distinct_type_copy): Clear TYPE_METHODS.
3055 (verify_type_variant): Verify that TYPE_METHODS is NULL for variants.
3056 (verify_type): Allow TYPE_METHODS to be error_mark_node.
3057 * tree.def: Update docs of TYPE_STUB_DECL and TYPE_METHODS.
3058
57e999d9 30592015-05-11 Eric Botcazou <ebotcazou@adacore.com>
3060
3061 * emit-rtl.c (emit_pattern_after_setloc): Add missing guard.
3062 (emit_pattern_before_setloc): Likewise.
3063
a545c6cd 30642015-05-11 Richard Sandiford <richard.sandiford@arm.com>
3065
3066 * genrecog.c (match_pattern_1): Expect the pattern to be a SEQUENCE
3067 for define_peephole2s.
3068 (get_peephole2_pattern): New function.
3069 (main): Use it. Call validate_pattern.
3070
ed0ab386 30712015-05-11 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
3072
3073 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Use
3074 LAST_CALLEE_SAVED_REG instead of hard-coded register number.
3075 (Last callee saved reg is different for AVR_TINY architecture)
3076
9e009662 30772015-05-11 Uros Bizjak <ubizjak@gmail.com>
3078
3079 * config/i386/i386.c (ix86_loop_unroll_adjust): Use PATTERN (insn)
3080 when looking for memory references.
3081
a91ca74b 30822015-05-11 Alexander Monakov <amonakov@ispras.ru>
3083
3084 PR target/65753
3085 * config/i386/i386.c (ix86_function_ok_for_sibcall): Allow PIC sibcalls
3086 via function pointers.
3087
562ef5cc 30882015-05-11 Alexander Monakov <amonakov@ispras.ru>
3089
3090 * calls.c (prepare_call_address): Transform PLT call to GOT lookup and
3091 indirect call by forcing address into a pseudo with -fno-plt.
3092 * common.opt (flag_plt): New option.
3093 * doc/invoke.texi (Code Generation Options): Add -fno-plt.
3094 ([-fno-plt]): Document.
3095
4090805f 30962015-05-11 Markus Trippelsdorf <markus@trippelsdorf.de>
9e009662 3097
4090805f 3098 PR bootstrap/66105
3099 * config/rs6000/option-defaults.h: Add space between string literal
3100 and macro name.
3101
37d9d8a1 31022015-05-11 Thomas Preud'homme <thomas.preudhomme@arm.com>
3103
3104 * gcc.target/arm/pr64616.c: Test dump rather than assembly to work
3105 accross ARM targets.
3106
7ca9423a 31072015-05-11 Christian Bruel <christian.bruel@st.com>
3108
3109 * config/arm/arm-protos.h (thumb_code, thumb1_code): Remove.
3110 * config/arm/vxworks.h (thumb_code): Replace with TARGET_THUMB.
3111
4f7f3b39 31122015-05-11 Richard Sandiford <richard.sandiford@arm.com>
3113
3114 PR rtl-optimization/66076
3115 * rtlanal.c (generic_subrtx_iterator <T>::add_single_to_queue):
3116 Don't grow the heap array if it is already big enough from a
3117 previous iteration.
3118
1e63a052 31192015-05-11 Christian Bruel <christian.bruel@st.com>
3120
3121 * config/arm/arm-protos.h (arm_declare_function_name): Declare.
3122 (is_called_in_ARM_mode): Remove.
3123 * config/arm/arm.c (is_called_in_ARM_mode): Declare static bool.
3124 (arm_declare_function_name): Moved from from ARM_DECLARE_FUNCTION_NAME.
3125 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Call
3126 arm_declare_function_name.
3127
b0a6b2be 31282015-05-11 Christian Bruel <christian.bruel@st.com>
8724f216 3129
3130 * config/arm/arm.c (arm_option_override): Reoganized and split into :
3131 (arm_option_params_internal); New function.
3132 (arm_option_check_internal): New function.
3133 (arm_option_override_internal): New function.
3134 (thumb_code, thumb1_code): Remove.
3135 * config/arm/arm.h (TREE_TARGET_THUMB, TREE_TARGET_THUMB1): New macros.
3136 (TREE_TARGET_THUM2, TREE_TARGET_ARM): Likewise.
3137 (thumb_code, thumb1_code): Remove.
3138 * config/arm/arm.md (is_thumb, is_thumb1): Check TARGET flag.
3139
a2d7211e 31402015-05-11 Uros Bizjak <ubizjak@gmail.com>
3141
3142 * config/alpha/alpha.c (alpha_emit_set_const_1)
3143 (alpha_emit_set_long_const, alpha_extract_integer)
3144 (alpha_legitimate_constant_p, alpha_split_const_mov)
3145 (alpha_expand_block_clear, alpha_expand_zap_mask, print_operand):
3146 [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
3147 (alpha_emit_set_const_1): Change "(HOST_WIDE_INT) 1" to
3148 HOST_WIDE_INT_1U.
3149 * config/alpha/predicates.md (mode_mask_operand): Do not match
3150 const_double RTX.
3151 [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
3152 * config/alpha/alpha.md (abstf, *abstf_internal, UNSPEC_ZAP splitter):
3153 Change "(HOST_WIDE_INT) 1" to HOST_WIDE_INT_1U.
3154 [HOST_BITS_PER_WIDE_INT < 64]: Remove dead code.
3155 (*negtf_internal): Use gen_int_mode instead of immed_double_const.
3156
c4b26167 31572015-05-11 Jakub Jelinek <jakub@redhat.com>
3158
3159 PR target/65780
3160 * config/s390/linux.h (TARGET_BINDS_LOCAL_P): Define to
3161 default_binds_local_p_2.
3162 * config/arm/linux-elf.h (TARGET_BINDS_LOCAL_P): Likewise.
3163 * config/aarch64/aarch64-linux.h (TARGET_BINDS_LOCAL_P): Likewise.
3164
6ad400d2 31652015-05-09 Jan Hubicka <hubicka@ucw.cz>
3166
3167 * tree.c (verify_type_variant): Check TYPE_VALUES_RAW and TYPE_PRECISION
3168
3e301e70 31692015-05-09 Jan Hubicka <hubicka@ucw.cz>
3170
3171 Patch by Richard Biener
3172 * coverage.c (coverage_obj_init): Delay building of type variant
3173 until the type is finished.
3174
359bd426 31752015-05-09 Jan Hubicka <hubicka@ucw.cz>
3176
3177 * ipa-devirt.c (warn_types_mismatch): Do not ICE when warning about
3178 mismatch between C and C++ type; compoare correctly ARG_TYPES
3179 for non-prototypes and output correctly parameter index for METHOD_TYPE.
3180 (odr_types_equivalent_p): Fix wording of warning about attributes;
3181 it is OK to match prototype and non-prototype.
3182
14c014b1 31832015-05-09 Jan Hubicka <hubicka@ucw.cz>
3184
3185 * tree.c (free_lang_data_in_type): Free TREE_PURPOSE of
3186 TYPE_ARG_TYPES list.
3187 (verify_type): Permit non-NULL TREE_PURPOSE in non-LTO builds.
3188 * tree.def (FUNCTION_TYPE): Document TREE_PURPOSE in TYPE_ARG_TYPES
3189
edd397fd 31902015-05-09 Jan Hubicka <hubicka@ucw.cz>
3191
3192 * tree.c (verify_type): Verify TYPE_BINFO and TYPE_VALUES_RAW.
57d24ff6 3193 * tree.h (is_lang_specific): Constify.
edd397fd 3194
9ec6ad4e 31952015-05-09 Marc Glisse <marc.glisse@inria.fr>
3196
3197 PR tree-optimization/64454
3198 * tree-vrp.c (extract_range_from_binary_expr_1) <TRUNC_MOD_EXPR>:
3199 Rewrite.
3200
f03df321 32012015-05-08 Jason Merrill <jason@redhat.com>
3202
3203 * bitmap.c, c/c-aux-info.c, cfg.c, cfghooks.c, cgraph.c,
3204 config/aarch64/aarch64.md config/alpha/vms.h, config/darwin.c,
3205 config/darwin.h, config/darwin9.h, config/elfos.h,
3206 config/i386/bsd.h, config/ia64/ia64.c, config/lm32/lm32.h,
3207 config/microblaze/microblaze.h, config/mips/mips.h,
3208 config/mmix/mmix.c, config/msp430/msp430.c, config/nios2/nios2.h,
3209 config/nvptx/nvptx.c, config/nvptx/nvptx.h, config/pa/pa.c,
3210 config/pa/pa.h, config/rs6000/rs6000.c, config/rs6000/sysv4.h,
3211 config/rs6000/xcoff.h, config/rx/rx.h, config/s390/s390.h,
3212 config/sparc/sol2.h, config/sparc/sparc.h, config/visium/visium.h,
3213 cppbuiltin.c, defaults.h, doc/invoke.texi, dwarf2cfi.c,
3214 dwarf2out.c, final.c, gcc.c, gcov-dump.c, gcov.c, ipa-cp.c,
3215 ipa-inline.c, ipa-polymorphic-call.c, ipa-profile.c, ipa-prop.c,
3216 ira-color.c, ira.c, loop-doloop.c, loop-iv.c, mcf.c,
3217 modulo-sched.c, predict.c, profile.c, stor-layout.c, toplev.c,
3218 tree-ssa-reassoc.c, value-prof.c, wide-int-print.cc: Add space
3219 between string literal and macro name.
3220
548a37a8 32212015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3222
3223 * jump.c: Change argument types to rtx_insn *.
3224 * rtl.h: Adjust.
3225
4da92723 32262015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3227
3228 * lra-constraints.c: Change argument type to rtx_insn *.
3229
210ccc05 32302015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3231
3232 * df-problems.c: Change argument type to rtx_insn *.
3233
a9d77cc5 32342015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3235
3236 * combine.c: Change argument type to rtx_insn *.
3237
b9452872 32382015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3239
3240 * rtl.h: Adjust.
3241 * rtlanal.c: Change argument type to rtx_insn *.
3242
a1db0f0f 32432015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3244
3245 * sched-deps.c: Change argument types to rtx_insn *.
3246 * sched-int.h: Adjust.
3247
bfc53c49 32482015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3249
3250 * dwarf2cfi.c: Change argument type to rtx_insn *.
3251
5efdbe21 32522015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3253
3254 * ira.c (decrease_live_ranges_number): Changetype of local
3255 variable to rtx_insn *.
3256 * recog.c: Change argument types to rtx_insn *.
3257 * recog.h: Adjust.
3258
f6860e7f 32592015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3260
3261 * reorg.c: Change argument types to rtx_insn *.
3262
50b1b178 32632015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3264
3265 * ira-color.c: Change argument types to rtx_insn *.
3266 * lra-eliminations.c: Likewise.
3267 * ira.h: Adjust.
3268
84b4ae13 32692015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3270
3271 * gcse.c: Change argument types to rtx_insn *.
3272
41805aed 32732015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3274
3275 * cse.c (cse_change_cc0_mode): Change argument type to rtx_insn *.
3276
5518cf83 32772015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3278
3279 * emit-rtl.c (emit_debug_insn_before): Change argument type to
3280 rtx_insn *.
3281 * rtl.h: Adjust.
3282
1dc26636 32832015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3284
3285 * emit-rtl.c (emit_note_before): Change argument type to rtx_insn *.
3286 * rtl.h: Adjust.
3287
4d86329d 32882015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3289
3290 * emit-rtl.c (emit_note_after): Change argument type to rtx_insn *.
3291 * rtl.h: Adjust.
3292
fd8b0a1a 32932015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3294
3295 * emit-rtl.c (prev_cc0_setter): Change argument type to rtx_insn *.
3296 * rtl.h: Adjust.
3297
e79ab52b 32982015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3299
3300 * rtlanal.c (noop_move_p): Change argument type to rtx_insn *.
3301 * rtl.h: Adjust.
3302
ca336a81 33032015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3304
3305 * rtlanal.c (add_shallow_copy_of_reg_note): Change argument type
3306 to rtx_insn *.
3307 * rtl.h: Adjust.
3308
6dbed5c7 33092015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3310
3311 * rtlanal.c (remove_reg_equal_equiv_notes): Change argument type
3312 to rtx_insn *.
3313 * rtl.h: Likewise.
3314
c0bf26af 33152015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3316
3317 * except.c (can_nonlocal_goto): Change type of argument to
3318 rtx_insn *.
3319 * rtl.h: Adjust.
3320
181908bb 33212015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3322
3323 * rtlanal.c (computed_jump_p): Cange argument type to rtx_insn *.
3324 * rtl.h: Adjust.
3325
7a680a39 33262015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3327
3328 * rtlanal.c (in_insn_list_p): Renamed from in_expr_list_p.
3329 * cfgrtl.c (can_delete_label_p): Adjust.
3330 * rtl.h: likewise.
3331
31886f96 33322015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3333
3334 * reorg.c (stop_search_p): Change argument to rtx_insn *.
3335
d69632e3 33362015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3337
3338 * except.c (make_reg_eh_region_note): Change argument to
3339 rtx_insn *.
3340 (make_reg_eh_region_note_nothrow_nononlocal): Likewise.
3341 * except.h: Adjust.
3342
e0f97a1a 33432015-05-08 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3344
3345 * mode-switching.c (commit_mode_sets): Change type of local
3346 variable from rtx to rtx_insn *.
3347
f51ed531 33482015-05-08 Jim Wilson <jim.wilson@linaro.org>
3349
3350 * doc/install.texi (--enable-languages): Add missing jit and lto info.
3351 Add ^ to grep command.
3352 * doc/match-and-simplify.texi (GIMPLE API): Add missing fourth tree
3353 arg to last gimple_simplify declaration. Add missing gimple_build
3354 declaration for built-in function case with four tree args.
3355
2550b6a8 33562015-05-08 Gregor Richards <gregor.richards@uwaterloo.ca>
3357 Szabolcs Nagy <szabolcs.nagy@arm.com>
3358
3359 * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Define.
3360 (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Define.
3361 (GNU_USER_DYNAMIC_LINKERN32): Update.
3362
994be998 33632015-05-08 Richard Biener <rguenther@suse.de>
3364
3365 PR tree-optimization/66036
3366 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
3367 Handle strided group loads.
3368 (vect_verify_datarefs_alignment): Likewise.
3369 (vect_enhance_data_refs_alignment): Likewise.
3370 (vect_analyze_group_access): Likewise.
3371 (vect_analyze_data_ref_access): Likewise.
3372 (vect_analyze_data_ref_accesses): Likewise.
3373 * tree-vect-stmts.c (vect_model_load_cost): Likewise.
3374 (vectorizable_load): Likewise.
3375
a5222812 33762015-05-08 Segher Boessenkool <segher@kernel.crashing.org>
3377
3378 * config/rs6000/rs6000.md: Require operand inequality in one
3379 of the peepholes.
3380
382f24d5 33812015-05-08 Richard Sandiford <richard.sandiford@arm.com>
3382 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
3383
3384 * config/i386/i386.md (<mode>_ldx, *<mode>_ldx): Remove mode
3385 from (set ...).
3386 * config/rx/rx.md (movdi, movdf): Likewise.
3387 Likewise for define_peephole2s.
3388
dc3738cb 33892015-05-08 Alan Lawrence <alan.lawrence@arm.com>
3390
3391 * config/aarch64/arm_neon.h (vceq_s64, vceq_u64, vceqz_s64, vceqz_u64,
3392 vcge_s64, vcge_u64, vcgez_s64, vcgt_s64, vcgt_u64, vcgtz_s64, vcle_s64,
3393 vcle_u64, vclez_s64, vclt_s64, vclt_u64, vcltz_s64, vtst_s64,
3394 vtst_u64): Rewrite using gcc vector extensions.
3395
d81e9009 33962015-05-08 Alan Lawrence <alan.lawrence@arm.com>
3397
3398 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>,
3399 vcond<mode><mode>, vcondu<mode><mode>): Add DImode variant.
3400
2ea8270a 34012015-05-08 Alan Lawrence <alan.lawrence@arm.com>
3402
3403 * optabs.c (vector_compare_rtx): Handle RTL operands having VOIDmode.
3404
f2d678af 34052015-05-08 Szabolcs Nagy <szabolcs.nagy@arm.com>
3406
3407 * config/glibc-stdint.h (OPTION_MUSL): Define.
3408 (INT_FAST16_TYPE, INT_FAST32_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE):
3409 Change the definition based on OPTION_MUSL for 64 bit targets.
3410 * config/linux.h (OPTION_MUSL): Redefine.
3411 * config/alpha/linux.h (OPTION_MUSL): Redefine.
3412 * config/rs6000/linux.h (OPTION_MUSL): Redefine.
3413 * config/rs6000/linux64.h (OPTION_MUSL): Redefine.
3414
a9173cea 34152015-05-08 Gregor Richards <gregor.richards@uwaterloo.ca>
3416 Szabolcs Nagy <szabolcs.nagy@arm.com>
3417
3418 * config.gcc (LIBC_MUSL): New tm_defines macro.
3419 * config/linux.h (OPTION_MUSL): Define.
3420 (MUSL_DYNAMIC_LINKER, MUSL_DYNAMIC_LINKER32,)
3421 (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERX32,)
3422 (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
3423 (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
3424 (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
3425 * config/linux.opt (mmusl): New option.
3426 * doc/invoke.texi (GNU/Linux Options): Document -mmusl.
3427 * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
3428 (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
3429 * configure: Regenerate.
3430
83337fd6 34312015-05-08 H.J. Lu <hongjiu.lu@intel.com>
3432 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
3433
3434 PR target/48904
3435 * config.gcc (x86_64-*-knetbsd*-gnu): Add i386/knetbsd-gnu64.h.
3436 * config/i386/knetbsd-gnu64.h: New file.
3437
dc5945dc 34382015-05-08 Marek Polacek <polacek@redhat.com>
3439
3440 PR c/64918
3441 * doc/invoke.texi: Document -Woverride-init-side-effects.
3442
cdc64059 34432015-05-07 Marek Polacek <polacek@redhat.com>
3444
3445 PR c/65179
3446 * doc/invoke.texi: Document -Wshift-negative-value.
3447
e58b5f40 34482015-05-06 Aditya Kumar <hiraditya@msn.com>
3449
3450 * gcov-tool.c (do_merge): Refactore to remove int ret.
3451 * ipa-icf.c (sem_item::hash_referenced_symbol_properties): Change
3452 !type == FUNC to type != FUNC.
3453 * reload.h (struct target_reload): Changee to type of
3454 x_spill_indirect_levels from bool to unsigned char.
3455
d1f9b275 34562015-05-07 Richard Sandiford <richard.sandiford@arm.com>
3457
3458 * rtl.h (always_void_p): New function.
3459 * gengenrtl.c (always_void_p): Likewise.
3460 (genmacro): Don't add a mode parameter to gen_rtx_foo if rtxes
3461 with code foo are always VOIDmode.
3462 * genemit.c (gen_exp): Update gen_rtx_foo calls accordingly.
3463 * builtins.c, caller-save.c, calls.c, cfgexpand.c, combine.c,
3464 compare-elim.c, config/aarch64/aarch64.c,
3465 config/aarch64/aarch64.md, config/alpha/alpha.c,
3466 config/alpha/alpha.md, config/arc/arc.c, config/arc/arc.md,
3467 config/arm/arm-fixed.md, config/arm/arm.c, config/arm/arm.md,
3468 config/arm/ldrdstrd.md, config/arm/thumb2.md, config/arm/vfp.md,
3469 config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
3470 config/c6x/c6x.md, config/cr16/cr16.c, config/cris/cris.c,
3471 config/cris/cris.md, config/darwin.c, config/epiphany/epiphany.c,
3472 config/epiphany/epiphany.md, config/fr30/fr30.c, config/frv/frv.c,
3473 config/frv/frv.md, config/h8300/h8300.c, config/i386/i386.c,
3474 config/i386/i386.md, config/i386/sse.md, config/ia64/ia64.c,
3475 config/ia64/vect.md, config/iq2000/iq2000.c,
3476 config/iq2000/iq2000.md, config/lm32/lm32.c, config/lm32/lm32.md,
3477 config/m32c/m32c.c, config/m32r/m32r.c, config/m68k/m68k.c,
3478 config/m68k/m68k.md, config/mcore/mcore.c, config/mcore/mcore.md,
3479 config/mep/mep.c, config/microblaze/microblaze.c,
3480 config/mips/mips.c, config/mips/mips.md, config/mmix/mmix.c,
3481 config/mn10300/mn10300.c, config/msp430/msp430.c,
3482 config/nds32/nds32-memory-manipulation.c, config/nds32/nds32.c,
3483 config/nds32/nds32.md, config/nios2/nios2.c, config/nvptx/nvptx.c,
3484 config/pa/pa.c, config/pa/pa.md, config/rl78/rl78.c,
3485 config/rs6000/altivec.md, config/rs6000/rs6000.c,
3486 config/rs6000/rs6000.md, config/rs6000/vector.md,
3487 config/rs6000/vsx.md, config/rx/rx.c, config/rx/rx.md,
3488 config/s390/s390.c, config/s390/s390.md, config/sh/sh.c,
3489 config/sh/sh.md, config/sh/sh_treg_combine.cc,
3490 config/sparc/sparc.c, config/sparc/sparc.md, config/spu/spu.c,
3491 config/spu/spu.md, config/stormy16/stormy16.c,
3492 config/tilegx/tilegx.c, config/tilegx/tilegx.md,
3493 config/tilepro/tilepro.c, config/tilepro/tilepro.md,
3494 config/v850/v850.c, config/v850/v850.md, config/vax/vax.c,
3495 config/visium/visium.c, config/xtensa/xtensa.c, cprop.c, dse.c,
3496 expr.c, gcse.c, ifcvt.c, ira.c, jump.c, lower-subreg.c,
3497 lra-constraints.c, lra-eliminations.c, lra.c, postreload.c, ree.c,
3498 reg-stack.c, reload.c, reload1.c, reorg.c, sel-sched.c,
3499 var-tracking.c: Update calls accordingly.
3500
1dc4e116 35012015-05-07 Segher Boessenkool <segher@kernel.crashing.org>
3502
3503 PR middle-end/192
3504 PR middle-end/54303
3505 * varasm.c (function_mergeable_rodata_prefix): New function.
3506 (mergeable_string_section): Use it.
3507 (mergeable_constant_section): Use it.
3508
8cd9143e 35092015-05-07 Jeff Law <law@redhat.com>
3510
6fa6a871 3511 PR target/39726
8cd9143e 3512 * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
3513 simplifier to narrow arithmetic.
3514 * generic-match-head.c: (types_match, single_use): New functions.
3515 * gimple-match-head.c: (types_match, single_use): New functions.
3516
fabf2608 35172015-05-07 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
3518
3519 * combine.c (make_compound_operation): Remove checks for PLUS/MINUS
3520 rtx type.
3521
cce09224 35222015-05-07 Richard Biener <rguenther@suse.de>
3523
3524 PR tree-optimization/66002
3525 * passes.def: Schedule another pass_merge_phi after ifcombine, right
3526 before phiopt.
3527
8cafe283 35282015-05-07 Marek Polacek <polacek@redhat.com>
3529 Martin Uecker <uecker@eecs.berkeley.edu>
3530
3531 * doc/invoke.texi: Document -fsanitize=bounds-strict.
3532 * flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS_STRICT, or it
3533 into SANITIZE_NONDEFAULT.
3534 * opts.c (common_handle_option): Handle -fsanitize=bounds-strict.
3535
3032a4ea 35362015-05-07 Uros Bizjak <ubizjak@gmail.com>
3537
3538 PR target/66015
3539 * config/alpha/alpha.c (alpha_override_options_after_change): New.
3540 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New.
3541 (alpha_override_options): Move align_loops, align_jumps and
3542 align_functions handling into alpha_override_options_after_change.
3543
1ddaa252 35442015-05-06 Sandra Loosemore <sandra@codesourcery.com>
3545 Chris Jones <chrisj@nvidia.com>
3546 Joshua Conner <jconner@nvidia.com>
3547
3548 * config/arm/unknown-elf.h (STARTFILE_SPEC): Add conditional
3549 linking of crtfastmath.o.
3550 * config/arm/linux-eabi.h (STARTFILE_SPEC): Likewise.
3551
b176768d 35522015-05-06 Segher Boessenkool <segher@kernel.crashing.org>
3553
3554 * config/rs6000/rs6000.md (cstore<mode>4_signed_imm): New expander.
3555 (cstore<mode>4_unsigned_imm): New expander.
3556 (cstore<mode>4): Remove empty constraint strings. Use the new
3557 expanders.
3558
803253c2 35592015-05-06 Yvan Roux <yvan.roux@linaro.org>
3560
3561 PR target/64208
3562 * config/arm/iwmmxt.md ("*iwmmxt_arm_movdi"): Cleanup redundant
3563 alternatives.
3564
11667a90 35652015-05-06 Szabolcs Nagy <szabolcs.nagy@arm.com>
3566
3567 * config/aarch64/geniterators.sh: Use standard BRE in sed.
3568
4ff08325 35692015-05-06 Alan Modra <amodra@gmail.com>
3570
3571 PR target/66033
3572 * config/rs6000/rs6000.md (nop): Use an unspec pattern.
3573 (UNSPEC_NOP): Define.
3574 (reload_vsx_from_gpr<mode>): Add missing DONE.
3575 (reload_gpr_from_vsx<mode>): Likewise.
3576 * config/rs6000/vsx.md (vsx_mul_v2di): Likewise.
3577 (vsx_div_v2di, vsx_udiv_v2di): Likewise.
3578
431164c5 35792015-05-06 Christian Bruel <christian.bruel@st.com>
3580
3581 PR target/66015
3582 * config/aarch64/aarch64.c (aarch64_override_options): Move align_loops,
3583 align_jumps, align_functions into aarch64_override_options_after_change.
3584
aa83abc3 35852015-05-06 Richard Biener <rguenther@suse.de>
3586
3587 * tree-vect-slp.c (vect_supported_load_permutation_p): Use
3588 vect_transform_slp_perm_load to check if we support a permutation
3589 for basic-block vectorization.
3590
52337e94 35912015-05-06 Nick Clifton <nickc@redhat.com>
3592
3593 * config/rl78/rl78.c (need_to_save): Save register 22 if it is
3594 used, even if it is not being used as a frame pointer.
3595
2b89ba2d 35962015-05-05 Jason Merrill <jason@redhat.com>
3597
3598 * dwarf2out.c (gen_member_die): Don't emit anything for an
3599 anonymous class constructor.
3600
5c6f6a61 36012015-05-05 David Malcolm <dmalcolm@redhat.com>
3602
3603 * auto-profile.c (afdo_find_equiv_class): Fix indentation so
3604 that it reflects the block structure.
3605 (afdo_propagate_edge): Likewise.
3606 (afdo_calculate_branch_prob): Likewise.
3607 (afdo_annotate_cfg): Likewise.
3608 * cfgcleanup.c (equal_different_set_p): Likewise.
3609 (try_crossjump_to_edge): Likewise.
3610 * cgraph.c (cgraph_node::verify_node): Likewise.
3611 * cgraphunit.c (expand_all_functions): Likewise.
3612 * config/i386/i386.c (ix86_expand_copysign): Likewise.
3613 (exact_dependency_1): Likewise.
3614 * dwarf2asm.c (dw2_output_indirect_constants): Likewise.
3615 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Likewise.
3616 * gensupport.c (process_define_subst): Likewise.
3617 * lto-wrapper.c (merge_and_complain): Likewise.
3618 * tree-if-conv.c (if_convertible_bb_p): Likewise.
3619 * tree-ssa-loop-prefetch.c (find_or_create_group): Likewise.
3620 * tree-ssa-tail-merge.c (gsi_advance_fw_nondebug_nonlocal): Likewise.
3621 * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
3622 * tree-vect-loop.c (vectorizable_reduction): Likewise.
3623 * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
3624 * tree-vect-stmts.c (vectorizable_shift): Likewise.
3625 * tree-vrp.c (vrp_finalize): Likewise.
3626 * tree.c (variably_modified_type_p): Likewise.
3627
182d4990 36282015-05-05 Jack Howarth <howarth.at.gcc@gmail.com>
3629
3630 * config.gcc: Use darwin9.h, darwin10.h and darwin12.h
3631 on darwin12 and later.
3632 * config/darwin12.h (LINK_GCC_C_SEQUENCE_SPEC): Add
3633 file to pass -rdynamic on darwin12 and later.
3634 * config/darwin.opt (rdynamic): Add.
3635
635c615f 36362015-05-05 Uros Bizjak <ubizjak@gmail.com>
3637
3638 * doc/extend.texi (C Extensions): Update menu for moved Variable
3639 Attributes and Type Attributes sections.
3640
e27f3f57 36412015-05-05 Uros Bizjak <ubizjak@gmail.com>
3642
3643 PR target/65990
3644 * config/i386/i386.c (ix86_parse_stringop_strategy_string): Error out
3645 if rep_8byte stringop strategy was specified for 32-bit target.
3646
3cd66da2 36472015-05-05 Ilya Tocar <ilya.tocar@intel.com>
3648
3649 PR target/65915
3650 * config/i386/i386.md (vector convert to float spltiter): Check for
3651 xmm16+, when splitting scalar float conversion.
3652 * config/i386/sse.md (sse2_cvtsi2sd): Support EVEX version.
3653
ab9c90cd 36542015-05-05 Nick Clifton <nickc@redhat.com>
3655
3656 * config/msp430/msp430-opts.h (enum msp430_regions): New.
3657 * config/msp430/msp430.c (msp430_override_options): Complain if
3658 -mcode-region or -mdata-region is used on a non MSP430X.
3659 (msp430_section_attr): New function. Checks lower, upper and
3660 either attributes.
3661 (msp430_attribute_table): Add lower, upper and either.
3662 (gen_prefix): New function. Generates a prefix for a section
3663 name.
3664 (msp430_select_section): New function - handles the choice of
3665 section for an object. Takes into account memory region
3666 attributes and options.
3667 (msp430_function_section): Use gen_prefix.
3668 (TARGET_SECTION_TYPE_FLAGS): Define.
3669 (msp430_section_type_flags): New function.
3670 (TARGET_ASM_UNIQUE_SECTION): Define.
3671 (msp430_unique_section): New function.
3672 (msp430_output_aligned_decl_common): New function.
3673 (msp430_do_not_relax_short_jumps): New function.
3674 * config/msp430/msp430.h (USE_SELECT_SECTION_FOR_FUNCTIONS):
3675 Define.
3676 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define.
3677 * config/msp430/msp430-protos.h
3678 (msp430_do_not_relax_short_jumps): New prototype.
3679 (msp430_output_aligned_decl_common): New prototype.
3680 * config/msp430/msp430.md (length): New attribute.
3681 (cbranchhi4_real): If msp430_do_not_relax_short_jumps is true
3682 then use a long code sequence for short jumps.
3683 * config/msp430/msp430.opt (mcode-region): New.
3684 (mdata-region): New.
3685 * doc/invoke.texi: Document new options.
3686 * doc/extend.texi: Document new attributes.
3687
d05ee6d2 36882015-05-05 Matthew Wahab <matthew.wahab@arm.com>
3689
3690 * gcc/config/aarch64-protos.h (struct cpu_branch_cost): New.
9e009662 3691 (tune_params): Add field branch_costs.
d05ee6d2 3692 (aarch64_branch_cost): Declare.
3693 * gcc/config/aarch64.c (generic_branch_cost): New.
3694 (generic_tunings): Set field cpu_branch_cost to generic_branch_cost.
3695 (cortexa53_tunings): Likewise.
3696 (cortexa57_tunings): Likewise.
3697 (thunderx_tunings): Likewise.
3698 (xgene1_tunings): Likewise.
3699 (aarch64_branch_cost): Define.
3700 * gcc/config/aarch64/aarch64.h (BRANCH_COST): Redefine.
3701
0967d20f 37022015-05-05 Uros Bizjak <ubizjak@gmail.com>
3703
3704 * config/i386/i386.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1
3705 and HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1.
3706 * config/i386/i386.md: Ditto.
3707 * config/i386/winnt.c: Ditto.
3708
a13791be 37092015-05-05 Matthew Wahab <matthew.wahab@arm.com>
3710
3711 * doc/extend.texi (__atomic Builtins): Move implementation details
3712 to the end of the description, rewrite opening paragraphs, state
3713 difference with __sync builtins, state C11/C++11 assumptions,
3714 weaken itemized descriptions, add explanation of memory model
3715 behaviour, expand description of compare-exchange, simplify text.
3716
6b4fd5ff 37172015-05-05 Renlin Li <renlin.li@arm.com>
3718
3719 * config/aarch64/aarch64.md (add<mode>3): Use mov when allowed.
3720
3de2f3c9 37212015-05-05 Yvan Roux <yvan.roux@linaro.org>
3722
3723 * config/aarch64/aarch64-elf-raw.h (CA53_ERR_843419_SPEC): Define.
3724 (LINK_SPEC): Include CA53_ERR_843419_SPEC.
3725 * config/aarch64/aarch64-linux.h (CA53_ERR_843419_SPEC): Define.
3726 (LINK_SPEC): Include CA53_ERR_843419_SPEC.
3727 * config/aarch64/aarch64.opt (mfix-cortex-a53-843419): New option.
3728 * configure: Regenerate.
3729 * configure.ac: Add --enable-fix-cortex-a53-843419 option.
3730 * doc/install.texi (aarch64*-*-*): Document new
3731 --enable-fix-cortex-a53-843419 option.
3732 * doc/invoke.texi (AArch64 Options): Document -mfix-cortex-a53-843419
3733 and -mno-fix-cortex-a53-843419 options.
3734
57bae6ad 37352015-05-05 Uros Bizjak <ubizjak@gmail.com>
3736
3737 PR target/65871
3738 * config/i386/i386.md (*bmi_andn_<mode>_ccno): New pattern.
3739
37402015-05-04 Jan Hubicka <hubicka@ucw.cz>
51c5663b 3741
3742 * tree.c (verify_type): Check various uses of TYPE_MAXVAL;
3743 fix overactive TYPE_MIN_VALUE check and add FIXME for type
3744 compatibility problems.
3745
769dd1e6 37462015-05-04 Ajit Agarwal <ajitkum@xilinx.com>
3747
3748 * config/microblaze/microblaze.md (cbranchsi4): Added immediate
3749 constraints.
3750 (cbranchsi4_reg): New.
3751 * config/microblaze/microblaze.c
3752 (microblaze_expand_conditional_branch_reg): New.
3753 * config/microblaze/microblaze-protos.h
3754 (microblaze_expand_conditional_branch_reg): New prototype.
3755
9237c3de 37562015-05-04 Ajit Agarwal <ajitkum@xilinx.com>
3757
3758 * config/microblaze/microblaze.md (peephole2): New.
3759
ca1f69f1 37602015-05-04 Jeff Law <law@redhat.com>
3761
3762 Revert:
3763 2015-05-04 Jeff Law <law@redhat.com>
3764
9237c3de 3765 * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
3766 simplifier to narrow arithmetic.
3767 * generic-match-head.c: (types_match, single_use): New functions.
3768 * gimple-match-head.c: (types_match, single_use): New functions.
ca1f69f1 3769
22e34ea6 37702015-05-04 Kaz Kojima <kkojima@gcc.gnu.org>
3771
3772 PR target/65987
3773 * config/sh/sh.c (output_far_jump): Take into account crossing jumps.
3774 (split_branches): Likewise.
3775
2d66501e 37762015-05-04 Sandra Loosemore <sandra@codesourcery.com>
3777
3778 * common.opt (fdelete-null-pointer-checks): Init to -1.
3779 * config/nios2/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define to
3780 override flag_delete_null_pointer_checks default.
3781 * doc/invoke.texi (-fdelete-null-pointer-checks): Clarify
3782 behavior re address zero. Better document target-specific behavior.
3783 (-fisolate-errneous-paths-dereference): Mention relationship to
3784 -fdelete-null-pointer-checks.
3785
df6e3469 37862015-05-04 Jakub Jelinek <jakub@redhat.com>
3787
3788 PR tree-optimization/65984
3789 * ubsan.c: Include tree-cfg.h.
3790 (instrument_bool_enum_load): Use stmt_ends_bb_p instead of
3791 stmt_could_throw_p test, rename can_throw variable to ends_bb.
3792
672cf86b 37932015-05-04 Uros Bizjak <ubizjak@gmail.com>
3794
3795 * config/i386/i386.c: Change GET_CODE (...) == CONST_DOUBLE check
3796 to CONST_DOUBLE_P predicate.
3797 (standard_sse_constant_p): Return 0 for !TARGET_SSE.
3798 (ix86_legitimate_constant_p) <case CONST_WIDE_INT>: For 32bit targets,
3799 allow only operands that satisfy standard_sse_constant_p predicate.
3800 * config/i386/i386.md: Change GET_CODE (...) == CONST_DOUBLE check
3801 to CONST_DOUBLE_P predicate.
3802
c8c9ffdb 38032015-05-04 Jeff Law <law@redhat.com>
3804
3805 * match.pd (bit_and (plus/minus (convert @0) (convert @1) mask): New
3806 simplifier to narrow arithmetic.
3807 * generic-match-head.c: (types_match, single_use): New functions.
3808 * gimple-match-head.c: (types_match, single_use): New functions.
3809
62b41575 38102015-05-04 Andreas Tobler <andreast@gcc.gnu.org>
3811
3812 * config/arm/arm.c: Restore bootstrap.
3813
23e9258a 38142015-05-04 Uros Bizjak <ubizjak@gmail.com>
3815
3816 * config/i386/i386.h (TARGET_SUPPORTS_WIDE_INT): New define.
3817 * config/i386/i386.c (ix86_legitimate_constant_p): Handle TImode
3818 as CONST_WIDE_INT, not CONST_DOUBLE.
3819 (ix86_cannot_force_const_mem): Handle CONST_WIDE_INT.
3820 (output_pic_addr_const): Do not handle VOIDmode CONST_DOUBLEs.
3821 (ix86_find_base_term): Do not check for CONST_DOUBLE.
3822 (ix86_print_operand): Do not handle non-FPmode CONST_DOUBLEs.
3823 (ix86_build_signbit_mask): Rewrite using wide ints.
3824 (ix86_split_to_parts) [HOST_BITS_PER_WIDE_INT < 64]: Remove.
3825 (ix86_rtx_costs): Handle CONST_WIDE_INT.
3826 (find_constant): Ditto.
3827 * config/i386/i386.md (bts, btr, btc peepholes): Rewrite
3828 using gen_int_mode.
3829 * config/i386/predicates.md (x86_64_immediate_operand)
3830 <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
3831 (x86_64_zext_immediate_operand): Remove CONST_DOUBLE handling.
3832 <case CONST_INT>: Remove HOST_BITS_PER_WIDE_INT == 32 code.
3833 (const0_operand): Also match const_wide_int.
3834 (constm1_operand): Ditto.
3835 (const1_operand): Ditto.
3836
3599384d 38372015-05-04 Richard Biener <rguenther@suse.de>
3838
3839 PR tree-optimization/65965
3840 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
3841 store groups at gaps.
3842
f116baa1 38432015-05-04 Richard Biener <rguenther@suse.de>
3844
3845 PR tree-optimization/65935
3846 * tree-vect-slp.c (vect_build_slp_tree): If we swapped operands
3847 then make sure to apply that swapping to the IL.
3848
47cccfda 38492015-05-04 Jakub Jelinek <jakub@redhat.com>
3850
3851 * Makefile.in (PATCHLEVEL_c): New variable.
3852 (DATESTAMP_s, REVISION_s): If PATCHLEVEL_c is not 0,
3853 expand the same way as if DEVPHASE_c was non-empty.
3854
0d64e1fb 38552015-05-04 Kai Tietz <ktietz@redhat.com>
3856
3857 PR target/65559
3858 * lto-wrapper.c (run_gcc): Open filename
13965b26 3859 in binary-mode.
0d64e1fb 3860
9a7820df 38612015-05-03 Sandra Loosemore <sandra@codesourcery.com>
3862
3863 * doc/extend.texi (Variable Attributes, Type Attributes): Move
3864 sections up in file, to immediately after the Function Attributes
3865 section.
3866
f7f4072c 38672015-05-02 Jan Hubicka <hubicka@ucw.cz>
3868
3869 * tree.c (verify_type): Check various uses of TYPE_MINVAL.
3870
c3b448d0 38712015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3872
3873 * tree-outof-ssa.c (emit_partition_copy): Return rtx_insn *.
3874 (insert_partition_copy_on_edge): Adjust.
3875 (insert_rtx_to_part_on_edge): Likewise.
3876 (insert_part_to_rtx_on_edge): Likewise.
3877
a9634f6a 38782015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3879
3880 * function.c (set_return_jump_label): Change type of argument to
3881 rtx_insn *.
3882 * function.h (set_return_jump_label): Adjust.
3883
8d017f25 38842015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3885
3886 * reload.h (struct reg_equivs_t): Change type of init to
3887 rtx_insn *.
3888 * ira.c (fix_reg_equiv_init): Adjust.
3889 * reload1.c (eliminate_regs_1): Likewise.
3890 (init_eliminable_invariants): Likewise.
3891
33923896 38922015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3893
3894 * cselib.c (fp_setter_insn): Take a rtx_insn *.
3895 * cselib.h (fp_setter_insn): Adjust.
3896
e603a422 38972015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3898
3899 * recog.c (struct validate_replace_src_data): Change type of
3900 insn field to rtx_insn *.
3901 (validate_replace_src_group): Change type of argument to rtx_insn *.
3902 * recog.h (validate_replace_src_group): Adjust.
3903
71ce7f59 39042015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3905
3906 * haifa-sched.c: Change the type of some variables to rtx_insn *.
3907 * sched-deps.c: Likewise.
3908 * sched-int.h: Likewise.
3909 * sched-rgn.c: Likewise.
3910 * sel-sched.c: Likewise.
3911
98e056f6 39122015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3913
3914 to rtx_insn *.
3915 * config/i386/i386.c: Change the type of some arguments to
3916 rtx_insn *.
3917 * config/arm/arm.c: Likewise.
3918
c265d2aa 39192015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3920
3921 * lra-constraints.c: Change type of some arguments to rtx_insn *.
3922
8108f3f0 39232015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3924
3925 * regcprop.c (kill_autoinc_value): Change type of argument to
3926 rtx_insn *.
3927
60ff05a9 39282015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3929
3930 * genrecog.c (print_subroutine): Adjust.
3931 * recog.c (get_bool_attr_mask_uncached): Likewise.
3932 * recog.h (struct recog_data_d): Change the type of insn to
3933 rtx_insn *.
3934
c0937357 39352015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3936
3937 * dwarf2cfi.c (add_cfi_insn): Change type to rtx_insn *.
3938
ef22ff6d 39392015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3940
3941 * df-problems.c (df_set_note): Change type of argument to
3942 rtx_insn *.
3943
bf79ca12 39442015-05-02 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3945
3946 * builtins.c (expand_builtin_trap): Change type of local
3947 variable to rtx_insn *.
3948 (add_sched_insns_for_speculation): Likewise.
3949 (ix86_emit_save_regs): Likewise.
3950 (get_scratch_register_on_entry): Likewise.
3951 (ix86_emit_restore_reg_using_pop): Likewise.
3952 (ix86_emit_leave): Likewise.
3953 (ix86_emit_restore_regs_using_mov): Likewise.
3954 (ix86_expand_epilogue): Likewise.
3955 Likewise.
3956 (rl78_alloc_physical_registers_umul): Likewise.
3957 * cselib.c (discard_useless_locs): Likewise.
3958 (cselib_invalidate_regno): Likewise.
3959 (cselib_invalidate_mem): Likewise.
3960 * function.c (expand_function_start): Likewise.
3961 (emit_use_return_register_into_block): Likewise.
3962 * gcse.c: Likewise.
3963 * haifa-sched.c (ok_for_early_queue_removal): Likewise.
3964 * ifcvt.c (noce_get_alt_condition): Likewise.
3965 * loop-doloop.c (doloop_condition_get): Likewise.
3966 * lra-constraints.c (inherit_in_ebb): Likewise.
3967 * modulo-sched.c (sms_schedule_by_order): Likewise.
3968 * recog.c (next_insn_tests_no_inequality): Likewise.
3969 * reorg.c (emit_delay_sequence): Likewise.
3970 (update_reg_dead_notes): Likewise.
3971 (fix_reg_dead_note): Likewise.
3972 (fill_slots_from_thread): Likewise.
3973 (delete_computation): Likewise.
3974
47239e3f 39752015-05-01 Sandra Loosemore <sandra@codesourcery.com>
3976
3977 * doc/extend.texi (Variable Attributes): Add menu and proper
3978 @nodes to subsections. Move Microsoft Windows attributes to
3979 their own subsection.
3980 (Type Attributes): Reorganize introduction to remove duplicate
3981 list of attributes. Add menu and proper @nodes to subsections.
3982 Alphabetize the main table of common attributes.
3983
c0cf1b24 39842015-05-01 Rasmus Villemoes <rv@rasmusvillemoes.dk>
3985
3986 * match.pd: New simplification patterns.
3987 (x + (x & 1)) -> ((x + 1) & ~1)
3988 (x & ~(x & y)) -> ((x & ~y))
3989 (x | ~(x | y)) -> ((x | ~y))
3990
91302006 39912015-05-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3992
3993 * target.def (attribute_table): Mention that struct attribute_spec
3994 is defined in tree-core.h rather than tree.h
3995 * doc/tm.texi: Regenerate.
3996
abef0e58 39972015-05-01 Richard Sandiford <richard.sandiford@arm.com>
3998
3999 * genrecog.c (test): Rename to rtx_test. Update rest of file
4000 accordingly.
4001
33c423fe 40022015-05-01 Andreas Schwab <schwab@linux-m68k.org>
4003
4004 PR translation/65959
4005 * params.h (DEFPARAM): Rename msgid to nocmsgid.
4006
f7429d30 40072015-05-01 Wilco Dijkstra <wdijkstr@arm.com>
4008
4009 * gcc/config/aarch64/aarch64-protos.h (tune_params):
4010 Add min_div_recip_mul_sf and min_div_recip_mul_df fields.
4011 * gcc/config/aarch64/aarch64.c (aarch64_min_divisions_for_recip_mul):
4012 Return value depending on target.
4013 (generic_tunings): Initialize new target settings.
4014 (cortexa53_tunings): Likewise.
4015 (cortexa57_tunings): Likewise.
4016 (thunderx_tunings): Likewise.
4017 (xgene1_tunings): Likewise.
4018
bec4d629 40192015-05-01 Wilco Dijkstra <wdijkstr@arm.com>
4020
4021 * gcc/config/arm/aarch-cost-tables.h (cortexa53_extra_costs):
4022 Make Cortex-A53 shift costs more accurate.
4023
61f1e9bc 40242015-05-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4025
4026 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle FLOAT and
4027 UNSIGNED_FLOAT.
4028
aa32f5e1 40292015-05-01 Wilco Dijkstra <wdijkstr@arm.com>
4030
4031 * gcc/config/aarch64/aarch64.c (aarch64_rtx_costs):
4032 Calculate cost of op0 and op1 in PLUS and MINUS cases.
4033
25b6d1de 40342015-05-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4035
4036 * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
4037 Add cost of op0 in the compare-with-fpzero case.
4038
7082509e 40392015-04-30 David Malcolm <dmalcolm@redhat.com>
4040
4041 * builtins.c (fold_builtin_1): Remove spurious second
4042 semicolon.
4043 * cgraph.h (symtab_node::get_availability): Likewise.
4044 * opts.c (common_handle_option): Remove spurious second semicolon.
4045 * tree-ssa-loop-ivopts.c (extract_cond_operands): Likewise.
4046 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Likewise.
4047
3e1bd9b8 40482015-04-30 Caroline Tice <cmtice@google.com>
4049
9e009662 4050 PR gcov-profile/65929
3e1bd9b8 4051 * config/elfos.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro definition.
4052 (ASM_DECLARE_COLD_FUNCTION_SIZE): New macro definition.
4053 * doc/tm.texi.in (ASM_DECLARE_COLD_FUNCTION_NAME): Document new macro.
4054 (ASM_DECLARE_COLD_FUNCTION_SIZE): Document new macro.
a59970a6 4055 * doc/tm.texi: Regenerate.
3e1bd9b8 4056 * final.c (final_scan_insn): Use ASM_DECLARE_COLD_FUNCTION_NAME
4057 instead of ASM_DECLARE_FUNCTION_NAME for cold partition name.
4058 * varasm.c (assemble_end_function): Use ASM_DECLARE_COLD_FUNCTION_SIZE
4059 instead of ASM_DECLARE_FUNCTION_SIZE for cold partition size.
4060
51aab393 40612015-04-30 Marek Polacek <polacek@redhat.com>
4062
4063 * varasm.c (handle_cache_entry): Fix logic.
4064
7e733b67 40652015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4066
4067 * config/aarch64/aarch64.md (*extr<mode>5_insn_alt): New pattern.
4068 (*extrsi5_insn_uxtw_alt): Likewise.
4069 * config/aarch64/aarch64.c (aarch64_extr_rtx_p): New function.
4070 (aarch64_rtx_costs, IOR case): Use above to properly cost extr
4071 operations.
4072
1db16df8 40732015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4074
4075 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle pattern for
4076 fabd in ABS case.
4077
17a5981f 40782015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4079
4080 * config/aarch64/aarch64.md
4081 (*eor_one_cmpl_<SHIFT:optab><mode>3_alt): New pattern.
4082 (*eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
4083 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle MVN-shift
4084 appropriately. Handle alternative EON form.
4085
5bea7977 40862015-04-30 Renlin Li <renlin.li@arm.com>
4087
4088 * config/aarch64/aarch64-simd.md (vec_shr): Defined as an unspec.
4089 * config/aarch64/iterators.md (unspec): Add UNSPEC_VEC_SHR.
4090
a64b3549 40912015-04-30 Jan Hubicka <hubicka@ucw.cz>
4092
4093 PR ipa/65873
4094 * ipa-inline.c (can_inline_edge_p): It is safe to inline across
4095 -fstrict-aliasing boundaries.
4096
e087eb70 40972015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4098
4099 * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Handle MNEG
4100 and [SU]MNEGL patterns.
4101
4ab3c0df 41022015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4103
4104 * config/aarch64/aarch64.c (aarch64_shift_p): New function.
4105 (aarch64_rtx_mult_cost): Update comment to reflect that it also handles
4106 combined arithmetic-shift ops. Properly handle all shift and extend
4107 operations that can occur in combination with PLUS/MINUS.
4108 Rename maybe_fma to compound_p.
4109 (aarch64_rtx_costs): Use aarch64_shift_p when costing compound
4110 arithmetic and shift operations.
4111
f6935cdd 41122015-04-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4113
4114 * config/aarch64/aarch64.c (aarch64_rtx_costs): Use extend_arith
4115 rather than arith_shift cost when costing ADD/MINUS of an
4116 extended value.
4117
d08a3f89 41182015-04-30 Jan Hubicka <hubicka@ucw.cz>
4119
4120 PR lto/65948
4121 * ipa-devirt.c (odr_types_equivalent_p): NULLPTR_TYPE is equivalent
4122 to itself.
4123
fe512d6d 41242015-04-30 Richard Sandiford <richard.sandiford@arm.com>
4125
4126 * genrecog.c (simplify_tests): Check that CONST_INT and XWINT tests
4127 are for the same position.
4128
e0e5f8dc 41292015-04-29 Aditya Kumar <hiraditya@hotmail.com>
4130
4131 * tree-vectorizer.c (set_uid_loop_bbs): New. Factored out of
4132 vectorize_loops.
4133 (vectorize_loops): Use it.
4134
9da64769 41352015-04-29 Jan Hubicka <hubicka@ucw.cz>
4136
4137 * ipa-devirt.c (odr_subtypes_equivalent_p): Compare TYPE_NAME only
4138 for aggregate types.
4139 (register_odr_type): Be ready for MAIN_VARIANT of ODR type
4140 type to be non_ODR.
4141 * tree.c (need_assembler_name_p): Compute mangled name for
4142 non-fundamental types and integer types.
4143
1d1a557c 41442015-04-29 Mikhail Maltsev <maltsevm@gmail.com>
4145
4146 * dojump.c (do_compare_rtx_and_jump): Use std::swap instead of
4147 manual swaps.
4148 * expr.c (expand_expr_real_2): Likewise.
4149
0241f4a1 41502015-04-29 Jan Hubicka <hubicka@ucw.cz>
4151
4152 * tree.c (build_common_builtin_nodes): Do not build
4153 __builtin_alloca_with_align as equivalent of library alloca.
4154
988cf7b9 41552015-04-29 Jan Hubicka <hubicka@ucw.cz>
4156
4157 * dwarf2out.c (gen_type_die_with_usage): Call verify_type.
4158 * ipa-chkp.c (chkp_copy_function_type_adding_bounds): Do not produce
4159 bugus variants.
4160 * tree.c: Include print-tree.h and ipa-utils.h
4161 (free_lang_data_in_type): Clear TYPE_VFIELD leaked by C FE.
4162 (free_lang_data_in_cgraph): Call verify_type.
4163 (verify_type_variant): New function.
4164 (verify_type): New function.
4165 * tree.h (verify_type): Declare.
4166
0a6c9dff 41672015-04-29 Steve Ellcey <sellcey@imgtec.com>
4168
4169 * config/mips/mips-cpus.def: (mips4): Change default processor
4170 from PROCESSOR_R8000 to PROCESSOR_R10000.
4171
3e42171c 41722015-04-29 Petar Jovanovic <petar.jovanovic@rt-rk.com>
4173
4174 * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Fix the macro to use
4175 la/jalr instead of jal.
4176
6835e01d 41772015-04-29 Uros Bizjak <ubizjak@gmail.com>
4178
4179 PR target/65871
57bae6ad 4180 * config/i386/i386.md (*bmi_bextr_<mode>_ccz): New pattern.
4181 (*bmi2_bzhi_<mode>3_1_ccz): Ditto.
2825339a 4182 (setcc+movzbl peephole2): Check also clobbered reg.
4183 (setcc+andl peephole2): Ditto.
6835e01d 4184
df615909 41852015-04-29 Thomas Schwinge <thomas@codesourcery.com>
4186
4187 PR libgomp/65099
4188 * config/nvptx/mkoffload.c (target_ilp32): New variable.
4189 (main): Set it depending on "-foffload-abi=[...]".
4190 (compile_native, main): Use it to pass "-m32" or "-m64" to the
4191 compiler.
4192
59d865b5 41932015-04-29 Alan Lawrence <alan.lawrence@arm.com>
4194
4195 PR target/65770
4196 * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>,
4197 vec_store_lanesci_lane<mode>, vec_store_lanesxi_lane<mode>):
4198 Flip lane index back at assembly time for bigendian.
4199
95cfd391 42002015-04-29 Thomas Schwinge <thomas@codesourcery.com>
4201
4202 * tree.h (OMP_STANDALONE_CLAUSES): New macro.
4203 * gimplify.c (gimplify_omp_workshare): Use it.
4204
59250a8d 42052015-04-29 Richard Sandiford <richard.sandiford@arm.com>
4206
4207 * Makefile.in (build/genrecog.o): Depend on inchash.h.
4208 (build/genrecog$(build_exeext): Depend on build/hash-table.o and
4209 build/inchash.o
4210 * genrecog.c: Rewrite most of the code except for the third page.
4211
c46201cf 42122015-04-29 Richard Sandiford <richard.sandiford@arm.com>
4213
4214 * inchash.h, inchash.c: Include bconfig.h for build objects.
4215 * Makefile.in (build/inchash.o): New rule.
4216
02f930d3 42172015-04-29 Yvan Roux <yvan.roux@linaro.org>
4218
4219 PR target/65924
4220 * config/arm/thumb2.md (*thumb2_addsi3_compare0_scratch): Fix operand
4221 number in type attribute expression.
4222
63401591 42232015-04-29 Richard Sandiford <richard.sandiford@arm.com>
4224
4225 * loop-iv.c (canon_condition): Generalize to all types of integer
4226 constant.
4227
81b5048b 42282015-04-29 Bernhard Reuther-Fischer <aldot@gcc.gnu.org>
4229
4230 * gimple-walk.c: Prune duplicate or unneeded includes.
4231 (walk_gimple_asm): Only call parse_input_constraint or
4232 parse_output_constraint if their findings are used.
4233 Honour parse_input_constraint and parse_output_constraint
4234 result.
4235
eb284139 42362015-04-29 Alan Lawrence <alan.lawrence@arm.com>
4237
4238 * config/arm/neon.md (vec_shl<mode>, vec_shr<mode>): Remove.
4239
379c7683 42402015-04-29 Tom de Vries <tom@codesourcery.com>
4241
4242 PR tree-optimization/65893
4243 * passes.def (pass_all_optimizations): Move pass_stdarg to after
4244 pass_dce.
4245
257941fb 42462015-04-29 Richard Biener <rguenther@suse.de>
4247
4248 * tree-vect-data-refs.c (vect_analyze_group_access): Properly
4249 compute GROUP_SIZE for basic-block SLP.
4250 * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Properly
4251 take into account gaps.
4252 (vect_get_mask_element): Properly reject references to previous
4253 vectors.
4254 (vect_transform_slp_perm_load): Likewise.
4255
711f417f 42562015-04-29 Christian Bruel <christian.bruel@st.com>
4257
4258 PR target/64835
4259 * config/i386/i386.c (ix86_default_align): New function.
4260 (ix86_override_options_after_change): Call ix86_default_align.
4261 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New hook.
4262 (ix86_override_options_after_change): New function.
4263
59ffbbb9 42642015-04-28 Jeff Law <law@redhat.com>
4265
4266 * tree-ssa-dom.c (record_equality); Fix comment typos.
4267
f7fec1c7 42682015-04-28 Tom de Vries <tom@codesourcery.com>
4269
4270 PR tree-optimization/65887
4271 * gimplify.c (gimplify_modify_expr): Remove ifn_va_arg ap fixup.
4272
f1e18532 42732015-04-28 Sandra Loosemore <sandra@codesourcery.com>
4274
4275 * doc/extend.texi (Declaring Attributes of Functions): Split into
4276 subsections by target. Alphabetize the table of common attributes.
4277 Rewrite some of the introductory text to reflect the new structure.
4278 Update some cross-references to point to the new subsections.
4279 (Attribute Syntax): Put paragraph about "__" naming here. Remove
4280 duplicate copies in the discussion of function, label, and type
4281 attributes.
4282
0c708369 42832015-04-28 Dominique d'Humieres <dominiq@lps.ens.fr>
4284
4285 PR bootstrap/65910
4286 * varasm.c (assemble_end_function): Guard ASM_DECLARE_FUNCTION_SIZE.
4287
8c522687 42882015-04-28 Jason Merrill <jason@redhat.com>
4289
4290 PR c++/65734
4291 * stor-layout.c (layout_type): Layout the TYPE_MAIN_VARIANT.
4292 (finalize_type_size): Respect TYPE_USER_ALIGN.
4293 (layout_type) [ARRAY_TYPE]: Likewise.
4294
282b4c75 42952015-04-28 Yvan Roux <yvan.roux@linaro.org>
4296
4297 * config/arm/arm.md (*arm_movt): Fix type attribute.
4298 (*cmpsi_shiftsi): Likewise.
4299 (*cmpsi_shiftsi_swp): Likewise.
4300 (*movsicc_insn): Likewise.
4301 (*cond_move): Likewise.
4302 (*if_plus_move): Likewise.
4303 (*if_move_plus): Likewise.
4304 (*if_arith_move): Likewise.
4305 (*if_move_arith): Likewise.
4306 (*if_shift_move): Likewise.
4307 (*if_move_shift): Likewise.
4308 (*arm_movtas_ze): Likewise.
4309 * config/arm/thumb2.md (*thumb2_movsicc_insn): Fix alternative
4310 redundancy and type attribute.
4311 (*thumb2_movsi_insn): Fix type attribute.
4312 (*thumb2_addsi_short): Likewise.
4313 (thumb2_addsi3_compare0): Likewise.
4314 (*thumb2_addsi3_compare0_scratch): Merge alternatives and fix
4315 attributes accordingly.
4316
9e37e96e 43172015-04-28 Markus Trippelsdorf <markus@trippelsdorf.de>
4318
4319 PR other/65911
4320 * function.c (pad_to_arg_alignment): Add parentheses.
4321
005a5ef5 43222015-04-28 Uros Bizjak <ubizjak@gmail.com>
4323
4324 * config/frv/frv.h (CRT_GET_RFIB_DATA): Move definition to
4325 libgcc/config/frv/elf-lib.h.
4326
1f5fe264 43272015-04-28 Tom de Vries <tom@codesourcery.com>
4328
4329 * tree-call-cdce.c: Fix example in header comment.
4330
6501e749 43312015-04-28 Richard Biener <rguenther@suse.de>
4332
4333 PR tree-optimization/62283
4334 * tree-vect-slp.c (vect_build_slp_tree): When the SLP build
4335 fails fatally and we are vectorizing a basic-block simply
4336 cause the child to be constructed piecewise.
4337 (vect_analyze_slp_cost_1): Adjust.
4338 (vect_detect_hybrid_slp_stmts): Likewise.
4339 (vect_bb_slp_scalar_cost): Likewise.
4340 (vect_get_constant_vectors): For piecewise constructed
4341 constants place them after the last def.
4342 (vect_get_slp_defs): Adjust.
4343 * tree-vect-stmts.c (vect_is_simple_use): Detect in-BB
4344 externals for basic-block vectorization.
4345
ee7ef7ab 43462015-04-28 Thomas Preud'homme <thomas.preudhomme@arm.com>
4347
4348 PR target/63503
4349 * config.gcc: Add cortex-a57-fma-steering.o to extra_objs for
4350 aarch64-*-*.
4351 * config/aarch64/t-aarch64: Add a rule for cortex-a57-fma-steering.o.
4352 * config/aarch64/aarch64.h (AARCH64_FL_USE_FMA_STEERING_PASS): Define.
4353 (AARCH64_TUNE_FMA_STEERING): Likewise.
4354 * config/aarch64/aarch64-cores.def: Set
4355 AARCH64_FL_USE_FMA_STEERING_PASS for cores with dynamic steering of
4356 FMUL/FMADD instructions.
4357 * config/aarch64/aarch64.c (aarch64_register_fma_steering): Declare.
4358 (aarch64_override_options): Include cortex-a57-fma-steering.h. Call
4359 aarch64_register_fma_steering () if AARCH64_TUNE_FMA_STEERING is true.
4360 * config/aarch64/cortex-a57-fma-steering.h: New file.
4361 * config/aarch64/cortex-a57-fma-steering.c: Likewise.
4362
562b4de2 43632015-04-28 Richard Sandiford <richard.sandiford@arm.com>
4364
4365 * gensupport.c (std_preds): Add missing codes to address_operand entry.
4366
27de3d43 43672015-04-28 Richard Biener <rguenther@suse.de>
4368
4369 PR tree-optimization/65851
4370 * tree-ssa-ccp.c (set_lattice_value): Perform a meet when
4371 changing CONSTANT to CONSTANT non-copy. Get new_val by reference.
4372 (ccp_lattice_meet): Remove stray argument. Use operand_equal_p
4373 rather than simple_cst_equal as the latter doesn't handle COMPLEX_CST.
4374 (ccp_visit_phi_node): Adjust.
4375 (evaluate_stmt): For simplifications to SSA names return its
4376 lattice value if that isn't VARYING. Return immediately when
4377 simplified to a constant.
4378 (visit_assignment): Adjust.
4379 (ccp_visit_stmt): Likewise.
4380
5beb86d5 43812015-04-28 Tom de Vries <tom@codesourcery.com>
4382
4383 PR tree-optimization/65818
4384 * tree-stdarg.c (expand_ifn_va_arg_1): Ensure that side-effects are
4385 evaluated.
4386
ccccd62c 43872015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4388
4389 * calls.c (save_fixed_argument_area): Don't check
4390 ARGS_GROW_DOWNWARD with the preprocessor.
4391 (restore_fixed_argument_area): Likewise.
4392 (mem_overlaps_already_clobbered_arg_p): Likewise.
4393 (check_sibcall_argument_overlap): Likewise.
4394 (expand_call): Likewise.
4395 (emit_library_call_value_1): Likewise.
4396 (store_one_arg): Likewise.
4397 * function.c (assign_parms): Likewise.
4398 (locate_and_pad_parm): Likewise.
4399 (pad_to_arg_alignment): Likewise.
4400 * targhooks.c (std_gimplify_va_arg_expr): Likewise.
4401
25ecdd6d 44022015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4403
4404 * config/pa/pa.h (ARGS_GROW_DOWNWARD): Define to 1.
4405 * defaults.h (ARGS_GROW_DOWNWARD): Define it to 0 by default.
4406 * calls.c (save_fixed_argument_area): Don't chekc if
4407 ARGS_GROW_DOWNWARD is defined.
4408 (restore_fixed_argument_area): Likewise.
4409 (mem_overlaps_already_clobbered_arg_p): Likewise.
4410 (check_sibcall_argument_overlap): Likewise.
4411 (expand_call): Likewise.
4412 (emit_library_call_value_1): Likewise.
4413 (store_one_arg): Likewise.
4414 * function.c (assign_parms): Likewise.
4415 (locate_and_pad_parm): Likewise.
4416 (pad_to_arg_alignment): Likewise.
4417 * targhooks.c (std_gimplify_va_arg_expr): Likewise.
4418
317443b3 44192015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4420
4421 * defaults.h (gen_epilogue): New function.
4422 * alias.c (init_alias_analysis): don't check if HAVE_epilogue is
4423 defined.
4424 * cfgrtl.c (cfg_layout_finalize): Likewise.
4425 * df-scan.c: Likewise.
4426 * function.c (thread_prologue_and_epilogue_insns): Likewise.
4427 (reposition_prologue_and_epilogue_notes): Likewise.
4428 * reorg.c (find_end_label): Likewise.
4429 * toplev.c: Likewise.
4430
ae6fd0a8 44312015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4432
4433 * bb-reorder.c (HAVE_return): Don't check if its undefined.
4434 * defaults.h (gen_simple_return): New function.
4435 (gen_simple_return): Likewise.
4436 (HAVE_return): Add default definition to false.
4437 (HAVE_simple_return): Likewise.
4438 * cfgrtl.c (force_nonfallthru_and_redirect): Remove checks if
4439 HAVE_return and HAVE_simple_return are defined.
4440 * function.c (gen_return_pattern): Likewise.
4441 (convert_jumps_to_returns): Likewise.
4442 (thread_prologue_and_epilogue_insns): Likewise.
4443 * reorg.c (find_end_label): Likewise.
4444 (dbr_schedule): Likewise.
4445 * shrink-wrap.c: Likewise.
4446 * shrink-wrap.h: Likewise.
4447
10ea5dad 44482015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4449
4450 * defaults.h (EPILOGUE_USES): Add default definition of false.
4451 * df-scan.c (EPILOGUE_USES): Remove check if its undefined.
4452 * resource.c (init_resource_info): Likewise.
4453
0791e28d 44542015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4455
4456 * defaults.h (PCC_BITFIELD_TYPE_MATTERS): Add default definition
4457 to false.
4458 * dwarf2out.c (field_byte_offset): REmove check if
4459 PCC_BITFIELD_TYPE_MATTERS is defined.
4460 * stor-layout.c (layout_decl): Likewise.
4461 (update_alignment_for_field): Likewise.
4462 (place_field): Likewise.
4463
e239bb25 44642015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4465
4466 * defaults.h (HARD_REGNO_RENAME_OK): Add default definition to
4467 true.
4468 * regrename.c (check_new_reg_p): Remove check if
4469 HARD_REGNO_RENAME_OK is defined.
4470 * sel-sched.c (sel_hard_regno_rename_ok): Likewise.
4471
93516111 44722015-04-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
4473
4474 * calls.c (prepare_call_address): Remove ifdef NO_FUNCTION_CSE.
4475 * cse.c (fold_rtx): Likewise.
4476 * config/alpha/alpha.h (NO_FUNCTION_CSE): Define to 1.
4477 * config/arc/arc.h (NO_FUNCTION_CSE): Likewise.
4478 * config/avr/avr.h (NO_FUNCTION_CSE): Likewise.
4479 * config/cr16/cr16.h (NO_FUNCTION_CSE): Likewise.
4480 * config/epiphany/epiphany.h (NO_FUNCTION_CSE): Likewise.
4481 * config/frv/frv.h (NO_FUNCTION_CSE): Likewise.
4482 * config/h8300/h8300.h (NO_FUNCTION_CSE): Likewise.
4483 * config/i386/i386.h (NO_FUNCTION_CSE): Likewise.
4484 * config/ia64/ia64.h (NO_FUNCTION_CSE): Likewise.
4485 * config/lm32/lm32.h (enum reg_class) (NO_FUNCTION_CSE):
4486 * Likewise.
4487 * config/m32r/m32r.h (NO_FUNCTION_CSE): Likewise.
4488 * config/mep/mep.h (NO_FUNCTION_CSE): Likewise.
4489 * config/mn10300/mn10300.h (NO_FUNCTION_CSE): Likewise.
4490 * config/nds32/nds32.h (NO_FUNCTION_CSE): Likewise.
4491 * config/nios2/nios2.h (NO_FUNCTION_CSE): Likewise.
4492 * config/pa/pa.h (NO_FUNCTION_CSE): Likewise.
4493 * config/rs6000/rs6000.h (NO_FUNCTION_CSE): Likewise.
4494 * config/s390/s390.h (NO_FUNCTION_CSE): Likewise.
4495 * config/sparc/sparc.h (NO_FUNCTION_CSE): Likewise.
4496 * config/spu/spu.h (NO_FUNCTION_CSE): Likewise.
4497 * config/stormy16/stormy16.h (NO_FUNCTION_CSE): Likewise.
4498 * config/v850/v850.h (NO_FUNCTION_CSE): Likewise.
4499 * defaults.h (NO_FUNCTION_CSE): Provide default definition to 0.
4500 * doc/tm.texi: Regenerate.
4501 * doc/tm.texi.in: Document NO_FUNCTION_CSE is always defined to
4502 either true or false.
4503
fd762ec1 45042015-04-27 Jeff Law <law@redhat.com>
4505
4506 PR tree-optimization/65217
4507 * tree-ssa-dom.c (record_equality): Given two SSA_NAMEs, if just one
4508 of them has a single use, make sure it is the LHS of the implied
4509 copy.
4510
029eed15 45112015-04-28 Alan Modra <amodra@gmail.com>
4512
4513 PR target/65810
4514 * config/rs6000/rs6000.c (POWERPC64_TOC_POINTER_ALIGNMENT): Define.
4515 (offsettable_ok_by_alignment): Use minimum of decl and toc
4516 pointer alignment. Replace dead code with assertion.
4517 (use_toc_relative_ref): Add mode arg. Return false in -mcmodel=medium
4518 case if size exceeds toc pointer alignment.
4519 (rs6000_legitimize_reload_address): Update use_toc_relative_ref call.
4520 (rs6000_emit_move): Likewise.
4521 * configure.ac: Add linker toc pointer alignment check.
4522 * configure: Regenerate.
4523 * config.in: Regenerate.
4524
acff2768 45252015-04-27 Yoshinori Sato <ysato@users.sourceforge.jp>
4526
4527 * config.gcc: Add h8300-*-linux.
4528 * config/h8300/linux.h: New.
4529 * config/h8300/t-linux: New.
4530 * config/h8300/h8300.c (h8300_option_override): Normal mode
4531 is not supported for h8300-*-linux.
4532 (h8300_file_start): Target priority change.
4533 (get_shift_alg): Likewise.
4534 (h8300_shift_need_scratch_p): Likewise.
4535 * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Likewise.
4536 * config/h8300/h8300.md (define_peephole2): Remove duplicate condition.
4537
08cb962f 45382015-04-27 Caroline Tice <cmtice@google.com>
4539
fe17dddc 4540 * final.c (final_scan_insn): Output cold_function_name as function
08cb962f 4541 type.
fe17dddc 4542 * varasm.c (cold_function_name): Make global.
08cb962f 4543 (assemble_start_function): Re-set cold_function_name.
4544 (assemble_end_function): Output cold partition size.
fe17dddc 4545 * varasm.h (cold_function_name): Declare global.
08cb962f 4546
36f7991c 45472015-04-27 Ilya Tocar <ilya.tocar@intel.com>
4548
4549 * config/i386/i386.h (EXT_REX_SSE_REG_P): New.
4550 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed): Use "v"
4551 constraint.
4552 (*movxi_internal_avx512f): Ditto.
4553 (define_split): Check for xmm16+, when splitting scalar float_extend.
4554 (*extendsfdf2_mixed): Use "v" constraint.
4555 (define_split): Check for xmm16+, when splitting scalar float_truncate.
4556 (*truncdfsf_fast_sse): Use "v" constraint.
4557 (fix_trunc<MODEF:mode><SWI48:mode>_sse): Ditto.
4558 (*float<SWI48:mode><MODEF:mode>2_sse): Ditto.
4559 (define_peephole2): Check for xmm16+, when converting scalar
4560 float_truncate.
4561 (define_peephole2): Check for xmm16+, when converting scalar
4562 float_extend.
4563 (*fop_<mode>_comm_mixed): Use "v" constraint.
4564 (*fop_<mode>_comm_sse): Ditto.
4565 (*fop_<mode>_1_mixed): Ditto.
4566 (*sqrt<mode>2_sse): Ditto.
4567 (*ieee_s<ieee_maxmin><mode>3): Ditto.
4568
c3d65ba7 45692015-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4570
4571 * combine.c (simplify_if_then_else): Use std::swap instead
4572 of manually swapping.
4573 (known_cond): Likewise.
4574 (simplify_comparison): Likewise.
4575
cb2c281a 45762015-04-27 Peter Bergner <bergner@vnet.ibm.com>
4577
4578 PR target/64579
4579 * config/rs6000/htm.md: Remove all define_expands.
4580 (UNSPECV_HTM_TABORTDC, UNSPECV_HTM_TABORTDCI, UNSPECV_HTM_TABORTWC,
4581 UNSPECV_HTM_TABORTWCI): Remove.
4582 (UNSPECV_HTM_TABORTXC, UNSPECV_HTM_TABORTXCI, UNSPECV_HTM_TTEST): New.
4583 (tabort_internal, tbegin_internal, tcheck_internal, tend_internal,
4584 trechkpt_internal, treclaim_internal, tsr_internal): Rename from this...
4585 (tabort, tbegin, tcheck, tend, trechkpt, treclaim, tsr): ...to this.
4586 (tabortdc_internal, tabortdci_internal, tabortwc_internal,
4587 tabortwci_internal): Remove define_insns.
4588 (tabort<wd>c, tabort<wd>ci): New define_insns.
4589 (tabort): Use gpc_reg_operand.
4590 (tcheck): Remove operand.
4591 (htm_mfspr_<mode>, htm_mtspr_<mode>): Use GPR mode macro.
4592 * config/rs6000/htmxlintrin.h (__TM_end): Use _HTM_TRANSACTIONAL as
4593 expected value.
4594 * config/rs6000/rs6000-builtin.def (BU_HTM_SPR0): Remove.
4595 (BU_HTM_SPR1): Rename to BU_HTM_V1. Remove use of RS6000_BTC_SPR.
4596 (tabort, tabortdc, tabortdci, tabortwc, tabortwci, tbegin,
4597 tcheck, tend, tendall, trechkpt, treclaim, tresume, tsuspend,
4598 tsr, ttest): Pass in the RS6000_BTC_CR attribute.
4599 (get_tfhar, set_tfhar, get_tfiar, set_tfiar, get_texasr, set_texasr,
4600 get_texasru, set_texasru): Pass in the RS6000_BTC_SPR attribute.
4601 (tcheck): Remove builtin argument.
4602 * config/rs6000/rs6000.c (rs6000_htm_spr_icode): Use TARGET_POWERPC64
4603 not TARGET_64BIT.
4604 (htm_expand_builtin): Fix usage of expandedp. Disallow usage of the
4605 tabortdc and tabortdci builtins when not in 64-bit mode.
4606 Modify code to handle the loss of the HTM define_expands.
4607 Emit code to copy the CR register to TARGET.
4608 (htm_init_builtins): Modify code to handle the loss of the HTM
4609 define_expands.
4610 * config/rs6000/rs6000.h (RS6000_BTC_32BIT): Delete.
4611 (RS6000_BTC_64BIT): Likewise.
4612 (RS6000_BTC_CR): New macro.
4613 * doc/extend.texi: Update documentation for htm builtins.
4614
d2d0f161 46152015-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4616
4617 * simplify-rtx.c (simplify_gen_binary): Use std::swap instead
4618 of manually swapping.
4619 (simplify_associative_operation): Likewise.
4620 (simplify_binary_operation): Likewise.
4621 (simplify_plus_minus): Likewise.
4622 (simplify_relational_operation): Likewise.
4623 (simplify_ternary_operation): Likewise.
4624
925d7c62 46252015-04-27 Richard Sandiford <richard.sandiford@arm.com>
4626
4627 * config/stormy16/predicates.md (xs_hi_general_operand): Delete.
4628 (xs_hi_nonmemory_operand): Remove error.
4629 * config/stormy16/stormy16.md (movhi, movhi_internal): Use
4630 general_operand rather than xs_hi_general_operand.
4631
83617aa2 46322015-04-27 Richard Biener <rguenther@suse.de>
4633
4634 * tree-ssa-dom.c (record_equivalences_from_phis): Valueize PHI arg.
4635 (record_equivalences_from_stmt): Valueize rhs.
4636 (record_equality): Canonicalize x and y order via
4637 tree_swap_operands_p. Do not swap operands for same loop depth.
4638
4073a6d0 46392015-04-27 Georg-Johann Lay <avr@gjlay.de>
4640
4641 PR target/65296
4642 PR target/65895
4643 * config/avr/gen-avr-mmcu-specs.c (print_mcu): Close file.
4644 Add hint how to use own spec file.
4645
77988f58 46462015-04-27 Jakub Jelinek <jakub@redhat.com>
4647
4648 PR tree-optimization/65875
4649 * tree-vrp.c (update_value_range): If in is_new case setting
4650 old_vr to VR_VARYING, also set new_vr to it. Remove
4651 old_vr->type == VR_VARYING test.
4652 (vrp_visit_phi_node): Return SSA_PROP_VARYING instead of
4653 SSA_PROP_INTERESTING if update_value_range returned true,
4654 but new range is VR_VARYING.
4655
1b52292c 46562015-04-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
4657
4658 * combine.c (sign_extend_short_imm): New.
4659 (set_nonzero_bits_and_sign_copies): Use above new function for sign
4660 extension of src short immediate.
4661 (reg_nonzero_bits_for_combine): Likewise for tem.
4662
5759dc8e 46632015-04-27 Eric Botcazou <ebotcazou@adacore.com>
4664
4665 * stor-layout.c (self_referential_component_ref_p): New predicate.
4666 (copy_self_referential_tree_r): Use it.
4667 (self_referential_size): Punt for simple operations directly involving
4668 self-referential component references.
4669 * tree-cfg.c (dump_function_to_file): Add missing final curly bracket.
4670
ea67ac1e 46712015-04-27 Eric Botcazou <ebotcazou@adacore.com>
4672
4673 * ipa-icf.c (icf_handled_component_p): Remove redundant tests.
4674
103be950 46752015-04-27 Richard Sandiford <richard.sandiford@arm.com>
4676
4677 * vec.h (vec): Make splice arguments const. Update definitions
4678 accordingly.
4679
3a44c5a9 46802015-04-27 Yvan Roux <yvan.roux@linaro.org>
4681
4682 * config/arm/arm.md (*arm_subsi3_insn): Fixed redundant
4683 alternatives.
4684
8047debf 46852015-04-26 Tom de Vries <tom@codesourcery.com>
4686
4687 PR tree-optimization/65826
4688 * internal-fn.def: Mark VA_ARG with ECF_LEAF.
4689
8308f1d9 46902015-04-24 Steve Ellcey <sellcey@imgtec.com>
4691
4692 * config/mips/mips.md: (*madd4<mode>) Remove accum_in attribute.
4693 (*madd3<mode>): Ditto.
4694 (*msub4<mode>): Ditto.
4695 (*msub3<mode>): Ditto.
4696 (*nmadd4<mode>): Ditto.
4697 (*nmadd3<mode>): Ditto.
4698 (*nmadd4<mode>_fastmath): Ditto.
4699 (*nmadd3<mode>_fastmath): Ditto.
4700 (*nmsub4<mode>): Ditto.
4701 (*nmsub3<mode>): Ditto.
4702 (*nmsub4<mode>_fastmath): Ditto.
4703 (*nmsub3<mode>_fastmath): Ditto.
4704
f6d0c5d5 47052015-04-24 Jason Merrill <jason@redhat.com>
4706
4707 PR c++/50800
4708 * tree.c (build_reference_type_for_mode): Don't pass can_alias_all
4709 down when building TYPE_CANONICAL.
4710 (build_pointer_type_for_mode): Likewise.
4711
f1a7e25b 47122015-04-24 Chen Gang <gang.chen.5i5j@gmail.com>
4713
4714 * genrecog.c (validate_pattern): Check matching constraint refers
4715 to a lower numbered operand.
4716
7990e5de 47172015-04-24 Michael Meissner <meissner@linux.vnet.ibm.com>
4718
4719 PR target/65849
4720 * config/rs6000/rs6000.opt (-mvsx-align-128): Make options that
4721 save to independent variables use the Save attribute. This will
4722 allow these options to be modified with the #pragma/attribute
4723 target support.
4724 (-mallow-movmisalign): Likewise.
4725 (-mallow-df-permute): Likewise.
4726 (-msched-groups): Likewise.
4727 (-malways-hint): Likewise.
4728 (-malign-branch-targets): Likewise.
4729 (-mvectorize-builtins): Likewise.
4730 (-msave-toc-indirect): Likewise.
4731
4732 * config/rs6000/rs6000.c (rs6000_opt_masks): Add more options that
4733 can be set via the #pragma/attribute target support.
4734 (rs6000_opt_vars): Likewise.
4735 (rs6000_inner_target_options): If VSX was set, also set
4736 -mno-avoid-indexed-addresses.
4737
9b23f0a7 47382015-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4739
4740 * config/arm/iterators.md (shiftable_ops): Rename to...
4741 (SHIFTABLE_OPS): ... This. Update use in comments.
4742 (ior_xor): Rename to...
4743 (IOR_XOR): ... This.
4744 (vqh_ops): Rename to...
4745 (VQH_OPS): ... This.
4746 (vqhs_ops): Rename to...
4747 (VQHS_OPS): ... This.
4748 (rshifts): Rename to...
4749 (RSHIFTS): ... This.
4750 (returns): Rename to...
4751 (RETURNS): ... This.
4752 * config/arm/arm.md: Update uses of the above.
4753 * config/arm/neon.md: Likewise.
4754
8b81ce60 47552014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4756
4757 * config.host (case ${host}): Add aarch64*-*-linux case.
4758 * config/aarch64/aarch64-cores.def: Add IMPLEMENTER_ID and PART_NUMBER
4759 fields to all the cores.
4760 * config/aarch64/aarch64-elf.h (DRIVER_SELF_SPECS):
4761 Add MCPU_MTUNE_NATIVE_SPECS.
4762 * config/aarch64/aarch64-option-extensions.def: Add FEATURE_STRING
4763 field to all extensions.
4764 * config/aarch64/aarch64-opts.h: Adjust definition of AARCH64_CORE.
4765 * config/aarch64/aarch64.c: Adjust definition of AARCH64_CORE.
4766 Adjust definition of AARCH64_OPT_EXTENSION.
4767 * config/aarch64/aarch64.h: Adjust definition of AARCH64_CORE.
4768 (MCPU_MTUNE_NATIVE_SPECS): Define.
4769 * config/aarch64/driver-aarch64.c: New file.
4770 * config/aarch64/x-arch64: New file.
4771 * doc/invoke.texi (AArch64 Options): Document native value for -mcpu,
4772 -mtune and -march.
4773
6a5f6dde 47742015-04-24 Uros Bizjak <ubizjak@gmail.com>
4775 Wei Mi <wmi@google.com>
4776
4777 * config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple): New.
4778 * config/i386/i386.c (extract_base_offset_in_addr): New function.
4779 (ix86_operands_ok_for_move_multiple): Ditto.
4780 * config/i386/sse.md (movsd/movhpd to movupd peephole2): New pattern.
4781 (movlpd/movhpd to movupd peephole2): Ditto.
4782
439606a9 47832015-04-24 Marek Polacek <polacek@redhat.com>
4784
4785 PR c/61534
4786 * input.h (from_macro_expansion_at): Define.
485f6b9c 4787
4788 PR c/63357
4789 * doc/invoke.texi: Update description of -Wlogical-op.
439606a9 4790
8c4ec4a5 47912015-04-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
4792
4793 * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): fix
4794 ternary operator in fprintf and harmonize spacing.
4795
81e2b8ad 47962015-04-24 Uros Bizjak <ubizjak@gmail.com>
4797
4798 * config/i386/sse.md (*vec_widen_smult_even_v8si<mask_name>):
4799 Mark operand1 commutative.
4800
0a281fd0 48012015-04-24 Uros Bizjak <ubizjak@gmail.com>
4802
4803 * config/i386/sse.md (*vec_concatv2sf_sse4_1): Do not allow both
4804 input operands in memory.
4805 (*vec_concatv2si_sse4_1): Ditto.
4806 (*vec_concatv2df): Ditto, except for SSE3 and equal input operands.
4807 (vec_extract_lo_<mode><mask_name>): Change operand 1 predicate to
4808 register_operand.
4809 (vec_extract_hi_v32hi): Ditto.
4810 (vec_extract_hi_v64hi): Ditto.
4811 (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
4812
f4e4e414 48132015-04-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
4814 Steven Bosscher <steven@gcc.gnu.org>
4815
4816 PR rtl-optimization/34503
4817 * cprop.c (cprop_reg_p): New.
4818 (hash_scan_set): Use above function to check if register can be
4819 propagated.
4820 (find_avail_set): Return up to two sets, one whose source is a
4821 register and one whose source is a constant. Sets are returned in an
4822 array passed as parameter rather than as a return value.
4823 (cprop_insn): Use a do while loop rather than a goto. Try each of the
4824 sets returned by find_avail_set, starting with the one whose source is
4825 a constant. Use cprop_reg_p to check if register can be propagated.
4826 (do_local_cprop): Use cprop_reg_p to check if register can be
4827 propagated.
4828 (implicit_set_cond_p): Likewise.
4829
b3b9039b 48302015-04-23 Jan Hubicka <hubicka@ucw.cz>
4831
4832 * ipa-icf.c (sem_function::equals_wpa): Compare thunk info.
4833 (sem_function::equals): IGNORED_NODES parameter is now unused;
4834 update call of equals_private.
4835 (sem_function::equals_private): Do not call equals_wpa; skip
4836 gimple body matching if there is no body.
4837 (sem_function::init): Add logic to hash tthunk info.
4838 (sem_function::parse): Also parse thunks.
4839 * ipa-icf.h (equals_private): Update declaration.
4840
4dc2d9a9 48412015-04-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4842
4843 * config/rs6000/altivec.md (*altivec_lvx_<mode>_internal): Remove
4844 asterisk from name so this can be generated directly.
4845 (*altivec_stvx_<mode>_internal): Likewise.
4846 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Add assert
4847 that this is never called during or after reload/lra.
4848 (rs6000_frame_related): Remove split_reg
4849 argument and logic that references it.
4850 (emit_frame_save): Remove last parameter from call to
4851 rs6000_frame_related.
4852 (rs6000_emit_prologue): Remove last parameter from eight calls to
4853 rs6000_frame_related. Force generation of stvx instruction for
4854 Altivec register saves. Remove split_reg handling, which is no
4855 longer needed.
4856 (rs6000_emit_epilogue): Force generation of lvx instruction for
4857 Altivec register restores.
4858
40997e58 48592015-04-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4860
4861 * config/rs6000/rs6000.opt (mcrypto): Change option description to
4862 match category changes in ISA 2.07B.
4863
996c516f 48642015-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4865
4866 * config/arm/iterators.md (GTGE, GTUGEU, COMPARISONS): New code
4867 iterators.
4868 (cmp_op, cmp_type): New code attributes.
4869 (NEON_VCMP, NEON_VACMP): New int iterators.
4870 (cmp_op_unsp): New int attribute.
4871 * config/arm/neon.md (neon_vc<cmp_op><mode>): New define_expand.
4872 (neon_vceq<mode>): Delete.
4873 (neon_vc<cmp_op><mode>_insn): New pattern.
4874 (neon_vc<cmp_op_unsp><mode>_insn_unspec): Likewise.
4875 (neon_vcgeu<mode>): Delete.
4876 (neon_vcle<mode>): Likewise.
4877 (neon_vclt<mode>: Likewise.
4878 (neon_vcage<mode>): Likewise.
4879 (neon_vcagt<mode>): Likewise.
4880 (neon_vca<cmp_op><mode>): New define_expand.
4881 (neon_vca<cmp_op><mode>_insn): New pattern.
4882 (neon_vca<cmp_op_unsp><mode>_insn_unspec): Likewise.
4883
65f1366e 48842015-04-23 Jan Hubicka <hubicka@ucw.cz>
4885
4886 * tree.h (attribute_value_equal): Declare.
4887 * tree.c (attribute_value_equal): Export.
4888
b08f05cd 48892015-04-23 Jan Hubicka <hubicka@ucw.cz>
4890
4891 * ipa-icf.c (sem_item::compare_attributes): New function.
4892 (sem_item::compare_referenced_symbol_properties): Compare variable
4893 attributes.
4894 (sem_item::hash_referenced_symbol_properties): Record DECL_ALIGN.
4895 (sem_function::param_used_p): New function.
4896 (sem_function::equals_wpa): Fix attribute comparsion; match
4897 parameter type codes; do not compare paremter flags when
4898 they are not used; compare edge flags; compare indirect calls.
4899 (sem_item::update_hash_by_addr_refs): Hash reference type.
4900 (sem_function::equals_private): Do not match DECL_ATTRIBUTES.
4901 (sem_variable::equals_wpa): Do not match DECL_ALIGN; match
4902 reference use type.
4903 (sem_item_optimizer::update_hash_by_addr_refs): Use param_used_p.
4904 * ipa-icf.h (compare_attributes, param_used_p): Declare.
4905
c2f8a09e 49062015-04-23 Jan Hubicka <hubicka@ucw.cz>
4907
4908 * ipa-icf.c (symbol_compare_collection::symbol_compare_collection):
4909 cleanup.
4910 (sem_function::get_hash): Do not hash DECL_DISREGARD_INLINE_LIMITS,
4911 DECL_DECLARED_INLINE_P and DECL_IS_OPERATOR_NEW.
4912 (sem_item::compare_referenced_symbol_properties): New.
4913 (sem_item::hash_referenced_symbol_properties): New.
4914 (sem_item::compare_cgraph_references): Rename to ...
4915 (sem_item::compare_symbol_references): ... this one; use
4916 compare_referenced_symbol_properties.
4917 (sem_function::equals_wpa): Do not compare
4918 DECL_DISREGARD_INLINE_LIMITS, DECL_DECLARED_INLINE_P,
4919 DECL_IS_OPERATOR_NEW; compare pointer sizes.
4920 (sem_item::update_hash_by_addr_refs): Call
4921 hash_referenced_symbol_properties.
4922 (sem_item::update_hash_by_local_refs): Cleanup.
4923 (sem_function::merge): Do not mix up symbol properties.
4924 (sem_variable::equals_wpa): Use compare_symbol_references.
4925 * ipa-icf.h (sem_item::compare_referenced_symbol_properties): New.
4926 (sem_item::hash_referenced_symbol_properties): New.
4927 (sem_item::compare_symbol_references): New.
4928 (sem_item::compare_cgraph_references): Remove.
4929
07dfc3c4 49302015-04-23 Kwok Cheung Yeung <kcy@codesourcery.com>
4931
4932 PR target/26702
4933 * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL):
4934 Emit size of local.
4935
d1f90de5 49362015-04-23 Nick Clifton <nickc@redhat.com>
4937
4938 * config/rl78/rl78.c (rl78_preferred_reload_class): Add
4939 ATTRIBUTE_UNUSED to x parameter.
4940 * config/rl78/rl78-opts.h (enum rl78_mul_types): Remove unused MUL_RL78.
4941
eb3421e6 49422015-04-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4943
4944 * config/rs6000/crypto.md (crypto_vpmsum<CR_char>): Change
4945 TARGET_CRYPTO to TARGET_P8_VECTOR>
4946 (crypto_vpermxor_<mode>): Likewise.
4947 * config/rs6000/rs6000-builtin.def (BU_CRYPTO_2A): New #define.
4948 (BU_CRYPTO_3A): Likewise.
4949 (BU_CRYPTO_OVERLOAD_2A): Rename from BU_CRYPTO_OVERLOAD_2.
4950 (BU_CRYPTO_OVERLOAD_3A): New #define.
4951 (VPMSUMB): Change from BU_CRYPTO_2 to BU_CRYPTO_2A.
4952 (VPMSUMH): Likewise.
4953 (VPMSUMW): Likewise.
4954 (VPMSUMD): Likewise.
4955 (VPERMXOR_V2DI): Change from BU_CRYPTO_3 to BU_CRYPTO_3A.
4956 (VPERMXOR_V4SI): Likewise.
4957 (VPERMXOR_V8HI): Likewise.
4958 (VPERMXOR_V16QI): Likewise.
4959 (VPMSUM): Change from BU_CRYPTO_OVERLOAD_2 to
4960 BU_CRYPTO_OVERLOAD_2A.
4961 (VPERMXOR): Change from BU_CRYPTO_OVERLOAD3 to
4962 BU_CRYPTO_OVERLOAD_3A.
4963 * config/rs6000/rs6000.opt (mcrypto): Change description of
4964 option.
4965
bc1d3d97 49662015-04-23 Richard Biener <rguenther@suse.de>
4967
4968 * passes.def: Remove copy propagation passes run directly after CCP.
4969 * tree-ssa-ccp.c (get_value_for_expr): Fall back to a COPY for
4970 SSA names.
4971 (ccp_visit_phi_node): Rework to handle first executable edge
4972 specially.
4973
84af8480 49742015-04-23 Matthew Wahab <matthew.wahab@arm.com>
4975
4976 * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
4977 (ARM_LEGITIMIZE_RELOAD_ADDRESS): Remove.
4978 (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Remove.
4979 * config/arm/arm.c (arm_legimitimize_reload_address): Remove.
4980 (thumb_legimitimize_reload_address): Remove.
4981 * config/arm/arm-protos.h (arm_legimitimize_reload_address):
4982 Remove.
4983 (thumb_legimitimize_reload_address): Remove.
4984
e3542a23 49852015-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4986
4987 * conditions.h (CC_STATUS_INIT): Gate on #ifndef CC_STATUS_INIT.
4988
6e628811 49892015-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4990
4991 * config/arm/arm.md (load_multiple): Reject operand 2 greater than
4992 MAX_LDM_STM_OPS.
4993 (store_multiple): Likewise.
4994
39127e6b 49952015-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4996
4997 * config/arm/arm-protos.h (struct tune_params): Add issue_rate field.
4998 * config/arm/arm.c (arm_slowmul_tune, arm_fastmul_tune,
4999 arm_strongarm_tune, arm_xscale_tune, arm_9e_tune, arm_v6t2_tune,
5000 arm_cortex_tune, arm_cortex_a8_tune, arm_cortex_a7_tune,
5001 arm_cortex_a15_tune, arm_cortex_a53_tune, arm_cortex_a57_tune,
5002 arm_cortex_a9_tune, arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune,
5003 arm_fa726te_tune arm_cortex_a5_tune, arm_xgene1_tune):
5004 Specify issue_rate value.
5005 (arm_issue_rate): Look up issue rate from tuning structs. Remove
5006 large switch statement.
5007 (arm_marvell_pj4_tune): New struct.
5008 * config/arm/arm-cores.def (marvell-pj4): Use arm_marvell_pj4_tune
5009 struct.
5010
b4026f25 50112015-04-23 Richard Biener <rguenther@suse.de>
5012
5013 * tree-vect-slp.c (vect_find_first_load_in_slp_instance): Remove.
5014 (vect_find_last_store_in_slp_instance): Rename to ...
5015 (vect_find_last_scalar_stmt_in_slp): ... this and generalize.
5016 (vect_analyze_slp_cost_1): Use vector_load for constant defs
5017 and vec_construct for external defs when estimating prologue cost.
5018 (vect_analyze_slp_instance): Do not init SLP_INSTANCE_FIRST_LOAD_STMT.
5019 Compute costs here only when vectorizing loops.
5020 (vect_slp_analyze_bb_1): Compute SLP cost here, after vector types
5021 have been determined.
5022 (vect_schedule_slp_instance): Simplify vectorized code placement
5023 and prepare for in-BB external defs.
5024 * tree-vectorizer.h (struct _slp_instance): Remove first_load member.
5025 (SLP_INSTANCE_FIRST_LOAD_STMT): Remove.
5026 * tree-vect-stmts.c (vect_model_store_cost): Remove PURE_SLP_STMT
5027 guard.
5028 (vect_model_load_cost): Likewise.
5029 (vectorizable_store): Instead add it here.
5030 (vectorizable_load): Likewise.
5031 (vect_is_simple_use): Dump def type textually.
5032
1ebce849 50332015-04-23 Richard Biener <rguenther@suse.de>
5034
5035 * cfgexpand.c (expand_gimple_stmt_1): Use ops.code.
5036 * cfgloop.c (verify_loop_structure): Verify the root loop node.
5037 * except.c (duplicate_eh_regions): Call get_eh_region_from_lp_number_fn
5038 instead of get_eh_region_from_lp_number.
5039 * loop-init.c (fix_loop_structure): If we removed a loop, reset
5040 the SCEV cache.
5041
e95d0248 50422015-04-23 Anton Blanchard <anton@samba.org>
5043
5044 * config/rs6000/rs6000.c (rs6000_output_function_prologue): No
5045 need for -mprofile-kernel to save LR to stack.
5046
2d9fc394 50472015-04-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5048
5049 * config/rs6000/rs6000.c (rtx_is_swappable_p): Commentary
5050 adjustments.
5051 (insn_is_swappable_p): Return 1 for a convert from double to
5052 single precision when all of its uses are splats of BE element
5053 zero.
5054
e1f8c2dd 50552015-04-23 Kugan Vivekanandarajah <kuganv@linaro.org>
5056
5057 * ira-costs.c (record_operand_costs): Fix typo (remove redundant code).
5058
69a88c20 50592015-04-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5060
5061 PR target/65456
5062 * config/rs6000/rs6000.c (rs6000_option_override_internal): For
5063 VSX + POWER8, enable TARGET_ALLOW_MOVMISALIGN and
5064 TARGET_EFFICIENT_UNALIGNED_VSX if not selected by command line
5065 option.
5066 (rs6000_builtin_mask_for_load): Return 0 for targets with
5067 efficient unaligned VSX accesses so that the vectorizer will use
5068 direct unaligned loads.
5069 (rs6000_builtin_support_vector_misalignment): Always return true
5070 for targets with efficient unaligned VSX accesses.
5071 (rs6000_builtin_vectorization_cost): Cost of unaligned loads and
5072 stores on targets with efficient unaligned VSX accesses is almost
5073 always the same as the cost of an aligned load or store, so model
5074 it that way.
5075 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Return 0 for
5076 unaligned vectors if we have efficient unaligned VSX accesses.
5077 * config/rs6000/rs6000.opt (mefficient-unaligned-vector): New
5078 undocumented option.
5079
8e872464 50802015-04-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5081
5082 Revert:
5083 2015-04-22 Gregor Richards <gregor.richards@uwaterloo.ca>
5084
5085 * config.gcc (LIBC_MUSL): New tm_defines macro.
5086 * config/linux.h (OPTION_MUSL): Define.
5087 (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
5088 (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
5089 (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
5090
5091 * config/linux.opt (mmusl): New option.
5092 * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
5093 (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
5094
5095 * configure: Regenerate.
5096
ca06e9a5 50972015-04-22 Gregor Richards <gregor.richards@uwaterloo.ca>
5098
5099 * config.gcc (LIBC_MUSL): New tm_defines macro.
5100 * config/linux.h (OPTION_MUSL): Define.
5101 (INCLUDE_DEFAULTS_MUSL_GPP, INCLUDE_DEFAULTS_MUSL_LOCAL,)
5102 (INCLUDE_DEFAULTS_MUSL_PREFIX, INCLUDE_DEFAULTS_MUSL_CROSS,)
5103 (INCLUDE_DEFAULTS_MUSL_TOOL, INCLUDE_DEFAULTS_MUSL_NATIVE): Define.
5104
5105 * config/linux.opt (mmusl): New option.
5106 * configure.ac (gcc_cv_libc_provides_ssp): Add *-*-musl*.
5107 (gcc_cv_target_dl_iterate_phdr): Add *-linux-musl*.
5108
5109 * configure: Regenerate.
5110
5cd86e48 51112015-04-22 Yury Gribov <y.gribov@samsung.com>
5112
5113 * doc/invoke.texi (-fsanitize-sections): Update description.
5114 * asan.c (set_sanitized_sections): Parse incoming arg.
5115 (section_sanitized_p): Support wildcards.
5116
0fd9bea8 51172015-04-22 Tom de Vries <tom@codesourcery.com>
5118
5119 PR tree-optimization/65823
5120 * gimplify.c (gimplify_modify_expr): Use operand_equal_p to test for
5121 equality between ap_copy and ap.
5122
2c0afffd 51232015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
5124
5125 PR target/47098
5126 * config/openbsd-oldgas.h (OBSD_LIB_SPEC): Add.
5127
a27111cc 51282015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
5129
5130 PR target/47122
5131 * config.gcc (vax-*-openbsd*): Fix name of pthread spec header.
5132
45e5f010 51332015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
5134
5135 PR target/55144
5136 * config.gcc (bfin*-linux-uclibc*): Prepend tmake_file and
5137 remove already contained t-files.
5138
5c72dbe7 51392015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
5140
5141 * tree-tailcall.c (suitable_for_tail_opt_p, find_tail_calls):
5142 Remove unneeded forward declarations.
5143 (suitable_for_tail_call_opt_p): Commentary typo fix.
5144
581d25a9 51452015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
5146
5147 * varasm.c (emit_bss): Remove redundant guard.
5148
10f2bf10 51492015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
5150
5151 * config/c6x/c6x.h (TARGET_CPU_CPP_BUILTINS): Add unk_isa.
5152
070ed8d8 51532015-04-22 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
5154
5155 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Add BFIN_CPU_UNKNOWN.
5156
d9cc0972 51572015-04-22 Hale Wang <hale.wang@arm.com>
5158 Terry Guo <terry.guo@arm.com>
5159
5160 PR rtl-optimization/64818
5161 * combine.c (can_combine_p): Don't combine user-specified
5162 register if it is in an asm input.
5163
23db877c 51642015-04-21 Jan Hubicka <hubicka@ucw.cz>
5165
5166 PR ipa/65076
5167 * passes.def (early_optimizations): Add pass_dse.
5168
6d7f2074 51692015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5170
5171 * defaults.h (INSN_REFERENCES_ARE_DELAYED): New definition.
5172 * reorg.c (redundant_insn): Remove ifdef
5173 INSN_REFERENCES_ARE_DELAYED.
5174 * resource.c (mark_referenced_resources): Likewise.
5175
91f95f00 51762015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5177
5178 * defaults.h (INSN_SETS_ARE_DELAYED): New definition.
5179 * reorg.c (redundant_insn): Remove ifdef INSN_SETS_ARE_DELAYED.
5180 * resource.c (mark_set_resources): Likewise.
5181
693c9f42 51822015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5183
5184 * caller-save.c (insert_one_insn): Remove ifdef HAVE_cc0.
5185 * cfgcleanup.c (flow_find_cross_jump): Likewise.
5186 (flow_find_head_matching_sequence): Likewise.
5187 (try_head_merge_bb): Likewise.
5188 * combine.c (can_combine_p): Likewise.
5189 (try_combine): Likewise.
5190 (distribute_notes): Likewise.
5191 * df-problems.c (can_move_insns_across): Likewise.
5192 * final.c (final): Likewise.
5193 * gcse.c (insert_insn_end_basic_block): Likewise.
5194 * ira.c (find_moveable_pseudos): Likewise.
5195 * reorg.c (try_merge_delay_insns): Likewise.
5196 (fill_simple_delay_slots): Likewise.
5197 (fill_slots_from_thread): Likewise.
5198 * sched-deps.c (sched_analyze_2): Likewise.
5199
099a99b5 52002015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5201
5202 * df-scan.c (df_get_entry_block_def_set): Remove #ifdef
5203 PIC_OFFSET_TABLE_REGNUM.
5204
f703b3d6 52052015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5206
5207 * alias.c (init_alias_target): Remove ifdef
5208 * HARD_FRAME_POINTER_IS_FRAME_POINTER.
5209 * df-scan.c (df_insn_refs_collect): Likewise.
5210 (df_get_regular_block_artificial_uses): Likewise.
5211 (df_get_eh_block_artificial_uses): Likewise.
5212 (df_get_entry_block_def_set): Likewise.
5213 (df_get_exit_block_use_set): Likewise.
5214 * emit-rtl.c (gen_rtx_REG): Likewise.
5215 * ira.c (ira_setup_eliminable_regset): Likewise.
5216 * reginfo.c (init_reg_sets_1): Likewise.
5217 * regrename.c (rename_chains): Likewise.
5218 * reload1.c (reload): Likewise.
5219 (eliminate_regs_in_insn): Likewise.
5220 * resource.c (mark_referenced_resources): Likewise.
5221 (init_resource_info): Likewise.
5222
f564fb30 52232015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5224
5225 * defaults.h (MASK_RETURN_ADDR): New definition.
5226 * except.c (expand_builtin_extract_return_addr): Remove ifdef
5227 MASK_RETURN_ADDR.
5228
5d3b61f6 52292015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5230
5231 * defaults.h (RETURN_ADDR_OFFSET): New definition.
5232 * except.c (expand_builtin_extract_return_addr): Remove ifdef
5233 RETURN_ADDR_OFFSET.
5234 (expand_builtin_frob_return_addr): Likewise.
5235
ff900b8e 52362015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5237
5238 * cfgrtl.c (rtl_merge_blocks): Change #if HAVE_cc0 to if (HAVE_cc0)
5239 (try_redirect_by_replacing_jump): Likewise.
5240 (rtl_tidy_fallthru_edge): Likewise.
5241 * combine.c (insn_a_feeds_b): Likewise.
5242 (find_split_point): Likewise.
5243 (simplify_set): Likewise.
5244 * cprop.c (cprop_jump): Likewise.
5245 * cse.c (cse_extended_basic_block): Likewise.
5246 * df-problems.c (can_move_insns_across): Likewise.
5247 * function.c (emit_use_return_register_into_block): Likewise.
5248 * haifa-sched.c (sched_init): Likewise.
5249 * ira.c (find_moveable_pseudos): Likewise.
5250 * loop-invariant.c (find_invariant_insn): Likewise.
5251 * lra-constraints.c (curr_insn_transform): Likewise.
5252 * postreload.c (reload_combine_recognize_const_pattern):
5253 * Likewise.
5254 * reload.c (find_reloads): Likewise.
5255 * reorg.c (delete_scheduled_jump): Likewise.
5256 (steal_delay_list_from_target): Likewise.
5257 (steal_delay_list_from_fallthrough): Likewise.
5258 (redundant_insn): Likewise.
5259 (fill_simple_delay_slots): Likewise.
5260 (fill_slots_from_thread): Likewise.
5261 (delete_computation): Likewise.
5262 * sched-rgn.c (add_branch_dependences): Likewise.
5263
27a6f97d 52642015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5265
5266 * genconfig.c (main): Always define HAVE_cc0.
5267 * caller-save.c (insert_one_insn): Change ifdef HAVE_cc0 to #if
5268 HAVE_cc0.
5269 * cfgcleanup.c (flow_find_cross_jump): Likewise.
5270 (flow_find_head_matching_sequence): Likewise.
5271 (try_head_merge_bb): Likewise.
5272 * cfgrtl.c (rtl_merge_blocks): Likewise.
5273 (try_redirect_by_replacing_jump): Likewise.
5274 (rtl_tidy_fallthru_edge): Likewise.
5275 * combine.c (do_SUBST_MODE): Likewise.
5276 (insn_a_feeds_b): Likewise.
5277 (combine_instructions): Likewise.
5278 (can_combine_p): Likewise.
5279 (try_combine): Likewise.
5280 (find_split_point): Likewise.
5281 (subst): Likewise.
5282 (simplify_set): Likewise.
5283 (distribute_notes): Likewise.
5284 * cprop.c (cprop_jump): Likewise.
5285 * cse.c (cse_extended_basic_block): Likewise.
5286 * df-problems.c (can_move_insns_across): Likewise.
5287 * final.c (final): Likewise.
5288 (final_scan_insn): Likewise.
5289 * function.c (emit_use_return_register_into_block): Likewise.
5290 * gcse.c (insert_insn_end_basic_block): Likewise.
5291 * haifa-sched.c (sched_init): Likewise.
5292 * ira.c (find_moveable_pseudos): Likewise.
5293 * loop-invariant.c (find_invariant_insn): Likewise.
5294 * lra-constraints.c (curr_insn_transform): Likewise.
5295 * optabs.c (prepare_cmp_insn): Likewise.
5296 * postreload.c (reload_combine_recognize_const_pattern):
5297 * Likewise.
5298 * reload.c (find_reloads): Likewise.
5299 (find_reloads_address_1): Likewise.
5300 * reorg.c (delete_scheduled_jump): Likewise.
5301 (steal_delay_list_from_target): Likewise.
5302 (steal_delay_list_from_fallthrough): Likewise.
5303 (try_merge_delay_insns): Likewise.
5304 (redundant_insn): Likewise.
5305 (fill_simple_delay_slots): Likewise.
5306 (fill_slots_from_thread): Likewise.
5307 (delete_computation): Likewise.
5308 (relax_delay_slots): Likewise.
5309 * sched-deps.c (sched_analyze_2): Likewise.
5310 * sched-rgn.c (add_branch_dependences): Likewise.
5311
e989288c 53122015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5313
5314 * combine.c (find_single_use): Remove HAVE_cc0 ifdef for code
5315 that is trivially ded on non cc0 targets.
5316 (simplify_set): Likewise.
5317 (mark_used_regs_combine): Likewise.
5318 * cse.c (new_basic_block): Likewise.
5319 (fold_rtx): Likewise.
5320 (cse_insn): Likewise.
5321 (cse_extended_basic_block): Likewise.
5322 (set_live_p): Likewise.
5323 * rtlanal.c (canonicalize_condition): Likewise.
5324 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
5325
a57e230a 53262015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5327
5328 * conditions.h: Define macros even if HAVE_cc0 is undefined.
5329 * emit-rtl.c: Define functions even if HAVE_cc0 is undefined.
5330 * final.c: Likewise.
5331 * jump.c: Likewise.
5332 * recog.c: Likewise.
5333 * recog.h: Declare functions even when HAVE_cc0 is undefined.
5334 * sched-deps.c (sched_analyze_2): Always compile case for cc0.
5335
0973afac 53362015-04-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5337
5338 * defaults.h: New definition of EH_RETURN_DATA_REGNO.
5339 * except.c: Remove definition of EH_RETURN_DATA_REGNO.
5340 * builtins.c (expand_builtin): Remove check if
5341 EH_RETURN_DATA_REGNO is defined.
5342 * df-scan.c (df_bb_refs_collect): Likewise.
5343 (df_get_exit_block_use_set): Likewise.
5344 * haifa-sched.c (initiate_bb_reg_pressure_info): Likewise.
5345 * ira-lives.c (process_bb_node_lives): Likewise.
5346 * lra-lives.c (process_bb_lives): Likewise.
5347
4f73497a 53482015-04-21 Uros Bizjak <ubizjak@gmail.com>
5349
5350 * config/i386/i386.md (ARGP_REG, FRAME_REG, BND2_REG, BND3_REG,
5351 FIRST_PSEUDO_REG): New.
5352 * config/i386/i386.h (STACK_POINTER_REGNUM): Define to SP_REG.
5353 (ARG_POINTER_REGNUM): Define to ARGP_REG.
5354 (FRAME_POINTER_REGNUM): Define to FRAME_REG.
5355 (HARD_FRAME_POINTER_REGNUM): Define to BP_REG.
5356 (FIRST_PSEUDO_REGISTER): Define to FIRST_PSEUDO_REG.
5357 (FIRST_INT_REG): New.
5358 (LAST_INT_REG): New.
5359 (FIRST_*_REG): Define using *_REG.
5360 (LAST_*_REG): Ditto.
5361 (QI_REGNO_P): Define using FIRST_QU_REG and LAST_QI_REG.
5362 (LEGACY_INT_REGNO_P): Define using FIRST_INT_REG and LAST_INT_REG.
5363 (FIRST_FLOAT_REG): Define to FIRST_STACK_REG.
5364
59699fd3 53652015-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5366
5367 * expmed.c: (synth_mult): Only assume overlapping
5368 shift with previous steps in alg_sub_t_m2 case.
5369
fc6cc27b 53702015-04-21 Richard Biener <rguenther@suse.de>
5371
5372 PR tree-optimization/65650
5373 * tree-ssa-ccp.c (valid_lattice_transition): Allow lattice
5374 transitions involving copies.
5375 (set_lattice_value): Adjust for copy lattice state.
5376 (ccp_lattice_meet): Do not merge UNDEFINED and a copy to the copy
5377 if that doesn't dominate the merge point.
5378 (bit_value_unop): Adjust what we treat as varying mask.
5379 (bit_value_binop): Likewise.
5380 (bit_value_assume_aligned): Likewise.
5381 (evaluate_stmt): When we simplified to a SSA name record a copy
5382 instead of dropping to varying.
5383 (visit_assignment): Simplify.
5384
5385 * gimple-match.h (gimple_simplify): Add another callback.
5386 * gimple-fold.c (fold_stmt_1): Adjust caller.
5387 (gimple_fold_stmt_to_constant_1): Likewise - pass valueize
5388 for the 2nd callback.
5389 * gimple-match-head.c (gimple_simplify): Add a callback that is
5390 used to valueize the stmt operands and use it that way.
5391
4c9206f2 53922015-04-21 Richard Biener <rguenther@suse.de>
5393
5394 PR tree-optimization/65788
5395 * tree-ssa-ccp.c (evaluate_stmt): Evaluate to UNDEFINED early.
5396
fe1ec7bc 53972015-04-21 Richard Biener <rguenther@suse.de>
5398
5399 * config/i386/i386.c (ix86_builtin_vectorization_cost): Scale
5400 vec_construct cost by vec_stmt_cost.
5401
4302d619 54022015-04-21 Richard Biener <rguenther@suse.de>
5403
5404 * cfghooks.h (create_basic_block): Replace with two overloads
5405 for RTL and GIMPLE.
5406 (split_block): Likewise.
5407 * cfghooks.c (split_block): Rename to ...
5408 (split_block_1): ... this.
5409 (split_block): Add two type-safe overloads for RTL and GIMPLE.
5410 (split_block_after_labels): Call split_block_1.
5411 (create_basic_block): Rename to ...
5412 (create_basic_block_1): ... this.
5413 (create_basic_block): Add two type-safe overloads for RTL and GIMPLE.
5414 (create_empty_bb): Call create_basic_block_1.
5415 * cfgrtl.c (fixup_fallthru_exit_predecessor): Use
5416 split_block_after_labels.
5417 * omp-low.c (expand_parallel_call): Likewise.
5418 (expand_omp_target): Likewise.
5419 (simd_clone_adjust): Likewise.
5420 * tree-chkp.c (chkp_get_entry_block): Likewise.
5421 * cgraphunit.c (init_lowered_empty_function): Use the GIMPLE
5422 create_basic_block overload.
5423 (cgraph_node::expand_thunk): Likewise.
5424 * tree-cfg.c (make_blocks): Likewise.
5425 (handle_abnormal_edges): Likewise.
5426 * tree-inline.c (copy_bb): Likewise.
5427
12b34fda 54282015-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5429
5430 * config/aarch64/aarch64.md (*<NLOGICAL:optab>_one_cmplsidi3_ze):
5431 New pattern.
5432 (*xor_one_cmplsidi3_ze): Likewise.
5433
4ef6d61b 54342015-04-21 Thomas Preud'homme <thomas.preudhomme@arm.com>
5435
5436 * df-core.c (df_finish_pass): Iterate over df->problems_by_index[] and
5437 use df_remove_problem rather than manually removing problems, leaving
5438 holes in df->problems_in_order[].
5439
d8ed84e7 54402015-04-21 Tom de Vries <tom@codesourcery.com>
5441
5442 PR tree-optimization/65802
5443 * internal-fn.def (VA_ARG): Add ECF_NOTROW to flags.
5444
e06408d0 54452015-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5446
5447 * common/config/aarch64/aarch64-common.c (AARCH64_CPU_NAME_LENGTH):
5448 Increase to 128.
5449 (aarch64_rewrite_selected_cpu): Do not chop off extensions starting
5450 at '.'. Assert that there's enough space for everything.
5451
9c8e84c1 54522015-04-21 Uros Bizjak <ubizjak@gmail.com>
5453
5454 PR tree-optimization/64950
5455 Revert:
5456 2010-08-02 Uros Bizjak <ubizjak@gmail.com>
5457
5458 PR target/41089
5459 * config/alpha/alpha.c (alpha_build_builtin_va_list): Mark __offset
5460 as volatile.
5461
961843f3 54622015-04-20 Shiva Chen <shiva0217@gmail.com>
5463
5464 PR rtl-optimization/64916
5465 * cfgcleanup.c (values_equal_p): New function.
5466 (can_replace_by): Use it.
5467
e36ce2a1 54682015-04-20 Paolo Carlini <paolo.carlini@oracle.com>
5469
5470 PR c++/65801
5471 * doc/invoke.texi ([-Wnarrowing]): Update.
5472
581c1a3c 54732015-04-20 Jeff Law <law@redhat.com>
5474
5475 PR tree-optimization/65658
5476 * tree-ssa-threadupdate.c (redirection_block_p): Remove
5477 redundant test for GIMPLE_ASSIGN in last change.
5478
9c8e84c1 54792015-04-20 Uros Bizjak <ubizjak@gmail.com>
d3181ef9 5480
5481 * config/i386/i386.c (set_pic_reg_ever_live): Remove.
5482 (legitimize_pic_address): Do not call set_pic_reg_ever_live.
5483 (legitimize_tls_address): Ditto.
5484 (ix86_expand_move): Ditto.
5485 (ix86_expand_binary_operator): Remove reload_in_progress checks.
5486 (ix86_expand_unary_operator): Ditto.
5487 * config/i386/predicates.md (index_register_operand): Ditto.
5488
d147c6d7 54892015-04-20 Selim Belbachir <selim.belbachir@fr.thalesgroup.com>
5490
5491 * reorg.c (try_merge_delay_insns): Improve correctness checking
5492 for targets with multiple delay slots.
5493
c7566ddf 54942015-04-20 Jeff Law <law@redhat.com>
5495
5496 PR tree-optimization/65658
5497 * tree-ssa-threadupdate.c (redirection_block_p): Ignore clobber
5498 statements too.
5499
5a7715dd 55002015-04-20 Alan Lawrence <alan.lawrence@arm.com>
5501
5502 * config/aarch64/aarch64.c (aarch64_simd_emit_pair_result_insn): Delete.
5503 * config/aarch64/aarch64-protos.h (aarch64_simd_emit_pair_result_insn):
5504 Delete.
5505
9d16ba85 55062015-04-20 Jakub Jelinek <jakub@redhat.com>
5507
5508 PR debug/65807
5509 * dwarf2out.c (add_AT_wide): Clear attr.dw_attr_val.val_entry.
5510
85627475 55112015-04-20 Richard Biener <rguenther@suse.de>
5512
5513 * gimple-fold.h (gimple_build): Remove optional valueize arguments.
5514 * gimple-fold.c (gimple_build_valueize): New function.
5515 (gimple_build): Always use gimple_build_valueize as valueize hook.
5516
e956e9df 55172015-04-20 Alan Lawrence <alan.lawrence@arm.com>
5518
5519 PR target/64134
5520 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Load constant
5521 and overwrite variable parts if <= 1/2 the elements are variable.
5522
99535fab 55232015-04-19 Vladimir Makarov <vmakarov@redhat.com>
5524
5525 PR rtl-optimization/65805
5526 * lra-eliminations.c (lra_eliminate_regs_1): Add new assert.
5527 Don't use difference of offset and previous offset if
5528 update_sp_offset is non-zero.
5529 (eliminate_regs_in_insn): Ditto.
5530 * lra-spills.c (remove_pseudos): Exchange 4th and 6th args in
5531 lra_eliminate_regs_1 call.
5532 * lra-constraints.c (get_equiv_with_elimination): Ditto.
5533
9969c043 55342015-04-18 Trevor Saunders <tsaunders@mozilla.com>
5535
5536 * hash-table.h: Remove version of hash_table that stored value_type *.
5537 * asan.c, attribs.c, bitmap.c, cfg.c, cgraph.h, config/arm/arm.c,
5538 config/i386/winnt.c, config/ia64/ia64.c, config/mips/mips.c,
5539 config/sol2.c, coverage.c, cselib.c, dse.c, dwarf2cfi.c,
5540 dwarf2out.c, except.c, gcse.c, genmatch.c, ggc-common.c,
5541 gimple-ssa-strength-reduction.c, gimplify.c, haifa-sched.c,
5542 hard-reg-set.h, hash-map.h, hash-set.h, ipa-devirt.c, ipa-icf.h,
5543 ipa-profile.c, ira-color.c, ira-costs.c, loop-invariant.c,
5544 loop-iv.c, loop-unroll.c, lto-streamer.h, plugin.c, postreload-gcse.c,
5545 reginfo.c, statistics.c, store-motion.c, trans-mem.c, tree-cfg.c,
5546 tree-eh.c, tree-hasher.h, tree-into-ssa.c, tree-parloops.c,
5547 tree-sra.c, tree-ssa-coalesce.c, tree-ssa-dom.c, tree-ssa-live.c,
5548 tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-phiopt.c,
5549 tree-ssa-pre.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
5550 tree-ssa-structalias.c, tree-ssa-tail-merge.c,
5551 tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h,
5552 valtrack.h, var-tracking.c, vtable-verify.c, vtable-verify.h: Adjust.
5553
487216e0 55542015-04-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5e263235 5555 Jakub Jelinek <jakub@redhat.com>
487216e0 5556
5557 PR target/65787
5558 * config/rs6000/rs6000.c (rtx_is_swappable_p): Ensure that a
5559 subsequent SH_NONE operand does not overwrite an existing *special
5560 value.
5561 (adjust_extract): Handle case where a vec_extract operation is
5562 wrapped in a PARALLEL.
5563
d006842d 55642015-04-17 H.J. Lu <hongjiu.lu@intel.com>
5565
5566 PR target/65780
5567 * config/i386/i386.c (ix86_binds_local_p): Define only if
5568 TARGET_MACHO and TARGET_DLLIMPORT_DECL_ATTRIBUTES are false.
5569
545372c5 55702015-04-17 Jeff Law <law@redhat.com>
5571
5572 PR tree-optimization/47679
5573 * Makefile.in (OBJS); Add tree-ssa-scopedtables.o.
5574 * tree-ssa-scopedtables.c: New file.
5575 * tree-ssa-scopedtables.h: New file.
5576 * tree-ssa-dom.c: Include tree-ssa-scopedtables.h.
5577 (const_and_copies): Change name/type.
5578 (record_const_or_copy): Move into tree-ssa-scopedtables.c
5579 (record_const_or_copy_1): Similarly.
5580 (restore_vars_to_original_value): Similarly.
5581 (pass_dominator::execute): Create and destroy const_and_copies table.
5582 (thread_across_edge): Update passing of const_and_copies.
5583 (record_temporary_equivalence): Use method calls rather than
5584 manipulating const_and_copies directly.
5585 (record_equality, cprop_into_successor_phis): Similarly.
5586 (dom_opt_dom_walker::before_dom_children): Similarly.
5587 (dom_opt_dom_walker::after_dom_children): Similarly.
5588 (eliminate_redundant_computations): Similarly.
5589 * tree-ssa-threadedge.c (remove_temporary_equivalences): Delete.
5590 (record_temporary_equivalence): Likewise.
5591 (invalidate_equivalences): Likewise.
5592 (record_temporary_equivalences_from_phis): Update due to type
5593 change of const_and_copies. Use method calls rather than
5594 manipulating the stack directly.
5595 (record_temporary_equivalences_from_stmts_at_dest): Likewise.
5596 (thread_through_normal_block, thread_across_edge): Likewise.
5597 (thread_across_edge): Likewise.
5598 * tree-ssa-threadedge.h (thread_across_edge): Update prototype.
5599 * tree-vrp.c: Include tree-ssa-scopedtables.h. Change type
5600 of equiv_stack.
5601 (identify_jump_threads): Update due to type change of equiv_stack.
5602 (finalize_jump_threads): Delete the equiv_stack when complete.
5603
fce667e3 56042015-04-17 Uros Bizjak <ubizjak@gmail.com>
5605
5606 * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
5607 * config/i386/i386.c (ix86_legitimize_reload_address): Ditto.
5608 * config/i386/i386-protos.h (ix86_legitimize_reload_address): Ditto.
5609
31d35465 56102015-04-17 Andreas Tobler <andreast@gcc.gnu.org>
5611
5612 PR target/65535
5613 * config.gcc: Exit with a comment when we do not have a major version
5614 number for the FreeBSD target.
5615
dce70584 56162015-04-17 Jakub Jelinek <jakub@redhat.com>
5617
5618 PR target/65689
5619 * genpreds.c (struct constraint_data): Add maybe_allows_reg and
5620 maybe_allows_mem bitfields.
5621 (maybe_allows_none_start, maybe_allows_none_end,
5622 maybe_allows_reg_start, maybe_allows_reg_end, maybe_allows_mem_start,
5623 maybe_allows_mem_end): New variables.
5624 (compute_maybe_allows): New function.
5625 (add_constraint): Use it to initialize maybe_allows_reg and
5626 maybe_allows_mem fields.
5627 (choose_enum_order): Sort the non-is_register/is_const_int/is_memory/
5628 is_address constraints such that those that allow neither mem nor
5629 reg come first, then those that only allow reg but not mem, then
5630 those that only allow mem but not reg, then the rest.
5631 (write_allows_reg_mem_function): New function.
5632 (write_tm_preds_h): Call it.
5633 * stmt.c (parse_output_constraint, parse_input_constraint): Use
5634 the generated insn_extra_constraint_allows_reg_mem function
5635 instead of always setting *allows_reg = true; *allows_mem = true;
5636 for unknown extra constraints.
5637
a4b04269 56382015-04-17 H.J. Lu <hongjiu.lu@intel.com>
5639
5640 PR target/65780
5641 * output.h (default_binds_local_p_3): New.
5642 * varasm.c (default_binds_local_p_3): Make it public. Take an
5643 argument to indicate if common symbol may be local. If common
5644 symbol may be local, treat non-external variable as defined
5645 locally.
5646 (default_binds_local_p_2): Pass !flag_pic to default_binds_local_p_3.
5647 (default_binds_local_p_1): Pass false to default_binds_local_p_3.
5648 * config/i386/i386.c (ix86_binds_local_p): New.
5649 (TARGET_BINDS_LOCAL_P): Replace default_binds_local_p_2 with
5650 ix86_binds_local_p.
5651
bc04ebcb 56522015-04-17 Jakub Jelinek <jakub@redhat.com>
5653
5654 PR debug/65771
5655 * dwarf2out.c (mem_loc_descriptor): For CONST, fallback to
5656 trying mem_loc_descriptor on XEXP (rtl, 0).
5657
4f8a0233 56582015-04-17 Martin Liska <mliska@suse.cz>
5659
5660 * ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
5661 Release symbol_compare_collection.
5662 * ipa-reference.c: Add TODO that a vector should be released.
5663
719eb899 56642015-04-17 Sivanupandi Pitchumani <Pitchumani.Sivanupandi@atmel.com>
5665
5666 PR target/65296
5667 * config/avr/gen-avr-mmcu-specs.c (*avrlibc_startfile): Adjust
5668 to new AVR-LibC file layout (bug #44574).
5669 (*avrlibc_devicelib): Same.
5670 * config/avr/avr-mcus.def: Adjust comments.
5671 * config/avr/avr.opt (nodevicelib): Adjust help.
5672
f8544110 56732015-04-17 Alan Lawrence <alan.lawrence@arm.com>
5674
5675 * config/aarch64/arm_neon.h (vdup_n_f32): Remove forward declaration.
5676
7e8f098c 56772015-04-17 Patrick Palka <ppalka@gcc.gnu.org>
5678
5679 PR c++/64527
5680 * gimplify.c (gimplify_init_constructor): Always emit a
5681 side-effecting constructor.
5682
8e21ebb1 56832015-04-17 Tom de Vries <tom@codesourcery.com>
5684
c7b64aaa 5685 PR tree-optimization/64950
8e21ebb1 5686 * gimplify.c (gimplify_function_tree): Tentatively set PROP_gimple_lva
5687 in cfun->curr_properties.
5688 (gimplify_va_arg_expr): Clear PROP_gimple_lva in cfun->curr_properties
5689 if we generate an IFN_VA_ARG.
5690 * tree-inline.c (expand_call_inline): Reset PROP_gimple_lva in dest
5691 function if PROP_gimple_lva is not set in src function.
5692
82fc0e0a 56932015-04-17 Tom de Vries <tom@codesourcery.com>
5694 Michael Matz <matz@suse.de>
5695
c7b64aaa 5696 PR tree-optimization/64950
82fc0e0a 5697 * gimple-iterator.c (update_modified_stmts): Remove static.
5698 * gimple-iterator.h (update_modified_stmts): Declare.
5699 * gimplify.c (gimplify_modify_expr): Handle IFN_VA_ARG.
5700 (gimplify_va_arg_internal): New function.
5701 (gimplify_va_arg_expr): Use IFN_VA_ARG.
5702 * gimplify.h (gimplify_va_arg_internal): Declare.
5703 * internal-fn.c (expand_VA_ARG): New unreachable function.
5704 * internal-fn.def (VA_ARG): New DEF_INTERNAL_FN.
5705 * tree-stdarg.c (gimple_call_ifn_va_arg_p, expand_ifn_va_arg_1)
5706 (expand_ifn_va_arg): New function.
5707 (pass_data_stdarg): Add PROP_gimple_lva to properties_provided field.
5708 (pass_stdarg::execute): Call expand_ifn_va_arg.
5709 (pass_data_lower_vaarg): New pass_data.
5710 (pass_lower_vaarg): New gimple_opt_pass.
5711 (pass_lower_vaarg::gate, pass_lower_vaarg::execute)
5712 (make_pass_lower_vaarg): New function.
5713 * cfgexpand.c (pass_data_expand): Add PROP_gimple_lva to
5714 properties_required field.
5715 * passes.def (all_passes): Add pass_lower_vaarg.
5716 * tree-pass.h (PROP_gimple_lva): Add define.
5717 (make_pass_lower_vaarg): Declare.
5718
4036aeb0 57192015-04-17 Tom de Vries <tom@codesourcery.com>
5720
5721 * fold-const.c (operand_equal_p): Handle INTERNAL_FNs.
5722 * calls.c (call_expr_flags): Same.
5723
0de0b987 57242015-04-17 Tom de Vries <tom@codesourcery.com>
5725
5726 * tree-stdarg.c (optimize_va_list_gpr_fpr_size): Factor out of ...
5727 (pass_stdarg::execute): ... here.
5728
5f8ad053 57292015-04-17 Tom de Vries <tom@codesourcery.com>
5730 Michael Matz <matz@suse.de>
5731
5732 * tree-cfg.c (make_blocks_1): Factor out of ...
5733 (make_blocks): ... here.
5734 (make_edges_bb): Factor out of ...
5735 (make_edges): ... here.
5736 (gimple_find_sub_bbs): New function.
5737 * tree-cfg.h (gimple_find_sub_bbs): Declare.
5738
5cb32292 57392015-04-17 Tom de Vries <tom@codesourcery.com>
5740
5741 * tree.c (free_lang_data): Disable lang_hooks.gimplify_expr.
5742
4d3c996b 57432015-04-17 Yury Gribov <y.gribov@samsung.com>
5744
5745 * asan.c (set_sanitized_sections): New function.
5746 (section_sanitized_p): Ditto.
5747 (asan_protect_global): Optionally sanitize user-defined
5748 sections.
5749 * asan.h (set_sanitized_sections): Declare new function.
5750 * common.opt (fsanitize-sections): New option.
5751 * doc/invoke.texi (-fsanitize-sections): Document new option.
5752 * opts-global.c (handle_common_deferred_options): Handle new
5753 option.
5754
06065ecc 57552015-04-17 Jakub Jelinek <jakub@redhat.com>
5756
5757 PR debug/65771
5758 * dwarf2out.c (loc_list_from_tree): Return NULL
5759 for DEBUG_EXPR_DECL.
5760
b1369c42 57612015-04-17 Christian Bruel <christian.bruel@st.com>
5762
5763 * ipa-inline.c (can_inline_edge_p): Allow inlining of functions with
5764 same attributes.
5765
57662015-04-16 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
16ff56f6 5767
5768 * ira-color.c (setup_left_conflict_sizes_p): Do not process
5769 node itself when computing left conflict subnode size.
5770
9faeb927 57712015-04-16 Uros Bizjak <ubizjak@gmail.com>
5772
5773 * config/i386/predicates.md (register_mixssei387nonimm_operand): New.
5774 * config/i386/i386.md (*fop_<mode>_1_mixed): Merge with
5775 *fop_<mode>_1_sse using enabled attribute. Use
5776 register_mixssei387nonimm_operand operand 1 predicate. Change
5777 alternative 3 constraints from "x" to "v".
5778
c0a4b664 57792015-04-16 Richard Biener <rguenther@suse.de>
5780
5781 PR tree-optimization/65774
5782 * tree-ssa-ccp.c (evaluate_stmt): Constrain types we invoke
5783 bit-value tracking on.
5784
f9e88e0c 57852015-04-16 Richard Biener <rguenther@suse.de>
5786
5787 PR tree-optimization/64277
5788 * tree-vrp.c (check_array_ref): Fix anti-range handling,
5789 simplify upper bound handling.
5790 (search_for_addr_array): Simplify.
5791 (check_array_bounds): Handle ADDR_EXPRs here.
5792 (check_all_array_refs): Simplify.
5793
69deb15a 57942015-04-16 Uros Bizjak <ubizjak@gmail.com>
5795
5796 * config/i386/i386.c (print_reg): Rewrite function.
5797
3f4fdd8c 57982015-04-16 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5799
5800 * config/s390/s390.h (IRA_HARD_REGNO_ADD_COST_MULTIPLIER):
5801 Invert the condition.
5802
af2cb099 58032015-04-16 Renlin Li <renlin.li@arm.com>
5804
5805 * simplify-rtx.c (simplify_unary_operation_1): Fix a typo. Enable two
5806 simplifications for UNSIGNED_FLOAT.
5807
e98e1692 58082015-04-16 Nick Clifton <nickc@redhat.com>
5809
5810 * config/rl78/rl78-opts.h (enum rl78_mul_types): Add MUL_G14 and
5811 MUL_UNINIT.
5812 (enum rl78_cpu_type): New.
5813 * config/rl78/rl78-virt.md (attr valloc): Add divhi and divsi.
5814 (umulhi3_shift_virt): Remove m constraint from operand 1.
5815 (umulqihi3_virt): Likewise.
5816 * config/rl78/rl78.c (rl78_option_override): Add code to process
5817 -mcpu and -mmul options.
5818 (rl78_alloc_physical_registers): Add code to handle divhi and
5819 divsi valloc attributes.
5820 (set_origin): Likewise.
5821 * config/rl78/rl78.h (RL78_MUL_G14): Define.
5822 (TARGET_G10, TARGET_G13, TARGET_G14): Define.
5823 (TARGET_CPU_CPP_BUILTINS): Define __RL78_MUL_xxx__ and
5824 __RL78_Gxx__.
5825 (ASM_SPEC): Pass -mcpu on to assembler.
5826 * config/rl78/rl78.md (mulqi3): Add a clobber of AX.
5827 (mulqi3_rl78): Likewise.
5828 (mulhi3_g13): Likewise.
5829 (mulhi3): Generate the G13 or G14 versions of the insn directly.
5830 (mulsi3): Likewise.
5831 (mulhi3_g14): Add clobbers of AX and BC.
5832 (mulsi3_g14): Likewise.
5833 (mulsi3_g13): Likewise.
5834 (udivmodhi4, udivmodhi4_g14, udivmodsi4): New patterns.
5835 (udivmodsi4_g14, udivmodsi4_g13): New patterns.
5836 * config/rl78/rl78.opt (mmul): Initialise value to
5837 RL78_MUL_UNINIT.
5838 (mcpu): New option.
5839 (m13, m14, mrl78): New option aliases.
5840 * config/rl78/t-rl78 (MULTILIB_OPTIONS): Add mg13 and mg14.
5841 (MULTILIB_DIRNAMES): Add g13 and g14.
5842 * doc/invoke.texi: Document -mcpu and -mmul options.
5843
a8a0d56e 58442015-04-16 Richard Biener <rguenther@suse.de>
5845
5846 * tree-ssa-ccp.c (likely_value): See if we have operands that
5847 are marked as never simulate again and return CONSTANT in this
5848 case.
5849 * tree-ssa-propagate.c (simulate_stmt): Mark stmts that do
5850 not have any operands that will be simulated again as
5851 not being simulated again.
5852
23bebc67 58532015-04-15 Uros Bizjak <ubizjak@gmail.com>
5854
5855 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>_mixed):
5856 Merge with *cmpi<FPCMP:unord><MODEF:mode>_sse using enabled attribute.
5857 (*extendsfdf2_mixed): Merge with *extendsfdf2_sse using enabled
5858 attribute.
5859 (*truncdfsf_fast_mixed): Merge with *truncdfsf_fast_sse using
5860 enabled attribute.
5861 (*float<SWI48:mode><MODEF:mode>2_mixed): Rename from
5862 *float<SWI48:mode><MODEF:mode>2_sse.
5863 (*absneg<mode>2_mixed): Merge with *absneg<mode>2_sse using
5864 enabled attribute.
5865 (*fop_<mode>_comm_mixed): Merge with *fop_<mode>_comm_sse using
5866 enabled attribute.
5867
20dc3373 58682015-04-15 Tom de Vries <tom@codesourcery.com>
5869
5870 PR other/65487
5871 * function.c (push_dummy_function): New function.
5872 (init_dummy_function_start): Use push_dummy_function.
5873 (pop_dummy_function): New function. Factored out of ...
5874 (expand_dummy_function_end): ... here.
5875 * function.h (push_dummy_function, pop_dummy_function): Declare.
5876 * passes.c (pass_manager::dump_passes): Use push_dummy_function and
5877 pop_dummy_function.
5878 * tree-chkp.c (chkp_gate): Handle cgraph_node::get (cfun->decl) == NULL.
5879
b803a3c1 58802015-04-15 Jeff Law <law@redhat.com>
5881
970975d0 5882 PR tree-optimization/47679
5883 * tree-ssa-dom.c (build_and_record_new_cond): Moved to avoid
5884 need for forward declaration in upcoming changes.
5885 (record_conditions, record_edge_info): Likewise.
5886
b803a3c1 5887 PR rtl-optimization/42522
5888 * cse.c (fold_rtx): Try to simplify a ZERO_EXTRACT or
5889 SIGN_EXTRACT as a whole object rather than simplifying
5890 its operand.
5891
1c543545 58922015-04-15 Jakub Jelinek <jakub@redhat.com>
5893
5894 PR ipa/65765
5895 * ipa-icf-gimple.c (func_checker::compare_bb): For GIMPLE_NOP
5896 and GIMPLE_PREDICT use break instead of return true. For
5897 GIMPLE_EH_DISPATCH, compare dispatch region.
5898
255d8fb7 58992015-04-14 Matthew Wahab <matthew.wahab@arm.com>
5900
5901 * doc/extend.texi (__sync Builtins): Simplify some text. Update
5902 details about the implementation. Make clear preference for
5903 __atomic builtins. Reduce possibility of future change.
5904
6202f892 59052015-04-15 Nick Clifton <nickc@redhat.com>
5906
5907 * config/rx/rx.opt (mallow-string-insns): New option.
5908 * config/rx/rx.c (RX_BUILTIN_RMPA): Disable the use of this
5909 builtin if string instructions are denied.
5910 * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Define
5911 __RX_ALLOW_STRING_INSNS__ or __RX_DISALLOW_STRING_INSNS__, as
5912 appropriate.
5913 (ASM_SPEC): Pass -mno-allow-string-insns on to the assembler.
5914 * config/rx/rx.md (movstr): Enable pattern only if string
5915 instructions are allowed.
5916 (rx_movstr, rx_strend, movmemsi, rx_movmem): Likewise.
5917 (cmpstrnsi, cmpstrsi, rx_cmpstrn, rmpa): Likewise.
5918 * config/rx/t-rx (MULTILIB_OPTIONS): Add mno-allow-string-insns.
5919 (MULTILIB_DIRNAMES): Add no-strings.
5920 * doc/invoke.texi: Document -mno-allow-string-insns.
e98e1692 5921
72f2d6cc 59222015-04-15 Alan Modra <amodra@gmail.com>
5923
5924 PR target/65408
5925 PR target/58744
5926 PR middle-end/36043
5927 * calls.c (load_register_parameters): Don't load past end of
5928 mem unless suitably aligned.
5929
d1dc25ff 59302015-04-15 Nick Clifton <nickc@redhat.com>
5931
5932 * config/rl78/rl78.c (rl78_expand_prologue): Mark large stack
5933 decrement instruction as being frame related.
5934 (rl78_print_operand_1): Handle 'p' modifier to add +0 to HL
5935 based addresses.
5936 If zero extending a function address enclose the operation in
5937 %code(...).
5938 (rl78_preferred_reload_class): New function.
5939 (TARGET_PREFERRED_RELOAD_CLASS): Define.
5940 * config/rl78/rl78.md: Remove useless constraints in expanders.
5941 (mulqi3_rl78): Remove + qualifier on input-only operand 1.
5942 (mulhi3_rl78): Likewise.
5943 (mulhi3_g13): Likewise.
5944 (mulsi3_rl78): Likewise.
5945 (es_addr): Move to before the multiply patterns.
5946
c36aa54b 59472015-04-15 Alan Modra <amodra@gmail.com>
5948
5949 * function.h (struct emit_status): Delete x_first_insn, x_last_insn
5950 and sequence_stack. Add seq.
5951 (seq_stack): Delete.
5952 * function.c (prepare_function_start): Don't access x_last_insn.
5953 * emit-rtl.h (get_current_sequence, get_topmost_sequence): New.
5954 (get_insns, set_first_insn, get_last_insn, set_last_insn): Use them.
5955 * emit_rtl.c (start_sequence, push_topmost_sequence,
5956 pop_topmost_sequence, end_sequence, in_sequence_p, init_emit): Use
5957 sequence accessors.
5958 (get_last_insn_anywhere, add_insn_after_nobb, add_insn_before_nobb,
5959 remove_insn): Likewise. Simplify.
5960 * config/m32c/m32c.c (m32c_leaf_function_p): Use push_topmost_sequence
5961 and pop_topmost_sequence.
5962 (m32c_function_needs_enter): Use get_topmost_sequence. Ignore
5963 debug insns.
5964 * config/rs6000/rs6000.c (rs6000_call_aix): Use get_current_sequence.
5965
e6ea917c 59662015-04-14 Yvan Roux <yvan.roux@linaro.org>
5967
5968 PR target/65729
5969 * lra-constraints.c (prohibited_class_reg_set_mode_p): Restore and fix
5970 the assertiion.
5971
22e23375 59722015-04-14 Uros Bizjak <ubizjak@gmail.com>
5973
5974 * config/i386/i386.h (LEGACY_INT_REG_P): New define.
5975 (LEGACY_INT_REGNO_P): Ditto.
5976 (GENERAL_REGNO_P): Use LEGACY_INT_REGNO_P.
5977 (ANY_MASK_REG_P): Remove.
5978 (BND_REG_P): Rename from ANY_BND_REG_P.
5979 * config/i386/i386.c (print_reg): Use LEGACY_INT_REG_P to print
5980 legacy integer registers. Do not handle MMX_REG_P in a special way.
5981 Merge 64byte and 32byte SSE handling.
5982
2ff88218 59832015-04-14 Nick Clifton <nickc@redhat.com>
5984
5985 * expr.c (expand_assignment): Force an address offset computation
5986 into a register before changing its mode.
5987 (expand_expr_real_1): Likewise.
5988
f7507320 59892015-04-14 Alan Lawrence <alan.lawrence@arm.com>
5990
5991 * config/aarch64/arm_neon.h (vst1_lane_f32, vst1_lane_f64,
5992 vst1_lane_p8, vst1_lane_p16, vst1_lane_s8, vst1_lane_s16,
5993 vst1_lane_s32, vst1_lane_s64, vst1_lane_u8, vst1_lane_u16,
5994 vst1_lane_u32, vst1_lane_u64, vst1q_lane_f32, vst1q_lane_f64,
5995 vst1q_lane_p8, vst1q_lane_p16, vst1q_lane_s8, vst1q_lane_s16,
5996 vst1q_lane_s32, vst1q_lane_s64, vst1q_lane_u8, vst1q_lane_u16,
5997 vst1q_lane_u32, vst1q_lane_u64): Reimplement with pointer dereference
5998 and __aarch64_vget_lane_any.
5999
33a2aaa4 60002015-04-14 Jakub Jelinek <jakub@redhat.com>
6001
6002 PR rtl-optimization/65761
6003 * cfgrtl.c (rtl_split_edge): For EDGE_CROSSING split, use
6004 get_last_bb_insn (after) instead of NEXT_INSN (BB_END (after)).
6005
6cf9f9e0 60062015-04-14 Richard Biener <rguenther@suse.de>
6007
6008 * graphite-scop-detection.c: Do not include cp/cp-tree.h.
6009 (graphite_can_represent_scev): Use POINTER_TYPE_P.
6010
c90d2c17 60112015-04-14 Richard Biener <rguenther@suse.de>
6012
6013 PR tree-optimization/65758
6014 * tree-ssa-ccp.c (get_value_from_alignment): Adjust mask test
6015 against -1.
6016 (ccp_lattice_meet): Likewise.
6017 (bit_value_unop): Likewise.
6018 (bit_value_binop): Likewise.
6019 (bit_value_assume_aligned): Likewise.
6020
2d4340b0 60212015-04-14 Christian Bruel <christian.bruel@st.com>
6022
6023 * execute_dwarf2_frame (dw_frame_pointer_regnum): Reinitialize for each
6024 function.
6025
57d742ac 60262015-04-14 Marc Glisse <marc.glisse@inria.fr>
6027
6028 PR tree-optimization/63387
6029 * match.pd ((x unord x) | (y unord y) -> (x unord y),
6030 (x unord x) | (x unord y) -> (x unord y)): New simplifications.
6031
f15065c9 60322015-04-14 Uros Bizjak <ubizjak@gmail.com>
6033
6034 * config/i386/predicates.md (any_QIreg_operand): Rename from
6035 q_regs_operand. Do not process subregs.
6036 (QIreg_operand): Use QI_REGNO_P predicate.
6037 (ext_QIreg_operand): Ditto.
6038 (ext_register_operand): Ditto.
6039 * config/i386/i386.md (TEST splitters): Use QIreg_operand predicate.
6040 (AND splitters): Ditto.
6041 (AND with -65536 splitter): Add SWI48 mode for operand 0.
6042 (AND with -256 splitter): Use any_QIreg_operand predicate and
6043 SWI248 mode for operand 0.
6044 (AND with -65281 splitter): Use QIreg_operand predicate and SWI248
6045 mode for operand 0.
6046 (SETCC + MOVZBL peepholes): Update for renamed any_QIreg_operand.
6047
9acf6420 60482015-04-13 Gerald Pfeifer <gerald@pfeifer.com>
6049
6050 * doc/plugins.texi: Rewrite first introductory paragraph.
6051
be57e812 60522015-04-12 Jan Hubicka <hubicka@ucw.cz>
6053
6054 * tree-vrp.c (nonnull_arg_p): THIS pointers and references are non-zero.
6055 (gimple_stmt_nonzero_warnv_p): Reference return values are non-zero.
6056
6f3dcc1e 60572015-04-12 Jan Hubicka <hubicka@ucw.cz>
6058
6059 * ipa-profie.c (ipa_profile): Check number of parameters
6060 and possible polymorphic call targets before
6061 devirtualizing.
6062
00daaa9c 60632015-04-13 Uros Bizjak <ubizjak@gmail.com>
6064
6065 * config/i386/i386.md (*bmi2_umul<mode><dwi>3_1): Merge from
6066 *bmi2_umulsidi3_1 and *bmi2_umulditi3_1 using DWIH mode iterator.
6067
db48deb0 60682015-04-13 Richard Biener <rguenther@suse.de>
6069
6070 PR tree-optimization/65204
6071 * tree-ssa-ccp.c (evaluate_stmt): Always evaluate address
6072 takens for bit-CCP.
6073
48b24f49 60742015-04-13 Richard Biener <rguenther@suse.de>
6075
6076 PR target/65660
6077 * config/i386/i386.c (bdver1_cost): Double cond_taken_branch_cost
6078 and cond_not_taken_branch_cost to 4 and 2.
6079 (bdver2_cost): Likewise.
6080 (bdver3_cost): Likewise.
6081 (bdver4_cost): Likewise.
6082
e7826ae1 60832015-04-12 Jan Hubicka <hubicka@ucw.cz>
6084
6085 * hash-table.h (hash_table constructor): Add mem stats.
6086 (alloc_entries): Likewise.
6087
71fe79b2 60882015-04-12 Jan Hubicka <hubicka@ucw.cz>
6089
6090 * ipa-cp.c (ipcp_driver): Relase prev_edge.
6091 * passes.c (execute_one_pass): Only add transform if pass has one.
6092
525643d8 60932015-04-12 Joseph Myers <joseph@codesourcery.com>
6094
6095 * config/i386/i386.c (ix86_option_override_internal): Don't set
6096 -fprefetch-loop-arrays if optimizing for size.
6097
b8e27798 60982015-04-12 Jan Hubicka <hubicka@ucw.cz>
6099 Gerald Pfeifer <gerald@pfeifer.com>
6100
6101 * doc/contrib.texi (Contributors): Add Martin Jambor and
6102 Michael Matz.
6103
905be4e6 61042015-04-12 Jakub Jelinek <jakub@redhat.com>
6105
2d444913 6106 * BASE-VER: Set to 6.0.0.
6107
905be4e6 6108 PR tree-optimization/65747
6109 * ipa-icf-gimple.c (func_checker::compare_operand): Use compare_operand
6110 rather than compare_ssa_name for OBJ_TYPE_REF_OBJECT.
6111
f1f52d51 61122015-04-12 Gerald Pfeifer <gerald@pfeifer.com>
6113
6114 * doc/invoke.texi (-Wmemset-transposed-args): Break a long
6115 sentence. Improve grammar.
6116
c4681006 61172015-04-12 Gerald Pfeifer <gerald@pfeifer.com>
6118
6119 * doc/contrib.texi (Contributors): Add Maxim Kuvyrkov.
6120
51a019c5 61212015-04-11 Jan Hubicka <hubicka@ucw.cz>
7ab096e0 6122
6123 PR ipa/65743
6124 * ipa-inline-transform.c (speculation_removed): Remove static var.
6125 (check_speculations): New function.
6126 (clone_inlined_nodes): Do not check spculations.
6127 (inline_call): Call check_speculations.
6128 * ipa-prop.c (ipa_make_edge_direct_to_target): Do not
6129 consider non-invariants.
6130
51a019c5 61312015-04-11 Jan Hubicka <hubicka@ucw.cz>
6132 Martin Liska <mliska@suse.cz>
a72b1e34 6133
6134 PR ipa/65722
6135 * ipa-icf.c (sem_item::compare_cgraph_references): function and
6136 variable can not match.
6137 (sem_item::update_hash_by_addr_refs): Fix handling of virtual tables.
6138 (sem_variable::equals_wpa): Fix checking of DECL_FINAL_P patch.
6139
7bcba067 61402015-04-11 Jakub Jelinek <jakub@redhat.com>
6141
6142 PR tree-optimization/65735
6143 * tree-ssa-threadedge.c (fsm_find_control_statement_thread_paths):
6144 Remove visited_phis argument, add visited_bbs, avoid recursing into the
6145 same bb rather than just into the same phi node.
6146 (thread_through_normal_block): Adjust caller.
6147
7bbc6c39 61482015-04-11 Gerald Pfeifer <gerald@pfeifer.com>
6149
6150 * doc/contrib.texi (Contributors): Add Ira Rosen.
6151
911ecac2 61522015-04-11 Benno Schulenberg <bensberg@justemail.net>
6153
6154 * gcov.c (find_source): Fix miswording in error message.
6155 * config/i386/i386.c (ix86_handle_cconv_attribute): Likewise.
6156 (ix86_expand_sse_comi_round): Fix typo in error message.
6157
3c82f2b4 61582015-04-11 Gerald Pfeifer <gerald@pfeifer.com>
6159
6160 * doc/contrib.texi (Contributors): Add Laurynas Biveinis.
6161
f1c25d13 61622015-04-10 Gerald Pfeifer <gerald@pfeifer.com>
6163
6164 * doc/contrib.texi (Contributors): Update Joe Buck's entry.
6165
b439aebd 61662015-04-10 Vladimir Makarov <vmakarov@redhat.com>
6167
6168 PR target/65710
6169 * lra-assigns.c (spill_for): Update smallest_bad_spills_num.
6170 Print bad_spills_num and insn_pseudos_num.
6171
d5cfbc8c 61722015-04-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6173
6174 PR target/65694
6175 * config/arm/arm.c (arm_canonicalize_comparison): Use ARM_SIGN_EXTEND
6176 when creating +1 values for SImode.
6177
b133333e 61782015-04-10 Vladimir Makarov <vmakarov@redhat.com>
6179
6180 PR target/65729
6181 * lra-constraints.c (prohibited_class_reg_set_mode_p): Comment the
6182 assert.
6183
fb5ccd6d 61842015-04-10 Jakub Jelinek <jakub@redhat.com>
6185 Iain Sandoe <iain@codesourcery.com>
6186
6187 PR target/65351
6188 * configure: Regenerate.
6189
9fbb8dbd 61902015-04-09 Kirill Yukhin <kirill.yukhin@intel.com>
6191
6192 PR target/65671
9adfaa03 6193 * config/i386/sse.md: Generate vextract32x4 if AVX-512DQ is disabled.
9fbb8dbd 6194
52e75185 61952015-04-09 Gerald Pfeifer <gerald@pfeifer.com>
6196
6197 * doc/contrib.texi (Contributors): Add John Marino.
6198
ca6ed334 61992015-04-09 Jakub Jelinek <jakub@redhat.com>
6200
6201 PR tree-optimization/65709
6202 * ubsan.c (instrument_mem_ref): Use TREE_TYPE (base) instead of
6203 TREE_TYPE (TREE_TYPE (t)).
6204
0f7b6a0d 62052015-04-09 Vladimir Makarov <vmakarov@redhat.com>
6206
6207 PR target/65710
6208 * lra-int.h (lra_bad_spill_regno_start): New.
6209 * lra.c (lra_bad_spill_regno_start): New.
6210 (lra): Set up lra_bad_spill_regno_start. Set up
6211 lra_constraint_new_regno_start unconditionally.
6212 * lra-assigns.c (spill_for): Use lra_bad_spill_regno_start for
6213 spill preferences.
6214
fbbdee2b 62152015-04-09 Marek Polacek <polacek@redhat.com>
6216 Jakub Jelinek <jakub@redhat.com>
6217
6218 PR middle-end/65554
6219 * gimple-fold.c (gimple_fold_builtin_memory_op): Update comment.
6220 (fold_ctor_reference): Use STRIP_USELESS_TYPE_CONVERSION instead
6221 of STRIP_NOPS.
6222
35206d02 62232015-04-09 Segher Boessenkool <segher@kernel.crashing.org>
6224
6225 PR rtl-optimization/65693
6226 * combine.c (is_parallel_of_n_reg_sets): Move outside of
6227 #ifndef HAVE_cc0.
6228
fec08444 62292015-04-09 Georg-Johann Lay <avr@gjlay.de>
6230
6231 PR target/65296
6232 * config/avr/driver-avr.c (avr_devicespecs_file): Don't specify a
6233 device specs file if "device-specs%s" didn't resolve to a path.
6234
23af5d95 62352015-04-09 Kirill Yukhin <kirill.yukhin@intel.com>
6236
6237 PR target/65676
6238 * config/i386/i386.c (fixup_modeless_constant): New.
6239 (ix86_expand_args_builtin): Fixup modeless constant operand.
6240 (ix86_expand_round_builtin): Ditto.
6241 (ix86_expand_special_args_builtin): Ditto.
6242 (ix86_expand_builtin): Ditto.
6243
8f44ec1f 62442015-04-09 Jakub Jelinek <jakub@redhat.com>
6245
6246 PR target/65693
6247 * config/i386/i386.md (*udivmod<mode>4_pow2): Allow
6248 any pow2 integer in between 2 and 0x80000000U inclusive.
6249
1e4f4b17 62502015-04-08 Segher Boessenkool <segher@kernel.crashing.org>
6251
6252 PR rtl-optimization/65693
6253 * combine.c (is_parallel_of_n_reg_sets): Change first argument
6254 from an rtx_insn * to an rtx.
6255 (try_combine): Adjust both callers. Use it once more.
6256
07c77ccc 62572015-04-08 Ilya Enkovich <ilya.enkovich@intel.com>
6258
6259 * tree-chkp.c (chkp_find_const_bounds_var): Remove.
6260 (chkp_make_static_const_bounds): Search existing
6261 symbol by assembler name. Use make_decl_one_only.
6262 (chkp_get_zero_bounds_var): Remove node search which
6263 is now performed in chkp_make_static_const_bounds.
6264 (chkp_get_none_bounds_var): Likewise.
6265
7d7e74e1 62662015-04-08 Michael Witten <mfwitten@gmail.com>
6267
6268 * doc/extend.texi (Attribute Syntax): Add a trailing semicolon
6269 to an example.
6270
a24816da 62712015-04-08 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
6272
6273 * tree.h (CONVERT_EXPR_P): Commentary typo fix.
6274
162add2a 62752015-04-08 Gerald Pfeifer <gerald@pfeifer.com>
6276
6277 * doc/extend.texi (__sync Builtins): Fix grammar.
6278
0ff6e7cc 62792015-04-08 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
6280
6281 * doc/cfg.texi (GIMPLE statement iterators): Fix typo.
6282
db36f475 62832015-04-08 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
6284
6285 * varasm.c (emit_local): Move definition of align.
6286
0a1fe572 62872015-04-08 Julian Brown <julian@codesourcery.com>
6288
6289 * config/nvptx/mkoffload.c (process): Support variable mapping.
6290
1ddffe86 62912015-03-27 Trevor Saunders <tbsaunde@tbsaunde.org>
6292
6293 * config/alpha/alpha.c (alpha_use_linkage): Change type of slot to
6294 alpha_links **.
6295 (alpha_write_one_linkage): Correct typo.
6296
6f59b325 62972015-04-08 Ilya Enkovich <ilya.enkovich@intel.com>
6298
6299 * ipa-comdats.c (propagate_comdat_group): Walk through thunks.
6300
1fa2d0d0 63012015-04-08 Gerald Pfeifer <gerald@pfeifer.com>
6302
9adfaa03 6303 * doc/install.texi (bootstrap-lto-noplugin): Rewrite.
1fa2d0d0 6304
17c596cc 63052015-04-08 Ilya Enkovich <ilya.enkovich@intel.com>
6306
6307 * tree-chkp.h (chkp_insert_retbnd_call): New.
6308 * tree-chkp.c (chkp_insert_retbnd_call): New.
6309 * ipa-split.c (insert_bndret_call_after): Remove.
6310 (split_function): Use chkp_insert_retbnd_call.
6311 * cgraphunit.c (cgraph_node::expand_thunk): Build returned
6312 bounds for instrumented functions.
6313
6b7d03d8 63142015-04-07 Jan Hubicka <hubicka@ucw.cz>
6315
6316 PR ipa/65540
6317 * calls.c (initialize_argument_information): When producing tail
6318 call also turn SSA_NAMES passed by references to original PARM_DECLs
6319
0c832c1c 63202015-04-07 Vladimir Makarov <vmakarov@redhat.com>
6321
2ba70752 6322 PR target/65648
0c832c1c 6323 * lra-remat.c (do_remat): Process input and non-input insn
6324 registers separately.
6325
f7572df2 63262015-04-07 Jakub Jelinek <jakub@redhat.com>
6327
596f7cca 6328 PR debug/65678
6329 * valtrack.c (debug_lowpart_subreg): New function.
6330 (dead_debug_insert_temp): Use it.
6331
f7572df2 6332 PR middle-end/65680
6333 * expr.c (get_inner_reference): Handle bit_offset that doesn't fit
6334 into signed HOST_WIDE_INT the same as negative bit_offset.
6335
8bfefdea 63362015-04-07 Ilya Enkovich <ilya.enkovich@intel.com>
6337
6338 * ipa-comdats.c (ipa_comdats): Visit all thunks
6339 to set proper comdat group.
6340
798bfc5d 63412015-04-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6342
6343 PR target/65489
6344 * config/arm/arm.c (arm_legitimate_constant_p_1): Remove restriction
6345 on constants for NEON VSTRUCT modes.
6346
b1b085e0 63472015-04-07 Jakub Jelinek <jakub@redhat.com>
6348 Iain Sandoe <iain@codesourcery.com>
6349
6350 PR target/65351
6351 * configure: Regenerate.
6352
a40ce17e 63532015-04-06 Michael Meissner <meissner@linux.vnet.ibm.com>
6354
6355 PR target/65614
6356 * config/rs6000/rs6000.c (struct processor_costs): Add cost field
6357 for SF->DF conversions to make FLOAT_EXTEND more expensive, so
6358 that LFD is used to load double constants instead of LFS. Add
6359 defaults for all costs structures. Add comments for missing
6360 initialization fields.
6361 (size32_cost): Likewise.
6362 (size64_cost): Likewise.
6363 (rs64a_cost): Likewise.
6364 (mpccore_cost): Likewise.
6365 (ppc403_cost): Likewise.
6366 (ppc405_cost): Likewise.
6367 (ppc440_cost): Likewise.
6368 (ppc476_cost): Likewise.
6369 (ppc601_cost): Likewise.
6370 (ppc603_cost): Likewise.
6371 (ppc604_cost): Likewise.
6372 (ppc604e_cost): Likewise.
6373 (ppc620_cost): Likewise.
6374 (ppc630_cost): Likewise.
6375 (ppccell_cost): Likewise.
6376 (ppc750_cost): Likewise.
6377 (ppc7450_cost): Likewise.
6378 (ppc8540_cost): Likewise.
6379 (ppce300c2c3_cost): Likewise.
6380 (ppce500mc_cost): Likewise.
6381 (ppce500mc64_cost): Likewise.
6382 (ppce5500_cost): Likewise.
6383 (ppce6500_cost): Likewise.
6384 (titan_cost): Likewise.
6385 (power4_cost): Likewise.
6386 (power6_cost): Likewise.
6387 (power7_cost): Likewise.
6388 (power8_cost): Likewise.
6389 (ppca2_cost): Likewise.
6390 (rs6000_rtx_costs): Make FLOAT_EXTEND use SFDF_convert field.
6391
6392 * config/rs6000/rs6000.md (extendsfdf2_fpr): Generate XSCPSGNDP
6393 instead of XXLOR to copy SFmode to clear out dirty bits created
6394 when SFmode denormals are generated.
6395 (mov<mode>_hardfloat, FMOVE32 case): Likewise.
6396 (truncdfsf2_fpr): Add support for ISA 2.07 XSRSP instruction.
6397
1fa6e64d 63982015-04-06 Evandro Menezes <e.menezes@samsung.com>
6399
6400 * doc/invoke.texi (AARCH64/mtune): Add exynos-m1 as an option.
6401 * config/aarch64/aarch64-cores.def (exynos-m1): New core.
6402 * config/aarch64/aarch64-tune.md: Regenerate.
6403
1ca8545b 64042015-04-06 Evandro Menezes <e.menezes@samsung.com>
6405
6406 * doc/invoke.texi (ARM/mtune): Add "exynos-m1" as an option.
6407 * config/arm/arm.c (arm_issue_rate): Specify "3" for "exynosm1".
6408 * config/arm/arm-cores.def (exynos-m1): New core.
6409 * config/arm/arm-tune.md: Regenerate.
6410 * config/arm/arm-tables.opt: Add entry for "exynos-m1".
6411 * config/arm/bpabi.h: Likewise.
6412
50fc5f3c 64132015-04-06 Ilya Enkovich <ilya.enkovich@intel.com>
6414
6415 * ipa-cp (set_single_call_flag): Remove too
6416 restrictive assert.
6417
0d8c703d 64182015-04-06 Ilya Verbin <ilya.verbin@intel.com>
6419
6420 * config/i386/intelmic-mkoffload.c (generate_host_descr_file): Call
6421 GOMP_offload_unregister from the destructor.
6422
0c57c0f9 64232015-04-06 Ilya Enkovich <ilya.enkovich@intel.com>
6424
6425 * ipa-chkp.c (chkp_maybe_create_clone): Reset cdtor
6426 flags for instrumentation thunk.
6427 (chkp_produce_thunks): Likewise.
6428
1bb258de 64292015-04-05 Martin Liska <mliska@suse.cz>
6430
6431 PR ipa/65665
6432 * ipa-icf.c (sem_function::equals_wpa): Verify that IPA CP
6433 has computed data structure.
6434 (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
6435
ec4ff5c6 64362015-04-04 Jan Hubicka <hubicka@ucw.cz>
6437
6438 * invoke.texi (inline-unit-growth): Increase growth to 20%
6439 * params.def (PARAM_INLINE_UNIT_GROWTH): Likewise.
6440
fa4f0b4e 64412015-04-04 Vladimir Makarov <vmakarov@redhat.com>
6442
6443 PR target/65647
6444 * lra-int.h (LRA_MAX_REMATERIALIZATION_PASSES): New. Add its
6445 value checking.
6446 (lra_rematerialization_iter): New.
6447 * lra.c (lra): Initialize lra_rematerialization_iter.
6448 Stop updating lra_constraint_new_regno_start after switching of
6449 inheritance and rematerialization.
6450 * lra-remat.c (lra_rematerialization_iter): New.
6451 (lra_remat): Add printing pass iteration. Do rematerialization
6452 only first LRA_MAX_REMATERIALIZATION_PASSES iterations.
6453
7a66d0cf 64542015-04-04 Richard Biener <rguenther@suse.de>
6455
6456 PR tree-optimization/64909
6457 PR tree-optimization/65660
6458 * tree-vectorizer.h (vect_get_known_peeling_cost): Adjust
6459 to take a cost vector for scalar iteration cost.
6460 (vect_get_single_scalar_iteration_cost): Likewise.
6461 * tree-vect-loop.c (vect_get_single_scalar_iteration_cost):
6462 Compute the scalar iteration cost into a cost vector.
6463 (vect_get_known_peeling_cost): Use the scalar cost vector to
6464 account for the cost of the peeled iterations.
6465 (vect_estimate_min_profitable_iters): Likewise.
6466 * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
6467 Likewise.
6468
b0c27777 64692015-04-04 Alan Modra <amodra@gmail.com>
6470
6471 PR target/65576
6472 PR target/65240
6473 * config/rs6000/predicates.md (zero_reg_mem_operand): Exclude
6474 0.0 constant unless TARGET_VSX.
6475 * config/rs6000/rs6000.md (extenddftf2_internal): Remove last
6476 alternative.
6477
6737c56a 64782015-04-03 Jan Hubicka <hubicka@ucw.cz>
6479
2ba70752 6480 PR ipa/65654
6737c56a 6481 * ipa-inline-transform.c (inline_call): Skip sanity check to work
6482 around the ICE
6483
93b6a5b4 64842015-04-03 Jan Hubicka <hubicka@ucw.cz>
6485
6486 PR ipa/65655
6487 * ipa-inline-analysis.c (edge_set_predicate): Do not redirect
6488 speculative indirect edges to avoid ordering issue.
6489
05c71fb5 64902015-04-03 Jan Hubicka <hubicka@ucw.cz>
6491
6492 PR ipa/65076
6493 * ipa-inline.c (edge_badness): Add combined size to the denominator.
6494
240131b5 64952015-04-03 Jakub Jelinek <jakub@redhat.com>
6496
6497 * omp-low.c (scan_omp_parallel, scan_omp_task, scan_omp_target): Set
6498 TYPE_ARTIFICIAL on the .omp_data* types.
6499
e4436fff 65002015-04-02 Ilya Enkovich <ilya.enkovich@intel.com>
6501
6502 * cgraphunit.c (cgraph_node::expand_thunk): Don't expand
6503 instrumentation thunks.
6504
307bb9d5 65052015-04-02 Ilya Enkovich <ilya.enkovich@intel.com>
6506
6507 * config/i386/i386.c (ix86_expand_call): Avoid nested
6508 PARALLEL in returned call value.
6509
576be896 65102015-04-02 Ilya Enkovich <ilya.enkovich@intel.com>
6511
6512 * lto-cgraph.c (input_cgraph_1): Always link instrumented
6513 assembler name with original one.
6514
5b2e963f 65152015-04-02 Uros Bizjak <ubizjak@gmail.com>
6516
6517 * config/i386/i386.c (ix86_register_priority): Use AX_REG.
6518
cc16fdea 65192015-04-02 Uros Bizjak <ubizjak@gmail.com>
6520
6521 Revert parts of r216820.
6522 * config/i386/i386.md (movqi_internal): Correct type calculation
6523 for alternatives 3 and 5.
6524
c378948c 65252015-04-02 Jakub Jelinek <jakub@redhat.com>
6526
6527 PR preprocessor/61977
6528 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Don't
6529 predefine __vector/__bool/__pixel macros nor context sensitive
6530 macros for CLK_ASM.
6531 * config/spu/spu-c.c (spu_cpu_cpp_builtins): Similarly.
6532
1e237088 65332015-04-02 John David Anglin <danglin@gcc.gnu.org>
6534
6535 * config/pa/pa.c (pa_output_move_double): Directly handle register
6536 indexed memory operand. Simplify handling of scaled register indexed
6537 memory operands.
6538
556154e8 65392015-04-02 Ilya Enkovich <ilya.enkovich@intel.com>
6540
6541 PR driver/65444
6542 * config/i386/linux-common.h (MPX_SPEC): New.
6543 (CHKP_SPEC): Add MPX_SPEC.
6544 * doc/invoke.texi (-fcheck-pointer-boudns): Document
6545 possible issues with '-z bndplt' support in linker.
6546
cb5d0a18 65472015-04-02 Uros Bizjak <ubizjak@gmail.com>
6548
6549 * config/i386/sync.md (UNSPEC_FILD_ATOMIC, UNSPEC_FIST_ATOMIC): New.
6550 (loaddi_via_fpu): Use UNSPEC_FILD_ATOMIC.
6551 (storedi_via_fpu): Use UNSPEC_FIST_ATOMIC.
6552 * reg-stack.c (get_true_reg): Change UNSPEC_LDA to UNSPEC_FILD_ATOMIC.
6553 (subst_stack_regs_pat): Change UNSPEC_STA to UNSPEC_FIST_ATOMIC.
6554
3a88ed33 65552015-04-01 Uros Bizjak <ubizjak@gmail.com>
6556
6557 * config/i386/sync.md (UNSPEC_MOVA): Remove.
6558 (atomic_load<mode>): Change operand 0 predicate to
6559 nonimmediate_operand and fix up the destination when needed.
6560 Use UNSPEC_LDA.
6561 (atomic_loaddi_fpu): Use UNSPEC_LDA.
6562 (atomic_store<mode>): Change operand 1 predicate to
6563 nonimmendate_operand and move the source to register when needed.
6564 Use UNSPEC_STA.
6565 (atomic_store<mode>_1): Use UNSPEC_STA.
6566 (atomic_storedi_fpu): Change operand 1 to nonimmediate_operand.
6567 Fix moves from memory operand. Use UNSPEC_STA.
6568
dda86e31 65692015-04-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
6570
6571 * expmed.c (strict_volatile_bitfield_p): Check that the access will
6572 not cross a MODESIZE boundary.
6573 (store_bit_field, extract_bit_field): Added assertions in the
6574 strict volatile bitfields code path.
6575
7fc3fdaf 65762015-04-01 Max Ostapenko <m.ostapenko@partner.samsung.com>
6577
6578 PR target/65624
3a88ed33 6579 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
6580 Increase args array size by one to avoid buffer overflow.
7fc3fdaf 6581
71e37927 65822015-03-31 Jan Hubicka <hubicka@ucw.cz>
6583
6584 * lto-cgraph.c (lto_output_node, input_overwrite_node): Stream
6585 split_part.
6586 * ipa-inline.c (edge_badness): Add wrapper penalty.
6587 (sum_callers): Move up.
6588 (inline_small_functions): Set single_caller.
6589 * ipa-inline.h (inline_summary): Add single_caller.
6590 * ipa-split.c (split_function): Set split_part.
6591 (cgraph_node::create_clone): Do not shadow decl; copy split_part.
6592 * cgraph.h (cgraph_node): Add split_part.
6593
76cddb96 65942015-03-31 Uros Bizjak <ubizjak@gmail.com>
d2e9c252 6595
76cddb96 6596 PR target/58945
6597 * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
6598 Do not split operands 0 and operands 2 to halfmode.
6599 (atomic_compare_and_swap<mode>): Update for
6600 atomic_compare_and_swap<dwi>_doubleword changes.
6601
66022015-03-31 Jan Hubicka <hubicka@ucw.cz>
6603
6604 * tree.c (need_assembler_name_p): Artificial types have no ODR names.
d2e9c252 6605 * ipa-devirt.c (warn_odr): Do not try to apply ODR cache when
6606 no caching is done.
6607
0428647c 66082015-03-31 Martin Liska <mliska@suse.cz>
6609
6610 PR ipa/65557
6611 * ipa-icf.c (sem_function::equals_wpa): Check if IPA CP
6612 has already filled up function summary.
6613 (sem_item_optimizer::update_hash_by_addr_refs): Likewise.
6614
c75febdb 66152015-03-31 Richard Biener <rguenther@suse.de>
6616
6617 * tree-sra.c (create_access_replacement): Drop under-/over-alignment
6618 of types.
6619
06877232 66202015-03-31 Dominik Vogt <vogt@linux.vnet.ibm.com>
6621
6622 * config/s390/s390.c (s390_function_num_hotpatch_hw): Allow hotpatching
6623 nested functions.
6624 (s390_reorg): Adapt to new signature of s390_function_num_hotpatch_hw.
6625 (s390_asm_output_function_label): Adapt to new signature of
6626 s390_function_num_hotpatch_hw
6627 Optimise the code generating assembler output.
6628 Add comments to assembler file.
6629
305d4389 66302015-03-31 Richard Biener <rguenther@suse.de>
6631
6632 PR middle-end/65626
6633 * tree-cfgcleanup.c (fixup_noreturn_call): Only split the block
6634 of the noreturn call so it is last and cleanup_control_flow_bb
6635 can do the CFG part.
6636
4811e339 66372015-03-31 Ilya Enkovich <ilya.enkovich@intel.com>
6638
6639 PR target/65531
6640 * ipa-chkp.c (chkp_maybe_create_clone): Don't set
6641 same_comdat_group for external symbols.
6642 * symtab.c (symtab_node::verify_symtab_nodes): Avoid
6643 infinite same_comdat_group traversal loop.
6644
b67fc3b2 66452015-03-31 Jakub Jelinek <jakub@redhat.com>
6646
6647 PR plugins/61176
6648 * Makefile.in (install-plugin): Add all gcc/*.{h,def} files
6649 automatically to $headers.
6650
a467a47b 66512015-03-30 Jakub Jelinek <jakub@redhat.com>
6652
6653 PR ipa/65610
6654 * ipa-utils.h (inlined_polymorphic_ctor_dtor_block_p): Declare.
6655 * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p): New
6656 function.
6657 (decl_maybe_in_construction_p, noncall_stmt_may_be_vtbl_ptr_store):
6658 Use it.
6659 * ipa-prop.c (param_type_may_change_p): Likewise.
6660 * tree-ssa-live.c: Include ipa-utils.h and its dependencies.
6661 (remove_unused_scope_block_p): Add in_ctor_dtor_block
6662 argument. Before inlining, preserve
6663 inlined_polymorphic_ctor_dtor_block_p blocks and the outermost block
6664 with FUNCTION_DECL BLOCK_ABSTRACT_ORIGIN inside of them. Adjust
6665 recursive calls.
6666 (remove_unused_locals): Adjust remove_unused_scope_block_p caller.
6667
42d72e70 66682015-03-27 Jan Hubicka <hubicka@ucw.cz>
6669
6670 PR ipa/65076
6671 * ipa-inline.c (edge_badness): Base denominator on callee's
6672 grwoth squared.
6673
39fcd838 66742015-03-27 Martin Jambor <mjambor@suse.cz>
6675
6676 PR ipa/65478
6677 * params.def (PARAM_IPA_CP_RECURSION_PENALTY) : New.
6678 (PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise.
6679 * ipa-prop.h (ipa_node_params): New flags node_within_scc and
6680 node_calling_single_call.
6681 * ipa-cp.c (count_callers): New function.
6682 (set_single_call_flag): Likewise.
6683 (initialize_node_lattices): Count callers and set single_flag_call if
6684 necessary.
6685 (incorporate_penalties): New function.
6686 (good_cloning_opportunity_p): Use it, dump new flags.
6687 (propagate_constants_topo): Set node_within_scc flag if appropriate.
6688 * doc/invoke.texi (ipa-cp-recursion-penalty,
6689 ipa-cp-single-call-pentalty): Document.
6690
d1528ba2 66912015-03-27 Jan Hubicka <hubicka@ucw.cz>
6692
6693 PR ipa/65588
6694 * symtab.c (symtab_node::get_partitioning_class): Register vars
6695 are duplicated.
6696 * varpool.c (symbol_table::output_variables) Do not assemble unefined
6697 decls for non-symbols.
6698
017e92fb 66992015-03-27 H.J. Lu <hongjiu.lu@intel.com>
6700
6701 PR target/65248
6702 * output.h (default_binds_local_p_2): New.
6703 * varasm.c (default_binds_local_p_2): Renamed to ...
6704 (default_binds_local_p_3): This. Don't return true on protected
6705 data symbol if protected data may be external.
6706 (default_binds_local_p): Use default_binds_local_p_3.
6707 (default_binds_local_p_1): Likewise.
6708 (default_binds_local_p_2): New.
6709 * config/i386/i386.c (TARGET_BINDS_LOCAL_P): Set to
6710 default_binds_local_p_2 if TARGET_MACHO is undefined.
6711
5ee52e91 67122015-03-27 Jakub Jelinek <jakub@redhat.com>
6713
6714 PR target/65593
6715 * config/i386/i386.c (legitimize_pic_address): If base
6716 is SYMBOL_REF or LABEL_REF using %rip addressing, force
6717 it to reg to avoid PLUS of SYMBOL_REF/LABEL_REF and register.
6718
cabdaed9 67192015-03-27 Jan Hubicka <hubicka@ucw.cz>
6720
6721 PR target/65531
6722 * symtab.c (symtab_node::verify_symtab_nodes): Fix verification of
6723 comdat groups.
6724
bdbe7747 67252015-03-27 Jan Hubicka <hubicka@ucw.cz>
6726
6727 PR ipa/65600
6728 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Fix the case
6729 of optimized out indirect call.
6730 (redirect_to_unreachable): Always build symbol table node for
6731 BUILT_IN_UNREACHABLE
6732
ec44a0da 67332015-03-27 Vladimir Makarov <vmakarov@redhat.com>
6734
6735 PR target/65407
6736 * ira-costs.c (record_reg_classes): Process all constraint string
6737 containing 0-9.
6738
96d2bfe0 67392015-03-27 Bernd Schmidt <bernds@codesourcery.com>
6740
ed22b540 6741 * config/c6x/c6x.md (movmisalign<mode>): Use MEM_P, not
6742 memory_operand.
6743
96d2bfe0 6744 PR target/65052
9adfaa03 6745 * config/c6x/constraints.md (S3): New constraint.
6746 * config/c6x/c6x.md (real_jump): Use it.
96d2bfe0 6747
c6d4472f 67482015-03-26 Jan Hubicka <hubicka@ucw.cz>
6749
6750 PR middle-end/65595
6751 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Only
6752 do redirection if the call is not optimized out.
6753
04dd26f6 67542015-03-27 Ilya Enkovich <ilya.enkovich@intel.com>
6755
6756 PR target/65495
6757 * c-family/c.opt (fcheck-pointer-bounds): List supported languages.
6758 (fchkp-check-incomplete-type): Add LTO.
6759 (fchkp-zero-input-bounds-for-main): Likewise.
6760 (fchkp-first-field-has-own-bounds): Likewise.
6761 (fchkp-narrow-bounds): Likewise.
6762 (fchkp-narrow-to-innermost-array): Likewise.
6763 (fchkp-use-static-bounds): Likewise.
6764 (fchkp-use-static-const-bounds): Likewise.
6765 (fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
6766
df84cd8e 67672015-03-27 Marek Polacek <polacek@redhat.com>
6768
6769 * gimple-iterator.h (gsi_prev_nondebug): Fix typo.
6770
83973b1b 67712015-03-27 Marek Polacek <polacek@redhat.com>
6772
6773 PR sanitizer/65583
6774 * ubsan.c (ubsan_create_edge): New function.
6775 (instrument_bool_enum_load): Call it.
6776 (instrument_nonnull_arg): Likewise.
6777 (instrument_nonnull_return): Likewise.
6778 (instrument_object_size): Likewise.
6779
31942707 67802015-03-26 Jan Hubicka <hubicka@ucw.cz>
6781
6782 * lto-streamer.h (class lto_location_cache): Turn loc_cache into
6783 auto_vec.
6784
97c2a3aa 67852015-03-26 Jan Hubicka <hubicka@ucw.cz>
6786
6787 PR lto/65536
6788 * lto-streamer.h (class lto_location_cache): New.
6789 (struct data_in): Add location_cache.
6790 (lto_input_location): Update prototype.
6791 (stream_input_location_now): New.
6792 * streamer-hooks.h (struct streamer_hooks): Make input_location to take
6793 pointer to location.
6794 (stream_input_location): Update.
6795 * ipa-devirt.c: Include streamer-hooks.h and lto-streamer.h
6796 (warn_odr): Apply location cache before warning.
6797 (lto_input_location): Update prototype.
6798 * gimple-streamer-in.c (input_phi, input_gimple_stmt):
6799 Use stream_input_location_now.
6800 * lto-streamer-in.c (lto_location_cache::current_cache): New static
6801 variable.
6802 (lto_location_cache::cmp_loc): New function.
6803 (lto_location_cache::apply_location_cache): New function.
6804 (lto_location_cache::accept_location_cache): New function.
6805 (lto_location_cache::revert_location_cache): New function.
6806 (lto_location_cache::input_location): New function.
6807 (lto_input_location): Do location caching.
6808 (stream_input_location_now): New function.
6809 (input_eh_region, input_struct_function_base): Use
6810 stream_input_location_now.
6811 (lto_data_in_create): use new.
6812 (lto_data_in_delete): Use delete.
6813 * tree-streamer-in.c (unpack_ts_block_value_fields,
6814 unpack_ts_omp_clause_value_fields, streamer_read_tree_bitfields,
6815 lto_input_ts_exp_tree_pointers): Update for cached location api.
6816
73594827 68172015-03-26 Jan Hubicka <hubicka@ucw.cz>
6818
6819 PR ipa/65076
6820 * passes.def: Add pass_nothrow.
6821 * ipa-pure-const.c: (pass_data_nothrow): New.
6822 (pass_nothrow): New.
6823 (pass_nothrow::execute): New.
6824 (make_pass_nothrow): New.
6825 * tree-pass.h (make_pass_nothrow): Declare.
6826
99fe8cbd 68272015-03-26 Jan Hubicka <hubicka@ucw.cz>
6828
6829 * ipa-inline-analysis.c (redirect_to_unreachable): Be prepared for
6830 edge to change by speculation resolution or redirection.
6831 (edge_set_predicate): Likewise.
6832 (inline_summary_t::duplicate): Likewise.
6833 (remap_edge_summaries): Likewise.
6834
c0abb913 68352015-03-26 Jan Hubicka <hubicka@ucw.cz>
6836
6837 * ipa-inline.c (check_maybe_up, check_maybe_down, check_match):
6838 New macros.
6839 (can_inline_edge_p): Relax option matching for always inline functions.
6840
648b0c25 68412015-03-26 Uros Bizjak <ubizjak@gmail.com>
6842
6843 PR target/65561
6844 * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm):
6845 Check operand 4 and operand 0 for equality.
6846 (avx512f_vextract<shuffletype>32x4_1_maskm):
6847 Check operand 6 and operand 0 for equality.
6848 (vec_extract_lo_<mode>_maskm): Check operand 2 and operand 0
6849 for equality.
6850 (vec_extract_hi_<mode>_maskm): Ditto.
6851
bfbaf6bb 68522015-03-26 Jan Hubicka <hubicka@ucw.cz>
6853
6854 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not bring
6855 dead calls back to live.
6856 (cgraph_edge::verify_count_and_frequency): Move cgraph/cfg frequency
6857 cross check to ...
6858 (cgraph_node::verify_node): ... here; verify only callee edges,
6859 not caller.
75059f14 6860 * cif-code.def (CILK_SPAWN): New code.
bfbaf6bb 6861
e806c56f 68622015-03-26 Jan Hubicka <hubicka@ucw.cz>
6863
6864 * ipa-inline-analysis.c (redirect_to_unreachable): New function.
6865 (edge_set_predicate): Use it to mark unreachable edges.
6866 (inline_summary_t::duplicate): Remove unnecesary code.
6867 (remap_edge_summaries): Likewise.
6868 (dump_inline_summary): Report contains_cilk_spawn.
6869 (compute_inline_parameters): Compute contains_cilk_spawn.
6870 (inline_read_section, inline_write_summary): Stream
6871 contains_cilk_spawn.
648b0c25 6872 * ipa-inline.c (can_inline_edge_p): Do not touch
e806c56f 6873 DECL_STRUCT_FUNCTION that may not be available;
6874 use CIF_CILK_SPAWN for cilk; fix optimization attribute checks;
6875 remove check for callee_fun->can_throw_non_call_exceptions and
6876 replace it by optimization attribute check; check for flag_exceptions.
6877 * ipa-inline-transform.c (inline_call): Maintain
6878 DECL_FUNCTION_PERSONALITY
6879 * ipa-inline.h (inline_summary): Add contains_cilk_spawn.
6880
9f9cf897 68812015-03-26 Jakub Jelinek <jakub@redhat.com>
6882
6883 PR tree-optimization/65551
6884 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use
6885 TYPE_PRECISION only for INTEGRAL_TYPE_P types.
6886
649cf3c4 68872015-03-26 Richard Biener <rguenther@suse.de>
6888
6889 PR middle-end/65555
6890 * tree-cfg.c (verify_gimple_call): Do not require a call to
6891 have no LHS if it wasn't recognized as control altering yet.
6892
a5833d42 68932015-03-26 Jakub Jelinek <jakub@redhat.com>
6894
ece434d4 6895 PR tree-optimization/64715
648b0c25 6896 * passes.def: Add another instance of pass_object_sizes before ccp1.
ece434d4 6897 * tree-object-size.c (pass_object_sizes::execute): In
6898 first_pass_instance, only handle __bos (, 1) and __bos (, 3)
6899 calls, and keep the call in the IL, as {MIN,MAX}_EXPR of the
6900 __bos result and the computed constant. Remove redundant
6901 checks, obsoleted by gimple_call_builtin_p test.
6902
a5833d42 6903 * var-tracking.c (variable_tracking_main_1): Don't track
6904 variables for targetm.no_register_allocation targets.
6905
6131e186 69062015-03-26 Oleg Endo <olegendo@gcc.gnu.org>
6907
6908 * config/sh/t-linux (DEFAULT_ENDIAN, MULTILIB_EXCEPTIONS): Remove.
6909 * config/sh/t-sh (MULTILIB_EXCEPTIONS): Handle default endian.
6910
3f26f29d 69112015-03-25 Michael Meissner <meissner@linux.vnet.ibm.com>
6912
6913 PR target/65569
6914 * config/rs6000/rs6000.md (extenddftf2_fprs): On VSX systems use
6915 XXLXOR to create 0.0. On pre-VSX systems make sure the constant
6916 0.0 is correctly setup.
6917 (extenddftf2_internal): Likewise.
6918
9e0d85a7 69192015-03-25 Sebastian Pop <s.pop@samsung.com>
6920
6921 PR tree-optimization/65177
6922 * tree-ssa-threadupdate.c (verify_seme): Renamed verify_jump_thread.
6923 (bb_in_bbs): New.
6924 (duplicate_seme_region): Renamed duplicate_thread_path. Redirect all
6925 edges not adjacent on the path to the original code.
6926
65128e00 69272015-03-25 Uros Bizjak <ubizjak@gmail.com>
6928
6929 PR bootstrap/65537
6930 * doc/install.texi (Building a native compiler): Document new
6931 bootstrap-lto-noplugin configuration. Mention that bootstrap-lto
6932 configuration assumes that the host supports the linker plugin.
6933
a1406e97 69342015-03-25 Ilya Enkovich <ilya.enkovich@intel.com>
6935
6936 PR target/65508
6937 * tree-chkp.c (chkp_add_bounds_to_call_stmt): Set static
6938 chain for generated call.
6939
c917f44f 69402015-03-25 Richard Biener <rguenther@suse.de>
6941
6942 * passes.c (pass_manager::execute_early_local_passes): Guard
6943 execution of pass_chkp_instrumentation_passes with
6944 flag_check_pointer_bounds.
6945 (pass_chkp_instrumentation_passes::gate): Likewise.
6946
50399213 69472015-03-25 Martin Liska <mliska@suse.cz>
6948
6949 PR tree-optimization/65538
6950 * symbol-summary.h (function_summary::~function_summary):
6951 Relese memory for allocated summaries.
6952 (function_summary::release): New function.
6953
35fafcb2 69542015-03-25 Jakub Jelinek <jakub@redhat.com>
6955
6956 PR lto/65515
6957 * lto-streamer-out.c (DFS::worklist): New struct.
6958 (DFS::worklist_vec): New data member.
6959 (DFS::next_dfs_num): Remove.
6960 (DFS::DFS): Rewritten using worklist instead of recursion,
6961 using most of code from DFS::DFS_write_tree.
6962 (DFS::DFS_write_tree_body): Remove SINGLE_P argument, don't
6963 pass it to DFS_write_tree calls.
6964 (DFS::DFS_write_tree): Remove SINGLE_P argument, after
6965 quick initial checks push it into worklist_vec and return.
6966
20617a2b 69672015-03-25 Richard Biener <rguenther@suse.de>
6968
6969 PR middle-end/65519
6970 * genmatch.c (expr::gen_transform): Re-write to avoid
6971 using gimple_build.
6972
b958105b 69732015-03-25 Bin Cheng <bin.cheng@arm.com>
6974
6975 * doc/sourcebuild.texi (arm_tune_string_ops_prefer_neon): New.
6976
0c2a1f1d 69772015-03-25 Bin Cheng <bin.cheng@arm.com>
6978
6979 * config/arm/arm.opt (print_tune_info): New option.
6980 * config/arm/arm.c (arm_print_tune_info): New function.
6981 (arm_file_start): Call arm_print_tune_info.
6982 * config/arm/arm-protos.h (struct tune_params): Add comment.
6983 * doc/invoke.texi (@item -mprint-tune-info): New item.
6984 (-mtune): mention it in ARM Option Summary.
6985
40d1c891 69862015-03-25 DJ Delorie <dj@redhat.com>
6987
6988 * config/rl78/rl78.c (rl78_print_operand_1): Move 'p' test to
6989 correct clause.
6990
4a34b76a 69912015-03-24 Jan Hubicka <hubicka@ucw.cz>
6992 Martin Liska <mliska@suse.cz>
6993
6994 * ipa-icf-gimple.h (return_with_result): Add missing colon to dump.
6995 * ipa-icf.c (sem_function::get_hash): Hash new declaration properties.
6996 (sem_item::add_type): New function.
6997 (sem_function::hash_stmt): Add TREE_TYPE of gimple_op.
6998 (sem_function::compare_polymorphic_p): Do not consider indirect calls.
6999 (sem_item_optimizer::update_hash_by_addr_refs): Add ODR type to hash.
7000 (sem_function::equals_wpa): Fix typo.
7001 * ipa-icf.h (sem_item::add_type): New function.
7002 (symbol_compare_hashmap_traits): Replace hashing of pointer with symbol
7003 order.
7004
8979d917 70052015-03-24 Jakub Jelinek <jakub@redhat.com>
7006
7007 PR tree-optimization/65533
7008 * tree-vect-slp.c (vect_build_slp_tree): Before re-trying
7009 with swapped operands, call vect_free_slp_tree on
7010 SLP_TREE_CHILDREN of child and truncate the SLP_TREE_CHILDREN
7011 vector.
7012
8d85945e 70132015-03-24 Richard Biener <rguenther@suse.de>
7014
7015 PR middle-end/65517
7016 * tree-cfg.c (remove_edge_and_dominated_blocks): Mark loops
7017 for fixup if necessary.
7018
fbaafbe6 70192015-03-23 Sandra Loosemore <sandra@codesourcery.com>
7020
7021 * doc/extend.texi (Function Attributes): Add @cindex entries
7022 for all attributes and regularize their format. Delete text
7023 about long-obsolete 68HC11 and 68HC12 targets. Move misplaced
7024 information about "eightbit_data", "tiny_data", and "model"
7025 variable attributes to the Variable Attributes section. Fix
7026 some obvious typos and copy-editing issues.
7027 (Variable Attributes, Type Attributes): Likewise add/fix
7028 @cindex entries for all attributes.
7029
0bf92752 70302015-03-23 Jakub Jelinek <jakub@redhat.com>
7031
7032 PR target/65523
7033 * tree-chkp.c (chkp_build_returned_bound): Ignore
7034 ERF_RETURNS_ARG calls if they have fewer than needed arguments.
7035
dfc7d67d 70362015-03-23 Oleg Endo <olegendo@gcc.gnu.org>
7037
7038 PR target/65505
7039 * config/sh/predicates.md (simple_mem_operand,
7040 displacement_mem_operand): Add test for reg.
7041 (short_displacement_mem_operand): Test for displacement_mem_operand
7042 before invoking sh_disp_addr_displacement.
7043 * config/sh/constraints.md (Sdd, Sra): Simplify.
7044 * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1):
7045 Remove redundant displacement_mem_operand tests.
7046
9b55c016 70472015-03-23 Georg-Johann Lay <avr@gjlay.de>
7048
7049 PR target/65296
7050 * config/avr/driver-avr.c (avr_devicespecs_file): Allow to specify
7051 the same -mmcu=MCU more than once.
7052
391ddbe7 70532015-03-23 Jakub Jelinek <jakub@redhat.com>
7054
3dc4e652 7055 PR bootstrap/65522
7056 * ipa-devirt.c: Remove duplicate demangle.h include.
7057
391ddbe7 7058 PR target/65504
7059 * config/i386/i386.c (ix86_copy_addr_to_reg): Set REG_POINTER
7060 on the pseudo.
7061 (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Set
7062 REG_POINTER on *destptr after adjusting it for prologue size.
418d75c4 7063
7064 PR ipa/65521
7065 * ipa-icf.c (sem_item::update_hash_by_addr_refs): Hash
7066 ultimate_alias_target ()->order ints instead of
7067 ultimate_alias_target () pointers.
7068
789e6149 70692015-03-23 Richard Biener <rguenther@suse.de>
7070
7071 PR tree-optimization/65518
7072 * tree-vect-stmts.c (vectorizable_load): Reject single-element
7073 interleaving cases we generate absymal code for.
7074
bad02805 70752015-03-23 Richard Biener <rguenther@suse.de>
7076
7077 PR tree-optimization/65494
7078 * tree-vect-slp.c (vect_build_slp_tree): Do not (re-)allocate
7079 matches here.
7080 (vect_analyze_slp_instance): But do that here, always and once.
7081
bd725039 70822015-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7083
7084 * expmed.c (synth_mult): Fix comment about multiplying by T-1 and
7085 adding T or multiplying by T+1 and subracting T.
7086
d2ac64b1 70872015-03-22 Jeff Law <law@redhat.com>
7088
7089 PR rtl-optimization/64317
7090 * Makefile.in (OBJS): Add gcse-common.c
7091 * gcse.c: Include gcse-common.h
7092 (struct modify_pair_s): Move structure definition to gcse-common.h
7093 (compute_transp): Move function to gcse-common.c.
7094 (canon_list_insert): Similarly.
7095 (record_last_mem_set_info): Break out some code and put it into
7096 gcse-common.c. Call into the new common code.
7097 (compute_local_properties): Pass additional arguments to compute_transp.
7098 * postreload-gcse.c: Include gcse-common.h and df.h
7099 (modify_mem_list_set, blocks_with_calls): New variables.
7100 (modify_mem_list, canon_modify_mem_list, transp): Likewise.
7101 (get_bb_avail_insn): Pass in the expression index too.
7102 (alloc_mem): Allocate memory for the new bitmaps and lists.
7103 (free_mem): Free memory for the new bitmaps and lists.
7104 (insert_expr_in_table): Record a bitmap index for each entry we
7105 add to the table.
7106 (record_last_mem_set_info): Call into common code in gcse-common.c.
7107 (get_bb_avail_insn): If no available insn was found in the requested
7108 BB. If BB has a single predecessor, see if the expression is
7109 transparent in BB and available in that single predecessor.
7110 (compute_expr_transp): New wrapper for compute_transp.
7111 (eliminate_partially_redundant_load): Pass expression's bitmap_index
7112 to get_bb_avail_insn. Compute next_pred_bb_end a bit later.
7113 (gcse_after_reload_main): If there are elements in the hash table,
7114 then compute transparency for all the elements in the hash table.
7115 * gcse-common.h: New file.
7116 * gcse-common.c: New file.
7117
e3bc09a1 71182015-03-22 Sandra Loosemore <sandra@codesourcery.com>
7119
7120 * doc/cpp.texi (Search Path): Hyphenate "command-line" when used
7121 as an adjective.
7122 (System Headers): Likewise.
7123 (Ifdef): Likewise.
7124 (Traditional macros): Likewise.
7125 (Invocation): Likewise.
7126 (Option Index): Likewise.
7127 * doc/cppopts.texi (-M): Likewise.
7128 (-finput-charset): Likewise.
7129 (--help): Likewise.
7130 * doc.invoke.texi (AVR Options): Likewise.
7131 (V850 Options): Likewise.
ca0a430a 7132
bcdf9a31 71332015-03-22 Jan Hubicka <hubicka@ucw.cz>
7134
7135 PR ipa/65475
7136 * ipa-devirt.c: Include demangle.h
7137 (odr_type_d): Add field rtti_broken.
7138 (odr_subtypes_equivalent_p): Do not require name to match.
7139 (compare_virtual_tables): Fix typo; if type already has ODR violation,
7140 bypass the tests; be ready for function referneces in vtables that are
7141 not DECL_VIRTUAL; make warnings to be OPT_Wodr.
7142 (warn_odr): Give up for nameless types.
7143 (warn_types_mismatch): Report mismatch in mangled names;
7144 report mismatch in anonymous namespaces; look into component types to
7145 give useful error; report when mismatch is dragged in from other ODR
7146 type.
7147 (odr_types_equivalent_p): Match types for being polymorphic; avoid
7148 duplicated diagnostics.
7149 (add_type_duplicate): Reorder checks so more informative ones come
7150 first; fix typo; do not output "the extra base is defined here" when
7151 we did not warn.
7152 (BINFO_N_BASE_BINFOS): Relax sanity check.
db981b59 7153
bcdf9a31 71542015-03-22 Martin Liska <mliska@suse.cz>
db981b59 7155 Jakub Jelinek <jakub@redhat.com>
7156
7157 * config/i386/i386.c (def_builtin): Set deferred_isa_values for
7158 masks that can potentially include a builtin.
7159 (ix86_add_new_builtins): Introduce fast filter for isa values
7160 that cannot trigger builtin inclusion.
7161
4765f5e5 71622015-03-22 Martin Liska <mliska@suse.cz>
7163
7164 * ipa-icf.c (sem_item::update_hash_by_addr_refs): New function.
7165 (sem_item::update_hash_by_local_refs): Likewise.
7166 (sem_variable::get_hash): Empty line is fixed.
7167 (sem_item_optimizer::execute): Include adding of hash references.
7168 (sem_item_optimizer::update_hash_by_addr_refs): New function.
7169 (sem_item_optimizer::build_hash_based_classes): Use local hash.
7170 * ipa-icf.h (sem_item::update_hash_by_addr_refs): New function.
7171 (sem_item::update_hash_by_local_refs): Likewise.
7172
f300163e 71732015-03-20 Jan Hubicka <hubicka@ucw.cz>
7174
7175 PR ipa/65502
7176 * ipa-comdats.c (enqueue_references): Walk through thunks.
7177 (ipa_comdats): Likewise.
7178 (set_comdat_group_1): New function.
7179
98fec08e 71802015-03-20 Jan Hubicka <hubicka@ucw.cz>
7181
7182 PR ipa/65475
7183 * ipa-devirt.c (add_type_duplicate): Prevail polymorphic type over
7184 non-polymorphic
7185
19402f57 71862015-03-22 Dave Korn <dave.korn.cygwin@gmail.com>
7187 Gerald Pfeifer <gerald@pfeifer.com>
7188
7189 * doc/contrib.texi (Contributors): Update entry for Danny Smith.
7190
c1fc07cd 71912015-03-21 Chung-Lin Tang <cltang@codesourcery.com>
7192 Sandra Loosemore <sandra@codesourcery.com>
7193
7194 * config/nios2/nios2-protos.h (nios2_adjust_call_address): Adjust
7195 function parameter declaration.
7196 * config/nios2/nios2.md (call,call_value,sibcall,sibcall_value):
7197 Update arguments to nios2_adjust_call_address().
7198 (sibcall_internal): Rename from *sibcall.
7199 (sibcall_value_internal): Rename from *sibcall_value.
7200 * config/nios2/nios2.c (nios2_emit_add_constant): New function.
7201 (nios2_large_got_address): Add target temp reg parameter.
7202 (nios2_got_address): Adjust call to nios2_large_got_address, add
7203 force_reg around it.
7204 (nios2_load_pic_address): Add target temp reg parameter, replace call
7205 to nios2_got_address with corresponding code.
7206 (nios2_legitimize_constant_address): Update call to
7207 nios2_load_pic_address.
7208 (nios2_adjust_call_address): Add temp reg parameter, update PIC case
7209 to use temp reg for PIC loading purposes.
7210 (nios2_asm_output_mi_thunk): Implement TARGET_ASM_OUTPUT_MI_THUNK.
7211 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
7212 (TARGET_ASM_OUTPUT_MI_THUNK): Likewise.
7213
066432fc 72142015-03-21 Sandra Loosemore <sandra@codesourcery.com>
7215
7216 * doc/invoke.texi (-fno-diagnostics-show-caret): Fix
7217 usage of "the @option{...}".
7218 (-Wopenmp-simd): Likewise.
7219 (-fsanitize-recover): Likewise.
7220 (-fsanitize-undefined-trap-on-error): Likewise.
7221 (-flto): Likewise.
7222 (tracer-dynamic-coverage-feedback): Likewise.
7223 (reorder-block-duplicate-feedback): Likewise.
7224 (loop-unroll-jam-size): Likewise.
7225 (-B): Likewise.
7226 (-I-): Likewise.
7227 (-mabs=legacy): Likewise.
7228 (-mupper-regs-df): Likewise.
7229 (-mupper-regs-sf): Likewise.
7230 (-mpointers-to-nested-functions): Likewise.
7231
6d47499c 72322015-03-21 Sandra Loosemore <sandra@codesourcery.com>
7233
7234 * doc/extend.texi (Cilk Plus Builtins): Add markup.
7235
d61629c3 72362015-03-21 Sandra Loosemore <sandra@codesourcery.com>
7237
7238 * doc/invoke.texi (-fcheck-pointer-bounds): Copy-edit, add
7239 additional index entries and cross-references.
7240 (-fchkp-check-incomplete-type): Likewise.
7241 (-fchkp-first-field-has-own-bounds): Likewise.
7242 (-fchkp-narrow-to-innermost-array): Likewise.
7243 (-fchkp-use-fast-string-functions): Likewise.
7244 (-fchkp-use-nochk-string-functions): Likewise.
7245 (-fchkp-use-static-const-bounds): Likewise.
7246 (-fchkp-treat-zero-dynamic-size-as-infinite): Likewise.
7247 (-fchkp-instrument-marked-only): Likewise.
7248 (-fchkp-use-wrappers): Likewise.
7249 (-static-libmpx): Likewise.
7250 (-static-libmpxwrappers): Likewise.
7251 * doc/extend.texi (bnd_legacy): Likewise.
7252 (bnd_instrument): Likewise.
7253 (bnd_variable_size): Likewise.
7254 (Pointer Bounds Checker builtins): Likewise.
7255
66460ec1 72562015-03-21 Tom de Vries <tom@codesourcery.com>
7257
7258 PR tree-optimization/65458
7259 * cgraph.c (cgraph_node::dump): Handle parallelized_function field.
7260 * cgraph.h (cgraph_node): Add parallelized_function field.
7261 * lto-cgraph.c (lto_output_node): Write parallelized_function field.
7262 (input_overwrite_node): Read parallelized_function field.
7263 * omp-low.c (expand_omp_taskreg, finalize_task_copyfn): Set
7264 parallelized_function on cgraph_node for child_fn.
7265 * tree-parloops.c: Add include of plugin-api.h, ipa-ref.h and cgraph.h.
7266 Remove include of gt-tree-parloops.h.
7267 (parallelized_functions): Remove static variable.
7268 (parallelized_function_p): Rewrite using parallelized_function field of
7269 cgraph_node.
7270 (create_loop_fn): Remove adding to parallelized_functions.
7271 * Makefile.in (GTFILES): Remove tree-parloops.c
7272
70ae5dc6 72732015-03-20 Vladimir Makarov <vmakarov@redhat.com>
7274
7275 PR rtl-optimization/64366
7276 * lra.c (lra_update_insn_regno_info): Consider regs in
7277 CALL_INSN_FUNCTION_USAGE memory.
7278
24a12d10 72792015-03-20 Richard Biener <rguenther@suse.de>
7280
7281 PR middle-end/64715
7282 * tree-chrec.c (chrec_fold_poly_cst): Use useless_type_conversion_p
7283 for type comparison and gcc_checking_assert.
7284 (chrec_fold_plus_poly_poly): Likewise.
7285 (chrec_fold_multiply_poly_poly): Likewise.
7286 (chrec_convert_1): Likewise.
7287 * gimplify.c (gimplify_expr): Remove premature folding of
7288 &X + CST to &MEM[&X, CST].
7289
0f3771a4 72902015-03-20 Jan Hubicka <hubicka@ucw.cz>
7291
7292 * ipa-inline.c (can_inline_edge_p): Short circuit if inline_failed
7293 already is final.
7294 (ipa_inline): Recompute inline_failed codes.
7295 * cif-code.def (FUNCTION_NOT_OPTIMIZED, REDEFINED_EXTERN_INLINE,
ca0a430a 7296 USES_COMDAT_LOCAL, ATTRIBUTE_MISMATCH, UNREACHABLE): Declare as
0f3771a4 7297 CIF_FINAL_ERROR.
7298
6805b310 72992015-03-20 Uros Bizjak <ubizjak@gmail.com>
7300
7301 PR rtl-optimization/60851
7302 * recog.c (constrain_operands): Accept a pseudo register before reload
7303 for LRA enabled targets.
7304
2d5ee2b9 73052015-03-19 Michael Meissner <meissner@linux.vnet.ibm.com>
7306
7307 PR target/65240
7308 * config/rs6000/predicates.md (easy_fp_constant): Remove special
7309 -ffast-math handling that kept non-0 constants live in the RTL
7310 until reload. Remove logic testing the number of instructions it
7311 took to create a constant in a GPR that was never used, due to a
7312 test for soft-float earlier.
7313 (memory_fp_constant): Delete, no longer used.
7314
7315 * config/rs6000/rs6000.md (mov<MODE>_hardfloat): Remove
7316 alternatives for loading non-0 constants into GPRs for hard
7317 floating point that is no longer needed due to changes in
7318 easy_fp_constant. Add support for loading 0.0 into GPRs.
7319 (mov<mode>_hardfloat32): Likewise.
7320 (mov<mode>_hardfloat64): Likewise.
7321 (mov<mode>_64bit_dm): Likewise.
7322 (movtd_64bit_nodm): Likewise.
7323 (pre-reload move FP constant define_split): Delete define_split,
7324 since it is no longer used.
7325 (extenddftf2_internal): Remove GHF constraints that are not valid
7326 for extenddftf2.
7327
b6c42921 73282015-03-19 Vladimir Makarov <vmakarov@redhat.com>
7329
7330 PR rtl-optimization/63491
7331 * lra-constraints.c (check_and_process_move): Use src instead of
7332 sreg. Remove some dead code.
7333
bfdab17d 73342015-03-19 Jan Hubicka <hubicka@ucw.cz>
7335
7336 PR ipa/65380
7337 * ipa-icf.c (sem_function::merge): Do not merge DECL_EXTERNAL symbols.
7338 (sem_variable::merge): Likewise.
7339
50671005 73402015-03-19 Martin Liska <mliska@suse.cz>
7341
7342 PR ipa/65465
7343 * cgraphunit.c (cgraph_node::create_wrapper): Correctly reset
7344 all fields of cgraph_thunk_info.
7345
ac553c65 73462015-03-19 Ilya Enkovich <ilya.enkovich@intel.com>
7347
7348 * ipa-chkp.c (chkp_maybe_create_clone): Don't try to
7349 clone instrumented thunks.
7350
89e4e54e 73512015-03-19 Richard Biener <rguenther@suse.de>
7352
7353 Revert
7354 2015-03-10 Richard Biener <rguenther@suse.de>
7355
7356 PR middle-end/63155
7357 * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
7358 * tree-ssa-coalesce.c: Include timevar.h.
7359 (attempt_coalesce): Handle graph being NULL.
7360 (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
7361 Split out abnormal coalescing to ...
7362 (perform_abnormal_coalescing): ... this function.
7363 (coalesce_ssa_name): Perform abnormal coalescing without computing
7364 live/conflict.
7365 (verify_ssa_coalescing_worker): New function.
7366 (verify_ssa_coalescing): Likewise.
7367
a691030f 73682015-03-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
7369 Jakub Jelinek <jakub@redhat.com>
7370
7371 PR sanitizer/65400
7372 * tsan.c (instrument_gimple): Clear tail call flag on
7373 calls.
7374
a63cfc4d 73752015-03-19 Jakub Jelinek <jakub@redhat.com>
7376
7377 PR sanitizer/65400
7378 * ipa-split.c (find_return_bb): Allow TSAN_FUNC_EXIT internal
7379 call in the return bb.
7380 (find_split_points): Add RETURN_BB argument, don't call
7381 find_return_bb.
7382 (split_function): Likewise. Add ADD_TSAN_FUNC_EXIT argument,
7383 if true append TSAN_FUNC_EXIT internal call after the call to
7384 the split off function.
7385 (execute_split_functions): Call find_return_bb here.
7386 Don't optimize if TSAN_FUNC_EXIT is found in unexpected places.
7387 Adjust find_split_points and split_function calls.
7388
86697850 73892015-03-18 DJ Delorie <dj@redhat.com>
b6c42921 7390
86697850 7391 * config/rl78/rl78-virt.md (andqi3_virt): Allow far operands.
7392 (iorqi3_virt): Likewise.
7393
4abc36e8 73942015-03-18 Tom de Vries <tom@codesourcery.com>
7395
7396 * tree-parloops.c (parallelize_loops): Make static.
7397 * tree-parloops.h (parallelize_loops): Remove extern declaration.
7398
648877c4 73992015-03-18 Andrew Stubbs <ams@codesourcery.com>
7400
7401 PR middle-end/64491
7402 Revert:
7403 2014-11-20 Andrew Stubbs <ams@codesourcery.com>
7404
7405 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Warn if a loop
7406 condition would be removed due to undefined behaviour.
7407
a5258856 74082015-03-18 Martin Liska <mliska@suse.cz>
7409
7410 PR ipa/65432
7411 * cgraph.c (cgraph_node::get_create): Remove unnecessary
7412 xstrdup_for_dump wrapper.
7413 * ipa-icf.c (sem_item::dump): Use symtab_node::name instead of
7414 sem_item::name.
7415 (sem_function::equals): Wrap symtab_node::name and symtab_node::asm_name
7416 with xstrdup_for_dump.
7417 (sem_variable::equals): Likewise.
7418 (sem_item_optimizer::read_section): Use symtab_node::name instead of
7419 sem_item::name.
7420 (sem_item_optimizer::parse_funcs_and_vars): Likewise.
7421 (sem_item_optimizer::merge_classes): Wrap symtab_node::name and
7422 symtab_node::asm_name with xstrdup_for_dump.
7423 (congruence_class::dump): Use symtab_node::name instead of
7424 sem_item::name.
7425 * ipa-icf.h (symtab_node::name): Remove.
7426 (symtab_node::asm_name): Likewise.
7427
5b01b2c1 74282015-03-18 Jakub Jelinek <jakub@redhat.com>
7429
4a2edd22 7430 PR tree-optimization/65450
7431 * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): New
7432 function.
7433 (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr): Use
7434 it instead of duplicate_ssa_name_ptr_info.
7435
5b01b2c1 7436 PR target/65222
7437 * doc/invoke.texi: Add knl as x86 -march=/-mtune= CPU type.
7438
eb352584 74392015-03-18 Richard Biener <rguenther@suse.de>
7440
7441 * tree-data-ref.h (struct access_matrix): Remove.
7442 (AM_LOOP_NEST, AM_NB_INDUCTION_VARS, AM_PARAMETERS, AM_MATRIX,
7443 AM_NB_PARAMETERS, AM_CONST_COLUMN_INDEX, AM_NB_COLUMNS,
7444 AM_GET_SUBSCRIPT_ACCESS_VECTOR, AM_GET_ACCESS_MATRIX_ELEMENT): Likewise.
7445 (am_vector_index_for_loop): Likewise.
7446 (struct data_reference): Remove access_matrix member.
7447 (DR_ACCESS_MATRIX): Remove.
7448 (lambda_vector_new): Add comment.
7449 (lambda_matrix_new): Use XOBNEWVEC.
7450
051d7389 74512015-03-18 Richard Biener <rguenther@suse.de>
7452
7453 * tree-ssa-loop-ch.c (pass_data_ch): Remove TODO_cleanup_cfg.
7454 (pass_ch::execute): Cleanup the CFG only if we did sth.
7455 * tree-vect-generic.c (pass_data_lower_vector): Remove TODO_cleanup_cfg.
7456
68eaff07 74572015-03-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7458
7459 * expmed.c (synth_mult): Use std::swap instead of manually
7460 swapping algorithms.
7461
f02daedb 74622015-03-18 Jakub Jelinek <jakub@redhat.com>
7463
7464 PR target/65078
7465 * config/i386/sse.md (movsi/movdi -> vec_extract_*_0 splitter): New.
7466
22e771f8 74672015-03-16 Georg-Johann Lay <avr@gjlay.de>
7468
7469 PR target/65296
7470 * config/avr/avr.opt (-nodevicelib): New option.
7471 * doc/invoke.texi (AVR Options): Document it.
7472 * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC) [avr1]: Don't link
7473 libgcc.a, libc.a, libm.a.
7474 * config/avr/specs.h: Same.
7475 * config/avr/gen-avr-mmcu-specs.c (print_mcu): Don't print specs
7476 which don't (directly) depend on the device. Print more help.
7477 (*avrlibc_devicelib) [-nodevicelib]: Don't link libdev.a.
7478 (*cpp): Don't define __AVR_DEV_LIB_NAME__.
7479 * config/avr/driver-avr.c: Remove -nodevicelib from option list in
7480 case of an error.
7481 (avr_devicespecs_file): Use suffix "%s" instead of absolute path
7482 for specs file name.
7483 * config/avr/avr-arch.h (avr_mcu_t) [.library_name]: Remove.
7484 * config/avr/avr-mcus.def: Adjust initializers and comments.
7485
7037b790 74862015-03-16 Jan Hubicka <hubicka@ucw.cz>
7487
7488 * tree-sra.c (ipa_sra_preliminary_function_checks): Use
7489 DECL_ONE_ONLY to check if decl is one only.
7490 * ipa-split.c (consider_split): Limit splitt of one only functions.
7491
7e64a875 74922015-03-16 Jakub Jelinek <jakub@redhat.com>
7493
7494 PR tree-optimization/65427
7495 * tree-vect-generic.c (do_cond, expand_vector_scalar_condition): New
7496 functions.
7497 (expand_vector_operations_1): Handle BLKmode vector COND_EXPR.
7498
36795c14 74992015-03-16 Marek Polacek <polacek@redhat.com>
7500
7501 * cgraph.h (add_new_static_var): Remove declaration.
7502 * varpool.c (add_new_static_var): Remove function.
7503
42d49354 75042015-03-16 Jakub Jelinek <jakub@redhat.com>
7505
02c05c9b 7506 * omp-low.c (expand_omp_target): Use auto_vec<tree, 11>
7507 instead of vec<tree> * with vec_alloc and release for args.
7508 Adjust all users.
7509
42d49354 7510 PR middle-end/65431
7511 * omp-low.c (delete_omp_context): Only splay_tree_delete
7512 reduction_map in GIMPLE_OMP_TARGET is_gimple_omp_offloaded
7513 is_gimple_omp_oacc contexts. Don't look at ctx->outer.
7514
9dbe51a9 75152015-03-16 Max Ostapenko <m.ostapenko@partner.samsung.com>
7516
7517 PR sanitizer/64820
7518 * cfgexpand.c (align_base): New function.
7519 (alloc_stack_frame_space): Call it.
7520 (expand_stack_vars): Align prev_frame to be sure
7521 data->asan_vec elements aligned properly.
7522
7081e928 75232015-03-16 Eric Botcazou <ebotcazou@adacore.com>
7524
7525 PR middle-end/65409
7526 * expr.c (store_field): Do not do a direct block copy if the source is
7527 a PARALLEL with BLKmode.
7528
dcfa9a69 75292015-03-16 Tom de Vries <tom@codesourcery.com>
7530
7531 PR middle-end/65414
7532 Revert:
7533 2015-03-12 Tom de Vries <tom@codesourcery.com>
7534
7535 PR rtl-optimization/64895
7536 * lra-lives.c (check_pseudos_live_through_calls): Use
7537 actual_call_used_reg_set instead of call_used_reg_set, if available.
7538
cc12a806 75392015-03-16 Alan Modra <amodra@gmail.com>
7540
7541 PR target/63150
7542 * config/rs6000/rs6000.md (bswapdi2): Remove one scratch reg.
7543 Modify Z->r bswapdi splitter to use dest in place of scratch.
7544 In r->Z and Z->r bswapdi splitter rename word_high, word_low
7545 to word1, word2 and rearrange logic to suit.
7546 (bswapdi2_64bit): Remove early clobber on Z->r alternative.
7547 (bswapdi2_ldbrx): Likewise. Remove '??' on r->r.
7548 (bswapdi2_32bit): Remove early clobber on Z->r alternative.
7549 Add one '?' on r->r. Modify Z->r splitter to avoid need for
7550 early clobber.
7551
fcbc75fb 75522015-03-14 Jakub Jelinek <jakub@redhat.com>
7553
c6d23cfc 7554 PR tree-optimization/65369
7555 * tree-vect-stmts.c (vectorizable_load) <case dr_explicit_realign>:
7556 Set bump to vs * TYPE_SIZE_UNIT (elem_type) - 1 instead of
7557 (vs - 1) * TYPE_SIZE_UNIT (elem_type).
7558
f6835415 7559 PR tree-optimization/65418
7560 * tree-ssa-reassoc.c (extract_bit_test_mask): If there
7561 are casts in the first PLUS_EXPR operand, ensure tbias and
7562 *totallowp are in the inner type.
7563
fcbc75fb 7564 PR rtl-optimization/65401
7565 * combine.c (rtx_equal_for_field_assignment_p): Add widen_x
7566 argument. If true, adjust_address_nv of x with big-endian
7567 correction for the mode widening to GET_MODE (y).
7568 (make_field_assignment): Don't do MEM mode widening here.
7569 Use MEM_P instead of GET_CODE == MEM.
7570
69409999 75712015-03-13 Ilya Verbin <ilya.verbin@intel.com>
7572
7573 * varpool.c (varpool_node::get_create): Don't set 'offloadable' flag for
7574 the external decls.
7575
a76dc189 75762015-03-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7577
7578 PR target/64600
7579 * config/arm/arm.c (arm_gen_constant, AND case): Use
7580 ARM_SIGN_EXTEND when constructing AND mask.
7581
dccaa1c0 75822015-03-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
7583
7584 * graph.c (print_graph_cfg): Make function names visible and append
7585 parenthesis to it. Also make groups of basic blocks belonging to the
7586 same function visible.
7587
98b2c85f 75882015-03-12 Richard Biener <rguenther@suse.de>
7589
7590 PR middle-end/44563
7591 * tree-inline.c (gimple_expand_calls_inline): Walk BB backwards
7592 to avoid quadratic behavior with inline expansion splitting blocks.
7593 * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Do not merge block
7594 with the successor if the predecessor will be merged with it.
7595 * tree-cfg.c (gimple_can_merge_blocks_p): We can't merge the
7596 entry block with its successor.
7597
25959a39 75982015-03-13 Richard Biener <rguenther@suse.de>
7599
7600 PR middle-end/44563
7601 * tree-cfgcleanup.c (split_bb_on_noreturn_calls): Remove.
7602 (cleanup_tree_cfg_1): Do not call it.
7603 (execute_cleanup_cfg_post_optimizing): Fixup the CFG here.
7604 (fixup_noreturn_call): Mark the stmt as control altering.
7605 * tree-cfg.c (execute_fixup_cfg): Do not dump the function
7606 here.
7607 (pass_data_fixup_cfg): Produce a dump file.
7608 * tree-ssa-dom.c: Include tree-cfgcleanup.h.
7609 (need_noreturn_fixup): New global.
7610 (pass_dominator::execute): Fixup queued noreturn calls.
7611 (optimize_stmt): Queue calls that became noreturn for fixup.
7612 * tree-ssa-forwprop.c (pass_forwprop::execute): Likewise.
7613 * tree-ssa-pre.c: Include tree-cfgcleanup.h.
7614 (el_to_fixup): New global.
7615 (eliminate_dom_walker::before_dom_childre): Queue calls that
7616 became noreturn for fixup.
7617 (eliminate): Fixup queued noreturn calls.
7618 * tree-ssa-propagate.c: Include tree-cfgcleanup.h.
7619 (substitute_and_fold_dom_walker): New member stmts_to_fixup.
7620 (substitute_and_fold_dom_walker::before_dom_children): Queue
7621 alls that became noreturn for fixup.
7622 (substitute_and_fold): Fixup queued noreturn calls.
7623
9f27b0ca 76242015-03-12 Jan Hubicka <hubicka@ucw.cz>
7625
7626 * ipa-icf.c (sem_function::equals_wpa): Match CXX_CONSTRUCTOR_P
7627 and CXX_DESTURCTOR_P. For consutrctors match ODR type of class they
7628 are building; for methods check ODR type of class they belong to if
7629 they may lead to a polymorphic call.
7630 (sem_function::compare_polymorphic_p): Be bit smarter about testing
7631 when function may lead to a polymorphic call.
7632 (sem_function::compare_type_list): Remove.
7633 (sem_variable::equals): Update use of compatible_types_p.
7634 (sem_variable::parse_tree_refs): Remove.
7635 (sem_item_optimizer::filter_removed_items): Do not filter out CXX
7636 cdtor.
7637 * ipa-icf-gimple.c (func_checker::compare_decl): Do polymorphic
7638 matching here.
7639 (func_checker::compatible_polymorphic_types_p): Break out from ...
7640 (unc_checker::compatible_types_p): ... here.
7641 * ipa-icf-gimple.h (func_checker::compatible_polymorphic_types_p):
7642 Declare.
7643 (unc_checker::compatible_types_p): Update.
7644 * ipa-icf.h (compare_type_list, parse_tree_refs, compare_sections):
7645 Remove.
7646
806052ba 76472015-03-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7648
f76d5810 7649 PR rtl-optimization/65235
806052ba 7650 * simplify-rtx.c (simplify_binary_operation_1, VEC_SELECT case):
7651 When first element of vec_concat is const_int, calculate its size
7652 using second element.
7653
7386c9d6 76542015-03-12 Richard Biener <rguenther@suse.de>
7655
7656 PR middle-end/65270
7657 * fold-const.c (operand_equal_p): Fix ordering of resetting
7658 OEP_ADDRESS_OF and checking for it in the [TARGET_]MEM_REF case.
7659
f4252e72 76602015-03-12 Dominik Vogt <vogt@linux.vnet.ibm.com>
7661
7662 * config/s390/s390.c (s390_reorg): Move code to output nops after label
7663 to s390_reorg ().
7664 (s390_asm_output_function_label): Likewise.
7665 * config/s390/s390.c (s390_asm_output_function_label):
7666 Fix function label alignment with -mhtopatch.
7667 * config/s390/s390.md ("unspecv"): New values UNSPECV_NOP_2_BYTE,
7668 UNSPECV_NOP_4_BYTE and UNSPECV_NOP_6_BYTE
7669 ("nop_2_byte"): New define_insn.
7670 ("nop_4_byte"): Likewise.
7671 ("nop_6_byte"): Likewise.
7672 * doc/extend.texi (hotpatch): hotpatch attribute doc fixes.
7673 * doc/invoke.texi (-mhotpatch): -mhotpatch doc fixes.
7674
b7b4b66a 76752015-03-12 Ilya Enkovich <ilya.enkovich@intel.com>
7676
7677 PR target/65103
7678 * config/i386/i386.c (ix86_address_cost): Fix cost of a PIC
7679 register.
7680
a67b9438 76812015-03-12 Ilya Enkovich <ilya.enkovich@intel.com>
7682
7683 PR target/65044
7684 * toplev.c (process_options): Restrict Pointer Bounds Checker
7685 usage with Address Sanitizer.
7686
923635e7 76872015-03-12 Richard Biener <rguenther@suse.de>
7688
7689 * tree-cfg.c (gimple_split_block): Remove loop finding stmt
7690 to split on.
7691 * omp-low.c (expand_omp_taskreg): Split block before removing
7692 the stmt.
7693 (expand_omp_target): Likewise.
7694 * ubsan.c (ubsan_expand_null_ifn): Adjust stmt if we replaced it.
7695 * tree-parloops.c (create_call_for_reduction_1): Pass a proper
7696 stmt to split_block.
7697
e2a16b91 76982015-03-12 Tom de Vries <tom@codesourcery.com>
7699
0b7e41c0 7700 PR rtl-optimization/64895
e2a16b91 7701 * lra-lives.c (check_pseudos_live_through_calls): Use
7702 actual_call_used_reg_set instead of call_used_reg_set, if available.
7703
e9e2b82f 77042015-03-10 Jan Hubicka <hubicka@ucw.cz>
7705
7706 * cgraph.c (cgraph_node::release_body): Free function_in_decl_state.
7707 (cgraph_node::remove): Likewise.
7708 (cgraph_node::get_untransformed_body): Likewise.
7709 * varpool.c (varpool_node::remove): Likewise.
7710 (varpool_node::get_constructor): Add sanity check.
7711
312da1e0 77122015-03-11 Sandra Loosemore <sandra@codesourcery.com>
7713
c6e5fbeb 7714 * doc/invoke.texi (-fgnu89-inline): Remove discussion about
312da1e0 7715 old GCC versions.
7716 (-fabi-compat-version): Likewise.
7717 (-ffriend-injection): Likewise.
7718 (-Wdeclaration-after-statement): Likewise.
7719 (-fomit-frame-pointer): Likewise.
7720 (-ftree-coalesce-inlined-vars): Likewise.
7721 (-fvisibility=): Likewise.
7722 * doc/extend.texi (Typeof): Likewise.
7723 (Zero Length): Likewise.
7724 (Escaped Newlines): Likewise.
7725 (Compound Literals): Likewise.
7726 (Function Attributes): Likewise.
7727 (Label Attributes): Likewise.
7728 (Type Attributes): Likewise.
7729 (Function Names): Likewise.
7730 (Other Builtins): Likewise.
7731 (Function Specific Option Pragmas): Likewise.
7732 (C++ Interface): Likewise.
7733
5121139d 77342015-03-11 Thomas Schwinge <thomas@codesourcery.com>
7735
7736 * config/nvptx/nvptx.h (LIBSTDCXX): Define to "gcc".
7737
fd2e7f43 77382015-03-11 Marek Polacek <polacek@redhat.com>
7739
7740 PR tree-optimization/65388
7741 * tree-ssa-tail-merge.c (same_succ_def::equal): Fix typo in comparison.
7742
fb51f994 77432015-03-10 Georg-Johann Lay <avr@gjlay.de>
7744
7745 PR target/65296
7746 * configure.ac [avr]: Check as for options -mrmw, --mlink-relax.
7747 * configure: Regenerate.
7748 * config.in: Regenerate.
7749 * doc/invoke.texi (AVR Options) [-mrmw]: Document it.
7750 [-mn-flash]: Document it.
7751 [__AVR_ARCH__]: Document avrtiny.
7752
7753 * config/avr/gen-avr-mmcu-specs.c (config.h): Include it.
7754 (*asm_relax): Only define spec if HAVE_AS_AVR_MLINK_RELAX_OPTION.
7755 (*asm_rmw): Only define spec if HAVE_AS_AVR_MRMW_OPTION.
7756
1255ea46 77572015-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7758
7759 * doc/invoke.texi: Add missing cpu values (z196, zEC12).
7760
622a20e1 77612015-03-11 Michael Meissner <meissner@linux.vnet.ibm.com>
7762
7763 PR target/65242
7764 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Do not
7765 allow reloads of PLUS in floating point/VSX registers.
7766
751e044a 77672015-03-11 Junmo Park <junmoz.park@samsung.com>
7768
c6e5fbeb 7769 * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Add
7770 crypto_sha256_fast.
751e044a 7771 (cortex_a57_crypto_complex): Add crypto_sha256_slow.
7772
3596bc87 77732015-03-11 Richard Biener <rguenther@suse.de>
7774
7775 PR tree-optimization/65310
7776 * tree-sra.c (build_ref_for_offset): Also preserve larger
7777 alignment.
7778
a99c832c 77792015-03-11 Marat Zakirov <m.zakirov@samsung.com>
7780
7781 * asan.c (instrument_derefs): Disable instrumentation on asan-globals=0.
7782
0b42191e 77832015-03-10 Jakub Jelinek <jakub@redhat.com>
7784
7785 PR target/65368
7786 * config/i386/i386.md (bmi2_bzhi_<mode>3): Removed define_insn,
7787 new define_expand.
7788 (*bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3_1): New define_insns.
7789
5642ef7d 77902015-03-10 Jan Hubicka <hubicka@ucw.cz>
7791
c6e5fbeb 7792 * ipa-icf.c (sem_function::equals_wpa): Move here some checks from ...
5642ef7d 7793 (sem_function::equals_wpa): ... here.
7794
57583407 77952015-03-10 Marek Polacek <polacek@redhat.com>
7796 Jakub Jelinek <jakub@redhat.com>
7797
7798 PR sanitizer/65367
7799 * ubsan.c (ubsan_expand_objsize_ifn): Update GSI instead of GSI_ORIG
7800 when only removing the statement. Handle expanding UBSAN_OBJECT_SIZE
7801 separately.
7802
2a13bc53 78032015-03-10 Jakub Jelinek <jakub@redhat.com>
7804
7805 PR target/65286
7806 * config/rs6000/t-linux: For powerpc64* target set
7807 MULTILIB_OSDIRNAMES instead of MULTIARCH_DIRNAME.
7808
dbe7d25a 78092015-03-10 Richard Biener <rguenther@suse.de>
7810
7811 PR middle-end/44563
7812 * tree-inline.c (copy_cfg_body): Skip block mapped to entry/exit
7813 for redirect_all_calls.
7814
645cec52 78152015-03-10 Marek Polacek <polacek@redhat.com>
7816
7817 * gdbinit.in (pcfun): Define and document.
7818
f48d38ba 78192015-03-10 Ilya Verbin <ilya.verbin@intel.com>
7820
7821 * config/i386/intelmic-mkoffload.c: Include intelmic-offload.h instead
7822 of libgomp-plugin.h.
c6e5fbeb 7823 (find_target_compiler): Support a case when the path to gcc is
7824 specified in the PATH env var, so COLLECT_GCC doesn't contain a path.
f48d38ba 7825 (generate_host_descr_file): Use GOMP_DEVICE_INTEL_MIC from
7826 intelmic-offload.h instead of OFFLOAD_TARGET_TYPE_INTEL_MIC from
7827 libgomp-plugin.h.
7828 (main): Use GCC_INSTALL_NAME as target_driver_name.
7829 * config/i386/t-intelmic (CFLAGS-mkoffload.o): Add GCC_INSTALL_NAME
7830 define.
7831 (mkoffload.o): Remove obsolete include path and defines.
7832 (mkoffload$(exeext)): Use $(LINKER) instead of $(COMPILER).
7833
f1b7081b 78342015-03-10 Richard Biener <rguenther@suse.de>
7835
7836 PR middle-end/63155
7837 * tree-ssa-coalesce.h (verify_ssa_coalescing): Declare.
7838 * tree-ssa-coalesce.c: Include timevar.h.
7839 (attempt_coalesce): Handle graph being NULL.
7840 (coalesce_partitions): Call verify_ssa_coalescing if ENABLE_CHECKING.
7841 Split out abnormal coalescing to ...
7842 (perform_abnormal_coalescing): ... this function.
7843 (coalesce_ssa_name): Perform abnormal coalescing without computing
7844 live/conflict.
7845 (verify_ssa_coalescing_worker): New function.
7846 (verify_ssa_coalescing): Likewise.
7847
f0aa7fe2 78482015-03-10 Georg-Johann Lay <avr@gjlay.de>
7849
7850 PR target/65296
7851 * config.gcc (extra_options) [avr]: Remove.
7852 (extra_gcc_objs) [avr]: Use driver-avr.o, avr-devices.o.
7853 (tm_file) [avr]: Add avr/specs.h after avr/avr.h.
7854 (tm_defines) [avr-*-rtems*]: Add WITH_RTEMS.
7855
7856 * config/avr/avr.opt (config/avr/avr-arch.h): Remove include.
7857 (-mmcu=): Add Var and MissingArgError properties.
7858 (-march=): Remove.
7859 * config/avr/genmultilib.awk: Use -mmcu= instead of -march=.
7860 * config/avr/t-multilib: Regenerate.
7861 * config/avr/specs.h: New file.
7862 * config/avr/driver-avr.c: New file.
7863 * config/avr/genopt.sh: Remove file.
7864 * config/avr/avr-tables.opt: Remove file.
7865 * config/avr/predicates.md (avr_current_arch): Rename to avr_arch.
7866 * config/avr/avr-c.c: Same.
7867 * avr-arch.h: Same.
7868 (avr_current_device): Remove proto.
7869 * config/avr/avr.h (avr_current_arch): Rename to avr_arch.
7870 (AVR_HAVE_8BIT_SP): Don't depend on avr_current_device.
7871 (EXTRA_SPEC_FUNCTIONS): Define.
7872 (avr_devicespecs_file): New specs function proto.
7873 (DRIVER_SELF_SPECS): Use device-specs-file spec function.
7874 * config/avr/avr.c (avr_current_arch): Rename to avr_arch.
40ef495a 7875 (avr_current_device): Remove definition and usage.
f0aa7fe2 7876 (avr_set_core_architecture): New static function.
7877 (avr_option_override): Use it.
7878 * config/avr/avr-devices.c (diagnostic.h, avr-arch.h): Include them.
7879 (mcu_name): New static array.
7880 (comparator, avr_archs_str, avr_mcus_str): New static functions.
7881 (avr_inform_devices, avr_inform_core_architectures): New functions.
7882 * config/avr/gen-avr-mmcu-specs.c (avr-arch.h, specs.h): Include.
7883 (avrlibc.h) [WITH_AVRLIBC]: Include.
7884 (../rtems.h, rtems.h) [WITH_RTEMS]: Include.
7885 (print_mcu): Rewrite from scratch.
7886 * config/avr/avrlibc.h (LIB_SPEC, LIBGCC_SPEC, STARTFILE_SPEC):
7887 Forward to avr-specific specs defined in device-specs file.
7888 * config/avr/t-avr (driver-avr.o): New rule.
7889 (avr-devices.o): Depend on avr-arch.h.
7890 (avr-mcus): No more depend on avr-tables.opt.
7891 (avr-tables.opt): Remove rule.
7892 (install-device-specs): Use INSTALL_DATA, not INSTALL_PROGRAM.
7893
4cefd7f7 78942015-03-10 Ilya Enkovich <ilya.enkovich@intel.com>
7895
7896 * c-family/c.opt (fchkp-use-wrappers): New.
7897 * ipa-chkp.c (CHKP_WRAPPER_SYMBOL_PREFIX): New.
7898 (chkp_wrap_function): New.
7899 (chkp_build_instrumented_fndecl): Support wrapped
7900 functions.
7901 * doc/invoke.texi (-fcheck-pointer-bounds): New.
7902 (-fchkp-check-incomplete-type): New.
7903 (-fchkp-first-field-has-own-bounds): New.
7904 (-fchkp-narrow-bounds): New.
7905 (-fchkp-narrow-to-innermost-array): New.
7906 (-fchkp-optimize): New.
7907 (-fchkp-use-fast-string-functions): New.
7908 (-fchkp-use-nochk-string-functions): New.
7909 (-fchkp-use-static-bounds): New.
7910 (-fchkp-use-static-const-bounds): New.
7911 (-fchkp-treat-zero-dynamic-size-as-infinite): New.
7912 (-fchkp-check-read): New.
7913 (-fchkp-check-write): New.
7914 (-fchkp-store-bounds): New.
7915 (-fchkp-instrument-calls): New.
7916 (-fchkp-instrument-marked-only): New.
7917 (-fchkp-use-wrappers): New.
7918 (-static-libmpx): New.
7919 (-static-libmpxwrappers): New.
7920
8a325e42 79212015-03-10 Ilya Enkovich <ilya.enkovich@intel.com>
7922
7923 * config/i386/linux-common.h (LIBMPX_WRAPPERSSPEC): New.
7924 (CHKP_SPEC): Add wrappers library.
7925 * c-family/c.opt (static-libmpxwrappers): New.
7926
202baac8 79272015-03-10 Ilya Enkovich <ilya.enkovich@intel.com>
7928
7929 * config/i386/linux-common.h (LIBMPX_LIBS): New.
7930 (LIBMPX_SPEC): New.
7931 (CHKP_SPEC): New.
7932 * gcc.c (CHKP_SPEC): New.
7933 (LINK_COMMAND_SPEC): Add CHKP_SPEC.
7934 * c-family/c.opt (static-libmpx): New.
7935
6f0f5716 79362015-03-10 Richard Biener <rguenther@suse.de>
7937
7938 PR middle-end/44563
7939 * cgraph.h (struct cgraph_edge_hasher): Add hash overload
7940 for compare_type.
7941 * cgraph.c (cgraph_edge_hasher::hash): Inline htab_hash_pointer.
7942 (cgraph_update_edge_in_call_site_hash): Use cgraph_edge_hasher::hash.
7943 (cgraph_add_edge_to_call_site_hash): Likewise.
7944 (cgraph_node::get_edge): Likewise.
7945 (cgraph_edge::set_call_stmt): Likewise.
7946 (cgraph_edge::remove_caller): Likewise.
7947
afddacc6 79482015-03-10 Chung-Ju Wu <jasonwucj@gmail.com>
7949
7950 * config/nds32/nds32.h (callee_saved_regs_size): Rename to ...
7951 (callee_saved_gpr_regs_size): ... this.
7952 (callee_saved_regs_first_regno): Rename to ...
7953 (callee_saved_first_gpr_regno): ... this.
7954 (callee_saved_regs_last_regno) Rename to ...
7955 (callee_saved_last_gpr_regno): ... this.
7956 * config/nds32/nds32.c (nds32_compute_stack_frame): Adjust renamed
7957 variables.
7958 (nds32_initial_elimination_offset): Likewise.
7959 (nds32_expand_prologue): Likewise.
7960 (nds32_expand_epilogue): Likewise.
7961 (nds32_expand_prologue_v3push): Likewise.
7962 (nds32_expand_epilogue_v3pop): Likewise.
7963 * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push):
7964 Adjust renamed variables.
7965 (nds32_output_stack_pop): Likewise.
7966
feb4b951 79672015-03-10 Thomas Preud'homme <thomas.preudhomme@arm.com>
7968
7969 * dominance.c (nearest_common_dominator_for_set): Fix A_Dominated_by_B
7970 code in comment.
7971
bfaa965e 79722015-03-10 Jakub Jelinek <jakub@redhat.com>
7973
7974 PR rtl-optimization/65321
7975 * cfgexpand.c (expand_debug_expr): Ensure shift amount isn't wider
7976 than shift mode.
7977 * var-tracking.c (use_narrower_mode): Likewise.
7978
5c8bc079 79792015-03-10 Jan Hubicka <hubicka@ucw.cz>
7980
7981 PR tree-optimization/65355
7982 * varasm.c (notice_global_symbol): Do not produce RTL.
7983 * symtab.c (symtab_node::can_increase_alignment_p): Check for section
7984 anchor.
7985 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Do not
7986 check for section anchors.
7987
7bb12776 79882015-03-10 Alan Modra <amodra@gmail.com>
7989
7990 PR target/65286
7991 * config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux
7992 to be single-arch by default. Set cpu_is_64bit for powerpc64
7993 given --with-cpu=native.
7994 * config/rs6000/t-fprules: Do not set default MULTILIB vars.
7995 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64
7996 and powerpc64le.
7997 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test
7998 rs6000_isa_flags rather than TARGET_64BIT.
7999
c7c9d885 80002015-03-09 Yoshinori Sato <ysato@users.sourceforge.jp>
8001 Kaz Kojima <kkojima@gcc.gnu.org>
8002
8003 * config/sh/t-linux (MULTILIB_EXCEPTIONS): Define for m2a cases.
8004
90fa3a2b 80052015-03-09 Jakub Jelinek <jakub@redhat.com>
8006
8007 PR lto/65361
8008 * ipa-devirt.c (add_type_duplicate): Don't use DECL_CONTEXT
8009 on a TREE_BINFO, instead use BINFO_TYPE.
8010
e48f86fe 80112015-03-09 Richard Biener <rguenther@suse.de>
8012
8013 PR middle-end/65270
8014 * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF.
8015 * fold-const.c (operand_equal_p): When recursing for ADDR_EXPRs
8016 operand set OEP_ADDRESS_OF. Clear it when recursing to non-bases
8017 of that. When comparing dereferences compare alignment.
8018 When comparing MEM_REFs or TARGET_MEM_REFs compare dependence info.
8019
b12b920e 80202015-03-08 Jan Hubicka <hubicka@ucw.cz>
8021
8022 * ipa-inline-analysis.c (check_callers): Check
8023 node->can_remove_if_no_direct_calls_and_refs_p.
8024 (growth_likely_positive): Reorganize to call
8025 can_remove_if_no_direct_calls_p later.
8026 * cgraph.h (will_be_removed_from_program_if_no_direct_calls_p,
c6e5fbeb 8027 will_be_removed_from_program_if_no_direct_calls_p): Add
b12b920e 8028 will_inline parameter.
8029 * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p,
8030 cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
8031 Handle inliner case correctly.
8032
4b8069b9 80332015-03-09 Thomas Preud'homme <thomas.preudhomme@arm.com>
8034
8035 PR tree-optimization/63743
8036 * cfgexpand.c (reorder_operands): Also reorder if only second operand
8037 had its definition forwarded by TER.
8038
86f5465f 80392015-03-08 Jan Hubicka <hubicka@ucw.cz>
8040
8041 PR lto/65316
8042 * ipa-utils.h (types_odr_comparable): Add strict argument.
8043 * ipa-devirt.c: Fix whitespace;
8044 (odr_hasher): Remove.
8045 (odr_name_hasher, odr_vtable_hasher): New hashers.
8046 (can_be_name_hashed_p): New predicate.
8047 (hash_type_name): remove.
8048 (hash_odr_name): New.
8049 (odr_name_hasher::hash): new.
8050 (can_be_vtable_hashed_p): New.
8051 (hash_odr_vtable): New.
8052 (odr_vtable_hasher::hash): New.
8053 (types_same_for_odr): Add strict parameter.
8054 (types_odr_comparable): Likewise.
8055 (odr_name_hasher::equal): New.
8056 (odr_vtable_hasher::equal): New.
8057 (odr_name_hasher::remove): New.
8058 (odr_hash_type): Change to hash_table<odr_name_hasher>.
8059 (odr_vtable_hash_type): New.
8060 (odr_vtable_hash): New.
8061 (odr_subtypes_equivalent_p): Do strict comparsion.
8062 (add_type_duplicate): Merge type names; cleanup; avoid type
8063 duplicates.
8064 (register_odr_type): Initialize vtable hash.
8065 (build_type_inheritance_graph): Likewise
8066 (get_odr_type): Reorg to use two hashes.
8067 (dump_possible_polymorphic_call_targets): Move sanity check after debug
8068 output.
8069 (ipa_devirt): Dump type_inheritance_graph.
8070 (types_same_for_odr): Add strict mode.
8071
331d5983 80722015-03-05 Jan Hubicka <hubicka@ucw.cz>
8073
8074 PR ipa/65334
8075 * cgraph.h (symtab_node): Add definition_alignment,
8076 can_increase_alignment_p and increase_alignment.
8077 * symtab.c (symtab_node::can_increase_alignment_p,
8078 increase_alignment_1, symtab_node::increase_alignment,
8079 symtab_node::definition_alignment): New.
8080 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Use
8081 can_increase_alignment_p.
8082 * tree-vectorizer.c (increase_alignment): Use increase_alignment.
8083 * tree-vect-stmts.c (ensure_base_align): Likewise.
88ada5e9 8084 * varasm.c (function_section_1): Use definition_alignment.
8085 (assemble_start_function): Likewise.
8086 (emit_local): likewise.
8087 (build_constant_desc): Likewsie.
8088 (output_constant_def_contents): Likewise.
8089 (place_block_symbol): Likewise.
8090 (output_object_block): Likewise.
331d5983 8091
007b3880 80922015-03-05 Jan Hubicka <hubicka@ucw.cz>
8093
8094 PR ipa/65316
8095 * tree.c (free_lang_data_in_type): Be sure to keep BINFO_VTABLE
8096 when outputting debug.
8097
9b22f73f 80982015-03-07 Marek Polacek <polacek@redhat.com>
8099 Martin Uecker <uecker@eecs.berkeley.edu>
8100
8101 PR sanitizer/65280
8102 * doc/invoke.texi: Update description of -fsanitize=bounds.
8103
4a7046f8 81042015-03-06 Wilco Dijkstra <wilco.dijkstra@arm.com>
8105
8106 * tree-ssa-phiopt.c (neg_replacement): Remove.
8107 (tree_ssa_phiopt_worker): Remove negate optimization.
8108
f91d0326 81092015-03-05 Jan Hubicka <hubicka@ucw.cz>
8110
8111 PR ipa/65302
8112 * value-prof.c (gimple_ic): Pure dead eh edges when needed.
8113
78775228 81142015-03-06 Richard Biener <rguenther@suse.de>
8115
8116 PR middle-end/64928
8117 * tree-ssa-live.h (struct tree_live_info_d): Add livein_obstack
8118 and liveout_obstack members.
8119 (calculate_live_on_exit): Remove.
8120 (calculate_live_ranges): Change declaration.
8121 * tree-ssa-live.c (liveness_bitmap_obstack): Remove global var.
8122 (new_tree_live_info): Adjust.
8123 (calculate_live_ranges): Delete livein when not wanted.
8124 (calculate_live_ranges): Do not initialize liveness_bitmap_obstack.
8125 Deal with partly deleted live info.
8126 (loe_visit_block): Remove temporary bitmap by using
8127 bitmap_ior_and_compl_into.
8128 (live_worklist): Adjust accordingly.
8129 (calculate_live_on_exit): Make static.
8130 * tree-ssa-coalesce.c (coalesce_ssa_name): Tell calculate_live_ranges
8131 we do not need livein.
8132
698013f6 81332015-03-06 Jonathan Wakely <jwakely@redhat.com>
8134
8135 * real.c (real_from_string): Fix typo in assertion.
8136
ea4cdd31 81372015-03-06 Alex Velenko <alex.velenko@arm.com>
8138
8139 * ChangeLog (2015-03-05): Reflect Richard Henderson as actual author of
8140 the patch.
8141
8a953cb8 81422015-03-05 Jan Hubicka <hubicka@ucw.cz>
8143
8144 * ipa-icf.c (sem_variable::equals_wpa): Check FINAL flags.
8145
02306e02 81462015-03-05 Vladimir Makarov <vmakarov@redhat.com>
8147
8148 PR target/64342
8149 * lra-assigns.c (find_hard_regno_for): Rename to
8150 find_hard_regno_for_1. Add a new parameter.
8151 (find_hard_regno_for): New function using find_hard_regno_for_1.
8152
c0ec5045 81532015-03-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
8154
8155 PR rtl-optimization/65067
8156 * expmed.c (store_bit_field, extract_bit_field): Reworked the
8157 strict volatile bitfield handling.
8158
fd82d052 81592015-03-05 Martin Liska <mliska@suse.cz>
8160
8161 PR ipa/65318
8162 * ipa-icf.c (sem_variable::equals): Compare variables types.
8163
ea4cdd31 81642015-03-05 Richard Henderson <rth@redhat.com>
0f23e403 8165
f12f9439 8166 PR target/65121
0f23e403 8167 * config/arm/arm.c (arm_function_in_section_p): Fix predicate to
8168 correctly check weak symbol binding.
8169
2bb1c7d1 81702015-03-05 Steve Ellcey <sellcey@imgtec.com>
8171
8172 PR middle-end/65315
8173 * cfgexpand.c (expand_stack_vars): Update large_align to maximum
8174 needed alignment.
8175
fece9def 81762015-03-05 Martin Liska <mliska@suse.cz>
8177
8178 * ipa-inline.c (inline_small_functions): Set default value to
8179 prevent warning during bootstrap.
8180 * tree.h: Add pragma guard that ignores false positives during
8181 bootstrap.
8182
b4142d58 81832015-03-05 Richard Biener <rguenther@suse.de>
8184
8185 PR tree-optimization/65310
8186 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
8187 Properly preserve alignment of the base of the access.
8188
6b1460de 81892015-03-05 Richard Biener <rguenther@suse.de>
8190
8191 PR ipa/65270
8192 * ipa-icf-gimple.c (func_checker::compare_memory_operand):
8193 Compare dependence info.
8194
9327cf31 81952015-03-05 Richard Biener <rguenther@suse.de>
8196
8197 PR middle-end/65233
8198 * ipa-polymorphic-call.c: Include tree-ssa-operands.h and
8199 tree-into-ssa.h.
8200 (walk_ssa_copies): Revert last chage. Instead do not walk
8201 SSA names registered for SSA update.
8202
4c0b6eae 82032015-03-03 Jan Hubicka <hubicka@ucw.cz>
8204
ca0a430a 8205 PR ipa/65270
4c0b6eae 8206 * ipa-icf.c (sem_item::compare_cgraph_references): Compare
8207 vtable references for their containing type.
8208 (sem_function::equals_wpa): Compare TYPE_RESTRICT
8209 and type attributes.
8210
1237f646 82112015-03-04 Eric Botcazou <ebotcazou@adacore.com>
8212
8213 * fold-const.c (round_up_loc): Cast divisor to signed on all paths
8214 before negating it.
8215 * stor-layout.c (finalize_record_size): Revert latest change.
8216
c43a6d0d 82172015-03-04 Andreas Tobler <andreast@gcc.gnu.org>
8218
8219 * config/rs6000/t-freebsd64: Remove 32-bit soft-float multilibs.
8220
e88fecaf 82212015-03-03 Jan Hubicka <hubicka@ucw.cz>
8222
8223 * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_p): Rewrite
8224 for correct comdat handling.
8225 (cgraph_node::will_be_removed_from_program_if_no_direct_calls_p):
8226 Likewise.
8227 * cgraph.h (call_for_symbol_and_aliases): Fix formating.
8228 (used_from_object_file_p_worker): Remove.
8229 (cgraph_node::only_called_directly_or_alised): Add
8230 used_from_object_file_p.
8231 * ipa-inline-analysis.c (growth_likely_positive): Optimie.
8232 * ipa-inline-transform.c (can_remove_node_now_p_1): Use
8233 can_remove_if_no_direct_calls_and_refs_p.
8234
30769e80 82352015-03-04 Nick Clifton <nickc@redhat.com>
8236
8237 * config/rl78/rl78.h (enum reg_class): Remove real registers from
8238 General register class.
8239 * config/rl78/rl78-real.md: Replace general register constraints
8240 with real+virtual register constraints.
8241
8a2027f7 82422015-03-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8243
1237f646 8244 * config/s390/s390.c (s390_expand_builtin): Exlude non-htm builtins
8245 from checking for -mhtm option.
8a2027f7 8246
840573bd 82472015-03-03 Jan Hubicka <hubicka@ucw.cz>
8248
8249 * tree-sra.c (convert_callers): Use call_for_symbol_and_aliases.
8250 (struct ipa_sra_check_caller_data): Add has_thunk field.
8251 (ipa_sra_check_caller): Check for thunk.
8252 (ipa_sra_preliminary_function_checks): Give up on function with
8253 thunks.
8254 (ipa_early_sra): Use call_for_symbol_and_aliases.
8255
53e094a9 82562015-03-03 Kaz Kojima <kkojima@gcc.gnu.org>
8257
8258 PR target/65249
8259 * config/sh/sh.md (symGOT_load): Use R0 reg for operands[2] when
8260 called for __stack_chk_guard symbol.
8261
750dcfc5 82622015-03-03 DJ Delorie <dj@redhat.com>
8263
8264 * config/rl78/rl78-real.md (*addqi_real): Allow SADDR types for
8265 inc/dec.
8266 (*addhi3_real): Likewise.
8267 * config/rl78/rl78-virt.md (*inc<mode>3_virt): Additional
8268 pattern to match incrementing memory.
8269 * config/rl78/predicates.md (rl78_1_2_operand): New.
8270 * config/rl78/rl78.c (rl78_force_nonfar_3): Allow far mem-mem if
8271 it's the same and only mem.
8272 (rl78_alloc_physical_registers_op2): If there's effectively only
8273 one MEM, transcode it into HL.
8274 (rl78_far_p): Reject addresses that aren't legitimate.
8275
b7c08268 82762015-03-03 Eric Botcazou <ebotcazou@adacore.com>
8277
8278 * fold-const.c (round_up_loc): Cast divisor to HOST_WIDE_INT before
8279 negating it.
8280
8281 * tree-sra.c (pa_sra_preliminary_function_checks): Fix typo in message.
8282
b89c671b 82832015-03-03 Max Filippov <jcmvbkbc@gmail.com>
8284
8285 Implement call0 ABI for xtensa
8286 * config/xtensa/constraints.md ("a" constraint): Include stack
8287 pointer in case of call0 ABI.
8288 ("q" constraint): Make empty in case of call0 ABI.
8289 ("D" constraint): Include stack pointer in case of call0 ABI.
8290 * config/xtensa/xtensa-protos.h (xtensa_set_return_address,
8291 xtensa_expand_epilogue, xtensa_regno_to_class): Add new function
8292 prototypes.
8293 * config/xtensa/xtensa.c (xtensa_callee_save_size): New
8294 variable.
8295 (xtensa_regno_to_class): Make it a local variable in the
8296 function xtensa_regno_to_class.
8297 (xtensa_function_epilogue, TARGET_ASM_FUNCTION_EPILOGUE): Remove
8298 macro, function prototype and implementation.
8299 (reg_nonleaf_alloc_order): Make it a local variable in the
8300 function order_regs_for_local_alloc.
8301 (xtensa_conditional_register_usage): New function.
8302 (TARGET_CONDITIONAL_REGISTER_USAGE): Define macro.
8303 (xtensa_valid_move): Allow direct moves to stack pointer
8304 register in call0 ABI.
8305 (xtensa_setup_frame_addresses): Only spill register windows in
8306 windowed ABI.
8307 (xtensa_emit_call): Emit call(x)8 or call(x)0 in windowed and
8308 call0 ABI respectively.
8309 (xtensa_function_arg_1): Only mark a7 register for copying in
8310 windowed ABI.
8311 (xtensa_call_save_reg): New function.
8312 (compute_frame_size): Add space for callee saved register
8313 storage to the frame size in call0 ABI.
8314 (xtensa_expand_prologue): Generate code to set up stack frame
8315 and save callee-saved registers in call0 ABI.
8316 (xtensa_expand_epilogue): New function.
8317 (xtensa_set_return_address): New function.
8318 (xtensa_return_addr): Calculate return address in call0 ABI.
8319 (xtensa_builtin_saveregs): Only mark a7 register for copying and
8320 emit copying code in windowed ABI.
8321 (order_regs_for_local_alloc): Add preferred register allocation
8322 order for non-leaf function in call0 ABI.
8323 (xtensa_static_chain): Add atatic chain passing for call0 ABI.
8324 (xtensa_asm_trampoline_template): Add trampoline generation for
8325 call0 ABI.
8326 (xtensa_trampoline_init): Add trampoline initialization for
8327 call0 ABI.
8328 (xtensa_conditional_register_usage, xtensa_regno_to_class): New
8329 functions.
8330 * config/xtensa/xtensa.h (TARGET_WINDOWED_ABI): New macro.
8331 (TARGET_CPU_CPP_BUILTINS): Add built-in define for call0 ABI.
8332 (CALL_USED_REGISTERS): Modify to encode both windowed and call0
8333 ABI call-used registers.
8334 (HARD_FRAME_POINTER_REGNUM): Add frame pointer for call0 ABI.
8335 (INCOMING_REGNO, OUTGOING_REGNO): Use argument unchanged in
8336 call0 ABI.
8337 (REG_CLASS_CONTENTS): Include all registers into the preferred
8338 reload registers set, adjust the set in the
8339 xtensa_conditional_register_usage.
8340 (xtensa_regno_to_class): Drop variable declaration.
8341 (REGNO_REG_CLASS): Redefine to use xtensa_regno_to_class
8342 function.
8343 (WINDOW_SIZE): Define as 8 or 0 for windowed and call0 ABI
8344 respectively.
8345 (FUNCTION_PROFILER): Add _mcount call for call0 ABI.
8346 (TRAMPOLINE_SIZE): Define trampoline size for call0 ABI.
8347 (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 in call0 ABI.
8348 (ASM_OUTPUT_POOL_PROLOGUE): Always generate literal pool
8349 location in call0 ABI.
8350 (EH_RETURN_STACKADJ_RTX): New definition, use a10 for passing
8351 stack adjustment size when handling exception.
8352 (CRT_CALL_STATIC_FUNCTION): Add definition for call0 ABI.
8353 * config/xtensa/xtensa.md (A9_REG, UNSPECV_BLOCKAGE): New
8354 definitions.
8355 ("return" pattern): Generate ret.n/ret in call0 ABI.
8356 ("epilogue" pattern): Expand epilogue.
8357 ("nonlocal_goto" pattern): Use default in call0 ABI.
8358 ("eh_return" pattern): Move implementation to eh_set_a0_windowed,
8359 emit eh_set_a0_* depending on ABI.
8360 ("eh_set_a0_windowed" pattern): Former eh_return pattern.
8361 ("eh_set_a0_call0", "blockage"): New patterns.
8362
e4f2b9ef 83632015-03-03 Martin Liska <mliska@suse.cz>
8364
8365 PR ipa/65287
8366 * ipa-icf.c (sem_variable::parse): Skip all alias variables.
8367
e78a28e5 83682015-03-03 Michael Meissner <meissner@linux.vnet.ibm.com>
8369
8370 PR 65138/target
8371 * config/rs6000/rs6000-tables.opt: Regenerate table.
8372
9fe0a692 83732015-03-03 Renlin Li <renlin.li@arm.com>
8374
8375 * doc/md.texi (@item ^): Change ? into ^.
8376
32497dec 83772015-03-03 H.J. Lu <hongjiu.lu@intel.com>
8378
8379 * doc/tm.texi: Regenerated.
8380
a26d6c60 83812015-03-03 Max Filippov <jcmvbkbc@gmail.com>
8382
8383 * builtins.c (expand_builtin_return_addr): Add
8384 RETURN_ADDR_IN_PREVIOUS_FRAME to 'if' condition, remove
8385 surrounding #ifdef.
8386 * config/sparc/sparc.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Change
8387 definition to 1.
8388 * config/xtensa/xtensa.h (RETURN_ADDR_IN_PREVIOUS_FRAME):
8389 Likewise.
8390 * defaults.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 if
8391 undefined.
8392 * doc/tm.texi.in (RETURN_ADDR_IN_PREVIOUS_FRAME): Update
8393 paragraph.
8394
f5c995c5 83952015-03-03 Martin Jambor <mjambor@suse.cz>
c6e5fbeb 8396 Eric Botcazou <ebotcazou@adacore.com>
f5c995c5 8397
8398 * tree-sra.c (ipa_sra_check_caller_data): New type.
8399 (has_caller_p): Removed.
8400 (ipa_sra_check_caller): New function.
8401 (ipa_sra_preliminary_function_checks): Use it.
8402
718d4bcf 84032015-03-03 Martin Liska <mliska@suse.cz>
8404
8405 * ipa-icf.c (sem_item_optimizer::merge_classes): Use bit or
8406 instead of if branch.
8407
d48b0431 84082015-03-03 Martin Liska <mliska@suse.cz>
8409
8410 PR ipa/65282
8411 * ipa-icf.c (sem_variable::equals): Fix wrong condition.
8412
18526d26 84132015-03-23 Jeff Law <law@redhat.com>
8414
8415 PR tree-optimization/65241
8416 * tree-ssa-dom.c (lookup_avail_expr): Only modify the avail_expr
8417 hash table if INSERT is true.
8418
d0ed7b19 84192015-03-03 Georg-Johann Lay <avr@gjlay.de>
8420
8421 PR target/65296
8422 * config.gcc (extra_gcc_objs) [avr-*-rtems*]: Remove.
8423
40114021 84242015-03-03 Georg-Johann Lay <avr@gjlay.de>
8425
8426 PR target/64331
8427 * config/avr/avr.c (context.h, tree-pass.h): Include them.
8428 (avr_pass_data_recompute_notes): New static variable.
8429 (avr_pass_recompute_notes): New class.
8430 (avr_register_passes): New static function.
8431 (avr_option_override): Call it.
8432
2aa6267d 84332015-03-03 Georg-Johann Lay <avr@gjlay.de>
8434
8435 Fix various problems with specs file generation.
8436
8437 PR target/65296
8438 * config.gcc (extra_gcc_objs) [avr]: Remove.
8439 * config/avr/driver-avr.c: Remove file.
8440 * config/avr/t-avr (driver-avr.o): Remove rule.
8441 (gen-avr-mmcu-specs): Use CXX_FOR_BUILD, CXXFLAGS_FOR_BUILD and
8442 INCLUDES to build. Depend on TM_H.
8443 * config/avr/gen-avr-mmcu-specs.c: Tidy up code. Fix various
8444 build warnings. Fix non-matching types and non-existing %-codes.
8445 (tm.h): Include.
8446 (*lib) [!WITH_AVRLIBC]: Don't link libdev.a.
8447 (*libgcc) [WITH_AVRLIBC]: Add "-lm".
8448 * config/avr/avrlibc.h (LIBGCC_SPEC): Remove definition.
8449 * config/avr/avr.h (DRIVER_SELF_SPECS): Fix handling of -march=.
8450 (CPP_SPEC, CC1PLUS_SPEC, ASM_SPEC, LINK_SPEC, LIB_SPEC)
8451 (LIBGCC_SPEC): Remove definitions.
8452
765568b0 84532015-03-03 Eric Botcazou <ebotcazou@adacore.com>
8454
8455 * config/ia64/ia64.c (expand_vec_perm_interleave_2): Use gen_raw_REG
8456 to create a register in testing mode.
8457
c1df982e 84582015-03-03 Martin Liska <mliska@suse.cz>
ca0a430a 8459 Jan Hubicka <hubicka@ucw.cz>
c1df982e 8460
8461 PR ipa/65263
8462 * cgraph.c (cgraph_node::has_thunk_p): New function.
8463 * cgraph.h (cgraph_node::has_thunk_p: Likewise.
8464 * ipa-icf.c (redirect_all_callers): Do not redirect thunks.
8465 (sem_function::merge): Assert is changed.
8466
796859e5 84672015-03-03 Martin Liska <mliska@suse.cz>
8468 Martin Jambor <mjambor@suse.cz>
8469
8470 PR ipa/65087
8471 * ipa-icf.c (sem_item_optimizer::execute): Change function
8472 return value to boolean.
8473 (sem_item_optimizer::merge_classes): Likewise.
8474 (ipa_icf_driver): Return TODO_remove_functions in case there's
8475 a merge operation processed.
8476 * ipa-icf.h: Change function return value to boolean.
8477
49a1b909 84782015-03-02 Michael Meissner <meissner@linux.vnet.ibm.com>
8479
8480 PR 65138/target
8481 * config/rs6000/rs6000-cpus.def (powerpc64le): Add new generic
8482 processor type for 64-bit little endian PowerPC.
8483
8484 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
8485 -mdebug=reg, print TARGET_DEFAULT. Fix logic to use
8486 TARGET_DEFAULT if there is no default cpu. Fix -mdebug=reg
8487 printing built-in mask so it does not pass NULL pointers.
8488
8489 * doc/invoke.texi (IBM RS/6000 and PowerPC options): Document
8490 -mcpu=powerpc64le.
8491
95802f13 84922015-03-02 Steve Ellcey <sellcey@imgtec.com>
8493
8494 PR target/58158
8495 * config/mips/mips.md (mov<mode>cc): Change ISA_HAS_SEL check to
8496 !ISA_HAS_FP_CONDMOVE.
8497
54dd33d0 84982015-03-02 Aldy Hernandez <aldyh@redhat.com>
8499
8500 * config/i386/i386.md (*udivmod<mode>4_pow2): Remove
8501 reload_completed.
8502
06c3fbfc 85032015-03-02 Ulrich Drepper <drepper@gmail.com>
8504
8505 * doc/invoke.texi (Options for Code Generation Conventions):
8506 Fix URL of DSO paper.
49a1b909 8507
c6e5fbeb 85082015-03-02 Jan Hubicka <hubicka@ucw.cz>
9dcc8702 8509
8510 PR ipa/65130
8511 * ipa-inline.c (check_callers): Looks for recursion.
8512 (inline_to_all_callers): Give up on uninlinable or recursive edges.
8513 * ipa-inline-analysis.c (inline_summary_t::duplicate): Do not update
8514 summary of inline clones.
8515 (do_estimate_growth_1): Fix recursion check.
8516
c6e5fbeb 85172015-03-02 Jan Hubicka <hubicka@ucw.cz>
ab89cd93 8518
8519 PR ipa/64988
8520 * ipa-inline-transform.c (clone_inlined_nodes): Do not dissolve
8521 comdat groups.
8522
aa3393f7 85232015-03-02 Jan Hubicka <hubicka@ucw.cz>
8524 Aldy Hernandez <aldyh@redhat.com>
8525
8526 PR lto/65276
8527 * ipa-devirt.c (add_type_duplicate): Remove odr_violated assert
8528 when checking TYPE_BINFO.
8529
fbbe5f6b 85302015-03-02 Richard Biener <rguenther@suse.de>
8531
8532 PR ipa/65270
8533 * ipa-icf-gimple.c: Include builtins.h.
8534 (func_checker::compare_memory_operand): Compare base alignment.
8535
b32b49c1 85362015-03-02 Ilya Enkovich <ilya.enkovich@intel.com>
8537
8538 PR target/65184
8539 * gcc/config/i386/i386.c (ix86_pass_by_reference) Bounds
8540 are never passed by reference.
8541
d0cb6a0d 85422015-03-02 Ilya Enkovich <ilya.enkovich@intel.com>
8543
8544 PR target/65183
8545 * tree-chkp.c (chkp_check_lower): Don't check against
8546 zero bounds for already instrumented functions.
8547 (chkp_check_upper): Likewise.
8548 (chkp_fini): Clean pass local data to avoid wrong reusage.
8549
551f8dfb 85502015-02-28 Martin Liska <mliska@suse.cz>
c6e5fbeb 8551 Jan Hubicka <hubicka@ucw.cz>
551f8dfb 8552
8553 * ipa-icf.c (sem_variable::equals): Improve debug output;
8554 get variable constructor.
8555 (sem_variable::parse): Do not filter out too early; give up on
8556 volatile and register vars.
8557 (sem_item_optimizer::filter_removed_items): Filter out nonreadonly
8558 variables.
8559 * ipa-icf.h (sem_variable::init): Do not set ctor.
8560 (sem_variable::ctor): Remove.
8561
6357f22c 85622015-03-01 Aldy Hernandez <aldyh@redhat.com>
8563
8564 PR middle-end/65233
8565 * ipa-polymorphic-call.c (walk_ssa_copies): Handle empty PHIs.
8566
2aaa1027 85672015-02-28 Jan Hubicka <hubicka@ucw.cz>
8568
8569 * ipa-icf.c: Include stor-layout.h
8570 (sem_function::compare_cgraph_references): Rename to ...
8571 (sem_item::compare_cgraph_references): ... this one.
8572 (sem_variable::equals_wpa): New function
8573 (sem_variable::equals): Do not check stuff already verified by
8574 equals_wpa.
8575 (sem_variable::equals): Reorg based on varasm.c:compare_constant.
8576 * ipa-icf.h (sem_item): Add compare_cgraph_references.
8577 (sem_function): Remove compare_cgraph_references.
8578 (sem_variable): Turns equals_wpa into non-inline.
8579
d5d259d4 85802015-02-28 Jan Hubicka <hubicka@ucw.cz>
8581
8582 * ipa-icf.c (sem_function::init): Fix formating; skip GIMPLE_PREDICT.
8583 (sem_item::add_expr): New function.
8584 (sem_function::hash_stmt): Handle operands of most statements.
8585 (sem_variable::get_hash): Hash the actual constructor.
8586 * ipa-icf.h (sem_item): Add add_expr.
8587 (sem_function): Update prototype of hash_stmt
8588
7fb15fe8 85892015-02-28 Martin Liska <mliska@suse.cz>
c6e5fbeb 8590 Jan Hubicka <hubicka@ucw.cz>
7fb15fe8 8591
8592 PR ipa/65245
8593 * ipa-icf-gimple.c (func_checker::compare_function_decl):
8594 Remove.
8595 (func_checker::compare_variable_decl): Skip symtab vars.
8596 (func_checker::compare_cst_or_decl): Update.
8597 * ipa-icf.c (sem_function::parse): Do not consider aliases.
8598 (sem_function::compare_cgraph_references): Add ADDRESS parameter;
8599 use correct symtab predicates.
8600 (sem_function::equals_wpa): Update uses of compare_cgraph_references.
8601 (sem_variable::parse): Update comment.
8602 (sem_item_optimizer::build_graph): Consider ultimate aliases
8603 for references.
8604
2f51f5cb 86052015-02-28 Jan Hubicka <hubicka@ucw.cz>
8606
8607 * ipa-icf-gimple.c (func_checker::compare_operand): Fix handling
8608 of OBJ_TYPE_REF.
8609
1bd06fb4 86102015-02-28 Jan Hubicka <hubicka@ucw.cz>
8611
8612 * ipa-icf.c (sem_function::merge): Fix handling of COMDAT.
8613 (sem_variable::merge) Likewise.
8614
b9cb01c1 86152015-02-28 Jan Hubicka <hubicka@ucw.cz>
2f3662f2 8616
b9cb01c1 8617 * ipa-inline.c (can_inline_edge_p): Match opt_for_fn on inline
8618 target; also match flag_ipa_devirt.
8619
86202015-03-01 Martin Liska <mliska@suse.cz>
c6e5fbeb 8621 Jan Hubicka <hubicka@ucw.cz>
2f3662f2 8622
8623 * ipa-icf-gimple.c (func_checker::compare_variable_decl):
8624 Validate variable alignment.
8625 * ipa-icf.c (sem_function::equals_private): Be more precise
8626 about non-common function attributes.
8627 (sem_variable::equals): Likewise.
8628
97ccb517 86292015-02-28 Jan Hubicka <hubicka@ucw.cz>
8630
8631 PR ipa/65237
8632 * ipa-icf.c (sem_function::merge): Do not attempt to produce alias
8633 across COMDAT group boundary.
8634
edd9cb46 86352015-02-28 Jan Hubicka <hubicka@ucw.cz>
8636
8637 PR ipa/65232
8638 * ipa-icf.c (clear_decl_rtl): New function.
8639 (sem_function::merge): Clear RTL before forming alias.
8640 (sem_variable::merge): Clear RTL before forming alias.
8641
86bbd552 86422015-02-28 Jan Hubicka <hubicka@ucw.cz>
8643
8644 PR ipa/65236
c6e5fbeb 8645 * cgraphunit.c (cgraph_node::expand_thunk): Enable return slot opt.
86bbd552 8646
c03ae9b6 86472015-02-28 Xingxing Pan <xxingpan@marvell.com>
8648
8649 * config/aarch64/aarch64.md: (mov<mode>_aarch64): Change type
8650 to neon_to_gp<q>.
8651
c9929b60 86522015-02-27 Vladimir Makarov <vmakarov@redhat.com>
8653
8654 * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): Fix
8655 a typo in the description.
8656
4b69081d 86572015-02-27 Vladimir Makarov <vmakarov@redhat.com>
8658
8659 PR target/64317
8660 * params.def (PARAM_LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
8661 * params.h (LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF): New.
8662 * lra-constraints.c: Include "params.h".
8663 (EBB_PROBABILITY_CUTOFF): Use
8664 LRA_INHERITANCE_EBB_PROBABILITY_CUTOFF.
8665 (lra_inheritance): Use '<' instead of '<=' for
8666 EBB_PROBABILITY_CUTOFF.
8667 * doc/invoke.texi (lra-inheritance-ebb-probability-cutoff):
8668 Document change.
8669
f52caa41 86702015-02-27 Martin Liska <mliska@suse.cz>
8671
8672 * ipa-icf.h (struct symbol_compare_hashmap_traits): Add missing
8673 vector length condition.
8674
8327d69a 86752015-02-27 Sandra Loosemore <sandra@codesourcery.com>
8676
8677 * doc/extend.texi (x86 transactional memory intrinsics):
8678 Reorganize discussion of _xbegin. Clarify that the return
8679 value is a bit mask. Expand example and move to end of section.
8680
091e5e39 86812015-02-26 Jakub Jelinek <jakub@redhat.com>
8682 Aldy Hernandez <aldyh@redhat.com>
8683
8684 PR rtl-optimization/65220
8685 * config/i386/i386.md (*udivmod<mode>4_pow2): New.
8686
fb87313e 86872015-02-27 Vladimir Makarov <vmakarov@redhat.com>
8688
8689 PR target/65032
8690 * lra-remat.c (update_scratch_ops): New.
8691 (do_remat): Call it.
8692 * lra.c (lra_register_new_scratch_op): New. Take code from ...
8693 (remove_scratches): ... here.
8694 * lra-int.h (lra_register_new_scratch_op): New prototype.
8695
495cbfb8 86962015-02-27 Marek Polacek <polacek@redhat.com>
8697
8698 PR c/65040
8699 * doc/invoke.texi: Update to reflect that -Wformat=2 doesn't enable
8700 -Wformat-signedness anymore.
8701
90f58e2a 87022015-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8703
8704 * config/s390/s390.c: (s390_atomic_assign_expand_fenv): New
8705 function.
8706 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define macro.
8707
9cef796d 87082015-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8709
8710 * config/s390/s390.c (enum s390_builtin):
8711 Add S390_BUILTIN_S390_SFPC and S390_BUILTIN_S390_EFPC.
8712 (code_for_builtin): Add CODE_FOR_s390_sfpc and CODE_FOR_s390_efpc.
8713 (s390_init_builtins): Generate new builtin functions.
8714 * config/s390/s390.md (UNSPECV_SFPC, UNSPECV_EFPC): New constants.
8715 (s390_sfpc, s390_efpc): New pattern definitions.
8716
751c914e 87172015-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8718
8719 * config/s390/s390.c: (enum s390_builtin, s390_expand_builtin):
8720 Rename S390_BUILTIN_max to S390_BUILTIN_MAX.
8721 (s390_builtin_decls): New array.
8722 (s390_init_builtins): Put builtin decls into s390_builtin_decls.
8723 (s390_builtin_decl): New function.
8724 (TARGET_BUILTIN_DECL): Define macro.
8725
ab1e78e5 87262015-02-27 Richard Biener <rguenther@suse.de>
8727
8728 PR middle-end/63175
8729 * builtins.c (get_object_alignment_2): Make sure to re-apply
8730 the ANDed mask after recursing to its operand gets us a new
8731 misalignment bit position.
8732
ce7711df 87332015-02-26 Jan Hubicka <hubicka@ucw.cz>
8734 Martin Liska <mliska@suse.cz>
8735
8736 PR bootstrap/65150
8737 * ipa-icf.c (symbol_compare_collection::symbol_compare_colleciton):
8738 Use address_matters_p.
8739 (redirect_all_callers, set_addressable): New functions.
8740 (sem_function::merge): Reorganize and fix merging issues.
8741 (sem_variable::merge): Likewise.
8742 (sem_variable::compare_sections): Remove.
8743 * common.opt (fmerge-all-constants, fmerge-constants): Remove
8744 Optimization flag.
8745 * symtab.c (symtab_node::resolve_alias): When alias has aliases,
8746 redirect them.
8747 (symtab_node::make_decl_local): Set ADDRESSABLE bit when
8748 decl is used.
8749 (address_matters_1): New function.
8750 (symtab_node::address_matters_p): New function.
8751 * cgraph.c (cgraph_edge::verify_corresponds_to_fndecl): Fix
8752 check for merged flag.
8753 * cgraph.h (address_matters_p): Declare.
8754 (symtab_node::address_taken_from_non_vtable_p): Remove.
8755 (symtab_node::address_can_be_compared_p): New method.
8756 (ipa_ref::address_matters_p): Move here from ipa-ref.c; simplify.
8757 * ipa-visibility.c (symtab_node::address_taken_from_non_vtable_p):
8758 Remove.
8759 (comdat_can_be_unshared_p_1) Use address_matters_p.
8760 (update_vtable_references): Fix formating.
8761 * ipa-ref.c (ipa_ref::address_matters_p): Move inline.
8762 * cgraphunit.c (cgraph_node::create_wrapper): Drop UNINLINABLE flag.
8763 * cgraphclones.c: Preserve merged and icf_merged flags.
8764
6238b445 87652015-02-26 Sandra Loosemore <sandra@codesourcery.com>
8766
8767 * doc/extend.texi (Function Attributes): Fix spelling and typos.
8768 (Label Attributes): Likewise.
8769 (Cilk Plus Builtins): Likewise.
8770 (ARC SIMD Built-in Functions): Likewise.
8771 (ARM C Language Extensions (ACLE)): Likewise.
8772 (PowerPC Built-in Functions): Likewise.
8773 (PowerPC Hardware Transactional Memory Built-in Functions):
8774 Likewise.
8775
1e6c1ce6 87762015-02-26 Jakub Jelinek <jakub@redhat.com>
8777
229fa37d 8778 PR tree-optimization/65216
8779 * tree-ssa-reassoc.c (rewrite_expr_tree): Force creation of
8780 new stmt and new SSA_NAME for lhs whenever the arguments have
8781 changed and weren't just swapped. Fix comment typo.
8782
1e6c1ce6 8783 PR tree-optimization/65215
8784 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Return false
8785 for PDP endian targets.
8786 (perform_symbolic_merge, find_bswap_or_nop_1, find_bswap_or_nop):
8787 Fix up formatting issues.
8788 (bswap_replace): Likewise. For BYTES_BIG_ENDIAN, if the final access
8789 size is smaller than the original, adjust MEM_REF offset by the
8790 difference of sizes. Use is_gimple_mem_ref_addr instead of
8791 is_gimple_min_invariant test to avoid adding address temporaries.
8792
0e62482d 87932015-02-26 Martin Liska <mliska@suse.cz>
8794 Jan Hubicka <hubicka@ucw.cz>
8795
8796 PR ipa/64693
8797 * ipa-icf.c (symbol_compare_collection::symbol_compare_collection): New.
8798 (sem_item_optimizer::subdivide_classes_by_sensitive_refs): New function.
8799 (sem_item_optimizer::process_cong_reduction): Include division by
8800 sensitive references.
8801 * ipa-icf.h (struct symbol_compare_hashmap_traits): New class.
8802 * ipa-ref.c (ipa_ref::address_matters_p): New function.
8803 * ipa-ref.h (ipa_ref::address_matters_p): Likewise.
8804
8992f348 88052015-02-26 Georg-Johann Lay <avr@gjlay.de>
8806
8807 PR target/65192
8808 * config/avr/avr-protos.h (tiny_valid_direct_memory_access_range):
8809 Remove.
8810 * config/avr/avr.c: Same.
8811 (avr_legitimate_address_p) <AVR_TINY, CONSTANT_ADDRESS_P>:
8812 Refuse any constant address not in 0..0xbf.
8813 * config/avr/avr.md (*mov<mode>, *movsf): Remove
8814 tiny_valid_direct_memory_access_range from insn conditions.
8815 (mov<mode>): Don't special-case expansion of avrtiny addresses.
8816
e13062e7 88172015-02-26 Oleg Endo <olegendo@gcc.gnu.org>
8818
8819 PR target/61142
8820 * config/sh/sh.c (sh_check_add_incdec_notes): New function.
8821 * config/sh/sh-protos.h (sh_check_add_incdec_notes): Declare it.
8822 * config/sh/predicates.md (const_logical_operand): New predicate.
8823 * config/sh/sh.md: Add new peephole2 patterns.
8824
897c92c3 88252015-02-26 Marek Polacek <polacek@redhat.com>
8826
8827 PR ipa/65008
8828 * ipa-inline.c (early_inliner): Recompute inline parameters.
8829
7c0c1f65 88302015-02-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8831
8832 PR target/65171
8833 * config/rs6000/rs6000.c (rs6000_analyze_swaps): Ensure
8834 instructions with TImode operands are included in the analysis.
8835
c5baf1e1 88362015-02-26 Sebastian Pop <s.pop@samsung.com>
8837
8838 * tree-ssa-threadupdate.c (dump_jump_thread_path): Print all edges
8839 of an EDGE_FSM_THREAD.
8840
ff4194af 88412015-02-25 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
8842
8843 * config/rs6000/htm.md (tcheck): Fix assembly encoding.
8844
d073a2ae 88452015-02-25 Aldy Hernandez <aldyh@redhat.com>
8846
8847 PR debug/46102
8848 * dwarf2out.c (dwarf2out_init): Disable -feliminate-dwarf2-dups.
8849
b9903eb3 88502015-02-26 Sebastian Pop <s.pop@samsung.com>
8851
8852 PR tree-optimization/65048
8853 * tree-ssa-threadupdate.c (valid_jump_thread_path): New.
8854 (thread_through_all_blocks): Call valid_jump_thread_path.
8855 Remove invalid FSM jump-thread paths.
8856
2e971afd 88572015-02-26 Jakub Jelinek <jakub@redhat.com>
8858
8859 * passes.c (ipa_write_summaries_1): Call lto_output_init_mode_table.
8860 (ipa_write_optimization_summaries): Likewise.
8861 * tree-streamer.h: Include data-streamer.h.
8862 (streamer_mode_table): Declare extern variable.
8863 (bp_pack_machine_mode, bp_unpack_machine_mode): New inline functions.
8864 * lto-streamer-out.c (lto_output_init_mode_table,
8865 lto_write_mode_table): New functions.
8866 (produce_asm_for_decls): Call lto_write_mode_table when streaming
8867 offloading LTO.
8868 * lto-section-in.c (lto_section_name): Add "mode_table" entry.
8869 (lto_create_simple_input_block): Add mode_table argument to the
8870 lto_input_block constructors.
8871 * ipa-prop.c (ipa_prop_read_section, read_replacements_section):
8872 Likewise.
8873 * data-streamer-in.c (string_for_index): Likewise.
8874 * ipa-inline-analysis.c (inline_read_section): Likewise.
8875 * ipa-icf.c (sem_item_optimizer::read_section): Likewise.
8876 * lto-cgraph.c (input_cgraph_opt_section): Likewise.
8877 * lto-streamer-in.c (lto_read_body_or_constructor,
8878 lto_input_toplevel_asms): Likewise.
8879 (lto_input_mode_table): New function.
8880 * tree-streamer-out.c (pack_ts_fixed_cst_value_fields,
8881 pack_ts_decl_common_value_fields, pack_ts_type_common_value_fields):
8882 Use bp_pack_machine_mode.
8883 * real.h (struct real_format): Add name field.
8884 * lto-streamer.h (enum lto_section_type): Add LTO_section_mode_table.
8885 (class lto_input_block): Add mode_table member.
8886 (lto_input_block::lto_input_block): Add mode_table_ argument,
8887 initialize mode_table.
8888 (struct lto_file_decl_data): Add mode_table field.
8889 (lto_input_mode_table, lto_output_init_mode_table): New prototypes.
8890 * tree-streamer-in.c (unpack_ts_fixed_cst_value_fields,
8891 unpack_ts_decl_common_value_fields,
8892 unpack_ts_type_common_value_fields): Call bp_unpack_machine_mode.
8893 * tree-streamer.c (streamer_mode_table): New variable.
8894 * real.c (ieee_single_format, mips_single_format,
8895 motorola_single_format, spu_single_format, ieee_double_format,
8896 mips_double_format, motorola_double_format,
8897 ieee_extended_motorola_format, ieee_extended_intel_96_format,
8898 ieee_extended_intel_128_format, ieee_extended_intel_96_round_53_format,
8899 ibm_extended_format, mips_extended_format, ieee_quad_format,
8900 mips_quad_format, vax_f_format, vax_d_format, vax_g_format,
8901 decimal_single_format, decimal_double_format, decimal_quad_format,
8902 ieee_half_format, arm_half_format, real_internal_format): Add name
8903 field.
8904 * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format): Likewise.
8905
d3aa9bd5 89062015-02-26 Yuri Rumyantsev <ysrumyan@gmail.com>
8907
8908 PR target/65161
8909 * config/i386/i386.c (ix86_sched_reorder): Skip instruction
8910 reordering for selective scheduling.
8911
580f4c48 89122015-02-26 Terry Guo <terry.guo@arm.com>
8913
8914 * config/arm/arm-cores.def (cortex-m7): Add flag FL_NO_VOLATILE_CE.
8915 * config/arm/arm-protos.h (FL_NO_VOLATILE_CE): New flag.
8916 (arm_arch_no_volatile_ce): Declare new global variable.
8917 * config/arm/arm.c (arm_arch_no_volatile_ce): New global variable.
8918 (arm_option_override): Assign value to arm_arch_no_volatile_ce.
8919 * config/arm/arm.h (arm_arch_no_volatile_ce): Declare it.
8920 (TARGET_NO_VOLATILE_CE): New macro.
8921 * config/arm/arm.md (arm_comparison_operator): Disabled if not allow
8922 volatile memory access in IT block
8923
93d8e5f3 89242015-02-25 Kai Tietz <ktietz@redhat.com>
8925
8926 PR tree-optimization/61917
8927 * tree-vect-loop.c (vectorizable_reduction): Handle obvious case
8928 that reduc_def_stmt is null.
8929
819a768f 89302015-02-25 Martin Liska <mliska@suse.cz>
8931
8932 * ipa-icf-gimple.c (func_checker::compare_variable_decl): Compare
8933 hard register variables.
8934
76284587 89352015-02-25 Kai Tietz <ktietz@redhat.com>
8936
8937 PR target/64212
8938 * symtab.c (symtab::make_decl_local): Set DECL_IMPORT_P explicit to 0.
8939 (symtab::noninterposable_alias): Likewise.
8940
c2098d00 89412015-02-25 Ilya Enkovich <ilya.enkovich@intel.com>
8942
8943 PR target/65167
8944 * gcc/config/i386/i386.c (ix86_function_arg_regno_p): Support
8945 bounds registers.
8946 (avoid_func_arg_motion): Add dependencies for BNDSTX insns.
8947
95b0e572 89482015-02-25 Alan Lawrence <alan.lawrence@arm.com>
8949
8950 PR target/64997
8951 * config/aarch64/aarch64.md (*xor_one_cmpl<mode>3): Use FP_REGNUM_P
8952 as split condition; force split via '#' in output pattern.
8953
de3aabcf 89542015-02-25 Richard Biener <rguenther@suse.de>
c6e5fbeb 8955 Kai Tietz <ktietz@redhat.com>
de3aabcf 8956
8957 PR tree-optimization/61917
8958 * tree-vect-loop.c (vectorizable_reduction): Allow
8959 vect_internal_def without reduction to exit graceful.
8960
cb5cf35e 89612015-02-25 Georg-Johann Lay <avr@gjlay.de>
8962
8963 PR target/65196
8964 * config/avr/avr.c (avr_adjust_insn_length): Call recog_memoized
8965 only with NONDEBUG_INSN_P.
8966
9d4943b2 89672015-02-25 Georg-Johann Lay <avr@gjlay.de>
8968
8969 Use variadic macros with avr-log.c.
8970
8971 * config/avr/avr-protos.h (avr_vdump): New prototype.
8972 (avr_log_set_caller_e, avr_log_set_caller_f): Remove protos.
8973 (avr_edump, avr_fdump, avr_dump): (Re)define to use avr_vdump.
8974 * config/avr/avr-log.c: Adjust comments.
8975 (avr_vdump): New function.
8976 (avr_vadump): Pass caller as 2nd argument instead of format string.
8977 (avr_log_caller, avr_log_fdump_e, avr_log_fdump_f)
8978 (avr_log_set_caller_e, avr_log_set_caller_f): Remove.
8979
ff7cb116 89802015-02-25 Jakub Jelinek <jakub@redhat.com>
8981
8982 PR lto/64374
8983 * target.def (target_option_stream_in): New target hook.
8984 * tree-streamer-in.c (streamer_read_tree_bitfields): Invoke
8985 targetm.target_option.post_stream_in if non-NULL.
8986 * doc/tm.texi.in: Add @hook TARGET_OPTION_POST_STREAM_IN.
8987 * doc/tm.texi: Updated.
8988 * config/i386/i386.c (ix86_function_specific_post_stream_in): New
8989 function.
8990 (TARGET_OPTION_POST_STREAM_IN): Redefine.
8991
3a1a667f 89922015-02-24 Jeff Law <law@redhat.com>
8993
8994 PR target/65117
8995 * config/xtensa/xtensa.md (zero_cost_loop_start): Reverse numbering
8996 of operand 0 and operand 2.
8997 (zero_cost_loop_end, loop_end): Similarly.
9d4943b2 8998
2084326e 89992015-02-24 Aldy Hernandez <aldyh@redhat.com>
9000
9001 * gimple.h (gimple_build_assign): Rename CXX_MEM_STAT_DECL to
9002 CXX_MEM_STAT_INFO.
9003
29236229 90042015-02-24 DJ Delorie <dj@redhat.com>
9005
c6e5fbeb 9006 * config/rl78/rl78-protos.h (rl78_split_movsi): Accept a mode as well.
29236229 9007 * config/rl78/rl78-expand.md (movsf): New, same as movsi.
9008 * config/rl78/rl78.c (rl78_split_movsi): Accept a mode, use it
9009 instead of hardcoding SImode.
9010
ec12b31a 90112015-02-24 Bernd Schmidt <bernds@codesourcery.com>
9012
9013 * omp-low.c (create_omp_child_function): Tag entrypoint
9014 functions with a special attribute.
9015
bfea87e3 90162015-02-24 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
9017
9018 PR target/65058
9019 * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Drop unused variable.
9020
b83f34d0 90212015-02-24 Vladimir Makarov <vmakarov@redhat.com>
9022
9023 PR rtl-optimization/65123
9024 * lra-remat.c (operand_to_remat): Check hard regs in insn
9025 definition too.
9026
36c7f07f 90272015-02-24 Nick Clifton <nickc@redhat.com>
9028
9029 * config/v850/v850.h (ASM_SPEC): Pass -msoft-float/-mhard-float on
9030 to the assembler.
9031
6349b8cc 90322015-02-24 Thomas Schwinge <thomas@codesourcery.com>
9033
9034 PR libgomp/64625
9035 * omp-builtins.def (BUILT_IN_GOACC_DATA_START): Specify as
9036 BT_FN_VOID_INT_SIZE_PTR_PTR_PTR, not
9037 BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR.
9038 (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_UPDATE): Specify as
9039 BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR, not
9040 BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR.
9041 (BUILT_IN_GOACC_PARALLEL): Specify as
9042 BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR, not
9043 BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR.
9044 * builtin-types.def
9045 (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
9046 (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
9047 Remove function types.
9048 (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
9049 (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
9050 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
9051 New function types.
9052
a1faa210 90532015-02-24 Georg-Johann Lay <avr@gjlay.de>
9054
9055 * config/avr/stdfix.h [__WITH_AVRLIBC__]: Include <stdfix-avrlibc.h>.
9056
da002466 90572015-02-24 Jakub Jelinek <jakub@redhat.com>
9058
9059 PR tree-optimization/65170
9060 * wide-int.cc (wi::mul_internal): For the umul_ppmm optimization,
9061 if val[1] < 0, clear also val[2] and return 3.
9062
269e3273 90632015-02-24 Alan Modra <amodra@gmail.com>
9064
e4899945 9065 PR target/65172
269e3273 9066 * config/rs6000/rs6000.c (get_memref_parts): Only return true
9067 when *base is a reg. Handle nested plus addresses. Simplify
9068 pre_modify test.
9069
2a63d225 90702015-02-22 Max Filippov <jcmvbkbc@gmail.com>
9071
9072 * config/xtensa/xtensa.h (CONSTANT_ALIGNMENT, DATA_ALIGNMENT):
9073 use natural alignment when optimizing for size.
9074
e6935d2f 90752015-02-23 Kaz Kojima <kkojima@gcc.gnu.org>
9076
9077 PR target/65153
9078 * config/sh/sh.md (movsicc_true+3): Remove peephole.
9079 * config/sh/sh-protos.h (replace_n_hard_rtx): Don't declare.
9080 * config/sh/sh.c (replace_n_hard_rtx): Remove.
9081
a140fb64 90822015-02-23 Richard Sandiford <richard.sandiford@arm.com>
9083
9084 PR fortran/63427
9085 * wide-int.cc (wi::from_mpz): Cope with unwrapped values that are
9086 too big for a wide_int. Implement missing wrapping operation.
9087
e8a63d75 90882015-02-23 Oleg Endo <olegendo@gcc.gnu.org>
9089
9090 PR target/65163
9091 * config/sh/sh.md (swapbsi2, related peephole2): Use const_int -65536
9092 instead of const_int 4294901760.
9093
75e53476 90942015-02-23 Georg-Johann Lay <avr@gjlay.de>
9095
9096 * config/avr/t-avr: Fix typo in comment.
9097
704f0707 90982015-02-21 Richard Sandiford <richard.sandiford@arm.com>
9099
9100 * doc/rtl.texi (fma): Clarify documentation.
9101
54d28c30 91022015-02-20 Aldy Hernandez <aldyh@redhat.com>
9103
9104 PR debug/58123
9105 * gimplify.c (gimplify_expr): Prefer location of TRY_FINALLY_EXPR
9106 over input_location.
9107
41971a20 91082015-02-20 Bernd Schmidt <bernds@codesourcery.com>
9109
9110 * tree-streamer-in.c (unpack_ts_decl_common_value_fields,
9111 unpack_ts_type_common_value_fields): If ACCEL_COMPILER,
9112 restrict alignments to absolute_biggest_alignment.
9113 * config/i386/i386.c (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT):
9114 Define.
9115 * doc/tm.texi.in (TARGET_ABSOLUTE_BIGGEST_ALIGNMENT): Add.
9116 * doc/tm.texi: Regenerate.
9117 * target.def (absolute_biggest_alignment): New DEFHOOKPOD.
9118
a1641aaa 91192015-02-20 Vladimir Makarov <vmakarov@redhat.com>
9120
9121 PR target/64172
c6e5fbeb 9122 * ira-color.c (color_pass): Prevent splitting multi-register pseudos.
a1641aaa 9123
bb80be62 91242015-02-20 Richard Biener <rguenther@suse.de>
9125
9126 PR tree-optimization/65136
9127 * tree-ssa-propagate.c: Include cfgloop.h.
9128 (replace_phi_args_in): Avoid replacing loop latch edge PHI
9129 arguments with constants.
9130
c80f87ec 91312015-02-20 Jakub Jelinek <jakub@redhat.com>
9132 Martin Liska <mliska@suse.cz>
9133
9134 PR target/63892
9135 * ipa-icf.c (sem_function::merge): If DECL_COMDAT_GROUP (alias->decl),
9136 don't try to create_thunk if stdarg_p. If
9137 !sem_item::target_supports_symbol_aliases_p (), similarly, and try to
9138 redirect_callers if possible.
9139 (sem_item_optimizer::execute): Call unregister_hooks here...
9140 (ipa_icf_driver): ... instead of here.
9141
aadc98cb 91422015-02-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9143
9144 * config/aarch64/aarch64.md (*aarch64_lshr_sisd_or_int_<mode>3):
9145 Mark operand 0 as earlyclobber in 2nd alternative.
9146 (1st define_split below *aarch64_lshr_sisd_or_int_<mode>3):
9147 Write negated shift amount into QI lowpart operand 0 and use it
9148 in the shift step.
9149 (2nd define_split below *aarch64_lshr_sisd_or_int_<mode>3): Likewise.
9150
a73afd90 91512015-02-20 Bernd Schmidt <bernds@codesourcery.com>
9152
c6e5fbeb 9153 * cgraph.h (clone_function_name_1): Declare.
9154 * cgraphclones.c (clone_function_name_1): New function.
9155 (clone_function_name): Use it.
9156 * lto-partition.c: Include "stringpool.h".
9157 (must_not_rename, maybe_rewrite_identifier)
9158 (validize_symbol_for_target): New static functions.
9159 (privatize_symbol_name): Use must_not_rename.
9160 (promote_symbol): Call validize_symbol_for_target.
9161 (lto_promote_cross_file_statics): Likewise.
9162 (lto_promote_statics_nonwpa): Likewise.
a73afd90 9163
8968f6ff 91642015-02-20 Georg-Johann Lay <avr@gjlay.de>
9165
9166 PR target/64452
9167 * config/avr/avr.md (pushhi_insn): New insn.
9168 (push<mode>1): Push virtual regs in one chunk using pushhi1_insn.
9169
92aa450f 91702015-02-20 Bernd Schmidt <bernds@codesourcery.com>
9171 Jakub Jelinek <jakub@redhat.com>
9172
9173 * tree-streamer.c (preload_common_nodes): Don't preload
9174 TI_VA_LIST* for offloading.
9175 * tree-stdarg.c (pass_stdarg::gate): Disable for ACCEL_COMPILER
9176 in_lto_p.
9177
786391d9 91782015-02-19 John David Anglin <danlgin@gcc.gnu.org>
9179
9180 * config/pa/pa.c (pa_emit_move_sequence): Always force
9181 (const (plus (symbol) (const_int))) to const mem. Put REG_EQUAL
9182 note on insn.
0e485231 9183
9184 * config/pa/pa.c (pa_reloc_rw_mask): New function.
9185 (TARGET_ASM_RELOC_RW_MASK): Define.
9186 (pa_cannot_force_const_mem): Revert previous change.
9187
f8298177 91882015-02-19 Martin Jambor <mjmabor@suse.cz>
9189 Jan Hubicka <hubicka@ucw.cz>
9190
9191 PR ipa/65028
9192 * ipa-cp.c (propagate_alignment_accross_jump_function): Fix propagation
9193 across jump functions.
9194
6ca5d410 91952015-02-19 Uros Bizjak <ubizjak@gmail.com>
9196
9197 * config/alpha/alpha.c (alpha_in_small_data_p): Reject common symbols.
9198
e5200f9f 91992015-02-19 Sandra Loosemore <sandra@codesourcery.com>
9200
6ca5d410 9201 * doc/extend.texi (x86 transactional memory intrinsics): Copy-edit.
e5200f9f 9202
bfefb5bd 92032015-02-19 Richard Henderson <rth@redhat.com>
9204
9205 PR middle-end/65074
9206 * varasm.c (default_binds_local_p_2): Don't test node->definition;
9207 test DECL_EXTERNAL independent of symtab_node.
9208
00984d17 92092015-02-19 Jakub Jelinek <jakub@redhat.com>
9210
9211 PR lto/65012
9212 * varpool.c (varpool_node::get_constructor): Return early
9213 if this->lto_file_data is NULL.
9214
e2508366 92152015-02-19 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
9216
6ca5d410 9217 * haifa-sched.c (enum rfs_decision, rfs_str): Remove RFS_DEBUG.
9218 (rank_for_schedule_debug): Update.
9219 (ready_sort): Make static. Move sorting logic to ...
9220 (ready_sort_debug, ready_sort_real): New static functions.
9221 (schedule_block): Sort both debug insns and real insns in preparation
9222 for ready list trimming. Improve debug output.
9223 * sched-int.h (ready_sort): Remove global declaration.
e2508366 9224
8ed0255a 92252015-02-18 Trevor Saunders <tsaunders@mozilla.com>
9226
9227 * ipa-icf.c (sem_function::equals_private): Adjust.
9228 (sem_function::bb_dict_test): Take a vec<int> * instead of
9229 auto_vec<int>.
9230 * ipa-icf.h (bb_dict_test): Likewise.
9231
4422041b 92322015-02-18 Jakub Jelinek <jakub@redhat.com>
9233
9234 PR gcov-profile/64634
9235 * tree-eh.c (frob_into_branch_around): Fix up typos
9236 in function comment.
9237 (lower_catch): Put eh_seq resulting from EH lowering of
995c6643 9238 the cleanup sequence after the cleanup rather than before it.
4422041b 9239
7c09c5f7 92402015-02-18 Tom de Vries <tom@codesourcery.com>
9241
9242 * common.opt (fstdarg-opt): New option.
9243 * tree-stdarg.c (pass_stdarg::gate): Use flag_stdarg_opt.
9244 * doc/invoke.texi (@item Optimization Options): Add -fstdarg-opt.
9245 (@item -fstdarg-opt): New item.
9246
a21aaa7e 92472015-02-18 H.J. Lu <hongjiu.lu@intel.com>
9248
9249 PR target/65064
9250 * config/ia64/predicates.md (sdata_symbolic_operand): Return false
9251 for common symbols.
9252
99988a8c 92532015-02-18 Jakub Jelinek <jakub@redhat.com>
9254
9255 * config/i386/t-intelmic (mkoffload.o): Remove dependency on
9256 insn-modes.h.
9257 (ALL_HOST_OBJS): Add mkoffload.o.
9258 * config/nvptx/t-nvptx (ALL_HOST_OBJS): Likewise.
9259
efb3a774 92602015-02-18 Jan Hubicka <hubicka@ucw.cz>
9261
9262 * ipa-devirt.c (odr_subtypes_equivalent_p): Fix formating.
9263 (compare_virtual_tables): Be smarter about skipping typeinfos;
9264 do sane output on virtual table table mismatch.
9265 (warn_odr): Be ready for forward declarations of enums;
9266 output sane info on base mismatch and virtual table mismatch.
9267 (add_type_duplicate): Fix code choosing prevailing type; do not ICE
9268 when only one type is polymorphic.
9269 (get_odr_type): Fix hashtable corruption.
9270 (dump_odr_type): Dump mangled names.
9271
67a97bd8 92722015-02-18 Richard Biener <rguenther@suse.de>
9273
9274 PR tree-optimization/65063
9275 * tree-predcom.c (determine_unroll_factor): Return 1 if we
9276 have replaced looparound PHIs.
9277
9b8af749 92782015-02-18 Martin Liska <mliska@suse.cz>
9279
9280 * lto-streamer.c (lto_streamer_init): Encapsulate
9281 streamer_check_handled_ts_structures with checking macro.
9282
033ab5d3 92832015-02-18 Jakub Jelinek <jakub@redhat.com>
9284
9285 PR ipa/65087
9286 * cgraphclones.c (cgraph_node::create_virtual_clone): Only copy
9287 section if !implicit_section.
9288 (cgraph_node::create_version_clone_with_body): Likewise.
9289 * trans-mem.c (ipa_tm_create_version): Likewise.
9290
0dbca901 92912015-02-18 Richard Biener <rguenther@suse.de>
9292
9293 PR tree-optimization/62217
9294 * tree-ssa-dom.c (cprop_operand): Avoid propagating copies
9295 into BIVs.
9296
243af147 92972015-02-18 Marek Polacek <polacek@redhat.com>
9298
9299 PR sanitizer/65081
9300 * ubsan.c (OBJSZ_MAX_OFFSET): Define.
9301 (ubsan_expand_objsize_ifn): Don't emit run-time check if the offset
9302 is in range [-16K, -1]. Don't issue run-time error if
9303 (ptr > ptr + offset).
9304
2fdc66a9 93052015-02-18 Thomas Schwinge <thomas@codesourcery.com>
9306
b8c9c5c2 9307 * doc/install.texi (nvptx-*-none): New section.
9308 * doc/invoke.texi (Nvidia PTX Options): Likewise.
9309 * config/nvptx/nvptx.opt: Update.
9310
a7243b52 9311 * config/nvptx/mkoffload.c (parse_env_var, free_array_of_ptrs)
9312 (access_check): New functions, copied from
9313 config/i386/intelmic-mkoffload.c.
9314 (main): For non-installed testing, look in all COMPILER_PATHs for
9315 GCC_INSTALL_NAME.
9316
2fdc66a9 9317 * config/nvptx/nvptx.h (GOMP_SELF_SPECS): Define macro.
9318
8f46e8a7 93192015-02-18 Andrew Pinski <apinski@cavium.com>
9320 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
9321
9322 * config/aarch64/aarch64.c (*aarch64_load_symref_appropriately):
9323 Check whether the destination of SYMBOL_SMALL_TPREL is Pmode.
9324
7feaa33e 93252015-02-17 Jan Hubicka <hubicka@ucw.cz>
9326
9327 * ipa-visibility.c (function_and_variable_visibility): Only
9328 check locality if node is not already local.
9329 * ipa-inline.c (want_inline_function_to_all_callers_p): Use
9330 call_for_symbol_and_aliases instead of
9331 call_for_symbol_thunks_and_aliases.
9332 (ipa_inline): Likewise.
9333 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
9334 first walk aliases.
9335 * ipa.c (symbol_table::remove_unreachable_nodes): Use
9336 call_for_symbol_and_aliases.
9337 * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
9338 (ipa_propagate_frequency_1): Use it; use opt_for_fn
9339 (ipa_propagate_frequency): Update.
9340 (ipa_profile): Add opt_for_fn gueards.
9341
e38c7760 93422015-02-17 Oleg Endo <olegendo@gcc.gnu.org>
9343
9344 * config/sh/sh.opt (mcbranch-force-delay-slot): New option.
9345 * doc/invoke.texi (SH options): Document it.
9346 * config/sh/sh.c (sh_insn_length_adjustment): Check
9347 TARGET_CBRANCH_FORCE_DELAY_SLOT instead of sh_cpu_attr == CPU_SH2E.
9348
7715e0c8 93492015-02-17 H.J. Lu <hongjiu.lu@intel.com>
9350
9351 * common.opt (fipa-cp-alignment): New.
9352 * ipa-cp.c (ipcp_store_alignment_results): Check
9353 flag_ipa_cp_alignment.
9354 * opts.c (default_options_table): Enable -fipa-cp-alignment for
9355 -O2.
9356 (enable_fdo_optimizations): Set x_flag_ipa_cp_alignment.
9357 * doc/invoke.texi: Document -fipa-cp-alignment.
9358
fdee3e8a 93592015-02-17 Oleg Endo <olegendo@gcc.gnu.org>
9360
9361 PR target/64793
9362 * config/sh/sh.md (cbranch define_delay): Set annulled true branch insn
9363 to nil. Adjust comments.
9364
e3f2be84 93652015-02-17 Jan Hubicka <hubicka@ucw.cz>
9366
9367 * ipa-visibility.c (function_and_variable_visibility): Only
9368 check locality if node is not already local.
9369 * ipa-inline.c (want_inline_function_to_all_callers_p): Use
9370 call_for_symbol_and_aliases instead of
9371 call_for_symbol_thunks_and_aliases.
9372 (ipa_inline): Likewise.
9373 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
9374 first walk aliases.
9375 * ipa.c (symbol_table::remove_unreachable_nodes): Use
9376 call_for_symbol_and_aliases.
9377 * ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
9378 (ipa_propagate_frequency_1): Use it; use opt_for_fn
9379 (ipa_propagate_frequency): Update.
9380 (ipa_profile): Add opt_for_fn guards.
9381
5947a4f0 93822015-02-17 Thomas Schwinge <thomas@codesourcery.com>
9383
9384 * config/nvptx/mkoffload.c (parse_file): Fix logic error in
9385 skipping of "strange" tokens.
9386
a8d15480 93872015-02-17 Jeff Law <law@redhat.com>
9388
9389 * tree-vrp.c (identify_jump_threads): Use last_stmt. Remove
9390 obsolete comment.
9391
75482765 93922015-02-17 James Greenhalgh <james.greenhalgh@arm.com>
9393
9394 * haifa-sched.c (recompute_todo_spec): Treat SCHED_GROUP_P
9395 as forcing a HARD_DEP between instructions, thereby
9396 disallowing rewriting to break dependencies.
9397
ddd4cdce 93982015-02-16 Jan Hubicka <hubicka@ucw.cz>
9399
9400 * symtab.c (symtab_node::verify_base): Verify body_removed->!definiton
9401 * lto-cgraph.c (lto_output_varpool_node): Do not keep definition of
9402 variables in boundary that have no inlitalizer encoded and are
9403 not aliases.
9404 * varasm.c (default_binds_local_p_2): External definitions do not
9405 count as definitions here.
9406
849b1089 94072015-02-16 Jeff Law <law@redhat.com>
9408
9409 PR tree-optimization/64823
9410 * tree-vrp.c (identify_jump_threads): Handle blocks with no real
9411 statements.
9412 * tree-ssa-threadedge.c (potentially_threadable_block): Allow
9413 threading through blocks with PHIs, but no statements.
9414 (thread_through_normal_block): Distinguish between blocks where
9415 we did not process all the statements and blocks with no statements.
9416
022a2340 94172015-02-16 Jakub Jelinek <jakub@redhat.com>
9418 James Greenhalgh <james.greenhalgh@arm.com>
9419
9420 PR ipa/64963
9421 * cgraphclones.c (cgraph_node::create_virtual_clone): Copy
9422 section if not linkonce. Fix up formatting.
9423 (cgraph_node::create_version_clone_with_body): Copy section.
9424 * trans-mem.c (ipa_tm_create_version): Likewise.
9425
a69f2cf8 94262015-02-16 Richard Biener <rguenther@suse.de>
9427
9428 PR tree-optimization/65077
9429 * tree-ssa-structalias.c (get_constraint_for_1): Handle
9430 IMAGPART_EXPR, REALPART_EXPR and BIT_FIELD_REF.
9431 (find_func_aliases): Allow float values to carry pointers again.
9432
897891b5 94332015-02-16 James Greenhalgh <james.greenhalgh@arm.com>
9434
9435 * doc/install.texi (Specific): Reorder targets list to put
9436 aarch64 in alphabetical order. Add a link to aarch64*-*-*
9437 from the top menu.
9438
1079e475 94392015-02-16 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
9440 David Edelsohn <dje.gcc@gmail.com>
9441
9442 PR target/65058
9443 * config/rs6000/rs6000.c (rs6000_output_symbol_ref): Append storage
9444 mapping class to external variable or function reference.
9445 * config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Do not append storage
9446 mapping class.
9447
94482015-02-16 David Eelsohn <dje.gcc@gmail.com>
9449
9450 PR target/53348
9451 * config/rs6000/rs6000.c (rs6000_declare_alias): Only use
9452 ASM_WEAKEN_DECL if defined.
9453
17953d13 94542015-02-16 Richard Biener <rguenther@suse.de>
9455
9456 PR lto/65015
9457 * varasm.c (default_file_start): For LTO produced units
9458 emit <artificial> as file directive.
9459
182624fa 94602015-02-16 Richard Biener <rguenther@suse.de>
9461
9462 PR tree-optimization/63593
9463 * tree-predcom.c (execute_pred_commoning_chain): Delay removing
9464 stmts and releasing SSA names until...
9465 (execute_pred_commoning): ... after processing all chains.
9466
c61d51af 94672015-02-16 Jan Hubicka <hubicka@ucw.cz>
9468
9469 PR ipa/65059
9470 * ipa-comdats.c (ipa_comdats): Do not categorize thunks to
9471 external functions.
9472
7760911e 94732015-02-15 Sandra Loosemore <sandra@codesourcery.com>
9474
9475 * doc/bugreport.texi: Adjust section titles throughout the file
9476 to use "Title Case".
9477 * doc/extend.texi: Likewise.
9478 * doc/gcov.texi: Likewise.
9479 * doc/implement-c.texi: Likewise.
9480 * doc/implement-cxx.texi: Likewise.
9481 * doc/invoke.texi: Likewise.
9482 * doc/objc.texi: Likewise.
9483 * doc/standards.texi: Likewise.
9484 * doc/trouble.texi: Likewise.
9485
5154126f 94862015-02-15 Jan Hubicka <hubicka@ucw.cz>
9487
9488 * cgraph.h (symtab_node::has_aliases_p): Simplify.
9489 (symtab_node::call_for_symbol_and_aliases): Use has_aliases_p
9490 * tree.c (lookup_binfo_at_offset): Make static.
9491 (get_binfo_at_offset): Do not shadow offset; add explanatory
9492 comment.
9493
18d8d57c 94942015-02-15 John David Anglin <danglin@gcc.gnu.org>
9495
9496 * config/pa/pa.c (pa_secondary_reload): Request a secondary reload
9497 for all floading point loads and stores except those using a register
9498 index address.
9499 * config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
9500 to a register.
9501
6a044047 95022015-02-14 Jan Hubicka <hubicka@ucw.cz>
9503
9504 * ipa-inline-analysis.c (growth_data): Add uninlinable field.
9505 (do_estimate_growth_1): Record if any uninlinable edge was seen.
9506 (estimate_growth): Handle uninlinable edges correctly.
9507 (check_callers): New.
9508 (growth_likely_positive): Handle aliases correctly.
9509
50f2a18b 95102015-02-14 Jan Hubicka <hubicka@ucw.cz>
9511
9512 * ipa-chkp.c: Use iterate_direct_aliases.
9513 * symtab.c (resolution_used_from_other_file_p): Move inline.
9514 (symtab_node::create_reference): Fix formating.
9515 (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
9516 (symtab_node::iterate_reference): Move inline.
9517 (symtab_node::iterate_referring): Move inline.
9518 (symtab_node::iterate_direct_aliases): Move inline.
9519 (symtab_node::used_from_object_file_p_worker): Inline into ...
9520 (symtab_node::used_from_object_file_p): ... this one; move inline.
9521 (symtab_node::call_for_symbol_and_aliases): Move inline;
9522 use iterate_direct_aliases.
9523 (symtab_node::call_for_symbol_and_aliases_1): New method.
9524 (cgraph_node::call_for_symbol_and_aliases): Move inline;
9525 use iterate_direct_aliases.
9526 (cgraph_node::call_for_symbol_and_aliases_1): New method.
9527 (varpool_node::call_for_node_and_aliases): Rename to ...
9528 (varpool_node::call_for_symbol_and_aliases): ... this one; Move inline;
9529 use iterate_direct_aliases.
9530 (varpool_node::call_for_symbol_and_aliases_1): New method.
9531 * ipa.c (ipa_single_use): Use iterate_direct_aliases.
9532 (ipa_discover_readonly_nonaddressable_var): Update.
9533 * ipa-devirt.c: Fix formating.
9534 * cgraph.c (cgraph_node::can_remove_if_no_direct_calls_and_refs_p):
9535 Move inline.
9536 (cgraph_node::call_for_symbol_and_aliases): Move inline.
9537 (cgraph_node::call_for_symbol_and_aliases_1): New function..
9538 * cgraph.h (used_from_object_file_p_worker): Remove.
9539 (resolution_used_from_other_file_p): Move inline.
9540 (symtab_node::has_aliases_p): Move inline; use iterate_direct_aliases.
9541 (symtab_node::iterate_reference): Move inline.
9542 (symtab_node::iterate_referring): Move inline.
9543 (symtab_node::iterate_direct_aliases): Move inline.
9544 (symtab_node::used_from_object_file_p_worker): Inline into ...
9545 (symtab_node::used_from_object_file_p): Move inline.
9546 * tree-emutls.c (ipa_lower_emutls): Update.
9547 * varpool.c (varpool_node::call_for_symbol_and_aliases_1): New method.
9548 (varpool_node::call_for_node_and_aliases): Remove.
9549
927d5076 95502015-02-14 Jakub Jelinek <jakub@redhat.com>
9551
9552 PR tree-optimization/62209
9553 * tree-ssa-reassoc.c (update_range_test): If stmt is a PHI and
9554 op == range->exp, insert seq and gimplified code after labels
9555 instead of after the phi.
9556
bb1779ad 95572015-02-13 Jeff Law <law@redhat.com>
9558
9559 PR bootstrap/65060
9560 Revert my change for tree-optimization/64823.
9561
18c06fb8 95622015-02-13 Jakub Jelinek <jakub@redhat.com>
9563
9564 PR tree-optimization/65053
9565 * tree-ssa-phiopt.c (value_replacement): When moving assign before
9566 cond, either reset VR on lhs or set it to phi result VR.
9567
eaa6752e 95682015-02-13 Jeff Law <law@redhat.com>
9569
c3fcfd44 9570 PR tree-optimization/64823
9571 * tree-vrp.c (identify_jump_threads): Handle blocks with no statements.
9572 * tree-ssa-threadedge.c (potentially_threadable_block): Allow
9573 threading through blocks with PHIs, but no statements.
9574 (thread_through_normal_block): Distinguish between blocks where
9575 we did not process all the statements and blocks with no statements.
9576
eaa6752e 9577 PR rtl-optimization/47477
9578 * match.pd (convert (plus/minus (convert @0) (convert @1): New
9579 simplifier to narrow arithmetic.
9580
82a343d2 95812015-02-13 Jan Hubicka <hubicka@ucw.cz>
9582
9583 PR ipa/65028
9584 * ipa-prop.c (update_indirect_edges_after_inlining): Do not drop
9585 polymorphic call info when type is not known to be preserved.
9586
2bec7365 95872015-02-13 Maritn Jambor <mjambor@suse.cz>
9588
9589 PR ipa/65028
9590 * ipa-inline-transform.c (mark_all_inlined_calls_cdtor): New function.
9591 (inline_call): Use it.
6ca5d410 9592
8fbeb436 95932015-02-13 Thomas Schwinge <thomas@codesourcery.com>
9594
9595 * config/nvptx/offload.h (ACCEL_COMPILER_acc_device): Define to
9596 GOMP_DEVICE_NVIDIA_PTX.
9597
eb8ea0c7 95982015-02-13 Jakub Jelinek <jakub@redhat.com>
9599
9600 PR ipa/65034
9601 * stmt.c (emit_case_nodes): Use void_type_node instead of
9602 NULL_TREE as LABEL_DECL type.
9603
213647b1 96042015-02-13 John David Anglin <danglin@gcc.gnu.org>
9605
9606 * config/pa/constraints.md: Change "Q" and "T" constraints to memory
9607 constraints.
9608 * config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
9609 symbolic references to data to be forced to constant memory on the
9610 SOM target.
9611
a35c3f55 96122015-02-13 Ilya Enkovich <ilya.enkovich@intel.com>
9613
9614 PR tree-optimization/65002
9615 * tree-cfg.c (pass_data_fixup_cfg): Don't update
9616 SSA on start.
9617 * tree-sra.c (some_callers_have_no_vuse_p): New.
9618 (ipa_early_sra): Reject functions whose callers
9619 assume function is read only.
9620
a7c6c843 96212015-02-13 Richard Biener <rguenther@suse.de>
9622
9623 PR lto/65015
9624 * dwarf2out.c (dwarf2out_finish): Use <artificial> as DW_AT_name
9625 for LTO produced CUs.
9626
02acb8f3 96272015-02-13 Bin Cheng <bin.cheng@arm.com>
9628
9629 PR tree-optimization/64705
9630 * tree-ssa-loop-niter.h (expand_simple_operations): New parameter.
9631 * tree-ssa-loop-niter.c (expand_simple_operations): New parameter.
9632 * tree-ssa-loop-ivopts.c (extract_single_var_from_expr): New.
9633 (find_bivs, find_givs_in_stmt_scev): Pass new argument to
9634 expand_simple_operations.
9635
96362015-02-13 H.J. Lu <hongjiu.lu@intel.com>
78db4b4d 9637 Richard Henderson <rth@redhat.com>
9638
9639 PR rtl/32219
9640 * cgraphunit.c (cgraph_node::finalize_function): Set definition
9641 before notice_global_symbol.
9642 (varpool_node::finalize_decl): Likewise.
9643 * varasm.c (default_binds_local_p_2): Rename from
9644 default_binds_local_p_1, add weak_dominate argument. Use direct
9645 returns instead of assigning to local variable. Unify varpool and
9646 cgraph paths via symtab_node. Reject undef weak variables before
9647 testing visibility. Reorder tests for simplicity.
9648 (default_binds_local_p): Use default_binds_local_p_2.
9649 (default_binds_local_p_1): Likewise.
9650 (decl_binds_to_current_def_p): Unify varpool and cgraph paths
9651 via symtab_node.
9652 (default_elf_asm_output_external): Emit visibility when specified.
9653
c5075336 96542015-02-13 Alan Modra <amodra@gmail.com>
9655
9656 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Fix typo in
9657 code setting up r11 for out-of-line fp restore.
9658
02acb8f3 96592015-02-13 Eric Botcazou <ebotcazou@adacore.com>
c7105f0f 9660
9661 * config/visium/visium.opt (msv-mode): Add RejectNegative and Report.
9662 (muser-mode): Likewise.
9663
fb0b6ac1 96642015-02-13 Alan Modra <amodra@gmail.com>
9665
9666 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Use addsi3_carry
9667 or adddi3_carry when restoring frame_reg_rtx from r0 after restvr.
9668
4cb42f43 96692015-02-12 David Howells <dhowells@redhat.com>
9670
9671 * tree-sra.c (dump_dereferences_table): Avoid -Wformat-security
9672 warning.
9673 * tree-ssa-uninit.c (dump_predicates): Likewise.
9674 * opts.c (print_filtered_help): Likewise.
9675
b2f40a0d 96762015-02-12 Jakub Jelinek <jakub@redhat.com>
9677
a487aadc 9678 * dwarf2out.c (output_die): Use "%s", name instead of name to
9679 avoid -Wformat-security warning.
9680
b2f40a0d 9681 * dwarf2asm.c (dw2_asm_output_vms_delta): Only define
9682 if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
9683 * dwarf2out.c (output_die): Use dw2_asm_output_vms_delta
9684 only if ASM_OUTPUT_DWARF_VMS_DELTA is defined.
9685
e65bc032 96862015-02-12 Jason Merrill <jason@redhat.com>
9687
9688 * common.opt (-flifetime-dse): New.
9689
ca5b5c77 96902015-02-12 Jakub Jelinek <jakub@redhat.com>
9691
b3a30e6d 9692 PR sanitizer/65019
9693 * ubsan.c (ubsan_expand_objsize_ifn): Always return true.
9694
ca5b5c77 9695 PR tree-optimization/65014
9696 * fold-const.c (fold_binary_loc): When creating {L,R}ROTATE_EXPR,
9697 use original second operand of arg0 or arg1 instead of
9698 that adjusted by STRIP_NOPS.
9699
74e43422 97002015-02-11 Jeff Law <law@redhat.com>
9701
9702 PR target/63347
9703 * haifa-sched.c (prune_ready_list): If we have a SCHED_GROUP_P insn
9704 that needs to be queued, just queue it for a single cycle.
9705
6cb8fb82 97062015-02-11 Jan Hubicka <hubicka@ucw.cz>
9707
9708 * ipa.c (symbol_table::remove_unreachable_nodes): Avoid releasing
9709 bodies of thunks; comment on why.
9710 * symtab.c (symtab_node::get_partitioning_class): Aliases of extern
9711 symbols are extern.
9712
9eb0aee3 97132015-02-11 Richard Henderson <rth@redhat.com>
9714
9715 PR sanitize/65000
9716 * tree-eh.c (mark_reachable_handlers): Mark source and destination
9717 regions of __builtin_eh_copy_values.
9718
16a26093 97192015-02-11 Jakub Jelinek <jakub@redhat.com>
9720
9721 PR middle-end/65003
9722 * varasm.c (place_block_symbol): Assert that DECL_RTL of the
9723 ultimate alias is MEM with SYMBOL_REF satisfying
9724 SYMBOL_REF_HAS_BLOCK_INFO_P as its operand. Don't pass the MEM
9725 to place_block_symbol, but instead pass the SYMBOL_REF operand of it.
9726
ab0e6fbc 97272015-02-11 Thomas Schwinge <thomas@codesourcery.com>
9728
bfeb7c1c 9729 * config/nvptx/mkoffload.c: Include "diagnostic.h" instead of
9730 "diagnostic-core.h".
9731 (main): Initialize progname, and call diagnostic_initialize.
9732
c84c7f19 9733 * config/nvptx/mkoffload.c (process): Refer to __OFFLOAD_TABLE__
9734 instead of __OPENMP_TARGET__.
9735
ab0e6fbc 9736 * config/nvptx/mkoffload.c: Include "gomp-constants.h".
9737 (process): Use its GOMP_DEVICE_NVIDIA_PTX instead of (wrongly)
9738 hard-coding PTX_ID.
9739
4dba1042 97402015-02-11 H.J. Lu <hongjiu.lu@intel.com>
9741
9742 * doc/sourcebuild.texi (pie_enabled): Document.
9743
e9a9dc09 97442015-02-11 Martin Liska <mliska@suse.cz>
9745
9746 PR ipa/64813
9747 * cgraphunit.c (cgraph_node::expand_thunk): Do not create
9748 a return value for call to a function that is noreturn.
9749
108b3f6e 97502015-02-11 Richard Biener <rguenther@suse.de>
9751
9752 PR lto/65015
9753 * dwarf2out.c (gen_producer_string): Drop -fltrans-output-list
9754 and -fresolution.
9755
1b59d1a1 97562015-02-11 Andrew Pinski <apinski@cavium.com>
9757
9758 PR target/64893
9759 * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
9760 Change the first argument type to size_type_node and add another
9761 size_type_node.
9762 (aarch64_simd_expand_builtin): Handle the new argument to
9763 AARCH64_SIMD_BUILTIN_LANE_CHECK and don't ICE but rather
9764 print an out when the first two arguments are not
9765 nonzero integer constants.
9766 * config/aarch64/arm_neon.h (__AARCH64_LANE_CHECK):
9767 Pass the sizeof directly to __builtin_aarch64_im_lane_boundsi.
9768
c65bd8cd 97692015-02-11 Jakub Jelinek <jakub@redhat.com>
9770
9771 PR target/61925
9772 * config/i386/i386.c (ix86_reset_to_default_globals): Removed.
9773 (ix86_reset_previous_fndecl): Restore it here, unconditionally.
9774 (ix86_set_current_function): Rewritten.
9775 (ix86_add_new_builtins): Temporarily clear current_target_pragma
9776 when creating builtin fndecls.
9777
c5e076fc 97782015-02-10 Jan Hubicka <hubicka@ucw.cz>
9779
9780 PR ipa/65005
9781 * ipa-visibility.c (cgraph_node::non_local_p): Turn into static
9782 function.
9783 * symtab.c (symtab_node::verify_base): Remove check that non-definitions
9784 have no comdat group.
9785 * lto-cgraph.c (lto_output_node): Always output thunk and alias info.
9786 (lto_output_varpool_node): Always output alias info.
9787 (output_refs): Output refs of boundary aliases, too.
9788 (compute_ltrans_boundary): Add alias and thunk target into boundaries.
9789 (output_symtab): Output call eges in thunks in boundary.
9790 (get_alias_symbol): Remove.
9791 (input_node, input_varpool_node): Do not special case weakrefs.
9792 * ipa.c (symbol_table::remove_unreachable_nodes): Do not remove
9793 alias and thunks targets in the boundary; do not take removed symbols
9794 from their comdat groups.
9795 * cgraph.c (cgraph_node::local_info): Look through aliases and thunks.
9796 (cgraph_node::global_info): Remove.
9797 (cgraph_node::rtl_info): Look through aliases and thunks.
9798 * cgrpah.h (global_info): Remove.
9799 (non_local_p): Remove.
9800
6a3671ce 98012015-02-10 David Wohlferd <dw@LimeGreenSocks.com>
9802 Sandra Loosemore <sandra@codesourcery.com>
9803
9804 * doc/invoke.texi (x86 Options [-masm=dialect]): Add cross-references
9805 to inline asm. List dialects in proper order.
9806
4fc381d4 98072015-02-10 David Wohlferd <dw@LimeGreenSocks.com>
9808 Sandra Loosemore <sandra@codesourcery.com>
9809
9810 * doc/extend.texi (Loop-Specific Pragmas): Fix grammar error.
9811
d6121807 98122015-02-10 David Wohlferd <dw@LimeGreenSocks.com>
9813
9814 * doc/extend.texi (Symbol-Renaming Pragmas): Restore (slightly
6ca5d410 9815 modified) reference to Solaris.
d6121807 9816
5b6d2c73 98172015-02-10 Sandra Loosemore <sandra@codesourcery.com>
9818
9819 * doc/extend.texi (Extended Asm): Fix typos.
9820
56464312 98212015-02-10 Jakub Jelinek <jakub@redhat.com>
9822
9823 PR sanitizer/65004
9824 * ubsan.c (ubsan_expand_vptr_ifn): Always return true.
9825
6cf92cc1 98262015-02-10 Oleg Endo <olegendo@gcc.gnu.org>
9827
9828 PR target/64661
9829 * config/sh/sh-protos.h (TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
9830 TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
9831 TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Add parentheses.
9832 * config/sh/constraints.md (Ara, Add): New constraints.
9833 * config/sh/sync.md (atomic_mem_operand_0, atomic_mem_operand_1): New
9834 predicates.
9835 (atomic_compare_and_swap<mode>, atomic_exchange<mode>): Use
9836 atomic_mem_operand_0. Don't use force_reg on the memory address.
9837 (atomic_compare_and_swapsi_hard): Use atomic_mem_operand_0 predicate and
9838 Sra constraint. Convert to insn_and_split. Add workaround for
9839 PR 64974.
9840 (atomic_compare_and_swap<mode>_hard): Copy to
9841 atomic_compare_and_swap<mode>_hard_1. Convert to insn_and_split.
9842 Use atomic_mem_operand_0 predicate.
9843 (atomic_compare_and_swap<mode>_soft_gusa,
9844 atomic_exchange<mode>_soft_gusa): Use atomic_mem_operand_0 predicate and
9845 AraAdd constraints.
9846 (atomic_compare_and_swap<mode>_soft_tcb,
9847 atomic_compare_and_swap<mode>_soft_imask,
9848 atomic_exchange<mode>_soft_tcb, atomic_exchange<mode>_soft_imask): Use
9849 atomic_mem_operand_0 predicate and SraSdd constraints.
9850 (atomic_exchangesi_hard) Use atomic_mem_operand_0 predicate and Sra
9851 constraint.
9852 (atomic_exchange<mode>_hard): Copy to atomic_exchange<mode>_hard_1.
9853 Convert to insn_and_split. Use atomic_mem_operand_0 predicate.
9854 (atomic_fetch_<fetchop_name><mode>, atomic_fetch_nand<mode>,
9855 atomic_<fetchop_name>_fetch<mode>): Use atomic_mem_operand_1. Don't use
9856 force_reg on the memory address.
9857 (atomic_fetch_<fetchop_name>si_hard, atomic_fetch_notsi_hard,
9858 atomic_fetch_nandsi_hard, atomic_<fetchop_name>_fetchsi_hard,
9859 atomic_not_fetchsi_hard, atomic_nand_fetchsi_hard): Use
9860 atomic_mem_operand_1 predicate and Sra constraint.
9861 (atomic_fetch_<fetchop_name><mode>_hard): Copy to
9862 atomic_fetch_<fetchop_name><mode>_hard_1. Convert to insn_and_split.
9863 Use atomic_mem_operand_1 predicate.
9864 (atomic_<fetchop_name><mode>_hard): Copy to
9865 atomic_<fetchop_name><mode>_hard_1. Convert to insn_and_split.
9866 Use atomic_mem_operand_1 predicate.
9867 (atomic_fetch_nand<mode>_hard): Copy to atomic_fetch_nand<mode>_hard_1.
9868 Convert to insn_and_split. Use atomic_mem_operand_1 predicate.
9869 (atomic_nand<mode>_hard): Copy to atomic_nand<mode>_hard_1. Convert to
9870 insn_and_split. Use atomic_mem_operand_1 predicate.
9871 (atomic_<fetchop_name>_fetch<mode>_hard): Copy to
9872 atomic_<fetchop_name>_fetch<mode>_hard_1. Convert to insn_and_split.
9873 Use atomic_mem_operand_1 predicate.
9874 (atomic_nand_fetch<mode>_hard): Copy to atomic_nand_fetch<mode>_hard_1.
9875 Convert to insn_and_split. Use atomic_mem_operand_1 predicate.
9876 (atomic_fetch_not<mode>_hard, atomic_not_fetch<mode>_hard): Replace mems
9877 in generated insn with original mem operand before emitting the insn.
9878 (atomic_fetch_<fetchop_name><mode>_soft_gusa,
9879 atomic_fetch_not<mode>_soft_gusa, atomic_fetch_nand<mode>_soft_gusa,
9880 atomic_<fetchop_name>_fetch<mode>_soft_gusa,
9881 atomic_not_fetch<mode>_soft_gusa, atomic_nand_fetch<mode>_soft_gusa):
9882 Use atomic_mem_operand_1 predicate and AraAdd constraints.
9883 (atomic_fetch_<fetchop_name><mode>_soft_tcb,
9884 atomic_<fetchop_name><mode>_soft_tcb, atomic_fetch_not<mode>_soft_tcb,
9885 atomic_not<mode>_soft_tcb, atomic_fetch_<fetchop_name><mode>_soft_imask,
9886 atomic_fetch_not<mode>_soft_imask, atomic_fetch_nand<mode>_soft_tcb,
9887 atomic_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask,
9888 atomic_<fetchop_name>_fetch<mode>_soft_tcb,
9889 atomic_not_fetch<mode>_soft_tcb,
9890 atomic_<fetchop_name>_fetch<mode>_soft_imask,
9891 atomic_not_fetch<mode>_soft_imask, atomic_nand_fetch<mode>,
9892 atomic_nand_fetch<mode>_soft_tcb, atomic_nand_fetch<mode>_soft_imask):
9893 Use atomic_mem_operand_1 predicate and SraSdd constraints.
9894
d3b01257 98952015-02-10 Uros Bizjak <ubizjak@gmail.com>
9896
9897 * config/alpha/alpha.md (reload_out<mode>_aligned): Make operands 2
9898 and 3 earlyclobber operands.
9899
e137219a 99002015-02-10 Jan Hubicka <hubicka@ucw.cz>
9901
9902 * common.opt (fstack-reuse): Mark as optimization.
9903
17bbda62 99042015-02-10 Jan Hubicka <hubicka@ucw.cz>
9905
9906 PR ipa/64982
d3b01257 9907 * cgraphunit.c (cgraph_node::expand_thunk): Look for stdarg thunks.
17bbda62 9908
d55cde62 99092015-02-10 Trevor Saunders <tsaunders@mozilla.com>
9910
9911 PR tree-optimization/64326
9912 * cfghooks.c (make_forwarder_block): Cap frequency of created block.
9913
fe504175 99142015-02-10 Rainer Emrich <rainer@emrich-ebersheim.de>
9915
9916 PR gcov-profile/61889
9917 * gcov-tool.c: Remove wrong #if !defined(_WIN32)
9918
9251bb6f 99192015-02-10 Richard Biener <rguenther@suse.de>
9920
9921 PR tree-optimization/64995
9922 * tree-ssa-sccvn.c (set_ssa_val_to): Assert that the
9923 value we use is final.
9924 (visit_reference_op_store): Always valueize op.
9925 (visit_use): Properly valueize vuses.
9926
41ae9eb4 99272015-02-10 Richard Biener <rguenther@suse.de>
9928
9929 PR tree-optimization/64909
9930 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Properly
9931 pass a scalar-stmt count estimate to the cost model.
9932 * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Likewise.
9933
33653cfd 99342015-02-10 Alexander Monakov <amonakov@ispras.ru>
9935
9936 * doc/invoke.texi (-fvar-tracking-assignments): Clarify that VTA is
9937 enabled by default together with var-tracking.
9938
aa569c41 99392015-02-10 Nick Clifton <nickc@redhat.com>
9940
9941 * config/rl78/rl78.c: Remove DIV attribute code accidentally
9942 included in previous rl78 commit.
9943
205b5601 99442015-02-10 Richard Biener <rguenther@suse.de>
9945
9946 * tree-streamer.h (streamer_read_tree_bitfields): Adjust.
9947 * tree-streamer-in.c (streamer_read_tree_bitfields): Do not
9948 return the bitpack.
9949
eb4b8219 99502015-02-09 Trevor Saunders <tsaunders@mozilla.com>
9951
9952 PR gcov-profile/61889
9953 * config.in: regenerate.
9954 * configure.in: Likewise.
9955 * configure.ac: Check for ftw.h.
9956 * gcov-tool.c: Check for ftw.h before using nftw.
9957
a0e59ca8 99582015-02-09 Trevor Saunders <tsaunders@mozilla.com>
9959
9960 PR lto/64076
9961 * ipa-visibility.c (update_visibility_by_resolution_info): Only
9962 assert when not in lto mode.
9963
c6e5fbeb 99642015-02-09 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
1a952cb7 9965
9966 * ira-color.c (setup_left_conflict_sizes_p): Simplify
9967 initialization/assignment of conflict_size.
9968
675f1812 99692015-02-09 Jan Hubicka <hubicka@ucw.cz>
9970
9971 PR ipa/64978
9972 * ipa-cp.c (gather_caller_stats): Skip thunks.
9973 (propagate_constants_topo): Skip aliases.
9974
2ca3b52d 99752015-02-09 Kaz Kojima <kkojima@gcc.gnu.org>
9976
9977 PR target/64761
9978 * config/sh/sh.c (sh_option_override): Don't change
9979 -freorder-blocks-and-partition to -freorder-blocks even when
9980 unwinding is enabled.
9981 (sh_can_follow_jump): Return false if the followee jump is
9982 a crossing jump when -freorder-blocks-and-partition is specified.
9983 * config/sh/sh.md (*jump_compact_crossing): New insn.
9984
7ab0488c 99852015-02-09 Joern Rennecke <joern.rennecke@embecosm.com>
9986 Kaz Kojima <kkojima@gcc.gnu.org>
9987
9988 PR target/64761
9989 * config/sh/sh-protos.h (sh_can_redirect_branch): Don't declare.
9990 * config/sh/sh.c (TARGET_CAN_FOLLOW_JUMP): Redefine.
9991 (sh_can_redirect_branch): Rename to ...
9992 (sh_can_follow_jump): ... this. Constify argument types.
9993 * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): Don't define.
9994 * doc/tm.texi.in (MD_CAN_REDIRECT_BRANCH): Remove documentation.
9995 * reorg.c (steal_delay_list_from_target): Use targetm.can_follow_jump.
9996 * doc/tm.texi: Regenerate.
9997
4e2f4ed5 99982015-02-09 Jakub Jelinek <jakub@redhat.com>
9999
10000 PR sanitizer/64981
10001 * builtins.c (expand_builtin): Call targetm.expand_builtin
10002 for BUILT_IN_MD builtins regardless of asan_intercepted_p.
10003
770eccb8 100042015-02-08 Jan Hubicka <hubicka@ucw.cz>
10005
10006 PR ipa/61548
10007 * tree-emutls.c (ipa_lower_emutls): Avoid duplicates in TLS_VARS.
10008
2568b0e9 100092015-02-08 Jan Hubicka <hubicka@ucw.cz>
10010
aa569c41 10011 PR ipa/63566
2568b0e9 10012 * ipa-icf.c (set_local): New function.
10013 (sem_function::merge): Use it.
10014
87a9c1b6 100152015-02-08 Jan Hubicka <hubicka@ucw.cz>
10016
10017 * ipa-devirt.c (odr_types_equivalent_p): Fix formating.
10018 (add_type_duplicate): Fix comparison of BINFOs.
10019
41a1ab48 100202015-02-08 Jan Hubicka <hubicka@ucw.cz>
10021
10022 * ipa-polymorphic-call.c (ipa_polymorphic_call_context): Avoid ICE
10023 on getting VOID pointer.
10024
5300bef0 100252015-02-09 Jakub Jelinek <jakub@redhat.com>
10026
10027 PR target/64979
10028 * tree-stdarg.c (pass_stdarg::execute): Scan phi node args for
10029 va_list escapes.
10030
25ea41ee 100312015-02-09 Richard Biener <rguenther@suse.de>
10032
10033 * genmatch.c (replace_id): Copy expr_type.
10034
c76dc468 100352015-02-09 Richard Biener <rguenther@suse.de>
10036
10037 * tree-streamer.h (streamer_pack_tree_bitfields): Remove.
10038 (streamer_write_tree_bitfields): Declare.
10039 * tree-streamer-in.c (unpack_ts_base_value_fields): Inline,
10040 properly unpack padding.
10041 (unpack_value_fields): Inline ...
10042 (streamer_read_tree_bitfields): ... here.
10043 * tree-streamer-out.c (pack_ts_base_value_fields): Inline
10044 and properly add padding bits.
10045 (streamer_pack_tree_bitfields): Fold into ...
10046 (streamer_write_tree_bitfields): ... this new function,
10047 exposing the bitpack object.
10048 * lto-streamer-out.c (lto_write_tree_1): Call
10049 streamer_write_tree_bitfields.
10050
fca76508 100512015-02-09 Richard Biener <rguenther@suse.de>
10052
10053 PR tree-optimization/54000
10054 * tree-ssa-looo-ivopts.c: Include tree-vectorizer.h.
10055 (struct ivopts_data): Add loop_loc member.
10056 (tree_ssa_iv_optimize_loop): Dump loop location.
10057 (create_new_ivs): Likewise, also dump number of IVs generated.
10058
e83edd3f 100592015-02-09 Martin Liska <mliska@suse.cz>
10060
10061 * ipa-icf.c (sem_item_optimizer::register_hooks): Register hooks
10062 just if not yet registered.
10063 (ipa_icf_generate_summary): Register callgraph hooks.
10064
0171d725 100652015-02-08 Andrew Pinski <apinski@cavium.com>
10066
10067 * config/aarch64/aarch64.c (gty_dummy): Delete.
10068
a09576fe 100692015-02-08 Jan Hubicka <hubicka@ucw.cz>
10070
aa569c41 10071 PR ipa/63566
a09576fe 10072 * ipa-visibility.c (cgraph_node::non_local_p): Accept aliases.
10073 (cgraph_node::local_p): Remove thunk related FIXME.
10074
6543cf8b 100752015-02-08 Jan Hubicka <hubicka@ucw.cz>
10076
aa569c41 10077 PR ipa/63566
6543cf8b 10078 * i386.c (ix86_function_regparm): Look through aliases to see if callee
10079 is local and optimized.
10080 (ix86_function_sseregparm): Likewise; also use target's SSE math
10081 settings; error out instead of silently generating wrong code
10082 on mismatches.
10083 (init_cumulative_args): Look through aliases.
10084
c670165e 100852015-02-08 Jan Hubicka <hubicka@ucw.cz>
10086
aa569c41 10087 PR ipa/63566
c670165e 10088 * ipa-split.c (execute_split_functions): Split if function has aliases.
10089
07f32730 100902015-02-08 Jan Hubicka <hubicka@ucw.cz>
10091
aa569c41 10092 PR ipa/63566
07f32730 10093 * cgraphunit.c (cgraph_node::analyze): Be sure target of thunk is
10094 aliases before trying to expand it.
10095 (cgraph_node::expand_thunk): Fix formating.
10096
dfba1d8c 100972015-02-07 Sandra Loosemore <sandra@codesourcery.com>
10098
10099 * doc/extend.texi (Function Attributes [naked]): Copy-edit.
10100 (Using Assembly Language with C): Expand introduction.
10101 (Basic Asm): Copy-edit. Add more information about uses of
10102 basic asm.
10103 (Extended Asm): Copy-edit. Document new escape syntax and
10104 %l[label] syntax.
10105 (Global Reg Vars): Copy-edit.
10106 (Local Reg Vars): Likewise.
10107
09625888 101082015-02-06 David Edelsohn <dje.gcc@gmail.com>
10109
10110 PR debug/2714
10111 PR bootstrap/64256
10112 * xcoffout.h (DBX_CONTIN_LENGTH): Define as 16384.
10113 (DBX_CONTIN_CHAR): Define.
10114
b472bf0c 101152015-02-06 Sebastian Pop <s.pop@samsung.com>
10116 Brian Rzycki <b.rzycki@samsung.com>
10117
10118 PR tree-optimization/64878
10119 * tree-ssa-threadedge.c: Include tree-ssa-loop.h.
10120 (fsm_find_control_statement_thread_paths): Add parameter seen_loop_phi.
10121 Stop recursion at loop phi nodes after having visited a loop phi node.
10122
91df30af 101232015-02-06 Jakub Jelinek <jakub@redhat.com>
10124
dd0d4e52 10125 * toplev.c (process_options): Change flag_ipa_ra before creating
10126 optimization_{default,current}_node.
10127
91df30af 10128 PR ipa/64896
10129 * cgraphunit.c (cgraph_node::expand_thunk): If
10130 restype is not is_gimple_reg_type nor the thunk_fndecl
10131 returns aggregate_value_p, set restmp to a temporary variable
10132 instead of resdecl.
10133
ee61ca2e 101342015-02-06 Vladimir Makarov <vmakarov@redhat.com>
10135
10136 * lra.c (lra_emit_add): Fix a typo in using disp instead of base.
10137
a49a5a56 101382015-02-06 Michael Meissner <meissner@linux.vnet.ibm.com>
10139
10140 PR target/64205
10141 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Do not
10142 add a general secondary reload handler for SDmode, unless we have
10143 both read/write support for SDmode.
10144
4ab0ccd4 101452015-02-06 Jakub Jelinek <jakub@redhat.com>
10146
10147 PR middle-end/64937
10148 * dwarf2out.c (set_block_abstract_flags, set_decl_abstract_flags):
10149 Replace setting argument with abstract_vec, always set BLOCK_ABSTRACT
10150 or DECL_ABSTRACT_P flags to 1 rather than to setting, and if it wasn't
10151 1 before, push it to abstract_vec.
10152 (dwarf2out_abstract_function): Adjust caller. Don't call
10153 set_decl_abstract_flags second time, instead clear BLOCK_ABSTRACT or
10154 DECL_ABSTRACT_P flags for all abstract_vec elts.
10155
08110213 101562015-02-06 Renlin Li <renlin.li@arm.com>
10157
10158 * tree-ssa-forwprop.c (execute): Keep location info while rewrite
10159 complex gimple.
10160 * tree-ssa.c (execute_update_addresses_taken): Likewise.
10161
42231db5 101622015-02-06 Jeff Law <law@redhat.com>
10163
10164 PR target/64889
10165 * config/h8300/h8300.c (push): New argument "in_prologue".
10166 Pass "in_prologue" along to "F".
10167 (h8300_push_pop): Corresponding changes.
10168 (h8300_expand_prologue): Likewise.
10169 (h8300_swap_into_er6): Likewise. Do not set RTX_FRAME_RELATED_P.
a49a5a56 10170
bb779bf0 101712015-02-06 Jakub Jelinek <jakub@redhat.com>
10172
10173 PR rtl-optimization/64957
10174 PR debug/64817
10175 * simplify-rtx.c (simplify_binary_operation_1): Use ~cval for
10176 IOR rather than for AND.
10177
74c2de3c 101782015-02-06 Eric Botcazou <ebotcazou@adacore.com>
10179
10180 PR target/62631
10181 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Use the mininum of costs
10182 of shift-add and (add + shift) operations. Rename local variable.
10183
17b364c4 101842015-02-05 Jeff Law <law@redhat.com>
10185
817c5748 10186 PR target/17306
10187 * config/h8300/constraints.md (U): Correctly dectect
10188 "eightbit_data" memory addresses.
10189 * config/h8300/h8300.c (eightbit_constant_address_p): Also
10190 handle (const (plus (symbol_ref (x)))) where x is declared
10191 as an 8-bit data memory address.
10192 * config/h8300/h8300.md (call, call_value): Correctly detect
10193 "funcvec" functions.
10194
17b364c4 10195 PR target/43264
10196 * config/h8300/h8300.c (get_shift_alg): Fix ASHIFTRT by
10197 24 to 28 bits for the H8/300.
10198
8fc9dbfb 101992015-02-06 Alan Modra <amodra@gmail.com>
10200
10201 PR target/64876
10202 * config/rs6000/rs6000.c (chain_already_loaded): New function.
10203 (rs6000_call_aix): Use it.
10204
49c97b81 102052015-02-05 Jan Hubicka <hubicka@ucw.cz>
10206
10207 * ipa-cp.c (ipa_value_from_jfunc, ipa_context_from_jfunc): Add bounds
10208 check.
10209
62d764b1 102102015-02-05 Joern Rennecke <joern.rennecke@embecosm.com>
10211
10212 * config/h8300/constraints.md ("U" constraint): Use strict
10213 variant of REG_OK_FOR_BASE_P after reload has started.
10214
dc44066f 102152015-02-04 Mantas Mikaitis <mantas.mikaitis@arm.com>
10216
10217 * config/arm/arm.h (TARGET_NEON_FP): Removed conditional definition,
10218 define to zero if !TARGET_NEON.
99d6a6df 10219 (TARGET_ARM_FP): Added !TARGET_SOFT_FLOAT into conditional definition.
dc44066f 10220
f1f488f7 102212015-02-04 Jan Hubicka <hubicka@ucw.cz>
10222 Trevor Saunders <tsaunders@mozilla.com>
10223
10224 PR ipa/61548
10225 * tree-emultls.c (new_emutls_decl): Resolve alias after creating it.
10226
e7610412 102272015-02-04 Jan Hubicka <hubicka@ucw.cz>
10228
10229 PR ipa/61548
10230 * ipa.c (symbol_table::remove_unreachable_nodes): Fix ordering issue
10231 when removing varpool nodes.
10232
a70a8c3a 102332015-02-04 Jan Hubicka <hubicka@ucw.cz>
10234
10235 PR ipa/61548
10236 * varpool.c (varpool_node::remove): Fix order of variables.
10237
e346cd98 102382015-02-04 Jan Hubicka <hubicka@ucw.cz>
10239
10240 PR ipa/64686
10241 * ipa-inline.c (inline_small_functions): Fix ordering issue between
10242 speculation resolution and key updates.
10243
dd1f9fb5 102442015-02-04 Jan Hubicka <hubicka@ucw.cz>
10245
10246 * ipa-prop.c (update_indirect_edges_after_inlining): By more careful
10247 about not letting any speculative edges unupdated.
10248
f6c27254 102492015-02-04 Jan Hubicka <hubicka@ucw.cz>
10250
10251 PR gcov/64123
10252 * gcov-io.c (gcov_var): Export.
10253
d122d93c 102542015-02-04 Jan Hubicka <hubicka@ucw.cz>
10255
10256 PR middle-end/64922
10257 * ipa-prop.c (update_indirect_edges_after_inlining): Correctly update
10258 edges that become speculative.
10259
f36f9b8b 102602015-02-04 Jakub Jelinek <jakub@redhat.com>
10261
10262 * dwarf2out.c (is_fortran): Also return true for DW_LANG_Fortran03
10263 or DW_LANG_Fortran08.
10264 (lower_bound_default): Return 1 for DW_LANG_Fortran03 or
10265 DW_LANG_Fortran08.
10266 (gen_compile_unit_die): Handle "GNU Fortran2003" and
10267 "GNU Fortran2008" language strings.
10268 * dbxout.c (get_lang_number): Use lang_GNU_Fortran.
10269 * langhooks.h (lang_GNU_Fortran): New prototype.
10270 * langhooks.c (lang_GNU_Fortran): New function.
10271 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Use
10272 lang_GNU_Fortran.
10273
09484478 102742015-02-04 Eric Botcazou <ebotcazou@adacore.com>
10275
10276 * config/sparc/sparc.c (RTX_OK_FOR_OFFSET_P): Fix off-by-one error.
10277 (RTX_OK_FOR_OLO10_P): Likewise.
10278
88dabaf7 102792015-02-04 Eric Botcazou <ebotcazou@adacore.com>
10280
10281 * tree-ssa-loop-ivopts.c (get_address_cost): Use right mode for offset.
10282
aee8a3e8 102832015-02-04 Jan Hubicka <hubicka@ucw.cz>
10284
10285 PR middle-end/64922
10286 * gimple.c: Include gimple-ssa.h.
10287 (maybe_remove_unused_call_args): New function.
10288 * gimple.h (maybe_remove_unused_call_args): Declare.
10289 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
10290 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Likewise.
10291 * gimple-fold.c (gimple_fold_call): Likewise.
10292
2f1be71f 102932015-02-04 H.J. Lu <hongjiu.lu@intel.com>
10294
10295 PR rtl-optimization/64905
10296 * lra-eliminations.c (setup_can_eliminate): Clear hard frame
10297 pointer alignment if it isn't needed.
10298
0e2152d3 102992015-02-04 Matthew Wahab <matthew.wahab@arm.com>
10300
10301 * config/aarch64/aarch64-cores.def: Add cortex-a72 and
10302 cortex-a72.cortex-a53.
10303 * config/aarch64/aarch64-tune.md: Regenerate.
10304 * doc/invoke.texi (AArch64 Options/-mtune): Add "cortex-a72".
10305
889a65e7 103062015-02-04 Nick Clifton <nickc@redhat.com>
10307
10308 * config/rl78/rl78.c (rl78_note_reg_set): Note the use of REGs
10309 inside a MEM.
10310
97c9021f 103112015-02-04 Jakub Jelinek <jakub@redhat.com>
10312
10313 * builtins.def (DEF_BUILTIN_CHKP): Define if not defined.
10314 (DEF_LIB_BUILTIN_CHKP, DEF_EXT_LIB_BUILTIN_CHKP): Redefine.
10315 (DEF_CHKP_BUILTIN): Define using DEF_BUILTIN_CHKP instead
10316 of DEF_BUILTIN.
10317 (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET, BUILT_IN_STRCAT,
10318 BUILT_IN_STRCHR, BUILT_IN_STRCPY, BUILT_IN_STRLEN): Use
10319 DEF_LIB_BUILTIN_CHKP macro instead of DEF_LIB_BUILTIN.
10320 (BUILT_IN_MEMCPY_CHK, BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK,
10321 BUILT_IN_MEMPCPY, BUILT_IN_MEMSET_CHK, BUILT_IN_STPCPY_CHK,
10322 BUILT_IN_STPCPY, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK): Use
10323 DEF_EXT_LIB_BUILTIN_CHKP macro instead of DEF_EXT_LIB_BUILTIN.
10324 * tree-core.h (enum built_in_function): In between
10325 BEGIN_CHKP_BUILTINS and END_CHKP_BUILTINS only define enum values
10326 for builtins that use DEF_BUILTIN_CHKP macro.
10327
e956927c 103282015-02-04 Alexandre Oliva <aoliva@redhat.com>
10329
71b39a64 10330 PR debug/64817
10331 * cfgexpand.c (expand_debug_expr): Compute unsignedp from
10332 operands for tcc_comparison exprs. Fix typos.
10333
d0b7c554 10334 PR debug/64817
10335 * simplify-rtx.c (simplify_binary_operation_1): Simplify one
10336 of two XORs that have an intervening AND or IOR.
10337
e956927c 10338 PR debug/64817
10339 * simplify-rtx.c (simplify_binary_operation_1): Rewrite
10340 simplification of XOR of AND to not allocate new rtx before
10341 committing to a simplification.
10342
ab068f1a 103432015-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10344
10345 * config/aarch64/aarch64-ldpstp.md: Use std::swap instead of
10346 manual swaps in all peepholes.
10347
9c110f15 103482015-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10349
10350 * config/aarch64/aarch64.c (aarch64_evpc_ext): Use std::swap instead
10351 of manual swapping implementation.
10352 (aarch64_expand_vec_perm_const_1): Likewise.
10353
f05bfe67 103542015-02-04 James Greenhalgh <james.greenhalgh@arm.com>
10355
10356 * config/aarch64/aarch64.c (NAMED_PARAM): Delete it.
10357 (generic_addrcost_table): Remove NAMED_PARAM.
10358 (cortexa57_addrcost_table): Likewise.
10359 (xgene1_addrcost_table): Likewise.
10360 (generic_regmove_table): Likewise.
10361 (cortexa53_regmove_table): Likewise.
10362 (xgene1_regmove_table): Likewise.
10363 (generic_vector_table): Likewise.
10364 (cortexa57_vector_table): Likewise.
10365 (xgene1_vector_table): Likewise.
10366 (generic_tunings): Likewise.
10367 (cortexa53_tunings): Likewise.
10368 (cortexa57_tunings): Likewise.
10369 (xgene1_tunings): Likewise.
10370
c2b72614 103712015-02-04 Matthew Wahab <matthew.wahab@arm.com>
10372
10373 * config/arm/arm-cores.def: Add cortex-a72 and
10374 cortex-a72.cortex-a53.
10375 * config/arm/bpabi.h (BE8_LINK_SPEC): Likewise.
10376 * config/arm/t-aprofile (MULTILIB_MATCHES): Likewise.
10377 * config/arm/arm-tune.md: Regenerate.
10378 * config/arm/arm-tables.opt: Add entries for "cortex-a72" and
10379 "cortex-a72.cortex-a53".
10380 * doc/invoke.texi (ARM Options/-mtune): Likewise.
10381
c2e656e1 103822015-02-04 Nick Clifton <nickc@redhat.com>
10383
93b3969e 10384 PR target/64408
10385 * config/fr30/predicates.md (di_operand): Add SUBREG to the list
10386 of accepted codes.
10387 (nonimmediate_di_operand): Likewise.
10388
c2e656e1 10389 * config/msp430/msp430.c (msp430_use_f5_series_hwmult): Add more
10390 prefixes of known F5 using MSP430 MCUs.
10391
f62d2c15 103922015-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10393
10394 * config/aarch64/aarch64-simd-builtins.def (sqrt): Use BUILTIN_VDQF_DF.
10395 * config/aarch64/arm_neon.h (vsqrt_f64): Use __builtin_aarch64_sqrtdf
10396 instead of __builtin_sqrt.
10397
952a806d 103982015-02-04 Ilya Enkovich <ilya.enkovich@intel.com>
10399
10400 * varasm.c (do_assemble_alias): Follow transparent alias
10401 chain for target.
10402 (default_assemble_visibility): Follow transparent alias
10403 chain for decl name.
10404
3cbadbb7 104052015-02-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
10406
10407 PR middle-end/62103
10408 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Use TYPE_PRECISION
10409 to compute size of referenced value in the constant case.
10410
7a49a822 104112015-02-03 Jakub Jelinek <jakub@redhat.com>
10412
10413 PR rtl-optimization/64756
10414 * cse.c (invalidate_dest): New function.
10415 (cse_insn): Use it. If dest != SET_DEST (sets[i].rtl) and
10416 HASH (SET_DEST (sets[i].rtl), mode) computation sets do_not_record,
10417 invalidate and do not record it.
10418
7566f1eb 104192015-02-03 Oleg Endo <olegendo@gcc.gnu.org>
10420
10421 PR target/64660
10422 * config/sh/sync.md (atomic_<fetchop_name><mode>_hard,
10423 atomic_not<mode>_hard, atomic_<fetchop_name><mode>_soft_tcb,
10424 atomic_not<mode>_soft_tcb, atomic_nand<mode>_hard,
10425 atomic_nand<mode>_soft_tcb): New insns.
10426 (atomic_fetch_<fetchop_name>si_hard): Convert to insn_and_split.
10427 Split into atomic_<fetchop_name>_fetchsi_hard if operands[0] is unused.
10428 (define_insn "atomic_fetch_notsi_hard): Convert to insn_and_split.
10429 Split into atomic_not_fetchsi_hard if operands[0] is unused.
10430 (atomic_fetch_<fetchop_name><mode>_hard): Convert to insn_and_split.
10431 Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
10432 (atomic_fetch_not<mode>_hard): Convert to insn_and_split. Split into
10433 atomic_not<mode>_hard if operands[0] is unused.
10434 (atomic_fetch_<fetchop_name><mode>_soft_gusa): Convert to
10435 insn_and_split. Split into atomic_<fetchop_name>_fetch<mode>_soft_gusa
10436 if operands[0] is unused.
10437 (atomic_fetch_not<mode>_soft_gusa): Convert to insn_and_split. Split
10438 into atomic_not_fetch<mode>_soft_gusa if operands[0] is unused.
10439 (atomic_fetch_<fetchop_name><mode>_soft_tcb): Convert to insn_and_split.
10440 Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
10441 unused.
10442 (atomic_fetch_not<mode>_soft_tcb): Convert to insn_and_split. Split
10443 into atomic_not<mode>_soft_tcb if operands[0] is unused.
10444 (atomic_fetch_<fetchop_name><mode>_soft_imask): Convert to
10445 insn_and_split. Split into atomic_<fetchop_name>_fetch<mode>_soft_imask
10446 if operands[0] is unused.
10447 (atomic_fetch_not<mode>_soft_imask): Convert to insn_and_split. Split
10448 into atomic_not_fetch<mode>_soft_imask is operands[0] is unused.
10449 (atomic_fetch_nandsi_hard): Convert to insn_and_split. Split into
10450 atomic_nand_fetchsi_hard if operands[0] is unused.
10451 (atomic_fetch_nand<mode>_hard): Convert to insn_and_split. Split into
10452 atomic_nand<mode>_hard if operands[0] is unused.
10453 (atomic_fetch_nand<mode>_soft_gusa): Convert to insn_and_split. Split
10454 into atomic_nand_fetch<mode>_soft_gusa if operands[0] is unused.
10455 (atomic_fetch_nand<mode>_soft_tcb): Convert to insn_and_split. Split
10456 into atomic_nand<mode>_soft_tcb if operands[0] is unused.
10457 (atomic_fetch_nand<mode>_soft_imask): Convert to insn_and_split. Split
10458 into atomic_nand_fetch<mode>_soft_imask if operands[0] is unused.
10459 (atomic_<fetchop_name>_fetch<mode>_hard): Convert to insn_and_split.
10460 Split into atomic_<fetchop_name><mode>_hard if operands[0] is unused.
10461 (atomic_not_fetch<mode>_hard): Convert to insn_and_split. Split into
10462 atomic_not<mode>_hard if operands[0] is unused.
10463 (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Convert to insn_and_split.
10464 Split into atomic_<fetchop_name><mode>_soft_tcb if operands[0] is
10465 unused.
10466 (atomic_not_fetch<mode>_soft_tcb): Convert to insn_and_split. Split
10467 into atomic_not<mode>_soft_tcb if operands[0] is unused.
10468 (atomic_nand_fetch<mode>_hard): Convert to insn_and_split. Split into
10469 atomic_nand<mode>_hard if operands[0] is unused.
10470 (atomic_nand_fetch<mode>_soft_tcb): Convert to insn_and_split. Split
10471 into atomic_nand<mode>_soft_tcb if operands[0] is unused.
10472
cbbb2345 104732015-02-03 David Malcolm <dmalcolm@redhat.com>
10474
10475 PR jit/64810
10476 * Makefile.in (GCC_OBJS): Add gcc-main.o.
10477 * gcc-main.c: New file, containing "main" taken from gcc.c.
10478 * gcc.c (do_self_spec): Free decoded_options.
10479 (class driver): Move declaration to gcc.h.
10480 (main): Move declaration and implementation to new file
10481 gcc-main.c.
10482 (driver_get_configure_time_options): New function.
10483 * gcc.h (class driver): Move this declaration here, from
10484 gcc.c.
10485 (driver_get_configure_time_options): New declaration.
10486
57e20c4a 104872015-02-03 Jan Hubicka <hubicka@ucw.cz>
10488
10489 * ipa-inline-analysis.c (simple_edge_hints): Fix check for
10490 cross-module inlining.
10491 * cgraph.h (cgraph_node): Add flag merged.
10492 * ipa-icf.c (sem_function::merge): Maintain it.
10493
b817769e 104942015-02-03 Richard Sandiford <richard.sandiford@arm.com>
10495
10496 * config/arm/arm.c (thumb2_reorg): Test UNARY_P and BINARY_P
10497 instead of OBJECT_P.
10498
30774b94 104992015-02-03 Eric Botcazou <ebotcazou@adacore.com>
10500
10501 PR target/62631
10502 * config/sparc/sparc.h (TARGET_HARD_MUL): Remove TARGET_V8PLUS.
10503 (TARGET_HARD_MUL32): Rewrite based on TARGET_HARD_MUL.
10504 * config/sparc/sparc.c (sparc_rtx_costs) <MULT>: Return costs based on
10505 int_mulX for integers in 64-bit mode if TARGET_HARD_MUL is not set.
10506
35e665ab 105072015-02-03 Jakub Jelinek <jakub@redhat.com>
10508
10509 PR other/63504
10510 * combine.c (reg_n_sets_max): New variable.
10511 (can_change_dest_mode, reg_nonzero_bits_for_combine,
10512 reg_num_sign_bit_copies_for_combine, get_last_value_validate,
10513 get_last_value): Use REG_N_SETS only on pseudos < reg_n_sets_max.
10514 (try_combine): Use INC_REG_N_SETS only on pseudos < reg_n_sets_max.
10515 (rest_of_handle_combine): Initialize reg_n_sets_max.
10516
b06b9ff6 105172015-02-02 Jan Hubicka <hubicka@ucw.cz>
10518
10519 * ipa-inline.c (early_inliner): Skip inlining only in always_inlined;
10520 if some always_inline was inlined, apply changes before inlining
10521 heuristically.
10522
7cb68891 105232015-02-02 David Malcolm <dmalcolm@redhat.com>
10524
10525 PR jit/64810
10526 * config/arm/arm.c (arm_option_override): Set
10527 arm_selected_arch/cpu/tune to NULL on entry.
10528
73626f6a 105292015-02-02 Tejas Belagod <tejas.belagod@arm.com>
10530 Andrew Pinski <pinskia@gcc.gnu.org>
10531 Jakub Jelinek <jakub@gcc.gnu.org>
10532
10533 PR target/64231
10534 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix large
10535 integer typing for small model. Use IN_RANGE.
10536
2160d5ba 105372015-02-02 Richard Biener <rguenther@suse.de>
10538
10539 * tree-ssa-ccp.c (valueize_op_1): Always allow valueizing default-defs.
10540 * tree-vrp.c (vrp_valueize_1): Likewise.
10541
dc40b8b5 105422015-02-02 Alan Modra <amodra@gmail.com>
10543
10544 * config/rs6000/rs6000.c (rs6000_call_aix): Use unspec rather
10545 than mem for toc_restore.
10546 * config/rs6000/rs6000.md (UNSPEC_TOCSLOT): Define.
10547 (call_indirect_aix, call_value_indirect_aix): Adjust to suit.
10548 (call_indirect_elfv2, call_value_indirect_elfv2): Likewise.
10549
434b5fa9 105502015-02-01 David Edelsohn <dje.gcc@gmail.com>
10551
10552 PR target/64047
10553 * config/rs6000/rs6000.c (rs6000_set_current_function): Handle
10554 explicit default options.
10555
105562015-02-01 Jan Hubicka <hubicka@ucw.cz>
96bf18ea 10557
10558 PR ipa/64872
10559 * ipa-utils.c (ipa_merge_profiles): Add release argument.
10560 * ipa-icf.c (sem_function::merge): Do not release body when merging.
10561 * ipa-utils.h (ipa_merge_profiles): Update prototype.
10562
54497144 105632015-02-01 Jakub Jelinek <jakub@redhat.com>
10564
10565 PR debug/64817
10566 * cfgexpand.c (deep_ter_debug_map): New variable.
10567 (avoid_deep_ter_for_debug): New function.
10568 (expand_debug_expr): If TERed SSA_NAME is in
10569 deep_ter_debug_map, use the corresponding DEBUG_EXPR_DECL
10570 instead of trying to expand SSA_NAME's def stmt.
10571 (expand_debug_locations): When expanding debug bind
10572 of a DEBUG_EXPR_DECL to corresponding SSA_NAME,
10573 temporarily remove the DEBUG_EXPR_DECL from deep_ter_debug_map's
10574 value.
10575 (pass_expand::execute): Call avoid_deep_ter_for_debug on
10576 all debug bind stmts. Delete deep_ter_debug_map after
10577 expand_debug_location if non-NULL and clear it.
10578
746ebdc3 105792015-02-01 Oleg Endo <olegendo@gcc.gnu.org>
10580
10581 PR target/64851
10582 * config/sh/sync.md (atomic_fetch_notsi_hard,
10583 atomic_fetch_not<mode>_hard, atomic_fetch_not<mode>_soft_gusa,
10584 atomic_fetch_not<mode>_soft_tcb, atomic_fetch_not<mode>_soft_imask,
10585 atomic_not_fetchsi_hard, atomic_not_fetch<mode>_hard,
10586 atomic_not_fetch<mode>_soft_gusa, atomic_not_fetch<mode>_soft_tcb,
10587 atomic_not_fetch<mode>_soft_imask): New insns.
10588
770c9167 105892015-02-01 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
10590
10591 * haifa-sched.c (INSN_RFS_DEBUG_ORIG_ORDER): New access macro.
10592 (rank_for_schedule_debug): Split from ...
10593 (rank_for_schedule): ... this.
10594 (ready_sort): Sort DEBUG_INSNs separately from normal INSNs.
10595 * sched-int.h (struct _haifa_insn_data): New field rfs_debug_orig_order.
10596
b483a630 105972015-01-31 Sandra Loosemore <sandra@codesourcery.com>
10598
10599 * doc/md.texi (Machine Constraints): Alphabetize table by target.
10600 * doc/extend.texi (x86 Variable Attributes): Move section to
10601 correct alphabetization after renaming.
10602 (x86 Type Attributes): Likewise.
10603 (Target Builtins): Re-alphabetize menu.
10604 (x86 Built-in Functions): Move section to correct alphabetization
10605 after renaming.
10606 (x86 transactional memory intrinsics): Likewise.
10607 * doc/invoke.texi (Option Summary): Re-alphabetize x86 Options
10608 and x86 Windows Options in table and menu.
10609 (x86 Options): Move section to correct alphabetization after
10610 renaming.
10611 (x86 Windows Options): Likewise.
10612
17b45f0b 106132015-01-31 Sandra Loosemore <sandra@codesourcery.com>
10614
10615 * doc/extend.texi: Use "x86", "x86-32", and "x86-64" as the
10616 preferred names of the architecture and its 32- and 64-bit
10617 variants.
10618 * doc/invoke.texi: Likewise.
10619 * doc/md.texi: Likewise.
10620
3094ddd8 106212015-01-31 Uros Bizjak <ubizjak@gmail.com>
10622
746ebdc3 10623 PR target/64882
3094ddd8 10624 * config/i386/predicates.md (address_no_seg_operand): Reject
10625 non-CONST_INT_P operands in invalid mode.
10626
106272015-01-31 Uros Bizjak <ubizjak@gmail.com>
10628
10629 * config/i386/i386.md (*prefetch_prefetchw1): Remove mode of
10630 address_operand 0. Rename from *prefetch_prefetchwt1_<mode>.
10631 * config/i386/predicates.md (address_no_seg_operand): Call
10632 address_operand with VOIDmode.
10633 (vsib_address_operand): Ditto.
10634 (address_mpx_no_base_operand): Ditto.
10635 (address_mpx_no_index_operand): Ditto.
10636
1aae95ec 106372015-01-30 Vladimir Makarov <vmakarov@redhat.com>
10638
10639 PR target/64688
10640 * lra-constraints.c (original_subreg_reg_mode): New.
10641 (simplify_operand_subreg): Try to simplify subreg of const. Use
10642 original_subreg_reg_mode for it.
10643 (swap_operands): Update original_subreg_reg_mode.
10644 (curr_insn_transform): Set up original_subreg_reg_mode.
10645
25cd984c 106462015-01-30 Vladimir Makarov <vmakarov@redhat.com>
10647
10648 PR target/64617
10649 * lra-constraints.c (prohibited_class_reg_set_mode_p): New
10650 function.
10651 (process_alt_operands): Use it.
10652 (curr_insn_transform): Check the optional reload pseudo class is
10653 ok for the mode.
10654
c05be867 106552015-01-30 Joseph Myers <joseph@codesourcery.com>
10656
10657 * diagnostic.c (fatal_error (const char *, ...)): Remove function.
10658 * diagnostic-core.h (fatal_error (const char *, ...)): Remove
10659 prototype.
10660 * toplev.h (init_asm_output): Update comment on use of
10661 UNKNOWN_LOCATION with fatal_error.
10662 * cgraph.c, collect-utils.c, collect2.c, config/arc/arc.c,
10663 config/arc/arc.md, config/avr/avr.c, config/c6x/c6x.h,
10664 config/darwin.c, config/host-darwin.c, config/i386/host-cygwin.c,
10665 config/i386/intelmic-mkoffload.c, config/nios2/nios2.c,
10666 config/nvptx/mkoffload.c, config/nvptx/nvptx.h,
10667 config/rs6000/host-darwin.c, config/rs6000/rs6000.c,
10668 config/s390/s390.c, gcc.c, gcov-io.h, gcov-tool.c, ggc-common.c,
10669 ggc-page.c, graph.c, ipa-inline-analysis.c, ipa-reference.c,
10670 lto-cgraph.c, lto-section-in.c, lto-streamer-in.c, lto-streamer.c,
10671 lto-wrapper.c, objc/objc-act.c, opts.c, passes.c, plugin.c,
10672 tlink.c, toplev.c, tree-streamer-in.c, varpool.c: All callers of
10673 fatal_error changed to pass input_location as first argument.
10674
9620a2cb 106752015-01-30 Martin Liska <mliska@suse.cz>
10676
10677 * tree.h: Change GCC_VERSION >= 4004 to GCC_VERSION >= 4006
10678 in #pragma GCC diagnostic guards.
10679
c8927928 106802015-01-30 Richard Biener <rguenther@suse.de>
10681
10682 PR tree-optimization/64829
10683 * tree-vect-patterns.c (vect_handle_widen_op_by_const): Do
10684 not add a widening conversion pattern but hand off extra
10685 widenings to callers.
10686 (vect_recog_widen_mult_pattern): Handle extra widening produced
10687 by vect_handle_widen_op_by_const.
10688 (vect_recog_widen_shift_pattern): Likewise.
10689 (vect_pattern_recog_1): Remove excess vertical space in dumping.
10690 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
10691 (vect_init_vector_1): Likewise.
10692 (vect_get_vec_def_for_operand): Likewise.
10693 (vect_finish_stmt_generation): Likewise.
10694 (vectorizable_load): Likewise.
10695 (vect_analyze_stmt): Likewise.
10696 (vect_is_simple_use): Likewise.
10697
cb8f8246 106982015-01-29 Jeff Law <law@redhat.com>
10699
10700 * combine.c (try_combine): Fix typo in comment.
10701
c55914bb 107022015-01-29 Segher Boessenkool <segher@kernel.crashing.org>
10703
10704 PR target/64580
10705 * config.rs6000/rs6000.c (compute_vrsave_mask): Reverse loop order.
10706 (rs6000_stack_info): Add assert.
10707 (rs6000_output_savres_externs): New function, split off from...
10708 (rs6000_output_function_prologue): ... here. Do not call it for
10709 thunks.
10710
50a2b7fd 107112015-01-29 Jeff Law <law@redhat.com>
10712
c55914bb 10713 PR target/15184
50a2b7fd 10714 * combine.c (try_combine): If I0 is a memory load and I3 a store
10715 to a related address, increase the "goodness" of doing a 4-insn
10716 combination with I0-I3.
10717 (make_field_assignment): Handle SUBREGs in the ior+and case.
10718
d3815dd1 107192015-01-29 Yuri Rumyantsev <ysrumyan@gmail.com>
10720
10721 PR tree-optimization/64746
10722 * tree-if-conv.c (mask_exists): New function.
10723 (predicate_mem_writes): Save created mask with given size for further
10724 use.
10725 (stmt_is_root_of_bool_pattern): Remove argument VAR and store to it.
10726 (ifcvt_repair_bool_pattern): Collect all statements that are root
10727 of bool pattern and use iterative algorithm to remove multiple uses
10728 of predicates, display number of required iterations.
10729
bc8fa068 107302015-01-29 Richard Biener <rguenther@suse.de>
10731
10732 PR tree-optimization/64853
10733 * tree-vrp.c (vrp_valueize_1): Do not return anything if the
10734 stmt will get simulated again.
10735 * tree-ssa-ccp.c (valueize_op_1): Likewise.
10736
a35cc24a 107372015-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10738
10739 * config/arm/arm.c (arm_emit_multi_reg_pop): Simplify definition of
10740 return_in_pc. Remove redundant assignments.
10741 (thumb2_emit_ldrd_pop): Simplify definition of return_in_pc.
10742 (arm_expand_epilogue): Don't compare boolean with true in if condition.
10743
bef5f3b7 107442015-01-29 Uros Bizjak <ubizjak@gmail.com>
10745
10746 * config/i386/i386.c (ix86_mode_after): Make static.
10747
e4eca2de 107482015-01-29 Richard Biener <rguenther@suse.de>
10749
10750 PR tree-optimization/64844
10751 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Always
10752 dump cost model analysis.
10753 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
10754 Do not register adjusted load/store costs here.
10755
0554566a 107562015-01-29 Ilya Enkovich <ilya.enkovich@intel.com>
10757 Uros Bizjak <ubizjak@gmail.com>
10758
10759 * config/i386/i386-protos.h (ix86_use_pseudo_pic_reg): New.
10760 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Simplify by
10761 using x86_use_pseudo_pic_reg.
10762 * config/i386/i386.c (ix86_conditional_register_usage): Remove
10763 support for fixed PIC register.
10764 (ix86_use_pseudo_pic_reg): Not static any more.
10765
562fafb8 107662015-01-29 Ilya Enkovich <ilya.enkovich@intel.com>
10767
10768 PR middle-end/64805
10769 * ipa-inline.c (early_inliner): Rebuild IPA_REF_CHKP reference
10770 to avoid error in cgraph node verification.
10771
8c7631cc 107722015-01-29 Marek Polacek <polacek@redhat.com>
10773
10774 * doc/standards.texi: Reflect that the default for C is gnu11.
10775
27e4242f 107762015-01-29 Kaz Kojima <kkojima@gcc.gnu.org>
10777
10778 PR target/64761
10779 * reorg.c (switch_text_sections_between_p): New function.
10780 (relax_delay_slots): Call it when testing if the jump insn
10781 is removable. Use targetm.can_follow_jump when testing if
10782 the conditional branch can follow an unconditional jump.
10783
5be42fa9 107842015-01-27 Caroline Tice <cmtice@google.com>
10785
10786 Committing VTV Cywin/Ming patch for Patrick Wollgast
10787 * config/i386/cygwin.h (STARTFILE_SPEC): Add vtv_start.o,
10788 if -fvtable-verify=preinit/std is used.
10789 * config/i386/mingw-w64.h (STARTFILE_SPEC): Likewise.
10790 * config/i386/mingw32.h (STARTFILE_SPEC): Likewise.
10791 * config/i386/cygwin.h (ENDFILE_SPEC): Add vtv_end.o,
10792 if -fvtable-verify=preinit/std is used.
10793 * config/i386/mingw32.h (ENDFILE_SPEC): Likewise.
10794 * config/i386/cygwin.h (LIB_SPEC): Pass -lvtv and -lpsapi,
10795 if -fvtable-verify=preinit/std is used.
10796 * config/i386/mingw-w64.h (LIB_SPEC): Likewise.
10797 * config/i386/mingw32.h (LIB_SPEC): Likewise.
10798 * varasm.c (assemble_variable): Add code to properly set the comdat
10799 section and name for the .vtable_map_vars section in case the
10800 target is PE or COFF.
10801
3a9f48e7 108022015-01-29 Jan Hubicka <hubicka@ucw.cz>
10803
10804 PR ipa/64801
10805 * cgraphunit.c (init_lowered_empty_function): Add CoUNT parameter;
10806 make sane BB profile.
10807 (cgraph_node::expand_thunk): Make sane BB profile.
10808 (cgraph_node::create_wrapper): Do not set call_stmt_cannot_inline_p.
10809 * cgraph.h (init_lowered_empty_function): Update prototype.
10810 * config/i386/i386.c (make_resolver_func): Update call.
10811 * predict.c (gate): Disable branch prediction pass if
10812 profile is already there.
10813
b92389a6 108142015-01-29 Jan Hubicka <hubicka@ucw.cz>
10815
10816 * optc-save-gen.awk: flag_fp_contract_mode is no longer speical.
10817 * opth-gen.awk: Likewise.
10818 * common.opt: Mark flag_fp_contract_mode as Optimization.
10819
c0670fd7 108202015-01-29 Bernd Edlinger <bernd.edlinger@hotmail.de>
10821
10822 * config/i386/cygwin.h (LIBGCJ_SONAME): Set libgcj version to -16.
10823 * config/i386/mingw32.h (LIBGCJ_SONAME): Set libgcj version to -16.
10824
20c3dd32 108252015-01-28 Oleg Endo <olegendo@gcc.gnu.org>
10826
10827 PR target/64659
10828 * config/sh/predicates.md (atomic_arith_operand,
10829 atomic_logical_operand): Remove.
10830 * config/sh/sync.md (fetchop_predicate, fetchop_constraint): Remove.
10831 (atomic_arith_operand_0): New predicate.
10832 (atomic_compare_and_swap<mode>): Use arith_reg_dest for output values.
10833 Use atomic_arith_operand_0 for input values.
10834 (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
10835 atomic_compare_and_swap<mode>_soft_gusa,
10836 atomic_compare_and_swap<mode>_soft_tcb,
10837 atomic_compare_and_swap<mode>_soft_imask): Use arith_reg_dest and
10838 arith_reg_operand instead of register_operand.
10839 (atomic_exchange<mode>): Use arith_reg_dest for output value. Use
10840 atomic_arith_operand_0 for newval input.
10841 (atomic_exchangesi_hard, atomic_exchange<mode>_hard,
10842 atomic_exchange<mode>_soft_gusa, atomic_exchange<mode>_soft_tcb,
10843 atomic_exchange<mode>_soft_imask): Use arith_reg_dest and
10844 arith_reg_operand instead of register_operand.
10845 (atomic_arith_operand_1, atomic_logical_operand_1): New predicates.
10846 fetchop_predicate_1, fetchop_constraint_1_llcs,
10847 fetchop_constraint_1_gusa, fetchop_constraint_1_tcb,
10848 fetchop_constraint_1_imask): New code iterator attributes.
10849 (atomic_fetch_<fetchop_name><mode>): Use arith_reg_dest instead of
10850 register_operand. Use fetchop_predicate_1.
10851 (atomic_fetch_<fetchop_name>si_hard,
10852 atomic_fetch_<fetchop_name><mode>_hard): Use arith_reg_dest instead of
10853 register_operand. Use fetchop_predicate_1, fetchop_constraint_1_llcs.
10854 (atomic_fetch_<fetchop_name><mode>_soft_gusa): Use arith_reg_dest
10855 and arith_reg_operand instead of register_operand. Use
10856 fetchop_predicate_1, fetchop_constraint_1_gusa.
10857 (atomic_fetch_<fetchop_name><mode>_soft_tcb): Use arith_reg_dest
10858 and arith_reg_operand instead of register_operand. Use
10859 fetchop_predicate_1, fetchop_constraint_1_tcb. Adjust asm sequence
10860 to allow R0 usage.
10861 (atomic_fetch_<fetchop_name><mode>_soft_imask): Use arith_reg_dest
10862 and arith_reg_operand instead of register_operand. Use
10863 fetchop_predicate_1, fetchop_constraint_1_imask. Adjust asm sequence
10864 to allow R0 usage.
10865 (atomic_fetch_nand<mode>): Use arith_reg_dest instead of
10866 register_operand. Use atomic_logical_operand_1.
10867 (atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
10868 atomic_fetch_nand<mode>_soft_gusa): Use arith_reg_dest and
10869 arith_reg_operand instead of register_operand.
10870 (atomic_fetch_nand<mode>_soft_tcb, atomic_fetch_nand<mode>_soft_imask):
10871 Use arith_reg_dest and arith_reg_operand instead of register_operand.
10872 Use logical_operand and rK08. Adjust asm sequence to allow R0 usage.
10873 (atomic_<fetchop_name>_fetch<mode>): Use arith_reg_dest instead of
10874 register_operand. Use fetchop_predicate_1.
10875 (atomic_<fetchop_name>_fetchsi_hard,
10876 atomic_<fetchop_name>_fetch<mode>_hard): Use arith_reg_dest and
10877 arith_reg_operand instead of register_operand. Use fetchop_predicate_1,
10878 fetchop_constraint_1_llcs.
10879 (atomic_<fetchop_name>_fetch<mode>_soft_gusa): Use arith_reg_dest and
10880 arith_reg_operand instead of register_operand. Use fetchop_predicate_1,
10881 fetchop_constraint_1_gusa.
10882 (atomic_<fetchop_name>_fetch<mode>_soft_tcb): Use arith_reg_dest and
10883 arith_reg_operand instead of register_operand. Use fetchop_predicate_1,
10884 fetchop_constraint_1_tcb. Adjust asm sequence to allow R0 usage.
10885 (atomic_<fetchop_name>_fetch<mode>_soft_imask): Use arith_reg_dest and
10886 arith_reg_operand instead of register_operand. Use fetchop_predicate_1,
10887 fetchop_constraint_1_imask. Adjust asm sequence to allow R0 usage.
10888 (atomic_nand_fetch<mode>): Use arith_reg_dest instead of
10889 register_operand. Use atomic_logical_operand_1.
10890 (atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
10891 atomic_nand_fetch<mode>_soft_gusa): Use arith_reg_dest and
10892 arith_reg_operand instead of register_operand.
10893 (atomic_nand_fetch<mode>_soft_tcb): Use arith_reg_dest and
10894 arith_reg_operand instead of register_operand. Use logical_operand
10895 and K08. Adjust asm sequence to allow R0 usage.
10896 (atomic_nand_fetch<mode>_soft_imask): Use arith_reg_dest and
10897 arith_reg_operand instead of register_operand. Use logical_operand
10898 and K08.
10899
ae395326 109002015-01-28 Jakub Jelinek <jakub@redhat.com>
10901
10902 PR other/63504
10903 * dwarf2out.c (add_AT_wide, mem_loc_descriptor, loc_descriptor):
10904 Use ggc_alloc<wide_int> instead of ggc_cleared_alloc<wide_int>.
10905 (attr_checksum, attr_checksum_ordered, hash_loc_operands): Checksum
10906 only get_full_len HOST_WIDE_INTs from get_val () array rather than
10907 all bits in *val_wide.
10908
8b741ed1 109092015-01-28 Jan Hubicka <hubicka@ucw.cz>
10910
10911 * varpool.c (tls_model_names): Fix names.
10912 (varpool_node::dump): Dump tls- prefix for tls models.
10913
9c08fbb3 109142015-01-28 Thomas Schwinge <thomas@codesourcery.com>
10915 Bernd Schmidt <bernds@codesourcery.com>
10916 Nathan Sidwell <nathan@codesourcery.com>
10917
10918 * config/nvptx/mkoffload.c: New file.
10919 * config/nvptx/t-nvptx: Add build rules for it.
10920 * config.gcc <nvptx-*> [$enable_as_accelerator = yes]
10921 (extra_programs): Add mkoffload.
10922 * config/nvptx/nvptx.c (nvptx_record_offload_symbol): New
10923 function.
10924 (TARGET_RECORD_OFFLOAD_SYMBOL): Define macro to use it.
10925
31aebeec 109262015-01-28 Yuri Rumyantsev <ysrumyan@gmail.com>
10927
10928 PR middle-end/64809
10929 * cfgexpand.c (reorder_operands): Skip debug gimples.
10930
97178c4f 109312015-01-28 Ilya Enkovich <ilya.enkovich@intel.com>
10932
10933 PR tree-optimization/64277
10934 * tree-ssa-loop-niter.c (record_nonwrapping_iv): Use base
10935 range info when possible to refine estimation.
10936
904c73a0 109372015-01-28 Thomas Preud'homme <thomas.preudhomme@arm.com>
10938
10939 PR tree-optimization/64718
10940 * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Make bswap_type
10941 be a 16bit unsigned integer when n->range is 16.
10942 (bswap_replace): Convert src to that type if necessary for all bswap
10943 sizes. Fix rotation right notation in nearby comment. Use bswap_type
10944 set in pass_optimize_bswap::execute ().
10945
260d579b 109462015-01-28 James Greenhalgh <james.greenhalgh@arm.com>
10947
10948 * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): New.
10949 * config/aarch64/aarch64-simd-builtins.def (abs): Split by
10950 integer and floating point variants.
10951 * config/aarch64/iterators.md (unspec): Add UNSPEC_ABS.
10952
b47145cf 109532015-01-28 Robert Suchanek <robert.suchanek@imgtec.com>
10954
10955 * config/mips/mips.c (mips_hard_regno_mode_ok_p): Prohibit accumulators
10956 for all vector modes.
10957
09475d99 109582015-01-28 Jakub Jelinek <jakub@redhat.com>
10959
10960 PR bootstrap/64612
10961 * doc/sourcebuild.texi (comdat_group): Document.
10962
56640707 109632015-01-28 Terry Guo <terry.guo@arm.com>
10964
10965 * config/arm/thumb1.md (*thumb1_movpc_insn): New insn pattern.
10966
b86fa9da 109672015-01-27 David Malcolm <dmalcolm@redhat.com>
10968
10969 * toplev.c (print_version): Add param "show_global_state", and
10970 only print GGC and plugin information if it is true.
10971 (init_asm_output): Pass in "true" for the new param when calling
10972 print_version.
10973 (process_options): Likewise.
10974 (toplev::main): Likewise.
10975 * toplev.h (print_version): Add new param to decl.
10976
2fdf87a8 109772015-01-27 Jan Hubicka <hubicka@ucw.cz>
10978
10979 PR ipa/60871
10980 PR ipa/64139
10981 * tree.c (lookup_binfo_at_offset): New function.
10982 (get_binfo_at_offset): Use it.
10983
5c318c08 109842015-01-27 Jan Hubicka <hubicka@ucw.cz>
10985
10986 PR ipa/64282
10987 * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert
10988 on vtable being vtable.
10989
11762b83 109902015-01-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
10991
bef5f3b7 10992 * doc/extend.texi: s/390: Update documentation of hotpatch attribute.
10993 * doc/invoke.texi (-mhotpatch): s/390: Update documentation of
10994 -mhotpatch= option.
10995 * config/s390/s390.opt (mhotpatch): s/390: Remove -mhotpatch and
10996 -mno-hotpatch options. Change syntax of -mhotpatch= option.
10997 * config/s390/s390.c (s390_hotpatch_trampoline_halfwords_default):
10998 Renamed.
10999 (s390_hotpatch_trampoline_halfwords_max): Renamed.
11000 (s390_hotpatch_hw_max): New name.
11001 (s390_hotpatch_trampoline_halfwords): Renamed.
11002 (s390_hotpatch_hw_before_label): New name.
11003 (get_hotpatch_attribute): Removed.
11004 (s390_hotpatch_hw_after_label): New name.
11005 (s390_handle_hotpatch_attribute): Add second parameter to hotpatch
11006 attribute.
11007 (s390_attribute_table): Ditto.
11008 (s390_function_num_hotpatch_trampoline_halfwords): Renamed.
11009 (s390_function_num_hotpatch_hw): New name.
11010 Remove special handling of inline functions and hotpatching.
11011 Return number of nops before and after the function label.
11012 (s390_can_inline_p): Removed.
11013 (s390_asm_output_function_label): Emit a configurable number of nops
11014 after the function label.
11015 (s390_option_override): Update -mhotpatch= syntax and remove -mhotpatch.
11016 (TARGET_CAN_INLINE_P) Removed.
11017 (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): New.
11762b83 11018
e846bde8 110192015-01-27 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11020 Jiong Wang <jiong.wang@arm.com>
11021
11022 * config/aarch64/aarch64.md (tb<optab><mode>1): Clobber CC reg instead
11023 of scratch reg.
11024 (cb<optab><mode>1): Likewise.
11025 * config/aarch64/iterators.md (bcond): New define_code_attr.
11026
9a071c9f 110272015-01-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11028
11029 * config/s390/s390.c (s390_memory_move_cost): Increase costs for
11030 memory accesses.
11031
5fe5762e 110322015-01-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11033
11034 * config/s390/s390.c (s390_register_move_cost): Increase costs for
11035 FPR->GPR moves.
11036
51f82904 110372015-01-27 Richard Biener <rguenther@suse.de>
11038
11039 * tree-vrp.c (update_value_range): Intersect the range with
11040 old recorded SSA name range information.
11041
90f06e32 110422015-01-27 Nick Clifton <nickc@redhat.com>
11043
11044 * config/rl78/rl78.c (rl78_expand_prologue): In G10 mode push the
11045 BC, DE and HL registers directly, not via AX.
11046 When decrementing the stack pointer by a large amount, transfer SP
11047 into AX and perform the subtraction there.
11048 (rl78_expand_epilogue): Perform the inverse of the above
11049 enhancements.
11050
43cbcd84 110512015-01-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11052
11053 * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Remove.
11054
739b9247 110552015-01-27 Jakub Jelinek <jakub@redhat.com>
11056 Yury Gribov <y.gribov@samsung.com>
11057
11058 PR ubsan/64741
11059 * ubsan.c (ubsan_source_location): Refactor code.
11060 (ubsan_type_descriptor): Update type size. Refactor code.
11061
fdb2733b 110622015-01-27 Richard Biener <rguenther@suse.de>
11063
11064 PR tree-optimization/56273
11065 PR tree-optimization/59124
11066 PR tree-optimization/64277
11067 * tree-vrp.c (vrp_finalize): Emit array-bound warnings only
11068 from the first VRP pass.
11069
e2810e72 110702015-01-27 Jakub Jelinek <jakub@redhat.com>
11071
8c2b231e 11072 PR ipa/64776
11073 * cgraphunit.c (cgraph_node::expand_thunk): If not this_adjusting,
11074 handle the first argument in the same loop as all the other arguments.
11075
e2810e72 11076 PR rtl-optimization/61058
11077 * jump.c (cleanup_barriers): Update basic block boundaries
11078 if BLOCK_FOR_INSN is non-NULL on PREV.
11079
cf5a1dfc 110802015-01-27 Ilya Enkovich <ilya.enkovich@intel.com>
11081
11082 * tree-chkp.c (chkp_call_returns_bounds_p): Fix handling of
11083 bounds narrowing, already instrumented calls and calls to
11084 not instrumentable functions.
11085
e80d050d 110862015-01-27 Jakub Jelinek <jakub@redhat.com>
11087
11088 PR tree-optimization/64807
11089 * wide-int.cc (wi::divmod_internal): Clear
11090 b_dividend[dividend_blocks_needed].
11091
f648448d 110922015-01-26 DJ Delorie <dj@redhat.com>
11093
11094 * config/rl78/rl78.c (move_elim_pass): Don't optimize away
11095 volatile memory references.
11096
da519e84 110972015-01-26 Oleg Endo <olegendo@gcc.gnu.org>
11098
11099 PR target/49263
11100 * config/sh/sh.c (sh_split_treg_set_expr): Invoke emit_insn before
11101 remove_insn.
11102 * config/sh/sh.md (tstsi_t): Don't try to optimize constant with right
11103 shifts if it already fits into K08.
11104
4e4baaad 111052015-01-26 Jakub Jelinek <jakub@redhat.com>
11106
4abdcfcb 11107 PR ipa/64730
11108 * ipa-inline.c (inline_small_functions): Print "unknown" even
11109 if edge->call_stmt is non-NULL, but has builtins or unknown
11110 location.
11111
4e4baaad 11112 PR middle-end/64421
11113 * omp-low.c (simd_clone_mangle): If DECL_ASSEMBLER_NAME starts
11114 with asterisk, skip the first character.
11115
202b2a31 111162015-01-26 H.J. Lu <hongjiu.lu@intel.com>
11117
11118 PR target/64806
11119 * config/i386/i386 (feature_priority): Revert the last P_POPCNT
11120 order change.
11121
89e2ddc9 111222015-01-26 Uros Bizjak <ubizjak@gmail.com>
11123
bef5f3b7 11124 PR target/64795
89e2ddc9 11125 * config/i386/i386.md (*movdi_internal): Also check operand 0
11126 to determine TYPE_LEA operand.
11127 (*movsi_internal): Ditto.
11128
83c54f52 111292015-01-26 Jakub Jelinek <jakub@redhat.com>
11130
11131 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add
11132 OPTION_MASK_QUAD_MEMORY_ATOMIC.
11133
208e784b 111342015-01-26 Renlin Li <renlin.li@arm.com>
11135
11136 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Correct
11137 the comment.
11138 * config/aarch64/aarch64.md (tlsle_small_<mode>): Add left shift 12-bit
11139 for higher part.
11140
e9b1fbeb 111412015-01-26 Richard Biener <rguenther@suse.de>
11142
11143 PR middle-end/64764
11144 * tree-ssa-uninit.c (is_pred_expr_subset_of): Handle
11145 combining two BIT_AND_EXPR predicates.
11146
0ca349c0 111472015-01-26 H.J. Lu <hongjiu.lu@intel.com>
11148
11149 PR bootstrap/64754
11150 * tree-ssa-structalias.c (new_var_info): Initialize ruid.
e9b1fbeb 11151
b91bef5c 111522015-01-26 Terry Guo <terry.guo@arm.com>
11153
11154 * config/arm/arm.c (arm_file_start): Update the assignment of
11155 Tag_ABI_HardFP_use.
11156
bef5f3b7 111572015-01-25 James Greenhalgh <james.greenhalgh@arm.com>
b1099bfd 11158
11159 * config/arm/arm-cores.def (cortex-a57): Use the new Cortex-A57
11160 pipeline model.
11161 config/arm/arm.md: Include the new Cortex-A57 model.
11162 (generic_sched): Don't use generic_sched when tuning for
11163 Cortex-A57.
11164
f8956357 111652015-01-25 Allan Sandfeld Jensen <sandfeld@kde.org>
11166 Uros Bizjak <ubizjak@gmail.com>
11167
11168 * config/i386/i386.c (get_builtin_code_for_version): Add
11169 support for BMI and BMI2 multiversion functions.
11170
3de84d7f 111712015-01-25 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
11172
11173 * emit-rtl.h (store_bit_field): Move prototype to expmed.h.
11174 (extract_bit_field): Likewise.
11175 (extract_low_bits): Likewise.
11176 (expand_mult): Likewise.
11177 (expand_mult_highpart_adjust): Likewise.
11178
1b738d4d 111792015-01-24 H.J. Lu <hongjiu.lu@intel.com>
11180
11181 * config/i386/driver-i386.c (host_detect_local_cpu): Check new
11182 Silvermont, Haswell, Broadwell and Knights Landing model numbers.
11183 * config/i386/i386.c (processor_model): Add
11184 M_INTEL_COREI7_BROADWELL.
11185 (arch_names_table): Add "broadwell".
11186
6c97af1b 111872015-01-24 Oleg Endo <olegendo@gcc.gnu.org>
11188
11189 PR target/49263
11190 PR target/53987
11191 PR target/64345
11192 PR target/59533
11193 PR target/52933
11194 PR target/54236
11195 PR target/51244
11196 * config/sh/sh-protos.h
11197 (sh_extending_set_of_reg::can_use_as_unextended_reg,
11198 sh_extending_set_of_reg::use_as_unextended_reg,
11199 sh_is_nott_insn, sh_movt_set_dest, sh_movrt_set_dest, sh_is_movt_insn,
11200 sh_is_movrt_insn, sh_insn_operands_modified_between_p,
11201 sh_reg_dead_or_unused_after_insn, sh_in_recog_treg_set_expr,
11202 sh_recog_treg_set_expr, sh_split_treg_set_expr): New functions.
11203 (sh_treg_insns): New class.
11204 * config/sh/sh.c (TARGET_LEGITIMATE_COMBINED_INSN): Define target hook.
11205 (scope_counter): New class.
11206 (sh_legitimate_combined_insn, sh_is_nott_insn, sh_movt_set_dest,
11207 sh_movrt_set_dest, sh_reg_dead_or_unused_after_insn,
11208 sh_extending_set_of_reg::can_use_as_unextended_reg,
11209 sh_extending_set_of_reg::use_as_unextended_reg, sh_recog_treg_set_expr,
11210 sh_in_recog_treg_set_expr, sh_try_split_insn_simple,
11211 sh_split_treg_set_expr): New functions.
11212 (addsubcosts): Handle treg_set_expr.
11213 (sh_rtx_costs): Handle IF_THEN_ELSE and ZERO_EXTRACT.
11214 (sh_rtx_costs): Use arith_reg_operand in SIGN_EXTEND and ZERO_EXTEND.
11215 (sh_rtx_costs): Handle additional bit test patterns in EQ and AND cases.
11216 (sh_insn_operands_modified_between_p): Make non-static.
11217 * config/sh/predicates.md (zero_extend_movu_operand): Allow
11218 simple_mem_operand in addition to displacement_mem_operand.
11219 (zero_extend_operand): Don't allow zero_extend_movu_operand.
11220 (treg_set_expr, treg_set_expr_not_const01,
11221 arith_reg_or_treg_set_expr): New predicates.
11222 * config/sh/sh.md (tstsi_t): Use arith_reg_operand and
11223 arith_or_int_operand instead of logical_operand. Convert to
11224 insn_and_split. Try to optimize constant operand in splitter.
11225 (tsthi_t, tstqi_t): Fold into *tst<mode>_t. Convert to insn_and_split.
11226 (*tstqi_t_zero): Delete.
11227 (*tst<mode>_t_subregs): Add !sh_in_recog_treg_set_expr split condition.
11228 (tstsi_t_and_not): Delete.
11229 (tst<mode>_t_zero_extract_eq): Rename to *tst<mode>_t_zero_extract.
11230 Convert to insn_and_split.
11231 (unnamed split, tstsi_t_zero_extract_xor,
11232 tstsi_t_zero_extract_subreg_xor_little,
11233 tstsi_t_zero_extract_subreg_xor_big): Delete.
11234 (*tstsi_t_shift_mask): New insn_and_split.
11235 (cmpeqsi_t, cmpgesi_t): Add new split for const_int 0 operands and try
11236 to recombine with surrounding insns when splitting.
11237 (*negtstsi): Add !sh_in_recog_treg_set_expr condition.
11238 (cmp_div0s_0, cmp_div0s_1, *cmp_div0s_0, *cmp_div0s_1): Rewrite as ...
11239 (cmp_div0s, *cmp_div0s_1, *cmp_div0s_2, *cmp_div0s_3, *cmp_div0s_4,
11240 *cmp_div0s_5, *cmp_div0s_6): ... these new insn_and_split patterns.
11241 (*cbranch_div0s: Delete.
11242 (*addc): Convert to insn_and_split. Use treg_set_expr as 3rd operand.
11243 Try to recombine with surrounding insns when splitting. Add operand
11244 order variants.
11245 (*addc_t_r, *addc_r_t): Use treg_set_expr_not_const01.
11246 (*addc_r_r_1, *addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_r_msb,
11247 *addc_r_r_msb, *addc_2r_msb): Delete.
11248 (*addc_2r_lsb): Rename to *addc_2r_t. Use treg_set_expr. Add operand
11249 order variant.
11250 (*addc_negreg_t): New insn_and_split.
11251 (*subc): Convert to insn_and_split. Use treg_set_expr as 3rd operand.
11252 Try to recombine with surrounding insns when splitting.
89e2ddc9 11253 Add operand order variants.
6c97af1b 11254 (*subc_negt_reg, *subc_negreg_t, *reg_lsb_t, *reg_msb_t): New
11255 insn_and_split patterns.
11256 (*rotcr): Use arith_reg_or_treg_set_expr. Try to recombine with
11257 surrounding insns when splitting.
11258 (unnamed rotcr split): Use arith_reg_or_treg_set_expr.
11259 (*rotcl): Likewise. Add zero_extract variant.
11260 (*ashrsi2_31): New insn_and_split.
11261 (*negc): Convert to insn_and_split. Use treg_set_expr.
11262 (*zero_extend<mode>si2_disp_mem): Update comment.
11263 (movrt_negc, *movrt_negc, nott): Add !sh_in_recog_treg_set_expr split
11264 condition.
11265 (*mov_t_msb_neg, mov_neg_si_t): Use treg_set_expr. Try to recombine
11266 with surrounding insns when splitting.
11267 (any_treg_expr_to_reg): New insn_and_split.
11268 (*neg_zero_extract_0, *neg_zero_extract_1, *neg_zero_extract_2,
11269 *neg_zero_extract_3, *neg_zero_extract_4, *neg_zero_extract_5,
11270 *neg_zero_extract_6, *zero_extract_0, *zero_extract_1,
11271 *zero_extract_2): New single bit zero extract patterns.
11272 (bld_reg, *bld_regqi): Fold into bld<mode>_reg.
11273 (*get_thread_pointersi, store_gbr, *mov<mode>_gbr_load,
11274 *mov<mode>_gbr_load, *mov<mode>_gbr_load, *mov<mode>_gbr_load,
11275 *movdi_gbr_load): Use arith_reg_dest instead of register_operand for
11276 set destination.
11277 (set_thread_pointersi, load_gbr): Use arith_reg_operand instead of
11278 register_operand for set source.
11279
0295dbbd 112802015-01-23 Jan Hubicka <hubicka@ucw.cz>
11281
11282 * i386.opt (prefetch_sse): New targetsave.
11283 * i386.c (ix86_function_specific_save): Save prefetch_sse.
11284 (ix86_function_specific_restore): Restore prefetch_sse and initialize
11285 ix86_cost/ix86_tune_cost.
11286
5cd82172 112872015-01-23 David Malcolm <dmalcolm@redhat.com>
11288
11289 * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
11290 Support the JIT by using 0 as the language type.
11291
472565f8 112922015-01-23 Vladimir Makarov <vmakarov@redhat.com>
11293
11294 PR target/64317
11295 * lra-lives.c (make_hard_regno_born): Add parameter. Don't make
11296 REAL_PIC_OFFSET_TABLE_REGNUM conflicting with pic offset pseudo.
cbcca16e 11297 (mark_regno_live, process_bb_lives): Pass new parameter value to
472565f8 11298 make_hard_regno_born.
11299
20d3ff08 113002015-01-23 Jakub Jelinek <jakub@redhat.com>
11301
11302 PR rtl-optimization/63637
11303 PR rtl-optimization/60663
11304 * cse.c (merge_equiv_classes): Set new_elt->cost to MAX_COST
11305 if elt->cost is MAX_COST for ASM_OPERANDS.
11306 (find_sets_in_insn): Fix up comment typo.
11307 (cse_insn): Don't set src_volatile for all non-volatile
11308 ASM_OPERANDS in PARALLELs, but just those with multiple outputs
11309 or with "memory" clobber. Set elt->cost to MAX_COST
11310 for ASM_OPERANDS in PARALLEL. Set src_elt->cost to MAX_COST
11311 if new_src is ASM_OPERANDS and elt->cost is MAX_COST.
11312
dea561ed 113132015-01-23 Uros Bizjak <ubizjak@gmail.com>
11314
11315 * config/i386/sse.md (sse2_loadld): Set attribute isa to sse2 for
11316 alternative 1.
11317
113182015-01-23 Uros Bizjak <ubizjak@gmail.com>
58ca7445 11319
11320 * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Move definition to
11321 libgcc/config/i386/elf-lib.h.
11322
c1a114c2 113232015-01-23 Jakub Jelinek <jakub@redhat.com>
11324
2782c04c 11325 PR driver/64737
11326 * gcc.c (print_configuration): Don't print a blank line at the end
11327 here...
11328 (run_attempt): ... but here unstead.
11329
c1a114c2 11330 PR middle-end/64734
11331 * omp-low.c (scan_sharing_clauses): Don't ignore
11332 OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION GOMP_MAP_POINTER clauses
11333 on target data/update constructs.
11334
2cd6aee1 113352015-01-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
11336
11337 PR target/50928
11338 * config/m32c/m32c.c (encode_pattern_1): Removed gcc_unreachable here.
11339 (DEBUG_RELOAD): Removed define.
11340 (m32c_limit_reload_class): Enable traces with if DEBUG0.
11341 (m32c_function_arg): Added a type cast.
11342 (m32c_legitimize_reload_address): Push A_REGS reload with PSImode.
11343 * config/m32c/addsub.md (addsi3_1): Specify the mode of all arguments.
11344 * config/m32c/bitops.md (andqi3_16): Likewise.
11345 * config/m32c/mov.md (m32c_immd_dbl_mov): Likewise.
11346 (push_a01_l): Likewise.
11347
4d31ecc4 113482015-01-23 David Malcolm <dmalcolm@redhat.com>
11349
11350 PR jit/64721
11351 * main.c (main): Construct toplev instances with init_signals=true.
11352 * toplev.c (general_init): Add param "init_signals", and use it to
11353 conditionalize the calls to signal and host_hooks.extra_signals.
11354 (toplev::toplev): Add param "init_signals".
11355 (toplev::main): When invoking general_init, pass m_init_signals
11356 to control whether signal-handlers are installed.
11357 * toplev.h (toplev::toplev): Add param "init_signals".
11358 (toplev::m_init_signals): New field.
11359
639f32a2 113602015-01-23 David Malcolm <dmalcolm@redhat.com>
11361
11362 PR jit/64722
11363 * emit-rtl.c (init_emit_regs): Set pic_offset_table_rtx to
11364 NULL_RTX before testing PIC_OFFSET_TABLE_REGNUM, since the
11365 latter may be affected by the former (e.g. on i686).
11366
75e5ecf3 113672015-01-23 Martin Liska <mliska@suse.cz>
11368
11369 * tree.h (tree_vec_elt_check): Workaround -Wstrict-overflow
11370 false positive during profiledbootstrap.
11371
85977647 113722015-01-23 Tom de Vries <tom@codesourcery.com>
11373
11374 PR libgomp/64672
11375 * lto-opts.c (lto_write_options): Output non-explicit conservative
11376 -fno-openacc.
11377 * lto-wrapper.c (merge_and_complain): Handle merging -fopenacc.
11378 (append_compiler_options): Pass -fopenacc through.
11379
fa175926 113802015-01-23 Tom de Vries <tom@codesourcery.com>
11381
11382 PR libgomp/64707
11383 * lto-opts.c (lto_write_options): Output non-explicit conservative
11384 -fno-openmp.
11385 * lto-wrapper.c (merge_and_complain): Handle merging -fopenmp.
11386 (append_compiler_options): Pass -fopenmp through.
11387
9d7131bf 113882015-01-23 Jakub Jelinek <jakub@redhat.com>
11389
0f41242a 11390 PR debug/64511
11391 * dwarf2out.c (struct dw_loc_descr_node): Add chain_next
11392 GTY markup.
11393
9d7131bf 11394 * diagnostic-core.h (internal_error_no_backtrace): New prototype.
11395 * diagnostic.def (DK_ICE_NOBT): New kind.
11396 * diagnostic.c (diagnostic_action_after_output): Handle DK_ICE_NOBT
11397 like DK_ICE, but never print backtrace.
11398 (diagnostic_report_diagnostic): Handle DK_ICE_NOBT like DK_ICE.
11399 (internal_error_no_backtrace): New function.
11400 * gcc.c (execute): Use internal_error_no_backtrace instead of
11401 internal_error.
11402
8dc239d3 114032015-01-22 Jeff Law <law@redhat.com>
11404
11405 PR target/52076
11406 * config/m68k/m68k.md (xorsi3_internal): Twiddle constraints to
11407 improve code density for small immediate to memory case.
11408 (insv): Better handle bitfield assignments when the field is
11409 being set to all ones.
11410 * config/m68k/predicates.md (reg_or_pow2_m1_operand): New
11411 operand predicate.
11412
f1c9126b 114132015-01-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11414 Jakub Jelinek <jakub@redhat.com>
11415
0982cb6d 11416 PR middle-end/64729
f1c9126b 11417 * gcc.c (LINK_SSP_SPEC): Handle -fstack-protector-explicit
11418 for !TARGET_LIBC_PROVIDES_SSP version and
11419 -fstack-protector-{all,strong,explicit} otherwise.
11420 * config/freebsd.h (LINK_SSP_SPEC): Handle
11421 -fstack-protector-{strong,explicit}.
11422
805e955d 114232015-01-22 Jan Hubicka <hubicka@ucw.cz>
11424 H.J. Lu <hongjiu.lu@intel.com>
11425
11426 PR ipa/64694
11427 * ipa-inline.c (inline_small_functions): Fix thinko in maintenance of
11428 heap.
11429
90f3e775 114302015-01-22 Wei Mi <wmi@google.com>
11431
11432 PR rtl-optimization/64557
11433 * dse.c (record_store): Call get_addr for mem_addr.
11434 (check_mem_read_rtx): Likewise.
11435
eb1e3e62 114362015-01-22 Eric Botcazou <ebotcazou@adacore.com>
11437
11438 * fold-const.c (const_binop): Add early return for non-tcc_binary.
11439
114402015-01-22 Chen Gang <gang.chen.5i5j@gmail.com>
f2c5b126 11441
e351f8ce 11442 * toplev.c (init_local_tick): Process the failure when read
11443 fails for random_seed.
11444
f2c5b126 11445 * ubsan.c (ubsan_type_descriptor): Use 'pretty_print' for
11446 'pretty_name' to avoid memory overflow.
11447
dfad1cc1 114482015-01-22 Richard Biener <rguenther@suse.de>
11449
11450 PR middle-end/64728
11451 * tree-ssa-coalesce.c (coalesce_partitions): Do not perform
11452 abnormal coalescing on undefined SSA names.
11453
43483afb 114542015-22-01 Uros Bizjak <ubizjak@gmail.com>
11455
11456 PR target/64688
11457 PR target/64477
11458 * config/i386/sse.md (vec_set<mode>_0): Use (Yi/r/C) constraints
11459 for alternative 3.
5d896697 11460 (*vec_dup<mode>): Use (Yi/$r) constraints for alternative 1.
43483afb 11461
4413b64c 114622015-01-22 Trevor Saunders <tsaunders@mozilla.com>
11463
11464 PR middle-end/63325
11465 * fold-const.c (fold_checksum_tree): Don't include value of
11466 expr->decl_with_vis.symtab_node in the checksum.
11467
c90d3047 114682015-01-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11469
ae7127b8 11470 * config/s390/s390.md (atomic code attribute): Fix typo "ior" -> "or".
c90d3047 11471
5a01908f 114722015-01-22 Max Ostapenko <m.ostapenko@partner.samsung.com>
11473
11474 PR driver/64690
11475 * gcc.c (insert_comments): New function.
11476 (try_generate_repro): Call it.
11477 (append_text): Removed.
11478
30bd9534 114792015-01-22 Richard Biener <rguenther@suse.de>
11480
11481 * ipa-inline.c (can_inline_edge_p): Disable inlining of edges
11482 with IL incompatible options. Properly honor user optimize
11483 attributes.
11484
37000a88 114852015-01-21 Segher Boessenkool <segher@kernel.crashing.org>
11486
11487 PR rtl-optimization/64682
11488 * combine.c (distribute_notes): When moving a death note for
11489 a register that is set in the new I2, make sure to put it
11490 before that new I2.
11491
cb7247b1 114922015-01-21 David Edelsohn <dje.gcc@gmail.com>
11493
11494 * config/rs6000/rs6000.c (rs6000_file_start): Use rs6000_isa_flags
11495 not TARGET_DEFAULT.
11496
1f91a12d 114972015-01-21 Jakub Jelinek <jakub@redhat.com>
11498
27f3dbf1 11499 PR debug/64511
11500 * simplify-rtx.c (simplify_relational_operation_1): Don't try to
11501 optimize (eq/ne (and (side_effects) (const_int 0)) (const_int 0))
11502 into (eq/ne (and (not (side_effects)) (const_int 0)) (const_int 0)).
11503
79401df8 11504 PR sanitizer/64706
11505 * doc/invoke.texi (-fsanitize=vptr): Document.
11506
1f91a12d 11507 PR rtl-optimization/62078
11508 * dse.c: Include cfgcleanup.h.
11509 (rest_of_handle_dse): For -fnon-call-exceptions, if DSE removed
11510 anything call purge_all_dead_edges and cleanup_cfg at the end
11511 of the pass.
11512
7b1e7168 115132015-01-21 Jan Hubicka <hubicka@ucw.cz>
11514
11515 * ipa-utils.c (ipa_merge_profiles): Avoid ICE on mismatch in indirect
11516 edges.
11517
1e666245 115182015-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
11519
11520 * gimplify.c (gimplify_function_tree): Check the no_sanitize_thread
11521 decl attribute.
11522
6bc95aa6 115232015-01-21 David Sherwood <david.sherwood@arm.com>
11524 Tejas Belagod <Tejas.Belagod@arm.com>
11525
11526 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Removed.
11527 * config/aarch64/aarch64.c (aarch64_cannot_change_mode_class): Removed.
11528 * config/aarch64/aarch64-protos.h (aarch64_cannot_change_mode_class):
11529 Removed.
11530
a91cc579 115312015-01-21 David Sherwood <david.sherwood@arm.com>
11532 Tejas Belagod <Tejas.Belagod@arm.com>
11533
11534 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist)
11535 (aarch64_reverse_mask): New decls.
11536 * config/aarch64/iterators.md (UNSPEC_REV_REGLIST): New enum.
11537 (insn_count): New mode_attr.
11538 * config/aarch64/aarch64-simd.md (vec_store_lanesoi, vec_store_lanesci)
11539 (vec_store_lanesxi, vec_load_lanesoi, vec_load_lanesci)
11540 (vec_load_lanesxi): Made ABI compliant for Big Endian targets.
11541 (aarch64_rev_reglist, aarch64_simd_ld2, aarch64_simd_ld3)
11542 (aarch64_simd_ld4, aarch64_simd_st2, aarch64_simd_st3)
11543 (aarch64_simd_st4): New patterns.
11544 * config/aarch64/aarch64.c (aarch64_simd_attr_length_rglist)
11545 (aarch64_reverse_mask): New functions.
11546
8bcdf19e 115472015-01-21 Richard Sandiford <richard.sandiford@arm.com>
11548
11549 * config/aarch64/aarch64-protos.h (aarch64_simd_disambiguate_copy):
11550 Declare.
11551 * config/aarch64/aarch64.c (aarch64_classify_address): Allow extra
11552 addressing modes for BE.
11553 (aarch64_print_operand): Add 'R' specifier.
11554 (aarch64_simd_disambiguate_copy): Delete.
11555 (aarch64_simd_emit_reg_reg_move): New function.
11556 * config/aarch64/aarch64-simd.md: Use aarch64_simd_emit_reg_reg_move
11557 in define_splits for structural moves.
11558 (mov<mode>): Use less restrictive predicates.
11559 (*aarch64_mov<mode>): Simplify and only allow for LE.
11560 (*aarch64_be_movoi, *aarch64_be_movci, *aarch64_be_movxi): New.
11561
ef8a7a52 115622015-01-21 Alan Hayward <alan.hayward@arm.com>
11563
bef5f3b7 11564 * rtlanal.c (subreg_get_info): Exit early for simple and common cases.
ef8a7a52 11565
7e6fef85 115662015-01-21 Richard Henderson <rth@redhat.com>
11567
11568 PR target/64669
11569 * ccmp.c (used_in_cond_stmt_p): Remove.
11570 (expand_ccmp_expr): Don't use it.
11571
315b808d 115722015-01-21 Nick Clifton <nickc@redhat.com>
11573
11574 * config/rl78/rl78.c (rl78_calculate_death_notes): Look inside
11575 PARALLELs.
11576
cffdfb3d 115772015-01-21 Richard Biener <rguenther@suse.de>
11578
11579 PR middle-end/64313
11580 * tree-core.h (builtin_info, builtin_info_type): Turn from
11581 an object with two arrays into an array of an object with
11582 decl and two flags, implicit_p and declared_p.
11583 * tree.h (builtin_decl_explicit, builtin_decl_implicit,
11584 set_builtin_decl, set_builtin_decl_implicit_p,
11585 builtin_decl_explicit_p, builtin_decl_implicit_p): Adjust.
11586 (set_builtin_decl_declared_p, builtin_decl_declared_p): New functions.
11587 * builtins.c (builtin_info): Adjust.
11588 * gimplify.c (gimplify_addr_expr): References to builtins
11589 that have been declared by the user makes them eligible for
11590 use by the compiler. Call set_builtin_decl_implicit_p on them.
11591
9ba76f64 115922015-01-20 Jeff Law <law@redhat.com>
11593
11594 PR target/59946
11595 * config/m68k/m68k.md (Comparison expanders and patterns): Do not
11596 allow pc-relative addresses in operand predicates or constraints.
11597
71b315ee 115982015-01-21 Bin Cheng <bin.cheng@arm.com>
11599
11600 * config/arm/arm.c (arm_cortex_a53_tune, arm_cortex_a57_tune): Prefer
11601 neon on aarch32 processors for stringops.
11602
69d99fc4 116032015-01-19 Jan Hubicka <hubicka@ucw.cz>
11604
11605 PR ipa/63576
11606 * ipa-utils.c (ipa_merge_profiles): Merge speculative edges.
11607
a6d60179 116082015-01-19 Jan Hubicka <hubicka@ucw.cz>
11609
11610 PR lto/45375
11611 * ipa-inline.c: Include lto-streamer.h
11612 (report_inline_failed_reason): Output source file differences and
11613 flags on optimization/target node mismatch.
11614 (can_inline_edge_p): Consider caller to be the outer inline function;
11615 be less restrictive about matching opimize and optimize_size attributes.
11616 (inline_account_function_p): Break out from ...
11617 (inline_small_functions): ... here.
11618 * ipa-inline-transform.c (clone_inlined_nodes): Use
11619 inline_account_function_p.
11620 (inline_call): Use optimize attribution; use inline_account_function_p.
11621 (inline_transform): Use opt_for_fn.
11622 * ipa-inline.h (inline_account_function_p): Declare.
11623
01ec5786 116242015-01-20 Jakub Jelinek <jakub@redhat.com>
11625
11626 PR debug/64663
11627 * dwarf2out.c (decl_piece_node): Don't put bitsize into
11628 mode if bitsize <= 0.
11629 (decl_piece_bitsize, adjust_piece_list, add_var_loc_to_decl,
11630 dw_sra_loc_expr): Use HOST_WIDE_INT instead of int for bit
11631 sizes and positions.
11632
c46389f0 116332015-01-20 Chung-Lin Tang <cltang@codesourcery.com>
11634
11635 * config/nios2/nios2.c (nios2_asm_file_end): Implement
11636 TARGET_ASM_FILE_END hook for adding .note.GNU-stack section when
11637 needed.
11638 (TARGET_ASM_FILE_END): Define.
11639
84916591 116402015-01-20 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
11641
11642 * config/arm/arm-protos.h (enum arm_sched_autopref): New constants.
11643 (struct tune_params): Use the enum.
11644 * arm.c (arm_*_tune): Update.
11645 (arm_option_override): Update.
11646
d205f219 116472015-01-20 Richard Biener <rguenther@suse.de>
11648
11649 PR ipa/64684
11650 * ipa-reference.c (add_static_var): Inline ...
11651 (analyze_function): ... here after splitting out from ...
11652 (is_proper_for_analysis): ... this.
11653
8abeb180 116542015-01-20 Matthew Wahab <matthew.wahab@arm.com>
11655
11656 PR target/64149
11657 * config/arm/arm.opt: Remove lra option and arm_lra_flag variablesle.
11658 * config/arm/arm.h (MODE_BASE_REG_CLASS): Remove use of arm_lra_flagag,
11659 replace the conditional with it's true branch.
11660 * config/arm/arm.config (TARGET_LRA_P): Set to hook_bool_void_true.
11661 (arm_lra_p): Remove.
11662
4de6c58f 116632015-01-20 Eric Botcazou <ebotcazou@adacore.com>
11664
11665 * config/visium/visium.h (LIB_SPEC): Adjust in default case.
11666
703d60ea 116672015-01-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
11668
bef5f3b7 11669 * config/tilegx/mul-tables.c: Move symtab.h include after
11670 coretypes.h include.
11671 * config/tilepro/mul-tables.c: Add includes hashtab.h, hash-set.h,
11672 vec.h, machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h,
11673 flags.h, statistics.h, double-int.h, real.h, fixed-value.h, alias.h,
11674 wide-int.h, inchash.h, tree.h, insn-config.h, expmed.h, dojump.h,
11675 explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
703d60ea 11676
c102b5b9 116772015-01-20 Igor Zamyatin <igor.zamyatin@intel.com>
11678
11679 PR bootstrap/64676
11680 Revert:
11681 2015-01-19 Igor Zamyatin <igor.zamyatin@intel.com>
11682
11683 PR rtl-optimization/64081
11684 * loop-iv.c (def_pred_latch_p): New function.
11685 (latch_dominating_def): Allow specific cases with non-single
11686 definitions.
11687 (iv_get_reaching_def): Likewise.
11688 (check_complex_exit_p): New function.
11689 (check_simple_exit): Use check_complex_exit_p to allow certain cases
11690 with exits not executing on any iteration.
11691
fa125df2 116922015-01-19 Jan Hubicka <hubicka@ucw.cz>
11693
11694 PR lto/45375
11695 * i386.c (ix86_option_override_internal): Use ix86_tune_cost
11696 to set branch cost.
11697
f00377d6 116982015-01-19 Jan Hubicka <hubicka@ucw.cz>
11699
11700 PR lto/45375
11701 * i386.c (gate): Check flag_expensive_optimizations and
11702 optimize_size.
11703 (ix86_option_override_internal): Drop optimize_size condition
11704 on MASK_ACCUMULATE_OUTGOING_ARGS, MASK_VZEROUPPER,
11705 MASK_AVX256_SPLIT_UNALIGNED_LOAD, MASK_AVX256_SPLIT_UNALIGNED_STORE,
11706 MASK_PREFER_AVX128.
11707 (ix86_avx256_split_vector_move_misalign,
11708 ix86_avx256_split_vector_move_misalign): Check optimize_insn_for_speed.
11709 * sse.md (all uses of TARGET_PREFER_AVX128): Add
11710 optimize_insn_for_speed_p check.
11711
b33cff21 117122015-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
11713
11714 * config/mips/mips.h (FP_ASM_SPEC): New define.
11715 (ASM_SPEC): Remove floating-point options and use FP_ASM_SPEC
11716 instead.
11717
4a03e703 117182015-01-19 Oleg Endo <olegendo@gcc.gnu.org>
11719
11720 PR target/53988
11721 * config/sh/sh-protos.h (sh_find_set_of_reg): Make sure not to return
11722 nullptr for insn when reaching the first insn.
11723 * config/sh/sh.c (sh_unspec_insn_p): Rewrite using subrtx_iterator.
11724 (sh_insn_operands_modified_between_p): Add nullptr check.
11725 (sh_find_extending_set_of_reg): Fix log message. Don't accept
11726 sign extending mem load if the insn contains any UNSPEC or
11727 UNSPEC_VOLATILE.
11728
55636075 117292015-01-19 Jan Hubicka <hubicka@ucw.cz>
11730
11731 * params.def (inline-unit-growth): Drop to 15%.
11732 * invoke.texi (inline-unit-growth): Document change.
11733
6bf7b9a1 117342015-01-19 Martin Liska <mliska@suse.cz>
11735
11736 PR ipa/64668
11737 * ipa-icf-gimple.c (func_checker::compare_operand): Call proper
11738 function for second argument of OBJ_TYPE_REF.
11739
ae1b96a8 117402015-01-19 Jan Hubicka <hubicka@ucw.cz>
11741
11742 PR ipa/64218
11743 * ipa-inline.c (want_inline_function_to_all_callers_p): Fix check
11744 whether function is an alias.
11745
e7d46f62 117462015-01-19 Jan Hubicka <hubicka@ucw.cz>
11747
11748 * ipa-devirt.c (ipa_devirt): Drop polymorphic call info in hopeless
11749 cases.
11750
dcf57248 117512015-01-19 Vladimir Makarov <vmakarov@redhat.com>
11752
11753 PR rtl-optimization/64671
11754 * lra-remat.c (operand_to_remat): Don't consider jump and call
11755 insns.
11756
5379d8d4 117572015-01-19 David Edelsohn <dje.gcc@gmail.com>
11758
1cd12d8a 11759 PR target/59828
5379d8d4 11760 * config/rs6000/default64.h: Include rs6000-cpus.def.
11761 (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use ISA 2.7 (POWER8).
11762 (TARGET_DEFAULT) [BIG_ENDIAN]: Use POWER4.
11763 * config/rs6000/driver-rs6000.c (detect_processor_aix): Add POWER7
11764 and POWER8.
11765 * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Always default to
11766 POWER8.
11767 * config/rs6000/rs6000.c (rs6000_file_start): Emit .machine
11768 pseudo-op to specify assembler dialect.
11769
11a161de 117702015-01-19 Martin Liska <mliska@suse.cz>
11771
11772 PR ipa/64664
11773 * ipa-icf.c (sem_item_optimizer::filter_removed_items):
11774 Handle safe potentially removed nodes during filtering.
11775
85fbea97 117762015-01-19 Martin Liska <mliska@suse.cz>
11777
11778 * doc/extend.texi (no_icf): Add new attribute description.
11779 * ipa-icf.c (sem_item_optimizer::merge_classes): Handle cases
11780 where the pass attempts to merge a function with no_icf attribute.
11781
c16b7ed5 117822015-01-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11783
11784 PR target/64532
11785 * doc/md.texi (ARM Options): Document register constraints.
11786
681296cb 117872015-01-19 Jiong Wang <jiong.wang@arm.com>
11788 Andrew Pinski <apinski@cavium.com>
11789
11790 PR target/64304
11791 * config/aarch64/aarch64.md (define_insn "*ashl<mode>3_insn"): Deleted.
11792 (ashl<mode>3): Don't expand if operands[2] is not constant.
11793
de661a1a 117942015-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11795
11796 PR target/64448
11797 * config/aarch64/aarch64-simd.md (aarch64_simd_bsl<mode>_internal):
11798 Match xor-and-xor RTL pattern.
11799
86709046 118002015-01-19 Igor Zamyatin <igor.zamyatin@intel.com>
11801
11802 PR rtl-optimization/64081
11803 * loop-iv.c (def_pred_latch_p): New function.
11804 (latch_dominating_def): Allow specific cases with non-single
11805 definitions.
11806 (iv_get_reaching_def): Likewise.
11807 (check_complex_exit_p): New function.
11808 (check_simple_exit): Use check_complex_exit_p to allow certain cases
11809 with exits not executing on any iteration.
11810
f36e946d 118112015-01-19 Jakub Jelinek <jakub@redhat.com>
11812
11813 * common.opt (fgraphite): Fix a typo.
11814
ef416414 118152015-01-19 Felix Yang <felix.yang@huawei.com>
11816
11817 * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): New
11818 pattern.
11819 * config/aarch64/aarch64-simd-builtins.def (smaxp, sminp, umaxp,
11820 uminp, smax_nanp, smin_nanp): New builtins.
11821 * config/aarch64/arm_neon.h (vpmax_s8, vpmax_s16, vpmax_s32,
11822 vpmax_u8, vpmax_u16, vpmax_u32, vpmaxq_s8, vpmaxq_s16, vpmaxq_s32,
11823 vpmaxq_u8, vpmaxq_u16, vpmaxq_u32, vpmax_f32, vpmaxq_f32, vpmaxq_f64,
11824 vpmaxqd_f64, vpmaxs_f32, vpmaxnm_f32, vpmaxnmq_f32, vpmaxnmq_f64,
11825 vpmaxnmqd_f64, vpmaxnms_f32, vpmin_s8, vpmin_s16, vpmin_s32, vpmin_u8,
11826 vpmin_u16, vpmin_u32, vpminq_s8, vpminq_s16, vpminq_s32, vpminq_u8,
11827 vpminq_u16, vpminq_u32, vpmin_f32, vpminq_f32, vpminq_f64, vpminqd_f64,
11828 vpmins_f32, vpminnm_f32, vpminnmq_f32, vpminnmq_f64, vpminnmqd_f64,
11829 vpminnms_f32): Rewrite using builtin functions.
11830
dc19c8fd 118312015-01-19 Thomas Schwinge <thomas@codesourcery.com>
11832
dfa9bd43 11833 PR libgomp/64625
dc19c8fd 11834 * omp-low.c (offload_symbol_decl): Remove variable.
11835 (get_offload_symbol_decl): Remove function.
11836 (expand_omp_target): For BUILT_IN_GOMP_TARGET,
11837 BUILT_IN_GOMP_TARGET_DATA, BUILT_IN_GOMP_TARGET_UPDATE pass NULL
11838 instead of &__OFFLOAD_TABLE__, for BUILT_IN_GOACC_DATA_START,
11839 BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL,
11840 BUILT_IN_GOACC_UPDATE don't pass it at all.
11841
c5dc4e92 118422015-01-19 Ilya Enkovich <ilya.enkovich@intel.com>
11843
11844 * tree-sra.c (some_callers_have_mismatched_arguments_p): Allow thunk
11845 callers.
11846
312322ab 118472015-01-19 Ilya Enkovich <ilya.enkovich@intel.com>
11848
11849 * ipa-chkp.c (chkp_produce_thunks): Add early param
11850 to split thunks production into two passes. Keep
11851 'always_inline' function bodies after the first pass.
11852 (pass_data_ipa_chkp_early_produce_thunks): New.
11853 (pass_ipa_chkp_early_produce_thunks): New.
11854 (pass_ipa_chkp_produce_thunks::execute): Adjust to new
11855 chkp_produce_thunks signature.
11856 (make_pass_ipa_chkp_early_produce_thunks): New.
11857 * passes.def (pass_ipa_chkp_early_produce_thunks): New.
11858 (pass_ipa_chkp_produce_thunks): Move after local optimizations.
11859 * tree-pass.h (make_pass_ipa_chkp_early_produce_thunks): New.
11860
f070b34d 118612015-01-18 Jan Hubicka <hubicka@ucw.cz>
11862
11863 * cgraph.c (cgraph_node::dump): Dump profile flags.
11864
9d67ffb2 118652015-01-18 Oleg Endo <olegendo@gcc.gnu.org>
11866
11867 PR target/64652
11868 * config/sh/sh.md (udivsi3_i4, divsi3_i4): Make use of sfunc address
11869 reg appear first in the parallel.
11870
bfedbed1 118712015-01-18 Jan Hubicka <hubicka@ucw.cz>
11872
11873 * ipa-reference.c (set_reference_optimization_summary,
f070b34d 11874 ipa_reference_get_not_written_global): Do nothing if ipa-reference is
11875 disabled.
bfedbed1 11876 (ignore_module_statics): New static var.
f070b34d 11877 (propagate_bits): If ipa-reference is disabled, do not look into local
11878 properties.
bfedbed1 11879 (analyze_function): Disable analysis when ipa_reference is disabled.
11880 (generate_summary): Do not dump when reference is disabled;
11881 collect vars accessed from functions with ipa-reference disabled.
11882 (get_read_write_all_from_node): When ipa-reference is disabled, use the
11883 node flags.
11884 (gate): Enable for LTO.
11885 (ignore_edge_p): New function.
11886 (propagate): Skip functions w/o ipa-reference analysis.
11887 * optc-save-gen.awk: Handle optimize_debug correctly.
11888 * opth-gen.awk: Likewise.
11889 * common.opt (fauto-inc-dec, fdelete-dead-exceptions, ffunction-cse,
11890 fgraphite, fstrict-volatile-bitfields, fira-algorithm, fira-region,
11891 fira-share-save-slots, fira-share-spill-slots,
11892 fmodulo-sched-allow-regmoves, fpartial-inlining,
11893 sched-stalled-insns, fsched-stalled-insns-dep, fstrict-overflow,
11894 ftracer, ftree-parallelize-loops, fassociative-math,
11895 freciprocal-math, fvect-cost-model, fsimd-cost-model): Mark as
11896 Optimization
11897 (fauto-profile, fcommon, fdata-sections, fipa-icf-variables,
bef5f3b7 11898 ftoplevel-reorder, funit-at-a-time, fwhole-program): Do not mark as
11899 Optimization.
bfedbed1 11900 * ipa-icf.c (gate, sem_item_optimizer::filter_removed_items):
11901 Fix for IPA.
11902
2c9d5cb8 119032015-01-18 Jan Hubicka <hubicka@ucw.cz>
11904
11905 PR ipa/64378
11906 * ipa-prop.c (try_make_edge_direct_virtual_call): Clear speculative
11907 flag correctly.
11908 * ipa-cp.c (ipa_get_indirect_edge_target_1): Handle speculation.
11909
d40a7894 119102015-01-18 Sandra Loosemore <sandra@codesourcery.com>
11911
11912 * doc/invoke.texi ([-funroll-loops], [-funroll-all-loops]):
11913 Remove duplicate option listings.
11914
7f3c7cea 119152015-01-18 Felix Yang <felix.yang@huawei.com>
11916
11917 * auto-profile.c (afdo_find_equiv_class): Remove unnecessary test.
11918 (autofdo_source_profile::get_callsite_total_count,
11919 function_instance::get_function_instance_by_decl,
11920 string_table::get_index, string_table::get_index_by_decl,
11921 afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
11922 Fix comment typos. Reformatting and minor code rearrangement.
11923
406d6b7a 119242015-01-17 Segher Boessenkool <segher@kernel.crashing.org>
11925
11926 * config/rs6000/rs6000.md (probe_stack): Delete.
11927 (probe_stack_address): New.
11928
7dee532e 119292015-01-17 Segher Boessenkool <segher@kernel.crashing.org>
11930
11931 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Use TARGET_32BIT
11932 to test for 32-bit ABIs, not !TARGET_POWERPC64.
11933
ee645a3b 119342015-01-17 Segher Boessenkool <segher@kernel.crashing.org>
11935
11936 * config/rs6000/rs6000.c (rs6000_parallel_return): New function.
11937 (rs6000_function_value): Use it. Handle SCmode and TCmode as well,
11938 for TARGET_32BIT && TARGET_POWERPC64. Fix another BITS_PER_WORD
11939 snafu.
11940 (rs6000_libcall_value): Use the new function.
11941
e4ee8a48 119422015-01-17 Sandra Loosemore <sandra@codesourcery.com>
11943
11944 * doc/invoke.texi ([-ftracer]): Remove duplicate option listing.
11945
8f8029b2 119462015-01-17 Eric Botcazou <ebotcazou@adacore.com>
11947
11948 * reorg.c (fill_simple_delay_slots): If TARGET_FLAGS_REGNUM is valid,
11949 implement a more precise life analysis for it during backward scan.
11950
e9f39926 119512015-01-17 Jan Kratochvil <jan.kratochvil@redhat.com>
11952
11953 * dwarf2out.c (gen_producer_string): Ignore also OPT_fpreprocessed.
11954
8700bf9e 119552015-01-17 Bernd Schmidt <bernds@codesourcery.com>
11956
11957 PR rtl-optimization/52773
11958 * calls.c (emit_library_call_value): When pushing arguments use
11959 stack_pointer_rtx rather than virtual_outgoing_args_rtx in
11960 CALL_INSN_FUNCTION_USAGE. Only emit one of use of the magic
11961 stack pointer reference into CALL_INSN_FUNCTION_USAGE.
11962
9cc65060 119632015-01-17 Jeff Law <law@redhat.com>
11964
11965 PR rtl-optimization/32790
11966 * reginfo.c (reg_scan_mark_refs): Look for ZERO_EXTRACT,
11967 not ZERO_EXTEND in SET_DESTs.
11968
c63e3c45 119692015-01-17 Alan Modra <amodra@gmail.com>
11970
11971 * cprop.c (do_local_cprop): Revert last change.
11972
0c5d0bfa 119732015-01-16 DJ Delorie <dj@redhat.com>
11974 Nick Clifton <nickc@redhat.com>
11975
11976 * config/rl78/rl78-real.md (addqi3_real): Allow volatiles.
11977 (addhi3_real): Likewise. Fix [HL+0] syntax.
11978 (subqi3_real): Likewise.
11979 (subhi3_real): Likewise.
11980 (cbranchqi4_real): Likewise. Allow saddr,#imm.
11981 (cbranchhi4_real): Likewise.
11982 (cbranchhi4_real_inverted): Likewise.
11983 (cbranchsi4_real_lt): Likewise.
11984 (cbranchsi4_real_ge): Likewise.
11985 (cbranchsi4_real_ge): Likewise.
11986 * config/rl78/rl78-virt.md (add<mode>3_virt): Likewise.
11987 (sub<mode>3_virt): Likewise.
11988 (cbranchqi4_virt): Likewise.
11989 (cbranchhi4_virt): Likewise.
11990 * config/rl78/rl78.c (rl78_print_operand_1): 'p' modifier means
11991 always use '[reg+imm]' even when imm is zero.
11992 * config/rl78/predicates.md (rl78_volatile_memory_operand): New.
11993 (rl78_general_operand): New.
11994 (rl78_nonimmediate_operand): New.
11995 (rl78_nonfar_operand): Use them.
11996 (rl78_nonfar_nonimm_operand): Likewise.
11997 (rl78_stack_based_mem): Fix.
11998 * config/rl78/constraints.md (Ibqi): New.
11999 (IBqi): New.
12000 (Wsa): New.
12001 (Wsf): New.
12002 (Cs1): Fix.
12003 * config/rl78/rl78-expand.md (andqi3): Accept volatiles.
12004 (iorqi3): Likewise.
12005 (xorqi3): Likewise.
12006 * config/rl78/rl78-protos.h (rl78_sfr_p): New.
12007
bef5f3b7 12008 * config/rl78/constrains (Qs8): New constraint.
12009 * config/rl78/rl78.c (rl78_flags_already_set): New function.
12010 * config/rl78/rl78-protos.h (rl78_flags_already_set): New prototype.
12011 * config/rl78/rl78-real.md (update_Z): New attribute.
12012 Update patterns to set it.
12013 (cbranchqi4_real): Call rl78_flags_already_set() to determine if a
12014 shorter compare and branch sequence can be used.
12015 (cbranchhi4_real): Likewise.
12016 (cbranchhi4_real_inverted): Likewise.
0c5d0bfa 12017
12018 * config/rl78/predicates.md (uword_operand): Allow symbol_refs.
12019 * config/rl78/rl78-c.c (rl78_register_pragmas): Register __near
12020 address space.
12021 * config/rl78/rl78.c (rl78_get_name_encoding): New.
12022 (rl78_option_override): Allow -mes0 only if C.
12023 (characterize_address): Support subregs of symbol_refs.
12024 (rl78_addr_space_address_mode): Move. Add __near.
12025 (rl78_far_p): Likewise.
12026 (rl78_addr_space_pointer_mode): Likewise.
12027 (rl78_as_legitimate_address): Likewise.
12028 (rl78_addr_space_subset_p): Likewise.
12029 (rl78_addr_space_convert): Likewise.
12030 (rl78_print_operand_1): Support 16-bit addressing of 32-bit
12031 symbols with -mes0.
12032 (transcode_memory_rtx): Don't copy ES if -mes0. Allow symbol[BC]
12033 addressing.
12034 (rl78_alloc_physical_registers_op1): Change logic to prefer
12035 symbol[BC] addressing.
12036 (frodata_section): New.
12037 (rl78_asm_init_sections): Initialize it.
12038 (rl78_select_section): Put __far readonly symbols in .frodata.
12039 (rl78_make_type_far): New.
bef5f3b7 12040 (rl78_insert_attributes): Force all readonly symbols to be
12041 __far when -mes0.
0c5d0bfa 12042 (rl78_asm_out_integer): New.
12043 * config/rl78/rl78.h (ADDR_SPACE_NEAR): New.
12044 * config/rl78/rl78.opt (-mes0): New.
12045
12046 * config/rl78/rl78.h (ASM_OUTPUT_LABELREF): New.
12047 (ASM_OUTPUT_ALIGNED_DECL_COMMON): New.
12048 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
12049 * config/rl78/rl78-protos.h (rl78_output_labelref): New.
12050 (rl78_saddr_p): New.
12051 (rl78_output_aligned_common): New.
12052 * config/rl78/rl78.c (rl78_output_symbol_ref): Strip encodings.
12053 (rl78_handle_saddr_attribute): New.
12054 (rl78_handle_naked_attribute): New.
12055 (rl78_attribute_table): Add saddr.
12056 (rl78_print_operand_1): Don't print '!' on saddr operands.
12057 (rl78_print_operand_1): Strip encodings.
12058 (rl78_sfr_p): New.
12059 (rl78_strip_name_encoding): New.
12060 (rl78_attrlist_to_encoding): New.
12061 (rl78_encode_section_info): New.
12062 (rl78_asm_init_sections): New.
12063 (rl78_select_section): New.
12064 (rl78_output_labelref): New.
12065 (rl78_output_aligned_common): New.
12066 (rl78_asm_out_integer): New.
12067 (rl78_asm_ctor_dtor): New.
12068 (rl78_asm_constructor): New.
12069 (rl78_asm_destructor): New.
12070
12071 * config/rl78/rl78-real.md (movqi_es): Rename to movqi_to_es.
12072 * config/rl78/rl78.c (rl78_expand_epilogue): Update.
12073 (transcode_memory_rtx): Update.
12074 (rl78_expand_epilogue): Use A_REG instead of 0.
12075
34aaed43 120762015-01-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
12077
12078 * config/arm/arm-protos.h (struct tune_params): New field
12079 sched_autopref_queue_depth.
12080 * config/arm/arm.c (sched-int.h): Include header.
12081 (arm_first_cycle_multipass_dfa_lookahead_guard,)
12082 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define hook.
12083 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,)
12084 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,)
12085 (arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,)
12086 (arm_cortex_a53_tune, arm_cortex_a57_tune, arm_xgene1_tune,)
12087 (arm_cortex_a5_tune, arm_cortex_a9_tune, arm_cortex_a12_tune,)
12088 (arm_v7m_tune, arm_cortex_m7_tune, arm_v6m_tune, arm_fa726te_tune):
12089 Specify sched_autopref_queue_depth value. Enabled for A15 and A57.
12090 * config/arm/t-arm (arm.o): Update.
12091 * haifa-sched.c (update_insn_after_change): Update.
12092 (rank_for_schedule): Use auto-prefetcher model, if requested.
12093 (autopref_multipass_init): New static function.
12094 (autopref_rank_for_schedule): New rank_for_schedule heuristic.
12095 (autopref_multipass_dfa_lookahead_guard_started_dump_p): New static
12096 variable for debug dumps.
12097 (autopref_multipass_dfa_lookahead_guard_1): New static helper function.
12098 (autopref_multipass_dfa_lookahead_guard): New global function that
12099 implements TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD hook.
12100 (init_h_i_d): Update.
12101 * params.def (PARAM_SCHED_AUTOPREF_QUEUE_DEPTH): New tuning knob.
12102 * sched-int.h (enum autopref_multipass_data_status): New const enum.
12103 (autopref_multipass_data_): Structure for auto-prefetcher data.
12104 (autopref_multipass_data_def, autopref_multipass_data_t): New typedefs.
12105 (struct _haifa_insn_data:autopref_multipass_data): New field.
12106 (INSN_AUTOPREF_MULTIPASS_DATA): New access macro.
12107 (autopref_multipass_dfa_lookahead_guard): Declare.
12108
b61d7819 121092015-01-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
12110
12111 * rtlanal.c (get_base_term): Handle SCRATCH.
12112
65d538fd 121132015-01-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
12114
12115 * config/aarch64/aarch64.c
12116 (aarch64_sched_first_cycle_multipass_dfa_lookahead): Implement hook.
12117 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
12118 * config/arm/arm.c
12119 (arm_first_cycle_multipass_dfa_lookahead): Implement hook.
12120 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
12121
1c00a6ae 121222015-01-17 Alan Modra <amodra@gmail.com>
12123
12124 * cprop.c (do_local_cprop): Disallow replacement of fixed
12125 hard registers.
12126
edc35e20 121272015-01-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12128
12129 PR target/62066
12130 * config/arm/arm-builtins.c (arm_expand_neon_args): Call va_end before
12131 early return 0.
12132
24fe68b6 121332015-01-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
12134
bebfcb12 12135 * sanitizer.def (BUILT_IN_TSAN_VPTR_UPDATE): Fixed parameters.
24fe68b6 12136 * tsan.c (instrument_expr): Fixed parameters of __tsan_vptr_update.
12137
6988da2f 121382015-01-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12139
12140 * config/arm/arm.md: Move comment about splitting Thumb1 patterns to...
12141 * config/arm/thumb1.md: ... Here.
12142
ee5701b7 121432015-01-16 Segher Boessenkool <segher@kernel.crashing.org>
12144
12145 * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Disallow
12146 TImode for TARGET_32BIT.
12147
82c9887b 121482015-01-16 Segher Boessenkool <segher@kernel.crashing.org>
12149
12150 * config/rs6000/rs6000.c (TARGET_LIBGCC_CMP_RETURN_MODE,
12151 TARGET_LIBGCC_SHIFT_COUNT_MODE, TARGET_UNWIND_WORD_MODE): Implement
12152 as ...
12153 (rs6000_abi_word_mode): New function.
12154
0d656be0 121552015-01-16 Segher Boessenkool <segher@kernel.crashing.org>
12156
12157 * config/rs6000/rs6000.c (rs6000_va_start): Use MIN_UNITS_PER_WORD
12158 instead of UNITS_PER_WORD to describe the size of stack slots.
12159
e5174016 121602015-01-16 Segher Boessenkool <segher@kernel.crashing.org>
12161
12162 * config/rs6000/rs6000.c (TARGET_PROMOTE_FUNCTION_MODE): Implement
12163 as rs6000_promote_function_mode. Move comment to there.
12164 (rs6000_promote_function_mode): New function.
12165
2f4fe32e 121662015-01-16 Segher Boessenkool <segher@kernel.crashing.org>
12167
12168 * config/rs6000/rs6000.h (PROMOTE_MODE): Correct test for when -m32
12169 -mpowerpc64 is active.
12170
74ab45d6 121712015-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
12172
12173 PR middle-end/64353
12174 * tree-cfg.c (pass_data_fixup_cfg): Update SSA for
12175 virtuals on start.
12176
553d8de1 121772015-01-16 James Greenhalgh <james.greenhalgh@arm.com>
12178
12179 * config/arm/cortex-a57.md: Remove duplicate of file accidentally
12180 introduced in revision 219724.
12181
81b5bfe7 121822015-01-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
bef5f3b7 12183 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
81b5bfe7 12184
12185 PR target/64263
12186 * config/aarch64/aarch64.md (*movsi_aarch64): Don't split if the
12187 destination is not a GP reg.
12188 (*movdi_aarch64): Likewise.
12189
cbc34774 121902015-01-16 David Edelsohn <dje.gcc@gmail.com>
12191
12192 PR target/64623
12193 * config/rs6000/default64.h: Revert ISA change.
12194
cac06b02 121952015-01-16 Richard Biener <rguenther@suse.de>
12196
12197 PR middle-end/64614
12198 * tree-ssa-uninit.c: Include tree-cfg.h.
12199 (MAX_SWITCH_CASES): New define.
12200 (convert_control_dep_chain_into_preds): Handle switch statements.
12201 (is_pred_expr_subset_of): Handle x == CST vs. (x & CST) != 0.
12202 (normalize_one_pred_1): Do not split bit-manipulations.
12203 Record (x & CST).
12204
b6d76e68 122052015-01-16 Richard Biener <rguenther@suse.de>
12206
12207 PR tree-optimization/64568
12208 * tree-ssa-forwprop.c (pass_forwprop::execute): Guard
12209 complex load rewriting for TARGET_MEM_REFs.
12210
15b4214c 122112015-01-16 Uros Bizjak <ubizjak@gmail.com>
12212
12213 * builtins.c (expand_builtin_acc_on_device): Check target for NULL.
12214
757bc674 122152015-01-16 Matthew Wahab <matthew.wahab@arm.com>
12216
12217 PR target/64149
12218 * config/aarch64/aarch64.opt: Remove lra option and aarch64_lra_flag
12219 variable.
12220 * config/aarch64/aarch64.c (TARGET_LRA_P): Set to hook_bool_void_true.
12221 (aarch64_lra_p): Remove.
12222
66124ce7 122232015-01-16 Ilya Enkovich <ilya.enkovich@intel.com>
12224
12225 PR target/64363
12226 * ipa-chkp.h (chkp_instrumentable_p): New.
12227 * ipa-chkp.c: Include tree-inline.h.
12228 (chkp_instrumentable_p): New.
12229 (chkp_maybe_create_clone): Use chkp_instrumentable_p.
12230 Fix processing of not instrumentable functions.
12231 (chkp_versioning): Use chkp_instrumentable_p. Warn about
12232 not instrumentable functions.
12233 * tree-chkp.c (chkp_add_bounds_to_call_stmt): Use
12234 chkp_instrumentable_p.
12235 * tree-inline.h (copy_forbidden): New.
12236 * tree-inline.c (copy_forbidden): Not static anymore.
12237
304eacdf 122382015-01-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12239
12240 * optc-save-gen.awk (cl_target_option_print_diff): Mark indent,
12241 ptr1, ptr2 unused.
12242
90f51e67 122432015-01-16 Robert Suchanek <robert.suchanek@imgtec.com>
12244
12245 * lra-constraints.c (curr_insn_transform): Change a reload pseudo of
12246 type OP_OUT to OP_INOUT.
12247
e0226bda 122482015-01-16 Robert Suchanek <robert.suchanek@imgtec.com>
12249
12250 * simplify-rtx.c (simplify_replace_fn_rtx): Simplify (lo_sum
12251 (high x) y) to y if x and y have the same base.
12252
e5393284 122532015-01-16 James Greenhalgh <james.greenhalgh@arm.com>
12254
12255 * config/arm/cortex-a57.md: New.
12256 * config/aarch64/aarch64.md: Include it.
12257 * config/aarch64/aarch64-cores.def (cortex-a57): Tune for it.
12258 * config/aarch64/aarch64-tune.md: Regenerate.
12259
636fb80b 122602015-01-16 Zhenqiang Chen <zhenqiang.chen@arm.com>
12261
12262 PR target/64015
12263 * ccmp.c (expand_ccmp_next): New function.
12264 (expand_ccmp_expr_1, expand_ccmp_expr): Handle operand insn sequence
12265 and compare insn sequence.
12266 * config/aarch64/aarch64.c (aarch64_code_to_ccmode,
12267 aarch64_gen_ccmp_first, aarch64_gen_ccmp_next): New functions.
12268 (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): New MICRO.
12269 * config/aarch64/aarch64.md (*ccmp_and): Changed to ccmp_and<mode>.
12270 (*ccmp_ior): Changed to ccmp_ior<mode>.
12271 (cmp<mode>): New pattern.
12272 * doc/tm.texi (TARGET_GEN_CCMP_FIRST, TARGET_GEN_CCMP_NEXT): Update
12273 parameters.
12274 * target.def (gen_ccmp_first, gen_ccmp_next): Update parameters.
12275
89862b24 122762015-01-16 Ilya Tocar <ilya.tocar@intel.com>
12277
12278 * config/i386/avx2intrin.h (_mm256_bslli_epi128,
12279 _mm256_bsrli_epi128): New.
12280 * config/i386/emmintrin.h (_mm_bsrli_si128, _mm_bslli_si128): Ditto.
12281
11581eb7 122822015-01-15 Jiong Wang <jiong.wang@arm.com>
12283
12284 * expmed.c (store_bit_field_using_insv): Improve warning message.
12285 Use %wu instead of HOST_WIDE_INT_PRINT_UNSIGNED.
12286
d2d18163 122872015-01-15 Jiong Wang <jiong.wang@arm.com>
12288
12289 PR rtl-optimization/64011
12290 * expmed.c (store_bit_field_using_insv): Warn and truncate bitsize when
12291 there is partial overflow.
12292
7ea565c0 122932015-01-16 Chung-Ju Wu <jasonwucj@gmail.com>
12294
12295 * config/nds32/nds32-protos.h (nds32_expand_epilogue): Change
12296 prototype.
12297 (nds32_expand_epilogue_v3pop): Likewise.
12298 * config/nds32/nds32.md (sibcall): Define this for sibling call
12299 optimization.
12300 (sibcall_register): Likewise.
12301 (sibcall_immediate): Likewise.
12302 (sibcall_value): Likewise.
12303 (sibcall_value_register): Likewise.
12304 (sibcall_value_immediate): Likewise.
12305 (sibcall_epilogue): Likewise.
12306 (epilogue): Pass false to indicate this is not a sibcall epilogue.
12307 * config/nds32/nds32.c (nds32_expand_epilogue): Consider sibcall case.
12308 (nds32_expand_epilogue_v3pop): Likewise.
12309
c2927786 123102015-01-16 Chung-Ju Wu <jasonwucj@gmail.com>
12311
12312 * config/nds32/nds32-protos.h (nds32_can_use_return_insn): New.
12313 * config/nds32/nds32.md (unspec_volatile_func_return): Remove.
12314 (return_internal): New.
12315 (return): Define this named pattern.
12316 (simple_return): Define this named pattern.
12317 * config/nds32/nds32.c (nds32_expand_epilogue): Emit return_internal
12318 pattern instead of unspec_volatile_func_return.
12319 (nds32_expand_epilogue_v3pop): Likewise.
12320 (nds32_can_use_return_insn): New function.
12321
405249c1 123222015-01-16 Chung-Ju Wu <jasonwucj@gmail.com>
12323
12324 * config/nds32/constants.md (UNSPEC_VOLATILE_POP25_RETURN): New.
12325 * config/nds32/nds32.md (pop25return): New.
12326 * config/nds32/nds32.c (nds32_expand_epilogue_v3pop): Emit
12327 pop25return pattern.
12328
81c424e2 123292015-01-16 Chung-Ju Wu <jasonwucj@gmail.com>
12330
12331 * doc/invoke.texi (NDS32 Options): Remove -mforce-fp-as-gp,
12332 -mforbid-fp-as-gp, and -mex9 options.
12333
78526656 123342015-01-16 Chung-Ju Wu <jasonwucj@gmail.com>
12335
12336 * doc/invoke.texi (NDS32 Options): Add -mcmodel= option and
12337 remove -mgp-direct option.
12338
c3fed600 123392015-01-15 Jan Hubicka <hubicka@ucw.cz>
89e2ddc9 12340
c3fed600 12341 * doc/invoke.texi (--param early-inlining-insns): Update default value.
12342 * params.def (PARAM_EARLY_INLINING_INSNS): Set to 14.
12343
f27875b5 123442015-01-15 Jan Hubicka <hubicka@ucw.cz>
12345
12346 * ipa-inline.c (inline_small_functions): Work around hints
12347 cache issue.
12348
16e50f82 123492015-01-15 Sandra Loosemore <sandra@codesourcery.com>
12350
12351 PR target/59710
12352 * doc/invoke.texi (Option Summary): Document new Nios II
12353 -mgpopt= syntax.
12354 (Nios II Options): Likewise.
12355 * config/nios2/nios2.opt: Add -mgpopt= option support.
12356 Modify existing -mgpopt and -mno-gpopt options to be aliases.
12357 * config/nios2/nios2-opts.h (enum nios2_gpopt_type): New.
12358 * config/nios2/nios2.c (nios2_option_override): Adjust
12359 -mgpopt defaulting.
12360 (nios2_in_small_data_p): Return true for explicit small data
12361 sections even with -G0.
12362 (nios2_symbol_ref_in_small_data_p): Adjust to handle new -mgpopt=
12363 option choices.
12364
6365c927 123652015-01-15 Jan Hubicka <hubicka@ucw.cz>
12366
12367 PR ipa/64612
12368 * ipa-inline-transform.c (can_remove_node_now_p): Fix handling
12369 of comdat locals.
12370 (inline_call): Fix removal of aliases.
12371
32cf7025 123722015-01-15 Jakub Jelinek <jakub@redhat.com>
12373
12374 * flag-types.h (enum sanitize_code): Add SANITIZE_VPTR,
12375 include SANITIZE_VPTR in SANITIZE_UNDEFINED.
12376 * opts.c (common_handle_option): Add -fsanitize=vptr.
12377 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS,
12378 BUILT_IN_UBSAN_HANDLE_DYNAMIC_TYPE_CACHE_MISS_ABORT): New.
12379 * ubsan.h (enum ubsan_null_ckind): Add UBSAN_DOWNCAST_POINTER,
12380 UBSAN_DOWNCAST_REFERENCE, UBSAN_UPCAST and UBSAN_CAST_TO_VBASE.
12381 (ubsan_expand_vptr_ifn): New prototype.
12382 * internal-fn.c (expand_ANNOTATE, expand_GOMP_SIMD_LANE,
12383 expand_GOMP_SIMD_VF, expand_GOMP_SIMD_LAST_LANE, expand_UBSAN_NULL,
12384 expand_UBSAN_BOUNDS, expand_UBSAN_OBJECT_SIZE, expand_ASAN_CHECK,
12385 expand_LOOP_VECTORIZED): Make argument nameless, remove
12386 ATTRIBUTE_UNUSED.
12387 (expand_UBSAN_VPTR): New function.
12388 * internal-fn.def (UBSAN_NULL, ASAN_CHECK): Use R instead of W
12389 in fn spec.
12390 (UBSAN_VPTR): New internal function.
12391 * sanopt.c (tree_map_traits): Renamed to ...
12392 (sanopt_tree_map_traits): ... this.
12393 (sanopt_tree_triplet, sanopt_tree_triplet_map_traits): New classes.
12394 (sanopt_ctx): Adjust asan_check_map type for tree_map_traits
12395 to sanopt_tree_map_traits renaming. Add vptr_check_map field.
12396 (maybe_optimize_ubsan_vptr_ifn): New function.
12397 (sanopt_optimize_walker): Handle IFN_UBSAN_VPTR.
12398 (pass_sanopt::execute): Likewise. Call sanopt_optimize even for
12399 -fsanitize=vptr.
12400 * tree-ssa-alias.c (call_may_clobber_ref_p_1): Handle certain
12401 internal calls like pure functions for aliasing, even when they
12402 have other side-effects that prevent making them ECF_PURE.
12403 * ubsan.c (ubsan_vptr_type_cache_decl): New variable.
12404 (ubsan_expand_vptr_ifn): New function.
12405
ed6272f7 124062015-01-15 Vladimir Makarov <vmakarov@redhat.com>
12407
12408 PR rtl-optimization/64110
12409 * stmt.c (parse_output_constraint): Process '^' and '$'.
12410 (parse_input_constraint): Ditto.
12411 * lra-constraints.c (process_alt_operands): Process the new
12412 constraints.
12413 * ira-costs.c (record_reg_classes): Process the new constraint
12414 '^'.
12415 * genoutput.c (indep_constraints): Add '^' and '$'.
12416 * config/i386/sse.md (*vec_dup<mode>): Use '$' instead of '!'.
12417 * doc/md.texi: Add description of the new constraints.
12418
ca4c3545 124192015-01-15 Thomas Schwinge <thomas@codesourcery.com>
12420 Bernd Schmidt <bernds@codesourcery.com>
12421 Cesar Philippidis <cesar@codesourcery.com>
12422 James Norris <jnorris@codesourcery.com>
12423 Tom de Vries <tom@codesourcery.com>
12424 Ilmir Usmanov <i.usmanov@samsung.com>
12425 Dmitry Bocharnikov <dmitry.b@samsung.com>
12426 Evgeny Gavrin <e.gavrin@samsung.com>
12427 Jakub Jelinek <jakub@redhat.com>
12428
12429 * builtin-types.def (BT_FN_VOID_INT_INT_VAR)
12430 (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
12431 (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
12432 New function types.
12433 * builtins.c: Include "gomp-constants.h".
12434 (expand_builtin_acc_on_device): New function.
12435 (expand_builtin, is_inexpensive_builtin): Handle
12436 BUILT_IN_ACC_ON_DEVICE.
12437 * builtins.def (DEF_GOACC_BUILTIN, DEF_GOACC_BUILTIN_COMPILER):
12438 New macros.
12439 * cgraph.c (cgraph_node::create): Consider flag_openacc next to
12440 flag_openmp.
12441 * config.gcc <nvptx-*> (tm_file): Add nvptx/offload.h.
12442 <*-intelmic-* | *-intelmicemul-*> (tm_file): Add
12443 i386/intelmic-offload.h.
12444 * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): For -fopenacc, link
12445 to libgomp and its dependencies.
12446 * config/arc/arc.h (LINK_COMMAND_SPEC): Likewise.
12447 * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
12448 * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
12449 * config/ia64/hpux.h (LIB_SPEC): Likewise.
12450 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
12451 * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
12452 * doc/generic.texi: Update for OpenACC changes.
12453 * doc/gimple.texi: Likewise.
12454 * doc/invoke.texi: Likewise.
12455 * doc/sourcebuild.texi: Likewise.
12456 * gimple-pretty-print.c (dump_gimple_omp_for): Handle
12457 GF_OMP_FOR_KIND_OACC_LOOP.
12458 (dump_gimple_omp_target): Handle GF_OMP_TARGET_KIND_OACC_KERNELS,
12459 GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_DATA,
12460 GF_OMP_TARGET_KIND_OACC_UPDATE,
12461 GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
12462 Dump more data.
12463 * gimple.c: Update comments for OpenACC changes.
12464 * gimple.def: Likewise.
12465 * gimple.h: Likewise.
12466 (enum gf_mask): Add GF_OMP_FOR_KIND_OACC_LOOP,
12467 GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
12468 GF_OMP_TARGET_KIND_OACC_DATA, GF_OMP_TARGET_KIND_OACC_UPDATE,
12469 GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA.
12470 (gimple_omp_for_cond, gimple_omp_for_set_cond): Sort in the
12471 appropriate place.
12472 (is_gimple_omp_oacc, is_gimple_omp_offloaded): New functions.
12473 * gimplify.c: Include "gomp-constants.h".
12474 Update comments for OpenACC changes.
12475 (is_gimple_stmt): Handle OACC_PARALLEL, OACC_KERNELS, OACC_DATA,
12476 OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE, OACC_ENTER_DATA,
12477 OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
12478 (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): Handle
12479 OMP_CLAUSE__CACHE_, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
12480 OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
12481 OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER,
12482 OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
12483 OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
12484 OMP_CLAUSE_SEQ.
12485 (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Use
12486 GOMP_MAP_* instead of OMP_CLAUSE_MAP_*. Use
12487 OMP_CLAUSE_SET_MAP_KIND.
12488 (gimplify_oacc_cache): New function.
12489 (gimplify_omp_for): Handle OACC_LOOP.
12490 (gimplify_omp_workshare): Handle OACC_KERNELS, OACC_PARALLEL,
12491 OACC_DATA.
12492 (gimplify_omp_target_update): Handle OACC_ENTER_DATA,
12493 OACC_EXIT_DATA, OACC_UPDATE.
12494 (gimplify_expr): Handle OACC_LOOP, OACC_CACHE, OACC_HOST_DATA,
12495 OACC_DECLARE, OACC_KERNELS, OACC_PARALLEL, OACC_DATA,
12496 OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE.
12497 (gimplify_body): Consider flag_openacc next to flag_openmp.
12498 * lto-streamer-out.c: Include "gomp-constants.h".
12499 * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE)
12500 (BUILT_IN_GOACC_DATA_START, BUILT_IN_GOACC_DATA_END)
12501 (BUILT_IN_GOACC_ENTER_EXIT_DATA, BUILT_IN_GOACC_PARALLEL)
12502 (BUILT_IN_GOACC_UPDATE, BUILT_IN_GOACC_WAIT)
12503 (BUILT_IN_GOACC_GET_THREAD_NUM, BUILT_IN_GOACC_GET_NUM_THREADS)
12504 (BUILT_IN_ACC_ON_DEVICE): New builtins.
12505 * omp-low.c: Include "gomp-constants.h".
12506 Update comments for OpenACC changes.
12507 (struct omp_context): Add reduction_map, gwv_below, gwv_this
12508 members.
12509 (extract_omp_for_data, use_pointer_for_field, install_var_field)
12510 (new_omp_context, delete_omp_context, scan_sharing_clauses)
12511 (create_omp_child_function, scan_omp_for, scan_omp_target)
12512 (check_omp_nesting_restrictions, lower_reduction_clauses)
12513 (build_omp_regions_1, diagnose_sb_0, make_gimple_omp_edges):
12514 Update for OpenACC changes.
12515 (scan_sharing_clauses): Handle OMP_CLAUSE_NUM_GANGS:
12516 OMP_CLAUSE_NUM_WORKERS: OMP_CLAUSE_VECTOR_LENGTH,
12517 OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT, OMP_CLAUSE_GANG,
12518 OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_DEVICE_RESIDENT,
12519 OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_INDEPENDENT,
12520 OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ. Use GOMP_MAP_* instead of
12521 OMP_CLAUSE_MAP_*.
12522 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
12523 Handle GF_OMP_FOR_KIND_OACC_LOOP.
12524 (expand_omp_target, lower_omp_target): Handle
12525 GF_OMP_TARGET_KIND_OACC_PARALLEL, GF_OMP_TARGET_KIND_OACC_KERNELS,
12526 GF_OMP_TARGET_KIND_OACC_UPDATE,
12527 GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA,
12528 GF_OMP_TARGET_KIND_OACC_DATA.
12529 (pass_expand_omp::execute, execute_lower_omp)
12530 (pass_diagnose_omp_blocks::gate): Consider flag_openacc next to
12531 flag_openmp.
12532 (offload_symbol_decl): New variable.
12533 (oacc_get_reduction_array_id, oacc_max_threads)
12534 (get_offload_symbol_decl, get_base_type, lookup_oacc_reduction)
12535 (maybe_lookup_oacc_reduction, enclosing_target_ctx)
12536 (oacc_loop_or_target_p, oacc_lower_reduction_var_helper)
12537 (oacc_gimple_assign, oacc_initialize_reduction_data)
12538 (oacc_finalize_reduction_data, oacc_process_reduction_data): New
12539 functions.
12540 (is_targetreg_ctx): Remove function.
12541 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CACHE_,
12542 OMP_CLAUSE_DEVICE_RESIDENT, OMP_CLAUSE_USE_DEVICE,
12543 OMP_CLAUSE_GANG, OMP_CLAUSE_ASYNC, OMP_CLAUSE_WAIT,
12544 OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT,
12545 OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR, OMP_CLAUSE_NUM_GANGS,
12546 OMP_CLAUSE_NUM_WORKERS, OMP_CLAUSE_VECTOR_LENGTH.
12547 * tree.c (omp_clause_code_name, walk_tree_1): Update accordingly.
12548 * tree.h (OMP_CLAUSE_GANG_EXPR, OMP_CLAUSE_GANG_STATIC_EXPR)
12549 (OMP_CLAUSE_ASYNC_EXPR, OMP_CLAUSE_WAIT_EXPR)
12550 (OMP_CLAUSE_VECTOR_EXPR, OMP_CLAUSE_WORKER_EXPR)
12551 (OMP_CLAUSE_NUM_GANGS_EXPR, OMP_CLAUSE_NUM_WORKERS_EXPR)
12552 (OMP_CLAUSE_VECTOR_LENGTH_EXPR): New macros.
12553 * tree-core.h: Update comments for OpenACC changes.
12554 (enum omp_clause_map_kind): Remove.
12555 (struct tree_omp_clause): Change type of map_kind member from enum
12556 omp_clause_map_kind to unsigned char.
12557 * tree-inline.c: Update comments for OpenACC changes.
12558 * tree-nested.c: Likewise. Include "gomp-constants.h".
12559 (convert_nonlocal_reference_stmt, convert_local_reference_stmt)
12560 (convert_tramp_reference_stmt, convert_gimple_call): Update for
12561 OpenACC changes. Use GOMP_MAP_* instead of OMP_CLAUSE_MAP_*. Use
12562 OMP_CLAUSE_SET_MAP_KIND.
12563 * tree-pretty-print.c: Include "gomp-constants.h".
12564 (dump_omp_clause): Handle OMP_CLAUSE_DEVICE_RESIDENT,
12565 OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE__CACHE_, OMP_CLAUSE_GANG,
12566 OMP_CLAUSE_ASYNC, OMP_CLAUSE_AUTO, OMP_CLAUSE_SEQ,
12567 OMP_CLAUSE_WAIT, OMP_CLAUSE_WORKER, OMP_CLAUSE_VECTOR,
12568 OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS,
12569 OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_INDEPENDENT. Use GOMP_MAP_*
12570 instead of OMP_CLAUSE_MAP_*.
12571 (dump_generic_node): Handle OACC_PARALLEL, OACC_KERNELS,
12572 OACC_DATA, OACC_HOST_DATA, OACC_DECLARE, OACC_UPDATE,
12573 OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_CACHE, OACC_LOOP.
12574 * tree-streamer-in.c: Include "gomp-constants.h".
12575 (unpack_ts_omp_clause_value_fields) Use GOMP_MAP_* instead of
12576 OMP_CLAUSE_MAP_*. Use OMP_CLAUSE_SET_MAP_KIND.
12577 * tree-streamer-out.c: Include "gomp-constants.h".
12578 (pack_ts_omp_clause_value_fields): Use GOMP_MAP_* instead of
12579 OMP_CLAUSE_MAP_*.
12580 * tree.def (OACC_PARALLEL, OACC_KERNELS, OACC_DATA)
12581 (OACC_HOST_DATA, OACC_LOOP, OACC_CACHE, OACC_DECLARE)
12582 (OACC_ENTER_DATA, OACC_EXIT_DATA, OACC_UPDATE): New tree codes.
12583 * tree.c (omp_clause_num_ops): Update accordingly.
12584 * tree.h (OMP_BODY, OMP_CLAUSES, OMP_LOOP_CHECK, OMP_CLAUSE_SIZE):
12585 Likewise.
12586 (OACC_PARALLEL_BODY, OACC_PARALLEL_CLAUSES, OACC_KERNELS_BODY)
12587 (OACC_KERNELS_CLAUSES, OACC_DATA_BODY, OACC_DATA_CLAUSES)
12588 (OACC_HOST_DATA_BODY, OACC_HOST_DATA_CLAUSES, OACC_CACHE_CLAUSES)
12589 (OACC_DECLARE_CLAUSES, OACC_ENTER_DATA_CLAUSES)
12590 (OACC_EXIT_DATA_CLAUSES, OACC_UPDATE_CLAUSES)
12591 (OACC_KERNELS_COMBINED, OACC_PARALLEL_COMBINED): New macros.
12592 * tree.h (OMP_CLAUSE_MAP_KIND): Cast it to enum gomp_map_kind.
12593 (OMP_CLAUSE_SET_MAP_KIND): New macro.
12594 * varpool.c (varpool_node::get_create): Consider flag_openacc next
12595 to flag_openmp.
12596 * config/i386/intelmic-offload.h: New file.
12597 * config/nvptx/offload.h: Likewise.
12598
232364e7 125992015-01-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
12600
12601 * explow.h: Remove duplicate contents.
12602 * dojump.h: Likewise.
12603
2ca6edcb 126042015-01-15 Richard Earnshaw <rearnsha@arm.com>
12605
12606 * arm.c (arm_xgene_tune): Add default initializer for instruction
12607 fusion.
12608
ea30d751 126092015-01-15 Jan Hubicka <hubicka@ucw.cz>
12610
12611 PR ipa/64068
12612 PR ipa/64559
12613 * ipa.c (symbol_table::remove_unreachable_nodes):
12614 Do not put abstract origins into boundary.
12615
c0e77144 126162015-01-15 Evgeny Stupachenko <evstupac@gmail.com>
12617
12618 * config/i386/gnu-user.h (CRT_GET_RFIB_DATA): Remove EBX register usage.
12619 * config/i386/sysv4.h (CRT_GET_RFIB_DATA): Ditto.
2fe70ee1 12620
c0e77144 126212015-01-15 Steve Ellcey <sellcey@mips.com>
60fdd2f3 12622
2fe70ee1 12623 * Makefile.in (PLUGIN_HEADERS): Add dominance.h, cfg.h, cfgrtl.h,
12624 cfganal.h, cfgbuild.h, cfgcleanup.h, lcm.h, cfgloopmanip.h,
60fdd2f3 12625 builtins.def, and chkp-builtins.def.
2fe70ee1 12626
2fa47868 126272015-01-15 David Edelsohn <dje.gcc@gmail.com>
37b0af60 12628
12629 * config/rs6000/default64.h (TARGET_DEFAULT) [LITTLE_ENDIAN]: Use
12630 ISA 2.7 (POWER8).
12631
aa24bd23 126322015-01-15 Richard Biener <rguenther@suse.de>
12633
12634 PR tree-optimization/61743
12635 * tree-ssa-pre.c (insert_into_preds_of_block): Preserve range
12636 information on PHIs for some simple cases.
12637
55a94dda 126382015-01-15 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
12639
12640 * config/arm/arm.md (generic_sched): Specify xgene1 in 'no' list.
12641 Include xgene1.md.
12642 * config/arm/arm.c (arm_issue_rate): Specify 4 for xgene1.
12643 * config/arm/arm-cores.def (xgene1): New entry.
12644 * config/arm/arm-tables.opt: Regenerate.
12645 * config/arm/arm-tune.md: Regenerate.
12646 * config/arm/bpabi.h (BE8_LINK_SPEC): Specify mcpu=xgene1.
12647
040b4eee 126482015-01-15 Yuri Rumyantsev <ysrumyan@gmail.com>
12649
12650 * tree-if-conv.c: Include hash-map.h.
12651 (aggressive_if_conv): New variable.
12652 (fold_build_cond_expr): Add simplification of non-zero condition.
12653 (add_to_dst_predicate_list): Invoke add_to_predicate_list if edge
12654 destination block is not always executed.
12655 (if_convertible_phi_p): Fix commentary, allow phi nodes have more
12656 than two predecessors if AGGRESSIVE_IF_CONV is true.
12657 (if_convertible_stmt_p): Fix commentary.
12658 (all_preds_critical_p): New function.
12659 (has_pred_critical_p): New function.
12660 (if_convertible_bb_p): Fix commentary, if AGGRESSIVE_IF_CONV is true
12661 BB can have more than two predecessors and all incoming edges can be
12662 critical.
12663 (predicate_bbs): Skip predication for loop exit block, use build2_loc
12664 to compute predicate for true edge.
12665 (find_phi_replacement_condition): Delete this function.
12666 (is_cond_scalar_reduction): Add arguments ARG_0, ARG_1 and EXTENDED.
12667 Allow interchange PHI arguments if EXTENDED is false.
12668 Change check that block containing reduction statement candidate
12669 is predecessor of phi-block since phi may have more than two arguments.
12670 (phi_args_hash_traits): New helper structure.
12671 (struct phi_args_hash_traits): New type.
12672 (phi_args_hash_traits::hash): New function.
12673 (phi_args_hash_traits::equal_keys): New function.
12674 (gen_phi_arg_condition): New function.
12675 (predicate_scalar_phi): Add handling of phi nodes with more than two
12676 arguments, delete COND and TRUE_BB arguments, insert body of
12677 find_phi_replacement_condition to predicate ordinary phi nodes.
12678 (predicate_all_scalar_phis): Skip blocks with the only predecessor,
12679 delete call of find_phi_replacement_condition and invoke
12680 predicate_scalar_phi with two arguments.
12681 (insert_gimplified_predicates): Add assert that non-predicated block
12682 don't have statements to insert.
12683 (ifcvt_split_critical_edges): New function.
12684 (ifcvt_split_def_stmt): Likewise.
12685 (ifcvt_walk_pattern_tree): Likewise.
12686 (stmt_is_root_of_bool_pattern): Likewise.
12687 (ifcvt_repair_bool_pattern): Likewise.
12688 (ifcvt_local_dce): Likewise.
12689 (tree_if_conversion): Add initialization of AGGRESSIVE_IF_CONV which
12690 is copy of inner or outer loop force_vectorize field, invoke
12691 ifcvt_split_critical_edges, ifcvt_local_dce and
12692 ifcvt_repair_bool_pattern for aggressive if-conversion.
12693
41251276 126942015-01-15 Philipp Tomsich <ptomsich@theobroma-systems.com>
12695
12696 * config/aarch64/aarch64.md: Include xgene1.md.
12697 * config/aarch64/xgene1.md: New file.
12698
552fa694 126992015-01-15 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
12700
12701 * config/aarch64/aarch64-cores.def (xgene1): Update/add the
12702 xgene1 (APM XGene-1) core definition.
12703 * gcc/config/aarch64/aarch64.c: Add cost tables for APM XGene-1
12704 * config/arm/aarch-cost-tables.h: Add cost tables for APM XGene-1
12705 * doc/invoke.texi: Document -mcpu=xgene1.
12706
bef5f3b7 127072015-01-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
d53441c8 12708
12709 * dojump.h: New header file.
12710 * explow.h: Likewise.
12711 * expr.h: Remove includes.
12712 Move expmed.c prototypes to expmed.h.
12713 Move dojump.c prototypes to dojump.h.
12714 Move alias.c prototypes to alias.h.
12715 Move explow.c prototypes to explow.h.
12716 Move calls.c prototypes to calls.h.
12717 Move emit-rtl.c prototypes to emit-rtl.h.
12718 Move varasm.c prototypes to varasm.h.
12719 Move stmt.c prototypes to stmt.h.
12720 (saved_pending_stack_adjust): Move to dojump.h.
12721 (adjust_address): Move to explow.h.
12722 (adjust_address_nv): Move to emit-rtl.h.
12723 (adjust_bitfield_address): Likewise.
12724 (adjust_bitfield_address_size): Likewise.
12725 (adjust_bitfield_address_nv): Likewise.
12726 (adjust_automodify_address_nv): Likewise.
12727 * explow.c (expr_size): Move to expr.c.
12728 (int_expr_size): Likewise.
12729 (tree_expr_size): Likewise.
12730 Include calls.h dojump.h emit-rtl.h explow.h expmed.h
12731 fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
bef5f3b7 12732 * genemit.c (main): Generate includes statistics.h, real.h,
12733 fixed-value.h, insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
d53441c8 12734 stmt.h.
bef5f3b7 12735 * genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h,
12736 function.h, statistics.h, real.h, fixed-value.h, expmed.h, dojump.h,
12737 explow.h, emit-rtl.h, stmt.h.
d53441c8 12738 * genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
12739 fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
bef5f3b7 12740 * genemit.c (open_base_files): Generate includes flags.h, statistics.h,
12741 real.h, fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h,
12742 emit-rtl.h, varasm.h, stmt.h.
12743 * config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h,
12744 hash-set.h, vec.h, machmode.h, tm.h, hard-reg-set.h, input.h,
12745 function.h, rtl.h, flags.h, statistics.h, double-int.h, real.h,
12746 fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h, insn-config.h,
12747 expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
d53441c8 12748 * config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
12749 double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
12750 function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
12751 insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
12752 tm.h tree.h varasm.h vec.h wide-int.h.
12753 * rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
12754 explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
12755 hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
12756 real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
bef5f3b7 12757 * cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h
12758 emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h
12759 insn-config.h real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
d53441c8 12760 * loop-iv.c: Likewise.
bef5f3b7 12761 * lra-assigns.c: Include alias.h calls.h dojump.h double-int.h
12762 emit-rtl.h explow.h expmed.h fixed-value.h flags.h inchash.h real.h
d53441c8 12763 statistics.h stmt.h tree.h varasm.h wide-int.h.
12764 * lra-constraints.c: Likewise.
12765 * lra-eliminations.c: Likewise.
12766 * lra-lives.c: Likewise.
12767 * lra-remat.c: Likewise.
12768 * bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
12769 explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
12770 statistics.h stmt.h tree.h varasm.h wide-int.h.
12771 * hw-doloop.c: Likewise.
12772 * ira-color.c: Likewise.
12773 * ira-emit.c: Likewise.
12774 * loop-doloop.c: Likewise.
12775 * loop-invariant.c: Likewise.
12776 * reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
12777 explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
12778 statistics.h stmt.h tree.h varasm.h wide-int.h.
bef5f3b7 12779 * caller-save.c: Include alias.h calls.h dojump.h double-int.h
12780 emit-rtl.h explow.h expmed.h fixed-value.h inchash.h real.h
12781 statistics.h stmt.h tree.h varasm.h wide-int.h.
d53441c8 12782 * combine-stack-adj.c: Likewise.
12783 * cse.c: Likewise.
12784 * ddg.c: Likewise.
12785 * ifcvt.c: Likewise.
12786 * ira-costs.c: Likewise.
12787 * jump.c: Likewise.
12788 * lra-coalesce.c: Likewise.
12789 * lra-spills.c: Likewise.
12790 * profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
12791 explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
12792 stmt.h varasm.h wide-int.h.
12793 * lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
12794 explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
12795 varasm.h.
12796 * config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
12797 double-int.h explow.h expmed.h fixed-value.h flags.h real.h
12798 statistics.h stmt.h varasm.h wide-int.h.
12799 * reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
12800 expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
12801 varasm.h wide-int.h.
12802 * reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
12803 expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
12804 * config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
12805 emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
12806 statistics.h stmt.h.
12807 * config/tilepro/tilepro.c: Likewise.
12808 * config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
12809 explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
12810 * config/pdp11/pdp11.c: Likewise.
12811 * config/xtensa/xtensa.c: Likewise.
12812 * config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
12813 explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
12814 varasm.h.
12815 * tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
12816 fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
12817 insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
12818 * cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
12819 fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
12820 insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
12821 * rtl-chkp.c: Likewise.
12822 * tree-chkp-opt.c: Likewise.
bef5f3b7 12823 * config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h
12824 explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
12825 hashtab.h insn-config.h real.h statistics.h stmt.h varasm.h.
d53441c8 12826 * ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
12827 fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
12828 statistics.h stmt.h.
12829 * tree-vect-data-refs.c: Likewise.
12830 * graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
12831 expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
12832 rtl.h statistics.h stmt.h varasm.h.
12833 * internal-fn.c: Likewise.
12834 * ipa-icf-gimple.c: Likewise.
12835 * lto-section-out.c: Likewise.
12836 * tree-data-ref.c: Likewise.
12837 * tree-nested.c: Likewise.
12838 * tree-outof-ssa.c: Likewise.
12839 * tree-predcom.c: Likewise.
12840 * tree-pretty-print.c: Likewise.
12841 * tree-scalar-evolution.c: Likewise.
12842 * tree-ssa-strlen.c: Likewise.
12843 * tree-vect-loop.c: Likewise.
12844 * tree-vect-patterns.c: Likewise.
12845 * tree-vect-slp.c: Likewise.
12846 * tree-vect-stmts.c: Likewise.
12847 * tsan.c: Likewise.
12848 * targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
12849 fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
12850 stmt.h.
12851 * config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
12852 expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
12853 statistics.h stmt.h varasm.h.
12854 * loop-unroll.c: Likewise.
12855 * ubsan.c: Likewise.
12856 * tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
12857 expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
12858 stmt.h varasm.h.
12859 * dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
12860 fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
12861 * tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
12862 expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
12863 statistics.h stmt.h.
12864 * generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
12865 expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
12866 statistics.h stmt.h varasm.h.
12867 * gimple-match-head.c: Likewise.
12868 * lto-cgraph.c: Likewise.
12869 * lto-section-in.c: Likewise.
12870 * lto-streamer-in.c: Likewise.
12871 * lto-streamer-out.c: Likewise.
12872 * tree-affine.c: Likewise.
12873 * tree-cfg.c: Likewise.
12874 * tree-cfgcleanup.c: Likewise.
12875 * tree-if-conv.c: Likewise.
12876 * tree-into-ssa.c: Likewise.
12877 * tree-ssa-alias.c: Likewise.
12878 * tree-ssa-copyrename.c: Likewise.
12879 * tree-ssa-dse.c: Likewise.
12880 * tree-ssa-forwprop.c: Likewise.
12881 * tree-ssa-live.c: Likewise.
12882 * tree-ssa-math-opts.c: Likewise.
12883 * tree-ssa-pre.c: Likewise.
12884 * tree-ssa-sccvn.c: Likewise.
12885 * tree-tailcall.c: Likewise.
12886 * tree-vect-generic.c: Likewise.
12887 * tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
12888 fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
12889 * stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
12890 fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
12891 * varasm.c: Likewise.
12892 * coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
12893 fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
12894 varasm.h.
12895 * init-regs.c: Likewise.
12896 * ira.c: Likewise.
12897 * omp-low.c: Likewise.
12898 * stack-ptr-mod.c: Likewise.
12899 * tree-ssa-reassoc.c: Likewise.
12900 * tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
12901 fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
12902 varasm.h.
12903 * dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
12904 fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
12905 * shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
12906 fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
12907 * recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
12908 fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
12909 * tree-ssa-phiopt.c: Likewise.
12910 * config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
12911 fixed-value.h hashtab.h real.h statistics.h stmt.h.
12912 * config/fr30/fr30.c: Likewise.
12913 * config/frv/frv.c: Likewise.
12914 * expr.c: Likewise.
12915 * final.c: Likewise.
12916 * optabs.c: Likewise.
12917 * passes.c: Likewise.
12918 * simplify-rtx.c: Likewise.
12919 * stmt.c: Likewise.
12920 * toplev.c: Likewise.
12921 * var-tracking.c: Likewise.
12922 * gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
12923 fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
12924 * lower-subreg.c: Likewise.
12925 * postreload-gcse.c: Likewise.
12926 * ree.c: Likewise.
12927 * reginfo.c: Likewise.
12928 * store-motion.c: Likewise.
12929 * combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
12930 fixed-value.h hashtab.h real.h stmt.h varasm.h.
12931 * emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
12932 fixed-value.h hashtab.h statistics.h stmt.h.
12933 * dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
12934 fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
12935 * except.c: Likewise.
12936 * explow.c: Likewise.
12937 * tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
12938 fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
12939 varasm.h.
12940 * gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
12941 fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
12942 * tree-ssa-structalias.c: Likewise.
12943 * cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
12944 fixed-value.h insn-config.h real.h statistics.h.
12945 * calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
12946 fixed-value.h insn-config.h real.h statistics.h stmt.h.
12947 * bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
12948 fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
12949 * cfgbuild.c: Likewise.
12950 * function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
12951 fixed-value.h real.h rtl.h statistics.h stmt.h.
12952 * cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
12953 fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
12954 * dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
12955 fixed-value.h real.h statistics.h stmt.h.
12956 * auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
12957 fixed-value.h real.h statistics.h stmt.h varasm.h.
12958 * cprop.c: Likewise.
12959 * modulo-sched.c: Likewise.
12960 * postreload.c: Likewise.
12961 * ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
12962 flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
12963 statistics.h stmt.h varasm.h.
12964 * gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
12965 explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
12966 rtl.h statistics.h stmt.h varasm.h.
12967 * tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
12968 fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
12969 varasm.h.
12970 * expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
12971 function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
12972 varasm.h.
12973 * target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
12974 fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
12975 varasm.h.
12976 * tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
12977 fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
12978 * cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
12979 function.h real.h statistics.h stmt.h varasm.h.
12980 * alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
12981 insn-config.h real.h statistics.h stmt.h.
12982 * dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
12983 statistics.h stmt.h.
12984 * config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
12985 fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
12986 statistics.h stmt.h varasm.h.
bef5f3b7 12987 * gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h
12988 fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
d53441c8 12989 * asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
12990 flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
12991 * ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
12992 fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
12993 statistics.h stmt.h varasm.h.
12994 * ipa-polymorphic-call.c: Likewise.
bef5f3b7 12995 * config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h
d53441c8 12996 expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
bef5f3b7 12997 statistics.h stmt.h.
12998 * config/c6x/c6x.c: Likewise.
12999 * config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h
13000 explow.h expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
d53441c8 13001 statistics.h stmt.h varasm.h.
bef5f3b7 13002 * ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h
13003 fixed-value.h hashtab.h insn-config.h real.h rtl.h statistics.h
13004 stmt.h varasm.h.
d53441c8 13005 * ipa-split.c: Likewise.
13006 * tree-eh.c: Likewise.
13007 * tree-ssa-dce.c: Likewise.
13008 * tree-ssa-loop-niter.c: Likewise.
13009 * tree-vrp.c: Likewise.
13010 * config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
13011 expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
13012 stmt.h.
13013 * config/nds32/nds32-fp-as-gp.c: Likewise.
13014 * config/nds32/nds32-intrinsic.c: Likewise.
13015 * config/nds32/nds32-isr.c: Likewise.
13016 * config/nds32/nds32-md-auxiliary.c: Likewise.
13017 * config/nds32/nds32-memory-manipulation.c: Likewise.
13018 * config/nds32/nds32-pipelines-auxiliary.c: Likewise.
13019 * config/nds32/nds32-predicates.c: Likewise.
13020 * config/nds32/nds32.c: Likewise.
13021 * config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
13022 fixed-value.h hashtab.h real.h statistics.h.
13023 * config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
13024 fixed-value.h hashtab.h real.h statistics.h stmt.h.
13025 * config/arm/arm.c: Likewise.
13026 * config/avr/avr.c: Likewise.
13027 * config/bfin/bfin.c: Likewise.
13028 * config/h8300/h8300.c: Likewise.
13029 * config/i386/i386.c: Likewise.
13030 * config/ia64/ia64.c: Likewise.
13031 * config/iq2000/iq2000.c: Likewise.
13032 * config/m32c/m32c.c: Likewise.
13033 * config/m32r/m32r.c: Likewise.
13034 * config/m68k/m68k.c: Likewise.
13035 * config/mcore/mcore.c: Likewise.
13036 * config/mep/mep.c: Likewise.
13037 * config/mips/mips.c: Likewise.
13038 * config/mn10300/mn10300.c: Likewise.
13039 * config/moxie/moxie.c: Likewise.
13040 * config/pa/pa.c: Likewise.
13041 * config/rl78/rl78.c: Likewise.
13042 * config/rx/rx.c: Likewise.
13043 * config/s390/s390.c: Likewise.
13044 * config/sh/sh.c: Likewise.
13045 * config/sparc/sparc.c: Likewise.
13046 * config/spu/spu.c: Likewise.
13047 * config/stormy16/stormy16.c: Likewise.
13048 * config/v850/v850.c: Likewise.
13049 * config/vax/vax.c: Likewise.
13050 * config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
13051 fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
13052 * config/msp430/msp430.c: Likewise.
13053 * predict.c: Likewise.
13054 * value-prof.c: Likewise.
13055 * config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
13056 expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
13057 * config/microblaze/microblaze.c: Likewise.
13058 * config/nios2/nios2.c: Likewise.
13059 * config/rs6000/rs6000.c: Likewise.
13060 * tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
13061 insn-config.h real.h rtl.h statistics.h stmt.h.
13062 * cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
13063 insn-config.h real.h statistics.h stmt.h.
13064 * fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
13065 fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
13066 * tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
13067 fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
bef5f3b7 13068 * builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h
13069 fixed-value.h real.h statistics.h stmt.h.
d53441c8 13070 * config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
13071 fixed-value.h statistics.h stmt.h.
13072 * config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
13073 stmt.h.
13074
a561ec10 130752015-01-15 Jakub Jelinek <jakub@redhat.com>
13076
13077 * gengtype.c (create_user_defined_type): Workaround
13078 -Wmaybe-uninitialized false positives.
13079 * cse.c (fold_rtx): Likewise.
13080 * loop-invariant.c (gain_for_invariant): Likewise.
13081
db219949 130822015-01-15 Eric Botcazou <ebotcazou@adacore.com>
13083
13084 * expr.c (expand_expr_real_1) <normal_inner_ref>: Use the expression to
13085 set the memory attributes in all cases but clear MEM_EXPR if need be.
13086
f7974718 130872015-01-15 Yuri Rumyantsev <ysrumyan@gmail.com>
13088
13089 PR tree-optimization/64434
13090 * cfgexpand.c (reorder_operands): New function.
13091 (expand_gimple_basic_block): Insert call of reorder_operands if
13092 optimized is true.
13093
01d2893e 130942015-01-15 Matthew Fortune <matthew.fortune@imgtec.com>
13095
13096 * config/mips/micromips.md (*swp): Remove explicit parallel.
13097 (jraddiusp, *movep<MOVEP1:mode><MOVEP2:mode>): Likewise.
13098 * config/mips/mips-dsp.md (add<DSPV:mode>3): Likewise.
13099 (mips_add<DSP:dspfmt1>_s_<DSP:dspfmt2>, sub<DSPV:mode>3): Likewise.
13100 (mips_sub<DSP:dspfmt1>_s_<DSP:dspfmt2>, mips_addsc): Likewise.
13101 (mips_addwc, mips_absq_s_<DSPQ:dspfmt2>): Likewise.
13102 (mips_precrq_rs_ph_w, mips_precrqu_s_qb_ph): Likewise.
13103 (mips_shll_<DSPV:dspfmt2>, mips_shll_s_<DSPQ:dspfmt2>): Likewise.
13104 (mips_muleu_s_ph_qbl, mips_muleu_s_ph_qbr): Likewise.
13105 (mips_mulq_rs_ph, mips_muleq_s_w_phl, mips_muleq_s_w_phr): Likewise.
13106 (mips_dpaq_s_w_ph, mips_dpsq_s_w_ph, mips_mulsaq_s_w_ph): Likewise.
13107 (mips_dpaq_sa_l_w, mips_dpsq_sa_l_w, mips_maq_s_w_phl): Likewise.
13108 (mips_maq_s_w_phr, mips_maq_sa_w_phl, mips_maq_sa_w_phr): Likewise.
13109 (mips_extr_w, mips_extr_r_w, mips_extr_rs_w): Likewise.
13110 (mips_extr_s_h, mips_extp, mips_extpdp, mips_mthlip): Likewise.
13111 (mips_wrdsp): Likewise.
13112 * config/mips/mips-dspr2.md (mips_absq_s_qb): Remove explicit
13113 parallel.
13114 (mips_addu_ph, mips_addu_s_ph, mips_cmpgdu_eq_qb): Likewise.
13115 (mips_cmpgdu_lt_qb, mips_cmpgdu_le_qb, mulv2hi3): Likewise.
13116 (mips_mul_s_ph, mips_mulq_rs_w, mips_mulq_s_ph): Likewise.
13117 (mips_mulq_s_w, mips_subu_ph, mips_subu_s_ph): Likewise.
13118 (mips_dpaqx_s_w_ph, mips_dpaqx_sa_w_ph): Likewise.
13119 (mips_dpsqx_s_w_ph, mips_dpsqx_sa_w_ph): Likewise.
13120 * config/mips/mips-fixed.md (usadd<mode>3): Remove explicit parallel.
13121 (ssadd<mode>3, ussub<mode>3, sssub<mode>3, ssmul<mode>3): Likewise.
13122 (ssmaddsqdq4, ssmsubsqdq4): Likewise.
13123
79c79069 131242015-01-14 Matthew Fortune <matthew.fortune@imgtec.com>
13125
13126 * config/mips/mips.c (mips_rtx_costs): Set costs for LSA/DLSA.
13127 (mips_print_operand): Support 'y' to print exact log2 in decimal
13128 of a const_int.
13129 * config/mips/mips.h (ISA_HAS_LSA): New define.
13130 (ISA_HAS_DLSA): Likewise.
13131 * config/mips/mips.md (<GPR:d>lsa): New define_insn.
13132 * config/mips/predicates.md (const_immlsa_operand): New predicate.
13133
ec5ca250 131342015-01-15 Martin Liska <mliska@suse.cz>
13135
13136 PR target/64377
13137 * optc-save-gen.awk: Add support for array types.
13138
43085be3 131392015-01-15 Richard Biener <rguenther@suse.de>
13140
13141 PR middle-end/64365
13142 * tree-data-ref.c (dr_analyze_indices): Make sure that accesses
13143 for MEM_REF access functions with the same base can never partially
13144 overlap.
13145
947aa916 131462015-01-14 Marcos Diaz <marcos.diaz@tallertechnologies.com>
13147
13148 * common.opt: New option -fstack-protector-explicit.
13149 * cfgexpand.c (SPCT_FLAG_EXPLICIT): New enum.
13150 (stack_protect_decl_phase): Handle stack_protect attribute for
13151 explicit stack protection requests.
13152 (expand_used_vars): Similarly.
13153 * doc/cpp.texi (__SSP_EXPLICIT__): Document predefined macro.
13154 * doc/extend.texi: Add documentation for "stack_protect" attribute.
13155 * doc/invoke.texi: Add documentation for -fstack-protector-explicit.
13156
394e78ee 131572015-01-14 Oleg Endo <olegendo@gcc.gnu.org>
13158
13159 PR target/53988
13160 * config/sh/sh-protos.h (sh_find_set_of_reg): Add option to ignore
13161 reg-reg copies.
13162 (sh_extending_set_of_reg): New struct.
13163 (sh_find_extending_set_of_reg, sh_split_tst_subregs,
13164 sh_remove_reg_dead_or_unused_notes): New Declarations.
13165 * config/sh/sh.c (sh_remove_reg_dead_or_unused_notes,
13166 sh_find_extending_set_of_reg, sh_split_tst_subregs,
13167 sh_extending_set_of_reg::use_as_extended_reg): New functions.
13168 * config/sh/sh.md (*tst<mode>_t_zero): Rename to *tst<mode>_t_subregs,
13169 convert to insn_and_split and use new function sh_split_tst_subregs.
13170
a336442d 131712015-01-14 Sandra Loosemore <sandra@codesourcery.com>
13172
13173 * doc/invoke.texi (Option Summary): Reclassify -fuse-ld as a linker
13174 option.
13175 (Optimization Options): Move -fuse-ld documentation to...
13176 (Link Options): ...here.
13177
05af34e2 131782015-01-14 Matthew Fortune <matthew.fortune@imgtec.com>
13179
13180 * config/mips/constraints.md (ZC): Add support for R6 LL/SC
13181 offsets.
13182 (ZD): Update to use ISA_HAS_9BIT_DISPLACEMENT.
13183 * config/mips/mips.h (ISA_HAS_PREFETCH_9BIT): Rename to...
13184 (ISA_HAS_9BIT_DISPLACEMENT): ... this. New macro.
13185 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZC
13186 instead of ZR for the memory operand of LL/SC.
13187 (compare_and_swap_12, sync_add<mode>): Likewise.
13188 (sync_<optab>_12, sync_old_<optab>_12): Likewise.
13189 (sync_new_<optab>_12, sync_nand_12): Likewise.
13190 (sync_old_nand_12, sync_new_nand_12): Likewise.
13191 (sync_sub<mode>, sync_old_add<mode>): Likewise.
13192 (sync_old_sub<mode>, sync_new_add<mode>): Likewise.
13193 (sync_new_sub<mode>, sync_<optab><mode>): Likewise.
13194 (sync_old_<optab><mode>, sync_new_<optab><mode>"): Likewise.
13195 (sync_nand<mode>, sync_old_nand<mode>): Likewise.
13196 (sync_new_nand<mode>, sync_lock_test_and_set<mode>): Likewise.
13197 (test_and_set_12, atomic_compare_and_swap<mode>): Likewise.
13198 (atomic_exchange<mode>_llsc, atomic_fetch_add<mode>_llsc): Likewise.
13199 * doc/md.texi (ZC): Update description.
13200
086f4e33 132012015-01-14 Andrew MacLeod <amacleod@redhat.com>
13202
13203 * builtins.c (expand_builtin_atomic_exchange): Remove error when
13204 memory model is CONSUME.
13205 (expand_builtin_atomic_compare_exchange, expand_builtin_atomic_load,
13206 expand_builtin_atomic_store): Change invalid memory model errors to
13207 warnings.
13208 (expand_builtin_atomic_clear): Change invalid model errors to warnings
13209 and issue warning for CONSUME.
13210
1cd6246c 132112015-01-14 Aldy Hernandez <aldyh@redhat.com>
13212
13213 * lto-cgraph: Update function comments for
13214 lto_symtab_encoder_encode_*.
13215
04270ae2 132162015-01-14 Ilya Verbin <ilya.verbin@intel.com>
13217
13218 * Makefile.in (site.exp): Do not set ENABLE_LTO.
13219
9d65fe51 132202015-01-14 Ilya Verbin <ilya.verbin@intel.com>
13221
13222 * cgraphunit.c (ipa_passes): Remove argument from ipa_write_summaries.
13223 * lto-cgraph.c (select_what_to_stream): Remove argument, use
13224 lto_stream_offload_p instead.
13225 * lto-streamer.h (select_what_to_stream): Remove argument.
13226 * passes.c (ipa_write_summaries): Likewise.
13227 * tree-pass.h (ipa_write_summaries): Likewise.
13228
631db480 132292015-01-14 Richard Biener <rguenther@suse.de>
13230
13231 PR tree-optimization/59354
13232 * tree-vect-slp.c (vect_build_slp_tree_1): Treat loads from
13233 groups larger than the slp group size as having gaps.
13234
3070f133 132352015-01-14 Andrew MacLeod <amacleod@redhat.com>
13236
13237 PR middle-end/59448
13238 * builtins.c (get_memmodel): Promote consume to acquire always.
13239
d4cbe45a 132402015-01-14 Ilya Tocar <ilya.tocar@intel.com>
43a6ee30 13241
13242 PR target/64386
13243 * config/i386/i386.c (ix86_expand_sse_cmp): Handle V64QImode,
89e2ddc9 13244 V32HImode.
43a6ee30 13245
d4cbe45a 132462015-01-14 Ilya Tocar <ilya.tocar@intel.com>
1c699c14 13247
13248 PR target/64393
13249 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET):
13250 Enable AVX512BW.
13251 (OPTION_MASK_ISA_AVX512BW_UNSET): Disable AVX512VBMI.
13252 * config/i386/i386.c (ix86_hard_regno_mode_ok): Don't check
13253 AVX512VBMI, as it implies AVX512BW.
13254
d4cbe45a 132552015-01-14 Ilya Tocar <ilya.tocar@intel.com>
9f8bc6e8 13256
13257 PR target/64387
13258 * config/i386/sse.md (vec_unpacks_hi_v8sf): Fix predicate.
13259 (vec_unpacks_hi_v16sf): Ditto.
13260
1ed5a048 132612015-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13262
13263 * config/aarch64/arm_neon.h: Error out if AdvancedSIMD
13264 is not available.
13265
6dd55040 132662015-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13267
13268 * doc/invoke.texi (mapcs): Mention deprecation.
13269 (mapcs-frame): Likewise.
13270
0aa63fc5 132712015-01-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
13272
13273 PR target/64453
13274 * config/arm/arm.c (callee_saved_reg_p): Define.
13275 (arm_compute_save_reg0_reg12_mask): Use callee_saved_reg_p to check if
13276 register is callee saved instead of !call_used_regs[reg].
13277 (thumb1_compute_save_reg_mask): Likewise.
13278
e51040ea 132792015-01-14 Hale Wang <hale.wang@arm.com>
13280
13281 * config/arm/arm.c: Tune the max_cond_insns/branch_cost for
13282 Cortex-M7.
13283
7d16b377 132842015-01-14 Richard Biener <rguenther@suse.de>
13285
13286 PR lto/64415
13287 * tree-inline.c (insert_debug_decl_map): Check destination
13288 function MAY_HAVE_DEBUG_STMTS.
13289 (insert_init_debug_bind): Likewise.
13290 (insert_init_stmt): Remove redundant check.
13291 (remap_gimple_stmt): Drop debug stmts if the destination
13292 function has var-tracking assignments disabled.
13293
cadb17da 132942015-01-14 Martin Liska <mliska@suse.cz>
13295
13296 * ipa-icf-gimple.c (func_checker::compare_operand): Add support for
13297 IMAGPART_EXPR and REALPART_EXPR and fix BIT_FIELD_REF comparison.
13298
753d9835 132992015-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13300
13301 PR target/64460
13302 * config/arm/arm.md (*<arith_shift_insn>_multsi): Set 'shift' to 2.
13303 (*<arith_shift_insn>_shiftsi): Set 'shift' attr to 3.
13304
c1fe1a98 133052015-01-14 Matthew Fortune <matthew.fortune@imgtec.com>
13306
e1e4663f 13307 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Only infer an ISA
13308 level from an ARCH; do not inject the default.
13309 (MIPS_DEFAULT_ISA_LEVEL_SPEC): New macro split out from
13310 MIPS_ISA_LEVEL_SPEC.
13311 (MIPS_ISA_NAN2008_SPEC): Update comment.
13312 (BASE_DRIVER_SELF_SPECS): Likewise.
13313 * config/mips/elfoabi.h (DRIVER_SELF_SPECS): Add
13314 MIPS_DEFAULT_ISA_LEVEL_SPEC.
13315 * config/mips/mti-elf.h (DRIVER_SELF_SPECS): Likewise.
13316 * config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise.
13317 * config/mips/sde.h (DRIVER_SELF_SPECS): Likewise.
c1fe1a98 13318
0f76de8e 133192015-01-14 Richard Biener <rguenther@suse.de>
13320
13321 PR tree-optimization/64493
13322 PR tree-optimization/64495
13323 * tree-vect-loop.c (vect_finalize_reduction): For double-reductions
13324 assign the proper vectorized PHI to the inner loop exit PHIs.
13325
c433f338 133262015-01-14 Joey Ye <joey.ye@arm.com>
13327
13328 * config/arm/arm.c (arm_compute_save_reg_mask):
13329 Do not save lr in case of tail call.
13330 * config/arm/thumb2.md (*thumb2_pop_single): New pattern.
13331
2fa47868 133322015-01-14 Martin Uecker <uecker@eecs.berkeley.edu>
e4fd7af1 13333
13334 * tree-vrp.c (check_array_ref): Emit more warnings
13335 for warn_array_bounds >= 2.
13336 * common.opt: New option -Warray-bounds=.
13337 * doc/invoke.texi: Document -Warray-bounds=.
13338
496649d9 133392015-01-14 Chung-Ju Wu <jasonwucj@gmail.com>
13340
13341 * config/nds32/nds32.opt (mforce-fp-as-gp): Remove.
13342 (mforbid-fp-as-gp): Remove.
13343 (mex9): Remove.
13344 * config/nds32/nds32-fp-as-gp.c (nds32_have_prologue_p): Remove.
13345 (nds32_symbol_load_store_p): Remove.
13346 (nds32_fp_as_gp_check_available): Clean up implementation.
13347 * config/nds32/nds32.h (LINK_SPEC): Remove -mforce-as-gp and -mex9
13348 cases.
13349 * config/nds32/nds32.c (nds32_asm_file_start): No need to consider
13350 fp-as-gp and ex9 cases.
13351
ca13b0e8 133522015-01-13 Jan Hubicka <hubicka@ucw.cz>
13353
13354 * tree-profile.c (init_ic_make_global_vars): Drop workaround
13355 for bintuils bug 14342.
13356 (init_ic_make_global_vars): Likewise.
13357 (gimple_init_edge_profiler): Likewise.
13358 (gimple_gen_ic_func_profiler): Likewise.
13359
c433f338 133602015-01-13 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
a353d6b1 13361
13362 * ipa-inline.c (inline_small_functions): Swap the operands in
13363 enum.
13364
bc42c20c 133652015-01-13 Jan Hubicka <hubicka@ucw.cz>
13366
13367 PR ipa/64481
13368 * ipa-inline-analysis.c (node_growth_cache): Remove.
13369 (initialize_growth_caches): Do not initialize it.
13370 (free_growth_caches): Do not free it.
13371 (do_estimate_growth): Rename to ...
13372 (estimate_growth): ... this one; drop growth cache code.
13373 (growth_likely_positive): Always go the heuristics way.
13374 * ipa-inline.c (can_inline_edge_p): Walk through aliases.
13375 (reset_edge_caches): Do not reset node growth.
13376 (heap_edge_removal_hook): Do not maintain cache.
13377 (inline_small_functions): Likewise; strenghten sanity check.
13378 (ipa_inline): Do not maintain caches.
13379 * ipa-inline.h (node_growth_cache): Remove.
13380 (do_estimate_growth): Remove to ...
13381 (estimate_growth): this one; remove inline version.
13382 (reset_node_growth_cache): Remove.
13383
251346b0 133842015-01-13 Jan Hubicka <hubicka@ucw.cz>
13385
13386 PR ipa/64565
13387 * ipa-inline.c (inline_small_functions): Update callee keys after
13388 resolving speculation
13389 (inline_small_functions): Always check monotonicity of the queue.
13390
547355ae 133912015-01-13 Marek Polacek <polacek@redhat.com>
13392
13393 PR middle-end/64391
13394 * trans-mem.c (get_attrs_for): Return NULL_TREE if X is NULL_TREE.
13395
b1f5faea 133962015-01-13 Jakub Jelinek <jakub@redhat.com>
13397
13398 PR rtl-optimization/64286
13399 * ree.c (combine_reaching_defs): Move part of comment earlier,
13400 remove !SCALAR_INT_MODE_P check.
13401 (add_removable_extension): Don't add vector mode
13402 extensions if all uses of the source register aren't the same
13403 vector extensions.
13404
31307954 134052015-01-13 Renlin Li <renlin.li@arm.com>
13406
13407 * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): Return 2.
13408 (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
13409
7174b54b 134102015-01-13 Martin Liska <mliska@suse.cz>
13411
13412 * ipa-icf.c (sem_function::equals_private): Call new functions
13413 cl_target_option_print_diff and cl_optimization_print_diff.
13414 * optc-save-gen.awk (cl_target_option_print_diff): New function.
13415 (cl_optimization_print_diff): Likewise.
13416 * opth-gen.awk: Likewise.
13417
aec7ccda 134182015-01-13 Richard Sandiford <richard.sandiford@arm.com>
13419
13420 * config/aarch64/aarch64.md (subsi3, *subsi3_uxtw, subdi3)
13421 (*sub_<optab><ALLX:mode>_<GPI:mode>, *sub_<optab><SHORT:mode>_si_uxtw)
13422 (*sub_<optab><ALLX:mode>_shft_<GPI:mode>)
13423 (*sub_<optab><SHORT:mode>_shft_si_uxtw, *sub_<optab><mode>_multp2)
13424 (*sub_<optab>si_multp2_uxtw, *sub_uxt<mode>_multp2)
13425 (*sub_uxtsi_multp2_uxtw): Add stack pointer sources.
13426
c6e5fbeb 134272015-01-13 Andrew Pinski <apinski@cavium.com>
090a52f8 13428
13429 * config/aarch64/aarch64.c (fusion_load_store): Check dest mode
89e2ddc9 13430 instead of src mode.
090a52f8 13431
f570604f 134322015-01-13 Richard Biener <rguenther@suse.de>
13433
13434 PR lto/64373
13435 * lto-streamer-out.c (tree_is_indexable): Guard for NULL
13436 DECL_CONTEXT.
13437
c6e5fbeb 134382015-01-13 Andrew Pinski <apinski@cavium.com>
8bf5b2f8 13439
13440 * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): Reject
13441 volatile mems.
13442 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
13443
f0325271 134442015-01-13 Jakub Jelinek <jakub@redhat.com>
13445
13446 PR middle-end/63974
13447 * cfgexpand.c (expand_computed_goto): Don't call
13448 convert_memory_address here.
13449
505d3633 134502015-01-13 Richard Biener <rguenther@suse.de>
13451
13452 PR tree-optimization/64406
13453 * tree-loop-distibution.c (pass_loop_distribution::execute):
13454 Reset the SCEV hashtable if we distributed anything.
13455
371edde1 134562015-01-13 Richard Biener <rguenther@suse.de>
13457
13458 PR tree-optimization/64404
13459 * tree-vect-stmts.c (vectorizable_load): Reject conflicting
13460 SLP types for CSEd loads.
13461
f7a40894 134622015-01-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
13463
13464 PR tree-optimization/64436
13465 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Move code performing the
13466 merge of two symbolic numbers for a bitwise OR to ...
13467 (perform_symbolic_merge): This. Also fix computation of the range and
13468 end of the symbolic number corresponding to the result of a bitwise OR.
13469
2fa47868 134702015-01-13 Richard Biener <rguenther@suse.de>
7fb03128 13471
13472 PR tree-optimization/64568
13473 * tree-ssa-forwprop.c (pass_forwprop::execute): Properly
13474 release defs of removed stmts, avoid splitting TARGET_MEM_REFs.
13475
34cb34cb 134762015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
13477
13478 * config/nds32/nds32.c (nds32_legitimate_address_p): Consider
13479 TARGET_CMODEL_LARGE and TARGET_CMODEL_MEDIUM cases.
13480
8e4f6b00 134812015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
13482
13483 * config/nds32/nds32.h (NDS32_SYMBOL_FLAG_RODATA): Define our own
13484 target-specific symbol_ref flag.
13485 (NDS32_SYMBOL_REF_RODATA_P): Define it to check if the symbol_ref
13486 resides in rodata section.
13487 * config/nds32/nds32.c (TARGET_ENCODE_SECTION_INFO): Define.
13488 (nds32_encode_section_info): New function.
13489
b129c8c3 134902015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
13491
13492 * config/nds32/nds32.md (call): Use pseudo instruction bal which
13493 clobbers TA_REGNUM if large code model is specified.
13494 (call_register): Likewise.
13495 (call_immediate): Likewise.
13496 (call_value): Likewise.
13497 (call_value_register): Likewise.
13498 (call_value_immediate): Likewise.
13499
abc509c0 135002015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
13501
13502 * config/nds32/nds32.h (TARGET_CMODEL_SMALL): New macro.
13503 (TARGET_CMODEL_MEDIUM): New macro.
13504 (TARGET_CMODEL_LARGE): New macro.
13505 * config/nds32/nds32.c (nds32_asm_file_start): Display corresponding
13506 code model setting in assembly code.
13507
d1bacc44 135082015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
13509
13510 * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
13511 Remove MASK_GP_DIRECT flag.
13512 * config/nds32/nds32.h (MULTILIB_DEFAULTS): Have -mcmodel=medium as
13513 one of the multilib default options.
13514 * config/nds32/nds32.opt (mgp-direct): Remove.
13515 * config/nds32/t-mlibs (MULTILIB_OPTIONS): Use -mcmodel instead of
13516 -mgp-direct. We also remove unnecessary -mlittle-endian/-mbig-endian.
13517
da2e70a9 135182015-01-13 Chung-Ju Wu <jasonwucj@gmail.com>
13519
13520 * config/nds32/nds32.opt (mcmodel): Add new option.
13521 * config/nds32/nds32-opts.h (nds32_cmodel_type): Add new enum type
13522 to describe code model.
13523
8624ddf6 135242015-01-13 Oleg Endo <olegendo@gcc.gnu.org>
13525
13526 PR target/64479
13527 * rtlanal.c (set_reg_p): Handle SEQUENCE constructs.
13528
54adac16 135292015-01-12 Kaz Kojima <kkojima@gcc.gnu.org>
13530
13531 * config/sh/sh.c (sh_atomic_assign_expand_fenv): New function.
13532 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): Define.
13533 (sh_builtin_get_fpscr, sh_builtin_set_fpscr): New variables.
13534 (sh_init_builtins): Record decls for __builtin_sh_get_fpscr and
13535 __builtin_sh_set_fpscr.
13536
516766a2 135372015-01-12 Sandra Loosemore <sandra@codesourcery.com>
13538
13539 * doc/invoke.texi ([-Wsuggest-attribute=]): Don't use parentheses
13540 after a funtion name just to indicate it is a function.
13541 ([-fsanitize-undefined-trap-on-error]): Likewise.
13542 ([-fdbg-cnt=]): Likewise.
13543 ([-mmemcpy]): Likewise.
13544 ([-mflush-func]): Likewise.
13545 ([-msynci]): Likewise.
13546
9f6e2339 135472015-01-12 Sandra Loosemore <sandra@codesourcery.com>
13548
13549 * doc/invoke.texi ([-Wbad-function-cast]): Rewrite to avoid confusing
13550 example.
89e2ddc9 13551
e031f282 135522015-01-12 Jakub Jelinek <jakub@redhat.com>
13553
74e83cd5 13554 PR tree-optimization/64563
13555 * tree-vrp.c (vrp_evaluate_conditional): Check for VR_RANGE
13556 instead of != VR_VARYING.
13557
a7816469 13558 PR target/64513
13559 * config/i386/i386.c (ix86_expand_prologue): Add
13560 REG_FRAME_RELATED_EXPR to %rax and %r10 pushes.
13561
dbecfd54 13562 PR tree-optimization/64454
13563 * tree-vrp.c (simplify_div_or_mod_using_ranges): Optimize
13564 op0 % op1 into op0 if op0 is in range [-op1 + 1, op1 - 1]
13565 for signed or [0, op1 - 1] for unsigned modulo.
13566 (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
13567 even if op1 does not satisfy integer_pow2p.
13568
e031f282 13569 PR other/64370
13570 * sreal.c (sreal::to_double): Use ldexp instead of scalbnl.
13571
7a5fbc9c 135722015-01-12 Jeff Law <law@redhat.com>
13573
423c20f0 13574 PR target/64461
9680dd14 13575 * config/m68k/m68k.md (truncsiqi2): Disable for TARGET_COLDFIRE.
13576 (trunchiqi2, truncsihi2): Similarly.
13577
7a5fbc9c 13578 * config/h8300/h8300.c (Fpa): Use RTX_FRAME_RELATED_P directly
13579 rather than calling F.
13580
5a17c7cc 135812015-01-12 Bernd Edlinger <bernd.edlinger@hotmail.de>
13582
13583 * tsan.c (instrument_expr): Use force_gimple_operand.
13584 Use may_be_nonaddressable_p instead of is_gimple_addressable.
13585
b34b273b 135862015-01-12 Richard Biener <rguenther@suse.de>
13587
13588 PR tree-optimization/64530
13589 * tree-loop-distribution.c (pg_add_dependence_edges): Shuffle
13590 back dr1.
13591
88120a34 135922015-01-12 Richard Biener <rguenther@suse.de>
13593
13594 PR middle-end/64357
13595 * tree-cfg.c (gimple_can_merge_blocks_p): Protect simple
13596 latches properly.
13597
56363b23 135982015-01-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13599
13600 * config/arm/arm.c (arm_cortex_a12_tune): Update entries to match
13601 Cortex-A17 tuning parameters.
13602 * config/arm/arm-cores.def (cortex-a12): Schedule for cortex-a17.
13603
1407d0e8 136042015-01-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13605
13606 * config/arm/arm-protos.h (tune_params): Add fuseable_ops field.
13607 * config/arm/arm.c (arm_macro_fusion_p): New function.
13608 (arm_macro_fusion_pair_p): Likewise.
13609 (TARGET_SCHED_MACRO_FUSION_P): Define.
13610 (TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
13611 (ARM_FUSE_NOTHING): Likewise.
13612 (ARM_FUSE_MOVW_MOVT): Likewise.
13613 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune,
13614 arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune,
13615 arm_cortex_a8_tune, arm_cortex_a7_tune, arm_cortex_a15_tune,
13616 arm_cortex_a53_tune, arm_cortex_a57_tune, arm_cortex_a9_tune,
13617 arm_cortex_a12_tune, arm_v7m_tune, arm_v6m_tune, arm_fa726te_tune
13618 arm_cortex_a5_tune): Specify fuseable_ops value.
13619
32f62b18 136202015-01-12 H.J. Lu <hongjiu.lu@intel.com>
13621
13622 PR bootstrap/64561
13623 * configure.ac (HAVE_LD_PIE_COPYRELOC): Update Linux/x86-64 linker
13624 test for PIE with copy reloc.
13625 * configure: Regenerated.
13626
35d8220c 136272015-01-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
e62d0db9 13628
13629 * config/arm/arm.c (arm_load_tp): Use R0_REGNUM instead of constant 0
13630 in gen_rtx_REG.
13631 (arm_tls_descseq_addr): Likewise.
13632 (arm_gen_movmemqi): Likewise.
13633 (arm_expand_epilogue_apcs_frame): Likewise.
13634 (arm_expand_epilogue): Likewise.
13635 (arm_expand_prologue): Likewise. Use R1_REGNUM instead of constant 1
13636 in gen_rtx_REG.
13637
810430af 136382015-01-12 Martin Liska <mliska@suse.cz>
13639
13640 PR ipa/64550
13641 * ipa-icf-gimple.c (func_checker::compare_memory_operand): Compare
13642 volatility for correct operands.
13643
136442015-01-12 Martin Liska <mliska@suse.cz>
13645
13646 * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as indication
13647 that a function is not leaf.
13648 (sem_function::compare_polymorphic_p): Likewise.
13649
7b774922 136502015-01-12 Martin Liska <mliska@suse.cz>
13651
13652 * ipa-icf.c (sem_function::equals_wpa): Add indirect_calls as indication
13653 that a function is not leaf.
13654 (sem_function::compare_polymorphic_p): Likewise.
13655
41eaccd7 136562015-01-12 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
13657
13658 * config/visium/visium.c: Add includes hashtab.h, hash-set.h,
13659 machmode.h, input.h, statistics.h, vec.h, double-int.h, real.h,
13660 fixed-value.h, alias.h, symtab.h, tree-core.h, wide-int.h, inchash.h,
13661 fold-const.h, tree-check.h.
13662
1d77f63b 136632015-01-12 Jan Hubicka <hubicka@ucw.cz>
13664
13665 PR ipa/63967
13666 PR ipa/64425
13667 * ipa-inline.c (compute_uninlined_call_time,
13668 compute_inlined_call_time): Use counts for extra precision when
13669 needed possible.
13670 (big_speedup_p): Fix formating.
13671 (RELATIVE_TIME_BENEFIT_RANGE): Remove.
13672 (relative_time_benefit): Remove.
13673 (edge_badness): Turn DECL_DISREGARD_INLINE_LIMITS into hint;
13674 merge guessed and read profile paths.
13675 (inline_small_functions): Count only !optimize_size functions into
13676 initial size; be more lax about sanity check when profile is used;
13677 be sure to update inlined function profile when profile is read.
13678
1a92a535 136792015-01-12 Jan Hubicka <hubicka@ucw.cz>
13680
13681 PR ipa/63470
13682 * ipa-inline-analysis.c (inline_edge_duplication_hook): Adjust
13683 cost when edge becomes direct.
13684 * ipa-prop.c (make_edge_direct): Do not adjust when speculation
13685 is resolved or when introducing new speculation.
13686
175a3ae1 136872015-01-12 Chen Gang <gang.chen.5i5j@gmail.com>
13688
175a3ae1 13689 PR ipa/64551
13690 PR ipa/64552
13691 * ipa-icf.c (sem_function::equals_private): Use '&&' instead of
13692 '||' to fix typo issue.
13693
13694 * gcc/tree.h (target_opts_for_fn): Check NULL_TREE since it can
13695 accept and return NULL.
13696
c308ecc8 136972015-01-12 Martin Liska <mliska@suse.cz>
13698
13699 * cgraph.c (cgraph_edge::remove_callee): Move function to header
13700 file for being inlined.
13701 (cgraph_set_edge_callee): Delete.
13702 (cgraph_edge::redirect_callee): Move function to header file
13703 for being inlined.
13704 (cgraph_edge::make_direct): Use new function.
13705 (cgraph_edge::dump_edge_flags): New function created from
13706 static dump_edge_flags function.
13707 (cgraph_node::dump): Use new function.
13708 (cgraph_edge::verify_count_and_frequency): New function created
13709 from verify_edge_count_and_frequency.
13710 (cgraph_edge::verify_corresponds_to_fndecl): New function created
13711 from verify_edge_corresponds_to_fndecl.
13712 (verify_edge_corresponds_to_fndecl): Delete.
13713 (cgraph_node::verify_node): Use new function.
13714 * cgraph.h (cgraph_edge::set_callee): New function.
13715 (cgraph_edge::dump_edge_flags): Likewise.
13716 (cgraph_edge::verify_corresponds_to_fndecl): Likewise.
13717
549519dd 137182015-01-11 Jan Hubicka <hubicka@ucw.cz>
13719
13720 * ipa-utils.c (estimate_function_body_sizes): Do not
13721 free node params when called late with early=true.
13722
efdbd62c 137232015-01-11 James Greenhalgh <james.greenhalgh@arm.com>
13724
13725 * doc/md.texi (Instruction Patterns): Rewrite text for
13726 clarity.
13727 (Example): Likewise.
13728
b5d95b9b 137292015-01-10 Sandra Loosemore <sandra@codesourcery.com>
13730
13731 * doc/invoke.texi (Option Summary): Break long lines.
13732 [(-fdiagnostics-color)]: Put long literal in @smallexample
13733 instead of inline.
13734 [(-fsanitize-recover)]: Likewise.
13735 [(-fdump-rtl-split*)]: Rewrite to fix over-full hbox.
13736 [(-ffast-math)]: Likewise.
13737 [(--param max-inline-insns-recursive)]: Likewise.
13738 [(--param max-inline-recursive-depth)]: Likewise.
13739 [(-mno-text-section-literals)]: Likewise.
89e2ddc9 13740
c35c9a62 137412015-01-10 Thomas Schwinge <thomas@codesourcery.com>
13742
13743 * doc/install.texi: Update for libgomp being renamed from "GNU
13744 OpenMP Runtime Library" to "GNU Offloading and Multi Processing
13745 Runtime Library".
13746 * doc/sourcebuild.texi: Likewise.
13747
83d8a9ab 137482015-01-10 Anthony Green <green@moxielogic.com>
13749
13750 * config/moxie/moxie.c (moxie_option_override): Fix forcing of
13751 mul.x availability for moxiebox configuration.
13752
d28cb33b 137532015-01-09 Anthony Green <green@moxielogic.com>
13754
13755 * config/moxie/moxie.md: Tabify assembly output.
13756
b1a967b2 137572015-01-09 Anthony Green <green@moxielogic.com>
13758
13759 * config/moxie/moxie.md (CC_REG): Correct register definition.
13760
a606234e 137612015-01-09 Sandra Loosemore <sandra@codesourcery.com>
13762
13763 * doc/invoke.texi ([-fvtable-verify]): Copy-edit and fix markup.
13764 ([-fvtv-debug], [-fvtv-counts]): Likewise. Correct location
13765 of log files.
13766
0f369cfe 137672015-01-09 Andreas Tobler <andreast@gcc.gnu.org>
13768
13769 * config/arm/arm.h (MAX_SYNC_LIBFUNC_SIZE): Delete semicolon.
13770
ba000093 137712015-01-09 Bernd Schmidt <bernds@codesourcery.com>
13772 Jakub Jelinek <jakub@redhat.com>
13773
13774 PR middle-end/64412
13775 * lto-streamer.h (lto_stream_offload_p): New declaration.
13776 * lto-streamer.c (lto_stream_offload_p): New variable.
13777 * cgraphunit.c (ipa_passes): Set lto_stream_offload_p
13778 at the same time as section_name_prefix.
13779 * lto-streamer-out.c (hash_tree): Don't hash TREE_TARGET_OPTION
13780 if lto_stream_offload_p.
13781 * tree-streamer-out.c (streamer_pack_tree_bitfields): Don't
13782 stream TREE_TARGET_OPTION if lto_stream_offload_p.
13783 (write_ts_function_decl_tree_pointers): Don't
13784 stream DECL_FUNCTION_SPECIFIC_TARGET if lto_stream_offload_p.
13785 * tree-streamer-in.c (unpack_value_fields): Don't stream
13786 TREE_TARGET_OPTION in if ACCEL_COMPILER.
13787 (lto_input_ts_function_decl_tree_pointers): Don't stream
13788 DECL_FUNCTION_SPECIFIC_TARGET in if ACCEL_COMPILER.
13789 * lto-opts.c (lto_write_options): Use lto_stream_offload_p
13790 instead of section_name_prefix string comparisons.
13791
1f78217c 137922015-01-09 Jakub Jelinek <jakub@redhat.com>
13793
13794 PR rtl-optimization/64536
13795 * cfgrtl.c (rtl_tidy_fallthru_edge): Handle removal of degenerate
13796 tablejumps.
13797
b20a8bb4 137982015-01-09 Michael Collison <michael.collison@linaro.org>
1f78217c 13799
f070b34d 13800 PR tree-optimization/64322
13801 * tree-vrp.c (extract_range_from_binary_expr_1): Attempt to derive
13802 range for RSHIFT_EXPR even if vr0 range is not VR_RANGE or is symbolic.
13803
9c4a0128 138042015-01-09 Tom de Vries <tom@codesourcery.com>
13805
13806 PR rtl-optimization/64539
13807 * regcprop.c (kill_clobbered_values): Factor out of ...
13808 (copyprop_hardreg_forward_1): ... here. Use kill_clobbered_values
13809 instead of note_stores with kill_clobbered_value.
13810
0375cff7 138112015-01-09 Andreas Tobler <andreast@gcc.gnu.org>
13812
13813 * ginclude/unwind-arm-common.h: Revert previous commit.
13814
275d0a7c 138152015-01-09 Andreas Tobler <andreast@gcc.gnu.org>
13816
13817 * config.gcc (arm*-*-freebsd*): New configuration.
13818 * config/arm/freebsd.h: New file.
13819 * config.host: Add extra components for arm*-*-freebsd*.
13820 * config/arm/arm.h: Introduce MAX_SYNC_LIBFUNC_SIZE.
13821 * config/arm/arm.c (arm_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE.
13822
9fda4277 138232015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
13824
13825 * config/rs6000/rtems.h (CPP_OS_RTEMS_SPEC): Define __PPC_CPU_E6500__
13826 for -mcpu=e6500.
13827 * config/rs6000/t-rtems: Add e6500 multilibs.
13828
53ba535c 138292015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
13830
13831 * config/rs6000/t-rtems: Add -mno-spe to soft-float multilib for
13832 MPC8540.
13833
3be5524a 138342015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
13835
13836 * config/rs6000/t-rtems: Use MULTILIB_REQUIRED instead of
13837 MULTILIB_EXCEPTIONS.
13838
61af80a9 138392015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
13840
13841 * config/arm/t-rtems: Use MULTILIB_REQUIRED instead of
13842 MULTILIB_EXCEPTIONS.
13843
b5404134 138442015-01-09 Sebastian Huber <sebastian.huber@embedded-brains.de>
13845
13846 * config/arm/t-rtems-eabi: Rename to...
13847 * config/arm/t-rtems: ...this.
13848 * config/arm/rtems-eabi.h: Rename to...
13849 * config/arm/rtems.h: ...this.
13850 * config.gcc (arm*-*-rtems*): Reflect changes above.
13851
e3c6a1ed 138522015-01-09 Richard Biener <rguenther@suse.de>
13853
13854 PR tree-optimization/64410
13855 * tree-ssa.c (non_rewritable_lvalue_p): Allow REALPART/IMAGPART_EXPR
13856 on the LHS.
13857 (execute_update_addresses_taken): Deal with that.
13858 * tree-ssa-forwprop.c (pass_forwprop::execute): Use component-wise
13859 loads/stores for complex variables.
13860
05e3f053 138612015-01-09 Martin Liska <mliska@suse.cz>
13862
13863 * ipa-icf-gimple.c (func_checker::compare_ssa_name): Enhance SSA
13864 name comparison.
13865 (func_checker::compare_memory_operand): New function.
13866 (func_checker::compare_operand): Split case to newly
13867 added functions.
13868 (func_checker::compare_cst_or_decl): New function.
13869 (func_checker::compare_gimple_call): Identify
13870 memory operands.
13871 (func_checker::compare_gimple_assign): Likewise.
13872 * ipa-icf-gimple.h: New function.
13873
04478c40 138742015-01-09 Martin Liska <mliska@suse.cz>
13875
13876 PR ipa/64503
13877 * sreal.c (sreal::dump): Change unsigned format to signed for
13878 m_exp value.
13879 (sreal::to_double): Replace exp2 with scalbln.
13880
275e2756 138812015-01-09 Martin Liska <mliska@suse.cz>
13882
13883 * cgraphunit.c (cgraph_node::create_wrapper): Fix level of indentation.
13884 * ipa-icf.c (sem_function::equals_private): Add support for target and
13885 (sem_item_optimizer::merge_classes): Remove redundant function
13886 optimization flags comparison.
13887 * tree.h (target_opts_for_fn): New function.
13888
a6f1094f 138892015-01-09 Tom de Vries <tom@codesourcery.com>
13890
13891 * omp-low.c (expand_omp_for_static_chunk): Fix assert.
13892
52793acd 138932015-01-09 Kito Cheng <kito@0xlab.org>
13894
13895 PR rtl-optimization/64348
13896 * lra-constraints.c (split_reg): Fix caller-save store/restore
13897 instruction generation.
13898
f404fe25 138992015-01-08 John David Anglin <danglin@gcc.gnu.org>
13900
13901 PR gcov-profile/61790
13902 * gcov-tool.c (do_rewrite): Use strtoll instead of atoll if host has
13903 long long. Fallback to int64_t if host doesn't have long long and
13904 use strtol if int64_t is long. Otherwise, use sscanf for conversion.
13905
17853422 139062015-01-08 Jakub Jelinek <jakub@redhat.com>
13907
150a0f7d 13908 PR tree-optimization/63989
13909 * params.def (PARAM_MAX_TRACKED_STRLENS): Increment default
13910 from 1000 to 10000.
13911 * tree-ssa-strlen.c (get_strinfo): Moved earlier.
13912 (get_stridx): If we don't have a record for certain SSA_NAME,
13913 but it is POINTER_PLUS_EXPR of some SSA_NAME we do with
13914 constant offset, call get_stridx_plus_constant.
13915 (get_stridx_plus_constant): New function.
13916 (zero_length_string): Don't use get_stridx here.
13917
17853422 13918 PR target/55023
13919 PR middle-end/64388
13920 * dse.c (struct insn_info): Mention frame_read set also
13921 before reload for tail calls on some targets.
13922 (scan_insn): Revert 2014-12-22 change. Set frame_read
13923 also before reload for tail calls if
13924 HARD_FRAME_POINTER_IS_ARG_POINTER. Call add_wild_read
13925 instead of add_non_frame_wild_read for non-const/memset
13926 tail calls after reload.
13927
411b7663 139282015-01-08 Jason Merrill <jason@redhat.com>
13929
13930 * ubsan.c (do_ubsan_in_current_function): New.
13931 (pass_ubsan::gate): Use it.
13932 * ubsan.h: Declare it.
13933 * convert.c (convert_to_integer): Use it.
13934
6a1b0694 139352015-01-08 Jakub Jelinek <jakub@redhat.com>
13936
13937 PR target/64338
13938 * config/i386/i386.c (ix86_expand_int_movcc): Don't reverse
13939 compare_code when it is unconditionally overwritten afterwards.
13940 Use ix86_reverse_condition instead of reverse_condition. Don't
13941 change code if *reverse_condition* returned UNKNOWN and don't
13942 swap ct/cf and negate diff in that case.
13943
d1e96383 139442015-01-08 Mike Stump <mikestump@comcast.net>
13945
13946 * tsan.c (pass_tsan::gate): Add no_sanitize_thread support.
13947 (pass_tsan_O0::gate): Likewise.
13948 * extend.texi (Function Attributes): Add no_sanitize_thread
13949 documentation.
13950
c049b358 139512015-01-08 Thomas Schwinge <thomas@codesourcery.com>
13952
752cfdfd 13953 * builtins.def (DEF_GOMP_BUILTIN): Also consider flag_offload_abi
13954 for registering builtins.
13955 * config/i386/intelmic-mkoffload.c (prepare_target_image): Don't
13956 add -fopenmp to the argv_obstack used when invoking
13957 compile_for_target.
13958
c049b358 13959 * config/i386/intelmic-mkoffload.c (compile_for_target): Always
13960 add "-m32" or "-m64" to argv_obstack.
13961 (generate_host_descr_file): Likewise, when invoking host_compiler.
13962 (main): Always add "-m elf_i386" or "-m elf_x86_64" when invoking
13963 ld.
13964
f07efc97 139652015-01-08 Oleg Endo <olegendo@gcc.gnu.org>
13966
13967 * config/sh/sh-mem.cc: Use constant as second operand when emitting
13968 tstsi_t insns.
13969
3795ffe4 139702015-01-08 Oleg Endo <olegendo@gcc.gnu.org>
13971
13972 PR target/55212
13973 * config/sh/sh.md (*addsi3_compact): Emit reg-reg copy instead of
13974 constant load if constant operand fits into I08.
13975
18e2d12f 139762015-01-08 Jakub Jelinek <jakub@redhat.com>
13977
13978 PR sanitizer/64336
13979 * tree.c (build2_stat): Fix up initialization of TREE_READONLY
13980 and TREE_THIS_VOLATILE for MEM_REFs.
13981 (build5_stat): Fix up initialization of TREE_READONLY and
13982 TREE_THIS_VOLATILE for TARGET_MEM_REFs.
13983
c3f707fc 139842015-01-08 Kaz Kojima <kkojima@gcc.gnu.org>
13985
13986 PR target/64533
13987 * config/sh/sh.md (*addsi3_compact): Use u constraint instead
13988 of r for the second alternative of the destination operand.
13989
67d7e7e4 139902015-01-07 Segher Boessenkool <segher@kernel.crashing.org>
13991
13992 PR target/36557
13993 * config/rs6000/rs6000.md (*eqsi3_ext<mode>, *nesi3_ext<mode>): New.
13994
f4d72cb8 139952015-01-07 Sandra Loosemore <sandra@codesourcery.com>
13996
13997 * doc/invoke.texi ([-fvtable-verify]): Fix markup on option
13998 keywords.
13999 ([-fivar-visibility], [-fvisibility]): Likewise.
14000
6216a210 140012015-01-07 Sandra Loosemore <sandra@codesourcery.com>
14002
14003 * doc/invoke.texi: Fix incorrect uses of @samp markup throughout
14004 the file where @code, @command, etc is more appropriate.
14005
8b328301 140062015-01-06 Sandra Loosemore <sandra@codesourcery.com>
14007
14008 * doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
14009 of -mrecip= documentation.
14010
e9a133fc 140112015-01-06 Michael Meissner <meissner@linux.vnet.ibm.com>
14012
14013 PR target/64505
14014 * config/rs6000/rs6000.c (rs6000_secondary_reload): Return the
14015 correct reload handler if -m32 -mpowerpc64 is used.
14016
ee5b36af 140172015-01-06 Tom de Vries <tom@codesourcery.com>
14018
14019 * tree-ssa-tail-merge.c: Fix typo in struct same_succ_def comment.
14020
7756601d 140212015-01-08 Christian Bruel <christian.bruel@st.com>
14022
14023 PR target/64507
14024 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Check 0 length.
14025
bbb9b536 140262015-01-06 Thomas Preud'homme <thomas.preudhomme@arm.com>
14027
14028 PR tree-optimization/63259
14029 * tree-ssa-math-opts.c (pass_optimize_bswap::execute): Stop checking
14030 if optab exists for 16bit byteswap.
14031
9b442f46 140322015-01-06 Jakub Jelinek <jakub@redhat.com>
14033
14034 * opts.c (common_handle_option): Add support for
14035 -fno-sanitize=all and -f{,no-}sanitize-recover=all.
14036 * doc/invoke.texi: Document -fno-sanitize=all,
14037 -f{,no-}sanitize-recover=all. Document that
14038 -fsanitize=float-cast-overflow is not enabled
14039 by -fsanitize=undefined. Fix up documentation
14040 of -f{,no-}sanitize-recover.
14041
8992df51 140422015-01-06 Eric Botcazou <ebotcazou@adacore.com>
14043
14044 * config.gcc: Add Visium support.
14045 * configure.ac: Likewise.
14046 * configure: Regenerate.
14047 * doc/extend.texi (interrupt attribute): Add Visium.
14048 * doc/invoke.texi: Document Visium options.
14049 * doc/install.texi: Document Visium target.
14050 * doc/md.texi: Document Visium constraints.
14051 * common/config/visium: New directory.
14052 * config/visium: Likewise.
14053
e377fe09 140542015-01-05 Segher Boessenkool <segher@kernel.crashing.org>
14055
14056 * simplify-rtx.c (simplify_binary_operation_1): Handle more cases
14057 for the "(and X (ior (not X) Y) -> (and X Y)" transform.
14058
87f350e9 140592015-01-05 Segher Boessenkool <segher@kernel.crashing.org>
14060
14061 * combine.c (combine_validate_cost): Do not count the cost of a
14062 split I2 twice. Do not display it twice in the dump, either.
14063
3e83d36a 140642015-01-05 Sandra Loosemore <sandra@codesourcery.com>
14065
14066 Revert parts of r219199.
14067 * doc/invoke.texi ([-Wliteral-suffix]): Restore markup on
14068 <inttypes.h>.
14069 ([-Wtraditional]): Restore markup on <limits.h>.
14070
678a4e3e 140712015-01-05 Trevor Saunders <tsaunders@mozilla.com>
14072
14073 PR c++/31397
14074 * doc/invoke.texi: Document -Wsuggest-override.
14075
def3bf8c 140762015-01-05 Radovan Obradovic <radovan.obradovic@imgtec.com>
14077
14078 PR rtl-optimization/64287
14079 * toplev.c (HAVE_epilogue, HAVE_prologue): Provide default.
14080 (process_options): Disable flag_ipa_ra if profiling.
14081
bb6966b7 140822015-01-05 Eric Botcazou <ebotcazou@adacore.com>
14083
14084 * config/nds32/nds32-peephole2.md: Do not mention define_peephole.
14085
140862015-01-05 Max Filippov <jcmvbkbc@gmail.com>
833dfc8b 14087
14088 * config/xtensa/xtensa.c (hwloop_optimize, hwloop_fail,
14089 hwloop_pattern_reg, xtensa_doloop_hooks, xtensa_reorg_loops):
14090 put under #if TARGET_LOOPS guard.
14091
e7b4e529 140922015-01-05 Uros Bizjak <ubizjak@gmail.com>
14093
14094 * config/i386/i386.c (output_387_binary_op): Use std::swap.
14095
2ec77a7c 140962015-01-05 Oleg Endo <olegendo@gcc.gnu.org>
14097
14098 * rtlanal.c (refers_to_regno_p): Change return value from int to bool.
14099 * rtl.h (refers_to_regno_p): Add overload.
14100 * cse.c: Use it.
14101 * bt-load.c: Likewise.
14102 * combine.c: Likewise.
14103 * df-scan.c: Likewise.
14104 * sched-deps.c: Likewise.
14105 * config/s390/s390.c: Likewise.
14106 * config/m32r/m32r.c: Likewise.
14107 * config/rs6000/spe.md: Likewise.
14108 * config/rs6000/rs6000.c: Likewise.
14109 * config/pa/pa.c: Likewise.
14110 * config/stormy16/stormy16.c: Likewise.
14111 * config/cris/cris.c: Likewise.
14112 * config/arc/arc.md: Likewise.
14113 * config/arc/arc.c: Likewise.
14114 * config/sh/sh.md: Likewise.
14115 * config/sh/sh.c: Likewise.
14116 * config/frv/frv.c: Likewise.
14117
d8a5b688 141182015-01-05 Jakub Jelinek <jakub@redhat.com>
14119
ed53cebe 14120 PR sanitizer/64265
14121 * gimplify.c (gimplify_function_tree): Add TSAN_FUNC_EXIT internal
14122 call as cleanup of the whole body.
14123 * internal-fn.def (TSAN_FUNC_EXIT): New internal call.
14124 * tsan.c (replace_func_exit): New function.
14125 (instrument_func_exit): Moved earlier.
14126 (instrument_memory_accesses): Adjust TSAN_FUNC_EXIT internal calls.
14127 Call instrument_func_exit if no TSAN_FUNC_EXIT internal calls have
14128 been found.
14129 (tsan_pass): Don't call instrument_func_exit.
14130 * internal-fn.c (expand_TSAN_FUNC_EXIT): New function.
14131 * tree-inline.c (copy_bb): Drop TSAN_FUNC_EXIT internal calls during
14132 inlining.
14133
823a9dd4 14134 PR sanitizer/64344
14135 * ubsan.h (ubsan_instrument_float_cast): Add ARG argument.
14136 * ubsan.c (ubsan_instrument_float_cast): Add ARG argument, pass
14137 it to libubsan handler instead of EXPR. Fold comparisons earlier,
14138 if the result is integer_zerop, return NULL_TREE.
14139 * convert.c (convert_to_integer): Pass expr as ARG.
14140
d8a5b688 14141 PR tree-optimization/64465
14142 * tree-inline.c (redirect_all_calls): During inlining
14143 clean up EH stmts and EH edges if redirect_call_stmt_to_callee
14144 changed the stmt to a non-throwing call.
14145
b9df7353 141462015-01-05 Sandra Loosemore <sandra@codesourcery.com>
14147
14148 * doc/invoke.texi: Fix incorrect uses of @code, @option, @samp,
14149 etc markup throughout the file.
14150
1ae41b1e 141512015-01-05 Bernd Edlinger <bernd.edlinger@hotmail.de>
14152
14153 Enable experimental TSAN support for Ada.
14154 * tsan.c (instrument_expr): Handle VIEW_CONVERT_EXPR.
14155
ccf6cffa 141562015-01-05 Jakub Jelinek <jakub@redhat.com>
14157
14158 PR tree-optimization/64494
14159 * tree-ssa-loop-im.c (move_computations_dom_walker::before_dom): Also
14160 clear SSA_NAME_ANTI_RANGE_P flag.
14161
c1fd7731 141622015-01-05 Marek Polacek <polacek@redhat.com>
14163
14164 * doc/extend.texi (Arrays of Length Zero): Add missing comma.
14165
9d2adcd7 141662015-01-05 Jakub Jelinek <jakub@redhat.com>
14167
d353bf18 14168 Update copyright years.
14169
e3afb61d 14170 * gcc.c (process_command): Update copyright notice dates.
14171 * gcov-dump.c: Ditto.
14172 * gcov.c: Ditto.
14173 * doc/cpp.texi: Bump @copying's copyright year.
14174 * doc/cppinternals.texi: Ditto.
14175 * doc/gcc.texi: Ditto.
14176 * doc/gccint.texi: Ditto.
14177 * doc/gcov.texi: Ditto.
14178 * doc/install.texi: Ditto.
14179 * doc/invoke.texi: Ditto.
14180
9d2adcd7 14181 * auto-profile.c, auto-profile.h: Fix up Copyright line.
14182
a57aa272 141832015-01-04 Sandra Loosemore <sandra@codesourcery.com>
14184
14185 * doc/invoke.texi ([-fsized-deallocation]): Copy-edit to fix
14186 verb tense, etc.
14187 ([-fvtable-verify], [-fvtv-debug]): Likewise.
14188 ([-Wabi]): Likewise.
14189 ([-fmessage-length]): Likewise.
14190 ([-Wsuggest-final-types], [-Wsuggest-final-methods]): Likewise.
14191 ([-Wno-discarded-qualifiers]): Likewise.
14192 ([-Wnodiscarded-array-qualifiers]): Likewise.
14193 ([-Wno-virtual-move-assign]): Likewise.
14194 ([-fsanitize=address], [-fsanitize=thread]): Likewise.
14195 ([-fsanitize=leak], [-fsanitize=undefined]): Likewise.
14196 ([-fsanitize=unreachable], [-fsanitize-recover]): Likewise.
14197 ([-fsanitize-undefined-trap-on-error]): Likewise.
14198 ([-floop-interchange]): Likewise.
14199 ([-ftree-coalesce-inlined-vars]): Likewise.
14200 ([-fvect-cost-model]): Likewise.
14201 ([-flto]): Likewise.
14202 ([--param]): Likewise.
14203 (Spec Files): Likewise.
14204 ([-mstrict-align]): Likewise.
14205 ([-mfix-cortex-a53-835769]): Likewise.
14206 ([-march], [-mtune]): Likewise.
14207 ([-mpic-register]): Likewise.
14208 ([-munaligned-access]): Likewise.
14209 ([-msp8]): Likewise.
14210 (EIND and Devices with more than 128 Ki Bytes of Flash): Likewise.
14211 (AVR Built-in Macros): Likewise.
14212 ([-mpreferred-stack-boundary]): Likewise.
14213 ([-mtune-crtl]): Likewise.
14214 ([-mashf]): Likewise.
14215 ([-mmcu=]): Likewise.
14216 ([-minrt]): Likewise.
14217 ([-maltivec], [-maltivec=be], [-maltivec=le]): Likewise.
14218 ([-mupper-regs]): Likewise.
14219 ([-matomic-model]): Likewise.
14220 ([-mdiv]): Likewise.
14221 ([-mzdcbranch]): Likewise.
14222 ([-mdisable-callt]): Likewise.
14223 ([-msoft-float]): Likewise.
14224 ([-m8byte-align]): Likewise.
14225 ([-fstack-reuse]): Likewise.
14226
8c4cc813 142272015-01-03 Sandra Loosemore <sandra@codesourcery.com>
14228
14229 * doc/invoke.texi ([-fprofile-generate], [-fprofile-use]):
14230 Fix markup, light copy-editing.
14231 ([-fauto-profile]): Rewrite to fix formatting and content
14232 problems.
14233
3c770735 142342015-01-03 Sandra Loosemore <sandra@codesourcery.com>
14235
14236 * doc/invoke.texi ([-fisolate-erroneous-paths-dereference]):
14237 Copy-edit description.
14238 ([-fisolate-erroneous-paths-attribute]): Likewise.
14239 * common.opt (fisolate-erroneous-paths-dereference):
14240 Copy-edit description.
14241 (fisolate-erroneous-paths-attribute): Likewise.
14242
5e5e0098 142432015-01-03 Sandra Loosemore <sandra@codesourcery.com>
14244
14245 * doc/invoke.texi ([-fsemantic-interposition]): Fix typos and
14246 tidy grammar.
14247
8d0a65c4 142482015-01-03 Sandra Loosemore <sandra@codesourcery.com>
14249
14250 * doc/invoke.texi ([-fplan9-extensions]): Add/fix @opindex.
14251 ([-fvtv-debug]): Likewise.
14252 ([-Wc++-compat]): Likewise.
14253 ([-Wc++11-compat]): Likewise.
14254 ([-Wc++14-compat]): Likewise.
14255 ([-Wno-sized-deallocation]): Likewise.
14256 ([-femit-class-debug-always]): Likewise.
14257 ([-femit-struct-debug-detailed]): Likewise.
14258 ([-fno-keep-inline-dllexport]): Likewise.
14259 ([-fira-algorithm]): Likewise.
14260 ([-fira-region]): Likewise.
14261 ([-flra-remat]): Likewise.
14262 ([-fipa-ra]): Likewise.
14263 ([-fhoist-adjacent-loads]): Likewise.
14264 ([-fisolate-erroneous-paths-dereference]): Likewise.
14265 ([-fisolate-erroneous-paths-attribute]): Likewise.
14266 ([-ftree-switch-conversion]): Likewise.
14267 ([-ftree-tail-merge]): Likewise.
14268 ([-ftree-loop-if-convert]): Likewise.
14269 ([-ftree-loop-if-convert-stores]): Likewise.
14270 ([-ftree-loop-distribution]): Likewise.
14271 ([-ftree-loop-distribute-patterns]): Likewise.
14272 ([-flto-compression-level]): Likewise.
14273 ([-flto-report]): Likewise.
14274 ([-flto-report-wpa]): Likewise.
14275 ([-fuse-linker-plugin]): Likewise.
14276 ([-mfix-cortex-a53-835769]): Likewise.
14277 ([-mno-fix-cortex-a53-835769]): Likewise.
14278 ([-mmmx]...[-mno-3dnow]): Remove the -mno- forms from the
14279 explicit listing; add a note to the discussion indicating they
14280 exist. Reorder table to group similar options. Add missing
14281 @opindex entries. Add @need commands throughout the table to
14282 allow it to be split across multiple pages.
14283 ([-m8bit-idiv]): Fix @opindex.
14284 ([-mavx256-split-unaligned-load]): Likewise.
14285 ([-mavx256-split-unaligned-store]): Likewise.
14286 ([-mstack-protector-guard]): Likewise.
14287 ([-mcpu=]): Likewise.
14288 ([-mcpu]): Likewise.
14289 ([-mpointer-size=]): Likewise.
14290
cbd0ca2f 142912015-01-03 John David Anglin <danglin@gcc.gnu.org>
14292
14293 * config/pa/pa.md (decrement_and_branch_until_zero): Use `Q' constraint
14294 instead of `m' constraint. Likewise for unnamed movb comparison
14295 patterns using reg_before_reload_operand predicate.
14296 * config/pa/predicates.md (reg_before_reload_operand): Tighten
14297 predicate to reject register index and LO_SUM DLT memory forms
14298 after reload.
e7b4e529 14299
27f6a8a0 143002015-01-02 Sandra Loosemore <sandra@codesourcery.com>
14301
14302 * doc/invoke.texi (Option Summary): Fix spelling of
14303 -fdevirtualize-at-ltrans.
14304 ([-fdevirtualize]): Fix markup.
14305 ([-fdevirtualize-speculatively]): Fix typo.
14306 ([-fdevirtualize-at-ltrans]): Likewise. Make description less
14307 implementor-speaky.
14308 * common.opt (fdevirtualize-at-ltrans): Likewise.
14309 * ipa-devirt.c: Fix typos in comments throughout the file.
14310 (ipa_devirt): Fix typos in format strings for dump output.
14311
6ed08c42 143122015-01-02 Sandra Loosemore <sandra@codesourcery.com>
14313
14314 * doc/invoke.texi ([-fopt-info]): Fix markup, consolidate
14315 discussion of defaults, light copy-editing.
14316
71f0663f 143172015-01-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
14318
14319 * tsan.c (instrument_expr): corrected previous checkin.
14320
831b9bed 143212015-01-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
14322
14323 Instrument bit field and unaligned accesses for TSAN.
14324 * sanitizer.def (BUILT_IN_TSAN_READ_RANGE): New built-in function.
14325 (BUILT_IN_TSAN_WRITE_RANGE): New built-in function.
14326 * tsan.c (instrument_expr): Handle COMPONENT_REF and BIT_FIELD_REF.
14327 Use BUILT_IN_TSAN_READ_RANGE and BUILT_IN_TSAN_WRITE_RANGE for
14328 unaligned memory regions.
14329
e64e0023 143302015-01-01 Anthony Green <green@moxielogic.com>
5e9ac72e 14331
e64e0023 14332 * config/moxie/predicates.md (moxie_general_movsrc_operand):
14333 Restrict move source register offsets to 16 bits.
7dfbd804 14334\f
e64e0023 14335Copyright (C) 2015 Free Software Foundation, Inc.
7dfbd804 14336
14337Copying and distribution of this file, with or without modification,
14338are permitted in any medium without royalty provided the copyright
14339notice and this notice are preserved.