]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
gcc/ada/
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
8c53c46c 12013-11-20 Kenneth Zadeck <zadeck@naturalbridge.com>
2 Mike Stump <mikestump@comcast.net>
3 Richard Sandiford <rdsandiford@googlemail.com>
4
5 * alias.c (ao_ref_from_mem): Use tree_to_shwi and tree_to_uhwi
6 instead of TREE_INT_CST_LOW, in cases where there is a protecting
7 tree_fits_shwi_p or tree_fits_uhwi_p.
8 * builtins.c (fold_builtin_powi): Likewise.
9 * config/epiphany/epiphany.c (epiphany_special_round_type_align):
10 Likewise.
11 * dbxout.c (dbxout_symbol): Likewise.
12 * expr.c (expand_expr_real_1): Likewise.
13 * fold-const.c (fold_single_bit_test, fold_plusminus_mult_expr)
14 (fold_binary_loc): Likewise.
15 * gimple-fold.c (fold_const_aggregate_ref_1): Likewise.
16 * gimple-ssa-strength-reduction.c (stmt_cost): Likewise.
17 * omp-low.c (lower_omp_for_lastprivate): Likewise.
18 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
19 * stor-layout.c (compute_record_mode): Likewise.
20 * tree-cfg.c (verify_expr): Likewise.
21 * tree-dfa.c (get_ref_base_and_extent): Likewise.
22 * tree-pretty-print.c (dump_array_domain): Likewise.
23 * tree-sra.c (build_user_friendly_ref_for_offset): Likewise.
24 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Likewise.
25 * tree-ssa-loop-ivopts.c (get_loop_invariant_expr_id): Likewise.
26 * tree-ssa-math-opts.c (execute_cse_sincos): Likewise.
27 * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
28 * tree-ssa-reassoc.c (acceptable_pow_call): Likewise.
29 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
30 (ao_ref_init_from_vn_reference, vn_reference_fold_indirect): Likewise.
31 (vn_reference_lookup_3, simplify_binary_expression): Likewise.
32 * tree-ssa-structalias.c (bitpos_of_field): Likewise.
33 (get_constraint_for_1, push_fields_onto_fieldstack): Likewise.
34 (create_variable_info_for_1): Likewise.
35 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Likewise.
36 (vect_verify_datarefs_alignment): Likewise.
37 (vect_analyze_data_ref_accesses): Likewise.
38 (vect_prune_runtime_alias_test_list): Likewise.
39 * tree-vectorizer.h (NITERS_KNOWN_P): Likewise.
40
dd49bf5f 412013-11-20 Richard Sandiford <rdsandiford@googlemail.com>
42
43 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Avoid signed
44 overflow. Use tree_to_shwi.
45
93792486 462013-11-20 Richard Sandiford <rdsandiford@googlemail.com>
47
48 * fold-const.c (fold_binary_loc): Use unsigned rather than signed
49 HOST_WIDE_INTs when folding (x >> c) << c.
50
91dfd73e 512013-11-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
52 Dominik Vogt <vogt@linux.vnet.ibm.com>
53
54 * config/s390/s390.c (s390_canonicalize_comparison): Don't fold
55 int comparisons with an out of range condition code.
56 (s390_optimize_nonescaping_tx): Skip empty BBs.
57 Generate the new tbegin RTX when removing the FPR clobbers (with
58 two SETs).
59 (s390_expand_tbegin): Fix the retry loop counter. Copy CC to the
60 result before doing the retry calculations.
61 (s390_init_builtins): Make tbegin "returns_twice" and tabort
62 "noreturn".
63 * config/s390/s390.md (UNSPECV_TBEGIN_TDB): New constant used for
64 the TDB setting part of an tbegin.
65 ("tbegin_1", "tbegin_nofloat_1"): Add a set for the TDB.
66 ("tx_assist"): Set unused argument to an immediate zero instead of
67 loading zero into a GPR and pass it as argument.
68 * config/s390/htmxlintrin.h (__TM_simple_begin, __TM_begin):
69 Remove inline and related attributes.
70 (__TM_nesting_depth, __TM_is_user_abort, __TM_is_named_user_abort)
71 (__TM_is_illegal, __TM_is_footprint_exceeded)
72 (__TM_is_nested_too_deep, __TM_is_conflict): Fix format value
73 check.
74
5a91aea7 752013-11-20 Richard Biener <rguenther@suse.de>
76
77 PR lto/59035
78 * lto-opts.c (lto_write_options): Write defaults only if
79 they were not explicitely specified. Also write
80 -ffp-contract default.
81 * lto-wrapper.c (merge_and_complain): Merge -ffp-contract
82 conservatively.
83 (run_gcc): Pass through -ffp-contract.
84
c40bb434 852013-11-20 Jan-Benedict Glaw <jbglaw@lug-owl.de>
86
87 * config/mips/mips.c (r10k_simplify_address): Eliminate macro usage.
88
23b58627 892013-11-20 James Greenhalgh <james.greenhalgh@arm.com>
90
91 * gcc/config/aarch64/aarch64-builtins.c
92 (aarch64_simd_itype): Remove.
93 (aarch64_simd_builtin_datum): Remove itype, add
94 qualifiers pointer.
95 (VAR1): Use qualifiers.
96 (aarch64_build_scalar_type): New.
97 (aarch64_build_vector_type): Likewise.
98 (aarch64_build_type): Likewise.
99 (aarch64_init_simd_builtins): Refactor, remove special cases,
100 consolidate main loop.
101 (aarch64_simd_expand_args): Likewise.
102
ca9d7d74 1032013-11-19 Joshua J Cogliati <jrincayc@yahoo.com>
104
105 PR c/53001
c00da7a3 106 * doc/invoke.texi: Adding documentation about -Wfloat-conversion.
ca9d7d74 107
c00da7a3 1082013-11-19 Miro Kropacek <miro.kropacek@gmail.com>
aafc6adb 109
110 * config/m68k/m68k.c (m68k_option_overrides): Fix typo.
111
a98fbfde 1122013-11-19 David Malcolm <dmalcolm@redhat.com>
113
114 * gdbhooks.py (VecPrinter): New class, for prettyprinting pointers
115 to "vec<>" instances.
116 (build_pretty_printer): Register the vec<>* prettyprinter.
117
9b011777 1182013-11-19 David Malcolm <dmalcolm@redhat.com>
119
120 * gdbhooks.py (GdbSubprinter.__init__): Drop str_type_ field.
121 (GdbSubprinter.handles_type): New.
122 (GdbSubprinterTypeList): New subclass of GdbSubprinter.
123 (GdbSubprinterRegex): New subclass of GdbSubprinter.
124 (GdbPrettyPrinters.add_printer): Remove in favor of...
a8274722 125 (GdbPrettyPrinters.add_printer_for_types): ...this new method and...
9b011777 126 (GdbPrettyPrinters.add_printer_for_regex): ...this other new method.
127 (GdbPrettyPrinters.__call__): Update search for subprinter
128 to use handles_type method.
129 (build_pretty_printer): Update registration of subprinters to
130 use the new API above, supporting multiple spelling of each type,
131 and allowing for future regex-based subprinters.
132
fd37483d 1332013-11-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
134
135 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Adjust
136 V16QI vector splat case for little endian.
137
1b83778e 1382013-11-19 Jeff Law <law@redhat.com>
559685be 139
140 * tree-ssa-threadedge.c (thread_across_edge): After threading
a8274722 141 through a joiner, allow threading a normal block requiring duplication.
559685be 142
143 * tree-ssa-threadupdate.c (thread_block_1): Improve code to detect
144 jump threading requests that would muck up the loop structures.
145
1b83778e 146 * tree-ssa-threadupdate.c: Fix trailing whitespace.
147 * tree-ssa-threadupdate.h: Likewise.
148
69c149d1 1492013-11-19 Mike Stump <mikestump@comcast.net>
150
151 * gdbinit.in: Add pmz to print out mpz values.
152
76eca1df 1532013-11-20 Jan Hubicka <jh@suse.cz>
154
155 * common.opt (ffat-lto-objects): Disable by default.
156 * doc/invoke.texi (fat-lto-objects): Update documentation.
157 * opts.c: Enable fat-lto-objects on lto plugin disable setups.
158
7a19386f 1592013-11-19 Martin Jambor <mjambor@suse.cz>
160
161 PR rtl-optimization/59099
162 * ira.c (find_moveable_pseudos): Put back various analyses from ira()
163 here.
164 (ira): Move init_reg_equiv and call to
165 split_live_ranges_for_shrink_wrap up, remove analyses around call
166 to find_moveable_pseudos.
167
5881a7cb 1682013-11-20 Alan Modra <amodra@gmail.com>
169
170 * config/rs6000/sysv4.h (CC1_ENDIAN_LITTLE_SPEC): Define as empty.
171 * config/rs6000/rs6000.c (rs6000_option_override_internal): Default
172 to strict alignment on older processors when little-endian.
173 * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Default to power8
174 for ELFv2.
175
e4bb2b6e 1762013-11-19 Teresa Johnson <tejohnson@google.com>
177
178 * common/config/i386/i386-common.c: Enable
179 -freorder-blocks-and-partition at -O2 and up for x86.
180 * doc/invoke.texi: Update -freorder-blocks-and-partition default.
a8274722 181 * opts.c (finish_options): Only warn if
182 -freorder-blocks-and-partition was set on command line.
e4bb2b6e 183
ec614604 1842013-11-19 Sriraman Tallam <tmsriram@google.com>
185
186 * final.c (final_scan_insn): Emit a label for the split
187 cold function part. Label name is formed by suffixing
188 the original function name with "cold".
189
34154e27 1902013-11-19 David Malcolm <dmalcolm@redhat.com>
191
192 * basic-block.h (ENTRY_BLOCK_PTR_FOR_FUNCTION): Rename macro to...
193 (EXIT_BLOCK_PTR_FOR_FUNCTION): ...this.
194 (ENTRY_BLOCK_PTR_FOR_FN): Renamed macro to...
195 (EXIT_BLOCK_PTR_FOR_FN): ...this.
196 (ENTRY_BLOCK_PTR): Eliminate macro as work towards making uses of
197 cfun be explicit.
198 (EXIT_BLOCK_PTR): Likewise.
199 (FOR_ALL_BB): Rework for now to eliminate use of "ENTRY_BLOCK_PTR".
200 (FOR_ALL_BB_FN): Update for renaming of
201 "ENTRY_BLOCK_PTR_FOR_FUNCTION" to "ENTRY_BLOCK_PTR_FOR_FN".
202
203 * cfg.c (init_flow): Likewise.
204 (check_bb_profile): Likewise.
205 * cfganal.c (pre_and_rev_post_order_compute_fn): Likewise.
206 * cfgcleanup.c (walk_to_nondebug_insn): Likewise.
207 * cfghooks.c (account_profile_record): Likewise.
208 * cfgloop.c (init_loops_structure): Likewise.
209 * cgraphbuild.c (record_eh_tables): Likewise.
210 (compute_call_stmt_bb_frequency): Likewise.
211 * ipa-inline-analysis.c (compute_bb_predicates): Likewise.
212 * lto-streamer-in.c (input_cfg): Likewise.
213 * predict.c (maybe_hot_frequency_p): Likewise.
214 * tree-cfg.c (init_empty_tree_cfg_for_function): Likewise.
215 * tree-inline.c (initialize_cfun): Likewise.
216 (copy_cfg_body): Likewise.
217 (copy_body): Likewise.
218 (tree_function_versioning): Likewise.
219
220 * bb-reorder.c (add_labels_and_missing_jumps): Remove uses of macros:
221 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
222 (duplicate_computed_gotos): Remove usage of EXIT_BLOCK_PTR macro.
223 (find_rarely_executed_basic_blocks_and_crossing_edges): Remove uses of
224 macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
225 (connect_traces): Likewise.
226 (rest_of_handle_reorder_blocks): Remove usage of EXIT_BLOCK_PTR macro.
227 (bb_to_key): Remove usage of ENTRY_BLOCK_PTR macro.
228 (fix_crossing_conditional_branches): Remove usage of EXIT_BLOCK_PTR
229 macro.
230 (find_traces_1_round): Remove uses of macros: ENTRY_BLOCK_PTR,
231 EXIT_BLOCK_PTR.
232 (fix_up_fall_thru_edges): Remove usage of EXIT_BLOCK_PTR macro.
233 (find_traces): Remove usage of ENTRY_BLOCK_PTR macro.
234 (fix_up_crossing_landing_pad): Remove usage of EXIT_BLOCK_PTR macro.
235 (rotate_loop): Likewise.
236 * bt-load.c (migrate_btr_def): Remove usage of ENTRY_BLOCK_PTR macro.
237 * cfg.c (clear_aux_for_edges): Remove uses of macros: ENTRY_BLOCK_PTR,
238 EXIT_BLOCK_PTR.
239 (alloc_aux_for_edges): Likewise.
240 (clear_bb_flags): Remove usage of ENTRY_BLOCK_PTR macro.
241 (cached_make_edge): Remove uses of macros: ENTRY_BLOCK_PTR,
242 EXIT_BLOCK_PTR.
243 (compact_blocks): Likewise.
244 (clear_edges): Likewise.
245 * cfganal.c (single_pred_before_succ_order): Remove usage of
246 ENTRY_BLOCK_PTR macro.
247 (bitmap_union_of_succs): Remove usage of EXIT_BLOCK_PTR macro.
248 (bitmap_union_of_preds): Remove usage of ENTRY_BLOCK_PTR macro.
249 (bitmap_intersection_of_succs): Remove usage of EXIT_BLOCK_PTR macro.
250 (bitmap_intersection_of_preds): Remove usage of ENTRY_BLOCK_PTR macro.
251 (inverted_post_order_compute): Remove uses of macros: ENTRY_BLOCK_PTR,
252 EXIT_BLOCK_PTR.
a8274722 253 (compute_dominance_frontiers_1): Remove usage of ENTRY_BLOCK_PTR macro.
34154e27 254 (post_order_compute): Remove uses of macros: ENTRY_BLOCK_PTR,
255 EXIT_BLOCK_PTR.
a8274722 256 (connect_infinite_loops_to_exit): Remove usage of EXIT_BLOCK_PTR macro.
34154e27 257 (remove_fake_edges): Remove usage of ENTRY_BLOCK_PTR macro.
258 (add_noreturn_fake_exit_edges): Remove usage of EXIT_BLOCK_PTR macro.
259 (find_pdom): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
260 (remove_fake_exit_edges): Remove usage of EXIT_BLOCK_PTR macro.
261 (verify_edge_list): Remove uses of macros: ENTRY_BLOCK_PTR,
262 EXIT_BLOCK_PTR.
263 (print_edge_list): Likewise.
264 (create_edge_list): Likewise.
265 (find_unreachable_blocks): Remove usage of ENTRY_BLOCK_PTR macro.
266 (mark_dfs_back_edges): Remove uses of macros: ENTRY_BLOCK_PTR,
267 EXIT_BLOCK_PTR.
268 * cfgbuild.c (find_bb_boundaries): Remove usage of ENTRY_BLOCK_PTR
269 macro.
270 (find_many_sub_basic_blocks): Remove usage of EXIT_BLOCK_PTR macro.
271 (make_edges): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
272 * cfgcleanup.c (delete_unreachable_blocks): Likewise.
273 (try_optimize_cfg): Likewise.
274 (try_head_merge_bb): Remove usage of EXIT_BLOCK_PTR macro.
275 (try_crossjump_to_edge): Remove usage of ENTRY_BLOCK_PTR macro.
276 (try_crossjump_bb): Remove usage of EXIT_BLOCK_PTR macro.
277 (merge_blocks_move): Remove usage of ENTRY_BLOCK_PTR macro.
278 (outgoing_edges_match): Remove usage of EXIT_BLOCK_PTR macro.
279 (try_forward_edges): Likewise.
280 (try_simplify_condjump): Likewise.
281 * cfgexpand.c (gimple_expand_cfg): Remove uses of macros:
282 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
283 (construct_exit_block): Remove usage of EXIT_BLOCK_PTR macro.
284 (construct_init_block): Remove uses of macros: ENTRY_BLOCK_PTR,
285 EXIT_BLOCK_PTR.
286 (expand_gimple_basic_block): Remove usage of EXIT_BLOCK_PTR macro.
287 (expand_gimple_tailcall): Likewise.
288 * cfghooks.c (can_duplicate_block_p): Remove uses of macros:
289 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
290 (tidy_fallthru_edges): Likewise.
291 (verify_flow_info): Likewise.
292 * cfgloop.c (flow_bb_inside_loop_p): Likewise.
293 (num_loop_branches): Remove usage of EXIT_BLOCK_PTR macro.
a8274722 294 (disambiguate_multiple_latches): Remove usage of ENTRY_BLOCK_PTR macro.
34154e27 295 (get_loop_exit_edges): Remove usage of EXIT_BLOCK_PTR macro.
296 (bb_loop_header_p): Remove usage of ENTRY_BLOCK_PTR macro.
297 (get_loop_body_in_bfs_order): Remove usage of EXIT_BLOCK_PTR macro.
298 (get_loop_body_in_dom_order): Likewise.
299 (get_loop_body): Likewise.
300 * cfgloopanal.c (mark_irreducible_loops): Remove uses of macros:
301 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
302 * cfgloopmanip.c (create_preheader): Remove usage of ENTRY_BLOCK_PTR
303 macro.
304 (remove_path): Remove usage of EXIT_BLOCK_PTR macro.
305 (fix_bb_placement): Likewise.
306 * cfgrtl.c (rtl_block_empty_p): Remove uses of macros:
307 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
308 (rtl_can_remove_branch_p): Remove usage of EXIT_BLOCK_PTR macro.
309 (cfg_layout_split_edge): Remove uses of macros: ENTRY_BLOCK_PTR,
310 EXIT_BLOCK_PTR.
311 (rtl_flow_call_edges_add): Remove usage of EXIT_BLOCK_PTR macro.
312 (cfg_layout_can_merge_blocks_p): Remove uses of macros:
313 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
314 (cfg_layout_redirect_edge_and_branch): Remove usage of ENTRY_BLOCK_PTR
315 macro.
316 (fixup_fallthru_exit_predecessor): Remove uses of macros:
317 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
318 (fixup_reorder_chain): Likewise.
319 (relink_block_chain): Likewise.
320 (cfg_layout_delete_block): Remove usage of EXIT_BLOCK_PTR macro.
321 (rtl_verify_bb_layout): Remove usage of ENTRY_BLOCK_PTR macro.
322 (cfg_layout_duplicate_bb): Remove usage of EXIT_BLOCK_PTR macro.
323 (force_one_exit_fallthru): Likewise.
324 (rtl_verify_fallthru): Remove uses of macros: ENTRY_BLOCK_PTR,
325 EXIT_BLOCK_PTR.
326 (rtl_verify_edges): Likewise.
327 (commit_edge_insertions): Likewise.
328 (commit_one_edge_insertion): Likewise.
329 (rtl_split_edge): Likewise.
330 (force_nonfallthru_and_redirect): Likewise.
331 (outof_cfg_layout_mode): Remove usage of EXIT_BLOCK_PTR macro.
332 (skip_insns_after_block): Likewise.
333 (fixup_partition_crossing): Remove uses of macros: ENTRY_BLOCK_PTR,
334 EXIT_BLOCK_PTR.
335 (purge_dead_edges): Remove usage of EXIT_BLOCK_PTR macro.
336 (rtl_can_merge_blocks): Remove uses of macros: ENTRY_BLOCK_PTR,
337 EXIT_BLOCK_PTR.
338 (contains_no_active_insn_p): Likewise.
339 (emit_insn_at_entry): Remove usage of ENTRY_BLOCK_PTR macro.
340 (entry_of_function): Likewise.
341 (last_bb_in_partition): Remove usage of EXIT_BLOCK_PTR macro.
342 (fixup_new_cold_bb): Likewise.
343 (patch_jump_insn): Likewise.
344 (try_redirect_by_replacing_jump): Likewise.
345 (block_label): Likewise.
346 (could_fall_through): Likewise.
347 (can_fallthru): Likewise.
348 * cgraphbuild.c (cgraph_rebuild_references): Remove usage of
349 ENTRY_BLOCK_PTR macro.
350 (rebuild_cgraph_edges): Likewise.
351 * cgraphunit.c (init_lowered_empty_function): Remove uses of macros:
352 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
353 (expand_thunk): Remove usage of EXIT_BLOCK_PTR macro.
354 * combine.c (get_last_value): Remove usage of ENTRY_BLOCK_PTR macro.
355 (distribute_links): Remove usage of EXIT_BLOCK_PTR macro.
356 (get_last_value_validate): Remove usage of ENTRY_BLOCK_PTR macro.
357 (try_combine): Remove usage of EXIT_BLOCK_PTR macro.
358 (reg_num_sign_bit_copies_for_combine): Remove usage of ENTRY_BLOCK_PTR
359 macro.
360 (reg_nonzero_bits_for_combine): Likewise.
361 (set_nonzero_bits_and_sign_copies): Likewise.
362 (combine_instructions): Likewise.
363 * cprop.c (one_cprop_pass): Remove uses of macros: ENTRY_BLOCK_PTR,
364 EXIT_BLOCK_PTR.
365 (bypass_conditional_jumps): Likewise.
366 (bypass_block): Remove usage of EXIT_BLOCK_PTR macro.
367 (find_implicit_sets): Likewise.
368 (cprop_jump): Likewise.
369 * cse.c (cse_cc_succs): Likewise.
370 (cse_find_path): Likewise.
371 * df-problems.c (df_lr_confluence_0): Likewise.
372 * df-scan.c (df_entry_block_defs_collect): Remove usage of
373 ENTRY_BLOCK_PTR macro.
374 (df_exit_block_uses_collect): Remove usage of EXIT_BLOCK_PTR macro.
375 * dominance.c (iterate_fix_dominators): Remove usage of
376 ENTRY_BLOCK_PTR macro.
377 (calc_idoms): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
a8274722 378 (determine_dominators_for_sons): Remove usage of ENTRY_BLOCK_PTR macro.
34154e27 379 (calc_dfs_tree): Remove uses of macros: ENTRY_BLOCK_PTR,
380 EXIT_BLOCK_PTR.
381 (prune_bbs_to_update_dominators): Remove usage of ENTRY_BLOCK_PTR
382 macro.
383 (calc_dfs_tree_nonrec): Remove uses of macros: ENTRY_BLOCK_PTR,
384 EXIT_BLOCK_PTR.
385 * domwalk.c (cmp_bb_postorder): Likewise.
386 * dse.c (dse_step1): Remove usage of EXIT_BLOCK_PTR macro.
387 * except.c (finish_eh_generation): Remove usage of ENTRY_BLOCK_PTR
388 macro.
389 (sjlj_emit_function_enter): Likewise.
390 * final.c (compute_alignments): Likewise.
391 * function.c (thread_prologue_and_epilogue_insns): Remove uses of
392 macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
393 (reposition_prologue_and_epilogue_notes): Remove usage of
394 EXIT_BLOCK_PTR macro.
395 (convert_jumps_to_returns): Remove uses of macros: ENTRY_BLOCK_PTR,
396 EXIT_BLOCK_PTR.
397 (regno_clobbered_at_setjmp): Remove usage of ENTRY_BLOCK_PTR macro.
398 (next_block_for_reg): Remove usage of EXIT_BLOCK_PTR macro.
399 * gcse.c (hoist_code): Remove usage of ENTRY_BLOCK_PTR macro.
400 (update_bb_reg_pressure): Remove usage of EXIT_BLOCK_PTR macro.
401 (compute_code_hoist_vbeinout): Likewise.
402 (should_hoist_expr_to_dom): Remove usage of ENTRY_BLOCK_PTR macro.
403 (pre_expr_reaches_here_p_work): Likewise.
404 * gimple-iterator.c (gsi_commit_edge_inserts): Likewise.
405 (gimple_find_edge_insert_loc): Remove uses of macros: ENTRY_BLOCK_PTR,
406 EXIT_BLOCK_PTR.
407 * gimple-ssa-strength-reduction.c (slsr_process_phi): Remove usage of
408 ENTRY_BLOCK_PTR macro.
409 * graph.c (draw_cfg_nodes_for_loop): Remove usage of EXIT_BLOCK_PTR
410 macro.
411 * graphite-clast-to-gimple.c (translate_clast_user): Remove usage of
412 ENTRY_BLOCK_PTR macro.
413 * graphite-scop-detection.c (build_scops): Likewise.
414 (create_sese_edges): Remove usage of EXIT_BLOCK_PTR macro.
415 (scopdet_basic_block_info): Remove usage of ENTRY_BLOCK_PTR macro.
416 * haifa-sched.c (restore_bb_notes): Remove usage of EXIT_BLOCK_PTR
417 macro.
418 (unlink_bb_notes): Likewise.
419 (create_check_block_twin): Likewise.
420 (init_before_recovery): Likewise.
421 (sched_extend_bb): Likewise.
422 (priority): Likewise.
423 * hw-doloop.c (reorder_loops): Likewise.
424 (discover_loop): Likewise.
425 * ifcvt.c (dead_or_predicable): Remove uses of macros:
426 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
427 (find_if_case_1): Remove usage of EXIT_BLOCK_PTR macro.
428 (block_has_only_trap): Likewise.
429 (cond_exec_find_if_block): Likewise.
430 (merge_if_block): Likewise.
431 * ipa-inline-analysis.c (param_change_prob): Remove usage of
432 ENTRY_BLOCK_PTR macro.
433 (record_modified): Likewise.
434 * ipa-pure-const.c (execute_warn_function_noreturn): Remove usage of
435 EXIT_BLOCK_PTR macro.
436 (local_pure_const): Likewise.
437 * ipa-split.c (split_function): Remove uses of macros:
438 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
439 (find_split_points): Likewise.
440 (consider_split): Likewise.
441 (find_return_bb): Remove usage of EXIT_BLOCK_PTR macro.
442 (verify_non_ssa_vars): Remove usage of ENTRY_BLOCK_PTR macro.
443 * ira-build.c (ira_loop_tree_body_rev_postorder): Likewise.
a8274722 444 * ira-color.c (print_loop_title): Remove usage of EXIT_BLOCK_PTR macro.
34154e27 445 * ira-emit.c (entered_from_non_parent_p): Remove usage of
446 ENTRY_BLOCK_PTR macro.
447 (ira_emit): Remove usage of EXIT_BLOCK_PTR macro.
448 * ira-int.h (ira_assert): Remove usage of ENTRY_BLOCK_PTR macro.
449 * ira.c (split_live_ranges_for_shrink_wrap): Remove uses of macros:
450 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
451 * lcm.c (compute_rev_insert_delete): Remove usage of ENTRY_BLOCK_PTR
452 macro.
453 (compute_nearerout): Remove uses of macros: ENTRY_BLOCK_PTR,
454 EXIT_BLOCK_PTR.
455 (compute_farthest): Likewise.
456 (compute_available): Likewise.
457 (compute_insert_delete): Remove usage of EXIT_BLOCK_PTR macro.
458 (compute_laterin): Remove uses of macros: ENTRY_BLOCK_PTR,
459 EXIT_BLOCK_PTR.
460 (compute_earliest): Likewise.
461 (compute_antinout_edge): Likewise.
462 * loop-iv.c (simplify_using_initial_values): Remove usage of
463 ENTRY_BLOCK_PTR macro.
464 * loop-unswitch.c (unswitch_loop): Remove usage of EXIT_BLOCK_PTR
465 macro.
466 * lra-assigns.c (find_hard_regno_for): Remove usage of ENTRY_BLOCK_PTR
467 macro.
468 * lra-constraints.c (lra_inheritance): Remove usage of EXIT_BLOCK_PTR
469 macro.
470 * lra-lives.c (lra_create_live_ranges): Remove uses of macros:
471 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
472 * lra.c (has_nonexceptional_receiver): Remove usage of EXIT_BLOCK_PTR
473 macro.
474 * lto-streamer-in.c (input_function): Remove usage of ENTRY_BLOCK_PTR
475 macro.
476 * lto-streamer-out.c (output_cfg): Likewise.
477 * mcf.c (adjust_cfg_counts): Remove uses of macros: ENTRY_BLOCK_PTR,
478 EXIT_BLOCK_PTR.
479 (create_fixup_graph): Remove usage of ENTRY_BLOCK_PTR macro.
480 * mode-switching.c (optimize_mode_switching): Likewise.
481 (create_pre_exit): Remove usage of EXIT_BLOCK_PTR macro.
482 * modulo-sched.c (rest_of_handle_sms): Likewise.
483 (canon_loop): Likewise.
a8274722 484 * omp-low.c (build_omp_regions): Remove usage of ENTRY_BLOCK_PTR macro.
34154e27 485 * postreload-gcse.c (eliminate_partially_redundant_loads): Remove uses
486 of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
487 * predict.c (rebuild_frequencies): Remove usage of ENTRY_BLOCK_PTR
488 macro.
489 (propagate_freq): Remove usage of EXIT_BLOCK_PTR macro.
490 (estimate_bb_frequencies): Remove usage of ENTRY_BLOCK_PTR macro.
491 (tree_estimate_probability_bb): Remove usage of EXIT_BLOCK_PTR macro.
492 (expensive_function_p): Remove usage of ENTRY_BLOCK_PTR macro.
493 (tree_bb_level_predictions): Remove usage of EXIT_BLOCK_PTR macro.
494 (counts_to_freqs): Remove usage of ENTRY_BLOCK_PTR macro.
495 (apply_return_prediction): Remove usage of EXIT_BLOCK_PTR macro.
496 (estimate_loops): Remove usage of ENTRY_BLOCK_PTR macro.
497 (gimple_predict_edge): Likewise.
498 (probably_never_executed): Likewise.
499 * profile.c (find_spanning_tree): Remove uses of macros:
500 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
501 (branch_prob): Likewise.
502 (compute_branch_probabilities): Likewise.
503 (compute_frequency_overlap): Remove usage of ENTRY_BLOCK_PTR macro.
504 (is_inconsistent): Remove usage of EXIT_BLOCK_PTR macro.
505 (read_profile_edge_counts): Remove usage of ENTRY_BLOCK_PTR macro.
506 (set_bb_counts): Likewise.
507 (correct_negative_edge_counts): Likewise.
508 (get_exec_counts): Likewise.
509 (instrument_values): Likewise.
510 (instrument_edges): Likewise.
511 * reg-stack.c (convert_regs): Remove uses of macros: ENTRY_BLOCK_PTR,
512 EXIT_BLOCK_PTR.
513 (compensate_edges): Remove usage of ENTRY_BLOCK_PTR macro.
514 (convert_regs_exit): Remove usage of EXIT_BLOCK_PTR macro.
515 (convert_regs_entry): Remove usage of ENTRY_BLOCK_PTR macro.
516 (reg_to_stack): Likewise.
517 * regs.h (REG_N_SETS): Likewise.
518 * reload.c (find_dummy_reload): Likewise.
519 (combine_reloads): Likewise.
520 (push_reload): Likewise.
521 * reload1.c (has_nonexceptional_receiver): Remove usage of
522 EXIT_BLOCK_PTR macro.
523 * resource.c (mark_target_live_regs): Remove usage of ENTRY_BLOCK_PTR
524 macro.
525 (find_basic_block): Likewise.
526 * sched-ebb.c (ebb_add_block): Remove usage of EXIT_BLOCK_PTR macro.
527 (schedule_ebbs): Likewise.
528 * sched-int.h (sel_sched_p): Likewise.
529 * sched-rgn.c (compute_dom_prob_ps): Remove usage of ENTRY_BLOCK_PTR
530 macro.
531 (rgn_add_block): Remove usage of EXIT_BLOCK_PTR macro.
532 (haifa_find_rgns): Remove uses of macros: ENTRY_BLOCK_PTR,
533 EXIT_BLOCK_PTR.
534 (propagate_deps): Remove usage of EXIT_BLOCK_PTR macro.
535 (extend_rgns): Likewise.
536 (find_single_block_region): Likewise.
537 * sel-sched-ir.c (sel_remove_loop_preheader): Remove usage of
538 ENTRY_BLOCK_PTR macro.
539 (setup_nop_and_exit_insns): Remove usage of EXIT_BLOCK_PTR macro.
540 (sel_create_recovery_block): Likewise.
541 (bb_ends_ebb_p): Likewise.
542 (sel_bb_end): Likewise.
543 (sel_bb_head): Likewise.
544 (free_lv_sets): Likewise.
545 (init_lv_sets): Likewise.
546 (tidy_control_flow): Likewise.
547 (maybe_tidy_empty_bb): Likewise.
548 * sel-sched-ir.h (_succ_iter_cond): Likewise.
549 (_succ_iter_start): Likewise.
550 (sel_bb_empty_or_nop_p): Likewise.
551 (get_loop_exit_edges_unique_dests): Likewise.
552 (inner_loop_header_p): Likewise.
553 * sel-sched.c (create_block_for_bookkeeping): Likewise.
554 (find_block_for_bookkeeping): Likewise.
555 * store-motion.c (remove_reachable_equiv_notes): Likewise.
556 (insert_store): Likewise.
557 * trans-mem.c (ipa_tm_transform_clone): Remove usage of
558 ENTRY_BLOCK_PTR macro.
559 (tm_memopt_compute_available): Remove usage of EXIT_BLOCK_PTR macro.
560 (ipa_tm_scan_irr_function): Remove usage of ENTRY_BLOCK_PTR macro.
561 (gate_tm_init): Likewise.
562 (tm_region_init): Likewise.
563 * tree-cfg.c (execute_fixup_cfg): Remove uses of macros:
564 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
565 (execute_warn_function_return): Remove usage of EXIT_BLOCK_PTR macro.
566 (split_critical_edges): Remove uses of macros: ENTRY_BLOCK_PTR,
567 EXIT_BLOCK_PTR.
568 (print_loops): Remove usage of ENTRY_BLOCK_PTR macro.
569 (move_sese_region_to_fn): Remove uses of macros: ENTRY_BLOCK_PTR,
570 EXIT_BLOCK_PTR.
571 (gimple_redirect_edge_and_branch): Remove usage of ENTRY_BLOCK_PTR
572 macro.
573 (gimple_verify_flow_info): Remove uses of macros: ENTRY_BLOCK_PTR,
574 EXIT_BLOCK_PTR.
575 (remove_edge_and_dominated_blocks): Remove usage of EXIT_BLOCK_PTR
576 macro.
577 (make_edges): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
578 (gimple_flow_call_edges_add): Remove usage of EXIT_BLOCK_PTR macro.
579 (make_blocks): Remove usage of ENTRY_BLOCK_PTR macro.
580 (build_gimple_cfg): Likewise.
581 (gimple_duplicate_bb): Remove usage of EXIT_BLOCK_PTR macro.
582 (gimple_can_merge_blocks_p): Likewise.
583 * tree-cfgcleanup.c (tree_forwarder_block_p): Remove uses of macros:
584 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
585 * tree-complex.c (update_parameter_components): Remove usage of
586 ENTRY_BLOCK_PTR macro.
587 * tree-if-conv.c (get_loop_body_in_if_conv_order): Remove usage of
588 EXIT_BLOCK_PTR macro.
589 * tree-inline.c (tree_function_versioning): Remove uses of macros:
590 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
591 (delete_unreachable_blocks_update_callgraph): Likewise.
592 (initialize_cfun): Likewise.
593 (copy_cfg_body): Remove usage of ENTRY_BLOCK_PTR macro.
594 (copy_edges_for_bb): Remove usage of EXIT_BLOCK_PTR macro.
595 (remap_ssa_name): Remove usage of ENTRY_BLOCK_PTR macro.
596 * tree-into-ssa.c (update_ssa): Likewise.
597 (maybe_register_def): Remove usage of EXIT_BLOCK_PTR macro.
598 (insert_updated_phi_nodes_for): Remove usage of ENTRY_BLOCK_PTR macro.
599 (rewrite_into_ssa): Likewise.
600 (rewrite_debug_stmt_uses): Likewise.
601 * tree-outof-ssa.c (expand_phi_nodes): Remove uses of macros:
602 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
603 * tree-profile.c (gimple_gen_ic_func_profiler): Remove usage of
604 ENTRY_BLOCK_PTR macro.
605 * tree-scalar-evolution.h (block_before_loop): Likewise.
606 * tree-sra.c (sra_ipa_reset_debug_stmts): Likewise.
607 (dump_dereferences_table): Remove uses of macros: ENTRY_BLOCK_PTR,
608 EXIT_BLOCK_PTR.
609 (analyze_caller_dereference_legality): Remove usage of ENTRY_BLOCK_PTR
610 macro.
611 (propagate_dereference_distances): Remove uses of macros:
612 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
613 (initialize_parameter_reductions): Remove usage of ENTRY_BLOCK_PTR
614 macro.
615 * tree-ssa-ccp.c (gsi_prev_dom_bb_nondebug): Likewise.
616 (optimize_stack_restore): Remove usage of EXIT_BLOCK_PTR macro.
617 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
618 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove uses of macros:
619 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
620 (remove_dead_stmt): Remove usage of EXIT_BLOCK_PTR macro.
621 (propagate_necessity): Remove usage of ENTRY_BLOCK_PTR macro.
622 (mark_control_dependent_edges_necessary): Remove uses of macros:
623 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
624 * tree-ssa-dom.c (eliminate_degenerate_phis): Remove usage of
625 ENTRY_BLOCK_PTR macro.
626 (tree_ssa_dominator_optimize): Remove usage of EXIT_BLOCK_PTR macro.
627 * tree-ssa-live.c (verify_live_on_entry): Remove uses of macros:
628 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
629 (calculate_live_on_exit): Likewise.
630 (set_var_live_on_entry): Remove usage of ENTRY_BLOCK_PTR macro.
631 (loe_visit_block): Likewise.
632 * tree-ssa-live.h (live_on_exit): Remove uses of macros:
633 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
634 (live_on_entry): Likewise.
635 * tree-ssa-loop-ivopts.c (find_interesting_uses): Remove usage of
636 EXIT_BLOCK_PTR macro.
637 * tree-ssa-loop-manip.c (compute_live_loop_exits): Remove usage of
638 ENTRY_BLOCK_PTR macro.
639 * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Likewise.
640 (bound_difference): Likewise.
641 * tree-ssa-loop-prefetch.c (may_use_storent_in_loop_p): Remove usage
642 of EXIT_BLOCK_PTR macro.
643 * tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Remove usage
644 of ENTRY_BLOCK_PTR macro.
645 * tree-ssa-math-opts.c (register_division_in): Likewise.
646 * tree-ssa-phiprop.c (tree_ssa_phiprop): Likewise.
647 * tree-ssa-pre.c (compute_avail): Likewise.
648 (compute_antic): Remove usage of EXIT_BLOCK_PTR macro.
649 (insert): Remove usage of ENTRY_BLOCK_PTR macro.
650 * tree-ssa-propagate.c (ssa_prop_init): Likewise.
651 (simulate_block): Remove usage of EXIT_BLOCK_PTR macro.
652 (cfg_blocks_add): Remove uses of macros: ENTRY_BLOCK_PTR,
653 EXIT_BLOCK_PTR.
654 (add_control_edge): Remove usage of EXIT_BLOCK_PTR macro.
655 * tree-ssa-reassoc.c (do_reassoc): Remove uses of macros:
656 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
657 (build_and_add_sum): Remove usage of ENTRY_BLOCK_PTR macro.
658 * tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
659 (execute_sink_code): Remove usage of EXIT_BLOCK_PTR macro.
660 * tree-ssa-uninit.c (find_dom): Remove usage of ENTRY_BLOCK_PTR macro.
661 (compute_control_dep_chain): Remove usage of EXIT_BLOCK_PTR macro.
662 (find_pdom): Likewise.
663 (warn_uninitialized_vars): Remove usage of ENTRY_BLOCK_PTR macro.
664 * tree-stdarg.c (reachable_at_most_once): Likewise.
665 * tree-tailcall.c (tree_optimize_tail_calls_1): Remove uses of macros:
666 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
667 (eliminate_tail_call): Likewise.
668 * tsan.c (instrument_func_entry): Remove usage of ENTRY_BLOCK_PTR
669 macro.
670 (instrument_func_exit): Remove usage of EXIT_BLOCK_PTR macro.
671 * var-tracking.c (vt_initialize): Remove uses of macros:
672 ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
673 (vt_add_function_parameter): Remove usage of ENTRY_BLOCK_PTR macro.
674 (vt_find_locations): Remove usage of EXIT_BLOCK_PTR macro.
675 (vt_stack_adjustments): Remove uses of macros: ENTRY_BLOCK_PTR,
676 EXIT_BLOCK_PTR.
677 * varasm.c (assemble_start_function): Remove usage of ENTRY_BLOCK_PTR
678 macro.
679 * config/bfin/bfin.c (hwloop_optimize): Likewise.
680 * config/nds32/nds32.c (nds32_fp_as_gp_check_available): Remove usage
681 of EXIT_BLOCK_PTR macro.
682 * config/arm/arm.c (require_pic_register): Remove usage of
683 ENTRY_BLOCK_PTR macro.
684 (arm_r3_live_at_start_p): Likewise.
685 (any_sibcall_could_use_r3): Remove usage of EXIT_BLOCK_PTR macro.
686 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
687 * config/frv/frv.c (frv_optimize_membar_global): Likewise.
688 * config/alpha/alpha.c (alpha_gp_save_rtx): Remove usage of
689 ENTRY_BLOCK_PTR macro.
690 * config/i386/i386.c (ix86_count_insn): Likewise.
691 (ix86_seh_fixup_eh_fallthru): Remove usage of EXIT_BLOCK_PTR macro.
692 (ix86_pad_short_function): Likewise.
693 (ix86_compute_frame_layout): Remove usage of ENTRY_BLOCK_PTR macro.
694 (ix86_pad_returns): Remove usage of EXIT_BLOCK_PTR macro.
695 (ix86_eax_live_at_start_p): Remove usage of ENTRY_BLOCK_PTR macro.
696 (add_condition_to_bb): Remove usage of EXIT_BLOCK_PTR macro.
697 (ix86_expand_epilogue): Likewise.
698 * config/ia64/ia64.c (ia64_asm_unwind_emit): Likewise.
699 (ia64_expand_prologue): Likewise.
700
20607a76 7012013-11-19 Catherine Moore <clm@codesourcery.com>
702
703 * doc/invoke.texi (mfix-rm7000, mno-fix-rm7000): Document.
704 * config/mips/mips.opt (mfix-rm7000): New option.
705 * config/mips/mips.h (ASM_SPEC): Handle mfix-rm7000.
706 * config/mips/mips.c (mips_reorg_process_insns): Disable
707 noreorder for TARGET_FIX_RM7000.
708
f616b318 7092013-11-19 Oleg Endo <olegendo@gcc.gnu.org>
710
711 * config/sh/sh-c.c: Fix typo in include of file attribs.h.
712
daac2ec8 7132013-11-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
714
715 * config/arm/arm.c (arm_new_rtx_costs):
716 Handle narrow mode add-shifts properly.
717 * config/arm/arm-common.c (arm_rtx_shift_left_p): Remove static.
718 * config/arm/arm-common-protos.h (arm_rtx_shift_left_p):
719 Declare extern.
720
efbb5e19 7212013-11-19 James Greenhalgh <james.greenhalgh@arm.com>
722
723 * config/arm/arm.md (zero_extend<mode>di2): Add type attribute.
724
f8af95b8 7252013-11-19 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
726
727 * config/rs6000/vector.md ("mov<mode>"): Do not call
728 rs6000_emit_le_vsx_move to move into or out of GPRs.
729 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Assert
730 source and destination are not GPR hard regs.
731
f1955b22 7322013-11-19 David Malcolm <dmalcolm@redhat.com>
733
734 * basic-block.h (n_edges_for_function): Rename macro to...
735 (n_edges_for_fn): ...this.
736 (n_edges): Eliminate macro as work towards making uses of
737 cfun be explicit.
738
739 * cfg.c (init_flow): Update for renaming of "n_edges_for_function"
740 to "n_edges_for_fn".
741
742 * cfg.c (unchecked_make_edge): Remove usage of n_edges macro.
743 (clear_edges): Likewise.
744 (free_edge): Likewise.
745 * cfghooks.c (dump_flow_info): Likewise.
746 * cprop.c (is_too_expensive): Likewise.
747 * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
748 * gcse.c (is_too_expensive): Likewise.
749 (prune_insertions_deletions): Likewise.
750 * mcf.c (create_fixup_graph): Likewise.
751 * sched-rgn.c (haifa_find_rgns): Likewise.
752 * tree-cfg.c (gimple_dump_cfg): Likewise.
753 * var-tracking.c (variable_tracking_main_1): Likewise.
754
9cd3c370 7552013-11-19 Marcus Shawcroft <marcus.shawcroft@arm.com>
756
757 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix over
758 length lines.
759
9907b6a4 7602013-11-19 Marcus Shawcroft <marcus.shawcroft@arm.com>
761
762 * config/aarch64/aarch64.md
a8274722 763 (aarch64_movdi_<mode>low, *add_<shift>_si_uxtw): Adjust whitespace.
9907b6a4 764
ea51ce9b 7652013-11-19 Marcus Shawcroft <marcus.shawcroft@arm.com>
766
767 * config/aarch64/aarch64.h (PROFILE_HOOK): Fix whitespace.
768
f8f7421f 7692013-11-19 Joseph Myers <joseph@codesourcery.com>
770
771 * varasm.c (align_variable): Give error instead of warning for
772 unsupported alignment.
773 (assemble_noswitch_variable): Likewise.
774
0391a567 7752013-11-19 Basile Starynkevitch <basile@starynkevitch.net>
776
a8274722 777 * plugin.def (PLUGIN_INCLUDE_FILE): New event, invoked in
778 cb_file_change.
0391a567 779
e9c7354c 7802013-11-19 Peter Bergner <bergner@vnet.ibm.com>
781
782 * loop-doloop.c (doloop_optimize_loops): Remove unused
783 loop iterator argument from FOR_EACH_LOOP.
784
de6bd75e 7852013-11-19 David Malcolm <dmalcolm@redhat.com>
786
787 Convert gimple types from a union to C++ inheritance.
788 * Makefile.in (GIMPLE_H): Add dep on is-a.h.
789 * coretypes.h (union gimple_statement_d): Remove declaration.
790 (gimple): Convert from being a "union gimple_statement_d *"
791 to a "struct gimple_statement_base *".
792 (const_gimple): Likewise (with "const").
a8274722 793 * ggc.h (ggc_alloc_cleared_gimple_statement_d_stat): Replace with...
de6bd75e 794 (ggc_alloc_cleared_gimple_statement_stat): ...this.
795 * gimple-pretty-print.c (debug): Change parameter from a
796 "gimple_statement_d &" to a "gimple_statement_base &".
797 (debug): Change parameter from a "gimple_statement_d *" to
798 a "gimple_statement_base *".
799 * gimple-pretty-print.h (debug): Update declarations as above.
800 * gimple.c (gimple_alloc_stat): Update for renaming of
801 ggc_alloc_cleared_gimple_statement_d_stat to
802 ggc_alloc_cleared_gimple_statement_stat.
803 * gimple.h: Include "is-a.h" for use by is_a_helper
804 specializations in followup autogenerated patch.
805 (struct gimple statement_base): Make this type usable as a base
806 class by adding "desc", "tag" and "variable_size" to GTY, thus
807 using opting-in to gengtype's support for simple inheritance.
808 (gimple_statement_with_ops_base): Convert to a subclass of
a8274722 809 gimple_statement_base, dropping initial "gsbase" field. Note that
810 this type is abstract, with no GSS_ value, and thus no GTY tag value.
de6bd75e 811 (gimple_statement_with_ops): Convert to a subclass of
812 gimple_statement_with_ops_base, dropping initial "opbase" field.
813 Add tag value to GTY marking. Update marking of op field to
814 reflect how num_ops field is accessed via inheritance.
815 (gimple_statement_with_memory_ops_base): Convert to a subclass of
816 gimple_statement_with_ops_base, dropping initial "opbase" field.
817 Add tag value to GTY marking.
818 (gimple_statement_with_memory_ops): Convert to a subclass of
819 public gimple_statement_with_memory_ops_base, dropping initial
820 "membase" field. Add tag value to GTY marking. Update marking
a8274722 821 of op field to reflect how num_ops field is accessed via inheritance.
de6bd75e 822 (gimple_statement_call): Analogous changes that also update the
823 marking of the "u" union.
824 (gimple_statement_omp): Convert to a subclass of
825 gimple_statement_base, dropping initial "gsbase" field, adding
826 tag value to GTY marking.
827 (gimple_statement_bind): Likewise.
828 (gimple_statement_catch): Likewise.
829 (gimple_statement_eh_filter): Likewise.
830 (gimple_statement_eh_else): Likewise.
831 (gimple_statement_eh_mnt): Likewise.
832 (gimple_statement_phi): Likewise.
833 (gimple_statement_eh_ctrl): Likewise.
834 (gimple_statement_try): Likewise.
835 (gimple_statement_wce): Likewise.
836 (gimple_statement_asm): Convert to a subclass of
837 gimple_statement_with_memory_ops_base, dropping initial
838 "membase" field, adding tag value to GTY marking, and updating
839 marking of op field.
840 (gimple_statement_omp_critical): Convert to a subclass of
841 gimple_statement_omp, dropping initial "omp" field, adding tag
842 value to GTY marking.
843 (gimple_statement_omp_for): Likewise.
844 (gimple_statement_omp_parallel): Likewise.
845 (gimple_statement_omp_task): Convert to a subclass of
846 gimple_statement_omp_parallel, dropping initial "par" field,
847 adding tag value to GTY marking.
848 (gimple_statement_omp_sections): Convert to a subclass of
849 gimple_statement_omp, dropping initial "omp" field, adding
850 tag value to GTY marking.
851 (gimple_statement_omp_continue): Convert to a subclass of
852 gimple_statement_base, dropping initial "gsbase" field, adding
853 tag value to GTY marking.
854 (gimple_statement_omp_single): Convert to a subclass of
855 gimple_statement_omp, dropping initial "omp" field, adding
856 tag value to GTY marking.
857 (gimple_statement_omp_atomic_load): Convert to a subclass of
858 gimple_statement_base, dropping initial "gsbase" field, adding
859 tag value to GTY marking.
860 (gimple_statement_omp_atomic_store): Convert to a subclass of
861 gimple_statement_base, dropping initial "gsbase" field, adding
862 tag value to GTY marking.
863 (gimple_statement_transaction): Convert to a subclass of
864 gimple_statement_with_memory_ops_base, dropping initial "gsbase"
865 field, adding tag value to GTY marking.
866 (union gimple_statement_d): Remove.
867 * system.h (CONST_CAST_GIMPLE): Update to use
868 "struct gimple_statement_base *" rather than
869 "union gimple_statement_d *".
870 * tree-ssa-ccp.c (gimple_htab): Convert underlying type from
871 gimple_statement_d to gimple_statement_base.
872
a8274722 873 * gimple.h (gimple_use_ops): Port from union to usage of dyn_cast.
de6bd75e 874 (gimple_set_use_ops): Port from union to usage of as_a.
875 (gimple_set_vuse): Likewise.
876 (gimple_set_vdef): Likewise.
877 (gimple_call_internal_fn): Port from union to a static_cast,
878 given that the type has already been asserted.
879 (gimple_omp_body_ptr): Port from unchecked union usage to
880 a static_cast.
881 (gimple_omp_set_body): Likewise.
882
883 * gimple-iterator.c (update_bb_for_stmts): Update for conversion of
884 gimple types to a true class hierarchy.
885 (update_call_edge_frequencies): Likewise.
886 (gsi_insert_seq_nodes_before): Likewise.
887 (gsi_insert_seq_nodes_after): Likewise.
888 (gsi_split_seq_after): Likewise.
889 (gsi_set_stmt): Likewise.
890 (gsi_split_seq_before): Likewise.
891 (gsi_remove): Likewise.
892 * gimple-iterator.h (gsi_one_before_end_p): Likewise.
893 (gsi_next): Likewise.
894 (gsi_prev): Likewise.
895 * gimple-pretty-print.c (dump_gimple_debug): Likewise.
896 * gimple-ssa.h (gimple_vuse_op): Likewise.
897 (gimple_vdef_op): Likewise.
898 * gimple-streamer-in.c (input_gimple_stmt): Likewise.
899 * gimple-streamer-out.c (output_gimple_stmt): Likewise.
900 * gimple.c (gimple_set_code): Likewise.
901 (gimple_alloc_stat): Likewise.
902 (gimple_set_subcode): Likewise.
903 (gimple_build_call_internal_1): Likewise.
904 (gimple_check_failed): Likewise.
905 (gimple_call_flags): Likewise.
906 (gimple_set_bb): Likewise.
907 * gimple.h (is_a_helper <gimple_statement_asm> (gimple)): New.
908 (is_a_helper <gimple_statement_bind> (gimple)): Likewise.
909 (is_a_helper <gimple_statement_call> (gimple)): Likewise.
910 (is_a_helper <gimple_statement_catch> (gimple)): Likewise.
911 (is_a_helper <gimple_statement_eh_ctrl> (gimple)): Likewise.
912 (is_a_helper <gimple_statement_eh_else> (gimple)): Likewise.
913 (is_a_helper <gimple_statement_eh_filter> (gimple)): Likewise.
914 (is_a_helper <gimple_statement_eh_mnt> (gimple)): Likewise.
915 (is_a_helper <gimple_statement_omp_atomic_load> (gimple)): Likewise.
916 (is_a_helper <gimple_statement_omp_atomic_store> (gimple)): Likewise.
917 (is_a_helper <gimple_statement_omp_continue> (gimple)): Likewise.
918 (is_a_helper <gimple_statement_omp_critical> (gimple)): Likewise.
919 (is_a_helper <gimple_statement_omp_for> (gimple)): Likewise.
920 (is_a_helper <gimple_statement_omp_parallel> (gimple)): Likewise.
921 (is_a_helper <gimple_statement_omp_sections> (gimple)): Likewise.
922 (is_a_helper <gimple_statement_omp_single> (gimple)): Likewise.
923 (is_a_helper <gimple_statement_omp_task> (gimple)): Likewise.
924 (is_a_helper <gimple_statement_phi> (gimple)): Likewise.
925 (is_a_helper <gimple_statement_transaction> (gimple)): Likewise.
926 (is_a_helper <gimple_statement_try> (gimple)): Likewise.
927 (is_a_helper <gimple_statement_wce> (gimple)): Likewise.
928 (is_a_helper <const gimple_statement_asm> (const_gimple)): Likewise.
929 (is_a_helper <const gimple_statement_bind> (const_gimple)): Likewise.
930 (is_a_helper <const gimple_statement_call> (const_gimple)): Likewise.
931 (is_a_helper <const gimple_statement_catch> (const_gimple)): Likewise.
932 (is_a_helper <const gimple_statement_eh_ctrl> (const_gimple)):
933 Likewise.
934 (is_a_helper <const gimple_statement_eh_filter> (const_gimple)):
935 Likewise.
936 (is_a_helper <const gimple_statement_omp_atomic_load> (const_gimple)):
937 Likewise.
938 (is_a_helper <const gimple_statement_omp_atomic_store>
939 (const_gimple)): Likewise.
940 (is_a_helper <const gimple_statement_omp_continue> (const_gimple)):
941 Likewise.
942 (is_a_helper <const gimple_statement_omp_critical> (const_gimple)):
943 Likewise.
944 (is_a_helper <const gimple_statement_omp_for> (const_gimple)):
945 Likewise.
946 (is_a_helper <const gimple_statement_omp_parallel> (const_gimple)):
947 Likewise.
948 (is_a_helper <const gimple_statement_omp_sections> (const_gimple)):
949 Likewise.
950 (is_a_helper <const gimple_statement_omp_single> (const_gimple)):
951 Likewise.
952 (is_a_helper <const gimple_statement_omp_task> (const_gimple)):
953 Likewise.
954 (is_a_helper <const gimple_statement_phi> (const_gimple)): Likewise.
955 (is_a_helper <const gimple_statement_transaction> (const_gimple)):
956 Likewise.
957 (gimple_seq_last): Update for conversion of gimple types to a true
958 class hierarchy.
959 (gimple_seq_set_last): Likewise.
960 (gimple_code): Likewise.
961 (gimple_bb): Likewise.
962 (gimple_block): Likewise.
963 (gimple_set_block): Likewise.
964 (gimple_location): Likewise.
965 (gimple_location_ptr): Likewise.
966 (gimple_set_location): Likewise.
967 (gimple_no_warning_p): Likewise.
968 (gimple_set_no_warning): Likewise.
969 (gimple_set_visited): Likewise.
970 (gimple_visited_p): Likewise.
971 (gimple_set_plf): Likewise.
972 (gimple_plf): Likewise.
973 (gimple_set_uid): Likewise.
974 (gimple_uid): Likewise.
975 (gimple_init_singleton): Likewise.
976 (gimple_modified_p): Likewise.
977 (gimple_set_modified): Likewise.
978 (gimple_expr_code): Likewise.
979 (gimple_has_volatile_ops): Likewise.
980 (gimple_set_has_volatile_ops): Likewise.
981 (gimple_omp_subcode): Likewise.
982 (gimple_omp_set_subcode): Likewise.
983 (gimple_omp_return_set_nowait): Likewise.
984 (gimple_omp_section_set_last): Likewise.
985 (gimple_omp_parallel_set_combined_p): Likewise.
986 (gimple_omp_atomic_set_need_value): Likewise.
987 (gimple_omp_atomic_set_seq_cst): Likewise.
988 (gimple_num_ops): Likewise.
989 (gimple_set_num_ops): Likewise.
990 (gimple_assign_nontemporal_move_p): Likewise.
991 (gimple_assign_set_nontemporal_move): Likewise.
992 (gimple_assign_rhs_code): Likewise.
993 (gimple_assign_set_rhs_code): Likewise.
994 (gimple_call_internal_p): Likewise.
995 (gimple_call_with_bounds_p): Likewise.
996 (gimple_call_set_with_bounds): Likewise.
997 (gimple_call_set_tail): Likewise.
998 (gimple_call_tail_p): Likewise.
999 (gimple_call_set_return_slot_opt): Likewise.
1000 (gimple_call_return_slot_opt_p): Likewise.
1001 (gimple_call_set_from_thunk): Likewise.
1002 (gimple_call_from_thunk_p): Likewise.
1003 (gimple_call_set_va_arg_pack): Likewise.
1004 (gimple_call_va_arg_pack_p): Likewise.
1005 (gimple_call_set_nothrow): Likewise.
1006 (gimple_call_set_alloca_for_var): Likewise.
1007 (gimple_call_alloca_for_var_p): Likewise.
1008 (gimple_call_copy_flags): Likewise.
1009 (gimple_cond_code): Likewise.
1010 (gimple_cond_set_code): Likewise.
1011 (gimple_cond_make_false): Likewise.
1012 (gimple_cond_make_true): Likewise.
1013 (gimple_asm_volatile_p): Likewise.
1014 (gimple_asm_set_volatile): Likewise.
1015 (gimple_asm_set_input): Likewise.
1016 (gimple_asm_input_p): Likewise.
1017 (gimple_try_kind): Likewise.
1018 (gimple_try_set_kind): Likewise.
1019 (gimple_try_catch_is_cleanup): Likewise.
1020 (gimple_try_set_catch_is_cleanup): Likewise.
1021 (gimple_wce_cleanup_eh_only): Likewise.
1022 (gimple_wce_set_cleanup_eh_only): Likewise.
1023 (gimple_debug_bind_p): Likewise.
1024 (gimple_debug_source_bind_p): Likewise.
1025 (gimple_omp_for_set_kind): Likewise.
1026 (gimple_omp_for_set_combined_p): Likewise.
1027 (gimple_omp_for_set_combined_into_p): Likewise.
1028 (gimple_omp_target_set_kind): Likewise.
1029 (gimple_transaction_subcode): Likewise.
1030 (gimple_transaction_set_subcode): Likewise.
1031 (gimple_predict_predictor): Likewise.
1032 (gimple_predict_set_predictor): Likewise.
1033 (gimple_predict_outcome): Likewise.
1034 (gimple_predict_set_outcome): Likewise.
1035 (gimple_transaction_set_label): Likewise.
1036 (gimple_transaction_set_body): Likewise.
1037 (gimple_transaction_label_ptr): Likewise.
1038 (gimple_transaction_label): Likewise.
1039 (gimple_transaction_body_ptr): Likewise.
1040 (gimple_omp_continue_set_control_use): Likewise.
1041 (gimple_omp_continue_control_use_ptr): Likewise.
1042 (gimple_omp_continue_control_use): Likewise.
1043 (gimple_omp_continue_set_control_def): Likewise.
1044 (gimple_omp_continue_control_def_ptr): Likewise.
1045 (gimple_omp_continue_control_def): Likewise.
1046 (gimple_omp_atomic_load_rhs_ptr): Likewise.
1047 (gimple_omp_atomic_load_rhs): Likewise.
1048 (gimple_omp_atomic_load_set_rhs): Likewise.
1049 (gimple_omp_atomic_load_lhs_ptr): Likewise.
1050 (gimple_omp_atomic_load_lhs): Likewise.
1051 (gimple_omp_atomic_load_set_lhs): Likewise.
1052 (gimple_omp_atomic_store_val_ptr): Likewise.
1053 (gimple_omp_atomic_store_val): Likewise.
1054 (gimple_omp_atomic_store_set_val): Likewise.
1055 (gimple_omp_for_cond): Likewise.
1056 (gimple_omp_for_set_cond): Likewise.
1057 (gimple_omp_sections_set_control): Likewise.
1058 (gimple_omp_sections_control_ptr): Likewise.
1059 (gimple_omp_sections_control): Likewise.
1060 (gimple_omp_sections_set_clauses): Likewise.
1061 (gimple_omp_sections_clauses_ptr): Likewise.
1062 (gimple_omp_sections_clauses): Likewise.
1063 (gimple_omp_teams_set_clauses): Likewise.
1064 (gimple_omp_teams_clauses_ptr): Likewise.
1065 (gimple_omp_teams_clauses): Likewise.
1066 (gimple_omp_target_set_data_arg): Likewise.
1067 (gimple_omp_target_data_arg_ptr): Likewise.
1068 (gimple_omp_target_data_arg): Likewise.
1069 (gimple_omp_target_set_child_fn): Likewise.
1070 (gimple_omp_target_child_fn_ptr): Likewise.
1071 (gimple_omp_target_child_fn): Likewise.
1072 (gimple_omp_target_set_clauses): Likewise.
1073 (gimple_omp_target_clauses_ptr): Likewise.
1074 (gimple_omp_target_clauses): Likewise.
1075 (gimple_omp_single_set_clauses): Likewise.
1076 (gimple_omp_single_clauses_ptr): Likewise.
1077 (gimple_omp_single_clauses): Likewise.
1078 (gimple_omp_task_set_arg_align): Likewise.
1079 (gimple_omp_task_arg_align_ptr): Likewise.
1080 (gimple_omp_task_arg_align): Likewise.
1081 (gimple_omp_task_set_arg_size): Likewise.
1082 (gimple_omp_task_arg_size_ptr): Likewise.
1083 (gimple_omp_task_arg_size): Likewise.
1084 (gimple_omp_task_set_copy_fn): Likewise.
1085 (gimple_omp_task_copy_fn_ptr): Likewise.
1086 (gimple_omp_task_copy_fn): Likewise.
1087 (gimple_omp_task_set_data_arg): Likewise.
1088 (gimple_omp_task_data_arg_ptr): Likewise.
1089 (gimple_omp_task_data_arg): Likewise.
1090 (gimple_omp_task_set_child_fn): Likewise.
1091 (gimple_omp_task_child_fn_ptr): Likewise.
1092 (gimple_omp_task_child_fn): Likewise.
1093 (gimple_omp_task_set_clauses): Likewise.
1094 (gimple_omp_task_clauses_ptr): Likewise.
1095 (gimple_omp_task_clauses): Likewise.
1096 (gimple_omp_parallel_set_data_arg): Likewise.
1097 (gimple_omp_parallel_data_arg_ptr): Likewise.
1098 (gimple_omp_parallel_data_arg): Likewise.
1099 (gimple_omp_parallel_set_child_fn): Likewise.
1100 (gimple_omp_parallel_child_fn_ptr): Likewise.
1101 (gimple_omp_parallel_child_fn): Likewise.
1102 (gimple_omp_parallel_set_clauses): Likewise.
1103 (gimple_omp_parallel_clauses_ptr): Likewise.
1104 (gimple_omp_parallel_clauses): Likewise.
1105 (gimple_omp_for_set_pre_body): Likewise.
1106 (gimple_omp_for_pre_body_ptr): Likewise.
1107 (gimple_omp_for_set_incr): Likewise.
1108 (gimple_omp_for_incr_ptr): Likewise.
1109 (gimple_omp_for_incr): Likewise.
1110 (gimple_omp_for_set_final): Likewise.
1111 (gimple_omp_for_final_ptr): Likewise.
1112 (gimple_omp_for_final): Likewise.
1113 (gimple_omp_for_set_initial): Likewise.
1114 (gimple_omp_for_initial_ptr): Likewise.
1115 (gimple_omp_for_initial): Likewise.
1116 (gimple_omp_for_set_index): Likewise.
1117 (gimple_omp_for_index_ptr): Likewise.
1118 (gimple_omp_for_index): Likewise.
1119 (gimple_omp_for_collapse): Likewise.
1120 (gimple_omp_for_set_clauses): Likewise.
1121 (gimple_omp_for_clauses_ptr): Likewise.
1122 (gimple_omp_for_clauses): Likewise.
1123 (gimple_omp_critical_set_name): Likewise.
1124 (gimple_omp_critical_name_ptr): Likewise.
1125 (gimple_omp_critical_name): Likewise.
1126 (gimple_eh_dispatch_set_region): Likewise.
1127 (gimple_eh_dispatch_region): Likewise.
1128 (gimple_resx_set_region): Likewise.
1129 (gimple_resx_region): Likewise.
1130 (gimple_phi_set_arg): Likewise.
1131 (gimple_phi_arg): Likewise.
1132 (gimple_phi_set_result): Likewise.
1133 (gimple_phi_result_ptr): Likewise.
1134 (gimple_phi_result): Likewise.
1135 (gimple_phi_num_args): Likewise.
1136 (gimple_phi_capacity): Likewise.
1137 (gimple_wce_set_cleanup): Likewise.
1138 (gimple_wce_cleanup_ptr): Likewise.
1139 (gimple_try_set_cleanup): Likewise.
1140 (gimple_try_set_eval): Likewise.
1141 (gimple_try_cleanup_ptr): Likewise.
1142 (gimple_try_eval_ptr): Likewise.
1143 (gimple_eh_else_set_e_body): Likewise.
1144 (gimple_eh_else_set_n_body): Likewise.
1145 (gimple_eh_else_e_body_ptr): Likewise.
1146 (gimple_eh_else_n_body_ptr): Likewise.
1147 (gimple_eh_must_not_throw_set_fndecl): Likewise.
1148 (gimple_eh_must_not_throw_fndecl): Likewise.
1149 (gimple_eh_filter_set_failure): Likewise.
1150 (gimple_eh_filter_set_types): Likewise.
1151 (gimple_eh_filter_failure_ptr): Likewise.
1152 (gimple_eh_filter_types_ptr): Likewise.
1153 (gimple_eh_filter_types): Likewise.
1154 (gimple_catch_set_handler): Likewise.
1155 (gimple_catch_set_types): Likewise.
1156 (gimple_catch_handler_ptr): Likewise.
1157 (gimple_catch_types_ptr): Likewise.
1158 (gimple_catch_types): Likewise.
1159 (gimple_asm_string): Likewise.
1160 (gimple_asm_set_label_op): Likewise.
1161 (gimple_asm_label_op): Likewise.
1162 (gimple_asm_set_clobber_op): Likewise.
1163 (gimple_asm_clobber_op): Likewise.
1164 (gimple_asm_set_output_op): Likewise.
1165 (gimple_asm_output_op_ptr): Likewise.
1166 (gimple_asm_output_op): Likewise.
1167 (gimple_asm_set_input_op): Likewise.
1168 (gimple_asm_input_op_ptr): Likewise.
1169 (gimple_asm_input_op): Likewise.
1170 (gimple_asm_nlabels): Likewise.
1171 (gimple_asm_nclobbers): Likewise.
1172 (gimple_asm_noutputs): Likewise.
1173 (gimple_asm_ninputs): Likewise.
1174 (gimple_bind_set_block): Likewise.
1175 (gimple_bind_block): Likewise.
1176 (gimple_bind_add_seq): Likewise.
1177 (gimple_bind_add_stmt): Likewise.
1178 (gimple_bind_set_body): Likewise.
1179 (gimple_bind_body_ptr): Likewise.
1180 (gimple_bind_append_vars): Likewise.
1181 (gimple_bind_set_vars): Likewise.
1182 (gimple_bind_vars): Likewise.
1183 (gimple_call_clobber_set): Likewise.
1184 (gimple_call_use_set): Likewise.
1185 (gimple_call_set_internal_fn): Likewise.
1186 (gimple_call_set_fntype): Likewise.
1187 (gimple_call_fntype): Likewise.
1188 (gimple_omp_return_lhs_ptr): Likewise.
1189 (gimple_omp_return_lhs): Likewise.
1190 (gimple_omp_return_set_lhs): Likewise.
1191 (gimple_omp_taskreg_set_data_arg): Likewise.
1192 (gimple_omp_taskreg_data_arg_ptr): Likewise.
1193 (gimple_omp_taskreg_data_arg): Likewise.
1194 (gimple_omp_taskreg_set_child_fn): Likewise.
1195 (gimple_omp_taskreg_child_fn_ptr): Likewise.
1196 (gimple_omp_taskreg_child_fn): Likewise.
1197 (gimple_omp_taskreg_set_clauses): Likewise.
1198 (gimple_omp_taskreg_clauses_ptr): Likewise.
1199 (gimple_omp_taskreg_clauses): Likewise.
1200 (gimple_vuse): Likewise.
1201 (gimple_vdef): Likewise.
1202 (gimple_vuse_ptr): Likewise.
1203 (gimple_vdef_ptr): Likewise.
1204 * tree-inline.c (copy_debug_stmt): Likewise.
1205 * tree-phinodes.c (make_phi_node): Likewise.
1206
1207 * gimple.h (is_a_helper <const gimple_statement_with_ops>::test): New.
1208 (is_a_helper <gimple_statement_with_ops>::test): New.
1209 (is_a_helper <const gimple_statement_with_memory_ops>::test): New.
1210 (is_a_helper <gimple_statement_with_memory_ops>::test): New.
1211
1212 * gimple-streamer-in.c (input_gimple_stmt): Port from union
1213 access to use of as_a.
1214 * gimple.c (gimple_build_asm_1): Likewise.
1215 (gimple_build_try): Likewise. Also, return a specific subclass
1216 rather than just gimple.
1217 (gimple_build_resx): Port from union access to use of as_a.
1218 (gimple_build_eh_dispatch): Likewise.
1219 (gimple_build_omp_for): Likewise. Also, convert allocation of iter
1220 now that gengtype no longer provides a typed allocator function.
1221 (gimple_copy): Likewise.
1222 * gimple.h (gimple_build_try): Return a specific subclass rather
1223 than just gimple.
1224 * gimplify.c (gimplify_cleanup_point_expr): Replace union access
1225 with subclass access by making use of new return type of
1226 gimple_build_try.
1227 * tree-phinodes.c: (allocate_phi_node): Return a
1228 "gimple_statement_phi *" rather than just a gimple.
1229 (resize_phi_node): Likewise.
1230 (make_phi_node): Replace union access with subclass access by
1231 making use of new return type of allocate_phi_node.
1232 (reserve_phi_args_for_new_edge): Replace union access with as_a.
1233 (remove_phi_arg_num): Accept a "gimple_statement_phi *" rather
1234 than just a gimple.
1235 (remove_phi_args): Update for change to remove_phi_arg_num.
1236
1237 * gdbhooks.py (GimplePrinter.to_string): Update lookup of
1238 code field to reflect inheritance, rather than embedding of
1239 the base gimple type.
1240
f21d4d00 12412013-11-19 Richard Biener <rguenther@suse.de>
1242
1243 * cfgloop.h (struct loop_iterator): C++-ify, add constructor
1244 and destructor and make fel_next a member function.
1245 (fel_next): Transform into ...
1246 (loop_iterator::next): ... this.
1247 (fel_init): Transform into ...
1248 (loop_iterator::loop_iterator): ... this.
1249 (loop_iterator::~loop_iterator): New.
1250 (FOR_EACH_LOOP): Remove loop-iterator argument.
1251 (FOR_EACH_LOOP_BREAK): Remove no longer necessary macro.
1252 * cfgloop.c, cfgloopmanip.c, config/mn10300/mn10300.c,
1253 graphite-clast-to-gimple.c, graphite-scop-detection.c,
1254 graphite-sese-to-poly.c, ipa-inline-analysis.c, ipa-pure-const.c,
1255 loop-init.c, loop-invariant.c, loop-unroll.c, loop-unswitch.c,
1256 modulo-sched.c, predict.c, sel-sched-ir.c, tree-cfg.c, tree-data-ref.c,
1257 tree-if-conv.c, tree-loop-distribution.c, tree-parloops.c,
1258 tree-predcom.c, tree-scalar-evolution.c, tree-ssa-dce.c,
1259 tree-ssa-loop-ch.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
1260 tree-ssa-loop-ivopts.c, tree-ssa-loop-manip.c, tree-ssa-loop-niter.c,
1261 tree-ssa-loop-prefetch.c, tree-ssa-loop-unswitch.c,
1262 tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vrp.c: Adjust
1263 uses of FOR_EACH_LOOP and remove loop_iterator variables. Replace
1264 FOR_EACH_LOOP_BREAK with break.
1265
f3d6d99e 12662013-11-19 Richard Biener <rguenther@suse.de>
1267
1268 PR tree-optimization/59164
1269 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
1270 Uncomment assert.
a8274722 1271 * tree-vect-loop.c (vect_analyze_loop_operations): Adjust check
1272 whether we can create an epilogue loop to reflect thecases where
1273 we create one.
f3d6d99e 1274
3ebca59c 12752013-11-19 Andrew MacLeod <amacleod@redhat.com>
1276
1277 * graphite-sese-to-poly.c: Include expr.h.
1278
c75add39 12792013-11-19 Richard Biener <rguenther@suse.de>
1280
1281 PR middle-end/58956
1282 * tree-ssa-ter.c (find_replaceable_in_bb): Avoid forwarding
1283 loads into stmts that may clobber it.
1284
3cb3fce5 12852013-11-19 Bernd Schmidt <bernds@codesourcery.com>
1286
1287 * cgraphunit.c (symtab_terminator): New variable.
1288 (queued_nodes): Renamed from first. Use symtab_terminator as
1289 initializer.
1290 (analyze_functions): Adjust accordingly.
1291 (cgraph_process_new_functions): Return void.
1292 * cgraph.h (cgraph_process_new_functions): Adjust declaration.
1293
19b928d9 12942013-11-19 Marek Polacek <polacek@redhat.com>
1295
1296 * opts.c (common_handle_option): Add -fsanitize=null option.
1297 Turn off -fdelete-null-pointer-checks option when doing the
1298 NULL pointer checking.
1299 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH): Add.
1300 * tree-pass.h (make_pass_ubsan): Declare.
1301 (make_pass_sanopt): Declare.
1302 * timevar.def (TV_TREE_UBSAN): New timevar.
1303 * passes.def: Add pass_sanopt and pass_ubsan.
1304 * ubsan.h (ubsan_null_ckind): New enum.
1305 (ubsan_mismatch_data): New struct.
1306 (ubsan_expand_null_ifn): Declare.
1307 (ubsan_create_data): Adjust declaration.
1308 (ubsan_type_descriptor): Likewise.
1309 * asan.c: Include "ubsan.h".
1310 (pass_data_sanopt): New pass.
1311 (execute_sanopt): New function.
1312 (gate_sanopt): Likewise.
1313 (make_pass_sanopt): Likewise.
1314 (class pass_sanopt): New class.
1315 * ubsan.c: Include tree-pass.h, gimple-ssa.h, gimple-walk.h,
3cb3fce5 1316 gimple-iterator.h and cfgloop.h.
19b928d9 1317 (PROB_VERY_UNLIKELY): Define.
1318 (tree_type_map_hash): New function.
1319 (ubsan_type_descriptor): Add new parameter.
1320 Improve type name generation.
1321 (ubsan_create_data): Add new parameter. Add pointer data into
1322 ubsan structure.
1323 (ubsan_expand_null_ifn): New function.
1324 (instrument_member_call): Likewise.
1325 (instrument_mem_ref): Likewise.
1326 (instrument_null): Likewise.
1327 (ubsan_pass): Likewise.
1328 (gate_ubsan): Likewise.
1329 (make_pass_ubsan): Likewise.
1330 (ubsan_instrument_unreachable): Adjust ubsan_create_data call.
1331 (class pass_ubsan): New class.
1332 (pass_data_ubsan): New pass.
1333 * flag-types.h (enum sanitize_code): Add SANITIZE_NULL.
1334 * internal-fn.c (expand_UBSAN_NULL): New function.
1335 * cgraphunit.c (varpool_finalize_decl): Call varpool_assemble_decl
1336 even when !flag_toplevel_reorder.
1337 * internal-fn.def (UBSAN_NULL): New.
1338
3af5e0b7 13392013-11-19 Jan Hubicka <jh@suse.cz>
1340
a8274722 1341 * cgraph.c (cgraph_create_indirect_edge): Use
1342 get_polymorphic_call_info.
1343 * cgraph.h (cgraph_indirect_call_info): Add outer_type,
1344 maybe_in_construction and maybe_derived_type.
3af5e0b7 1345 * ipa-utils.h (ipa_polymorphic_call_context): New structure.
1346 (ipa_dummy_polymorphic_call_context): New global var.
1347 (possible_polymorphic_call_targets): Add context paramter.
a8274722 1348 (dump_possible_polymorphic_call_targets): Likewise; update wrappers.
3af5e0b7 1349 (possible_polymorphic_call_target_p): Likewise.
1350 (get_polymorphic_call_info): New function.
1351 * ipa-devirt.c (ipa_dummy_polymorphic_call_context): New function.
1352 (add_type_duplicate): Remove forgotten debug output.
1353 (method_class_type): Add sanity check.
1354 (maybe_record_node): Add FINALP parameter.
1355 (record_binfo): Add OUTER_TYPE and OFFSET; walk the inner
1356 by info by get_binfo_at_offset.
a8274722 1357 (possible_polymorphic_call_targets_1): Add OUTER_TYPE/OFFSET
1358 parameters; pass them to record-binfo.
3af5e0b7 1359 (polymorphic_call_target_d): Add context and FINAL.
1360 (polymorphic_call_target_hasher::hash): Hash context.
1361 (polymorphic_call_target_hasher::equal): Compare context.
1362 (free_polymorphic_call_targets_hash):
1363 (get_class_context): New function.
1364 (contains_type_p): New function.
1365 (get_polymorphic_call_info): New function.
1366 (walk_bases): New function.
1367 (possible_polymorphic_call_targets): Add context parameter; honnor it.
1368 (dump_possible_polymorphic_call_targets): Dump context.
1369 (possible_polymorphic_call_target_p): Add context.
1370 (update_type_inheritance_graph): Update comment.s
1371 (ipa_set_jf_known_type): Assert that compoentn type is known.
1372 (ipa_note_param_call): Do not tamper with offsets.
1373 (ipa_analyze_indirect_call_uses): When offset is being changed; clear
1374 outer type.
1375 (update_indirect_edges_after_inlining): Likewise.
1376 (ipa_write_indirect_edge_info): Stream new fields.
1377 (ipa_read_indirect_edge_info): Stream in new fields.
1378
41154724 13792013-11-19 Jan Hubicka <jh@suse.cz>
1380
1381 * tree-pretty-print.c (dump_generic_node): Print class type of
1382 OBJ_TYPE_REF.
1383
720381ff 13842013-11-19 Joey Ye <joey.ye@arm.com>
1385
1386 * config/arm/arm.opt (-marm-pic-data-is-text-relative): New option.
1387 * doc/invoke.texi (-marm-pic-data-is-text-relative): Documentation
1388 for new option.
1389 * config/arm/arm.c (arm_option_override): By default disable
1390 -marm-pic-data-is-text-relative.
1391 (legitimize_pic_address): Use arm_pic_data_is_text_relative.
1392 (arm_assemble_integer): Likewise.
1393 * config/arm/arm.h (TARGET_DEFAULT_PIC_DATA_IS_TEXT_RELATIVE):
1394 New macro to initialize -marm-pic-data-is-text-relative.
1395
51cb3aa0 13962013-11-19 Bin Cheng <bin.cheng@arm.com>
1397
1398 * tree-ssa-loop-ivopts.c (enum ainc_type): New.
1399 (address_cost_data): New field.
1400 (get_address_cost): Compute auto-increment rtx cost in ainc_costs.
a8274722 1401 Use ainc_costs for auto-increment rtx patterns. Cleanup TWS.
51cb3aa0 1402
73300bc8 14032013-11-19 James Greenhalgh <james.greenhalgh@arm.com>
1404
1405 * config/aarch64/aarch64.md: Remove v8type from all insns.
1406
f8d7b728 14072013-11-19 Richard Biener <rguenther@suse.de>
1408
1409 PR tree-optimization/57517
1410 * tree-predcom.c (combinable_refs_p): Verify the combination
1411 is always executed when the refs are.
1412
98685018 14132013-11-19 Jeff Law <law@redhat.com>
1414
fc54aba7 1415 * tree-ssa-threadupdate.c: Include ssa-iterators.h
1416 (copy_phi_arg_into_existing_phi): New function.
1417 (any_remaining_duplicated_blocks): Likewise.
1418 (ssa_fix_duplicate_block_edges): Handle multiple duplicated
1419 blocks on a jump threading path.
a8274722 1420
98685018 1421 * tree-ssa-threadupdate.c (thread_through_loop_header): Do not
1422 thread through a joiner which has the latch edge.
1423
82980777 14242013-11-19 Jan Hubicka <jh@suse.cz>
1425
1426 * md.texi (setmem): Document new parameter.
1427 * optabs.c (maybe_gen_insn): Support 9 operands.
1428 * builtins.c (determine_block_size): Add probable_max_size;
1429 support anti-ranges.
1430 (expand_builtin_memcpy. expand_builtin_memset_args): Pass around
1431 probable_max_size.
1432 * expr.c (emit_block_move_via_movmem, emit_block_move_hints,
1433 emit_block_move, clear_storage_hints, set_storage_via_setmem):
1434 Likewise.
1435 * expr.h (emit_block_move_hints, clear_storage_hints,
1436 set_storage_via_setmem): Update prototype.
1437 * i386.md (setmem, movmem patterns): Add 9th operand.
1438 * i386-protos.h (ix86_expand_set_or_movmem): Update prototype.
1439 * i386.c (ix86_expand_set_or_movmem): Take probable_max_size_exp
1440 argument; pass it to decide_alg.
1441
a28770e1 14422013-11-19 David Malcolm <dmalcolm@redhat.com>
1443
1444 * basic-block.h (n_basic_blocks_for_function): Rename macro to...
1445 (n_basic_blocks_for_fn): ...this.
1446
1447 (n_basic_blocks): Eliminate macro as work towards making uses of
1448 cfun be explicit.
1449
1450 * cfgloop.c (init_loops_structure): Update for renaming of
1451 "n_basic_blocks_for_function" to "n_basic_blocks_for_fn".
1452 * graph.c (draw_cfg_nodes_no_loops): Likewise.
1453 * ipa-utils.c (ipa_merge_profiles): Likewise.
1454 * lto-streamer-in.c (make_new_block): Likewise.
1455 * tree-cfg.c (init_empty_tree_cfg_for_function): Likewise.
1456 (dump_function_to_file): Likewise.
1457
1458 * alias.c (init_alias_analysis): Replace usage of "n_basic_blocks"
1459 macro with "n_basic_blocks_for_fn (cfun)".
1460 * bb-reorder.c (partition_hot_cold_basic_blocks): Likewise.
1461 (duplicate_computed_gotos): Likewise.
1462 (reorder_basic_blocks): Likewise.
1463 * bt-load.c (augment_live_range): Likewise.
1464 * cfg.c (expunge_block): Likewise.
1465 (compact_blocks): Likewise.
1466 * cfganal.c (single_pred_before_succ_order): Likewise.
1467 (compute_idf): Likewise.
1468 (flow_dfs_compute_reverse_init): Likewise.
1469 (pre_and_rev_post_order_compute): Likewise.
1470 (pre_and_rev_post_order_compute_fn): Likewise.
1471 (inverted_post_order_compute): Likewise.
1472 (post_order_compute): Likewise.
1473 (print_edge_list): Likewise.
1474 (find_unreachable_blocks): Likewise.
1475 (mark_dfs_back_edges): Likewise.
1476 * cfgcleanup.c (try_optimize_cfg): Likewise.
1477 (try_forward_edges): Likewise.
1478 * cfghooks.c (dump_flow_info): Likewise.
1479 * cfgloop.c (verify_loop_structure): Likewise.
1480 (get_loop_body): Likewise.
1481 (flow_loops_find): Likewise.
1482 * cfgloopmanip.c (add_loop): Likewise.
1483 (remove_path): Likewise.
1484 (find_path): Likewise.
1485 * cfgrtl.c (rtl_flow_call_edges_add): Likewise.
1486 (rtl_verify_bb_layout): Likewise.
1487 (entry_of_function): Likewise.
1488 (rtl_create_basic_block): Likewise.
1489 * coverage.c (coverage_compute_cfg_checksum): Likewise.
1490 * cprop.c (one_cprop_pass): Likewise.
1491 (is_too_expensive): Likewise.
1492 * df-core.c (df_compute_cfg_image): Likewise.
1493 (df_compact_blocks): Likewise.
1494 (df_worklist_dataflow_doublequeue): Likewise.
1495 * dominance.c (calculate_dominance_info): Likewise.
1496 (calc_dfs_tree): Likewise.
1497 (calc_dfs_tree_nonrec): Likewise.
1498 (init_dom_info): Likewise.
1499 * domwalk.c (cmp_bb_postorder): Likewise.
1500 * function.c (thread_prologue_and_epilogue_insns): Likewise.
1501 (generate_setjmp_warnings): Likewise.
1502 * fwprop.c (build_single_def_use_links): Likewise.
1503 * gcse.c (is_too_expensive): Likewise.
1504 (one_code_hoisting_pass): Likewise.
1505 (one_pre_gcse_pass): Likewise.
1506 * graphite.c (graphite_initialize): Likewise.
1507 * haifa-sched.c (haifa_sched_init): Likewise.
1508 * ipa-inline-analysis.c (estimate_function_body_sizes): Likewise.
1509 * ira.c (split_live_ranges_for_shrink_wrap): Likewise.
1510 * ira-build.c (ira_build): Likewise.
1511 * lcm.c (compute_nearerout): Likewise.
1512 (compute_available): Likewise.
1513 (compute_laterin): Likewise.
1514 (compute_antinout_edge): Likewise.
1515 * lra-lives.c (lra_create_live_ranges): Likewise.
1516 * lra.c (has_nonexceptional_receiver): Likewise.
1517 * mcf.c (create_fixup_graph): Likewise.
1518 * profile.c (branch_prob): Likewise.
1519 * reg-stack.c (convert_regs_2): Likewise.
1520 * regrename.c (regrename_analyze): Likewise.
1521 * reload1.c (has_nonexceptional_receiver): Likewise.
1522 * reorg.c (dbr_schedule): Likewise.
1523 * sched-deps.c (sched_deps_init): Likewise.
1524 * sched-ebb.c (schedule_ebbs): Likewise.
1525 * sched-rgn.c (extend_regions): Likewise.
1526 (schedule_insns): Likewise.
1527 (sched_rgn_init): Likewise.
1528 (extend_rgns): Likewise.
1529 (haifa_find_rgns): Likewise.
1530 * sel-sched-ir.c (recompute_rev_top_order): Likewise.
1531 (sel_recompute_toporder): Likewise.
1532 * sel-sched.c (run_selective_scheduling): Likewise.
1533 * store-motion.c (one_store_motion_pass): Likewise.
1534 (remove_reachable_equiv_notes): Likewise.
1535 * tracer.c (tracer): Likewise.
1536 (tail_duplicate): Likewise.
1537 * tree-cfg.c (gimple_flow_call_edges_add): Likewise.
1538 (dump_cfg_stats): Likewise.
1539 (gimple_dump_cfg): Likewise.
1540 (create_bb): Likewise.
1541 (build_gimple_cfg): Likewise.
1542 * tree-cfgcleanup.c (merge_phi_nodes): Likewise.
1543 * tree-inline.c (optimize_inline_calls): Likewise.
1544 (fold_marked_statements): Likewise.
1545 * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Likewise.
1546 * tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
1547 * tree-ssa-loop-im.c (analyze_memory_references): Likewise.
1548 * tree-ssa-loop-manip.c (compute_live_loop_exits): Likewise.
1549 * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
1550 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
1551 * tree-ssa-pre.c (do_pre): Likewise.
1552 (init_pre): Likewise.
1553 (compute_avail): Likewise.
1554 * tree-ssa-reassoc.c (init_reassoc): Likewise.
1555 * tree-ssa-sccvn.c (init_scc_vn): Likewise.
1556 * tree-ssa-tail-merge.c (alloc_cluster_vectors): Likewise.
1557 (init_worklist): Likewise.
1558 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
1559 * var-tracking.c (variable_tracking_main_1): Likewise.
1560 (vt_find_locations): Likewise.
1561 (vt_stack_adjustments): Likewise.
1562 * config/s390/s390.c (s390_optimize_nonescaping_tx): Likewise.
1563 * config/spu/spu.c (spu_machine_dependent_reorg): Likewise.
1564
810e0e82 15652013-11-18 Jan Hubicka <jh@suse.cz>
1566
a8274722 1567 * profile.c (compute_branch_probabilities): Do not sanity check
1568 run_max.
810e0e82 1569
fb1500e0 15702013-11-18 Kenneth Zadeck <zadeck@naturalbridge.com>
1571
1572 * tree.c (int_fits_type_p): Change GET_MODE_BITSIZE to
1573 GET_MODE_PRECISION.
1574 * fold-const.c (fold_single_bit_test_into_sign_test)
a8274722 1575 (fold_binary_loc): Change GET_MODE_BITSIZE to GET_MODE_PRECISION.
fb1500e0 1576
e31c70b9 15772013-11-18 Teresa Johnson <tejohnson@google.com>
1578
c00da7a3 1579 * cfgrtl.c (cfg_layout_initialize): Assert if we try to go into
1580 cfglayout after bb reordering.
1581 * passes.def: Move compgotos before bb reordering since it goes into
1582 cfglayout.
e31c70b9 1583
79913f53 15842013-11-18 Bernd Schmidt <bernds@codesourcery.com>
1585
1586 * cgraphunit.c (ipa_passes): Don't execute all_lto_gen_passes.
1587 * lto-streamer-out.c (lto_output, produce_asm_for_decls): No longer
1588 static.
1589 (pass_data_ipa_lto_gimple_out, pass_ipa_lto_gimple_out,
1590 make_pass_ipa_lto_gimple_out, pass_data_ipa_lto_finish_out,
1591 pass_ipa_lto_finish_out, make_pass_ipa_lto_finish_out): Remove.
1592 * lto-streamer.h (lto_output, produce_asm_for_decls): Declare.
1593 * pass-manager.h (GCC_PASS_LISTS, class pass_manager):
1594 Remove all_lto_gen_passes.
1595 * passes.c (pass_manager::dump_passes): Remove its use.
1596 (pass_manager::register_pass): Likewise.
1597 (ipa_read_summaries, ipa_read_optimization_summaries): Likewise.
1598 (pass_manager::pass_manager): Don't initialize or use it.
1599 (write_lto): New static function.
1600 (ipa_write_summaries_1, ipa_write_optimization_summaries): Use it
1601 instead of using all_lto_gen_passes.
1602 * passes.def (all_lto_gen_passes, pass_ipa_lto_gimple_out,
1603 pass_ipa_lto_finish_out): Delete.
1604 * tree-pass.h (make_pass_ipa_lto_gimple_out,
1605 make_pass_ipa_lto_finish_out): Don't declare.
1606
11af02d8 16072013-11-18 Jeff Law <law@redhat.com>
1608
1609 * tree-ssa-threadupdate.c (redirection_data): Record two
1610 duplicated blocks instead of just one.
1611 (local_info): Explain why we don't create a template for the
1612 second duplicated block in a thread path.
1613 (create_block_for_threading): Accept argument indicating array
1614 index into redirection_data to store its result.
1615 (lookup_redirection_data): Initialize both duplicate blocks.
1616 (ssa_create_duplicates): If a jump threading path needs multiple
1617 blocks duplicated, then duplicate them.
1618 (ssa_fix_duplicate_block_edges): Corresponding changes.
1619 (ssa_fixup_template_block, thread_single_edge): Likewise.
79913f53 1620
8b05c40f 16212013-11-18 Marek Polacek <polacek@redhat.com>
1622
1623 * doc/invoke.texi: Extend -fsanitize=undefined documentation.
1624
0e4d8867 16252013-11-18 Andrew Pinski <apinski@cavium.com>
1626 Steve Ellcey <sellcey@mips.com>
1627
1628 PR target/56552
1629 * config/mips/mips.md (*mov<GPR:mode>_on_<MOVECC:mode>): Remove
1630 type restriction from equality_operator on conditonal move.
1631 (*mov<SCALARF:mode>_on_<MOVECC:mode>): Ditto.
1632 (*mov<GPR:mode>_on_<GPR2:mode>_ne): New.
1633
afe75331 16342013-11-18 Jeff Law <law@redhat.com>
1635
1636 * tree-ssa-threadupdate.c: Fix file block comment.
1637 Fix minor indention issue.
1638
23d1bad6 16392013-11-18 Uros Bizjak <ubizjak@gmail.com>
1640
1641 * config/i386/i386.c (ix86_decompose_address): Use REG_P instead of
1642 ix86_address_subreg_operand. Move subreg checks to
1643 ix86_validate_address_register. Move address override check to
1644 ix86_legitimate_address_p.
1645 (ix86_validate_address_register): New function.
1646 (ix86_legitimate_address_p): Call ix86_validate_address_register
1647 to validate base and index registers. Add address override check
1648 from ix86_decompose_address.
1649 (ix86_decompose_address): Remove.
1650
6a00bf6b 16512013-11-18 Richard Biener <rguenther@suse.de>
1652
1653 PR tree-optimization/59125
1654 PR tree-optimization/54570
1655 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): When inlining
1656 is not complete do not treat component-references with offset zero
1657 but different fields as equal.
1658 * tree-object-size.c: Include tree-phinodes.h and ssa-iterators.h.
1659 (compute_object_sizes): Apply TLC. Propagate the constant
1660 results into all uses and fold their stmts.
1661 * passes.def (pass_all_optimizations): Move pass_object_sizes
1662 after the first pass_forwprop and before pass_fre.
1663
aa59f000 16642013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
1665
1666 * tree.h (tree_to_uhwi): Return an unsigned HOST_WIDE_INT.
1667 * tree.c (tree_to_uhwi): Return an unsigned HOST_WIDE_INT.
1668 (tree_ctz): Remove cast to unsigned type.
1669 * builtins.c (fold_builtin_memory_op): Likewise.
1670 * dwarf2out.c (descr_info_loc): Likewise.
1671 * godump.c (go_output_typedef): Likewise.
1672 * omp-low.c (expand_omp_simd): Likewise.
1673 * stor-layout.c (excess_unit_span): Likewise.
1674 * tree-object-size.c (addr_object_size): Likewise.
1675 * tree-sra.c (analyze_all_variable_accesses): Likewise.
1676 * tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
1677 (simplify_rotate): Likewise.
1678 * tree-ssa-strlen.c (adjust_last_stmt, handle_builtin_memcpy)
1679 (handle_pointer_plus): Likewise.
1680 * tree-switch-conversion.c (check_range): Likewise.
1681 * tree-vect-patterns.c (vect_recog_rotate_pattern): Likewise.
1682 * tsan.c (instrument_builtin_call): Likewise.
1683 * cfgexpand.c (defer_stack_allocation): Add cast to HOST_WIDE_INT.
1684 * trans-mem.c (tm_log_add): Likewise.
1685 * config/aarch64/aarch64.c (aapcs_vfp_sub_candidate): Likewise.
1686 * config/arm/arm.c (aapcs_vfp_sub_candidate): Likewise.
1687 * config/rs6000/rs6000.c (rs6000_aggregate_candidate): Likewise.
1688 * config/mips/mips.c (r10k_safe_mem_expr_p): Make offset unsigned.
1689
9351cc79 16902013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
1691
1692 * tree.h (host_integerp, tree_low_cst): Delete.
1693 * tree.c (host_integerp, tree_low_cst): Delete.
1694
08f817b3 16952013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
1696
1697 * expr.h: Update comments to refer to tree_to_[su]hwi rather
1698 than tree_low_cst.
1699 * fold-const.c (fold_binary_loc): Likewise.
1700 * expr.c (store_constructor): Use tree_to_uhwi rather than
1701 tree_low_cst.
1702 * ipa-utils.h (possible_polymorphic_call_target_p): Likewise.
1703 * stmt.c (emit_case_dispatch_table): Likewise.
1704 * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
1705
6a0712d4 17062013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
1707
1708 * alias.c, asan.c, builtins.c, cfgexpand.c, cgraph.c,
1709 config/aarch64/aarch64.c, config/alpha/predicates.md,
1710 config/arm/arm.c, config/darwin.c, config/epiphany/epiphany.c,
1711 config/i386/i386.c, config/iq2000/iq2000.c, config/m32c/m32c-pragma.c,
1712 config/mep/mep-pragma.c, config/mips/mips.c,
1713 config/picochip/picochip.c, config/rs6000/rs6000.c, cppbuiltin.c,
1714 dbxout.c, dwarf2out.c, emit-rtl.c, except.c, expr.c, fold-const.c,
1715 function.c, gimple-fold.c, godump.c, ipa-cp.c, ipa-prop.c, omp-low.c,
1716 predict.c, sdbout.c, stor-layout.c, trans-mem.c, tree-object-size.c,
1717 tree-sra.c, tree-ssa-ccp.c, tree-ssa-forwprop.c,
1718 tree-ssa-loop-ivcanon.c, tree-ssa-loop-ivopts.c, tree-ssa-loop-niter.c,
1719 tree-ssa-loop-prefetch.c, tree-ssa-strlen.c, tree-stdarg.c,
1720 tree-switch-conversion.c, tree-vect-generic.c, tree-vect-loop.c,
1721 tree-vect-patterns.c, tree-vrp.c, tree.c, tsan.c, ubsan.c, varasm.c:
1722 Replace tree_low_cst (..., 1) with tree_to_uhwi throughout.
1723
fcb97e84 17242013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
1725
1726 * builtins.c, cilk-common.c, config/aarch64/aarch64.c,
1727 config/alpha/alpha.c, config/arm/arm.c, config/c6x/predicates.md,
1728 config/i386/i386.c, config/ia64/predicates.md, config/s390/s390.c,
1729 coverage.c, dbxout.c, dwarf2out.c, except.c, explow.c, expr.c, expr.h,
1730 fold-const.c, gimple-fold.c, godump.c, ipa-prop.c, omp-low.c,
1731 predict.c, rtlanal.c, sdbout.c, stmt.c, stor-layout.c, targhooks.c,
1732 tree-cfg.c, tree-data-ref.c, tree-inline.c, tree-ssa-forwprop.c,
1733 tree-ssa-loop-prefetch.c, tree-ssa-phiopt.c, tree-ssa-sccvn.c,
1734 tree-ssa-strlen.c, tree-stdarg.c, tree-vect-data-refs.c,
1735 tree-vect-patterns.c, tree.c, tree.h, var-tracking.c, varasm.c:
1736 Replace tree_low_cst (..., 0) with tree_to_shwi throughout.
1737
b633e10e 17382013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
1739
1740 * tree.h (tree_to_shwi, tree_to_uhwi): Declare, with inline expansions.
1741 * tree.c (tree_to_shwi, tree_to_uhwi): New functions.
1742
81b52464 17432013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
1744
1745 * expr.h: Update comments to refer to tree_fits_[su]hwi_p rather
1746 than host_integerp.
1747
cd4547bf 17482013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
1749
1750 * builtins.c, config/alpha/alpha.c, config/iq2000/iq2000.c,
1751 config/mips/mips.c, dbxout.c, dwarf2out.c, expr.c, fold-const.c,
1752 gimple-fold.c, godump.c, omp-low.c, predict.c, sdbout.c, stor-layout.c,
1753 tree-dfa.c, tree-sra.c, tree-ssa-forwprop.c, tree-ssa-loop-prefetch.c,
1754 tree-ssa-phiopt.c, tree-ssa-sccvn.c, tree-ssa-strlen.c,
1755 tree-ssa-structalias.c, tree-vect-data-refs.c, tree-vect-patterns.c,
1756 tree.c, varasm.c, alias.c, cfgexpand.c, config/aarch64/aarch64.c,
1757 config/arm/arm.c, config/epiphany/epiphany.c, config/i386/i386.c,
1758 config/m32c/m32c-pragma.c, config/mep/mep-pragma.c,
1759 config/rs6000/rs6000.c, config/sparc/sparc.c, emit-rtl.c, function.c,
1760 gimplify.c, ipa-prop.c, stmt.c, trans-mem.c, tree-cfg.c,
1761 tree-object-size.c, tree-ssa-ccp.c, tree-ssa-loop-ivcanon.c,
1762 tree-stdarg.c, tree-switch-conversion.c, tree-vect-generic.c,
1763 tree-vrp.c, tsan.c, ubsan.c: Replace host_integerp (..., 1) with
1764 tree_fits_uhwi_p throughout.
1765
35ec552a 17662013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
1767
1768 * builtins.c, config/alpha/alpha.c, config/c6x/predicates.md,
1769 config/ia64/predicates.md, config/iq2000/iq2000.c, config/mips/mips.c,
1770 config/s390/s390.c, dbxout.c, dwarf2out.c, except.c, explow.c, expr.c,
1771 expr.h, fold-const.c, gimple-fold.c, gimple-ssa-strength-reduction.c,
1772 gimple.c, godump.c, graphite-scop-detection.c, graphite-sese-to-poly.c,
1773 omp-low.c, predict.c, rtlanal.c, sdbout.c, simplify-rtx.c,
1774 stor-layout.c, tree-data-ref.c, tree-dfa.c, tree-pretty-print.c,
1775 tree-sra.c, tree-ssa-alias.c, tree-ssa-forwprop.c,
1776 tree-ssa-loop-ivopts.c, tree-ssa-loop-prefetch.c, tree-ssa-math-opts.c,
1777 tree-ssa-phiopt.c, tree-ssa-reassoc.c, tree-ssa-sccvn.c,
1778 tree-ssa-strlen.c, tree-ssa-structalias.c, tree-vect-data-refs.c,
1779 tree-vect-patterns.c, tree-vectorizer.h, tree.c, var-tracking.c,
1780 varasm.c: Replace host_integerp (..., 0) with tree_fits_shwi_p
1781 throughout.
1782
031a4cb6 17832013-11-18 Richard Sandiford <rdsandiford@googlemail.com>
1784
1785 * tree.h (tree_fits_shwi_p, tree_fits_uhwi_p): Declare.
1786 * tree.c (tree_fits_shwi_p, tree_fits_uhwi_p): Define.
1787
a0aa85e7 17882013-11-18 Kirill Yukhin <kirill.yukhin@intel.com>
1789
c00da7a3 1790 * config/ia64/ia64.c (ia64_split_tmode_move): Mark load with `dead'
1791 flag if it kills its address, not its post-increment.
a0aa85e7 1792
0fcb889c 17932013-11-18 Ilya Enkovich <ilya.enkovich@intel.com>
1794
1795 * builtin-types.def (BT_FN_PTR_CONST_PTR_VAR): New.
1796 * chkp-builtins.def (BUILT_IN_CHKP_BIND_BOUNDS): New.
1797 * cfgexpand.c (expand_call_stmt): Expand BUILT_IN_CHKP_BIND_BOUNDS.
1798 * gimple.c (gimple_call_get_nobnd_arg_index): Remove.
1799 * gimple.h (gf_mask): Add GF_CALL_WITH_BOUNDS.
1800 (gimple_call_with_bounds_p): New.
1801 (gimple_call_set_with_bounds): New.
1802 (gimple_call_num_nobnd_args): Remove.
1803 (gimple_call_nobnd_arg): Remove.
1804 * tree.h (CALL_WITH_BOUNDS_P): New.
1805 * rtl.h (CALL_EXPR_WITH_BOUNDS_P): New.
1806
f1c8b4d7 18072013-11-18 Trevor Saunders <tsaunders@mozilla.com>
1808
1809 * cgraph.h (symtab_node_asm_name): Rename to symtab_node::asm_name.
1810 (symtab_node_name): Rename to symtab_node::name.
1811 (cgraph_node_asm_name): Remove.
1812 (varpool_node_asm_name): Remove.
1813 * cgraph.c cgraphclones.c cgraphunit.c ipa-cp.c ipa-devirt.c
1814 ipa-inline-analysis.c ipa-inline-transform.c ipa-inline.c
1815 ipa-profile.c ipa-prop.c ipa-pure-const.c ipa-ref.c ipa-reference.c
1816 ipa-utils.c ipa.c symtab.c tree-inline.c tree-sra.c
1817 tree-ssa-structalias.c value-prof.c varpool.c Adjust.
1818
d9a39368 18192013-11-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1820
1821 * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): New table.
1822 * config/arm/arm.c (arm_cortex_a53_tune): New.
1823 * config/arm/arm-cores.def (cortex-a53): Use cortex_a53 tuning struct.
1824
23d1bad6 18252013-11-12 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
ec3f1e8b 1826
1827 * config.gcc (i[34567]86-*-linux* | ...): Add bdver4.
1828 (case ${target}): Add bdver4.
1829 * config/i386/bdver3.md: Add bdver4.
1830 * config/i386/driver-i386.c: (host_detect_local_cpu): Let
1831 -march=native recognize bdver4 processors.
1832 * config/i386/i386-c.c (ix86_target_macros_internal): Add
1833 bdver4 def_and_undef
1834 * config/i386/i386.c (struct processor_costs bdver4_cost): New.
1835 (m_BDVER4): New definition.
1836 (m_AMD_MULTIPLE): Includes m_BDVER4.
1837 (processor_target_table): Add bdver4 entry.
1838 (static const char *const cpu_names): Add bdver4 entry.
1839 (software_prefetching_beneficial_p): Add bdver3.
1840 (ix86_option_override_internal): Add bdver4 instruction sets.
1841 (ix86_issue_rate): Add bdver4.
1842 (ix86_adjust_cost): Add bdver4.
1843 (ia32_multipass_dfa_lookahead): Add bdver4.
1844 (enum processor_model): Add M_AMDFAM15H_BDVER4.
1845 (struct _arch_names_table): Add M_AMDFAM15H_BDVER4.
1846 (has_dispatch): Add bdver4.
1847 * config/i386/i386.h (TARGET_BDVER4): New definition.
1848 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_bdver4.
1849 (enum processor_type): Add PROCESSOR_BDVER4.
1850 * config/i386/i386.md (define_attr "cpu"): Add bdver4.
1851 * config/i386/i386.opt (flag_dispatch_scheduler): Add bdver4.
c00da7a3 1852 * doc/extend.texi: Add details about bdver4.
1853 * doc/invoke.texi: Add details about bdver4. Add
ec3f1e8b 1854 fma4 and fsgsbase for bdver3. Add fma4 for bdver2.
1855
64a63369 18562013-11-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
1857
1858 * config/rs6000/rs6000.c (rs6000_emit_move): Use low word of
1859 sdmode_stack_slot also in little-endian mode.
1860
36d63243 18612013-11-17 Jan Hubicka <jh@suse.cz>
1862
1863 * doc/md.texi (setmem, movstr): Update documentation.
1864 * builtins.c (determine_block_size): New function.
23d1bad6 1865 (expand_builtin_memcpy): Use it and pass it to emit_block_move_hints.
36d63243 1866 (expand_builtin_memset_args): Use it and pass it to
1867 set_storage_via_setmem.
23d1bad6 1868 * expr.c (emit_block_move_via_movmem): Add min_size/max_size
1869 parameters; update call to expander.
36d63243 1870 (emit_block_move_hints): Add min_size/max_size parameters.
1871 (clear_storage_hints): Likewise.
1872 (set_storage_via_setmem): Likewise.
1873 (clear_storage): Update.
1874 * expr.h (emit_block_move_hints, clear_storage_hints,
23d1bad6 1875 set_storage_via_setmem): Update prototypes.
36d63243 1876 * i386.c (ix86_expand_set_or_movmem): Add bounds; export.
1877 (ix86_expand_movmem, ix86_expand_setmem): Remove.
1878 (ix86_expand_movmem, ix86_expand_setmem): Remove.
1879 * i386.md (movmem, setmem): Pass parameters.
1880
a8a8c61a 18812013-11-17 Uros Bizjak <ubizjak@gmail.com>
1882
1883 PR target/59153
1884 * config/i386/i386.c (ix86_address_subreg_operand): Do not
1885 reject non-integer subregs.
1886 (ix86_decompose_address): Do not reject invalid CONST_INT RTXes.
1887 Move check for invalid x32 constant addresses ...
1888 (ix86_legitimate_address_p): ... here.
1889
d5816376 18902011-11-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1891
1892 * config/rs6000/rs6000.c (rs6000_frame_related): Add split_reg
1893 parameter and use it in REG_FRAME_RELATED_EXPR note.
1894 (emit_frame_save): Call rs6000_frame_related with extra NULL_RTX
1895 parameter.
1896 (rs6000_emit_prologue): Likewise, but for little endian VSX
1897 stores, pass the source register of the store instead.
1898
e797f49f 18992013-11-17 Andrew MacLeod <amacleod@redhat.com>
1900
a8a8c61a 1901 * gimple.h: Reorder prototypes to match .c declaration order, and
1902 remove protyotypes for functions not in gimple.c.
e797f49f 1903 (LABEL): Move to tree-into-ssa.c.
1904 * gimple.c: Remove unused prototypes.
1905 (get_base_address): Move to tree.c.
1906 * tree.c (get_base_address): Relocate from gimple.c.
1907 * builtins.h (validate_gimple_arglist): Add prototype.
1908 * trans-mem.h (compute_transaction_bits, is_tm_ending): Add prototype.
1909 * cfgexpand.h: New File.
1910 (gimple_assign_rhs_to_tree, estimated_stack_frame_size): Add protoype.
1911 * tree.h (build_addr): Move to tree-nested.h.
1912 * tree-nested.h: New File.
1913 (build_addr, lower_nested_functions, insert_field_into_struct): Add
1914 prototypes.
1915 * tree-inline.h (estimated_stack_frame_size): Remove prototype.
1916 * ipa-inline-analysis.c: Include cfgexpand.h.
1917 * cgraphunit.c: Include tree-nested.h.
1918 * omp-low.c: Likewise.
1919 * tree-parloops.c: Likewise.
1920 * gimple-low.h: Likewise.
1921 * tree-profile.h: Likewise.
1922 * expr.c: Include cfgexpand.h.
1923 * tree-affine.c: Likewise.
1924 * tree-ssa.c: Likewise.
1925 * tree-ssa-loop-im.c: Include trans-mem.h.
1926 * tree-ssa-tail-merge.c: Likewise.
1927 * value-prof.c: Include builtins.h and tree-nested.h.
1928 * tree-into-ssa.c (LABEL): Define here.
1929
da78abba 19302013-11-16 Joern Rennecke <joern.rennecke@embecosm.com>
1931
1932 * config/arc/arc.c (arc_predicate_delay_insns): New function.
1933 (pass_data_arc_predicate_delay_insns): New pass_data instance.
1934 (pass_arc_predicate_delay_insns): New subclass of rtl_opt_class.
1935 (make_pass_arc_predicate_delay_insns): New function.
1936 (arc_init): Register pass_arc_predicate_delay_insns if
1937 flag_delayed_branch is active.
1938
fcae9444 19392013-11-16 Joern Rennecke <joern.rennecke@embecosm.com>
1940
1941 * config/arc/constraints.md (Rcq): Simplify register number test.
1942
95f19d08 19432013-11-15 Aldy Hernandez <aldyh@redhat.com>
1944
1945 * gimple.h (enum gf_mask): Change the ordering of GF_OMP_* bits.
1946
5d2dafaf 19472013-11-15 Kaz Kojima <kkojima@gcc.gnu.org>
1948
1949 * config/sh/sh.c (barrier_align): Return 0 when barrier_or_label
1950 is null.
1951
f2697631 19522013-11-15 Aldy Hernandez <aldyh@redhat.com>
1953
1954 * Makefile.in (C_COMMON_OBJS): Depend on c-cilkplus.o.
1955 * gimple-pretty-print.c (dump_omp_for): Add case for
1956 GF_OMP_FOR_KIND_CILKSIMD.
1957 * gimple.h (enum gf_mask): Restructure entries to add
1958 GF_OMP_FOR_KIND_CILKSIMD.
1959 * gimplify.c (is_gimple_stmt): Add case for CILK_SIMD.
1960 (gimplify_omp_for): Handle CILK_SIMD.
1961 (gimplify_expr): Add ccase for CILK_SIMD.
1962 * omp-low.c (extract_omp_for_data): Handle CILK_SIMD.
1963 (build_outer_var_ref): Same.
1964 (check_omp_nesting_restrictions): Same.
1965 (lower_rec_input_clauses): Same.
1966 (lower_lastprivate_clauses): Same.
1967 (expand_omp_for): Same.
1968 (execute_expand_omp): Check flag_enable_cilkplus.
1969 (execute_lower_omp): Same.
1970 (diagnose_sb_0): Handle CILK_SIMD.
a8a8c61a 1971 (diagnose_omp_structured_block_errors): Check flag_enable_cilkplus.
f2697631 1972 (setjmp_or_longjmp_p): New.
1973 (scan_omp_1_stmt): Error on setjmp/longjmp in a simd construct.
1974 * tree-pretty-print.c (dump_generic_node): Add case for CILK_SIMD.
1975 * tree.def: Add tree code for CILK_SIMD.
1976
e6678275 19772013-11-15 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1978
1979 * config/rs6000/altivec.md (UNSPEC_VPERM_X, UNSPEC_VPERM_UNS_X):
1980 Remove.
1981 (altivec_vperm_<mode>): Revert earlier little endian change.
1982 (*altivec_vperm_<mode>_internal): Remove.
1983 (altivec_vperm_<mode>_uns): Revert earlier little endian change.
1984 (*altivec_vperm_<mode>_uns_internal): Remove.
a8a8c61a 1985 * config/rs6000/vector.md (vec_realign_load_<mode>): Revise commentary.
e6678275 1986
cb287480 19872013-11-15 Jeff Law <law@redhat.com>
1988
1989 * basic-block.h (has_abnormal_or_eh_outgoing_edge): Renamed from
1990 has_abnormal_or_outgoing_edge. Check for EH edges as well.
1991 * gimple-ssa-isolate-paths.c
1992 (find_implicit_erroneous_behaviour): Corresponding changes.
1993 Do not check stmt_ends_bb_p or GIMPLE_RETURN anymore.
1994 (find_explicit_erroneous_behaviour): Likewise.
1995
7cc3154d 19962013-11-15 Jeff Law <law@redhat.com>
1997
1998 * ifcvt.c (find_cond_trap): Properly handle case where
1999 trap_bb == else_bb.
2000
822f2c1b 20012013-11-15 Andreas Schwab <schwab@linux-m68k.org>
2002
2003 * configure: Regenerate.
2004
52e95e58 20052013-11-15 James Greenhalgh <james.greenhalgh@arm.com>
2006
a8a8c61a 2007 * config/aarch64/aarch64-simd.md: Remove simd_type from all patterns.
52e95e58 2008 * config/aarch64/aarch64.md: Likewise, correct "type" attribute
2009 where it is incorrect or missing.
2010
20448fd9 20112013-11-15 Richard Sandiford <rdsandiford@googlemail.com>
2012
2013 * dwarf2out.c (gen_enumeration_type_die): Remove unnecessary
2014 host_integerp test.
2015 * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
2016 Use TREE_INT_CST_LOW rather than tree_low_cst when reading the
2017 constant.
2018 * fold-const.c (fold_binary_loc): Replace a host_integerp/tree_low_cst
2019 pair with a TREE_CODE test and TREE_INT_CST_LOW.
2020 * tree-vect-generic.c (expand_vector_divmod): Likewise.
2021
420582bc 20222013-11-15 Richard Biener <rguenther@suse.de>
2023
2024 PR tree-optimization/50262
2025 * tree-ssa-alias.h (struct pt_solution): Split
2026 vars_contains_global into vars_contains_nonlocal,
2027 vars_contains_escaped and vars_contains_escaped_heap.
2028 * tree-ssa-structalias.c (label_visit): Expand comment.
2029 (handle_lhs_call): Adjust comment.
2030 (set_uids_in_ptset): Set the new flags appropriately.
2031 (pt_solution_set): Adjust.
2032 (pt_solution_set_var): Likewise.
2033 (pt_solution_ior_into): Likewise.
2034 (pt_solution_includes_global): Likewise.
2035 (pt_solutions_intersect_1): Optimize escaped handling.
2036 (compute_points_to_sets): Remove heap variable globalization.
2037 (ipa_escaped_pt): Adjust initializer.
2038 (pass_data_ipa_pta): Do not run TODO_update_ssa.
a8a8c61a 2039 * gimple-pretty-print.c (pp_points_to_solution): Print split flags.
420582bc 2040 * tree-ssa-alias.c (dump_points_to_solution): Likewise.
2041
740b4ee7 20422013-11-15 Richard Biener <rguenther@suse.de>
2043
2044 * tree-loop-distribution.c (tree_loop_distribution): Make sure
2045 to distribute all stores.
2046
ea8a42cc 20472013-11-15 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2048
2049 * doc/invoke.texi (-mabi=elfv1, -mabi=elfv2): Document.
2050
4543a554 20512013-11-15 Joseph Myers <joseph@codesourcery.com>
2052
a8a8c61a 2053 * acinclude.m4 (GCC_GLIBC_VERSION_GTE_IFELSE): New configure macro.
4543a554 2054 * configure.ac: Determine target_header_dir earlier.
2055 (--with-glibc-version): New configure option.
2056 Use GCC_GLIBC_VERSION_GTE_IFELSE in enable_gnu_unique_object,
2057 gcc_cv_libc_provides_ssp and gcc_cv_target_ldbl128 tests.
2058 * configure: Regenerate.
2059 * doc/install.texi (--enable-gnu-unique-object): Don't refer to
2060 native toolchains for default.
2061 (--with-glibc-version): Document.
2062
16b0db65 20632013-11-15 Eric Botcazou <ebotcazou@adacore.com>
2064
2065 * fold-const.c (fold_binary_loc) <comparisons>: Reuse local variable.
2066
5037630b 20672013-11-15 Uros Bizjak <ubizjak@gmail.com>
2068
2069 * lto-streamer-in.c (input function): Call cgraph_create_node if
2070 cgraph_get_node failed.
2071
da4b9ed5 20722013-11-14 Olivier Hainque <hainque@adacore.com>
2073
2074 * cfgexpand.c (defer_stack_allocation): When optimization is enabled,
2075 defer allocation of DECL_IGNORED_P variables at toplevel unless really
2076 small. Factorize size threshold computation from the existing one.
2077 (expand_used_vars): Refine comment.
2078
43d14b66 20792013-11-14 Cong Hou <congh@google.com>
2080
2081 * tree-vectorizer.h (struct dr_with_seg_len): Remove the base
2082 address field as it can be obtained from dr. Rename the struct.
2083 * tree-vect-data-refs.c (comp_dr_with_seg_len_pair): Consider
2084 steps of data references during sort.
2085 (vect_prune_runtime_alias_test_list): Adjust with the change to
2086 struct dr_with_seg_len.
2087 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
2088 Adjust with the change to struct dr_with_seg_len.
2089
b61383dd 20902013-11-14 Jeff Law <law@redhat.com>
2091
2092 PR middle-end/59127
2093 * basic-block.h (has_abnormal_outgoing_edge_p): Moved here from...
2094 * tree-inline.c (has_abnormal_outgoing_edge_p): Remove.
2095 * gimple-ssa-isolate-paths.c: Include tree-cfg.h.
2096 (find_implicit_erroneous_behaviour): If a block has abnormal outgoing
2097 edges, then ignore it. If the statement exhibiting erroneous
2098 behaviour ends basic blocks, with the exception of GIMPLE_RETURNs,
2099 then we can not optimize.
2100 (find_explicit_erroneous_behaviour): Likewise.
2101
e795d6e1 21022013-11-14 Andrew MacLeod <amacleod@redhat.com>
2103
2104 * gimplify-me.h: New file. Add prototypes.
2105 * gimplify.h: Don't include gimple.h.
2106 (struct gimplify_hasher, struct gimplify_ctx, is_gimple_sizepos):
2107 Relocate from gimple.h.
2108 * gimple.h (struct gimplify_hasher, struct gimplify_ctx,
2109 is_gimple_sizepos): Move to gimplify.h.
2110 (gimplify_hasher::hash, gimplify_hasher::equal): Move to gimplify.c.
2111 (enum gsi_iterator_update): Move to gimple-iterator.h.
2112 * gimple-iterator.h (enum gsi_iterator_update): Relocate from gimple.h.
2113 * gimplify-me.c: New File.
2114 (force_gimple_operand_1, force_gimple_operand,
2115 force_gimple_operand_gsi_1, force_gimple_operand_gsi,
2116 gimple_regimplify_operands): Relocate from gimplify.c.
2117 * gimplify.c (force_gimple_operand_1, force_gimple_operand,
2118 force_gimple_operand_gsi_1, force_gimple_operand_gsi,
2119 gimple_regimplify_operands): Move to gimplify-me.c.
5037630b 2120 (gimplify_hasher::hash, gimplify_hasher::equal): Relocate
2121 from gimple.h.
e795d6e1 2122 * Makefile.in (OBJS): Add gimplify-me.o
2123 * asan.c: Include only gimplify.h, gimplify-me.h, and/or gimple.h as
2124 required.
2125 * cfgloopmanip.c: Likewise.
2126 * cgraphunit.c: Likewise.
2127 * cilk-common.c: Likewise.
2128 * fold-const.c: Likewise.
2129 * function.c: Likewise.
2130 * gimple-expr.c: Likewise.
2131 * gimple-fold.c: Likewise.
2132 * gimple-ssa-strength-reduction.c: Likewise.
2133 * gimple.c: Likewise.
2134 * graphite-clast-to-gimple.c: Likewise.
2135 * graphite-sese-to-poly.c: Likewise.
2136 * ipa-prop.c: Likewise.
2137 * ipa-split.c: Likewise.
2138 * ipa.c: Likewise.
2139 * langhooks.c: Likewise.
2140 * omp-low.c: Likewise.
2141 * sese.c: Likewise.
2142 * stor-layout.c: Likewise.
2143 * targhooks.c: Likewise.
2144 * trans-mem.c: Likewise.
2145 * tree-affine.c: Likewise.
2146 * tree-cfg.c: Likewise.
2147 * tree-cfgcleanup.c: Likewise.
2148 * tree-complex.c: Likewise.
2149 * tree-if-conv.c: Likewise.
2150 * tree-inline.c: Likewise.
2151 * tree-loop-distribution.c: Likewise.
2152 * tree-nested.c: Likewise.
2153 * tree-parloops.c: Likewise.
2154 * tree-predcom.c: Likewise.
2155 * tree-profile.c: Likewise.
2156 * tree-scalar-evolution.c: Likewise.
2157 * tree-sra.c: Likewise.
2158 * tree-ssa-address.c: Likewise.
2159 * tree-ssa-ccp.c: Likewise.
2160 * tree-ssa-dce.c: Likewise.
2161 * tree-ssa-forwprop.c: Likewise.
2162 * tree-ssa-ifcombine.c: Likewise.
2163 * tree-ssa-loop-im.c: Likewise.
2164 * tree-ssa-loop-ivopts.c: Likewise.
2165 * tree-ssa-loop-manip.c: Likewise.
2166 * tree-ssa-loop-niter.c: Likewise.
2167 * tree-ssa-loop-prefetch.c: Likewise.
2168 * tree-ssa-loop-unswitch.c: Likewise.
2169 * tree-ssa-math-opts.c: Likewise.
2170 * tree-ssa-phiopt.c: Likewise.
2171 * tree-ssa-phiprop.c: Likewise.
2172 * tree-ssa-pre.c: Likewise.
2173 * tree-ssa-propagate.c: Likewise.
2174 * tree-ssa-reassoc.c: Likewise.
2175 * tree-ssa-sccvn.c: Likewise.
2176 * tree-ssa-strlen.c: Likewise.
2177 * tree-ssa.c: Likewise.
2178 * tree-switch-conversion.c: Likewise.
2179 * tree-tailcall.c: Likewise.
2180 * tree-vect-data-refs.c: Likewise.
2181 * tree-vect-generic.c: Likewise.
2182 * tree-vect-loop-manip.c: Likewise.
2183 * tree-vect-loop.c: Likewise.
2184 * tree-vect-patterns.c: Likewise.
2185 * tree-vect-stmts.c: Likewise.
2186 * tree.c: Likewise.
2187 * tsan.c: Likewise.
2188 * value-prof.c: Likewise.
2189 * config/aarch64/aarch64.c: Likewise.
2190 * config/alpha/alpha.c: Likewise.
2191 * config/darwin.c: Likewise.
2192 * config/i386/i386.c: Likewise.
2193 * config/ia64/ia64.c: Likewise.
2194 * config/mep/mep.c: Likewise.
2195 * config/mips/mips.c: Likewise.
2196 * config/rs6000/rs6000.c: Likewise.
2197 * config/s390/s390.c: Likewise.
2198 * config/sh/sh.c: Likewise.
2199 * config/sparc/sparc.c: Likewise.
2200 * config/spu/spu.c: Likewise.
2201 * config/stormy16/stormy16.c: Likewise.
2202 * config/tilegx/tilegx.c: Likewise.
2203 * config/tilepro/tilepro.c: Likewise.
2204 * config/xtensa/xtensa.c: Likewise.
2205
9ed99284 22062013-11-14 Diego Novillo <dnovillo@google.com>
2207
2208 * Makefile.in (PLUGIN_HEADERS): Add stringpool.h.
2209
22102013-11-14 Diego Novillo <dnovillo@google.com>
2211
2212 * tree.h: Include fold-const.h.
2213 (aggregate_value_p): Moved to function.h.
2214 (alloca_call_p): Moved to calls.h.
2215 (allocate_struct_function): Moved to function.h.
2216 (apply_tm_attr): Moved to attribs.h.
2217 (array_at_struct_end_p): Moved to expr.h.
2218 (array_ref_element_size): Moved to tree-dfa.h.
2219 (array_ref_low_bound): Moved to tree-dfa.h.
2220 (array_ref_up_bound): Moved to tree.h.
2221 (assemble_alias): Moved to cgraph.h.
2222 (bit_from_pos): Moved to stor-layout.h.
2223 (build_addr): Moved to tree-nested.h.
2224 (build_duplicate_type): Moved to tree-inline.h.
2225 (build_fold_addr_expr): Moved to fold-const.h.
2226 (build_fold_addr_expr_with_type): Moved to fold-const.h.
2227 (build_fold_addr_expr_with_type_loc): Moved to fold-const.h.
2228 (build_fold_indirect_ref): Moved to fold-const.h.
2229 (build_fold_indirect_ref_loc): Moved to fold-const.h.
2230 (build_personality_function): Moved to tree.h.
2231 (build_range_check): Moved to fold-const.h.
2232 (build_simple_mem_ref): Moved to fold-const.h.
2233 (build_simple_mem_ref_loc): Moved to fold-const.h.
2234 (build_tm_abort_call): Moved to trans-mem.h.
2235 (byte_from_pos): Moved to stor-layout.h.
2236 (call_expr_flags): Moved to calls.h.
2237 (can_move_by_pieces): Moved to expr.h.
2238 (categorize_ctor_elements): Moved to expr.h.
2239 (change_decl_assembler_name): Moved to gcc-symtab.h.
2240 (combine_comparisons): Moved to fold-const.h.
2241 (complete_ctor_at_level_p): Moved to tree.h.
2242 (component_ref_field_offset): Moved to tree-dfa.h.
2243 (compute_builtin_object_size): Moved to tree-object-size.h.
2244 (compute_record_mode): Moved to stor-layout.h.
2245 (constant_boolean_node): Moved to fold-const.h.
2246 (constructor_static_from_elts_p): Moved to varasm.h.
2247 (cxx11_attribute_p): Moved to attribs.h.
2248 (debug_body): Moved to print-tree.h.
2249 (debug_find_tree): Moved to tree-inline.h.
2250 (debug_fold_checksum): Moved to fold-const.h.
2251 (debug_head): Moved to print-tree.h.
2252 (debug_head): Moved to print-tree.h.
2253 (debug_raw): Moved to print-tree.h.
2254 (debug_tree): Moved to print-tree.h.
2255 (debug_vec_tree): Moved to print-tree.h.
2256 (debug_verbose): Moved to print-tree.h.
2257 (debug_verbose): Moved to print-tree.h.
2258 (decl_attributes): Moved to attribs.h.
2259 (decl_binds_to_current_def_p): Moved to varasm.h.
2260 (decl_default_tls_model): Moved to varasm.h.
2261 (decl_replaceable_p): Moved to varasm.h.
2262 (div_if_zero_remainder): Moved to fold-const.h.
2263 (double_int mem_ref_offset): Moved to fold-const.h.
2264 (dump_addr): Moved to print-tree.h.
2265 (element_precision): Moved to machmode.h.
2266 (expand_dummy_function_end): Moved to function.h.
2267 (expand_function_end): Moved to function.h.
2268 (expand_function_start): Moved to function.h.
2269 (expand_label): Moved to stmt.h.
2270 (expr_first): Moved to tree-iterator.h.
2271 (expr_last): Moved to tree-iterator.h.
2272 (finalize_size_functions): Moved to stor-layout.h.
2273 (finish_builtin_struct): Moved to stor-layout.h.
2274 (finish_record_layout): Moved to stor-layout.h.
2275 (fixup_signed_type): Moved to stor-layout.h.
2276 (fixup_unsigned_type): Moved to stor-layout.h.
2277 (flags_from_decl_or_type): Moved to calls.h.
2278 (fold): Moved to fold-const.h.
2279 (fold_abs_const): Moved to fold-const.h.
2280 (fold_binary): Moved to fold-const.h.
2281 (fold_binary_loc): Moved to fold-const.h.
2282 (fold_binary_to_constant): Moved to fold-const.h.
2283 (fold_build1): Moved to fold-const.h.
2284 (fold_build1_initializer_loc): Moved to fold-const.h.
2285 (fold_build1_loc): Moved to fold-const.h.
2286 (fold_build1_stat_loc): Moved to fold-const.h.
2287 (fold_build2): Moved to fold-const.h.
2288 (fold_build2_initializer_loc): Moved to fold-const.h.
2289 (fold_build2_loc): Moved to fold-const.h.
2290 (fold_build2_stat_loc): Moved to fold-const.h.
2291 (fold_build3): Moved to fold-const.h.
2292 (fold_build3_loc): Moved to fold-const.h.
2293 (fold_build3_stat_loc): Moved to fold-const.h.
2294 (fold_build_call_array): Moved to fold-const.h.
2295 (fold_build_call_array_initializer): Moved to fold-const.h.
2296 (fold_build_call_array_initializer_loc): Moved to fold-const.h.
2297 (fold_build_call_array_loc): Moved to fold-const.h.
2298 (fold_build_cleanup_point_expr): Moved to fold-const.h.
2299 (fold_convert): Moved to fold-const.h.
2300 (fold_convert_loc): Moved to fold-const.h.
2301 (fold_convertible_p): Moved to fold-const.h.
2302 (fold_defer_overflow_warnings): Moved to fold-const.h.
2303 (fold_deferring_overflow_warnings_p): Moved to fold-const.h.
2304 (fold_fma): Moved to fold-const.h.
2305 (fold_ignored_result): Moved to fold-const.h.
2306 (fold_indirect_ref): Moved to fold-const.h.
2307 (fold_indirect_ref_1): Moved to fold-const.h.
2308 (fold_indirect_ref_loc): Moved to fold-const.h.
2309 (fold_read_from_constant_string): Moved to fold-const.h.
2310 (fold_real_zero_addition_p): Moved to fold-const.h.
2311 (fold_single_bit_test): Moved to fold-const.h.
2312 (fold_strip_sign_ops): Moved to fold-const.h.
2313 (fold_ternary): Moved to fold-const.h.
2314 (fold_ternary_loc): Moved to fold-const.h.
2315 (fold_unary): Moved to tree-data-ref.h.
2316 (fold_unary_ignore_overflow): Moved to fold-const.h.
2317 (fold_unary_ignore_overflow_loc): Moved to fold-const.h.
2318 (fold_unary_loc): Moved to fold-const.h.
2319 (fold_unary_to_constant): Moved to fold-const.h.
2320 (fold_undefer_and_ignore_overflow_warnings): Moved to fold-const.h.
2321 (fold_undefer_overflow_warnings): Moved to fold-const.h.
2322 (folding_initializer): Moved to fold-const.h.
2323 (free_temp_slots): Moved to function.h.
2324 (generate_setjmp_warnings): Moved to function.h.
2325 (get_attribute_name): Moved to attribs.h.
2326 (get_identifier): Moved to stringpool.h.
2327 (get_identifier_with_length): Moved to stringpool.h.
2328 (get_inner_reference): Moved to tree.h.
2329 (gimple_alloca_call_p): Moved to calls.h.
2330 (gimplify_parameters): Moved to function.h.
2331 (highest_pow2_factor): Moved to expr.h.
2332 (indent_to): Moved to print-tree.h.
2333 (init_attributes): Moved to attribs.h.
2334 (init_dummy_function_start): Moved to function.h.
2335 (init_function_start): Moved to function.h.
2336 (init_inline_once): Moved to tree-inline.h.
2337 (init_object_sizes): Moved to tree-object-size.h.
2338 (init_temp_slots): Moved to function.h.
2339 (init_tree_optimization_optabs): Moved to optabs.h.
2340 (initialize_sizetypes): Moved to stor-layout.h.
2341 (initializer_constant_valid_for_bitfield_p): Moved to varasm.h.
2342 (initializer_constant_valid_p): Moved to varasm.h.
2343 (int_const_binop): Moved to fold-const.h.
2344 (internal_reference_types): Moved to stor-layout.h.
2345 (invert_tree_comparison): Moved to fold-const.h.
2346 (invert_truthvalue): Moved to fold-const.h.
2347 (invert_truthvalue_loc): Moved to fold-const.h.
2348 (is_tm_ending_fndecl): Moved to trans-mem.h.
2349 (is_tm_may_cancel_outer): Moved to trans-mem.h.
2350 (is_tm_pure): Moved to trans-mem.h.
2351 (is_tm_safe): Moved to trans-mem.h.
2352 (layout_decl): Moved to stor-layout.h.
2353 (layout_type): Moved to stor-layout.h.
2354 (lookup_attribute_spec): Moved to attribs.h.
2355 (make_accum_type): Moved to stor-layout.h.
2356 (make_decl_one_only): Moved to varasm.h.
2357 (make_decl_rtl): Moved to tree.h.
2358 (make_decl_rtl_for_debug): Moved to varasm.h.
2359 (make_fract_type): Moved to stor-layout.h.
2360 (make_or_reuse_sat_signed_accum_type): Moved to stor-layout.h.
2361 (make_or_reuse_sat_signed_fract_type): Moved to stor-layout.h.
2362 (make_or_reuse_sat_unsigned_accum_type): Moved to stor-layout.h.
2363 (make_or_reuse_sat_unsigned_fract_type): Moved to stor-layout.h.
2364 (make_or_reuse_signed_accum_type): Moved to stor-layout.h.
2365 (make_or_reuse_signed_fract_type): Moved to stor-layout.h.
2366 (make_or_reuse_unsigned_accum_type): Moved to stor-layout.h.
2367 (make_or_reuse_unsigned_fract_type): Moved to stor-layout.h.
2368 (make_range): Moved to fold-const.h.
2369 (make_range_step): Moved to fold-const.h.
2370 (make_sat_signed_accum_type): Moved to stor-layout.h.
2371 (make_sat_signed_fract_type): Moved to stor-layout.h.
2372 (make_sat_unsigned_accum_type): Moved to stor-layout.h.
2373 (make_sat_unsigned_fract_type): Moved to stor-layout.h.
2374 (make_signed_accum_type): Moved to stor-layout.h.
2375 (make_signed_fract_type): Moved to stor-layout.h.
2376 (make_signed_type): Moved to stor-layout.h.
2377 (make_unsigned_accum_type): Moved to stor-layout.h.
2378 (make_unsigned_fract_type): Moved to stor-layout.h.
2379 (make_unsigned_type): Moved to stor-layout.h.
2380 (mark_decl_referenced): Moved to varasm.h.
2381 (mark_referenced): Moved to varasm.h.
2382 (may_negate_without_overflow_p): Moved to fold-const.h.
2383 (maybe_get_identifier): Moved to stringpool.h.
2384 (merge_ranges): Moved to fold-const.h.
2385 (merge_weak): Moved to varasm.h.
2386 (mode_for_size_tree): Moved to stor-layout.h.
2387 (multiple_of_p): Moved to fold-const.h.
2388 (must_pass_in_stack_var_size): Moved to calls.h.
2389 (must_pass_in_stack_var_size_or_pad): Moved to calls.h.
2390 (native_encode_expr): Moved to fold-const.h.
2391 (native_interpret_expr): Moved to fold-const.h.
2392 (non_lvalue): Moved to fold-const.h.
2393 (non_lvalue_loc): Moved to fold-const.h.
2394 (normalize_offset): Moved to stor-layout.h.
2395 (normalize_rli): Moved to stor-layout.h.
2396 (notice_global_symbol): Moved to varasm.h.
2397 (omit_one_operand): Moved to fold-const.h.
2398 (omit_one_operand_loc): Moved to fold-const.h.
2399 (omit_two_operands): Moved to fold-const.h.
2400 (omit_two_operands_loc): Moved to fold-const.h.
2401 (operand_equal_p): Moved to tree-data-ref.h.
2402 (parse_input_constraint): Moved to stmt.h.
2403 (parse_output_constraint): Moved to stmt.h.
2404 (place_field): Moved to stor-layout.h.
2405 (pop_function_context): Moved to function.h.
2406 (pop_temp_slots): Moved to function.h.
2407 (pos_from_bit): Moved to stor-layout.h.
2408 (preserve_temp_slots): Moved to function.h.
2409 (print_node): Moved to print-tree.h.
2410 (print_node_brief): Moved to print-tree.h.
2411 (print_rtl): Moved to rtl.h.
2412 (process_pending_assemble_externals): Moved to varasm.h.
2413 (ptr_difference_const): Moved to fold-const.h.
2414 (push_function_context): Moved to function.h.
2415 (push_struct_function): Moved to function.h.
2416 (push_temp_slots): Moved to function.h.
2417 (record_tm_replacement): Moved to trans-mem.h.
2418 (relayout_decl): Moved to stor-layout.h.
2419 (resolve_asm_operand_names): Moved to stmt.h.
2420 (resolve_unique_section): Moved to varasm.h.
2421 (rli_size_so_far): Moved to stor-layout.h.
2422 (rli_size_unit_so_far): Moved to stor-layout.h.
2423 (round_down): Moved to fold-const.h.
2424 (round_down_loc): Moved to fold-const.h.
2425 (round_up): Moved to fold-const.h.
2426 (round_up_loc): Moved to fold-const.h.
2427 (set_decl_incoming_rtl): Moved to emit-rtl.h.
2428 (set_decl_rtl): Moved to tree.h.
2429 (set_min_and_max_values_for_integral_type): Moved to stor-layout.h.
2430 (set_user_assembler_name): Moved to varasm.h.
2431 (setjmp_call_p): Moved to calls.h.
2432 (size_binop): Moved to fold-const.h.
2433 (size_binop_loc): Moved to fold-const.h.
2434 (size_diffop): Moved to fold-const.h.
2435 (size_diffop_loc): Moved to fold-const.h.
2436 (size_int_kind): Moved to fold-const.h.
2437 (stack_protect_epilogue): Moved to function.h.
2438 (start_record_layout): Moved to stor-layout.h.
2439 (supports_one_only): Moved to varasm.h.
2440 (swap_tree_comparison): Moved to fold-const.h.
2441 (tm_malloc_replacement): Moved to trans-mem.h.
2442 (tree build_fold_addr_expr_loc): Moved to fold-const.h.
2443 (tree build_invariant_address): Moved to fold-const.h.
2444 (tree_binary_nonnegative_warnv_p): Moved to fold-const.h.
2445 (tree_binary_nonzero_warnv_p): Moved to fold-const.h.
2446 (tree_call_nonnegative_warnv_p): Moved to fold-const.h.
2447 (tree_expr_nonnegative_p): Moved to fold-const.h.
2448 (tree_expr_nonnegative_warnv_p): Moved to fold-const.h.
2449 (tree_output_constant_def): Moved to varasm.h.
2450 (tree_overlaps_hard_reg_set): Moved to stmt.h.
2451 (tree_single_nonnegative_warnv_p): Moved to fold-const.h.
2452 (tree_single_nonzero_warnv_p): Moved to fold-const.h.
2453 (tree_swap_operands_p): Moved to fold-const.h.
2454 (tree_unary_nonnegative_warnv_p): Moved to fold-const.h.
2455 (tree_unary_nonzero_warnv_p): Moved to fold-const.h.
2456 (update_alignment_for_field): Moved to stor-layout.h.
2457 (use_register_for_decl): Moved to function.h.
2458 (variable_size): Moved to rtl.h.
2459 (vector_type_mode): Moved to stor-layout.h.
2460 * cgraph.h: Corresponding changes.
2461 * emit-rtl.h: Corresponding changes.
2462 * expr.h: Corresponding changes.
2463 * function.h: Corresponding changes.
2464 * optabs.h: Corresponding changes.
2465 * trans-mem.h: Corresponding changes.
2466 Protect against multiple inclusion.
2467 * tree-inline.h: Corresponding changes.
2468 * tree-iterator.h: Corresponding changes.
2469 * tree-dfa.h: Include expr.h.
2470 * tree-ssanames.h: Include stringpool.h.
2471 * attribs.h: New file.
2472 * calls.h: New file.
2473 * fold-const.h: New file.
2474 * gcc-symtab.h: New file.
2475 * print-rtl.h: New file.
2476 * print-tree.h: New file.
2477 * stmt.h: New file.
2478 * stor-layout.h: New file.
2479 * strinpool.h: New file.
2480 * tree-nested.h: New file
2481 * tree-object-size.h: New file.
2482 * varasm.h: New file.
2483
24842013-11-14 Diego Novillo <dnovillo@google.com>
2485
2486 * alias.c: Include varasm.h.
2487 Include expr.h.
2488 * asan.c: Include calls.h.
2489 Include stor-layout.h.
2490 Include varasm.h.
2491 * attribs.c: Include stringpool.h.
2492 Include attribs.h.
2493 Include stor-layout.h.
2494 * builtins.c: Include stringpool.h.
2495 Include stor-layout.h.
2496 Include calls.h.
2497 Include varasm.h.
2498 Include tree-object-size.h.
2499 * calls.c: Include stor-layout.h.
2500 Include varasm.h.
2501 Include stringpool.h.
2502 Include attribs.h.
2503 * cfgexpand.c: Include stringpool.h.
2504 Include varasm.h.
2505 Include stor-layout.h.
2506 Include stmt.h.
2507 Include print-tree.h.
2508 * cgraph.c: Include varasm.h.
2509 Include calls.h.
2510 Include print-tree.h.
2511 * cgraphclones.c: Include stringpool.h.
2512 Include function.h.
2513 Include emit-rtl.h.
2514 Move inclusion of rtl.h earlier in the file.
2515 * cgraphunit.c: Include varasm.h.
2516 Include stor-layout.h.
2517 Include stringpool.h.
2518 * cilk-common.c: Include stringpool.h.
2519 Include stor-layout.h.
2520 * combine.c: Include stor-layout.h.
2521 * config/aarch64/aarch64-builtins.c: Include stor-layout.h.
2522 Include stringpool.h.
2523 Include calls.h.
2524 * config/aarch64/aarch64.c: Include stringpool.h.
2525 Include stor-layout.h.
2526 Include calls.h.
2527 Include varasm.h.
2528 * config/alpha/alpha.c: Include stor-layout.h.
2529 Include calls.h.
2530 Include varasm.h.
2531 * config/arc/arc.c: Include varasm.h.
2532 Include stor-layout.h.
2533 Include stringpool.h.
2534 Include calls.h.
2535 * config/arm/arm.c: Include stringpool.h.
2536 Include stor-layout.h.
2537 Include calls.h.
2538 Include varasm.h.
2539 * config/avr/avr-c.c: Include stor-layout.h.
2540 * config/avr/avr-log.c: Include print-tree.h.
2541 * config/avr/avr.c: Include print-tree.h.
2542 Include calls.h.
2543 Include stor-layout.h.
2544 Include stringpool.h.
2545 * config/bfin/bfin.c: Include varasm.h.
2546 Include calls.h.
2547 * config/c6x/c6x.c: Include stor-layout.h.
2548 Include varasm.h.
2549 Include calls.h.
2550 Include stringpool.h.
2551 * config/cr16/cr16.c: Include stor-layout.h.
2552 Include calls.h.
2553 * config/cris/cris.c: Include varasm.h.
2554 Include stor-layout.h.
2555 Include calls.h.
2556 Include stmt.h.
2557 * config/darwin.c: Include stringpool.h.
2558 Include varasm.h.
2559 Include stor-layout.h.
2560 * config/epiphany/epiphany.c: Include stor-layout.h.
2561 Include varasm.h.
2562 Include calls.h.
2563 Include stringpool.h.
2564 * config/fr30/fr30.c: Include stor-layout.h.
2565 Include varasm.h.
2566 * config/frv/frv.c: Include varasm.h.
2567 Include stor-layout.h.
2568 Include stringpool.h.
2569 * config/h8300/h8300.c: Include stor-layout.h.
2570 Include varasm.h.
2571 Include calls.h.
2572 Include stringpool.h.
2573 * config/i386/i386.c: Include stringpool.h.
2574 Include attribs.h.
2575 Include calls.h.
2576 Include stor-layout.h.
2577 Include varasm.h.
2578 * config/i386/winnt-cxx.c: Include stringpool.h.
2579 Include attribs.h.
2580 * config/i386/winnt.c: Include stringpool.h.
2581 Include varasm.h.
2582 * config/ia64/ia64-c.c: Include stringpool.h.
2583 * config/ia64/ia64.c: Include stringpool.h.
2584 Include stor-layout.h.
2585 Include calls.h.
2586 Include varasm.h.
2587 * config/iq2000/iq2000.c: Include stor-layout.h.
2588 Include calls.h.
2589 Include varasm.h.
2590 * config/lm32/lm32.c: Include calls.h.
2591 * config/m32c/m32c.c: Include stor-layout.h.
2592 Include varasm.h.
2593 Include calls.h.
2594 * config/m32r/m32r.c: Include stor-layout.h.
2595 Include varasm.h.
2596 Include stringpool.h.
2597 Include calls.h.
2598 * config/m68k/m68k.c: Include calls.h.
2599 Include stor-layout.h.
2600 Include varasm.h.
2601 * config/mcore/mcore.c: Include stor-layout.h.
2602 Include varasm.h.
2603 Include stringpool.h.
2604 Include calls.h.
2605 * config/mep/mep.c: Include varasm.h.
2606 Include calls.h.
2607 Include stringpool.h.
2608 Include stor-layout.h.
2609 * config/microblaze/microblaze.c: Include varasm.h.
2610 Include stor-layout.h.
2611 Include calls.h.
2612 * config/mips/mips.c: Include varasm.h.
2613 Include stringpool.h.
2614 Include stor-layout.h.
2615 Include calls.h.
2616 * config/mmix/mmix.c: Include varasm.h.
2617 Include stor-layout.h.
2618 Include calls.h.
2619 * config/mn10300/mn10300.c: Include stor-layout.h.
2620 Include varasm.h.
2621 Include calls.h.
2622 * config/moxie/moxie.c: Include stor-layout.h.
2623 Include varasm.h.
2624 Include calls.h.
2625 * config/msp430/msp430.c: Include stor-layout.h.
2626 Include calls.h.
2627 * config/nds32/nds32.c: Include stor-layout.h.
2628 Include varasm.h.
2629 Include calls.h.
2630 * config/pa/pa.c: Include stor-layout.h.
2631 Include stringpool.h.
2632 Include varasm.h.
2633 Include calls.h.
2634 * config/pdp11/pdp11.c: Include stor-layout.h.
2635 Include varasm.h.
2636 Include calls.h.
2637 * config/picochip/picochip.c: Include calls.h.
2638 Include stor-layout.h.
2639 Include stringpool.h.
2640 Include varasm.h.
2641 * config/rl78/rl78.c: Include varasm.h.
2642 Include stor-layout.h.
2643 Include calls.h.
2644 * config/rs6000/rs6000-c.c: Include stor-layout.h.
2645 Include stringpool.h.
2646 * config/rs6000/rs6000.c: Include stringpool.h.
2647 Include stor-layout.h.
2648 Include calls.h.
2649 Include print-tree.h.
2650 Include varasm.h.
2651 * config/rx/rx.c: Include varasm.h.
2652 Include stor-layout.h.
2653 Include calls.h.
2654 * config/s390/s390.c: Include print-tree.h.
2655 Include stringpool.h.
2656 Include stor-layout.h.
2657 Include varasm.h.
2658 Include calls.h.
2659 * config/score/score.c: Include stringpool.h.
2660 Include calls.h.
2661 Include varasm.h.
2662 Include stor-layout.h.
2663 * config/sh/sh-c.c: Include stringpool.h.
2664 Include attribs.h.h.
2665 * config/sh/sh.c: Include stringpool.h.
2666 Include stor-layout.h.
2667 Include calls.h.
2668 Include varasm.h.
2669 * config/sol2-c.c: Include stringpool.h.
2670 Include attribs.h.
2671 * config/sol2-cxx.c: Include stringpool.h.
2672 * config/sol2.c: Include stringpool.h.
2673 Include varasm.h.
2674 * config/sparc/sparc.c: Include stringpool.h.
2675 Include stor-layout.h.
2676 Include calls.h.
2677 Include varasm.h.
2678 * config/spu/spu-c.c: Include stringpool.h.
2679 * config/spu/spu.c: Include stringpool.h.
2680 Include stor-layout.h.
2681 Include calls.h.
2682 Include varasm.h.
2683 * config/stormy16/stormy16.c: Include stringpool.h.
2684 Include stor-layout.h.
2685 Include varasm.h.
2686 Include calls.h.
2687 * config/tilegx/tilegx.c: Include stringpool.h.
2688 Include stor-layout.h.
2689 Include varasm.h.
2690 Include calls.h.
2691 * config/tilepro/tilepro.c: Include stringpool.h.
2692 Include stor-layout.h.
2693 Include varasm.h.
2694 Include calls.h.
2695 * config/v850/v850-c.c: Include stringpool.h.
2696 Include attribs.h.
2697 * config/v850/v850.c: Include stringpool.h.
2698 Include stor-layout.h.
2699 Include varasm.h.
2700 Include calls.h.
2701 * config/vax/vax.c: Include calls.h.
2702 Include varasm.h.
2703 * config/vms/vms.c: Include stringpool.h.
2704 * config/vxworks.c: Include stringpool.h.
2705 * config/xtensa/xtensa.c: Include stringpool.h.
2706 Include stor-layout.h.
2707 Include calls.h.
2708 Include varasm.h.
2709 * convert.c: Include stor-layout.h.
2710 * coverage.c: Include stringpool.h.
2711 Include stor-layout.h.
2712 * dbxout.c: Include varasm.h.
2713 Include stor-layout.h.
2714 * dojump.c: Include stor-layout.h.
2715 * dse.c: Include stor-layout.h.
2716 * dwarf2asm.c: Include stringpool.h.
2717 Include varasm.h.
2718 * dwarf2cfi.c: Include stor-layout.h.
2719 * dwarf2out.c: Include rtl.h.
2720 Include stringpool.h.
2721 Include stor-layout.h.
2722 Include varasm.h.
2723 Include function.h.
2724 Include emit-rtl.h.
2725 Move inclusion of rtl.h earlier in the file.
2726 * emit-rtl.c: Include varasm.h.
2727 * except.c: Include stringpool.h.
2728 Include stor-layout.h.
2729 * explow.c: Include stor-layout.h.
2730 * expmed.c: Include stor-layout.h.
2731 * expr.c: Include stringpool.h.
2732 Include stor-layout.h.
2733 Include attribs.h.
2734 Include varasm.h.
2735 * final.c: Include varasm.h.
2736 * fold-const.c: Include stor-layout.h.
2737 Include calls.h.
2738 Include tree-iterator.h.
2739 * function.c: Include stor-layout.h.
2740 Include varasm.h.
2741 Include stringpool.h.
2742 * genattrtab.c (write_header): Emit includes for varasm.h,
2743 stor-layout.h and calls.h.
2744 * genautomata.c (main): Likewise.
2745 * genemit.c: Likewise.
2746 * genopinit.c: Likewise.
2747 * genoutput.c (output_prologue): Likewise.
2748 * genpeep.c: Likewise.
2749 * genpreds.c (write_insn_preds_c): Likewise.
2750 * gengtype.c (open_base_files): Add stringpool.h.
2751 * gimple-expr.c: Include stringpool.h.
2752 Include stor-layout.h.
2753 * gimple-fold.c: Include stringpool.h.
2754 Include expr.h.
2755 Include stmt.h.
2756 Include stor-layout.h.
2757 * gimple-low.c: Include tree-nested.h.
2758 Include calls.h.
2759 * gimple-pretty-print.c: Include stringpool.h.
2760 * gimple-ssa-strength-reduction.c: Include stor-layout.h.
2761 Include expr.h.
2762 * gimple-walk.c: Include stmt.h.
2763 * gimple.c: Include calls.h.
2764 Include stmt.h.
2765 Include stor-layout.h.
2766 * gimplify.c: Include stringpool.h.
2767 Include calls.h.
2768 Include varasm.h.
2769 Include stor-layout.h.
2770 Include stmt.h.
2771 Include print-tree.h.
2772 Include expr.h.
2773 * gimplify-me.c: Include stmt.h
2774 Include stor-layout.h
2775 * internal-fn.c: Include stor-layout.h.
2776 * ipa-devirt.c: Include print-tree.h.
2777 Include calls.h.
2778 * ipa-inline-analysis.c: Include stor-layout.h.
2779 Include stringpool.h.
2780 Include print-tree.h.
2781 * ipa-inline.c: Include trans-mem.h.
2782 Include calls.h.
2783 * ipa-prop.c: Include expr.h.
2784 Include stor-layout.h.
2785 Include print-tree.h.
2786 * ipa-pure-const.c: Include print-tree.h.
2787 Include calls.h.
2788 * ipa-reference.c: Include calls.h.
2789 * ipa-split.c: Include stringpool.h.
2790 Include expr.h.
2791 Include calls.h.
2792 * ipa.c: Include calls.h.
2793 Include stringpool.h.
2794 * langhooks.c: Include stringpool.h.
2795 Include attribs.h.
2796 * lto-cgraph.c: Include stringpool.h.
2797 * lto-streamer-in.c: Include stringpool.h.
2798 * lto-streamer-out.c: Include stor-layout.h.
2799 Include stringpool.h.
2800 * omp-low.c: Include stringpool.h.
2801 Include stor-layout.h.
2802 Include expr.h.
2803 * optabs.c: Include stor-layout.h.
2804 Include stringpool.h.
2805 Include varasm.h.
2806 * passes.c: Include varasm.h.
2807 * predict.c: Include calls.h.
2808 * print-rtl.c: Include print-tree.h.
2809 * print-tree.c: Include varasm.h.
2810 Include print-rtl.h.
2811 Include stor-layout.h.
2812 * realmpfr.c: Include stor-layout.h.
2813 * reg-stack.c: Include varasm.h.
2814 * sdbout.c: Include varasm.h.
2815 Include stor-layout.h.
2816 * simplify-rtx.c: Include varasm.h.
2817 * stmt.c: Include varasm.h.
2818 Include stor-layout.h.
2819 * stor-layout.c: Include stor-layout.h.
2820 Include stringpool.h.
2821 Include varasm.h.
2822 Include print-tree.h.
2823 * symtab.c: Include rtl.h.
2824 Include print-tree.h.
2825 Include varasm.h.
2826 Include function.h.
2827 Include emit-rtl.h.
2828 * targhooks.c: Include stor-layout.h.
2829 Include varasm.h.
2830 * toplev.c: Include varasm.h.
2831 Include tree-inline.h.
2832 * trans-mem.c: Include calls.h.
2833 Include function.h.
2834 Include rtl.h.
2835 Include emit-rtl.h.
2836 * tree-affine.c: Include expr.h.
2837 * tree-browser.c: Include print-tree.h.
2838 * tree-call-cdce.c: Include stor-layout.h.
2839 * tree-cfg.c: Include trans-mem.h.
2840 Include stor-layout.h.
2841 Include print-tree.h.
2842 * tree-complex.c: Include stor-layout.h.
2843 * tree-data-ref.c: Include expr.h.
2844 * tree-dfa.c: Include stor-layout.h.
2845 * tree-eh.c: Include expr.h.
2846 Include calls.h.
2847 * tree-emutls.c: Include stor-layout.h.
2848 Include varasm.h.
2849 * tree-if-conv.c: Include stor-layout.h.
2850 * tree-inline.c: Include stor-layout.h.
2851 Include calls.h.
2852 * tree-loop-distribution.c: Include stor-layout.h.
2853 * tree-nested.c: Include stringpool.h.
2854 Include stor-layout.h.
2855 * tree-object-size.c: Include tree-object-size.h.
2856 * tree-outof-ssa.c: Include stor-layout.h.
2857 * tree-parloops.c: Include stor-layout.h.
2858 Include tree-nested.h.
2859 * tree-pretty-print.c: Include stor-layout.h.
2860 Include expr.h.
2861 * tree-profile.c: Include varasm.h.
2862 Include tree-nested.h.
2863 * tree-scalar-evolution.c: Include expr.h.
2864 * tree-sra.c: Include stor-layout.h.
2865 * tree-ssa-address.c: Include stor-layout.h.
2866 * tree-ssa-ccp.c: Include stor-layout.h.
2867 * tree-ssa-dce.c: Include calls.h.
2868 * tree-ssa-dom.c: Include stor-layout.h.
2869 * tree-ssa-forwprop.c: Include stor-layout.h.
2870 * tree-ssa-ifcombine.c: Include stor-layout.h.
2871 * tree-ssa-loop-ivopts.c: Include stor-layout.h.
2872 * tree-ssa-loop-niter.c: Include calls.h.
2873 Include expr.h.
2874 * tree-ssa-loop-prefetch.c: Include stor-layout.h.
2875 * tree-ssa-math-opts.c: Include stor-layout.h.
2876 * tree-ssa-operands.c: Include stmt.h.
2877 Include print-tree.h.
2878 * tree-ssa-phiopt.c: Include stor-layout.h.
2879 * tree-ssa-reassoc.c: Include stor-layout.h.
2880 * tree-ssa-sccvn.c: Include stor-layout.h.
2881 * tree-ssa-sink.c: Include stor-layout.h.
2882 * tree-ssa-strlen.c: Include stor-layout.h.
2883 * tree-ssa-structalias.c: Include stor-layout.h.
2884 Include stmt.h.
2885 * tree-ssa-tail-merge.c: Include stor-layout.h.
2886 Include trans-mem.h.
2887 * tree-ssa-uncprop.c: Include stor-layout.h.
2888 * tree-ssa.c: Include stor-layout.h.
2889 * tree-ssanames.c: Include stor-layout.h.
2890 * tree-streamer-in.c: Include stringpool.h.
2891 * tree-streamer-out.c: Include stor-layout.h.
2892 * tree-switch-conversion.c: Include varasm.h.
2893 Include stor-layout.h.
2894 * tree-tailcall.c: Include stor-layout.h.
2895 * tree-vect-data-refs.c: Include stor-layout.h.
2896 * tree-vect-generic.c: Include stor-layout.h.
2897 * tree-vect-loop.c: Include stor-layout.h.
2898 * tree-vect-patterns.c: Include stor-layout.h.
2899 * tree-vect-slp.c: Include stor-layout.h.
2900 * tree-vect-stmts.c: Include stor-layout.h.
2901 * tree-vectorizer.c: Include stor-layout.h.
2902 * tree-vrp.c: Include stor-layout.h.
2903 Include calls.h.
2904 * tree.c: Include stor-layout.h.
2905 Include calls.h.
2906 Include attribs.h.
2907 Include varasm.h.
2908 * tsan.c: Include expr.h.
2909 * ubsan.c: Include stor-layout.h.
2910 Include stringpool.h.
2911 * value-prof.c: Include tree-nested.h.
2912 Include calls.h.
2913 * var-tracking.c: Include varasm.h.
2914 Include stor-layout.h.
2915 * varasm.c: Include stor-layout.h.
2916 Include stringpool.h.
2917 Include gcc-symtab.h.
2918 Include varasm.h.
2919 * varpool.c: Include varasm.h.
2920 * vmsdbgout.c: Include varasm.h.
2921 * xcoffout.c: Include varasm.h.
2922
98345461 29232013-11-14 Joern Rennecke <joern.rennecke@embecosm.com>
2924
2925 * config/arc/arc.md (doloop_begin_i): Remove extra alignment;
2926 use (.&-4) idiom.
2927
75791c3f 29282013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2929
2930 * config/rs6000/sysv4le.h (LINUX64_DEFAULT_ABI_ELFv2): Define.
2931
238f342d 29322013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2933 Alan Modra <amodra@gmail.com>
2934
2935 * config/rs6000/rs6000.h (RS6000_SAVE_AREA): Handle ABI_ELFv2.
2936 (RS6000_SAVE_TOC): Remove.
2937 (RS6000_TOC_SAVE_SLOT): New macro.
2938 * config/rs6000/rs6000.c (rs6000_parm_offset): New function.
2939 (rs6000_parm_start): Use it.
2940 (rs6000_function_arg_advance_1): Likewise.
2941 (rs6000_emit_prologue): Use RS6000_TOC_SAVE_SLOT.
2942 (rs6000_emit_epilogue): Likewise.
2943 (rs6000_call_aix): Likewise.
2944 (rs6000_output_function_prologue): Do not save/restore r11
2945 around calling _mcount for ABI_ELFv2.
2946
29472013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2948 Alan Modra <amodra@gmail.com>
2949
2950 * config/rs6000/rs6000-protos.h (rs6000_reg_parm_stack_space):
2951 Add prototype.
2952 * config/rs6000/rs6000.h (RS6000_REG_SAVE): Remove.
2953 (REG_PARM_STACK_SPACE): Call rs6000_reg_parm_stack_space.
2954 * config/rs6000/rs6000.c (rs6000_parm_needs_stack): New function.
2955 (rs6000_function_parms_need_stack): Likewise.
2956 (rs6000_reg_parm_stack_space): Likewise.
2957 (rs6000_function_arg): Do not replace BLKmode by Pmode when
2958 returning a register argument.
2959
29602013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2961 Michael Gschwind <mkg@us.ibm.com>
2962
2963 * config/rs6000/rs6000.h (FP_ARG_MAX_RETURN): New macro.
2964 (ALTIVEC_ARG_MAX_RETURN): Likewise.
2965 (FUNCTION_VALUE_REGNO_P): Use them.
2966 * config/rs6000/rs6000.c (TARGET_RETURN_IN_MSB): Define.
2967 (rs6000_return_in_msb): New function.
2968 (rs6000_return_in_memory): Handle ELFv2 homogeneous aggregates.
2969 Handle aggregates of up to 16 bytes for ELFv2.
2970 (rs6000_function_value): Handle ELFv2 homogeneous aggregates.
2971
29722013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2973 Michael Gschwind <mkg@us.ibm.com>
2974
2975 * config/rs6000/rs6000.h (AGGR_ARG_NUM_REG): Define.
2976 * config/rs6000/rs6000.c (rs6000_aggregate_candidate): New function.
2977 (rs6000_discover_homogeneous_aggregate): Likewise.
2978 (rs6000_function_arg_boundary): Handle homogeneous aggregates.
2979 (rs6000_function_arg_advance_1): Likewise.
2980 (rs6000_function_arg): Likewise.
2981 (rs6000_arg_partial_bytes): Likewise.
2982 (rs6000_psave_function_arg): Handle BLKmode arguments.
2983
29842013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2985 Michael Gschwind <mkg@us.ibm.com>
2986
2987 * config/rs6000/rs6000.h (AGGR_ARG_NUM_REG): Define.
2988 * config/rs6000/rs6000.c (rs6000_aggregate_candidate): New function.
2989 (rs6000_discover_homogeneous_aggregate): Likewise.
2990 (rs6000_function_arg_boundary): Handle homogeneous aggregates.
2991 (rs6000_function_arg_advance_1): Likewise.
2992 (rs6000_function_arg): Likewise.
2993 (rs6000_arg_partial_bytes): Likewise.
2994 (rs6000_psave_function_arg): Handle BLKmode arguments.
2995
29962013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2997
2998 * config/rs6000/rs6000.c (machine_function): New member
2999 r2_setup_needed.
3000 (rs6000_emit_prologue): Set r2_setup_needed if necessary.
3001 (rs6000_output_mi_thunk): Set r2_setup_needed.
3002 (rs6000_output_function_prologue): Output global entry point
3003 prologue and local entry point marker if needed for ABI_ELFv2.
3004 Output -mprofile-kernel code here.
3005 (output_function_profiler): Do not output -mprofile-kernel
3006 code here; moved to rs6000_output_function_prologue.
3007 (rs6000_file_start): Output ".abiversion 2" for ABI_ELFv2.
3008
3009 (rs6000_emit_move): Do not handle dot symbols for ABI_ELFv2.
3010 (rs6000_output_function_entry): Likewise.
3011 (rs6000_assemble_integer): Likewise.
3012 (rs6000_elf_encode_section_info): Likewise.
3013 (rs6000_elf_declare_function_name): Do not create dot symbols
3014 or .opd section for ABI_ELFv2.
3015
3016 (rs6000_trampoline_size): Update for ABI_ELFv2 trampolines.
3017 (rs6000_trampoline_init): Likewise.
5037630b 3018 (rs6000_elf_file_end): Call file_end_indicate_exec_stack for ABI_ELFv2.
238f342d 3019
3020 (rs6000_call_aix): Handle ELFv2 indirect calls. Do not check
3021 for function descriptors in ABI_ELFv2.
3022
3023 * config/rs6000/rs6000.md ("*call_indirect_aix<mode>"): Support
3024 on ABI_AIX only, not ABI_ELFv2.
3025 ("*call_value_indirect_aix<mode>"): Likewise.
3026 ("*call_indirect_elfv2<mode>"): New pattern.
3027 ("*call_value_indirect_elfv2<mode>"): Likewise.
3028
3029 * config/rs6000/predicates.md ("symbol_ref_operand"): Do not
3030 check for function descriptors in ABI_ELFv2.
3031 ("current_file_function_operand"): Likewise.
3032
3033 * config/rs6000/ppc-asm.h [__powerpc64__ && _CALL_ELF == 2]:
3034 (toc): Undefine.
3035 (FUNC_NAME): Define ELFv2 variant.
3036 (JUMP_TARGET): Likewise.
3037 (FUNC_START): Likewise.
3038 (HIDDEN_FUNC): Likewise.
3039 (FUNC_END): Likeiwse.
3040
30412013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3042
3043 * config.gcc [powerpc*-*-* | rs6000-*-*]: Support --with-abi=elfv1
3044 and --with-abi=elfv2.
3045 * config/rs6000/option-defaults.h (OPTION_DEFAULT_SPECS): Add "abi".
3046 * config/rs6000/rs6000.opt (mabi=elfv1): New option.
3047 (mabi=elfv2): Likewise.
3048 * config/rs6000/rs6000-opts.h (enum rs6000_abi): Add ABI_ELFv2.
3049 * config/rs6000/linux64.h (DEFAULT_ABI): Do not hard-code to AIX_ABI
3050 if !RS6000_BI_ARCH.
3051 (ELFv2_ABI_CHECK): New macro.
3052 (SUBSUBTARGET_OVERRIDE_OPTIONS): Use it to decide whether to set
3053 rs6000_current_abi to ABI_AIX or ABI_ELFv2.
3054 (GLIBC_DYNAMIC_LINKER64): Support ELFv2 ld.so version.
3055 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Predefine
3056 _CALL_ELF and __STRUCT_PARM_ALIGN__ if appropriate.
3057
3058 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Handle ABI_ELFv2.
3059 (debug_stack_info): Likewise.
3060 (rs6000_file_start): Treat ABI_ELFv2 the same as ABI_AIX.
3061 (rs6000_legitimize_tls_address): Likewise.
3062 (rs6000_conditional_register_usage): Likewise.
3063 (rs6000_emit_move): Likewise.
3064 (init_cumulative_args): Likewise.
3065 (rs6000_function_arg_advance_1): Likewise.
3066 (rs6000_function_arg): Likewise.
3067 (rs6000_arg_partial_bytes): Likewise.
3068 (rs6000_output_function_entry): Likewise.
3069 (rs6000_assemble_integer): Likewise.
3070 (rs6000_savres_strategy): Likewise.
3071 (rs6000_stack_info): Likewise.
3072 (rs6000_function_ok_for_sibcall): Likewise.
3073 (rs6000_emit_load_toc_table): Likewise.
3074 (rs6000_savres_routine_name): Likewise.
3075 (ptr_regno_for_savres): Likewise.
3076 (rs6000_emit_prologue): Likewise.
3077 (rs6000_emit_epilogue): Likewise.
3078 (rs6000_output_function_epilogue): Likewise.
3079 (output_profile_hook): Likewise.
3080 (output_function_profiler): Likewise.
3081 (rs6000_trampoline_size): Likewise.
3082 (rs6000_trampoline_init): Likewise.
3083 (rs6000_elf_output_toc_section_asm_op): Likewise.
3084 (rs6000_elf_encode_section_info): Likewise.
3085 (rs6000_elf_reloc_rw_mask): Likewise.
3086 (rs6000_elf_declare_function_name): Likewise.
3087 (rs6000_function_arg_boundary): Treat ABI_ELFv2 the same as ABI_AIX,
3088 except that rs6000_compat_align_parm is always assumed false.
3089 (rs6000_gimplify_va_arg): Likewise.
3090 (rs6000_call_aix): Update comment.
3091 (rs6000_sibcall_aix): Likewise.
3092 * config/rs6000/rs6000.md ("tls_gd_aix<TLSmode:tls_abi_suffix>"):
3093 Treat ABI_ELFv2 the same as ABI_AIX.
3094 ("*tls_gd_call_aix<TLSmode:tls_abi_suffix>"): Likewise.
3095 ("tls_ld_aix<TLSmode:tls_abi_suffix>"): Likewise.
3096 ("*tls_ld_call_aix<TLSmode:tls_abi_suffix>"): Likewise.
3097 ("load_toc_aix_si"): Likewise.
3098 ("load_toc_aix_di"): Likewise.
3099 ("call"): Likewise.
3100 ("call_value"): Likewise.
3101 ("*call_local_aix<mode>"): Likewise.
3102 ("*call_value_local_aix<mode>"): Likewise.
3103 ("*call_nonlocal_aix<mode>"): Likewise.
3104 ("*call_value_nonlocal_aix<mode>"): Likewise.
3105 ("*call_indirect_aix<mode>"): Likewise.
3106 ("*call_value_indirect_aix<mode>"): Likewise.
3107 ("sibcall"): Likewise.
3108 ("sibcall_value"): Likewise.
3109 ("*sibcall_aix<mode>"): Likewise.
3110 ("*sibcall_value_aix<mode>"): Likewise.
3111 * config/rs6000/predicates.md ("symbol_ref_operand"): Likewise.
3112 ("current_file_function_operand"): Likewise.
3113
f4c4e2a5 31142013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3115
3116 * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Simplify logic
3117 by making use of the fact that for vector / floating point arguments
3118 passed both in VRs/FPRs and in the fixed parameter area, the partial
3119 bytes mechanism is in fact not used.
3120
d433040d 31212013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3122
3123 * config/rs6000/rs6000.c (rs6000_psave_function_arg): New function.
3124 (rs6000_finish_function_arg): Likewise.
3125 (rs6000_function_arg): Use rs6000_psave_function_arg and
3126 rs6000_finish_function_arg to handle both vector and floating
3127 point arguments that are also passed in GPRs / the stack.
3128
c3cb1963 31292013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3130
3131 * config/rs6000/rs6000.c (USE_FP_FOR_ARG_P): Remove TYPE argument.
3132 (USE_ALTIVEC_FOR_ARG_P): Likewise.
3133 (rs6000_darwin64_record_arg_advance_recurse): Update uses.
3134 (rs6000_function_arg_advance_1):Likewise.
3135 (rs6000_darwin64_record_arg_recurse): Likewise.
3136 (rs6000_function_arg): Likewise.
3137 (rs6000_arg_partial_bytes): Likewise.
3138
231e9287 31392013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3140
3141 * config/rs6000/rs6000.c (rs6000_option_override_internal): Replace
3142 "DEFAULT_ABI != ABI_AIX" test by testing for ABI_V4 or ABI_DARWIN.
3143 (rs6000_savres_strategy): Likewise.
3144 (rs6000_return_addr): Likewise.
3145 (rs6000_emit_load_toc_table): Replace "DEFAULT_ABI != ABI_AIX" by
3146 testing for ABI_V4 (since ABI_DARWIN is impossible here).
3147 (rs6000_emit_prologue): Likewise.
3148 (legitimate_lo_sum_address_p): Simplify DEFAULT_ABI test.
3149 (rs6000_elf_declare_function_name): Remove duplicated test.
3150 * config/rs6000/rs6000.md ("load_toc_v4_PIC_1"): Explicitly test
3151 for ABI_V4 (instead of "DEFAULT_ABI != ABI_AIX" test).
3152 ("load_toc_v4_PIC_1_normal"): Likewise.
3153 ("load_toc_v4_PIC_1_476"): Likewise.
3154 ("load_toc_v4_PIC_1b"): Likewise.
3155 ("load_toc_v4_PIC_1b_normal"): Likewise.
3156 ("load_toc_v4_PIC_1b_476"): Likewise.
3157 ("load_toc_v4_PIC_2"): Likewise.
3158 ("load_toc_v4_PIC_3b"): Likewise.
3159 ("load_toc_v4_PIC_3c"): Likewise.
3160 * config/rs6000/rs6000.h (RS6000_REG_SAVE): Simplify DEFAULT_ABI test.
3161 (RS6000_SAVE_AREA): Likewise.
3162 (FP_ARG_MAX_REG): Likewise.
3163 (RETURN_ADDRESS_OFFSET): Likewise.
3164 * config/rs6000/sysv.h (TARGET_TOC): Test for ABI_V4 instead
3165 of ABI_AIX.
3166 (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
3167 (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
3168
eddcc604 31692013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3170
3171 * config/rs6000/rs6000.c (rs6000_call_indirect_aix): Rename to ...
3172 (rs6000_call_aix): ... this. Handle both direct and indirect calls.
3173 Create call insn directly instead of via various gen_... routines.
3174 Mention special registers used by the call in CALL_INSN_FUNCTION_USAGE.
3175 (rs6000_sibcall_aix): New function.
3176 * config/rs6000/rs6000.md (TOC_SAVE_OFFSET_32BIT): Remove.
3177 (TOC_SAVE_OFFSET_64BIT): Likewise.
3178 (AIX_FUNC_DESC_TOC_32BIT): Likewise.
3179 (AIX_FUNC_DESC_TOC_64BIT): Likewise.
3180 (AIX_FUNC_DESC_SC_32BIT): Likewise.
3181 (AIX_FUNC_DESC_SC_64BIT): Likewise.
3182 ("call" expander): Call rs6000_call_aix.
3183 ("call_value" expander): Likewise.
3184 ("call_indirect_aix<ptrsize>"): Replace this pattern ...
3185 ("call_indirect_aix<ptrsize>_nor11"): ... and this pattern ...
3186 ("*call_indirect_aix<mode>"): ... by this insn pattern.
3187 ("call_value_indirect_aix<ptrsize>"): Replace this pattern ...
3188 ("call_value_indirect_aix<ptrsize>_nor11"): ... and this pattern ...
3189 ("*call_value_indirect_aix<mode>"): ... by this insn pattern.
3190 ("*call_nonlocal_aix32", "*call_nonlocal_aix64"): Replace by ...
3191 ("*call_nonlocal_aix<mode>"): ... this pattern.
3192 ("*call_value_nonlocal_aix32", "*call_value_nonlocal_aix64"): Replace
3193 ("*call_value_nonlocal_aix<mode>"): ... by this pattern.
3194 ("*call_local_aix<mode>"): New insn pattern.
3195 ("*call_value_local_aix<mode>"): Likewise.
3196 ("sibcall" expander): Call rs6000_sibcall_aix.
3197 ("sibcall_value" expander): Likewise. Move earlier in file.
3198 ("*sibcall_nonlocal_aix<mode>"): Replace by ...
3199 ("*sibcall_aix<mode>"): ... this pattern.
3200 ("*sibcall_value_nonlocal_aix<mode>"): Replace by ...
3201 ("*sibcall_value_aix<mode>"): ... this pattern.
3202 * config/rs6000/rs6000-protos.h (rs6000_call_indirect_aix): Remove.
3203 (rs6000_call_aix): Add prototype.
3204 (rs6000_sibcall_aix): Likewise.
3205
7c4fae98 32062013-11-14 Jakub Jelinek <jakub@redhat.com>
3207
3208 PR sanitizer/59122
3209 * asan.c (asan_emit_stack_protection): Ensure -fsection-anchors
3210 isn't confused by the artificial decl.
3211
3989b138 32122013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3213
3214 * config/rs6000/rs6000.c (rs6000_emit_prologue): Do not place a
3215 RTX_FRAME_RELATED_P marker on the UNSPEC_MOVESI_FROM_CR insn.
3216 Instead, add USEs of all modified call-saved CR fields to the
3217 insn storing the result to the stack slot, and provide an
3218 appropriate REG_FRAME_RELATED_EXPR for that insn.
3219 * config/rs6000/rs6000.md ("*crsave"): New insn pattern.
3220 * config/rs6000/predicates.md ("crsave_operation"): New predicate.
3221
2e090bf6 32222013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3223 Alan Modra <amodra@gmail.com>
3224
3225 * function.c (assign_parms): Use all.reg_parm_stack_space instead
3226 of re-evaluating REG_PARM_STACK_SPACE target macro.
3227 (locate_and_pad_parm): New parameter REG_PARM_STACK_SPACE. Use it
3228 instead of evaluating target macro REG_PARM_STACK_SPACE every time.
3229 (assign_parm_find_entry_rtl): Update call.
3230 * calls.c (initialize_argument_information): Update call.
3231 (emit_library_call_value_1): Likewise.
3232 * expr.h (locate_and_pad_parm): Update prototype.
3233
33eb84dc 32342013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
3235
3236 * calls.c (store_unaligned_arguments_into_pseudos): Skip PARALLEL
3237 arguments.
3238
b546cdca 32392013-11-14 DJ Delorie <dj@redhat.com>
3240
3241 * config/rx/rx.c (rx_mode_dependent_address_p): Allow offsets up
3242 to 16 bits.
3243
85309e9d 32442013-11-14 Jeff Law <law@redhat.com>
3245
5037630b 3246 * tree-ssa-threadedge.c (thread_through_normal_block): Only push the
3247 EDGE_START_JUMP_THREAD marker if the jump threading path is empty.
85309e9d 3248
ad6bb5f2 32492013-11-14 James Greenhalgh <james.greenhalgh@arm.com>
3250
3251 * doc/invoke.texi: Update documentation for AArch64's -mcpu
3252 and -mtune options.
3253
07979a11 32542013-11-14 James Greenhalgh <james.greenhalgh@arm.com>
3255
3256 * config/aarch64/aarch64-cores.def (example-1): Remove.
3257 (example-2): Likewise.
3258 * config/aarch64/aarch64-tune.md: Regenerate.
3259 * config/aarch64/aarch64.md: Do not include "large.md" or "small.md".
3260 (generic_sched): Remove "large", "small".
3261 * config/aarch64/large.md: Delete.
3262 * config/aarch64/small.md: Delete.
3263
7f29d7cc 32642013-11-14 James Greenhalgh <james.greenhalgh@arm.com>
3265
3266 * config/aarch64/aarch64-cores.def (cortex-a57): Tune for cortexa15.
3267 * config/aarch64/aarch64-tune.md: Regenerate.
3268 * config/aarch64/aarch64.md: Include cortex-a15 pipeline model.
3269 (generic_sched): "no" if we are tuning for cortexa15.
3270 * config/arm/cortex-a15.md: Include cortex-a15-neon.md by
3271 relative path.
3272
29be9de5 32732013-11-14 James Greenhalgh <james.greenhalgh@arm.com>
3274
3275 * config/aarch64/aarch64-arches.def (armv8-a): Tune for cortex-a53.
3276 * config/aarch64/aarch64.md: Do not include aarch64-generic.md.
3277 * config/aarch64/aarch64.c (aarch64_tune): Initialize to cortexa53.
3278 (all_cores): Use cortexa53 when tuning for "generic".
3279 (aarch64_override_options): Fix comment.
3280 * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Set to cortexa53.
3281 * config/aarch64/aarch64-generic.md: Delete.
3282
61ac4afd 32832013-11-14 James Greenhalgh <james.greenhalgh@arm.com>
3284
3285 * config/aarch64/aarch64.c (all_architectures): Remove "generic".
3286
b29be4e7 32872013-11-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3288
3289 * config/aarch64/aarch64.c: Include aarch-cost-tables.h.
3290 (generic_rtx_cost_table): Remove.
3291 (aarch64_rtx_costs): Use fields from cpu_cost_table.
3292 * config/aarch64/aarch64-protos.h (tune_params): Use cpu_cost_table for
3293 insn_extra_cost.
3294 (cpu_rtx_cost_table): Remove.
3295
ccfff6a8 32962013-11-14 Julian Brown <julian@codesourcery.com>
5037630b 3297 Joey Ye <joey.ye@arm.com>
ccfff6a8 3298
3299 * config/arm/arm.c (arm_cortex_m_branch_cost): New.
3300 (arm_v7m_tune): New.
5037630b 3301 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune, arm_9e_tune,
3302 arm_v6t2_tune, arm_cortex_tune, arm_cortex_a15_tune,
3303 arm_cortex_a5_tune, arm_v6m_tune): Add comments for Sched adj cost.
3304 * config/arm/arm-cores.def (cortex-m4, cortex-m3): Use arm_v7m_tune.
ccfff6a8 3305
958941b7 33062013-11-14 Kirill Yukhin <kirill.yukhin@intel.com>
3307
3308 PR target/57491
3309 * config/ia64/ia64.c (ia64_split_tmode_move): Relax `dead'
3310 flag setting.
3311
b0111832 33122013-11-14 Jakub Jelinek <jakub@redhat.com>
3313 Uros Bizjak <ubizjak@gmail.com>
3314
3315 PR target/59101
3316 * config/i386/i386.md (*anddi_2): Only allow CCZmode if
3317 operands[2] satisfies_constraint_Z that might have bit 31 set.
3318
456dc91f 33192013-11-13 Jeff Law <law@redhat.com>
3320
3321 PR tree-optimization/59102
3322 * gimple-ssa-isolate-paths.c
3323 (insert_trap_and_remove_trailing_statments): Ensure STMT is a
3324 gimple assignment before looking at gimple_assign_lhs.
3325
d0d59a98 33262013-11-13 Vladimir Makarov <vmakarov@redhat.com>
3327
3328 * ira.c: Add comment about threads at the top of file.
3329
f5f4a56d 33302013-11-13 Vladimir Makarov <vmakarov@redhat.com>
3331
3332 * ira-color.c (coalesce_allocnos): Don't allocate and free
3333 sorted_copies.
3334
b527c406 33352013-11-14 Tom de Vries <tom@codesourcery.com>
3336
3337 * tree-ssa-tail-merge.c (gimple_equal_p): Add test for structural
3338 equality for GIMPLE_ASSIGN.
3339
ba09ff60 33402013-11-14 Tom de Vries <tom@codesourcery.com>
3341
3342 * tree-ssa-tail-merge.c (gimple_operand_equal_value_p): Factor new
3343 function out of ...
3344 (gimple_equal_p): ... here.
3345
50a50143 33462013-11-14 Tom de Vries <tom@codesourcery.com>
3347
3348 * trans-mem.c (is_tm_ending): New function.
3349 * gimple.h (is_tm_ending): Declare.
3350 * tree-ssa-tail-merge.c (gimple_equal_p): Remove test on
3351 BUILT_IN_TM_COMMIT.
3352 (find_duplicate): Use is_tm_ending instead of is_tm_ending_fndecl.
3353
01f93827 33542013-11-14 Tom de Vries <tom@codesourcery.com>
3355
3356 * tree-ssa-tail-merge.c (gimple_equal_p): Remove equal variable.
3357
5037630b 33582013-11-13 Andrew MacLeod <amacleod@redhat.com>
dcf1a1ec 3359
3360 * gimple-walk.h: New File. Relocate prototypes from gimple.h.
3361 (struct walk_stmt_info): Relocate here from gimple.h.
3362 * gimple-iterator.h: New File. Relocate prototypes from gimple.h.
3363 (struct gimple_stmt_iterator_d): Relocate here from gimple.h.
3364 (gsi_start_1, gsi_none, gsi_start_bb, gsi_last_1, gsi_last_bb,
3365 gsi_end_p, gsi_one_before_end_p, gsi_next, gsi_prev, gsi_stmt,
3366 gsi_after_labels, gsi_next_nondebug, gsi_prev_nondebug,
3367 gsi_start_nondebug_bb, gsi_start_nondebug_after_labels_bb,
3368 gsi_last_nondebug_bb, gsi_bb, gsi_seq): Relocate here from gimple.h.
3369 * gimple.h (struct gimple_stmt_iterator_d): Move to gimple-iterator.h.
3370 (gsi_start_1, gsi_none, gsi_start_bb, gsi_last_1, gsi_last_bb,
3371 gsi_end_p, gsi_one_before_end_p, gsi_next, gsi_prev, gsi_stmt,
3372 gsi_after_labels, gsi_next_nondebug, gsi_prev_nondebug,
3373 gsi_start_nondebug_bb, gsi_start_nondebug_after_labels_bb,
3374 gsi_last_nondebug_bb, gsi_bb, gsi_seq): Move to gimple-iterator.h.
3375 (struct walk_stmt_info): Move to gimple-walk.h.
3376 (gimple_seq_set_location): Move to gimple.c
3377 * gimple-walk.c: New File.
3378 (walk_gimple_seq_mod, walk_gimple_seq, walk_gimple_asm, walk_gimple_op,
3379 walk_gimple_stmt, get_base_loadstore, walk_stmt_load_store_addr_ops,
3380 walk_stmt_load_store_ops): Relocate here from gimple.c.
3381 * gimple-iterator.c: Include gimple-iterator.h.
3382 * gimple.c (walk_gimple_seq_mod, walk_gimple_seq, walk_gimple_asm,
3383 walk_gimple_op, walk_gimple_stmt, get_base_loadstore,
3384 walk_stmt_load_store_addr_ops, walk_stmt_load_store_ops): Move to
3385 gimple-walk.c.
3386 (gimple_seq_set_location): Relocate from gimple.h.
3387 * tree-phinodes.h (set_phi_nodes): Move to tree-phinodes.c.
3388 * tree-phinodes.c (set_phi_nodes): Relocate from tree-phinodes.h.
3389 * gengtype.c (open_base_files): Add gimple-iterator.h to include list.
3390 * Makefile.in (OBJS): Add gimple-walk.o
3391 * asan.c: Update Include list as required for gimple-iterator.h and
3392 gimple-walk.h.
3393 * cfgexpand.c: Likewise.
3394 * cfgloop.c: Likewise.
3395 * cfgloopmanip.c: Likewise.
3396 * cgraph.c: Likewise.
3397 * cgraphbuild.c: Likewise.
3398 * cgraphunit.c: Likewise.
3399 * gimple-fold.c: Likewise.
3400 * gimple-low.c: Likewise.
3401 * gimple-pretty-print.c: Likewise.
3402 * gimple-ssa-isolate-paths.c: Likewise.
3403 * gimple-ssa-strength-reduction.c: Likewise.
3404 * gimple-streamer-in.c: Likewise.
3405 * gimple-streamer-out.c: Likewise.
3406 * gimplify.c: Likewise.
3407 * graphite-blocking.c: Likewise.
3408 * graphite-clast-to-gimple.c: Likewise.
3409 * graphite-dependences.c: Likewise.
3410 * graphite-interchange.c: Likewise.
3411 * graphite-optimize-isl.c: Likewise.
3412 * graphite-poly.c: Likewise.
3413 * graphite-scop-detection.c: Likewise.
3414 * graphite-sese-to-poly.c: Likewise.
3415 * graphite.c: Likewise.
3416 * ipa-inline-analysis.c: Likewise.
3417 * ipa-profile.c: Likewise.
3418 * ipa-prop.c: Likewise.
3419 * ipa-pure-const.c: Likewise.
3420 * ipa-split.c: Likewise.
3421 * lto-streamer-in.c: Likewise.
3422 * lto-streamer-out.c: Likewise.
3423 * omp-low.c: Likewise.
3424 * predict.c: Likewise.
3425 * profile.c: Likewise.
3426 * sese.c: Likewise.
3427 * tracer.c: Likewise.
3428 * trans-mem.c: Likewise.
3429 * tree-call-cdce.c: Likewise.
3430 * tree-cfg.c: Likewise.
3431 * tree-cfgcleanup.c: Likewise.
3432 * tree-complex.c: Likewise.
3433 * tree-data-ref.c: Likewise.
3434 * tree-dfa.c: Likewise.
3435 * tree-eh.c: Likewise.
3436 * tree-emutls.c: Likewise.
3437 * tree-if-conv.c: Likewise.
3438 * tree-inline.c: Likewise.
3439 * tree-into-ssa.c: Likewise.
3440 * tree-loop-distribution.c: Likewise.
3441 * tree-nested.c: Likewise.
3442 * tree-nrv.c: Likewise.
3443 * tree-object-size.c: Likewise.
3444 * tree-outof-ssa.c: Likewise.
3445 * tree-parloops.c: Likewise.
3446 * tree-predcom.c: Likewise.
3447 * tree-profile.c: Likewise.
3448 * tree-scalar-evolution.c: Likewise.
3449 * tree-sra.c: Likewise.
3450 * tree-ssa-ccp.c: Likewise.
3451 * tree-ssa-coalesce.c: Likewise.
3452 * tree-ssa-copy.c: Likewise.
3453 * tree-ssa-copyrename.c: Likewise.
3454 * tree-ssa-dce.c: Likewise.
3455 * tree-ssa-dom.c: Likewise.
3456 * tree-ssa-dse.c: Likewise.
3457 * tree-ssa-forwprop.c: Likewise.
3458 * tree-ssa-ifcombine.c: Likewise.
3459 * tree-ssa-live.c: Likewise.
3460 * tree-ssa-loop-ch.c: Likewise.
3461 * tree-ssa-loop-im.c: Likewise.
3462 * tree-ssa-loop-ivcanon.c: Likewise.
3463 * tree-ssa-loop-ivopts.c: Likewise.
3464 * tree-ssa-loop-manip.c: Likewise.
3465 * tree-ssa-loop-niter.c: Likewise.
3466 * tree-ssa-loop-prefetch.c: Likewise.
3467 * tree-ssa-loop.c: Likewise.
3468 * tree-ssa-math-opts.c: Likewise.
3469 * tree-ssa-phiopt.c: Likewise.
3470 * tree-ssa-phiprop.c: Likewise.
3471 * tree-ssa-pre.c: Likewise.
3472 * tree-ssa-propagate.c: Likewise.
3473 * tree-ssa-reassoc.c: Likewise.
3474 * tree-ssa-sink.c: Likewise.
3475 * tree-ssa-strlen.c: Likewise.
3476 * tree-ssa-structalias.c: Likewise.
3477 * tree-ssa-tail-merge.c: Likewise.
3478 * tree-ssa-ter.c: Likewise.
3479 * tree-ssa-threadedge.c: Likewise.
3480 * tree-ssa-threadupdate.c: Likewise.
3481 * tree-ssa-uncprop.c: Likewise.
3482 * tree-ssa-uninit.c: Likewise.
3483 * tree-ssa.c: Likewise.
3484 * tree-stdarg.c: Likewise.
3485 * tree-switch-conversion.c: Likewise.
3486 * tree-tailcall.c: Likewise.
3487 * tree-vect-data-refs.c: Likewise.
3488 * tree-vect-generic.c: Likewise.
3489 * tree-vect-loop-manip.c: Likewise.
3490 * tree-vect-loop.c: Likewise.
3491 * tree-vect-patterns.c: Likewise.
3492 * tree-vect-slp.c: Likewise.
3493 * tree-vect-stmts.c: Likewise.
3494 * tree-vectorizer.c: Likewise.
3495 * tree-vrp.c: Likewise.
3496 * tree.c: Likewise.
3497 * tsan.c: Likewise.
3498 * value-prof.c: Likewise.
3499 * vtable-verify.c: Likewise.
3500
2b5aceaf 35012013-11-13 Steven Bosscher <steven@gcc.gnu.org>
3502
3503 * gimple-ssa-isolate-paths.c (pass_isolate_erroneous_paths): Comment
3504 fix.
3505
0a76252a 35062013-11-13 Jeff Law <law@redhat.com>
3507
3508 * PR middle-end/59119
3509 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour): New
3510 function, extracted from gimple_ssa_isolate_erroneous_paths.
3511 (find_explicit_erroneous_behaviour): Similarly.
3512 (insert_trap_and_remove_trailing_statements): Remove statements
3513 in reverse order.
3514
cd316116 35152013-11-13 Steven Bosscher <steven@gcc.gnu.org>
3516
3517 * cfgrtl.c (can_fallthru): Reorder code to move tablejump check up.
3518 Make that check explicit. BB_HEAD cannot be NULL, remove check for it.
3519 * haifa-sched.c (ready_remove_first_dispatch): Check INSN_P before
3520 looking at INSN_CODE.
3521 * reload1.c (delete_dead_insn) Do not expect JUMP_TABLE_DATA to be an
3522 active_insn_p object, respect basic block boundaries.
3523 * reorg.c (follow_jumps): Use invariant that JUMP_TABLE_DATA always
3524 follows immediately after the jump table data label.
3525 * config/nds32/nds32.c (nds32_output_casesi_pc_relative): Likewise.
3526 * config/sh/sh.c (barrier_align): Likewise. Rearrange code such
3527 that JUMP_TABLE_DATA is not expected to be an active_insn_p object.
3528
901d3ddc 35292013-11-13 Teresa Johnson <tejohnson@google.com>
3530
3531 PR ipa/58862
3532 * predict.c (drop_profile): Error is currently too strict.
3533 (handle_missing_profiles): Pass call_count to drop_profile.
3534
4a45bef0 35352013-11-13 Teresa Johnson <tejohnson@google.com>
3536
3537 PR ipa/58862
3538 * ipa-inline.c (edge_badness): Fix overflow.
3539
4bb79f36 35402013-11-13 Vladimir Makarov <vmakarov@redhat.com>
3541
3542 PR rtl-optimization/59036
3543 * ira-color.c (struct allocno_color_data): Add new members
3544 first_thread_allocno, next_thread_allocno, thread_freq.
3545 (sorted_copies): New static var.
5037630b 3546 (allocnos_conflict_by_live_ranges_p, copy_freq_compare_func): Move up.
4bb79f36 3547 (allocno_thread_conflict_p, merge_threads)
3548 (form_threads_from_copies, form_threads_from_bucket)
3549 (form_threads_from_colorable_allocno, init_allocno_threads): New
3550 functions.
3551 (bucket_allocno_compare_func): Add comparison by thread frequency
3552 and threads.
3553 (add_allocno_to_ordered_bucket): Rename to
3554 add_allocno_to_ordered_colorable_bucket. Remove parameter.
5037630b 3555 (push_only_colorable): Call form_threads_from_bucket.
4bb79f36 3556 (color_pass): Call init_allocno_threads. Use
3557 consideration_allocno_bitmap instead of coloring_allocno_bitmap
3558 for nuillify allocno color data.
5037630b 3559 (ira_initiate_assign, ira_finish_assign): Allocate/free sorted_copies.
4bb79f36 3560 (coalesce_allocnos): Use static sorted copies.
3561
62a09f6d 35622013-11-13 Jakub Jelinek <jakub@redhat.com>
3563
3564 * passes.c (execute_todo): Don't call do_per_function if
3565 flags are zero.
3566 (execute_one_ipa_transform_pass, execute_one_pass): Don't call
3567 execute_function_dump if dump_file is NULL.
3568
593ce529 35692013-11-13 Martin Jambor <mjambor@suse.cz>
3570
3571 * cgraph.c (cgraph_get_create_node): Do what
3572 cgraph_get_create_real_symbol_node used to do.
3573 (cgraph_get_create_real_symbol_node): Removed. Changed all users to
3574 call cgraph_get_create_node.
3575 * cgraph.h (cgraph_get_create_real_symbol_node): Removed.
3576 * lto-streamer-in.c (input_function): Call cgraph_get_node instead of
3577 cgraph_get_create_node. Assert we get a node.
3578
8a0ffa1d 35792013-11-13 Tejas Belagod <tejas.belagod@arm.com>
3580
3581 * config/aarch64/aarch64-simd.md (vec_extract): New.
3582
e76492cb 35832013-11-13 Tejas Belagod <tejas.belagod@arm.com>
3584
3585 * config/aarch64/aarch64-simd.md (vec_set<mode>): Add w -> w option to
3586 the constraint.
3587
5d1c1f55 35882013-11-13 Eric Botcazou <ebotcazou@adacore.com>
3589
3590 * cfgexpand.c (expand_used_vars): Allocate space for partitions based
3591 on PARM_DECLs or RESULT_DECLs only if they are ignored for debug info
3592 or if optimization is enabled.
3593 * tree-ssa-coalesce.c (coalesce_ssa_name): If optimization is disabled,
3594 require that all the names based on a PARM_DECL or a RESULT_DECL that
3595 isn't ignored for debug info be coalesced.
3596
436161c6 35972013-11-13 Jan-Benedict Glaw <jbglaw@lug-owl.de>
3598
3599 * config/c6x/c6x.c: Include "gimple-expr.h".
3600
ce016e27 36012013-11-13 Richard Biener <rguenther@suse.de>
3602
3603 * gimple-streamer-out.c (output_gimple_stmt): Also wrap
3604 decls in ADDR_EXPR operands inside a MEM_REF and optimize that.
5037630b 3605 * gimple-streamer-in.c (input_gimple_stmt): Remove now dead code
3606 dealing with type mismatches inside component reference chains.
ce016e27 3607
26fc128e 36082013-11-13 Marc Glisse <marc.glisse@inria.fr>
3609
3610 PR tree-optimization/59077
3611 * ipa-pure-const.c (better_state): Update *state.
3612
1ba4a1db 36132013-11-13 Christophe Lyon <christophe.lyon@linaro.org>
3614
3615 * config/aarch64/aarch64.h (FRAME_GROWS_DOWNWARD): Define to 1.
3616 * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
3617 Update offset calculations.
3618
4203dd9b 36192013-11-13 Eric Botcazou <ebotcazou@adacore.com>
3620
3621 PR ada/35998
3622 * dwarf2out.c (add_byte_size_attribute): Also use int_size_in_bytes
3623 for fields. Do not add the attribute if the size is negative.
3624
d2c42908 36252013-11-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3626
3627 * config/arm/arm.c: Include aarch-cost-tables.h.
3628 (generic_extra_costs): Move from here...
3629 * config/arm/aarch-cost-tables.h: ... To here. New file.
3630
5220cab6 36312013-11-13 Alexander Ivchenko <alexander.ivchenko@intel.com>
3632 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
3633 Sergey Lega <sergey.s.lega@intel.com>
3634 Anna Tikhonova <anna.tikhonova@intel.com>
3635 Ilya Tocar <ilya.tocar@intel.com>
3636 Andrey Turetskiy <andrey.turetskiy@intel.com>
3637 Ilya Verbin <ilya.verbin@intel.com>
3638 Kirill Yukhin <kirill.yukhin@intel.com>
3639 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
3640
5037630b 3641 * config/i386/i386.c (ix86_print_operand): Support z-masking.
5220cab6 3642 * config/i386/predicate.md (const_0_to_4_operand): New.
3643 (const_0_to_5_operand): Ditto.
3644 * config/i386/sse.md (UNSPEC_COMPRESS): New.
3645 (UNSPEC_COMPRESS_STORE): Ditto.
3646 (UNSPEC_EXPAND): Ditto.
3647 (UNSPEC_EMBEDDED_ROUNDING): Ditto.
3648 (define_mode_attr ssescalarsize): Ditto.
3649 (avx512f_load<mode>_mask): Ditto.
3650 (avx512f_store<mode>_mask): Ditto.
3651 (avx512f_storedqu<mode>_mask): Ditto.
3652 (avx512f_vmcmp<mode>3_mask): Ditto.
3653 (avx512f_fmadd_<mode>_mask): Ditto.
3654 (avx512f_fmadd_<mode>_mask3): Ditto.
3655 (avx512f_fmsub_<mode>_mask): Ditto.
3656 (avx512f_fmsub_<mode>_mask3): Ditto.
3657 (avx512f_fnmadd_<mode>_mask): Ditto.
3658 (avx512f_fnmadd_<mode>_mask3): Ditto.
3659 (avx512f_fnmsub_<mode>_mask): Ditto.
3660 (avx512f_fnmsub_<mode>_mask3): Ditto.
3661 (avx512f_fmaddsub_<mode>_mask): Ditto.
3662 (avx512f_fmaddsub_<mode>_mask3): Ditto.
3663 (avx512f_fmsubadd_<mode>_mask): Ditto.
3664 (avx512f_fmsubadd_<mode>_mask3): Ditto.
3665 (vec_unpacku_float_lo_v16si): Ditto.
3666 (avx512f_vextract<shuffletype>32x4_mask): Ditto.
3667 (avx512f_vextract<shuffletype>32x4_1_maskm): Ditto.
3668 (avx512f_vextract<shuffletype>64x4_mask): Ditto.
3669 (vec_extract_lo_<mode>_maskm): Ditto.
3670 (vec_extract_hi_<mode>_maskm): Ditto.
3671 (avx512f_vternlog<mode>_mask): Ditto.
3672 (avx512f_shufps512_mask): Ditto.
3673 (avx512f_fixupimm<mode>_mask): Ditto.
3674 (avx512f_shufpd512_mask): Ditto.
3675 (avx512f_<code><pmov_src_lower><mode>2_mask): Ditto.
3676 (avx512f_<code>v8div16qi2_mask/trunc): Ditto.
3677 (*avx512f_<code>v8div16qi2_store_mask): Ditto.
3678 (ashr<mode>3<mask_name>): Ditto.
3679 (avx512f_vinsert<shuffletype>32x4_mask): Ditto.
3680 (avx512f_vinsert<shuffletype>64x4_mask): Ditto.
3681 (avx512f_shuf_<shuffletype>64x2_mask): Ditto.
3682 (avx512f_shuf_<shuffletype>32x4_mask): Ditto.
3683 (avx512f_pshufdv3_mask): Ditto.
3684 (avx512f_perm<mode>_mask): Ditto.
3685 (avx512f_vpermi2var<mode>3_mask): Ditto.
3686 (avx512f_vpermt2var<mode>3_mask): Ditto.
3687 (avx512f_compress<mode>_mask): Ditto.
3688 (avx512f_compressstore<mode>_mask): Ditto.
3689 (avx512f_expand<mode>_mask): Ditto.
3690 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Extend
3691 to support masking.
3692 (avx512f_storeu<ssemodesuffix>512_mask): Ditto.
3693 (<plusminus_insn><mode>3<mask_name>): Ditto.
3694 (*<plusminus_insn><mode>3<mask_name>): Ditto.
3695 (mul<mode>3<mask_name>): Ditto.
3696 (*mul<mode>3<mask_name>): Ditto.
3697 (<sse>_div<mode>3<mask_name>): Ditto.
3698 (<mask_codefor>rcp14<mode><mask_name>): Ditto.
3699 (<sse>_sqrt<mode>2<mask_name>): Ditto.
3700 (<mask_codefor>rsqrt14<mode><mask_name>): Ditto.
3701 (<code><mode>3<mask_name>/smaxmin): Ditto.
3702 (*<code><mode>3_finite<mask_name>/smaxmin): Ditto.
3703 (*<code><mode>3<mask_name>/smaxmin): Ditto.
3704 (float<sseintvecmodelower><mode>2<mask_name>): Ditto.
3705 (ufloatv16siv16sf2<mask_name>): Ditto.
3706 (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name>): Ditto.
3707 (<mask_codefor>avx512f_ufix_notruncv16sfv16si<mask_name>): Ditto.
3708 (<fixsuffix>fix_truncv16sfv16si2<mask_name>): Ditto.
3709 (float<si2dfmodelower><mode>2<mask_name>): Ditto.
3710 (ufloatv8siv8df<mask_name>): Ditto.
3711 (<mask_codefor>avx512f_cvtpd2dq512<mask_name>): Ditto.
3712 (avx512f_ufix_notruncv8dfv8si<mask_name>): Ditto.
3713 (<fixsuffix>fix_truncv8dfv8si2<mask_name>): Ditto.
3714 (<mask_codefor>avx512f_cvtpd2ps512<mask_name>): Ditto.
3715 (<sse2_avx_avx512f>_cvtps2pd<avxsizesuffix><mask_name>): Ditto.
3716 (<mask_codefor>avx512f_unpckhps512<mask_name>): Ditto.
3717 (<mask_codefor>avx512f_unpcklps512<mask_name>): Ditto.
3718 (<mask_codefor>avx512f_movshdup512<mask_name>): Ditto.
3719 (<mask_codefor>avx512f_movsldup512<mask_name>): Ditto.
3720 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>): Ditto.
3721 (vec_extract_lo_<mode><mask_name>): Ditto.
3722 (vec_extract_hi_<mode><mask_name>): Ditto.
3723 (<mask_codefor>avx512f_unpckhpd512<mask_name>): Ditto.
3724 (avx512f_movddup512<mask_name>): Ditto.
3725 (avx512f_unpcklpd512<mask_name>): Ditto.
3726 (*avx512f_unpcklpd512<mask_name>): Ditto.
3727 (*avx512f_vmscalef<mode>): Ditto.
3728 (avx512f_scalef<mode><mask_name>): Ditto.
3729 (avx512f_getexp<mode><mask_name>): Ditto.
3730 (<mask_codefor>avx512f_align<mode><mask_name>): Ditto.
3731 (avx512f_rndscale<mode><mask_name>): Ditto.
3732 (avx512f_shufps512_1<mask_name>): Ditto.
3733 (avx512f_shufpd512_1<mask_name>): Ditto.
3734 (<plusminus_insn><mode>3<mask_name>): Ditto.
3735 (*<plusminus_insn><mode>3<mask_name>): Ditto.
3736 (vec_widen_umult_even_v16si<mask_name>): Ditto.
3737 (*vec_widen_umult_even_v16si<mask_name>): Ditto.
3738 (vec_widen_smult_even_v16si<mask_name>): Ditto.
3739 (*vec_widen_smult_even_v16si<mask_name>): Ditto.
3740 (mul<mode>3<mask_name>): Ditto.
3741 (*<sse4_1_avx2>_mul<mode>3<mask_name>): Ditto.
3742 (<shift_insn><mode>3<mask_name>): Ditto.
3743 (avx512f_<rotate>v<mode><mask_name>/rotate): Ditto.
3744 (avx512f_<rotate><mode><mask_name>): Ditto.
3745 (<code><mode>3<mask_name>/maxmin): Ditto.
3746 (*avx2_<code><mode>3<mask_name>/maxmin): Ditto.
3747 (<sse2_avx2>_andnot<mode>3<mask_name>): Ditto.
3748 (*andnot<mode>3<mask_name>): Ditto.
3749 (<mask_codefor><code><mode>3<mask_name>/any_logic): Ditto.
3750 (<mask_codefor>avx512f_interleave_highv16si<mask_name>): Ditto.
3751 (<mask_codefor>avx512f_interleave_lowv16si<mask_name>): Ditto.
3752 (<mask_codefor>avx512f_vinsert<shuffletype>32x4_1<mask_name>): Ditto.
3753 (vec_set_lo_<mode><mask_name>): Ditto.
3754 (vec_set_hi_<mode><mask_name>): Ditto.
3755 (avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ditto.
3756 (avx512f_shuf_<shuffletype>32x4_1<mask_name>): Ditto.
3757 (avx512f_pshufd_1<mask_name>): Ditto.
3758 (<mask_codefor>abs<mode>2<mask_name>): Ditto.
3759 (<mask_codefor>avx512f_<code>v16qiv16si2<mask_name>): Ditto.
3760 (avx512f_<code>v16hiv16si2<mask_name>/any_extend): Ditto.
3761 (avx512f_<code>v8qiv8di2<mask_name>/any_extend): Ditto.
3762 (avx512f_<code>v8hiv8di2<mask_name>/any_extend): Ditto.
3763 (avx512f_<code>v8siv8di2<mask_name>/any_extend): Ditto.
3764 (avx512er_exp2<mode><mask_name>): Ditto.
3765 (<mask_codefor>avx512er_rcp28<mode><mask_name>): Ditto.
3766 (<mask_codefor>avx512er_rsqrt28<mode><mask_name>): Ditto.
3767 (<avx2_avx512f>_permvar<mode><mask_name>): Ditto.
3768 (<avx2_avx512f>_perm<mode>_1<mask_name>): Ditto.
3769 (<mask_codefor>avx512f_vec_dup<mode><mask_name>): Ditto.
3770 (<mask_codefor>avx512f_broadcast<mode><mask_name>/V16FI): Ditto.
3771 (<mask_codefor>avx512f_broadcast<mode><mask_name>/V8FI): Ditto.
3772 (<mask_codefor>avx512f_vec_dup_gpr<mode><mask_name>): Ditto.
3773 (<mask_codefor>avx512f_vec_dup_mem<mode><mask_name>): Ditto.
3774 (<sse2_avx_avx512f>_vpermil<mode><mask_name>/VF2): Ditto.
3775 (<sse2_avx_avx512f>_vpermil<mode><mask_name>/VF1): Ditto.
3776 (*<sse2_avx_avx512f>_vpermilp<mode><mask_name>): Ditto.
3777 (<sse2_avx_avx512f>_vpermilvar<mode>3<mask_name>): Ditto.
3778 (<avx2_avx512f>_ashrv<mode><mask_name>): Ditto.
3779 (<avx2_avx512f>_<shift_insn>v<mode><mask_name>): Ditto.
3780 (<mask_codefor>avx512f_vcvtph2ps512<mask_name>): Ditto.
3781 (<mask_codefor>avx512f_vcvtps2ph512<mask_name>): Ditto.
3782 (avx512f_getmant<mode><mask_name>): Ditto.
3783 (clz<mode>2<mask_name>): Ditto.
3784 (<mask_codefor>conflict<mode><mask_name>): Ditto.
3785 (*srcp14<mode>): Remove visibility.
3786 (*rsqrt14<mode>): Ditto.
3787 (*fma_fmsub_<mode>): Ditto.
3788 (*fma_fnmadd_<mode>): Ditto.
3789 (*avx512f_rndscale<mode>): Ditto.
3790 * config/i386/subst.md: New file.
3791
4fba5eb9 37922013-11-13 Joseph Myers <joseph@codesourcery.com>
3793
3794 * doc/extend.texi (Statement Exprs, Typeof): Discuss __auto_type.
3795 * ginclude/stdatomic.h (kill_dependency, atomic_store_explicit)
3796 (atomic_load_explicit, atomic_exchange_explicit)
3797 (atomic_compare_exchange_strong_explicit)
3798 (atomic_compare_exchange_weak_explicit): Use __auto_type to
3799 declare variable initialized with PTR argument.
3800
2073fe3e 38012013-11-12 Jeff Law <law@redhat.com>
3802
5037630b 3803 * tree-ssa-threadedge.c (thread_around_empty_blocks): New argument
3804 backedge_seen_p. Set, use and pass it to children appropriately.
f3980d64 3805 (thread_through_normal_block): Similarly.
3806 (thread_across_edge): Similarly.
3807
2073fe3e 3808 * gimple-ssa-isolate-paths.c (check_loadstore): Mark discovered
3809 memory references as volatile.
3810 (insert_trap_and_remove_trailing_statements): Fix comment.
3811
5ccf1c49 38122013-11-12 Vladimir Makarov <vmakarov@redhat.com>
3813
3814 PR other/58712
3815 * ira-costs.c (record_operand_costs): Check operands number for
3816 the single set.
3817
1293504f 38182013-11-12 Michael Meissner <meissner@linux.vnet.ibm.com>
3819
3820 PR target/59054
3821 * config/rs6000/rs6000.md (movdi_internal32): Eliminate
3822 constraints that would allow DImode into the traditional Altivec
3823 registers, but cause undesirable code generation when loading 0 as
3824 a constant.
3825 (movdi_internal64): Likewise.
3826 (cmp<mode>_fpr): Do not use %x for CR register output.
3827 (extendsfdf2_fpr): Fix constraints when -mallow-upper-df and
3828 -mallow-upper-sf debug switches are used.
3829
a8783bee 38302013-11-12 Andrew MacLeod <amacleod@redhat.com>
3831
3832 * gimple-expr.h (create_tmp_var_name, create_tmp_var_raw,
3833 create_tmp_var, create_tmp_reg, mark_addressable, is_gimple_reg_rhs):
3834 Relocate prototypes from gimple.h.
3835 * gimplify.h: New File. Relocate some prototypes from gimple.h here.
3836 (gimple_predicate, enum fallback, enum gimplify_status): Relocate
3837 from gimple.h.
3838 * gimple.h: Move some prototypes to gimplify.h.
3839 (gimple_predicate, enum fallback, enum gimplify_status): Move to
3840 gimplify.h.
3841 (gimple_do_not_emit_location_p, gimple_set_do_not_emit_location):
3842 Relocate from gimpify.c.
3843 * gimple-expr.c (remove_suffix, tmp_var_id_num, create_tmp_var_name,
3844 create_tmp_var_raw, create_tmp_var, create_tmp_reg, mark_addressable,
3845 is_gimple_reg_rhs) Relocate from gimplify.c.
3846 * gimplify.c (mark_addressable): Move to gimple-expr.c.
3847 (gimple_seq_add_stmt_without_update): Move to gimple.c.
5037630b 3848 (remove_suffix, tmp_var_id_num, create_tmp_var_name,
3849 create_tmp_var_raw, create_tmp_var, create_tmp_reg,
3850 is_gimple_reg_rhs): Move to gimple-expr.c.
a8783bee 3851 (should_carry_location_p): Move to gimple.c.
3852 (gimple_do_not_emit_location_p, gimple_set_do_not_emit_location): Move
3853 to gimple.h.
3854 (annotate_one_with_location, annotate_all_with_location_after,
3855 annotate_all_with_location): Move to gimple.c.
3856 (compare_case_labels, sort_case_labels,
3857 preprocess_case_label_vec_for_gimple): Move to gimple.c.
3858 (rhs_predicate_for): Make static.
3859 (gimplify_assign): Relocate from gimple.c.
3860 * gimple.c (gimplify_assign): Move to gimplify.c.
3861 (gimple_seq_add_stmt_without_update, should_carry_location_p,
3862 annotate_one_with_location, annotate_all_with_location_after,
3863 annotate_all_with_location, compare_case_labels, sort_case_labels,
3864 preprocess_case_label_vec_for_gimple): Relocate from gimplify.c.
3865 * tree.h (unshare_expr, unshare_expr_without_location,
3866 mark_addressable): Move prototypes to gimplify.h.
3867 * Makefile.in (GTFILES): gimple-expr.c now has the GTY tag for
3868 tmp_var_id_num
3869 * asan.c: Include gimplify.h rather than gimple.h.
3870 * cfgloopmanip.c: Likewise.
3871 * cgraphunit.c: Likewise.
3872 * cilk-common.c: Likewise.
3873 * dwarf2out.c: Dont include gimple.h.
3874 * fold-const.c: Include gimplify.h rather than gimple.h.
3875 * function.c: Likewise.
3876 * gimple-fold.c: Likewise.
3877 * gimple-ssa-strength-reduction.c: Likewise.
3878 * graphite-clast-to-gimple.c: Likewise.
3879 * graphite-sese-to-poly.c: Likewise.
3880 * ipa-prop.c: Likewise.
3881 * ipa-split.c: Likewise.
3882 * ipa.c: Likewise.
3883 * langhooks.c: Dont include gimple.h.
3884 * loop-init.c: Include gimplify.h rather than gimple.h.
3885 * omp-low.c: Likewise.
3886 * sese.c: Likewise.
3887 * stor-layout.c: Likewise.
3888 * targhooks.c: Likewise.
3889 * trans-mem.c: Likewise.
3890 * tree-affine.c: Likewise.
3891 * tree-cfg.c: Likewise.
3892 * tree-cfgcleanup.c: Likewise.
3893 * tree-complex.c: Likewise.
3894 * tree-if-conv.c: Likewise.
3895 * tree-inline.c: Likewise.
3896 * tree-iterator.c: Likewise.
3897 * tree-loop-distribution.c: Likewise.
3898 * tree-nested.c: Likewise.
3899 * tree-parloops.c: Likewise.
3900 * tree-predcom.c: Likewise.
3901 * tree-profile.c: Likewise.
3902 * tree-scalar-evolution.c: Likewise.
3903 * tree-sra.c: Likewise.
3904 * tree-ssa-address.c: Likewise.
3905 * tree-ssa-ccp.c: Likewise.
3906 * tree-ssa-dce.c: Likewise.
3907 * tree-ssa-forwprop.c: Likewise.
3908 * tree-ssa-ifcombine.c: Likewise.
3909 * tree-ssa-loop-im.c: Likewise.
3910 * tree-ssa-loop-ivopts.c: Likewise.
3911 * tree-ssa-loop-manip.c: Likewise.
3912 * tree-ssa-loop-niter.c: Likewise.
3913 * tree-ssa-loop-prefetch.c: Likewise.
3914 * tree-ssa-loop-unswitch.c: Likewise.
3915 * tree-ssa-math-opts.c: Likewise.
3916 * tree-ssa-phiopt.c: Likewise.
3917 * tree-ssa-phiprop.c: Likewise.
3918 * tree-ssa-pre.c: Likewise.
3919 * tree-ssa-propagate.c: Likewise.
3920 * tree-ssa-reassoc.c: Likewise.
3921 * tree-ssa-sccvn.c: Likewise.
3922 * tree-ssa-strlen.c: Likewise.
3923 * tree-ssa.c: Likewise.
3924 * tree-switch-conversio: Likewise.n.c
3925 * tree-tailcall.c: Likewise.
3926 * tree-vect-data-refs.c: Likewise.
3927 * tree-vect-generic.c: Likewise.
3928 * tree-vect-loop-manip.c: Likewise.
3929 * tree-vect-loop.c: Likewise.
3930 * tree-vect-patterns.c: Likewise.
3931 * tree-vect-stmts.c: Likewise.
3932 * tsan.c: Likewise.
3933 * value-prof.c: Likewise.
3934 * config/aarch64/aarch64.c: Include gimplify.h instead of gimple.h.
3935 * config/alpha/alpha.c: Likewise.
3936 * config/darwin.c: Likewise.
3937 * config/i386/i386.c: Likewise.
3938 * config/ia64/ia64.c: Likewise.
3939 * config/mep/mep.c: Likewise.
3940 * config/mips/mips.c: Likewise.
3941 * config/rs6000/rs6000.c: Likewise.
3942 * config/s390/s390.c: Likewise.
3943 * config/sh/sh.c: Likewise.
3944 * config/sparc/sparc.c: Likewise.
3945 * config/spu/spu.c: Likewise.
3946 * config/stormy16/stormy16.c: Likewise.
3947 * config/tilegx/tilegx.c: Likewise.
3948 * config/tilepro/tilepro.c: Likewise.
3949 * config/xtensa/xtensa.c: Likewise.
3950
19646b27 39512013-11-12 Adam Butcher <adam@jessamine.co.uk>
3952
3953 * tree.c (grow_tree_vec_stat): New function ...
3954 * tree.h (grow_tree_vec_stat) (grow_tree_vec): ... and its declaration
3955 and macro front-end.
3956
84c25f5d 39572013-11-12 Marek Polacek <polacek@redhat.com>
3958
3959 * final.c (update_alignments): Initialize label to NULL_RTX.
3960
c59258dc 39612013-11-12 Jeff Law <law@redhat.com>
3962
3963 * gimple-ssa-isolate-paths.c (check_loadstore): New function.
3964 (insert_trap_and_remove_trailing_statements): New argument OP which
3965 is the NULL pointer. Emit the trap after the load/store through
3966 the NULL pointer. Simplify the RHS of a store through a NULL pointer
3967 when trivial to do so.
3968 (isolate_path): Corresponding changes.
3969 (gimple_ssa_isolate_erroneous_path): Likewise.
3970
38a65d4e 39712013-11-12 Teresa Johnson <tejohnson@google.com>
3972 Jan Hubicka <jh@suse.cz>
3973
3974 * predict.c (drop_profile): New function.
3975 (handle_missing_profiles): Ditto.
3976 (counts_to_freqs): Don't overwrite estimated frequencies
3977 when function has no profile counts.
3978 * predict.h (handle_missing_profiles): Declare.
3979 * tree-inline.c (freqs_to_counts): New function.
3980 (copy_cfg_body): Invoke freqs_to_counts as needed.
3981 * tree-profile.c (tree_profiling): Invoke handle_missing_profiles.
3982
6d3c030f 39832013-11-12 H.J. Lu <hongjiu.lu@intel.com>
3984
3985 PR target/59088
3986 * config/i386/x86-tune.def (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL):
3987 Set for m_HASWELL.
3988 (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Set for m_HASWELL.
3989
5cbbe3de 39902013-11-12 H.J. Lu <hongjiu.lu@intel.com>
3991
3992 PR target/59084
3993 * config/i386/i386.c (ix86_option_override_internal): Check
3994 X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL and
3995 X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL for
3996 MASK_AVX256_SPLIT_UNALIGNED_LOAD and
3997 MASK_AVX256_SPLIT_UNALIGNED_STORE.
3998
3999 * config/i386/x86-tune.def (X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL):
4000 Clear m_COREI7_AVX and update comments.
4001 (X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL): Likewise.
4002
c6829ed5 40032013-11-12 Martin Jambor <mjambor@suse.cz>
4004
4005 PR rtl-optimization/10474
4006 * ira.c (interesting_dest_for_shprep): New function.
4007 (split_live_ranges_for_shrink_wrap): Likewise.
4008 (find_moveable_pseudos): Move calculation of dominance info,
4009 df_analysios and the final anlyses to...
4010 (ira): ...here, call split_live_ranges_for_shrink_wrap.
4011
62d6df9a 40122013-11-12 Bin Cheng <bin.cheng@arm.com>
4013
4014 * tree-ssa-loop-ivopts.c (force_expr_to_var_cost): Refactor the code.
4015 Handle type conversion.
4016
38fe12e3 40172013-11-11 Martin Liska <marxin.liska@gmail.com>
5037630b 4018 Jan Hubicka <jh@suse.cz>
38fe12e3 4019
4020 * cgraph.c (dump_cgraph_node): Profile dump added.
4021 * cgraph.h (struct cgraph_node): New time profile variable added.
4022 * cgraphclones.c (cgraph_clone_node): Time profile is cloned.
4023 * gcov-io.h (gcov_type): New profiler type introduced.
4024 * ipa-profile.c (lto_output_node): Streaming for time profile added.
4025 (input_node): Time profiler is read from LTO stream.
4026 * predict.c (maybe_hot_count_p): Hot prediction changed.
4027 * profile.c (instrument_values): New case for time profiler added.
4028 (compute_value_histograms): Read of time profile.
4029 * tree-pretty-print.c (dump_function_header): Time profiler is dumped.
5037630b 4030 * tree-profile.c (init_ic_make_global_vars): Time profiler
4031 function added.
38fe12e3 4032 (gimple_init_edge_profiler): TP function instrumentation.
4033 (gimple_gen_time_profiler): New.
4034 * value-prof.c (gimple_add_histogram_value): Support for time profiler
4035 added.
4036 (dump_histogram_value): TP type added to dumps.
4037 (visit_hist): More sensitive check that takes TP into account.
4038 (gimple_find_values_to_profile): TP instrumentation.
4039 * value-prof.h (hist_type): New histogram type added.
4040 (struct histogram_value_t): Pointer to struct function added.
4041 * libgcc/Makefile.in: New GCOV merge function for TP added.
4042 * libgcov.c: function_counter variable introduced.
4043 (_gcov_merge_time_profile): New.
4044 (_gcov_time_profiler): New.
4045
e6c705fb 40462013-11-11 Marc Glisse <marc.glisse@inria.fr>
4047 Jeff Law <law@redhat.com>
4048
4049 * tree-ssa-alias.c (stmt_kills_ref_p_1): Use
4050 ao_ref_init_from_ptr_and_size for builtins.
4051
4151af9b 40522013-11-11 Uros Bizjak <ubizjak@gmail.com>
4053 H.J. Lu <hongjiu.lu@intel.com>
4054
4055 PR target/58853
4056 * config/i386/x86-tune.def
4057 (X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Rename from
4058 TARGET_MISALIGNED_MOVE_STRING_PROLOGUES.
4059 * config/i386/i386.h
4060 (TARGET_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Rename from
4061 TARGET_MISALIGNED_MOVE_STRING_PROLOGUES_EPILOGUES. Update for renamed
4062 X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES.
4063 * config/i386/i386.c (ix86_expand_set_or_movmem): Use
4064 TARGET_MISALIGNED_MOVE_STRING_PRO_EPILOGUES to calculate
4065 misaligned_prologue_used. Check that
4066 desired_aling <= epilogue_size_needed.
4067
df8a3379 40682013-11-11 Cong Hou <congh@google.com>
4069
4070 PR tree-optimization/59050
4071 * tree-vect-data-refs.c (comp_dr_addr_with_seg_len_pair): Bug fix.
4072
8e65ec8a 40732013-11-11 Joern Rennecke <joern.rennecke@embecosm.com>
4074
4075 PR middle-end/59049
4076 * expmed.c (emit_store_flag): Fail for const-const comparison.
4077
4c163af5 40782013-11-11 Tristan Gingold <gingold@adacore.com>
4079 Eric Botcazou <ebotcazou@adacore.com>
4080
4081 * tree.h (CONSTRUCTOR_NO_CLEARING): Define.
4082 * tree-core.h (CONSTRUCTOR_NO_CLEARING): Document it.
4083 * tree.def (CONSTRUCTOR): Likewise.
4084 * doc/generic.texi (CONSTRUCTOR): Likewise. Update description.
4085 * gimplify.c (gimplify_init_constructor): Do not clear the object when
4086 the constructor is incomplete and CONSTRUCTOR_NO_CLEARING is set.
28cd2e89 4087
40882013-11-11 Basile Starynkevitch <basile@starynkevitch.net>
4089
4c163af5 4090 * toplev.c (toplev_main): Move PLUGIN_FINISH invocation before
4091 diagnostic_finish.
28cd2e89 4092
b052c024 40932013-11-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4094
4095 * config/arm/arm.c (arm_new_rtx_costs): Return after handling
4096 comparisons.
4097
02d970ab 40982013-11-11 Joern Rennecke <joern.rennecke@embecosm.com>
4099
4100 * config/arc/arc.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Define.
4101
af6b6631 41022013-11-08 Jeff Law <law@redhat.com>
4103
4104 * tree-ssa-threadupdate.c (mark_threaded_blocks): Truncate jump
4105 threading paths first, then perform PHI node checks if applicable.
4106
f4ce1957 41072013-11-10 Karlson2k <k2k@narod.ru>
5037630b 4108 Kai Tietz <ktietz@redhat.com>
f4ce1957 4109
cc8feb1c 4110 PR plugin/52872
f4ce1957 4111 * configure.ac: Adding for exported symbols check
4112 and for rdynamic-check executable-extension.
4113 * configure: Regenerated.
4114
d8cefb47 41152013-11-10 Uros Bizjak <ubizjak@gmail.com>
4116
4117 * mode-switching.c (optimize_mode_switching): Mark block as
4118 nontransparent, if last_mode at block exit is different from no_mode.
4119
d3211b7e 41202013-11-09 Jan-Benedict Glaw <jbglaw@lug-owl.de>
4121
4122 * function.c (NAME__MAIN): Move to...
4123 * cfgexpand.c (NAME__MAIN): ...here.
4124
5f35dd0e 41252013-11-09 Richard Sandiford <rdsandiford@googlemail.com>
4126
4127 * target.def (can_use_doloop_p): New hook.
4128 * doc/tm.texi.in (TARGET_CAN_USE_DOLOOP_P): Add.
4129 * doc/tm.texi: Regenerate.
4130 * doc/md.texi (doloop_begin, doloop_end): Update documentation.
4131 * hooks.h (hook_bool_dint_dint_uint_true): Declare.
4132 * hooks.c (hook_bool_dint_dint_uint_true): New function.
4133 * targhooks.h (can_use_doloop_if_innermost): Declare.
4134 * targhooks.c (can_use_doloop_if_innermost): New function.
4135 * target.h: Include double-int.h.
4136 * loop-doloop.c (doloop_optimize): Call targetm.can_use_doloop_p.
4137 Remove iteration count, maximum iteration count, loop depth and
4138 enter-at-top inputs from doloop_begin and doloop_end.
4139 * config/arc/arc.md (doloop_begin, doloop_end): Update for new
4140 interface.
4141 * config/arc/arc.c (arc_can_use_doloop_p): New function.
4142 (TARGET_CAN_USE_DOLOOP_P): Define.
4143 * config/arm/thumb2.md (doloop_end): Update for new interface.
4144 * config/arm/arm.c (TARGET_CAN_USE_DOLOOP_P): Define.
4145 * config/bfin/bfin.md (doloop_end): Update for new interface.
4146 * config/bfin/bfin.c (bfin_can_use_doloop_p): New function.
4147 (TARGET_CAN_USE_DOLOOP_P): Define.
4148 * config/c6x/c6x.md (doloop_end): Update for new interface.
4149 * config/ia64/ia64.md (doloop_end): Update for new interface.
4150 * config/ia64/ia64.c (TARGET_CAN_USE_DOLOOP_P): Define.
4151 * config/mep/mep.md (doloop_begin, doloop_end): Update for new
4152 interface.
4153 * config/mep/mep.c (mep_emit_doloop): Likewise.
4154 (TARGET_CAN_USE_DOLOOP_P): Define.
4155 * config/rs6000/rs6000.md (doloop_end): Update for new interface.
4156 * config/rs6000/rs6000.c (TARGET_CAN_USE_DOLOOP_P): Define.
4157 * config/s390/s390.md (doloop_end): Update for new interface.
4158 * config/sh/sh.md (doloop_end): Likewise.
4159 * config/spu/spu.md (doloop_end): Likewise.
4160 * config/spu/spu.c (TARGET_CAN_USE_DOLOOP_P): Define.
4161 * config/tilegx/tilegx.md (doloop_end): Update for new interface.
4162 * config/tilegx/tilegx.c (TARGET_CAN_USE_DOLOOP_P): Define.
4163 * config/tilepro/tilepro.md (doloop_end): Update for new interface.
4164 * config/tilepro/tilepro.c (TARGET_CAN_USE_DOLOOP_P): Define.
4165 * config/v850/v850.md (doloop_begin, doloop_end): Update for new
4166 interface.
4167 * config/v850/v850.c (TARGET_CAN_USE_DOLOOP_P): Define.
4168
8d0b865d 41692013-11-08 H.J. Lu <hongjiu.lu@intel.com>
4170
4171 PR other/59055
4172 * doc/extend.texi: Move Cilk Plus Builtins node before Other
4173 Builtins node.
4174
0fadac62 41752013-11-08 Andrew MacLeod <amacleod@redhat.com>
4176 Joseph Myers <joseph@codesourcery.com>
4177
4178 * ginclude/stdatomic.h: New file.
4179 * Makefile.in (USER_H): Add stdatomic.h.
4180
d1500080 41812013-11-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4182
4183 * config/arm/arm.c (arm_new_rtx_costs): Break after handling
4184 comparisons.
4185
6d1fdbf9 41862013-11-08 Jeff Law <law@redhat.com>
4187
4188 * tree-ssa-threadupdate.h (delete_thread_path): Declare.
4189 * tree-ssa-threadupdate.c (delete_thread_path): New function.
4190 (ssa_redirect_edges, thread_block_1): Use it.
4191 (thread_through_loop_header, mark_threaded_blocks): Likewise.
4192 (thread_through_all_blocks, register_jump_thread): Likewise.
4193 * tree-ssa-threadedge.c (thread_across_edge): Likewise.
4194
4c849ae7 41952013-11-08 James Greenhalgh <james.greenhalgh@arm.com>
4196
4197 * config/arm/aarch-common.c
4198 (search_term): New typedef.
4199 (shift_rtx_costs): New array.
4200 (arm_rtx_shift_left_p): New.
4201 (arm_find_sub_rtx_with_search_term): Likewise.
4202 (arm_find_sub_rtx_with_code): Likewise.
4203 (arm_early_load_addr_dep): Add sanity checking.
4204 (arm_no_early_alu_shift_dep): Likewise.
4205 (arm_no_early_alu_shift_value_dep): Likewise.
4206 (arm_no_early_mul_dep): Likewise.
4207 (arm_no_early_store_addr_dep): Likewise.
4208
e5104bca 42092013-11-08 Richard Biener <rguenther@suse.de>
4210
4211 PR tree-optimization/59047
d8cefb47 4212 * tree-predcom.c (ref_at_iteration): Handle bitfield accesses properly.
e5104bca 4213
ac258e85 42142013-11-08 Ilya Enkovich <ilya.enkovich@intel.com>
4215
4216 * common.opt (fcheck-pointer-bounds): Move to ...
4217 * c-family/c.opt: ... here.
4218 * langhooks-def.h (LANG_HOOKS_CHKP_SUPPORTED): Remove.
4219 (LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_CHKP_SUPPORTED.
4220 * langhooks.h (lang_hooks): Remove chkp_supported field.
4221 * toplev.c (process_options): Remove chkp_supported check.
4222
ac35b3c9 42232013-11-08 Richard Biener <rguenther@suse.de>
4224
4225 PR tree-optimization/59038
4226 PR tree-optimization/58955
4227 * tree-loop-distribution.c (pg_add_dependence_edges): Revert
4228 previous change. Handle known dependences correctly.
4229
aacf1ee1 42302013-11-08 Tom de Vries <tom@codesourcery.com>
4231
4232 * config/rs6000/t-xilinx: Remove duplicate contents.
4233
b560fabd 42342013-11-07 Andrew MacLeod <amacleod@redhat.com>
4235 Joseph Myers <joseph@codesourcery.com>
4236
4237 * tree-core.h (enum cv_qualifier): Add TYPE_QUAL_ATOMIC.
4238 (enum tree_index): Add TI_ATOMICQI_TYPE, TI_ATOMICHI_TYPE,
4239 TI_ATOMICSI_TYPE, TI_ATOMICDI_TYPE and TI_ATOMICTI_TYPE.
4240 (struct tree_base): Add atomic_flag field.
4241 * tree.h (TYPE_ATOMIC): New accessor macro.
4242 (TYPE_QUALS, TYPE_QUALS_NO_ADDR_SPACE): Add TYPE_QUAL_ATOMIC.
4243 (TYPE_QUALS_NO_ADDR_SPACE_NO_ATOMIC): New macro.
4244 (atomicQI_type_node, atomicHI_type_node, atomicSI_type_node)
d8cefb47 4245 (atomicDI_type_node, atomicTI_type_node): New macros for type nodes.
b560fabd 4246 * tree.c (set_type_quals): Set TYPE_ATOMIC.
4247 (find_atomic_core_type): New function.
4248 (build_qualified_type): Adjust alignment for qualified types.
4249 (build_atomic_base): New function
4250 (build_common_tree_nodes): Build atomicQI_type_node,
4251 atomicHI_type_node, atomicSI_type_node, atomicDI_type_node and
4252 atomicTI_type_node.
4253 * print-tree.c (print_node): Print atomic qualifier.
d8cefb47 4254 * tree-pretty-print.c (dump_generic_node): Print atomic type attribute.
b560fabd 4255 * target.def (atomic_assign_expand_fenv): New hook.
4256 * doc/tm.texi.in (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New @hook.
4257 * doc/tm.texi: Regenerate.
4258 * targhooks.c (default_atomic_assign_expand_fenv): New function.
4259 * targhooks.h (default_atomic_assign_expand_fenv): Declare.
d8cefb47 4260 * sync-builtins.def (__atomic_feraiseexcept): New built-in function.
b560fabd 4261 * config/i386/i386-builtin-types.def (VOID_FTYPE_PUSHORT): New
4262 function type.
4263 * config/i386/i386.c (enum ix86_builtins): Add
4264 IX86_BUILTIN_FNSTENV, IX86_BUILTIN_FLDENV, IX86_BUILTIN_FNSTSW and
4265 IX86_BUILTIN_FNCLEX.
4266 (bdesc_special_args): Add __builtin_ia32_fnstenv,
d8cefb47 4267 __builtin_ia32_fldenv, __builtin_ia32_fnstsw and __builtin_ia32_fnclex.
b560fabd 4268 (ix86_expand_builtin): Handle the new built-in functions.
4269 (ix86_atomic_assign_expand_fenv): New function.
4270 (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New macro.
4271 * config/i386/i386.md (UNSPECV_FNSTENV, UNSPECV_FLDENV)
4272 (UNSPECV_FNSTSW, UNSPECV_FNCLEX): New unspecs.
4273 (fnstenv, fldenv, fnstsw, fnclex): New insns.
4274
6d7e786b 42752013-11-07 Steve Ellcey <sellcey@mips.com>
4276
4277 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add fp64 directory.
4278 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Add -mfp64 flag.
4279 (MULTILIB_DIRNAMES): Add fp64 directory.
4280 (MULTILIB_EXCEPTIONS): Add new exclusions.
4281
b8c46db3 42822013-11-07 Aldy Hernandez <aldyh@redhat.com>
4283
4284 * gimplify.c (gimple_regimplify_operands): Do not set
4285 SSA_NAME_DEF_STMT.
4286 * graphite-sese-to-poly.c (remove_simple_copy_phi): Same.
4287 (rewrite_close_phi_out_of_ssa): Same.
4288 (rewrite_phi_out_of_ssa): Same.
4289 (rewrite_degenerate_phi): Same.
4290 (handle_scalar_deps_crossing_scop_limits): Same.
4291 * tree-if-conv.c (predicate_scalar_phi): Same.
4292 * tree-parloops.c (create_loads_for_reductions): Same.
4293 (create_final_loads_for_reduction): Same.
4294 (create_loads_and_stores_for_name): Same.
4295 (transform_to_exit_first_loop): Same.
4296 (create_parallel_loop): Same.
4297 * tree-ssa-loop-im.c
4298 (move_computations_dom_walker::before_dom_children): Same.
4299 * tree-ssa-loop-manip.c (rewrite_phi_with_iv): Same.
d8cefb47 4300 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): Same.
b8c46db3 4301 * tree-ssa-propagate.c (substitute_and_fold): Same.
4302 * tree-vect-loop.c (vect_finalize_reduction): Same.
4303 * tree-vect-stmts.c (vectorizable_call): Same.
4304
a009b433 43052013-11-07 Mike Stump <mikestump@comcast.net>
4306
4307 * config/pdp11/pdp11.c: Include dbxout.h.
4308 * config/picochip/picochip.c: Likewise.
4309
8a7b0f48 43102013-11-07 Cong Hou <congh@google.com>
4311
4312 PR tree-optimization/56764
4313 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
4314 Combine alias checks if it is possible to amortize the runtime
4315 overhead. Return the number of alias checks after merging.
4316 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
4317 Use the function vect_create_cond_for_alias_checks () to check
4318 the number of alias checks.
4319
ec513397 43202013-11-07 Jeff Law <law@redhat.com>
4321
4322 * varpool.c (ctor_for_folding): Fix typo in comment.
4323
923e4fc0 43242013-11-07 Joern Rennecke <joern.rennecke@embecosm.com>
4325
4326 * config/arc/arc.c (arc_ifcvt): Use commutativity, e.g.:
4327 reg_a := reg_b + reg_a ==> reg_a := reg_a + reg_b
4328
a3eb5a98 43292013-11-07 Jeff Law <law@redhat.com>
4330
4331 * doc/invoke.texi (-fisolate-erroneous-paths): Document.
4332
4333 * gimple-ssa-isolate-paths.c (gate_isolate_erroneous_paths):
d8cefb47 4334 No longer check if we have __builtin_trap, assume it's available.
a3eb5a98 4335
0e80b01d 43362013-11-07 Diego Novillo <dnovillo@google.com>
4337
4338 * attribs.c (lookup_scoped_attribute_spec): Make static.
4339 (get_attribute_namespace): Likewise.
d8cefb47 4340 * builtins.c (more_const_call_expr_args_p): Move from tree.h.
0e80b01d 4341 (validate_arglist): Move earlier in the file. Make static.
4342 (expand_stack_restore): Move from stmt.c
4343 (expand_stack_save): Move from stmt.c
4344 (rewrite_call_expr_array): Move earlier in the file.
4345 (rewrite_call_expr_valist): Likewise.
4346 * cfgexpand.c: Include hard-reg-set.h before tree.h
4347 Include recog.h.
4348 Include output.h.
4349 (expand_asm_loc): Move from stmt.c.
4350 (n_occurrences): Move from stmt.c.
4351 (check_operand_nalternatives): Move from stmt.c.
4352 (tree_conflicts_with_clobbers_p): Move from stmt.c.
4353 (expand_asm_operands): Move from stmt.c
4354 (expand_asm_stmt): Move from stmt.c
4355 (expand_computed_goto): Move from stmt.c
4356 (expand_goto): Move from stmt.c
4357 (expand_null_return_1): Move from stmt.c
4358 (expand_null_return): Move from stmt.c
4359 (expand_value_return): Move from stmt.c
4360 (expand_return): Move from stmt.c
4361 (expand_main_function): Move from function.c
4362 (stack_protect_prologue): Move from function.c
4363 * cgraphclones.c (build_function_type_skip_args): Move from tree.c.
4364 (build_function_decl_skip_args): Move from tree.c.
4365 * explow.c (tree_expr_size): Move from tree.c.
4366 * expr.c (addr_expr_of_non_mem_decl_p): Remove.
4367 (fields_length): Move from tree.c.
4368 * fold-const.c (size_low_cst): Move from tree.c.
4369 (tree_expr_nonzero_warnv_p): Make static. Move earlier in the file.
4370 (tree_expr_nonzero_p): Make static. Move earlier in the file.
4371 (fold_build3_initializer_loc): Remove.
4372 (tree_invalid_nonnegative_warnv_p): Make static.
4373 * function.c (expand_main_function): Move to cfgexpand.c.
4374 (stack_protect_prologue): Move to cfgexpand.c.
4375 (set_insn_locations): Move earlier in the file.
4376 * gimple-fold.c: Include langhooks.h.
4377 (truth_type_for): Move from tree.c.
4378 * print-tree.c (print_vec_tree): Remove.
4379 * stmt.c (expand_computed_goto): Move to cfgexpand.c.
4380 (expand_goto): Move to cfgexpand.c.
4381 (n_occurrences): Move to cfgexpand.c.
4382 (expand_asm_loc): Move to cfgexpand.c
4383 (tree_conflicts_with_clobbers_p): Move to cfgexpand.c.
4384 (expand_asm_operands): Move to cfgexpand.c.
4385 (expand_asm_stmt): Move to cfgexpand.c.
4386 (check_operand_nalternatives): Move to cfgexpand.c
4387 (expand_null_return): Move to cfgexpand.c.
4388 (expand_value_return): Move to cfgexpand.c.
4389 (expand_null_return_1): Move to cfgexpand.c.
4390 (expand_return): Move to cfgexpand.c.
4391 (expand_stack_save): Move to builtins.c.
4392 (expand_stack_restore): Move to builtins.c
4393 * symtab.c: Include output.h.
4394 (decl_assembler_name_hash): Move from tree.c.
4395 (decl_assembler_name_equal): Move from tree.c.
4396 * trans-mem.c (is_tm_safe_or_pure): Move from tree.h.
4397 * tree-eh.c (in_array_bounds_p): Move from tree.c.
4398 (range_in_array_bounds_p): Move from tree.c.
4399 * tree-object-size.c (fini_object_sizes): Make static.
4400 * tree-ssa-dom.c (iterative_hash_exprs_commutative): Move from tree.h.
4401 * tree-vrp.c (ssa_name_nonnegative_p): Remove.
4402 * tree.c (decl_assembler_name_equal): Move to symtab.c.
4403 (tree_expr_size): Move to explow.c.
4404 (decl_assembler_name_hash): Move to symtab.c.
4405 (real_twop): Remove.
4406 (tree_expr_size): Move to explow.c.
4407 (stabilize_reference_1): Move earlier in the file. Make static.
4408 (omp_remove_redundant_declare_simd_attrs): Remove.
4409 (simple_cst_list_equal): Move earlier in the file. Make static.
4410 (size_low_cst): Move to fold-const.c.
4411 (build_type_no_quals): Remove.
4412 (build_function_type_skip_args): Move to cgraphclones.c.
4413 (build_function_decl_skip_args): Move to cgraphclones.c.
4414 (in_array_bounds_p): Move to tree-eh.c.
4415 (range_in_array_bounds_p): Move to tree-eh.c.
4416 (truth_type_for): Move to gimple-fold.c.
d8cefb47 4417 (list_equal_p): Remove.
0e80b01d 4418 * tree.h (decl_assembler_name_equal): Remove.
4419 (decl_assembler_name_hash): Remove.
4420 (truth_type_for): Remove.
4421 (build_type_no_quals): Remove.
4422 (build_function_decl_skip_args): Remove.
4423 (in_array_bounds_p): Remove.
4424 (range_in_array_bounds_p): Remove.
4425 (size_low_cst): Remove.
4426 (omp_remove_redundant_declare_simd_attrs): Remove.
4427 (tree_expr_size): Remove.
4428 (fields_length): Remove.
4429 (stabilize_reference_1): Remove.
4430 (expand_goto): Remove.
4431 (expand_stack_save): Remove.
4432 (expand_stack_restore): Remove.
4433 (expand_return): Remove.
4434 (fold_build3_initializer_loc): Remove.
4435 (tree_expr_nonzero_p): Remove.
4436 (tree_invalid_nonnegative_warnv_p): Remove.
4437 (tree_expr_nonzero_warnv_p): Remove.
4438 (fold_builtin_snprintf_chk): Remove.
4439 (validate_arglist): Remove.
4440 (iterative_hash_exprs_commutative): Move to tree-ssa-dom.c.
4441 (simple_cst_list_equal): Remove.
4442 (real_twop): Remove.
4443 (expand_main_function): Remove.
4444 (stack_protect_prologue): Remove.
4445 (print_vec_tree): Remove.
4446 (lookup_scoped_attribute_spec): Remove.
4447 (get_attribute_namespace): Remove.
4448 (expand_computed_goto): Remove.
4449 (expand_asm_stmt): Remove.
4450 (list_equal_p): Remove.
4451 (ssa_name_nonnegative_p): Remove.
4452 (fini_object_sizes): Remove.
4453 (addr_expr_of_non_mem_decl_p): Remove.
4454 (is_tm_safe_or_pure): Move to trans-mem.c.
4455 (more_const_call_expr_args_p): Remove.
4456 (save_vtable_map_decl): Remove.
4457
4d07f291 44582013-11-07 Thomas Schwinge <thomas@codesourcery.com>
4459
c743daa5 4460 * doc/sourcebuild.texi (Top Level) <lto-plugin>: GNU ld can use
4461 linker plugins, too.
4462
d8cefb47 4463 * config/arc/arc.h (LINK_COMMAND_SPEC): For -ftree-parallelize-loops=*,
4464 link to libgomp and its dependencies.
4d07f291 4465 * config/ia64/hpux.h (LIB_SPEC): Likewise.
4466 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
4467 * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
d8cefb47 4468 * gcc.c (GOMP_SELF_SPECS): Update comment about libgomp's dependencies.
4d07f291 4469
2c7e5f10 44702013-11-07 Jakub Jelinek <jakub@redhat.com>
4471
4472 * tree-ssa-loop-niter.c: Include tree-ssanames.h.
4473 (determine_value_range): Add loop argument. Use get_range_info to
4474 improve range.
4475 (bound_difference): Adjust caller.
4476
92decb41 44772013-11-07 Richard Biener <rguenther@suse.de>
4478 Jakub Jelinek <jakub@redhat.com>
4479
4480 * tree-vrp.c (find_assert_locations): Pre-seed live bitmaps for loop
4481 latches from header PHI arguments from the latch edge.
4482
c402a6ae 44832013-11-07 Paolo Carlini <paolo.carlini@oracle.com>
4484
4485 PR c++/58176
4486 * varasm.c (output_constant): Handle NULLPTR_TYPE.
4487
366fde1f 44882013-11-07 H.J. Lu <hongjiu.lu@intel.com>
4489
4490 * config/i386/i386.c (ix86_expand_set_or_movmem): Don't set
4491 misaligned_prologue_used when it has been set.
4492
4102b43a 44932013-11-07 Yury Gribov <y.gribov@samsung.com>
4494 Jakub Jelinek <jakub@redhat.com>
4495
4496 PR sanitizer/59029
b51add76 4497 * asan.c (get_mem_refs_of_builtin_call): Allow
4102b43a 4498 integer literals as addresses in instrumented builtins.
4499
ce071c3c 45002013-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4501
4502 * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
4503 Explain why plus_constant is not used.
4504
f5faab84 45052013-11-07 Richard Biener <rguenther@suse.de>
4506
4507 * tree-ssa-ccp.c (canonicalize_float_value): Rename to ...
4508 (canonicalize_value): ... this. Also handle stripping of
4509 TREE_OVERFLOW.
4510 (get_value, set_lattice_value, get_value_for_expr): Adjust.
d8cefb47 4511 * gimple-fold.c (canonicalize_constructor_val): Strip TREE_OVERFLOW.
f5faab84 4512 * tree-ssa-threadedge.c (set_ssa_name_value): Likewise.
4513
fb60e635 45142013-11-07 Richard Biener <rguenther@suse.de>
4515
4516 * tree-dfa.c (get_ref_base_and_extent): Fix casting.
4517
2dcf5fe1 45182013-11-07 H.J. Lu <hongjiu.lu@intel.com>
4519
4520 PR target/59034
4521 * config/i386/i386.md (push peepholer/splitter): Use Pmode
4522 with stack_pointer_rtx.
4523
be3e66f7 45242013-11-07 Bin Cheng <bin.cheng@arm.com>
4525
4526 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Check equality
4527 using operand_equal_p.
4528
388424f0 45292013-11-07 Bin Cheng <bin.cheng@arm.com>
4530
4531 * tree-ssa-loop-ivopts.c (alloc_iv): Lower address expressions.
4532 * tree-affine.c (get_inner_reference_aff): Return base.
4533 * tree-affine.h (get_inner_reference_aff): Change prototype.
4534
5b1a0622 45352013-11-06 Tobias Burnus <burnus@net-b.de>
4536
4537 * doc/invoke.texi (Wdate-time): Fix typo.
4538
8bc41b12 45392013-11-06 Oleg Endo <olegendo@gcc.gnu.org>
4540
4541 * config/sh/sh.md (addsf3, divsf3, divsf3_i, rsqrtsf2, cmpgtdf_t,
4542 cmpeqdf_t, *ieee_ccmpeqdf_t, negdf2, sqrtdf2, absdf2): Use
4543 fp_arith_reg_operand instead of arith_reg_operand.
4544
7a2d2811 45452013-11-06 Oleg Endo <olegendo@gcc.gnu.org>
4546
4547 * config/sh/sh.md (adddi3): Remove empty constraints.
4548 Remove can_create_pseudo_p and arith_reg_operand check.
4549 (adddi3_compact, subdi3_compact, *negdi2): Remove constraints.
4550 Split before reload.
4551
5bbb7526 45522013-11-06 Jeff Law <law@redhat.com>
4553 Tom Tromey <tromey@redhat.com>
4554
4555 * gdbinit.in: Disable strict type checking.
4556
57a8bf1b 45572013-11-06 Vladimir Makarov <vmakarov@redhat.com>
4558
4559 * tree-pass.h (make_pass_live_range_shrinkage): New external.
4560 * timevar.def (TV_LIVE_RANGE_SHRINKAGE): New.
4561 * sched-rgn.c (gate_handle_live_range_shrinkage): New.
4562 (rest_of_handle_live_range_shrinkage): Ditto
4563 (class pass_live_range_shrinkage): Ditto.
4564 (pass_data_live_range_shrinkage): Ditto.
4565 (make_pass_live_range_shrinkage): Ditto.
4566 * sched-int.h (initialize_live_range_shrinkage): New prototype.
4567 (finish_live_range_shrinkage): Ditto.
4568 * sched-deps.c (create_insn_reg_set): Make void return value.
4569 * passes.def: Add pass_live_range_shrinkage.
d8cefb47 4570 * ira.c (update_equiv_regs): Don't move if flag_live_range_shrinkage.
57a8bf1b 4571 * haifa-sched.c (live_range_shrinkage_p): New.
4572 (initialize_live_range_shrinkage, finish_live_range_shrinkage):
4573 New functions.
4574 (rank_for_schedule): Add code for pressure relief through live
4575 range shrinkage.
4576 (schedule_insn): Print more debug info.
4577 (sched_init): Setup SCHED_PRESSURE_WEIGHTED for pressure relief
4578 through live range shrinkage.
4579 * doc/invoke.texi (-flive-range-shrinkage): New.
4580 * common.opt (flive-range-shrinkage): New.
4581
17f29ef3 45822013-11-06 Uros Bizjak <ubizjak@gmail.com>
4583
4584 PR target/59021
4585 * config/i386/i386.c (ix86_avx_u128_mode_needed): Require
4586 AVX_U128_DIRTY mode for call_insn RTXes that use AVX256 registers.
4587 (ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY mode for call_insn
4588 RTXes that return in AVX256 register.
4589
99f6be4b 45902013-11-06 Richard Biener <rguenther@suse.de>
4591
4592 PR tree-optimization/58653
17f29ef3 4593 * tree-predcom.c (ref_at_iteration): Rewrite to generate a MEM_REF.
99f6be4b 4594 (prepare_initializers_chain): Adjust.
4595
c927329e 45962013-11-06 Andrew MacLeod <amacleod@redhat.com>
4597
4598 * gimple.h (block_in_transaction): Move to basic-block.h and rename.
4599 (gimple_in_transaction): Use bb_in_transaction.
4600 * basic-block.h (bb_in_transaction): Relocate here and rename.
4601 * tree-ssa-loop-im.c (execute_sm): Use bb_in_transaction.
4602
4a8f88ff 46032013-11-06 Richard Biener <rguenther@suse.de>
4604
4605 * tree.c (drop_tree_overflow): New function.
4606 * tree.h (drop_tree_overflow): Declare.
4607 * gimplify.c (gimplify_expr): Drop TREE_OVERFLOW.
4608 * tree-vrp.c (range_int_cst_singleton_p): Use
4609 is_overflow_infinity instead of testing TREE_OVERFLOW.
4610 (extract_range_from_assert): Likewise.
4611 (zero_nonzero_bits_from_vr): Likewise.
4612 (extract_range_basic): Likewise.
4613 (register_new_assert_for): Use drop_tree_overflow.
4614 (vrp_visit_phi_node): Likewise.
4615
57a3d097 46162013-11-06 Eric Botcazou <ebotcazou@adacore.com>
4617
17f29ef3 4618 * config/i386/i386.c (ix86_expand_prologue): Optimize stack
4619 checking for leaf functions without dynamic stack allocation.
57a3d097 4620 * config/ia64/ia64.c (ia64_emit_probe_stack_range): Adjust.
4621 (ia64_expand_prologue): Likewise.
4622 * config/mips/mips.c (mips_expand_prologue): Likewise.
4623 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
4624 * config/sparc/sparc.c (sparc_expand_prologue): Likewise.
4625 (sparc_flat_expand_prologue): Likewise.
4626
c42de106 46272013-11-06 James Greenhalgh <james.greenhalgh@arm.com>
4628
9c2292aa 4629 * config/aarch64/arm_neon.h (__ST2_LANE_FUNC): Better model data size.
c42de106 4630 (__ST3_LANE_FUNC): Likewise.
4631 (__ST4_LANE_FUNC): Likewise.
4632
1d9ad37b 46332013-11-06 Nick Clifton <nickc@redhat.com>
4634
8e246851 4635 * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Define the
4636 name returned by msp430_mcu_name.
4637 (LIB_SPEC): If a -T option has not been specified then set a
4638 default, mcu-specific, linker script.
4639 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add more mcu names.
4640 * config/msp430/msp430.c (msp430x_names): Likewise.
4641 Alpha sort the names for ease of comparison.
4642 (msp430_mcu_name): New function: Returns a string suitable for
4643 use as a C preprocessor symbol based upon the name of the MCU
4644 being targeted.
4645 (msp430_option_override): Accept msp430x and msp430xv2 as generic
4646 mcu names.
4647 * config/msp430/msp430-protos.h (msp430_mcu_name): Prototype.
4648
1d9ad37b 4649 * gcc.c (do_spec_1): Do not insert a space after a %* substitution
4650 unless it is the last part of a spec substring.
4651 * doc/invoke.texi (Spec Files): Document space insertion
4652 behaviour of %*.
4653
c2daae6e 46542013-11-06 Christian Bruel <christian.bruel@st.com>
4655
57a3d097 4656 * config/sh/sh-mem.cc (sh_expand_cmpnstr, sh_expand_cmpstr):
c2daae6e 4657 Factorize probabilities, Use adjust_address instead of
4658 adjust_automodify_address when possible. Enable for optimize.
4659 (sh_expand_strlen): New function.
57a3d097 4660 * config/sh/sh-protos.h (sh_expand_strlen): Declare.
4661 * config/sh/sh.md (strlensi): New pattern.
c2daae6e 4662 (UNSPEC_BUILTIN_STRLEN): Define.
4663
5efffd8e 46642013-11-06 Jakub Jelinek <jakub@redhat.com>
4665
4666 PR middle-end/58970
4667 * expr.c (get_bit_range): Handle *offset == NULL_TREE.
4668 (expand_assignment): If *bitpos is negative, set *offset
4669 and adjust *bitpos, so that it is not negative.
4670
1fff7507 46712013-11-06 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
4672
8e246851 4673 * config/i386/bdver3.md : Added two additional decoder units
1fff7507 4674 to support issue rate of 4 and remodeled vector unit.
4675 * config/i386/i386.c (ix86_issue_rate): Issue rate for BD
4676 architectures is set to 4.
4677 * config/i386/i386.c (ia32_multipass_dfa_lookahead): DFA
4678 lookahead is set to 4 for BD architectures.
4679
e793ca98 46802013-11-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4681
4682 * config/rs6000/rs6000.c (rs6000_option_override_internal):
4683 Remove restriction against use of VSX instructions when generating
4684 code for little endian mode.
4685
19a72e55 46862013-11-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4687
4688 * config/rs6000/altivec.md (mulv4si3): Ensure we generate vmulouh
4689 for both big and little endian.
4690 (mulv8hi3): Swap input operands for merge high and merge low
4691 instructions for little endian.
4692
2d65282f 46932013-11-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4694
4695 * config/rs6000/altivec.md (vec_widen_umult_even_v16qi): Change
4696 define_insn to define_expand that uses even patterns for big
4697 endian and odd patterns for little endian.
4698 (vec_widen_smult_even_v16qi): Likewise.
4699 (vec_widen_umult_even_v8hi): Likewise.
4700 (vec_widen_smult_even_v8hi): Likewise.
4701 (vec_widen_umult_odd_v16qi): Likewise.
4702 (vec_widen_smult_odd_v16qi): Likewise.
4703 (vec_widen_umult_odd_v8hi): Likewise.
4704 (vec_widen_smult_odd_v8hi): Likewise.
4705 (altivec_vmuleub): New define_insn.
4706 (altivec_vmuloub): Likewise.
4707 (altivec_vmulesb): Likewise.
4708 (altivec_vmulosb): Likewise.
4709 (altivec_vmuleuh): Likewise.
4710 (altivec_vmulouh): Likewise.
4711 (altivec_vmulesh): Likewise.
4712 (altivec_vmulosh): Likewise.
4713
f8988513 47142013-11-05 Mike Stump <mikestump@comcast.net>
4715
4716 * Makefile.in (mostlyclean): Remove c-family objects.
4717
793f83ae 47182013-11-05 Ian Lance Taylor <iant@google.com>
4719
4720 * config/i386/sync.md (atomic_compare_and_swap<dwi>_doubleword):
4721 If possible, add .cfi directives to record change to bx.
4722 * config/i386/i386.c (ix86_emit_cfi): New function.
4723 * config/i386/i386-protos.h (ix86_emit_cfi): Declare.
4724
e23b28fa 47252013-11-05 Steven Bosscher <steven@gcc.gnu.org>
4726
e23b28fa 4727 * rtlanal.c (tablejump_p): Expect a JUMP_TABLE_DATA to always follow
4728 immediately after a label for a tablejump pattern.
4729
4730 * config/arm/arm.c (is_jump_table): Remove.
4731 (create_fix_barrier): Use tablejump_p instead.
4732 (arm_reorg): Likewise.
4733 (thumb1_output_casesi): Expect JUMP_TABLE_DATA to always be NEXT_INSN.
4734 (thumb2_output_casesi): Likewise.
4735 * config/aarch64/aarch64.c (aarch64_output_casesi): Likewise.
4736 * config/sh/sh.md (casesi_worker_1, casesi_worker_2,
4737 casesi_shift_media, casesi_load_media): Likewise.
4738 * config/iq2000/iq2000.md: Likewise (in anonymous define_insn).
4739 * config/microblaze/microblaze.md: Likewise.
4740
9148bda3 47412013-11-05 Tobias Burnus <burnus@net-b.de>
4742
4743 * doc/invoke.texi (-Wdate-time): Document.
4744
664c66df 47452013-11-05 Richard Sandiford <rdsandiford@googlemail.com>
4746
4747 * double-int.c (lshift_double, rshift_double): Remove
4748 SHIFT_COUNT_TRUNCATED handling.
4749
db242b6d 47502013-11-05 Jeff Law <law@redhat.com>
4751
4752 * Makefile.in (OBJS): Add gimple-ssa-isolate-paths.o
17f29ef3 4753 * common.opt (-fisolate-erroneous-paths): Add option and documentation.
db242b6d 4754 * gimple-ssa-isolate-paths.c: New file.
4755 * gimple.c (check_loadstore): New function.
4756 (infer_nonnull_range): Moved into gimple.c from tree-vrp.c
4757 Verify OP is in the argument list and the argument corresponding
4758 to OP is a pointer type. Use operand_equal_p rather than
4759 pointer equality when testing if OP is on the nonnull list.
4760 Use check_loadstore rather than count_ptr_derefs. Handle
4761 GIMPLE_RETURN statements.
4762 * tree-vrp.c (infer_nonnull_range): Remove.
4763 * gimple.h (infer_nonnull_range): Declare.
4764 * opts.c (default_options_table): Add OPT_fisolate_erroneous_paths.
4765 * passes.def: Add pass_isolate_erroneous_paths.
4766 * timevar.def (TV_ISOLATE_ERRONEOUS_PATHS): New timevar.
4767 * tree-pass.h (make_pass_isolate_erroneous_paths): Declare.
4768 * tree-ssa.c (struct count_ptr_d): Remove.
4769 (count_ptr_derefs, count_uses_and_derefs): Remove.
4770 * tree-ssa.h (count_uses_and_derefs): Remove.
4771
28573ae7 47722013-11-05 Jakub Jelinek <jakub@redhat.com>
4773
4774 PR rtl-optimization/58997
4775 * loop-iv.c (iv_subreg): For IV_UNKNOWN_EXTEND, expect
4776 get_iv_value to be in iv->mode rather than iv->extend_mode.
4777 (iv_extend): Likewise. Otherwise, if iv->extend != extend,
4778 use lowpart_subreg on get_iv_value before calling simplify_gen_unary.
4779 * loop-unswitch.c (may_unswitch_on): Make sure op[i] is in the right
4780 mode.
4781
46a19abf 47822013-11-05 Andrew MacLeod <amacleod@redhat.com>
4783
4784 * gimple.h: Move some prototypes to gimple-expr.h and add to include
4785 list.
4786 (extract_ops_from_tree, gimple_call_addr_fndecl, is_gimple_reg_type):
4787 Move to gimple-expr.h.
4788 * gimple-expr.h: New file. Relocate some prototypes from gimple.h.
4789 (types_compatible_p, is_gimple_reg_type, is_gimple_variable,
4790 is_gimple_id, virtual_operand_p, is_gimple_addressable,
4791 is_gimple_constant, extract_ops_from_tree, gimple_call_addr_fndecl):
4792 Relocate here.
4793 * gimple.c (extract_ops_from_tree_1, gimple_cond_get_ops_from_tree,
4794 gimple_set_body, gimple_body, gimple_has_body_p, is_gimple_lvalue,
4795 is_gimple_condexpr, is_gimple_addressable, is_gimple_constant,
4796 is_gimple_address, is_gimple_invariant_address,
4797 is_gimple_ip_invariant_address, is_gimple_min_invariant,
4798 is_gimple_ip_invariant, is_gimple_variable, is_gimple_id,
4799 virtual_operand_p, is_gimple_reg, is_gimple_val, is_gimple_asm_val,
4800 is_gimple_min_lval, is_gimple_call_addr, is_gimple_mem_ref_addr,
4801 gimple_decl_printable_name, useless_type_conversion_p,
17f29ef3 4802 types_compatible_p, gimple_can_coalesce_p, copy_var_decl): Move to
46a19abf 4803 gimple-expr.[ch].
4804 * gimple-expr.c: New File.
4805 (useless_type_conversion_p, gimple_set_body, gimple_body,
4806 gimple_has_body_p, gimple_decl_printable_name, copy_var_decl,
17f29ef3 4807 gimple_can_coalesce_p, extract_ops_from_tree_1,
46a19abf 4808 gimple_cond_get_ops_from_tree, is_gimple_lvalue, is_gimple_condexpr,
4809 is_gimple_address, is_gimple_invariant_address,
4810 is_gimple_ip_invariant_address, is_gimple_min_invariant,
4811 is_gimple_ip_invariant, is_gimple_reg, is_gimple_val,
4812 is_gimple_asm_val, is_gimple_min_lval, is_gimple_call_addr,
4813 is_gimple_mem_ref_addr): Relocate here.
4814 * Makefile.in (OBJS): Add gimple-expr.o.
4815
f06de8e8 48162013-11-05 David Malcolm <dmalcolm@redhat.com>
4817
4818 * gengtype-parse.c (struct_field_seq): Support empty structs.
4819
73d6f8aa 48202013-11-05 Uros Bizjak <ubizjak@gmail.com>
4821
4822 * config/i386/t-rtems (MULTILIB_MATCHES): Fix option typos.
4823
8a3edb33 48242013-11-05 Uros Bizjak <ubizjak@gmail.com>
4825
4826 * config/i386/i386-c.c (ix86_target_macros): Define _SOFT_FLOAT
4827 for !TARGET_80387.
4828 * config/i386/rtemself.h (TARGET_OS_CPP_BUILTINS): Do not define
4829 _SOFT_FLOAT here.
4830 (LONG_DOUBLE_TYPE_SIZE): New define.
4831 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Ditto.
4832
74b09c9b 48332013-11-05 Paolo Carlini <paolo.carlini@oracle.com>
4834
4835 PR c++/58724
4836 * doc/extend.texi [visibility ("visibility_type")]: Add example
4837 about visibility attribute on namespace declaration.
4838
f34e160b 48392013-11-05 Richard Biener <rguenther@suse.de>
4840
4841 PR ipa/58492
4842 * passes.def (all_passes): Start with pass_fixup_cfg again.
4843
7138e0de 48442013-11-05 Richard Biener <rguenther@suse.de>
4845
4846 PR tree-optimization/58955
4847 * tree-loop-distribution.c (pg_add_dependence_edges): Fix
4848 edge direction.
4849
97ad6428 48502013-11-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4851
4852 * config/rs6000/vector.md (vec_pack_sfix_trunc_v2df): Adjust for
4853 little endian.
4854 (vec_pack_ufix_trunc_v2df): Likewise.
4855
300c6cee 48562013-11-05 H.J. Lu <hongjiu.lu@intel.com>
4857
4858 PR middle-end/58981
4859 * doc/md.texi (@code{movmem@var{m}}): Specify Pmode as mode of
4860 pattern, instead of word_mode.
4861
4862 * expr.c (emit_block_move_via_movmem): Don't use mode wider than
4863 Pmode for size.
4864 (set_storage_via_setmem): Likewise.
4865
f5ea8c53 48662013-11-05 Andrew MacLeod <amacleod@redhat.com>
4867
74b09c9b 4868 * tree-outof-ssa.c (queue_phi_copy_p): Combine phi_ssa_name_p from
f5ea8c53 4869 gimple.h and the rest of the condition in eliminate_build.
4870 (eliminate_build): Call new routine.
4871 * gimple.h (phi_ssa_name_p): Delete.
4872
cce95bcb 48732013-11-05 Trevor Saunders <tsaunders@mozilla.com>
4874
4875 * vec.c (vec_prefix::calculate_allocation): Don't try to handle the
4876 case of no prefix and reserving zero slots, because when that's the
4877 case we'll never get here.
4878 * vec.h (va_heap::reserve): Don't try and handle
4879 vec_prefix::calculate_allocation returning zero because that should
4880 never happen.
4881
435749aa 48822013-11-05 Richard Biener <rguenther@suse.de>
4883
4884 PR middle-end/58941
4885 * tree-dfa.c (get_ref_base_and_extent): Merge common code
4886 in MEM_REF and TARGET_MEM_REF handling. Make sure to
4887 process trailing array detection before diving into the
4888 view-converted object (and possibly apply some extra offset).
4889
08c5f4d5 48902013-11-05 Joseph Myers <joseph@codesourcery.com>
4891
4892 * config/i386/i386.c (ix86_float_exceptions_rounding_supported_p):
4893 New function.
4894 (TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P): Define.
4895
d1603825 48962013-11-05 Marc Glisse <marc.glisse@inria.fr>
4897
4898 PR tree-optimization/58958
4899 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Use
4900 get_addr_base_and_unit_offset instead of get_ref_base_and_extent.
4901
234f1f79 49022013-11-05 Marc Glisse <marc.glisse@inria.fr>
4903
4904 * tree-ssa-alias.h (ranges_overlap_p): Handle negative offsets.
4905 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Likewise.
4906
2a687ef9 49072013-11-05 Jakub Jelinek <jakub@redhat.com>
4908
4909 PR tree-optimization/58984
4910 * ipa-prop.c (ipa_load_from_parm_agg_1): Add SIZE_P argument,
4911 set *SIZE_P if non-NULL on success.
4912 (ipa_load_from_parm_agg, ipa_analyze_indirect_call_uses): Adjust
4913 callers.
4914 (ipcp_transform_function): Likewise. Punt if size of access
4915 is different from TYPE_SIZE on v->value's type.
4916
c630ef93 49172013-11-05 Tobias Burnus <burnus@net-b.de>
4918
4919 * doc/invoke.texi (-fopenmp-simd): Document new option.
4920 * gimplify.c (gimplify_body): Accept -fopenmp-simd.
4921 * omp-low.c (execute_expand_omp, execute_lower_omp): Ditto.
4922 * tree.c (attribute_value_equal): Ditto.
4923
681b9609 49242013-11-04 Wei Mi <wmi@google.com>
4925
4926 * sched-rgn.c (add_branch_dependences): Keep insns in
4927 a SCHED_GROUP at the end of BB to remain their location.
4928
641b578b 49292013-11-04 Wei Mi <wmi@google.com>
4930
57a3d097 4931 * config/i386/i386.c (memory_address_length): Extract a part
641b578b 4932 of code to rip_relative_addr_p.
4933 (rip_relative_addr_p): New Function.
4934 (ix86_macro_fusion_p): Ditto.
4935 (ix86_macro_fusion_pair_p): Ditto.
57a3d097 4936 * config/i386/i386.h: Add new tune features about macro-fusion.
4937 * config/i386/x86-tune.def (DEF_TUNE): Ditto.
4938 * doc/tm.texi: Generated.
4939 * doc/tm.texi.in: Ditto.
4940 * haifa-sched.c (try_group_insn): New Function.
641b578b 4941 (group_insns_for_macro_fusion): Ditto.
4942 (sched_init): Call group_insns_for_macro_fusion.
57a3d097 4943 * target.def: Add two hooks: macro_fusion_p and
641b578b 4944 macro_fusion_pair_p.
4945
1e80ce41 49462013-11-04 Kostya Serebryany <kcc@google.com>
4947
4948 Update to match the changed asan API.
4949 * asan.c (asan_function_start): New function.
4950 (asan_emit_stack_protection): Update the string stored in the
4951 stack red zone to match new API. Store the PC of the current
4952 function in the red zone.
4953 (asan_global_struct): Update the __asan_global definition to match
4954 the new API.
4955 (asan_add_global): Ditto.
4956 * asan.h (asan_function_start): New prototype.
4957 * final.c (final_start_function): Call asan_function_start.
8a3edb33 4958 * sanitizer.def (BUILT_IN_ASAN_INIT): Rename __asan_init_v1
4959 to __asan_init_v3.
1e80ce41 4960
482026b6 49612013-11-04 Wei Mi <wmi@google.com>
4962
57a3d097 4963 * config/i386/i386-c.c (ix86_target_macros_internal): Separate
482026b6 4964 PROCESSOR_COREI7_AVX out from PROCESSOR_COREI7.
57a3d097 4965 * config/i386/i386.c (ix86_option_override_internal): Ditto.
482026b6 4966 (ix86_issue_rate): Ditto.
4967 (ix86_adjust_cost): Ditto.
4968 (ia32_multipass_dfa_lookahead): Ditto.
4969 (ix86_sched_init_global): Ditto.
4970 (get_builtin_code_for_version): Ditto.
57a3d097 4971 * config/i386/i386.h (enum target_cpu_default): Ditto.
482026b6 4972 (enum processor_type): Ditto.
57a3d097 4973 * config/i386/x86-tune.def (DEF_TUNE): Ditto.
482026b6 4974
d7170add 49752013-11-04 Vladimir Makarov <vmakarov@redhat.com>
4976
4977 PR rtl-optimization/58967
4978 * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Remove
4979 !lra_in_progress for mode sizes bigger word.
4980
37c871fc 49812013-11-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4982
4983 * config/rs6000/altivec.md (vec_widen_umult_hi_v16qi): Swap
4984 arguments to merge instruction for little endian.
4985 (vec_widen_umult_lo_v16qi): Likewise.
4986 (vec_widen_smult_hi_v16qi): Likewise.
4987 (vec_widen_smult_lo_v16qi): Likewise.
4988 (vec_widen_umult_hi_v8hi): Likewise.
4989 (vec_widen_umult_lo_v8hi): Likewise.
4990 (vec_widen_smult_hi_v8hi): Likewise.
4991 (vec_widen_smult_lo_v8hi): Likewise.
4992
8eabe518 49932013-11-04 Ian Lance Taylor <iant@google.com>
4994
4995 * builtins.def (ATTR_NOTHROWCALL_LEAF_LIST): Define.
4996 * sync-builtins.def: Use ATTR_NOTHROWCALL_LEAF_LIST for all sync
4997 builtins that take pointers.
8a3edb33 4998 * lto-opts.c (lto_write_options): Write -fnon-call-exceptions if set.
4999 * lto-wrapper.c (merge_and_complain): Collect OPT_fnon_call_exceptions.
8eabe518 5000 (run_gcc): Pass -fnon-call-exceptions.
5001
5c8091dd 50022013-11-04 Jakub Jelinek <jakub@redhat.com>
5003
833c71b0 5004 * optabs.c (expand_vec_perm): Revert one incorrect line from
5005 2013-10-31 change.
5006
5c8091dd 5007 PR tree-optimization/58978
5008 * tree-vrp.c (all_imm_uses_in_stmt_or_feed_cond): Don't modify
5009 use_stmt by single_imm_use directly. Only call single_imm_use
5010 on SSA_NAMEs.
5011
8dd9f7ce 50122013-11-04 Vladimir Makarov <vmakarov@redhat.com>
5013
5014 PR rtl-optimization/58968
5015 * lra-spills.c (return_regno_p): New function.
5016 (lra_final_code_change): Use it.
5017
4c866b9b 50182013-11-04 Joseph Myers <joseph@codesourcery.com>
5019
8a3edb33 5020 * doc/cpp.texi (__GCC_IEC_559, __GCC_IEC_559_COMPLEX): Document macros.
4c866b9b 5021 * target.def (float_exceptions_rounding_supported_p): New hook.
5022 * targhooks.c (default_float_exceptions_rounding_supported_p): New
5023 function.
8a3edb33 5024 * targhooks.h (default_float_exceptions_rounding_supported_p): Declare.
4c866b9b 5025 * doc/tm.texi.in (TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P):
5026 New @hook.
5027 * doc/tm.texi: Regenerate.
5028 * config.gcc (powerpc*-*-linux*): Set extra_objs.
5029 * config/rs6000/rs6000-linux.c: New file.
5030 * config/rs6000/rs6000-protos.h
5031 (rs6000_linux_float_exceptions_rounding_supported_p): Declare.
5032 * config/rs6000/linux.h
5033 (TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P): New macro.
5034 * config/rs6000/linux64.h
5035 (TARGET_FLOAT_EXCEPTIONS_ROUNDING_SUPPORTED_P): Likewise.
5036 * config/rs6000/t-linux (rs6000-linux.o): New rule.
5037 * config/rs6000/t-linux64 (rs6000-linux.o): Likewise.
5038
96cffcb7 50392013-11-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5040
5041 * config/rs6000/vsx.md (*vsx_le_perm_store_<mode> for VSX_D):
5042 Replace the define_insn_and_split with a define_insn and two
5043 define_splits, with the split after reload re-permuting the source
5044 register to its original value.
5045 (*vsx_le_perm_store_<mode> for VSX_W): Likewise.
5046 (*vsx_le_perm_store_v8hi): Likewise.
5047 (*vsx_le_perm_store_v16qi): Likewise.
5048
1c94e187 50492013-11-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5050
5051 * config/rs6000/vector.md (vec_pack_trunc_v2df): Adjust for
5052 little endian.
5053
3c8e4ef8 50542013-11-04 Jakub Jelinek <jakub@redhat.com>
5055
5056 PR tree-optimization/58946
5057 * tree-ssa-reassoc.c (maybe_optimize_range_tests): Update all
5058 bbs with bbinfo[idx].op != NULL before all blocks with
5059 bbinfo[idx].op == NULL.
5060
7b5733e8 50612013-11-04 Richard Sandiford <rdsandiford@googlemail.com>
5062
5063 * config/avr/avr-log.c (avr_double_int_pop_digit): Delete.
5064 (avr_dump_double_int_hex): Likewise.
5065 (avr_log_vadump): Remove %D and %X handling.
5066 * config/avr/avr.c (avr_double_int_push_digit): Delete.
5067 (avr_map_op_t): Change map from double_int to unsigned int.
5068 (avr_map_op): Update accordingly.
5069 (avr_map, avr_map_metric, avr_has_nibble_0xf, avr_map_decompose)
5070 (avr_move_bits, avr_out_insert_bits, avr_fold_builtin): Operate on
5071 unsigned ints rather than double_ints.
5072
2c4c3477 50732013-11-03 Marek Polacek <polacek@redhat.com>
5074
5075 Implement -fsanitize=vla-bound.
5076 * opts.c (common_handle_option): Handle vla-bound.
8a3edb33 5077 * sanitizer.def (BUILT_IN_UBSAN_HANDLE_VLA_BOUND_NOT_POSITIVE): Define.
2c4c3477 5078 * flag-types.h (enum sanitize_code): Add SANITIZE_VLA.
5079 * asan.c (initialize_sanitizer_builtins): Build BT_FN_VOID_PTR_PTR.
5080
a89f106f 50812013-11-02 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
5082
5083 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Adjust for
5084 little endian.
5085
1e662e65 50862013-11-02 Uros Bizjak <ubizjak@gmail.com>
5087
5088 * config/i386/constraints.md (Ts, Tv): New address constrains.
5089 * config/i386/i386.md (*lea<mode>, *<mode>_<bndcheck>): Use Ts
5090 constraint for address_no_seg_operand.
5091 * config/i386/sse.md (*avx512pf_gatherpf<mode>_mask)
5092 (*avx512pf_gatherpf<mode>, *avx512pf_scatterpf<mode>_mask)
5093 (*avx512pf_scatterpf<mode>, *avx2_gathersi<mode>)
5094 (*avx2_gathersi<mode>_2, *avx2_gatherdi<mode>, *avx2_gatherdi<mode>_2)
5095 (*avx2_gatherdi<mode>_3, *avx2_gatherdi<mode>_4)
5096 (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2)
5097 (*avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2)
5098 (*avx512f_scattersi<mode> *avx512f_scatterdi<mode>): Use Tv
5099 constraint for vsib_address_operand.
5100
67d57e27 51012013-11-02 Steven Bosscher <steven@gcc.gnu.org>
5102
5103 * gcse.c (pre_delete): Remove references to regmove from comments.
5104 * recog.c: (validate_replace_rtx_1): Likewise.
5105 * config/rl78/rl78.c: Likewise.
5106 * config/v850/v850.h: Likewise, and remove unused ENABLE_REGMOVE_PASS.
5107 * common/config/m32r/m32r-common.c: Don't manipulate OPT_fregmove.
5108 * common/config/mmix/mmix-common.c: Likewise.
5109
e85cf4e5 51102013-11-01 Trevor Saunders <tsaunders@mozilla.com>
5111
5112 * function.c (reorder_blocks): Convert block_stack to a stack_vec.
5113 * gimplify.c (gimplify_compound_lval): Likewise.
5114 * graphite-clast-to-gimple.c (gloog): Likewise.
5115 * graphite-dependences.c (loop_is_parallel_p): Likewise.
5116 * graphite-scop-detection.c (scopdet_basic_block_info): Likewise.
5117 (limit_scop); Likewise.
5118 (build_scops): Likewise.
5119 (dot_scop): Likewise.
5120 * graphite-sese-to-poly.c (sese_dom_walker): Likewise.
5121 (build_scop_drs): Likewise.
5122 (insert_stmts): Likewise.
5123 (insert_out_of_ssa_copy): Likewise.
5124 (remove_phi): Likewise.
5125 (rewrite_commutative_reductions_out_of_ssa_close_phi): Likewise.
5126 * hw-doloop.c (discover_loop): Likewise.
5127 * tree-call-cdce.c (shrink_wrap_one_built_in_call): Likewise.
5128 * tree-dfa.c (dump_enumerated_decls): Likewise.
5129 * tree-if-conv.c (if_convertable_loop_p): Likewise.
5130 * tree-inline.c (tree_function_versioning): Likewise.
5131 * tree-loop-distribution.c (build_rdg): Likewise.
5132 (rdg_flag_vertex_and_dependent): Likewise.
5133 (distribute_loop): Likewise.
5134 * tree-parloops.c (loop_parallel_p): Likewise.
5135 (eliminate_local_variables): Likewise.
5136 (separate_decls_in_region): Likewise.
5137 * tree-predcom.c (tree_predictive_commoning_loop): Likewise.
5138 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Likewise.
5139 * tree-ssa-uncprop.c (uncprop_dom_walker): Likewise.
5140 * tree-vect-loop.c (vect_analyze_scaler_cycles_1): Likewise.
5141 * tree-vect-patterns.c (vect_pattern_recog): Likewise.
5142 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
5143 (vectorizable_condition): Likewise.
5144
f17a6c34 51452013-11-01 Uros Bizjak <ubizjak@gmail.com>
5146
5147 * configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): Always define as 0/1.
5148 * configure: Regenerate.
5149 * config/i386/i386.md (*movdi_internal): Change
5150 HAVE_AS_IX86_INTERUNIT_MOVQ to runtime check.
5151 (*movdf_internal): Ditto.
5152 * config/i386/mmx.md (*mov<mode>_internal): Ditto.
5153 * config/i386/sse.md (vec_concatv2di): Output interunit movq
5154 for HAVE_AS_IX86_INTERUNIT_MOVQ targets.
5155
fd67653e 51562013-10-31 Robert Suchanek <Robert.Suchanek@imgtec.com>
5157
5158 * lra-spills.c (assign_spill_hard_regs): Remove statement terminator
5159 after comment.
5160
452659af 51612013-10-31 David Malcolm <dmalcolm@redhat.com>
5162
5163 Automated part of renaming of symtab_node_base to symtab_node.
5164
5165 Patch autogenerated by rename_symtab.py from
5166 https://github.com/davidmalcolm/gcc-refactoring-scripts
5167 revision 58bb219cc090b2f4516a9297d868c245495ee622
5168 with ChangeLog entry fixed up by hand.
5169
5170 * cgraph.c (x_cgraph_nodes_queue): Rename symtab_node_base to
5171 symtab_node.
5172 (cgraph_node_for_asm): Likewise.
5173 * cgraph.h (symtab_node_base): Likewise.
5174 (cgraph_node): Likewise.
5175 (varpool_node): Likewise.
5176 (is_a_helper <cgraph_node>::test): Likewise.
5177 (is_a_helper <varpool_node>::test): Likewise.
5178 (symtab_nodes): Likewise.
5179 (symtab_register_node): Likewise.
5180 (symtab_unregister_node): Likewise.
5181 (symtab_remove_node): Likewise.
5182 (symtab_get_node): Likewise.
5183 (symtab_node_for_asm): Likewise.
5184 (symtab_node_asm_name): Likewise.
5185 (symtab_node_name): Likewise.
5186 (symtab_insert_node_to_hashtable): Likewise.
5187 (symtab_add_to_same_comdat_group): Likewise.
5188 (symtab_dissolve_same_comdat_group_list): Likewise.
5189 (dump_symtab_node): Likewise.
5190 (debug_symtab_node): Likewise.
5191 (dump_symtab_base): Likewise.
5192 (verify_symtab_node): Likewise.
5193 (verify_symtab_base): Likewise.
5194 (symtab_used_from_object_file_p): Likewise.
5195 (symtab_alias_ultimate_target): Likewise.
5196 (symtab_resolve_alias): Likewise.
5197 (fixup_same_cpp_alias_visibility): Likewise.
5198 (symtab_for_node_and_aliases): Likewise.
5199 (symtab_nonoverwritable_alias): Likewise.
5200 (availability symtab_node_availability): Likewise.
5201 (symtab_semantically_equivalent_p): Likewise.
5202 (fixup_same_cpp_alias_visibility): Likewise.
5203 (symtab_prevail_in_asm_name_hash): Likewise.
5204 (cgraph): Likewise.
5205 (varpool): Likewise.
5206 (varpool_first_variable): Likewise.
5207 (varpool_next_variable): Likewise.
5208 (varpool_first_static_initializer): Likewise.
5209 (varpool_next_static_initializer): Likewise.
5210 (varpool_first_defined_variable): Likewise.
5211 (varpool_next_defined_variable): Likewise.
5212 (cgraph_first_defined_function): Likewise.
5213 (cgraph_next_defined_function): Likewise.
5214 (cgraph_first_function): Likewise.
5215 (cgraph_next_function): Likewise.
5216 (cgraph_first_function_with_gimple_body): Likewise.
5217 (cgraph_next_function_with_gimple_body): Likewise.
5218 (symtab_alias_target): Likewise.
5219 (symtab_real_symbol_p): Likewise.
5220 (symtab_can_be_discarded): Likewise.
5221 * cgraphbuild.c (mark_address): Likewise.
5222 (mark_load): Likewise.
5223 (mark_store): Likewise.
5224 * cgraphunit.c (decide_is_symbol_needed): Likewise.
5225 (first): Likewise.
5226 (enqueue_node): Likewise.
5227 (referred_to_p): Likewise.
5228 (cgraph_process_same_body_aliases): Likewise.
5229 (analyze_functions): Likewise.
5230 (handle_alias_pairs): Likewise.
5231 (output_weakrefs): Likewise.
5232 (compile): Likewise.
5233 * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
5234 * ipa-inline-analysis.c (inline_write_summary): Likewise.
5235 * ipa-prop.c (remove_described_reference): Likewise.
5236 (try_decrement_rdesc_refcount): Likewise.
5237 (ipa_edge_duplication_hook): Likewise.
5238 * ipa-ref.c (ipa_record_reference): Likewise.
5239 (ipa_maybe_record_reference): Likewise.
5240 (ipa_clone_ref): Likewise.
5241 (ipa_clone_references): Likewise.
5242 (ipa_clone_referring): Likewise.
5243 (ipa_find_reference): Likewise.
5244 (ipa_remove_stmt_references): Likewise.
5245 (ipa_clear_stmts_in_references): Likewise.
5246 * ipa-ref.h (symtab_node_base): Likewise.
5247 (ipa_ref): Likewise.
5248 (ipa_record_reference): Likewise.
5249 (ipa_maybe_record_reference): Likewise.
5250 (ipa_clone_references): Likewise.
5251 (ipa_clone_referring): Likewise.
5252 (ipa_clone_ref): Likewise.
5253 (ipa_find_reference): Likewise.
5254 (ipa_remove_stmt_references): Likewise.
5255 (ipa_clear_stmts_in_references): Likewise.
5256 * ipa-reference.c (ipa_reference_write_optimization_summary):
5257 Likewise.
5258 * ipa.c (enqueue_node): Likewise.
5259 (process_references): Likewise.
5260 (walk_polymorphic_call_targets): Likewise.
5261 (symtab_remove_unreachable_nodes): Likewise.
5262 (address_taken_from_non_vtable_p): Likewise.
5263 (comdat_can_be_unshared_p_1): Likewise.
5264 (comdat_can_be_unshared_p): Likewise.
5265 (can_replace_by_local_alias): Likewise.
5266 (function_and_variable_visibility): Likewise.
5267 * is-a.h: Likewise (within example in comment).
5268 * lto-cgraph.c (input_cgraph_opt_summary): Likewise.
5269 (lto_symtab_encoder_encode): Likewise.
5270 (lto_symtab_encoder_delete_node): Likewise.
5271 (lto_symtab_encoder_in_partition_p): Likewise.
5272 (lto_set_symtab_encoder_in_partition): Likewise.
5273 (output_refs): Likewise.
5274 (compute_ltrans_boundary): Likewise.
5275 (output_symtab): Likewise.
5276 (input_node): Likewise.
5277 (input_ref): Likewise.
5278 (input_edge): Likewise.
5279 (input_cgraph_1): Likewise.
5280 (input_refs): Likewise.
5281 (output_cgraph_opt_summary): Likewise.
5282 (input_node_opt_summary): Likewise.
5283 (input_cgraph_opt_section): Likewise.
5284 * lto-section-in.c (lto_free_function_in_decl_state_for_node):
5285 Likewise.
5286 * lto-streamer-out.c (lto_output): Likewise.
5287 (output_symbol_p): Likewise.
5288 (produce_symtab): Likewise.
5289 * lto-streamer.h (lto_encoder_entry): Likewise.
5290 (lto_free_function_in_decl_state_for_node): Likewise.
5291 (lto_symtab_encoder_encode): Likewise.
5292 (lto_symtab_encoder_delete_node): Likewise.
5293 (lto_symtab_encoder_in_partition_p): Likewise.
5294 (lto_set_symtab_encoder_in_partition): Likewise.
5295 (lto_symtab_encoder_lookup): Likewise.
5296 (lsei_node): Likewise.
5297 (lto_symtab_encoder_deref): Likewise.
5298 * symtab.c (symtab_hash): Likewise.
5299 (assembler_name_hash): Likewise.
5300 (symtab_nodes): Likewise.
5301 (hash_node): Likewise.
5302 (eq_node): Likewise.
5303 (hash_node_by_assembler_name): Likewise.
5304 (eq_assembler_name): Likewise.
5305 (insert_to_assembler_name_hash): Likewise.
5306 (unlink_from_assembler_name_hash): Likewise.
5307 (symtab_prevail_in_asm_name_hash): Likewise.
5308 (symtab_register_node): Likewise.
5309 (symtab_insert_node_to_hashtable): Likewise.
5310 (symtab_unregister_node): Likewise.
5311 (symtab_get_node): Likewise.
5312 (symtab_remove_node): Likewise.
5313 (symtab_initialize_asm_name_hash): Likewise.
5314 (symtab_node_for_asm): Likewise.
5315 (symtab_add_to_same_comdat_group): Likewise.
5316 (symtab_dissolve_same_comdat_group_list): Likewise.
5317 (symtab_node_asm_name): Likewise.
5318 (symtab_node_name): Likewise.
5319 (dump_symtab_base): Likewise.
5320 (dump_symtab_node): Likewise.
5321 (dump_symtab): Likewise.
5322 (debug_symtab_node): Likewise.
5323 (verify_symtab_base): Likewise.
5324 (verify_symtab_node): Likewise.
5325 (verify_symtab): Likewise.
5326 (symtab_used_from_object_file_p): Likewise.
5327 (symtab_node_availability): Likewise.
5328 (symtab_alias_ultimate_target): Likewise.
5329 (fixup_same_cpp_alias_visibility): Likewise.
5330 (symtab_resolve_alias): Likewise.
5331 (symtab_for_node_and_aliases): Likewise.
5332 (symtab_for_node_and_aliases): Likewise.
5333 (symtab_nonoverwritable_alias_1): Likewise.
5334 (symtab_nonoverwritable_alias): Likewise.
5335 (symtab_semantically_equivalent_p): Likewise.
5336 * value-prof.c (init_node_map): Likewise.
5337 * varasm.c (find_decl): Likewise.
5338 * varpool.c (varpool_node_for_asm): Likewise.
5339 (varpool_remove_unreferenced_decls): Likewise.
5340
a908ea1c 53412013-10-31 David Malcolm <dmalcolm@redhat.com>
5342
5343 Manual part of renaming of symtab_node_base to symtab_node.
5344
5345 * ipa-ref.h (symtab_node): Remove typedef to pointer type, as it
5346 clashes with the preferred name for the base class.
5347 (const_symtab_node): Remove redundant typedef.
5348
09e640e6 53492013-10-31 Jakub Jelinek <jakub@redhat.com>
5350
5351 * optabs.c (expand_vec_perm): Avoid vector mode punning
5352 SUBREGs in SET_DEST.
5353 * expmed.c (store_bit_field_1): Likewise.
5354 * config/i386/sse.md (movdi_to_sse, vec_pack_sfix_trunc_v2df,
5355 vec_pack_sfix_v2df, vec_shl_<mode>, vec_shr_<mode>,
5356 vec_interleave_high<mode>, vec_interleave_low<mode>): Likewise.
5357 * config/i386/i386.c (ix86_expand_vector_move_misalign,
5358 ix86_expand_sse_movcc, ix86_expand_int_vcond, ix86_expand_vec_perm,
5359 ix86_expand_sse_unpack, ix86_expand_args_builtin,
5360 ix86_expand_vector_init_duplicate, ix86_expand_vector_set,
5361 emit_reduc_half, expand_vec_perm_blend, expand_vec_perm_pshufb,
5362 expand_vec_perm_interleave2, expand_vec_perm_pshufb2,
5363 expand_vec_perm_vpshufb2_vpermq,
5364 expand_vec_perm_vpshufb2_vpermq_even_odd, expand_vec_perm_even_odd_1,
5365 expand_vec_perm_broadcast_1, expand_vec_perm_vpshufb4_vpermq2,
5366 ix86_expand_sse2_mulv4si3, ix86_expand_pinsr): Likewise.
5367 (expand_vec_perm_palignr): Likewise. Modify a copy of *d rather
5368 than *d itself.
5369
2b2b90a3 53702013-10-31 Uros Bizjak <ubizjak@gmail.com>
5371
5372 * config/i386/i386.c (ix86_expand_sse2_abs): Rename function arguments.
5373 Use gcc_unreachable for unhandled modes. Do not check results of
5374 expand_simple_binop. If not expanded to target, move the result.
5375
eae21ed1 53762013-10-31 Chung-Ju Wu <jasonwucj@gmail.com>
5377 Shiva Chen <shiva0217@gmail.com>
5378
5379 * config.gcc (nds32*-*-*): Add nds32 target.
5380 * config/nds32/nds32.c: New file.
5381 * config/nds32/nds32.h: New file.
5382 * config/nds32/nds32.md: New file.
5383 * config/nds32/constants.md: New file.
5384 * config/nds32/constraints.md: New file.
5385 * config/nds32/iterators.md: New file.
5386 * config/nds32/nds32-doubleword.md: New file.
5387 * config/nds32/nds32-intrinsic.md: New file.
5388 * config/nds32/nds32_intrinsic.h: New file.
5389 * config/nds32/nds32-modes.def: New file.
5390 * config/nds32/nds32-multiple.md: New file.
5391 * config/nds32/nds32.opt: New file.
5392 * config/nds32/nds32-opts.h: New file.
5393 * config/nds32/nds32-protos.h: New file.
5394 * config/nds32/nds32-peephole2.md: New file.
5395 * config/nds32/pipelines.md: New file.
5396 * config/nds32/predicates.md: New file.
5397 * config/nds32/t-mlibs: New file.
5398 * common/config/nds32: New directory and files.
5399
5400 * doc/invoke.texi (NDS32 options): Document nds32 specific options.
5401 * doc/md.texi (NDS32 family): Document nds32 specific constraints.
5402 * doc/install.texi (Cross-Compiler-Specific Options): Document
5403 --with-nds32-lib for nds32 target.
5404 * doc/extend.texi (Function Attributes, Target Builtins): Document
5405 nds32 specific attributes.
5406
0244be31 54072013-10-31 Vladimir Makarov <vmakarov@redhat.com>
5408
5409 * lra-constraints (process_alt_operands): Use the result
5410 elimination register for operand when matching constraints.
5411
d9d5743f 54122013-10-31 Jakub Jelinek <jakub@redhat.com>
5413
2d6ffc28 5414 * tree-vrp.c (maybe_set_nonzero_bits): New function.
5415 (remove_range_assertions): Call it.
5416
c8a2b4ff 5417 * tree.c (tree_ctz): New function.
5418 * tree.h (tree_ctz): New prototype.
5419 * tree-ssanames.h (get_range_info, get_nonzero_bits): Change
5420 first argument from tree to const_tree.
5421 * tree-ssanames.c (get_range_info, get_nonzero_bits): Likewise.
5422 * tree-vectorizer.h (vect_generate_tmps_on_preheader): New prototype.
5423 * tree-vect-loop-manip.c (vect_generate_tmps_on_preheader): No longer
5424 static.
5425 * expr.c (highest_pow2_factor): Reimplemented using tree_ctz.
5426 * tree-vect-loop.c (vect_analyze_loop_operations,
5427 vect_transform_loop): Don't force scalar loop for bound just because
5428 number of iterations is unknown, only do it if it is not known to be
5429 a multiple of vectorization_factor.
5430 * builtins.c (get_object_alignment_2): Use tree_ctz on offset.
5431
fc08b993 5432 * gimple-pretty-print.c (dump_ssaname_info): Print newline also
5433 in case of VR_VARYING. Print get_nonzero_bits if not all ones.
5434 * tree-ssanames.h (struct range_info_def): Add nonzero_bits field.
5435 (set_nonzero_bits, get_nonzero_bits): New prototypes.
5436 * tree-ssa-ccp.c (get_default_value): Use get_range_info to see if
5437 a default def isn't partially constant.
5438 (ccp_finalize): If after IPA, set_range_info if integral SSA_NAME
5439 is known to be partially zero.
5440 (evaluate_stmt): If we'd return otherwise VARYING, use get_range_info
5441 to see if a default def isn't partially constant.
5442 * tree-ssanames.c (set_range_info): Initialize nonzero_bits upon
5443 creation of a range, if VR_RANGE, try to improve nonzero_bits from
5444 the range.
5445 (set_nonzero_bits, get_nonzero_bits): New functions.
5446
d9d5743f 5447 * tree-cfg.c (assert_unreachable_fallthru_edge_p): New function.
5448 * tree-cfg.h (assert_unreachable_fallthru_edge_p): New prototype.
5449 * tree-vrp.c (all_imm_uses_in_stmt_or_feed_cond): New function.
5450 (remove_range_assertions): If ASSERT_EXPR_VAR has no other immediate
5451 uses but in the condition and ASSERT_EXPR and the other successor of
5452 the predecessor bb is __builtin_unreachable (), set_range_info of the
5453 ASSERT_EXPR_VAR to the range info of the ASSERT_EXPR's lhs.
5454
7ddabec6 54552013-10-31 Martin Jambor <mjambor@suse.cz>
5456
5457 PR rtl-optimization/58934
5458 Revert:
5459 2013-10-30 Martin Jambor <mjambor@suse.cz>
5460 PR rtl-optimization/10474
5461 * ira.c (find_moveable_pseudos): Do not calculate dominance info
5462 nor df analysis.
5463 (interesting_dest_for_shprep): New function.
5464 (split_live_ranges_for_shrink_wrap): Likewise.
5465 (ira): Calculate dominance info and df analysis. Call
5466 split_live_ranges_for_shrink_wrap.
5467
a15fa55a 54682013-10-31 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
5469 Yury Gribov <y.gribov@samsung.com>
5470
5471 PR sanitizer/58543
5472 * asan.c (asan_clear_shadow): Allocate a new vreg for temporary
5473 shadow pointer to avoid clobbering the main one.
5474
68a8f1b3 54752013-10-31 Zhenqiang Chen <zhenqiang.chen@linaro.org>
5476
5477 * lower-subreg.c (resolve_simple_move): Copy REG_INC note.
5478
682e13bb 54792013-10-30 Vladimir Makarov <vmakarov@redhat.com>
5480
5481 PR bootstrap/58933
5482 * ira-color.c (update_costs_from_copies): Add new parameter. Use
5483 it for calling update_costs_from_allocno.
5484 (assign_hard_reg): Call restore_costs_from_copies only for
5485 !retry_p. Pass new argument to update_costs_from_copies.
5486 (color_pass): Pass new argument to update_costs_from_copies.
5487 (ira_mark_allocation_change): Ditto.
5488
e64c6e9c 54892013-10-30 Sharad Singhai <singhai@google.com>
5490
5491 PR middle-end/58134
5492 * opts.c (common_handle_option): Remove deprecated option
5493 -ftree-vectorizer-verbose.
5494 * doc/invoke.texi (Debugging Options): Ditto.
5495 * opts-global.c (handle_common_deferred_options): Ditto.
5496 (dump_remap_tree_vectorizer_verbose): Delete.
5497 * common.opt: Set -ftree-vectorizer-verbose as an ignored option.
5498
dbf38144 54992013-10-30 DJ Delorie <dj@redhat.com>
5500
5501 * config/rx/rx.c (ADD_RX_BUILTIN0): New macro, used for builtins
5502 that take no arguments.
5503
ad761588 55042013-10-30 Joern Rennecke <joern.rennecke@embecosm.com>
5505
5506 PR other/58545
5507 * reload1.c (update_eliminables_and_spill): New function, broken
5508 out of reload.
2b2b90a3 5509 (reload): Use it. Check for frame size change after frame size
5510 alignment, and call update_eliminables_and_spill first if continue-ing.
ad761588 5511
95e3231d 55122013-10-30 Cong Hou <congh@google.com>
5513
5514 PR target/58762
5515 * config/i386/i386-protos.h (ix86_expand_sse2_abs): New function.
5516 * config/i386/i386.c (ix86_expand_sse2_abs): New function.
5517 * config/i386/sse.md: Add SSE2 support to abs (8/16/32-bit-int).
5518
655f1bbf 55192013-10-18 Mikael Pettersson <mikpelinux@gmail.com>
5520
5521 PR rtl-optimization/58369
5522 * reload1.c (compute_reload_subreg_offset): New function.
5523 (choose_reload_regs): Use it to pass endian-correct
5524 offset to subreg_regno_offset.
5525
bb7b305c 55262013-10-30 Tobias Burnus <burnus@net-b.de>
5527
5528 PR other/33426
57a3d097 5529 * tree-cfg.c (replace_loop_annotate): Replace warning by
bb7b305c 5530 warning_at.
5531
e0fad718 55322013-10-30 Jason Merrill <jason@redhat.com>
5533
5534 * configure.ac (loose_warn): Add -Wno-format if
5535 --disable-build-format-warnings.
5536
d03e6917 55372013-10-30 David Malcolm <dmalcolm@redhat.com>
5538
2b2b90a3 5539 * cgraphunit.c (analyze_functions): Split symtab_node declarations
5540 onto multiple lines to make things easier for rename_symtab.py.
d03e6917 5541
5542 * symtab.c (symtab_dissolve_same_comdat_group_list): Likewise.
5543 (symtab_semantically_equivalent_p): Likewise.
5544
cba8c2e6 55452013-10-30 Vladimir Makarov <vmakarov@redhat.com>
5546
5547 PR target/58784
5548 * lra.c (check_rtl): Remove address check before LRA work.
5549
e3ac92d2 55502013-10-30 Marc Glisse <marc.glisse@inria.fr>
5551
5552 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Look for a
5553 POINTER_PLUS_EXPR in the defining statement.
5554
284f0696 55552013-10-30 Vladimir Makarov <vmakarov@redhat.com>
5556
5557 * regmove.c: Remove.
5558 * tree-pass.h (make_pass_regmove): Remove.
5559 * timevar.def (TV_REGMOVE): Remove.
5560 * passes.def (pass_regmove): Remove.
5561 * opts.c (default_options_table): Remove entry for regmove.
5562 * doc/passes.texi: Remove regmove pass description.
5563 * doc/invoke.texi (-foptimize-register-move, -fregmove): Remove
5564 options.
5565 (-fdump-rtl-regmove): Ditto.
5566 * common.opt (foptimize-register-move, fregmove): Ignore.
5567 * Makefile.in (OBJS): Remove regmove.o.
5568 * regmove.c: Remove.
5569 * ira-int.h (struct ira_allocno_pref, ira_pref_t): New structure
5570 and type.
5571 (struct ira_allocno) New member allocno_prefs.
5572 (ALLOCNO_PREFS): New macro.
5573 (ira_prefs, ira_prefs_num): New external vars.
2b2b90a3 5574 (ira_setup_alts, ira_get_dup_out_num, ira_debug_pref): New prototypes.
5575 (ira_debug_prefs, ira_debug_allocno_prefs, ira_create_pref): Ditto.
284f0696 5576 (ira_add_allocno_pref, ira_remove_pref, ira_remove_allocno_prefs):
5577 Ditto.
5578 (ira_add_allocno_copy_to_list): Remove prototype.
5579 (ira_swap_allocno_copy_ends_if_necessary): Ditto.
5580 (ira_pref_iterator): New type.
5581 (ira_pref_iter_init, ira_pref_iter_cond): New functions.
5582 (FOR_EACH_PREF): New macro.
5583 * ira.c (commutative_constraint_p): Move from ira-conflicts.c.
5584 (ira_get_dup_out_num): Ditto. Rename from get_dup_num. Modify the
5585 code.
5586 (ira_setup_alts): New function.
5587 (decrease_live_ranges_number): New function.
5588 (ira): Call the above function.
5589 * ira-build.c (ira_prefs, ira_prefs_num): New global vars.
5590 (ira_create_allocno): Initialize allocno prefs.
5591 (pref_pool, pref_vec): New static vars.
5592 (initiate_prefs, find_allocno_pref, ira_create_pref): New
5593 functions.
5594 (add_allocno_pref_to_list, ira_add_allocno_pref, print_pref): Ditto.
5595 (ira_debug_pref, print_prefs, ira_debug_prefs): Ditto.
5596 (print_allocno_prefs, ira_debug_allocno_prefs, finish_pref): Ditto.
5597 (ira_remove_pref, ira_remove_allocno_prefs, finish_prefs): Ditto.
5598 (ira_add_allocno_copy_to_list): Make static. Rename to
5599 add_allocno_copy_to_list.
5600 (ira_swap_allocno_copy_ends_if_necessary): Make static. Rename to
5601 swap_allocno_copy_ends_if_necessary.
5602 (remove_unnecessary_allocnos, remove_low_level_allocnos): Call
5603 ira_remove_allocno_prefs.
5604 (ira_flattening): Ditto.
5605 (ira_build): Call initiate_prefs, print_prefs.
5606 (ira_destroy): Call finish_prefs.
5607 * ira-color.c (struct update_cost_record): New.
5608 (struct allocno_color_data): Add new member update_cost_records.
5609 (update_cost_record_pool): New static var.
5610 (init_update_cost_records, get_update_cost_record): New functions.
5611 (free_update_cost_record_list, finish_update_cost_records): Ditto.
5612 (struct update_cost_queue_elem): Add member from.
5613 (initiate_cost_update): Call init_update_cost_records.
5614 (finish_cost_update): Call finish_update_cost_records.
5615 (queue_update_cost, get_next_update_cost): Add new param from.
5616 (Update_allocno_cost, update_costs_from_allocno): New functions.
5617 (update_costs_from_prefs): Ditto.
5618 (update_copy_costs): Rename to update_costs_from_copies.
5619 (restore_costs_from_copies): New function.
5620 (update_conflict_hard_regno_costs): Don't go back.
5621 (assign_hard_reg): Call restore_costs_from_copies. Add printing
5622 more debug info.
5623 (pop_allocnos): Add priniting more debug info.
5624 (color_allocnos): Remove prefs for conflicting hard regs.
5625 Call update_costs_from_prefs.
5626 * ira-conflicts.c (commutative_constraint_p): Move to ira.c
5627 (get_dup_num): Rename, modify, and move to ira.c
5628 (process_regs_for_copy): Add prefs.
5629 (add_insn_allocno_copies): Put src as first arg of
5630 process_regs_for_copy. Remove dead code. Call ira_setup_alts.
5631 * ira-costs.c (record_reg_classes): Modify and move code into
5632 record_operands_costs.
5633 (find_costs_and_classes): Create prefs for the hard reg of small
5634 reg class.
5635 (process_bb_node_for_hard_reg_moves): Add prefs.
5636
f484312f 56372013-10-30 Richard Biener <rguenther@suse.de>
5638
5639 PR middle-end/57100
5640 * basic-block.h (pre_and_rev_post_order_compute_fn): New function.
5641 * cfganal.c (pre_and_rev_post_order_compute_fn): New function
5642 as worker for ...
5643 (pre_and_rev_post_order_compute): ... which now wraps it.
5644 * graph.c (draw_cfg_nodes_no_loops): Use
5645 pre_and_rev_post_order_compute_fn to avoid ICEing and dependence
5646 on cfun.
5647
b421555d 56482013-10-30 Christian Bruel <christian.bruel@st.com>
5649
57a3d097 5650 * config/sh/sh-mem.cc (sh_expand_cmpnstr): New function.
b421555d 5651 (sh_expand_cmpstr): Handle known align and schedule improvements.
57a3d097 5652 * config/sh/sh-protos.h (sh_expand_cmpstrn): Declare.
5653 * config/sh/sh.md (cmpstrnsi): New pattern.
b421555d 5654
81705553 56552013-10-30 Martin Jambor <mjambor@suse.cz>
5656
5657 PR rtl-optimization/10474
5658 * ira.c (find_moveable_pseudos): Do not calculate dominance info
5659 nor df analysis.
5660 (interesting_dest_for_shprep): New function.
5661 (split_live_ranges_for_shrink_wrap): Likewise.
5662 (ira): Calculate dominance info and df analysis. Call
5663 split_live_ranges_for_shrink_wrap.
5664
9a228f68 56652013-10-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5666
5667 PR target/58854
5668 * config/arm/arm.c (arm_expand_epilogue_apcs_frame): Emit blockage.
5669
d04d14c8 56702013-10-30 Ilya Enkovich <ilya.enkovich@intel.com>
5671
5672 * tree-core.h (tree_index): Add TI_POINTER_BOUNDS_TYPE.
5673 * tree.h (POINTER_BOUNDS_P): New.
5674 (BOUNDED_TYPE_P): New.
5675 (BOUNDED_P): New.
5676 (pointer_bounds_type_node): New.
5677 * tree.c (build_common_tree_nodes): Initialize
5678 pointer_bounds_type_node.
5679 * gimple.h (gimple_call_get_nobnd_arg_index): New.
5680 (gimple_call_num_nobnd_args): New.
5681 (gimple_call_nobnd_arg): New.
5682 (gimple_return_retbnd): New.
5683 (gimple_return_set_retbnd): New
5684 * gimple.c (gimple_build_return): Increase number of ops
5685 for return statement.
5686 (gimple_call_get_nobnd_arg_index): New.
5687 * gimple-pretty-print.c (dump_gimple_return): Print second op.
5688
b4c881eb 56892013-10-30 Ilya Enkovich <ilya.enkovich@intel.com>
5690
5691 * ipa.c (cgraph_build_static_cdtor_1): Support contructors
5692 with "chkp ctor" and "bnd_legacy" attributes.
5693 * gimplify.c (gimplify_init_constructor): Avoid infinite
5694 loop during gimplification of bounds initializer.
5695
cd03d35e 56962013-10-30 Ilya Enkovich <ilya.enkovich@intel.com>
5697
5698 * c-family/c-common.c (handle_bnd_variable_size_attribute): New.
5699 (handle_bnd_legacy): New.
5700 (c_common_attribute_table): Add bnd_variable_size and bnd_legacy.
5701 * doc/extend.texi: Document bnd_variable_size and bnd_legacy
5702 attributes.
5703
9b76d759 57042013-10-29 Ilya Enkovich <ilya.enkovich@intel.com>
5705
5706 * builtin-types.def (BT_FN_VOID_CONST_PTR): New.
5707 (BT_FN_PTR_CONST_PTR): New.
5708 (BT_FN_CONST_PTR_CONST_PTR): New.
5709 (BT_FN_PTR_CONST_PTR_SIZE): New.
5710 (BT_FN_PTR_CONST_PTR_CONST_PTR): New.
5711 (BT_FN_VOID_PTRPTR_CONST_PTR): New.
5712 (BT_FN_VOID_CONST_PTR_SIZE): New.
5713 (BT_FN_PTR_CONST_PTR_CONST_PTR_SIZE): New.
5714 * chkp-builtins.def: New.
5715 * builtins.def: include chkp-builtins.def.
5716 (DEF_CHKP_BUILTIN): New.
5717 * builtins.c (expand_builtin): Support BUILT_IN_CHKP_INIT_PTR_BOUNDS,
5718 BUILT_IN_CHKP_NULL_PTR_BOUNDS, BUILT_IN_CHKP_COPY_PTR_BOUNDS,
5719 BUILT_IN_CHKP_CHECK_PTR_LBOUNDS, BUILT_IN_CHKP_CHECK_PTR_UBOUNDS,
5720 BUILT_IN_CHKP_CHECK_PTR_BOUNDS, BUILT_IN_CHKP_SET_PTR_BOUNDS,
5721 BUILT_IN_CHKP_NARROW_PTR_BOUNDS, BUILT_IN_CHKP_STORE_PTR_BOUNDS,
5722 BUILT_IN_CHKP_GET_PTR_LBOUND, BUILT_IN_CHKP_GET_PTR_UBOUND,
5723 BUILT_IN_CHKP_BNDMK, BUILT_IN_CHKP_BNDSTX, BUILT_IN_CHKP_BNDCL,
5724 BUILT_IN_CHKP_BNDCU, BUILT_IN_CHKP_BNDLDX, BUILT_IN_CHKP_BNDRET,
5725 BUILT_IN_CHKP_INTERSECT, BUILT_IN_CHKP_ARG_BND, BUILT_IN_CHKP_NARROW,
5726 BUILT_IN_CHKP_EXTRACT_LOWER, BUILT_IN_CHKP_EXTRACT_UPPER.
5727 * common.opt (fcheck-pointer-bounds): New.
2b2b90a3 5728 * toplev.c (process_options): Check Pointer Bounds Checker is
5729 supported.
9b76d759 5730 * doc/extend.texi: Document Pointer Bounds Checker built-in functions.
5731
0ba274d8 57322013-10-30 Ilya Enkovich <ilya.enkovich@intel.com>
5733
5734 * target.def (builtin_chkp_function): New.
5735 (chkp_bound_type): New.
5736 (chkp_bound_mode): New.
5737 (fn_abi_va_list_bounds_size): New.
5738 (load_bounds_for_arg): New.
5739 (store_bounds_for_arg): New.
5740 * targhooks.h (default_load_bounds_for_arg): New.
5741 (default_store_bounds_for_arg): New.
5742 (default_fn_abi_va_list_bounds_size): New.
5743 (default_chkp_bound_type): New.
5744 (default_chkp_bound_mode): New.
5745 (default_builtin_chkp_function): New.
5746 * targhooks.c (default_load_bounds_for_arg): New.
5747 (default_store_bounds_for_arg): New.
5748 (default_fn_abi_va_list_bounds_size): New.
5749 (default_chkp_bound_type): New.
5750 (default_chkp_bound_mode); New.
5751 (default_builtin_chkp_function): New.
5752 * doc/tm.texi.in (TARGET_FN_ABI_VA_LIST_BOUNDS_SIZE): New.
5753 (TARGET_LOAD_BOUNDS_FOR_ARG): New.
5754 (TARGET_STORE_BOUNDS_FOR_ARG): New.
5755 (TARGET_BUILTIN_CHKP_FUNCTION): New.
5756 (TARGET_CHKP_BOUND_TYPE): New.
5757 (TARGET_CHKP_BOUND_MODE): New.
5758 * doc/tm.texi: Regenerated.
5759 * langhooks.h (lang_hooks): Add chkp_supported field.
5760 * langhooks-def.h (LANG_HOOKS_CHKP_SUPPORTED): New.
5761 (LANG_HOOKS_INITIALIZER); Add LANG_HOOKS_CHKP_SUPPORTED.
5762
b4c65f30 57632013-10-29 Andrew Pinski <apinski@cavium.com>
5764
5765 * tree-ssa-ifcombine.c: Include rtl.h and tm_p.h.
2b2b90a3 5766 (ifcombine_ifandif): Handle cases where maybe_fold_and_comparisons
5767 fails, combining the branches anyways.
5768 (tree_ssa_ifcombine): Inverse the order of the basic block walk,
5769 increases the number of combinings.
b4c65f30 5770 * gimple.h (gsi_start_nondebug_after_labels_bb): New function.
5771
0d58d930 57722013-10-29 Mike Stump <mikestump@comcast.net>
5773
5774 * machmode.def (PARTIAL_INT_MODE): Add precision and name.
5775 * genmodes.c (PARTIAL_INT_MODE): Add precision and name.
5776 (make_vector_mode): Increase namebuf to 16.
5777 (emit_insn_modes_h): When processing BImode, don't
5778 also match partial int modes.
5779 (emit_class_narrowest_mode): Likewise.
5780
5781 * config/bfin/bfin-modes.def: Add precision to PDI.
5782 * config/m32c/m32c-modes.def: Add precision to PSI.
5783 * config/msp430/msp430-modes.def: Add precision to PSI.
5784 * config/rs6000/rs6000-modes.def: Add precision to PTI.
5785 * config/sh/sh-modes.def: Add precision to PSI and PDI.
5786
706b7999 57872013-10-29 Oleg Endo <olegendo@gcc.gnu.org>
5788
5789 PR target/54236
5790 * config/sh/sh.md (*addc): Rename existing variations to ...
5791 (*addc_r_r_1, *addc_2r_1, *addc_r_1): ... these.
5792 (*addc_r_lsb, *addc_r_r_lsb, *addc_r_lsb_r, *addc_2r_lsb, *addc_r_msb,
5793 *addc_r_r_msb, *addc_2r_msb): New insn_and_split patterns.
5794 * config/sh/sh.c (addsubcosts): Handle some addc special cases.
5795
2de034ed 57962013-10-29 Teresa Johnson <tejohnson@google.com>
5797
5798 PR ipa/58862
5799 * tree-ssa-tail-merge.c (replace_block_by): Tolerate profile
5800 insanities when updating probabilities.
5801
bf93d723 58022013-10-29 David Malcolm <dmalcolm@redhat.com>
5803
5804 * gdbhooks.py (CGraphNodePrinter.to_string): Update gdb
5805 prettyprinter for cgraph_node to reflect the conversion of the
5806 symtable types to a C++ class hierarchy: it now *is* a
5807 symtab_node_base, rather than having one (named "symbol").
5808
d037099f 58092013-10-29 Balaji V. Iyer <balaji.v.iyer@intel.com>
5810
5811 * builtins.c (is_builtin_name): Added a check for __cilkrts_detach and
5812 __cilkrts_pop_frame. If matched, then return true for built-in
5813 function name.
5814 (expand_builtin): Added BUILT_IN_CILK_DETACH and
5815 BUILT_IN_CILK_POP_FRAME case.
5816 * langhooks-def.h (lhd_install_body_with_frame_cleanup): New prototype.
5817 (lhs_cilk_detect_spawn): Likewise.
5818 (LANG_HOOKS_DECLS): Added LANG_HOOKS_CILKPLUS.
5819 (LANG_HOOKS_CILKPLUS_DETECT_SPAWN_AND_UNWRAP): New #define.
5820 (LANG_HOOKS_CILKPLUS_FRAME_CLEANUP): Likewise.
5821 (LANG_HOOKS_CILKPLUS_GIMPLIFY_SPAWN): Likewise.
5822 (LANG_HOOKS_CILKPLUS): Likewise.
5823 * tree.h (CILK_SPAWN_FN): Likewise.
5824 * builtin.def (DEF_CILK_BUILTIN_STUB): Likewise.
5825 * Makefile.in (C_COMMON_OBJS): Added c-family/cilk.o.
5826 (OBJS): Added cilk-common.o.
5827 (BUILTINS_DEF): Added cilk-builtins.def.
5828 * langhooks.c (lhd_install_body_with_frame_cleanup): New function.
5829 (lhd_cilk_detect_spawn): Likewise.
5830 * langhooks.h (lang_hooks_for_cilkplus): New struct.
5831 (struct lang_hooks): Added new field called "cilkplus."
5832 * cilk-common.c: New file.
5833 * cilk.h: Likewise.
5834 * cilk-builtins.def: Likewise.
5835 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Added
5836 "__cilk" macro and set it to 200.
5837 * function.h (struct function::cilk_frame_decl): New field.
5838 (struct function::is_cilk_function): Likewise.
5839 (struct function::calls_cilk_spawn): Likewise.
5840 * gimplify.c (gimplify_call_expr): Added a check if the function call
5841 being gimplified is a spawn detach point. If so, then add pop_frame
5842 and detach function calls.
5843 (gimplify_expr): Added a CILK_SPAWN_STMT and CILK_SYNC_STMT case
5844 for gimplifying _Cilk_spawn and _Cilk_sync statements.
5845 (gimplify_return_expr): Added a check for _Cilk_spawn usage in
5846 function. If so, added a _Cilk_sync and gimplified it.
5847 (gimplify_modify_expr): Added a check for _Cilk_spawn in MODIFY and
5848 INIT_EXPRs. If so, then call gimplify_cilk_spawn.
5849 * ipa-inline-analysis (initialize_inline_failed): Prevent inlining of
5850 spawner function.
5851 (can_inline_edge_p): Prevent inling of spawnee function.
5852 * ira.c (ira_setup_eliminable_regset): Force usage of frame pointer
5853 for functions that use Cilk keywords.
5854 * tree-inline.h (struct copy_body_data::remap_var_for_cilk): New field.
5855 * tree-pretty-print.c (dump_generic_node): Added CILK_SPAWN_STMT and
5856 CILK_SYNC_STMT cases.
5857 * tree.def (DEFTREECODE): Added CILK_SPAWN_STMT and CILK_SYNC_STMT
5858 trees.
5859 * generic.texi (CILK_SPAWN_STMT): Added documentation for _Cilk_spawn.
5860 (CILK_SYNC_STMT): Added documentation for _Cilk_sync.
5861 * passes.texi (Cilk Keywords): New section that describes the compiler
5862 code changes for handling Cilk Keywords.
2b2b90a3 5863
02774f2d 58642013-10-29 David Malcolm <dmalcolm@redhat.com>
5865
5866 Patch autogenerated by refactor_symtab.py from
5867 https://github.com/davidmalcolm/gcc-refactoring-scripts
5868 revision 58bb219cc090b2f4516a9297d868c245495ee622
5869
5870 * asan.c (asan_finish_file): Update for conversion of symtab types to
5871 a true class hierarchy.
5872 * cfgexpand.c (estimated_stack_frame_size): Likewise.
5873 * cgraph.c (cgraph_get_body): Likewise.
5874 (cgraph_get_create_real_symbol_node): Likewise.
5875 (verify_cgraph_node): Likewise.
5876 (verify_edge_corresponds_to_fndecl): Likewise.
5877 (verify_edge_count_and_frequency): Likewise.
5878 (cgraph_will_be_removed_from_program_if_no_direct_calls): Likewise.
5879 (cgraph_can_remove_if_no_direct_calls_p): Likewise.
5880 (cgraph_can_remove_if_no_direct_calls_and_refs_p): Likewise.
5881 (cgraph_node_cannot_return): Likewise.
5882 (cgraph_set_pure_flag_1): Likewise.
5883 (cgraph_set_const_flag_1): Likewise.
5884 (cgraph_set_nothrow_flag_1): Likewise.
5885 (cgraph_make_node_local_1): Likewise.
5886 (cgraph_for_node_and_aliases): Likewise.
5887 (cgraph_for_node_thunks_and_aliases): Likewise.
5888 (cgraph_node_can_be_local_p): Likewise.
5889 (cgraph_node_cannot_be_local_p_1): Likewise.
5890 (cgraph_function_body_availability): Likewise.
5891 (dump_cgraph_node): Likewise.
5892 (cgraph_rtl_info): Likewise.
5893 (cgraph_mark_address_taken_node): Likewise.
5894 (cgraph_remove_node): Likewise.
5895 (cgraph_release_function_body): Likewise.
5896 (cgraph_update_edges_for_call_stmt_node): Likewise.
5897 (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
5898 (cgraph_make_edge_direct): Likewise.
5899 (cgraph_resolve_speculation): Likewise.
5900 (cgraph_speculative_call_info): Likewise.
5901 (cgraph_turn_edge_to_speculative): Likewise.
5902 (cgraph_create_edge_1): Likewise.
5903 (cgraph_set_call_stmt): Likewise.
5904 (cgraph_node_for_asm): Likewise.
5905 (cgraph_add_thunk): Likewise.
5906 (cgraph_same_body_alias): Likewise.
5907 (cgraph_create_function_alias): Likewise.
5908 (cgraph_create_node): Likewise.
5909 (cgraph_create_empty_node): Likewise.
5910 (record_function_versions): Likewise.
5911 (used_from_object_file_p): Likewise.
5912 * cgraph.h (symtab_can_be_discarded): Likewise.
5913 (symtab_real_symbol_p): Likewise.
5914 (cgraph_mark_force_output_node): Likewise.
5915 (cgraph_edge_recursive_p): Likewise.
5916 (symtab_alias_target): Likewise.
5917 (varpool_all_refs_explicit_p): Likewise.
5918 (varpool_can_remove_if_no_refs): Likewise.
5919 (cgraph_only_called_directly_or_aliased_p): Likewise.
5920 (cgraph_next_function_with_gimple_body): Likewise.
5921 (cgraph_first_function_with_gimple_body): Likewise.
5922 (cgraph_function_with_gimple_body_p): Likewise.
5923 (cgraph_next_function): Likewise.
5924 (cgraph_first_function): Likewise.
5925 (cgraph_next_defined_function): Likewise.
5926 (cgraph_first_defined_function): Likewise.
5927 (varpool_next_defined_variable): Likewise.
5928 (varpool_first_defined_variable): Likewise.
5929 (varpool_next_static_initializer): Likewise.
5930 (varpool_first_static_initializer): Likewise.
5931 (varpool_next_variable): Likewise.
5932 (varpool_first_variable): Likewise.
5933 (varpool_node_name): Likewise.
5934 (varpool): Likewise.
5935 (cgraph): Likewise.
5936 (is_a_helper <varpool_node>::test): Likewise.
5937 (is_a_helper <cgraph_node>::test): Likewise.
5938 (varpool_variable_node): Likewise.
5939 (cgraph_function_or_thunk_node): Likewise.
5940 (varpool_alias_target): Likewise.
5941 (cgraph_alias_target): Likewise.
5942 (cgraph_node_name): Likewise.
5943 (varpool_node_asm_name): Likewise.
5944 (cgraph_node_asm_name): Likewise.
5945 * cgraphbuild.c (remove_cgraph_callee_edges): Likewise.
5946 (cgraph_rebuild_references): Likewise.
5947 (rebuild_cgraph_edges): Likewise.
5948 (record_eh_tables): Likewise.
5949 (build_cgraph_edges): Likewise.
5950 (mark_store): Likewise.
5951 (mark_load): Likewise.
5952 (mark_address): Likewise.
5953 (record_type_list): Likewise.
5954 (record_reference): Likewise.
5955 * cgraphclones.c (cgraph_materialize_all_clones): Likewise.
5956 (cgraph_materialize_clone): Likewise.
5957 (cgraph_function_versioning): Likewise.
5958 (cgraph_copy_node_for_versioning): Likewise.
5959 (update_call_expr): Likewise.
5960 (cgraph_find_replacement_node): Likewise.
5961 (cgraph_create_virtual_clone): Likewise.
5962 (cgraph_clone_node): Likewise.
5963 * cgraphunit.c (compile): Likewise.
5964 (output_weakrefs): Likewise.
5965 (output_in_order): Likewise.
5966 (expand_function): Likewise.
5967 (assemble_thunks_and_aliases): Likewise.
5968 (expand_thunk): Likewise.
5969 (mark_functions_to_output): Likewise.
5970 (handle_alias_pairs): Likewise.
5971 (analyze_functions): Likewise.
5972 (walk_polymorphic_call_targets): Likewise.
5973 (varpool_finalize_decl): Likewise.
5974 (process_function_and_variable_attributes): Likewise.
5975 (cgraph_process_same_body_aliases): Likewise.
5976 (analyze_function): Likewise.
5977 (cgraph_add_new_function): Likewise.
5978 (cgraph_finalize_function): Likewise.
5979 (referred_to_p): Likewise.
5980 (cgraph_reset_node): Likewise.
5981 (cgraph_process_new_functions): Likewise.
5982 (enqueue_node): Likewise.
5983 (decide_is_symbol_needed): Likewise.
5984 * coverage.c (coverage_compute_profile_id): Likewise.
5985 * dbxout.c (dbxout_expand_expr): Likewise.
5986 * dwarf2out.c (premark_types_used_by_global_vars_helper): Likewise.
5987 (reference_to_unused): Likewise.
5988 * gimple-fold.c (can_refer_decl_in_current_unit_p): Likewise.
5989 * gimplify.c (unvisit_body): Likewise.
5990 (unshare_body): Likewise.
5991 * ipa-cp.c (ipcp_generate_summary): Likewise.
5992 (ipcp_decision_stage): Likewise.
5993 (identify_dead_nodes): Likewise.
5994 (decide_whether_version_node): Likewise.
5995 (decide_about_value): Likewise.
5996 (perhaps_add_new_callers): Likewise.
5997 (create_specialized_node): Likewise.
5998 (update_profiling_info): Likewise.
5999 (ipcp_propagate_stage): Likewise.
6000 (estimate_local_effects): Likewise.
6001 (good_cloning_opportunity_p): Likewise.
6002 (devirtualization_time_bonus): Likewise.
6003 (propagate_constants_accross_call): Likewise.
6004 (initialize_node_lattices): Likewise.
6005 (ipcp_cloning_candidate_p): Likewise.
6006 (determine_versionability): Likewise.
6007 (print_all_lattices): Likewise.
6008 (print_lattice): Likewise.
6009 (ipcp_discover_new_direct_edges): Likewise.
6010 * ipa-devirt.c (ipa_devirt): Likewise.
6011 (likely_target_p): Likewise.
6012 (update_type_inheritance_graph): Likewise.
6013 (possible_polymorphic_call_target_p): Likewise.
6014 (dump_possible_polymorphic_call_targets): Likewise.
6015 (devirt_variable_node_removal_hook): Likewise.
6016 (record_binfo): Likewise.
6017 (maybe_record_node): Likewise.
6018 (build_type_inheritance_graph): Likewise.
6019 * ipa-inline-analysis.c (inline_write_summary): Likewise.
6020 (inline_generate_summary): Likewise.
6021 (inline_analyze_function): Likewise.
6022 (do_estimate_growth): Likewise.
6023 (simple_edge_hints): Likewise.
6024 (estimate_node_size_and_time): Likewise.
6025 (estimate_edge_devirt_benefit): Likewise.
6026 (compute_inline_parameters): Likewise.
6027 (estimate_function_body_sizes): Likewise.
6028 (compute_bb_predicates): Likewise.
6029 (initialize_inline_failed): Likewise.
6030 (dump_inline_summary): Likewise.
6031 (dump_inline_edge_summary): Likewise.
6032 * ipa-inline-transform.c (inline_transform): Likewise.
6033 (preserve_function_body_p): Likewise.
6034 (save_inline_function_body): Likewise.
6035 (inline_call): Likewise.
6036 (clone_inlined_nodes): Likewise.
6037 (can_remove_node_now_p): Likewise.
6038 (can_remove_node_now_p_1): Likewise.
6039 * ipa-inline.c (early_inliner): Likewise.
6040 (early_inline_small_functions): Likewise.
6041 (inline_always_inline_functions): Likewise.
6042 (ipa_inline): Likewise.
6043 (flatten_function): Likewise.
6044 (inline_small_functions): Likewise.
6045 (speculation_useful_p): Likewise.
6046 (recursive_inlining): Likewise.
6047 (update_caller_keys): Likewise.
6048 (reset_edge_caches): Likewise.
6049 (update_edge_key): Likewise.
6050 (edge_badness): Likewise.
6051 (relative_time_benefit): Likewise.
6052 (want_inline_self_recursive_call_p): Likewise.
6053 (want_inline_small_function_p): Likewise.
6054 (want_early_inline_function_p): Likewise.
6055 (num_calls): Likewise.
6056 (can_early_inline_edge_p): Likewise.
6057 (can_inline_edge_p): Likewise.
6058 (report_inline_failed_reason): Likewise.
6059 * ipa-profile.c (ipa_profile): Likewise.
6060 (ipa_propagate_frequency): Likewise.
6061 (ipa_propagate_frequency_1): Likewise.
6062 (ipa_profile_generate_summary): Likewise.
6063 * ipa-prop.c (ipcp_transform_function): Likewise.
6064 (read_replacements_section): Likewise.
6065 (ipa_prop_read_section): Likewise.
6066 (ipa_modify_call_arguments): Likewise.
6067 (ipa_print_node_params): Likewise.
6068 (propagate_controlled_uses): Likewise.
6069 (update_indirect_edges_after_inlining): Likewise.
6070 (remove_described_reference): Likewise.
6071 (ipa_make_edge_direct_to_target): Likewise.
6072 (ipa_analyze_node): Likewise.
6073 (ipa_analyze_params_uses): Likewise.
6074 (ipa_compute_jump_functions): Likewise.
6075 (ipa_get_callee_param_type): Likewise.
6076 (ipa_print_node_jump_functions): Likewise.
6077 (ipa_initialize_node_params): Likewise.
6078 (ipa_populate_param_decls): Likewise.
6079 (ipa_func_spec_opts_forbid_analysis_p): Likewise.
6080 (write_agg_replacement_chain): Likewise.
6081 (ipa_write_node_info): Likewise.
6082 (ipa_edge_duplication_hook): Likewise.
6083 (try_decrement_rdesc_refcount): Likewise.
6084 * ipa-pure-const.c (propagate_nothrow): Likewise.
6085 (propagate_pure_const): Likewise.
6086 (pure_const_read_summary): Likewise.
6087 (pure_const_write_summary): Likewise.
6088 (analyze_function): Likewise.
6089 * ipa-ref-inline.h (ipa_ref_referred_ref_list): Likewise.
6090 (ipa_ref_referring_ref_list): Likewise.
6091 * ipa-ref.c (ipa_clear_stmts_in_references): Likewise.
6092 (ipa_remove_stmt_references): Likewise.
6093 (ipa_find_reference): Likewise.
6094 (ipa_dump_referring): Likewise.
6095 (ipa_dump_references): Likewise.
6096 (ipa_record_reference): Likewise.
6097 * ipa-reference.c (ipa_reference_read_optimization_summary): Likewise.
6098 (ipa_reference_write_optimization_summary): Likewise.
6099 (write_node_summary_p): Likewise.
6100 (propagate): Likewise.
6101 (read_write_all_from_decl): Likewise.
6102 (generate_summary): Likewise.
6103 (analyze_function): Likewise.
6104 (propagate_bits): Likewise.
6105 (ipa_reference_get_not_written_global): Likewise.
6106 (ipa_reference_get_not_read_global): Likewise.
6107 * ipa-split.c (execute_split_functions): Likewise.
6108 (split_function): Likewise.
6109 * ipa-utils.c (ipa_merge_profiles): Likewise.
6110 (dump_cgraph_node_set): Likewise.
6111 (ipa_reverse_postorder): Likewise.
6112 (ipa_edge_within_scc): Likewise.
6113 (ipa_get_nodes_in_cycle): Likewise.
6114 (ipa_free_postorder_info): Likewise.
6115 (ipa_reduced_postorder): Likewise.
6116 (searchc): Likewise.
6117 (recursive_call_p): Likewise.
6118 * ipa.c (ipa_cdtor_merge): Likewise.
6119 (record_cdtor_fn): Likewise.
6120 (function_and_variable_visibility): Likewise.
6121 (varpool_externally_visible_p): Likewise.
6122 (cgraph_externally_visible_p): Likewise.
6123 (comdat_can_be_unshared_p): Likewise.
6124 (comdat_can_be_unshared_p_1): Likewise.
6125 (address_taken_from_non_vtable_p): Likewise.
6126 (ipa_discover_readonly_nonaddressable_vars): Likewise.
6127 (symtab_remove_unreachable_nodes): Likewise.
6128 (walk_polymorphic_call_targets): Likewise.
6129 (process_references): Likewise.
6130 (enqueue_node): Likewise.
6131 (has_addr_references_p): Likewise.
6132 (cgraph_non_local_node_p_1): Likewise.
6133 * is-a.h (varpool_analyze_node): Likewise.
6134 * lto-cgraph.c (input_symtab): Likewise.
6135 (merge_profile_summaries): Likewise.
6136 (input_cgraph_1): Likewise.
6137 (input_edge): Likewise.
6138 (input_varpool_node): Likewise.
6139 (input_node): Likewise.
6140 (input_overwrite_node): Likewise.
6141 (compute_ltrans_boundary): Likewise.
6142 (output_refs): Likewise.
6143 (lto_output_varpool_node): Likewise.
6144 (lto_output_node): Likewise.
6145 (reachable_from_other_partition_p): Likewise.
6146 (referenced_from_other_partition_p): Likewise.
6147 (lto_output_edge): Likewise.
6148 (output_node_opt_summary): Likewise.
6149 (add_node_to): Likewise.
6150 (reachable_from_this_partition_p): Likewise.
6151 (lto_set_symtab_encoder_in_partition): Likewise.
6152 (lto_symtab_encoder_in_partition_p): Likewise.
6153 (lto_set_symtab_encoder_encode_initializer): Likewise.
6154 (lto_symtab_encoder_encode_initializer_p): Likewise.
6155 (lto_set_symtab_encoder_encode_body): Likewise.
6156 (lto_symtab_encoder_encode_body_p): Likewise.
6157 * lto-section-in.c (lto_free_function_in_decl_state_for_node):
6158 Likewise.
6159 * lto-streamer-in.c (lto_read_body): Likewise.
6160 (fixup_call_stmt_edges): Likewise.
6161 (fixup_call_stmt_edges_1): Likewise.
6162 * lto-streamer-out.c (produce_symtab): Likewise.
6163 (output_symbol_p): Likewise.
6164 (write_symbol): Likewise.
6165 (lto_output): Likewise.
6166 (copy_function): Likewise.
6167 (output_function): Likewise.
6168 * passes.c (function_called_by_processed_nodes_p): Likewise.
6169 (ipa_write_optimization_summaries): Likewise.
6170 (ipa_write_summaries): Likewise.
6171 (do_per_function_toporder): Likewise.
6172 (do_per_function): Likewise.
6173 (dump_passes): Likewise.
6174 * symtab.c (symtab_semantically_equivalent_p): Likewise.
6175 (symtab_nonoverwritable_alias): Likewise.
6176 (symtab_nonoverwritable_alias_1): Likewise.
6177 (symtab_for_node_and_aliases): Likewise.
6178 (symtab_resolve_alias): Likewise.
6179 (fixup_same_cpp_alias_visibility): Likewise.
6180 (symtab_alias_ultimate_target): Likewise.
6181 (symtab_used_from_object_file_p): Likewise.
6182 (verify_symtab_base): Likewise.
6183 (dump_symtab_base): Likewise.
6184 (symtab_node_name): Likewise.
6185 (symtab_node_asm_name): Likewise.
6186 (symtab_dissolve_same_comdat_group_list): Likewise.
6187 (symtab_add_to_same_comdat_group): Likewise.
6188 (symtab_unregister_node): Likewise.
6189 (symtab_insert_node_to_hashtable): Likewise.
6190 (symtab_register_node): Likewise.
6191 (unlink_from_assembler_name_hash): Likewise.
6192 (insert_to_assembler_name_hash): Likewise.
6193 (eq_assembler_name): Likewise.
6194 (hash_node_by_assembler_name): Likewise.
6195 (eq_node): Likewise.
6196 (hash_node): Likewise.
6197 * toplev.c (wrapup_global_declaration_2): Likewise.
6198 * trans-mem.c (ipa_tm_execute): Likewise.
6199 (ipa_tm_transform_clone): Likewise.
6200 (ipa_tm_transform_transaction): Likewise.
6201 (ipa_tm_transform_calls_redirect): Likewise.
6202 (ipa_tm_insert_gettmclone_call): Likewise.
6203 (ipa_tm_insert_irr_call): Likewise.
6204 (ipa_tm_create_version): Likewise.
6205 (ipa_tm_create_version_alias): Likewise.
6206 (ipa_tm_mark_forced_by_abi_node): Likewise.
6207 (ipa_tm_mark_force_output_node): Likewise.
6208 (ipa_tm_diagnose_tm_safe): Likewise.
6209 (ipa_tm_mayenterirr_function): Likewise.
6210 (ipa_tm_scan_irr_function): Likewise.
6211 (ipa_tm_note_irrevocable): Likewise.
6212 (ipa_tm_scan_calls_clone): Likewise.
6213 (get_cg_data): Likewise.
6214 * tree-eh.c (tree_could_trap_p): Likewise.
6215 * tree-emutls.c (ipa_lower_emutls): Likewise.
6216 (create_emultls_var): Likewise.
6217 (lower_emutls_function_body): Likewise.
6218 (gen_emutls_addr): Likewise.
6219 (emutls_decl): Likewise.
6220 (new_emutls_decl): Likewise.
6221 * tree-inline.c (tree_function_versioning): Likewise.
6222 (optimize_inline_calls): Likewise.
6223 (expand_call_inline): Likewise.
6224 (estimate_num_insns): Likewise.
6225 (copy_bb): Likewise.
6226 (delete_unreachable_blocks_update_callgraph): Likewise.
6227 * tree-nested.c (gimplify_all_functions): Likewise.
6228 (create_nesting_tree): Likewise.
6229 (check_for_nested_with_variably_modified): Likewise.
6230 * tree-pretty-print.c (dump_function_header): Likewise.
6231 * tree-profile.c (tree_profiling): Likewise.
6232 * tree-sra.c (ipa_sra_preliminary_function_checks): Likewise.
6233 (modify_function): Likewise.
6234 (convert_callers): Likewise.
6235 (convert_callers_for_node): Likewise.
6236 * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
6237 (associate_varinfo_to_alias): Likewise.
6238 (create_variable_info_for): Likewise.
6239 (get_constraint_for_ssa_var): Likewise.
6240 * tree-vectorizer.c (increase_alignment): Likewise.
6241 * tree.c (find_decls_types_in_var): Likewise.
6242 (find_decls_types_in_node): Likewise.
6243 (free_lang_data_in_decl): Likewise.
6244 * value-prof.c (gimple_ic_transform): Likewise.
6245 (gimple_ic): Likewise.
6246 (check_ic_target): Likewise.
6247 (init_node_map): Likewise.
6248 * varasm.c (decl_binds_to_current_def_p): Likewise.
6249 (default_binds_local_p_1): Likewise.
6250 (dump_tm_clone_pairs): Likewise.
6251 (assemble_alias): Likewise.
6252 (find_decl): Likewise.
6253 (mark_decl_referenced): Likewise.
6254 * varpool.c (varpool_for_node_and_aliases): Likewise.
6255 (varpool_extra_name_alias): Likewise.
6256 (varpool_create_variable_alias): Likewise.
6257 (add_new_static_var): Likewise.
6258 (varpool_finalize_named_section_flags): Likewise.
6259 (varpool_remove_unreferenced_decls): Likewise.
6260 (enqueue_node): Likewise.
6261 (varpool_assemble_decl): Likewise.
6262 (assemble_aliases): Likewise.
6263 (varpool_analyze_node): Likewise.
6264 (cgraph_variable_initializer_availability): Likewise.
6265 (varpool_add_new_variable): Likewise.
6266 (ctor_for_folding): Likewise.
6267 (dump_varpool_node): Likewise.
6268 (varpool_remove_initializer): Likewise.
6269 (varpool_remove_node): Likewise.
6270 (varpool_node_for_decl): Likewise.
6271 (varpool_create_empty_node): Likewise.
2b2b90a3 6272 * config/i386/i386.c (ix86_generate_version_dispatcher_body): Likewise.
02774f2d 6273 (ix86_get_function_versions_dispatcher): Likewise.
6274
2043dfcc 62752013-10-29 David Malcolm <dmalcolm@redhat.com>
6276
6277 * cgraph.h (symtab_node_base): Convert to a class;
6278 add GTY((desc ("%h.type"), tag ("SYMTAB_SYMBOL"))), and take
6279 chain_next/prev from symtab_node_def.
6280 (cgraph_node): Inherit from symtab_node; add GTY option
6281 tag ("SYMTAB_FUNCTION").
6282 (varpool_node): Inherit from symtab_node; add GTY option
6283 tag ("SYMTAB_VARIABLE").
6284 (symtab_node_def): Remove.
6285 (is_a_helper <cgraph_node>::test (symtab_node_def *)): Convert to...
6286 (is_a_helper <cgraph_node>::test (symtab_node_base *)): ...this.
6287 (is_a_helper <varpool_node>::test (symtab_node_def *)): Convert to...
6288 (is_a_helper <varpool_node>::test (symtab_node_base *)): ...this.
6289
6290 * ipa-ref.h (symtab_node_def): Drop.
6291 (symtab_node): Change underlying type from symtab_node_def to
6292 symtab_node_base.
6293 (const_symtab_node): Likwise.
6294
6295 * is-a.h: Update examples in comment.
6296
6297 * symtab.c (symtab_hash): Change symtab_node_def to symtab_node_base.
6298 (assembler_name_hash): Likewise.
6299
2b2b90a3 63002013-10-29 Martin Liska <marxin.liska@gmail.com>
88483755 6301
2b2b90a3 6302 * doc/tree-ssa.texi (gimple_phi_result): Document.
6303 (gimple_phi_num_args, gimple_phi_arg): Likewise.
6304 (gimple_phi_arg_edge, gimple_phi_arg_def): Likewise.
6305 (PHI_RESULT, PHI_NUM_ARGS): Remove.
6306 (PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF): Likewise.
88483755 6307
cc493011 63082013-10-29 Andrew MacLeod <amacleod@redhat.com>
6309
6310 * expr.h: Revert change and include tree-core.h.
6311 * rtl.h: Revert change and don't include tree-core.h.
6312
0d807531 63132013-10-29 Andrew MacLeod <amacleod@redhat.com>
6314
6315 * config/darwin.c: Include gimple.h.
6316 * config/i386/winnt.c: Likewise.
6317
3d0ea943 63182013-10-29 Marc Glisse <marc.glisse@inria.fr>
6319
6320 PR tree-optimization/19831
6321 * tree-ssa-alias.c (stmt_kills_ref_p_1): Handle BUILT_IN_FREE.
6322
b23fb4cb 63232013-10-29 Andrew MacLeod <amacleod@redhat.com>
6324
6325 * tree-outof-ssa.h: Remove include files.
6326 * tree-outof-ssa.c: Add required include files from tree-outof-ssa.h.
6327 * expr.c: Likewise.
6328 * tree-ssa-coalesce.c: Likewise.
6329 * cfgexpand.c: Likewise.
6330 * tree-ssa-ter.c: Likewise.
6331 * ipa-prop.h: Remove gimple.h and tree-core.h from include list.
6332 * lto-streamer.h: Likewise.
6333 * cgraphbuild.c: Add gimple.h to include list.
6334 * data-streamer-in.c: Likewise.
6335 * ipa-cp.c: Likewise.
6336 * tree-streamer.c: Likewise.
6337 * lto-compress.c: Likewise.
6338 * ipa-reference.c: Likewise.
6339 * data-streamer-out.c: Likewise.
6340 * lto-cgraph.c: Likewise.
6341 * cgraphclones.c: Likewise.
6342 * ipa-utils.c: Likewise.
6343 * data-streamer.c: Likewise.
6344 * ipa-split.c: Likewise.
6345 * lto-section-in.c: Likewise.
6346 * tree-streamer-out.c: Likewise.
6347 * ipa-prop.c: Likewise.
6348 * tree-streamer-in.c: Likewise.
6349 * symtab.c: Likewise.
6350 * opts-global.c: Likewise.
6351 * lto-opts.c: Likewise.
6352 * lto-section-out.c: Likewise.
6353 * lto-streamer.c: Likewise.
6354 * rtl.h: Add tree-core.h to include list.
6355 * expr.h: Remove tree-core.h from include list.
6356 * gimple.h: Likewise.
6357 * ipa-utils.h: Likewise.
6358 * streamer-hooks.h: Likewise.
6359 * streamer-hooks.c: Include input.h.
6360
704d30a7 63612013-10-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6362
6363 * config/arm/arm.c (cortexa7_extra_costs): New table.
6364 (arm_cortex_a7_tune): New.
6365 * config/arm/arm-cores.def: Use cortex_a7 tuning for cortex-a7.
6366
628e6f66 63672013-10-29 Eric Botcazou <ebotcazou@adacore.com>
6368
93e29fc3 6369 * expr.c (expand_expr_real_1) <MEM_EXPR>: Eliminate small redundancy.
628e6f66 6370
80303fa7 63712013-10-29 David Malcolm <dmalcolm@redhat.com>
6372
6373 * doc/gty.texi ("Inheritance and GTY"): Make it clear that
6374 to use autogenerated markers for a class-hierarchy, every class
6375 must have a GTY marker.
6376 * gengtype.h (struct type): Add linked list of subclasses to
6377 the "s" member of the union.
6378 (add_subclass): New decl.
6379 * gengtype-state.c (read_state_struct_type): Set up subclass
6380 linked list.
6381 * gengtype.c (get_ultimate_base_class): New.
6382 (add_subclass): New.
6383 (new_structure): Set up subclass linked list.
6384 (set_gc_used_type): Propagate usage information to subclasses.
6385 (output_mangled_typename): Use get_ultimate_base_class.
6386 (walk_subclasses): Use the subclass linked list, avoiding an
6387 O(N^2) when writing out all types.
6388 (walk_type): Issue an error if the base class is missing a tag,
6389 rather than generating bogus C code. Add a gcc_unreachable
6390 default case, in case people omit tags from concrete subclasses,
6391 or get the values wrong.
6392 (write_func_for_structure): Issue an error for subclasses for
6393 which the base doesn't have a "desc", since otherwise the
6394 autogenerated routines for the base would silently fail to visit
6395 any subclass fields.
6396 (write_root): Use get_ultimate_base_class, tweaking constness of
6397 tp to match that function's signature.
6398
16c51402 63992013-10-29 David Malcolm <dmalcolm@redhat.com>
6400
6401 * doc/gty.texi (GTY Options): Add note about inheritance to
6402 description of desc and tag.
6403 (Inheritance and GTY): New.
6404
2b5c57c5 64052013-10-29 David Malcolm <dmalcolm@redhat.com>
6406
6407 * gengtype-parse.c (opts_have): Drop "static" so that
6408 we can use this from gengtype.c.
6409 * gengtype.c (set_gc_used_type): Mark any base class as used;
6410 update field traversal to visit inherited fields.
6411 (output_mangled_typename): Convert references to classes within
6412 an inheritance hierarchy to reference the ultimate base class,
6413 since only it will have gt_ functions.
6414 (get_string_option): New.
6415 (walk_subclasses): New.
6416 (walk_type): Treat GTY structs that have a "desc" as being the
6417 root of an inheritance hierarchy. Generate a switch on it
6418 within the marking function which walks all subclasses, adding
6419 cases for them via walk_subclasses. For subclasses, visit all
6420 fields of the type (including inherited ones).
6421 (write_func_for_structure): Don't write fns for subclasses, only
6422 for the ultimate base class within an inheritance hierarchy.
2b2b90a3 6423 Subclasses-marking will be handled by the base class marking functions.
2b5c57c5 6424 (write_types): Likewise.
6425 (write_local_func_for_structure): Likewise.
6426 (USED_BY_TYPED_GC_P): Emit allocators for subclasses that have
6427 a "tag" option (and are thus concrete subclasses).
6428 (write_root): Use the marker function for the ultimate base class.
6429 * gengtype.h (FOR_ALL_INHERITED_FIELDS): New.
6430 (opts_have): Add declaration.
6431
cb89b365 64322013-10-28 Vladimir Makarov <vmakarov@redhat.com>
6433
6434 * lra-spills.c (lra_final_code_change): Remove useless move insns
6435 originated from moves of pseudos.
6436
87c46d87 64372013-10-28 Jeff Law <law@redhat.com>
6438
6439 * lower-subreg.c (resolve_simple_move): Fix comment typo.
6440
d70aebca 64412013-10-28 Trevor Saunders <tsaunders@mozilla.com>
6442
6443 * df-scan.c (df_collection_rec): Adjust.
6444 (copy_defs): New constant.
6445 (copy_uses): Likewise.
6446 (copy_eq_uses): Likewise.
6447 (copy_mw): Likewise.
6448 (copy_all): Likewise.
6449 (df_insn_rescan): Adjust.
6450 (df_notes_rescan): Likewise.
6451 (df_swap_refs): Likewise.
6452 (df_sort_and_compress_refs): Likewise.
6453 (df_sort_and_compress_mws): Likewise.
6454 (df_install_refs): Likewise.
6455 (df_install_mws): Likewise.
6456 (df_refs_add_to_chains): Add flags parameter controlling which vectors
6457 are coppied.
6458 (df_bb_refs_record): Adjust.
6459 (df_record_entry_block_defs): Likewise.
6460 (df_record_exit_block_defs): Likewise.
6461 (df_refs_verify): Likewise.
6462 (df_mws_verify): Likewise.
6463 (df_insn_refs_verify): Likewise.
6464 (df_bb_verify): Likewise.
6465 * ipa-pure-const.c (finish_state): Remove.
6466 (propagate): Adjust.
6467 * tree-data-ref.c tree-ssa-alias.c tree-ssa-loop-ivcanon.c
6468 tree-ssa-threadedge.c tree-vect-loop-manip.c tree-vect-slp.c
6469 var-tracking.c: Adjust.
6470 * vec.c (stack_vecs): Remove.
6471 (register_stack_vec): Likewise.
6472 (stack_vec_register_index): Likewise.
6473 (unregister_stack_vec): Likewise.
6474 * vec.h (struct va_stack): Remove.
6475 (struct vec<T, A, vl_ptr>): Specialize as
6476 struct vec<T, va_heap, vl_ptr> instead since va_heap is the only
6477 allocation strategy compatable with the vl_ptr layout.
6478 (struct vec<T, va_gc, vl_ptr>): Remove because it now gets an empty
6479 specialization anyway.
6480 (class stack_vec): New class.
6481 (vec_stack_alloc): Remove.
6482 (vec<T, va_heap, vl_ptr>::using_auto_storage): New method.
6483
2344eae2 64842013-10-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
6485 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6486 Sergey Lega <sergey.s.lega@intel.com>
6487 Anna Tikhonova <anna.tikhonova@intel.com>
6488 Ilya Tocar <ilya.tocar@intel.com>
6489 Andrey Turetskiy <andrey.turetskiy@intel.com>
6490 Ilya Verbin <ilya.verbin@intel.com>
6491 Kirill Yukhin <kirill.yukhin@intel.com>
6492 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6493
6494 * config/i386/i386.md (prefetch): Allow TARGET_AVX512PF.
6495 (*prefetch_avx512pf_<mode>): New.
6496 * config/i386/sse.md (avx512f_vmcmp<mode>3): Ditto.
6497 (avx512f_maskcmp<mode>3): Ditto.
6498 (vashrv16si3): Ditto.
6499
697a43f8 65002013-10-28 Alexander Ivchenko <alexander.ivchenko@intel.com>
6501 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
6502 Sergey Lega <sergey.s.lega@intel.com>
6503 Anna Tikhonova <anna.tikhonova@intel.com>
6504 Ilya Tocar <ilya.tocar@intel.com>
6505 Andrey Turetskiy <andrey.turetskiy@intel.com>
6506 Ilya Verbin <ilya.verbin@intel.com>
6507 Kirill Yukhin <kirill.yukhin@intel.com>
6508 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
6509
6510 * config/i386/i386.md (any_truncate): New.
6511 (trunsuffix): Ditto.
6512 * config/i386/predicates.md (const_8_to_9_operand): New.
6513 (const_10_to_11_operand): Ditto.
6514 (const_12_to_13_operand): Ditto.
6515 (const_14_to_15_operand): Ditto.
6516 (const_16_to_19_operand): Ditto.
6517 (const_20_to_23_operand): Ditto.
6518 (const_24_to_27_operand): Ditto.
6519 (const_28_to_31_operand): Ditto.
6520 * config/i386/sse.md (unspec): Add UNSPEC_UNSIGNED_FIX_NOTRUNC.
6521 (cvtusi2<ssescalarmodesuffix>32): New.
6522 (cvtusi2<ssescalarmodesuffix>64): Ditto.
6523 (ufloatv16siv16sf2): Ditto.
6524 (avx512f_fix_notruncv16sfv16si): Ditto.
6525 (avx512f_ufix_notruncv16sfv16si): Ditto.
6526 (avx512f_vcvtss2usi): Ditto.
6527 (avx512f_vcvtss2usiq): Ditto.
6528 (avx512f_vcvttss2usi): Ditto.
6529 (avx512f_vcvttss2usiq): Ditto.
6530 (avx512f_vcvtsd2usi): Ditto.
6531 (avx512f_vcvtsd2usiq): Ditto.
6532 (avx512f_vcvttsd2usi): Ditto.
6533 (avx512f_vcvttsd2usiq): Ditto.
6534 (ufloatv8siv8df): Ditto.
6535 (avx512f_cvtdq2pd512_2): Ditto.
6536 (avx512f_cvtpd2dq512): Ditto.
6537 (avx512f_ufix_notruncv8dfv8si): Ditto.
6538 (avx512f_cvtpd2ps512): Ditto.
6539 (vec_unpacks_lo_v16sf): Ditto.
6540 (vec_unpacks_hi_v16sf): Ditto.
6541 (vec_unpacks_float_hi_v16si): Ditto.
6542 (vec_unpacks_float_lo_v16si): Ditto.
6543 (avx512f_unpckhps512): Ditto.
6544 (avx512f_unpcklps512): Ditto.
6545 (avx512f_movshdup512): Ditto.
6546 (avx512f_movsldup512): Ditto.
6547 (vec_extract_lo_v32hi): Ditto.
6548 (vec_extract_hi_v32hi): Ditto.
6549 (vec_extract_lo_v64qi): Ditto.
6550 (vec_extract_hi_v64qi): Ditto.
6551 (avx512f_unpckhpd512): Ditto.
6552 (avx512f_movddup512): Ditto.
6553 (avx512f_unpcklpd512): Ditto.
6554 (*avx512f_unpcklpd512): Ditto.
6555 (avx512f_shufps512_1): Ditto.
6556 (avx512f_shufpd512_1): Ditto.
6557 (avx512f_interleave_highv8di): Ditto.
6558 (avx512f_interleave_lowv8di): Ditto.
6559 (PMOV_DST_MODE): Ditto.
6560 (pmov_src_mode): Ditto.
6561 (pmov_src_lower): Ditto.
6562 (pmov_suff): Ditto.
6563 (*avx512f_<code><pmov_src_lower><mode>2): Ditto.
6564 (*avx512f_<code>v8div16qi2): Ditto.
6565 (*avx512f_<code>v8div16qi2_store): Ditto.
6566 (vec_widen_umult_even_v16si): Ditto.
6567 (*vec_widen_umult_even_v16si): Ditto.
6568 (vec_widen_smult_even_v16si): Ditto.
6569 (*vec_widen_smult_even_v16si): Ditto.
6570 (avx512f_interleave_highv16si): Ditto.
6571 (avx512f_interleave_lowv16si): Ditto.
6572 (avx512f_<code>v16qiv16si2): Ditto.
6573 (avx512f_<code>v16hiv16si2): Ditto.
6574 (avx512f_<code>v8qiv8di2): Ditto.
6575 (avx512f_<code>v8hiv8di2): Ditto.
6576 (avx512f_<code>v8siv8di2): Ditto.
6577 (avx512cd_maskb_vec_dupv8di): Ditto.
6578 (avx512cd_maskw_vec_dupv16si): Ditto.
6579 (avx512f_vcvtph2ps512): Ditto.
6580 (avx512f_vcvtps2ph512): Ditto.
6581 (VEC_EXTRACT_MODE): Extened with wider modes.
6582 (VEC_PERM_AVX2): Ditto.
6583 (VEC_PERM_CONST): Ditto.
6584
475e57f0 65852013-10-28 Joern Rennecke <joern.rennecke@embecosm.com>
6586
6587 * config/arc/arc.c (arc_ccfsm_post_advance):
6588 Add comment about TYPE_RETURN.
6589
9ea161a3 65902013-10-28 Bin Cheng <bin.cheng@arm.com>
6591
6592 * tree-ssa-loop-ivopts.c (strip_offset_1): Change parameter type.
6593 Count DECL_FIELD_BIT_OFFSET for COMPONENT_REF.
6594 (strip_offset): Convert offset to unsigned number.
6595
d699f73a 65962013-10-27 Tom de Vries <tom@codesourcery.com>
6597
6598 * cfgexpand.c (gimple_expand_cfg): Remove test for parm_birth_insn.
6599 Don't commit insertions after NOTE_INSN_FUNCTION_BEG.
6600
adb7af07 66012013-10-27 Oleg Endo <olegendo@gcc.gnu.org>
6602
6603 * config/sh/sh.c (MSW, LSW): Move and rename macros to...
6604 * config/sh/sh.h (SH_REG_MSW_OFFSET, SH_REG_LSW_OFFSET): ... here.
6605 (TARGET_BIG_ENDIAN): New macro.
6606 * config/sh/sh.md: Use it instead of !TARGET_LITTLE_ENDIAN.
6607 Use SH_REG_MSW_OFFSET and SH_REG_LSW_OFFSET.
6608 * config/sh/sh.c: Likewise.
6609 * config/sh/sh.h: Likewise.
6610
d0df4894 66112013-10-27 Hans-Peter Nilsson <hp@axis.com>
6612
6613 * config/cris/cris.c (cris_emit_trap_for_misalignment): Replace the
6614 removed PRED_MUDFLAP with PRED_NORETURN. Correct file-path in comment.
6615
24aebdb1 66162013-10-26 Oleg Endo <olegendo@gcc.gnu.org>
6617
6618 * config/sh/sh.md (movmemsi): Remove empty constraints and predicates.
6619 Fix formatting.
6620 (cmpstr_t, cmpstrsi): Fix formatting.
6621
6415e1ab 66222013-10-26 Oleg Endo <olegendo@gcc.gnu.org>
6623
6624 PR target/52483
6625 * config/sh/predicates.md (general_movdst_operand): Allow reg+reg
6626 addressing, do not use general_operand for memory operands.
6627
205f9987 66282013-10-26 Vladimir Makarov <vmakarov@redhat.com>
6629
6630 Revert:
6631 2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
6632 * lra-spills.c (lra_final_code_change): Remove useless move insns.
6633
b1c06ff9 66342013-10-26 Jeff Law <law@redhat.com>
6635
10f983a8 6636 * predict.c (PRED_MUDFLAP): Remove.
6637 * targhooks.c (build_va_arg_indirect_ref): Remove mudflap support.
6638
b1c06ff9 6639 * Makefile.in (C_COMMON_OBJS): Remove tree-mudflap.
6640 (OBJS): Remove tree-nomudflap.o
6641 (GTFILES): Remove tree-mudflap.c
6642 * builtins.c (expand_builtin_alloc): Remove mudflap support.
6643 * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Likewise.
6644 (mfwrap_spec, mflib_spec): Likewise.
6645 (cpp_unique_options, cc1_options, static_specs): Likewise.
6646 * gimplify (gimplify_vla_decl, build_va_arg_indirect_ref): Likewise.
6647 * passes.def: Likewise.
6648 * toplev.c (compile_file, process_options): Likewise.
6649 * tree-inline.c (copy_tree_r): Likewise.
6650 * tree-pass.,h (make_pass_mudflap_1, make_pass_mudflap_2): Likewise.
6651 * varasm.c (make_decl_rtl, make_decl_rtl_for_debug): Likewise.
6652 (build_constant_desc, output_constant_def_contents): Likewise.
6653 (categorize_decl_for_section): Likewise.
6654 * tree-mudflap.c: Removed.
6655 * tree-mudflap.h: Removed.
6656 * tree-nomudflap.c: Removed.
6657 * bfin/uclinux.h (MFWRAP_SPEC): Remove.
6658 * moxie/uclinux.h (MFWRAP_SPEC): Likewise.
6659 * rs6000/aix.h (MFWRAP_SPEC, MFLIB_SPEC): Likewise.
6660 * config/sol2.h (MFLIB_SPEC): Likewise.
6661 * doc/install.texi: Remove mudflap references.
6662 * doc/passes.texi: Similarly.
6663 * doc/sourcebuild.texi: Similarly.
6664 * doc/invoke.texi: Remove mudlfap related options.
6665
e454a550 66662013-10-25 Vladimir Makarov <vmakarov@redhat.com>
6667
6668 PR rtl-optimization/58759
6669 * lra-constraints.c (lra_constraints): Remove wrong condition to
6670 remove insn setting up an equivalent pseudo.
6671
bcdf945c 66722013-10-25 Vladimir Makarov <vmakarov@redhat.com>
6673
6674 * config/rs6000/rs6000-protos.h
6675 (rs6000_secondary_memory_needed_mode): New prototype.
6676 * config/rs6000/rs6000.c: Include ira.h.
6677 (TARGET_LRA_P): Redefine.
6678 (rs6000_legitimate_offset_address_p): Call
6679 legitimate_constant_pool_address_p in strict mode for LRA.
6680 (rs6000_legitimate_address_p): Ditto.
2b2b90a3 6681 (legitimate_lo_sum_address_p): Add code for LRA. Use lra_in_progress.
bcdf945c 6682 (rs6000_emit_move): Add LRA version of code to generate load/store
6683 of SDmode values.
6684 (rs6000_secondary_memory_needed_mode): New.
6685 (rs6000_alloc_sdmode_stack_slot): Do nothing for LRA.
6686 (rs6000_secondary_reload_class): Return NO_REGS for LRA for
6687 constants, memory, and FP registers.
6688 (rs6000_lra_p): New.
2b2b90a3 6689 * config/rs6000/rs6000.h (SECONDARY_MEMORY_NEEDED_MODE): New macro.
bcdf945c 6690 * config/rs6000/rs6000.opt (mlra): New option.
6691 * lra-spills.c (lra_final_code_change): Remove useless move insns.
6692
e0df5be0 66932013-10-25 Yufeng Zhang <yufeng.zhang@arm.com>
6694
6695 * tree-ssa-math-opts.c (convert_plusminus_to_widen): Call
6696 has_single_use () and not do the conversion if has_single_use ()
6697 returns false for the multiplication result.
6698
8abb6daa 66992013-10-25 David Malcolm <dmalcolm@redhat.com>
6700
6701 * tree.h (EXCEPTIONAL_CLASS_P): Rename parameter from "CODE"
6702 to "NODE", since this works on a "tree", not an
6703 "enum tree_code".
6704 (CONSTANT_CLASS_P): Likewise.
6705 (TYPE_P): Likewise.
6706 (DECL_P): Likewise.
6707 (INDIRECT_REF_P): Likewise.
6708 (REFERENCE_CLASS_P): Likewise.
6709 (COMPARISON_CLASS_P): Likewise.
6710 (UNARY_CLASS_P): Likewise.
6711 (BINARY_CLASS_P): Likewise.
6712 (STATEMENT_CLASS_P): Likewise.
6713 (VL_EXP_CLASS_P): Likewise.
6714 (EXPRESSION_CLASS_P): Likewise.
6715 (IS_TYPE_OR_DECL_P): Likewise.
6716
4e9e79c0 67172013-10-25 Marc Glisse <marc.glisse@inria.fr>
6718
6719 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Look for an
6720 ADDR_EXPR in the defining statement.
6721
7103facc 67222013-10-25 Richard Biener <rguenther@suse.de>
6723
6724 PR tree-optimization/58626
6725 * tree-loop-distribution.c (enum rdg_dep_type): Remove
6726 anti_dd, output_dd and input_dd.
6727 (struct rdg_edge): Remove level and relation members.
6728 (RDGE_LEVEL, RDGE_RELATION): Remove.
6729 (dot_rdg_1): Adjust.
6730 (create_rdg_edge_for_ddr): Remove.
6731 (create_rdg_edges_for_scalar): Adjust.
6732 (create_edge_for_control_dependence): Likewise.
6733 (create_rdg_edges): Split into ...
6734 (create_rdg_flow_edges): ... this
6735 (create_rdg_cd_edges): ... and this.
6736 (free_rdg): Adjust.
6737 (build_rdg): Likewise, do not compute data dependences or
6738 add edges for them.
6739 (pg_add_dependence_edges): New function.
6740 (pgcmp): Likewise.
6741 (distribute_loop): First apply all non-dependence based
6742 partition mergings. Then compute dependences between partitions
6743 and merge and order partitions according to them.
6744
a15c38cd 67452013-10-25 Eric Botcazou <ebotcazou@adacore.com>
6746
6747 PR rtl-optimization/58831
2b2b90a3 6748 * alias.c (init_alias_analysis): At the beginning of each iteration,
6749 set the reg_seen[N] bit if static_reg_base_value[N] is non-null.
a15c38cd 6750
b88e3065 67512013-10-25 Eric Botcazou <ebotcazou@adacore.com>
6752
6753 * recog.c (search_ofs): New static variable moved from...
6754 (peep2_find_free_register): ...here.
6755 (peephole2_optimize): Initialize it.
6756
848db810 67572013-10-25 Tobias Burnus <burnus@net-b.de>
6758
b88e3065 6759 * doc/invoke.texi (fopenmp): Change supported OpenMP version to 4.0.
848db810 6760
3c852bc9 67612013-10-25 Uros Bizjak <ubizjak@gmail.com>
6762
6763 * config/i386/i386.h (TARGET_MPX): New define.
6764 (TARGET_MPX_P): Ditto.
6765
0b177abb 67662013-10-24 Ilya Enkovich <ilya.enkovich@intel.com>
6767
6768 * config/i386/constraints.md (B): New.
6769 (Ti): New.
6770 (Tb): New.
6771 * config/i386/i386-c.c (ix86_target_macros_internal): Add __MPX__.
6772 * config/i386/i386-modes.def (BND32): New.
6773 (BND64): New.
6774 * config/i386/i386-protos.h (ix86_bnd_prefixed_insn_p): New.
6775 * config/i386/i386.c (isa_opts): Add mmpx.
6776 (regclass_map): Add bound registers.
6777 (dbx_register_map): Likewise.
6778 (dbx64_register_map): Likewise.
6779 (svr4_dbx_register_map): Likewise.
6780 (PTA_MPX): New.
6781 (ix86_option_override_internal): Support MPX ISA.
6782 (ix86_conditional_register_usage): Support bound registers.
6783 (print_reg): Likewise.
6784 (ix86_code_end): Add MPX bnd prefix.
6785 (output_set_got): Likewise.
6786 (ix86_output_call_insn): Likewise.
6787 (ix86_print_operand): Add '!' (MPX bnd) print prefix support.
6788 (ix86_print_operand_punct_valid_p): Likewise.
6789 (ix86_print_operand_address): Support UNSPEC_BNDMK_ADDR and
6790 UNSPEC_BNDMK_ADDR.
6791 (ix86_class_likely_spilled_p): Add bound regs support.
6792 (ix86_hard_regno_mode_ok): Likewise.
6793 (x86_order_regs_for_local_alloc): Likewise.
6794 (ix86_bnd_prefixed_insn_p): New.
6795 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Fix to new value.
6796 (FIXED_REGISTERS): Add bound registers.
6797 (CALL_USED_REGISTERS): Likewise.
6798 (REG_ALLOC_ORDER): Likewise.
6799 (HARD_REGNO_NREGS): Likewise.
6800 (TARGET_MPX): New.
6801 (VALID_BND_REG_MODE): New.
6802 (FIRST_BND_REG): New.
6803 (LAST_BND_REG): New.
6804 (reg_class): Add BND_REGS.
6805 (REG_CLASS_NAMES): Likewise.
6806 (REG_CLASS_CONTENTS): Likewise.
6807 (BND_REGNO_P): New.
6808 (ANY_BND_REG_P): New.
6809 (BNDmode): New.
6810 (HI_REGISTER_NAMES): Add bound registers.
6811 * config/i386/i386.md (UNSPEC_BNDMK): New.
6812 (UNSPEC_BNDMK_ADDR): New.
6813 (UNSPEC_BNDSTX): New.
6814 (UNSPEC_BNDLDX): New.
6815 (UNSPEC_BNDLDX_ADDR): New.
6816 (UNSPEC_BNDCL): New.
6817 (UNSPEC_BNDCU): New.
6818 (UNSPEC_BNDCN): New.
6819 (UNSPEC_MPX_FENCE): New.
6820 (BND0_REG): New.
6821 (BND1_REG): New.
6822 (type): Add mpxmov, mpxmk, mpxchk, mpxld, mpxst.
6823 (length_immediate): Likewise.
6824 (prefix_0f): Likewise.
6825 (memory): Likewise.
6826 (prefix_rep): Check for bnd prefix.
6827 (length_nobnd): New.
6828 (length): Use length_nobnd if specified.
6829 (BND): New.
6830 (bnd_ptr): New.
6831 (BNDCHECK): New.
6832 (bndcheck): New.
6833 (*jcc_1): Add bnd prefix and rename length attr to length_nobnd.
6834 (*jcc_2): Likewise.
6835 (jump): Likewise.
6836 (simple_return_internal): Likewise.
6837 (simple_return_pop_internal): Likewise.
6838 (*indirect_jump): Add MPX bnd prefix.
6839 (*tablejump_1): Likewise.
6840 (simple_return_internal_long): Likewise.
6841 (simple_return_indirect_internal): Likewise.
6842 (<mode>_mk): New.
6843 (*<mode>_mk): New.
6844 (mov<mode>): New.
6845 (*mov<mode>_internal_mpx): New.
6846 (<mode>_<bndcheck>): New.
6847 (*<mode>_<bndcheck>): New.
6848 (<mode>_ldx): New.
6849 (*<mode>_ldx): New.
6850 (<mode>_stx): New.
6851 (*<mode>_stx): New.
6852 * config/i386/predicates.md (lea_address_operand): Rename to...
6853 (address_no_seg_operand): ... this.
6854 (address_mpx_no_base_operand): New.
6855 (address_mpx_no_index_operand): New.
6856 (bnd_mem_operator): New.
6857 * config/i386/i386.opt (mmpx): New.
6858 * doc/invoke.texi: Add documentation for the flags -mmpx, -mno-mpx.
6859 * doc/rtl.texi Add documentation for BND32mode and BND64mode.
6860
97b88cf1 68612013-10-24 Ilya Enkovich <ilya.enkovich@intel.com>
6862
6863 * mode-classes.def (MODE_POINTER_BOUNDS): New.
6864 * tree.def (POINTER_BOUNDS_TYPE): New.
6865 * genmodes.c (complete_mode): Support MODE_POINTER_BOUNDS.
6866 (POINTER_BOUNDS_MODE): New.
6867 (make_pointer_bounds_mode): New.
6868 * machmode.h (POINTER_BOUNDS_MODE_P): New.
6869 * stor-layout.c (int_mode_for_mode): Support MODE_POINTER_BOUNDS.
6870 (layout_type): Support POINTER_BOUNDS_TYPE.
6871 * tree-pretty-print.c (dump_generic_node): Support POINTER_BOUNDS_TYPE.
6872 * tree.c (build_int_cst_wide): Support POINTER_BOUNDS_TYPE.
6873 (type_contains_placeholder_1): Likewise.
6874 * tree.h (POINTER_BOUNDS_TYPE_P): New.
6875 * varasm.c (output_constant): Support POINTER_BOUNDS_TYPE.
6876 * doc/rtl.texi (MODE_POINTER_BOUNDS): New.
6877
d244cab5 68782013-10-24 Igor Shevlyakov <igor.shevlyakov@gmail.com>
6879
3c852bc9 6880 * expr.c (expand_expr_real_1): Use mode of memory reference rather than
6881 mode of address computation when calling memory_address_addr_space.
d244cab5 6882
dfab1c15 68832013-08-24 Richard Henderson <rth@twiddle.net>
6884
6885 PR rtl/58542
6886 * optabs.c (maybe_emit_atomic_exchange): Use create_input_operand
6887 instead of create_convert_operand_to.
6888 (maybe_emit_sync_lock_test_and_set): Likewise.
6889 (expand_atomic_compare_and_swap): Likewise.
6890 (maybe_emit_compare_and_swap_exchange_loop): Don't convert_modes.
6891
2814a58c 68922013-08-24 Sriraman Tallam <tmsriram@google.com>
6893
6894 * cgraph.c (cgraph_fnver_htab): Move GTY((...)) to be before htab_t.
6895 Change param_is to use the struct and not the pointer to the struct.
6896
b94f16f4 68972013-10-24 Andrew MacLeod <amacleod@redhat.com>
6898
6899 * builtins.c (dummy_object, gimplify_va_arg_expr): Move to gimplify.c.
6900 * gimplify.c (build_va_arg_indirect_ref, std_gimplify_va_arg_expr):
6901 Move to targhooks.c.
6902 (dummy_object, gimplify_va_arg_expr): Relocate from builtins.c.
6903 * targhooks.c (build_va_arg_indirect_ref, std_gimplify_va_arg_expr):
6904 Relocate from gimplify.c.
6905 * targhooks.h: Add 2 prototypes.
6906 * tree.h: Delete 2 prototypes.
6907
2c1b58db 69082013-10-24 Igor Shevlyakov <igor.shevlyakov@gmail.com>
6909
6910 * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p ): Check both
6911 [reg+mult*reg] and [mult*reg] to determine if multiplier is allowed.
6912
ff249989 69132013-10-24 Cong Hou <congh@google.com>
6914
6915 * convert.c (convert_to_real): Guard those unsafe math function
6916 convertions with flag_unsafe_math_optimizations. Handle sqrt()
3c852bc9 6917 specially.
ff249989 6918
5a900841 69192013-10-24 Markus Trippelsdorf <markus@trippelsdorf.de>
3c852bc9 6920
5a900841 6921 PR ipa/58712
6922 * cgraph.c (cgraph_create_edge_1): Add indirect_unknown_callee
6923 as argument.
6924 (cgraph_create_edge): Use the new argument.
6925 (cgraph_create_indirect_edge): Likewise.
6926
e008f93d 69272013-10-24 Joern Rennecke <joern.rennecke@embecosm.com>
6928
57a3d097 6929 * config/arc/arc.c (arc_ccfsm_post_advance): Also handle
e008f93d 6930 TYPE_UNCOND_BRANCH.
092872f4 6931 (arc_ifcvt) <case 1 and 2>: Check that arc_ccfsm_post_advance
6932 changes statep->state.
e008f93d 6933
48a972c8 69342013-10-24 Tobias Burnus <burnus@net-b.de>
4644b593 6935
6936 PR other/33426
6937 * tree-cfg.c (replace_loop_annotate): New function.
6938 (execute_build_cfg): Call it.
6939 * gimplify.c (gimple_boolify, gimplify_expr): Handle ANNOTATE_EXPR.
6940 * internal-fn.c (expand_ANNOTATE): New function.
6941 * internal-fn.def (ANNOTATE): Define as new internal function.
6942 * tree-core.h (tree_node_kind): Add annot_expr_ivdep_kind.
6943 * tree-pretty-print.c (dump_generic_node): Handle ANNOTATE_EXPR.
6944 * tree.def (ANNOTATE_EXPR): New DEFTREECODE.
6945 * doc/extend.texi (Pragmas): Document #pragma ivdep.
6946 * doc/generic.texi (Expressions): Document ANNOTATE_EXPR.
6947
ec44ca7c 69482013-10-17 Ian Bolton <ian.bolton@arm.com>
6949 Marcus Shawcroft <marcus.shawcroft@arm.com>
6950
6951 * config/aarch64/aarch64.c (aarch64_preferred_reload_class):
6952 Special case reload SP+C into none GENERAL_REGS.
6953
f72eee0d 69542013-10-24 Michael Matz <matz@suse.de>
6955
3c852bc9 6956 * gengtype.c (is_file_equal): Check that files will be same length.
f72eee0d 6957
ccd57e8a 69582013-10-25 Christian Bruel <christian.bruel@st.com>
6959
6960 * config.gcc (sh-*): Add sh-mem.o to extra_obj.
57a3d097 6961 * config/sh/t-sh (sh-mem.o): New rule.
6962 * config/sh/sh-mem.cc (expand_block_move): Moved here.
a2b4a692 6963 (sh_expand_cmpstr): New function.
57a3d097 6964 * config/sh/sh.c (force_into, expand_block_move): Move to sh-mem.c.
6965 * config/sh/sh-protos.h (sh_expand_cmpstr): Declare.
6966 * config/sh/sh.md (cmpstrsi, cmpstr_t): New patterns.
ccd57e8a 6967 (rotlhi3_8): Rename.
6968
b0e45289 69692013-10-24 Jan-Benedict Glaw <jbglaw@lug-owl.de>
6970
6971 * configure.ac (ZW_PROG_COMPILER_DEPENDENCIES): Use CXX instead of CC.
6972 * Makefile.in (CXXDEPMODE): Assign and change users.
6973 (CCDEPMODE): Delete.
6974 * configure: Regenerate.
6975
b1ca3490 69762013-10-23 David Malcolm <dmalcolm@redhat.com>
6977
6978 * gengtype-parse.c (require_without_advance): New.
6979 (type): For GTY-marked types that are not GTY((user)), parse any
6980 base classes, requiring them to be single-inheritance, and not
6981 be templates. For non-GTY-marked types and GTY((user)),
6982 continue to skip over any C++ inheritance specification.
6983 * gengtype-state.c (state_writer::write_state_struct_type):
6984 Write base class of type (if any).
6985 (read_state_struct_type): Read base class of type (if any).
6986 * gengtype.c (new_structure): Add a "base_class" parameter.
3c852bc9 6987 (create_optional_field_): Update for new parameter to new_structure.
b1ca3490 6988 (adjust_field_rtx_def): Likewise.
6989 (adjust_field_tree_exp): Likewise.
6990 * gengtype.h (struct type): Add "base_class" field to the s
6991 union field.
6992 (new_structure): Add "base" parameter.
6993
341d5690 69942013-10-23 Sriraman Tallam <tmsriram@google.com>
6995
6996 PR target/57756
6997 * config/i386/i386.c (ix86_option_override_internal):
6998 Change TARGET_SSE2 to TARGET_SSE2_P (opts->...)
6999 (ix86_valid_target_attribute_tree):
7000 Change TARGET_64BIT to TARGET_64BIT_P (opts->...)
7001 Change TARGET_SSE to TARGET_SSE_P (opts->...)
7002
05d9c18a 70032013-10-23 Andrew MacLeod <amacleod@redhat.com>
7004
7005 * tree-ssa-loop.h: Remove include files.
7006 * gengtype.c (open_base_files): Adjust include list for gtype-desc.c.
7007 * cfgloopmanip.c: Move required includes from tree-ssa-loop.h.
7008 * graphite-clast-to-gimple.c: Likewise.
7009 * graphite-scop-detection.c: Likewise.
7010 * graphite-sese-to-poly.c: Likewise.
7011 * ipa-inline-analysis.c: Likewise.
7012 * ipa-pure-const.c: Likewise.
7013 * loop-init.c: Likewise.
7014 * passes.c: Likewise.
7015 * predict.c: Likewise.
7016 * tree-cfg.c: Likewise.
7017 * tree-cfgcleanup.c: Likewise.
7018 * tree-chrec.c: Likewise.
7019 * tree-data-ref.c: Likewise.
7020 * tree-loop-distribution.c: Likewise.
7021 * tree-parloops.c: Likewise.
7022 * tree-predcom.c: Likewise.
7023 * tree-scalar-evolution.c: Likewise.
7024 * tree-ssa-address.c: Likewise.
7025 * tree-ssa.c: Likewise.
7026 * tree-ssa-dce.c: Likewise.
7027 * tree-ssa-loop.c: Likewise.
7028 * tree-ssa-loop-im.c: Likewise.
7029 * tree-ssa-loop-ivcanon.c: Likewise.
7030 * tree-ssa-loop-ivopts.c: Likewise.
7031 * tree-ssa-loop-manip.c: Likewise.
7032 * tree-ssa-loop-niter.c: Likewise.
7033 * tree-ssa-loop-prefetch.c: Likewise.
7034 * tree-ssa-loop-unswitch.c: Likewise.
7035 * tree-ssa-reassoc.c: Likewise.
7036 * tree-vect-data-refs.c: Likewise.
7037 * tree-vect-loop.c: Likewise.
7038 * tree-vect-loop-manip.c: Likewise.
7039 * tree-vectorizer.c: Likewise.
7040 * tree-vect-stmts.c: Likewise.
7041 * tree-vrp.c: Likewise.
7042
a268327d 70432013-10-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7044
7045 * config/rs6000/altivec.md (mulv8hi3): Adjust for little endian.
7046
82cb4e1c 70472013-10-23 Jakub Jelinek <jakub@redhat.com>
7048
7049 PR tree-optimization/58775
7050 PR tree-optimization/58791
7051 * tree-ssa-reassoc.c (reassoc_stmt_dominates_stmt_p): New function.
7052 (insert_stmt_after): Rewritten, don't move the stmt, but really
7053 insert it.
7054 (get_stmt_uid_with_default): Remove.
7055 (build_and_add_sum): Use insert_stmt_after and
3c852bc9 7056 reassoc_stmt_dominates_stmt_p. Fix up uid if bb contains only labels.
82cb4e1c 7057 (update_range_test): Set uid on stmts added by
7058 force_gimple_operand_gsi. Don't immediately modify statements
7059 in inter-bb optimization, just update oe->op values.
3c852bc9 7060 (optimize_range_tests): Return bool whether any changed have been made.
82cb4e1c 7061 (update_ops): New function.
7062 (struct inter_bb_range_test_entry): New type.
7063 (maybe_optimize_range_tests): Perform statement changes here.
7064 (not_dominated_by, appears_later_in_bb, get_def_stmt,
7065 ensure_ops_are_available): Remove.
7066 (find_insert_point): Rewritten.
7067 (rewrite_expr_tree): Remove MOVED argument, add CHANGED argument,
7068 return LHS of the (new resp. old) stmt. Don't call
7069 ensure_ops_are_available, don't reuse SSA_NAMEs, recurse first
7070 instead of last, move new stmt at the right place.
7071 (linearize_expr, repropagate_negates): Don't reuse SSA_NAMEs.
7072 (negate_value): Likewise. Set uids.
7073 (break_up_subtract_bb): Initialize uids.
7074 (reassociate_bb): Adjust rewrite_expr_tree caller.
7075 (do_reassoc): Don't call renumber_gimple_stmt_uids.
7076
baf69043 70772013-10-23 David Edelsohn <dje.gcc@gmail.com>
7078
7079 PR target/58838
7080 * config/rs6000/rs6000.md (mulsi3_internal1 and splitter): Add
7081 TARGET_32BIT final condition.
7082 (mulsi3_internal2 and splitter): Same.
7083
ed4feca1 70842013-10-23 Jeff Law <law@redhat.com>
7085
7086 * tree-ssa-threadedge.c (thread_across_edge): Do not allow threading
7087 through joiner blocks with abnormal outgoing edges.
7088
7089 * tree-ssa-threadupdate.c (thread_block_1): Renamed from thread_block.
7090 Add parameter JOINERS, to allow/disallow threading through joiner
7091 blocks.
7092 (thread_block): New. Call thread_block_1.
7093 (mark_threaded_blocks): Remove code to filter out certain cases
7094 of threading through joiner blocks.
7095 (thread_through_all_blocks): Document how we can have a dangling
7096 edge AUX field and clear it.
7097
a1426805 70982013-10-23 Ian Lance Taylor <iant@google.com>
7099
7100 * doc/invoke.texi (Option Summary): Remove -fno-default-inline.
7101 (C++ Dialect Options): Likewise.
7102 (Optimize Options): Likewise.
7103
888da683 71042013-10-23 Tom de Vries <tom@codesourcery.com>
7105
7106 PR tree-optimization/58805
7107 * tree-ssa-tail-merge.c (stmt_local_def): Add gimple_vdef check.
7108
de6af029 71092013-10-23 Jakub Jelinek <jakub@redhat.com>
7110
7111 * tree-vect-patterns.c (vect_recog_divmod_pattern): Optimize
7112 sequence based on get_range_info returned range.
7113
073c1fd5 71142013-10-23 Andrew MacLeod <amacleod@redhat.com>
7115
7116 * tree-ssa.h: Remove all #include's
7117 * gengtype.c (open_base_files): Adjust include list for gtype-desc.c.
7118 * alias.c: Move required includes from tree-ssa.h.
7119 * asan.c: Likewise.
7120 * builtins.c: Likewise.
7121 * calls.c: Likewise.
7122 * cfgexpand.c: Likewise.
7123 * cfghooks.c: Likewise.
7124 * cfgloop.c: Likewise.
7125 * cfgloopmanip.c: Likewise.
7126 * cgraph.c: Likewise.
7127 * cgraphbuild.c: Likewise.
7128 * cgraphclones.c: Likewise.
7129 * cgraphunit.c: Likewise.
7130 * dse.c: Likewise.
7131 * except.c: Likewise.
7132 * expr.c: Likewise.
7133 * final.c: Likewise.
7134 * fold-const.c: Likewise.
7135 * ggc-page.c: Likewise.
7136 * gimple-builder.c: Likewise.
7137 * gimple-fold.c: Likewise.
7138 * gimple-iterator.c: Likewise.
7139 * gimple-low.c: Likewise.
7140 * gimple-pretty-print.c: Likewise.
7141 * gimple-ssa-strength-reduction.c: Likewise.
7142 * gimple-streamer-in.c: Likewise.
7143 * gimple-streamer-out.c: Likewise.
7144 * gimplify.c: Likewise.
7145 * graphite-blocking.c: Likewise.
7146 * graphite-clast-to-gimple.c: Likewise.
7147 * graphite-dependences.c: Likewise.
7148 * graphite-interchange.c: Likewise.
7149 * graphite-optimize-isl.c: Likewise.
7150 * graphite-poly.c: Likewise.
7151 * graphite-scop-detection.c: Likewise.
7152 * graphite-sese-to-poly.c: Likewise.
7153 * graphite.c: Likewise.
7154 * ipa-cp.c: Likewise.
7155 * ipa-inline-analysis.c: Likewise.
7156 * ipa-inline-transform.c: Likewise.
7157 * ipa-inline.c: Likewise.
7158 * ipa-prop.c: Likewise.
7159 * ipa-pure-const.c: Likewise.
7160 * ipa-reference.c: Likewise.
7161 * ipa-split.c: Likewise.
7162 * ipa-utils.c: Likewise.
7163 * loop-init.c: Likewise.
7164 * lto-cgraph.c: Likewise.
7165 * lto-section-in.c: Likewise.
7166 * lto-section-out.c: Likewise.
7167 * lto-streamer-in.c: Likewise.
7168 * lto-streamer-out.c: Likewise.
7169 * lto-streamer.c: Likewise.
7170 * omp-low.c: Likewise.
7171 * passes.c: Likewise.
7172 * predict.c: Likewise.
7173 * print-tree.c: Likewise.
7174 * profile.c: Likewise.
7175 * sese.c: Likewise.
7176 * targhooks.c: Likewise.
7177 * tracer.c: Likewise.
7178 * trans-mem.c: Likewise.
7179 * tree-call-cdce.c: Likewise.
7180 * tree-cfg.c: Likewise.
7181 * tree-cfgcleanup.c: Likewise.
7182 * tree-chrec.c: Likewise.
7183 * tree-complex.c: Likewise.
7184 * tree-data-ref.c: Likewise.
7185 * tree-dfa.c: Likewise.
7186 * tree-eh.c: Likewise.
7187 * tree-emutls.c: Likewise.
7188 * tree-if-conv.c: Likewise.
7189 * tree-inline.c: Likewise.
7190 * tree-into-ssa.c: Likewise.
7191 * tree-loop-distribution.c: Likewise.
7192 * tree-mudflap.c: Likewise.
7193 * tree-nested.c: Likewise.
7194 * tree-nrv.c: Likewise.
7195 * tree-object-size.c: Likewise.
7196 * tree-outof-ssa.c: Likewise.
7197 * tree-parloops.c: Likewise.
7198 * tree-phinodes.c: Likewise.
7199 * tree-predcom.c: Likewise.
7200 * tree-pretty-print.c: Likewise.
7201 * tree-profile.c: Likewise.
7202 * tree-scalar-evolution.c: Likewise.
7203 * tree-sra.c: Likewise.
7204 * tree-ssa-address.c: Likewise.
7205 * tree-ssa-alias.c: Likewise.
7206 * tree-ssa-ccp.c: Likewise.
7207 * tree-ssa-coalesce.c: Likewise.
7208 * tree-ssa-copy.c: Likewise.
7209 * tree-ssa-copyrename.c: Likewise.
7210 * tree-ssa-dce.c: Likewise.
7211 * tree-ssa-dom.c: Likewise.
7212 * tree-ssa-dse.c: Likewise.
7213 * tree-ssa-forwprop.c: Likewise.
7214 * tree-ssa-ifcombine.c: Likewise.
7215 * tree-ssa-live.c: Likewise.
7216 * tree-ssa-loop-ch.c: Likewise.
7217 * tree-ssa-loop-im.c: Likewise.
7218 * tree-ssa-loop-ivcanon.c: Likewise.
7219 * tree-ssa-loop-ivopts.c: Likewise.
7220 * tree-ssa-loop-manip.c: Likewise.
7221 * tree-ssa-loop-niter.c: Likewise.
7222 * tree-ssa-loop-prefetch.c: Likewise.
7223 * tree-ssa-loop-unswitch.c: Likewise.
7224 * tree-ssa-loop.c: Likewise.
7225 * tree-ssa-math-opts.c: Likewise.
7226 * tree-ssa-operands.c: Likewise.
7227 * tree-ssa-phiopt.c: Likewise.
7228 * tree-ssa-phiprop.c: Likewise.
7229 * tree-ssa-pre.c: Likewise.
7230 * tree-ssa-propagate.c: Likewise.
7231 * tree-ssa-reassoc.c: Likewise.
7232 * tree-ssa-sccvn.c: Likewise.
7233 * tree-ssa-sink.c: Likewise.
7234 * tree-ssa-strlen.c: Likewise.
7235 * tree-ssa-structalias.c: Likewise.
7236 * tree-ssa-tail-merge.c: Likewise.
7237 * tree-ssa-ter.c: Likewise.
7238 * tree-ssa-threadedge.c: Likewise.
7239 * tree-ssa-threadupdate.c: Likewise.
7240 * tree-ssa-uncprop.c: Likewise.
7241 * tree-ssa-uninit.c: Likewise.
7242 * tree-ssa.c: Likewise.
7243 * tree-ssanames.c: Likewise.
7244 * tree-stdarg.c: Likewise.
7245 * tree-streamer-in.c: Likewise.
7246 * tree-switch-conversion.c: Likewise.
7247 * tree-tailcall.c: Likewise.
7248 * tree-vect-data-refs.c: Likewise.
7249 * tree-vect-generic.c: Likewise.
7250 * tree-vect-loop-manip.c: Likewise.
7251 * tree-vect-loop.c: Likewise.
7252 * tree-vect-patterns.c: Likewise.
7253 * tree-vect-slp.c: Likewise.
7254 * tree-vect-stmts.c: Likewise.
7255 * tree-vectorizer.c: Likewise.
7256 * tree-vrp.c: Likewise.
7257 * tree.c: Likewise.
7258 * tsan.c: Likewise.
7259 * value-prof.c: Likewise.
7260 * var-tracking.c: Likewise.
7261 * varpool.c: Likewise.
7262 * vtable-verify.c: Likewise.
7263
7bc8b167 72642013-10-23 Jan-Benedict Glaw <jbglaw@lug-owl.de>
7265
7266 * config/tilegx/tilegx.c: Include "tree.h".
7267
64fd716d 72682013-10-23 Jakub Jelinek <jakub@redhat.com>
7269
7270 * gimple-pretty-print.c (dump_ssaname_info): Always print "# " before
7271 the info, not after it.
7272 (gump_gimple_phi): Add COMMENT argument, if true, print "# " after
7273 dump_ssaname_info call.
7274 (pp_gimple_stmt_1): Adjust caller.
7275 (dump_phi_nodes): Likewise. Don't print "# " here.
7276
9474a0c2 72772013-10-22 Jan Hubicka <jh@suse.cz>
7278
3c852bc9 7279 * i386.h (TARGET_MISALIGNED_MOVE_STRING_PROLOGUES_EPILOGUES): New
7280 tuning flag.
9474a0c2 7281 * x86-tune.def (TARGET_MISALIGNED_MOVE_STRING_PROLOGUES): Define it.
7282 * i386.c (expand_small_movmem_or_setmem): New function.
3c852bc9 7283 (expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): New
7284 function.
9474a0c2 7285 (alg_usable_p): Add support for value ranges; cleanup.
7286 (ix86_expand_set_or_movmem): Add support for misaligned moves.
7287
ea096d3d 72882013-10-22 Sterling Augustine <saugustine@google.com>
7289
7290 * doc/invoke.texi: Document -ggnu-pubnames.
7291 * common.opt: Add new option -ggnu-pubnames and modify -gpubnames
7292 logic.
7293 * dwarf2out.c: Include gdb/gdb-index.h.
7294 (DEBUG_PUBNAMES_SECTION, DEBUG_PUBTYPES_SECTION): Handle
7295 debug_generate_pub_sections.
7296 (is_java, output_pubtables, output_pubname): New functions.
7297 (include_pubname_in_output): Handle debug_generate_pub_sections at
7298 level 2.
7299 (size_of_pubnames): Use new local space_for_flags based on
7300 debug_generate_pub_sections.
7301 (output_pubnames): Unify pubnames and pubtypes output logic.
7302 Genericize comments. Call output_pubname.
7303 (dwarf2out_finish): Move logic to output_pubnames and call it.
7304
87f4db20 73052013-10-22 Uros Bizjak <ubizjak@gmail.com>
7306
7307 PR target/58779
7308 * config/i386/i386.c (put_condition_code) <case GTU, case LEU>:
7309 Remove CCCmode handling.
7310 <case LTU>: Return 'c' suffix for CCCmode.
7311 <case GEU>: Return 'nc' suffix for CCCmode.
7312 (ix86_cc_mode) <case GTU, case LEU>: Do not generate overflow checks.
7313 * config/i386/i386.md (*sub<mode>3_cconly_overflow): Remove.
7314 (*sub<mode>3_cc_overflow): Ditto.
7315 (*subsi3_zext_cc_overflow): Ditto.
7316
4e13b299 73172013-10-22 Steve Ellcey <sellcey@mips.com>
7318
7319 * config/mips/mips.c (mips_rtx_costs): Fix cost estimate for nor
7320 (AND (NOT OP1) (NOT OP2)).
7321
83fc6921 73222013-10-22 Bill Schmidt <wschmidt@vnet.ibm.com>
7323
7324 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
7325 meaning of merge-high and merge-low masks for little endian; avoid
7326 use of vector-pack masks for little endian for mismatched modes.
7327
bc3bf775 73282013-10-22 Jan-Benedict Glaw <jbglaw@lug-owl.de>
7329
7330 * config/tilepro/tilepro.c: Include "tree.h".
7331
910f39df 73322013-10-22 Andreas Schwab <schwab@suse.de>
7333
7334 * config/m68k/m68k.c (notice_update_cc): Handle register conflict
7335 with PRE_DEC.
7336
934fcf41 73372013-10-22 Paolo Carlini <paolo.carlini@oracle.com>
7338
7339 * doc/contrib.texi ([Fran@,{c}ois Dumont], [Tim Shen],
7340 [Ed Smith-Rowland]): New entries.
7341 ([Stephen M. Webb]): Update.
7342
61cf0455 73432013-10-22 Andrew MacLeod <amacleod@redhat.com>
7344
7345 * tree-ssa-ter.h: Remove duplicate copy of file contents.
7346
3a8ab6ab 73472013-10-21 Marek Polacek <polacek@redhat.com>
7348
7349 PR middle-end/58809
7350 * fold-const.c (fold_range_test): Return 0 if the type is not
7351 an integral type.
7352
473bcb8e 73532013-10-21 Richard Sandiford <rdsandiford@googlemail.com>
7354
7355 * system.h: Move hwint.h include further down.
7356 * hwint.h (sext_hwi, zext_hwi): Define unconditionally. Add
7357 gcc_checking_asserts.
7358 * hwint.c (sext_hwi, zext_hwi): Delete ENABLE_CHECKING versions.
7359
f363d578 73602013-10-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
7361
7362 Fix volatile issues in optimize_bit_field_compare.
7363 * fold-const.c (optimize_bit_field_compare): Bail out if
7364 lvolatilep or rvolatilep.
7365
7691c4ce 73662013-10-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
7367
7368 Fix DECL_BIT_FIELD depencency on flag_strict_volatile_bitfields
7369 and get_inner_reference returning different pmode for non-volatile
7370 bit-field members dependent on flag_strict_volatile_bitfields.
7371 * stor-layout.c (layout_decl): Remove special handling of
7372 flag_strict_volatile_bitfields.
7373 * expr.c (get_inner_reference): Don't use DECL_BIT_FIELD
7374 if flag_strict_volatile_bitfields > 0 and TREE_THIS_VOLATILE.
7375
3d51c482 73762013-10-21 Paulo Matos <pmatos@broadcom.com>
7377
7378 * ipa-inline.c (edge_badness): Cap edge->count at max_count for badness
7379 calculations.
7380
4bc0f16e 73812013-10-21 Jeff Law <law@redhat.com>
7382
934fcf41 7383 * tree-ssa-threadedge.c (thread_through_normal_block): New
7384 argument VISITED. Remove VISISTED as a local variable. When we
7385 have a threadable jump, verify the destination of the jump has not
7386 been visised.
7387 (thread_across_edge): Allocate VISITED bitmap once at function
7388 scope and use it throughout. Make sure to set appropriate bits in
7389 VISITED for E (start of jump thread path).
7390 * tree-ssa-threadupdate.c (mark_threaded_blocks): Reject threading
7391 through a joiner if any edge on the path has a recorded jump thread.
4bc0f16e 7392
cc0f431c 73932013-10-21 Ian Lance Taylor <iant@google.com>
7394
7395 * doc/invoke.texi (Optimize Options): For -fno-toplevel-reorder,
7396 don't imply that attributes can solve all problems.
7397 (Directory Options): Fix typo.
7398
5a5c3463 73992013-10-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7400
7401 * config/arm/arm.c (cortexa9_extra_costs): Update mult costs for
7402 extend and extend_add.
7403
6c9a67d3 74042013-10-21 Richard Biener <rguenther@suse.de>
7405
7406 PR tree-optimization/58794
7407 * fold-const.c (operand_equal_p): Compare FIELD_DECL operand
7408 of COMPONENT_REFs with OEP_CONSTANT_ADDRESS_OF left in place.
7409
fc8edbaa 74102013-10-21 Richard Biener <rguenther@suse.de>
7411
7412 PR middle-end/58742
7413 * fold-const.c (fold_binary_loc): Fold ((T) (X /[ex] C)) * C
7414 to (T) X for sign-changing conversions (or no conversion).
7415
4e3be725 74162013-10-20 Uros Bizjak <ubizjak@gmail.com>
7417
7418 * config/i386/i386.md (kxnor<mode>): Add FLAGS_REG clobber.
7419
616cbae7 74202013-10-20 Jan Hubicka <jh@suse.cz>
7421
7422 * config/i386/i386-tune.def: Add comment; organize into categories
7423
f6161257 74242013-10-21 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
7425
7426 * config/i386/i386.c (expand_set_or_movmem_via_loop): Add issetmem
7427 argument. Update function comment.
7428 (expand_set_or_movmem_via_rep): New function combining
7429 expand_movmem_via_rep_mov and expand_setmem_via_rep_stos.
7430 (expand_movmem_via_rep_mov): Remove.
7431 expand_setmem_via_rep_stos): Remove.
7432 (expand_movmem_epilogue): Update calls correspondingly.
7433 (expand_setmem_epilogue_via_loop): Likewise.
7434 (emit_memset): New.
7435 (expand_setmem_epilogue): Add VEC_VALUE argument, refactor.
7436 (expand_set_or_movmem_prologue): New function combining
7437 expand_movmem_prologue and expand_setmem_prologue.
7438 (expand_movmem_prologue): Remove.
7439 (expand_setmem_prologue): Remove.
7440 (expand_set_or_movmem_constant_prologue): New function combining
7441 expand_constant_movmem_prologue and expand_constant_setmem_prologue.
7442 (expand_constant_movmem_prologue): Remove.
7443 (expand_constant_setmem_prologue): Remove.
7444 (promote_duplicated_reg): Allow vector-const0 value.
7445 (ix86_expand_set_or_movmem): New function combining ix86_expand_movmem
7446 and ix86_expand_setmem.
7447 (ix86_expand_movmem): Call ix86_expand_set_or_movmem.
7448 (ix86_expand_setmem): Call ix86_expand_set_or_movmem.
7449
41a8aa41 74502013-10-21 Diego Novillo <dnovillo@google.com>
7451
7452 * asan.c: Include tree.h
7453 * bb-reorder.c: Likewise.
7454 * cfgcleanup.c: Likewise.
7455 * cfgloopmanip.c: Likewise.
7456 * data-streamer-in.c: Likewise.
7457 * data-streamer-out.c: Likewise.
7458 * data-streamer.c: Likewise.
7459 * dwarf2cfi.c: Likewise.
7460 * graphite-blocking.c: Likewise.
7461 * graphite-clast-to-gimple.c: Likewise.
7462 * graphite-dependences.c: Likewise.
7463 * graphite-interchange.c: Likewise.
7464 * graphite-optimize-isl.c: Likewise.
7465 * graphite-poly.c: Likewise.
7466 * graphite-scop-detection.c: Likewise.
7467 * graphite-sese-to-poly.c: Likewise.
7468 * graphite.c: Likewise.
7469 * ipa-devirt.c: Likewise.
7470 * ipa-profile.c: Likewise.
7471 * ipa.c: Likewise.
7472 * ira.c: Likewise.
7473 * loop-init.c: Likewise.
7474 * loop-unroll.c: Likewise.
7475 * lower-subreg.c: Likewise.
7476 * lto/lto-object.c: Likewise.
7477 * recog.c: Likewise.
7478 * reginfo.c: Likewise.
7479 * tree-loop-distribution.c: Likewise.
7480 * tree-parloops.c: Likewise.
7481 * tree-ssa-strlen.c: Likewise.
7482 * tree-streamer.c: Likewise.
7483 * value-prof.c: Likewise.
7484 * target-globals.c: Likewise.
7485 * expr.h: Include tree-core.h instead of tree.h.
7486 * gimple.h: Likewise.
7487 * ipa-prop.h: Likewise.
7488 * ipa-utils.h: Likewise.
7489 * lto-streamer.h: Likewise.
7490 * streamer-hooks.h: Likewise.
7491 * ipa-reference.h: Include cgraph.h instead of tree.h.
7492 * cgraph.h: Include basic-block.h instead of tree.h.
7493 * tree-streamer.h: Do not include tree.h.
5037630b 7494 * genattrtab.c (write_header): Generate inclusion of tree.h.
41a8aa41 7495 * genautomata.c (main): Likewise.
7496 * genemit.c: Likewise.
7497 * genopinit.c: Likewise.
7498 * genoutput.c (output_prologue): Likewise.
7499 * genpeep.c: Likewise.
7500
fc1ce0cf 75012013-10-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7502
7503 * config/rs6000/altivec.md (vec_unpacku_hi_v16qi): Adjust for
7504 little endian.
7505 (vec_unpacku_hi_v8hi): Likewise.
7506 (vec_unpacku_lo_v16qi): Likewise.
7507 (vec_unpacku_lo_v8hi): Likewise.
7508
051bc25e 75092013-10-20 Jan Hubicka <jh@suse.cz>
7510
7511 * config/i386/x86-tune.def (X86_TUNE_SLOW_IMUL_IMM32_MEM,
7512 X86_TUNE_SLOW_IMUL_IMM8): Keep enabled only for K8 and AMDFAM10.
7513 (X86_TUNE_USE_VECTOR_FP_CONVERTS): Disable for generic.
7514
a5ca8551 75152013-10-20 Richard Sandiford <rdsandiford@googlemail.com>
7516
7517 * config/mips/mips.h (ISA_HAS_WSBH): Define.
7518 * config/mips/mips.md (UNSPEC_WSBH, UNSPEC_DSBH, UNSPEC_DSHD): New
7519 constants.
7520 (bswaphi2, bswapsi2, bswapdi2, wsbh, dsbh, dshd): New patterns.
7521
1c18bc79 75222013-10-19 John David Anglin <danglin@gcc.gnu.org>
7523
7524 PR target/58603
7525 * system.h: Undef m_slot.
7526
75023973 75272013-10-19 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7528
7529 * config/rs6000/rs6000.c (vspltis_constant): Make sure we check
7530 all elements for both endian flavors.
7531
5ab3e60a 75322013-10-19 Uros Bizjak <ubizjak@gmail.com>
7533
7534 PR target/58792
7535 * config/i386/i386.c (ix86_function_value_regno): Add DX_REG,
7536 ST1_REG and XMM1_REG for 32bit and 64bit targets. Also add DI_REG
7537 and SI_REG for 64bit SYSV ABI targets.
7538
c9c236e7 75392013-10-19 Uros Bizjak <ubizjak@gmail.com>
7540
7541 * mode-switching.c (create_pre_exit): Rename maybe_builtin_apply
7542 to multi_reg_return. Clarify that we are skipping USEs of multiple
7543 return registers. Use bool type where appropriate.
7544
0c2279d7 75452013-10-18 Jan Hubicka <jh@suse.cz>
7546
7547 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Disable accumulation
7548 for cold functions.
7549 * x86-tune.def (X86_TUNE_USE_LEAVE): Update comment.
7550 (X86_TUNE_PUSH_MEMORY): Likewise.
7551 (X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL,
7552 X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL): New.
c9c236e7 7553 (X86_TUNE_ACCUMULATE_OUTGOING_ARGS, X86_TUNE_ALWAYS_FANCY_MATH_387):
7554 New.
0c2279d7 7555 * i386.c (x86_accumulate_outgoing_args, x86_arch_always_fancy_math_387,
7556 x86_avx256_split_unaligned_load, x86_avx256_split_unaligned_store):
7557 Remove.
7558 (ix86_option_override_internal): Update to use tune features instead
7559 of variables.
7560
c7b85126 75612013-10-18 Cong Hou <congh@google.com>
7562
7563 PR tree-optimization/58508
7564 * tree-vect-loop-manip.c (vect_loop_versioning): Hoist loop invariant
7565 statement that contains data refs with zero-step.
7566
424a4a92 75672013-10-18 Andrew MacLeod <amacleod@redhat.com>
7568
c9c236e7 7569 * tree-ssa.h: Don't include gimple-low.h, tree-ssa-address.h,
7570 sbitmap.h, tree-ssa-threadedge.h, tree-ssa-dom.h and tree-cfgcleanup.h.
424a4a92 7571 * gimple-low.c (gimple_check_call_arg,
7572 gimple_check_call_matching_types): Move to cgraph.c.
7573 * gimple-low.h: Remove prototype.
7574 * cgraph.c: (gimple_check_call_arg, gimple_check_call_matching_types):
7575 Relocate from gimple-low.c.
7576 * cgraph.h: Add prototype. Don't include basic-block.h.
7577 * gimplify.c: Add gimple-low to include list.
7578 * omp-low.c: Add gimple-low and tree-cfgcleanup.h to include list.
7579 * tree-eh.c: Add gimple-low to include list.
7580 * tree-nested.c: Likewise.
7581 * cfgexpand.c: Add tree-ssa-address.h to include list.
7582 * expr.c: Likewise.
7583 * gimple-fold.c: Likewise.
7584 * gimple-ssa-strength-reduction.c: Likewise.
7585 * trans-mem.c: Likewise.
7586 * tree-mudflap.c: Likewise.
7587 * tree-ssa-loop-ivopts.c: Likewise.
7588 * tree-ssa-dom.c: Include tree-ssa-threadedge.h and tree-ssa-dom.h.
7589 (degenerate_phi_result): Move to tree-phinodes.c.
7590 * tree-ssa-loop-ch.c: Include tree-ssa-threadedge.h.
7591 * tree-ssa-threadedge.c: Likewise.
7592 * tree-vrp.c: Likewise.
7593 * tree-phinodes.c (degenerate_phi_result): Relocate here.
7594 * tree-ssa-dom.h (degenerate_phi_result): Remove Prototype.
7595 * tree-phinodes.h (degenerate_phi_result): Add prototype.
7596 * tree-ssa-copy.c: Include tree-ssa-dom.h.
7597 * tree-ssa-forwprop.c: Likewise.
7598 * tree-cfgcleanup.c (execute_cleanup_cfg_post_optimizing,
7599 pass_data_cleanup_cfg_post_optimizing,
7600 make_pass_cleanup_cfg_post_optimizing): Relocate from tree-optimize.c.
7601 * tree-optimize.c: Delete File.
7602 * graphite.c: Include tree-cfgcleanup.h.
7603 * passes.c: Likewise.
7604 * tree-cfg.c: Likewise.
7605 * tree-profile.c: Likewise.
7606 * tree-ssa-dse.c: Likewise.
7607 * tree-ssa-loop-ivcanon.c: Likewise.
7608 * tree-switch-conversion.c: Don't include tree-ssa-operands.h.
7609 * tree-outof-ssa.c: Include sbitmap.h.
7610 * tree-ssa-live.c: Likewise.
7611 * tree-ssa-propagate.c: Likewise.
7612 * tree-ssa-structalias.c: Likewise.
7613 * tree-stdarg.c: Likewise.
7614 * Makefile.in (OBJS): Delete tree-optimize.o.
7615 * basic-block.h (gcov_type, gcov_type_unsigned): Move to coretypes.h.
7616 * coretypes.h (gcov_type, gcov_type_unsigned): Relocate here.
7617 * varasm.c: Include basic-block.h.
7618 * cfgloop.h: Include function.h instead of basic-block.h
7619 (bb_loop_depth): Move to cfgloop.c.
7620 * cfgloop.c (bb_loop_depth): Relocate from cfgloop.h.
7621
c1acf60c 76222013-10-18 Teresa Johnson <tejohnson@google.com>
7623
7624 * predict.c (probably_never_executed): Compare frequency-based
7625 count to number of training runs.
7626 * params.def (UNLIKELY_BB_COUNT_FRACTION): New parameter.
7627
f2f653da 76282013-10-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7629
7630 * config/arm/arm.c (cortexa9_extra_costs): New table.
7631 (arm_cortex_a9_tune): Use cortexa9_extra_costs.
7632
a3724f9d 76332013-10-18 Jeff Law <law@redhat.com>
7634
7635 * tree-ssa-threadupdate.c: Do not include "tm.h" or "tm_p.h".
7636
7637 * tree-ssa-threadupdate.c: Include "dbgcnt.h".
c9c236e7 7638 (register_jump_thread): Add "registered_jump_thread" debug
7639 counter support.
a3724f9d 7640 * dbgcnt.def (registered_jump_thread): New debug counter.
7641
6f4315a4 76422013-10-18 Andrew MacLeod <amacleod@redhat.com>
7643
7644 * config/rs6000/rs6000.c: Include cgraph.h.
7645
bc4d077b 76462013-10-18 Teresa Johnson <tejohnson@google.com>
7647
7648 * tree-ssa-tail-merge.c (replace_block_by): Update edge
7649 weights during merging.
7650
dd9784d4 76512013-10-18 Andrew MacLeod <amacleod@redhat.com>
7652
7653 * tree-cfg.h: Rename from tree-flow.h. Remove #includes.
7654 * tree-ssa.h: Relocate required #includes from tree-cfg.h.
7655 * tree-ssa-operands.h: Remove prototype.
7656 * tree-ssa-operands.c (virtual_operand_p): Move to gimple.c.
7657 * gimple.c (virtual_operand_p): Relocate from gimple.c.
7658 * gimple.h: Add prototype.
7659 * gimple-ssa.h: Include tree-ssa-operands.h.
7660 * tree-dump.c: Add tree-cfg.h to include list.
7661 * tree-ssa-alias.c: Add ipa-reference.h to include list.
7662 * config/alpha/alpha.c: Include gimple-ssa.h instead of tree-flow.h.
7663 * config/i386/i386.c: Don't include tree-flow.h.
7664 * config/rs6000/rs6000.c: Likewise.
7665
72772bfd 76662013-10-18 Jan-Benedict Glaw <jbglaw@lug-owl.de>
7667
7668 * config/frv/frv.c (frv_init_cumulative_args): Fix wrong cast.
7669
0e3dfadd 76702013-10-18 Richard Biener <rguenther@suse.de>
7671
7672 * stor-layout.c (layout_type): Do not change TYPE_PRECISION
7673 or TYPE_UNSIGNED of integral types.
7674 (set_min_and_max_values_for_integral_type): Leave TYPE_MIN/MAX_VALUE
7675 NULL_TREE for zero-precision integral types.
7676
5d1f14a8 76772013-10-18 James Greenhalgh <james.greenhalgh@arm.com>
7678
7679 * config/aarch64/arm_neon.h
7680 (vcvt<ds>_n_<fsu><32,64>_<fsu><32,64>): Correct argument types.
7681
a702fa95 76822013-10-17 Sriraman Tallam <tmsriram@google.com>
7683
341d5690 7684 PR target/57756
a702fa95 7685 * opth-gen.awk: Define target_flags_explicit.
7686
4e760621 76872013-10-17 Michael Meissner <meissner@linux.vnet.ibm.com>
e39c2b3b 7688
7689 * config/rs6000/rs6000.c (enum rs6000_reload_reg_type): Add new
7690 fields to the reg_addr array that describes the valid addressing
7691 mode for any register, general purpose registers, floating point
7692 registers, and Altivec registers.
7693 (FIRST_RELOAD_REG_CLASS): Likewise.
7694 (LAST_RELOAD_REG_CLASS): Likewise.
7695 (struct reload_reg_map_type): Likewise.
7696 (reload_reg_map_type): Likewise.
7697 (RELOAD_REG_VALID): Likewise.
7698 (RELOAD_REG_MULTIPLE): Likewise.
7699 (RELOAD_REG_INDEXED): Likewise.
7700 (RELOAD_REG_OFFSET): Likewise.
7701 (RELOAD_REG_PRE_INCDEC): Likewise.
7702 (RELOAD_REG_PRE_MODIFY): Likewise.
7703 (reg_addr): Likewise.
7704 (mode_supports_pre_incdec_p): New helper functions to say whether
7705 a given mode supports PRE_INC, PRE_DEC, and PRE_MODIFY.
7706 (mode_supports_pre_modify_p): Likewise.
7707 (rs6000_debug_vector_unit): Rearrange the -mdebug=reg output to
7708 print the valid address mode bits for each mode.
7709 (rs6000_debug_print_mode): Likewise.
7710 (rs6000_debug_reg_global): Likewise.
7711 (rs6000_setup_reg_addr_masks): New function to set up the address
7712 mask bits for each type.
7713 (rs6000_init_hard_regno_mode_ok): Use memset to clear arrays.
7714 Call rs6000_setup_reg_addr_masks to set up the address mask bits.
7715 (rs6000_legitimate_address_p): Use mode_supports_pre_incdec_p and
7716 mode_supports_pre_modify_p to determine if PRE_INC, PRE_DEC, and
7717 PRE_MODIFY are supported.
4e760621 7718 (rs6000_output_move_128bit): Change to use {src,dest}_vmx_p for altivec
7719 registers, instead of {src,dest}_av_p.
e39c2b3b 7720 (rs6000_print_options_internal): Tweak the debug output slightly.
7721
66e3f7be 77222013-10-17 Uros Bizjak <ubizjak@gmail.com>
7723
7724 * config/i386/sse.md (*vec_widen_smult_even_v8si): Remove
7725 isa attribute.
7726
7740abd8 77272013-10-17 Andrew MacLeod <amacleod@redhat.com>
7728
7729 * tree-flow.h (struct omp_region): Move to omp-low.c.
7730 Remove omp_ prototypes and variables.
7731 * gimple.h (omp_reduction_init): Move prototype to omp-low.h.
7732 (copy_var_decl): Relocate prototype from tree-flow.h.
7733 * gimple.c (copy_var_decl): Relocate from omp-low.c.
7734 * tree.h: Move prototype to omp-low.h.
7735 * omp-low.h: New File. Relocate prototypes here.
7736 * omp-low.c (struct omp_region): Make local here.
7737 (root_omp_region): Make static.
7738 (copy_var_decl) Move to gimple.c.
7739 (new_omp_region): Make static.
7740 (make_gimple_omp_edges): New. Refactored from tree-cfg.c make_edges.
7741 * tree-cfg.c: Include omp-low.h.
7742 (make_edges): Factor out OMP specific bits to make_gimple_omp_edges.
7743 * gimplify.c: Include omp-low.h.
7744 * tree-parloops.c: Likewise.
7745
a64e2419 77462013-10-17 Uros Bizjak <ubizjak@gmail.com>
7747
7748 * config/i386/i386.c (ix86_fixup_binary_operands): When both source
7749 operands are in memory, prefer to force non-matched operand 1 to
7750 the register.
7751
8fb6f374 77522013-10-17 Michael Meissner <meissner@linux.vnet.ibm.com>
7753
7754 PR target/58673
7755 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Only
7756 restrict TImode addresses to single indirect registers if both
7757 -mquad-memory and -mvsx-timode are used.
7758 (rs6000_output_move_128bit): Use quad_load_store_p to determine if
7759 we should emit load/store quad. Remove using %y for quad memory
7760 addresses.
7761
7762 * config/rs6000/rs6000.md (mov<mode>_ppc64, TI/PTImode): Add
7763 constraints to allow load/store quad on machines where TImode is
7764 not allowed in VSX registers. Use 'n' instead of 'F' constraint
7765 for TImode to load integer constants.
7766
e0aaea4d 77672013-10-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7768
7769 * config/aarch64/aarch64.c (aarch64_print_operand): Handle 'c'.
7770
e57c0318 77712013-10-17 Marcus Shawcroft <marcus.shawcroft@arm.com>
7772
7773 * config/aarch64/aarch64.c (aarch64_preferred_reload_class): Adjust
7774 handling of STACK_REG.
7775
bc228ba1 77762013-10-17 Richard Biener <rguenther@suse.de>
7777
7778 PR tree-optimization/58143
7779 * tree-ssa-loop-im.c (arith_code_with_undefined_signed_overflow):
7780 New function.
7781 (rewrite_to_defined_overflow): Likewise.
7782 (move_computations_dom_walker::before_dom): Rewrite stmts
7783 with undefined signed overflow that are not always executed
7784 into unsigned arithmetic.
7785
7511df0c 77862013-10-16 Michael Meissner <meissner@linux.vnet.ibm.com>
7787
7788 PR target/57756
7789 * config/rs6000/rs6000.opt (rs6000_isa_flags_explicit): Move the
7790 explicit isa flag to be an options variable, instead of using
7791 global_options_set. Remove define from rs6000.h.
7792 * config/rs6000/rs6000.h (rs6000_isa_flags_explicit): Likewise.
7793
7794 * config/rs6000/rs6000.c (rs6000_option_override_internal):
7795 Initialize rs6000_isa_flags_explicit.
7796 (rs6000_function_specific_save): Add gcc_options* parameter, so
7797 that the powerpc builds after the 2013-10-15 changes.
7798 (rs6000_function_specific_restore): Likewise.
7799
7f210f10 78002013-10-16 DJ Delorie <dj@redhat.com>
7801
7802 * config/rl78/rl78.c (rl78_alloc_address_registers_macax): Verify
7803 op is a REG before checking REGNO.
7804 (rl78_alloc_physical_registers): Verify pattern is a SET before
7805 checking SET_SRC.
7806
7180729e 78072013-10-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7808
57a3d097 7809 * config/rs6000/vector.md (vec_unpacks_hi_v4sf): Correct for
7180729e 7810 endianness.
7811 (vec_unpacks_lo_v4sf): Likewise.
7812 (vec_unpacks_float_hi_v4si): Likewise.
7813 (vec_unpacks_float_lo_v4si): Likewise.
7814 (vec_unpacku_float_hi_v4si): Likewise.
7815 (vec_unpacku_float_lo_v4si): Likewise.
7816
41d9f8be 78172013-10-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7818
7819 * config/rs6000/vsx.md (vsx_concat_<mode>): Adjust output for LE.
7820 (vsx_concat_v2sf): Likewise.
7821
09afbc98 78222013-10-16 James Greenhalgh <james.greenhalgh@arm.com>
7823
7824 * config/aarch64/aarch64.md
7825 (*mov<mode>_aarch64): Fix output template for DUP (element) Scalar.
7826
4e948f5a 78272013-10-16 Andrew MacLeod <amacleod@redhat.com>
3f885d75 7828
4e948f5a 7829 PR tree-optimization/58697
3f885d75 7830 * cfgloop.c (get_estimated_loop_iterations_int): Rename from
4e948f5a 7831 estimated_loop_iterations_int.
7832 (max_stmt_executions_int): Call get_max_loop_iterations_int.
3f885d75 7833 (get_max_loop_iterations_int): New. HWINT version of
4e948f5a 7834 get_max_loop_iterations.
7835 * cfgloop.h: Add prototypes.
7836 * loop-iv.c (find_simple_exit): call get_estimated_loop_iterations_int.
3f885d75 7837 * loop-unroll.c (decide_peel_once_rolling): Call
4e948f5a 7838 get_estimated_loop_iterations_int.
7839 * tree-ssa-loop-niter.c (estimated_loop_iterations_int): Add back.
7840 * tree-ssa-loop-niter.h: Tweak prototypes.
7841
3308cb8b 78422013-10-16 David Malcolm <dmalcolm@redhat.com>
7843
7844 * gengtype-parse.c (struct_field_seq): Ignore access-control
7845 keywords ("public:" etc).
7846
11e0f6d7 78472013-10-16 Marcus Shawcroft <marcus.shawcroft@arm.com>
7848
7849 * config/aarch64/aarch64.c (aarch64_regno_regclass): Classify
7850 FRAME_POINTER_REGNUM and ARG_POINTER_REGNUM as POINTER_REGS.
7851
7034ab14 78522013-10-16 Yvan Roux <yvan.roux@linaro.org>
7853
7854 * config/arm/arm.opt (mlra): New option.
7855 * config/arm/arm.c (arm_lra_p): New function.
7856 (TARGET_LRA_P): Define.
7857
f3d35d4d 78582013-10-16 Paulo Matos <pmatos@broadcom.com>
7859
7860 * tree-core.h (tree_code_name): Remove.
7861 * tree.h (get_tree_code_name): New prototype.
7862 * tree.c (tree_code_name): Make static.
7863 (get_tree_code_name): New function.
7864 (dump_tree_statistics, tree_check_failed, tree_not_check_failed,
7865 tree_class_check_failed, tree_range_check_failed,
7866 tree_not_class_check_failed, omp_clause_check_failed,
7867 tree_contains_struct_check_failed, tree_operand_check_failed): Use new
7868 wrapper get_tree_code_name instead of calling tree_code_name directly.
7869 * tree-vrp.c (dump_asserts_for): Likewise.
7870 * tree-dump.c (dequeue_and_dump): Likewise.
7871 * tree-pretty-print.c (do_niy, dump_generic_node): Likewise.
7872 * tree-pretty-print.h (pp_unsupported_tree): Likewise.
7873 * lto-streamer-out.c (lto_write_tree, DFS_write_tree): Likewise.
7874 * tree-ssa-dom.c (print_expr_hash_elt): Likewise.
7875 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs,
7876 dump_ternary_rhs, dump_gimple_assign, dump_gimple_cond,
7877 dump_gimple_omp_for): Likewise.
7878 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Likewise.
7879 * tree-ssa-pre.c (print_pre_expr): Likewise.
7880 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Likewise.
7881 * print-tree.c (print_node_brief, print_node): Likewise.
7882 * gimple.c (gimple_check_failed): Likewise.
7883 * lto-streamer.c (lto_tag_name, print_lto_report): Likewise.
7884 * config/frv/frv.c (frv_init_cumulative_args): Likewise.
7885 * config/mep/mep.c (mep_validate_vliw): Likewise.
7886 * config/iq2000/iq2000.c (init_cumulative_args): Likewise.
7887 * config/rs6000/rs6000.c (init_cumulative_args): Likewise.
7888
548e3bb3 78892013-10-16 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
7890
7891 * config/i386/i386.c (ix86_option_override_internal): Enable FMA4
7892 for AMD bdver3.
7893
ddf223b8 78942013-10-16 Hans-Peter Nilsson <hp@axis.com>
7895
7896 * config/cris/t-elfmulti (MULTILIB_OPTIONS, MULTILIB_DIRNAMES)
7897 (MULTILIB_MATCHES): Add multilib for -march=v8.
7898
55310327 78992013-10-15 Sriraman Tallam <tmsriram@google.com>
7900
7901 PR target/57756
7902 * optc-save-gen.awk: Add extra parameter to the save and restore
7903 target calls.
7904 * opth-gen.awk: Generate new TARGET_* macros to accept a parameter.
7905 * tree.c (build_optimization_node): New parameter. Add extra parameter
7906 to call to cl_optimization_save.
7907 (build_target_option_node): New parameter. Add extra parameter
7908 to call to cl_target_option_save.
7909 * tree.h (build_optimization_node): New parameter.
7910 (build_target_option_node): New parameter.
7911 * c-family/c-common.c (handle_optimize_attribute): Fix calls to
7912 build_optimization_node and build_target_option_node.
7913 * c-family/c-pragma.c (handle_pragma_optimize): Ditto.
7914 (handle_pragma_push_options): Ditto.
7915 * toplev.c (process_options): Ditto.
7916 * opts.c (init_options_struct): Check for opts_set non-null.
7917 * target.def (target_option.save): New parameter.
7918 (target_option.restore): New parameter.
7919 * tm.texi: Generate.
7920 * config/i386/i386-c.c (ix86_target_macros_internal): Ditto.
7921 (ix86_pragma_target_parse): Ditto.
7922 * config/i386/i386-protos.h (ix86_valid_target_attribute_tree): New
7923 parameters.
7924 * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix calls
7925 to build_optimization_node and build_target_option_node.
7926 (rs6000_valid_attribute_p): Ditto.
7927 (rs6000_pragma_target_parse): Ditto.
7928 * config/i386/i386.opt (x_ix86_target_flags_explicit): New TargetSave
7929 data.
7930 * config/i386/i386.h:
7931 TARGET_64BIT_P: New Macro
7932 TARGET_MMX_P: New Macro.
7933 TARGET_3DNOW_P: New Macro.
7934 TARGET_3DNOW_A_P: New Macro.
7935 TARGET_SSE_P: New Macro.
7936 TARGET_SSE2_P: New Macro.
7937 TARGET_SSE3_P: New Macro.
7938 TARGET_SSSE3_P: New Macro.
7939 TARGET_SSE4_1_P: New Macro.
7940 TARGET_SSE4_2_P: New Macro.
7941 TARGET_AVX_P: New Macro.
7942 TARGET_AVX2_P: New Macro.
7943 TARGET_AVX512F_P: New Macro.
7944 TARGET_AVX512PF_P: New Macro.
7945 TARGET_AVX512ER_P: New Macro.
7946 TARGET_AVX512CD_P: New Macro.
7947 TARGET_FMA_P: New Macro.
7948 TARGET_SSE4A_P: New Macro.
7949 TARGET_FMA4_P: New Macro.
7950 TARGET_XOP_P: New Macro.
7951 TARGET_LWP_P: New Macro.
7952 TARGET_ABM_P: New Macro.
7953 TARGET_BMI_P: New Macro.
7954 TARGET_BMI2_P: New Macro.
7955 TARGET_LZCNT_P: New Macro.
7956 TARGET_TBM_P: New Macro.
7957 TARGET_POPCNT_P: New Macro.
7958 TARGET_SAHF_P: New Macro.
7959 TARGET_MOVBE_P: New Macro.
7960 TARGET_CRC32_P: New Macro.
7961 TARGET_AES_P: New Macro.
7962 TARGET_PCLMUL_P: New Macro.
7963 TARGET_CMPXCHG16B_P: New Macro.
7964 TARGET_FSGSBASE_P: New Macro.
7965 TARGET_RDRND_P: New Macro.
7966 TARGET_F16C_P: New Macro.
7967 TARGET_RTM_P: New Macro.
7968 TARGET_HLE_P: New Macro.
7969 TARGET_RDSEED_P: New Macro.
7970 TARGET_PRFCHW_P: New Macro.
7971 TARGET_ADX_P: New Macro.
7972 TARGET_FXSR_P: New Macro.
7973 TARGET_XSAVE_P: New Macro.
7974 TARGET_XSAVEOPT_P: New Macro.
7975 TARGET_LP64_P: New Macro.
7976 TARGET_X32_P: New Macro.
7977 TARGET_FPMATH_DEFAULT_P: New Macro.
7978 TARGET_FLOAT_RETURNS_IN_80387_P: New Macro.
7979 * config/i386/i386.c (ix86_option_override_internal): New parameters.
7980 opts and opts_set.
7981 Change ix86_tune_string to access opts->x_ix86_tune_string.
7982 Change ix86_isa_flags to access opts->x_ix86_isa_flags.
7983 Change ix86_arch_string to access opts->x_ix86_arch_string.
7984 Change ix86_stringop_alg to access opts->x_ix86_stringop_alg.
7985 Change ix86_pmode to access opts->x_ix86_pmode.
7986 Change ix86_abi to access opts->x_ix86_abi.
7987 Change ix86_cmodel to access opts->x_ix86_cmodel.
7988 Change ix86_asm_dialect to access opts->x_ix86_asm_dialect.
7989 Change ix86_isa_flags_explicit to access
7990 opts->x_ix86_isa_flags_explicit.
7991 Change ix86_dump_tunes to access opts->x_ix86_dump_tunes.
7992 Change ix86_regparm to access opts->x_ix86_regparm.
7993 Change ix86_branch_cost to access opts->x_ix86_branch_cost.
7994 Change ix86_preferred_stack_boundary_arg to access
7995 opts->x_ix86_preferred_stack_boundary_arg.
7996 Change ix86_force_align_arg_pointer to access
7997 opts->x_ix86_force_align_arg_pointer.
7998 Change ix86_incoming_stack_boundar_arg to access
7999 opts->x_ix86_incoming_stack_boundar_arg.
8000 Change ix86_fpmath to access opts->x_ix86_fpmath.
8001 Change ix86_veclibabi_type to access opts->x_ix86_veclibabi_type.
8002 Change ix86_recip_name to access opts->x_ix86_recip_name.
8003 Change ix86_stack_protector_guard to access
8004 opts->x_ix86_stack_protector_guard.
8005 Change ix86_tune_memcpy_strategy to access
8006 opts->x_ix86_tune_memcpy_strategy.
8007 Change ix86_tune_memset_strategy to access
8008 opts->x_ix86_tune_memset_strategy.
8009 Change global_options to access opts.
8010 Change global_options_set to access opts_set.
a64e2419 8011 Change TARGET_64BIT to TARGET_64BIT_P (opts->...).
8012 Change TARGET_MMX to TARGET_MMX_P (opts->...).
8013 Change TARGET_3DNOW to TARGET_3DNOW_P (opts->...).
8014 Change TARGET_3DNOW_A to TARGET_3DNOW_A_P (opts->...).
8015 Change TARGET_SSE to TARGET_SSE_P (opts->...).
8016 Change TARGET_SSE2 to TARGET_SSE2_P (opts->...).
8017 Change TARGET_SSE3 to TARGET_SSE3_P (opts->...).
8018 Change TARGET_SSSE3 to TARGET_SSSE3_P (opts->...).
8019 Change TARGET_SSE4_1 to TARGET_SSE4_1_P (opts->...).
8020 Change TARGET_SSE4_2 to TARGET_SSE4_2_P (opts->...).
8021 Change TARGET_AVX to TARGET_AVX_P (opts->...).
8022 Change TARGET_AVX2 to TARGET_AVX2_P (opts->...).
8023 Change TARGET_AVX512F to TARGET_AVX512F_P (opts->...).
8024 Change TARGET_AVX512PF to TARGET_AVX512PF_P (opts->...).
8025 Change TARGET_AVX512ER to TARGET_AVX512ER_P (opts->...).
8026 Change TARGET_AVX512CD to TARGET_AVX512CD_P (opts->...).
8027 Change TARGET_FMA to TARGET_FMA_P (opts->...).
8028 Change TARGET_SSE4A to TARGET_SSE4A_P (opts->...).
8029 Change TARGET_FMA4 to TARGET_FMA4_P (opts->...).
8030 Change TARGET_XOP to TARGET_XOP_P (opts->...).
8031 Change TARGET_LWP to TARGET_LWP_P (opts->...).
8032 Change TARGET_ABM to TARGET_ABM_P (opts->...).
8033 Change TARGET_BMI to TARGET_BMI_P (opts->...).
8034 Change TARGET_BMI2 to TARGET_BMI2_P (opts->...).
8035 Change TARGET_LZCNT to TARGET_LZCNT_P (opts->...).
8036 Change TARGET_TBM to TARGET_TBM_P (opts->...).
8037 Change TARGET_POPCNT to TARGET_POPCNT_P (opts->...).
8038 Change TARGET_SAHF to TARGET_SAHF_P (opts->...).
8039 Change TARGET_MOVBE to TARGET_MOVBE_P (opts->...).
8040 Change TARGET_CRC32 to TARGET_CRC32_P (opts->...).
8041 Change TARGET_AES to TARGET_AES_P (opts->...).
8042 Change TARGET_PCLMUL to TARGET_PCLMUL_P (opts->...).
8043 Change TARGET_CMPXCHG16B to TARGET_CMPXCHG16B_P (opts->...).
8044 Change TARGET_FSGSBASE to TARGET_FSGSBASE_P (opts->...).
8045 Change TARGET_RDRND to TARGET_RDRND_P (opts->...).
8046 Change TARGET_F16C to TARGET_F16C_P (opts->...).
8047 Change TARGET_RTM to TARGET_RTM_P (opts->...).
8048 Change TARGET_HLE to TARGET_HLE_P (opts->...).
8049 Change TARGET_RDSEED to TARGET_RDSEED_P (opts->...).
8050 Change TARGET_PRFCHW to TARGET_PRFCHW_P (opts->...).
8051 Change TARGET_ADX to TARGET_ADX_P (opts->...).
8052 Change TARGET_FXSR to TARGET_FXSR_P (opts->...).
8053 Change TARGET_XSAVE to TARGET_XSAVE_P (opts->...).
8054 Change TARGET_XSAVEOPT to TARGET_XSAVEOPT_P (opts->...).
8055 Change TARGET_LP64 to TARGET_LP64_P (opts->...).
8056 Change TARGET_X32 to TARGET_X32_P (opts->...).
8057 Change TARGET_FPMATH_DEFAULT to TARGET_FPMATH_DEFAULT_P (opts->...).
8058 Change TARGET_FLOAT_RETURNS_IN_80387 to
8059 TARGET_FLOAT_RETURNS_IN_80387_P (opts->...).
55310327 8060 (ix86_function_specific_save): New parameter. Use opts-> fields
8061 to replace global fields.
8062 (ix86_function_specific_restore): Ditto.
8063 (ix86_valid_target_attribute_inner_p): New parameters.
8064 Fix recursive call.
8065 Fix call to ix86_handle_option and set_option.
8066 (ix86_valid_target_attribute_tree): New parameters.
8067 Change global_options to access opts.
8068 Change global_options_set to access opts_set.
8069 Fix call to ix86_valid_target_attribute_inner_p.
8070 Change ix86_tune_string to access opts->x_ix86_tune_string.
8071 Change ix86_arch_string to access opts->x_ix86_arch_string.
8072 Change ix86_fpmath to access opts->x_ix86_fpmath
8073 Fix call to ix86_option_override_internal.
8074 Fix call to ix86_add_new_builtins.
8075 Fix calls to build_optimization_node and build_target_option_node.
8076 (ix86_valid_target_attribute_p): Remove access to global_options.
8077 Use new gcc_options structure func_options.
8078 Fix call to ix86_valid_target_attribute_tree.
8079 Fix call to build_optimization_node.
8080 (get_builtin_code_for_version): Fix call to
8081 ix86_valid_target_attribute_tree.
8082
2bd17377 80832013-10-15 David Malcolm <dmalcolm@redhat.com>
8084
8085 * Makefile.in (PICFLAG): New.
8086 (enable_host_shared): New.
8087 (INTERNAL_CFLAGS): Use PICFLAG.
8088 (LIBIBERTY): Use pic build of libiberty.a if configured with
8089 --enable-host-shared.
8090 * configure.ac: Add --enable-host-shared, setting up new
8091 PICFLAG variable.
8092 * configure: Regenerate.
a64e2419 8093 * doc/install.texi (--enable-shared): Add note contrasting it with ...
2bd17377 8094 (--enable-host-shared): New option.
8095
89432048 80962013-10-15 Richard Biener <rguenther@suse.de>
8097
8098 * tree-tailcall.c (find_tail_calls): Don't use tail-call recursion
8099 for built-in functions.
8100
b0c0c879 81012013-10-15 Zhenqiang Chen <zhenqiang.chen@arm.com>
8102
8103 * tree-ssa-reassoc.c: Include rtl.h and tm_p.h.
8104 (optimize_range_tests_1): New function,
8105 extracted from optimize_range_tests.
8106 (optimize_range_tests_xor): Similarly.
8107 (optimize_range_tests_diff): New function.
8108 (optimize_range_tests): Use optimize_range_tests_1.
8109
63048bd8 81102013-10-15 Cong Hou <congh@google.com>
8111
3f885d75 8112 * tree-vect-loop.c (vect_is_simple_reduction_1): Relax the
8113 requirement of the reduction pattern so that one operand of the
63048bd8 8114 reduction operation can come from outside of the loop.
8115
9b50226f 81162013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
8117
8118 * config/arm/neon-schedgen.ml: Remove.
8119 * config/arm/cortex-a9-neon.md: Remove comment regarding
8120 neon-schedgen.ml.
8121
27151c76 81222013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
8123
8124 * config/arm/types: Remove old neon types.
8125
47577d4c 81262013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
8127
8128 * config/arm/cortex-a7.md
8129 (cortex_a7_neon_type): New.
8130 (cortex_a7_neon_mul): Update for new types.
8131 (cortex_a7_neon_mla): Likewise.
8132 (cortex_a7_neon): Likewise.
8133
f0b0e15e 81342013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
8135
8136 * config/arm/cortex-a15-neon.md
8137 (cortex_a15_neon_type): New,
8138
8139 (cortex_a15_neon_int_1): Remove.
8140 (cortex_a15_neon_int_2): Likewise.
8141 (cortex_a15_neon_int_3): Likewise.
8142 (cortex_a15_neon_int_4): Likewise.
8143 (cortex_a15_neon_int_5): Likewise.
8144 (cortex_a15_neon_vqneg_vqabs): Likewise.
8145 (cortex_a15_neon_vmov): Likewise.
8146 (cortex_a15_neon_vaba): Likewise.
8147 (cortex_a15_neon_vaba_qqq): Likewise.
8148 (cortex_a15_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
8149 (cortex_a15_neon_mul_qqq_8_16_32_ddd_32): Likewise.
8150 (cortex_a15_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
8151 Likewise.
8152 (cortex_a15_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
8153 (cortex_a15_neon_mla_qqq_8_16): Likewise.
8154 (cortex_a15_neon_mla_ddd_32_qqd_16_ddd_32_scalar): Likewise.
8155 (cortex_a15_neon_mla_qqq_32_qqd_32_scalar): Likewise.
8156 (cortex_a15_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
8157 (cortex_a15_neon_mul_qqd_32_scalar): Likewise.
8158 (cortex_a15_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
8159 (cortex_a15_neon_shift_1): Likewise.
8160 (cortex_a15_neon_shift_2): Likewise.
8161 (cortex_a15_neon_shift_3): Likewise.
8162 (cortex_a15_neon_vshl_ddd): Likewise.
8163 (cortex_a15_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
8164 (cortex_a15_neon_vsra_vrsra): Likewise.
8165 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
8166 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
8167 (cortex_a15_neon_bp_3cycle): Likewise.
8168 (cortex_a15_neon_ldm_2): Likewise.
8169 (cortex_a15_neon_stm_2): Likewise.
8170 (cortex_a15_neon_mcr): Likewise.
8171 (cortex_a15_neon_mrc): Likewise.
8172 (cortex_a15_neon_fp_vadd_ddd_vabs_dd): Likewise.
8173 (cortex_a15_neon_fp_vadd_qqq_vabs_qq): Likewise.
8174 (cortex_a15_neon_fp_vmul_ddd): Likewise.
8175 (cortex_a15_neon_fp_vmul_qqd): Likewise.
8176 (cortex_a15_neon_fp_vmla_ddd): Likewise.
8177 (cortex_a15_neon_fp_vmla_qqq): Likewise.
8178 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
8179 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
8180 (cortex_a15_neon_fp_vrecps_vrsqrts_ddd): Likewise.
8181 (cortex_a15_neon_fp_vrecps_vrsqrts_qqq): Likewise.
8182 (cortex_a15_neon_bp_simple): Likewise.
8183 (cortex_a15_neon_bp_2cycle): Likewise.
8184 (cortex_a15_neon_bp_3cycle): Likewise.
8185 (cortex_a15_neon_vld1_1_2_regs): Likewise.
8186 (cortex_a15_neon_vld1_3_4_regs): Likewise.
8187 (cortex_a15_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
8188 (cortex_a15_neon_vld2_4_regs): Likewise.
8189 (cortex_a15_neon_vld3_vld4): Likewise.
8190 (cortex_a15_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
8191 (cortex_a15_neon_vst1_3_4_regs): Likewise.
8192 (cortex_a15_neon_vst2_4_regs_vst3_vst4): Rename to...
8193 (cortex_a15_neon_vst2_4_regs_vst3): ...This, update for new attributes.
8194 (cortex_a15_neon_vst3_vst4): Rename to...
8195 (cortex_a15_neon_vst4): This, update for new attributes.
8196 (cortex_a15_neon_vld1_vld2_lane): Update for new attributes.
8197 (cortex_a15_neon_vld3_vld4_lane): Likewise.
8198 (cortex_a15_neon_vst1_vst2_lane): Likewise.
8199 (cortex_a15_neon_vst3_vst4_lane): Likewise.
8200 (cortex_a15_neon_vld3_vld4_all_lanes): Likewise.
8201 (cortex_a15_neon_ldm_2): Likewise.
8202 (cortex_a15_neon_stm_2): Likewise.
8203 (cortex_a15_neon_mcr): Likewise.
8204 (cortex_a15_neon_mcr_2_mcrr): Likewise.
8205 (cortex_a15_neon_mrc): Likewise.
8206 (cortex_a15_neon_mrrc): Likewise.
8207
8208 (cortex_a15_neon_abd): New.
8209 (cortex_a15_neon_abd_q): Likewise.
8210 (cortex_a15_neon_aba): Likewise.
8211 (cortex_a15_neon_aba_q): Likewise.
8212 (cortex_a15_neon_acc): Likewise.
8213 (cortex_a15_neon_acc_q): Likewise.
8214 (cortex_a15_neon_arith_basic): Likewise.
8215 (cortex_a15_neon_arith_complex): Likewise.
8216 (cortex_a15_neon_multiply): Likewise.
8217 (cortex_a15_neon_multiply_q): Likewise.
8218 (cortex_a15_neon_mla): Likewise.
8219 (cortex_a15_neon_mla_q): Likewise.
8220 (cortex_a15_neon_sat_mla_long): Likewise.
8221 (cortex_a15_neon_shift_acc): Likewise.
8222 (cortex_a15_neon_shift_imm_basic): Likewise.
8223 (cortex_a15_neon_shift_imm_complex): Likewise.
8224 (cortex_a15_neon_shift_reg_basic): Likewise.
8225 (cortex_a15_neon_shift_reg_basic_q): Likewise.
8226 (cortex_a15_neon_shift_reg_complex): Likewise.
8227 (cortex_a15_neon_shift_reg_complex_q): Likewise.
8228 (cortex_a15_neon_fp_negabs): Likewise
8229 (cortex_a15_neon_fp_arith): Likewise
8230 (cortex_a15_neon_fp_arith_q): Likewise
8231 (cortex_a15_neon_fp_cvt_int): Likewise
8232 (cortex_a15_neon_fp_cvt_int_q): Likewise
8233 (cortex_a15_neon_fp_cvt_16): Likewise
8234 (cortex_a15_neon_fp_mul): Likewise
8235 (cortex_a15_neon_fp_mul_q): Likewise
8236 (cortex_a15_neon_fp_mla): Likewise
8237 (cortex_a15_neon_fp_mla_q): Likewise
8238 (cortex_a15_neon_fp_recps_rsqrte): Likewise.
8239 (cortex_a15_neon_fp_recps_rsqrte_q): Likewise.
8240 (cortex_a15_neon_bitops): Likewise.
8241 (cortex_a15_neon_bitops_q): Likewise.
8242 (cortex_a15_neon_from_gp): Likewise.
8243 (cortex_a15_neon_from_gp_q): Likewise.
8244 (cortex_a15_neon_tbl3_tbl4): Likewise.
8245 (cortex_a15_neon_zip_q): Likewise.
8246 (cortex_a15_neon_to_gp): Likewise.
8247 (cortex_a15_neon_load_a): Likewise.
8248 (cortex_a15_neon_load_b): Likewise.
8249 (cortex_a15_neon_load_c): Likewise.
8250 (cortex_a15_neon_load_d): Likewise.
8251 (cortex_a15_neon_load_e): Likewise.
8252 (cortex_a15_neon_load_f): Likewise.
8253 (cortex_a15_neon_store_a): Likewise.
8254 (cortex_a15_neon_store_b): Likewise.
8255 (cortex_a15_neon_store_c): Likewise.
8256 (cortex_a15_neon_store_d): Likewise.
8257 (cortex_a15_neon_store_e): Likewise.
8258 (cortex_a15_neon_store_f): Likewise.
8259 (cortex_a15_neon_store_g): Likewise.
8260 (cortex_a15_neon_store_h): Likewise.
8261 (cortex_a15_vfp_to_from_gp): Likewise.
8262
a7114a0a 82632013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
8264
8265 * config/arm/cortex-a9-neon.md (cortex_a9_neon_type): New.
8266
8267 (cortex_a9_neon_vshl_ddd): Remove.
8268 (cortex_a9_neon_vst3_vst4): Likewise.
8269 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
8270
8271 (cortex_a9_neon_bit_ops_q): New.
8272
8273 (cortex_a9_neon_int_1): Use cortex_a8_neon_type.
8274 (cortex_a9_neon_int_2): Likewise.
8275 (cortex_a9_neon_int_3): Likewise.
8276 (cortex_a9_neon_int_4): Likewise.
8277 (cortex_a9_neon_int_5): Likewise.
8278 (cortex_a9_neon_vqneg_vqabs): Likewise.
8279 (cortex_a9_neon_vmov): Likewise.
8280 (cortex_a9_neon_vaba): Likewise.
8281 (cortex_a9_neon_vaba_qqq): Likewise.
8282 (cortex_a9_neon_shift_1): Likewise.
8283 (cortex_a9_neon_shift_2): Likewise.
8284 (cortex_a9_neon_shift_3): Likewise.
8285 (cortex_a9_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
8286 (cortex_a9_neon_vsra_vrsra): Likewise.
8287 (cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
8288 (cortex_a9_neon_mul_qqq_8_16_32_ddd_32): Likewise.
8289 (cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
8290 Likewise.
8291 (cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
8292 (cortex_a9_neon_mla_qqq_8_16): Likewise.
8293 (cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_long_scalar_qdd_64_32_long):
8294 Likewise.
8295 (cortex_a9_neon_mla_qqq_32_qqd_32_scalar): Likewise.
8296 (cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
8297 (cortex_a9_neon_mul_qqd_32_scalar): Likewise.
8298 (cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
8299 (cortex_a9_neon_fp_vadd_ddd_vabs_dd): Likewise.
8300 (cortex_a9_neon_fp_vadd_qqq_vabs_qq): Likewise.
8301 (cortex_a9_neon_fp_vsum): Likewise.
8302 (cortex_a9_neon_fp_vmul_ddd): Likewise.
8303 (cortex_a9_neon_fp_vmul_qqd): Likewise.
8304 (cortex_a9_neon_fp_vmla_ddd): Likewise.
8305 (cortex_a9_neon_fp_vmla_qqq): Likewise.
8306 (cortex_a9_neon_fp_vmla_ddd_scalar): Likewise.
8307 (cortex_a9_neon_fp_vmla_qqq_scalar): Likewise.
8308 (cortex_a9_neon_fp_vrecps_vrsqrts_ddd): Likewise.
8309 (cortex_a9_neon_fp_vrecps_vrsqrts_qqq): Likewise.
8310 (cortex_a9_neon_bp_simple): Likewise.
8311 (cortex_a9_neon_bp_2cycle): Likewise.
8312 (cortex_a9_neon_bp_3cycle): Likewise.
8313 (cortex_a9_neon_ldr): Likewise.
8314 (cortex_a9_neon_str): Likewise.
8315 (cortex_a9_neon_vld1_1_2_regs): Likewise.
8316 (cortex_a9_neon_vld1_3_4_regs): Likewise.
8317 (cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
8318 (cortex_a9_neon_vld2_4_regs): Likewise.
8319 (cortex_a9_neon_vld3_vld4): Likewise.
8320 (cortex_a9_neon_vld1_vld2_lane): Likewise.
8321 (cortex_a9_neon_vld3_vld4_lane): Likewise.
8322 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
8323 (cortex_a9_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
8324 (cortex_a9_neon_vst1_3_4_regs): Likewise.
8325 (cortex_a9_neon_vst2_4_regs_vst3_vst4): Likewise.
8326 (cortex_a9_neon_vst1_vst2_lane): Likewise.
8327 (cortex_a9_neon_vst3_vst4_lane): Likewise.
8328 (cortex_a9_neon_mcr): Likewise.
8329 (cortex_a9_neon_mcr_2_mcrr): Likewise.
8330 (cortex_a9_neon_mrc): Likewise.
8331 (cortex_a9_neon_mrrc): Likewise.
8332
2c2f6b16 83332013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
8334
8335 * config/arm/cortex-a8-neon.md (cortex_a8_neon_type): New.
8336
8337 (cortex_a8_neon_vshl_ddd): Remove.
8338 (cortex_a8_neon_vst3_vst4): Likewise.
8339 (cortex_a8_neon_vld3_vld4_all_lanes): Likewise.
8340
8341 (cortex_a8_neon_bit_ops_q): New.
8342
8343 (cortex_a8_neon_int_1): Use cortex_a8_neon_type.
8344 (cortex_a8_neon_int_2): Likewise..
8345 (cortex_a8_neon_int_3): Likewise.
8346 (cortex_a8_neon_int_5): Likewise.
8347 (cortex_a8_neon_vqneg_vqabs): Likewise.
8348 (cortex_a8_neon_int_4): Likewise.
8349 (cortex_a8_neon_vaba): Likewise.
8350 (cortex_a8_neon_vaba_qqq): Likewise.
8351 (cortex_a8_neon_shift_1): Likewise.
8352 (cortex_a8_neon_shift_2): Likewise.
8353 (cortex_a8_neon_shift_3): Likewise.
8354 (cortex_a8_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
8355 (cortex_a8_neon_vsra_vrsra): Likewise.
8356 (cortex_a8_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
8357 (cortex_a8_neon_mul_qqq_8_16_32_ddd_32): Likewise.
8358 (cortex_a8_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_long_scalar):
8359 Likewise.
8360 (cortex_a8_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
8361 (cortex_a8_neon_mla_qqq_8_16): Likewise.
8362 (cortex_a8_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_long_scalar_qdd_64_32_long):
8363 Likewise.
8364 (cortex_a8_neon_mla_qqq_32_qqd_32_scalar): Likewise.
8365 (cortex_a8_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
8366 (cortex_a8_neon_mul_qqd_32_scalar): Likewise.
8367 (cortex_a8_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
8368 (cortex_a8_neon_fp_vadd_ddd_vabs_dd): Likewise.
8369 (cortex_a8_neon_fp_vadd_qqq_vabs_qq): Likewise.
8370 (cortex_a8_neon_fp_vsum): Likewise.
8371 (cortex_a8_neon_fp_vmul_ddd): Likewise.
8372 (cortex_a8_neon_fp_vmul_qqd): Likewise.
8373 (cortex_a8_neon_fp_vmla_ddd): Likewise.
8374 (cortex_a8_neon_fp_vmla_qqq): Likewise.
8375 (cortex_a8_neon_fp_vmla_ddd_scalar): Likewise.
8376 (cortex_a8_neon_fp_vmla_qqq_scalar): Likewise.
8377 (cortex_a8_neon_fp_vrecps_vrsqrts_ddd): Likewise.
8378 (cortex_a8_neon_fp_vrecps_vrsqrts_qqq): Likewise.
8379 (cortex_a8_neon_bp_simple): Likewise.
8380 (cortex_a8_neon_bp_2cycle): Likewise.
8381 (cortex_a8_neon_bp_3cycle): Likewise.
8382 (cortex_a8_neon_ldr): Likewise.
8383 (cortex_a8_neon_str): Likewise.
8384 (cortex_a8_neon_vld1_1_2_regs): Likewise.
8385 (cortex_a8_neon_vld1_3_4_regs): Likewise.
8386 (cortex_a8_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
8387 (cortex_a8_neon_vld2_4_regs): Likewise.
8388 (cortex_a8_neon_vld3_vld4): Likewise.
8389 (cortex_a8_neon_vld1_vld2_lane): Likewise.
8390 (cortex_a8_neon_vld3_vld4_lane): Likewise.
8391 (cortex_a8_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
8392 (cortex_a8_neon_vst1_3_4_regs): Likewise.
8393 (cortex_a8_neon_vst2_4_regs_vst3_vst4): Likewise.
8394 (cortex_a8_neon_vst1_vst2_lane): Likewise.
8395 (cortex_a8_neon_vst3_vst4_lane): Likewise.
8396 (cortex_a8_neon_mcr): Likewise.
8397 (cortex_a8_neon_mcr_2_mcrr): Likewise.
8398 (cortex_a8_neon_mrc): Likewise.
8399 (cortex_a8_neon_mrrc): Likewise.
8400
5efe19ee 84012013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
8402
8403 * config/aarch64/iterators.md (Vetype): Add SF and DF modes.
8404 (fp): New.
8405 * config/aarch64/aarch64-simd.md (neon_type): Remove.
8406 (aarch64_simd_dup<mode>): Add "type" attribute.
8407 (aarch64_dup_lane<mode>): Likewise.
8408 (aarch64_dup_lane_<vswap_width_name><mode>): Likewise.
8409 (*aarch64_simd_mov<mode>): Likewise.
8410 (aarch64_simd_mov_from_<mode>low): Likewise.
8411 (aarch64_simd_mov_from_<mode>high): Likewise.
8412 (orn<mode>3): Likewise.
8413 (bic<mode>3): Likewise.
8414 (add<mode>3): Likewise.
8415 (sub<mode>3): Likewise.
8416 (mul<mode>3): Likewise.
8417 (*aarch64_mul3_elt<mode>): Likewise.
8418 (*aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
8419 (*aarch64_mul3_elt_to_128df): Likewise.
8420 (*aarch64_mul3_elt_to_64v2df): Likewise.
8421 (neg<mode>2): Likewise.
8422 (abs<mode>2): Likewise.
8423 (abd<mode>_3): Likewise.
8424 (aba<mode>_3): Likewise.
8425 (fabd<mode>_3): Likewise.
8426 (*fabd_scalar<mode>3): Likewise.
8427 (and<mode>3): Likewise.
8428 (ior<mode>3): Likewise.
8429 (xor<mode>3): Likewise.
8430 (one_cmpl<mode>2): Likewise.
8431 (aarch64_simd_vec_set<mode>): Likewise.
8432 (aarch64_simd_lshr<mode>): Likewise.
8433 (aarch64_simd_ashr<mode>): Likewise.
8434 (aarch64_simd_imm_shl<mode>): Likewise.
8435 (aarch64_simd_reg_sshl<mode): Likewise.
8436 (aarch64_simd_reg_shl<mode>_unsigned): Likewise.
8437 (aarch64_simd_reg_shl<mode>_signed): Likewise.
8438 (aarch64_simd_vec_setv2di): Likewise.
8439 (aarch64_simd_vec_set<mode>): Likewise.
8440 (aarch64_mla<mode>): Likewise.
8441 (*aarch64_mla_elt<mode>): Likewise.
8442 (*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
8443 (aarch64_mls<mode>): Likewise.
8444 (*aarch64_mls_elt<mode>): Likewise.
8445 (*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
8446 (<su><maxmin><mode>3): Likewise.
8447 (move_lo_quad_<mode>): Likewise.
8448 (aarch64_simd_move_hi_quad_<mode>): Likewise.
8449 (aarch64_simd_vec_pack_trunc_<mode>): Likewise.
8450 (vec_pack_trunc_<mode>): Likewise.
8451 (aarch64_simd_vec_unpack<su>_lo_<mode>): Likewise.
8452 (aarch64_simd_vec_unpack<su>_hi_<mode>): Likewise.
8453 (*aarch64_<su>mlal_lo<mode>): Likewise.
8454 (*aarch64_<su>mlal_hi<mode>): Likewise.
8455 (*aarch64_<su>mlsl_lo<mode>): Likewise.
8456 (*aarch64_<su>mlsl_hi<mode>): Likewise.
8457 (*aarch64_<su>mlal<mode>): Likewise.
8458 (*aarch64_<su>mlsl<mode>): Likewise.
8459 (aarch64_simd_vec_<su>mult_lo_<mode>): Likewise.
8460 (aarch64_simd_vec_<su>mult_hi_<mode>): Likewise.
8461 (add<mode>3): Likewise.
8462 (sub<mode>3): Likewise.
8463 (mul<mode>3): Likewise.
8464 (div<mode>3): Likewise.
8465 (neg<mode>2): Likewise.
8466 (abs<mode>2): Likewise.
8467 (fma<mode>4): Likewise.
8468 (*aarch64_fma4_elt<mode>): Likewise.
8469 (*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
8470 (*aarch64_fma4_elt_to_128df): Likewise.
8471 (*aarch64_fma4_elt_to_64v2df): Likewise.
8472 (fnma<mode>4): Likewise.
8473 (*aarch64_fnma4_elt<mode>): Likewise.
8474 (*aarch64_fnma4_elt_<vswap_width_name><mode>
8475 (*aarch64_fnma4_elt_to_128df): Likewise.
8476 (*aarch64_fnma4_elt_to_64v2df): Likewise.
8477 (<frint_pattern><mode>2): Likewise.
8478 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): Likewise.
8479 (<optab><fcvt_target><VDQF:VDQF:mode>2): Likewise.
8480 (vec_unpacks_lo_v4sf): Likewise.
8481 (aarch64_float_extend_lo_v2df): Likewise.
8482 (vec_unpacks_hi_v4sf): Likewise.
8483 (aarch64_float_truncate_lo_v2sf): Likewise.
8484 (aarch64_float_truncate_hi_v4sf): Likewise.
8485 (aarch64_vmls<mode>): Likewise.
8486 (<su><maxmin><mode>3): Likewise.
8487 (<maxmin_uns><mode>3): Likewise.
8488 (reduc_<sur>plus_<mode>): Likewise.
8489 (reduc_<sur>plus_v2di): Likewise.
8490 (reduc_<sur>plus_v2si): Likewise.
8491 (reduc_<sur>plus_<mode>): Likewise.
8492 (aarch64_addpv4sf): Likewise.
8493 (clz<mode>2): Likewise.
8494 (reduc_<maxmin_uns>_<mode>): Likewise.
8495 (reduc_<maxmin_uns>_v2di): Likewise.
8496 (reduc_<maxmin_uns>_v2si): Likewise.
8497 (reduc_<maxmin_uns>_<mode>): Likewise.
8498 (reduc_<maxmin_uns>_v4sf): Likewise.
8499 (aarch64_simd_bsl<mode>_internal): Likewise.
8500 (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise.
8501 (*aarch64_get_lane_zero_extendsi<mode>): Likewise.
8502 (aarch64_get_lane<mode>): Likewise.
8503 (*aarch64_combinez<mode>): Likewise.
8504 (aarch64_combine<mode>): Likewise.
8505 (aarch64_simd_combine<mode>): Likewise.
8506 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal): Likewise.
8507 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_lo_internal): Likewise.
8508 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>): Likewise.
8509 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>): Likewise.
8510 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w2<mode>_internal): Likewise.
8511 (aarch64_<sur>h<addsub><mode>): Likewise.
8512 (aarch64_<sur><addsub>hn<mode>): Likewise.
8513 (aarch64_<sur><addsub>hn2<mode>): Likewise.
8514 (aarch64_pmul<mode>): Likewise.
8515 (aarch64_<su_optab><optab><mode>): Likewise.
8516 (aarch64_<sur>qadd<mode>): Likewise.
8517 (aarch64_sqmovun<mode>): Likewise.
8518 (aarch64_<sur>qmovn<mode>): Likewise.
8519 (aarch64_s<optab><mode>): Likewise.
8520 (aarch64_sq<r>dmulh<mode>): Likewise.
8521 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
8522 (aarch64_sq<r>dmulh_laneq<mode>): Likewise.
8523 (aarch64_sq<r>dmulh_lane<mode>): Likewise.
8524 (aarch64_sqdml<SBINQOPS:as>l<mode>): Likewise.
8525 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
8526 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
8527 (aarch64_sqdml<SBINQOPS:as>l_n<mode>): Likewise.
8528 (aarch64_sqdml<SBINQOPS:as>l2<mode>_internal): Likewise.
8529 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
8530 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise.
8531 (aarch64_sqdmull<mode>): Likewise.
8532 (aarch64_sqdmull_lane<mode>_internal): Likewise.
8533 (aarch64_sqdmull_n<mode>): Likewise.
8534 (aarch64_sqdmull2<mode>_internal): Likewise.
8535 (aarch64_sqdmull2_lane<mode>_internal): Likewise.
8536 (aarch64_sqdmull2_n<mode>_internal): Likewise.
8537 (aarch64_<sur>shl<mode>): Likewise.
8538 (aarch64_<sur>q<r>shl<mode>
8539 (aarch64_<sur>shll_n<mode>): Likewise.
8540 (aarch64_<sur>shll2_n<mode>): Likewise.
8541 (aarch64_<sur>shr_n<mode>): Likewise.
8542 (aarch64_<sur>sra_n<mode>): Likewise.
8543 (aarch64_<sur>s<lr>i_n<mode>): Likewise.
8544 (aarch64_<sur>qshl<u>_n<mode>): Likewise.
8545 (aarch64_<sur>q<r>shr<u>n_n<mode>): Likewise.
8546 (aarch64_cm<optab><mode>): Likewise.
8547 (aarch64_cm<optab>di): Likewise.
8548 (aarch64_cm<optab><mode>): Likewise.
8549 (aarch64_cm<optab>di): Likewise.
8550 (aarch64_cmtst<mode>): Likewise.
8551 (aarch64_cmtstdi): Likewise.
8552 (aarch64_cm<optab><mode>): Likewise.
8553 (*aarch64_fac<optab><mode>): Likewise.
8554 (aarch64_addp<mode>): Likewise.
8555 (aarch64_addpdi): Likewise.
8556 (sqrt<mode>2): Likewise.
8557 (vec_load_lanesoi<mode>): Likewise.
8558 (vec_store_lanesoi<mode>): Likewise.
8559 (vec_load_lanesci<mode>): Likewise.
8560 (vec_store_lanesci<mode>): Likewise.
8561 (vec_load_lanesxi<mode>): Likewise.
8562 (vec_store_lanesxi<mode>): Likewise.
8563 (*aarch64_mov<mode>): Likewise.
8564 (aarch64_ld2<mode>_dreg): Likewise.
8565 (aarch64_ld2<mode>_dreg): Likewise.
8566 (aarch64_ld3<mode>_dreg): Likewise.
8567 (aarch64_ld3<mode>_dreg): Likewise.
8568 (aarch64_ld4<mode>_dreg): Likewise.
8569 (aarch64_ld4<mode>_dreg): Likewise.
8570 (aarch64_tbl1<mode>): Likewise.
8571 (aarch64_tbl2v16qi): Likewise.
8572 (aarch64_combinev16qi): Likewise.
8573 (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Likewise.
8574 (aarch64_st2<mode>_dreg): Likewise.
8575 (aarch64_st2<mode>_dreg): Likewise.
8576 (aarch64_st3<mode>_dreg): Likewise.
8577 (aarch64_st3<mode>_dreg): Likewise.
8578 (aarch64_st4<mode>_dreg): Likewise.
8579 (aarch64_st4<mode>_dreg): Likewise.
8580 (*aarch64_simd_ld1r<mode>): Likewise.
8581 (aarch64_frecpe<mode>): Likewise.
8582 (aarch64_frecp<FRECP:frecp_suffix><mode>): Likewise.
8583 (aarch64_frecps<mode>): Likewise.
8584
32093010 85852013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
8586
8587 * config/arm/iterators.md (V_elem_ch): New.
8588 (q): Likewise.
8589 (VQH_type): Likewise.
8590 * config/arm/arm.md (is_neon_type): New.
8591 (conds): Use is_neon_type.
8592 (anddi3_insn): Update type attribute.
8593 (xordi3_insn): Likewise.
8594 (one_cmpldi2): Likewise.
57a3d097 8595 * config/arm/vfp.md (movhf_vfp_neon): Update type attribute.
8596 * config/arm/neon.md (neon_mov): Update type attribute.
32093010 8597 (*movmisalign<mode>_neon_store): Likewise.
8598 (*movmisalign<mode>_neon_load): Likewise.
8599 (vec_set<mode>_internal): Likewise.
8600 (vec_set<mode>_internal): Likewise.
8601 (vec_setv2di_internal): Likewise.
8602 (vec_extract<mode>): Likewise.
8603 (vec_extract<mode>): Likewise.
8604 (vec_extractv2di): Likewise.
8605 (*add<mode>3_neon): Likewise.
8606 (adddi3_neon): Likewise.
8607 (*sub<mode>3_neon): Likewise.
8608 (subdi3_neon): Likewise.
8609 (fma<VCVTF:mode>4): Likewise.
8610 (fma<VCVTF:mode>4_intrinsic): Likewise.
8611 (*fmsub<VCVTF:mode>4): Likewise.
8612 (fmsub<VCVTF:mode>4_intrinsic): Likewise.
8613 (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise.
8614 (ior<mode>3): Likewise.
8615 (and<mode>3): Likewise.
8616 (orn<mode>3_neon): Likewise.
8617 (orndi3_neon): Likewise.
8618 (bic<mode>3_neon): Likewise.
8619 (bicdi3_neon): Likewise.
8620 (xor<mode>3): Likewise.
8621 (one_cmpl<mode>2): Likewise.
8622 (abs<mode>2): Likewise.
8623 (neg<mode>2): Likewise.
8624 (negdi2_neon): Likewise.
8625 (*umin<mode>3_neon): Likewise.
8626 (*umax<mode>3_neon): Likewise.
8627 (*smin<mode>3_neon): Likewise.
8628 (*smax<mode>3_neon): Likewise.
8629 (vashl<mode>3): Likewise.
8630 (vashr<mode>3_imm): Likewise.
8631 (vlshr<mode>3_imm): Likewise.
8632 (ashl<mode>3_signed): Likewise.
8633 (ashl<mode>3_unsigned): Likewise.
8634 (neon_load_count): Likewise.
8635 (ashldi3_neon_noclobber): Likewise.
8636 (ashldi3_neon): Likewise.
8637 (signed_shift_di3_neon): Likewise.
8638 (unsigned_shift_di3_neon): Likewise.
8639 (ashrdi3_neon_imm_noclobber): Likewise.
8640 (lshrdi3_neon_imm_noclobber): Likewise.
8641 (<shift>di3_neon): Likewise.
8642 (widen_ssum<mode>3): Likewise.
8643 (widen_usum<mode>3): Likewise.
8644 (quad_halves_<code>v4si): Likewise.
8645 (quad_halves_<code>v4sf): Likewise.
8646 (quad_halves_<code>v8hi): Likewise.
8647 (quad_halves_<code>v16qi): Likewise.
8648 (reduc_splus_v2di): Likewise.
8649 (neon_vpadd_internal<mode>): Likewise.
8650 (neon_vpsmin<mode>): Likewise.
8651 (neon_vpsmax<mode>): Likewise.
8652 (neon_vpumin<mode>): Likewise.
8653 (neon_vpumax<mode>): Likewise.
8654 (*ss_add<mode>_neon): Likewise.
8655 (*us_add<mode>_neon): Likewise.
8656 (*ss_sub<mode>_neon): Likewise.
8657 (*us_sub<mode>_neon): Likewise.
8658 (neon_vadd<mode>_unspec): Likewise.
8659 (neon_vaddl<mode>): Likewise.
8660 (neon_vaddw<mode>): Likewise.
8661 (neon_vhadd<mode>): Likewise.
8662 (neon_vqadd<mode>): Likewise.
8663 (neon_vaddhn<mode>): Likewise.
8664 (neon_vmul<mode>): Likewise.
8665 (neon_vfms<VCVTF:mode>): Likewise.
8666 (neon_vmlal<mode>): Likewise.
8667 (neon_vmls<mode>): Likewise.
8668 (neon_vmlsl<mode>): Likewise.
8669 (neon_vqdmulh<mode>): Likewise.
8670 (neon_vqdmlal<mode>): Likewise.
8671 (neon_vqdmlsl<mode>): Likewise.
8672 (neon_vmull<mode>): Likewise.
8673 (neon_vqdmull<mode>): Likewise.
8674 (neon_vsub<mode>_unspec): Likewise.
8675 (neon_vsubl<mode>): Likewise.
8676 (neon_vsubw<mode>): Likewise.
8677 (neon_vqsub<mode>): Likewise.
8678 (neon_vhsub<mode>): Likewise.
8679 (neon_vsubhn<mode>): Likewise.
8680 (neon_vceq<mode>): Likewise.
8681 (neon_vcge<mode>): Likewise.
8682 (neon_vcgeu<mode>): Likewise.
8683 (neon_vcgt<mode>): Likewise.
8684 (neon_vcgtu<mode>): Likewise.
8685 (neon_vcle<mode>): Likewise.
8686 (neon_vclt<mode>): Likewise.
8687 (neon_vcage<mode>): Likewise.
8688 (neon_vcagt<mode>): Likewise.
8689 (neon_vtst<mode>): Likewise.
8690 (neon_vabd<mode>): Likewise.
8691 (neon_vabdl<mode>): Likewise.
8692 (neon_vaba<mode>): Likewise.
8693 (neon_vabal<mode>): Likewise.
8694 (neon_vmax<mode>): Likewise.
8695 (neon_vmin<mode>): Likewise.
8696 (neon_vpaddl<mode>): Likewise.
8697 (neon_vpadal<mode>): Likewise.
8698 (neon_vpmax<mode>): Likewise.
8699 (neon_vpmin<mode>): Likewise.
8700 (neon_vrecps<mode>): Likewise.
8701 (neon_vrsqrts<mode>): Likewise.
8702 (neon_vqabs<mode>): Likewise.
8703 (neon_vqneg<mode>): Likewise.
8704 (neon_vcls<mode>): Likewise.
8705 (clz<mode>2): Likewise.
8706 (popcount<mode>2): Likewise.
8707 (neon_vrecpe<mode>): Likewise.
8708 (neon_vrsqrte<mode>): Likewise.
8709 (neon_vget_lane<mode>_sext_internal): Likewise.
8710 (neon_vget_lane<mode>_zext_internal): Likewise.
8711 (neon_vdup_n<mode>): Likewise.
8712 (neon_vdup_n<mode>): Likewise.
8713 (neon_vdup_nv2di): Likewise.
8714 (neon_vdup_lane<mode>_interal): Likewise.
8715 (*neon_vswp<mode>): Likewise.
8716 (neon_vcombine<mode>): Likewise.
8717 (float<mode><V_cvtto>2): Likewise.
8718 (floatuns<mode><V_cvtto>2): Likewise.
8719 (fix_trunc<mode><V_cvtto>2): Likewise.
8720 (fixuns_trunc<mode><V_cvtto>2
8721 (neon_vcvt<mode>): Likewise.
8722 (neon_vcvt<mode>): Likewise.
8723 (neon_vcvtv4sfv4hf): Likewise.
8724 (neon_vcvtv4hfv4sf): Likewise.
8725 (neon_vcvt_n<mode>): Likewise.
8726 (neon_vcvt_n<mode>): Likewise.
8727 (neon_vmovn<mode>): Likewise.
8728 (neon_vqmovn<mode>): Likewise.
8729 (neon_vqmovun<mode>): Likewise.
8730 (neon_vmovl<mode>): Likewise.
8731 (neon_vmul_lane<mode>): Likewise.
8732 (neon_vmul_lane<mode>): Likewise.
8733 (neon_vmull_lane<mode>): Likewise.
8734 (neon_vqdmull_lane<mode>): Likewise.
8735 (neon_vqdmulh_lane<mode>): Likewise.
8736 (neon_vqdmulh_lane<mode>): Likewise.
8737 (neon_vmla_lane<mode>): Likewise.
8738 (neon_vmla_lane<mode>): Likewise.
8739 (neon_vmlal_lane<mode>): Likewise.
8740 (neon_vqdmlal_lane<mode>): Likewise.
8741 (neon_vmls_lane<mode>): Likewise.
8742 (neon_vmls_lane<mode>): Likewise.
8743 (neon_vmlsl_lane<mode>): Likewise.
8744 (neon_vqdmlsl_lane<mode>): Likewise.
8745 (neon_vext<mode>): Likewise.
8746 (neon_vrev64<mode>): Likewise.
8747 (neon_vrev32<mode>): Likewise.
8748 (neon_vrev16<mode>): Likewise.
8749 (neon_vbsl<mode>_internal): Likewise.
8750 (neon_vshl<mode>): Likewise.
8751 (neon_vqshl<mode>): Likewise.
8752 (neon_vshr_n<mode>): Likewise.
8753 (neon_vshrn_n<mode>): Likewise.
8754 (neon_vqshrn_n<mode>): Likewise.
8755 (neon_vqshrun_n<mode>): Likewise.
8756 (neon_vshl_n<mode>): Likewise.
8757 (neon_vqshl_n<mode>): Likewise.
8758 (neon_vqshlu_n<mode>): Likewise.
8759 (neon_vshll_n<mode>): Likewise.
8760 (neon_vsra_n<mode>): Likewise.
8761 (neon_vsri_n<mode>): Likewise.
8762 (neon_vsli_n<mode>): Likewise.
8763 (neon_vtbl1v8qi): Likewise.
8764 (neon_vtbl2v8qi): Likewise.
8765 (neon_vtbl3v8qi): Likewise.
8766 (neon_vtbl4v8qi): Likewise.
8767 (neon_vtbl1v16qi): Likewise.
8768 (neon_vtbl2v16qi): Likewise.
8769 (neon_vcombinev16qi): Likewise.
8770 (neon_vtbx1v8qi): Likewise.
8771 (neon_vtbx2v8qi): Likewise.
8772 (neon_vtbx3v8qi): Likewise.
8773 (neon_vtbx4v8qi): Likewise.
8774 (*neon_vtrn<mode>_insn): Likewise.
8775 (*neon_vzip<mode>_insn): Likewise.
8776 (*neon_vuzp<mode>_insn): Likewise.
8777 (neon_vld1<mode>): Likewise.
8778 (neon_vld1_lane<mode>): Likewise.
8779 (neon_vld1_lane<mode>): Likewise.
8780 (neon_vld1_dup<mode>): Likewise.
8781 (neon_vld1_dup<mode>): Likewise.
8782 (neon_vld1_dupv2di): Likewise.
8783 (neon_vst1<mode>): Likewise.
8784 (neon_vst1_lane<mode>): Likewise.
8785 (neon_vst1_lane<mode>): Likewise.
8786 (neon_vld2<mode>): Likewise.
8787 (neon_vld2<mode>): Likewise.
8788 (neon_vld2_lane<mode>): Likewise.
8789 (neon_vld2_lane<mode>): Likewise.
8790 (neon_vld2_dup<mode>): Likewise.
8791 (neon_vst2<mode>): Likewise.
8792 (neon_vst2<mode>): Likewise.
8793 (neon_vst2_lane<mode>): Likewise.
8794 (neon_vst2_lane<mode>): Likewise.
8795 (neon_vld3<mode>): Likewise.
8796 (neon_vld3qa<mode>): Likewise.
8797 (neon_vld3qb<mode>): Likewise.
8798 (neon_vld3_lane<mode>): Likewise.
8799 (neon_vld3_lane<mode>): Likewise.
8800 (neon_vld3_dup<mode>): Likewise.
8801 (neon_vst3<mode>): Likewise.
8802 (neon_vst3qa<mode>): Likewise.
8803 (neon_vst3qb<mode>): Likewise.
8804 (neon_vst3_lane<mode>): Likewise.
8805 (neon_vst3_lane<mode>): Likewise.
8806 (neon_vld4<mode>): Likewise.
8807 (neon_vld4qa<mode>): Likewise.
8808 (neon_vld4qb<mode>): Likewise.
8809 (neon_vld4_lane<mode>): Likewise.
8810 (neon_vld4_lane<mode>): Likewise.
8811 (neon_vld4_dup<mode>): Likewise.
8812 (neon_vst4<mode>): Likewise.
8813 (neon_vst4qa<mode>): Likewise.
8814 (neon_vst4qb<mode>): Likewise.
8815 (neon_vst4_lane<mode>): Likewise.
8816 (neon_vst4_lane<mode>): Likewise.
8817 (neon_vec_unpack<US>_lo_<mode>): Likewise.
8818 (neon_vec_unpack<US>_hi_<mode>): Likewise.
8819 (neon_vec_<US>mult_lo_<mode>): Likewise.
8820 (neon_vec_<US>mult_hi_<mode>): Likewise.
8821 (neon_vec_<US>shiftl_<mode>): Likewise.
8822 (neon_unpack<US>_<mode>): Likewise.
8823 (neon_vec_<US>mult_<mode>): Likewise.
8824 (vec_pack_trunc_<mode>): Likewise.
8825 (neon_vec_pack_trunc_<mode>): Likewise.
8826 (neon_vabd<mode>_2): Likewise.
8827 (neon_vabd<mode>_3): Likewise.
8828
47bfaf2c 88292013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
8830
8831 * config/aarch64/aarch64.md (movtf_aarch64): Update type attribute.
8832 (load_pair): Update type attribute.
8833 (store_pair): Update type attribute.
8834 * config/aarch64/iterators.md (q): New.
8835
90ad8a62 88362013-10-15 James Greenhalgh <james.greenhalgh@arm.com>
8837
8838 * config/arm/types.md: Add new types for Neon insns.
8839
85065932 88402013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
8841 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
8842 Sergey Lega <sergey.s.lega@intel.com>
8843 Anna Tikhonova <anna.tikhonova@intel.com>
8844 Ilya Tocar <ilya.tocar@intel.com>
8845 Andrey Turetskiy <andrey.turetskiy@intel.com>
8846 Ilya Verbin <ilya.verbin@intel.com>
8847 Kirill Yukhin <kirill.yukhin@intel.com>
8848 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8849
8850 * config/i386/sse.md (unspec): Add UNSPEC_RCP14, UNSPEC_RSQRT14,
8851 UNSPEC_FIXUPIMM, UNSPEC_SCALEF, UNSPEC_GETEXP, UNSPEC_GETMANT,
8852 UNSPEC_EXP2, UNSPEC_RCP28, UNSPEC_RSQRT28.
8853 (rcp14<mode>): New.
8854 (srcp14<mode>): Ditto.
8855 (rsqrt14<mode>): Ditto.
8856 (rsqrt14<mode>): Ditto.
8857 (avx512f_vmscalef<mode>): Ditto.
8858 (avx512f_scalef<mode>): Ditto.
8859 (avx512f_getexp<mode>): Ditto.
8860 (avx512f_sgetexp<mode>): Ditto.
8861 (avx512f_fixupimm<mode>): Ditto.
8862 (avx512f_sfixupimm<mode>): Ditto.
8863 (avx512f_rndscale<mode>): Ditto.
8864 (*avx512er_exp2<mode>): Ditto.
8865 (*avx512er_rcp28<mode>): Ditto.
8866 (avx512er_rsqrt28<mode>): Ditto.
8867 (avx512f_getmant<mode>): Ditto.
8868 (avx512f_getmant<mode>): Ditto.
8869 (avx512f_rndscale<mode>): Fix formatting.
8870
1571aac7 88712013-10-15 Martin Jambor <mjambor@suse.cz>
8872
8873 * ipa-utils.h (ipa_edge_within_scc): Declare.
8874 * ipa-cp.c (edge_within_scc): Moved...
8875 * ipa-utils.c (ipa_edge_within_scc): ...here. Updated all callers.
85065932 8876
8e9989b0 88772013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
8878 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
8879 Sergey Lega <sergey.s.lega@intel.com>
8880 Anna Tikhonova <anna.tikhonova@intel.com>
8881 Ilya Tocar <ilya.tocar@intel.com>
8882 Andrey Turetskiy <andrey.turetskiy@intel.com>
8883 Ilya Verbin <ilya.verbin@intel.com>
8884 Kirill Yukhin <kirill.yukhin@intel.com>
8885 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8886
8887 * config/i386/predicates.md (const_8_to_15_operand): New.
8888 (const_16_to_31_operand): Ditto.
8889 * config/i386/sse.md (V8FI): New.
8890 (V16FI): Ditto.
8891 (reduc_splus_v8df): Ditto.
8892 (reduc_splus_v16sf): Ditto.
8893 (avx512f_vextract<shuffletype>32x4_1): Ditto.
8894 (vec_extract_hi_<mode>): Ditto.
8895 (avx512f_vinsert<shuffletype>32x4_1): Ditto.
8896 (vec_set_lo_<mode>): Ditto.
8897 (vec_set_hi_<mode>): Ditto.
8898 (avx512f_shuf_<shuffletype>64x2_1): Ditto.
8899 (avx512f_shuf_<shuffletype>32x4_1): Ditto.
8900 (avx512f_pshufd_1): Ditto.
8901 (avx512f_broadcast<mode>): Ditto.
8902 (avx512f_broadcast<mode>): Ditto.
8903 (define_split): Split vec_extract_lo into move.
8904 (ssequartermode): Ditto.
8905 (ssedoublemode): Extened with wider modes.
8906 (vec_extract_lo_<mode>): Ditto.
8907
d2ff59d6 89082013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
8909 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
8910 Sergey Lega <sergey.s.lega@intel.com>
8911 Anna Tikhonova <anna.tikhonova@intel.com>
8912 Ilya Tocar <ilya.tocar@intel.com>
8913 Andrey Turetskiy <andrey.turetskiy@intel.com>
8914 Ilya Verbin <ilya.verbin@intel.com>
8915 Kirill Yukhin <kirill.yukhin@intel.com>
8916 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8917
8918 * config/i386/predicates.md (register_or_constm1_operand): New.
8919 * config/i386/sse.md (unspec): Add UNSPEC_UNSIGNED_PCMP, UNSPEC_TESTM,
8920 UNSPEC_TESTNM, UNSPEC_VTERNLOG, UNSPEC_ALIGN, UNSPEC_CONFLICT,
8921 UNSPEC_MASKED_EQ, UNSPEC_MASKED_GT, UNSPEC_GATHER_PREFETCH,
8922 UNSPEC_SCATTER_PREFETCH
8923 (VI48_512): New.
8924 (avx512f_ucmp<mode>3): Ditto.
8925 (avx512f_vternlog<mode>): Ditto.
8926 (avx512f_align<mode>): Ditto.
8927 (<shift_insn><mode>3): Ditto.
8928 (avx512f_<rotate>v<mode>): Ditto.
8929 (avx512f_<rotate><mode>): Ditto.
8930 (avx512f_eq<mode>3): Ditto.
8931 (avx512f_eq<mode>3_1): Ditto.
8932 (avx512f_gt<mode>3): Ditto.
8933 (avx512f_testm<mode>3): Ditto.
8934 (avx512f_testnm<mode>3): Ditto.
8935 (avx512pf_gatherpf<mode>): Ditto.
8936 (*avx512pf_gatherpf<mode>_mask): Ditto.
8937 (*avx512pf_gatherpf<mode>): Ditto.
8938 (avx512pf_scatterpf<mode>): Ditto.
8939 (*avx512pf_scatterpf<mode>_mask): Ditto.
8940 (*avx512pf_scatterpf<mode>): Ditto.
8941 (avx512f_vec_dup_gpr<mode>): Ditto.
8942 (clz<mode>2): Ditto.
8943 (conflict<mode>): Ditto.
8944 (REDUC_SMINMAX_MODE): Extened with wider modes.
8945 (reduc_<code>_<mode>): Ditto.
8946 (vlshr<mode>3): Ditto.
8947 (vashl<mode>3): Ditto.
8948
8e6b975f 89492013-10-15 Alexander Ivchenko <alexander.ivchenko@intel.com>
8950 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
8951 Sergey Lega <sergey.s.lega@intel.com>
8952 Anna Tikhonova <anna.tikhonova@intel.com>
8953 Ilya Tocar <ilya.tocar@intel.com>
8954 Andrey Turetskiy <andrey.turetskiy@intel.com>
8955 Ilya Verbin <ilya.verbin@intel.com>
8956 Kirill Yukhin <kirill.yukhin@intel.com>
8957 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
8958
8959 * config/i386/sse.md (unspec): Added UNSPEC_VPERMI2, UNSPEC_VPERMT2,
8960 UNSPEC_SCATTER.
8961 (VI48F_512): New.
8962 (avx512fmaskmode): Ditto.
8963 (bcstscalarsuff): Ditto.
8964 (avx512f_blendm<mode>): Ditto.
8965 (cmp_imm_predicate): Ditto.
8966 (avx512f_cmp<mode>3): Ditto.
8967 (avx512f_vec_dup<mode>): Ditto.
8968 (avx512f_vec_dup_mem<mode>): Ditto.
8969 (avx512f_vpermi2var<mode>3): Ditto.
8970 (avx512f_vpermt2var<mode>3): Ditto.
8971 (vec_init<mode>): Ditto.
8972 (avx512f_gathersi<mode>): Ditto.
8973 (*avx512f_gathersi<mode>): Ditto.
8974 (*avx512f_gathersi<mode>_2): Ditto.
8975 (avx512f_gatherdi<mode>): Ditto.
8976 (*avx512f_gatherdi<mode>): Ditto.
8977 (*avx512f_gatherdi<mode>_2): Ditto.
8978 (avx512f_scattersi<mode>): Ditto.
8979 (*avx512f_scattersi<mode>): Ditto.
8980 (avx512f_scatterdi<mode>): Ditto.
8981 (*avx512f_scatterdi<mode>): Ditto.
8982 (sseintprefix): Extened with wider modes.
8983 (VEC_GATHER_IDXSI): Ditto.
8984 (VEC_GATHER_IDXDI): Ditto.
8985 (VEC_GATHER_SRCDI): Ditto.
8986
2edb5c8c 89872013-10-15 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
8988 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8989
8990 * config/arm/t-aprofile: New file.
8991 * config.gcc: Handle --with-multilib-list option.
8992
1d514094 89932013-10-15 Bernd Schmidt <bernds@codesourcery.com>
8994
a64e2419 8995 * reload1.c (reloads_unique_chain_p): Ensure that r1 is
8996 the input for r2.
1d514094 8997
b223e75a 89982013-10-15 Richard Biener <rguenther@suse.de>
8999
9000 * tree-loop-distribution.c (build_empty_rdg): Inline into
9001 single user.
9002 (rdg_flag_vertex): Inline into single user.
9003 (rdg_flag_vertex_and_dependent): Likewise.
9004 (build_rdg_partition_for_vertex): Remove processed bitmap.
9005 (rdg_build_partitions): Simplify.
9006
bfb89138 90072013-10-15 Richard Biener <rguenther@suse.de>
9008
9009 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1):
9010 Restructure forwarding through conversions and copies to
9011 avoid performing copy-propagation the wrong way. Adjust
9012 recursion invocations.
9013 (forward_propagate_addr_expr): Add argument stating if we
9014 are recursing from a single-use.
9015 (ssa_forward_propagate_and_combine): Adjust.
9016
41142c53 90172013-10-14 David Malcolm <dmalcolm@redhat.com>
9018
9019 * dumpfile.h (gcc::dump_manager): New class, to hold state
9020 relating to dumpfile management.
9021 (get_dump_file_name): Remove in favor of method of dump_manager.
9022 (dump_initialized_p): Likewise.
9023 (dump_start): Likewise.
9024 (dump_finish): Likewise.
9025 (dump_switch_p): Likewise.
9026 (dump_register): Likewise.
9027 (get_dump_file_info): Likewise.
9028 * context.c (gcc::context::context): Construct the dump_manager
9029 instance.
9030 * context.h (gcc::context::get_dumps): New.
9031 (gcc::context::m_dumps): New.
9032 * coverage.c (coverage_init): Port to dump_manager API.
a64e2419 9033 * dumpfile.c (extra_dump_files): Convert to field of gcc::dump_manager.
41142c53 9034 (extra_dump_files_in_use): Likewise.
9035 (extra_dump_files_alloced): Likewise.
9036 (gcc::dump_manager::dump_manager): New.
9037 (dump_register): Convert to...
9038 (gcc::dump_manager::dump_register): ...method, replacing
9039 function-static next_dump with m_next_dump field.
9040 (get_dump_file_info): Convert to...
9041 (gcc::dump_manager::get_dump_file_info): ...method.
9042 (get_dump_file_name): Convert to...
9043 (gcc::dump_manager::get_dump_file_name): ...method.
9044 (dump_start): Convert to...
9045 (gcc::dump_manager::dump_start): ...method.
9046 (dump_finish): Convert to...
9047 (gcc::dump_manager::dump_finish): ...method.
9048 (dump_begin): Replace body with...
9049 (gcc::dump_manager::dump_begin): ...new method.
9050 (dump_phase_enabled_p): Convert to...
9051 (gcc::dump_manager::dump_phase_enabled_p): ...method.
9052 (dump_phase_enabled_p): Convert to...
9053 (gcc::dump_manager::dump_phase_enabled_p): ...method.
9054 (dump_initialized_p): Convert to...
9055 (gcc::dump_manager::dump_initialized_p): ...method.
9056 (dump_flag_name): Replace body with...
9057 (gcc::dump_manager::dump_flag_name): ...new method.
9058 (dump_enable_all): Convert to...
9059 (gcc::dump_manager::dump_enable_all): ...new method.
9060 (opt_info_enable_passes): Convert to...
9061 (gcc::dump_manager::opt_info_enable_passes): ...new method.
9062 (dump_switch_p_1): Convert to...
9063 (gcc::dump_manager::dump_switch_p_1): ...new method.
9064 (dump_switch_p): Convert to...
9065 (gcc::dump_manager::dump_switch_p): ...new method.
9066 (opt_info_switch_p): Port to dump_manager API.
9067 (enable_rtl_dump_file): Likewise.
9068 * opts-global.c (handle_common_deferred_options): Port to new
9069 dump_manager API.
9070 * passes.c (pass_manager::finish_optimization_passes): Likewise.
9071 (pass_manager::register_one_dump_file): Likewise.
9072 (pass_manager::register_pass): Likewise.
9073 (pass_init_dump_file): Likewise.
9074 (pass_fini_dump_file): Likewise.
9075 * statistics.c (statistics_early_init): Likewise.
9076
700d6a0b 90772013-10-14 Richard Biener <rguenther@suse.de>
9078
9079 * gimple.c (gimple_canonical_types, canonical_type_hash_cache,
9080 iterative_hash_canonical_type, gimple_canonical_type_hash,
9081 gimple_canonical_types_compatible_p, gimple_canonical_type_eq,
9082 gimple_register_canonical_type, print_gimple_types_stats,
9083 free_gimple_type_tables): Move to lto/lto.c
9084 (gt-gimple.h): Do not include.
9085 * gimple.h (gimple_register_canonical_type,
9086 print_gimple_types_stats, free_gimple_type_tables): Remove.
9087 * Makefile.in (GTFILES): Remove gimple.c.
9088
ebeb88c0 90892013-10-14 Travis Snoozy <quandary@remstate.com>
9090
9091 PR target/58716
9092 * config/msp430/msp430.c (msp430_option_override): Correct thinko
9093 scanning for msp430x targets.
9094
66181596 90952013-10-14 Eric Botcazou <ebotcazou@adacore.com>
9096
9097 PR bootstrap/58509
9098 * config/sparc/sparc-protos.h (widen_mem_for_ldd_peep): Declare.
9099 (registers_ok_for_ldd_peep): Move around.
9100 * config/sparc/sparc.c (widen_mem_for_ldd_peep): New.
9101 * config/sparc/sparc.md (widening peepholes): Use it.
9102
5c28cb53 91032013-10-14 Richard Biener <rguenther@suse.de>
9104
9105 PR middle-end/58712
9106 PR middle-end/55358
9107 * gimple.c (iterative_hash_canonical_type): Make sure to
9108 record the hash into the correct hashtable slot.
9109
522ca540 91102013-10-13 Eric Botcazou <ebotcazou@adacore.com>
9111
9112 PR rtl-optimization/58662
9113 * combine.c (try_combine): Take into account death nodes on I2 when
9114 splitting a PARALLEL of two independent SETs. Fix dump message.
9115
32f5fb24 91162013-10-12 Oleg Endo <olegendo@gcc.gnu.org>
9117
9118 PR target/51244
9119 * config/sh/sh_treg_combine.cc: New SH specific RTL pass.
9120 * config.gcc (SH extra_objs): Add sh_ifcvt.o.
9121 * config/sh/t-sh (sh_treg_combine.o): New entry.
9122 * config/sh/sh.c (sh_fixed_condition_code_regs): New function that
9123 implements the target hook TARGET_FIXED_CONDITION_CODE_REGS.
9124 (register_sh_passes): New function. Register sh_treg_combine pass.
9125 (sh_option_override): Invoke it.
9126 (sh_canonicalize_comparison): Handle op0_preserve_value.
9127 * sh.md (*cbranch_t"): Do not try to optimize missed test and branch
9128 opportunities. Canonicalize branch condition.
9129 (nott): Allow only if pseudos can be created for non-SH2A.
9130
2e06e505 91312013-10-12 H.J. Lu <hongjiu.lu@intel.com>
9132
9133 PR target/58690
9134 * config/i386/i386.c (ix86_copy_addr_to_reg): New function.
9135 (ix86_expand_movmem): Replace copy_addr_to_reg with
9136 ix86_copy_addr_to_reg.
9137 (ix86_expand_setmem): Likewise.
9138
e73c4e43 91392013-10-12 Alexander Monakov <amonakov@ispras.ru>
9140
9141 * config/i386/i386.c (ix86_expand_sse_compare_and_jump): Use mode
9142 provided by ix86_fp_compare_mode instead of CCFPUmode.
9143
cc45cebf 91442013-10-12 James Greenhalgh <james.greenhalgh@arm.com>
9145
9146 * config/aarch64/arm_neon.h
9147 (vtbx<1,3>_<psu>8): Fix register constriants.
9148
6328e25d 91492013-10-11 Jeff Law <law@redhat.com>
9150
9151 PR tree-optimization/58640
3d7b94f0 9152 * tree-ssa-threadupdate.c (mark_threaded_blocks): Truncate jump
9153 threading paths that cross over two loop entry points.
6328e25d 9154
fe3ef3b1 91552013-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9156
9157 * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): Generalize to
9158 handle vector float as well.
9159 (*vsx_le_perm_load_v4si): Likewise.
9160 (*vsx_le_perm_store_v2di): Likewise.
9161 (*vsx_le_perm_store_v4si): Likewise.
9162
f711c984 91632013-10-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9164
9165 * config/rs6000/vector.md (vec_realign_load<mode>): Generate vperm
9166 directly to circumvent subtract from splat{31} workaround.
9167 * config/rs6000/rs6000-protos.h (altivec_expand_vec_perm_le): New
9168 prototype.
9169 * config/rs6000/rs6000.c (altivec_expand_vec_perm_le): New.
9170 * config/rs6000/altivec.md (define_c_enum "unspec"): Add
9171 UNSPEC_VPERM_X and UNSPEC_VPERM_UNS_X.
9172 (altivec_vperm_<mode>): Convert to define_insn_and_split to
9173 separate big and little endian logic.
9174 (*altivec_vperm_<mode>_internal): New define_insn.
9175 (altivec_vperm_<mode>_uns): Convert to define_insn_and_split to
9176 separate big and little endian logic.
9177 (*altivec_vperm_<mode>_uns_internal): New define_insn.
9178 (vec_permv16qi): Add little endian logic.
9179
019413d7 91802013-10-11 Marc Glisse <marc.glisse@inria.fr>
9181
9182 * doc/extend.texi (returns_nonnull): Remove arguments.
9183
bf24193f 91842013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
9185 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9186 Sergey Lega <sergey.s.lega@intel.com>
9187 Anna Tikhonova <anna.tikhonova@intel.com>
9188 Ilya Tocar <ilya.tocar@intel.com>
9189 Andrey Turetskiy <andrey.turetskiy@intel.com>
9190 Ilya Verbin <ilya.verbin@intel.com>
9191 Kirill Yukhin <kirill.yukhin@intel.com>
9192 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9193
9194 * config/i386/sse.md (VI48F_256_512): New.
9195 (avx2_permvar<mode>): Change to ...
9196 (<avx2_avx512f>_permvar<mode>): This.
9197
bf8e1ae3 91982013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
9199 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9200 Sergey Lega <sergey.s.lega@intel.com>
9201 Anna Tikhonova <anna.tikhonova@intel.com>
9202 Ilya Tocar <ilya.tocar@intel.com>
9203 Andrey Turetskiy <andrey.turetskiy@intel.com>
9204 Ilya Verbin <ilya.verbin@intel.com>
9205 Kirill Yukhin <kirill.yukhin@intel.com>
9206 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9207
a64e2419 9208 * config/i386/i386.c (bdesc_args): Change corresponding pattern for
bf8e1ae3 9209 __builtin_ia32_cvtps2dq, __builtin_ia32_cvtps2dq256.
9210 * config/i386/sse.md (VI4_AVX): New.
9211 (sf2simodelower): Ditto.
9212 (sse2_cvtps2dq): Change to ...
9213 (<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode>): This.
9214
f23a3158 92152013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
9216 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9217 Sergey Lega <sergey.s.lega@intel.com>
9218 Anna Tikhonova <anna.tikhonova@intel.com>
9219 Ilya Tocar <ilya.tocar@intel.com>
9220 Andrey Turetskiy <andrey.turetskiy@intel.com>
9221 Ilya Verbin <ilya.verbin@intel.com>
9222 Kirill Yukhin <kirill.yukhin@intel.com>
9223 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9224
9225 * config/i386/sse.md (V_512): New.
9226 (VI_512): Ditto.
9227 (vcond<V_512:mode><VF_512:mode>): Ditto.
9228 (vcond<V_512:mode><VI_512:mode>): Ditto.
9229 (vcondu<V_512:mode><VI_512:mode>): Ditto.
9230
c298e021 92312013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
9232 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9233 Sergey Lega <sergey.s.lega@intel.com>
9234 Anna Tikhonova <anna.tikhonova@intel.com>
9235 Ilya Tocar <ilya.tocar@intel.com>
9236 Andrey Turetskiy <andrey.turetskiy@intel.com>
9237 Ilya Verbin <ilya.verbin@intel.com>
9238 Kirill Yukhin <kirill.yukhin@intel.com>
9239 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9240
9241 * config/i386/i386.c (ix86_rtx_costs): Enable fma for TARGET_AVX512F.
9242 * config/i386/sse.md (FMAMODEM): Changed modes and conditions.
9243 (FMAMODE): Ditto.
9244 (fma<mode>4): Removed condition.
9245 (fms<mode>4): Ditto.
9246 (fnma<mode>4): Ditto.
9247 (fnms<mode>4): Ditto.
9248 (fma4i_fmadd_<mode>): Ditto.
9249 (*fma_fmadd_<mode>): Ditto.
9250 (*fma_fmsub_<mode>): Ditto.
9251 (*fma_fnmadd_<mode>): Ditto.
9252 (*fma_fnmsub_<mode>): Ditto.
9253 (fmaddsub_<mode>): Allow for TARGET_AVX512F.
9254 (*fma_fmaddsub_<mode>): Ditto.
9255 (*fma_fmsubadd_<mode>): Ditto.
9256 (*fmai_fmadd_<mode>): Ditto.
9257 (*fmai_fmsub_<mode>): Ditto.
9258 (*fmai_fnmadd_<mode>): Ditto.
9259 (*fmai_fnmsub_<mode>): Ditto.
9260
2257113d 92612013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
9262 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9263 Sergey Lega <sergey.s.lega@intel.com>
9264 Anna Tikhonova <anna.tikhonova@intel.com>
9265 Ilya Tocar <ilya.tocar@intel.com>
9266 Andrey Turetskiy <andrey.turetskiy@intel.com>
9267 Ilya Verbin <ilya.verbin@intel.com>
9268 Kirill Yukhin <kirill.yukhin@intel.com>
9269 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9270
9271 * config/i386/sse.md (VI248_AVX2_8_AVX512F): New.
9272 (VI124_256): Changed to ...
9273 (VI124_256_48_512): This.
9274 (ssepackmode): Extended with wider modes.
9275 (<code><mode>3): Changed iterator.
9276 (*avx2_<code><mode>3): Ditto.
9277 (vec_pack_trunc_<mode>): Ditto.
9278
feadfe94 92792013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
9280 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9281 Sergey Lega <sergey.s.lega@intel.com>
9282 Anna Tikhonova <anna.tikhonova@intel.com>
9283 Ilya Tocar <ilya.tocar@intel.com>
9284 Andrey Turetskiy <andrey.turetskiy@intel.com>
9285 Ilya Verbin <ilya.verbin@intel.com>
9286 Kirill Yukhin <kirill.yukhin@intel.com>
9287 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9288
9289 * config/i386/sse.md (VI124_AVX2_48_AVX512F): New.
9290 (VI8F_256_512): Ditto.
9291 (abs<mode>2): Changed iterator.
9292 (avx2_perm<mode>): Changed to ...
9293 (<avx2_avx512f>_perm<mode>): This.
9294 (avx2_perm<mode>_1): Changed to ...
9295 (<avx2_avx512f>_perm<mode>_1): This.
9296
f062acd7 92972013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
9298 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9299 Sergey Lega <sergey.s.lega@intel.com>
9300 Anna Tikhonova <anna.tikhonova@intel.com>
9301 Ilya Tocar <ilya.tocar@intel.com>
9302 Andrey Turetskiy <andrey.turetskiy@intel.com>
9303 Ilya Verbin <ilya.verbin@intel.com>
9304 Kirill Yukhin <kirill.yukhin@intel.com>
9305 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9306
9307 * config/i386/sse.md (VI48_AVX512F): New.
9308 (VI48_AVX2): Changed to ...
9309 (VI48_AVX2_48_AVX512F): This.
9310 (avx2_ashrv<mode>): Changed to ...
9311 (<avx2_avx512f>_ashrv<mode>): This.
9312 (avx2_<shift_insn>v<mode>): Changed to ...
9313 (<avx2_avx512f>_<shift_insn>v<mode>): This.
9314
c6cff444 93152013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
9316 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9317 Sergey Lega <sergey.s.lega@intel.com>
9318 Anna Tikhonova <anna.tikhonova@intel.com>
9319 Ilya Tocar <ilya.tocar@intel.com>
9320 Andrey Turetskiy <andrey.turetskiy@intel.com>
9321 Ilya Verbin <ilya.verbin@intel.com>
9322 Kirill Yukhin <kirill.yukhin@intel.com>
9323 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9324
9325 * config/i386/sse.md (VI4_AVX512F): New.
9326 (VI8_AVX2_AVX512F): Ditto.
9327 (mul<mode>3): Extended with wider modes.
9328 (*<sse4_1_avx2>_mul<mode>3): Ditto.
9329 (mul<mode>3): Ditto.
9330 (vec_widen_<s>mult_odd_<mode>): Ditto.
9331
9abbf9e6 93322013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
9333 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9334 Sergey Lega <sergey.s.lega@intel.com>
9335 Anna Tikhonova <anna.tikhonova@intel.com>
9336 Ilya Tocar <ilya.tocar@intel.com>
9337 Andrey Turetskiy <andrey.turetskiy@intel.com>
9338 Ilya Verbin <ilya.verbin@intel.com>
9339 Kirill Yukhin <kirill.yukhin@intel.com>
9340 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9341
9342 * config/i386/sse.md (VI2_AVX512F): New.
9343 (VI124_AVX512F): Ditto.
9344 (sseunpackmode): Extended with wider modes.
9345 (sseunpackfltmode): Ditto.
9346 (vec_unpacks_float_hi_<mode>): Ditto.
9347 (vec_unpacks_float_lo_<mode>): Ditto.
9348 (vec_unpacku_float_hi_<mode>): Ditto.
9349 (vec_unpacku_float_lo_<mode>): Ditto.
9350 (vec_unpacks_lo_<mode>): Ditto.
9351 (vec_unpacks_hi_<mode>): Ditto.
9352 (vec_unpacku_lo_<mode>): Ditto.
9353 (vec_unpacku_hi_<mode>): Ditto.
9354
1793b773 93552013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
9356 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9357 Sergey Lega <sergey.s.lega@intel.com>
9358 Anna Tikhonova <anna.tikhonova@intel.com>
9359 Ilya Tocar <ilya.tocar@intel.com>
9360 Andrey Turetskiy <andrey.turetskiy@intel.com>
9361 Ilya Verbin <ilya.verbin@intel.com>
9362 Kirill Yukhin <kirill.yukhin@intel.com>
9363 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9364
9365 * config/i386/i386.md (multdiv): New.
9366 (multdiv_mnemonic): Ditto.
9367 * config/i386/sse.md (<sse>_vmmul<mode>3): Changed to...
9368 (<sse>_vm<multdiv_mnemonic><mode>3): This.
9369 (<sse>_vmdiv<mode>3): Removed.
9370
6615b722 93712013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
9372 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9373 Sergey Lega <sergey.s.lega@intel.com>
9374 Anna Tikhonova <anna.tikhonova@intel.com>
9375 Ilya Tocar <ilya.tocar@intel.com>
9376 Andrey Turetskiy <andrey.turetskiy@intel.com>
9377 Ilya Verbin <ilya.verbin@intel.com>
9378 Kirill Yukhin <kirill.yukhin@intel.com>
9379 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9380
9381 * config/i386/sse.md (V): Extended with wider modes.
9382 (VF2): Ditto.
9383 (ssehalfvecmode): Ditto.
9384 (i128): Ditto.
9385 (ssepackfltmode): Ditto.
9386 (avx_vec_concat<mode>): Ditto.
9387 (V_256_512): New iterator.
9388 (VF2_512_256): Ditto.
9389 (si2dfmode): New attribute.
9390 (si2dfmodelower): Ditto.
9391 (sf2dfmode): Ditto.
9392 (concat_tg_mode): Ditto.
9393 (floatv4siv4df2): Changed to ...
9394 (float<si2dfmodelower><mode>2): This.
9395 (avx_cvtps2pd256): Changed to ...
9396 (<sse2_avx_avx512f>_cvtps2pd<avxsizesuffix>): This.
9397 (vec_pack_trunc_v4df): Changed to ...
9398 (vec_pack_trunc_<mode>): This.
9399 (avx_vpermil<mode>): Changed to ...
9400 (<sse2_avx_avx512f>_vpermil<mode>): This.
9401 (<fixsuffix>fix_truncv8dfv8si2): New.
9402 (vec_pack_sfix_trunc_v8df): Ditto.
9403 (avx512f_rndscale<mode>): Ditto.
9404 (avx512f_roundpd512): Ditto.
9405 (vec_pack_ufix_trunc_<mode>): Updated iterator.
9406
03ae25dc 94072013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
9408 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9409 Sergey Lega <sergey.s.lega@intel.com>
9410 Anna Tikhonova <anna.tikhonova@intel.com>
9411 Ilya Tocar <ilya.tocar@intel.com>
9412 Andrey Turetskiy <andrey.turetskiy@intel.com>
9413 Ilya Verbin <ilya.verbin@intel.com>
9414 Kirill Yukhin <kirill.yukhin@intel.com>
9415 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9416
9417 * config/i386/i386.md (any_fix): New iterator.
9418 (fixsuffix): New attribute.
9419 * config/i386/sse.md (VF1): Extened with wider modes.
9420 (VI): Ditto.
9421 (VI_AVX2): Ditto.
9422 (VI8): Ditto.
9423 (sseintvecmodelower): Ditto.
9424 (ssescalarmode): Ditto.
9425 (ssescalarnum): Ditto.
9426 (VF1_128_256): New.
9427 (ssexmmmode): Ditto.
9428 (<fixsuffix>fix_truncv16sfv16si2): Ditto.
9429 (<sse>_rcp<mode>2): Change iterator.
9430 (rsqrt<mode>2): Ditto.
9431 (<sse>_rsqrt<mode>2): Ditto.
9432 (avx2_vec_dup<mode>): Ditto.
9433 (<sse4_1>_round<ssemodesuffix>_sfix<avxsizesuffix>): Ditto.
9434 (round<mode>2_sfix): Ditto.
9435 (avx2_pbroadcast<mode>): Ditto.
9436 (*andnot<mode>3): Handle XI mode.
9437 (*<code><mode>3): Ditto.
9438 (AVXTOSSEMODE): Removed.
9439 (avx_vpermil<mode>): Changed to ...
9440 (<sse2_avx_avx512f>_vpermil<mode>): This.
9441
4c1099de 94422013-10-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
9443 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
9444 Sergey Lega <sergey.s.lega@intel.com>
9445 Anna Tikhonova <anna.tikhonova@intel.com>
9446 Ilya Tocar <ilya.tocar@intel.com>
9447 Andrey Turetskiy <andrey.turetskiy@intel.com>
9448 Ilya Verbin <ilya.verbin@intel.com>
9449 Kirill Yukhin <kirill.yukhin@intel.com>
9450 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
9451
9452 * config/i386/sse.md (<sse2>_movnt<mode>): Update constraint to "v".
9453 (<sse>_comi): Ditto.
9454 (<sse>_ucomi): Ditto.
9455 (sse_cvtss2siq_2): Ditto.
9456 (sse2_cvtsd2si): Ditto.
9457 (sse2_cvtsd2siq): Ditto.
9458 (sse2_cvttsd2si): Ditto.
9459 (sse2_cvttsd2siq): Ditto.
9460 (<shift_insn><mode>3): Ditto.
9461 (sse2_cvtsi2sdq): Update constraint and prefix.
9462 (sse_cvtsi2ss): Update prefix.
9463 (sse_cvtsi2ssq): Ditto.
9464
7b96f987 94652013-10-11 Jakub Jelinek <jakub@redhat.com>
9466
9467 * tree-vrp.c (infer_nonnull_range): Use is_gimple_call,
9468 ignore internal calls.
9469
823f6908 94702013-10-11 Richard Biener <rguenther@suse.de>
9471
a64e2419 9472 * tree-pretty-print.c (dump_generic_node): Allow to dump both (D)
9473 and (ab) for SSA_NAMEs. Mark INTEGER_CSTs with (OVF) if
9474 TREE_OVERFLOW is set.
823f6908 9475
4534fdd0 94762013-10-11 Thomas Schwinge <thomas@codesourcery.com>
9477
450988d5 9478 * tree.h (OMP_CLAUSE_CODE): Remove duplicate definition.
9479
d4f73cba 9480 * gimple.c: GIMPLE statements have subcodes, not sub-codes.
9481 * gimple.h: Likewise.
9482
3d7b94f0 9483 * doc/generic.texi (OpenMP): OMP_CLAUSE_* are subcodes, not sub-codes.
235cdba0 9484
f5d29926 9485 * doc/generic.texi (Adding new DECL node types): Explain *_CHECK
9486 macros.
9487
5d5bffe0 9488 * doc/gimple.texi (is_gimple_omp): Move into the correct section.
9489
3d7b94f0 9490 * acinclude.m4 (gcc_GAS_FLAGS): Add more gcc_cv_as_flags overrides.
4534fdd0 9491 * configure: Regenerate.
9492
bc7bff74 94932013-10-11 Jakub Jelinek <jakub@redhat.com>
9494
9495 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__LOOPTEMP_
9496 and new OpenMP 4.0 clauses, handle UDR OMP_CLAUSE_REDUCTION,
9497 formatting fixes, use pp_colon instead of pp_character (..., ':'),
9498 similarly pp_right_paren.
9499 (dump_generic_node): Handle OMP_DISTRIBUTE, OMP_TEAMS,
9500 OMP_TARGET_DATA, OMP_TARGET, OMP_TARGET_UPDATE, OMP_TASKGROUP,
9501 allow OMP_FOR_INIT to be NULL, handle OMP_ATOMIC_SEQ_CST.
9502 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add OpenMP 4.0
9503 clauses.
9504 (omp_declare_simd_clauses_equal,
9505 omp_remove_redundant_declare_simd_attrs): New functions.
9506 (attribute_value_equal): Use omp_declare_simd_clauses_equal.
9507 (walk_tree_1): Handle new OpenMP 4.0 clauses.
9508 * tree.h (OMP_LOOP_CHECK): Define.
9509 (OMP_FOR_BODY, OMP_FOR_CLAUSES, OMP_FOR_INIT, OMP_FOR_COND,
9510 OMP_FOR_INCR, OMP_FOR_PRE_BODY): Use it.
9511 (OMP_TASKGROUP_BODY, OMP_TEAMS_BODY, OMP_TEAMS_CLAUSES,
9512 OMP_TARGET_DATA_BODY, OMP_TARGET_DATA_CLAUSES, OMP_TARGET_BODY,
9513 OMP_TARGET_CLAUSES, OMP_TARGET_UPDATE_CLAUSES, OMP_CLAUSE_SIZE,
9514 OMP_ATOMIC_SEQ_CST, OMP_CLAUSE_DEPEND_KIND, OMP_CLAUSE_MAP_KIND,
9515 OMP_CLAUSE_MAP_ZERO_BIAS_ARRAY_SECTION, OMP_CLAUSE_PROC_BIND_KIND,
9516 OMP_CLAUSE_REDUCTION_OMP_ORIG_REF, OMP_CLAUSE_ALIGNED_ALIGNMENT,
9517 OMP_CLAUSE_NUM_TEAMS_EXPR, OMP_CLAUSE_THREAD_LIMIT_EXPR,
9518 OMP_CLAUSE_DEVICE_ID, OMP_CLAUSE_DIST_SCHEDULE_CHUNK_EXPR,
9519 OMP_CLAUSE_SIMDLEN_EXPR): Define.
9520 (OMP_CLAUSE_DECL): Change range up to OMP_CLAUSE__LOOPTEMP_.
9521 (omp_remove_redundant_declare_simd_attrs): New prototype.
9522 * gimple.def (GIMPLE_OMP_TASKGROUP, GIMPLE_OMP_TARGET,
9523 GIMPLE_OMP_TEAMS): New codes.
9524 (GIMPLE_OMP_RETURN): Use GSS_OMP_ATOMIC_STORE instead of GSS_BASE.
9525 * omp-low.c (struct omp_context): Add cancel_label and cancellable
9526 fields.
9527 (target_nesting_level): New variable.
9528 (extract_omp_for_data): Handle GF_OMP_FOR_KIND_DISTRIBUTE and
9529 OMP_CLAUSE_DIST_SCHEDULE. Don't fallback to library implementation
9530 for collapse > 1 static schedule unless ordered.
9531 (get_ws_args_for): Add par_stmt argument. Handle combined loops.
9532 (determine_parallel_type): Adjust get_ws_args_for caller.
9533 (install_var_field): Handle mask & 4 for double indirection.
9534 (scan_sharing_clauses): Ignore shared clause on teams construct.
9535 Handle OMP_CLAUSE__LOOPTEMP_ and new OpenMP 4.0 clauses.
9536 (create_omp_child_function): If inside target or declare target
3d7b94f0 9537 constructs, set "omp declare target" attribute on the child function.
bc7bff74 9538 (find_combined_for): New function.
9539 (scan_omp_parallel): Handle combined loops.
9540 (scan_omp_target, scan_omp_teams): New functions.
9541 (check_omp_nesting_restrictions): Check new OpenMP 4.0 nesting
9542 restrictions and set ctx->cancellable for cancellable constructs.
9543 (scan_omp_1_stmt): Call check_omp_nesting_restrictions also on
9544 selected builtin calls. Handle GIMPLE_OMP_TASKGROUP,
9545 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS.
3d7b94f0 9546 (build_omp_barrier): Add lhs argument, return gimple rather than tree.
bc7bff74 9547 (omp_clause_aligned_alignment): New function.
a64e2419 9548 (lower_rec_simd_input_clauses): Only call SET_DECL_VALUE_EXPR on decls.
bc7bff74 9549 (lower_rec_input_clauses): Add FD argument. Ignore shared clauses
9550 on teams constructs. Handle user defined reductions and new
9551 OpenMP 4.0 clauses.
9552 (lower_reduction_clauses): Don't set placeholder to address of ref
9553 if it has already the right type.
9554 (lower_send_clauses): Handle OMP_CLAUSE__LOOPTEMP_.
9555 (expand_parallel_call): Use the new non-_start suffixed builtins,
9556 handle OMP_CLAUSE_PROC_BIND, don't call the outlined function
9557 and GOMP_parallel_end after the call.
9558 (expand_task_call): Handle OMP_CLAUSE_DEPEND.
9559 (expand_omp_for_init_counts): Handle combined loops.
9560 (expand_omp_for_init_vars): Add inner_stmt argument, handle combined
9561 loops.
9562 (expand_omp_for_generic): Likewise. Use GOMP_loop_end_cancel at the
9563 end of cancellable loops.
9564 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
9565 Likewise. Handle collapse > 1 loops.
9566 (expand_omp_simd): Handle combined loops.
9567 (expand_omp_for): Add inner_stmt argument, adjust callers of
9568 expand_omp_for* functions, use expand_omp_for_static*chunk even
9569 for collapse > 1 unless ordered.
9570 (expand_omp_sections): Use GOMP_sections_end_cancel at the end
9571 of cancellable sections.
9572 (expand_omp_single): Remove need_barrier variable, just rely on
9573 gimple_omp_return_nowait_p. Adjust build_omp_barrier caller.
9574 (expand_omp_synch): Allow GIMPLE_OMP_TASKGROUP and GIMPLE_OMP_TEAMS.
9575 (expand_omp_atomic_load, expand_omp_atomic_store,
9576 expand_omp_atomic_fetch_op): Handle gimple_omp_atomic_seq_cst_p.
9577 (expand_omp_target): New function.
9578 (expand_omp): Handle combined loops. Handle GIMPLE_OMP_TASKGROUP,
9579 GIMPLE_OMP_TEAMS, GIMPLE_OMP_TARGET.
9580 (build_omp_regions_1): Immediately close region for
9581 GF_OMP_TARGET_KIND_UPDATE.
9582 (maybe_add_implicit_barrier_cancel): New function.
9583 (lower_omp_sections): Adjust lower_rec_input_clauses caller. Handle
9584 cancellation.
9585 (lower_omp_single): Likewise. Add clobber after the barrier.
9586 (lower_omp_taskgroup): New function.
9587 (lower_omp_for): Handle combined loops. Adjust
9588 lower_rec_input_clauses caller. Handle cancellation.
9589 (lower_depend_clauses): New function.
9590 (lower_omp_taskreg): Lower depend clauses. Adjust
9591 lower_rec_input_clauses caller. Add clobber after the call. Handle
9592 cancellation.
9593 (lower_omp_target, lower_omp_teams): New functions.
9594 (lower_omp_1): Handle cancellation. Handle GIMPLE_OMP_TASKGROUP,
9595 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GOMP_barrier, GOMP_cancel
9596 and GOMP_cancellation_point calls.
9597 (lower_omp): Fold stmts inside of target region.
9598 (diagnose_sb_1, diagnose_sb_2): Handle GIMPLE_OMP_TASKGROUP,
9599 GIMPLE_OMP_TARGET and GIMPLE_OMP_TEAMS.
9600 * builtin-types.def (DEF_FUNCTION_TYPE_8): Document.
9601 (BT_FN_VOID_OMPFN_PTR_UINT,
9602 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG,
9603 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG,
9604 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): Remove.
9605 (BT_FN_VOID_OMPFN_PTR_UINT_UINT_UINT,
9606 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_UINT,
9607 BT_FN_VOID_OMPFN_PTR_UINT_LONG_LONG_LONG_LONG_UINT,
9608 BT_FN_BOOL_INT, BT_FN_BOOL_INT_BOOL, BT_FN_VOID_UINT_UINT,
9609 BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR,
9610 BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR,
9611 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR): New.
9612 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1,
9613 call_may_clobber_ref_p_1): Handle BUILT_IN_GOMP_BARRIER_CANCEL,
9614 BUILT_IN_GOMP_TASKGROUP_END, BUILT_IN_GOMP_LOOP_END_CANCEL,
9615 BUILT_IN_GOMP_SECTIONS_END_CANCEL. Don't handle
9616 BUILT_IN_GOMP_PARALLEL_END.
9617 * gimple-low.c (lower_stmt): Handle GIMPLE_OMP_TASKGROUP,
9618 GIMPLE_OMP_TARGET and GIMPLE_OMP_TEAMS.
9619 * gimple-pretty-print.c (dump_gimple_omp_for): Handle
9620 GF_OMP_FOR_KIND_DISTRIBUTE.
9621 (dump_gimple_omp_target, dump_gimple_omp_teams): New functions.
9622 (dump_gimple_omp_block): Handle GIMPLE_OMP_TASKGROUP.
9623 (dump_gimple_omp_return): Print lhs if it has any.
9624 (dump_gimple_omp_atomic_load, dump_gimple_omp_atomic_store): Handle
9625 gimple_omp_atomic_seq_cst_p.
9626 (pp_gimple_stmt_1): Handle GIMPLE_OMP_TASKGROUP, GIMPLE_OMP_TARGET
9627 and GIMPLE_OMP_TEAMS.
9628 * langhooks.c (lhd_omp_mappable_type): New function.
9629 * tree-vectorizer.c (struct simd_array_to_simduid): Fix up comment.
9630 * langhooks.h (struct lang_hooks_for_types): Add omp_mappable_type
9631 hook.
9632 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP,
9633 GOVD_ALIGNED and GOVD_MAP_TO_ONLY.
a64e2419 9634 (enum omp_region_type): Add ORT_TEAMS, ORT_TARGET_DATA and ORT_TARGET.
bc7bff74 9635 (struct gimplify_omp_ctx): Add combined_loop field.
9636 (gimplify_call_expr, gimplify_modify_expr): Don't call fold_stmt
9637 on stmts inside of target region.
9638 (is_gimple_stmt): Return true for OMP_DISTRIBUTE and OMP_TASKGROUP.
9639 (omp_firstprivatize_variable): Handle GOVD_MAP, GOVD_ALIGNED,
9640 ORT_TARGET and ORT_TARGET_DATA.
9641 (omp_add_variable): Avoid checks on readding var for GOVD_ALIGNED.
9642 Handle GOVD_MAP.
9643 (omp_notice_threadprivate_variable): Complain about threadprivate
9644 variables in target region.
9645 (omp_notice_variable): Complain about vars with non-mappable type
9646 in target region. Handle ORT_TEAMS, ORT_TARGET and ORT_TARGET_DATA.
9647 (omp_check_private): Ignore ORT_TARGET* regions.
9648 (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses_1,
9649 gimplify_adjust_omp_clauses): Handle new OpenMP 4.0 clauses.
9650 (find_combined_omp_for): New function.
9651 (gimplify_omp_for): Handle gimplification of combined loops.
9652 (gimplify_omp_workshare): Gimplify also OMP_TARGET, OMP_TARGET_DATA,
9653 OMP_TEAMS.
9654 (gimplify_omp_target_update): New function.
9655 (gimplify_omp_atomic): Handle OMP_ATOMIC_SEQ_CST.
9656 (gimplify_expr): Handle OMP_DISTRIBUTE, OMP_TARGET, OMP_TARGET_DATA,
9657 OMP_TARGET_UPDATE, OMP_TEAMS, OMP_TASKGROUP.
9658 (gimplify_body): If fndecl has "omp declare target" attribute, add
9659 implicit ORT_TARGET context around it.
9660 * tree.def (OMP_DISTRIBUTE, OMP_TEAMS, OMP_TARGET_DATA, OMP_TARGET,
9661 OMP_TASKGROUP, OMP_TARGET_UPDATE): New tree codes.
9662 * tree-nested.c (convert_nonlocal_reference_stmt,
9663 convert_local_reference_stmt, convert_gimple_call): Handle
9664 GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
9665 * omp-builtins.def (BUILT_IN_GOMP_TASK): Use
9666 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR
9667 instead of BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT.
9668 (BUILT_IN_GOMP_TARGET, BUILT_IN_GOMP_TARGET_DATA,
9669 BUILT_IN_GOMP_TARGET_END_DATA, BUILT_IN_GOMP_TARGET_UPDATE,
9670 BUILT_IN_GOMP_TEAMS, BUILT_IN_BARRIER_CANCEL,
9671 BUILT_IN_GOMP_LOOP_END_CANCEL,
9672 BUILT_IN_GOMP_SECTIONS_END_CANCEL, BUILT_IN_OMP_GET_TEAM_NUM,
9673 BUILT_IN_OMP_GET_NUM_TEAMS, BUILT_IN_GOMP_TASKGROUP_START,
9674 BUILT_IN_GOMP_TASKGROUP_END, BUILT_IN_GOMP_PARALLEL_LOOP_STATIC,
9675 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC,
9676 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED,
9677 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME, BUILT_IN_GOMP_PARALLEL,
9678 BUILT_IN_GOMP_PARALLEL_SECTIONS, BUILT_IN_GOMP_CANCEL,
9679 BUILT_IN_GOMP_CANCELLATION_POINT): New built-ins.
9680 (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC_START,
9681 BUILT_IN_GOMP_PARALLEL_LOOP_DYNAMIC_START,
9682 BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED_START,
9683 BUILT_IN_GOMP_PARALLEL_LOOP_RUNTIME_START,
9684 BUILT_IN_GOMP_PARALLEL_START, BUILT_IN_GOMP_PARALLEL_END,
9685 BUILT_IN_GOMP_PARALLEL_SECTIONS_START): Remove.
9686 * tree-inline.c (remap_gimple_stmt, estimate_num_insns):
9687 Handle GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
9688 * gimple.c (gimple_build_omp_taskgroup, gimple_build_omp_target,
9689 gimple_build_omp_teams): New functions.
9690 (walk_gimple_op): Handle GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS and
9691 GIMPLE_OMP_TASKGROUP. Walk optional lhs on GIMPLE_OMP_RETURN.
9692 (walk_gimple_stmt, gimple_copy): Handle GIMPLE_OMP_TARGET,
9693 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
9694 * gimple.h (enum gf_mask): GF_OMP_FOR_KIND_DISTRIBUTE,
9695 GF_OMP_FOR_COMBINED, GF_OMP_FOR_COMBINED_INTO,
9696 GF_OMP_TARGET_KIND_MASK, GF_OMP_TARGET_KIND_REGION,
9697 GF_OMP_TARGET_KIND_DATA, GF_OMP_TARGET_KIND_UPDATE,
9698 GF_OMP_ATOMIC_SEQ_CST): New.
9699 (gimple_build_omp_taskgroup, gimple_build_omp_target,
9700 gimple_build_omp_teams): New prototypes.
9701 (gimple_has_substatements): Handle GIMPLE_OMP_TARGET,
9702 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
9703 (gimple_omp_subcode): Use GIMPLE_OMP_TEAMS instead of
9704 GIMPLE_OMP_SINGLE as end of range.
9705 (gimple_omp_return_set_lhs, gimple_omp_return_lhs,
9706 gimple_omp_return_lhs_ptr, gimple_omp_atomic_seq_cst_p,
9707 gimple_omp_atomic_set_seq_cst, gimple_omp_for_combined_p,
9708 gimple_omp_for_set_combined_p, gimple_omp_for_combined_into_p,
9709 gimple_omp_for_set_combined_into_p, gimple_omp_target_clauses,
9710 gimple_omp_target_clauses_ptr, gimple_omp_target_set_clauses,
9711 gimple_omp_target_kind, gimple_omp_target_set_kind,
9712 gimple_omp_target_child_fn, gimple_omp_target_child_fn_ptr,
9713 gimple_omp_target_set_child_fn, gimple_omp_target_data_arg,
9714 gimple_omp_target_data_arg_ptr, gimple_omp_target_set_data_arg,
9715 gimple_omp_teams_clauses, gimple_omp_teams_clauses_ptr,
9716 gimple_omp_teams_set_clauses): New inlines.
9717 (CASE_GIMPLE_OMP): Add GIMPLE_OMP_TARGET, GIMPLE_OMP_TEAMS
9718 and GIMPLE_OMP_TASKGROUP.
3d7b94f0 9719 * tree-core.h (enum omp_clause_code): Add new OpenMP 4.0 clause codes.
bc7bff74 9720 (enum omp_clause_depend_kind, enum omp_clause_map_kind,
9721 enum omp_clause_proc_bind_kind): New.
9722 (union omp_clause_subcode): Add depend_kind, map_kind and
9723 proc_bind_kind fields.
9724 * tree-cfg.c (make_edges): Handle GIMPLE_OMP_TARGET,
9725 GIMPLE_OMP_TEAMS and GIMPLE_OMP_TASKGROUP.
9726 * langhooks-def.h (lhd_omp_mappable_type): New prototype.
9727 (LANG_HOOKS_OMP_MAPPABLE_TYPE): Define.
9728 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
9729
5327650f 97302013-10-10 Teresa Johnson <tejohnson@google.com>
9731
9732 * predict.c (tree_estimate_probability): Add new parameter
9733 for estimate_bb_frequencies.
9734 (estimate_bb_frequencies): Add new parameter to force estimation.
9735 (rebuild_frequencies): When max frequency in function is small,
9736 recompute counts from frequencies.
9737 * predict.h (estimate_bb_frequencies): New parameter.
9738
a59d2969 97392013-10-10 David Malcolm <dmalcolm@redhat.com>
9740
9741 * ipa-inline.c (ipa_inline): Fix leak of "order" when
9742 optimizations are disabled.
9743
073ce4ec 97442013-10-10 David Malcolm <dmalcolm@redhat.com>
9745
9746 * coverage.c (coverage_finish): Fix leak of da_file_name.
9747
83315e72 97482013-10-10 Jan Hubicka <jh@suse.cz>
9749
9750 * config/i386/x86-tune.def: Enable X86_TUNE_SSE_TYPELESS_STORES
9751 for generic, enable X86_TUNE_SSE_LOAD0_BY_PXOR for Bulldozer,
9752 Bobcat and generic.
9753
8315fc61 97542013-10-10 Jakub Jelinek <jakub@redhat.com>
9755
9756 PR middle-end/58670
9757 * stmt.c (expand_asm_operands): Add FALLTHRU_BB argument,
9758 if any labels are in FALLTHRU_BB, use a special label emitted
9759 immediately after the asm goto insn rather than label_rtx
9760 of the LABEL_DECL.
9761 (expand_asm_stmt): Adjust caller.
9762 * cfgrtl.c (commit_one_edge_insertion): Force splitting of
9763 edge if the last insn in predecessor is a jump with single successor,
9764 but it isn't simplejump_p.
9765
754bbe60 97662013-10-10 Richard Biener <rguenther@suse.de>
9767
9768 PR tree-optimization/58656
a64e2419 9769 * tree-ssa-pre.c (phi_translate): Do not cache failed translations.
754bbe60 9770
06c4e319 97712013-10-10 Andrew MacLeod <amacleod@redhat.com>
9772
3d7b94f0 9773 * gimplify.c: Include expr.h and tm_p.h for targets with special
9774 va-arg padding requirements.
06c4e319 9775
09c41ee4 97762013-10-10 Andrew MacLeod <amacleod@redhat.com>
9777
9778 * tree-flow.h: Move some prototypes to gimple.h.
9779 (gimple_fold_indirect_ref): Move prototype to gimple-fold.h.
9780 * gimple.h: Relocate some prototypes from tree-flow.h
9781 * builtins.c (std_gimplify_va_arg_expr, build_va_arg_indirect_ref):
9782 Move to gimplify.c.
9783 * gimplify.c (gimple_fold_indirect_ref): Move to gimple-fold.c.
9784 (build_va_arg_indirect_ref): Relocate and make static.
9785 (std_gimplify_va_arg_expr): Relocate here.
9786 * gimple-fold.c (gimple_fold_indirect_ref): Relocate here.
9787 * gimple-fold.h (gimple_fold_indirect_ref): Add prototype.
9788
30d42e5a 97892013-10-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9790
9791 * doc/md.texi: Document the mnemonic attribute.
9792
c534412b 97932013-10-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9794
9795 PR target/57377
9796 * gensupport.c (gen_mnemonic_attr): Handle (set (attr x) y) and
9797 (set_attr_alternative x ...) when searching for user defined
9798 mnemonic attribute.
9799
02d1b001 98002013-10-10 Andrew MacLeod <amacleod@redhat.com>
9801
9802 * config/aplha/alpha.c: Add gimple-ssa.h to include list.
9803
1906368d 98042013-10-09 Easwaran Raman <eraman@google.com>
9805
9806 * params.def (PARAM_MIN_SIZE_FOR_STACK_SHARING): New param...
9807 * cfgexpand.c (defer_stack_allocation): ...use here
9808 * doc/invoke.texi: Add documentation for min-size-for-stack-sharing.
9809
f32420fb 98102013-10-09 Zhenqiang Chen <zhenqiang.chen@arm.com>
9811
9812 * tree-ssa-phiopts.c (rhs_is_fed_for_value_replacement): New function.
9813 (operand_equal_for_value_replacement): New function, extracted from
9814 value_replacement and enhanced to catch more cases.
9815 (value_replacement): Use operand_equal_for_value_replacement.
9816
23b937aa 98172013-10-09 Andrew MacLeod <amacleod@redhat.com>
9818
3d7b94f0 9819 * loop-doloop.c (doloop_modify, doloop_optimize): Use
23b937aa 9820 get_max_loop_iterations.
9821
dff74f11 98222013-10-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9823
9824 * config/arm/aarch-common.c (arm_early_load_addr_dep):
9825 Place comment above function.
9826
64641360 98272013-10-09 Andrew MacLeod <amacleod@redhat.com>
9828
9829 * tree-flow.h: Remove all remaining prototypes, enums and structs that
9830 are not related to tree-cfg.c.
9831 * tree-ssa-address.h: New file. Relocate prototypes.
9832 * tree-ssa-address.c: (struct mem_address): Relocate from tree-flow.h.
9833 (addr_for_mem_ref): New. Combine call to get_address_description and
9834 return addr_for_mem_ref.
9835 * expr.c (expand_expr_real_1): Use new addr_for_mem_ref routine.
9836 * tree-ssa-live.h: Adjust prototypes.
9837 * passes.c: Include tree-ssa-live.h.
9838 * gimple-pretty-print.h (gimple_dump_bb): Add prototype.
9839 * graphite.c (graphite_transform_loops): Make static.
9840 (graphite_transforms, gate_graphite_transforms, pass_data_graphite,
3d7b94f0 9841 make_pass_graphite, pass_data_graphite_transforms,
64641360 9842 make_pass_graphite_transforms): Relocate here from tree-ssa-loop.c.
9843 * ipa-pure-const.c (warn_function_noreturn): Make static.
9844 (execute_warn_function_noreturn, gate_warn_function_noreturn,
9845 class pass_warn_function_noreturn, make_pass_warn_function_noreturn):
9846 Relocate from tree-cfg.c
9847 * tree-cfg.c (tree_node_can_be_shared, gimple_empty_block_p): Make
9848 static.
9849 (execute_warn_function_noreturn, gate_warn_function_noreturn,
9850 class pass_warn_function_noreturn, make_pass_warn_function_noreturn):
9851 Move to ipa-pure-const.c.
3d7b94f0 9852 (execute_fixup_cfg, class pass_fixup_cfg, make_pass_fixup_cfg):
9853 Relocate from tree-optimize.c.
64641360 9854 * tree-optimize.c (execute_fixup_cfg, class pass_fixup_cfg,
9855 make_pass_fixup_cfg): Move to tree-cfg.c.
9856 * tree-chrec.h: (enum ev_direction): Relocate here from tree-flow.h.
9857 Relocate some prototypes.
9858 * tree-data-ref.h (tree_check_data_deps) Add prototype.
9859 * tree-dump.c (dump_function_to_file): Remove prototype.
9860 Add tree-flow.h to the include file.
9861 * tree-dump.h: Remove prototype.
9862 * tree-parloops.h: New File. Add prototypes.
9863 * tree-parloops.c (gate_tree_parallelize_loops, tree_parallelize_loops,
9864 pass_data_parallelize_loops, make_pass_parallelize_loops): Relocate
9865 from tree-ssa-loop.c.
9866 * tree-predcom.c (run_tree_predictive_commoning,
9867 gate_tree_predictive_commoning, pass_data_predcom, make_pass_predcom):
9868 Relocate here from tree-ssa-loop.c.
3d7b94f0 9869 * tree-ssa-dom.c (tree_ssa_dominator_optimize) Don't call
64641360 9870 ssa_name_values.release ().
9871 * tree-ssa-threadedge.h: New File. Relocate prototypes here.
9872 (ssa_name_values): Relocate from tree-flow.h.
9873 * tree-ssa.h: Include tree-ssa-threadedge.h and tree-ssa-address.h.
9874 * tree-ssa-loop.c (run_tree_predictive_commoning,
9875 gate_tree_predictive_commoning, pass_data_predcom, make_pass_predcom,
9876 graphite_transforms, gate_graphite_transforms, pass_data_graphite,
9877 make_pass_graphite, pass_data_graphite_transforms,
9878 make_pass_graphite_transforms, gate_tree_parallelize_loops,
9879 tree_parallelize_loops, pass_data_parallelize_loops,
9880 make_pass_parallelize_loops): Move to other files.
9881 * tree-vectorizer.h (lpeel_tree_duplicate_loop_to_edge_cfg): Prototype
9882 moved here.
9883 * tree.h: Remove prototypes from tree-address.c.
9884
582791b0 98852013-10-09 Andrew MacLeod <amacleod@redhat.com>
9886
9887 * tree-flow.h (tm_restart_node, gimple_df): Move to gimple-ssa.h.
9888 (struct int_tree_map): Move to tree-hasher.h
9889 (SCALE, LABEL, PERCENT): Move to gimple.h
9890 * tree-flow-inline.h: Delete. Move functions to other files.
9891 (unmodifiable_var_p, ref_contains_array_ref): Unused, so delete.
9892 * gimple-ssa.h (tm_restart_node, gimple_df): Relocate from tree-flow.h.
9893 (gimple_in_ssa_p, gimple_vop): Relocate from tree-flow-inline.h
9894 * gimple.h (imple_stmt_max_uid, set_gimple_stmt_max_uid,
9895 inc_gimple_stmt_max_uid, get_lineno): Relocate from tree-flow-inline.h.
9896 (SCALE, LABEL, PERCENT): Relocate from tree-flow.h
9897 * tree-hasher.h: Don't include tree-flow.h.
9898 (struct int_tree_map): Relocate from tree-flow.h.
9899 * tree-sra.c (contains_view_convert_expr_p): Relocate from
9900 tree-flow-inline.h and make static.
3d7b94f0 9901 * tree-ssa-alias.h (ranges_overlap_p): Relocate from
9902 tree-flow-inline.h.
582791b0 9903 * tree-ssa-operands.c (gimple_ssa_operands): Relocate from
9904 tree-flow-inline.h and make static.
9905 * tree.h (is_global_var, may_be_aliased): Relocate from
9906 tree-flow-inline.h.
9907 * Makefile.in (GTFILES): Remove tree-flow.h and add gimple-ssa.h.
9908 * value-prof.c: No longer include tree-flow-inline.h.
9909 * tree-switch-conversion.c: No longer include tree-flow-inline.h.
9910
f86b328b 99112013-10-09 Andrew MacLeod <amacleod@redhat.com>
9912
9913 * tree-flow.h: Move some protoypes. Include new tree-ssa-loop.h.
9914 (struct affine_iv, struct tree_niter_desc): Move to tree-ssa-loop.h.
9915 (enum move_pos): Move to tree-ssa-loop-im.h
9916 * cfgloop.h: Move some prototypes.
9917 (gcov_type_to_double_int): relocate from tree-ssa-loop.niter.c.
9918 * tree-flow-inline.h (loop_containing_stmt): Move to tree-ssa-loop.h.
9919 * tree-ssa-loop.h: New File. Include other tree-ssa-loop-*.h files.
9920 (struct affine_iv, struct tree_niter_desc): Relocate from tree-flow.h.
9921 (loop_containing_stmt): Relocate from tree-flow-inline.h.
9922 * tree-ssa-loop-ch.c: (do_while_loop_p): Make static.
9923 * tree-ssa-loop-im.c (for_each_index): Move to tree-ssa-loop.c.
9924 (enum move_pos): Relocate here.
9925 (lsm_tmp_name_add, gen_lsm_tmp_name, get_lsm_tmp_name): Move to
9926 tree-ssa-loop.c.
9927 (execute_sm_if_changed_flag_set): Change get_lsm_tmp_name call.
3d7b94f0 9928 (tree_ssa_loop_im, gate_tree_ssa_loop_im, pass_data_lim,
9929 make_pass_lim): Relocate here from tree-ssa-loop.c.
9930 * tree-ssa-loop-ivcanon.c (tree_num_loop_insns): Move to
f86b328b 9931 tree-ssa-loop.c.
9932 (loop_edge_to_cancel, unloop_loops): Make static.
9933 (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_data_iv_canon,
9934 make_pass_iv_canon): Relocate from tree-ssa-loop.c.
9935 (tree_complete_unroll, gate_tree_complete_unroll,
9936 pass_data_complete_unroll, make_pass_complete_unroll): Relocate here.
9937 (tree_complete_unroll_inner, gate_tree_complete_unroll_inner,
9938 pass_data_complete_unrolli, make_pass_complete_unrolli): Relocate here.
9939 * tree-ssa-loop-ivopts.c: Remove local prototypes.
9940 (stmt_invariant_in_loop_p): Remove unused function.
9941 * tree-ssa-loop-ivopts.h: New file. Add prototypes.
9942 * tree-ssa-loop-manip.h: New file. Add prototypes.
9943 * tree-ssa-loop-niter.c (record_niter_bound): Move to cfgloop.c.
9944 (gcov_type_to_double_int): Move to cfgloop.h.
9945 (double_int_cmp, bound_index,
9946 estimate_numbers_of_iterations_loop): Make static.
9947 (estimated_loop_iterations): Factor out get_estimated_loop_iterations.
9948 (max_loop_iterations): Factor out get_max_loop_iterations.
9949 (estimated_loop_iterations_int, max_stmt_executions_int): Move to
9950 cfgloop.c.
9951 * tree-ssa-loop-niter.h: New file. Add prototypes.
9952 * tree-ssa-loop-prefetch.c (tree_ssa_loop_prefetch,
9953 gate_tree_ssa_loop_prefetch, pass_data_loop_prefetch,
9954 make_pass_loop_prefetch): Relocate from tree-ssa-loop.c.
9955 * tree-ssa-loop-unswitch.c (tree_ssa_loop_unswitch,
9956 gate_tree_ssa_loop_unswitch, pass_data_tree_unswitch,
9957 make_pass_tree_unswitch): Relocate from tree-ssa-loop.c.
9958 * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im,
9959 pass_data_lim, make_pass_lim): Move to tree-ssa-loop-im.c.
9960 (tree_ssa_loop_unswitch, gate_tree_ssa_loop_unswitch,
9961 pass_data_tree_unswitch, make_pass_tree_unswitch): Move.
9962 (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_data_iv_canon,
9963 make_pass_iv_canon, tree_complete_unroll, gate_tree_complete_unroll,
9964 pass_data_complete_unroll, make_pass_complete_unroll,
9965 tree_complete_unroll_inner, gate_tree_complete_unroll_inner,
9966 pass_data_complete_unrolli, make_pass_complete_unrolli): Move to
9967 tree-ssa-loop-ivcanon.c.
9968 (tree_ssa_loop_prefetch, gate_tree_ssa_loop_prefetch,
9969 pass_data_loop_prefetch, make_pass_loop_prefetch): Move to
9970 tree-ssa-loop-prefetch.c.
9971 (for_each_index, lsm_tmp_name_add, gen_lsm_tmp_name): Relocate from
9972 tree-ssa-loop-im.c.
9973 (get_lsm_tmp_name): Relocate and add suffix parameter.
9974 (tree_num_loop_insns): Relocate from tree-ssa-ivcanon.c.
9975 * tree-scalar-evolution.h (simple_iv): Don't use affive_iv typedef.
9976 * cfgloop.c (record_niter_bound, estimated_loop_iterations_int,
9977 max_stmt_executions_int): Move from tree-ssa-loop-niter.c.
3d7b94f0 9978 (get_estimated_loop_iterations): Factor out accessor from
f86b328b 9979 estimated_loop_iterations in tree-ssa-loop-niter.c.
3d7b94f0 9980 (get_max_loop_iterations): Factor out accessor from
9981 _max_loop_iterations in tree-ssa-niter.c.
f86b328b 9982 * loop-unroll.c (decide_unroll_constant_iterations,
9983 decide_unroll_runtime_iterations, decide_peel_simple,
9984 decide_unroll_stupid): Use new get_* accessors.
9985
d7dcba40 99862013-10-09 Marc Glisse <marc.glisse@inria.fr>
9987
9988 PR tree-optimization/20318
9989 * doc/extend.texi (returns_nonnull): New function attribute.
9990 * fold-const.c (tree_expr_nonzero_warnv_p): Look for returns_nonnull
9991 attribute.
9992 * tree-vrp.c (gimple_stmt_nonzero_warnv_p): Likewise.
9993 (stmt_interesting_for_vrp): Accept all GIMPLE_CALL.
9994
11ad02c6 99952013-10-09 Eric Botcazou <ebotcazou@adacore.com>
9996
9997 PR middle-end/58570
9998 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Return
9999 false if both components are bitfields.
10000
32e69596 100012013-10-09 Alex Velenko <Alex.Velenko@arm.com>
10002
10003 * config/aarch64/arm_neon.h (vclz_s8, vclz_s16, vclz_s32)
10004 (vclzq_s8, vclzq_s16, vclzq_s32, vclz_u8, vclz_u16, vclz_u32)
10005 (vclzq_u8, vclzq_u16, vclzq_u32): Replace ASM with C.
10006 * config/aarch64/aarch64.h
10007 (CLZ_DEFINED_VALUE_AT_ZERO): Macro fixed for clz.
10008 * config/aarch64/aarch64-simd-builtins.def
10009 (VAR1 (UNOP, clz, 0, v4si)): Replaced with iterator.
10010
94637ba9 100112013-10-09 Alex Velenko <Alex.Velenko@arm.com>
10012
10013 * config/aarch64/arm_neon.h (vadd_f64, vsub_f64): Implementation added.
10014
f095bb56 100152013-10-09 Alex Velenko <Alex.Velenko@arm.com>
10016
10017 * config/aarch64/arm_neon.h (vdiv_f64): Added.
10018
9d0ab364 100192013-10-09 Alex Velenko <Alex.Velenko@arm.com>
10020
10021 * config/aarch64/arm_neon.h (vneg_f32): Asm replaced with C.
10022 (vneg_f64): New intrinsic.
10023 (vneg_s8): Asm replaced with C.
10024 (vneg_s16): Likewise.
10025 (vneg_s32): Likewise.
10026 (vneg_s64): New intrinsic.
10027 (vnegq_f32): Asm replaced with C.
10028 (vnegq_f64): Likewise.
10029 (vnegq_s8): Likewise.
10030 (vnegq_s16): Likewise.
10031 (vnegq_s32): Likewise.
10032 (vnegq_s64): Likewise.
10033
c4b6b7e9 100342013-10-09 Renlin Li <Renlin.Li@arm.com>
10035
10036 * config/arm/arm.c (arm_output_mi_thunk): Use plus_constant.
10037
031bdf83 100382013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10039
10040 * config/s390/s390.c (s390_register_info_stdarg_fpr): Remove
10041 packed stack special handling.
10042 (s390_frame_info, s390_emit_prologue, s390_emit_epilogue): Switch
10043 back to fixed stack slots for FPRs saved due to stdarg.
10044
62eb9236 100452013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10046
10047 * config/s390/s390.c (s390_frame_info): Restructure function.
10048
ff4ce128 100492013-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10050
10051 * config/s390/s390.c (struct s390_frame_layout): New field
10052 gpr_save_slots.
10053 (cfun_save_arg_fprs_p, cfun_gpr_save_slot): New macros.
10054 (s390_reg_clobbered_rtx, s390_regs_ever_clobbered): Change type of
10055 regs_ever_clobbered to char*.
3d7b94f0 10056 (s390_regs_ever_clobbered): Check crtl->saves_all_registers instead
10057 of cfun->has_nonlocal_label. Ignore frame related restore INSNs.
ff4ce128 10058 (s390_register_info): Enable FPR save slots. Move/Copy some
10059 functionality into ...
10060 (s390_register_info_gprtofpr, s390_register_info_stdarg_fpr)
10061 (s390_register_info_stdarg_gpr, s390_optimize_register_info): New
10062 function.
10063 (s390_frame_info): Do gpr slot allocation here now. stdarg does
10064 not imply a stack frame.
10065 (s390_init_frame_layout): Remove variable clobbered_regs.
10066 (s390_update_register_info): Remove function.
10067 (s390_hard_regno_rename_ok): Call-saved regs without a save slot
10068 cannot be used for register renaming.
10069 (s390_hard_regno_scratch_ok): New function.
10070 (TARGET_HARD_REGNO_SCRATCH_OK): Define target hook.
10071 (s390_initial_elimination_offset): Change offset calculation of
10072 the return address pointer.
3d7b94f0 10073 (save_gprs): Deal with only r6 being saved from the call-saved regs.
ff4ce128 10074 (restore_gprs): Set frame related flag.
3d7b94f0 10075 (s390_save_gprs_to_fprs, s390_restore_gprs_from_fprs): New functions.
ff4ce128 10076 (s390_emit_prologue): Call s390_register_info instead of
10077 s390_update_frame_layout. Call s390_save_gprs_to_fprs.
10078 (s390_emit_epilogue): Call s390_restore_gprs_from_fprs.
10079 (s390_optimize_prologue): Call s390_optimize_register_info.
10080 Try to remove also FPR slot save/restore INSNs. Remove frame
10081 related flags from restore INSNs.
10082
2ced756b 100832013-10-08 DJ Delorie <dj@redhat.com>
10084
dd6c17c5 10085 * config/rl78/rl78-expand.md (movqi): use operands[] not operandN.
10086 (movhi): Likewise.
10087
2ced756b 10088 * config/rl78/rl78.c (rl78_print_operand_1): Change %c to %C to
10089 avoid conflict with the MI use of %c.
10090 * config/rl78/rl78-real.md: change %c to %C throughout.
10091 * config/rl78/rl78-virt.md: Likewise.
10092
b6d0ea24 100932013-10-08 Jan Hubicka <jh@suse.cz>
10094
10095 * config/i386/i386.c (ix86_option_override_internal): Switch
10096 to SSE math for -ffast-math when target ISA supports SSE2.
10097
4e57e76d 100982013-10-08 Andrew MacLeod <amacleod@redhat.com>
10099
10100 * tree-flow.h: Remove some prototypes.
10101 * tree.h: Remove some protypes, add a couple.
10102 * tree.c (using_eh_for_cleanups_flag, using_eh_for_cleanups,
10103 using_eh_for_cleanups_p): Add interface routines for front ends.
10104 * tree-eh.h: New file. Add protoptyes.
10105 * tree-eh.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Delete.
10106 (add_stmt_to_eh_lp_fn): Make static.
10107 (lower_try_finally): Use new using_eh_for_cleanups_p.
10108 * emit-rtl.c: Include tree-eh.h.
10109 * gimple.h: Include tree-eh.h.
10110
d00cc43d 101112013-10-08 Marc Glisse <marc.glisse@inria.fr>
10112
10113 PR tree-optimization/58480
10114 * tree-vrp.c (infer_nonnull_range): New function.
10115 (infer_value_range): Call infer_nonnull_range.
10116
2884d265 101172013-10-08 Dehao Chen <dehao@google.com>
10118
10119 PR tree-optimization/58619
10120 * tree-inline.c (copy_phis_for_bb): Combine location data
10121 only if non-null.
10122
81fad4a7 101232013-10-08 Zhenqiang Chen <zhenqiang.chen@linaro.org>
10124
10125 PR target/58423
10126 * config/arm/arm.c (arm_emit_ldrd_pop): Attach
10127 RTX_FRAME_RELATED_P on INSN.
10128
272f1bc4 101292013-10-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10130
10131 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const_le): New.
10132 (altivec_expand_vec_perm_const): Call it.
10133
b9543d21 101342013-10-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10135
10136 * config/rs6000/vector.md (mov<mode>): Emit permuted move
10137 sequences for LE VSX loads and stores at expand time.
10138 * config/rs6000/rs6000-protos.h (rs6000_emit_le_vsx_move): New
10139 prototype.
10140 * config/rs6000/rs6000.c (rs6000_const_vec): New.
10141 (rs6000_gen_le_vsx_permute): New.
10142 (rs6000_gen_le_vsx_load): New.
10143 (rs6000_gen_le_vsx_store): New.
10144 (rs6000_gen_le_vsx_move): New.
10145 * config/rs6000/vsx.md (*vsx_le_perm_load_v2di): New.
10146 (*vsx_le_perm_load_v4si): New.
10147 (*vsx_le_perm_load_v8hi): New.
10148 (*vsx_le_perm_load_v16qi): New.
10149 (*vsx_le_perm_store_v2di): New.
10150 (*vsx_le_perm_store_v4si): New.
10151 (*vsx_le_perm_store_v8hi): New.
10152 (*vsx_le_perm_store_v16qi): New.
10153 (*vsx_xxpermdi2_le_<mode>): New.
10154 (*vsx_xxpermdi4_le_<mode>): New.
10155 (*vsx_xxpermdi8_le_V8HI): New.
10156 (*vsx_xxpermdi16_le_V16QI): New.
10157 (*vsx_lxvd2x2_le_<mode>): New.
10158 (*vsx_lxvd2x4_le_<mode>): New.
10159 (*vsx_lxvd2x8_le_V8HI): New.
10160 (*vsx_lxvd2x16_le_V16QI): New.
10161 (*vsx_stxvd2x2_le_<mode>): New.
10162 (*vsx_stxvd2x4_le_<mode>): New.
10163 (*vsx_stxvd2x8_le_V8HI): New.
10164 (*vsx_stxvd2x16_le_V16QI): New.
10165
215fac2e 101662013-10-07 Renlin Li <Renlin.Li@arm.com>
10167
10168 * config/arm/arm-cores.def (cortex-a53): Use cortex tuning.
10169
68bc0408 101702013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10171
10172 * config/s390/s390.c (s390_register_info): Make the call-saved FPR
10173 loop to work also for 31bit ABI.
10174 Save the stack pointer for frame_size > 0.
10175
758fd97f 101762013-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10177
10178 * config/s390/s390.md ("tbegin", "tbegin_nofloat", "tbegin_retry")
10179 ("tbegin_retry_nofloat", "tend", "tabort", "tx_assist"): Remove
10180 constraint letters from expanders.
10181 ("tbegin_retry", "tbegin_retry_nofloat"): Change predicate of the
10182 retry count to general_operand.
10183 ("tabort"): Give operand 0 a mode.
10184 ("tabort_1"): Add mode and constraint letter for operand 0.
10185 * doc/extend.texi: Fix protoype of __builtin_non_tx_store.
10186
f7deb33d 101872013-10-04 Jeff Law <law@redhat.com>
10188
10189 * tree-ssa-threadedge.c: Fix some trailing whitespace problems.
10190
3d7b94f0 10191 * tree-ssa-threadedge.c (thread_through_normal_block): Broken
10192 out of ...
f7deb33d 10193 (thread_across_edge): Here. Call it.
10194
8f93a826 101952013-10-04 Cary Coutant <ccoutant@google.com>
10196
10197 * dwarf2out.c (dw_sra_loc_expr): Release addr_table entries when
3d7b94f0 10198 discarding a location list expression (or a piece of one).
8f93a826 10199
750e91f9 102002013-10-03 Jan Hubicka <jh@suse.cz>
10201
09cdf208 10202 * config/i386/i386.c (ix86_issue_rate): Pentium4, Nocona has issue
10203 rate of 2. Core2, Corei7 and Haswell has issue rate of 4.
7d591061 10204 (ix86_adjust_cost): Remove Atom case; fix core2/corei7/Haswell case.
750e91f9 10205
d3536cda 102062013-10-03 Jan Hubicka <jh@suse.cz>
10207
09cdf208 10208 * config/i386/i386.c (ix86_option_override_internal): Do not enable
d3536cda 10209 accumulate-outgoing-args when producing unwind info.
10210
c5334148 102112013-10-03 Wei Mi <wmi@google.com>
10212
10213 * lra-constraints.c (insert_move_for_subreg): New function
10214 extracted from simplify_operand_subreg.
10215 (simplify_operand_subreg): Add reload for paradoxical subreg.
10216
caa0f772 102172013-10-03 Rong Xu <xur@google.com>
10218
09cdf208 10219 * ipa-inline-analysis.c (find_foldable_builtin_expect): Find
10220 the candidate of builtin_expect such that we should fix the
10221 size/time estimation.
10222 (estimate_function_body_sizes): Do the acutally size/time fix-up
10223 for builtin_expect.
caa0f772 10224
21853731 102252013-10-03 Rong Xu <xur@google.com>
10226
09cdf208 10227 * predict.c (tree_predict_by_opcode): Get the probability
10228 for builtin_expect from param builtin_expect_probability.
10229 * params.def (BUILTIN_EXPECT_PROBABILITY): New parameter.
10230 * predict.def (PRED_BUILTIN_EXPECT_RELAXED): Fix comments.
10231 * doc/invoke.texi: Add documentation for builtin-expect-probability.
21853731 10232
0b7282f1 102332013-10-03 Marc Glisse <marc.glisse@inria.fr>
10234
10235 PR c++/19476
10236 * common.opt (fcheck-new): Moved from c.opt. Make it 'Common'.
10237 * calls.c (alloca_call_p): Use get_callee_fndecl.
10238 * fold-const.c (tree_expr_nonzero_warnv_p): Handle operator new.
10239 * tree-vrp.c (gimple_stmt_nonzero_warnv_p, stmt_interesting_for_vrp):
10240 Likewise.
10241 (vrp_visit_stmt): Remove duplicated code.
10242
0b16079d 102432013-10-03 Michael Meissner <meissner@linux.vnet.ibm.com>
10244
10245 * config/rs6000/rs6000-builtin.def (XSRDPIM): Use floatdf2,
10246 ceildf2, btruncdf2, instead of vsx_* name.
10247
10248 * config/rs6000/vsx.md (vsx_add<mode>3): Change arithmetic
10249 iterators to only do V2DF and V4SF here. Move the DF code to
10250 rs6000.md where it is combined with SF mode. Replace <VSv> with
10251 just 'v' since only vector operations are handled with these insns
10252 after moving the DF support to rs6000.md.
10253 (vsx_sub<mode>3): Likewise.
10254 (vsx_mul<mode>3): Likewise.
10255 (vsx_div<mode>3): Likewise.
10256 (vsx_fre<mode>2): Likewise.
10257 (vsx_neg<mode>2): Likewise.
10258 (vsx_abs<mode>2): Likewise.
10259 (vsx_nabs<mode>2): Likewise.
10260 (vsx_smax<mode>3): Likewise.
10261 (vsx_smin<mode>3): Likewise.
10262 (vsx_sqrt<mode>2): Likewise.
10263 (vsx_rsqrte<mode>2): Likewise.
10264 (vsx_fms<mode>4): Likewise.
10265 (vsx_nfma<mode>4): Likewise.
10266 (vsx_copysign<mode>3): Likewise.
10267 (vsx_btrunc<mode>2): Likewise.
10268 (vsx_floor<mode>2): Likewise.
10269 (vsx_ceil<mode>2): Likewise.
10270 (vsx_smaxsf3): Delete scalar ops that were moved to rs6000.md.
10271 (vsx_sminsf3): Likewise.
10272 (vsx_fmadf4): Likewise.
10273 (vsx_fmsdf4): Likewise.
10274 (vsx_nfmadf4): Likewise.
10275 (vsx_nfmsdf4): Likewise.
10276 (vsx_cmpdf_internal1): Likewise.
10277
10278 * config/rs6000/rs6000.h (TARGET_SF_SPE): Define macros to make it
10279 simpler to select whether a target has SPE or traditional floating
10280 point support in iterators.
10281 (TARGET_DF_SPE): Likewise.
10282 (TARGET_SF_FPR): Likewise.
10283 (TARGET_DF_FPR): Likewise.
10284 (TARGET_SF_INSN): Macros to say whether floating point support
10285 exists for a given operation for expanders.
10286 (TARGET_DF_INSN): Likewise.
10287
10288 * config/rs6000/rs6000.c (Ftrad): New mode attributes to allow
10289 combining of SF/DF mode operations, using both traditional and VSX
10290 registers.
10291 (Fvsx): Likewise.
10292 (Ff): Likewise.
10293 (Fv): Likewise.
10294 (Fs): Likewise.
10295 (Ffre): Likewise.
10296 (FFRE): Likewise.
10297 (abs<mode>2): Combine SF/DF modes using traditional floating point
10298 instructions. Add support for using the upper DF registers with
10299 VSX support, and SF registers with power8-vector support. Update
10300 expanders for operations supported by both the SPE and traditional
10301 floating point units.
10302 (abs<mode>2_fpr): Likewise.
10303 (nabs<mode>2): Likewise.
10304 (nabs<mode>2_fpr): Likewise.
10305 (neg<mode>2): Likewise.
10306 (neg<mode>2_fpr): Likewise.
10307 (add<mode>3): Likewise.
10308 (add<mode>3_fpr): Likewise.
10309 (sub<mode>3): Likewise.
10310 (sub<mode>3_fpr): Likewise.
10311 (mul<mode>3): Likewise.
10312 (mul<mode>3_fpr): Likewise.
10313 (div<mode>3): Likewise.
10314 (div<mode>3_fpr): Likewise.
10315 (sqrt<mode>3): Likewise.
10316 (sqrt<mode>3_fpr): Likewise.
10317 (fre<Fs>): Likewise.
10318 (rsqrt<mode>2): Likewise.
10319 (cmp<mode>_fpr): Likewise.
10320 (smax<mode>3): Likewise.
10321 (smin<mode>3): Likewise.
10322 (smax<mode>3_vsx): Likewise.
10323 (smin<mode>3_vsx): Likewise.
10324 (negsf2): Delete SF operations that are merged with DF.
10325 (abssf2): Likewise.
10326 (addsf3): Likewise.
10327 (subsf3): Likewise.
10328 (mulsf3): Likewise.
10329 (divsf3): Likewise.
10330 (fres): Likewise.
10331 (fmasf4_fpr): Likewise.
10332 (fmssf4_fpr): Likewise.
10333 (nfmasf4_fpr): Likewise.
10334 (nfmssf4_fpr): Likewise.
10335 (sqrtsf2): Likewise.
10336 (rsqrtsf_internal1): Likewise.
10337 (smaxsf3): Likewise.
10338 (sminsf3): Likewise.
10339 (cmpsf_internal1): Likewise.
10340 (copysign<mode>3_fcpsgn): Add VSX/power8-vector support.
10341 (negdf2): Delete DF operations that are merged with SF.
10342 (absdf2): Likewise.
10343 (nabsdf2): Likewise.
10344 (adddf3): Likewise.
10345 (subdf3): Likewise.
10346 (muldf3): Likewise.
10347 (divdf3): Likewise.
10348 (fred): Likewise.
10349 (rsqrtdf_internal1): Likewise.
10350 (fmadf4_fpr): Likewise.
10351 (fmsdf4_fpr): Likewise.
10352 (nfmadf4_fpr): Likewise.
10353 (nfmsdf4_fpr): Likewise.
10354 (sqrtdf2): Likewise.
10355 (smaxdf3): Likewise.
10356 (smindf3): Likewise.
10357 (cmpdf_internal1): Likewise.
10358 (lrint<mode>di2): Use TARGET_<MODE>_FPR macro.
10359 (btrunc<mode>2): Delete separate expander, and combine with the
10360 insn and add VSX instruction support. Use TARGET_<MODE>_FPR.
10361 (btrunc<mode>2_fpr): Likewise.
10362 (ceil<mode>2): Likewise.
10363 (ceil<mode>2_fpr): Likewise.
10364 (floor<mode>2): Likewise.
10365 (floor<mode>2_fpr): Likewise.
10366 (fma<mode>4_fpr): Combine SF and DF fused multiply/add support.
10367 Add support for using the upper registers with VSX and
10368 power8-vector. Move insns to be closer to the define_expands. On
10369 VSX systems, prefer the traditional form of FMA over the VSX
10370 version, since the traditional form allows the target not to
10371 overlap with the inputs.
10372 (fms<mode>4_fpr): Likewise.
10373 (nfma<mode>4_fpr): Likewise.
10374 (nfms<mode>4_fpr): Likewise.
10375
8f67eb82 103762013-10-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
09cdf208 10377 Richard Earnshaw <richard.earnshaw@arm.com>
8f67eb82 10378
10379 * config/arm/aarch-common-protos.h (struct alu_cost_table): New.
10380 (struct mult_cost_table): Likewise.
10381 (struct mem_cost_table): Likewise.
10382 (struct fp_cost_table): Likewise.
10383 (struct vector_cost_table): Likewise.
10384 (cpu_cost_table): Likewise.
10385 * config/arm/arm.opt (mold-rts-costs): New option.
10386 (mnew-generic-costs): Likewise.
10387 * config/arm/arm.c (generic_extra_costs): New table.
10388 (cortexa15_extra_costs): Likewise.
10389 (arm_slowmul_tune): Use NULL as new costs.
10390 (arm_fastmul_tune): Likewise.
10391 (arm_strongarm_tune): Likewise.
10392 (arm_xscale_tune): Likewise.
10393 (arm_9e_tune): Likewise.
10394 (arm_v6t2_tune): Likewise.
10395 (arm_cortex_a5_tune): Likewise.
10396 (arm_cortex_a9_tune): Likewise.
10397 (arm_v6m_tune): Likewise.
10398 (arm_fa726te_tune): Likewise.
10399 (arm_cortex_a15_tune): Use cortex15_extra_costs.
10400 (arm_cortex_tune): Use generict_extra_costs.
10401 (shifter_op_p): New function.
10402 (arm_unspec_cost): Likewise.
10403 (LIBCALL_COST): Define.
10404 (arm_new_rtx_costs): New function.
10405 (arm_rtx_costs): Use arm_new_rtx_costs when core-specific
10406 table is available. Use old costs otherwise unless mnew-generic-costs
10407 is specified.
10408 * config/arm/arm-protos.h (tune_params): Add insn_extra_cost field.
10409 (cpu_cost_table): Declare.
10410
a82c0313 104112013-10-03 Marcus Shawcroft <marcus.shawcroft@arm.com>
10412
10413 PR target/58460
10414 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>)
10415 (*subs_mul_imm_<mode>)
10416 (*add_<shift>_<mode>, *add_<shift>_si_uxtw,*add_mul_imm_<mode>)
10417 (*sub_<shift>_<mode>)
10418 (*sub_<shift>_si_uxtw,*sub_mul_imm_<mode>, *sub_mul_imm_si_uxtw):
10419 Remove k constraint.
10420
68aef4d5 104212013-10-03 Ian Bolton <ian.bolton@arm.com>
10422
10423 * config/aarch64/aarch64.c (aarch64_secondary_reload): Remove legacy
10424 code.
10425 * config/aarch64/aarch64.md (reload_sp_immediate): Likewise.
10426
dcc9b351 104272013-10-02 Teresa Johnson <tejohnson@google.com>
10428
10429 * predict.c (probably_never_executed): New function.
10430 (probably_never_executed_bb_p): Invoke probably_never_executed.
10431 (probably_never_executed_edge_p): Ditto.
10432 * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
10433 Treat profile insanities conservatively.
10434
96b242a6 104352013-10-02 John David Anglin <danglin@gcc.gnu.org>
10436
10437 * config.gcc (hppa*64*-*-linux*): Don't add pa/t-linux to tmake_file.
10438
2b1732ad 104392013-10-02 Vladimir Makarov <vmakarov@redhat.com>
10440
10441 * lra-constraints.c (process_alt_operand): Calculate scratch_p and
10442 use it. Use smaller increase for scratch. Don't increase reject
10443 for early clobber scratch.
10444 * lra-eliminations.c (eliminate_regs_in_insn): Remove all insns
10445 setting eliminated regs except setting fp from hfp.
10446 (lra_eliminate): Check lra_insn_recog_data on NULL.
10447
661d7f01 104482013-10-02 Michael Meissner <meissner@linux.vnet.ibm.com>
10449
10450 PR target/58587
10451 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Turn off
09cdf208 10452 setting -mvsx-timode by default until the underlying problem is fixed.
661d7f01 10453 (RS6000_CPU, power7 defaults): Likewise.
10454
2673e97b 104552013-10-02 Uros Bizjak <ubizjak@gmail.com>
10456
10457 * config/x-linux (host-linux.o): Remove header dependencies.
10458 Use $(COMPILE) and $(POSTCOMPILE).
10459 * config/t-linux-android (linux-android.o): Ditto.
10460
440fc67c 104612013-10-02 Uros Bizjak <ubizjak@gmail.com>
10462
10463 * Makefile.in (expmed.o-warn): Remove.
10464
f8ba3083 104652013-10-02 Andrew MacLeod <amacleod@redhat.com>
10466
10467 * graphite-scop-detection.c: Include tree-ssa-propagate,h.
10468 * graphite-sese-to-poly.c: Include tree-ssa-propagate.h.
10469
262da27c 104702013-10-02 Teresa Johnson <tejohnson@google.com>
10471
10472 * dojump.c (do_jump_1): Divide probability between
10473 both conditions of a TRUTH_ANDIF_EXPR/TRUTH_ORIF_EXPR.
10474
396044e4 104752013-10-02 Tom Tromey <tromey@redhat.com>
10476
10477 * Makefile.in (DRIVER_DEFINES): Use $(if), not $(and).
10478
ba4d2b2f 104792013-10-02 Andrew MacLeod <amacleod@redhat.com>
10480
10481 * tree-flow.h: Remove some prototypes.
10482 * tree-ssa-dce.c (mark_virtual_operand_for_renaming,
10483 mark_virtual_phi_result_for_renaming): Move to tree-into-ssa.c.
10484 * tree-into-ssa.c (mark_virtual_operand_for_renaming,
10485 mark_virtual_phi_result_for_renaming): Relocate here.
10486 * tree-into-ssa.h: Add prototypes.
440fc67c 10487 * tree-ssa-phiopt.c: (tree_ssa_phiopt_worker) Use
ba4d2b2f 10488 single_pred_before_succ_order.
10489 (blocks_in_phiopt_order): Rename and move to cfganal.c.
10490 (nonfreeing_call_p) Move to gimple.c.
10491 * cfganal.c (single_pred_before_succ_order): Move and renamed from
10492 tree-ssa-phiopt.c.
10493 * basic-block.h (single_pred_before_succ_order): Add prototype.
10494 * gimple.c (nonfreeing_call_p): Relocate here.
10495 * gimple.h: Add prototype.
10496 * tree-ssa-ifcombine.c: Include tree-ssa-phiopt.h.
10497 * tree-ssa-dom.h: New file. Relocate prototypes here.
10498 * tree-ssa.h: Include tree-ssa-dom.h.
10499
7e637ed2 105002013-10-02 Uros Bizjak <ubizjak@gmail.com>
10501
10502 * config/i386/x-i386 (driver-i386.o): Remove header dependencies.
10503 Use $(COMPILE) and $(POSTCOMPILE).
10504
10505 * config/alpha/x-alpha (driver-alpha.o): Ditto.
10506
0f4161b1 105072013-10-02 Andrew MacLeod <amacleod@redhat.com>
10508
10509 * tree-flow.h: Remove some prototypes.
10510 * gimple-fold.h: Add prototypes from gimple.h and tree-flow.h.
10511 * tree-ssa-propagate.h: Relocate prototypes from tree-flow.h.
10512 * tree-ssa-copy.c (may_propagate*, propagate_value, replace_exp,
10513 propagate_tree_value*): Move from here to...
10514 * tree-ssa-propagate.c (may_propagate*, propagate_value, replace_exp,
10515 propagate_tree_value*): Relocate here.
10516 * tree-ssa-propagate.h: Relocate prototypes from tree-flow.h.
10517 * gimple.h: Include gimple-fold.h, move prototypes into gimple-fold.h.
10518 * gimple-fold.c: Remove gimple-fold.h from include list.
10519 * tree-vrp.c: Remove gimple-fold.h from include list.
10520 * tree-ssa-sccvn.c: Remove gimple-fold.h from include list.
10521 * tree-ssa-ccp.c: Remove gimple-fold.h from include list.
10522 * tree-scalar-evolution.c: Add tree-ssa-propagate.h to include list.
10523 * tree-ssa-pre.c: Add tree-ssa-propagate.h to include list.
10524 * sese.c: Add tree-ssa-propagate.h to include list.
10525
df9892ff 105262013-10-02 Richard Biener <rguenther@suse.de>
10527
10528 * tree-loop-distribution.c: Include tree-vectorizer.h for
10529 find_loop_location.
10530 (enum partition_kind): Remove PKIND_REDUCTION.
7e637ed2 10531 (struct partition_s): Remove has_writes member, add reduction_p member.
df9892ff 10532 (partition_alloc): Adjust.
10533 (partition_builtin_p): Likewise.
10534 (partition_has_writes): Remove.
10535 (partition_reduction_p): New function.
10536 (partition_merge_into): Likewise.
10537 (generate_code_for_partition): Commonize builtin partition
10538 handling tail.
10539 (rdg_cannot_recompute_vertex_p): Remove.
10540 (already_processed_vertex_p): Likewise.
10541 (rdg_flag_vertex): Do not set has_writes.
10542 (classify_partition): Adjust.
10543 (rdg_build_partitions): Do not set has_writes, treat all
10544 partitions as useful.
7e637ed2 10545 (distribute_loop): Record number of library calls generated. Adjust.
df9892ff 10546 (tree_loop_distribution): Report number of loops and library
10547 calls generated as opt-info.
10548
9e034af3 105492013-10-02 Andrew MacLeod <amacleod@redhat.com>
10550
10551 * tree-flow.h: Include new .h files. Move prototypes.
10552 * tree-cfgcleanup.h: New file. Add prototypes from tree-flow.h.
10553 * tree-dfa.h: New File. Add prototypes from tree-flow.h.
10554 (get_addr_base_and_unit_offset_1) Move from tree-flow-inline.h.
10555 * tree-pretty-print.h: Add prototypes from tree-flow.h.
10556 * tree-into-ssa.h: New File. Add prototypes from tree-flow.h.
10557 ({debug|dump}*): Move debugging prototypes out of tree-into-ssa.c.
10558 * tree-into-ssa.c ({debug|dump}*): Move prototypes to header file.
10559 * tree.h (get_ref_base_and_extent): Move prototype out.
7e637ed2 10560 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Move to
9e034af3 10561 tree-dfa.h.
10562 * gimple-low.h: New File. Add prototypes from tree-flow.h.
10563 * gimple-low.c (try_catch_may_fallthru, block_may_fallthru): Move to...
10564 * tree.c (try_catch_may_fallthru, block_may_fallthru): Here.
10565 * tree-scalar-evolution.c: Include tree.h.
10566 * sese.c: Include tree.h.
10567 * dumpfile.c: Move gimple-pretty-print.h include after tree.h.
10568 * dwarf2out.c: Include tree-dfa.h.
10569 * tree-chrec.c: Include tree.h.
10570 * tree-data-ref.c: Include tree.h.
10571
6da7e110 105722013-10-02 Yufeng Zhang <yufeng.zhang@arm.com>
10573
10574 * gimple-ssa-strength-reduction.c (backtrace_base_for_ref):
10575 Fix whitespace.
10576
ea343999 105772013-10-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10578
10579 * config/t-sol2 (sol2-c.o): Remove header dependencies.
10580 Use $(COMPILE) and $(POSTCOMPILE).
10581 (sol2-cxx.o): Likewise.
10582 (sol2-stubs.o): Likewise.
10583 (sol2.o): Likewise.
10584 * config/x-solaris (host-solaris.o): Likewise.
10585
10586 * config/sparc/t-sparc (sparc.o): Remove.
10587 (sparc-c.o): Remove header dependencies.
10588 Use $(COMPILE) and $(POSTCOMPILE).
10589 * config/sparc/x-sparc: Likewise.
10590
c6e92c43 105912013-10-02 Joern Rennecke <joern.rennecke@embecosm.com>
10592
10593 * config/arc/arc-opts.h: Add 2013 to Copyright years.
10594 * config/arc/arc700.md: Likewise.
10595 * config/arc/arc-modes.def: Likewise.
10596 * config/arc/arc-simd.h: Likewise.
10597 * config/arc/t-arc-uClibc: Likewise.
10598 * config/arc/t-arc-newlib: Likewise.
10599
dbce4077 106002013-10-02 Renlin Li <renlin.li@arm.com>
10601
7e637ed2 10602 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
10603 plus_constant.
dbce4077 10604 (aarch64_expand_epilogue): Likewise.
10605
ee4e4f98 106062013-10-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10607 Yufeng Zhang <yufeng.zhang@arm.com>
10608
10609 * gimple-ssa-strength-reduction.c (legal_cast_p_1): Forward
10610 declaration.
10611 (backtrace_base_for_ref): Call get_unwidened with 'base_in' if
10612 'base_in' represent a conversion and legal_cast_p_1 holds; set
10613 'base_in' with the returned value from get_unwidened.
10614
a457166f 106152013-10-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10616
10617 * config/arm/arm.c (arm_legitimize_reload_address): Explain why
10618 plus_constant is not used.
10619
01c074df 106202013-10-01 Wei Mi <wmi@google.com>
10621
7e637ed2 10622 * config/i386/x86-tune.def (DEF_TUNE): Remove m_CORE_ALL.
01c074df 10623 * config/i386/i386.md: Add define_peephole2 to
10624 break partial reg stall for cvtss2sd/cvtsd2ss.
10625
7e6e6351 106262013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
10627
10628 * config/arc/arc.c (pass_arc_ifcvt::clone):
7e637ed2 10629 Update for ctxt_ -> m_ctxt change.
7e6e6351 10630
5fe6149c 106312013-10-01 Jeff Law <law@redhat.com>
10632
10633 * tree-ssa-threadupdate.c (struct redirection_data): Delete
10634 outgoing_edge and intermediate_edge fields. Instead store the path.
10635 (redirection_data::hash): Hash on the last edge's destination index.
10636 (redirection_data::equal): Check the entire thread path.
10637 (lookup_redirectio_data): Corresponding changes.
10638 (create_edge_and_update_destination_phis): Likewise.
10639 (thread_single_edge): Likewise.
10640
cff74baa 106412013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
1a979e86 10642 Diego Novillo <dnovillo@google.com>
cff74baa 10643
10644 * config/arc/simdext.md (UNSPEC_ARC_SIMD_VLD32WH): Delete.
10645 (UNSPEC_ARC_SIMD_VLD32WL): Likewise.
10646 (vld32wh_insn, vld32wl_insn): Delete commented-out old
10647 versions of these patterns.
10648
1a979e86 10649 * doc/extend.texi (long_call/medium_call/short_call): Typo fix.
10650 (__builtin_arc_aligned): Likewise.
10651
1f103bf6 10652 * config/arc/arc.md: Expand adc_0 comment stating the intended
10653 purpose and why it isn't ready.
10654 Replace commented out call_value_via_label_mixed with a
10655 plain comment about bl_s.
10656
8e5bb402 10657 * config/arc/arc.c (stdio.h): Don't include directly.
8e5bb402 10658 (arc_expand_epilogue): Remove [0]: Remove fp_restored_p.
10659 Remove if (1) condition.
10660 (arc_encode_section_info): Fix comment.
10661
8d78a857 106622013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
10663
10664 * config/arc/arc.c (arc_conditional_register_usage):
10665 Use ARC_FIRST_SIMD_VR_REG / ARC_LAST_SIMD_VR_REG.
10666 Also set reg_alloc_order for DMA config regs.
10667
0133a61a 106682013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
10669 Jeremy Bennett <jeremy.bennett@embecosm.com>
10670
10671 * doc/install.texi (--with-cpu): Mention ARC.
10672 (arc-*-elf32): New paragraph.
10673 (arc-linux-uclibc): Likewise.
10674 * doc/md.texi (Machine Constraints): Add ARC part.
10675 * doc/invoke.texi: (menu): Add ARC Options.
10676 (Machine Dependent Options) <ARC Options>: Add synopsis.
10677 (node ARC Options): Add.
10678 * doc/extend.texi (long_call / short_call attribute): Add ARC.
10679 (ARC Built-in Functions): New section defining
10680 generic ARC built-in functions.
10681 (ARC SIMD Built-in Functions): New section defining SIMD specific
10682 built-in functions.
10683 (Declaring Attributes of Functions): Extended
10684 description of short_call and long_call attributes for ARC and
10685 added index entries.
10686
09cb6a17 106872013-10-01 Saurabh Verma <saurabh.verma@codito.com>
10688 Ramana Radhakrishnan <ramana.radhakrishnan@codito.com>
10689 Joern Rennecke <joern.rennecke@embecosm.com>
10690 Muhammad Khurram Riaz <khurram.riaz@arc.com>
10691 Brendan Kehoe <brendan@zen.org>
10692 Michael Eager <eager@eagercon.com>
10693 Simon Cook <simon.cook@embecosm.com>
10694 Jeremy Bennett <jeremy.bennett@embecosm.com>
10695
10696 * config/arc, common/config/arc: New directories.
10697
3c867e46 106982013-10-01 Joern Rennecke <joern.rennecke@embecosm.com>
10699 Brendan Kehoe <brendan@zen.org>
10700 Simon Cook <simon.cook@embecosm.com>
10701
10702 * config.gcc (arc*-*-elf*, arc*-*-linux-uclibc*): New configurations.
10703
77de7381 107042013-10-01 Andrew MacLeod <amacleod@redhat.com>
10705
10706 * tree-ssa-live.h (coalesce_ssa_name): Move Prototype to...
10707 * tree-ssa-coalesce.h: New. Move prototype to here.
10708 * tree-outof-ssa.h: Include tree-ssa-coalesce.h.
10709 * tree-ssa-coalesce.c: Include tree-outof-ssa.h.
10710 (gimple_can_coalesce_p): Move to...
10711 * gimple.c (gimple_can_coalesce_p): Here.
10712
8f6fa493 107132013-10-01 Andrew MacLeod <amacleod@redhat.com>
10714
10715 * tree-into-ssa.c (enum need_phi_state): Relocate from tree-flow.h.
10716 (dump_decl_set): Move to gimple.c.
10717 * gimple.h: Don't include tree-ssa-operands.h.
10718 (dump_decl_set): Add prototype.
10719 (gimple_vuse_op, gimple_vdef_op, update_stmt, update_stmt_if_modified):
10720 Move to gimple-ssa.h.
10721 (phi_ssa_name_p, phi_nodes, phi_nodes_ptr, gimple_phi_arg_def,
10722 gimple_phi_arg_def_ptr, gimple_phi_arg_edge, gimple_phi_arg_location,
10723 gimple_phi_arg_location_from_edge, gimple_phi_arg_set_location,
10724 gimple_phi_arg_has_location): Relocate from tree-flow-inline.h
10725 * gimple.c (walk_stmt_load_store_ops): Use gimple_phi_arg_def rather
10726 than PHI_ARG_DEF.
10727 (dump_decl_set): Relocate here.
10728 * gimple-ssa.h: New file.
10729 (gimple_vuse_op, gimple_vdef_op, update_stmt, update_stmt_if_modified):
10730 Relocate from gimple.h.
10731 * tree-cfg.c (has_zero_uses_1, single_imm_use_1): Move to...
10732 * tree-ssa-operands.c (swap_ssa_operands): Rename from
10733 swap_tree_operands and remove non-ssa path.
10734 (has_zero_uses_1, single_imm_use_1): Relocate from tree-cfg.c.
10735 * tree-ssa-reassoc.c (linearize_expr_tree, repropagate_negates): Use
10736 swap_ssa_operands.
10737 * tree-vect-loop.c (destroy_loop_vec_info, vect_is_slp_reduction,
10738 vect_is_simple_reduction_1): Use swap_ssa_operands.
10739 * tree-flow.h: Move various prototypes to tree-phinodes.h.
10740 (enum need_phi_state): Move to tree-into-ssa.c.
10741 (struct immediate_use_iterator_d, FOR_EACH_IMM_*,
10742 BREAK_FROM_IMM_USE_STMT): Move to ssa-iterators.h.
10743 (swap_tree_operands): Rename and move prototype to tree-ssa-operands.h.
10744 * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list,
10745 link_imm_use, set_ssa_use_from_ptr, link_imm_use_stmt, relink_imm_use,
10746 relink_imm_use_stmt, end_readonly_imm_use_p, first_readonly_imm_use,
10747 next_readonly_imm_use, has_zero_uses, has_single_use, single_imm_use,
10748 num_imm_uses): Move to ssa-iterators.h.
10749 (get_use_from_ptr, get_def_from_ptr): Move to tree-ssa-operands.h
3f885d75 10750 (gimple_phi_arg_imm_use_ptr, phi_arg_index_from_use): Move to
8f6fa493 10751 tree-phinodes.h.
10752 (op_iter_done, op_iter_next_def, op_iter_next_tree,
10753 clear_and_done_ssa_iter, op_iter_init, op_iter_init_use,
10754 op_iter_init_def, op_iter_init_tree, single_ssa_tree_operand,
10755 single_ssa_use_operand, single_ssa_def_operand, zero_ssa_operands,
10756 num_ssa_operands, delink_stmt_imm_use, single_phi_def,
10757 op_iter_init_phiuse, op_iter_init_phidef, end_imm_use_stmt_p,
10758 end_imm_use_stmt_traverse, move_use_after_head, link_use_stmts_after,
10759 first_imm_use_stmt, next_imm_use_stmt, first_imm_use_on_stmt,
10760 end_imm_use_on_stmt_p, next_imm_use_on_stmt): Move to ssa-iterators.h.
10761 (gimple_phi_arg_def, gimple_phi_arg_def_ptr, gimple_phi_arg_edge,
10762 gimple_phi_arg_location, gimple_phi_arg_location_from_edge,
10763 gimple_phi_arg_set_location, gimple_phi_arg_has_location, phi_nodes,
10764 phi_nodes_ptr, phi_ssa_name_p): Move to gimple.h.
10765 (set_phi_nodes): Move to tree-phinodes.h.
10766 * tree-ssa-operands.h (enum ssa_op_iter_type,
10767 struct ssa_operand_iterator_d, SSA_OP*, FOR_EACH_SSA*, SINGLE_SSA*,
10768 ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): Move to ssa-iterators.h.
10769 (dump_decl_set): Remove prototype.
10770 (get_use_from_ptr, get_def_from_ptr): Relocate from tree-flow.h.
10771 * tree-phinodes.h: New file. Move some prototypes from tree-flow.h.
10772 (set_phi_nodes): Relocate from tree-flow-inline.h.
10773 (gimple_phi_arg_imm_use_ptr, phi_arg_index_from_use): Relocate from
10774 tree-flow-inline.h
10775 * tree-ssa.h: Add tree-phinodes.h, gimple-ssa.h, ssa-iterators.h to
10776 include list. Temporarily add gimple.h to include list.
10777 * ssa-iterators.h: New file.
10778 (struct immediate_use_iterator_d, FOR_EACH_IMM_*,
10779 BREAK_FROM_IMM_USE_STMT): Relocate from tree-flow.h.
10780 (enum ssa_op_iter_type, struct ssa_operand_iterator_d, SSA_OP*,
10781 FOR_EACH_SSA*, SINGLE_SSA*, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS):
10782 Relocate from tree-ssa-operands.h.
10783 (delink_imm_use, link_imm_use_to_list, link_imm_use,
10784 set_ssa_use_from_ptr, link_imm_use_stmt, relink_imm_use,
10785 relink_imm_use_stmt, end_readonly_imm_use_p, first_readonly_imm_use,
10786 next_readonly_imm_use, has_zero_uses, has_single_use, single_imm_use,
10787 num_imm_uses, get_use_from_ptr, get_def_from_ptr,
10788 phi_arg_index_from_use, op_iter_done, op_iter_next_def,
10789 op_iter_next_tree, clear_and_done_ssa_iter, op_iter_init,
10790 op_iter_init_use, op_iter_init_def, op_iter_init_tree,
10791 single_ssa_tree_operand, single_ssa_use_operand, single_ssa_def_operand,
10792 zero_ssa_operands, num_ssa_operands, delink_stmt_imm_use,
10793 single_phi_def, op_iter_init_phiuse, op_iter_init_phidef,
10794 end_imm_use_stmt_p, end_imm_use_stmt_traverse, move_use_after_head,
10795 link_use_stmts_after, first_imm_use_stmt, next_imm_use_stmt,
10796 first_imm_use_on_stmt, end_imm_use_on_stmt_p, next_imm_use_on_stmt):
10797 Relocate from tree-flow-inline.h.
10798 * tree-outof-ssa.h: Change _SSAEXPAND_H macro to GCC_TREE_OUTOF_SSA_H.
10799
d68f29d7 108002013-10-01 Vidya Praveen <vidyapraveen@arm.com>
10801
10802 * aarch64-simd.md
10803 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l2<mode>_internal): Rename to ...
10804 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal): ... this;
10805 Insert '\t' to output template.
10806 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_lo_internal): New.
10807 (aarch64_saddl2<mode>, aarch64_uaddl2<mode>): Modify to call
10808 gen_aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>_hi_internal() instead.
10809 (aarch64_ssubl2<mode>, aarch64_usubl2<mode>): Ditto.
10810
779c39ce 108112013-10-01 Uros Bizjak <ubizjak@gmail.com>
10812
10813 * doc/install.texi (Host/target specific installation notes for GCC):
10814 Put @anchor before @heading.
10815 * doc/gcc.texi (titlepage): Use @uref and http:// prefix for website.
10816 Use @email for email addresses.
10817
f2981b08 108182013-10-01 Jeff Law <law@redhat.com>
10819
10820 * tree-ssa-threadedge.c (thread_across_edge): Make path a pointer to
10821 a vec. Only delete the path if we create one without successfully
10822 registering a jump thread.
10823 * tree-ssa-threadupdate.h (register_jump_thread): Pass in path vector
10824 as a pointer.
10825 * tree-ssa-threadupdate.c (threaded_edges): Remove. No longer used
10826 (paths): New vector of jump threading paths.
10827 (THREAD_TARGET, THREAD_TARGET2): Remove accessor macros.
10828 (THREAD_PATH): New accessor macro for the entire thread path.
10829 (lookup_redirection_data): Get intermediate and final outgoing edge
10830 from the thread path.
10831 (create_edge_and_update_destination_phis): Copy the threading path.
10832 (ssa_fix_duplicate_block_edges): Get edges and block types from the
10833 jump threading path.
10834 (ssa_redirect_edges): Get edges and block types from the jump threading
10835 path. Free the path vector.
10836 (thread_block): Get edges from the jump threading path. Look at the
10837 entire path to see if we thread to a loop exit. If we cancel a jump
10838 thread request, then free the path vector.
10839 (thread_single_edge): Get edges and block types from the jump threading
10840 path. Free the path vector.
10841 (thread_through_loop_header): Get edges and block types from the jump
10842 threading path. Free the path vector.
10843 (mark_threaded_blocks): Iterate over the vector of paths and store
10844 the path on the appropriate edge. Get edges and block types from the
10845 jump threading path.
10846 (mark_threaded_blocks): Get edges and block types from the jump
10847 threading path. Free the path vector.
10848 (thread_through_all_blocks): Use the vector of paths rather than
10849 a vector of 3-edge sets.
10850 (register_jump_thread): Accept pointer to a path vector rather
10851 than the path vector itself. Store the path vector for later use.
10852 Simplify.
10853
245402e7 108542013-10-01 Jakub Jelinek <jakub@redhat.com>
d68f29d7 10855 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
245402e7 10856
10857 PR target/58574
10858 * config/s390/s390.c (s390_split_branches): Modify check for table
10859 jump insns.
10860 (s390_chunkify_start): Rearrange table jump insn check in order to
10861 deal with compare and branch insns correctly.
10862
2837e3fb 108632013-10-01 Kugan Vivekanandarajah <kuganv@linaro.org>
10864
10865 PR target/58578
10866 Revert
10867 2013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
10868 * config/arm/arm.md (arm_ashldi3_1bit): define_insn into
10869 define_insn_and_split.
10870 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
10871 (shiftsi3_compare): New pattern.
10872 (rrx): New pattern.
10873 * config/arm/unspecs.md (UNSPEC_RRX): New.
10874
bf815382 108752013-10-01 Alan Modra <amodra@gmail.com>
10876
10877 * stmt.c (expand_asm_operands): Revert part of 2013-09-24 special
10878 casing inout operands.
10879
f59ae127 108802013-10-01 Richard Biener <rguenther@suse.de>
10881
10882 PR tree-optimization/58553
10883 * tree-loop-distribution.c (struct partition_s): Add niter member.
10884 (classify_partition): Populate niter member for the partition
10885 and properly identify whether the relevant store happens before
10886 or after the loop exit.
10887 (generate_memset_builtin): Use niter member from the partition.
10888 (generate_memcpy_builtin): Likewise.
10889
fd3aba29 108902013-09-30 Richard Sandiford <rdsandiford@googlemail.com>
10891
10892 * vec.h (vec_prefix, vec): Prefix member names with "m_".
10893 * vec.c (vec_prefix::calculate_allocation): Update accordingly.
10894
ae84f584 108952013-09-30 Richard Sandiford <rdsandiford@googlemail.com>
10896
10897 * basic-block.h (edge_list): Prefix member names with "m_".
10898 * context.h (context): Likewise.
10899 * domwalk.h (dom_walker): Likewise.
10900 * gengtype-state.c (s_expr_writer, state_writer): Likewise.
10901 * graphite-sese-to-poly.c (sese_dom_walker): Likewise.
10902 * hash-table.h (hash_table): Likewise.
10903 * machmode.h (bit_field_mode_iterator): Likewise.
10904 * pass_manager.h (pass_list): Likewise.
10905 * tree-into-ssa.c (mark_def_dom_walker): Likewise.
10906 * tree-pass.h (pass_data): Likewise.
10907 * tree-ssa-dom.c (dom_opt_dom_walker): Likewise.
10908 * tree-ssa-phiopt.c (nontrapping_dom_walker): Likewise,
10909 * tree-ssa-uncprop.c (uncprop_dom_walker): Likewise.
10910 * asan.c (pass_data_asan): Update accordingly.
10911 * cfganal.c (control_dependences::find_control_dependence): Likewise.
10912 (control_dependences::control_dependences): Likewise.
10913 (control_dependences::~control_dependences): Likewise.
10914 (control_dependences::~control_dependences): Likewise.
10915 (control_dependences::get_edges_dependent_on): Likewise.
10916 * cgraphbuild.c (pass_data_rebuild_cgraph_edges::clone): Likewise.
10917 (pass_data_remove_cgraph_callee_edges::clone): Likewise.
10918 * context.c (gcc::context::context): Likewise.
10919 * cprop.c (pass_rtl_cprop::clone): Likewise.
10920 * domwalk.c (dom_walker::walk): Likewise.
10921 * ipa-inline-analysis.c (pass_inline_parameters::clone): Likewise.
10922 * ipa-pure-const.c (pass_local_pure_const::clone): Likewise.
10923 * mode-switching.c (pass_mode_switching::clone): Likewise.
10924 * passes.c (opt_pass::opt_pass): Likewise.
10925 (pass_manager::pass_manager): Likewise.
10926 * predict.c (pass_strip_predict_hints::clone): Likewise.
10927 * recog.c (pass_data pass_data_peephole2::clone): Likewise.
10928 (pass_split_all_insns::clone): Likewise.
10929 * stor-layout.c (bit_field_mode_iterator::bit_field_mode_iterator):
10930 Likewise.
10931 (bit_field_mode_iterator::next_mode): Likewise.
10932 (bit_field_mode_iterator::prefer_smaller_modes): Likewise.
10933 * tree-cfg.c (pass_split_crit_edges::clone): Likewise.
10934 * tree-cfgcleanup.c (pass_merge_phi::clone): Likewise.
10935 * tree-complex.c (pass_lower_complex::clone): Likewise.
10936 * tree-eh.c (pass_cleanup_eh::clone): Likewise.
10937 * tree-object-size.c (pass_object_sizes::clone): Likewise.
10938 * tree-optimize.c (pass_fixup_cfg::clone): Likewise.
10939 * tree-ssa-ccp.c (pass_data_ccp::clone): Likewise.
10940 (pass_fold_builtins::clone): Likewise.
10941 * tree-ssa-copy.c (pass_data_copy_prop::clone): Likewise.
10942 * tree-ssa-copyrename.c (pass_rename_ssa_copies::clone): Likewise.
10943 * tree-ssa-dce.c (pass_dce::clone, pass_dce_loop::clone): Likewise.
10944 (pass_cd_dce::clone): Likewise.
10945 * tree-ssa-dom.c (pass_dominator::clone): Likewise.
10946 (pass_phi_only_cprop::clone): Likewise.
10947 * tree-ssa-dse.c (pass_dse::clone): Likewise.
10948 * tree-ssa-forwprop.c (pass_forwprop::clone): Likewise.
10949 * tree-ssa-loop.c (pass_lim::clone): Likewise.
10950 * tree-ssa-phiopt.c (pass_phiopt::clone): Likewise.
10951 * tree-ssa-pre.c (pass_fre::clone): Likewise.
10952 * tree-ssa-reassoc.c (pass_reassoc::clone): Likewise.
10953 * tree-ssa-uninit.c (pass_late_warn_uninitialized::clone): Likewise.
10954 * tree-tailcall.c (pass_tail_recursion::clone): Likewise.
10955 * tree-vect-generic.c (pass_lower_vector_ssa::clone): Likewise.
10956 * tree-vrp.c (pass_vrp::clone): Likewise.
10957 * tsan.c (pass_tsan::clone): Likewise.
10958
c60fcb50 109592013-09-30 Jakub Jelinek <jakub@redhat.com>
10960
65537df2 10961 PR middle-end/58564
10962 * fold-const.c (tree_unary_nonnegative_warnv_p): Use
10963 INTEGRAL_TYPE_P (t) instead of TREE_CODE (t) == INTEGER_TYPE.
10964
c60fcb50 10965 PR middle-end/58564
10966 * fold-const.c (fold_ternary_loc): For A < 0 : <sign bit of A> : 0
10967 optimization, punt if sign_bit_p looked through any zero extension.
10968
353f9f16 109692013-09-30 Teresa Johnson <tejohnson@google.com>
10970
10971 * tree-ssa-threadupdate.c (ssa_fix_duplicate_block_edges):
10972 Update redirected out edge count in joiner case.
10973 (ssa_redirect_edges): Common the joiner and non-joiner cases
10974 so that joiner case gets profile updates.
10975
73423315 109762013-09-30 Richard Biener <rguenther@suse.de>
10977
10978 PR tree-optimization/58554
779c39ce 10979 * tree-loop-distribution.c (classify_partition): Require
10980 unconditionally executed stores for memcpy and memset recognition.
73423315 10981 (tree_loop_distribution): Calculate dominance info.
10982
4b23d68e 109832013-09-30 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
10984
10985 * config/aarch64/aarch64.h (MCOUNT_NAME): Define.
10986 (NO_PROFILE_COUNTERS): Likewise.
10987 (PROFILE_HOOK): Likewise.
10988 (FUNCTION_PROFILER): Likewise.
10989 * config/aarch64/aarch64.c (aarch64_function_profiler): Remove.
10990
72e6c7e8 109912013-09-30 Iain Sandoe <iain@codesourcery.com>
10992
10993 * config/rs6000/darwin.md (load_macho_picbase_si): Wrap machopic
10994 calls and defines in TARGET_MACHO conditional.
10995 (load_macho_picbase_di): Likewise.
10996 (reload_macho_picbase): Likewise.
10997 (reload_macho_picbase_si): Likewise.
10998 (reload_macho_picbase_di): Likewise.
10999 (nonlocal_goto_receiver): Likewise.
11000
1b80b2b4 110012013-09-30 Nick Clifton <nickc@redhat.com>
11002
11003 * config/msp430/msp430.c (msp430x_names): New array. Lists MCUs
11004 that use the MSP430X ISA.
11005 (msp430_option_override): Scan -mmcu command line option for any
11006 MCU name that supports the MSP430X ISA.
11007 * config/msp430/t-msp430 (MULTILIB_MATCHES): Add matches for known
11008 -mmcu options which enable the MSP430X ISA.
11009
f49fb88f 110102013-09-30 Richard Biener <rguenther@suse.de>
11011
11012 PR middle-end/58532
11013 * tree-cfg.c (make_abnormal_goto_edges): Skip debug statements
11014 before looking for setjmp-like calls.
11015
4e2e3c2e 110162013-09-29 Iain Sandoe <iain@codesourcery.com>
11017
11018 PR target/10901
11019 * config/darwin-protos.h (machopic_get_function_picbase): New.
11020 * config/darwin.c (machopic_get_function_picbase): New.
11021 * config/rs6000/darwin.md (load_macho_picbase_si): Update picbase
11022 label for a new func. (load_macho_picbase_di): Likewise.
11023 (reload_macho_picbase): New expand.
11024 (reload_macho_picbase_si): New insn.
11025 (reload_macho_picbase_di): New insn.
11026 (nonlocal_goto_receiver): New define and split.
11027 * config/rs6000/rs6000.md (unspec enum): Add UNSPEC_RELD_MPIC.
11028 (unspecv enum): Add UNSPECV_NLGR.
11029
3b46beda 110302013-09-29 Iain Sandoe <iain@codesourcery.com>
11031
11032 * config/rs6000/rs6000.c (rs6000_init_dwarf_reg_sizes_extra): Ensure
11033 that altivec registers are correctly sized on Darwin.
11034
3a61904c 110352013-09-29 Iain Sandoe <iain@codesourcery.com>
11036
11037 * config/t-darwin (darwin.o, darwin-c.o, darwin-f.o,
11038 darwin-driver.o): Use COMPILE and POSTCOMPILE.
11039 * config/x-darwin (host-darwin.o): Likewise.
11040 * config/i386/x-darwin (host-i386-darwin.o): Likewise.
11041 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise.
11042 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise.
11043
1a1634db 110442013-09-29 Uros Bizjak <ubizjak@gmail.com>
11045
11046 * doc/invoke.texi: Fix usage of @tie{} command.
11047
6c63a802 110482013-09-29 Eric Botcazou <ebotcazou@adacore.com>
11049
11050 * config/sparc/sync.md: Add peephole for consecutive memory barriers.
11051
a8fba140 110522013-09-28 Jan Hubicka <jh@suse.cz>
11053
11054 * config/i386/x86-tune.def: Add documentation for each of the options;
11055 add whitespace.
11056
c70c3839 110572013-09-28 Jan Hubicka <jh@suse.cz>
11058
1a1634db 11059 * x86-tune.def (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Enable for
11060 generic.
c70c3839 11061 (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Likewise.
11062 (X86_TUNE_FOUR_JUMP_LIMIT): Drop for generic and buldozer.
11063 (X86_TUNE_PAD_RETURNS): Drop for buldozer chips.
11064 (X86_TUNE_AVOID_VECTOR_DECODE): Drop for generic.
11065 (X86_TUNE_REASSOC_FP_TO_PARALLEL): Enable for generic.
11066
9af5ce0c 110672013-09-28 Richard Sandiford <rdsandiford@googlemail.com>
11068
11069 * alloc-pool.c, asan.c, auto-inc-dec.c, basic-block.h, bb-reorder.c,
11070 bitmap.c, bitmap.h, bt-load.c, builtins.c, calls.c, cfgcleanup.c,
11071 cfgexpand.c, cfghooks.c, cfgloop.c, cfgloopmanip.c, cfgrtl.c, cgraph.c,
11072 cgraph.h, cgraphbuild.c, cgraphclones.c, cgraphunit.c, collect2.c,
11073 combine-stack-adj.c, combine.c, compare-elim.c, context.c, context.h,
11074 cprop.c, cse.c, cselib.c, dbxout.c, dce.c, defaults.h, df-core.c,
11075 df-problems.c, df-scan.c, df.h, diagnostic.c, double-int.c, dse.c,
11076 dumpfile.c, dwarf2asm.c, dwarf2cfi.c, dwarf2out.c, emit-rtl.c,
11077 errors.c, except.c, expmed.c, expr.c, file-find.c, final.c,
11078 fixed-value.c, fold-const.c, function.c, fwprop.c, gcc-ar.c, gcc.c,
11079 gcov-io.c, gcov-io.h, gcov.c, gcse.c, genattr-common.c, genattr.c,
11080 genattrtab.c, genautomata.c, genconfig.c, genemit.c, genextract.c,
11081 genflags.c, gengenrtl.c, gengtype-state.c, gengtype.c, genmodes.c,
11082 genopinit.c, genoutput.c, genpeep.c, genpreds.c, genrecog.c,
11083 gensupport.c, ggc-common.c, ggc-page.c, gimple-fold.c, gimple-low.c,
11084 gimple-pretty-print.c, gimple-ssa-strength-reduction.c, gimple.c,
11085 gimple.h, godump.c, graphite-clast-to-gimple.c,
11086 graphite-optimize-isl.c, graphite-poly.h, graphite-sese-to-poly.c,
11087 graphite.c, haifa-sched.c, hash-table.c, hash-table.h, hwint.c,
11088 hwint.h, ifcvt.c, incpath.c, init-regs.c, input.h, intl.c, intl.h,
11089 ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
11090 ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c,
11091 ipa-utils.c, ipa.c, ira-build.c, ira.c, jump.c, loop-doloop.c,
11092 loop-init.c, loop-invariant.c, loop-iv.c, lower-subreg.c, lto-cgraph.c,
11093 lto-streamer-in.c, lto-streamer-out.c, lto-wrapper.c, mcf.c,
11094 mode-switching.c, modulo-sched.c, omp-low.c, optabs.c, opts.c,
11095 pass_manager.h, passes.c, plugin.c, postreload-gcse.c, postreload.c,
11096 predict.c, prefix.c, pretty-print.c, print-rtl.c, print-tree.c,
11097 profile.c, read-md.c, real.c, real.h, recog.c, ree.c, reg-stack.c,
11098 regcprop.c, reginfo.c, regmove.c, regrename.c, regs.h, regstat.c,
11099 reload1.c, reorg.c, rtl.c, rtl.h, rtlanal.c, sbitmap.c, sched-rgn.c,
11100 sdbout.c, sel-sched-ir.c, sel-sched.c, sparseset.c, stack-ptr-mod.c,
11101 statistics.c, stmt.c, stor-layout.c, store-motion.c, streamer-hooks.h,
11102 system.h, target-hooks-macros.h, targhooks.c, targhooks.h, toplev.c,
11103 tracer.c, trans-mem.c, tree-browser.c, tree-call-cdce.c, tree-cfg.c,
11104 tree-cfgcleanup.c, tree-complex.c, tree-data-ref.c, tree-data-ref.h,
11105 tree-eh.c, tree-emutls.c, tree-flow.h, tree-if-conv.c, tree-into-ssa.c,
11106 tree-iterator.c, tree-loop-distribution.c, tree-mudflap.c,
11107 tree-nested.c, tree-nomudflap.c, tree-nrv.c, tree-object-size.c,
11108 tree-optimize.c, tree-pass.h, tree-pretty-print.c, tree-profile.c,
11109 tree-scalar-evolution.c, tree-sra.c, tree-ssa-ccp.c,
11110 tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
11111 tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
11112 tree-ssa-ifcombine.c, tree-ssa-live.c, tree-ssa-loop-ch.c,
11113 tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-loop-prefetch.c,
11114 tree-ssa-loop.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
11115 tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
11116 tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
11117 tree-ssa-structalias.c, tree-ssa-threadedge.c, tree-ssa-threadupdate.c,
11118 tree-ssa-uncprop.c, tree-ssa-uninit.c, tree-ssa.c, tree-ssanames.c,
11119 tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
11120 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
11121 tree-vect-stmts.c, tree-vectorizer.c, tree-vectorizer.h, tree-vrp.c,
11122 tree.c, tree.h, tsan.c, tsystem.h, value-prof.c, var-tracking.c,
11123 varasm.c, vec.h, vmsdbgout.c, vtable-verify.c, web.c: Add missing
11124 whitespace before "(".
11125
3f71db40 111262013-09-28 Sandra Loosemore <sandra@codesourcery.com>
11127
11128 * expr.h (extract_bit_field): Remove packedp parameter.
11129 * expmed.c (extract_fixed_bit_field): Remove packedp parameter
11130 from forward declaration.
11131 (store_split_bit_field): Remove packedp arg from calls to
11132 extract_fixed_bit_field.
11133 (extract_bit_field_1): Remove packedp parameter and packedp
11134 argument from recursive calls and calls to extract_fixed_bit_field.
11135 (extract_bit_field): Remove packedp parameter and corresponding
11136 arg to extract_bit_field_1.
11137 (extract_fixed_bit_field): Remove packedp parameter. Remove code
11138 to issue warnings.
11139 (extract_split_bit_field): Remove packedp arg from call to
11140 extract_fixed_bit_field.
11141 * expr.c (emit_group_load_1): Adjust calls to extract_bit_field.
11142 (copy_blkmode_from_reg): Likewise.
11143 (copy_blkmode_to_reg): Likewise.
11144 (read_complex_part): Likewise.
11145 (store_field): Likewise.
11146 (expand_expr_real_1): Likewise.
11147 * calls.c (store_unaligned_arguments_into_pseudos): Adjust call
11148 to extract_bit_field.
11149 * config/tilegx/tilegx.c (tilegx_expand_unaligned_load): Adjust
11150 call to extract_bit_field.
11151 * config/tilepro/tilepro.c (tilepro_expand_unaligned_load): Adjust
11152 call to extract_bit_field.
11153 * doc/invoke.texi (Code Gen Options): Remove mention of warnings
11154 and special packedp behavior from -fstrict-volatile-bitfields
11155 documentation.
11156
1dd7fae5 111572013-09-27 Jan-Benedict Glaw <jbglaw@lug-owl.de>
11158
11159 * lra-eliminations.c (init_elim_table): Guard value_p.
11160
56189eab 111612013-09-27 Michael Meissner <meissner@linux.vnet.ibm.com>
11162
11163 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Allow
11164 DFmode, DImode, and SFmode in the upper VSX registers based on the
11165 -mupper-regs-{df,sf} flags. Fix wu constraint to be ALTIVEC_REGS
11166 if -mpower8-vector. Combine -mvsx-timode handling with the rest
11167 of the VSX register handling.
11168
11169 * config/rs6000/rs6000.md (f32_lv): Use %x0 for VSX regsters.
11170 (f32_sv): Likewise.
11171 (zero_extendsidi2_lfiwzx): Add support for loading into the
11172 Altivec registers with -mpower8-vector. Use wu/wv constraints to
11173 only do VSX memory options on Altivec registers.
11174 (extendsidi2_lfiwax): Likewise.
11175 (extendsfdf2_fpr): Likewise.
11176 (mov<mode>_hardfloat, SF/SD modes): Likewise.
11177 (mov<mode>_hardfloat32, DF/DD modes): Likewise.
11178 (mov<mode>_hardfloat64, DF/DD modes): Likewise.
11179 (movdi_internal64): Likewise.
11180
1dbf9bd1 111812013-09-27 Xinliang David Li <davidxl@google.com>
11182
11183 * opts.c (finish_options): Adjust parameters
11184 according to vect cost model.
11185 (common_handle_option): Set dynamic vect cost
11186 model for FDO.
11187 targhooks.c (default_add_stmt_cost): Compute stmt cost
11188 unconditionally.
11189 * tree-vect-loop.c (vect_estimate_min_profitable_iters):
11190 Use helper function.
11191 * tree-vectorizer.h (unlimited_cost_model): New function.
11192 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use helper function.
11193 * tree-vect-data-refs.c (vect_peeling_hash_insert): Use helper
11194 function.
11195 (vect_enhance_data_refs_alignment): Ditto.
11196 * flag-types.h: New enum.
11197 * common/config/i386/i386-common.c (ix86_option_init_struct):
11198 No need to initialize vect_cost_model flag.
11199 * config/i386/i386.c (ix86_add_stmt_cost): Compute stmt cost
11200 unconditionally.
11201
ca2418b8 112022013-09-27 Diego Novillo <dnovillo@google.com>
11203
11204 * gimple.h (enum ssa_mode): Remove.
11205
de15b4bb 112062013-09-27 Paulo Matos <pmatos@broadcom.com>
11207
11208 * cfgloop.h (number_of_loops): Fix typo in check for null.
11209
fc33577d 112102013-09-27 Jakub Jelinek <jakub@redhat.com>
11211
11212 PR middle-end/58551
11213 * tree-cfg.c (move_sese_region_to_fn): Also move loops that
11214 are children of outermost saved_cfun's loop, and set it up to
11215 be moved to dest_cfun's outermost loop. Fix up num_nodes adjustments
11216 if loop != loop0 and SESE region contains bbs that belong to loop0.
11217
2de52d09 112182013-09-27 Richard Sandiford <rdsandiford@googlemail.com>
11219
11220 * rtlanal.c (must_be_base_p, must_be_index_p): Delete.
11221 (binary_scale_code_p, get_base_term, get_index_term): New functions.
11222 (set_address_segment, set_address_base, set_address_index)
11223 (set_address_disp): Accept the argument unconditionally.
11224 (baseness): Remove must_be_base_p and must_be_index_p checks.
11225 (decompose_normal_address): Classify as much as possible in the
11226 main loop.
11227
b3578ae7 112282013-09-27 Richard Sandiford <rdsandiford@googlemail.com>
11229
11230 * cse.c (count_reg_usage): Handle INT_LIST.
11231 * lra-eliminations.c (lra_eliminate_regs_1): Likewise.
11232 * reginfo.c (reg_scan_mark_refs): Likewise.
11233 * reload1.c (eliminate_regs_1): Likewise.
11234
041222b1 112352013-09-27 Iain Sandoe <iain@codesourcery.com>
11236
11237 PR middle-end/58547
11238 * rtlanal.c (lsb_bitfield_op_p): Make both parts of the comparison
11239 signed.
11240
162efce1 112412013-09-27 Richard Biener <rguenther@suse.de>
11242
11243 PR tree-optimization/58459
11244 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Remove
11245 restriction not propagating into loops.
11246
85abc7df 112472013-09-26 Florian Weimer <fw@deneb.enyo.de>
11248
11249 * tree-ssa.h (walk_use_def_chains_fn, walk_use_def_chains): Delete.
11250 * tree-ssa.c (walk_use_def_chains_1, walk_use_def_chains): Delete.
11251 * doc/tree-ssa.texi (Walking use-def chains): Delete.
11252
382c2352 112532013-09-26 Richard Biener <rguenther@suse.de>
11254
1a1634db 11255 * tree-into-ssa.c (rewrite_into_ssa): Make more SSA names to anonymous.
382c2352 11256
d400f5e1 112572013-09-26 Richard Biener <rguenther@suse.de>
11258
11259 * alias.h (component_uses_parent_alias_set): Rename to ...
11260 (component_uses_parent_alias_set_from): ... this.
11261 * alias.c (component_uses_parent_alias_set): Rename to ...
11262 (component_uses_parent_alias_set_from): ... this and return
11263 the desired parent.
11264 (reference_alias_ptr_type_1): Use the result from
11265 component_uses_parent_alias_set_from instead of stripping
11266 components one at a time.
11267 * emit-rtl.c (set_mem_attributes_minus_bitpos): Adjust.
11268
f7373a91 112692013-09-26 Andrew MacLeod <amacleod@redhat.com>
11270
1a1634db 11271 * tree-ssa-live.h (find_replaceable_exprs, dump_replaceable_exprs):
11272 Move prototypes to...
f7373a91 11273 * tree-ssa-ter.h: New File. Move prototypes here.
11274 * tree-flow.h (stmt_is_replaceable_p): Remove prototype.
11275 * tree-outof-ssa.h: New. Rename ssaexpand.h, include tree-ssa-ter.h.
11276 * tree-outof-ssa.c (ssa_is_replaceable_p): New. Refactor common bits
1a1634db 11277 from is_replaceable_p.
f7373a91 11278 * tree-ssa-ter.c (is_replaceable_p, stmt_is_replaceable_p): Delete.
11279 (ter_is_replaceable_p): New. Use new refactored ssa_is_replaceable_p.
11280 (process_replaceable): Use ter_is_replaceable_p.
11281 (find_replaceable_in_bb): Use ter_is_replaceable_p.
11282 * expr.c (stmt_is_replaceable_p): Relocate from tree-ssa-ter.c. Use
11283 newly refactored ssa_is_replaceable_p.
11284 * cfgexpand.c: Include tree-outof-ssa.h.
11285 * ssaexpand.h: Delete.
11286
9a4a3348 112872013-09-26 Andrew MacLeod <amacleod@redhat.com>
11288
11289 * gimple.c (gimple_replace_lhs): Move to tree-ssa.c and rename.
11290 (struct count_ptr_d, count_ptr_derefs, count_uses_and_derefs): Move to
11291 tree-ssa.c
11292 (create_gimple_tmp): Delete.
11293 (get_expr_type, build_assign, build_type_cast): Move to...
11294 * gimple-builder.c: New File.
11295 (get_expr_type): Relocate from gimple.c.
11296 (build_assign, build_type_cast): Change to only create ssanames.
11297 * gimple.h: Move prototypes to...
11298 * gimple-builder.h: New File. Here.
11299 * tree-ssa.h: And here.
11300 * tree-ssa.c (struct count_ptr_d, count_ptr_derefs,
11301 count_uses_and_derefs): Relocate from gimple.c.
11302 (gimple_replace_ssa_lhs): Renamed gimple_replace_ssa from gimple.c
11303 * tree-ssa-reassoc.c (repropagate_negates): Use gimple_replace_ssa_lhs.
11304 * tree-ssa-math-opts (execute_cse_reciprocals): Use
11305 gimple_replace_ssa_lhs.
11306 * asan.c: Include gimple-builder.h.
11307 * Makefile.in: Add gimple-builder.o.
11308
688425e8 113092013-09-26 Richard Biener <rguenther@suse.de>
11310
11311 * tree-ssa-live.c (var_map_base_init): Handle SSA names with
11312 DECL_IGNORED_P base VAR_DECLs like anonymous SSA names.
11313 (loe_visit_block): Use gcc_checking_assert.
11314 * tree-ssa-coalesce.c (create_outofssa_var_map): Use
11315 gimple_assign_ssa_name_copy_p.
11316 (gimple_can_coalesce_p): Adjust according to the var_map_base_init
11317 change.
11318
ad7b4225 113192013-09-26 David Edelsohn <dje.gcc@gmail.com>
11320
11321 * config/rs6000/t-rs6000 (rs6000.o): Remove.
11322 (rs6000-c.o): Use COMPILE and POSTCOMPILE.
11323
f898e094 113242013-09-26 Richard Biener <rguenther@suse.de>
11325
11326 PR tree-optimization/58539
11327 * tree-vect-loop.c (vect_create_epilog_for_reduction): Honor
11328 the fact that debug statements are not taking part in loop-closed
11329 SSA construction.
11330
9b52871c 113312013-09-26 Nick Clifton <nickc@redhat.com>
11332
11333 * config/msp430/msp430.c (msp430_expand_epilogue): Fix compile
11334 time warning message.
11335 (msp430_print_operand_raw): Delete unused letter parameter.
11336 (TARGET_PRINT_OPERAND_ADDRESS): Define.
11337 (msp430_print_operand_address): New function.
11338 (msp430_print_operand): Move address printing code from here to
11339 new function.
11340 * config/msp430/msp430.md (movsipsi2): Add comment in generated
11341 assembler.
11342 (zero_extendpsisi2): Likewise.
11343 (extendpsisi2): New pattern.
11344 (andneghi3): New pattern.
11345
07ca5686 113462013-09-26 Yvan Roux <yvan.roux@linaro.org>
11347
11348 * config/aarch64/aarch64.opt (mlra): New option.
11349 * config/aarch64/aarch64.c (aarch64_lra_p): New function.
11350 (TARGET_LRA_P): Define.
11351
28e94899 113522013-09-26 Eric Botcazou <ebotcazou@adacore.com>
11353
11354 * expr.c (expand_assignment): Remove obsolete comment.
11355
0c5b289a 113562013-09-25 Jeff Law <law@redhat.com>
11357
11358 * tree-flow.h (thread_through_all_blocks): Prototype moved into
11359 tree-ssa-threadupdate.h.
11360 (register_jump_thread): Similarly.
11361 * tree-ssa-threadupdate.h: New header file.
11362 * tree-ssa-dom.c: Include tree-ssa-threadupdate.h.
11363 * tree-vrp.c: Likewise.
11364 * tree-ssa-threadedge.c: Include tree-ssa-threadupdate.h.
11365 (thread_around_empty_blocks): Change type of path vector argument to
11366 an edge,type pair from just an edge. Initialize both elements when
11367 appending to a jump threading path. Tweak references to elements
11368 appropriately.
11369 (thread_across_edge): Similarly. Release memory for the elements
11370 as needed.
11371 * tree-ssa-threadupdate.c: Include tree-ssa-threadupdate.h.
11372 (dump_jump_thread_path): New function broken out from
11373 register_jump_thread.
11374 (register_jump_thread): Use dump_jump_thread_path. Change type of
11375 path vector entries. Search the path for NULL edges and dump
11376 the path if one is found. Tweak the conversion of path to 3-edge
11377 form to use the block copy type information embedded in the path.
11378
e2ca76ac 113792013-09-25 Yvan Roux <yvan.roux@linaro.org>
11380
11381 * lra.c (update_inc_notes): Remove all REG_DEAD and REG_UNUSED notes.
11382
cc1925e7 113832013-09-25 Yvan Roux <yvan.roux@linaro.org>
11384 Vladimir Makarov <vmakarov@redhat.com>
11385
11386 * rtlanal.c (lsb_bitfield_op_p): New predicate for bitfield operations
11387 from the least significant bit.
11388 (strip_address_mutations): Add bitfield operations handling.
11389 (must_be_index_p): Add shifting and rotate operations handling.
11390 (set_address_base): Use must_be_base_p predicate.
28e94899 11391 (set_address_index): Use must_be_index_p predicate.
cc1925e7 11392
6a3f5f59 113932013-09-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
11394 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
11395 Sergey Lega <sergey.s.lega@intel.com>
11396 Anna Tikhonova <anna.tikhonova@intel.com>
11397 Ilya Tocar <ilya.tocar@intel.com>
11398 Andrey Turetskiy <andrey.turetskiy@intel.com>
11399 Ilya Verbin <ilya.verbin@intel.com>
11400 Kirill Yukhin <kirill.yukhin@intel.com>
11401 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11402
11403 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
11404 Use new names.
11405 (ix86_expand_vector_move_misalign): Support new unaligned load and
11406 stores and use new names.
11407 (CODE_FOR_sse2_storedqu): Rename to ...
11408 (CODE_FOR_sse2_storedquv16qi): ... this.
11409 (CODE_FOR_sse2_loaddqu): Rename to ...
11410 (CODE_FOR_sse2_loaddquv16qi): ... this.
11411 (CODE_FOR_avx_loaddqu256): Rename to ...
11412 (CODE_FOR_avx_loaddquv32qi): ... this.
11413 (CODE_FOR_avx_storedqu256): Rename to ...
11414 (CODE_FOR_avx_storedquv32qi): ... this.
11415 * config/i386/i386.md (fpint_logic): New.
11416 * config/i386/sse.md (VMOVE): Extend for AVX512.
11417 (VF): Ditto.
11418 (VF_128_256): New.
11419 (VF_512): Ditto.
11420 (VI_UNALIGNED_LOADSTORE): Ditto.
11421 (sse2_avx_avx512f): Ditto.
11422 (sse2_avx2): Extend for AVX512.
11423 (sse4_1_avx2): Ditto.
11424 (avx2_avx512f): New.
11425 (sse): Extend for AVX512.
11426 (sse2): Ditto.
11427 (sse4_1): Ditto.
11428 (avxsizesuffix): Ditto.
11429 (sseintvecmode): Ditto.
11430 (ssePSmode): Ditto.
11431 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Ditto.
11432 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Ditto.
11433 (<sse2>_loaddqu<avxsizesuffix>): Extend for AVX512 and rename to ...
11434 (<sse2_avx_avx512f>_loaddqu<mode>): ... this.
11435 (<sse2>_storedqu<avxsizesuffix>): Extend for AVX512 and rename to ...
11436 (<sse2_avx_avx512f>_storedqu<mode): ... this.
11437 (<sse>_movnt<mode>): Replace constraint "x" with "v".
11438 (STORENT_MODE): Extend for AVX512.
11439 (*absneg<mode>2): Replace constraint "x" with "v".
11440 (*mul<mode>3): Ditto.
11441 (*ieee_smin<mode>3): Ditto.
11442 (*ieee_smax<mode>3): Ditto.
11443 (avx_cmp<mode>3): Replace VF with VF_128_256.
11444 (*<sse>_maskcmp<mode>3_comm): Ditto.
11445 (<sse>_maskcmp<mode>3): Ditto.
11446 (<sse>_andnot<mode>3): Extend for AVX512.
11447 (<code><mode>3, anylogic): Replace VF with VF_128_256.
11448 (<code><mode>3, fpint_logic): New.
11449 (*<code><mode>3): Extend for AVX512.
11450 (avx512flogicsuff): New.
11451 (avx512f_<logic><mode>): Ditto.
11452 (<sse>_movmsk<ssemodesuffix><avxsizesuffix>): Replace VF with
11453 VF_128_256.
11454 (<sse4_1>_blend<ssemodesuffix><avxsizesuffix>): Ditto.
11455 (<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>): Ditto.
11456 (<sse4_1>_dp<ssemodesuffix><avxsizesuffix>): Ditto.
11457 (avx_vtest<ssemodesuffix><avxsizesuffix>): Ditto.
11458 (<sse4_1>_round<ssemodesuffix><avxsizesuffix>): Ditto.
11459 (xop_vpermil2<mode>3): Ditto.
11460 (*avx_vpermilp<mode>): Extend for AVX512 and rename to ...
11461 (*<sse2_avx_avx512f>_vpermilp<mode>): ... this.
11462 (avx_vpermilvar<mode>3): Extend for AVX512 and rename to ...
11463 (<sse2_avx_avx512f>_vpermilvar<mode>3): ... this.
11464
c35ccfac 114652013-09-25 Tom Tromey <tromey@redhat.com>
11466
11467 * Makefile.in (PARTITION_H, LTO_SYMTAB_H, COMMON_TARGET_DEF_H)
11468 (RTL_ERROR_H, TRANS_MEM_H, COVERAGE_H, DEMANGLE_H, ALIAS_H)
11469 (SCHED_INT_H, SEL_SCHED_IR_H, SEL_SCHED_DUMP_H, VALTRACK_H, DDG_H)
11470 (GGC_INTERNAL_H, DECNUM_H, BACKTRACE_H, MKDEPS_H, TREE_HASHER_H)
11471 (TREE_SSA_LIVE_H, SSAEXPAND_H, DWARF2OUT_H, SCEV_H, OMEGA_H)
11472 (TREE_DATA_REF_H, IRA_INT_H, LRA_INT_H, DBGCNT_H, DATA_STREAMER_H)
11473 (GIMPLE_STREAMER_H, TREE_STREAMER_H, STREAMER_HOOKS_H)
11474 (TREE_VECTORIZER_H, IPA_INLINE_H, GSTAB_H, LIBFUNCS_H)
11475 (GRAPHITE_HTAB_H): Remove.
11476
4581e3fe 114772013-09-25 Tom Tromey <tromey@redhat.com>
11478
11479 * config/mcore/t-mcore (CROSS_FLOAT_H): Remove.
11480
05a1982c 114812013-09-25 Tom Tromey <tromey@redhat.com>
11482
11483 * config/t-glibc (glibc-c.o): Use COMPILE and POSTCOMPILE.
11484
3f750947 114852013-09-25 Tom Tromey <tromey@redhat.com>
11486
11487 * config/i386/t-i386 (i386.o): Remove.
11488 (i386-c.o): Use COMPILE and POSTCOMPILE.
11489
3965816e 114902013-09-25 Tom Tromey <tromey@redhat.com>
11491
11492 * Makefile.in ($(out_object_file)): Use COMPILE and POSTCOMPILE.
11493
c1485012 114942013-09-25 Tom Tromey <tromey@redhat.com>
11495
11496 * Makefile.in (graph.o, sbitmap.o, sparseset.o, gcc-ar.o)
11497 (gcc-ranlib.o, gcc-nm.o, collect2.o, collect2-aix.o, tlink.o)
11498 (lto-wrapper.o, default-c.o, attribs.o, incpath.o, prefix.o)
11499 (gcc.o, options.o, options-save.o, version.o, gtype-desc.o)
11500 (trans-mem.o, ggc-common.o, ggc-page.o, ggc-none.o, stringpool.o)
11501 (convert.o, double-int.o, lto-compress.o, data-streamer-in.o)
11502 (data-streamer-out.o, data-streamer.o, gimple-streamer-in.o)
11503 (gimple-streamer-out.o, tree-streamer.o, tree-streamer-in.o)
11504 (tree-streamer-out.o, streamer-hooks.o, lto-cgraph.o)
11505 (lto-streamer-in.o, lto-streamer-out.o, lto-section-in.o)
11506 (lto-section-out.o, lto-opts.o, lto-streamer.o, langhooks.o)
11507 (test-dump.o, tree.o, tree-dump.o, tree-inline.o, print-tree.o)
11508 (stor-layout.o, asan.o, tsan.o, ubsan.o, tree-ssa-tail-merge.o)
11509 (tree-ssa-structalias.o, tree-ssa-uninit.o, tree-ssa.o)
11510 (tree-into-ssa.o, tree-ssa-ter.o, tree-ssa-coalesce.o)
11511 (tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o)
11512 (tree-ssa-phiprop.o, tree-ssa-ifcombine.o, tree-ssa-phiopt.o)
11513 (tree-nrv.o, tree-ssa-copy.o, tree-ssa-propagate.o)
11514 (tree-ssa-dom.o, tree-ssa-uncprop.o, tree-ssa-threadedge.o)
11515 (tree-ssa-threadupdate.o, tree-ssanames.o, tree-phinodes.o)
11516 (domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o)
11517 (tree-ssa-pre.o, tree-ssa-sccvn.o)
11518 (gimple-ssa-strength-reduction.o, tree-vrp.o, tree-cfg.o)
11519 (tree-cfgcleanup.o, tree-tailcall.o, tree-ssa-sink.o)
11520 (tree-nested.o, tree-if-conv.o, tree-iterator.o, tree-dfa.o)
11521 (tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o)
11522 (tree-ssa-loop-unswitch.o, tree-ssa-address.o)
11523 (tree-ssa-loop-niter.o, tree-ssa-loop-ivcanon.o)
11524 (tree-ssa-loop-ch.o, tree-ssa-loop-prefetch.o, tree-predcom.o)
11525 (tree-ssa-loop-ivopts.o, tree-affine.o, tree-ssa-loop-manip.o)
11526 (tree-ssa-loop-im.o, tree-ssa-math-opts.o, tree-ssa-alias.o)
11527 (tree-ssa-reassoc.o, tree-optimize.o, gimplify.o)
11528 (gimple-iterator.o, gimple-fold.o, gimple-low.o, omp-low.o)
11529 (tree-browser.o, omega.o, tree-chrec.o, tree-scalar-evolution.o)
11530 (tree-data-ref.o, sese.o, graphite.o, graphite-blocking.o)
11531 (graphite-clast-to-gimple.o, graphite-dependences.o)
11532 (graphite-interchange.o, graphite-poly.o)
11533 (graphite-scop-detection.o, graphite-sese-to-poly.o)
11534 (graphite-optimize-isl.o, tree-vect-loop.o)
11535 (tree-vect-loop-manip.o, tree-vect-patterns.o, tree-vect-slp.o)
11536 (tree-vect-stmts.o, tree-vect-data-refs.o, tree-vectorizer.o)
11537 (vtable-verify.o, tree-loop-distribution.o, tree-parloops.o)
11538 (tree-stdarg.o, tree-object-size.o, internal-fn.o, gimple.o)
11539 (gimple-pretty-print.o, tree-mudflap.o, tree-nomudflap.o)
11540 (tree-pretty-print.o, tree-diagnostic.o, fold-const.o)
11541 (diagnostic.o, diagnostic-color.o, opts.o, opts-global.o)
11542 (opts-common.o, targhooks.o, common/common-targhooks.o, input.o)
11543 (toplev.o, hwint.o, passes.o, plugin.o, main.o, host-default.o)
11544 (rtl-error.o, rtl.o, print-rtl.o, rtlanal.o, varasm.o, function.o)
11545 (statistics.o, stmt.o, except.o, expr.o, dojump.o, builtins.o)
11546 (calls.o, expmed.o, explow.o, optabs.o, dbxout.o, debug.o)
11547 (sdbout.o, dwarf2out.o, dwarf2cfi.o, dwarf2asm.o, vmsdbgout.o)
11548 (xcoffout.o, godump.o, emit-rtl.o, real.o, realmpfr.o, dfp.o)
11549 (fixed-value.o, jump.o, simplify-rtx.o, symtab.o, cgraph.o)
11550 (cgraphunit.o, cgraphclones.o, cgraphbuild.o, varpool.o, ipa.o)
11551 (ipa-profile.o, ipa-devirt.o, ipa-prop.o, ipa-ref.o, ipa-cp.o)
11552 (ipa-split.o, ipa-inline.o, ipa-inline-analysis.o)
11553 (ipa-inline-transform.o, ipa-utils.o, ipa-reference.o)
11554 (ipa-pure-const.o, coverage.o, cselib.o, cse.o, dce.o, dumpfile.o)
11555 (dse.o, fwprop.o, web.o, ree.o, cprop.o, gcse.o, store-motion.o)
11556 (resource.o, lcm.o, mode-switching.o, tree-ssa-dce.o)
11557 (tree-call-cdce.o, tree-ssa-ccp.o, tree-ssa-strlen.o, tree-sra.o)
11558 (tree-switch-conversion.o, tree-complex.o, tree-emutls.o)
11559 (tree-vect-generic.o, df-core.o, df-problems.o, df-scan.o)
11560 (regstat.o, valtrack.o, var-tracking.o, profile.o, mcf.o)
11561 (tree-profile.o, value-prof.o, loop-doloop.o, alloc-pool.o)
11562 (auto-inc-dec.o, cfg.o, cfghooks.o, cfgexpand.o, cfgrtl.o)
11563 (cfganal.o, cfgbuild.o, cfgcleanup.o, cfgloop.o, cfgloopanal.o)
11564 (graphds.o, loop-iv.o, loop-invariant.o, cfgloopmanip.o)
11565 (loop-init.o, loop-unswitch.o, loop-unroll.o, dominance.o)
11566 (et-forest.o, combine.o, reginfo.o, bitmap.o, vec.o, hash-table.o)
11567 (reload.o, reload1.o, rtlhooks.o, postreload.o, postreload-gcse.o)
11568 (caller-save.o, bt-load.o, reorg.o, alias.o, stack-ptr-mod.o)
11569 (init-regs.o, ira-build.o, ira-costs.o, ira-conflicts.o)
11570 (ira-color.o, ira-emit.o, ira-lives.o, ira.o, lra.o)
11571 (lra-assigns.o, lra-coalesce.o, lra-constraints.o)
11572 (lra-eliminations.o, lra-lives.o, lra-spills.o, regmove.o)
11573 (combine-stack-adj.o, compare-elim.o, ddg.o, modulo-sched.o)
11574 (haifa-sched.o, sched-deps.o, sched-rgn.o, sched-ebb.o)
11575 (sched-vis.o, sel-sched.o, sel-sched-dump.o, sel-sched-ir.o)
11576 (final.o, recog.o, reg-stack.o, sreal.o, predict.o, lists.o)
11577 (bb-reorder.o, tracer.o, timevar.o, regcprop.o, regrename.o)
11578 (ifcvt.o, params.o, pointer-set.o, hooks.o, pretty-print.o)
11579 (errors.o, dbgcnt.o, lower-subreg.o, target-globals.o)
11580 (hw-doloop.o, file-find.o, context.o, $(common_out_object_file))
11581 (insn-attrtab.o, insn-automata.o, insn-dfatab.o, insn-emit.o)
11582 (insn-enums.o, insn-extract.o, insn-latencytab.o, insn-modes.o)
11583 (insn-opinit.o, insn-output.o, insn-peep.o, insn-preds.o)
11584 (insn-recog.o, intl.o, cppbuiltin.o, cppdefault.o, gcov.o)
11585 (gcov-dump.o): Remove.
11586 (default-c.o): Use COMPILE and POSTCOMPILE.
11587 (CFLAGS-gcc.o): New variable.
11588 ($(common_out_object_file)): Use COMPILE and POSTCOMPILE.
11589
c0b4078e 115902013-09-25 Tom Tromey <tromey@redhat.com>
11591
11592 * Makefile.in (c-family/cppspec.o, c-family/c-common.o)
11593 (c-family/c-cppbuiltin.o, c-family/c-dump.o, c-family/c-format.o)
11594 (c-family/c-gimplify.o, c-family/c-lex.o, c-family/c-omp.o)
11595 (c-family/c-opts.o, c-family/c-pch.o, c-family/c-ppoutput.o)
11596 (c-family/c-pragma.o, c-family/c-pretty-print.o)
11597 (c-family/c-semantics.o, c-family/c-ada-spec.o)
11598 (c-family/array-notation-common.o, c-family/stub-objc.o)
11599 (c-family/c-ubsan.o): Remove.
11600
3ce7d1bd 116012013-09-25 Tom Tromey <tromey@redhat.com>
11602
11603 * Makefile.in (C_TREE_H): Reference c/c-tree.h.
11604
96da1c1d 116052013-09-25 Tom Tromey <tromey@redhat.com>
11606
11607 * Makefile.in (DRIVER_DEFINES): Use $(and), not shell code,
11608 to add -DENABLE_SHARED_LIBGCC.
11609 (gcc.o): Don't use subshell.
11610
e7c8aa66 116112013-09-25 Tom Tromey <tromey@redhat.com>
11612
11613 * Makefile.in (OUTPUT_OPTION): Define as "-o $@".
11614 * configure.ac: Don't invoke AM_PROG_CC_C_O.
11615 (NO_MINUS_C_MINUS_O, OUTPUT_OPTION): Don't subst.
11616 * configure, config.in: Rebuild.
11617
b8bd120b 116182013-09-25 Tom Tromey <tromey@redhat.com>
11619
11620 * Makefile.in (CCDEPMODE, DEPDIR, depcomp, COMPILE.base)
11621 (COMPILE, POSTCOMPILE): New variables.
11622 (.cc.o .c.o): Use COMPILE, POSTCOMPILE.
11623 (DEPFILES): New variable.
11624 Include ".Po" files.
11625 * configure.ac: Add checks for dependency checking.
11626 * configure, aclocal.m4: Regenerate.
11627
ea38f4be 116282013-09-25 Tom Tromey <tromey@redhat.com>
11629
11630 * Makefile.in (ALL_HOST_BACKEND_OBJS): Add lto-wrapper.o.
1a1634db 11631 ($(ALL_HOST_OBJS)): Move order-only dependency to end of file.
ea38f4be 11632
bbd12626 116332013-09-25 Tom Tromey <tromey@redhat.com>
11634
11635 * Makefile.in (generated_files): Add options.h,
11636 target-hooks-def.h, insn-opinit.h,
11637 common/common-target-hooks-def.h, pass-instances.def,
11638 c-family/c-target-hooks-def.h.
11639
e2914898 116402013-09-25 Jeff Law <law@redhat.com>
11641
11642 * tree-ssa-threadedge.c (thread_across_edge): Use foo.last () rather
11643 than foo[foo.length () - 1] to access last member in a vec.
11644 * tree-ssa-threadupdate.c (register_jump_thread): Similarly.
11645
3b8499b5 116462013-09-25 Richard Biener <rguenther@suse.de>
11647
11648 PR middle-end/58521
11649 * tree.c (iterative_hash_expr): Remove MEM_REF special handling.
11650
608e8a24 116512013-09-25 Jan Hubicka <jh@suse.cz>
11652
11653 * cgraph.c (cgraph_resolve_speculation): Use semantical equivalency
11654 test.
11655
6c46d3bd 116562013-09-25 Marek Polacek <polacek@redhat.com>
11657
11658 PR sanitizer/58420
11659 * ubsan.c (ubsan_type_descriptor): Handle IDENTIFIER_NODEs
11660 when determining the type name.
11661
3903145d 116622013-09-24 Oleg Endo <olegendo@gcc.gnu.org>
11663
11664 * config/sh/sh.md: Fix formatting.
11665
1a1634db 116662013-09-24 Xinliang David Li <davidxl@google.com>
d7d7032a 11667
1a1634db 11668 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Check
11669 max peel iterations parameter.
d7d7032a 11670 * param.def: New parameter.
11671 * doc/invoke.texi: Document New parameter.
11672
0cf78115 116732013-09-24 Christophe Lyon <christophe.lyon@linaro.org>
11674
11675 * gimple-pretty-print.c: Various whitespace tweaks.
11676 * tree-core.h: Likewise.
11677 * tree-pretty-print.c: Likewise.
11678 * tree-ssa-alias.c: Likewise.
11679 * tree-ssa-copy.c: Likewise.
11680 * tree-ssanames.c: Likewise.
11681 * tree-ssanames.h: Likewise.
11682 * tree-vrp.c: Likewise.
11683
d476586e 116842013-09-24 Alan Modra <amodra@gmail.com>
11685
11686 PR middle-end/57134
11687 PR middle-end/57586
1a1634db 11688 * stmt.c (expand_asm_operands): Call expand_expr with EXPAND_MEMORY
11689 for output operands that disallow regs. Don't use EXPAND_WRITE on
11690 inout operands.
d476586e 11691
bd93e4f8 116922013-09-24 Richard Biener <rguenther@suse.de>
11693
11694 PR middle-end/58513
11695 * tree.c (reference_alias_ptr_type): Move ...
11696 * alias.c (reference_alias_ptr_type): ... here and implement
11697 in terms of the new reference_alias_ptr_type_1.
11698 (ref_all_alias_ptr_type_p): New helper.
11699 (get_deref_alias_set_1): Drop flag_strict_aliasing here,
11700 use ref_all_alias_ptr_type_p.
11701 (get_deref_alias_set): Add flag_strict_aliasing check here.
11702 (reference_alias_ptr_type_1): New function, split out from ...
11703 (get_alias_set): ... here.
11704 (alias_ptr_types_compatible_p): New function.
11705 * alias.h (reference_alias_ptr_type): Declare.
11706 (alias_ptr_types_compatible_p): Likewise.
11707 * tree.h (reference_alias_ptr_type): Remove.
11708 * fold-const.c (operand_equal_p): Use alias_ptr_types_compatible_p
11709 to compare MEM_REF alias types.
11710
355c7ba5 117112013-09-24 Richard Biener <rguenther@suse.de>
11712
11713 * tree-vrp.c (vrp_finalize): Check for SSA name presence.
11714
fbacd2bf 117152013-09-23 Michael Meissner <meissner@linux.vnet.ibm.com>
11716
bfe7a90f 11717 * config/rs6000/rs6000.c (rs6000_vector_reload): Delete, combine
11718 reload helper function arrays into a single array reg_addr.
11719 (reload_fpr_gpr): Likewise.
11720 (reload_gpr_vsx): Likewise.
11721 (reload_vsx_gpr): Likewise.
11722 (struct rs6000_reg_addr): Likewise.
11723 (reg_addr): Likewise.
11724 (rs6000_debug_reg_global): Change rs6000_vector_reload,
11725 reload_fpr_gpr, reload_gpr_vsx, reload_vsx_gpr uses to reg_addr.
11726 (rs6000_init_hard_regno_mode_ok): Likewise.
11727 (rs6000_secondary_reload_direct_move): Likewise.
11728 (rs6000_secondary_reload): Likewise.
11729
fbacd2bf 11730 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add new
11731 constraints: wu, ww, and wy. Repurpose wv constraint added during
11732 power8 changes. Put wg constraint in alphabetical order.
11733
11734 * config/rs6000/rs6000.opt (-mvsx-scalar-float): New debug switch
11735 for future work to add ISA 2.07 VSX single precision support.
11736 (-mvsx-scalar-double): Change default from -1 to 1, update
11737 documentation comment.
11738 (-mvsx-scalar-memory): Rename debug switch to -mupper-regs-df.
11739 (-mupper-regs-df): New debug switch to control whether DF values
11740 can go in the traditional Altivec registers.
11741 (-mupper-regs-sf): New debug switch to control whether SF values
11742 can go in the traditional Altivec registers.
11743
11744 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print wu, ww,
11745 and wy constraints.
11746 (rs6000_init_hard_regno_mode_ok): Use ssize_t instead of int for
11747 loop variables. Rename -mvsx-scalar-memory to -mupper-regs-df.
11748 Add new constraints, wu/ww/wy. Repurpose wv constraint.
11749 (rs6000_debug_legitimate_address_p): Print if we are running
11750 before, during, or after reload.
11751 (rs6000_secondary_reload): Add a comment.
11752 (rs6000_opt_masks): Add -mupper-regs-df, -mupper-regs-sf.
11753
11754 * config/rs6000/constraints.md (wa constraint): Sort w<x>
11755 constraints. Update documentation string.
11756 (wd constraint): Likewise.
11757 (wf constraint): Likewise.
11758 (wg constraint): Likewise.
11759 (wn constraint): Likewise.
11760 (ws constraint): Likewise.
11761 (wt constraint): Likewise.
11762 (wx constraint): Likewise.
11763 (wz constraint): Likewise.
11764 (wu constraint): New constraint for ISA 2.07 SFmode scalar
11765 instructions.
11766 (ww constraint): Likewise.
11767 (wy constraint): Likewise.
72c859af 11768 (wv constraint): Repurpose ISA 2.07 constraint that we did not use
11769 in the previous submissions.
fbacd2bf 11770 * doc/md.texi (PowerPC and IBM RS6000): Likewise.
11771
9eb946de 117722013-09-23 Richard Sandiford <rdsandiford@googlemail.com>
11773
11774 * doc/rtl.texi (REG_NOTES): Say that int_list can also be used.
11775 (REG_BR_PROB): Say that the probability is stored in an int_list.
11776 * reg-notes.def: Update commentary to mention INT_LIST.
11777 * rtl.def (EXPR_LIST, INSN_LIST): Capitalize comments.
11778 (INT_LIST): New rtx.
11779 * rtl.h (add_int_reg_note, add_shallow_copy_of_reg_note): Declare.
11780 * rtlanal.c (int_reg_note_p): New function.
11781 (alloc_reg_note): Assert that the note does not have an int argument.
11782 (add_int_reg_note, add_shallow_copy_of_reg_note): New functions.
11783 * combine.c (distribute_notes): Use add_shallow_copy_of_rtx.
11784 * cse.c (cse_process_notes_1): Expect REG_EQUAL to be an EXPR_LIST
11785 rather than an INSN_LIST. Handle INT_LIST.
11786 * ifcvt.c (cond_exec_process_insns): Take the probability as an int
11787 rather than an rtx. Use gen_rtx_INT_LIST to create a REG_BR_PROB note.
11788 (cond_exec_process_if_block): Use XINT to extract REG_BR_PROB values.
11789 Manipulate them as ints rather than rtxes.
11790 * reg-stack.c (subst_asm_stack_regs): Only handle EXPR_LIST notes.
11791 * regmove.c (copy_src_to_dest): Likewise.
11792 * sched-vis.c (print_insn_with_notes): Handle INT_LIST.
11793
11794 * config/i386/winnt.c (i386_pe_seh_unwind_emit): Sink pat assignment
11795 into the cases that need it.
11796 * config/arm/arm.c (arm_unwind_emit): Likewise.
11797
11798 * asan.c (asan_clear_shadow): Use add_int_reg_note for REG_BR_PROB.
11799 * emit-rtl.c (try_split, emit_copy_of_insn_after): Likewise.
11800 * loop-doloop.c (add_test, doloop_modify): Likewise.
11801 * loop-unswitch.c (compare_and_jump_seq): Likewise.
11802 * optabs.c (emit_cmp_and_jump_insn_1): Likewise.
11803 * predict.c (combine_predictions_for_insn): Likewise.
11804 * print-rtl.c (print_rtx): Handle INT_LIST.
11805 * config/aarch64/aarch64.c (aarch64_emit_unlikely_jump): Likewise.
11806 * config/alpha/alpha.c (emit_unlikely_jump): Likewise.
11807 * config/arm/arm.c (emit_unlikely_jump): Likewise.
11808 * config/i386/i386.c (ix86_expand_split_stack_prologue): Likewise.
11809 (ix86_split_fp_branch, predict_jump): Likewise.
11810 * config/rs6000/rs6000.c (emit_unlikely_jump): Likewise.
11811 * config/sh/sh.c (expand_cbranchsi4): Likewise.
11812 * config/spu/spu.c (ea_load_store_inline): Likewise.
11813
11814 * cfgbuild.c (compute_outgoing_frequencies): Use XINT to access the
11815 value of a REG_BR_PROB note.
11816 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
11817 (update_br_prob_note, rtl_verify_edges, purge_dead_edges): Likewise.
11818 * emit-rtl.c (try_split): Likewise.
11819 * predict.c (br_prob_note_reliable_p): Likewise.
11820 (invert_br_probabilities, combine_predictions_for_insn): Likewise.
11821 * reorg.c (mostly_true_jump): Likewise.
11822 * config/bfin/bfin.c (cbranch_predicted_taken_p): Likewise.
11823 * config/frv/frv.c (frv_print_operand_jump_hint): Likewise.
11824 * config/i386/i386.c (ix86_print_operand): Likewise.
11825 * config/ia64/ia64.c (ia64_print_operand): Likewise.
11826 * config/mmix/mmix.c (mmix_print_operand): Likewise.
11827 * config/rs6000/rs6000.c (output_cbranch): Likewise.
11828 * config/s390/s390.c (s390_expand_tbegin): Likewise.
11829 * config/sh/sh.c (sh_print_operand, sh_adjust_cost): Likewise.
11830 * config/sparc/sparc.c (output_cbranch): Likewise.
11831 * config/spu/spu.c (get_branch_target): Likewise.
11832 * config/tilegx/tilegx.c (cbranch_predicted_p): Likewise.
11833 * config/tilepro/tilepro.c (cbranch_predicted_p): Likewise.
11834
10fba9c0 118352013-09-23 Jan Hubicka <jh@suse.cz>
11836
11837 * ipa-cp.c (ipa_get_indirect_edge_target_1): Add sanity check
11838 for ipa-devirt.
11839 * ipa-utils.h (possible_polymorphic_call_target_p): New function.
11840 * ipa-devirt.c (possible_polymorphic_call_target_p): Be tolerant
11841 of external calls
11842 * gimple-fold.c: Include ipa-utils.h and gimple-pretty-print.h
11843 (gimple_fold_call): Dump inconsistent devirtualizations; add
11844 sanity check for type based devirtualizations.
11845 * ipa-prop.c: Include ipa-utils.h
11846 (ipa_intraprocedural_devirtualization): Add sanity check.
11847 (try_make_edge_direct_virtual_call): Likewise.
11848
42eed683 118492013-09-23 Eric Botcazou <ebotcazou@adacore.com>
11850
11851 * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Recurse on copy
11852 assignment statements.
11853
3c59e4a7 118542013-09-23 Kugan Vivekanandarajah <kuganv@linaro.org>
11855
11856 * gimple-pretty-print.c (dump_ssaname_info): New function.
11857 (dump_gimple_phi): Call it.
11858 (pp_gimple_stmt_1): Likewise.
11859 * tree-core.h (tree_ssa_name): New union ssa_name_info_type field.
11860 (range_info_def): Declare.
11861 * tree-pretty-print.c (pp_double_int): New function.
11862 (dump_generic_node): Call it.
11863 * tree-pretty-print.h (pp_double_int): Declare.
11864 * tree-ssa-alias.c (dump_alias_info): Check pointer type.
11865 * tree-ssanames.h (range_info_def): New structure.
11866 (value_range_type): Move definition here.
11867 (set_range_info, value_range_type, duplicate_ssa_name_range_info):
11868 Declare.
11869 * tree-ssanames.c (make_ssa_name_fn): Check pointer type at
11870 initialization.
11871 (set_range_info): New function.
11872 (get_range_info): Likewise.
11873 (duplicate_ssa_name_range_info): Likewise.
11874 (duplicate_ssa_name_fn): Check pointer type and call
11875 duplicate_ssa_name_range_info.
11876 * tree-ssa-copy.c (fini_copy_prop): Likewise.
11877 * tree-vrp.c (value_range_type): Remove definition, now in
11878 tree-ssanames.h.
1a1634db 11879 (vrp_finalize): Call set_range_info to update value range of SSA_NAMEs.
3c59e4a7 11880 * tree.h (SSA_NAME_PTR_INFO): Macro changed to access via union.
11881 (SSA_NAME_RANGE_INFO): New macro.
11882
5f00d31b 118832013-09-23 Richard Biener <rguenther@suse.de>
11884
11885 PR tree-optimization/58464
11886 * tree-ssa-pre.c (phi_trans_lookup): Remove.
1a1634db 11887 (phi_trans_add): Change to add conditionally on being not present.
5f00d31b 11888 (phi_translate_1): Remove recursion detection here.
11889 (phi_translate): Pre-seed the cache with NULL to catch
11890 recursion here in a more generic way.
11891 (bitmap_find_leader): Adjust comment.
11892 (get_representative_for): Dump value-numbers.
11893 (create_expression_by_pieces): Likewise.
11894 (insert_into_preds_of_block): Likewise.
11895
f93344c8 118962013-09-23 Christian Bruel <christian.bruel@st.com>
11897
11898 PR target/58475
11899 * config/sh/sh.md (movsf_ie): Allow fpul_operand.
11900 * config/sh/predicate.md (arith_reg_operand): Disallow FPUL_REG.
11901
67358f72 119022013-09-23 James Greenhalgh <james.greenhalgh@arm.com>
11903
11904 Revert r202780:
11905 2013-09-20 Renlin Li <renlin.li@arm.com>
11906
1a1634db 11907 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use
11908 plus_constant.
67358f72 11909 (aarch64_expand_epilogue): Likewise.
11910 (aarch64_legitimize_reload_address): Likewise.
11911
4251e916 119122013-09-22 Eric Botcazou <ebotcazou@adacore.com>
11913
11914 * gimplify.c (gimplify_asm_expr): Reset the TREE_CHAIN of clobbers to
11915 NULL_TREE before pushing them onto the vector. Likewise for labels.
11916
4d294848 119172013-09-21 Eric Botcazou <ebotcazou@adacore.com>
11918
11919 * config/ia64/predicates.md (ia64_cbranch_operator): Accept unordered
11920 comparison operators when -fno-trapping-math is in effect.
11921 * config/ia64/ia64.c (ia64_expand_compare): Add support for unordered
11922 comparison operators in TFmode and assert that unsupported operators
11923 cannot reach here.
11924 (ia64_print_operand): Likewise.
11925
119262013-09-21 Jan Hubicka <jh@suse.cz>
bde6be21 11927
11928 * x86-tune.def (partial_reg_stall): Disable for CoreI7 and newer.
11929 (sse_typeless_stores): Enable for core
11930 (sse_load0_by_pxor): Likewise.
11931 (four_jump_limit): Disable for core.
11932 (pad_returns): Likewise.
11933 (avoid_vector_decode): Likewise.
11934 (fuse_cmp_and_branch): Enable for cores.
11935 * i386.c (x86_accumulate_outgoing_args): Disable for cores.
11936
c5291e60 119372013-09-20 John David Anglin <danglin@gcc.gnu.org>
11938
db53dea5 11939 PR middle-end/56791
11940 * config/pa/pa.c (pa_option_override): Disable auto increment and
11941 decrement instructions until reload is completed.
11942
c5291e60 11943 * config/pa/pa-linux.h (TARGET_OS_CPP_BUILTINS): Define
11944 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1, __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2,
11945 and __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.
11946
1d701d79 119472013-09-20 DJ Delorie <dj@redhat.com>
1a1634db 11948 Nick Clifton <nickc@redhat.com>
1d701d79 11949
11950 * config/rl78/rl78.c: Various whitespace and comment tweaks.
11951 (need_to_save): Save bank 0 on interrupts.
11952 (characterize_address): Strip far address wrappers.
11953 (rl78_as_legitimate_address): Likewise.
11954 (transcode_memory_rtx): Likewise.
11955 (rl78_peep_movhi_p): Disable this peephole after devirt.
11956 (rl78_propogate_register_origins): Forget all origins when a
11957 CLOBBER is seen.
11958 * config/rl78/rl78-virt.md: Various whitespace tweaks.
11959 * config/rl78/rl78-real.md: Various whitespace tweaks. Additional
11960 peephole2's.
11961 * config/rl78/rl78.md (sel_rb): Disable for G10 just in case.
11962 * config/rl78/rl78-expand.md (movqi): Check for subregs of consts.
11963 * config/rl78/rl78.h (LINK_SPEC): Pass -gc-sections unless
11964 relocating.
11965 * config/rl78/constraints.md: Various whitespace and paren tweaks.
11966
d3eb359c 119672013-09-20 John David Anglin <danglin@gcc.gnu.org>
11968
11969 * config/pa/pa.md: In "scc" insn patterns, change output template to
11970 handle const0_rtx in reg_or_0_operand operands.
11971
5c337cd9 119722013-09-20 Martin Husemann <martin@NetBSD.org>
11973
11974 PR target/56875
11975 * config/vax/vax.c (vax_output_int_move): Use D format specifier.
11976 * config/vax/vax.md (ashldi3, <unnamed>): Ditto.
11977
cbb69ef1 119782013-09-20 Richard Biener <rguenther@suse.de>
11979
11980 PR middle-end/58484
11981 * tree-scalar-evolution.c (struct scev_info_str): Shrink by
11982 remembering SSA name version and block index.
11983 (new_scev_info_str): Adjust.
11984 (hash_scev_info): Likewise. Also hash the block index.
11985 (eq_scev_info): Adjust.
11986 (find_var_scev_info): Likewise.
11987 (struct instantiate_cache_entry): Remove.
11988 (struct instantiate_cache_type): Use a htab to map name, block
11989 to chrec.
11990 (instantiate_cache_type::~instantiate_cache_type): Adjust.
11991 (get_instantiated_value_entry): Likewise.
11992 (hash_idx_scev_info, eq_idx_scev_info): New functions.
11993 (instantiate_scev_name): Adjust.
11994
9358e89c 119952013-09-20 Jeff Law <law@redhat.com>
11996
11997 * tree-ssa-dom.c (record_temporary_equivalences): Add comment.
11998
5ea1fee0 119992013-09-20 Yufeng Zhang <yufeng.zhang@arm.com>
12000
12001 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
12002 Call aarch64_simd_expand_args to update op[argc].
12003
6f6f7c6f 120042013-09-20 Basile Starynkevitch <basile@starynkevitch.net>
12005
1a1634db 12006 * plugin.c (parse_plugin_arg_opt): Accept equal sign inside
12007 plugin argument.
6f6f7c6f 12008
7fd3651a 120092013-09-20 Basile Starynkevitch <basile@starynkevitch.net>
12010
1a1634db 12011 * gengtype.c (file_rules): Added rule for *.cc files.
12012 (get_output_file_with_visibility): Give fatal message when no
12013 rules found.
7fd3651a 12014
d284450b 120152013-09-20 Renlin Li <renlin.li@arm.com>
12016
12017 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use plus_constant.
12018 (aarch64_expand_epilogue): Likewise.
12019 (aarch64_legitimize_reload_address): Likewise.
12020
7b9e6cc3 120212013-09-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
12022
12023 PR middle-end/57748
12024 * expr.c (expand_assignment): Remove misalignp code path.
12025
d3959bbe 120262013-09-20 Marek Polacek <polacek@redhat.com>
12027
12028 PR sanitizer/58413
12029 * ubsan.c (get_ubsan_type_info_for_type): Use TYPE_SIZE instead of
12030 TYPE_PRECISION. Add asserts.
12031
0c58611e 120322013-09-20 Richard Biener <rguenther@suse.de>
12033
12034 PR tree-optimization/58453
12035 * tree-loop-distribution.c (distribute_loop): Apply the cost
12036 model for -ftree-loop-distribute-patterns, too.
12037
5fa7ce8c 120382013-09-20 Richard Biener <rguenther@suse.de>
12039
12040 PR middle-end/58473
12041 * tree-chrec.h (build_polynomial_chrec): Use gcc_checking_assert,
12042 make type comparison less strict.
12043
9613c003 120442013-09-20 Alan Modra <amodra@gmail.com>
12045
12046 * configure: Regenerate.
12047 * aclocal.m4: Regenerate.
12048
4a4ea7fb 120492013-09-20 Marek Polacek <polacek@redhat.com>
12050
12051 PR other/58467
12052 * doc/extend.texi: Document that attribute used is meant to be used
12053 on variables with static storage duration.
12054
8e1a382d 120552013-09-19 Jakub Jelinek <jakub@redhat.com>
12056
12057 PR tree-optimization/58472
12058 * tree-vect-stmts.c (vectorizable_store, vectorizable_load): For
12059 simd_lane_access set inv_p = false.
12060 * omp-low.c (lower_rec_input_clauses): Set TREE_NO_WARNING on
12061 the simduid magic VAR_DECL.
12062
d9290edd 120632013-09-19 Jan Hubicka <jh@suse.cz>
12064
12065 * i386.c (generic_memcpy, generic_memset): Fix 32bit template.
12066
629ec126 120672013-09-17 Jeff Law <law@redhat.com>
12068
12069 * tree-ssa-dom.c (record_temporary_equivalences): New function
12070 split out of dom_opt_dom_walker::after_dom_children.
12071 (dom_opt_dom_walker::thread_across_edge): Move common code
12072 in here from dom_opt_dom_walker::after_dom_children.
12073 (dom_opt_dom_walker::after_dom_children): Corresponding simplifictions.
12074
f1435d0d 120752013-09-19 Jan Hubicka <jh@suse.cz>
12076
12077 * i386.h (TARGET_GENERIC32, TARGET_GENERIC64): Remove.
12078 (TARGET_GENERIC): Use PROCESOR_GENERIC
12079 (enum processor_type): Unify generic32 and 64.
12080 * i386.md (cpu): Likewise.
12081 * x86-tune.def (use_leave): Enable for generic32.
12082 (avoid_vector_decode, slow_imul_imm32_mem, slow_imul_imm8): Likewise.
12083 * athlon.md: Change generic64 to generic in all occurences.
12084 * i386-c.c (ix86_target_macros_internal): Unify generic64 and 32.
12085 (ix86_target_macros_internal): Likewise.
12086 * driver-i386.c (host_detect_local_cpu): Likewise.
1a1634db 12087 * i386.c (generic64_memcpy, generic64_memset, generic64_cost): Rename
12088 to ..
f1435d0d 12089 (generic_memcpy, generic_memset, generic_cost): This one.
12090 (generic32_memcpy, generic32_memset, generic32_cost): Remove.
12091 (m_GENERIC32, m_GENERIC64): Remove.
12092 (m_GENERIC): Turn into one flag.
12093 (processor_target): Unify generic tunnings.
12094 (ix86_option_override_internal): Replace generic32/64 by generic.
12095 (ix86_issue_rate): Likewise.
12096 (ix86_adjust_cost): Likewise.
12097
f7eab642 120982013-09-19 Jan Hubicka <jh@suse.cz>
12099
12100 * cgraph.c (cgraph_create_edge_1): Avoid uninitialized read
12101 of speculative flag.
12102
39cb6d68 121032013-09-19 Jakub Jelinek <jakub@redhat.com>
12104
12105 * omp-low.c (expand_omp_sections): Always pass len - 1 to
12106 GOMP_sections_start, even if !exit_reachable.
12107
a766a8b0 121082013-09-18 Vladimir Makarov <vmakarov@redhat.com>
12109
12110 * lra-constraints.c (need_for_all_save_p): Use macro
12111 HARD_REGNO_CALL_PART_CLOBBERED.
12112 * lra-lives.c (check_pseudos_live_through_calls): Use the macro to
12113 set up pseudo conflict hard regs.
12114
104fb81f 121152013-09-18 Michael Meissner <meissner@linux.vnet.ibm.com>
12116
12117 PR target/58452
12118 * config/rs6000/paired.md (movmisalignv2sf): Fix to allow memory
12119 operands.
12120
95563487 121212013-09-18 Vladimir Makarov <vmakarov@redhat.com>
12122
12123 PR rtl-optimization/58438
12124 * lra.c (lra): Clear lra_optional_reload_pseudos in upper loop.
12125 * lra-constraints.c (undo_optional_reloads): Keep optional reloads
12126 from previous subpasses.
12127
cd072fa8 121282013-09-18 Richard Earnshaw <rearnsha@arm.com>
12129
12130 * arm.c (arm_get_frame_offsets): Validate architecture supports
12131 LDRD/STRD before accepting the tuning preference.
12132 (arm_expand_prologue): Likewise.
12133 (arm_expand_epilogue): Likewise.
12134
32e31826 121352013-09-18 Richard Biener <rguenther@suse.de>
12136
12137 PR tree-optimization/58417
12138 * tree-chrec.c (chrec_fold_plus_1): Assert that we do not
12139 have chrecs with symbols defined in the loop as operands.
12140 (chrec_fold_multiply): Likewise.
12141 * tree-scalar-evolution.c (interpret_rhs_expr): Instantiate
12142 parameters before folding binary operations.
12143 (struct instantiate_cache_entry_hasher): Remove.
12144 (struct instantiate_cache_type): Use a pointer-map.
12145 (instantiate_cache_type::instantiate_cache_type): New function.
12146 (instantiate_cache_type::get): Likewise.
12147 (instantiate_cache_type::set): Likewise.
12148 (instantiate_cache_type::~instantiate_cache_type): Adjust.
12149 (get_instantiated_value_entry): Likewise.
12150 (global_cache): New global.
12151 (instantiate_scev_r, instantiate_scev_poly, instantiate_scev_binary,
12152 instantiate_array_ref, instantiate_scev_convert, instantiate_scev_3,
12153 instantiate_scev_2, instantiate_scev_1): Do not pass along cache.
12154 (instantiate_scev_name): Adjust.
12155 (instantiate_scev): Construct global instead of local cache.
12156 (resolve_mixers): Likewise.
12157
139d1461 121582013-09-18 Daniel Morris <danielm@ecoscentric.com>
12159 Paolo Carlini <paolo.carlini@oracle.com>
12160
12161 PR c++/58458
12162 * doc/implement-cxx.texi: Fix references to the C++ standards.
12163
3b36c9f7 121642013-09-18 Jakub Jelinek <jakub@redhat.com>
12165
12166 * omp-low.c (copy_var_decl): Copy DECL_ATTRIBUTES.
12167 * tree-vect-data-refs.c (vect_analyze_data_refs): For
12168 simd_lane_access drs, update also DR_ALIGNED_TO.
12169
05f893e1 121702013-09-18 Marek Polacek <polacek@redhat.com>
12171
12172 PR sanitizer/58411
12173 * doc/extend.texi: Document no_sanitize_undefined attribute.
12174 * builtins.c (fold_builtin_0): Don't sanitize function if it has the
12175 no_sanitize_undefined attribute.
12176
6c2b6717 121772013-09-18 Nick Clifton <nickc@redhat.com>
12178
12179 * config/msp430/msp430.h (ASM_SPEC): Pass -md on to the assembler.
12180 (ASM_DECLARE_FUNCTION_NAME): Define.
12181
54c91640 121822013-09-17 Trevor Saunders <tsaunders@mozilla.com>
12183
12184 * compare-elim.c (find_comparison_dom_walker): New class
12185 (find_comparisons_in_bb): Rename to
12186 find_comparison_dom_walker::before_dom_children
12187 (find_comparisons): Adjust
12188 * domwalk.c (walk_dominator_tree): Rename to dom_walker::walk, and
12189 adjust.
12190 (init_walk_dominator_tree, fini_walk_dominator_tree): Remove
12191 * domwalk.h (dom_walk_data): Convert it To a class dom_walker.
12192 (init_walk_dominator_tree): Remove declaration.
12193 (fini_walk_dominator_tree): Remove declaration.
12194 * fwprop.c (single_def_use_dom_walker): New class
12195 (single_def_use_enter_block): Convert to
12196 single_def_use_dom_walker::before_dom_children.
12197 (single_def_use_leave_block): Convert to
12198 single_def_use_dom_walker::after_dom_children.
12199 (build_single_def_use_links): Adjust.
12200 * gimple-ssa-strength-reduction.c (find_candidates_dom_walker): New
12201 class.
12202 (find_candidates_in_block): Convert to
12203 find_candidates_dom_walker::before_dom_children.
12204 (execute_strength_reduction): Adjust.
12205 * graphite-sese-to-poly.c (struct bsc, build_sese_conditions): Remove.
12206 (sese_dom_walker): New class.
12207 (sese_dom_walker::sese_dom_walker): New constructor.
12208 (sese_dom_walker::~sese_dom_walker): New destructor.
12209 (build_sese_conditions_before): Convert to
12210 sese_dom_walker::before_dom_children.
12211 (build_sese_conditions_after): Convert to
12212 sese_dom_walker::after_dom_children.
12213 (build_poly_scop): Adjust
12214 * tree-into-ssa.c (rewrite_dom_walker): New class
12215 (rewrite_enter_block): Convert to
12216 rewrite_dom_walker::before_dom_children.
12217 (rewrite_leave_block): Convert to
12218 rewrite_dom_walker::after_dom_children.
12219 (rewrite_update_dom_walker): New class.
12220 (rewrite_update_enter_block): Convert to
12221 rewrite_update_dom_walker::before_dom_children.
12222 (rewrite_update_leave_block): Convert to
12223 rewrite_update_dom_walker::after_dom_children.
12224 (rewrite_blocks, rewrite_into_ssa): Adjust.
12225 (mark_def_dom_walker): New class.
12226 (mark_def_dom_walker::mark_def_dom_walker): New constructor.
12227 (mark_def_dom_walker::~mark_def_dom_walker): New destructor.
12228 (mark_def_sites_blocks): Convert to
12229 mark_def_dom_walker::before_dom_children.
12230 (mark_def_site_blocks): Remove.
12231 * tree-ssa-dom.c (dom_opt_dom_walker): New class.
12232 (tree_ssa_dominator_optimize): Adjust.
12233 (dom_thread_across_edge): Convert to method
12234 dom_opt_dom_walker::thread_across_edge.
12235 (dom_opt_enter_block): Convert to member function
12236 dom_opt_dom_walker::before_dom_children.
12237 (dom_opt_leave_block): Convert to member function
12238 dom_opt_dom_walker::after_dom_children.
12239 * tree-ssa-dse.c (dse_dom_walker): New class.
12240 (dse_enter_block): Convert to member function
12241 dse_dom_walker::before_dom_children.
12242 (tree_ssa_dse): Adjust.
12243 * tree-ssa-loop-im.c (invariantness_dom_walker): New class.
12244 (determine_invariantness_stmt): Convert to method
12245 invariantness_dom_walker::before_dom_children.
12246 (determine_invariantness): Remove
12247 (move_computations_dom_walker): New class.
12248 (move_computations_stmt): Convert to method
12249 move_computations_dom_walker::before_dom_children.
12250 (move_computations, tree_ssa_lim): Adjust.
f72eee0d 12251 * tree-ssa-phiopt.c (nontrapping_dom_walker): New class.
12252 (nt_init_block): Convert to method
54c91640 12253 notrappping_dom_walker::before_dom_children.
f72eee0d 12254 (nt_fini_block): Convert to method
54c91640 12255 method nontrapping_dom_walker::after_dom_children.
12256 (get_non_trapping): Adjust.
12257 * tree-ssa-pre.c (eliminate_dom_walker): New class.
f72eee0d 12258 (eliminate_bb): Convert to method
12259 eliminate_dom_walker::before_dom_children.
12260 (eliminate_leave_block): Convert to method
54c91640 12261 eliminate_dom_walker::after_dom_children.
f72eee0d 12262 (eliminate): Adjust.
54c91640 12263 * tree-ssa-strlen.c (strlen_dom_walker): New class.
f72eee0d 12264 (strlen_enter_block): Convert to method
54c91640 12265 strlen_dom_walker::before_dom_children.
f72eee0d 12266 (strlen_leave_block): Convert to method
54c91640 12267 method strlen_dom_walker::after_dom_children.
12268 (tree_ssa_strlen): Adjust.
12269 * tree-ssa-uncprop.c (uncprop_dom_walker): New class.
12270 (tree_ssa_uncprop): Adjust.
f72eee0d 12271 (uncprop_leave_block): Convert to method
54c91640 12272 uncprop_dom_walker::after_dom_children.
f72eee0d 12273 (uncprop_leave_block): Convert to method
54c91640 12274 uncprop_dom_walker::before_dom_children.
12275
5baed189 122762013-09-18 Bin Cheng <bin.cheng@arm.com>
12277
1a1634db 12278 * config/arm/arm.c (thumb1_reorg): Search for flag setting insn before
12279 branch in same basic block. Check both src and dest of the move insn.
5baed189 12280
56df4a64 122812013-09-17 Nick Clifton <nickc@redhat.com>
12282
12283 * config/rl78/rl78-real.md (bf): New pattern.
12284 (bt): New pattern.
12285 * config/rl78/rl78.c (rl78_print_operand_1): Handle %B.
12286 (rl78_print_operand): Do not put a # before a %B.
12287 * config/rl78/rl78.opt: Tweak doc strings.
12288
55ea1438 122892013-09-17 DJ Delorie <dj@redhat.com>
12290
12291 * config/rl78/constraints.md (Wcv): Allow up to $r31.
12292 * config/rl78/rl78.c (rl78_asm_file_start: Likewise.
12293 (rl78_option_override): Likewise, if -mallregs.
12294 (is_virtual_register): Likewise.
12295 * config/rl78/rl78.h (reg_class): Extend VREGS to $r31.
12296 (REGNO_OK_FOR_BASE_P): Likewise.
12297 * config/rl78/rl78.opt (-mallregs): New.
12298
69b00414 122992013-09-17 Nick Clifton <nickc@redhat.com>
12300
12301 * config/rl78/rl78.c (need_to_save): Change return type to bool.
12302 For interrupt functions: save all call clobbered registers if the
12303 interrupt handler is not a leaf function.
12304 (rl78_expand_prologue): Always recompute the frame information.
12305 For interrupt functions: only select bank 0 if one of the bank 0
12306 registers is going to be psuhed.
12307
563dc27b 123082013-09-17 DJ Delorie <dj@redhat.com>
12309
12310 * config/rl78/constraints.md: For each W* constraint, rename to C*
12311 and create a W* constraint that checks for an optional ES: prefix
12312 pattern also.
12313 * config/rl78/rl78.md (UNS_ES_ADDR): New.
12314 (es_addr): New. Used to wrap far addresses.
12315 * config/rl78/rl78-protos.h (rl78_es_addr): New.
12316 (rl78_es_base): New.
12317 * config/rl78/rl78.c (rl78_as_legitimate_address): Accept "unspec"
12318 wrapped far addresses.
12319 (rl78_print_operand_1): Unwrap far addresses before processing.
12320 (rl78_lo16): Wrap far addresses in unspecs.
12321 (rl78_es_addr): New.
12322 (rl78_es_base): New.
12323 (insn_ok_now): Check for not-yet-wrapped far addresses.
12324 (transcode_memory_rtx): Properly re-wrap far addresses.
12325
b6700200 123262013-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
12327
12328 * config/sparc/t-rtems: Add leon3 multilibs.
12329
f498d0cb 123302013-09-17 Cong Hou <congh@google.com>
12331
12332 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Fix a bug
12333 when checking the dot production pattern. The type of rhs operand
12334 of multiply is now checked correctly.
12335
b99a7d6d 123362013-09-17 Jeff Law <law@redhat.com>
12337
12338 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
12339 edge implied equivalences into successor phis.
12340 * tree-ssa-threadupdate.c (phi_args_equal_on_edges): Moved into
12341 here from tree-ssa-threadedge.c.
12342 (mark_threaded_blocks): When threading through a joiner, if both
12343 successors of the joiner's clone reach the same block, verify the
12344 PHI arguments are equal. If not, cancel the jump threading request.
12345 * tree-ssa-threadedge.c (phi_args_equal_on_edges): Moved into
12346 tree-ssa-threadupdate.c
12347 (thread_across_edge): Don't check PHI argument equality when
12348 threading through joiner block here.
1a1634db 12349
1d2fabca 123502013-09-17 Andrew MacLeod <amacleod@redhat.com>
12351
12352 * tree-flow.h (ssa_undefined_value_p): Remove prototype.
12353 * tree-ssa.c (ssa_undefined_value_p): Move pass independent parts here.
1a1634db 12354 (warn_uninit, warn_uninitialized_vars,
12355 execute_early_warn_uninitialized, make_pass_early_warn_uninitialized):
12356 Move to tree-ssa-uninit.c.
7e637ed2 12357 * tree-ssa-uninit.c (ssa_undefined_value_p): Move to tree-ssa.c.
1a1634db 12358 (has_undefined_value_p): New. Pass dependant parts of
1d2fabca 12359 ssa_undefined_value_p.
12360 (uninit_undefined_value_p): Use has_undefined_value_p.
1a1634db 12361 (warn_uninit, warn_uninitialized_vars,
12362 execute_early_warn_uninitialized, make_pass_early_warn_uninitialized):
12363 Move from tree-ssa.c.
12364 * tree-ssa.h: Adjust prototypes.
1d2fabca 12365
26051fcf 123662013-09-17 Jan Hubicka <jh@suse.cz>
12367
12368 PR middle-end/58332
12369 * cif-code.def (FUNCTION_NOT_OPTIMIZED): New CIF code.
12370 * ipa-inline.c (can_inline_edge_p): Do not downgrade
12371 FUNCTION_NOT_OPTIMIZED.
12372 * ipa-inline-analysis.c (compute_inline_parameters): Function
12373 not optimized is not inlinable unless it is alwaysinline.
12374 (inline_analyze_function): Force calls in not optimized
12375 function not inlinable.
12376
460140a5 123772013-09-17 Jan Hubicka <jh@suse.cz>
12378
12379 PR middle-end/58329
12380 * ipa-devirt.c (ipa_devirt): Be ready for symtab_nonoverwritable_alias
12381 to return NULL.
12382 * ipa.c (function_and_variable_visibility): Likewise.
12383 * ipa-profile.c (ipa_profile): Likewise.
12384
f1ff0067 123852013-09-17 Bernd Edlinger <bernd.edlinger@hotmail.de>
12386
12387 PR ipa/58398
12388 * cgraph.c (cgraph_function_body_availability): Check for ifunc
12389 attribute, and don't inline the resolver in this case.
12390
99e2f77b 123912013-09-17 Teresa Johnson <tejohnson@google.com>
12392
12393 * coverage.c (get_coverage_counts): Add missing newline.
12394
45f5b5ac 123952013-09-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12396
12397 PR tree-optimization/58088
12398 * fold-const.c (mask_with_trailing_zeros): New function.
12399 (fold_binary_loc): Make sure we don't recurse infinitely
12400 when the X in (X & C1) | C2 is a tree of the form (Y * K1) & K2.
12401 Use mask_with_trailing_zeros where appropriate.
12402
fe6126e3 124032013-09-17 Yuri Rumyantsev <ysrumyan@gmail.com>
12404
12405 * config/i386/i386.c (distance_agu_use_in_bb) : Proper initialization
12406 of 'prev' var to get better distance estimation.
12407
6b99cb5e 124082013-09-17 Eric Botcazou <ebotcazou@adacore.com>
12409
12410 * tree-inline.h (struct copy_body_data): Add transform_parameter.
12411 * tree-inline.c (is_parameter_of): New predicate.
12412 (remap_gimple_op_r): Do not propagate TREE_THIS_NOTRAP on MEM_REF if
12413 a parameter has been remapped.
12414 (copy_tree_body_r): Likewise on INDIRECT_REF and MEM_REF.
12415 (optimize_inline_calls): Initialize transform_parameter.
12416 (copy_gimple_seq_and_replace_locals): Likewise.
12417 (tree_function_versioning): Likewise.
12418 (maybe_inline_call_in_expr): Likewise.
12419
62b2ccbe 124202013-09-17 Nick Clifton <nickc@redhat.com>
12421
12422 * config/msp430/msp430-protos.h: Add prototypes for new functions.
12423 * config/msp430/msp430.c (msp430_preserve_reg_p): Add support for
12424 interrupt handlers.
12425 (is_attr_func): New function.
12426 (msp430_is_interrupt_func): New function.
12427 (is_naked_func): New function.
12428 (is_reentrant_func): New function.
12429 (is_critical_func): New function.
12430 (msp430_start_function): Add annotations for function attributes.
12431 (msp430_attr): New function.
12432 (msp430_attribute_table): New.
12433 (msp430_function_section): New function.
12434 (TARGET_ASM_FUNCTION_SECTION): Define.
12435 (msp430_builtin): New enum.
12436 (msp430_init_builtins): New function.
12437 (msp430_builtin_devl): New function.
12438 (msp430_expand_builtin): New function.
12439 (TARGET_INIT_BUILTINS): Define.
12440 (TARGET_EXPAND_BUILTINS): Define.
12441 (TARGET_BUILTIN_DECL): Define.
12442 (msp430_expand_prologue): Add support for naked, interrupt,
12443 critical and reentrant functions.
12444 (msp430_expand_epilogue): Likewise.
12445 (msp430_print_operand): Handle 'O' character.
12446 * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Define
12447 NO_TRAMPOLINES.
12448 * config/msp430/msp430.md (unspec): Add UNS_DINT, UNS_EINT,
12449 UNS_PUSH_INTR, UNS_POP_INTR, UNS_BIC_SR, UNS_BIS_SR.
12450 (pushm): Use a 'n' rather than an 'i' constraint.
12451 (msp_return): Add generation of the interrupt return instruction.
12452 (disable_interrupts): New pattern.
12453 (enable_interrupts): New pattern.
12454 (push_intr_state): New pattern.
12455 (pop_intr_state): New pattern.
12456 (bic_SR): New pattern.
12457 (bis_SR): New pattern.
12458 * doc/extend.texi: Document MSP430 function attributes and builtin
12459 functions.
12460
157cd65f 124612013-09-17 Richard Biener <rguenther@suse.de>
12462
12463 PR tree-optimization/58432
12464 * tree-loop-distribution.c (tree_loop_distribution): Also
12465 scan PHIs for outside loop uses and seed a partition from them.
12466
3f8e7554 124672013-09-17 Bin Cheng <bin.cheng@arm.com>
12468
12469 * gimple-ssa-strength-reduction.c (backtrace_base_for_ref): New.
12470 (restructure_reference): Call backtrace_base_for_ref.
12471
39684527 124722013-09-17 Alan Modra <amodra@gmail.com>
12473
12474 PR target/57589
1a1634db 12475 * config/rs6000/driver-rs6000.c (elf_platform): Revert 2013-06-11
12476 patch.
39684527 12477
c5a0ae5e 124782013-09-16 DJ Delorie <dj@redhat.com>
12479
12480 * config/rl78/rl78.c (rl78_asm_file_start): Specify alternate
12481 vregs location for RL78/G10.
12482 (rl78_expand_prologue): Avoid SEL on G10.
12483 (rl78_expand_epilogue): Likewise.
12484 (rl78_peep_movhi_p): Can't move a constant to memory in HImode.
12485 * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
12486 __RL78_G10__ when appropriate.
12487 (ASM_SPEC): Pass -mg10 along to the assembler.
12488 * config/rl78/rl78.md (sel_rb): Disable for G10.
12489 * config/rl78/rl78.opt: Add -mg10 option.
12490 * config/rl78/t-rl78: Add -mg10 multilib.
12491
043115ec 124922013-09-16 Xinliang David Li <davidxl@google.com>
12493
12494 * tree-if-conv.c (main_tree_if_conversion): Check new flag.
12495 * omp-low.c (omp_max_vf): Ditto.
12496 (expand_omp_simd): Ditto.
12497 * tree-vectorizer.c (vectorize_loops): Ditto.
12498 (gate_vect_slp): Ditto.
12499 (gate_increase_alignment): Ditto.
12500 * tree-ssa-pre.c (inhibit_phi_insertion): Ditto.
12501 * tree-ssa-loop.c (gate_tree_vectorize): Ditto.
12502 (gate_tree_vectorize): Name change.
12503 (tree_vectorize): Ditto.
12504 (pass_vectorize::gate): Call new function.
12505 (pass_vectorize::execute): Ditto.
1a1634db 12506 * opts.c: O3 default setting change.
043115ec 12507 (finish_options): Check new flag.
12508 * doc/invoke.texi: Document new flags.
12509 * common.opt: New flags.
12510
b0141691 125112013-09-16 Andreas Schwab <schwab@linux-m68k.org>
12512
12513 * doc/tm.texi.in (Cond Exec Macros): Remove node.
12514 (Condition Code): Don't reference it.
12515 * doc/tm.texi: Regenerate.
12516
0c4735d1 125172013-09-16 Vladimir Makarov <vmakarov@redhat.com>
12518
12519 PR middle-end/58418
12520 * lra-constraints.c (undo_optional_reloads): Consider all optional
12521 reload even if it did not get a hard reg.
12522
78bb46f5 125232013-09-16 Teresa Johnson <tejohnson@google.com>
12524
12525 * dumpfile.c (dump_loc): Remove newline emission.
12526 * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Add newline
12527 emission to dump_printf_loc calls where missing.
12528 (vect_mark_for_runtime_alias_test): Ditto.
12529 (vect_analyze_data_ref_dependence): Ditto.
12530 (vect_analyze_data_ref_dependences): Ditto.
12531 (vect_slp_analyze_data_ref_dependence): Ditto.
12532 (vect_slp_analyze_data_ref_dependences): Ditto.
12533 (vect_compute_data_ref_alignment): Ditto.
12534 (vect_update_misalignment_for_peel): Ditto.
12535 (vect_verify_datarefs_alignment): Ditto.
12536 (vector_alignment_reachable_p): Ditto.
12537 (vect_get_data_access_cost): Ditto.
12538 (vect_enhance_data_refs_alignment): Ditto.
12539 (vect_find_same_alignment_drs): Ditto.
12540 (vect_analyze_data_refs_alignment): Ditto.
12541 (vect_analyze_group_access): Ditto.
12542 (vect_analyze_data_ref_access): Ditto.
12543 (vect_analyze_data_ref_accesses): Ditto.
12544 (vect_prune_runtime_alias_test_list): Ditto.
12545 (vect_analyze_data_refs): Ditto.
12546 (vect_create_addr_base_for_vector_ref): Ditto.
12547 (vect_create_data_ref_ptr): Ditto.
12548 (vect_grouped_store_supported): Ditto.
12549 (vect_grouped_load_supported): Ditto.
12550 * value-prof.c (check_counter): Ditto.
12551 (check_ic_target): Ditto.
12552 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Ditto.
12553 (vect_recog_widen_mult_pattern): Ditto.
12554 (vect_recog_widen_sum_pattern): Ditto.
12555 (vect_recog_over_widening_pattern): Ditto.
12556 (vect_recog_widen_shift_pattern): Ditto.
12557 (vect_recog_rotate_pattern): Ditto.
12558 (vect_recog_vector_vector_shift_pattern): Ditto.
12559 (vect_recog_divmod_pattern): Ditto.
12560 (vect_recog_mixed_size_cond_pattern): Ditto.
12561 (vect_recog_bool_pattern): Ditto.
12562 (vect_pattern_recog_1): Ditto.
12563 (vect_pattern_recog): Ditto.
12564 * tree-vect-loop.c (vect_determine_vectorization_factor): Ditto.
12565 (vect_is_simple_iv_evolution): Ditto.
12566 (vect_analyze_scalar_cycles_1): Ditto.
12567 (vect_get_loop_niters): Ditto.
12568 (vect_analyze_loop_1): Ditto.
12569 (vect_analyze_loop_form): Ditto.
12570 (vect_analyze_loop_operations): Ditto.
12571 (vect_analyze_loop_2): Ditto.
12572 (vect_analyze_loop): Ditto.
12573 (report_vect_op): Ditto.
12574 (vect_is_slp_reduction): Ditto.
12575 (vect_is_simple_reduction_1): Ditto.
12576 (vect_get_known_peeling_cost): Ditto.
12577 (vect_estimate_min_profitable_iters): Ditto.
12578 (vect_model_reduction_cost): Ditto.
12579 (vect_model_induction_cost): Ditto.
12580 (get_initial_def_for_induction): Ditto.
12581 (vect_create_epilog_for_reduction): Ditto.
12582 (vectorizable_reduction): Ditto.
12583 (vectorizable_induction): Ditto.
12584 (vectorizable_live_operation): Ditto.
12585 (vect_loop_kill_debug_uses): Ditto.
12586 (vect_transform_loop): Ditto.
12587 * tree-vect-stmts.c (vect_mark_relevant): Ditto.
12588 (vect_stmt_relevant_p): Ditto.
12589 (process_use): Ditto.
12590 (vect_mark_stmts_to_be_vectorized): Ditto.
12591 (vect_model_simple_cost): Ditto.
12592 (vect_model_promotion_demotion_cost): Ditto.
12593 (vect_model_store_cost): Ditto.
12594 (vect_get_store_cost): Ditto.
12595 (vect_model_load_cost): Ditto.
12596 (vect_get_load_cost): Ditto.
12597 (vect_init_vector_1): Ditto.
12598 (vect_get_vec_def_for_operand): Ditto.
12599 (vect_finish_stmt_generation): Ditto.
12600 (vectorizable_call): Ditto.
12601 (vectorizable_conversion): Ditto.
12602 (vectorizable_assignment): Ditto.
12603 (vectorizable_shift): Ditto.
12604 (vectorizable_operation): Ditto.
12605 (vectorizable_store): Ditto.
12606 (vectorizable_load): Ditto.
12607 (vectorizable_condition): Ditto.
12608 (vect_analyze_stmt): Ditto.
12609 (vect_transform_stmt): Ditto.
12610 (vect_is_simple_use): Ditto.
12611 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Ditto.
12612 (vect_can_advance_ivs_p): Ditto.
12613 (vect_update_ivs_after_vectorizer): Ditto.
12614 (vect_do_peeling_for_loop_bound): Ditto.
12615 (vect_gen_niters_for_prolog_loop): Ditto.
12616 (vect_update_inits_of_drs): Ditto.
12617 (vect_create_cond_for_alias_checks): Ditto.
12618 * tree-vect-slp.c (vect_get_and_check_slp_defs): Ditto.
12619 (vect_build_slp_tree_1): Ditto.
12620 (vect_supported_load_permutation_p): Ditto.
12621 (vect_analyze_slp_instance): Ditto.
12622 (vect_analyze_slp): Ditto.
12623 (vect_make_slp_decision): Ditto.
12624 (vect_detect_hybrid_slp): Ditto.
12625 (vect_bb_vectorization_profitable_p): Ditto.
12626 (vect_slp_analyze_bb_1): Ditto.
12627 (vect_update_slp_costs_according_to_vf): Ditto.
12628 (vect_get_mask_element): Ditto.
12629 (vect_transform_slp_perm_load): Ditto.
12630 (vect_schedule_slp_instance): Ditto.
12631 (vect_schedule_slp): Ditto.
12632 (vect_slp_transform_bb): Ditto.
12633 * profile.c (read_profile_edge_counts): Ditto.
12634 (compute_branch_probabilities): Ditto.
12635 * coverage.c (get_coverage_counts): Ditto.
12636
ed869862 126372013-09-16 Diego Novillo <dnovillo@google.com>
12638
1a1634db 12639 * tree-core.h: Add missing comment lines from refactoring of tree.h.
ed869862 12640
2246b6a9 126412013-09-16 Jan Hubicka <jh@suse.cz>
12642
12643 * gimple-fold.c (can_refer_decl_in_current_unit_p): Do not accept
1a1634db 12644 abstract functions; for static functions check the presence of body.
2246b6a9 12645
5b44c420 126462013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
12647
12648 * config/aarch64/aarch64-simd-builtins.def (fma): New.
12649 * config/aarch64/aarch64-simd.md
12650 (aarch64_mla_elt<mode>): New.
12651 (aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
12652 (aarch64_mls_elt<mode>): Likewise.
12653 (aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
12654 (aarch64_fma4_elt<mode>): Likewise.
12655 (aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
12656 (aarch64_fma4_elt_to_128v2df): Likewise.
12657 (aarch64_fma4_elt_to_64df): Likewise.
12658 (fnma<mode>4): Likewise.
12659 (aarch64_fnma4_elt<mode>): Likewise.
12660 (aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
12661 (aarch64_fnma4_elt_to_128v2df): Likewise.
12662 (aarch64_fnma4_elt_to_64df): Likewise.
12663 * config/aarch64/iterators.md (VDQSF): New.
12664 * config/aarch64/arm_neon.h
12665 (vfm<as><sdq>_lane<q>_f<32, 64>): Convert to C implementation.
12666 (vml<sa><q>_lane<q>_<fsu><16, 32, 64>): Likewise.
12667
5839dcd4 126682013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
12669
12670 * config/aarch64/aarch64-simd.md (aarch64_mul3_elt<mode>): New.
12671 (aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
12672 (aarch64_mul3_elt_to_128df): Likewise.
12673 (aarch64_mul3_elt_to_64v2df): Likewise.
12674 * config/aarch64/iterators.md (VEL): Also handle DFmode.
12675 (VMUL): New.
12676 (VMUL_CHANGE_NLANES) Likewise.
12677 (h_con): Likewise.
12678 (f): Likewise.
12679 * config/aarch64/arm_neon.h
12680 (vmul<q>_lane<q>_<suf><16,32,64>): Convert to C implementation.
12681
d7438495 126822013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
12683
12684 * config/aarch64/arm_neon.h
12685 (vcvtx_high_f32_f64): Fix parameters.
12686
13dd844a 126872013-09-16 Jan-Benedict Glaw <jbglaw@lug-owl.de>
16660726 12688 Uros Bizjak <ubizjak@gmail.com>
13dd844a 12689
16660726 12690 * config/alpha.c: Include tree-ssanames.h.
13dd844a 12691
f1ce84d9 126922013-09-16 Richard Biener <rguenther@suse.de>
12693
12694 * tree-loop-distribution.c (enum rdg_dep_type): Add control_dd.
12695 (dot_rdg_1): Handle control_dd.
12696 (create_edge_for_control_dependence): New function.
12697 (create_rdg_edges): Add control dependences if asked for.
12698 (build_rdg): Likewise.
12699 (generate_loops_for_partition): If there are not necessary
12700 control stmts remove all their dependencies.
12701 (collect_condition_stmts, rdg_flag_loop_exits): Remove.
12702 (distribute_loop): Pass on control dependences.
12703 (tree_loop_distribution): Compute control dependences and remove
12704 restriction on number of loop nodes.
12705
accbbe24 127062013-09-16 Jakub Jelinek <jakub@redhat.com>
12707
12708 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Return early
12709 for internal calls.
12710
211e63b0 127112013-09-16 Richard Sandiford <rdsandiford@googlemail.com>
12712
12713 * cse.c (try_const_anchors): Punt on CC modes.
12714
3719e41c 127152013-09-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
12716
12717 * config/vax/constraints.md (T): Add missing CONSTANT_P check.
12718
e89dda49 127192013-09-14 John David Anglin <danglin@gcc.gnu.org>
12720
12721 PR target/58382
12722 * config/pa/pa.c (pa_expand_prologue): Change mode in gen_rtx_POST_INC
12723 calls to word_mode.
12724
236ce1d1 127252013-09-14 Iain Sandoe <iain@codesourcery.com>
12726
12727 PR target/48094
12728 * config/darwin.c (darwin_objc2_section): Note if ObjC Metadata is
13dd844a 12729 seen.
12730 (darwin_objc1_section): Likewise.
236ce1d1 12731 (darwin_file_end): Emit Image Info section when required.
12732
6e1aa353 127332013-09-14 Jan Hubicka <jh@suse.cz>
12734
12735 * tree-into-ssa.c (gate_into_ssa): New.
12736 (pass_data_build_ssa): Use it.
12737 * cgraph.h (expand_thunk): Update prototype.
12738 * cgraphunit.c (analyze_function): Expand thunks early.
12739 (expand_thunk): Fix DECL_CONTEXT of reust_decl;
12740 build proper cgraph; set in_ssa_p; clear bogus TREE_ASM_WRITTEN;
12741 set lowered flag; do not add new function.
12742 (assemble_thunks_and_aliases): Update.
12743 * tree-ssa.c (gate_init_datastructures): New gate.
12744 (pass_data_init_datastructures): Use it.
12745
0bbd92f7 127462013-09-14 Iain Sandoe <iain@codesourcery.com>
12747
12748 PR target/58269
13dd844a 12749 * config/i386/i386.c (ix86_function_arg_regno_p): Make Darwin use the
0bbd92f7 12750 xmm register set described in the psABI.
12751
7c546f33 127522013-09-13 Evgeny Gavrin <e.gavrin@samsung.com>
12753
13dd844a 12754 * dwarf2out.c (should_emit_struct_debug): Add check
12755 for type_decl variable is not NULL.
7c546f33 12756
f9f68d35 127572013-09-13 Jacek Caban <jacek@codeweavers.com>
12758
12759 * config.gcc: Use new winnt-c.c target hooks
12760 * config/t-winnt: New file
12761 * config/winnt-c.c: New file
12762 * doc/tm.texi.in: Document new hook
12763 * doc/tm.texi: Regenerated
12764
31925450 127652013-09-13 Jan Hubicka <jh@suse.cz>
12766
12767 PR middle-end/58094
12768 * ipa-inline.c (check_callers): New function.
12769 (check_caller_edge): Remove.
12770 (want_inline_function_to_all_callers_p): Also permit alises that are
12771 called dirrectly.
12772 (inline_to_all_callers): Terminate the walk when devirtualization
12773 introduce new calls.
12774
ce1f57d6 127752013-09-13 Jan Hubicka <jh@suse.cz>
12776
12777 * ipa-inline-analysis.c (struct growth_data): Add node.
12778 (do_estimate_growth_1): Fix detection of recursion.
12779
84cb1020 127802013-09-13 Jakub Jelinek <jakub@redhat.com>
12781
12782 PR tree-optimization/58392
12783 * tree-cfg.c (move_sese_region_to_fn): Rename loop variable
12784 to avoid shadowing of outer loop variable. If
12785 saved_cfun->has_simduid_loops or saved_cfun->has_force_vect_loops,
12786 replace_by_duplicate_decl simduid of loops that have it set and
12787 set dest_cfun->has_simduid_loops and/or
12788 dest_cfun->has_force_vect_loops.
12789 * omp-low.c (build_outer_var_ref): Call maybe_lookup_decl_in_outer_ctx
12790 instead of maybe_lookup_decl.
12791 * tree-inline.c (copy_loops): Change blocks_to_copy argument to id.
12792 Use id->blocks_to_copy instead of blocks_to_copy. Adjust recursive
12793 call. Copy over force_vect and copy and remap simduid. Set
12794 cfun->has_simduid_loops and/or cfun->has_force_vect_loops.
12795 (copy_cfg_body): Remove blocks_to_copy argument. Use
12796 id->blocks_to_copy instead of blocks_to_copy. Adjust copy_loops
12797 caller. Don't set cfun->has_simduid_loops and/or
12798 cfun->has_force_vect_loops here.
12799 (copy_body): Remove blocks_to_copy argument. Adjust copy_cfg_body
12800 caller.
12801 (expand_call_inline, tree_function_versioning): Adjust copy_body
12802 callers.
12803
37113583 128042013-09-13 Martin Jambor <mjambor@suse.cz>
12805
12806 PR bootstrap/58388
12807 * ipa-prop.c (try_make_edge_direct_simple_call): Be less strict in
12808 the assert if the edge was a speculative one.
12809
15c8650d 128102013-09-13 Richard Biener <rguenther@suse.de>
12811
12812 * tree-data-ref.h (known_dependences_p): Move here ...
12813 * tree-loop-distribution.c (known_dependences_p): ... from here.
12814 (dump_rdg_component, debug_rdg_component): Remove.
12815 (dump_rdg): Adjust.
12816 (generate_loops_for_partition): Use gimple_uid instead of
12817 relying on matching stmt visit order.
12818 (rdg_build_partitions): Take starting stmt vector.
12819 (ldist_gen): Merge into ...
12820 (distribute_loop): ... this function. Do not compute starting
12821 vertices vector.
12822 * tree-cfg.c (gimple_duplicate_bb): Copy UID for PHIs.
12823
f9f234ec 128242013-09-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12825
12826 * config/arm/arm.md (arm_cmpsi_insn): Split rI alternative.
12827 Set type attribute correctly. Set predicable_short_it attribute.
12828 (cmpsi_shiftsi): Remove %? from output template.
12829
88e0cdd9 128302013-09-13 Richard Biener <rguenther@suse.de>
12831
12832 * tree-loop-distribution.c (struct rdg_component,
12833 rdg_defs_used_in_other_loops_p, free_rdg_components,
12834 rdg_build_components): Remove.
12835 (stmts_from_loop): Do not record virtual PHIs.
12836 (generate_loops_for_partition): Skip virtual PHIs.
12837 (build_rdg_partition_for_component): Rename to ...
12838 (build_rdg_partition_for_vertex): ... this and adjust.
12839 (rdg_build_partitions): Take a vector of starting vertices
12840 instead of components. Remove unnecessary leftover handling.
12841 (ldist_gen): Do not build components or record other stores.
12842 (distribute_loop): Do not distribute loops containing stmts
12843 with side-effects.
12844
eb516c2d 128452013-09-13 Christian Bruel <christian.bruel@st.com>
12846
12847 PR target/58314
12848 * config/sh/sh.md (mov<mode>_reg_reg): Allow memory reloads.
12849
f76cbbb0 128502013-09-13 Kai Tietz <ktietz@redhat.com>
12851
39b7d6dc 12852 * config.gcc: Separate cases for mingw and cygwin targets,
12853 and add 64-bit cygwin target case.
12854
f76cbbb0 12855 * config/i386/winnt-cxx.c (i386_pe_type_dllexport_p): Don't
12856 dll-export inline-functions.
12857 * config/i386/winnt.c (i386_pe_determine_dllexport_p): Likewise.
12858
f76cbbb0 128592013-09-13 Jeff Law <law@redhat.com>
fc992172 12860
12861 PR middle-end/58387
12862 Revert:
12863 2013-09-06 Jeff Law <law@redhat.com>
12864
12865 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
12866 edge implied equivalences into successor phis.
12867
86a421e5 128682013-09-12 DJ Delorie <dj@redhat.com>
12869
12870 * config/rl78/rl78-virt.md: Change from | to \; for asm line
12871 separators.
12872
955edcde 128732013-09-12 Brooks Moses <bmoses@google.com>
12874
12875 PR driver/42955
12876 * Makefile.in: Do not install driver binaries in $(target)/bin.
12877
ed2d7e5b 128782013-09-12 DJ Delorie <dj@redhat.com>
12879
b87a044e 12880 * config/rl78/rl78.opt (mrelax): New.
12881 * config/rl78/rl78.h (ASM_SPEC): New, pass on -mrelax to gas.
12882 * config/rl78/rl78.h (LINK_SPEC): New, pass on -mrelax to ld.
12883
ed2d7e5b 12884 * config/rl78/rl78.c (rl78_expand_prologue): Use AX to copy
12885 between SP and FP.
12886 (rl78_expand_epilogue): Likewise.
12887
0e5e8430 128882013-09-12 Vladimir Makarov <vmakarov@redhat.com>
12889
12890 PR middle-end/58335
fcb62f40 12891 * lra-eliminations.c (remove_reg_equal_offset_note): New.
0e5e8430 12892 (eliminate_regs_in_insn): Rewrite frame pointer to hard frame
12893 pointer elimination with using remove_reg_equal_offset_note.
12894
5acc9e33 128952013-09-12 DJ Delorie <dj@redhat.com>
12896
e4a25868 12897 * config/msp430/: New port.
12898 * config.gcc (msp430): Added.
12899 * doc/invoke.texi: Document MSP430 options.
12900 * doc/install.texi: Document msp430-elf
12901 * doc/md.texi: Document msp430-elf
12902 * doc/contrib.texi: Document msp430-elf
12903
5acc9e33 12904 * cfgexpand.c (expand_debug_expr): Avoid sign-extending SImode to
12905 PSImode.
12906
8398c9b3 129072013-09-12 Martin Jambor <mjambor@suse.cz>
12908
12909 PR ipa/58389
12910 * ipa-prop.c (remove_described_reference): Give up if the edge in the
12911 reference descriptor is NULL.
12912 (ipa_edge_removal_hook): If owning a reference descriptor, set its
12913 edge to NULL.
12914
9e2e2283 129152013-09-12 Andrew MacLeod <amacleod@redhat.com>
12916
12917 * tree-flow.h (FREE_SSANAMES): Move to tree-ssanames.c
12918 (SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS, ptr_info_def,
12919 num_ssa_names, ssa_name): Move to tree-ssanames.h + prototypes.
12920 * tree-flow-inline.h (make_ssa_name, copy_ssa_name, duplicate_ssa_name,
12921 make_temp_ssa_name): move to tree-ssanames.h
12922 * tree-ssa-alias.h: Move prototype.
12923 * tree-ssa.h: Include tree-ssanames.h.
12924 * tree-ssanames.c (FREE_SSANAMES): Move to here.
12925 * tree-ssanames.h: New. Move items from tree-flow*.h
12926 * Makefile.in (tree-ssanames.h): Add to tree-ssanames.o and GTFILES.
12927
d0d1ecb8 129282013-09-12 Richard Biener <rguenther@suse.de>
12929
12930 PR tree-optimization/58404
12931 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
12932 propagate non-invariant addresses into dereferences wrapped
12933 in component references.
12934
55bc8a5a 129352013-09-12 Richard Biener <rguenther@suse.de>
12936
12937 PR tree-optimization/58402
12938 * passes.def: Move pass_late_warn_uninitialized later.
12939
69ee5dbb 129402013-09-12 Andrew MacLeod <amacleod@redhat.com>
12941
12942 * tree-ssa.h: New. Move content from tree-flow.h and
12943 tree-flow-inline.h.
12944 * tree-flow.h (_edge_var_map, edge_var_map_vector): Move to tree-ssa.h.
12945 Move prototypes belonging to tree-ssa.c.
13dd844a 12946 * tree-flow-inline.h (redirect_edge_var_map_def,
69ee5dbb 12947 redirect_edge_var_map_result, redirect_edge_var_map_location): Move to
12948 tree-ssa.h.
12949 * gimple.h: Adjust prototypes.
13dd844a 12950 * tree-ssa.c (useless_type_conversion_p, types_compatible_p): Move
12951 to...
12952 * gimple.c (useless_type_conversion_p, types_compatible_p): Here.
69ee5dbb 12953 * tree.h: Move prototype to tree-ssa.h.
12954 * gengtype.c (open_base_files): Replace tree-flow.h with tree-ssa.h.
12955 * Makefile.in: (TREE_SSA_H, TREE_FLOW_H): Adjust dependencies.
12956 * alias.c, asan.c, builtins.c, calls.c, cfgexpand.c, cfghooks.c,
12957 cfgloop.c, cfgloopmanip.c, cgraph.c, cgraphbuild.c, cgraphclones.c,
12958 cgraphunit.c, dse.c, except.c, expr.c, final.c, fold-const.c,
12959 ggc-page.c, gimple-fold.c, gimple-iterator.c, gimple-low.c,
12960 gimple-pretty-print.c, gimple-ssa-strength-reduction.c,
12961 gimple-streamer-in.c, gimple-streamer-out.c, gimple.c, gimplify.c,
13dd844a 12962 graphite-blocking.c, graphite-clast-to-gimple.c,
12963 graphite-dependences.c, graphite-interchange.c,
12964 graphite-optimize-isl.c, graphite-poly.c, graphite-scop-detection.c,
12965 graphite-sese-to-poly.c, graphite.c, ipa-cp.c, ipa-inline-analysis.c,
12966 ipa-inline-transform.c, ipa-inline.c, ipa-prop.c, ipa-pure-const.c,
12967 ipa-reference.c, ipa-split.c, ipa-utils.c,
69ee5dbb 12968 loop-init.c, lto-cgraph.c, lto-section-in.c, lto-section-out.c,
12969 lto-streamer-in.c, lto-streamer-out.c, lto-streamer.c, omp-low.c,
12970 passes.c, predict.c, print-tree.c, profile.c, sese.c, targhooks.c,
12971 tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
12972 tree-chrec.c, tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
12973 tree-emutls.c, tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
12974 tree-loop-distribution.c, tree-mudflap.c, tree-nested.c, tree-nrv.c,
12975 tree-object-size.c, tree-optimize.c, tree-outof-ssa.c, tree-parloops.c,
12976 tree-phinodes.c, tree-predcom.c, tree-pretty-print.c, tree-profile.c,
12977 tree-scalar-evolution.c, tree-sra.c, tree-ssa*.c, tree-stdarg.c,
12978 tree-streamer-in.c, tree-switch-conversion.c, tree-tailcall.c,
12979 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
12980 tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
12981 tree-vect-stmts.c, tree-vectorizer.c, tree-vrp.c, tsan.c,
12982 value-prof.c, var-tracking.c,
12983 varpool.c, vtable-verify.c: Replace tree-flow.h with tree-ssa.h
12984
eeaec025 129852013-09-12 Richard Biener <rguenther@suse.de>
12986
12987 PR tree-optimization/58396
12988 * tree-loop-distribution.c (create_rdg_edges): Free unused DDRs.
12989 (build_rdg): Take a loop-nest parameter, fix memleaks.
12990 (distribute_loop): Compute loop-nest here and pass it to build_rdg.
12991
246847f0 129922013-09-12 Yuri Rumyantsev <ysrumyan@gmail.com>
12993
12994 * config/i386/x86-tune.def: Turn on X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE
12995 for SLM.
12996
13581a5d 129972013-09-12 Cameron McInally <cameron.mcinally@nyu.edu>
12998
12999 * doc/extend.texi: Fix errors in x86 FMA builtin naming.
13000 The FMA instruction names should have a 'v' prefix.
13001
5529df60 130022013-09-12 Richard Biener <rguenther@suse.de>
13003
13004 * tree-loop-distribution.c (dot_rdg_1): Make graph prettier.
13005 (dot_rdg): Use popen instead of system in optional code.
13006 (remaining_stmts, upstream_mem_writes): Remove global bitmaps.
13007 (already_processed_vertex_p): Adjust.
13008 (has_anti_or_output_dependence, predecessor_has_mem_write,
13009 mark_nodes_having_upstream_mem_writes, has_upstream_mem_writes,
13010 rdg_flag_uses): Remove.
13011 (rdg_flag_vertex): Simplify.
13012 (rdg_flag_vertex_and_dependent): Rely on a correct RDG and
13013 remove recursion.
13014 (build_rdg_partition_for_component): Process the first vertex
13015 of a component only.
13016 (ldist_gen): Do not compute remaining_stmts or upstream_mem_writes.
13017
b27da197 130182013-09-12 Alan Modra <amodra@gmail.com>
13019
13020 * config/rs6000/rs6000.c (toc_relative_expr_p): Use add_cint_operand.
13021
3f3556f1 130222013-09-11 DJ Delorie <dj@redhat.com>
13023 Nick Clifton <nickc@redhat.com>
13024
13025 * config/rl78/predicates.md (rl78_cmp_operator_signed): New.
13026 (rl78_stack_based_mem): New.
13027 * config/rl78/constraints.md (Iv08): New.
13028 (Iv16): New.
13029 (Iv24): New.
13030 (Is09): New.
13031 (Is17): New.
13032 (Is25): New.
13033 (ISsi): New.
13034 (IShi): New.
13035 (ISqi): New.
13036 * config/rl78/rl78-expand.md (movqi): Reject more SUBREG operands.
13037 (movhi): Likewise.
13038 (movsi): Change from expand to insn-and-split.
13039 (ashrsi3): Clobber AX.
13040 (lshrsi3): New.
13041 (ashlsi3): New.
13042 (cbranchsi4): New.
13043 * config/rl78/rl78.md (CC_REG): Fix.
13044 (addsi3): Allow memory and immediate operands.
13045 (addsi3_internal): Split into...
13046 (addsi3_internal_virt): ...new, and ...
13047 (addsi3_internal_real): ...new.
13048 (subsi): New.
13049 (subsi3_internal_virt): New.
13050 (subsi3_internal_real): New.
13051 (mulsi3): Add memory operand.
13052 (mulsi3_rl78): Likewise.
13053 (mulsi3_g13): Likewise.
13054 * config/rl78/rl78-real.md (cbranchqi4_real_signed): New.
13055 (cbranchqi4_real): Add more constraint options.
13056 (cbranchhi4_real): Expand pattern.
13057 (cbranchhi4_real_signed): New.
13058 (cbranchhi4_real_inverted): New.
13059 (cbranchsi4_real_lt): New.
13060 (cbranchsi4_real_ge): New.
13061 (cbranchsi4_real_signed): New.
13062 (cbranchsi4_real): New.
13063 (peephole2): New.
13581a5d 13064 * config/rl78/rl78-virt.md (ashrsi3_virt): Add custom cases for
13065 constant shifts.
3f3556f1 13066 (lshrsi3_virt): Likewise.
13067 (ashlsi3_virt): Likewise.
13068 (cbranchqi4_virt_signed): New.
13069 (cbranchhi4_virt_signed): New.
13070 (cbranchsi4_virt): New.
13071 * config/rl78/rl78.c: Whitespace fixes throughout.
13072 (move_elim_pass): New.
13073 (pass_data_rl78_move_elim): New.
13074 (pass_rl78_move_elim): New.
13075 (make_pass_rl78_move_elim): New.
13076 (rl78_devirt_info): Run devirt earlier.
13077 (rl78_move_elim_info): New.
13078 (rl78_asm_file_start): Register it.
13079 (rl78_split_movsi): New.
13080 (rl78_as_legitimate_address): Allow virtual base registers when
13081 appropriate.
13082 (rl78_addr_space_convert): Remove spurious debug stuff.
13083 (rl78_print_operand_1): Add z,s,S,r,E modifiers.
13084 (rl78_print_operand): More cases for not printing '#'.
13085 (rl78_expand_compare): Remove most of the logic.
13086 (content_memory): New.
13087 (clear_content_memory): New.
13088 (get_content_index): New.
13089 (get_content_name): New.
13090 (display_content_memory): New.
13091 (update_content): New.
13092 (record_content): New.
13093 (already_contains): New.
13094 (insn_ok_now): Re-recog insns with virtual registers.
13095 (add_postponed_content_update): New.
13096 (process_postponed_content_update): New.
13097 (gen_and_emit_move): New.
13581a5d 13098 (transcode_memory_rtx): Record new location content.
13099 Use gen_and_emit_move.
3f3556f1 13100 (force_into_acc): New.
13101 (move_to_acc): Use gen_and_emit_move.
13102 (move_from_acc): Likewise.
13103 (move_acc_to_reg): Likewise.
13104 (move_to_x): Likewise.
13105 (move_to_hl): Likewise.
13106 (move_to_de): Likewise.
13107 (rl78_alloc_physical_registers_op1): Record location content.
13108 (has_constraint): New.
13109 (rl78_alloc_physical_registers_op2): Record location content.
13110 Optimize use of HL.
13111 (rl78_alloc_physical_registers_ro1): Likewise.
13112 (rl78_alloc_physical_registers_cmp): Likewise.
13113 (rl78_alloc_physical_registers_umul): Likewise.
13114 (rl78_alloc_address_registers_macax): New.
13115 (rl78_alloc_physical_registers): Initialize and set location
13116 content memory as needed.
13117 (rl78_reorg): Make sure split2 is called.
13118 (rl78_rtx_costs): New.
13119
4ab283cc 131202013-09-11 Richard Sandiford <rdsandiford@googlemail.com>
13121
13122 * simplify-rtx.c (simplify_unary_operation_1): Use simplify_gen_binary
13123 for (not (neg ...)) and (neg (not ...)) cases.
13124
13089d2b 131252013-09-11 Richard Biener <rguenther@suse.de>
13126
13127 PR middle-end/58377
13128 * passes.def: Split critical edges before late uninit warning passes.
13129 * tree-cfg.c (pass_split_crit_edges): Implement clone method.
13130
6b960911 131312013-09-11 Jakub Jelinek <jakub@redhat.com>
13132
13133 PR tree-optimization/58385
13134 * fold-const.c (build_range_check): If both low and high are NULL,
13135 use omit_one_operand_loc to preserve exp side-effects.
13136
88c29385 131372013-09-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13138
13139 * config/arm/arm.md (arm_shiftsi3): New alternative l/l/M.
13140
a2740310 131412013-09-11 Richard Biener <rguenther@suse.de>
13142
13143 * tree-data-ref.c (dump_rdg_vertex, debug_rdg_vertex,
13144 dump_rdg_component, debug_rdg_component, dump_rdg, debug_rdg,
13145 dot_rdg_1, dot_rdg, rdg_vertex_for_stmt, create_rdg_edge_for_ddr,
13146 create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices,
13147 stmts_from_loop, known_dependences_p, build_empty_rdg,
13148 build_rdg, free_rdg, rdg_defs_used_in_other_loops_p): Move ...
13149 * tree-loop-distribution.c: ... here.
13150 * tree-data-ref.h (struct rdg_vertex, RDGV_STMT, RDGV_DATAREFS,
13151 RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT, RDG_DATAREFS,
13152 RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT, enum rdg_dep_type,
13153 struct rdg_edge, RDGE_TYPE, RDGE_LEVEL, RDGE_RELATION): Move ...
13154 * tree-loop-distribution.c: ... here.
13155 * tree-loop-distribution.c: Include gimple-pretty-print.h.
13156 (struct partition_s): Add loops member.
13157 (partition_alloc, partition_free, rdg_flag_uses, rdg_flag_vertex,
13158 rdg_flag_vertex_and_dependent, rdg_flag_loop_exits,
13159 build_rdg_partition_for_component, rdg_build_partitions): Adjust.
13160
28dccb9a 131612013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
13162 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
13163 Sergey Lega <sergey.s.lega@intel.com>
13164 Anna Tikhonova <anna.tikhonova@intel.com>
13165 Ilya Tocar <ilya.tocar@intel.com>
13166 Andrey Turetskiy <andrey.turetskiy@intel.com>
13167 Ilya Verbin <ilya.verbin@intel.com>
13168 Kirill Yukhin <kirill.yukhin@intel.com>
13169 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
13170
13171 * config/i386/constraints.md (k): New.
13172 (Yk): Ditto.
13173 * config/i386/i386.c (const regclass_map): Add new mask registers.
13174 (dbx_register_map): Ditto.
13175 (dbx64_register_map): Ditto.
13176 (svr4_dbx_register_map): Ditto.
13177 (ix86_conditional_register_usage): Squash mask registers if AVX512F is
13178 disabled.
13179 (ix86_preferred_reload_class): Disable constants for mask registers.
13180 (ix86_secondary_reload): Do spill of mask register using 32-bit insn.
13181 (ix86_hard_regno_mode_ok): Support new mask registers.
13182 (x86_order_regs_for_local_alloc): Ditto.
13183 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Update.
13184 (FIXED_REGISTERS): Add new mask registers.
13185 (CALL_USED_REGISTERS): Ditto.
13186 (REG_ALLOC_ORDER): Ditto.
13187 (VALID_MASK_REG_MODE): New.
13188 (FIRST_MASK_REG): Ditto.
13189 (LAST_MASK_REG): Ditto.
13190 (reg_class): Add MASK_EVEX_REGS, MASK_REGS.
13191 (MAYBE_MASK_CLASS_P): New.
13192 (REG_CLASS_NAMES): Add MASK_EVEX_REGS, MASK_REGS.
13193 (REG_CLASS_CONTENTS): Ditto.
13194 (MASK_REGNO_P): New.
13195 (ANY_MASK_REG_P): Ditto.
13196 (HI_REGISTER_NAMES): Add new mask registers.
13581a5d 13197 * config/i386/i386.md (MASK0_REG, MASK1_REG, MASK2_REG, MASK3_REG,
13198 MASK4_REG, MASK5_REG, MASK6_REG, MASK7_REG): Constants for new
13199 mask registers.
28dccb9a 13200 (attribute "type"): Add mskmov, msklog.
13201 (attribute "length_immediate"): Support them.
13202 (attribute "memory"): Ditto.
13203 (attribute "prefix_0f"): Ditto.
13204 (*movhi_internal): Support new mask registers.
13205 (*movqi_internal): Ditto.
13206 (define_split): Split out clobber pattern is a logic
13207 insn on mask registers.
13208 (*k<logic><mode>): New.
13209 (*andhi_1): Extend to support mask regs.
13210 (*andqi_1): Extend to support mask regs.
13211 (kandn<mode>): New.
13212 (define_split): Split and-not to and and not if operands
13213 are not mask regs.
13214 (*<code><mode>_1): Separate HI mode to new pattern...
13215 (*<code>hi_1): This.
13216 (*<code>qi_1): Extend to support mask regs.
13217 (kxnor<mode>): New.
13218 (kortestzhi): Ditto.
13219 (kortestchi): Ditto.
13220 (kunpckhi): Ditto.
13221 (*one_cmpl<mode>2_1): Remove HImode and handle it...
13222 (*one_cmplhi2_1): ...Here, now with mask registers support.
13223 (*one_cmplqi2_1): Support new mask registers.
13581a5d 13224 (HI/QImode arithmetics splitter): Don't split if mask registers
13225 are used.
28dccb9a 13226 (HI/QImode not splitter): Ditto.
13227 * config/i386/predicated.md (mask_reg_operand): New.
13228 (general_reg_operand): Ditto.
13229
e3aed564 132302013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
13231
13232 * doc/invoke.texi: Document fxsr, xsave and xsaveopt options.
13233 * doc/extend.texi: Document fxsr, xsave and xsaveopt builtins.
13234
bb66e2d1 132352013-09-10 Jeff Law <law@redhat.com>
13236
13237 PR tree-optimization/58380
13238 * tree-ssa-threadupdate.c (thread_block): Recognize another case
13239 of threading through a buried loop header.
13240
13241 * tree-ssa-threadedge.c (thread_around_empty_blocks): Correct
13242 return value for single successor case.
13243
702cd71e 132442013-09-10 Jan Hubicka <jh@suse.cz>
13245
13246 * ipa-devirt.c (ipa_devirt): Enable with LTO.
13247
0c2a7615 132482013-09-10 Richard Earnshaw <rearnsha@arm.com>
13249
13250 PR target/58361
13251 * arm/vfp.md (combine_vcvt_f32_<FCVTI32typename>): Fix pattern to
13252 support conditional execution.
13253 (combine_vcvt_f64_<FCVTI32typename>): Likewise.
13254
267200f3 132552013-09-10 Vladimir Makarov <vmakarov@redhat.com>
13256
13257 * lra.c (lra): Clear lra_optional_reload_pseudos before every
13258 constraint pass.
13dd844a 13259 * lra-constraints.c (curr_insn_transform): Switch on optional reloads.
13260 Check destination too to check move insn.
267200f3 13261 (undo_optional_reloads): Add check that the original peudo did not
13dd844a 13262 changed its allocation and the optional reload was inherited on last
13263 inheritance pass. Break loop after deciding to keep optional reload.
267200f3 13264 (lra_undo_inheritance): Add check that inherited pseudo still in
13265 memory.
13266
2e7cc64b 132672013-09-10 James Greenhalgh <james.greenhalgh@arm.com>
13268
13269 * config/aarch64/aarch64.md (generic_sched): New.
13270 * config/aarch64/aarch64-generic.md (load): Make conditional
13271 on generic_sched attribute.
13272 (nonload): Likewise.
13273
b855a50e 132742013-09-10 Jan Hubicka <jh@suse.cz>
13275
13276 * lto-cgraph.c: Include ipa-utils.h.
13277 (compute_ltrans_boundary): Also add possible targets into the boundary.
13278
887481a3 132792013-09-10 Jan Hubicka <jh@suse.cz>
13280
13281 * gimple-fold.c (gimple_get_virt_method_for_binfo): Pass real
13282 VAR_DECL of vtable rather than full expression.
13283
fd9fde78 132842013-09-10 Jan Hubicka <jh@suse.cz>
13285 Paolo Carlini <paolo.carlini@oracle.com>
13286
13287 * cgraphunit.c (analyze_functions): Save input_location, set it
13288 to UNKNOWN_LOCATION and restore it at the end.
13289
3ffe0ea9 132902013-09-10 Martin Jambor <mjambor@suse.cz>
13291
13292 * ipa-cp.c (propagate_constants_topo): Do not ignore SCC
13293 represented by a thunk.
13294
e2b72d6c 132952013-09-10 Jeff Law <law@redhat.com>
13296
13297 PR tree-optimization/58343
13298 * tree-ssa-threadupdate.c (thread_block): Identify and disable
13299 jump threading requests through loop headers buried in the middle
13300 of a jump threading path.
13301
13302 * tree-ssa-threadedge.c (thread_around_empty_blocks): Fix thinko
13303 in return value/type.
13304
d8a2f839 133052013-09-10 Jakub Jelinek <jakub@redhat.com>
13306
13307 PR rtl-optimization/58365
13308 * cfgcleanup.c (merge_memattrs): Also clear MEM_READONLY_P
13309 resp. MEM_NOTRAP_P if they differ, or set MEM_VOLATILE_P if
13310 it differs.
13311
869a4fb5 133122013-09-10 Richard Biener <rguenther@suse.de>
13313
13314 * tree-data-ref.h (build_rdg): Drop all parameters but loop.
13315 * tree-data-ref.c (create_rdg_vertices): Collect all data
13316 references, signal failure to the caller, use data-ref API.
13581a5d 13317 (build_rdg): Compute data references only once. Maintain lifetime
13318 of data references and data dependences from within RDG.
869a4fb5 13319 (free_rdg): Free dependence relations.
13320 * tree-loop-distribution.c (rdg_flag_uses): Drop weird code
13321 inventing extra dependences.
13322 (distribute_loop): Update for RDG API changes.
13323
01fb57c9 133242013-09-10 Kai Tietz <ktietz@redhat.com>
13325
13326 * doc/invoke.texi (fms-extensions): Document changed
13327 behavior for ms-abi targets.
13328 * config/i386/i386.c (ix86_option_override_internal):
13329 Set default value of option -fms-extension for ms-abi targets.
13330
793e6a66 133312013-09-10 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
13332
13333 * config/i386/i386.c (ix86_expand_movmem): Fix epilogue generation.
13334
6c23cf04 133352013-09-10 Alan Modra <amodra@gmail.com>
13336
13337 PR target/58330
13338 * config/rs6000/rs6000.md (bswapdi2_64bit): Disable for volatile mems.
13339
25652fc1 133402013-09-10 Alan Modra <amodra@gmail.com>
13341
13342 * config/rs6000/predicates.md (add_cint_operand): New.
13343 (reg_or_add_cint_operand, small_toc_ref): Use add_cint_operand.
13344 * config/rs6000/rs6000.md (largetoc_high_plus): Restrict offset
13345 using add_cint_operand.
13346 (largetoc_high_plus_aix): Likewise.
13347
e423480a 133482013-09-09 Jakub Jelinek <jakub@redhat.com>
13349
13350 PR tree-optimization/58364
13351 * tree-ssa-reassoc.c (init_range_entry): For BIT_NOT_EXPR on
13352 BOOLEAN_TYPE, only invert in_p and continue with arg0 if
13353 the current range can't be an unconditional true or false.
13354
d5067b90 133552013-09-09 James Greenhalgh <james.greenhalgh@arm.com>
13356
13357 * config/aarch64/arm_neon.h (vrsqrte_f64): Fix parameter type.
13358
e33c5592 133592013-09-09 Uros Bizjak <ubizjak@gmail.com>
13360
13361 * ipa-prop.c (ipa_modify_call_arguments): Initialize deref_align.
13362
ba2f764e 133632013-09-09 Paolo Carlini <paolo.carlini@oracle.com>
13364
13365 PR c++/43452
13366 * doc/invoke.texi (-Wdelete-incomplete): Document it.
13367
5c5ef2f3 133682013-09-09 Ian Bolton <ian.bolton@arm.com>
13369
13370 * config/aarch64/aarch64.c (aarch64_preferred_reload_class): Return
13371 NO_REGS for immediate that can't be moved directly into FP_REGS.
13372
ec538a41 133732013-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13374
13375 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
13376 comparison with negated operand.
ba2f764e 13377 * config/aarch64/aarch64.md (compare_neg<mode>): Match canonical
13378 RTL form.
ec538a41 13379
9cad916b 133802013-09-09 Richard Biener <rguenther@suse.de>
13381
13382 PR middle-end/58326
13383 * cfgloopmanip.c (fix_bb_placements): When fixing the placement
13384 of a subloop record all its block as affecting loop-closed SSA form.
13385
54f42f11 133862013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
13387
13388 * expmed.c (lshift_value): Take an unsigned HOST_WIDE_INT instead
13389 of an rtx/bitpos pair.
13390 (store_fixed_bit_field): Update accordingly.
13391
d11aedc7 133922013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
13393
13394 * asan.c (asan_emit_stack_protection): Use gen_int_mode instead of
13395 GEN_INT.
13396 * builtins.c (expand_errno_check): Likewise.
13397 * dwarf2cfi.c (init_return_column_size): Likewise.
13398 * except.c (sjlj_mark_call_sites): Likewise.
13399 * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise.
13400 * lra-constraints.c (emit_inc): Likewise.
13401 * ree.c (combine_set_extension): Likewise.
13402 * regmove.c (fixup_match_2): Likewise.
13403 * reload1.c (inc_for_reload): Likewise.
13404
5d5ee71f 134052013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
13406
13407 * combine.c (simplify_set, expand_field_assignment, extract_left_shift)
13408 (force_to_mode, simplify_shift_const_1, simplify_comparison):
13409 Use gen_int_mode with the mode of the associated simplify_* call.
13410 * explow.c (probe_stack_range, anti_adjust_stack_and_probe): Likewise.
13411 * expmed.c (expand_shift_1): Likewise.
13412 * function.c (instantiate_virtual_regs_in_insn): Likewise.
13413 * loop-iv.c (iv_number_of_iterations): Likewise.
13414 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
13415 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
13416
0359f9f5 134172013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
13418
13419 * asan.c (asan_clear_shadow): Use gen_int_mode with the mode
13420 of the associated expand_* call.
13421 (asan_emit_stack_protection): Likewise.
13422 * builtins.c (round_trampoline_addr): Likewise.
13423 * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
13424 * expmed.c (expand_smod_pow2, expand_sdiv_pow2, expand_divmod)
13425 (emit_store_flag): Likewise.
13426 * expr.c (emit_move_resolve_push, push_block, emit_single_push_insn_1)
13427 (emit_push_insn, optimize_bitfield_assignment_op, expand_expr_real_1):
13428 Likewise.
13429 * function.c (instantiate_virtual_regs_in_insn): Likewise.
13430 * ifcvt.c (noce_try_store_flag_constants): Likewise.
13431 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
13432 * modulo-sched.c (generate_prolog_epilog): Likewise.
13433 * optabs.c (expand_binop, widen_leading, expand_doubleword_clz)
13434 (expand_ctz, expand_ffs, expand_unop): Likewise.
13435
c338f2e3 134362013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
13437
13438 * alias.c (addr_side_effect_eval): Use gen_int_mode with the mode
13439 of the associated gen_rtx_* call.
13440 * caller-save.c (init_caller_save): Likewise.
13441 * combine.c (find_split_point, make_extraction): Likewise.
13442 (make_compound_operation): Likewise.
13443 * dwarf2out.c (mem_loc_descriptor): Likewise.
13444 * explow.c (plus_constant, probe_stack_range): Likewise.
13445 * expmed.c (expand_mult_const): Likewise.
13446 * expr.c (emit_single_push_insn_1, do_tablejump): Likewise.
13447 * reload1.c (init_reload): Likewise.
13448 * valtrack.c (cleanup_auto_inc_dec): Likewise.
13449 * var-tracking.c (adjust_mems): Likewise.
13450 * modulo-sched.c (sms_schedule): Likewise, but use gen_rtx_GT
13451 rather than gen_rtx_fmt_ee.
13452
d27c9b1e 134532013-09-09 Jan Hubicka <jh@suse.cz>
13454
13455 PR middle-end/58294
13456 * value-prof.c (gimple_ic): Copy also abnormal edges.
13457
bc89f4e2 134582013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
13459
13460 * asan.c (asan_shadow_cst): Use gen_int_mode.
13461
e27f29dd 134622013-09-08 Jan Hubicka <jh@suse.cz>
13463
13464 * ipa-profile.c: Add toplevel comment.
13465 (ipa_propagate_frequency_1): Be more conservative when profile is read.
13466 (contains_hot_call_p): New function.
13467 (ipa_propagate_frequency): Set frequencies based on counts when
13468 profile is read.
13469 * predict.c (compute_function_frequency): Use PROFILE_READ gueard for
13470 profile; do not tamper with profile after inlining if it is read.
13471
d9ea4515 134722013-09-08 Jan Hubicka <jh@suse.cz>
13473
13474 * ipa-prop.c (try_make_edge_direct_simple_call): Do not special case
13475 speculative edges.
13476
96774562 134772013-09-08 Jan Hubicka <jh@suse.cz>
13478
13479 * ipa.c (walk_polymorphic_call_targets): Fix redirection before IPA
13480 summary generation.
13481
6da68a0a 134822013-09-08 Jeff Law <law@redhat.com>
13483
13484 PR bootstrap/58340
13485 * tree-ssa-threadedge.c (thread_across_edge): Fix initialization
13486 of 'found'.
13487
5a5c1f81 134882013-09-08 Andi Kleen <ak@linux.intel.com>
13489
13490 * tree-inline.c (estimate_num_insns): Limit asm cost to 1000.
13491
749c5b03 134922013-09-08 Jan Hubicka <jh@suse.cz>
13493
13494 * ipa.c (walk_polymorphic_call_targets): Fix inliner summary update.
13495
40cec44a 134962013-09-08 Richard Sandiford <rdsandiford@googlemail.com>
13497
13498 * ira.c (update_equiv_regs): Only call set_paradoxical_subreg
13499 for non-debug insns.
13500 * lra.c (new_insn_reg): Take the containing insn as a parameter.
13501 Only modify lra_reg_info[].biggest_mode if it's non-debug insn.
13502 (collect_non_operand_hard_regs, add_regs_to_insn_regno_info): Update
13503 accordingly.
13504
e2fa5d74 135052013-09-08 Jan Hubicka <jh@suse.cz>
13506
13507 * cgraphunit.c (walk_polymorphic_call_targets): Permit 0 possible
13508 targets and devirtualize to BUILT_IN_UNREACHABLE.
13509 * timevar.def (TV_IPA_UNREACHABLE): New timevar.
13510 * ipa.c (walk_polymorphic_call_targets): New function.
13511 (symtab_remove_unreachable_nodes): Use it; do not keep all virtual
13512 functions; use the new timevar.
13513 * ipa-devirt.c (maybe_record_node): Do not insert static nodes that
13514 was removed from the program.
13515 (record_binfo): If BINFO corresponds to an anonymous namespace, we may
13516 not consider it in the walk when its vtable is dead.
13517 (possible_polymorphic_call_targets_1): Pass anonymous flag to
13518 record_binfo.
13519 (devirt_variable_node_removal_hook): New function.
13520 (possible_polymorphic_call_targets): Also register
13521 devirt_variable_node_removal_hook.
13522 (ipa_devirt): Do not do non-speculative devirtualization.
13523 (gate_ipa_devirt): One execute if devirtualizing speculatively.
13524
332db80a 135252013-09-08 Jan Hubicka <jh@suse.cz>
13526
13527 * cgraph.h (varpool_node_hook, varpool_node_hook_list,
13528 varpool_add_node_removal_hook, varpool_add_variable_insertion_hook,
13529 varpool_remove_variable_insertion_hook): Declare.
13530 * varpool.c (varpool_node_hook_list): New structure.
13531 (first_varpool_node_removal_hook,
13532 first_varpool_variable_insertion_hook): New variables.
13533 (varpool_add_node_removal_hook, varpool_remove_node_removal_hook,
13534 varpool_call_node_removal_hooks, varpool_add_variable_insertion_hook,
13535 varpool_remove_variable_insertion_hook,
13536 varpool_call_variable_insertion_hooks): New functions.
13537 (varpool_remove_node): Use it.
13538
9180150b 135392013-09-08 Paolo Carlini <paolo.carlini@oracle.com>
cf041281 13540
9180150b 13541 PR c++/54941
13542 * diagnostic.c (diagnostic_build_prefix): When s.file is
13543 "<built-in>" don't output line and column numbers.
cf041281 13544
bb251465 135452013-09-06 Jan Hubicka <jh@suse.cz>
13546
13547 * cgraphunit.c (expand_thunk): Get body before touching arguments.
13548 * lto-streamer-out.c: Stream thunks, too.
13549 * lto-streamer-in.c (input_function): Pop cfun here
13550 (lto_read_body): Instead of here.
13551
e32b76f1 135522013-09-06 Caroline Tice <cmtice@google.com>
13553
13554 * doc/install.texi: Add documentation for the --enable-vtable-verify
13555 and the --disable-libvtv configure options.
13556
256b8b10 135572013-09-06 Jeff Law <law@redhat.com>
13558
13559 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
13560 edge implied equivalences into successor phis.
13561
02b1a16c 135622013-09-06 Joern Rennecke <joern.rennecke@embecosm.com>
13563
13564 * resource.c (mark_referenced_resources): Handle COND_EXEC.
13565
135662013-09-06 Claudiu Zissulescu <claziss@synopsys.com>
d8e17376 13567
13568 * resource.c (mark_target_live_regs): Compute resources taking
13569 into account if a call is predicated or not.
13570
8d6cadac 135712013-09-06 Eric Botcazou <ebotcazou@adacore.com>
13572
13573 * toplev.c (output_stack_usage): Be prepared for suffixes created by
13574 the compiler in the function names.
13575
ba3a929e 135762013-09-06 Jan Hubicka <jh@suse.cz>
13577
13578 PR middle-end/58094
13579 * ipa-inline.c (has_caller_p): New function.
13580 (want_inline_function_to_all_callers_p): Use it.
13581 (sum_callers, inline_to_all_callers): Break out from ...
13582 (ipa_inline): ... here.
13583
da52c8b0 135842013-09-06 Jan Hubicka <jh@suse.cz>
13585
8d6cadac 13586 * config/i386/i386.c (ix86_hard_regno_mode_ok): AVX modes are valid
13587 only when AVX is enabled.
da52c8b0 13588
1fdbd57a 135892013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
13590
13591 * config/aarch64/aarch64.md
13592 (*movtf_aarch64): Use neon_<ls>dm_2 as type where v8type
13593 is fpsimd_<load/store>2.
13594 (load_pair<mode>): Likewise.
13595 (store_pair<mode>): Likewise.
13596
4b5d7374 135972013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
13598
13599 * config/arm/types.md (type): Add "mrs" type.
13600 * config/aarch64/aarch64.md
13601 (aarch64_load_tp_hard): Make type "mrs".
13602 * config/arm/arm.md
13603 (load_tp_hard): Make type "mrs".
13604 * config/arm/cortex-a15.md: Update with new attributes.
13605 * config/arm/cortex-a5.md: Update with new attributes.
13606 * config/arm/cortex-a53.md: Update with new attributes.
13607 * config/arm/cortex-a7.md: Update with new attributes.
13608 * config/arm/cortex-a8.md: Update with new attributes.
13609 * config/arm/cortex-a9.md: Update with new attributes.
13610 * config/arm/cortex-m4.md: Update with new attributes.
13611 * config/arm/cortex-r4.md: Update with new attributes.
13612 * config/arm/fa526.md: Update with new attributes.
13613 * config/arm/fa606te.md: Update with new attributes.
13614 * config/arm/fa626te.md: Update with new attributes.
13615 * config/arm/fa726te.md: Update with new attributes.
13616
ad4fc3c0 136172013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
13618
13619 * config/aarch64/aarch64.md
13620 (*movti_aarch64): Use "multiple" for type where v8type is "move2".
13621 (*movtf_aarch64): Likewise.
13622 * config/arm/arm.md
13623 (thumb1_movdi_insn): Use "multiple" for type where more than one
13624 instruction is used for a move.
13625 (*arm32_movhf): Likewise.
13626 (*thumb_movdf_insn): Likewise.
13627
57a7b13e 136282013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
13629
13630 * config/arm/types.md (type): Rename fcpys to fmov.
13631 * config/arm/vfp.md
13632 (*arm_movsi_vfp): Rename type fcpys as fmov.
13633 (*thumb2_movsi_vfp): Likewise
13634 (*movhf_vfp_neon): Likewise
13635 (*movhf_vfp): Likewise
13636 (*movsf_vfp): Likewise
13637 (*thumb2_movsf_vfp): Likewise
13638 (*movsfcc_vfp): Likewise
13639 (*thumb2_movsfcc_vfp): Likewise
13640 * config/aarch64/aarch64-simd.md
13641 (move_lo_quad_<mode>): Replace type mov_reg with fmovs.
13642 * config/aarch64/aarch64.md
13643 (*movsi_aarch64): Replace type mov_reg with fmovs.
13644 (*movdi_aarch64): Likewise
13645 (*movsf_aarch64): Likewise
13646 (*movdf_aarch64): Likewise
13647 * config/arm/arm.c
13648 (cortexa7_older_only): Rename TYPE_FCPYS to TYPE_FMOV.
13649 * config/arm/iwmmxt.md
13650 (*iwmmxt_movsi_insn): Rename type fcpys as fmov.
13651 * config/arm/arm1020e.md: Update with new attributes.
13652 * config/arm/cortex-a15-neon.md: Update with new attributes.
13653 * config/arm/cortex-a5.md: Update with new attributes.
13654 * config/arm/cortex-a53.md: Update with new attributes.
13655 * config/arm/cortex-a7.md: Update with new attributes.
13656 * config/arm/cortex-a8-neon.md: Update with new attributes.
13657 * config/arm/cortex-a9.md: Update with new attributes.
13658 * config/arm/cortex-m4-fpu.md: Update with new attributes.
13659 * config/arm/cortex-r4f.md: Update with new attributes.
13660 * config/arm/marvell-pj4.md: Update with new attributes.
13661 * config/arm/vfp11.md: Update with new attributes.
13662
07f550df 136632013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
13664
13665 * config/aarch64/aarch64.md
13666 (*madd<mode>): Fix type attribute.
13667 (*maddsi_uxtw): Likewise.
13668 (*msub<mode>): Likewise.
13669 (*msubsi_uxtw): Likewise.
13670 (<su_optab>maddsidi4): Likewise.
13671 (<su_optab>msubsidi4): Likewise.
13672
e62582b3 136732013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
13674
13675 * config/arm/types.md: Split fdiv<sd> as fsqrt<sd>, fdiv<sd>.
13676 * config/arm/arm.md (core_cycles): Remove fdiv.
13677 * config/arm/vfp.md:
13678 (*sqrtsf2_vfp): Update for attribute changes.
13679 (*sqrtdf2_vfp): Likewise.
13680 * config/aarch64/aarch64.md:
13681 (sqrt<mode>2): Update for attribute changes.
13682 * config/arm/arm1020e.md: Update with new attributes.
13683 * config/arm/cortex-a15-neon.md: Update with new attributes.
13684 * config/arm/cortex-a5.md: Update with new attributes.
13685 * config/arm/cortex-a53.md: Update with new attributes.
13686 * config/arm/cortex-a7.md: Update with new attributes.
13687 * config/arm/cortex-a8-neon.md: Update with new attributes.
13688 * config/arm/cortex-a9.md: Update with new attributes.
13689 * config/arm/cortex-m4-fpu.md: Update with new attributes.
13690 * config/arm/cortex-r4f.md: Update with new attributes.
13691 * config/arm/marvell-pj4.md: Update with new attributes.
13692 * config/arm/vfp11.md: Update with new attributes.
13693
d453f27a 136942013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
13695
13696 * config/arm/types.md
13697 (type): Split f_cvt as f_cvt, f_cvtf2i, f_cvti2f.
13698 * config/aarch64/aarch64.md
13699 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Update with
13700 new attributes.
13701 (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
13702 (fixuns_trunc<GPF:mode><GPI:mode>2): Likewise.
13703 (float<GPI:mode><GPF:mode>2): Likewise.
13704 * config/arm/vfp.md
13705 (*truncsisf2_vfp): Update with new attributes.
13706 (*truncsidf2_vfp): Likewise.
13707 (fixuns_truncsfsi2): Likewise.
13708 (fixuns_truncdfsi2): Likewise.
13709 (*floatsisf2_vfp): Likewise.
13710 (*floatsidf2_vfp): Likewise.
13711 (floatunssisf2): Likewise.
13712 (floatunssidf2): Likewise.
13713 (*combine_vcvt_f32_<FCVTI32typename>): Likewise.
13714 (*combine_vcvt_f64_<FCVTI32typename>): Likewise.
13715 * config/arm/arm1020e.md: Update with new attributes.
13716 * config/arm/cortex-a15-neon.md: Update with new attributes.
13717 * config/arm/cortex-a5.md: Update with new attributes.
13718 * config/arm/cortex-a53.md: Update with new attributes.
13719 * config/arm/cortex-a7.md: Update with new attributes.
13720 * config/arm/cortex-a8-neon.md: Update with new attributes.
13721 * config/arm/cortex-a9.md: Update with new attributes.
13722 * config/arm/cortex-m4-fpu.md: Update with new attributes.
13723 * config/arm/cortex-r4f.md: Update with new attributes.
13724 * config/arm/marvell-pj4.md: Update with new attributes.
13725 * config/arm/vfp11.md: Update with new attributes.
13726
b672bcb8 137272013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
13728
13729 * config/aarch64/arm_neon.h
13730 (vqtbl<1,2,3,4><q>_s8): Fix control vector parameter type.
13731 (vqtbx<1,2,3,4><q>_s8): Likewise.
13732
1b7da4ac 137332013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
13734
e33c5592 13735 * config/arm/types.md: Add "no_insn", "multiple" and "untyped" types.
13736 * config/arm/arm-fixed.md: Add type attribute to all insn patterns.
1b7da4ac 13737 (add<mode>3): Add type attribute.
13738 (add<mode>3): Likewise.
13739 (usadd<mode>3): Likewise.
13740 (ssadd<mode>3): Likewise.
13741 (sub<mode>3): Likewise.
13742 (sub<mode>3): Likewise.
13743 (ussub<mode>3): Likewise.
13744 (sssub<mode>3): Likewise.
13745 (ssmulsa3): Likewise.
13746 (usmulusa3): Likewise.
13747 (arm_usatsihi): Likewise.
13748 * config/arm/vfp.md
13749 (*movdi_vfp): Add types for all instructions.
13750 (*movdi_vfp_cortexa8): Likewise.
13751 (*movhf_vfp_neon): Likewise.
13752 (*movhf_vfp): Likewise.
13753 (*movdf_vfp): Likewise.
13754 (*thumb2_movdf_vfp): Likewise.
13755 (*thumb2_movdfcc_vfp): Likewise.
13756 * config/arm/arm.md: Add type attribute to all insn patterns.
13757 (*thumb1_adddi3): Add type attribute.
13758 (*arm_adddi3): Likewise.
13759 (*adddi_sesidi_di): Likewise.
13760 (*adddi_zesidi_di): Likewise.
13761 (*thumb1_addsi3): Likewise.
13762 (addsi3_compare0): Likewise.
13763 (*addsi3_compare0_scratch): Likewise.
13764 (*compare_negsi_si): Likewise.
13765 (cmpsi2_addneg): Likewise.
13766 (*addsi3_carryin_<optab>): Likewise.
13767 (*addsi3_carryin_alt2_<optab>): Likewise.
13768 (*addsi3_carryin_clobercc_<optab>): Likewise.
13769 (*subsi3_carryin): Likewise.
13770 (*subsi3_carryin_const): Likewise.
13771 (*subsi3_carryin_compare): Likewise.
13772 (*subsi3_carryin_compare_const): Likewise.
13773 (*arm_subdi3): Likewise.
13774 (*thumb_subdi3): Likewise.
13775 (*subdi_di_zesidi): Likewise.
13776 (*subdi_di_sesidi): Likewise.
13777 (*subdi_zesidi_di): Likewise.
13778 (*subdi_sesidi_di): Likewise.
13779 (*subdi_zesidi_ze): Likewise.
13780 (thumb1_subsi3_insn): Likewise.
13781 (*arm_subsi3_insn): Likewise.
13782 (*anddi3_insn): Likewise.
13783 (*anddi_zesidi_di): Likewise.
13784 (*anddi_sesdi_di): Likewise.
13785 (*ne_zeroextracts): Likewise.
13786 (*ne_zeroextracts): Likewise.
13787 (*ite_ne_zeroextr): Likewise.
13788 (*ite_ne_zeroextr): Likewise.
13789 (*anddi_notdi_di): Likewise.
13790 (*anddi_notzesidi): Likewise.
13791 (*anddi_notsesidi): Likewise.
13792 (andsi_notsi_si): Likewise.
13793 (thumb1_bicsi3): Likewise.
13794 (*iordi3_insn): Likewise.
13795 (*iordi_zesidi_di): Likewise.
13796 (*iordi_sesidi_di): Likewise.
13797 (*thumb1_iorsi3_insn): Likewise.
13798 (*xordi3_insn): Likewise.
13799 (*xordi_zesidi_di): Likewise.
13800 (*xordi_sesidi_di): Likewise.
13801 (*arm_xorsi3): Likewise.
13802 (*andsi_iorsi3_no): Likewise.
13803 (*smax_0): Likewise.
13804 (*smax_m1): Likewise.
13805 (*arm_smax_insn): Likewise.
13806 (*smin_0): Likewise.
13807 (*arm_smin_insn): Likewise.
13808 (*arm_umaxsi3): Likewise.
13809 (*arm_uminsi3): Likewise.
13810 (*minmax_arithsi): Likewise.
13811 (*minmax_arithsi_): Likewise.
13812 (*satsi_<SAT:code>): Likewise.
13813 (arm_ashldi3_1bit): Likewise.
13814 (arm_ashrdi3_1bit): Likewise.
13815 (arm_lshrdi3_1bit): Likewise.
13816 (*arm_negdi2): Likewise.
13817 (*thumb1_negdi2): Likewise.
13818 (*arm_negsi2): Likewise.
13819 (*thumb1_negsi2): Likewise.
13820 (*negdi_extendsid): Likewise.
13821 (*negdi_zero_extend): Likewise.
13822 (*arm_abssi2): Likewise.
13823 (*thumb1_abssi2): Likewise.
13824 (*arm_neg_abssi2): Likewise.
13825 (*thumb1_neg_abss): Likewise.
13826 (one_cmpldi2): Likewise.
13827 (extend<mode>di2): Likewise.
13828 (*compareqi_eq0): Likewise.
13829 (*arm_extendhisi2addsi): Likewise.
13830 (*arm_movdi): Likewise.
13831 (*thumb1_movdi_insn): Likewise.
13832 (*arm_movt): Likewise.
13833 (*thumb1_movsi_insn): Likewise.
13834 (pic_add_dot_plus_four): Likewise.
13835 (pic_add_dot_plus_eight): Likewise.
13836 (tls_load_dot_plus_eight): Likewise.
13837 (*thumb1_movhi_insn): Likewise.
13838 (*thumb1_movsf_insn): Likewise.
13839 (*movdf_soft_insn): Likewise.
13840 (*thumb_movdf_insn): Likewise.
13841 (cbranchsi4_insn): Likewise.
13842 (cbranchsi4_scratch): Likewise.
13843 (*negated_cbranchsi4): Likewise.
13844 (*tbit_cbranch): Likewise.
13845 (*tlobits_cbranch): Likewise.
13846 (*tstsi3_cbranch): Likewise.
13847 (*cbranchne_decr1): Likewise.
13848 (*addsi3_cbranch): Likewise.
13849 (*addsi3_cbranch_scratch): Likewise.
13850 (*arm_cmpdi_insn): Likewise.
13851 (*arm_cmpdi_unsig): Likewise.
13852 (*arm_cmpdi_zero): Likewise.
13853 (*thumb_cmpdi_zero): Likewise.
13854 (*deleted_compare): Likewise.
13855 (*mov_scc): Likewise.
13856 (*mov_negscc): Likewise.
13857 (*mov_notscc): Likewise.
13858 (*cstoresi_eq0_thumb1_insn): Likewise.
13859 (cstoresi_nltu_thumb1): Likewise.
13860 (cstoresi_ltu_thu): Likewise.
13861 (thumb1_addsi3_addgeu): Likewise.
13862 (*arm_jump): Likewise.
13863 (*thumb_jump): Likewise.
13864 (*check_arch2): Likewise.
13865 (arm_casesi_internal): Likewise.
13866 (thumb1_casesi_dispatch): Likewise.
13867 (*arm_indirect_jump): Likewise.
13868 (*thumb1_indirect_jump): Likewise.
13869 (nop): Likewise.
13870 (*and_scc): Likewise.
13871 (*ior_scc): Likewise.
13872 (*compare_scc): Likewise.
13873 (*cond_move): Likewise.
13874 (*cond_arith): Likewise.
13875 (*cond_sub): Likewise.
13876 (*cmp_ite0): Likewise.
13877 (*cmp_ite1): Likewise.
13878 (*cmp_and): Likewise.
13879 (*cmp_ior): Likewise.
13880 (*ior_scc_scc): Likewise.
13881 (*ior_scc_scc_cmp): Likewise.
13882 (*and_scc_scc): Likewise.
13883 (*and_scc_scc_cmp): Likewise.
13884 (*and_scc_scc_nod): Likewise.
13885 (*negscc): Likewise.
13886 (movcond_addsi): Likewise.
13887 (movcond): Likewise.
13888 (*ifcompare_plus_move): Likewise.
13889 (*if_plus_move): Likewise.
13890 (*ifcompare_move_plus): Likewise.
13891 (*if_move_plus): Likewise.
13892 (*ifcompare_arith_arith): Likewise.
13893 (*if_arith_arith): Likewise.
13894 (*ifcompare_arith_move): Likewise.
13895 (*if_arith_move): Likewise.
13896 (*ifcompare_move_arith): Likewise.
13897 (*if_move_arith): Likewise.
13898 (*ifcompare_move_not): Likewise.
13899 (*if_move_not): Likewise.
13900 (*ifcompare_not_move): Likewise.
13901 (*if_not_move): Likewise.
13902 (*ifcompare_shift_move): Likewise.
13903 (*if_shift_move): Likewise.
13904 (*ifcompare_move_shift): Likewise.
13905 (*if_move_shift): Likewise.
13906 (*ifcompare_shift_shift): Likewise.
13907 (*ifcompare_not_arith): Likewise.
13908 (*ifcompare_arith_not): Likewise.
13909 (*if_arith_not): Likewise.
13910 (*ifcompare_neg_move): Likewise.
13911 (*if_neg_move): Likewise.
13912 (*ifcompare_move_neg): Likewise.
13913 (*if_move_neg): Likewise.
13914 (prologue_thumb1_interwork): Likewise.
13915 (*cond_move_not): Likewise.
13916 (*sign_extract_onebit): Likewise.
13917 (*not_signextract_onebit): Likewise.
13918 (stack_tie): Likewise.
13919 (align_4): Likewise.
13920 (align_8): Likewise.
13921 (consttable_end): Likewise.
13922 (consttable_1): Likewise.
13923 (consttable_2): Likewise.
13924 (consttable_4): Likewise.
13925 (consttable_8): Likewise.
13926 (consttable_16): Likewise.
13927 (*thumb1_tablejump): Likewise.
13928 (prefetch): Likewise.
13929 (force_register_use): Likewise.
13930 (thumb_eh_return): Likewise.
13931 (load_tp_hard): Likewise.
13932 (load_tp_soft): Likewise.
13933 (tlscall): Likewise.
13934 (*arm_movtas_ze): Likewise.
13935 (*arm_rev): Likewise.
13936 (*arm_revsh): Likewise.
13937 (*arm_rev16): Likewise.
13938 * config/arm/thumb2.md
13939 (*thumb2_smaxsi3): Likewise.
13940 (*thumb2_sminsi3): Likewise.
13941 (*thumb32_umaxsi3): Likewise.
13942 (*thumb2_uminsi3): Likewise.
13943 (*thumb2_negdi2): Likewise.
13944 (*thumb2_abssi2): Likewise.
13945 (*thumb2_neg_abss): Likewise.
13946 (*thumb2_movsi_insn): Likewise.
13947 (tls_load_dot_plus_four): Likewise.
13948 (*thumb2_movhi_insn): Likewise.
13949 (*thumb2_mov_scc): Likewise.
13950 (*thumb2_mov_negs): Likewise.
13951 (*thumb2_mov_negs): Likewise.
13952 (*thumb2_mov_nots): Likewise.
13953 (*thumb2_mov_nots): Likewise.
13954 (*thumb2_movsicc_): Likewise.
13955 (*thumb2_movsfcc_soft_insn): Likewise.
13956 (*thumb2_indirect_jump): Likewise.
13957 (*thumb2_and_scc): Likewise.
13958 (*thumb2_ior_scc): Likewise.
13959 (*thumb2_ior_scc_strict_it): Likewise.
13960 (*thumb2_cond_move): Likewise.
13961 (*thumb2_cond_arith): Likewise.
13962 (*thumb2_cond_ari): Likewise.
13963 (*thumb2_cond_sub): Likewise.
13964 (*thumb2_negscc): Likewise.
13965 (*thumb2_movcond): Likewise.
13966 (thumb2_casesi_internal): Likewise.
13967 (thumb2_casesi_internal_pic): Likewise.
13968 (*thumb2_alusi3_short): Likewise.
13969 (*thumb2_mov<mode>_shortim): Likewise.
13970 (*thumb2_addsi_short): Likewise.
13971 (*thumb2_subsi_short): Likewise.
13972 (thumb2_addsi3_compare0): Likewise.
13973 (*thumb2_cbz): Likewise.
13974 (*thumb2_cbnz): Likewise.
13975 (*thumb2_one_cmplsi2_short): Likewise.
13976 (*thumb2_negsi2_short): Likewise.
13977 (*orsi_notsi_si): Likewise.
13978 * config/arm/arm1020e.md: Update with new attributes.
13979 * config/arm/arm1026ejs.md: Update with new attributes.
13980 * config/arm/arm1136jfs.md: Update with new attributes.
13981 * config/arm/arm926ejs.md: Update with new attributes.
13982 * config/arm/cortex-a15.md: Update with new attributes.
13983 * config/arm/cortex-a5.md: Update with new attributes.
13984 * config/arm/cortex-a53.md: Update with new attributes.
13985 * config/arm/cortex-a7.md: Update with new attributes.
13986 * config/arm/cortex-a8.md: Update with new attributes.
13987 * config/arm/cortex-a9.md: Update with new attributes.
13988 * config/arm/cortex-m4.md: Update with new attributes.
13989 * config/arm/cortex-r4.md: Update with new attributes.
13990 * config/arm/fa526.md: Update with new attributes.
13991 * config/arm/fa606te.md: Update with new attributes.
13992 * config/arm/fa626te.md: Update with new attributes.
13993 * config/arm/fa726te.md: Update with new attributes.
13994
9d37257a 139952013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
13996
13997 * config/aarch64/aarch64-simd.md
13998 (aarch64_sqdml<SBINQOPS:as>l_n<mode>_internal): Use
13999 <vwx> iterator to ensure correct register choice.
14000 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise.
14001 (aarch64_sqdmull_n<mode>): Likewise.
14002 (aarch64_sqdmull2_n<mode>_internal): Likewise.
14003 * config/aarch64/arm_neon.h
14004 (vml<as><q>_lane<q>_<su>16): Use 'x' constraint for element vector.
14005 (vml<as><q>_n_<su>16): Likewise.
14006 (vml<as>l_high_lane<q>_<su>16): Likewise.
14007 (vml<as>l_high_n_<su>16): Likewise.
14008 (vml<as>l_lane<q>_<su>16): Likewise.
14009 (vml<as>l_n_<su>16): Likewise.
14010 (vmul<q>_lane<q>_<su>16): Likewise.
14011 (vmul<q>_n_<su>16): Likewise.
14012 (vmull_lane<q>_<su>16): Likewise.
14013 (vmull_n_<su>16): Likewise.
14014 (vmull_high_lane<q>_<su>16): Likewise.
14015 (vmull_high_n_<su>16): Likewise.
14016 (vqrdmulh<q>_n_s16): Likewise.
14017
b8433293 140182013-09-06 Tejas Belagod <tejas.belagod@arm.com>
14019
14020 * config/aarch64/arm_neon.h: Fix all vdup<bhsd_lane<q> intrinsics to
14021 have the correct lane parameter.
14022
20f31620 140232013-09-06 Richard Biener <rguenther@suse.de>
14024
14025 * cfganal.c (control_dependences::~control_dependences):
14026 Properly free all of the vector.
14027
9ab33ebe 140282013-09-06 Kirill Yukhin <kirill.yukhin@intel.com>
14029
14030 PR target/58269
14031 * config/i386/i386.c (ix86_conditional_register_usage):
14032 Proper initialize extended SSE registers.
14033
21042271 140342013-09-06 Jan Hubicka <jh@suse.cz>
14035
14036 PR tree-optimization/58311
14037 * ipa-devirt.c (gate_ipa_devirt): Only execute when optimizing.
14038
140392013-09-06 Jan Hubicka <jh@suse.cz>
14040
14041 * Makefile.in (tree-sra.o): Update dependencies.
14042 * tree-sra.c: Include ipa-utils.h
14043 (scan_function): Use recursive_call_p.
14044 (has_caller_p): New function.
14045 (cgraph_for_node_and_aliases): Count also callers of aliases.
14046
e9de52cc 140472013-09-06 Jan Hubicka <jh@suse.cz>
14048
14049 PR middle-end/58094
14050 * cgraph.h (symtab_semantically_equivalent_p): Declare.
14051 * tree-tailcall.c: Include ipa-utils.h.
14052 (find_tail_calls): Use it.
14053 * ipa-pure-const.c (check_call): Likewise.
14054 * ipa-utils.c (recursive_call_p): New function.
14055 * ipa-utils.h (recursive_call_p): Dclare.
14056 * symtab.c (symtab_nonoverwritable_alias): Fix formatting.
14057 (symtab_semantically_equivalent_p): New function.
14058 * Makefile.in (tree-tailcall.o): Update dependencies.
14059
ea03e543 140602013-09-06 Eric Botcazou <ebotcazou@adacore.com>
14061
14062 * ipa-split.c (split_function): Set DECL_NO_INLINE_WARNING_P on the
14063 non-inlinable part.
14064
94956000 140652013-09-06 Richard Biener <rguenther@suse.de>
14066
14067 * lto-streamer.h (lto_global_var_decls): Remove.
14068 * Makefile.in (OBJS): Remove lto-symtab.o.
14069 (lto-symtab.o): Remove.
14070 (GTFILES): Remove lto-symtab.c
14071 * lto-symtab.c: Move to lto/
14072
b592f6d4 140732013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14074
14075 * config/s390/s390.md (UNSPEC_FPINT_FLOOR, UNSPEC_FPINT_BTRUNC)
14076 (UNSPEC_FPINT_ROUND, UNSPEC_FPINT_CEIL, UNSPEC_FPINT_NEARBYINT)
14077 (UNSPEC_FPINT_RINT): New constant definitions.
14078 (FPINT, fpint_name, fpint_roundingmode): New integer iterator
14079 definition with 2 attributes.
14080 ("<FPINT:fpint_name><BFP:mode>2", "rint<BFP:mode>2")
14081 ("<FPINT:fpint_name><DFP:mode>2", "rint<DFP:mode>2"): New pattern
14082 definitions.
14083
140842013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
14085
e33c5592 14086 * config/s390/s390.md: Add "bcr_flush" value to mnemonic attribute.
b592f6d4 14087 ("mem_thread_fence_1"): Use bcr 14,0 for z196 and later.
14088 Set the mnemonic attribute to "bcr_flush". Set the "z196prop"
14089 attribute to "z196_alone".
14090 * config/s390/2827.md: Add "bcr_flush" to "ooo_groupalone" and
14091 "zEC12_simple".
14092
7ee4e8e8 140932013-09-06 Richard Biener <rguenther@suse.de>
14094
14095 * basic-block.h (class control_dependences): New.
14096 * tree-ssa-dce.c (control_dependence_map): Remove.
14097 (cd): New global.
14098 (EXECUTE_IF_CONTROL_DEPENDENT): Remove.
14099 (set_control_dependence_map_bit, clear_control_dependence_bitmap,
14100 find_pdom, find_control_dependence, find_all_control_dependences):
14101 Move to cfganal.c.
e33c5592 14102 (mark_control_dependent_edges_necessary,
14103 find_obviously_necessary_stmts, propagate_necessity, tree_dce_init,
14104 tree_dce_done, perform_tree_ssa_dce): Adjust.
7ee4e8e8 14105 * cfganal.c (set_control_dependence_map_bit,
14106 clear_control_dependence_bitmap, find_pdom, find_control_dependence,
14107 find_all_control_dependences): Move from tree-ssa-dce.c and
14108 implement as methods of control_dependences class.
14109 (control_dependences::control_dependences): New.
14110 (control_dependences::~control_dependences): Likewise.
14111 (control_dependences::get_edges_dependent_on): Likewise.
14112 (control_dependences::get_edge): Likewise.
14113
e882c7ab 141142013-09-04 Jan Hubicka <jh@suse.cz>
14115
14116 * tree.c (types_same_for_odr): Drop overactive check.
14117 * ipa-devirt.c (hash_type_name): Likewise.
14118
98e7a67f 141192013-09-04 Jan Hubicka <jh@suse.cz>
14120
14121 * cgraphunit.c (walk_polymorphic_call_targets): Break out from ...
14122 (analyze_functions): ... here.
14123
d5b66e83 141242013-09-04 Jan Hubicka <jh@suse.cz>
14125
14126 PR middle-end/58201
14127 * cgraphunit.c (analyze_functions): Clear AUX fields
14128 after processing; initialize assembler name has.
14129
afdb7338 141302013-09-05 Jeff Law <law@redhat.com>
14131
14132 * tree-ssa-threadedge.c (thread_around_empty_blocks): Renamed
14133 from thread_around_empty_block. Record threading path into PATH.
14134 Recurse if threading through the initial block is successful.
14135 (thread_across_edge): Corresponding changes to slightly simplify.
14136
b5f423ee 141372013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
14138
14139 * config/aarch64/aarch64.md
14140 (type): Remove frecpe, frecps, frecpx.
14141 (aarch64_frecp<FRECP:frecp_suffix><mode>): Move to aarch64-simd.md,
14142 fix to be a TARGET_SIMD instruction.
14143 (aarch64_frecps): Remove.
14144 * config/aarch64/aarch64-simd.md
14145 (aarch64_frecp<FRECP:frecp_suffix><mode>): New, moved from aarch64.md
14146 (aarch64_frecps<mode>): Handle all float/vector of float modes.
14147
d82e788e 141482013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
14149 Sofiane Naci <sofiane.naci@arm.com>
14150
e33c5592 14151 * config/arm/types.md (define_attr "type"): Expand "arlo_imm"
d82e788e 14152 into "adr", "alu_imm", "alus_imm", "logic_imm", "logics_imm".
e33c5592 14153 Expand "arlo_reg" into "adc_reg", "adc_imm", "adcs_reg", "adcs_imm",
14154 "alu_ext", "alu_reg", "alus_ext", "alus_reg", "bfm", "csel",
14155 "logic_reg", "logics_reg", "rev". Expand "arlo_shift" into
14156 "alu_shift_imm", "alus_shift_imm", "logic_shift_imm",
14157 "logics_shift_imm". Expand "arlo_shift_reg" into "alu_shift_reg",
14158 "alus_shift_reg", "logic_shift_reg", "logics_shift_reg". Expand "clz"
14159 into "clz, "rbit". Rename "shift" to "shift_imm".
d82e788e 14160 * config/arm/arm.md (define_attr "core_cycles"): Update for attribute
e33c5592 14161 changes. Update for attribute changes all occurrences of arlo_* and
d82e788e 14162 shift* types.
14163 * config/arm/arm-fixed.md: Update for attribute changes
14164 all occurrences of arlo_* types.
14165 * config/arm/thumb2.md: Update for attribute changes all occurrences
14166 of arlo_* types.
14167 * config/arm/arm.c (xscale_sched_adjust_cost): (rtx insn, rtx
14168 (cortexa7_older_only): Likewise.
14169 (cortexa7_younger): Likewise.
14170 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
14171 (1020alu_shift_op): Likewise.
14172 (1020alu_shift_reg_op): Likewise.
14173 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
14174 (alu_shift_op): Likewise.
14175 (alu_shift_reg_op): Likewise.
e33c5592 14176 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
d82e788e 14177 (11_alu_shift_op): Likewise.
14178 (11_alu_shift_reg_op): Likewise.
14179 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
14180 (9_alu_shift_reg_op): Likewise.
14181 * config/arm/cortex-a15.md (cortex_a15_alu): Update for
14182 attribute changes.
14183 (cortex_a15_alu_shift): Likewise.
14184 (cortex_a15_alu_shift_reg): Likewise.
14185 * config/arm/cortex-a5.md (cortex_a5_alu): Update for
14186 attribute changes.
14187 (cortex_a5_alu_shift): Likewise.
e33c5592 14188 * config/arm/cortex-a53.md (cortex_a53_alu): Update for
14189 attribute changes.
d82e788e 14190 (cortex_a53_alu_shift): Likewise.
e33c5592 14191 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for
14192 attribute changes.
d82e788e 14193 (cortex_a7_alu_reg): Likewise.
14194 (cortex_a7_alu_shift): Likewise.
e33c5592 14195 * config/arm/cortex-a8.md (cortex_a8_alu): Update for
14196 attribute changes.
d82e788e 14197 (cortex_a8_alu_shift): Likewise.
14198 (cortex_a8_alu_shift_reg): Likewise.
e33c5592 14199 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
d82e788e 14200 (cortex_a9_dp_shift): Likewise.
e33c5592 14201 * config/arm/cortex-m4.md (cortex_m4_alu): Update for
14202 attribute changes.
d82e788e 14203 * config/arm/cortex-r4.md
14204 (cortex_r4_alu): Update for attribute changes.
14205 (cortex_r4_mov): Likewise.
14206 (cortex_r4_alu_shift_reg): Likewise.
e33c5592 14207 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
d82e788e 14208 (526_alu_shift_op): Likewise.
e33c5592 14209 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
14210 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
d82e788e 14211 (626te_alu_shift_op): Likewise.
e33c5592 14212 * config/arm/fa726te.md (726te_alu_op): Update for attribute changes.
d82e788e 14213 (726te_alu_shift_op): Likewise.
14214 (726te_alu_shift_reg_op): Likewise.
14215 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
14216 (mp626_alu_shift_op): Likewise.
14217 * config/arm/marvell-pj4.md (pj4_alu): Update for attribute changes.
14218 (pj4_alu_conds): Likewise.
14219 (pj4_shift): Likewise.
14220 (pj4_shift_conds): Likewise.
14221 (pj4_alu_shift): Likewise.
14222 (pj4_alu_shift_conds): Likewise.
14223 * config/aarch64/aarch64.md: Update for attribute change
14224 all occurrences of arlo_* and shift* types.
14225
65d190ac 142262013-09-05 Mike Stump <mikestump@comcast.net>
14227
14228 * tree.h: Move documentation for tree_function_decl to tree-core.h
14229 with the declaration.
14230
275035b5 142312013-09-05 Peter Bergner <bergner@vnet.ibm.com>
14232
14233 PR target/58139
14234 * reginfo.c (choose_hard_reg_mode): Scan through all mode classes
14235 looking for widest mode.
14236
3aa6cfd7 142372013-09-05 Eric Botcazou <ebotcazou@adacore.com>
14238
14239 * config.gcc (*-*-vxworks*): Do not override an existing extra_objs.
14240
99f81ffb 142412013-09-05 Richard Biener <rguenther@suse.de>
14242
14243 PR tree-optimization/58137
14244 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
14245 Do not create vectors of pointers.
14246 * tree-vect-loop.c (get_initial_def_for_induction): Use proper
14247 types for the components of the vector initializer.
14248 * tree-cfg.c (verify_gimple_assign_binary): Remove special-casing
14249 allowing pointer vectors with PLUS_EXPR/MINUS_EXPR.
14250
061168c9 142512013-09-05 Martin Jambor <mjambor@suse.cz>
14252
14253 * ipa-prop.c (remove_described_reference): Accept missing references,
14254 return false if that hppens, otherwise return true.
14255 (cgraph_node_for_jfunc): New function.
14256 (try_decrement_rdesc_refcount): Likewise.
14257 (try_make_edge_direct_simple_call): Use them.
14258 (ipa_edge_removal_hook): Remove references from rdescs.
14259 (ipa_edge_duplication_hook): Clone rdescs and their references
14260 when the new edge has the same caller as the old one.
14261 * cgraph.c (cgraph_resolve_speculation): Remove speculative
14262 reference before removing any edges.
14263
702eeae1 142642013-09-05 Richard Earnshaw <rearnsha@arm.com>
14265
14266 * arm.c (thumb2_emit_strd_push): Rewrite to use pre-decrement on
14267 initial store.
14268 * thumb2.md (thumb2_storewb_parisi): New pattern.
14269
75c6c055 142702013-09-05 Yufeng Zhang <yufeng.zhang@arm.com>
14271
14272 * config/aarch64/aarch64-option-extensions.def: Add
14273 AARCH64_OPT_EXTENSION of 'crc'.
14274 * config/aarch64/aarch64.h (AARCH64_FL_CRC): New define.
14275 (AARCH64_ISA_CRC): Ditto.
14276 * doc/invoke.texi (-march and -mcpu feature modifiers): Add
14277 description of the CRC extension.
14278
981702f2 142792013-09-05 Alexander Ivchenko <alexander.ivchenko@intel.com>
14280
14281 * config/rs6000/linux64.h: Define OPTION_BIONIC and OPTION_UCLIBC.
14282 * config/rs6000/linux.h: Ditto.
14283 * alpha/linux.h: Ditto.
14284 * config/bfin/uclinux.h: Define TARGET_LIBC_HAS_FUNCTION as
14285 no_c99_libc_has_function.
14286 * config/c6x/uclinux-elf.h: Ditto.
14287 * config/lm32/uclinux-elf.h: Ditto.
14288 * config/m68k/uclinux.h: Ditto.
14289 * config/moxie/uclinux.h: Ditto.
14290 * config.gcc (bfin*-linux-uclibc*): Add t-linux-android to tmake_file.
14291 (crisv32-*-linux*, cris-*-linux*): Ditto.
14292 * config/bfin/bfin.c: Include "tm_p.h".
14293
ea902f25 142942013-09-05 Richard Biener <rguenther@suse.de>
14295
14296 * tree-vect-loop.c (vect_analyze_loop_operations): Properly
14297 check for a definition without a basic-block.
14298
52432540 142992013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
14300 Sofiane Naci <sofiane.naci@arm.com>
14301
14302 * config/aarch64/aarch64.md
14303 (*movti_aarch64): Rename r_2_f and f_2_r.
14304 (*movsf_aarch64): Likewise.
14305 (*movdf_aarch64): Likewise.
14306 (*movtf_aarch64): Likewise.
14307 (aarch64_movdi_<mode>low): Likewise.
14308 (aarch64_movdi_<mode>high): Likewise.
14309 (aarch64_mov<mode>high_di): Likewise.
14310 (aarch64_mov<mode>low_di): Likewise.
14311 (aarch64_movtilow_tilow): Likewise.
14312 * config/arm/arm.md (attribute "neon_type"): Delete. Move attribute
14313 values to config/arm/types.md
14314 (attribute "conds"): Update for attribute change.
14315 (anddi3_insn): Likewise.
14316 (iordi3_insn): Likewise.
14317 (xordi3_insn): Likewise.
14318 (one_cmpldi2): Likewise.
14319 * config/arm/types.md (type): Add Neon types.
14320 * config/arm/neon.md (neon_mov<mode>): Remove "neon_type" attribute,
14321 use "type" attribute.
14322 (movmisalign<mode>_neon_store): Likewise.
14323 (movmisalign<mode>_neon_load): Likewise.
14324 (vec_set<mode>_internal): Likewise.
14325 (vec_setv2di_internal): Likewise.
14326 (vec_extract<mode>): Likewise.
14327 (vec_extractv2di): Likewise.
14328 (add<mode>3_neon): Likewise.
14329 (adddi3_neon): Likewise.
14330 (sub<mode>3_neon): Likewise.
14331 (subdi3_neon): Likewise.
14332 (mul<mode>3_neon): Likewise.
14333 (mul<mode>3add<mode>_neon): Likewise.
14334 (mul<mode>3neg<mode>add<mode>_neon): Likewise.
14335 (fma<VCVTF:mode>4)): Likewise.
14336 (fma<VCVTF:mode>4_intrinsic): Likewise.
14337 (fmsub<VCVTF:mode>4)): Likewise.
14338 (fmsub<VCVTF:mode>4_intrinsic): Likewise.
14339 (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise.
14340 (ior<mode>3): Likewise.
14341 (and<mode>3): Likewise.
14342 (anddi3_neon): Likewise.
14343 (orn<mode>3_neon): Likewise.
14344 (orndi3_neon): Likewise.
14345 (bic<mode>3_neon): Likewise.
14346 (bicdi3_neon): Likewise.
14347 (xor<mode>3): Likewise.
14348 (one_cmpl<mode>2): Likewise.
14349 (abs<mode>2): Likewise.
14350 (neg<mode>2): Likewise.
14351 (umin<mode>3_neon): Likewise.
14352 (umax<mode>3_neon): Likewise.
14353 (smin<mode>3_neon): Likewise.
14354 (smax<mode>3_neon): Likewise.
14355 (vashl<mode>3): Likewise.
14356 (vashr<mode>3_imm): Likewise.
14357 (vlshr<mode>3_imm): Likewise.
14358 (ashl<mode>3_signed): Likewise.
14359 (ashl<mode>3_unsigned): Likewise.
14360 (neon_load_count): Likewise.
14361 (ashldi3_neon_noclobber): Likewise.
14362 (signed_shift_di3_neon): Likewise.
14363 (unsigned_shift_di3_neon): Likewise.
14364 (ashrdi3_neon_imm_noclobber): Likewise.
14365 (lshrdi3_neon_imm_noclobber): Likewise.
14366 (widen_ssum<mode>3): Likewise.
14367 (widen_usum<mode>3): Likewise.
14368 (quad_halves_<code>v4si): Likewise.
14369 (quad_halves_<code>v4sf): Likewise.
14370 (quad_halves_<code>v8hi): Likewise.
14371 (quad_halves_<code>v16qi): Likewise.
14372 (reduc_splus_v2di): Likewise.
14373 (neon_vpadd_internal<mode>): Likewise.
14374 (neon_vpsmin<mode>): Likewise.
14375 (neon_vpsmax<mode>): Likewise.
14376 (neon_vpumin<mode>): Likewise.
14377 (neon_vpumax<mode>): Likewise.
14378 (ss_add<mode>_neon): Likewise.
14379 (us_add<mode>_neon): Likewise.
14380 (ss_sub<mode>_neon): Likewise.
14381 (us_sub<mode>_neon): Likewise.
14382 (neon_vadd<mode>_unspec): Likewise.
14383 (neon_vaddl<mode>): Likewise.
14384 (neon_vaddw<mode>): Likewise.
14385 (neon_vhadd<mode>): Likewise.
14386 (neon_vqadd<mode>): Likewise.
14387 (neon_vaddhn<mode>): Likewise.
14388 (neon_vmul<mode>): Likewise.
14389 (neon_vmla<mode>): Likewise.
14390 (neon_vmlal<mode>): Likewise.
14391 (neon_vmls<mode>): Likewise.
14392 (neon_vmlsl<mode>): Likewise.
14393 (neon_vqdmulh<mode>): Likewise.
14394 (neon_vqdmlal<mode>): Likewise.
14395 (neon_vqdmlsl<mode>): Likewise.
14396 (neon_vmull<mode>): Likewise.
14397 (neon_vqdmull<mode>): Likewise.
14398 (neon_vsub<mode>_unspec): Likewise.
14399 (neon_vsubl<mode>): Likewise.
14400 (neon_vsubw<mode>): Likewise.
14401 (neon_vqsub<mode>): Likewise.
14402 (neon_vhsub<mode>): Likewise.
14403 (neon_vsubhn<mode>): Likewise.
14404 (neon_vceq<mode>): Likewise.
14405 (neon_vcge<mode>): Likewise.
14406 (neon_vcgeu<mode>): Likewise.
14407 (neon_vcgt<mode>): Likewise.
14408 (neon_vcgtu<mode>): Likewise.
14409 (neon_vcle<mode>): Likewise.
14410 (neon_vclt<mode>): Likewise.
14411 (neon_vcage<mode>): Likewise.
14412 (neon_vcagt<mode>): Likewise.
14413 (neon_vtst<mode>): Likewise.
14414 (neon_vabd<mode>): Likewise.
14415 (neon_vabdl<mode>): Likewise.
14416 (neon_vaba<mode>): Likewise.
14417 (neon_vabal<mode>): Likewise.
14418 (neon_vmax<mode>): Likewise.
14419 (neon_vmin<mode>): Likewise.
14420 (neon_vpaddl<mode>): Likewise.
14421 (neon_vpadal<mode>): Likewise.
14422 (neon_vpmax<mode>): Likewise.
14423 (neon_vpmin<mode>): Likewise.
14424 (neon_vrecps<mode>): Likewise.
14425 (neon_vrsqrts<mode>): Likewise.
14426 (neon_vqabs<mode>): Likewise.
14427 (neon_vqneg<mode>): Likewise.
14428 (neon_vcls<mode>): Likewise.
14429 (clz<mode>2): Likewise.
14430 (popcount<mode>2): Likewise.
14431 (neon_vrecpe): Likewise.
14432 (neon_vrsqrte): Likewise.
14433 (neon_vget_lane<mode>_sext_internal): Likewise.
14434 (neon_vget_lane<mode>_zext_internal): Likewise.
14435 (neon_vdup_n<mode>): Likewise.
14436 (neon_vdup_nv2di): Likewise.
14437 (neon_vdpu_lane<mode>_internal): Likewise.
14438 (neon_vswp<mode>): Likewise.
14439 (float<mode><V_cvtto>2): Likewise.
14440 (floatuns<mode><V_cvtto>2): Likewise.
14441 (fix_trunc<mode><V_cvtto>)2): Likewise
14442 (fixuns_trunc<mode><V_cvtto)2): Likewise.
14443 (neon_vcvt<mode>): Likewise.
14444 (neon_vcvtv4sfv4hf): Likewise.
14445 (neon_vcvtv4hfv4sf): Likewise.
14446 (neon_vcvt_n<mode>): Likewise.
14447 (neon_vmovn<mode>): Likewise.
14448 (neon_vqmovn<mode>): Likewise.
14449 (neon_vqmovun<mode>): Likewise.
14450 (neon_vmovl<mode>): Likewise.
14451 (neon_vmul_lane<mode>): Likewise.
14452 (neon_vmull_lane<mode>): Likewise.
14453 (neon_vqdmull_lane<mode>): Likewise.
14454 (neon_vqdmulh_lane<mode>): Likewise.
14455 (neon_vmla_lane<mode>): Likewise.
14456 (neon_vmlal_lane<mode>): Likewise.
14457 (neon_vqdmlal_lane<mode>): Likewise.
14458 (neon_vmls_lane<mode>): Likewise.
14459 (neon_vmlsl_lane<mode>): Likewise.
14460 (neon_vqdmlsl_lane<mode>): Likewise.
14461 (neon_vext<mode>): Likewise.
14462 (neon_vrev64<mode>): Likewise.
14463 (neon_vrev32<mode>): Likewise.
14464 (neon_vrev16<mode>): Likewise.
14465 (neon_vbsl<mode>_internal): Likewise.
14466 (neon_vshl<mode>): Likewise.
14467 (neon_vqshl<mode>): Likewise.
14468 (neon_vshr_n<mode>): Likewise.
14469 (neon_vshrn_n<mode>): Likewise.
14470 (neon_vqshrn_n<mode>): Likewise.
14471 (neon_vqshrun_n<mode>): Likewise.
14472 (neon_vshl_n<mode>): Likewise.
14473 (neon_vqshl_n<mode>): Likewise.
14474 (neon_vqshlu_n<mode>): Likewise.
14475 (neon_vshll_n<mode>): Likewise.
14476 (neon_vsra_n<mode>): Likewise.
14477 (neon_vsri_n<mode>): Likewise.
14478 (neon_vsli_n<mode>): Likewise.
14479 (neon_vtbl1v8qi): Likewise.
14480 (neon_vtbl2v8qi): Likewise.
14481 (neon_vtbl3v8qi): Likewise.
14482 (neon_vtbl4v8qi): Likewise.
14483 (neon_vtbx1v8qi): Likewise.
14484 (neon_vtbx2v8qi): Likewise.
14485 (neon_vtbx3v8qi): Likewise.
14486 (neon_vtbx4v8qi): Likewise.
14487 (neon_vtrn<mode>_internal): Likewise.
14488 (neon_vzip<mode>_internal): Likewise.
14489 (neon_vuzp<mode>_internal): Likewise.
14490 (neon_vld1<mode>): Likewise.
14491 (neon_vld1_lane<mode>): Likewise.
14492 (neon_vld1_dup<mode>): Likewise.
14493 (neon_vld1_dupv2di): Likewise.
14494 (neon_vst1<mode>): Likewise.
14495 (neon_vst1_lane<mode>): Likewise.
14496 (neon_vld2<mode>): Likewise.
14497 (neon_vld2_lane<mode>): Likewise.
14498 (neon_vld2_dup<mode>): Likewise.
14499 (neon_vst2<mode>): Likewise.
14500 (neon_vst2_lane<mode>): Likewise.
14501 (neon_vld3<mode>): Likewise.
14502 (neon_vld3qa<mode>): Likewise.
14503 (neon_vld3qb<mode>): Likewise.
14504 (neon_vld3_lane<mode>): Likewise.
14505 (neon_vld3_dup<mode>): Likewise.
14506 (neon_vst3<mode>): Likewise.
14507 (neon_vst3qa<mode>): Likewise.
14508 (neon_vst3qb<mode>): Likewise.
14509 (neon_vst3_lane<mode>): Likewise.
14510 (neon_vld4<mode>): Likewise.
14511 (neon_vld4qa<mode>): Likewise.
14512 (neon_vld4qb<mode>): Likewise.
14513 (neon_vld4_lane<mode>): Likewise.
14514 (neon_vld4_dup<mode>): Likewise.
14515 (neon_vst4<mode>): Likewise.
14516 (neon_vst4qa<mode>): Likewise.
14517 (neon_vst4qb<mode>): Likewise.
14518 (neon_vst4_lane<mode>): Likewise.
14519 (neon_vec_unpack<US>_lo_<mode>): Likewise.
14520 (neon_vec_unpack<US>_hi_<mode>): Likewise.
14521 (neon_vec_<US>mult_lo_<mode>): Likewise.
14522 (neon_vec_<US>mult_hi_<mode>): Likewise.
14523 (neon_vec_<US>shiftl_<mode>): Likewise.
14524 (neon_unpack<US>_<mode>): Likewise.
14525 (neon_vec_<US>mult_<mode>): Likewise.
14526 (vec_pack_trunc_<mode>): Likewise.
14527 (neon_vec_pack_trunk_<mode>): Likewise.
14528 (neon_vabd<mode>_2): Likewise.
14529 (neon_vabd<mode>_3): Likewise.
14530 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
14531 (thumb2_movsi_vfp): Likewise.
14532 (movdi_vfp): Likewise.
14533 (movdi_vfp_cortexa8): Likewise.
14534 (movhf_vfp_neon): Likewise.
14535 (movhf_vfp): Likewiwse.
14536 (movsf_vfp): Likewiwse.
14537 (thumb2_movsf_vfp): Likewiwse.
14538 (movdf_vfp): Likewise.
14539 (thumb2_movdf_vfp): Likewise.
14540 (movsfcc_vfp): Likewise.
14541 (thumb2_movsfcc_vfp): Likewise.
14542 (movdfcc_vfp): Likewise.
14543 (thumb2_movdfcc_vfp): Likewise.
14544 * config/arm/arm.c (cortexa7_older_only): Update for attribute change.
14545 * config/arm/arm1020e.md (v10_c2v): Update for attribute change.
14546 (v10_v2c): Likewise.
14547 * config/arm/cortex-a15-neon.md (cortex_a15_neon_int_1): Update for
14548 attribute change.
14549 (cortex_a15_neon_int_2): Likewise.
14550 (cortex_a15_neon_int_3): Likewise.
14551 (cortex_a15_neon_int_4): Likewise.
14552 (cortex_a15_neon_int_5): Likewise.
14553 (cortex_a15_neon_vqneg_vqabs): Likewise.
14554 (cortex_a15_neon_vmov): Likewise.
14555 (cortex_a15_neon_vaba): Likewise.
14556 (cortex_a15_neon_vaba_qqq): Likewise.
14557 (cortex_a15_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
14558 (cortex_a15_neon_mul_qqq_8_16_32_ddd_32): Likewise.
14559 (cortex_a15_neon_mul_qdd_64_32_long_qqd_16_ddd_32_\
14560 scalar_64_32_long_scalar): Likewise.
14561 (cortex_a15_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
14562 (cortex_a15_neon_mla_qqq_8_16): Likewise.
14563 (cortex_a15_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
14564 lotype_qdd_64_32_long): Likewise.
14565 (cortex_a15_neon_mla_qqq_32_qqd_32_scalar): Likewise.
14566 (cortex_a15_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
14567 (cortex_a15_neon_mul_qqd_32_scalar): Likewise.
14568 (cortex_a15_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
14569 (cortex_a15_neon_shift_1): Likewise.
14570 (cortex_a15_neon_shift_2): Likewise.
14571 (cortex_a15_neon_shift_3): Likewise.
14572 (cortex_a15_neon_vshl_ddd): Likewise.
14573 (cortex_a15_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
14574 (cortex_a15_neon_vsra_vrsra): Likewise.
14575 (cortex_a15_neon_fp_vadd_ddd_vabs_dd): Likewise.
14576 (cortex_a15_neon_fp_vadd_qqq_vabs_qq): Likewise.
14577 (cortex_a15_neon_fp_vmul_ddd): Likewise.
14578 (cortex_a15_neon_fp_vmul_qqd): Likewise.
14579 (cortex_a15_neon_fp_vmla_ddd): Likewise.
14580 (cortex_a15_neon_fp_vmla_qqq): Likewise.
14581 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
14582 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
14583 (cortex_a15_neon_fp_vrecps_vrsqrts_ddd): Likewise.
14584 (cortex_a15_neon_fp_vrecps_vrsqrts_qqq): Likewise.
14585 (cortex_a15_neon_bp_simple): Likewise.
14586 (cortex_a15_neon_bp_2cycle): Likewise.
14587 (cortex_a15_neon_bp_3cycle): Likewise.
14588 (cortex_a15_neon_vld1_1_2_regs): Likewise.
14589 (cortex_a15_neon_vld1_3_4_regs): Likewise.
14590 (cortex_a15_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
14591 (cortex_a15_neon_vld2_4_regs): Likewise.
14592 (cortex_a15_neon_vld3_vld4): Likewise.
14593 (cortex_a15_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
14594 (cortex_a15_neon_vst1_3_4_regs): Likewise.
14595 (cortex_a15_neon_vst2_4_regs_vst3_vst4): Likewise.
14596 (cortex_a15_neon_vst3_vst4): Likewise.
14597 (cortex_a15_neon_vld1_vld2_lane): Likewise.
14598 (cortex_a15_neon_vld3_vld4_lane" 10
14599 (cortex_a15_neon_vst1_vst2_lane): Likewise.
14600 (cortex_a15_neon_vst3_vst4_lane): Likewise.
14601 (cortex_a15_neon_vld3_vld4_all_lanes): Likewise.
14602 (cortex_a15_neon_ldm_2): Likewise.0
14603 (cortex_a15_neon_stm_2): Likewise.
14604 (cortex_a15_neon_mcr): Likewise.
14605 (cortex_a15_neon_mcr_2_mcrr): Likewise.
14606 (cortex_a15_neon_mrc): Likewise.
14607 (cortex_a15_neon_mrrc): Likewise.
14608 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
14609 change.
14610 (cortex_a15_alu_shift): Likewise.
14611 (cortex_a15_alu_shift_reg): Likewise.
14612 (cortex_a15_mult32): Likewise.
14613 (cortex_a15_mult64): Likewise.
14614 (cortex_a15_block): Likewise.
14615 (cortex_a15_branch): Likewise.
14616 (cortex_a15_load1): Likewise.
14617 (cortex_a15_load3): Likewise.
14618 (cortex_a15_store1): Likewise.
14619 (cortex_a15_store3): Likewise.
14620 (cortex_a15_call): Likewise.
e33c5592 14621 * config/arm/cortex-a5.md (cortex_a5_r2f): Update for attribute change.
52432540 14622 (cortex_a5_f2r): Likewise.
14623 * config/arm/cortex-a53.md (cortex_a53_r2f): Update for attribute
14624 change.
14625 (cortex_a53_f2r): Likewise.
14626 * config/arm/cortex-a7.md
14627 (cortex_a7_branch): Update for attribute change.
14628 (cortex_a7_call): Likewise.
14629 (cortex_a7_alu_imm): Likewise.
14630 (cortex_a7_alu_reg): Likewise.
14631 (cortex_a7_alu_shift): Likewise.
14632 (cortex_a7_mul): Likewise.
14633 (cortex_a7_load1): Likewise.
14634 (cortex_a7_store1): Likewise.
14635 (cortex_a7_load2): Likewise.
14636 (cortex_a7_store2): Likewise.
14637 (cortex_a7_load3): Likewise.
14638 (cortex_a7_store3): Likewise.
14639 (cortex_a7_load4): Likewise.
14640 (cortex_a7_store4): Likewise.
14641 (cortex_a7_fpalu): Likewise.
14642 (cortex_a7_fconst): Likewise.
14643 (cortex_a7_fpmuls): Likewise.
14644 (cortex_a7_neon_mul): Likewise.
14645 (cortex_a7_fpmacs): Likewise.
14646 (cortex_a7_neon_mla: Likewise.
14647 (cortex_a7_fpmuld: Likewise.
14648 (cortex_a7_fpmacd: Likewise.
14649 (cortex_a7_fpfmad: Likewise.
14650 (cortex_a7_fdivs: Likewise.
14651 (cortex_a7_fdivd: Likewise.
14652 (cortex_a7_r2f: Likewise.
14653 (cortex_a7_f2r: Likewise.
14654 (cortex_a7_f_flags: Likewise.
14655 (cortex_a7_f_loads: Likewise.
14656 (cortex_a7_f_loadd: Likewise.
14657 (cortex_a7_f_stores: Likewise.
14658 (cortex_a7_f_stored: Likewise.
14659 (cortex_a7_neon): Likewise.
14660 * config/arm/cortex-a8-neon.md
14661 (cortex_a8_neon_mrc): Update for attribute change.
14662 (cortex_a8_neon_mrrc): Likewise.
14663 (cortex_a8_neon_int_1): Likewise.
14664 (cortex_a8_neon_int_2): Likewise.
14665 (cortex_a8_neon_int_3): Likewise.
14666 (cortex_a8_neon_int_4): Likewise.
14667 (cortex_a8_neon_int_5): Likewise.
14668 (cortex_a8_neon_vqneg_vqabs): Likewise.
14669 (cortex_a8_neon_vmov): Likewise.
14670 (cortex_a8_neon_vaba): Likewise.
14671 (cortex_a8_neon_vaba_qqq): Likewise.
14672 (cortex_a8_neon_vsma): Likewise.
14673 (cortex_a8_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
14674 (cortex_a8_neon_mul_qqq_8_16_32_ddd_32): Likewise.
e33c5592 14675 (cortex_a8_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
14676 long_scalar): Likewise.
52432540 14677 (cortex_a8_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
14678 (cortex_a8_neon_mla_qqq_8_16): Likewise.
14679 (cortex_a8_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
14680 long_scalar_qdd_64_32_long): Likewise.
14681 (cortex_a8_neon_mla_qqq_32_qqd_32_scalar): Likewise.
14682 (cortex_a8_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
14683 (cortex_a8_neon_mul_qqd_32_scalar): Likewise.
14684 (cortex_a8_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
14685 (cortex_a8_neon_shift_1): Likewise.
14686 (cortex_a8_neon_shift_2): Likewise.
14687 (cortex_a8_neon_shift_3): Likewise.
14688 (cortex_a8_neon_vshl_ddd): Likewise.
14689 (cortex_a8_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
14690 (cortex_a8_neon_vsra_vrsra): Likewise.
14691 (cortex_a8_neon_fp_vadd_ddd_vabs_dd): Likewise.
14692 (cortex_a8_neon_fp_vadd_qqq_vabs_qq): Likewise.
14693 (cortex_a8_neon_fp_vsum): Likewise.
14694 (cortex_a8_neon_fp_vmul_ddd): Likewise.
14695 (cortex_a8_neon_fp_vmul_qqd): Likewise.
14696 (cortex_a8_neon_fp_vmla_ddd): Likewise.
14697 (cortex_a8_neon_fp_vmla_qqq): Likewise.
14698 (cortex_a8_neon_fp_vmla_ddd_scalar): Likewise.
14699 (cortex_a8_neon_fp_vmla_qqq_scalar): Likewise.
14700 (cortex_a8_neon_fp_vrecps_vrsqrts_ddd): Likewise.
14701 (cortex_a8_neon_fp_vrecps_vrsqrts_qqq): Likewise.
14702 (cortex_a8_neon_bp_simple): Likewise.
14703 (cortex_a8_neon_bp_2cycle): Likewise.
14704 (cortex_a8_neon_bp_3cycle): Likewise.
14705 (cortex_a8_neon_ldr): Likewise.
14706 (cortex_a8_neon_str): Likewise.
14707 (cortex_a8_neon_vld1_1_2_regs): Likewise.
14708 (cortex_a8_neon_vld1_3_4_regs): Likewise.
14709 (cortex_a8_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
14710 (cortex_a8_neon_vld2_4_regs): Likewise.
14711 (cortex_a8_neon_vld3_vld4): Likewise.
14712 (cortex_a8_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
14713 (cortex_a8_neon_vst1_3_4_regs): Likewise.
14714 (cortex_a8_neon_vst2_4_regs_vst3_vst4): Likewise.
14715 (cortex_a8_neon_vst3_vst4): Likewise.
14716 (cortex_a8_neon_vld1_vld2_lane): Likewise.
14717 (cortex_a8_neon_vld3_vld4_lane): Likewise.
14718 (cortex_a8_neon_vst1_vst2_lane): Likewise.
14719 (cortex_a8_neon_vst3_vst4_lane): Likewise.
14720 (cortex_a8_neon_vld3_vld4_all_lanes): Likewise.
14721 (cortex_a8_neon_mcr): Likewise.
14722 (cortex_a8_neon_mcr_2_mcrr): Likewise.
e33c5592 14723 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
52432540 14724 * config/arm/cortex-a9-neon.md (ca9_neon_mrc): Update for attribute
14725 change.
14726 (ca9_neon_mrrc): Likewise.
14727 (cortex_a9_neon_int_1): Likewise.
14728 (cortex_a9_neon_int_2): Likewise.
14729 (cortex_a9_neon_int_3): Likewise.
14730 (cortex_a9_neon_int_4): Likewise.
14731 (cortex_a9_neon_int_5): Likewise.
14732 (cortex_a9_neon_vqneg_vqabs): Likewise.
14733 (cortex_a9_neon_vmov): Likewise.
14734 (cortex_a9_neon_vaba): Likewise.
14735 (cortex_a9_neon_vaba_qqq): Likewise.
14736 (cortex_a9_neon_vsma): Likewise.
14737 (cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
14738 (cortex_a9_neon_mul_qqq_8_16_32_ddd_32): Likewise.
e33c5592 14739 (cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
14740 long_scalar): Likewise.
52432540 14741 (cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
14742 (cortex_a9_neon_mla_qqq_8_16): Likewise.
14743 (cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
14744 long_scalar_qdd_64_32_long): Likewise.
14745 (cortex_a9_neon_mla_qqq_32_qqd_32_scalar): Likewise.
14746 (cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
14747 (cortex_a9_neon_mul_qqd_32_scalar): Likewise.
14748 (cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
14749 (cortex_a9_neon_shift_1): Likewise.
14750 (cortex_a9_neon_shift_2): Likewise.
14751 (cortex_a9_neon_shift_3): Likewise.
14752 (cortex_a9_neon_vshl_ddd): Likewise.
14753 (cortex_a9_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
14754 (cortex_a9_neon_vsra_vrsra): Likewise.
14755 (cortex_a9_neon_fp_vadd_ddd_vabs_dd): Likewise.
14756 (cortex_a9_neon_fp_vadd_qqq_vabs_qq): Likewise.
14757 (cortex_a9_neon_fp_vsum): Likewise.
14758 (cortex_a9_neon_fp_vmul_ddd): Likewise.
14759 (cortex_a9_neon_fp_vmul_qqd): Likewise.
14760 (cortex_a9_neon_fp_vmla_ddd): Likewise.
14761 (cortex_a9_neon_fp_vmla_qqq): Likewise.
14762 (cortex_a9_neon_fp_vmla_ddd_scalar): Likewise.
14763 (cortex_a9_neon_fp_vmla_qqq_scalar): Likewise.
14764 (cortex_a9_neon_fp_vrecps_vrsqrts_ddd): Likewise.
14765 (cortex_a9_neon_fp_vrecps_vrsqrts_qqq): Likewise.
14766 (cortex_a9_neon_bp_simple): Likewise.
14767 (cortex_a9_neon_bp_2cycle): Likewise.
14768 (cortex_a9_neon_bp_3cycle): Likewise.
14769 (cortex_a9_neon_ldr): Likewise.
14770 (cortex_a9_neon_str): Likewise.
14771 (cortex_a9_neon_vld1_1_2_regs): Likewise.
14772 (cortex_a9_neon_vld1_3_4_regs): Likewise.
14773 (cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
14774 (cortex_a9_neon_vld2_4_regs): Likewise.
14775 (cortex_a9_neon_vld3_vld4): Likewise.
14776 (cortex_a9_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
14777 (cortex_a9_neon_vst1_3_4_regs): Likewise.
14778 (cortex_a9_neon_vst2_4_regs_vst3_vst4): Likewise.
14779 (cortex_a9_neon_vst3_vst4): Likewise.
14780 (cortex_a9_neon_vld1_vld2_lane): Likewise.
14781 (cortex_a9_neon_vld3_vld4_lane): Likewise.
14782 (cortex_a9_neon_vst1_vst2_lane): Likewise.
14783 (cortex_a9_neon_vst3_vst4_lane): Likewise.
14784 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
14785 (cortex_a9_neon_mcr): Likewise.
14786 (cortex_a9_neon_mcr_2_mcrr): Likewise.
14787 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
14788 (cortex_a9_fps): Likewise.
14789 * config/arm/cortex-m4-fpu.md (cortex_m4_vmov_2): Update for attribute
14790 change.
14791 (cortex_m4_fmuls): Likewise.
14792 * config/arm/cortex-r4f.md (cortex_r4_mcr): Update for attribute
14793 change.
14794 (cortex_r4_mrc): Likewise.
14795 * config/arm/iterators.md: Update comment referring to neon_type.
e33c5592 14796 * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Update for attribute change.
52432540 14797 (iwmmxt_movsi_insn): Likewise.
e33c5592 14798 * config/arm/marvell-pj4.md (pj4_vfp_to_core): Update for
14799 attribute change.
52432540 14800 (pj4_core_to_vfp): Likewise.
14801 * config/arm/neon-schedgen.ml (emit_insn_reservations): Update for
14802 attribute change.
14803 * config/arm/vfp11.md (vfp_fload): Update for attribute change.
14804 (vfp_fstore): Likewise.
14805 * doc/md.texi: Change references to neon_type to refer to type.
14806
7e766783 148072013-09-04 Dodji Seketeli <dodji@redhat.com>
14808
14809 * tree.h (DECL_BUILT_IN): Fix typo in comment.
14810
f8918696 148112013-09-04 David Edelsohn <dje.gcc@gmail.com>
14812
14813 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Only emit
14814 lglobl if not weak.
14815
c9dbb922 148162013-09-04 Easwaran Raman <eraman@google.com>
14817
14818 PR middle-end/57370
14819 * tree-ssa-reassoc.c (get_stmt_uid_with_default): New function,
14820 (build_and_add_sum): Use it.
14821 (appears_later_in_bb): Simplify code.
14822
348ab1da 148232013-09-04 Teresa Johnson <tejohnson@google.com>
14824
14825 * dumpfile.c (dump_finish): Don't close stderr/stdout.
14826
dbb9127f 148272013-09-04 James Greenhalgh <james.greenhalgh@arm.com>
14828
14829 * config/aarch64/arm_neon.h (vaddvq_<su>64): Fix return types.
14830
4befb9f4 148312013-09-04 Jan Hubicka <jh@suse.cz>
14832
14833 * Makefile.in (ipa-devirt.o): Add dependency on diagnostic.h
14834 * ipa-devirt.c: Include diganostic.h
14835 (odr_type_d): Add types and types_set.
14836 (hash_type_name): Work for types with vtables during LTO.
14837 (odr_hasher::remove): Fix comment; destroy types_set.
14838 (add_type_duplicate): New function,
14839 (get_odr_type): Use it.
14840 (dump_type_inheritance_graph): Dump type duplicates.
14841 * ipa.c (symtab_remove_unreachable_nodes): Build type inheritance
14842 graph.
14843 * tree.c (types_same_for_odr): Give exact answers on types with
14844 virtual tables.
14845
2f90489d 148462013-09-04 Dodji Seketeli <dodji@redhat.com>
14847
14848 * tree.h (DECL_BUILT_IN, DECL_IS_BUILTIN): Add more comments
1a1634db 14849 explaining their differences.
2f90489d 14850
818a28e1 148512013-09-04 Sandeep Kumar Singh<Sandeep.Singh2@kpitcummins.com>
14852
14853 * config/rx/rx.h: Add option -mcpu for target variants RX100 and RX200.
14854
631d940c 148552013-09-03 Jeff Law <law@redhat.com>
14856
14857 * tree-ssa-threadedge.c (thread_across_edge): Record entire path
14858 when not threading through a joiner block. Pass joiner/no joiner
14859 state to register_jump_thread.
14860 * tree-ssa-threadupdate.c (register_jump_thread): Get joiner/no joiner
14861 state from argument rather than implying on path length.
14862 Dump the entire jump thread path into debugging dump.
14863 * tree-flow.h (register_jump_thread): Update prototype.
14864
807a87f9 148652013-08-29 Xinliang David Li <davidxl@google.com>
14866
14867 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
14868 Remove a trivial gcc_assert.
14869
23e1875f 148702013-08-29 Xinliang David Li <davidxl@google.com>
14871
14872 * tree-vect-slp.c (destroy_bb_vec_info): Data ref cleanup.
14873 * tree-vect-loop.c (destroy_bb_vec_info): Ditto.
14874 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
14875 Delay base decl alignment adjustment.
14876 * tree-vectorizer.c (vect_destroy_datarefs): New function.
14877 * tree-vectorizer.h: New data structure.
14878 (set_dr_misalignment): New function.
14879 (dr_misalignment): Ditto.
14880 * tree-vect-stmts.c (vectorizable_store): Ensure alignment.
14881 (vectorizable_load): Ditto.
14882 (ensure_base_align): New function.
14883 (vectorize_loops): Add dbg_cnt support.
14884 (execute_vect_slp): Ditto.
14885 * dbgcnt.def: New debug counter.
14886 * Makefile: New dependency.
14887
d939b38f 148882013-09-03 Meador Inge <meadori@codesourcery.com>
14889
14890 Revert:
14891
14892 2013-08-30 Meador Inge <meadori@codesourcery.com>
14893
14894 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
14895
d4ba2f33 148962013-09-03 David Edelsohn <dje.gcc@gmail.com>
14897
14898 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Emit lglobl for
14899 function descriptor.
14900
87883e3d 149012013-09-03 Richard Biener <rguenther@suse.de>
14902
14903 * tree-affine.c (add_elt_to_tree): Fix association issue,
14904 avoid useless converts and make sure to always return a
14905 properly typed result.
14906
13e6d07c 149072013-09-03 Richard Biener <rguenther@suse.de>
14908
14909 PR middle-end/57656
14910 * fold-const.c (negate_expr_p): Fix division case.
14911 (negate_expr): Likewise.
14912
2df1a5f7 149132013-09-03 Richard Biener <rguenther@suse.de>
14914
14915 PR lto/58285
14916 * tree-streamer-out.c: Include tm.h.
14917 * Makefile.in (tree-streamer-out.o): Depend on $(TM_H).
14918
2701a3fd 149192013-09-03 Jan Hubicka <jh@suse.cz>
14920
14921 * tree-profile.c (tree_profiling): Cleanup CFG when done.
14922
24038ccc 149232013-09-03 Alan Modra <amodra@gmail.com>
14924
14925 * config.gcc (powerpc*-*-linux*): Add support for little-endian
14926 multilibs to big-endian target and vice versa.
14927 * config/rs6000/t-linux64: Use := assignment on all vars.
14928 (MULTILIB_EXTRA_OPTS): Remove fPIC.
14929 (MULTILIB_OSDIRNAMES): Specify using mapping from multilib_options.
14930 * config/rs6000/t-linux64le: New file.
14931 * config/rs6000/t-linux64bele: New file.
14932 * config/rs6000/t-linux64lebe: New file.
14933
ed784636 149342013-09-02 Jan Hubicka <jh@suse.cz>
14935
14936 * ipa-inline-transform.c (inline_transform): Do not
14937 optimize_inline_calls when not optimizing.
14938
46000538 149392013-09-02 Jan Hubicka <jh@suse.cz>
14940
14941 * lto-symtab.c (lto_symtab_merge_symbols): Add comments; merge
14942 duplicated nodes for assembler names.
14943 * symtab.c (symtab_unregister_node): Do not attempt to unlink
14944 hard registers from assembler name hash.
14945
8745ccbf 149462013-09-02 Jan Hubicka <jh@suse.cz>
14947
14948 * ipa-split.c (execute_split_functions): Split externally visible
14949 functions called once.
14950
c55448e7 149512013-09-02 Martin Jambor <mjambor@suse.cz>
14952
14953 PR ipa/58106
14954 * ipa-prop.c (ipa_edge_duplication_hook): Always put new rdesc to the
14955 linked list. When finding the correct duplicate, also consider also
14956 the caller in additon to its inlined_to node.
14957
2d67c34c 149582013-09-02 James Greenhalgh <james.greenhalgh@arm.com>
14959
14960 * config/aarch64/aarch64-simd-builtins.def
14961 (dup_lane_scalar): Remove.
14962 * config/aarch64/aarch64-simd.md
14963 (aarch64_simd_dup): Add 'w->w' alternative.
14964 (aarch64_dup_lane<mode>): Allow for VALL.
14965 (aarch64_dup_lane_scalar<mode>): Remove.
14966 (aarch64_dup_lane_<vswap_width_name><mode>): New.
14967 (aarch64_get_lane_signed<mode>): Add w->w altenative.
14968 (aarch64_get_lane_unsigned<mode>): Likewise.
14969 (aarch64_get_lane<mode>): Likewise.
14970 * config/aarch64/aarch64.c (aarch64_evpc_dup): New.
14971 (aarch64_expand_vec_perm_const_1): Use aarch64_evpc_dup.
14972 * config/aarch64/iterators.md (VSWAP_WIDTH): New.
14973 (VCON): Change container of V2SF.
14974 (vswap_width_name): Likewise.
14975 * config/aarch64/arm_neon.h
14976 (__aarch64_vdup_lane_any): New.
14977 (__aarch64_vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
14978 (vdup<q>_n_<psuf><8,16,32,64>): Convert to C implementation.
14979 (vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
14980
493bce58 149812013-09-02 Eric Botcazou <ebotcazou@adacore.com>
14982
14983 PR middle-end/56382
14984 * expr.c (emit_move_complex): Do not move complex FP values as parts if
14985 the source or the destination is a single hard register.
14986
0c763224 149872013-09-02 Richard Biener <rguenther@suse.de>
14988
14989 PR middle-end/57511
14990 * tree-scalar-evolution.c (instantiate_scev_name): Allow
14991 non-linear SCEVs.
14992
9ea678af 149932013-09-02 Richard Biener <rguenther@suse.de>
14994
14995 * tree-affine.c (add_elt_to_tree): Avoid converting all pointer
14996 arithmetic to sizetype.
14997
106c7177 149982013-09-02 Bin Cheng <bin.cheng@arm.com>
14999
15000 * tree-ssa-loop-ivopts.c (set_autoinc_for_original_candidates):
15001 Find auto-increment use both before and after candidate.
15002
0a3fd7ce 150032013-09-02 Marek Polacek <polacek@redhat.com>
15004
15005 * Makefile.in (ubsan.o): Add $(TM_P_H) dependency.
15006
6eaf903b 150072013-09-01 Jan Hubicka <jh@suse.cz>
15008
15009 * Makefile.in: Add ipa-profile.o
15010 (ipa.o, ipa-devrit.o, ipa-inline-analysis.o): Adjust dependencies.
15011 * cgraph.c (struct cgraph_propagate_frequency_data,
15012 cgraph_propagate_frequency_1, cgraph_propagate_frequency): Move to
15013 ipa-profile.c; replace cgraph_ by ipa_ prefix.
15014 * cgraph.h (cgraph_propagate_frequency): Remove.
e33c5592 15015 * ipa-inline-analysis.c: Include ipa-utils.h;
15016 drop duplicated cfgloop.h.
6eaf903b 15017 (inline_update_callee_summaries): Update.
15018 * ipa-profile.c: New file.
15019 * ipa-utils.h (ipa_propagate_frequency): Declare.
15020 * ipa.c: Do not include pointer-set.h, hash-table.h, lto-streamer.h,
e33c5592 15021 data-streamer.h, value-prof.h.
6eaf903b 15022 (symtab_remove_unreachable_nodes): Update profile.
15023 (struct histogram_entry, histogram, histogram_pool, histogram_hash,
15024 account_time_size, cmp_counts, dump_histogram,
15025 ipa_profile_generate_summary, ipa_profile_write_summary,
15026 ipa_profile_read_summary, ipa_profile, gate_ipa_profile,
15027 pass_data_ipa_profile, pass_ipa_profile, make_pass_ipa_profile):
e33c5592 15028 Move to ipa-profile.c.
6eaf903b 15029
d212dd7b 150302013-09-01 John David Anglin <danglin@gcc.gnu.org>
15031
15032 * config/pa/pa.md: Allow "const 0" operand 1 in "scc" insns.
15033
84f6cc40 150342013-09-01 Jan Hubicka <jh@suse.cz>
15035
15036 * common.opt (fdevirtualize-speculatively): New function.
15037 * invoke.texi (fdevirtualize-speculatively): Document.
15038 * ipa-devirt.c: Include ipa-inline.h
15039 (likely_target_p): New function.
15040 (ipa_devirt): New function.
15041 (gate_ipa_devirt): New function.
15042 (pass_data_ipa_devirt): New static var.
15043 (pass_ipa_devirt): Likewise.
15044 (make_pass_ipa_devirt): New function.
15045 * opts.c (default_options): Add OPT_fdevirtualize_speculatively.
15046 (common_handle_option): Disable devirtualization when
15047 value range profiling is available.
15048 * passes.def (pass_ipa_devirt): Add.
15049 * timever.def (TV_IPA_DEVIRT): New timevar.
e33c5592 15050 * tree-pass.h (make_pass_ipa_devirt):
84f6cc40 15051
22e8a488 150522013-09-01 Iain Sandoe <iain@codesourcery.com>
15053
15054 * config/darwin.h (LINK_COMMAND_SPEC_A): Revise sanitizer specs to
15055 include sanitize(undefined).
15056
96423453 150572013-08-31 Diego Novillo <dnovillo@google.com>
15058
15059 * Makefile.in (TREE_CORE_H): Define.
15060 (TREE_H): Use.
15061 (GTFILES): Add tree-core.h.
15062 * builtins.c (built_in_class_names): Use BUILT_IN_LAST to
15063 size the array.
15064 * tree-core.h: New file.
15065 Move all data structures, enum, typedefs, global
15066 declarations and constants from ...
15067 * tree.h: ... here.
15068
73037a1e 150692013-08-31 Jan Hubicka <jh@suse.cz>
15070
15071 * bulitins.c (expand_builtin): Do not early exit for gcov
15072 instrumented functions.
15073
8081f51e 150742013-08-31 Marek Polacek <polacek@redhat.com>
15075
15076 * ubsan.c: Include tm_p.h.
15077
7e4b741c 150782013-08-31 Jan Hubicka <jh@suse.cz>
15079
b73e2dd6 15080 * gimple-streamer-in.c (input_gimple_stmt): Silence parameter unused
15081 warning.
15082
7e4b741c 15083 * cgraph.c (cgraph_get_body): Update call of lto_input_function_body.
15084 * gimple-streamer-in.c (input_gimple_stmt): Move sanity check to ...
06d12890 15085 * tree-cfg.c (verify_gimple_label): ... here.
7e4b741c 15086 * ipa-utils.c: Include lto-streamer.h, ipa-inline.h
15087 (ipa_merge_profiles): New function.
15088 * lto-streamer-in.c (lto_read_body): Take node instead of fn_decl.
15089 (lto_input_function_body): Likewise.
06d12890 15090 * ipa-utils.h (ipa_merge_profiles): Declare.
15091 * lto-streamer.h (lto_input_function_body): Update prototype.
15092 (emit_label_in_global_context_p): Remove.
15093 * lto-symtab.c: Include ipa-utils.h
15094 (lto_cgraph_replace_node): Use ipa_merge_profiles.
7e4b741c 15095
30c45111 150962013-08-31 Jan Hubicka <jh@suse.cz>
15097
15098 * cgraph.c (cgraph_speculative_call_info): Fix ref lookup
15099
acdafb9d 151002013-08-31 Jan Hubicka <jh@suse.cz>
15101
15102 * basic-block.h (apply_scale): Make scale parmeter gcov_type.
15103
5da2e28f 151042013-08-31 Uros Bizjak <ubizjak@gmail.com>
15105
15106 * config/alpha/alpha.c (alpha_emit_conditional_move): Update
15107 "cmp" RTX before signed_comparison_operator check to account
15108 for "code" changes.
15109
185c1f3a 151102013-08-30 Jan Hubicka <jh@suse.cz>
15111
5da2e28f 15112 * ipa-prop.c (ipa_set_jf_known_type): Check that we add only records.
185c1f3a 15113 (detect_type_change_1): Rename to ...
15114 (detect_type_change): ... this one; early return on non-polymorphic
15115 types.
5da2e28f 15116 (detect_type_change_ssa): Add comp_type parameter; update
185c1f3a 15117 use of detect_type_change.
15118 (compute_complex_assign_jump_func): Add param_type parameter;
15119 update use of detect_type_change_ssa.
15120 (compute_complex_ancestor_jump_func): Likewise.
15121 (ipa_get_callee_param_type): New function.
15122 (ipa_compute_jump_functions_for_edge): Compute parameter type;
15123 update calls to the jump function computation functions.
15124
80adc5a6 151252013-08-30 Teresa Johnson <tejohnson@google.com>
15126 Steven Bosscher <steven@gcc.gnu.org>
15127
15128 * cfgrtl.c (fixup_new_cold_bb): New routine.
15129 (commit_edge_insertions): Invoke fixup_partitions.
15130 (find_partition_fixes): New routine.
15131 (fixup_partitions): Ditto.
15132 (verify_hot_cold_block_grouping): Update comments.
15133 (rtl_verify_edges): Invoke find_partition_fixes.
15134 (rtl_verify_bb_pointers): Update comments.
15135 (rtl_verify_bb_layout): Ditto.
15136 * basic-block.h (probably_never_executed_edge_p): Declare.
15137 (fixup_partitions): Ditto.
15138 * cfgcleanup.c (try_optimize_cfg): Invoke fixup_partitions.
15139 * bb-reorder.c (sanitize_hot_paths): New function.
15140 (find_rarely_executed_basic_blocks_and_crossing_edges): Invoke
15141 sanitize_hot_paths.
15142 * predict.c (probably_never_executed_edge_p): New routine.
15143 * cfg.c (check_bb_profile): Add partition insanity warnings.
15144
aee4c7da 151452013-08-30 Meador Inge <meadori@codesourcery.com>
15146
15147 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
15148
9e46467d 151492013-08-30 Marek Polacek <polacek@redhat.com>
15150
15151 * Makefile.in (ubsan.o): Add.
15152 (c-family/c-ubsan.o): Add.
15153 (builtins.o): Add ubsan.h dependency.
15154 * ubsan.h: New file.
15155 * ubsan.c: New file.
15156 * common.opt: Add -fsanitize=undefined option.
15157 (flag_sanitize): Add variable.
15158 (fsanitize=): Add option. Add Driver.
15159 (fsanitize=thread): Remove option.
15160 (fsanitize=address): Likewise.
15161 (static-libubsan): New option.
15162 * doc/invoke.texi: Document the new flag and -static-libubsan.
15163 * sanitizer.def (DEF_SANITIZER_BUILTIN): Define.
15164 (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Define.
15165 * builtin-attrs.def (ATTR_COLD): Define.
15166 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
15167 * builtins.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW,
15168 BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS): Define.
15169 * flag-types.h (sanitize_code): New enum.
15170 * opts.c (common_handle_option): Parse command line arguments
15171 of -fsanitize=. Add -fsanitize=unreachable option.
15172 * varasm.c (get_variable_section): Adjust.
15173 (assemble_noswitch_variable): Likewise.
15174 (assemble_variable): Likewise.
15175 (output_constant_def_contents): Likewise.
15176 (categorize_decl_for_section): Likewise.
15177 (place_block_symbol): Likewise.
15178 (output_object_block): Likewise.
15179 * builtins.def: Likewise.
15180 * toplev.c (compile_file): Likewise.
15181 (process_options): Likewise.
15182 * cppbuiltin.c: Likewise.
15183 * tsan.c (tsan_pass): Likewise.
15184 (tsan_gate): Likewise.
15185 (tsan_gate_O0): Likewise.
15186 * cfgexpand.c (partition_stack_vars): Likewise.
15187 (expand_stack_vars): Likewise.
15188 (defer_stack_allocation): Likewise.
15189 (expand_used_vars): Likewise.
15190 * cfgcleanup.c (old_insns_match_p): Likewise.
15191 * asan.c (asan_finish_file): Likewise.
15192 (asan_instrument): Likewise.
15193 (gate_asan): Likewise.
15194 (initialize_sanitizer_builtins): Build BT_FN_VOID_PTR_PTR_PTR.
15195 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
15196 (asan_global_struct): Use pointer_sized_int_node instead
15197 calling build_nonstandard_integer_type.
15198 (initialize_sanitizer_builtins): Likewise.
15199 (asan_finish_file): Likewise.
15200 * gcc.c: Document %{%:function(args):X}.
15201 (static_spec_functions): Add sanitize.
15202 (handle_spec_function): Add retval_nonnull argument and if non-NULL,
15203 store funcval != NULL there.
15204 (do_spec_1): Adjust handle_spec_function caller.
15205 (handle_braces): Allow %:function(args) as condition.
15206 (sanitize_spec_function): New function.
15207 (ADD_STATIC_LIBUBSAN_LIBS): Define.
15208 (LIBUBSAN_SPEC): Likewise.
15209 (LIBUBSAN_EARLY_SPEC): Likewise.
15210 (SANITIZER_SPEC): Handle libubsan.
15211 (SANITIZER_EARLY_SPEC): Likewise.
15212 * config/darwin.h (LINK_COMMAND_SPEC_A): Use %:sanitize(address)
15213 instead of fsanitize=address.
15214 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Use %:sanitize(address)
15215 instead of fsanitize=address*.
15216 * builtins.c: Include ubsan.h.
15217 (fold_builtin_0): Instrument __builtin_unreachable.
15218 * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Use flag_sanitize
15219 instead of flag_asan.
15220 * tree.h (enum tree_index): Add TI_POINTER_SIZED_TYPE.
15221 (pointer_sized_int_node): Define.
5da2e28f 15222 * tree.c (build_common_tree_nodes): Initialize pointer_sized_int_node.
9e46467d 15223
95bf5b60 152242013-08-30 Mike Stump <mikestump@comcast.net>
15225
15226 * doc/install.texi (Prerequisites): Note regression in Tcl 8.6
15227 with RE patterns.
15228
2fe870c5 152292013-08-29 Jan Hubicka <jh@suse.cz>
15230
15231 * cgraph.c (cgraph_function_body_availability): Handle weakref
15232 correctly.
15233 * passes.def: Remove pass_fixup_cfg.
15234 * ipa-inline.c (ipa_inline): When not optimizing, do not inline;
15235 track when we need to remove functions.
15236 (gate_ipa_inline): Execute inlining always; add comment why.
15237 (pass_data_ipa_inline): Remove TODO_remove_functions.
15238 * ipa-inline-analysis.c (inline_generate_summary): When not optimizing
15239 do not produce summaries.
15240 * symtab.c (change_decl_assembler_name): Handle renaming of weakrefs.
15241 (symtab_nonoverwritable_alias): Assert we are not called on weakref.
15242 * varpool.c (cgraph_variable_initializer_availability): Fix weakrefs,
15243 constant pool and vtable.
15244
d75377fe 152452013-08-30 Tejas Belagod <tejas.belagod@arm.com>
15246
5da2e28f 15247 * config/aarch64/arm_neon.h (__AARCH64_UINT64_C, __AARCH64_INT64_C):
15248 New arm_neon.h's internal macros to specify 64-bit constants.
15249 Avoid using stdint.h's macros.
d75377fe 15250
d25c779e 152512013-08-30 Joern Rennecke <joern.rennecke@embecosm.com>
15252
15253 * recog.c (verify_changes): Verify that changes[i].old is non-zero
15254 before applying REG_P.
15255
6c6bd170 152562013-08-30 Jakub Jelinek <jakub@redhat.com>
15257
15258 PR tree-optimization/58277
15259 * tree-ssa-strlen.c (strlen_enter_block): If do_invalidate gave up
15260 after seeing too many stmts with vdef in between dombb and current
15261 bb, invalidate everything.
15262
15ff9e2f 152632013-08-30 Richard Biener <rguenther@suse.de>
15264
15265 * fold-const.c (fold_single_bit_test): Fix overflow test.
15266
cad0d474 152672013-08-30 Eric Botcazou <ebotcazou@adacore.com>
15268
15269 * function.c (assign_parm_setup_reg): For a parameter passed by pointer
15270 and which can live in a register, always retrieve the value on entry.
15271 * var-tracking.c (add_stores): Treat the copy on entry for a parameter
15272 passed by invisible reference specially.
15273 (emit_notes_in_bb) <MO_VAL_USE>: Emit notes before the instruction.
15274 (vt_add_function_parameter): Correctly deal with a parameter passed by
15275 invisible reference.
15276
152772013-08-30 Jan Hubicka <jh@suse.cz>
46249384 15278
15279 * tree.c (set_call_expr_flags): Fix handling of TM_PURE.
15280
afa60cb4 152812013-08-30 Richard Biener <rguenther@suse.de>
15282
15283 PR tree-optimization/58228
15284 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Do not
15285 allow invariant loads in nested loop vectorization.
15286
b2a1bfff 152872013-08-30 Richard Biener <rguenther@suse.de>
15288
15289 PR tree-optimization/58223
15290 * tree-loop-distribution.c (has_anti_dependence): Rename to ...
15291 (has_anti_or_output_dependence): ... this and adjust to also
15292 look for output dependences.
15293 (mark_nodes_having_upstream_mem_writes): Adjust.
15294 (rdg_flag_uses): Likewise.
15295
1d4bc0bb 152962013-08-30 Richard Biener <rguenther@suse.de>
15297
15298 PR tree-optimization/58010
15299 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
15300 assert that we have a loop-closed PHI.
15301
a1e7a7ba 153022013-08-29 Jan Hubicka <jh@suse.cz>
15303
15304 * lto-symtab.c (lto_cgraph_replace_node): Free decl_in_state.
15305 * cgraph.c (cgraph_release_function_body): Free decl_in_state.
15306 * lto-section-in.c (lto_free_function_in_decl_state): New function.
15307 (lto_free_function_in_decl_state_for_node): New function.
15308
6ee2edad 153092013-08-29 Xinliang David Li <davidxl@google.com>
15310
5da2e28f 15311 * loop-unroll.c (report_unroll_peel): Minor message change.
6ee2edad 15312 * tree-vect-loop-manip.c (vect_do_peeling_for_alignment):
15313 Emit alignment peeling message with default -fopt-info.
15314 (vect_loop_versioning): Emit loop version info message.
5da2e28f 15315 * tree-vectorizer.c (vectorize_loops): Minor message change.
6ee2edad 15316 (execute_vect_slp): Ditto.
15317
cac1ceba 153182013-08-29 Eric Botcazou <ebotcazou@adacore.com>
15319
15320 * cgraphclones.c (cgraph_create_virtual_clone): Compute the DECL_NAME
15321 of the clone from the DECL_NAME of the original function.
15322
b3521e4b 153232013-08-29 Oleg Endo <olegendo@gcc.gnu.org>
15324
15325 * passes.c (register_pass): Add overload.
15326 * tree-pass.h (register_pass): Forward declare it. Add comment.
15327
2d9cc481 153282013-08-29 Jan Hubicka <jh@suse.cz>
15329
5da2e28f 15330 * lto-streamer-out.c (hash_tree): Stream DECL_FINAL_P,
15331 DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P and TYPE_FINAL_P.
15332 * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Stream
15333 DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
2d9cc481 15334 (unpack_ts_type_common_value_fields): Stream TYPE_FINAL_P.
15335 * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields):
5da2e28f 15336 Add DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
2d9cc481 15337 (pack_ts_type_common_value_fields): Add TYPE_FINAL_P.
15338
202c2bd9 153392013-08-29 Teresa Johnson <tejohnson@google.com>
15340
15341 * dumpfile.c (dump_loc): Output column number.
15342 * dumpfile.h (OPTGROUP_OTHER): Add and enable under OPTGROUP_ALL.
15343 * doc/invoke.texi: Document optall -fopt-info flag.
15344 * profile.c (read_profile_edge_counts): Use new dump framework.
15345 (compute_branch_probabilities): Ditto.
15346 * passes.c (pass_manager::register_one_dump_file): Use OPTGROUP_OTHER
15347 when pass not in any opt group.
15348 * pass_manager.h (pass_manager::get_pass_profile): New method.
15349 * value-prof.c (check_counter): Use new dump framework.
15350 (check_ic_target): Ditto.
15351 * coverage.c (get_coverage_counts): Ditto.
15352 (coverage_init): Setup new dump framework.
15353
a1d4a509 153542013-08-29 Richard Biener <rguenther@suse.de>
15355
15356 PR tree-optimization/58246
15357 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Properly
15358 handle the dominance check inside a basic-block.
15359
f3e5154c 153602013-08-29 Richard Biener <rguenther@suse.de>
15361
15362 PR middle-end/57287
15363 * tree-ssa-copy.c (may_propagate_copy): Allow propagating
15364 of default defs that appear in abnormal PHI nodes.
15365
c2ff4a23 153662013-08-29 Richard Biener <rguenther@suse.de>
15367
15368 PR tree-optimization/57685
15369 * tree-vrp.c (register_edge_assert_for_1): Recurse only for
15370 single-use operands to avoid exponential complexity.
15371
f4905b9a 153722013-08-28 Dehao Chen <dehao@google.com>
15373
15374 * ipa-inline.c (edge_badness): Fix integer underflow.
15375
c643445e 153762013-08-28 Uros Bizjak <ubizjak@gmail.com>
15377
15378 * gtm-builtins.def (_ITM_free): Declare leaf.
15379
5ab8b67a 153802013-08-28 Jakub Jelinek <jakub@redhat.com>
15381
15382 PR target/58067
15383 * config/i386/i386.md (*tls_global_dynamic_64_largepic): New insn.
15384 (*tls_local_dynamic_base_64_largepic): Likewise.
15385 (tls_global_dynamic_64_<mode>, tls_local_dynamic_base_64_<mode>):
15386 Remove predicate from call operand.
15387 * config/i386/i386.c (ix86_tls_get_addr): For -mcmodel=large -fpic
15388 return sum of pic_offset_table_rtx and UNSPEC_PLTOFF of the symbol.
15389
1f3976e7 153902013-08-28 Jeff Law <law@redhat.com>
15391
15392 * tree-ssa-threadedge.c (thread_around_empty_block): Remove
15393 checks for the number of predecessors and successors allowed.
15394 * tree-ssa-threadupdate.c (mark_threaded_blocks): Ignore requests
15395 which require copying a joiner block if there is a request which
15396 is a subpath that requires no joiner block copying.
15397
881fe02c 153982013-08-28 Jan Hubicka <jh@suse.cz>
15399
15400 * lto-streamer-out.c (DFS_write_tree_body): Drop
15401 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX and BINFO_VPTR_INDEX.
15402 (hash_tree): Do not hash DECL_DEFER_OUTPUT, BINFO_INHERITANCE_CHAIN,
15403 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, DECL_IN_TEXT_SECTION.
15404 * tree-streamer-in.c (unpack_ts_decl_common_value_fields):
15405 Do not read DECL_ERROR_ISSUED.
15406 (unpack_ts_decl_with_vis_value_fields): Do not read
15407 DECL_DEFER_OUTPUT.
c643445e 15408 (lto_input_ts_binfo_tree_pointers): Do not read
15409 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX
881fe02c 15410 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Do not
15411 write DECL_ERROR_ISSUED..
15412 (pack_ts_decl_with_vis_value_fields): Do not write
15413 DECL_DEFER_OUTPUT.
15414 (write_ts_binfo_tree_pointers): Do not read BINFO_INHERITANCE_CHAIN,
c643445e 15415 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX.
881fe02c 15416 * print-tree.c (print_node): Do not print DECL_ERROR_ISSUED.
15417 * tree.h (tree_decl_common): Update comment.
15418 (DECL_ERROR_ISSUED): Remove.
15419
34d8484d 154202013-08-28 Jakub Jelinek <jakub@redhat.com>
15421
15422 PR middle-end/58257
15423 * omp-low.c (copy_var_decl): Copy over TREE_NO_WARNING flag.
15424
c3d2d0e4 154252013-08-28 Jan Hubicka <jh@suse.cz>
564ad84f 15426
15427 * builtins.def (free): Declare leaf.
15428
b86afe72 154292013-08-27 David Malcolm <dmalcolm@redhat.com>
15430
15431 * gdbhooks.py: New.
15432 * configure.ac (gdbinit.in): Add import of gcc/gdbhooks.py.
15433 * configure: Regenerate.
15434
ad4a8b28 154352013-08-27 Martin Jambor <mjambor@suse.cz>
15436
15437 * ipa-prop.h (ipa_pass_through_data): New field type_preserved.
15438 (ipa_ancestor_jf_data): Likewise.
15439 (ipa_get_jf_pass_through_agg_preserved): Fix comment typo.
15440 (ipa_get_jf_pass_through_type_preserved): New function.
15441 (ipa_get_jf_ancestor_agg_preserved): Fix comment typo.
15442 (ipa_get_jf_ancestor_type_preserved): New function.
c3d2d0e4 15443 * ipa-cp.c (ipa_get_jf_pass_through_result): Honor type_preserved flag.
ad4a8b28 15444 (ipa_get_jf_ancestor_result): Likewise.
15445 (propagate_vals_accross_pass_through): Use
15446 ipa_get_jf_pass_through_result to do all the value mappings.
15447 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Dump the
15448 type_preserved flag.
15449 (ipa_set_jf_cst_copy): New function.
15450 (ipa_set_jf_simple_pass_through): Set the type_preserved flag.
15451 (ipa_set_jf_arith_pass_through): Likewise.
15452 (ipa_set_ancestor_jf): Likewise.
15453 (compute_complex_assign_jump_func): Set type_preserved instead of
15454 punting.
15455 (ipa_compute_jump_functions_for_edge): Likewise.
15456 (combine_known_type_and_ancestor_jfs): Honor type_preserved.
15457 (update_jump_functions_after_inlining): Update type_preserved.
c3d2d0e4 15458 Explicitely create jump functions when combining one with pass_through.
ad4a8b28 15459 (ipa_write_jump_function): Stream the type_preserved flags.
15460 (ipa_read_jump_function): Likewise.
15461
3d483a94 154622013-08-27 Jakub Jelinek <jakub@redhat.com>
15463 Aldy Hernandez <aldyh@redhat.com>
15464
15465 * Makefile.in (omp-low.o): Depend on $(TARGET_H).
15466 * cfgloop.h (struct loop): Add safelen, force_vect, simduid.
15467 * function.h (struct function): Add has_force_vect_loops and
15468 has_simduid_loops.
c3d2d0e4 15469 * gimple-pretty-print.c (dump_gimple_omp_for): Handle GF_OMP_FOR_KIND*.
3d483a94 15470 * gimple.c (gimple_build_omp_critical): Add KIND argument and
15471 handle it.
15472 * gimple.def: Update CLAUSES comments.
15473 * gimple.h (enum gf_mask): Add GF_OMP_FOR_KIND_{FOR,SIMD}.
15474 (gimple_build_omp_for): Add argument to prototype.
15475 (gimple_omp_for_kind): New.
15476 (gimple_omp_for_set_kind): New.
15477 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_LINEAR to
15478 GOVD_DATA_SHARE_CLASS.
15479 (enum omp_region_type): Add ORT_SIMD.
15480 (gimple_add_tmp_var): Handle ORT_SIMD.
15481 (gimplify_var_or_parm_decl): Same.
15482 (is_gimple_stmt): Same.
15483 (omp_firstprivatize_variable): Same.
15484 (omp_add_variable): Only use splay_tree_insert if lookup failed.
15485 (omp_notice_variable): Handle ORT_SIMD.
c3d2d0e4 15486 (omp_is_private): Add SIMD argument and handle it as well as ORT_SIMD.
3d483a94 15487 (omp_check_private): Handle ORT_SIMD.
15488 (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_LINEAR and
15489 OMP_CLAUSE_SAFELEN.
15490 (gimplify_adjust_omp_clauses_1): Handle GOVD_LINEAR.
15491 Handle OMP_CLAUSE_LASTPRIVATE.
15492 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_LINEAR and
15493 OMP_CLAUSE_SAFELEN.
15494 (gimplify_omp_for): Handle OMP_SIMD and OMP_CLAUSE_LINEAR.
15495 (gimplify_expr): Handle OMP_SIMD.
15496 * internal-fn.c (expand_GOMP_SIMD_LANE): New.
15497 (expand_GOMP_SIMD_VF): New.
15498 (expand_GOMP_SIMD_LAST_LANE): New.
15499 * internal-fn.def (GOMP_SIMD_LANE): New.
15500 (GOMP_SIMD_VF): New.
15501 (GOMP_SIMD_LAST_LANE): New.
15502 * omp-low.c: Include target.h.
15503 (extract_omp_for_data): Handle OMP_SIMD, OMP_CLAUSE_LINEAR,
15504 OMP_CLAUSE_SAFELEN.
15505 (check_omp_nesting_restrictions): Same.
15506 (omp_max_vf): New.
15507 (lower_rec_simd_input_clauses): New.
15508 (lower_rec_input_clauses): Handle OMP_SIMD, GF_OMP_FOR_KIND_SIMD,
15509 OMP_CLAUSE_LINEAR.
15510 (lower_lastprivate_clauses): Handle OMP_CLAUSE_LINEAR,
15511 GF_OMP_FOR_KIND_SIMD, OMP_SIMD.
15512 (expand_omp_build_assign): New.
15513 (expand_omp_for_init_counts): New.
15514 (expand_omp_for_init_vars): New.
15515 (extract_omp_for_update_vars): New.
15516 (expand_omp_for_generic): Use expand_omp_for_{init,update}_vars
15517 and rewrite accordingly.
15518 (expand_omp_simd): New.
15519 (expand_omp_for): Use expand_omp_simd.
15520 (lower_omp_for_lastprivate): Unshare vinit when appropriate.
15521 (lower_omp_for): Do not lower the body.
15522 * tree-data-ref (get_references_in_stmt): Allow IFN_GOMP_SIMD_LANE
15523 in their own loops.
15524 * tree-flow.h (find_omp_clause): Remove prototype.
c3d2d0e4 15525 * tree-if-conv.c (main_tree_if_conversion): Run if doing if conversion,
15526 forcing vectorization of the loop, or if flag_tree_vectorize.
3d483a94 15527 (gate_tree_if_conversion): Similarly.
15528 * tree-inline.c (remap_gimple_stmt): Pass for kind argument to
15529 gimple_build_omp_for.
15530 (copy_cfg_body): set has_force_vect_loops and has_simduid_loops.
15531 * tree-parloops (create_parallel_loop): Pass kind argument to
15532 gimple_build_omp_for.
15533 * tree-pretty-print.c (dump_omp_clause): Add cases for
15534 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_LINEAR, OMP_CLAUSE_SAFELEN,
15535 OMP_CLAUSE__SIMDUID_.
15536 (dump_generic_node): Handle OMP_SIMD.
15537 * tree-ssa-ccp.c (likely_value): Handle IFN_GOMP_SIMD*.
15538 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Do not
15539 unroll OMP_SIMD loops here.
c3d2d0e4 15540 * tree-ssa-loop.c (gate_tree_vectorize): Run if has_force_vect_loops.
3d483a94 15541 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Handle
c3d2d0e4 15542 loop->safelen.
3d483a94 15543 (vect_analyze_data_refs): Handle simd loops.
15544 * tree-vect-loop.c (vectorizable_live_operation): Handle
15545 IFN_GOMP_SIMD*.
c3d2d0e4 15546 * tree-vect-stmts.c (vectorizable_call): Handle IFN_GOMP_SIMD_LANE.
3d483a94 15547 (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P.
15548 (vectorizable_load): Same.
c3d2d0e4 15549 * tree-vectorizer.c: Include hash-table.h and tree-ssa-propagate.h.
3d483a94 15550 (struct simduid_to_vf): New.
15551 (simduid_to_vf::hash): New.
15552 (simduid_to-vf::equal): New.
15553 (struct simd_array_to_simduid): New.
15554 (simd_array_to_simduid::hash): New.
15555 (simd_array_to_simduid::equal): New.
15556 (adjust_simduid_builtins): New.
15557 (struct note_simd_array_uses_struct): New.
15558 (note_simd_array_uses_cb): New.
15559 (note_simd_array_uses): New.
15560 (vectorize_loops): Handle simd hints and adjust simd builtins
15561 accordingly.
15562 * tree-vectorizer.h (struct _stmt_vec_info): Add
15563 simd_lane_access_p field.
15564 (STMT_VINFO_SIMD_LANE_ACCESS_P): New macro.
15565 * tree.c (omp_clause_num_ops): Add entries for OMP_CLAUSE_LINEAR,
15566 OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_UNIFORM.
15567 (omp_clause_code_name): Same.
15568 (walk_tree_1): Handle OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN,
15569 OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_LINEAR.
15570 * tree.def (OMP_SIMD): New entry.
c3d2d0e4 15571 * tree.h (enum omp_clause_code): Add entries for OMP_CLAUSE_LINEAR,
15572 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_.
3d483a94 15573 (OMP_CLAUSE_DECL): Adjust range for new clauses.
15574 (OMP_CLAUSE_LINEAR_NO_COPYIN): New.
15575 (OMP_CLAUSE_LINEAR_NO_COPYOUT): New.
15576 (OMP_CLAUSE_LINEAR_STEP): New.
15577 (OMP_CLAUSE_SAFELEN_EXPR): New.
15578 (OMP_CLAUSE__SIMDUID__DECL): New.
15579 (find_omp_clause): New prototype.
15580
0f227eb8 155812013-08-27 H.J. Lu <hongjiu.lu@intel.com>
15582
15583 * config/i386/driver-i386.c (host_detect_local_cpu): Update
15584 Haswell processor detection.
15585
2f3d7a64 155862013-08-27 Christian Widmer <shadow@umbrox.de>
15587
15588 PR target/57927
15589 * config/i386/driver-i386.c (host_detect_local_cpu): Add detection
15590 of Ivy Bridge and Haswell processors. Assume core-avx2 for unknown
15591 AVX2 capable processors.
15592
024b3420 155932013-08-27 Tejas Belagod <tejas.belagod@arm.com>
15594
15595 * config/aarch64/arm_neon.h: Replace all inline asm implementations
15596 of vget_low_* with implementations in terms of other intrinsics.
15597
a679ddb9 155982013-08-27 Marc Glisse <marc.glisse@inria.fr>
15599
15600 PR middle-end/57219
15601 * doc/extend.texi (__builtin_isinf_sign): Restrict the return
15602 values to -1, 0 and 1.
15603
56741832 156042013-08-27 Vidya Praveen <vidyapraveen@arm.com>
15605
15606 * config/aarch64/aarch64.md (unspec): Add UNSPEC_SISD_SSHL,
15607 UNSPEC_SISD_USHL, UNSPEC_USHL_2S, UNSPEC_SSHL_2S, UNSPEC_SISD_NEG.
15608 (<optab><mode>3_insn): Remove.
15609 (aarch64_ashl_sisd_or_int_<mode>3): New Pattern.
15610 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
15611 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
15612 (define_split for aarch64_lshr_sisd_or_int_di3): Likewise.
15613 (define_split for aarch64_lshr_sisd_or_int_si3): Likewise.
15614 (define_split for aarch64_ashr_sisd_or_int_di3): Likewise.
15615 (define_split for aarch64_ashr_sisd_or_int_si3): Likewise.
15616 (aarch64_sisd_ushl, aarch64_sisd_sshl): Likewise.
15617 (aarch64_ushl_2s, aarch64_sshl_2s, aarch64_sisd_neg_qi): Likewise.
15618 (ror<mode>3_insn): Likewise.
15619 * config/aarch64/predicates.md (aarch64_simd_register): New.
15620
71fa3334 156212013-08-27 Richard Biener <rguenther@suse.de>
15622
15623 PR tree-optimization/57521
15624 * tree-if-conv.c (if_convertible_bb_p): Verify that at least
15625 one edge is non-critical.
15626 (find_phi_replacement_condition): Make sure to use a non-critical
15627 edge. Cleanup and remove old bug workarounds.
15628 (bb_postdominates_preds): Remove.
15629 (if_convertible_loop_p_1): Do not compute post-dominators.
15630 (combine_blocks): Do not free post-dominators.
15631 (main_tree_if_conversion): Likewise.
15632 (pass_data_if_conversion): Add TODO_verify_ssa.
15633
acb1c4c4 156342013-08-27 DJ Delorie <dj@redhat.com>
15635
15636 * config/i386/djgpp.h (ASM_DECLARE_FUNCTION_NAME): New.
15637
25178032 156382013-08-27 Yufeng Zhang <yufeng.zhang@arm.com>
15639
15640 * function.c (assign_parm_find_data_types): Set passed_mode and
15641 nominal_mode to the TYPE_MODE of nominal_type for the built
15642 pointer type in case of the struct-pass-by-reference.
15643
e560bc44 156442013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
15645
15646 * config/avr/avr-stdint.h (INT16_TYPE): Change default to "int".
15647 (UINT16_TYPE): Change default to "unsigned int".
15648
226d57b0 15649 * config/avr/avr.opt (mfract-convert-truncate): New option.
15650 * config/avr/avr.c (avr_out_fract): Unless TARGET_FRACT_CONV_TRUNC
15651 is set, round negative fractional integers according to n1169
15652 when converting to integer types.
15653
0066bc5c 156542013-08-26 Jan Hubicka <jh@suse.cz>
15655
15656 * cgraph.c (cgraph_propagate_frequency): Do not assume that virtual
15657 methods can not be called indirectly when their address is not taken.
15658
9b3e908f 156592013-08-26 Jan Hubicka <jh@suse.cz>
15660
c3d2d0e4 15661 * gimple-fold.c (gimple_get_virt_method_for_binfo): Use
15662 ctor_for_folding.
9b3e908f 15663
5958c55d 156642013-08-26 Jan Hubicka <jh@suse.cz>
15665
15666 * ipa.c (comdat_can_be_unshared_p_1): C++ constructors and destructors
15667 can be unshared.
15668
e88abf52 156692013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
15670
15671 * reload.c (find_valid_class): Allow classes that do not include
15672 FIRST_PSEUDO_REGISTER - 1.
15673
8b83e6bf 156742013-08-26 Jan Hubicka <jh@suse.cz>
15675
15676 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix formatting;
15677 fix edge count/frequency when speculation failed; fix type check
15678 for the direct call.
15679
cb4d77e1 156802013-08-26 Jan Hubicka <jh@suse.cz>
15681
15682 * ipa-prop.c (ipa_print_node_params): Do not ICE during WPA.
15683
dc3d1030 156842013-08-26 Jan Hubicka <jh@suse.cz>
15685
15686 * ipa-inline-transform.c (inline_transform): Be ready for basic block
15687 to be changed by edge redirection.
15688
4582129e 156892013-08-26 Jan Hubicka <jh@suse.cz>
15690
c3d2d0e4 15691 * cgraph.c (cgraph_speculative_call_info): Fix parameter order and
15692 formating; add sanity check.
4582129e 15693 (cgraph_resolve_speculation): Add FIXME about scaling profiles.
15694 (cgraph_redirect_edge_call_stmt_to_callee): Fix ICE in debug dump.
15695 * ipa-inline.c (heap_edge_removal_hook): Reset node growth cache.
15696 (resolve_noninline_speculation): Update callee keys, too.
15697
fc3dabd5 156982013-08-26 Jan Hubicka <jh@suse.cz>
15699
15700 * tree.h (tree_decl_with_vis): Add cxx_constructor, cxx_destructor.
15701 (DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P): New macros.
15702
5be94117 157032013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
15704
15705 * config/i386/i386.c (x86_64_elf_select_section): Put ATTRIBUTE_UNUSED
15706 into proper place.
15707
40bbd8ae 157082013-08-26 Uros Bizjak <ubizjak@gmail.com>
15709
15710 * config/i386/i386.c (ix86_debug_options): Remove prototype.
15711 (x86_64_elf_select_section): Ditto.
15712 (ix86_handle_tm_regparm_attribute): Remove ATTRIBUTE_UNUSED on used
15713 arguments.
15714 (ix86_pass_by_reference): Ditto.
40bbd8ae 15715 (output_set_got): Ditto.
15716 (ix86_unary_operator_ok): Ditto.
15717 (ix86_expand_builtin): Ditto.
15718
8d68eb11 157192013-08-23 Jan Hubicka <jh@suse.cz>
15720
40bbd8ae 15721 * cgraph.c (cgraph_turn_edge_to_speculative): Fix debug output.
8d68eb11 15722
585bb356 157232013-08-23 Jan Hubicka <jh@suse.cz>
15724
15725 * tree.h (TYPE_FINAL_P, DECL_FINAL_P): New macros.
15726 (tree_decl_with_vis): Add FINAL field.
15727
fc289b83 157282013-08-23 Jeff Law <law@redhat.com>
15729
15730 * tree-ssa-pre.c (do_regular_insertion): Include the expression in
15731 the debugging dump when the expression is fully redundant.
15732
6f07f480 157332013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
15734
15735 * diagnostic.c (diagnostic_set_caret_max_width): Use pp_buffer.
15736 * gimple-pretty-print.c (gimple_dump_bb_buff): Likewise.
15737 * pretty-print.c (pp_formatted_text_data): Likewise.
15738 (pp_write_text_to_stream): Likewise.
15739 (pp_write_text_as_dot_label_to_stream): Likewise.
15740 (pp_append_r): Likewise.
15741 (pp_format): Likewise.
15742 (pp_flush): Likewise.
15743 (pp_clear_output_area): Likewise.
15744 (pp_append_text): Likewise.
15745 (pp_formatted_text): Likewise.
15746 (pp_remaining_character_count_for_line): Likewise.
15747 (pp_newline): Likewise.
15748 (pp_character): Likewise.
15749 (output_buffer::~output_buffer): Define.
15750 (pretty_printer::~pretty_printer): Destruct output buffer.
15751 * pretty-print.h (output_buffer::~output_buffer): Declare.
15752 (pretty_printer::~pretty_printer): Declare virtual.
15753
561f0ec8 157542013-08-24 Marc Glisse <marc.glisse@inria.fr>
15755
15756 PR other/57324
15757 * hwint.h (HOST_WIDE_INT_UC, HOST_WIDE_INT_1U, HOST_WIDE_INT_M1,
15758 HOST_WIDE_INT_M1U): New macros.
15759 * fold-const.c (sign_bit_p, build_range_check, fold_unary_loc,
15760 fold_binary_loc, fold_ternary_loc): Use the new macros. Use an
15761 unsigned -1 for lshift.
15762 * cse.c (cse_insn): Likewise.
15763 * double-int.c (rshift_double, lshift_double): Likewise.
15764 * builtins.c (fold_builtin_bitop): Likewise.
15765 * combine.c (force_to_mode): Likewise.
15766 * tree.c (integer_pow2p, tree_log2, tree_floor_log2): Likewise.
15767 * simplify-rtx.c (simplify_const_unary_operation,
15768 simplify_const_binary_operation): Likewise.
15769 * tree-stdarg.c (va_list_counter_bump, va_list_ptr_read,
15770 check_va_list_escapes): Likewise.
15771 * rtlanal.c (nonzero_bits1): Likewise.
15772 * expmed.c (expand_smod_pow2): Likewise.
15773 * tree-ssa-structalias.c (UNKNOWN_OFFSET): Use HOST_WIDE_INT_MIN.
15774
d6f173db 157752013-08-23 Jan Hubicka <jh@suse.cz>
15776
15777 * cgraph.c (cgraph_turn_edge_to_speculative): Mark target node
15778 as having address taken.
15779
1e4f4118 157802013-08-23 Jan Hubicka <jh@suse.cz>
15781
6d5f1e49 15782 * ipa-utils.h (method_class_type): Declare.
15783 * ipa-devirt.c (method_class_type): Export.
15784
1e4f4118 15785 * cgraphunit.c (analyze_functions): Do basic devirtualization;
15786 do not walk base classes of anonymous types.
15787
04ad818c 157882013-08-23 Kaz Kojima <kkojima@gcc.gnu.org>
15789
15790 PR rtl-optimization/58220
15791 PR regression/58221
15792 * final.c (reemit_insn_block_notes): Use NEXT_INSN to
15793 handle SEQUENCE insns properly.
15794
b8ab5fbc 157952013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
15796
15797 * pretty-print.h (pp_newline_and_flush): Declare. Remove macro
15798 definition.
15799 (pp_newline_and_indent): Likewise.
15800 (pp_separate_with): Likewise.
15801 * pretty-print.c (pp_newline_and_flush): Define.
15802 (pp_newline_and_indent): Likewise.
15803 (pp_separate_with): Likewise.
15804
65e3f673 158052013-08-23 Jakub Jelinek <jakub@redhat.com>
15806
15807 PR target/58218
15808 * config/i386/x86-64.h (TARGET_SECTION_TYPE_FLAGS): Define.
15809 * config/i386/i386.c (x86_64_elf_section_type_flags): New function.
15810
acd30502 158112013-08-23 Kirill Yukhin <kirill.yukhin@intel.com>
15812
e33c5592 15813 * config/i386/predicates.md (ext_sse_reg_operand): New.
15814 * config/i386/i386.md (*movti_internal): Use
acd30502 15815 predicate to determine if EVEX is needed.
15816 (*movsi_internal): Ditto.
15817 (*movdf_internal): Ditto.
15818 (*movsf_internal): Ditto.
e33c5592 15819 * config/i386/mmx.md (*mov<mode>_internal): Ditto.
acd30502 15820
a6f8b9b9 158212013-08-23 Jakub Jelinek <jakub@redhat.com>
15822
15823 PR tree-optimization/58209
15824 * tree-tailcall.c (process_assignment): Handle POINTER_PLUS_EXPR.
15825 (find_tail_calls): Give up for pointer result types if m is non-NULL.
15826 (adjust_return_value_with_ops): For PLUS_EXPR and pointer result type
15827 emit POINTER_PLUS_EXPR.
15828 (create_tailcall_accumulator): For pointer result type accumulate in
15829 sizetype type.
15830
2bf21072 158312013-08-22 Paolo Carlini <paolo.carlini@oracle.com>
15832
15833 * configure.ac: Add backslashes missing from the last change.
15834 * configure: Regenerate.
15835
a0e18397 158362013-08-22 Jan Hubicka <jh@susue.cz>
15837
2bf21072 15838 * ipa.c (function_and_variable_visibility): First remember function
15839 was global and then make it local.
a0e18397 15840
b3b2d3c1 158412013-08-22 Julian Brown <julian@codesourcery.com>
15842
15843 * configure.ac: Add aarch64 to list of arches which use "nop" in
15844 debug_line test.
15845 * configure: Regenerate.
15846
b914218c 158472013-08-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15848
15849 * config/s390/linux.h (TARGET_LIBC_HAS_FUNCTION): Define as
15850 gnu_libc_has_function.
15851 * config/s390/tpf.h: Likewise.
15852
2bdfa43d 158532013-08-22 Jan Hubicka <jh@susue.cz>
15854
15855 * timevar.c (validate_phases): Add cast.
15856
0e5e1e90 158572013-08-22 Jan Hubicka <jh@susue.cz>
15858
15859 * timevar.c (validate_phases): Use size_t for memory.
15860 * timevar.h (struct timevar_time_def): Use size_t for ggc_mem.
15861
eed6bc21 158622013-08-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
15863
15864 * pretty-print.h (output_buffer::output_buffer): Declare.
15865 (pretty_printer::pretty_printer): Likewise.
15866 (pp_construct): Remove.
15867 * pretty-print.c (output_buffer::output_buffer): Define.
15868 (pretty_printer::pretty_printer): Rename from pp_construct. Simplify.
15869 * gimple-pretty-print.c (print_gimple_stmt): Do not call pp_construct.
15870 (print_gimple_expr): Likewise.
15871 (print_gimple_seq): Likewise.
15872 (gimple_dump_bb): Likewise.
15873 * sched-vis.c (dump_value_slim): Likewise.
15874 (dump_insn_slim): Likewise.
15875 (dump_rtl_slim): Likewise.
15876 (str_pattern_slim): Likewise.
15877 * tree-mudflap.c (mf_varname_tree): Likewise.
15878 * graph.c (print_graph_cfg): Likewise.
15879 (start_graph_dump): Likewise.
15880 * tree-pretty-print.c (maybe_init_pretty_print): Likewise. Use
15881 placement-new.
15882 * diagnostic.c (diagnostic_initialize): Simplify early diagnostic
15883 pretty printer initialization.
15884 * coretypes.h (diagnostic_context): Remove superflous type alias
15885 declaration.
15886 (pretty_printer): Likewise. Declare directly as a class.
15887 (pretty_print_info): Remove declaration as class.
15888 * asan.c (asan_emit_stack_protection): Remove call to pp_construct
15889 and pp_clear_output_area.
15890 (asan_add_global): Likewise.
15891
07c6dcc3 158922013-08-22 Jan Hubicka <jh@suse.cz>
15893
15894 * cgraphunit.c (analyze_functions) Use update_type_inheritance_graph.
15895 * ipa-utils.h (update_type_inheritance_graph): Declare.
15896 (possible_polymorphic_call_target_p): Declare.
15897 (possible_polymorphic_call_target_p): New.
15898 * ipa-devirt.c: Update toplevel comments.
15899 (cached_polymorphic_call_targets): Move up.
15900 (odr_type_d): Move ID down.
15901 (polymorphic_type_binfo_p): Update comment.
15902 (odr_hasher::remove): Likewise;
15903 (get_odr_type): Set anonymous_namespace.
15904 (dump_odr_type): Dump it.
15905 (dump_type_inheritance_graph): Do not ICE when there are no ODR types.
15906 (maybe_record_node): Record node in cached_polymorphic_call_targets.
15907 (record_binfo): Add comment.
40bbd8ae 15908 (free_polymorphic_call_targets_hash): Do not ICE when cache is not
15909 built.
07c6dcc3 15910 (devirt_node_removal_hook): Do not iCE when cache is freed.
15911 (possible_polymorphic_call_target_p): New predicate.
15912 (update_type_inheritance_graph): New function.
15913
e13e1b39 159142013-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
15915 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
15916 Sergey Lega <sergey.s.lega@intel.com>
15917 Anna Tikhonova <anna.tikhonova@intel.com>
15918 Ilya Tocar <ilya.tocar@intel.com>
15919 Andrey Turetskiy <andrey.turetskiy@intel.com>
15920 Ilya Verbin <ilya.verbin@intel.com>
15921 Kirill Yukhin <kirill.yukhin@intel.com>
15922 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
15923
15924 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_SET): New.
15925 (OPTION_MASK_ISA_AVX512CD_SET): Ditto.
15926 (OPTION_MASK_ISA_AVX512PF_SET): Ditto.
15927 (OPTION_MASK_ISA_AVX512ER_SET): Ditto.
15928 (OPTION_MASK_ISA_AVX2_UNSET): Update.
15929 (OPTION_MASK_ISA_AVX512F_UNSET): New.
15930 (OPTION_MASK_ISA_AVX512CD_UNSET): Ditto.
15931 (OPTION_MASK_ISA_AVX512PF_UNSET): Ditto.
15932 (OPTION_MASK_ISA_AVX512ER_UNSET): Ditto.
15933 (ix86_handle_option): Handle OPT_mavx512f, OPT_mavx512cd,
15934 OPT_mavx512pf, OPT_mavx512er cases.
15935 * config/i386/constraints.md (v): New constraint.
15936 (Yi, Yj): Replace SSE_REGS with ALL_SSE_REGS.
15937 * config/i386/cpuid.h (bit_AVX512F, bit_AVX512PF, bit_AVX512ER)
15938 (bit_AVX512CD): New.
15939 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
15940 AVX512F, AVX512ER, AVX512PF, AVX512CD features.
15941 * config/i386/i386-c.c (ix86_target_macros_internal):
15942 Conditionally define __AVX512F__, __AVX512ER__, __AVX512CD__,
15943 __AVX512PF__.
15944 * config/i386/i386-modes.def (VECTOR_MODES (INT, 128))
15945 (VECTOR_MODES (FLOAT, 128), INT_MODE (XI, 64)): New modes.
15946 * config/i386/i386.c (regclass_map, dbx_register_map)
15947 (dbx64_register_map, svr4_dbx_register_map): Add new SSE registers.
15948 (gate_insert_vzeroupper): Disable vzeroupper for TARGET_AVX512F.
15949 (ix86_target_string): Define -mavx512f, -mavx512er, -mavx512cd,
15950 -mavx512pf options.
15951 (ix86_option_override_internal): Define PTA_AVX512F, PTA_AVX512ER,
15952 PTA_AVX512PF, PTA_AVX512CD. Handle -mavx512f, -mavx512er, -mavx512cd,
15953 -mavx512pf options. Fix formatting.
15954 (ix86_conditional_register_usage): Squash EXT_REX_SSE_REGs for 32-bit
15955 targets. Squash EVEX_SSE_REGS if AVX512F is disabled.
15956 (ix86_valid_target_attribute_inner_p): Handle -mavx512f, -mavx512er,
15957 -mavx512cd, -mavx512pf options.
15958 (standard_sse_constant_opcode): Add vpternlogd for 512-bit modes.
15959 (print_reg, ix86_print_operand): Handle 'g' to output 512-bit operands.
15960 (ix86_preferred_output_reload_class): Replace SSE_REGS with
15961 ALL_SSE_REGS.
15962 (ix86_hard_regno_mode_ok): Support 512-bit registers.
15963 (ix86_set_reg_reg_cost): Ditto.
15964 (x86_order_regs_for_local_alloc): Ditto.
15965 (MAX_VECT_LEN): Extend to 64-byte.
15966 (ix86_spill_class): Replace SSE_REGS with ALL_SSE_REGS.
15967 * config/i386/i386.h (TARGET_AVX512F, TARGET_AVX512PF)
15968 (TARGET_AVX512ER, TARGET_AVX512CD): New.
15969 (BIGGEST_ALIGNMENT): Extend to 512-bits.
15970 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS): Add new registers.
15971 (CALL_USED_REGISTERS, REG_ALLOC_ORDER): Likewise.
15972 (VALID_AVX512F_SCALAR_MODE, VALID_AVX512F_REG_MODE): New.
15973 (SSE_REG_MODE_P): Support new modes.
15974 (FIRST_MMX_REG, FIRST_REX_INT_REG, FIRST_REX_SSE_REG): Add comments.
15975 (FIRST_EXT_REX_SSE_REG, LAST_EXT_REX_SSE_REG): New.
15976 (reg_class, REG_CLASS_NAMES): Add EVEX_SSE_REGS, ALL_SSE_REGS.
15977 (SSE_CLASS_P, MAYBE_SSE_CLASS_P): Replace SSE_REGS with ALL_SSE_REGS.
15978 (REG_CLASS_CONTENTS): Add new registers.
15979 (SSE_REGNO_P, SSE_REGNO, HARD_REGNO_RENAME_OK): Support new registers.
15980 (EXT_REX_SSE_REGNO_P): New.
15981 (HI_REGISTER_NAMES): Add new registers.
15982 * config/i386/i386.md: Define constants for new registers.
15983 (mode): Add new 512-bit modes.
15984 (prefix): Support evex prefix.
15985 (isa): Support avx512f, noavx512f, fma_avx512f.
15986 (ssemodesuffix): Add new 512-bit modes.
15987 (movxi): New.
15988 (*movxi_internal_avx512f): Ditto.
15989 (*movdi_internal): Replace constraint "x" with the new constraint "v".
15990 Support MODE_XI.
15991 (*movsi_internal): Likewise.
15992 (*movdf_internal): Likewise.
15993 (*movsf_internal): Likewise.
15994 (*fop_<mode>_comm_sse): Replace constraint "x" with new constraint "v".
15995 (<code><mode>3): Likewise.
40bbd8ae 15996 * config/i386/i386.opt (mavx512f, mavx512pf, mavx512er, mavx512cd):
15997 New.
e13e1b39 15998 * config/i386/mmx.md (*mov<mode>_internal): Replace constraint "x"
15999 with the new constraint "v".
16000 * config/i386/sse.md (*mov<mode>_internal): Support new registers and
16001 modes.
16002 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Replace constraint "x"
16003 with the new constraint "v".
16004 (<sse2>_loaddqu<avxsizesuffix>): Likewise.
16005 (<sse2>_storedqu<avxsizesuffix>): Likewise.
16006 (*<plusminus_insn><mode>3): Likewise.
16007 (<sse>_vm<plusminus_insn><mode>3): Likewise.
16008 (*mul<mode>3): Likewise.
16009 (<sse>_vmmul<mode>3): Likewise.
16010 (<sse>_div<mode>3): Likewise.
16011 (<sse>_vmdiv<mode>3): Likewise.
16012 (<sse>_sqrt<mode>2): Likewise.
16013 (<sse>_vmsqrt<mode>2): Likewise.
16014 (*<code><mode>3_finite): Likewise.
16015 (*<code><mode>3) <smaxmin>: Likewise.
16016 (<sse>_vm<code><mode>3): Likewise.
16017 (*<code><mode>3) <any_logic>: Likewise.
16018 (*fma_fmadd_<mode>): Likewise.
16019 (*fma_fmsub_<mode>): Likewise.
16020 (*fma_fnmadd_<mode>): Likewise.
16021 (*fma_fnmsub_<mode>): Likewise.
16022 (*fma_fmaddsub_<mode>): Likewise.
16023 (*fma_fmsubadd_<mode>): Likewise.
16024 (*fmai_fmadd_<mode>): Likewise.
16025 (*fmai_fmsub_<mode>): Likewise.
16026 (*fmai_fnmadd_<mode>): Likewise.
16027 (*fmai_fnmsub_<mode>): Likewise.
16028 (sse_cvtsi2ss): Likewise.
16029 (sse_cvtsi2ssq): Likewise.
16030 (sse_cvtss2si): Likewise.
16031 (sse_cvtss2si_2): Likewise.
16032 (sse_cvtss2siq): Likewise.
16033 (sse_cvtss2siq_2): Likewise.
16034 (sse_cvttss2si): Likewise.
16035 (sse_cvtss2siq_2): Likewise.
16036 (float<sseintvecmodelower><mode>2): Likewise.
16037 (sse2_cvtsd2si_2): Likewise.
16038 (sse2_cvtsd2siq_2): Likewise.
16039 (*<plusminus_insn><mode>3): Likewise.
16040 (*<sse2_avx2>_<plusminus_insn><mode>3): Likewise.
16041 (*<sse4_1_avx2>_mul<mode>3): Likewise.
16042 (ashr<mode>3): Likewise.
16043 (<shift_insn><mode>3): Likewise.
16044 (avx2_<code><mode>3): Likewise.
16045 (*avx2_<code><mode>3): Likewise.
16046 (*andnot<mode>3): Likewise.
16047 (*<code><mode>3) <any_logic>: Likewise.
16048 (abs<mode>2): Likewise.
16049 (avx2_permvar<mode>): Likewise.
16050 (avx2_perm<mode>_1): Likewise.
16051 (*avx_vpermilp<mode>): Likewise.
16052 (avx_vpermilvar<mode>3): Likewise.
16053 (avx2_ashrv<mode>): Likewise.
16054 (avx2_<shift_insn>v<mode>): Likewise.
16055 * doc/invoke.texi: Document -mavx512f, -mavx512pf, -mavx512er,
16056 -mavx512cd.
16057 * doc/rtl.texi: Document XImode.
16058
fd0a91c9 160592013-08-21 Jeff Law <law@redhat.com>
16060
5411af4e 16061 * tree-flow.h (register_jump_thread): Pass vector of edges
16062 instead of each important edge.
16063 * tree-ssa-threadedge.c (thread_across_edge): Build the jump
16064 thread path into a vector and pass that to register_jump_thread.
16065 * tree-ssa-threadupdate.c (register_jump_thread): Conver the
16066 passed in edge vector to the current 3-edge form.
16067
fd0a91c9 16068 Revert:
16069 2013-08-20 Alexey Makhalov <makhaloff@gmail.com>
16070
7815b5eb 16071 * dce.c (fini_dce): Call df_analyze again just in case
fd0a91c9 16072 delete_unmarked_insns removed anything.
16073
1fc48050 160742013-08-21 Joern Rennecke <joern.rennecke@embecosm.com>
16075
16076 * reload.h (struct reg_equivs): Rename to ..
16077 (struct reg_equivs_s): .. this.
16078
90d0add2 160792013-08-20 Martin Liska <marxin.liska@gmail.com>
16080
16081 * ipa.c (ipa_profile_read_summary): Fix buffer overflow.
16082
04674afb 160832013-08-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16084
40bbd8ae 16085 * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Don't nest comment.
04674afb 16086
eff54963 160872013-08-21 Jeff Law <law@redhat.com>
16088
16089 * tree-vrp.c (simplify_stmt_for_jump_threading): Try to
16090 simplify assignments too. If the RHS collapses to a singleton
16091 range, then return the value for the range.
16092
8671b6cc 160932013-08-21 Kirill Yukhin <kirill.yukhin@intel.com>
16094
1a1634db 16095 * config/i386/sse.md (V16): Rename to...
16096 (VMOVE): this.
16097 (mov<mode>): Update iterator name.
16098 (*mov<mode>_internal): Ditto.
16099 (push<mode>1): Ditto.
16100 (movmisalign<mode>): Ditto.
8671b6cc 16101
29074219 161022013-08-20 Jan Hubicka <jh@suse.cz>
16103
16104 PR bootstrap/58186
16105 * cgraph.c (cgraph_add_edge_to_call_site_hash): Overwrite hash
16106 entry for direct edges.
16107 (cgraph_turn_edge_to_speculative): Fix setting of can_throw_external.
16108
5d068519 161092013-08-20 David Malcolm <dmalcolm@redhat.com>
16110
16111 Revert my last two changes, r201865 and r201864:
16112
16113 Revert r201865:
16114 2013-08-20 David Malcolm <dmalcolm@redhat.com>
16115
16116 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
16117 instances can own GC refs.
16118
16119 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
16120 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
16121 (gcc::context::gt_pch_nx): Likewise.
16122 (gcc::context::gt_pch_nx): Likewise.
16123 * ggc.h (gt_ggc_mx <T>): New.
16124 (gt_pch_nx_with_op <T>): New.
16125 (gt_pch_nx <T>): New.
16126 * passes.c (opt_pass::gt_ggc_mx): New.
16127 (opt_pass::gt_pch_nx): New.
16128 (opt_pass::gt_pch_nx_with_op): New.
16129 (pass_manager::gt_ggc_mx): New.
16130 (pass_manager::gt_pch_nx): New.
16131 (pass_manager::gt_pch_nx_with_op): New.
16132 (pass_manager::operator new): Use
16133 ggc_internal_cleared_alloc_stat rather than xcalloc.
16134 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
16135 (pass_manager::gt_ggc_mx): New.
16136 (pass_manager::gt_pch_nx): New.
16137 (pass_manager::gt_pch_nx_with_op): New.
16138 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
16139 (opt_pass::operator new): New.
16140 (opt_pass::gt_ggc_mx): New.
16141 (opt_pass::gt_pch_nx): New.
16142 (opt_pass::gt_pch_nx_with_op): New.
16143
16144 Revert r201864:
16145 2013-08-20 David Malcolm <dmalcolm@redhat.com>
16146
16147 * Makefile.in (GTFILES): Add context.h.
16148 * context.c (gcc::context::operator new): New.
16149 (gcc::context::gt_ggc_mx): New.
16150 (gcc::context::gt_pch_nx): New.
16151 (gcc::context::gt_pch_nx): New.
16152 * context.h (gcc::context): Add GTY((user)) marking.
16153 (gcc::context::operator new): New.
16154 (gcc::context::gt_ggc_mx): New.
16155 (gcc::context::gt_pch_nx): New.
16156 (gcc::context::gt_pch_nx): New.
16157 (g): Add GTY marking.
16158 (gt_ggc_mx (gcc::context *)): New.
16159 (gt_pch_nx (gcc::context *)): New.
16160 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
16161 void *cookie)): New.
16162 * gengtype.c (open_base_files) <ifiles>: Add context.h.
16163
ba32c600 161642013-08-20 Alexey Makhalov <makhaloff@gmail.com>
16165
16166 * dce.c (fini_dce): Call df_analyze again just in case
16167 delete_unmarked_insns removed anything.
16168
4874cc89 161692013-08-20 Teresa Johnson <tejohnson@google.com>
16170
16171 PR rtl-optimizations/57451
16172 * final.c (reemit_insn_block_notes): Prevent lexical blocks
16173 from crossing split section boundaries.
16174
8d0ea08f 161752013-08-20 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
16176
16177 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Remove definition.
16178 * config/arm/t-linux-eabi (MULTILIB_OPTIONS): Document association
16179 with MULTLIB_DEFAULTS.
16180
866cf42b 161812013-08-20 Nick Clifton <nickc@redhat.com>
16182
16183 * target.def (narrow_volatile_bitfield): Note that the default
16184 value is false, not !TARGET_STRICT_ALIGN.
16185 * doc/tm.texi: Regenerate.
16186
aa2d8e18 161872013-08-20 Pavel Chupin <pavel.v.chupin@intel.com>
16188
16189 Fix LIB_SPEC for systems without libpthread.
16190
16191 * config/gnu-user.h: Introduce GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC.
16192 * config/arm/linux-eabi.h: Use GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC
16193 for Android.
16194 * config/i386/linux-common.h: Likewise.
16195 * config/mips/linux-common.h: Likewise.
16196
c3d2d0e4 161972013-08-20 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
b45b214a 16198
16199 * tree-ssa-ccp.c (get_default_value): Remove redundant condition
16200 checks.
16201
cb9c5e76 162022013-08-20 David Malcolm <dmalcolm@redhat.com>
16203
16204 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
16205 instances can own GC refs.
16206
16207 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
16208 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
16209 (gcc::context::gt_pch_nx): Likewise.
16210 (gcc::context::gt_pch_nx): Likewise.
16211 * ggc.h (gt_ggc_mx <T>): New.
16212 (gt_pch_nx_with_op <T>): New.
16213 (gt_pch_nx <T>): New.
16214 * passes.c (opt_pass::gt_ggc_mx): New.
16215 (opt_pass::gt_pch_nx): New.
16216 (opt_pass::gt_pch_nx_with_op): New.
16217 (pass_manager::gt_ggc_mx): New.
16218 (pass_manager::gt_pch_nx): New.
16219 (pass_manager::gt_pch_nx_with_op): New.
16220 (pass_manager::operator new): Use
16221 ggc_internal_cleared_alloc_stat rather than xcalloc.
16222 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
16223 (pass_manager::gt_ggc_mx): New.
16224 (pass_manager::gt_pch_nx): New.
16225 (pass_manager::gt_pch_nx_with_op): New.
16226 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
16227 (opt_pass::operator new): New.
16228 (opt_pass::gt_ggc_mx): New.
16229 (opt_pass::gt_pch_nx): New.
16230 (opt_pass::gt_pch_nx_with_op): New.
16231
9e1adc64 162322013-08-20 David Malcolm <dmalcolm@redhat.com>
16233
16234 * Makefile.in (GTFILES): Add context.h.
16235 * context.c (gcc::context::operator new): New.
16236 (gcc::context::gt_ggc_mx): New.
16237 (gcc::context::gt_pch_nx): New.
16238 (gcc::context::gt_pch_nx): New.
16239 * context.h (gcc::context): Add GTY((user)) marking.
16240 (gcc::context::operator new): New.
16241 (gcc::context::gt_ggc_mx): New.
16242 (gcc::context::gt_pch_nx): New.
16243 (gcc::context::gt_pch_nx): New.
16244 (g): Add GTY marking.
16245 (gt_ggc_mx (gcc::context *)): New.
16246 (gt_pch_nx (gcc::context *)): New.
16247 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
16248 void *cookie)): New.
16249 * gengtype.c (open_base_files) <ifiles>: Add context.h.
16250
556d7cf8 162512013-08-20 Alan Modra <amodra@gmail.com>
16252
16253 PR target/57865
16254 * config/rs6000/rs6000.c (rs6000_emit_prologue): Correct ool_adjust.
16255 (rs6000_emit_epilogue): Likewise.
16256
c3d2d0e4 162572013-08-19 Dehao Chen <dehao@google.com>
bce9fa89 16258
16259 * value-prof.c (gimple_ic): Fix the bug of adding EH edge.
16260
8aa32773 162612013-08-19 Peter Bergner <bergner@vnet.ibm.com>
16262 Jakub Jelinek <jakub@redhat.com>
16263
16264 * builtins.def (BUILT_IN_FABSD32): New DFP ABS builtin.
16265 (BUILT_IN_FABSD64): Likewise.
16266 (BUILT_IN_FABSD128): Likewise.
16267 * builtins.c (expand_builtin): Add support for new DFP ABS builtins.
16268 (fold_builtin_1): Likewise.
40bbd8ae 16269 * config/rs6000/dfp.md (*negtd2_fpr): Handle non-overlapping
16270 destination and source operands.
8aa32773 16271 (*abstd2_fpr): Likewise.
16272 (*nabstd2_fpr): Likewise.
16273
2c4dc247 162742013-08-19 Richard Sandiford <rdsandiford@googlemail.com>
16275
16276 * config/mips/mips.c (mips_adjust_insn_length): Add checks for
16277 JUMP_P and INSN_P.
16278
bfbeb32f 162792013-08-19 Aldy Hernandez <aldyh@redhat.com>
16280
16281 * doc/invoke.texi (-fcilkplus): Clarify that implementation is
16282 incomplete.
16283
30f690e0 162842013-08-19 Alexander Ivchenko <alexander.ivchenko@intel.com>
16285
16286 * target.def (TARGET_LIBC_HAS_FUNCTION): New target hook.
16287 * builtins.c (default_libc_has_function): New.
16288 (gnu_libc_has_function): Ditto.
16289 (no_c99_libc_has_function): Ditto.
16290 (expand_builtin_cexpi): Using new target hook TARGET_LIBC_HAS_FUNCTION
16291 instead of TARGET_HAS_SINCOS and TARGET_C99_FUNCTIONS.
16292 (fold_builtin_sincos): Likewise.
16293 (fold_builtin_cexp): Likewise.
16294 * builtins.def (DEF_C94_BUILTIN): Likewise.
16295 (DEF_C99_BUILTIN): Likewise.
16296 (DEF_C99_C90RES_BUILTIN): Likewise.
16297 (DEF_C99_COMPL_BUILTIN): New define. Change all complex c99 builtin
16298 definitions to using this define.
16299 * config/darwin-protos.h (darwin_libc_has_function): New.
40bbd8ae 16300 * config/darwin.c (darwin_libc_has_function): Ditto.
30f690e0 16301 * config/alpha/linux.h: Remove TARGET_C99_FUNCTIONS and
16302 TARGET_HAS_SINCOS. Redefine TARGET_LIBC_HAS_FUNCTION.
16303 * config/darwin.h: Ditto.
16304 * config/elfos.h: Ditto.
16305 * config/freebsd.h: Ditto.
16306 * config/i386/cygming.h: Ditto.
16307 * config/i386/djgpp.h: Ditto.
16308 * config/i386/i386-interix.h: Ditto.
16309 * config/microblaze/microblaze.h: Ditto.
16310 * config/mmix/mmix.h: Ditto.
16311 * config/gnu-user.h: Ditto.
16312 * config/ia64/hpux.h: Ditto.
16313 * config/pa/pa-hpux.h: Ditto.
16314 * config/pdp11/pdp11.h: Ditto.
16315 * config/picochip/picochip.h: Ditto.
16316 * config/linux.h: Ditto.
16317 * config/netbsd.h: Ditto.
16318 * config/openbsd.h: Ditto.
16319 * config/rs6000/aix43.h: Ditto.
16320 * config/rs6000/aix51.h: Ditto.
16321 * config/rs6000/aix52.h: Ditto.
16322 * config/rs6000/aix53.h: Ditto.
16323 * config/rs6000/aix61.h: Ditto.
16324 * config/rs6000/darwin.h: Ditto.
16325 * config/rs6000/linux.h: Ditto.
16326 * config/rs6000/linux64.h: Ditto.
16327 * config/s390/tpf.h: Ditto.
16328 * config/sol2-10.h: Ditto.
16329 * config/sol2.h: Ditto.
16330 * config/vms/vms.h: Ditto.
16331 * config/vxworks.h: Ditto.
16332 * config/linux-android.c (linux_android_libc_has_function):
16333 New linux-specific implementation of TARGET_LIBC_HAS_FUNCTION.
16334 * config/linux-protos.h (linux_android_libc_has_function):
16335 New declaration.
16336 * config/i386/i386.c (ix86_libc_has_function): New.
16337 * config/i386/i386-protos.h
16338 (ix86_libc_has_function): New declaration.
16339 * config/i386/i386.md
16340 ("isinfxf2"): Change condition for TARGET_LIBC_HAS_FUNCTION.
16341 ("isinf<mode>2): Likewise.
16342 * convert.c (convert_to_integer): Using new target hook
16343 TARGET_LIBC_HAS_FUNCTION istead of TARGET_HAS_SINCOS and
16344 TARGET_C99_FUNCTIONS.
16345 * fortran/f95-lang.c (gfc_init_builtin_functions): Ditto.
16346 * tree-ssa-math-opts.c (execute_cse_sincos): Ditto.
16347 * coretypes.h (function_class): New enum for different
16348 classes of functions.
16349 * defaults.h: Remove TARGET_C99_FUNCTIONS and TARGET_HAS_SINCOS.
16350 * doc/tm.texi.in (TARGET_C99_FUNCTIONS): Remove documentation.
16351 (TARGET_HAS_SINCOS): Likewise.
16352 (TARGET_LIBC_HAS_FUNCTION): New.
16353 * doc/tm.texi: Regenerated.
16354 * targhooks.h (default_libc_has_function): New declaration.
16355 (no_c99_libc_has_function): Ditto.
16356 (gnu_libc_has_function): Ditto.
16357 * system.h: Add the poisoning of TARGET_C99_FUNCTIONS
16358 and TARGET_HAS_SINCOS.
16359
5514adf9 163602013-08-18 Jan Hubicka <jh@suse.cz>
16361
16362 * Makeifle-in (ipa-devirt.o): New.
16363 (GTFILES): Add ipa-utils.h and ipa-devirt.c
16364 * cgraphunit.c (decide_is_symbol_needed): Do not care about virtuals.
16365 (analyze_functions): Look into possible targets of polymorphic call.
16366 * dumpfile.c (dump_files): Add type-inheritance dump.
16367 * dumpfile.h (TDI_inheritance): New.
16368 * ipa-devirt.c: New file.
16369 * ipa-utils.h (odr_type_d): Forward declare.
16370 (odr_type): New type.
16371 (build_type_inheritance_graph): Declare.
16372 (possible_polymorphic_call_targets): Declare and introduce inline
16373 variant when only edge is pased.
16374 (dump_possible_polymorphic_call_targets): Likewise.
16375 * timevar.def (TV_IPA_INHERITANCE, TV_IPA_VIRTUAL_CALL): New.
16376 * tree.c (type_in_anonymous_namespace_p): Break out from ...
16377 (types_same_for_odr): ... here.
16378 * tree.h (type_in_anonymous_namespace_p): Declare.
16379
a7c17572 163802013-08-18 Jakub Jelinek <jakub@redhat.com>
16381
16382 PR tree-optimization/58006
16383 * tree-parloops.c (take_address_of): Don't ICE if get_name
16384 returns NULL.
16385 (eliminate_local_variables_stmt): Remove clobber stmts.
16386
a3ddd82f 163872013-08-18 Eric Botcazou <ebotcazou@adacore.com>
16388
16389 * cgraphunit.c (handle_alias_pairs): Reset the alias flag after the
16390 error message is issued for an alias to undefined symbol.
16391
f5e35fed 163922013-08-18 Jan Hubicka <jh@suse.cz>
16393
16394 * cgraph.c (cgraph_create_indirect_edge): Discover
16395 polymorphic calls and record basic info into indirect_info.
16396 * gimple-fold.c (gimple_fold_call): When doing BINFO based
16397 devirtualization, ignore objc function calls.
16398 * ipa-cp.c (initialize_node_lattices): Be ready for polymorphic
16399 call with no parm index info.
16400 * ipa-prop.c (ipa_analyze_call_uses): Likewise.
16401 * tree.c (virtual_method_call_p): New function.
16402 * tree.h (virtual_method_call_p): Declare.
16403
671a5ec0 164042013-08-16 Jan Hubicka <jh@suse.cz>
16405
16406 PR middle-end/58179
16407 * tree.c (obj_type_ref_class): Do not ICE on non-method calls.
16408
c15bdca3 164092013-08-16 David Edelsohn <dje.gcc@gmail.com>
16410
16411 * config/rs6000/rs6000.md (rs6000_get_timebase_ppc32): Add length
16412 attribute.
16413
fb740cdd 164142013-08-16 David Malcolm <dmalcolm@redhat.com>
16415
16416 * gengtype.c (type_for_name): Add special-case support for
16417 locating types within the "gcc::" namespace.
16418 (open_base_files): Emit a "using namespace gcc" directive.
16419
af2b033f 164202013-08-16 Michael Meissner <meissner@linux.vnet.ibm.com>
16421
16422 PR target/58160
16423 * config/rs6000/predicates.md (fusion_gpr_mem_load): Allow the
16424 memory rtx to contain ZERO_EXTEND and SIGN_EXTEND.
16425
16426 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Pass operands
16427 array instead of each individual operand as a separate argument.
16428 (emit_fusion_gpr_load): Likewise.
16429 (expand_fusion_gpr_load): Add new function declaration.
16430
16431 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change the calling
16432 signature to have the operands passed as an array, instead of as
16433 separate arguments. Allow ZERO_EXTEND to be in the memory
16434 address, and also SIGN_EXTEND if -mpower8-fusion-sign. Do not
16435 depend on the register live/dead flags when peepholes are run.
16436 (expand_fusion_gpr_load): New function to be called from the
16437 peephole2 pass, to change the register that addis sets to be the
16438 target register.
16439 (emit_fusion_gpr_load): Change the calling signature to have the
16440 operands passed as an array, instead of as separate arguments.
16441 Allow ZERO_EXTEND to be in the memory address, and also
16442 SIGN_EXTEND if -mpower8-fusion-sign.
16443
16444 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): Delete unused
16445 unspec enumeration.
16446 (power8 fusion peephole/peephole2): Rework the fusion peepholes to
16447 adjust the register addis loads up in the peephole2 pass. Do not
40bbd8ae 16448 depend on the register live/dead state when the peephole pass is done.
af2b033f 16449
05d26185 164502013-08-16 David Malcolm <dmalcolm@redhat.com>
16451
16452 * gengtype.c (create_user_defined_type): Ensure that the kind
16453 is set to TYPE_USER_STRUCT, fixing a bug seen when an incomplete
16454 declaration is seen before the GTY((user)) marking.
16455
022ddfb5 164562013-08-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
16457
16458 PR target/58105
16459 * config/i386/i386.c (make_resolver_func): Set DECL_UNINLINABLE.
16460
fba0273a 164612013-08-16 Jan Hubicka <jh@suse.cz>
16462
16463 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Add new
16464 arugment expected_type.
16465 (gimple_fold_call): Use it.
16466 * gimple.h (gimple_extract_devirt_binfo_from_cst): Update prototype.
16467 * ipa-cp.c (ipa_get_indirect_edge_target_1): Update.
022ddfb5 16468 * ipa-prop.c (ipa_analyze_virtual_call_uses): Use obj_type_ref_class.
fba0273a 16469 (try_make_edge_direct_virtual_call): Likewise.
16470 * tree.c (obj_type_ref_class): New.
16471 * tree.h (obj_type_ref_class): Use it.
16472
adbb89b1 164732013-08-16 Gabriel Dos Reis <gdr@integrable-solutions.net>
16474
16475 * sched-vis.c (rtl_slim_pp_initialized): Remove.
16476 (rtl_slim_pp): Likewise.
16477 (init_rtl_slim_pretty_print): Likewise.
16478 (dump_value_slim): Don't call it. Use local pretty printer.
16479 (dump_insn_slim): Likewise.
16480 (dump_rtl_slim): Likewise.
16481 (str_pattern_slim): Likewise.
16482 * tree-mudflap.c (mf_varname_tree): Use local pretty printer.
16483 Simplify.
16484
36ee0f30 164852013-08-16 Jakub Jelinek <jakub@redhat.com>
16486
f0ddb243 16487 PR tree-optimization/58164
16488 * gimple.c (walk_stmt_load_store_addr_ops): For visit_addr
16489 walk gimple_goto_dest of GIMPLE_GOTO.
16490
36ee0f30 16491 PR tree-optimization/58165
16492 * tree-call-cdce.c (shrink_wrap_one_built_in_call): If
16493 bi_call must be the last stmt in a bb, don't split_block, instead
16494 use fallthru edge from it and give up if there is none.
16495 Release conds vector when returning early.
16496
e1eb390d 164972013-08-14 Xinliang David Li <davidxl@google.com>
16498
16499 * config/i386/i386.c (ix86_option_override_internal):
16500 Remove unused variable and field.
16501
f2e80d2c 165022013-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16503
16504 PR target/57949
022ddfb5 16505 * doc/invoke.texi: Add documentation of mcompat-align-parm option.
f2e80d2c 16506 * config/rs6000/rs6000.opt: Add mcompat-align-parm option.
16507 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): For AIX
16508 and Linux, correct BLKmode alignment when 128-bit alignment is
16509 required and compatibility flag is not set.
022ddfb5 16510 (rs6000_gimplify_va_arg): For AIX and Linux, honor specified alignment
16511 for zero-size arguments when compatibility flag is not set.
f2e80d2c 16512
28044937 165132013-08-14 Jakub Jelinek <jakub@redhat.com>
16514
16515 PR tree-optimization/58145
16516 * tree-sra.c (build_ref_for_offset): If prev_base has
16517 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS, propagate it to MEM_REF.
16518
13b0a50d 165192013-08-14 Xinliang David Li <davidxl@google.com>
28044937 16520
13b0a50d 16521 * config/i386/i386.c (ix86_option_override_internal):
e1eb390d 16522 Fix uninitialized variable error.
13b0a50d 16523
0a5dc104 165242013-08-14 Xinliang David Li <davidxl@google.com>
16525
16526 * config/i386/i386.opt: Define two new options.
16527 * config/i386/x86-tune.def: Add arch selector field in macros.
16528 * config/i386/i386.h: Adjust macro definition.
16529 * config/i386/i386.c (ix86_option_override_internal):
16530 Refactor the code.
16531 (parse_mtune_ctrl_str): New function.
16532 (set_ix86_tune_features): New function.
16533 (ix86_function_specific_restore): Call the new helper function.
16534
91b338ea 165352013-08-14 Andrey Belevantsev <abel@ispras.ru>
16536
16537 PR rtl-optimization/57662
16538 * sel-sched.c (code_motion_process_successors): When the current insn
16539 is removed after the recursive traversal, break from the loop.
16540 Add comments and debug printouts.
16541
c598b7c6 165422013-08-14 Jakub Jelinek <jakub@redhat.com>
16543 Alexandre Oliva <aoliva@redhat.com>
16544
16545 PR target/58067
16546 * config/i386/i386.c (ix86_delegitimize_address): For CM_MEDIUM_PIC
16547 and CM_LARGE_PIC ix86_cmodel fall thru into the -m32 code, handle
16548 there also UNSPEC_PLTOFF.
16549
8249d427 165502013-08-14 Marek Polacek <polacek@redhat.com>
16551
16552 * ipa-inline-analysis.c (add_clause): Avoid shifting integer
16553 NUM_CONDITIONS bit positions.
16554
6ece15c0 165552013-08-13 Cary Coutant <ccoutant@google.com>
16556
16557 * dwarf2out.c (CHECKSUM_BLOCK): New macro.
16558 (attr_checksum): Hash vector contents instead of pointer.
16559 (attr_checksum_ordered): Likewise.
16560
4a2a161f 165612013-08-13 Uros Bizjak <ubizjak@gmail.com>
16562
16563 * config/i386/sse.md (*sse2_maskmovdqu): Emit addr32 prefix
16564 when Pmode != word_mode. Add length_address attribute.
16565 (sse3_monitor_<mode>): Merge from sse3_monitor and
16566 sse3_monitor64_<mode> insn patterns. Emit addr32 prefix when
16567 Pmode != word_mode. Update insn length attribute.
16568 * config/i386/i386.c (ix86_option_override_internal): Update
16569 ix86_gen_monitor selection for merged sse3_monitor insn.
16570
4484bd0e 165712013-08-13 Julian Brown <julian@codesourcery.com>
16572
16573 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
16574 perform invalid legitimization on greater-than-word-size modes for
16575 TARGET_E500_DOUBLE.
16576
ffd4fed2 165772013-08-13 Vladimir Makarov <vmakarov@redhat.com>
16578
16579 * ira.c (setup_class_translate_array): Use aclass instead of cl
16580 for classes not fully covered by allocno classes.
16581
e4849b47 165822013-08-13 Jakub Jelinek <jakub@redhat.com>
16583
da51794e 16584 PR tree-optimization/57661
16585 * tree-inline.h (struct copy_body_data): Add blocks_to_copy field.
16586 * tree-inline.c (tree_function_versioning): Initialize it.
16587 (remap_gimple_stmt): Return GIMPLE_NOP for MEM_REF lhs clobber stmts
16588 if id->blocks_to_copy and MEM_REF's SSA_NAME is defined in a block
16589 that is not being copied.
16590
e4849b47 16591 PR sanitizer/56417
16592 * asan.c (instrument_strlen_call): Fix typo in comment.
16593 Use char * type even for the lhs of POINTER_PLUS_EXPR.
16594
8d84ef96 165952013-08-13 Steve Ellcey <sellcey@mips.com>
16596
16597 * config/mips/mips.md (prefetch): Use lw instead of ld on
16598 loongson in 32bit mode.
16599
da0aa575 166002013-08-13 Nick Clifton <nickc@redhat.com>
16601
16602 * config.gcc: (avr-linux): Allow for tmake_file not being empty.
16603
12d5ae9f 166042013-08-13 Jan Hubicka <jh@suse.cz>
16605
16606 * cgraph.c (cgraph_turn_edge_to_speculative): Return newly
16607 introduced edge; fix typo in sanity check.
16608 (cgraph_resolve_speculation): Export; improve diagnostic.
16609 (cgraph_redirect_edge_call_stmt_to_callee): Better diagnostic; cancel
16610 speculation at type mismatch.
16611 * cgraph.h (cgraph_turn_edge_to_speculative): Update.
16612 (cgraph_resolve_speculation): Declare.
16613 (symtab_can_be_discarded): New function.
16614 * value-prof.c (gimple_ic_transform): Remove actual transform code.
16615 * ipa-inline-transform.c (speculation_removed): New global var.
16616 (clone_inlined_nodes): See if speculation can be removed.
16617 (inline_call): If speculations was removed, we growths may not match.
16618 * ipa-inline.c (can_inline_edge_p): Add DISREGARD_LIMITS parameter.
16619 (speculation_useful_p): New function.
16620 (resolve_noninline_speculation): New function.
16621 (inline_small_functions): Resolve useless speculations.
16622 * ipa-inline.h (speculation_useful_p): Declare
16623 * ipa.c (can_replace_by_local_alias): Simplify.
16624 (ipa_profile): Produce speculative calls in non-lto, too;
16625 add simple cost model; produce local aliases.
16626
750c01a9 166272013-08-13 David Malcolm <dmalcolm@redhat.com>
16628
16629 * config/i386/t-i386 (i386.o): Rename stray PIPELINE_H to
4a2a161f 16630 PASS_MANAGER_H.
750c01a9 16631
122218c7 166322013-08-12 Paolo Carlini <paolo.carlini@oracle.com>
16633
16634 * config/i386/i386.c (ix86_function_versions): Use error + inform.
16635
85b82324 166362013-08-12 Uros Bizjak <ubizjak@gmail.com>
16637
16638 * config/i386/i386.md (floatunssi<mode>2 expand): Use MODEF mode
16639 iterator instead of X87MODEF.
16640
166412013-08-12 Perez Read <netfirewall@gmail.com>
16642
16643 PR target/58132
16644 * config/i386/i386.md (*movabs<mode>_1): Add <ptrsize> PTR before
16645 operand 0 for intel asm alternative.
16646 (*movabs<mode>_2): Ditto for operand 1.
16647
ede6294c 166482013-08-12 James Greenhalgh <james.greenhalgh@arm.com>
16649
16650 * config/aarch64/arm_none.h
16651 (vdup<bhsd>_lane_<su><8,16,32,64>): Fix macro call.
16652
9551b60b 166532013-08-12 Nick Clifton <nickc@redhat.com>
16654
16655 * config.gcc (m32r-linux): Allow for tmake_file not being empty.
16656
48fe51c0 166572013-08-12 Yuri Rumyantsev <ysrumyan@gmail.com>
16658
16659 * config/i386/i386.md (floatunssi<mode>2 expand): Add new
16660 expand for QI/HImode operand to produce more effictive code for
16661 unsigned char(short) --> float(double) conversion.
16662
b61d5656 166632013-08-12 Alexander Monakov <amonakov@ispras.ru>
16664
16665 * doc/invoke.texi: Mention that -ftls-model does not force the final
16666 model.
16667
e53c294c 166682013-08-12 Marek Polacek <polacek@redhat.com>
16669 Marc Glisse <marc.glisse@inria.fr>
16670
16671 PR tree-optimization/57980
16672 * tree-tailcall.c (process_assignment): Call build_minus_one_cst
16673 when creating -1 constant.
16674
4771c0ac 166752013-08-10 Jan Hubicka <jh@suse.cz>
16676
9b893ad7 16677 Workaround binutils PR14342.
4771c0ac 16678 * tree-profile.c (init_ic_make_global_vars): Add LTO path.
16679 (gimple_init_edge_profiler): Likewise.
16680 (gimple_gen_ic_func_profiler): Likewise.
16681
136bc3b3 166822013-08-09 Jan Hubicka <jh@suse.cz>
16683
16684 * cgraph.c (cgraph_create_edge_1): Clear speculative flag.
16685
9b868067 166862013-08-09 Xinliang David Li <davidxl@google.com>
16687
16688 * config/i386/stringop.def: New file.
16689 * config/i386/stringop.opt: New file.
16690 * config/i386/i386-opts.h: Include stringopt.def.
16691 * config/i386/i386.opt: Include stringopt.opt.
16692 * config/i386/i386.c (ix86_option_override_internal):
85b82324 16693 Override default size based stringop inline strategies with options.
9b868067 16694 * config/i386/i386.c (ix86_parse_stringop_strategy_string):
16695 New function.
16696
048d63e9 166972013-08-09 Jan Hubicka <jh@suse.cz>
16698
85b82324 16699 * ipa-ref.c (ipa_clear_stmts_in_references): Clear lto_stmt_uid, too.
048d63e9 16700
6a261305 167012013-08-09 Jan Hubicka <jh@suse.cz>
16702
16703 * cgraph.c (cgraph_resolve_speculation): Cut frequency to
16704 CGRAPH_FREQ_MAX.
16705 (dump_cgraph_node): Dump profile-id.
16706 * cgraph.h (cgraph_indirect_call_info): Add common_target_id
16707 and common_target_probability.
16708 * lto-cgraph.c (lto_output_edge): Stream common targets.
16709 (lto_output_node): Stream profile ids.
16710 (input_node): Stream profile ids.
16711 (input_edge): Stream common targets.
16712 * lto-streamer-in.c (fixup_call_stmt_edges_1): Fix formatting.
16713 * ipa.c: Include value-prof.h
16714 (ipa_profile_generate_summary): Turn indirect call statement histograms
16715 into common targets.
16716 (ipa_profile): Turn common targets into speculative edges.
16717
fe37be54 167182013-08-09 Jan Hubicka <jh@suse.cz>
16719
16720 * cgraph.h (cgraph_node): Add profile_id.
16721 * value-prof.c (cgraph_node_map): Turn into pointer_map.
85b82324 16722 (init_node_map): Rewrite to handle hashes increas of incremental IDs.
fe37be54 16723 (del_node_map): Update.
16724 (find_func_by_funcdef_no): Replace by ...
16725 (find_func_by_profile_id): ... this one.
16726 (gimple_ic_transform): Do not remove useful histograms when
16727 speculation is not done; dump info when indirect call removal
16728 can happen at LTO.
16729 * value-prof.h (find_func_by_profile_id, gimple_ic): Declare.
16730 * gcov-io.h (__gcov_indirect_call_profiler): Replace by ...
16731 (__gcov_indirect_call_profiler_v2): .. this one.
16732 * profile.h (init_node_map): Update.
16733 * coverage.c (coverage_compute_profile_id): New function.
16734 * coverage.h (coverage_compute_profile_id): Declare.
16735 * tree-profile.c (init_ic_make_global_vars): Make
16736 __gcov_indirect_call_callee and __gcov_indirect_call_counters global.
16737 (gimple_init_edge_profiler): Update prototype of
16738 __gcov_indirect_call_profiler.
16739 (gimple_gen_ic_func_profiler): Simplify.
16740 (tree_profiling): Use init_node_map
16741
4d044066 167422013-08-09 Jan Hubicka <jh@suse.cz>
16743
85b82324 16744 * cgraphbuild.c (cgraph_rebuild_references): Rebuild only
16745 non-speculative refs.
4d044066 16746 * cgraph.c (cgraph_update_edge_in_call_site_hash): New function.
16747 (cgraph_add_edge_to_call_site_hash): Deal with speculative calls.
16748 (cgraph_set_call_stmt): Likewise.
16749 (cgraph_create_edge_1): Fix release checking compilatoin;
16750 clear lto_stmt_uid.
16751 (cgraph_free_edge): Free indirect info.
16752 (cgraph_turn_edge_to_speculative): New function.
16753 (cgraph_speculative_call_info): New function.
16754 (cgraph_make_edge_direct): Return direct edge; handle speculation.
85b82324 16755 (cgraph_redirect_edge_call_stmt_to_callee): Expand speculative edges.
4d044066 16756 (dump_cgraph_node): Dump speculation.
16757 (verify_edge_count_and_frequency): Accept speculative edges.
16758 (verify_edge_corresponds_to_fndecl): Handle partitioned cgraph.
16759 (verify_cgraph_node): Handle speculation.
16760 * cgraph.h (cgraph_edge): Add SPECULATIVE flag.
16761 (cgraph_set_call_stmt): Update prototype.
16762 (cgraph_make_edge_direct): Update prototype.
16763 (cgraph_speculative_call_info): Declare.
16764 * ipa-cp.c (ipcp_discover_new_direct_edges): Be ready for edge
16765 to change; update call of ipa_find_references.
16766 * ipa-ref.c (ipa_record_reference): Fix return value; clear
16767 lto_stmt_uid and speculative flags.
16768 (ipa_dump_references): Dump speculation.
16769 (ipa_clone_references): Clone speculative flag.
16770 (ipa_clone_referring): Likewise.
16771 (ipa_clone_ref): New function.
16772 (ipa_find_reference): Look into lto_stmt_uids
16773 (ipa_clear_stmts_in_references): Do not clear speculative calls.
16774 * ipa-ref.h (ipa_ref): Add lto_stmt_uid and speculative flags.
16775 (ipa_find_reference): Update declaration.
16776 (ipa_clone_ref): Declare.
16777 * lto-cgraph.c (lto_output_edge): Make lto_stmt_uids start from 0;
16778 stream speculative flag.
16779 (lto_output_ref): Stream statements uids and speculation.
16780 (input_ref): Likewise.
16781 (input_edge): Stream speuclation.
16782 * cgraphclones.c (cgraph_clone_edge): Clone speculation.
16783 (cgraph_set_call_stmt_including_clones): Handle speculation.
16784 * ipa-inline.c (heap_edge_removal_hook): New function.
16785 (inline_small_functions): Register it.
16786 * lto-streamer-in.c (fixup_call_stmt_edges_1): Bounds checking;
16787 also initialize refs.
16788 * ipa-prop.c (ipa_make_edge_direct_to_target): Be ready for
16789 edge to change.
16790 (try_make_edge_direct_simple_call): Likewise.
16791 (try_make_edge_direct_simple_call): Likewise.
16792 (update_indirect_edges_after_inlining): Likewise.
16793 (remove_described_reference): Look proper lto_stmt_uid.
16794 (propagate_controlled_uses): Likewise.
16795 (propagate_controlled_uses): Liekwise.
16796 * tree-inline.c (copy_bb): Copy speculative edges.
16797 (redirect_all_calls): New function.
85b82324 16798 (copy_cfg_body): Do redirection after loop info is updated.
16799 (delete_unreachable_blocks_update_callgraph): Updadte speculation.
4d044066 16800
62732f86 168012013-08-09 Jan Hubicka <jh@suse.cz>
16802
16803 * lto-streamer-out.c (output_function): Renumber PHIs.
16804 * lto-streamer-in.c (input_function): Likewise.
16805
5e7bd7ac 168062013-08-09 James Greenhalgh <james.greenhalgh@arm.com>
16807
16808 * config/aarch64/aarch64-simd-builtins.def (get_lane_signed): Remove.
16809 (get_lane_unsigned): Likewise.
16810 (dup_lane_scalar): Likewise.
16811 (get_lane): enable for VALL.
16812 * config/aarch64/aarch64-simd.md
16813 (aarch64_dup_lane_scalar<mode>): Remove.
16814 (aarch64_get_lane_signed<mode>): Likewise.
16815 (aarch64_get_lane_unsigned<mode>): Likewise.
16816 (aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): New.
16817 (aarch64_get_lane_zero_extendsi<mode>): Likewise.
16818 (aarch64_get_lane<mode>): Enable for all vector modes.
16819 (aarch64_get_lanedi): Remove misleading constraints.
16820 * config/aarch64/arm_neon.h
16821 (__aarch64_vget_lane_any): Define.
16822 (__aarch64_vget<q>_lane_<fpsu><8,16,32,64>): Likewise.
16823 (vget<q>_lane_<fpsu><8,16,32,64>): Use __aarch64_vget_lane macros.
16824 (vdup<bhsd>_lane_<su><8,16,32,64>): Likewise.
16825 * config/aarch64/iterators.md (VDQQH): New.
16826 (VDQQHS): Likewise.
16827 (vwcore): Likewise.
16828
cbd3655d 168292013-08-09 Eric Botcazou <ebotcazou@adacore.com>
16830
16831 * configure.ac: Add GAS check for LEON instructions on SPARC.
16832 * configure: Regenerate.
16833 * config.in: Likewise.
16834 * config.gcc (with_cpu): Remove sparc-leon*-* and deal with LEON in the
16835 sparc*-*-* block.
16836 * config/sparc/sparc.opt (LEON, LEON3): New masks.
16837 * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Set to AS_LEON_FLAG
16838 for LEON or LEON3.
16839 (ASM_CPU_SPEC): Pass AS_LEON_FLAG if -mcpu=leon or -mcpu=leon3.
16840 (AS_LEON_FLAG): New macro.
16841 * config/sparc/sparc.c (sparc_option_override): Set MASK_LEON for leon
16842 and MASK_LEON3 for leon3 and unset them if HAVE_AS_LEON is not defined.
16843 Deal with LEON and LEON3 for the memory model.
65768183 16844 * config/sparc/sync.md (atomic_compare_and_swap<mode>): Enable if LEON3
cbd3655d 16845 (atomic_compare_and_swap<mode>_1): Likewise.
16846 (*atomic_compare_and_swap<mode>_1): Likewise.
16847
53e6ff93 168482013-08-09 Zhenqiang Chen <zhenqiang.chen@linaro.org>
16849
16850 * config/arm/neon.md (vcond): Fix floating-point vector
16851 comparisons against 0.
16852
34575461 168532013-08-08 Vladimir Makarov <vmakarov@redhat.com>
16854
16855 * lra-constraints.c (emit_spill_move): Remove assert.
16856 (process_alt_operands): Add more debugging
16857 output. Increase reject for spilling into memory. Decrease
16858 reject for reloading scratch.
16859 (split_reg): Use HARD_REGNO_CALLER_SAVE_MODE.
16860
ef928ec0 168612013-08-08 Steve Ellcey <sellcey@mips.com>
16862
16863 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add nan2008.
16864 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Make mips16 and
16865 micromips incompatible. Add nan2008.
16866 (MULTILIB_DIRNAMES): Add nan2008.
16867 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
16868 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Make mips16
16869 and micromips incompatible. Add nan2008.
16870 (MULTILIB_DIRNAMES): Add nan2008.
16871 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
16872
48d6412b 168732013-08-08 Richard Sandiford <rdsandiford@googlemail.com>
16874
16875 PR rtl-optimization/58079
16876 * combine.c (combine_simplify_rtx): Avoid using SUBST if
16877 simplify_comparison has widened a comparison with an integer.
16878
80c69b15 168792013-08-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16880
16881 * config/arm/neon.md (movmisalign<mode>): Disable when we
16882 don't allow unaligned accesses.
16883 (*movmisalign<mode>_neon_store): Likewise.
16884 (*movmisalign<mode>_neon_load): Likewise.
16885 (*movmisalign<mode>_neon_store): Likewise.
16886 (*movmisalign<mode>_neon_load): Likewise.
16887
9df17e79 168882013-08-08 Jan Hubicka <jh@suse.cz>
16889
16890 * cgraphbuild.c (build_cgraph_edges): Do not walk into debugs.
16891 (make_pass_rebuild_cgraph_edges): Also clear references.
16892 * cgraph.c (verify_cgraph_node): Add basic ipa-ref verifier.
16893 * ipa-inline-transform.c (inline_transform): Remove all references
16894 after inlining.
85b82324 16895 * cgraphunit.c (expand_function): Remove all references after
16896 expansion.
9df17e79 16897 * ipa-ref.c (ipa_ref_has_aliases_p): Fix formatting.
16898 (ipa_find_reference): Rewrite to iterator.
16899 (remove_stmt_references): Likewise.
16900 (ipa_clear_stmts_in_references): New function.
16901 * ipa-ref.h (ipa_clear_stmts_in_references): Declare.
77c2266a 16902 * cgraphclones.c (cgraph_materialize_all_clones): Remove or
16903 clear references.
9df17e79 16904 * ipa-split.c (split_function): Remove references in split function.
16905
ad504e50 169062013-08-08 Richard Earnshaw <rearnsha@arm.com>
16907
16908 PR target/57431
cbd3655d 16909 * config/arm/arm/neon.md (neon_vld1_dupdi): New expand pattern.
ad504e50 16910 (neon_vld1_dup<mode> VD iterator): Iterate over VD not VDX.
16911
1d2ccc18 169122013-08-08 Richard Earnshaw <rearnsha@arm.com>
16913
16914 PR target/56979
cbd3655d 16915 * config/arm/arm.c (aapcs_vfp_allocate): Decompose the argument if the
1d2ccc18 16916 suggested mode for the assignment isn't compatible with the
16917 registers required.
16918
cacfa2aa 169192013-08-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
16920
16921 PR target/58065
16922 * config/arm/arm.h (MALLOC_ABI_ALIGNMENT): Define.
16923
db01d63a 169242013-08-07 Xinliang David Li <davidxl@google.com>
16925
16926 * config/i386/i386.opt: New option -mtune-ctrl=.
16927 * config/i386/x86-tune.def: New file.
16928 * config/i386/i386.h: include x86-tune.def.
16929 * config/i386/i386.c (ix86_option_override_internal):
16930 Parsing -mtune-ctrl= option and set tune features.
16931
c3d2d0e4 169322013-08-07 Oleg Endo <olegendo@gcc.gnu.org>
c5816964 16933
16934 PR other/12081
77c2266a 16935 * config/rs6000/rs6000.c (gen_2arg_fn_t): Remove typedef.
c5816964 16936 (rs6000_emit_swdiv, rs6000_emit_swrsqrt): Don't cast result of GEN_FCN
16937 to gen_2arg_fn_t.
16938
14e08599 169392013-08-07 Eric Botcazou <ebotcazou@adacore.com>
16940
16941 * rtl.h (update_alignments): Declare.
16942 * final.c (grow_label_align): New function extracted from...
16943 (shorten_branches): ...here. Call it.
16944 (update_alignments): New function.
16945 * reorg.c (sibling_labels): New variable.
16946 (get_label_before): Add SIBLING parameter. If it is non-zero, push
16947 the new label along with it onto the sibling_labels vector.
16948 (fill_simple_delay_slots): Adjust call to get_label_before.
16949 (fill_slots_from_thread): Likewise.
16950 (relax_delay_slots): Likewise.
16951 (make_return_insns): Likewise.
16952 (dbr_schedule): Invoke update_alignment on the sibling_labels vector.
16953
af776050 169542013-08-07 Eric Botcazou <ebotcazou@adacore.com>
16955
16956 * diagnostic.c (diagnostic_classify_diagnostic): Accept zero index and
16957 document its semantics.
16958 (diagnostic_report_diagnostic): Adjust accordingly.
16959
3e33b484 169602013-08-07 David Malcolm <dmalcolm@redhat.com>
16961
77c2266a 16962 * config/sparc/sparc.c (insert_pass_work_around_errata): Move into...
3e33b484 16963 (sparc_option_override): ...and port to new C++ pass API.
16964 * config/sparc/t-sparc (sparc.o): Add dep on CONTEXT_H
16965
9bf90452 169662013-08-07 Peter Bergner <bergner@vnet.ibm.com>
16967
16968 * config/rs6000/rs6000.c (htm_expand_builtin) <case 0>: Remove.
16969
b710ec85 169702013-08-06 Caroline Tice <cmtice@google.com>
16971
16972 * gcc.c (VTABLE_VERIFICATION_SPEC): New definition.
16973 (LINK_COMMAND_SPEC): Add VTABLE_VERIFICATION_SPEC.
16974 * tree-pass.h: Add pass_vtable_verify.
16975 * varasm.c (assemble_variable): Add code to properly set the comdat
16976 section and name for the .vtable_map_vars section.
16977 (assemble_vtyv_preinit_initializer): New function.
16978 (default_sectin_type_flags): Make sure .vtable_map_vars section has
16979 LINK_ONCE flag.
16980 * output.h: Add function decl for assemble_vtv_preinit_initializer.
16981 * vtable-verify.c: New file.
16982 * vtable-verify.h: New file.
16983 * flag-types.h (enum vtv_priority): Defintions for flag_vtable_verify
16984 initialiation levels.
16985 * timevar.def (TV_VTABLE_VERIFICATION): New definition.
16986 * passes.def: Insert pass_vtable_verify.
16987 * aclocal.m4: Reorder includes.
16988 * doc/invoke.texi: Document the -fvtable-verify=, -fvtv-debug, and
16989 -fvtv-counts options.
16990 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add vtv_start*.o,
16991 as appropriate, if -fvtable-verify=... is used.
16992 (GNU_USER_TARGET_ENDFILE_SPEC): Add vtv_end*.o as appropriate, if
16993 -fvtable-verify=... is used.
16994 * Makefile.in (OBJS): Add vtable-verify.o to list.
16995 (vtable-verify.o): Add new build rule.
16996 (GTFILES): Add vtable-verify.c to list.
16997 * common.opt (fvtable-verify=): New flag.
16998 (vtv_priority): Values for fvtable-verify= flag.
16999 (fvtv-counts): New flag.
17000 (fvtv-debug): New flag.
17001 * tree.h (save_vtable_map_decl): New extern function decl.
17002
4abac0f0 170032013-08-07 David Malcolm <dmalcolm@redhat.com>
17004
17005 * config/rl78/rl78.c (rl78_devirt_pass): Convert from a struct to...
17006 (pass_rl78_devirt): ...new subclass of rtl_opt_pass along with...
17007 (pass_data_rl78_devirt): ...new pass_data instance and...
17008 (make_pass_rl78_devirt): ...new function.
17009 (rl78_asm_file_start): Port pass registration to new C++ API.
17010
a6ae2cf4 170112013-08-07 David Malcolm <dmalcolm@redhat.com>
17012
17013 * coretypes.h (rtl_opt_pass): Add.
17014 (gcc::context): Add.
17015 * config/epiphany/epiphany.c (pass_mode_switch_use): New.
17016 (epiphany_init): Port to new C++ pass API.
17017 (epiphany_optimize_mode_switching): Likewise.
17018 * pass_manager.h (pass_manager::get_pass_split_all_insns): New.
17019 (pass_manager::get_pass_mode_switching): New.
17020 (pass_manager::get_pass_peephole2): New.
17021 * mode-switching.c (pass_mode_switching): Add clone method.
17022 * recog.c (pass_peephole2): Add clone method.
17023 (pass_split_all_insns): Add clone method.
17024
1f6ad59d 170252013-08-06 David Malcolm <dmalcolm@redhat.com>
17026
77c2266a 17027 * config/mips/mips.c (insert_pass_mips_machine_reorg2): Move into...
17028 (mips_option_override): ...here, porting to new C++ API for passes.
1f6ad59d 17029
eaad46f2 170302013-08-06 Jan Hubicka <jh@suse.cz>
17031
17032 * cgraph.c (cgraph_get_body): New function based on lto.c
17033 implementation.
17034 * cgraph.h (cgraph_get_body): Declare.
77c2266a 17035 * cgraphclones.c (cgraph_create_virtual_clone): Commonize WPA and
17036 LTO paths.
eaad46f2 17037 * cgraphunit.c (expand_function): Get body prior expanding.
17038 * ipa.c (function_and_variable_visibility): Use gimple_has_body_p test.
77c2266a 17039 * lto-cgraph.c (lto_output_node): Do not stream bodies we don't
17040 really need.
eaad46f2 17041 * passes.c (do_per_function_toporder): Get body.
17042 * tree-inline.c (expand_call_inline): Get body prior inlining it.
17043 * tree-ssa-structalias.c (ipa_pta_execute): Get body; skip clones.
17044
1f7747bd 170452013-08-06 Martin Jambor <mjambor@suse.cz>
17046
17047 PR fortran/57987
17048 * cgraphunit.c (cgraph_finalize_function): Assert that nested function
17049 is not re-finalized. Rename second parameter to no_collect.
17050
54dfdbf2 170512013-08-06 Martin Jambor <mjambor@suse.cz>
17052
17053 PR middle-end/58041
17054 * gimple-ssa-strength-reduction.c (replace_ref): Make sure built
17055 MEM_REF has proper alignment information.
17056
c3d2d0e4 170572013-08-05 Oleg Endo <olegendo@gcc.gnu.org>
3d953cb1 17058
17059 PR other/12081
17060 * recog.h (rtx (*insn_gen_fn) (rtx, ...)): Replace typedef with new
17061 class insn_gen_fn.
17062 * expr.c (move_by_pieces_1, store_by_pieces_2): Replace argument
17063 rtx (*) (rtx, ...) with insn_gen_fn.
17064 * genoutput.c (output_insn_data): Cast gen_? function pointers to
17065 insn_gen_fn::stored_funcptr. Add initializer braces.
17066
bde4aa78 170672013-08-05 David Malcolm <dmalcolm@redhat.com>
17068
17069 Rewrite how instances of passes are cloned to remove assumptions
17070 about their sizes (thus allowing pass subclasses to have
17071 additional data fields, albeit non-GC-managed ones at this point).
17072
17073 * passes.c (make_pass_instance): Now that passes have clone
17074 methods, rewrite this function to eliminate XNEW and memcpy
17075 calls that used hardcoded sizes. Since this function no longer
17076 creates pass instances, rename it to...
77c2266a 17077 (add_pass_instance): ...this. Document the old way that passes were
17078 numbered and flagged, and rework this function to continue using it.
bde4aa78 17079 (next_pass_1): Add an initial_pass argument for use by
17080 add_pass_instance.
17081 (position_pass): When adding multiple instances of a pass, use
17082 the pass's clone method, rather than relying on the XNEW/memcpy
17083 within the former make_pass_instance (now add_pass_instance).
77c2266a 17084 (pass_manager::pass_manager): When invoking next_pass_1, also supply
17085 the initial instance of the current pass within the pass manager.
bde4aa78 17086
cbe8bda8 170872013-08-05 David Malcolm <dmalcolm@redhat.com>
17088
17089 This is the automated part of the conversion of passes from C
17090 structs to C++ classes.
17091
17092 Patch autogenerated by refactor_passes.py from
17093 https://github.com/davidmalcolm/gcc-refactoring-scripts
17094 revision 03fe39476a4c4ea450b49e087cfa817b5f92021e
17095
17096 * asan.c (pass_asan): Convert from a global struct to a subclass of
17097 gimple_opt_pass along with...
17098 (pass_data_asan): ...new pass_data instance and...
17099 (make_pass_asan): ...new function.
17100 (pass_asan_O0): Convert from a global struct to a subclass of
17101 gimple_opt_pass along with...
17102 (pass_data_asan_O0): ...new pass_data instance and...
17103 (make_pass_asan_O0): ...new function.
17104 * auto-inc-dec.c (pass_inc_dec): Convert from a global struct to a
17105 subclass of rtl_opt_pass along with...
17106 (pass_data_inc_dec): ...new pass_data instance and...
17107 (make_pass_inc_dec): ...new function.
17108 * bb-reorder.c (pass_reorder_blocks): Convert from a global struct to
17109 a subclass of rtl_opt_pass along with...
17110 (pass_data_reorder_blocks): ...new pass_data instance and...
17111 (make_pass_reorder_blocks): ...new function.
17112 (pass_duplicate_computed_gotos): Convert from a global struct to a
17113 subclass of rtl_opt_pass along with...
17114 (pass_data_duplicate_computed_gotos): ...new pass_data instance and...
17115 (make_pass_duplicate_computed_gotos): ...new function.
17116 (pass_partition_blocks): Convert from a global struct to a subclass of
17117 rtl_opt_pass along with...
17118 (pass_data_partition_blocks): ...new pass_data instance and...
17119 (make_pass_partition_blocks): ...new function.
17120 * bt-load.c (pass_branch_target_load_optimize1): Convert from a global
17121 struct to a subclass of rtl_opt_pass along with...
17122 (pass_data_branch_target_load_optimize1): ...new pass_data instance
17123 and...
17124 (make_pass_branch_target_load_optimize1): ...new function.
17125 (pass_branch_target_load_optimize2): Convert from a global struct to a
17126 subclass of rtl_opt_pass along with...
17127 (pass_data_branch_target_load_optimize2): ...new pass_data instance
17128 and...
17129 (make_pass_branch_target_load_optimize2): ...new function.
17130 * cfgcleanup.c (pass_jump): Convert from a global struct to a subclass
17131 of rtl_opt_pass along with...
17132 (pass_data_jump): ...new pass_data instance and...
17133 (make_pass_jump): ...new function.
17134 (pass_jump2): Convert from a global struct to a subclass of
17135 rtl_opt_pass along with...
17136 (pass_data_jump2): ...new pass_data instance and...
17137 (make_pass_jump2): ...new function.
17138 * cfgexpand.c (pass_expand): Convert from a global struct to a
17139 subclass of rtl_opt_pass along with...
17140 (pass_data_expand): ...new pass_data instance and...
17141 (make_pass_expand): ...new function.
17142 * cfgrtl.c (pass_free_cfg): Convert from a global struct to a subclass
17143 of rtl_opt_pass along with...
17144 (pass_data_free_cfg): ...new pass_data instance and...
17145 (make_pass_free_cfg): ...new function.
17146 (pass_into_cfg_layout_mode): Convert from a global struct to a
17147 subclass of rtl_opt_pass along with...
17148 (pass_data_into_cfg_layout_mode): ...new pass_data instance and...
17149 (make_pass_into_cfg_layout_mode): ...new function.
17150 (pass_outof_cfg_layout_mode): Convert from a global struct to a
17151 subclass of rtl_opt_pass along with...
17152 (pass_data_outof_cfg_layout_mode): ...new pass_data instance and...
17153 (make_pass_outof_cfg_layout_mode): ...new function.
17154 * cgraphbuild.c (pass_build_cgraph_edges): Convert from a global
17155 struct to a subclass of gimple_opt_pass along with...
17156 (pass_data_build_cgraph_edges): ...new pass_data instance and...
17157 (make_pass_build_cgraph_edges): ...new function.
17158 (pass_rebuild_cgraph_edges): Convert from a global struct to a
17159 subclass of gimple_opt_pass along with...
17160 (pass_data_rebuild_cgraph_edges): ...new pass_data instance and...
17161 (make_pass_rebuild_cgraph_edges): ...new function.
17162 (pass_remove_cgraph_callee_edges): Convert from a global struct to a
17163 subclass of gimple_opt_pass along with...
17164 (pass_data_remove_cgraph_callee_edges): ...new pass_data instance
17165 and...
17166 (make_pass_remove_cgraph_callee_edges): ...new function.
17167 * combine-stack-adj.c (pass_stack_adjustments): Convert from a global
17168 struct to a subclass of rtl_opt_pass along with...
17169 (pass_data_stack_adjustments): ...new pass_data instance and...
17170 (make_pass_stack_adjustments): ...new function.
17171 * combine.c (pass_combine): Convert from a global struct to a subclass
17172 of rtl_opt_pass along with...
17173 (pass_data_combine): ...new pass_data instance and...
17174 (make_pass_combine): ...new function.
17175 * compare-elim.c (pass_compare_elim_after_reload): Convert from a
17176 global struct to a subclass of rtl_opt_pass along with...
17177 (pass_data_compare_elim_after_reload): ...new pass_data instance
17178 and...
17179 (make_pass_compare_elim_after_reload): ...new function.
17180 * cprop.c (pass_rtl_cprop): Convert from a global struct to a subclass
17181 of rtl_opt_pass along with...
17182 (pass_data_rtl_cprop): ...new pass_data instance and...
17183 (make_pass_rtl_cprop): ...new function.
17184 * cse.c (pass_cse): Convert from a global struct to a subclass of
17185 rtl_opt_pass along with...
17186 (pass_data_cse): ...new pass_data instance and...
17187 (make_pass_cse): ...new function.
17188 (pass_cse2): Convert from a global struct to a subclass of
17189 rtl_opt_pass along with...
17190 (pass_data_cse2): ...new pass_data instance and...
17191 (make_pass_cse2): ...new function.
17192 (pass_cse_after_global_opts): Convert from a global struct to a
17193 subclass of rtl_opt_pass along with...
17194 (pass_data_cse_after_global_opts): ...new pass_data instance and...
17195 (make_pass_cse_after_global_opts): ...new function.
17196 * dce.c (pass_ud_rtl_dce): Convert from a global struct to a subclass
17197 of rtl_opt_pass along with...
17198 (pass_data_ud_rtl_dce): ...new pass_data instance and...
17199 (make_pass_ud_rtl_dce): ...new function.
17200 (pass_fast_rtl_dce): Convert from a global struct to a subclass of
17201 rtl_opt_pass along with...
17202 (pass_data_fast_rtl_dce): ...new pass_data instance and...
17203 (make_pass_fast_rtl_dce): ...new function.
17204 * df-core.c (pass_df_initialize_opt): Convert from a global struct to
17205 a subclass of rtl_opt_pass along with...
17206 (pass_data_df_initialize_opt): ...new pass_data instance and...
17207 (make_pass_df_initialize_opt): ...new function.
17208 (pass_df_initialize_no_opt): Convert from a global struct to a
17209 subclass of rtl_opt_pass along with...
17210 (pass_data_df_initialize_no_opt): ...new pass_data instance and...
17211 (make_pass_df_initialize_no_opt): ...new function.
17212 (pass_df_finish): Convert from a global struct to a subclass of
17213 rtl_opt_pass along with...
17214 (pass_data_df_finish): ...new pass_data instance and...
17215 (make_pass_df_finish): ...new function.
17216 * dse.c (pass_rtl_dse1): Convert from a global struct to a subclass of
17217 rtl_opt_pass along with...
17218 (pass_data_rtl_dse1): ...new pass_data instance and...
17219 (make_pass_rtl_dse1): ...new function.
17220 (pass_rtl_dse2): Convert from a global struct to a subclass of
17221 rtl_opt_pass along with...
17222 (pass_data_rtl_dse2): ...new pass_data instance and...
17223 (make_pass_rtl_dse2): ...new function.
17224 * dwarf2cfi.c (pass_dwarf2_frame): Convert from a global struct to a
17225 subclass of rtl_opt_pass along with...
17226 (pass_data_dwarf2_frame): ...new pass_data instance and...
17227 (make_pass_dwarf2_frame): ...new function.
17228 * except.c (pass_set_nothrow_function_flags): Convert from a global
17229 struct to a subclass of rtl_opt_pass along with...
17230 (pass_data_set_nothrow_function_flags): ...new pass_data instance
17231 and...
17232 (make_pass_set_nothrow_function_flags): ...new function.
17233 (pass_convert_to_eh_region_ranges): Convert from a global struct to a
17234 subclass of rtl_opt_pass along with...
17235 (pass_data_convert_to_eh_region_ranges): ...new pass_data instance
17236 and...
17237 (make_pass_convert_to_eh_region_ranges): ...new function.
17238 * final.c (pass_compute_alignments): Convert from a global struct to a
17239 subclass of rtl_opt_pass along with...
17240 (pass_data_compute_alignments): ...new pass_data instance and...
17241 (make_pass_compute_alignments): ...new function.
17242 (pass_final): Convert from a global struct to a subclass of
17243 rtl_opt_pass along with...
17244 (pass_data_final): ...new pass_data instance and...
17245 (make_pass_final): ...new function.
17246 (pass_shorten_branches): Convert from a global struct to a subclass of
17247 rtl_opt_pass along with...
17248 (pass_data_shorten_branches): ...new pass_data instance and...
17249 (make_pass_shorten_branches): ...new function.
17250 (pass_clean_state): Convert from a global struct to a subclass of
17251 rtl_opt_pass along with...
17252 (pass_data_clean_state): ...new pass_data instance and...
17253 (make_pass_clean_state): ...new function.
17254 * function.c (pass_instantiate_virtual_regs): Convert from a global
17255 struct to a subclass of rtl_opt_pass along with...
17256 (pass_data_instantiate_virtual_regs): ...new pass_data instance and...
17257 (make_pass_instantiate_virtual_regs): ...new function.
17258 (pass_leaf_regs): Convert from a global struct to a subclass of
17259 rtl_opt_pass along with...
17260 (pass_data_leaf_regs): ...new pass_data instance and...
17261 (make_pass_leaf_regs): ...new function.
17262 (pass_thread_prologue_and_epilogue): Convert from a global struct to a
17263 subclass of rtl_opt_pass along with...
17264 (pass_data_thread_prologue_and_epilogue): ...new pass_data instance
17265 and...
17266 (make_pass_thread_prologue_and_epilogue): ...new function.
17267 (pass_match_asm_constraints): Convert from a global struct to a
17268 subclass of rtl_opt_pass along with...
17269 (pass_data_match_asm_constraints): ...new pass_data instance and...
17270 (make_pass_match_asm_constraints): ...new function.
17271 * fwprop.c (pass_rtl_fwprop): Convert from a global struct to a
17272 subclass of rtl_opt_pass along with...
17273 (pass_data_rtl_fwprop): ...new pass_data instance and...
17274 (make_pass_rtl_fwprop): ...new function.
17275 (pass_rtl_fwprop_addr): Convert from a global struct to a subclass of
17276 rtl_opt_pass along with...
17277 (pass_data_rtl_fwprop_addr): ...new pass_data instance and...
17278 (make_pass_rtl_fwprop_addr): ...new function.
17279 * gcse.c (pass_rtl_pre): Convert from a global struct to a subclass of
17280 rtl_opt_pass along with...
17281 (pass_data_rtl_pre): ...new pass_data instance and...
17282 (make_pass_rtl_pre): ...new function.
17283 (pass_rtl_hoist): Convert from a global struct to a subclass of
17284 rtl_opt_pass along with...
17285 (pass_data_rtl_hoist): ...new pass_data instance and...
17286 (make_pass_rtl_hoist): ...new function.
17287 * gimple-low.c (pass_lower_cf): Convert from a global struct to a
17288 subclass of gimple_opt_pass along with...
17289 (pass_data_lower_cf): ...new pass_data instance and...
17290 (make_pass_lower_cf): ...new function.
17291 * gimple-ssa-strength-reduction.c (pass_strength_reduction): Convert
17292 from a global struct to a subclass of gimple_opt_pass along with...
17293 (pass_data_strength_reduction): ...new pass_data instance and...
17294 (make_pass_strength_reduction): ...new function.
17295 * ifcvt.c (pass_rtl_ifcvt): Convert from a global struct to a subclass
17296 of rtl_opt_pass along with...
17297 (pass_data_rtl_ifcvt): ...new pass_data instance and...
17298 (make_pass_rtl_ifcvt): ...new function.
17299 (pass_if_after_combine): Convert from a global struct to a subclass of
17300 rtl_opt_pass along with...
17301 (pass_data_if_after_combine): ...new pass_data instance and...
17302 (make_pass_if_after_combine): ...new function.
17303 (pass_if_after_reload): Convert from a global struct to a subclass of
17304 rtl_opt_pass along with...
17305 (pass_data_if_after_reload): ...new pass_data instance and...
17306 (make_pass_if_after_reload): ...new function.
17307 * init-regs.c (pass_initialize_regs): Convert from a global struct to
17308 a subclass of rtl_opt_pass along with...
17309 (pass_data_initialize_regs): ...new pass_data instance and...
17310 (make_pass_initialize_regs): ...new function.
17311 * ipa-cp.c (pass_ipa_cp): Convert from a global struct to a subclass
17312 of ipa_opt_pass_d along with...
17313 (pass_data_ipa_cp): ...new pass_data instance and...
17314 (make_pass_ipa_cp): ...new function.
17315 * ipa-inline-analysis.c (pass_inline_parameters): Convert from a
17316 global struct to a subclass of gimple_opt_pass along with...
17317 (pass_data_inline_parameters): ...new pass_data instance and...
17318 (make_pass_inline_parameters): ...new function.
17319 * ipa-inline.c (pass_early_inline): Convert from a global struct to a
17320 subclass of gimple_opt_pass along with...
17321 (pass_data_early_inline): ...new pass_data instance and...
17322 (make_pass_early_inline): ...new function.
17323 (pass_ipa_inline): Convert from a global struct to a subclass of
17324 ipa_opt_pass_d along with...
17325 (pass_data_ipa_inline): ...new pass_data instance and...
17326 (make_pass_ipa_inline): ...new function.
17327 * ipa-pure-const.c (pass_local_pure_const): Convert from a global
17328 struct to a subclass of gimple_opt_pass along with...
17329 (pass_data_local_pure_const): ...new pass_data instance and...
17330 (make_pass_local_pure_const): ...new function.
17331 (pass_ipa_pure_const): Convert from a global struct to a subclass of
17332 ipa_opt_pass_d along with...
17333 (pass_data_ipa_pure_const): ...new pass_data instance and...
17334 (make_pass_ipa_pure_const): ...new function.
17335 * ipa-reference.c (pass_ipa_reference): Convert from a global struct
17336 to a subclass of ipa_opt_pass_d along with...
17337 (pass_data_ipa_reference): ...new pass_data instance and...
17338 (make_pass_ipa_reference): ...new function.
17339 * ipa-split.c (pass_split_functions): Convert from a global struct to
17340 a subclass of gimple_opt_pass along with...
17341 (pass_data_split_functions): ...new pass_data instance and...
17342 (make_pass_split_functions): ...new function.
17343 (pass_feedback_split_functions): Convert from a global struct to a
17344 subclass of gimple_opt_pass along with...
17345 (pass_data_feedback_split_functions): ...new pass_data instance and...
17346 (make_pass_feedback_split_functions): ...new function.
17347 * ipa.c (pass_ipa_function_and_variable_visibility): Convert from a
17348 global struct to a subclass of simple_ipa_opt_pass along with...
17349 (pass_data_ipa_function_and_variable_visibility): ...new pass_data
17350 instance and...
17351 (make_pass_ipa_function_and_variable_visibility): ...new function.
17352 (pass_ipa_free_inline_summary): Convert from a global struct to a
17353 subclass of simple_ipa_opt_pass along with...
17354 (pass_data_ipa_free_inline_summary): ...new pass_data instance and...
17355 (make_pass_ipa_free_inline_summary): ...new function.
17356 (pass_ipa_whole_program_visibility): Convert from a global struct to a
17357 subclass of ipa_opt_pass_d along with...
17358 (pass_data_ipa_whole_program_visibility): ...new pass_data instance
17359 and...
17360 (make_pass_ipa_whole_program_visibility): ...new function.
17361 (pass_ipa_profile): Convert from a global struct to a subclass of
17362 ipa_opt_pass_d along with...
17363 (pass_data_ipa_profile): ...new pass_data instance and...
17364 (make_pass_ipa_profile): ...new function.
17365 (pass_ipa_cdtor_merge): Convert from a global struct to a subclass of
17366 ipa_opt_pass_d along with...
17367 (pass_data_ipa_cdtor_merge): ...new pass_data instance and...
17368 (make_pass_ipa_cdtor_merge): ...new function.
17369 * ira.c (pass_ira): Convert from a global struct to a subclass of
17370 rtl_opt_pass along with...
17371 (pass_data_ira): ...new pass_data instance and...
17372 (make_pass_ira): ...new function.
17373 (pass_reload): Convert from a global struct to a subclass of
17374 rtl_opt_pass along with...
17375 (pass_data_reload): ...new pass_data instance and...
17376 (make_pass_reload): ...new function.
17377 * jump.c (pass_cleanup_barriers): Convert from a global struct to a
17378 subclass of rtl_opt_pass along with...
17379 (pass_data_cleanup_barriers): ...new pass_data instance and...
17380 (make_pass_cleanup_barriers): ...new function.
17381 * loop-init.c (pass_loop2): Convert from a global struct to a subclass
17382 of rtl_opt_pass along with...
17383 (pass_data_loop2): ...new pass_data instance and...
17384 (make_pass_loop2): ...new function.
17385 (pass_rtl_loop_init): Convert from a global struct to a subclass of
17386 rtl_opt_pass along with...
17387 (pass_data_rtl_loop_init): ...new pass_data instance and...
17388 (make_pass_rtl_loop_init): ...new function.
17389 (pass_rtl_loop_done): Convert from a global struct to a subclass of
17390 rtl_opt_pass along with...
17391 (pass_data_rtl_loop_done): ...new pass_data instance and...
17392 (make_pass_rtl_loop_done): ...new function.
17393 (pass_rtl_move_loop_invariants): Convert from a global struct to a
17394 subclass of rtl_opt_pass along with...
17395 (pass_data_rtl_move_loop_invariants): ...new pass_data instance and...
17396 (make_pass_rtl_move_loop_invariants): ...new function.
17397 (pass_rtl_unswitch): Convert from a global struct to a subclass of
17398 rtl_opt_pass along with...
17399 (pass_data_rtl_unswitch): ...new pass_data instance and...
17400 (make_pass_rtl_unswitch): ...new function.
17401 (pass_rtl_unroll_and_peel_loops): Convert from a global struct to a
17402 subclass of rtl_opt_pass along with...
17403 (pass_data_rtl_unroll_and_peel_loops): ...new pass_data instance
17404 and...
17405 (make_pass_rtl_unroll_and_peel_loops): ...new function.
17406 (pass_rtl_doloop): Convert from a global struct to a subclass of
17407 rtl_opt_pass along with...
17408 (pass_data_rtl_doloop): ...new pass_data instance and...
17409 (make_pass_rtl_doloop): ...new function.
17410 * lower-subreg.c (pass_lower_subreg): Convert from a global struct to
17411 a subclass of rtl_opt_pass along with...
17412 (pass_data_lower_subreg): ...new pass_data instance and...
17413 (make_pass_lower_subreg): ...new function.
17414 (pass_lower_subreg2): Convert from a global struct to a subclass of
17415 rtl_opt_pass along with...
17416 (pass_data_lower_subreg2): ...new pass_data instance and...
17417 (make_pass_lower_subreg2): ...new function.
17418 * lto-streamer-out.c (pass_ipa_lto_gimple_out): Convert from a global
17419 struct to a subclass of ipa_opt_pass_d along with...
17420 (pass_data_ipa_lto_gimple_out): ...new pass_data instance and...
17421 (make_pass_ipa_lto_gimple_out): ...new function.
17422 (pass_ipa_lto_finish_out): Convert from a global struct to a subclass
17423 of ipa_opt_pass_d along with...
17424 (pass_data_ipa_lto_finish_out): ...new pass_data instance and...
17425 (make_pass_ipa_lto_finish_out): ...new function.
17426 * mode-switching.c (pass_mode_switching): Convert from a global struct
17427 to a subclass of rtl_opt_pass along with...
17428 (pass_data_mode_switching): ...new pass_data instance and...
17429 (make_pass_mode_switching): ...new function.
17430 * modulo-sched.c (pass_sms): Convert from a global struct to a
17431 subclass of rtl_opt_pass along with...
17432 (pass_data_sms): ...new pass_data instance and...
17433 (make_pass_sms): ...new function.
17434 * omp-low.c (pass_expand_omp): Convert from a global struct to a
17435 subclass of gimple_opt_pass along with...
17436 (pass_data_expand_omp): ...new pass_data instance and...
17437 (make_pass_expand_omp): ...new function.
17438 (pass_lower_omp): Convert from a global struct to a subclass of
17439 gimple_opt_pass along with...
17440 (pass_data_lower_omp): ...new pass_data instance and...
17441 (make_pass_lower_omp): ...new function.
17442 (pass_diagnose_omp_blocks): Convert from a global struct to a subclass
17443 of gimple_opt_pass along with...
17444 (pass_data_diagnose_omp_blocks): ...new pass_data instance and...
17445 (make_pass_diagnose_omp_blocks): ...new function.
17446 * passes.c (pass_early_local_passes): Convert from a global struct to
17447 a subclass of simple_ipa_opt_pass along with...
17448 (pass_data_early_local_passes): ...new pass_data instance and...
17449 (make_pass_early_local_passes): ...new function.
17450 (pass_all_early_optimizations): Convert from a global struct to a
17451 subclass of gimple_opt_pass along with...
17452 (pass_data_all_early_optimizations): ...new pass_data instance and...
17453 (make_pass_all_early_optimizations): ...new function.
17454 (pass_all_optimizations): Convert from a global struct to a subclass
17455 of gimple_opt_pass along with...
17456 (pass_data_all_optimizations): ...new pass_data instance and...
17457 (make_pass_all_optimizations): ...new function.
17458 (pass_all_optimizations_g): Convert from a global struct to a subclass
17459 of gimple_opt_pass along with...
17460 (pass_data_all_optimizations_g): ...new pass_data instance and...
17461 (make_pass_all_optimizations_g): ...new function.
17462 (pass_rest_of_compilation): Convert from a global struct to a subclass
17463 of rtl_opt_pass along with...
17464 (pass_data_rest_of_compilation): ...new pass_data instance and...
17465 (make_pass_rest_of_compilation): ...new function.
17466 (pass_postreload): Convert from a global struct to a subclass of
17467 rtl_opt_pass along with...
17468 (pass_data_postreload): ...new pass_data instance and...
17469 (make_pass_postreload): ...new function.
17470 * postreload-gcse.c (pass_gcse2): Convert from a global struct to a
17471 subclass of rtl_opt_pass along with...
17472 (pass_data_gcse2): ...new pass_data instance and...
17473 (make_pass_gcse2): ...new function.
17474 * postreload.c (pass_postreload_cse): Convert from a global struct to
17475 a subclass of rtl_opt_pass along with...
17476 (pass_data_postreload_cse): ...new pass_data instance and...
17477 (make_pass_postreload_cse): ...new function.
17478 * predict.c (pass_profile): Convert from a global struct to a subclass
17479 of gimple_opt_pass along with...
17480 (pass_data_profile): ...new pass_data instance and...
17481 (make_pass_profile): ...new function.
17482 (pass_strip_predict_hints): Convert from a global struct to a subclass
17483 of gimple_opt_pass along with...
17484 (pass_data_strip_predict_hints): ...new pass_data instance and...
17485 (make_pass_strip_predict_hints): ...new function.
17486 * recog.c (pass_peephole2): Convert from a global struct to a subclass
17487 of rtl_opt_pass along with...
17488 (pass_data_peephole2): ...new pass_data instance and...
17489 (make_pass_peephole2): ...new function.
17490 (pass_split_all_insns): Convert from a global struct to a subclass of
17491 rtl_opt_pass along with...
17492 (pass_data_split_all_insns): ...new pass_data instance and...
17493 (make_pass_split_all_insns): ...new function.
17494 (pass_split_after_reload): Convert from a global struct to a subclass
17495 of rtl_opt_pass along with...
17496 (pass_data_split_after_reload): ...new pass_data instance and...
17497 (make_pass_split_after_reload): ...new function.
17498 (pass_split_before_regstack): Convert from a global struct to a
17499 subclass of rtl_opt_pass along with...
17500 (pass_data_split_before_regstack): ...new pass_data instance and...
17501 (make_pass_split_before_regstack): ...new function.
17502 (pass_split_before_sched2): Convert from a global struct to a subclass
17503 of rtl_opt_pass along with...
17504 (pass_data_split_before_sched2): ...new pass_data instance and...
17505 (make_pass_split_before_sched2): ...new function.
17506 (pass_split_for_shorten_branches): Convert from a global struct to a
17507 subclass of rtl_opt_pass along with...
17508 (pass_data_split_for_shorten_branches): ...new pass_data instance
17509 and...
17510 (make_pass_split_for_shorten_branches): ...new function.
17511 * ree.c (pass_ree): Convert from a global struct to a subclass of
17512 rtl_opt_pass along with...
17513 (pass_data_ree): ...new pass_data instance and...
17514 (make_pass_ree): ...new function.
17515 * reg-stack.c (pass_stack_regs): Convert from a global struct to a
17516 subclass of rtl_opt_pass along with...
17517 (pass_data_stack_regs): ...new pass_data instance and...
17518 (make_pass_stack_regs): ...new function.
17519 (pass_stack_regs_run): Convert from a global struct to a subclass of
17520 rtl_opt_pass along with...
17521 (pass_data_stack_regs_run): ...new pass_data instance and...
17522 (make_pass_stack_regs_run): ...new function.
17523 * regcprop.c (pass_cprop_hardreg): Convert from a global struct to a
17524 subclass of rtl_opt_pass along with...
17525 (pass_data_cprop_hardreg): ...new pass_data instance and...
17526 (make_pass_cprop_hardreg): ...new function.
17527 * reginfo.c (pass_reginfo_init): Convert from a global struct to a
17528 subclass of rtl_opt_pass along with...
17529 (pass_data_reginfo_init): ...new pass_data instance and...
17530 (make_pass_reginfo_init): ...new function.
17531 * regmove.c (pass_regmove): Convert from a global struct to a subclass
17532 of rtl_opt_pass along with...
17533 (pass_data_regmove): ...new pass_data instance and...
17534 (make_pass_regmove): ...new function.
17535 * regrename.c (pass_regrename): Convert from a global struct to a
17536 subclass of rtl_opt_pass along with...
17537 (pass_data_regrename): ...new pass_data instance and...
17538 (make_pass_regrename): ...new function.
17539 * reorg.c (pass_delay_slots): Convert from a global struct to a
17540 subclass of rtl_opt_pass along with...
17541 (pass_data_delay_slots): ...new pass_data instance and...
17542 (make_pass_delay_slots): ...new function.
17543 (pass_machine_reorg): Convert from a global struct to a subclass of
17544 rtl_opt_pass along with...
17545 (pass_data_machine_reorg): ...new pass_data instance and...
17546 (make_pass_machine_reorg): ...new function.
17547 * sched-rgn.c (pass_sched): Convert from a global struct to a subclass
17548 of rtl_opt_pass along with...
17549 (pass_data_sched): ...new pass_data instance and...
17550 (make_pass_sched): ...new function.
17551 (pass_sched2): Convert from a global struct to a subclass of
17552 rtl_opt_pass along with...
17553 (pass_data_sched2): ...new pass_data instance and...
17554 (make_pass_sched2): ...new function.
17555 * stack-ptr-mod.c (pass_stack_ptr_mod): Convert from a global struct
17556 to a subclass of rtl_opt_pass along with...
17557 (pass_data_stack_ptr_mod): ...new pass_data instance and...
17558 (make_pass_stack_ptr_mod): ...new function.
17559 * store-motion.c (pass_rtl_store_motion): Convert from a global struct
17560 to a subclass of rtl_opt_pass along with...
17561 (pass_data_rtl_store_motion): ...new pass_data instance and...
17562 (make_pass_rtl_store_motion): ...new function.
17563 * tracer.c (pass_tracer): Convert from a global struct to a subclass
17564 of gimple_opt_pass along with...
17565 (pass_data_tracer): ...new pass_data instance and...
17566 (make_pass_tracer): ...new function.
17567 * trans-mem.c (pass_diagnose_tm_blocks): Convert from a global struct
17568 to a subclass of gimple_opt_pass along with...
17569 (pass_data_diagnose_tm_blocks): ...new pass_data instance and...
17570 (make_pass_diagnose_tm_blocks): ...new function.
17571 (pass_lower_tm): Convert from a global struct to a subclass of
17572 gimple_opt_pass along with...
17573 (pass_data_lower_tm): ...new pass_data instance and...
17574 (make_pass_lower_tm): ...new function.
17575 (pass_tm_init): Convert from a global struct to a subclass of
17576 gimple_opt_pass along with...
17577 (pass_data_tm_init): ...new pass_data instance and...
17578 (make_pass_tm_init): ...new function.
17579 (pass_tm_mark): Convert from a global struct to a subclass of
17580 gimple_opt_pass along with...
17581 (pass_data_tm_mark): ...new pass_data instance and...
17582 (make_pass_tm_mark): ...new function.
17583 (pass_tm_edges): Convert from a global struct to a subclass of
17584 gimple_opt_pass along with...
17585 (pass_data_tm_edges): ...new pass_data instance and...
17586 (make_pass_tm_edges): ...new function.
17587 (pass_tm_memopt): Convert from a global struct to a subclass of
17588 gimple_opt_pass along with...
17589 (pass_data_tm_memopt): ...new pass_data instance and...
17590 (make_pass_tm_memopt): ...new function.
17591 (pass_ipa_tm): Convert from a global struct to a subclass of
17592 simple_ipa_opt_pass along with...
17593 (pass_data_ipa_tm): ...new pass_data instance and...
17594 (make_pass_ipa_tm): ...new function.
17595 * tree-call-cdce.c (pass_call_cdce): Convert from a global struct to a
17596 subclass of gimple_opt_pass along with...
17597 (pass_data_call_cdce): ...new pass_data instance and...
17598 (make_pass_call_cdce): ...new function.
17599 * tree-cfg.c (pass_build_cfg): Convert from a global struct to a
17600 subclass of gimple_opt_pass along with...
17601 (pass_data_build_cfg): ...new pass_data instance and...
17602 (make_pass_build_cfg): ...new function.
17603 (pass_split_crit_edges): Convert from a global struct to a subclass of
17604 gimple_opt_pass along with...
17605 (pass_data_split_crit_edges): ...new pass_data instance and...
17606 (make_pass_split_crit_edges): ...new function.
17607 (pass_warn_function_return): Convert from a global struct to a
17608 subclass of gimple_opt_pass along with...
17609 (pass_data_warn_function_return): ...new pass_data instance and...
17610 (make_pass_warn_function_return): ...new function.
17611 (pass_warn_function_noreturn): Convert from a global struct to a
17612 subclass of gimple_opt_pass along with...
17613 (pass_data_warn_function_noreturn): ...new pass_data instance and...
17614 (make_pass_warn_function_noreturn): ...new function.
17615 (pass_warn_unused_result): Convert from a global struct to a subclass
17616 of gimple_opt_pass along with...
17617 (pass_data_warn_unused_result): ...new pass_data instance and...
17618 (make_pass_warn_unused_result): ...new function.
17619 * tree-cfgcleanup.c (pass_merge_phi): Convert from a global struct to
17620 a subclass of gimple_opt_pass along with...
17621 (pass_data_merge_phi): ...new pass_data instance and...
17622 (make_pass_merge_phi): ...new function.
17623 * tree-complex.c (pass_lower_complex): Convert from a global struct to
17624 a subclass of gimple_opt_pass along with...
17625 (pass_data_lower_complex): ...new pass_data instance and...
17626 (make_pass_lower_complex): ...new function.
17627 (pass_lower_complex_O0): Convert from a global struct to a subclass of
17628 gimple_opt_pass along with...
17629 (pass_data_lower_complex_O0): ...new pass_data instance and...
17630 (make_pass_lower_complex_O0): ...new function.
17631 * tree-eh.c (pass_lower_eh): Convert from a global struct to a
17632 subclass of gimple_opt_pass along with...
17633 (pass_data_lower_eh): ...new pass_data instance and...
17634 (make_pass_lower_eh): ...new function.
17635 (pass_refactor_eh): Convert from a global struct to a subclass of
17636 gimple_opt_pass along with...
17637 (pass_data_refactor_eh): ...new pass_data instance and...
17638 (make_pass_refactor_eh): ...new function.
17639 (pass_lower_resx): Convert from a global struct to a subclass of
17640 gimple_opt_pass along with...
17641 (pass_data_lower_resx): ...new pass_data instance and...
17642 (make_pass_lower_resx): ...new function.
17643 (pass_lower_eh_dispatch): Convert from a global struct to a subclass
17644 of gimple_opt_pass along with...
17645 (pass_data_lower_eh_dispatch): ...new pass_data instance and...
17646 (make_pass_lower_eh_dispatch): ...new function.
17647 (pass_cleanup_eh): Convert from a global struct to a subclass of
17648 gimple_opt_pass along with...
17649 (pass_data_cleanup_eh): ...new pass_data instance and...
17650 (make_pass_cleanup_eh): ...new function.
17651 * tree-emutls.c (pass_ipa_lower_emutls): Convert from a global struct
17652 to a subclass of simple_ipa_opt_pass along with...
17653 (pass_data_ipa_lower_emutls): ...new pass_data instance and...
17654 (make_pass_ipa_lower_emutls): ...new function.
17655 * tree-if-conv.c (pass_if_conversion): Convert from a global struct to
17656 a subclass of gimple_opt_pass along with...
17657 (pass_data_if_conversion): ...new pass_data instance and...
17658 (make_pass_if_conversion): ...new function.
17659 * tree-into-ssa.c (pass_build_ssa): Convert from a global struct to a
17660 subclass of gimple_opt_pass along with...
17661 (pass_data_build_ssa): ...new pass_data instance and...
17662 (make_pass_build_ssa): ...new function.
17663 * tree-loop-distribution.c (pass_loop_distribution): Convert from a
17664 global struct to a subclass of gimple_opt_pass along with...
17665 (pass_data_loop_distribution): ...new pass_data instance and...
17666 (make_pass_loop_distribution): ...new function.
17667 * tree-mudflap.c (pass_mudflap_1): Convert from a global struct to a
17668 subclass of gimple_opt_pass along with...
17669 (pass_data_mudflap_1): ...new pass_data instance and...
17670 (make_pass_mudflap_1): ...new function.
17671 (pass_mudflap_2): Convert from a global struct to a subclass of
17672 gimple_opt_pass along with...
17673 (pass_data_mudflap_2): ...new pass_data instance and...
17674 (make_pass_mudflap_2): ...new function.
17675 * tree-nomudflap.c (pass_mudflap_1): Convert from a global struct to a
17676 subclass of gimple_opt_pass along with...
17677 (pass_data_mudflap_1): ...new pass_data instance and...
17678 (make_pass_mudflap_1): ...new function.
17679 (pass_mudflap_2): Convert from a global struct to a subclass of
17680 gimple_opt_pass along with...
17681 (pass_data_mudflap_2): ...new pass_data instance and...
17682 (make_pass_mudflap_2): ...new function.
17683 * tree-nrv.c (pass_nrv): Convert from a global struct to a subclass of
17684 gimple_opt_pass along with...
17685 (pass_data_nrv): ...new pass_data instance and...
17686 (make_pass_nrv): ...new function.
17687 (pass_return_slot): Convert from a global struct to a subclass of
17688 gimple_opt_pass along with...
17689 (pass_data_return_slot): ...new pass_data instance and...
17690 (make_pass_return_slot): ...new function.
17691 * tree-object-size.c (pass_object_sizes): Convert from a global struct
17692 to a subclass of gimple_opt_pass along with...
17693 (pass_data_object_sizes): ...new pass_data instance and...
17694 (make_pass_object_sizes): ...new function.
17695 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Convert from a
17696 global struct to a subclass of gimple_opt_pass along with...
17697 (pass_data_cleanup_cfg_post_optimizing): ...new pass_data instance
17698 and...
17699 (make_pass_cleanup_cfg_post_optimizing): ...new function.
17700 (pass_fixup_cfg): Convert from a global struct to a subclass of
17701 gimple_opt_pass along with...
17702 (pass_data_fixup_cfg): ...new pass_data instance and...
17703 (make_pass_fixup_cfg): ...new function.
17704 * tree-pass.h (pass_mudflap_1): Replace declaration with that of...
17705 (make_pass_mudflap_1): ...new function.
17706 (pass_mudflap_2): Replace declaration with that of...
17707 (make_pass_mudflap_2): ...new function.
17708 (pass_asan): Replace declaration with that of...
17709 (make_pass_asan): ...new function.
17710 (pass_asan_O0): Replace declaration with that of...
17711 (make_pass_asan_O0): ...new function.
17712 (pass_tsan): Replace declaration with that of...
17713 (make_pass_tsan): ...new function.
17714 (pass_tsan_O0): Replace declaration with that of...
17715 (make_pass_tsan_O0): ...new function.
17716 (pass_lower_cf): Replace declaration with that of...
17717 (make_pass_lower_cf): ...new function.
17718 (pass_refactor_eh): Replace declaration with that of...
17719 (make_pass_refactor_eh): ...new function.
17720 (pass_lower_eh): Replace declaration with that of...
17721 (make_pass_lower_eh): ...new function.
17722 (pass_lower_eh_dispatch): Replace declaration with that of...
17723 (make_pass_lower_eh_dispatch): ...new function.
17724 (pass_lower_resx): Replace declaration with that of...
17725 (make_pass_lower_resx): ...new function.
17726 (pass_build_cfg): Replace declaration with that of...
17727 (make_pass_build_cfg): ...new function.
17728 (pass_early_tree_profile): Replace declaration with that of...
17729 (make_pass_early_tree_profile): ...new function.
17730 (pass_cleanup_eh): Replace declaration with that of...
17731 (make_pass_cleanup_eh): ...new function.
17732 (pass_sra): Replace declaration with that of...
17733 (make_pass_sra): ...new function.
17734 (pass_sra_early): Replace declaration with that of...
17735 (make_pass_sra_early): ...new function.
17736 (pass_early_ipa_sra): Replace declaration with that of...
17737 (make_pass_early_ipa_sra): ...new function.
17738 (pass_tail_recursion): Replace declaration with that of...
17739 (make_pass_tail_recursion): ...new function.
17740 (pass_tail_calls): Replace declaration with that of...
17741 (make_pass_tail_calls): ...new function.
17742 (pass_tree_loop): Replace declaration with that of...
17743 (make_pass_tree_loop): ...new function.
17744 (pass_tree_loop_init): Replace declaration with that of...
17745 (make_pass_tree_loop_init): ...new function.
17746 (pass_lim): Replace declaration with that of...
17747 (make_pass_lim): ...new function.
17748 (pass_tree_unswitch): Replace declaration with that of...
17749 (make_pass_tree_unswitch): ...new function.
17750 (pass_predcom): Replace declaration with that of...
17751 (make_pass_predcom): ...new function.
17752 (pass_iv_canon): Replace declaration with that of...
17753 (make_pass_iv_canon): ...new function.
17754 (pass_scev_cprop): Replace declaration with that of...
17755 (make_pass_scev_cprop): ...new function.
17756 (pass_empty_loop): Replace declaration with that of...
17757 (make_pass_empty_loop): ...new function.
17758 (pass_record_bounds): Replace declaration with that of...
17759 (make_pass_record_bounds): ...new function.
17760 (pass_graphite): Replace declaration with that of...
17761 (make_pass_graphite): ...new function.
17762 (pass_graphite_transforms): Replace declaration with that of...
17763 (make_pass_graphite_transforms): ...new function.
17764 (pass_if_conversion): Replace declaration with that of...
17765 (make_pass_if_conversion): ...new function.
17766 (pass_loop_distribution): Replace declaration with that of...
17767 (make_pass_loop_distribution): ...new function.
17768 (pass_vectorize): Replace declaration with that of...
17769 (make_pass_vectorize): ...new function.
17770 (pass_slp_vectorize): Replace declaration with that of...
17771 (make_pass_slp_vectorize): ...new function.
17772 (pass_complete_unroll): Replace declaration with that of...
17773 (make_pass_complete_unroll): ...new function.
17774 (pass_complete_unrolli): Replace declaration with that of...
17775 (make_pass_complete_unrolli): ...new function.
17776 (pass_parallelize_loops): Replace declaration with that of...
17777 (make_pass_parallelize_loops): ...new function.
17778 (pass_loop_prefetch): Replace declaration with that of...
17779 (make_pass_loop_prefetch): ...new function.
17780 (pass_iv_optimize): Replace declaration with that of...
17781 (make_pass_iv_optimize): ...new function.
17782 (pass_tree_loop_done): Replace declaration with that of...
17783 (make_pass_tree_loop_done): ...new function.
17784 (pass_ch): Replace declaration with that of...
17785 (make_pass_ch): ...new function.
17786 (pass_ccp): Replace declaration with that of...
17787 (make_pass_ccp): ...new function.
17788 (pass_phi_only_cprop): Replace declaration with that of...
17789 (make_pass_phi_only_cprop): ...new function.
17790 (pass_build_ssa): Replace declaration with that of...
17791 (make_pass_build_ssa): ...new function.
17792 (pass_build_alias): Replace declaration with that of...
17793 (make_pass_build_alias): ...new function.
17794 (pass_build_ealias): Replace declaration with that of...
17795 (make_pass_build_ealias): ...new function.
17796 (pass_dominator): Replace declaration with that of...
17797 (make_pass_dominator): ...new function.
17798 (pass_dce): Replace declaration with that of...
17799 (make_pass_dce): ...new function.
17800 (pass_dce_loop): Replace declaration with that of...
17801 (make_pass_dce_loop): ...new function.
17802 (pass_cd_dce): Replace declaration with that of...
17803 (make_pass_cd_dce): ...new function.
17804 (pass_call_cdce): Replace declaration with that of...
17805 (make_pass_call_cdce): ...new function.
17806 (pass_merge_phi): Replace declaration with that of...
17807 (make_pass_merge_phi): ...new function.
17808 (pass_split_crit_edges): Replace declaration with that of...
17809 (make_pass_split_crit_edges): ...new function.
17810 (pass_pre): Replace declaration with that of...
17811 (make_pass_pre): ...new function.
17812 (pass_profile): Replace declaration with that of...
17813 (make_pass_profile): ...new function.
17814 (pass_strip_predict_hints): Replace declaration with that of...
17815 (make_pass_strip_predict_hints): ...new function.
17816 (pass_lower_complex_O0): Replace declaration with that of...
17817 (make_pass_lower_complex_O0): ...new function.
17818 (pass_lower_complex): Replace declaration with that of...
17819 (make_pass_lower_complex): ...new function.
17820 (pass_lower_vector): Replace declaration with that of...
17821 (make_pass_lower_vector): ...new function.
17822 (pass_lower_vector_ssa): Replace declaration with that of...
17823 (make_pass_lower_vector_ssa): ...new function.
17824 (pass_lower_omp): Replace declaration with that of...
17825 (make_pass_lower_omp): ...new function.
17826 (pass_diagnose_omp_blocks): Replace declaration with that of...
17827 (make_pass_diagnose_omp_blocks): ...new function.
17828 (pass_expand_omp): Replace declaration with that of...
17829 (make_pass_expand_omp): ...new function.
17830 (pass_expand_omp_ssa): Replace declaration with that of...
17831 (make_pass_expand_omp_ssa): ...new function.
17832 (pass_object_sizes): Replace declaration with that of...
17833 (make_pass_object_sizes): ...new function.
17834 (pass_strlen): Replace declaration with that of...
17835 (make_pass_strlen): ...new function.
17836 (pass_fold_builtins): Replace declaration with that of...
17837 (make_pass_fold_builtins): ...new function.
17838 (pass_stdarg): Replace declaration with that of...
17839 (make_pass_stdarg): ...new function.
17840 (pass_early_warn_uninitialized): Replace declaration with that of...
17841 (make_pass_early_warn_uninitialized): ...new function.
17842 (pass_late_warn_uninitialized): Replace declaration with that of...
17843 (make_pass_late_warn_uninitialized): ...new function.
17844 (pass_cse_reciprocals): Replace declaration with that of...
17845 (make_pass_cse_reciprocals): ...new function.
17846 (pass_cse_sincos): Replace declaration with that of...
17847 (make_pass_cse_sincos): ...new function.
17848 (pass_optimize_bswap): Replace declaration with that of...
17849 (make_pass_optimize_bswap): ...new function.
17850 (pass_optimize_widening_mul): Replace declaration with that of...
17851 (make_pass_optimize_widening_mul): ...new function.
17852 (pass_warn_function_return): Replace declaration with that of...
17853 (make_pass_warn_function_return): ...new function.
17854 (pass_warn_function_noreturn): Replace declaration with that of...
17855 (make_pass_warn_function_noreturn): ...new function.
17856 (pass_cselim): Replace declaration with that of...
17857 (make_pass_cselim): ...new function.
17858 (pass_phiopt): Replace declaration with that of...
17859 (make_pass_phiopt): ...new function.
17860 (pass_forwprop): Replace declaration with that of...
17861 (make_pass_forwprop): ...new function.
17862 (pass_phiprop): Replace declaration with that of...
17863 (make_pass_phiprop): ...new function.
17864 (pass_tree_ifcombine): Replace declaration with that of...
17865 (make_pass_tree_ifcombine): ...new function.
17866 (pass_dse): Replace declaration with that of...
17867 (make_pass_dse): ...new function.
17868 (pass_nrv): Replace declaration with that of...
17869 (make_pass_nrv): ...new function.
17870 (pass_rename_ssa_copies): Replace declaration with that of...
17871 (make_pass_rename_ssa_copies): ...new function.
17872 (pass_sink_code): Replace declaration with that of...
17873 (make_pass_sink_code): ...new function.
17874 (pass_fre): Replace declaration with that of...
17875 (make_pass_fre): ...new function.
17876 (pass_check_data_deps): Replace declaration with that of...
17877 (make_pass_check_data_deps): ...new function.
17878 (pass_copy_prop): Replace declaration with that of...
17879 (make_pass_copy_prop): ...new function.
17880 (pass_vrp): Replace declaration with that of...
17881 (make_pass_vrp): ...new function.
17882 (pass_uncprop): Replace declaration with that of...
17883 (make_pass_uncprop): ...new function.
17884 (pass_return_slot): Replace declaration with that of...
17885 (make_pass_return_slot): ...new function.
17886 (pass_reassoc): Replace declaration with that of...
17887 (make_pass_reassoc): ...new function.
17888 (pass_rebuild_cgraph_edges): Replace declaration with that of...
17889 (make_pass_rebuild_cgraph_edges): ...new function.
17890 (pass_remove_cgraph_callee_edges): Replace declaration with that of...
17891 (make_pass_remove_cgraph_callee_edges): ...new function.
17892 (pass_build_cgraph_edges): Replace declaration with that of...
17893 (make_pass_build_cgraph_edges): ...new function.
17894 (pass_local_pure_const): Replace declaration with that of...
17895 (make_pass_local_pure_const): ...new function.
17896 (pass_tracer): Replace declaration with that of...
17897 (make_pass_tracer): ...new function.
17898 (pass_warn_unused_result): Replace declaration with that of...
17899 (make_pass_warn_unused_result): ...new function.
17900 (pass_diagnose_tm_blocks): Replace declaration with that of...
17901 (make_pass_diagnose_tm_blocks): ...new function.
17902 (pass_lower_tm): Replace declaration with that of...
17903 (make_pass_lower_tm): ...new function.
17904 (pass_tm_init): Replace declaration with that of...
17905 (make_pass_tm_init): ...new function.
17906 (pass_tm_mark): Replace declaration with that of...
17907 (make_pass_tm_mark): ...new function.
17908 (pass_tm_memopt): Replace declaration with that of...
17909 (make_pass_tm_memopt): ...new function.
17910 (pass_tm_edges): Replace declaration with that of...
17911 (make_pass_tm_edges): ...new function.
17912 (pass_split_functions): Replace declaration with that of...
17913 (make_pass_split_functions): ...new function.
17914 (pass_feedback_split_functions): Replace declaration with that of...
17915 (make_pass_feedback_split_functions): ...new function.
17916 (pass_strength_reduction): Replace declaration with that of...
17917 (make_pass_strength_reduction): ...new function.
17918 (pass_ipa_lower_emutls): Replace declaration with that of...
17919 (make_pass_ipa_lower_emutls): ...new function.
17920 (pass_ipa_function_and_variable_visibility): Replace declaration with
17921 that of...
17922 (make_pass_ipa_function_and_variable_visibility): ...new function.
17923 (pass_ipa_tree_profile): Replace declaration with that of...
17924 (make_pass_ipa_tree_profile): ...new function.
17925 (pass_early_local_passes): Replace declaration with that of...
17926 (make_pass_early_local_passes): ...new function.
17927 (pass_ipa_whole_program_visibility): Replace declaration with that
17928 of...
17929 (make_pass_ipa_whole_program_visibility): ...new function.
17930 (pass_ipa_lto_gimple_out): Replace declaration with that of...
17931 (make_pass_ipa_lto_gimple_out): ...new function.
17932 (pass_ipa_increase_alignment): Replace declaration with that of...
17933 (make_pass_ipa_increase_alignment): ...new function.
17934 (pass_ipa_inline): Replace declaration with that of...
17935 (make_pass_ipa_inline): ...new function.
17936 (pass_ipa_free_lang_data): Replace declaration with that of...
17937 (make_pass_ipa_free_lang_data): ...new function.
17938 (pass_ipa_free_inline_summary): Replace declaration with that of...
17939 (make_pass_ipa_free_inline_summary): ...new function.
17940 (pass_ipa_cp): Replace declaration with that of...
17941 (make_pass_ipa_cp): ...new function.
17942 (pass_ipa_reference): Replace declaration with that of...
17943 (make_pass_ipa_reference): ...new function.
17944 (pass_ipa_pure_const): Replace declaration with that of...
17945 (make_pass_ipa_pure_const): ...new function.
17946 (pass_ipa_pta): Replace declaration with that of...
17947 (make_pass_ipa_pta): ...new function.
17948 (pass_ipa_lto_finish_out): Replace declaration with that of...
17949 (make_pass_ipa_lto_finish_out): ...new function.
17950 (pass_ipa_tm): Replace declaration with that of...
17951 (make_pass_ipa_tm): ...new function.
17952 (pass_ipa_profile): Replace declaration with that of...
17953 (make_pass_ipa_profile): ...new function.
17954 (pass_ipa_cdtor_merge): Replace declaration with that of...
17955 (make_pass_ipa_cdtor_merge): ...new function.
17956 (pass_cleanup_cfg_post_optimizing): Replace declaration with that
17957 of...
17958 (make_pass_cleanup_cfg_post_optimizing): ...new function.
17959 (pass_init_datastructures): Replace declaration with that of...
17960 (make_pass_init_datastructures): ...new function.
17961 (pass_fixup_cfg): Replace declaration with that of...
17962 (make_pass_fixup_cfg): ...new function.
17963 (pass_expand): Replace declaration with that of...
17964 (make_pass_expand): ...new function.
17965 (pass_instantiate_virtual_regs): Replace declaration with that of...
17966 (make_pass_instantiate_virtual_regs): ...new function.
17967 (pass_rtl_fwprop): Replace declaration with that of...
17968 (make_pass_rtl_fwprop): ...new function.
17969 (pass_rtl_fwprop_addr): Replace declaration with that of...
17970 (make_pass_rtl_fwprop_addr): ...new function.
17971 (pass_jump): Replace declaration with that of...
17972 (make_pass_jump): ...new function.
17973 (pass_jump2): Replace declaration with that of...
17974 (make_pass_jump2): ...new function.
17975 (pass_lower_subreg): Replace declaration with that of...
17976 (make_pass_lower_subreg): ...new function.
17977 (pass_cse): Replace declaration with that of...
17978 (make_pass_cse): ...new function.
17979 (pass_fast_rtl_dce): Replace declaration with that of...
17980 (make_pass_fast_rtl_dce): ...new function.
17981 (pass_ud_rtl_dce): Replace declaration with that of...
17982 (make_pass_ud_rtl_dce): ...new function.
17983 (pass_rtl_dce): Replace declaration with that of...
17984 (make_pass_rtl_dce): ...new function.
17985 (pass_rtl_dse1): Replace declaration with that of...
17986 (make_pass_rtl_dse1): ...new function.
17987 (pass_rtl_dse2): Replace declaration with that of...
17988 (make_pass_rtl_dse2): ...new function.
17989 (pass_rtl_dse3): Replace declaration with that of...
17990 (make_pass_rtl_dse3): ...new function.
17991 (pass_rtl_cprop): Replace declaration with that of...
17992 (make_pass_rtl_cprop): ...new function.
17993 (pass_rtl_pre): Replace declaration with that of...
17994 (make_pass_rtl_pre): ...new function.
17995 (pass_rtl_hoist): Replace declaration with that of...
17996 (make_pass_rtl_hoist): ...new function.
17997 (pass_rtl_store_motion): Replace declaration with that of...
17998 (make_pass_rtl_store_motion): ...new function.
17999 (pass_cse_after_global_opts): Replace declaration with that of...
18000 (make_pass_cse_after_global_opts): ...new function.
18001 (pass_rtl_ifcvt): Replace declaration with that of...
18002 (make_pass_rtl_ifcvt): ...new function.
18003 (pass_into_cfg_layout_mode): Replace declaration with that of...
18004 (make_pass_into_cfg_layout_mode): ...new function.
18005 (pass_outof_cfg_layout_mode): Replace declaration with that of...
18006 (make_pass_outof_cfg_layout_mode): ...new function.
18007 (pass_loop2): Replace declaration with that of...
18008 (make_pass_loop2): ...new function.
18009 (pass_rtl_loop_init): Replace declaration with that of...
18010 (make_pass_rtl_loop_init): ...new function.
18011 (pass_rtl_move_loop_invariants): Replace declaration with that of...
18012 (make_pass_rtl_move_loop_invariants): ...new function.
18013 (pass_rtl_unswitch): Replace declaration with that of...
18014 (make_pass_rtl_unswitch): ...new function.
18015 (pass_rtl_unroll_and_peel_loops): Replace declaration with that of...
18016 (make_pass_rtl_unroll_and_peel_loops): ...new function.
18017 (pass_rtl_doloop): Replace declaration with that of...
18018 (make_pass_rtl_doloop): ...new function.
18019 (pass_rtl_loop_done): Replace declaration with that of...
18020 (make_pass_rtl_loop_done): ...new function.
18021 (pass_web): Replace declaration with that of...
18022 (make_pass_web): ...new function.
18023 (pass_cse2): Replace declaration with that of...
18024 (make_pass_cse2): ...new function.
18025 (pass_df_initialize_opt): Replace declaration with that of...
18026 (make_pass_df_initialize_opt): ...new function.
18027 (pass_df_initialize_no_opt): Replace declaration with that of...
18028 (make_pass_df_initialize_no_opt): ...new function.
18029 (pass_reginfo_init): Replace declaration with that of...
18030 (make_pass_reginfo_init): ...new function.
18031 (pass_inc_dec): Replace declaration with that of...
18032 (make_pass_inc_dec): ...new function.
18033 (pass_stack_ptr_mod): Replace declaration with that of...
18034 (make_pass_stack_ptr_mod): ...new function.
18035 (pass_initialize_regs): Replace declaration with that of...
18036 (make_pass_initialize_regs): ...new function.
18037 (pass_combine): Replace declaration with that of...
18038 (make_pass_combine): ...new function.
18039 (pass_if_after_combine): Replace declaration with that of...
18040 (make_pass_if_after_combine): ...new function.
18041 (pass_ree): Replace declaration with that of...
18042 (make_pass_ree): ...new function.
18043 (pass_partition_blocks): Replace declaration with that of...
18044 (make_pass_partition_blocks): ...new function.
18045 (pass_match_asm_constraints): Replace declaration with that of...
18046 (make_pass_match_asm_constraints): ...new function.
18047 (pass_regmove): Replace declaration with that of...
18048 (make_pass_regmove): ...new function.
18049 (pass_split_all_insns): Replace declaration with that of...
18050 (make_pass_split_all_insns): ...new function.
18051 (pass_fast_rtl_byte_dce): Replace declaration with that of...
18052 (make_pass_fast_rtl_byte_dce): ...new function.
18053 (pass_lower_subreg2): Replace declaration with that of...
18054 (make_pass_lower_subreg2): ...new function.
18055 (pass_mode_switching): Replace declaration with that of...
18056 (make_pass_mode_switching): ...new function.
18057 (pass_sms): Replace declaration with that of...
18058 (make_pass_sms): ...new function.
18059 (pass_sched): Replace declaration with that of...
18060 (make_pass_sched): ...new function.
18061 (pass_ira): Replace declaration with that of...
18062 (make_pass_ira): ...new function.
18063 (pass_reload): Replace declaration with that of...
18064 (make_pass_reload): ...new function.
18065 (pass_clean_state): Replace declaration with that of...
18066 (make_pass_clean_state): ...new function.
18067 (pass_branch_prob): Replace declaration with that of...
18068 (make_pass_branch_prob): ...new function.
18069 (pass_value_profile_transformations): Replace declaration with that
18070 of...
18071 (make_pass_value_profile_transformations): ...new function.
18072 (pass_postreload_cse): Replace declaration with that of...
18073 (make_pass_postreload_cse): ...new function.
18074 (pass_gcse2): Replace declaration with that of...
18075 (make_pass_gcse2): ...new function.
18076 (pass_split_after_reload): Replace declaration with that of...
18077 (make_pass_split_after_reload): ...new function.
18078 (pass_branch_target_load_optimize1): Replace declaration with that
18079 of...
18080 (make_pass_branch_target_load_optimize1): ...new function.
18081 (pass_thread_prologue_and_epilogue): Replace declaration with that
18082 of...
18083 (make_pass_thread_prologue_and_epilogue): ...new function.
18084 (pass_stack_adjustments): Replace declaration with that of...
18085 (make_pass_stack_adjustments): ...new function.
18086 (pass_peephole2): Replace declaration with that of...
18087 (make_pass_peephole2): ...new function.
18088 (pass_if_after_reload): Replace declaration with that of...
18089 (make_pass_if_after_reload): ...new function.
18090 (pass_regrename): Replace declaration with that of...
18091 (make_pass_regrename): ...new function.
18092 (pass_cprop_hardreg): Replace declaration with that of...
18093 (make_pass_cprop_hardreg): ...new function.
18094 (pass_reorder_blocks): Replace declaration with that of...
18095 (make_pass_reorder_blocks): ...new function.
18096 (pass_branch_target_load_optimize2): Replace declaration with that
18097 of...
18098 (make_pass_branch_target_load_optimize2): ...new function.
18099 (pass_leaf_regs): Replace declaration with that of...
18100 (make_pass_leaf_regs): ...new function.
18101 (pass_split_before_sched2): Replace declaration with that of...
18102 (make_pass_split_before_sched2): ...new function.
18103 (pass_compare_elim_after_reload): Replace declaration with that of...
18104 (make_pass_compare_elim_after_reload): ...new function.
18105 (pass_sched2): Replace declaration with that of...
18106 (make_pass_sched2): ...new function.
18107 (pass_stack_regs): Replace declaration with that of...
18108 (make_pass_stack_regs): ...new function.
18109 (pass_stack_regs_run): Replace declaration with that of...
18110 (make_pass_stack_regs_run): ...new function.
18111 (pass_df_finish): Replace declaration with that of...
18112 (make_pass_df_finish): ...new function.
18113 (pass_compute_alignments): Replace declaration with that of...
18114 (make_pass_compute_alignments): ...new function.
18115 (pass_duplicate_computed_gotos): Replace declaration with that of...
18116 (make_pass_duplicate_computed_gotos): ...new function.
18117 (pass_variable_tracking): Replace declaration with that of...
18118 (make_pass_variable_tracking): ...new function.
18119 (pass_free_cfg): Replace declaration with that of...
18120 (make_pass_free_cfg): ...new function.
18121 (pass_machine_reorg): Replace declaration with that of...
18122 (make_pass_machine_reorg): ...new function.
18123 (pass_cleanup_barriers): Replace declaration with that of...
18124 (make_pass_cleanup_barriers): ...new function.
18125 (pass_delay_slots): Replace declaration with that of...
18126 (make_pass_delay_slots): ...new function.
18127 (pass_split_for_shorten_branches): Replace declaration with that of...
18128 (make_pass_split_for_shorten_branches): ...new function.
18129 (pass_split_before_regstack): Replace declaration with that of...
18130 (make_pass_split_before_regstack): ...new function.
18131 (pass_convert_to_eh_region_ranges): Replace declaration with that
18132 of...
18133 (make_pass_convert_to_eh_region_ranges): ...new function.
18134 (pass_shorten_branches): Replace declaration with that of...
18135 (make_pass_shorten_branches): ...new function.
18136 (pass_set_nothrow_function_flags): Replace declaration with that of...
18137 (make_pass_set_nothrow_function_flags): ...new function.
18138 (pass_dwarf2_frame): Replace declaration with that of...
18139 (make_pass_dwarf2_frame): ...new function.
18140 (pass_final): Replace declaration with that of...
18141 (make_pass_final): ...new function.
18142 (pass_rtl_seqabstr): Replace declaration with that of...
18143 (make_pass_rtl_seqabstr): ...new function.
18144 (pass_release_ssa_names): Replace declaration with that of...
18145 (make_pass_release_ssa_names): ...new function.
18146 (pass_early_inline): Replace declaration with that of...
18147 (make_pass_early_inline): ...new function.
18148 (pass_inline_parameters): Replace declaration with that of...
18149 (make_pass_inline_parameters): ...new function.
18150 (pass_update_address_taken): Replace declaration with that of...
18151 (make_pass_update_address_taken): ...new function.
18152 (pass_convert_switch): Replace declaration with that of...
18153 (make_pass_convert_switch): ...new function.
18154 * tree-profile.c (pass_ipa_tree_profile): Convert from a global struct
18155 to a subclass of simple_ipa_opt_pass along with...
18156 (pass_data_ipa_tree_profile): ...new pass_data instance and...
18157 (make_pass_ipa_tree_profile): ...new function.
18158 * tree-sra.c (pass_sra_early): Convert from a global struct to a
18159 subclass of gimple_opt_pass along with...
18160 (pass_data_sra_early): ...new pass_data instance and...
18161 (make_pass_sra_early): ...new function.
18162 (pass_sra): Convert from a global struct to a subclass of
18163 gimple_opt_pass along with...
18164 (pass_data_sra): ...new pass_data instance and...
18165 (make_pass_sra): ...new function.
18166 (pass_early_ipa_sra): Convert from a global struct to a subclass of
18167 gimple_opt_pass along with...
18168 (pass_data_early_ipa_sra): ...new pass_data instance and...
18169 (make_pass_early_ipa_sra): ...new function.
18170 * tree-ssa-ccp.c (pass_ccp): Convert from a global struct to a
18171 subclass of gimple_opt_pass along with...
18172 (pass_data_ccp): ...new pass_data instance and...
18173 (make_pass_ccp): ...new function.
18174 (pass_fold_builtins): Convert from a global struct to a subclass of
18175 gimple_opt_pass along with...
18176 (pass_data_fold_builtins): ...new pass_data instance and...
18177 (make_pass_fold_builtins): ...new function.
18178 * tree-ssa-copy.c (pass_copy_prop): Convert from a global struct to a
18179 subclass of gimple_opt_pass along with...
18180 (pass_data_copy_prop): ...new pass_data instance and...
18181 (make_pass_copy_prop): ...new function.
18182 * tree-ssa-copyrename.c (pass_rename_ssa_copies): Convert from a
18183 global struct to a subclass of gimple_opt_pass along with...
18184 (pass_data_rename_ssa_copies): ...new pass_data instance and...
18185 (make_pass_rename_ssa_copies): ...new function.
18186 * tree-ssa-dce.c (pass_dce): Convert from a global struct to a
18187 subclass of gimple_opt_pass along with...
18188 (pass_data_dce): ...new pass_data instance and...
18189 (make_pass_dce): ...new function.
18190 (pass_dce_loop): Convert from a global struct to a subclass of
18191 gimple_opt_pass along with...
18192 (pass_data_dce_loop): ...new pass_data instance and...
18193 (make_pass_dce_loop): ...new function.
18194 (pass_cd_dce): Convert from a global struct to a subclass of
18195 gimple_opt_pass along with...
18196 (pass_data_cd_dce): ...new pass_data instance and...
18197 (make_pass_cd_dce): ...new function.
18198 * tree-ssa-dom.c (pass_dominator): Convert from a global struct to a
18199 subclass of gimple_opt_pass along with...
18200 (pass_data_dominator): ...new pass_data instance and...
18201 (make_pass_dominator): ...new function.
18202 (pass_phi_only_cprop): Convert from a global struct to a subclass of
18203 gimple_opt_pass along with...
18204 (pass_data_phi_only_cprop): ...new pass_data instance and...
18205 (make_pass_phi_only_cprop): ...new function.
18206 * tree-ssa-dse.c (pass_dse): Convert from a global struct to a
18207 subclass of gimple_opt_pass along with...
18208 (pass_data_dse): ...new pass_data instance and...
18209 (make_pass_dse): ...new function.
18210 * tree-ssa-forwprop.c (pass_forwprop): Convert from a global struct to
18211 a subclass of gimple_opt_pass along with...
18212 (pass_data_forwprop): ...new pass_data instance and...
18213 (make_pass_forwprop): ...new function.
18214 * tree-ssa-ifcombine.c (pass_tree_ifcombine): Convert from a global
18215 struct to a subclass of gimple_opt_pass along with...
18216 (pass_data_tree_ifcombine): ...new pass_data instance and...
18217 (make_pass_tree_ifcombine): ...new function.
18218 * tree-ssa-loop-ch.c (pass_ch): Convert from a global struct to a
18219 subclass of gimple_opt_pass along with...
18220 (pass_data_ch): ...new pass_data instance and...
18221 (make_pass_ch): ...new function.
18222 * tree-ssa-loop.c (pass_tree_loop): Convert from a global struct to a
18223 subclass of gimple_opt_pass along with...
18224 (pass_data_tree_loop): ...new pass_data instance and...
18225 (make_pass_tree_loop): ...new function.
18226 (pass_tree_loop_init): Convert from a global struct to a subclass of
18227 gimple_opt_pass along with...
18228 (pass_data_tree_loop_init): ...new pass_data instance and...
18229 (make_pass_tree_loop_init): ...new function.
18230 (pass_lim): Convert from a global struct to a subclass of
18231 gimple_opt_pass along with...
18232 (pass_data_lim): ...new pass_data instance and...
18233 (make_pass_lim): ...new function.
18234 (pass_tree_unswitch): Convert from a global struct to a subclass of
18235 gimple_opt_pass along with...
18236 (pass_data_tree_unswitch): ...new pass_data instance and...
18237 (make_pass_tree_unswitch): ...new function.
18238 (pass_predcom): Convert from a global struct to a subclass of
18239 gimple_opt_pass along with...
18240 (pass_data_predcom): ...new pass_data instance and...
18241 (make_pass_predcom): ...new function.
18242 (pass_vectorize): Convert from a global struct to a subclass of
18243 gimple_opt_pass along with...
18244 (pass_data_vectorize): ...new pass_data instance and...
18245 (make_pass_vectorize): ...new function.
18246 (pass_graphite): Convert from a global struct to a subclass of
18247 gimple_opt_pass along with...
18248 (pass_data_graphite): ...new pass_data instance and...
18249 (make_pass_graphite): ...new function.
18250 (pass_graphite_transforms): Convert from a global struct to a subclass
18251 of gimple_opt_pass along with...
18252 (pass_data_graphite_transforms): ...new pass_data instance and...
18253 (make_pass_graphite_transforms): ...new function.
18254 (pass_check_data_deps): Convert from a global struct to a subclass of
18255 gimple_opt_pass along with...
18256 (pass_data_check_data_deps): ...new pass_data instance and...
18257 (make_pass_check_data_deps): ...new function.
18258 (pass_iv_canon): Convert from a global struct to a subclass of
18259 gimple_opt_pass along with...
18260 (pass_data_iv_canon): ...new pass_data instance and...
18261 (make_pass_iv_canon): ...new function.
18262 (pass_scev_cprop): Convert from a global struct to a subclass of
18263 gimple_opt_pass along with...
18264 (pass_data_scev_cprop): ...new pass_data instance and...
18265 (make_pass_scev_cprop): ...new function.
18266 (pass_record_bounds): Convert from a global struct to a subclass of
18267 gimple_opt_pass along with...
18268 (pass_data_record_bounds): ...new pass_data instance and...
18269 (make_pass_record_bounds): ...new function.
18270 (pass_complete_unroll): Convert from a global struct to a subclass of
18271 gimple_opt_pass along with...
18272 (pass_data_complete_unroll): ...new pass_data instance and...
18273 (make_pass_complete_unroll): ...new function.
18274 (pass_complete_unrolli): Convert from a global struct to a subclass of
18275 gimple_opt_pass along with...
18276 (pass_data_complete_unrolli): ...new pass_data instance and...
18277 (make_pass_complete_unrolli): ...new function.
18278 (pass_parallelize_loops): Convert from a global struct to a subclass
18279 of gimple_opt_pass along with...
18280 (pass_data_parallelize_loops): ...new pass_data instance and...
18281 (make_pass_parallelize_loops): ...new function.
18282 (pass_loop_prefetch): Convert from a global struct to a subclass of
18283 gimple_opt_pass along with...
18284 (pass_data_loop_prefetch): ...new pass_data instance and...
18285 (make_pass_loop_prefetch): ...new function.
18286 (pass_iv_optimize): Convert from a global struct to a subclass of
18287 gimple_opt_pass along with...
18288 (pass_data_iv_optimize): ...new pass_data instance and...
18289 (make_pass_iv_optimize): ...new function.
18290 (pass_tree_loop_done): Convert from a global struct to a subclass of
18291 gimple_opt_pass along with...
18292 (pass_data_tree_loop_done): ...new pass_data instance and...
18293 (make_pass_tree_loop_done): ...new function.
18294 * tree-ssa-math-opts.c (pass_cse_reciprocals): Convert from a global
18295 struct to a subclass of gimple_opt_pass along with...
18296 (pass_data_cse_reciprocals): ...new pass_data instance and...
18297 (make_pass_cse_reciprocals): ...new function.
18298 (pass_cse_sincos): Convert from a global struct to a subclass of
18299 gimple_opt_pass along with...
18300 (pass_data_cse_sincos): ...new pass_data instance and...
18301 (make_pass_cse_sincos): ...new function.
18302 (pass_optimize_bswap): Convert from a global struct to a subclass of
18303 gimple_opt_pass along with...
18304 (pass_data_optimize_bswap): ...new pass_data instance and...
18305 (make_pass_optimize_bswap): ...new function.
18306 (pass_optimize_widening_mul): Convert from a global struct to a
18307 subclass of gimple_opt_pass along with...
18308 (pass_data_optimize_widening_mul): ...new pass_data instance and...
18309 (make_pass_optimize_widening_mul): ...new function.
18310 * tree-ssa-phiopt.c (pass_phiopt): Convert from a global struct to a
18311 subclass of gimple_opt_pass along with...
18312 (pass_data_phiopt): ...new pass_data instance and...
18313 (make_pass_phiopt): ...new function.
18314 (pass_cselim): Convert from a global struct to a subclass of
18315 gimple_opt_pass along with...
18316 (pass_data_cselim): ...new pass_data instance and...
18317 (make_pass_cselim): ...new function.
18318 * tree-ssa-phiprop.c (pass_phiprop): Convert from a global struct to a
18319 subclass of gimple_opt_pass along with...
18320 (pass_data_phiprop): ...new pass_data instance and...
18321 (make_pass_phiprop): ...new function.
18322 * tree-ssa-pre.c (pass_pre): Convert from a global struct to a
18323 subclass of gimple_opt_pass along with...
18324 (pass_data_pre): ...new pass_data instance and...
18325 (make_pass_pre): ...new function.
18326 (pass_fre): Convert from a global struct to a subclass of
18327 gimple_opt_pass along with...
18328 (pass_data_fre): ...new pass_data instance and...
18329 (make_pass_fre): ...new function.
18330 * tree-ssa-reassoc.c (pass_reassoc): Convert from a global struct to a
18331 subclass of gimple_opt_pass along with...
18332 (pass_data_reassoc): ...new pass_data instance and...
18333 (make_pass_reassoc): ...new function.
18334 * tree-ssa-sink.c (pass_sink_code): Convert from a global struct to a
18335 subclass of gimple_opt_pass along with...
18336 (pass_data_sink_code): ...new pass_data instance and...
18337 (make_pass_sink_code): ...new function.
18338 * tree-ssa-strlen.c (pass_strlen): Convert from a global struct to a
18339 subclass of gimple_opt_pass along with...
18340 (pass_data_strlen): ...new pass_data instance and...
18341 (make_pass_strlen): ...new function.
18342 * tree-ssa-structalias.c (pass_build_alias): Convert from a global
18343 struct to a subclass of gimple_opt_pass along with...
18344 (pass_data_build_alias): ...new pass_data instance and...
18345 (make_pass_build_alias): ...new function.
18346 (pass_build_ealias): Convert from a global struct to a subclass of
18347 gimple_opt_pass along with...
18348 (pass_data_build_ealias): ...new pass_data instance and...
18349 (make_pass_build_ealias): ...new function.
18350 (pass_ipa_pta): Convert from a global struct to a subclass of
18351 simple_ipa_opt_pass along with...
18352 (pass_data_ipa_pta): ...new pass_data instance and...
18353 (make_pass_ipa_pta): ...new function.
18354 * tree-ssa-uncprop.c (pass_uncprop): Convert from a global struct to a
18355 subclass of gimple_opt_pass along with...
18356 (pass_data_uncprop): ...new pass_data instance and...
18357 (make_pass_uncprop): ...new function.
18358 * tree-ssa-uninit.c (pass_late_warn_uninitialized): Convert from a
18359 global struct to a subclass of gimple_opt_pass along with...
18360 (pass_data_late_warn_uninitialized): ...new pass_data instance and...
18361 (make_pass_late_warn_uninitialized): ...new function.
18362 * tree-ssa.c (pass_init_datastructures): Convert from a global struct
18363 to a subclass of gimple_opt_pass along with...
18364 (pass_data_init_datastructures): ...new pass_data instance and...
18365 (make_pass_init_datastructures): ...new function.
18366 (pass_early_warn_uninitialized): Convert from a global struct to a
18367 subclass of gimple_opt_pass along with...
18368 (pass_data_early_warn_uninitialized): ...new pass_data instance and...
18369 (make_pass_early_warn_uninitialized): ...new function.
18370 (pass_update_address_taken): Convert from a global struct to a
18371 subclass of gimple_opt_pass along with...
18372 (pass_data_update_address_taken): ...new pass_data instance and...
18373 (make_pass_update_address_taken): ...new function.
18374 * tree-ssanames.c (pass_release_ssa_names): Convert from a global
18375 struct to a subclass of gimple_opt_pass along with...
18376 (pass_data_release_ssa_names): ...new pass_data instance and...
18377 (make_pass_release_ssa_names): ...new function.
18378 * tree-stdarg.c (pass_stdarg): Convert from a global struct to a
18379 subclass of gimple_opt_pass along with...
18380 (pass_data_stdarg): ...new pass_data instance and...
18381 (make_pass_stdarg): ...new function.
18382 * tree-switch-conversion.c (pass_convert_switch): Convert from a
18383 global struct to a subclass of gimple_opt_pass along with...
18384 (pass_data_convert_switch): ...new pass_data instance and...
18385 (make_pass_convert_switch): ...new function.
18386 * tree-tailcall.c (pass_tail_recursion): Convert from a global struct
18387 to a subclass of gimple_opt_pass along with...
18388 (pass_data_tail_recursion): ...new pass_data instance and...
18389 (make_pass_tail_recursion): ...new function.
18390 (pass_tail_calls): Convert from a global struct to a subclass of
18391 gimple_opt_pass along with...
18392 (pass_data_tail_calls): ...new pass_data instance and...
18393 (make_pass_tail_calls): ...new function.
18394 * tree-vect-generic.c (pass_lower_vector): Convert from a global
18395 struct to a subclass of gimple_opt_pass along with...
18396 (pass_data_lower_vector): ...new pass_data instance and...
18397 (make_pass_lower_vector): ...new function.
18398 (pass_lower_vector_ssa): Convert from a global struct to a subclass of
18399 gimple_opt_pass along with...
18400 (pass_data_lower_vector_ssa): ...new pass_data instance and...
18401 (make_pass_lower_vector_ssa): ...new function.
18402 * tree-vectorizer.c (pass_slp_vectorize): Convert from a global struct
18403 to a subclass of gimple_opt_pass along with...
18404 (pass_data_slp_vectorize): ...new pass_data instance and...
18405 (make_pass_slp_vectorize): ...new function.
18406 (pass_ipa_increase_alignment): Convert from a global struct to a
18407 subclass of simple_ipa_opt_pass along with...
18408 (pass_data_ipa_increase_alignment): ...new pass_data instance and...
18409 (make_pass_ipa_increase_alignment): ...new function.
18410 * tree-vrp.c (pass_vrp): Convert from a global struct to a subclass of
18411 gimple_opt_pass along with...
18412 (pass_data_vrp): ...new pass_data instance and...
18413 (make_pass_vrp): ...new function.
18414 * tree.c (pass_ipa_free_lang_data): Convert from a global struct to a
18415 subclass of simple_ipa_opt_pass along with...
18416 (pass_data_ipa_free_lang_data): ...new pass_data instance and...
18417 (make_pass_ipa_free_lang_data): ...new function.
18418 * tsan.c (pass_tsan): Convert from a global struct to a subclass of
18419 gimple_opt_pass along with...
18420 (pass_data_tsan): ...new pass_data instance and...
18421 (make_pass_tsan): ...new function.
18422 (pass_tsan_O0): Convert from a global struct to a subclass of
18423 gimple_opt_pass along with...
18424 (pass_data_tsan_O0): ...new pass_data instance and...
18425 (make_pass_tsan_O0): ...new function.
18426 * var-tracking.c (pass_variable_tracking): Convert from a global
18427 struct to a subclass of rtl_opt_pass along with...
18428 (pass_data_variable_tracking): ...new pass_data instance and...
18429 (make_pass_variable_tracking): ...new function.
18430 * web.c (pass_web): Convert from a global struct to a subclass of
18431 rtl_opt_pass along with...
18432 (pass_data_web): ...new pass_data instance and...
18433 (make_pass_web): ...new function.
18434 * config/epiphany/epiphany.h (pass_mode_switch_use): Replace
18435 declaration with that of...
18436 (make_pass_mode_switch_use): ...new function.
18437 (pass_resolve_sw_modes): Replace declaration with that of...
18438 (make_pass_resolve_sw_modes): ...new function.
18439 * config/epiphany/mode-switch-use.c (pass_mode_switch_use): Convert
18440 from a global struct to a subclass of rtl_opt_pass along with...
18441 (pass_data_mode_switch_use): ...new pass_data instance and...
18442 (make_pass_mode_switch_use): ...new function.
18443 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes): Convert
18444 from a global struct to a subclass of rtl_opt_pass along with...
18445 (pass_data_resolve_sw_modes): ...new pass_data instance and...
18446 (make_pass_resolve_sw_modes): ...new function.
18447 * config/i386/i386.c (pass_insert_vzeroupper): Convert from a global
18448 struct to a subclass of rtl_opt_pass along with...
18449 (pass_data_insert_vzeroupper): ...new pass_data instance and...
18450 (make_pass_insert_vzeroupper): ...new function.
18451 * config/sparc/sparc.c (pass_work_around_errata): Convert from a
18452 global struct to a subclass of rtl_opt_pass along with...
18453 (pass_data_work_around_errata): ...new pass_data instance and...
18454 (make_pass_work_around_errata): ...new function.
18455 * config/mips/mips.c (pass_mips_machine_reorg2): Convert from a global
18456 struct to a subclass of rtl_opt_pass along with...
18457 (pass_data_mips_machine_reorg2): ...new pass_data instance and...
18458 (make_pass_mips_machine_reorg2): ...new function.
18459
04b48e18 184602013-08-05 David Malcolm <dmalcolm@redhat.com>
18461
18462 * passes.c (pass_manager::operator new): New.
18463
bcfddb5b 184642013-08-05 David Malcolm <dmalcolm@redhat.com>
18465
18466 Handwritten part of conversion of passes to C++ classes.
18467
18468 * Makefile.in (PASS_MANAGER_H): Add dep on pass-instances.def.
18469 (toplev.o): Add dep on PASS_MANAGER_H.
18470 * cgraphunit.c (cgraph_process_new_functions): Rework invocation
18471 of early local pases to reflect this moving from a global to a
18472 member of gcc::pass_manager.
18473 (cgraph_add_new_function): Likewise.
18474 * lto-cgraph.c (lto_output_node): Update for conversion of
18475 struct ipa_opt_pass_d to a C++ subclass of opt_pass.
18476 * passes.c (opt_pass::clone): New.
18477 (opt_pass::gate): New.
18478 (opt_pass::execute): New.
18479 (opt_pass::opt_pass): New.
18480 (pass_manager::execute_early_local_passes): New.
18481 (pass_manager::execute_pass_mode_switching): new.
18482 (finish_optimization_passes): Convert to...
18483 (pass_manager::finish_optimization_passes): ...this.
18484 (finish_optimization_passes): Update for conversion of passes to
18485 C++ classes.
18486 (register_dump_files_1): Use has_gate since we cannot portably
18487 check a vtable entry against NULL.
18488 (dump_one_pass): Likewise.
18489 (ipa_write_summaries_2): Likewise.
18490 (ipa_write_optimization_summaries_1): Likewise.
18491 (ipa_read_summaries_1): Likewise.
18492 (ipa_read_optimization_summaries_1): Likewise.
18493 (execute_ipa_stmt_fixups): Likewise.
18494 (pass_manager::pass_manager): Rewrite pass-creation, invoking
18495 pass-creation functions rather than wiring up globals, and
18496 storing the results in fields of pass_manager generated using
18497 pass-instances.def.
18498 (pass_manager::dump_profile_report): Update for conversion of
18499 passes to C++ classes.
18500 (pass_manager::execute_ipa_summary_passes): Likewise.
18501 (execute_one_ipa_transform_pass): Likewise.
18502 (execute_one_pass): Use has_gate and has_execute since we cannot
18503 portably check a vtable entry against NULL.
18504 * pass_manager.h (pass_manager::finish_optimization_passes): New.
18505 (pass_manager): Use pass-instances.def to add fields for the
18506 various pass instances.
18507 * toplev.c (finalize): Update for move of
18508 finish_optimization_passes to a method of gcc::pass_manager.
18509 * toplev.h (finish_optimization_passes): Move to method of class
18510 pass_manager.
18511 * tree-pass.h (struct pass_data): New.
77c2266a 18512 (opt_pass): Convert to C++ class, make it a subclass of pass_data.
bcfddb5b 18513 (opt_pass::gate): Convert to virtual function.
18514 (opt_pass::~opt_pass): New.
18515 (opt_pass::clone): New.
18516 (opt_pass::execute): Convert to virtual function.
18517 (opt_pass::opt_pass): New.
18518 (opt_pass::ctxt_): new.
18519 (gimple_opt_pass): Convert to subclass of opt_pass.
18520 (gimple_opt_pass::gimple_opt_pass): New.
18521 (rtl_opt_pass): Convert to subclass of opt_pass.
18522 (rtl_opt_pass::rtl_opt_pass): New.
18523 (ipa_opt_pass_d): Convert to subclass of opt_pass.
18524 (ipa_opt_pass_d::ipa_opt_pass_d): New.
18525 (simple_ipa_opt_pass): Convert to subclass of opt_pass.
18526 (simple_ipa_opt_pass::simple_ipa_opt_pass): New.
18527 * config/i386/i386.c (rest_of_handle_insert_vzeroupper): Rework
18528 invocation of pass_mode_switching to reflect this moving from a
18529 global to a member of gcc::pass_manager.
18530 (ix86_option_override): Rework how pass_insert_vzeroupper is
18531 added to the pass_manager to reflect autogenerated changes.
77c2266a 18532 * config/i386/t-i386 (i386.o) Add deps on CONTEXT_H and PASS_MANAGER_H.
bcfddb5b 18533
cdbf60c9 185342013-08-05 Richard Earnshaw <rearnsha@arm.com>
18535
18536 PR rtl-optimization/57708
18537 * recog.c (peep2_find_free_register): Validate all regs in a
18538 multi-reg mode.
18539
281dea26 185402013-08-05 Jan Hubicka <jh@suse.cz>
18541
18542 PR lto/57602
77c2266a 18543 * cgraph.c (verify_cgraph_node): Accept local flags from other
18544 partitions.
281dea26 18545 * ipa.c (symtab_remove_unreachable_nodes): Do not clear local flag.
18546 (function_and_variable_visibility): Likewise.
18547 * trans-mem.c (ipa_tm_create_version): TM versions are not local.
18548
4e765d3c 185492013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
18550
18551 * graph.c (init_graph_slim_pretty_print): Remove.
18552 (print_graph_cfg): Do not call it. Use local pretty printer.
18553 (start_graph_dump): Likewise.
18554
ba0714c6 185552013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
18556
18557 * gimple-pretty-print.c (buffer): Remove.
18558 (initialized): Likewise.
18559 (maybe_init_pretty_print): Likewise.
18560 (print_gimple_stmt): Do not call it. Use non-static local
18561 pretty_printer variable.
18562 (print_gimple_expr): Likewise.
18563 (print_gimple_seq): Likewise.
18564 (gimple_dump_bb): Likewise.
18565
b75d2c15 185662013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
18567
18568 * asan.c (asan_pp): Remove.
18569 (asan_pp_initialized): Likewise.
18570 (asan_pp_initialize): Likewise.
18571 (asan_pp_string): Take a pretty_printer parameter. Adjust callers.
18572 (asan_emit_stack_protection): Tidy. Use local pretty printer.
18573 (asan_add_global): Likewise.
18574
a94db6b0 185752013-08-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
18576
18577 * pretty-print.h (pp_base): Remove. Adjust dependent macros.
18578 * diagnostic.h (diagnostic_flush_buffer): Adjust.
18579 * pretty-print.c (pp_formatted_text_data): Likewise.
18580 (pp_indent): Rename from pp_base_indent.
18581 (pp_format): Rename from pp_base_format.
18582 (pp_output_formatted_text): Rename from pp_base_output_formatted_text.
18583 (pp_format_verbatim): Rename from pp_base_format_verbatim.
18584 (pp_flush): Rename from pp_base_flush.
18585 (pp_set_line_maximum_length): Rename from
18586 pp_base_set_line_maximum_length.
18587 (pp_clear_output_area): Rename from pp_base_clear_output_area.
18588 (pp_set_prefix): Rename from pp_base_set_prefix.
18589 (pp_destroy_prefix): Rename from pp_base_destroy_prefix.
18590 (pp_emit_prefix): Rename from pp_base_emit_prefix.
18591 (pp_append_text): Rename from pp_base_append_text.
18592 (pp_formatted_text): Rename from pp_base_formatted_text.
18593 (pp_last_position_in_text): Rename from pp_base_last_position_in_text.
18594 (pp_remaining_character_count_for_line): Rename from
18595 pp_base_remaining_character_count_for_line.
18596 (pp_newline): Rename from pp_base_newline.
18597 (pp_character): Rename from pp_base_character.
18598 (pp_string): Rename from pp_base_string.
18599 (pp_maybe_space): Rename from pp_base_maybe_space.
18600 * asan.c (asan_pp_string): Adjust.
18601 (asan_emit_stack_protection): Likewise.
18602 (asan_add_global): Likewise.
18603 * sched-vis.c (str_pattern_slim): Adjust pretty printer function call.
18604 * tree-mudflap.c (mf_varname_tree): Likewise.
18605 * tree-pretty-print.c (pp_tree_identifier): Rename from
18606 pp_base_tree_identifier.
18607 * tree-pretty-print.h (pp_tree_identifier): Remove macro definition.
18608 Declare as function.
18609
70d60d1d 186102013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
18611
18612 * pretty-print.h (pp_bar_bar): New.
18613 (pp_ampersand_ampersand): Likewise.
18614 (pp_less_equal): Likewise.
18615 (pp_greater_equal): Likewise.
18616 * gimple-pretty-print.c (dump_ternary_rhs): Use specialized pretty
18617 printer functions instead of pp_string or operators and punctuators.
18618 (dump_gimple_call): Likewise.
18619 (dump_gimple_omp_for): Likewise.
18620 (dump_gimple_transaction): Likewise.
18621 (dump_gimple_phi): Likewise.
18622 (pp_gimple_stmt_1): Likewise.
18623 * sched-vis.c (print_insn): Likewise.
18624 * tree-mudflap.c (mf_varname_tree): Likewise.
18625 * tree-pretty-print.c (dump_block_node): Likewise.
18626 (dump_generic_node): Likewise.
18627
4df870fd 186282013-08-02 Jan Hubicka <jh@suse.cz>
18629
18630 * lto-cgraph.c (compute_ltrans_boundary): Add abstract origins into
18631 boundaries.
18632 * lto-streamer-out.c (tree_is_indexable): Results decls and
18633 parm decls are not indexable.
18634 (DFS_write_tree_body): Do not follow args and results.
18635 (hash_tree): Likewise.
18636 (output_functions): Rearrange so struct function is needed
18637 only when real body is output; be able to also ouptut abstract
18638 functions; output DECL_ARGUMENTS and DECL_RESULT.
18639 (lto_output): When not in WPA, ale store abstract functions.
18640 (write_symbol): Do not care about RESULT_DECL.
18641 (output_symbol_p): Handle correctly sbtract decls.
18642 * lto-streamer-in.c (input_function): Rearrange so struct
18643 function can be NULL at entry; allow streaming of
18644 functions w/o body; store DECL_ARGUMENTS and DECL_RESULT.
18645 * ipa.c (symtab_remove_unreachable_nodes): Silence confused
18646 sanity check during LTO.
18647 * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Skip
18648 RESULT_DECl and DECL_ARGUMENTS.
18649 * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
18650 Likewise.
18651
dda4f0ec 186522013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
18653
18654 * pretty-print.h (pp_underscore): New.
18655 (pp_comma): Tidy.
18656 * gimple-pretty-print.c (dump_unary_rhs): Use specialized pretty
18657 printer functions instead of pp_character.
18658 (dump_binary_rhs): Likewise.
18659 (dump_ternary_rhs): Likewise.
18660 (dump_gimple_call_args): Likewise.
18661 (pp_points_to_solution): Likewise.
18662 (dump_gimple_call): Likewise.
18663 (dump_gimple_switch): Likewise.
18664 (dump_gimple_cond): Likewise.
18665 (dump_gimple_bind): Likewise.
18666 (dump_gimple_try): Likewise.
18667 (dump_gimple_omp_for): Likewise.
18668 (dump_gimple_omp_continue): Likewise.
18669 (dump_gimple_omp_single): Likewise.
18670 (dump_gimple_omp_sections): Likewise.
18671 (dump_gimple_omp_block): Likewise.
18672 (dump_gimple_omp_critical): Likewise.
18673 (dump_gimple_transaction): Likewise.
18674 (dump_gimple_asm): Likewise.
18675 (dump_gimple_phi): Likewise.
18676 (dump_gimple_omp_parallel): Likewise.
18677 (dump_gimple_omp_task): Likewise.
18678 (dump_gimple_omp_atomic_load): Likewise.
18679 (dump_gimple_omp_atomic_store): Likewise.
18680 (dump_gimple_mem_ops): Likewise.
18681 (pp_gimple_stmt_1): Likewise.
18682 (pp_cfg_jump): Likewise.
18683 (dump_implicit_edges): Likewise.
18684 (gimple_dump_bb_for_graph): Likewise.
18685 * graph.c (draw_cfg_node): Likewise.
18686 * langhooks.c (lhd_print_error_function): Likewise.
18687 * sched-vis.c (print_exp): Likewise.
18688 (print_value): Likewise.
18689 (print_pattern): Likewise.
18690 (print_insn): Likewise.
18691 (rtl_dump_bb_for_graph): Likewise.
18692 * tree-pretty-print.c (dump_function_declaration): Likewise.
18693 (dump_array_domain): Likewise.
18694 (dump_omp_clause): Likewise.
18695 (dump_location): Likewise.
18696 (dump_generic_node): Likewise.
18697 (print_struct_decl): Likewise.
18698 * diagnostic.c (diagnostic_show_locus): Use pp_space.
18699
dc77dea1 187002013-08-03 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
18701
18702 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Update
18703 candidate table when replacing a candidate statement.
18704 (replace_rhs_if_not_dup): Likewise.
18705 (replace_one_candidate): Likewise.
18706
f2c6b33f 187072013-08-02 Jan Hubicka <jh@suse.cz>
741d4110 18708 Martin Liska <marxin.liska@gmail.com>
f2c6b33f 18709
18710 * cgraphunit.c (add_new_function): Fix logic when adding from
18711 late IPA pass.
18712 (assemble_thunk): Rename to ...
77c2266a 18713 (expand_thunk); .. this one; export; get it working with
18714 general functions; make produced gimple valid.
f2c6b33f 18715 * cgraph.h (expand_thunk): Declare.
18716
09ab6335 187172013-08-02 Jan Hubicka <jh@suse.cz>
18718
77c2266a 18719 * ipa-cp.c (gather_context_independent_values): Use
18720 ipa_get_param_move_cost.
18721 (get_replacement_map): Remove PARAM; move parameter folding
18722 into tree-inline.c
09ab6335 18723 (create_specialized_node): Update.
18724 * ipa-prop.c (ipa_populate_param_decls): Do not look for origins;
18725 assert that we have gimple body; update move_cost.
18726 (count_formal_params): Assert that we have gimple body.
18727 (ipa_dump_param): New function.
18728 (ipa_alloc_node_params): Break out from ...
18729 (ipa_initialize_node_params): ... here.
18730 (ipa_get_vector_of_formal_parms): ICE when used in WPA.
18731 (ipa_write_node_info): Stream move costs.
18732 (ipa_read_node_info): Read move costs.
18733 (ipa_update_after_lto_read): Do not recompute node params.
18734 * ipa-prop.h (ipa_param_descriptor): Add move_cost.
18735 (ipa_get_param): Check we are not in WPA.
18736 (ipa_get_param_move_cost): New.
18737 * tree-inline.c (tree_function_versioning): Fold replacement as needed.
18738 * ipa-inline-analysis.c (inline_node_duplication_hook): Expect only
18739 parm numbers to be present.
18740
1524bcdc 187412013-08-02 Vladimir Makarov <vmakarov@redhat.com>
18742
18743 PR rtl-optimization/58048
18744 * lra-constraints.c (process_alt_operands): Don't check asm
18745 operand on register.
18746
49539027 187472013-08-02 Eric Botcazou <ebotcazou@adacore.com>
18748
18749 * config/sparc/sparc.c (sparc_emit_membar_for_model) <SMM_TSO>: Add
18750 the implied StoreLoad barrier for atomic operations if before.
18751
44e82502 187522013-08-02 Jan Hubicka <jh@suse.cz>
18753 Martin Liska <marxin.liska@gmail.com>
18754
77c2266a 18755 * cgraph.c (cgraph_function_body_availability): Do not check
18756 cgraph flags.
44e82502 18757 * cgraph.h (symtab_for_node_and_aliases, symtab_nonoverwritable_alias,
18758 symtab_node_availability): Declare.
18759 * ipa.c (can_replace_by_local_alias): New.
18760 (function_and_variable_visibility): Use it.
77c2266a 18761 * symtab.c (symtab_for_node_and_aliases,
18762 symtab_nonoverwritable_alias_1, symtab_nonoverwritable_alias): New.
44e82502 18763
691cfda4 187642013-08-02 Vladimir Makarov <vmakarov@redhat.com>
18765
18766 PR rtl-optimization/57963
77c2266a 18767 * lra-constraints.c (reverse_equiv_p, contains_reloaded_insn_p): New.
691cfda4 18768 (lra_constraints): Use them.
18769
062447bb 187702013-08-02 Sofiane Naci <sofiane.naci@arm.com>
18771
77c2266a 18772 * config/arm/types.md (define_attr "type"): Add "load_acq"
18773 and "store_rel".
062447bb 18774 * config/arm/cortex-a53.md (cortex_a53_load1): Update for attribute
18775 changes.
18776 (cortex_a53_store1): Likewise.
18777
f08369a7 187782013-08-01 Jan Hubicka <jh@suse.cz>
18779
77c2266a 18780 * ipa.c (symtab_remove_unreachable_nodes): Nodes in other
18781 partitions are not needed.
f08369a7 18782
3f40d0f8 187832013-08-01 Uros Bizjak <ubizjak@gmail.com>
18784
18785 * config/i386/i386.h (MAYBE_NON_Q_CLASS_P): New.
18786 * config/i386/i386.c (ix86_secondary_reload): Use INTEGER_CLASS_P and
18787 MAYBE_NON_Q_CLASS_P where appropriate.
18788
adf64732 187892013-08-01 Jan Hubicka <jh@suse.cz>
18790
18791 * cgraph.h (release_function_body): Declare.
18792 * tree.c (free_lang_data_in_decl): Free, parameters and return values
18793 of unused delcarations.
18794
36ee0cde 187952013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18796
77c2266a 18797 * config/arm/arm.md (minmax_arithsi_non_canon): Emit canonical
18798 RTL form when subtracting a constant.
36ee0cde 18799
31991287 188002013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18801
18802 * config/arm/arm.md (peepholes for eq (reg1) (reg2/imm)):
18803 Generate canonical plus rtx with negated immediate instead of minus
18804 where appropriate.
18805 * config/arm/arm.c (thumb2_reorg): Handle ADCS <Rd>, <Rn> case.
18806
abb1a237 188072013-08-01 Jan Hubicka <jh@suse.cz>
18808
18809 * cgraph.c (cgraph_release_function_body): Use used_as_abstract_origin.
18810 (cgraph_release_function_body): Likewise.
18811 (cgraph_can_remove_if_no_direct_calls_p): Likewise.
18812 * cgraph.h (cgrpah_node): Rename abstract_and_needed
18813 to used_as_abstract_origin.
18814 * tree-inline-transfrom.c (can_remove_node_now_p_1): Do not remove
18815 symbols used as abstract origins.
18816 * cgraphunit.c (analyze_functions): Update.
3f40d0f8 18817 * ipa.c (symtab_remove_unreachable_nodes): Recompute
18818 used_as_abstract_origin.
abb1a237 18819 * tree-inline.c (tree_function_versioning): Update
3f40d0f8 18820 used_as_abstract_origin; be ready for DECL_RESULT and
18821 DECL_ARGUMENTS to be NULL.
abb1a237 18822
3f40d0f8 18823 * lto-symtab.c (lto_symtab_merge_symbols): Merge duplicated nodes
18824 for abstract functions.
18825 * cgraph.h (symtab_real_symbol_p): Abstract declarations are not
18826 real symbols.
abb1a237 18827
d4974b91 188282013-08-01 Jan Hubicka <jh@suse.cz>
18829
18830 * profile.c (compute_value_histograms): Fix thinko.
18831
aa7f84c2 188322013-08-01 Sofiane Naci <sofiane.naci@arm.com>
18833
18834 * config.gcc (aarch64*-*-*): Add aarch-common.o to extra_objs. Add
18835 aarch-common-protos.h to extra_headers.
18836 (aarch64*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
18837 * config/aarch64/aarch64.md: Include "../arm/cortex-a53.md".
18838 * config/aarch64/t-aarch64 (aarch-common.o): Define.
18839
0c9bcd94 188402013-08-01 Sofiane Naci <sofiane.naci@arm.com>
18841
18842 * config/aarch64/aarch64.md (define_attr "type"): Delete.
18843 Include "../arm/types.md". Define "type" attribute for all patterns.
18844 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update for
18845 attribute changes.
18846
a081294b 188472013-07-31 Michael Meissner <meissner@linux.vnet.ibm.com>
18848
18849 * config/rs6000/predicates.md (fusion_gpr_addis): New predicates
18850 to support power8 load fusion.
18851 (fusion_gpr_mem_load): Likewise.
18852
18853 * config/rs6000/rs6000-modes.def (PTImode): Update a comment.
18854
18855 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): New
18856 declarations for power8 load fusion.
18857 (emit_fusion_gpr_load): Likewise.
18858
18859 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
18860 tuning for power8, turn on fusion mode by default. Turn on sign
18861 extending fusion mode if normal fusion mode is on, and we are at
18862 -O2 or -O3.
18863 (fusion_gpr_load_p): New function, return true if we can fuse an
18864 addis instruction with a dependent load to a GPR.
18865 (emit_fusion_gpr_load): Emit the instructions for power8 load
18866 fusion to GPRs.
18867
3f40d0f8 18868 * config/rs6000/vsx.md (VSX_M2): New iterator for fusion peepholes.
a081294b 18869 (VSX load fusion peepholes): New peepholes to fuse together an
18870 addi instruction with a VSX load instruction.
18871
18872 * config/rs6000/rs6000.md (GPR load fusion peepholes): New
18873 peepholes to fuse an addis instruction with a load to a GPR base
18874 register. If we are supporting sign extending fusions, convert
18875 sign extending loads to zero extending loads and add an explicit
18876 sign extension.
18877
015adf41 188782013-07-31 Sofiane Naci <sofiane.naci@arm.com>
18879
18880 * config.gcc (arm*-*-*): Add aarch-common.o to extra_objs. Add
18881 aarch-common-protos.h to extra_headers.
18882 (arm*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
18883 * config/arm/arm.c (arm_early_load_addr_dep): Move from here to ...
18884 (arm_early_store_addr_dep): Likewise.
3f40d0f8 18885 (arm_no_early_alu_shift_dep): Likewise.
18886 (arm_no_early_alu_shift_value_dep): Likewise.
18887 (arm_no_early_mul_dep): Likewise.
18888 (arm_no_early_store_addr_dep): Likewise.
18889 (arm_mac_accumulator_is_mul_result): Likewise.
18890 (arm_mac_accumulator_is_result): Likewise.
015adf41 18891 * config/arm/aarch-common.c: ... here. New file.
3f40d0f8 18892 * config/arm/arm-protos.h (arm_early_load_addr_dep): Move from
18893 here to ...
015adf41 18894 (arm_early_store_addr_dep): Likewise.
3f40d0f8 18895 (arm_no_early_alu_shift_dep): Likewise.
18896 (arm_no_early_alu_shift_value_dep): Likewise.
18897 (arm_no_early_mul_dep): Likewise.
18898 (arm_no_early_store_addr_dep): Likewise.
18899 (arm_mac_accumulator_is_mul_result): Likewise.
18900 (arm_mac_accumulator_is_result): Likewise.
015adf41 18901 * config/arm/aarch-common-protos.h: ... here. New file.
18902 * config/arm/t-arm (aarch-common.o): Define.
18903
189042013-07-31 Sofiane Naci <sofiane.naci@arm.com>
18905
18906 * config/arm/arm.md: Include new file "types.md".
18907 (define_attr "type"): Move from here to ...
18908 (define_attr "mul32"): Likewise.
18909 (define_attr "mul64"): Likewise.
18910 * config/arm/types.md: ... here. New file.
18911
d69684b5 189122013-07-31 Sebastian Huber <sebastian.huber@embedded-brains.de>
18913
18914 * config.gcc (*-*-rtems*): Use __cxa_atexit by default.
18915 * config/rs6000/rtems.h (TARGET_LIBGCC_SDATA_SECTION): Define.
18916
dee86a54 189172013-07-31 Jan-Benedict Glaw <jbglaw@lug-owl.de>
90bccf02 18918
18919 * gen-pass-instances.awk: Fix offset of substr().
18920
743d5ab7 189212013-07-31 David Malcolm <dmalcolm@redhat.com>
18922
18923 * Makefile.in (pass-instances.def): New.
18924 (passes.o): Replace dependency on passes.def with one on
18925 pass-instances.def
18926
18927 * gen-pass-instances.awk: New.
18928
18929 * passes.c (pass_manager::pass_manager): Use pass-instances.def
18930 rather than passes.def, updating local definition of NEXT_PASS
18931 macro to add an extra NUM parameter (currently unused).
18932
3ea50c01 189332013-07-30 David Malcolm <dmalcolm@redhat.com>
18934
18935 * Makefile.in (PASS_MANAGER_H): New.
18936 (lto-cgraph.o): Depend on CONTEXT_H and PASS_MANAGER_H.
18937 (passes.o): Likewise.
18938 (statistics.o): Likewise.
18939 (cgraphunit.o): Likewise.
18940 (context.o): Depend on PASS_MANAGER_H.
18941
18942 * pass_manager.h: New.
18943
18944 * cgraphunit.c (cgraph_add_new_function): Update for moves
18945 of globals to fields of pass_manager.
18946 (analyze_function): Likewise.
18947 (expand_function): Likewise.
18948 (ipa_passes): Likewise.
18949 (compile): Likewise.
18950
18951 * context.c (context::context): New.
18952 * context.h (context::context): New.
18953 (context::get_passes): New.
18954 (context::passes_): New.
18955
18956 * lto-cgraph.c (input_node): Update for moves of globals to
18957 fields of pass_manager.
18958
18959 * passes.c (all_passes): Remove, in favor of a field of the
18960 same name within the new class pass_manager.
18961 (all_small_ipa_passes): Likewise.
18962 (all_lowering_passes): Likewise.
18963 (all_regular_ipa_passes): Likewise.
18964 (all_late_ipa_passes): Likewise.
18965 (all_lto_gen_passes): Likewise.
18966 (passes_by_id): Likewise.
18967 (passes_by_id_size): Likewise.
18968 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
18969 the new class pass_manager.
18970 (set_pass_for_id): Convert to...
18971 (pass_manager::set_pass_for_id): ...method.
18972 (get_pass_for_id): Convert to...
18973 (pass_manager::get_pass_for_id): ...method.
18974 (register_one_dump_file): Move body of implementation into...
18975 (pass_manager::register_one_dump_file): ...here.
18976 (register_dump_files_1): Convert to...
18977 (pass_manager::register_dump_files_1): ...method.
18978 (register_dump_files): Convert to...
18979 (pass_manager::register_dump_files): ...method.
18980 (create_pass_tab): Update for moves of globals to fields of
18981 pass_manager.
18982 (dump_passes): Move body of implementation into...
18983 (pass_manager::dump_passes): ...here.
18984 (register_pass): Move body of implementation into...
18985 (pass_manager::register_pass): ...here.
18986 (init_optimization_passes): Convert into...
18987 (pass_manager::pass_manager): ...constructor for new
18988 pass_manager class, and initialize the pass_lists array.
18989 (check_profile_consistency): Update for moves of globals to
18990 fields of pass_manager.
18991 (dump_profile_report): Move body of implementation into...
18992 (pass_manager::dump_profile_report): ...here.
18993 (ipa_write_summaries_1): Update for moves of pass lists from
18994 being globals to fields of pass_manager.
18995 (ipa_write_optimization_summaries): Likewise.
18996 (ipa_read_summaries): Likewise.
18997 (ipa_read_optimization_summaries): Likewise.
18998 (execute_all_ipa_stmt_fixups): Likewise.
18999
19000 * statistics.c (statistics_fini): Update for moves of globals to
19001 fields of pass_manager.
19002
19003 * toplev.c (general_init): Replace call to
19004 init_optimization_passes with construction of the pass_manager
19005 instance.
19006
19007 * tree-pass.h (all_passes): Remove, in favor of a field of the
19008 same name within the new class pass_manager.
19009 (all_small_ipa_passes): Likewise.
19010 (all_lowering_passes): Likewise.
19011 (all_regular_ipa_passes): Likewise.
19012 (all_lto_gen_passes): Likewise.
19013 (all_late_ipa_passes): Likewise.
19014 (passes_by_id): Likewise.
19015 (passes_by_id_size): Likewise.
19016 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
19017 the new class pass_manager.
19018 (get_pass_for_id): Remove.
19019
d9395640 190202013-07-30 Richard Earnshaw <rearnsha@arm.com>
19021
19022 * config.gcc (arm): Require 64-bit host-wide-int for all ARM target
19023 configs.
19024
4422d91f 190252013-07-30 Richard Earnshaw <rearnsha@arm.com>
19026
19027 * arm.md (mulhi3): New expand pattern.
19028
2084f25d 190292013-07-30 Jan Hubicka <jh@suse.cz>
19030 Martin Liska <marxin.liska@gmail.com>
19031
19032 * profile.c (compute_value_histograms): Do not ICE when
19033 there is mismatch only on some counters.
19034
48c8dd80 190352013-07-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
19036
19037 PR rtl-optimization/57637
19038 * function.c (move_insn_for_shrink_wrap): Also check the
19039 GEN set of the LIVE problem for the liveness analysis
19040 if it exists, otherwise give up.
19041
8f0676e4 190422013-07-29 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
19043
19044 PR tree-optimization/57993
19045 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Record
19046 replaced statement in the candidate table.
19047 (phi_add_costs): Return infinite cost when the hidden basis does
19048 not dominate all phis on which the candidate is dependent.
19049 (replace_one_candidate): Record replaced statement in the
19050 candidate table.
19051
37905fbf 190522013-07-29 Joern Rennecke <joern.rennecke@embecosm.com>
19053
19054 * config/epiphany/epiphany.md (*isub_i+2): New peephole.
19055 (ashlv2si3): New expander.
19056 (*ashlv2si3_i): New define_insn_and_split.
19057 * predicates.md (float_operation): Allow patterns with three
19058 basic sub-patterns.
19059
4da102b5 19060 PR rtl-optimization/58021
19061 * mode-switching.c (create_pre_exit): Always split off preceding
19062 insns if we are not at the basic block head.
19063
0bd32132 190642013-07-29 Maciej W. Rozycki <macro@codesourcery.com>
19065
19066 * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Handle `-mnan=2008'.
19067 (UCLIBC_DYNAMIC_LINKER): New macro.
19068 * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32): Handle
19069 `-mnan=2008'.
19070 (GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32): Likewise.
19071 (UCLIBC_DYNAMIC_LINKER32): Undefine macro first. Handle
19072 `-mnan=2008'.
19073 (UCLIBC_DYNAMIC_LINKER64): Redefine macro.
19074 (UCLIBC_DYNAMIC_LINKERN32): Likewise.
19075 * config/mips/mips-modes.def: Remove RESET_FLOAT_FORMAT calls
19076 for SF and DF modes. Use ieee_quad_format for TF mode.
19077 * config/mips/mips-opts.h (mips_ieee_754_setting): New enum.
19078 * config/mips/mips.c (mips_file_start): Output a `.nan' directive.
19079 (mips_option_override): Handle `-mnan=legacy'.
19080 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Handle
19081 `-mabs=2008' and `-mnan=2008'.
19082 (OPTION_DEFAULT_SPECS): Add "nan" default.
19083 (ASM_SPEC): Handle `-mnan='.
19084 [!HAVE_AS_NAN] (HAVE_AS_NAN): New macro.
19085 * config/mips/mips.md (abs<mode>2): Handle `-mabs=2008', update
19086 comment accordingly.
19087 (neg<mode>2): Likewise.
19088 * config/mips/mips.opt (mabs, mnan): New options.
19089 * doc/install.texi (Configuration): Document `--with-nan=' option.
19090 * doc/invoke.texi (Option Summary): List MIPS `-mabs=' and
19091 `-mnan=' options.
19092 (MIPS Options): Document them.
19093 * config.gcc <mips*-*-*>: Handle `--with-nan='.
19094 * configure.ac <mips*-*-*>: Check for GAS `-mnan=2008' support.
19095 * configure: Regenerate.
19096 * config.in: Regenerate.
19097
9834debf 190982013-07-29 Uros Bizjak <ubizjak@gmail.com>
19099
19100 * config/i386/i386.md (float post-reload splitters): Do not check
19101 for subregs of SSE registers.
19102
191032013-07-29 Uros Bizjak <ubizjak@gmail.com>
19104 H.J. Lu <hongjiu.lu@intel.com>
19105
19106 PR target/57954
19107 PR target/57988
19108 * config/i386/i386.md (post-reload splitter
19109 to avoid partial SSE reg dependency stalls): New pattern.
19110
8a92cb4c 191112013-07-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
19112
19113 * config/s390/s390.md ("movcc"): Swap load and store instructions.
19114
d7fb9af4 191152013-07-27 Joern Rennecke <joern.rennecke@embecosm.com>
19116
19117 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
19118 Also reserve space for saving UNKNOWN_REGNUM for leaf functions.
19119
09bda26a 191202013-07-26 Cary Coutant <ccoutant@google.com>
19121
19122 * dwarf2out.c (die_checksum_ordered): Don't include template
19123 instantiations in signature.
19124 (is_template_parameter): New function.
19125 (is_template_instantiation): New function.
19126 (generate_skeleton_bottom_up): Don't include template instantiations
19127 in type unit DIE.
19128 (generate_skeleton): Likewise.
19129 (break_out_comdat_types): Move recursive call to break out nested
19130 types earlier.
19131 (prune_unused_types_mark_generic_parms_dies): Call
19132 is_template_parameter.
19133
d0755ec6 191342013-07-26 Ian Bolton <ian.bolton@arm.com>
19135
19136 * config/aarch64/aarch64.md (neg<mode>2): Offer alternative that
19137 uses vector registers.
47c77d8b 19138 * config/aarch64/iterators.md: Add attributes rtn and vas.
d0755ec6 19139
90404b57 191402013-07-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9834debf 19141 Richard Earnshaw <richard.earnshaw@arm.com>
90404b57 19142
19143 * combine.c (simplify_comparison): Re-canonicalize operands
9834debf 19144 where appropriate.
90404b57 19145 * config/arm/arm.md (movcond_addsi): New splitter.
19146
50b2b09e 191472013-07-25 Sterling Augustine <saugustine@google.com>
19148
19149 * dwarf2out.c (size_of_pubnames): Move code to...
19150 (include_pubname_in_output): ...here. New.
19151 (want_pubnames): Rearrange.
19152 (output_pubnames): Call include_pubname_in_output. Move assertion.
19153
542c9bab 191542013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
19155
19156 * doc/extend.texi: Fix return types for __builtin_ia32_cmp*s builtins.
19157
191582013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
19159
19160 PR target/38836
19161 * doc/extend.texi: Remove obsolete builtins. Fix
19162 typo for __builtin_ia32_loadss and __builtin_ia32_cmpnltss.
19163
79e830ee 191642013-07-25 Jan Hubicka <jh@suse.cz>
19165
19166 * cgraph.c (release_function_body): Break out from ...
19167 (cgraph_release_function_body): ... this one; also release DECL_RESULT
19168 and DECL_ARGUMENTS.
19169 * ipa-cp.c (get_replacement_map): Add parm_num argument; do not set
19170 old_tree in the map.
19171 (create_specialized_node): Update.
19172 * lto-cgraph.c (output_node_opt_summary): Do not translate old_tree
19173 into index.
542c9bab 19174 * cgraphclones.c (cgraph_create_virtual_clone): Do not copy
19175 DECL_ARGUMENTS, DECL_INITIAL and DECL_RESULT.
79e830ee 19176 * ipa-prop.c (ipa_populate_param_decls): Look for origin of clones.
19177 * tree-inline.c (initialize_cfun): Initialize DECL_ARGUMENTS and
19178 DECL_RESULT.
19179
a0b3420a 191802013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19181
19182 * config/arm/arm.md (arm_addsi3, addsi3_carryin_<optab>,
19183 addsi3_carryin_alt2_<optab>): Correct output template.
19184
a2c9e1be 191852013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19186
19187 * config/arm/arm-fixed.md (ssmulsa3, usmulusa3):
19188 Adjust for arm_restrict_it.
19189 Remove trailing whitespace.
19190
c6b1c11d 191912013-07-25  Mark Kettenis  <kettenis@openbsd.org>
19192
01dd1649 19193 * config/pa/pa.c (pa_trampoline_init): Emit __enable_execute_stack
19194 libcall if HAVE_ENABLE_EXECUTE_STACK is defined.
19195
c6b1c11d 19196 * config.gcc (hppa-*-openbsd*): Don't set tmake_file.
19197
8177deec 191982013-07-25 Vladimir Makarov <vmakarov@redhat.com>
19199
19200 PR rtl-optimization/57960
19201 * lra-constraints.c (process_alt_operands): Use the right mode
19202 when checking strict_low.
19203
b9b49047 192042013-07-25 Jan Hubicka <jh@suse.cz>
19205
19206 * lto-symtab.c (lto_cgraph_replace_node): Release function body.
19207 * cgraph.c (cgraph_remove_node): Do not release function body
19208 when in cgraph streaming.
19209 * ipa.c (process_references, symtab_remove_unreachable_nodes): Objects
542c9bab 19210 in other partitions are not considered reachable; fix handling of
19211 clones.
b9b49047 19212
947d113e 192132013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
19214
19215 * config/arm/arm.md (*sibcall_insn): Remove unnecessary space.
19216
84ce8e5c 192172013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
19218
19219 PR target/19599
19220 PR target/57731
931e9e20 19221 PR target/57837
947d113e 19222 * config/arm/arm.md ("*sibcall_insn): Replace use of
84ce8e5c 19223 Ss with US. Adjust output for v5 and v4t.
542c9bab 19224 (*sibcall_value_insn): Likewise and loosen predicate on operand0.
947d113e 19225
84ce8e5c 19226 * config/arm/constraints.md ("Ss"): Rename to US.
19227
13a19995 192282013-07-25 Terry Guo <terry.guo@arm.com>
19229
19230 * config/arm/arm.c (thumb1_size_rtx_costs): Assign proper cost for
19231 shift_add/shift_sub0/shift_sub1 RTXs.
19232
bdf9958f 192332013-07-24 Bill Schmidt <wschmidt@linux.ibm.com>
c3d2d0e4 19234 Anton Blanchard <anton@au1.ibm.com>
bdf9958f 19235
19236 * config/rs6000/altivec.md (altivec_vpkpx): Handle little endian.
19237 (altivec_vpks<VI_char>ss): Likewise.
19238 (altivec_vpks<VI_char>us): Likewise.
19239 (altivec_vpku<VI_char>us): Likewise.
19240 (altivec_vpku<VI_char>um): Likewise.
19241
8d0badf1 192422013-07-24 David Malcolm <dmalcolm@redhat.com>
19243
19244 Introduce context class.
19245
19246 * Makefile.in (CONTEXT_H): New.
19247 (OBJS): Add context.o.
19248 (toplev.o): Add CONTEXT_H to dependencies.
19249 (context.o): New.
19250
542c9bab 19251 * toplev.c (general_init): Create the singleton gcc::context instance.
8d0badf1 19252
19253 * context.c: New.
19254
19255 * context.h: New.
19256
39be9d26 192572013-07-24 Joern Rennecke <joern.rennecke@embecosm.com>
19258
19259 PR rtl-optimization/57968
19260 * mode-switching.c (create_pre_exit): Allow instructions that
19261 don't set a return register to need a non-exit mode.
19262
c2dae78e 192632013-07-24 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
c3d2d0e4 19264 Anton Blanchard <anton@au1.ibm.com>
c2dae78e 19265
5ecb6d80 19266 * config/rs6000/vector.md (vec_realign_load_<mode>): Reorder input
19267 operands to vperm for little endian.
19268 * config/rs6000/rs6000.c (rs6000_expand_builtin): Use lvsr instead
19269 of lvsl to create the control mask for a vperm for little endian.
c2dae78e 19270
7b1292cc 192712013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
c3d2d0e4 19272 Anton Blanchard <anton@au1.ibm.com>
7b1292cc 19273
19274 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
19275 two operands for little-endian.
19276
1d5fba0b 192772013-07-23 Steve Ellcey <sellcey@mips.com>
19278
19279 * config/mips/mips.c (mips_case_values_threshold): New.
19280 (TARGET_CASE_VALUES_THRESHOLD): Define.
19281
712bc3b7 192822013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
c3d2d0e4 19283 Anton Blanchard <anton@au1.ibm.com>
712bc3b7 19284
19285 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Correct
19286 selection of field for vector splat in little endian mode.
19287
91bf8773 192882013-07-23 Michael Meissner <meissner@linux.vnet.ibm.com>
19289
19290 * config/rs6000/vector.md (xor<mode>3): Move 128-bit boolean
19291 expanders to rs6000.md.
19292 (ior<mode>3): Likewise.
19293 (and<mode>3): Likewise.
19294 (one_cmpl<mode>2): Likewise.
19295 (nor<mode>3): Likewise.
19296 (andc<mode>3): Likewise.
19297 (eqv<mode>3): Likewise.
19298 (nand<mode>3): Likewise.
19299 (orc<mode>3): Likewise.
19300
19301 * config/rs6000/rs6000-protos.h (rs6000_split_logical): New
19302 declaration.
19303
19304 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Add support
19305 to split multi-word logical operations.
19306 (rs6000_split_logical_di): Likewise.
19307 (rs6000_split_logical): Likewise.
19308
19309 * config/rs6000/vsx.md (VSX_L2): Delete, no longer used.
19310 (vsx_and<mode>3_32bit): Move 128-bit logical insns to rs6000.md,
19311 and allow TImode operations in 32-bit.
19312 (vsx_and<mode>3_64bit): Likewise.
19313 (vsx_ior<mode>3_32bit): Likewise.
19314 (vsx_ior<mode>3_64bit): Likewise.
19315 (vsx_xor<mode>3_32bit): Likewise.
19316 (vsx_xor<mode>3_64bit): Likewise.
19317 (vsx_one_cmpl<mode>2_32bit): Likewise.
19318 (vsx_one_cmpl<mode>2_64bit): Likewise.
19319 (vsx_nor<mode>3_32bit): Likewise.
19320 (vsx_nor<mode>3_64bit): Likewise.
19321 (vsx_andc<mode>3_32bit): Likewise.
19322 (vsx_andc<mode>3_64bit): Likewise.
19323 (vsx_eqv<mode>3_32bit): Likewise.
19324 (vsx_eqv<mode>3_64bit): Likewise.
19325 (vsx_nand<mode>3_32bit): Likewise.
19326 (vsx_nand<mode>3_64bit): Likewise.
19327 (vsx_orc<mode>3_32bit): Likewise.
19328 (vsx_orc<mode>3_64bit): Likewise.
19329
19330 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Always allow vector
19331 logical types in GPRs.
19332
19333 * config/rs6000/altivec.md (altivec_and<mode>3): Move 128-bit
19334 logical insns to rs6000.md, and allow TImode operations in
19335 32-bit.
19336 (altivec_ior<mode>3): Likewise.
19337 (altivec_xor<mode>3): Likewise.
19338 (altivec_one_cmpl<mode>2): Likewise.
19339 (altivec_nor<mode>3): Likewise.
19340 (altivec_andc<mode>3): Likewise.
19341
19342 * config/rs6000/rs6000.md (BOOL_128): New mode iterators and mode
19343 attributes for moving the 128-bit logical operations into
19344 rs6000.md.
19345 (BOOL_REGS_OUTPUT): Likewise.
19346 (BOOL_REGS_OP1): Likewise.
19347 (BOOL_REGS_OP2): Likewise.
19348 (BOOL_REGS_UNARY): Likewise.
19349 (BOOL_REGS_AND_CR0): Likewise.
19350 (one_cmpl<mode>2): Add support for DI logical operations on
19351 32-bit, splitting the operations to 32-bit.
19352 (anddi3): Likewise.
19353 (iordi3): Likewise.
19354 (xordi3): Likewise.
19355 (and<mode>3, 128-bit types): Rewrite 2013-06-06 logical operator
19356 changes to combine the 32/64-bit code, allow logical operations on
19357 TI mode in 32-bit, and to use similar match_operator patterns like
19358 scalar mode uses. Combine the Altivec and VSX code for logical
19359 operations, and move it here.
19360 (ior<mode>3, 128-bit types): Likewise.
19361 (xor<mode>3, 128-bit types): Likewise.
19362 (one_cmpl<mode>3, 128-bit types): Likewise.
19363 (nor<mode>3, 128-bit types): Likewise.
19364 (andc<mode>3, 128-bit types): Likewise.
19365 (eqv<mode>3, 128-bit types): Likewise.
19366 (nand<mode>3, 128-bit types): Likewise.
19367 (orc<mode>3, 128-bit types): Likewise.
19368 (and<mode>3_internal): Likewise.
19369 (bool<mode>3_internal): Likewise.
19370 (boolc<mode>3_internal1): Likewise.
19371 (boolc<mode>3_internal2): Likewise.
19372 (boolcc<mode>3_internal1): Likewise.
19373 (boolcc<mode>3_internal2): Likewise.
19374 (eqv<mode>3_internal1): Likewise.
19375 (eqv<mode>3_internal2): Likewise.
19376 (one_cmpl1<mode>3_internal): Likewise.
19377
c3d2d0e4 193782013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
a86bc377 19379
19380 * config/microblaze/microblaze.c (microblaze_expand_prologue):
19381 Rename flag_stack_usage to flag_stack_usage_info.
19382
c3d2d0e4 193832013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
c4fcbf4c 19384
bc3d75b4 19385 * config/microblaze/sync.md: New file.
19386 * config/microblaze/microblaze.md: Include sync.md
19387 * config/microblaze/microblaze.c: Add print_operand 'y'.
19388 * config/microblaze/constraints.md: Add memory_contraint
19389 'Q' which is a single register.
c4fcbf4c 19390
7207a928 193912013-07-23 Eric Botcazou <ebotcazou@adacore.com>
19392
19393 * doc/invoke.texi (SPARC Options): Document new leon3 processor value.
19394
b766ccbc 193952013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
19396
19397 * reload.c (find_reloads): Exit loop once we find this operand
19398 cannot be reloaded somehow for this alternative.
19399
19400 * reload.c (find_reloads): Exit loop once we find a hard register.
19401
19402 * rtlanal.c (computed_jump_p): Exit loop once we find label
19403 reference is used.
19404
19405 * i386.c (ix86_pad_returns): Exit loop after setting replace.
19406
19407 * cfgloopmanip.c (remove_path): Exit loop after setting
19408 irred_invalidated.
19409
19410 * gensupport.c (subst_dup): Avoid loop if code is not
19411 MATCH_DUP nor MATCH_OP_DUP.
19412
c2d280c9 194132013-07-23 Nicklas Bo Jensen <nbjensen@gmail.com>
19414
19415 * doc/md.texi (Machine-Specific Peephole Optimizers): Fix a typo.
19416
ec8b8726 194172013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
19418
19419 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Also return
19420 true for SP_REGNUM if mode == ptr_mode.
19421 * config/aarch64/aarch64.h (ADDITIONAL_REGISTER_NAMES): Add "wsp"
19422 with value R0_REGNUM + 31.
19423
1ae2a9c0 194242013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
19425
19426 * config/aarch64/aarch64.c (aarch64_pad_arg_upward): In big-endian,
19427 pad pointer-typed argument downward.
19428
b01b37f5 194292013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
19430
19431 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define _ILP32
19432 and __ILP32__ when the ILP32 model is in use.
19433
011aed18 194342013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
19435
19436 * config/aarch64/aarch64.c (POINTER_BYTES): New define.
19437 (aarch64_load_symref_appropriately): In the case of
19438 SYMBOL_SMALL_ABSOLUTE, use the mode of 'dest' instead of Pmode
19439 to generate new rtx; likewise to the case of SYMBOL_SMALL_GOT.
19440 (aarch64_expand_mov_immediate): In the case of SYMBOL_FORCE_TO_MEM,
19441 change to pass 'ptr_mode' to force_const_mem and zero-extend 'mem'
19442 if 'mode' doesn't equal to 'ptr_mode'.
19443 (aarch64_output_mi_thunk): Add an assertion on the alignment of
19444 'vcall_offset'; change to call aarch64_emit_move differently depending
19445 on whether 'Pmode' equals to 'ptr_mode' or not; use 'POINTER_BYTES'
19446 to calculate the upper bound of 'vcall_offset'.
19447 (aarch64_cannot_force_const_mem): Change to also return true if
19448 mode != ptr_mode.
19449 (aarch64_legitimize_reload_address): In the case of large
19450 displacements, add new local variable 'xmode' and an assertion
19451 based on it; change to use 'xmode' to generate the new rtx and
19452 reload.
19453 (aarch64_asm_trampoline_template): Change to generate the template
19454 differently depending on TARGET_ILP32 or not; change to use
19455 'POINTER_BYTES' in the argument passed to assemble_aligned_integer.
19456 (aarch64_trampoline_size): Removed.
19457 (aarch64_trampoline_init): Add new local constant 'tramp_code_sz'
19458 and replace immediate literals with it. Change to use 'ptr_mode'
19459 instead of 'DImode' and call convert_memory_address if the mode
19460 of 'fnaddr' doesn't equal to 'ptr_mode'.
19461 (aarch64_elf_asm_constructor): Change to use assemble_aligned_integer
19462 to output symbol.
19463 (aarch64_elf_asm_destructor): Likewise.
19464 * config/aarch64/aarch64.h (TRAMPOLINE_SIZE): Change to be dependent
19465 on TARGET_ILP32 instead of aarch64_trampoline_size.
19466 * config/aarch64/aarch64.md (movsi_aarch64): Add new alternatives
19467 of 'mov' between WSP and W registers as well as 'adr' and 'adrp'.
19468 (loadwb_pair<GPI:mode>_<PTR:mode>): Rename to ...
19469 (loadwb_pair<GPI:mode>_<P:mode>): ... this. Replace PTR with P.
19470 (storewb_pair<GPI:mode>_<PTR:mode>): Likewise; rename to ...
19471 (storewb_pair<GPI:mode>_<P:mode>): ... this.
19472 (add_losym): Change to 'define_expand' and call gen_add_losym_<mode>
19473 depending on the value of 'mode'.
19474 (add_losym_<mode>): New.
19475 (ldr_got_small_<mode>): New, based on ldr_got_small.
19476 (ldr_got_small): Remove.
19477 (ldr_got_small_sidi): New.
19478 * config/aarch64/iterators.md (P): New.
19479 (PTR): Change to 'ptr_mode' in the condition.
19480
bb009361 194812013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
19482
19483 * config.gcc (aarch64*-*-*): Support --with-abi.
19484 (aarch64*-*-elf): Support --with-multilib-list.
19485 (aarch64*-*-linux*): Likewise.
19486 (supported_defaults): Add abi to aarch64*-*-*.
19487 * configure.ac: Mention AArch64 for --with-multilib-list.
19488 * configure: Re-generated.
19489 * config/aarch64/biarchilp32.h: New file.
19490 * config/aarch64/biarchlp64.h: New file.
19491 * config/aarch64/aarch64-elf.h (ENDIAN_SPEC): New define.
19492 (ABI_SPEC): Ditto.
19493 (MULTILIB_DEFAULTS): Ditto.
19494 (DRIVER_SELF_SPECS): Ditto.
19495 (ASM_SPEC): Update to also substitute -mabi.
19496 * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Add linker script
19497 file whose name depends on -mabi= and -mbig-endian.
19498 * config/aarch64/aarch64.h (LONG_TYPE_SIZE): Change to depend on
19499 TARGET_ILP32.
19500 (POINTER_SIZE): New define.
19501 (POINTERS_EXTEND_UNSIGNED): Ditto.
19502 (enum aarch64_abi_type): New enumeration tag.
19503 (AARCH64_ABI_LP64, AARCH64_ABI_ILP32): New enumerators.
19504 (AARCH64_ABI_DEFAULT): Define to AARCH64_ABI_LP64 if undefined.
19505 (TARGET_ILP32): New define.
19506 * config/aarch64/aarch64.opt (mabi): New.
19507 (aarch64_abi): New.
19508 (ilp32, lp64): New values for -mabi.
19509 * config/aarch64/t-aarch64 (comma): New define.
19510 (MULTILIB_OPTIONS): Ditto.
19511 (MULTILIB_DIRNAMES): Ditto.
19512 * config/aarch64/t-aarch64-linux (MULTIARCH_DIRNAME): New define.
19513 * doc/invoke.texi: Document -mabi for AArch64.
19514
4bafdf2c 195152013-07-23 Georg-Johann Lay <avr@gjlay.de>
19516
19517 * config/avr/avr.md: Explain asm print modifier 'r' for REG.
19518
b21ad496 195192013-07-22 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
c3d2d0e4 19520 Anton Blanchard <anton@au1.ibm.com>
b21ad496 19521
19522 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix
19523 endianness when selecting field to splat.
19524
109b4732 195252013-07-22 Eric Christopher <echristo@gmail.com>
19526
19527 * dwarf2out.c (die_odr_checksum): New function to use
19528 CHECKSUM_ macros and ULEB128 for DIE tag.
19529 (generate_type_signature): Use.
542c9bab 19530
191a0bb7 195312013-07-22 Eric Botcazou <ebotcazou@adacore.com>
19532
19533 * config.gcc (sparc*-*-*): Accept leon3 processor.
19534 (sparc-leon*-*): Merge with sparc*-*-* and add leon3 support.
19535 * doc/invoke.texi (SPARC Options): Adjust -mfix-ut699 entry.
19536 * config/sparc/sparc-opts.h (enum processor_type): Add PROCESSOR_LEON3.
19537 * config/sparc/sparc.opt (enum processor_type): Add leon3.
19538 (mfix-ut699): Adjust comment.
19539 * config/sparc/sparc.h (TARGET_CPU_leon3): New define.
19540 (CPP_CPU32_DEFAULT_SPEC): Add leon3 support.
19541 (CPP_CPU_SPEC): Likewise.
19542 (ASM_CPU_SPEC): Likewise.
19543 * config/sparc/sparc.c (leon3_cost): New constant.
19544 (sparc_option_override): Add leon3 support.
19545 (mem_ref): New function.
19546 (sparc_gate_work_around_errata): Return true if -mfix-ut699 is enabled.
19547 (sparc_do_work_around_errata): Look into the instruction in the delay
19548 slot and adjust accordingly. Add fix for the data cache nullify issues
19549 of the UT699. Change insertion position for the NOP.
19550 * config/sparc/leon.md (leon_fpalu, leon_fpmds, write_buf): Delete.
19551 (leon3_load): New reservation.
19552 (leon_store): Bump latency to 2.
19553 (grfpu): New automaton.
19554 (grfpu_alu): New unit.
19555 (grfpu_ds): Likewise.
19556 (leon_fp_alu): Adjust.
19557 (leon_fp_mult): Delete.
19558 (leon_fp_div): Split into leon_fp_divs and leon_fp_divd.
19559 (leon_fp_sqrt): Split into leon_fp_sqrts and leon_fp_sqrtd.
19560 * config/sparc/sparc.md (cpu): Add leon3.
19561 * config/sparc/sync.md (atomic_exchangesi): Disable if -mfix-ut699.
19562 (swapsi): Likewise.
19563 (atomic_test_and_set): Likewise.
19564 (ldstub): Likewise.
19565
394563b3 195662013-07-22 Jürgen Urban <JuergenUrban@gmx.de>
19567
19568 * config.gcc (mips*-*-*): Add --with-fpu support. Make single the
19569 default for R5900 targets.
19570 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Handle --with-fpu.
19571 (ISA_HAS_LDC1_SDC1): Set to false for TARGET_MIPS5900.
19572 * config/mips/mips.c (mips_option_override): Report an error for
19573 -march=r5900 -mhard-float -mdouble-float. Use spu_single_format
19574 for -march=r5900 -mhard-float.
19575
b766ccbc 195762013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
73bd65ab 19577
19578 * df-problems.c (can_move_insns_across): Exit loop once we
19579 find a non-fixed, non-global register.
19580
19581 * ipa-pure-const.c (propagate_nothrow): Exit loop after
19582 setting can_throw.
19583
19584 * omega.c (omega_eliminate_red): Break after setting red_found.
19585 (omega_problem_has_red_equations): Similarly after setting found.
19586 (omega_query_variable): Similarly after setting coupled.
19587
4d334484 195882013-07-22 Marek Polacek <polacek@redhat.com>
19589
19590 * gimplify.c: Don't include gimple.h twice.
19591
7c36fe71 195922013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19593
19594 * config/arm/constraints.md (Pd): Allow TARGET_THUMB
19595 instead of TARGET_THUMB1.
19596 (Pz): New constraint.
19597 * config/arm/arm.md (arm_addsi3): Add alternatives for 16-bit
19598 encodings.
19599 (compare_negsi_si): Likewise.
19600 (compare_addsi2_op0): Likewise.
19601 (compare_addsi2_op1): Likewise.
19602 (addsi3_carryin_<optab>): Likewise.
19603 (addsi3_carryin_alt2_<optab>): Likewise.
19604 (addsi3_carryin_shift_<optab>): Disable cond_exec variant
19605 for arm_restrict_it.
19606 (subsi3_carryin): Likewise.
19607 (arm_subsi3_insn): Add alternatives for 16-bit encoding.
19608 (minmax_arithsi): Disable for arm_restrict_it.
19609 (minmax_arithsi_non_canon): Adjust for arm_restrict_it.
19610 (satsi_<SAT:code>): Disable cond_exec variant for arm_restrict_it.
19611 (satsi_<SAT:code>_shift): Likewise.
19612 (arm_shiftsi3): Add alternative for 16-bit encoding.
19613 (arm32_movhf): Disable for arm_restrict_it.
19614 (arm_cmpdi_unsigned): Add alternatives for 16-bit encoding.
19615 (arm_movtas_ze): Disable cond_exec variant for arm_restrict_it.
19616
1aed5204 196172013-07-22 Sofiane Naci <sofiane.naci@arm.com>
19618
19619 * config/arm/arm.md (attribute "insn"): Delete.
19620 (attribute "type"): Add "mov_imm", "mov_reg", "mov_shift",
19621 "mov_shift_reg", "mvn_imm", "mvn_reg", "mvn_shift" and "mvn_shift_reg".
19622 (not_shiftsi): Update for attribute change.
19623 (not_shiftsi_compare0): Likewise.
19624 (not_shiftsi_compare0_scratch): Likewise.
19625 (arm_one_cmplsi2): Likewise.
19626 (thumb1_one_cmplsi2): Likewise.
19627 (notsi_compare0): Likewise.
19628 (notsi_compare0_scratch): Likewise.
19629 (thumb1_movdi_insn): Likewise.
19630 (arm_movsi_insn): Likewise.
19631 (movhi_insn_arch4): Likewise.
19632 (movhi_bytes): Likewise.
19633 (arm_movqi_insn): Likewise.
19634 (thumb1_movqi_insn): Likewise.
19635 (arm32_movhf): Likewise.
19636 (thumb1_movhf): Likewise.
19637 (arm_movsf_soft_insn): Likewise.
19638 (thumb1_movsf_insn): Likewise.
19639 (thumb_movdf_insn): Likewise.
19640 (movsicc_insn): Likewise.
19641 (movsfcc_soft_insn): Likewise.
19642 (and_scc): Likewise.
19643 (cond_move): Likewise.
19644 (if_move_not): Likewise.
19645 (if_not_move): Likewise.
19646 (if_shift_move): Likewise.
19647 (if_move_shift): Likewise.
19648 (if_shift_shift): Likewise.
19649 (if_not_arith): Likewise.
19650 (if_arith_not): Likewise.
19651 (cond_move_not): Likewise.
19652 * config/arm/neon.md (neon_mov<mode>): Update for attribute change.
19653 (neon_mov<mode>): Likewise.
19654 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute change.
19655 (thumb2_movsi_vfp): Likewise.
19656 (movsf_vfp): Likewise.
19657 (thumb2_movsf_vfp): Likewise.
5f7f04d8 19658 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
19659 change.
1aed5204 19660 (cortexa7_older_only): Likewise.
19661 (cortexa7_younger): Likewise.
19662 * config/arm/arm1020e.md (1020alu_op): Update for attribute change.
19663 (1020alu_shift_op): Likewise.
19664 (1020alu_shift_reg_op): Likewise.
19665 * config/arm/arm1026ejs.md (alu_op): Update for attribute change.
19666 (alu_shift_op): Likewise.
19667 (alu_shift_reg_op): Likewise.
19668 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute change.
19669 (11_alu_shift_op): Likewise.
19670 (11_alu_shift_reg_op): Likewise.
19671 * config/arm/arm926ejs.md (9_alu_op): Update for attribute change.
19672 (9_alu_shift_reg_op): Likewise.
5f7f04d8 19673 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
19674 change.
1aed5204 19675 (cortex_a15_alu_shift): Likewise.
19676 (cortex_a15_alu_shift_reg): Likewise.
19677 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute change.
19678 (cortex_a5_alu_shift): Likewise.
5f7f04d8 19679 * config/arm/cortex-a53.md (cortex_a53_alu): Update for attribute
19680 change.
1aed5204 19681 (cortex_a53_alu_shift): Likewise.
5f7f04d8 19682 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
19683 change.
1aed5204 19684 (cortex_a7_alu_reg): Likewise.
19685 (cortex_a7_alu_shift): Likewise.
19686 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
19687 (cortex_a8_alu_shift): Likewise.
19688 (cortex_a8_alu_shift_reg): Likewise.
19689 (cortex_a8_mov): Likewise.
19690 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
19691 (cortex_a9_dp_shift): Likewise.
19692 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute change.
19693 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute change.
19694 (cortex_r4_mov): Likewise.
19695 (cortex_r4_alu_shift): Likewise.
19696 (cortex_r4_alu_shift_reg): Likewise.
19697 * config/arm/fa526.md (526_alu_op): Update for attribute change.
19698 (526_alu_shift_op): Likewise.
19699 * config/arm/fa606te.md (606te_alu_op): Update for attribute change.
19700 * config/arm/fa626te.md (626te_alu_op): Update for attribute change.
19701 (626te_alu_shift_op): Likewise.
19702 * config/arm/fa726te.md (726te_shift_op): Update for attribute change.
19703 (726te_alu_op): Likewise.
19704 (726te_alu_shift_op): Likewise.
19705 (726te_alu_shift_reg_op): Likewise.
19706 * config/arm/fmp626.md (mp626_alu_op): Update for attribute change.
19707 (mp626_alu_shift_op): Likewise.
19708 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute change.
19709 (pj4_alu_e1_conds): Likewise.
19710 (pj4_alu): Likewise.
19711 (pj4_alu_conds): Likewise.
19712 (pj4_shift): Likewise.
19713 (pj4_shift_conds): Likewise.
19714 (pj4_alu_shift): Likewise.
19715 (pj4_alu_shift_conds): Likewise.
19716
4369e6ad 197172013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19718
19719 * config/arm/predicates.md (shiftable_operator_strict_it):
19720 New predicate.
19721 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si):
19722 Disable cond_exec version for arm_restrict_it.
19723 (thumb2_smaxsi3): Convert to generate cond_exec.
19724 (thumb2_sminsi3): Likewise.
19725 (thumb32_umaxsi3): Likewise.
19726 (thumb2_uminsi3): Likewise.
19727 (thumb2_abssi2): Adjust constraints for arm_restrict_it.
19728 (thumb2_neg_abssi2): Likewise.
19729 (thumb2_mov_scc): Add alternative for 16-bit encoding.
19730 (thumb2_movsicc_insn): Adjust alternatives.
19731 (thumb2_mov_negscc): Disable for arm_restrict_it.
19732 (thumb2_mov_negscc_strict_it): New pattern.
19733 (thumb2_mov_notscc_strict_it): New pattern.
19734 (thumb2_mov_notscc): Disable for arm_restrict_it.
19735 (thumb2_ior_scc): Likewise.
19736 (thumb2_ior_scc_strict_it): New pattern.
19737 (thumb2_cond_move): Adjust for arm_restrict_it.
19738 (thumb2_cond_arith): Disable for arm_restrict_it.
19739 (thumb2_cond_arith_strict_it): New pattern.
19740 (thumb2_cond_sub): Adjust for arm_restrict_it.
19741 (thumb2_movcond): Likewise.
19742 (thumb2_extendqisi_v6): Disable cond_exec variant for arm_restrict_it.
19743 (thumb2_zero_extendhisi2_v6): Likewise.
19744 (thumb2_zero_extendqisi2_v6): Likewise.
19745 (orsi_notsi_si): Likewise.
19746 (orsi_not_shiftsi_si): Likewise.
19747
4f3c1595 197482013-07-22 Georg-Johann Lay <avr@gjlay.de>
19749
19750 * config/avr/avr.c (avr_out_xload): No SBIS around LPM so that
19751 instruction sequence is 1 byte shorter.
19752
896bc7cd 197532013-07-22 Uros Bizjak <ubizjak@gmail.com>
19754
19755 * config/i386/i386.md (nonlocal_goto_receiver): Delete insn if
19756 it is not needed after split.
19757
0605a3f7 197582013-07-20 Iain Sandoe <iain@codesourcery.com>
19759
19760 PR target/51784
19761 * config/i386/i386.c (output_set_got) [TARGET_MACHO]: Adjust to emit a
19762 second label for nonlocal goto receivers. Don't output pic base labels
19763 unless we're producing PIC; mark that action unreachable().
19764 (ix86_save_reg): If the function contains a nonlocal label, save the
19765 PIC base reg.
19766 * config/darwin-protos.h (machopic_should_output_picbase_label): New.
e33c5592 19767 * config/darwin.c (emitted_pic_label_num): New GTY.
0605a3f7 19768 (update_pic_label_number_if_needed): New.
19769 (machopic_output_function_base_name): Adjust for nonlocal receiver
19770 case.
19771 (machopic_should_output_picbase_label): New.
19772 * config/i386/i386.md (enum unspecv): UNSPECV_NLGR: New.
19773 (nonlocal_goto_receiver): New insn and split.
19774
b9a85db4 197752013-07-20 James Greenhalgh <james.greenhalgh@arm.com>
19776
19777 * config/aarch64/aarch64-builtins.c
19778 (aarch64_fold_builtin): Fold abs in all modes.
19779 * config/aarch64/aarch64-simd-builtins.def
19780 (abs): Enable for all modes.
19781 * config/aarch64/arm_neon.h
19782 (vabs<q>_s<8,16,32,64): Rewrite using builtins.
19783 (vabs_f64): Add missing intrinsic.
19784
9bf7136b 197852013-07-19 Ian Bolton <ian.bolton@arm.com>
19786
19787 * config/aarch64/arm_neon.h (vabs_s64): New function
19788
fdbf5b19 197892013-07-19 Georg-Johann Lay <avr@gjlay.de>
19790
19791 PR target/57516
19792 * config/avr/avr-fixed.md (round<mode>3_const): Turn expander to insn.
19793 * config/avr/avr.md (adjust_len): Add `round'.
19794 * config/avr/avr-protos.h (avr_out_round): New prototype.
19795 (avr_out_plus): Add `out_label' argument.
19796 * config/avr/avr.c (avr_out_plus_1): Add `out_label' argument.
19797 (avr_out_plus): Pass down `out_label' to avr_out_plus_1.
19798 Handle the case where `insn' is just a pattern.
19799 (avr_out_bitop): Handle the case where `insn' is just a pattern.
19800 (avr_out_round): New function.
19801 (avr_adjust_insn_length): Handle ADJUST_LEN_ROUND.
19802
c3d2d0e4 198032013-07-18 David Holsgrove <david.holsgrove@xilinx.com>
db58342c 19804
19805 * config/microblaze/microblaze.c (microblaze_expand_prologue):
19806 Add check for flag_stack_usage to handle -fstack-usage support
19807
c3d2d0e4 198082013-07-18 Pat Haugen <pthaugen@us.ibm.com>
890f32a6 19809
19810 * config/rs6000/rs6000.c (rs6000_option_override_internal): Adjust flag
19811 interaction for new Power8 flags and VSX.
19812
c440293e 198132013-07-18 Sriraman Tallam <tmsriram@google.com>
19814
19815 PR middle-end/57698
19816 * tree-inline.c (expand_call_inline): Emit errors during
19817 early_inlining only if optimization is not turned on.
19818
ca4be2a0 198192013-07-18 David Malcolm <dmalcolm@redhat.com>
19820
19821 * passes.def: New.
19822
19823 * passes.c (init_optimization_passes): Move the construction of
19824 the pass hierarchy into a new passes.def file.
19825
19826 * Makefile.in (passes.o): Add dependency on passes.def.
19827
95c45f89 198282013-07-18 David Malcolm <dmalcolm@redhat.com>
19829
19830 * passes.c (init_optimization_passes): Introduce macros for
19831 constructing the tree of passes (INSERT_PASSES_AFTER,
19832 PUSH_INSERT_PASSES_WITHIN, POP_INSERT_PASSES,
19833 TERMINATE_PASS_LIST).
19834
8033d76f 198352013-07-18 Vladimir Makarov <vmakarov@redhat.com>
19836 Wei Mi <wmi@google.com>
19837
19838 PR rtl-optimization/57878
19839 * lra-assigns.c (assign_by_spills): Move non_reload_pseudos to the
19840 top.
19841 (reload_pseudo_compare_func): Check nregs first for reload
19842 pseudos.
19843
69c20f28 198442013-07-18 David Malcolm <dmalcolm@redhat.com>
19845
19846 * tree-pass.h (pass_ipa_lto_wpa_fixup): Remove redundant decl.
19847
b766ccbc 198482013-07-18 Po-Chun Chang <pchang9@cs.wisc.edu>
d13600bf 19849
19850 * read-rtl.c (validate_const_int): Once an invalid character is
19851 seen, quit the loop.
19852
19853 * gengtype.c (write_roots): Similarly once we find the "deletable"
19854 or "if_marked" option.
19855
bebe9bbb 198562013-07-18 Sofiane Naci <sofiane.naci@arm.com>
19857
19858 * config/arm/arm.md (attribute "insn"): Delete values "mrs", "msr",
19859 "xtab" and "sat". Move value "clz" from here to ...
19860 (attriubte "type"): ... here.
19861 (satsi_<SAT:code>): Delete "insn" attribute.
19862 (satsi_<SAT:code>_shift): Likewise.
19863 (arm_zero_extendqisi2addsi): Likewise.
19864 (arm_extendqisi2addsi): Likewise.
19865 (clzsi2): Update for attribute changes.
19866 (rbitsi2): Likewise.
5f7f04d8 19867 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Delete "insn"
19868 attribute.
bebe9bbb 19869 (arm_usatsihi): Likewise.
19870 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
19871
6b6abc9c 198722013-07-18 Sofiane Naci <sofiane.naci@arm.com>
19873
19874 * config/arm/arm.md (attribute "type"): Rename "simple_alu_imm" to
5f7f04d8 19875 "arlo_imm". Rename "alu_reg" to "arlo_reg". Rename "simple_alu_shift"
19876 to "extend". Split "alu_shift" into "shift" and "arlo_shift". Split
6b6abc9c 19877 "alu_shift_reg" into "shift_reg" and "arlo_shift_reg". List types
19878 in alphabetical order.
19879 (attribute "core_cycles"): Update for attribute changes.
19880 (arm_addsi3): Likewise.
19881 (addsi3_compare0): Likewise.
19882 (addsi3_compare0_scratch): Likewise.
19883 (addsi3_compare_op1): Likewise.
19884 (addsi3_compare_op2): Likewise.
19885 (compare_addsi2_op0): Likewise.
19886 (compare_addsi2_op1): Likewise.
19887 (addsi3_carryin_shift_<optab>): Likewise.
19888 (subsi3_carryin_shift): Likewise.
19889 (rsbsi3_carryin_shift): Likewise.
19890 (arm_subsi3_insn): Likewise.
19891 (subsi3_compare0): Likewise.
19892 (subsi3_compare): Likewise.
19893 (arm_andsi3_insn): Likewise.
19894 (thumb1_andsi3_insn): Likewise.
19895 (andsi3_compare0): Likewise.
19896 (andsi3_compare0_scratch): Likewise.
19897 (zeroextractsi_compare0_scratch
19898 (andsi_not_shiftsi_si): Likewise.
19899 (iorsi3_insn): Likewise.
19900 (iorsi3_compare0): Likewise.
19901 (iorsi3_compare0_scratch): Likewise.
19902 (arm_xorsi3): Likewise.
19903 (thumb1_xorsi3_insn): Likewise.
19904 (xorsi3_compare0): Likewise.
19905 (xorsi3_compare0_scratch): Likewise.
19906 (satsi_<SAT:code>_shift): Likewise.
19907 (rrx): Likewise.
19908 (arm_shiftsi3): Likewise.
19909 (shiftsi3_compare0): Likewise.
19910 (not_shiftsi): Likewise.
19911 (not_shiftsi_compare0): Likewise.
19912 (not_shiftsi_compare0_scratch): Likewise.
19913 (arm_one_cmplsi2): Likewise.
19914 (thumb_one_complsi2): Likewise.
19915 (notsi_compare0): Likewise.
19916 (notsi_compare0_scratch): Likewise.
19917 (thumb1_zero_extendhisi2): Likewise.
19918 (arm_zero_extendhisi2): Likewise.
19919 (arm_zero_extendhisi2_v6): Likewise.
19920 (arm_zero_extendhisi2addsi): Likewise.
19921 (thumb1_zero_extendqisi2): Likewise.
19922 (thumb1_zero_extendqisi2_v6): Likewise.
19923 (arm_zero_extendqisi2): Likewise.
19924 (arm_zero_extendqisi2_v6): Likewise.
19925 (arm_zero_extendqisi2addsi): Likewise.
19926 (thumb1_extendhisi2): Likewise.
19927 (arm_extendhisi2): Likewise.
19928 (arm_extendhisi2_v6): Likewise.
19929 (arm_extendqisi): Likewise.
19930 (arm_extendqisi_v6): Likewise.
19931 (arm_extendqisi2addsi): Likewise.
19932 (thumb1_extendqisi2): Likewise.
19933 (thumb1_movdi_insn): Likewise.
19934 (arm_movsi_insn): Likewise.
19935 (movsi_compare0): Likewise.
19936 (movhi_insn_arch4): Likewise.
19937 (movhi_bytes): Likewise.
19938 (arm_movqi_insn): Likewise.
19939 (thumb1_movqi_insn): Likewise.
19940 (arm32_movhf): Likewise.
19941 (thumb1_movhf): Likewise.
19942 (arm_movsf_soft_insn): Likewise.
19943 (thumb1_movsf_insn): Likewise.
19944 (movdf_soft_insn): Likewise.
19945 (thumb_movdf_insn): Likewise.
19946 (arm_cmpsi_insn): Likewise.
19947 (cmpsi_shiftsi): Likewise.
19948 (cmpsi_shiftsi_swp): Likewise.
19949 (arm_cmpsi_negshiftsi_si): Likewise.
19950 (movsicc_insn): Likewise.
19951 (movsfcc_soft_insn): Likewise.
19952 (arith_shiftsi): Likewise.
19953 (arith_shiftsi_compare0
19954 (arith_shiftsi_compare0_scratch
19955 (sub_shiftsi): Likewise.
19956 (sub_shiftsi_compare0
19957 (sub_shiftsi_compare0_scratch
19958 (and_scc): Likewise.
19959 (cond_move): Likewise.
19960 (if_plus_move): Likewise.
19961 (if_move_plus): Likewise.
19962 (if_move_not): Likewise.
19963 (if_not_move): Likewise.
19964 (if_shift_move): Likewise.
19965 (if_move_shift): Likewise.
19966 (if_shift_shift): Likewise.
19967 (if_not_arith): Likewise.
19968 (if_arith_not): Likewise.
19969 (cond_move_not): Likewise.
19970 (thumb1_ashlsi3): Set type attribute.
19971 (thumb1_ashrsi3): Likewise.
19972 (thumb1_lshrsi3): Likewise.
19973 (thumb1_rotrsi3): Likewise.
19974 (shiftsi3_compare0_scratch): Likewise.
19975 * config/arm/neon.md (neon_mov<mode>): Update for attribute changes.
19976 (neon_mov<mode>): Likewise.
5f7f04d8 19977 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si): Update for
19978 attribute changes.
6b6abc9c 19979 (thumb2_movsi_insn): Likewise.
19980 (thumb2_cmpsi_neg_shiftsi): Likewise.
19981 (thumb2_extendqisi_v6): Likewise.
19982 (thumb2_zero_extendhisi2_v6): Likewise.
19983 (thumb2_zero_extendqisi2_v6): Likewise.
19984 (thumb2_shiftsi3_short): Likewise.
19985 (thumb2_addsi3_compare0_scratch): Likewise.
19986 (orsi_not_shiftsi_si): Likewise.
19987 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
19988 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Update for attribute
19989 changes.
19990 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
19991 (1020alu_shift_op): Likewise.
19992 (1020alu_shift_reg_op): Likewise.
19993 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
19994 (alu_shift_op): Likewise.
19995 (alu_shift_reg_op): Likewise.
19996 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
19997 (11_alu_shift_op): Likewise.
19998 (11_alu_shift_reg_op): Likewise.
19999 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
20000 (9_alu_shift_reg_op): Likewise.
5f7f04d8 20001 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
20002 changes.
6b6abc9c 20003 (cortex_a15_alu_shift): Likewise.
20004 (cortex_a15_alu_shift_reg): Likewise.
5f7f04d8 20005 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute
20006 changes.
6b6abc9c 20007 (cortex_a5_alu_shift): Likewise.
20008 * config/arm/cortex-a53.md (cortex_a53_alu) : Update for attribute
20009 changes.
20010 (cortex_a53_alu_shift): Likewise.
20011 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
20012 changes.
20013 (cortex_a7_alu_reg): Likewise.
20014 (cortex_a7_alu_shift): Likewise.
5f7f04d8 20015 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute
20016 changes.
6b6abc9c 20017 (cortex_a8_alu_shift): Likewise.
20018 (cortex_a8_alu_shift_reg): Likewise.
20019 (cortex_a8_mov): Likewise.
20020 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
20021 (cortex_a9_dp_shift): Likewise.
5f7f04d8 20022 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute
20023 changes.
20024 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute
20025 changes.
6b6abc9c 20026 (cortex_r4_mov): Likewise.
20027 (cortex_r4_alu_shift): Likewise.
20028 (cortex_r4_alu_shift_reg): Likewise.
20029 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
20030 (526_alu_shift_op): Likewise.
20031 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
20032 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
20033 (626te_alu_shift_op): Likewise.
20034 * config/arm/fa726te.md (726te_shift_op): Update for attribute changes.
20035 (726te_alu_op): Likewise.
20036 (726te_alu_shift_op): Likewise.
20037 (726te_alu_shift_reg_op): Likewise.
20038 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
20039 (mp626_alu_shift_op): Likewise.
20040 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute changes.
20041 (pj4_alu_e1_conds): Likewise.
20042 (pj4_alu): Likewise.
20043 (pj4_alu_conds): Likewise.
20044 (pj4_shift): Likewise.
20045 (pj4_shift_conds): Likewise.
20046 (pj4_alu_shift): Likewise.
20047 (pj4_alu_shift_conds): Likewise.
5f7f04d8 20048 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
20049 changes.
6b6abc9c 20050 (cortexa7_older_only): Likewise.
20051 (cortexa7_younger): Likewise.
20052
80880eb6 200532013-07-18 David Malcolm <dmalcolm@redhat.com>
20054
20055 * ipa-pure-const.c (generate_summary): Rename to...
20056 (pure_const_generate_summary): ... this.
20057
79d68a42 200582013-07-17 Iain Sandoe <iain@codesourcery.com>
20059
20060 * config/rs6000/darwin.h (REGISTER_NAMES): Add HTM registers.
20061
3eafc9ff 200622013-07-17 Yvan Roux <yvan.roux@linaro.org>
20063
20064 PR target/57909
20065 * config/arm/arm.c (gen_movmem_ldrd_strd): Fix unaligned load/store
20066 usage in HI mode.
20067
ee2dbc39 200682013-07-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20069
20070 * config/s390/s390.c: (s390_expand_builtin): Allow -mhtm to be
20071 enabled without -march=zEC12.
20072 * config/s390/s390.h (TARGET_HTM): Do not require EC12 machine
20073 flags to be set.
20074
18af479d 200752013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
20076
20077 * config/mips/mips.h (ISA_HAS_FP4): Correct formatting.
20078 (ISA_HAS_FP_MADD4_MSUB4): Also enable for ISA_MIPS32R2.
20079 (ISA_HAS_NMADD4_NMSUB4): Remove the MODE argument; rewrite in
20080 terms of ISA_HAS_FP4, and also enable for ISA_MIPS32R2.
20081 (ISA_HAS_NMADD3_NMSUB3): Remove the MODE argument.
20082 * config/mips/mips.c (mips_rtx_costs) <PLUS>: Check for
20083 ISA_HAS_FP_MADD4_MSUB4 || ISA_HAS_FP_MADD3_MSUB3 rather than
20084 ISA_HAS_FP4.
20085 <MINUS, NEG>: Update according to changes to ISA_HAS_NMADD4_NMSUB4
20086 and ISA_HAS_NMADD3_NMSUB3.
20087 * config/mips/mips.md (nmadd4<mode>, nmadd3<mode>): Likewise.
20088 (nmadd4<mode>_fastmath, nmadd3<mode>_fastmath): Likewise.
20089 (nmsub4<mode>, nmsub3<mode>): Likewise.
20090 (nmsub4<mode>_fastmath, nmsub3<mode>_fastmath): Likewise.
20091
57f12f14 200922013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
20093
20094 * config/mips/mips.h (ISA_HAS_NMADD4_NMSUB4): Remove
20095 TARGET_MIPS5400 checking.
20096
8e5b1909 200972013-07-16 Jakub Jelinek <jakub@redhat.com>
20098 Peter Bergner <bergner@vnet.ibm.com>
20099
20100 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTERS): Mention HTM
20101 registers in the comment.
20102 (DWARF_FRAME_REGISTERS): Subtract also the 3 HTM registers.
20103 (DWARF_REG_TO_UNWIND_COLUMN): Use DWARF_FRAME_REGISTERS
20104 rather than FIRST_PSEUDO_REGISTERS.
20105
201062013-07-16 Peter Bergner <bergner@vnet.ibm.com>
6e33a792 20107
20108 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
20109 enable extra ISA flags with TARGET_HTM.
20110
512f12d6 201112013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
20112
20113 * config/mips/mips.h (ISA_HAS_MULS, ISA_HAS_MSAC, ISA_HAS_MACC):
20114 Fix comment typos.
20115
9b44c85a 201162013-07-15 Cong Hou <congh@google.com>
20117
20118 * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use hash function
20119 in compare function for sorting.
20120
8e5b1909 201212013-07-15 Peter Bergner <bergner@vnet.ibm.com>
5088e479 20122
20123 * config.gcc (powerpc*-*-*): Install htmintrin.h and htmxlintrin.h.
20124 * config/rs6000/t-rs6000 (MD_INCLUDES): Add htm.md.
20125 * config/rs6000/rs6000.opt: Add -mhtm option.
20126 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_HTM.
20127 (ISA_2_7_MASKS_SERVER): Add OPTION_MASK_HTM.
20128 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
20129 __HTM__ if the HTM instructions are available.
20130 * config/rs6000/predicates.md (u3bit_cint_operand, u10bit_cint_operand,
20131 htm_spr_reg_operand): New define_predicates.
20132 * config/rs6000/rs6000.md (define_attr "type"): Add htm.
20133 (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO): New define_constants.
20134 Include htm.md.
20135 * config/rs6000/rs6000-builtin.def (BU_HTM_0, BU_HTM_1, BU_HTM_2,
20136 BU_HTM_3, BU_HTM_SPR0, BU_HTM_SPR1): Add support macros for defining
20137 HTM builtin functions.
20138 * config/rs6000/rs6000.c (RS6000_BUILTIN_H): New macro.
20139 (rs6000_reg_names, alt_reg_names): Add HTM SPR register names.
20140 (rs6000_init_hard_regno_mode_ok): Add support for HTM instructions.
20141 (rs6000_builtin_mask_calculate): Likewise.
20142 (rs6000_option_override_internal): Likewise.
20143 (bdesc_htm): Add new HTM builtin support.
20144 (htm_spr_num): New function.
20145 (htm_spr_regno): Likewise.
20146 (rs6000_htm_spr_icode): Likewise.
20147 (htm_expand_builtin): Likewise.
20148 (htm_init_builtins): Likewise.
20149 (rs6000_expand_builtin): Add support for HTM builtin functions.
20150 (rs6000_init_builtins): Likewise.
5f7f04d8 20151 (rs6000_invalid_builtin, rs6000_opt_mask): Add support for -mhtm
20152 option.
5088e479 20153 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mhtm.
20154 (TARGET_HTM, MASK_HTM): Define macros.
20155 (FIRST_PSEUDO_REGISTER): Adjust for new HTM SPR registers.
20156 (FIXED_REGISTERS): Likewise.
20157 (CALL_USED_REGISTERS): Likewise.
20158 (CALL_REALLY_USED_REGISTERS): Likewise.
20159 (REG_ALLOC_ORDER): Likewise.
20160 (enum reg_class): Likewise.
20161 (REG_CLASS_NAMES): Likewise.
20162 (REG_CLASS_CONTENTS): Likewise.
20163 (REGISTER_NAMES): Likewise.
20164 (ADDITIONAL_REGISTER_NAMES): Likewise.
20165 (RS6000_BTC_SPR, RS6000_BTC_VOID, RS6000_BTC_32BIT, RS6000_BTC_64BIT,
20166 RS6000_BTC_MISC_MASK, RS6000_BTM_HTM): New macros.
20167 (RS6000_BTM_COMMON): Add RS6000_BTM_HTM.
20168 * config/rs6000/htm.md: New file.
20169 * config/rs6000/htmintrin.h: New file.
20170 * config/rs6000/htmxlintrin.h: New file.
20171
2c97ec73 201722013-07-15 Marcus Shawcroft <marcus.shawcroft@arm.com>
20173
20174 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
20175 Define SYMBOL_TINY_GOT, update comment.
20176 * config/aarch64/aarch64.c
20177 (aarch64_load_symref_appropriately): Handle SYMBOL_TINY_GOT.
20178 (aarch64_expand_mov_immediate): Likewise.
20179 (aarch64_print_operand): Likewise.
20180 (aarch64_classify_symbol): Likewise.
20181 * config/aarch64/aarch64.md (UNSPEC_GOTTINYPIC): Define.
20182 (ldr_got_tiny): Define.
20183
bffcae34 201842013-07-13 Tobias Grosser <tobias@grosser.es>
20185
20186 PR tree-optimization/54094
20187 * graphite-clast-to-gimple.c (translate_clast_for_loop): Derive the
20188 scheduling dimension for the parallelism check from the polyhedral
20189 information in the AST.
20190 * graphite-dependences.c (carries_deps): Do not assume the schedule is
20191 in 2D + 1 form.
20192
84fcb947 201932013-07-13 Jason Merrill <jason@redhat.com>
20194
20195 * print-tree.c (debug_vec_tree): Use debug_raw.
20196 (debug_raw (vec<tree, va_gc> &)): New.
20197 (debug_raw (vec<tree, va_gc> *)): New.
20198 * tree.h: Declare them.
20199
abd03efe 202002013-07-13 Bin Cheng <bin.cheng@arm.com>
20201
20202 * ifcvt.c (ifcvt_after_combine): New static variable.
20203 (cheap_bb_rtx_cost_p): Set scale to REG_BR_PROB_BASE when optimizing
20204 for size.
20205 (if_convert): New parameter after_combine. Set ifcvt_after_combine.
20206 (rest_of_handle_if_conversion, rest_of_handle_if_after_combine,
20207 rest_of_handle_if_after_reload): Pass new argument for if_convert.
20208
83773cef 202092013-07-12 Maciej W. Rozycki <macro@codesourcery.com>
20210
20211 * config/mips/mips.c (mips_expand_call): Remove empty statement.
20212
0dc99c85 202132013-07-12 Michael Matz <matz@suse.de>
20214
20215 PR middle-end/55771
20216 * convert.c (convert_to_real): Reject non-float inner types.
20217
8458c9e9 202182013-07-12 Tejas Belagod <tejas.belagod@arm.com>
20219
20220 * config/aarch64/aarch64-protos.h
20221 (aarch64_simd_immediate_valid_for_move): Remove.
20222 * config/aarch64/aarch64.c (simd_immediate_info): New member.
20223 (aarch64_simd_valid_immediate): Recognize idioms for shifting ones
20224 cases.
20225 (aarch64_output_simd_mov_immediate): Print the correct shift specifier.
20226
68a45531 202272013-07-11 Steve Ellcey <sellcey@mips.com>
20228
20229 * config/mips/mips.c (mips_conditional_register_usage): Do not
20230 use t[0-7] registers in MIPS16 mode when optimizing for size.
20231
db56f021 202322013-07-11 Sriraman Tallam <tmsriram@google.com>
20233
20234 * config/i386/i386.c (dispatch_function_versions): Fix array
20235 indexing of function_version_info to match actual_versions.
20236
182e7ecd 202372013-07-11 Teresa Johnson <tejohnson@google.com>
20238
20239 * vec.h (struct va_gc): Move release out-of-line.
20240 (va_gc::release): Call ggc_free on released vec.
20241
fe14b54e 202422013-07-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
20243
20244 * config/rs6000/rs6000.md (""*tls_gd_low<TLSmode:tls_abi_suffix>"):
20245 Require GOT register as additional operand in UNSPEC.
20246 ("*tls_ld_low<TLSmode:tls_abi_suffix>"): Likewise.
20247 ("*tls_got_dtprel_low<TLSmode:tls_abi_suffix>"): Likewise.
20248 ("*tls_got_tprel_low<TLSmode:tls_abi_suffix>"): Likewise.
20249 ("*tls_gd<TLSmode:tls_abi_suffix>"): Update splitter.
20250 ("*tls_ld<TLSmode:tls_abi_suffix>"): Likewise.
20251 ("tls_got_dtprel_<TLSmode:tls_abi_suffix>"): Likewise.
20252 ("tls_got_tprel_<TLSmode:tls_abi_suffix>"): Likewise.
20253
248c10bf 202542013-07-11 Georg-Johann Lay <avr@gjlay.de>
20255
20256 PR target/57631
20257 * config/avr/avr.c (avr_set_current_function): Sanity-check signal
20258 name seen by assembler/linker rather if available.
20259
945153c1 202602013-07-11 Andreas Schwab <schwab@suse.de>
20261
20262 * config/aarch64/aarch64-linux.h (CPP_SPEC): Define.
20263
a519b04a 202642013-07-10 Vladimir Makarov <vmakarov@redhat.com>
20265
5f7f04d8 20266 * lra-constraints.c (curr_insn_transform): Switch off optional reloads.
a519b04a 20267
f8e3aa87 202682013-07-10 Joseph Myers <joseph@codesourcery.com>
20269
d4173f0f 20270 * doc/tm.texi.in: Move hook documentation to ....
20271 * target.def: ... here.
20272
f8e3aa87 20273 * doc/tm.texi.in (TARGET_CANONICALIZE_COMPARISON): Remove stray
20274 text on @hook line.
20275 * doc/tm.texi: Regenerate.
20276
839f2f70 202772013-07-10 Paolo Carlini <paolo.carlini@oracle.com>
20278
20279 PR c++/57869
20280 * doc/invoke.texi: Document -Wconditionally-supported.
20281
cde06e71 202822013-07-10 Georg-Johann Lay <avr@gjlay.de>
20283
20284 PR target/57844
20285 * config/avr/avr.c (avr_prologue_setup_frame): Trunk -size to mode
20286 of my_fp.
20287
d0c1e059 202882013-07-10 Georg-Johann Lay <avr@gjlay.de>
20289
20290 PR target/57506
20291 * config/avr/avr-mcus.def (atmega16hva, atmega16hva2, atmega16hvb)
20292 (atmega16m1, atmega16u4, atmega32a, atmega32c1, atmega32hvb)
20293 (atmega32m1, atmega32u4, atmega32u6, atmega64c1, atmega64m1):
20294 Remove duplicate devices.
20295 * config/avr/gen-avr-mmcu-texi.c (print_mcus): Fail on duplicate MCUs.
20296 * config/avr/t-multilib: Regenerate.
20297 * config/avr/avr-tables.opt: Regenerate.
20298 * doc/avr-mmcu.texi: Regenerate.
20299
636ded30 203002013-07-10 Georg-Johann Lay <avr@gjlay.de>
20301
20302 PR target/56987
20303 * config/avr/avr.opt (Waddr-space-convert): Fix typo.
20304
0060eac4 203052013-07-10 Graham Stott <graham.stott@btinternet.com>
73f353d0 20306
0060eac4 20307 * config/mips/mips.c (mips_rtx_costs): Very slightly increase
20308 the cost of MULT when optimizing for size.
20309
42dda6b1 203102013-07-10 Jan-Benedict Glaw <jbglaw@lug-owl.de>
20311
20312 * config/cr16/cr16-protos.h: Don't include target.h.
20313
d738e1ee 203142013-07-09 Joseph Myers <joseph@codesourcery.com>
20315
20316 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Only
20317 adjust register size for TDmode and TFmode for VSX registers.
20318
15c57ef1 203192013-07-08 Kai Tietz <ktietz@redhat.com>
20320
20321 PR target/56892
20322 * config/i386/i386.c (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Define as
20323 hook_bool_const_tree_true.
20324
6a2469fe 203252013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20326
20327 * config/s390/s390.c: Replace F*_REGNUM with FPR*_REGNUM.
20328 * config/s390/s390.h: Remove F*_REGNUM macro definitions.
20329 * config/s390/s390.md: Define FPR*_REGNUM constants.
20330 Fix FPR2_REGNUM constant (18 -> 17).
20331 ("*trunc<BFP:mode><DFP_ALL:mode>2")
20332 ("*trunc<DFP_ALL:mode><BFP:mode>2")
20333 ("trunc<BFP:mode><DFP_ALL:mode>2")
20334 ("trunc<DFP_ALL:mode><BFP:mode>2")
20335 ("*extend<BFP:mode><DFP_ALL:mode>2")
20336 ("*extend<DFP_ALL:mode><BFP:mode>2")
20337 ("extend<BFP:mode><DFP_ALL:mode>2")
20338 ("extend<DFP_ALL:mode><BFP:mode>2"): Replace FPR2_REGNUM with
20339 FPR4_REGNUM.
20340
6b77556b 203412013-07-08 Graham Stott <graham.stott@btinternet.com>
6b77556b 20342
73f353d0 20343 * Makefile.in: (c-family-warn): Define to $(STRICT_WARN)
562fcf12 20344
29439367 203452013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
20346
20347 * config/s390/s390.c: Rename cfun_set_fpr_bit to cfun_set_fpr_save
20348 and cfun_fpr_bit_p to cfun_fpr_save_p.
20349 (s390_frame_area, s390_register_info, s390_frame_info)
20350 (s390_emit_prologue, s390_emit_epilogue)
20351 (s390_conditional_register_usage): Use the *_REGNUM macros for FPR
20352 register numbers.
20353 * config/s390/s390.h: Define *_REGNUM macros for floating point
20354 register numbers.
20355
9c9668f3 203562013-07-08 Eric Botcazou <ebotcazou@adacore.com>
20357
20358 * Makefile.in (tree-ssa-reassoc.o): Add dependency on $(PARAMS_H).
20359
ed3a8d75 203602013-07-08 Po-Chun Chang <pchang9@cs.wisc.edu>
20361
20362 PR rtl-optimization/57786
20363 * combine.c (distribute_notes) <case REG_DEAD>: Change all_used to bool
20364 and break out of the loop when it is set to false.
20365
ec7f9058 203662013-07-08 Jakub Jelinek <jakub@redhat.com>
20367
1bf020d9 20368 PR target/57819
20369 * simplify-rtx.c (simplify_unary_operation_1) <case ZERO_EXTEND>:
20370 Simplify (zero_extend:SI (subreg:QI (and:SI (reg:SI)
20371 (const_int 63)) 0)).
20372 * combine.c (make_extraction): Create ZERO_EXTEND or SIGN_EXTEND
20373 using simplify_gen_unary instead of gen_rtx_*_EXTEND.
20374 * config/i386/i386.md (*jcc_bt<mode>_1): New define_insn_and_split.
20375
ec7f9058 20376 PR rtl-optimization/57829
20377 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Ensure that
20378 mask bits outside of mode are just sign-extension from mode to HWI.
20379
7645814e 203802013-07-08 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
20381
20382 * config/i386/i386-opts.h (enum stringop_alg): Add vector_loop.
20383 * config/i386/i386.c (expand_set_or_movmem_via_loop): Use
20384 adjust_address instead of change_address to keep info about alignment.
20385 (emit_strmov): Remove.
20386 (emit_memmov): New function.
20387 (expand_movmem_epilogue): Refactor to properly handle bigger sizes.
20388 (expand_movmem_epilogue): Likewise and return updated rtx for
20389 destination.
20390 (expand_constant_movmem_prologue): Likewise and return updated rtx for
20391 destination and source.
20392 (decide_alignment): Refactor, handle vector_loop.
20393 (ix86_expand_movmem): Likewise.
20394 (ix86_expand_setmem): Likewise.
20395 * config/i386/i386.opt (Enum): Add vector_loop to option stringop_alg.
20396
9bfede72 203972013-07-07 Uros Bizjak <ubizjak@gmail.com>
20398
20399 * config/i386/driver-i386.c (host_detect_local_cpu): Do not check
20400 signature_TM2_ebx, it interferes with signature_INTEL_ebx.
20401
c358a059 204022013-07-06 Uros Bizjak <ubizjak@gmail.com>
20403
20404 * config/i386/sse.md (sse_movlhps): Change alternative 3
20405 of operand 2 to "m".
20406
204072013-07-06 Uros Bizjak <ubizjak@gmail.com>
20408
20409 PR target/57807
20410 * config/i386/sse.md (iptr): New mode attribute.
20411 (sse2_movq128): Add pointer size overrides for Intel asm dialect.
20412 (<sse>_vm<plusminus_insn><mode>3): Ditto.
20413 (<sse>_vmmul<mode>3): Ditto.
20414 (<sse>_vmdiv<mode>3): Ditto.
20415 (sse_vmrcpv4sf2): Ditto.
20416 (<sse>_vmsqrt<mode>2): Ditto.
20417 (sse_vmrsqrtv4sf2): Ditto.
20418 (<sse>_vm<code><mode>3): Ditto.
20419 (avx_vmcmp<mode>3): Ditto.
20420 (<sse>_vmmaskcmp<mode>3): Ditto.
20421 (<sse>_comi): Ditto.
20422 (<sse>_ucomi): Ditto.
20423 (*xop_vmfrcz_<mode>): Ditto.
20424 (*fmai_fmadd_<mode>): Ditto.
20425 (*fmai_fmsub_<mode>): Ditto.
20426 (*fmai_fnmadd_<mode>): Ditto.
20427 (*fmai_fnmsub_<mode>): Ditto.
20428 (*fma4i_vmfmadd_<mode>): Ditto.
20429 (*fma4i_vmfmsub_<mode>): Ditto.
20430 (*fma4i_vmfnmadd_<mode>): Ditto.
20431 (*fma4i_vmfnmsub_<mode>): Ditto.
20432 (*xop_vmfrcz_<mode>): Ditto.
20433 (sse_cvtps2pi): Ditto.
20434 (sse_cvttps2pi): Ditto.
20435 (sse_cvtss2si): Ditto.
20436 (sse_cvtss2si_2): Ditto.
20437 (sse_cvtss2siq_2): Ditto.
20438 (sse_cvttss2si): Ditto.
20439 (sse_cvttss2siq): Ditto.
20440 (sse_cvtsd2si): Ditto.
20441 (sse_cvtsd2si_2): Ditto.
20442 (sse_cvtsd2siq_2): Ditto.
20443 (sse_cvttsd2si): Ditto.
20444 (sse_cvttsd2siq): Ditto.
20445 (sse_cvtsd2ss): Ditto.
20446 (sse_cvtss2sd): Ditto.
20447 (avx2_pbroadcast<mode>): Ditto.
20448 (avx2_pbroadcast<mode>_1): Ditto.
20449 (*avx_vperm_broadcast_v4sf): Ditto.
20450
20451 (sse_movhlps): Ditto for movlp[sd]/movhp[sd] alternatives.
20452 (sse_movlhps): Ditto.
20453 (sse_storehps): Ditto.
20454 (sse_loadhps): Ditto.
20455 (sse_storelps): Ditto.
20456 (sse_loadlps): Ditto.
20457 (*vec_concatv4sf): Ditto.
20458 (*vec_interleave_highv2df): Ditto.
20459 (*vec_interleave_lowv2df): Ditto.
20460 (*vec_extractv2df_1_sse): Ditto.
20461 (*vec_extractv2df_0_sse): Ditto.
20462 (sse2_storelpd): Ditto.
20463 (sse2_loadlpd): Ditto.
20464 (sse2_movsd): Ditto.
20465 (*vec_concatv4si): Ditto.
20466 (vec_concatv2di): Ditto.
20467
20468 * config/i386/mmx.md (mmx_punpcklbw): Add pointer size overrides
20469 for Intel asm dialect.
20470 (mmx_punpcklwd): Ditto.
20471 (mmx_punpckldq): Ditto.
20472
20473 * config/i386/i386.c (ix86_print_operand) ['H']: Output 'qword ptr'
20474 for intel assembler dialect.
20475
64b5be08 204762013-07-06 Jakub Jelinek <jakub@redhat.com>
20477
20478 PR target/29776
20479 * fold-const.c (tree_call_nonnegative_warnv_p): Return true
20480 for BUILT_IN_C{LZ,LRSB}*.
20481 * tree.h (CASE_INT_FN): Add FN##IMAX case.
20482 * tree-vrp.c (extract_range_basic): Handle
20483 BUILT_IN_{FFS,PARITY,POPCOUNT,C{LZ,TZ,LRSB}}*. For
20484 BUILT_IN_CONSTANT_P if argument isn't (D) of PARM_DECL,
20485 fall thru to code calling set_value*.
20486 * builtins.c (expand_builtin): Remove *IMAX cases.
20487 (fold_builtin_bitop): For BUILT_IN_CLRSB* return NULL_TREE
20488 if width is bigger than 2*HWI.
20489
1f3a048a 204902013-07-05 Vladimir Makarov <vmakarov@redhat.com>
20491
20492 PR rtl-optimization/55342
20493 * lra-int.h (lra_subreg_reload_pseudos): New.
20494 * lra.c: Add undoing optional reloads to the block diagram.
20495 (lra_subreg_reload_pseudos): New.
20496 (lra_optional_reload_pseudos): Change comments.
20497 (lra): Init and clear lra_subreg_reload_pseudos. Clear
20498 lra_optional_reload_pseudos after undo transformations.
20499 * lra-assigns.c (pseudo_prefix_title): New.
20500 (lra_setup_reg_renumber): Use it.
20501 (spill_for): Ditto. Check subreg reload pseudos too.
20502 (assign_by_spills): Consider subreg reload pseudos too.
20503 * lra-constraints.c (simplify_operand_subreg): Use
20504 lra_subreg_reload_pseudos instead of lra_optional_reload_pseudos.
20505 (curr_insn_transform): Recognize and do optional reloads.
20506 (undo_optional_reloads): New.
20507 (lra_undo_inheritance): Call undo_optional_reloads.
20508
4d6b2b7e 205092013-07-05 Thomas Quinot <quinot@adacore.com>
20510
20511 * tree-complex.c (expand_complex_operations_1): Fix typo.
20512
61d9499e 205132013-07-04 Tejas Belagod <tejas.belagod@arm.com>
20514
20515 * config/aarch64/aarch64-protos.h (cpu_vector_cost): New.
20516 (tune_params): New member 'const vec_costs'.
20517 * config/aarch64/aarch64.c (generic_vector_cost): New.
20518 (generic_tunings): New member 'generic_vector_cost'.
20519 (aarch64_builtin_vectorization_cost): New.
20520 (aarch64_add_stmt_cost): New.
20521 (TARGET_VECTORIZE_ADD_STMT_COST): New.
20522 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
20523
f4d378a8 205242013-07-03 Jakub Jelinek <jakub@redhat.com>
20525
20526 PR target/57777
20527 * config/i386/predicates.md (vsib_address_operand): Disallow
20528 SYMBOL_REF or LABEL_REF in parts.disp if TARGET_64BIT && flag_pic.
20529
4598ade9 205302013-07-03 Hans-Peter Nilsson <hp@bitrange.com>
20531
20532 PR middle-end/55030
20533 * stmt.c (expand_nl_goto_receiver): Remove almost-copy of
20534 expand_builtin_setjmp_receiver.
20535 (expand_label): Adjust, call expand_builtin_setjmp_receiver
20536 with NULL for the label parameter.
20537 * builtins.c (expand_builtin_setjmp_receiver): Don't clobber
20538 the frame-pointer. Adjust comments.
20539 [HAVE_builtin_setjmp_receiver]: Emit builtin_setjmp_receiver
20540 only if LABEL is non-NULL.
20541
04a3900d 205422013-07-03 Yufeng Zhang <yufeng.zhang@arm.com>
20543
20544 * config/aarch64/aarch64.h (enum arm_abi_type): Remove.
20545 (ARM_ABI_AAPCS64): Ditto.
20546 (arm_abi): Ditto.
20547 (ARM_DEFAULT_ABI): Ditto.
20548
88c9a347 205492013-07-03 James Greenhalgh <james.greenhalgh@arm.com>
20550
20551 * config/aarch64/aarch64-builtins.c
20552 (aarch64_simd_expand_builtin): Handle AARCH64_SIMD_STORE1.
20553 * config/aarch64/aarch64-simd-builtins.def (ld1): New.
20554 (st1): Likewise.
20555 * config/aarch64/aarch64-simd.md
20556 (aarch64_ld1<VALL:mode>): New.
20557 (aarch64_st1<VALL:mode>): Likewise.
20558 * config/aarch64/arm_neon.h
20559 (vld1<q>_<fpsu><8, 16, 32, 64>): Convert to RTL builtins.
20560
2ce8ff38 205612013-07-02 Sriraman Tallam <tmsriram@google.com>
20562
3af61095 20563 * config/i386/i386.c (gate_insert_vzeroupper): Check if
20564 target ISA is AVX.
2ce8ff38 20565 (ix86_option_override_internal):Turn on all -mavx target flags by
20566 default as they are dependent on AVX anyway.
20567
1bfbf223 205682013-07-02 Cary Coutant <ccoutant@google.com>
20569
20570 * dwarf2out.c (loc_checksum): Call hash_loc_operands for a
20571 deterministic hash.
20572 (loc_checksum_ordered): Likewise.
20573 (hash_loc_operands): Remove inline keyword.
20574
1d62df1c 205752013-07-02 Jakub Jelinek <jakub@redhat.com>
20576
20577 PR tree-optimization/57741
20578 * tree-vect-loop.c (vect_is_simple_iv_evolution): Disallow
20579 non-INTEGRAL_TYPE_P non-SCALAR_FLOAT_TYPE_P SSA_NAME step_exprs,
20580 or SCALAR_FLOAT_TYPE_P SSA_NAMEs if !flag_associative_math.
20581 Allow REAL_CST step_exprs if flag_associative_math.
20582 (get_initial_def_for_induction): Handle SCALAR_FLOAT_TYPE_P step_expr.
20583
1648ecaa 205842013-07-02 Ian Bolton <ian.bolton@arm.com>
20585
3af61095 20586 * config/aarch64/aarch64-simd.md (absdi2): Support abs for DI mode.
1648ecaa 20587
0e14bc84 205882013-07-02 Ian Bolton <ian.bolton@arm.com>
20589
20590 * config/aarch64/aarch64.md (*extr_insv_reg<mode>): New pattern.
20591
29e234a3 205922013-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20593
20594 * config/arm/arm.md (arm_andsi3_insn): Add alternatives for 16-bit
20595 encoding.
20596 (iorsi3_insn): Likewise.
20597 (arm_xorsi3): Likewise.
20598
7cb6c048 205992013-07-01 Sofiane Naci <sofiane.naci@arm.com>
20600
20601 * arm.md (attribute "wtype"): Delete. Move attribute values from here
20602 to ...
20603 (attribute "type"): ... here, and prefix with "wmmx_".
20604 (attribute "core_cycles"): Update for attribute changes.
20605 * iwmmxt.md (tbcstv8qi): Update for attribute changes.
20606 (tbcstv4hi): Likewise.
20607 (tbcstv2si): Likewise.
20608 (iwmmxt_iordi3): Likewise.
20609 (iwmmxt_xordi3): Likewise.
20610 (iwmmxt_anddi3): Likewise.
20611 (iwmmxt_nanddi3): Likewise.
20612 (iwmmxt_arm_movdi): Likewise.
20613 (iwmmxt_movsi_insn): Likewise.
20614 (mov<mode>_internal): Likewise.
20615 (and<mode>3_iwmmxt): Likewise.
20616 (ior<mode>3_iwmmxt): Likewise.
20617 (xor<mode>3_iwmmxt): Likewise.
20618 (add<mode>3_iwmmxt): Likewise.
20619 (ssaddv8qi3): Likewise.
20620 (ssaddv4hi3): Likewise.
20621 (ssaddv2si3): Likewise.
20622 (usaddv8qi3): Likewise.
20623 (usaddv4hi3): Likewise.
20624 (usaddv2si3): Likewise.
20625 (sub<mode>3_iwmmxt): Likewise.
20626 (sssubv8qi3): Likewise.
20627 (sssubv4hi3): Likewise.
20628 (sssubv2si3): Likewise.
20629 (ussubv8qi3): Likewise.
20630 (ussubv4hi3): Likewise.
20631 (ussubv2si3): Likewise.
20632 (mulv4hi3_iwmmxt): Likewise.
20633 (smulv4hi3_highpart): Likewise.
20634 (umulv4hi3_highpart): Likewise.
20635 (iwmmxt_wmacs): Likewise.
20636 (iwmmxt_wmacsz): Likewise.
20637 (iwmmxt_wmacu): Likewise.
20638 (iwmmxt_wmacuz): Likewise.
20639 (iwmmxt_clrdi): Likewise.
20640 (iwmmxt_clrv8qi): Likewise.
20641 (iwmmxt_clr4hi): Likewise.
20642 (iwmmxt_clr2si): Likewise.
20643 (iwmmxt_uavgrndv8qi3): Likewise.
20644 (iwmmxt_uavgrndv4hi3): Likewise.
20645 (iwmmxt_uavgv8qi3): Likewise.
20646 (iwmmxt_uavgv4hi3): Likewise.
20647 (iwmmxt_tinsrb): Likewise.
20648 (iwmmxt_tinsrh): Likewise.
20649 (iwmmxt_tinsrw): Likewise.
20650 (iwmmxt_textrmub): Likewise.
20651 (iwmmxt_textrmsb): Likewise.
20652 (iwmmxt_textrmuh): Likewise.
20653 (iwmmxt_textrmsh): Likewise.
20654 (iwmmxt_textrmw): Likewise.
20655 (iwmxxt_wshufh): Likewise.
20656 (eqv8qi3): Likewise.
20657 (eqv4hi3): Likewise.
20658 (eqv2si3): Likewise.
20659 (gtuv8qi3): Likewise.
20660 (gtuv4hi3): Likewise.
20661 (gtuv2si3): Likewise.
20662 (gtv8qi3): Likewise.
20663 (gtv4hi3): Likewise.
20664 (gtv2si3): Likewise.
20665 (smax<mode>3_iwmmxt): Likewise.
20666 (umax<mode>3_iwmmxt): Likewise.
20667 (smin<mode>3_iwmmxt): Likewise.
20668 (umin<mode>3_iwmmxt): Likewise.
20669 (iwmmxt_wpackhss): Likewise.
20670 (iwmmxt_wpackwss): Likewise.
20671 (iwmmxt_wpackdss): Likewise.
20672 (iwmmxt_wpackhus): Likewise.
20673 (iwmmxt_wpackwus): Likewise.
20674 (iwmmxt_wpackdus): Likewise.
20675 (iwmmxt_wunpckihb): Likewise.
20676 (iwmmxt_wunpckihh): Likewise.
20677 (iwmmxt_wunpckihw): Likewise.
20678 (iwmmxt_wunpckilb): Likewise.
20679 (iwmmxt_wunpckilh): Likewise.
20680 (iwmmxt_wunpckilw): Likewise.
20681 (iwmmxt_wunpckehub): Likewise.
20682 (iwmmxt_wunpckehuh): Likewise.
20683 (iwmmxt_wunpckehuw): Likewise.
20684 (iwmmxt_wunpckehsb): Likewise.
20685 (iwmmxt_wunpckehsh): Likewise.
20686 (iwmmxt_wunpckehsw): Likewise.
20687 (iwmmxt_wunpckelub): Likewise.
20688 (iwmmxt_wunpckeluh): Likewise.
20689 (iwmmxt_wunpckeluw): Likewise.
20690 (iwmmxt_wunpckelsb): Likewise.
20691 (iwmmxt_wunpckelsh): Likewise.
20692 (iwmmxt_wunpckelsw): Likewise.
20693 (ror<mode>3): Likewise.
20694 (ashr<mode>3_iwmmxt): Likewise.
20695 (lshr<mode>3_iwmmxt): Likewise.
20696 (ashl<mode>3_iwmmxt): Likewise.
20697 (ror<mode>3_di): Likewise.
20698 (ashr<mode>3_di): Likewise.
20699 (lshr<mode>3_di): Likewise.
20700 (ashl<mode>3_di): Likewise.
20701 (iwmmxt_wmadds): Likewise.
20702 (iwmmxt_wmaddu): Likewise.
20703 (iwmmxt_tmia): Likewise.
20704 (iwmmxt_tmiaph): Likewise.
20705 (iwmmxt_tmiabb): Likewise.
20706 (iwmmxt_tmiatb): Likewise.
20707 (iwmmxt_tmiabt): Likewise.
20708 (iwmmxt_tmiatt): Likewise.
20709 (iwmmxt_tmovmskb): Likewise.
20710 (iwmmxt_tmovmskh): Likewise.
20711 (iwmmxt_tmovmskw): Likewise.
20712 (iwmmxt_waccb): Likewise.
20713 (iwmmxt_wacch): Likewise.
20714 (iwmmxt_waccw): Likewise.
20715 (iwmmxt_waligni): Likewise.
20716 (iwmmxt_walignr): Likewise.
20717 (iwmmxt_walignr0): Likewise.
20718 (iwmmxt_walignr1): Likewise.
20719 (iwmmxt_walignr2): Likewise.
20720 (iwmmxt_walignr3): Likewise.
20721 (iwmmxt_wsadb): Likewise.
20722 (iwmmxt_wsadh): Likewise.
20723 (iwmmxt_wsadbz): Likewise.
20724 (iwmmxt_wsadhz): Likewise.
20725 * iwmmxt2.md (iwmmxt_wabs<mode>3): Update for attribute changes.
20726 (iwmmxt_wabsdiffb): Likewise.
20727 (iwmmxt_wabsdiffh): Likewise.
20728 (iwmmxt_wabsdiffw): Likewise.
20729 (iwmmxt_waddsubhx): Likewise
20730 (iwmmxt_wsubaddhx): Likewise.
20731 (addc<mode>3): Likewise.
20732 (iwmmxt_avg4): Likewise.
20733 (iwmmxt_avg4r): Likewise.
20734 (iwmmxt_wmaddsx): Likewise.
20735 (iwmmxt_wmaddux): Likewise.
20736 (iwmmxt_wmaddsn): Likewise.
20737 (iwmmxt_wmaddun): Likewise.
20738 (iwmmxt_wmulwsm): Likewise.
20739 (iwmmxt_wmulwum): Likewise.
20740 (iwmmxt_wmulsmr): Likewise.
20741 (iwmmxt_wmulumr): Likewise.
20742 (iwmmxt_wmulwsmr): Likewise.
20743 (iwmmxt_wmulwumr): Likewise.
20744 (iwmmxt_wmulwl): Likewise.
20745 (iwmmxt_wqmulm): Likewise.
20746 (iwmmxt_wqmulwm): Likewise.
20747 (iwmmxt_wqmulmr): Likewise.
20748 (iwmmxt_wqmulwmr): Likewise.
20749 (iwmmxt_waddbhusm): Likewise.
20750 (iwmmxt_waddbhusl): Likewise.
20751 (iwmmxt_wqmiabb): Likewise.
20752 (iwmmxt_wqmiabt): Likewise.
20753 (iwmmxt_wqmiatb): Likewise.
20754 (iwmmxt_wqmiatt): Likewise.
20755 (iwmmxt_wqmiabbn): Likewise.
20756 (iwmmxt_wqmiabtn): Likewise.
20757 (iwmmxt_wqmiatbn): Likewise.
20758 (iwmmxt_wqmiattn): Likewise.
20759 (iwmmxt_wmiabb): Likewise.
20760 (iwmmxt_wmiabt): Likewise.
20761 (iwmmxt_wmiatb): Likewise.
20762 (iwmmxt_wmiatt): Likewise.
20763 (iwmmxt_wmiabbn): Likewise.
20764 (iwmmxt_wmiabtn): Likewise.
20765 (iwmmxt_wmiatbn): Likewise.
20766 (iwmmxt_wmiattn): Likewise.
20767 (iwmmxt_wmiawbb): Likewise.
20768 (iwmmxt_wmiawbt): Likewise.
20769 (iwmmxt_wmiawtb): Likewise.
20770 (iwmmxt_wmiawtt): Likewise.
20771 (iwmmxt_wmiawbbn): Likewise.
20772 (iwmmxt_wmiawbtn): Likewise.
20773 (iwmmxt_wmiawtbn): Likewise.
20774 (iwmmxt_wmiawttn): Likewise.
20775 (iwmmxt_wmerge): Likewise.
20776 (iwmmxt_tandc<mode>3): Likewise.
20777 (iwmmxt_torc<mode>3): Likewise.
20778 (iwmmxt_torvsc<mode>3): Likewise.
20779 (iwmmxt_textrc<mode>3): Likewise.
20780 * marvell-f-iwmmxt.md (wmmxt_shift): Update for attribute changes.
20781 (wmmxt_pack): Likewise.
20782 (wmmxt_mult_c1): Likewise.
20783 (wmmxt_mult_c2): Likewise.
20784 (wmmxt_alu_c1): Likewise.
20785 (wmmxt_alu_c2): Likewise.
20786 (wmmxt_alu_c3): Likewise.
20787 (wmmxt_transfer_c1): Likewise.
20788 (wmmxt_transfer_c2): Likewise.
20789 (wmmxt_transfer_c3): Likewise.
20790 (marvell_f_iwmmxt_wstr): Likewise.
20791 (marvell_f_iwmmxt_wldr): Likewise.
20792
801070f5 207932013-06-29 Yufeng Zhang <yufeng.zhang@arm.com>
20794
3af61095 20795 * config/aarch64/aarch64.c: Remove junk from the beginning of the file.
801070f5 20796
8f67e177 207972013-06-28 Vladimir Makarov <vmakarov@redhat.com>
20798
20799 Revert:
20800 2013-06-28 Vladimir Makarov <vmakarov@redhat.com>
20801 * lra-constraints.c (need_for_split_p): Check call used hard regs
20802 living through calls.
20803
20804 * lra-constraints.c (inherit_in_ebb): Reset live_hard_regs for
20805 call used regs for call insn.
20806
df92075b 208072013-06-28 Jakub Jelinek <jakub@redhat.com>
20808
20809 PR target/57736
3af61095 20810 * config/i386/i386.c (ix86_expand_builtin): If target == NULL and
20811 mode is VOIDmode, don't create a VOIDmode pseudo to copy result into.
df92075b 20812
936c3081 208132013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
20814
20815 * builtins.def: Fixed the function type of CILKPLUS_BUILTIN.
8f67e177 20816
0157439c 208172013-06-28 Vladimir Makarov <vmakarov@redhat.com>
20818
20819 * lra-constraints.c (need_for_split_p): Check call used hard regs
20820 living through calls.
20821
53ee13c3 208222013-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
20823
20824 PR target/57744
20825 * config/rs6000/rs6000.h (MODES_TIEABLE_P): Do not allow PTImode
20826 to tie with any other modes. Eliminate Altivec vector mode tests,
20827 since these are a subset of ALTIVEC or VSX vector modes. Simplify
20828 code, to return 0 if testing MODE2 for a condition, if we've
20829 already tested MODE1 for the same condition.
20830
beac24f9 208312013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
20832
20833 * config/aarch64/aarch64.c (aarch64_cannot_force_const_mem): Adjust
20834 layout.
20835
586bb065 208362013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
20837
20838 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
20839 Update comment w.r.t SYMBOL_TINY_ABSOLUTE.
20840
8fd61aba 208412013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
20842
3af61095 20843 * config/aarch64/aarch64-protos.h (aarch64_classify_symbol_expression):
20844 Define.
8fd61aba 20845 (aarch64_symbolic_constant_p): Remove.
20846 * config/aarch64/aarch64.c (aarch64_classify_symbol_expression): Remove
20847 static. Fix line length and white space.
20848 (aarch64_symbolic_constant_p): Remove.
20849 * config/aarch64/predicates.md (aarch64_valid_symref):
20850 Use aarch64_classify_symbol_expression.
20851
fd711051 208522013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20853
20854 * config/arm/constraints.md (Ts): New constraint.
20855 * config/arm/arm.md (arm_movqi_insn): Add alternatives for
20856 16-bit encodings.
20857 (compare_scc): Use "Ts" constraint for operand 0.
20858 (ior_scc_scc): Likewise.
20859 (and_scc_scc): Likewise.
20860 (and_scc_scc_nodom): Likewise.
20861 (ior_scc_scc_cmp): Likewise for operand 7.
20862 (and_scc_scc_cmp): Likewise.
20863 * config/arm/thumb2.md (thumb2_movsi_insn):
20864 Add alternatives for 16-bit encodings.
20865 (thumb2_movhi_insn): Likewise.
20866 (thumb2_movsicc_insn): Likewise.
20867 (thumb2_and_scc): Take 'and' outside cond_exec. Use "Ts" constraint.
20868 (thumb2_negscc): Use "Ts" constraint.
20869 Move mvn instruction outside cond_exec block.
20870 * config/arm/vfp.md (thumb2_movsi_vfp): Add alternatives
20871 for 16-bit encodings.
20872
d952d547 208732013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20874
20875 * config/arm/arm.md (arm_mulsi3_v6): Add alternative for 16-bit
20876 encoding.
20877 (mulsi3addsi_v6): Disable predicable variant for arm_restrict_it.
20878 (mulsi3subsi): Likewise.
20879 (mulsidi3adddi): Likewise.
20880 (mulsidi3_v6): Likewise.
20881 (umulsidi3_v6): Likewise.
20882 (umulsidi3adddi_v6): Likewise.
20883 (smulsi3_highpart_v6): Likewise.
20884 (umulsi3_highpart_v6): Likewise.
20885 (mulhisi3tb): Likewise.
20886 (mulhisi3bt): Likewise.
20887 (mulhisi3tt): Likewise.
20888 (maddhisi4): Likewise.
20889 (maddhisi4tb): Likewise.
20890 (maddhisi4tt): Likewise.
20891 (maddhidi4): Likewise.
20892 (maddhidi4tb): Likewise.
20893 (maddhidi4tt): Likewise.
20894 (zeroextractsi_compare0_scratch): Likewise.
20895 (insv_zero): Likewise.
20896 (insv_t2): Likewise.
20897 (anddi_notzesidi_di): Likewise.
20898 (anddi_notsesidi_di): Likewise.
20899 (andsi_notsi_si): Likewise.
20900 (iordi_zesidi_di): Likewise.
20901 (xordi_zesidi_di): Likewise.
20902 (andsi_iorsi3_notsi): Likewise.
20903 (smax_0): Likewise.
20904 (smax_m1): Likewise.
20905 (smin_0): Likewise.
20906 (not_shiftsi): Likewise.
20907 (unaligned_loadsi): Likewise.
20908 (unaligned_loadhis): Likewise.
20909 (unaligned_loadhiu): Likewise.
20910 (unaligned_storesi): Likewise.
20911 (unaligned_storehi): Likewise.
20912 (extv_reg): Likewise.
20913 (extzv_t2): Likewise.
20914 (divsi3): Likewise.
20915 (udivsi3): Likewise.
20916 (arm_zero_extendhisi2addsi): Likewise.
20917 (arm_zero_extendqisi2addsi): Likewise.
20918 (compareqi_eq0): Likewise.
20919 (arm_extendhisi2_v6): Likewise.
20920 (arm_extendqisi2addsi): Likewise.
20921 (arm_movt): Likewise.
20922 (thumb2_ldrd): Likewise.
20923 (thumb2_ldrd_base): Likewise.
20924 (thumb2_ldrd_base_neg): Likewise.
20925 (thumb2_strd): Likewise.
20926 (thumb2_strd_base): Likewise.
20927 (thumb2_strd_base_neg): Likewise.
20928 (arm_negsi2): Add alternative for 16-bit encoding.
20929 (arm_one_cmplsi2): Likewise.
20930
4df97ffc 209312013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20932
20933 * config/arm/predicates.md (arm_cond_move_operator): New predicate.
20934 * config/arm/arm.md (movsfcc): Use arm_cond_move_operator predicate.
20935 (movdfcc): Likewise.
20936 * config/arm/vfp.md (*thumb2_movsf_vfp):
20937 Disable predication for arm_restrict_it.
20938 (*thumb2_movsfcc_vfp): Disable for arm_restrict_it.
20939 (*thumb2_movdfcc_vfp): Likewise.
20940 (*abssf2_vfp, *absdf2_vfp, *negsf2_vfp, *negdf2_vfp,*addsf3_vfp,
20941 *adddf3_vfp, *subsf3_vfp, *subdf3_vfpc, *divsf3_vfp,*divdf3_vfp,
20942 *mulsf3_vfp, *muldf3_vfp, *mulsf3negsf_vfp, *muldf3negdf_vfp,
20943 *mulsf3addsf_vfp, *muldf3adddf_vfp, *mulsf3subsf_vfp,
20944 *muldf3subdf_vfp, *mulsf3negsfaddsf_vfp, *fmuldf3negdfadddf_vfp,
20945 *mulsf3negsfsubsf_vfp, *muldf3negdfsubdf_vfp, *fma<SDF:mode>4,
20946 *fmsub<SDF:mode>4, *fnmsub<SDF:mode>4, *fnmadd<SDF:mode>4,
20947 *extendsfdf2_vfp, *truncdfsf2_vfp, *extendhfsf2, *truncsfhf2,
20948 *truncsisf2_vfp, *truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2,
20949 *floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2, floatunssidf2,
20950 *sqrtsf2_vfp, *sqrtdf2_vfp, *cmpsf_vfp, *cmpsf_trap_vfp, *cmpdf_vfp,
20951 *cmpdf_trap_vfp, <vrint_pattern><SDF:mode>2):
20952 Disable predication for arm_restrict_it.
20953
556f149b 209542013-06-28 Kirill Yukhin <kirill.yukhin@intel.com>
20955
20956 * config/i386/bmiintrin.h (_bextr_u32): New.
20957 (_bextr_u64): Ditto.
20958
c789b852 209592013-06-27 Richard Sandiford <rdsandiford@googlemail.com>
20960
20961 * config.gcc (mips*-mti-elf*, mips*-sde-elf*, mips64r5900-*-elf*)
20962 (mips64r5900el-*-elf*): Include mips/n32-elf.h.
20963 * config/mips/sde.h (LOCAL_LABEL_PREFIX, NO_DOLLAR_IN_LABEL)
20964 (LONG_DOUBLE_TYPE_SIZE, LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Move to...
20965 * config/mips/n32-elf.h: ...this new file.
20966
3b76b707 209672013-06-27 Marc Glisse <marc.glisse@inria.fr>
20968
20969 PR target/57224
20970 * config/i386/i386.c (enum ix86_builtins, bdesc_args): Remove
20971 IX86_BUILTIN_CMPNGTSS and IX86_BUILTIN_CMPNGESS.
20972
c3d2d0e4 209732013-06-27 Catherine Moore <clm@codesourcery.com>
351a64c5 20974
20975 * config/mips/mips-tables.opt: Regenerate.
20976 * config/mips/mips-cpus.def: Add m14ke and m14kec.
3af61095 20977 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): m14ke* implies -mdspr2.
351a64c5 20978 * doc/invoke.texi: Add -m14kc.
556f149b 20979
b8f56e39 209802013-06-27 Jakub Jelinek <jakub@redhat.com>
20981
fdddc582 20982 PR target/57623
20983 * config/i386/i386.md (bmi_bextr_<mode>): Swap predicates and
20984 constraints of operand 1 and 2.
20985
b8f56e39 20986 PR target/57623
20987 * config/i386/i386.md (bmi2_bzhi_<mode>3): Swap AND arguments
20988 to match RTL canonicalization. Swap predicates and
20989 constraints of operand 1 and 2.
20990
bf63c98f 209912013-06-27 Vladimir Makarov <vmakarov@redhat.com>
20992
3af61095 20993 * lra-constraints.c (inherit_in_ebb): Process static hard regs too.
20994 Process OP_INOUT regs for splitting too.
bf63c98f 20995
5c90e7b6 209962013-06-27 Jakub Jelinek <jakub@redhat.com>
20997
20998 * tree-vect-stmts.c (vectorizable_store): Move ptr_incr var
20999 decl before the loop, initialize to NULL.
21000 (vectorizable_load): Initialize ptr_incr to NULL.
21001
3c0fe71b 210022013-06-27 Martin Jambor <mjambor@suse.cz>
21003
21004 PR lto/57208
21005 * ipa-ref.h (ipa_maybe_record_reference): Declare.
21006 * ipa-ref.c (ipa_maybe_record_reference): New function.
21007 * cgraphclones.c (cgraph_create_virtual_clone): Use it.
21008 * ipa-cp.c (create_specialized_node): Record potential references from
21009 aggvals.
21010 * Makefile.in (ipa-ref.o): Add IPA_REF_H to dependencies.
21011
6b765f96 210122013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
21013
21014 * config/aarch64/aarch64.c (aarch64_force_temporary): Add an extra
21015 parameter 'mode' of type 'enum machine_mode mode'; change to pass
21016 'mode' to force_reg.
21017 (aarch64_add_offset): Update calls to aarch64_force_temporary.
21018 (aarch64_expand_mov_immediate): Likewise.
21019
7f2c00e6 210202013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
21021
21022 * config/aarch64/aarch64.c (aarch64_add_offset): Change to pass
21023 'mode' to aarch64_plus_immediate and gen_rtx_PLUS.
21024
5ada7a14 210252013-06-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21026
21027 * config/s390/s390.c: Rename UNSPEC_CCU_TO_INT to
21028 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
21029 (struct machine_function): Add tbegin_p.
21030 (s390_canonicalize_comparison): Fold CC mode compares to
21031 conditional jump if possible.
21032 (s390_emit_jump): Return the emitted jump.
21033 (s390_branch_condition_mask, s390_branch_condition_mnemonic):
21034 Handle CCRAWmode compares.
21035 (s390_option_override): Default to -mhtm if available.
21036 (s390_reg_clobbered_rtx): Handle floating point regs as well.
21037 (s390_regs_ever_clobbered): Use s390_regs_ever_clobbered also for
21038 FPRs instead of df_regs_ever_live_p.
21039 (s390_optimize_nonescaping_tx): New function.
21040 (s390_init_frame_layout): Extend clobbered_regs array to cover
21041 FPRs as well.
21042 (s390_emit_prologue): Call s390_optimize_nonescaping_tx.
21043 (s390_expand_tbegin): New function.
21044 (enum s390_builtin): New enum definition.
21045 (code_for_builtin): New array definition.
21046 (s390_init_builtins): New function.
21047 (s390_expand_builtin): New function.
21048 (TARGET_INIT_BUILTINS): Define.
21049 (TARGET_EXPAND_BUILTIN): Define.
3af61095 21050 * common/config/s390/s390-common.c (processor_flags_table): Add PF_TX.
5ada7a14 21051 * config/s390/predicates.md (s390_comparison): Handle CCRAWmode.
21052 (s390_alc_comparison): Likewise.
21053 * config/s390/s390-modes.def: Add CCRAWmode.
21054 * config/s390/s390.h (processor_flags): Add PF_TX.
21055 (TARGET_CPU_HTM): Define macro.
21056 (TARGET_HTM): Define macro.
21057 (TARGET_CPU_CPP_BUILTINS): Define __HTM__ for htm.
21058 * config/s390/s390.md: Rename UNSPEC_CCU_TO_INT to
21059 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
21060 (UNSPECV_TBEGIN, UNSPECV_TBEGINC, UNSPECV_TEND, UNSPECV_TABORT)
3af61095 21061 (UNSPECV_ETND, UNSPECV_NTSTG, UNSPECV_PPA): New unspecv enum values.
5ada7a14 21062 (TBEGIN_MASK, TBEGINC_MASK): New constants.
21063 ("*cc_to_int"): Move up.
21064 ("*mov<mode>cc", "*cjump_64", "*cjump_31"): Accept integer
21065 constants other than 0.
21066 ("*ccraw_to_int"): New insn and splitter definition.
21067 ("tbegin", "tbegin_nofloat", "tbegin_retry")
21068 ("tbegin_retry_nofloat", "tbeginc", "tend", "tabort")
21069 ("tx_assist"): New expander.
21070 ("tbegin_1", "tbegin_nofloat_1", "*tbeginc_1", "*tend_1")
21071 ("*tabort_1", "etnd", "ntstg", "*ppa"): New insn definition.
21072 * config/s390/s390.opt: Add -mhtm option.
21073 * config/s390/s390-protos.h (s390_emit_jump): Add return type.
21074 * config/s390/htmxlintrin.h: New file.
21075 * config/s390/htmintrin.h: New file.
21076 * config/s390/s390intrin.h: New file.
21077 * doc/extend.texi: Document htm builtins.
21078 * config.gcc: Add the new header files to extra_headers.
21079
b1d3018a 210802013-06-26 Thomas Schwinge <thomas@codesourcery.com>
21081
21082 * config/i386/gnu.h [TARGET_LIBC_PROVIDES_SSP]
3af61095 21083 (TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Undefine.
b1d3018a 21084
ce67dec2 210852013-06-26 Michael Meissner <meissner@linux.vnet.ibm.com>
c3d2d0e4 21086 Pat Haugen <pthaugen@us.ibm.com>
21087 Peter Bergner <bergner@vnet.ibm.com>
ce67dec2 21088
21089 * config/rs6000/power8.md: New.
21090 * config/rs6000/rs6000-cpus.def (RS6000_CPU table): Adjust processor
21091 setting for power8 entry.
21092 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power8.md.
21093 * config/rs6000/rs6000.c (is_microcoded_insn, is_cracked_insn): Adjust
21094 test for Power4/Power5 only.
21095 (insn_must_be_first_in_group, insn_must_be_last_in_group): Add Power8
21096 support.
21097 (force_new_group): Adjust comment.
21098 * config/rs6000/rs6000.md: Include power8.md.
21099
1e939b24 211002013-06-26 Greta Yorsh <Greta.Yorsh@arm.com>
21101
21102 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Define macro.
21103 * config/arm/arm-protos.h (arm_max_conditional_execute): New
21104 declaration.
21105 (tune_params): Update comment.
21106 * config/arm/arm.c (arm_cortex_a15_tune): Set max_cond_insns to 2.
21107 (arm_max_conditional_execute): New function.
21108 (thumb2_final_prescan_insn): Use max_insn_skipped and
21109 MAX_INSN_PER_IT_BLOCK to compute maximum instructions in a block.
21110
bb0d2509 211112013-06-25 Jakub Jelinek <jakub@redhat.com>
21112
21113 PR tree-optimization/57705
21114 * tree-vect-loop.c (vect_is_simple_iv_evolution): Allow
21115 SSA_NAME step, provided that it is not defined inside the loop.
3af61095 21116 (vect_analyze_scalar_cycles_1): Disallow SSA_NAME step in nested loop.
bb0d2509 21117 (get_initial_def_for_induction): Handle SSA_NAME IV step.
21118
2f6c1cf4 211192013-06-25 Martin Jambor <mjambor@suse.cz>
21120
21121 PR middle-end/57670
21122 * cgraph.h (cgraph_indirect_call_info): New flag member_ptr.
21123 * ipa-prop.c (ipa_print_node_jump_functions): Mark member pointer
21124 calls in the dump.
21125 (ipa_note_param_call): Initialize member_ptr flag.
21126 (ipa_analyze_indirect_call_uses): Set member_ptr flag.
21127 (ipa_make_edge_direct_to_target): Bail out if member_ptr is set.
21128 (ipa_write_indirect_edge_info): Stream member_ptr flag.
21129 (ipa_read_indirect_edge_info): Likewise.
21130
37704d29 211312013-06-25 Richard Biener <rguenther@suse.de>
21132
21133 PR middle-end/56977
21134 * passes.c (init_optimization_passes): Move pass_fold_builtins
21135 and pass_dce earlier with -Og.
21136
f42d23fc 211372013-06-25 Eric Botcazou <ebotcazou@adacore.com>
21138
21139 * expr.c (expand_expr_real_1) <ARRAY_REF>: Fix formatting glitches.
21140 <BIT_FIELD_REF>: Remove trailing TAB.
21141 * varasm.c (output_constructor_bitfield): Fix formatting glitch and
21142 remove blank line.
21143
6c0a4a25 211442013-06-24 Martin Jambor <mjambor@suse.cz>
21145
21146 PR tree-optimization/57358
21147 * ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): New function.
21148 (ipa_compute_jump_functions_for_edge): Bail out if it returns true.
21149 (ipa_analyze_params_uses): Generate pessimistic info when true.
21150
48f42a9a 211512013-06-24 Martin Jambor <mjambor@suse.cz>
21152
21153 PR tree-optimization/57539
21154 * cgraphclones.c (cgraph_clone_node): Add parameter new_inlined_to, set
21155 global.inlined_to of the new node to it. All callers changed.
21156 * ipa-inline-transform.c (clone_inlined_nodes): New variable
21157 inlining_into, pass it to cgraph_clone_node.
21158 * ipa-prop.c (ipa_propagate_indirect_call_infos): Do not call
21159 ipa_free_edge_args_substructures.
21160 (ipa_edge_duplication_hook): Only add edges from inlined nodes to
21161 rdesc linked list. Do not assert rdesc edges have inlined caller.
21162 Assert we have found an rdesc in the rdesc list.
21163
ea1a929f 211642013-06-24 Richard Biener <rguenther@suse.de>
21165
3af61095 21166 * pointer-set.h (struct pointer_set_t): Move here from pointer-set.c.
ea1a929f 21167 (pointer_set_lookup): Declare.
21168 (class pointer_map): New template class implementing a
21169 generic pointer to T map.
21170 (pointer_map<T>::pointer_map, pointer_map<T>::~pointer_map,
21171 pointer_map<T>::contains, pointer_map<T>::insert,
21172 pointer_map<T>::traverse): New functions.
21173 * pointer-set.c (struct pointer_set_t): Moved to pointer-set.h.
21174 (pointer_set_lookup): New function.
21175 (pointer_set_contains): Use pointer_set_lookup.
21176 (pointer_set_insert): Likewise.
21177 (insert_aux): Remove.
21178 (struct pointer_map_t): Embed a pointer_set_t.
21179 (pointer_map_create): Adjust.
21180 (pointer_map_destroy): Likewise.
21181 (pointer_map_contains): Likewise.
21182 (pointer_map_insert): Likewise.
21183 (pointer_map_traverse): Likewise.
21184 * tree-streamer.h (struct streamer_tree_cache_d): Use a
21185 pointer_map<unsigned> instead of a pointer_map_t.
21186 * tree-streamer.c (streamer_tree_cache_insert_1): Adjust.
21187 (streamer_tree_cache_lookup): Likewise.
21188 (streamer_tree_cache_create): Likewise.
21189 (streamer_tree_cache_delete): Likewise.
21190 * lto-streamer.h (struct lto_tree_ref_encoder): Use a
21191 pointer_map<unsigned> instead of a pointer_map_t.
21192 (lto_init_tree_ref_encoder): Adjust.
21193 (lto_destroy_tree_ref_encoder): Likewise.
21194 * lto-section-out.c (lto_output_decl_index): Likewise.
21195 (lto_record_function_out_decl_state): Likewise.
21196 * dominance.c (iterate_fix_dominators): Use pointer_map<int>.
21197
5f751b20 211982013-06-24 Richard Biener <rguenther@suse.de>
21199
21200 PR tree-optimization/57488
21201 * tree-ssa-pre.c (insert): Clear NEW sets before each iteration.
21202
6611aa31 212032013-06-24 Alan Modra <amodra@gmail.com>
21204
21205 * config/rs6000/rs6000.c (vspltis_constant): Correct for little-endian.
21206 (gen_easy_altivec_constant): Likewise.
21207 * config/rs6000/predicates.md (easy_vector_constant_add_self,
21208 easy_vector_constant_msb): Likewise.
21209
15f8efea 212102013-06-23 Jakub Jelinek <jakub@redhat.com>
21211
21212 PR target/57688
21213 * common/config/i386/i386-common.c (ix86_handle_option): For OPT_mlzcnt
21214 add missing return true.
21215
c3d2d0e4 212162013-06-23 Oleg Endo <olegendo@gcc.gnu.org>
640c5f1f 21217
21218 PR target/52483
21219 * config/sh/predicates.md (general_extend_operand): Invoke
21220 general_movsrc_operand for memory operands.
21221 (general_movsrc_operand): Allow reg+reg addressing, do not use
21222 general_operand for memory operands.
21223
ef21d40e 212242013-06-23 Sriraman Tallam <tmsriram@google.com>
21225
21226 * config/i386/i386.c (ix86_pragma_target_parse): Restore target
21227 when current target options does not apply.
21228 * config/i386/i386-protos.h (ix86_reset_previous_fndecl): New function.
21229 * config/i386/i386.c (ix86_reset_previous_fndecl): Ditto.
3af61095 21230 * config/i386/bmiintrin.h: Pass appropriate target
21231 attributes to header.
ef21d40e 21232 * config/i386/mmintrin.h: Ditto.
21233 * config/i386/nmmintrin.h: Ditto.
21234 * config/i386/avx2intrin.h: Ditto.
21235 * config/i386/fxsrintrin.h: Ditto.
21236 * config/i386/tbmintrin.h: Ditto.
21237 * config/i386/xsaveintrin.h: Ditto.
21238 * config/i386/f16cintrin.h: Ditto.
21239 * config/i386/xtestintrin.h: Ditto.
21240 * config/i386/xsaveoptintrin.h: Ditto.
21241 * config/i386/bmi2intrin.h: Ditto.
21242 * config/i386/lzcntintrin.h: Ditto.
21243 * config/i386/smmintrin.h: Ditto.
21244 * config/i386/wmmintrin.h: Ditto.
21245 * config/i386/x86intrin.h: Remove all header include guards.
21246 * config/i386/prfchwintrin.h: Ditto.
21247 * config/i386/pmmintrin.h: Ditto.
21248 * config/i386/tmmintrin.h: Ditto.
21249 * config/i386/xmmintrin.h: Ditto.
21250 * config/i386/popcntintrin.h: Ditto.
21251 * config/i386/rdseedintrin.h: Ditto.
21252 * config/i386/ammintrin.h: Ditto.
21253 * config/i386/emmintrin.h: Ditto.
21254 * config/i386/immintrin.h: Remove all header include guards.
21255 * config/i386/fma4intrin.h: Ditto.
21256 * config/i386/lwpintrin.h: Ditto.
21257 * config/i386/xopintrin.h: Ditto.
21258 * config/i386/ia32intrin.h: Ditto.
21259 * config/i386/avxintrin.h: Ditto.
21260 * config/i386/rtmintrin.h: Ditto.
21261 * config/i386/fmaintrin.h: Ditto.
21262 * config/i386/mm3dnow.h: Ditto.
21263
cab840cb 212642013-06-22 Sriraman Tallam <tmsriram@google.com>
21265
21266 * common/config/i386/i386-common.c: Handle LZCNT.
21267
0604bcfb 212682013-06-22 Andi Kleen <ak@linux.intel.com>
21269
21270 * doc/extend.texi: Use __atomic_store_n instead of
21271 __atomic_store in HLE example.
21272
c3d2d0e4 212732013-06-22 Oleg Endo <olegendo@gcc.gnu.org>
9553eedb 21274
21275 * config/sh/sh.c: Remove <cstdlib> workaround.
21276
4aa48cf8 212772013-06-21 Andi Kleen <ak@linux.intel.com>
21278
3af61095 21279 * doc/extend.texi: Dont use __atomic_clear in HLE example. Fix typo.
4aa48cf8 21280
8e02d80e 212812013-06-21 Andi Kleen <ak@linux.intel.com>
21282
21283 * doc/extend.texi: Document that __atomic_clear and
21284 __atomic_test_and_set should only be used with bool.
21285
7371d299 212862013-06-20 Jan Hubicka <jh@suse.cz>
21287
21288 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Use
21289 types_same_for_odr.
21290 * tree.c (decls_same_for_odr): New function.
21291 (same_for_edr): New function.
21292 (types_same_for_odr): New function.
21293 (get_binfo_at_offset): Use it.
21294 * tree.h (types_same_for_odr): Declare.
21295
c3d2d0e4 212962013-06-20 Oleg Endo <olegendo@gcc.gnu.org>
d6601303 21297 Jason Merrill <jason@redhat.com>
21298
21299 * system.h: Include <cstdlib> as well as <stdlib.h>.
21300
43844d9d 213012013-06-20 Uros Bizjak <ubizjak@gmail.com>
21302
21303 PR target/57655
21304 * config/i386/i386.c (construct_container): Report error if
21305 long double is used with disabled x87 float returns.
21306
fdbe58cf 213072013-06-20 Jan Hubicka <jh@suse.cz>
21308
21309 * lto-cgraph.c (input_symtab): Do not set cgraph state.
21310
c3d2d0e4 213112013-06-20 Joern Rennecke <joern.rennecke@embecosm.com>
cb456db5 21312
21313 PR rtl-optimization/57425
21314 PR rtl-optimization/57569
21315 * alias.c (write_dependence_p): Remove parameters mem_mode and
21316 canon_mem_addr. Add parameters x_mode, x_addr and x_canonicalized.
21317 Changed all callers.
21318 (canon_anti_dependence): Get comments and semantics in sync.
21319 Add parameter mem_canonicalized. Changed all callers.
21320 * rtl.h (canon_anti_dependence): Update prototype.
21321
ab4542eb 213222013-06-20 Richard Biener <rguenther@suse.de>
21323
21324 * data-streamer-in.c (streamer_read_uhwi): Optimize single
21325 byte case, inline streamer_read_uchar and defer section
21326 overrun check.
21327
d51283e3 213282013-06-20 Richard Biener <rguenther@suse.de>
21329
21330 PR tree-optimization/57584
21331 * tree-ssa-loop-niter.c (expand_simple_operations): Avoid including
21332 SSA names into the expanded expression that take part in
21333 abnormal coalescing.
21334
5f7f04d8 213352013-06-19 Sharad Singhai <singhai@google.com>
fafee80b 21336
21337 * gcov.c (print_usage): Handle new option.
21338 (process_args): Ditto.
21339 (get_gcov_intermediate_filename): New function.
21340 (output_intermediate_file): New function.
21341 (output_gcov_file): New function
21342 (generate_results): Handle new option.
21343 (release_function): Relase demangled name.
21344 (read_graph_file): Handle demangled name.
21345 (output_lines): Ditto.
21346 * doc/gcov.texi: Document gcov intermediate format.
21347
6c397456 213482013-06-19 Vladimir Makarov <vmakarov@redhat.com>
21349
21350 PR bootstrap/57604
21351 * lra.c (emit_add3_insn, emit_add2_insn): New functions.
21352 (lra_emit_add): Use the functions. Add comment about Y as an
21353 address segment.
21354
908e0747 213552013-06-19 David Edelsohn <dje.gcc@gmail.com>
21356
21357 PR driver/57652
21358 * collect2.c (collect_atexit): New.
21359 (collect_exit): Delete.
21360 (main): Register collect_atexit with atexit.
21361 (collect_wait): Change collect_exit to exit.
21362 (do_wait): Same.
21363 * collect2.h (collect_exit): Delete.
21364 * tlink.c (do_tlink): Rename exit to ret. Change collect_exit to exit.
21365
febd1624 213662013-06-19 Wei Mi <wmi@google.com>
21367
21368 PR rtl-optimization/57518
21369 * ira.c (set_paradoxical_subreg): Set pdx_subregs[regno]
21370 if regno is used in paradoxical subreg.
21371 (update_equiv_regs): Check pdx_subregs[regno] before
21372 set a reg to be equivalent with a mem.
21373
0dc1ebca 213742013-06-19 Matthias Klose <doko@ubuntu.com>
21375
21376 PR driver/57651
21377 * file-find.h (find_a_file): Add a mode parameter.
21378 * file-find.c (find_a_file): Likewise.
21379 * gcc-ar.c (main): Call find_a_file with R_OK for the plugin,
21380 with X_OK for the executables.
21381 * collect2.c (main): Call find_a_file with X_OK.
21382
b6c75192 213832013-06-19 Steve Ellcey <sellcey@mips.com>
21384
21385 PR target/56942
21386 * config/mips/mips.md (casesi_internal_mips16_<mode>):
21387 Use NEXT_INSN instead of next_real_insn.
21388
df8d3e89 213892013-06-19 Jan Hubicka <jh@suse.cz>
21390
21391 * cgraph.h (const_value_known_p): Replace by ...
21392 (ctor_for_folding): .. this one.
21393 * cgraphunit.c (process_function_and_variable_attributes): Use it.
21394 * lto-cgraph.c (compute_ltrans_boundary): Use ctor_for_folding.
21395 * expr.c (expand_expr_real_1): Likewise.
21396 (string_constant): Likewise.
21397 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
21398 * ipa.c (process_references): Likewise.
21399 (symtab_remove_unreachable_nodes): Likewise.
21400 * ipa-inline-analysis.c (param_change_prob): Likewise.
21401 * gimple-fold.c (canonicalize_constructor_val): Likewise.
21402 (get_base_constructor): Likwise.
21403 * varpool.c (varpool_remove_node): Likewise.
21404 (varpool_remove_initializer): LIkewise.
21405 (dump_varpool_node): LIkwise.
21406 (const_value_known_p): Rewrite to ...
21407 (ctor_for_folding): ... this one.
21408
a90c63ff 214092013-06-19 Jakub Jelinek <jakub@redhat.com>
21410
21411 PR driver/57651
21412 * gcc-ar.c (main): If not CROSS_DIRECTORY_STRUCTURE, look for
21413 PERSONALITY in $PATH derived prefixes.
21414
16bc66ec 214152013-06-19 Jeff Law <law@redhat.com>
21416
040f64e5 21417 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): Fix typo
21418 in comment.
21419
16bc66ec 21420 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): New function.
21421 (simplify_bitwise_binary): Use it to simpify certain binary ops on
21422 booleans.
21423
70e6ce19 214242013-06-19 Sofiane Naci <sofiane.naci@arm.com>
21425
21426 * config/arm/vfp.md: Move VFP instruction classification documentation
21427 to ...
21428 * config/arm/arm.md: ... here. Update instruction classification
21429 documentation.
21430
98562479 214312013-06-19 Richard Earnshaw <rearnsha@arm.com>
21432
21433 arm.md (split for eq(reg, 0)): Add variants for ARMv5 and Thumb2.
21434 (peepholes for eq(reg, not-0)): Ensure condition register is dead after
21435 pattern. Use more efficient sequences on ARMv5 and Thumb2.
21436
0cd9a9a9 214372013-06-19 Steven Bosscher <steven@gcc.gnu.org>
21438
21439 PR target/57609
21440 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
21441 with NEXT_INSN. Use tablejump_p to check for jump table data
21442 insns.
21443
3390dcc4 214442013-06-19 Paolo Carlini <paolo.carlini@oracle.com>
21445
21446 PR c++/56544
21447 * doc/cpp.texi [Standard Predefined Macros, __cplusplus]: Document
21448 that now in C++ the value is correct per the C++ standards.
21449
7871778b 214502013-06-19 Richard Biener <rguenther@suse.de>
21451
21452 * expr.c (expand_expr_real_1): Use SCOPE_FILE_SCOPE_P to check
21453 for global context.
21454
c8de5323 214552013-06-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21456
21457 Revert:
21458 2013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21459
21460 PR target/57609
21461 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
21462 with next_active_insn.
21463
3bc4161a 214642013-06-18 Sriraman Tallam <tmsriram@google.com>
21465
21466 * ipa-inline.c (inline_always_inline_functions): Pretend always_inline
21467 functions are inlined during failures to flag an error.
21468 * tree-inline.c (expand_call_inline): Allow the error to be flagged
21469 in early inline pass.
3b9449a5 21470
e8df52ad 214712013-06-18 H.J. Lu <hongjiu.lu@intel.com>
21472
21473 * config/i386/i386.c (initial_ix86_tune_features): Fix a typo
21474 in comments.
21475
1c2054e4 214762013-06-18 Julian Brown <julian@codesourcery.com>
21477
21478 * config/arm/arm.c (neon_vector_mem_operand): Add strict argument.
21479 Permit virtual register pre-reload if !strict.
21480 (coproc_secondary_reload_class): Adjust for neon_vector_mem_operand
21481 change.
21482 * config/arm/arm-protos.h (neon_vector_mem_operand): Adjust
21483 prototype.
21484 * config/arm/neon.md (movmisalign<mode>): Use
21485 neon_perm_struct_or_reg_operand instead of
21486 neon_struct_or_register_operand.
21487 (*movmisalign<mode>_neon_load, *movmisalign<mode>_neon_store): Use
21488 neon_permissive_struct_operand instead of neon_struct_operand.
21489 * config/arm/constraints.md (Un, Um, Us): Adjust calls to
21490 neon_vector_mem_operand.
21491 * config/arm/predicates.md (neon_struct_operand): Adjust call to
21492 neon_vector_mem_operand.
21493 (neon_permissive_struct_operand): New.
21494 (neon_struct_or_register_operand): Rename to...
21495 (neon_perm_struct_or_reg_operand): This. Adjust call to
21496 neon_vector_mem_operand.
21497
32d76803 214982013-06-18 Richard Biener <rguenther@suse.de>
21499
21500 * Makefile.in (LTO_STREAMER_H): Add pointer-set.h dependency.
21501 * lto-streamer.h: Include pointer-set.h.
21502 (struct lto_decl_slot): Remove.
21503 (struct lto_tree_ref_encoder): Make tree_hash_table a pointer-map.
21504 Remove next_index entry.
21505 (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
21506 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
21507 (lto_init_tree_ref_encoder): Adjust.
21508 (lto_destroy_tree_ref_encoder): Likewise.
21509 * lto-section-out.c (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
21510 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
21511 (lto_output_decl_index): Adjust.
21512 (lto_new_out_decl_state): Likewise.
21513 (lto_record_function_out_decl_state): Likewise.
21514 * lto-streamer-out.c (copy_function): Likewise.
21515
7eacb0dd 215162013-06-18 Richard Biener <rguenther@suse.de>
21517
21518 * Makefile.in (cgraphunit.o): Add $(CFGLOOP_H) dependency.
21519 * cgraphunit.c: Include cfgloop.h.
21520 (init_lowered_empty_function): Initialize the loop tree.
21521 (assemble_thunk): Insert new BBs into loops.
21522
be1cd111 215232013-06-18 Richard Biener <rguenther@suse.de>
21524
21525 * tree-streamer.h (streamer_tree_cache_create): Adjust prototype.
21526 * tree-streamer.c (streamer_tree_cache_create): Make maintaining
21527 the map from cache entry to cache index optional.
21528 (streamer_tree_cache_replace_tree): Adjust accordingly.
21529 (streamer_tree_cache_append): Likewise.
21530 (streamer_tree_cache_delete): Likewise.
21531 * lto-streamer-in.c (lto_data_in_create): Do not maintain the
21532 streamer cache map from cache entry to cache index.
21533 * lto-streamer-out.c (create_output_block): Adjust.
21534
9da0ec36 215352013-06-18 Sofiane Naci <sofiane.naci@arm.com>
21536
3b9449a5 21537 * config/arm/arm.md (attribute "insn"): Move multiplication and
21538 division attributes to...
9da0ec36 21539 (attribute "type"): ... here. Remove mult.
21540 (attribute "mul32"): New attribute.
21541 (attribute "mul64"): Add umaal.
21542 (*arm_mulsi3): Update attributes.
21543 (*arm_mulsi3_v6): Likewise.
21544 (*thumb_mulsi3): Likewise.
21545 (*thumb_mulsi3_v6): Likewise.
21546 (*mulsi3_compare0): Likewise.
21547 (*mulsi3_compare0_v6): Likewise.
21548 (*mulsi_compare0_scratch): Likewise.
21549 (*mulsi_compare0_scratch_v6): Likewise.
21550 (*mulsi3addsi): Likewise.
21551 (*mulsi3addsi_v6): Likewise.
21552 (*mulsi3addsi_compare0): Likewise.
21553 (*mulsi3addsi_compare0_v6): Likewise.
21554 (*mulsi3addsi_compare0_scratch): Likewise.
21555 (*mulsi3addsi_compare0_scratch_v6): Likewise.
21556 (*mulsi3subsi): Likewise.
21557 (*mulsidi3adddi): Likewise.
21558 (*mulsi3addsi_v6): Likewise.
21559 (*mulsidi3adddi_v6): Likewise.
21560 (*mulsidi3_nov6): Likewise.
21561 (*mulsidi3_v6): Likewise.
21562 (*umulsidi3_nov6): Likewise.
21563 (*umulsidi3_v6): Likewise.
21564 (*umulsidi3adddi): Likewise.
21565 (*umulsidi3adddi_v6): Likewise.
21566 (*smulsi3_highpart_nov6): Likewise.
21567 (*smulsi3_highpart_v6): Likewise.
21568 (*umulsi3_highpart_nov6): Likewise.
21569 (*umulsi3_highpart_v6): Likewise.
21570 (mulhisi3): Likewise.
21571 (*mulhisi3tb): Likewise.
21572 (*mulhisi3bt): Likewise.
21573 (*mulhisi3tt): Likewise.
21574 (maddhisi4): Likewise.
21575 (*maddhisi4tb): Likewise.
21576 (*maddhisi4tt): Likewise.
21577 (maddhidi4): Likewise.
21578 (*maddhidi4tb): Likewise.
21579 (*maddhidi4tt): Likewise.
21580 (divsi3): Likewise.
21581 (udivsi3): Likewise.
21582 * config/arm/thumb2.md (thumb2_mulsi_short): Update attributes.
21583 (thumb2_mulsi_short_compare0): Likewise.
21584 (thumb2_mulsi_short_compare0_scratch): Likewise.
21585 * config/arm/arm1020e.md (1020mult1): Update attribute change.
21586 (1020mult2): Likewise.
21587 (1020mult3): Likewise.
21588 (1020mult4): Likewise.
21589 (1020mult5): Likewise.
21590 (1020mult6): Likewise.
3b9449a5 21591 * config/arm/cortex-a15.md (cortex_a15_mult32): Update attribute
21592 change.
9da0ec36 21593 (cortex_a15_mult64): Likewise.
21594 (cortex_a15_sdiv): Likewise.
21595 (cortex_a15_udiv): Likewise.
21596 * config/arm/arm1026ejs.md (mult1): Update attribute change.
21597 (mult2): Likewise.
21598 (mult3): Likewise.
21599 (mult4): Likewise.
21600 (mult5): Likewise.
21601 (mult6): Likewise.
21602 * config/arm/marvell-pj4.md (pj4_ir_mul): Update attribute change.
21603 (pj4_ir_div): Likewise.
21604 * config/arm/arm1136jfs.md (11_mult1): Update attribute change.
21605 (11_mult2): Likewise.
21606 (11_mult3): Likewise.
21607 (11_mult4): Likewise.
21608 (11_mult5): Likewise.
21609 (11_mult6): Likewise.
21610 (11_mult7): Likewise.
21611 * config/arm/cortex-a8.md (cortex_a8_mul): Update attribute change.
21612 (cortex_a8_mla): Likewise.
21613 (cortex_a8_mull): Likewise.
21614 (cortex_a8_smulwy): Likewise.
21615 (cortex_a8_smlald): Likewise.
21616 * config/arm/cortex-m4.md (cortex_m4_alu): Update attribute change.
21617 * config/arm/cortex-r4.md (cortex_r4_mul_4): Update attribute change.
21618 (cortex_r4_mul_3): Likewise.
21619 (cortex_r4_mla_4): Likewise.
21620 (cortex_r4_mla_3): Likewise.
21621 (cortex_r4_smlald): Likewise.
21622 (cortex_r4_mull): Likewise.
21623 (cortex_r4_sdiv): Likewise.
21624 (cortex_r4_udiv): Likewise.
21625 * config/arm/cortex-a7.md (cortex_a7_mul): Update attribute change.
21626 (cortex_a7_idiv): Likewise.
21627 * config/arm/arm926ejs.md (9_mult1): Update attribute change.
21628 (9_mult2): Likewise.
21629 (9_mult3): Likewise.
21630 (9_mult4): Likewise.
21631 (9_mult5): Likewise.
21632 (9_mult6): Likewise.
21633 * config/arm/cortex-a53.md (cortex_a53_mul): Update attribute change.
21634 (cortex_a53_sdiv): Likewise.
21635 (cortex_a53_udiv): Likewise.
21636 * config/arm/fa726te.md (726te_mult_op): Update attribute change.
21637 * config/arm/fmp626.md (mp626_mult1): Update attribute change.
21638 (mp626_mult2): Likewise.
21639 (mp626_mult3): Likewise.
21640 (mp626_mult4): Likewise.
21641 * config/arm/fa526.md (526_mult1): Update attribute change.
21642 (526_mult2): Likewise.
21643 * config/arm/arm-generic.md (mult): Update attribute change.
21644 (mult_ldsched_strongarm): Likewise.
21645 (mult_ldsched): Likewise.
21646 (multi_cycle): Likewise.
21647 * config/arm/cortex-a5.md (cortex_a5_mul): Update attribute change.
21648 * config/arm/fa606te.md (606te_mult1): Update attribute change.
21649 (606te_mult2): Likewise.
21650 (606te_mult3): Likewise.
21651 (606te_mult4): Likewise.
21652 * config/arm/cortex-a9.md (cortex_a9_mult16): Update attribute change.
21653 (cortex_a9_mac16): Likewise.
21654 (cortex_a9_multiply): Likewise.
21655 (cortex_a9_mac): Likewise.
21656 (cortex_a9_multiply_long): Likewise.
21657 * config/arm/fa626te.md (626te_mult1): Update attribute change.
21658 (626te_mult2): Likewise.
21659 (626te_mult3): Likewise.
21660 (626te_mult4): Likewise.
21661
97e13fca 216622013-06-18 Richard Biener <rguenther@suse.de>
21663
21664 PR lto/57334
21665 * lto-symtab.c (lto_symtab_merge_decls): Process nodes properly.
21666
f5cf1225 216672013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21668
21669 PR target/57609
21670 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
21671 with next_active_insn.
21672
efb66c8d 216732013-06-18 Alan Modra <amodra@gmail.com>
21674
21675 * config/rs6000/rs6000.h (enum data_align): New.
21676 (LOCAL_ALIGNMENT, DATA_ALIGNMENT): Use rs6000_data_alignment.
21677 (DATA_ABI_ALIGNMENT): Define.
21678 (CONSTANT_ALIGNMENT): Correct comment.
21679 * config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare.
21680 * config/rs6000/rs6000.c (rs6000_data_alignment): New function.
21681
98044fac 216822013-06-17 David Malcolm <dmalcolm@redhat.com>
21683
21684 * ggc-page.c (ggc_pch_write_object) <d>: Remove erroneous
21685 ATTRIBUTE_UNUSED marking.
21686
fcd3260c 216872013-06-17 Sofiane Naci <sofiane.naci@arm.com>
21688
21689 * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>): Add r<-w
21690 alternative and update.
21691 (aarch64_dup_lanedi): Delete.
21692 * config/aarch64/arm_neon.h (vdup<bhsd>_lane_*): Update.
21693 * config/aarch64/aarch64-simd-builtins.def: Update.
21694
8ceff600 216952013-06-17 Richard Biener <rguenther@suse.de>
21696
21697 * lto-streamer.h (enum LTO_tags): Add LTO_tree_scc.
21698 (lto_input_scc): Declare.
21699 (lto_input_tree_1): Likewise.
21700 (struct lto_stats_d): Add num_tree_bodies_output and
21701 num_pickle_refs_output.
21702 * lto-streamer-in.c (lto_read_body): Use streamer_tree_cache_get_tree.
21703 (lto_read_tree_1): Split out from ...
21704 (lto_read_tree): ... this.
21705 (lto_input_scc): New function.
21706 (lto_input_tree_1): Split out from ...
21707 (lto_input_tree): ... this. Handle LTO_tree_scc.
21708 (lto_data_in_create): Create the streamer cache without hashes.
21709 * lto-streamer-out.c (create_output_block): Create the streamer
21710 cache with hashes when not doing WPA.
21711 (lto_write_tree_1): Split out from ...
21712 (lto_write_tree): ... this.
21713 (get_symbol_initial_value): New function.
21714 (lto_output_tree_1): Split out from ...
21715 (lto_output_tree): ... this. Write trees as series of SCCs
21716 using a DFS walk via DFS_write_tree.
21717 (struct sccs, struct scc_entry): New types.
21718 (next_dfs_num, sccstack, sccstate, sccstate_obstack): New globals.
21719 (DFS_write_tree_body): New function.
21720 (DFS_write_tree): Likewise.
21721 (hash_tree): Likewise.
21722 (scc_entry_compare): Likewise.
21723 (hash_scc): Likewise.
21724 (tree_is_indexable): DEBUG_EXPR_DECLs are local entities.
21725 * tree-streamer-in.c (lto_input_ts_list_tree_pointers): Stream
21726 TREE_CHAIN as regular reference.
21727 (streamer_read_integer_cst): Remove.
21728 (streamer_get_pickled_tree): Adjust.
21729 * tree-streamer-out.c (streamer_write_chain): Disable streaming
21730 of DECL_EXTERNALs in BLOCK_VARS for now.
21731 (write_ts_list_tree_pointers): Stream TREE_CHAIN as regular
21732 reference.
21733 * tree-streamer.c (streamer_tree_cache_add_to_node_array):
21734 Add hash value argument and record that if hashes are recorded
21735 in the cache.
21736 (streamer_tree_cache_insert_1): Adjust.
21737 (streamer_tree_cache_insert): Likewise.
21738 (streamer_tree_cache_insert_at): Rename to ...
21739 (streamer_tree_cache_replace_tree): ... this and adjust.
21740 (streamer_tree_cache_append): Adjust.
21741 (record_common_node): Likewise.
21742 (streamer_tree_cache_create): Add argument whether to
21743 record hash values together with trees.
21744 (streamer_tree_cache_delete): Adjust.
21745 * tree-streamer.h (struct streamer_tree_cache_d): Add
21746 vector of hashes.
21747 (streamer_read_integer_cst): Remove.
21748 (streamer_tree_cache_insert): Adjust.
21749 (streamer_tree_cache_append): Likewise.
21750 (streamer_tree_cache_insert_at): Rename to ...
21751 (streamer_tree_cache_replace_tree): ... this and adjust.
21752 (streamer_tree_cache_create): Add argument whether to record hashes.
21753 (streamer_tree_cache_get): Rename to ...
21754 (streamer_tree_cache_get_tree): ... this.
21755 (streamer_tree_cache_get_hash): New function.
21756 * tree.c (cache_integer_cst): New function.
21757 * tree.h (cache_integer_cst): Declare.
21758 (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Move here from cp/cp-tree.h.
21759 * lto-symtab.c (lto_varpool_replace_node): Only release
21760 DECL_INITIAL of non-prevailing decls.
21761 * varpool.c (varpool_remove_initializer): Do not release
21762 DECL_INITIAL when we are still in CGRAPH_LTO_STREAMING.
21763
0b4e9fcd 217642013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
21765
21766 * config/mips/mips.h (ISA_HAS_MUL3): Include TARGET_MIPS5900.
21767 (ISA_HAS_MULT, ISA_HAS_DMULT, ISA_HAS_DIV, ISA_HAS_DDIV): New macros.
21768 * config/mips/mips.md (mul<mode>3, mul<mode>3_internal)
21769 (mul<mode>3_r4000): Require ISA_HAS_<D>MULT.
21770 (mul<mode>3_mul3): Handle TARGET_MIPS5900.
21771 (mulsidi3_64bit_dmul): Remove redundant TARGET_64BIT test.
21772 (<su>muldi3_highpart, <su>muldi3_highpart_internal, <u>mulditi3)
21773 (<u>mulditi3_internal, <u>mulditi3_r4000): Require ISA_HAS_DMULT
21774 instead of TARGET_64BIT.
21775 (divmod<mode>4, udivmod<mode>4, <u>divmod<GPR:mode>4_hilo_<HILO:mode>):
21776 Require ISA_HAS_<D>DIV.
21777
61ad2260 217782013-06-16 Richard Sandiford <rdsandiford@googlemail.com>
21779
21780 * config.gcc (mips*-mti-linux*, mips64*-*-linux*, mipsisa64*-*-linux*)
21781 (mips*-*-linux*): Move default with_llsc setting to where other
21782 defaults are set.
21783 (mips*-*-vxworks*): Move with_arch default from with_cpu block to
21784 with_arch block.
21785 (mips64r5900-*-*, mips64r5900el-*-*, mipsr5900-*-*, mipsr5900el-*-*):
21786 Likewise. Remove default with_tune setting. Move default float
21787 setting to its own block. Handle with_llsc in the same block as above.
21788
c3d2d0e4 217892013-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
ddba76b8 21790
21791 PR rtl-optimization/57425
21792 PR rtl-optimization/57569
f28ea912 21793 * alias.c (write_dependence_p): Add new parameters mem_mode,
ddba76b8 21794 canon_mem_addr and mem_canonicalized. Change type of writep to bool.
21795 Changed all callers.
21796 (canon_anti_dependence): New function.
21797 * cse.c (check_dependence): Use canon_anti_dependence.
21798 * cselib.c (cselib_invalidate_mem): Likewise.
21799 * rtl.h (canon_anti_dependence): Declare.
21800
5e524dea 218012013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
21802
21803 * config/mips/mips.h (ISA_HAS_LL_SC): Exclude TARGET_MIPS5900.
21804 * config/mips/mips.c (mips_start_ll_sc_sync_block): Output
21805 ".set mips3" for 64-bit targets.
21806
341de017 218072013-06-15 Dehao Chen <dehao@google.com>
21808
21809 * tree-flow.h (gimple_check_call_matching_types): Add new argument.
21810 * gimple-low.c (gimple_check_call_matching_types): Likewise.
21811 (gimple_check_call_args): Likewise.
21812 * value-prof.c (check_ic_target): Likewise.
21813 * ipa-inline.c (early_inliner): Likewise.
21814 * ipa-prop.c (update_indirect_edges_after_inlining): Likewise.
21815 * cgraph.c (cgraph_create_edge_1): Likewise.
21816 (cgraph_make_edge_direct): Likewise.
21817
7a57f216 218182013-06-14 Michael Meissner <meissner@linux.vnet.ibm.com>
21819
21820 PR target/57615
21821 * config/rs6000/rs6000.md (mov<mode>_ppc64): Call
21822 rs6000_output_move_128bit to handle emitting quad memory
21823 operations. Set attribute length to 8 bytes.
21824
c3d2d0e4 218252013-06-14 Vidya Praveen <vidyapraveen@arm.com>
74375e70 21826
21827 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_lo<mode>):
21828 New pattern.
21829 (aarch64_<su>mlal_hi<mode>, aarch64_<su>mlsl_lo<mode>): Likewise.
21830 (aarch64_<su>mlsl_hi<mode>, aarch64_<su>mlal<mode>): Likewise.
21831 (aarch64_<su>mlsl<mode>): Likewise.
21832
e7a88601 218332013-06-14 Mike Stump <mikestump@comcast.net>
21834
21835 * Makefile.in (TARGET_H): Add insn-codes.h.
21836
780871fb 218372013-06-14 Alan Modra <amodra@gmail.com>
21838
21839 PR middle-end/57134
21840 PR middle-end/57586
21841 * expr.c (expand_expr_real_1 <normal_inner_ref>): Pass
21842 EXPAND_MEMORY and EXPAND_WRITE to recursive call. Don't use
21843 bitfield expansion when EXPAND_MEMORY.
21844 (expand_expr_real_1 <VIEW_CONVERT_EXPR>): Pass modifier likewise.
21845
8a4a56e3 218462013-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
21847
21848 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
21849 test for clearing quad memory on 32-bit later.
21850
4895a1c6 218512013-06-13 Marc Glisse <marc.glisse@inria.fr>
21852
21853 * fold-const.c (negate_expr_p): Handle VECTOR_CST.
21854 (fold_negate_expr): Likewise.
21855 (fold_real_zero_addition_p): Handle vectors.
21856 (fold_binary_loc) <PLUS_EXPR, MINUS_EXPR>: Likewise.
21857
9db6f2e0 218582013-06-14 Alan Modra <amodra@gmail.com>
21859
21860 * varasm.c (force_const_mem): Revert 2013-06-07 change.
21861
a1d135c3 218622013-06-13 Jan Hubicka <jh@suse.cz>
21863
21864 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
21865 Local comdats are not externally visible.
21866 * symtab.c (dump_symtab_base): Dump externally visible.
21867 (verify_symtab_base): Verify back links in the symtab hash.
21868
fb4441fa 218692013-06-13 Bin Cheng <bin.cheng@arm.com>
21870
21871 * fold-const.c (operand_equal_p): Consider NOP_EXPR and
21872 CONVERT_EXPR as equal nodes.
21873
3f0def8e 218742013-06-13 Bin Cheng <bin.cheng@arm.com>
21875
3b9449a5 21876 * rtlanal.c (noop_move_p): Check the code to be executed for COND_EXEC.
3f0def8e 21877
2c83a45e 218782013-06-13 Marc Glisse <marc.glisse@inria.fr>
21879
21880 * tree-ssa-forwprop.c (simplify_bitwise_binary, associate_plusminus):
21881 Generalize to complex and vector.
21882 * tree.c (build_all_ones_cst): New function.
21883 * tree.h (build_all_ones_cst): Declare it.
21884
74a1167a 218852013-06-13 Alan Modra <amodra@gmail.com>
21886
21887 * config/rs6000/rs6000.h (LONG_DOUBLE_LARGE_FIRST): Define.
21888 * config/rs6000/rs6000.md (signbittf2): New insn.
21889 (extenddftf2_internal): Use LONG_DOUBLE_LARGE_FIRST.
21890 (abstf2_internal, cmptf_internal2): Likewise.
21891 * config/rs6000/spe.md (spe_abstf2_cmp, spe_abstf2_tst): Likewise.
21892
488befe3 218932013-06-12 Michael Meissner <meissner@linux.vnet.ibm.com>
c3d2d0e4 21894 Pat Haugen <pthaugen@us.ibm.com>
21895 Peter Bergner <bergner@vnet.ibm.com>
488befe3 21896
21897 * config/rs6000/rs6000.c (emit_load_locked): Add support for
21898 power8 byte, half-word, and quad-word atomic instructions.
21899 (emit_store_conditional): Likewise.
21900 (rs6000_expand_atomic_compare_and_swap): Likewise.
21901 (rs6000_expand_atomic_op): Likewise.
21902
21903 * config/rs6000/sync.md (larx): Add new modes for power8.
21904 (stcx): Likewise.
21905 (AINT): New mode iterator to include TImode as well as normal
21906 integer modes on power8.
21907 (fetchop_pred): Use int_reg_operand instead of gpc_reg_operand so
21908 that VSX registers are not considered. Use AINT mode iterator
21909 instead of INT1 to allow inclusion of quad word atomic operations
21910 on power8.
21911 (load_locked<mode>): Likewise.
21912 (store_conditional<mode>): Likewise.
21913 (atomic_compare_and_swap<mode>): Likewise.
21914 (atomic_exchange<mode>): Likewise.
21915 (atomic_nand<mode>): Likewise.
21916 (atomic_fetch_<fetchop_name><mode>): Likewise.
21917 (atomic_nand_fetch<mode>): Likewise.
21918 (mem_thread_fence): Use gen_loadsync_<mode> instead of enumerating
21919 each type.
21920 (ATOMIC): On power8, add QImode, HImode modes.
21921 (load_locked<QHI:mode>_si): Varients of load_locked for QI/HI
21922 modes that promote to SImode.
21923 (load_lockedti): Convert TImode arguments to PTImode, so that we
21924 get a guaranteed even/odd register pair.
21925 (load_lockedpti): Likewise.
21926 (store_conditionalti): Likewise.
21927 (store_conditionalpti): Likewise.
21928
21929 * config/rs6000/rs6000.md (QHI): New mode iterator for power8
21930 atomic load/store instructions.
21931 (HSI): Likewise.
21932
885edc78 219332013-06-12 Richard Sandiford <rdsandiford@googlemail.com>
21934
21935 * config/mips/mips.md (extended_mips16): Include GOT and constant-pool
21936 loads.
21937 (insn_count): New attribute, with most cases extracted from...
21938 (length): ...here. Redefine most cases in terms of insn_count.
21939 (single_insn): Delete.
21940 (can_delay): Use insn_count to check for single instructions.
21941 (*mul<mode>3_r4300, mul<mode>3_r4000, *mul_acc_si, *mul_acc_si_r3900)
21942 (*msac_using_macc, *mul_sub_si, <u>mulsidi3_32bit_r4000)
21943 (<u>mulsidi3_64bit_r4000, <su>muldi3_highpart_internal)
21944 (<su>mulsi3_highpart_split, <su>muldi3_highpart_internal)
21945 (<u>mulditi3_r4000, *div<mode>3, *recip<mode>3, divmod<mode>4)
21946 (udivmod<mode>4, sqrt<mode>2, *rsqrt<mode>a, *rsqrt<mode>b)
21947 (fix_truncdfsi2_macro, fix_truncsfsi2_macro, *lea_high64)
21948 (*lea64, cprestore_<mode>, clear_hazard_<mode>, <unnamed insn>)
21949 (casesi_internal_mips16_<mode>, *tls_get_tp_<mode>_split)
21950 (tls_get_tp_mips16, *tls_get_tp_mips16_call_<mode>): Use "insn_count"
21951 rather than "length".
21952 (tls_get_tp_<mode>): Likewise. Remove redundant "no_delay" attribute.
21953 * config/mips/mips-ps-3d.md (mips_c_cond_4s, mips_cabs_cond_4s):
21954 Use "insn_count" rather than "length".
21955 * config/mips/mips-dsp.md
21956 (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>)
21957 (mips_l<GPR:size>x_<P:mode>, *mips_lw<u>x_<P:mode>_ext): Remove
21958 length attributes.
21959
7855598c 219602013-06-12 Marc Glisse <marc.glisse@inria.fr>
21961
21962 PR tree-optimization/57361
21963 * tree-ssa-dse.c (dse_possible_dead_store_p): Handle self-assignment.
21964
d820433c 219652013-06-12 Sofiane Naci <sofiane.naci@arm.com>
21966
3b9449a5 21967 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Convert
21968 to split.
d820433c 21969 (aarch64_simd_combine<mode>): New instruction expansion.
21970 * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine): New
21971 function prototype.
21972 * config/aarch64/aarch64.c (aarch64_split_combine): New function.
21973 * config/aarch64/iterators.md (Vdbl): Add entry for DF.
21974
da4b8721 219752013-06-12 Jan Hubicka <jh@suse.cz>
21976
21977 * cgraph.c (verify_edge_corresponds_to_fndecl): Be lax about
21978 decl has when in streaming stage.
21979 * lto-symtab.c (lto_symtab_merge_symbols): Likewise.
21980 * cgraph.h (cgraph_state): Add CGRAPH_LTO_STREAMING.
21981
c3d2d0e4 219822013-06-12 Roland Stigge <stigge@antcom.de>
e7346145 21983
21984 PR target/57578
21985 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Fix SPE version detection.
21986
d82cd73d 219872013-06-12 Jakub Jelinek <jakub@redhat.com>
21988
21989 PR tree-optimization/57537
21990 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): If
21991 vect_handle_widen_op_by_const, convert oprnd1 to half_type1.
21992
2f5bed2a 219932013-06-12 Richard Biener <rguenther@suse.de>
21994
21995 * data-streamer.h (streamer_write_char_stream): CSE
21996 obs->current_pointer.
21997 * data-streamer-out.c (streamer_write_uhwi_stream): Inline
21998 streamer_write_char_stream manually and optimize the resulting loop.
21999 (streamer_write_hwi_stream): Likewise.
22000
9e9c3e92 220012013-06-12 Jan Hubicka <jh@suse.cz>
22002
22003 * lto-symtab.c (lto_symtab_merge_symbols): Populate symtab hashtable.
22004 * cgraph.h (varpool_create_empty_node): Declare.
22005 * lto-cgraph.c (input_node, input_varpool_node): Forcingly create
22006 duplicated nodes.
22007 * symtab.c (symtab_unregister_node): Be lax about missin entries
22008 in node hash.
22009 (symtab_get_node): Update comment.
22010 * varpool.c (varpool_create_empty_node): Break out from ...
22011 (varpool_node_for_decl): ... here.
22012 * lto-streamer.h (lto_file_decl_data): Add RESOLUTION_MAP.
22013
e9b15297 220142013-06-12 Eric Botcazou <ebotcazou@adacore.com>
22015
22016 * expr.c (expand_expr_real_1) <TARGET_MEM_REF>: Use straight-line flow.
22017 <MEM_REF>: Use 'type' instead of TREE_TYPE (exp) and tidy up the first
22018 part. Use straight-line flow at the end.
22019 <COMPONENT_REF>: Remove superfluous else.
22020 <VIEW_CONVERT_EXPR>: Use 'type' instead of TREE_TYPE (exp).
22021
5658fec0 220222013-06-12 Jakub Jelinek <jakub@redhat.com>
22023
22024 PR target/56564
22025 * varasm.c (decl_binds_to_current_def_p): Call binds_local_p
22026 target hook even for !TREE_PUBLIC decls. If no resolution info
22027 is available, return false for common and external decls.
22028
bb56c23a 220292013-06-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
22030
22031 * config/rl78/constraints.md (U): New constraint.
22032 * config/rl78/rl78.md (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): Add
22033 valloc attribute.
22034
8f88661d 220352013-06-11 Michael Meissner <meissner@linux.vnet.ibm.com>
22036
22037 PR target/57589
22038 * config/rs6000/driver-rs6000.c (elf_platform): Make buffer static
22039 to allow returning address to AT_PLATFORM name.
22040
f2526cce 220412013-06-11 Jan Hubicka <jh@suse.cz>
22042
22043 * cgraph.c (cgraph_create_function_alias): Set weakref flag.
22044 * cgraph.h (symtab_node_base): Add weakref flag.
22045 * cgraphunit.c (cgraph_reset_node): Clear weakref flag.
22046 (handle_alias_pairs): Set weakref flag, do not set DECL_EXTERNAL.
22047 (output_weakrefs): Use weakref flag.
22048 * fold-const.c (simple_operand_p): Handle WEAK.
22049 * gimple-fold.c (can_refer_decl_in_current_unit_p): Drop weakref.
22050 * ipa.c (varpool_externally_visible_p): Drop weakref.
22051 (function_and_variable_visibility): Update comment; fix weakref
22052 sanity checks; do not clear DECL_WEAK on them.
22053 * lto-cgraph.c (lto_output_node): update.
22054 (lto_output_varpool_node): Update.
22055 (input_overwrite_node): Update.
22056 (input_node): Update.
22057 (input_varpool_node): Update.
22058 * lto-symtab.c (lto_symtab_symbol_p): Do not special case weakrefs.
22059 (lto_symtab_merge_symbols): Add sanity check.
22060 (lto_symtab_prevailing_decl): Do not special case weakrefs.
22061 * passes.c (rest_of_decl_compilation): Set static flag, too.
22062 * symtab.c (dump_symtab_base): Dump weakref.
22063 (verify_symtab_base): Sanity check weakrefs.
22064 (symtab_make_decl_local): Remove duplicated code.
22065 (symtab_alias_ultimate_target): Simplify.
22066 * varpool.c (varpool_create_variable_alias): Set weakref flag.
8f88661d 22067
19e96b44 220682013-06-11 Tom de Vries <tom@codesourcery.com>
22069
22070 * genautomata.c (gen_regexp_sequence): Handle els_num == -1. Handle
22071 sequence_vect == NULL.
22072
99bdcd9d 220732013-06-11 DJ Delorie <dj@redhat.com>
22074
22075 * config/rl78/rl78.c (TARGET_UNWIND_WORD_MODE): Define.
22076 (rl78_unwind_word_mode): New.
22077
94a2945a 220782013-06-11 David Malcolm <dmalcolm@redhat.com>
22079
22080 * final.c (debug_prefix_maps): Make static.
22081
5ef9352d 220822013-06-11 David Malcolm <dmalcolm@redhat.com>
22083
22084 * function.c (initial_trampoline): Remove stray copy.
22085
20431bc8 220862013-06-11 Sofiane Naci <sofiane.naci@arm.com>
22087
22088 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update.
22089
fd8b458b 220902013-06-11 Martin Jambor <mjambor@suse.cz>
22091
22092 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that param_index is
22093 within bounds at the beginning of the function.
22094
71079e07 220952013-06-11 Alan Modra <amodra@gmail.com>
22096
22097 * varasm.c (get_section): Don't die on !DECL_P decl. Tidy error
22098 reporting.
22099 (get_named_section): Don't NULL !DECL_P decl.
22100
80f0bcca 221012013-06-11 Igor Zamyatin <igor.zamyatin@intel.com>
22102
22103 * doc/invoke.texi (core-avx2): Document.
22104 (slm): Likewise.
22105 (atom): Updated with MOVBE.
22106
9a65bef9 221072013-06-11 Richard Biener <rguenther@suse.de>
22108
3b9449a5 22109 * collect2.c (main): Do not redirect ld stdout/stderr when debugging.
9a65bef9 22110
a6b212e1 221112013-06-11 Anton Blanchard <anton@samba.org>
22112
22113 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Calculate
22114 correct shift value in little-endian mode.
22115
8ef2f3bf 221162013-06-11 Jakub Jelinek <jakub@redhat.com>
22117
22118 PR target/56564
22119 * varasm.c (get_variable_align): Move #endif to the right place.
22120
daccd6b3 221212013-06-10 Cary Coutant <ccoutant@google.com>
22122
22123 * dwarf2out.c (hash_external_ref): Use die_symbol or signature
22124 for hash so that hash table traversal order is deterministic.
22125
f88fbcb9 221262013-06-10 Michael Meissner <meissner@linux.vnet.ibm.com>
c3d2d0e4 22127 Pat Haugen <pthaugen@us.ibm.com>
22128 Peter Bergner <bergner@vnet.ibm.com>
f88fbcb9 22129
22130 * config/rs6000/vector.md (GPR move splitter): Do not split moves
22131 of vectors in GPRS if they are direct moves or quad word load or
22132 store moves.
22133
22134 * config/rs6000/rs6000-protos.h (rs6000_output_move_128bit): Add
22135 declaration.
22136 (direct_move_p): Likewise.
22137 (quad_load_store_p): Likewise.
22138
22139 * config/rs6000/rs6000.c (enum rs6000_reg_type): Simplify register
22140 classes into bins based on the physical register type.
22141 (reg_class_to_reg_type): Likewise.
22142 (IS_STD_REG_TYPE): Likewise.
22143 (IS_FP_VECT_REG_TYPE): Likewise.
22144 (reload_fpr_gpr): Arrays to determine what insn to use if we can
22145 use direct move instructions.
22146 (reload_gpr_vsx): Likewise.
22147 (reload_vsx_gpr): Likewise.
22148 (rs6000_init_hard_regno_mode_ok): Precalculate the register type
22149 information that is a simplification of register classes. Also
22150 precalculate direct move reload helpers.
22151 (direct_move_p): New function to return true if the operation can
22152 be done as a direct move instruciton.
22153 (quad_load_store_p): New function to return true if the operation
22154 is a quad memory operation.
22155 (rs6000_legitimize_address): If quad memory, only allow register
22156 indirect for TImode addresses.
22157 (rs6000_legitimate_address_p): Likewise.
22158 (enum reload_reg_type): Delete, replace with rs6000_reg_type.
22159 (rs6000_reload_register_type): Likewise.
22160 (register_to_reg_type): Return register type.
22161 (rs6000_secondary_reload_simple_move): New helper function for
22162 secondary reload and secondary memory needed to identify anything
22163 that is a simple move, and does not need reloading.
22164 (rs6000_secondary_reload_direct_move): New helper function for
22165 secondary reload to identify cases that can be done with several
22166 instructions via the direct move instructions.
22167 (rs6000_secondary_reload_move): New helper function for secondary
22168 reload to identify moves between register types that can be done.
22169 (rs6000_secondary_reload): Add support for quad memory operations
22170 and for direct move.
22171 (rs6000_secondary_memory_needed): Likewise.
22172 (rs6000_debug_secondary_memory_needed): Change argument names.
22173 (rs6000_output_move_128bit): New function to return the move to
22174 use for 128-bit moves, including knowing about the various
22175 limitations of quad memory operations.
22176
22177 * config/rs6000/vsx.md (vsx_mov<mode>): Add support for quad
22178 memory operations. call rs6000_output_move_128bit for the actual
22179 instruciton(s) to generate.
22180 (vsx_movti_64bit): Likewise.
22181
22182 * config/rs6000/rs6000.md (UNSPEC_P8V_FMRGOW): New unspec values.
22183 (UNSPEC_P8V_MTVSRWZ): Likewise.
22184 (UNSPEC_P8V_RELOAD_FROM_GPR): Likewise.
22185 (UNSPEC_P8V_MTVSRD): Likewise.
22186 (UNSPEC_P8V_XXPERMDI): Likewise.
22187 (UNSPEC_P8V_RELOAD_FROM_VSX): Likewise.
22188 (UNSPEC_FUSION_GPR): Likewise.
22189 (FMOVE128_GPR): New iterator for direct move.
3b9449a5 22190 (f32_lv): New mode attribute for load/store of SFmode/SDmode values.
f88fbcb9 22191 (f32_sv): Likewise.
22192 (f32_dm): Likewise.
22193 (zero_extend<mode>di2_internal1): Add support for power8 32-bit
22194 loads and direct move instructions.
22195 (zero_extendsidi2_lfiwzx): Likewise.
22196 (extendsidi2_lfiwax): Likewise.
22197 (extendsidi2_nocell): Likewise.
22198 (floatsi<mode>2_lfiwax): Likewise.
22199 (lfiwax): Likewise.
22200 (floatunssi<mode>2_lfiwzx): Likewise.
22201 (lfiwzx): Likewise.
22202 (fix_trunc<mode>_stfiwx): Likewise.
22203 (fixuns_trunc<mode>_stfiwx): Likewise.
22204 (mov<mode>_hardfloat, 32-bit floating point): Likewise.
22205 (mov<move>_hardfloat64, 64-bit floating point): Likewise.
22206 (parity<mode>2_cmpb): Set length/type attr.
22207 (unnamed shift right patterns, mov<mode>_internal2): Change type attr
22208 for 'mr.' to fast_compare.
22209 (bpermd_<mode>): Change type attr to popcnt.
22210 (p8_fmrgow_<mode>): New insns for power8 direct move support.
22211 (p8_mtvsrwz_1): Likewise.
22212 (p8_mtvsrwz_2): Likewise.
22213 (reload_fpr_from_gpr<mode>): Likewise.
22214 (p8_mtvsrd_1): Likewise.
22215 (p8_mtvsrd_2): Likewise.
22216 (p8_xxpermdi_<mode>): Likewise.
22217 (reload_vsx_from_gpr<mode>): Likewise.
22218 (reload_vsx_from_gprsf): Likewise.
22219 (p8_mfvsrd_3_<mode>): LIkewise.
22220 (reload_gpr_from_vsx<mode>): Likewise.
22221 (reload_gpr_from_vsxsf): Likewise.
22222 (p8_mfvsrd_4_disf): Likewise.
22223 (multi-word GPR splits): Do not split direct moves or quad memory
22224 operations.
22225
47c1894f 222262013-06-10 David Malcolm <dmalcolm@redhat.com>
22227
22228 * tree-into-ssa.c (interesting_blocks): Make static.
22229
a16734cd 222302013-06-10 Jakub Jelinek <jakub@redhat.com>
22231
22232 PR target/56564
22233 * varasm.c (align_variable): Don't use DATA_ALIGNMENT or
22234 CONSTANT_ALIGNMENT if !decl_binds_to_current_def_p (decl).
22235 Use DATA_ABI_ALIGNMENT for that case instead if defined.
22236 (get_variable_align): New function.
22237 (get_variable_section, emit_bss, emit_common,
22238 assemble_variable_contents, place_block_symbol): Use
22239 get_variable_align instead of DECL_ALIGN.
22240 (assemble_noswitch_variable): Add align argument, use it
22241 instead of DECL_ALIGN.
22242 (assemble_variable): Adjust caller. Use get_variable_align
22243 instead of DECL_ALIGN.
22244 * config/i386/i386.h (DATA_ALIGNMENT): Adjust x86_data_alignment
22245 caller.
22246 (DATA_ABI_ALIGNMENT): Define.
22247 * config/i386/i386-protos.h (x86_data_alignment): Adjust prototype.
22248 * config/i386/i386.c (x86_data_alignment): Add opt argument. If
22249 opt is false, only return the psABI mandated alignment increase.
22250 * config/c6x/c6x.h (DATA_ALIGNMENT): Renamed to...
22251 (DATA_ABI_ALIGNMENT): ... this.
22252 * config/mmix/mmix.h (DATA_ALIGNMENT): Renamed to...
22253 (DATA_ABI_ALIGNMENT): ... this.
22254 * config/mmix/mmix.c (mmix_data_alignment): Adjust function comment.
22255 * config/s390/s390.h (DATA_ALIGNMENT): Renamed to...
22256 (DATA_ABI_ALIGNMENT): ... this.
22257 * doc/tm.texi.in (DATA_ABI_ALIGNMENT): Document.
22258 * doc/tm.texi: Regenerated.
22259
ad94304e 222602013-06-10 Uros Bizjak <ubizjak@gmail.com>
22261
22262 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Also use
22263 cmp_code to construct REG_EQUAL note.
22264
1bb66e41 222652013-06-09 Jakub Jelinek <jakub@redhat.com>
22266
22267 PR target/57568
22268 * config/i386/i386.md (TARGET_READ_MODIFY_WRITE peepholes): Ensure
22269 that operands[2] doesn't overlap with operands[0].
22270
85897772 222712013-06-09 David Edelsohn <dje.gcc@gmail.com>
22272 Jan Hubicka <jh@suse.cz>
22273
22274 * config/rs6000/rs6000.c (print_operand, 'z'): Remove historical
22275 hack to mark symbols as used.
22276
0178c26e 222772013-06-08 Vladimir Makarov <vmakarov@redhat.com>
22278
22279 PR rtl-optimization/57559
22280 * lra-constraints.c (process_alt_operands): Don't discourage
22281 memory with known offset for offsetable memory constraint.
22282 * lra.c (lra_emit_add): Exchange y and z for 2-op add insn.
22283
b0e0d151 222842013-06-08 Eric Botcazou <ebotcazou@adacore.com>
22285
22286 * varasm.c (struct oc_local_state): Reorder fields.
22287 (output_constructor_bitfield): Replace OUTER parameter with BIT_OFFSET
22288 and adjust accordingly.
22289 (output_constructor): Reorder initialization code and adjust call to
22290 output_constructor_bitfield.
22291
55fd7c31 222922013-06-07 Jan Hubicka <jh@suse.cz>
22293
22294 * symtab.c (symtab_resolve_alias): Do not remove alias attribute.
22295
45fe2c0f 222962013-06-07 David Malcolm <dmalcolm@redhat.com>
22297
22298 * tree-object-size.c (unknown): Make const.
22299
b1032ad8 223002013-06-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
22301
22302 * config/s390/s390.md (cpu_facility): Add cpu_zarch.
22303 ("*movmem_short", "*clrmem_short", "*cmpmem_short): Use cpu_zarch
22304 for last alternative in the cpu_facility attribute.
22305
8ee7dc6f 223062013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22307
22308 PR target/56315
22309 * config/arm/arm.md (*xordi3_insn): Change to insn_and_split.
22310 (xordi3): Change operand 2 constraint to arm_xordi_operand.
22311 * config/arm/arm.c (const_ok_for_dimode_op): Handle XOR.
22312 * config/arm/constraints.md (Dg): New constraint.
22313 * config/arm/neon.md (xordi3_neon): Remove.
22314 (neon_veor<mode>): Generate xordi3 instead of xordi3_neon.
22315 * config/arm/predicates.md (arm_xordi_operand): New predicate.
22316
0a314dcd 223172013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22318
22319 * config/arm/arm.md (anddi3_insn): Remove duplicate alternatives.
22320 Clean up alternatives.
22321
ce1273ae 223222013-06-07 Alan Modra <amodra@gmail.com>
22323
22324 * config/rs6000/rs6000.c (setup_incoming_varargs): Round up
22325 va_list_gpr_size.
22326
0eb8eaa7 223272013-06-07 Alan Modra <amodra@gmail.com>
22328
22329 * varasm.c (force_const_mem): Assert mode is not VOID or BLK.
22330
e0fe6977 223312013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22332
22333 * config/arm/constraints.md (Df): New constraint.
22334 * config/arm/arm.md (iordi3_insn): Use Df constraint instead of De.
22335 Correct length attribute for last two alternatives.
22336
c7f18d78 223372013-06-07 Alan Modra <amodra@gmail.com>
22338
22339 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
22340 override user -mfp-in-toc.
22341 (offsettable_ok_by_alignment): Consider just the current access
22342 rather than the whole object, unless BLKmode. Handle
22343 CONSTANT_POOL_ADDRESS_P constants that lack a decl too.
22344 (use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants
22345 for -mcmodel=medium.
22346 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
22347 override user -mfp-in-toc or -msum-in-toc. Default to
22348 -mno-fp-in-toc for -mcmodel=medium.
22349
556726e1 223502013-06-06 DJ Delorie <dj@redhat.com>
22351
22352 * config/rl78/rl78.c (rl78_valid_pointer_mode): New, implements
22353 TARGET_VALID_POINTER_MODE.
22354
7028141d 223552013-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
c3d2d0e4 22356 Pat Haugen <pthaugen@us.ibm.com>
22357 Peter Bergner <bergner@vnet.ibm.com>
7028141d 22358
22359 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
22360 Document new power8 builtins.
22361
22362 * config/rs6000/vector.md (and<mode>3): Add a clobber/scratch of a
22363 condition code register, to allow 128-bit logical operations to be
22364 done in the VSX or GPR registers.
22365 (nor<mode>3): Use the canonical form for nor.
22366 (eqv<mode>3): Add expanders for power8 xxleqv, xxlnand, xxlorc,
22367 vclz*, and vpopcnt* vector instructions.
22368 (nand<mode>3): Likewise.
22369 (orc<mode>3): Likewise.
22370 (clz<mode>2): LIkewise.
22371 (popcount<mode>2): Likewise.
22372
22373 * config/rs6000/predicates.md (int_reg_operand): Rework tests so
22374 that only the GPRs are recognized.
22375
22376 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
22377 support for new power8 builtins.
22378
22379 * config/rs6000/rs6000-builtin.def (xscvspdpn): Add new power8
22380 builtin functions.
22381 (xscvdpspn): Likewise.
22382 (vclz): Likewise.
22383 (vclzb): Likewise.
22384 (vclzh): Likewise.
22385 (vclzw): Likewise.
22386 (vclzd): Likewise.
22387 (vpopcnt): Likewise.
22388 (vpopcntb): Likewise.
22389 (vpopcnth): Likewise.
22390 (vpopcntw): Likewise.
22391 (vpopcntd): Likewise.
22392 (vgbbd): Likewise.
22393 (vmrgew): Likewise.
22394 (vmrgow): Likewise.
22395 (eqv): Likewise.
22396 (eqv_v16qi3): Likewise.
22397 (eqv_v8hi3): Likewise.
22398 (eqv_v4si3): Likewise.
22399 (eqv_v2di3): Likewise.
22400 (eqv_v4sf3): Likewise.
22401 (eqv_v2df3): Likewise.
22402 (nand): Likewise.
22403 (nand_v16qi3): Likewise.
22404 (nand_v8hi3): Likewise.
22405 (nand_v4si3): Likewise.
22406 (nand_v2di3): Likewise.
22407 (nand_v4sf3): Likewise.
22408 (nand_v2df3): Likewise.
22409 (orc): Likewise.
22410 (orc_v16qi3): Likewise.
22411 (orc_v8hi3): Likewise.
22412 (orc_v4si3): Likewise.
22413 (orc_v2di3): Likewise.
22414 (orc_v4sf3): Likewise.
22415 (orc_v2df3): Likewise.
22416
22417 * config/rs6000/rs6000.c (rs6000_option_override_internal): Only
22418 allow power8 quad mode in 64-bit.
22419 (rs6000_builtin_vectorized_function): Add support to vectorize
22420 ISA 2.07 count leading zeros, population count builtins.
22421 (rs6000_expand_vector_init): On ISA 2.07 use xscvdpspn to form
22422 V4SF vectors instead of xscvdpsp to avoid IEEE related traps.
22423 (builtin_function_type): Add vgbbd builtin function which takes an
22424 unsigned argument.
22425 (altivec_expand_vec_perm_const): Add support for new power8 merge
22426 instructions.
22427
22428 * config/rs6000/vsx.md (VSX_L2): New iterator for 128-bit types,
22429 that does not include TImdoe for use with 32-bit.
22430 (UNSPEC_VSX_CVSPDPN): Support for power8 xscvdpspn and xscvspdpn
22431 instructions.
22432 (UNSPEC_VSX_CVDPSPN): Likewise.
22433 (vsx_xscvdpspn): Likewise.
22434 (vsx_xscvspdpn): Likewise.
22435 (vsx_xscvdpspn_scalar): Likewise.
22436 (vsx_xscvspdpn_directmove): Likewise.
22437 (vsx_and<mode>3): Split logical operations into 32-bit and
22438 64-bit. Add support to do logical operations on TImode as well as
22439 VSX vector types. Allow logical operations to be done in either
22440 VSX registers or in general purpose registers in 64-bit mode. Add
22441 splitters if GPRs were used. For AND, add clobber of CCmode to
22442 allow use of ANDI on GPRs. Rewrite nor to use the canonical RTL
22443 encoding.
22444 (vsx_and<mode>3_32bit): Likewise.
22445 (vsx_and<mode>3_64bit): Likewise.
22446 (vsx_ior<mode>3): Likewise.
22447 (vsx_ior<mode>3_32bit): Likewise.
22448 (vsx_ior<mode>3_64bit): Likewise.
22449 (vsx_xor<mode>3): Likewise.
22450 (vsx_xor<mode>3_32bit): Likewise.
22451 (vsx_xor<mode>3_64bit): Likewise.
22452 (vsx_one_cmpl<mode>2): Likewise.
22453 (vsx_one_cmpl<mode>2_32bit): Likewise.
22454 (vsx_one_cmpl<mode>2_64bit): Likewise.
22455 (vsx_nor<mode>3): Likewise.
22456 (vsx_nor<mode>3_32bit): Likewise.
22457 (vsx_nor<mode>3_64bit): Likewise.
22458 (vsx_andc<mode>3): Likewise.
22459 (vsx_andc<mode>3_32bit): Likewise.
22460 (vsx_andc<mode>3_64bit): Likewise.
22461 (vsx_eqv<mode>3_32bit): Add support for power8 xxleqv, xxlnand,
22462 and xxlorc instructions.
22463 (vsx_eqv<mode>3_64bit): Likewise.
22464 (vsx_nand<mode>3_32bit): Likewise.
22465 (vsx_nand<mode>3_64bit): Likewise.
22466 (vsx_orc<mode>3_32bit): Likewise.
22467 (vsx_orc<mode>3_64bit): Likewise.
22468
22469 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Update comment.
22470
22471 * config/rs6000/altivec.md (UNSPEC_VGBBD): Add power8 vgbbd
22472 instruction.
22473 (p8_vmrgew): Add power8 vmrgew and vmrgow instructions.
22474 (p8_vmrgow): Likewise.
22475 (altivec_and<mode>3): Add clobber of CCmode to allow AND using
22476 GPRs to be split under VSX.
22477 (p8v_clz<mode>2): Add power8 count leading zero support.
22478 (p8v_popcount<mode>2): Add power8 population count support.
22479 (p8v_vgbbd): Add power8 gather bits by bytes by doubleword
22480 support.
22481
22482 * config/rs6000/rs6000.md (eqv<mode>3): Add support for powerp eqv
22483 instruction.
22484
22485 * config/rs6000/altivec.h (vec_eqv): Add defines to export power8
22486 builtin functions.
22487 (vec_nand): Likewise.
22488 (vec_vclz): Likewise.
22489 (vec_vclzb): Likewise.
22490 (vec_vclzd): Likewise.
22491 (vec_vclzh): Likewise.
22492 (vec_vclzw): Likewise.
22493 (vec_vgbbd): Likewise.
22494 (vec_vmrgew): Likewise.
22495 (vec_vmrgow): Likewise.
22496 (vec_vpopcnt): Likewise.
22497 (vec_vpopcntb): Likewise.
22498 (vec_vpopcntd): Likewise.
22499 (vec_vpopcnth): Likewise.
22500 (vec_vpopcntw): Likewise.
22501
3620f4de 225022013-06-06 Vladimir Makarov <vmakarov@redhat.com>
22503
22504 PR rtl-optimization/57468
22505 * config/i386/i386.c (inline_secondary_memory_needed): Ignore
22506 spilled pseudos.
22507
53d78539 225082013-06-06 Vladimir Makarov <vmakarov@redhat.com>
22509
22510 PR rtl-optimization/57459
22511 * lra-constraints.c (update_ebb_live_info): Fix typo for operand
22512 type when setting live regs.
22513
7b1bda1c 225142013-06-06 Vladimir Makarov <vmakarov@redhat.com>
22515
22516 * config/s390/s390.opt (mlra): New option.
22517 * config/s390/s390.c (s390_decompose_address): Check displacement
22518 for all registers for LRA.
22519 (s390_secondary_reload): Don't used secondary reloads for LRA.
22520 (s390_lra_p): New function.
22521 (TARGET_LRA_P): Define.
22522 * config/s390/s390.md (*movmem_short, *clrmem_short): Change value
22523 of attribute cpu_facility to zarch for the last alternative.
22524 (*cmpmem_short): Ditto.
22525
eec6d059 225262013-06-06 Eric Botcazou <ebotcazou@adacore.com>
22527
22528 * config/arm/arm.c (arm_r3_live_at_start_p): New predicate.
22529 (arm_compute_static_chain_stack_bytes): Use it. Tidy up.
22530 (arm_expand_prologue): Likewise.
22531
aa78dca5 225322013-06-06 Teresa Johnson <tejohnson@google.com>
22533
22534 PR c++/53743
22535 * ifcvt.c (find_if_case_1): Replace BB_COPY_PARTITION with assert
22536 as this is now done by redirect_edge_and_branch_force.
22537 * function.c (thread_prologue_and_epilogue_insns): Insert new bb after
22538 barriers, and fix interaction with splitting.
22539 * emit-rtl.c (try_split): Copy REG_CROSSING_JUMP notes.
22540 * cfgcleanup.c (try_forward_edges): Fix early return value to properly
22541 reflect changes made in the routine.
22542 * bb-reorder.c (emit_barrier_after_bb): Move to cfgrtl.c.
22543 (fix_up_fall_thru_edges): Remove incorrect check for bb layout order
22544 since this is called in cfglayout mode, and replace partition fixup
22545 with assert as that is now done by force_nonfallthru_and_redirect.
22546 (add_reg_crossing_jump_notes): Handle the fact that some jumps may
22547 already be marked with region crossing note.
22548 (insert_section_boundary_note): Make non-static, gate on flag
22549 has_bb_partition, rewrite to also check for multiple partitions.
22550 (rest_of_handle_reorder_blocks): Remove call to
22551 insert_section_boundary_note, now done later during free_cfg.
22552 (duplicate_computed_gotos): Don't duplicate partition crossing edge.
22553 * bb-reorder.h (insert_section_boundary_note): Declare.
22554 * Makefile.in (cfgrtl.o): Depend on bb-reorder.h
22555 * cfgrtl.c (rest_of_pass_free_cfg): If partitions exist
22556 invoke insert_section_boundary_note.
22557 (try_redirect_by_replacing_jump): Remove unnecessary
22558 check for region crossing note.
22559 (fixup_partition_crossing): New function.
22560 (rtl_redirect_edge_and_branch): Fixup partition boundaries.
22561 (emit_barrier_after_bb): Move here from bb-reorder.c, handle insertion
22562 in non-cfglayout mode.
22563 (force_nonfallthru_and_redirect): Fixup partition boundaries,
22564 remove old code that tried to do this. Emit barrier correctly
22565 when we are in cfglayout mode.
22566 (last_bb_in_partition): New function.
22567 (rtl_split_edge): Correctly fixup partition boundaries.
22568 (commit_one_edge_insertion): Remove old code that tried to
22569 fixup region crossing edge since this is now handled in
22570 split_block, and set up insertion point correctly since
22571 block may now end in a jump.
22572 (verify_hot_cold_block_grouping): Guard against checking when not in
22573 linearized RTL mode.
22574 (rtl_verify_edges): Add checks for incorrect/missing REG_CROSSING_JUMP
22575 notes.
22576 (rtl_verify_flow_info_1): Move verify_hot_cold_block_grouping to
22577 rtl_verify_flow_info, so not called in cfglayout mode.
22578 (rtl_verify_flow_info): Move verify_hot_cold_block_grouping here.
22579 (fixup_reorder_chain): Remove old code that attempted to fixup region
22580 crossing note as this is now handled in force_nonfallthru_and_redirect.
22581 (duplicate_insn_chain): Don't duplicate switch section notes.
22582 (rtl_can_remove_branch_p): Remove unnecessary check for region crossing
22583 note.
22584 * basic-block.h (emit_barrier_after_bb): Declare.
22585
940beb92 225862013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22587
22588 * config/arm/arm-fixed.md (add<mode>3,usadd<mode>3,ssadd<mode>3,
22589 sub<mode>3, ussub<mode>3, sssub<mode>3, arm_ssatsihi_shift,
22590 arm_usatsihi): Adjust alternatives for arm_restrict_it.
22591
27153331 225922013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22593
22594 * config/arm/arm-ldmstm.ml: Set "predicable_short_it" to "no"
22595 where appropriate.
22596 * config/arm/ldmstm.md: Regenerate.
22597
5a109f6c 225982013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22599
22600 * config/arm/sync.md (atomic_loaddi_1):
22601 Disable predication for arm_restrict_it.
22602 (arm_load_exclusive<mode>): Likewise.
22603 (arm_load_exclusivesi): Likewise.
22604 (arm_load_exclusivedi): Likewise.
22605 (arm_load_acquire_exclusive<mode>): Likewise.
22606 (arm_load_acquire_exclusivesi): Likewise.
22607 (arm_load_acquire_exclusivedi): Likewise.
22608 (arm_store_exclusive<mode>): Likewise.
22609 (arm_store_exclusive<mode>): Likewise.
22610 (arm_store_release_exclusivedi): Likewise.
22611 (arm_store_release_exclusive<mode>): Likewise.
22612
e09e0df2 226132013-06-06 Richard Biener <rguenther@suse.de>
22614
22615 * lto-streamer.h (enum LTO_tags): Move LTO_tree_pickle_reference
22616 after LTO_null.
22617 (lto_tag_is_tree_code_p): Adjust.
22618 (lto_tag_is_gimple_code_p): Likewise.
22619 (lto_gimple_code_to_tag): Likewise.
22620 (lto_tag_to_gimple_code): Likewise.
22621 (lto_tree_code_to_tag): Likewise.
22622 (lto_tag_to_tree_code): Likewise.
22623 * data-streamer.h (streamer_write_hwi_in_range): Use
22624 uhwi streaming to stream the normalized range.
22625 (streamer_read_hwi_in_range): Likewise.
22626
c7a58118 226272013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22628
22629 * config/arm/arm.md (enabled_for_depr_it): New attribute.
22630 (predicable_short_it): Likewise.
22631 (predicated): Likewise.
22632 (enabled): Handle above.
22633 (define_cond_exec): Set predicated attribute to yes.
22634
910d871e 226352013-06-05 Mike Stump <mikestump@comcast.net>
22636
22637 * gdbinit.in (__FUNCTION__): Add.
22638
cf1f9f8b 226392013-06-05 Uros Bizjak <ubizjak@gmail.com>
22640
22641 * config/alpha/alpha.c (alpha_emit_conditional_move): Swap all
22642 GE, GT, GEU and GTU compares, modulo DImode compares with zero.
22643
709f8747 226442013-06-05 Jan Hubicka <jh@suse.cz>
22645
22646 * varasm.c (mark_decl_referenced): Revert the removal until targets
22647 are fixed.
22648
bc5f662c 226492013-06-05 David Edelsohn <dje.gcc@gmail.com>
22650
22651 * config/rs6000/rs6000.c (print_operand, 'z'): Use DECL_PRESERVE_P
22652 instead of mark_decl_referenced.
22653
6a1c0403 226542013-06-05 Jan Hubicka <jh@suse.cz>
22655
22656 * cgraph.c (cgraph_remove_node): Clear forced_by_abi.
22657 (cgraph_node_cannot_be_local_p_1): Honnor symbol.forced_by_abi
22658 and symtab_used_from_object_file_p.
22659 (cgraph_make_node_local_1): Clear forced_by_abi.
22660 (cgraph_can_remove_if_no_direct_calls_and): Use forced_by_abi
22661 * cgraph.h (symtab_node_base): Add forced_by_abi.
22662 (decide_is_variable_needed): Remove.
22663 (varpool_can_remove_if_no_refs): Honnor symbol.forced_by_abi.
22664 * cgraphunit.c (cgraph_decide_is_function_needed): Rename to ..
22665 (decide_is_symbol_needed): ... this one; handle symbols in general;
22666 always analyze virtuals; honnor forced_by_abi.
22667 (cgraph_finalize_function): Update.
22668 (varpool_finalize_decl): Update.
22669 (symbol_defined_and_needed): Remove.
22670 (analyze_functions): Update.
22671 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
22672 output_refs, input_overwrite_node): Handle forced_by_abi.
22673 * ipa.c (cgraph_address_taken_from_non_vtable_p): Rename to ...
22674 (address_taken_from_non_vtable_p): ... this one.
22675 (comdat_can_be_unshared_p_1): New function.
22676 (cgraph_comdat_can_be_unshared_p): Rename to ...
22677 (comdat_can_be_unshared_p): ... this one; handle symbols in general.
22678 (varpool_externally_visible_p): Use comdat_can_be_unshared_p.
22679 (function_and_variable_visibility): Clear forced_by_abi as needed.
22680 * trans-mem.c (ipa_tm_mark_forced_by_abi_node): New functoin.
22681 (ipa_tm_create_version_alias, ipa_tm_create_version): Update.
6a1c0403 22682 * symtab.c (dump_symtab_base): Dump forced_by_abi.
22683 * varpool.c (decide_is_variable_needed): Remove.
22684
889fe57c 226852013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22686
22687 * config/arm/arm.c (MAX_INSN_PER_IT_BLOCK): New macro.
22688 (arm_option_override): Override arm_restrict_it where appropriate.
22689 (thumb2_final_prescan_insn): Use MAX_INSN_PER_IT_BLOCK.
22690 * config/arm/arm.opt (mrestrict-it): New command-line option.
22691 * doc/invoke.texi: Document -mrestrict-it.
22692
9d34f097 226932013-06-05 David Malcolm <dmalcolm@redhat.com>
22694
22695 * tsan.c (tsan_atomic_table): Make const.
22696
4b927f54 226972013-06-05 Richard Biener <rguenther@suse.de>
22698
22699 * tree-streamer.c (streamer_tree_cache_insert_1): Update the
22700 index associated with the tree we are supposed to replace.
22701 * tree-streamer-out.c (pack_ts_base_value_fields): Output
22702 TREE_ASM_WRITTEN as zero for everything but SSA names.
22703
94771494 227042013-06-05 David Malcolm <dmalcolm@redhat.com>
22705
22706 * tree-ssa-structalias.c (call_stmt_vars): Make static.
22707
f1a7feee 227082013-06-04 Jan Hubicka <jh@suse.cz>
22709
22710 * lto-cgraph.c (get_alias_symbol): Remove weakref sanity check.
22711 (input_node, input_varpool_node): Handle correctly external same
22712 body aliases.
22713 * ipa.c (symtab_remove_unreachable_nodes): Do not remove external
22714 nodes at ltrans stage.
22715
9817f2cd 227162013-06-04 Jan Hubicka <jh@suse.cz>
22717
22718 * ipa-inline.c (update_caller_keys): Fix availability test.
22719 (update_callee_keys): Likewise.
22720 * symtab.c (symtab_alias_ultimate_target): Make availaiblity logic
22721 to follow ELF standard.
22722
60b34f30 227232013-06-04 Jürgen Urban <JuergenUrban@gmx.de>
22724
22725 * config.gcc (mipsr5900-*-elf*, mipsr5900el-*-elf*, mips64r5900-*-elf*)
22726 (mips64r5900el-*-elf*): New configurations.
22727 * config/mips/mips-cpus.def (r5900): New processor.
22728 * config/mips/mips-tables.opt: Regenerate.
22729 * config/mips/mips.c (mips_rtx_cost_data): Add an R5900 entry.
22730 (mips_issue_rate): Handle PROCESSOR_R5900.
22731 (mips_reorg_process_insns): Force reorder mode for the R5900.
22732 * config/mips/mips.h (TARGET_MIPS5900): Define.
22733 (ISA_HAS_CONDMOVE, ISA_HAS_PREFETCH, ISA_HAS_HILO_INTERLOCKS): Include
22734 TARGET_MIPS5900.
22735 (ISA_HAS_LOAD_DELAY, ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY): Exclude
22736 TARGET_MIPS5900.
22737 * config/mips/mips.md (processor): Add r5900.
22738 (MOVECC): Disallow CCmode conditions for TARGET_MIPS5900.
22739
dae88020 227402013-06-04 Ian Bolton <ian.bolton@arm.com>
22741
22742 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Call
22743 into function to generate MOVI instruction.
cf1f9f8b 22744 * config/aarch64/aarch64.c (aarch64_simd_container_mode): New function.
dae88020 22745 (aarch64_preferred_simd_mode): Turn into wrapper.
22746 (aarch64_output_scalar_simd_mov_immediate): New function.
22747 * config/aarch64/aarch64-protos.h: Add prototype for above.
22748
04b042b2 227492013-06-04 Ian Bolton <ian.bolton@arm.com>
22750
22751 * config/aarch64/aarch64.c (simd_immediate_info): Remove
22752 element_char member.
22753 (sizetochar): Return signed char.
22754 (aarch64_simd_valid_immediate): Remove elchar and other
22755 unnecessary variables.
22756 (aarch64_output_simd_mov_immediate): Take rtx instead of &rtx.
22757 Calculate element_char as required.
22758 * config/aarch64/aarch64-protos.h: Update and move prototype
22759 for aarch64_output_simd_mov_immediate.
22760 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
22761 Update arguments.
22762
fc3eb658 227632013-06-04 Ian Bolton <ian.bolton@arm.com>
22764
22765 * config/aarch64/aarch64.c (simd_immediate_info): Struct to hold
22766 information completed by aarch64_simd_valid_immediate.
22767 (aarch64_legitimate_constant_p): Update arguments.
22768 (aarch64_simd_valid_immediate): Work with struct rather than many
22769 pointers.
22770 (aarch64_simd_scalar_immediate_valid_for_move): Update arguments.
22771 (aarch64_simd_make_constant): Update arguments.
22772 (aarch64_output_simd_mov_immediate): Work with struct rather than
22773 many pointers. Output immediate directly rather than as operand.
22774 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
22775 Update prototype.
22776 * config/aarch64/constraints.md (Dn): Update arguments.
22777
74c40875 227782013-06-04 Ian Bolton <ian.bolton@arm.com>
22779
22780 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): No
22781 longer static.
22782 (aarch64_simd_immediate_valid_for_move): Remove.
22783 (aarch64_simd_scalar_immediate_valid_for_move): Update call.
22784 (aarch64_simd_make_constant): Update call.
22785 (aarch64_output_simd_mov_immediate): Update call.
22786 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
22787 Add prototype.
22788 * config/aarch64/constraints.md (Dn): Update call.
22789
4eb118f1 227902013-06-04 Ian Bolton <ian.bolton@arm.com>
22791
22792 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Change
22793 return type to bool for prototype.
22794 (aarch64_legitimate_constant_p): Check for true instead of not -1.
22795 (aarch64_simd_valid_immediate): Fix up each return to return a bool.
22796 (aarch64_simd_immediate_valid_for_move): Update retval for bool.
22797
3721f3a0 227982013-06-04 Catherine Moore <clm@codesourcery.com>
22799
22800 * config/mips/mips.opt (meva): New.
cf1f9f8b 22801 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_eva.
3721f3a0 22802 (ASM_SPEC): Handle -meva.
22803 * doc/invoke.texi (meva): Document.
22804
6c8e6c47 228052013-06-04 Alan Modra <amodra@gmail.com>
22806
22807 * config/rs6000/rs6000.c (output_toc): Correct little-endian float
22808 constant output.
22809
8c45824d 228102013-06-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22811
22812 * rtl.def: Add extra fourth optional field to define_cond_exec.
22813 * gensupport.c (process_one_cond_exec): Process attributes from
22814 define_cond_exec.
22815 * doc/md.texi: Document fourth field in define_cond_exec.
22816
8744b4c5 228172013-06-04 Eric Botcazou <ebotcazou@adacore.com>
22818
22819 * expmed.c (extract_bit_field_1): In the larger-than-a-word case, factor
22820 out the processing order as in store_bit_field_1.
22821
a55453ec 228222013-06-04 Jan Hubicka <jh@suse.cz>
22823
22824 PR middle-end/57500
22825 * cgraphunit.c (cgraph_process_same_body_aliases): Create
22826 non-VAR_DECL node if it does not exist yet.
22827
53c5ddd2 228282013-06-03 Richard Sandiford <rdsandiford@googlemail.com>
22829
22830 * config.gcc (mipsisa64sr71k-*-elf*, mipsisa64sb1-*-elf*)
22831 (mipsisa64sb1el-*-elf*, mips64-*-elf*, mips64el-*-elf*)
22832 (mips64orion-*-elf*, mips64orionel-*-elf*): Remove
22833 target_cpu_default setting.
22834
a21425b5 228352013-06-03 Teresa Johnson <tejohnson@google.com>
22836
22837 * dumpfile.c (opt_info_switch_p): Change -fopt-info
22838 default to -fopt-info=optimized instead of all.
22839 * doc/invoke.texi: Ditto.
22840 * tree-vectorizer.c (vectorize_loops): Emit loop vectorization
22841 success under MSG_OPTIMIZED_LOCATIONS, and use dump_printf_loc.
22842 (execute_vect_slp): Emit BB vectorization success under
22843 MSG_OPTIMIZED_LOCATIONS.
22844 * tree-vect-slp.c (vect_slp_transform_bb): Change
22845 MSG_OPTIMIZED_LOCATIONS to MSG_NOTE.
22846 * tree-vect-loop.c (vect_transform_loop): Ditto.
22847
79f0505e 228482013-06-03 Jason Merrill <jason@redhat.com>
22849
22850 PR c++/57415
22851 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
22852 Use TARGET_EXPR for C++.
22853
c2066d40 228542013-06-03 Jakub Jelinek <jakub@redhat.com>
22855
22856 PR rtl-optimization/57268
8744b4c5 22857 * sched-deps.c (sched_analyze_2): Don't flush_pending_lists
c2066d40 22858 if DEBUG_INSN_P (insn).
22859
22860 Reapply
22861 2013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
22862
22863 PR rtl-optimization/57268
22864 * sched-deps.c (sched_analyze_2): Flush dependence lists if
22865 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
22866
fbcee6d1 228672013-06-03 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
22868
22869 * config/i386/i386.c (ix86_lea_outperforms): Fix formatting.
22870 (ix86_avoid_lea_for_addr): Likewise.
22871 (exact_dependency_1): Likewise.
22872 (ix86_adjust_cost): Likewise.
22873 (swap_top_of_ready_list): Fix formatting and !reload_completed check
22874 removed.
22875 (do_reorder_for_imul): Fix typo, formatting and
22876 !reload_completed check removed.
22877 (ix86_sched_reorder): Fix typo and formatting.
22878 (fold_builtin_cpu): Move M_INTEL_SLM at the end of processor types
22879 list.
22880
e018d84c 228812013-06-03 Sofiane Naci <sofiane.naci@arm.com>
22882
22883 * config/aarch64/aarch64.md (*movdi_aarch64): Define "simd" attribute.
22884
9322e825 228852013-06-03 Eric Botcazou <ebotcazou@adacore.com>
22886
22887 * varasm.c (output_constant) <CONSTRUCTOR>: Minor formatting tweak.
22888 <STRING_CST>: Likewise.
22889 <VECTOR_CST>: Likewise.
22890
f3b719b3 228912013-06-01 Janus Weil <janus@gcc.gnu.org>
22892 Mikael Morin <mikael@gcc.gnu.org>
22893
22894 * configure.ac: Add AC_HEADER_TIOCGWINSZ macro.
22895 * config.in: Regenerated.
22896 * configure: Regenerated.
22897
4cd8ae4b 228982013-06-01 Jan Hubicka <jh@suse.cz>
22899
22900 PR middle-end/57366
22901 * cgraphunit.c (compile): When weakref is not supported,
22902 set up transparent aliases before final output pass.
22903 * varasm.c (assemble_alias): Do not try to do it here.
22904
e4f633f7 229052013-06-01 Jan Hubicka <jh@suse.cz>
22906
22907 PR middle-end/57467
22908 * passes.c (for_per_function): Skip unanalyzed functions.
22909
48669653 229102013-06-01 Jan Hubicka <jh@suse.cz>
22911
22912 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Rename to ...
22913 (lto_symtab_merge_symbols_1): ... this one.
22914 (lto_symtab_merge_cgraph_nodes): Rename to ...
22915 (lto_symtab_merge_symbols): ... this one; simplify.
22916 * cgraph.c (same_body_aliases_done): Rename to ...
22917 (cpp_implicit_aliases_done): ... this one.
22918 (cgraph_create_function_alias): Update.
22919 (cgraph_same_body_alias): Update.
cf1f9f8b 22920 (dump_cgraph_node): Remove alias dumping; simplify thunk dumping.
48669653 22921 (verify_edge_corresponds_to_fndecl): Simplify.
cf1f9f8b 22922 * cgraph.h (symtab_node_base): Add cpp_implicit_alias, alias_target.
48669653 22923 (cgraph_node): Remove same_body_alias.
22924 (varpool_node): Remove alias_of and extra_name_alias.
22925 (same_body_aliases_done): Rename to ..
22926 (cpp_implicit_aliases_done): ... this one.
22927 (symtab_alias_ultimate_target): Add default parameter.
22928 (symtab_resolve_alias): New function.
22929 (fixup_same_cpp_alias_visibility): Declare.
22930 (cgraph_function_node): Add default parameter.
22931 (cgraph_node_asm_name): Likewise.
22932 (cgraph_function_or_thunk_node): Add default parameter; do
22933 not ICE when it is NULL.
22934 (varpool_variable_node): Likewise.
22935 * tree-emutls.c (create_emultls_var): Update.
22936 (ipa_lower_emutls): Update.
22937 * cgraphunit.c (cgraph_decide_is_function_needed): Update.
22938 (cgraph_reset_node): Reset alias info.
22939 (cgraph_finalize_function): Update.
22940 (fixup_same_cpp_alias_visibility): Move to symtab.c.
22941 (analyze_function): Simplify.
22942 (cgraph_process_same_body_aliases): Simplify.
22943 (analyze_functions): Fixup same body aliases.
22944 (handle_alias_pairs): Simplify.
22945 (assemble_thunk): Update.
22946 (assemble_thunks_and_aliases): Update.
22947 (output_weakrefs): Rewrite.
22948 * lto-cgraph.c (lto_output_node): Rewrite alias handling.
22949 (lto_output_varpool_node): Likewise.
22950 (compute_ltrans_boundary): Remve assert.
22951 (get_alias_symbol): New functoin.
22952 (input_node): Rewrite alias handling.
22953 (input_varpool_node): Likewise.
22954 * ipa-pure-const.c (propagate_pure_const): Fix formating.
22955 * ipa.c (process_references): Handle weakrefs correctly.
22956 (symtab_remove_unreachable_nodes): Likewise.
22957 * trans-mem.c (get_cg_data): Update.
22958 (ipa_tm_create_version_alias): Update.
22959 (ipa_tm_execute): Update.
22960 * symtab.c (dump_symtab_base): Dump aliases.
22961 (verify_symtab_base): Verify aliases.
22962 (symtab_node_availability): New function.
22963 (symtab_alias_ultimate_target): Simplify.
22964 (fixup_same_cpp_alias_visibility): Move here from cgraphunit.c;
22965 handle all the fixup cases.
22966 (symtab_resolve_alias): New function.
22967 * passes.c (ipa_write_summaries): Handle weakrefs.
22968 * varpool.c (varpool_analyze_node): Simplify.
22969 (assemble_aliases): Update.
22970 (varpool_create_variable_alias): Simplify.
22971 (varpool_extra_name_alias): Simplify.
22972 * lto-streamer.h (lto_symtab_merge_cgraph_nodes): Rename to...
22973 (lto_symtab_merge_symbols): ... this one.
22974
a47321b7 229752013-06-01 Dinar Temirbulatov <dinar@kugelworks.com>
22976
22977 Revert
22978 PR rtl-optimization/57268
22979 * sched-deps.c (sched_analyze_2): Flush dependence lists if
22980 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
22981
d48be958 229822013-06-01 Tobias Burnus <burnus@net-b.de>
22983
22984 Partially reverted:
22985 2013-05-31 Tobias Burnus <burnus@net-b.de>
22986
22987 PR middle-end/57073
22988 * tree-ssa-math-opts.c (execute_cse_sincos): Move check
22989 further up.
22990
62c26259 229912013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
22992
22993 PR rtl-optimization/57268
22994 * sched-deps.c (sched_analyze_2): Flush dependence lists if
22995 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
22996
fb80316e 229972013-05-31 Eric Botcazou <ebotcazou@adacore.com>
22998
22999 * config/rs6000/predicates.md (rs6000_cbranch_operator): Accept some
23000 unordered comparison operators when -fno-trapping-math is in effect
23001 on the e500.
23002 * config/rs6000/rs6000.c (rs6000_generate_compare): Remove dead code
23003 and implement unordered comparison operators properly on the e500.
23004
efb076ad 230052013-05-31 Eric Botcazou <ebotcazou@adacore.com>
23006
23007 * simplify-rtx.c (simplify_byte_swapping_operation): Use proper macro
23008 for constant scalar integers.
23009 (simplify_relational_operation_1): Likewise.
23010
317121db 230112013-05-31 Segher Boessenkool <segher@kernel.crashing.org>
23012
23013 * config/rs6000/rs6000-opts.h (enum processor_type): Reorder.
23014 * config/rs6000/rs6000.md (cpu): Reorder. Split long line.
23015 Fix comment.
23016
f3de38f1 230172013-05-31 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
23018 Igor Zamyatin <igor.zamyatin@intel.com>
23019
23020 Silvermont (SLM) architecture performance tuning.
23021 * config/i386/i386.h (enum ix86_tune_indices): Add
23022 X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS.
23023 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS): New define.
23024
23025 * config/i386/i386.c (initial_ix86_tune_features)
23026 <X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS>: Initialize.
23027 (ix86_lea_outperforms): Handle Silvermont tuning.
23028 (ix86_avoid_lea_for_add): Add new argument to ix86_lea_outperforms
23029 call.
23030 (ix86_use_lea_for_mov): Likewise.
23031 (ix86_avoid_lea_for_addr): Likewise.
23032 (ix86_lea_for_add_ok): Likewise.
23033 (exact_dependency_1): New function.
23034 (exact_store_load_dependency): Likewise.
23035 (ix86_adjust_cost): Handle Silvermont tuning.
23036 (do_reoder_for_imul): Likewise.
23037 (swap_top_of_ready_list): New function.
23038 (ix86_sched_reorder): Changed to handle Silvermont tuning.
23039
23040 * config/i386/i386.md (peepholes that split memory operand in fp
23041 converts): New.
23042
78d82aec 230432013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
23044
23045 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
23046 Remove un-necessary braces.
23047
12a60807 230482013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
23049
23050 * config/aarch64/aarch64.c (aarch64_classify_symbol):
23051 Use SYMBOL_TINY_ABSOLUTE for AARCH64_CMODEL_TINY_PIC.
23052
6dfe7d53 230532013-05-31 Tobias Burnus <burnus@net-b.de>
23054
23055 PR middle-end/57073
cf1f9f8b 23056 * tree-ssa-math-opts.c (execute_cse_sincos): Move check further up.
6dfe7d53 23057
74d6113f 230582013-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23059
23060 PR target/56315
23061 * config/arm/arm.c (const_ok_for_dimode_op): Handle IOR.
23062 * config/arm/arm.md (*iordi3_insn): Change to insn_and_split.
23063 * config/arm/neon.md (iordi3_neon): Remove.
23064 (neon_vorr<mode>): Generate iordi3 instead of iordi3_neon.
23065 * config/arm/predicates.md (imm_for_neon_logic_operand):
23066 Move to earlier in the file.
23067 (neon_logic_op2): Likewise.
23068 (arm_iordi_operand_neon): New predicate.
23069
5cfd0eb5 230702013-05-31 Richard Biener <rguenther@suse.de>
23071
23072 PR tree-optimization/57478
23073 PR tree-optimization/57453
23074 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Uses in PHI nodes
23075 are life as well.
23076
789a3e1c 230772013-05-31 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
23078
23079 * config/rl78/rl78.md (mulqi3,mulhi3): New define_expands.
23080 (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): New define_insns.
23081
377db285 230822013-05-30 Tobias Burnus <burnus@net-b.de>
23083 Thomas Koenig <tkoenig@gcc.gnu.org>
23084
23085 PR middle-end/57073
23086 * tree-ssa-math-opts.c (execute_cse_sincos): Optimize
23087 powi (-1.0, k) to (k & 1) ? -1.0 : 1.0.
23088
8a139381 230892013-05-30 Steven Bosscher <steven@gcc.gnu.org>
23090
377db285 23091 * rtlanal.c (tablejump_p): Expect table and label to be adjacent.
8a139381 23092
4a2ca8f3 230932013-05-30 Vladimir Makarov <vmakarov@redhat.com>
23094
23095 * target.def (register_usage_leveling_p): New hook.
23096 * targhooks.c (default_register_usage_leveling_p): New.
23097 * targhooks.h (default_register_usage_leveling_p): New prototype.
23098 * lra-assigns.c (register_usage_leveling_p): Use the hook.
23099 * doc/tm.texi.in (TARGET_REGISTER_USAGE_LEVELING_P): New hook.
23100 * doc/tm.texi: Update.
23101 * config/i386/i386.c (TARGET_REGISTER_USAGE_LEVELING_P): Define.
23102
fb08a7c6 231032013-05-30 Ian Bolton <ian.bolton@arm.com>
23104
23105 * config/aarch64/aarch64.md (insv<mode>): New define_expand.
23106 (*insv_reg<mode>): New define_insn.
23107
c3d2d0e4 231082013-05-30 Joern Rennecke <joern.rennecke@embecosm.com>
5bea3269 23109
23110 PR rtl-optimization/57439
23111 * postreload.c (move2add_valid_value_p): Check that we have
23112 a zero subreg_regno_offset when accessing the register in
23113 the requested mode.
23114
564c5b22 231152013-05-30 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
23116 Igor Zamyatin <igor.zamyatin@intel.com>
23117
23118 Silvermont (SLM) architecture pipeline model, tuning and
23119 insn selection.
23120 * config.gcc: Add slm config options and target.
23121
23122 * config/i386/slm.md: New.
23123
23124 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
23125
e33c5592 23126 * config/i386/i386-c.c (ix86_target_macros_internal): New case
564c5b22 23127 PROCESSOR_SLM.
23128 (ix86_target_macros_internal): Likewise.
23129
e33c5592 23130 * config/i386/i386.c (slm_cost): New cost.
564c5b22 23131 (m_SLM): New macro flag.
23132 (initial_ix86_tune_features): Set m_SLM.
23133 (x86_accumulate_outgoing_args): Likewise.
23134 (x86_arch_always_fancy_math_387): Likewise.
23135 (processor_target_table): Add slm cost.
23136 (cpu_names): Add slm cpu name.
23137 (x86_option_override_internal): Set SLM ISA.
23138 (ix86_issue_rate): New case PROCESSOR_SLM.
23139 (ia32_multipass_dfa_lookahead): Likewise.
23140 (fold_builtin_cpu): Add slm.
23141
23142 * config/i386/i386.h (TARGET_SLM): New target macro.
23143 (target_cpu_default): Add TARGET_CPU_DEFAULT_slm.
23144 (processor_type): Add PROCESSOR_SLM.
23145
23146 * config/i386/i386.md (cpu): Add new value "slm".
23147 (slm.md): Include slm.md.
23148
0686440e 231492013-05-30 Bernd Schmidt <bernds@codesourcery.com>
23150 Zhenqiang Chen <zhenqiang.chen@linaro.org>
23151
23152 * config/arm/arm-protos.h: Add and update function protos.
23153 * config/arm/arm.c (use_simple_return_p): New added.
23154 (thumb2_expand_return): Check simple_return flag.
23155 * config/arm/arm.md: Add simple_return and conditional simple_return.
23156 * config/arm/iterators.md: Add iterator for return and simple_return.
23157
cf94bbe6 231582013-05-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
23159
23160 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
23161 (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
23162 (arm_emit_vfp_multi_reg_pop): Likewise.
23163 (thumb2_emit_ldrd_pop): Likewise.
23164 (arm_expand_epilogue): Add misc REG_CFA notes.
23165 (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
23166
7b7a707b 231672013-05-29 Lawrence Crowl <crowl@google.com>
23168
23169 * config/arm/t-arm: Update for below.
23170
23171 * config/arm/arm.c (arm_libcall_uses_aapcs_base::libcall_htab):
23172 Change type to hash_table. Update dependent calls and types.
23173
23174 * config/i386/t-cygming: Update for below.
23175
23176 * config/i386/t-interix: Update for below.
23177
23178 * config/i386/winnt.c (i386_pe_section_type_flags::htab):
23179 Change type to hash_table. Update dependent calls and types.
23180 (i386_find_on_wrapper_list::wrappers): Likewise.
23181
23182 * config/ia64/t-ia64: Update for below.
23183
23184 * config/ia64/ia64.c (bundle_state_table):
23185 Change type to hash_table. Update dependent calls and types.
23186
23187 * config/mips/mips.c (mips_reorg_process_insns::htab):
23188 Change type to hash_table. Update dependent calls and types.
23189
23190 * config/sol2.c (solaris_comdat_htab):
23191 Change type to hash_table. Update dependent calls and types.
23192
23193 * config/t-sol2: Update for above.
23194
e6c8824e 231952013-05-29 Teresa Johnson <tejohnson@google.com>
23196
23197 * passes.c (dump_passes): Use FOR_EACH_FUNCTION since
23198 functions are not yet marked as defined.
23199
ae52d0de 232002013-05-29 Michael Meissner <meissner@linux.vnet.ibm.com>
c3d2d0e4 23201 Pat Haugen <pthaugen@us.ibm.com>
23202 Peter Bergner <bergner@vnet.ibm.com>
ae52d0de 23203
23204 * config/rs6000/vector.md (VEC_I): Add support for new power8 V2DI
23205 instructions.
23206 (VEC_A): Likewise.
23207 (VEC_C): Likewise.
23208 (vrotl<mode>3): Likewise.
23209 (vashl<mode>3): Likewise.
23210 (vlshr<mode>3): Likewise.
23211 (vashr<mode>3): Likewise.
23212
23213 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
23214 support for power8 V2DI builtins.
23215
23216 * config/rs6000/rs6000-builtin.def (abs_v2di): Add support for
23217 power8 V2DI builtins.
23218 (vupkhsw): Likewise.
23219 (vupklsw): Likewise.
23220 (vaddudm): Likewise.
23221 (vminsd): Likewise.
23222 (vmaxsd): Likewise.
23223 (vminud): Likewise.
23224 (vmaxud): Likewise.
23225 (vpkudum): Likewise.
23226 (vpksdss): Likewise.
23227 (vpkudus): Likewise.
23228 (vpksdus): Likewise.
23229 (vrld): Likewise.
23230 (vsld): Likewise.
23231 (vsrd): Likewise.
23232 (vsrad): Likewise.
23233 (vsubudm): Likewise.
23234 (vcmpequd): Likewise.
23235 (vcmpgtsd): Likewise.
23236 (vcmpgtud): Likewise.
23237 (vcmpequd_p): Likewise.
23238 (vcmpgtsd_p): Likewise.
23239 (vcmpgtud_p): Likewise.
23240 (vupkhsw): Likewise.
23241 (vupklsw): Likewise.
23242 (vaddudm): Likewise.
23243 (vmaxsd): Likewise.
23244 (vmaxud): Likewise.
23245 (vminsd): Likewise.
23246 (vminud): Likewise.
23247 (vpksdss): Likewise.
23248 (vpksdus): Likewise.
23249 (vpkudum): Likewise.
23250 (vpkudus): Likewise.
23251 (vrld): Likewise.
23252 (vsld): Likewise.
23253 (vsrad): Likewise.
23254 (vsrd): Likewise.
23255 (vsubudm): Likewise.
23256
23257 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
23258 support for power8 V2DI instructions.
23259
23260 * config/rs6000/altivec.md (UNSPEC_VPKUHUM): Add support for
23261 power8 V2DI instructions. Combine pack and unpack insns to use an
23262 iterator for each mode. Check whether a particular mode supports
23263 Altivec instructions instead of just checking TARGET_ALTIVEC.
23264 (UNSPEC_VPKUWUM): Likewise.
23265 (UNSPEC_VPKSHSS): Likewise.
23266 (UNSPEC_VPKSWSS): Likewise.
23267 (UNSPEC_VPKUHUS): Likewise.
23268 (UNSPEC_VPKSHUS): Likewise.
23269 (UNSPEC_VPKUWUS): Likewise.
23270 (UNSPEC_VPKSWUS): Likewise.
23271 (UNSPEC_VPACK_SIGN_SIGN_SAT): Likewise.
23272 (UNSPEC_VPACK_SIGN_UNS_SAT): Likewise.
23273 (UNSPEC_VPACK_UNS_UNS_SAT): Likewise.
23274 (UNSPEC_VPACK_UNS_UNS_MOD): Likewise.
23275 (UNSPEC_VUPKHSB): Likewise.
23276 (UNSPEC_VUNPACK_HI_SIGN): Likewise.
23277 (UNSPEC_VUNPACK_LO_SIGN): Likewise.
23278 (UNSPEC_VUPKHSH): Likewise.
23279 (UNSPEC_VUPKLSB): Likewise.
23280 (UNSPEC_VUPKLSH): Likewise.
23281 (VI2): Likewise.
23282 (VI_char): Likewise.
23283 (VI_scalar): Likewise.
23284 (VI_unit): Likewise.
23285 (VP): Likewise.
23286 (VP_small): Likewise.
23287 (VP_small_lc): Likewise.
23288 (VU_char): Likewise.
23289 (add<mode>3): Likewise.
23290 (altivec_vaddcuw): Likewise.
23291 (altivec_vaddu<VI_char>s): Likewise.
23292 (altivec_vadds<VI_char>s): Likewise.
23293 (sub<mode>3): Likewise.
23294 (altivec_vsubcuw): Likewise.
23295 (altivec_vsubu<VI_char>s): Likewise.
23296 (altivec_vsubs<VI_char>s): Likewise.
23297 (altivec_vavgs<VI_char>): Likewise.
23298 (altivec_vcmpbfp): Likewise.
23299 (altivec_eq<mode>): Likewise.
23300 (altivec_gt<mode>): Likewise.
23301 (altivec_gtu<mode>): Likewise.
23302 (umax<mode>3): Likewise.
23303 (smax<mode>3): Likewise.
23304 (umin<mode>3): Likewise.
23305 (smin<mode>3): Likewise.
23306 (altivec_vpkuhum): Likewise.
23307 (altivec_vpkuwum): Likewise.
23308 (altivec_vpkshss): Likewise.
23309 (altivec_vpkswss): Likewise.
23310 (altivec_vpkuhus): Likewise.
23311 (altivec_vpkshus): Likewise.
23312 (altivec_vpkuwus): Likewise.
23313 (altivec_vpkswus): Likewise.
23314 (altivec_vpks<VI_char>ss): Likewise.
23315 (altivec_vpks<VI_char>us): Likewise.
23316 (altivec_vpku<VI_char>us): Likewise.
23317 (altivec_vpku<VI_char>um): Likewise.
23318 (altivec_vrl<VI_char>): Likewise.
23319 (altivec_vsl<VI_char>): Likewise.
23320 (altivec_vsr<VI_char>): Likewise.
23321 (altivec_vsra<VI_char>): Likewise.
23322 (altivec_vsldoi_<mode>): Likewise.
23323 (altivec_vupkhsb): Likewise.
23324 (altivec_vupkhs<VU_char>): Likewise.
23325 (altivec_vupkls<VU_char>): Likewise.
23326 (altivec_vupkhsh): Likewise.
23327 (altivec_vupklsb): Likewise.
23328 (altivec_vupklsh): Likewise.
23329 (altivec_vcmpequ<VI_char>_p): Likewise.
23330 (altivec_vcmpgts<VI_char>_p): Likewise.
23331 (altivec_vcmpgtu<VI_char>_p): Likewise.
23332 (abs<mode>2): Likewise.
23333 (vec_unpacks_hi_v16qi): Likewise.
23334 (vec_unpacks_hi_v8hi): Likewise.
23335 (vec_unpacks_lo_v16qi): Likewise.
23336 (vec_unpacks_hi_<VP_small_lc>): Likewise.
23337 (vec_unpacks_lo_v8hi): Likewise.
23338 (vec_unpacks_lo_<VP_small_lc>): Likewise.
23339 (vec_pack_trunc_v8h): Likewise.
23340 (vec_pack_trunc_v4si): Likewise.
23341 (vec_pack_trunc_<mode>): Likewise.
23342
23343 * config/rs6000/altivec.h (vec_vaddudm): Add defines for power8
23344 V2DI builtins.
23345 (vec_vmaxsd): Likewise.
23346 (vec_vmaxud): Likewise.
23347 (vec_vminsd): Likewise.
23348 (vec_vminud): Likewise.
23349 (vec_vpksdss): Likewise.
23350 (vec_vpksdus): Likewise.
23351 (vec_vpkudum): Likewise.
23352 (vec_vpkudus): Likewise.
23353 (vec_vrld): Likewise.
23354 (vec_vsld): Likewise.
23355 (vec_vsrad): Likewise.
23356 (vec_vsrd): Likewise.
23357 (vec_vsubudm): Likewise.
23358 (vec_vupkhsw): Likewise.
23359 (vec_vupklsw): Likewise.
23360
15ca8f90 233612013-05-29 Jan Hubicka <jh@suse.cz>
23362
23363 * cgraph.h (symtab_node_base): Add definition, alias and analyzed
23364 flags; reorder rest of fields in more consistent way.
23365 (varpool_node): Remove analyzed, finalized and alias.
23366 (cgraph_ndoe): Likewise.
23367 (symtab_alias_ultimate_target): New function.
23368 (cgraph_function_node): Move offline.
23369 (cgraph_reset_node): Declare.
23370 (cgraph_comdat_can_be_unshared_p): Remove.
23371 (varpool_remove_initializer): Declare.
23372 (varpool_first_defined_variable, varpool_next_defined_variable
23373 cgraph_first_defined_function, cgraph_next_defined_function): Update.
23374 (cgraph_function_with_gimple_body_p): Update.
23375 (varpool_all_refs_explicit_p): Update.
23376 (symtab_alias_target): New function.
23377 (cgraph_alias_aliased_node, varpool_alias_aliased_node): Rename to ...
23378 (cgraph_alias_target, varpool_alias_target): .. this one; simplify.
cf1f9f8b 23379 (cgraph_function_or_thunk_node): Simplify using
23380 symtab_alias_ultimate_target.
15ca8f90 23381 (varpool_variable_node): Likewise.
23382 * cgraph.c (cgraph_create_function_alias): Update.
23383 (cgraph_add_thunk): Update.
23384 (cgraph_remove_node): Update.
23385 (dump_cgraph_node): Do not dump removed flags.
23386 (cgraph_function_body_availability): Update.
23387 (cgraph_propagate_frequency): Update.
23388 (verify_cgraph_node): Check sanity of local flag.
23389 (cgraph_function_node): Move here from cgraph.h; revamp for
23390 cgraph_function_or_thunk_node.
23391 * lto-symtab.c (lto_varpool_replace_node): Update.
23392 (lto_symtab_resolve_can_prevail_p): Update.
23393 (lto_symtab_merge_cgraph_nodes): Update.
23394 * ipa-cp.c (determine_versionability, initialize_node_lattices,
23395 propagate_constants_accross_call, devirtualization_time_bonus,
23396 ipcp_propagate_stage): Update.
23397 * tree-emutls.c (create_emultls_var, ipa_lower_emutls): Update.
cf1f9f8b 23398 * ipa-inline-transform.c (clone_inlined_nodes,
23399 preserve_function_body_p): Update.
15ca8f90 23400 * ipa-reference.c (propagate): Update.
23401 (write_node_summary_p): Update.
23402 * toplev.c (wrapup_global_declaration_2): Update.
23403 * cgraphunit.c (cgraph_analyze_function): Rename to ...
23404 (analyze_function) ... this one.
23405 (cgraph_process_new_functions): Update.
23406 (cgraph_reset_node): Export.
23407 (cgraph_finalize_function): Update.
23408 (cgraph_add_new_function): Update.
23409 (process_function_and_variable_attributes): Update.
23410 (varpool_finalize_decl): Update.
23411 (symbol_finalized): Remove.
23412 (symbol_finalized_and_needed): Rename to ...
23413 (symbol_defined_and_needed): ... update.
23414 (cgraph_analyze_functions): Update.
23415 (handle_alias_pairs): Update.
23416 (mark_functions_to_output): Update.
23417 (assemble_thunk): Update.
23418 (output_in_order): Update.
23419 (output_weakrefs): Update.
23420 (finalize_compilation_unit): Update.
23421 * lto-cgraph.c (reachable_from_other_partition_p, lto_output_node,
23422 lto_output_varpool_node, compute_ltrans_boundary, input_overwrite_node,
23423 input_node, input_varpool_node): Update.
23424 * dbxout.c (dbxout_expand_expr): Update.
23425 * cgraphclones.c (cgraph_clone_node): Update.
23426 (cgraph_copy_node_for_versioning): Update.
23427 (cgraph_materialize_clone): Update.
23428 (cgraph_materialize_all_clones): Update.
23429 * ipa-pure-const.c (analyze_function, pure_const_write_summary,
23430 propagate_pure_const, propagate_nothrow): Update.
23431 * lto-streamer-out.c (lto_output, write_symbol): Update.
23432 * ipa-utils.c (ipa_reverse_postorder): Update.
23433 * ipa-inline.c (can_inline_edge_p): Update.
23434 (update_caller_keys, ipa_inline): Update.
23435 * dwarf2out.c (reference_to_unused,
23436 premark_types_used_by_global_vars_helper): Update.
23437 * tree-eh.c (tree_could_trap_p): Update.
23438 * ipa-split.c (consider_split, execute_split_functions): Update.
23439 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
cf1f9f8b 23440 has_addr_references_p): Update; move ahead in file for better
23441 readability.
15ca8f90 23442 (process_references): Simplify.
23443 (symtab_remove_unreachable_nodes): Update; cleanup way function/var
23444 bodies are removed.
23445 (cgraph_comdat_can_be_unshared_p): Make static.
23446 (cgraph_externally_visible_p): Update.
23447 (varpool_externally_visible_p): Update.
23448 (function_and_variable_visibility): Update.
23449 * trans-mem.c (get_cg_data, ipa_tm_mayenterirr_function,
23450 ipa_tm_mark_force_output_node): Update.
23451 * ipa-inline-analysis.c (dump_inline_summary, initialize_inline_failed,
23452 estimate_edge_devirt_benefit, inline_generate_summary,
23453 inline_write_summary): Update.
23454 * gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
23455 * ipa-prop.c (ipa_compute_jump_functions): Update.
cf1f9f8b 23456 (ipa_print_node_params, ipa_prop_read_section,
23457 ipa_update_after_lto_read, read_replacements_section): Update.
15ca8f90 23458 * varasm.c (mark_decl_referenced): Update.
23459 (assemble_alias, dump_tm_clone_pairs): Update.
23460 * tree-inline.c (copy_bb): Update.
23461 (estimate_num_insns, optimize_inline_calls, tree_function_versioning):
23462 Update.
23463 * symtab.c (dump_symtab_base): Print new flags.
23464 (verify_symtab_base): Verify new flags.
23465 (symtab_alias_ultimate_target): New function.
23466 * tree-ssa-structalias.c (get_constraint_for_ssa_var,
23467 create_variable_info_for, associate_varinfo_to_alias, ipa_pta_execute):
23468 Update.
cf1f9f8b 23469 * passes.c (ipa_write_summaries, ipa_write_optimization_summaries):
23470 Update.
15ca8f90 23471 * i386.c (ix86_get_function_versions_dispatcher,
23472 ix86_generate_version_dispatcher_body): Update.
23473 (fold_builtin_cpu): Use varpool_add_new_variable.
23474 * varpool.c (varpool_remove_initializer): Break out from ...
23475 (varpool_remove_node): ... this one.
23476 (dump_varpool_node, varpool_node_for_asm,
23477 cgraph_variable_initializer_availability, varpool_analyze_node,
23478 varpool_assemble_decl, varpool_remove_unreferenced_decls,
cf1f9f8b 23479 varpool_finalize_named_section_flags, varpool_create_variable_alias):
23480 Update.
15ca8f90 23481
993fd1eb 234822013-05-29 Jan Hubicka <jh@suse.cz>
23483
23484 * passes.c (init_optimization_passes): Move OMP expansion into lowering.
23485
b3c1a1cd 234862013-05-29 Easwaran Raman <eraman@google.com>
23487
23488 PR tree-optimization/57442
23489 * tree-ssa-reassoc.c (appears_later_in_bb): Return correct value
23490 when control exits the main loop.
23491
f0964309 234922013-05-29 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
23493
23494 * rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add macros for RX100, RX200,
23495 and RX600.
cf1f9f8b 23496 * rx/rx.opt: Add macro for rx100 with string rx100 and value RX100.
f0964309 23497 * rx/rx-opts.h (rx_cpu_types): Add new cpu type rx100.
23498 * rx/t-rx: Add rx100 under multi library matches option for nofpu
23499 option.
23500
259c15e6 235012013-05-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
23502
23503 PR tree-optimization/57441
23504 * gimple-ssa-strength-reduction.c (analyze_candidates_and_replace):
23505 Don't limit size of incr_vec to number of candidates.
23506
0985b4a2 235072013-05-29 Steve Ellcey <sellcey@imgtec.com>
23508
23509 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add micromips
23510 and mips16 directories.
cf1f9f8b 23511 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Add micromips and mips16.
0985b4a2 23512 (MULTILIB_DIRNAMES): Ditto.
23513 (MULTILIB_EXCEPTIONS): Add new exceptions.
23514 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Add micromips.
23515 (MULTILIB_DIRNAMES): Ditto.
23516 (MULTILIB_EXCEPTIONS): Add new exceptions.
23517
c3d2d0e4 235182012-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
5137d3cb 23519 Marcus Shawcroft <marcus.shawcroft@arm.com>
23520
23521 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
23522 SYMBOL_TINY_ABSOLUTE.
23523 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Handle
23524 SYMBOL_TINY_ABSOLUTE.
23525 (aarch64_expand_mov_immediate): Likewise.
23526 (aarch64_classify_symbol): Likewise.
23527 (aarch64_mov_operand_p): Remove ATTRIBUTE_UNUSED.
23528 Permit SYMBOL_TINY_ABSOLUTE.
23529 * config/aarch64/predicates.md (aarch64_mov_operand): Permit CONST.
23530
c3d2d0e4 235312013-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
e03531ec 23532 Marcus Shawcroft <marcus.shawcroft@arm.com>
23533
23534 * config/aarch64/aarch64.c (aarch64_classify_symbol): Remove comment.
23535 Refactor if/switch. Replace gcc_assert with if.
23536
46f4ca2e 235372013-05-29 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
23538
23539 * config/i386/i386.c (initial_ix86_tune_features): Enable
23540 FP Reassociation for AMD bdver1 and bdver2.
23541
9b3c8ca4 235422013-05-29 Martin Jambor <mjambor@suse.cz>
23543
23544 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REF, REALPART_EXPR
23545 and IMAGPART_EXPR do not occur within other handled_components.
23546
65526f7f 235472013-05-29 Richard Biener <rguenther@suse.de>
23548
23549 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Guard vinfo
23550 access on whether the use is in the BB we currently try to
23551 vectorize.
23552 (vect_bb_vectorization_profitable_p): Pass the BB we currently
23553 vectorize to vect_bb_slp_scalar_cost.
23554
32afb748 235552013-05-29 Richard Biener <rguenther@suse.de>
23556
23557 * tree-vect-slp.c (vect_bb_slp_scalar_cost): New function
23558 computing scalar cost offsetted by stmts that are kept live
23559 by scalar uses.
23560 (vect_bb_vectorization_profitable_p): Use vect_bb_slp_scalar_cost
23561 for computation of scalar cost.
23562
d36d2527 235632013-05-28 Steve Ellcey <sellcey@mips.com>
23564
23565 * config/mips/mips-cpus.def (mips32r2): Change processor type.
23566
3c6d4197 235672013-05-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
23568
23569 * doc/extend.texi (C Extensions): Added documentation about Cilk Plus
23570 array notation built-in reduction functions.
23571 * doc/passes.texi (Passes): Added documentation about changes done
23572 for Cilk Plus.
23573 * doc/invoke.texi (C Dialect Options): Added documentation about
23574 the -fcilkplus flag.
23575 * Makefile.in (C_COMMON_OBJS): Added c-family/array-notation-common.o.
23576 (BUILTINS_DEF): Depend on cilkplus.def.
23577 * builtins.def: Include cilkplus.def. Define DEF_CILKPLUS_BUILTIN.
23578 * builtin-types.def: Define BT_FN_INT_PTR_PTR_PTR.
23579 * cilkplus.def: New file.
23580
c3d2d0e4 235812013-05-28 Joern Rennecke <joern.rennecke@embecosm.com>
17ce39e3 23582
23583 PR rtl-optimization/57439
23584 * postreload.c (move2add_use_add2_insn): Use gen_lowpart_common.
23585
bb88a6c7 235862013-05-28 Easwaran Raman <eraman@google.com>
23587
23588 PR tree-optimization/57337
23589 * tree-ssa-reassoc.c (appears_later_in_bb): New function.
23590 (find_insert_point): Correctly identify the insertion point
23591 when two statements with the same UID is compared.
23592
8911f4de 235932013-05-28 Richard Biener <rguenther@suse.de>
23594
23595 PR tree-optimization/56787
23596 * tree-vect-data-refs.c (vect_analyze_data_refs): Drop clobbers
23597 from the list of data references.
23598 * tree-vect-loop.c (vect_determine_vectorization_factor): Skip
23599 clobbers.
23600 (vect_analyze_loop_operations): Likewise.
23601 (vect_transform_loop): Remove clobbers.
23602
49c71be6 236032013-05-28 Martin Jambor <mjambor@suse.cz>
23604
23605 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REFs, IMAGPART_EXPRs
23606 and REALPART_EXPRs have scalar type.
23607
a3c29ebc 236082013-05-28 Richard Biener <rguenther@suse.de>
23609
23610 PR tree-optimization/57411
23611 * tree-ssa-copy.c (may_propagate_copy): Cannot propagate
23612 virtual operands.
23613 * tree-ssa-dom.c (eliminate_const_or_copy): Special-case
23614 virtual operand propagation.
23615
65c294e9 236162013-05-28 Eric Botcazou <ebotcazou@adacore.com>
23617
23618 * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use %g0 as
23619 destination register for bmasksi_vis.
23620 (vector_init_bshuffle): Likewise.
23621 * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
23622
d6a0a4b0 236232013-05-28 Eric Botcazou <ebotcazou@adacore.com>
23624
23625 * doc/invoke.texi (SPARC Options): Document -mfix-ut699.
23626 * builtins.c (expand_builtin_mathfn) <BUILT_IN_SQRT>: Try to widen the
23627 mode if the instruction isn't available in the original mode.
23628 * config/sparc/sparc.opt (mfix-ut699): New option.
23629 * config/sparc/sparc.md (muldf3_extend): Disable if -mfix-ut699.
23630 (divdf3): Turn into expander.
23631 (divdf3_nofix): New insn.
23632 (divdf3_fix): Likewise.
23633 (divsf3): Disable if -mfix-ut699.
23634 (sqrtdf2): Turn into expander.
23635 (sqrtdf2_nofix): New insn.
23636 (sqrtdf2_fix): Likewise.
23637 (sqrtsf2): Disable if -mfix-ut699.
23638
5f037457 236392013-05-27 Richard Biener <rguenther@suse.de>
23640
23641 PR middle-end/57412
23642 * omp-low.c (expand_omp_atomic_pipeline): Use the correct latch
23643 block for the new loop.
23644
e4800344 236452013-05-27 Richard Biener <rguenther@suse.de>
23646
23647 PR tree-optimization/57343
23648 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Do not
23649 use multiple_of_p if not TYPE_OVERFLOW_UNDEFINED.
23650 (number_of_iterations_cond): Do not build the folded tree.
23651
d68e9408 236522013-05-27 Richard Biener <rguenther@suse.de>
23653
23654 Revert
23655 PR middle-end/57381
23656 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
23657 OEP_CONSTANT_ADDRESS_OF retained.
23658
23659 PR tree-optimization/57417
23660 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Fix test
23661 for unchanged base.
23662 (set_ssa_val_to): Compare addresses using
23663 get_addr_base_and_unit_offset.
23664
c3d2d0e4 236652013-05-27 Joern Rennecke <joern.rennecke@embecosm.com>
b6b86e87 23666
23667 PR rtl-optimization/56833
23668 * postreload.c (move2add_record_mode): New function.
23669 (move2add_record_sym_value, move2add_valid_value_p): Likewise.
23670 (move2add_use_add2_insn): Use move2add_record_sym_value.
23671 (move2add_use_add3_insn): Likewise.
23672 (reload_cse_move2add): Use move2add_valid_value_p and
23673 move2add_record_mode. Invalidate call-clobbered and REG_INC
23674 affected regs by setting reg_mode to VOIDmode.
23675 (move2add_note_store): Don't pretend the inside of a SUBREG is
23676 the actual destination. Invalidate single/leading registers by
23677 setting reg_mode to VOIDmode.
23678 Use move2add_record_sym_value, move2add_valid_value_p and
23679 move2add_record_mode.
23680
575a3e39 236812013-05-27 Richard Biener <rguenther@suse.de>
23682
23683 PR tree-optimization/57396
23684 * tree-affine.c (double_int_constant_multiple_p): Properly
23685 return false for val == 0 and div != 0.
23686
e0462563 236872013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
23688
23689 * config/mips/mips.h: Use #elif in preprocessor conditions.
23690
188bbdec 236912013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
23692
23693 PR target/53916
23694 * config/mips/constraints.md (kl): New constraint.
23695 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Delete.
23696 (divmod<mode>4_internal): Rename to divmod<mode>4. Use "kl" as the
23697 constraint for operand 0. Split after CSE for MIPS16. Emit a move
23698 from LO for MIPS16.
23699 (udivmod<mode>4_internal): Likewise udivmod<mode>4.
23700
073ac520 237012013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
23702
23703 PR target/55777
23704 * config/mips/mips.c (mips_can_inline_p): New function.
23705 (TARGET_CAN_INLINE_P): Define.
23706
242d1ee6 237072013-05-25 Steven Bosscher <steven@gcc.gnu.org>
23708
23709 * sched-int.h (ds_t, dw_t): Make unsigned int.
23710 Fix documentation that describes how all the ds_t bits are used.
23711 Reserve the last bit for delayed-branch scheduling.
23712 (BITS_PER_DEP_STATUS): Move to ds_t typedef.
23713 (BITS_PER_DEP_WEAK): Fix definition and documentation.
23714 (gen_dep_weak_1): Remove prototype.
23715 * sched-deps.c (get_dep_weak_1): Make static.
23716 * target.def (speculate_insn, needs_block_p, gen_spec_check,
23717 get_insn_spec_ds, get_insn_checked_ds): Adjust hook prototypes.
23718 * doc/tm.texi: Regenerate.
23719 * config/ia64/ia64.c (ia64_needs_block_p): Update prototype.
23720
2fdeadc1 237212013-05-24 Steven Bosscher <steven@gcc.gnu.org>
23722
23723 PR debug/56950
23724 * haifa-sched.c (sched_extend_bb): Ignore DEBUG_INSNs.
23725
473d3d50 237262013-05-24 Nathan Sidwell <nathan@codesourcery.com>
23727 Sandra Loosemore <sandra@codesourcery.com>
23728
23729 * config.gcc (powerpc-*): Allow native for with-cpu.
23730
65a8f1a1 237312013-05-24 Jeff Law <law@redhat.com>
23732
23733 PR tree-optimization/57124
23734 * tree-vrp.c (simplify_cond_using_ranges): Only simplify a
23735 conversion feeding a condition if the range has an overflow
23736 if -fstrict-overflow. Add warnings for when we do make the
23737 transformation.
23738
0dc2f395 237392013-05-24 Dehao Chen <dehao@google.com>
23740
89321355 23741 * tree-cfg.c (locus_discrim_map): Fix the typo.
0dc2f395 23742 (locus_discrim_hasher): Likewise.
23743 (locus_discrim_hasher::hash): Likewise.
23744 (locus_discrim_hasher::equal): Likewise.
23745
7d9f258f 237462013-05-24 Martin Jambor <mjambor@suse.cz>
23747
23748 PR tree-optimization/57294
23749 * cgraph.h (ipa_record_stmt_references): Declare.
23750 * cgraphbuild.c (ipa_record_stmt_references): New function.
23751 (build_cgraph_edges): Use ipa_record_stmt_references.
23752 (rebuild_cgraph_edges): Likewise.
23753 (cgraph_rebuild_references): Likewise.
23754 * ipa-prop.c (ipa_modify_call_arguments): Discard references
23755 associated with the old statement and build references from the
23756 newly built statements.
23757 * ipa-ref.c (ipa_remove_stmt_references): New function.
23758 * ipa-ref.h (ipa_remove_stmt_references): Declare.
23759
cc0dc61b 237602013-05-24 Vladimir Makarov <vmakarov@redhat.com>
23761
f3de38f1 23762 * lra-constraints.c (emit_spill_move): Use smaller mode for
cc0dc61b 23763 mem-mem moves.
f3de38f1 23764 (check_and_process_move): Consider mem-reg moves for secondary
cc0dc61b 23765 too.
f3de38f1 23766 (curr_insn_transform): Don't lose insns emitted before for
cc0dc61b 23767 secondary memory moves.
23768 (inherit_in_ebb): Mark defined reg. Add usage only if it is not a
23769 reg set up in the current insn.
23770
601ee7b3 237712013-05-24 Dehao Chen <dehao@google.com>
23772
89321355 23773 * tree-cfg.c (locus_descrim_hasher::hash): Change discriminator
601ee7b3 23774 hash function.
23775 (locus_descrim_hasher::equal): Likewise.
89321355 23776 (build_gimple_cfg): New discriminator assignment algorithm.
601ee7b3 23777 (make_edges): Likewise.
23778 (next_discriminator_for_locus): Likewise.
23779 (same_line_p): Likewise.
23780 (assign_discriminators): Likewise.
23781 (make_cond_expr_edges): Likewise.
23782 (make_gimple_switch_edges): Likewise.
23783 (make_goto_expr_edges): Likewise.
23784 (make_gimple_asm_edges): Likewise.
23785
2f42b453 237862013-05-24 Ian Bolton <ian.bolton@arm.com>
23787
23788 * config/aarch64/aarch64.c (aarch64_print_operand): Change the
23789 X format specifier to only display bottom 16 bits.
23790 * config/aarch64/aarch64.md (insv_imm<mode>): Allow any size of
23791 immediate to match for operand 2, since it will be masked.
23792
5f4dd0d0 237932013-05-24 Richard Biener <rguenther@suse.de>
23794
23795 PR tree-optimization/57287
23796 * tree-ssa-uninit.c (compute_uninit_opnds_pos): Disregard
23797 all SSA names that occur in abnormal PHIs.
23798
f982ec99 237992013-05-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
23800
23801 PR tree-ssa/57385
23802 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Check
23803 that index is not negative.
23804
fe081106 238052013-05-24 Eric Botcazou <ebotcazou@adacore.com>
23806
23807 PR rtl-optimization/55177
23808 * simplify-rtx.c (simplify_unary_operation_1) <NOT>: Deal with BSWAP.
23809 (simplify_byte_swapping_operation): New.
23810 (simplify_binary_operation_1): Call it for AND, IOR and XOR.
23811 (simplify_relational_operation_1): Deal with BSWAP.
23812
3111042a 238132013-05-23 Richard Henderson <rth@redhat.com>
23814
23815 PR target/56742
23816 * config/i386/i386.c (ix86_seh_fixup_eh_fallthru): New.
23817 (ix86_reorg): Call it.
23818
8ebff8a4 238192013-05-23 Uros Bizjak <ubizjak@gmail.com>
23820
23821 PR target/57379
23822 * config/alpha/alpha.md (unspec): Add UNSPEC_XFLT_COMPARE.
23823 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Construct
23824 REG_EQUAL note as UNSPEC_XFLT_COMPARE unspec.
23825
56cff37b 238262013-05-23 Christian Bruel <christian.bruel@st.com>
23827
23828 PR debug/57351
23829 * config/arm/arm.c (arm_dwarf_register_span): Do not use dbx number.
23830
c3d2d0e4 238312013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
a5ebd4c4 23832 Marcus Shawcroft <marcus.shawcroft@arm.com>
23833
23834 * config/aarch64/aarch64.md (*movdi_aarch64): Replace Usa with S.
23835 * config/aarch64/constraints.md (Usa): Remove.
23836 * doc/md.texi (AArch64 Usa): Remove.
23837
c3d2d0e4 238382013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
fda698d7 23839 Marcus Shawcroft <marcus.shawcroft@arm.com>
23840
23841 * config/aarch64/aarch64-protos.h (aarch64_mov_operand_p): Define.
23842 * config/aarch64/aarch64.c (aarch64_mov_operand_p): Define.
23843 * config/aarch64/predicates.md (aarch64_const_address): Remove.
23844 (aarch64_mov_operand): Use aarch64_mov_operand_p.
23845
c3d2d0e4 238462013-05-23 Vidya Praveen <vidyapraveen@arm.com>
9cacc1ad 23847
23848 * config/aarch64/aarch64-simd.md (clzv4si2): Support for CLZ
23849 instruction (AdvSIMD).
23850 * config/aarch64/aarch64-builtins.c
23851 (aarch64_builtin_vectorized_function): Handler for BUILT_IN_CLZ.
23852 * config/aarch64/aarch-simd-builtins.def: Entry for CLZ.
23853
74d5ea33 238542013-05-23 Martin Jambor <mjambor@suse.cz>
fb8b391e 23855
23856 PR middle-end/57347
23857 * tree.h (contains_bitfld_component_ref_p): Declare.
23858 * tree-sra.c (contains_bitfld_comp_ref_p): Move...
8ebff8a4 23859 * tree.c (contains_bitfld_component_ref_p): ...here. Adjust its
23860 caller.
fb8b391e 23861 * ipa-prop.c (determine_known_aggregate_parts): Check that LHS does
23862 not access a bit-field. Assert all final offsets are byte-aligned.
23863
6979886b 238642013-05-23 Richard Biener <rguenther@suse.de>
23865
23866 PR tree-optimization/57380
23867 * tree-ssa-phiprop.c (propagate_with_phi): Do not require at
23868 least one invariant or re-used load.
23869 * passes.c (init_optimization_passes): Move pass_phiprop before
23870 pass_forwprop.
23871
b776525d 238722013-05-23 James Greenhalgh <james.greenhalgh@arm.com>
23873
23874 * config/aarch64/aarch64-simd.md
23875 (aarch64_cm<optab>di): Add clobber of CC_REGNUM to unsplit pattern.
23876
324d4d99 238772013-05-23 Richard Biener <rguenther@suse.de>
23878
23879 PR middle-end/57381
23880 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
23881 OEP_CONSTANT_ADDRESS_OF retained.
23882
98908b23 238832013-05-23 Jakub Jelinek <jakub@redhat.com>
23884
23885 PR middle-end/57344
8ebff8a4 23886 * expmed.c (store_split_bit_field): If op0 is a REG or SUBREG of a REG,
23887 don't lower unit. Handle unit not being always BITS_PER_WORD.
98908b23 23888
81c3220e 238892013-05-23 Richard Biener <rguenther@suse.de>
23890
23891 PR rtl-optimization/57341
23892 * ira.c (validate_equiv_mem_from_store): Use anti_dependence
23893 instead of true_dependence.
23894
7b38ffff 238952013-05-22 David Malcolm <dmalcolm@redhat.com>
23896
72524e91 23897 * bb-reorder.c (branch_threshold): Make const.
23898 (exec_threshold): Ditto.
7b38ffff 23899
81f0e7d0 239002013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
c3d2d0e4 23901 Pat Haugen <pthaugen@us.ibm.com>
23902 Peter Bergner <bergner@vnet.ibm.com>
81f0e7d0 23903
23904 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Add
23905 documentation for the power8 crypto builtins.
23906
23907 * config/rs6000/t-rs6000 (MD_INCLUDES): Add crypto.md.
23908
23909 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_1): Add support
23910 macros for defining power8 builtin functions.
23911 (BU_P8V_AV_2): Likewise.
23912 (BU_P8V_AV_P): Likewise.
23913 (BU_P8V_VSX_1): Likewise.
23914 (BU_P8V_OVERLOAD_1): Likewise.
23915 (BU_P8V_OVERLOAD_2): Likewise.
23916 (BU_CRYPTO_1): Likewise.
23917 (BU_CRYPTO_2): Likewise.
23918 (BU_CRYPTO_3): Likewise.
23919 (BU_CRYPTO_OVERLOAD_1): Likewise.
23920 (BU_CRYPTO_OVERLOAD_2): Likewise.
23921 (XSCVSPDP): Fix typo, point to the correct instruction.
23922 (VCIPHER): Add power8 crypto builtins.
23923 (VCIPHERLAST): Likewise.
23924 (VNCIPHER): Likewise.
23925 (VNCIPHERLAST): Likewise.
23926 (VPMSUMB): Likewise.
23927 (VPMSUMH): Likewise.
23928 (VPMSUMW): Likewise.
23929 (VPERMXOR_V2DI): Likewise.
23930 (VPERMXOR_V4SI: Likewise.
23931 (VPERMXOR_V8HI: Likewise.
23932 (VPERMXOR_V16QI: Likewise.
23933 (VSHASIGMAW): Likewise.
23934 (VSHASIGMAD): Likewise.
23935 (VPMSUM): Likewise.
23936 (VPERMXOR): Likewise.
23937 (VSHASIGMA): Likewise.
23938
23939 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
23940 __CRYPTO__ if the crypto instructions are available.
23941 (altivec_overloaded_builtins): Add support for overloaded power8
23942 builtins.
23943
23944 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
23945 support for power8 crypto builtins.
23946 (builtin_function_type): Likewise.
23947 (altivec_init_builtins): Add support for builtins that take vector
23948 long long (V2DI) arguments.
23949
23950 * config/rs6000/crypto.md: New file, define power8 crypto
23951 instructions.
23952
239532013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
c3d2d0e4 23954 Pat Haugen <pthaugen@us.ibm.com>
23955 Peter Bergner <bergner@vnet.ibm.com>
81f0e7d0 23956
23957 * doc/invoke.texi (Option Summary): Add power8 options.
23958 (RS/6000 and PowerPC Options): Likewise.
23959
23960 * doc/md.texi (PowerPC and IBM RS6000 constraints): Update to use
23961 constraints.md instead of rs6000.h. Reorder w* constraints. Add
23962 wm, wn, wr documentation.
23963
e33c5592 23964 * config/rs6000/constraints.md (wm): New constraint for VSX
81f0e7d0 23965 registers if direct move instructions are enabled.
23966 (wn): New constraint for no registers.
23967 (wq): New constraint for quad word even GPR registers.
23968 (wr): New constraint if 64-bit instructions are enabled.
23969 (wv): New constraint if power8 vector instructions are enabled.
23970 (wQ): New constraint for quad word memory locations.
23971
e33c5592 23972 * config/rs6000/predicates.md (const_0_to_15_operand): New
81f0e7d0 23973 constraint for 0..15 for crypto instructions.
23974 (gpc_reg_operand): If VSX allow registers in VSX registers as well
23975 as GPR and floating point registers.
23976 (int_reg_operand): New predicate to match only GPR registers.
23977 (base_reg_operand): New predicate to match base registers.
23978 (quad_int_reg_operand): New predicate to match even GPR registers
23979 for quad memory operations.
23980 (vsx_reg_or_cint_operand): New predicate to allow vector logical
23981 operations in both GPR and VSX registers.
23982 (quad_memory_operand): New predicate for quad memory operations.
23983 (reg_or_indexed_operand): New predicate for direct move support.
23984
e33c5592 23985 * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED):
81f0e7d0 23986 Inherit from ISA_2_4_MASKS, not ISA_2_2_MASKS.
23987 (ISA_2_7_MASKS_SERVER): New mask for ISA 2.07 (i.e. power8).
23988 (POWERPC_MASKS): Add power8 options.
23989 (power8 cpu): Use ISA_2_7_MASKS_SERVER instead of specifying the
23990 various options.
23991
e33c5592 23992 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
81f0e7d0 23993 Define _ARCH_PWR8 and __POWER8_VECTOR__ for power8.
23994
e33c5592 23995 * config/rs6000/rs6000.opt (-mvsx-timode): Add documentation.
81f0e7d0 23996 (-mpower8-fusion): New power8 options.
23997 (-mpower8-fusion-sign): Likewise.
23998 (-mpower8-vector): Likewise.
23999 (-mcrypto): Likewise.
24000 (-mdirect-move): Likewise.
24001 (-mquad-memory): Likewise.
24002
e33c5592 24003 * config/rs6000/rs6000.c (power8_cost): Initial definition for power8.
81f0e7d0 24004 (rs6000_hard_regno_mode_ok): Make PTImode only match even GPR
24005 registers.
8ebff8a4 24006 (rs6000_debug_reg_print): Print the base register class if -mdebug=reg.
81f0e7d0 24007 (rs6000_debug_vector_unit): Add p8_vector.
24008 (rs6000_debug_reg_global): If -mdebug=reg, print power8 constraint
24009 definitions. Also print fusion state.
24010 (rs6000_init_hard_regno_mode_ok): Set up power8 constraints.
24011 (rs6000_builtin_mask_calculate): Add power8 builtin support.
24012 (rs6000_option_override_internal): Add support for power8.
24013 (rs6000_common_init_builtins): Add debugging for skipped builtins
24014 if -mdebug=builtin.
24015 (rs6000_adjust_cost): Add power8 support.
24016 (rs6000_issue_rate): Likewise.
24017 (insn_must_be_first_in_group): Likewise.
24018 (insn_must_be_last_in_group): Likewise.
24019 (force_new_group): Likewise.
24020 (rs6000_register_move_cost): Likewise.
24021 (rs6000_opt_masks): Likewise.
24022
24023 * config/rs6000/rs6000.h (ASM_CPU_POWER8_SPEC): If we don't have a
24024 power8 capable assembler, default to power7 options.
24025 (TARGET_DIRECT_MOVE): Likewise.
24026 (TARGET_CRYPTO): Likewise.
24027 (TARGET_P8_VECTOR): Likewise.
24028 (VECTOR_UNIT_P8_VECTOR_P): Define power8 vector support.
24029 (VECTOR_UNIT_VSX_OR_P8_VECTOR_P): Likewise.
24030 (VECTOR_MEM_P8_VECTOR_P): Likewise.
24031 (VECTOR_MEM_VSX_OR_P8_VECTOR_P): Likewise.
24032 (VECTOR_MEM_ALTIVEC_OR_VSX_P): Likewise.
24033 (TARGET_XSCVDPSPN): Likewise.
24034 (TARGET_XSCVSPDPN): Likewsie.
24035 (TARGET_SYNC_HI_QI): Likewise.
24036 (TARGET_SYNC_TI): Likewise.
24037 (MASK_CRYPTO): Likewise.
24038 (MASK_DIRECT_MOVE): Likewise.
24039 (MASK_P8_FUSION): Likewise.
24040 (MASK_P8_VECTOR): Likewise.
8ebff8a4 24041 (REG_ALLOC_ORDER): Move fr13 to be lower in priority so that the TFmode
24042 temporary used by some of the direct move instructions to get two FP
24043 temporary registers does not force creation of a stack frame.
81f0e7d0 24044 (VLOGICAL_REGNO_P): Allow vector logical operations in GPRs.
24045 (MODES_TIEABLE_P): Move the VSX tests above the Altivec tests so
24046 that any VSX registers are tieable, even if they are also an
24047 Altivec vector mode.
24048 (r6000_reg_class_enum): Add wm, wr, wv constraints.
24049 (RS6000_BTM_P8_VECTOR): Power8 builtin support.
24050 (RS6000_BTM_CRYPTO): Likewise.
24051 (RS6000_BTM_COMMON): Likewise.
24052
24053 * config/rs6000/rs6000.md (cpu attribute): Add power8.
24054 * config/rs6000/rs6000-opts.h (PROCESSOR_POWER8): Likewise.
24055 (enum rs6000_vector): Add power8 vector support.
24056
7fa9818b 240572013-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
24058
24059 PR target/19599
24060 PR target/57340
24061 * config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
24062 (any_sibcall_could_use_r3): this and handle indirect calls.
24063 (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
24064
ed11924e 240652013-05-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24066
24067 * config/rs6000/rs6000.h (MALLOC_ABI_ALIGNMENT): New #define.
24068
bb268663 240692013-05-22 Richard Biener <rguenther@suse.de>
24070
24071 PR middle-end/57349
24072 * profile.c (branch_prob): Do not split blocks that are
24073 abnormally receiving from ECF_RETURNS_TWICE functions.
24074
e7dd8581 240752013-05-22 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
24076
24077 * recog.c (offsettable_address_addr_space_p): Fix calculation of
24078 address mode. Move pointer mode initialization to the same place.
24079
873bf3e1 240802013-05-22 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
24081
24082 * read-rtl.c (copy_rtx_for_iterators): Continue applying iterators
24083 while it has any effect.
24084
64e4dbea 240852013-05-21 Easwaran Raman <eraman@google.com>
24086
24087 PR tree-optimization/57322
bb88a6c7 24088 * tree-ssa-reassoc.c (build_and_add_sum): If a BB is empty, set the
24089 UID of the statement added to the BB to be 1.
64e4dbea 24090
1c872eee 240912013-05-21 Jakub Jelinek <jakub@redhat.com>
24092
24093 PR tree-optimization/57331
8ebff8a4 24094 * tree-vrp.c (simplify_cond_using_ranges): Don't optimize comparison
24095 of conversion from pointer type to integral type with integer.
1c872eee 24096
f965232f 240972013-05-21 Martin Jambor <mjambor@suse.cz>
24098
24099 PR lto/57289
24100 * ipa-prop.c (ipa_read_node_info): Process param_used and
24101 controlled_uses in the same order as when writing.
24102
86642a49 241032013-05-21 Magnus Granberg <baldrick@free.fr>
24104
24105 PR plugins/56754
515b2f23 24106 * Makefile.in (PLUGIN_HEADERS): Add $(TARGET_H).
86642a49 24107
ae8a8b85 241082013-05-21 Richard Biener <rguenther@suse.de>
24109
24110 PR tree-optimization/57318
24111 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not
24112 estimate stmts with side-effects as likely eliminated.
24113
35d3304d 241142013-05-21 Richard Biener <rguenther@suse.de>
24115
24116 PR tree-optimization/57330
24117 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Properly
24118 preserve the call stmts fntype.
24119
03dccd68 241202013-05-21 Richard Biener <rguenther@suse.de>
24121
24122 PR tree-optimization/57303
24123 * tree-ssa-sink.c (statement_sink_location): Improve killing
24124 stmt detection and properly handle self-assignments.
24125
3983036a 241262013-05-21 Christian Bruel <christian.bruel@st.com>
24127
f3de38f1 24128 * dwarf2out.c (multiple_reg_loc_descriptor): Use dbx_reg_number for
24129 spanning registers. LEAF_REG_REMAP is supported only for contiguous
3983036a 24130 registers. Set register size out of the PARALLEL loop.
24131
dbc31e6d 241322013-05-20 Oleg Endo <olegendo@gcc.gnu.org>
24133
24134 PR target/56547
24135 * config/sh/sh.md (fmasf4): Remove empty constraints strings.
24136 (*fmasf4, *fmasf4_media): New insns.
24137
6bb79546 241382013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
24139
24140 * config/mips/mips.h (BASE_INSN_LENGTH, NOP_INSN_LENGTH): New macros.
24141 * config/mips/mips.c (mips_symbol_insns, mips_address_insns)
24142 (mips_const_insns, mips_split_const_insns, mips_load_store_insns)
24143 (mips_idiv_insns): Update the comments to say that the returned
24144 instruction counts are in units of BASE_INSN_LENGTH.
24145 (mips_adjust_insn_length): Multiply the mips_load_label_num_insns
24146 by BASE_INSN_LENGTH rather than 4. Add the jump separately,
24147 using 2 rather than 4 as the length of indirect MIPS16 and
24148 microMIPS jumps. Use NOP_INSN_LENGTH rather than 4 as the
24149 length of a NOP. Don't divide MIPS16 lengths by 2.
24150 (mips16_split_long_branches): Assume a branch is long if the
24151 length is greater than 4 rather than 8.
24152 * config/mips/mips.md (length): Give MIPS16 lengths directly,
24153 rather than multiplying them by 2. Multiply instruction counts
24154 by BASE_INSN_LENGTH rather than 4.
24155 (*jump_mips16, tls_get_tp_mips16_<mode>)
24156 (*tls_get_tp_mips16_call_<mode>): Divide lengths by 2.
24157
18ea5fe9 241582013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
24159
24160 * config/mips/mips.md (extended_mips16): Remove branch case.
24161 (length): Remove duplicated extended_mips16 test.
24162
28763a15 241632013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
24164
24165 * config/mips/t-sde: Don't build 64-bit microMIPS multilibs.
24166
a31fe3d0 241672013-05-18 Richard Sandiford <rdsandiford@googlemail.com>
24168
24169 * recog.h (Recog_data): Rename to...
24170 (recog_data_d): ...this.
24171 (recog_data): Update accordingly.
24172 * recog.c (recog_data): Likewise.
24173 * reload.c (save_recog_data): Likewise.
24174 * config/picochip/picochip.c (picochip_saved_recog_data): Likewise.
24175 (picochip_save_recog_data, picochip_restore_recog_data): Likewise.
24176
f473eb72 241772013-05-17 Julian Brown <julian@codesourcery.com>
24178
24179 * gcse.c (compute_ld_motion_mems): If a non-simple MEM is
24180 found in a REG_EQUAL note, invalidate it.
24181
5f7f04d8 241822013-05-17 Easwaran Raman <eraman@google.com>
a2bd0c99 24183
24184 * tree-ssa-reassoc.c (find_insert_point): New function.
24185 (insert_stmt_after): Likewise.
24186 (get_def_stmt): Likewise.
24187 (ensure_ops_are_available): Likewise.
24188 (not_dominated_by): Likewise.
24189 (rewrite_expr_tree): Do not move statements beyond what is
24190 necessary. Remove call to swap_ops_for_binary_stmt...
24191 (reassociate_bb): ... and move it here.
24192 (build_and_add_sum): Assign UIDs for new statements.
24193 (linearize_expr): Likewise.
24194 (do_reassoc): Renumber gimple statement UIDs.
24195
fc8456b4 241962013-05-17 Jan Hubicka <jh@suse.cz>
24197
24198 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Resolve cross module
24199 weakrefs.
24200 * cgraph.c (dump_cgraph_node): Do not ice on unresolved alias.
ae837da3 24201 * cgraphunit.c (handle_alias_pairs): Store target of unresolved
24202 weakrefs.
fc8456b4 24203 (output_weakrefs): Update.
24204
9ea71c42 242052013-05-17 Po-Chun Chang <pchang9@cs.wisc.edu>
24206 Martin Jambor <mjambor@suse.cz>
24207
24208 PR middle-end/57276
24209 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Break when a
24210 value that corresponds to the given aggval is found in values vector.
24211
fb0f74a7 242122013-05-17 Uros Bizjak <ubizjak@gmail.com>
24213
24214 * config/i386/driver-i386.c (host_detect_local_cpu): Pass mmx, 3dnow,
24215 sse, sse2, sse3, ssse3 and sse4a flags to options.
24216
a50dd382 242172013-05-17 David Malcolm <dmalcolm@redhat.com>
24218
24219 * gengtype-state.c: (s_expr_writer): New class, to handle
24220 prettifying of output layout of s-expressions.
24221 (state_writer): New class, to write out gtype.state.
24222 (state_written_type_count): Move this variable into member data of
24223 state_writer.
24224 (s_expr_writer::s_expr_writer): New code: constructor for new class
24225 (state_writer::state_writer(): ditto
24226 (s_expr_writer::write_new_line): New function
24227 (s_expr_writer::write_any_indent): ditto
24228 (s_expr_writer::begin_s_expr): ditto
24229 (s_expr_writer::end_s_expr): ditto
24230 (write_state_fileloc): convert to method of state_writer...
24231 (state_writer:: write_state_fileloc): ...and use methods of
24232 s_expr_writer to write indentation into the gtype.state output file
24233 to visually represent the hierarchical structure of the list
24234 structures
24235 (write_state_fields): ditto, renaming to...
24236 (state_writer::write_state_fields)
24237 (write_state_a_string): ditto, renaming to...
24238 (state_writer::write_state_a_string)
24239 (write_state_string_option): ditto, renaming to...
24240 (state_writer::write_state_string_option)
24241 (write_state_type_option): ditto, renaming to...
24242 (state_writer::write_state_type_option)
24243 (write_state_nested_option): ditto, renaming to...
24244 (state_writer::write_state_nested_option)
24245 (write_state_option): ditto, renaming to...
24246 (state_writer::write_state_option)
24247 (write_state_options): ditto, renaming to...
24248 (state_writer::write_state_options)
24249 (write_state_lang_bitmap): ditto, renaming to...
24250 (state_writer::write_state_lang_bitmap)
24251 (write_state_version): ditto, renaming to...
24252 (state_writer::write_state_version)
24253 (write_state_scalar_type): ditto, renaming to...
24254 (state_writer::write_state_scalar_type)
24255 (write_state_string_type): ditto, renaming to...
24256 (state_writer::write_state_string_type)
24257 (write_state_undefined_type): ditto, renaming to...
24258 (state_writer::write_state_undefined_type)
24259 (write_state_struct_union_type): ditto, renaming to...
24260 (state_writer::write_state_struct_union_type)
24261 (write_state_struct_type): ditto, renaming to...
24262 (state_writer::write_state_struct_type)
24263 (write_state_user_struct_type): ditto, renaming to...
24264 (state_writer::write_state_user_struct_type)
24265 (write_state_lang_struct_type): ditto, renaming to...
24266 (state_writer::write_state_lang_struct_type)
24267 (write_state_param_struct_type): ditto, renaming to...
24268 (state_writer::write_state_param_struct_type)
24269 (write_state_pointer_type): ditto, renaming to...
24270 (state_writer::write_state_pointer_type)
24271 (write_state_array_type): ditto, renaming to...
24272 (state_writer::write_state_array_type)
24273 (write_state_gc_used): ditto, renaming to...
24274 (state_writer::write_state_gc_used)
24275 (write_state_common_type_content): ditto, renaming to...
24276 (state_writer::write_state_common_type_content)
24277 (write_state_type): ditto, renaming to...
24278 (state_writer::write_state_type)
24279 (write_state_pair_list): ditto, renaming to...
24280 (state_writer::write_state_pair_list)
24281 (write_state_pair): ditto, renaming to...
24282 (state_writer::write_state_pair)
24283 (write_state_typedefs): ditto, renaming to...
24284 (state_writer::write_state_typedefs)
24285 (write_state_structures): ditto, renaming to...
24286 (state_writer::write_state_structures)
24287 (write_state_param_structs): ditto, renaming to...
24288 (state_writer::write_state_param_structs)
24289 (write_state_variables): ditto, renaming to...
24290 (state_writer::write_state_variables)
24291 (write_state_srcdir): ditto, renaming to...
24292 (state_writer::write_state_srcdir)
24293 (write_state_files_list): ditto, renaming to...
24294 (state_writer::write_state_files_list)
24295 (write_state_languages): ditto, renaming to...
24296 (state_writer::write_state_languages)
24297 (write_state): create a state_writer instance and use it when
24298 writing out the state file
24299
639d27bb 243002013-05-17 Mike Stump <mikestump@comcast.net>
24301
65e47909 24302 PR rtl-optimization/57304
639d27bb 24303 * web.c (union_match_dups): Ensure that DF_REF_LOC exists before
24304 accessing DF_REF_REAL_LOC.
24305
6150dc35 243062013-05-17 Jakub Jelinek <jakub@redhat.com>
24307
24308 PR rtl-optimization/57281
24309 PR rtl-optimization/57300
24310 * config/i386/i386.md (extendsidi2_1 dead reg splitter): Remove.
24311 (extendsidi2_1 peephole2s): Add instead 2 new peephole2s, that undo
24312 what the other splitter did if the registers are dead.
24313
83d18d6d 243142013-05-17 Richard Biener <rguenther@suse.de>
24315
24316 * tree-ssa-alias.c (stmt_kills_ref_p_1): Properly compare
24317 MEM_REF offsets.
24318
86d5f657 243192013-05-17 Jakub Jelinek <jakub@redhat.com>
24320
24321 * gcc.c (SANITIZER_SPEC): Reject -fsanitize=address -fsanitize=thread
24322 linking.
24323
1390d90a 243242013-05-17 Marek Polacek <polacek@redhat.com>
24325
fb0f74a7 24326 * tree-ssa-strlen.c (handle_char_store): Don't invalidate cached
24327 length when doing non-zero store of storing '\0' to '\0'.
1390d90a 24328
d38deed0 243292013-05-17 Jakub Jelinek <jakub@redhat.com>
24330
0a015fc7 24331 * tree-vect-patterns.c (vect_recog_rotate_pattern): For
24332 vect_external_def oprnd1 with loop_vinfo, try to emit
24333 optional cast, negation and and stmts on the loop preheader
24334 edge instead of into the pattern def seq.
24335
d38deed0 24336 PR tree-optimization/57051
24337 * fold-const.c (const_binop) <case VEC_LSHIFT_EXPR,
24338 case VEC_RSHIFT_EXPR>: Fix BYTES_BIG_ENDIAN handling.
24339
fbac2992 243402013-05-16 Nick Clifton <nickc@redhat.com>
24341
24342 * config/rl78/rl78.c (rl78_attribute_table): Add naked.
24343 (rl78_is_naked_func): New function.
47dd4311 24344 (rl78_expand_prologue): Skip prologue generation for naked functions.
24345 (rl78_expand_epilogue): Skip epilogue generation for naked functions.
fbac2992 24346 * doc/extend.texi (naked): Add RL78 to the list of processors
24347 that supports this attribute.
24348
1ba55558 243492013-05-16 Jeff Law <law@redhat.com>
24350
24351 * Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H).
24352
e35017c0 243532013-05-16 Uros Bizjak <ubizjak@gmail.com>
24354
24355 * config/i386/driver-i386.c (host_detect_local_cpu): Determine
24356 cache parameters using detect_caches_amd also for CYRIX,
24357 NSC and TM2 signatures.
24358
6d17d827 243592013-05-16 Uros Bizjak <ubizjak@gmail.com>
24360 Dzianis Kahanovich <mahatma@eu.by>
24361
24362 PR target/45359
24363 PR target/46396
24364 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
24365 VIA/Centaur processors and determine their cache parameters
24366 using detect_caches_amd.
24367
4bf32a77 243682013-05-16 Teresa Johnson <tejohnson@google.com>
24369
24370 * cfgrtl.c (verify_hot_cold_block_grouping): Return err.
24371 (rtl_verify_edges): New function.
24372 (rtl_verify_bb_insns): Ditto.
24373 (rtl_verify_bb_pointers): Ditto.
24374 (rtl_verify_bb_insn_chain): Ditto.
24375 (rtl_verify_fallthru): Ditto.
24376 (rtl_verify_bb_layout): Ditto.
24377 (rtl_verify_flow_info_1): Outline checks into new functions.
24378 (rtl_verify_flow_info): Ditto.
24379
d99f53b2 243802013-05-16 Steve Ellcey <sellcey@imgtec.com>
24381
24382 * cfghooks.c (copy_bbs): Add update_dominance argument.
24383 * cfghooks.h (copy_bbs): Update prototype.
24384 * tree-cfg.c (gimple_duplicate_sese_region):
24385 Add update_dominance argument.
24386 * tree-flow.h (gimple_duplicate_sese_region): Update prototype.
24387 * tree-ssa-loop-ch.c (copy_loop_headers): Update
24388 gimple_duplicate_sese_region call.
24389 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg):
24390 Update copy_bbs call.
24391 * cfgloopmanip.c (duplicate_loop_to_header_edge): Ditto.
24392 * trans-mem.c (ipa_uninstrument_transaction): Ditto.
24393
cb4792d2 243942013-05-16 Jakub Jelinek <jakub@redhat.com>
24395
24396 * tree-vectorizer.h (NUM_PATTERNS): Increment.
24397 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
24398 vect_recog_rotate_pattern.
24399 (vect_recog_rotate_pattern): New function.
24400
be5f9e46 244012013-05-16 Jason Merrill <jason@redhat.com>
24402
24403 * Makefile.in (LLINKER): New variable.
24404 (mostlyclean): Remove link mutex.
24405 * configure.ac: Handle --enable-link-mutex.
24406 * lock-and-run.sh: New script.
24407
9dbfd743 244082013-05-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
24409
24410 PR target/19599
24411 * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
24412 for NULL decl.
24413
a98345a3 244142013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24415
24416 * reorg.c (link_cc0_insns): Wrap in #ifdef HAVE_cc0.
24417
ae51a965 244182013-05-16 Greta Yorsh <Greta.Yorsh@arm.com>
24419
24420 * config/arm/arm-protos.h (gen_movmem_ldrd_strd): New declaration.
24421 * config/arm/arm.c (next_consecutive_mem): New function.
24422 (gen_movmem_ldrd_strd): Likewise.
24423 * config/arm/arm.md (movmemqi): Update condition and code.
24424 (unaligned_loaddi, unaligned_storedi): New patterns.
24425
062ed845 244262013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24427
24428 * config.gcc: Obsolete *-*-solaris2.9*.
24429 * doc/install.texi (Specific, *-*-solaris2*): Document it.
24430
9c7f0e62 244312013-05-16 Richard Biener <rguenther@suse.de>
24432
24433 * passes.c (init_optimization_passes): Move pass_parallelize_loops
24434 earlier, after GRAPHITE transforms and IV canonicalization.
24435
8e6b4515 244362013-05-16 Jakub Jelinek <jakub@redhat.com>
24437
24438 * omp-low.c (extract_omp_for_data): For collapsed loops,
24439 if at least one of the loops is known at compile time to
24440 iterate zero times, set count to 0.
24441 (expand_omp_regimplify_p): New function.
24442 (expand_omp_for_generic): For collapsed loops, if at least
24443 one of the loops isn't known to iterate at least once,
24444 add runtime check with setting count to 0.
24445 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
24446 For unsigned types if it isn't known at compile time that
24447 the loop will iterate at least once, add runtime check to bypass
24448 the whole loop if initial condition isn't true.
24449
5c62c52a 244502013-05-16 Nathan Sidwell <nathan@codesourcery.com>
24451
24452 * varasm.c (default_use_anchors_for_symbol_p): Use decl_replaceable_p.
24453
ea1b629e 244542013-05-16 Marc Glisse <marc.glisse@inria.fr>
24455
24456 PR middle-end/57286
24457 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Disable some
24458 transformations to avoid an infinite loop.
24459
d70b7140 244602013-05-16 Marek Polacek <polacek@redhat.com>
24461
24462 * tree-scalar-evolution.c (scev_const_prop): Add more dumps.
24463
93d015a0 244642013-05-15 Leif Ekblad <leif@rdos.net>
24465
24466 * config/i386/i386.c (ix86_decompose_address): Use
24467 DEFAULT_TLS_SEG_REG to access TLS segment register.
24468 * config/i386/i386.h (DEFAULT_TLS_SEG_REG): New define.
24469 * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Ditto.
24470 (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Ditto.
24471
c0de0233 244722013-05-15 Richard Sandiford <rdsandiford@googlemail.com>
24473
24474 PR target/57260
24475 * config/mips/mips.c (mips_function_ok_for_sibcall): Don't allow
24476 sibling calls to functions that would normally be lazily bound,
24477 unless $gp is call-clobbered.
24478
c27c2857 244792013-05-15 Uros Bizjak <ubizjak@gmail.com>
24480
6d17d827 24481 * config/i386/i386.c (ix86_option_override_internal): Update
c27c2857 24482 processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags. Add
55472891 24483 PTA_POPCNT to corei7 entry. Do not enable SSE prefetch on
24484 non-SSE 3dNow! targets. Enable TARGET_PRFCHW for TARGET_3DNOW targets.
c27c2857 24485 * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW instead
24486 of TARGET_3DNOW.
24487 (*prefetch_3dnow): Enable for TARGET_PRFCHW only.
24488
e2be515a 244892013-05-15 Andreas Schwab <schwab@suse.de>
24490
24491 * config/m68k/m68k.md (*rotlhi3_lowpart, *rotlqi3_lowpart): Name
24492 for rotlhi3+1 and rotlqi3+1, resp. Fix reference to non-existing
24493 third operand.
24494
830b796a 244952013-05-15 Teresa Johnson <tejohnson@google.com>
24496
24497 * loop-unroll.c (report_unroll_peel): Check decision before
24498 emitting unroll/peel message.
24499
812ca88e 245002013-05-15 Teresa Johnson <tejohnson@google.com>
24501
24502 * function.h (has_bb_partition): New rtl_data flag.
24503 (bb_reorder_complete): Ditto.
24504 * cfgcleanup.c (try_crossjump_to_edge): Check for has_bb_partition
24505 instead of flag_reorder_blocks_and_partition.
24506 * cfgrtl.c (verify_hot_cold_block_grouping): Moved from bb-reorder.c,
24507 with some enhancements.
24508 (rtl_verify_flow_info_1): Call verify_hot_cold_block_grouping.
24509 * bb-reorder.c (connect_traces): Check for has_bb_partition
24510 instead of flag_reorder_blocks_and_partition.
24511 (verify_hot_cold_block_grouping): Moved to cfgrtl.c.
24512 (reorder_basic_blocks): Set bb_reorder_complete flag, remove call to
24513 verify_hot_cold_block_grouping.
24514 (partition_hot_cold_basic_blocks): Set has_bb_partition.
24515
33ae7c4b 245162013-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
24517
24518 PR target/19599
24519 * config/arm/predicates.md (call_insn_operand): New predicate.
24520 * config/arm/constraints.md ("Cs", "Ss"): New constraints.
24521 * config/arm/arm.md (*call_insn, *call_value_insn): Match only
24522 if insn is not a tail call.
24523 (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
24524 registers.
24525 * config/arm/arm.h (enum reg_class): New caller save register class.
24526 (REG_CLASS_NAMES): Likewise.
24527 (REG_CLASS_CONTENTS): Likewise.
24528 * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
24529 without decls.
24530
b055bc88 245312013-05-15 Richard Biener <rguenther@suse.de>
24532
24533 * tree-vect-loop.c (vect_transform_loop): Use MSG_NOTE instead
24534 of MSG_OPTIMIZED_LOCATIONS.
24535 * tree-vect-slp.c (vect_make_slp_decision): Likewise.
24536 (vect_slp_transform_bb): Indicate location in MSG_OPTIMIZED_LOCATIONS
24537 message.
24538 * tree-vectorizer.c (vectorize_loops): Use MSG_NOTE instead
24539 of MSG_OPTIMIZED_LOCATIONS.
24540 (execute_vect_slp): Likewise.
24541 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
24542 (vect_create_cond_for_alias_checks): Likewise.
24543 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise.
24544 (vect_recog_widen_mult_pattern): Likewise.
24545 (vect_recog_widen_sum_pattern): Likewise.
24546 (vect_recog_over_widening_pattern): Likewise.
24547 (vect_recog_widen_shift_pattern): Likewise.
24548 (vect_recog_vector_vector_shift_pattern): Likewise.
24549 (vect_recog_divmod_pattern): Likewise.
24550 (vect_recog_mixed_size_cond_pattern): Likewise.
24551 (vect_recog_bool_pattern): Likewise.
24552 (vect_pattern_recog_1): Likewise.
24553
95fb3203 245542013-05-15 Martin Jambor <mjambor@suse.cz>
24555
24556 * ipa-prop.c (ipa_make_edge_direct_to_target): Redirect calls to
24557 non-functions to builtin_unreachable.
24558 * ipa-inline-transform.c (inline_call): Do not assert estimates were
24559 correct when new direct edges were discovered.
24560
15c999e3 245612013-05-15 Martin Jambor <mjambor@suse.cz>
24562
24563 * ipa-prop.c (ipa_print_node_jump_functions): Print symbol order in
24564 header, print symbol order instead of node uid, print more information
24565 about indirect edge targets.
24566 (ipa_make_edge_direct_to_target): Print symbol order instead of node
24567 uids.
24568 (ipa_make_edge_direct_to_target): Likewise.
24569 (remove_described_reference): Likewise.
24570 (propagate_controlled_uses): Likewise.
24571 (ipa_print_node_params): Also print symbol order.
24572 (ipcp_transform_function): Print symbol order instead of node uids.
24573 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
24574 (cgraph_get_create_real_symbol_node): Likewise.
24575 * ipa-cp.c (print_lattice): Likewise.
24576 (print_all_lattices): Likewise.
24577 (determine_versionability): Likewise.
24578 (initialize_node_lattices): Likewise.
24579 (estimate_local_effects): Likewise.
24580 (update_profiling_info): Likewise.
24581 (create_specialized_node): Likewise.
24582 (perhaps_add_new_callers): Likewise.
24583 (decide_about_value): Likewise.
24584 (decide_whether_version_node): Likewise.
24585 (identify_dead_nodes): Likewise.
24586 * ipa-inline-analysis.c (dump_inline_edge_summary): Likewise.
24587 (dump_inline_summary): Likewise.
24588 (estimate_node_size_and_time): Likewise.
24589 (inline_analyze_function): Likewise.
24590 * ipa-inline.c (report_inline_failed_reason): Likewise.
24591 (want_early_inline_function_p): Likewise.
24592 (edge_badness): Likewise.
24593 (update_edge_key): Likewise.
24594 (inline_small_functions): Likewise. Add dumping of order to two other
24595 dumps.
24596 * ipa-pure-const.c (pure_const_read_summary): Print symbol order
24597 instead of node uids.
24598 (propagate_pure_const): Likewise.
24599 (propagate_pure_const): Likewise.
24600 * ipa-utils.c (dump_cgraph_node_set): Likewise.
24601 * lto-cgraph.c (input_node): Explicitly specify we dump uid.
24602 * lto-symtab.c (lto_cgraph_replace_node): Print symbol order instead
24603 of node uids.
24604 * tree-pretty-print.c (dump_function_header): Likewise.
24605 * tree-sra.c (convert_callers_for_node): Dump in traditional format.
24606 Print symbol order instead of node uids.
24607
7af74943 246082013-05-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
24609
24610 * config/s390/s390.c (s390_register_move_cost): Don't impose the
24611 FPR<->GPR move cost penalty if ldgr/lgdr can be used.
24612
4c2623ad 246132013-05-15 Richard Biener <rguenther@suse.de>
24614
24615 PR tree-optimization/57275
24616 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Fix
24617 return value for fail to do runtime alias checks for gather loads.
24618
33864132 246192013-05-15 Jan Hubicka <jh@suse.cz>
24620
24621 PR lto/57038
24622 PR lto/47375
c27c2857 24623 * lto-symtab.c (lto_symtab_symbol_p): Add external symbol;
24624 weakrefs are not external.
24625 (lto_symtab_merge_decls): Fix thinko when dealing with
24626 non-lto_symtab decls.
33864132 24627 (lto_symtab_merge_cgraph_nodes): Use lto_symtab_symbol_p.
24628 (lto_symtab_prevailing_decl): Get int sync with lto_symtab_symbol_p.
24629 * varpool.c (dump_varpool_node): Dump more flags.
24630
9b0c154a 246312013-05-15 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
24632
24633 * config/i386/i386.c (processor_alias_table): Add instruction
24634 FSGSBASE for AMD bdver3 architecture.
24635
721cebe6 246362013-05-14 Jakub Jelinek <jakub@redhat.com>
24637
24638 * tree.c (warn_deprecated_use): Print file:line using locus color.
24639 * diagnostic.c (diagnostic_report_current_module): Print file:line
24640 and file:line:column using locus color.
24641
832f4182 246422013-05-14 Mike Stump <mikestump@comcast.net>
24643
24644 * gdbinit.in: Add __null.
24645
31beb4cd 246462013-05-14 Mike Stump <mikestump@comcast.net>
24647
24648 * recog.h: Rename struct recog_data to Recog_data.
24649 * recog.c: Likewise.
24650 * reload.c (can_reload_into): Likewise.
24651 * config/picochip/picochip.c: Likewise.
24652
14d27f18 246532013-05-14 Mike Stump <mikestump@comcast.net>
24654
24655 * web.c (union_match_dups): Also check DF_REF_REAL_LOC.
24656
9d853199 246572013-05-14 Steven Bosscher <steven@gcc.gnu.org>
24658
e1ed78c8 24659 * resource.h (struct resources): Remove unch_memory member.
24660 (CLEAR_RESOURCE): Don't clear unch_memory.
24661 * resource.c (mark_referenced_resources): Don't set it.
24662 (mark_set_resources): Likewise.
24663 (mark_target_live_regs): Don't clear it.
24664 (init_resource_info): Likewise.
24665 * reorg.c (resource_conflicts_p): Don't compare it.
24666 (redundant_insn): Don't set it.
24667
9d853199 24668 * rtl.h (next_label, skip_consecutive_labels, link_cc0_insns):
24669 Remove prototypes.
24670 * emit-rtl.c (next_label): Remove unused function.
24671 (skip_consecutive_labels, link_cc0_insns): Move to ...
24672 * reorg.c (skip_consecutive_labels, link_cc0_insns): ... here, the
24673 only place where these functions are used, and make them static.
24674
9be60878 246752013-05-14 Marc Glisse <marc.glisse@inria.fr>
24676
24677 * fold-const.c (fold_negate_expr): Handle vectors.
24678 (fold_truth_not_expr): Make it static.
24679 (fold_invert_truthvalue): New static function.
24680 (invert_truthvalue_loc): Handle vectors. Do not call
24681 fold_truth_not_expr directly.
24682 (fold_unary_loc) <BIT_NOT_EXPR>: Handle comparisons.
24683 <TRUTH_NOT_EXPR>: Do not cast to boolean.
24684 (fold_comparison): Handle vector constants.
24685 (fold_binary_loc) <TRUTH_XOR_EXPR>: Remove redundant code.
24686 (fold_ternary_loc) <VEC_COND_EXPR>: Adapt more COND_EXPR optimizations.
24687 * tree.h (fold_truth_not_expr): Remove declaration.
24688
2fcc3fb4 246892013-05-14 James Greenhalgh <james.greenhalgh@arm.com>
24690
24691 * config/aarch64/aarch64-simd.md
24692 (aarch64_vcond_internal<mode>): Rename to...
24693 (aarch64_vcond_internal<mode><mode>): ...This, for integer modes.
24694 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): ...This for
24695 float modes. Clarify all iterator modes.
24696 (vcond<mode><mode>): Use new name for vcond expanders.
24697 (vcond<v_cmp_result><mode>): Likewise.
24698 (vcondu<mode><mode>: Likewise.
24699 * config/aarch64/iterators.md (VDQF_COND): New.
24700
dbdcf3c6 247012013-05-14 Marc Glisse <marc.glisse@inria.fr>
24702
24703 PR bootstrap/57266
24704 * fold-const.c (fold_binary_loc) <shift>: Use an unsigned
24705 variable for the shift amount. Check that we shift by non-negative
24706 amounts.
24707
8d42bec1 247082013-05-14 Chung-Lin Tang <cltang@codesourcery.com>
24709
24710 PR target/42017
24711 * config/arm/arm.h (EPILOGUE_USES): Only return true
24712 for LR_REGNUM after epilogue_completed.
24713
c3d2d0e4 247142013-05-14 Joern Rennecke <joern.rennecke@embecosm.com>
b8f9423d 24715
24716 * config/avr/avr.c (avr_encode_section_info): Bail out if the type
c27c2857 24717 is error_mark_node.
b8f9423d 24718
a861c00f 247192013-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
24720
24721 PR target/57261
24722 * configure.ac (gcc_cv_ld_as_needed): Disable before Solaris 11
24723 and Solaris 11+/x86 with gld.
24724 * configure: Regenerate.
24725
b96ca9ca 247262013-05-14 Jakub Jelinek <jakub@redhat.com>
24727
24728 * expmed.c (expand_shift_1): Canonicalize rotates by
24729 constant bitsize / 2 to bitsize - 1.
b3ffac0b 24730 * simplify-rtx.c (simplify_binary_operation_1) <case ROTATE,
b96ca9ca 24731 case ROTATERT>: Likewise.
24732
24733 Revert:
24734 2013-05-10 Jakub Jelinek <jakub@redhat.com>
24735
24736 * config/i386/i386.md (rotateinv): New code attr.
24737 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
24738 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
24739 roll $31, %eax, etc.
24740
8aacb2c5 247412013-05-14 Richard Biener <rguenther@suse.de>
24742
24743 PR middle-end/57235
24744 * tree-eh.c (sink_clobbers): Give up for successors with
24745 multiple predecessors and no virtual uses.
24746
3726209b 247472013-05-14 Eric Botcazou <ebotcazou@adacore.com>
24748
24749 * config/sparc/sp64-elf.h (CPP_SUBTARGET_SPEC): Delete.
24750 * config/sparc/openbsd64.h (CPP_SUBTARGET_SPEC): Likewise.
24751
4620c2de 247522013-05-14 Jakub Jelinek <jakub@redhat.com>
24753
24754 PR middle-end/57251
24755 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Handle
24756 the case when both op0 and op1 have VOIDmode.
24757
57518f85 247582013-05-14 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
24759
24760 * config/rl78/rl78.md(mulsi3_g13): Add additional 'nop' required
24761 in multiply-accumulate mode.
24762
2fd796fd 247632013-05-13 Guozhi Wei <carrot@google.com>
24764
24765 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark new decl STATIC.
24766
cb2d23dd 247672013-05-13 Kai Tietz <ktietz@redhat.com>
24768
24769 PR target/56975
24770 * config/i386/cygming.h (TARGET_PECOFF): Define as true.
c27c2857 24771 * config/i386/i386.h (TARGET_PECOFF): Define by default as false.
cb2d23dd 24772 (PIC_OFFSET_TABLE_REGNUM): Use TARGET_PECOFF.
c27c2857 24773 * config/i386/i386.c (ix86_option_override_internal): Likewise.
cb2d23dd 24774 (ix86_expand_prologue): Likewise.
24775 (ix86_expand_split_stack_prologue): Likewise.
24776 (legitimate_pic_address_disp_p): Likewise.
24777 (legitimize_pic_address): Likewise.
24778 (legitimize_tls_address): Likewise.
24779 (legitimize_pe_coff_symbol): Likewise.
24780 (output_pic_addr_const): Likewise.
24781 (construct_plt_address): Likewise.
24782 (ix86_expand_call): Likewise.
24783 (x86_output_mi_thunk): Likewise.
24784 (x86_function_profiler): Likewise.
24785
e30d3162 247862013-05-13 Sofiane Naci <sofiane.naci@arm.com>
24787
24788 * config/aarch64/aarch64-simd.md (aarch64_simd_mov<mode>): Group
24789 similar switch cases.
24790 (aarch64_simd_mov): Rename to aarch64_split_simd_mov. Update.
24791 (aarch64_simd_mov_to_<mode>low): Delete.
24792 (aarch64_simd_mov_to_<mode>high): Delete.
24793 (move_lo_quad_<mode>): Add w<-r alternative.
24794 (aarch64_simd_move_hi_quad_<mode>): Likewise.
24795 (aarch64_simd_mov_from_*): Update type attribute.
24796 * config/aarch64/aarch64.c (aarch64_split_simd_move): Refacror switch
24797 statement.
24798
54ef9b16 247992013-05-13 Jan Hubicka <jh@suse.cz>
24800
24801 * mode-switching.c (optimize_mode_switching): Set correct RTL profile.
24802 * config/i386/i386.c (ix86_compute_frame_layout,
c27c2857 24803 ix86_expand_epilogue, emit_i387_cw_initialization,
24804 ix86_expand_vector_move_misalign, ix86_fp_comparison_strategy,
24805 ix86_local_alignment): Fix use of size/speed predicates.
54ef9b16 24806
043ce677 248072013-05-13 Jakub Jelinek <jakub@redhat.com>
24808
24809 PR tree-optimization/45216
24810 PR tree-optimization/57157
24811 * tree-ssa-forwprop.c (simplify_rotate): Only recognize
24812 the (-Y) & (B - 1) variant if OP is |.
24813 * expmed.c (expand_shift_1): For rotations by const0_rtx just
24814 return shifted. Use (-op1) & (prec - 1) as other_amount
24815 instead of prec - op1.
24816
096295f6 248172013-05-13 Martin Jambor <mjambor@suse.cz>
24818
24819 PR middle-end/42371
24820 * ipa-prop.h (IPA_UNDESCRIBED_USE): New macro.
24821 (ipa_constant_data): New type.
24822 (ipa_jump_func): Use ipa_constant_data to hold information about
24823 constant jump functions.
24824 (ipa_get_jf_constant): Adjust to jump function type changes.
24825 (ipa_get_jf_constant_rdesc): New function.
24826 (ipa_param_descriptor): New field controlled_uses.
24827 (ipa_get_controlled_uses): New function.
24828 (ipa_set_controlled_uses): Likewise.
24829 * ipa-ref.h (ipa_find_reference): Declare.
24830 * ipa-prop.c (ipa_cst_ref_desc): New type.
24831 (ipa_print_node_jump_functions_for_edge): Adjust for jump function type
24832 changes.
24833 (ipa_set_jf_constant): Likewise. Also create reference descriptions.
24834 New parameter cs. Adjust all callers.
24835 (ipa_analyze_params_uses): Detect uncontrolled and controlled uses.
24836 (remove_described_reference): New function.
24837 (jfunc_rdesc_usable): Likewise.
24838 (try_make_edge_direct_simple_call): Decrement controlled use count,
24839 attempt to remove reference if it hits zero.
24840 (combine_controlled_uses_counters): New function.
24841 (propagate_controlled_uses): Likewise.
24842 (ipa_propagate_indirect_call_infos): Call propagate_controlled_uses.
24843 (ipa_edge_duplication_hook): Duplicate reference descriptions.
24844 (ipa_print_node_params): Print described use counter.
24845 (ipa_write_jump_function): Adjust to jump function type changes.
24846 (ipa_read_jump_function): New parameter CS, pass it to
24847 ipa_set_jf_constant. Adjust caller.
24848 (ipa_write_node_info): Stream controlled use count
24849 (ipa_read_node_info): Likewise.
24850 * cgraph.c (cgraph_mark_address_taken_node): Bail out instead of
24851 asserting.
24852 * ipa-cp.c (ipcp_discover_new_direct_edges): Decrement controlled use
24853 count. Remove cloning-added reference if it reaches zero.
24854 * ipa-ref.c (ipa_find_reference): New function.
24855
3a407061 248562013-05-13 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
24857
c27c2857 24858 * config/i386/i386.c (processor_target_table): Modified default
3a407061 24859 alignment values for AMD BD and BT architectures.
24860
67f16f2b 248612013-05-13 Marc Glisse <marc.glisse@inria.fr>
24862
24863 * tree-vect-generic.c (uniform_vector_p): Move ...
24864 * tree.c (uniform_vector_p): ... here.
24865 * tree.h (uniform_vector_p): Declare it.
24866 * fold-const.c (fold_binary_loc) <shift>: Turn the second argument
24867 into a scalar.
24868
22b4b13d 248692013-05-13 Jakub Jelinek <jakub@redhat.com>
24870
2047c70c 24871 PR tree-optimization/57230
24872 * tree-ssa-strlen.c (handle_char_store): Record length for
24873 array store from STRING_CST.
24874
22b4b13d 24875 PR tree-optimization/57230
24876 * tree-ssa-strlen.c (handle_char_store): Add missing integer_zerop
24877 check.
24878
c85716aa 248792013-05-12 Joern Rennecke <joern.rennecke@embecosm.com>
24880
24881 * config/epiphany/epiphany.c (epiphany_init): Check size of
24882 NUM_MODES_FOR_MODE_SWITCHING.
24883 (epiphany_expand_prologue):
24884 Remove CONFIG_REGNUM initial value handling code.
24885 (epiphany_optimize_mode_switching): Handle EPIPHANY_MSW_ENTITY_CONFIG.
24886 (epiphany_mode_needed, epiphany_mode_entry_exit): Likewise.
4af825f3 24887 (emit_set_fp_mode, epiphany_mode_after): Likewise.
c85716aa 24888 (epiphany_mode_needed) <Handle EPIPHANY_MSW_ENTITY_AND>:
24889 Don't return 1 for FP_MODE_NONE.
24890 * config/epiphany/epiphany.h (NUM_MODES_FOR_MODE_SWITCHING):
24891 Add value for EPIPHANY_MSW_ENTITY_CONFIG.
24892 (EPIPHANY_MSW_ENTITY_CONFIG, EPIPHANY_MSW_ENTITY_NUM): Define.
24893 * config/epiphany/epiphany.md (save_config): New pattern.
24894
5afd8bcb 248952013-05-12 Uros Bizjak <ubizjak@gmail.com>
24896
24897 * config/i386/i386.md (*zero_extendsidi2): Add *x->?r alternative.
24898
f66a9337 248992013-05-10 Uros Bizjak <ubizjak@gmail.com>
24900
24901 * config/i386/i386.md (memory): Handle sseishft1.
24902 * config/i386/sse.md (*vec_extractv4si): Remove memory attribute.
24903 (*vec_extractv2di_1): Ditto.
24904
904ea1db 249052013-05-10 Vladimir Makarov <vmakarov@redhat.com>
24906
24907 * lra-assigns.c (find_hard_regno_for): Add 1 to the cost of call
24908 saved registers.
24909
82b24465 249102013-05-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
e70cd596 24911
24912 * config/arm/t-rtems-eabi: Remove mthumb/march=armv7 multilib.
24913 Add mthumb/march=armv7-a multilib.
24914 Add mthumb/march=armv7-r multilib.
24915 Add mthumb/march=armv7-a/mfpu=neon/mfloat-abi=hard multilib.
24916
1bc74e6e 249172013-05-10 Ralf Corsépius <ralf.corsepius@rtems.org>
24918
24919 * config/v850/t-rtems: Add more multilibs.
24920
fca2aa67 249212013-05-10 Richard Biener <rguenther@suse.de>
24922
24923 PR tree-optimization/57214
24924 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Do
24925 not propagate from SSA names that occur in abnormal PHI nodes.
24926
432dd330 249272013-05-10 Marc Glisse <marc.glisse@inria.fr>
24928
24929 * stor-layout.c (element_precision): New function.
24930 * machmode.h (element_precision): Declare it.
24931 * tree.c (build_minus_one_cst): New function.
24932 (element_precision): Likewise.
24933 * tree.h (build_minus_one_cst): Declare new function.
24934 (element_precision): Likewise.
24935 * fold-const.c (operand_equal_p): Use element_precision.
24936 (fold_binary_loc): Handle vector types.
24937 * convert.c (convert_to_integer): Use element_precision.
24938 * gimple.c (iterative_hash_canonical_type): Handle complex and vectors
24939 separately.
24940
287e3614 249412013-05-10 Richard Sandiford <rdsandiford@googlemail.com>
24942
24943 * config/mips/mips-protos.h (m16_uimm3_b, m16_simm4_1, m16_nsimm4_1)
24944 (m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4, m16_simm8_1)
24945 (m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1, m16_uimm8_4)
24946 (m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
24947 * config/mips/mips.c (m16_check_op, m16_uimm3_b, m16_simm4_1)
24948 (m16_nsimm4_1, m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4)
24949 (m16_simm8_1, m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1)
24950 (m16_uimm8_4, m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
24951 * config/mips/constraints.md (Udb8, Usb5, Usb8, Usd8, Uub8, Uuw5)
24952 (Uuw8): New constraints.
24953 (Usb4): Move into alphabetical order.
24954 * config/mips/predicates.md (db8_operand, sb5_operand, sb8_operand)
24955 (sd8_operand, ub8_operand, uw8_operand): New predicates.
24956 * config/mips/mips.md (*xor<mode>3, *xor<mode>3_mips16): Name
24957 previously unnamed patterns.
24958 (*add<mode>3_mips16, *xor<mode>3_mips16, *<optab>si3_mips16)
24959 (*ashldi3_mips16, *ashrdi3_mips16, *lshrdi3_mips16)
24960 (*slt<u>_<GPR:mode><GPR2:mode>_mips16)
24961 (*sle<u>_<GPR:mode><GPR2:mode>_mips16): Use constraints instead
24962 of set_attr_alternative/if_then_else. Use extended_mips16 instead
24963 of specific lengths.
24964
3b8827a2 249652013-05-10 Jakub Jelinek <jakub@redhat.com>
24966
bf7ec243 24967 * config/i386/i386.md (rotateinv): New code attr.
24968 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
24969 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
24970 roll $31, %eax, etc.
24971
3b8827a2 24972 PR tree-optimization/45216
24973 PR tree-optimization/57157
24974 * tree-ssa-forwprop.c (simplify_rotate): New function.
24975 (ssa_forward_propagate_and_combine): Call it.
24976
2cd0995e 249772013-05-10 Richard Biener <rguenther@suse.de>
24978
24979 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
24980 disable peeling when we version for aliasing.
24981 (vector_alignment_reachable_p): Honor explicit user alignment.
24982 (vect_supportable_dr_alignment): Likewise.
24983 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Use
24984 STMT_VINFO_LOOP_PHI_EVOLUTION_PART instead of recomputing it.
24985 * tree-vect-loop.c (vect_transform_loop): First apply versioning,
24986 then peeling to arrange for the cost-model check to come first.
24987
15ba1c5f 249882013-05-10 Alan Modra <amodra@gmail.com>
24989
24990 * configure.ac (HAVE_AS_TLS): Swap powerpc64 and powerpc cases.
24991 (HAVE_LD_LARGE_TOC): Don't mention AIX in help text.
24992 * configure: Regenerate.
24993
916b643b 249942013-05-10 Alan Modra <amodra@gmail.com>
24995
24996 PR target/55033
24997 * varasm.c (default_elf_select_section): Move !DECL_P check..
24998 (get_named_section): ..to here before calling get_section_name.
24999 Adjust assertion.
25000 (default_section_type_flags): Add DECL_P check.
25001 * config/i386/winnt.c (i386_pe_section_type_flags): Likewise.
25002 * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): Likewise.
25003
3f5a5361 250042013-05-09 Joern Rennecke <joern.rennecke@embecosm.com>
25005
25006 * config/epiphany/epiphany.c (epiphany_expand_prologue):
25007 When using gen_stack_adjust_str with a register offset, add a
25008 REG_FRAME_RELATED_EXPR note.
25009
b8403b2e 250102013-05-09 Uros Bizjak <ubizjak@gmail.com>
25011
25012 * config/i386/sse.md (*vec_extractv4si_0_zext): New pattern.
25013 (*vec_extractv4si_zext_mem): Ditto.
25014 (*vec_extractv2di): Add 0->x and x->x alternatives.
25015 * config/i386/mmx.md (*vec_extractv2si_zext_mem): New pattern.
25016 * config/i386/i386.md (*zero_extendsidi2): Add *Yj->?r alternative.
25017
4fa680c3 250182013-05-09 Jason Merrill <jason@redhat.com>
25019
b749017f 25020 N3639 C++1y VLA support
25021 * gimplify.c (gimplify_vla_decl): Don't touch an existing
25022 DECL_VALUE_EXPR.
25023
4fa680c3 25024 * tree.c (build_constructor_va): New.
25025 * tree.h: Declare it.
25026
0a2d5b65 250272013-05-09 Martin Jambor <mjambor@suse.cz>
25028
25029 PR lto/57084
25030 * gimple-fold.c (canonicalize_constructor_val): Call
25031 cgraph_get_create_real_symbol_node instead of cgraph_get_create_node.
25032
85b7ebb2 250332013-05-09 Jan Hubicka <jh@suse.cz>
25034 Richard Biener <rguenther@suse.de>
25035
25036 PR lto/54095
25037 * symtab.c (symtab_make_decl_local): Do not add private names.
25038
6f4cfc6d 250392013-05-09 Jan Hubicka <jh@suse.cz>
25040
25041 PR lto/54095
25042 * symtab.c (insert_to_assembler_name_hash): Handle clones.
25043 (unlink_from_assembler_name_hash): Likewise.
25044 (symtab_prevail_in_asm_name_hash, symtab_register_node,
25045 symtab_unregister_node, symtab_initialize_asm_name_hash,
25046 change_decl_assembler_name): Update.
25047
eff87958 250482013-05-09 Sofiane Naci <sofiane.naci@arm.com>
25049
25050 * config/aarch64/aarch64.md: New movtf split.
25051 (*movtf_aarch64): Update.
25052 (aarch64_movdi_tilow): Handle TF modes and rename to
25053 aarch64_movdi_<mode>low.
25054 (aarch64_movdi_tihigh): Handle TF modes and rename to
25055 aarch64_movdi_<mode>high
25056 (aarch64_movtihigh_di): Handle TF modes and rename to
25057 aarch64_mov<mode>high_di
25058 (aarch64_movtilow_di): Handle TF modes and rename to
25059 aarch64_mov<mode>low_di
25060 (aarch64_movtilow_tilow): Remove spurious whitespace.
25061 * config/aarch64/aarch64.c (aarch64_split_128bit_move): Handle TFmode
25062 splits.
25063 (aarch64_print_operand): Update.
25064
e0b071f6 250652013-05-09 Alan Modra <amodra@gmail.com>
25066
25067 * configure.ac (HAVE_AS_TLS): Enable tests for powerpcle and
25068 powerpc64le.
25069 * configure: Regenerate.
25070
823a2ddd 250712013-05-08 Uros Bizjak <ubizjak@gmail.com>
25072
25073 * config/i386/mmx.md (*vec_extract* splitters): Simplify post-reload
25074 splitter preparation statements.
25075 * config/i386/sse.md (*vec_extract* splitters): Ditto.
25076 (*avx_vperm_broadcast_<mode>): Use adjust_address instead of
25077 adjust_address_nv.
25078
d873e825 250792013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25080
25081 * gimple-ssa-strength-reduction.c (count_candidates): Change
25082 return value to int.
25083 (analyze_candidates_and_replace): Change type of length to int.
25084
27fc86e0 250852013-05-08 Uros Bizjak <ubizjak@gmail.com>
25086
25087 * config/i386/sse.md (PEXTR_MODE, PEXTR_MODEx): Remove.
25088 (*vec_extract<mode>): Use VI12_128 mode iterator.
25089 (*vec_extract<mode>_mem): Ditto.
25090 (*vec_extract*_mem splitters): Merge splitters using VI_128 mode
25091 attribute.
25092
45cde32d 250932013-05-08 Diego Novillo <dnovillo@google.com>
25094
25095 PR bootstrap/54659
25096
25097 Revert:
45cde32d 25098 2012-08-17 Diego Novillo <dnovillo@google.com>
25099
27fc86e0 25100 PR bootstrap/54281
25101 * configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
25102 * config.in: Regenerate.
25103 * configure: Regenerate.
25104 * intl.h: Always include libintl.h if HAVE_LIBINTL_H is set.
45cde32d 25105
5c368d8a 251062013-05-08 Jan Hubicka <jh@suse.cz>
25107
25108 PR lto/54095
25109 * cgraph.c (cgraph_make_node_local_1): Se unique_name.
25110 * cgraph.h (symtab_node_base): Add unique_name.
25111 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
25112 input_overwrite_node, input_varpool_node): Stream unique_name.
25113 * cgraphclones.c (cgraph_create_virtual_clone,
25114 cgraph_function_versioning): Set unique_name.
25115 * ipa.c (function_and_variable_visibility): Set unique_name.
25116
8858a76d 251172013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25118
25119 * gimple-ssa-strength-reduction.c (find_phi_def): Revert former "fix."
25120 (alloc_cand_and_find_basis): Restrict conditional candidate
25121 processing to CAND_MULTs.
25122
48bbff00 251232013-05-08 Jan Hubicka <jh@suse.cz>
25124
25125 PR lto/54095
25126 lto-symtab.c (lto_symtab_symbol_p): New function.
25127 (lto_symtab_resolve_can_prevail_p, lto_symtab_resolve_symbols,
25128 lto_symtab_resolve_symbols, lto_symtab_merge_decls_2,
25129 lto_symtab_merge_decls_1, lto_symtab_merge_cgraph_nodes_1):
25130 Skip static symbols.
25131
531a0a15 251322013-05-08 Paolo Carlini <paolo.carlini@oracle.com>
25133
25134 PR tree-optimization/57200
25135 * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
25136 Only call inform if the preceding warning_at returns true.
25137
b156ec37 251382013-05-07 Han Shen <shenhan@google.com>
25139
25140 * cfgexpand.c (record_or_union_type_has_array_p): New function.
25141 (expand_used_vars): Add logic handling '-fstack-protector-strong'.
25142 * common.opt (fstack-protector-strong): New option.
25143 * doc/cpp.texi (__SSP_STRONG__): New builtin "__SSP_STRONG__".
25144 * doc/invoke.texi (Optimization Options): Document
25145 "-fstack-protector-strong".
25146 * gcc.c (LINK_SSP_SPEC): Add 'fstack-protector-strong'.
25147
5c2d214d 251482013-05-06 Steven Bosscher <steven@gcc.gnu.org>
25149
25150 * config/mips/mips.c (mips_machine_reorg2): Return 0.
25151
c625778b 251522013-05-07 Vladimir Makarov <vmakarov@redhat.com>
25153
25154 * ira.c (update_equiv_regs): Add insn having equiv memory even if
25155 it is not lhs of the insn.
25156 (setup_reg_equiv): Remove insn having equiv memory which it is not
25157 lhs of the insn.
25158 * lra-constraints.c (process_address): Try to improve generation
25159 code for address base + disp.
25160 (lra_constraints): Make correct the code for checking insn setting
25161 up backward equivalence. Remove insn only if it is in the init
25162 insn list.
25163 * lra-eliminations.c (update_reg_eliminate): Change return value.
25164 (lra_eliminate): Use the result.
25165
1087c60b 251662013-05-07 Uros Bizjak <ubizjak@gmail.com>
25167
25168 * config/i386/sse.md (ssescalarnummask): New mode attribute.
25169 (PEXTR_MODE, PEXTR_MODEx): New mode iterators.
25170 (*vec_extract<mode>): Merge from *sse4_1_pextrb_memory and
25171 *sse4_1_pextrw_memory using PEXTR_MODE mode iterator. Handle
25172 register target operands.
25173 (*vec_extractv8hi_sse2): New pattern.
25174 (*vec_extractv16qi_zext): Rename from *sse4_1_pextrb_<mode>.
25175 (*vec_extractv8hi_zext): Rename from *sse2_pextrw_<mode>.
25176 (*vec_extract<mode>_mem): New insn and split pattern.
25177
3e8585ab 251782013-05-07 Christophe Lyon <christophe.lyon@linaro.org>
25179
25180 * config/arm/arm.c (arm_asan_shadow_offset): New function.
25181 (TARGET_ASAN_SHADOW_OFFSET): Define.
25182 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Define.
25183 (LINUX_OR_ANDROID_CC): Add ASAN_CC1_SPEC.
25184
d62a8480 251852013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25186
25187 * gimple-ssa-strength-reduction.c (MAX_INCR_VEC_LEN): New constant.
25188 (incr_vec_index): Return -1 if increment not found.
25189 (create_add_on_incoming_edge): Assert if increment not found.
25190 (record_increment): Limit number of increments recorded.
25191 (all_phi_incrs_profitable): Return false if an increment not found.
25192 (replace_profitable_candidates): Don't process increments that were
25193 not recorded.
25194 (analyze_candidates_and_replace): Limit size of incr_vec.
25195
3621f68e 251962013-05-07 Richard Biener <rguenther@suse.de>
25197
25198 * calls.c (special_function_p): setjmp-like functions are leaf.
25199 * builtins.def (BUILT_IN_SETJMP): setjmp is leaf.
25200 * tree-inline.c (update_ssa_across_abnormal_edges): Remove assert.
25201
e0e03aa1 252022013-05-07 Sofiane Naci <sofiane.naci@arm.com>
25203
25204 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): call splitter.
25205 (aarch64_simd_mov<mode>): New expander.
25206 (aarch64_simd_mov_to_<mode>low): New instruction pattern.
25207 (aarch64_simd_mov_to_<mode>high): Likewise.
25208 (aarch64_simd_mov_from_<mode>low): Likewise.
25209 (aarch64_simd_mov_from_<mode>high): Likewise.
25210 (aarch64_dup_lane<mode>): Update.
25211 (aarch64_dup_lanedi): New instruction pattern.
25212 * config/aarch64/aarch64-protos.h (aarch64_split_simd_move): New prototype.
25213 * config/aarch64/aarch64.c (aarch64_split_simd_move): New function.
25214
d54ab372 252152013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25216
25217 * gimple-ssa-strength-reduction.c (lazy_create_slsr_reg): Remove.
25218 (replace_mult_candidate): Remove unnecessary argument; remove
25219 unnecessary parameter from call to introduce_cast_before_cand.
25220 (replace_unconditional_candidate): Remove unnecessary parameter
25221 from call to replace_mult_candidate.
25222 (replace_conditional_candidate): Likewise.
25223 (insert_initializers): Use make_temp_ssa_name.
25224 (introduce_cast_before_cand): Remove unnecessary argument; use
25225 make_temp_ssa_name.
25226 (replace_one_candidate): Remove unnecessary argument; remove
25227 unnecessary parameter from calls to introduce_cast_before_cand.
25228 (replace_profitable_candidates): Remove unnecessary parameters
25229 from calls to replace_one_candidate.
25230
cebae8f7 252312013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25232
25233 * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
25234 phi def as possibly hiding a basis for a CAND_ADD whose operands
25235 have been commuted in the analysis.
25236 (alloc_cand_and_find_basis): Add parms to call to find_phi_def.
25237
dcb79d5f 252382013-05-07 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
25239
25240 * config/aarch64/aarch64.md
25241 (cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Restrict the
25242 shift value between 0-4.
25243
75aefb7b 252442013-05-07 Richard Biener <rguenther@suse.de>
25245
25246 * double-int.h (rshift): New overload.
25247 * double-int.c (rshift): New function.
25248 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Optimize.
25249 (create_reference_ops_from_ref): Remove.
25250 (vn_reference_insert): Use shared ops for constructing the
25251 reference and copy it.
25252
587a19f1 252532013-05-07 Richard Biener <rguenther@suse.de>
25254
25255 PR middle-end/57190
25256 * tree-eh.c (sink_clobbers): Properly propagate
25257 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
25258
03404fe6 252592013-05-07 Jakub Jelinek <jakub@redhat.com>
25260
182debc1 25261 PR tree-optimization/57149
25262 * tree-ssa-uninit.c (uninit_undefined_value_p): New inline.
25263 (can_skip_redundant_opnd, compute_uninit_opnds_pos,
25264 collect_phi_def_edges, execute_late_warn_uninitialized): Use
25265 uninit_undefined_value_p instead of ssa_undefined_value_p.
25266
03404fe6 25267 PR debug/57184
25268 * expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR
25269 for modifier == EXPAND_INITIALIZER.
25270
7c291732 252712013-05-07 Anton Blanchard <anton@samba.org>
25272
25273 * configure.ac (HAVE_LD_LARGE_TOC): Use correct linker emulation
25274 for powerpc64 little endian.
25275 * configure: Regenerate.
25276
6a219c68 252772013-05-06 Graham Stott <grahams@btinternet.com>
25278
25279 * expmed.c (init_expmed_rtl): Remove unused fields reg_fld, plus_fld,
25280 mult_fld, sdiv_fld1, udiv_fld1, sdiv_32_fld1, smod_32_fld1,
25281 wide_mult_fld1, wide_lshr_fld1, shift_fld1, shift_mult_fld1,
25282 shift_add_fld1, shift_sub0_fld1, shift_sub1_fld1.
25283
252842013-05-06 Graham Stott <grahams@btinternet.com>
7e91113e 25285
25286 * gensupport.c (add_predicate_code): Also exclude SCRATCH from rtx
25287 codes which allow non-lvalues.
25288
5a4f3016 252892013-05-06 Marc Glisse <marc.glisse@inria.fr>
25290
25291 * tree.c (integer_all_onesp) <COMPLEX_CST>: Test that both
25292 components are all 1s.
25293 (integer_minus_onep): New function.
25294 * tree.h (integer_minus_onep): Declare it.
25295 * fold-const.c (fold_binary_loc) <MULT_EXPR>: Test
25296 integer_minus_onep instead of integer_all_onesp.
25297
8de9db6e 252982013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
25299
25300 PR target/52933
25301 * config/sh/sh.md (*cmp_div0s_0, *cmp_div0s_1, *movsicc_div0s): Add
25302 variations of these patterns.
25303
2071a184 253042013-05-06 Uros Bizjak <ubizjak@gmail.com>
25305
25306 * config/i386/i386.md (isa): Add x64_sse4 member.
25307 (enabled): Handle x64_sse4.
25308 (*movdi_internal): Add *x->?r alternative to emit pextrq $0,%xmm,%reg
25309 instruction for 64bit SSE4_1 targets. Update insn attributes.
25310 (*movsi_internal): Add *x->?r alternative to emit pextrd $0,%xmm,%reg
25311 instruction for SSE4_1 targets. Update insn attributes.
25312 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
25313 with *sse4_1_pextrd and *sse4_1_pextrq having const_0 selector.
25314 (*vec_extractv2di_1): Merge with *sse4_1_pextrq having
25315 const_1 selector.
25316 (*vec_extractv4si): Rename from *sse4_1_pextrd.
25317 (*vec_extractv4si_zext): Rename from *sse4_1_pextrd_zext.
25318 (*vec_extract<ssevecmodelower>_0 splitters): Merge splitters together.
25319
e3c1cc51 253202013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
25321
25322 PR target/57108
25323 * config/sh/sh.md (tstsi_t_zero_extract_eq): Use QIHISIDI mode iterator.
25324
82353beb 253252013-05-06 Maxim Kuznetsov <maks.kuznetsov@gmail.com>
25326
25327 * final.c (do_assembler_dialects): Don't handle curly braces and
25328 vertical bar escaped by % as dialect delimiters.
25329 (output_asm_insn): Print curly braces and vertical bar if escaped
25330 by % and ASSEMBLER_DIALECT defined.
25331 * doc/tm.texi.in (ASSEMBLER_DIALECT): Document new standard escapes.
25332 * doc/tm.texi: Regenerated.
25333
5a2fb01f 253342013-05-06 Steven Bosscher <steven@gcc.gnu.org>
25335
5a2fb01f 25336 * config/mips/mips.c: Include tree-pass.h.
25337 (mips_reorg): Split in pre- and post-dbr_schedule parts.
25338 (mips_machine_reorg2): Move mips_reorg post-dbr_schedule parts here.
25339 (pass_mips_machine_reorg2): New machine specific pass.
25340 (insert_pass_mips_machine_reorg2): New pass plugin definition.
25341 (mips_option_override): Register the new pass.
25342 * rtl.h (cleanup_barriers): Remove prototype.
25343 (dbr_schedule): Likewise.
25344 * jump.c (cleanup_barriers): Make static.
25345 * reorg.c (dbr_schedule): Likewise.
25346
59c0ed80 253472013-05-06 Richard Biener <rguenther@suse.de>
25348
25349 PR tree-optimization/57185
25350 * tree-parloops.c (add_field_for_reduction): Handle anonymous
25351 SSA names properly.
25352
0b9c4816 253532013-05-06 Uros Bizjak <ubizjak@gmail.com>
25354
25355 PR target/57106
25356 * config/i386/i386.c (add_parameter_dependencies): Add dependence
25357 between "first_arg" and "insn", not "last" and "insn".
25358
7090b697 253592013-05-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25360
25361 * gimple-ssa-strength-reduction.c (slsr_process_phi): Re-enable.
25362 (find_candidates_in_block): Re-enable slsr_process_phi.
25363 (create_phi_basis): Fix double counting of candidate adjustment.
25364
e2a6b9da 253652013-05-06 Richard Biener <rguenther@suse.de>
25366
25367 PR middle-end/57147
25368 * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): If
25369 the edge is also fallthru, preserve it and just clear the
25370 abnormal flag.
25371 * tree-cfgcleanup.c (remove_fallthru_edge): If the edge is
25372 also complex, preserve that and just clear the fallthru flag.
25373 * tree-inline.c (update_ssa_across_abnormal_edges): Also
25374 update virtual operands.
25375
a6245fde 253762013-05-06 Alan Modra <amodra@gmail.com>
25377
25378 * config/rs6000/linux.h (DEFAULT_ASM_ENDIAN): Define.
25379 (LINK_OS_LINUX_EMUL): Use ENDIAN_SELECT.
25380 * config/rs6000/linux64.h (DEFAULT_ASM_ENDIAN): Define.
25381 * config/rs6000/sysv4le.h (DEFAULT_ASM_ENDIAN): Define.
25382 (LINK_TARGET_SPEC): Use ENDIAN_SELECT.
25383 * config/rs6000/sysv4.h (DEFAULT_ASM_ENDIAN): Define as -mbig.
25384
23c6c8a2 253852013-05-06 Alan Modra <amodra@gmail.com>
25386
25387 * config/rs6000/sysv4.h (ENDIAN_SELECT): Define, extracted from
25388 (ASM_SPEC): ..here. Emit DEFAULT_ASM_ENDIAN too.
25389 (DEFAULT_ASM_ENDIAN): Define.
25390 (CC1_SPEC, LINK_TARGET_SPEC): Use ENDIAN_SELECT.
25391 * config/rs6000/linux64.h (ASM_SPEC32): Remove endian options.
25392 Update -K PIC clause from sysv4.h.
25393 (ASM_SPEC_COMMON): Use ENDIAN_SELECT.
25394 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Likewise.
25395
75e370bf 253962013-05-06 Alan Modra <amodra@gmail.com>
25397
25398 * config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words
25399 twice for little-endian.
25400 (ashrdi3_no_power, ashrdi3): Support little-endian.
25401
a61eea5a 254022013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
25403
25404 PR target/55303
25405 * config/sh/sh.c (sh_rtx_costs): Handle SMIN and SMAX cases.
25406 * config/sh/sh.md (*clips, uminsi3, *clipu, clipu_one): New insns and
25407 related expanders.
25408 * config/sh/iterators.md (SMIN_SMAX): New code iterator.
25409 * config/sh/predicates.md (arith_reg_or_0_or_1_operand,
25410 clips_min_const_int, clips_max_const_int, clipu_max_const_int):
25411 New predicates.
25412
b8f55b74 254132013-05-05 Steven Bosscher <steven@gcc.gnu.org>
25414 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
25415
25416 * config.gcc (hppa*-*-*): Remove MASK_BIG_SWITCH from CPU default.
25417 * config/pa/pa.opt: Make mbig-switch a no-op.
25418 * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_BIG_SWITCH.
25419 (CASE_VECTOR_MODE): Always return SImode.
25420 (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove code
25421 for the !TARGET_BIG_SWITCH case.
25422 * config/pa/pa-linux.h: Likewise.
25423 * config/pa/pa-openbsd.h: Likewise.
25424 * config/pa/pa-hpux.h: Define TARGET_DEFAULT to 0.
25425 * config/pa/pa.md (short_jump): Remove define_insn.
25426 (casesi): Remove code for the !TARGET_BIG_SWITCH case.
25427 (casesi0): Remove define_insn.
25428 (type): Remove btable_branch.
25429 (pa_combine_type): Likewise.
25430 (in_nullified_branch_delay): Likewise.
25431 (in_call_delay): Likewise.
25432 (define_delay): Likewise.
25433 (define_insn_reservation "Z3"): Likewise.
25434 (define_insn_reservation "Z4"): Likewise.
25435 * config/pa/pa.c (pa_reorg): Remove code for !TARGET_BIG_SWITCH.
25436 (pa_adjust_insn_length): Remove adjustment for btable branches.
25437 * doc/invoke.texi (HPPA Options): Delete documentation for mbig-switch
25438 and mno-big-switch
25439
fe4df2ce 254402013-05-05 Uros Bizjak <ubizjak@gmail.com>
25441
25442 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
25443 from sse2_stored and *sse2_storeq_rex64 using SWI48 mode iterator.
25444 Add m->r,x alternatives.
25445 (*vec_extract<ssevecmodelower>_0 splitters): Merge V2DI and V4SI
25446 splitters using SWI48x mode iterator.
25447 (*vec_extract_v2di_0_sse): Rename from *sse2_storeq. Disable for
25448 TARGET_64BIT. Add m->x alternative.
25449 (*vec_extractv4si_mem): Rename from *vec_ext_v4si_mem.
25450 Add o->x alternative. Enable for TARGET_SSE.
25451 (sse_storeq): Remove expander.
25452 (*vec_extractv2di_1): Enable for TARGET_SSE. Split alternatives
25453 with memory input operand.
25454 (*vec_extractv2di_1 splitter): New.
25455 (*vec_extractv4sf_mem): Rename from *vec_extract_v4sf_mem.
25456 * config/i386/i386.md (ssevecmodelower): New mode attribute.
25457
97f92bff 254582013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
25459
25460 * config/rs6000/rs6000.c (INT_P): Reformat. Delete obsolete comment.
25461 (INT_LOWPART): Delete.
25462 (extract_MB): Adjust.
25463 (extract_ME): Adjust.
25464 (print_operand): Adjust.
25465
42408413 254662013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
25467
25468 * config/rs6000/predicates.md (reg_or_add_cint_operand,
25469 reg_or_sub_cint_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
25470 (reg_or_logical_cint_operand, easy_fp_constant,
25471 logical_const_operand): Delete "CONST_DOUBLE" case.
25472 * config/rs6000/rs6000.c (num_insns_constant_wide): Delete
25473 "HOST_BITS_PER_WIDE_INT == 64" test.
fe4df2ce 25474 (num_insns_constant): Ditto. Delete CONST_DOUBLE DImode/VOIDmode case.
42408413 25475 (build_mask64_2_operands): Delete "HOST_BITS_PER_WIDE_INT >= 64" test.
25476 (rs6000_emit_set_const): Delete CONST_DOUBLE case.
25477 (rs6000_emit_set_long_const): Delete "HOST_BITS_PER_WIDE_INT >= 64"
25478 test.
25479 (includes_rldic_lshift_p, includes_rldicr_lshift_p): Delete
25480 CONST_DOUBLE DImode/VOIDmode case.
25481 (INT_P, INT_LOWPART): Delete CONST_DOUBLE case.
25482 (print_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case. Delete
25483 CONST_DOUBLE VOIDmode case.
25484 (output_toc): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
25485 (rs6000_rtx_costs): Delete CONST_DOUBLE DImode/VOIDmode case.
25486 * config/rs6000/rs6000.md (iordi3, xordi3, splitter for these):
25487 Delete CONST_DOUBLE case.
25488 (splitters for mov FMOVE64 const_double): Delete
25489 "HOST_BITS_PER_WIDE_INT == 32" case. Delete
25490 "HOST_BITS_PER_WIDE_INT >= 64" test.
25491 (splitter for mov DI const_int): Delete "HOST_BITS_PER_WIDE_INT == 32"
25492 case.
25493 (mov DI const_double): Delete.
25494
fd304a93 254952013-05-04 Jakub Jelinek <jakub@redhat.com>
25496
25497 * combine.c (combine_simplify_rtx) <case SUBREG>: If nonzero_bits
25498 on op shows all bits zero in mode of a lowpart subreg, return zero.
25499
21e5dc01 255002013-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
25501
25502 PR target/57150
25503 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode
25504 to save TFmode registers and DImode to save TImode registers for
25505 caller save operations.
25506 (HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to
25507 mark being partially clobbered since they only use the first
25508 double word.
25509
25510 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode
25511 and TDmode only use the upper 64-bits of each VSX register.
25512
e64c90eb 255132013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25514
25515 * gimple-ssa-strength-reduction.c (slsr_process_phi): Disable.
25516 (find_candidates_in_block): Disable slsr_process_phi.
25517
bd13f5e8 255182013-05-03 Guozhi Wei <carrot@google.com>
25519
25520 * coverage.c (coverage_obj_init): Move the construction of gcov
fe4df2ce 25521 constructor to ...
25522 (build_init_ctor): ... here.
bd13f5e8 25523
1168caca 255242013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
25525
25526 * gimple-ssa-strength-reduction.c (cand_kind): Add CAND_PHI.
25527 (slsr_cand_d): Redefine def_phi.
25528 (stride_status, phi_adjust_status, count_phis_status): New enums.
25529 (find_phi_def): New.
25530 (find_basis_for_base_expr): New.
25531 (find_basis_for_candidate): Handle hidden bases.
25532 (alloc_cand_and_find_basis): Handle phi candidates.
25533 (slsr_process_phi): New.
25534 (create_mul_ssa_cand): Exclude phi base candidates; use integer_onep.
25535 (create_mul_imm_cand): Likewise.
25536 (create_add_ssa_cand): Exclude phi base candidates.
25537 (create_add_imm_cand): Likewise.
25538 (slsr_process_cast): Likewise.
25539 (slsr_process_copy): Likewise.
25540 (find_candidates_in_block): Handle phi candidates.
25541 (dump_candidate): Likewise.
25542 (unconditional_cands): Delete.
25543 (unconditional_cands_with_known_stride_p): Delete.
25544 (phi_dependent_cand_p): New.
25545 (cand_increment): Handle phi-dependent candidates.
25546 (replace_dependent): Delete.
25547 (replace_mult_candidate): New.
25548 (replace_unconditional_candidate): New.
25549 (incr_vec_index): Move to avoid forward reference.
25550 (create_add_on_incoming_edge): New.
25551 (create_phi_basis): New.
25552 (replace_dependents): Delete.
25553 (replace_conditional_candidate): New.
25554 (phi_add_costs): New.
25555 (replace_uncond_cands_and_profitable_phis): New.
25556 (record_increment): Handle phi adjustments.
25557 (record_phi_increments): New.
25558 (record_increments): Handle phi adjustments.
25559 (phi_incr_cost): New.
25560 (lowest_cost_path): Handle phis.
25561 (total_savings): Likewise.
25562 (analyze_increments): Likewise.
25563 (ncd_with_phi): New.
25564 (ncd_of_cand_and_phis): New.
25565 (nearest_common_dominator_for_cands): Handle phi increments.
25566 (all_phi_incrs_profitable): New.
25567 (replace_profitable_candidates): Handle phi-dependent candidates.
25568 (analyze_candidates_and_replace): Likewise.
25569
df21e330 255702013-05-03 Teresa Johnson <tejohnson@google.com>
25571
25572 PR bootstrap/57154
25573 * sched-rgn.c (compute_dom_prob_ps): Ensure accumulated probabilities
25574 do not exceed REG_BR_PROB_BASE.
25575
d06dae50 255762013-05-03 Jeff Law <law@redhat.com>
25577
66c357ba 25578 PR tree-optimization/57144
d06dae50 25579 * tree-vrp.c (simplify_cond_using_ranges): Verify the constant
25580 operand of the condition will bit into the new type when eliminating
25581 a cast feeding a condition.
25582
cea05f44 255832013-05-03 Jakub Jelinek <jakub@redhat.com>
25584
25585 PR rtl-optimization/57130
fe4df2ce 25586 * combine.c (make_compound_operation) <case SUBREG>: Pass SET instead
25587 of COMPARE as in_code to the recursive call if needed.
cea05f44 25588
65c52515 255892013-05-03 Uros Bizjak <ubizjak@gmail.com>
25590
25591 * config/i386/i386.md (isa): Add x64_sse4_noavx and x64_avx members.
25592 (enabled): Handle new members.
25593 * config/i386/sse.md (*vec_concatv2si): Merge from
25594 *vec_concatv2si_sse2 and vec_concatv2si_sse.
25595 (vec_concatv2di): Merge with *vec_concatv2di_rex64.
25596
c3d2d0e4 255972013-05-03 Joern Rennecke <joern.rennecke@embecosm.com>
058e9571 25598
25599 PR tree-optimization/57027
25600 * tree-ssa-math-opts.c (convert_mult_to_fma): When checking
25601 for fnms opportunity, check we got the prerequisite kind
25602 of tree / gimple before using accessor functions.
25603
9a8b9e26 256042013-05-03 Richard Biener <rguenther@suse.de>
25605
25606 * double-int.h (lshift): New overload without precision
25607 and arith argument.
25608 (operator *=, operator +=, operator -=): Move ...
25609 * double-int.c (operator *=, operator +=, operator -=): ... here
25610 and implement more efficiently.
25611 (mul_double_with_sign): Remove.
25612 (lshift_double): Adjust to take unsinged shift argument, push
25613 dispatching code to callers.
25614 (mul_double_wide_with_sign): Add early out for callers that
25615 are not interested in high parts or overflow.
25616 (lshift): New function.
25617 (lshift, rshift, alshift, arshift, llshift, lrshift): Add
25618 dispatch code here.
25619 (lrotate, rrotate): Use logical shifts.
25620 * expr.c (get_inner_reference): Use lshift.
25621 * fixed-value.c (do_fixed_divide): Likewise.
25622 * tree-dfa.c (get_ref_base_and_extent): Likewise.
25623 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
25624 (indirect_refs_may_alias_p): Likewise.
25625 (stmt_kills_ref_p_1): Likewise.
25626
91b3c1af 256272013-05-03 Vidya Praveen <vidyapraveen@arm.com>
25628
25629 * config/aarch64/aarch64-simd.md (simd_fabd): Correct the description.
25630
4d9d91e8 256312013-05-03 Vidya Praveen <vidyapraveen@arm.com>
25632
25633 * config/aarch64/aarch64-simd.md (*fabd_scalar<mode>3): Support
25634 scalar form of FABD instruction.
25635
04dda2a2 256362013-05-02 Vladimir Makarov <vmakarov@redhat.com>
25637
25638 * lra-constraints.c (process_alt_operands): Add checking alt
25639 number to choose the best alternative.
25640
077b5b8a 256412013-05-02 Richard Biener <rguenther@suse.de>
25642
25643 * tree-eh.c (cleanup_empty_eh_merge_phis): Remove rename_virts
25644 bitmap and its handling.
25645 (pass_cleanup_eh): Set todo_flags_finish to TODO_verify_ssa.
25646
92b43d63 256472013-05-02 Richard Biener <rguenther@suse.de>
25648
25649 PR middle-end/57140
25650 * tree-inline.c (copy_loops): Properly handle removed loops.
25651 (copy_cfg_body): Mark destination loops for fixup if source
25652 loops needed fixup.
25653
d93eb6ad 256542013-05-02 Greta Yorsh <Greta.Yorsh@arm.com>
25655
25656 PR target/56732
25657 * config/arm/arm.c (arm_expand_epilogue): Check really_return before
25658 generating simple_return for naked functions.
25659
c42e4f2e 256602013-05-02 Martin Jambor <mjambor@suse.cz>
25661
25662 PR middle-end/56988
25663 * ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
25664 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also check that by_ref
25665 flags match.
25666 (find_aggregate_values_for_callers_subset): Fill in the by_ref flag of
25667 ipa_agg_replacement_value structures.
25668 (known_aggs_to_agg_replacement_list): Likewise.
25669 * ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
25670 (read_agg_replacement_chain): Likewise.
25671 (ipcp_transform_function): Also check that by_ref flags match.
25672
73c6d54e 256732013-05-02 Richard Biener <rguenther@suse.de>
25674
25675 * graphds.h (struct graph): Add obstack member.
25676 * graphds.c (new_graph): Initialize obstack and allocate
25677 vertices from it.
25678 (add_edge): Allocate edge from the obstack.
65c52515 25679 (free_graph): Free the obstack instead of all edges and vertices.
73c6d54e 25680
70074000 256812013-05-02 Teresa Johnson <tejohnson@google.com>
25682
25683 * loop-unswitch.c (unswitch_loop): Use helper routines with rounding
25684 divides.
25685 * cfg.c (update_bb_profile_for_threading): Ditto.
25686 * tree-inline.c (copy_bb): Ditto.
25687 (copy_edges_for_bb): Ditto.
25688 (initialize_cfun): Ditto.
25689 (copy_cfg_body): Ditto.
25690 (expand_call_inline): Ditto.
25691 * ipa-inline-analysis.c (estimate_edge_size_and_time): Ditto.
25692 (estimate_node_size_and_time): Ditto.
25693 (inline_merge_summary): Ditto.
25694 * cgraphclones.c (cgraph_clone_edge): Ditto.
25695 (cgraph_clone_node): Ditto.
25696 * sched-rgn.c (compute_dom_prob_ps): Ditto.
25697 (compute_trg_info): Ditto.
25698
4817649a 256992013-05-02 Ian Bolton <ian.bolton@arm.com>
25700
25701 * config/aarch64/aarch64.md (movsi_aarch64): Only allow to/from
25702 S reg when fp attribute set.
25703 (movdi_aarch64): Only allow to/from D reg when fp attribute set.
25704
623ae2ee 257052013-05-02 Ian Bolton <ian.bolton@arm.com>
25706
25707 * config/aarch64/aarch64.md (*and_one_cmpl<mode>3_compare0):
25708 New pattern.
25709 (*and_one_cmplsi3_compare0_uxtw): Likewise.
25710 (*and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
25711 (*and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
25712
e23d3784 257132013-05-02 Richard Biener <rguenther@suse.de>
25714
25715 * tree-scalar-evolution.c (scev_info_hasher): Remove.
25716 (struct instantiate_cache_entry): New type.
25717 (struct instantiate_cache_entry_hasher): New hashtable descriptor.
25718 (struct instantiate_cache_type): New type.
25719 (set_instantiated_value, get_instantiated_value): Remove.
25720 (get_instantiated_value_entry): New function.
25721 (instantiate_scev_name): Use the new cache and adjust.
25722 (instantiate_scev_poly): Adjust.
25723 (instantiate_scev_binary): Likewise.
25724 (instantiate_array_ref): Likewise.
25725 (instantiate_scev_convert): Likewise.
25726 (instantiate_scev_not): Likewise.
25727 (instantiate_scev_3): Likewise.
25728 (instantiate_scev_2): Likewise.
25729 (instantiate_scev_r): Likewise.
25730 (instantiate_scev): Likewise.
25731 (resolve_mixers): Likewise.
25732
273c330a 257332013-05-01 Vladimir Makarov <vmakarov@redhat.com>
25734
25735 PR target/57091
25736 * lra-constraints.c (best_small_class_operands_num): Remove.
25737 (process_alt_operands): Remove small_class_operands_num. Take
25738 small classes operands into losers and only if the operand is not
25739 matched. Modify debugging output.
25740 (curr_insn_transform): Remove best_small_class_operands_num.
25741 Print insn name.
25742
4491e251 257432013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
25744
25745 * config/aarch64/aarch64-builtins.c
25746 (aarch64_gimple_fold_builtin.c): Fold more modes for reduc_splus_.
25747 * config/aarch64/aarch64-simd-builtins.def
25748 (reduc_splus_): Add new modes.
25749 (reduc_uplus_): New.
25750 * config/aarch64/aarch64-simd.md (aarch64_addvv4sf): Remove.
25751 (reduc_uplus_v4sf): Likewise.
25752 (reduc_splus_v4sf): Likewise.
25753 (aarch64_addv<mode>): Likewise.
25754 (reduc_uplus_<mode>): Likewise.
25755 (reduc_splus_<mode>): Likewise.
25756 (aarch64_addvv2di): Likewise.
25757 (reduc_uplus_v2di): Likewise.
25758 (reduc_splus_v2di): Likewise.
25759 (aarch64_addvv2si): Likewise.
25760 (reduc_uplus_v2si): Likewise.
25761 (reduc_splus_v2si): Likewise.
25762 (reduc_<sur>plus_<mode>): New.
25763 (reduc_<sur>plus_v2di): Likewise.
25764 (reduc_<sur>plus_v2si): Likewise.
25765 (reduc_<sur>plus_v4sf): Likewise.
25766 (aarch64_addpv4sf): Likewise.
25767 * config/aarch64/arm_neon.h
25768 (vaddv<q>_<s,u,f><8, 16, 32, 64): Rewrite using builtins.
25769 * config/aarch64/iterators.md (unspec): Remove UNSPEC_ADDV,
25770 add UNSPEC_SADDV, UNSPEC_UADDV.
25771 (SUADDV): New.
25772 (sur): Add UNSPEC_SADDV, UNSPEC_UADDV.
25773
3bbdb270 257742013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
25775
25776 * config/aarch64/arm_neon.h
25777 (v<max,min><nm><q><v>_<sfu><8, 16, 32, 64>): Rewrite using builtins.
25778
867d4a60 257792013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
25780
25781 * config/aarch64/aarch64-builtins
25782 (aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.
25783
2520d4b7 257842013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
25785
25786 * config/aarch64/aarch64-simd-builtins.def
25787 (reduc_smax_): New.
25788 (reduc_smin_): Likewise.
25789 (reduc_umax_): Likewise.
25790 (reduc_umin_): Likewise.
25791 (reduc_smax_nan_): Likewise.
25792 (reduc_smin_nan_): Likewise.
25793 (fmax): Remove.
25794 (fmin): Likewise.
25795 (smax): Update for V2SF, V4SF and V2DF modes.
25796 (smin): Likewise.
25797 (smax_nan): New.
25798 (smin_nan): Likewise.
25799 * config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to...
25800 (<su><maxmin><mode>3): ...This, refactor.
25801 (s<maxmin><mode>3): New.
25802 (<maxmin_uns><mode>3): Likewise.
25803 (reduc_<maxmin_uns>_<mode>): Refactor.
25804 (reduc_<maxmin_uns>_v4sf): Likewise.
25805 (reduc_<maxmin_uns>_v2si): Likewise.
25806 (aarch64_<fmaxmin><mode>: Remove.
25807 * config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use
25808 new builtin names.
25809 (vmin<q>_f<32,64>): Likewise.
25810 * config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
25811 (FMAXMIN): New.
25812 (su): Add mappings for smax, smin, umax, umin.
25813 (maxmin): New.
25814 (FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
25815 (FMAXMIN): Rename as...
25816 (FMAXMIN_UNS): ...This.
25817 (maxminv): Remove.
25818 (fmaxminv): Likewise.
25819 (fmaxmin): Likewise.
25820 (maxmin_uns): New.
25821 (maxmin_uns_op): Likewise.
25822
2fe1d3d6 258232013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
25824
25825 * config/aarch64/arm_neon.h
25826 (vac<ge, gt><sd>_f<32, 64>): Rename to...
25827 (vca<ge, gt><sd>_f<32, 64>): ...this, reimpliment in C.
25828 (vca<ge, gt, lt, le><q>_f<32, 64>): Reimpliment in C.
25829
3310ab7f 258302013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
25831
25832 * config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New.
25833 * config/aarch64/iterators.md (FAC_COMPARISONS): New.
25834
a793ba7d 258352013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
25836
25837 * config/aarch64/aarch64-simd.md
25838 (vcond<mode>_internal): Handle special cases for constant masks.
25839 (vcond<mode><mode>): Allow nonmemory_operands for outcome vectors.
25840 (vcondu<mode><mode>): Likewise.
25841 (vcond<v_cmp_result><mode>): New.
25842
c4759747 258432013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
25844
25845 * config/aarch64/aarch64-builtins.c (BUILTIN_VALLDI): Define.
25846 (aarch64_fold_builtin): Add folding for cm<eq,ge,gt,tst>.
25847 * config/aarch64/aarch64-simd-builtins.def
25848 (cmeq): Update to BUILTIN_VALLDI.
25849 (cmgt): Likewise.
25850 (cmge): Likewise.
25851 (cmle): Likewise.
25852 (cmlt): Likewise.
25853 * config/aarch64/arm_neon.h
25854 (vc<eq, lt, le, gt, ge, tst><z><qsd>_<fpsu><8,16,32,64>): Remap
25855 to builtins or C as appropriate.
25856
6ba1316b 258572013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
25858
25859 * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
25860 (cmgeu): ...This.
25861 (cmhi): Rename to...
25862 (cmgtu): ...This.
25863 * config/aarch64/aarch64-simd.md
25864 (simd_mode): Add SF.
25865 (aarch64_vcond_internal): Use new names for unsigned comparison insns.
25866 (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
25867 * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
25868 (cstore<mode>_neg): ...This.
25869 * config/aarch64/iterators.md
25870 (VALLF): new.
25871 (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
25872 (COMPARISONS): New.
25873 (UCOMPARISONS): Likewise.
25874 (optab): Add missing comparisons.
25875 (n_optab): New.
25876 (cmp_1): Likewise.
25877 (cmp_2): Likewise.
25878 (CMP): Likewise.
25879 (cmp): Remove.
25880 (VCMP_S): Likewise.
25881 (VCMP_U): Likewise.
25882 (V_cmp_result): Add DF, SF modes.
25883 (v_cmp_result): Likewise.
25884 (v): Likewise.
25885 (vmtype): Likewise.
25886 * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
25887
50148b9a 258882013-05-01 Greta Yorsh <Greta.Yorsh@arm.com>
25889
25890 * config/arm/thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert
25891 define_insn to define_insn_and_split.
25892 (thumb32_umaxsi3,thumb2_uminsi3): Likewise.
25893 (thumb2_negdi2,thumb2_abssi2,thumb2_neg_abssi2): Likewise.
25894 (thumb2_mov_scc,thumb2_mov_negscc,thumb2_mov_notscc): Likewise.
25895 (thumb2_movsicc_insn,thumb2_and_scc,thumb2_ior_scc): Likewise.
25896 (thumb2_negscc): Likewise.
25897
e57907f3 258982013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
25899
25900 * config/arm/thumb2.md (thumb2_incscc, thumb2_decscc): Delete.
25901
d9eaa291 259022013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
25903
25904 * config/arm/thumb2.md: Remove trailing whitespaces.
25905
e3fc9ffb 259062013-04-30 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
25907
25908 * explow.c (plus_constant): Pass "mode" to immed_double_int_const.
25909 Use gen_int_mode rather than GEN_INT.
25910
c350d42f 259112013-04-30 H.J. Lu <hongjiu.lu@intel.com>
25912
9baae48f 25913 * value-prof.c (stream_in_histogram_value): Remove the strayed
c350d42f 25914 debug_gimple_stmt.
25915
65a02176 259162013-04-30 Richard Biener <rguenther@suse.de>
25917
25918 PR middle-end/57122
65c52515 25919 * cfghooks.c (split_edge): Properly check for the loop latch edge.
65a02176 25920
0ba38440 259212013-04-30 Richard Biener <rguenther@suse.de>
25922
25923 PR middle-end/57107
25924 * tree-eh.c (sink_clobbers): Preserve virtual SSA form.
25925
d5897457 259262013-04-30 Andrey Belevantsev <abel@ispras.ru>
25927
25928 PR rtl-optimization/56957
25929 PR rtl-optimization/57105
d5897457 25930 * sel-sched.c (move_op_orig_expr_found): Remove insn_emitted
25931 variable. Use just INSN_UID for determining whether an insn
25932 should be only disconnected from the insn stream.
25933 * sel-sched-ir.h (EXPR_WAS_CHANGED): Remove.
25934
060d11f4 259352013-04-30 Jakub Jelinek <jakub@redhat.com>
25936
25937 PR tree-optimization/57104
25938 * tsan.c (instrument_expr): Don't instrument accesses to
25939 DECL_HARD_REGISTER VAR_DECLs.
25940
41f75a99 259412013-04-30 Richard Biener <rguenther@suse.de>
25942
25943 * function.h (loops_for_fn): New inline function.
25944 (set_loops_for_fn): Likewise.
25945 * cfgloop.h (place_new_loop): Add struct function parameter.
25946 (get_loop): Likewise.
25947 (get_loops): Likewise.
25948 (number_of_loops): Likewise.
25949 (fel_next): Adjust.
25950 (fel_init): Likewise.
25951 * cfg.c (get_loop_copy): Adjust.
25952 * cfgloop.c (flow_loops_dump): Likewise.
25953 (record_loop_exits): Likewise.
25954 (verify_loop_structure): Likewise.
25955 * cfgloopanal.c (mark_irreducible_loops): Likewise.
25956 (estimate_reg_pressure_cost): Likewise.
25957 (mark_loop_exit_edges): Likewise.
25958 * cfgloopmanip.c (place_new_loop): Likewise.
25959 (add_loop): Likewise.
25960 (duplicate_loop): Likewise.
25961 * graph.c (draw_cfg_nodes): Likewise.
25962 * graphite-clast-to-gimple.c (translate_clast_user): Likewise.
25963 * graphite-sese-to-poly.c (build_scop_scattering): Likewise.
25964 (extract_affine_chrec): Likewise.
25965 (build_scop_iteration_domain): Likewise.
25966 * graphite.c (graphite_initialize): Likewise.
25967 * ira-build.c (create_loop_tree_nodes): Likewise.
25968 (more_one_region_p): Likewise.
25969 (rebuild_regno_allocno_maps): Likewise.
25970 (mark_loops_for_removal): Likewise.
25971 (mark_all_loops_for_removal): Likewise.
25972 (remove_unnecessary_regions): Likewise.
25973 (ira_build): Likewise.
25974 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
25975 * loop-init.c (fix_loop_structure): Likewise.
25976 (gate_rtl_move_loop_invariants): Likewise.
25977 (gate_rtl_unswitch): Likewise.
25978 (gate_rtl_unroll_and_peel_loops): Likewise.
25979 (rtl_doloop): Likewise.
25980 * lto-streamer-in.c (input_cfg): Likewise.
25981 * lto-streamer-out.c (output_cfg): Likewise.
25982 * modulo-sched.c (sms_schedule): Likewise.
25983 * predict.c (tree_estimate_probability): Likewise.
25984 (tree_estimate_probability_driver): Likewise.
25985 (estimate_loops): Likewise.
25986 * tree-cfg.c (fixup_loop_arrays_after_move): Likewise.
25987 (move_sese_region_to_fn): Likewise.
25988 (debug_loop_num): Likewise.
25989 * tree-chrec.c (chrec_evaluate): Likewise.
25990 (hide_evolution_in_other_loops_than_loop): Likewise.
25991 (chrec_component_in_loop_num): Likewise.
25992 (reset_evolution_in_loop): Likewise.
25993 (evolution_function_is_invariant_rec_p): Likewise.
25994 * tree-if-conv.c (main_tree_if_conversion): Likewise.
25995 * tree-inline.c (copy_loops): Likewise.
25996 (copy_cfg_body): Likewise.
25997 (tree_function_versioning): Likewise.
25998 * tree-loop-distribution.c (rdg_flag_loop_exits): Likewise.
25999 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
26000 Likewise.
26001 (add_to_evolution_1): Likewise.
26002 (scev_const_prop): Likewise.
26003 * tree-scalar-evolution.h (get_chrec_loop): Likewise.
26004 * tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
26005 * tree-ssa-loop-im.c (analyze_memory_references): Likewise.
26006 (tree_ssa_lim_initialize): Likewise.
26007 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Likewise.
26008 (verify_loop_closed_ssa): Likewise.
26009 * tree-ssa-loop.c (tree_ssa_loop_init): Likewise.
26010 (tree_ssa_loop_im): Likewise.
26011 (tree_ssa_loop_unswitch): Likewise.
26012 (tree_vectorize): Likewise.
26013 (check_data_deps): Likewise.
26014 (tree_ssa_loop_ivcanon): Likewise.
26015 (tree_ssa_loop_bounds): Likewise.
26016 (tree_complete_unroll): Likewise.
26017 (tree_complete_unroll_inner): Likewise.
26018 (tree_parallelize_loops): Likewise.
26019 (tree_ssa_loop_prefetch): Likewise.
26020 (tree_ssa_loop_ivopts): Likewise.
26021 * tree-ssa.c (execute_update_addresses_taken): Liekwise.
26022 * tree-vectorizer.c (vectorize_loops): Likewise.
26023
2090f4f0 260242013-04-29 Mike Frysinger <vapier@gentoo.org>
26025
26026 * config/arm/bpabi.h (EABI_LINK_SPEC): Define.
26027 (BPABI_LINK_SPEC): Use new EABI_LINK_SPEC.
26028 * config/arm/linux-eabi.h (LINK_SPEC): Replace BE8_LINK_SPEC
26029 with EABI_LINK_SPEC.
26030
34e882e1 260312013-04-29 Uros Bizjak <ubizjak@gmail.com>
26032
26033 PR target/44578
26034 * config/i386/i386.md (*zero_extendsidi2): Add "!" to m->?*y
26035 alternative.
26036
f7c98bb1 260372013-04-29 Vladimir Makarov <vmakarov@redhat.com>
26038
26039 PR target/57097
2090f4f0 26040 * lra-constraints.c (process_alt_operands): Discourage a bit more
f7c98bb1 26041 using memory for pseudos. Print cost dump for alternatives.
26042 Modify cost values for conflicts with early clobbers.
26043 (curr_insn_transform): Spill pseudos reassigned to NO_REGS.
26044
4d9f9757 260452013-04-29 Uros Bizjak <ubizjak@gmail.com>
26046
26047 PR target/57098
26048 * config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory.
26049
35a93fee 260502013-04-29 Ian Bolton <ian.bolton@arm.com>
26051
26052 * config/aarch64/aarch64.md (movsi_aarch64): Support LDR/STR
26053 from/to S register.
26054 (movdi_aarch64): Support LDR/STR from/to D register.
26055
65c4a832 260562013-04-29 Ian Bolton <ian.bolton@arm.com>
26057
26058 * common/config/aarch64/aarch64-common.c: Enable REE pass at O2
26059 or higher by default.
26060
caf1e632 260612013-04-29 Richard Biener <rguenther@suse.de>
26062
26063 PR middle-end/57075
26064 * tree-inline.c (copy_edges_for_bb): Still split the bbs,
26065 even if not adding abnormal edges for calls that can make
26066 abnormal gotos.
26067
00ef57e3 260682013-04-29 Richard Biener <rguenther@suse.de>
26069
26070 PR middle-end/57103
26071 * tree-cfg.c (move_stmt_op): Fix condition under which to update
26072 TREE_BLOCK.
26073 (move_stmt_r): Remove redundant checking.
26074
e2bc4ec8 260752013-04-29 Teresa Johnson <tejohnson@google.com>
26076
26077 PR bootstrap/57077
26078 * basic-block.h (apply_scale): New function.
26079 (apply_probability): Use apply_scale.
26080 * gimple-streamer-in.c (input_bb): Ditto.
26081 * lto-streamer-in.c (input_cfg): Ditto.
26082 * lto-cgraph.c (merge_profile_summaries): Ditto.
26083 * tree-optimize.c (execute_fixup_cfg): Ditto.
4d9f9757 26084 * tree-inline.c (copy_bb): Update comment to use apply_scale.
e2bc4ec8 26085 (copy_edges_for_bb): Ditto.
26086 (copy_cfg_body): Ditto.
26087
c48f77d5 260882013-04-29 Tom de Vries <tom@codesourcery.com>
26089
26090 * tree-ssa-tail-merge.c (find_same_succ_bb): Skip loop latch bbs.
26091 (replace_block_by): Don't set LOOPS_NEED_FIXUP.
26092 (tail_merge_optimize): Handle current_loops == NULL.
26093
3172284a 260942013-04-26 Jeff Law <law@redhat.com>
26095
26096 * tree-vrp.c (range_fits_type_p): Move to earlier point in file.
26097 (simplify_cond_using_ranges): Generalize code to simplify
26098 COND_EXPRs where one argument is a constant and the other
26099 is an SSA_NAME created by an integral type conversion.
26100
f15d4d96 261012013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26102
26103 * config/arm/arm.md (store_minmaxsi): Use only when
26104 optimize_insn_for_size_p.
26105
7d523484 261062013-04-29 Christian Bruel <christian.bruel@st.com>
26107
26108 PR target/57108
26109 * sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0.
26110
04c2922b 261112013-04-29 Richard Biener <rguenther@suse.de>
26112
26113 PR middle-end/57089
4d9f9757 26114 * omp-low.c (expand_omp_taskreg): If the parent function had a broken
26115 loop tree make sure to schedule a fixup for the child as well.
04c2922b 26116 (expand_omp_for_generic): Properly add loops.
26117 (expand_omp_for_static_nochunk): Likewise.
26118 (expand_omp_for_static_chunk): Likewise.
26119 (expand_omp_for): For the degenerate case fixup loops.
26120 (expand_omp_sections): Fix default bb placement in loops.
26121 (expand_omp_atomic_pipeline): Properly add loops.
26122
3349fabd 261232013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
26124
26125 * predict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY.
26126
a441795e 261272013-04-29 Tom de Vries <tom@codesourcery.com>
26128
26129 * tree-ssa-tail-merge.c: Update header comment.
26130
8111d37b 261312013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
26132
26133 * config/aarch64/arm_neon.h
26134 (vcvt<sd>_f<32,64>_s<32,64>): Rewrite in C.
26135 (vcvt<q>_f<32,64>_s<32,64>): Rewrite using builtins.
26136 (vcvt_<high_>_f<32,64>_f<32,64>): Likewise.
26137 (vcvt<qsd>_<su><32,64>_f<32,64>): Likewise.
26138 (vcvta<qsd>_<su><32,64>_f<32,64>): Likewise.
26139 (vcvtm<qsd>_<su><32,64>_f<32,64>): Likewise.
26140 (vcvtn<qsd>_<su><32,64>_f<32,64>): Likewise.
26141 (vcvtp<qsd>_<su><32,64>_f<32,64>): Likewise.
26142
c14c74cf 261432013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
26144
26145 * config/aarch64/aarch64-simd.md
26146 (<optab><VDQF:mode><fcvt_target>2): New, maps to fix, fixuns.
26147 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): New, maps to
26148 fix_trunc, fixuns_trunc.
26149 (ftrunc<VDQF:mode>2): New.
26150 * config/aarch64/iterators.md (optab): Add fix, fixuns.
26151 (fix_trunc_optab): New.
26152
2ddf5043 261532013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
26154
26155 * config/aarch64/aarch64-builtins.c
26156 (aarch64_builtin_vectorized_function): Vectorize over ifloorf,
26157 iceilf, lround, iroundf.
26158
2a631a93 261592013-04-29 Uros Bizjak <ubizjak@gmail.com>
26160
26161 PR target/54349
26162 * config/i386/i386.h (enum ix86_tune_indices)
26163 <X86_TUNE_INTER_UNIT_MOVES_TO_VEC, X86_TUNE_INTER_UNIT_MOVES_FROM_VEC>:
26164 New, split from X86_TUNE_INTER_UNIT_MOVES.
26165 <X86_TUNE_INTER_UNIT_MOVES>: Remove.
26166 (TARGET_INTER_UNIT_MOVES_TO_VEC): New define.
26167 (TARGET_INTER_UNIT_MOVES_FROM_VEC): Ditto.
26168 (TARGET_INTER_UNIT_MOVES): Remove.
26169 * config/i386/i386.c (initial_ix86_tune_features): Update.
26170 Disable X86_TUNE_INTER_UNIT_MOVES_FROM_VEC for m_ATHLON_K8 only.
26171 (ix86_expand_convert_uns_didf_sse): Use
26172 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
26173 (ix86_expand_vector_init_one_nonzero): Ditto.
26174 (ix86_expand_vector_init_interleave): Ditto.
26175 (inline_secondary_memory_needed): Return true for moves from SSE class
26176 registers for !TARGET_INTER_UNIT_MOVES_FROM_VEC targets and for moves
26177 to SSE class registers for !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
26178 * config/i386/constraints.md (Yi, Ym): Depend on
26179 TARGET_INTER_UNIT_MOVES_TO_VEC.
26180 (Yj, Yn): New constraints.
26181 * config/i386/i386.md (*movdi_internal): Change constraints of
26182 operand 1 from Yi to Yj and from Ym to Yn.
26183 (*movsi_internal): Ditto.
26184 (*movdf_internal): Ditto.
26185 (*movsf_internal): Ditto.
26186 (*float<SWI48x:mode><X87MODEF:mode>2_1): Use
26187 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
26188 (*float<SWI48x:mode><X87MODEF:mode>2_1 splitters): Ditto.
26189 (floatdi<X87MODEF:mode>2_i387_with_xmm): Ditto.
26190 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters): Ditto.
26191 * config/i386/sse.md (movdi_to_sse): Ditto.
26192 (sse2_stored): Change constraint of operand 1 from Yi to Yj.
26193 Use TARGET_INTER_UNIT_MOVES_FROM_VEC instead of
26194 TARGET_INTER_UNIT_MOVES.
26195 (sse_storeq_rex64): Change constraint of operand 1 from Yi to Yj.
26196 (sse_storeq_rex64 splitter): Use TARGET_INTER_UNIT_MOVES_FROM_VEC
26197 instead of TARGET_INTER_UNIT_MOVES.
26198 * config/i386/mmx.md (*mov<mode>_internal): Change constraint of
26199 operand 1 from Yi to Yj and from Ym to Yn.
26200
9f224c46 262012013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
26202
26203 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New.
26204 (float_truncate_hi_): Likewise.
26205 (float_extend_lo_): Likewise.
26206 (float_truncate_lo_): Likewise.
26207 * config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New.
26208 (aarch64_float_extend_lo_v2df): Likewise.
26209 (vec_unpacks_hi_v4sf): Likewise.
26210 (aarch64_float_truncate_lo_v2sf): Likewise.
26211 (aarch64_float_truncate_hi_v4sf): Likewise.
26212 (vec_pack_trunc_v2df): Likewise.
26213 (vec_pack_trunc_df): Likewise.
26214
865dd64d 262152013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
26216
26217 * config/aarch64/aarch64-builtins.c
26218 (aarch64_fold_builtin): Fold float conversions.
26219 * config/aarch64/aarch64-simd-builtins.def
26220 (floatv2si, floatv4si, floatv2di): New.
26221 (floatunsv2si, floatunsv4si, floatunsv2di): Likewise.
26222 * config/aarch64/aarch64-simd.md
26223 (<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns.
26224 * config/aarch64/iterators.md (FLOATUORS): New.
26225 (optab): Add float, floatuns.
26226 (su_optab): Likewise.
26227
2fc9b3fc 262282013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
26229
26230 * config/aarch64/aarch64-builtins.c
26231 (aarch64_builtin_vectorized_function): Use new names for
26232 fcvt builtins.
26233 * config/aarch64/aarch64-simd-builtins.def (fcvtzs): Split as...
26234 (lbtruncv2sf, lbtruncv4sf, lbtruncv2df): ...This.
26235 (fcvtzu): Split as...
26236 (lbtruncuv2sf, lbtruncuv4sf, lbtruncuv2df): ...This.
26237 (fcvtas): Split as...
26238 (lroundv2sf, lroundv4sf, lroundv2df, lroundsf, lrounddf): ...This.
26239 (fcvtau): Split as...
26240 (lrounduv2sf, lrounduv4sf, lrounduv2df, lroundusf, lroundudf): ...This.
26241 (fcvtps): Split as...
26242 (lceilv2sf, lceilv4sf, lceilv2df): ...This.
26243 (fcvtpu): Split as...
26244 (lceiluv2sf, lceiluv4sf, lceiluv2df, lceilusf, lceiludf): ...This.
26245 (fcvtms): Split as...
26246 (lfloorv2sf, lfloorv4sf, lfloorv2df): ...This.
26247 (fcvtmu): Split as...
26248 (lflooruv2sf, lflooruv4sf, lflooruv2df, lfloorusf, lfloorudf): ...This.
26249 (lfrintnv2sf, lfrintnv4sf, lfrintnv2df, lfrintnsf, lfrintndf): New.
26250 (lfrintnuv2sf, lfrintnuv4sf, lfrintnuv2df): Likewise.
26251 (lfrintnusf, lfrintnudf): Likewise.
26252 * config/aarch64/aarch64-simd.md
26253 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Convert to
26254 define_insn.
26255 (aarch64_fcvt<frint_suffix><su><mode>): Remove.
26256 * config/aarch64/iterators.md (FCVT): Include UNSPEC_FRINTN.
26257 (fcvt_pattern): Likewise.
26258
38c0c992 262592013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
26260
26261 * config/aarch64/aarch64-simd.md
26262 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Rename to...
26263 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): ... This.
26264
0c882306 262652013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
26266
26267 * config/aarch64/arm_neon.h (vrndq<a,m,n,p>_f<32, 64>): Rename to...
26268 (vrnd<a,m,n,p>q_f<32, 64>): ...This, implement using builtin.
26269 (vrnd<a,m,n,p>_f32): Implement using builtins.
26270 (vrnd<i,x><q>_f<32, 64>): New.
26271
abb2e961 262722013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
26273
26274 * config/aarch64/aarch64-builtins.c
26275 (aarch64_builtin_vectorized_function): Fold to standard pattern names.
26276 * config/aarch64/aarch64-simd-builtins.def (frintn): New.
26277 (frintz): Rename to...
26278 (btrunc): ...this.
26279 (frintp): Rename to...
26280 (ceil): ...this.
26281 (frintm): Rename to...
26282 (floor): ...this.
26283 (frinti): Rename to...
26284 (nearbyint): ...this.
26285 (frintx): Rename to...
26286 (rint): ...this.
26287 (frinta): Rename to...
26288 (round): ...this.
26289 * config/aarch64/aarch64-simd.md
26290 (aarch64_frint<frint_suffix><mode>): Delete.
26291 (<frint_pattern><mode>2): Convert to insn.
26292 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN.
26293 * config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN.
26294 (frint_pattern): Likewise.
26295 (frint_suffix): Likewise.
26296
9584aa9d 262972013-04-29 Richard Biener <rguenther@suse.de>
26298
26299 PR tree-optimization/57081
26300 * loop-init.c: Include tree-flow.h.
26301 (loop_optimizer_finalize): Free number of iteration estimates.
26302 * Makefile.in (loop-init.o): Add $(TREE_FLOW_H) dependency.
26303
ebdfd365 263042013-04-29 Jakub Jelinek <jakub@redhat.com>
26305
5b566583 26306 PR tree-optimization/57083
26307 * tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with
26308 non-singleton shift count range, zero extend low_bound for uns case.
26309
ebdfd365 26310 * config/i386/predicates.md (general_vector_operand): New predicate.
26311 * config/i386/i386.c (const_vector_equal_evenodd_p): New function.
26312 (ix86_expand_mul_widen_evenodd): Force op1 resp. op2 into register
26313 if they aren't nonimmediate operands. If their original values
26314 satisfy const_vector_equal_evenodd_p, don't shift them.
26315 * config/i386/sse.md (mul<mode>3): Use general_vector_operand
26316 predicates. For the SSE4.1 case force operands[{1,2}] into registers
26317 if not nonimmediate_operand.
26318 (vec_widen_smult_even_v4si): Use nonimmediate_operand predicates
26319 instead of register_operand.
26320 (vec_widen_<s>mult_odd_<mode>): Use general_vector_operand predicates.
26321
992a05af 263222013-04-28 Eric Botcazou <ebotcazou@adacore.com>
c6cfb282 26323
26324 * stor-layout.c (finalize_size_functions): Allocate a structure and
26325 reset cfun before dumping the functions.
26326
a31cce64 263272013-04-27 Jakub Jelinek <jakub@redhat.com>
26328
95d51e38 26329 * config/i386/i386.c (ix86_expand_call): Make cregs_size unsigned.
26330
a31cce64 26331 PR target/56866
26332 * config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't
26333 use xop_pmacsdqh if uns_p.
26334 * config/i386/sse.md (xop_rotr<mode>3): Fix up computation of
26335 the immediate rotate count.
26336
ea99c7a1 263372013-04-26 Vladimir Makarov <vmakarov@redhat.com>
26338
26339 * rtl.h (struct rtx_def): Add comment for field jump.
26340 (LRA_SUBREG_P): New macro.
26341 * recog.c (register_operand): Check LRA_SUBREG_P.
26342 * lra.c (lra): Add note at the end of RTL code. Align non-empty
26343 stack frame.
26344 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
26345 (lra_final_code_change): Skip subreg change for operators.
26346 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
26347 if there are no operand changes.
26348 * lra-constraints.c (curr_insn_set): New.
26349 (match_reload): Set LRA_SUBREG_P.
26350 (emit_spill_move): Ditto.
26351 (check_and_process_move): Use curr_insn_set. Process only single
26352 set insns. Don't initialize sec_mem_p and change_p.
26353 (simplify_operand_subreg): Use LRA_SUBREG_P.
26354 (reg_in_class_p): New function.
26355 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
26356 of #ifdef. Add code to remove cycling.
26357 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
26358 non-null disp. Reload inner instead of disp when base and index
26359 are null. Try to put lo_sum into register.
26360 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
26361 (check_and_process_move): Move code for move cost check to
26362 simple_move_p. Remove equiv_substitution.
26363 (simple_move_p): New function.
26364 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
26365 curr_insn_set. Call check_and_process_move only for single set
26366 insns. Use the new function. Move call of check_and_process_move
26367 after operand equiv substitution and address process.
26368
f585c295 263692013-04-26 Jakub Jelinek <jakub@redhat.com>
26370
26371 PR go/57045
26372 * tree-ssa-uninit.c (compute_uninit_opnds_pos): In functions
26373 with nonlocal goto receivers or returns twice calls, ignore
26374 unininitialized values from abnormal edges to nl goto receiver
26375 or returns twice call.
26376
b7219196 263772013-04-26 Jakub Jelinek <jakub@redhat.com>
26378
26379 PR tree-optimization/57051
26380 * fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR
26381 and VEC_RSHIFT_EXPR if shift count is a multiple of element
26382 bitsize.
26383
82b40354 263842013-04-26 Richard Biener <rguenther@suse.de>
26385
26386 * omp-low.c (finalize_task_copyfn): Do not drop PROP_loops.
26387 (expand_omp_taskreg): Likewise. Mark loops for fixup.
26388 * tree-cfg.c (move_block_to_fn): Remap loop fathers.
26389 (fixup_loop_arrays_after_move): New function.
26390 (move_sese_region_to_fn): Properly outline the loop tree parts
26391 of the SESE region.
26392
baad29fe 263932013-04-26 Uros Bizjak <ubizjak@gmail.com>
26394
26395 * config/i386/i386.md (type, unit): Fix long lines.
26396
7a569539 263972013-04-26 Richard Biener <rguenther@suse.de>
26398
26399 * Makefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency.
26400 (lto-streamer-out.o): Likewise.
26401 * cfgloop.c (init_loops_structure): Export, add struct function
26402 argument and adjust.
26403 (flow_loops_find): Adjust.
26404 * cfgloop.h (enum loop_estimation): Add EST_LAST.
26405 (init_loops_structure): Declare.
26406 * lto-streamer-in.c: Include cfgloop.h.
26407 (input_cfg): Input the loop tree.
26408 * lto-streamer-out.c: Include cfgloop.h.
26409 (output_cfg): Output the loop tree.
26410 (output_struct_function_base): Do not drop PROP_loops.
26411
f6568ea4 264122013-03-26 Richard Biener <rguenther@suse.de>
26413
26414 * tree-cfg.c (execute_build_cfg): Build the loop tree.
26415 (pass_build_cfg): Provide PROP_loops.
26416 (move_sese_region_to_fn): Remove loops that are outlined into fn
26417 for now.
26418 * tree-inline.c: Include cfgloop.h.
26419 (initialize_cfun): Do not drop PROP_loops.
26420 (copy_loops): New function.
26421 (copy_cfg_body): Copy loop structure.
26422 (tree_function_versioning): Initialize destination loop tree.
26423 * tree-ssa-loop.c (pass_tree_loop_init): Do not provide PROP_loops.
26424 (pass_parallelize_loops): Do IL verification.
26425 * loop-init.c (loop_optimizer_init): Fixup loops if required.
26426 * tree-optimize.c (execute_fixup_cfg): If we need to cleanup
26427 the CFG make sure we fixup loops as well.
26428 * tree-ssa-tail-merge.c: Include cfgloop.h.
26429 (replace_block_by): When merging loop latches mark loops for fixup.
26430 * lto-streamer-out.c (output_struct_function_base): Drop
26431 PROP_loops for now.
26432 * tree-ssa-phiopt.c: Include tree-scalar-evolution.h.
26433 (tree_ssa_cs_elim): Initialize the loop optimizer and SCEV.
26434 * ipa-split.c: Include cfgloop.h.
26435 (split_function): Add the new return block to the loop tree root.
26436 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Return
26437 whether we have removed the forwarder block.
26438 (merge_phi_nodes): If we removed a forwarder mark loops for fixup.
26439 * cfgloop.h (place_new_loop): Declare.
26440 * cfgloopmanip.c (place_new_loop): Export.
26441 * Makefile.in (asan.o): Add $(CFGLOOP_H) dependency.
26442 (tree-switch-conversion.o): Likewise.
26443 (tree-complex.o): Likewise.
26444 (tree-inline.o): Likewise.
26445 (tree-ssa-tailmerge.o): Likewise.
26446 (ipa-split.o): Likewise.
26447 (tree-ssa-phiopt.o): Add $(SCEV_H) dependency.
26448 (tree-ssa-copy.o): Likewise.
26449 * tree-switch-conversion.c: Include cfgloop.h
26450 (process_switch): If we emit a bit-test cascade, schedule loops
26451 for fixup.
26452 * tree-complex.c: Include cfgloop.h.
26453 (expand_complex_div_wide): Properly add new basic-blocks to loops.
26454 * asan.c: Include cfgloop.h.
26455 (create_cond_insert_point): Properly add new basic-blocks to
26456 loops, schedule loop fixup.
26457 * cfgloop.c (verify_loop_structure): Check that looks are not
26458 marked for fixup.
26459 * omp-low.c (expand_parallel_call): Properly add new basic-blocks
26460 to loops.
26461 (expand_omp_for_generic): Likewise.
26462 (expand_omp_sections): Likewise.
26463 (expand_omp_atomic_pipeline): Schedule loops for fixup.
26464 * tree-ssa-copy.c: Include tree-scalar-evolution.h.
26465 (fini_copy_prop): Disable DCE in substitute_and_fold if SCEV
26466 is initialized, not when loops are present.
26467 * tree-parloops.c (parallelize_loops): Remove checking here.
26468 * passes.c (init_optimization_passes): Schedule a copy-propagation
26469 pass before complete unrolling of inner loops.
26470
2cafe211 264712013-04-26 Jakub Jelinek <jakub@redhat.com>
26472
71eeb8d3 26473 * Makefile.in (toplev.o): Depend on diagnostic-color.h.
26474 * diagnostic-color.c (should_colorize): Remove _WIN32 version.
26475 (colorize_init): Add argument to _WIN32 version.
26476 * toplev.c: Include diagnostic-color.h.
26477 (process_options): Default to -fdiagnostics-color=auto if
26478 GCC_COLORS env var is in the environment.
26479 * common.opt (fdiagnostics-color=): Add Var and Init.
baad29fe 26480 * doc/invoke.texi (-fdiagnostics-color=): Document that if GCC_COLORS
26481 env var is in the environment, the default is auto rather than never.
71eeb8d3 26482
2cafe211 26483 * diagnostic.h (file_name_as_prefix): Add context argument.
26484 * diagnostic.c (file_name_as_prefix): Likewise. Colorize
26485 the string as locus.
26486 * langhooks.c (lhd_print_error_function): Adjust caller.
26487
33df9a15 264882013-04-25 Lawrence Crowl <crowl@google.com>
26489
26490 * var-tracking.c (shared_hash_def::htab):
26491 Change type to hash_table. Update dependent calls and types.
26492
d9dd21a8 264932013-04-25 Lawrence Crowl <crowl@google.com>
26494
26495 * Makefile.in: Update as needed below.
26496
26497 * alloc-pool.c (static hash_table <alloc_pool_hasher> alloc_pool_hash):
26498 Move declaration to after the type's method definitons.
26499
26500 * attribs.c (htab_t scoped_attributes::attribute_hash):
26501 Change type to hash_table. Update dependent calls and types.
26502
26503 * bitmap.c (htab_t bitmap_desc_hash):
26504 Change type to hash_table. Update dependent calls and types.
26505
26506 * cselib.c (htab_t cselib_hash_table):
26507 Change type to hash_table. Update dependent calls and types.
26508
26509 * data-streamer.h (struct string_slot): Move to lto-streamer.h.
26510 (hash_string_slot_node): Move implementation into lto-streamer.h
26511 struct string_slot_hasher.
26512 (eq_string_slot_node): Likewise.
26513
26514 * data-streamer-out.c: Update output_block::string_hash_table
26515 dependent calls and types.
26516
26517 * dwarf2cfi.c (htab_t trace_index):
26518 Change type to hash_table. Update dependent calls and types.
26519
26520 * dwarf2out.c (htab_t break_out_includes::cu_hash_table):
26521 Change type to hash_table. Update dependent calls and types.
26522 (htab_t copy_decls_for_unworthy_types::decl_table): Likewise.
26523 (htab_t optimize_external_refs::map): Likewise.
26524 (htab_t output_comp_unit::extern_map): Likewise.
26525 (htab_t output_comdat_type_unit::extern_map): Likewise.
26526 (htab_t output_macinfo::macinfo_htab): Likewise.
26527 (htab_t optimize_location_lists::htab): Likewise.
26528 (htab_t dwarf2out_finish::comdat_type_table): Likewise.
26529
26530 * except.c (htab_t ehspec_hash_type):
26531 Change type to hash_table. Update dependent calls and types.
26532 (assign_filter_values::ttypes): Likewise.
26533 (assign_filter_values::ehspec): Likewise.
26534 (sjlj_assign_call_site_values::ar_hash): Likewise.
26535 (convert_to_eh_region_ranges::ar_hash): Likewise.
26536
26537 * gcse.c (htab_t pre_ldst_table):
26538 Change type to hash_table. Update dependent calls and types.
26539
26540 * ggc-common.c (htab_t saving_htab):
26541 Change type to hash_table. Update dependent calls and types.
26542 (htab_t loc_hash): Likewise.
26543 (htab_t ptr_hash): Likewise.
26544 (call_count): Rename ggc_call_count.
26545 (call_alloc): Rename ggc_call_alloc.
26546 (loc_descriptor): Rename make_loc_descriptor.
26547 (add_statistics): Rename ggc_add_statistics.
26548
26549 * ggc-common.c (saving_htab):
26550 Change type to hash_table. Update dependent calls and types.
26551
26552 * gimple.h (struct gimplify_ctx): Move to gimplify-ctx.h.
26553 (push_gimplify_context): Likewise.
26554 (pop_gimplify_context): Likewise.
26555 (struct gimple_temp_hash_elt): Added.
26556 (struct gimplify_hasher): Likewise.
26557 (struct gimplify_ctx.temp_htab):
26558 Change type to hash_table. Update dependent calls and types.
26559
26560 * gimple-fold.c: Include gimplify-ctx.h.
26561
26562 * gimple-ssa-strength-reduction.c (htab_t base_cand_map):
26563 Change type to hash_table. Update dependent calls and types.
26564 (base_cand_dump_callback): Rename to ssa_base_cand_dump_callback to
26565 avoid potential global name collision.
26566
26567 * gimplify.c: Include gimplify-ctx.h.
26568 (struct gimple_temp_hash_elt): Move to gimplify-ctx.h.
26569 (htab_t gimplify_ctx::temp_htab):
26570 Update dependent calls and types for new type hash_table.
26571 (gimple_tree_hash): Move into gimplify_hasher in gimplify-ctx.h.
26572 (gimple_tree_eq): Move into gimplify_hasher in gimplify-ctx.h.
26573
26574 * gimplify-ctx.h: New.
26575 (struct gimple_temp_hash_elt): Move from gimplify.c.
26576 (class gimplify_hasher): New.
26577 (struct gimplify_ctx): Move from gimple.h.
26578 (htab_t gimplify_ctx::temp_htab):
26579 Change type to hash_table. Update dependent calls and types.
26580
26581 * graphite-clast-to-gimple.c: Include graphite-htab.h.
26582 (htab_t ivs_params::newivs_index):
26583 Change type to hash_table. Update dependent calls and types.
26584 (htab_t ivs_params::params_index): Likewise.
26585 (htab_t print_generated_program::params_index): Likewise.
26586 (htab_t gloog::newivs_index): Likewise.
26587 (htab_t gloog::params_index): Likewise.
26588
26589 * graphite.c: Include graphite-htab.h.
26590 4htab_t graphite_transform_loops::bb_pbb_mapping):
26591 Change type to hash_table. Update dependent calls and types.
26592
26593 * graphite-clast-to-gimple.h: (extern gloog) Move to graphite-htab.h.
26594 (bb_pbb_map_hash): Fold into bb_pbb_htab_type in graphite-htab.h.
26595 (eq_bb_pbb_map): Fold into bb_pbb_htab_type in graphite-htab.h.
26596
26597 * graphite-dependences.c: Include graphite-htab.h.
26598 (loop_is_parallel_p): Change hash table type of parameter.
26599
26600 * graphite-htab.h: New.
26601 (typedef hash_table <bb_pbb_hasher> bb_pbb_htab_type): New.
26602 (extern find_pbb_via_hash): Move from graphite-poly.h.
26603 (extern loop_is_parallel_p): Move from graphite-poly.h.
26604 (extern get_loop_body_pbbs): Move from graphite-poly.h.
26605
26606 * graphite-poly.h (extern find_pbb_via_hash): Move to graphite-htab.h.
26607 (extern loop_is_parallel_p): Move to graphite-htab.h.
26608 (extern get_loop_body_pbbs): Move to graphite-htab.h.
26609
26610 * haifa-sched.c (htab_t delay_htab):
26611 Change type to hash_table. Update dependent calls and types.
26612 (htab_t delay_htab_i2): Likewise.
26613
26614 * ira-color.c (htab_t allocno_hard_regs_htab):
26615 Change type to hash_table. Update dependent calls and types.
26616
26617 * ira-costs.c (htab_t cost_classes_htab):
26618 Change type to hash_table. Update dependent calls and types.
26619
26620 * loop-invariant.c (htab_t merge_identical_invariants::eq):
26621 Change type to hash_table. Update dependent calls and types.
26622
26623 * loop-iv.c (htab_t bivs):
26624 Change type to hash_table. Update dependent calls and types.
26625
26626 * loop-unroll.c (htab_t opt_info::insns_to_split):
26627 Change type to hash_table. Update dependent calls and types.
26628 (htab_t opt_info::insns_with_var_to_expand): Likewise.
26629
26630 * lto-streamer.h (struct string_slot): Move from data-streamer.h
26631 (struct string_slot_hasher): New.
26632 (htab_t output_block::string_hash_table):
26633 Change type to hash_table. Update dependent calls and types.
26634
26635 * lto-streamer-in.c (freeing_string_slot_hasher): New.
26636 (htab_t file_name_hash_table):
26637 Change type to hash_table. Update dependent calls and types.
26638
26639 * lto-streamer-out.c: Update output_block::string_hash_table dependent
26640 calls and types.
26641
26642 * lto-streamer.c (htab_t tree_htab):
26643 Change type to hash_table. Update dependent calls and types.
26644
26645 * omp-low.c: Include gimplify-ctx.h.
26646
26647 * passes.c (htab_t name_to_pass_map):
26648 Change type to hash_table. Update dependent calls and types.
26649 (pass_traverse): Rename to passes_pass_traverse.
26650
26651 * plugin.c (htab_t event_tab):
26652 Change type to hash_table. Update dependent calls and types.
26653
26654 * postreload-gcse.c (htab_t expr_table):
26655 Change type to hash_table. Update dependent calls and types.
26656 (dump_hash_table_entry): Rename dump_expr_hash_table_entry.
26657
26658 * sese.c (debug_rename_map_1): Make extern.
26659 (htab_t copy_bb_and_scalar_dependences::rename_map):
26660 Change type to hash_table. Update dependent calls and types.
26661
26662 * sese.h (extern debug_rename_map): Move to .c file.
26663
26664 * store-motion.c (htab_t store_motion_mems_table):
26665 Change type to hash_table. Update dependent calls and types.
26666
26667 * trans-mem.c (htab_t tm_new_mem_hash):
26668 Change type to hash_table. Update dependent calls and types.
26669
26670 * tree-browser.c (htab_t TB_up_ht):
26671 Change type to hash_table. Update dependent calls and types.
26672
26673 * tree-cfg.c (htab_t discriminator_per_locus):
26674 Change type to hash_table. Update dependent calls and types.
26675
26676 * tree-complex.c: Include tree-hasher.h
26677 (htab_t complex_variable_components):
26678 Change type to hash_table. Update dependent calls and types.
26679
26680 * tree-eh.c (htab_t finally_tree):
26681 Change type to hash_table. Update dependent calls and types.
26682
26683 * tree-flow.h (extern int_tree_map_hash): Moved into tree-hasher
26684 struct int_tree_hasher.
26685 (extern int_tree_map_eq): Likewise.
26686 (uid_decl_map_hash): Removed.
26687 (extern decl_tree_map_eq): Likewise.
26688
26689 * tree-hasher.h: New.
26690 (struct int_tree_hasher): New.
26691 (typedef int_tree_htab_type): New.
26692
26693 * tree-inline.c: Include gimplify-ctx.h.
26694
26695 * tree-mudflap.c: Include gimplify-ctx.h.
26696
26697 * tree-parloops.c: Include tree-hasher.h.
26698 (htab_t eliminate_local_variables_stmt::decl_address):
26699 Change type to hash_table. Update dependent calls and types.
26700 (htab_t separate_decls_in_region::decl_copies): Likewise.
26701
26702 * tree-scalar-evolution.c (htab_t resolve_mixers::cache):
26703 Change type to hash_table. Update dependent calls and types.
26704
26705 * tree-sra.c (candidates):
26706 Change type to hash_table. Update dependent calls and types.
26707
26708 * tree-ssa.c (int_tree_map_eq): Moved into struct int_tree_hasher
26709 in tree-flow.h.
26710 (int_tree_map_hash): Likewise.
26711
26712 * tree-ssa-dom.c (htab_t avail_exprs):
26713 Change type to hash_table. Update dependent calls and types.
26714
26715 * tree-ssa-live.c (var_map_base_init::tree_to_index):
26716 Change type to hash_table. Update dependent calls and types.
26717
26718 * tree-ssa-loop-ivopts.c (struct ivopts_data.inv_expr_tab):
26719 Change type to hash_table. Update dependent calls and types.
26720
26721 * tree-ssa-phiopt.c (seen_ssa_names):
26722 Change type to hash_table. Update dependent calls and types.
26723
26724 * tree-ssa-strlen.c (decl_to_stridxlist_htab):
26725 Change type to hash_table. Update dependent calls and types.
26726
26727 * tree-ssa-uncprop.c (equiv):
26728 Change type to hash_table. Update dependent calls and types.
26729
ca719585 267302013-04-25 Jakub Jelinek <jakub@redhat.com>
26731
26732 PR rtl-optimization/57003
26733 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
26734 call note_stores with kill_clobbered_value callback again after
26735 killing regs_invalidated_by_call.
26736
0a627f67 267372013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
26738
26739 * config/aarch64/aarch64-simd.md
26740 (aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL.
26741 (aarch64_simd_bsl<mode>): Likewise.
26742 * config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL.
26743
7695fea9 267442013-04-25 Marek Polacek <polacek@redhat.com>
26745
26746 PR tree-optimization/57066
65c52515 26747 * builtins.c (fold_builtin_logb): Return +Inf for -Inf.
7695fea9 26748
21ebaa24 267492013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
535e3387 26750
26751 * config/aarch64/aarch64-simd.md (neg<mode>2): Use VDQ iterator.
26752
f164e9a5 267532013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
26754
26755 * config/aarch64/aarch64-builtins.c
26756 (aarch64_fold_builtin): New.
26757 * config/aarch64/aarch64-protos.h (aarch64_fold_builtin): New.
26758 * config/aarch64/aarch64.c (TARGET_FOLD_BUILTIN): Define.
26759 * config/aarch64/aarch64-simd-builtins.def (abs): New.
26760 * config/aarch64/arm_neon.h
26761 (vabs<q>_<f32, 64>): Implement using __builtin_aarch64_fabs.
26762
58aab7ce 267632013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
26764 Tejas Belagod <tejas.belagod@arm.com>
26765
26766 * config/aarch64/aarch64-builtins.c
26767 (aarch64_gimple_fold_builtin): New.
26768 * config/aarch64/aarch64-protos.h (aarch64_gimple_fold_builtin): New.
26769 * config/aarch64/aarch64-simd-builtins.def (addv): New.
26770 * config/aarch64/aarch64-simd.md (addpv4sf): New.
26771 (addvv4sf): Update.
26772 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define.
26773
c7262ba2 267742013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
26775
baad29fe 26776 * config/aarch64/aarch64.md
c7262ba2 26777 (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): New pattern.
26778
993fed27 267792013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
26780
26781 * config/aarch64/aarch64.md (*ngc<mode>): New pattern.
26782 (*ngcsi_uxtw): New pattern.
26783
8518cada 267842013-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
65c52515 26785 Julian Brown <julian@codesourcery.com>
8518cada 26786
26787 * config/arm/arm.c (neon_builtin_type_mode): Add T_V4HF.
26788 (TB_DREG): Add T_V4HF.
26789 (v4hf_UP): New macro.
26790 (neon_itype): Add NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
baad29fe 26791 (arm_init_neon_builtins): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
8518cada 26792 Handle initialisation of V4HF. Adjust initialisation of reinterpret
26793 built-ins.
baad29fe 26794 (arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
8518cada 26795 (arm_vector_mode_supported_p): Handle V4HF.
26796 (arm_mangle_map): Handle V4HFmode.
26797 * config/arm/arm.h (VALID_NEON_DREG_MODE): Add V4HF.
26798 * config/arm/arm_neon_builtins.def: Add entries for
26799 vcvtv4hfv4sf, vcvtv4sfv4hf.
26800 * config/arm/neon.md (neon_vcvtv4sfv4hf): New pattern.
26801 (neon_vcvtv4hfv4sf): Likewise.
26802 * config/arm/neon-gen.ml: Handle half-precision floating point
26803 features.
26804 * config/arm/neon-testgen.ml: Handle Requires_FP_bit feature.
26805 * config/arm/arm_neon.h: Regenerate.
26806 * config/arm/neon.ml (type elts): Add F16.
26807 (type vectype): Add T_float16x4, T_floatHF.
26808 (type vecmode): Add V4HF.
26809 (type features): Add Requires_FP_bit feature.
26810 (elt_width): Handle F16.
26811 (elt_class): Likewise.
26812 (elt_of_class_width): Likewise.
26813 (mode_of_elt): Refactor.
26814 (type_for_elt): Handle F16, fix error messages.
26815 (vectype_size): Handle T_float16x4.
26816 (vcvt_sh): New function.
26817 (ops): Add entries for vcvt_f16_f32, vcvt_f32_f16.
26818 (string_of_vectype): Handle T_floatHF, T_float16, T_float16x4.
26819 (string_of_mode): Handle V4HF.
26820 * doc/arm-neon-intrinsics.texi: Regenerate.
26821
66a71b3d 268222013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
26823
26824 * config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf
26825 format specifier in 'X' case.
26826
0ee54873 268272013-04-25 Alan Modra <amodra@gmail.com>
26828
26829 PR target/57052
26830 * config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
26831 rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
26832 (rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
26833 Repeat for many other rotate/shift and mask patterns using subregs.
26834 Name lshiftrt insns.
26835 (ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
26836 on WORDS_BIG_ENDIAN.
26837
d80dc920 268382013-04-25 Alan Modra <amodra@gmail.com>
26839
26840 * config.gcc: Support little-endian powerpc-linux targets.
26841 * config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define.
26842 (LINK_OS_LINUX_SPEC): Define.
26843 * config/rs6000/linuxspe.h (TARGET_DEFAULT):
26844 Preserve MASK_LITTLE_ENDIAN.
26845 * config/rs6000/default64.h (TARGET_DEFAULT): Likewise.
26846 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise.
26847 * config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero.
26848 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define.
26849 (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above.
26850 * config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF.
26851 Correct fp word order for little-endian. Don't shift toc entries
26852 smaller than a word for little-endian.
26853 * config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment.
26854 (bswapdi2 splits): Correct low-part subreg for little-endian.
26855 Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove
26856 low/high where such is correct only for be.
26857 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow
26858 little-endian for -mcall-aixdesc.
26859
d04c855d 268602013-04-25 Alan Modra <amodra@gmail.com>
26861
26862 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
26863 replace_equiv_address_nv.
26864
1efbef15 268652013-04-25 Alan Modra <amodra@gmail.com>
26866
26867 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Tidy.
26868
50580188 268692013-04-24 Vladimir Makarov <vmakarov@redhat.com>
26870
26871 Revert:
26872 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
26873 * rtl.h (struct rtx_def): ...
1efbef15 26874
74855d08 268752013-04-24 Vladimir Makarov <vmakarov@redhat.com>
26876
26877 PR rtl-optimizations/57046
26878 * lra-constraints (split_reg): Set up lra_risky_transformations_p
26879 for multi-reg splits.
26880
6c4ccb7b 268812013-04-24 H.J. Lu <hongjiu.lu@intel.com>
26882
26883 * config/i386/x86-64.h (ASM_SPEC): Support -mx32.
26884
1c74176c 268852013-04-24 Sterling Augustine <saugustine@google.com>
26886
26887 * dwarf2out.c (skeleton_debug_str_hash, add_skeleton_AT_string)
26888 (comp_dir_string, debug_str_dwo_section): New.
26889 (DEBUG_STR_DWO_SECTION): Rename to ...
26890 (DEBUG_DWO_STR_SECTION): ... this.
26891 (DEBUG_NORM_STR_SECTION): Delete.
26892 (DEBUG_STR_SECTION, DEBUG_STR_SECTION_FLAGS): Edit definitions.
26893 (DEBUG_STR_DWO_SECTION_FLAGS): New.
26894 (find_AT_string): Move most logic to ...
26895 (find_AT_string_in_table): ... here. New.
26896 (add_top_level_skeleton_die_attrs): Call comp_dir_string and
26897 add_skeleton_AT_string. Delete logic.
26898 (output_skeleton_debug_sections): Remove call to
26899 add_top_level_skeleton_die_attrs.
26900 (add_comp_dir_attribute): Move logic to comp_dir_string.
26901 (dwarf2out_init): Initialize debug_str_dwo_section.
26902 (output_indirect_string): Call find_string_form.
26903 (output_indirect_strings): Rewrite.
26904 (prune_unused_types): Empty skeleton_debug_str_hash.
26905 Call get_skeleton_type_unit and add_top_level_skeleton_die_attrs.
26906 (dwarf2out_finish): Call output_indirect_strings.
26907
949dbf93 269082013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
26909
26910 * doc/cpp.texi: Remove __GXX_EXPERIMENTAL_CXX1Y__.
26911
bac08f26 269122013-04-24 Vladimir Makarov <vmakarov@redhat.com>
26913
1efbef15 26914 * rtl.h (struct rtx_def): Add comment for field jump.
bac08f26 26915 (LRA_SUBREG_P): New macro.
26916 * recog.c (register_operand): Check LRA_SUBREG_P.
26917 * lra.c (lra): Add note at the end of RTL code. Align non-empty
26918 stack frame.
26919 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
26920 (lra_final_code_change): Skip subreg change for operators.
26921 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
26922 if there are no operand changes.
26923 * lra-constraints.c (curr_insn_set): New.
26924 (match_reload): Set LRA_SUBREG_P.
26925 (emit_spill_move): Ditto.
26926 (check_and_process_move): Use curr_insn_set. Process only single
26927 set insns. Don't initialize sec_mem_p and change_p.
26928 (simplify_operand_subreg): Use LRA_SUBREG_P.
26929 (reg_in_class_p): New function.
26930 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
26931 of #ifdef. Add code to remove cycling.
26932 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
26933 non-null disp. Reload inner instead of disp when base and index
26934 are null. Try to put lo_sum into register.
26935 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
1efbef15 26936 (check_and_process_move): Move code for move cost check to
bac08f26 26937 simple_move_p. Remove equiv_substitution.
1efbef15 26938 (simple_move_p): New function.
bac08f26 26939 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
26940 curr_insn_set. Call check_and_process_move only for single set
26941 insns. Use the new function. Move call of check_and_process_move
26942 after operand equiv substitution and address process.
26943
2d62f55c 269442013-04-24 James Greenhalgh <james.greenhalgh@arm.com>
26945
26946 * config/aarch64/arm_neon.h (vld1<q>_lane*): Fix constraints.
26947 (vld1<q>_dup_<sufp><8, 16, 32, 64>): Likewise.
26948 (vld1<q>_<sufp><8, 16, 32, 64>): Likewise.
26949
05d0bce1 269502013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
26951
26952 * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CXX1Y__.
26953
0d009ac2 269542013-04-24 Marek Polacek <polacek@redhat.com>
26955
26956 * tree-scalar-evolution.h (analyze_scalar_evolution): Remove.
26957 * tree-scalar-evolution.c (get_exit_conditions_rec): Likewise.
26958 (select_loops_exit_conditions): Likewise.
26959 (number_of_iterations_for_all_loops): Likewise.
26960 (analyze_scalar_evolution_for_all_loop_phi_nodes): Likewise.
26961 (scev_analysis): Likewise.
26962
21e02cfa 269632013-04-02 Catherine Moore <clm@codesourcery.com>
c3d2d0e4 26964 Chao-ying Fu <fu@mips.com>
21e02cfa 26965
1efbef15 26966 * config/mips/micromips.md (jraddiusp): New pattern.
26967 * config/mips/mips.c (mips_expand_epilogue): Use the JRADDIUSP
26968 instruction if possible.
21e02cfa 26969
99646b03 269702013-04-24 Alan Modra <amodra@gmail.com>
26971
26972 * config/rs6000/driver-rs6000.c (elf_dcachebsize): Fix comment pasto.
26973
47b5e9f1 269742013-04-24 Julian Brown <julian@codesourcery.com>
26975 Chung-Lin Tang <cltang@codesourcery.com>
26976
26977 * dwarf2out.c (gen_enumeration_type_die): Fix HOST_BITS_PER_WIDE_INT
baad29fe 26978 dependency behavior in enumeration type DIE generation. Add TODO note
26979 to comments about future DW_FORM_sdata/udata re-work of related code.
47b5e9f1 26980
3e871d4d 269812013-04-23 Lawrence Crowl <crowl@google.com>
26982
26983 * Makefile.in: Update as needed below.
26984
26985 * hash-table.h (class hash_table):
26986 Correct many methods with parameter types compare_type to the correct
26987 value_type. (Correct code was unlikely to notice the change.)
26988 (hash_table::elements_with_deleted) New.
26989 (class hashtable::iterator): New.
26990 (hashtable::begin()): New.
26991 (hashtable::end()): New.
26992 (FOR_EACH_HASH_TABLE_ELEMENT): New.
26993
26994 * statistics.c (statistics_hashes):
26995 Change type to hash_table. Update dependent calls and types.
26996
26997 * tree-into-ssa.c (var_infos):
26998 Change type to hash_table. Update dependent calls and types.
26999
27000 * tree-ssa-coalesce.c (struct coalesce_list_d.list):
27001 Change type to hash_table. Update dependent calls and types.
27002
27003 * tree-ssa-loop-im.c (struct mem_ref.refs):
27004 Change type to hash_table. Update dependent calls and types.
27005
27006 * tree-ssa-reassoc.c (undistribute_ops_list::ctable):
27007 Change type to hash_table. Update dependent calls and types.
27008
27009 * tree-ssa-sccvn.c (vn_tables_s::nary):
27010 Change type to hash_table. Update dependent calls and types.
27011 (vn_tables_s::phis): Likewise.
27012 (vn_tables_s::references): Likewise.
27013
27014 * tree-ssa-sccvn.h (vn_nary_op_eq): Update parameter and return types.
27015 (vn_reference_eq): Update parameter and return types.
27016
27017 * tree-ssa-structalias.c (pointer_equiv_class_table):
27018 Change type to hash_table. Update dependent calls and types.
27019 (location_equiv_class_table): Likewise.
27020
27021 * tree-vect-data-refs.c: Consequential changes for making
27022 peeling a hash_table.
27023
27024 * tree-vect-loop.c (new_loop_vec_info): Dependent hash_table update.
27025 (destroy_loop_vec_info): Dependent hash_table update.
27026
27027 * tree-vectorizer.h (peeling_htab):
27028 Change type to hash_table. Update dependent calls and types.
27029
a1064490 270302013-04-23 Shiva Chen <shiva0217@gmail.com>
27031
1efbef15 27032 * lra-assigns.c (find_hard_regno_for): Use lra_reg_val_equal_p
27033 to check the register content is equal or not.
27034 * lra-constraints.c (match_reload): Use lra_assign_reg_val
27035 to assign register content record.
27036 * lra-eliminations.c (update_reg_eliminate): Use
a1064490 27037 lra_update_reg_val_offset to update register content offset.
1efbef15 27038 * lra-int.h (struct lra_reg): Add offset member.
27039 (lra_reg_val_equal_p): New static inline function.
27040 (lra_update_reg_val_offset): New static inline function.
27041 (lra_assign_reg_val): New static inline function.
27042 * lra.c (lra_create_new_reg): Use lra_assign_reg_val
27043 to assign register content record.
27044 (initialize_lra_reg_info_element): Initial offset to zero.
a1064490 27045
5e1781b6 270462013-04-23 Catherine Moore <clm@codesourcery.com>
27047
27048 * config/mips/mips.md (*movhi_internal, *movqi_internal): New
27049 operands. Record compression.
27050
6f2b83c8 270512013-04-23 Xinliang David Li <davidxl@google.com>
27052
27053 * cfghhooks.c (dump_bb_for_graph): Support 'slim' graph dump.
27054
5f0af0d8 270552013-04-23 Richard Biener <rguenther@suse.de>
27056
27057 PR middle-end/57036
27058 * tree-inline.c (copy_edges_for_bb): Add can_make_abnormal_goto
27059 parameter, only add abnormal goto edges from the copied body
27060 if the call could perform abnormal gotos.
27061 (copy_cfg_body): Adjust.
27062
562e5728 270632013-04-23 Sofiane Naci <sofiane.naci@arm.com>
27064
27065 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add simd attribute.
27066
d3c57e54 270672013-04-23 Andreas Schwab <schwab@linux-m68k.org>
27068
27069 * coretypes.h (gimple_stmt_iterator): Add struct to make
27070 compatible with C.
27071
3a4a5c9c 270722013-04-23 Richard Biener <rguenther@suse.de>
27073
27074 PR tree-optimization/57026
27075 * tree-vrp.c (simplify_conversion_using_ranges): Do not propagate
27076 from SSA names occuring in abnormal PHI nodes.
27077
8af0a4fc 270782013-04-22 Andi Kleen <ak@linux.intel.com>
27079
27080 * lto/lto.c (print_lto_report_1): Fix LTO report names.
27081
f4c8156d 270822013-04-22 Andi Kleen <ak@linux.intel.com>
27083
27084 * lto/lto.c (print_lto_report_1): Declare early.
27085 (read_cgraph_and_symbols): Call print_lto_report_1 early.
27086
b63a7a3e 270872013-04-22 Andi Kleen <ak@linux.intel.com>
27088
27089 * common.opt (-flto-report-wpa): Add.
27090 * doc/invoke.texi (-flto-report-wpa): Add.
27091 * lto/lto.c (do_whole_program_analysis): Check for lto-report-wpa.
27092 (lto_main): dito.
27093
5d24e2d1 270942013-04-22 Xinliang David Li <davidxl@google.com>
27095
27096 * graph.c (draw_cfg_node_succ_edges): Add branch probility as label.
27097 * cfghhooks.c (dump_bb_for_graph): Dump profile count and frquency.
27098 * Makefile.in: New dependency
27099
1efbef15 27100 David Daney <ddaney.cavm@gmail.com>
bcba791d 27101
1efbef15 27102 * configure.ac (gcc_cv_as_micromips_support): Use the
27103 --fatal-warnings option.
27104 * configure: Regenerate.
bcba791d 27105
888b31c9 271062013-04-22 Marek Polacek <polacek@redhat.com>
27107
27108 PR sanitizer/56990
27109 * tsan.c (instrument_expr): Don't instrument expression
27110 in case its size is zero.
27111
31ba2027 271122013-04-22 Uros Bizjak <ubizjak@gmail.com>
27113
27114 PR target/57032
27115 Revert:
27116 2013-03-17 Uros Bizjak <ubizjak@gmail.com>
27117
27118 * config/alpha/alpha.c (TARGET_LRA_P): New define.
27119
29cad3b6 271202013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
27121
27122 * coretypes.h (gimple_stmt_iterator_d): Forward declare.
27123 (gimple_stmt_iterator): New typedef.
27124 * gimple.h (gimple_stmt_iterator): Rename to...
27125 (gimple_stmt_iterator_d): ... This.
27126 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Detail restriction that
27127 trees be valid for GIMPLE and GENERIC.
27128 (TARGET_GIMPLE_FOLD_BUILTIN): New.
27129 * gimple-fold.c (gimple_fold_call): Call target hook
27130 gimple_fold_builtin.
27131 * hooks.c (hook_bool_gsiptr_false): New.
27132 * hooks.h (hook_bool_gsiptr_false): New.
27133 * target.def (fold_stmt): New.
27134 * doc/tm.texi: Regenerate.
27135
fbb45ff1 271362013-04-22 Vladimir Makarov <vmakarov@redhat.com>
27137
27138 PR target/57018
27139 * lra-eliminations.c (mark_not_eliminable): Prevent elimination of
27140 a set sp if no stack realignment.
27141
ea4d38ee 271422013-04-22 Nick Clifton <nickc@redhat.com>
27143
27144 * config.gcc (tilegx-linux): Extend extra_objs rather than
27145 overwriting it.
27146 (tilepro-linux): Likewise.
27147
5a8d54a9 271482013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
27149
27150 * config/aarch64/aarch64-builtins.c
27151 (CF): Remove.
27152 (CF0, CF1, CF2, CF3, CF4, CF10): New.
27153 (VAR<1-12>): Add MAP parameter.
27154 (BUILTIN_*): Likewise.
27155 * config/aarch64/aarch64-simd-builtins.def: Set MAP parameter.
27156 * config/aarch64/aarch64-simd.md (aarch64_sshl_n<mode>): Remove.
27157 (aarch64_ushl_n<mode>): Likewise.
27158 (aarch64_sshr_n<mode>): Likewise.
27159 (aarch64_ushr_n<mode>): Likewise.
27160 (aarch64_<maxmin><mode>): Likewise.
27161 (aarch64_sqrt<mode>): Likewise.
27162 * config/aarch64/arm_neon.h (vshl<q>_n_*): Use new builtin names.
27163 (vshr<q>_n_*): Likewise.
27164
7b990298 271652013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
27166
27167 * config/aarch64/aarch64-builtins.c
27168 (aarch64_simd_builtin_type_mode): Handle SF types.
27169 (sf_UP): Define.
27170 (BUILTIN_GPF): Define.
27171 (aarch64_init_simd_builtins): Handle SF types.
27172 * config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
27173 (frecps): Likewise.
27174 (frecpx): Likewise.
27175 * config/aarch64/aarch64-simd.md
27176 (simd_types): Update simd_frcp<esx> to simd_frecp<esx>.
27177 (aarch64_frecpe<mode>): New.
27178 (aarch64_frecps<mode>): Likewise.
27179 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRECP<ESX>.
27180 (v8type): Add frecp<esx>.
27181 (aarch64_frecp<FRECP:frecp_suffix><mode>): New.
27182 (aarch64_frecps<mode>): Likewise.
27183 * config/aarch64/iterators.md (FRECP): New.
27184 (frecp_suffix): Likewise.
27185 * config/aarch64/arm_neon.h
27186 (vrecp<esx><qsd>_<fd><32, 64>): Convert to using builtins.
27187
c7a79d83 271882013-04-22 Christian Bruel <christian.bruel@st.com>
ec3c739c 27189
27190 PR target/56995
27191 * config/sh/sh.h (enum reg_class): Remove DF_HI_REGS.
27192 (REG_CLASS_NAMES): Idem.
27193 (REG_CLASS_CONTENTS): Idem.
27194 (REGCLASS_HAS_FP_REG): Idem.
27195 * config/sh/sh.c (sh_cannot_change_mode_class): Idem.
27196 (sh_conditional_register_usage): Idem.
27197
d23e1965 271982013-04-21 Jeff Law <law@redhat.com>
27199
27200 * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): New function.
27201 (ssa_forward_propagate_and_combine): Use it.
27202
b28ae2d4 272032013-04-19 Vladimir Makarov <vmakarov@redhat.com>
27204
27205 * lra.c: Update the flow chart diagram.
27206
a89f8bac 272072013-04-19 Vladimir Makarov <vmakarov@redhat.com>
27208
27209 PR rtl-optimization/56847
27210 * lra-constraints.c (process_alt_operands): Discourage alternative
27211 with non-matche doffsettable memory constraint fro memory with
27212 known offset.
27213
a5ef9e4d 272142013-04-19 Richard Biener <rguenther@suse.de>
27215
27216 PR tree-optimization/56982
27217 * builtins.def (BUILT_IN_LONGJMP): longjmp is not a leaf
27218 function.
27219 * gimplify.c (gimplify_call_expr): Notice special calls.
27220 (gimplify_modify_expr): Likewise.
27221 * tree-cfg.c (make_abnormal_goto_edges): Handle setjmp-like
27222 abnormal control flow receivers.
27223 (call_can_make_abnormal_goto): Handle cfun->calls_setjmp
27224 in the same way as cfun->has_nonlocal_labels.
27225 (gimple_purge_dead_abnormal_call_edges): Likewise.
27226 (stmt_starts_bb_p): Make setjmp-like abnormal control flow
27227 receivers start a basic-block.
27228
678e3d6e 272292013-04-19 Richard Biener <rguenther@suse.de>
27230
27231 * tree-vectorizer.h (struct _slp_instance): Move load_permutation
27232 member ...
27233 (struct _slp_tree): ... here. Make it a vector of unsigned ints.
27234 (SLP_INSTANCE_LOAD_PERMUTATION): Remove.
27235 (SLP_TREE_LOAD_PERMUTATION): Add.
27236 (vect_transform_slp_perm_load): Adjust prototype.
27237 * tree-vect-slp.c (vect_free_slp_tree): Adjust.
27238 (vect_free_slp_instance): Likewise.
27239 (vect_create_new_slp_node): Likewise.
27240 (vect_supported_slp_permutation_p): Remove.
27241 (vect_slp_rearrange_stmts): Adjust.
27242 (vect_supported_load_permutation_p): Likewise. Inline
27243 vect_supported_slp_permutation_p here.
27244 (vect_analyze_slp_instance): Compute load permutations per
27245 slp node instead of per instance.
27246 (vect_get_slp_defs): Adjust.
27247 (vect_transform_slp_perm_load): Likewise.
27248 (vect_schedule_slp_instance): Remove redundant code.
27249 (vect_schedule_slp): Remove hack for PR56270, add it ...
27250 * tree-vect-stmts.c (vectorizable_load): ... here, do not
27251 CSE loads for SLP. Adjust.
27252
c210e3da 272532013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
27254
27255 * config/arm/arm.c (load_multiple_sequence, ldm_stm_operation_p): Fix
27256 spelling in two comments.
27257
a5c5144f 272582013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
27259
27260 PR target/56797
27261 * config/arm/arm.c (load_multiple_sequence): Require SP
27262 as base register for loads if SP is in the register list.
27263
bee52153 272642013-04-19 Martin Jambor <mjambor@suse.cz>
27265
27266 PR tree-optimization/56718
27267 * ipa-cp.c (ipa_value_from_known_type_jfunc): Moved...
27268 * ipa-prop.c (ipa_binfo_from_known_type_jfunc): ...here, renamed
27269 and made public. Adjusted all callers.
27270 (ipa_intraprocedural_devirtualization): New function.
27271 * ipa-prop.h (ipa_binfo_from_known_type_jfunc): Declare.
27272 (ipa_intraprocedural_devirtualization): Likewise.
27273 * Makefile.in (tree-ssa-pre.o): Add ipa-prop.h to dependencies.
27274
204c295f 272752013-04-19 Richard Biener <rguenther@suse.de>
27276
27277 PR tree-optimization/57000
27278 * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.
27279
3153fc2e 272802013-04-19 Terry Guo <terry.guo@arm.com>
27281
27282 * config/arm/cortex-m4-fpu.md (cortex_m4_v): Delete cpu unit.
27283 Replace with ...
27284 (cortex_m4_v_a, cortex_m4_v_b): ... new cpu units.
27285 (cortex_m4_v, cortex_m4_exa_va, cortex_m4_exb_vb): New reservations.
27286 (cortex_m4_fmacs): Use new reservations.
27287 (cortex_m4_f_load, cortex_m4_f_store): Likewise.
27288
638e746e 272892013-04-18 Vladimir Makarov <vmakarov@redhat.com>
27290
c0d5925a 27291 PR rtl-optimization/56999
638e746e 27292 * lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and
27293 related code.
27294 (lra_coalesce): Remove split_origin_bitmap and related code.
27295 * lra.c (lra): Coalesce after undoing inheritance. Recreate live
27296 ranges if necessary.
27297
17e854e6 272982013-04-18 Uros Bizjak <ubizjak@gmail.com>
27299
27300 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers):
27301 New array.
27302 (ix86_expand_call): Remove clobbered_registers array and use
27303 x86_64_ms_sysv_extra_clobbered_registers instead.
27304 * config/i386/i386.h (x86_64_ms_sysv_extra_clobbered_registers):
27305 Declare here.
27306 * config/i386/predicates.md (call_rex64_ms_sysv_operation): New
27307 predicate.
27308 * config/i386/i386.md (*call_rex64_ms_sysv): Use
27309 call_rex64_ms_sysv_operation predicate. Remove explicit clobbers.
27310 (*call_value_rex64_ms_sysv): Ditto.
27311
faeb0946 273122013-04-18 Cary Coutant <ccoutant@google.com>
27313
27314 * dwarf2out.c (output_pubnames): Check die_perennial_p of
27315 parent instead of die_mark.
27316
32bd7708 273172013-04-18 Diego Novillo <dnovillo@google.com>
27318
27319 * gimple.c (create_gimple_tmp): New.
27320 (get_expr_type): New.
27321 (build_assign): New.
27322 (build_type_cast): New.
27323 * gimple.h (enum ssa_mode): Define.
27324 (gimple_seq_set_location): New.
27325 * asan.c (build_check_stmt): Change some gimple_build_* calls
17e854e6 27326 to use build_assign and build_type_cast.
32bd7708 27327
8bbe6b75 273282013-04-18 Richard Biener <rguenther@suse.de>
27329
27330 * tree-vect-data-refs.c (vect_analyze_group_access): Properly
27331 handle negative step. Remove redundant checks.
27332 (vect_create_data_ref_ptr): Avoid ICEs with non-constant steps.
27333 * tree-vect-stmts.c (vectorizable_load): Instead of asserting
27334 for negative step and grouped loads fail to vectorize.
27335
1e9af25c 273362013-04-18 Steven Bosscher <steven@gcc.gnu.org>
27337
27338 * emit-rtl.c (reset_insn_used_flags): New function.
27339 (reset_all_used_flags): Use it.
27340 (verify_insn_sharing): New function.
27341 (verify_rtl_sharing): Fix verification for SEQUENCEs.
27342
7c4be923 273432013-04-18 Jakub Jelinek <jakub@redhat.com>
27344
27345 PR tree-optimization/56984
27346 * tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N
27347 and (x >> M) >= N don't register any assertion if N << M is the
27348 minimum value.
27349
c7ee1482 273502013-04-18 Steven Bosscher <steven@gcc.gnu.org>
27351
27352 * lower-subreg.c (resolve_simple_move): If called self-recursive,
27353 do not delete_insn insns that have not yet been emitted, only
27354 unlink them with remove_insn.
27355 * df-scan.c (df_insn_delete): Revert r197492.
27356
34f5b9ac 273572013-04-17 Steven Bosscher <steven@gcc.gnu.org>
27358
27359 * emit-rtl.c (link_insn_into_chain): Handle chaining of SEQUENCEs.
27360 * reorg.c (emit_delay_sequence): Simplify with emit-rtl API.
27361
273622013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
190efb17 27363
27364 * config/arm/arm.md (movsicc_insn): Convert define_insn into
27365 define_insn_and_split.
27366 (and_scc,ior_scc,negscc): Likewise.
27367 (cmpsi2_addneg, subsi3_compare): Convert to named patterns.
27368
34f5b9ac 273692013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
35c10aa8 27370
27371 * config/arm/arm.c (use_return_insn): Return 0 for targets that
27372 can benefit from using a sequence of LDRD instructions in epilogue
27373 instead of a single LDM instruction.
27374
d21e37af 273752013-04-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
27376
27377 PR 45688
27378 * doc/extend.texi: Fix typo.
27379
16513aa4 273802013-04-17 Richard Biener <rguenther@suse.de>
27381
27382 * tree-vect-slp.c (vect_build_slp_tree_1): Split out from ...
27383 (vect_build_slp_tree): ... here.
27384 (vect_build_slp_tree_1): Compute which stmts of the SLP group
27385 match. Remove special-casing of mismatched complex loads.
27386 (vect_build_slp_tree): Based on the result from vect_build_slp_tree_1
27387 re-try the match with swapped commutative operands.
27388 (vect_supported_load_permutation_p): Remove special-casing of
27389 mismatched complex loads.
27390 (vect_analyze_slp_instance): Adjust.
27391
427286b3 273922013-04-17 Richard Biener <rguenther@suse.de>
27393
27394 PR rtl-optimization/56921
27395 * cfgloop.h (struct loop): Add simple_loop_desc member.
27396 (struct niter_desc): Mark with GTY(()).
27397 (simple_loop_desc): Do not use aux field but simple_loop_desc.
27398 * loop-iv.c (get_simple_loop_desc): Likewise.
27399 (free_simple_loop_desc): Likewise.
27400
27401 Revert
27402 2013-04-16 Richard Biener <rguenther@suse.de>
27403
27404 PR rtl-optimization/56921
27405 * loop-init.c (pass_rtl_move_loop_invariants): Add
27406 TODO_do_not_ggc_collect to todo_flags_finish.
27407 (pass_rtl_unswitch): Same.
27408 (pass_rtl_unroll_and_peel_loops): Same.
27409 (pass_rtl_doloop): Same.
27410
740a2cb6 274112013-04-17 Eric Botcazou <ebotcazou@adacore.com>
27412
27413 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): New.
27414 (decl_refs_may_alias_p): Add REF1 and REF2 parameters.
27415 Use nonoverlapping_component_refs_of_decl_p to disambiguate component
27416 references.
27417 (refs_may_alias_p_1): Adjust call to decl_refs_may_alias_p.
27418 * tree-streamer.c (record_common_node): Adjust reference in comment.
27419
c20f53ce 274202013-04-17 Terry Guo <terry.guo@arm.com>
27421
27422 * config/arm/cortex-m4.md: Add a new bypass.
27423
31ba2027 274242013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
7425af27 27425
27426 * config/aarch64/aarch64.md (*adds_<optab><mode>_multp2):
27427 New pattern.
27428 (*subs_<optab><mode>_multp2): New pattern.
27429 (*adds_<optab><ALLX:mode>_<GPI:mode>): New pattern.
27430 (*subs_<optab><ALLX:mode>_<GPI:mode>): New pattern.
27431
31ba2027 274322013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
16b547de 27433
27434 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): New pattern.
27435 (*subs_mul_imm_<mode>): New pattern.
27436
bd59dd08 274372013-04-16 David Edelsohn <dje.gcc@gmail.com>
27438
27439 PR target/56948
27440 * config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative.
27441 (vsx_movti_64bit): Change j->wa to O->wa. Add n->r alternative.
27442 (vsx_movti_32bit): Change j->wa to O->wa.
27443
507c20f1 274442013-04-16 Richard Biener <rguenther@suse.de>
27445
27446 PR rtl-optimization/56921
27447 * loop-init.c (pass_rtl_move_loop_invariants): Add
27448 TODO_do_not_ggc_collect to todo_flags_finish.
27449 (pass_rtl_unswitch): Same.
27450 (pass_rtl_unroll_and_peel_loops): Same.
27451 (pass_rtl_doloop): Same.
27452
1e9af25c 274532013-04-16 Greta Yorsh <Greta.Yorsh@arm.com>
9e0accd9 27454
27455 * config/arm/arm.c (emit_multi_reg_push): New declaration
27456 for an existing function.
27457 (arm_emit_strd_push): New function.
27458 (arm_expand_prologue): Used here.
27459 (arm_emit_ldrd_pop): New function.
27460 (arm_expand_epilogue): Used here.
27461 (arm_get_frame_offsets): Update condition.
27462 (arm_emit_multi_reg_pop): Add a special case for load of a single
27463 register with writeback.
27464
69ac6d73 274652013-04-16 Uros Bizjak <ubizjak@gmail.com>
27466
27467 * doc/invoke.texi (i386 Option): Reword -mstack-protector-guard
27468 description.
27469
bc9af2dd 274702013-04-16 Richard Biener <rguenther@suse.de>
27471
27472 PR tree-optimization/56756
27473 * tree-ssa-loop-im.c (struct first_mem_ref_loc_1): New functor.
27474 (first_mem_ref_loc): New.
27475 (execute_sm): Place the load temporarily before a previous
27476 access instead of in the latch edge to ensure its SSA dependencies
27477 are defined at points dominating the load.
27478
35f3420b 274792013-04-16 Steven Bosscher <steven@gcc.gnu.org>
27480
eda57d74 27481 * cfgrtl.c (cfg_layout_merge_blocks): Revert r184005, implement
27482 correct fix by moving header and footer insn to the footer of
27483 the merged basic block. Clear BB_END of the merged-away block.
27484
35f3420b 27485 PR middle-end/43631
27486 * emit-rtl.c (make_note_raw): New function.
27487 (link_insn_into_chain): New static inline function.
27488 (add_insn): Use it.
27489 (add_insn_before, add_insn_after): Factor insn chain linking code...
27490 (add_insn_before_nobb, add_insn_after_nobb): ...here, new functions
27491 using link_insn_into_chain.
27492 (note_outside_basic_block_p): New helper function for emit_note_after
27493 and emit_note_before.
27494 (emit_note_after): Use nobb variant of add_insn_after if the note
27495 should not be contained in a basic block.
27496 (emit_note_before): Use nobb variant of add_insn_before if the note
27497 should not be contained in a basic block.
27498 (emit_note_copy): Use make_note_raw.
27499 (emit_note): Likewise.
27500 * bb-reorder.c (insert_section_boundary_note): Remove hack to set
27501 BLOCK_FOR_INSN to NULL manually for NOTE_INSN_SWITCH_TEXT_SECTIONS.
27502 * jump.c (cleanup_barriers): Use reorder_insns_nobb to avoid making
27503 the moved barrier the tail of the basic block it follows.
27504 * var-tracking.c (pass_variable_tracking): Add TODO_verify_flow.
27505
9de38bc3 275062013-04-15 Jakub Jelinek <jakub@redhat.com>
27507
27508 PR tree-optimization/56962
27509 * gimple-ssa-strength-reduction.c (record_increment): Only set
27510 initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and
27511 either rhs1 or rhs2 is equal to c->base_expr.
27512
4d525783 275132013-04-15 Richard Biener <rguenther@suse.de>
27514
27515 PR tree-optimization/56933
27516 * tree-vectorizer.h (struct _stmt_vec_info): Remove read_write_dep
27517 member.
27518 (GROUP_READ_WRITE_DEPENDENCE): Remove.
27519 (STMT_VINFO_GROUP_READ_WRITE_DEPENDENCE): Likewise.
27520 * tree-vect-data-refs.c (vect_analyze_group_access): Move
27521 dependence check ...
27522 vect_analyze_data_ref_dependence (vect_analyze_data_ref_dependence):
27523 ... here.
27524 * tree-vect-stmts.c (new_stmt_vec_info): Do not initialize
27525 GROUP_READ_WRITE_DEPENDENCE.
27526
7cdd84a2 275272013-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
27528
27529 * emit-rtl.c (reset_all_used_flags): New function.
27530 (verify_rtl_sharing): Call reset_all_used_flags before and after
27531 performing the checks.
27532
f6bbdcf6 275332013-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27534
27535 * config/arm/arm.c (const_ok_for_dimode_op): Handle AND case.
27536 * config/arm/arm.md (*anddi3_insn): Change to insn_and_split.
27537 * config/arm/constraints.md (De): New constraint.
27538 * config/arm/neon.md (anddi3_neon): Delete.
27539 (neon_vand<mode>): Expand to standard anddi3 pattern.
27540 * config/arm/predicates.md (imm_for_neon_inv_logic_operand):
27541 Move earlier in the file.
27542 (neon_inv_logic_op2): Likewise.
27543 (arm_anddi_operand_neon): New predicate.
27544
8aaed91d 275452013-04-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
27546
27547 * configure.ac (gcc_cv_ld_as_needed): Set
27548 gcc_cv_ld_as_needed_option, gcc_cv_no_as_needed_option.
27549 Use -z ignore, -z record on *-*-solaris2*.
27550 (HAVE_LD_AS_NEEDED): Update comment.
27551 (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Define.
27552 * configure: Regenerate.
27553 * config.in: Regenerate.
27554 * gcc.c (init_gcc_specs) [USE_LD_AS_NEEDED]: Use
27555 LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION.
27556 * config/sol2.h [HAVE_LD_AS_NEEDED] (USE_LD_AS_NEEDED): Define.
27557 * doc/tm.texi.in (USE_LD_AS_NEEDED): Allow for --as-needed
27558 equivalents. Fix markup.
27559 * doc/tm.texi: Regenerate.
27560
98c0d657 275612013-04-15 Andrew Hsieh <andrewhsieh.google.com>
27562
27563 * config/i386/i386.opt: New option mstack-protector-guard=.
27564 * config/i386/i386-opts.h: Add enum stack_protector_guard.
27565 * config/i386/i386.h: Define TARGET_SSP_GLOBAL_GUARD and
27566 TARGET_SSP_TLS_GUARD.
27567 * config/i386/i386.c (ix86_option_override_internal): Set
27568 ix86_stack_protector_guard.
27569 * config/i386/i386.md (stack_protect_set): Enable for
27570 TARGET_SSP_TLS_GUARD only.
27571 (stack_protect_set_<mode>): Ditto.
27572 (stack_protect_test): Ditto.
27573 (stack_protect_test_<mode>): Ditto.
27574 * doc/invoke.texi (i386 Option): Document.
27575
3eb1f083 275762013-04-15 Eric Botcazou <ebotcazou@adacore.com>
27577
27578 PR target/56890
27579 * config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value.
27580 (S_MODES): Set H_MODE bit.
27581 (SF_MODES): Set only S_MODE and SF_MODE bits.
27582 (DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits.
27583 (sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes.
27584 <MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes.
27585 <MODE_FLOAT>: Likewise.
27586
756b7d6a 275872013-04-15 Joey Ye <joey.ye@arm.com>
27588
27589 * config/arm/arm.c (thumb_far_jump_used_p): Fix typo in comments.
27590
8d04d59e 275912013-04-15 Joey Ye <joey.ye@arm.com>
27592
27593 * config/arm/arm.c (thumb1_final_prescan_insn): Assert lr save
27594 for real far jump.
27595 (thumb_far_jump_used_p): Count instruction size and set
27596 far_jump_used.
27597
fdb35bef 275982013-04-14 Eric Botcazou <ebotcazou@adacore.com>
27599
27600 * reorg.c (fill_simple_delay_slots): Reindent block of code.
27601 * resource.c (mark_target_live_regs): Reformat conditional block.
27602
8ea0810a 276032013-04-13 Steven Bosscher <steven@gcc.gnu.org>
27604
27605 * sched-deps.c (deps_analyze_insn): Do not check for EH_REGION insn
27606 notes, they are emitted only just before final.
27607 * sched-int.h: Include insn-attr.h before checking INSN_SCHEDULING.
27608
93ff53d3 276092013-04-13 Steven Bosscher <steven@gcc.gnu.org>
27610
27611 * emit-rtl.c (remove_insn): Do not call df_insn_delete here.
27612 * cfgrtl.c (delete_insn): Call it here instead.
27613 * lra-spills.c (lra_final_code_change): Use delete_insn.
27614 * haifa-sched.c (sched_remove_insn): Likewise.
27615 * sel-sched-ir.c (return_nop_to_pool): Clear INSN_DELETED_P for nops
27616 returning to the nop pool.
27617 (sel_remove_insn): Simplify the only_disconnect case via remove_insn,
27618 use delete_insn for definitive removal. Clear BLOCK_FOR_INSN.
27619
720b223d 276202013-04-12 Steven Bosscher <steven@gcc.gnu.org>
27621
27622 * doc/tm.texi.in (LOOP_ALIGN): Remove loop note references.
27623 * doc/tm.texi: Regenerated.
27624
8f028904 276252013-04-12 Uros Bizjak <ubizjak@gmail.com>
27626
27627 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use ANY_QI_REGNO_P in
27628 QImode checks.
27629
09f44684 276302013-04-12 Steven Bosscher <steven@gcc.gnu.org>
27631
27632 * df-core.c (df_find_def): Compare register numbers.
27633 (df_find_use): Likewise.
27634
45237259 276352013-04-12 Vladimir Makarov <vmakarov@redhat.com>
27636
27637 PR target/56903
27638 * config/i386/i386.c (ix86_hard_regno_mode_ok): Add
27639 lra_in_progress for return.
27640
a3b84066 276412013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
27642
27643 * config/arm/arm.md (mov_scc,mov_negscc,mov_notscc): Convert
27644 define_insn into define_insn_and_split and emit movsicc patterns.
27645
b3e65331 276462013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
27647
27648 * config/arm/arm.c (gen_operands_ldrd_strd): Initialize "base".
27649
533c15bc 276502013-04-12 Richard Biener <rguenther@suse.de>
27651
27652 * tree-pass.h (TODO_do_not_ggc_collect): New.
27653 * passes.c (execute_one_ipa_transform_pass): Honor
27654 TODO_do_not_ggc_collect.
27655 (execute_one_pass): Likewise.
27656
27657 Revert
27658 2013-04-10 Richard Biener <rguenther@suse.de>
27659
27660 * passes.c (init_optimization_passes): Remove reload pass.
27661 * ira.c (do_reload): Merge into ...
27662 (ira): ... this.
27663 (rest_of_handle_reload): Remove.
27664 (pass_reload): Likewise.
27665 * config/i386/i386.c (ix86_option_override): Refer to ira instead
27666 of reload for vzeroupper pass placement.
27667
577e2925 276682013-04-12 Jakub Jelinek <jakub@redhat.com>
27669
27670 PR tree-optimization/56918
27671 PR tree-optimization/56920
27672 * fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...)
27673 instead of op1 - op2. Pass 2 * TYPE_PRECISION (type) as second
27674 argument to rshift method. For 2 * HOST_BITS_PER_WIDE_INT precision
27675 use wide_mul_with_sign method.
27676
5b787773 276772013-04-12 Richard Biener <rguenther@suse.de>
27678
27679 * gimple.c (is_gimple_constant): Vector CONSTRUCTORs should
27680 not be considered a gimple constant.
27681
ef4a904b 276822013-04-12 Marc Glisse <marc.glisse@inria.fr>
27683
27684 * fold-const.c (const_binop): Handle vector shifts by a scalar.
27685 (fold_binary_loc): Call const_binop also for mixed vector-scalar
27686 operations.
27687
41609f8b 276882013-04-12 Manuel López-Ibáñez <manu@gcc.gnu.org>
27689 Jakub Jelinek <jakub@redhat.com>
27690
27691 * opts.c: Include diagnostic-color.h.
27692 (common_handle_option): Handle OPT_fdiagnostics_color_.
27693 * Makefile.in (OBJS-libcommon): Add diagnostic-color.o.
27694 (diagnostic.o, opts.o, pretty-print.o): Depend on diagnostic-color.h.
27695 (diagnostic-color.o): New.
27696 * common.opt (fdiagnostics-color, fdiagnostics-color=): New options.
27697 (diagnostic_color_rule): New enum.
27698 * dwarf2out.c (gen_producer_string): Don't print -fdiagnostics-color*.
27699 * langhooks.c (lhd_print_error_function): Add %r "locus" and %R around
27700 the location string.
27701 * diagnostic.def: Add 3rd argument to DEFINE_DIAGNOSTIC_KIND macros,
27702 either NULL, or color kind.
27703 * diagnostic-color.c: New file.
27704 * diagnostic-color.h: New file.
27705 * diagnostic-core.h (DEFINE_DIAGNOSTIC_KIND): Adjust macro for 3
27706 arguments.
27707 * doc/invoke.texi (-fdiagnostics-color): Document.
27708 * pretty-print.h (pp_show_color): Define.
27709 (struct pretty_print_info): Add show_color field.
27710 * diagnostic.c: Include diagnostic-color.h.
27711 (diagnostic_build_prefix): Adjust for 3 argument DEFINE_DIAGNOSTIC_KIND
27712 macros. Colorize error:, warning: etc. strings and also the location
27713 string.
27714 (diagnostic_show_locus): Colorize the caret line.
27715 * pretty-print.c: Include diagnostic-color.h.
27716 (pp_base_format): Handle %r and %R format specifiers. Colorize strings
27717 inside of %< %> quotes or quoted through q format modifier.
27718
79f85ed5 277192013-04-12 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
27720
8f028904 27721 * ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as well.
79f85ed5 27722
8f028904 277232013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
62bad789 27724
27725 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Allow NEG
27726 code in CC_NZ mode.
27727 * config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New
27728 pattern.
27729
abf3fde4 277302013-04-11 Marek Polacek <polacek@redhat.com>
27731
27732 PR tree-optimization/48184
8f028904 27733 * params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum value to 1.
abf3fde4 27734
3303f1bb 277352013-04-11 Eric Botcazou <ebotcazou@adacore.com>
27736
27737 * stor-layout.c (skip_simple_constant_arithmetic): Move to...
27738 * tree.c (skip_simple_constant_arithmetic): ...here and make public.
27739 (skip_simple_arithmetic): Tidy up.
27740 * tree.h (skip_simple_constant_arithmetic): Declare.
27741
8f028904 277422013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
d449a7bb 27743
27744 * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Define.
27745
6c2c88c7 277462013-04-11 Richard Biener <rguenther@suse.de>
27747
27748 * tree-vect-loop.c (get_initial_def_for_induction): Properly
27749 generate vector constants.
27750
6046367e 277512013-04-11 Richard Biener <rguenther@suse.de>
27752
27753 PR tree-optimization/56878
27754 * tree-flow.h (outermost_invariant_loop_for_expr): Declare.
27755 * tree-ssa-loop-ivopts.c (outermost_invariant_loop_for_expr):
27756 New function.
27757 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
27758 Prefer to align the DR with the most invariant base address.
27759
6c1f6b49 277602013-04-11 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
27761
27762 * opts.c (common_handle_option): Fix formatting and add FALLTHRU
27763 comment.
27764
3b11c427 277652013-04-11 James Greenhalgh <james.greenhalgh@arm.com>
27766
27767 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix
27768 floating-point vector comparisons against 0.
27769
4debb326 277702013-04-11 Jakub Jelinek <jakub@redhat.com>
27771
27772 PR tree-optimization/56899
27773 * fold-const.c (extract_muldiv_1): Apply distributive law
27774 only if TYPE_OVERFLOW_WRAPS (ctype).
27775
a0ca7f3d 277762013-04-11 Bin Cheng <bin.cheng@arm.com>
27777
27778 PR target/56124
27779 * ira-costs.c (scan_one_insn): Check whether the source rtx of
27780 loading has side effect.
27781
a1adea34 277822013-04-10 Steven Bosscher <steven@gcc.gnu.org>
27783
27784 * config/sparc/sparc.c: Include tree-pass.h.
27785 (TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
27786 (sparc_reorg): Rename to sparc_do_work_around_errata. Move to
27787 head of file. Change return type. Split off gate function.
27788 (sparc_gate_work_around_errata): New function.
27789 (pass_work_around_errata): New pass definition.
27790 (insert_pass_work_around_errata) New pass insert definition to
27791 insert pass_work_around_errata just after delayed-branch scheduling.
27792 (sparc_option_override): Insert the pass.
27793 * config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.
27794
17f446a0 277952013-04-10 David S. Miller <davem@davemloft.net>
27796
c18356f5 27797 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc
27798 or -mcpu=hypersparc.
27799
17f446a0 27800 * target.def (cstore_mode): New hook.
27801 * target.h: Include insn-codes.h
27802 * targhooks.c: Likewise.
27803 (default_cstore_mode): New function.
27804 * targhooks.h: Declare it.
27805 * doc/tm.texi.in: New hook slot for TARGET_CSTORE_MODE.
27806 * doc/tm.texi: Rebuild.
27807 * expmed.c (emit_cstore): Obtain cstore boolean result mode using
27808 target hook, rather than inspecting the insn_data.
27809 * config/sparc/sparc.c (sparc_cstore_mode): New function.
27810 (TARGET_CSTORE_MODE): Redefine.
27811 (emit_scc_insn): When TARGET_ARCH64, emit new 64-bit boolean
27812 result patterns.
27813 * config/sparc/predicates.md (cstore_result_operand): New special
27814 predicate.
27815 * config/sparc/sparc.md (cstoresi4, cstoredi4, cstore<F:mode>4):
27816 Use it for operand 0.
27817 (*seqsi_special): Rewrite using 'P' mode iterator on operand 0.
27818 (*snesi_special): Likewise.
27819 (*snesi_zero): Likewise.
27820 (*seqsi_zero): Likewise.
27821 (*sltu_insn): Likewise.
27822 (*sgeu_insn): Likewise.
27823 (*seqdi_special): Make operand 0 and comparison operation be of
27824 DImode.
27825 (*snedi_special): Likewise.
27826 (*snedi_special_vis3): Likewise.
27827 (*neg_snesi_zero): Rename to *neg_snesisi_zero.
27828 (*neg_snesi_sign_extend): Rename to *neg_snesidi_zero.
27829 (*snesi_zero_extend): Delete, covered by 'P' mode iterator.
27830 (*neg_seqsi_zero): Rename to *neg_seqsisi_zero.
27831 (*neg_seqsi_sign_extend): Rename to *neg_seqsidi_zero.
27832 (*seqsi_zero_extend): Delete, covered by 'P' mode iterator.
27833 (*sltu_extend_sp64): Likewise.
27834 (*neg_sltu_insn): Rename to *neg_sltusi_insn.
27835 (*neg_sltu_extend_sp64): Rename to *neg_sltudi_insn.
27836 (*sgeu_extend_sp64): Delete, covered by 'P' mode iterator.
27837 (*neg_sgeu_insn): Rename to *neg_sgeusi_insn.
27838 (*neg_sgeu_extend_sp64): Rename to *neg_sgeudi_insn.
27839
69b8a0da 278402013-04-10 Yufeng Zhang <yufeng.zhang@arm.com>
27841
27842 * config/aarch64/aarch64.c (aarch64_print_extension): New function.
27843 (aarch64_start_file): Use the new function.
27844
8786b72c 278452013-04-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
8f028904 27846 Jason Merrill <jason@redhat.com>
8786b72c 27847
27848 * common.opt: Add -gdwarf.
27849 * opts.c (common_handle_option): Handle it.
27850 * gcc.c (ASM_DEBUG_SPEC): Don't expect "-2" for DWARF.
27851
ef3baff5 278522013-04-10 Richard Biener <rguenther@suse.de>
27853
27854 * passes.c (execute_todo): Do not call ggc_collect conditional here.
27855 (execute_one_ipa_transform_pass): But unconditionally here.
27856 (execute_one_pass): And here.
27857 (init_optimization_passes): Remove reload pass.
27858 * tree-pass.h (TODO_ggc_collect): Remove.
27859 (pass_reload): Likewise.
27860 * ira.c (do_reload): Merge into ...
27861 (ira): ... this.
27862 (rest_of_handle_reload): Remove.
27863 (pass_reload): Likewise.
27864 * config/i386/i386.c (ix86_option_override): Refer to ira instead
27865 of reload for vzeroupper pass placement.
27866 * <everywhere>: Remove TODO_ggc_collect from todo_flags_start
27867 and todo_flags_finish of all passes.
27868
3533e58d 278692013-04-10 Richard Biener <rguenther@suse.de>
27870
27871 * tree-vectorizer.h (struct _slp_oprnd_info): Remove
27872 first_const_oprnd field, rename first_def_type to first_op_type.
27873 * tree-vect-slp.c (vect_create_oprnd_info): Adjust.
27874 (vect_get_and_check_slp_defs): Always use the type of the
27875 operand. Allow mixed vect_external_def, vect_constant_def types.
27876 (vect_get_constant_vectors): Handle mixed vect_external_def,
27877 vect_constant_def types.
27878
c3d2d0e4 278792013-04-10 Joern Rennecke <joern.rennecke@embecosm.com>
b095bd6a 27880
27881 PR tree-optimization/55524
27882 * tree-ssa-math-opts.c
27883 (convert_mult_to_fma): Don't use an fms construct
27884 when we don't have an fms operation, but fnma, and it looks
27885 likely that we'll be able to use the latter.
27886
c3d2d0e4 278872013-04-10 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
479b4ace 27888
27889 * cif-code.def (OVERWRITABLE): Correct the comment for overwritable
27890 function.
27891 * ipa-inline.c (can_inline_edge_p): Let dump mechanism report the
27892 inline fail caused by overwritable functions.
27893
241f5399 278942013-04-10 Chung-Ju Wu <jasonwucj@gmail.com>
27895
27896 * combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out
27897 unnecessary bits in the constant power of two case.
27898
0eba4748 278992013-04-10 Richard Biener <rguenther@suse.de>
27900
27901 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
27902 broken code swapping operands.
27903 (vect_build_slp_tree): Do not compute load permutations here.
27904 (vect_analyze_slp_instance): Compute load permutations here,
27905 after building the SLP tree.
27906
60ac2a59 279072013-04-09 Christian Bruel <christian.bruel@st.com>
27908
27909 * config/sh/sh.md (barrier_align): Use next/prev_active_insn instead
27910 of next/prev_real_insn.
27911
7dfe7ce5 279122013-04-09 Jan Hubicka <jh@suse.cz>
27913
0eba4748 27914 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
27915 Drop aliased parameter.
7dfe7ce5 27916 (function_and_variable_visibility): Do not handle alias pairs.
27917 * cgraph.c (varpool_externally_visible_p): Update prototype.
27918 * varpool.c (varpool_add_new_variable): Update.
27919
4164bca1 279202013-04-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
27921
27922 * config/arm/arm.md (minmax_arithsi_non_canon): New pattern.
27923
6ef7d725 279242013-04-09 Steven Bosscher <steven@gcc.gnu.org>
27925
adb4cb31 27926 * sched-vis.c (print_pattern): Print SEQUENCE of insns as insns.
27927
6ef7d725 27928 * config/sparc/sparc.md: Use define_c_enum for "unspec" and "unspecv".
27929
efbfe80e 279302013-04-09 Marek Polacek <polacek@redhat.com>
27931
27932 PR tree-optimization/48762
8f028904 27933 * params.def (PARAM_MAX_CSE_INSNS): Increase the minimum value to 1.
efbfe80e 27934
ee6e9ba5 279352013-04-09 Richard Biener <rguenther@suse.de>
27936
27937 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove code
27938 dealing with cost.
27939 (vect_build_slp_tree): Likewise.
27940 (vect_analyze_slp_cost_1, vect_analyze_slp_cost): New functions
27941 calculating the cost of a SLP instance.
27942 (vect_analyze_slp_instance): Use it from here, after building
27943 the SLP tree.
27944
4abecb72 279452013-04-09 Jakub Jelinek <jakub@redhat.com>
27946
27947 PR middle-end/56883
27948 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
27949 expand_omp_for_static_chunk): Use simple_p = true in
27950 force_gimple_operand_gsi calls when assigning to addressable decls.
27951
813adf93 279522013-04-09 Jeff Law <law@redhat.com>
27953
27954 * tree-vrp.c (simplify_cond_using_ranges): Simplify test of boolean
27955 when the boolean was created by converting a wider object which
27956 had a boolean range.
27957
40bcc7c2 279582013-04-09 Richard Biener <rguenther@suse.de>
27959
27960 * tree-vectorizer.h (slp_void_p): Remove.
27961 (slp_tree): Typedef before _slp_tree declaration.
27962 (struct _slp_tree): Use a vector of slp_tree as children.
27963 (vect_get_place_in_interleaving_chain): Remove.
27964 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain):
27965 Move ...
27966 * tree-vect-slp.c (vect_get_place_in_interleaving_chain): ... here
27967 and make static.
27968 (vect_free_slp_tree, vect_print_slp_tree, vect_mark_slp_stmts,
27969 vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
27970 vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
27971 vect_schedule_slp_instance, vect_remove_slp_scalar_calls):
27972 Use slp_node instead of slp_void_p and adjust.
27973
c8498e04 279742013-04-09 Richard Biener <rguenther@suse.de>
27975
27976 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Avoid
27977 work that is not necessary.
27978
f6e2e4ff 279792013-04-09 Jakub Jelinek <jakub@redhat.com>
27980
27981 PR tree-optimization/56854
27982 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't
27983 forward into clobber stmts if it would change MEM_REF lhs into
27984 non-MEM_REF.
27985
45e5c263 279862013-04-09 Maxim Kuvyrkov <maxim@kugelworks.com>
27987
27988 * tree.c (type_hash_lookup, type_hash_add): Make static.
27989 * tree.h (type_hash_lookup, type_hash_add): Remove global declarations.
27990
26a87c78 279912013-04-09 Richard Biener <rguenther@suse.de>
27992
27993 * tree.h (unsave_expr_now): Remove.
27994 * tree-inline.c (mark_local_for_remap_r): Remove.
27995 (unsave_expr_1): Likewise.
27996 (unsave_r): Likewise.
27997 (unsave_expr_now): Likewise.
27998 * tree-ssa-copy.c (replace_exp_1): Use unshare_expr.
27999 (propagate_tree_value): Likewise.
28000
3ff7f7e7 280012013-04-08 Steven Bosscher <steven@gcc.gnu.org>
28002
28003 * doc/rtl.texi (sequence): Rewrite documentation to match the
28004 current use of SEQUENCE rtl objects.
28005 * rtl.def (SEQUENCE): Likewise.
28006
28007 * doc/rtl.texi (NOTE_INSN_EH_REGION_BEG, NOTE_INSN_EH_REGION_END):
28008 Update documentation.
28009 (NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_END, NOTE_INSN_LOOP_CONT,
28010 NOTE_INSN_LOOP_VTOP): Remove documentation for non-existing notes.
28011
28012 * reg-notes.def (REG_EH_CONTEXT): Remove unused note.
28013
f9d4b7f4 280142013-04-08 Teresa Johnson <tejohnson@google.com>
28015
28016 * basic-block.h (GCOV_COMPUTE_SCALE): Define.
28017 * ipa-inline-analysis.c (param_change_prob): Use helper rounding divide
8f028904 28018 methods.
f9d4b7f4 28019 (estimate_edge_size_and_time): Add comment to suggest using rounding
28020 methods.
28021 (estimate_node_size_and_time): Ditto.
28022 (remap_edge_change_prob): Use helper rounding divide methods.
28023 * value-prof.c (gimple_divmod_fixed_value_transform): Ditto.
28024 (gimple_mod_pow2_value_transform): Ditto.
28025 (gimple_mod_subtract_transform): Ditto.
28026 (gimple_ic_transform): Ditto.
28027 (gimple_stringops_transform): Ditto.
28028 * stmt.c (conditional_probability): Ditto.
28029 (emit_case_dispatch_table): Ditto.
28030 * lto-cgraph.c (merge_profile_summaries): Ditto.
28031 * tree-optimize.c (execute_fixup_cfg): Ditto.
28032 * cfgcleanup.c (try_forward_edges): Ditto.
28033 * cfgloopmanip.c (scale_loop_profile): Ditto.
28034 (loopify): Ditto.
28035 (duplicate_loop_to_header_edge): Ditto.
28036 (lv_adjust_loop_entry_edge): Ditto.
28037 * tree-vect-loop.c (vect_transform_loop): Ditto.
28038 * profile.c (compute_branch_probabilities): Ditto.
28039 * cfgbuild.c (compute_outgoing_frequencies): Ditto.
28040 * lto-streamer-in.c (input_cfg): Ditto.
28041 * gimple-streamer-in.c (input_bb): Ditto.
28042 * ipa-cp.c (update_profiling_info): Ditto.
28043 (update_specialized_profile): Ditto.
28044 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Ditto.
28045 * cfg.c (update_bb_profile_for_threading): Add comment to suggest using
8f028904 28046 rounding methods.
f9d4b7f4 28047 * sched-rgn.c (compute_dom_prob_ps): Ditto.
28048 (compute_trg_info): Ditto.
28049 * cfgrtl.c (force_nonfallthru_and_redirect): Ditto.
28050 (purge_dead_edges): Ditto.
28051 * loop-unswitch.c (unswitch_loop): Ditto.
28052 * cgraphclones.c (cgraph_clone_edge): Ditto.
28053 (cgraph_clone_node): Ditto.
28054 * tree-inline.c (copy_bb): Ditto.
28055 (copy_edges_for_bb): Ditto.
28056 (initialize_cfun): Ditto.
28057 (copy_cfg_body): Ditto.
28058 (expand_call_inline): Ditto.
28059
5a405481 280602013-04-08 Kai Tietz <ktietz@redhat.com>
28061
28062 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Replaced
28063 TARGET_CYGWIN64 by TARGET_64BIT.
28064
88b2f163 280652013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
28066
28067 * config/epiphany/epiphany.md (GPR_1): New constant.
28068 (define_expand "mov<mode>cc): FAIL if gen_compare_reg returned 0.
28069 * config/epiphany/epiphany.c (gen_compare_reg):
28070 For flag_finite_math_only, avoid swapping operands when r0 and/or r1
28071 is already in place.
28072 Use GPR_0 / GPR_1 instead of 0/1 for r0/r1 register numbers.
28073 Don't require being called during rtl expansion; If y operlaps r0,
28074 return 0.
28075 (epiphany_compute_frame_size, epiphany_expand_prologue): Use GPR_1.
28076 (epiphany_expand_epilogue): Likewise.
28077
3d5b5f5d 28078 * config/epiphany/epiphany.c (epiphany_select_cc_mode):
28079 Don't use CC_FPmode for ORDERED / UNORDERED.
8f028904 28080 * config/epiphany/epiphany.md (cmpsf_ord): Make pattern unconditional.
3d5b5f5d 28081
9864d85d 28082 * config/epiphany/constraints.md (CnL): New constraint.
28083 * config/epiphany/epiphany.md (addsi3_i): Add r/r/CnL alternative.
28084 * config/epiphany/predicates.md (add_operand): Allow 1024.
28085
309ff476 28086 * config/epiphany/epiphany.md (logical_op): New code iterator.
28087 (op_mnc): New code attribute.
28088 (<op_mnc>_f, mov_f, cstoresi4): New patterns.
28089 (mov_f+1, mov_f+2): New peephole2 patterns.
28090
b434a9d7 28091 * config/epiphany/epiphany.md (mov_f+2): New peephole2 pattern.
28092 (cstoresi4): Also allow re-use of zero result when doing a NE
28093 comparison to a non-zero operand.
2467b384 28094 Use (clobber (scratch)) for first insn if the gpr output is not needed.
b434a9d7 28095
9d8aebe9 28096 * config/epiphany/epiphany.md (<insn_opname>v2si3):
28097 Use gen_addsi3_i / gen_subsi3_i.
28098
896a0c42 280992013-04-08 Jakub Jelinek <jakub@redhat.com>
28100
28101 PR c++/34949
28102 PR c++/50243
28103 * tree-eh.c (optimize_clobbers): Only remove clobbers if bb doesn't
28104 contain anything but clobbers, at most one __builtin_stack_restore,
28105 optionally debug stmts and final resx, and if it has at least one
28106 incoming EH edge. Don't check for SSA_NAME on LHS of a clobber.
28107 (sink_clobbers): Don't check for SSA_NAME on LHS of a clobber.
28108 Instead of moving clobbers with MEM_REF LHS with SSA_NAME address
28109 which isn't defaut definition, remove them.
28110 (unsplit_eh, cleanup_empty_eh): Use single_{pred,succ}_{p,edge}
28111 instead of EDGE_COUNT comparisons or EDGE_{PRED,SUCC}.
28112 * tree-ssa-ccp.c (execute_fold_all_builtins): Remove clobbers
28113 with MEM_REF LHS with SSA_NAME address.
28114
d701b871 281152013-04-08 Jeff Law <law@redhat.com>
28116
28117 * gimple.c (canonicalize_cond_expr_cond): Rewrite x ^ y into x != y.
813adf93 28118
0bf5f81b 281192013-04-08 Richard Biener <rguenther@suse.de>
28120
28121 * gimple-pretty-print.c (debug_gimple_stmt): Do not print
28122 extra newline.
28123 * tree-vect-loop.c (vect_determine_vectorization_factor): Dump
28124 determined vector type.
28125 (vect_analyze_data_refs): Likewise.
28126 (vect_get_new_vect_var): Adjust.
28127 (vect_create_destination_var): Preserve SSA name versions.
28128 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Do
28129 not dump anything here.
28130
78d11f8a 281312013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
28132
28133 * config/epiphany/epiphany.h (struct GTY (()) machine_function):
28134 Add member lr_slot_known.
28135 * config/epiphany/epiphany.md (reload_insi_ra): Compute lr_slot_offs
28136 if necessary.
28137 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
28138 Remove code that sets lr_slot_offset according to what a previous
28139 version of epiphany_emit_save_restore used to do.
28140 (epiphany_emit_save_restore): When doing an lr save or restore,
28141 set/verify lr_slot_known and lr_slot_offset.
28142
0a36a221 281432013-04-08 Xinyu Qi <xyqi@marvell.com>
28144
8f028904 28145 PR target/54338
28146 * config/arm/arm.h (REG_CLASS_CONTENTS): Include IWMMXT_GR_REGS
0a36a221 28147 in ALL_REGS.
28148
ce0deccc 281492013-04-08 Richard Biener <rguenther@suse.de>
28150
28151 * alias.c (find_base_term): Fix thinko in previous change.
28152
0dc30b0c 281532013-04-08 Jakub Jelinek <jakub@redhat.com>
28154
28155 * tree-loop-distribution.c (const_with_all_bytes_same): New function.
28156 (generate_memset_builtin): Only handle integer_all_onesp as -1 val if
28157 TYPE_PRECISION is equal to mode bitsize. Use const_with_all_bytes_same
28158 if possible to compute val.
28159 (classify_partition): Verify CONSTRUCTOR doesn't have any elts.
28160 For QImode integers don't require anything about precision. Use
28161 const_with_all_bytes_same to find out if the constant doesn't have
28162 repeated bytes in it.
28163
31efd1ec 281642013-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
28165
28166 * config/s390/s390.c (s390_expand_insv): Only accept insertions
28167 within mode size.
28168
ce4f2aee 281692013-04-08 Marek Polacek <polacek@redhat.com>
28170
28171 PR rtl-optimization/48182
28172 * params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
28173 value to 1.
28174
4aa618ec 281752013-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
28176
28177 PR target/55487
28178 * config/pa/pa.c (legitimize_pic_address): Before incrementing label
28179 nuses, make sure we have a label.
28180
c68f8616 281812013-04-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
28182
28183 PR target/56843
28184 * config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
28185 (rs6000_emit_swdiv_low_precision): Remove.
28186 (rs6000_emit_swdiv): Rewrite to handle between one and four
28187 iterations of Newton-Raphson generally; modify required number of
28188 iterations for some cases.
28189 * config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.
28190
b257b412 281912013-04-05 Steven Bosscher <steven@gcc.gnu.org>
28192
28193 * bb-reorder.c (fix_crossing_unconditional_branches): Remove a
28194 set-but-unused variable.
28195
28196 * cgraph.c (cgraph_release_function_body): Clear cfun->cfg to make
28197 basic blocks of released function bodies garbage-collectable.
28198
28199 * ree.c (find_and_remove_re): Do not call df_finish_pass here.
28200 (struct rtl_opt_pass): Add TODO_df_finish.
28201
28202 * rtl.def (DEFINE_SUBST, DEFINE_SUBST_ATTR): Add documentation.
28203
353cf59a 282042013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
28205
28206 * config/arm/constraints.md (q): New constraint.
28207 * config/arm/ldrdstrd.md: New file.
28208 * config/arm/arm.md (ldrdstrd.md) New include.
28209 (arm_movdi): Use "q" instead of "r" constraint
28210 for double-word memory access.
28211 (movdf_soft_insn): Likewise.
28212 * config/arm/vfp.md (movdi_vfp): Likewise.
28213 * config/arm/t-arm (MD_INCLUDES): Add ldrdstrd.md.
8f028904 28214 * config/arm/arm-protos.h (gen_operands_ldrd_strd): New declaration.
353cf59a 28215 * config/arm/arm.c (gen_operands_ldrd_strd): New function.
28216 (mem_ok_for_ldrd_strd): Likewise.
28217 (output_move_double): Update assertion.
28218
cb860649 282192013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
28220
28221 * config/arm/arm.md: Comment on splitting Thumb1 patterns.
28222
3dc953f2 282232013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
28224
28225 * config/arm/arm.md (arm_smax_insn): Convert define_insn into
28226 define_insn_and_split.
28227 (arm_smin_insn,arm_umaxsi3,arm_uminsi3): Likewise.
28228
a5b9aa37 282292013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
28230
28231 * config/arm/arm.md (arm_ashldi3_1bit): Convert define_insn into
28232 define_insn_and_split.
8f028904 28233 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
a5b9aa37 28234 (shiftsi3_compare): New pattern.
28235 (rrx): New pattern.
28236 * config/arm/unspecs.md (UNSPEC_RRX): New.
28237
83e2b922 282382013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
28239
28240 * config/arm/arm.md (negdi_extendsidi): New pattern.
28241 (negdi_zero_extendsidi): Likewise.
28242
ba6a3b2f 282432013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
28244
28245 * config/arm/arm.md (andsi_iorsi3_notsi): Convert define_insn into
28246 define_insn_and_split.
28247 (arm_negdi2,arm_abssi2,arm_neg_abssi2): Likewise.
28248 (arm_cmpdi_insn,arm_cmpdi_unsigned): Likewise.
28249
2f9b23e3 282502013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
28251
28252 * config/arm/arm.md (arm_subdi3): Convert define_insn into
28253 define_insn_and_split.
28254 (subdi_di_zesidi,subdi_di_sesidi): Likewise.
28255 (subdi_zesidi_di,subdi_sesidi_di,subdi_zesidi_zesidi): Likewise.
28256
9154bd82 282572013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
28258
28259 * config/arm/arm.md (subsi3_carryin): New pattern.
28260 (subsi3_carryin_const): Likewise.
28261 (subsi3_carryin_compare,subsi3_carryin_compare_const): Likewise.
28262 (subsi3_carryin_shift,rsbsi3_carryin_shift): Likewise.
28263
560d151e 282642013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
28265
28266 * config/arm/arm.md (incscc,arm_incscc,decscc,arm_decscc): Delete.
28267
a7de272d 282682013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
28269
28270 * config/arm/arm.md (addsi3_carryin_<optab>): Set attribute predicable.
9154bd82 28271 (addsi3_carryin_alt2_<optab>,addsi3_carryin_shift_<optab>): Likewise.
a7de272d 28272
30441c92 282732013-04-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28274
28275 * config/arm/arm.c (arm_expand_builtin): Change fcode
28276 type to unsigned int.
28277
f2ba16e7 282782013-04-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
28279
28280 * doc/invoke.texi (ARM Options): Document cortex-a53 support.
28281
224959cb 282822013-04-04 Ian Lance Taylor <iant@google.com>
28283
8f028904 28284 * doc/standards.texi (Standards): The Go frontend supports the Go 1
28285 language standard.
224959cb 28286
581d1e0f 282872013-04-04 Steven Bosscher <steven@gcc.gnu.org>
28288
28289 PR middle-end/56729
28290 * df-scan.c (df_insn_delete): Disable failing assert.
28291
23877cbc 282922013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28293
28294 * config/arm/arm-protos.h (arm_builtin_vectorized_function):
28295 New function prototype.
28296 * config/arm/arm.c (TARGET_VECTORIZE_BUILTINS): Define.
28297 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise.
28298 (arm_builtin_vectorized_function): New function.
28299
4bc74efc 283002013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28301
28302 * config/arm/arm_neon_builtins.def: New file.
28303 * config/arm/arm.c (neon_builtin_data): Move contents to
28304 arm_neon_builtins.def.
28305 (enum arm_builtins): Include neon builtin definitions.
28306 (ARM_BUILTIN_NEON_BASE): Move from enum to macro.
8f028904 28307 * config/arm/t-arm (arm.o): Add dependency on arm_neon_builtins.def.
4bc74efc 28308
6040d650 283092013-04-04 Marek Polacek <polacek@redhat.com>
28310
28311 PR tree-optimization/48186
28312 * predict.c (maybe_hot_frequency_p): Return false if
28313 HOT_BB_FREQUENCY_FRACTION is 0.
28314 (cgraph_maybe_hot_edge_p): Likewise.
28315
f77a1eec 283162013-04-04 Richard Biener <rguenther@suse.de>
28317
28318 PR tree-optimization/56826
28319 * tree-vect-slp.c (vect_build_slp_tree): Compute ncopies
28320 more accurately.
28321
2dca30a9 283222013-04-04 Richard Biener <rguenther@suse.de>
28323
28324 PR tree-optimization/56213
28325 * tree-vect-data-refs.c (vect_check_strided_load): Remove.
8f028904 28326 (vect_analyze_data_refs): Allow all non-nested loads as strided loads.
2dca30a9 28327
616d052d 283282013-04-04 Richard Biener <rguenther@suse.de>
28329
28330 PR tree-optimization/56837
28331 * tree-loop-distribution.c (classify_partition): For non-zero
28332 values require that the value has the same precision as its
28333 mode to be useful as memset value.
28334
34bcbb16 283352013-04-03 Nick Clifton <nickc@redhat.com>
28336
8f028904 28337 * config/v850/v850e3v5.md (fmasf4): Use fmaf.s on E3V5 architectures.
34bcbb16 28338 (fmssf4): Use fmsf.s on E3V5 architectures.
28339 (fnmasf4): Use fnmaf.s on E3V5 architectures.
28340 (fnmssf4): Use fnmsf.s on E3V5 architectures.
28341
2aebdec3 283422013-04-03 Jeff Law <law@redhat.com>
28343
28344 * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
28345 (lra-eliminations.o): Likewise.
28346
8515a84d 283472013-04-03 Teresa Johnson <tejohnson@google.com>
28348
28349 * gcov-io.c (compute_working_sets): Moved most of body of old
8f028904 28350 compute_working_sets here from profile.c.
8515a84d 28351 * gcov-io.h (NUM_GCOV_WORKING_SETS): Moved here from profile.c.
8f028904 28352 (gcov_working_set_t): Moved typedef here from basic-block.h
28353 (compute_working_set): Declare.
8515a84d 28354 * profile.c (NUM_GCOV_WORKING_SETS): Moved to gcov-io.h.
28355 (get_working_sets): Renamed from compute_working_set,
8f028904 28356 replace most of body with call to new compute_working_sets.
8515a84d 28357 (get_exec_counts): Replace call to compute_working_sets
8f028904 28358 to get_working_sets.
28359 * profile.h (get_working_sets): Renamed from compute_working_set.
8515a84d 28360 * lto-cgraph.c (input_symtab): Replace call to compute_working_sets
8f028904 28361 to get_working_sets.
8515a84d 28362 * basic-block.h (gcov_working_set_t): Moved to gcov-io.h.
28363 * gcov-dump.c (dump_working_sets): New function.
28364
c3d2d0e4 283652013-04-03 Kenneth Zadeck <zadeck@naturalbridge.com>
687a1ea1 28366
28367 * hwint.c (sext_hwi, zext_hwi): New functions.
28368 * hwint.h (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT,
28369 HOST_HALF_WIDE_INT_PRINT, HOST_HALF_WIDE_INT_PRINT_C,
28370 HOST_HALF_WIDE_INT_PRINT_DEC, HOST_HALF_WIDE_INT_PRINT_DEC_C,
28371 HOST_HALF_WIDE_INT_PRINT_UNSIGNED, HOST_HALF_WIDE_INT_PRINT_HEX,
28372 HOST_HALF_WIDE_INT_PRINT_HEX_PURE): New symbols.
28373 (sext_hwi, zext_hwi): New functions.
34bcbb16 28374
99db618c 283752013-04-03 Jeff Law <law@redhat.com>
28376
28377 PR tree-optimization/56799
8f028904 28378 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Bring
28379 back test for widening conversion erroneously dropped in prior change.
99db618c 28380
9743e73f 283812013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28382
28383 PR target/56809
28384 * config/aarch64/aarch64.c (is_jump_table): Use next_active_insn
28385 instead of next_real_insn.
28386
ef951254 283872013-04-03 Marek Polacek <polacek@redhat.com>
28388
28389 PR sanitizer/55702
8f028904 28390 * tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN functions.
ef951254 28391
795e7242 283922013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
28393
28394 PR target/56809
28395 * config/arm/arm.c (is_jump_table): Use next_active_insn instead of
28396 next_real_insn.
28397 (thumb1_output_casesi): Likewise.
28398 (thumb2_output_casesi): Likewise.
28399
042301ef 284002013-04-03 Richard Biener <rguenther@suse.de>
28401
28402 PR tree-optimization/56817
28403 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
28404 Split out ...
28405 (tree_unroll_loops_completely_1): ... new function to manually
28406 walk the loop tree, properly defering outer loops of unrolled
28407 loops to later iterations.
28408
19bacd59 284092013-04-03 Marc Glisse <marc.glisse@inria.fr>
28410
28411 * tree-vect-stmts.c (vectorizable_store): Accept BIT_FIELD_REF.
28412 (vectorizable_load): Likewise.
28413 * tree-vect-slp.c (vect_build_slp_tree): Likewise.
28414 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Handle VECTOR_TYPE.
28415
872e3ff8 284162013-04-03 Marc Glisse <marc.glisse@inria.fr>
28417
28418 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Handle
28419 BIT_FIELD_REF.
28420
b1135d9a 284212013-04-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
28422
28423 * config/spu/spu.c (emit_nop_for_insn): Handle JUMP_TABLE_DATA.
28424
bb760dac 284252013-04-03 Bin Cheng <bin.cheng@arm.com>
28426
28427 * rtl.h (AUTO_INC_DEC): Fix typo of HAVE_POST_MODIFY_DISP.
28428
07681e3a 284292013-04-03 Marc Glisse <marc.glisse@inria.fr>
28430
28431 PR tree-optimization/56790
8f028904 28432 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Add constant
28433 folding.
07681e3a 28434
f0a05bd5 284352013-04-03 Marc Glisse <marc.glisse@inria.fr>
28436
28437 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
28438 Handle VEC_MERGE.
28439 (simplify_ternary_operation) <VEC_MERGE>: Use unsigned HOST_WIDE_INT
28440 for masks. Test for side effects. Handle nested VEC_MERGE. Handle
28441 equal arguments.
28442
0b049e15 284432013-04-03 Jakub Jelinek <jakub@redhat.com>
28444
28445 PR c/19449
28446 * tree.h (force_folding_builtin_constant_p): New decl.
28447 * builtins.c (force_folding_builtin_constant_p): New variable.
28448 (fold_builtin_constant_p): Fold immediately also if
28449 force_folding_builtin_constant_p.
28450
1fa434e3 284512013-04-03 Richard Biener <rguenther@suse.de>
28452
28453 PR tree-optimization/56812
28454 * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
28455 DRs of the same interleaving chain are independent.
28456
0a56fff4 284572013-04-02 Jason Merrill <jason@redhat.com>
28458
28459 * gdbinit.in (pbb): Use debug fn.
28460
f8477cfc 284612013-04-02 Lawrence Crowl <crowl@google.com>
28462
28463 * sese.h (struct ivtype_map_elt_s): Remove unused.
28464 (extern debug_ivtype_map): Remove unused.
28465 (extern eq_ivtype_map_elts): Remove unused.
28466 * sese.c (debug_ivtype_map): Removed unused.
28467 (debug_ivtype_map_1): Removed unused.
28468 (debug_ivtype_elt): Remove unused.
28469 (eq_ivtype_map_elts): Remove unused.
28470
5496fac8 284712013-04-02 Kai Tietz <ktietz@redhat.com>
28472
28473 PR target/52790
28474 * config/i386/cygming.h (SUB_TARGET_RECORD_STUB): New sub-target macro.
28475 * config/i386/i386-protos.h (i386_pe_record_stub): Add new prototype.
8f028904 28476 * config/i386/i386.c (legitimize_pe_coff_extern_decl): New static
28477 function.
5496fac8 28478 (legitimize_pe_coff_symbol): Likewise.
28479 (is_imported_p): New helper-function.
28480 (ix86_option_override_internal): Make MEDIUM_PIC the default code-model
28481 for Windows x64 targets.
28482 (ix86_expand_prologue): Optimize for pe-coff targets.
28483 (ix86_expand_split_stack_prologue): Adjust for pe-coff targets.
28484 (legitimate_pic_address_disp_p): Adjust for x64 pe-coff to support
28485 medium/large code-model.
28486 (legitimize_pic_address): Likewise.
28487 (legitimize_tls_address): Likewise.
28488 (ix86_expand_call): Likewise.
28489 (x86_output_mi_thunk): Likewise.
28490 (get_dllimport_decl): Add new beimport argument.
28491 (construct_plt_address): Don't assert for x64 pe-coff targets.
28492 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Adjust for x64 pe-coff
28493 targets.
28494 (SYMBOL_FLAG_STUBVAR): New macro.
28495 (SYMBOL_REF_STUBVAR_P): Likewise.
28496 * config/i386/winnt.c (stub_list): New structure.
28497 (stub_head): New local variable.
28498 (i386_pe_record_stub): New function.
28499 (i386_pe_file_end): Emit refptr-stubs.
28500
9f559b20 285012013-04-02 Jakub Jelinek <jakub@redhat.com>
28502
50212417 28503 PR rtl-optimization/56745
28504 * ifcvt.c (cond_exec_find_if_block): Don't try to optimize
28505 if then_bb has no successors and else_bb is EXIT_BLOCK_PTR.
28506
137eddca 28507 PR c++/34949
28508 * tree-ssa-alias.c (stmt_kills_ref_p_1): If base != ref->base
28509 and both of them are MEM_REFs, just compare first argument for
28510 equality and attempt to deal even with differing offsets.
28511
9f559b20 28512 PR c++/34949
28513 * tree-cfg.c (verify_gimple_assign_single): Allow lhs
28514 of gimple_clobber_p to be MEM_REF.
28515 * gimplify.c (gimplify_modify_expr): Gimplify *to_p of
28516 an assignment from TREE_CLOBBER_P. Allow it to be MEM_REF
28517 after gimplification.
28518 * asan.c (get_mem_ref_of_assignment): Don't instrument
28519 gimple_clobber_p stmts.
28520 * tree-ssa-dse.c (dse_optimize_stmt): Allow DSE of
28521 gimple_clobber_p stmt if they have MEM_REF lhs and
28522 are dead because of another gimple_clobber_p stmt.
28523 * tree-ssa-live.c (clear_unused_block_pointer): Treat
28524 gimple_clobber_p stmts like debug stmts.
28525 (remove_unused_locals): Remove clobbers with MEM_REF lhs
28526 that refer to unused VAR_DECLs or uninitialized values.
28527 * tree-sra.c (sra_ipa_reset_debug_stmts): Also remove
28528 gimple_clobber_p stmts if they refer to removed parameters.
28529 (get_repl_default_def_ssa_name, sra_ipa_modify_expr): Fix up
28530 formatting.
28531
7d71feb3 285322013-04-02 Uros Bizjak <ubizjak@gmail.com>
28533
28534 * config/i386/i386.md (*testqi_ext_3): Merge with *testqi_ext_3_rex64
28535 using SWI48 mode attribute.
28536
10ef9b48 285372013-04-02 Wei Mi <wmi@google.com>
28538
28539 * config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for
28540 ashl<mode>3_mask, *<shift_insn><mode>3_mask and
28541 *<rotate_insn><mode>3_mask in i386.md.
28542
ced500f0 285432013-04-02 Alexander Ivchenko <alexander.ivchenko@intel.com>
28544
28545 * config.gcc (arm*-*-linux-*): Remove duplicate t-linux-android.
28546
95e19962 285472013-04-02 Richard Biener <rguenther@suse.de>
28548
28549 PR tree-optimization/56778
28550 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
28551 Runtime alias tests are not supported for gather loads.
28552 * tree-vect-loop-manip.c (vect_loop_versioning): Insert
28553 stmts referenced from SSA operands before updating SSA form.
28554
da10bc87 285552013-04-02 Ian Caulfield <ian.caulfield@arm.com>
28556 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
28557
28558 * config/arm/arm-arches.def (armv8-a): Default to cortex-a53.
7d71feb3 28559 * config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md.
28560 * config/arm/cortex-a53.md: New file.
28561 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53.
28562 * config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53.
28563 * config/arm/arm.c (arm_issue_rate): Likewise.
28564 * config/arm/arm-tune.md: Regenerate
28565 * config/arm/arm-tables.opt: Regenerate.
28566 * config/arm/arm-cores.def: Add cortex-a53.
da10bc87 28567
d62eaedc 285682013-04-02 Zhenqiang Chen <zhenqiang.chen@arm.com>
28569
28570 * config/arm/uclinux-elf.h: Add %L to LINK_GCC_C_SEQUENCE_SPEC for
28571 non-static link.
28572
fb436d5f 285732013-04-02 Sofiane Naci <sofiane.naci@arm.com>
28574
da10bc87 28575 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add variants for
28576 scalar load/store operations using B/H registers.
fb436d5f 28577 (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): Likewise.
28578
43bd8f5c 285792013-04-02 Sofiane Naci <sofiane.naci@arm.com>
28580
28581 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add alternatives for
28582 scalar move.
28583 * config/aarch64/aarch64.c
28584 (aarch64_simd_scalar_immediate_valid_for_move): New.
28585 * config/aarch64/aarch64-protos.h
28586 (aarch64_simd_scalar_immediate_valid_for_move): New.
28587 * config/aarch64/constraints.md (Dh, Dq): New.
28588 * config/aarch64/iterators.md (hq): New.
28589
965df672 285902013-04-02 Eric Botcazou <ebotcazou@adacore.com>
28591
28592 * reorg.c (get_branch_condition): Deal with conditional returns.
28593 (fill_simple_delay_slots): Remove dead code dealing with jumps.
28594
8089c750 285952013-04-01 Wei Mi <wmi@google.com>
28596
28597 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn.
28598 Truncate operand 2 using %b asm operand modifier.
28599 (*<shift_insn><mode>3_mask): Ditto.
28600 (*<rotate_insn><mode>3_mask): Ditto.
28601
53859f1c 286022013-04-01 Steven Bosscher <steven@gcc.gnu.org>
28603
28604 PR middle-end/56798
28605 * cfgbuild.c (inside_basic_block_p): Restore check broken at r197234.
28606
262e5908 286072013-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
28608
28609 * config/sh/sh.md (casesi_worker_1): Use next_active_insn instead
28610 of next_real_insn.
28611 (casesi_worker_2, casesi_shift_media, casesi_load_media): Likewise.
28612
e85eaec5 286132013-03-30 Lawrence Crowl <crowl@google.com>
28614
28615 * dse.c (clear_alias_sets): Remove never set.
28616 (disqualified_clear_alias_sets): Remove never set.
28617 (clear_alias_mode_pool): Remove never set.
28618 (dse_step0): Remove condition that is never true.
28619 (canon_address): Remove condition that is never true.
28620 (dse_step7): Remove condition that is never true.
28621 (rest_of_handle_dse): Remove condition that is never true.
28622 (rest_of_handle_dse::did_global): Remove never read from above.
28623 (dse_step2_spill): Remove never called from above.
28624 (dse_step5_spill): Remove never called from above.
28625
91f71fa3 286262013-03-30 Steven Bosscher <steven@gcc.gnu.org>
28627
9ddbb404 28628 * doc/md.texi (Standard Names) <casesi>: Update documentation for
28629 JUMP_TABLE_DATA changes.
28630 * doc/tm.texi.in (Dispatch Tables) <ASM_OUTPUT_CASE_LABEL>: Likewise.
28631 * doc/rtl.texi (Flags) <INSN_DELETED_P, SCHED_GROUP_P>: Likewise.
28632 (Insns) <jump_table_data>: New entry.
28633 * doc/tm.texi: Regenerate.
28634
91f71fa3 28635 * cfgrtl.c (fixup_reorder_chain): Do not emit barriers to BB_FOOTER.
28636
28637 * postreload-gcse.c (bb_has_well_behaved_predecessors): Correct test
28638 for table jump at the end of a basic block using tablejump_p.
28639 * targhooks.c (default_invalid_within_doloop): Likewise.
28640 * config/rs6000/rs6000.c (TARGET_INVALID_WITHIN_DOLOOP): Remove
28641 target hook implementation that is identical to the default hook.
28642 (rs6000_invalid_within_doloop): Remove.
28643
28644 * bb-reorder.c (fix_crossing_unconditional_branches): Remove set but
28645 unused variable from tablejump_p call.
28646
28647 * rtl.def (JUMP_TABLE_DATA): New RTX_INSN object.
28648 * rtl.h (RTX_PREV, RTX_NEXT): Adjust for new JUMP_TABLE_DATA.
28649 (INSN_DELETED_P): Likewise.
28650 (emit_jump_table_data): New prototype.
28651 * gengtype.c (adjust_field_rtx_def): Handle JUMP_TABLE_DATA fields
28652 after 4th as unused.
28653 * print-rtl.c (print_rtl): Handle JUMP_TABLE_DATA.
28654 * sched-vis.c (print_insn): Likewise.
28655 * emit-rtl.c (active_insn_p): Consider JUMP_TABLE_DATA an active
28656 insn for compatibility with back ends that use next_active_insn to
28657 identify jump table data.
28658 (set_insn_deleted): Remove no longer useful JUMP_TABLE_DATA_P check.
28659 (remove_insn): Likewise.
28660 (emit_insn): Do not accept JUMP_TABLE_DATA objects in insn chains
28661 to be emitted.
28662 (emit_debug_insn, emit_jump_insn, emit_call_insn, emit_label): Idem.
28663 (emit_jump_table_data): New function.
28664
28665 * cfgbuild.c (inside_basic_block_p): A JUMP_INSN is always inside a
28666 basic block, a JUMP_TABLE_DATA never is.
28667 (control_flow_insn_p): JUMP_TABLE_DATA is not a control flow insn.
28668 * cfgrtl.c (duplicate_insn_chain): Split handling of JUMP_TABLE_DATA
28669 off from code handling real insns.
28670 * final.c (get_attr_length_1): Simplify for JUMP_INSNs.
28671 * function.c (instantiate_virtual_regs): Remove JUMP_TABLE_DATA_P
28672 test, now redundant because JUMP_TABLE_DATA is not an INSN_P insn.
28673 * gcse.c (insert_insn_end_basic_block): Likewise, JUMP_TABLE_DATA_P
28674 is not a NONDEBUG_INSN_P.
28675 * ira-costs.c (scan_one_insn): Likewise.
28676 * jump.c (mark_all_labels): Likewise.
28677 (mark_jump_label_1): Likewise.
28678 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
28679 * lra.c (get_insn_freq): Expect all insns reaching here to be in
28680 a basic block.
28681 (check_rtl): Remove JUMP_TABLE_DATA_P test, not a NONDEBUG_INSN_P insn.
28682 * predict.c (expensive_function_p): Use FOR_BB_INSNS.
28683 * reload1.c (calculate_needs_all_insns): Call set_label_offsets for
28684 JUMP_TABLE_DATA_P insns.
28685 (calculate_elim_costs_all_insns): Likewise.
28686 (set_label_offsets): Recurse on the PATTERN of JUMP_TABLE_DATA insns.
28687 (elimination_costs_in_insn): Remove redundant JUMP_TABLE_DATA_P test.
28688 (delete_output_reload): Code style fixups.
28689 * reorg.c (dbr_schedule): Move JUMP_TABLE_DATA_P up to avoid setting
28690 insn flags on this non-insn.
28691 * sched-rgn.c (add_branch_dependences): Treat JUMP_TABLE_DATA insns
28692 as scheduling barriers, for pre-change compatibility.
28693 * stmt.c (emit_case_dispatch_table): Emit jump table data not as
28694 JUMP_INSN objects but instead as JUMP_TABLE_DATA objects.
28695
28696 * config/alpha/alpha.c (alpha_does_function_need_gp): Remove
28697 redundant JUMP_TABLE_DATA_P test.
28698 * config/arm/arm.c (thumb_far_jump_used_p): Likewise.
28699 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
28700 (frv_for_each_packet): Likewise.
28701 * config/i386/i386.c (min_insn_size): Likewise.
28702 (ix86_avoid_jump_mispredicts): Likewise.
28703 * config/m32r/m32r.c (m32r_is_insn): Likewise.
28704 * config/mep/mep.c (mep_reorg_erepeat): Likewise.
28705 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
28706 (mips16_insn_length): Robustify.
28707 (mips_has_long_branch_p): Remove redundant JUMP_TABLE_DATA_P test.
28708 (mips16_split_long_branches): Likewise.
28709 * config/pa/pa.c (pa_combine_instructions): Likewise.
28710 * config/rs6000/rs6000.c (get_next_active_insn): Treat
28711 JUMP_TABLE_DATA objects as active insns, like in active_insn_p.
28712 * config/s390/s390.c (s390_chunkify_start): Treat JUMP_TABLE_DATA
28713 as contributing to pool range lengths.
28714 * config/sh/sh.c (find_barrier): Restore check for ADDR_DIFF_VEC.
28715 Remove redundant JUMP_TABLE_DATA_P test.
28716 (sh_loop_align): Likewise.
28717 (split_branches): Likewise.
28718 (sh_insn_length_adjustment): Likewise.
28719 * config/spu/spu.c (get_branch_target): Likewise.
28720
9e179a64 287212013-03-29 Jan Hubicka <jh@suse.cz>
28722
28723 * lto-cgraph.c (output_profile_summary, input_profile_summary): Use
28724 gcov streaming; stream hot bb threshold to ltrans.
28725 * predict.c (get_hot_bb_threshold): Break out from ....
28726 (maybe_hot_count_p): ... here.
28727 (set_hot_bb_threshold): New function.
28728 * lto-section-in.c (lto_section_name): Add profile.
28729 * profile.h (get_hot_bb_threshold, set_hot_bb_threshold): Declare.
28730 * ipa.c: Include hash-table.h, tree-inline.h, profile.h, lto-streamer.h
28731 and data-streamer.h
28732 (histogram_entry): New structure.
28733 (histogram, histogram_pool): New global vars.
28734 (histogram_hash): New structure.
28735 (histogram_hash::hash): New method.
28736 (histogram_hash::equal): Likewise.
28737 (account_time_size): New function.
28738 (cmp_counts): New function.
28739 (dump_histogram): New function.
28740 (ipa_profile_generate_summary): New function.
28741 (ipa_profile_write_summary): New function.
28742 (ipa_profile_read_summary): New function.
28743 (ipa_profile): Decide on threshold.
7d71feb3 28744 (pass_ipa_profile): Add ipa_profile_write_summary and
28745 ipa_profile_read_summary.
9e179a64 28746 * Makefile.in (ipa.o): Update dependencies.
28747 * lto-streamer.h (LTO_section_ipa_profile): New section.
28748
80a58eb0 287492013-03-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
28750
28751 * tree.h (VAR_P): New.
28752
51bad497 287532013-03-29 Paolo Carlini <paolo.carlini@oracle.com>
28754
28755 PR lto/56777
28756 * doc/invoke.texi ([-fwhole-program]): Fix typo.
28757
77985f1a 287582013-03-29 Steven Bosscher <steven@gcc.gnu.org>
28759
28760 * cfgbuild.c (inside_basic_block_p): Use JUMP_TABLE_DATA_P in lieu
28761 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
28762 (control_flow_insn_p): Likewise.
28763 * cfgrtl.c (duplicate_insn_chain): Likewise.
28764 * final.c (get_attr_length_1): Likewise.
28765 (shorten_branches): Likewise.
28766 (final_scan_insn): Likewise.
28767 * function.c (instantiate_virtual_regs): Likewise.
28768 * gcse.c (insert_insn_end_basic_block): Likewise.
28769 * ira-costs.c (scan_one_insn): Likewise.
28770 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
28771 * lra.c (check_rtl): Likewise.
28772 * reload1.c (elimination_costs_in_insn): Likewise.
28773 * reorg.c (follow_jumps): Likewise.
28774
28775 * config/arm/arm.c (is_jump_table): Use JUMP_TABLE_DATA_P in lieu
28776 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
28777 (thumb_far_jump_used_p): Likewise.
28778 * config/bfin/bfin.c (workaround_rts_anomaly): Likewise.
28779 (workaround_speculation): Likewise.
28780 (add_sched_insns_for_speculation): Likewise.
28781 * config/c6x/c6x.c (reorg_emit_nops): Likewise.
28782 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
28783 (frv_for_each_packet): Likewise.
28784 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Likewise.
28785 * config/ia64/ia64.c (emit_all_insn_group_barriers): Likewise.
28786 (final_emit_insn_group_barriers): Likewise.
28787 * config/m32r/m32r.c (m32r_is_insn): Likewise.
28788 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
28789 (mips16_insn_length): Likewise.
28790 * config/pa/pa.c (pa_reorg): Likewise.
28791 (pa_combine_instructions): Likewise.
28792 * config/rs6000/rs6000.c (rs6000_invalid_within_doloop): Likewise.
28793 * config/sh/sh.c (fixup_addr_diff_vecs): Likewise.
28794 (sh_reorg): Likewise.
28795 (split_branches): Likewise.
28796 * config/spu/spu.c (get_branch_target): Likewise.
28797
28798 * config/s390/s390.c (s390_chunkify_start): Simplify logic using
28799 JUMP_TABLE_DATA_P.
28800
78e8d5ff 288012013-03-29 Kirill Yukhin <kirill.yukhin@intel.com>
28802
51bad497 28803 * config/i386/avx2intrin.h (_mm256_broadcastsi128_si256):
78e8d5ff 28804 Fix declaration name.
28805
31d49894 288062013-03-28 Lawrence Crowl <crowl@google.com>
28807
28808 * graphds.h (struct graph.indicies): Remove unused.
28809 * graphite-poly.h (struct graph.original_pddrs): Remove unused.
28810 (SCOP_ORIGINAL_PDDRS): Remove unused.
28811 * sese.h (extern insert_loop_close_phis): Removed unused.
28812 (extern insert_guard_phis): Removed unused.
28813 (extern ivtype_map_elt_info): Removed unused.
28814 (new_ivtype_map_elt): Removed unused.
28815 * sese.c (ivtype_map_elt_info): Removed unused.
28816
c7d89805 288172013-03-28 Lawrence Crowl <crowl@google.com>
28818
28819 * Makefile.in: Add several missing include dependences.
28820 (DUMPFILE_H): New.
28821 (test-dump.o): New. This object is not added to any executable,
28822 but is present for ad-hoc testing.
28823 * bitmap.c
28824 (debug (const bitmap_head_def &)): New.
28825 (debug (const bitmap_head_def *)): New.
28826 * bitmap.h
28827 (extern debug (const bitmap_head_def &)): New.
28828 (extern debug (const bitmap_head_def *)): New.
28829 * cfg.c
28830 (debug (edge_def &)): New.
28831 (debug (edge_def *)): New.
28832 * cfghooks.c
28833 (debug (basic_block_def &)): New.
28834 (debug (basic_block_def *)): New.
28835 * dumpfile.h
28836 (dump_node (const_tree, int, FILE *)): Correct source file.
28837 * dwarf2out.c
28838 (debug (die_struct &)): New.
28839 (debug (die_struct *)): New.
28840 * dwarf2out.h
28841 (extern debug (die_struct &)): New.
28842 (extern debug (die_struct *)): New.
28843 * gimple-pretty-print.c
28844 (debug (gimple_statement_d &)): New.
28845 (debug (gimple_statement_d *)): New.
28846 * gimple-pretty-print.h
28847 (extern debug (gimple_statement_d &)): New.
28848 (extern debug (gimple_statement_d *)): New.
28849 * ira-build.c
28850 (debug (ira_allocno_copy &)): New.
28851 (debug (ira_allocno_copy *)): New.
28852 (debug (ira_allocno &)): New.
28853 (debug (ira_allocno *)): New.
28854 * ira-int.h
28855 (extern debug (ira_allocno_copy &)): New.
28856 (extern debug (ira_allocno_copy *)): New.
28857 (extern debug (ira_allocno &)): New.
28858 (extern debug (ira_allocno *)): New.
28859 * ira-lives.c
28860 (debug (live_range &)): New.
28861 (debug (live_range *)): New.
28862 * lra-int.h
28863 (debug (lra_live_range &)): New.
28864 (debug (lra_live_range *)): New.
28865 * lra-lives.c
28866 (debug (lra_live_range &)): New.
28867 (debug (lra_live_range *)): New.
28868 * omega.c
28869 (debug (omega_pb_d &)): New.
28870 (debug (omega_pb_d *)): New.
28871 * omega.h
28872 (extern debug (omega_pb_d &)): New.
28873 (extern debug (omega_pb_d *)): New.
28874 * print-rtl.c
28875 (debug (const rtx_def &)): New.
28876 (debug (const rtx_def *)): New.
28877 * print-tree.c
28878 (debug_tree (tree): Move within file.
28879 (debug_raw (const tree_node &)): New.
28880 (debug_raw (const tree_node *)): New.
28881 (dump_tree_via_hooks (const tree_node *, int)): New.
28882 (debug (const tree_node &)): New.
28883 (debug (const tree_node *)): New.
28884 (debug_verbose (const tree_node &)): New.
28885 (debug_verbose (const tree_node *)): New.
28886 (debug_head (const tree_node &)): New.
28887 (debug_head (const tree_node *)): New.
28888 (debug_body (const tree_node &)): New.
28889 (debug_body (const tree_node *)): New.
28890 (debug_vec_tree (tree): Move and reimplement in terms of dump.
28891 (debug (vec<tree, va_gc> &)): New.
28892 (debug (vec<tree, va_gc> *)): New.
28893 * rtl.h
28894 (extern debug (const rtx_def &)): New.
28895 (extern debug (const rtx_def *)): New.
28896 * sbitmap.c
28897 (debug_raw (simple_bitmap_def &)): New.
28898 (debug_raw (simple_bitmap_def *)): New.
28899 (debug (simple_bitmap_def &)): New.
28900 (debug (simple_bitmap_def *)): New.
28901 * sbitmap.h
28902 (extern debug (simple_bitmap_def &)): New.
28903 (extern debug (simple_bitmap_def *)): New.
28904 (extern debug_raw (simple_bitmap_def &)): New.
28905 (extern debug_raw (simple_bitmap_def *)): New.
28906 * sel-sched-dump.c
28907 (debug (vinsn_def &)): New.
28908 (debug (vinsn_def *)): New.
28909 (debug_verbose (vinsn_def &)): New.
28910 (debug_verbose (vinsn_def *)): New.
28911 (debug (expr_def &)): New.
28912 (debug (expr_def *)): New.
28913 (debug_verbose (expr_def &)): New.
28914 (debug_verbose (expr_def *)): New.
28915 (debug (vec<rtx> &)): New.
28916 (debug (vec<rtx> *)): New.
28917 * sel-sched-dump.h
28918 (extern debug (vinsn_def &)): New.
28919 (extern debug (vinsn_def *)): New.
28920 (extern debug_verbose (vinsn_def &)): New.
28921 (extern debug_verbose (vinsn_def *)): New.
28922 (extern debug (expr_def &)): New.
28923 (extern debug (expr_def *)): New.
28924 (extern debug_verbose (expr_def &)): New.
28925 (extern debug_verbose (expr_def *)): New.
28926 (extern debug (vec<rtx> &)): New.
28927 (extern debug (vec<rtx> *)): New.
28928 * sel-sched-ir.h
28929 (_list_iter_cond_expr): Make inline instead of static.
28930 * sreal.c
28931 (debug (sreal &)): New.
28932 (debug (sreal *)): New.
28933 * sreal.h
28934 (extern debug (sreal &)): New.
28935 (extern debug (sreal *)): New.
28936 * tree.h
28937 (extern debug_raw (const tree_node &)): New.
28938 (extern debug_raw (const tree_node *)): New.
28939 (extern debug (const tree_node &)): New.
28940 (extern debug (const tree_node *)): New.
28941 (extern debug_verbose (const tree_node &)): New.
28942 (extern debug_verbose (const tree_node *)): New.
28943 (extern debug_head (const tree_node &)): New.
28944 (extern debug_head (const tree_node *)): New.
28945 (extern debug_body (const tree_node &)): New.
28946 (extern debug_body (const tree_node *)): New.
28947 (extern debug (vec<tree, va_gc> &)): New.
28948 (extern debug (vec<tree, va_gc> *)): New.
28949 * tree-cfg.c
28950 (debug (struct loop &)): New.
28951 (debug (struct loop *)): New.
28952 (debug_verbose (struct loop &)): New.
28953 (debug_verbose (struct loop *)): New.
28954 * tree-dump.c: Add header dependence.
28955 * tree-flow.h
28956 (extern debug (struct loop &)): New.
28957 (extern debug (struct loop *)): New.
28958 (extern debug_verbose (struct loop &)): New.
28959 (extern debug_verbose (struct loop *)): New.
28960 * tree-data-ref.c
28961 (debug (data_reference &)): New.
28962 (debug (data_reference *)): New.
28963 (debug (vec<data_reference_p> &)): New.
28964 (debug (vec<data_reference_p> *)): New.
28965 (debug (vec<ddr_p> &)): New.
28966 (debug (vec<ddr_p> *)): New.
28967 * tree-data-ref.h
28968 (extern debug (data_reference &)): New.
28969 (extern debug (data_reference *)): New.
28970 (extern debug (vec<data_reference_p> &)): New.
28971 (extern debug (vec<data_reference_p> *)): New.
28972 (extern debug (vec<ddr_p> &)): New.
28973 (extern debug (vec<ddr_p> *)): New.
28974 * tree-ssa-alias.c
28975 (debug (pt_solution &)): New.
28976 (debug (pt_solution *)): New.
28977 * tree-ssa-alias.h
28978 (extern debug (pt_solution &)): New.
28979 (extern debug (pt_solution *)): New.
28980 * tree-ssa-alias.c
28981 (debug (_var_map &)): New.
28982 (debug (_var_map *)): New.
28983 (debug (tree_live_info_d &)): New.
28984 (debug (tree_live_info_d *)): New.
28985 * tree-ssa-alias.h
28986 (extern debug (_var_map &)): New.
28987 (extern debug (_var_map *)): New.
28988 (extern debug (tree_live_info_d &)): New.
28989 (extern debug (tree_live_info_d *)): New.
28990
ed8b1c1f 289912013-03-28 Jan Hubicka <jh@suse.cz>
28992
28993 * lto-cgraph.c (merge_profile_summaries): Fix overflows.
28994
0d62a093 289952013-03-28 Ian Bolton <ian.bolton@arm.com>
28996
28997 * config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame
28998 record only when desired or required.
28999
cea39eb6 290002013-03-28 Uros Bizjak <ubizjak@gmail.com>
29001
29002 * config/i386/i386.md (*vec_extract2vdi_1): Merge with
29003 *vec_extractv2di_1_rex64. Use x64 isa attribute.
29004
8f028904 290052013-03-28 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
7f4f914a 29006
29007 * config/aarch64/aarch64.md (*and<mode>3_compare0): New pattern.
29008 (*andsi3_compare0_uxtw): New pattern.
29009 (*and_<SHIFT:optab><mode>3_compare0): New pattern.
29010 (*and_<SHIFT:optab>si3_compare0_uxtw): New pattern.
29011
fc44a215 290122013-03-28 Jan Hubicka <jh@suse.cz>
29013
29014 * data-streamer-in.c (streamer_read_gcov_count): New function.
29015 * gimple-streamer-out.c: Include value-prof.h.
29016 (output_gimple_stmt): Output histogram.
29017 (output_bb): Use streamer_write_gcov_count.
29018 * value-prof.c: Include data-streamer.h
29019 (dump_histogram_value): Add HIST_TYPE_MAX.
29020 (stream_out_histogram_value): New function.
29021 (stream_in_histogram_value): New function.
29022 * value-prof.h (enum hist_type): Add HIST_TYPE_MAX.
29023 (stream_out_histogram_value, stream_in_histogram_value): Declare.
29024 * data-streamer-out.c (streamer_write_gcov_count): New function.
29025 (streamer_write_gcov_count_stream): New function.
29026 * lto-cgraph.c (lto_output_edge): Update counter streaming.
29027 (lto_output_node): Likewise.
29028 (input_node, input_edge): Likewise.
29029 * lto-streamer-out.c (output_cfg): Update streaming.
29030 * lto-streamer-in.c (input_cfg): Likewise.
29031 * data-streamer.h (streamer_write_gcov_count,
29032 streamer_write_gcov_count_stream, streamer_read_gcov_count): Declare.
29033 * gimple-streamer-in.c: Include value-prof.h
29034 (input_gimple_stmt): Input histograms.
29035 (input_bb): Update profile streaming.
29036
7d71feb3 290372013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
64a8b204 29038
8f028904 29039 * genmodes.c (emit_max_int): New function.
f9cb58ae 29040 (emit_insn_modes_h): Added call to emit_max_function.
51bad497 29041 * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_INT, MAX_BITSIZE_MODE_ANY_MODE):
29042 Added doc.
f9cb58ae 29043 * machmode.def: Fixed comment.
fc44a215 29044
7d71feb3 290452013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
f9cb58ae 29046
29047 * combine.c (try_combine): Removed useless assert.
64a8b204 29048 * cselib.c (rtx_equal_for_cselib_1): Removed unnecessary parens.
29049
43d7caca 290502013-03-28 Marek Polacek <polacek@redhat.com>
29051 Richard Biener <rguenther@suse.de>
29052
29053 PR tree-optimization/56695
29054 * tree-vect-stmts.c (vectorizable_condition): Unconditionally
29055 build signed result of a vector comparison.
29056 * tree-cfg.c (verify_gimple_comparison): Check that a result
29057 of a vector comparison has signed type.
29058
8f3e4987 290592013-03-28 Richard Biener <rguenther@suse.de>
29060
29061 PR tree-optimization/37021
29062 * tree-vect-slp.c (vect_build_slp_tree): When not unrolling
29063 do not restrict gaps between groups.
29064 * tree-vect-stmts.c (vectorizable_load): Properly account for
29065 a gap between groups.
29066
5b0d71ce 290672013-03-28 Eric Botcazou <ebotcazou@adacore.com>
29068
29069 * toplev.c (process_options): Do not disable -fomit-frame-pointer on a
29070 general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS
29071 is not enabled.
29072
886c5e35 290732013-03-27 Gerald Pfeifer <gerald@pfeifer.com>
29074
29075 * doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual.
29076 * doc/extend.texi (Named Address Spaces): Ditto.
29077 (Variable Attributes): Ditto.
29078
8f3115a2 290792013-03-27 Kai Tietz <ktietz@redhat.com>
29080
10b0ba24 29081 * config.build: Add support for cygwin x64 target.
29082 * config.gcc: Likewise.
29083 * config.host: Likewise.
29084 * configure.ac: Likewise
29085 * configure: Regenerated.
8f3115a2 29086
5f7f04d8 290872013-03-27 Kai Tietz <ktietz@redhat.com>
cb8160ad 29088
29089 * config/i386/cygwin-stdint.h: Add support for cygwin x64 target.
29090 * config/i386/t-cygwin-w64: New file.
29091 * config/i386/cygwin-w64.h: New file.
29092 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Extend
29093 and add support for x64-cygwin target.
29094 (CPP_SPEC): Likewise.
29095 (CXX_WRAP_SPEC_LIST): Undefine before define.
29096 (LIBGCJ_SONAME): Use 15 as version.
29097
6c9b05aa 290982013-03-27 Richard Biener <rguenther@suse.de>
29099
29100 PR tree-optimization/56716
29101 * tree-ssa-structalias.c (perform_var_substitution): Adjust
29102 dumping for ref nodes.
29103
4f0c9cf2 291042013-03-27 Martin Jambor <mjambor@suse.cz>
29105
29106 PR tree-optimization/55334
29107 * ipa-cp.c (initialize_node_lattices): Allow IPA-CP through and to
29108 restricted pointers to arrays.
29109
e79e977d 291102013-03-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
29111
29112 * Makefile.in (.SUFFIXES): Add .cc.
29113 (.c.o): Apply same recipe for implicit rule .cc.o.
29114
f837b1f7 291152013-03-27 Richard Biener <rguenther@suse.de>
29116
29117 PR tree-optimization/37021
29118 * tree-vect-data-refs.c (vect_check_strided_load): Allow
29119 REALPART/IMAGPART_EXPRs around the supported refs.
29120 * tree-ssa-structalias.c (find_func_aliases): Assume that
29121 floating-point values are not used to transfer pointers.
29122
df9f2e40 291232013-03-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
29124
e33c5592 29125 * target.def (TARGET_HAS_IFUNC_P): New target hook.
29126 * doc/tm.texi.in (TARGET_HAS_IFUNC_P): New.
29127 * doc/tm.texi: Regenerate.
29128 * targhooks.h (default_has_ifunc_p): New.
29129 * targhooks.c (default_has_ifunc_p): Ditto.
29130 * config/linux-protos.h: New file.
29131 * config/linux-android.h (TARGET_HAS_IFUNC_P): Using version of this
29132 hook for linux which disables support of indirect functions in android.
29133 * config/linux-android.c: New file.
29134 * config/t-linux-android.c: Ditto.
29135 * config.gcc: Added new object file linux-android.o.
29136 * config/i386/i386.c (ix86_get_function_versions_dispatcher):
df9f2e40 29137 Using TARGET_HAS_IFUNC hook instead of HAVE_GNU_INDIRECT_FUNCTION.
e33c5592 29138 * varasm.c (do_assemble_alias): Likewise.
df9f2e40 29139 * configure.ac: Define HAVE_GNU_INDIRECT_FUNCTION as zero if the target
29140 doesn't support indirect functions.
29141 * configure: Regenerate.
29142
d18af62e 291432013-03-27 Bin Cheng <bin.cheng@arm.com>
29144
29145 PR target/56102
29146 * config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix
29147 rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with
29148 mult-word mode.
29149
2e9f00a3 291502013-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
29151
29152 * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
29153
6ee84d16 291542013-03-27 Terry Guo <terry.guo@arm.com>
29155
29156 * config/arm/arm-cores.def: Added core cortex-r7.
29157 * config/arm/arm-tune.md: Regenerated.
29158 * config/arm/arm-tables.opt: Regenerated.
29159 * doc/invoke.texi: Added entry for core cortex-r7.
29160
9f1b21e1 291612013-03-27 Walter Lee <walt@tilera.com>
29162
29163 * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid
29164 double-decrement of next_scratch_regno.
29165
21743daa 291662013-03-27 Walter Lee <walt@tilera.com>
29167
7946a1e8 29168 * config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on
21743daa 29169 input operands.
29170 (insn_v1mulus): Ditto.
29171 (insn_v2muls): Ditto.
29172
d7c3902f 291732013-03-27 Walter Lee <walt@tilera.com>
29174
7d71feb3 29175 * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete extra tab.
d7c3902f 29176 (ASM_OUTPUT_ADDR_DIFF_ELT): Ditto.
29177
cd002190 291782013-03-27 Walter Lee <walt@tilera.com>
29179
7d71feb3 29180 * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr.
cd002190 29181 (*sibcall_value): Ditto.
29182
ddff9023 291832013-03-27 Walter Lee <walt@tilera.com>
29184
29185 * config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ...
29186 (insn_mnz_v8qi): ... this ...
29187 (insn_mnz_v4hi): ... and this. Replace (const_int 0) with the
29188 vector equivalent.
29189 (insn_v<n>mnz): Replaced by ...
29190 (insn_v1mnz): ... this ...
29191 (insn_v2mnz): ... and this. Replace (const_int 0) with the vector
29192 equivalent.
29193 (insn_mz_<mode>): Replaced by ...
29194 (insn_mz_v8qi): ... this ...
29195 (insn_mz_v4hi): ... and this. Replace (const_int 0) with the
29196 vector equivalent.
29197 (insn_v<n>mz): Replaced by ...
29198 (insn_v1mz): ... this ...
29199 (insn_v2mz): ... and this. Replace (const_int 0) with the vector
29200 equivalent.
29201
79c96309 292022013-03-26 Eric Botcazou <ebotcazou@adacore.com>
29203
29204 * doc/invoke.texi (SPARC options): Remove -mlittle-endian.
29205
b48eb844 292062013-03-26 Roland McGrath <mcgrathr@google.com>
29207
29208 * config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather
29209 than fprintf with a non-constant, non-format string.
29210
ee9e7384 292112013-03-26 Uros Bizjak <ubizjak@gmail.com>
29212
29213 * config/i386/i386.md (*cmpqi_ext_1): Merge with *cmpqi_ext_1_rex64
29214 using nox64 isa attribute. Use nonimmediate_x86nomem_operand as
29215 operand 0 predicate.
29216 (*cmpqi_ext_3): Merge with *cmpqi_ext_3_rex64 using nox64 isa
29217 attribute. Use general_x64nomem_operand as operand 1 predicate.
29218 (*movqi_extv_1): Merge with *movqi_extv_1_rex64 using nox64 isa
29219 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
29220 (*movqi_extzv_2): Merge with *movqi_extzv_2_rex64 using nox64 isa
29221 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
29222 (mov<mode>_insv_1): Remove expander. Merge insn with
29223 movsi_insv_1 using SWI48 mode iterator and nox64 isa attribute.
29224 Use general_x64nomem_operand as operand 1 predicate.
29225 (addqi_ext_1): Merge with *addqi_ext_1_rex64 using nox64 isa attribute.
29226 (*testqi_ext_1): Merge with *testqi_ext_1_rex64 using nox64 isa
29227 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
29228 (*andqi_ext_1): Merge with *andqi_ext_1_rex64 using nox64 isa
29229 attribute. Use nonimmediate_x64nomem_operand as operand 2 predicate.
29230 (*<code>qi_ext_1): Merge with *<code>qi_ext_1_rex64 using nox64 isa
29231 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
29232 (*xorqi_cc_ext_1): Merge with *xorqi_cc_ext_1_rex64 using nox64
29233 isa attribute. Use general_x64nomem_operand as operand 2 predicate.
29234 * config/i386/predicates.md (nonimmediate_x64nomem_operand): New.
29235 (general_x64nomem_operand): Ditto.
29236
57c8b8f0 292372013-03-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
2c4fdad4 29238
29239 * config/rtems.opt: Add -pthread option.
29240
5abc99e4 292412013-03-26 Richard Biener <rguenther@suse.de>
29242
ee9e7384 29243 * alias.c (find_base_term): Avoid redundant and not used recursion.
29244 (base_alias_check): Get the initial base term from the caller.
5abc99e4 29245 (true_dependence_1): Compute and pass base terms to base_alias_check.
29246 (write_dependence_p): Likewise.
29247 (may_alias_p): Likewise.
29248
df67a123 292492013-03-26 Sofiane Naci <sofiane.naci@arm.com>
29250
29251 * config/aarch64/aarch64.c (aarch64_classify_address): Support
29252 PC-relative load in SI modes and above only.
29253
9d4b6482 292542013-03-26 Xinyu Qi <xyqi@marvell.com>
29255
29256 * config/arm/arm.h (FIRST_IWMMXT_GR_REGNUM): Add comment.
8f028904 29257 * config/arm/iwmmxt.md (WCGR0): Update.
29258 (WCGR1, WCGR2, WCGR3): Likewise.
9d4b6482 29259
c8244d17 292602013-03-26 Uros Bizjak <ubizjak@gmail.com>
29261
29262 * config/i386/i386.md (*movdfcc_1): Merge with *movdfcc_1_rex64.
29263 Use x64 and nox64 isa attributes.
29264
9eec20bf 292652013-03-26 Richard Biener <rguenther@suse.de>
29266
29267 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
29268 alignment computations and rely on get_object_alignment_1
29269 for the !TYPE_P case.
29270 Commonize DECL/COMPONENT_REF handling in the ARRAY_REF path.
29271
684c0f06 292722013-03-26 Walter Lee <walt@tilera.com>
29273
29274 * config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define.
29275 * config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define.
29276
96a1fa3a 292772013-03-25 Jeff Law <law@redhat.com>
99db618c 29278
8f028904 29279 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Add missing
29280 check for INTEGRAL_TYPE_P that was missing due to checking in
96a1fa3a 29281 wrong version of prior patch.
29282
60cae6e1 292832013-03-25 Walter Lee <walt@tilera.com>
29284
29285 * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add
29286 TILEGX_INSN_SHUFFLEBYTES1.
29287 * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for
29288 shufflebytes1.
29289 (tilegx_builtins): Ditto.
29290 * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern.
29291
a116add9 292922013-03-25 Walter Lee <walt@tilera.com>
29293
29294 * config/tilegx/tilegx.md (floatsisf2): New pattern.
60cae6e1 29295 (floatunssisf2): New pattern.
29296 (floatsidf2): New pattern.
29297 (floatunssidf2): New pattern.
a116add9 29298
19f27a0c 292992013-03-25 Walter Lee <walt@tilera.com>
29300
29301 * config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline
29302 tests for constraint J, K, N, P.
29303
b429d641 293042013-03-25 Walter Lee <walt@tilera.com>
29305
29306 * config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format):
29307 Use indirect/pcrel encoding.
29308 * config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format):
29309 Ditto.
29310
14844884 293112013-03-25 Steve Ellcey <sellcey@mips.com>
29312
29313 * config/mips/mmips-cpus.def (74kc, 74kf2_1, 74kf, 74kf, 74kf1_1,
29314 74kfx, 74kx, 74kf3_2): Add PTF_AVOID_IMADD.
29315 * config/mips/mips.c (mips_option_override): Set IMADD default.
29316 * config/mips/mips.h (PTF_AVOID_IMADD): New.
29317 (ISA_HAS_MADD_MSUB): Remove MIPS16 check.
29318 (GENERATE_MADD_MSUB): Remove TUNE_74K check, add MIPS16 check.
29319 * config/mips/mips.md (mimadd): New flag for integer madd/msub.
29320 * doc/invoke.texi (-mimadd/-mno-imadd): New.
29321
5aa24950 293222013-03-25 Jeff Law <law@redhat.com>
29323
29324 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Rework
29325 slightly to avoid creating and folding useless trees. Simplify
29326 slightly by restricting to INTEGER_CSTs and using int_fits_type_p.
29327
c7222732 293282013-03-25 Uros Bizjak <ubizjak@gmail.com>
29329
29330 * config/i386/i386.md (*zero_extendsidi2): Merge with
29331 *zero_extendsidi2_rex64. Use x64 and nox64 isa attributes.
29332 * config/i386/predicates.md (x86_64_zext_operand): Rename from
29333 x86_64_zext_general_operand. Use nonimmediate_operand on 32bit
29334 targets. Clarify comment.
29335
30a240df 293362013-03-25 Martin Jambor <mjambor@suse.cz>
29337
29338 * ipa-prop.c (ipa_write_jump_function): Stream simple and aritmetic
29339 pass-through jump functions differently.
29340 (ipa_read_jump_function): Likewise. Also use setter functions to set
29341 up jump functions.
29342
265c4eb2 293432013-03-25 Martin Jambor <mjambor@suse.cz>
29344
29345 * ipa-cp.c (ipa_get_indirect_edge_target): Renamed to
29346 ipa_get_indirect_edge_target_1, added parameter agg_reps and ability to
29347 process it.
29348 (ipa_get_indirect_edge_target): New function.
29349 (devirtualization_time_bonus): New parameter known_aggs, pass it to
29350 ipa_get_indirect_edge_target. Update all callers.
29351 (ipcp_discover_new_direct_edges): New parameter aggvals. Pass it to
29352 ipa_get_indirect_edge_target_1 instead of calling
29353 ipa_get_indirect_edge_target.
29354 (create_specialized_node): Pass aggvlas to
29355 ipcp_discover_new_direct_edges.
29356
91cb50d2 293572013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29358
29359 * config/arm/arm.md (f_sels, f_seld): New types.
29360 (*cmov<mode>): New pattern.
29361 * config/arm/predicates.md (arm_vsel_comparison_operator): New
29362 predicate.
29363
1ff5fe3b 293642013-03-25 Kai Tietz <ktietz@redhat.com>
29365
29366 * config/i386/xm-mingw32.h (__USE_MINGW_ANSI_STDIO): Enable
29367 POSIX-printf for mingw-hosted builds.
29368
0565e0b5 293692013-03-25 Richard Biener <rguenther@suse.de>
29370
29371 PR middle-end/56694
29372 * tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the
29373 must-not-throw stmt location.
29374
47d66364 293752013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
29376
29377 * config/arm/arm.c (arm_emit_load_exclusive): Add acq parameter.
29378 Emit load-acquire versions when acq is true.
29379 (arm_emit_store_exclusive): Add rel parameter.
29380 Emit store-release versions when rel is true.
29381 (arm_split_compare_and_swap): Use acquire-release instructions
29382 instead.
29383 of barriers when appropriate.
29384 (arm_split_atomic_op): Likewise.
29385 * config/arm/arm.h (TARGET_HAVE_LDACQ): New macro.
29386 * config/arm/unspecs.md (VUNSPEC_LAX): New unspec.
29387 (VUNSPEC_SLX): Likewise.
29388 (VUNSPEC_LDA): Likewise.
29389 (VUNSPEC_STL): Likewise.
29390 * config/arm/sync.md (atomic_load<mode>): New pattern.
29391 (atomic_store<mode>): Likewise.
29392 (arm_load_acquire_exclusive<mode>): Likewise.
29393 (arm_load_acquire_exclusivesi): Likewise.
29394 (arm_load_acquire_exclusivedi): Likewise.
29395 (arm_store_release_exclusive<mode>): Likewise.
29396
087a99ba 293972013-03-25 Catherine Moore <clm@codesourcery.com>
29398
29399 * config/mips/constraints.md (u, Udb7 Uead, Uean, Uesp, Uib3,
29400 Uuw6, Usb4, ZS, ZT, ZU, ZV, ZW): New constraints.
29401 * config/mip/predicates.md (lwsp_swsp_operand,
29402 lw16_sw16_operand, lhu16_sh16_operand, lbu16_operand,
29403 sb16_operand, db4_operand, db7_operand, ib3_operand,
29404 sb4_operand, ub4_operand, uh4_operand, uw4_operand,
29405 uw5_operand, uw6_operand, addiur2_operand, addiusp_operand,
29406 andi16_operand): New predicates.
29407 * config/mips/mips.md (compression): New attribute.
29408 (enabled): New attribute.
29409 (length): Consider compression in computing length.
29410 (shift_compression): New code attribute.
29411 (*add<mode>3): New operands. Record compression.
29412 (sub<mode>3): Likewise.
29413 (one_cmpl<mode>2): Likewise.
29414 (*and<mode>3): Likewise.
29415 (*ior<mode>3): Likewise.
29416 (unnamed pattern for xor): Likewise.
29417 (*zero_extend<SHORT:mode><GPR:mode>2): Likewise.
29418 (*<optab><mode>3): Likewise.
29419 (*mov<mode>_internal: Likewise.
29420 * config/mips/mips-protos.h (mips_signed_immediate_p): New.
29421 (mips_unsigned_immediate_p): New.
29422 (umips_lwsp_swsp_address_p): New.
29423 (m16_based_address_p): New.
29424 * config/mips/mips-protos.h (mips_signed_immediate_p): New prototype.
29425 (mips_unsigned_immediate_p): New prototype.
29426 (lwsp_swsp_address_p): New prototype.
29427 (m16_based_address_p): New prototype.
29428 * config/mips/mips.c (mips_unsigned_immediate_p): New function.
29429 (mips_signed_immediate_p): New function.
29430 (m16_based_address_p): New function.
29431 (lwsp_swsp_address_p): New function.
29432 (mips_print_operand_punctuation): Recognize short delay slot insns
29433 for microMIPS.add<mode>3"
29434
2f17f336 294352013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9793b57b 29436
2f17f336 29437 PR target/56720
29438 * config/arm/iterators.md (v_cmp_result): New mode attribute.
29439 * config/arm/neon.md (vcond<mode><mode>): Handle unordered cases.
29440
d5459a15 294412013-03-25 Richard Biener <rguenther@suse.de>
29442
29443 PR tree-optimization/56689
29444 * tree-vrp.c (execute_vrp): Mark loops for fixup if we removed
29445 any edge.
29446
feba4360 294472013-03-25 Richard Biener <rguenther@suse.de>
29448
29449 * tree-ssa-loop-im.c (struct mem_ref): Use bitmap_head instead
29450 of bitmap.
29451 (memory_references): Likewise.
29452 (outermost_indep_loop, mem_ref_alloc, mark_ref_stored,
29453 gather_mem_refs_stmt, record_dep_loop, ref_indep_loop_p_1,
29454 ref_indep_loop_p_2, find_refs_for_sm): Adjust.
29455 (gather_mem_refs_in_loops): Fold into ...
29456 (analyze_memory_references): ... this. Move initialization
29457 to tree_ssa_lim_initialize.
29458 (fill_always_executed_in): Rename to ...
29459 (fill_always_executed_in_1): ... this.
29460 (fill_always_executed_in): Move contains_call computation to
29461 this new function from ...
29462 (tree_ssa_lim_initialize): ... here.
29463 (tree_ssa_lim): Call fill_always_executed_in.
29464
7777a939 294652013-03-25 Eric Botcazou <ebotcazou@adacore.com>
29466
29467 * postreload.c (reload_combine): Fix code detecting returns.
29468
96129913 294692013-03-25 Eric Botcazou <ebotcazou@adacore.com>
29470
29471 * function.c (emit_use_return_register_into_block): On cc0 targets,
29472 do not emit the sequence between cc0 setter and user.
29473
ed5a7307 294742013-03-25 Kai Tietz <ktietz@redhat.com>
29475
96129913 29476 * config/i386/predicates.md (local_symbolic_operand): Interpret
29477 dll-imported symbols as none-local.
ed5a7307 29478
a2c22c0d 294792013-03-25 Richard Biener <rguenther@suse.de>
29480
29481 * tree-ssa-loop-im.c (struct depend): Remove.
29482 (struct lim_aux_data): Make depends a vec of gimples.
29483 (free_lim_aux_data): Adjust.
29484 (add_dependency): Likewise.
29485 (set_level): Likewise.
29486
10836fcc 294872013-03-25 Richard Biener <rguenther@suse.de>
29488
29489 PR middle-end/56434
29490 * calls.c (expand_call): Use MALLOC_ABI_ALIGNMENT to annotate
29491 the pointer returned by calls with ECF_MALLOC set.
29492
1d61c5cb 294932013-03-24 Uros Bizjak <ubizjak@gmail.com>
29494
83b62e99 29495 * config/i386/mmx.md (mov<mode>): Add ?!Ym,r and r,?!Ym alternatives.
29496
294972013-03-24 Uros Bizjak <ubizjak@gmail.com>
29498
29499 * config/i386/mmx.md (mov<mode>): Merge with movv2sf expander
1d61c5cb 29500 using MMXMODE mode iterator.
29501 (*move<mode>_internal): Merge with *movv2sf_internal and
29502 *movv2sf_internal_rex64 using MMXMODE mode iterator.
29503
690973a8 295042013-03-23 Steven Bosscher <steven@gcc.gnu.org>
29505
37495d69 29506 * gcse.c (oprs_unchanged_p): Respect flag_gcse_lm.
29507 (record_last_mem_set_info): Likewise.
29508
690973a8 29509 * df-core.c (rest_of_handle_df_initialize): Use XCNEWVEC instead
29510 of XNEWVEC followed by memset.
29511 (df_worklist_dataflow): Use XNEWVEC instead of xmalloc with a cast.
29512
aa90bb35 295132013-03-23 Steven Bosscher <steven@gcc.gnu.org>
29514
29515 * config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
29516 config/epiphany/epiphany.c, config/frv/frv.c, config/ia64/ia64.c,
29517 config/iq2000/iq2000.c, config/mcore/mcore.c, config/mep/mep.c,
29518 config/mmix/mmix.c, config/pa/pa.c, config/rs6000/rs6000.c,
29519 config/s390/s390.c, config/sparc/sparc.c, config/spu/spu.c,
29520 config/stormy16/stormy16.c, config/v850/v850.c, config/xtensa/xtensa.c,
29521 dwarf2out.c, hw-doloop.c, resource.c, rtl.h : Where applicable, use
29522 the predicates NOTE_P, NONJUMP_INSN_P, JUMP_P, CALL_P, LABEL_P, and
29523 BARRIER_P instead of GET_CODE.
29524
ada2d491 295252013-03-23 Eric Botcazou <ebotcazou@adacore.com>
29526
29527 * config/sparc/sparc.c (sparc_emit_probe_stack_range): Fix small
29528 inaccuracy in the probing code.
29529
29530 * config/sparc/sparc.md (ctrapsi4): Add predicate for operand #3.
29531 (ctrapdi4): Likewise.
29532
d8ef55fc 295332013-03-23 Eric Botcazou <ebotcazou@adacore.com>
29534
29535 * calls.c (expand_call): Add missing guard to code handling return
29536 of non-BLKmode structures in MSB.
29537 * function.c (expand_function_end): Likewise.
29538
32cf0798 295392013-03-23 Eric Botcazou <ebotcazou@adacore.com>
29540
29541 * combine.c (try_combine): Adjust comment. Do not add the set of
29542 insn #0 if the destination indirectly is set or dies in insn #2.
29543 Tidy up code to distribute a new note.
29544
dc624382 295452013-03-22 Uros Bizjak <ubizjak@gmail.com>
29546
29547 * config/i386/i386.md (*movdi_internal): Set prefix_rex attribute
29548 also for alternatives 16 and 17.
29549
76cfb9fa 295502013-03-22 Uros Bizjak <ubizjak@gmail.com>
29551
29552 * config/i386/sse.md (*mov<mode>_internal): Merge with
29553 *mov<mode>_internal_rex64. Use x64 and nox64 isa attributes.
29554 Emit insn template depending on type attribute. Use
29555 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
29556 movd instead of movq mnemonic for interunit moves. Rewrite mode
29557 attribute calculation. Remove unit attribute calculation.
29558 Set prefix attribute to maybe_vex for sselog1 and ssemov types.
29559 Set prefix_data16 attribute for DImode ssemov types.
29560 Use Ym instead of y for SSE-MMX conversion alternatives.
29561 Reorder operand constraints.
29562
f09c66e0 295632013-03-22 Steven Bosscher <steven@gcc.gnu.org>
29564
29565 * df.h (df_insn_delete): Adjust prototype.
29566 * emit-rtl.c (remove_insn): Pass a basic block to df_insn_delete
29567 and let it decide whether mark the basic block dirty.
29568 (set_insn_deleted): Only pass INSN_P insns to df_insn_delete.
29569 * df-scan.c (df_insn_info_delete): New helper function, split
29570 off from df_insn_delete.
29571 (df_scan_free_bb_info): Use it.
29572 (df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans):
29573 Likewise.
29574 (df_insn_delete): Likewise. Take insn rtx as argument. Verify
29575 that the insn is actually an insn and it has a non-NULL basic block.
29576 Do not mark basic block dirty if only deleting a DEBUG_INSN.
29577
c202575b 295782013-03-22 Richard Biener <rguenther@suse.de>
29579
29580 * tree-ssa-loop-im.c (struct mem_ref): Remove indep_ref and
29581 dep_ref members.
29582 (mem_ref_alloc): Do not allocate them.
29583 (refs_independent_p): Do not query or maintain a cache.
29584
111767fb 295852013-03-22 Richard Biener <rguenther@suse.de>
29586
29587 * tree-ssa-loop-im.c (memory_references): Drop all_refs_in_loop.
29588 (gather_mem_refs_in_loops): Do not compute it.
29589 (analyze_memory_references): Do not allocate it.
29590 (tree_ssa_lim_finalize): Do not free it.
29591 (for_all_locs_in_loop): Do not query all_refs_in_loop.
29592
cd828e36 295932013-03-22 Richard Biener <rguenther@suse.de>
29594
29595 * is-a.h (as_a): Use gcc_checking_assert.
76cfb9fa 29596
c6ed7a1a 295972013-03-22 Ian Bolton <ian.bolton@arm.com>
29598
29599 * config/aarch64/aarch64.c (aarch64_print_operand): New
29600 format specifier for printing a constant in hex.
29601 * config/aarch64/aarch64.md (insv_imm<mode>): Use the X
29602 format specifier for printing second operand.
29603
8f9829e8 296042013-03-22 Richard Biener <rguenther@suse.de>
29605
29606 * tree-ssa-loop-im.c (memory_references): Add refs_stored_in_loop
29607 bitmaps.
29608 (gather_mem_refs_in_loops): Perform store accumulation here.
29609 (create_vop_ref_mapping_loop): Remove.
29610 (create_vop_ref_mapping): Likewise.
29611 (analyze_memory_references): Initialize refs_stored_in_loop.
76cfb9fa 29612 (LOOP_DEP_BIT): New define to map to bits in (in)dep_loop bitmaps.
8f9829e8 29613 (record_indep_loop): Remove.
29614 (record_dep_loop): New function.
29615 (ref_indep_loop_p_1): Adjust to only walk over references
29616 in the loop, not its subloops.
29617 (ref_indep_loop_p): Rename to ...
29618 (ref_indep_loop_p_2): ... this and recurse over the loop tree,
29619 maintaining a more fine-grained cache.
29620 (ref_indep_loop_p): Wrap ref_indep_loop_p_2.
29621 (tree_ssa_lim_finalize): Free refs_stored_in_loop.
29622
5c8a8be3 296232013-03-22 Richard Biener <rguenther@suse.de>
29624
29625 * tree-ssa-loop-im.c (struct mem_ref_locs): Remove.
29626 (struct mem_ref): Make accesses_in_loop a vec of a vec of
29627 aggregate mem_ref_loc.
29628 (free_mem_ref_locs): Inline into ...
29629 (memref_free): ... this and adjust.
29630 (mem_ref_alloc): Adjust.
29631 (mem_ref_locs_alloc): Remove.
29632 (record_mem_ref_loc): Adjust.
29633 (get_all_locs_in_loop): Rewrite into ...
29634 (for_all_locs_in_loop): ... this iterator.
29635 (rewrite_mem_ref_loc): New functor.
29636 (rewrite_mem_refs): Use for_all_locs_in_loop.
29637 (sm_set_flag_if_changed): New functor.
29638 (execute_sm_if_changed_flag_set): Use for_all_locs_in_loop.
29639 (ref_always_accessed): New functor.
29640 (ref_always_accessed_p): Use for_all_locs_in_loop.
29641
7c3b431d 296422013-03-21 Marc Glisse <marc.glisse@inria.fr>
29643
29644 * tree-pass.h (PROP_gimple_lvec): New.
29645 * passes.c (dump_properties): Handle PROP_gimple_lvec.
29646 (init_optimization_passes): Move pass_lower_vector.
29647 * tree-vect-generic.c (gate_expand_vector_operations_ssa): Test
29648 PROP_gimple_lvec.
29649 (pass_lower_vector): Provide PROP_gimple_lvec.
29650 (pass_lower_vector_ssa): Likewise.
29651 * cfgexpand.c (pass_expand): Require PROP_gimple_lvec.
29652
0b436012 296532013-03-21 Mark Wielaard <mjw@redhat.com>
29654
29655 * dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.
29656
5c38eac8 296572013-03-21 Uros Bizjak <ubizjak@gmail.com>
29658
29659 * config/i386/i386.md (*movdi_internal): Disparage slightly
29660 all MMX moves to/from memory. Use Yi instead of x for SSE-MMX
29661 conversion alternatives.
29662
2c8b23a2 296632013-03-21 Jakub Jelinek <jakub@redhat.com>
29664
d9d1b0a4 29665 PR middle-end/48087
29666 * diagnostic.def (DK_WERROR): New kind.
29667 * diagnostic.h (werrorcount): Define.
29668 * diagnostic.c (diagnostic_report_diagnostic): For DK_WARNING
29669 promoted to DK_ERROR, increment DK_WERROR counter instead of
29670 DK_ERROR counter.
29671 * toplev.c (toplev_main): Call print_ignored_options even if
29672 just werrorcount is non-zero. Exit with FATAL_EXIT_CODE
29673 even if just werrorcount is non-zero.
29674
2c8b23a2 29675 PR debug/55608
29676 * dwarf2out.c (tree_add_const_value_attribute): Call ggc_free (array)
29677 on failure.
29678 (resolve_one_addr): Fail if referenced STRING_CST hasn't been written.
29679 (string_cst_pool_decl): New function.
29680 (optimize_one_addr_into_implicit_ptr): New function.
29681 (resolve_addr_in_expr): Optimize DWARF location expression
29682 DW_OP_addr DW_OP_stack_value where DW_OP_addr refers to some variable
29683 which doesn't live in memory, but has DW_AT_location or
29684 DW_AT_const_value, or refers to a string literal, into
29685 DW_OP_GNU_implicit_pointer.
29686 (optimize_location_into_implicit_ptr): New function.
29687 (resolve_addr): If removing DW_AT_location of a variable because
29688 it was DW_OP_addr of address of the variable, but the variable doesn't
29689 live in memory, try to emit const value attribute for the initializer.
29690
8ee286c8 296912013-03-21 Marc Glisse <marc.glisse@inria.fr>
29692
29693 * tree.h (VECTOR_TYPE_P): New macro.
29694 (VECTOR_INTEGER_TYPE_P, VECTOR_FLOAT_TYPE_P, FLOAT_TYPE_P,
29695 TYPE_MODE): Use it.
29696 * fold-const.c (fold_cond_expr_with_comparison): Use build_zero_cst.
29697 VEC_COND_EXPR cannot be lvalues.
29698 (fold_ternary_loc) <VEC_COND_EXPR>: Merge with the COND_EXPR case.
29699
d09e949c 297002013-03-21 Marc Glisse <marc.glisse@inria.fr>
29701
29702 * simplify-rtx.c (simplify_binary_operation_1) <VEC_CONCAT>:
29703 Restrict the transformation to equal modes.
29704
04911505 297052013-03-21 Richard Biener <rguenther@suse.de>
29706
29707 PR tree-optimization/39326
29708 * tree-ssa-loop-im.c (UNANALYZABLE_MEM_ID): New define.
29709 (MEM_ANALYZABLE): Adjust.
29710 (record_mem_ref_loc): Move bitmap ops ...
29711 (gather_mem_refs_stmt): ... here. Use the shared mem-ref for
29712 unanalyzable refs, do not record locations for it.
29713 (analyze_memory_references): Allocate ref zero as shared
29714 unanalyzable ref.
29715 (refs_independent_p): Do not test for unanalyzed mems here.
29716 (ref_indep_loop_p_1): Special-case disambiguation against
29717 the unanalyzed ref.
5c38eac8 29718 (ref_indep_loop_p): Assert we are not queried for the unanalyzed mem.
04911505 29719
b6779ddc 297202013-03-21 Christophe Lyon <christophe.lyon@linaro.org>
29721
29722 * config/arm/arm-protos.h (tune_params): Add
29723 prefer_neon_for_64bits field.
29724 * config/arm/arm.c (prefer_neon_for_64bits): New variable.
29725 (arm_slowmul_tune): Default prefer_neon_for_64bits to false.
29726 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
29727 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
29728 (arm_cortex_a15_tune, arm_cortex_a5_tune): Ditto.
29729 (arm_cortex_a9_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
29730 (arm_option_override): Handle -mneon-for-64bits new option.
29731 * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro.
29732 (prefer_neon_for_64bits): Declare new variable.
29733 * config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to
5c38eac8 29734 avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and nota8.
b6779ddc 29735 (arch_enabled): Handle new arch types. Remove support for onlya8
29736 and nota8.
29737 (one_cmpldi2): Use new arch names.
a1bd99a8 29738 (zero_extend<mode>di2, extend<mode>di2): Ditto.
b6779ddc 29739 * config/arm/arm.opt (mneon-for-64bits): Add option.
29740 * config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon)
29741 (anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use
29742 neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead
29743 of onlya8.
29744 * doc/invoke.texi (-mneon-for-64bits): Document.
29745
7894a3d9 297462013-03-21 Richard Biener <rguenther@suse.de>
29747
29748 PR tree-optimization/39326
29749 * tree-ssa-loop-im.c (bb_loop_postorder): New global static.
29750 (sort_bbs_in_loop_postorder_cmp): New function.
5c38eac8 29751 (gather_mem_refs_in_loops): Assign mem-ref IDs in loop postorder.
7894a3d9 29752
68f15e9d 297532013-03-21 Richard Biener <rguenther@suse.de>
29754
29755 * tree-vect-data-refs.c (vect_update_interleaving_chain): Remove.
29756 (vect_insert_into_interleaving_chain): Likewise.
29757 (vect_drs_dependent_in_basic_block): Inline ...
29758 (vect_slp_analyze_data_ref_dependence): ... here. New function,
29759 split out from ...
29760 (vect_analyze_data_ref_dependence): ... here. Simplify.
29761 (vect_check_interleaving): Simplify.
29762 (vect_analyze_data_ref_dependences): Likewise. Split out ...
29763 (vect_slp_analyze_data_ref_dependences): ... this new function.
29764 (dr_group_sort_cmp): New function.
29765 (vect_analyze_data_ref_accesses): Compute data-reference groups
29766 here instead of in vect_analyze_data_ref_dependence. Use
29767 a more efficient algorithm.
29768 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use
29769 vect_slp_analyze_data_ref_dependences. Call
29770 vect_analyze_data_ref_accesses earlier.
29771 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
29772 * tree-vectorizer.h (vect_analyze_data_ref_dependences): Adjust.
29773 (vect_slp_analyze_data_ref_dependences): New prototype.
29774
39f8afdf 297752013-03-21 Richard Biener <rguenther@suse.de>
29776
29777 * tree-ssa-loop-im.c (can_sm_ref_p): Do not test whether
29778 ref is stored in the loop.
29779 (find_refs_for_sm): Walk only over all stores.
29780 (store_motion_loop): Allocate from lim_bitmap_obstack.
29781 (store_motion): Likewise.
29782
f68f7ce8 297832013-03-21 Richard Biener <rguenther@suse.de>
29784
29785 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge):
29786 Update virtual SSA form.
29787
75d28287 297882013-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
29789
29790 * configure.ac (gcc_cv_ld_eh_frame_ciev3): New test.
29791 * configure: Regenerate.
29792 * config.in: Regenerate.
29793 * config/sol2.c (solaris_override_options): Only enforce DWARF 2
29794 if !HAVE_LD_EH_FRAME_CIEV3.
29795
2428e53a 297962013-03-21 Richard Biener <rguenther@suse.de>
29797
29798 * tree-cfg.c (verify_expr_no_block): New function.
29799 (verify_expr_location_1): Verify that neither DECL_DEBUG_EXPR
29800 nor DECL_VALUE_EXPR have locations with associated blocks.
29801 * tree-ssa-live.c (clear_unused_block_pointer_1): Remove.
29802 (clear_unused_block_pointer): Remove code dealing with
29803 blocks in DECL_DEBUG_EXPR locations.
29804
8e966116 298052013-03-21 Richard Biener <rguenther@suse.de>
29806
29807 * tree.h (DECL_DEBUG_EXPR_IS_FROM): Rename to ...
29808 (DECL_HAS_DEBUG_EXPR_P): ... this. Guard properly.
29809 * tree.c (copy_node_stat): Do not copy DECL_HAS_DEBUG_EXPR_P.
29810 * dwarf2out.c (add_var_loc_to_decl): Use DECL_HAS_DEBUG_EXPR_P
29811 instead of DECL_DEBUG_EXPR_IS_FROM.
29812 * gimplify.c (gimplify_modify_expr): Likewise.
29813 * tree-cfg.c (verify_expr_location_1): Likewise.
29814 * tree-complex.c (create_one_component_var): Likewise.
29815 * tree-sra.c (create_access_replacement): Likewise.
29816 * tree-ssa-live.c (clear_unused_block_pointer_1): Likewise.
29817 (clear_unused_block_pointer): Likewise.
29818 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
29819 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
29820 * var-tracking.c (var_debug_decl): Likewise.
29821 (track_expr_p): Likewise.
29822 * tree-inline.c (add_local_variables): Likewise. Set
29823 DECL_HAS_DEBUG_EXPR_P after copying it.
29824 * tree-diagnostic.c (default_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
29825 instead of DECL_DEBUG_EXPR_IS_FROM. Guard properly.
29826
9e2820ab 298272013-03-21 Uros Bizjak <ubizjak@gmail.com>
29828
29829 PR bootstrap/56656
29830 * configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): New test.
29831 * configure: Regenerate.
29832 * config.in: Regenerate.
29833 * config/i386/i386.md (*movdf_internal): Use
29834 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
29835 movd instead of movq mnemonic for interunit moves.
29836 (*movdi_internal): Ditto.
29837
d0360773 298382013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
02ab8c72 29839
29840 * config/aarch64/aarch64-simd.md (simd_fabd): New Attribute.
29841 (abd<mode>_3): New pattern.
29842 (aba<mode>_3): New pattern.
29843 (fabd<mode>_3): New pattern.
29844
d0360773 298452013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
1b457b76 29846
29847 * config/aarch64/aarch64-elf.h (REGISTER_PREFIX): Remove.
29848 * config/aarch64/aarch64.c (aarch64_print_operand): Remove all
29849 occurrence of REGISTER_PREFIX as its empty string.
29850
799b7423 298512013-03-20 Jeff Law <law@redhat.com>
29852
29853 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Record
29854 addititional equivalences for equality comparisons between an SSA_NAME
29855 and a constant where the SSA_NAME was set from a widening conversion.
29856
4e38a95d 298572013-03-20 Walter Lee <walt@tilera.com>
29858
29859 * config/tilegx/sync.md (atomic_test_and_set): New pattern.
29860
59ff41d8 298612013-03-20 Uros Bizjak <ubizjak@gmail.com>
29862
29863 * config/i386/i386.md (*movoi_internal_avx): Emit insn template
29864 depending on type attribute.
29865 (*movti_internal): Ditto.
29866 (*movtf_internal): Ditto.
29867 (*movxf_internal): Ditto.
29868 (*movdf_internal): Ditto.
29869 (*movsf_internal): Ditto.
29870
7b536847 298712013-03-20 Uros Bizjak <ubizjak@gmail.com>
29872
29873 * config/i386/i386.md (*movti_internal): Set prefix attribute to
29874 maybe_vex for sselog1 and ssemov types.
29875 (*movdi_internal): Reorder operand constraints.
29876 (*movsi_internal): Ditto. Set prefix attribute to
29877 maybe_vex for sselog1 and ssemov types.
29878 (*movtf_internal): Set prefix attribute to maybe_vex
29879 for sselog1 and ssemov types.
29880 (*movdf_internal): Ditto. Set prefix_data16 attribute for
29881 DImode ssemov types. Reorder operand constraints.
29882 (*movsf_internal): Set type of alternatives 3,4 to imov. Set prefix
29883 attribute to maybe_vex for sselog1 and ssemov types. Set prefix_data16
29884 attribute for SImode ssemov types. Reorder operand constraints.
29885
3a1cb879 298862013-03-20 Martin Jambor <mjambor@suse.cz>
29887
29888 * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter.
29889 * ipa-cp.c (hint_time_bonus): Add abonus for known array indices.
29890
c3d2d0e4 298912013-03-20 Pat Haugen <pthaugen@us.ibm.com>
33a2d887 29892
29893 * config/rs6000/predicates.md (indexed_address, update_address_mem
29894 update_indexed_address_mem): New predicates.
29895 * config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
29896 attribute for load/store instructions.
29897 * config/rs6000/dfp.md (movsd_store): Likewise.
29898 (movsd_load): Likewise.
29899 * config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
29900 (unnamed HI->DI extend define_insn): Likewise.
29901 (unnamed SI->DI extend define_insn): Likewise.
29902 (unnamed QI->SI extend define_insn): Likewise.
29903 (unnamed QI->HI extend define_insn): Likewise.
29904 (unnamed HI->SI extend define_insn): Likewise.
29905 (unnamed HI->SI extend define_insn): Likewise.
29906 (extendsfdf2_fpr): Likewise.
29907 (movsi_internal1): Likewise.
29908 (movsi_internal1_single): Likewise.
29909 (movhi_internal): Likewise.
29910 (movqi_internal): Likewise.
29911 (movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
29912 attribute for load/store instructions.
29913 (mov<mode>_hardfloat): Set correct "type" attribute for load/store
29914 instructions.
29915 (mov<mode>_softfloat): Likewise.
29916 (mov<mode>_hardfloat32): Likewise.
29917 (mov<mode>_hardfloat64): Likewise.
29918 (mov<mode>_softfloat64): Likewise.
29919 (movdi_internal32): Likewise.
29920 (movdi_internal64): Likewise.
29921 (probe_stack_<mode>): Likewise.
29922
299232013-03-20 Michael Meissner <meissner@linux.vnet.ibm.com>
29924
29925 * config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
29926 floating point, and decimal floating point to reload iterator.
29927
29928 * config/rs6000/constraints.md (wl constraint): New constraints to
29929 return FLOAT_REGS if certain options are used to reduce the number
29930 of separate patterns that exist in the file.
29931 (wx constraint): Likewise.
29932 (wz constraint): Likewise.
29933
29934 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
29935 -mdebug=reg, print wg, wl, wx, and wz constraints.
29936 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
29937 Initialize the reload functions for 64-bit binary/decimal floating
29938 point types.
29939 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
29940 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
29941 create the buffer on the stack to overcome not having a 32-bit
29942 load and store.
29943 (rs6000_emit_move): Likewise.
29944 (rs6000_secondary_memory_needed_rtx): Likewise.
29945 (rs6000_alloc_sdmode_stack_slot): Likewise.
29946 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
29947 via xxlxor, just like DFmode 0.0.
29948
29949 * config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro,
29950 define as 1 if we are running on a power7 or newer.
29951 (enum r6000_reg_class_enum): Add new constraints.
29952
29953 * config/rs6000/dfp.md (movsd): Delete, combine with binary
29954 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
29955 with other moves by using conditional constraits (wg). Use LFIWZX
d0360773 29956 and STFIWX for loading SDmode on power7. Use xxlxor to create 0.0f.
33a2d887 29957 (movsd splitter): Likewise.
29958 (movsd_hardfloat): Likewise.
29959 (movsd_softfloat): Likewise.
29960
29961 * config/rs6000/rs6000.md (FMOVE32): New iterators to combine
29962 binary and decimal floating point moves.
29963 (fmove_ok): New attributes to combine binary and decimal floating
29964 point moves, and to combine power6x (mfpgpr) moves along normal
29965 floating moves.
29966 (real_value_to_target): Likewise.
29967 (f32_lr): Likewise.
29968 (f32_lm): Likewise.
29969 (f32_li): Likewise.
29970 (f32_sr): Likewise.
29971 (f32_sm): Likewise.
29972 (f32_si): Likewise.
29973 (movsf): Combine binary and decimal floating point moves. Combine
29974 power6x (mfpgpr) moves with other moves by using conditional
d0360773 29975 constraits (wg). Use LFIWZX and STFIWX for loading SDmode on power7.
33a2d887 29976 (mov<mode> for SFmode/SDmode); Likewise.
29977 (SFmode/SDmode splitters): Likewise.
29978 (movsf_hardfloat): Likewise.
29979 (mov<mode>_hardfloat for SFmode/SDmode): Likewise.
29980 (movsf_softfloat): Likewise.
29981 (mov<mode>_softfloat for SFmode/SDmode): Likewise.
29982
29983 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl,
29984 wx and wz constraints.
29985
29986 * config/rs6000/constraints.md (wg constraint): New constraint to
29987 return FLOAT_REGS if -mmfpgpr (power6x) was used.
29988
29989 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
29990 constraint.
29991
29992 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
29993 -mdebug=reg, print wg, wl, wx, and wz constraints.
29994 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
29995 Initialize the reload functions for 64-bit binary/decimal floating
29996 point types.
29997 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
29998 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
29999 create the buffer on the stack to overcome not having a 32-bit
30000 load and store.
30001 (rs6000_emit_move): Likewise.
30002 (rs6000_secondary_memory_needed_rtx): Likewise.
30003 (rs6000_alloc_sdmode_stack_slot): Likewise.
30004 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
30005 via xxlxor, just like DFmode 0.0.
30006
33a2d887 30007 * config/rs6000/dfp.md (movdd): Delete, combine with binary
30008 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
30009 with other moves by using conditional constraits (wg). Use LFIWZX
30010 and STFIWX for loading SDmode on power7.
30011 (movdd splitters): Likewise.
30012 (movdd_hardfloat32): Likewise.
30013 (movdd_softfloat32): Likewise.
30014 (movdd_hardfloat64_mfpgpr): Likewise.
30015 (movdd_hardfloat64): Likewise.
30016 (movdd_softfloat64): Likewise.
30017
30018 * config/rs6000/rs6000.md (FMOVE64): New iterators to combine
30019 64-bit binary and decimal floating point moves.
30020 (FMOVE64X): Likewise.
30021 (movdf): Combine 64-bit binary and decimal floating point moves.
30022 Combine power6x (mfpgpr) moves with other moves by using
30023 conditional constraits (wg).
30024 (mov<mode> for DFmode/DDmode): Likewise.
30025 (DFmode/DDmode splitters): Likewise.
30026 (movdf_hardfloat32): Likewise.
30027 (mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
30028 (movdf_softfloat32): Likewise.
30029 (movdf_hardfloat64_mfpgpr): Likewise.
30030 (movdf_hardfloat64): Likewise.
30031 (mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
30032 (movdf_softfloat64): Likewise.
30033 (mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
30034 (reload_<mode>_load): Move to later in the file so they aren't in
30035 the middle of the floating point move insns.
30036 (reload_<mode>_store): Likewise.
30037
30038 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
30039 constraint.
30040
30041 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
30042 constraint if -mdebug=reg.
d0360773 30043 (rs6000_initi_hard_regno_mode_ok): Enable wg constraint if -mfpgpr.
30044 Enable using dd reload support if needed.
33a2d887 30045
30046 * config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
30047 binary and decimal floating point moves in rs6000.md.
30048 (movtd_internal): Likewise.
30049
30050 * config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
30051 decimal floating point moves.
30052 (movtf): Likewise.
30053 (movtf_internal): Likewise.
30054 (mov<mode>_internal, TDmode/TFmode): Likewise.
30055 (movtf_softfloat): Likewise.
30056 (mov<mode>_softfloat, TDmode/TFmode): Likewise.
30057
30058 * config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
30059 movdi_internal64, using wg constraint for move direct operations.
30060 (movdi_internal64): Likewise.
30061
30062 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
30063 MODES_TIEABLE_P for selected modes. Print the numerical value of
30064 the various virtual registers. Use GPR/FPR first/last values,
30065 instead of hard coding the register numbers. Print which modes
30066 have reload functions registered.
d0360773 30067 (rs6000_option_override_internal): If -mdebug=reg, trace the options
30068 settings before/after setting cpu, target and subtarget settings.
30069 (rs6000_secondary_reload_trace): Improve the RTL dump for -mdebug=addr
30070 and for secondary reload failures in rs6000_secondary_reload_inner.
33a2d887 30071 (rs6000_secondary_reload_fail): Likewise.
30072 (rs6000_secondary_reload_inner): Likewise.
30073
30074 * config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
30075 macros for first/last GPR and FPR registers.
30076 (LAST_GPR_REGNO): Likewise.
30077 (FIRST_FPR_REGNO): Likewise.
30078 (LAST_FPR_REGNO): Likewise.
30079
30080 * config/rs6000/vector.md (mul<mode>3): Use the combined macro
30081 VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
30082 VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
30083 (vcond<mode><mode>): Likewise.
30084 (vcondu<mode><mode>): Likewise.
30085 (vector_gtu<mode>): Likewise.
30086 (vector_gte<mode>): Likewise.
30087 (xor<mode>3): Don't allow logical operations on TImode in 32-bit
d0360773 30088 to prevent the compiler from converting DImode operations to TImode.
33a2d887 30089 (ior<mode>3): Likewise.
30090 (and<mode>3): Likewise.
30091 (one_cmpl<mode>2): Likewise.
30092 (nor<mode>3): Likewise.
30093 (andc<mode>3): Likewise.
30094
30095 * config/rs6000/constraints.md (wt constraint): New constraint
30096 that returns VSX_REGS if TImode is allowed in VSX registers.
30097
30098 * config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
30099 constant under VSX.
30100
30101 * config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
30102 similar to TImode, but it is restricted to being in the GPRs.
30103
30104 * config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
30105 TImode to occupy a single VSX register.
30106
30107 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
30108 -mvsx-timode for power7/power8.
30109 (power7 cpu): Likewise.
30110 (power8 cpu): Likewise.
30111
30112 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
30113 sure that TFmode/TDmode take up two registers if they are ever
30114 allowed in the upper VSX registers.
30115 (rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
30116 registers.
30117 (rs6000_init_hard_regno_mode_ok): Likewise.
30118 (rs6000_debug_reg_global): Add debugging for PTImode and wt
30119 constraint. Print if LRA is turned on.
30120 (rs6000_option_override_internal): Give an error if -mvsx-timode
30121 and VSX is not enabled.
30122 (invalid_e500_subreg): Handle PTImode, restricting it to GPRs. If
30123 -mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
30124 to reg+offset addressing. Use PTImode when checking offset
30125 addresses for validity.
30126 (reg_offset_addressing_ok_p): Likewise.
30127 (rs6000_legitimate_offset_address_p): Likewise.
30128 (rs6000_legitimize_address): Likewise.
30129 (rs6000_legitimize_reload_address): Likewise.
30130 (rs6000_legitimate_address_p): Likewise.
30131 (rs6000_eliminate_indexed_memrefs): Likewise.
30132 (rs6000_emit_move): Likewise.
30133 (rs6000_secondary_reload): Likewise.
30134 (rs6000_secondary_reload_inner): Handle PTImode. Allow 64-bit
30135 reloads to fpr registers to continue to use reg+offset addressing,
30136 but 64-bit reloads to altivec registers need reg+reg addressing.
30137 Drop test for PRE_MODIFY, since VSX loads/stores no longer support
30138 it. Treat LO_SUM like a PLUS operation.
30139 (rs6000_secondary_reload_class): If type is 64-bit, prefer to use
d0360773 30140 FLOAT_REGS instead of VSX_RGS to allow use of reg+offset addressing.
33a2d887 30141 (rs6000_cannot_change_mode_class): Do not allow TImode in VSX
30142 registers to share a register with a smaller sized type, since VSX
30143 puts scalars in the upper 64-bits.
30144 (print_operand): Add support for PTImode.
30145 (rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
30146 VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
30147 registers, but don't have arithmetic support.
30148 (rs6000_memory_move_cost): Add test for VSX.
30149 (rs6000_opt_masks): Add -mvsx-timode.
30150
30151 * config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
30152 for TImode.
30153 (VSs): Likewise.
30154 (VSr): Use wt constraint for TImode.
30155 (VSv): Drop TImode support.
30156 (vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
30157 (vsx_movti_64bit): Likewise.
30158 (vsx_movti_32bit): Likewise.
30159 (vec_store_<mode>): Use VSX iterator instead of vector iterator.
30160 (vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
30161 one '?' on the appropriate output constraint. Do not allow TImode
30162 logical operations on 32-bit systems.
30163 (vsx_ior<mode>3): Likewise.
30164 (vsx_xor<mode>3): Likewise.
30165 (vsx_one_cmpl<mode>2): Likewise.
30166 (vsx_nor<mode>3): Likewise.
30167 (vsx_andc<mode>3): Likewise.
30168 (vsx_concat_<mode>): Likewise.
30169 (vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.
30170
30171 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
30172 OPTION_MASK_VSX_TIMODE.
30173 (enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
30174 (STACK_SAVEAREA_MODE): Use PTImode instead of TImode.
30175
30176 * config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
30177 (TI2 iterator): New iterator for TImode, PTImode.
30178 (wd mode attribute): Add values for vector types.
d0360773 30179 (movti_string): Replace TI move operations with operations for TImode
30180 and PTImode. Add support for TImode being allowed in VSX registers.
33a2d887 30181 (mov<mode>_string, TImode/PTImode): Likewise.
30182 (movti_ppc64): Likewise.
30183 (mov<mode>_ppc64, TImode/PTImode): Likewise.
30184 (TI mode splitters): Likewise.
30185
30186 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
30187 constraint.
30188
a9073c2f 301892013-03-20 Marc Glisse <marc.glisse@inria.fr>
30190
30191 PR tree-optimization/56355
30192 * fold-const.c (tree_binary_nonnegative_warnv_p) <MULT_EXPR>:
30193 Also handle integers with undefined overflow.
30194
ff9c1bc1 301952013-03-20 Catherine Moore <clm@codesourcery.com>
30196 Maciej W. Rozycki <macro@codesourcery.com>
30197 Tom de Vries <tom@codesourcery.com>
c3d2d0e4 30198 Nathan Sidwell <nathan@codesourcery.com>
ff9c1bc1 30199 Iain Sandoe <iain@codesourcery.com>
30200 Nathan Froyd <froydnj@codesourcery.com>
c3d2d0e4 30201 Chao-ying Fu <fu@mips.com>
ff9c1bc1 30202
30203 * doc/extend.texi: (micromips, nomicromips, nocompression):
7b536847 30204 Document new function attributes.
ff9c1bc1 30205 * doc/invoke.texi (minterlink-compressed, mmicromips,
30206 m14k, m14ke, m14kec): Document new options.
30207 (minterlink-mips16): Update documentation.
30208 * doc/md.texi (ZC, ZD): Document new constraints.
30209 * configure.ac (gcc_cv_as_micromips): Check if linker
30210 supports the .set micromips directive.
30211 * configure: Regenerate.
30212 * config.in: Regenerate.
30213 * config/mips/mips-tables.opt: Regenerate.
30214 * config/mips/micromips.md: New file.
30215 * constraints.md (ZC, ZD): New constraints.
30216 * config/mips/predicates.md (movep_src_register): New predicate.
30217 (movep_src_operand): New predicate.
30218 (non_volatile_mem_operand): New predicate.
30219 * config/mips/mips.md (multimem): New type.
30220 (length): Differentiate between 17-bit and 18-bit branch offsets.
30221 (MOVEP1, MOVEP2): New mode iterator.
8f028904 30222 (mov_<load>l): Use ZC constraint.
ff9c1bc1 30223 (mov_<load>r): Likewise.
30224 (mov_<store>l): Likewise.
30225 (mov_<store>r): Likewise.
30226 (*branch_equality<mode>_inverted): Add microMIPS support.
30227 (*branch_equality<mode>): Likewise.
30228 (*jump_absolute): Likewise.
30229 (indirect_jump_<mode>): Likewise.
30230 (tablejump_<mode>): Likewise.
30231 (<optab>_internal): Likewise.
30232 (sibcall_internal): Likewise.
30233 (sibcall_value_internal): Likewise.
30234 (prefetch): Use constraint ZD.
30235 * config/mips/mips.opt (minterlink-compressed): New option.
30236 (minterlink-mips16): Now an alias for minterlink-compressed.
30237 (mmicromips): New option.
30238 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
30239 (compare_and_swap_12): Likewise.
30240 (sync_add<mode>): Likewise.
30241 (sync_<optab>_12): Likewise.
30242 (sync_old_<optab>_12): Likewise.
30243 (sync_new_<optab>_12): Likewise.
30244 (sync_nand_12): Likewise.
30245 (sync_old_nand_12): Likewise.
30246 (sync_new_nand_12): Likewise.
30247 (sync_sub<mode>): Likewise.
30248 (sync_old_add<mode>): Likewise.
30249 (sync_old_sub<mode>): Likewise.
30250 (sync_new_add<mode>): Likewise.
30251 (sync_new_sub<mode>): Likewise.
30252 (sync_<optab><mode>): Likewise.
30253 (sync_old_<optab><mode>): Likewise.
30254 (sync_new_<optab><mode>): Likewise.
30255 (sync_nand<mode>): Likewise.
30256 (sync_old_nand<mode>): Likewise.
30257 (sync_new_nand<mode>): Likewise.
30258 (sync_lock_test_and_set<mode>): Likewise.
30259 (test_and_set_12): Likewise.
30260 (atomic_compare_and_swap<mode>): Likewise.
30261 (atomic_exchange<mode>_llsc): Likewise.
30262 (atomic_fetch_add<mode>_llsc): Likewise.
30263 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
30264 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
30265 (umips_save_restore_pattern_p): Likewise.
30266 (umips_load_store_pair_p): Likewise.
30267 (umips_output_load_store_pair): Likewise.
30268 (umips_movep_target_p): Likewise.
30269 (umips_12bit_offset_address_p): Likewise.
30270 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
30271 (mips_base_mips16): Rename this...
30272 (mips_base_compression_flags): ...to this. Update all uses.
30273 (mips_attribute_table): Add micromips, nomicromips and nocompression.
30274 (mips_mips16_decl_p): Delete.
30275 (mips_nomips16_decl_p): Delete.
8f028904 30276 (mips_get_compress_on_flags): New function.
ff9c1bc1 30277 (mips_get_compress_off_flags): New function.
30278 (mips_get_compress_mode): New function.
30279 (mips_get_compress_on_name): New function.
30280 (mips_get_compress_off_name): New function.
30281 (mips_insert_attributes): Support multiple compression types.
30282 (mips_merge_decl_attributes): Likewise.
30283 (umips_12bit_offset_address_p): New function.
30284 (mips_start_function_definition): Emit .set micromips directive.
30285 (mips_call_may_need_jalx_p): New function.
30286 (mips_function_ok_for_sibcall): Add microMIPS support.
30287 (mips_print_operand_punctuation): Support short delay slots and
30288 compact jumps.
30289 (umips_swm_mask, umips_swm_encoding): New.
30290 (umips_build_save_restore): New function.
30291 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
30292 (was_mips16_p): Remove.
30293 (old_compression_mode): New.
30294 (mips_set_compression_mode): New function.
30295 (mips_set_current_function): Add microMIPS support.
30296 (mips_option_override): Likewise.
30297 (umips_save_restore_pattern_p): New function.
30298 (umips_output_save_restore): New function.
30299 (umips_load_store_pair_p_1): New function.
30300 (umips_load_store_pair_p): New function.
30301 (umips_output_load_store_pair_1): New function.
30302 (umips_output_load_store_pair): New function.
30303 (umips_movep_target_p) New function.
30304 (mips_prepare_pch_save): Add microMIPS support.
30305 * config/mips/mips.h (TARGET_COMPRESSION): New.
30306 (TARGET_CPU_CPP_BUILTINS): Update macro
30307 to use new compression flags and to support microMIPS.
30308 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
30309 (MIPS_ARCH_FLOAT_SPEC): Likewise.
30310 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
30311 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
30312 (ASM_SPEC): Support mmicromips and mno-micromips.
30313 (M16STORE_REG_P): New macro.
30314 (MIPS_CALL): Support TARGET_MICROMIPS.
30315 (MICROMIPS_J): New macro.
30316 (mips_base_mips16): Rename this...
30317 (mips_base_compression_flags): ...to this.
30318 (UMIPS_12BIT_OFFSET_P): New macro.
30319 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
30320 (MULTILIB_DIRNAMES): Likewise.
affbda71 303212013-03-20 Richard Biener <rguenther@suse.de>
30322
30323 PR tree-optimization/56661
30324 * tree-ssa-sccvn.c (visit_use): Only value-number calls if
30325 the result does not have to be distinct.
30326
b94b4cf4 303272013-03-20 Richard Biener <rguenther@suse.de>
30328
30329 * tree-inline.c (copy_tree_body_r): Sync MEM_REF code with
30330 remap_gimple_op_r.
30331
a6d46489 303322013-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
c3d2d0e4 30333 Steven Bosscher <steven@gcc.gnu.org>
a6d46489 30334
30335 PR rtl-optimization/56605
30336 * loop-iv.c (implies_p): Handle equal RTXs and subregs.
30337
76468b73 303382013-03-20 Uros Bizjak <ubizjak@gmail.com>
30339
30340 PR bootstrap/56656
30341 * config/i386/i386.md (*movdi_internal): Handle broken assemblers
30342 that require movd instead of movq.
30343
5a950977 303442013-03-20 Richard Biener <rguenther@suse.de>
30345
30346 * tree-ssa-structalias.c (struct variable_info): Add pointer
30347 to the first field of an aggregate with sub-vars. Make
30348 this and the pointer to the next subfield its ID.
30349 (vi_next): New function.
30350 (nothing_id, anything_id, readonly_id, escaped_id, nonlocal_id,
30351 storedanything_id, integer_id): Increment by one.
30352 (new_var_info, get_call_vi, lookup_call_clobber_vi,
30353 get_call_clobber_vi): Adjust.
30354 (solution_set_expand): Simplify and speedup.
30355 (solution_set_add): Inline into ...
30356 (set_union_with_increment): ... this. Adjust accordingly.
30357 (do_sd_constraint): Likewise.
30358 (do_ds_constraint): Likewise.
30359 (do_complex_constraint): Simplify.
30360 (build_pred_graph): Adjust.
30361 (solve_graph): Likewise. Simplify and speedup.
30362 (get_constraint_for_ssa_var, get_constraint_for_ptr_offset,
30363 get_constraint_for_component_ref, get_constraint_for_1,
30364 first_vi_for_offset, first_or_preceding_vi_for_offset,
30365 create_function_info_for, create_variable_info_for_1,
30366 create_variable_info_for, intra_create_variable_infos): Adjust.
30367 (init_base_vars): Push NULL for ID zero.
30368 (compute_points_to_sets): Adjust.
30369
cd9916a9 303702013-03-20 Richard Biener <rguenther@suse.de>
30371
30372 * cfgloop.c (verify_loop_structure): Streamline and avoid
30373 ICEing on corrupt loop tree.
30374 * graph.c (draw_cfg_nodes_for_loop): Avoid ICEing on corrupt
30375 loop tree.
30376
3767bd95 303772013-03-20 Richard Biener <rguenther@suse.de>
30378
30379 * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Do not
30380 check whether an SSA update is needed.
30381
ac721588 303822013-03-20 Richard Sandiford <rdsandiford@googlemail.com>
30383
30384 * config/mips/constraints.md (T): Rename to...
30385 (Yf): ...this.
30386 (U): Rename to...
30387 (Yd): ...this.
30388 * config/mips/mips.md (*movdi_64bit, *movdi_64bit_mips16)
30389 (*mov<mode>_internal, *mov<mode>_mips16): Update accordingly.
30390
00f5db85 303912013-03-19 Ian Bolton <ian.bolton@arm.com>
30392
30393 * config/aarch64/aarch64.md (*sub<mode>3_carryin): New pattern.
30394 (*subsi3_carryin_uxtw): Likewise.
30395
4d83c223 303962013-03-19 Ian Bolton <ian.bolton@arm.com>
30397
30398 * config/aarch64/aarch64.md (*ror<mode>3_insn): New pattern.
30399 (*rorsi3_insn_uxtw): Likewise.
30400
45244f9b 304012013-03-19 Ian Bolton <ian.bolton@arm.com>
30402
30403 * config/aarch64/aarch64.md (*extr<mode>5_insn): New pattern.
30404 (*extrsi5_insn_uxtw): Likewise.
30405
0df18bd2 304062013-03-19 Richard Biener <rguenther@suse.de>
30407
30408 PR tree-optimization/56273
30409 * passes.c (init_optimization_passes): Move second VRP after DOM.
30410
4c5ef8d5 304112013-03-19 Uros Bizjak <ubizjak@gmail.com>
30412
30413 * config/i386/i386.md (*movti_internal): Merge from
30414 *movti_internal_rex64 and *movti_internal_sse. Use x64 isa attribute.
30415 (*movdi_internal): Merge with *movdi_internal_rex64. Use x64 and
30416 nox64 isa attributes.
30417
6a5ca1fc 304182013-03-18 Richard Biener <rguenther@suse.de>
30419
30420 * tree-ssa-structalias.c (find): Use gcc_checking_assert.
30421 (unite): Likewise.
30422 (merge_node_constraints): Likewise.
30423 (build_succ_graph): Likewise.
30424 (valid_graph_edge): Inline into single caller.
30425 (unify_nodes): Likewise. Use bitmap_set_bit return value
30426 and cache varinfo.
30427 (scc_visit): Fix formatting and variable use.
30428 (do_sd_constraint): Use gcc_checking_assert.
30429 (do_ds_constraint): Likewise.
30430 (do_complex_constraint): Likewise.
30431 (condense_visit): Likewise. Cleanup.
30432 (dump_pred_graph): New function.
30433 (perform_var_substitution): Dump the pred-graph before
30434 variable substitution.
30435 (find_equivalent_node): Use gcc_checking_assert.
30436 (rewrite_constraints): Guard checking loop with ENABLE_CHECKING.
30437
90d4c4af 304382013-03-18 Richard Biener <rguenther@suse.de>
30439
30440 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
30441 Remove cond_expr_stmt_list argument and do not gimplify the
30442 built expression.
30443 (vect_loop_versioning): Adjust.
30444 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
30445 Cleanup to use less temporaries.
30446 (vect_create_data_ref_ptr): Cleanup.
30447
70347500 304482013-03-18 Jakub Jelinek <jakub@redhat.com>
30449
30450 PR tree-optimization/56635
30451 * fold-const.c (operand_equal_p): For MEM_REF and TARGET_MEM_REF,
30452 require types_compatible_p types.
30453
23ecf105 304542013-03-18 Nick Clifton <nickc@redhat.com>
30455
c694a5cd 30456 * config/stormy16/stormy16.c (xstormy16_expand_prologue): Remove
30457 spurious backslash.
30458
23ecf105 30459 * config/mn10300/mn10300.c (mn10300_get_live_callee_saved_regs):
30460 Add missing line to comment describing function.
30461
4953672f 304622013-03-18 Richard Biener <rguenther@suse.de>
30463
30464 PR tree-optimization/56210
30465 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
30466 Handle string / character search functions.
30467 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
30468
9532a315 304692013-03-18 Richard Biener <rguenther@suse.de>
30470
30471 PR middle-end/56483
30472 * cfgexpand.c (expand_gimple_cond): Inline gimple_cond_single_var_p
30473 and implement properly.
30474 * gimple.h (gimple_cond_single_var_p): Remove.
30475
07e3bcbf 304762013-03-18 Richard Biener <rguenther@suse.de>
30477
30478 * tree-data-ref.h (find_data_references_in_loop): Declare.
30479 * tree-data-ref.c (get_references_in_stmt): Use a stack
30480 vector pre-allocated in the callers.
30481 (find_data_references_in_stmt): Adjust.
30482 (graphite_find_data_references_in_stmt): Likewise.
30483 (create_rdg_vertices): Likewise.
30484 (find_data_references_in_loop): Export.
30485 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
30486 Compute dependences here...
30487 (vect_analyze_data_refs): ...not here. When we encounter
30488 a non-vectorizable data reference in basic-block vectorization
30489 truncate the data reference vector. Do not bother to
30490 fixup data-dependence information for gather loads.
30491 * tree-vect-slp.c (vect_slp_analyze_bb_1): Check the number
30492 of data references, as reported.
30493
cc99c1e1 304942013-03-18 Richard Biener <rguenther@suse.de>
30495
30496 PR tree-optimization/3713
30497 * tree-ssa-sccvn.c (visit_copy): Simplify. Always propagate
30498 has_constants and expr.
30499 (stmt_has_constants): Properly valueize SSA names when deciding
30500 whether the stmt has constants.
30501
f55f91f5 305022013-03-18 Richard Biener <rguenther@suse.de>
30503
30504 * tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the
30505 whole function when there is nothing to do.
30506 * tree-ssa-loop.c (pass_vectorize): Remove TODO_update_ssa.
30507 * tree-vectorizer.c (vectorize_loops): Update virtual and
30508 loop-closed SSA once.
30509 * tree-vect-loop.c (vect_transform_loop): Do not update SSA here.
30510
0da53361 305112013-03-18 Richard Biener <rguenther@suse.de>
30512
30513 PR middle-end/56113
30514 * domwalk.c (bb_postorder): New global static.
30515 (cmp_bb_postorder): New function.
30516 (walk_dominator_tree): Replace scheme imposing an order for
30517 visiting dominator sons by one sorting them at the time they
30518 are pushed on the stack.
30519
09f4cf62 305202013-03-18 Richard Biener <rguenther@suse.de>
30521
30522 PR tree-optimization/39326
30523 * tree-ssa-loop-im.c (refs_independent_p): Exploit symmetry.
30524 (struct mem_ref): Replace mem member with ao_ref typed member.
30525 (MEM_ANALYZABLE): Adjust.
30526 (memref_eq): Likewise.
30527 (mem_ref_alloc): Likewise.
30528 (gather_mem_refs_stmt): Likewise.
30529 (mem_refs_may_alias_p): Use the ao_ref to query the alias oracle.
30530 (execute_sm_if_changed_flag_set): Adjust.
30531 (execute_sm): Likewise.
30532 (ref_always_accessed_p): Likewise.
30533 (refs_independent_p): Likewise.
30534 (can_sm_ref_p): Likewise.
30535
800469aa 305362013-03-18 Jakub Jelinek <jakub@redhat.com>
30537
30538 PR c/56566
30539 * tree.c (tree_int_cst_min_precision): For integer_zerop (value)
30540 return 1 even for !unsignedp.
30541
099188cb 305422013-03-17 Uros Bizjak <ubizjak@gmail.com>
30543
30544 * config/i386/i386.md (isa): Add x64 and nox64.
30545 (enabled): Define x64 for TARGET_64BIT and nox64 for !TARGET_64BIT.
30546 (*pushtf): Enable *roF alternative for x64 isa only.
30547 (*pushxf): Merge with *pushxf_nointeger. Use Yx*r constraint. Set
30548 mode attribute of integer alternatives to DImode for TARGET_64BIT.
30549 (*pushdf): Merge with *pushdf_rex64. Use x64 and nox64 isa attributes.
30550 (*movtf_internal): Merge from *movtf_internal_rex64 and
30551 *movtf_internal_sse. Use x64 and nox64 isa attributes.
30552 (*movxf_internal): Merge with *movxf_internal_rex64. Use x64 and
30553 nox64 isa attributes.
30554 (*movdf_internal): Merge with *movdf_internal_rex64. Use x64 and
30555 nox64 isa attributes.
30556 * config/i386/constraints.md (Yd): Do not set for TARGET_64BIT.
30557
862c63eb 305582013-03-17 Uros Bizjak <ubizjak@gmail.com>
30559
30560 * config/alpha/alpha.c (TARGET_LRA_P): New define.
30561
595169d8 305622013-03-17 Jakub Jelinek <jakub@redhat.com>
30563
30564 PR target/56640
30565 * config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
30566 class names. Remove trailing comma after "ALL_REGS".
30567
7d52f1a3 305682013-03-16 Jan Hubicka <jh@suse.cz>
30569
30570 * cgraph.h (cgraph_get_create_real_symbol_node): Declare.
30571 * cgraph.c (cgraph_get_create_real_symbol_node): New function.
30572 * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
30573 of cgraph_get_create_node.
30574 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
30575
48adf3f3 305762013-03-16 Jason Merrill <jason@redhat.com>
30577
30578 PR debug/49090
30579 * dwarf2out.c (gen_generic_params_dies): Indicate default arguments
30580 with DW_AT_default_value.
30581
67f9d821 305822013-03-16 Jakub Jelinek <jakub@redhat.com>
30583
30584 * BASE-VER: Set to 4.9.0.
30585
34e2916a 305862013-03-14 Andi Kleen <ak@linux.intel.com>
30587
30588 PR target/56619
30589 * doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE,
30590 __ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs.
30591 Document _x* TSX intrinsics.
30592
5e5f9379 305932013-03-14 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
30594 David Holsgrove <david.holsgrove@xilinx.com>
4eae25aa 30595
30596 * configure.ac: Add MicroBlaze TLS support detection.
30597 * configure: Regenerate.
862c63eb 30598 * config/microblaze/microblaze-protos.h
30599 (microblaze_cannot_force_const_mem, microblaze_tls_referenced_p,
30600 symbol_mentioned_p, label_mentioned_p): Add prototypes.
30601 * config/microblaze/microblaze.c (microblaze_address_type): Add
30602 ADDRESS_TLS and tls_reloc address types.
4eae25aa 30603 (microblaze_address_info): Add tls_reloc.
30604 (TARGET_HAVE_TLS): Define.
30605 (get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1,
30606 microblaze_tls_referenced_p, microblaze_cannot_force_const_mem,
862c63eb 30607 symbol_mentioned_p, label_mentioned_p, tls_mentioned_p,
30608 load_tls_operand, microblaze_call_tls_get_addr,
30609 microblaze_legitimize_tls_address): New functions.
4eae25aa 30610 (microblaze_classify_unspec): Handle UNSPEC_TLS.
30611 (get_base_reg): Use microblaze_tls_symbol_p.
30612 (microblaze_classify_address): Handle TLS.
862c63eb 30613 (microblaze_legitimate_pic_operand): Use symbol_mentioned_p,
30614 label_mentioned_p and microblaze_tls_referenced_p.
4eae25aa 30615 (microblaze_legitimize_address): Handle TLS.
30616 (microblaze_address_insns): Handle ADDRESS_TLS.
30617 (pic_address_needs_scratch): Handle TLS.
30618 (print_operand_address): Handle TLS.
30619 (microblaze_expand_prologue): Check TLS_NEEDS_GOT.
30620 (microblaze_expand_move): Handle TLS.
862c63eb 30621 (microblaze_legitimate_constant_p): Check
30622 microblaze_cannot_force_const_mem and microblaze_tls_symbol_p.
4eae25aa 30623 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
30624 * config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define
30625 (PIC_OFFSET_TABLE_REGNUM): Set.
30626 * config/microblaze/linux.h (TLS_NEEDS_GOT): Define.
30627 * config/microblaze/microblaze.md (UNSPEC_TLS): Define.
30628 (addsi3, movsi_internal2, movdf_internal): Update constraints
30629 * config/microblaze/predicates.md (arith_plus_operand): Define
862c63eb 30630 (move_operand): Redefine as move_src_operand,
30631 check microblaze_tls_referenced_p.
4eae25aa 30632
341c5ffb 306332013-03-14 Ian Bolton <ian.bolton@arm.com>
30634
30635 * config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ.
30636 (*and_<SHIFT:optab><mode>3nr_compare0): Likewise.
30637
34cf9362 306382013-03-14 Ian Bolton <ian.bolton@arm.com>
30639
30640 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct
30641 CC mode for AND.
30642
fc162120 306432013-03-14 Jakub Jelinek <jakub@redhat.com>
30644
228bf2b8 30645 PR tree-optimization/53265
30646 * common.opt (Waggressive-loop-optimizations): New option.
30647 * tree-ssa-loop-niter.c: Include tree-pass.h.
30648 (do_warn_aggressive_loop_optimizations): New function.
30649 (record_estimate): Call it. Don't add !is_exit bounds to loop->bounds
30650 if number_of_latch_executions returned constant.
30651 (estimate_numbers_of_iterations_loop): Call number_of_latch_executions
30652 early. If number_of_latch_executions returned constant, set
30653 nb_iterations_upper_bound back to it.
30654 * cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations
30655 field.
30656 * Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H).
30657 * doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document.
30658
fc162120 30659 * config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove.
30660 (MULTILIB_OSDIRNAMES): Set.
30661 * genmultilib: If defaultosdirname doesn't start with :: , set
30662 defaultosdirname2 instead, clear it and emit two . multilib_raw
30663 entries instead of just one.
30664
ae979f32 306652013-03-14 Kaz Kojima <kkojima@gcc.gnu.org>
30666
30667 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE.
30668 (SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default.
30669 * config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE.
30670 (SUBTARGET_OVERRIDE_OPTIONS): New.
30671
bb057878 306722013-03-13 Oleg Endo <olegendo@gcc.gnu.org>
30673
30674 PR target/49880
30675 * config/sh/sh.opt (FPU_SINGLE_ONLY): New mask.
30676 (musermode): Convert to Var(TARGET_USERMODE).
30677 * config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY,
30678 MASK_ARCH): Add MASK_FPU_SINGLE_ONLY.
30679 * config/sh/sh.c (sh_option_override): Use
30680 TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case.
30681 * config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4
30682 condition.
30683 (udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
30684 TARGET_SH4.
30685 (udivsi3_i4_single, divsi3_i4_single): Use
30686 TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4.
30687
21ebaa24 306882013-03-13 Dave Korn <dave.korn.cygwin@gmail.com>
cfdddc4b 30689
30690 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the
30691 default setting.
30692
814c4f66 306932013-03-13 Richard Biener <rguenther@suse.de>
30694
30695 PR tree-optimization/56608
30696 * tree-vect-slp.c (vect_schedule_slp): Do not remove scalar
30697 calls when vectorizing basic-blocks.
30698
043cabe3 306992013-03-13 Jakub Jelinek <jakub@redhat.com>
30700
30701 PR plugins/45078
30702 * config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to
30703 tm_file.
30704
1e93bc00 307052013-03-12 Jakub Jelinek <jakub@redhat.com>
30706
30707 * doc/invoke.texi (-Waddr-space-convert): Move into the table earlier.
30708
344cbf0a 307092013-03-11 Jan Hubicka <jh@suse.cz>
30710
30711 PR lto/56557
30712 * lto-streamer-out.c (output_symbol_p): Skip references from
30713 constructors of external variables.
30714
b291008a 307152013-03-11 Jan Hubicka <jh@suse.cz>
30716
30717 PR middle-end/56571
30718 * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating
30719 from pseudos.
30720 * emit-rtl.c (verify_rtx_sharing): Likewise.
30721 (copy_insn_1): Likewise.
30722 * rtl.c (copy_rtx): Likewise.
30723
803e7ca1 307242013-03-11 Georg-Johann Lay <avr@gjlay.de>
30725
30726 PR target/56591
30727 * config/avr/avr.c (avr_print_operand): Add space after '%c' in
30728 output_operand_lossage message.
862c63eb 30729
f8825f5d 307302013-03-11 Richard Earnshaw <rearnsha@arm.com>
30731
30732 PR target/56470
30733 * arm.c (shift_op): Validate RTL pattern on the fly.
30734 (arm_print_operand, case 'S'): Don't use shift_operator to validate
30735 the RTL.
30736
a1fcab4c 307372013-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
30738
30739 PR target/56347
30740 * config/pa/pa.md (call_value): Check for calls to powf and direct to
30741 new call patterns that clobber %fr12.
30742 (call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn,
30743 split and postreload patterns.
30744 * config/pa/pa.c (pa_conditional_register_usage): Revert marking
30745 registers %fr12 and %fr12R as call used.
30746
1ca59310 307472013-03-09 Steven Bosscher <steven@gcc.gnu.org>
30748
30749 * dse.c (delete_dead_store_insn): Respect TDF_DETAILS.
30750 (canon_address, record_store, replace_read, check_mem_read_rtx,
30751 scan_insn, dse_step1, dse_step2_init, dse_step2_spill,
30752 dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6,
30753 rest_of_handle_dse): Likewise.
30754
9d3fa937 307552013-03-09 Richard Sandiford <rdsandiford@googlemail.com>
30756
30757 PR middle-end/56524
30758 * tree.h (tree_optimization_option): Rename target_optabs to optabs.
30759 Add base_optabs.
30760 (TREE_OPTIMIZATION_OPTABS): Update after previous field change.
30761 (TREE_OPTIMIZATION_BASE_OPTABS): New macro.
30762 (save_optabs_if_changed): Replace with...
30763 (init_tree_optimization_optabs): ...this.
30764 * optabs.c (save_optabs_if_changed): Rename to...
30765 (init_tree_optimization_optabs): ...this. Take the optimization node
30766 as argument. Do nothing if the base optabs are already correct.
30767 Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need
30768 to recompute optabs.
30769 * function.h (function): Remove optabs field.
30770 * function.c (invoke_set_current_function_hook): Call
30771 init_tree_optimization_optabs. Use the result to initialize
30772 this_fn_optabs.
30773
1910089e 307742013-02-27 Aldy Hernandez <aldyh@redhat.com>
30775
30776 * trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE
30777 if GTMA_HAS_NO_INSTRUMENTATION.
30778 (generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit.
30779 (ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION.
30780 * gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define.
30781 * gimple-pretty-print.c (dump_gimple_transaction): Handle
30782 GTMA_HAS_NO_INSTRUMENTATION.
30783
62efcea5 307842013-03-08 Jakub Jelinek <jakub@redhat.com>
30785
30786 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against
30787 libasan_preinit.o.
30788
b3269f54 307892013-03-08 Marek Polacek <polacek@redhat.com>
30790 Jakub Jelinek <jakub@redhat.com>
30791
30792 PR tree-optimization/56478
30793 * predict.c (is_comparison_with_loop_invariant_p): Change the
30794 type of loop_step to tree.
30795 (predict_loops): Adjust.
30796 (predict_iv_comparison): Perform the computations on double_ints.
30797
4c04afc7 307982013-03-08 Richard Biener <rguenther@suse.de>
30799
30800 PR tree-optimization/56570
30801 * tree-cfg.c (verify_expr_location_1): Verify locations for
30802 DECL_DEBUG_EXPR.
30803 * tree-sra.c (create_access_replacement): Strip locations
30804 from DECL_DEBUG_EXPRs.
30805
dc426203 308062013-03-08 Richard Biener <rguenther@suse.de>
30807
30808 * tree-inline.c (expand_call_inline): Do not associate
30809 a BLOCK with the location in BLOCK_SOURCE_LOCATION.
30810 * tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION.
30811
58fd1738 308122013-03-08 Richard Biener <rguenther@suse.de>
30813
30814 * tree-ssa-ter.c (is_replaceable_p): Do not TER across location
30815 or block changes with -Og. Fix for location / block encoding
30816 changes and PHI arguments with locations.
30817
28d3effc 308182013-03-07 Steven Bosscher <steven@gcc.gnu.org>
30819
30820 * bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
30821 for all counters.
30822 (struct output_info): Likewise.
30823 (register_overhead): Remove bad gcc_assert.
30824 (bitmap_find_bit): If there is only a single bitmap element, do not
30825 count a miss as a search.
30826 (print_statistics): Update for counter type changes.
30827 (dump_bitmap_statistics): Likewise. Print headers such that they
30828 are properly lined up with the printed counters.
30829
bdb5a35a 308302013-03-07 Jakub Jelinek <jakub@redhat.com>
30831
30832 PR tree-optimization/56559
30833 * tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2,
30834 check that it has only a single use.
30835
f7961441 308362013-03-07 Richard Biener <rguenther@suse.de>
30837
30838 * doc/invoke.texi (fwhole-program): Discourage use in combination
30839 with -flto.
30840
31c66114 308412013-03-06 Jakub Jelinek <jakub@redhat.com>
30842
23910ff9 30843 * config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def.
30844
f5c4bbcd 30845 PR tree-optimization/56539
30846 * tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
30847 instead of GSI_CONTINUE_LINKING as last argument to
30848 force_gimple_operand_gsi. Adjust function comment.
30849
48ff81f3 30850 * config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add
30851 aarch64-cores.def.
30852
31c66114 30853 PR middle-end/56548
30854 * expr.c (expand_cond_expr_using_cmove): When expanding cmove in
30855 promoted mode, convert the result back to the original mode.
30856
487c79c3 308572013-03-06 Richard Biener <rguenther@suse.de>
30858
30859 PR middle-end/56294
30860 * tree-into-ssa.c (insert_phi_nodes_for): Add dumping.
30861 (insert_updated_phi_nodes_compare_uids): New function.
30862 (update_ssa): Sort symbols_to_rename after UID before
30863 traversing it to insert PHI nodes.
30864
90a674eb 308652013-03-06 Richard Biener <rguenther@suse.de>
30866
30867 PR middle-end/50494
30868 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
30869 Do not adjust alignment of DECL_IN_CONSTANT_POOL decls.
30870
30871 Revert
30872 2013-02-13 Richard Biener <rguenther@suse.de>
30873
30874 PR lto/50494
30875 * varasm.c (output_constant_def_1): Get the decl representing
30876 the constant as argument.
30877 (output_constant_def): Wrap output_constant_def_1.
30878 (make_decl_rtl): Use output_constant_def_1 with the decl
30879 representing the constant.
30880 (build_constant_desc): Optionally re-use a decl already
30881 representing the constant.
30882 (tree_output_constant_def): Adjust.
30883
40c059b1 308842013-03-06 Joey Ye <joey.ye@arm.com>
30885
30886 PR lto/50293
30887 * gcc.c (convert_white_space): New function.
30888 (main): Handles white space in function name.
30889
9fe603c3 308902013-03-06 Oleg Endo <olegendo@gcc.gnu.org>
30891
30892 PR target/56529
30893 * config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
30894 instead of TARGET_SH2 for call-table case. Do not set sh_div_strategy
30895 to SH_DIV_CALL_TABLE for TARGET_SH2.
30896 * config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
30897 list.
30898 * doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
30899 call-table options.
30900
24a5ae15 309012013-03-05 Sterling Augustine <saugustine@google.com>
30902 Cary Coutant <ccoutant@google.com>
30903
30904 PR debug/55364
30905 * dwarf2out.c (resolve_addr): Don't call
30906 remove_loc_list_addr_table_entries a second time for the same
30907 expression.
30908
848d0536 309092013-03-05 Jakub Jelinek <jakub@redhat.com>
d9c1b601 30910
848d0536 30911 PR debug/56510
30912 * cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming.
30913 (avoid_complex_debug_insns): New function.
30914 (expand_debug_locations): Call it.
30915
30916 PR rtl-optimization/56484
30917 * ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending
30918 lifetimes of hard registers on small register class machines.
30919
309202013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
30921
30922 * config/microblaze/microblaze-protos.h: Rename
d9c1b601 30923 microblaze_is_interrupt_handler to microblaze_is_interrupt_variant.
848d0536 30924 * config/microblaze/microblaze.c (microblaze_attribute_table): Add
d9c1b601 30925 fast_interrupt.
30926 (microblaze_fast_interrupt_function_p): New function.
30927 (microblaze_is_interrupt_handler): Rename to
30928 microblaze_is_interrupt_variant and add fast_interrupt check.
30929 (microblaze_must_save_register): Use microblaze_is_interrupt_variant.
30930 (save_restore_insns): Likewise.
30931 (compute_frame_size): Likewise.
30932 (microblaze_function_prologue): Add FAST_INTERRUPT_NAME.
30933 (microblaze_globalize_label): Likewise.
848d0536 30934 * config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME.
30935 * config/microblaze/microblaze.md: Use wrapper
d9c1b601 30936 microblaze_is_interrupt_variant.
30937
d641a4ab 309382013-03-05 Kai Tietz <ktietz@redhat.com>
30939
30940 * sdbout.c (sdbout_one_type): Switch to current function's section
30941 supporting cold/hot.
30942
31c66114 309432013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
76cc869a 30944
30945 * doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian,
30946 -mxl-reorder.
30947
a776325f 309482013-03-05 Jakub Jelinek <jakub@redhat.com>
30949
5ceebb21 30950 PR middle-end/56461
30951 * ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING,
30952 if VALGRIND_GET_VBITS is defined, temporarily make object
30953 memory all defined, and restore previous valgrind addressability
30954 and definability afterwards. Free this_object at the end.
30955
d3d0b390 30956 PR middle-end/56461
30957 * lra.c (lra): Call lra_clear_live_ranges if live_p,
30958 right before calling lra_create_live_ranges, also call it
30959 when clearing live_p. Only call lra_clear_live_ranges
30960 at the end if live_p.
30961
a776325f 30962 PR middle-end/56461
30963 * sched-deps.c (delete_dep_node): Free DEP_REPLACE.
30964
63628665 309652013-03-05 Richard Biener <rguenther@suse.de>
30966
30967 PR tree-optimization/56521
30968 * tree-ssa-sccvn.c (set_value_id_for_result): Always initialize
30969 value-id.
30970
390f4a4b 309712013-03-05 Steven Bosscher <steven@gcc.gnu.org>
30972
30973 PR c++/55135
30974 * except.h (remove_unreachable_eh_regions): New prototype.
30975 * except.c (remove_eh_handler_splicer): New function, split out
30976 of remove_eh_handler.
30977 (remove_eh_handler): Use remove_eh_handler_splicer. Add comment
30978 warning about running it on many EH regions one at a time.
30979 (remove_unreachable_eh_regions_worker): New function, walk the
30980 EH tree in depth-first order and remove non-marked regions.
30981 (remove_unreachable_eh_regions): New function.
30982 * tree-eh.c (mark_reachable_handlers): New function, split out
30983 from remove_unreachable_handlers.
30984 (remove_unreachable_handlers): Use mark_reachable_handlers and
30985 remove_unreachable_eh_regions.
30986 (remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
30987 and remove_unreachable_eh_regions.
30988
84087109 309892013-03-05 Richard Biener <rguenther@suse.de>
30990
30991 PR middle-end/56525
30992 * loop-init.c (fix_loop_structure): Remove loops in two stages,
30993 not freeing them until the end.
30994
a22cd2a7 309952013-03-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
30996
30997 * config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO.
30998
6de71799 309992013-03-05 Richard Biener <rguenther@suse.de>
31000
31001 PR tree-optimization/56270
31002 * tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts
31003 of loads after scheduling an SLP instance.
31004
6ae8a044 310052013-03-05 Jakub Jelinek <jakub@redhat.com>
31006
94ce8195 31007 * Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and
31008 tic6x.exp.
31009 (check_gcc_parallelize): Run guality.exp as a separate job from
31010 vect.exp with unsorted.exp and $(dg_target_exps) separately from
31011 struct-layout-1.exp with stackalign.exp.
31012
7a2f311c 31013 * alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap.
31014
cae603e9 31015 PR middle-end/56461
31016 * tree-vect-slp.c (vect_supported_load_permutation_p): Free
31017 load_index sbitmap even if some bit in it isn't set.
31018
b71850a1 31019 PR middle-end/56461
31020 * tree-ssa-loop-niter.c (bb_queue): Remove typedef.
31021 (discover_iteration_bound_by_body_walk): Change queues to
31022 vec<vec<basic_block> > and queue to vec<basic_block>. Fix up
31023 spelling in comment. Call safe_push on queues[bound_index] directly.
31024 Release queues[queue_index] in every iteration unconditionally.
31025 Release bounds vector.
31026
6ae8a044 31027 PR middle-end/56461
31028 * tree-vect-stmts.c (free_stmt_vec_info_vec): Call
31029 free_stmt_vec_info on any left-over stmt_vec_info in the vector.
31030 * tree-vect-loop.c (vect_create_epilog_for_reduction): Release
31031 inner_phis vector.
31032
c251ba7f 310332013-03-05 Richard Biener <rguenther@suse.de>
31034
31035 PR lto/56515
31036 * tree-inline.c (remap_blocks_to_null): New function.
31037 (expand_call_inline): When expanding a call stmt without
31038 an associated block inline remap all callee blocks to NULL.
31039
70639a9d 310402013-03-05 Jakub Jelinek <jakub@redhat.com>
31041
bdcf717b 31042 PR rtl-optimization/56494
31043 * simplify-rtx.c (simplify_truncation): If C is narrower than A,
31044 optimize (truncate:A (subreg:B (truncate:C X) 0)) into
31045 (subreg:A (truncate:C X) 0) instead of (truncate:A X).
31046
862c1934 31047 PR middle-end/56461
31048 * sel-sched-ir.c (free_sched_pools): Release
31049 succs_info_pool.stack[succs_info_pool.max_top] vectors too
31050 if succs_info_pool.max_top isn't -1.
31051
70639a9d 31052 PR bootstrap/56509
31053 * opts.c (opts_obstack, opts_concat): Moved to...
31054 * opts-common.c (opts_obstack, opts_concat): ... here.
31055
29d52322 310562013-03-04 Jakub Jelinek <jakub@redhat.com>
31057
31058 PR middle-end/56461
31059 * diagnostic.c (diagnostic_append_note): Save and restore old prefix.
31060
a1a00916 310612013-03-04 Martin Jambor <mjambor@suse.cz>
31062
31063 * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in
31064 all appropriate places.
31065
8ad1eb69 310662013-01-04 Eric Botcazou <ebotcazou@adacore.com>
31067
31068 PR tree-optimization/56424
31069 * ipa-split.c (split_function): Do not set the RSO flag if result is
31070 not by reference and its type is a register type.
31071
31c66114 310722013-03-04 David Holsgrove <david.holsgrove@xilinx.com>
4f12cc20 31073
862c63eb 31074 * config/microblaze/microblaze.c (microblaze_valid_pic_const): New
4f12cc20 31075 (microblaze_legitimate_pic_operand): Likewise
862c63eb 31076 * config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): calls
4f12cc20 31077 new function microblaze_legitimate_pic_operand
31078 * config/microblaze/microblaze-protos.h
31079 (microblaze_legitimate_pic_operand): Declare.
31080
31c66114 310812013-03-04 Edgar E. Iglesias <edgar.iglesias@gmail.com>
ff86513b 31082
31c66114 31083 * config/microblaze/predicates.md (call_insn_simple_operand):
ff86513b 31084 New predicate for supported rtx code types.
31c66114 31085 * config/microblaze/microblaze.md (call_internal1): Use
ff86513b 31086 call_insn_simple_operand predicate.
31087
033ee56d 310882013-03-04 Jakub Jelinek <jakub@redhat.com>
31089
b3df3de1 31090 PR middle-end/56461
31091 * tree-loop-distribution.c (ldist_gen): Call partition_free after each
31092 partitions.ordered_remove.
31093
1d4dcacf 31094 PR middle-end/56461
31095 * tree-vect-stmts.c (vectorizable_conversion): Don't call
31096 vec_oprnds0.create (1) for modifier == NONE.
31097
87c0beb4 31098 PR middle-end/56461
31099 * tree-vect-stmts.c (vectorizable_shift): Don't call create methods
31100 on vec_oprnds0 or vec_oprnds1 before loop, only call it on
31101 vec_oprnds1 right before pushing anything to it for
31102 scalar_shift_arg.
31103
033ee56d 31104 PR middle-end/56461
31105 * tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just
31106 set nbbs to 0 instead of having separate code path.
31107 (vect_analyze_loop_form): Call destroy_loop_vec_info with true
31108 instead of false as last argument if returning NULL.
31109
090eadfb 311102013-03-03 Sandra Loosemore <sandra@codesourcery.com>
31111
31112 * target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments;
31113 the attribute is now called "target" instead of "option".
31114 (TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma.
31115 * doc/tm.texi.in (Target Attributes): Likewise document the correct
31116 attribute/pragma name for TARGET_OPTION_VALID_P and
31117 TARGET_OPTION_PRAGMA_PARSE. Also copy-edit and correct markup.
31118 * doc/tm.texi: Regenerated.
31119
87c0beb4 311202013-03-02 David Holsgrove <david.holsgrove@xilinx.com>
db38a061 31121
87c0beb4 31122 * config/microblaze/microblaze.c:
db38a061 31123 Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met.
87c0beb4 31124 * config/microblaze/microblaze.h: Add -mxl-reorder to
31125 DRIVER_SELF_SPECS.
31126 * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2.
31127 instructions emitted if TARGET_REORDER.
862c63eb 31128 * config/microblaze/microblaze.opt: New option -mxl-reorder set to 1
31129 or 0 for -m/-mno case, but initialises as 2 to detect default use case
87c0beb4 31130 separately.
db38a061 31131
ae814dd3 311322013-03-01 Xinliang David Li <davidxl@google.com>
31133
31134 * tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
31135 walk length.
31136
57fad2bf 311372013-03-01 Jakub Jelinek <jakub@redhat.com>
31138
04437ab6 31139 PR middle-end/56461
31140 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
31141 vector even when returning true. Fix up function comment formatting.
31142
f9feeefd 31143 PR middle-end/56461
31144 * ira-build.c (ira_loop_nodes_count): New variable.
31145 (create_loop_tree_nodes): Initialize it.
31146 (finish_loop_tree_nodes): Use it instead of looking at current_loops.
31147
f40aaf2d 31148 PR middle-end/56461
31149 * tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
31150 method on dr_chain and result_chain.
31151 * tree-vect-stmts.c (vectorizable_store): Only call
31152 result_chain.create if j == 0.
31153
57fad2bf 31154 PR middle-end/56461
31155 * tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call
31156 vec_oprnds0->release (); rather than vec_oprnds0->truncate (0)
31157 before overwriting it.
31158
32ddc0d1 311592013-03-01 Tobias Burnus <burnus@net-b.de>
31160
31161 * doc/extended.texi (C Extensions): Change order in @menu
31162 to match @node.
31163 (Other MIPS Built-in Functions): Move last MIPS entry before
31164 "picoChip Built-in Functions".
31165 (SH Built-in Functions): Move after RX Built-in Functions.
31166 * doc/gcc.texi (Introduction): Change order in @menu
31167 to match @node.
31168 * doc/md.texi (Constraints): Ditto.
31169 * gty.texi (Type Information): Ditto.
31170 (User-provided marking routines for template types): Make
31171 subsection.
31172 * doc/invoke.texi (AArch64 Options): Move before
31173 "Adapteva Epiphany Options".
31174
a9196da9 311752013-02-28 Konstantin Serebryany <konstantin.s.serebryany@gmail.com>
31176 Jakub Jelinek <jakub@redhat.com>
31177
31178 PR sanitizer/56454
31179 * asan.c (gate_asan): Lookup no_sanitize_address instead of
31180 no_address_safety_analysis attribute.
31181 * doc/extend.texi (no_address_safety_attribute): Rename to
31182 no_sanitize_address attribute, mention no_address_safety_analysis
31183 attribute as deprecated alias.
31184
7f7695a7 311852013-02-28 Jakub Jelinek <jakub@redhat.com>
31186
31187 PR middle-end/56461
31188 * tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument
31189 type to vec<vec<tree> > *.
31190 * tree-vect-slp.c (vect_get_slp_defs): Likewise. Change vec_defs
31191 to be vec<tree> instead of vec<tree> *, set vec_defs
31192 to vNULL and call vec_defs.create (number_of_vects), adjust other
31193 uses of vec_defs.
31194 * tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call,
31195 vectorizable_condition): Adjust vect_get_slp_defs callers.
31196
9439bdfe 311972013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
31198
31199 * config/aarch64/aarch64.c
31200 (aarch64_float_const_representable): Remove unused variable.
31201
147f0a69 312022013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
31203
31204 * config/aarch64/aarch64.c (aarch64_mangle_type): Make static.
31205
4f164a9f 312062013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
31207
31208 * config/aarch64/aarch64-builtins.c
31209 (aarch64_init_simd_builtins): Make static.
31210
6d57cecd 312112013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
31212
31213 * config/aarch64/aarch64.c
31214 (aarch64_simd_make_constant): Make static.
31215
e3fa6175 312162013-02-28 Martin Jambor <mjambor@suse.cz>
31217
31218 * tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements
31219 with no initialization to the RHS of debug statements.
31220
2e1d16b0 312212013-02-28 Martin Jambor <mjambor@suse.cz>
31222
31223 PR tree-optimization/56294
31224 * tree-sra.c (analyze_access_subtree): Create replacement declarations.
31225 Adjust dumping.
31226 (get_access_replacement): Do not call create_access_replacement.
31227 Assert a replacement exists.
31228 (get_repl_default_def_ssa_name): Create the replacement declaration
31229 itself.
31230
2c8489a0 312312013-02-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
31232
31233 * config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and
31234 final_end_function.
31235
f3721e91 312362013-02-28 Marek Polacek <polacek@redhat.com>
31237
31238 PR rtl-optimization/56466
31239 * loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure
31240 if we're changing a loop.
31241 (peel_loops_completely): Likewise.
31242
a8877909 312432013-02-28 Paolo Carlini <paolo.carlini@oracle.com>
31244
31245 PR c++/55813
31246 * doc/invoke.texi ([-Wctor-dtor-privacy]): Complete.
31247
3e88585b 312482013-02-28 Georg-Johann Lay <avr@gjlay.de>
31249
31250 PR target/56445
31251 * config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty
31252 macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX,
31253 INTX_FTYPE_FX, FX_FTYPE_INTX.
31254 * config/avr/builtins.def: Adjust respective DEF_BUILTIN.
31255
724fcbc3 312562013-02-28 Georg-Johann Lay <avr@gjlay.de>
31257
31258 * avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285)
31259 (ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795)
31260 (atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb)
31261 (atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a)
31262 (atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1)
31263 (atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p)
31264 (atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb)
31265 (atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161)
31266 (atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e)
31267 (atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4)
31268 (atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3)
31269 (atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1)
31270 (atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva)
31271 (atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3)
31272 (atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU.
31273 (avrxmega6): Increase max flash segments from 5 to 6.
31274 * config/avr/t-multilib: Regenerate.
31275 * config/avr/avr-tables.opt: Regenerate.
31276 * doc/avr-mmcu.texi: Regenerate.
31277
28cd3cde 312782013-02-28 Georg-Johann Lay <avr@gjlay.de>
31279
31280 * config/avr/avr.h (device_to_arch): Rename to device_to_ld.
31281 (avr_device_to_arch): Rename to avr_device_to_ld.
31282 (avr_device_to_as): New prototype.
31283 (EXTRA_SPEC_FUNCTIONS): Add device_to_as.
31284 (ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=.
31285 * config/avr/driver-avr.c (avr_device_to_as): New.
31286 (avr_device_to_arch): Rename to avr_device_to_ld.
31287
3bda6402 312882013-02-27 Jakub Jelinek <jakub@redhat.com>
31289
1648f21f 31290 PR middle-end/56461
31291 * tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy
31292 method on dr_chain and result_chain.
31293
6a191849 31294 PR middle-end/56461
31295 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call
31296 pointer_set_destroy on not_executed_last_iteration.
31297
1224d221 31298 PR middle-end/56461
862c63eb 31299 * tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector.
1224d221 31300
c6d207aa 31301 PR middle-end/56461
31302 * ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
31303 FOR_EACH_DEFINED_FUNCTION when freeing state.
31304
73dcdb84 31305 PR middle-end/56461
31306 * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
31307 pool_free.
31308 (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
31309 overwriting it.
31310
e4898110 31311 PR middle-end/56461
31312 * ipa-cp.c (decide_whether_version_node): Call vec_free on
31313 known_aggs[i].items and release known_aggs vector.
31314
3bda6402 31315 PR middle-end/56461
31316 * ipa-reference.c (propagate): Free node_info even for alias nodes.
31317
313182013-02-27 Edgar E. Iglesias <edgar.iglesias@gmail.com>
e249ec67 31319
3bda6402 31320 * config/microblaze/microblaze.c (microblaze_emit_compare):
31321 Use xor for EQ/NE comparisions.
31322 * config/microblaze/microblaze.md (cstoresf4): Add constraints
31323 (cbranchsf4): Adjust operator to comparison_operator.
e249ec67 31324
dcd56d11 313252013-02-27 Jakub Jelinek <jakub@redhat.com>
31326
31327 PR middle-end/56461
31328 * tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
31329 vector.
31330 * tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
31331 vec_safe_push, always update *slot.
31332 (redirect_edge_var_map_clear): Use vec_free.
31333 (redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
31334 (free_var_map_entry): Use vec_free.
31335 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
31336 FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.
31337
936ab1d9 313382013-02-27 Andrey Belevantsev <abel@ispras.ru>
31339
31340 PR middle-end/45472
936ab1d9 31341 * sel-sched-ir.c (merge_expr): Also change vinsn of merged expr
31342 when the may_trap_p bit of the exprs being merged differs.
936ab1d9 31343 Reorder tests for speculativeness in the logical and operator.
31344
d5417a49 313452013-02-27 Jakub Jelinek <jakub@redhat.com>
31346
632c3914 31347 * incpath.c (add_standard_paths): Use reconcat instead of concat
31348 where appropriate and avoid leaking memory.
31349
ba30d337 31350 * opts.h: Include obstack.h.
31351 (opts_concat): New prototype.
31352 (opts_obstack): New declaration.
31353 * opts.c (opts_concat): New function.
31354 (opts_obstack): New variable.
31355 (init_options_struct): Call gcc_init_obstack on opts_obstack.
31356 (finish_options): Use opts_concat instead of concat
31357 and XOBNEWVEC instead of XNEWVEC.
31358 * opts-common.c (generate_canonical_option, decode_cmdline_option,
31359 generate_option): Likewise.
31360 * Makefile.in (OPTS_H): Depend on $(OBSTACK_H).
31361 * lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack.
31362
d5417a49 31363 PR target/56455
31364 * stmt.c (expand_switch_as_decision_tree_p): If flag_pic
31365 and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true.
31366
ed8fbc55 313672013-02-26 Jakub Jelinek <jakub@redhat.com>
31368
31369 PR middle-end/56461
31370 * lra-spills.c (lra_spill): Free spill_hard_reg at the end.
31371
931645bc 313722013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
31373
31374 * config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
31375 (arm_block_move_unaligned_straight): Likewise.
31376 (arm_adjust_block_mem): Likewise.
31377
7b04a0cb 313782013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
31379
31380 PR target/48901
31381 * config/lm32/lm32.c (gen_int_relational): Remove unused variables
31382 temp, cond and label.
31383 * config/lm32/lm32.md (ashlsi3): Remove unused variable one.
31384
5d77e25b 31385 PR target/52500
31386 * config/c6x/c6x.c (dbx_register_map): Change to unsigned.
31387 * config/c6x/c6x.h (dbx_register_map): Update declaration.
31388
e8b0bf40 31389 PR target/52501
31390 * config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end
31391 of prologue/epilogue functions.
31392
7ae884c9 31393 PR target/52550
31394 * config/tilegx/tilegx.c (tilegx_expand_prologue):
31395 Remove unused variable cfa_offset.
31396 * config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise.
31397
df70f973 31398 PR target/54639
31399 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset
31400 type promotion to unsigned.
31401
5e10bd08 31402 PR target/54640
31403 * config/arm/arm.c (const_ok_for_dimode_op): Make code consistent
31404 for HOST_WIDE_INT of 32 bit / same size as int.
31405 (arm_block_move_unaligned_straight): Likewise.
31406 (arm_adjust_block_mem): Likewise.
31407
46645ed9 31408 PR target/54662
31409 * config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of
31410 ALL_CFLAGS.
31411
9df082d2 314122013-02-26 Marek Polacek <polacek@redhat.com>
31413
31414 PR tree-optimization/56426
862c63eb 31415 * tree-ssa-loop.c (tree_ssa_loop_init): Always call scev_initialize.
9df082d2 31416
258f96b3 314172013-02-26 Richard Biener <rguenther@suse.de>
31418
31419 PR target/56444
31420 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove
31421 unused variable loops.
31422
50c96f17 314232013-02-26 Jakub Jelinek <jakub@redhat.com>
31424
db08f1c6 31425 PR tree-optimization/56448
31426 * fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at
31427 TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF.
31428 Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or
31429 later operands of the references, or even first operand for
31430 INDIRECT_REF, TARGET_MEM_REF or MEM_REF.
31431
50c96f17 31432 PR tree-optimization/56443
31433 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
31434 overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
31435 to type_for_mode langhook.
31436
28c83d49 314372013-02-25 Matt Turner <mattst88@gmail.com>
31438
31439 * doc/invoke.texi: Document r4700.
31440
750e47f5 314412013-02-25 Richard Biener <rguenther@suse.de>
31442
31443 PR tree-optimization/56175
31444 * tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate,
31445 split out from ...
31446 (simplify_bitwise_binary): ... here. Also guard the conversion
31447 of (type) X op CST to (type) (X op ((type-x) CST)) with it.
31448
ca7a473f 314492013-02-25 Catherine Moore <clm@codesourcery.com>
31450
31451 Revert:
31452 2013-02-24 Catherine Moore <clm@codesourcery.com>
31453 Maciej W. Rozycki <macro@codesourcery.com>
31454 Tom de Vries <tom@codesourcery.com>
31c66114 31455 Nathan Sidwell <nathan@codesourcery.com>
ca7a473f 31456 Iain Sandoe <iain@codesourcery.com>
31457 Nathan Froyd <froydnj@codesourcery.com>
31c66114 31458 Chao-ying Fu <fu@mips.com>
862c63eb 31459
ca7a473f 31460 * doc/extend.texi: (micromips, nomicromips, nocompression):
862c63eb 31461 Document new function attributes.
ca7a473f 31462 * doc/invoke.texi (minterlink-compressed, mmicromips,
31463 m14k, m14ke, m14kec): Document new options.
31464 (minterlink-mips16): Update documentation.
31465 * doc/md.texi (ZC, ZD): Document new constraints.
31466 * configure.ac (gcc_cv_as_micromips): Check if linker
31467 supports the .set micromips directive.
31468 * configure: Regenerate.
31469 * config.in: Regenerate.
31470 * config/mips/mips-tables.opt: Regenerate.
31471 * config/mips/micromips.md: New file.
31472 * constraints.md (ZC, AD): New constraints.
31473 * config/mips/predicates.md (movep_src_register): New predicate.
31474 (movep_src_operand): New predicate.
31475 (non_volatile_mem_operand): New predicate.
31476 * config/mips/mips.md (multimem): New type.
31477 (length): Differentiate between 17-bit and 18-bit branch offsets.
31478 (MOVEP1, MOVEP2): New mode iterator.
31479 (mov_<load>l): Use ZC constraint.
31480 (mov_<load>r): Likewise.
31481 (mov_<store>l): Likewise.
31482 (mov_<store>r): Likewise.
31483 (*branch_equality<mode>_inverted): Add microMIPS support.
31484 (*branch_equality<mode>): Likewise.
31485 (*jump_absolute): Likewise.
31486 (indirect_jump_<mode>): Likewise.
31487 (tablejump_<mode>): Likewise.
31488 (<optab>_internal): Likewise.
31489 (sibcall_internal): Likewise.
31490 (sibcall_value_internal): Likewise.
31491 (prefetch): Use constraint ZD.
31492 * config/mips/mips.opt (minterlink-compressed): New option.
31493 (minterlink-mips16): Now an alias for minterlink-compressed.
31494 (mmicromips): New option.
31495 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
31496 (compare_and_swap_12): Likewise.
31497 (sync_add<mode>): Likewise.
31498 (sync_<optab>_12): Likewise.
31499 (sync_old_<optab>_12): Likewise.
31500 (sync_new_<optab>_12): Likewise.
31501 (sync_nand_12): Likewise.
31502 (sync_old_nand_12): Likewise.
31503 (sync_new_nand_12): Likewise.
31504 (sync_sub<mode>): Likewise.
31505 (sync_old_add<mode>): Likewise.
31506 (sync_old_sub<mode>): Likewise.
31507 (sync_new_add<mode>): Likewise.
31508 (sync_new_sub<mode>): Likewise.
31509 (sync_<optab><mode>): Likewise.
31510 (sync_old_<optab><mode>): Likewise.
31511 (sync_new_<optab><mode>): Likewise.
31512 (sync_nand<mode>): Likewise.
31513 (sync_old_nand<mode>): Likewise.
31514 (sync_new_nand<mode>): Likewise.
31515 (sync_lock_test_and_set<mode>): Likewise.
31516 (test_and_set_12): Likewise.
31517 (atomic_compare_and_swap<mode>): Likewise.
31518 (atomic_exchange<mode>_llsc): Likewise.
31519 (atomic_fetch_add<mode>_llsc): Likewise.
31520 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
31521 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
31522 (umips_save_restore_pattern_p): Likewise.
31523 (umips_load_store_pair_p): Likewise.
31524 (umips_output_load_store_pair): Likewise.
31525 (umips_movep_target_p): Likewise.
31526 (umips_12bit_offset_address_p): Likewise.
31527 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
31528 (mips_base_mips16): Rename this...
31529 (mips_base_compression_flags): ...to this. Update all uses.
31530 (mips_attribute_table): Add micromips, nomicromips and nocompression.
31531 (mips_mips16_decl_p): Delete.
31532 (mips_nomips16_decl_p): Delete.
31533 (mips_get_compress_on_flags): New function.
31534 (mips_get_compress_off_flags): New function.
31535 (mips_get_compress_mode): New function.
31536 (mips_get_compress_on_name): New function.
31537 (mips_get_compress_off_name): New function.
31538 (mips_insert_attributes): Support multiple compression types.
31539 (mips_merge_decl_attributes): Likewise.
31540 (umips_12bit_offset_address_p): New function.
31541 (mips_start_function_definition): Emit .set micromips directive.
31542 (mips_call_may_need_jalx_p): New function.
31543 (mips_function_ok_for_sibcall): Add microMIPS support.
31544 (mips_print_operand_punctuation): Support short delay slots and
31545 compact jumps.
31546 (umips_swm_mask, umips_swm_encoding): New.
31547 (umips_build_save_restore): New function.
31548 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
31549 (was_mips16_p): Remove.
31550 (old_compression_mode): New.
31551 (mips_set_compression_mode): New function.
31552 (mips_set_current_function): Add microMIPS support.
31553 (mips_option_override): Likewise.
31554 (umips_save_restore_pattern_p): New function.
31555 (umips_output_save_restore): New function.
31556 (umips_load_store_pair_p_1): New function.
31557 (umips_load_store_pair_p): New function.
31558 (umips_output_load_store_pair_1): New function.
31559 (umips_output_load_store_pair): New function.
31560 (umips_movep_target_p) New function.
31561 (mips_prepare_pch_save): Add microMIPS support.
31562 * config/mips/mips.h (TARGET_COMPRESSION): New.
31563 (TARGET_CPU_CPP_BUILTINS): Update macro
31564 to use new compression flags and to support microMIPS.
31565 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
31566 (MIPS_ARCH_FLOAT_SPEC): Likewise.
31567 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
31568 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
31569 (ASM_SPEC): Support mmicromips and mno-micromips.
31570 (M16STORE_REG_P): New macro.
31571 (MIPS_CALL): Support TARGET_MICROMIPS.
31572 (MICROMIPS_J): New macro.
31573 (mips_base_mips16): Rename this...
31574 (mips_base_compression_flags): ...to this.
31575 (UMIPS_12BIT_OFFSET_P): New macro.
31576 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
31577 (MULTILIB_DIRNAMES): Likewise.
31578
6de7acd5 315792013-02-25 Tom de Vries <tom@codesourcery.com>
31580
31581 PR rtl-optimization/56131
31582 * insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment.
31583 * cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and
31584 NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL.
31585
2d0b2b60 315862013-02-25 Tobias Burnus <burnus@net-b.de>
31587
31588 * doc/invoke.texi (-fsanitize=): Move from optimization
31589 to debugging options.
31590
f22426d2 315912013-02-25 Andrey Belevantsev <abel@ispras.ru>
31592
31593 * sched-deps.c (sched_analyze_insn): Fix typo in comment.
31594
e965825b 315952013-02-25 Andrey Belevantsev <abel@ispras.ru>
31596 Alexander Monakov <amonakov@ispras.ru>
31597
31598 PR middle-end/56077
31599 * sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
31600 flush pending lists also on non-jumps. Adjust comment.
31601
7fd93f9c 316022013-02-24 Catherine Moore <clm@codesourcery.com>
31603 Maciej W. Rozycki <macro@codesourcery.com>
31604 Tom de Vries <tom@codesourcery.com>
31c66114 31605 Nathan Sidwell <nathan@codesourcery.com>
7fd93f9c 31606 Iain Sandoe <iain@codesourcery.com>
31607 Nathan Froyd <froydnj@codesourcery.com>
31c66114 31608 Chao-ying Fu <fu@mips.com>
7fd93f9c 31609
31610 * doc/extend.texi: (micromips, nomicromips, nocompression):
862c63eb 31611 Document new function attributes.
7fd93f9c 31612 * doc/invoke.texi (minterlink-compressed, mmicromips,
31613 m14k, m14ke, m14kec): Document new options.
31614 (minterlink-mips16): Update documentation.
31615 * doc/md.texi (ZC, ZD): Document new constraints.
31616 * configure.ac (gcc_cv_as_micromips): Check if linker
31617 supports the .set micromips directive.
31618 * configure: Regenerate.
31619 * config.in: Regenerate.
31620 * config/mips/mips-tables.opt: Regenerate.
31621 * config/mips/micromips.md: New file.
31622 * constraints.md (ZC, AD): New constraints.
31623 * config/mips/predicates.md (movep_src_register): New predicate.
31624 (movep_src_operand): New predicate.
31625 (non_volatile_mem_operand): New predicate.
31626 * config/mips/mips.md (multimem): New type.
31627 (length): Differentiate between 17-bit and 18-bit branch offsets.
31628 (MOVEP1, MOVEP2): New mode iterator.
2d0b2b60 31629 (mov_<load>l): Use ZC constraint.
7fd93f9c 31630 (mov_<load>r): Likewise.
31631 (mov_<store>l): Likewise.
31632 (mov_<store>r): Likewise.
31633 (*branch_equality<mode>_inverted): Add microMIPS support.
31634 (*branch_equality<mode>): Likewise.
31635 (*jump_absolute): Likewise.
31636 (indirect_jump_<mode>): Likewise.
31637 (tablejump_<mode>): Likewise.
31638 (<optab>_internal): Likewise.
31639 (sibcall_internal): Likewise.
31640 (sibcall_value_internal): Likewise.
31641 (prefetch): Use constraint ZD.
31642 * config/mips/mips.opt (minterlink-compressed): New option.
31643 (minterlink-mips16): Now an alias for minterlink-compressed.
31644 (mmicromips): New option.
31645 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
31646 (compare_and_swap_12): Likewise.
31647 (sync_add<mode>): Likewise.
31648 (sync_<optab>_12): Likewise.
31649 (sync_old_<optab>_12): Likewise.
31650 (sync_new_<optab>_12): Likewise.
31651 (sync_nand_12): Likewise.
31652 (sync_old_nand_12): Likewise.
31653 (sync_new_nand_12): Likewise.
31654 (sync_sub<mode>): Likewise.
31655 (sync_old_add<mode>): Likewise.
31656 (sync_old_sub<mode>): Likewise.
31657 (sync_new_add<mode>): Likewise.
31658 (sync_new_sub<mode>): Likewise.
31659 (sync_<optab><mode>): Likewise.
31660 (sync_old_<optab><mode>): Likewise.
31661 (sync_new_<optab><mode>): Likewise.
31662 (sync_nand<mode>): Likewise.
31663 (sync_old_nand<mode>): Likewise.
31664 (sync_new_nand<mode>): Likewise.
31665 (sync_lock_test_and_set<mode>): Likewise.
31666 (test_and_set_12): Likewise.
31667 (atomic_compare_and_swap<mode>): Likewise.
31668 (atomic_exchange<mode>_llsc): Likewise.
31669 (atomic_fetch_add<mode>_llsc): Likewise.
31670 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
31671 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
31672 (umips_save_restore_pattern_p): Likewise.
31673 (umips_load_store_pair_p): Likewise.
31674 (umips_output_load_store_pair): Likewise.
31675 (umips_movep_target_p): Likewise.
31676 (umips_12bit_offset_address_p): Likewise.
31677 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
31678 (mips_base_mips16): Rename this...
31679 (mips_base_compression_flags): ...to this. Update all uses.
31680 (mips_attribute_table): Add micromips, nomicromips and nocompression.
31681 (mips_mips16_decl_p): Delete.
31682 (mips_nomips16_decl_p): Delete.
2d0b2b60 31683 (mips_get_compress_on_flags): New function.
7fd93f9c 31684 (mips_get_compress_off_flags): New function.
31685 (mips_get_compress_mode): New function.
31686 (mips_get_compress_on_name): New function.
31687 (mips_get_compress_off_name): New function.
31688 (mips_insert_attributes): Support multiple compression types.
31689 (mips_merge_decl_attributes): Likewise.
31690 (umips_12bit_offset_address_p): New function.
31691 (mips_start_function_definition): Emit .set micromips directive.
31692 (mips_call_may_need_jalx_p): New function.
31693 (mips_function_ok_for_sibcall): Add microMIPS support.
31694 (mips_print_operand_punctuation): Support short delay slots and
31695 compact jumps.
31696 (umips_swm_mask, umips_swm_encoding): New.
31697 (umips_build_save_restore): New function.
31698 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
31699 (was_mips16_p): Remove.
31700 (old_compression_mode): New.
31701 (mips_set_compression_mode): New function.
31702 (mips_set_current_function): Add microMIPS support.
31703 (mips_option_override): Likewise.
31704 (umips_save_restore_pattern_p): New function.
31705 (umips_output_save_restore): New function.
31706 (umips_load_store_pair_p_1): New function.
31707 (umips_load_store_pair_p): New function.
31708 (umips_output_load_store_pair_1): New function.
31709 (umips_output_load_store_pair): New function.
31710 (umips_movep_target_p) New function.
31711 (mips_prepare_pch_save): Add microMIPS support.
31712 * config/mips/mips.h (TARGET_COMPRESSION): New.
31713 (TARGET_CPU_CPP_BUILTINS): Update macro
31714 to use new compression flags and to support microMIPS.
31715 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
31716 (MIPS_ARCH_FLOAT_SPEC): Likewise.
31717 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
31718 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
31719 (ASM_SPEC): Support mmicromips and mno-micromips.
31720 (M16STORE_REG_P): New macro.
31721 (MIPS_CALL): Support TARGET_MICROMIPS.
31722 (MICROMIPS_J): New macro.
31723 (mips_base_mips16): Rename this...
31724 (mips_base_compression_flags): ...to this.
31725 (UMIPS_12BIT_OFFSET_P): New macro.
31726 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
31727 (MULTILIB_DIRNAMES): Likewise.
31728
9a9a97e2 317292013-02-24 Jakub Jelinek <jakub@redhat.com>
31730
31731 PR target/52555
31732 * target-globals.c (save_target_globals): For init_reg_sets and
31733 target_reinit remporarily set this_fn_optabs to this_target_optabs.
31734
21ebaa24 317352013-02-22 James Greenhalgh <james.greenhalgh@arm.com>
752358b2 31736
31737 * config/aarch64/aarch64-simd-builtins.def: Add copyright header.
31738 * config/aarch64/t-aarch64
31739 (aarch64-builtins.o): Depend on aarch64-simd-builtins.def.
31740
8c3a9b39 317412013-02-22 Vladimir Makarov <vmakarov@redhat.com>
31742
31743 PR inline-asm/56148
31744 * lra-constraints.c (process_alt_operands): Reload operand
31745 conflicting with earlier clobber only if no more other conflicting
31746 operands.
31747
a16e0d2d 317482013-02-22 Jakub Jelinek <jakub@redhat.com>
31749
31750 PR sanitizer/56393
31751 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o
31752 if not linking a shared library.
31753
0e0256f2 317542013-02-22 Seth LaForge <sethml@google.com>
31755
31756 * config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian.
31757
6aa689e8 317582013-02-22 Greta Yorsh <Greta.Yorsh@arm.com>
31759
2d0b2b60 31760 * config/arm/arm.md (split for extendsidi): Update condition.
31761 (zero_extend<mode>di2,extend<mode>di2): Add an alternative.
31762 * config/arm/iterators.md (qhs_extenddi_cstr): Likewise.
31763 (qhs_zextenddi_cstr): Likewise.
6aa689e8 31764
4d5cf08a 317652013-02-21 Jakub Jelinek <jakub@redhat.com>
31766
af0907da 31767 PR middle-end/56420
31768 * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to
31769 avoid signed wrapping.
31770 (expand_mult): Handle properly multiplication by
31771 ((dword_type) -1) << (BITS_PER_WORD - 1). Improve multiplication by
31772 ((dword_type) 1) << (BITS_PER_WORD - 1). Avoid undefined behavior
31773 in the compiler if coeff is HOST_WIDE_INT_MIN.
31774 (expand_divmod): Don't make ext_op1 static, change it's type to
31775 uhwi. Avoid undefined behavior in -INTVAL (op1).
31776
4d5cf08a 31777 PR rtl-optimization/50339
31778 * lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt
31779 field.
31780 * lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT.
31781 (compute_costs): Call compute_splitting_shift also for ASHIFTRT
31782 into splitting_ashiftrt field.
31783 (find_decomposable_shift_zext, resolve_shift_zext): Handle also
31784 ASHIFTRT.
31785 (dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT
31786 choices.
31787
ded1a556 317882013-02-20 Aldy Hernandez <aldyh@redhat.com>
31789
31790 PR middle-end/56108
31791 * trans-mem.c (execute_tm_mark): Do not expand transactions that
31792 are sure to go irrevocable.
31793
16a3d053 317942013-02-21 Hans-Peter Nilsson <hp@axis.com>
31795
31796 * doc/rtl.texi (vec_concat, vec_duplicate): Mention that
31797 scalars are valid operands.
31798
9bd3a517 317992013-02-21 Martin Jambor <mjambor@suse.cz>
31800
31801 PR tree-optimization/56310
31802 * ipa-cp.c (agg_replacements_to_vector): New parameter index, copy
31803 only matching indices and non-negative final offsets.
31804 (intersect_aggregates_with_edge): Pass src_idx to
31805 agg_replacements_to_vector. Pass src_idx insstead of index to
31806 intersect_with_agg_replacements.
31807
cfb368a3 318082013-02-21 Martin Jambor <mjambor@suse.cz>
31809
31810 * ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold
31811 instead of hard-wired defaults.
31812
c856a95f 318132013-02-21 Maciej W. Rozycki <macro@codesourcery.com>
31814
31815 * doc/invoke.texi (MIPS Options): Update documentation of the
31816 floating-point multiply-accumulate instruction restrictions.
31817
9dff5bbc 318182013-02-21 Kostya Serebryany <kcc@google.com>
5a59af67 31819
31820 * config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as
31821 asan_shadow_offset on x86_64 linux.
31822
7662ff7e 318232013-02-21 Richard Biener <rguenther@suse.de>
31824
31825 PR tree-optimization/56415
31826 Revert
31827 2013-02-11 Richard Biener <rguenther@suse.de>
31828
31829 PR tree-optimization/56273
31830 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
31831 first VRP run.
31832
28a9e8c4 318332013-02-21 Jakub Jelinek <jakub@redhat.com>
31834
551e6483 31835 PR bootstrap/56258
31836 * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
31837 instead of @itemx.
31838
28a9e8c4 31839 PR inline-asm/56405
31840 * expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
31841 use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.
31842
16473e06 318432013-02-20 Jan Hubicka <jh@suse.cz>
31844
31845 PR tree-optimization/56265
862c63eb 31846 * ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph
31847 when target is referenced for first time.
16473e06 31848
560965e9 318492013-02-20 Richard Biener <rguenther@suse.de>
31850
31851 * tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
31852 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
31853 * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
31854 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
31855 not return anything.
31856 (rename_ssa_copies): Do not remove unused locals.
31857 * tree-ssa-ccp.c (do_ssa_ccp): Likewise.
862c63eb 31858 * tree-ssanames.c (pass_release_ssa_names): Remove unused locals first.
560965e9 31859 * passes.c (execute_function_todo): Do not schedule unused locals
31860 removal if cleanup_tree_cfg did something.
31861 * tree-ssa-live.c (remove_unused_locals): Dump statistics
31862 about the number of removed locals.
31863
2510e5cd 318642013-02-20 Richard Biener <rguenther@suse.de>
31865
31866 PR tree-optimization/56398
862c63eb 31867 * tree-vect-loop-manip.c (adjust_debug_stmts): Skip SSA default defs.
2510e5cd 31868
170754bc 318692013-02-20 Martin Jambor <mjambor@suse.cz>
31870
31871 PR tree-optimization/55334
31872 * ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
31873 restricted pointers to arrays.
31874
285df01b 318752013-02-20 Richard Biener <rguenther@suse.de>
862c63eb 31876 Jakub Jelinek <jakub@redhat.com>
285df01b 31877
31878 PR tree-optimization/56396
31879 * tree-ssa-ccp.c (n_const_val): New static variable.
31880 (get_value): Return NULL for SSA names we don't have a lattice
31881 entry for.
31882 (ccp_initialize): Initialize n_const_val.
31883 * tree-ssa-copy.c (n_copy_of): New static variable.
31884 (init_copy_prop): Initialize n_copy_of.
31885 (get_value): Return NULL_TREE for SSA names we don't have a
31886 lattice entry for.
31887
1cf0acc3 318882013-02-20 Martin Jambor <mjambor@suse.cz>
31889
31890 * ipa-cp.c (initialize_node_lattices): Fix dumping condition.
31891
0b588b3d 318922013-02-20 Richard Biener <rguenther@suse.de>
31893
31894 * genpreds.c (write_lookup_constraint): Do not compare first
31895 letter of the constraint again.
31896
d2ec9d3b 318972013-02-20 Richard Biener <rguenther@suse.de>
31898
31899 * tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits
31900 and ceil_log2.
31901 (get_use_iv_cost): Terminate hashtable walk when coming across
31902 an empty entry.
31903
18daa717 319042013-02-20 Igor Zamyatin <igor.zamyatin@intel.com>
31905
31906 * config/i386/i386.c (initial_ix86_tune_features): Turn on fp
31907 reassociation for avx2 targets.
31908
31c66114 319092012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
d2ec9d3b 31910
f8a5cd80 31911 * config/microblaze/microblaze.c: microblaze_has_clz = 0
31912 Add version check for v8.10.a to enable microblaze_has_clz
862c63eb 31913 * config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined
f8a5cd80 31914 version and TARGET_PATTERN_COMPARE check
31915 * config/microblaze/microblaze.md: New clzsi2 instruction
2d0b2b60 31916
31c66114 319172012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
dd21a8f3 31918
31c66114 31919 * config/microblaze/microblaze.md (call_value_intern): Check symbol is
dd21a8f3 31920 function before branching.
31921
09a6d85b 319222012-02-19 Andrey Belevantsev <abel@ispras.ru>
31923
31924 * sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set
31925 DUMP_INSN_RTX_UID.
31926 (dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim.
31927
3e1f1f1a 319282012-02-19 Andrey Belevantsev <abel@ispras.ru>
31929
31930 PR middle-end/55889
3e1f1f1a 31931 * sel-sched.c: Include ira.h.
31932 (implicit_clobber_conflict_p): New function.
31933 (moveup_expr): Use it.
862c63eb 31934 * Makefile.in (sel-sched.o): Depend on ira.h.
3e1f1f1a 31935
82a7a70c 319362013-02-19 Richard Biener <rguenther@suse.de>
31937
31938 PR tree-optimization/56384
31939 * tree-ssa-sccvn.h (struct vn_phi_s): Add type member.
31940 (vn_hash_type): Split out from ...
31941 (vn_hash_constant_with_type): ... here.
31942 * tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type.
31943 (vn_phi_eq): Compare types from vn_phi_s structure.
31944 (vn_phi_lookup): Populate vn_phi_s type.
31945 (vn_phi_insert): Likewise.
31946
15c27dda 319472013-02-19 Jakub Jelinek <jakub@redhat.com>
31948
a82fc9c6 31949 PR tree-optimization/56350
31950 * tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
31951 if haven't found reduction or nested cycle operand, rather than
31952 asserting we must find it.
31953
15c27dda 31954 PR tree-optimization/56381
31955 * tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
31956 to fold_build3.
31957
319582013-02-18 Aldy Hernandez <aldyh@redhat.com>
08c7d04b 31959 Jakub Jelinek <jakub@redhat.com>
31960
31961 PR target/52555
31962 * genopinit.c (raw_optab_handler): Use this_fn_optabs.
31963 (swap_optab_enable): Same.
31964 (init_all_optabs): Use argument instead of global.
862c63eb 31965 * tree.h (struct tree_optimization_option): New field target_optabs.
08c7d04b 31966 * expr.h (init_all_optabs): Add argument to prototype.
31967 (TREE_OPTIMIZATION_OPTABS): New.
31968 (save_optabs_if_changed): Protoize.
31969 * optabs.h: Declare this_fn_optabs.
31970 * optabs.c (save_optabs_if_changed): New.
31971 Declare this_fn_optabs.
31972 (init_optabs): Add argument to init_all_optabs() call.
31973 * function.c (invoke_set_current_function_hook): Handle per
31974 function optabs.
31975 * function.h (struct function): New field optabs.
31976 * config/mips/mips.c (mips_set_mips16_mode): Handle when
31977 optimization_current_node has changed.
31978 * target-globals.h (save_target_globals_default_opts): Protoize.
31979 * target-globals.c (save_target_globals_default_opts): New.
31980
4883d82f 319812013-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
31982
31983 PR target/56347
31984 * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
31985 registers %fr12 and %fr12R as call used.
172258a4 31986
31987 PR target/56214
31988 * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
862c63eb 31989 and HImode, require all displacements to be an integer multiple of
31990 their mode size.
172258a4 31991 * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses,
31992 only allow QImode and HImode when reload is in progress and strict is
31993 true. Likewise for symbolic addresses. Use base14_operand to check
31994 displacements in REG+BASE addresses.
31995
abad9af1 319962013-02-18 Richard Biener <rguenther@suse.de>
31997
31998 PR tree-optimization/56366
31999 * tree-vect-loop.c (get_initial_def_for_induction): Properly
32000 handle sign-conversion of outer-loop initial induction value.
32001
b375c775 320022013-02-18 Richard Biener <rguenther@suse.de>
32003
1450b4dd 32004 PR middle-end/56349
b375c775 32005 * cfghooks.c (merge_blocks): If we merge a latch into another
32006 block adjust references to it.
32007 * cfgloop.c (flow_loops_find): Reset latch before recomputing it.
32008 (verify_loop_structure): Verify that a recorded latch is in fact
32009 a latch.
32010
e6b37e57 320112013-02-18 Richard Biener <rguenther@suse.de>
32012
32013 PR tree-optimization/56321
32014 * tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
32015 order SSA name release and virtual operand unlinking.
32016
71cfadef 320172013-02-17 Edgar E. Iglesias <edgar.iglesias@gmail.com>
32018
32019 * config/microblaze/microblaze.md (save_stack_block): Define.
32020 (restore_stack_block): Likewise.
32021
f9ca9e46 320222013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
32023
32024 * config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1.
32025 * config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1.
32026 * config/microblaze/microblaze.c (microblaze_option_override):
32027 Bail out early for PIC modes when target does not support PIC.
32028
10baa3f3 320292013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
32030
862c63eb 32031 * config/microblaze/microblaze.c (microblaze_asm_trampoline_template):
10baa3f3 32032 Replace with a microblaze version.
32033 (microblaze_trampoline_init): Adapt for microblaze.
9a26e430 32034 * config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for
10baa3f3 32035 microblaze.
32036
d9dc05a1 320372013-02-16 Jakub Jelinek <jakub@redhat.com>
32038 Dodji Seketeli <dodji@redhat.com>
32039
32040 PR asan/56330
862c63eb 32041 * asan.c (get_mem_refs_of_builtin_call): White space and style cleanup.
d9dc05a1 32042 (instrument_mem_region_access): Do not forget to always put
32043 instrumentation of the of 'base' and 'base + len' in a "if (len !=
32044 0) statement, even for cases where either 'base' or 'base + len'
32045 are not instrumented -- because they have been previously
32046 instrumented. Simplify the logic by putting all the statements
32047 instrument 'base + len' inside a sequence, and then insert that
32048 sequence right before the current insertion point. Then, to
32049 instrument 'base + len', just get an iterator on that statement.
32050 And do not forget to update the pointer to iterator the function
32051 received as argument.
32052
a27d5d8c 320532013-02-15 Vladimir Makarov <vmakarov@redhat.com>
32054
32055 PR rtl-optimization/56348
32056 * lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos.
32057
69df7536 320582013-02-15 Steven Bosscher <steven@gcc.gnu.org>
32059
32060 * graph.c (start_graph_dump): Print dumpfile base as digraph label.
32061 (clean_graph_dump_file): Pass base to start_graph_dump.
32062
36c98bd9 320632013-02-14 Richard Henderson <rth@redhat.com>
32064
32065 PR target/55941
32066 * lower-subreg.c (simple_move): Check dest mode instead of src mode.
32067
6975c724 320682013-02-14 Steven Bosscher <steven@gcc.gnu.org>
32069
32070 * collect2-aix.h: Define F_LOADONLY.
32071
ca797a74 320722013-02-14 Richard Biener <rguenther@suse.de>
32073
32074 PR lto/50494
32075 * varasm.c (output_constant_def_1): Get the decl representing
32076 the constant as argument.
32077 (output_constant_def): Wrap output_constant_def_1.
32078 (make_decl_rtl): Use output_constant_def_1 with the decl
32079 representing the constant.
32080 (build_constant_desc): Optionally re-use a decl already
32081 representing the constant.
32082 (tree_output_constant_def): Adjust.
32083
0f2b58ae 320842013-02-14 Dodji Seketeli <dodji@redhat.com>
32085
32086 Fix an asan crash
32087 * asan.c (instrument_builtin_call): Really put the length of the
32088 second source argument into src1_len.
32089
e8d4d8a9 320902013-02-13 Jakub Jelinek <jakub@redhat.com>
32091
32092 * asan.c (create_cond_insert_point): Add create_then_fallthru_edge
32093 argument. If it is false, don't create edge from then_bb to
32094 fallthru_bb.
32095 (insert_if_then_before_iter): Pass true to it.
32096 (build_check_stmt): Pass false to it.
32097 (transform_statements): Flush hash table only on extended basic
32098 block boundaries, rather than at the beginning of every bb.
32099 Don't flush hash table on nonfreeing_call_p calls.
32100 * tree-flow.h (nonfreeing_call_p): New prototype.
32101 * tree-ssa-phiopt.c (nonfreeing_call_p): No longer static.
32102
944c7922 321032013-02-13 David S. Miller <davem@davemloft.net>
32104
32105 * expmed.c (expand_shift_1): Only strip scalar integer subregs.
32106
f03b2d9d 321072013-02-13 Vladimir Makarov <vmakarov@redhat.com>
32108
32109 PR target/56184
32110 * ira.c (max_regno_before_ira): Move from ...
32111 (ira): ... here.
32112 (fix_reg_equiv_init): Use max_regno_before_ira instead of
32113 vec_safe_length.
32114
77c5abed 321152013-02-13 Jakub Jelinek <jakub@redhat.com>
32116
32117 * config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.
32118
ecfa1cec 321192013-02-13 Richard Biener <rguenther@suse.de>
32120
32121 PR lto/56295
32122 * gimple-streamer-out.c (output_gimple_stmt): Undo wrapping
32123 globals in MEM_REFs.
32124
51f707ce 321252013-02-13 Richard Biener <rguenther@suse.de>
32126
32127 * loop-init.c (loop_optimizer_init): Clear loop state when
32128 re-initializing preserved loops.
32129 * loop-unswitch.c (unswitch_single_loop): Return whether
32130 we unswitched the loop. Do not verify loop state here.
862c63eb 32131 (unswitch_loops): When we unswitched a loop discover new loops.
51f707ce 32132
7da89e80 321332013-02-13 Kostya Serebryany <kcc@google.com>
32134
862c63eb 32135 * config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset
32136 on x86_64 linux.
7da89e80 32137 * sanitizer.def: Rename __asan_init to __asan_init_v1.
32138
c31c80df 321392013-02-12 Dodji Seketeli <dodji@redhat.com>
32140
32141 Avoid instrumenting duplicated memory access in the same basic block
32142 * Makefile.in (asan.o): Add new dependency on hash-table.h
32143 * asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types.
32144 (asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table)
32145 (has_stmt_been_instrumented_p, empty_mem_ref_hash_table)
32146 (free_mem_ref_resources, has_mem_ref_been_instrumented)
32147 (has_stmt_been_instrumented_p, update_mem_ref_hash_table)
32148 (get_mem_ref_of_assignment): New functions.
32149 (get_mem_refs_of_builtin_call): Extract from
32150 instrument_builtin_call and tweak a little bit to make it fit with
32151 the new signature.
32152 (instrument_builtin_call): Use the new
32153 get_mem_refs_of_builtin_call. Use gimple_call_builtin_p instead
32154 of is_gimple_builtin_call.
32155 (instrument_derefs, instrument_mem_region_access): Insert the
32156 instrumented memory reference into the hash table.
32157 (maybe_instrument_assignment): Renamed instrument_assignment into
32158 this, and change it to advance the iterator when instrumentation
32159 actually happened and return true in that case. This makes it
32160 homogeneous with maybe_instrument_assignment, and thus give a
32161 chance to callers to be more 'regular'.
32162 (transform_statements): Clear the memory reference hash table
32163 whenever we enter a new BB, when we cross a function call, or when
32164 we are done transforming statements. Use
32165 maybe_instrument_assignment instead of instrumentation. No more
32166 need to special case maybe_instrument_assignment and advance the
32167 iterator after calling it; it's now handled just like
32168 maybe_instrument_call. Update comment.
32169
319f4d7d 321702013-02-13 Richard Biener <rguenther@suse.de>
32171
32172 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
32173 Fix loop discovery code.
32174
89c2edcf 321752013-02-12 Vladimir Makarov <vmakarov@redhat.com>
32176
32177 PR inline-asm/56148
32178 * lra-constraints.c (process_alt_operands): Match early clobber
f03b2d9d 32179 operand with itself. Check conflicts with earlyclobber only if
89c2edcf 32180 the operand is not reloaded. Prefer to reload conflicting operand
32181 if earlyclobber and matching operands are the same.
32182
d648b2ee 321832013-02-12 Richard Biener <rguenther@suse.de>
32184
32185 PR lto/56297
32186 * lto-streamer-out.c (write_symbol): Do not output symbols
32187 for hard register variables.
32188
cfbcb7d5 321892013-02-12 Georg-Johann Lay <avr@gjlay.de>
32190
32191 PR target/54222
32192 * config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
32193 (umulsidi3_insn, mulsidi3_insn): New insns.
32194
31c66114 321952013-02-12 Christophe Lyon <christophe.lyon@linaro.org>
7ad0a5e6 32196
32197 * config/arm/arm-protos.h (struct cpu_vec_costs): New struct type.
32198 (struct tune_params): Add vec_costs field.
32199 * config/arm/arm.c (arm_builtin_vectorization_cost)
32200 (arm_add_stmt_cost): New functions.
32201 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST)
32202 (TARGET_VECTORIZE_ADD_STMT_COST): Define.
32203 (arm_default_vec_cost): New struct of type cpu_vec_costs.
32204 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
32205 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune)
32206 (arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune)
32207 (arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field.
32208
972031ce 322092013-02-12 Richard Biener <rguenther@suse.de>
32210
32211 PR lto/56295
32212 * gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off
32213 decls again if possible.
32214
bcef4e8e 322152013-02-12 Richard Biener <rguenther@suse.de>
32216
32217 PR middle-end/56288
32218 * tree-ssa.c (verify_ssa_name): Fix check, move
32219 SSA_NAME_IN_FREE_LIST check up.
32220
193baafd 322212013-02-12 Jakub Jelinek <jakub@redhat.com>
32222 Steven Bosscher <steven@gcc.gnu.org>
32223
32224 PR rtl-optimization/56151
32225 * optabs.c (add_equal_note): Don't return 0 if target is a MEM,
32226 equal to op0 or op1, and last_insn pattern is CODE operation
32227 with MEM dest and one of the operands matches that MEM.
32228
21ebaa24 322292013-02-11 Sriraman Tallam <tmsriram@google.com>
fd457cef 32230
32231 * doc/extend.texi: Document Function Multiversioning and "default"
32232 parameter string to target attribute.
32233 * config/i386/i386.c (get_builtin_code_for_version): Return 0 if
32234 target attribute parameter is "default".
32235 (ix86_compare_version_priority): Remove checks for target attribute.
32236 (ix86_mangle_function_version_assembler_name): Change error to sorry.
32237 Remove check for target attribute equal to NULL. Add assert.
32238 (ix86_generate_version_dispatcher_body): Change error to sorry.
32239
48b8e70a 322402013-02-11 Iain Sandoe <iain@codesourcery.com>
32241 Jack Howarth <howarth@bromo.med.uc.edu>
32242 Patrick Marlier <patrick.marlier@gmail.com>
32243
32244 PR libitm/55693
32245 * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
32246 define ENDFILE_SPEC as TM_DESTRUCTOR.
32247 * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.
32248
31c66114 322492013-02-11 Alexander Potapenko <glider@google.com>
ed161dab 32250 Jack Howarth <howarth@bromo.med.uc.edu>
32251 Jakub Jelinek <jakub@redhat.com>
32252
32253 PR sanitizer/55617
32254 * config/darwin.c (cdtor_record): Rename ctor_record.
32255 (sort_cdtor_records): Rename sort_ctor_records.
32256 (finalize_dtors): New routine to sort destructors by
32257 priority before use in assemble_integer.
32258 (machopic_asm_out_destructor): Use finalize_dtors if needed.
32259
ffc1977a 322602013-02-11 Uros Bizjak <ubizjak@gmail.com>
32261
32262 PR rtl-optimization/56275
32263 * simplify-rtx.c (avoid_constant_pool_reference): Check that
32264 offset is non-negative and less than cmode size before
32265 calling simplify_subreg.
32266
b6f3c6f1 322672013-02-11 Richard Biener <rguenther@suse.de>
32268
32269 PR tree-optimization/56264
32270 * cfgloop.h (fix_loop_structure): Adjust prototype.
32271 * loop-init.c (fix_loop_structure): Return the number of
32272 newly discovered loops.
32273 * tree-cfgcleanup.c (repair_loop_structures): When new loops
32274 are discovered, do a full loop-closed SSA rewrite.
32275
4d739378 322762013-02-11 Richard Biener <rguenther@suse.de>
32277
32278 PR tree-optimization/56273
32279 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
32280 first VRP run.
32281 (check_array_ref): Fix missing newline in dumps.
32282 (search_for_addr_array): Likewise.
32283
31a1ce3e 322842013-02-09 David Edelsohn <dje.gcc@gmail.com>
32285
32286 * config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine.
32287
18163dd8 322882013-02-09 Jakub Jelinek <jakub@redhat.com>
32289
32290 PR target/56256
32291 * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
32292
4aa54340 322932013-02-08 Vladimir Makarov <vmakarov@redhat.com>
32294
32295 PR rtl-optimization/56246
31a1ce3e 32296 * lra-constraints.c (simplify_operand_subreg): Try to reuse
4aa54340 32297 reload pseudo.
32298 * lra.c (lra): Clear lra_optional_reload_pseudos only when all
32299 constraints are satisfied.
32300
ea239197 323012013-02-08 Jeff Law <law@redhat.com>
32302
32303 PR debug/53948
32304 * emit-rtl.c (reg_is_parm_p): New function.
32305 * regs.h (reg_is_parm_p): New prototype.
32306 * ira-conflicts.c (ira_build_conflicts): Allow parameters in
32307 callee-clobbered registers.
32308
b85af273 323092013-02-08 Michael Meissner <meissner@linux.vnet.ibm.com>
32310
32311 PR target/56043
32312 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
32313 If there is no implicit builtin declaration, just return NULL.
32314
21a6219e 323152013-02-08 Uros Bizjak <ubizjak@gmail.com>
32316
32317 * config/i386/sse.md (FMAMODEM): New mode iterator.
32318 (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
32319 mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
32320
a3c139e5 323212013-02-08 Uros Bizjak <ubizjak@gmail.com>
e975e345 32322
a3c139e5 32323 * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
32324 when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
32325 * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.
32326
323272013-02-08 Edgar E. Iglesias <edgar.iglesias@gmail.com>
32328
32329 * config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT.
32330 (microblaze*-*-elf): Likewise.
32331 * config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to
32332 LINK_SPEC.
32333 * config/microblaze/microblaze-c.c: Add builtin defines for
32334 _LITTLE_ENDIAN and _BIG_ENDIAN.
32335 * config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and
32336 add to TARGET_DEFAULT flags.
e975e345 32337 Expand ASM_SPEC and LINK_SPEC.
a3c139e5 32338 Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
32339 * config/microblaze/microblaze.md: Update extendsidi2 and
32340 movdi_internal instructions to use low-order / high-order reg
32341 print_operands.
32342 * config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian
32343 options and inversemask / mask of LITTLE_ENDIAN.
32344 * config/microblaze/t-microblaze: Expand multilib options to
32345 include mlittle-endian (le) and update exceptions patterns.
32346
1a8b7013 323472013-02-08 Jakub Jelinek <jakub@redhat.com>
32348
5ef30aea 32349 PR rtl-optimization/56195
32350 * lra-constraints.c (get_reload_reg): Don't reuse regs
32351 if they have smaller mode than requested, if they have
32352 wider mode than requested, try to return a SUBREG.
32353
1a8b7013 32354 PR tree-optimization/56250
32355 * fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize
32356 if type is unsigned and code isn't MULT_EXPR.
32357
992b7387 323582013-02-08 Georg-Johann Lay <avr@gjlay.de>
32359
32360 PR tree-optimization/56064
32361 * fixed-value.c (fixed_from_double_int): Sign/zero extend payload
32362 bits according to mode.
32363 * fixed-value.h (fixed_from_double_int)
32364 (const_fixed_from_double_int): Adjust comments.
32365
ab3c0986 323662013-02-08 Richard Biener <rguenther@suse.de>
32367
32368 PR lto/56231
32369 * lto-streamer.h (struct data_in): Remove current_file, current_line
32370 and current_col members.
32371 * lto-streamer-out.c (lto_output_location): Stream changed bits
32372 en-block for efficiency.
32373 * lto-streamer-in.c (clear_line_info): Remove.
32374 (lto_input_location): Cache current file, line and column
32375 globally via local statics. Read changed bits en-block.
32376 (input_function): Do not call clear_line_info.
32377 (lto_read_body): Likewise.
32378 (lto_input_toplevel_asms): Likewise.
32379
42540642 323802013-02-08 Michael Matz <matz@suse.de>
32381
32382 PR tree-optimization/52448
32383 * tree-ssa-phiopt.c (struct name_to_bb): Add phase member.
32384 (nt_call_phase): New static.
32385 (add_or_mark_expr): Only mark accesses with newer phase than any
32386 call seen.
32387 (nonfreeing_call_p): New.
32388 (nt_init_block): Update nt_call_phase, mark blocks as visited.
32389 (nt_fini_block): Keep blocks marked as visited.
32390 (get_non_trapping): Initialize nt_call_phase, and reset aux pointer.
32391
1a8dfee2 323922013-02-08 Richard Biener <rguenther@suse.de>
32393
32394 * ira.c (ira): Free broken dominator information.
32395
eaa0ee9f 323962013-02-08 Uros Bizjak <ubizjak@gmail.com>
32397
32398 * config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro.
32399
14a0d8d7 324002013-02-08 Marek Polacek <polacek@redhat.com>
32401
eaa0ee9f 32402 * cfgloop.c (verify_loop_structure): Add more checking of headers.
14a0d8d7 32403
ff829efa 324042013-02-08 Richard Biener <rguenther@suse.de>
32405
32406 PR middle-end/56181
32407 * cfgloop.h (flow_loops_find): Adjust.
32408 (bb_loop_header_p): Declare.
32409 * cfgloop.c (bb_loop_header_p): New function split out from ...
32410 (flow_loops_find): ... here. Adjust function signature,
32411 support incremental loop structure update.
32412 (verify_loop_structure): Cleanup. Verify a loop is a loop.
32413 * cfgloopmanip.c (fix_loop_structure): Move ...
32414 * loop-init.c (fix_loop_structure): ... here.
32415 (apply_loop_flags): Split out from ...
32416 (loop_optimizer_init): ... here.
32417 (fix_loop_structure): Use apply_loop_flags. Use flow_loops_find
32418 in incremental mode, only remove dead loops here.
32419
eafea251 324202013-02-08 Georg-Johann Lay <avr@gjlay.de>
32421
32422 PR target/54222
32423 * config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
32424 * config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
32425 (round<mode>3, round<mode>3_const): New expanders for fixed-mode.
32426 (*round<mode>3.libgcc): New insns for fixed-modes.
32427 * config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
32428 (ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
32429 (ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
32430 * config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
32431 implementations. Define to __builtin_avr_absFX,
32432 __builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
32433 (roundFX, countlsFX): Define to __builtin_avr_roundFX,
32434 __builtin_avr_countlsFX, respectively.
32435 * config/avr/avr-c.c (target.h): Include it.
32436 (enum avr_builtin_id): New enum.
32437 (avr_resolve_overloaded_builtin): New static function.
32438 (avr_register_target_pragmas): Use it to set
32439 targetm.resolve_overloaded_builtin.
32440 * config/avr/avr.c (avr_init_builtins): Supply myriads of local
32441 tree nodes used by DEF_BUILTIN.
32442 (avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
32443 (avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
32444 <AVR_BUILTIN_xxBITS>: Same.
32445
1032e48d 324462013-02-08 Richard Biener <rguenther@suse.de>
32447
32448 * cfgloop.c (verify_loop_structure): Properly handle
32449 a loop exiting to another loop header.
32450 * ira-int.h (ira_loops): Remove.
32451 * ira.c (ira_loops): Remove.
32452 (ira): Use loop_optimizer_init and loop_optimizer_finalize.
32453 (do_reload): Use loop_optimizer_finalize.
32454 * ira-build.c (create_loop_tree_nodes): Use get_loops and
32455 number_of_loops to access the loop tree.
32456 (more_one_region_p): Likewise.
32457 (finish_loop_tree_nodes): Likewise.
32458 (rebuild_regno_allocno_maps): Likewise.
32459 (mark_loops_for_removal): Likewise.
32460 (mark_all_loops_for_removal): Likewise.
32461 (remove_unnecessary_regions): Likewise.
32462 (ira_build): Likewise.
32463 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
32464
8ff30f9a 324652013-02-08 Richard Biener <rguenther@suse.de>
32466
32467 * Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency.
32468 * ipa-pure-const.c (analyze_function): Avoid calling
32469 mark_irreducible_loops twice.
eaa0ee9f 32470 * tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup.
8ff30f9a 32471
690bfd6a 324722013-02-07 David S. Miller <davem@davemloft.net>
32473
32474 * dwarf2out.c (based_loc_descr): Perform leaf register remapping
32475 on 'reg'.
32476 * var-tracking.c (vt_add_function_parameter): Test the presence of
32477 HAVE_window_save properly and do not remap argument registers when
32478 we have a leaf function.
32479
7a87c8e1 324802013-02-07 Uros Bizjak <ubizjak@gmail.com>
32481
32482 PR bootstrap/56227
32483 * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
32484 instead of "ll".
32485 * config/i386/i386.c (ix86_print_operand): Ditto.
32486
92dfb77d 324872013-02-07 Vladimir Makarov <vmakarov@redhat.com>
32488
7a87c8e1 32489 * lra-constraints.c (process_alt_operands): Fix recently added comment.
92dfb77d 32490
2e620dc7 324912013-02-07 Vladimir Makarov <vmakarov@redhat.com>
32492
32493 PR rtl-optimization/56225
32494 * lra-constraints.c (process_alt_operands): Check that reload hard
32495 reg can hold value for strict_low_part.
32496
67a34241 324972013-02-07 Jakub Jelinek <jakub@redhat.com>
32498
32499 PR debug/56154
32500 * dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to
32501 dwarf2out_end_function.
32502 (in_first_function_p, maybe_at_text_label_p,
32503 first_loclabel_num_not_at_text_label): New variables.
32504 (dwarf2out_var_location): In the first function find out
7a87c8e1 32505 lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0.
67a34241 32506 (find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New
32507 functions.
32508
a24ec999 325092013-02-07 Eric Botcazou <ebotcazou@adacore.com>
32510
32511 PR rtl-optimization/56178
32512 * cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a
32513 SUBREG of a register. Tidy up related block of code.
32514 * fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL
32515 note if the source is a register or a SUBREG of a register.
32516
bef70214 325172013-02-07 Jakub Jelinek <jakub@redhat.com>
32518
32519 PR target/56228
32520 * config/rs6000/rs6000.md (ptrm): New mode attr.
32521 (call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11,
32522 call_value_indirect_aix<pttrsize>,
32523 call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of
32524 m in constraints.
32525
f30f08a4 325262013-02-07 Michael Haubenwallner <michael.haubenwallner@salomon.at>
32527
32528 * collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable
32529 if -bnortl. Convert to strcmp and strncmp.
32530
9c74eaeb 325312013-02-07 Alan Modra <amodra@gmail.com>
32532
32533 PR target/54009
32534 * config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM
32535 addresses won't wrap when offsetting.
32536 (rs6000_secondary_reload): Provide secondary reloads needed for
32537 wrapping LO_SUM addresses.
32538
e7306dad 325392013-02-06 Thomas Schwinge <thomas@codesourcery.com>
32540
32541 * config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define
32542 MACH, just __MACH__.
32543
caa1ac55 325442013-02-06 Richard Biener <rguenther@suse.de>
32545
32546 * tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP
32547 instead of calling fix_loop_structure.
32548
b8214689 325492013-02-06 Jakub Jelinek <jakub@redhat.com>
32550
32551 PR middle-end/56217
32552 * omp-low.c (use_pointer_for_field): Return false if
32553 lower_send_shared_vars doesn't generate any copy-out code.
32554
fb848efb 325552013-02-06 Tom de Vries <tom@codesourcery.com>
32556
32557 PR rtl-optimization/56131
32558 * cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN
32559 to get the bb of a NOTE_INSN_BASIC_BLOCK. Handle the case that the bb
32560 of the label is NULL. Add comment.
32561
2a111350 325622013-02-05 Jakub Jelinek <jakub@redhat.com>
32563
4f364235 32564 * tree.h (struct tree_decl_with_vis): Remove thread_local field.
32565
5f13745b 32566 PR sanitizer/55374
32567 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define.
32568 (STATIC_LIBTSAN_LIBS): Likewise.
32569 * gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define.
32570 (LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC
32571 is defined, don't add anything else beyond that.
32572 (SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define.
32573 (LINK_COMMAND_SPEC): Use them.
32574
2a111350 32575 PR tree-optimization/56205
32576 * tree-stdarg.c (check_all_va_list_escapes): Return true if
32577 there are any PHI nodes that set non-va_list_escape_vars SSA_NAME
32578 and some va_list_escape_vars SSA_NAME appears in some PHI argument.
32579
bc17236a 325802013-02-05 Richard Biener <rguenther@suse.de>
32581
32582 PR tree-optimization/53342
32583 PR tree-optimization/53185
32584 * tree-vectorizer.h (vect_check_strided_load): Remove.
32585 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do
32586 not disallow peeling for vectorized strided loads.
32587 (vect_check_strided_load): Make static and simplify.
32588 (vect_analyze_data_refs): Adjust.
32589 * tree-vect-stmts.c (vectorizable_load): Handle peeled loops
32590 correctly when vectorizing strided loads.
32591
b6a9ee95 325922013-02-05 Richard Biener <rguenther@suse.de>
32593
32594 * doc/install.texi: Refer to ISL, not PPL.
32595
8afc926b 325962013-02-05 Jan Hubicka <jh@suse.cz>
32597
b9b931d9 32598 PR tree-optimization/55789
32599 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1.
32600
326012013-02-05 Jan Hubicka <jh@suse.cz>
32602
32603 PR tree-optimization/55789
8afc926b 32604 * cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove
32605 the dead call anyway.
32606
b514e580 326072013-02-05 Eric Botcazou <ebotcazou@adacore.com>
32608
32609 PR sanitizer/55374
32610 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard.
32611
326122013-02-04 Alexander Potapenko <glider@google.com>
32613 Jack Howarth <howarth@bromo.med.uc.edu>
4b313269 32614 Jakub Jelinek <jakub@redhat.com>
32615
32616 PR sanitizer/55617
32617 * config/darwin.c (sort_ctor_records): Stabilized qsort
32618 on constructor priority by using original position.
32619 (finalize_ctors): New routine to sort constructors by
32620 priority before use in assemble_integer.
32621 (machopic_asm_out_constructor): Use finalize_ctors if needed.
32622
4475ab54 326232013-02-04 Jakub Jelinek <jakub@redhat.com>
32624
32625 PR libstdc++/54314
32626 * config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn
32627 about visibility on artificial decls.
32628 * config/sol2.c (solaris_assemble_visibility): Likewise.
32629
f04dc164 326302013-02-04 Kai Tietz <ktietz@redhat.com>
32631
32632 PR target/56186
32633 * config/i386/i386.c (function_value_ms_64): Add additional valtype
32634 argument and improve checking of return-argument types for 16-byte
32635 modes.
32636 (ix86_function_value_1): Add additional valtype argument on call
32637 of function_value_64.
32638 (return_in_memory_ms_64): Sync 16-byte sized mode handling with
32639 handling infunction_value_64 function.
32640
f3567af6 326412013-02-04 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
32642
4475ab54 32643 * reload.c (subst_reloads): Fix DEBUG_RELOAD build issue.
f3567af6 32644
5342937d 326452013-02-04 Richard Biener <rguenther@suse.de>
32646
32647 PR tree-optimization/56188
32648 * tree-ssa-structalias.c (label_visit): Consider case with
32649 initially non-empty points-to set.
32650 (perform_var_substitution): Dump node mapping and clean up.
32651
871609a8 326522013-02-04 Richard Guenther <rguenther@suse.de>
32653
32654 PR lto/56168
32655 * lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin
32656 node prevail as last resort.
32657 (lto_symtab_merge_decls): Remove guard on LTRANS here.
7a87c8e1 32658 (lto_symtab_prevailing_decl): Builtins are their own prevailing decl.
871609a8 32659
98102711 326602013-02-04 Richard Biener <rguenther@suse.de>
32661
32662 PR tree-optimization/56113
32663 * tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add):
32664 Merge into ...
32665 (equiv_class_lookup_or_add): ... this.
32666 (label_visit): Adjust and fix error in previous patch.
32667 (perform_var_substitution): Adjust.
32668
6c049e03 326692013-02-03 Oleg Endo <olegendo@gcc.gnu.org>
32670
32671 * config/sh/divtab.c: Fix formatting and comments throughout the file.
32672 * config/sh/sh4-300.md: Likewise.
32673 * config/sh/sh4a.md: Likewise.
32674 * config/sh/constraints.md: Likewise.
32675 * config/sh/sh.md: Likewise.
32676 * config/sh/netbsd-elf.h: Likewise.
32677 * config/sh/predicates.md: Likewise.
32678 * config/sh/sh-protos.h: Likewise.
32679 * config/sh/ushmedia.h: Likewise.
32680 * config/sh/linux.h: Likewise.
32681 * config/sh/sh.c: Likewise.
32682 * config/sh/superh.h: Likewise.
32683 * config/sh/elf.h: Likewise.
32684 * config/sh/sh4.md: Likewise.
32685 * config/sh/sh.h: Likewise.
32686
e8248b41 326872013-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
32688
32689 * config/pa/constraints.md: Adjust unused letters. Change "T"
32690 constraint to match_test floating_point_store_memory_operand().
32691 * config/pa/predicates.md (reg_plus_base_memory_operand): New.
32692 (base14_operand): New.
32693 (floating_point_store_memory_operand): New.
32694 (integer_store_memory_operand): Revise to use base14_operand and
32695 reg_plus_base_memory_operand.
32696 (move_dest_operand): Allow symbolic_memory_operands.
32697 (symbolic_memory_operand): Check for LO_SOM.
32698 (symbolic_operand): Change default case to break.
32699 * config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force
32700 CONST_DOUBLE values to be reloaded by putting them into memory when
32701 the destination is a floating point register.
32702 (movdf): Remove code to handle CONST_DOUBLE.
32703 (movsf): Likewise.
32704 (reload_indf_r1): New.
32705 (reload_insf_r1): New.
32706 Consistently use "Q" and "T" constraints with integer and floating
32707 point move instructions, respectively.
32708 (movdi): Remove FAIL.
32709 Change predicate for source operand unamed DImode move from
32710 general_operand to move_src_operand.
32711 (umulsidi3): Change predicate for destination operand to
32712 register_operand.
32713 Likewise for similar unamed patterns.
32714 * config/pa/pa-protos.h (pa_legitimize_reload_address): Declare.
32715 * config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis.
32716 (hppa_legitimize_address): Simplify mask calculation.
32717 (pa_emit_move_sequence): Revised handling of secondary reloads from
32718 REG+D addresses for floating point loads and stores. Directly handle
32719 loading CONST0_RTX (mode) to a floating point register.
32720 (pa_secondary_reload): Handle reloading DF and SFmode constant values
32721 to floating point registers. Don't restrict secondary reloads to
32722 floating point registers to integer modes. Revise some comments and
32723 cleanup some code.
32724 (TARGET_LEGITIMATE_ADDRESS_P): Define.
32725 (pa_legitimate_address_p): New.
32726 (pa_legitimize_reload_address): New.
32727 * config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New.
32728 (STRICT_REG_OK_FOR_BASE_P): New.
32729 (GO_IF_LEGITIMATE_ADDRESS): Delete. Update some related comments.
32730 (LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address.
32731
8bd7002d 327322013-02-03 David Edelsohn <dje.gcc@gmail.com>
32733 Andrew Dixie <andrewd@gentrack.com>
32734
32735 * collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
32736 flag set.
32737
bd23a499 327382013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
32739
32740 * expmed.c (extract_bit_field_1): Pass the full width of the
32741 structure to get_best_reg_extraction_insn.
32742
a8af2dd5 327432013-02-01 David Edelsohn <dje.gcc@gmail.com>
32744
32745 PR target/54601
32746 * configure.ac (use_cxa_atexit): Add AIX.
32747 * configure: Regenerate.
32748
32749 * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o.
32750
2436e54f 327512013-02-01 Jakub Jelinek <jakub@redhat.com>
32752
32753 PR debug/54793
32754 * final.c (need_profile_function): New variable.
32755 (final_start_function): Drop ATTRIBUTE_UNUSED from first argument.
32756 If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG
32757 is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED
32758 notes, targetm.asm_out.function_prologue doesn't emit anything,
32759 HAVE_prologue and profiler should be emitted before prologue,
32760 set need_profile_function instead of emitting it.
32761 (final_scan_insn): If need_profile_function, emit
32762 profile_function on the first NOTE_INSN_BASIC_BLOCK or
32763 NOTE_INSN_FUNCTION_BEG note.
32764
327652013-02-01 Richard Henderson <rth@redhat.com>
5b0b7360 32766
32767 * config/rs6000/rs6000.md (smulditi3): New.
32768 (umulditi3): New.
32769
67336b74 32770 * config/alpha/alpha.md (umulditi3): New.
32771
29f92520 327722013-02-01 David Edelsohn <dje.gcc@gmail.com>
32773
32774 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
32775 (ASM_OUTPUT_ALIGNED_LOCAL): New.
32776
c74cfdaf 327772013-02-01 Richard Biener <rguenther@suse.de>
32778
32779 PR tree-optimization/56113
32780 * tree-ssa-structalias.c (label_visit): Reduce work for
32781 single-predecessor nodes.
32782
6b40a1a5 327832013-02-01 Eric Botcazou <ebotcazou@adacore.com>
32784
32785 * fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the
32786 range isn't testing for zero.
32787
9add6570 327882013-01-31 Steven Bosscher <steven@gcc.gnu.org>
32789
32790 PR middle-end/56113
32791 * fwprop.c (fwprop_init): Set up loops without CFG modifications.
32792
9a5788ea 327932013-01-31 Hiroyuki Ono <hiroyuki.ono.jc@renesas.com>
32794 Nick Clifton <nickc@redhat.com>
32795
32796 * config/v850/constraints.md (Q): Define as a memory constraint.
32797 * config/v850/predicates.md (label_ref_operand): New predicate.
32798 (e3v5_shift_operand): New predicate.
32799 (ior_operator): New predicate.
32800 * config/v850/t-v850: Add e3v5 multilib.
32801 * config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
32802 (v850_gen_movdi): Prototype.
32803 * config/v850/v850.c: Add support for e3v5 architecture.
32804 Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
32805 TARGET_V850E_UP.
32806 (construct_save_jarl): Add e3v5 long JARL support.
32807 (v850_adjust_insn_length): New function. Adjust length of call
32808 insns when using e3v5 instructions.
32809 (v850_gen_movdi): New function: Generate instructions to move a
32810 DImode value.
32811 * config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
32812 (CPP_SPEC): Define __v850e3v5__ as appropriate.
32813 (TARGET_USE_FPU): Enable for e3v5.
32814 (CONST_OK_FOR_W): New macro.
32815 (ADJUST_INSN_LENGTH): Define.
32816 * config/v850/v850.md (UNSPEC_LOOP): Define.
32817 (attr cpu): Add v850e3v5.
32818 Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
32819 (movdi): New pattern.
32820 (movdi_internal): New pattern.
32821 (cbranchsf4): Conditionalize on TARGET_USE_FPU.
32822 (cbranchdf4): Conditionalize on TARGET_USE_FPU.
32823 (cstoresf4): Likewise.
32824 (cstoredf4): Likewise.
32825 (insv): New pattern.
32826 (rotlso3_a): New pattern.
32827 (rotlsi3_b): New pattern
32828 (rotlsi3_v850e3v5): New pattern.
32829 (doloop_begin): New pattern.
32830 (fix_loop_counter): New pattern.
32831 (doloop_end): New pattern.
32832 (branch_normal): Add e3v5 long branch support.
32833 (branch_invert): Likewise.
32834 (branch_z_normal): Likewise.
32835 (branch_z_invert): Likewise.
32836 (branch_nz_normal): Likewise.
32837 (branch_nz_invert): Likewise.
32838 (call_internal_short): Add e3v5 register-indirect JARL support.
32839 (call_internal_long): Likewise.
32840 (call_value_internal_short): Likewise.
32841 (call_value_internal_long): Likewise.
32842 * config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
32843 (mloop): New option.
32844 * config.gcc: Add support for configuring v840e3v5 target.
7a87c8e1 32845 * doc/invoke.texi: Document new v850 specific command line options.
9a5788ea 32846
7a85a361 328472013-01-31 Paul Koning <ni1d@arrl.net>
32848
32849 PR debug/55059
32850 PR debug/54508
32851 * dwarf2out.c (prune_unused_types_mark): Mark all of parent's
32852 children if parent is a class.
32853 (prune_unused_types_prune): Don't add DW_AT_declaration.
32854
a8bcfda2 328552013-01-31 Richard Biener <rguenther@suse.de>
32856
32857 PR tree-optimization/56157
32858 * tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to
32859 match up operand with SLP child.
32860
6b71bf7b 328612013-01-31 Jason Merrill <jason@redhat.com>
32862
ebb59397 32863 PR debug/54410
6b71bf7b 32864 * dwarf2out.c (gen_struct_or_union_type_die): Always schedule template
32865 parameters the first time.
32866 (gen_scheduled_generic_parms_dies): Check completeness here.
32867
56dfa44a 328682013-01-31 Richard Biener <rguenther@suse.de>
32869
32870 PR middle-end/53073
32871 * common.opt (faggressive-loop-optimizations): New flag,
32872 enabled by default.
32873 * doc/invoke.texi (faggressive-loop-optimizations): Document.
32874 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard
32875 infer_loop_bounds_from_undefined by it.
32876
5789f1f8 328772013-01-31 Richard Biener <rguenther@suse.de>
32878
32879 PR tree-optimization/56150
32880 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not
32881 visit virtual operands.
32882 (find_uses_to_rename_bb): Likewise.
32883
328842013-01-31 Richard Biener <rguenther@suse.de>
fad68b9f 32885
32886 PR tree-optimization/56150
32887 * tree-ssa-tail-merge.c (gimple_equal_p): Properly handle
32888 mixed store non-store stmts.
32889
ae0c3984 328902013-01-30 Jakub Jelinek <jakub@redhat.com>
32891
53486a83 32892 PR sanitizer/55374
32893 * gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if
32894 LIBASAN_EARLY_SPEC is defined.
32895 (LIBASAN_EARLY_SPEC): Define to empty string if not already defined.
32896 (LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address,
32897 before %o.
32898 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define.
32899
ae0c3984 32900 PR c++/55742
32901 * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose
32902 invalid args instead of ICEing on it.
32903 (ix86_valid_target_attribute_tree): Return error_mark_node if
32904 ix86_valid_target_attribute_inner_p failed.
32905 (ix86_valid_target_attribute_p): Return false only if
32906 ix86_valid_target_attribute_tree returned error_mark_node. Allow
32907 target("default") attribute.
32908 (sorted_attr_string): Change argument from const char * to tree,
32909 merge in all target attribute arguments rather than just one.
32910 Formatting fix. Use XNEWVEC instead of xmalloc and XDELETEVEC
32911 instead of free. Avoid using strcat.
32912 (ix86_mangle_function_version_assembler_name): Mangle
32913 target("default") as if no target attribute is present. Adjust
32914 sorted_attr_string caller. Avoid leaking memory. Use XNEWVEC
32915 instead of xmalloc and XDELETEVEC instead of free.
32916 (ix86_function_versions): Don't return true if one of the decls
32917 doesn't have target attribute. If they don't and one of the decls
32918 is DECL_FUNCTION_VERSIONED, report an error. Adjust
32919 sorted_attr_string caller. Use XDELETEVEC instead of free.
32920 (ix86_supports_function_versions): Remove.
32921 (make_name): Fix up formatting.
32922 (make_dispatcher_decl): Remove resolver_name and its initialization.
32923 Avoid leaking memory.
32924 (is_function_default_version): Return true if there is
32925 target("default") attribute rather than no target attribute at all.
32926 (make_resolver_func): Avoid leaking memory.
32927 (ix86_generate_version_dispatcher_body): Likewise.
32928 (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove.
32929 * target.def (supports_function_versions): Remove.
32930 * doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove.
32931 * doc/tm.texi: Regenerated.
32932
85276115 329332013-01-30 Vladimir Makarov <vmakarov@redhat.com>
32934
32935 PR rtl-optimization/56144
32936 * lra-constraints.c (get_reload_reg): Don't reuse reload pseudo
32937 for values with side effects.
32938
545cf51c 329392013-01-30 Richard Biener <rguenther@suse.de>
32940
32941 * sparseset.h (sparseset_bit_p): Use gcc_checking_assert.
32942 (sparseset_pop): Likewise.
32943 * cfganal.c (compute_idf): Likewise. Increase work-stack size
32944 to be able to use quick_push in the worker loop.
32945
022d4ccc 329462013-01-30 Marek Polacek <polacek@redhat.com>
32947
32948 * cfgcleanup.c (cleanup_cfg): Don't mark affected BBs.
32949
224a26c5 329502013-01-30 Richard Biener <rguenther@suse.de>
32951
32952 PR lto/56147
7a87c8e1 32953 * lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check.
224a26c5 32954
52cd005d 329552013-01-30 Georg-Johann Lay <avr@gjlay.de>
32956
32957 PR tree-optimization/56064
32958 * fixed-value.c (fixed_from_double_int): New function.
32959 * fixed-value.h (fixed_from_double_int): New prototype.
32960 (const_fixed_from_double_int): New static inline function.
32961 * fold-const.c (native_interpret_fixed): New static function.
32962 (native_interpret_expr) <FIXED_POINT_TYPE>: Use it.
32963 (can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true.
32964 (native_encode_fixed): New static function.
32965 (native_encode_expr) <FIXED_CST>: Use it.
32966 (native_interpret_int): Move double_int worker code to...
32967 * double-int.c (double_int::from_buffer): ...this new static method.
32968 * double-int.h (double_int::from_buffer): Prototype it.
32969
dd6f8b2c 329702013-01-30 Richard Biener <rguenther@suse.de>
32971
32972 * tree-ssa-structalias.c (final_solutions, final_solutions_obstack):
32973 New pointer-map and obstack.
32974 (init_alias_vars): Allocate pointer-map and obstack.
32975 (delete_points_to_sets): Free them.
32976 (find_what_var_points_to): Cache result.
32977 (find_what_p_points_to): Adjust for changed interface of
32978 find_what_var_points_to.
32979 (compute_points_to_sets): Likewise.
32980 (ipa_pta_execute): Likewise.
32981
a602740a 329822013-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
32983
32984 * configure.ac (HAVE_AS_SPARC_NOBITS): New test.
32985 * configure: Regenerate.
32986 * config.in: Regenerate.
32987 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit
32988 #nobits/#progbits if supported.
32989
9081e4b3 329902013-01-29 Oleg Endo <olegendo@gcc.gnu.org>
32991
32992 PR target/56121
32993 * config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a,
32994 bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a,
32995 bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition.
32996
a3826176 329972013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
32998
6effa4dc 32999 * config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove.
33000 (cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all.
a3826176 33001
f9e7462d 330022013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
33003
6effa4dc 33004 * config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL.
33005 * config/arm/cortex-a7.md (cortex_a7_call): Update required units.
f9e7462d 33006
eca9ccc8 330072013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
33008
6effa4dc 33009 * config/arm/arm-protos.h (arm_mac_accumulator_is_result): New
33010 declaration.
33011 * config/arm/arm.c (arm_mac_accumulator_is_result): New function.
33012 * config/arm/cortex-a7.md: New bypasses using
33013 arm_mac_accumulator_is_result.
eca9ccc8 33014
fd923cfd 330152013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
33016
6effa4dc 33017 * config/arm/cortex-a7.md (cortex_a7_neon_mul): New reservation.
fd923cfd 33018 (cortex_a7_neon_mla): Likewise.
6effa4dc 33019 (cortex_a7_fpfmad): New reservation.
33020 (cortex_a7_fpmacs): Use ffmas and update required units.
33021 (cortex_a7_fpmuld): Update required units and latency.
33022 (cortex_a7_fpmacd): Likewise.
33023 (cortex_a7_fdivs, cortex_a7_fdivd): Likewise.
33024 (cortex_a7_neon). Likewise.
33025 (bypass) Update participating units.
fd923cfd 33026
56df0c05 330272013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
33028
6effa4dc 33029 * config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute.
33030 * config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type
33031 from fmac to ffma.
33032 * config/arm/vfp11.md (vfp_farith): Use ffmas.
33033 (vfp_fmul): Use ffmad.
33034 * config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas.
33035 (cortex_r4_fmacd): Use ffmad.
33036 * config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas.
33037 * config/arm/cortex-a9.md (cortex_a9_fmacs): Use ffmas.
33038 (cortex_a9_fmacd): Use ffmad.
33039 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas.
33040 (cortex_a8_vfp_macd): Use ffmad.
33041 * config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas.
33042 (cortex_a5_fpmacd): Use ffmad.
33043 * config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas.
33044 (cortex_a15_vfp_macd): Use ffmad.
33045 * config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad.
56df0c05 33046
f88705ba 330472013-01-29 Jason Merrill <jason@redhat.com>
33048
33049 PR libstdc++/54314
33050 * varasm.c (default_assemble_visibility): Don't warn about
33051 visibility on artificial decls.
33052
783d1e89 330532013-01-29 Richard Biener <rguenther@suse.de>
33054
33055 PR tree-optimization/56113
33056 * tree-ssa-structalias.c (equiv_class_lookup): Also return
33057 the bitmap leader.
33058 (label_visit): Free duplicate bitmaps and record the leader instead.
33059 (perform_var_substitution): Adjust.
33060
5daac166 330612013-01-29 Richard Biener <rguenther@suse.de>
33062
33063 PR tree-optimization/55270
33064 * tree-ssa-dom.c (eliminate_degenerate_phis): If we changed
33065 the CFG, schedule loops for fixup.
33066
f716766f 330672013-01-29 Nick Clifton <nickc@redhat.com>
33068
33069 * config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow
33070 SP_REG.
33071
b433697b 330722013-01-28 Leif Ekblad <leif@rdos.net>
33073
33074 * config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets.
33075 * config/i386/i386.h (TARGET_RDOS): New macro.
33076 (DEFAULT_LARGE_SECTION_THRESHOLD): New macro.
33077 * config/i386/i386.c (ix86_option_override_internal): For 64bit
33078 TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1.
33079 * config/i386/i386.opt (mlarge-data-threshold): Initialize to
33080 DEFAULT_LARGE_SECTION_THRESHOLD.
33081 * config/i386/i386.md (R14_REG, R15_REG): New constants.
33082 * config/i386/rdos.h: New file.
33083 * config/i386/rdos64.h: New file.
33084
25399338 330852013-01-28 Bernd Schmidt <bernds@codesourcery.com>
33086
33087 PR other/54814
33088 * reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
33089 TEST_HARD_REG_BIT.
33090
12e51a1d 330912013-01-28 Jakub Jelinek <jakub@redhat.com>
33092
33093 PR rtl-optimization/56117
33094 * sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib
33095 call cselib_lookup_from_insn on the MEM before calling
33096 add_insn_mem_dependence.
33097
688b0b5b 330982013-01-28 Richard Biener <rguenther@suse.de>
33099
33100 * tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK
33101 to a stmt that didn't have one.
33102 (copy_phis_for_bb): Likewise for PHI arguments.
33103 (copy_debug_stmt): Likewise for debug stmts.
33104
ac7a1007 331052013-01-28 Richard Biener <rguenther@suse.de>
33106
33107 PR tree-optimization/56034
7a87c8e1 33108 * tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION.
ac7a1007 33109 (partition_builtin_p): Adjust.
33110 (generate_code_for_partition): Handle PKIND_REDUCTION. Assert
33111 it is the last partition.
33112 (rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking
33113 up the vertex for the definition.
33114 (classify_partition): Classify whether a partition is a
33115 PKIND_REDUCTION, thus has uses outside of the loop.
33116 (ldist_gen): Inherit PKIND_REDUCTION when merging partitions.
33117 Merge all PKIND_REDUCTION partitions into the last partition.
33118 (tree_loop_distribution): Seed partitions from reductions as well.
33119
04ff97ce 331202013-01-28 Jakub Jelinek <jakub@redhat.com>
33121
0190fe95 33122 PR tree-optimization/56125
33123 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize
33124 pow(x,c) into sqrt(x) * powi(x, n/2) or
33125 1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when
33126 optimizing for size.
33127 Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or
33128 1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an
33129 integer.
33130
04ff97ce 33131 PR tree-optimization/56094
33132 * gimplify.c (force_gimple_operand_1): Temporarily set input_location
33133 to UNKNOWN_LOCATION while gimplifying expr.
33134
f2897e01 331352013-01-27 Uros Bizjak <ubizjak@gmail.com>
33136
33137 PR target/56114
33138 * config/i386/i386.md (*movabs<mode>_1): Add square brackets around
33139 operand 0 in movabs insn template for -masm=intel asm alternative.
33140 (*movabs<mode>_2): Ditto for operand 1.
33141
0190fe95 331422013-01-26 David Holsgrove <david.holsgrove@xilinx.com>
c48df545 33143
33144 PR target/54663
33145 * config.gcc (microblaze*-linux*): Add tmake_file to allow building
33146 of microblaze-c.o
33147
0190fe95 331482013-01-26 Edgar E. Iglesias <edgar.iglesias@gmail.com>
98f2ac05 33149
33150 * config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update
33151 tm_file.
33152
0190fe95 331532013-01-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
9fc8b0bf 33154
33155 * config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS):
33156 Undef to avoid warning.
33157
82163b89 331582013-01-25 Michael Haubenwallner <michael.haubenwallner@salomon.at>
33159
33160 * configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld.
33161 * configure: Regenerate.
33162
6cc085b6 331632013-01-25 Jakub Jelinek <jakub@redhat.com>
33164
33165 PR tree-optimization/56098
33166 * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
33167 for stmts with volatile ops.
33168 (cond_store_replacement): Don't optimize if assign has volatile ops.
33169 (cond_if_else_store_replacement_1): Don't optimize if either
33170 then_assign or else_assign have volatile ops.
33171 (hoist_adjacent_loads): Don't optimize if either def1 or def2 have
33172 volatile ops.
33173
d2ac69cc 331742013-01-25 Georg-Johann Lay <avr@gjlay.de>
33175
33176 * doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__.
33177
63b6db20 331782013-01-25 Georg-Johann Lay <avr@gjlay.de>
33179
33180 * doc/extend.texi (Example of asm with clobbered asm reg): Fix
33181 missing ':' in asm example.
33182
431fc079 331832013-01-25 Tejas Belagod <tejas.belagod@arm.com>
33184
33185 * config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane
33186 entries into lane and laneq entries.
f2897e01 33187 * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>):
33188 Remove AdvSIMD scalar modes.
431fc079 33189 (aarch64_sq<r>dmulh_laneq<mode>): New.
33190 (aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD
33191 modes.
33192 * config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics'
33193 builtin implementations to relfect changes in RTL in aarch64-simd.md.
33194 * config/aarch64/iterators.md (VCOND): New.
33195 (VCONQ): New.
33196
f3297245 331972013-01-25 Georg-Johann Lay <avr@gjlay.de>
33198
33199 PR target/54222
33200 * config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument.
33201 Add NULL LIBNAME argument to existing definitions.
33202 (ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New.
33203 * config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument.
33204 * config/avr/avr.c (DEF_BUILTIN): Same.
33205 (avr_init_builtins): Pass down LIBNAME to add_builtin_function.
33206 (avr_expand_builtin): Expand to a vanilla call if a libgcc
33207 implementation is available (DECL_ASSEMBLER_NAME is set).
33208 (avr_fold_absfx): New static function.
33209 (avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR,
33210 AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR,
33211 AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK,
33212 AVR_BUILTIN_ABSLLK.
33213 * config/avr/stdfix.h (abshr, absr, abslr, absllr)
33214 (abshk, absk, abslk, absllk): Provide as static inline functions.
33215
8e3bada1 332162013-01-25 Marek Polacek <polacek@redhat.com>
33217
33218 PR tree-optimization/56035
33219 * cfgloopmanip.c (fix_loop_structure): Remove redundant condition.
33220
cd0e2161 332212012-01-24 Uros Bizjak <ubizjak@gmail.com>
33222
33223 * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative.
33224 (*movtf_internal_rex64): Add (!o,C) alternative
33225 (*movxf_internal_rex64): Ditto.
33226 (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives.
33227
2b139ca6 332282013-01-24 Shenghou Ma <minux.ma@gmail.com>
33229
33230 * doc/invoke.texi: fix typo.
33231 * doc/objc.texi: fix typo.
33232
1283f262 332332013-01-24 Richard Sandiford <rdsandiford@googlemail.com>
33234
33235 * config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint
33236 for the first two alternatives.
33237
5cc13354 332382013-01-24 Diego Novillo <dnovillo@google.com>
33239
f2897e01 33240 * Makefile.in (GGC): Remove. Replace all instances with ggc-page.o.
5cc13354 33241 (ggc-zone.o): Remove.
33242 * configure.ac: Remove option --with-gc.
33243 * configure: Re-generate.
33244 * doc/install.texi: Remove documentation for --with-gc.
33245 * gengtype.c (write_enum_defn): Remove. Update all users.
33246 (write_Types_process_field): Remove generation of gt_e_* argument.
33247 (output_type_enum): Remove. Update all users.
33248 (write_enum_defn): Remove. Update all users.
33249 (enum alloc_zone): Remove. Update all users.
f2897e01 33250 (write_splay_tree_allocator_def): Remove generation of gt_e_* argument.
5cc13354 33251 * ggc-common.c (ggc_splay_alloc): Remove first argument.
33252 Update all callers.
33253 (struct ptr_data): Remove field TYPE. Update all users.
f2897e01 33254 (gt_pch_note_object): Remove argument TYPE. Update all users.
5cc13354 33255 * ggc-internal.h (ggc_pch_alloc_object): Remove last argument.
33256 Update all users.
96e241e8 33257 * ggc-none.c (ggc_alloc_typed_stat): Remove.
5cc13354 33258 (struct alloc_zone): Remove.
33259 (ggc_internal_alloc_zone_stat): Remove.
33260 (ggc_internal_cleared_alloc_zone_stat): Remove.
33261 * ggc-page.c (ggc_alloc_typed_stat): Remove.
f2897e01 33262 (ggc_pch_count_object): Remove last argument. Update all users.
33263 (ggc_pch_alloc_object): Remove last argument. Update all users.
5cc13354 33264 (struct alloc_zone): Remove.
33265 * ggc-zone.c: Remove.
f2897e01 33266 * ggc.h (gt_pch_note_object): Remove last argument. Update all users.
5cc13354 33267 (struct alloc_zone): Remove.
33268 (ggc_alloc_typed_stat): Remove.
33269 (ggc_alloc_typed): Remove.
33270 (ggc_splay_alloc): Remove first argument.
33271 (rtl_zone): Remove. Update all users.
33272 (tree_zone): Remove. Update all users.
33273 (tree_id_zone): Remove. Update all users.
33274 (ggc_internal_zone_alloc_stat): Remove. Update all users.
f2897e01 33275 (ggc_internal_zone_cleared_alloc_stat): Remove. Update all users.
5cc13354 33276 (ggc_internal_zone_vec_alloc_stat): Remove. Update all users.
f2897e01 33277 * tree-ssanames.c: Remove references to zone allocator in comments.
5cc13354 33278
2b5c3dd1 332792013-01-24 Georg-Johann Lay <avr@gjlay.de>
33280
33281 * config/avr/avr.c (avr_out_fract): Make register numbers that
33282 might be outside of source operand signed.
33283
80946863 332842013-01-24 Uros Bizjak <ubizjak@gmail.com>
33285
33286 * config/i386/constraints.md (Yf): New constraint.
33287 * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead
33288 of f constraint to conditionaly disable x87 register preferences.
33289 (*movdf_internal): Ditto.
33290 (*movsf_internal): Ditto.
33291
aa46b107 332922013-01-24 Steven Bosscher <steven@gcc.gnu.org>
33293
33294 PR inline-asm/55934
33295 * lra-assigns.c (assign_by_spills): Throw away the pattern of asms
33296 that have operands with impossible constraints.
33297 Add a FIXME for a speed-up opportunity.
33298 * lra-constraints.c (process_alt_operands): Verify that a class
33299 selected from constraints on asms is valid for the operand mode.
33300 (curr_insn_transform): Remove incorrect comment.
33301
657dd719 333022013-01-23 David Edelsohn <dje.gcc@gmail.com>
33303
33304 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that
33305 TOC operand is a valid symbol ref in the constant pool.
33306
333072013-01-23 Edgar E. Iglesias <edgar.iglesias@gmail.com>
d6fe7425 33308
96e241e8 33309 * config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS
d6fe7425 33310
c9b315f4 333112013-01-23 Georg-Johann Lay <avr@gjlay.de>
33312
33313 PR target/54222
33314 * config/avr/stdfix.h: New file.
33315 * t-avr (stdfix-gcc.h): New rule to build it.
33316 (EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h.
33317
4a2c1ffc 333182013-01-23 Kostya Serebryany <kcc@google.com>
33319
f2897e01 33320 * config/darwin.h: remove dependency on
33321 CoreFoundation (asan on Mac OS).
4a2c1ffc 33322
b8eae306 333232013-01-23 Jakub Jelinek <jakub@redhat.com>
33324
33325 PR target/49069
33326 * config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand
33327 instead of cmpdi_operand for first comparison operand.
33328 Don't assert that comparison operands aren't both constants.
33329
feadd43d 333302013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
33331
33332 * doc/install.texi (Downloading the Source): Update references to
33333 downloading separate components.
33334
333352013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
32b80c6a 33336
33337 * doc/extend.texi (__int128): Improve grammar.
33338
feadd43d 333392013-01-22 Uros Bizjak <ubizjak@gmail.com>
38a03d63 33340
33341 PR target/56028
33342 * config/i386/i386.md (*movti_internal_rex64): Change (o,riF)
33343 alternative to (o,r).
33344 (*movdi_internal_rex64): Remove (!o,n) alternative.
33345 (DImode immediate->memory splitter): Remove.
33346 (DImode immediate->memory peephole2): Remove.
33347 (movtf): Enable for TARGET_64BIT || TARGET_SSE.
33348 (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r)
33349 alternative to (!o,*r).
33350 (*movtf_internal_sse): New pattern.
33351 (*movxf_internal_rex64): New pattern.
33352 (*movxf_internal): Disable for TARGET_64BIT.
33353 (*movdf_internal_rex64): Remove (!o,F) alternative.
33354
e6d8288f 333552013-01-22 Jakub Jelinek <jakub@redhat.com>
33356
b2d978a6 33357 PR middle-end/56074
33358 * dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc)
33359 isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION.
33360 * tree-vect-loop-manip.c (find_loop_location): Also ignore
33361 stmt locations where LOCATION_LOCUS of the stmt location is
33362 UNKNOWN_LOCATION or BUILTINS_LOCATION.
33363
e6d8288f 33364 PR target/55686
33365 * config/i386/i386.md (UNSPEC_STOS): New.
33366 (strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1,
33367 *strsetqi_1): Add UNSPEC_STOS.
33368
81b38777 333692013-01-22 Paolo Carlini <paolo.carlini@oracle.com>
33370
33371 PR c++/56067
33372 * doc/invoke.texi: Remove left over -Wsynth example.
33373
3e97846e 333742013-01-21 Jakub Jelinek <jakub@redhat.com>
33375
33376 PR tree-optimization/56051
33377 * fold-const.c (fold_binary_loc): Don't fold
33378 X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
33379 a narrowing conversion, or widening conversion from signed
33380 to unsigned.
33381
feadd43d 333822013-01-21 Uros Bizjak <ubizjak@gmail.com>
ae3eaa0f 33383
33384 PR rtl-optimization/56023
33385 * haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
33386 dependent on debug instruction.
33387
a956a7a6 333882013-01-21 Martin Jambor <mjambor@suse.cz>
33389
33390 PR middle-end/56022
33391 * function.c (allocate_struct_function): Call
33392 invoke_set_current_function_hook earlier.
33393
cd5c8367 333942013-01-21 Jakub Jelinek <jakub@redhat.com>
33395
33396 * reload1.c (init_reload): Only initialize reload_obstack
33397 during the first call.
33398
dcb14b61 333992013-01-21 Marek Polacek <polacek@redhat.com>
33400
33401 * cfgloop.c (verify_loop_structure): Fix up grammar.
33402
1a262a91 334032013-01-21 Yi-Hsiu Hsu <ahsu@marvell.com>
33404
33405 * config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift,
33406 pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift.
33407
43115c41 334082013-01-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
33409
33410 PR target/56058
33411 * config/arm/marvell-pj4.md: Update copyright year.
33412 Fix up use of alu to alu_reg and simple_alu_imm.
33413
feadd43d 334142013-01-21 Uros Bizjak <ubizjak@gmail.com>
914b013a 33415
33416 * config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.
33417
e0420317 334182013-01-20 Vladimir Makarov <vmakarov@redhat.com>
33419
33420 PR target/55433
33421 * lra-constraints.c (curr_insn_transform): Don't reuse original
914b013a 33422 insn for secondary memory move when memory mode should be different.
e0420317 33423
e7bca8d9 334242013-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
33425
33426 * config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi,
33427 atomic_storedi_1): New patterns.
33428
6470d004 334292013-01-20 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
33430
33431 btver2 pipeline descriptions.
33432 * config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline
33433 descriptions.
33434 * config/i386/i386.md (btver2_decode): New type attributes.
914b013a 33435 * config/i386/sse.md (btver2_decode, btver2_sse_attr): New
6470d004 33436 type attributes.
33437 * config/i386/btver2.md: New file describing btver2 pipelines.
33438
3a73dcc2 334392013-01-19 Andrew Pinski <apinski@cavium.com>
33440
33441 PR tree-optimization/52631
33442 * tree-ssa-sccvn (visit_use): Before looking up the original
33443 statement, try looking up the simplified expression.
33444
a3076649 334452013-01-19 Anthony Green <green@moxielogic.com>
33446
33447 * config/moxie/moxie.c (moxie_expand_prologue): Set
33448 current_function_static_stack_size.
33449
16f02f09 334502013-01-18 Jakub Jelinek <jakub@redhat.com>
33451
33452 PR tree-optimization/56029
33453 * tree-phinodes.c (reserve_phi_args_for_new_edge): Set
33454 gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION.
33455
c4c46233 334562013-01-18 Sharad Singhai <singhai@google.com>
33457
33458 PR tree-optimization/55995
33459 * dumpfile.c (dump_loc): Print location only if available.
33460 * tree-vectorizer.c (increase_alignment): Intialize vect_location.
33461
c47331e3 334622013-01-18 Vladimir Makarov <vmakarov@redhat.com>
33463
33464 PR target/55433
33465 * lra-constraints.c (curr_insn_transform): Reuse original insn for
33466 secondary memory move.
33467 (inherit_reload_reg): Use rclass instead of cl for
33468 check_secondary_memory_needed_p.
33469
83014b20 334702013-01-18 Jakub Jelinek <jakub@redhat.com>
33471
33472 PR middle-end/56015
33473 * expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
914b013a 33474 the case where writing real complex part of target modifies op1.
83014b20 33475
15953bb4 334762013-01-18 James Greenhalgh <james.greenhalgh@arm.com>
33477
33478 * config/aarch64/aarch64-simd.md
33479 (aarch64_vcond_internal<mode>): Handle unordered cases.
33480 * config/aarch64/iterators.md (v_cmp_result): New.
33481
ea7d210b 334822013-01-18 Yi-Hsiu Hsu <ahsu@marvell.com>
33483 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
33484
33485 * config/arm/marvell-pj4.md: New file.
33486 * config/arm/arm.c (arm_issue_rate): Add marvell_pj4.
33487 * config/arm/arm.md (generic_sched): Add marvell_pj4.
33488 (generic_vfp): Likewise.
33489 * config/arm/arm-cores.def: Add marvell-pj4.
33490 * config/arm/arm-tune.md: Regenerate.
33491 * config/arm/arm-tables.opt: Regenerate.
33492 * config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4.
33493 * doc/invoke.texi: Document marvell-pj4.
33494
7a28aaef 334952013-01-18 Tejas Belagod <tejas.belagod@arm.com>
33496
33497 * config/aarch64/arm_neon.h: Map scalar types to standard types.
33498
0190fe95 334992013-01-18 Alexandre Oliva <aoliva@redhat.com>
861a6de4 33500
33501 PR debug/54114
33502 PR debug/54402
33503 PR debug/49888
33504 * var-tracking.c (negative_power_of_two_p): New.
33505 (global_get_addr_cache, local_get_addr_cache): New.
33506 (get_addr_from_global_cache, get_addr_from_local_cache): New.
33507 (vt_canonicalize_addr): Rewrite using the above. Adjust the
33508 heading comment.
33509 (vt_stack_offset_p): Remove.
33510 (vt_canon_true_dep): Always canonicalize loc's address.
33511 (clobber_overlapping_mems): Make sure we have a MEM.
33512 (local_get_addr_clear_given_value): New.
33513 (val_reset): Clear local cached entries.
33514 (compute_bb_dataflow): Create and release the local cache.
33515 Disable duplicate MEMs clobbering.
33516 (emit_notes_in_bb): Clobber MEMs likewise.
33517 (vt_emit_notes): Create and release the local cache.
33518 (vt_initialize, vt_finalize): Create and release the global
33519 cache, respectively.
914b013a 33520 * alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs.
861a6de4 33521
0190fe95 335222013-01-18 Alexandre Oliva <aoliva@redhat.com>
a9490210 33523
33524 PR libmudflap/53359
33525 * tree-mudflap.c (mudflap_finish_file): Skip deferred decls
33526 not found in the symtab.
33527
0190fe95 335282013-01-18 Alexandre Oliva <aoliva@redhat.com>
340ad617 33529
1ff3b42b 33530 PR debug/56006
340ad617 33531 PR rtl-optimization/55547
33532 PR rtl-optimization/53827
33533 PR debug/53671
33534 PR debug/49888
33535 * alias.c (offset_overlap_p): New, factored out of...
33536 (memrefs_conflict_p): ... this. Use absolute sizes. Retain
33537 the conservative special case for symbolic constants. Don't
33538 adjust zero sizes on alignment.
33539
1bcf869e 335402013-01-18 Bernd Schmidt <bernds@codesourcery.com>
33541
33542 PR rtl-optimization/52573
33543 * regrename.c (build_def_use): Ignore REG_DEAD notes if there is a
33544 REG_UNUSED for the same register.
33545
c1f96968 335462013-01-17 Richard Biener <rguenther@suse.de>
33547 Marek Polacek <polacek@redhat.com>
33548
33549 PR rtl-optimization/55833
33550 * loop-unswitch.c (unswitch_loops): Move loop verification...
33551 (unswitch_single_loop): ...here. Call mark_irreducible_loops.
33552 * cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter.
33553 Set it to true when we're removing a loop from hierarchy tree in
33554 an irreducible region.
33555 (fix_bb_placements): Adjust caller.
33556 (fix_loop_placements): Likewise.
33557
73263209 335582013-01-17 Georg-Johann Lay <avr@gjlay.de>
33559
33560 * config/avr/builtins.def (DEF_BUILTIN): Factor out
33561 "__builtin_avr_" from NAME, turn NAME to an uppercase identifier.
33562 Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'.
33563 Remove ID. Adjust comments.
33564 * config/avr/avr-c.c (avr_builtin_name): Remove.
33565 (avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop.
33566 * config/avr/avr.c (avr_tolower): New static function.
33567 (DEF_BUILTIN): Remove parameter ID. Prefix ICODE by 'CODE_FOR_'.
33568 Stringify NAME, prefix it with "__builtin_avr_" and lowercase it.
33569 (avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for
33570 default expansion.
33571
9ce07db4 335722013-01-17 Jan Hubicka <jh@suse.cz>
33573
cb7b3a2f 33574 PR tree-optimization/55273
9ce07db4 33575 * loop-iv.c (iv_number_of_iterations): Consider zero iteration case.
33576
feadd43d 335772013-01-17 Uros Bizjak <ubizjak@gmail.com>
a5b5a55a 33578
33579 PR target/55981
33580 * config/i386/sync.md (atomic_store<mode>): Always generate SWImode
33581 store through atomic_store<mode>_1.
33582 (atomic_store<mode>_1): Macroize insn using SWI mode iterator.
33583
3f442959 335842013-01-17 Martin Jambor <mjambor@suse.cz>
33585
33586 PR tree-optimizations/55264
33587 * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
33588 for virtual methods.
33589 * ipa.c (symtab_remove_unreachable_nodes): Never return true for
33590 virtual methods before inlining is over.
33591 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
33592 virtual functions.
33593 * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
33594 non-virtual.
33595
a2e20fd2 335962013-01-16 Vladimir Makarov <vmakarov@redhat.com>
33597
33598 PR rtl-optimization/56005
33599 * sched-deps.c (sched_analyze_2): Check deps->readonly for adding
33600 pending reads for prefetch.
33601
e7e5bbc5 336022013-01-16 Ian Bolton <ian.bolton@arm.com>
33603
96e241e8 33604 * config/aarch64/aarch64.md
e7e5bbc5 33605 (*cstoresi_neg_uxtw): New pattern.
33606 (*cmovsi_insn_uxtw): New pattern.
33607 (*<optab>si3_uxtw): New pattern.
33608 (*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern.
33609 (*<optab>si3_insn_uxtw): New pattern.
33610 (*bswapsi2_uxtw): New pattern.
33611
a74056fd 336122013-01-16 Richard Biener <rguenther@suse.de>
33613
33614 * tree-inline.c (tree_function_versioning): Remove set but
33615 never used variable.
33616
c9b2c569 336172013-01-16 Richard Biener <rguenther@suse.de>
33618
33619 PR tree-optimization/55964
33620 * tree-flow.h (rename_variables_in_loop): Remove.
33621 (rename_variables_in_bb): Likewise.
33622 * tree-loop-distribution.c (update_phis_for_loop_copy): Remove.
33623 (copy_loop_before): Adjust and delete update-ssa status.
33624 * tree-vect-loop-manip.c (rename_variables_in_bb): Make static.
a5b5a55a 33625 (rename_variables_in_bb): Likewise. Properly walk over predecessors.
c9b2c569 33626 (rename_variables_in_loop): Remove.
33627 (slpeel_update_phis_for_duplicate_loop): Likewise.
33628 (slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops,
33629 use available cfg machinery instead of duplicating it.
33630 Update PHI nodes and perform poor-mans SSA update here.
33631 (slpeel_tree_peel_loop_to_edge): Adjust.
33632
d590d541 336332013-01-16 Richard Biener <rguenther@suse.de>
33634
33635 PR tree-optimization/54767
33636 PR tree-optimization/53465
33637 * tree-vrp.c (vrp_meet_1): Revert original fix for PR53465.
33638 (vrp_visit_phi_node): For PHI arguments coming via backedges
33639 drop all symbolical range information.
33640 (execute_vrp): Compute backedges.
33641
c7cd65bf 336422013-01-16 Richard Biener <rguenther@suse.de>
33643
33644 * doc/install.texi: Update CLooG and ISL requirements to
33645 0.18.0 and 0.11.1.
33646
31fd081d 336472013-01-16 Christian Bruel <christian.bruel@st.com>
33648
33649 PR target/55301
33650 * config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol.
33651 (broken_move): Handle UNSPECV_SP_SWITCH_B.
33652 * config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG).
33653
336542013-01-16 DJ Delorie <dj@redhat.com>
33655
33656 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
33657 (UNSPECV_SP_SWITCH_E): New.
33658 (sp_switch_1): Change to an unspec.
33659 (sp_switch_2): Change to an unspec. Don't use post-inc when we
33660 replace $r15.
33661
336622013-01-16 Uros Bizjak <ubizjak@gmail.com>
1a9fa1dd 33663
33664 * emit-rtl.c (need_atomic_barrier_p): Mask memory model argument
33665 with MEMMODEL_MASK before comparing with MEMMODEL_* memory types.
33666 * optabs.c (maybe_emit_sync_lock_test_and_set): Ditto.
33667 (expand_mem_thread_fence): Ditto.
33668 (expand_mem_signal_fence): Ditto.
33669 (expand_atomic_load): Ditto.
33670 (expand_atomic_store): Ditto.
33671
0190fe95 336722013-01-16 Alexandre Oliva <aoliva@redhat.com>
bb2bc4f3 33673
33674 PR rtl-optimization/55547
33675 PR rtl-optimization/53827
33676 PR debug/53671
33677 PR debug/49888
33678 * alias.c (memrefs_conflict_p): Set sizes to negative after
33679 AND adjustments.
33680
392a7dd5 336812013-01-15 Jakub Jelinek <jakub@redhat.com>
33682
33683 PR target/55940
33684 * function.c (thread_prologue_and_epilogue_insns): Always
33685 add crtl->drap_reg to set_up_by_prologue.set, even if
33686 stack_realign_drap is false.
33687
8aaf4223 336882013-01-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
33689
33690 * config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3,
33691 and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3,
33692 *call): Fix indention.
33693
c35e21be 336942013-01-15 Tom de Vries <tom@codesourcery.com>
33695
33696 PR target/55876
33697 * optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG.
33698 Update comment.
33699
42fb263f 337002013-01-15 Vladimir Makarov <vmakarov@redhat.com>
33701
392a7dd5 33702 PR rtl-optimization/55153
42fb263f 33703 * sched-deps.c (sched_analyze_2): Add pending reads for prefetch.
33704
1789bced 337052013-01-15 Martin Jambor <mjambor@suse.cz>
33706
33707 PR tree-optimization/55920
33708 * tree-sra.c (analyze_access_subtree): Do not mark non-removable
33709 accesses as grp_to_be_debug_replaced.
33710
ddce22b8 337112013-01-15 Jakub Jelinek <jakub@redhat.com>
33712
33713 PR tree-optimization/55920
33714 * tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced
33715 there is non-useless type conversion needed from debug rhs to lhs,
33716 use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR.
33717
1969f96d 337182013-01-15 Joseph Myers <joseph@codesourcery.com>
33719 Mikael Pettersson <mikpe@it.uu.se>
33720
33721 PR target/43961
33722 * config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for
33723 Thumb.
33724 (ASM_OUTPUT_CASE_LABEL): Remove.
33725 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty.
33726 * final.c (shorten_branches): Update alignment of labels before
33727 jump tables if CASE_VECTOR_SHORTEN_MODE.
33728
21be23eb 337292013-01-15 Richard Biener <rguenther@suse.de>
33730
33731 PR bootstrap/55961
33732 * system.h: Do not include gmp.h for building host tools.
33733
323cf38f 337342013-01-15 Richard Biener <rguenther@suse.de>
33735
33736 PR middle-end/55882
33737 * emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly
33738 account for bitpos when computing alignment.
33739
56de744c 337402013-01-15 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com>
33741
33742 * config/i386/i386-c.c (ix86_target_macros_internal): New case.
33743 (ix86_target_macros_internal): Likewise.
33744
33745 * config/i386/i386.c (m_CORE2I7): Removed.
33746 (m_CORE_HASWELL): New macro.
33747 (m_CORE_ALL): Likewise.
33748 (initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL.
33749 (initial_ix86_arch_features): Likewise.
33750 (processor_target_table): Initializations for Core avx2.
33751 (cpu_names): New names "core-avx2".
33752 (ix86_option_override_internal): Changed PROCESSOR_COREI7 by
33753 PROCESSOR_CORE_HASWELL.
33754 (ix86_issue_rate): New case.
33755 (ia32_multipass_dfa_lookahead): Likewise.
33756 (ix86_sched_init_global): Likewise.
33757
33758 * config/i386/i386.h (TARGET_HASWELL): New macro.
33759 (target_cpu_default): New TARGET_CPU_DEFAULT_haswell.
33760 (processor_type): New PROCESSOR_HASWELL.
33761
8365f6c8 337622013-01-15 Jakub Jelinek <jakub@redhat.com>
33763
2d788f29 33764 PR tree-optimization/55955
33765 * tree-vect-loop.c (vectorizable_reduction): Give up early on
33766 *SHIFT_EXPR and *ROTATE_EXPR codes.
33767
8365f6c8 33768 PR tree-optimization/48766
33769 * opts.c (common_handle_option): For -fwrapv disable -ftrapv, for
33770 -ftrapv disable -fwrapv.
33771
02edff68 337722013-01-14 Georg-Johann Lay <avr@gjlay.de>
33773
33774 PR target/55974
33775 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH
33776 etc. to 1 and not to __flash.
33777 Use LL suffix for __INT24_MAX__ with -mint8.
33778 Use ULL suffix for __UINT24_MAX__ with -mint8.
33779
ce544647 337802013-01-14 Georg-Johann Lay <avr@gjlay.de>
33781
33782 * config/avr/avr-arch.h
33783 (struct base_arch_s): Use typedef avr_arch_t instead.
33784 (struct arch_info_s): Use typedef avr_arch_info_t instead.
33785 (struct mcu_type_s): Use typedef avr_mcu_t instead.
33786 * config/avr/avr.c: Same.
33787 * config/avr/avr-devices.c: Same.
33788 * config/avr/driver-avr.c: Same.
33789 * config/avr/gen-avr-mmcu-texi.c: Same.
33790 * config/avr/avr-mcus.def: Adjust comment.
33791
df83fa4d 337922013-01-14 Tejas Belagod <tejas.belagod@arm.com>
33793
1a9fa1dd 33794 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New.
33795 * config/aarch64/iterators.md (VALLDI): New.
df83fa4d 33796
feadd43d 337972013-01-14 Uros Bizjak <ubizjak@gmail.com>
5fc510c2 33798 Andi Kleen <ak@linux.intel.com>
33799
33800 PR target/55948
33801 * config/i386/sync.md (atomic_store<mode>_1): New pattern.
33802 (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE
33803 memmodel flag.
33804
0dff9558 338052013-01-14 Georg-Johann Lay <avr@gjlay.de>
33806
33807 * config/avr/avr-stdint.h: Remove trailing blanks.
33808 * config/avr/avr-log.h: Same.
33809 * config/avr/avr-arch.h: Same.
33810 * config/avr/avr-devices.c: Same.
33811 * config/avr/avr-dimode.md: Same.
33812 * config/avr/predicates.md: Same.
33813 * config/avr/avr-c.c: Same. And fix typo.
5fc510c2 33814
0dff9558 33815 * config/avr/avr-protos.h: Same. And:
33816 (function_arg_regno_p): Rename to avr_function_arg_regno_p.
33817 (init_cumulative_args): Rename to avr_init_cumulative_args.
33818 (expand_prologue): Rename to avr_expand_prologue.
33819 (expand_epilogue): Rename to avr_expand_epilogue.
33820 (adjust_insn_length): Rename to avr_adjust_insn_length.
33821 (notice_update_cc): Rename to avr_notice_update_cc.
33822 (final_prescan_insn): Rename to avr_final_prescan_insn.
33823 * config/avr/avr.c: Same.
33824 * config/avr/avr.h: Same.
33825 * config/avr/avr.md: Remove trailing blanks.
33826 (prologue): Use avr_expand_prologue.
33827 (epilogue, sibcall_epilogue): Use avr_expand_epilogue.
33828
66366b96 338292013-01-14 Richard Biener <rguenther@suse.de>
33830
33831 * tree-cfg.c (verify_expr_location, verify_expr_location_1,
33832 verify_location, collect_subblocks): New functions.
33833 (verify_gimple_in_cfg): Verify that locations only reference
33834 BLOCKs in the functions BLOCK tree.
33835
11db727d 338362013-01-14 Richard Biener <rguenther@suse.de>
33837
33838 * tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated
33839 PHI argument.
33840 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly
33841 unshare reference.
33842 (insert_out_of_ssa_copy_on_edge): Likewise.
33843 (rewrite_close_phi_out_of_ssa): Likewise.
33844 * tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare
33845 debug expressions.
33846 * tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare
33847 propagated constants.
33848 * tree-cfg.c (tree_node_can_be_shared): Handled component-refs
33849 can not be shared.
33850
1e6735ea 338512013-01-14 Georg-Johann Lay <avr@gjlay.de>
33852
33853 * config/avr/avr-modes.def: Add GPL copyright notice.
33854
86eac679 338552013-01-13 Uros Bizjak <ubizjak@gmail.com>
33856
33857 * config/i386/sync.md (mem_thread_fence): Mask operands[0] with
33858 MEMMODEL_MASK to determine memory model.
33859 (atomic_store<mode>): Ditto from operands[2].
33860 * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool.
33861
8f266cd9 338622013-01-13 Jakub Jelinek <jakub@redhat.com>
33863
33864 PR fortran/55935
86eac679 33865 * gimple-fold.c (get_symbol_constant_value): Call unshare_expr.
8f266cd9 33866 (fold_gimple_assign): Don't call unshare_expr here.
33867 (fold_ctor_reference): Call unshare_expr.
33868
7137cdac 338692013-01-13 Terry Guo <terry.guo@arm.com>
33870
96e241e8 33871 * Makefile.in (s-mlib): New argument MULTILIB_REUSE.
33872 * doc/fragments.texi: Document MULTILIB_REUSE.
33873 * gcc.c (multilib_reuse): New internal spec.
7137cdac 33874 (set_multilib_dir): Also search multilib from multilib_reuse.
96e241e8 33875 * genmultilib (tmpmultilib3): Refactor code.
7137cdac 33876 (tmpmultilib4): Ditto.
33877 (multilib_reuse): New multilib argument.
33878
9231cb67 338792013-01-13 Richard Sandiford <rdsandiford@googlemail.com>
33880
33881 * Makefile.in: Update copyright.
33882
3d38d682 338832013-01-12 Tom de Vries <tom@codesourcery.com>
33884
33885 PR middle-end/55890
33886 * calls.c (expand_call): Check if arg_nr is valid.
33887
5c598e22 338882013-01-11 Michael Meissner <meissner@linux.vnet.ibm.com>
33889
33890 * doc/extend.texi (X86 Built-in Functions): Add whitespace in
33891 __builtin_ia32_paddb256 and __builtin_ia32_pavgb256
21b14971 33892 documentation. Add missing '__' in front of
33893 __builtin_ia32_packssdw256.
5c598e22 33894
de47476b 338952013-01-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
33896
33897 PR target/55719
33898 * config/s390/s390.c (s390_preferred_reload_class): Do not return
33899 NO_REGS for larl operands.
33900 (s390_reload_larl_operand): Use s390_load_address instead of
33901 emit_move_insn.
33902
bf27bcdd 339032013-01-11 Richard Biener <rguenther@suse.de>
33904
33905 * tree-cfg.c (verify_node_sharing_1): Split out from ...
33906 (verify_node_sharing): ... here.
33907 (verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree.
33908
1410e798 339092013-01-11 Eric Botcazou <ebotcazou@adacore.com>
33910
33911 * configure.ac (Tree checking): Set TREECHECKING to yes if enabled.
33912 Substitute TREECHECKING.
33913 * configure: Regenerate.
33914 * Makefile.in (TREECHECKING): New.
33915
feadd43d 339162013-01-11 Richard Guenther <rguenther@suse.de>
742ca2be 33917
33918 PR tree-optimization/44061
33919 * tree-vrp.c (extract_range_basic): Compute zero as
33920 value-range for __builtin_constant_p of function parameters.
33921
711789cc 339222013-01-10 Richard Sandiford <rdsandiford@googlemail.com>
33923
86eac679 33924 Update copyright years.
711789cc 33925
9441d07f 339262013-01-10 Vladimir Makarov <vmakarov@redhat.com>
33927
8f266cd9 33928 PR rtl-optimization/55672
8b599a09 33929 * lra-eliminations.c (mark_not_eliminable): Permit addition with
33930 const to be eliminable.
9441d07f 33931
e69effa4 339322013-01-10 David Edelsohn <dje.gcc@gmail.com>
33933
33934 * configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix.
33935 * configure: Regenerate.
33936
f4146cb8 339372013-01-10 Richard Biener <rguenther@suse.de>
33938
91f28fc1 33939 * builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes.
f4146cb8 33940
e60062ea 339412013-01-10 Richard Biener <rguenther@suse.de>
33942
33943 PR bootstrap/55792
33944 * tree-into-ssa.c (rewrite_add_phi_arguments): Do not set
33945 locations for virtual PHI arguments.
33946 (rewrite_update_phi_arguments): Likewise.
33947
efc3a86d 339482013-01-10 Joel Sherrill <joel.sherrill@OARcorp.com>
33949
33950 * config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi
33951 on to assembler.
33952
349ff920 339532013-01-10 Jakub Jelinek <jakub@redhat.com>
33954
33955 PR tree-optimization/55921
33956 * tree-complex.c (expand_complex_asm): New function.
33957 (expand_complex_operations_1): Call it for GIMPLE_ASM.
33958
2a672556 339592013-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
33960
33961 PR target/55718
33962 * config/s390/s390.c (s390_symref_operand_p)
33963 (s390_loadrelative_operand_p): Merge the two functions.
33964 (s390_check_qrst_address, print_operand_address): Add parameters
33965 to s390_loadrelative_operand_p invokation.
33966 (s390_check_symref_alignment): Use s390_loadrelative_operand_p.
33967 (s390_reload_larl_operand, s390_secondary_reload): Use
33968 s390_loadrelative_operand_p instead of s390_symref_operand_p.
33969 (legitimize_pic_address): Handle @GOTENT and @PLT + addend.
33970
e4209874 339712013-01-09 Mike Stump <mikestump@comcast.net>
33972
33973 * dse.c (record_store): Remove unnecessary assert.
33974
dde4834c 339752013-01-09 Jan Hubicka <jh@suse.cz>
33976
33977 PR tree-optimization/55569
33978 * cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
33979 * cfgloop.h (scale_loop_profile): Likewise.
33980
c7fbaa62 339812013-01-09 Jan Hubicka <jh@suse.cz>
33982
33983 PR lto/45375
91f28fc1 33984 * ipa-inline.c (ipa_inline): Remove extern inlines and virtual
33985 functions.
c7fbaa62 33986 * cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data.
33987
933eb13a 339882013-01-09 Richard Sandiford <rdsandiford@googlemail.com>
33989
33990 PR middle-end/55114
33991 * expr.h (maybe_emit_group_store): Declare.
33992 * expr.c (maybe_emit_group_store): New function.
33993 * builtins.c (expand_builtin_int_roundingfn): Call it.
33994 (expand_builtin_int_roundingfn_2): Likewise.
33995
aa3ce8ba 339962013-01-09 Vladimir Makarov <vmakarov@redhat.com>
33997
701835de 33998 PR rtl-optimization/55829
aa3ce8ba 33999 * lra-constraints.c (match_reload): Add code for absent output.
34000 (curr_insn_transform): Add code for reloads of matched inputs
34001 without output.
34002
889d67a8 340032013-01-09 Uros Bizjak <ubizjak@gmail.com>
34004
34005 * config/i386/sse.md (*vec_interleave_highv2df): Change mode
34006 attribute of movddup insn to DF.
34007 (*vec_interleave_lowv2df): Ditto.
34008 (vec_dupv2df): Ditto.
34009
64552007 340102013-01-09 Jan Hubicka <jh@suse.cz>
34011
34012 PR tree-optimiation/55875
34013 * tree-ssa-loop-niter.c (number_of_iterations_cond): Add
34014 EVERY_ITERATION parameter.
889d67a8 34015 (number_of_iterations_exit): Check if exit is executed every iteration.
64552007 34016 (idx_infer_loop_bounds): Similarly here.
34017 (n_of_executions_at_most): Simplify
34018 to only test for cases where statement is dominated by the
889d67a8 34019 particular bound; handle correctly the "postdominance" test.
64552007 34020 (scev_probably_wraps_p): Use max loop iterations info
34021 as a global bound first.
34022
e1181777 340232013-01-09 Nguyen Duy Dat <dat.nguyen.yn@rvc.renesas.com>
bd38291a 34024 Nick Clifton <nickc@redhat.com>
34025
34026 * config/v850/v850.md (cbranchsf4): New pattern.
34027 (cstoresf4): New pattern.
34028 (cbranchdf4): New pattern.
34029 (cstoredf4): New pattern.
34030 (movsicc): Disallow floating point comparisons.
34031 (cmpsf_le_insn): Fix order of operators.
34032 (cmpsf_lt_insn): Likewise.
34033 (cmpsf_eq_insn): Likewise.
34034 (cmpdf_le_insn): Likewise.
34035 (cmpdf_lt_insn): Likewise.
34036 (cmpdf_eq_insn): Likewise.
34037 (cmpsf_ge_insn): Use LE comparison.
34038 (cmpdf_ge_insn): Likewise.
34039 (cmpsf_gt_insn): Use LT comparison.
34040 (cmpdf_gt_insn): Likewise.
34041 (cmpsf_ne_insn): Delete pattern.
34042 (cmpdf_ne_insn): Delete pattern.
34043 * config/v850/v850.c (v850_gen_float_compare): Use
34044 gen_cmpdf_eq_insn for NE comparison.
34045 (v850_float_z_comparison_operator)
34046 (v850_float_nz_comparison_operator): Move from here ...
34047 * config/v850/predicates.md: ... to here. Move GT and GE
34048 comparisons into v850_float_z_comparison_operator.
34049 * config/v850/v850-protos.h (v850_float_z_comparison_operator):
34050 Delete prototype.
34051 (v850_float_nz_comparison_operator): Likewise.
34052
81d5e322 340532013-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
34054
34055 * config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv
34056 with calls to gen_insvsi/gen_insvdi.
34057
3a33f4ce 340582013-01-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
34059
34060 * config/i386/i386.c (initial_ix86_tune_features): Set up
34061 X86_TUNE_AVX128_OPTIMAL for m_BTVER2.
34062
ed60f27f 340632013-01-09 Steven Bosscher <steven@gcc.gnu.org>
34064 Jakub Jelinek <jakub@redhat.com>
34065
34066 PR tree-optimization/48189
34067 * predict.c (predict_loops): If max is 0, don't call compare_tree_int.
34068 If nitercst is 0, don't predict the exit edge.
34069
7a87c8e1 340702013-01-08 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
b9ccfbdf 34071
34072 * config/aarch64/aarch64.c (aarch64_print_operand): Replace %r
34073 in asm_fprintf with reg_names.
34074 (aarch64_print_operand_address): Likewise.
34075 (aarch64_return_addr): Likewise.
34076 * config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove.
34077
21522827 340782013-01-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
34079
34080 * config/pa/pa.h (VAL_U6_BITS_P): Define.
34081 (INT_U6_BITS): Likewise.
34082 * config/pa/predicates.md (uint6_operand): New predicate.
34083 (shift5_operand, shift6_operand): Likewise.
34084 * config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of
34085 arith32_operand.
34086 (lshrdi3): Use shift6_operand.
34087 (shrpsi4, shrpdi4): New insn patterns.
34088 (extzv): Delete expander.
34089 (extzvsi, extzvdi): New expanders. Use uint5_operand and uint6_operand
34090 predicates in unamed zero extract patterns. Tighten common constraint.
34091 (extv): Delete expander.
34092 (extvsi, extvdi): New expanders. Use uint5_operand and uint6_operand
34093 predicates in unamed sign extract patterns. Tighten common constraint.
34094 (insv): Delete expander.
34095 (insvsi, insvdi): New expanders. Use uint5_operand and uint6_operand
34096 predicates in unamed insert patterns. Tighten common constraint.
34097 Change uint32_operand predicate to uint6_operand predicate in unamed
34098 DImode pattern to insert constant values of type 1...1xxxx.
34099
a240d038 341002013-01-04 Jan Hubicka <jh@suse.cz>
34101
34102 PR tree-optimization/55823
889d67a8 34103 * ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering
34104 issue.
a240d038 34105
feadd43d 341062013-01-08 Jakub Jelinek <jakub@redhat.com>
bbfdbc02 34107 Uros Bizjak <ubizjak@gmail.com>
34108
34109 PR rtl-optimization/55845
34110 * df-problems.c (can_move_insns_across): Stop scanning at
34111 volatile_insn_p source instruction or give up if
34112 across_from .. across_to range contains any volatile_insn_p
34113 instructions.
34114
501336f7 341152013-01-08 Tejas Belagod <tejas.belagod@arm.com>
34116
889d67a8 34117 * config/aarch64/aarch64-simd.md (vec_init<mode>): New.
34118 * config/aarch64/aarch64-protos.h (aarch64_expand_vector_init):
34119 Declare.
501336f7 34120 * config/aarch64/aarch64.c (aarch64_simd_dup_constant,
889d67a8 34121 aarch64_simd_make_constant, aarch64_expand_vector_init): New.
501336f7 34122
cc72d6e9 341232013-01-08 Jakub Jelinek <jakub@redhat.com>
34124
34125 PR fortran/55341
34126 * asan.c (asan_clear_shadow): New function.
34127 (asan_emit_stack_protection): Use it.
34128
b3f1c89d 341292013-01-08 Tejas Belagod <tejas.belagod@arm.com>
34130
34131 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>,
34132 aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand
34133 with tab instead of space.
34134
8d5f09ff 341352013-01-08 Nick Clifton <nickc@redhat.com>
34136
34137 * config/rl78/rl78.c (rl78_expand_prologue): Always select
34138 register bank 0 at the start of an interrupt handler.
50008a8e 34139 * config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and
34140 MDBH registers.
8d5f09ff 34141
1eb525c3 341422013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
34143
34144 * config/aarch64/aarch64-simd.md
34145 (aarch64_simd_bsl<mode>_internal): Add floating-point modes.
34146 (aarch64_simd_bsl): Likewise.
34147 (aarch64_vcond_internal<mode>): Likewise.
34148 (vcond<mode><mode>): Likewise.
34149 (aarch64_cm<cmp><mode>): Fix constraints, add new modes.
34150 * config/aarch64/iterators.md (V_cmp_result): Add V2DF.
34151
5b4374a1 341522013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
34153
34154 * config/aarch64/aarch64-builtins.c
34155 (aarch64_builtin_vectorized_function): Handle sqrt, sqrtf.
34156
5721b378 341572013-01-08 Martin Jambor <mjambor@suse.cz>
34158
34159 PR debug/55579
34160 * tree-sra.c (analyze_access_subtree): Return true also after
34161 potentially creating a debug-only replacement.
34162
4b9630f0 341632013-01-08 Jakub Jelinek <jakub@redhat.com>
34164
0b4f0116 34165 PR middle-end/55890
34166 * tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p.
34167
4b9630f0 34168 PR tree-optimization/54120
34169 * tree-vrp.c (range_fits_type_p): Don't allow
34170 src_precision < precision from signed vr to unsigned_p
34171 if vr->min or vr->max is negative.
34172 (simplify_float_conversion_using_ranges): Test can_float_p
34173 against CODE_FOR_nothing.
34174
100d7996 341752013-01-08 Jakub Jelinek <jakub@redhat.com>
34176 Richard Biener <rguenther@suse.de>
34177
34178 PR middle-end/55851
34179 * fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P
34180 types instead of just INTEGER_TYPE types.
34181
6e029611 341822013-01-07 Mark Kettenis <kettenis@openbsd.org>
34183
34184 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT,
34185 TF_SIZE): Define.
8d5f09ff 34186
8a5bc191 341872013-01-07 Steve Ellcey <sellcey@mips.com>
34188
34189 PR target/42661
34190 * config/mips/mips.opt: Change mad to mmad to match documentation.
34191
975036ab 341922013-01-07 Georg-Johann Lay <avr@gjlay.de>
34193
34194 PR target/55897
34195 * doc/extend.texi (AVR Named Address Spaces): __memx goes into
34196 .progmemx.data now.
34197
0558f5da 341982013-01-07 Georg-Johann Lay <avr@gjlay.de>
34199
34200 PR target/55897
34201 * config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
34202 (avr_addrspace_t): Add .section_name field.
34203 * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
34204 array size.
34205 (avr_addrspace): Same. Initialize .section_name. Remove last
34206 NULL entry. Put __memx into .progmemx.data.
34207 (progmem_section_prefix): Remove.
34208 (avr_asm_init_sections): No need to initialize progmem_section.
34209 (avr_asm_named_section): Use avr_addrspace[].section_name to get
34210 section name prefix.
34211 (avr_asm_select_section): Ditto. And use get_unnamed_section to
34212 retrieve the progmem section.
34213 * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
34214 boundary to run over avr_addrspace[].
34215 (avr_register_target_pragmas): Ditto.
34216
046a838d 342172013-01-06 Jakub Jelinek <jakub@redhat.com>
34218
34219 * varasm.c (output_constant_def_contents): For asan_protect_global
34220 protected strings, adjust DECL_ALIGN if needed, before testing for
34221 anchored symbols.
34222 (place_block_symbol): Adjust size for asan protected STRING_CSTs if
34223 TREE_CONSTANT_POOL_ADDRESS_P. Increase alignment for asan protected
34224 normal decls.
34225 (output_object_block): For asan protected decls, emit asan padding
34226 after their contents.
34227 * asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here.
34228 (asan_finish_file): Test it here instead.
34229
7a87c8e1 342302013-01-07 Nick Clifton <nickc@redhat.com>
34231 Matthias Klose <doko@debian.org>
34232 Doug Kwan <dougkwan@google.com>
34233 H.J. Lu <hongjiu.lu@intel.com>
99d5fe2d 34234
34235 PR driver/55470
34236 * collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold.
34237
34238 * common.opt: Add fuse-ld=bfd and fuse-ld=gold.
34239
34240 * gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2.
34241
889d67a8 34242 * opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold.
99d5fe2d 34243
34244 * doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold.
34245
67cec000 342462013-01-07 Georg-Johann Lay <avr@gjlay.de>
34247
5b804f86 34248 PR target/54461
67cec000 34249 * doc/install.texi (Cross-Compiler-Specific Options): Document
34250 --with-avrlibc.
34251
9de19dd2 342522013-01-07 Tejas Belagod <tejas.belagod@arm.com>
34253
34254 * config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32,
34255 vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64,
34256 vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16,
34257 vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32,
34258 vqmovun_high_s64): Fix source operand number and update copyright.
34259
789a8d72 342602013-01-07 Richard Biener <rguenther@suse.de>
34261
34262 PR middle-end/55890
34263 * gimple.h (gimple_call_builtin_p): New overload.
34264 * gimple.c (validate_call): New function.
34265 (gimple_call_builtin_p): Likewise.
34266 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
34267 Use gimple_call_builtin_p.
34268 (find_func_clobbers): Likewise.
34269 * tree-ssa-strlen.c (adjust_last_stmt): Likewise.
34270 (strlen_optimize_stmt): Likewise.
34271
71e72cc2 342722013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
34273
34274 * config/aarch64/arm_neon.h (vld1_dup_*): Make argument const.
34275 (vld1q_dup_*): Likewise.
34276 (vld1_*): Likewise.
34277 (vld1q_*): Likewise.
34278 (vld1_lane_*): Likewise.
34279 (vld1q_lane_*): Likewise.
34280
85fd8f96 342812013-01-07 Richard Biener <rguenther@suse.de>
34282
34283 * lto-streamer.h (LTO_minor_version): Bump to 2.
34284
72841352 342852013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
34286
34287 * config/aarch64/aarch64-protos.h
34288 (aarch64_const_double_zero_rtx_p): Rename to...
34289 (aarch64_float_const_zero_rtx_p): ...this.
34290 (aarch64_float_const_representable_p): New.
34291 (aarch64_output_simd_mov_immediate): Likewise.
34292 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor
34293 move immediate case.
34294 * config/aarch64/aarch64.c
34295 (aarch64_const_double_zero_rtx_p): Rename to...
34296 (aarch64_float_const_zero_rtx_p): ...this.
34297 (aarch64_print_operand): Allow printing of new constants.
34298 (aarch64_valid_floating_const): New.
34299 (aarch64_legitimate_constant_p): Check for valid floating-point
34300 constants.
34301 (aarch64_simd_valid_immediate): Likewise.
34302 (aarch64_vect_float_const_representable_p): New.
34303 (aarch64_float_const_representable_p): Likewise.
34304 (aarch64_simd_imm_zero_p): Also allow for floating-point 0.0.
34305 (aarch64_output_simd_mov_immediate): New.
34306 * config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative.
34307 (*movdf_aarch64): Likewise.
34308 * config/aarch64/constraints.md (Ufc): New.
34309 (Y): call aarch64_float_const_zero_rtx.
34310 * config/aarch64/predicates.md (aarch64_fp_compare_operand): New.
34311
4a101a28 343122013-01-07 Richard Biener <rguenther@suse.de>
34313
34314 PR tree-optimization/55888
34315 PR tree-optimization/55862
34316 * tree-ssa-pre.c (phi_translate_1): Revert previous change.
34317 (valid_in_sets): Check if a NAME has a leader in AVAIL_OUT,
34318 not if it is contained therein.
34319
3b808880 343202013-01-07 Georg-Johann Lay <avr@gjlay.de>
34321
34322 * config/avr/t-avr: Typo.
34323
8d0c391e 343242013-01-07 Georg-Johann Lay <avr@gjlay.de>
34325
34326 PR55243
34327 * config/avr/t-avr: Don't automatically rebuild
34328 $(srcdir)/config/avr/t-multilib
34329 $(srcdir)/config/avr/avr-tables.opt
34330 $(srcdir)/doc/avr-mmcu.texi
34331 (avr-mcus): New phony target to build them on request.
34332 (s-avr-mlib, s-avr-mmcu-texi): Remove.
34333 * avr/avr-mcus.def: Adjust comments.
34334
e655d10e 343352013-01-07 Uros Bizjak <ubizjak@gmail.com>
34336
34337 * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove.
34338
e2585731 343392013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
34340
34341 * file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder.
34342
e19a420f 343432013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
34344
34345 * config/tilepro/gen-mul-tables.cc: Put copyright on one line.
34346
eab80725 343472013-01-05 David Edelsohn <dje.gcc@gmail.com>
34348
34349 * config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling
34350 to generate profiling.
34351 * config/rs6000/aix64.h (LIB_SPEC): Same.
34352
b49f35d1 343532013-01-04 Andrew Pinski <apinski@cavium.com>
34354
34355 * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs):
34356 New function.
34357 (TARGET_FIXED_CONDITION_CODE_REGS): Define.
34358
370a62b6 343592013-01-04 Uros Bizjak <ubizjak@gmail.com>
34360
34361 * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
34362 unconditionally.
34363 (ix86_expand_move): Ditto.
34364 (ix86_zero_extend_to_Pmode): Ditto.
34365 (ix86_expand_call): Ditto.
34366 (ix86_expand_special_args_builtin): Ditto.
34367 (ix86_expand_builtin): Ditto.
34368
15b93bb9 343692013-01-04 Richard Biener <rguenther@suse.de>
34370
34371 PR tree-optimization/55862
34372 * tree-ssa-pre.c (phi_translate_1): Valueize SSA names after
34373 translating them through PHI nodes.
34374
d210dffc 343752013-01-04 Martin Jambor <mjambor@suse.cz>
34376
34377 PR tree-optimization/55755
34378 * tree-sra.c (sra_modify_assign): Do not check that an access has no
34379 children when trying to avoid producing a VIEW_CONVERT_EXPR.
34380
9448cf4a 343812013-01-04 Marek Polacek <polacek@redhat.com>
34382
34383 PR middle-end/55859
34384 * opts.c (default_options_optimization): Clarify error message.
34385
65afafea 343862013-01-04 Richard Biener <rguenther@suse.de>
34387
34388 PR middle-end/55863
34389 * fold-const.c (split_tree): Undo -X - 1 to ~X folding for
34390 reassociation.
34391
dfb5e2bf 343922013-01-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
34393
34394 PR target/53789
34395 * config/pa/pa.md (movsi): Revert previous change.
a97fe562 34396 * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
34397 references.
dfb5e2bf 34398
8c7f6993 343992013-01-03 Richard Henderson <rth@redhat.com>
34400
34401 * config/i386/i386.c (ix86_expand_move): Always assign to op1
34402 after eliminating TLS symbols.
34403
de2e6b8a 344042013-01-03 Marc Glisse <marc.glisse@inria.fr>
34405
34406 PR bootstrap/50167
34407 * graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf.
34408 * graphite-poly.c (debug_gmp_value): Likewise.
34409
a678c584 344102013-01-03 Uros Bizjak <ubizjak@gmail.com>
34411
34412 PR target/55712
34413 * config/i386/i386-c.c (ix86_target_macros_internal): Depending on
34414 selected code model, define __code_mode_small__, __code_model_medium__,
34415 __code_model_large__, __code_model_32__ or __code_model_kernel__.
34416 * config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix
34417 xchg temporary register with %k. Declare temporary register as
34418 early clobbered.
34419 [__x86_64__]: For medium and large code models, preserve %rbx register.
34420
984cebc1 344212013-01-03 Richard Biener <rguenther@suse.de>
34422
98e7c1f5 34423 * tree-data-ref.c (dump_conflict_function): Use less vertical spacing.
984cebc1 34424 (dump_subscript): Adjust.
34425 (finalize_ddr_dependent): Do not dump redundant info.
34426 (analyze_siv_subscript): Adjust.
34427 (subscript_dependence_tester): Likewise.
34428 (compute_affine_dependence): Likewise.
34429
6f75c845 344302013-01-03 Richard Biener <rguenther@suse.de>
34431
34432 Revert
34433 2013-01-03 Richard Biener <rguenther@suse.de>
34434
34435 PR tree-optimization/55857
34436 * tree-vect-stmts.c (vectorizable_load): Do not setup
34437 re-alignment for invariant loads.
34438
34439 2013-01-02 Richard Biener <rguenther@suse.de>
34440
34441 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
98e7c1f5 34442 invariant load do not generate a vector load from the scalar location.
6f75c845 34443
3c18ea71 344442013-01-03 Richard Biener <rguenther@suse.de>
34445
34446 * tree-vect-loop.c (vect_analyze_loop_form): Clarify reason
34447 for not vectorizing.
34448 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
34449 not build INDIRECT_REFs, call get_name once only.
34450 (vect_create_data_ref_ptr): Likewise. Dump base object kind
34451 based on DR_BASE_OBJECT, not DR_BASE_ADDRESS.
34452
59ff1f4a 344532013-01-03 Richard Biener <rguenther@suse.de>
34454
34455 PR tree-optimization/55857
34456 * tree-vect-stmts.c (vectorizable_load): Do not setup
34457 re-alignment for invariant loads.
34458
5b777cea 344592013-01-03 Richard Biener <rguenther@suse.de>
34460
34461 PR lto/55848
34462 * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
34463 prefer a built-in decl.
34464
e4bef271 344652013-01-03 Jakub Jelinek <jakub@redhat.com>
34466
1f3894c9 34467 * gcc.c (process_command): Update copyright notice dates.
34468 * gcov.c (print_version): Likewise.
34469 * gcov-dump.c (print_version): Likewise.
34470
e4bef271 34471 PR rtl-optimization/55838
34472 * loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on
34473 iv0.step, iv1.step and step.
34474
d871c5dc 344752013-01-03 Jakub Jelinek <jakub@redhat.com>
34476 Marc Glisse <marc.glisse@inria.fr>
34477
34478 PR tree-optimization/55832
34479 * fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and
34480 ABS_EXPR<x> < 0 folding use constant_boolean_node instead of
34481 integer_{one,zero}_node.
34482
78ea005d 344832013-01-03 Jakub Jelinek <jakub@redhat.com>
34484
34485 PR debug/54402
34486 * params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param.
34487 * var-tracking.c (reverse_op): Don't add reverse ops to
34488 VALUEs that have already
98e7c1f5 34489 PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list.
78ea005d 34490
df8f46da 344912013-01-02 Gerald Pfeifer <gerald@pfeifer.com>
34492
34493 * doc/contrib.texi: Note years as release manager for Mark Mitchell.
34494
f55775aa 344952013-01-02 Teresa Johnson <tejohnson@google.com>
34496
34497 * dumpfile.c (dump_loc): Print filename with location.
34498 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use
34499 new location_t parameter to emit complete unroll message with
34500 new dump framework.
34501 (canonicalize_loop_induction_variables): Compute loops location
34502 and pass to try_unroll_loop_completely.
34503 * loop-unroll.c (report_unroll_peel): New function.
34504 (peel_loops_completely): Use new dump format with location
34505 for main dumpfile message, and invoke report_unroll_peel on success.
34506 (decide_unrolling_and_peeling): Ditto.
34507 (decide_peel_once_rolling): Remove old dumpfile message subsumed
34508 by report_unroll_peel.
34509 (decide_peel_completely): Ditto.
34510 (decide_unroll_constant_iterations): Ditto.
34511 (decide_unroll_runtime_iterations): Ditto.
34512 (decide_peel_simple): Ditto.
34513 (decide_unroll_stupid): Ditto.
34514 * cfgloop.c (get_loop_location): New function.
34515 * cfgloop.h (get_loop_location): Declare.
34516
13367f52 345172013-01-02 Sriraman Tallam <tmsriram@google.com>
34518
34519 * config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for
34520 NULL.
34521
7b642468 345222013-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
34523
34524 PR middle-end/55198
34525 * expr.c (expand_expr_real_1): Don't use bitfield extraction for non
34526 BLKmode objects when EXPAND_MEMORY is specified.
34527
bad821ff 345282013-01-02 Sriraman Tallam <tmsriram@google.com>
34529
34530 * config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug
34531 in loop predicate.
34532 (fold_builtin_cpu): Do not share cpu model decls across statements.
34533
c5cfcf40 345342013-01-02 Jason Merrill <jason@redhat.com>
34535
34536 PR c++/55804
34537 * tree.c (build_array_type_1): Revert earlier change.
34538
47509174 345392013-01-02 Yufeng Zhang <yufeng.zhang@arm.com>
34540
34541 * config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and
34542 "cortex-a57".
34543 * config/aarch64/aarch64-tune.md: Re-generate.
34544
bca2a61e 345452013-01-02 Richard Biener <rguenther@suse.de>
34546
34547 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
98e7c1f5 34548 invariant load do not generate a vector load from the scalar location.
bca2a61e 34549
f67e1abf 345502013-01-02 Richard Biener <rguenther@suse.de>
34551
34552 PR bootstrap/55784
34553 * configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS.
34554 * configure: Regenerate.
34555
de2e453e 345562013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
34557
34558 * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2)
34559 (expand_builtin_mathfn_ternary, expand_builtin_mathfn_3)
34560 (expand_builtin_int_roundingfn_2): Keep the original target around
34561 for the fallback case.
34562
ab4cb266 345632013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
34564
34565 * tree-vrp.c (range_fits_type_p): Require the MSB of the double_int
34566 to be clear for sign changes.
34567
e876d531 345682013-01-01 Jan Hubicka <jh@suse.cz>
34569
34570 * ipa-inline-analysis.c: Fix formatting.
34571
c3c33891 345722013-01-01 Jakub Jelinek <jakub@redhat.com>
34573
34574 PR tree-optimization/55831
34575 * tree-vect-loop.c (get_initial_def_for_induction): Use
34576 gsi_after_labels instead of gsi_start_bb.
7dfbd804 34577\f
b3c5d881 34578Copyright (C) 2013 Free Software Foundation, Inc.
7dfbd804 34579
34580Copying and distribution of this file, with or without modification,
34581are permitted in any medium without royalty provided the copyright
34582notice and this notice are preserved.