]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
re PR fortran/43366 ([OOP][F08] Intrinsic assign to polymorphic variable)
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
a0f70fcb
RE
12013-09-18 Richard Earnshaw <rearnsha@arm.com>
2
3 * arm.c (arm_get_frame_offsets): Validate architecture supports
4 LDRD/STRD before accepting the tuning preference.
5 (arm_expand_prologue): Likewise.
6 (arm_expand_epilogue): Likewise.
7
0547c9b6
RB
82013-09-18 Richard Biener <rguenther@suse.de>
9
10 PR tree-optimization/58417
11 * tree-chrec.c (chrec_fold_plus_1): Assert that we do not
12 have chrecs with symbols defined in the loop as operands.
13 (chrec_fold_multiply): Likewise.
14 * tree-scalar-evolution.c (interpret_rhs_expr): Instantiate
15 parameters before folding binary operations.
16 (struct instantiate_cache_entry_hasher): Remove.
17 (struct instantiate_cache_type): Use a pointer-map.
18 (instantiate_cache_type::instantiate_cache_type): New function.
19 (instantiate_cache_type::get): Likewise.
20 (instantiate_cache_type::set): Likewise.
21 (instantiate_cache_type::~instantiate_cache_type): Adjust.
22 (get_instantiated_value_entry): Likewise.
23 (global_cache): New global.
24 (instantiate_scev_r, instantiate_scev_poly, instantiate_scev_binary,
25 instantiate_array_ref, instantiate_scev_convert, instantiate_scev_3,
26 instantiate_scev_2, instantiate_scev_1): Do not pass along cache.
27 (instantiate_scev_name): Adjust.
28 (instantiate_scev): Construct global instead of local cache.
29 (resolve_mixers): Likewise.
30
309dc1aa
DM
312013-09-18 Daniel Morris <danielm@ecoscentric.com>
32 Paolo Carlini <paolo.carlini@oracle.com>
33
34 PR c++/58458
35 * doc/implement-cxx.texi: Fix references to the C++ standards.
36
995a1b4a
JJ
372013-09-18 Jakub Jelinek <jakub@redhat.com>
38
39 * omp-low.c (copy_var_decl): Copy DECL_ATTRIBUTES.
40 * tree-vect-data-refs.c (vect_analyze_data_refs): For
41 simd_lane_access drs, update also DR_ALIGNED_TO.
42
ce6923c5
MP
432013-09-18 Marek Polacek <polacek@redhat.com>
44
45 PR sanitizer/58411
46 * doc/extend.texi: Document no_sanitize_undefined attribute.
47 * builtins.c (fold_builtin_0): Don't sanitize function if it has the
48 no_sanitize_undefined attribute.
49
d30d00a2
NC
502013-09-18 Nick Clifton <nickc@redhat.com>
51
52 * config/msp430/msp430.h (ASM_SPEC): Pass -md on to the assembler.
53 (ASM_DECLARE_FUNCTION_NAME): Define.
54
4d9192b5
TS
552013-09-17 Trevor Saunders <tsaunders@mozilla.com>
56
57 * compare-elim.c (find_comparison_dom_walker): New class
58 (find_comparisons_in_bb): Rename to
59 find_comparison_dom_walker::before_dom_children
60 (find_comparisons): Adjust
61 * domwalk.c (walk_dominator_tree): Rename to dom_walker::walk, and
62 adjust.
63 (init_walk_dominator_tree, fini_walk_dominator_tree): Remove
64 * domwalk.h (dom_walk_data): Convert it To a class dom_walker.
65 (init_walk_dominator_tree): Remove declaration.
66 (fini_walk_dominator_tree): Remove declaration.
67 * fwprop.c (single_def_use_dom_walker): New class
68 (single_def_use_enter_block): Convert to
69 single_def_use_dom_walker::before_dom_children.
70 (single_def_use_leave_block): Convert to
71 single_def_use_dom_walker::after_dom_children.
72 (build_single_def_use_links): Adjust.
73 * gimple-ssa-strength-reduction.c (find_candidates_dom_walker): New
74 class.
75 (find_candidates_in_block): Convert to
76 find_candidates_dom_walker::before_dom_children.
77 (execute_strength_reduction): Adjust.
78 * graphite-sese-to-poly.c (struct bsc, build_sese_conditions): Remove.
79 (sese_dom_walker): New class.
80 (sese_dom_walker::sese_dom_walker): New constructor.
81 (sese_dom_walker::~sese_dom_walker): New destructor.
82 (build_sese_conditions_before): Convert to
83 sese_dom_walker::before_dom_children.
84 (build_sese_conditions_after): Convert to
85 sese_dom_walker::after_dom_children.
86 (build_poly_scop): Adjust
87 * tree-into-ssa.c (rewrite_dom_walker): New class
88 (rewrite_enter_block): Convert to
89 rewrite_dom_walker::before_dom_children.
90 (rewrite_leave_block): Convert to
91 rewrite_dom_walker::after_dom_children.
92 (rewrite_update_dom_walker): New class.
93 (rewrite_update_enter_block): Convert to
94 rewrite_update_dom_walker::before_dom_children.
95 (rewrite_update_leave_block): Convert to
96 rewrite_update_dom_walker::after_dom_children.
97 (rewrite_blocks, rewrite_into_ssa): Adjust.
98 (mark_def_dom_walker): New class.
99 (mark_def_dom_walker::mark_def_dom_walker): New constructor.
100 (mark_def_dom_walker::~mark_def_dom_walker): New destructor.
101 (mark_def_sites_blocks): Convert to
102 mark_def_dom_walker::before_dom_children.
103 (mark_def_site_blocks): Remove.
104 * tree-ssa-dom.c (dom_opt_dom_walker): New class.
105 (tree_ssa_dominator_optimize): Adjust.
106 (dom_thread_across_edge): Convert to method
107 dom_opt_dom_walker::thread_across_edge.
108 (dom_opt_enter_block): Convert to member function
109 dom_opt_dom_walker::before_dom_children.
110 (dom_opt_leave_block): Convert to member function
111 dom_opt_dom_walker::after_dom_children.
112 * tree-ssa-dse.c (dse_dom_walker): New class.
113 (dse_enter_block): Convert to member function
114 dse_dom_walker::before_dom_children.
115 (tree_ssa_dse): Adjust.
116 * tree-ssa-loop-im.c (invariantness_dom_walker): New class.
117 (determine_invariantness_stmt): Convert to method
118 invariantness_dom_walker::before_dom_children.
119 (determine_invariantness): Remove
120 (move_computations_dom_walker): New class.
121 (move_computations_stmt): Convert to method
122 move_computations_dom_walker::before_dom_children.
123 (move_computations, tree_ssa_lim): Adjust.
124 * tree-ssa-phiopt.c (nontrapping_dom_walker): new class
125 (nt_init_block): Make method
126 notrappping_dom_walker::before_dom_children.
127 (nt_fini_block): Make
128 method nontrapping_dom_walker::after_dom_children.
129 (get_non_trapping): Adjust.
130 * tree-ssa-pre.c (eliminate_dom_walker): New class.
131 (eliminate_bb): Make method eliminate_dom_walker::before_dom_children.
132 (eliminate_leave_block): Make method.
133 eliminate_dom_walker::after_dom_children.
134 (eliminate): Adjust
135 * tree-ssa-strlen.c (strlen_dom_walker): New class.
136 (strlen_enter_block): Make method
137 strlen_dom_walker::before_dom_children.
138 (strlen_leave_block): Make
139 method strlen_dom_walker::after_dom_children.
140 (tree_ssa_strlen): Adjust.
141 * tree-ssa-uncprop.c (uncprop_dom_walker): New class.
142 (tree_ssa_uncprop): Adjust.
143 (uncprop_leave_block): Make method
144 uncprop_dom_walker::after_dom_children.
145 (uncprop_leave_block): Make method
146 uncprop_dom_walker::before_dom_children.
147
3b3cc26b
BC
1482013-09-18 Bin Cheng <bin.cheng@arm.com>
149
150 * config/arm/arm.c (thumb1_reorg): Search for flag setting insn
151 before branch in same basic block. Check both src and dest of
152 the move insn.
153
b5ba3a9b
NC
1542013-09-17 Nick Clifton <nickc@redhat.com>
155
156 * config/rl78/rl78-real.md (bf): New pattern.
157 (bt): New pattern.
158 * config/rl78/rl78.c (rl78_print_operand_1): Handle %B.
159 (rl78_print_operand): Do not put a # before a %B.
160 * config/rl78/rl78.opt: Tweak doc strings.
161
09d5094b
DD
1622013-09-17 DJ Delorie <dj@redhat.com>
163
164 * config/rl78/constraints.md (Wcv): Allow up to $r31.
165 * config/rl78/rl78.c (rl78_asm_file_start: Likewise.
166 (rl78_option_override): Likewise, if -mallregs.
167 (is_virtual_register): Likewise.
168 * config/rl78/rl78.h (reg_class): Extend VREGS to $r31.
169 (REGNO_OK_FOR_BASE_P): Likewise.
170 * config/rl78/rl78.opt (-mallregs): New.
171
2ba1dca1
NC
1722013-09-17 Nick Clifton <nickc@redhat.com>
173
174 * config/rl78/rl78.c (need_to_save): Change return type to bool.
175 For interrupt functions: save all call clobbered registers if the
176 interrupt handler is not a leaf function.
177 (rl78_expand_prologue): Always recompute the frame information.
178 For interrupt functions: only select bank 0 if one of the bank 0
179 registers is going to be psuhed.
180
2e7c3f21
DD
1812013-09-17 DJ Delorie <dj@redhat.com>
182
183 * config/rl78/constraints.md: For each W* constraint, rename to C*
184 and create a W* constraint that checks for an optional ES: prefix
185 pattern also.
186 * config/rl78/rl78.md (UNS_ES_ADDR): New.
187 (es_addr): New. Used to wrap far addresses.
188 * config/rl78/rl78-protos.h (rl78_es_addr): New.
189 (rl78_es_base): New.
190 * config/rl78/rl78.c (rl78_as_legitimate_address): Accept "unspec"
191 wrapped far addresses.
192 (rl78_print_operand_1): Unwrap far addresses before processing.
193 (rl78_lo16): Wrap far addresses in unspecs.
194 (rl78_es_addr): New.
195 (rl78_es_base): New.
196 (insn_ok_now): Check for not-yet-wrapped far addresses.
197 (transcode_memory_rtx): Properly re-wrap far addresses.
198
5c26a69a
SH
1992013-09-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
200
201 * config/sparc/t-rtems: Add leon3 multilibs.
202
181f5f3e
CH
2032013-09-17 Cong Hou <congh@google.com>
204
205 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Fix a bug
206 when checking the dot production pattern. The type of rhs operand
207 of multiply is now checked correctly.
208
8d34e421
JL
2092013-09-17 Jeff Law <law@redhat.com>
210
211 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
212 edge implied equivalences into successor phis.
213 * tree-ssa-threadupdate.c (phi_args_equal_on_edges): Moved into
214 here from tree-ssa-threadedge.c.
215 (mark_threaded_blocks): When threading through a joiner, if both
216 successors of the joiner's clone reach the same block, verify the
217 PHI arguments are equal. If not, cancel the jump threading request.
218 * tree-ssa-threadedge.c (phi_args_equal_on_edges): Moved into
219 tree-ssa-threadupdate.c
220 (thread_across_edge): Don't check PHI argument equality when
221 threading through joiner block here.
222
c152901f
AM
2232013-09-17 Andrew MacLeod <amacleod@redhat.com>
224
225 * tree-flow.h (ssa_undefined_value_p): Remove prototype.
226 * tree-ssa.c (ssa_undefined_value_p): Move pass independent parts here.
227 (warn_uninit, warn_uninitialized_vars, execute_early_warn_uninitialized,
228 make_pass_early_warn_uninitialized): Move to tree-ssa-uninit.c.
229 * tree-ssa-uninit.c (ssa_undefined_value_p): Move to tree-ssa.c
230 (has_undefined_value_p): New. Pass dependant parts of
231 ssa_undefined_value_p.
232 (uninit_undefined_value_p): Use has_undefined_value_p.
233 (warn_uninit, warn_uninitialized_vars, execute_early_warn_uninitialized,
234 make_pass_early_warn_uninitialized): Move from tree-ssa.c
235 * tree-ssa.h: Adjust prototypes
236
b631d45a
JH
2372013-09-17 Jan Hubicka <jh@suse.cz>
238
239 PR middle-end/58332
240 * cif-code.def (FUNCTION_NOT_OPTIMIZED): New CIF code.
241 * ipa-inline.c (can_inline_edge_p): Do not downgrade
242 FUNCTION_NOT_OPTIMIZED.
243 * ipa-inline-analysis.c (compute_inline_parameters): Function
244 not optimized is not inlinable unless it is alwaysinline.
245 (inline_analyze_function): Force calls in not optimized
246 function not inlinable.
247
5b79657a
JH
2482013-09-17 Jan Hubicka <jh@suse.cz>
249
250 PR middle-end/58329
251 * ipa-devirt.c (ipa_devirt): Be ready for symtab_nonoverwritable_alias
252 to return NULL.
253 * ipa.c (function_and_variable_visibility): Likewise.
254 * ipa-profile.c (ipa_profile): Likewise.
255
27442c24
BE
2562013-09-17 Bernd Edlinger <bernd.edlinger@hotmail.de>
257
258 PR ipa/58398
259 * cgraph.c (cgraph_function_body_availability): Check for ifunc
260 attribute, and don't inline the resolver in this case.
261
753b9bc3
TJ
2622013-09-17 Teresa Johnson <tejohnson@google.com>
263
264 * coverage.c (get_coverage_counts): Add missing newline.
265
e3d3cfb4
KT
2662013-09-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
267
268 PR tree-optimization/58088
269 * fold-const.c (mask_with_trailing_zeros): New function.
270 (fold_binary_loc): Make sure we don't recurse infinitely
271 when the X in (X & C1) | C2 is a tree of the form (Y * K1) & K2.
272 Use mask_with_trailing_zeros where appropriate.
273
9a0ac98f
YR
2742013-09-17 Yuri Rumyantsev <ysrumyan@gmail.com>
275
276 * config/i386/i386.c (distance_agu_use_in_bb) : Proper initialization
277 of 'prev' var to get better distance estimation.
278
78bbd765
EB
2792013-09-17 Eric Botcazou <ebotcazou@adacore.com>
280
281 * tree-inline.h (struct copy_body_data): Add transform_parameter.
282 * tree-inline.c (is_parameter_of): New predicate.
283 (remap_gimple_op_r): Do not propagate TREE_THIS_NOTRAP on MEM_REF if
284 a parameter has been remapped.
285 (copy_tree_body_r): Likewise on INDIRECT_REF and MEM_REF.
286 (optimize_inline_calls): Initialize transform_parameter.
287 (copy_gimple_seq_and_replace_locals): Likewise.
288 (tree_function_versioning): Likewise.
289 (maybe_inline_call_in_expr): Likewise.
290
cad055a4
NC
2912013-09-17 Nick Clifton <nickc@redhat.com>
292
293 * config/msp430/msp430-protos.h: Add prototypes for new functions.
294 * config/msp430/msp430.c (msp430_preserve_reg_p): Add support for
295 interrupt handlers.
296 (is_attr_func): New function.
297 (msp430_is_interrupt_func): New function.
298 (is_naked_func): New function.
299 (is_reentrant_func): New function.
300 (is_critical_func): New function.
301 (msp430_start_function): Add annotations for function attributes.
302 (msp430_attr): New function.
303 (msp430_attribute_table): New.
304 (msp430_function_section): New function.
305 (TARGET_ASM_FUNCTION_SECTION): Define.
306 (msp430_builtin): New enum.
307 (msp430_init_builtins): New function.
308 (msp430_builtin_devl): New function.
309 (msp430_expand_builtin): New function.
310 (TARGET_INIT_BUILTINS): Define.
311 (TARGET_EXPAND_BUILTINS): Define.
312 (TARGET_BUILTIN_DECL): Define.
313 (msp430_expand_prologue): Add support for naked, interrupt,
314 critical and reentrant functions.
315 (msp430_expand_epilogue): Likewise.
316 (msp430_print_operand): Handle 'O' character.
317 * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Define
318 NO_TRAMPOLINES.
319 * config/msp430/msp430.md (unspec): Add UNS_DINT, UNS_EINT,
320 UNS_PUSH_INTR, UNS_POP_INTR, UNS_BIC_SR, UNS_BIS_SR.
321 (pushm): Use a 'n' rather than an 'i' constraint.
322 (msp_return): Add generation of the interrupt return instruction.
323 (disable_interrupts): New pattern.
324 (enable_interrupts): New pattern.
325 (push_intr_state): New pattern.
326 (pop_intr_state): New pattern.
327 (bic_SR): New pattern.
328 (bis_SR): New pattern.
329 * doc/extend.texi: Document MSP430 function attributes and builtin
330 functions.
331
deb6c11a
RB
3322013-09-17 Richard Biener <rguenther@suse.de>
333
334 PR tree-optimization/58432
335 * tree-loop-distribution.c (tree_loop_distribution): Also
336 scan PHIs for outside loop uses and seed a partition from them.
337
c068654b
BC
3382013-09-17 Bin Cheng <bin.cheng@arm.com>
339
340 * gimple-ssa-strength-reduction.c (backtrace_base_for_ref): New.
341 (restructure_reference): Call backtrace_base_for_ref.
342
567969e4
AM
3432013-09-17 Alan Modra <amodra@gmail.com>
344
345 PR target/57589
346 * config/rs6000/driver-rs6000.c (elf_platform): Revert 2013-06-11 patch.
347
5c0029de
DD
3482013-09-16 DJ Delorie <dj@redhat.com>
349
350 * config/rl78/rl78.c (rl78_asm_file_start): Specify alternate
351 vregs location for RL78/G10.
352 (rl78_expand_prologue): Avoid SEL on G10.
353 (rl78_expand_epilogue): Likewise.
354 (rl78_peep_movhi_p): Can't move a constant to memory in HImode.
355 * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
356 __RL78_G10__ when appropriate.
357 (ASM_SPEC): Pass -mg10 along to the assembler.
358 * config/rl78/rl78.md (sel_rb): Disable for G10.
359 * config/rl78/rl78.opt: Add -mg10 option.
360 * config/rl78/t-rl78: Add -mg10 multilib.
361
ea0f3e87
XDL
3622013-09-16 Xinliang David Li <davidxl@google.com>
363
364 * tree-if-conv.c (main_tree_if_conversion): Check new flag.
365 * omp-low.c (omp_max_vf): Ditto.
366 (expand_omp_simd): Ditto.
367 * tree-vectorizer.c (vectorize_loops): Ditto.
368 (gate_vect_slp): Ditto.
369 (gate_increase_alignment): Ditto.
370 * tree-ssa-pre.c (inhibit_phi_insertion): Ditto.
371 * tree-ssa-loop.c (gate_tree_vectorize): Ditto.
372 (gate_tree_vectorize): Name change.
373 (tree_vectorize): Ditto.
374 (pass_vectorize::gate): Call new function.
375 (pass_vectorize::execute): Ditto.
376 opts.c: O3 default setting change.
377 (finish_options): Check new flag.
378 * doc/invoke.texi: Document new flags.
379 * common.opt: New flags.
380
4f3da2e5
AS
3812013-09-16 Andreas Schwab <schwab@linux-m68k.org>
382
383 * doc/tm.texi.in (Cond Exec Macros): Remove node.
384 (Condition Code): Don't reference it.
385 * doc/tm.texi: Regenerate.
386
aa940f7c
VM
3872013-09-16 Vladimir Makarov <vmakarov@redhat.com>
388
389 PR middle-end/58418
390 * lra-constraints.c (undo_optional_reloads): Consider all optional
391 reload even if it did not get a hard reg.
392
e645e942
TJ
3932013-09-16 Teresa Johnson <tejohnson@google.com>
394
395 * dumpfile.c (dump_loc): Remove newline emission.
396 * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Add newline
397 emission to dump_printf_loc calls where missing.
398 (vect_mark_for_runtime_alias_test): Ditto.
399 (vect_analyze_data_ref_dependence): Ditto.
400 (vect_analyze_data_ref_dependences): Ditto.
401 (vect_slp_analyze_data_ref_dependence): Ditto.
402 (vect_slp_analyze_data_ref_dependences): Ditto.
403 (vect_compute_data_ref_alignment): Ditto.
404 (vect_update_misalignment_for_peel): Ditto.
405 (vect_verify_datarefs_alignment): Ditto.
406 (vector_alignment_reachable_p): Ditto.
407 (vect_get_data_access_cost): Ditto.
408 (vect_enhance_data_refs_alignment): Ditto.
409 (vect_find_same_alignment_drs): Ditto.
410 (vect_analyze_data_refs_alignment): Ditto.
411 (vect_analyze_group_access): Ditto.
412 (vect_analyze_data_ref_access): Ditto.
413 (vect_analyze_data_ref_accesses): Ditto.
414 (vect_prune_runtime_alias_test_list): Ditto.
415 (vect_analyze_data_refs): Ditto.
416 (vect_create_addr_base_for_vector_ref): Ditto.
417 (vect_create_data_ref_ptr): Ditto.
418 (vect_grouped_store_supported): Ditto.
419 (vect_grouped_load_supported): Ditto.
420 * value-prof.c (check_counter): Ditto.
421 (check_ic_target): Ditto.
422 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Ditto.
423 (vect_recog_widen_mult_pattern): Ditto.
424 (vect_recog_widen_sum_pattern): Ditto.
425 (vect_recog_over_widening_pattern): Ditto.
426 (vect_recog_widen_shift_pattern): Ditto.
427 (vect_recog_rotate_pattern): Ditto.
428 (vect_recog_vector_vector_shift_pattern): Ditto.
429 (vect_recog_divmod_pattern): Ditto.
430 (vect_recog_mixed_size_cond_pattern): Ditto.
431 (vect_recog_bool_pattern): Ditto.
432 (vect_pattern_recog_1): Ditto.
433 (vect_pattern_recog): Ditto.
434 * tree-vect-loop.c (vect_determine_vectorization_factor): Ditto.
435 (vect_is_simple_iv_evolution): Ditto.
436 (vect_analyze_scalar_cycles_1): Ditto.
437 (vect_get_loop_niters): Ditto.
438 (vect_analyze_loop_1): Ditto.
439 (vect_analyze_loop_form): Ditto.
440 (vect_analyze_loop_operations): Ditto.
441 (vect_analyze_loop_2): Ditto.
442 (vect_analyze_loop): Ditto.
443 (report_vect_op): Ditto.
444 (vect_is_slp_reduction): Ditto.
445 (vect_is_simple_reduction_1): Ditto.
446 (vect_get_known_peeling_cost): Ditto.
447 (vect_estimate_min_profitable_iters): Ditto.
448 (vect_model_reduction_cost): Ditto.
449 (vect_model_induction_cost): Ditto.
450 (get_initial_def_for_induction): Ditto.
451 (vect_create_epilog_for_reduction): Ditto.
452 (vectorizable_reduction): Ditto.
453 (vectorizable_induction): Ditto.
454 (vectorizable_live_operation): Ditto.
455 (vect_loop_kill_debug_uses): Ditto.
456 (vect_transform_loop): Ditto.
457 * tree-vect-stmts.c (vect_mark_relevant): Ditto.
458 (vect_stmt_relevant_p): Ditto.
459 (process_use): Ditto.
460 (vect_mark_stmts_to_be_vectorized): Ditto.
461 (vect_model_simple_cost): Ditto.
462 (vect_model_promotion_demotion_cost): Ditto.
463 (vect_model_store_cost): Ditto.
464 (vect_get_store_cost): Ditto.
465 (vect_model_load_cost): Ditto.
466 (vect_get_load_cost): Ditto.
467 (vect_init_vector_1): Ditto.
468 (vect_get_vec_def_for_operand): Ditto.
469 (vect_finish_stmt_generation): Ditto.
470 (vectorizable_call): Ditto.
471 (vectorizable_conversion): Ditto.
472 (vectorizable_assignment): Ditto.
473 (vectorizable_shift): Ditto.
474 (vectorizable_operation): Ditto.
475 (vectorizable_store): Ditto.
476 (vectorizable_load): Ditto.
477 (vectorizable_condition): Ditto.
478 (vect_analyze_stmt): Ditto.
479 (vect_transform_stmt): Ditto.
480 (vect_is_simple_use): Ditto.
481 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Ditto.
482 (vect_can_advance_ivs_p): Ditto.
483 (vect_update_ivs_after_vectorizer): Ditto.
484 (vect_do_peeling_for_loop_bound): Ditto.
485 (vect_gen_niters_for_prolog_loop): Ditto.
486 (vect_update_inits_of_drs): Ditto.
487 (vect_create_cond_for_alias_checks): Ditto.
488 * tree-vect-slp.c (vect_get_and_check_slp_defs): Ditto.
489 (vect_build_slp_tree_1): Ditto.
490 (vect_supported_load_permutation_p): Ditto.
491 (vect_analyze_slp_instance): Ditto.
492 (vect_analyze_slp): Ditto.
493 (vect_make_slp_decision): Ditto.
494 (vect_detect_hybrid_slp): Ditto.
495 (vect_bb_vectorization_profitable_p): Ditto.
496 (vect_slp_analyze_bb_1): Ditto.
497 (vect_update_slp_costs_according_to_vf): Ditto.
498 (vect_get_mask_element): Ditto.
499 (vect_transform_slp_perm_load): Ditto.
500 (vect_schedule_slp_instance): Ditto.
501 (vect_schedule_slp): Ditto.
502 (vect_slp_transform_bb): Ditto.
503 * profile.c (read_profile_edge_counts): Ditto.
504 (compute_branch_probabilities): Ditto.
505 * coverage.c (get_coverage_counts): Ditto.
506
46f851f3
DN
5072013-09-16 Diego Novillo <dnovillo@google.com>
508
509 * tree-core.h: Add missing comment lines from refactoring
510 of tree.h.
511
1632a686
JH
5122013-09-16 Jan Hubicka <jh@suse.cz>
513
514 * gimple-fold.c (can_refer_decl_in_current_unit_p): Do not accept
515 abstract functions; for static functions check the presence
516 of body.
517
828e70c1
JG
5182013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
519
520 * config/aarch64/aarch64-simd-builtins.def (fma): New.
521 * config/aarch64/aarch64-simd.md
522 (aarch64_mla_elt<mode>): New.
523 (aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
524 (aarch64_mls_elt<mode>): Likewise.
525 (aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
526 (aarch64_fma4_elt<mode>): Likewise.
527 (aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
528 (aarch64_fma4_elt_to_128v2df): Likewise.
529 (aarch64_fma4_elt_to_64df): Likewise.
530 (fnma<mode>4): Likewise.
531 (aarch64_fnma4_elt<mode>): Likewise.
532 (aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
533 (aarch64_fnma4_elt_to_128v2df): Likewise.
534 (aarch64_fnma4_elt_to_64df): Likewise.
535 * config/aarch64/iterators.md (VDQSF): New.
536 * config/aarch64/arm_neon.h
537 (vfm<as><sdq>_lane<q>_f<32, 64>): Convert to C implementation.
538 (vml<sa><q>_lane<q>_<fsu><16, 32, 64>): Likewise.
539
779aea46
JG
5402013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
541
542 * config/aarch64/aarch64-simd.md (aarch64_mul3_elt<mode>): New.
543 (aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
544 (aarch64_mul3_elt_to_128df): Likewise.
545 (aarch64_mul3_elt_to_64v2df): Likewise.
546 * config/aarch64/iterators.md (VEL): Also handle DFmode.
547 (VMUL): New.
548 (VMUL_CHANGE_NLANES) Likewise.
549 (h_con): Likewise.
550 (f): Likewise.
551 * config/aarch64/arm_neon.h
552 (vmul<q>_lane<q>_<suf><16,32,64>): Convert to C implementation.
553
a407a750
JG
5542013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
555
556 * config/aarch64/arm_neon.h
557 (vcvtx_high_f32_f64): Fix parameters.
558
f77e2d2d 5592013-09-16 Jan-Benedict Glaw <jbglaw@lug-owl.de>
a5bd71fa 560 Uros Bizjak <ubizjak@gmail.com>
f77e2d2d 561
a5bd71fa 562 * config/alpha.c: Include tree-ssanames.h.
f77e2d2d 563
36875e8f
RB
5642013-09-16 Richard Biener <rguenther@suse.de>
565
566 * tree-loop-distribution.c (enum rdg_dep_type): Add control_dd.
567 (dot_rdg_1): Handle control_dd.
568 (create_edge_for_control_dependence): New function.
569 (create_rdg_edges): Add control dependences if asked for.
570 (build_rdg): Likewise.
571 (generate_loops_for_partition): If there are not necessary
572 control stmts remove all their dependencies.
573 (collect_condition_stmts, rdg_flag_loop_exits): Remove.
574 (distribute_loop): Pass on control dependences.
575 (tree_loop_distribution): Compute control dependences and remove
576 restriction on number of loop nodes.
577
96e24d49
JJ
5782013-09-16 Jakub Jelinek <jakub@redhat.com>
579
580 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Return early
581 for internal calls.
582
40dbb05c
RS
5832013-09-16 Richard Sandiford <rdsandiford@googlemail.com>
584
585 * cse.c (try_const_anchors): Punt on CC modes.
586
97191ad0
JBG
5872013-09-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
588
589 * config/vax/constraints.md (T): Add missing CONSTANT_P check.
590
403a3fb7
JDA
5912013-09-14 John David Anglin <danglin@gcc.gnu.org>
592
593 PR target/58382
594 * config/pa/pa.c (pa_expand_prologue): Change mode in gen_rtx_POST_INC
595 calls to word_mode.
596
fb5610fb
IS
5972013-09-14 Iain Sandoe <iain@codesourcery.com>
598
599 PR target/48094
600 * config/darwin.c (darwin_objc2_section): Note if ObjC Metadata is
f77e2d2d
JBG
601 seen.
602 (darwin_objc1_section): Likewise.
fb5610fb
IS
603 (darwin_file_end): Emit Image Info section when required.
604
afdec9bd
JH
6052013-09-14 Jan Hubicka <jh@suse.cz>
606
607 * tree-into-ssa.c (gate_into_ssa): New.
608 (pass_data_build_ssa): Use it.
609 * cgraph.h (expand_thunk): Update prototype.
610 * cgraphunit.c (analyze_function): Expand thunks early.
611 (expand_thunk): Fix DECL_CONTEXT of reust_decl;
612 build proper cgraph; set in_ssa_p; clear bogus TREE_ASM_WRITTEN;
613 set lowered flag; do not add new function.
614 (assemble_thunks_and_aliases): Update.
615 * tree-ssa.c (gate_init_datastructures): New gate.
616 (pass_data_init_datastructures): Use it.
617
492d1e0a
IS
6182013-09-14 Iain Sandoe <iain@codesourcery.com>
619
620 PR target/58269
f77e2d2d 621 * config/i386/i386.c (ix86_function_arg_regno_p): Make Darwin use the
492d1e0a
IS
622 xmm register set described in the psABI.
623
d13c6b70
EG
6242013-09-13 Evgeny Gavrin <e.gavrin@samsung.com>
625
f77e2d2d
JBG
626 * dwarf2out.c (should_emit_struct_debug): Add check
627 for type_decl variable is not NULL.
d13c6b70 628
88b0e79e
JC
6292013-09-13 Jacek Caban <jacek@codeweavers.com>
630
631 * config.gcc: Use new winnt-c.c target hooks
632 * config/t-winnt: New file
633 * config/winnt-c.c: New file
634 * doc/tm.texi.in: Document new hook
635 * doc/tm.texi: Regenerated
636
19ba6aab
JH
6372013-09-13 Jan Hubicka <jh@suse.cz>
638
639 PR middle-end/58094
640 * ipa-inline.c (check_callers): New function.
641 (check_caller_edge): Remove.
642 (want_inline_function_to_all_callers_p): Also permit alises that are
643 called dirrectly.
644 (inline_to_all_callers): Terminate the walk when devirtualization
645 introduce new calls.
646
a93c18c8
JH
6472013-09-13 Jan Hubicka <jh@suse.cz>
648
649 * ipa-inline-analysis.c (struct growth_data): Add node.
650 (do_estimate_growth_1): Fix detection of recursion.
651
f3b331d1
JJ
6522013-09-13 Jakub Jelinek <jakub@redhat.com>
653
654 PR tree-optimization/58392
655 * tree-cfg.c (move_sese_region_to_fn): Rename loop variable
656 to avoid shadowing of outer loop variable. If
657 saved_cfun->has_simduid_loops or saved_cfun->has_force_vect_loops,
658 replace_by_duplicate_decl simduid of loops that have it set and
659 set dest_cfun->has_simduid_loops and/or
660 dest_cfun->has_force_vect_loops.
661 * omp-low.c (build_outer_var_ref): Call maybe_lookup_decl_in_outer_ctx
662 instead of maybe_lookup_decl.
663 * tree-inline.c (copy_loops): Change blocks_to_copy argument to id.
664 Use id->blocks_to_copy instead of blocks_to_copy. Adjust recursive
665 call. Copy over force_vect and copy and remap simduid. Set
666 cfun->has_simduid_loops and/or cfun->has_force_vect_loops.
667 (copy_cfg_body): Remove blocks_to_copy argument. Use
668 id->blocks_to_copy instead of blocks_to_copy. Adjust copy_loops
669 caller. Don't set cfun->has_simduid_loops and/or
670 cfun->has_force_vect_loops here.
671 (copy_body): Remove blocks_to_copy argument. Adjust copy_cfg_body
672 caller.
673 (expand_call_inline, tree_function_versioning): Adjust copy_body
674 callers.
675
ae6d0907
MJ
6762013-09-13 Martin Jambor <mjambor@suse.cz>
677
678 PR bootstrap/58388
679 * ipa-prop.c (try_make_edge_direct_simple_call): Be less strict in
680 the assert if the edge was a speculative one.
681
2fd5894f
RB
6822013-09-13 Richard Biener <rguenther@suse.de>
683
684 * tree-data-ref.h (known_dependences_p): Move here ...
685 * tree-loop-distribution.c (known_dependences_p): ... from here.
686 (dump_rdg_component, debug_rdg_component): Remove.
687 (dump_rdg): Adjust.
688 (generate_loops_for_partition): Use gimple_uid instead of
689 relying on matching stmt visit order.
690 (rdg_build_partitions): Take starting stmt vector.
691 (ldist_gen): Merge into ...
692 (distribute_loop): ... this function. Do not compute starting
693 vertices vector.
694 * tree-cfg.c (gimple_duplicate_bb): Copy UID for PHIs.
695
86eb4bd7
KT
6962013-09-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
697
698 * config/arm/arm.md (arm_cmpsi_insn): Split rI alternative.
699 Set type attribute correctly. Set predicable_short_it attribute.
700 (cmpsi_shiftsi): Remove %? from output template.
701
83a95546
RB
7022013-09-13 Richard Biener <rguenther@suse.de>
703
704 * tree-loop-distribution.c (struct rdg_component,
705 rdg_defs_used_in_other_loops_p, free_rdg_components,
706 rdg_build_components): Remove.
707 (stmts_from_loop): Do not record virtual PHIs.
708 (generate_loops_for_partition): Skip virtual PHIs.
709 (build_rdg_partition_for_component): Rename to ...
710 (build_rdg_partition_for_vertex): ... this and adjust.
711 (rdg_build_partitions): Take a vector of starting vertices
712 instead of components. Remove unnecessary leftover handling.
713 (ldist_gen): Do not build components or record other stores.
714 (distribute_loop): Do not distribute loops containing stmts
715 with side-effects.
716
c0ecf7f1
CB
7172013-09-13 Christian Bruel <christian.bruel@st.com>
718
719 PR target/58314
720 * config/sh/sh.md (mov<mode>_reg_reg): Allow memory reloads.
721
34f56efc
KT
7222013-09-13 Kai Tietz <ktietz@redhat.com>
723
740f2bf3
KT
724 * config.gcc: Separate cases for mingw and cygwin targets,
725 and add 64-bit cygwin target case.
726
34f56efc
KT
727 * config/i386/winnt-cxx.c (i386_pe_type_dllexport_p): Don't
728 dll-export inline-functions.
729 * config/i386/winnt.c (i386_pe_determine_dllexport_p): Likewise.
730
731
7322013-09-13 Jeff Law <law@redhat.com>
823b5d6b
JL
733
734 PR middle-end/58387
735 Revert:
736 2013-09-06 Jeff Law <law@redhat.com>
737
738 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
739 edge implied equivalences into successor phis.
740
aadb52ad
DD
7412013-09-12 DJ Delorie <dj@redhat.com>
742
743 * config/rl78/rl78-virt.md: Change from | to \; for asm line
744 separators.
745
90ae7019
BM
7462013-09-12 Brooks Moses <bmoses@google.com>
747
748 PR driver/42955
749 * Makefile.in: Do not install driver binaries in $(target)/bin.
750
17b2557c
DD
7512013-09-12 DJ Delorie <dj@redhat.com>
752
c5215a9b
DD
753 * config/rl78/rl78.opt (mrelax): New.
754 * config/rl78/rl78.h (ASM_SPEC): New, pass on -mrelax to gas.
755 * config/rl78/rl78.h (LINK_SPEC): New, pass on -mrelax to ld.
756
17b2557c
DD
757 * config/rl78/rl78.c (rl78_expand_prologue): Use AX to copy
758 between SP and FP.
759 (rl78_expand_epilogue): Likewise.
760
ecafcf05
VM
7612013-09-12 Vladimir Makarov <vmakarov@redhat.com>
762
763 PR middle-end/58335
84f6d9fa 764 * lra-eliminations.c (remove_reg_equal_offset_note): New.
ecafcf05
VM
765 (eliminate_regs_in_insn): Rewrite frame pointer to hard frame
766 pointer elimination with using remove_reg_equal_offset_note.
767
8369f38a
DD
7682013-09-12 DJ Delorie <dj@redhat.com>
769
f6a83b4a
DD
770 * config/msp430/: New port.
771 * config.gcc (msp430): Added.
772 * doc/invoke.texi: Document MSP430 options.
773 * doc/install.texi: Document msp430-elf
774 * doc/md.texi: Document msp430-elf
775 * doc/contrib.texi: Document msp430-elf
776
8369f38a
DD
777 * cfgexpand.c (expand_debug_expr): Avoid sign-extending SImode to
778 PSImode.
779
a854f856
MJ
7802013-09-12 Martin Jambor <mjambor@suse.cz>
781
782 PR ipa/58389
783 * ipa-prop.c (remove_described_reference): Give up if the edge in the
784 reference descriptor is NULL.
785 (ipa_edge_removal_hook): If owning a reference descriptor, set its
786 edge to NULL.
787
b12ebd96
AM
7882013-09-12 Andrew MacLeod <amacleod@redhat.com>
789
790 * tree-flow.h (FREE_SSANAMES): Move to tree-ssanames.c
791 (SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS, ptr_info_def,
792 num_ssa_names, ssa_name): Move to tree-ssanames.h + prototypes.
793 * tree-flow-inline.h (make_ssa_name, copy_ssa_name, duplicate_ssa_name,
794 make_temp_ssa_name): move to tree-ssanames.h
795 * tree-ssa-alias.h: Move prototype.
796 * tree-ssa.h: Include tree-ssanames.h.
797 * tree-ssanames.c (FREE_SSANAMES): Move to here.
798 * tree-ssanames.h: New. Move items from tree-flow*.h
799 * Makefile.in (tree-ssanames.h): Add to tree-ssanames.o and GTFILES.
800
e1fb4ad3
RB
8012013-09-12 Richard Biener <rguenther@suse.de>
802
803 PR tree-optimization/58404
804 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
805 propagate non-invariant addresses into dereferences wrapped
806 in component references.
807
154c9188
RB
8082013-09-12 Richard Biener <rguenther@suse.de>
809
810 PR tree-optimization/58402
811 * passes.def: Move pass_late_warn_uninitialized later.
812
7a300452
AM
8132013-09-12 Andrew MacLeod <amacleod@redhat.com>
814
815 * tree-ssa.h: New. Move content from tree-flow.h and
816 tree-flow-inline.h.
817 * tree-flow.h (_edge_var_map, edge_var_map_vector): Move to tree-ssa.h.
818 Move prototypes belonging to tree-ssa.c.
f77e2d2d 819 * tree-flow-inline.h (redirect_edge_var_map_def,
7a300452
AM
820 redirect_edge_var_map_result, redirect_edge_var_map_location): Move to
821 tree-ssa.h.
822 * gimple.h: Adjust prototypes.
f77e2d2d
JBG
823 * tree-ssa.c (useless_type_conversion_p, types_compatible_p): Move
824 to...
825 * gimple.c (useless_type_conversion_p, types_compatible_p): Here.
7a300452
AM
826 * tree.h: Move prototype to tree-ssa.h.
827 * gengtype.c (open_base_files): Replace tree-flow.h with tree-ssa.h.
828 * Makefile.in: (TREE_SSA_H, TREE_FLOW_H): Adjust dependencies.
829 * alias.c, asan.c, builtins.c, calls.c, cfgexpand.c, cfghooks.c,
830 cfgloop.c, cfgloopmanip.c, cgraph.c, cgraphbuild.c, cgraphclones.c,
831 cgraphunit.c, dse.c, except.c, expr.c, final.c, fold-const.c,
832 ggc-page.c, gimple-fold.c, gimple-iterator.c, gimple-low.c,
833 gimple-pretty-print.c, gimple-ssa-strength-reduction.c,
834 gimple-streamer-in.c, gimple-streamer-out.c, gimple.c, gimplify.c,
f77e2d2d
JBG
835 graphite-blocking.c, graphite-clast-to-gimple.c,
836 graphite-dependences.c, graphite-interchange.c,
837 graphite-optimize-isl.c, graphite-poly.c, graphite-scop-detection.c,
838 graphite-sese-to-poly.c, graphite.c, ipa-cp.c, ipa-inline-analysis.c,
839 ipa-inline-transform.c, ipa-inline.c, ipa-prop.c, ipa-pure-const.c,
840 ipa-reference.c, ipa-split.c, ipa-utils.c,
7a300452
AM
841 loop-init.c, lto-cgraph.c, lto-section-in.c, lto-section-out.c,
842 lto-streamer-in.c, lto-streamer-out.c, lto-streamer.c, omp-low.c,
843 passes.c, predict.c, print-tree.c, profile.c, sese.c, targhooks.c,
844 tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
845 tree-chrec.c, tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
846 tree-emutls.c, tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
847 tree-loop-distribution.c, tree-mudflap.c, tree-nested.c, tree-nrv.c,
848 tree-object-size.c, tree-optimize.c, tree-outof-ssa.c, tree-parloops.c,
849 tree-phinodes.c, tree-predcom.c, tree-pretty-print.c, tree-profile.c,
850 tree-scalar-evolution.c, tree-sra.c, tree-ssa*.c, tree-stdarg.c,
851 tree-streamer-in.c, tree-switch-conversion.c, tree-tailcall.c,
852 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
853 tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
854 tree-vect-stmts.c, tree-vectorizer.c, tree-vrp.c, tsan.c,
855 value-prof.c, var-tracking.c,
856 varpool.c, vtable-verify.c: Replace tree-flow.h with tree-ssa.h
857
97463b2b
RB
8582013-09-12 Richard Biener <rguenther@suse.de>
859
860 PR tree-optimization/58396
861 * tree-loop-distribution.c (create_rdg_edges): Free unused DDRs.
862 (build_rdg): Take a loop-nest parameter, fix memleaks.
863 (distribute_loop): Compute loop-nest here and pass it to build_rdg.
864
80ecd89d
YR
8652013-09-12 Yuri Rumyantsev <ysrumyan@gmail.com>
866
867 * config/i386/x86-tune.def: Turn on X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE
868 for SLM.
869
893e85fa
CM
8702013-09-12 Cameron McInally <cameron.mcinally@nyu.edu>
871
872 * doc/extend.texi: Fix errors in x86 FMA builtin naming.
873 The FMA instruction names should have a 'v' prefix.
874
174ec470
RB
8752013-09-12 Richard Biener <rguenther@suse.de>
876
877 * tree-loop-distribution.c (dot_rdg_1): Make graph prettier.
878 (dot_rdg): Use popen instead of system in optional code.
879 (remaining_stmts, upstream_mem_writes): Remove global bitmaps.
880 (already_processed_vertex_p): Adjust.
881 (has_anti_or_output_dependence, predecessor_has_mem_write,
882 mark_nodes_having_upstream_mem_writes, has_upstream_mem_writes,
883 rdg_flag_uses): Remove.
884 (rdg_flag_vertex): Simplify.
885 (rdg_flag_vertex_and_dependent): Rely on a correct RDG and
886 remove recursion.
887 (build_rdg_partition_for_component): Process the first vertex
888 of a component only.
889 (ldist_gen): Do not compute remaining_stmts or upstream_mem_writes.
890
38c89763
AM
8912013-09-12 Alan Modra <amodra@gmail.com>
892
893 * config/rs6000/rs6000.c (toc_relative_expr_p): Use add_cint_operand.
894
3e3d9d17
DD
8952013-09-11 DJ Delorie <dj@redhat.com>
896 Nick Clifton <nickc@redhat.com>
897
898 * config/rl78/predicates.md (rl78_cmp_operator_signed): New.
899 (rl78_stack_based_mem): New.
900 * config/rl78/constraints.md (Iv08): New.
901 (Iv16): New.
902 (Iv24): New.
903 (Is09): New.
904 (Is17): New.
905 (Is25): New.
906 (ISsi): New.
907 (IShi): New.
908 (ISqi): New.
909 * config/rl78/rl78-expand.md (movqi): Reject more SUBREG operands.
910 (movhi): Likewise.
911 (movsi): Change from expand to insn-and-split.
912 (ashrsi3): Clobber AX.
913 (lshrsi3): New.
914 (ashlsi3): New.
915 (cbranchsi4): New.
916 * config/rl78/rl78.md (CC_REG): Fix.
917 (addsi3): Allow memory and immediate operands.
918 (addsi3_internal): Split into...
919 (addsi3_internal_virt): ...new, and ...
920 (addsi3_internal_real): ...new.
921 (subsi): New.
922 (subsi3_internal_virt): New.
923 (subsi3_internal_real): New.
924 (mulsi3): Add memory operand.
925 (mulsi3_rl78): Likewise.
926 (mulsi3_g13): Likewise.
927 * config/rl78/rl78-real.md (cbranchqi4_real_signed): New.
928 (cbranchqi4_real): Add more constraint options.
929 (cbranchhi4_real): Expand pattern.
930 (cbranchhi4_real_signed): New.
931 (cbranchhi4_real_inverted): New.
932 (cbranchsi4_real_lt): New.
933 (cbranchsi4_real_ge): New.
934 (cbranchsi4_real_signed): New.
935 (cbranchsi4_real): New.
936 (peephole2): New.
893e85fa
CM
937 * config/rl78/rl78-virt.md (ashrsi3_virt): Add custom cases for
938 constant shifts.
3e3d9d17
DD
939 (lshrsi3_virt): Likewise.
940 (ashlsi3_virt): Likewise.
941 (cbranchqi4_virt_signed): New.
942 (cbranchhi4_virt_signed): New.
943 (cbranchsi4_virt): New.
944 * config/rl78/rl78.c: Whitespace fixes throughout.
945 (move_elim_pass): New.
946 (pass_data_rl78_move_elim): New.
947 (pass_rl78_move_elim): New.
948 (make_pass_rl78_move_elim): New.
949 (rl78_devirt_info): Run devirt earlier.
950 (rl78_move_elim_info): New.
951 (rl78_asm_file_start): Register it.
952 (rl78_split_movsi): New.
953 (rl78_as_legitimate_address): Allow virtual base registers when
954 appropriate.
955 (rl78_addr_space_convert): Remove spurious debug stuff.
956 (rl78_print_operand_1): Add z,s,S,r,E modifiers.
957 (rl78_print_operand): More cases for not printing '#'.
958 (rl78_expand_compare): Remove most of the logic.
959 (content_memory): New.
960 (clear_content_memory): New.
961 (get_content_index): New.
962 (get_content_name): New.
963 (display_content_memory): New.
964 (update_content): New.
965 (record_content): New.
966 (already_contains): New.
967 (insn_ok_now): Re-recog insns with virtual registers.
968 (add_postponed_content_update): New.
969 (process_postponed_content_update): New.
970 (gen_and_emit_move): New.
893e85fa
CM
971 (transcode_memory_rtx): Record new location content.
972 Use gen_and_emit_move.
3e3d9d17
DD
973 (force_into_acc): New.
974 (move_to_acc): Use gen_and_emit_move.
975 (move_from_acc): Likewise.
976 (move_acc_to_reg): Likewise.
977 (move_to_x): Likewise.
978 (move_to_hl): Likewise.
979 (move_to_de): Likewise.
980 (rl78_alloc_physical_registers_op1): Record location content.
981 (has_constraint): New.
982 (rl78_alloc_physical_registers_op2): Record location content.
983 Optimize use of HL.
984 (rl78_alloc_physical_registers_ro1): Likewise.
985 (rl78_alloc_physical_registers_cmp): Likewise.
986 (rl78_alloc_physical_registers_umul): Likewise.
987 (rl78_alloc_address_registers_macax): New.
988 (rl78_alloc_physical_registers): Initialize and set location
989 content memory as needed.
990 (rl78_reorg): Make sure split2 is called.
991 (rl78_rtx_costs): New.
992
088845a5
RS
9932013-09-11 Richard Sandiford <rdsandiford@googlemail.com>
994
995 * simplify-rtx.c (simplify_unary_operation_1): Use simplify_gen_binary
996 for (not (neg ...)) and (neg (not ...)) cases.
997
5c2961cf
RB
9982013-09-11 Richard Biener <rguenther@suse.de>
999
1000 PR middle-end/58377
1001 * passes.def: Split critical edges before late uninit warning passes.
1002 * tree-cfg.c (pass_split_crit_edges): Implement clone method.
1003
427e6a14
JJ
10042013-09-11 Jakub Jelinek <jakub@redhat.com>
1005
1006 PR tree-optimization/58385
1007 * fold-const.c (build_range_check): If both low and high are NULL,
1008 use omit_one_operand_loc to preserve exp side-effects.
1009
df45c0cc
KT
10102013-09-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1011
1012 * config/arm/arm.md (arm_shiftsi3): New alternative l/l/M.
1013
80ab0b19
RB
10142013-09-11 Richard Biener <rguenther@suse.de>
1015
1016 * tree-data-ref.c (dump_rdg_vertex, debug_rdg_vertex,
1017 dump_rdg_component, debug_rdg_component, dump_rdg, debug_rdg,
1018 dot_rdg_1, dot_rdg, rdg_vertex_for_stmt, create_rdg_edge_for_ddr,
1019 create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices,
1020 stmts_from_loop, known_dependences_p, build_empty_rdg,
1021 build_rdg, free_rdg, rdg_defs_used_in_other_loops_p): Move ...
1022 * tree-loop-distribution.c: ... here.
1023 * tree-data-ref.h (struct rdg_vertex, RDGV_STMT, RDGV_DATAREFS,
1024 RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT, RDG_DATAREFS,
1025 RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT, enum rdg_dep_type,
1026 struct rdg_edge, RDGE_TYPE, RDGE_LEVEL, RDGE_RELATION): Move ...
1027 * tree-loop-distribution.c: ... here.
1028 * tree-loop-distribution.c: Include gimple-pretty-print.h.
1029 (struct partition_s): Add loops member.
1030 (partition_alloc, partition_free, rdg_flag_uses, rdg_flag_vertex,
1031 rdg_flag_vertex_and_dependent, rdg_flag_loop_exits,
1032 build_rdg_partition_for_component, rdg_build_partitions): Adjust.
1033
85a77221
AI
10342013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1035 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
1036 Sergey Lega <sergey.s.lega@intel.com>
1037 Anna Tikhonova <anna.tikhonova@intel.com>
1038 Ilya Tocar <ilya.tocar@intel.com>
1039 Andrey Turetskiy <andrey.turetskiy@intel.com>
1040 Ilya Verbin <ilya.verbin@intel.com>
1041 Kirill Yukhin <kirill.yukhin@intel.com>
1042 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1043
1044 * config/i386/constraints.md (k): New.
1045 (Yk): Ditto.
1046 * config/i386/i386.c (const regclass_map): Add new mask registers.
1047 (dbx_register_map): Ditto.
1048 (dbx64_register_map): Ditto.
1049 (svr4_dbx_register_map): Ditto.
1050 (ix86_conditional_register_usage): Squash mask registers if AVX512F is
1051 disabled.
1052 (ix86_preferred_reload_class): Disable constants for mask registers.
1053 (ix86_secondary_reload): Do spill of mask register using 32-bit insn.
1054 (ix86_hard_regno_mode_ok): Support new mask registers.
1055 (x86_order_regs_for_local_alloc): Ditto.
1056 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Update.
1057 (FIXED_REGISTERS): Add new mask registers.
1058 (CALL_USED_REGISTERS): Ditto.
1059 (REG_ALLOC_ORDER): Ditto.
1060 (VALID_MASK_REG_MODE): New.
1061 (FIRST_MASK_REG): Ditto.
1062 (LAST_MASK_REG): Ditto.
1063 (reg_class): Add MASK_EVEX_REGS, MASK_REGS.
1064 (MAYBE_MASK_CLASS_P): New.
1065 (REG_CLASS_NAMES): Add MASK_EVEX_REGS, MASK_REGS.
1066 (REG_CLASS_CONTENTS): Ditto.
1067 (MASK_REGNO_P): New.
1068 (ANY_MASK_REG_P): Ditto.
1069 (HI_REGISTER_NAMES): Add new mask registers.
893e85fa
CM
1070 * config/i386/i386.md (MASK0_REG, MASK1_REG, MASK2_REG, MASK3_REG,
1071 MASK4_REG, MASK5_REG, MASK6_REG, MASK7_REG): Constants for new
1072 mask registers.
85a77221
AI
1073 (attribute "type"): Add mskmov, msklog.
1074 (attribute "length_immediate"): Support them.
1075 (attribute "memory"): Ditto.
1076 (attribute "prefix_0f"): Ditto.
1077 (*movhi_internal): Support new mask registers.
1078 (*movqi_internal): Ditto.
1079 (define_split): Split out clobber pattern is a logic
1080 insn on mask registers.
1081 (*k<logic><mode>): New.
1082 (*andhi_1): Extend to support mask regs.
1083 (*andqi_1): Extend to support mask regs.
1084 (kandn<mode>): New.
1085 (define_split): Split and-not to and and not if operands
1086 are not mask regs.
1087 (*<code><mode>_1): Separate HI mode to new pattern...
1088 (*<code>hi_1): This.
1089 (*<code>qi_1): Extend to support mask regs.
1090 (kxnor<mode>): New.
1091 (kortestzhi): Ditto.
1092 (kortestchi): Ditto.
1093 (kunpckhi): Ditto.
1094 (*one_cmpl<mode>2_1): Remove HImode and handle it...
1095 (*one_cmplhi2_1): ...Here, now with mask registers support.
1096 (*one_cmplqi2_1): Support new mask registers.
893e85fa
CM
1097 (HI/QImode arithmetics splitter): Don't split if mask registers
1098 are used.
85a77221
AI
1099 (HI/QImode not splitter): Ditto.
1100 * config/i386/predicated.md (mask_reg_operand): New.
1101 (general_reg_operand): Ditto.
1102
7e570821
AI
11032013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
1104
1105 * doc/invoke.texi: Document fxsr, xsave and xsaveopt options.
1106 * doc/extend.texi: Document fxsr, xsave and xsaveopt builtins.
1107
9e1376e9
JL
11082013-09-10 Jeff Law <law@redhat.com>
1109
1110 PR tree-optimization/58380
1111 * tree-ssa-threadupdate.c (thread_block): Recognize another case
1112 of threading through a buried loop header.
1113
1114 * tree-ssa-threadedge.c (thread_around_empty_blocks): Correct
1115 return value for single successor case.
1116
5bbcb888
JH
11172013-09-10 Jan Hubicka <jh@suse.cz>
1118
1119 * ipa-devirt.c (ipa_devirt): Enable with LTO.
1120
d742ff4b
RE
11212013-09-10 Richard Earnshaw <rearnsha@arm.com>
1122
1123 PR target/58361
1124 * arm/vfp.md (combine_vcvt_f32_<FCVTI32typename>): Fix pattern to
1125 support conditional execution.
1126 (combine_vcvt_f64_<FCVTI32typename>): Likewise.
1127
b0681c9e
VM
11282013-09-10 Vladimir Makarov <vmakarov@redhat.com>
1129
1130 * lra.c (lra): Clear lra_optional_reload_pseudos before every
1131 constraint pass.
f77e2d2d
JBG
1132 * lra-constraints.c (curr_insn_transform): Switch on optional reloads.
1133 Check destination too to check move insn.
b0681c9e 1134 (undo_optional_reloads): Add check that the original peudo did not
f77e2d2d
JBG
1135 changed its allocation and the optional reload was inherited on last
1136 inheritance pass. Break loop after deciding to keep optional reload.
b0681c9e
VM
1137 (lra_undo_inheritance): Add check that inherited pseudo still in
1138 memory.
1139
c9b1c957
JG
11402013-09-10 James Greenhalgh <james.greenhalgh@arm.com>
1141
1142 * config/aarch64/aarch64.md (generic_sched): New.
1143 * config/aarch64/aarch64-generic.md (load): Make conditional
1144 on generic_sched attribute.
1145 (nonload): Likewise.
1146
82d618d3
JH
11472013-09-10 Jan Hubicka <jh@suse.cz>
1148
1149 * lto-cgraph.c: Include ipa-utils.h.
1150 (compute_ltrans_boundary): Also add possible targets into the boundary.
1151
668b6894
JH
11522013-09-10 Jan Hubicka <jh@suse.cz>
1153
1154 * gimple-fold.c (gimple_get_virt_method_for_binfo): Pass real
1155 VAR_DECL of vtable rather than full expression.
1156
4f90d3e0
JH
11572013-09-10 Jan Hubicka <jh@suse.cz>
1158 Paolo Carlini <paolo.carlini@oracle.com>
1159
1160 * cgraphunit.c (analyze_functions): Save input_location, set it
1161 to UNKNOWN_LOCATION and restore it at the end.
1162
39e87baf
MJ
11632013-09-10 Martin Jambor <mjambor@suse.cz>
1164
1165 * ipa-cp.c (propagate_constants_topo): Do not ignore SCC
1166 represented by a thunk.
1167
581aedec
JL
11682013-09-10 Jeff Law <law@redhat.com>
1169
1170 PR tree-optimization/58343
1171 * tree-ssa-threadupdate.c (thread_block): Identify and disable
1172 jump threading requests through loop headers buried in the middle
1173 of a jump threading path.
1174
1175 * tree-ssa-threadedge.c (thread_around_empty_blocks): Fix thinko
1176 in return value/type.
1177
84cf4ab6
JJ
11782013-09-10 Jakub Jelinek <jakub@redhat.com>
1179
1180 PR rtl-optimization/58365
1181 * cfgcleanup.c (merge_memattrs): Also clear MEM_READONLY_P
1182 resp. MEM_NOTRAP_P if they differ, or set MEM_VOLATILE_P if
1183 it differs.
1184
447dd906
RB
11852013-09-10 Richard Biener <rguenther@suse.de>
1186
1187 * tree-data-ref.h (build_rdg): Drop all parameters but loop.
1188 * tree-data-ref.c (create_rdg_vertices): Collect all data
1189 references, signal failure to the caller, use data-ref API.
893e85fa
CM
1190 (build_rdg): Compute data references only once. Maintain lifetime
1191 of data references and data dependences from within RDG.
447dd906
RB
1192 (free_rdg): Free dependence relations.
1193 * tree-loop-distribution.c (rdg_flag_uses): Drop weird code
1194 inventing extra dependences.
1195 (distribute_loop): Update for RDG API changes.
1196
f14a7324
KT
11972013-09-10 Kai Tietz <ktietz@redhat.com>
1198
1199 * doc/invoke.texi (fms-extensions): Document changed
1200 behavior for ms-abi targets.
1201 * config/i386/i386.c (ix86_option_override_internal):
1202 Set default value of option -fms-extension for ms-abi targets.
1203
ff131f26
MZ
12042013-09-10 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
1205
1206 * config/i386/i386.c (ix86_expand_movmem): Fix epilogue generation.
1207
33115a2c
AM
12082013-09-10 Alan Modra <amodra@gmail.com>
1209
1210 PR target/58330
1211 * config/rs6000/rs6000.md (bswapdi2_64bit): Disable for volatile mems.
1212
b6872a13
AM
12132013-09-10 Alan Modra <amodra@gmail.com>
1214
1215 * config/rs6000/predicates.md (add_cint_operand): New.
1216 (reg_or_add_cint_operand, small_toc_ref): Use add_cint_operand.
1217 * config/rs6000/rs6000.md (largetoc_high_plus): Restrict offset
1218 using add_cint_operand.
1219 (largetoc_high_plus_aix): Likewise.
1220
28fd0ba2
JJ
12212013-09-09 Jakub Jelinek <jakub@redhat.com>
1222
1223 PR tree-optimization/58364
1224 * tree-ssa-reassoc.c (init_range_entry): For BIT_NOT_EXPR on
1225 BOOLEAN_TYPE, only invert in_p and continue with arg0 if
1226 the current range can't be an unconditional true or false.
1227
552d99fe
JG
12282013-09-09 James Greenhalgh <james.greenhalgh@arm.com>
1229
1230 * config/aarch64/arm_neon.h (vrsqrte_f64): Fix parameter type.
1231
f43245d1
UB
12322013-09-09 Uros Bizjak <ubizjak@gmail.com>
1233
1234 * ipa-prop.c (ipa_modify_call_arguments): Initialize deref_align.
1235
c9b0866a
PC
12362013-09-09 Paolo Carlini <paolo.carlini@oracle.com>
1237
1238 PR c++/43452
1239 * doc/invoke.texi (-Wdelete-incomplete): Document it.
1240
78d8b9f0
IB
12412013-09-09 Ian Bolton <ian.bolton@arm.com>
1242
1243 * config/aarch64/aarch64.c (aarch64_preferred_reload_class): Return
1244 NO_REGS for immediate that can't be moved directly into FP_REGS.
1245
274b2532
KT
12462013-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1247
1248 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
1249 comparison with negated operand.
c9b0866a
PC
1250 * config/aarch64/aarch64.md (compare_neg<mode>): Match canonical
1251 RTL form.
274b2532 1252
467a3558
RB
12532013-09-09 Richard Biener <rguenther@suse.de>
1254
1255 PR middle-end/58326
1256 * cfgloopmanip.c (fix_bb_placements): When fixing the placement
1257 of a subloop record all its block as affecting loop-closed SSA form.
1258
088c5368
RS
12592013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
1260
1261 * expmed.c (lshift_value): Take an unsigned HOST_WIDE_INT instead
1262 of an rtx/bitpos pair.
1263 (store_fixed_bit_field): Update accordingly.
1264
69db2d57
RS
12652013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
1266
1267 * asan.c (asan_emit_stack_protection): Use gen_int_mode instead of
1268 GEN_INT.
1269 * builtins.c (expand_errno_check): Likewise.
1270 * dwarf2cfi.c (init_return_column_size): Likewise.
1271 * except.c (sjlj_mark_call_sites): Likewise.
1272 * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise.
1273 * lra-constraints.c (emit_inc): Likewise.
1274 * ree.c (combine_set_extension): Likewise.
1275 * regmove.c (fixup_match_2): Likewise.
1276 * reload1.c (inc_for_reload): Likewise.
1277
69a59f0f
RS
12782013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
1279
1280 * combine.c (simplify_set, expand_field_assignment, extract_left_shift)
1281 (force_to_mode, simplify_shift_const_1, simplify_comparison):
1282 Use gen_int_mode with the mode of the associated simplify_* call.
1283 * explow.c (probe_stack_range, anti_adjust_stack_and_probe): Likewise.
1284 * expmed.c (expand_shift_1): Likewise.
1285 * function.c (instantiate_virtual_regs_in_insn): Likewise.
1286 * loop-iv.c (iv_number_of_iterations): Likewise.
1287 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
1288 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
1289
2f1cd2eb
RS
12902013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
1291
1292 * asan.c (asan_clear_shadow): Use gen_int_mode with the mode
1293 of the associated expand_* call.
1294 (asan_emit_stack_protection): Likewise.
1295 * builtins.c (round_trampoline_addr): Likewise.
1296 * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
1297 * expmed.c (expand_smod_pow2, expand_sdiv_pow2, expand_divmod)
1298 (emit_store_flag): Likewise.
1299 * expr.c (emit_move_resolve_push, push_block, emit_single_push_insn_1)
1300 (emit_push_insn, optimize_bitfield_assignment_op, expand_expr_real_1):
1301 Likewise.
1302 * function.c (instantiate_virtual_regs_in_insn): Likewise.
1303 * ifcvt.c (noce_try_store_flag_constants): Likewise.
1304 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
1305 * modulo-sched.c (generate_prolog_epilog): Likewise.
1306 * optabs.c (expand_binop, widen_leading, expand_doubleword_clz)
1307 (expand_ctz, expand_ffs, expand_unop): Likewise.
1308
4789c0ce
RS
13092013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
1310
1311 * alias.c (addr_side_effect_eval): Use gen_int_mode with the mode
1312 of the associated gen_rtx_* call.
1313 * caller-save.c (init_caller_save): Likewise.
1314 * combine.c (find_split_point, make_extraction): Likewise.
1315 (make_compound_operation): Likewise.
1316 * dwarf2out.c (mem_loc_descriptor): Likewise.
1317 * explow.c (plus_constant, probe_stack_range): Likewise.
1318 * expmed.c (expand_mult_const): Likewise.
1319 * expr.c (emit_single_push_insn_1, do_tablejump): Likewise.
1320 * reload1.c (init_reload): Likewise.
1321 * valtrack.c (cleanup_auto_inc_dec): Likewise.
1322 * var-tracking.c (adjust_mems): Likewise.
1323 * modulo-sched.c (sms_schedule): Likewise, but use gen_rtx_GT
1324 rather than gen_rtx_fmt_ee.
1325
a811f7cb
JH
13262013-09-09 Jan Hubicka <jh@suse.cz>
1327
1328 PR middle-end/58294
1329 * value-prof.c (gimple_ic): Copy also abnormal edges.
1330
dcad1dd3
RS
13312013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
1332
1333 * asan.c (asan_shadow_cst): Use gen_int_mode.
1334
daf5c770
JH
13352013-09-08 Jan Hubicka <jh@suse.cz>
1336
1337 * ipa-profile.c: Add toplevel comment.
1338 (ipa_propagate_frequency_1): Be more conservative when profile is read.
1339 (contains_hot_call_p): New function.
1340 (ipa_propagate_frequency): Set frequencies based on counts when
1341 profile is read.
1342 * predict.c (compute_function_frequency): Use PROFILE_READ gueard for
1343 profile; do not tamper with profile after inlining if it is read.
1344
a12cd2db
JH
13452013-09-08 Jan Hubicka <jh@suse.cz>
1346
1347 * ipa-prop.c (try_make_edge_direct_simple_call): Do not special case
1348 speculative edges.
1349
856a1588
JH
13502013-09-08 Jan Hubicka <jh@suse.cz>
1351
1352 * ipa.c (walk_polymorphic_call_targets): Fix redirection before IPA
1353 summary generation.
1354
4f4b0b73
JL
13552013-09-08 Jeff Law <law@redhat.com>
1356
1357 PR bootstrap/58340
1358 * tree-ssa-threadedge.c (thread_across_edge): Fix initialization
1359 of 'found'.
1360
cc4029ee
AK
13612013-09-08 Andi Kleen <ak@linux.intel.com>
1362
1363 * tree-inline.c (estimate_num_insns): Limit asm cost to 1000.
1364
7b395ddd
JH
13652013-09-08 Jan Hubicka <jh@suse.cz>
1366
1367 * ipa.c (walk_polymorphic_call_targets): Fix inliner summary update.
1368
c34c46dd
RS
13692013-09-08 Richard Sandiford <rdsandiford@googlemail.com>
1370
1371 * ira.c (update_equiv_regs): Only call set_paradoxical_subreg
1372 for non-debug insns.
1373 * lra.c (new_insn_reg): Take the containing insn as a parameter.
1374 Only modify lra_reg_info[].biggest_mode if it's non-debug insn.
1375 (collect_non_operand_hard_regs, add_regs_to_insn_regno_info): Update
1376 accordingly.
1377
3462aa02
JH
13782013-09-08 Jan Hubicka <jh@suse.cz>
1379
1380 * cgraphunit.c (walk_polymorphic_call_targets): Permit 0 possible
1381 targets and devirtualize to BUILT_IN_UNREACHABLE.
1382 * timevar.def (TV_IPA_UNREACHABLE): New timevar.
1383 * ipa.c (walk_polymorphic_call_targets): New function.
1384 (symtab_remove_unreachable_nodes): Use it; do not keep all virtual
1385 functions; use the new timevar.
1386 * ipa-devirt.c (maybe_record_node): Do not insert static nodes that
1387 was removed from the program.
1388 (record_binfo): If BINFO corresponds to an anonymous namespace, we may
1389 not consider it in the walk when its vtable is dead.
1390 (possible_polymorphic_call_targets_1): Pass anonymous flag to
1391 record_binfo.
1392 (devirt_variable_node_removal_hook): New function.
1393 (possible_polymorphic_call_targets): Also register
1394 devirt_variable_node_removal_hook.
1395 (ipa_devirt): Do not do non-speculative devirtualization.
1396 (gate_ipa_devirt): One execute if devirtualizing speculatively.
1397
26e5b0fd
JH
13982013-09-08 Jan Hubicka <jh@suse.cz>
1399
1400 * cgraph.h (varpool_node_hook, varpool_node_hook_list,
1401 varpool_add_node_removal_hook, varpool_add_variable_insertion_hook,
1402 varpool_remove_variable_insertion_hook): Declare.
1403 * varpool.c (varpool_node_hook_list): New structure.
1404 (first_varpool_node_removal_hook,
1405 first_varpool_variable_insertion_hook): New variables.
1406 (varpool_add_node_removal_hook, varpool_remove_node_removal_hook,
1407 varpool_call_node_removal_hooks, varpool_add_variable_insertion_hook,
1408 varpool_remove_variable_insertion_hook,
1409 varpool_call_variable_insertion_hooks): New functions.
1410 (varpool_remove_node): Use it.
1411
97f1f314 14122013-09-08 Paolo Carlini <paolo.carlini@oracle.com>
6df2ca09 1413
97f1f314
PC
1414 PR c++/54941
1415 * diagnostic.c (diagnostic_build_prefix): When s.file is
1416 "<built-in>" don't output line and column numbers.
6df2ca09 1417
bcb650cb
JH
14182013-09-06 Jan Hubicka <jh@suse.cz>
1419
1420 * cgraphunit.c (expand_thunk): Get body before touching arguments.
1421 * lto-streamer-out.c: Stream thunks, too.
1422 * lto-streamer-in.c (input_function): Pop cfun here
1423 (lto_read_body): Instead of here.
1424
87f3fea8
CT
14252013-09-06 Caroline Tice <cmtice@google.com>
1426
1427 * doc/install.texi: Add documentation for the --enable-vtable-verify
1428 and the --disable-libvtv configure options.
1429
5e8d9b45
JL
14302013-09-06 Jeff Law <law@redhat.com>
1431
1432 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
1433 edge implied equivalences into successor phis.
1434
3a001aff
JR
14352013-09-06 Joern Rennecke <joern.rennecke@embecosm.com>
1436
1437 * resource.c (mark_referenced_resources): Handle COND_EXEC.
1438
14392013-09-06 Claudiu Zissulescu <claziss@synopsys.com>
c42091c1
CZ
1440
1441 * resource.c (mark_target_live_regs): Compute resources taking
1442 into account if a call is predicated or not.
1443
2c641f8b
EB
14442013-09-06 Eric Botcazou <ebotcazou@adacore.com>
1445
1446 * toplev.c (output_stack_usage): Be prepared for suffixes created by
1447 the compiler in the function names.
1448
a81b0a3d
JH
14492013-09-06 Jan Hubicka <jh@suse.cz>
1450
1451 PR middle-end/58094
1452 * ipa-inline.c (has_caller_p): New function.
1453 (want_inline_function_to_all_callers_p): Use it.
1454 (sum_callers, inline_to_all_callers): Break out from ...
1455 (ipa_inline): ... here.
1456
68e4ca7e
JH
14572013-09-06 Jan Hubicka <jh@suse.cz>
1458
2c641f8b
EB
1459 * config/i386/i386.c (ix86_hard_regno_mode_ok): AVX modes are valid
1460 only when AVX is enabled.
68e4ca7e 1461
3c73e2fe
JG
14622013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1463
1464 * config/aarch64/aarch64.md
1465 (*movtf_aarch64): Use neon_<ls>dm_2 as type where v8type
1466 is fpsimd_<load/store>2.
1467 (load_pair<mode>): Likewise.
1468 (store_pair<mode>): Likewise.
1469
8c48eecd
JG
14702013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1471
1472 * config/arm/types.md (type): Add "mrs" type.
1473 * config/aarch64/aarch64.md
1474 (aarch64_load_tp_hard): Make type "mrs".
1475 * config/arm/arm.md
1476 (load_tp_hard): Make type "mrs".
1477 * config/arm/cortex-a15.md: Update with new attributes.
1478 * config/arm/cortex-a5.md: Update with new attributes.
1479 * config/arm/cortex-a53.md: Update with new attributes.
1480 * config/arm/cortex-a7.md: Update with new attributes.
1481 * config/arm/cortex-a8.md: Update with new attributes.
1482 * config/arm/cortex-a9.md: Update with new attributes.
1483 * config/arm/cortex-m4.md: Update with new attributes.
1484 * config/arm/cortex-r4.md: Update with new attributes.
1485 * config/arm/fa526.md: Update with new attributes.
1486 * config/arm/fa606te.md: Update with new attributes.
1487 * config/arm/fa626te.md: Update with new attributes.
1488 * config/arm/fa726te.md: Update with new attributes.
1489
9ea187a5
JG
14902013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1491
1492 * config/aarch64/aarch64.md
1493 (*movti_aarch64): Use "multiple" for type where v8type is "move2".
1494 (*movtf_aarch64): Likewise.
1495 * config/arm/arm.md
1496 (thumb1_movdi_insn): Use "multiple" for type where more than one
1497 instruction is used for a move.
1498 (*arm32_movhf): Likewise.
1499 (*thumb_movdf_insn): Likewise.
1500
292b89b3
JG
15012013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1502
1503 * config/arm/types.md (type): Rename fcpys to fmov.
1504 * config/arm/vfp.md
1505 (*arm_movsi_vfp): Rename type fcpys as fmov.
1506 (*thumb2_movsi_vfp): Likewise
1507 (*movhf_vfp_neon): Likewise
1508 (*movhf_vfp): Likewise
1509 (*movsf_vfp): Likewise
1510 (*thumb2_movsf_vfp): Likewise
1511 (*movsfcc_vfp): Likewise
1512 (*thumb2_movsfcc_vfp): Likewise
1513 * config/aarch64/aarch64-simd.md
1514 (move_lo_quad_<mode>): Replace type mov_reg with fmovs.
1515 * config/aarch64/aarch64.md
1516 (*movsi_aarch64): Replace type mov_reg with fmovs.
1517 (*movdi_aarch64): Likewise
1518 (*movsf_aarch64): Likewise
1519 (*movdf_aarch64): Likewise
1520 * config/arm/arm.c
1521 (cortexa7_older_only): Rename TYPE_FCPYS to TYPE_FMOV.
1522 * config/arm/iwmmxt.md
1523 (*iwmmxt_movsi_insn): Rename type fcpys as fmov.
1524 * config/arm/arm1020e.md: Update with new attributes.
1525 * config/arm/cortex-a15-neon.md: Update with new attributes.
1526 * config/arm/cortex-a5.md: Update with new attributes.
1527 * config/arm/cortex-a53.md: Update with new attributes.
1528 * config/arm/cortex-a7.md: Update with new attributes.
1529 * config/arm/cortex-a8-neon.md: Update with new attributes.
1530 * config/arm/cortex-a9.md: Update with new attributes.
1531 * config/arm/cortex-m4-fpu.md: Update with new attributes.
1532 * config/arm/cortex-r4f.md: Update with new attributes.
1533 * config/arm/marvell-pj4.md: Update with new attributes.
1534 * config/arm/vfp11.md: Update with new attributes.
1535
6a24a83e
JG
15362013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1537
1538 * config/aarch64/aarch64.md
1539 (*madd<mode>): Fix type attribute.
1540 (*maddsi_uxtw): Likewise.
1541 (*msub<mode>): Likewise.
1542 (*msubsi_uxtw): Likewise.
1543 (<su_optab>maddsidi4): Likewise.
1544 (<su_optab>msubsidi4): Likewise.
1545
b86923f0
JG
15462013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1547
1548 * config/arm/types.md: Split fdiv<sd> as fsqrt<sd>, fdiv<sd>.
1549 * config/arm/arm.md (core_cycles): Remove fdiv.
1550 * config/arm/vfp.md:
1551 (*sqrtsf2_vfp): Update for attribute changes.
1552 (*sqrtdf2_vfp): Likewise.
1553 * config/aarch64/aarch64.md:
1554 (sqrt<mode>2): Update for attribute changes.
1555 * config/arm/arm1020e.md: Update with new attributes.
1556 * config/arm/cortex-a15-neon.md: Update with new attributes.
1557 * config/arm/cortex-a5.md: Update with new attributes.
1558 * config/arm/cortex-a53.md: Update with new attributes.
1559 * config/arm/cortex-a7.md: Update with new attributes.
1560 * config/arm/cortex-a8-neon.md: Update with new attributes.
1561 * config/arm/cortex-a9.md: Update with new attributes.
1562 * config/arm/cortex-m4-fpu.md: Update with new attributes.
1563 * config/arm/cortex-r4f.md: Update with new attributes.
1564 * config/arm/marvell-pj4.md: Update with new attributes.
1565 * config/arm/vfp11.md: Update with new attributes.
1566
7b49c9e1
JG
15672013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1568
1569 * config/arm/types.md
1570 (type): Split f_cvt as f_cvt, f_cvtf2i, f_cvti2f.
1571 * config/aarch64/aarch64.md
1572 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Update with
1573 new attributes.
1574 (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
1575 (fixuns_trunc<GPF:mode><GPI:mode>2): Likewise.
1576 (float<GPI:mode><GPF:mode>2): Likewise.
1577 * config/arm/vfp.md
1578 (*truncsisf2_vfp): Update with new attributes.
1579 (*truncsidf2_vfp): Likewise.
1580 (fixuns_truncsfsi2): Likewise.
1581 (fixuns_truncdfsi2): Likewise.
1582 (*floatsisf2_vfp): Likewise.
1583 (*floatsidf2_vfp): Likewise.
1584 (floatunssisf2): Likewise.
1585 (floatunssidf2): Likewise.
1586 (*combine_vcvt_f32_<FCVTI32typename>): Likewise.
1587 (*combine_vcvt_f64_<FCVTI32typename>): Likewise.
1588 * config/arm/arm1020e.md: Update with new attributes.
1589 * config/arm/cortex-a15-neon.md: Update with new attributes.
1590 * config/arm/cortex-a5.md: Update with new attributes.
1591 * config/arm/cortex-a53.md: Update with new attributes.
1592 * config/arm/cortex-a7.md: Update with new attributes.
1593 * config/arm/cortex-a8-neon.md: Update with new attributes.
1594 * config/arm/cortex-a9.md: Update with new attributes.
1595 * config/arm/cortex-m4-fpu.md: Update with new attributes.
1596 * config/arm/cortex-r4f.md: Update with new attributes.
1597 * config/arm/marvell-pj4.md: Update with new attributes.
1598 * config/arm/vfp11.md: Update with new attributes.
1599
e7df8af8
JG
16002013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1601
1602 * config/aarch64/arm_neon.h
1603 (vqtbl<1,2,3,4><q>_s8): Fix control vector parameter type.
1604 (vqtbx<1,2,3,4><q>_s8): Likewise.
1605
594726e4
JG
16062013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1607
f43245d1
UB
1608 * config/arm/types.md: Add "no_insn", "multiple" and "untyped" types.
1609 * config/arm/arm-fixed.md: Add type attribute to all insn patterns.
594726e4
JG
1610 (add<mode>3): Add type attribute.
1611 (add<mode>3): Likewise.
1612 (usadd<mode>3): Likewise.
1613 (ssadd<mode>3): Likewise.
1614 (sub<mode>3): Likewise.
1615 (sub<mode>3): Likewise.
1616 (ussub<mode>3): Likewise.
1617 (sssub<mode>3): Likewise.
1618 (ssmulsa3): Likewise.
1619 (usmulusa3): Likewise.
1620 (arm_usatsihi): Likewise.
1621 * config/arm/vfp.md
1622 (*movdi_vfp): Add types for all instructions.
1623 (*movdi_vfp_cortexa8): Likewise.
1624 (*movhf_vfp_neon): Likewise.
1625 (*movhf_vfp): Likewise.
1626 (*movdf_vfp): Likewise.
1627 (*thumb2_movdf_vfp): Likewise.
1628 (*thumb2_movdfcc_vfp): Likewise.
1629 * config/arm/arm.md: Add type attribute to all insn patterns.
1630 (*thumb1_adddi3): Add type attribute.
1631 (*arm_adddi3): Likewise.
1632 (*adddi_sesidi_di): Likewise.
1633 (*adddi_zesidi_di): Likewise.
1634 (*thumb1_addsi3): Likewise.
1635 (addsi3_compare0): Likewise.
1636 (*addsi3_compare0_scratch): Likewise.
1637 (*compare_negsi_si): Likewise.
1638 (cmpsi2_addneg): Likewise.
1639 (*addsi3_carryin_<optab>): Likewise.
1640 (*addsi3_carryin_alt2_<optab>): Likewise.
1641 (*addsi3_carryin_clobercc_<optab>): Likewise.
1642 (*subsi3_carryin): Likewise.
1643 (*subsi3_carryin_const): Likewise.
1644 (*subsi3_carryin_compare): Likewise.
1645 (*subsi3_carryin_compare_const): Likewise.
1646 (*arm_subdi3): Likewise.
1647 (*thumb_subdi3): Likewise.
1648 (*subdi_di_zesidi): Likewise.
1649 (*subdi_di_sesidi): Likewise.
1650 (*subdi_zesidi_di): Likewise.
1651 (*subdi_sesidi_di): Likewise.
1652 (*subdi_zesidi_ze): Likewise.
1653 (thumb1_subsi3_insn): Likewise.
1654 (*arm_subsi3_insn): Likewise.
1655 (*anddi3_insn): Likewise.
1656 (*anddi_zesidi_di): Likewise.
1657 (*anddi_sesdi_di): Likewise.
1658 (*ne_zeroextracts): Likewise.
1659 (*ne_zeroextracts): Likewise.
1660 (*ite_ne_zeroextr): Likewise.
1661 (*ite_ne_zeroextr): Likewise.
1662 (*anddi_notdi_di): Likewise.
1663 (*anddi_notzesidi): Likewise.
1664 (*anddi_notsesidi): Likewise.
1665 (andsi_notsi_si): Likewise.
1666 (thumb1_bicsi3): Likewise.
1667 (*iordi3_insn): Likewise.
1668 (*iordi_zesidi_di): Likewise.
1669 (*iordi_sesidi_di): Likewise.
1670 (*thumb1_iorsi3_insn): Likewise.
1671 (*xordi3_insn): Likewise.
1672 (*xordi_zesidi_di): Likewise.
1673 (*xordi_sesidi_di): Likewise.
1674 (*arm_xorsi3): Likewise.
1675 (*andsi_iorsi3_no): Likewise.
1676 (*smax_0): Likewise.
1677 (*smax_m1): Likewise.
1678 (*arm_smax_insn): Likewise.
1679 (*smin_0): Likewise.
1680 (*arm_smin_insn): Likewise.
1681 (*arm_umaxsi3): Likewise.
1682 (*arm_uminsi3): Likewise.
1683 (*minmax_arithsi): Likewise.
1684 (*minmax_arithsi_): Likewise.
1685 (*satsi_<SAT:code>): Likewise.
1686 (arm_ashldi3_1bit): Likewise.
1687 (arm_ashrdi3_1bit): Likewise.
1688 (arm_lshrdi3_1bit): Likewise.
1689 (*arm_negdi2): Likewise.
1690 (*thumb1_negdi2): Likewise.
1691 (*arm_negsi2): Likewise.
1692 (*thumb1_negsi2): Likewise.
1693 (*negdi_extendsid): Likewise.
1694 (*negdi_zero_extend): Likewise.
1695 (*arm_abssi2): Likewise.
1696 (*thumb1_abssi2): Likewise.
1697 (*arm_neg_abssi2): Likewise.
1698 (*thumb1_neg_abss): Likewise.
1699 (one_cmpldi2): Likewise.
1700 (extend<mode>di2): Likewise.
1701 (*compareqi_eq0): Likewise.
1702 (*arm_extendhisi2addsi): Likewise.
1703 (*arm_movdi): Likewise.
1704 (*thumb1_movdi_insn): Likewise.
1705 (*arm_movt): Likewise.
1706 (*thumb1_movsi_insn): Likewise.
1707 (pic_add_dot_plus_four): Likewise.
1708 (pic_add_dot_plus_eight): Likewise.
1709 (tls_load_dot_plus_eight): Likewise.
1710 (*thumb1_movhi_insn): Likewise.
1711 (*thumb1_movsf_insn): Likewise.
1712 (*movdf_soft_insn): Likewise.
1713 (*thumb_movdf_insn): Likewise.
1714 (cbranchsi4_insn): Likewise.
1715 (cbranchsi4_scratch): Likewise.
1716 (*negated_cbranchsi4): Likewise.
1717 (*tbit_cbranch): Likewise.
1718 (*tlobits_cbranch): Likewise.
1719 (*tstsi3_cbranch): Likewise.
1720 (*cbranchne_decr1): Likewise.
1721 (*addsi3_cbranch): Likewise.
1722 (*addsi3_cbranch_scratch): Likewise.
1723 (*arm_cmpdi_insn): Likewise.
1724 (*arm_cmpdi_unsig): Likewise.
1725 (*arm_cmpdi_zero): Likewise.
1726 (*thumb_cmpdi_zero): Likewise.
1727 (*deleted_compare): Likewise.
1728 (*mov_scc): Likewise.
1729 (*mov_negscc): Likewise.
1730 (*mov_notscc): Likewise.
1731 (*cstoresi_eq0_thumb1_insn): Likewise.
1732 (cstoresi_nltu_thumb1): Likewise.
1733 (cstoresi_ltu_thu): Likewise.
1734 (thumb1_addsi3_addgeu): Likewise.
1735 (*arm_jump): Likewise.
1736 (*thumb_jump): Likewise.
1737 (*check_arch2): Likewise.
1738 (arm_casesi_internal): Likewise.
1739 (thumb1_casesi_dispatch): Likewise.
1740 (*arm_indirect_jump): Likewise.
1741 (*thumb1_indirect_jump): Likewise.
1742 (nop): Likewise.
1743 (*and_scc): Likewise.
1744 (*ior_scc): Likewise.
1745 (*compare_scc): Likewise.
1746 (*cond_move): Likewise.
1747 (*cond_arith): Likewise.
1748 (*cond_sub): Likewise.
1749 (*cmp_ite0): Likewise.
1750 (*cmp_ite1): Likewise.
1751 (*cmp_and): Likewise.
1752 (*cmp_ior): Likewise.
1753 (*ior_scc_scc): Likewise.
1754 (*ior_scc_scc_cmp): Likewise.
1755 (*and_scc_scc): Likewise.
1756 (*and_scc_scc_cmp): Likewise.
1757 (*and_scc_scc_nod): Likewise.
1758 (*negscc): Likewise.
1759 (movcond_addsi): Likewise.
1760 (movcond): Likewise.
1761 (*ifcompare_plus_move): Likewise.
1762 (*if_plus_move): Likewise.
1763 (*ifcompare_move_plus): Likewise.
1764 (*if_move_plus): Likewise.
1765 (*ifcompare_arith_arith): Likewise.
1766 (*if_arith_arith): Likewise.
1767 (*ifcompare_arith_move): Likewise.
1768 (*if_arith_move): Likewise.
1769 (*ifcompare_move_arith): Likewise.
1770 (*if_move_arith): Likewise.
1771 (*ifcompare_move_not): Likewise.
1772 (*if_move_not): Likewise.
1773 (*ifcompare_not_move): Likewise.
1774 (*if_not_move): Likewise.
1775 (*ifcompare_shift_move): Likewise.
1776 (*if_shift_move): Likewise.
1777 (*ifcompare_move_shift): Likewise.
1778 (*if_move_shift): Likewise.
1779 (*ifcompare_shift_shift): Likewise.
1780 (*ifcompare_not_arith): Likewise.
1781 (*ifcompare_arith_not): Likewise.
1782 (*if_arith_not): Likewise.
1783 (*ifcompare_neg_move): Likewise.
1784 (*if_neg_move): Likewise.
1785 (*ifcompare_move_neg): Likewise.
1786 (*if_move_neg): Likewise.
1787 (prologue_thumb1_interwork): Likewise.
1788 (*cond_move_not): Likewise.
1789 (*sign_extract_onebit): Likewise.
1790 (*not_signextract_onebit): Likewise.
1791 (stack_tie): Likewise.
1792 (align_4): Likewise.
1793 (align_8): Likewise.
1794 (consttable_end): Likewise.
1795 (consttable_1): Likewise.
1796 (consttable_2): Likewise.
1797 (consttable_4): Likewise.
1798 (consttable_8): Likewise.
1799 (consttable_16): Likewise.
1800 (*thumb1_tablejump): Likewise.
1801 (prefetch): Likewise.
1802 (force_register_use): Likewise.
1803 (thumb_eh_return): Likewise.
1804 (load_tp_hard): Likewise.
1805 (load_tp_soft): Likewise.
1806 (tlscall): Likewise.
1807 (*arm_movtas_ze): Likewise.
1808 (*arm_rev): Likewise.
1809 (*arm_revsh): Likewise.
1810 (*arm_rev16): Likewise.
1811 * config/arm/thumb2.md
1812 (*thumb2_smaxsi3): Likewise.
1813 (*thumb2_sminsi3): Likewise.
1814 (*thumb32_umaxsi3): Likewise.
1815 (*thumb2_uminsi3): Likewise.
1816 (*thumb2_negdi2): Likewise.
1817 (*thumb2_abssi2): Likewise.
1818 (*thumb2_neg_abss): Likewise.
1819 (*thumb2_movsi_insn): Likewise.
1820 (tls_load_dot_plus_four): Likewise.
1821 (*thumb2_movhi_insn): Likewise.
1822 (*thumb2_mov_scc): Likewise.
1823 (*thumb2_mov_negs): Likewise.
1824 (*thumb2_mov_negs): Likewise.
1825 (*thumb2_mov_nots): Likewise.
1826 (*thumb2_mov_nots): Likewise.
1827 (*thumb2_movsicc_): Likewise.
1828 (*thumb2_movsfcc_soft_insn): Likewise.
1829 (*thumb2_indirect_jump): Likewise.
1830 (*thumb2_and_scc): Likewise.
1831 (*thumb2_ior_scc): Likewise.
1832 (*thumb2_ior_scc_strict_it): Likewise.
1833 (*thumb2_cond_move): Likewise.
1834 (*thumb2_cond_arith): Likewise.
1835 (*thumb2_cond_ari): Likewise.
1836 (*thumb2_cond_sub): Likewise.
1837 (*thumb2_negscc): Likewise.
1838 (*thumb2_movcond): Likewise.
1839 (thumb2_casesi_internal): Likewise.
1840 (thumb2_casesi_internal_pic): Likewise.
1841 (*thumb2_alusi3_short): Likewise.
1842 (*thumb2_mov<mode>_shortim): Likewise.
1843 (*thumb2_addsi_short): Likewise.
1844 (*thumb2_subsi_short): Likewise.
1845 (thumb2_addsi3_compare0): Likewise.
1846 (*thumb2_cbz): Likewise.
1847 (*thumb2_cbnz): Likewise.
1848 (*thumb2_one_cmplsi2_short): Likewise.
1849 (*thumb2_negsi2_short): Likewise.
1850 (*orsi_notsi_si): Likewise.
1851 * config/arm/arm1020e.md: Update with new attributes.
1852 * config/arm/arm1026ejs.md: Update with new attributes.
1853 * config/arm/arm1136jfs.md: Update with new attributes.
1854 * config/arm/arm926ejs.md: Update with new attributes.
1855 * config/arm/cortex-a15.md: Update with new attributes.
1856 * config/arm/cortex-a5.md: Update with new attributes.
1857 * config/arm/cortex-a53.md: Update with new attributes.
1858 * config/arm/cortex-a7.md: Update with new attributes.
1859 * config/arm/cortex-a8.md: Update with new attributes.
1860 * config/arm/cortex-a9.md: Update with new attributes.
1861 * config/arm/cortex-m4.md: Update with new attributes.
1862 * config/arm/cortex-r4.md: Update with new attributes.
1863 * config/arm/fa526.md: Update with new attributes.
1864 * config/arm/fa606te.md: Update with new attributes.
1865 * config/arm/fa626te.md: Update with new attributes.
1866 * config/arm/fa726te.md: Update with new attributes.
1867
1c83b673
JG
18682013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1869
1870 * config/aarch64/aarch64-simd.md
1871 (aarch64_sqdml<SBINQOPS:as>l_n<mode>_internal): Use
1872 <vwx> iterator to ensure correct register choice.
1873 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise.
1874 (aarch64_sqdmull_n<mode>): Likewise.
1875 (aarch64_sqdmull2_n<mode>_internal): Likewise.
1876 * config/aarch64/arm_neon.h
1877 (vml<as><q>_lane<q>_<su>16): Use 'x' constraint for element vector.
1878 (vml<as><q>_n_<su>16): Likewise.
1879 (vml<as>l_high_lane<q>_<su>16): Likewise.
1880 (vml<as>l_high_n_<su>16): Likewise.
1881 (vml<as>l_lane<q>_<su>16): Likewise.
1882 (vml<as>l_n_<su>16): Likewise.
1883 (vmul<q>_lane<q>_<su>16): Likewise.
1884 (vmul<q>_n_<su>16): Likewise.
1885 (vmull_lane<q>_<su>16): Likewise.
1886 (vmull_n_<su>16): Likewise.
1887 (vmull_high_lane<q>_<su>16): Likewise.
1888 (vmull_high_n_<su>16): Likewise.
1889 (vqrdmulh<q>_n_s16): Likewise.
1890
bb1ae543
TB
18912013-09-06 Tejas Belagod <tejas.belagod@arm.com>
1892
1893 * config/aarch64/arm_neon.h: Fix all vdup<bhsd_lane<q> intrinsics to
1894 have the correct lane parameter.
1895
f23c0742
RB
18962013-09-06 Richard Biener <rguenther@suse.de>
1897
1898 * cfganal.c (control_dependences::~control_dependences):
1899 Properly free all of the vector.
1900
c1d49770
KY
19012013-09-06 Kirill Yukhin <kirill.yukhin@intel.com>
1902
1903 PR target/58269
1904 * config/i386/i386.c (ix86_conditional_register_usage):
1905 Proper initialize extended SSE registers.
1906
6da47f52
JH
19072013-09-06 Jan Hubicka <jh@suse.cz>
1908
1909 PR tree-optimization/58311
1910 * ipa-devirt.c (gate_ipa_devirt): Only execute when optimizing.
1911
19122013-09-06 Jan Hubicka <jh@suse.cz>
1913
1914 * Makefile.in (tree-sra.o): Update dependencies.
1915 * tree-sra.c: Include ipa-utils.h
1916 (scan_function): Use recursive_call_p.
1917 (has_caller_p): New function.
1918 (cgraph_for_node_and_aliases): Count also callers of aliases.
1919
fc11f321
JH
19202013-09-06 Jan Hubicka <jh@suse.cz>
1921
1922 PR middle-end/58094
1923 * cgraph.h (symtab_semantically_equivalent_p): Declare.
1924 * tree-tailcall.c: Include ipa-utils.h.
1925 (find_tail_calls): Use it.
1926 * ipa-pure-const.c (check_call): Likewise.
1927 * ipa-utils.c (recursive_call_p): New function.
1928 * ipa-utils.h (recursive_call_p): Dclare.
1929 * symtab.c (symtab_nonoverwritable_alias): Fix formatting.
1930 (symtab_semantically_equivalent_p): New function.
1931 * Makefile.in (tree-tailcall.o): Update dependencies.
1932
9a6af450
EB
19332013-09-06 Eric Botcazou <ebotcazou@adacore.com>
1934
1935 * ipa-split.c (split_function): Set DECL_NO_INLINE_WARNING_P on the
1936 non-inlinable part.
1937
35f32ad4
RB
19382013-09-06 Richard Biener <rguenther@suse.de>
1939
1940 * lto-streamer.h (lto_global_var_decls): Remove.
1941 * Makefile.in (OBJS): Remove lto-symtab.o.
1942 (lto-symtab.o): Remove.
1943 (GTFILES): Remove lto-symtab.c
1944 * lto-symtab.c: Move to lto/
1945
d12a76f3
AK
19462013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1947
1948 * config/s390/s390.md (UNSPEC_FPINT_FLOOR, UNSPEC_FPINT_BTRUNC)
1949 (UNSPEC_FPINT_ROUND, UNSPEC_FPINT_CEIL, UNSPEC_FPINT_NEARBYINT)
1950 (UNSPEC_FPINT_RINT): New constant definitions.
1951 (FPINT, fpint_name, fpint_roundingmode): New integer iterator
1952 definition with 2 attributes.
1953 ("<FPINT:fpint_name><BFP:mode>2", "rint<BFP:mode>2")
1954 ("<FPINT:fpint_name><DFP:mode>2", "rint<DFP:mode>2"): New pattern
1955 definitions.
1956
19572013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1958
f43245d1 1959 * config/s390/s390.md: Add "bcr_flush" value to mnemonic attribute.
d12a76f3
AK
1960 ("mem_thread_fence_1"): Use bcr 14,0 for z196 and later.
1961 Set the mnemonic attribute to "bcr_flush". Set the "z196prop"
1962 attribute to "z196_alone".
1963 * config/s390/2827.md: Add "bcr_flush" to "ooo_groupalone" and
1964 "zEC12_simple".
1965
c8e9d8c3
RB
19662013-09-06 Richard Biener <rguenther@suse.de>
1967
1968 * basic-block.h (class control_dependences): New.
1969 * tree-ssa-dce.c (control_dependence_map): Remove.
1970 (cd): New global.
1971 (EXECUTE_IF_CONTROL_DEPENDENT): Remove.
1972 (set_control_dependence_map_bit, clear_control_dependence_bitmap,
1973 find_pdom, find_control_dependence, find_all_control_dependences):
1974 Move to cfganal.c.
f43245d1
UB
1975 (mark_control_dependent_edges_necessary,
1976 find_obviously_necessary_stmts, propagate_necessity, tree_dce_init,
1977 tree_dce_done, perform_tree_ssa_dce): Adjust.
c8e9d8c3
RB
1978 * cfganal.c (set_control_dependence_map_bit,
1979 clear_control_dependence_bitmap, find_pdom, find_control_dependence,
1980 find_all_control_dependences): Move from tree-ssa-dce.c and
1981 implement as methods of control_dependences class.
1982 (control_dependences::control_dependences): New.
1983 (control_dependences::~control_dependences): Likewise.
1984 (control_dependences::get_edges_dependent_on): Likewise.
1985 (control_dependences::get_edge): Likewise.
1986
7d2ba471
JH
19872013-09-04 Jan Hubicka <jh@suse.cz>
1988
1989 * tree.c (types_same_for_odr): Drop overactive check.
1990 * ipa-devirt.c (hash_type_name): Likewise.
1991
e18412fc
JH
19922013-09-04 Jan Hubicka <jh@suse.cz>
1993
1994 * cgraphunit.c (walk_polymorphic_call_targets): Break out from ...
1995 (analyze_functions): ... here.
1996
d352b245
JH
19972013-09-04 Jan Hubicka <jh@suse.cz>
1998
1999 PR middle-end/58201
2000 * cgraphunit.c (analyze_functions): Clear AUX fields
2001 after processing; initialize assembler name has.
2002
770da076
JL
20032013-09-05 Jeff Law <law@redhat.com>
2004
2005 * tree-ssa-threadedge.c (thread_around_empty_blocks): Renamed
2006 from thread_around_empty_block. Record threading path into PATH.
2007 Recurse if threading through the initial block is successful.
2008 (thread_across_edge): Corresponding changes to slightly simplify.
2009
fe6f68e2
JG
20102013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
2011
2012 * config/aarch64/aarch64.md
2013 (type): Remove frecpe, frecps, frecpx.
2014 (aarch64_frecp<FRECP:frecp_suffix><mode>): Move to aarch64-simd.md,
2015 fix to be a TARGET_SIMD instruction.
2016 (aarch64_frecps): Remove.
2017 * config/aarch64/aarch64-simd.md
2018 (aarch64_frecp<FRECP:frecp_suffix><mode>): New, moved from aarch64.md
2019 (aarch64_frecps<mode>): Handle all float/vector of float modes.
2020
6e4150e1
JG
20212013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
2022 Sofiane Naci <sofiane.naci@arm.com>
2023
f43245d1 2024 * config/arm/types.md (define_attr "type"): Expand "arlo_imm"
6e4150e1 2025 into "adr", "alu_imm", "alus_imm", "logic_imm", "logics_imm".
f43245d1
UB
2026 Expand "arlo_reg" into "adc_reg", "adc_imm", "adcs_reg", "adcs_imm",
2027 "alu_ext", "alu_reg", "alus_ext", "alus_reg", "bfm", "csel",
2028 "logic_reg", "logics_reg", "rev". Expand "arlo_shift" into
2029 "alu_shift_imm", "alus_shift_imm", "logic_shift_imm",
2030 "logics_shift_imm". Expand "arlo_shift_reg" into "alu_shift_reg",
2031 "alus_shift_reg", "logic_shift_reg", "logics_shift_reg". Expand "clz"
2032 into "clz, "rbit". Rename "shift" to "shift_imm".
6e4150e1 2033 * config/arm/arm.md (define_attr "core_cycles"): Update for attribute
f43245d1 2034 changes. Update for attribute changes all occurrences of arlo_* and
6e4150e1
JG
2035 shift* types.
2036 * config/arm/arm-fixed.md: Update for attribute changes
2037 all occurrences of arlo_* types.
2038 * config/arm/thumb2.md: Update for attribute changes all occurrences
2039 of arlo_* types.
2040 * config/arm/arm.c (xscale_sched_adjust_cost): (rtx insn, rtx
2041 (cortexa7_older_only): Likewise.
2042 (cortexa7_younger): Likewise.
2043 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
2044 (1020alu_shift_op): Likewise.
2045 (1020alu_shift_reg_op): Likewise.
2046 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
2047 (alu_shift_op): Likewise.
2048 (alu_shift_reg_op): Likewise.
f43245d1 2049 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
6e4150e1
JG
2050 (11_alu_shift_op): Likewise.
2051 (11_alu_shift_reg_op): Likewise.
2052 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
2053 (9_alu_shift_reg_op): Likewise.
2054 * config/arm/cortex-a15.md (cortex_a15_alu): Update for
2055 attribute changes.
2056 (cortex_a15_alu_shift): Likewise.
2057 (cortex_a15_alu_shift_reg): Likewise.
2058 * config/arm/cortex-a5.md (cortex_a5_alu): Update for
2059 attribute changes.
2060 (cortex_a5_alu_shift): Likewise.
f43245d1
UB
2061 * config/arm/cortex-a53.md (cortex_a53_alu): Update for
2062 attribute changes.
6e4150e1 2063 (cortex_a53_alu_shift): Likewise.
f43245d1
UB
2064 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for
2065 attribute changes.
6e4150e1
JG
2066 (cortex_a7_alu_reg): Likewise.
2067 (cortex_a7_alu_shift): Likewise.
f43245d1
UB
2068 * config/arm/cortex-a8.md (cortex_a8_alu): Update for
2069 attribute changes.
6e4150e1
JG
2070 (cortex_a8_alu_shift): Likewise.
2071 (cortex_a8_alu_shift_reg): Likewise.
f43245d1 2072 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
6e4150e1 2073 (cortex_a9_dp_shift): Likewise.
f43245d1
UB
2074 * config/arm/cortex-m4.md (cortex_m4_alu): Update for
2075 attribute changes.
6e4150e1
JG
2076 * config/arm/cortex-r4.md
2077 (cortex_r4_alu): Update for attribute changes.
2078 (cortex_r4_mov): Likewise.
2079 (cortex_r4_alu_shift_reg): Likewise.
f43245d1 2080 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
6e4150e1 2081 (526_alu_shift_op): Likewise.
f43245d1
UB
2082 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
2083 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
6e4150e1 2084 (626te_alu_shift_op): Likewise.
f43245d1 2085 * config/arm/fa726te.md (726te_alu_op): Update for attribute changes.
6e4150e1
JG
2086 (726te_alu_shift_op): Likewise.
2087 (726te_alu_shift_reg_op): Likewise.
2088 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
2089 (mp626_alu_shift_op): Likewise.
2090 * config/arm/marvell-pj4.md (pj4_alu): Update for attribute changes.
2091 (pj4_alu_conds): Likewise.
2092 (pj4_shift): Likewise.
2093 (pj4_shift_conds): Likewise.
2094 (pj4_alu_shift): Likewise.
2095 (pj4_alu_shift_conds): Likewise.
2096 * config/aarch64/aarch64.md: Update for attribute change
2097 all occurrences of arlo_* and shift* types.
2098
e6523306
MS
20992013-09-05 Mike Stump <mikestump@comcast.net>
2100
2101 * tree.h: Move documentation for tree_function_decl to tree-core.h
2102 with the declaration.
2103
80a18161
PB
21042013-09-05 Peter Bergner <bergner@vnet.ibm.com>
2105
2106 PR target/58139
2107 * reginfo.c (choose_hard_reg_mode): Scan through all mode classes
2108 looking for widest mode.
2109
6994430a
EB
21102013-09-05 Eric Botcazou <ebotcazou@adacore.com>
2111
2112 * config.gcc (*-*-vxworks*): Do not override an existing extra_objs.
2113
e67f39f7
RB
21142013-09-05 Richard Biener <rguenther@suse.de>
2115
2116 PR tree-optimization/58137
2117 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
2118 Do not create vectors of pointers.
2119 * tree-vect-loop.c (get_initial_def_for_induction): Use proper
2120 types for the components of the vector initializer.
2121 * tree-cfg.c (verify_gimple_assign_binary): Remove special-casing
2122 allowing pointer vectors with PLUS_EXPR/MINUS_EXPR.
2123
568cda29
MJ
21242013-09-05 Martin Jambor <mjambor@suse.cz>
2125
2126 * ipa-prop.c (remove_described_reference): Accept missing references,
2127 return false if that hppens, otherwise return true.
2128 (cgraph_node_for_jfunc): New function.
2129 (try_decrement_rdesc_refcount): Likewise.
2130 (try_make_edge_direct_simple_call): Use them.
2131 (ipa_edge_removal_hook): Remove references from rdescs.
2132 (ipa_edge_duplication_hook): Clone rdescs and their references
2133 when the new edge has the same caller as the old one.
2134 * cgraph.c (cgraph_resolve_speculation): Remove speculative
2135 reference before removing any edges.
2136
5a200acb
RE
21372013-09-05 Richard Earnshaw <rearnsha@arm.com>
2138
2139 * arm.c (thumb2_emit_strd_push): Rewrite to use pre-decrement on
2140 initial store.
2141 * thumb2.md (thumb2_storewb_parisi): New pattern.
2142
5922847b
YZ
21432013-09-05 Yufeng Zhang <yufeng.zhang@arm.com>
2144
2145 * config/aarch64/aarch64-option-extensions.def: Add
2146 AARCH64_OPT_EXTENSION of 'crc'.
2147 * config/aarch64/aarch64.h (AARCH64_FL_CRC): New define.
2148 (AARCH64_ISA_CRC): Ditto.
2149 * doc/invoke.texi (-march and -mcpu feature modifiers): Add
2150 description of the CRC extension.
2151
996746aa
AI
21522013-09-05 Alexander Ivchenko <alexander.ivchenko@intel.com>
2153
2154 * config/rs6000/linux64.h: Define OPTION_BIONIC and OPTION_UCLIBC.
2155 * config/rs6000/linux.h: Ditto.
2156 * alpha/linux.h: Ditto.
2157 * config/bfin/uclinux.h: Define TARGET_LIBC_HAS_FUNCTION as
2158 no_c99_libc_has_function.
2159 * config/c6x/uclinux-elf.h: Ditto.
2160 * config/lm32/uclinux-elf.h: Ditto.
2161 * config/m68k/uclinux.h: Ditto.
2162 * config/moxie/uclinux.h: Ditto.
2163 * config.gcc (bfin*-linux-uclibc*): Add t-linux-android to tmake_file.
2164 (crisv32-*-linux*, cris-*-linux*): Ditto.
2165 * config/bfin/bfin.c: Include "tm_p.h".
2166
c370d99f
RB
21672013-09-05 Richard Biener <rguenther@suse.de>
2168
2169 * tree-vect-loop.c (vect_analyze_loop_operations): Properly
2170 check for a definition without a basic-block.
2171
003bb7f3
JG
21722013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
2173 Sofiane Naci <sofiane.naci@arm.com>
2174
2175 * config/aarch64/aarch64.md
2176 (*movti_aarch64): Rename r_2_f and f_2_r.
2177 (*movsf_aarch64): Likewise.
2178 (*movdf_aarch64): Likewise.
2179 (*movtf_aarch64): Likewise.
2180 (aarch64_movdi_<mode>low): Likewise.
2181 (aarch64_movdi_<mode>high): Likewise.
2182 (aarch64_mov<mode>high_di): Likewise.
2183 (aarch64_mov<mode>low_di): Likewise.
2184 (aarch64_movtilow_tilow): Likewise.
2185 * config/arm/arm.md (attribute "neon_type"): Delete. Move attribute
2186 values to config/arm/types.md
2187 (attribute "conds"): Update for attribute change.
2188 (anddi3_insn): Likewise.
2189 (iordi3_insn): Likewise.
2190 (xordi3_insn): Likewise.
2191 (one_cmpldi2): Likewise.
2192 * config/arm/types.md (type): Add Neon types.
2193 * config/arm/neon.md (neon_mov<mode>): Remove "neon_type" attribute,
2194 use "type" attribute.
2195 (movmisalign<mode>_neon_store): Likewise.
2196 (movmisalign<mode>_neon_load): Likewise.
2197 (vec_set<mode>_internal): Likewise.
2198 (vec_setv2di_internal): Likewise.
2199 (vec_extract<mode>): Likewise.
2200 (vec_extractv2di): Likewise.
2201 (add<mode>3_neon): Likewise.
2202 (adddi3_neon): Likewise.
2203 (sub<mode>3_neon): Likewise.
2204 (subdi3_neon): Likewise.
2205 (mul<mode>3_neon): Likewise.
2206 (mul<mode>3add<mode>_neon): Likewise.
2207 (mul<mode>3neg<mode>add<mode>_neon): Likewise.
2208 (fma<VCVTF:mode>4)): Likewise.
2209 (fma<VCVTF:mode>4_intrinsic): Likewise.
2210 (fmsub<VCVTF:mode>4)): Likewise.
2211 (fmsub<VCVTF:mode>4_intrinsic): Likewise.
2212 (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise.
2213 (ior<mode>3): Likewise.
2214 (and<mode>3): Likewise.
2215 (anddi3_neon): Likewise.
2216 (orn<mode>3_neon): Likewise.
2217 (orndi3_neon): Likewise.
2218 (bic<mode>3_neon): Likewise.
2219 (bicdi3_neon): Likewise.
2220 (xor<mode>3): Likewise.
2221 (one_cmpl<mode>2): Likewise.
2222 (abs<mode>2): Likewise.
2223 (neg<mode>2): Likewise.
2224 (umin<mode>3_neon): Likewise.
2225 (umax<mode>3_neon): Likewise.
2226 (smin<mode>3_neon): Likewise.
2227 (smax<mode>3_neon): Likewise.
2228 (vashl<mode>3): Likewise.
2229 (vashr<mode>3_imm): Likewise.
2230 (vlshr<mode>3_imm): Likewise.
2231 (ashl<mode>3_signed): Likewise.
2232 (ashl<mode>3_unsigned): Likewise.
2233 (neon_load_count): Likewise.
2234 (ashldi3_neon_noclobber): Likewise.
2235 (signed_shift_di3_neon): Likewise.
2236 (unsigned_shift_di3_neon): Likewise.
2237 (ashrdi3_neon_imm_noclobber): Likewise.
2238 (lshrdi3_neon_imm_noclobber): Likewise.
2239 (widen_ssum<mode>3): Likewise.
2240 (widen_usum<mode>3): Likewise.
2241 (quad_halves_<code>v4si): Likewise.
2242 (quad_halves_<code>v4sf): Likewise.
2243 (quad_halves_<code>v8hi): Likewise.
2244 (quad_halves_<code>v16qi): Likewise.
2245 (reduc_splus_v2di): Likewise.
2246 (neon_vpadd_internal<mode>): Likewise.
2247 (neon_vpsmin<mode>): Likewise.
2248 (neon_vpsmax<mode>): Likewise.
2249 (neon_vpumin<mode>): Likewise.
2250 (neon_vpumax<mode>): Likewise.
2251 (ss_add<mode>_neon): Likewise.
2252 (us_add<mode>_neon): Likewise.
2253 (ss_sub<mode>_neon): Likewise.
2254 (us_sub<mode>_neon): Likewise.
2255 (neon_vadd<mode>_unspec): Likewise.
2256 (neon_vaddl<mode>): Likewise.
2257 (neon_vaddw<mode>): Likewise.
2258 (neon_vhadd<mode>): Likewise.
2259 (neon_vqadd<mode>): Likewise.
2260 (neon_vaddhn<mode>): Likewise.
2261 (neon_vmul<mode>): Likewise.
2262 (neon_vmla<mode>): Likewise.
2263 (neon_vmlal<mode>): Likewise.
2264 (neon_vmls<mode>): Likewise.
2265 (neon_vmlsl<mode>): Likewise.
2266 (neon_vqdmulh<mode>): Likewise.
2267 (neon_vqdmlal<mode>): Likewise.
2268 (neon_vqdmlsl<mode>): Likewise.
2269 (neon_vmull<mode>): Likewise.
2270 (neon_vqdmull<mode>): Likewise.
2271 (neon_vsub<mode>_unspec): Likewise.
2272 (neon_vsubl<mode>): Likewise.
2273 (neon_vsubw<mode>): Likewise.
2274 (neon_vqsub<mode>): Likewise.
2275 (neon_vhsub<mode>): Likewise.
2276 (neon_vsubhn<mode>): Likewise.
2277 (neon_vceq<mode>): Likewise.
2278 (neon_vcge<mode>): Likewise.
2279 (neon_vcgeu<mode>): Likewise.
2280 (neon_vcgt<mode>): Likewise.
2281 (neon_vcgtu<mode>): Likewise.
2282 (neon_vcle<mode>): Likewise.
2283 (neon_vclt<mode>): Likewise.
2284 (neon_vcage<mode>): Likewise.
2285 (neon_vcagt<mode>): Likewise.
2286 (neon_vtst<mode>): Likewise.
2287 (neon_vabd<mode>): Likewise.
2288 (neon_vabdl<mode>): Likewise.
2289 (neon_vaba<mode>): Likewise.
2290 (neon_vabal<mode>): Likewise.
2291 (neon_vmax<mode>): Likewise.
2292 (neon_vmin<mode>): Likewise.
2293 (neon_vpaddl<mode>): Likewise.
2294 (neon_vpadal<mode>): Likewise.
2295 (neon_vpmax<mode>): Likewise.
2296 (neon_vpmin<mode>): Likewise.
2297 (neon_vrecps<mode>): Likewise.
2298 (neon_vrsqrts<mode>): Likewise.
2299 (neon_vqabs<mode>): Likewise.
2300 (neon_vqneg<mode>): Likewise.
2301 (neon_vcls<mode>): Likewise.
2302 (clz<mode>2): Likewise.
2303 (popcount<mode>2): Likewise.
2304 (neon_vrecpe): Likewise.
2305 (neon_vrsqrte): Likewise.
2306 (neon_vget_lane<mode>_sext_internal): Likewise.
2307 (neon_vget_lane<mode>_zext_internal): Likewise.
2308 (neon_vdup_n<mode>): Likewise.
2309 (neon_vdup_nv2di): Likewise.
2310 (neon_vdpu_lane<mode>_internal): Likewise.
2311 (neon_vswp<mode>): Likewise.
2312 (float<mode><V_cvtto>2): Likewise.
2313 (floatuns<mode><V_cvtto>2): Likewise.
2314 (fix_trunc<mode><V_cvtto>)2): Likewise
2315 (fixuns_trunc<mode><V_cvtto)2): Likewise.
2316 (neon_vcvt<mode>): Likewise.
2317 (neon_vcvtv4sfv4hf): Likewise.
2318 (neon_vcvtv4hfv4sf): Likewise.
2319 (neon_vcvt_n<mode>): Likewise.
2320 (neon_vmovn<mode>): Likewise.
2321 (neon_vqmovn<mode>): Likewise.
2322 (neon_vqmovun<mode>): Likewise.
2323 (neon_vmovl<mode>): Likewise.
2324 (neon_vmul_lane<mode>): Likewise.
2325 (neon_vmull_lane<mode>): Likewise.
2326 (neon_vqdmull_lane<mode>): Likewise.
2327 (neon_vqdmulh_lane<mode>): Likewise.
2328 (neon_vmla_lane<mode>): Likewise.
2329 (neon_vmlal_lane<mode>): Likewise.
2330 (neon_vqdmlal_lane<mode>): Likewise.
2331 (neon_vmls_lane<mode>): Likewise.
2332 (neon_vmlsl_lane<mode>): Likewise.
2333 (neon_vqdmlsl_lane<mode>): Likewise.
2334 (neon_vext<mode>): Likewise.
2335 (neon_vrev64<mode>): Likewise.
2336 (neon_vrev32<mode>): Likewise.
2337 (neon_vrev16<mode>): Likewise.
2338 (neon_vbsl<mode>_internal): Likewise.
2339 (neon_vshl<mode>): Likewise.
2340 (neon_vqshl<mode>): Likewise.
2341 (neon_vshr_n<mode>): Likewise.
2342 (neon_vshrn_n<mode>): Likewise.
2343 (neon_vqshrn_n<mode>): Likewise.
2344 (neon_vqshrun_n<mode>): Likewise.
2345 (neon_vshl_n<mode>): Likewise.
2346 (neon_vqshl_n<mode>): Likewise.
2347 (neon_vqshlu_n<mode>): Likewise.
2348 (neon_vshll_n<mode>): Likewise.
2349 (neon_vsra_n<mode>): Likewise.
2350 (neon_vsri_n<mode>): Likewise.
2351 (neon_vsli_n<mode>): Likewise.
2352 (neon_vtbl1v8qi): Likewise.
2353 (neon_vtbl2v8qi): Likewise.
2354 (neon_vtbl3v8qi): Likewise.
2355 (neon_vtbl4v8qi): Likewise.
2356 (neon_vtbx1v8qi): Likewise.
2357 (neon_vtbx2v8qi): Likewise.
2358 (neon_vtbx3v8qi): Likewise.
2359 (neon_vtbx4v8qi): Likewise.
2360 (neon_vtrn<mode>_internal): Likewise.
2361 (neon_vzip<mode>_internal): Likewise.
2362 (neon_vuzp<mode>_internal): Likewise.
2363 (neon_vld1<mode>): Likewise.
2364 (neon_vld1_lane<mode>): Likewise.
2365 (neon_vld1_dup<mode>): Likewise.
2366 (neon_vld1_dupv2di): Likewise.
2367 (neon_vst1<mode>): Likewise.
2368 (neon_vst1_lane<mode>): Likewise.
2369 (neon_vld2<mode>): Likewise.
2370 (neon_vld2_lane<mode>): Likewise.
2371 (neon_vld2_dup<mode>): Likewise.
2372 (neon_vst2<mode>): Likewise.
2373 (neon_vst2_lane<mode>): Likewise.
2374 (neon_vld3<mode>): Likewise.
2375 (neon_vld3qa<mode>): Likewise.
2376 (neon_vld3qb<mode>): Likewise.
2377 (neon_vld3_lane<mode>): Likewise.
2378 (neon_vld3_dup<mode>): Likewise.
2379 (neon_vst3<mode>): Likewise.
2380 (neon_vst3qa<mode>): Likewise.
2381 (neon_vst3qb<mode>): Likewise.
2382 (neon_vst3_lane<mode>): Likewise.
2383 (neon_vld4<mode>): Likewise.
2384 (neon_vld4qa<mode>): Likewise.
2385 (neon_vld4qb<mode>): Likewise.
2386 (neon_vld4_lane<mode>): Likewise.
2387 (neon_vld4_dup<mode>): Likewise.
2388 (neon_vst4<mode>): Likewise.
2389 (neon_vst4qa<mode>): Likewise.
2390 (neon_vst4qb<mode>): Likewise.
2391 (neon_vst4_lane<mode>): Likewise.
2392 (neon_vec_unpack<US>_lo_<mode>): Likewise.
2393 (neon_vec_unpack<US>_hi_<mode>): Likewise.
2394 (neon_vec_<US>mult_lo_<mode>): Likewise.
2395 (neon_vec_<US>mult_hi_<mode>): Likewise.
2396 (neon_vec_<US>shiftl_<mode>): Likewise.
2397 (neon_unpack<US>_<mode>): Likewise.
2398 (neon_vec_<US>mult_<mode>): Likewise.
2399 (vec_pack_trunc_<mode>): Likewise.
2400 (neon_vec_pack_trunk_<mode>): Likewise.
2401 (neon_vabd<mode>_2): Likewise.
2402 (neon_vabd<mode>_3): Likewise.
2403 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
2404 (thumb2_movsi_vfp): Likewise.
2405 (movdi_vfp): Likewise.
2406 (movdi_vfp_cortexa8): Likewise.
2407 (movhf_vfp_neon): Likewise.
2408 (movhf_vfp): Likewiwse.
2409 (movsf_vfp): Likewiwse.
2410 (thumb2_movsf_vfp): Likewiwse.
2411 (movdf_vfp): Likewise.
2412 (thumb2_movdf_vfp): Likewise.
2413 (movsfcc_vfp): Likewise.
2414 (thumb2_movsfcc_vfp): Likewise.
2415 (movdfcc_vfp): Likewise.
2416 (thumb2_movdfcc_vfp): Likewise.
2417 * config/arm/arm.c (cortexa7_older_only): Update for attribute change.
2418 * config/arm/arm1020e.md (v10_c2v): Update for attribute change.
2419 (v10_v2c): Likewise.
2420 * config/arm/cortex-a15-neon.md (cortex_a15_neon_int_1): Update for
2421 attribute change.
2422 (cortex_a15_neon_int_2): Likewise.
2423 (cortex_a15_neon_int_3): Likewise.
2424 (cortex_a15_neon_int_4): Likewise.
2425 (cortex_a15_neon_int_5): Likewise.
2426 (cortex_a15_neon_vqneg_vqabs): Likewise.
2427 (cortex_a15_neon_vmov): Likewise.
2428 (cortex_a15_neon_vaba): Likewise.
2429 (cortex_a15_neon_vaba_qqq): Likewise.
2430 (cortex_a15_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
2431 (cortex_a15_neon_mul_qqq_8_16_32_ddd_32): Likewise.
2432 (cortex_a15_neon_mul_qdd_64_32_long_qqd_16_ddd_32_\
2433 scalar_64_32_long_scalar): Likewise.
2434 (cortex_a15_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
2435 (cortex_a15_neon_mla_qqq_8_16): Likewise.
2436 (cortex_a15_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
2437 lotype_qdd_64_32_long): Likewise.
2438 (cortex_a15_neon_mla_qqq_32_qqd_32_scalar): Likewise.
2439 (cortex_a15_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
2440 (cortex_a15_neon_mul_qqd_32_scalar): Likewise.
2441 (cortex_a15_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
2442 (cortex_a15_neon_shift_1): Likewise.
2443 (cortex_a15_neon_shift_2): Likewise.
2444 (cortex_a15_neon_shift_3): Likewise.
2445 (cortex_a15_neon_vshl_ddd): Likewise.
2446 (cortex_a15_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
2447 (cortex_a15_neon_vsra_vrsra): Likewise.
2448 (cortex_a15_neon_fp_vadd_ddd_vabs_dd): Likewise.
2449 (cortex_a15_neon_fp_vadd_qqq_vabs_qq): Likewise.
2450 (cortex_a15_neon_fp_vmul_ddd): Likewise.
2451 (cortex_a15_neon_fp_vmul_qqd): Likewise.
2452 (cortex_a15_neon_fp_vmla_ddd): Likewise.
2453 (cortex_a15_neon_fp_vmla_qqq): Likewise.
2454 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
2455 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
2456 (cortex_a15_neon_fp_vrecps_vrsqrts_ddd): Likewise.
2457 (cortex_a15_neon_fp_vrecps_vrsqrts_qqq): Likewise.
2458 (cortex_a15_neon_bp_simple): Likewise.
2459 (cortex_a15_neon_bp_2cycle): Likewise.
2460 (cortex_a15_neon_bp_3cycle): Likewise.
2461 (cortex_a15_neon_vld1_1_2_regs): Likewise.
2462 (cortex_a15_neon_vld1_3_4_regs): Likewise.
2463 (cortex_a15_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
2464 (cortex_a15_neon_vld2_4_regs): Likewise.
2465 (cortex_a15_neon_vld3_vld4): Likewise.
2466 (cortex_a15_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
2467 (cortex_a15_neon_vst1_3_4_regs): Likewise.
2468 (cortex_a15_neon_vst2_4_regs_vst3_vst4): Likewise.
2469 (cortex_a15_neon_vst3_vst4): Likewise.
2470 (cortex_a15_neon_vld1_vld2_lane): Likewise.
2471 (cortex_a15_neon_vld3_vld4_lane" 10
2472 (cortex_a15_neon_vst1_vst2_lane): Likewise.
2473 (cortex_a15_neon_vst3_vst4_lane): Likewise.
2474 (cortex_a15_neon_vld3_vld4_all_lanes): Likewise.
2475 (cortex_a15_neon_ldm_2): Likewise.0
2476 (cortex_a15_neon_stm_2): Likewise.
2477 (cortex_a15_neon_mcr): Likewise.
2478 (cortex_a15_neon_mcr_2_mcrr): Likewise.
2479 (cortex_a15_neon_mrc): Likewise.
2480 (cortex_a15_neon_mrrc): Likewise.
2481 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
2482 change.
2483 (cortex_a15_alu_shift): Likewise.
2484 (cortex_a15_alu_shift_reg): Likewise.
2485 (cortex_a15_mult32): Likewise.
2486 (cortex_a15_mult64): Likewise.
2487 (cortex_a15_block): Likewise.
2488 (cortex_a15_branch): Likewise.
2489 (cortex_a15_load1): Likewise.
2490 (cortex_a15_load3): Likewise.
2491 (cortex_a15_store1): Likewise.
2492 (cortex_a15_store3): Likewise.
2493 (cortex_a15_call): Likewise.
f43245d1 2494 * config/arm/cortex-a5.md (cortex_a5_r2f): Update for attribute change.
003bb7f3
JG
2495 (cortex_a5_f2r): Likewise.
2496 * config/arm/cortex-a53.md (cortex_a53_r2f): Update for attribute
2497 change.
2498 (cortex_a53_f2r): Likewise.
2499 * config/arm/cortex-a7.md
2500 (cortex_a7_branch): Update for attribute change.
2501 (cortex_a7_call): Likewise.
2502 (cortex_a7_alu_imm): Likewise.
2503 (cortex_a7_alu_reg): Likewise.
2504 (cortex_a7_alu_shift): Likewise.
2505 (cortex_a7_mul): Likewise.
2506 (cortex_a7_load1): Likewise.
2507 (cortex_a7_store1): Likewise.
2508 (cortex_a7_load2): Likewise.
2509 (cortex_a7_store2): Likewise.
2510 (cortex_a7_load3): Likewise.
2511 (cortex_a7_store3): Likewise.
2512 (cortex_a7_load4): Likewise.
2513 (cortex_a7_store4): Likewise.
2514 (cortex_a7_fpalu): Likewise.
2515 (cortex_a7_fconst): Likewise.
2516 (cortex_a7_fpmuls): Likewise.
2517 (cortex_a7_neon_mul): Likewise.
2518 (cortex_a7_fpmacs): Likewise.
2519 (cortex_a7_neon_mla: Likewise.
2520 (cortex_a7_fpmuld: Likewise.
2521 (cortex_a7_fpmacd: Likewise.
2522 (cortex_a7_fpfmad: Likewise.
2523 (cortex_a7_fdivs: Likewise.
2524 (cortex_a7_fdivd: Likewise.
2525 (cortex_a7_r2f: Likewise.
2526 (cortex_a7_f2r: Likewise.
2527 (cortex_a7_f_flags: Likewise.
2528 (cortex_a7_f_loads: Likewise.
2529 (cortex_a7_f_loadd: Likewise.
2530 (cortex_a7_f_stores: Likewise.
2531 (cortex_a7_f_stored: Likewise.
2532 (cortex_a7_neon): Likewise.
2533 * config/arm/cortex-a8-neon.md
2534 (cortex_a8_neon_mrc): Update for attribute change.
2535 (cortex_a8_neon_mrrc): Likewise.
2536 (cortex_a8_neon_int_1): Likewise.
2537 (cortex_a8_neon_int_2): Likewise.
2538 (cortex_a8_neon_int_3): Likewise.
2539 (cortex_a8_neon_int_4): Likewise.
2540 (cortex_a8_neon_int_5): Likewise.
2541 (cortex_a8_neon_vqneg_vqabs): Likewise.
2542 (cortex_a8_neon_vmov): Likewise.
2543 (cortex_a8_neon_vaba): Likewise.
2544 (cortex_a8_neon_vaba_qqq): Likewise.
2545 (cortex_a8_neon_vsma): Likewise.
2546 (cortex_a8_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
2547 (cortex_a8_neon_mul_qqq_8_16_32_ddd_32): Likewise.
f43245d1
UB
2548 (cortex_a8_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
2549 long_scalar): Likewise.
003bb7f3
JG
2550 (cortex_a8_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
2551 (cortex_a8_neon_mla_qqq_8_16): Likewise.
2552 (cortex_a8_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
2553 long_scalar_qdd_64_32_long): Likewise.
2554 (cortex_a8_neon_mla_qqq_32_qqd_32_scalar): Likewise.
2555 (cortex_a8_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
2556 (cortex_a8_neon_mul_qqd_32_scalar): Likewise.
2557 (cortex_a8_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
2558 (cortex_a8_neon_shift_1): Likewise.
2559 (cortex_a8_neon_shift_2): Likewise.
2560 (cortex_a8_neon_shift_3): Likewise.
2561 (cortex_a8_neon_vshl_ddd): Likewise.
2562 (cortex_a8_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
2563 (cortex_a8_neon_vsra_vrsra): Likewise.
2564 (cortex_a8_neon_fp_vadd_ddd_vabs_dd): Likewise.
2565 (cortex_a8_neon_fp_vadd_qqq_vabs_qq): Likewise.
2566 (cortex_a8_neon_fp_vsum): Likewise.
2567 (cortex_a8_neon_fp_vmul_ddd): Likewise.
2568 (cortex_a8_neon_fp_vmul_qqd): Likewise.
2569 (cortex_a8_neon_fp_vmla_ddd): Likewise.
2570 (cortex_a8_neon_fp_vmla_qqq): Likewise.
2571 (cortex_a8_neon_fp_vmla_ddd_scalar): Likewise.
2572 (cortex_a8_neon_fp_vmla_qqq_scalar): Likewise.
2573 (cortex_a8_neon_fp_vrecps_vrsqrts_ddd): Likewise.
2574 (cortex_a8_neon_fp_vrecps_vrsqrts_qqq): Likewise.
2575 (cortex_a8_neon_bp_simple): Likewise.
2576 (cortex_a8_neon_bp_2cycle): Likewise.
2577 (cortex_a8_neon_bp_3cycle): Likewise.
2578 (cortex_a8_neon_ldr): Likewise.
2579 (cortex_a8_neon_str): Likewise.
2580 (cortex_a8_neon_vld1_1_2_regs): Likewise.
2581 (cortex_a8_neon_vld1_3_4_regs): Likewise.
2582 (cortex_a8_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
2583 (cortex_a8_neon_vld2_4_regs): Likewise.
2584 (cortex_a8_neon_vld3_vld4): Likewise.
2585 (cortex_a8_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
2586 (cortex_a8_neon_vst1_3_4_regs): Likewise.
2587 (cortex_a8_neon_vst2_4_regs_vst3_vst4): Likewise.
2588 (cortex_a8_neon_vst3_vst4): Likewise.
2589 (cortex_a8_neon_vld1_vld2_lane): Likewise.
2590 (cortex_a8_neon_vld3_vld4_lane): Likewise.
2591 (cortex_a8_neon_vst1_vst2_lane): Likewise.
2592 (cortex_a8_neon_vst3_vst4_lane): Likewise.
2593 (cortex_a8_neon_vld3_vld4_all_lanes): Likewise.
2594 (cortex_a8_neon_mcr): Likewise.
2595 (cortex_a8_neon_mcr_2_mcrr): Likewise.
f43245d1 2596 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
003bb7f3
JG
2597 * config/arm/cortex-a9-neon.md (ca9_neon_mrc): Update for attribute
2598 change.
2599 (ca9_neon_mrrc): Likewise.
2600 (cortex_a9_neon_int_1): Likewise.
2601 (cortex_a9_neon_int_2): Likewise.
2602 (cortex_a9_neon_int_3): Likewise.
2603 (cortex_a9_neon_int_4): Likewise.
2604 (cortex_a9_neon_int_5): Likewise.
2605 (cortex_a9_neon_vqneg_vqabs): Likewise.
2606 (cortex_a9_neon_vmov): Likewise.
2607 (cortex_a9_neon_vaba): Likewise.
2608 (cortex_a9_neon_vaba_qqq): Likewise.
2609 (cortex_a9_neon_vsma): Likewise.
2610 (cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
2611 (cortex_a9_neon_mul_qqq_8_16_32_ddd_32): Likewise.
f43245d1
UB
2612 (cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
2613 long_scalar): Likewise.
003bb7f3
JG
2614 (cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
2615 (cortex_a9_neon_mla_qqq_8_16): Likewise.
2616 (cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
2617 long_scalar_qdd_64_32_long): Likewise.
2618 (cortex_a9_neon_mla_qqq_32_qqd_32_scalar): Likewise.
2619 (cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
2620 (cortex_a9_neon_mul_qqd_32_scalar): Likewise.
2621 (cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
2622 (cortex_a9_neon_shift_1): Likewise.
2623 (cortex_a9_neon_shift_2): Likewise.
2624 (cortex_a9_neon_shift_3): Likewise.
2625 (cortex_a9_neon_vshl_ddd): Likewise.
2626 (cortex_a9_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
2627 (cortex_a9_neon_vsra_vrsra): Likewise.
2628 (cortex_a9_neon_fp_vadd_ddd_vabs_dd): Likewise.
2629 (cortex_a9_neon_fp_vadd_qqq_vabs_qq): Likewise.
2630 (cortex_a9_neon_fp_vsum): Likewise.
2631 (cortex_a9_neon_fp_vmul_ddd): Likewise.
2632 (cortex_a9_neon_fp_vmul_qqd): Likewise.
2633 (cortex_a9_neon_fp_vmla_ddd): Likewise.
2634 (cortex_a9_neon_fp_vmla_qqq): Likewise.
2635 (cortex_a9_neon_fp_vmla_ddd_scalar): Likewise.
2636 (cortex_a9_neon_fp_vmla_qqq_scalar): Likewise.
2637 (cortex_a9_neon_fp_vrecps_vrsqrts_ddd): Likewise.
2638 (cortex_a9_neon_fp_vrecps_vrsqrts_qqq): Likewise.
2639 (cortex_a9_neon_bp_simple): Likewise.
2640 (cortex_a9_neon_bp_2cycle): Likewise.
2641 (cortex_a9_neon_bp_3cycle): Likewise.
2642 (cortex_a9_neon_ldr): Likewise.
2643 (cortex_a9_neon_str): Likewise.
2644 (cortex_a9_neon_vld1_1_2_regs): Likewise.
2645 (cortex_a9_neon_vld1_3_4_regs): Likewise.
2646 (cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
2647 (cortex_a9_neon_vld2_4_regs): Likewise.
2648 (cortex_a9_neon_vld3_vld4): Likewise.
2649 (cortex_a9_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
2650 (cortex_a9_neon_vst1_3_4_regs): Likewise.
2651 (cortex_a9_neon_vst2_4_regs_vst3_vst4): Likewise.
2652 (cortex_a9_neon_vst3_vst4): Likewise.
2653 (cortex_a9_neon_vld1_vld2_lane): Likewise.
2654 (cortex_a9_neon_vld3_vld4_lane): Likewise.
2655 (cortex_a9_neon_vst1_vst2_lane): Likewise.
2656 (cortex_a9_neon_vst3_vst4_lane): Likewise.
2657 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
2658 (cortex_a9_neon_mcr): Likewise.
2659 (cortex_a9_neon_mcr_2_mcrr): Likewise.
2660 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
2661 (cortex_a9_fps): Likewise.
2662 * config/arm/cortex-m4-fpu.md (cortex_m4_vmov_2): Update for attribute
2663 change.
2664 (cortex_m4_fmuls): Likewise.
2665 * config/arm/cortex-r4f.md (cortex_r4_mcr): Update for attribute
2666 change.
2667 (cortex_r4_mrc): Likewise.
2668 * config/arm/iterators.md: Update comment referring to neon_type.
f43245d1 2669 * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Update for attribute change.
003bb7f3 2670 (iwmmxt_movsi_insn): Likewise.
f43245d1
UB
2671 * config/arm/marvell-pj4.md (pj4_vfp_to_core): Update for
2672 attribute change.
003bb7f3
JG
2673 (pj4_core_to_vfp): Likewise.
2674 * config/arm/neon-schedgen.ml (emit_insn_reservations): Update for
2675 attribute change.
2676 * config/arm/vfp11.md (vfp_fload): Update for attribute change.
2677 (vfp_fstore): Likewise.
2678 * doc/md.texi: Change references to neon_type to refer to type.
2679
fbe0dc78
DS
26802013-09-04 Dodji Seketeli <dodji@redhat.com>
2681
2682 * tree.h (DECL_BUILT_IN): Fix typo in comment.
2683
c167bc5b
DE
26842013-09-04 David Edelsohn <dje.gcc@gmail.com>
2685
2686 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Only emit
2687 lglobl if not weak.
2688
035cb59f
ER
26892013-09-04 Easwaran Raman <eraman@google.com>
2690
2691 PR middle-end/57370
2692 * tree-ssa-reassoc.c (get_stmt_uid_with_default): New function,
2693 (build_and_add_sum): Use it.
2694 (appears_later_in_bb): Simplify code.
2695
71191083
TJ
26962013-09-04 Teresa Johnson <tejohnson@google.com>
2697
2698 * dumpfile.c (dump_finish): Don't close stderr/stdout.
2699
0c488213
JG
27002013-09-04 James Greenhalgh <james.greenhalgh@arm.com>
2701
2702 * config/aarch64/arm_neon.h (vaddvq_<su>64): Fix return types.
2703
61a74079
JH
27042013-09-04 Jan Hubicka <jh@suse.cz>
2705
2706 * Makefile.in (ipa-devirt.o): Add dependency on diagnostic.h
2707 * ipa-devirt.c: Include diganostic.h
2708 (odr_type_d): Add types and types_set.
2709 (hash_type_name): Work for types with vtables during LTO.
2710 (odr_hasher::remove): Fix comment; destroy types_set.
2711 (add_type_duplicate): New function,
2712 (get_odr_type): Use it.
2713 (dump_type_inheritance_graph): Dump type duplicates.
2714 * ipa.c (symtab_remove_unreachable_nodes): Build type inheritance
2715 graph.
2716 * tree.c (types_same_for_odr): Give exact answers on types with
2717 virtual tables.
2718
24ba8195
DS
27192013-09-04 Dodji Seketeli <dodji@redhat.com>
2720
2721 * tree.h (DECL_BUILT_IN, DECL_IS_BUILTIN): Add more comments
2722 explaining their differences.
2723
0a04869e
SKS
27242013-09-04 Sandeep Kumar Singh<Sandeep.Singh2@kpitcummins.com>
2725
2726 * config/rx/rx.h: Add option -mcpu for target variants RX100 and RX200.
2727
3b18bc42
JL
27282013-09-03 Jeff Law <law@redhat.com>
2729
2730 * tree-ssa-threadedge.c (thread_across_edge): Record entire path
2731 when not threading through a joiner block. Pass joiner/no joiner
2732 state to register_jump_thread.
2733 * tree-ssa-threadupdate.c (register_jump_thread): Get joiner/no joiner
2734 state from argument rather than implying on path length.
2735 Dump the entire jump thread path into debugging dump.
2736 * tree-flow.h (register_jump_thread): Update prototype.
2737
ae84e151
XDL
27382013-08-29 Xinliang David Li <davidxl@google.com>
2739
2740 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
2741 Remove a trivial gcc_assert.
2742
c716e67f
XDL
27432013-08-29 Xinliang David Li <davidxl@google.com>
2744
2745 * tree-vect-slp.c (destroy_bb_vec_info): Data ref cleanup.
2746 * tree-vect-loop.c (destroy_bb_vec_info): Ditto.
2747 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
2748 Delay base decl alignment adjustment.
2749 * tree-vectorizer.c (vect_destroy_datarefs): New function.
2750 * tree-vectorizer.h: New data structure.
2751 (set_dr_misalignment): New function.
2752 (dr_misalignment): Ditto.
2753 * tree-vect-stmts.c (vectorizable_store): Ensure alignment.
2754 (vectorizable_load): Ditto.
2755 (ensure_base_align): New function.
2756 (vectorize_loops): Add dbg_cnt support.
2757 (execute_vect_slp): Ditto.
2758 * dbgcnt.def: New debug counter.
2759 * Makefile: New dependency.
2760
db8800bc
MI
27612013-09-03 Meador Inge <meadori@codesourcery.com>
2762
2763 Revert:
2764
2765 2013-08-30 Meador Inge <meadori@codesourcery.com>
2766
2767 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
2768
0d9b4f5c
DE
27692013-09-03 David Edelsohn <dje.gcc@gmail.com>
2770
2771 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Emit lglobl for
2772 function descriptor.
2773
29e810b9
RB
27742013-09-03 Richard Biener <rguenther@suse.de>
2775
2776 * tree-affine.c (add_elt_to_tree): Fix association issue,
2777 avoid useless converts and make sure to always return a
2778 properly typed result.
2779
dbfc2894
RB
27802013-09-03 Richard Biener <rguenther@suse.de>
2781
2782 PR middle-end/57656
2783 * fold-const.c (negate_expr_p): Fix division case.
2784 (negate_expr): Likewise.
2785
fa3bf4ce
RB
27862013-09-03 Richard Biener <rguenther@suse.de>
2787
2788 PR lto/58285
2789 * tree-streamer-out.c: Include tm.h.
2790 * Makefile.in (tree-streamer-out.o): Depend on $(TM_H).
2791
a64bbb3f
JH
27922013-09-03 Jan Hubicka <jh@suse.cz>
2793
2794 * tree-profile.c (tree_profiling): Cleanup CFG when done.
2795
93ed07e2
AM
27962013-09-03 Alan Modra <amodra@gmail.com>
2797
2798 * config.gcc (powerpc*-*-linux*): Add support for little-endian
2799 multilibs to big-endian target and vice versa.
2800 * config/rs6000/t-linux64: Use := assignment on all vars.
2801 (MULTILIB_EXTRA_OPTS): Remove fPIC.
2802 (MULTILIB_OSDIRNAMES): Specify using mapping from multilib_options.
2803 * config/rs6000/t-linux64le: New file.
2804 * config/rs6000/t-linux64bele: New file.
2805 * config/rs6000/t-linux64lebe: New file.
2806
07d6cd64
JH
28072013-09-02 Jan Hubicka <jh@suse.cz>
2808
2809 * ipa-inline-transform.c (inline_transform): Do not
2810 optimize_inline_calls when not optimizing.
2811
8e4c9a10
JH
28122013-09-02 Jan Hubicka <jh@suse.cz>
2813
2814 * lto-symtab.c (lto_symtab_merge_symbols): Add comments; merge
2815 duplicated nodes for assembler names.
2816 * symtab.c (symtab_unregister_node): Do not attempt to unlink
2817 hard registers from assembler name hash.
2818
c91061e6
JH
28192013-09-02 Jan Hubicka <jh@suse.cz>
2820
2821 * ipa-split.c (execute_split_functions): Split externally visible
2822 functions called once.
2823
2fd0985c
MJ
28242013-09-02 Martin Jambor <mjambor@suse.cz>
2825
2826 PR ipa/58106
2827 * ipa-prop.c (ipa_edge_duplication_hook): Always put new rdesc to the
2828 linked list. When finding the correct duplicate, also consider also
2829 the caller in additon to its inlined_to node.
2830
91bd4114
JG
28312013-09-02 James Greenhalgh <james.greenhalgh@arm.com>
2832
2833 * config/aarch64/aarch64-simd-builtins.def
2834 (dup_lane_scalar): Remove.
2835 * config/aarch64/aarch64-simd.md
2836 (aarch64_simd_dup): Add 'w->w' alternative.
2837 (aarch64_dup_lane<mode>): Allow for VALL.
2838 (aarch64_dup_lane_scalar<mode>): Remove.
2839 (aarch64_dup_lane_<vswap_width_name><mode>): New.
2840 (aarch64_get_lane_signed<mode>): Add w->w altenative.
2841 (aarch64_get_lane_unsigned<mode>): Likewise.
2842 (aarch64_get_lane<mode>): Likewise.
2843 * config/aarch64/aarch64.c (aarch64_evpc_dup): New.
2844 (aarch64_expand_vec_perm_const_1): Use aarch64_evpc_dup.
2845 * config/aarch64/iterators.md (VSWAP_WIDTH): New.
2846 (VCON): Change container of V2SF.
2847 (vswap_width_name): Likewise.
2848 * config/aarch64/arm_neon.h
2849 (__aarch64_vdup_lane_any): New.
2850 (__aarch64_vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
2851 (vdup<q>_n_<psuf><8,16,32,64>): Convert to C implementation.
2852 (vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
2853
d617d2d8
EB
28542013-09-02 Eric Botcazou <ebotcazou@adacore.com>
2855
2856 PR middle-end/56382
2857 * expr.c (emit_move_complex): Do not move complex FP values as parts if
2858 the source or the destination is a single hard register.
2859
63fdb7be
RB
28602013-09-02 Richard Biener <rguenther@suse.de>
2861
2862 PR middle-end/57511
2863 * tree-scalar-evolution.c (instantiate_scev_name): Allow
2864 non-linear SCEVs.
2865
78de2333
RB
28662013-09-02 Richard Biener <rguenther@suse.de>
2867
2868 * tree-affine.c (add_elt_to_tree): Avoid converting all pointer
2869 arithmetic to sizetype.
2870
85ff4ec6
BC
28712013-09-02 Bin Cheng <bin.cheng@arm.com>
2872
2873 * tree-ssa-loop-ivopts.c (set_autoinc_for_original_candidates):
2874 Find auto-increment use both before and after candidate.
2875
576016fe
MP
28762013-09-02 Marek Polacek <polacek@redhat.com>
2877
2878 * Makefile.in (ubsan.o): Add $(TM_P_H) dependency.
2879
08f835dc
JH
28802013-09-01 Jan Hubicka <jh@suse.cz>
2881
2882 * Makefile.in: Add ipa-profile.o
2883 (ipa.o, ipa-devrit.o, ipa-inline-analysis.o): Adjust dependencies.
2884 * cgraph.c (struct cgraph_propagate_frequency_data,
2885 cgraph_propagate_frequency_1, cgraph_propagate_frequency): Move to
2886 ipa-profile.c; replace cgraph_ by ipa_ prefix.
2887 * cgraph.h (cgraph_propagate_frequency): Remove.
f43245d1
UB
2888 * ipa-inline-analysis.c: Include ipa-utils.h;
2889 drop duplicated cfgloop.h.
08f835dc
JH
2890 (inline_update_callee_summaries): Update.
2891 * ipa-profile.c: New file.
2892 * ipa-utils.h (ipa_propagate_frequency): Declare.
2893 * ipa.c: Do not include pointer-set.h, hash-table.h, lto-streamer.h,
f43245d1 2894 data-streamer.h, value-prof.h.
08f835dc
JH
2895 (symtab_remove_unreachable_nodes): Update profile.
2896 (struct histogram_entry, histogram, histogram_pool, histogram_hash,
2897 account_time_size, cmp_counts, dump_histogram,
2898 ipa_profile_generate_summary, ipa_profile_write_summary,
2899 ipa_profile_read_summary, ipa_profile, gate_ipa_profile,
2900 pass_data_ipa_profile, pass_ipa_profile, make_pass_ipa_profile):
f43245d1 2901 Move to ipa-profile.c.
08f835dc 2902
cec8583c
JDA
29032013-09-01 John David Anglin <danglin@gcc.gnu.org>
2904
2905 * config/pa/pa.md: Allow "const 0" operand 1 in "scc" insns.
2906
bbc9396b
JH
29072013-09-01 Jan Hubicka <jh@suse.cz>
2908
2909 * common.opt (fdevirtualize-speculatively): New function.
2910 * invoke.texi (fdevirtualize-speculatively): Document.
2911 * ipa-devirt.c: Include ipa-inline.h
2912 (likely_target_p): New function.
2913 (ipa_devirt): New function.
2914 (gate_ipa_devirt): New function.
2915 (pass_data_ipa_devirt): New static var.
2916 (pass_ipa_devirt): Likewise.
2917 (make_pass_ipa_devirt): New function.
2918 * opts.c (default_options): Add OPT_fdevirtualize_speculatively.
2919 (common_handle_option): Disable devirtualization when
2920 value range profiling is available.
2921 * passes.def (pass_ipa_devirt): Add.
2922 * timever.def (TV_IPA_DEVIRT): New timevar.
f43245d1 2923 * tree-pass.h (make_pass_ipa_devirt):
bbc9396b 2924
0cea211e
IS
29252013-09-01 Iain Sandoe <iain@codesourcery.com>
2926
2927 * config/darwin.h (LINK_COMMAND_SPEC_A): Revise sanitizer specs to
2928 include sanitize(undefined).
2929
5e351e96
DN
29302013-08-31 Diego Novillo <dnovillo@google.com>
2931
2932 * Makefile.in (TREE_CORE_H): Define.
2933 (TREE_H): Use.
2934 (GTFILES): Add tree-core.h.
2935 * builtins.c (built_in_class_names): Use BUILT_IN_LAST to
2936 size the array.
2937 * tree-core.h: New file.
2938 Move all data structures, enum, typedefs, global
2939 declarations and constants from ...
2940 * tree.h: ... here.
2941
63bf9a90
JH
29422013-08-31 Jan Hubicka <jh@suse.cz>
2943
2944 * bulitins.c (expand_builtin): Do not early exit for gcov
2945 instrumented functions.
2946
5c0abd6a
MP
29472013-08-31 Marek Polacek <polacek@redhat.com>
2948
2949 * ubsan.c: Include tm_p.h.
2950
4843f032
JH
29512013-08-31 Jan Hubicka <jh@suse.cz>
2952
8356c89c
JH
2953 * gimple-streamer-in.c (input_gimple_stmt): Silence parameter unused
2954 warning.
2955
4843f032
JH
2956 * cgraph.c (cgraph_get_body): Update call of lto_input_function_body.
2957 * gimple-streamer-in.c (input_gimple_stmt): Move sanity check to ...
5e581212 2958 * tree-cfg.c (verify_gimple_label): ... here.
4843f032
JH
2959 * ipa-utils.c: Include lto-streamer.h, ipa-inline.h
2960 (ipa_merge_profiles): New function.
2961 * lto-streamer-in.c (lto_read_body): Take node instead of fn_decl.
2962 (lto_input_function_body): Likewise.
5e581212
JH
2963 * ipa-utils.h (ipa_merge_profiles): Declare.
2964 * lto-streamer.h (lto_input_function_body): Update prototype.
2965 (emit_label_in_global_context_p): Remove.
2966 * lto-symtab.c: Include ipa-utils.h
2967 (lto_cgraph_replace_node): Use ipa_merge_profiles.
4843f032 2968
57292ce9
JH
29692013-08-31 Jan Hubicka <jh@suse.cz>
2970
2971 * cgraph.c (cgraph_speculative_call_info): Fix ref lookup
2972
b9cbfeeb
JH
29732013-08-31 Jan Hubicka <jh@suse.cz>
2974
2975 * basic-block.h (apply_scale): Make scale parmeter gcov_type.
2976
41dedebd
UB
29772013-08-31 Uros Bizjak <ubizjak@gmail.com>
2978
2979 * config/alpha/alpha.c (alpha_emit_conditional_move): Update
2980 "cmp" RTX before signed_comparison_operator check to account
2981 for "code" changes.
2982
06d65050
JH
29832013-08-30 Jan Hubicka <jh@suse.cz>
2984
41dedebd 2985 * ipa-prop.c (ipa_set_jf_known_type): Check that we add only records.
06d65050
JH
2986 (detect_type_change_1): Rename to ...
2987 (detect_type_change): ... this one; early return on non-polymorphic
2988 types.
41dedebd 2989 (detect_type_change_ssa): Add comp_type parameter; update
06d65050
JH
2990 use of detect_type_change.
2991 (compute_complex_assign_jump_func): Add param_type parameter;
2992 update use of detect_type_change_ssa.
2993 (compute_complex_ancestor_jump_func): Likewise.
2994 (ipa_get_callee_param_type): New function.
2995 (ipa_compute_jump_functions_for_edge): Compute parameter type;
2996 update calls to the jump function computation functions.
2997
600b5b1d
TJ
29982013-08-30 Teresa Johnson <tejohnson@google.com>
2999 Steven Bosscher <steven@gcc.gnu.org>
3000
3001 * cfgrtl.c (fixup_new_cold_bb): New routine.
3002 (commit_edge_insertions): Invoke fixup_partitions.
3003 (find_partition_fixes): New routine.
3004 (fixup_partitions): Ditto.
3005 (verify_hot_cold_block_grouping): Update comments.
3006 (rtl_verify_edges): Invoke find_partition_fixes.
3007 (rtl_verify_bb_pointers): Update comments.
3008 (rtl_verify_bb_layout): Ditto.
3009 * basic-block.h (probably_never_executed_edge_p): Declare.
3010 (fixup_partitions): Ditto.
3011 * cfgcleanup.c (try_optimize_cfg): Invoke fixup_partitions.
3012 * bb-reorder.c (sanitize_hot_paths): New function.
3013 (find_rarely_executed_basic_blocks_and_crossing_edges): Invoke
3014 sanitize_hot_paths.
3015 * predict.c (probably_never_executed_edge_p): New routine.
3016 * cfg.c (check_bb_profile): Add partition insanity warnings.
3017
0a6ea5c9
MI
30182013-08-30 Meador Inge <meadori@codesourcery.com>
3019
3020 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
3021
de5a5fa1
MP
30222013-08-30 Marek Polacek <polacek@redhat.com>
3023
3024 * Makefile.in (ubsan.o): Add.
3025 (c-family/c-ubsan.o): Add.
3026 (builtins.o): Add ubsan.h dependency.
3027 * ubsan.h: New file.
3028 * ubsan.c: New file.
3029 * common.opt: Add -fsanitize=undefined option.
3030 (flag_sanitize): Add variable.
3031 (fsanitize=): Add option. Add Driver.
3032 (fsanitize=thread): Remove option.
3033 (fsanitize=address): Likewise.
3034 (static-libubsan): New option.
3035 * doc/invoke.texi: Document the new flag and -static-libubsan.
3036 * sanitizer.def (DEF_SANITIZER_BUILTIN): Define.
3037 (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Define.
3038 * builtin-attrs.def (ATTR_COLD): Define.
3039 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
3040 * builtins.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW,
3041 BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS): Define.
3042 * flag-types.h (sanitize_code): New enum.
3043 * opts.c (common_handle_option): Parse command line arguments
3044 of -fsanitize=. Add -fsanitize=unreachable option.
3045 * varasm.c (get_variable_section): Adjust.
3046 (assemble_noswitch_variable): Likewise.
3047 (assemble_variable): Likewise.
3048 (output_constant_def_contents): Likewise.
3049 (categorize_decl_for_section): Likewise.
3050 (place_block_symbol): Likewise.
3051 (output_object_block): Likewise.
3052 * builtins.def: Likewise.
3053 * toplev.c (compile_file): Likewise.
3054 (process_options): Likewise.
3055 * cppbuiltin.c: Likewise.
3056 * tsan.c (tsan_pass): Likewise.
3057 (tsan_gate): Likewise.
3058 (tsan_gate_O0): Likewise.
3059 * cfgexpand.c (partition_stack_vars): Likewise.
3060 (expand_stack_vars): Likewise.
3061 (defer_stack_allocation): Likewise.
3062 (expand_used_vars): Likewise.
3063 * cfgcleanup.c (old_insns_match_p): Likewise.
3064 * asan.c (asan_finish_file): Likewise.
3065 (asan_instrument): Likewise.
3066 (gate_asan): Likewise.
3067 (initialize_sanitizer_builtins): Build BT_FN_VOID_PTR_PTR_PTR.
3068 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
3069 (asan_global_struct): Use pointer_sized_int_node instead
3070 calling build_nonstandard_integer_type.
3071 (initialize_sanitizer_builtins): Likewise.
3072 (asan_finish_file): Likewise.
3073 * gcc.c: Document %{%:function(args):X}.
3074 (static_spec_functions): Add sanitize.
3075 (handle_spec_function): Add retval_nonnull argument and if non-NULL,
3076 store funcval != NULL there.
3077 (do_spec_1): Adjust handle_spec_function caller.
3078 (handle_braces): Allow %:function(args) as condition.
3079 (sanitize_spec_function): New function.
3080 (ADD_STATIC_LIBUBSAN_LIBS): Define.
3081 (LIBUBSAN_SPEC): Likewise.
3082 (LIBUBSAN_EARLY_SPEC): Likewise.
3083 (SANITIZER_SPEC): Handle libubsan.
3084 (SANITIZER_EARLY_SPEC): Likewise.
3085 * config/darwin.h (LINK_COMMAND_SPEC_A): Use %:sanitize(address)
3086 instead of fsanitize=address.
3087 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Use %:sanitize(address)
3088 instead of fsanitize=address*.
3089 * builtins.c: Include ubsan.h.
3090 (fold_builtin_0): Instrument __builtin_unreachable.
3091 * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Use flag_sanitize
3092 instead of flag_asan.
3093 * tree.h (enum tree_index): Add TI_POINTER_SIZED_TYPE.
3094 (pointer_sized_int_node): Define.
41dedebd 3095 * tree.c (build_common_tree_nodes): Initialize pointer_sized_int_node.
de5a5fa1 3096
f07f30cf
MS
30972013-08-30 Mike Stump <mikestump@comcast.net>
3098
3099 * doc/install.texi (Prerequisites): Note regression in Tcl 8.6
3100 with RE patterns.
3101
8a41354f
JH
31022013-08-29 Jan Hubicka <jh@suse.cz>
3103
3104 * cgraph.c (cgraph_function_body_availability): Handle weakref
3105 correctly.
3106 * passes.def: Remove pass_fixup_cfg.
3107 * ipa-inline.c (ipa_inline): When not optimizing, do not inline;
3108 track when we need to remove functions.
3109 (gate_ipa_inline): Execute inlining always; add comment why.
3110 (pass_data_ipa_inline): Remove TODO_remove_functions.
3111 * ipa-inline-analysis.c (inline_generate_summary): When not optimizing
3112 do not produce summaries.
3113 * symtab.c (change_decl_assembler_name): Handle renaming of weakrefs.
3114 (symtab_nonoverwritable_alias): Assert we are not called on weakref.
3115 * varpool.c (cgraph_variable_initializer_availability): Fix weakrefs,
3116 constant pool and vtable.
3117
dc8d7a0f
TB
31182013-08-30 Tejas Belagod <tejas.belagod@arm.com>
3119
41dedebd
UB
3120 * config/aarch64/arm_neon.h (__AARCH64_UINT64_C, __AARCH64_INT64_C):
3121 New arm_neon.h's internal macros to specify 64-bit constants.
3122 Avoid using stdint.h's macros.
dc8d7a0f 3123
ac7eacd2
JR
31242013-08-30 Joern Rennecke <joern.rennecke@embecosm.com>
3125
3126 * recog.c (verify_changes): Verify that changes[i].old is non-zero
3127 before applying REG_P.
3128
8b29fd4e
JJ
31292013-08-30 Jakub Jelinek <jakub@redhat.com>
3130
3131 PR tree-optimization/58277
3132 * tree-ssa-strlen.c (strlen_enter_block): If do_invalidate gave up
3133 after seeing too many stmts with vdef in between dombb and current
3134 bb, invalidate everything.
3135
26d75703
RB
31362013-08-30 Richard Biener <rguenther@suse.de>
3137
3138 * fold-const.c (fold_single_bit_test): Fix overflow test.
3139
f7e088e7
EB
31402013-08-30 Eric Botcazou <ebotcazou@adacore.com>
3141
3142 * function.c (assign_parm_setup_reg): For a parameter passed by pointer
3143 and which can live in a register, always retrieve the value on entry.
3144 * var-tracking.c (add_stores): Treat the copy on entry for a parameter
3145 passed by invisible reference specially.
3146 (emit_notes_in_bb) <MO_VAL_USE>: Emit notes before the instruction.
3147 (vt_add_function_parameter): Correctly deal with a parameter passed by
3148 invisible reference.
3149
31502013-08-30 Jan Hubicka <jh@suse.cz>
47500756
JH
3151
3152 * tree.c (set_call_expr_flags): Fix handling of TM_PURE.
3153
6e8dad05
RB
31542013-08-30 Richard Biener <rguenther@suse.de>
3155
3156 PR tree-optimization/58228
3157 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Do not
3158 allow invariant loads in nested loop vectorization.
3159
062ef2c8
RB
31602013-08-30 Richard Biener <rguenther@suse.de>
3161
3162 PR tree-optimization/58223
3163 * tree-loop-distribution.c (has_anti_dependence): Rename to ...
3164 (has_anti_or_output_dependence): ... this and adjust to also
3165 look for output dependences.
3166 (mark_nodes_having_upstream_mem_writes): Adjust.
3167 (rdg_flag_uses): Likewise.
3168
7a764c60
RB
31692013-08-30 Richard Biener <rguenther@suse.de>
3170
3171 PR tree-optimization/58010
3172 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
3173 assert that we have a loop-closed PHI.
3174
82e9d642
JH
31752013-08-29 Jan Hubicka <jh@suse.cz>
3176
3177 * lto-symtab.c (lto_cgraph_replace_node): Free decl_in_state.
3178 * cgraph.c (cgraph_release_function_body): Free decl_in_state.
3179 * lto-section-in.c (lto_free_function_in_decl_state): New function.
3180 (lto_free_function_in_decl_state_for_node): New function.
3181
9cc1fb4b
XDL
31822013-08-29 Xinliang David Li <davidxl@google.com>
3183
41dedebd 3184 * loop-unroll.c (report_unroll_peel): Minor message change.
9cc1fb4b
XDL
3185 * tree-vect-loop-manip.c (vect_do_peeling_for_alignment):
3186 Emit alignment peeling message with default -fopt-info.
3187 (vect_loop_versioning): Emit loop version info message.
41dedebd 3188 * tree-vectorizer.c (vectorize_loops): Minor message change.
9cc1fb4b
XDL
3189 (execute_vect_slp): Ditto.
3190
440a5082
EB
31912013-08-29 Eric Botcazou <ebotcazou@adacore.com>
3192
3193 * cgraphclones.c (cgraph_create_virtual_clone): Compute the DECL_NAME
3194 of the clone from the DECL_NAME of the original function.
3195
3fa3690d
OE
31962013-08-29 Oleg Endo <olegendo@gcc.gnu.org>
3197
3198 * passes.c (register_pass): Add overload.
3199 * tree-pass.h (register_pass): Forward declare it. Add comment.
3200
0170f33c
JH
32012013-08-29 Jan Hubicka <jh@suse.cz>
3202
41dedebd
UB
3203 * lto-streamer-out.c (hash_tree): Stream DECL_FINAL_P,
3204 DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P and TYPE_FINAL_P.
3205 * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Stream
3206 DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
0170f33c
JH
3207 (unpack_ts_type_common_value_fields): Stream TYPE_FINAL_P.
3208 * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields):
41dedebd 3209 Add DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
0170f33c
JH
3210 (pack_ts_type_common_value_fields): Add TYPE_FINAL_P.
3211
103ff0d6
TJ
32122013-08-29 Teresa Johnson <tejohnson@google.com>
3213
3214 * dumpfile.c (dump_loc): Output column number.
3215 * dumpfile.h (OPTGROUP_OTHER): Add and enable under OPTGROUP_ALL.
3216 * doc/invoke.texi: Document optall -fopt-info flag.
3217 * profile.c (read_profile_edge_counts): Use new dump framework.
3218 (compute_branch_probabilities): Ditto.
3219 * passes.c (pass_manager::register_one_dump_file): Use OPTGROUP_OTHER
3220 when pass not in any opt group.
3221 * pass_manager.h (pass_manager::get_pass_profile): New method.
3222 * value-prof.c (check_counter): Use new dump framework.
3223 (check_ic_target): Ditto.
3224 * coverage.c (get_coverage_counts): Ditto.
3225 (coverage_init): Setup new dump framework.
3226
301bbc16
RB
32272013-08-29 Richard Biener <rguenther@suse.de>
3228
3229 PR tree-optimization/58246
3230 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Properly
3231 handle the dominance check inside a basic-block.
3232
1b275000
RB
32332013-08-29 Richard Biener <rguenther@suse.de>
3234
3235 PR middle-end/57287
3236 * tree-ssa-copy.c (may_propagate_copy): Allow propagating
3237 of default defs that appear in abnormal PHI nodes.
3238
6b1184ba
RB
32392013-08-29 Richard Biener <rguenther@suse.de>
3240
3241 PR tree-optimization/57685
3242 * tree-vrp.c (register_edge_assert_for_1): Recurse only for
3243 single-use operands to avoid exponential complexity.
3244
1b08b734
DC
32452013-08-28 Dehao Chen <dehao@google.com>
3246
3247 * ipa-inline.c (edge_badness): Fix integer underflow.
3248
48a3fa69
UB
32492013-08-28 Uros Bizjak <ubizjak@gmail.com>
3250
3251 * gtm-builtins.def (_ITM_free): Declare leaf.
3252
215f73e6
JJ
32532013-08-28 Jakub Jelinek <jakub@redhat.com>
3254
3255 PR target/58067
3256 * config/i386/i386.md (*tls_global_dynamic_64_largepic): New insn.
3257 (*tls_local_dynamic_base_64_largepic): Likewise.
3258 (tls_global_dynamic_64_<mode>, tls_local_dynamic_base_64_<mode>):
3259 Remove predicate from call operand.
3260 * config/i386/i386.c (ix86_tls_get_addr): For -mcmodel=large -fpic
3261 return sum of pic_offset_table_rtx and UNSPEC_PLTOFF of the symbol.
3262
34554d1a
JL
32632013-08-28 Jeff Law <law@redhat.com>
3264
3265 * tree-ssa-threadedge.c (thread_around_empty_block): Remove
3266 checks for the number of predecessors and successors allowed.
3267 * tree-ssa-threadupdate.c (mark_threaded_blocks): Ignore requests
3268 which require copying a joiner block if there is a request which
3269 is a subpath that requires no joiner block copying.
3270
c01c111b
JH
32712013-08-28 Jan Hubicka <jh@suse.cz>
3272
3273 * lto-streamer-out.c (DFS_write_tree_body): Drop
3274 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX and BINFO_VPTR_INDEX.
3275 (hash_tree): Do not hash DECL_DEFER_OUTPUT, BINFO_INHERITANCE_CHAIN,
3276 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, DECL_IN_TEXT_SECTION.
3277 * tree-streamer-in.c (unpack_ts_decl_common_value_fields):
3278 Do not read DECL_ERROR_ISSUED.
3279 (unpack_ts_decl_with_vis_value_fields): Do not read
3280 DECL_DEFER_OUTPUT.
48a3fa69
UB
3281 (lto_input_ts_binfo_tree_pointers): Do not read
3282 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX
c01c111b
JH
3283 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Do not
3284 write DECL_ERROR_ISSUED..
3285 (pack_ts_decl_with_vis_value_fields): Do not write
3286 DECL_DEFER_OUTPUT.
3287 (write_ts_binfo_tree_pointers): Do not read BINFO_INHERITANCE_CHAIN,
48a3fa69 3288 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX.
c01c111b
JH
3289 * print-tree.c (print_node): Do not print DECL_ERROR_ISSUED.
3290 * tree.h (tree_decl_common): Update comment.
3291 (DECL_ERROR_ISSUED): Remove.
3292
4b128ece
JJ
32932013-08-28 Jakub Jelinek <jakub@redhat.com>
3294
3295 PR middle-end/58257
3296 * omp-low.c (copy_var_decl): Copy over TREE_NO_WARNING flag.
3297
12211b99 32982013-08-28 Jan Hubicka <jh@suse.cz>
9e57846a
JH
3299
3300 * builtins.def (free): Declare leaf.
3301
8dce4dbc
DM
33022013-08-27 David Malcolm <dmalcolm@redhat.com>
3303
3304 * gdbhooks.py: New.
3305 * configure.ac (gdbinit.in): Add import of gcc/gdbhooks.py.
3306 * configure: Regenerate.
3307
b8f6e610
MJ
33082013-08-27 Martin Jambor <mjambor@suse.cz>
3309
3310 * ipa-prop.h (ipa_pass_through_data): New field type_preserved.
3311 (ipa_ancestor_jf_data): Likewise.
3312 (ipa_get_jf_pass_through_agg_preserved): Fix comment typo.
3313 (ipa_get_jf_pass_through_type_preserved): New function.
3314 (ipa_get_jf_ancestor_agg_preserved): Fix comment typo.
3315 (ipa_get_jf_ancestor_type_preserved): New function.
12211b99 3316 * ipa-cp.c (ipa_get_jf_pass_through_result): Honor type_preserved flag.
b8f6e610
MJ
3317 (ipa_get_jf_ancestor_result): Likewise.
3318 (propagate_vals_accross_pass_through): Use
3319 ipa_get_jf_pass_through_result to do all the value mappings.
3320 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Dump the
3321 type_preserved flag.
3322 (ipa_set_jf_cst_copy): New function.
3323 (ipa_set_jf_simple_pass_through): Set the type_preserved flag.
3324 (ipa_set_jf_arith_pass_through): Likewise.
3325 (ipa_set_ancestor_jf): Likewise.
3326 (compute_complex_assign_jump_func): Set type_preserved instead of
3327 punting.
3328 (ipa_compute_jump_functions_for_edge): Likewise.
3329 (combine_known_type_and_ancestor_jfs): Honor type_preserved.
3330 (update_jump_functions_after_inlining): Update type_preserved.
12211b99 3331 Explicitely create jump functions when combining one with pass_through.
b8f6e610
MJ
3332 (ipa_write_jump_function): Stream the type_preserved flags.
3333 (ipa_read_jump_function): Likewise.
3334
74bf76ed
JJ
33352013-08-27 Jakub Jelinek <jakub@redhat.com>
3336 Aldy Hernandez <aldyh@redhat.com>
3337
3338 * Makefile.in (omp-low.o): Depend on $(TARGET_H).
3339 * cfgloop.h (struct loop): Add safelen, force_vect, simduid.
3340 * function.h (struct function): Add has_force_vect_loops and
3341 has_simduid_loops.
12211b99 3342 * gimple-pretty-print.c (dump_gimple_omp_for): Handle GF_OMP_FOR_KIND*.
74bf76ed
JJ
3343 * gimple.c (gimple_build_omp_critical): Add KIND argument and
3344 handle it.
3345 * gimple.def: Update CLAUSES comments.
3346 * gimple.h (enum gf_mask): Add GF_OMP_FOR_KIND_{FOR,SIMD}.
3347 (gimple_build_omp_for): Add argument to prototype.
3348 (gimple_omp_for_kind): New.
3349 (gimple_omp_for_set_kind): New.
3350 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_LINEAR to
3351 GOVD_DATA_SHARE_CLASS.
3352 (enum omp_region_type): Add ORT_SIMD.
3353 (gimple_add_tmp_var): Handle ORT_SIMD.
3354 (gimplify_var_or_parm_decl): Same.
3355 (is_gimple_stmt): Same.
3356 (omp_firstprivatize_variable): Same.
3357 (omp_add_variable): Only use splay_tree_insert if lookup failed.
3358 (omp_notice_variable): Handle ORT_SIMD.
12211b99 3359 (omp_is_private): Add SIMD argument and handle it as well as ORT_SIMD.
74bf76ed
JJ
3360 (omp_check_private): Handle ORT_SIMD.
3361 (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_LINEAR and
3362 OMP_CLAUSE_SAFELEN.
3363 (gimplify_adjust_omp_clauses_1): Handle GOVD_LINEAR.
3364 Handle OMP_CLAUSE_LASTPRIVATE.
3365 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_LINEAR and
3366 OMP_CLAUSE_SAFELEN.
3367 (gimplify_omp_for): Handle OMP_SIMD and OMP_CLAUSE_LINEAR.
3368 (gimplify_expr): Handle OMP_SIMD.
3369 * internal-fn.c (expand_GOMP_SIMD_LANE): New.
3370 (expand_GOMP_SIMD_VF): New.
3371 (expand_GOMP_SIMD_LAST_LANE): New.
3372 * internal-fn.def (GOMP_SIMD_LANE): New.
3373 (GOMP_SIMD_VF): New.
3374 (GOMP_SIMD_LAST_LANE): New.
3375 * omp-low.c: Include target.h.
3376 (extract_omp_for_data): Handle OMP_SIMD, OMP_CLAUSE_LINEAR,
3377 OMP_CLAUSE_SAFELEN.
3378 (check_omp_nesting_restrictions): Same.
3379 (omp_max_vf): New.
3380 (lower_rec_simd_input_clauses): New.
3381 (lower_rec_input_clauses): Handle OMP_SIMD, GF_OMP_FOR_KIND_SIMD,
3382 OMP_CLAUSE_LINEAR.
3383 (lower_lastprivate_clauses): Handle OMP_CLAUSE_LINEAR,
3384 GF_OMP_FOR_KIND_SIMD, OMP_SIMD.
3385 (expand_omp_build_assign): New.
3386 (expand_omp_for_init_counts): New.
3387 (expand_omp_for_init_vars): New.
3388 (extract_omp_for_update_vars): New.
3389 (expand_omp_for_generic): Use expand_omp_for_{init,update}_vars
3390 and rewrite accordingly.
3391 (expand_omp_simd): New.
3392 (expand_omp_for): Use expand_omp_simd.
3393 (lower_omp_for_lastprivate): Unshare vinit when appropriate.
3394 (lower_omp_for): Do not lower the body.
3395 * tree-data-ref (get_references_in_stmt): Allow IFN_GOMP_SIMD_LANE
3396 in their own loops.
3397 * tree-flow.h (find_omp_clause): Remove prototype.
12211b99
UB
3398 * tree-if-conv.c (main_tree_if_conversion): Run if doing if conversion,
3399 forcing vectorization of the loop, or if flag_tree_vectorize.
74bf76ed
JJ
3400 (gate_tree_if_conversion): Similarly.
3401 * tree-inline.c (remap_gimple_stmt): Pass for kind argument to
3402 gimple_build_omp_for.
3403 (copy_cfg_body): set has_force_vect_loops and has_simduid_loops.
3404 * tree-parloops (create_parallel_loop): Pass kind argument to
3405 gimple_build_omp_for.
3406 * tree-pretty-print.c (dump_omp_clause): Add cases for
3407 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_LINEAR, OMP_CLAUSE_SAFELEN,
3408 OMP_CLAUSE__SIMDUID_.
3409 (dump_generic_node): Handle OMP_SIMD.
3410 * tree-ssa-ccp.c (likely_value): Handle IFN_GOMP_SIMD*.
3411 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Do not
3412 unroll OMP_SIMD loops here.
12211b99 3413 * tree-ssa-loop.c (gate_tree_vectorize): Run if has_force_vect_loops.
74bf76ed 3414 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Handle
12211b99 3415 loop->safelen.
74bf76ed
JJ
3416 (vect_analyze_data_refs): Handle simd loops.
3417 * tree-vect-loop.c (vectorizable_live_operation): Handle
3418 IFN_GOMP_SIMD*.
12211b99 3419 * tree-vect-stmts.c (vectorizable_call): Handle IFN_GOMP_SIMD_LANE.
74bf76ed
JJ
3420 (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P.
3421 (vectorizable_load): Same.
12211b99 3422 * tree-vectorizer.c: Include hash-table.h and tree-ssa-propagate.h.
74bf76ed
JJ
3423 (struct simduid_to_vf): New.
3424 (simduid_to_vf::hash): New.
3425 (simduid_to-vf::equal): New.
3426 (struct simd_array_to_simduid): New.
3427 (simd_array_to_simduid::hash): New.
3428 (simd_array_to_simduid::equal): New.
3429 (adjust_simduid_builtins): New.
3430 (struct note_simd_array_uses_struct): New.
3431 (note_simd_array_uses_cb): New.
3432 (note_simd_array_uses): New.
3433 (vectorize_loops): Handle simd hints and adjust simd builtins
3434 accordingly.
3435 * tree-vectorizer.h (struct _stmt_vec_info): Add
3436 simd_lane_access_p field.
3437 (STMT_VINFO_SIMD_LANE_ACCESS_P): New macro.
3438 * tree.c (omp_clause_num_ops): Add entries for OMP_CLAUSE_LINEAR,
3439 OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_UNIFORM.
3440 (omp_clause_code_name): Same.
3441 (walk_tree_1): Handle OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN,
3442 OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_LINEAR.
3443 * tree.def (OMP_SIMD): New entry.
12211b99
UB
3444 * tree.h (enum omp_clause_code): Add entries for OMP_CLAUSE_LINEAR,
3445 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_.
74bf76ed
JJ
3446 (OMP_CLAUSE_DECL): Adjust range for new clauses.
3447 (OMP_CLAUSE_LINEAR_NO_COPYIN): New.
3448 (OMP_CLAUSE_LINEAR_NO_COPYOUT): New.
3449 (OMP_CLAUSE_LINEAR_STEP): New.
3450 (OMP_CLAUSE_SAFELEN_EXPR): New.
3451 (OMP_CLAUSE__SIMDUID__DECL): New.
3452 (find_omp_clause): New prototype.
3453
d0cf4e84
L
34542013-08-27 H.J. Lu <hongjiu.lu@intel.com>
3455
3456 * config/i386/driver-i386.c (host_detect_local_cpu): Update
3457 Haswell processor detection.
3458
992592ec
CW
34592013-08-27 Christian Widmer <shadow@umbrox.de>
3460
3461 PR target/57927
3462 * config/i386/driver-i386.c (host_detect_local_cpu): Add detection
3463 of Ivy Bridge and Haswell processors. Assume core-avx2 for unknown
3464 AVX2 capable processors.
3465
9116eb22
TB
34662013-08-27 Tejas Belagod <tejas.belagod@arm.com>
3467
3468 * config/aarch64/arm_neon.h: Replace all inline asm implementations
3469 of vget_low_* with implementations in terms of other intrinsics.
3470
1c5abb53
MG
34712013-08-27 Marc Glisse <marc.glisse@inria.fr>
3472
3473 PR middle-end/57219
3474 * doc/extend.texi (__builtin_isinf_sign): Restrict the return
3475 values to -1, 0 and 1.
3476
2e100703
VP
34772013-08-27 Vidya Praveen <vidyapraveen@arm.com>
3478
3479 * config/aarch64/aarch64.md (unspec): Add UNSPEC_SISD_SSHL,
3480 UNSPEC_SISD_USHL, UNSPEC_USHL_2S, UNSPEC_SSHL_2S, UNSPEC_SISD_NEG.
3481 (<optab><mode>3_insn): Remove.
3482 (aarch64_ashl_sisd_or_int_<mode>3): New Pattern.
3483 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
3484 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
3485 (define_split for aarch64_lshr_sisd_or_int_di3): Likewise.
3486 (define_split for aarch64_lshr_sisd_or_int_si3): Likewise.
3487 (define_split for aarch64_ashr_sisd_or_int_di3): Likewise.
3488 (define_split for aarch64_ashr_sisd_or_int_si3): Likewise.
3489 (aarch64_sisd_ushl, aarch64_sisd_sshl): Likewise.
3490 (aarch64_ushl_2s, aarch64_sshl_2s, aarch64_sisd_neg_qi): Likewise.
3491 (ror<mode>3_insn): Likewise.
3492 * config/aarch64/predicates.md (aarch64_simd_register): New.
3493
4ded8276
RB
34942013-08-27 Richard Biener <rguenther@suse.de>
3495
3496 PR tree-optimization/57521
3497 * tree-if-conv.c (if_convertible_bb_p): Verify that at least
3498 one edge is non-critical.
3499 (find_phi_replacement_condition): Make sure to use a non-critical
3500 edge. Cleanup and remove old bug workarounds.
3501 (bb_postdominates_preds): Remove.
3502 (if_convertible_loop_p_1): Do not compute post-dominators.
3503 (combine_blocks): Do not free post-dominators.
3504 (main_tree_if_conversion): Likewise.
3505 (pass_data_if_conversion): Add TODO_verify_ssa.
3506
5aa11061
DD
35072013-08-27 DJ Delorie <dj@redhat.com>
3508
3509 * config/i386/djgpp.h (ASM_DECLARE_FUNCTION_NAME): New.
3510
fd91cfe3
YZ
35112013-08-27 Yufeng Zhang <yufeng.zhang@arm.com>
3512
3513 * function.c (assign_parm_find_data_types): Set passed_mode and
3514 nominal_mode to the TYPE_MODE of nominal_type for the built
3515 pointer type in case of the struct-pass-by-reference.
3516
907555ce
JR
35172013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
3518
3519 * config/avr/avr-stdint.h (INT16_TYPE): Change default to "int".
3520 (UINT16_TYPE): Change default to "unsigned int".
3521
67518c93
JR
3522 * config/avr/avr.opt (mfract-convert-truncate): New option.
3523 * config/avr/avr.c (avr_out_fract): Unless TARGET_FRACT_CONV_TRUNC
3524 is set, round negative fractional integers according to n1169
3525 when converting to integer types.
3526
d6d989fc
JH
35272013-08-26 Jan Hubicka <jh@suse.cz>
3528
3529 * cgraph.c (cgraph_propagate_frequency): Do not assume that virtual
3530 methods can not be called indirectly when their address is not taken.
3531
2aa3da06
JH
35322013-08-26 Jan Hubicka <jh@suse.cz>
3533
12211b99
UB
3534 * gimple-fold.c (gimple_get_virt_method_for_binfo): Use
3535 ctor_for_folding.
2aa3da06 3536
0987ffe7
JH
35372013-08-26 Jan Hubicka <jh@suse.cz>
3538
3539 * ipa.c (comdat_can_be_unshared_p_1): C++ constructors and destructors
3540 can be unshared.
3541
befe8647
JR
35422013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
3543
3544 * reload.c (find_valid_class): Allow classes that do not include
3545 FIRST_PSEUDO_REGISTER - 1.
3546
a21e735e
JH
35472013-08-26 Jan Hubicka <jh@suse.cz>
3548
3549 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix formatting;
3550 fix edge count/frequency when speculation failed; fix type check
3551 for the direct call.
3552
e067bd43
JH
35532013-08-26 Jan Hubicka <jh@suse.cz>
3554
3555 * ipa-prop.c (ipa_print_node_params): Do not ICE during WPA.
3556
e8aec975
JH
35572013-08-26 Jan Hubicka <jh@suse.cz>
3558
3559 * ipa-inline-transform.c (inline_transform): Be ready for basic block
3560 to be changed by edge redirection.
3561
d0b66480
JH
35622013-08-26 Jan Hubicka <jh@suse.cz>
3563
12211b99
UB
3564 * cgraph.c (cgraph_speculative_call_info): Fix parameter order and
3565 formating; add sanity check.
d0b66480
JH
3566 (cgraph_resolve_speculation): Add FIXME about scaling profiles.
3567 (cgraph_redirect_edge_call_stmt_to_callee): Fix ICE in debug dump.
3568 * ipa-inline.c (heap_edge_removal_hook): Reset node growth cache.
3569 (resolve_noninline_speculation): Update callee keys, too.
3570
0f9aaac7
JH
35712013-08-26 Jan Hubicka <jh@suse.cz>
3572
3573 * tree.h (tree_decl_with_vis): Add cxx_constructor, cxx_destructor.
3574 (DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P): New macros.
3575
4b37444e
JR
35762013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
3577
3578 * config/i386/i386.c (x86_64_elf_select_section): Put ATTRIBUTE_UNUSED
3579 into proper place.
3580
5339fc0c
UB
35812013-08-26 Uros Bizjak <ubizjak@gmail.com>
3582
3583 * config/i386/i386.c (ix86_debug_options): Remove prototype.
3584 (x86_64_elf_select_section): Ditto.
3585 (ix86_handle_tm_regparm_attribute): Remove ATTRIBUTE_UNUSED on used
3586 arguments.
3587 (ix86_pass_by_reference): Ditto.
5339fc0c
UB
3588 (output_set_got): Ditto.
3589 (ix86_unary_operator_ok): Ditto.
3590 (ix86_expand_builtin): Ditto.
3591
d5c3d3ef
JH
35922013-08-23 Jan Hubicka <jh@suse.cz>
3593
5339fc0c 3594 * cgraph.c (cgraph_turn_edge_to_speculative): Fix debug output.
d5c3d3ef 3595
5b1e7435
JH
35962013-08-23 Jan Hubicka <jh@suse.cz>
3597
3598 * tree.h (TYPE_FINAL_P, DECL_FINAL_P): New macros.
3599 (tree_decl_with_vis): Add FINAL field.
3600
ead69dac
JL
36012013-08-23 Jeff Law <law@redhat.com>
3602
3603 * tree-ssa-pre.c (do_regular_insertion): Include the expression in
3604 the debugging dump when the expression is fully redundant.
3605
025311c4
GDR
36062013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
3607
3608 * diagnostic.c (diagnostic_set_caret_max_width): Use pp_buffer.
3609 * gimple-pretty-print.c (gimple_dump_bb_buff): Likewise.
3610 * pretty-print.c (pp_formatted_text_data): Likewise.
3611 (pp_write_text_to_stream): Likewise.
3612 (pp_write_text_as_dot_label_to_stream): Likewise.
3613 (pp_append_r): Likewise.
3614 (pp_format): Likewise.
3615 (pp_flush): Likewise.
3616 (pp_clear_output_area): Likewise.
3617 (pp_append_text): Likewise.
3618 (pp_formatted_text): Likewise.
3619 (pp_remaining_character_count_for_line): Likewise.
3620 (pp_newline): Likewise.
3621 (pp_character): Likewise.
3622 (output_buffer::~output_buffer): Define.
3623 (pretty_printer::~pretty_printer): Destruct output buffer.
3624 * pretty-print.h (output_buffer::~output_buffer): Declare.
3625 (pretty_printer::~pretty_printer): Declare virtual.
3626
0cadbfaa
MG
36272013-08-24 Marc Glisse <marc.glisse@inria.fr>
3628
3629 PR other/57324
3630 * hwint.h (HOST_WIDE_INT_UC, HOST_WIDE_INT_1U, HOST_WIDE_INT_M1,
3631 HOST_WIDE_INT_M1U): New macros.
3632 * fold-const.c (sign_bit_p, build_range_check, fold_unary_loc,
3633 fold_binary_loc, fold_ternary_loc): Use the new macros. Use an
3634 unsigned -1 for lshift.
3635 * cse.c (cse_insn): Likewise.
3636 * double-int.c (rshift_double, lshift_double): Likewise.
3637 * builtins.c (fold_builtin_bitop): Likewise.
3638 * combine.c (force_to_mode): Likewise.
3639 * tree.c (integer_pow2p, tree_log2, tree_floor_log2): Likewise.
3640 * simplify-rtx.c (simplify_const_unary_operation,
3641 simplify_const_binary_operation): Likewise.
3642 * tree-stdarg.c (va_list_counter_bump, va_list_ptr_read,
3643 check_va_list_escapes): Likewise.
3644 * rtlanal.c (nonzero_bits1): Likewise.
3645 * expmed.c (expand_smod_pow2): Likewise.
3646 * tree-ssa-structalias.c (UNKNOWN_OFFSET): Use HOST_WIDE_INT_MIN.
3647
009e5353
JH
36482013-08-23 Jan Hubicka <jh@suse.cz>
3649
3650 * cgraph.c (cgraph_turn_edge_to_speculative): Mark target node
3651 as having address taken.
3652
c4be6568
JH
36532013-08-23 Jan Hubicka <jh@suse.cz>
3654
64cbf23d
JH
3655 * ipa-utils.h (method_class_type): Declare.
3656 * ipa-devirt.c (method_class_type): Export.
3657
c4be6568
JH
3658 * cgraphunit.c (analyze_functions): Do basic devirtualization;
3659 do not walk base classes of anonymous types.
3660
97aba8e9
KK
36612013-08-23 Kaz Kojima <kkojima@gcc.gnu.org>
3662
3663 PR rtl-optimization/58220
3664 PR regression/58221
3665 * final.c (reemit_insn_block_notes): Use NEXT_INSN to
3666 handle SEQUENCE insns properly.
3667
0fc80001
GDR
36682013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
3669
3670 * pretty-print.h (pp_newline_and_flush): Declare. Remove macro
3671 definition.
3672 (pp_newline_and_indent): Likewise.
3673 (pp_separate_with): Likewise.
3674 * pretty-print.c (pp_newline_and_flush): Define.
3675 (pp_newline_and_indent): Likewise.
3676 (pp_separate_with): Likewise.
3677
520a5868
JJ
36782013-08-23 Jakub Jelinek <jakub@redhat.com>
3679
3680 PR target/58218
3681 * config/i386/x86-64.h (TARGET_SECTION_TYPE_FLAGS): Define.
3682 * config/i386/i386.c (x86_64_elf_section_type_flags): New function.
3683
e500c62a
KY
36842013-08-23 Kirill Yukhin <kirill.yukhin@intel.com>
3685
f43245d1
UB
3686 * config/i386/predicates.md (ext_sse_reg_operand): New.
3687 * config/i386/i386.md (*movti_internal): Use
e500c62a
KY
3688 predicate to determine if EVEX is needed.
3689 (*movsi_internal): Ditto.
3690 (*movdf_internal): Ditto.
3691 (*movsf_internal): Ditto.
f43245d1 3692 * config/i386/mmx.md (*mov<mode>_internal): Ditto.
e500c62a 3693
6b00d7dd
JJ
36942013-08-23 Jakub Jelinek <jakub@redhat.com>
3695
3696 PR tree-optimization/58209
3697 * tree-tailcall.c (process_assignment): Handle POINTER_PLUS_EXPR.
3698 (find_tail_calls): Give up for pointer result types if m is non-NULL.
3699 (adjust_return_value_with_ops): For PLUS_EXPR and pointer result type
3700 emit POINTER_PLUS_EXPR.
3701 (create_tailcall_accumulator): For pointer result type accumulate in
3702 sizetype type.
3703
4f2a9f90
PC
37042013-08-22 Paolo Carlini <paolo.carlini@oracle.com>
3705
3706 * configure.ac: Add backslashes missing from the last change.
3707 * configure: Regenerate.
3708
7bf4274e
JH
37092013-08-22 Jan Hubicka <jh@susue.cz>
3710
4f2a9f90
PC
3711 * ipa.c (function_and_variable_visibility): First remember function
3712 was global and then make it local.
7bf4274e 3713
1bea243d
JB
37142013-08-22 Julian Brown <julian@codesourcery.com>
3715
3716 * configure.ac: Add aarch64 to list of arches which use "nop" in
3717 debug_line test.
3718 * configure: Regenerate.
3719
bcba7ecc
AK
37202013-08-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3721
3722 * config/s390/linux.h (TARGET_LIBC_HAS_FUNCTION): Define as
3723 gnu_libc_has_function.
3724 * config/s390/tpf.h: Likewise.
3725
4c495b0d
JH
37262013-08-22 Jan Hubicka <jh@susue.cz>
3727
3728 * timevar.c (validate_phases): Add cast.
3729
5e302bca
JH
37302013-08-22 Jan Hubicka <jh@susue.cz>
3731
3732 * timevar.c (validate_phases): Use size_t for memory.
3733 * timevar.h (struct timevar_time_def): Use size_t for ggc_mem.
3734
da6ca2b5
GDR
37352013-08-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
3736
3737 * pretty-print.h (output_buffer::output_buffer): Declare.
3738 (pretty_printer::pretty_printer): Likewise.
3739 (pp_construct): Remove.
3740 * pretty-print.c (output_buffer::output_buffer): Define.
3741 (pretty_printer::pretty_printer): Rename from pp_construct. Simplify.
3742 * gimple-pretty-print.c (print_gimple_stmt): Do not call pp_construct.
3743 (print_gimple_expr): Likewise.
3744 (print_gimple_seq): Likewise.
3745 (gimple_dump_bb): Likewise.
3746 * sched-vis.c (dump_value_slim): Likewise.
3747 (dump_insn_slim): Likewise.
3748 (dump_rtl_slim): Likewise.
3749 (str_pattern_slim): Likewise.
3750 * tree-mudflap.c (mf_varname_tree): Likewise.
3751 * graph.c (print_graph_cfg): Likewise.
3752 (start_graph_dump): Likewise.
3753 * tree-pretty-print.c (maybe_init_pretty_print): Likewise. Use
3754 placement-new.
3755 * diagnostic.c (diagnostic_initialize): Simplify early diagnostic
3756 pretty printer initialization.
3757 * coretypes.h (diagnostic_context): Remove superflous type alias
3758 declaration.
3759 (pretty_printer): Likewise. Declare directly as a class.
3760 (pretty_print_info): Remove declaration as class.
3761 * asan.c (asan_emit_stack_protection): Remove call to pp_construct
3762 and pp_clear_output_area.
3763 (asan_add_global): Likewise.
3764
0e1474e5
JH
37652013-08-22 Jan Hubicka <jh@suse.cz>
3766
3767 * cgraphunit.c (analyze_functions) Use update_type_inheritance_graph.
3768 * ipa-utils.h (update_type_inheritance_graph): Declare.
3769 (possible_polymorphic_call_target_p): Declare.
3770 (possible_polymorphic_call_target_p): New.
3771 * ipa-devirt.c: Update toplevel comments.
3772 (cached_polymorphic_call_targets): Move up.
3773 (odr_type_d): Move ID down.
3774 (polymorphic_type_binfo_p): Update comment.
3775 (odr_hasher::remove): Likewise;
3776 (get_odr_type): Set anonymous_namespace.
3777 (dump_odr_type): Dump it.
3778 (dump_type_inheritance_graph): Do not ICE when there are no ODR types.
3779 (maybe_record_node): Record node in cached_polymorphic_call_targets.
3780 (record_binfo): Add comment.
5339fc0c
UB
3781 (free_polymorphic_call_targets_hash): Do not ICE when cache is not
3782 built.
0e1474e5
JH
3783 (devirt_node_removal_hook): Do not iCE when cache is freed.
3784 (possible_polymorphic_call_target_p): New predicate.
3785 (update_type_inheritance_graph): New function.
3786
3f97cb0b
AI
37872013-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
3788 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
3789 Sergey Lega <sergey.s.lega@intel.com>
3790 Anna Tikhonova <anna.tikhonova@intel.com>
3791 Ilya Tocar <ilya.tocar@intel.com>
3792 Andrey Turetskiy <andrey.turetskiy@intel.com>
3793 Ilya Verbin <ilya.verbin@intel.com>
3794 Kirill Yukhin <kirill.yukhin@intel.com>
3795 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
3796
3797 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_SET): New.
3798 (OPTION_MASK_ISA_AVX512CD_SET): Ditto.
3799 (OPTION_MASK_ISA_AVX512PF_SET): Ditto.
3800 (OPTION_MASK_ISA_AVX512ER_SET): Ditto.
3801 (OPTION_MASK_ISA_AVX2_UNSET): Update.
3802 (OPTION_MASK_ISA_AVX512F_UNSET): New.
3803 (OPTION_MASK_ISA_AVX512CD_UNSET): Ditto.
3804 (OPTION_MASK_ISA_AVX512PF_UNSET): Ditto.
3805 (OPTION_MASK_ISA_AVX512ER_UNSET): Ditto.
3806 (ix86_handle_option): Handle OPT_mavx512f, OPT_mavx512cd,
3807 OPT_mavx512pf, OPT_mavx512er cases.
3808 * config/i386/constraints.md (v): New constraint.
3809 (Yi, Yj): Replace SSE_REGS with ALL_SSE_REGS.
3810 * config/i386/cpuid.h (bit_AVX512F, bit_AVX512PF, bit_AVX512ER)
3811 (bit_AVX512CD): New.
3812 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
3813 AVX512F, AVX512ER, AVX512PF, AVX512CD features.
3814 * config/i386/i386-c.c (ix86_target_macros_internal):
3815 Conditionally define __AVX512F__, __AVX512ER__, __AVX512CD__,
3816 __AVX512PF__.
3817 * config/i386/i386-modes.def (VECTOR_MODES (INT, 128))
3818 (VECTOR_MODES (FLOAT, 128), INT_MODE (XI, 64)): New modes.
3819 * config/i386/i386.c (regclass_map, dbx_register_map)
3820 (dbx64_register_map, svr4_dbx_register_map): Add new SSE registers.
3821 (gate_insert_vzeroupper): Disable vzeroupper for TARGET_AVX512F.
3822 (ix86_target_string): Define -mavx512f, -mavx512er, -mavx512cd,
3823 -mavx512pf options.
3824 (ix86_option_override_internal): Define PTA_AVX512F, PTA_AVX512ER,
3825 PTA_AVX512PF, PTA_AVX512CD. Handle -mavx512f, -mavx512er, -mavx512cd,
3826 -mavx512pf options. Fix formatting.
3827 (ix86_conditional_register_usage): Squash EXT_REX_SSE_REGs for 32-bit
3828 targets. Squash EVEX_SSE_REGS if AVX512F is disabled.
3829 (ix86_valid_target_attribute_inner_p): Handle -mavx512f, -mavx512er,
3830 -mavx512cd, -mavx512pf options.
3831 (standard_sse_constant_opcode): Add vpternlogd for 512-bit modes.
3832 (print_reg, ix86_print_operand): Handle 'g' to output 512-bit operands.
3833 (ix86_preferred_output_reload_class): Replace SSE_REGS with
3834 ALL_SSE_REGS.
3835 (ix86_hard_regno_mode_ok): Support 512-bit registers.
3836 (ix86_set_reg_reg_cost): Ditto.
3837 (x86_order_regs_for_local_alloc): Ditto.
3838 (MAX_VECT_LEN): Extend to 64-byte.
3839 (ix86_spill_class): Replace SSE_REGS with ALL_SSE_REGS.
3840 * config/i386/i386.h (TARGET_AVX512F, TARGET_AVX512PF)
3841 (TARGET_AVX512ER, TARGET_AVX512CD): New.
3842 (BIGGEST_ALIGNMENT): Extend to 512-bits.
3843 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS): Add new registers.
3844 (CALL_USED_REGISTERS, REG_ALLOC_ORDER): Likewise.
3845 (VALID_AVX512F_SCALAR_MODE, VALID_AVX512F_REG_MODE): New.
3846 (SSE_REG_MODE_P): Support new modes.
3847 (FIRST_MMX_REG, FIRST_REX_INT_REG, FIRST_REX_SSE_REG): Add comments.
3848 (FIRST_EXT_REX_SSE_REG, LAST_EXT_REX_SSE_REG): New.
3849 (reg_class, REG_CLASS_NAMES): Add EVEX_SSE_REGS, ALL_SSE_REGS.
3850 (SSE_CLASS_P, MAYBE_SSE_CLASS_P): Replace SSE_REGS with ALL_SSE_REGS.
3851 (REG_CLASS_CONTENTS): Add new registers.
3852 (SSE_REGNO_P, SSE_REGNO, HARD_REGNO_RENAME_OK): Support new registers.
3853 (EXT_REX_SSE_REGNO_P): New.
3854 (HI_REGISTER_NAMES): Add new registers.
3855 * config/i386/i386.md: Define constants for new registers.
3856 (mode): Add new 512-bit modes.
3857 (prefix): Support evex prefix.
3858 (isa): Support avx512f, noavx512f, fma_avx512f.
3859 (ssemodesuffix): Add new 512-bit modes.
3860 (movxi): New.
3861 (*movxi_internal_avx512f): Ditto.
3862 (*movdi_internal): Replace constraint "x" with the new constraint "v".
3863 Support MODE_XI.
3864 (*movsi_internal): Likewise.
3865 (*movdf_internal): Likewise.
3866 (*movsf_internal): Likewise.
3867 (*fop_<mode>_comm_sse): Replace constraint "x" with new constraint "v".
3868 (<code><mode>3): Likewise.
5339fc0c
UB
3869 * config/i386/i386.opt (mavx512f, mavx512pf, mavx512er, mavx512cd):
3870 New.
3f97cb0b
AI
3871 * config/i386/mmx.md (*mov<mode>_internal): Replace constraint "x"
3872 with the new constraint "v".
3873 * config/i386/sse.md (*mov<mode>_internal): Support new registers and
3874 modes.
3875 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Replace constraint "x"
3876 with the new constraint "v".
3877 (<sse2>_loaddqu<avxsizesuffix>): Likewise.
3878 (<sse2>_storedqu<avxsizesuffix>): Likewise.
3879 (*<plusminus_insn><mode>3): Likewise.
3880 (<sse>_vm<plusminus_insn><mode>3): Likewise.
3881 (*mul<mode>3): Likewise.
3882 (<sse>_vmmul<mode>3): Likewise.
3883 (<sse>_div<mode>3): Likewise.
3884 (<sse>_vmdiv<mode>3): Likewise.
3885 (<sse>_sqrt<mode>2): Likewise.
3886 (<sse>_vmsqrt<mode>2): Likewise.
3887 (*<code><mode>3_finite): Likewise.
3888 (*<code><mode>3) <smaxmin>: Likewise.
3889 (<sse>_vm<code><mode>3): Likewise.
3890 (*<code><mode>3) <any_logic>: Likewise.
3891 (*fma_fmadd_<mode>): Likewise.
3892 (*fma_fmsub_<mode>): Likewise.
3893 (*fma_fnmadd_<mode>): Likewise.
3894 (*fma_fnmsub_<mode>): Likewise.
3895 (*fma_fmaddsub_<mode>): Likewise.
3896 (*fma_fmsubadd_<mode>): Likewise.
3897 (*fmai_fmadd_<mode>): Likewise.
3898 (*fmai_fmsub_<mode>): Likewise.
3899 (*fmai_fnmadd_<mode>): Likewise.
3900 (*fmai_fnmsub_<mode>): Likewise.
3901 (sse_cvtsi2ss): Likewise.
3902 (sse_cvtsi2ssq): Likewise.
3903 (sse_cvtss2si): Likewise.
3904 (sse_cvtss2si_2): Likewise.
3905 (sse_cvtss2siq): Likewise.
3906 (sse_cvtss2siq_2): Likewise.
3907 (sse_cvttss2si): Likewise.
3908 (sse_cvtss2siq_2): Likewise.
3909 (float<sseintvecmodelower><mode>2): Likewise.
3910 (sse2_cvtsd2si_2): Likewise.
3911 (sse2_cvtsd2siq_2): Likewise.
3912 (*<plusminus_insn><mode>3): Likewise.
3913 (*<sse2_avx2>_<plusminus_insn><mode>3): Likewise.
3914 (*<sse4_1_avx2>_mul<mode>3): Likewise.
3915 (ashr<mode>3): Likewise.
3916 (<shift_insn><mode>3): Likewise.
3917 (avx2_<code><mode>3): Likewise.
3918 (*avx2_<code><mode>3): Likewise.
3919 (*andnot<mode>3): Likewise.
3920 (*<code><mode>3) <any_logic>: Likewise.
3921 (abs<mode>2): Likewise.
3922 (avx2_permvar<mode>): Likewise.
3923 (avx2_perm<mode>_1): Likewise.
3924 (*avx_vpermilp<mode>): Likewise.
3925 (avx_vpermilvar<mode>3): Likewise.
3926 (avx2_ashrv<mode>): Likewise.
3927 (avx2_<shift_insn>v<mode>): Likewise.
3928 * doc/invoke.texi: Document -mavx512f, -mavx512pf, -mavx512er,
3929 -mavx512cd.
3930 * doc/rtl.texi: Document XImode.
3931
dd5e8423
JL
39322013-08-21 Jeff Law <law@redhat.com>
3933
b9ebee5d
JL
3934 * tree-flow.h (register_jump_thread): Pass vector of edges
3935 instead of each important edge.
3936 * tree-ssa-threadedge.c (thread_across_edge): Build the jump
3937 thread path into a vector and pass that to register_jump_thread.
3938 * tree-ssa-threadupdate.c (register_jump_thread): Conver the
3939 passed in edge vector to the current 3-edge form.
3940
dd5e8423
JL
3941 Revert:
3942 2013-08-20 Alexey Makhalov <makhaloff@gmail.com>
3943
9bb6628e 3944 * dce.c (fini_dce): Call df_analyze again just in case
dd5e8423
JL
3945 delete_unmarked_insns removed anything.
3946
445dc8df
JR
39472013-08-21 Joern Rennecke <joern.rennecke@embecosm.com>
3948
3949 * reload.h (struct reg_equivs): Rename to ..
3950 (struct reg_equivs_s): .. this.
3951
e0df53dd
ML
39522013-08-20 Martin Liska <marxin.liska@gmail.com>
3953
3954 * ipa.c (ipa_profile_read_summary): Fix buffer overflow.
3955
e7d1d3eb
RO
39562013-08-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3957
5339fc0c 3958 * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Don't nest comment.
e7d1d3eb 3959
5562e26e
JL
39602013-08-21 Jeff Law <law@redhat.com>
3961
3962 * tree-vrp.c (simplify_stmt_for_jump_threading): Try to
3963 simplify assignments too. If the RHS collapses to a singleton
3964 range, then return the value for the range.
3965
c7ecdec6
KY
39662013-08-21 Kirill Yukhin <kirill.yukhin@intel.com>
3967
3968 * config/i386/sse.md (V16): Rename to...
3969 (VMOVE): this.
3970 (mov<mode>): Update iterator name.
3971 (*mov<mode>_internal): Ditto.
3972 (push<mode>1): Ditto.
3973 (movmisalign<mode>): Ditto.
3974
bfa3b50a
JH
39752013-08-20 Jan Hubicka <jh@suse.cz>
3976
3977 PR bootstrap/58186
3978 * cgraph.c (cgraph_add_edge_to_call_site_hash): Overwrite hash
3979 entry for direct edges.
3980 (cgraph_turn_edge_to_speculative): Fix setting of can_throw_external.
3981
6cd4d135
DM
39822013-08-20 David Malcolm <dmalcolm@redhat.com>
3983
3984 Revert my last two changes, r201865 and r201864:
3985
3986 Revert r201865:
3987 2013-08-20 David Malcolm <dmalcolm@redhat.com>
3988
3989 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
3990 instances can own GC refs.
3991
3992 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
3993 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
3994 (gcc::context::gt_pch_nx): Likewise.
3995 (gcc::context::gt_pch_nx): Likewise.
3996 * ggc.h (gt_ggc_mx <T>): New.
3997 (gt_pch_nx_with_op <T>): New.
3998 (gt_pch_nx <T>): New.
3999 * passes.c (opt_pass::gt_ggc_mx): New.
4000 (opt_pass::gt_pch_nx): New.
4001 (opt_pass::gt_pch_nx_with_op): New.
4002 (pass_manager::gt_ggc_mx): New.
4003 (pass_manager::gt_pch_nx): New.
4004 (pass_manager::gt_pch_nx_with_op): New.
4005 (pass_manager::operator new): Use
4006 ggc_internal_cleared_alloc_stat rather than xcalloc.
4007 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
4008 (pass_manager::gt_ggc_mx): New.
4009 (pass_manager::gt_pch_nx): New.
4010 (pass_manager::gt_pch_nx_with_op): New.
4011 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
4012 (opt_pass::operator new): New.
4013 (opt_pass::gt_ggc_mx): New.
4014 (opt_pass::gt_pch_nx): New.
4015 (opt_pass::gt_pch_nx_with_op): New.
4016
4017 Revert r201864:
4018 2013-08-20 David Malcolm <dmalcolm@redhat.com>
4019
4020 * Makefile.in (GTFILES): Add context.h.
4021 * context.c (gcc::context::operator new): New.
4022 (gcc::context::gt_ggc_mx): New.
4023 (gcc::context::gt_pch_nx): New.
4024 (gcc::context::gt_pch_nx): New.
4025 * context.h (gcc::context): Add GTY((user)) marking.
4026 (gcc::context::operator new): New.
4027 (gcc::context::gt_ggc_mx): New.
4028 (gcc::context::gt_pch_nx): New.
4029 (gcc::context::gt_pch_nx): New.
4030 (g): Add GTY marking.
4031 (gt_ggc_mx (gcc::context *)): New.
4032 (gt_pch_nx (gcc::context *)): New.
4033 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
4034 void *cookie)): New.
4035 * gengtype.c (open_base_files) <ifiles>: Add context.h.
4036
a046136a
AM
40372013-08-20 Alexey Makhalov <makhaloff@gmail.com>
4038
4039 * dce.c (fini_dce): Call df_analyze again just in case
4040 delete_unmarked_insns removed anything.
4041
67598720
TJ
40422013-08-20 Teresa Johnson <tejohnson@google.com>
4043
4044 PR rtl-optimizations/57451
4045 * final.c (reemit_insn_block_notes): Prevent lexical blocks
4046 from crossing split section boundaries.
4047
f8693faf
MGD
40482013-08-20 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
4049
4050 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Remove definition.
4051 * config/arm/t-linux-eabi (MULTILIB_OPTIONS): Document association
4052 with MULTLIB_DEFAULTS.
4053
7d0b9a9c
NC
40542013-08-20 Nick Clifton <nickc@redhat.com>
4055
4056 * target.def (narrow_volatile_bitfield): Note that the default
4057 value is false, not !TARGET_STRICT_ALIGN.
4058 * doc/tm.texi: Regenerate.
4059
8edb8dc8
PC
40602013-08-20 Pavel Chupin <pavel.v.chupin@intel.com>
4061
4062 Fix LIB_SPEC for systems without libpthread.
4063
4064 * config/gnu-user.h: Introduce GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC.
4065 * config/arm/linux-eabi.h: Use GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC
4066 for Android.
4067 * config/i386/linux-common.h: Likewise.
4068 * config/mips/linux-common.h: Likewise.
4069
12211b99 40702013-08-20 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
d71ff3fa
ZZ
4071
4072 * tree-ssa-ccp.c (get_default_value): Remove redundant condition
4073 checks.
4074
e42c64cb
DM
40752013-08-20 David Malcolm <dmalcolm@redhat.com>
4076
4077 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
4078 instances can own GC refs.
4079
4080 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
4081 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
4082 (gcc::context::gt_pch_nx): Likewise.
4083 (gcc::context::gt_pch_nx): Likewise.
4084 * ggc.h (gt_ggc_mx <T>): New.
4085 (gt_pch_nx_with_op <T>): New.
4086 (gt_pch_nx <T>): New.
4087 * passes.c (opt_pass::gt_ggc_mx): New.
4088 (opt_pass::gt_pch_nx): New.
4089 (opt_pass::gt_pch_nx_with_op): New.
4090 (pass_manager::gt_ggc_mx): New.
4091 (pass_manager::gt_pch_nx): New.
4092 (pass_manager::gt_pch_nx_with_op): New.
4093 (pass_manager::operator new): Use
4094 ggc_internal_cleared_alloc_stat rather than xcalloc.
4095 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
4096 (pass_manager::gt_ggc_mx): New.
4097 (pass_manager::gt_pch_nx): New.
4098 (pass_manager::gt_pch_nx_with_op): New.
4099 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
4100 (opt_pass::operator new): New.
4101 (opt_pass::gt_ggc_mx): New.
4102 (opt_pass::gt_pch_nx): New.
4103 (opt_pass::gt_pch_nx_with_op): New.
4104
910c02a0
DM
41052013-08-20 David Malcolm <dmalcolm@redhat.com>
4106
4107 * Makefile.in (GTFILES): Add context.h.
4108 * context.c (gcc::context::operator new): New.
4109 (gcc::context::gt_ggc_mx): New.
4110 (gcc::context::gt_pch_nx): New.
4111 (gcc::context::gt_pch_nx): New.
4112 * context.h (gcc::context): Add GTY((user)) marking.
4113 (gcc::context::operator new): New.
4114 (gcc::context::gt_ggc_mx): New.
4115 (gcc::context::gt_pch_nx): New.
4116 (gcc::context::gt_pch_nx): New.
4117 (g): Add GTY marking.
4118 (gt_ggc_mx (gcc::context *)): New.
4119 (gt_pch_nx (gcc::context *)): New.
4120 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
4121 void *cookie)): New.
4122 * gengtype.c (open_base_files) <ifiles>: Add context.h.
4123
af4b4236
AM
41242013-08-20 Alan Modra <amodra@gmail.com>
4125
4126 PR target/57865
4127 * config/rs6000/rs6000.c (rs6000_emit_prologue): Correct ool_adjust.
4128 (rs6000_emit_epilogue): Likewise.
4129
12211b99 41302013-08-19 Dehao Chen <dehao@google.com>
0d633222
DC
4131
4132 * value-prof.c (gimple_ic): Fix the bug of adding EH edge.
4133
e2323f5b
PB
41342013-08-19 Peter Bergner <bergner@vnet.ibm.com>
4135 Jakub Jelinek <jakub@redhat.com>
4136
4137 * builtins.def (BUILT_IN_FABSD32): New DFP ABS builtin.
4138 (BUILT_IN_FABSD64): Likewise.
4139 (BUILT_IN_FABSD128): Likewise.
4140 * builtins.c (expand_builtin): Add support for new DFP ABS builtins.
4141 (fold_builtin_1): Likewise.
5339fc0c
UB
4142 * config/rs6000/dfp.md (*negtd2_fpr): Handle non-overlapping
4143 destination and source operands.
e2323f5b
PB
4144 (*abstd2_fpr): Likewise.
4145 (*nabstd2_fpr): Likewise.
4146
cfbf3ee8
RS
41472013-08-19 Richard Sandiford <rdsandiford@googlemail.com>
4148
4149 * config/mips/mips.c (mips_adjust_insn_length): Add checks for
4150 JUMP_P and INSN_P.
4151
d3136aeb
AH
41522013-08-19 Aldy Hernandez <aldyh@redhat.com>
4153
4154 * doc/invoke.texi (-fcilkplus): Clarify that implementation is
4155 incomplete.
4156
d33d9e47
AI
41572013-08-19 Alexander Ivchenko <alexander.ivchenko@intel.com>
4158
4159 * target.def (TARGET_LIBC_HAS_FUNCTION): New target hook.
4160 * builtins.c (default_libc_has_function): New.
4161 (gnu_libc_has_function): Ditto.
4162 (no_c99_libc_has_function): Ditto.
4163 (expand_builtin_cexpi): Using new target hook TARGET_LIBC_HAS_FUNCTION
4164 instead of TARGET_HAS_SINCOS and TARGET_C99_FUNCTIONS.
4165 (fold_builtin_sincos): Likewise.
4166 (fold_builtin_cexp): Likewise.
4167 * builtins.def (DEF_C94_BUILTIN): Likewise.
4168 (DEF_C99_BUILTIN): Likewise.
4169 (DEF_C99_C90RES_BUILTIN): Likewise.
4170 (DEF_C99_COMPL_BUILTIN): New define. Change all complex c99 builtin
4171 definitions to using this define.
4172 * config/darwin-protos.h (darwin_libc_has_function): New.
5339fc0c 4173 * config/darwin.c (darwin_libc_has_function): Ditto.
d33d9e47
AI
4174 * config/alpha/linux.h: Remove TARGET_C99_FUNCTIONS and
4175 TARGET_HAS_SINCOS. Redefine TARGET_LIBC_HAS_FUNCTION.
4176 * config/darwin.h: Ditto.
4177 * config/elfos.h: Ditto.
4178 * config/freebsd.h: Ditto.
4179 * config/i386/cygming.h: Ditto.
4180 * config/i386/djgpp.h: Ditto.
4181 * config/i386/i386-interix.h: Ditto.
4182 * config/microblaze/microblaze.h: Ditto.
4183 * config/mmix/mmix.h: Ditto.
4184 * config/gnu-user.h: Ditto.
4185 * config/ia64/hpux.h: Ditto.
4186 * config/pa/pa-hpux.h: Ditto.
4187 * config/pdp11/pdp11.h: Ditto.
4188 * config/picochip/picochip.h: Ditto.
4189 * config/linux.h: Ditto.
4190 * config/netbsd.h: Ditto.
4191 * config/openbsd.h: Ditto.
4192 * config/rs6000/aix43.h: Ditto.
4193 * config/rs6000/aix51.h: Ditto.
4194 * config/rs6000/aix52.h: Ditto.
4195 * config/rs6000/aix53.h: Ditto.
4196 * config/rs6000/aix61.h: Ditto.
4197 * config/rs6000/darwin.h: Ditto.
4198 * config/rs6000/linux.h: Ditto.
4199 * config/rs6000/linux64.h: Ditto.
4200 * config/s390/tpf.h: Ditto.
4201 * config/sol2-10.h: Ditto.
4202 * config/sol2.h: Ditto.
4203 * config/vms/vms.h: Ditto.
4204 * config/vxworks.h: Ditto.
4205 * config/linux-android.c (linux_android_libc_has_function):
4206 New linux-specific implementation of TARGET_LIBC_HAS_FUNCTION.
4207 * config/linux-protos.h (linux_android_libc_has_function):
4208 New declaration.
4209 * config/i386/i386.c (ix86_libc_has_function): New.
4210 * config/i386/i386-protos.h
4211 (ix86_libc_has_function): New declaration.
4212 * config/i386/i386.md
4213 ("isinfxf2"): Change condition for TARGET_LIBC_HAS_FUNCTION.
4214 ("isinf<mode>2): Likewise.
4215 * convert.c (convert_to_integer): Using new target hook
4216 TARGET_LIBC_HAS_FUNCTION istead of TARGET_HAS_SINCOS and
4217 TARGET_C99_FUNCTIONS.
4218 * fortran/f95-lang.c (gfc_init_builtin_functions): Ditto.
4219 * tree-ssa-math-opts.c (execute_cse_sincos): Ditto.
4220 * coretypes.h (function_class): New enum for different
4221 classes of functions.
4222 * defaults.h: Remove TARGET_C99_FUNCTIONS and TARGET_HAS_SINCOS.
4223 * doc/tm.texi.in (TARGET_C99_FUNCTIONS): Remove documentation.
4224 (TARGET_HAS_SINCOS): Likewise.
4225 (TARGET_LIBC_HAS_FUNCTION): New.
4226 * doc/tm.texi: Regenerated.
4227 * targhooks.h (default_libc_has_function): New declaration.
4228 (no_c99_libc_has_function): Ditto.
4229 (gnu_libc_has_function): Ditto.
4230 * system.h: Add the poisoning of TARGET_C99_FUNCTIONS
4231 and TARGET_HAS_SINCOS.
4232
eefe9a99
JH
42332013-08-18 Jan Hubicka <jh@suse.cz>
4234
4235 * Makeifle-in (ipa-devirt.o): New.
4236 (GTFILES): Add ipa-utils.h and ipa-devirt.c
4237 * cgraphunit.c (decide_is_symbol_needed): Do not care about virtuals.
4238 (analyze_functions): Look into possible targets of polymorphic call.
4239 * dumpfile.c (dump_files): Add type-inheritance dump.
4240 * dumpfile.h (TDI_inheritance): New.
4241 * ipa-devirt.c: New file.
4242 * ipa-utils.h (odr_type_d): Forward declare.
4243 (odr_type): New type.
4244 (build_type_inheritance_graph): Declare.
4245 (possible_polymorphic_call_targets): Declare and introduce inline
4246 variant when only edge is pased.
4247 (dump_possible_polymorphic_call_targets): Likewise.
4248 * timevar.def (TV_IPA_INHERITANCE, TV_IPA_VIRTUAL_CALL): New.
4249 * tree.c (type_in_anonymous_namespace_p): Break out from ...
4250 (types_same_for_odr): ... here.
4251 * tree.h (type_in_anonymous_namespace_p): Declare.
4252
29b89442
JJ
42532013-08-18 Jakub Jelinek <jakub@redhat.com>
4254
4255 PR tree-optimization/58006
4256 * tree-parloops.c (take_address_of): Don't ICE if get_name
4257 returns NULL.
4258 (eliminate_local_variables_stmt): Remove clobber stmts.
4259
4f219961
EB
42602013-08-18 Eric Botcazou <ebotcazou@adacore.com>
4261
4262 * cgraphunit.c (handle_alias_pairs): Reset the alias flag after the
4263 error message is issued for an alias to undefined symbol.
4264
1d5755ef
JH
42652013-08-18 Jan Hubicka <jh@suse.cz>
4266
4267 * cgraph.c (cgraph_create_indirect_edge): Discover
4268 polymorphic calls and record basic info into indirect_info.
4269 * gimple-fold.c (gimple_fold_call): When doing BINFO based
4270 devirtualization, ignore objc function calls.
4271 * ipa-cp.c (initialize_node_lattices): Be ready for polymorphic
4272 call with no parm index info.
4273 * ipa-prop.c (ipa_analyze_call_uses): Likewise.
4274 * tree.c (virtual_method_call_p): New function.
4275 * tree.h (virtual_method_call_p): Declare.
4276
5945bebf
JH
42772013-08-16 Jan Hubicka <jh@suse.cz>
4278
4279 PR middle-end/58179
4280 * tree.c (obj_type_ref_class): Do not ICE on non-method calls.
4281
47fa5d23
DE
42822013-08-16 David Edelsohn <dje.gcc@gmail.com>
4283
4284 * config/rs6000/rs6000.md (rs6000_get_timebase_ppc32): Add length
4285 attribute.
4286
c74f54a0
DM
42872013-08-16 David Malcolm <dmalcolm@redhat.com>
4288
4289 * gengtype.c (type_for_name): Add special-case support for
4290 locating types within the "gcc::" namespace.
4291 (open_base_files): Emit a "using namespace gcc" directive.
4292
f758f299
MM
42932013-08-16 Michael Meissner <meissner@linux.vnet.ibm.com>
4294
4295 PR target/58160
4296 * config/rs6000/predicates.md (fusion_gpr_mem_load): Allow the
4297 memory rtx to contain ZERO_EXTEND and SIGN_EXTEND.
4298
4299 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Pass operands
4300 array instead of each individual operand as a separate argument.
4301 (emit_fusion_gpr_load): Likewise.
4302 (expand_fusion_gpr_load): Add new function declaration.
4303
4304 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change the calling
4305 signature to have the operands passed as an array, instead of as
4306 separate arguments. Allow ZERO_EXTEND to be in the memory
4307 address, and also SIGN_EXTEND if -mpower8-fusion-sign. Do not
4308 depend on the register live/dead flags when peepholes are run.
4309 (expand_fusion_gpr_load): New function to be called from the
4310 peephole2 pass, to change the register that addis sets to be the
4311 target register.
4312 (emit_fusion_gpr_load): Change the calling signature to have the
4313 operands passed as an array, instead of as separate arguments.
4314 Allow ZERO_EXTEND to be in the memory address, and also
4315 SIGN_EXTEND if -mpower8-fusion-sign.
4316
4317 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): Delete unused
4318 unspec enumeration.
4319 (power8 fusion peephole/peephole2): Rework the fusion peepholes to
4320 adjust the register addis loads up in the peephole2 pass. Do not
5339fc0c 4321 depend on the register live/dead state when the peephole pass is done.
f758f299 4322
158f4e4f
DM
43232013-08-16 David Malcolm <dmalcolm@redhat.com>
4324
4325 * gengtype.c (create_user_defined_type): Ensure that the kind
4326 is set to TYPE_USER_STRUCT, fixing a bug seen when an incomplete
4327 declaration is seen before the GTY((user)) marking.
4328
22f8cea5
BE
43292013-08-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
4330
4331 PR target/58105
4332 * config/i386/i386.c (make_resolver_func): Set DECL_UNINLINABLE.
4333
c49bdb2e
JH
43342013-08-16 Jan Hubicka <jh@suse.cz>
4335
4336 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Add new
4337 arugment expected_type.
4338 (gimple_fold_call): Use it.
4339 * gimple.h (gimple_extract_devirt_binfo_from_cst): Update prototype.
4340 * ipa-cp.c (ipa_get_indirect_edge_target_1): Update.
22f8cea5 4341 * ipa-prop.c (ipa_analyze_virtual_call_uses): Use obj_type_ref_class.
c49bdb2e
JH
4342 (try_make_edge_direct_virtual_call): Likewise.
4343 * tree.c (obj_type_ref_class): New.
4344 * tree.h (obj_type_ref_class): Use it.
4345
4042dca9
GDR
43462013-08-16 Gabriel Dos Reis <gdr@integrable-solutions.net>
4347
4348 * sched-vis.c (rtl_slim_pp_initialized): Remove.
4349 (rtl_slim_pp): Likewise.
4350 (init_rtl_slim_pretty_print): Likewise.
4351 (dump_value_slim): Don't call it. Use local pretty printer.
4352 (dump_insn_slim): Likewise.
4353 (dump_rtl_slim): Likewise.
4354 (str_pattern_slim): Likewise.
4355 * tree-mudflap.c (mf_varname_tree): Use local pretty printer.
4356 Simplify.
4357
7a460594
JJ
43582013-08-16 Jakub Jelinek <jakub@redhat.com>
4359
639dc669
JJ
4360 PR tree-optimization/58164
4361 * gimple.c (walk_stmt_load_store_addr_ops): For visit_addr
4362 walk gimple_goto_dest of GIMPLE_GOTO.
4363
7a460594
JJ
4364 PR tree-optimization/58165
4365 * tree-call-cdce.c (shrink_wrap_one_built_in_call): If
4366 bi_call must be the last stmt in a bb, don't split_block, instead
4367 use fallthru edge from it and give up if there is none.
4368 Release conds vector when returning early.
4369
e3c02cc7
XDL
43702013-08-14 Xinliang David Li <davidxl@google.com>
4371
4372 * config/i386/i386.c (ix86_option_override_internal):
4373 Remove unused variable and field.
4374
6469da2c
BS
43752013-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4376
4377 PR target/57949
22f8cea5 4378 * doc/invoke.texi: Add documentation of mcompat-align-parm option.
6469da2c
BS
4379 * config/rs6000/rs6000.opt: Add mcompat-align-parm option.
4380 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): For AIX
4381 and Linux, correct BLKmode alignment when 128-bit alignment is
4382 required and compatibility flag is not set.
22f8cea5
BE
4383 (rs6000_gimplify_va_arg): For AIX and Linux, honor specified alignment
4384 for zero-size arguments when compatibility flag is not set.
6469da2c 4385
4ca890e2
JJ
43862013-08-14 Jakub Jelinek <jakub@redhat.com>
4387
4388 PR tree-optimization/58145
4389 * tree-sra.c (build_ref_for_offset): If prev_base has
4390 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS, propagate it to MEM_REF.
4391
daec1759 43922013-08-14 Xinliang David Li <davidxl@google.com>
4ca890e2 4393
daec1759 4394 * config/i386/i386.c (ix86_option_override_internal):
e3c02cc7 4395 Fix uninitialized variable error.
daec1759 4396
3ad20bd4
XDL
43972013-08-14 Xinliang David Li <davidxl@google.com>
4398
4399 * config/i386/i386.opt: Define two new options.
4400 * config/i386/x86-tune.def: Add arch selector field in macros.
4401 * config/i386/i386.h: Adjust macro definition.
4402 * config/i386/i386.c (ix86_option_override_internal):
4403 Refactor the code.
4404 (parse_mtune_ctrl_str): New function.
4405 (set_ix86_tune_features): New function.
4406 (ix86_function_specific_restore): Call the new helper function.
4407
e839e2a9
AB
44082013-08-14 Andrey Belevantsev <abel@ispras.ru>
4409
4410 PR rtl-optimization/57662
4411 * sel-sched.c (code_motion_process_successors): When the current insn
4412 is removed after the recursive traversal, break from the loop.
4413 Add comments and debug printouts.
4414
27ed665f
JJ
44152013-08-14 Jakub Jelinek <jakub@redhat.com>
4416 Alexandre Oliva <aoliva@redhat.com>
4417
4418 PR target/58067
4419 * config/i386/i386.c (ix86_delegitimize_address): For CM_MEDIUM_PIC
4420 and CM_LARGE_PIC ix86_cmodel fall thru into the -m32 code, handle
4421 there also UNSPEC_PLTOFF.
4422
61c1a609
MP
44232013-08-14 Marek Polacek <polacek@redhat.com>
4424
4425 * ipa-inline-analysis.c (add_clause): Avoid shifting integer
4426 NUM_CONDITIONS bit positions.
4427
0e901c67
CC
44282013-08-13 Cary Coutant <ccoutant@google.com>
4429
4430 * dwarf2out.c (CHECKSUM_BLOCK): New macro.
4431 (attr_checksum): Hash vector contents instead of pointer.
4432 (attr_checksum_ordered): Likewise.
4433
061eff6d
UB
44342013-08-13 Uros Bizjak <ubizjak@gmail.com>
4435
4436 * config/i386/sse.md (*sse2_maskmovdqu): Emit addr32 prefix
4437 when Pmode != word_mode. Add length_address attribute.
4438 (sse3_monitor_<mode>): Merge from sse3_monitor and
4439 sse3_monitor64_<mode> insn patterns. Emit addr32 prefix when
4440 Pmode != word_mode. Update insn length attribute.
4441 * config/i386/i386.c (ix86_option_override_internal): Update
4442 ix86_gen_monitor selection for merged sse3_monitor insn.
4443
8ec9249b
JB
44442013-08-13 Julian Brown <julian@codesourcery.com>
4445
4446 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
4447 perform invalid legitimization on greater-than-word-size modes for
4448 TARGET_E500_DOUBLE.
4449
761a8eb7
VM
44502013-08-13 Vladimir Makarov <vmakarov@redhat.com>
4451
4452 * ira.c (setup_class_translate_array): Use aclass instead of cl
4453 for classes not fully covered by allocno classes.
4454
99c2bd54
JJ
44552013-08-13 Jakub Jelinek <jakub@redhat.com>
4456
4029a5e0
JJ
4457 PR tree-optimization/57661
4458 * tree-inline.h (struct copy_body_data): Add blocks_to_copy field.
4459 * tree-inline.c (tree_function_versioning): Initialize it.
4460 (remap_gimple_stmt): Return GIMPLE_NOP for MEM_REF lhs clobber stmts
4461 if id->blocks_to_copy and MEM_REF's SSA_NAME is defined in a block
4462 that is not being copied.
4463
99c2bd54
JJ
4464 PR sanitizer/56417
4465 * asan.c (instrument_strlen_call): Fix typo in comment.
4466 Use char * type even for the lhs of POINTER_PLUS_EXPR.
4467
b5f8f063
SE
44682013-08-13 Steve Ellcey <sellcey@mips.com>
4469
4470 * config/mips/mips.md (prefetch): Use lw instead of ld on
4471 loongson in 32bit mode.
4472
4de80584
NC
44732013-08-13 Nick Clifton <nickc@redhat.com>
4474
4475 * config.gcc: (avr-linux): Allow for tmake_file not being empty.
4476
09ce3660
JH
44772013-08-13 Jan Hubicka <jh@suse.cz>
4478
4479 * cgraph.c (cgraph_turn_edge_to_speculative): Return newly
4480 introduced edge; fix typo in sanity check.
4481 (cgraph_resolve_speculation): Export; improve diagnostic.
4482 (cgraph_redirect_edge_call_stmt_to_callee): Better diagnostic; cancel
4483 speculation at type mismatch.
4484 * cgraph.h (cgraph_turn_edge_to_speculative): Update.
4485 (cgraph_resolve_speculation): Declare.
4486 (symtab_can_be_discarded): New function.
4487 * value-prof.c (gimple_ic_transform): Remove actual transform code.
4488 * ipa-inline-transform.c (speculation_removed): New global var.
4489 (clone_inlined_nodes): See if speculation can be removed.
4490 (inline_call): If speculations was removed, we growths may not match.
4491 * ipa-inline.c (can_inline_edge_p): Add DISREGARD_LIMITS parameter.
4492 (speculation_useful_p): New function.
4493 (resolve_noninline_speculation): New function.
4494 (inline_small_functions): Resolve useless speculations.
4495 * ipa-inline.h (speculation_useful_p): Declare
4496 * ipa.c (can_replace_by_local_alias): Simplify.
4497 (ipa_profile): Produce speculative calls in non-lto, too;
4498 add simple cost model; produce local aliases.
4499
f971dc24
DM
45002013-08-13 David Malcolm <dmalcolm@redhat.com>
4501
4502 * config/i386/t-i386 (i386.o): Rename stray PIPELINE_H to
061eff6d 4503 PASS_MANAGER_H.
f971dc24 4504
2e507b9a
PC
45052013-08-12 Paolo Carlini <paolo.carlini@oracle.com>
4506
4507 * config/i386/i386.c (ix86_function_versions): Use error + inform.
4508
c97fd4b8
UB
45092013-08-12 Uros Bizjak <ubizjak@gmail.com>
4510
4511 * config/i386/i386.md (floatunssi<mode>2 expand): Use MODEF mode
4512 iterator instead of X87MODEF.
4513
45142013-08-12 Perez Read <netfirewall@gmail.com>
4515
4516 PR target/58132
4517 * config/i386/i386.md (*movabs<mode>_1): Add <ptrsize> PTR before
4518 operand 0 for intel asm alternative.
4519 (*movabs<mode>_2): Ditto for operand 1.
4520
f4f4204c
JG
45212013-08-12 James Greenhalgh <james.greenhalgh@arm.com>
4522
4523 * config/aarch64/arm_none.h
4524 (vdup<bhsd>_lane_<su><8,16,32,64>): Fix macro call.
4525
133b1a8e
NC
45262013-08-12 Nick Clifton <nickc@redhat.com>
4527
4528 * config.gcc (m32r-linux): Allow for tmake_file not being empty.
4529
15dd8b3a
YR
45302013-08-12 Yuri Rumyantsev <ysrumyan@gmail.com>
4531
4532 * config/i386/i386.md (floatunssi<mode>2 expand): Add new
4533 expand for QI/HImode operand to produce more effictive code for
4534 unsigned char(short) --> float(double) conversion.
4535
94109a6a
AM
45362013-08-12 Alexander Monakov <amonakov@ispras.ru>
4537
4538 * doc/invoke.texi: Mention that -ftls-model does not force the final
4539 model.
4540
4e115102
MP
45412013-08-12 Marek Polacek <polacek@redhat.com>
4542 Marc Glisse <marc.glisse@inria.fr>
4543
4544 PR tree-optimization/57980
4545 * tree-tailcall.c (process_assignment): Call build_minus_one_cst
4546 when creating -1 constant.
4547
748d71f3
JH
45482013-08-10 Jan Hubicka <jh@suse.cz>
4549
1f97e193 4550 Workaround binutils PR14342.
748d71f3
JH
4551 * tree-profile.c (init_ic_make_global_vars): Add LTO path.
4552 (gimple_init_edge_profiler): Likewise.
4553 (gimple_gen_ic_func_profiler): Likewise.
4554
5979aa54
JH
45552013-08-09 Jan Hubicka <jh@suse.cz>
4556
4557 * cgraph.c (cgraph_create_edge_1): Clear speculative flag.
4558
ad83025e
XDL
45592013-08-09 Xinliang David Li <davidxl@google.com>
4560
4561 * config/i386/stringop.def: New file.
4562 * config/i386/stringop.opt: New file.
4563 * config/i386/i386-opts.h: Include stringopt.def.
4564 * config/i386/i386.opt: Include stringopt.opt.
4565 * config/i386/i386.c (ix86_option_override_internal):
c97fd4b8 4566 Override default size based stringop inline strategies with options.
ad83025e
XDL
4567 * config/i386/i386.c (ix86_parse_stringop_strategy_string):
4568 New function.
4569
e59df5fd
JH
45702013-08-09 Jan Hubicka <jh@suse.cz>
4571
c97fd4b8 4572 * ipa-ref.c (ipa_clear_stmts_in_references): Clear lto_stmt_uid, too.
e59df5fd 4573
634ab819
JH
45742013-08-09 Jan Hubicka <jh@suse.cz>
4575
4576 * cgraph.c (cgraph_resolve_speculation): Cut frequency to
4577 CGRAPH_FREQ_MAX.
4578 (dump_cgraph_node): Dump profile-id.
4579 * cgraph.h (cgraph_indirect_call_info): Add common_target_id
4580 and common_target_probability.
4581 * lto-cgraph.c (lto_output_edge): Stream common targets.
4582 (lto_output_node): Stream profile ids.
4583 (input_node): Stream profile ids.
4584 (input_edge): Stream common targets.
4585 * lto-streamer-in.c (fixup_call_stmt_edges_1): Fix formatting.
4586 * ipa.c: Include value-prof.h
4587 (ipa_profile_generate_summary): Turn indirect call statement histograms
4588 into common targets.
4589 (ipa_profile): Turn common targets into speculative edges.
4590
2fa3d31b
JH
45912013-08-09 Jan Hubicka <jh@suse.cz>
4592
4593 * cgraph.h (cgraph_node): Add profile_id.
4594 * value-prof.c (cgraph_node_map): Turn into pointer_map.
c97fd4b8 4595 (init_node_map): Rewrite to handle hashes increas of incremental IDs.
2fa3d31b
JH
4596 (del_node_map): Update.
4597 (find_func_by_funcdef_no): Replace by ...
4598 (find_func_by_profile_id): ... this one.
4599 (gimple_ic_transform): Do not remove useful histograms when
4600 speculation is not done; dump info when indirect call removal
4601 can happen at LTO.
4602 * value-prof.h (find_func_by_profile_id, gimple_ic): Declare.
4603 * gcov-io.h (__gcov_indirect_call_profiler): Replace by ...
4604 (__gcov_indirect_call_profiler_v2): .. this one.
4605 * profile.h (init_node_map): Update.
4606 * coverage.c (coverage_compute_profile_id): New function.
4607 * coverage.h (coverage_compute_profile_id): Declare.
4608 * tree-profile.c (init_ic_make_global_vars): Make
4609 __gcov_indirect_call_callee and __gcov_indirect_call_counters global.
4610 (gimple_init_edge_profiler): Update prototype of
4611 __gcov_indirect_call_profiler.
4612 (gimple_gen_ic_func_profiler): Simplify.
4613 (tree_profiling): Use init_node_map
4614
042ae7d2
JH
46152013-08-09 Jan Hubicka <jh@suse.cz>
4616
c97fd4b8
UB
4617 * cgraphbuild.c (cgraph_rebuild_references): Rebuild only
4618 non-speculative refs.
042ae7d2
JH
4619 * cgraph.c (cgraph_update_edge_in_call_site_hash): New function.
4620 (cgraph_add_edge_to_call_site_hash): Deal with speculative calls.
4621 (cgraph_set_call_stmt): Likewise.
4622 (cgraph_create_edge_1): Fix release checking compilatoin;
4623 clear lto_stmt_uid.
4624 (cgraph_free_edge): Free indirect info.
4625 (cgraph_turn_edge_to_speculative): New function.
4626 (cgraph_speculative_call_info): New function.
4627 (cgraph_make_edge_direct): Return direct edge; handle speculation.
c97fd4b8 4628 (cgraph_redirect_edge_call_stmt_to_callee): Expand speculative edges.
042ae7d2
JH
4629 (dump_cgraph_node): Dump speculation.
4630 (verify_edge_count_and_frequency): Accept speculative edges.
4631 (verify_edge_corresponds_to_fndecl): Handle partitioned cgraph.
4632 (verify_cgraph_node): Handle speculation.
4633 * cgraph.h (cgraph_edge): Add SPECULATIVE flag.
4634 (cgraph_set_call_stmt): Update prototype.
4635 (cgraph_make_edge_direct): Update prototype.
4636 (cgraph_speculative_call_info): Declare.
4637 * ipa-cp.c (ipcp_discover_new_direct_edges): Be ready for edge
4638 to change; update call of ipa_find_references.
4639 * ipa-ref.c (ipa_record_reference): Fix return value; clear
4640 lto_stmt_uid and speculative flags.
4641 (ipa_dump_references): Dump speculation.
4642 (ipa_clone_references): Clone speculative flag.
4643 (ipa_clone_referring): Likewise.
4644 (ipa_clone_ref): New function.
4645 (ipa_find_reference): Look into lto_stmt_uids
4646 (ipa_clear_stmts_in_references): Do not clear speculative calls.
4647 * ipa-ref.h (ipa_ref): Add lto_stmt_uid and speculative flags.
4648 (ipa_find_reference): Update declaration.
4649 (ipa_clone_ref): Declare.
4650 * lto-cgraph.c (lto_output_edge): Make lto_stmt_uids start from 0;
4651 stream speculative flag.
4652 (lto_output_ref): Stream statements uids and speculation.
4653 (input_ref): Likewise.
4654 (input_edge): Stream speuclation.
4655 * cgraphclones.c (cgraph_clone_edge): Clone speculation.
4656 (cgraph_set_call_stmt_including_clones): Handle speculation.
4657 * ipa-inline.c (heap_edge_removal_hook): New function.
4658 (inline_small_functions): Register it.
4659 * lto-streamer-in.c (fixup_call_stmt_edges_1): Bounds checking;
4660 also initialize refs.
4661 * ipa-prop.c (ipa_make_edge_direct_to_target): Be ready for
4662 edge to change.
4663 (try_make_edge_direct_simple_call): Likewise.
4664 (try_make_edge_direct_simple_call): Likewise.
4665 (update_indirect_edges_after_inlining): Likewise.
4666 (remove_described_reference): Look proper lto_stmt_uid.
4667 (propagate_controlled_uses): Likewise.
4668 (propagate_controlled_uses): Liekwise.
4669 * tree-inline.c (copy_bb): Copy speculative edges.
4670 (redirect_all_calls): New function.
c97fd4b8
UB
4671 (copy_cfg_body): Do redirection after loop info is updated.
4672 (delete_unreachable_blocks_update_callgraph): Updadte speculation.
042ae7d2 4673
aa1e10cc
JH
46742013-08-09 Jan Hubicka <jh@suse.cz>
4675
4676 * lto-streamer-out.c (output_function): Renumber PHIs.
4677 * lto-streamer-in.c (input_function): Likewise.
4678
66adb8eb
JG
46792013-08-09 James Greenhalgh <james.greenhalgh@arm.com>
4680
4681 * config/aarch64/aarch64-simd-builtins.def (get_lane_signed): Remove.
4682 (get_lane_unsigned): Likewise.
4683 (dup_lane_scalar): Likewise.
4684 (get_lane): enable for VALL.
4685 * config/aarch64/aarch64-simd.md
4686 (aarch64_dup_lane_scalar<mode>): Remove.
4687 (aarch64_get_lane_signed<mode>): Likewise.
4688 (aarch64_get_lane_unsigned<mode>): Likewise.
4689 (aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): New.
4690 (aarch64_get_lane_zero_extendsi<mode>): Likewise.
4691 (aarch64_get_lane<mode>): Enable for all vector modes.
4692 (aarch64_get_lanedi): Remove misleading constraints.
4693 * config/aarch64/arm_neon.h
4694 (__aarch64_vget_lane_any): Define.
4695 (__aarch64_vget<q>_lane_<fpsu><8,16,32,64>): Likewise.
4696 (vget<q>_lane_<fpsu><8,16,32,64>): Use __aarch64_vget_lane macros.
4697 (vdup<bhsd>_lane_<su><8,16,32,64>): Likewise.
4698 * config/aarch64/iterators.md (VDQQH): New.
4699 (VDQQHS): Likewise.
4700 (vwcore): Likewise.
4701
1f65ae7a
EB
47022013-08-09 Eric Botcazou <ebotcazou@adacore.com>
4703
4704 * configure.ac: Add GAS check for LEON instructions on SPARC.
4705 * configure: Regenerate.
4706 * config.in: Likewise.
4707 * config.gcc (with_cpu): Remove sparc-leon*-* and deal with LEON in the
4708 sparc*-*-* block.
4709 * config/sparc/sparc.opt (LEON, LEON3): New masks.
4710 * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Set to AS_LEON_FLAG
4711 for LEON or LEON3.
4712 (ASM_CPU_SPEC): Pass AS_LEON_FLAG if -mcpu=leon or -mcpu=leon3.
4713 (AS_LEON_FLAG): New macro.
4714 * config/sparc/sparc.c (sparc_option_override): Set MASK_LEON for leon
4715 and MASK_LEON3 for leon3 and unset them if HAVE_AS_LEON is not defined.
4716 Deal with LEON and LEON3 for the memory model.
23a6cb78 4717 * config/sparc/sync.md (atomic_compare_and_swap<mode>): Enable if LEON3
1f65ae7a
EB
4718 (atomic_compare_and_swap<mode>_1): Likewise.
4719 (*atomic_compare_and_swap<mode>_1): Likewise.
4720
ff522f7f
ZC
47212013-08-09 Zhenqiang Chen <zhenqiang.chen@linaro.org>
4722
4723 * config/arm/neon.md (vcond): Fix floating-point vector
4724 comparisons against 0.
4725
cb1cca12
VM
47262013-08-08 Vladimir Makarov <vmakarov@redhat.com>
4727
4728 * lra-constraints.c (emit_spill_move): Remove assert.
4729 (process_alt_operands): Add more debugging
4730 output. Increase reject for spilling into memory. Decrease
4731 reject for reloading scratch.
4732 (split_reg): Use HARD_REGNO_CALLER_SAVE_MODE.
4733
a3719e31
SE
47342013-08-08 Steve Ellcey <sellcey@mips.com>
4735
4736 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add nan2008.
4737 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Make mips16 and
4738 micromips incompatible. Add nan2008.
4739 (MULTILIB_DIRNAMES): Add nan2008.
4740 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
4741 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Make mips16
4742 and micromips incompatible. Add nan2008.
4743 (MULTILIB_DIRNAMES): Add nan2008.
4744 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
4745
f40423e2
RS
47462013-08-08 Richard Sandiford <rdsandiford@googlemail.com>
4747
4748 PR rtl-optimization/58079
4749 * combine.c (combine_simplify_rtx): Avoid using SUBST if
4750 simplify_comparison has widened a comparison with an integer.
4751
869b9125
KT
47522013-08-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4753
4754 * config/arm/neon.md (movmisalign<mode>): Disable when we
4755 don't allow unaligned accesses.
4756 (*movmisalign<mode>_neon_store): Likewise.
4757 (*movmisalign<mode>_neon_load): Likewise.
4758 (*movmisalign<mode>_neon_store): Likewise.
4759 (*movmisalign<mode>_neon_load): Likewise.
4760
71cafea9
JH
47612013-08-08 Jan Hubicka <jh@suse.cz>
4762
4763 * cgraphbuild.c (build_cgraph_edges): Do not walk into debugs.
4764 (make_pass_rebuild_cgraph_edges): Also clear references.
4765 * cgraph.c (verify_cgraph_node): Add basic ipa-ref verifier.
4766 * ipa-inline-transform.c (inline_transform): Remove all references
4767 after inlining.
c97fd4b8
UB
4768 * cgraphunit.c (expand_function): Remove all references after
4769 expansion.
71cafea9
JH
4770 * ipa-ref.c (ipa_ref_has_aliases_p): Fix formatting.
4771 (ipa_find_reference): Rewrite to iterator.
4772 (remove_stmt_references): Likewise.
4773 (ipa_clear_stmts_in_references): New function.
4774 * ipa-ref.h (ipa_clear_stmts_in_references): Declare.
03b0ee0a
UB
4775 * cgraphclones.c (cgraph_materialize_all_clones): Remove or
4776 clear references.
71cafea9
JH
4777 * ipa-split.c (split_function): Remove references in split function.
4778
27d2e612
RE
47792013-08-08 Richard Earnshaw <rearnsha@arm.com>
4780
4781 PR target/57431
1f65ae7a 4782 * config/arm/arm/neon.md (neon_vld1_dupdi): New expand pattern.
27d2e612
RE
4783 (neon_vld1_dup<mode> VD iterator): Iterate over VD not VDX.
4784
5efc661c
RE
47852013-08-08 Richard Earnshaw <rearnsha@arm.com>
4786
4787 PR target/56979
1f65ae7a 4788 * config/arm/arm.c (aapcs_vfp_allocate): Decompose the argument if the
5efc661c
RE
4789 suggested mode for the assignment isn't compatible with the
4790 registers required.
4791
f276d31d
BE
47922013-08-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
4793
4794 PR target/58065
4795 * config/arm/arm.h (MALLOC_ABI_ALIGNMENT): Define.
4796
4b8bc035
XDL
47972013-08-07 Xinliang David Li <davidxl@google.com>
4798
4799 * config/i386/i386.opt: New option -mtune-ctrl=.
4800 * config/i386/x86-tune.def: New file.
4801 * config/i386/i386.h: include x86-tune.def.
4802 * config/i386/i386.c (ix86_option_override_internal):
4803 Parsing -mtune-ctrl= option and set tune features.
4804
12211b99 48052013-08-07 Oleg Endo <olegendo@gcc.gnu.org>
a5b38740
OE
4806
4807 PR other/12081
03b0ee0a 4808 * config/rs6000/rs6000.c (gen_2arg_fn_t): Remove typedef.
a5b38740
OE
4809 (rs6000_emit_swdiv, rs6000_emit_swrsqrt): Don't cast result of GEN_FCN
4810 to gen_2arg_fn_t.
4811
5cf6635b
EB
48122013-08-07 Eric Botcazou <ebotcazou@adacore.com>
4813
4814 * rtl.h (update_alignments): Declare.
4815 * final.c (grow_label_align): New function extracted from...
4816 (shorten_branches): ...here. Call it.
4817 (update_alignments): New function.
4818 * reorg.c (sibling_labels): New variable.
4819 (get_label_before): Add SIBLING parameter. If it is non-zero, push
4820 the new label along with it onto the sibling_labels vector.
4821 (fill_simple_delay_slots): Adjust call to get_label_before.
4822 (fill_slots_from_thread): Likewise.
4823 (relax_delay_slots): Likewise.
4824 (make_return_insns): Likewise.
4825 (dbr_schedule): Invoke update_alignment on the sibling_labels vector.
4826
3c8ca1ab
EB
48272013-08-07 Eric Botcazou <ebotcazou@adacore.com>
4828
4829 * diagnostic.c (diagnostic_classify_diagnostic): Accept zero index and
4830 document its semantics.
4831 (diagnostic_report_diagnostic): Adjust accordingly.
4832
5ee5b32c
DM
48332013-08-07 David Malcolm <dmalcolm@redhat.com>
4834
03b0ee0a 4835 * config/sparc/sparc.c (insert_pass_work_around_errata): Move into...
5ee5b32c
DM
4836 (sparc_option_override): ...and port to new C++ pass API.
4837 * config/sparc/t-sparc (sparc.o): Add dep on CONTEXT_H
4838
abd566fa
PB
48392013-08-07 Peter Bergner <bergner@vnet.ibm.com>
4840
4841 * config/rs6000/rs6000.c (htm_expand_builtin) <case 0>: Remove.
4842
2077db1b
CT
48432013-08-06 Caroline Tice <cmtice@google.com>
4844
4845 * gcc.c (VTABLE_VERIFICATION_SPEC): New definition.
4846 (LINK_COMMAND_SPEC): Add VTABLE_VERIFICATION_SPEC.
4847 * tree-pass.h: Add pass_vtable_verify.
4848 * varasm.c (assemble_variable): Add code to properly set the comdat
4849 section and name for the .vtable_map_vars section.
4850 (assemble_vtyv_preinit_initializer): New function.
4851 (default_sectin_type_flags): Make sure .vtable_map_vars section has
4852 LINK_ONCE flag.
4853 * output.h: Add function decl for assemble_vtv_preinit_initializer.
4854 * vtable-verify.c: New file.
4855 * vtable-verify.h: New file.
4856 * flag-types.h (enum vtv_priority): Defintions for flag_vtable_verify
4857 initialiation levels.
4858 * timevar.def (TV_VTABLE_VERIFICATION): New definition.
4859 * passes.def: Insert pass_vtable_verify.
4860 * aclocal.m4: Reorder includes.
4861 * doc/invoke.texi: Document the -fvtable-verify=, -fvtv-debug, and
4862 -fvtv-counts options.
4863 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add vtv_start*.o,
4864 as appropriate, if -fvtable-verify=... is used.
4865 (GNU_USER_TARGET_ENDFILE_SPEC): Add vtv_end*.o as appropriate, if
4866 -fvtable-verify=... is used.
4867 * Makefile.in (OBJS): Add vtable-verify.o to list.
4868 (vtable-verify.o): Add new build rule.
4869 (GTFILES): Add vtable-verify.c to list.
4870 * common.opt (fvtable-verify=): New flag.
4871 (vtv_priority): Values for fvtable-verify= flag.
4872 (fvtv-counts): New flag.
4873 (fvtv-debug): New flag.
4874 * tree.h (save_vtable_map_decl): New extern function decl.
4875
03085d1c
DM
48762013-08-07 David Malcolm <dmalcolm@redhat.com>
4877
4878 * config/rl78/rl78.c (rl78_devirt_pass): Convert from a struct to...
4879 (pass_rl78_devirt): ...new subclass of rtl_opt_pass along with...
4880 (pass_data_rl78_devirt): ...new pass_data instance and...
4881 (make_pass_rl78_devirt): ...new function.
4882 (rl78_asm_file_start): Port pass registration to new C++ API.
4883
05555c4a
DM
48842013-08-07 David Malcolm <dmalcolm@redhat.com>
4885
4886 * coretypes.h (rtl_opt_pass): Add.
4887 (gcc::context): Add.
4888 * config/epiphany/epiphany.c (pass_mode_switch_use): New.
4889 (epiphany_init): Port to new C++ pass API.
4890 (epiphany_optimize_mode_switching): Likewise.
4891 * pass_manager.h (pass_manager::get_pass_split_all_insns): New.
4892 (pass_manager::get_pass_mode_switching): New.
4893 (pass_manager::get_pass_peephole2): New.
4894 * mode-switching.c (pass_mode_switching): Add clone method.
4895 * recog.c (pass_peephole2): Add clone method.
4896 (pass_split_all_insns): Add clone method.
4897
c5a12e26
DM
48982013-08-06 David Malcolm <dmalcolm@redhat.com>
4899
03b0ee0a
UB
4900 * config/mips/mips.c (insert_pass_mips_machine_reorg2): Move into...
4901 (mips_option_override): ...here, porting to new C++ API for passes.
c5a12e26 4902
a2e2a668
JH
49032013-08-06 Jan Hubicka <jh@suse.cz>
4904
4905 * cgraph.c (cgraph_get_body): New function based on lto.c
4906 implementation.
4907 * cgraph.h (cgraph_get_body): Declare.
03b0ee0a
UB
4908 * cgraphclones.c (cgraph_create_virtual_clone): Commonize WPA and
4909 LTO paths.
a2e2a668
JH
4910 * cgraphunit.c (expand_function): Get body prior expanding.
4911 * ipa.c (function_and_variable_visibility): Use gimple_has_body_p test.
03b0ee0a
UB
4912 * lto-cgraph.c (lto_output_node): Do not stream bodies we don't
4913 really need.
a2e2a668
JH
4914 * passes.c (do_per_function_toporder): Get body.
4915 * tree-inline.c (expand_call_inline): Get body prior inlining it.
4916 * tree-ssa-structalias.c (ipa_pta_execute): Get body; skip clones.
4917
15682f24
MJ
49182013-08-06 Martin Jambor <mjambor@suse.cz>
4919
4920 PR fortran/57987
4921 * cgraphunit.c (cgraph_finalize_function): Assert that nested function
4922 is not re-finalized. Rename second parameter to no_collect.
4923
78f6dd68
MJ
49242013-08-06 Martin Jambor <mjambor@suse.cz>
4925
4926 PR middle-end/58041
4927 * gimple-ssa-strength-reduction.c (replace_ref): Make sure built
4928 MEM_REF has proper alignment information.
4929
12211b99 49302013-08-05 Oleg Endo <olegendo@gcc.gnu.org>
eb923e54
OE
4931
4932 PR other/12081
4933 * recog.h (rtx (*insn_gen_fn) (rtx, ...)): Replace typedef with new
4934 class insn_gen_fn.
4935 * expr.c (move_by_pieces_1, store_by_pieces_2): Replace argument
4936 rtx (*) (rtx, ...) with insn_gen_fn.
4937 * genoutput.c (output_insn_data): Cast gen_? function pointers to
4938 insn_gen_fn::stored_funcptr. Add initializer braces.
4939
8ac69a6c
DM
49402013-08-05 David Malcolm <dmalcolm@redhat.com>
4941
4942 Rewrite how instances of passes are cloned to remove assumptions
4943 about their sizes (thus allowing pass subclasses to have
4944 additional data fields, albeit non-GC-managed ones at this point).
4945
4946 * passes.c (make_pass_instance): Now that passes have clone
4947 methods, rewrite this function to eliminate XNEW and memcpy
4948 calls that used hardcoded sizes. Since this function no longer
4949 creates pass instances, rename it to...
03b0ee0a
UB
4950 (add_pass_instance): ...this. Document the old way that passes were
4951 numbered and flagged, and rework this function to continue using it.
8ac69a6c
DM
4952 (next_pass_1): Add an initial_pass argument for use by
4953 add_pass_instance.
4954 (position_pass): When adding multiple instances of a pass, use
4955 the pass's clone method, rather than relying on the XNEW/memcpy
4956 within the former make_pass_instance (now add_pass_instance).
03b0ee0a
UB
4957 (pass_manager::pass_manager): When invoking next_pass_1, also supply
4958 the initial instance of the current pass within the pass manager.
8ac69a6c 4959
27a4cd48
DM
49602013-08-05 David Malcolm <dmalcolm@redhat.com>
4961
4962 This is the automated part of the conversion of passes from C
4963 structs to C++ classes.
4964
4965 Patch autogenerated by refactor_passes.py from
4966 https://github.com/davidmalcolm/gcc-refactoring-scripts
4967 revision 03fe39476a4c4ea450b49e087cfa817b5f92021e
4968
4969 * asan.c (pass_asan): Convert from a global struct to a subclass of
4970 gimple_opt_pass along with...
4971 (pass_data_asan): ...new pass_data instance and...
4972 (make_pass_asan): ...new function.
4973 (pass_asan_O0): Convert from a global struct to a subclass of
4974 gimple_opt_pass along with...
4975 (pass_data_asan_O0): ...new pass_data instance and...
4976 (make_pass_asan_O0): ...new function.
4977 * auto-inc-dec.c (pass_inc_dec): Convert from a global struct to a
4978 subclass of rtl_opt_pass along with...
4979 (pass_data_inc_dec): ...new pass_data instance and...
4980 (make_pass_inc_dec): ...new function.
4981 * bb-reorder.c (pass_reorder_blocks): Convert from a global struct to
4982 a subclass of rtl_opt_pass along with...
4983 (pass_data_reorder_blocks): ...new pass_data instance and...
4984 (make_pass_reorder_blocks): ...new function.
4985 (pass_duplicate_computed_gotos): Convert from a global struct to a
4986 subclass of rtl_opt_pass along with...
4987 (pass_data_duplicate_computed_gotos): ...new pass_data instance and...
4988 (make_pass_duplicate_computed_gotos): ...new function.
4989 (pass_partition_blocks): Convert from a global struct to a subclass of
4990 rtl_opt_pass along with...
4991 (pass_data_partition_blocks): ...new pass_data instance and...
4992 (make_pass_partition_blocks): ...new function.
4993 * bt-load.c (pass_branch_target_load_optimize1): Convert from a global
4994 struct to a subclass of rtl_opt_pass along with...
4995 (pass_data_branch_target_load_optimize1): ...new pass_data instance
4996 and...
4997 (make_pass_branch_target_load_optimize1): ...new function.
4998 (pass_branch_target_load_optimize2): Convert from a global struct to a
4999 subclass of rtl_opt_pass along with...
5000 (pass_data_branch_target_load_optimize2): ...new pass_data instance
5001 and...
5002 (make_pass_branch_target_load_optimize2): ...new function.
5003 * cfgcleanup.c (pass_jump): Convert from a global struct to a subclass
5004 of rtl_opt_pass along with...
5005 (pass_data_jump): ...new pass_data instance and...
5006 (make_pass_jump): ...new function.
5007 (pass_jump2): Convert from a global struct to a subclass of
5008 rtl_opt_pass along with...
5009 (pass_data_jump2): ...new pass_data instance and...
5010 (make_pass_jump2): ...new function.
5011 * cfgexpand.c (pass_expand): Convert from a global struct to a
5012 subclass of rtl_opt_pass along with...
5013 (pass_data_expand): ...new pass_data instance and...
5014 (make_pass_expand): ...new function.
5015 * cfgrtl.c (pass_free_cfg): Convert from a global struct to a subclass
5016 of rtl_opt_pass along with...
5017 (pass_data_free_cfg): ...new pass_data instance and...
5018 (make_pass_free_cfg): ...new function.
5019 (pass_into_cfg_layout_mode): Convert from a global struct to a
5020 subclass of rtl_opt_pass along with...
5021 (pass_data_into_cfg_layout_mode): ...new pass_data instance and...
5022 (make_pass_into_cfg_layout_mode): ...new function.
5023 (pass_outof_cfg_layout_mode): Convert from a global struct to a
5024 subclass of rtl_opt_pass along with...
5025 (pass_data_outof_cfg_layout_mode): ...new pass_data instance and...
5026 (make_pass_outof_cfg_layout_mode): ...new function.
5027 * cgraphbuild.c (pass_build_cgraph_edges): Convert from a global
5028 struct to a subclass of gimple_opt_pass along with...
5029 (pass_data_build_cgraph_edges): ...new pass_data instance and...
5030 (make_pass_build_cgraph_edges): ...new function.
5031 (pass_rebuild_cgraph_edges): Convert from a global struct to a
5032 subclass of gimple_opt_pass along with...
5033 (pass_data_rebuild_cgraph_edges): ...new pass_data instance and...
5034 (make_pass_rebuild_cgraph_edges): ...new function.
5035 (pass_remove_cgraph_callee_edges): Convert from a global struct to a
5036 subclass of gimple_opt_pass along with...
5037 (pass_data_remove_cgraph_callee_edges): ...new pass_data instance
5038 and...
5039 (make_pass_remove_cgraph_callee_edges): ...new function.
5040 * combine-stack-adj.c (pass_stack_adjustments): Convert from a global
5041 struct to a subclass of rtl_opt_pass along with...
5042 (pass_data_stack_adjustments): ...new pass_data instance and...
5043 (make_pass_stack_adjustments): ...new function.
5044 * combine.c (pass_combine): Convert from a global struct to a subclass
5045 of rtl_opt_pass along with...
5046 (pass_data_combine): ...new pass_data instance and...
5047 (make_pass_combine): ...new function.
5048 * compare-elim.c (pass_compare_elim_after_reload): Convert from a
5049 global struct to a subclass of rtl_opt_pass along with...
5050 (pass_data_compare_elim_after_reload): ...new pass_data instance
5051 and...
5052 (make_pass_compare_elim_after_reload): ...new function.
5053 * cprop.c (pass_rtl_cprop): Convert from a global struct to a subclass
5054 of rtl_opt_pass along with...
5055 (pass_data_rtl_cprop): ...new pass_data instance and...
5056 (make_pass_rtl_cprop): ...new function.
5057 * cse.c (pass_cse): Convert from a global struct to a subclass of
5058 rtl_opt_pass along with...
5059 (pass_data_cse): ...new pass_data instance and...
5060 (make_pass_cse): ...new function.
5061 (pass_cse2): Convert from a global struct to a subclass of
5062 rtl_opt_pass along with...
5063 (pass_data_cse2): ...new pass_data instance and...
5064 (make_pass_cse2): ...new function.
5065 (pass_cse_after_global_opts): Convert from a global struct to a
5066 subclass of rtl_opt_pass along with...
5067 (pass_data_cse_after_global_opts): ...new pass_data instance and...
5068 (make_pass_cse_after_global_opts): ...new function.
5069 * dce.c (pass_ud_rtl_dce): Convert from a global struct to a subclass
5070 of rtl_opt_pass along with...
5071 (pass_data_ud_rtl_dce): ...new pass_data instance and...
5072 (make_pass_ud_rtl_dce): ...new function.
5073 (pass_fast_rtl_dce): Convert from a global struct to a subclass of
5074 rtl_opt_pass along with...
5075 (pass_data_fast_rtl_dce): ...new pass_data instance and...
5076 (make_pass_fast_rtl_dce): ...new function.
5077 * df-core.c (pass_df_initialize_opt): Convert from a global struct to
5078 a subclass of rtl_opt_pass along with...
5079 (pass_data_df_initialize_opt): ...new pass_data instance and...
5080 (make_pass_df_initialize_opt): ...new function.
5081 (pass_df_initialize_no_opt): Convert from a global struct to a
5082 subclass of rtl_opt_pass along with...
5083 (pass_data_df_initialize_no_opt): ...new pass_data instance and...
5084 (make_pass_df_initialize_no_opt): ...new function.
5085 (pass_df_finish): Convert from a global struct to a subclass of
5086 rtl_opt_pass along with...
5087 (pass_data_df_finish): ...new pass_data instance and...
5088 (make_pass_df_finish): ...new function.
5089 * dse.c (pass_rtl_dse1): Convert from a global struct to a subclass of
5090 rtl_opt_pass along with...
5091 (pass_data_rtl_dse1): ...new pass_data instance and...
5092 (make_pass_rtl_dse1): ...new function.
5093 (pass_rtl_dse2): Convert from a global struct to a subclass of
5094 rtl_opt_pass along with...
5095 (pass_data_rtl_dse2): ...new pass_data instance and...
5096 (make_pass_rtl_dse2): ...new function.
5097 * dwarf2cfi.c (pass_dwarf2_frame): Convert from a global struct to a
5098 subclass of rtl_opt_pass along with...
5099 (pass_data_dwarf2_frame): ...new pass_data instance and...
5100 (make_pass_dwarf2_frame): ...new function.
5101 * except.c (pass_set_nothrow_function_flags): Convert from a global
5102 struct to a subclass of rtl_opt_pass along with...
5103 (pass_data_set_nothrow_function_flags): ...new pass_data instance
5104 and...
5105 (make_pass_set_nothrow_function_flags): ...new function.
5106 (pass_convert_to_eh_region_ranges): Convert from a global struct to a
5107 subclass of rtl_opt_pass along with...
5108 (pass_data_convert_to_eh_region_ranges): ...new pass_data instance
5109 and...
5110 (make_pass_convert_to_eh_region_ranges): ...new function.
5111 * final.c (pass_compute_alignments): Convert from a global struct to a
5112 subclass of rtl_opt_pass along with...
5113 (pass_data_compute_alignments): ...new pass_data instance and...
5114 (make_pass_compute_alignments): ...new function.
5115 (pass_final): Convert from a global struct to a subclass of
5116 rtl_opt_pass along with...
5117 (pass_data_final): ...new pass_data instance and...
5118 (make_pass_final): ...new function.
5119 (pass_shorten_branches): Convert from a global struct to a subclass of
5120 rtl_opt_pass along with...
5121 (pass_data_shorten_branches): ...new pass_data instance and...
5122 (make_pass_shorten_branches): ...new function.
5123 (pass_clean_state): Convert from a global struct to a subclass of
5124 rtl_opt_pass along with...
5125 (pass_data_clean_state): ...new pass_data instance and...
5126 (make_pass_clean_state): ...new function.
5127 * function.c (pass_instantiate_virtual_regs): Convert from a global
5128 struct to a subclass of rtl_opt_pass along with...
5129 (pass_data_instantiate_virtual_regs): ...new pass_data instance and...
5130 (make_pass_instantiate_virtual_regs): ...new function.
5131 (pass_leaf_regs): Convert from a global struct to a subclass of
5132 rtl_opt_pass along with...
5133 (pass_data_leaf_regs): ...new pass_data instance and...
5134 (make_pass_leaf_regs): ...new function.
5135 (pass_thread_prologue_and_epilogue): Convert from a global struct to a
5136 subclass of rtl_opt_pass along with...
5137 (pass_data_thread_prologue_and_epilogue): ...new pass_data instance
5138 and...
5139 (make_pass_thread_prologue_and_epilogue): ...new function.
5140 (pass_match_asm_constraints): Convert from a global struct to a
5141 subclass of rtl_opt_pass along with...
5142 (pass_data_match_asm_constraints): ...new pass_data instance and...
5143 (make_pass_match_asm_constraints): ...new function.
5144 * fwprop.c (pass_rtl_fwprop): Convert from a global struct to a
5145 subclass of rtl_opt_pass along with...
5146 (pass_data_rtl_fwprop): ...new pass_data instance and...
5147 (make_pass_rtl_fwprop): ...new function.
5148 (pass_rtl_fwprop_addr): Convert from a global struct to a subclass of
5149 rtl_opt_pass along with...
5150 (pass_data_rtl_fwprop_addr): ...new pass_data instance and...
5151 (make_pass_rtl_fwprop_addr): ...new function.
5152 * gcse.c (pass_rtl_pre): Convert from a global struct to a subclass of
5153 rtl_opt_pass along with...
5154 (pass_data_rtl_pre): ...new pass_data instance and...
5155 (make_pass_rtl_pre): ...new function.
5156 (pass_rtl_hoist): Convert from a global struct to a subclass of
5157 rtl_opt_pass along with...
5158 (pass_data_rtl_hoist): ...new pass_data instance and...
5159 (make_pass_rtl_hoist): ...new function.
5160 * gimple-low.c (pass_lower_cf): Convert from a global struct to a
5161 subclass of gimple_opt_pass along with...
5162 (pass_data_lower_cf): ...new pass_data instance and...
5163 (make_pass_lower_cf): ...new function.
5164 * gimple-ssa-strength-reduction.c (pass_strength_reduction): Convert
5165 from a global struct to a subclass of gimple_opt_pass along with...
5166 (pass_data_strength_reduction): ...new pass_data instance and...
5167 (make_pass_strength_reduction): ...new function.
5168 * ifcvt.c (pass_rtl_ifcvt): Convert from a global struct to a subclass
5169 of rtl_opt_pass along with...
5170 (pass_data_rtl_ifcvt): ...new pass_data instance and...
5171 (make_pass_rtl_ifcvt): ...new function.
5172 (pass_if_after_combine): Convert from a global struct to a subclass of
5173 rtl_opt_pass along with...
5174 (pass_data_if_after_combine): ...new pass_data instance and...
5175 (make_pass_if_after_combine): ...new function.
5176 (pass_if_after_reload): Convert from a global struct to a subclass of
5177 rtl_opt_pass along with...
5178 (pass_data_if_after_reload): ...new pass_data instance and...
5179 (make_pass_if_after_reload): ...new function.
5180 * init-regs.c (pass_initialize_regs): Convert from a global struct to
5181 a subclass of rtl_opt_pass along with...
5182 (pass_data_initialize_regs): ...new pass_data instance and...
5183 (make_pass_initialize_regs): ...new function.
5184 * ipa-cp.c (pass_ipa_cp): Convert from a global struct to a subclass
5185 of ipa_opt_pass_d along with...
5186 (pass_data_ipa_cp): ...new pass_data instance and...
5187 (make_pass_ipa_cp): ...new function.
5188 * ipa-inline-analysis.c (pass_inline_parameters): Convert from a
5189 global struct to a subclass of gimple_opt_pass along with...
5190 (pass_data_inline_parameters): ...new pass_data instance and...
5191 (make_pass_inline_parameters): ...new function.
5192 * ipa-inline.c (pass_early_inline): Convert from a global struct to a
5193 subclass of gimple_opt_pass along with...
5194 (pass_data_early_inline): ...new pass_data instance and...
5195 (make_pass_early_inline): ...new function.
5196 (pass_ipa_inline): Convert from a global struct to a subclass of
5197 ipa_opt_pass_d along with...
5198 (pass_data_ipa_inline): ...new pass_data instance and...
5199 (make_pass_ipa_inline): ...new function.
5200 * ipa-pure-const.c (pass_local_pure_const): Convert from a global
5201 struct to a subclass of gimple_opt_pass along with...
5202 (pass_data_local_pure_const): ...new pass_data instance and...
5203 (make_pass_local_pure_const): ...new function.
5204 (pass_ipa_pure_const): Convert from a global struct to a subclass of
5205 ipa_opt_pass_d along with...
5206 (pass_data_ipa_pure_const): ...new pass_data instance and...
5207 (make_pass_ipa_pure_const): ...new function.
5208 * ipa-reference.c (pass_ipa_reference): Convert from a global struct
5209 to a subclass of ipa_opt_pass_d along with...
5210 (pass_data_ipa_reference): ...new pass_data instance and...
5211 (make_pass_ipa_reference): ...new function.
5212 * ipa-split.c (pass_split_functions): Convert from a global struct to
5213 a subclass of gimple_opt_pass along with...
5214 (pass_data_split_functions): ...new pass_data instance and...
5215 (make_pass_split_functions): ...new function.
5216 (pass_feedback_split_functions): Convert from a global struct to a
5217 subclass of gimple_opt_pass along with...
5218 (pass_data_feedback_split_functions): ...new pass_data instance and...
5219 (make_pass_feedback_split_functions): ...new function.
5220 * ipa.c (pass_ipa_function_and_variable_visibility): Convert from a
5221 global struct to a subclass of simple_ipa_opt_pass along with...
5222 (pass_data_ipa_function_and_variable_visibility): ...new pass_data
5223 instance and...
5224 (make_pass_ipa_function_and_variable_visibility): ...new function.
5225 (pass_ipa_free_inline_summary): Convert from a global struct to a
5226 subclass of simple_ipa_opt_pass along with...
5227 (pass_data_ipa_free_inline_summary): ...new pass_data instance and...
5228 (make_pass_ipa_free_inline_summary): ...new function.
5229 (pass_ipa_whole_program_visibility): Convert from a global struct to a
5230 subclass of ipa_opt_pass_d along with...
5231 (pass_data_ipa_whole_program_visibility): ...new pass_data instance
5232 and...
5233 (make_pass_ipa_whole_program_visibility): ...new function.
5234 (pass_ipa_profile): Convert from a global struct to a subclass of
5235 ipa_opt_pass_d along with...
5236 (pass_data_ipa_profile): ...new pass_data instance and...
5237 (make_pass_ipa_profile): ...new function.
5238 (pass_ipa_cdtor_merge): Convert from a global struct to a subclass of
5239 ipa_opt_pass_d along with...
5240 (pass_data_ipa_cdtor_merge): ...new pass_data instance and...
5241 (make_pass_ipa_cdtor_merge): ...new function.
5242 * ira.c (pass_ira): Convert from a global struct to a subclass of
5243 rtl_opt_pass along with...
5244 (pass_data_ira): ...new pass_data instance and...
5245 (make_pass_ira): ...new function.
5246 (pass_reload): Convert from a global struct to a subclass of
5247 rtl_opt_pass along with...
5248 (pass_data_reload): ...new pass_data instance and...
5249 (make_pass_reload): ...new function.
5250 * jump.c (pass_cleanup_barriers): Convert from a global struct to a
5251 subclass of rtl_opt_pass along with...
5252 (pass_data_cleanup_barriers): ...new pass_data instance and...
5253 (make_pass_cleanup_barriers): ...new function.
5254 * loop-init.c (pass_loop2): Convert from a global struct to a subclass
5255 of rtl_opt_pass along with...
5256 (pass_data_loop2): ...new pass_data instance and...
5257 (make_pass_loop2): ...new function.
5258 (pass_rtl_loop_init): Convert from a global struct to a subclass of
5259 rtl_opt_pass along with...
5260 (pass_data_rtl_loop_init): ...new pass_data instance and...
5261 (make_pass_rtl_loop_init): ...new function.
5262 (pass_rtl_loop_done): Convert from a global struct to a subclass of
5263 rtl_opt_pass along with...
5264 (pass_data_rtl_loop_done): ...new pass_data instance and...
5265 (make_pass_rtl_loop_done): ...new function.
5266 (pass_rtl_move_loop_invariants): Convert from a global struct to a
5267 subclass of rtl_opt_pass along with...
5268 (pass_data_rtl_move_loop_invariants): ...new pass_data instance and...
5269 (make_pass_rtl_move_loop_invariants): ...new function.
5270 (pass_rtl_unswitch): Convert from a global struct to a subclass of
5271 rtl_opt_pass along with...
5272 (pass_data_rtl_unswitch): ...new pass_data instance and...
5273 (make_pass_rtl_unswitch): ...new function.
5274 (pass_rtl_unroll_and_peel_loops): Convert from a global struct to a
5275 subclass of rtl_opt_pass along with...
5276 (pass_data_rtl_unroll_and_peel_loops): ...new pass_data instance
5277 and...
5278 (make_pass_rtl_unroll_and_peel_loops): ...new function.
5279 (pass_rtl_doloop): Convert from a global struct to a subclass of
5280 rtl_opt_pass along with...
5281 (pass_data_rtl_doloop): ...new pass_data instance and...
5282 (make_pass_rtl_doloop): ...new function.
5283 * lower-subreg.c (pass_lower_subreg): Convert from a global struct to
5284 a subclass of rtl_opt_pass along with...
5285 (pass_data_lower_subreg): ...new pass_data instance and...
5286 (make_pass_lower_subreg): ...new function.
5287 (pass_lower_subreg2): Convert from a global struct to a subclass of
5288 rtl_opt_pass along with...
5289 (pass_data_lower_subreg2): ...new pass_data instance and...
5290 (make_pass_lower_subreg2): ...new function.
5291 * lto-streamer-out.c (pass_ipa_lto_gimple_out): Convert from a global
5292 struct to a subclass of ipa_opt_pass_d along with...
5293 (pass_data_ipa_lto_gimple_out): ...new pass_data instance and...
5294 (make_pass_ipa_lto_gimple_out): ...new function.
5295 (pass_ipa_lto_finish_out): Convert from a global struct to a subclass
5296 of ipa_opt_pass_d along with...
5297 (pass_data_ipa_lto_finish_out): ...new pass_data instance and...
5298 (make_pass_ipa_lto_finish_out): ...new function.
5299 * mode-switching.c (pass_mode_switching): Convert from a global struct
5300 to a subclass of rtl_opt_pass along with...
5301 (pass_data_mode_switching): ...new pass_data instance and...
5302 (make_pass_mode_switching): ...new function.
5303 * modulo-sched.c (pass_sms): Convert from a global struct to a
5304 subclass of rtl_opt_pass along with...
5305 (pass_data_sms): ...new pass_data instance and...
5306 (make_pass_sms): ...new function.
5307 * omp-low.c (pass_expand_omp): Convert from a global struct to a
5308 subclass of gimple_opt_pass along with...
5309 (pass_data_expand_omp): ...new pass_data instance and...
5310 (make_pass_expand_omp): ...new function.
5311 (pass_lower_omp): Convert from a global struct to a subclass of
5312 gimple_opt_pass along with...
5313 (pass_data_lower_omp): ...new pass_data instance and...
5314 (make_pass_lower_omp): ...new function.
5315 (pass_diagnose_omp_blocks): Convert from a global struct to a subclass
5316 of gimple_opt_pass along with...
5317 (pass_data_diagnose_omp_blocks): ...new pass_data instance and...
5318 (make_pass_diagnose_omp_blocks): ...new function.
5319 * passes.c (pass_early_local_passes): Convert from a global struct to
5320 a subclass of simple_ipa_opt_pass along with...
5321 (pass_data_early_local_passes): ...new pass_data instance and...
5322 (make_pass_early_local_passes): ...new function.
5323 (pass_all_early_optimizations): Convert from a global struct to a
5324 subclass of gimple_opt_pass along with...
5325 (pass_data_all_early_optimizations): ...new pass_data instance and...
5326 (make_pass_all_early_optimizations): ...new function.
5327 (pass_all_optimizations): Convert from a global struct to a subclass
5328 of gimple_opt_pass along with...
5329 (pass_data_all_optimizations): ...new pass_data instance and...
5330 (make_pass_all_optimizations): ...new function.
5331 (pass_all_optimizations_g): Convert from a global struct to a subclass
5332 of gimple_opt_pass along with...
5333 (pass_data_all_optimizations_g): ...new pass_data instance and...
5334 (make_pass_all_optimizations_g): ...new function.
5335 (pass_rest_of_compilation): Convert from a global struct to a subclass
5336 of rtl_opt_pass along with...
5337 (pass_data_rest_of_compilation): ...new pass_data instance and...
5338 (make_pass_rest_of_compilation): ...new function.
5339 (pass_postreload): Convert from a global struct to a subclass of
5340 rtl_opt_pass along with...
5341 (pass_data_postreload): ...new pass_data instance and...
5342 (make_pass_postreload): ...new function.
5343 * postreload-gcse.c (pass_gcse2): Convert from a global struct to a
5344 subclass of rtl_opt_pass along with...
5345 (pass_data_gcse2): ...new pass_data instance and...
5346 (make_pass_gcse2): ...new function.
5347 * postreload.c (pass_postreload_cse): Convert from a global struct to
5348 a subclass of rtl_opt_pass along with...
5349 (pass_data_postreload_cse): ...new pass_data instance and...
5350 (make_pass_postreload_cse): ...new function.
5351 * predict.c (pass_profile): Convert from a global struct to a subclass
5352 of gimple_opt_pass along with...
5353 (pass_data_profile): ...new pass_data instance and...
5354 (make_pass_profile): ...new function.
5355 (pass_strip_predict_hints): Convert from a global struct to a subclass
5356 of gimple_opt_pass along with...
5357 (pass_data_strip_predict_hints): ...new pass_data instance and...
5358 (make_pass_strip_predict_hints): ...new function.
5359 * recog.c (pass_peephole2): Convert from a global struct to a subclass
5360 of rtl_opt_pass along with...
5361 (pass_data_peephole2): ...new pass_data instance and...
5362 (make_pass_peephole2): ...new function.
5363 (pass_split_all_insns): Convert from a global struct to a subclass of
5364 rtl_opt_pass along with...
5365 (pass_data_split_all_insns): ...new pass_data instance and...
5366 (make_pass_split_all_insns): ...new function.
5367 (pass_split_after_reload): Convert from a global struct to a subclass
5368 of rtl_opt_pass along with...
5369 (pass_data_split_after_reload): ...new pass_data instance and...
5370 (make_pass_split_after_reload): ...new function.
5371 (pass_split_before_regstack): Convert from a global struct to a
5372 subclass of rtl_opt_pass along with...
5373 (pass_data_split_before_regstack): ...new pass_data instance and...
5374 (make_pass_split_before_regstack): ...new function.
5375 (pass_split_before_sched2): Convert from a global struct to a subclass
5376 of rtl_opt_pass along with...
5377 (pass_data_split_before_sched2): ...new pass_data instance and...
5378 (make_pass_split_before_sched2): ...new function.
5379 (pass_split_for_shorten_branches): Convert from a global struct to a
5380 subclass of rtl_opt_pass along with...
5381 (pass_data_split_for_shorten_branches): ...new pass_data instance
5382 and...
5383 (make_pass_split_for_shorten_branches): ...new function.
5384 * ree.c (pass_ree): Convert from a global struct to a subclass of
5385 rtl_opt_pass along with...
5386 (pass_data_ree): ...new pass_data instance and...
5387 (make_pass_ree): ...new function.
5388 * reg-stack.c (pass_stack_regs): Convert from a global struct to a
5389 subclass of rtl_opt_pass along with...
5390 (pass_data_stack_regs): ...new pass_data instance and...
5391 (make_pass_stack_regs): ...new function.
5392 (pass_stack_regs_run): Convert from a global struct to a subclass of
5393 rtl_opt_pass along with...
5394 (pass_data_stack_regs_run): ...new pass_data instance and...
5395 (make_pass_stack_regs_run): ...new function.
5396 * regcprop.c (pass_cprop_hardreg): Convert from a global struct to a
5397 subclass of rtl_opt_pass along with...
5398 (pass_data_cprop_hardreg): ...new pass_data instance and...
5399 (make_pass_cprop_hardreg): ...new function.
5400 * reginfo.c (pass_reginfo_init): Convert from a global struct to a
5401 subclass of rtl_opt_pass along with...
5402 (pass_data_reginfo_init): ...new pass_data instance and...
5403 (make_pass_reginfo_init): ...new function.
5404 * regmove.c (pass_regmove): Convert from a global struct to a subclass
5405 of rtl_opt_pass along with...
5406 (pass_data_regmove): ...new pass_data instance and...
5407 (make_pass_regmove): ...new function.
5408 * regrename.c (pass_regrename): Convert from a global struct to a
5409 subclass of rtl_opt_pass along with...
5410 (pass_data_regrename): ...new pass_data instance and...
5411 (make_pass_regrename): ...new function.
5412 * reorg.c (pass_delay_slots): Convert from a global struct to a
5413 subclass of rtl_opt_pass along with...
5414 (pass_data_delay_slots): ...new pass_data instance and...
5415 (make_pass_delay_slots): ...new function.
5416 (pass_machine_reorg): Convert from a global struct to a subclass of
5417 rtl_opt_pass along with...
5418 (pass_data_machine_reorg): ...new pass_data instance and...
5419 (make_pass_machine_reorg): ...new function.
5420 * sched-rgn.c (pass_sched): Convert from a global struct to a subclass
5421 of rtl_opt_pass along with...
5422 (pass_data_sched): ...new pass_data instance and...
5423 (make_pass_sched): ...new function.
5424 (pass_sched2): Convert from a global struct to a subclass of
5425 rtl_opt_pass along with...
5426 (pass_data_sched2): ...new pass_data instance and...
5427 (make_pass_sched2): ...new function.
5428 * stack-ptr-mod.c (pass_stack_ptr_mod): Convert from a global struct
5429 to a subclass of rtl_opt_pass along with...
5430 (pass_data_stack_ptr_mod): ...new pass_data instance and...
5431 (make_pass_stack_ptr_mod): ...new function.
5432 * store-motion.c (pass_rtl_store_motion): Convert from a global struct
5433 to a subclass of rtl_opt_pass along with...
5434 (pass_data_rtl_store_motion): ...new pass_data instance and...
5435 (make_pass_rtl_store_motion): ...new function.
5436 * tracer.c (pass_tracer): Convert from a global struct to a subclass
5437 of gimple_opt_pass along with...
5438 (pass_data_tracer): ...new pass_data instance and...
5439 (make_pass_tracer): ...new function.
5440 * trans-mem.c (pass_diagnose_tm_blocks): Convert from a global struct
5441 to a subclass of gimple_opt_pass along with...
5442 (pass_data_diagnose_tm_blocks): ...new pass_data instance and...
5443 (make_pass_diagnose_tm_blocks): ...new function.
5444 (pass_lower_tm): Convert from a global struct to a subclass of
5445 gimple_opt_pass along with...
5446 (pass_data_lower_tm): ...new pass_data instance and...
5447 (make_pass_lower_tm): ...new function.
5448 (pass_tm_init): Convert from a global struct to a subclass of
5449 gimple_opt_pass along with...
5450 (pass_data_tm_init): ...new pass_data instance and...
5451 (make_pass_tm_init): ...new function.
5452 (pass_tm_mark): Convert from a global struct to a subclass of
5453 gimple_opt_pass along with...
5454 (pass_data_tm_mark): ...new pass_data instance and...
5455 (make_pass_tm_mark): ...new function.
5456 (pass_tm_edges): Convert from a global struct to a subclass of
5457 gimple_opt_pass along with...
5458 (pass_data_tm_edges): ...new pass_data instance and...
5459 (make_pass_tm_edges): ...new function.
5460 (pass_tm_memopt): Convert from a global struct to a subclass of
5461 gimple_opt_pass along with...
5462 (pass_data_tm_memopt): ...new pass_data instance and...
5463 (make_pass_tm_memopt): ...new function.
5464 (pass_ipa_tm): Convert from a global struct to a subclass of
5465 simple_ipa_opt_pass along with...
5466 (pass_data_ipa_tm): ...new pass_data instance and...
5467 (make_pass_ipa_tm): ...new function.
5468 * tree-call-cdce.c (pass_call_cdce): Convert from a global struct to a
5469 subclass of gimple_opt_pass along with...
5470 (pass_data_call_cdce): ...new pass_data instance and...
5471 (make_pass_call_cdce): ...new function.
5472 * tree-cfg.c (pass_build_cfg): Convert from a global struct to a
5473 subclass of gimple_opt_pass along with...
5474 (pass_data_build_cfg): ...new pass_data instance and...
5475 (make_pass_build_cfg): ...new function.
5476 (pass_split_crit_edges): Convert from a global struct to a subclass of
5477 gimple_opt_pass along with...
5478 (pass_data_split_crit_edges): ...new pass_data instance and...
5479 (make_pass_split_crit_edges): ...new function.
5480 (pass_warn_function_return): Convert from a global struct to a
5481 subclass of gimple_opt_pass along with...
5482 (pass_data_warn_function_return): ...new pass_data instance and...
5483 (make_pass_warn_function_return): ...new function.
5484 (pass_warn_function_noreturn): Convert from a global struct to a
5485 subclass of gimple_opt_pass along with...
5486 (pass_data_warn_function_noreturn): ...new pass_data instance and...
5487 (make_pass_warn_function_noreturn): ...new function.
5488 (pass_warn_unused_result): Convert from a global struct to a subclass
5489 of gimple_opt_pass along with...
5490 (pass_data_warn_unused_result): ...new pass_data instance and...
5491 (make_pass_warn_unused_result): ...new function.
5492 * tree-cfgcleanup.c (pass_merge_phi): Convert from a global struct to
5493 a subclass of gimple_opt_pass along with...
5494 (pass_data_merge_phi): ...new pass_data instance and...
5495 (make_pass_merge_phi): ...new function.
5496 * tree-complex.c (pass_lower_complex): Convert from a global struct to
5497 a subclass of gimple_opt_pass along with...
5498 (pass_data_lower_complex): ...new pass_data instance and...
5499 (make_pass_lower_complex): ...new function.
5500 (pass_lower_complex_O0): Convert from a global struct to a subclass of
5501 gimple_opt_pass along with...
5502 (pass_data_lower_complex_O0): ...new pass_data instance and...
5503 (make_pass_lower_complex_O0): ...new function.
5504 * tree-eh.c (pass_lower_eh): Convert from a global struct to a
5505 subclass of gimple_opt_pass along with...
5506 (pass_data_lower_eh): ...new pass_data instance and...
5507 (make_pass_lower_eh): ...new function.
5508 (pass_refactor_eh): Convert from a global struct to a subclass of
5509 gimple_opt_pass along with...
5510 (pass_data_refactor_eh): ...new pass_data instance and...
5511 (make_pass_refactor_eh): ...new function.
5512 (pass_lower_resx): Convert from a global struct to a subclass of
5513 gimple_opt_pass along with...
5514 (pass_data_lower_resx): ...new pass_data instance and...
5515 (make_pass_lower_resx): ...new function.
5516 (pass_lower_eh_dispatch): Convert from a global struct to a subclass
5517 of gimple_opt_pass along with...
5518 (pass_data_lower_eh_dispatch): ...new pass_data instance and...
5519 (make_pass_lower_eh_dispatch): ...new function.
5520 (pass_cleanup_eh): Convert from a global struct to a subclass of
5521 gimple_opt_pass along with...
5522 (pass_data_cleanup_eh): ...new pass_data instance and...
5523 (make_pass_cleanup_eh): ...new function.
5524 * tree-emutls.c (pass_ipa_lower_emutls): Convert from a global struct
5525 to a subclass of simple_ipa_opt_pass along with...
5526 (pass_data_ipa_lower_emutls): ...new pass_data instance and...
5527 (make_pass_ipa_lower_emutls): ...new function.
5528 * tree-if-conv.c (pass_if_conversion): Convert from a global struct to
5529 a subclass of gimple_opt_pass along with...
5530 (pass_data_if_conversion): ...new pass_data instance and...
5531 (make_pass_if_conversion): ...new function.
5532 * tree-into-ssa.c (pass_build_ssa): Convert from a global struct to a
5533 subclass of gimple_opt_pass along with...
5534 (pass_data_build_ssa): ...new pass_data instance and...
5535 (make_pass_build_ssa): ...new function.
5536 * tree-loop-distribution.c (pass_loop_distribution): Convert from a
5537 global struct to a subclass of gimple_opt_pass along with...
5538 (pass_data_loop_distribution): ...new pass_data instance and...
5539 (make_pass_loop_distribution): ...new function.
5540 * tree-mudflap.c (pass_mudflap_1): Convert from a global struct to a
5541 subclass of gimple_opt_pass along with...
5542 (pass_data_mudflap_1): ...new pass_data instance and...
5543 (make_pass_mudflap_1): ...new function.
5544 (pass_mudflap_2): Convert from a global struct to a subclass of
5545 gimple_opt_pass along with...
5546 (pass_data_mudflap_2): ...new pass_data instance and...
5547 (make_pass_mudflap_2): ...new function.
5548 * tree-nomudflap.c (pass_mudflap_1): Convert from a global struct to a
5549 subclass of gimple_opt_pass along with...
5550 (pass_data_mudflap_1): ...new pass_data instance and...
5551 (make_pass_mudflap_1): ...new function.
5552 (pass_mudflap_2): Convert from a global struct to a subclass of
5553 gimple_opt_pass along with...
5554 (pass_data_mudflap_2): ...new pass_data instance and...
5555 (make_pass_mudflap_2): ...new function.
5556 * tree-nrv.c (pass_nrv): Convert from a global struct to a subclass of
5557 gimple_opt_pass along with...
5558 (pass_data_nrv): ...new pass_data instance and...
5559 (make_pass_nrv): ...new function.
5560 (pass_return_slot): Convert from a global struct to a subclass of
5561 gimple_opt_pass along with...
5562 (pass_data_return_slot): ...new pass_data instance and...
5563 (make_pass_return_slot): ...new function.
5564 * tree-object-size.c (pass_object_sizes): Convert from a global struct
5565 to a subclass of gimple_opt_pass along with...
5566 (pass_data_object_sizes): ...new pass_data instance and...
5567 (make_pass_object_sizes): ...new function.
5568 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Convert from a
5569 global struct to a subclass of gimple_opt_pass along with...
5570 (pass_data_cleanup_cfg_post_optimizing): ...new pass_data instance
5571 and...
5572 (make_pass_cleanup_cfg_post_optimizing): ...new function.
5573 (pass_fixup_cfg): Convert from a global struct to a subclass of
5574 gimple_opt_pass along with...
5575 (pass_data_fixup_cfg): ...new pass_data instance and...
5576 (make_pass_fixup_cfg): ...new function.
5577 * tree-pass.h (pass_mudflap_1): Replace declaration with that of...
5578 (make_pass_mudflap_1): ...new function.
5579 (pass_mudflap_2): Replace declaration with that of...
5580 (make_pass_mudflap_2): ...new function.
5581 (pass_asan): Replace declaration with that of...
5582 (make_pass_asan): ...new function.
5583 (pass_asan_O0): Replace declaration with that of...
5584 (make_pass_asan_O0): ...new function.
5585 (pass_tsan): Replace declaration with that of...
5586 (make_pass_tsan): ...new function.
5587 (pass_tsan_O0): Replace declaration with that of...
5588 (make_pass_tsan_O0): ...new function.
5589 (pass_lower_cf): Replace declaration with that of...
5590 (make_pass_lower_cf): ...new function.
5591 (pass_refactor_eh): Replace declaration with that of...
5592 (make_pass_refactor_eh): ...new function.
5593 (pass_lower_eh): Replace declaration with that of...
5594 (make_pass_lower_eh): ...new function.
5595 (pass_lower_eh_dispatch): Replace declaration with that of...
5596 (make_pass_lower_eh_dispatch): ...new function.
5597 (pass_lower_resx): Replace declaration with that of...
5598 (make_pass_lower_resx): ...new function.
5599 (pass_build_cfg): Replace declaration with that of...
5600 (make_pass_build_cfg): ...new function.
5601 (pass_early_tree_profile): Replace declaration with that of...
5602 (make_pass_early_tree_profile): ...new function.
5603 (pass_cleanup_eh): Replace declaration with that of...
5604 (make_pass_cleanup_eh): ...new function.
5605 (pass_sra): Replace declaration with that of...
5606 (make_pass_sra): ...new function.
5607 (pass_sra_early): Replace declaration with that of...
5608 (make_pass_sra_early): ...new function.
5609 (pass_early_ipa_sra): Replace declaration with that of...
5610 (make_pass_early_ipa_sra): ...new function.
5611 (pass_tail_recursion): Replace declaration with that of...
5612 (make_pass_tail_recursion): ...new function.
5613 (pass_tail_calls): Replace declaration with that of...
5614 (make_pass_tail_calls): ...new function.
5615 (pass_tree_loop): Replace declaration with that of...
5616 (make_pass_tree_loop): ...new function.
5617 (pass_tree_loop_init): Replace declaration with that of...
5618 (make_pass_tree_loop_init): ...new function.
5619 (pass_lim): Replace declaration with that of...
5620 (make_pass_lim): ...new function.
5621 (pass_tree_unswitch): Replace declaration with that of...
5622 (make_pass_tree_unswitch): ...new function.
5623 (pass_predcom): Replace declaration with that of...
5624 (make_pass_predcom): ...new function.
5625 (pass_iv_canon): Replace declaration with that of...
5626 (make_pass_iv_canon): ...new function.
5627 (pass_scev_cprop): Replace declaration with that of...
5628 (make_pass_scev_cprop): ...new function.
5629 (pass_empty_loop): Replace declaration with that of...
5630 (make_pass_empty_loop): ...new function.
5631 (pass_record_bounds): Replace declaration with that of...
5632 (make_pass_record_bounds): ...new function.
5633 (pass_graphite): Replace declaration with that of...
5634 (make_pass_graphite): ...new function.
5635 (pass_graphite_transforms): Replace declaration with that of...
5636 (make_pass_graphite_transforms): ...new function.
5637 (pass_if_conversion): Replace declaration with that of...
5638 (make_pass_if_conversion): ...new function.
5639 (pass_loop_distribution): Replace declaration with that of...
5640 (make_pass_loop_distribution): ...new function.
5641 (pass_vectorize): Replace declaration with that of...
5642 (make_pass_vectorize): ...new function.
5643 (pass_slp_vectorize): Replace declaration with that of...
5644 (make_pass_slp_vectorize): ...new function.
5645 (pass_complete_unroll): Replace declaration with that of...
5646 (make_pass_complete_unroll): ...new function.
5647 (pass_complete_unrolli): Replace declaration with that of...
5648 (make_pass_complete_unrolli): ...new function.
5649 (pass_parallelize_loops): Replace declaration with that of...
5650 (make_pass_parallelize_loops): ...new function.
5651 (pass_loop_prefetch): Replace declaration with that of...
5652 (make_pass_loop_prefetch): ...new function.
5653 (pass_iv_optimize): Replace declaration with that of...
5654 (make_pass_iv_optimize): ...new function.
5655 (pass_tree_loop_done): Replace declaration with that of...
5656 (make_pass_tree_loop_done): ...new function.
5657 (pass_ch): Replace declaration with that of...
5658 (make_pass_ch): ...new function.
5659 (pass_ccp): Replace declaration with that of...
5660 (make_pass_ccp): ...new function.
5661 (pass_phi_only_cprop): Replace declaration with that of...
5662 (make_pass_phi_only_cprop): ...new function.
5663 (pass_build_ssa): Replace declaration with that of...
5664 (make_pass_build_ssa): ...new function.
5665 (pass_build_alias): Replace declaration with that of...
5666 (make_pass_build_alias): ...new function.
5667 (pass_build_ealias): Replace declaration with that of...
5668 (make_pass_build_ealias): ...new function.
5669 (pass_dominator): Replace declaration with that of...
5670 (make_pass_dominator): ...new function.
5671 (pass_dce): Replace declaration with that of...
5672 (make_pass_dce): ...new function.
5673 (pass_dce_loop): Replace declaration with that of...
5674 (make_pass_dce_loop): ...new function.
5675 (pass_cd_dce): Replace declaration with that of...
5676 (make_pass_cd_dce): ...new function.
5677 (pass_call_cdce): Replace declaration with that of...
5678 (make_pass_call_cdce): ...new function.
5679 (pass_merge_phi): Replace declaration with that of...
5680 (make_pass_merge_phi): ...new function.
5681 (pass_split_crit_edges): Replace declaration with that of...
5682 (make_pass_split_crit_edges): ...new function.
5683 (pass_pre): Replace declaration with that of...
5684 (make_pass_pre): ...new function.
5685 (pass_profile): Replace declaration with that of...
5686 (make_pass_profile): ...new function.
5687 (pass_strip_predict_hints): Replace declaration with that of...
5688 (make_pass_strip_predict_hints): ...new function.
5689 (pass_lower_complex_O0): Replace declaration with that of...
5690 (make_pass_lower_complex_O0): ...new function.
5691 (pass_lower_complex): Replace declaration with that of...
5692 (make_pass_lower_complex): ...new function.
5693 (pass_lower_vector): Replace declaration with that of...
5694 (make_pass_lower_vector): ...new function.
5695 (pass_lower_vector_ssa): Replace declaration with that of...
5696 (make_pass_lower_vector_ssa): ...new function.
5697 (pass_lower_omp): Replace declaration with that of...
5698 (make_pass_lower_omp): ...new function.
5699 (pass_diagnose_omp_blocks): Replace declaration with that of...
5700 (make_pass_diagnose_omp_blocks): ...new function.
5701 (pass_expand_omp): Replace declaration with that of...
5702 (make_pass_expand_omp): ...new function.
5703 (pass_expand_omp_ssa): Replace declaration with that of...
5704 (make_pass_expand_omp_ssa): ...new function.
5705 (pass_object_sizes): Replace declaration with that of...
5706 (make_pass_object_sizes): ...new function.
5707 (pass_strlen): Replace declaration with that of...
5708 (make_pass_strlen): ...new function.
5709 (pass_fold_builtins): Replace declaration with that of...
5710 (make_pass_fold_builtins): ...new function.
5711 (pass_stdarg): Replace declaration with that of...
5712 (make_pass_stdarg): ...new function.
5713 (pass_early_warn_uninitialized): Replace declaration with that of...
5714 (make_pass_early_warn_uninitialized): ...new function.
5715 (pass_late_warn_uninitialized): Replace declaration with that of...
5716 (make_pass_late_warn_uninitialized): ...new function.
5717 (pass_cse_reciprocals): Replace declaration with that of...
5718 (make_pass_cse_reciprocals): ...new function.
5719 (pass_cse_sincos): Replace declaration with that of...
5720 (make_pass_cse_sincos): ...new function.
5721 (pass_optimize_bswap): Replace declaration with that of...
5722 (make_pass_optimize_bswap): ...new function.
5723 (pass_optimize_widening_mul): Replace declaration with that of...
5724 (make_pass_optimize_widening_mul): ...new function.
5725 (pass_warn_function_return): Replace declaration with that of...
5726 (make_pass_warn_function_return): ...new function.
5727 (pass_warn_function_noreturn): Replace declaration with that of...
5728 (make_pass_warn_function_noreturn): ...new function.
5729 (pass_cselim): Replace declaration with that of...
5730 (make_pass_cselim): ...new function.
5731 (pass_phiopt): Replace declaration with that of...
5732 (make_pass_phiopt): ...new function.
5733 (pass_forwprop): Replace declaration with that of...
5734 (make_pass_forwprop): ...new function.
5735 (pass_phiprop): Replace declaration with that of...
5736 (make_pass_phiprop): ...new function.
5737 (pass_tree_ifcombine): Replace declaration with that of...
5738 (make_pass_tree_ifcombine): ...new function.
5739 (pass_dse): Replace declaration with that of...
5740 (make_pass_dse): ...new function.
5741 (pass_nrv): Replace declaration with that of...
5742 (make_pass_nrv): ...new function.
5743 (pass_rename_ssa_copies): Replace declaration with that of...
5744 (make_pass_rename_ssa_copies): ...new function.
5745 (pass_sink_code): Replace declaration with that of...
5746 (make_pass_sink_code): ...new function.
5747 (pass_fre): Replace declaration with that of...
5748 (make_pass_fre): ...new function.
5749 (pass_check_data_deps): Replace declaration with that of...
5750 (make_pass_check_data_deps): ...new function.
5751 (pass_copy_prop): Replace declaration with that of...
5752 (make_pass_copy_prop): ...new function.
5753 (pass_vrp): Replace declaration with that of...
5754 (make_pass_vrp): ...new function.
5755 (pass_uncprop): Replace declaration with that of...
5756 (make_pass_uncprop): ...new function.
5757 (pass_return_slot): Replace declaration with that of...
5758 (make_pass_return_slot): ...new function.
5759 (pass_reassoc): Replace declaration with that of...
5760 (make_pass_reassoc): ...new function.
5761 (pass_rebuild_cgraph_edges): Replace declaration with that of...
5762 (make_pass_rebuild_cgraph_edges): ...new function.
5763 (pass_remove_cgraph_callee_edges): Replace declaration with that of...
5764 (make_pass_remove_cgraph_callee_edges): ...new function.
5765 (pass_build_cgraph_edges): Replace declaration with that of...
5766 (make_pass_build_cgraph_edges): ...new function.
5767 (pass_local_pure_const): Replace declaration with that of...
5768 (make_pass_local_pure_const): ...new function.
5769 (pass_tracer): Replace declaration with that of...
5770 (make_pass_tracer): ...new function.
5771 (pass_warn_unused_result): Replace declaration with that of...
5772 (make_pass_warn_unused_result): ...new function.
5773 (pass_diagnose_tm_blocks): Replace declaration with that of...
5774 (make_pass_diagnose_tm_blocks): ...new function.
5775 (pass_lower_tm): Replace declaration with that of...
5776 (make_pass_lower_tm): ...new function.
5777 (pass_tm_init): Replace declaration with that of...
5778 (make_pass_tm_init): ...new function.
5779 (pass_tm_mark): Replace declaration with that of...
5780 (make_pass_tm_mark): ...new function.
5781 (pass_tm_memopt): Replace declaration with that of...
5782 (make_pass_tm_memopt): ...new function.
5783 (pass_tm_edges): Replace declaration with that of...
5784 (make_pass_tm_edges): ...new function.
5785 (pass_split_functions): Replace declaration with that of...
5786 (make_pass_split_functions): ...new function.
5787 (pass_feedback_split_functions): Replace declaration with that of...
5788 (make_pass_feedback_split_functions): ...new function.
5789 (pass_strength_reduction): Replace declaration with that of...
5790 (make_pass_strength_reduction): ...new function.
5791 (pass_ipa_lower_emutls): Replace declaration with that of...
5792 (make_pass_ipa_lower_emutls): ...new function.
5793 (pass_ipa_function_and_variable_visibility): Replace declaration with
5794 that of...
5795 (make_pass_ipa_function_and_variable_visibility): ...new function.
5796 (pass_ipa_tree_profile): Replace declaration with that of...
5797 (make_pass_ipa_tree_profile): ...new function.
5798 (pass_early_local_passes): Replace declaration with that of...
5799 (make_pass_early_local_passes): ...new function.
5800 (pass_ipa_whole_program_visibility): Replace declaration with that
5801 of...
5802 (make_pass_ipa_whole_program_visibility): ...new function.
5803 (pass_ipa_lto_gimple_out): Replace declaration with that of...
5804 (make_pass_ipa_lto_gimple_out): ...new function.
5805 (pass_ipa_increase_alignment): Replace declaration with that of...
5806 (make_pass_ipa_increase_alignment): ...new function.
5807 (pass_ipa_inline): Replace declaration with that of...
5808 (make_pass_ipa_inline): ...new function.
5809 (pass_ipa_free_lang_data): Replace declaration with that of...
5810 (make_pass_ipa_free_lang_data): ...new function.
5811 (pass_ipa_free_inline_summary): Replace declaration with that of...
5812 (make_pass_ipa_free_inline_summary): ...new function.
5813 (pass_ipa_cp): Replace declaration with that of...
5814 (make_pass_ipa_cp): ...new function.
5815 (pass_ipa_reference): Replace declaration with that of...
5816 (make_pass_ipa_reference): ...new function.
5817 (pass_ipa_pure_const): Replace declaration with that of...
5818 (make_pass_ipa_pure_const): ...new function.
5819 (pass_ipa_pta): Replace declaration with that of...
5820 (make_pass_ipa_pta): ...new function.
5821 (pass_ipa_lto_finish_out): Replace declaration with that of...
5822 (make_pass_ipa_lto_finish_out): ...new function.
5823 (pass_ipa_tm): Replace declaration with that of...
5824 (make_pass_ipa_tm): ...new function.
5825 (pass_ipa_profile): Replace declaration with that of...
5826 (make_pass_ipa_profile): ...new function.
5827 (pass_ipa_cdtor_merge): Replace declaration with that of...
5828 (make_pass_ipa_cdtor_merge): ...new function.
5829 (pass_cleanup_cfg_post_optimizing): Replace declaration with that
5830 of...
5831 (make_pass_cleanup_cfg_post_optimizing): ...new function.
5832 (pass_init_datastructures): Replace declaration with that of...
5833 (make_pass_init_datastructures): ...new function.
5834 (pass_fixup_cfg): Replace declaration with that of...
5835 (make_pass_fixup_cfg): ...new function.
5836 (pass_expand): Replace declaration with that of...
5837 (make_pass_expand): ...new function.
5838 (pass_instantiate_virtual_regs): Replace declaration with that of...
5839 (make_pass_instantiate_virtual_regs): ...new function.
5840 (pass_rtl_fwprop): Replace declaration with that of...
5841 (make_pass_rtl_fwprop): ...new function.
5842 (pass_rtl_fwprop_addr): Replace declaration with that of...
5843 (make_pass_rtl_fwprop_addr): ...new function.
5844 (pass_jump): Replace declaration with that of...
5845 (make_pass_jump): ...new function.
5846 (pass_jump2): Replace declaration with that of...
5847 (make_pass_jump2): ...new function.
5848 (pass_lower_subreg): Replace declaration with that of...
5849 (make_pass_lower_subreg): ...new function.
5850 (pass_cse): Replace declaration with that of...
5851 (make_pass_cse): ...new function.
5852 (pass_fast_rtl_dce): Replace declaration with that of...
5853 (make_pass_fast_rtl_dce): ...new function.
5854 (pass_ud_rtl_dce): Replace declaration with that of...
5855 (make_pass_ud_rtl_dce): ...new function.
5856 (pass_rtl_dce): Replace declaration with that of...
5857 (make_pass_rtl_dce): ...new function.
5858 (pass_rtl_dse1): Replace declaration with that of...
5859 (make_pass_rtl_dse1): ...new function.
5860 (pass_rtl_dse2): Replace declaration with that of...
5861 (make_pass_rtl_dse2): ...new function.
5862 (pass_rtl_dse3): Replace declaration with that of...
5863 (make_pass_rtl_dse3): ...new function.
5864 (pass_rtl_cprop): Replace declaration with that of...
5865 (make_pass_rtl_cprop): ...new function.
5866 (pass_rtl_pre): Replace declaration with that of...
5867 (make_pass_rtl_pre): ...new function.
5868 (pass_rtl_hoist): Replace declaration with that of...
5869 (make_pass_rtl_hoist): ...new function.
5870 (pass_rtl_store_motion): Replace declaration with that of...
5871 (make_pass_rtl_store_motion): ...new function.
5872 (pass_cse_after_global_opts): Replace declaration with that of...
5873 (make_pass_cse_after_global_opts): ...new function.
5874 (pass_rtl_ifcvt): Replace declaration with that of...
5875 (make_pass_rtl_ifcvt): ...new function.
5876 (pass_into_cfg_layout_mode): Replace declaration with that of...
5877 (make_pass_into_cfg_layout_mode): ...new function.
5878 (pass_outof_cfg_layout_mode): Replace declaration with that of...
5879 (make_pass_outof_cfg_layout_mode): ...new function.
5880 (pass_loop2): Replace declaration with that of...
5881 (make_pass_loop2): ...new function.
5882 (pass_rtl_loop_init): Replace declaration with that of...
5883 (make_pass_rtl_loop_init): ...new function.
5884 (pass_rtl_move_loop_invariants): Replace declaration with that of...
5885 (make_pass_rtl_move_loop_invariants): ...new function.
5886 (pass_rtl_unswitch): Replace declaration with that of...
5887 (make_pass_rtl_unswitch): ...new function.
5888 (pass_rtl_unroll_and_peel_loops): Replace declaration with that of...
5889 (make_pass_rtl_unroll_and_peel_loops): ...new function.
5890 (pass_rtl_doloop): Replace declaration with that of...
5891 (make_pass_rtl_doloop): ...new function.
5892 (pass_rtl_loop_done): Replace declaration with that of...
5893 (make_pass_rtl_loop_done): ...new function.
5894 (pass_web): Replace declaration with that of...
5895 (make_pass_web): ...new function.
5896 (pass_cse2): Replace declaration with that of...
5897 (make_pass_cse2): ...new function.
5898 (pass_df_initialize_opt): Replace declaration with that of...
5899 (make_pass_df_initialize_opt): ...new function.
5900 (pass_df_initialize_no_opt): Replace declaration with that of...
5901 (make_pass_df_initialize_no_opt): ...new function.
5902 (pass_reginfo_init): Replace declaration with that of...
5903 (make_pass_reginfo_init): ...new function.
5904 (pass_inc_dec): Replace declaration with that of...
5905 (make_pass_inc_dec): ...new function.
5906 (pass_stack_ptr_mod): Replace declaration with that of...
5907 (make_pass_stack_ptr_mod): ...new function.
5908 (pass_initialize_regs): Replace declaration with that of...
5909 (make_pass_initialize_regs): ...new function.
5910 (pass_combine): Replace declaration with that of...
5911 (make_pass_combine): ...new function.
5912 (pass_if_after_combine): Replace declaration with that of...
5913 (make_pass_if_after_combine): ...new function.
5914 (pass_ree): Replace declaration with that of...
5915 (make_pass_ree): ...new function.
5916 (pass_partition_blocks): Replace declaration with that of...
5917 (make_pass_partition_blocks): ...new function.
5918 (pass_match_asm_constraints): Replace declaration with that of...
5919 (make_pass_match_asm_constraints): ...new function.
5920 (pass_regmove): Replace declaration with that of...
5921 (make_pass_regmove): ...new function.
5922 (pass_split_all_insns): Replace declaration with that of...
5923 (make_pass_split_all_insns): ...new function.
5924 (pass_fast_rtl_byte_dce): Replace declaration with that of...
5925 (make_pass_fast_rtl_byte_dce): ...new function.
5926 (pass_lower_subreg2): Replace declaration with that of...
5927 (make_pass_lower_subreg2): ...new function.
5928 (pass_mode_switching): Replace declaration with that of...
5929 (make_pass_mode_switching): ...new function.
5930 (pass_sms): Replace declaration with that of...
5931 (make_pass_sms): ...new function.
5932 (pass_sched): Replace declaration with that of...
5933 (make_pass_sched): ...new function.
5934 (pass_ira): Replace declaration with that of...
5935 (make_pass_ira): ...new function.
5936 (pass_reload): Replace declaration with that of...
5937 (make_pass_reload): ...new function.
5938 (pass_clean_state): Replace declaration with that of...
5939 (make_pass_clean_state): ...new function.
5940 (pass_branch_prob): Replace declaration with that of...
5941 (make_pass_branch_prob): ...new function.
5942 (pass_value_profile_transformations): Replace declaration with that
5943 of...
5944 (make_pass_value_profile_transformations): ...new function.
5945 (pass_postreload_cse): Replace declaration with that of...
5946 (make_pass_postreload_cse): ...new function.
5947 (pass_gcse2): Replace declaration with that of...
5948 (make_pass_gcse2): ...new function.
5949 (pass_split_after_reload): Replace declaration with that of...
5950 (make_pass_split_after_reload): ...new function.
5951 (pass_branch_target_load_optimize1): Replace declaration with that
5952 of...
5953 (make_pass_branch_target_load_optimize1): ...new function.
5954 (pass_thread_prologue_and_epilogue): Replace declaration with that
5955 of...
5956 (make_pass_thread_prologue_and_epilogue): ...new function.
5957 (pass_stack_adjustments): Replace declaration with that of...
5958 (make_pass_stack_adjustments): ...new function.
5959 (pass_peephole2): Replace declaration with that of...
5960 (make_pass_peephole2): ...new function.
5961 (pass_if_after_reload): Replace declaration with that of...
5962 (make_pass_if_after_reload): ...new function.
5963 (pass_regrename): Replace declaration with that of...
5964 (make_pass_regrename): ...new function.
5965 (pass_cprop_hardreg): Replace declaration with that of...
5966 (make_pass_cprop_hardreg): ...new function.
5967 (pass_reorder_blocks): Replace declaration with that of...
5968 (make_pass_reorder_blocks): ...new function.
5969 (pass_branch_target_load_optimize2): Replace declaration with that
5970 of...
5971 (make_pass_branch_target_load_optimize2): ...new function.
5972 (pass_leaf_regs): Replace declaration with that of...
5973 (make_pass_leaf_regs): ...new function.
5974 (pass_split_before_sched2): Replace declaration with that of...
5975 (make_pass_split_before_sched2): ...new function.
5976 (pass_compare_elim_after_reload): Replace declaration with that of...
5977 (make_pass_compare_elim_after_reload): ...new function.
5978 (pass_sched2): Replace declaration with that of...
5979 (make_pass_sched2): ...new function.
5980 (pass_stack_regs): Replace declaration with that of...
5981 (make_pass_stack_regs): ...new function.
5982 (pass_stack_regs_run): Replace declaration with that of...
5983 (make_pass_stack_regs_run): ...new function.
5984 (pass_df_finish): Replace declaration with that of...
5985 (make_pass_df_finish): ...new function.
5986 (pass_compute_alignments): Replace declaration with that of...
5987 (make_pass_compute_alignments): ...new function.
5988 (pass_duplicate_computed_gotos): Replace declaration with that of...
5989 (make_pass_duplicate_computed_gotos): ...new function.
5990 (pass_variable_tracking): Replace declaration with that of...
5991 (make_pass_variable_tracking): ...new function.
5992 (pass_free_cfg): Replace declaration with that of...
5993 (make_pass_free_cfg): ...new function.
5994 (pass_machine_reorg): Replace declaration with that of...
5995 (make_pass_machine_reorg): ...new function.
5996 (pass_cleanup_barriers): Replace declaration with that of...
5997 (make_pass_cleanup_barriers): ...new function.
5998 (pass_delay_slots): Replace declaration with that of...
5999 (make_pass_delay_slots): ...new function.
6000 (pass_split_for_shorten_branches): Replace declaration with that of...
6001 (make_pass_split_for_shorten_branches): ...new function.
6002 (pass_split_before_regstack): Replace declaration with that of...
6003 (make_pass_split_before_regstack): ...new function.
6004 (pass_convert_to_eh_region_ranges): Replace declaration with that
6005 of...
6006 (make_pass_convert_to_eh_region_ranges): ...new function.
6007 (pass_shorten_branches): Replace declaration with that of...
6008 (make_pass_shorten_branches): ...new function.
6009 (pass_set_nothrow_function_flags): Replace declaration with that of...
6010 (make_pass_set_nothrow_function_flags): ...new function.
6011 (pass_dwarf2_frame): Replace declaration with that of...
6012 (make_pass_dwarf2_frame): ...new function.
6013 (pass_final): Replace declaration with that of...
6014 (make_pass_final): ...new function.
6015 (pass_rtl_seqabstr): Replace declaration with that of...
6016 (make_pass_rtl_seqabstr): ...new function.
6017 (pass_release_ssa_names): Replace declaration with that of...
6018 (make_pass_release_ssa_names): ...new function.
6019 (pass_early_inline): Replace declaration with that of...
6020 (make_pass_early_inline): ...new function.
6021 (pass_inline_parameters): Replace declaration with that of...
6022 (make_pass_inline_parameters): ...new function.
6023 (pass_update_address_taken): Replace declaration with that of...
6024 (make_pass_update_address_taken): ...new function.
6025 (pass_convert_switch): Replace declaration with that of...
6026 (make_pass_convert_switch): ...new function.
6027 * tree-profile.c (pass_ipa_tree_profile): Convert from a global struct
6028 to a subclass of simple_ipa_opt_pass along with...
6029 (pass_data_ipa_tree_profile): ...new pass_data instance and...
6030 (make_pass_ipa_tree_profile): ...new function.
6031 * tree-sra.c (pass_sra_early): Convert from a global struct to a
6032 subclass of gimple_opt_pass along with...
6033 (pass_data_sra_early): ...new pass_data instance and...
6034 (make_pass_sra_early): ...new function.
6035 (pass_sra): Convert from a global struct to a subclass of
6036 gimple_opt_pass along with...
6037 (pass_data_sra): ...new pass_data instance and...
6038 (make_pass_sra): ...new function.
6039 (pass_early_ipa_sra): Convert from a global struct to a subclass of
6040 gimple_opt_pass along with...
6041 (pass_data_early_ipa_sra): ...new pass_data instance and...
6042 (make_pass_early_ipa_sra): ...new function.
6043 * tree-ssa-ccp.c (pass_ccp): Convert from a global struct to a
6044 subclass of gimple_opt_pass along with...
6045 (pass_data_ccp): ...new pass_data instance and...
6046 (make_pass_ccp): ...new function.
6047 (pass_fold_builtins): Convert from a global struct to a subclass of
6048 gimple_opt_pass along with...
6049 (pass_data_fold_builtins): ...new pass_data instance and...
6050 (make_pass_fold_builtins): ...new function.
6051 * tree-ssa-copy.c (pass_copy_prop): Convert from a global struct to a
6052 subclass of gimple_opt_pass along with...
6053 (pass_data_copy_prop): ...new pass_data instance and...
6054 (make_pass_copy_prop): ...new function.
6055 * tree-ssa-copyrename.c (pass_rename_ssa_copies): Convert from a
6056 global struct to a subclass of gimple_opt_pass along with...
6057 (pass_data_rename_ssa_copies): ...new pass_data instance and...
6058 (make_pass_rename_ssa_copies): ...new function.
6059 * tree-ssa-dce.c (pass_dce): Convert from a global struct to a
6060 subclass of gimple_opt_pass along with...
6061 (pass_data_dce): ...new pass_data instance and...
6062 (make_pass_dce): ...new function.
6063 (pass_dce_loop): Convert from a global struct to a subclass of
6064 gimple_opt_pass along with...
6065 (pass_data_dce_loop): ...new pass_data instance and...
6066 (make_pass_dce_loop): ...new function.
6067 (pass_cd_dce): Convert from a global struct to a subclass of
6068 gimple_opt_pass along with...
6069 (pass_data_cd_dce): ...new pass_data instance and...
6070 (make_pass_cd_dce): ...new function.
6071 * tree-ssa-dom.c (pass_dominator): Convert from a global struct to a
6072 subclass of gimple_opt_pass along with...
6073 (pass_data_dominator): ...new pass_data instance and...
6074 (make_pass_dominator): ...new function.
6075 (pass_phi_only_cprop): Convert from a global struct to a subclass of
6076 gimple_opt_pass along with...
6077 (pass_data_phi_only_cprop): ...new pass_data instance and...
6078 (make_pass_phi_only_cprop): ...new function.
6079 * tree-ssa-dse.c (pass_dse): Convert from a global struct to a
6080 subclass of gimple_opt_pass along with...
6081 (pass_data_dse): ...new pass_data instance and...
6082 (make_pass_dse): ...new function.
6083 * tree-ssa-forwprop.c (pass_forwprop): Convert from a global struct to
6084 a subclass of gimple_opt_pass along with...
6085 (pass_data_forwprop): ...new pass_data instance and...
6086 (make_pass_forwprop): ...new function.
6087 * tree-ssa-ifcombine.c (pass_tree_ifcombine): Convert from a global
6088 struct to a subclass of gimple_opt_pass along with...
6089 (pass_data_tree_ifcombine): ...new pass_data instance and...
6090 (make_pass_tree_ifcombine): ...new function.
6091 * tree-ssa-loop-ch.c (pass_ch): Convert from a global struct to a
6092 subclass of gimple_opt_pass along with...
6093 (pass_data_ch): ...new pass_data instance and...
6094 (make_pass_ch): ...new function.
6095 * tree-ssa-loop.c (pass_tree_loop): Convert from a global struct to a
6096 subclass of gimple_opt_pass along with...
6097 (pass_data_tree_loop): ...new pass_data instance and...
6098 (make_pass_tree_loop): ...new function.
6099 (pass_tree_loop_init): Convert from a global struct to a subclass of
6100 gimple_opt_pass along with...
6101 (pass_data_tree_loop_init): ...new pass_data instance and...
6102 (make_pass_tree_loop_init): ...new function.
6103 (pass_lim): Convert from a global struct to a subclass of
6104 gimple_opt_pass along with...
6105 (pass_data_lim): ...new pass_data instance and...
6106 (make_pass_lim): ...new function.
6107 (pass_tree_unswitch): Convert from a global struct to a subclass of
6108 gimple_opt_pass along with...
6109 (pass_data_tree_unswitch): ...new pass_data instance and...
6110 (make_pass_tree_unswitch): ...new function.
6111 (pass_predcom): Convert from a global struct to a subclass of
6112 gimple_opt_pass along with...
6113 (pass_data_predcom): ...new pass_data instance and...
6114 (make_pass_predcom): ...new function.
6115 (pass_vectorize): Convert from a global struct to a subclass of
6116 gimple_opt_pass along with...
6117 (pass_data_vectorize): ...new pass_data instance and...
6118 (make_pass_vectorize): ...new function.
6119 (pass_graphite): Convert from a global struct to a subclass of
6120 gimple_opt_pass along with...
6121 (pass_data_graphite): ...new pass_data instance and...
6122 (make_pass_graphite): ...new function.
6123 (pass_graphite_transforms): Convert from a global struct to a subclass
6124 of gimple_opt_pass along with...
6125 (pass_data_graphite_transforms): ...new pass_data instance and...
6126 (make_pass_graphite_transforms): ...new function.
6127 (pass_check_data_deps): Convert from a global struct to a subclass of
6128 gimple_opt_pass along with...
6129 (pass_data_check_data_deps): ...new pass_data instance and...
6130 (make_pass_check_data_deps): ...new function.
6131 (pass_iv_canon): Convert from a global struct to a subclass of
6132 gimple_opt_pass along with...
6133 (pass_data_iv_canon): ...new pass_data instance and...
6134 (make_pass_iv_canon): ...new function.
6135 (pass_scev_cprop): Convert from a global struct to a subclass of
6136 gimple_opt_pass along with...
6137 (pass_data_scev_cprop): ...new pass_data instance and...
6138 (make_pass_scev_cprop): ...new function.
6139 (pass_record_bounds): Convert from a global struct to a subclass of
6140 gimple_opt_pass along with...
6141 (pass_data_record_bounds): ...new pass_data instance and...
6142 (make_pass_record_bounds): ...new function.
6143 (pass_complete_unroll): Convert from a global struct to a subclass of
6144 gimple_opt_pass along with...
6145 (pass_data_complete_unroll): ...new pass_data instance and...
6146 (make_pass_complete_unroll): ...new function.
6147 (pass_complete_unrolli): Convert from a global struct to a subclass of
6148 gimple_opt_pass along with...
6149 (pass_data_complete_unrolli): ...new pass_data instance and...
6150 (make_pass_complete_unrolli): ...new function.
6151 (pass_parallelize_loops): Convert from a global struct to a subclass
6152 of gimple_opt_pass along with...
6153 (pass_data_parallelize_loops): ...new pass_data instance and...
6154 (make_pass_parallelize_loops): ...new function.
6155 (pass_loop_prefetch): Convert from a global struct to a subclass of
6156 gimple_opt_pass along with...
6157 (pass_data_loop_prefetch): ...new pass_data instance and...
6158 (make_pass_loop_prefetch): ...new function.
6159 (pass_iv_optimize): Convert from a global struct to a subclass of
6160 gimple_opt_pass along with...
6161 (pass_data_iv_optimize): ...new pass_data instance and...
6162 (make_pass_iv_optimize): ...new function.
6163 (pass_tree_loop_done): Convert from a global struct to a subclass of
6164 gimple_opt_pass along with...
6165 (pass_data_tree_loop_done): ...new pass_data instance and...
6166 (make_pass_tree_loop_done): ...new function.
6167 * tree-ssa-math-opts.c (pass_cse_reciprocals): Convert from a global
6168 struct to a subclass of gimple_opt_pass along with...
6169 (pass_data_cse_reciprocals): ...new pass_data instance and...
6170 (make_pass_cse_reciprocals): ...new function.
6171 (pass_cse_sincos): Convert from a global struct to a subclass of
6172 gimple_opt_pass along with...
6173 (pass_data_cse_sincos): ...new pass_data instance and...
6174 (make_pass_cse_sincos): ...new function.
6175 (pass_optimize_bswap): Convert from a global struct to a subclass of
6176 gimple_opt_pass along with...
6177 (pass_data_optimize_bswap): ...new pass_data instance and...
6178 (make_pass_optimize_bswap): ...new function.
6179 (pass_optimize_widening_mul): Convert from a global struct to a
6180 subclass of gimple_opt_pass along with...
6181 (pass_data_optimize_widening_mul): ...new pass_data instance and...
6182 (make_pass_optimize_widening_mul): ...new function.
6183 * tree-ssa-phiopt.c (pass_phiopt): Convert from a global struct to a
6184 subclass of gimple_opt_pass along with...
6185 (pass_data_phiopt): ...new pass_data instance and...
6186 (make_pass_phiopt): ...new function.
6187 (pass_cselim): Convert from a global struct to a subclass of
6188 gimple_opt_pass along with...
6189 (pass_data_cselim): ...new pass_data instance and...
6190 (make_pass_cselim): ...new function.
6191 * tree-ssa-phiprop.c (pass_phiprop): Convert from a global struct to a
6192 subclass of gimple_opt_pass along with...
6193 (pass_data_phiprop): ...new pass_data instance and...
6194 (make_pass_phiprop): ...new function.
6195 * tree-ssa-pre.c (pass_pre): Convert from a global struct to a
6196 subclass of gimple_opt_pass along with...
6197 (pass_data_pre): ...new pass_data instance and...
6198 (make_pass_pre): ...new function.
6199 (pass_fre): Convert from a global struct to a subclass of
6200 gimple_opt_pass along with...
6201 (pass_data_fre): ...new pass_data instance and...
6202 (make_pass_fre): ...new function.
6203 * tree-ssa-reassoc.c (pass_reassoc): Convert from a global struct to a
6204 subclass of gimple_opt_pass along with...
6205 (pass_data_reassoc): ...new pass_data instance and...
6206 (make_pass_reassoc): ...new function.
6207 * tree-ssa-sink.c (pass_sink_code): Convert from a global struct to a
6208 subclass of gimple_opt_pass along with...
6209 (pass_data_sink_code): ...new pass_data instance and...
6210 (make_pass_sink_code): ...new function.
6211 * tree-ssa-strlen.c (pass_strlen): Convert from a global struct to a
6212 subclass of gimple_opt_pass along with...
6213 (pass_data_strlen): ...new pass_data instance and...
6214 (make_pass_strlen): ...new function.
6215 * tree-ssa-structalias.c (pass_build_alias): Convert from a global
6216 struct to a subclass of gimple_opt_pass along with...
6217 (pass_data_build_alias): ...new pass_data instance and...
6218 (make_pass_build_alias): ...new function.
6219 (pass_build_ealias): Convert from a global struct to a subclass of
6220 gimple_opt_pass along with...
6221 (pass_data_build_ealias): ...new pass_data instance and...
6222 (make_pass_build_ealias): ...new function.
6223 (pass_ipa_pta): Convert from a global struct to a subclass of
6224 simple_ipa_opt_pass along with...
6225 (pass_data_ipa_pta): ...new pass_data instance and...
6226 (make_pass_ipa_pta): ...new function.
6227 * tree-ssa-uncprop.c (pass_uncprop): Convert from a global struct to a
6228 subclass of gimple_opt_pass along with...
6229 (pass_data_uncprop): ...new pass_data instance and...
6230 (make_pass_uncprop): ...new function.
6231 * tree-ssa-uninit.c (pass_late_warn_uninitialized): Convert from a
6232 global struct to a subclass of gimple_opt_pass along with...
6233 (pass_data_late_warn_uninitialized): ...new pass_data instance and...
6234 (make_pass_late_warn_uninitialized): ...new function.
6235 * tree-ssa.c (pass_init_datastructures): Convert from a global struct
6236 to a subclass of gimple_opt_pass along with...
6237 (pass_data_init_datastructures): ...new pass_data instance and...
6238 (make_pass_init_datastructures): ...new function.
6239 (pass_early_warn_uninitialized): Convert from a global struct to a
6240 subclass of gimple_opt_pass along with...
6241 (pass_data_early_warn_uninitialized): ...new pass_data instance and...
6242 (make_pass_early_warn_uninitialized): ...new function.
6243 (pass_update_address_taken): Convert from a global struct to a
6244 subclass of gimple_opt_pass along with...
6245 (pass_data_update_address_taken): ...new pass_data instance and...
6246 (make_pass_update_address_taken): ...new function.
6247 * tree-ssanames.c (pass_release_ssa_names): Convert from a global
6248 struct to a subclass of gimple_opt_pass along with...
6249 (pass_data_release_ssa_names): ...new pass_data instance and...
6250 (make_pass_release_ssa_names): ...new function.
6251 * tree-stdarg.c (pass_stdarg): Convert from a global struct to a
6252 subclass of gimple_opt_pass along with...
6253 (pass_data_stdarg): ...new pass_data instance and...
6254 (make_pass_stdarg): ...new function.
6255 * tree-switch-conversion.c (pass_convert_switch): Convert from a
6256 global struct to a subclass of gimple_opt_pass along with...
6257 (pass_data_convert_switch): ...new pass_data instance and...
6258 (make_pass_convert_switch): ...new function.
6259 * tree-tailcall.c (pass_tail_recursion): Convert from a global struct
6260 to a subclass of gimple_opt_pass along with...
6261 (pass_data_tail_recursion): ...new pass_data instance and...
6262 (make_pass_tail_recursion): ...new function.
6263 (pass_tail_calls): Convert from a global struct to a subclass of
6264 gimple_opt_pass along with...
6265 (pass_data_tail_calls): ...new pass_data instance and...
6266 (make_pass_tail_calls): ...new function.
6267 * tree-vect-generic.c (pass_lower_vector): Convert from a global
6268 struct to a subclass of gimple_opt_pass along with...
6269 (pass_data_lower_vector): ...new pass_data instance and...
6270 (make_pass_lower_vector): ...new function.
6271 (pass_lower_vector_ssa): Convert from a global struct to a subclass of
6272 gimple_opt_pass along with...
6273 (pass_data_lower_vector_ssa): ...new pass_data instance and...
6274 (make_pass_lower_vector_ssa): ...new function.
6275 * tree-vectorizer.c (pass_slp_vectorize): Convert from a global struct
6276 to a subclass of gimple_opt_pass along with...
6277 (pass_data_slp_vectorize): ...new pass_data instance and...
6278 (make_pass_slp_vectorize): ...new function.
6279 (pass_ipa_increase_alignment): Convert from a global struct to a
6280 subclass of simple_ipa_opt_pass along with...
6281 (pass_data_ipa_increase_alignment): ...new pass_data instance and...
6282 (make_pass_ipa_increase_alignment): ...new function.
6283 * tree-vrp.c (pass_vrp): Convert from a global struct to a subclass of
6284 gimple_opt_pass along with...
6285 (pass_data_vrp): ...new pass_data instance and...
6286 (make_pass_vrp): ...new function.
6287 * tree.c (pass_ipa_free_lang_data): Convert from a global struct to a
6288 subclass of simple_ipa_opt_pass along with...
6289 (pass_data_ipa_free_lang_data): ...new pass_data instance and...
6290 (make_pass_ipa_free_lang_data): ...new function.
6291 * tsan.c (pass_tsan): Convert from a global struct to a subclass of
6292 gimple_opt_pass along with...
6293 (pass_data_tsan): ...new pass_data instance and...
6294 (make_pass_tsan): ...new function.
6295 (pass_tsan_O0): Convert from a global struct to a subclass of
6296 gimple_opt_pass along with...
6297 (pass_data_tsan_O0): ...new pass_data instance and...
6298 (make_pass_tsan_O0): ...new function.
6299 * var-tracking.c (pass_variable_tracking): Convert from a global
6300 struct to a subclass of rtl_opt_pass along with...
6301 (pass_data_variable_tracking): ...new pass_data instance and...
6302 (make_pass_variable_tracking): ...new function.
6303 * web.c (pass_web): Convert from a global struct to a subclass of
6304 rtl_opt_pass along with...
6305 (pass_data_web): ...new pass_data instance and...
6306 (make_pass_web): ...new function.
6307 * config/epiphany/epiphany.h (pass_mode_switch_use): Replace
6308 declaration with that of...
6309 (make_pass_mode_switch_use): ...new function.
6310 (pass_resolve_sw_modes): Replace declaration with that of...
6311 (make_pass_resolve_sw_modes): ...new function.
6312 * config/epiphany/mode-switch-use.c (pass_mode_switch_use): Convert
6313 from a global struct to a subclass of rtl_opt_pass along with...
6314 (pass_data_mode_switch_use): ...new pass_data instance and...
6315 (make_pass_mode_switch_use): ...new function.
6316 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes): Convert
6317 from a global struct to a subclass of rtl_opt_pass along with...
6318 (pass_data_resolve_sw_modes): ...new pass_data instance and...
6319 (make_pass_resolve_sw_modes): ...new function.
6320 * config/i386/i386.c (pass_insert_vzeroupper): Convert from a global
6321 struct to a subclass of rtl_opt_pass along with...
6322 (pass_data_insert_vzeroupper): ...new pass_data instance and...
6323 (make_pass_insert_vzeroupper): ...new function.
6324 * config/sparc/sparc.c (pass_work_around_errata): Convert from a
6325 global struct to a subclass of rtl_opt_pass along with...
6326 (pass_data_work_around_errata): ...new pass_data instance and...
6327 (make_pass_work_around_errata): ...new function.
6328 * config/mips/mips.c (pass_mips_machine_reorg2): Convert from a global
6329 struct to a subclass of rtl_opt_pass along with...
6330 (pass_data_mips_machine_reorg2): ...new pass_data instance and...
6331 (make_pass_mips_machine_reorg2): ...new function.
6332
6a389ed5
DM
63332013-08-05 David Malcolm <dmalcolm@redhat.com>
6334
6335 * passes.c (pass_manager::operator new): New.
6336
f7695dbf
DM
63372013-08-05 David Malcolm <dmalcolm@redhat.com>
6338
6339 Handwritten part of conversion of passes to C++ classes.
6340
6341 * Makefile.in (PASS_MANAGER_H): Add dep on pass-instances.def.
6342 (toplev.o): Add dep on PASS_MANAGER_H.
6343 * cgraphunit.c (cgraph_process_new_functions): Rework invocation
6344 of early local pases to reflect this moving from a global to a
6345 member of gcc::pass_manager.
6346 (cgraph_add_new_function): Likewise.
6347 * lto-cgraph.c (lto_output_node): Update for conversion of
6348 struct ipa_opt_pass_d to a C++ subclass of opt_pass.
6349 * passes.c (opt_pass::clone): New.
6350 (opt_pass::gate): New.
6351 (opt_pass::execute): New.
6352 (opt_pass::opt_pass): New.
6353 (pass_manager::execute_early_local_passes): New.
6354 (pass_manager::execute_pass_mode_switching): new.
6355 (finish_optimization_passes): Convert to...
6356 (pass_manager::finish_optimization_passes): ...this.
6357 (finish_optimization_passes): Update for conversion of passes to
6358 C++ classes.
6359 (register_dump_files_1): Use has_gate since we cannot portably
6360 check a vtable entry against NULL.
6361 (dump_one_pass): Likewise.
6362 (ipa_write_summaries_2): Likewise.
6363 (ipa_write_optimization_summaries_1): Likewise.
6364 (ipa_read_summaries_1): Likewise.
6365 (ipa_read_optimization_summaries_1): Likewise.
6366 (execute_ipa_stmt_fixups): Likewise.
6367 (pass_manager::pass_manager): Rewrite pass-creation, invoking
6368 pass-creation functions rather than wiring up globals, and
6369 storing the results in fields of pass_manager generated using
6370 pass-instances.def.
6371 (pass_manager::dump_profile_report): Update for conversion of
6372 passes to C++ classes.
6373 (pass_manager::execute_ipa_summary_passes): Likewise.
6374 (execute_one_ipa_transform_pass): Likewise.
6375 (execute_one_pass): Use has_gate and has_execute since we cannot
6376 portably check a vtable entry against NULL.
6377 * pass_manager.h (pass_manager::finish_optimization_passes): New.
6378 (pass_manager): Use pass-instances.def to add fields for the
6379 various pass instances.
6380 * toplev.c (finalize): Update for move of
6381 finish_optimization_passes to a method of gcc::pass_manager.
6382 * toplev.h (finish_optimization_passes): Move to method of class
6383 pass_manager.
6384 * tree-pass.h (struct pass_data): New.
03b0ee0a 6385 (opt_pass): Convert to C++ class, make it a subclass of pass_data.
f7695dbf
DM
6386 (opt_pass::gate): Convert to virtual function.
6387 (opt_pass::~opt_pass): New.
6388 (opt_pass::clone): New.
6389 (opt_pass::execute): Convert to virtual function.
6390 (opt_pass::opt_pass): New.
6391 (opt_pass::ctxt_): new.
6392 (gimple_opt_pass): Convert to subclass of opt_pass.
6393 (gimple_opt_pass::gimple_opt_pass): New.
6394 (rtl_opt_pass): Convert to subclass of opt_pass.
6395 (rtl_opt_pass::rtl_opt_pass): New.
6396 (ipa_opt_pass_d): Convert to subclass of opt_pass.
6397 (ipa_opt_pass_d::ipa_opt_pass_d): New.
6398 (simple_ipa_opt_pass): Convert to subclass of opt_pass.
6399 (simple_ipa_opt_pass::simple_ipa_opt_pass): New.
6400 * config/i386/i386.c (rest_of_handle_insert_vzeroupper): Rework
6401 invocation of pass_mode_switching to reflect this moving from a
6402 global to a member of gcc::pass_manager.
6403 (ix86_option_override): Rework how pass_insert_vzeroupper is
6404 added to the pass_manager to reflect autogenerated changes.
03b0ee0a 6405 * config/i386/t-i386 (i386.o) Add deps on CONTEXT_H and PASS_MANAGER_H.
f7695dbf 6406
d0b2f831
RE
64072013-08-05 Richard Earnshaw <rearnsha@arm.com>
6408
6409 PR rtl-optimization/57708
6410 * recog.c (peep2_find_free_register): Validate all regs in a
6411 multi-reg mode.
6412
51a5c0c2
JH
64132013-08-05 Jan Hubicka <jh@suse.cz>
6414
6415 PR lto/57602
03b0ee0a
UB
6416 * cgraph.c (verify_cgraph_node): Accept local flags from other
6417 partitions.
51a5c0c2
JH
6418 * ipa.c (symtab_remove_unreachable_nodes): Do not clear local flag.
6419 (function_and_variable_visibility): Likewise.
6420 * trans-mem.c (ipa_tm_create_version): TM versions are not local.
6421
65f0a120
GDR
64222013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
6423
6424 * graph.c (init_graph_slim_pretty_print): Remove.
6425 (print_graph_cfg): Do not call it. Use local pretty printer.
6426 (start_graph_dump): Likewise.
6427
b3f80694
GDR
64282013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
6429
6430 * gimple-pretty-print.c (buffer): Remove.
6431 (initialized): Likewise.
6432 (maybe_init_pretty_print): Likewise.
6433 (print_gimple_stmt): Do not call it. Use non-static local
6434 pretty_printer variable.
6435 (print_gimple_expr): Likewise.
6436 (print_gimple_seq): Likewise.
6437 (gimple_dump_bb): Likewise.
6438
11a877b3
GDR
64392013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
6440
6441 * asan.c (asan_pp): Remove.
6442 (asan_pp_initialized): Likewise.
6443 (asan_pp_initialize): Likewise.
6444 (asan_pp_string): Take a pretty_printer parameter. Adjust callers.
6445 (asan_emit_stack_protection): Tidy. Use local pretty printer.
6446 (asan_add_global): Likewise.
6447
b066401f
GDR
64482013-08-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
6449
6450 * pretty-print.h (pp_base): Remove. Adjust dependent macros.
6451 * diagnostic.h (diagnostic_flush_buffer): Adjust.
6452 * pretty-print.c (pp_formatted_text_data): Likewise.
6453 (pp_indent): Rename from pp_base_indent.
6454 (pp_format): Rename from pp_base_format.
6455 (pp_output_formatted_text): Rename from pp_base_output_formatted_text.
6456 (pp_format_verbatim): Rename from pp_base_format_verbatim.
6457 (pp_flush): Rename from pp_base_flush.
6458 (pp_set_line_maximum_length): Rename from
6459 pp_base_set_line_maximum_length.
6460 (pp_clear_output_area): Rename from pp_base_clear_output_area.
6461 (pp_set_prefix): Rename from pp_base_set_prefix.
6462 (pp_destroy_prefix): Rename from pp_base_destroy_prefix.
6463 (pp_emit_prefix): Rename from pp_base_emit_prefix.
6464 (pp_append_text): Rename from pp_base_append_text.
6465 (pp_formatted_text): Rename from pp_base_formatted_text.
6466 (pp_last_position_in_text): Rename from pp_base_last_position_in_text.
6467 (pp_remaining_character_count_for_line): Rename from
6468 pp_base_remaining_character_count_for_line.
6469 (pp_newline): Rename from pp_base_newline.
6470 (pp_character): Rename from pp_base_character.
6471 (pp_string): Rename from pp_base_string.
6472 (pp_maybe_space): Rename from pp_base_maybe_space.
6473 * asan.c (asan_pp_string): Adjust.
6474 (asan_emit_stack_protection): Likewise.
6475 (asan_add_global): Likewise.
6476 * sched-vis.c (str_pattern_slim): Adjust pretty printer function call.
6477 * tree-mudflap.c (mf_varname_tree): Likewise.
6478 * tree-pretty-print.c (pp_tree_identifier): Rename from
6479 pp_base_tree_identifier.
6480 * tree-pretty-print.h (pp_tree_identifier): Remove macro definition.
6481 Declare as function.
6482
137a1a27
GDR
64832013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
6484
6485 * pretty-print.h (pp_bar_bar): New.
6486 (pp_ampersand_ampersand): Likewise.
6487 (pp_less_equal): Likewise.
6488 (pp_greater_equal): Likewise.
6489 * gimple-pretty-print.c (dump_ternary_rhs): Use specialized pretty
6490 printer functions instead of pp_string or operators and punctuators.
6491 (dump_gimple_call): Likewise.
6492 (dump_gimple_omp_for): Likewise.
6493 (dump_gimple_transaction): Likewise.
6494 (dump_gimple_phi): Likewise.
6495 (pp_gimple_stmt_1): Likewise.
6496 * sched-vis.c (print_insn): Likewise.
6497 * tree-mudflap.c (mf_varname_tree): Likewise.
6498 * tree-pretty-print.c (dump_block_node): Likewise.
6499 (dump_generic_node): Likewise.
6500
815effe1
JH
65012013-08-02 Jan Hubicka <jh@suse.cz>
6502
6503 * lto-cgraph.c (compute_ltrans_boundary): Add abstract origins into
6504 boundaries.
6505 * lto-streamer-out.c (tree_is_indexable): Results decls and
6506 parm decls are not indexable.
6507 (DFS_write_tree_body): Do not follow args and results.
6508 (hash_tree): Likewise.
6509 (output_functions): Rearrange so struct function is needed
6510 only when real body is output; be able to also ouptut abstract
6511 functions; output DECL_ARGUMENTS and DECL_RESULT.
6512 (lto_output): When not in WPA, ale store abstract functions.
6513 (write_symbol): Do not care about RESULT_DECL.
6514 (output_symbol_p): Handle correctly sbtract decls.
6515 * lto-streamer-in.c (input_function): Rearrange so struct
6516 function can be NULL at entry; allow streaming of
6517 functions w/o body; store DECL_ARGUMENTS and DECL_RESULT.
6518 * ipa.c (symtab_remove_unreachable_nodes): Silence confused
6519 sanity check during LTO.
6520 * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Skip
6521 RESULT_DECl and DECL_ARGUMENTS.
6522 * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
6523 Likewise.
6524
07838b13
GDR
65252013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
6526
6527 * pretty-print.h (pp_underscore): New.
6528 (pp_comma): Tidy.
6529 * gimple-pretty-print.c (dump_unary_rhs): Use specialized pretty
6530 printer functions instead of pp_character.
6531 (dump_binary_rhs): Likewise.
6532 (dump_ternary_rhs): Likewise.
6533 (dump_gimple_call_args): Likewise.
6534 (pp_points_to_solution): Likewise.
6535 (dump_gimple_call): Likewise.
6536 (dump_gimple_switch): Likewise.
6537 (dump_gimple_cond): Likewise.
6538 (dump_gimple_bind): Likewise.
6539 (dump_gimple_try): Likewise.
6540 (dump_gimple_omp_for): Likewise.
6541 (dump_gimple_omp_continue): Likewise.
6542 (dump_gimple_omp_single): Likewise.
6543 (dump_gimple_omp_sections): Likewise.
6544 (dump_gimple_omp_block): Likewise.
6545 (dump_gimple_omp_critical): Likewise.
6546 (dump_gimple_transaction): Likewise.
6547 (dump_gimple_asm): Likewise.
6548 (dump_gimple_phi): Likewise.
6549 (dump_gimple_omp_parallel): Likewise.
6550 (dump_gimple_omp_task): Likewise.
6551 (dump_gimple_omp_atomic_load): Likewise.
6552 (dump_gimple_omp_atomic_store): Likewise.
6553 (dump_gimple_mem_ops): Likewise.
6554 (pp_gimple_stmt_1): Likewise.
6555 (pp_cfg_jump): Likewise.
6556 (dump_implicit_edges): Likewise.
6557 (gimple_dump_bb_for_graph): Likewise.
6558 * graph.c (draw_cfg_node): Likewise.
6559 * langhooks.c (lhd_print_error_function): Likewise.
6560 * sched-vis.c (print_exp): Likewise.
6561 (print_value): Likewise.
6562 (print_pattern): Likewise.
6563 (print_insn): Likewise.
6564 (rtl_dump_bb_for_graph): Likewise.
6565 * tree-pretty-print.c (dump_function_declaration): Likewise.
6566 (dump_array_domain): Likewise.
6567 (dump_omp_clause): Likewise.
6568 (dump_location): Likewise.
6569 (dump_generic_node): Likewise.
6570 (print_struct_decl): Likewise.
6571 * diagnostic.c (diagnostic_show_locus): Use pp_space.
6572
bb0d2039
BS
65732013-08-03 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
6574
6575 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Update
6576 candidate table when replacing a candidate statement.
6577 (replace_rhs_if_not_dup): Likewise.
6578 (replace_one_candidate): Likewise.
6579
bc0ec027 65802013-08-02 Jan Hubicka <jh@suse.cz>
cdaa808a 6581 Martin Liska <marxin.liska@gmail.com>
bc0ec027
JH
6582
6583 * cgraphunit.c (add_new_function): Fix logic when adding from
6584 late IPA pass.
6585 (assemble_thunk): Rename to ...
03b0ee0a
UB
6586 (expand_thunk); .. this one; export; get it working with
6587 general functions; make produced gimple valid.
bc0ec027
JH
6588 * cgraph.h (expand_thunk): Declare.
6589
0e8853ee
JH
65902013-08-02 Jan Hubicka <jh@suse.cz>
6591
03b0ee0a
UB
6592 * ipa-cp.c (gather_context_independent_values): Use
6593 ipa_get_param_move_cost.
6594 (get_replacement_map): Remove PARAM; move parameter folding
6595 into tree-inline.c
0e8853ee
JH
6596 (create_specialized_node): Update.
6597 * ipa-prop.c (ipa_populate_param_decls): Do not look for origins;
6598 assert that we have gimple body; update move_cost.
6599 (count_formal_params): Assert that we have gimple body.
6600 (ipa_dump_param): New function.
6601 (ipa_alloc_node_params): Break out from ...
6602 (ipa_initialize_node_params): ... here.
6603 (ipa_get_vector_of_formal_parms): ICE when used in WPA.
6604 (ipa_write_node_info): Stream move costs.
6605 (ipa_read_node_info): Read move costs.
6606 (ipa_update_after_lto_read): Do not recompute node params.
6607 * ipa-prop.h (ipa_param_descriptor): Add move_cost.
6608 (ipa_get_param): Check we are not in WPA.
6609 (ipa_get_param_move_cost): New.
6610 * tree-inline.c (tree_function_versioning): Fold replacement as needed.
6611 * ipa-inline-analysis.c (inline_node_duplication_hook): Expect only
6612 parm numbers to be present.
6613
ecee672b
VM
66142013-08-02 Vladimir Makarov <vmakarov@redhat.com>
6615
6616 PR rtl-optimization/58048
6617 * lra-constraints.c (process_alt_operands): Don't check asm
6618 operand on register.
6619
13ec0527
EB
66202013-08-02 Eric Botcazou <ebotcazou@adacore.com>
6621
6622 * config/sparc/sparc.c (sparc_emit_membar_for_model) <SMM_TSO>: Add
6623 the implied StoreLoad barrier for atomic operations if before.
6624
af15184a
JH
66252013-08-02 Jan Hubicka <jh@suse.cz>
6626 Martin Liska <marxin.liska@gmail.com>
6627
03b0ee0a
UB
6628 * cgraph.c (cgraph_function_body_availability): Do not check
6629 cgraph flags.
af15184a
JH
6630 * cgraph.h (symtab_for_node_and_aliases, symtab_nonoverwritable_alias,
6631 symtab_node_availability): Declare.
6632 * ipa.c (can_replace_by_local_alias): New.
6633 (function_and_variable_visibility): Use it.
03b0ee0a
UB
6634 * symtab.c (symtab_for_node_and_aliases,
6635 symtab_nonoverwritable_alias_1, symtab_nonoverwritable_alias): New.
af15184a 6636
01e54ef8
VM
66372013-08-02 Vladimir Makarov <vmakarov@redhat.com>
6638
6639 PR rtl-optimization/57963
03b0ee0a 6640 * lra-constraints.c (reverse_equiv_p, contains_reloaded_insn_p): New.
01e54ef8
VM
6641 (lra_constraints): Use them.
6642
e2fd7ca7
SN
66432013-08-02 Sofiane Naci <sofiane.naci@arm.com>
6644
03b0ee0a
UB
6645 * config/arm/types.md (define_attr "type"): Add "load_acq"
6646 and "store_rel".
e2fd7ca7
SN
6647 * config/arm/cortex-a53.md (cortex_a53_load1): Update for attribute
6648 changes.
6649 (cortex_a53_store1): Likewise.
6650
0dcc26c3
JH
66512013-08-01 Jan Hubicka <jh@suse.cz>
6652
03b0ee0a
UB
6653 * ipa.c (symtab_remove_unreachable_nodes): Nodes in other
6654 partitions are not needed.
0dcc26c3 6655
0bd72901
UB
66562013-08-01 Uros Bizjak <ubizjak@gmail.com>
6657
6658 * config/i386/i386.h (MAYBE_NON_Q_CLASS_P): New.
6659 * config/i386/i386.c (ix86_secondary_reload): Use INTEGER_CLASS_P and
6660 MAYBE_NON_Q_CLASS_P where appropriate.
6661
12123452
JH
66622013-08-01 Jan Hubicka <jh@suse.cz>
6663
6664 * cgraph.h (release_function_body): Declare.
6665 * tree.c (free_lang_data_in_decl): Free, parameters and return values
6666 of unused delcarations.
6667
ce852f9c
KT
66682013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6669
03b0ee0a
UB
6670 * config/arm/arm.md (minmax_arithsi_non_canon): Emit canonical
6671 RTL form when subtracting a constant.
ce852f9c 6672
c743b246
KT
66732013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6674
6675 * config/arm/arm.md (peepholes for eq (reg1) (reg2/imm)):
6676 Generate canonical plus rtx with negated immediate instead of minus
6677 where appropriate.
6678 * config/arm/arm.c (thumb2_reorg): Handle ADCS <Rd>, <Rn> case.
6679
c0c123ef
JH
66802013-08-01 Jan Hubicka <jh@suse.cz>
6681
6682 * cgraph.c (cgraph_release_function_body): Use used_as_abstract_origin.
6683 (cgraph_release_function_body): Likewise.
6684 (cgraph_can_remove_if_no_direct_calls_p): Likewise.
6685 * cgraph.h (cgrpah_node): Rename abstract_and_needed
6686 to used_as_abstract_origin.
6687 * tree-inline-transfrom.c (can_remove_node_now_p_1): Do not remove
6688 symbols used as abstract origins.
6689 * cgraphunit.c (analyze_functions): Update.
0bd72901
UB
6690 * ipa.c (symtab_remove_unreachable_nodes): Recompute
6691 used_as_abstract_origin.
c0c123ef 6692 * tree-inline.c (tree_function_versioning): Update
0bd72901
UB
6693 used_as_abstract_origin; be ready for DECL_RESULT and
6694 DECL_ARGUMENTS to be NULL.
c0c123ef 6695
0bd72901
UB
6696 * lto-symtab.c (lto_symtab_merge_symbols): Merge duplicated nodes
6697 for abstract functions.
6698 * cgraph.h (symtab_real_symbol_p): Abstract declarations are not
6699 real symbols.
c0c123ef 6700
1f029433
JH
67012013-08-01 Jan Hubicka <jh@suse.cz>
6702
6703 * profile.c (compute_value_histograms): Fix thinko.
6704
c451f4d6
SN
67052013-08-01 Sofiane Naci <sofiane.naci@arm.com>
6706
6707 * config.gcc (aarch64*-*-*): Add aarch-common.o to extra_objs. Add
6708 aarch-common-protos.h to extra_headers.
6709 (aarch64*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
6710 * config/aarch64/aarch64.md: Include "../arm/cortex-a53.md".
6711 * config/aarch64/t-aarch64 (aarch-common.o): Define.
6712
34b512f5
SN
67132013-08-01 Sofiane Naci <sofiane.naci@arm.com>
6714
6715 * config/aarch64/aarch64.md (define_attr "type"): Delete.
6716 Include "../arm/types.md". Define "type" attribute for all patterns.
6717 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update for
6718 attribute changes.
6719
d86e633a
MM
67202013-07-31 Michael Meissner <meissner@linux.vnet.ibm.com>
6721
6722 * config/rs6000/predicates.md (fusion_gpr_addis): New predicates
6723 to support power8 load fusion.
6724 (fusion_gpr_mem_load): Likewise.
6725
6726 * config/rs6000/rs6000-modes.def (PTImode): Update a comment.
6727
6728 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): New
6729 declarations for power8 load fusion.
6730 (emit_fusion_gpr_load): Likewise.
6731
6732 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
6733 tuning for power8, turn on fusion mode by default. Turn on sign
6734 extending fusion mode if normal fusion mode is on, and we are at
6735 -O2 or -O3.
6736 (fusion_gpr_load_p): New function, return true if we can fuse an
6737 addis instruction with a dependent load to a GPR.
6738 (emit_fusion_gpr_load): Emit the instructions for power8 load
6739 fusion to GPRs.
6740
0bd72901 6741 * config/rs6000/vsx.md (VSX_M2): New iterator for fusion peepholes.
d86e633a
MM
6742 (VSX load fusion peepholes): New peepholes to fuse together an
6743 addi instruction with a VSX load instruction.
6744
6745 * config/rs6000/rs6000.md (GPR load fusion peepholes): New
6746 peepholes to fuse an addis instruction with a load to a GPR base
6747 register. If we are supporting sign extending fusions, convert
6748 sign extending loads to zero extending loads and add an explicit
6749 sign extension.
6750
c3f35647
SN
67512013-07-31 Sofiane Naci <sofiane.naci@arm.com>
6752
6753 * config.gcc (arm*-*-*): Add aarch-common.o to extra_objs. Add
6754 aarch-common-protos.h to extra_headers.
6755 (arm*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
6756 * config/arm/arm.c (arm_early_load_addr_dep): Move from here to ...
6757 (arm_early_store_addr_dep): Likewise.
0bd72901
UB
6758 (arm_no_early_alu_shift_dep): Likewise.
6759 (arm_no_early_alu_shift_value_dep): Likewise.
6760 (arm_no_early_mul_dep): Likewise.
6761 (arm_no_early_store_addr_dep): Likewise.
6762 (arm_mac_accumulator_is_mul_result): Likewise.
6763 (arm_mac_accumulator_is_result): Likewise.
c3f35647 6764 * config/arm/aarch-common.c: ... here. New file.
0bd72901
UB
6765 * config/arm/arm-protos.h (arm_early_load_addr_dep): Move from
6766 here to ...
c3f35647 6767 (arm_early_store_addr_dep): Likewise.
0bd72901
UB
6768 (arm_no_early_alu_shift_dep): Likewise.
6769 (arm_no_early_alu_shift_value_dep): Likewise.
6770 (arm_no_early_mul_dep): Likewise.
6771 (arm_no_early_store_addr_dep): Likewise.
6772 (arm_mac_accumulator_is_mul_result): Likewise.
6773 (arm_mac_accumulator_is_result): Likewise.
c3f35647
SN
6774 * config/arm/aarch-common-protos.h: ... here. New file.
6775 * config/arm/t-arm (aarch-common.o): Define.
6776
67772013-07-31 Sofiane Naci <sofiane.naci@arm.com>
6778
6779 * config/arm/arm.md: Include new file "types.md".
6780 (define_attr "type"): Move from here to ...
6781 (define_attr "mul32"): Likewise.
6782 (define_attr "mul64"): Likewise.
6783 * config/arm/types.md: ... here. New file.
6784
228c1313
SH
67852013-07-31 Sebastian Huber <sebastian.huber@embedded-brains.de>
6786
6787 * config.gcc (*-*-rtems*): Use __cxa_atexit by default.
6788 * config/rs6000/rtems.h (TARGET_LIBGCC_SDATA_SECTION): Define.
6789
d6e9046d 67902013-07-31 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8ac499bb
JBG
6791
6792 * gen-pass-instances.awk: Fix offset of substr().
6793
a167b052
DM
67942013-07-31 David Malcolm <dmalcolm@redhat.com>
6795
6796 * Makefile.in (pass-instances.def): New.
6797 (passes.o): Replace dependency on passes.def with one on
6798 pass-instances.def
6799
6800 * gen-pass-instances.awk: New.
6801
6802 * passes.c (pass_manager::pass_manager): Use pass-instances.def
6803 rather than passes.def, updating local definition of NEXT_PASS
6804 macro to add an extra NUM parameter (currently unused).
6805
315f8c0e
DM
68062013-07-30 David Malcolm <dmalcolm@redhat.com>
6807
6808 * Makefile.in (PASS_MANAGER_H): New.
6809 (lto-cgraph.o): Depend on CONTEXT_H and PASS_MANAGER_H.
6810 (passes.o): Likewise.
6811 (statistics.o): Likewise.
6812 (cgraphunit.o): Likewise.
6813 (context.o): Depend on PASS_MANAGER_H.
6814
6815 * pass_manager.h: New.
6816
6817 * cgraphunit.c (cgraph_add_new_function): Update for moves
6818 of globals to fields of pass_manager.
6819 (analyze_function): Likewise.
6820 (expand_function): Likewise.
6821 (ipa_passes): Likewise.
6822 (compile): Likewise.
6823
6824 * context.c (context::context): New.
6825 * context.h (context::context): New.
6826 (context::get_passes): New.
6827 (context::passes_): New.
6828
6829 * lto-cgraph.c (input_node): Update for moves of globals to
6830 fields of pass_manager.
6831
6832 * passes.c (all_passes): Remove, in favor of a field of the
6833 same name within the new class pass_manager.
6834 (all_small_ipa_passes): Likewise.
6835 (all_lowering_passes): Likewise.
6836 (all_regular_ipa_passes): Likewise.
6837 (all_late_ipa_passes): Likewise.
6838 (all_lto_gen_passes): Likewise.
6839 (passes_by_id): Likewise.
6840 (passes_by_id_size): Likewise.
6841 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
6842 the new class pass_manager.
6843 (set_pass_for_id): Convert to...
6844 (pass_manager::set_pass_for_id): ...method.
6845 (get_pass_for_id): Convert to...
6846 (pass_manager::get_pass_for_id): ...method.
6847 (register_one_dump_file): Move body of implementation into...
6848 (pass_manager::register_one_dump_file): ...here.
6849 (register_dump_files_1): Convert to...
6850 (pass_manager::register_dump_files_1): ...method.
6851 (register_dump_files): Convert to...
6852 (pass_manager::register_dump_files): ...method.
6853 (create_pass_tab): Update for moves of globals to fields of
6854 pass_manager.
6855 (dump_passes): Move body of implementation into...
6856 (pass_manager::dump_passes): ...here.
6857 (register_pass): Move body of implementation into...
6858 (pass_manager::register_pass): ...here.
6859 (init_optimization_passes): Convert into...
6860 (pass_manager::pass_manager): ...constructor for new
6861 pass_manager class, and initialize the pass_lists array.
6862 (check_profile_consistency): Update for moves of globals to
6863 fields of pass_manager.
6864 (dump_profile_report): Move body of implementation into...
6865 (pass_manager::dump_profile_report): ...here.
6866 (ipa_write_summaries_1): Update for moves of pass lists from
6867 being globals to fields of pass_manager.
6868 (ipa_write_optimization_summaries): Likewise.
6869 (ipa_read_summaries): Likewise.
6870 (ipa_read_optimization_summaries): Likewise.
6871 (execute_all_ipa_stmt_fixups): Likewise.
6872
6873 * statistics.c (statistics_fini): Update for moves of globals to
6874 fields of pass_manager.
6875
6876 * toplev.c (general_init): Replace call to
6877 init_optimization_passes with construction of the pass_manager
6878 instance.
6879
6880 * tree-pass.h (all_passes): Remove, in favor of a field of the
6881 same name within the new class pass_manager.
6882 (all_small_ipa_passes): Likewise.
6883 (all_lowering_passes): Likewise.
6884 (all_regular_ipa_passes): Likewise.
6885 (all_lto_gen_passes): Likewise.
6886 (all_late_ipa_passes): Likewise.
6887 (passes_by_id): Likewise.
6888 (passes_by_id_size): Likewise.
6889 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
6890 the new class pass_manager.
6891 (get_pass_for_id): Remove.
6892
02cab1c1
RE
68932013-07-30 Richard Earnshaw <rearnsha@arm.com>
6894
6895 * config.gcc (arm): Require 64-bit host-wide-int for all ARM target
6896 configs.
6897
b2d3f886
RE
68982013-07-30 Richard Earnshaw <rearnsha@arm.com>
6899
6900 * arm.md (mulhi3): New expand pattern.
6901
605e86fa
JH
69022013-07-30 Jan Hubicka <jh@suse.cz>
6903 Martin Liska <marxin.liska@gmail.com>
6904
6905 * profile.c (compute_value_histograms): Do not ICE when
6906 there is mismatch only on some counters.
6907
14a87636
ZC
69082013-07-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
6909
6910 PR rtl-optimization/57637
6911 * function.c (move_insn_for_shrink_wrap): Also check the
6912 GEN set of the LIVE problem for the liveness analysis
6913 if it exists, otherwise give up.
6914
0100cd3f
BS
69152013-07-29 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
6916
6917 PR tree-optimization/57993
6918 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Record
6919 replaced statement in the candidate table.
6920 (phi_add_costs): Return infinite cost when the hidden basis does
6921 not dominate all phis on which the candidate is dependent.
6922 (replace_one_candidate): Record replaced statement in the
6923 candidate table.
6924
f0d811f7
JR
69252013-07-29 Joern Rennecke <joern.rennecke@embecosm.com>
6926
6927 * config/epiphany/epiphany.md (*isub_i+2): New peephole.
6928 (ashlv2si3): New expander.
6929 (*ashlv2si3_i): New define_insn_and_split.
6930 * predicates.md (float_operation): Allow patterns with three
6931 basic sub-patterns.
6932
bba33211
JR
6933 PR rtl-optimization/58021
6934 * mode-switching.c (create_pre_exit): Always split off preceding
6935 insns if we are not at the basic block head.
6936
ff3f3951
MR
69372013-07-29 Maciej W. Rozycki <macro@codesourcery.com>
6938
6939 * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Handle `-mnan=2008'.
6940 (UCLIBC_DYNAMIC_LINKER): New macro.
6941 * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32): Handle
6942 `-mnan=2008'.
6943 (GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32): Likewise.
6944 (UCLIBC_DYNAMIC_LINKER32): Undefine macro first. Handle
6945 `-mnan=2008'.
6946 (UCLIBC_DYNAMIC_LINKER64): Redefine macro.
6947 (UCLIBC_DYNAMIC_LINKERN32): Likewise.
6948 * config/mips/mips-modes.def: Remove RESET_FLOAT_FORMAT calls
6949 for SF and DF modes. Use ieee_quad_format for TF mode.
6950 * config/mips/mips-opts.h (mips_ieee_754_setting): New enum.
6951 * config/mips/mips.c (mips_file_start): Output a `.nan' directive.
6952 (mips_option_override): Handle `-mnan=legacy'.
6953 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Handle
6954 `-mabs=2008' and `-mnan=2008'.
6955 (OPTION_DEFAULT_SPECS): Add "nan" default.
6956 (ASM_SPEC): Handle `-mnan='.
6957 [!HAVE_AS_NAN] (HAVE_AS_NAN): New macro.
6958 * config/mips/mips.md (abs<mode>2): Handle `-mabs=2008', update
6959 comment accordingly.
6960 (neg<mode>2): Likewise.
6961 * config/mips/mips.opt (mabs, mnan): New options.
6962 * doc/install.texi (Configuration): Document `--with-nan=' option.
6963 * doc/invoke.texi (Option Summary): List MIPS `-mabs=' and
6964 `-mnan=' options.
6965 (MIPS Options): Document them.
6966 * config.gcc <mips*-*-*>: Handle `--with-nan='.
6967 * configure.ac <mips*-*-*>: Check for GAS `-mnan=2008' support.
6968 * configure: Regenerate.
6969 * config.in: Regenerate.
6970
576e2f37
UB
69712013-07-29 Uros Bizjak <ubizjak@gmail.com>
6972
6973 * config/i386/i386.md (float post-reload splitters): Do not check
6974 for subregs of SSE registers.
6975
69762013-07-29 Uros Bizjak <ubizjak@gmail.com>
6977 H.J. Lu <hongjiu.lu@intel.com>
6978
6979 PR target/57954
6980 PR target/57988
6981 * config/i386/i386.md (post-reload splitter
6982 to avoid partial SSE reg dependency stalls): New pattern.
6983
a71f0749
DV
69842013-07-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
6985
6986 * config/s390/s390.md ("movcc"): Swap load and store instructions.
6987
4c97f1cc
JR
69882013-07-27 Joern Rennecke <joern.rennecke@embecosm.com>
6989
6990 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
6991 Also reserve space for saving UNKNOWN_REGNUM for leaf functions.
6992
b0c733d8
CC
69932013-07-26 Cary Coutant <ccoutant@google.com>
6994
6995 * dwarf2out.c (die_checksum_ordered): Don't include template
6996 instantiations in signature.
6997 (is_template_parameter): New function.
6998 (is_template_instantiation): New function.
6999 (generate_skeleton_bottom_up): Don't include template instantiations
7000 in type unit DIE.
7001 (generate_skeleton): Likewise.
7002 (break_out_comdat_types): Move recursive call to break out nested
7003 types earlier.
7004 (prune_unused_types_mark_generic_parms_dies): Call
7005 is_template_parameter.
7006
040d8a1c
IB
70072013-07-26 Ian Bolton <ian.bolton@arm.com>
7008
7009 * config/aarch64/aarch64.md (neg<mode>2): Offer alternative that
7010 uses vector registers.
89fdc743 7011 * config/aarch64/iterators.md: Add attributes rtn and vas.
040d8a1c 7012
85bd4ac6 70132013-07-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
576e2f37 7014 Richard Earnshaw <richard.earnshaw@arm.com>
85bd4ac6
KT
7015
7016 * combine.c (simplify_comparison): Re-canonicalize operands
576e2f37 7017 where appropriate.
85bd4ac6
KT
7018 * config/arm/arm.md (movcond_addsi): New splitter.
7019
b6051207
SA
70202013-07-25 Sterling Augustine <saugustine@google.com>
7021
7022 * dwarf2out.c (size_of_pubnames): Move code to...
7023 (include_pubname_in_output): ...here. New.
7024 (want_pubnames): Rearrange.
7025 (output_pubnames): Call include_pubname_in_output. Move assertion.
7026
41a7c215
CM
70272013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
7028
7029 * doc/extend.texi: Fix return types for __builtin_ia32_cmp*s builtins.
7030
70312013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
7032
7033 PR target/38836
7034 * doc/extend.texi: Remove obsolete builtins. Fix
7035 typo for __builtin_ia32_loadss and __builtin_ia32_cmpnltss.
7036
49bde175
JH
70372013-07-25 Jan Hubicka <jh@suse.cz>
7038
7039 * cgraph.c (release_function_body): Break out from ...
7040 (cgraph_release_function_body): ... this one; also release DECL_RESULT
7041 and DECL_ARGUMENTS.
7042 * ipa-cp.c (get_replacement_map): Add parm_num argument; do not set
7043 old_tree in the map.
7044 (create_specialized_node): Update.
7045 * lto-cgraph.c (output_node_opt_summary): Do not translate old_tree
7046 into index.
41a7c215
CM
7047 * cgraphclones.c (cgraph_create_virtual_clone): Do not copy
7048 DECL_ARGUMENTS, DECL_INITIAL and DECL_RESULT.
49bde175
JH
7049 * ipa-prop.c (ipa_populate_param_decls): Look for origin of clones.
7050 * tree-inline.c (initialize_cfun): Initialize DECL_ARGUMENTS and
7051 DECL_RESULT.
7052
4870352d
KT
70532013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7054
7055 * config/arm/arm.md (arm_addsi3, addsi3_carryin_<optab>,
7056 addsi3_carryin_alt2_<optab>): Correct output template.
7057
1d6aee1c
KT
70582013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7059
7060 * config/arm/arm-fixed.md (ssmulsa3, usmulusa3):
7061 Adjust for arm_restrict_it.
7062 Remove trailing whitespace.
7063
c7cafd75
MK
70642013-07-25  Mark Kettenis  <kettenis@openbsd.org>
7065
017d38f5
MK
7066 * config/pa/pa.c (pa_trampoline_init): Emit __enable_execute_stack
7067 libcall if HAVE_ENABLE_EXECUTE_STACK is defined.
7068
c7cafd75
MK
7069 * config.gcc (hppa-*-openbsd*): Don't set tmake_file.
7070
00b7527b
VM
70712013-07-25 Vladimir Makarov <vmakarov@redhat.com>
7072
7073 PR rtl-optimization/57960
7074 * lra-constraints.c (process_alt_operands): Use the right mode
7075 when checking strict_low.
7076
4f63dfc6
JH
70772013-07-25 Jan Hubicka <jh@suse.cz>
7078
7079 * lto-symtab.c (lto_cgraph_replace_node): Release function body.
7080 * cgraph.c (cgraph_remove_node): Do not release function body
7081 when in cgraph streaming.
7082 * ipa.c (process_references, symtab_remove_unreachable_nodes): Objects
41a7c215
CM
7083 in other partitions are not considered reachable; fix handling of
7084 clones.
4f63dfc6 7085
e6dcfa18
RR
70862013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7087
7088 * config/arm/arm.md (*sibcall_insn): Remove unnecessary space.
7089
0b93d3b6
RR
70902013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7091
7092 PR target/19599
7093 PR target/57731
bb80c2eb 7094 PR target/57837
e6dcfa18 7095 * config/arm/arm.md ("*sibcall_insn): Replace use of
0b93d3b6 7096 Ss with US. Adjust output for v5 and v4t.
41a7c215 7097 (*sibcall_value_insn): Likewise and loosen predicate on operand0.
e6dcfa18 7098
0b93d3b6
RR
7099 * config/arm/constraints.md ("Ss"): Rename to US.
7100
690688b3
TG
71012013-07-25 Terry Guo <terry.guo@arm.com>
7102
7103 * config/arm/arm.c (thumb1_size_rtx_costs): Assign proper cost for
7104 shift_add/shift_sub0/shift_sub1 RTXs.
7105
a4ad093b 71062013-07-24 Bill Schmidt <wschmidt@linux.ibm.com>
12211b99 7107 Anton Blanchard <anton@au1.ibm.com>
a4ad093b
BS
7108
7109 * config/rs6000/altivec.md (altivec_vpkpx): Handle little endian.
7110 (altivec_vpks<VI_char>ss): Likewise.
7111 (altivec_vpks<VI_char>us): Likewise.
7112 (altivec_vpku<VI_char>us): Likewise.
7113 (altivec_vpku<VI_char>um): Likewise.
7114
8c5005ce
DM
71152013-07-24 David Malcolm <dmalcolm@redhat.com>
7116
7117 Introduce context class.
7118
7119 * Makefile.in (CONTEXT_H): New.
7120 (OBJS): Add context.o.
7121 (toplev.o): Add CONTEXT_H to dependencies.
7122 (context.o): New.
7123
41a7c215 7124 * toplev.c (general_init): Create the singleton gcc::context instance.
8c5005ce
DM
7125
7126 * context.c: New.
7127
7128 * context.h: New.
7129
ce4a9422
JR
71302013-07-24 Joern Rennecke <joern.rennecke@embecosm.com>
7131
7132 PR rtl-optimization/57968
7133 * mode-switching.c (create_pre_exit): Allow instructions that
7134 don't set a return register to need a non-exit mode.
7135
493f4c9e 71362013-07-24 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
12211b99 7137 Anton Blanchard <anton@au1.ibm.com>
493f4c9e 7138
b5860fd3
WS
7139 * config/rs6000/vector.md (vec_realign_load_<mode>): Reorder input
7140 operands to vperm for little endian.
7141 * config/rs6000/rs6000.c (rs6000_expand_builtin): Use lvsr instead
7142 of lvsl to create the control mask for a vperm for little endian.
493f4c9e 7143
73792b92 71442013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 7145 Anton Blanchard <anton@au1.ibm.com>
73792b92
BS
7146
7147 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
7148 two operands for little-endian.
7149
14c21302
SE
71502013-07-23 Steve Ellcey <sellcey@mips.com>
7151
7152 * config/mips/mips.c (mips_case_values_threshold): New.
7153 (TARGET_CASE_VALUES_THRESHOLD): Define.
7154
a6056198 71552013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 7156 Anton Blanchard <anton@au1.ibm.com>
a6056198
BS
7157
7158 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Correct
7159 selection of field for vector splat in little endian mode.
7160
dd7a40e1
MM
71612013-07-23 Michael Meissner <meissner@linux.vnet.ibm.com>
7162
7163 * config/rs6000/vector.md (xor<mode>3): Move 128-bit boolean
7164 expanders to rs6000.md.
7165 (ior<mode>3): Likewise.
7166 (and<mode>3): Likewise.
7167 (one_cmpl<mode>2): Likewise.
7168 (nor<mode>3): Likewise.
7169 (andc<mode>3): Likewise.
7170 (eqv<mode>3): Likewise.
7171 (nand<mode>3): Likewise.
7172 (orc<mode>3): Likewise.
7173
7174 * config/rs6000/rs6000-protos.h (rs6000_split_logical): New
7175 declaration.
7176
7177 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Add support
7178 to split multi-word logical operations.
7179 (rs6000_split_logical_di): Likewise.
7180 (rs6000_split_logical): Likewise.
7181
7182 * config/rs6000/vsx.md (VSX_L2): Delete, no longer used.
7183 (vsx_and<mode>3_32bit): Move 128-bit logical insns to rs6000.md,
7184 and allow TImode operations in 32-bit.
7185 (vsx_and<mode>3_64bit): Likewise.
7186 (vsx_ior<mode>3_32bit): Likewise.
7187 (vsx_ior<mode>3_64bit): Likewise.
7188 (vsx_xor<mode>3_32bit): Likewise.
7189 (vsx_xor<mode>3_64bit): Likewise.
7190 (vsx_one_cmpl<mode>2_32bit): Likewise.
7191 (vsx_one_cmpl<mode>2_64bit): Likewise.
7192 (vsx_nor<mode>3_32bit): Likewise.
7193 (vsx_nor<mode>3_64bit): Likewise.
7194 (vsx_andc<mode>3_32bit): Likewise.
7195 (vsx_andc<mode>3_64bit): Likewise.
7196 (vsx_eqv<mode>3_32bit): Likewise.
7197 (vsx_eqv<mode>3_64bit): Likewise.
7198 (vsx_nand<mode>3_32bit): Likewise.
7199 (vsx_nand<mode>3_64bit): Likewise.
7200 (vsx_orc<mode>3_32bit): Likewise.
7201 (vsx_orc<mode>3_64bit): Likewise.
7202
7203 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Always allow vector
7204 logical types in GPRs.
7205
7206 * config/rs6000/altivec.md (altivec_and<mode>3): Move 128-bit
7207 logical insns to rs6000.md, and allow TImode operations in
7208 32-bit.
7209 (altivec_ior<mode>3): Likewise.
7210 (altivec_xor<mode>3): Likewise.
7211 (altivec_one_cmpl<mode>2): Likewise.
7212 (altivec_nor<mode>3): Likewise.
7213 (altivec_andc<mode>3): Likewise.
7214
7215 * config/rs6000/rs6000.md (BOOL_128): New mode iterators and mode
7216 attributes for moving the 128-bit logical operations into
7217 rs6000.md.
7218 (BOOL_REGS_OUTPUT): Likewise.
7219 (BOOL_REGS_OP1): Likewise.
7220 (BOOL_REGS_OP2): Likewise.
7221 (BOOL_REGS_UNARY): Likewise.
7222 (BOOL_REGS_AND_CR0): Likewise.
7223 (one_cmpl<mode>2): Add support for DI logical operations on
7224 32-bit, splitting the operations to 32-bit.
7225 (anddi3): Likewise.
7226 (iordi3): Likewise.
7227 (xordi3): Likewise.
7228 (and<mode>3, 128-bit types): Rewrite 2013-06-06 logical operator
7229 changes to combine the 32/64-bit code, allow logical operations on
7230 TI mode in 32-bit, and to use similar match_operator patterns like
7231 scalar mode uses. Combine the Altivec and VSX code for logical
7232 operations, and move it here.
7233 (ior<mode>3, 128-bit types): Likewise.
7234 (xor<mode>3, 128-bit types): Likewise.
7235 (one_cmpl<mode>3, 128-bit types): Likewise.
7236 (nor<mode>3, 128-bit types): Likewise.
7237 (andc<mode>3, 128-bit types): Likewise.
7238 (eqv<mode>3, 128-bit types): Likewise.
7239 (nand<mode>3, 128-bit types): Likewise.
7240 (orc<mode>3, 128-bit types): Likewise.
7241 (and<mode>3_internal): Likewise.
7242 (bool<mode>3_internal): Likewise.
7243 (boolc<mode>3_internal1): Likewise.
7244 (boolc<mode>3_internal2): Likewise.
7245 (boolcc<mode>3_internal1): Likewise.
7246 (boolcc<mode>3_internal2): Likewise.
7247 (eqv<mode>3_internal1): Likewise.
7248 (eqv<mode>3_internal2): Likewise.
7249 (one_cmpl1<mode>3_internal): Likewise.
7250
12211b99 72512013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
9b69d4b4
DH
7252
7253 * config/microblaze/microblaze.c (microblaze_expand_prologue):
7254 Rename flag_stack_usage to flag_stack_usage_info.
7255
12211b99 72562013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
450b0ebb 7257
a5f257fd
ME
7258 * config/microblaze/sync.md: New file.
7259 * config/microblaze/microblaze.md: Include sync.md
7260 * config/microblaze/microblaze.c: Add print_operand 'y'.
7261 * config/microblaze/constraints.md: Add memory_contraint
7262 'Q' which is a single register.
450b0ebb 7263
49fba14f
EB
72642013-07-23 Eric Botcazou <ebotcazou@adacore.com>
7265
7266 * doc/invoke.texi (SPARC Options): Document new leon3 processor value.
7267
c7b3b99f
PCC
72682013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
7269
7270 * reload.c (find_reloads): Exit loop once we find this operand
7271 cannot be reloaded somehow for this alternative.
7272
7273 * reload.c (find_reloads): Exit loop once we find a hard register.
7274
7275 * rtlanal.c (computed_jump_p): Exit loop once we find label
7276 reference is used.
7277
7278 * i386.c (ix86_pad_returns): Exit loop after setting replace.
7279
7280 * cfgloopmanip.c (remove_path): Exit loop after setting
7281 irred_invalidated.
7282
7283 * gensupport.c (subst_dup): Avoid loop if code is not
7284 MATCH_DUP nor MATCH_OP_DUP.
7285
c8fbf1fa
NBJ
72862013-07-23 Nicklas Bo Jensen <nbjensen@gmail.com>
7287
7288 * doc/md.texi (Machine-Specific Peephole Optimizers): Fix a typo.
7289
9259db42
YZ
72902013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
7291
7292 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Also return
7293 true for SP_REGNUM if mode == ptr_mode.
7294 * config/aarch64/aarch64.h (ADDITIONAL_REGISTER_NAMES): Add "wsp"
7295 with value R0_REGNUM + 31.
7296
00edcfbe
YZ
72972013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
7298
7299 * config/aarch64/aarch64.c (aarch64_pad_arg_upward): In big-endian,
7300 pad pointer-typed argument downward.
7301
43be9a95
YZ
73022013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
7303
7304 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define _ILP32
7305 and __ILP32__ when the ILP32 model is in use.
7306
28514dda
YZ
73072013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
7308
7309 * config/aarch64/aarch64.c (POINTER_BYTES): New define.
7310 (aarch64_load_symref_appropriately): In the case of
7311 SYMBOL_SMALL_ABSOLUTE, use the mode of 'dest' instead of Pmode
7312 to generate new rtx; likewise to the case of SYMBOL_SMALL_GOT.
7313 (aarch64_expand_mov_immediate): In the case of SYMBOL_FORCE_TO_MEM,
7314 change to pass 'ptr_mode' to force_const_mem and zero-extend 'mem'
7315 if 'mode' doesn't equal to 'ptr_mode'.
7316 (aarch64_output_mi_thunk): Add an assertion on the alignment of
7317 'vcall_offset'; change to call aarch64_emit_move differently depending
7318 on whether 'Pmode' equals to 'ptr_mode' or not; use 'POINTER_BYTES'
7319 to calculate the upper bound of 'vcall_offset'.
7320 (aarch64_cannot_force_const_mem): Change to also return true if
7321 mode != ptr_mode.
7322 (aarch64_legitimize_reload_address): In the case of large
7323 displacements, add new local variable 'xmode' and an assertion
7324 based on it; change to use 'xmode' to generate the new rtx and
7325 reload.
7326 (aarch64_asm_trampoline_template): Change to generate the template
7327 differently depending on TARGET_ILP32 or not; change to use
7328 'POINTER_BYTES' in the argument passed to assemble_aligned_integer.
7329 (aarch64_trampoline_size): Removed.
7330 (aarch64_trampoline_init): Add new local constant 'tramp_code_sz'
7331 and replace immediate literals with it. Change to use 'ptr_mode'
7332 instead of 'DImode' and call convert_memory_address if the mode
7333 of 'fnaddr' doesn't equal to 'ptr_mode'.
7334 (aarch64_elf_asm_constructor): Change to use assemble_aligned_integer
7335 to output symbol.
7336 (aarch64_elf_asm_destructor): Likewise.
7337 * config/aarch64/aarch64.h (TRAMPOLINE_SIZE): Change to be dependent
7338 on TARGET_ILP32 instead of aarch64_trampoline_size.
7339 * config/aarch64/aarch64.md (movsi_aarch64): Add new alternatives
7340 of 'mov' between WSP and W registers as well as 'adr' and 'adrp'.
7341 (loadwb_pair<GPI:mode>_<PTR:mode>): Rename to ...
7342 (loadwb_pair<GPI:mode>_<P:mode>): ... this. Replace PTR with P.
7343 (storewb_pair<GPI:mode>_<PTR:mode>): Likewise; rename to ...
7344 (storewb_pair<GPI:mode>_<P:mode>): ... this.
7345 (add_losym): Change to 'define_expand' and call gen_add_losym_<mode>
7346 depending on the value of 'mode'.
7347 (add_losym_<mode>): New.
7348 (ldr_got_small_<mode>): New, based on ldr_got_small.
7349 (ldr_got_small): Remove.
7350 (ldr_got_small_sidi): New.
7351 * config/aarch64/iterators.md (P): New.
7352 (PTR): Change to 'ptr_mode' in the condition.
7353
17a819cb
YZ
73542013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
7355
7356 * config.gcc (aarch64*-*-*): Support --with-abi.
7357 (aarch64*-*-elf): Support --with-multilib-list.
7358 (aarch64*-*-linux*): Likewise.
7359 (supported_defaults): Add abi to aarch64*-*-*.
7360 * configure.ac: Mention AArch64 for --with-multilib-list.
7361 * configure: Re-generated.
7362 * config/aarch64/biarchilp32.h: New file.
7363 * config/aarch64/biarchlp64.h: New file.
7364 * config/aarch64/aarch64-elf.h (ENDIAN_SPEC): New define.
7365 (ABI_SPEC): Ditto.
7366 (MULTILIB_DEFAULTS): Ditto.
7367 (DRIVER_SELF_SPECS): Ditto.
7368 (ASM_SPEC): Update to also substitute -mabi.
7369 * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Add linker script
7370 file whose name depends on -mabi= and -mbig-endian.
7371 * config/aarch64/aarch64.h (LONG_TYPE_SIZE): Change to depend on
7372 TARGET_ILP32.
7373 (POINTER_SIZE): New define.
7374 (POINTERS_EXTEND_UNSIGNED): Ditto.
7375 (enum aarch64_abi_type): New enumeration tag.
7376 (AARCH64_ABI_LP64, AARCH64_ABI_ILP32): New enumerators.
7377 (AARCH64_ABI_DEFAULT): Define to AARCH64_ABI_LP64 if undefined.
7378 (TARGET_ILP32): New define.
7379 * config/aarch64/aarch64.opt (mabi): New.
7380 (aarch64_abi): New.
7381 (ilp32, lp64): New values for -mabi.
7382 * config/aarch64/t-aarch64 (comma): New define.
7383 (MULTILIB_OPTIONS): Ditto.
7384 (MULTILIB_DIRNAMES): Ditto.
7385 * config/aarch64/t-aarch64-linux (MULTIARCH_DIRNAME): New define.
7386 * doc/invoke.texi: Document -mabi for AArch64.
7387
9f9cbdce
GJL
73882013-07-23 Georg-Johann Lay <avr@gjlay.de>
7389
7390 * config/avr/avr.md: Explain asm print modifier 'r' for REG.
7391
7061977b 73922013-07-22 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
12211b99 7393 Anton Blanchard <anton@au1.ibm.com>
7061977b
BS
7394
7395 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix
7396 endianness when selecting field to splat.
7397
75a41878
EC
73982013-07-22 Eric Christopher <echristo@gmail.com>
7399
7400 * dwarf2out.c (die_odr_checksum): New function to use
7401 CHECKSUM_ macros and ULEB128 for DIE tag.
7402 (generate_type_signature): Use.
41a7c215 7403
38ae58ca
EB
74042013-07-22 Eric Botcazou <ebotcazou@adacore.com>
7405
7406 * config.gcc (sparc*-*-*): Accept leon3 processor.
7407 (sparc-leon*-*): Merge with sparc*-*-* and add leon3 support.
7408 * doc/invoke.texi (SPARC Options): Adjust -mfix-ut699 entry.
7409 * config/sparc/sparc-opts.h (enum processor_type): Add PROCESSOR_LEON3.
7410 * config/sparc/sparc.opt (enum processor_type): Add leon3.
7411 (mfix-ut699): Adjust comment.
7412 * config/sparc/sparc.h (TARGET_CPU_leon3): New define.
7413 (CPP_CPU32_DEFAULT_SPEC): Add leon3 support.
7414 (CPP_CPU_SPEC): Likewise.
7415 (ASM_CPU_SPEC): Likewise.
7416 * config/sparc/sparc.c (leon3_cost): New constant.
7417 (sparc_option_override): Add leon3 support.
7418 (mem_ref): New function.
7419 (sparc_gate_work_around_errata): Return true if -mfix-ut699 is enabled.
7420 (sparc_do_work_around_errata): Look into the instruction in the delay
7421 slot and adjust accordingly. Add fix for the data cache nullify issues
7422 of the UT699. Change insertion position for the NOP.
7423 * config/sparc/leon.md (leon_fpalu, leon_fpmds, write_buf): Delete.
7424 (leon3_load): New reservation.
7425 (leon_store): Bump latency to 2.
7426 (grfpu): New automaton.
7427 (grfpu_alu): New unit.
7428 (grfpu_ds): Likewise.
7429 (leon_fp_alu): Adjust.
7430 (leon_fp_mult): Delete.
7431 (leon_fp_div): Split into leon_fp_divs and leon_fp_divd.
7432 (leon_fp_sqrt): Split into leon_fp_sqrts and leon_fp_sqrtd.
7433 * config/sparc/sparc.md (cpu): Add leon3.
7434 * config/sparc/sync.md (atomic_exchangesi): Disable if -mfix-ut699.
7435 (swapsi): Likewise.
7436 (atomic_test_and_set): Likewise.
7437 (ldstub): Likewise.
7438
04dfc6df
JU
74392013-07-22 Jürgen Urban <JuergenUrban@gmx.de>
7440
7441 * config.gcc (mips*-*-*): Add --with-fpu support. Make single the
7442 default for R5900 targets.
7443 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Handle --with-fpu.
7444 (ISA_HAS_LDC1_SDC1): Set to false for TARGET_MIPS5900.
7445 * config/mips/mips.c (mips_option_override): Report an error for
7446 -march=r5900 -mhard-float -mdouble-float. Use spu_single_format
7447 for -march=r5900 -mhard-float.
7448
c7b3b99f 74492013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
ae382ebd
PCC
7450
7451 * df-problems.c (can_move_insns_across): Exit loop once we
7452 find a non-fixed, non-global register.
7453
7454 * ipa-pure-const.c (propagate_nothrow): Exit loop after
7455 setting can_throw.
7456
7457 * omega.c (omega_eliminate_red): Break after setting red_found.
7458 (omega_problem_has_red_equations): Similarly after setting found.
7459 (omega_query_variable): Similarly after setting coupled.
7460
9b6e6981
MP
74612013-07-22 Marek Polacek <polacek@redhat.com>
7462
7463 * gimplify.c: Don't include gimple.h twice.
7464
5e5f7673
KT
74652013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7466
7467 * config/arm/constraints.md (Pd): Allow TARGET_THUMB
7468 instead of TARGET_THUMB1.
7469 (Pz): New constraint.
7470 * config/arm/arm.md (arm_addsi3): Add alternatives for 16-bit
7471 encodings.
7472 (compare_negsi_si): Likewise.
7473 (compare_addsi2_op0): Likewise.
7474 (compare_addsi2_op1): Likewise.
7475 (addsi3_carryin_<optab>): Likewise.
7476 (addsi3_carryin_alt2_<optab>): Likewise.
7477 (addsi3_carryin_shift_<optab>): Disable cond_exec variant
7478 for arm_restrict_it.
7479 (subsi3_carryin): Likewise.
7480 (arm_subsi3_insn): Add alternatives for 16-bit encoding.
7481 (minmax_arithsi): Disable for arm_restrict_it.
7482 (minmax_arithsi_non_canon): Adjust for arm_restrict_it.
7483 (satsi_<SAT:code>): Disable cond_exec variant for arm_restrict_it.
7484 (satsi_<SAT:code>_shift): Likewise.
7485 (arm_shiftsi3): Add alternative for 16-bit encoding.
7486 (arm32_movhf): Disable for arm_restrict_it.
7487 (arm_cmpdi_unsigned): Add alternatives for 16-bit encoding.
7488 (arm_movtas_ze): Disable cond_exec variant for arm_restrict_it.
7489
859abddd
SN
74902013-07-22 Sofiane Naci <sofiane.naci@arm.com>
7491
7492 * config/arm/arm.md (attribute "insn"): Delete.
7493 (attribute "type"): Add "mov_imm", "mov_reg", "mov_shift",
7494 "mov_shift_reg", "mvn_imm", "mvn_reg", "mvn_shift" and "mvn_shift_reg".
7495 (not_shiftsi): Update for attribute change.
7496 (not_shiftsi_compare0): Likewise.
7497 (not_shiftsi_compare0_scratch): Likewise.
7498 (arm_one_cmplsi2): Likewise.
7499 (thumb1_one_cmplsi2): Likewise.
7500 (notsi_compare0): Likewise.
7501 (notsi_compare0_scratch): Likewise.
7502 (thumb1_movdi_insn): Likewise.
7503 (arm_movsi_insn): Likewise.
7504 (movhi_insn_arch4): Likewise.
7505 (movhi_bytes): Likewise.
7506 (arm_movqi_insn): Likewise.
7507 (thumb1_movqi_insn): Likewise.
7508 (arm32_movhf): Likewise.
7509 (thumb1_movhf): Likewise.
7510 (arm_movsf_soft_insn): Likewise.
7511 (thumb1_movsf_insn): Likewise.
7512 (thumb_movdf_insn): Likewise.
7513 (movsicc_insn): Likewise.
7514 (movsfcc_soft_insn): Likewise.
7515 (and_scc): Likewise.
7516 (cond_move): Likewise.
7517 (if_move_not): Likewise.
7518 (if_not_move): Likewise.
7519 (if_shift_move): Likewise.
7520 (if_move_shift): Likewise.
7521 (if_shift_shift): Likewise.
7522 (if_not_arith): Likewise.
7523 (if_arith_not): Likewise.
7524 (cond_move_not): Likewise.
7525 * config/arm/neon.md (neon_mov<mode>): Update for attribute change.
7526 (neon_mov<mode>): Likewise.
7527 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute change.
7528 (thumb2_movsi_vfp): Likewise.
7529 (movsf_vfp): Likewise.
7530 (thumb2_movsf_vfp): Likewise.
371e77e3
UB
7531 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
7532 change.
859abddd
SN
7533 (cortexa7_older_only): Likewise.
7534 (cortexa7_younger): Likewise.
7535 * config/arm/arm1020e.md (1020alu_op): Update for attribute change.
7536 (1020alu_shift_op): Likewise.
7537 (1020alu_shift_reg_op): Likewise.
7538 * config/arm/arm1026ejs.md (alu_op): Update for attribute change.
7539 (alu_shift_op): Likewise.
7540 (alu_shift_reg_op): Likewise.
7541 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute change.
7542 (11_alu_shift_op): Likewise.
7543 (11_alu_shift_reg_op): Likewise.
7544 * config/arm/arm926ejs.md (9_alu_op): Update for attribute change.
7545 (9_alu_shift_reg_op): Likewise.
371e77e3
UB
7546 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
7547 change.
859abddd
SN
7548 (cortex_a15_alu_shift): Likewise.
7549 (cortex_a15_alu_shift_reg): Likewise.
7550 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute change.
7551 (cortex_a5_alu_shift): Likewise.
371e77e3
UB
7552 * config/arm/cortex-a53.md (cortex_a53_alu): Update for attribute
7553 change.
859abddd 7554 (cortex_a53_alu_shift): Likewise.
371e77e3
UB
7555 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
7556 change.
859abddd
SN
7557 (cortex_a7_alu_reg): Likewise.
7558 (cortex_a7_alu_shift): Likewise.
7559 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
7560 (cortex_a8_alu_shift): Likewise.
7561 (cortex_a8_alu_shift_reg): Likewise.
7562 (cortex_a8_mov): Likewise.
7563 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
7564 (cortex_a9_dp_shift): Likewise.
7565 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute change.
7566 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute change.
7567 (cortex_r4_mov): Likewise.
7568 (cortex_r4_alu_shift): Likewise.
7569 (cortex_r4_alu_shift_reg): Likewise.
7570 * config/arm/fa526.md (526_alu_op): Update for attribute change.
7571 (526_alu_shift_op): Likewise.
7572 * config/arm/fa606te.md (606te_alu_op): Update for attribute change.
7573 * config/arm/fa626te.md (626te_alu_op): Update for attribute change.
7574 (626te_alu_shift_op): Likewise.
7575 * config/arm/fa726te.md (726te_shift_op): Update for attribute change.
7576 (726te_alu_op): Likewise.
7577 (726te_alu_shift_op): Likewise.
7578 (726te_alu_shift_reg_op): Likewise.
7579 * config/arm/fmp626.md (mp626_alu_op): Update for attribute change.
7580 (mp626_alu_shift_op): Likewise.
7581 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute change.
7582 (pj4_alu_e1_conds): Likewise.
7583 (pj4_alu): Likewise.
7584 (pj4_alu_conds): Likewise.
7585 (pj4_shift): Likewise.
7586 (pj4_shift_conds): Likewise.
7587 (pj4_alu_shift): Likewise.
7588 (pj4_alu_shift_conds): Likewise.
7589
95b97fac
KT
75902013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7591
7592 * config/arm/predicates.md (shiftable_operator_strict_it):
7593 New predicate.
7594 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si):
7595 Disable cond_exec version for arm_restrict_it.
7596 (thumb2_smaxsi3): Convert to generate cond_exec.
7597 (thumb2_sminsi3): Likewise.
7598 (thumb32_umaxsi3): Likewise.
7599 (thumb2_uminsi3): Likewise.
7600 (thumb2_abssi2): Adjust constraints for arm_restrict_it.
7601 (thumb2_neg_abssi2): Likewise.
7602 (thumb2_mov_scc): Add alternative for 16-bit encoding.
7603 (thumb2_movsicc_insn): Adjust alternatives.
7604 (thumb2_mov_negscc): Disable for arm_restrict_it.
7605 (thumb2_mov_negscc_strict_it): New pattern.
7606 (thumb2_mov_notscc_strict_it): New pattern.
7607 (thumb2_mov_notscc): Disable for arm_restrict_it.
7608 (thumb2_ior_scc): Likewise.
7609 (thumb2_ior_scc_strict_it): New pattern.
7610 (thumb2_cond_move): Adjust for arm_restrict_it.
7611 (thumb2_cond_arith): Disable for arm_restrict_it.
7612 (thumb2_cond_arith_strict_it): New pattern.
7613 (thumb2_cond_sub): Adjust for arm_restrict_it.
7614 (thumb2_movcond): Likewise.
7615 (thumb2_extendqisi_v6): Disable cond_exec variant for arm_restrict_it.
7616 (thumb2_zero_extendhisi2_v6): Likewise.
7617 (thumb2_zero_extendqisi2_v6): Likewise.
7618 (orsi_notsi_si): Likewise.
7619 (orsi_not_shiftsi_si): Likewise.
7620
d5a6ef82
GJL
76212013-07-22 Georg-Johann Lay <avr@gjlay.de>
7622
7623 * config/avr/avr.c (avr_out_xload): No SBIS around LPM so that
7624 instruction sequence is 1 byte shorter.
7625
d9e71154
UB
76262013-07-22 Uros Bizjak <ubizjak@gmail.com>
7627
7628 * config/i386/i386.md (nonlocal_goto_receiver): Delete insn if
7629 it is not needed after split.
7630
8c6381ec
IS
76312013-07-20 Iain Sandoe <iain@codesourcery.com>
7632
7633 PR target/51784
7634 * config/i386/i386.c (output_set_got) [TARGET_MACHO]: Adjust to emit a
7635 second label for nonlocal goto receivers. Don't output pic base labels
7636 unless we're producing PIC; mark that action unreachable().
7637 (ix86_save_reg): If the function contains a nonlocal label, save the
7638 PIC base reg.
7639 * config/darwin-protos.h (machopic_should_output_picbase_label): New.
f43245d1 7640 * config/darwin.c (emitted_pic_label_num): New GTY.
8c6381ec
IS
7641 (update_pic_label_number_if_needed): New.
7642 (machopic_output_function_base_name): Adjust for nonlocal receiver
7643 case.
7644 (machopic_should_output_picbase_label): New.
7645 * config/i386/i386.md (enum unspecv): UNSPECV_NLGR: New.
7646 (nonlocal_goto_receiver): New insn and split.
7647
d05d0709
JG
76482013-07-20 James Greenhalgh <james.greenhalgh@arm.com>
7649
7650 * config/aarch64/aarch64-builtins.c
7651 (aarch64_fold_builtin): Fold abs in all modes.
7652 * config/aarch64/aarch64-simd-builtins.def
7653 (abs): Enable for all modes.
7654 * config/aarch64/arm_neon.h
7655 (vabs<q>_s<8,16,32,64): Rewrite using builtins.
7656 (vabs_f64): Add missing intrinsic.
7657
ba590e63
IB
76582013-07-19 Ian Bolton <ian.bolton@arm.com>
7659
7660 * config/aarch64/arm_neon.h (vabs_s64): New function
7661
02371798
GJL
76622013-07-19 Georg-Johann Lay <avr@gjlay.de>
7663
7664 PR target/57516
7665 * config/avr/avr-fixed.md (round<mode>3_const): Turn expander to insn.
7666 * config/avr/avr.md (adjust_len): Add `round'.
7667 * config/avr/avr-protos.h (avr_out_round): New prototype.
7668 (avr_out_plus): Add `out_label' argument.
7669 * config/avr/avr.c (avr_out_plus_1): Add `out_label' argument.
7670 (avr_out_plus): Pass down `out_label' to avr_out_plus_1.
7671 Handle the case where `insn' is just a pattern.
7672 (avr_out_bitop): Handle the case where `insn' is just a pattern.
7673 (avr_out_round): New function.
7674 (avr_adjust_insn_length): Handle ADJUST_LEN_ROUND.
7675
12211b99 76762013-07-18 David Holsgrove <david.holsgrove@xilinx.com>
b950ac25
DH
7677
7678 * config/microblaze/microblaze.c (microblaze_expand_prologue):
7679 Add check for flag_stack_usage to handle -fstack-usage support
7680
12211b99 76812013-07-18 Pat Haugen <pthaugen@us.ibm.com>
ed1fd999
PH
7682
7683 * config/rs6000/rs6000.c (rs6000_option_override_internal): Adjust flag
7684 interaction for new Power8 flags and VSX.
7685
df9dda2d
ST
76862013-07-18 Sriraman Tallam <tmsriram@google.com>
7687
7688 PR middle-end/57698
7689 * tree-inline.c (expand_call_inline): Emit errors during
7690 early_inlining only if optimization is not turned on.
7691
0f9cdef4
DM
76922013-07-18 David Malcolm <dmalcolm@redhat.com>
7693
7694 * passes.def: New.
7695
7696 * passes.c (init_optimization_passes): Move the construction of
7697 the pass hierarchy into a new passes.def file.
7698
7699 * Makefile.in (passes.o): Add dependency on passes.def.
7700
2efa4087
DM
77012013-07-18 David Malcolm <dmalcolm@redhat.com>
7702
7703 * passes.c (init_optimization_passes): Introduce macros for
7704 constructing the tree of passes (INSERT_PASSES_AFTER,
7705 PUSH_INSERT_PASSES_WITHIN, POP_INSERT_PASSES,
7706 TERMINATE_PASS_LIST).
7707
bc404e1b
VM
77082013-07-18 Vladimir Makarov <vmakarov@redhat.com>
7709 Wei Mi <wmi@google.com>
7710
7711 PR rtl-optimization/57878
7712 * lra-assigns.c (assign_by_spills): Move non_reload_pseudos to the
7713 top.
7714 (reload_pseudo_compare_func): Check nregs first for reload
7715 pseudos.
7716
d675843f
DM
77172013-07-18 David Malcolm <dmalcolm@redhat.com>
7718
7719 * tree-pass.h (pass_ipa_lto_wpa_fixup): Remove redundant decl.
7720
c7b3b99f 77212013-07-18 Po-Chun Chang <pchang9@cs.wisc.edu>
bcb97fbd
PCC
7722
7723 * read-rtl.c (validate_const_int): Once an invalid character is
7724 seen, quit the loop.
7725
7726 * gengtype.c (write_roots): Similarly once we find the "deletable"
7727 or "if_marked" option.
7728
52fceb44
SN
77292013-07-18 Sofiane Naci <sofiane.naci@arm.com>
7730
7731 * config/arm/arm.md (attribute "insn"): Delete values "mrs", "msr",
7732 "xtab" and "sat". Move value "clz" from here to ...
7733 (attriubte "type"): ... here.
7734 (satsi_<SAT:code>): Delete "insn" attribute.
7735 (satsi_<SAT:code>_shift): Likewise.
7736 (arm_zero_extendqisi2addsi): Likewise.
7737 (arm_extendqisi2addsi): Likewise.
7738 (clzsi2): Update for attribute changes.
7739 (rbitsi2): Likewise.
371e77e3
UB
7740 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Delete "insn"
7741 attribute.
52fceb44
SN
7742 (arm_usatsihi): Likewise.
7743 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
7744
006bd006
SN
77452013-07-18 Sofiane Naci <sofiane.naci@arm.com>
7746
7747 * config/arm/arm.md (attribute "type"): Rename "simple_alu_imm" to
371e77e3
UB
7748 "arlo_imm". Rename "alu_reg" to "arlo_reg". Rename "simple_alu_shift"
7749 to "extend". Split "alu_shift" into "shift" and "arlo_shift". Split
006bd006
SN
7750 "alu_shift_reg" into "shift_reg" and "arlo_shift_reg". List types
7751 in alphabetical order.
7752 (attribute "core_cycles"): Update for attribute changes.
7753 (arm_addsi3): Likewise.
7754 (addsi3_compare0): Likewise.
7755 (addsi3_compare0_scratch): Likewise.
7756 (addsi3_compare_op1): Likewise.
7757 (addsi3_compare_op2): Likewise.
7758 (compare_addsi2_op0): Likewise.
7759 (compare_addsi2_op1): Likewise.
7760 (addsi3_carryin_shift_<optab>): Likewise.
7761 (subsi3_carryin_shift): Likewise.
7762 (rsbsi3_carryin_shift): Likewise.
7763 (arm_subsi3_insn): Likewise.
7764 (subsi3_compare0): Likewise.
7765 (subsi3_compare): Likewise.
7766 (arm_andsi3_insn): Likewise.
7767 (thumb1_andsi3_insn): Likewise.
7768 (andsi3_compare0): Likewise.
7769 (andsi3_compare0_scratch): Likewise.
7770 (zeroextractsi_compare0_scratch
7771 (andsi_not_shiftsi_si): Likewise.
7772 (iorsi3_insn): Likewise.
7773 (iorsi3_compare0): Likewise.
7774 (iorsi3_compare0_scratch): Likewise.
7775 (arm_xorsi3): Likewise.
7776 (thumb1_xorsi3_insn): Likewise.
7777 (xorsi3_compare0): Likewise.
7778 (xorsi3_compare0_scratch): Likewise.
7779 (satsi_<SAT:code>_shift): Likewise.
7780 (rrx): Likewise.
7781 (arm_shiftsi3): Likewise.
7782 (shiftsi3_compare0): Likewise.
7783 (not_shiftsi): Likewise.
7784 (not_shiftsi_compare0): Likewise.
7785 (not_shiftsi_compare0_scratch): Likewise.
7786 (arm_one_cmplsi2): Likewise.
7787 (thumb_one_complsi2): Likewise.
7788 (notsi_compare0): Likewise.
7789 (notsi_compare0_scratch): Likewise.
7790 (thumb1_zero_extendhisi2): Likewise.
7791 (arm_zero_extendhisi2): Likewise.
7792 (arm_zero_extendhisi2_v6): Likewise.
7793 (arm_zero_extendhisi2addsi): Likewise.
7794 (thumb1_zero_extendqisi2): Likewise.
7795 (thumb1_zero_extendqisi2_v6): Likewise.
7796 (arm_zero_extendqisi2): Likewise.
7797 (arm_zero_extendqisi2_v6): Likewise.
7798 (arm_zero_extendqisi2addsi): Likewise.
7799 (thumb1_extendhisi2): Likewise.
7800 (arm_extendhisi2): Likewise.
7801 (arm_extendhisi2_v6): Likewise.
7802 (arm_extendqisi): Likewise.
7803 (arm_extendqisi_v6): Likewise.
7804 (arm_extendqisi2addsi): Likewise.
7805 (thumb1_extendqisi2): Likewise.
7806 (thumb1_movdi_insn): Likewise.
7807 (arm_movsi_insn): Likewise.
7808 (movsi_compare0): Likewise.
7809 (movhi_insn_arch4): Likewise.
7810 (movhi_bytes): Likewise.
7811 (arm_movqi_insn): Likewise.
7812 (thumb1_movqi_insn): Likewise.
7813 (arm32_movhf): Likewise.
7814 (thumb1_movhf): Likewise.
7815 (arm_movsf_soft_insn): Likewise.
7816 (thumb1_movsf_insn): Likewise.
7817 (movdf_soft_insn): Likewise.
7818 (thumb_movdf_insn): Likewise.
7819 (arm_cmpsi_insn): Likewise.
7820 (cmpsi_shiftsi): Likewise.
7821 (cmpsi_shiftsi_swp): Likewise.
7822 (arm_cmpsi_negshiftsi_si): Likewise.
7823 (movsicc_insn): Likewise.
7824 (movsfcc_soft_insn): Likewise.
7825 (arith_shiftsi): Likewise.
7826 (arith_shiftsi_compare0
7827 (arith_shiftsi_compare0_scratch
7828 (sub_shiftsi): Likewise.
7829 (sub_shiftsi_compare0
7830 (sub_shiftsi_compare0_scratch
7831 (and_scc): Likewise.
7832 (cond_move): Likewise.
7833 (if_plus_move): Likewise.
7834 (if_move_plus): Likewise.
7835 (if_move_not): Likewise.
7836 (if_not_move): Likewise.
7837 (if_shift_move): Likewise.
7838 (if_move_shift): Likewise.
7839 (if_shift_shift): Likewise.
7840 (if_not_arith): Likewise.
7841 (if_arith_not): Likewise.
7842 (cond_move_not): Likewise.
7843 (thumb1_ashlsi3): Set type attribute.
7844 (thumb1_ashrsi3): Likewise.
7845 (thumb1_lshrsi3): Likewise.
7846 (thumb1_rotrsi3): Likewise.
7847 (shiftsi3_compare0_scratch): Likewise.
7848 * config/arm/neon.md (neon_mov<mode>): Update for attribute changes.
7849 (neon_mov<mode>): Likewise.
371e77e3
UB
7850 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si): Update for
7851 attribute changes.
006bd006
SN
7852 (thumb2_movsi_insn): Likewise.
7853 (thumb2_cmpsi_neg_shiftsi): Likewise.
7854 (thumb2_extendqisi_v6): Likewise.
7855 (thumb2_zero_extendhisi2_v6): Likewise.
7856 (thumb2_zero_extendqisi2_v6): Likewise.
7857 (thumb2_shiftsi3_short): Likewise.
7858 (thumb2_addsi3_compare0_scratch): Likewise.
7859 (orsi_not_shiftsi_si): Likewise.
7860 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
7861 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Update for attribute
7862 changes.
7863 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
7864 (1020alu_shift_op): Likewise.
7865 (1020alu_shift_reg_op): Likewise.
7866 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
7867 (alu_shift_op): Likewise.
7868 (alu_shift_reg_op): Likewise.
7869 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
7870 (11_alu_shift_op): Likewise.
7871 (11_alu_shift_reg_op): Likewise.
7872 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
7873 (9_alu_shift_reg_op): Likewise.
371e77e3
UB
7874 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
7875 changes.
006bd006
SN
7876 (cortex_a15_alu_shift): Likewise.
7877 (cortex_a15_alu_shift_reg): Likewise.
371e77e3
UB
7878 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute
7879 changes.
006bd006
SN
7880 (cortex_a5_alu_shift): Likewise.
7881 * config/arm/cortex-a53.md (cortex_a53_alu) : Update for attribute
7882 changes.
7883 (cortex_a53_alu_shift): Likewise.
7884 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
7885 changes.
7886 (cortex_a7_alu_reg): Likewise.
7887 (cortex_a7_alu_shift): Likewise.
371e77e3
UB
7888 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute
7889 changes.
006bd006
SN
7890 (cortex_a8_alu_shift): Likewise.
7891 (cortex_a8_alu_shift_reg): Likewise.
7892 (cortex_a8_mov): Likewise.
7893 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
7894 (cortex_a9_dp_shift): Likewise.
371e77e3
UB
7895 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute
7896 changes.
7897 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute
7898 changes.
006bd006
SN
7899 (cortex_r4_mov): Likewise.
7900 (cortex_r4_alu_shift): Likewise.
7901 (cortex_r4_alu_shift_reg): Likewise.
7902 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
7903 (526_alu_shift_op): Likewise.
7904 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
7905 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
7906 (626te_alu_shift_op): Likewise.
7907 * config/arm/fa726te.md (726te_shift_op): Update for attribute changes.
7908 (726te_alu_op): Likewise.
7909 (726te_alu_shift_op): Likewise.
7910 (726te_alu_shift_reg_op): Likewise.
7911 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
7912 (mp626_alu_shift_op): Likewise.
7913 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute changes.
7914 (pj4_alu_e1_conds): Likewise.
7915 (pj4_alu): Likewise.
7916 (pj4_alu_conds): Likewise.
7917 (pj4_shift): Likewise.
7918 (pj4_shift_conds): Likewise.
7919 (pj4_alu_shift): Likewise.
7920 (pj4_alu_shift_conds): Likewise.
371e77e3
UB
7921 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
7922 changes.
006bd006
SN
7923 (cortexa7_older_only): Likewise.
7924 (cortexa7_younger): Likewise.
7925
651df1b2
DM
79262013-07-18 David Malcolm <dmalcolm@redhat.com>
7927
7928 * ipa-pure-const.c (generate_summary): Rename to...
7929 (pure_const_generate_summary): ... this.
7930
ea717bd7
IS
79312013-07-17 Iain Sandoe <iain@codesourcery.com>
7932
7933 * config/rs6000/darwin.h (REGISTER_NAMES): Add HTM registers.
7934
a1259a13
YR
79352013-07-17 Yvan Roux <yvan.roux@linaro.org>
7936
7937 PR target/57909
7938 * config/arm/arm.c (gen_movmem_ldrd_strd): Fix unaligned load/store
7939 usage in HI mode.
7940
167f68ed
AK
79412013-07-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7942
7943 * config/s390/s390.c: (s390_expand_builtin): Allow -mhtm to be
7944 enabled without -march=zEC12.
7945 * config/s390/s390.h (TARGET_HTM): Do not require EC12 machine
7946 flags to be set.
7947
f900a982
MR
79482013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
7949
7950 * config/mips/mips.h (ISA_HAS_FP4): Correct formatting.
7951 (ISA_HAS_FP_MADD4_MSUB4): Also enable for ISA_MIPS32R2.
7952 (ISA_HAS_NMADD4_NMSUB4): Remove the MODE argument; rewrite in
7953 terms of ISA_HAS_FP4, and also enable for ISA_MIPS32R2.
7954 (ISA_HAS_NMADD3_NMSUB3): Remove the MODE argument.
7955 * config/mips/mips.c (mips_rtx_costs) <PLUS>: Check for
7956 ISA_HAS_FP_MADD4_MSUB4 || ISA_HAS_FP_MADD3_MSUB3 rather than
7957 ISA_HAS_FP4.
7958 <MINUS, NEG>: Update according to changes to ISA_HAS_NMADD4_NMSUB4
7959 and ISA_HAS_NMADD3_NMSUB3.
7960 * config/mips/mips.md (nmadd4<mode>, nmadd3<mode>): Likewise.
7961 (nmadd4<mode>_fastmath, nmadd3<mode>_fastmath): Likewise.
7962 (nmsub4<mode>, nmsub3<mode>): Likewise.
7963 (nmsub4<mode>_fastmath, nmsub3<mode>_fastmath): Likewise.
7964
d4ed27eb
MR
79652013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
7966
7967 * config/mips/mips.h (ISA_HAS_NMADD4_NMSUB4): Remove
7968 TARGET_MIPS5400 checking.
7969
7a5add18
PB
79702013-07-16 Jakub Jelinek <jakub@redhat.com>
7971 Peter Bergner <bergner@vnet.ibm.com>
7972
7973 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTERS): Mention HTM
7974 registers in the comment.
7975 (DWARF_FRAME_REGISTERS): Subtract also the 3 HTM registers.
7976 (DWARF_REG_TO_UNWIND_COLUMN): Use DWARF_FRAME_REGISTERS
7977 rather than FIRST_PSEUDO_REGISTERS.
7978
79792013-07-16 Peter Bergner <bergner@vnet.ibm.com>
c694dc01
PB
7980
7981 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
7982 enable extra ISA flags with TARGET_HTM.
7983
d2ab0929
MR
79842013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
7985
7986 * config/mips/mips.h (ISA_HAS_MULS, ISA_HAS_MSAC, ISA_HAS_MACC):
7987 Fix comment typos.
7988
839c74bc
CH
79892013-07-15 Cong Hou <congh@google.com>
7990
7991 * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use hash function
7992 in compare function for sorting.
7993
7a5add18 79942013-07-15 Peter Bergner <bergner@vnet.ibm.com>
0258b6e4
PB
7995
7996 * config.gcc (powerpc*-*-*): Install htmintrin.h and htmxlintrin.h.
7997 * config/rs6000/t-rs6000 (MD_INCLUDES): Add htm.md.
7998 * config/rs6000/rs6000.opt: Add -mhtm option.
7999 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_HTM.
8000 (ISA_2_7_MASKS_SERVER): Add OPTION_MASK_HTM.
8001 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
8002 __HTM__ if the HTM instructions are available.
8003 * config/rs6000/predicates.md (u3bit_cint_operand, u10bit_cint_operand,
8004 htm_spr_reg_operand): New define_predicates.
8005 * config/rs6000/rs6000.md (define_attr "type"): Add htm.
8006 (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO): New define_constants.
8007 Include htm.md.
8008 * config/rs6000/rs6000-builtin.def (BU_HTM_0, BU_HTM_1, BU_HTM_2,
8009 BU_HTM_3, BU_HTM_SPR0, BU_HTM_SPR1): Add support macros for defining
8010 HTM builtin functions.
8011 * config/rs6000/rs6000.c (RS6000_BUILTIN_H): New macro.
8012 (rs6000_reg_names, alt_reg_names): Add HTM SPR register names.
8013 (rs6000_init_hard_regno_mode_ok): Add support for HTM instructions.
8014 (rs6000_builtin_mask_calculate): Likewise.
8015 (rs6000_option_override_internal): Likewise.
8016 (bdesc_htm): Add new HTM builtin support.
8017 (htm_spr_num): New function.
8018 (htm_spr_regno): Likewise.
8019 (rs6000_htm_spr_icode): Likewise.
8020 (htm_expand_builtin): Likewise.
8021 (htm_init_builtins): Likewise.
8022 (rs6000_expand_builtin): Add support for HTM builtin functions.
8023 (rs6000_init_builtins): Likewise.
371e77e3
UB
8024 (rs6000_invalid_builtin, rs6000_opt_mask): Add support for -mhtm
8025 option.
0258b6e4
PB
8026 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mhtm.
8027 (TARGET_HTM, MASK_HTM): Define macros.
8028 (FIRST_PSEUDO_REGISTER): Adjust for new HTM SPR registers.
8029 (FIXED_REGISTERS): Likewise.
8030 (CALL_USED_REGISTERS): Likewise.
8031 (CALL_REALLY_USED_REGISTERS): Likewise.
8032 (REG_ALLOC_ORDER): Likewise.
8033 (enum reg_class): Likewise.
8034 (REG_CLASS_NAMES): Likewise.
8035 (REG_CLASS_CONTENTS): Likewise.
8036 (REGISTER_NAMES): Likewise.
8037 (ADDITIONAL_REGISTER_NAMES): Likewise.
8038 (RS6000_BTC_SPR, RS6000_BTC_VOID, RS6000_BTC_32BIT, RS6000_BTC_64BIT,
8039 RS6000_BTC_MISC_MASK, RS6000_BTM_HTM): New macros.
8040 (RS6000_BTM_COMMON): Add RS6000_BTM_HTM.
8041 * config/rs6000/htm.md: New file.
8042 * config/rs6000/htmintrin.h: New file.
8043 * config/rs6000/htmxlintrin.h: New file.
8044
87dd8ab0
MS
80452013-07-15 Marcus Shawcroft <marcus.shawcroft@arm.com>
8046
8047 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
8048 Define SYMBOL_TINY_GOT, update comment.
8049 * config/aarch64/aarch64.c
8050 (aarch64_load_symref_appropriately): Handle SYMBOL_TINY_GOT.
8051 (aarch64_expand_mov_immediate): Likewise.
8052 (aarch64_print_operand): Likewise.
8053 (aarch64_classify_symbol): Likewise.
8054 * config/aarch64/aarch64.md (UNSPEC_GOTTINYPIC): Define.
8055 (ldr_got_tiny): Define.
8056
52d676b6
TG
80572013-07-13 Tobias Grosser <tobias@grosser.es>
8058
8059 PR tree-optimization/54094
8060 * graphite-clast-to-gimple.c (translate_clast_for_loop): Derive the
8061 scheduling dimension for the parallelism check from the polyhedral
8062 information in the AST.
8063 * graphite-dependences.c (carries_deps): Do not assume the schedule is
8064 in 2D + 1 form.
8065
286e8fc1
JM
80662013-07-13 Jason Merrill <jason@redhat.com>
8067
8068 * print-tree.c (debug_vec_tree): Use debug_raw.
8069 (debug_raw (vec<tree, va_gc> &)): New.
8070 (debug_raw (vec<tree, va_gc> *)): New.
8071 * tree.h: Declare them.
8072
e43257e8
BC
80732013-07-13 Bin Cheng <bin.cheng@arm.com>
8074
8075 * ifcvt.c (ifcvt_after_combine): New static variable.
8076 (cheap_bb_rtx_cost_p): Set scale to REG_BR_PROB_BASE when optimizing
8077 for size.
8078 (if_convert): New parameter after_combine. Set ifcvt_after_combine.
8079 (rest_of_handle_if_conversion, rest_of_handle_if_after_combine,
8080 rest_of_handle_if_after_reload): Pass new argument for if_convert.
8081
da582d46
MR
80822013-07-12 Maciej W. Rozycki <macro@codesourcery.com>
8083
8084 * config/mips/mips.c (mips_expand_call): Remove empty statement.
8085
18b0ea8f
MM
80862013-07-12 Michael Matz <matz@suse.de>
8087
8088 PR middle-end/55771
8089 * convert.c (convert_to_real): Reject non-float inner types.
8090
e4f0f84d
TB
80912013-07-12 Tejas Belagod <tejas.belagod@arm.com>
8092
8093 * config/aarch64/aarch64-protos.h
8094 (aarch64_simd_immediate_valid_for_move): Remove.
8095 * config/aarch64/aarch64.c (simd_immediate_info): New member.
8096 (aarch64_simd_valid_immediate): Recognize idioms for shifting ones
8097 cases.
8098 (aarch64_output_simd_mov_immediate): Print the correct shift specifier.
8099
76500022
SE
81002013-07-11 Steve Ellcey <sellcey@mips.com>
8101
8102 * config/mips/mips.c (mips_conditional_register_usage): Do not
8103 use t[0-7] registers in MIPS16 mode when optimizing for size.
8104
78039734
ST
81052013-07-11 Sriraman Tallam <tmsriram@google.com>
8106
8107 * config/i386/i386.c (dispatch_function_versions): Fix array
8108 indexing of function_version_info to match actual_versions.
8109
7b24b675
TJ
81102013-07-11 Teresa Johnson <tejohnson@google.com>
8111
8112 * vec.h (struct va_gc): Move release out-of-line.
8113 (va_gc::release): Call ggc_free on released vec.
8114
85d4cbb8
UW
81152013-07-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
8116
8117 * config/rs6000/rs6000.md (""*tls_gd_low<TLSmode:tls_abi_suffix>"):
8118 Require GOT register as additional operand in UNSPEC.
8119 ("*tls_ld_low<TLSmode:tls_abi_suffix>"): Likewise.
8120 ("*tls_got_dtprel_low<TLSmode:tls_abi_suffix>"): Likewise.
8121 ("*tls_got_tprel_low<TLSmode:tls_abi_suffix>"): Likewise.
8122 ("*tls_gd<TLSmode:tls_abi_suffix>"): Update splitter.
8123 ("*tls_ld<TLSmode:tls_abi_suffix>"): Likewise.
8124 ("tls_got_dtprel_<TLSmode:tls_abi_suffix>"): Likewise.
8125 ("tls_got_tprel_<TLSmode:tls_abi_suffix>"): Likewise.
8126
52b3f9e2
GJL
81272013-07-11 Georg-Johann Lay <avr@gjlay.de>
8128
8129 PR target/57631
8130 * config/avr/avr.c (avr_set_current_function): Sanity-check signal
8131 name seen by assembler/linker rather if available.
8132
3f3e266e
AS
81332013-07-11 Andreas Schwab <schwab@suse.de>
8134
8135 * config/aarch64/aarch64-linux.h (CPP_SPEC): Define.
8136
21231ca6
VM
81372013-07-10 Vladimir Makarov <vmakarov@redhat.com>
8138
371e77e3 8139 * lra-constraints.c (curr_insn_transform): Switch off optional reloads.
21231ca6 8140
d331d374
JM
81412013-07-10 Joseph Myers <joseph@codesourcery.com>
8142
673c2f63
JM
8143 * doc/tm.texi.in: Move hook documentation to ....
8144 * target.def: ... here.
8145
d331d374
JM
8146 * doc/tm.texi.in (TARGET_CANONICALIZE_COMPARISON): Remove stray
8147 text on @hook line.
8148 * doc/tm.texi: Regenerate.
8149
dfeadaa0
PC
81502013-07-10 Paolo Carlini <paolo.carlini@oracle.com>
8151
8152 PR c++/57869
8153 * doc/invoke.texi: Document -Wconditionally-supported.
8154
bb6f2bac
GJL
81552013-07-10 Georg-Johann Lay <avr@gjlay.de>
8156
8157 PR target/57844
8158 * config/avr/avr.c (avr_prologue_setup_frame): Trunk -size to mode
8159 of my_fp.
8160
5219b232
GJL
81612013-07-10 Georg-Johann Lay <avr@gjlay.de>
8162
8163 PR target/57506
8164 * config/avr/avr-mcus.def (atmega16hva, atmega16hva2, atmega16hvb)
8165 (atmega16m1, atmega16u4, atmega32a, atmega32c1, atmega32hvb)
8166 (atmega32m1, atmega32u4, atmega32u6, atmega64c1, atmega64m1):
8167 Remove duplicate devices.
8168 * config/avr/gen-avr-mmcu-texi.c (print_mcus): Fail on duplicate MCUs.
8169 * config/avr/t-multilib: Regenerate.
8170 * config/avr/avr-tables.opt: Regenerate.
8171 * doc/avr-mmcu.texi: Regenerate.
8172
283045c0
GJL
81732013-07-10 Georg-Johann Lay <avr@gjlay.de>
8174
8175 PR target/56987
8176 * config/avr/avr.opt (Waddr-space-convert): Fix typo.
8177
ceb2d59f 81782013-07-10 Graham Stott <graham.stott@btinternet.com>
6a2fa4b2 8179
ceb2d59f
GS
8180 * config/mips/mips.c (mips_rtx_costs): Very slightly increase
8181 the cost of MULT when optimizing for size.
8182
055e0a99
JBG
81832013-07-10 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8184
8185 * config/cr16/cr16-protos.h: Don't include target.h.
8186
ef43e868
JM
81872013-07-09 Joseph Myers <joseph@codesourcery.com>
8188
8189 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Only
8190 adjust register size for TDmode and TFmode for VSX registers.
8191
4a283fdf
KT
81922013-07-08 Kai Tietz <ktietz@redhat.com>
8193
8194 PR target/56892
8195 * config/i386/i386.c (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Define as
8196 hook_bool_const_tree_true.
8197
2cf4c39e
AK
81982013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8199
8200 * config/s390/s390.c: Replace F*_REGNUM with FPR*_REGNUM.
8201 * config/s390/s390.h: Remove F*_REGNUM macro definitions.
8202 * config/s390/s390.md: Define FPR*_REGNUM constants.
8203 Fix FPR2_REGNUM constant (18 -> 17).
8204 ("*trunc<BFP:mode><DFP_ALL:mode>2")
8205 ("*trunc<DFP_ALL:mode><BFP:mode>2")
8206 ("trunc<BFP:mode><DFP_ALL:mode>2")
8207 ("trunc<DFP_ALL:mode><BFP:mode>2")
8208 ("*extend<BFP:mode><DFP_ALL:mode>2")
8209 ("*extend<DFP_ALL:mode><BFP:mode>2")
8210 ("extend<BFP:mode><DFP_ALL:mode>2")
8211 ("extend<DFP_ALL:mode><BFP:mode>2"): Replace FPR2_REGNUM with
8212 FPR4_REGNUM.
8213
e6ac0270 82142013-07-08 Graham Stott <graham.stott@btinternet.com>
e6ac0270 8215
6a2fa4b2 8216 * Makefile.in: (c-family-warn): Define to $(STRICT_WARN)
64a92610 8217
b89b22fc
AK
82182013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8219
8220 * config/s390/s390.c: Rename cfun_set_fpr_bit to cfun_set_fpr_save
8221 and cfun_fpr_bit_p to cfun_fpr_save_p.
8222 (s390_frame_area, s390_register_info, s390_frame_info)
8223 (s390_emit_prologue, s390_emit_epilogue)
8224 (s390_conditional_register_usage): Use the *_REGNUM macros for FPR
8225 register numbers.
8226 * config/s390/s390.h: Define *_REGNUM macros for floating point
8227 register numbers.
8228
07f398aa
EB
82292013-07-08 Eric Botcazou <ebotcazou@adacore.com>
8230
8231 * Makefile.in (tree-ssa-reassoc.o): Add dependency on $(PARAMS_H).
8232
75fefa91
PCC
82332013-07-08 Po-Chun Chang <pchang9@cs.wisc.edu>
8234
8235 PR rtl-optimization/57786
8236 * combine.c (distribute_notes) <case REG_DEAD>: Change all_used to bool
8237 and break out of the loop when it is set to false.
8238
046f1eee
JJ
82392013-07-08 Jakub Jelinek <jakub@redhat.com>
8240
8140c065
JJ
8241 PR target/57819
8242 * simplify-rtx.c (simplify_unary_operation_1) <case ZERO_EXTEND>:
8243 Simplify (zero_extend:SI (subreg:QI (and:SI (reg:SI)
8244 (const_int 63)) 0)).
8245 * combine.c (make_extraction): Create ZERO_EXTEND or SIGN_EXTEND
8246 using simplify_gen_unary instead of gen_rtx_*_EXTEND.
8247 * config/i386/i386.md (*jcc_bt<mode>_1): New define_insn_and_split.
8248
046f1eee
JJ
8249 PR rtl-optimization/57829
8250 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Ensure that
8251 mask bits outside of mode are just sign-extension from mode to HWI.
8252
930b700b
MZ
82532013-07-08 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
8254
8255 * config/i386/i386-opts.h (enum stringop_alg): Add vector_loop.
8256 * config/i386/i386.c (expand_set_or_movmem_via_loop): Use
8257 adjust_address instead of change_address to keep info about alignment.
8258 (emit_strmov): Remove.
8259 (emit_memmov): New function.
8260 (expand_movmem_epilogue): Refactor to properly handle bigger sizes.
8261 (expand_movmem_epilogue): Likewise and return updated rtx for
8262 destination.
8263 (expand_constant_movmem_prologue): Likewise and return updated rtx for
8264 destination and source.
8265 (decide_alignment): Refactor, handle vector_loop.
8266 (ix86_expand_movmem): Likewise.
8267 (ix86_expand_setmem): Likewise.
8268 * config/i386/i386.opt (Enum): Add vector_loop to option stringop_alg.
8269
7b9d1bd8
UB
82702013-07-07 Uros Bizjak <ubizjak@gmail.com>
8271
8272 * config/i386/driver-i386.c (host_detect_local_cpu): Do not check
8273 signature_TM2_ebx, it interferes with signature_INTEL_ebx.
8274
eabb5f48
UB
82752013-07-06 Uros Bizjak <ubizjak@gmail.com>
8276
8277 * config/i386/sse.md (sse_movlhps): Change alternative 3
8278 of operand 2 to "m".
8279
82802013-07-06 Uros Bizjak <ubizjak@gmail.com>
8281
8282 PR target/57807
8283 * config/i386/sse.md (iptr): New mode attribute.
8284 (sse2_movq128): Add pointer size overrides for Intel asm dialect.
8285 (<sse>_vm<plusminus_insn><mode>3): Ditto.
8286 (<sse>_vmmul<mode>3): Ditto.
8287 (<sse>_vmdiv<mode>3): Ditto.
8288 (sse_vmrcpv4sf2): Ditto.
8289 (<sse>_vmsqrt<mode>2): Ditto.
8290 (sse_vmrsqrtv4sf2): Ditto.
8291 (<sse>_vm<code><mode>3): Ditto.
8292 (avx_vmcmp<mode>3): Ditto.
8293 (<sse>_vmmaskcmp<mode>3): Ditto.
8294 (<sse>_comi): Ditto.
8295 (<sse>_ucomi): Ditto.
8296 (*xop_vmfrcz_<mode>): Ditto.
8297 (*fmai_fmadd_<mode>): Ditto.
8298 (*fmai_fmsub_<mode>): Ditto.
8299 (*fmai_fnmadd_<mode>): Ditto.
8300 (*fmai_fnmsub_<mode>): Ditto.
8301 (*fma4i_vmfmadd_<mode>): Ditto.
8302 (*fma4i_vmfmsub_<mode>): Ditto.
8303 (*fma4i_vmfnmadd_<mode>): Ditto.
8304 (*fma4i_vmfnmsub_<mode>): Ditto.
8305 (*xop_vmfrcz_<mode>): Ditto.
8306 (sse_cvtps2pi): Ditto.
8307 (sse_cvttps2pi): Ditto.
8308 (sse_cvtss2si): Ditto.
8309 (sse_cvtss2si_2): Ditto.
8310 (sse_cvtss2siq_2): Ditto.
8311 (sse_cvttss2si): Ditto.
8312 (sse_cvttss2siq): Ditto.
8313 (sse_cvtsd2si): Ditto.
8314 (sse_cvtsd2si_2): Ditto.
8315 (sse_cvtsd2siq_2): Ditto.
8316 (sse_cvttsd2si): Ditto.
8317 (sse_cvttsd2siq): Ditto.
8318 (sse_cvtsd2ss): Ditto.
8319 (sse_cvtss2sd): Ditto.
8320 (avx2_pbroadcast<mode>): Ditto.
8321 (avx2_pbroadcast<mode>_1): Ditto.
8322 (*avx_vperm_broadcast_v4sf): Ditto.
8323
8324 (sse_movhlps): Ditto for movlp[sd]/movhp[sd] alternatives.
8325 (sse_movlhps): Ditto.
8326 (sse_storehps): Ditto.
8327 (sse_loadhps): Ditto.
8328 (sse_storelps): Ditto.
8329 (sse_loadlps): Ditto.
8330 (*vec_concatv4sf): Ditto.
8331 (*vec_interleave_highv2df): Ditto.
8332 (*vec_interleave_lowv2df): Ditto.
8333 (*vec_extractv2df_1_sse): Ditto.
8334 (*vec_extractv2df_0_sse): Ditto.
8335 (sse2_storelpd): Ditto.
8336 (sse2_loadlpd): Ditto.
8337 (sse2_movsd): Ditto.
8338 (*vec_concatv4si): Ditto.
8339 (vec_concatv2di): Ditto.
8340
8341 * config/i386/mmx.md (mmx_punpcklbw): Add pointer size overrides
8342 for Intel asm dialect.
8343 (mmx_punpcklwd): Ditto.
8344 (mmx_punpckldq): Ditto.
8345
8346 * config/i386/i386.c (ix86_print_operand) ['H']: Output 'qword ptr'
8347 for intel assembler dialect.
8348
1f6eac90
JJ
83492013-07-06 Jakub Jelinek <jakub@redhat.com>
8350
8351 PR target/29776
8352 * fold-const.c (tree_call_nonnegative_warnv_p): Return true
8353 for BUILT_IN_C{LZ,LRSB}*.
8354 * tree.h (CASE_INT_FN): Add FN##IMAX case.
8355 * tree-vrp.c (extract_range_basic): Handle
8356 BUILT_IN_{FFS,PARITY,POPCOUNT,C{LZ,TZ,LRSB}}*. For
8357 BUILT_IN_CONSTANT_P if argument isn't (D) of PARM_DECL,
8358 fall thru to code calling set_value*.
8359 * builtins.c (expand_builtin): Remove *IMAX cases.
8360 (fold_builtin_bitop): For BUILT_IN_CLRSB* return NULL_TREE
8361 if width is bigger than 2*HWI.
8362
2b778c9d
VM
83632013-07-05 Vladimir Makarov <vmakarov@redhat.com>
8364
8365 PR rtl-optimization/55342
8366 * lra-int.h (lra_subreg_reload_pseudos): New.
8367 * lra.c: Add undoing optional reloads to the block diagram.
8368 (lra_subreg_reload_pseudos): New.
8369 (lra_optional_reload_pseudos): Change comments.
8370 (lra): Init and clear lra_subreg_reload_pseudos. Clear
8371 lra_optional_reload_pseudos after undo transformations.
8372 * lra-assigns.c (pseudo_prefix_title): New.
8373 (lra_setup_reg_renumber): Use it.
8374 (spill_for): Ditto. Check subreg reload pseudos too.
8375 (assign_by_spills): Consider subreg reload pseudos too.
8376 * lra-constraints.c (simplify_operand_subreg): Use
8377 lra_subreg_reload_pseudos instead of lra_optional_reload_pseudos.
8378 (curr_insn_transform): Recognize and do optional reloads.
8379 (undo_optional_reloads): New.
8380 (lra_undo_inheritance): Call undo_optional_reloads.
8381
207156e4
TQ
83822013-07-05 Thomas Quinot <quinot@adacore.com>
8383
8384 * tree-complex.c (expand_complex_operations_1): Fix typo.
8385
8990e73a
TB
83862013-07-04 Tejas Belagod <tejas.belagod@arm.com>
8387
8388 * config/aarch64/aarch64-protos.h (cpu_vector_cost): New.
8389 (tune_params): New member 'const vec_costs'.
8390 * config/aarch64/aarch64.c (generic_vector_cost): New.
8391 (generic_tunings): New member 'generic_vector_cost'.
8392 (aarch64_builtin_vectorization_cost): New.
8393 (aarch64_add_stmt_cost): New.
8394 (TARGET_VECTORIZE_ADD_STMT_COST): New.
8395 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
8396
f7bc421d
JJ
83972013-07-03 Jakub Jelinek <jakub@redhat.com>
8398
8399 PR target/57777
8400 * config/i386/predicates.md (vsib_address_operand): Disallow
8401 SYMBOL_REF or LABEL_REF in parts.disp if TARGET_64BIT && flag_pic.
8402
e90d1568
HPN
84032013-07-03 Hans-Peter Nilsson <hp@bitrange.com>
8404
8405 PR middle-end/55030
8406 * stmt.c (expand_nl_goto_receiver): Remove almost-copy of
8407 expand_builtin_setjmp_receiver.
8408 (expand_label): Adjust, call expand_builtin_setjmp_receiver
8409 with NULL for the label parameter.
8410 * builtins.c (expand_builtin_setjmp_receiver): Don't clobber
8411 the frame-pointer. Adjust comments.
8412 [HAVE_builtin_setjmp_receiver]: Emit builtin_setjmp_receiver
8413 only if LABEL is non-NULL.
8414
cbd7413b
YZ
84152013-07-03 Yufeng Zhang <yufeng.zhang@arm.com>
8416
8417 * config/aarch64/aarch64.h (enum arm_abi_type): Remove.
8418 (ARM_ABI_AAPCS64): Ditto.
8419 (arm_abi): Ditto.
8420 (ARM_DEFAULT_ABI): Ditto.
8421
dec11868
JG
84222013-07-03 James Greenhalgh <james.greenhalgh@arm.com>
8423
8424 * config/aarch64/aarch64-builtins.c
8425 (aarch64_simd_expand_builtin): Handle AARCH64_SIMD_STORE1.
8426 * config/aarch64/aarch64-simd-builtins.def (ld1): New.
8427 (st1): Likewise.
8428 * config/aarch64/aarch64-simd.md
8429 (aarch64_ld1<VALL:mode>): New.
8430 (aarch64_st1<VALL:mode>): Likewise.
8431 * config/aarch64/arm_neon.h
8432 (vld1<q>_<fpsu><8, 16, 32, 64>): Convert to RTL builtins.
8433
786fb9b6
ST
84342013-07-02 Sriraman Tallam <tmsriram@google.com>
8435
0ba6aff3
UB
8436 * config/i386/i386.c (gate_insert_vzeroupper): Check if
8437 target ISA is AVX.
786fb9b6
ST
8438 (ix86_option_override_internal):Turn on all -mavx target flags by
8439 default as they are dependent on AVX anyway.
8440
4b043553
CC
84412013-07-02 Cary Coutant <ccoutant@google.com>
8442
8443 * dwarf2out.c (loc_checksum): Call hash_loc_operands for a
8444 deterministic hash.
8445 (loc_checksum_ordered): Likewise.
8446 (hash_loc_operands): Remove inline keyword.
8447
c4e87a13
JJ
84482013-07-02 Jakub Jelinek <jakub@redhat.com>
8449
8450 PR tree-optimization/57741
8451 * tree-vect-loop.c (vect_is_simple_iv_evolution): Disallow
8452 non-INTEGRAL_TYPE_P non-SCALAR_FLOAT_TYPE_P SSA_NAME step_exprs,
8453 or SCALAR_FLOAT_TYPE_P SSA_NAMEs if !flag_associative_math.
8454 Allow REAL_CST step_exprs if flag_associative_math.
8455 (get_initial_def_for_induction): Handle SCALAR_FLOAT_TYPE_P step_expr.
8456
26366d28
IB
84572013-07-02 Ian Bolton <ian.bolton@arm.com>
8458
0ba6aff3 8459 * config/aarch64/aarch64-simd.md (absdi2): Support abs for DI mode.
26366d28 8460
2879bb2b
IB
84612013-07-02 Ian Bolton <ian.bolton@arm.com>
8462
8463 * config/aarch64/aarch64.md (*extr_insv_reg<mode>): New pattern.
8464
afc5e8a6
KT
84652013-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8466
8467 * config/arm/arm.md (arm_andsi3_insn): Add alternatives for 16-bit
8468 encoding.
8469 (iorsi3_insn): Likewise.
8470 (arm_xorsi3): Likewise.
8471
31f8442b
SN
84722013-07-01 Sofiane Naci <sofiane.naci@arm.com>
8473
8474 * arm.md (attribute "wtype"): Delete. Move attribute values from here
8475 to ...
8476 (attribute "type"): ... here, and prefix with "wmmx_".
8477 (attribute "core_cycles"): Update for attribute changes.
8478 * iwmmxt.md (tbcstv8qi): Update for attribute changes.
8479 (tbcstv4hi): Likewise.
8480 (tbcstv2si): Likewise.
8481 (iwmmxt_iordi3): Likewise.
8482 (iwmmxt_xordi3): Likewise.
8483 (iwmmxt_anddi3): Likewise.
8484 (iwmmxt_nanddi3): Likewise.
8485 (iwmmxt_arm_movdi): Likewise.
8486 (iwmmxt_movsi_insn): Likewise.
8487 (mov<mode>_internal): Likewise.
8488 (and<mode>3_iwmmxt): Likewise.
8489 (ior<mode>3_iwmmxt): Likewise.
8490 (xor<mode>3_iwmmxt): Likewise.
8491 (add<mode>3_iwmmxt): Likewise.
8492 (ssaddv8qi3): Likewise.
8493 (ssaddv4hi3): Likewise.
8494 (ssaddv2si3): Likewise.
8495 (usaddv8qi3): Likewise.
8496 (usaddv4hi3): Likewise.
8497 (usaddv2si3): Likewise.
8498 (sub<mode>3_iwmmxt): Likewise.
8499 (sssubv8qi3): Likewise.
8500 (sssubv4hi3): Likewise.
8501 (sssubv2si3): Likewise.
8502 (ussubv8qi3): Likewise.
8503 (ussubv4hi3): Likewise.
8504 (ussubv2si3): Likewise.
8505 (mulv4hi3_iwmmxt): Likewise.
8506 (smulv4hi3_highpart): Likewise.
8507 (umulv4hi3_highpart): Likewise.
8508 (iwmmxt_wmacs): Likewise.
8509 (iwmmxt_wmacsz): Likewise.
8510 (iwmmxt_wmacu): Likewise.
8511 (iwmmxt_wmacuz): Likewise.
8512 (iwmmxt_clrdi): Likewise.
8513 (iwmmxt_clrv8qi): Likewise.
8514 (iwmmxt_clr4hi): Likewise.
8515 (iwmmxt_clr2si): Likewise.
8516 (iwmmxt_uavgrndv8qi3): Likewise.
8517 (iwmmxt_uavgrndv4hi3): Likewise.
8518 (iwmmxt_uavgv8qi3): Likewise.
8519 (iwmmxt_uavgv4hi3): Likewise.
8520 (iwmmxt_tinsrb): Likewise.
8521 (iwmmxt_tinsrh): Likewise.
8522 (iwmmxt_tinsrw): Likewise.
8523 (iwmmxt_textrmub): Likewise.
8524 (iwmmxt_textrmsb): Likewise.
8525 (iwmmxt_textrmuh): Likewise.
8526 (iwmmxt_textrmsh): Likewise.
8527 (iwmmxt_textrmw): Likewise.
8528 (iwmxxt_wshufh): Likewise.
8529 (eqv8qi3): Likewise.
8530 (eqv4hi3): Likewise.
8531 (eqv2si3): Likewise.
8532 (gtuv8qi3): Likewise.
8533 (gtuv4hi3): Likewise.
8534 (gtuv2si3): Likewise.
8535 (gtv8qi3): Likewise.
8536 (gtv4hi3): Likewise.
8537 (gtv2si3): Likewise.
8538 (smax<mode>3_iwmmxt): Likewise.
8539 (umax<mode>3_iwmmxt): Likewise.
8540 (smin<mode>3_iwmmxt): Likewise.
8541 (umin<mode>3_iwmmxt): Likewise.
8542 (iwmmxt_wpackhss): Likewise.
8543 (iwmmxt_wpackwss): Likewise.
8544 (iwmmxt_wpackdss): Likewise.
8545 (iwmmxt_wpackhus): Likewise.
8546 (iwmmxt_wpackwus): Likewise.
8547 (iwmmxt_wpackdus): Likewise.
8548 (iwmmxt_wunpckihb): Likewise.
8549 (iwmmxt_wunpckihh): Likewise.
8550 (iwmmxt_wunpckihw): Likewise.
8551 (iwmmxt_wunpckilb): Likewise.
8552 (iwmmxt_wunpckilh): Likewise.
8553 (iwmmxt_wunpckilw): Likewise.
8554 (iwmmxt_wunpckehub): Likewise.
8555 (iwmmxt_wunpckehuh): Likewise.
8556 (iwmmxt_wunpckehuw): Likewise.
8557 (iwmmxt_wunpckehsb): Likewise.
8558 (iwmmxt_wunpckehsh): Likewise.
8559 (iwmmxt_wunpckehsw): Likewise.
8560 (iwmmxt_wunpckelub): Likewise.
8561 (iwmmxt_wunpckeluh): Likewise.
8562 (iwmmxt_wunpckeluw): Likewise.
8563 (iwmmxt_wunpckelsb): Likewise.
8564 (iwmmxt_wunpckelsh): Likewise.
8565 (iwmmxt_wunpckelsw): Likewise.
8566 (ror<mode>3): Likewise.
8567 (ashr<mode>3_iwmmxt): Likewise.
8568 (lshr<mode>3_iwmmxt): Likewise.
8569 (ashl<mode>3_iwmmxt): Likewise.
8570 (ror<mode>3_di): Likewise.
8571 (ashr<mode>3_di): Likewise.
8572 (lshr<mode>3_di): Likewise.
8573 (ashl<mode>3_di): Likewise.
8574 (iwmmxt_wmadds): Likewise.
8575 (iwmmxt_wmaddu): Likewise.
8576 (iwmmxt_tmia): Likewise.
8577 (iwmmxt_tmiaph): Likewise.
8578 (iwmmxt_tmiabb): Likewise.
8579 (iwmmxt_tmiatb): Likewise.
8580 (iwmmxt_tmiabt): Likewise.
8581 (iwmmxt_tmiatt): Likewise.
8582 (iwmmxt_tmovmskb): Likewise.
8583 (iwmmxt_tmovmskh): Likewise.
8584 (iwmmxt_tmovmskw): Likewise.
8585 (iwmmxt_waccb): Likewise.
8586 (iwmmxt_wacch): Likewise.
8587 (iwmmxt_waccw): Likewise.
8588 (iwmmxt_waligni): Likewise.
8589 (iwmmxt_walignr): Likewise.
8590 (iwmmxt_walignr0): Likewise.
8591 (iwmmxt_walignr1): Likewise.
8592 (iwmmxt_walignr2): Likewise.
8593 (iwmmxt_walignr3): Likewise.
8594 (iwmmxt_wsadb): Likewise.
8595 (iwmmxt_wsadh): Likewise.
8596 (iwmmxt_wsadbz): Likewise.
8597 (iwmmxt_wsadhz): Likewise.
8598 * iwmmxt2.md (iwmmxt_wabs<mode>3): Update for attribute changes.
8599 (iwmmxt_wabsdiffb): Likewise.
8600 (iwmmxt_wabsdiffh): Likewise.
8601 (iwmmxt_wabsdiffw): Likewise.
8602 (iwmmxt_waddsubhx): Likewise
8603 (iwmmxt_wsubaddhx): Likewise.
8604 (addc<mode>3): Likewise.
8605 (iwmmxt_avg4): Likewise.
8606 (iwmmxt_avg4r): Likewise.
8607 (iwmmxt_wmaddsx): Likewise.
8608 (iwmmxt_wmaddux): Likewise.
8609 (iwmmxt_wmaddsn): Likewise.
8610 (iwmmxt_wmaddun): Likewise.
8611 (iwmmxt_wmulwsm): Likewise.
8612 (iwmmxt_wmulwum): Likewise.
8613 (iwmmxt_wmulsmr): Likewise.
8614 (iwmmxt_wmulumr): Likewise.
8615 (iwmmxt_wmulwsmr): Likewise.
8616 (iwmmxt_wmulwumr): Likewise.
8617 (iwmmxt_wmulwl): Likewise.
8618 (iwmmxt_wqmulm): Likewise.
8619 (iwmmxt_wqmulwm): Likewise.
8620 (iwmmxt_wqmulmr): Likewise.
8621 (iwmmxt_wqmulwmr): Likewise.
8622 (iwmmxt_waddbhusm): Likewise.
8623 (iwmmxt_waddbhusl): Likewise.
8624 (iwmmxt_wqmiabb): Likewise.
8625 (iwmmxt_wqmiabt): Likewise.
8626 (iwmmxt_wqmiatb): Likewise.
8627 (iwmmxt_wqmiatt): Likewise.
8628 (iwmmxt_wqmiabbn): Likewise.
8629 (iwmmxt_wqmiabtn): Likewise.
8630 (iwmmxt_wqmiatbn): Likewise.
8631 (iwmmxt_wqmiattn): Likewise.
8632 (iwmmxt_wmiabb): Likewise.
8633 (iwmmxt_wmiabt): Likewise.
8634 (iwmmxt_wmiatb): Likewise.
8635 (iwmmxt_wmiatt): Likewise.
8636 (iwmmxt_wmiabbn): Likewise.
8637 (iwmmxt_wmiabtn): Likewise.
8638 (iwmmxt_wmiatbn): Likewise.
8639 (iwmmxt_wmiattn): Likewise.
8640 (iwmmxt_wmiawbb): Likewise.
8641 (iwmmxt_wmiawbt): Likewise.
8642 (iwmmxt_wmiawtb): Likewise.
8643 (iwmmxt_wmiawtt): Likewise.
8644 (iwmmxt_wmiawbbn): Likewise.
8645 (iwmmxt_wmiawbtn): Likewise.
8646 (iwmmxt_wmiawtbn): Likewise.
8647 (iwmmxt_wmiawttn): Likewise.
8648 (iwmmxt_wmerge): Likewise.
8649 (iwmmxt_tandc<mode>3): Likewise.
8650 (iwmmxt_torc<mode>3): Likewise.
8651 (iwmmxt_torvsc<mode>3): Likewise.
8652 (iwmmxt_textrc<mode>3): Likewise.
8653 * marvell-f-iwmmxt.md (wmmxt_shift): Update for attribute changes.
8654 (wmmxt_pack): Likewise.
8655 (wmmxt_mult_c1): Likewise.
8656 (wmmxt_mult_c2): Likewise.
8657 (wmmxt_alu_c1): Likewise.
8658 (wmmxt_alu_c2): Likewise.
8659 (wmmxt_alu_c3): Likewise.
8660 (wmmxt_transfer_c1): Likewise.
8661 (wmmxt_transfer_c2): Likewise.
8662 (wmmxt_transfer_c3): Likewise.
8663 (marvell_f_iwmmxt_wstr): Likewise.
8664 (marvell_f_iwmmxt_wldr): Likewise.
8665
bdb7bf8a
YZ
86662013-06-29 Yufeng Zhang <yufeng.zhang@arm.com>
8667
0ba6aff3 8668 * config/aarch64/aarch64.c: Remove junk from the beginning of the file.
bdb7bf8a 8669
e6631d38
VM
86702013-06-28 Vladimir Makarov <vmakarov@redhat.com>
8671
8672 Revert:
8673 2013-06-28 Vladimir Makarov <vmakarov@redhat.com>
8674 * lra-constraints.c (need_for_split_p): Check call used hard regs
8675 living through calls.
8676
8677 * lra-constraints.c (inherit_in_ebb): Reset live_hard_regs for
8678 call used regs for call insn.
8679
53c1275b
JJ
86802013-06-28 Jakub Jelinek <jakub@redhat.com>
8681
8682 PR target/57736
0ba6aff3
UB
8683 * config/i386/i386.c (ix86_expand_builtin): If target == NULL and
8684 mode is VOIDmode, don't create a VOIDmode pseudo to copy result into.
53c1275b 8685
1141ed3f
BI
86862013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
8687
8688 * builtins.def: Fixed the function type of CILKPLUS_BUILTIN.
e6631d38 8689
e32e4c4a
VM
86902013-06-28 Vladimir Makarov <vmakarov@redhat.com>
8691
8692 * lra-constraints.c (need_for_split_p): Check call used hard regs
8693 living through calls.
8694
f161bfd3
MM
86952013-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
8696
8697 PR target/57744
8698 * config/rs6000/rs6000.h (MODES_TIEABLE_P): Do not allow PTImode
8699 to tie with any other modes. Eliminate Altivec vector mode tests,
8700 since these are a subset of ALTIVEC or VSX vector modes. Simplify
8701 code, to return 0 if testing MODE2 for a condition, if we've
8702 already tested MODE1 for the same condition.
8703
7eda14e1
MS
87042013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
8705
8706 * config/aarch64/aarch64.c (aarch64_cannot_force_const_mem): Adjust
8707 layout.
8708
c822f852
MS
87092013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
8710
8711 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
8712 Update comment w.r.t SYMBOL_TINY_ABSOLUTE.
8713
da4f13a4
MS
87142013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
8715
0ba6aff3
UB
8716 * config/aarch64/aarch64-protos.h (aarch64_classify_symbol_expression):
8717 Define.
da4f13a4
MS
8718 (aarch64_symbolic_constant_p): Remove.
8719 * config/aarch64/aarch64.c (aarch64_classify_symbol_expression): Remove
8720 static. Fix line length and white space.
8721 (aarch64_symbolic_constant_p): Remove.
8722 * config/aarch64/predicates.md (aarch64_valid_symref):
8723 Use aarch64_classify_symbol_expression.
8724
956a95a5
KT
87252013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8726
8727 * config/arm/constraints.md (Ts): New constraint.
8728 * config/arm/arm.md (arm_movqi_insn): Add alternatives for
8729 16-bit encodings.
8730 (compare_scc): Use "Ts" constraint for operand 0.
8731 (ior_scc_scc): Likewise.
8732 (and_scc_scc): Likewise.
8733 (and_scc_scc_nodom): Likewise.
8734 (ior_scc_scc_cmp): Likewise for operand 7.
8735 (and_scc_scc_cmp): Likewise.
8736 * config/arm/thumb2.md (thumb2_movsi_insn):
8737 Add alternatives for 16-bit encodings.
8738 (thumb2_movhi_insn): Likewise.
8739 (thumb2_movsicc_insn): Likewise.
8740 (thumb2_and_scc): Take 'and' outside cond_exec. Use "Ts" constraint.
8741 (thumb2_negscc): Use "Ts" constraint.
8742 Move mvn instruction outside cond_exec block.
8743 * config/arm/vfp.md (thumb2_movsi_vfp): Add alternatives
8744 for 16-bit encodings.
8745
31dfce10
KT
87462013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8747
8748 * config/arm/arm.md (arm_mulsi3_v6): Add alternative for 16-bit
8749 encoding.
8750 (mulsi3addsi_v6): Disable predicable variant for arm_restrict_it.
8751 (mulsi3subsi): Likewise.
8752 (mulsidi3adddi): Likewise.
8753 (mulsidi3_v6): Likewise.
8754 (umulsidi3_v6): Likewise.
8755 (umulsidi3adddi_v6): Likewise.
8756 (smulsi3_highpart_v6): Likewise.
8757 (umulsi3_highpart_v6): Likewise.
8758 (mulhisi3tb): Likewise.
8759 (mulhisi3bt): Likewise.
8760 (mulhisi3tt): Likewise.
8761 (maddhisi4): Likewise.
8762 (maddhisi4tb): Likewise.
8763 (maddhisi4tt): Likewise.
8764 (maddhidi4): Likewise.
8765 (maddhidi4tb): Likewise.
8766 (maddhidi4tt): Likewise.
8767 (zeroextractsi_compare0_scratch): Likewise.
8768 (insv_zero): Likewise.
8769 (insv_t2): Likewise.
8770 (anddi_notzesidi_di): Likewise.
8771 (anddi_notsesidi_di): Likewise.
8772 (andsi_notsi_si): Likewise.
8773 (iordi_zesidi_di): Likewise.
8774 (xordi_zesidi_di): Likewise.
8775 (andsi_iorsi3_notsi): Likewise.
8776 (smax_0): Likewise.
8777 (smax_m1): Likewise.
8778 (smin_0): Likewise.
8779 (not_shiftsi): Likewise.
8780 (unaligned_loadsi): Likewise.
8781 (unaligned_loadhis): Likewise.
8782 (unaligned_loadhiu): Likewise.
8783 (unaligned_storesi): Likewise.
8784 (unaligned_storehi): Likewise.
8785 (extv_reg): Likewise.
8786 (extzv_t2): Likewise.
8787 (divsi3): Likewise.
8788 (udivsi3): Likewise.
8789 (arm_zero_extendhisi2addsi): Likewise.
8790 (arm_zero_extendqisi2addsi): Likewise.
8791 (compareqi_eq0): Likewise.
8792 (arm_extendhisi2_v6): Likewise.
8793 (arm_extendqisi2addsi): Likewise.
8794 (arm_movt): Likewise.
8795 (thumb2_ldrd): Likewise.
8796 (thumb2_ldrd_base): Likewise.
8797 (thumb2_ldrd_base_neg): Likewise.
8798 (thumb2_strd): Likewise.
8799 (thumb2_strd_base): Likewise.
8800 (thumb2_strd_base_neg): Likewise.
8801 (arm_negsi2): Add alternative for 16-bit encoding.
8802 (arm_one_cmplsi2): Likewise.
8803
1572e697
KT
88042013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8805
8806 * config/arm/predicates.md (arm_cond_move_operator): New predicate.
8807 * config/arm/arm.md (movsfcc): Use arm_cond_move_operator predicate.
8808 (movdfcc): Likewise.
8809 * config/arm/vfp.md (*thumb2_movsf_vfp):
8810 Disable predication for arm_restrict_it.
8811 (*thumb2_movsfcc_vfp): Disable for arm_restrict_it.
8812 (*thumb2_movdfcc_vfp): Likewise.
8813 (*abssf2_vfp, *absdf2_vfp, *negsf2_vfp, *negdf2_vfp,*addsf3_vfp,
8814 *adddf3_vfp, *subsf3_vfp, *subdf3_vfpc, *divsf3_vfp,*divdf3_vfp,
8815 *mulsf3_vfp, *muldf3_vfp, *mulsf3negsf_vfp, *muldf3negdf_vfp,
8816 *mulsf3addsf_vfp, *muldf3adddf_vfp, *mulsf3subsf_vfp,
8817 *muldf3subdf_vfp, *mulsf3negsfaddsf_vfp, *fmuldf3negdfadddf_vfp,
8818 *mulsf3negsfsubsf_vfp, *muldf3negdfsubdf_vfp, *fma<SDF:mode>4,
8819 *fmsub<SDF:mode>4, *fnmsub<SDF:mode>4, *fnmadd<SDF:mode>4,
8820 *extendsfdf2_vfp, *truncdfsf2_vfp, *extendhfsf2, *truncsfhf2,
8821 *truncsisf2_vfp, *truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2,
8822 *floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2, floatunssidf2,
8823 *sqrtsf2_vfp, *sqrtdf2_vfp, *cmpsf_vfp, *cmpsf_trap_vfp, *cmpdf_vfp,
8824 *cmpdf_trap_vfp, <vrint_pattern><SDF:mode>2):
8825 Disable predication for arm_restrict_it.
8826
ebf8f0ea
KY
88272013-06-28 Kirill Yukhin <kirill.yukhin@intel.com>
8828
8829 * config/i386/bmiintrin.h (_bextr_u32): New.
8830 (_bextr_u64): Ditto.
8831
a290fcda
RS
88322013-06-27 Richard Sandiford <rdsandiford@googlemail.com>
8833
8834 * config.gcc (mips*-mti-elf*, mips*-sde-elf*, mips64r5900-*-elf*)
8835 (mips64r5900el-*-elf*): Include mips/n32-elf.h.
8836 * config/mips/sde.h (LOCAL_LABEL_PREFIX, NO_DOLLAR_IN_LABEL)
8837 (LONG_DOUBLE_TYPE_SIZE, LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Move to...
8838 * config/mips/n32-elf.h: ...this new file.
8839
ea169996
MG
88402013-06-27 Marc Glisse <marc.glisse@inria.fr>
8841
8842 PR target/57224
8843 * config/i386/i386.c (enum ix86_builtins, bdesc_args): Remove
8844 IX86_BUILTIN_CMPNGTSS and IX86_BUILTIN_CMPNGESS.
8845
12211b99 88462013-06-27 Catherine Moore <clm@codesourcery.com>
8e932114
CM
8847
8848 * config/mips/mips-tables.opt: Regenerate.
8849 * config/mips/mips-cpus.def: Add m14ke and m14kec.
0ba6aff3 8850 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): m14ke* implies -mdspr2.
8e932114 8851 * doc/invoke.texi: Add -m14kc.
ebf8f0ea 8852
2444244e
JJ
88532013-06-27 Jakub Jelinek <jakub@redhat.com>
8854
cd06d2a2
JJ
8855 PR target/57623
8856 * config/i386/i386.md (bmi_bextr_<mode>): Swap predicates and
8857 constraints of operand 1 and 2.
8858
2444244e
JJ
8859 PR target/57623
8860 * config/i386/i386.md (bmi2_bzhi_<mode>3): Swap AND arguments
8861 to match RTL canonicalization. Swap predicates and
8862 constraints of operand 1 and 2.
8863
2f259720
VM
88642013-06-27 Vladimir Makarov <vmakarov@redhat.com>
8865
0ba6aff3
UB
8866 * lra-constraints.c (inherit_in_ebb): Process static hard regs too.
8867 Process OP_INOUT regs for splitting too.
2f259720 8868
fef4d2b3
JJ
88692013-06-27 Jakub Jelinek <jakub@redhat.com>
8870
8871 * tree-vect-stmts.c (vectorizable_store): Move ptr_incr var
8872 decl before the loop, initialize to NULL.
8873 (vectorizable_load): Initialize ptr_incr to NULL.
8874
79ee9826
MJ
88752013-06-27 Martin Jambor <mjambor@suse.cz>
8876
8877 PR lto/57208
8878 * ipa-ref.h (ipa_maybe_record_reference): Declare.
8879 * ipa-ref.c (ipa_maybe_record_reference): New function.
8880 * cgraphclones.c (cgraph_create_virtual_clone): Use it.
8881 * ipa-cp.c (create_specialized_node): Record potential references from
8882 aggvals.
8883 * Makefile.in (ipa-ref.o): Add IPA_REF_H to dependencies.
8884
e18b4a81
YZ
88852013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
8886
8887 * config/aarch64/aarch64.c (aarch64_force_temporary): Add an extra
8888 parameter 'mode' of type 'enum machine_mode mode'; change to pass
8889 'mode' to force_reg.
8890 (aarch64_add_offset): Update calls to aarch64_force_temporary.
8891 (aarch64_expand_mov_immediate): Likewise.
8892
9c023bf0
YZ
88932013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
8894
8895 * config/aarch64/aarch64.c (aarch64_add_offset): Change to pass
8896 'mode' to aarch64_plus_immediate and gen_rtx_PLUS.
8897
5a3fe9b6
AK
88982013-06-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8899
8900 * config/s390/s390.c: Rename UNSPEC_CCU_TO_INT to
8901 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
8902 (struct machine_function): Add tbegin_p.
8903 (s390_canonicalize_comparison): Fold CC mode compares to
8904 conditional jump if possible.
8905 (s390_emit_jump): Return the emitted jump.
8906 (s390_branch_condition_mask, s390_branch_condition_mnemonic):
8907 Handle CCRAWmode compares.
8908 (s390_option_override): Default to -mhtm if available.
8909 (s390_reg_clobbered_rtx): Handle floating point regs as well.
8910 (s390_regs_ever_clobbered): Use s390_regs_ever_clobbered also for
8911 FPRs instead of df_regs_ever_live_p.
8912 (s390_optimize_nonescaping_tx): New function.
8913 (s390_init_frame_layout): Extend clobbered_regs array to cover
8914 FPRs as well.
8915 (s390_emit_prologue): Call s390_optimize_nonescaping_tx.
8916 (s390_expand_tbegin): New function.
8917 (enum s390_builtin): New enum definition.
8918 (code_for_builtin): New array definition.
8919 (s390_init_builtins): New function.
8920 (s390_expand_builtin): New function.
8921 (TARGET_INIT_BUILTINS): Define.
8922 (TARGET_EXPAND_BUILTIN): Define.
0ba6aff3 8923 * common/config/s390/s390-common.c (processor_flags_table): Add PF_TX.
5a3fe9b6
AK
8924 * config/s390/predicates.md (s390_comparison): Handle CCRAWmode.
8925 (s390_alc_comparison): Likewise.
8926 * config/s390/s390-modes.def: Add CCRAWmode.
8927 * config/s390/s390.h (processor_flags): Add PF_TX.
8928 (TARGET_CPU_HTM): Define macro.
8929 (TARGET_HTM): Define macro.
8930 (TARGET_CPU_CPP_BUILTINS): Define __HTM__ for htm.
8931 * config/s390/s390.md: Rename UNSPEC_CCU_TO_INT to
8932 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
8933 (UNSPECV_TBEGIN, UNSPECV_TBEGINC, UNSPECV_TEND, UNSPECV_TABORT)
0ba6aff3 8934 (UNSPECV_ETND, UNSPECV_NTSTG, UNSPECV_PPA): New unspecv enum values.
5a3fe9b6
AK
8935 (TBEGIN_MASK, TBEGINC_MASK): New constants.
8936 ("*cc_to_int"): Move up.
8937 ("*mov<mode>cc", "*cjump_64", "*cjump_31"): Accept integer
8938 constants other than 0.
8939 ("*ccraw_to_int"): New insn and splitter definition.
8940 ("tbegin", "tbegin_nofloat", "tbegin_retry")
8941 ("tbegin_retry_nofloat", "tbeginc", "tend", "tabort")
8942 ("tx_assist"): New expander.
8943 ("tbegin_1", "tbegin_nofloat_1", "*tbeginc_1", "*tend_1")
8944 ("*tabort_1", "etnd", "ntstg", "*ppa"): New insn definition.
8945 * config/s390/s390.opt: Add -mhtm option.
8946 * config/s390/s390-protos.h (s390_emit_jump): Add return type.
8947 * config/s390/htmxlintrin.h: New file.
8948 * config/s390/htmintrin.h: New file.
8949 * config/s390/s390intrin.h: New file.
8950 * doc/extend.texi: Document htm builtins.
8951 * config.gcc: Add the new header files to extra_headers.
8952
9e216629
TS
89532013-06-26 Thomas Schwinge <thomas@codesourcery.com>
8954
8955 * config/i386/gnu.h [TARGET_LIBC_PROVIDES_SSP]
0ba6aff3 8956 (TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Undefine.
9e216629 8957
fd8c65e7 89582013-06-26 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
8959 Pat Haugen <pthaugen@us.ibm.com>
8960 Peter Bergner <bergner@vnet.ibm.com>
fd8c65e7
MM
8961
8962 * config/rs6000/power8.md: New.
8963 * config/rs6000/rs6000-cpus.def (RS6000_CPU table): Adjust processor
8964 setting for power8 entry.
8965 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power8.md.
8966 * config/rs6000/rs6000.c (is_microcoded_insn, is_cracked_insn): Adjust
8967 test for Power4/Power5 only.
8968 (insn_must_be_first_in_group, insn_must_be_last_in_group): Add Power8
8969 support.
8970 (force_new_group): Adjust comment.
8971 * config/rs6000/rs6000.md: Include power8.md.
8972
b24a2ce5
GY
89732013-06-26 Greta Yorsh <Greta.Yorsh@arm.com>
8974
8975 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Define macro.
8976 * config/arm/arm-protos.h (arm_max_conditional_execute): New
8977 declaration.
8978 (tune_params): Update comment.
8979 * config/arm/arm.c (arm_cortex_a15_tune): Set max_cond_insns to 2.
8980 (arm_max_conditional_execute): New function.
8981 (thumb2_final_prescan_insn): Use max_insn_skipped and
8982 MAX_INSN_PER_IT_BLOCK to compute maximum instructions in a block.
8983
f6fdeb62
JJ
89842013-06-25 Jakub Jelinek <jakub@redhat.com>
8985
8986 PR tree-optimization/57705
8987 * tree-vect-loop.c (vect_is_simple_iv_evolution): Allow
8988 SSA_NAME step, provided that it is not defined inside the loop.
0ba6aff3 8989 (vect_analyze_scalar_cycles_1): Disallow SSA_NAME step in nested loop.
f6fdeb62
JJ
8990 (get_initial_def_for_induction): Handle SSA_NAME IV step.
8991
c13bc3d9
MJ
89922013-06-25 Martin Jambor <mjambor@suse.cz>
8993
8994 PR middle-end/57670
8995 * cgraph.h (cgraph_indirect_call_info): New flag member_ptr.
8996 * ipa-prop.c (ipa_print_node_jump_functions): Mark member pointer
8997 calls in the dump.
8998 (ipa_note_param_call): Initialize member_ptr flag.
8999 (ipa_analyze_indirect_call_uses): Set member_ptr flag.
9000 (ipa_make_edge_direct_to_target): Bail out if member_ptr is set.
9001 (ipa_write_indirect_edge_info): Stream member_ptr flag.
9002 (ipa_read_indirect_edge_info): Likewise.
9003
8a845901
RB
90042013-06-25 Richard Biener <rguenther@suse.de>
9005
9006 PR middle-end/56977
9007 * passes.c (init_optimization_passes): Move pass_fold_builtins
9008 and pass_dce earlier with -Og.
9009
33be0bec
EB
90102013-06-25 Eric Botcazou <ebotcazou@adacore.com>
9011
9012 * expr.c (expand_expr_real_1) <ARRAY_REF>: Fix formatting glitches.
9013 <BIT_FIELD_REF>: Remove trailing TAB.
9014 * varasm.c (output_constructor_bitfield): Fix formatting glitch and
9015 remove blank line.
9016
5fe8e757
MJ
90172013-06-24 Martin Jambor <mjambor@suse.cz>
9018
9019 PR tree-optimization/57358
9020 * ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): New function.
9021 (ipa_compute_jump_functions_for_edge): Bail out if it returns true.
9022 (ipa_analyze_params_uses): Generate pessimistic info when true.
9023
44a60244
MJ
90242013-06-24 Martin Jambor <mjambor@suse.cz>
9025
9026 PR tree-optimization/57539
9027 * cgraphclones.c (cgraph_clone_node): Add parameter new_inlined_to, set
9028 global.inlined_to of the new node to it. All callers changed.
9029 * ipa-inline-transform.c (clone_inlined_nodes): New variable
9030 inlining_into, pass it to cgraph_clone_node.
9031 * ipa-prop.c (ipa_propagate_indirect_call_infos): Do not call
9032 ipa_free_edge_args_substructures.
9033 (ipa_edge_duplication_hook): Only add edges from inlined nodes to
9034 rdesc linked list. Do not assert rdesc edges have inlined caller.
9035 Assert we have found an rdesc in the rdesc list.
9036
7c5848b8
RB
90372013-06-24 Richard Biener <rguenther@suse.de>
9038
0ba6aff3 9039 * pointer-set.h (struct pointer_set_t): Move here from pointer-set.c.
7c5848b8
RB
9040 (pointer_set_lookup): Declare.
9041 (class pointer_map): New template class implementing a
9042 generic pointer to T map.
9043 (pointer_map<T>::pointer_map, pointer_map<T>::~pointer_map,
9044 pointer_map<T>::contains, pointer_map<T>::insert,
9045 pointer_map<T>::traverse): New functions.
9046 * pointer-set.c (struct pointer_set_t): Moved to pointer-set.h.
9047 (pointer_set_lookup): New function.
9048 (pointer_set_contains): Use pointer_set_lookup.
9049 (pointer_set_insert): Likewise.
9050 (insert_aux): Remove.
9051 (struct pointer_map_t): Embed a pointer_set_t.
9052 (pointer_map_create): Adjust.
9053 (pointer_map_destroy): Likewise.
9054 (pointer_map_contains): Likewise.
9055 (pointer_map_insert): Likewise.
9056 (pointer_map_traverse): Likewise.
9057 * tree-streamer.h (struct streamer_tree_cache_d): Use a
9058 pointer_map<unsigned> instead of a pointer_map_t.
9059 * tree-streamer.c (streamer_tree_cache_insert_1): Adjust.
9060 (streamer_tree_cache_lookup): Likewise.
9061 (streamer_tree_cache_create): Likewise.
9062 (streamer_tree_cache_delete): Likewise.
9063 * lto-streamer.h (struct lto_tree_ref_encoder): Use a
9064 pointer_map<unsigned> instead of a pointer_map_t.
9065 (lto_init_tree_ref_encoder): Adjust.
9066 (lto_destroy_tree_ref_encoder): Likewise.
9067 * lto-section-out.c (lto_output_decl_index): Likewise.
9068 (lto_record_function_out_decl_state): Likewise.
9069 * dominance.c (iterate_fix_dominators): Use pointer_map<int>.
9070
3dbc97a9
RB
90712013-06-24 Richard Biener <rguenther@suse.de>
9072
9073 PR tree-optimization/57488
9074 * tree-ssa-pre.c (insert): Clear NEW sets before each iteration.
9075
8345965a
AM
90762013-06-24 Alan Modra <amodra@gmail.com>
9077
9078 * config/rs6000/rs6000.c (vspltis_constant): Correct for little-endian.
9079 (gen_easy_altivec_constant): Likewise.
9080 * config/rs6000/predicates.md (easy_vector_constant_add_self,
9081 easy_vector_constant_msb): Likewise.
9082
b7df379f
JJ
90832013-06-23 Jakub Jelinek <jakub@redhat.com>
9084
9085 PR target/57688
9086 * common/config/i386/i386-common.c (ix86_handle_option): For OPT_mlzcnt
9087 add missing return true.
9088
12211b99 90892013-06-23 Oleg Endo <olegendo@gcc.gnu.org>
0bcf9a09
OE
9090
9091 PR target/52483
9092 * config/sh/predicates.md (general_extend_operand): Invoke
9093 general_movsrc_operand for memory operands.
9094 (general_movsrc_operand): Allow reg+reg addressing, do not use
9095 general_operand for memory operands.
9096
97db2bf7
ST
90972013-06-23 Sriraman Tallam <tmsriram@google.com>
9098
9099 * config/i386/i386.c (ix86_pragma_target_parse): Restore target
9100 when current target options does not apply.
9101 * config/i386/i386-protos.h (ix86_reset_previous_fndecl): New function.
9102 * config/i386/i386.c (ix86_reset_previous_fndecl): Ditto.
0ba6aff3
UB
9103 * config/i386/bmiintrin.h: Pass appropriate target
9104 attributes to header.
97db2bf7
ST
9105 * config/i386/mmintrin.h: Ditto.
9106 * config/i386/nmmintrin.h: Ditto.
9107 * config/i386/avx2intrin.h: Ditto.
9108 * config/i386/fxsrintrin.h: Ditto.
9109 * config/i386/tbmintrin.h: Ditto.
9110 * config/i386/xsaveintrin.h: Ditto.
9111 * config/i386/f16cintrin.h: Ditto.
9112 * config/i386/xtestintrin.h: Ditto.
9113 * config/i386/xsaveoptintrin.h: Ditto.
9114 * config/i386/bmi2intrin.h: Ditto.
9115 * config/i386/lzcntintrin.h: Ditto.
9116 * config/i386/smmintrin.h: Ditto.
9117 * config/i386/wmmintrin.h: Ditto.
9118 * config/i386/x86intrin.h: Remove all header include guards.
9119 * config/i386/prfchwintrin.h: Ditto.
9120 * config/i386/pmmintrin.h: Ditto.
9121 * config/i386/tmmintrin.h: Ditto.
9122 * config/i386/xmmintrin.h: Ditto.
9123 * config/i386/popcntintrin.h: Ditto.
9124 * config/i386/rdseedintrin.h: Ditto.
9125 * config/i386/ammintrin.h: Ditto.
9126 * config/i386/emmintrin.h: Ditto.
9127 * config/i386/immintrin.h: Remove all header include guards.
9128 * config/i386/fma4intrin.h: Ditto.
9129 * config/i386/lwpintrin.h: Ditto.
9130 * config/i386/xopintrin.h: Ditto.
9131 * config/i386/ia32intrin.h: Ditto.
9132 * config/i386/avxintrin.h: Ditto.
9133 * config/i386/rtmintrin.h: Ditto.
9134 * config/i386/fmaintrin.h: Ditto.
9135 * config/i386/mm3dnow.h: Ditto.
9136
495e6879
ST
91372013-06-22 Sriraman Tallam <tmsriram@google.com>
9138
9139 * common/config/i386/i386-common.c: Handle LZCNT.
9140
11e8f687
AK
91412013-06-22 Andi Kleen <ak@linux.intel.com>
9142
9143 * doc/extend.texi: Use __atomic_store_n instead of
9144 __atomic_store in HLE example.
9145
12211b99 91462013-06-22 Oleg Endo <olegendo@gcc.gnu.org>
664dd721
OE
9147
9148 * config/sh/sh.c: Remove <cstdlib> workaround.
9149
927f908b
AK
91502013-06-21 Andi Kleen <ak@linux.intel.com>
9151
0ba6aff3 9152 * doc/extend.texi: Dont use __atomic_clear in HLE example. Fix typo.
927f908b 9153
cca410b6
AK
91542013-06-21 Andi Kleen <ak@linux.intel.com>
9155
9156 * doc/extend.texi: Document that __atomic_clear and
9157 __atomic_test_and_set should only be used with bool.
9158
d84db1ed
JH
91592013-06-20 Jan Hubicka <jh@suse.cz>
9160
9161 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Use
9162 types_same_for_odr.
9163 * tree.c (decls_same_for_odr): New function.
9164 (same_for_edr): New function.
9165 (types_same_for_odr): New function.
9166 (get_binfo_at_offset): Use it.
9167 * tree.h (types_same_for_odr): Declare.
9168
12211b99 91692013-06-20 Oleg Endo <olegendo@gcc.gnu.org>
469a31a9
OE
9170 Jason Merrill <jason@redhat.com>
9171
9172 * system.h: Include <cstdlib> as well as <stdlib.h>.
9173
49b4ff63
UB
91742013-06-20 Uros Bizjak <ubizjak@gmail.com>
9175
9176 PR target/57655
9177 * config/i386/i386.c (construct_container): Report error if
9178 long double is used with disabled x87 float returns.
9179
7a89ad00
JH
91802013-06-20 Jan Hubicka <jh@suse.cz>
9181
9182 * lto-cgraph.c (input_symtab): Do not set cgraph state.
9183
12211b99 91842013-06-20 Joern Rennecke <joern.rennecke@embecosm.com>
bd280792
JR
9185
9186 PR rtl-optimization/57425
9187 PR rtl-optimization/57569
9188 * alias.c (write_dependence_p): Remove parameters mem_mode and
9189 canon_mem_addr. Add parameters x_mode, x_addr and x_canonicalized.
9190 Changed all callers.
9191 (canon_anti_dependence): Get comments and semantics in sync.
9192 Add parameter mem_canonicalized. Changed all callers.
9193 * rtl.h (canon_anti_dependence): Update prototype.
9194
d16e9a99
RB
91952013-06-20 Richard Biener <rguenther@suse.de>
9196
9197 * data-streamer-in.c (streamer_read_uhwi): Optimize single
9198 byte case, inline streamer_read_uchar and defer section
9199 overrun check.
9200
c3a9b91b
RB
92012013-06-20 Richard Biener <rguenther@suse.de>
9202
9203 PR tree-optimization/57584
9204 * tree-ssa-loop-niter.c (expand_simple_operations): Avoid including
9205 SSA names into the expanded expression that take part in
9206 abnormal coalescing.
9207
371e77e3 92082013-06-19 Sharad Singhai <singhai@google.com>
fc8a650e
SS
9209
9210 * gcov.c (print_usage): Handle new option.
9211 (process_args): Ditto.
9212 (get_gcov_intermediate_filename): New function.
9213 (output_intermediate_file): New function.
9214 (output_gcov_file): New function
9215 (generate_results): Handle new option.
9216 (release_function): Relase demangled name.
9217 (read_graph_file): Handle demangled name.
9218 (output_lines): Ditto.
9219 * doc/gcov.texi: Document gcov intermediate format.
9220
11f5b71a
VM
92212013-06-19 Vladimir Makarov <vmakarov@redhat.com>
9222
9223 PR bootstrap/57604
9224 * lra.c (emit_add3_insn, emit_add2_insn): New functions.
9225 (lra_emit_add): Use the functions. Add comment about Y as an
9226 address segment.
9227
e1f9340b
DE
92282013-06-19 David Edelsohn <dje.gcc@gmail.com>
9229
9230 PR driver/57652
9231 * collect2.c (collect_atexit): New.
9232 (collect_exit): Delete.
9233 (main): Register collect_atexit with atexit.
9234 (collect_wait): Change collect_exit to exit.
9235 (do_wait): Same.
9236 * collect2.h (collect_exit): Delete.
9237 * tlink.c (do_tlink): Rename exit to ret. Change collect_exit to exit.
9238
e3f9e0ac
WM
92392013-06-19 Wei Mi <wmi@google.com>
9240
9241 PR rtl-optimization/57518
9242 * ira.c (set_paradoxical_subreg): Set pdx_subregs[regno]
9243 if regno is used in paradoxical subreg.
9244 (update_equiv_regs): Check pdx_subregs[regno] before
9245 set a reg to be equivalent with a mem.
9246
a09f1a76
MK
92472013-06-19 Matthias Klose <doko@ubuntu.com>
9248
9249 PR driver/57651
9250 * file-find.h (find_a_file): Add a mode parameter.
9251 * file-find.c (find_a_file): Likewise.
9252 * gcc-ar.c (main): Call find_a_file with R_OK for the plugin,
9253 with X_OK for the executables.
9254 * collect2.c (main): Call find_a_file with X_OK.
9255
7d18b0ad
SE
92562013-06-19 Steve Ellcey <sellcey@mips.com>
9257
9258 PR target/56942
9259 * config/mips/mips.md (casesi_internal_mips16_<mode>):
9260 Use NEXT_INSN instead of next_real_insn.
9261
6a6dac52
JH
92622013-06-19 Jan Hubicka <jh@suse.cz>
9263
9264 * cgraph.h (const_value_known_p): Replace by ...
9265 (ctor_for_folding): .. this one.
9266 * cgraphunit.c (process_function_and_variable_attributes): Use it.
9267 * lto-cgraph.c (compute_ltrans_boundary): Use ctor_for_folding.
9268 * expr.c (expand_expr_real_1): Likewise.
9269 (string_constant): Likewise.
9270 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
9271 * ipa.c (process_references): Likewise.
9272 (symtab_remove_unreachable_nodes): Likewise.
9273 * ipa-inline-analysis.c (param_change_prob): Likewise.
9274 * gimple-fold.c (canonicalize_constructor_val): Likewise.
9275 (get_base_constructor): Likwise.
9276 * varpool.c (varpool_remove_node): Likewise.
9277 (varpool_remove_initializer): LIkewise.
9278 (dump_varpool_node): LIkwise.
9279 (const_value_known_p): Rewrite to ...
9280 (ctor_for_folding): ... this one.
9281
216c12ab
JJ
92822013-06-19 Jakub Jelinek <jakub@redhat.com>
9283
9284 PR driver/57651
9285 * gcc-ar.c (main): If not CROSS_DIRECTORY_STRUCTURE, look for
9286 PERSONALITY in $PATH derived prefixes.
9287
d53e2f99
JL
92882013-06-19 Jeff Law <law@redhat.com>
9289
ecdbf306
JL
9290 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): Fix typo
9291 in comment.
9292
d53e2f99
JL
9293 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): New function.
9294 (simplify_bitwise_binary): Use it to simpify certain binary ops on
9295 booleans.
9296
89e7fc04
SN
92972013-06-19 Sofiane Naci <sofiane.naci@arm.com>
9298
9299 * config/arm/vfp.md: Move VFP instruction classification documentation
9300 to ...
9301 * config/arm/arm.md: ... here. Update instruction classification
9302 documentation.
9303
5e7f6aaa
RE
93042013-06-19 Richard Earnshaw <rearnsha@arm.com>
9305
9306 arm.md (split for eq(reg, 0)): Add variants for ARMv5 and Thumb2.
9307 (peepholes for eq(reg, not-0)): Ensure condition register is dead after
9308 pattern. Use more efficient sequences on ARMv5 and Thumb2.
9309
5fdc1e5d
SB
93102013-06-19 Steven Bosscher <steven@gcc.gnu.org>
9311
9312 PR target/57609
9313 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
9314 with NEXT_INSN. Use tablejump_p to check for jump table data
9315 insns.
9316
e952afba
PC
93172013-06-19 Paolo Carlini <paolo.carlini@oracle.com>
9318
9319 PR c++/56544
9320 * doc/cpp.texi [Standard Predefined Macros, __cplusplus]: Document
9321 that now in C++ the value is correct per the C++ standards.
9322
3fd0303a
RB
93232013-06-19 Richard Biener <rguenther@suse.de>
9324
9325 * expr.c (expand_expr_real_1): Use SCOPE_FILE_SCOPE_P to check
9326 for global context.
9327
b04e4b08
AK
93282013-06-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9329
9330 Revert:
9331 2013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9332
9333 PR target/57609
9334 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
9335 with next_active_insn.
9336
bef8491a
ST
93372013-06-18 Sriraman Tallam <tmsriram@google.com>
9338
9339 * ipa-inline.c (inline_always_inline_functions): Pretend always_inline
9340 functions are inlined during failures to flag an error.
9341 * tree-inline.c (expand_call_inline): Allow the error to be flagged
9342 in early inline pass.
22fc7d3d 9343
c21b257d
L
93442013-06-18 H.J. Lu <hongjiu.lu@intel.com>
9345
9346 * config/i386/i386.c (initial_ix86_tune_features): Fix a typo
9347 in comments.
9348
33255ae3
JB
93492013-06-18 Julian Brown <julian@codesourcery.com>
9350
9351 * config/arm/arm.c (neon_vector_mem_operand): Add strict argument.
9352 Permit virtual register pre-reload if !strict.
9353 (coproc_secondary_reload_class): Adjust for neon_vector_mem_operand
9354 change.
9355 * config/arm/arm-protos.h (neon_vector_mem_operand): Adjust
9356 prototype.
9357 * config/arm/neon.md (movmisalign<mode>): Use
9358 neon_perm_struct_or_reg_operand instead of
9359 neon_struct_or_register_operand.
9360 (*movmisalign<mode>_neon_load, *movmisalign<mode>_neon_store): Use
9361 neon_permissive_struct_operand instead of neon_struct_operand.
9362 * config/arm/constraints.md (Un, Um, Us): Adjust calls to
9363 neon_vector_mem_operand.
9364 * config/arm/predicates.md (neon_struct_operand): Adjust call to
9365 neon_vector_mem_operand.
9366 (neon_permissive_struct_operand): New.
9367 (neon_struct_or_register_operand): Rename to...
9368 (neon_perm_struct_or_reg_operand): This. Adjust call to
9369 neon_vector_mem_operand.
9370
d579fcda
RB
93712013-06-18 Richard Biener <rguenther@suse.de>
9372
9373 * Makefile.in (LTO_STREAMER_H): Add pointer-set.h dependency.
9374 * lto-streamer.h: Include pointer-set.h.
9375 (struct lto_decl_slot): Remove.
9376 (struct lto_tree_ref_encoder): Make tree_hash_table a pointer-map.
9377 Remove next_index entry.
9378 (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
9379 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
9380 (lto_init_tree_ref_encoder): Adjust.
9381 (lto_destroy_tree_ref_encoder): Likewise.
9382 * lto-section-out.c (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
9383 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
9384 (lto_output_decl_index): Adjust.
9385 (lto_new_out_decl_state): Likewise.
9386 (lto_record_function_out_decl_state): Likewise.
9387 * lto-streamer-out.c (copy_function): Likewise.
9388
31ee20ba
RB
93892013-06-18 Richard Biener <rguenther@suse.de>
9390
9391 * Makefile.in (cgraphunit.o): Add $(CFGLOOP_H) dependency.
9392 * cgraphunit.c: Include cfgloop.h.
9393 (init_lowered_empty_function): Initialize the loop tree.
9394 (assemble_thunk): Insert new BBs into loops.
9395
ac0511f2
RB
93962013-06-18 Richard Biener <rguenther@suse.de>
9397
9398 * tree-streamer.h (streamer_tree_cache_create): Adjust prototype.
9399 * tree-streamer.c (streamer_tree_cache_create): Make maintaining
9400 the map from cache entry to cache index optional.
9401 (streamer_tree_cache_replace_tree): Adjust accordingly.
9402 (streamer_tree_cache_append): Likewise.
9403 (streamer_tree_cache_delete): Likewise.
9404 * lto-streamer-in.c (lto_data_in_create): Do not maintain the
9405 streamer cache map from cache entry to cache index.
9406 * lto-streamer-out.c (create_output_block): Adjust.
9407
09485a08
SN
94082013-06-18 Sofiane Naci <sofiane.naci@arm.com>
9409
22fc7d3d
UB
9410 * config/arm/arm.md (attribute "insn"): Move multiplication and
9411 division attributes to...
09485a08
SN
9412 (attribute "type"): ... here. Remove mult.
9413 (attribute "mul32"): New attribute.
9414 (attribute "mul64"): Add umaal.
9415 (*arm_mulsi3): Update attributes.
9416 (*arm_mulsi3_v6): Likewise.
9417 (*thumb_mulsi3): Likewise.
9418 (*thumb_mulsi3_v6): Likewise.
9419 (*mulsi3_compare0): Likewise.
9420 (*mulsi3_compare0_v6): Likewise.
9421 (*mulsi_compare0_scratch): Likewise.
9422 (*mulsi_compare0_scratch_v6): Likewise.
9423 (*mulsi3addsi): Likewise.
9424 (*mulsi3addsi_v6): Likewise.
9425 (*mulsi3addsi_compare0): Likewise.
9426 (*mulsi3addsi_compare0_v6): Likewise.
9427 (*mulsi3addsi_compare0_scratch): Likewise.
9428 (*mulsi3addsi_compare0_scratch_v6): Likewise.
9429 (*mulsi3subsi): Likewise.
9430 (*mulsidi3adddi): Likewise.
9431 (*mulsi3addsi_v6): Likewise.
9432 (*mulsidi3adddi_v6): Likewise.
9433 (*mulsidi3_nov6): Likewise.
9434 (*mulsidi3_v6): Likewise.
9435 (*umulsidi3_nov6): Likewise.
9436 (*umulsidi3_v6): Likewise.
9437 (*umulsidi3adddi): Likewise.
9438 (*umulsidi3adddi_v6): Likewise.
9439 (*smulsi3_highpart_nov6): Likewise.
9440 (*smulsi3_highpart_v6): Likewise.
9441 (*umulsi3_highpart_nov6): Likewise.
9442 (*umulsi3_highpart_v6): Likewise.
9443 (mulhisi3): Likewise.
9444 (*mulhisi3tb): Likewise.
9445 (*mulhisi3bt): Likewise.
9446 (*mulhisi3tt): Likewise.
9447 (maddhisi4): Likewise.
9448 (*maddhisi4tb): Likewise.
9449 (*maddhisi4tt): Likewise.
9450 (maddhidi4): Likewise.
9451 (*maddhidi4tb): Likewise.
9452 (*maddhidi4tt): Likewise.
9453 (divsi3): Likewise.
9454 (udivsi3): Likewise.
9455 * config/arm/thumb2.md (thumb2_mulsi_short): Update attributes.
9456 (thumb2_mulsi_short_compare0): Likewise.
9457 (thumb2_mulsi_short_compare0_scratch): Likewise.
9458 * config/arm/arm1020e.md (1020mult1): Update attribute change.
9459 (1020mult2): Likewise.
9460 (1020mult3): Likewise.
9461 (1020mult4): Likewise.
9462 (1020mult5): Likewise.
9463 (1020mult6): Likewise.
22fc7d3d
UB
9464 * config/arm/cortex-a15.md (cortex_a15_mult32): Update attribute
9465 change.
09485a08
SN
9466 (cortex_a15_mult64): Likewise.
9467 (cortex_a15_sdiv): Likewise.
9468 (cortex_a15_udiv): Likewise.
9469 * config/arm/arm1026ejs.md (mult1): Update attribute change.
9470 (mult2): Likewise.
9471 (mult3): Likewise.
9472 (mult4): Likewise.
9473 (mult5): Likewise.
9474 (mult6): Likewise.
9475 * config/arm/marvell-pj4.md (pj4_ir_mul): Update attribute change.
9476 (pj4_ir_div): Likewise.
9477 * config/arm/arm1136jfs.md (11_mult1): Update attribute change.
9478 (11_mult2): Likewise.
9479 (11_mult3): Likewise.
9480 (11_mult4): Likewise.
9481 (11_mult5): Likewise.
9482 (11_mult6): Likewise.
9483 (11_mult7): Likewise.
9484 * config/arm/cortex-a8.md (cortex_a8_mul): Update attribute change.
9485 (cortex_a8_mla): Likewise.
9486 (cortex_a8_mull): Likewise.
9487 (cortex_a8_smulwy): Likewise.
9488 (cortex_a8_smlald): Likewise.
9489 * config/arm/cortex-m4.md (cortex_m4_alu): Update attribute change.
9490 * config/arm/cortex-r4.md (cortex_r4_mul_4): Update attribute change.
9491 (cortex_r4_mul_3): Likewise.
9492 (cortex_r4_mla_4): Likewise.
9493 (cortex_r4_mla_3): Likewise.
9494 (cortex_r4_smlald): Likewise.
9495 (cortex_r4_mull): Likewise.
9496 (cortex_r4_sdiv): Likewise.
9497 (cortex_r4_udiv): Likewise.
9498 * config/arm/cortex-a7.md (cortex_a7_mul): Update attribute change.
9499 (cortex_a7_idiv): Likewise.
9500 * config/arm/arm926ejs.md (9_mult1): Update attribute change.
9501 (9_mult2): Likewise.
9502 (9_mult3): Likewise.
9503 (9_mult4): Likewise.
9504 (9_mult5): Likewise.
9505 (9_mult6): Likewise.
9506 * config/arm/cortex-a53.md (cortex_a53_mul): Update attribute change.
9507 (cortex_a53_sdiv): Likewise.
9508 (cortex_a53_udiv): Likewise.
9509 * config/arm/fa726te.md (726te_mult_op): Update attribute change.
9510 * config/arm/fmp626.md (mp626_mult1): Update attribute change.
9511 (mp626_mult2): Likewise.
9512 (mp626_mult3): Likewise.
9513 (mp626_mult4): Likewise.
9514 * config/arm/fa526.md (526_mult1): Update attribute change.
9515 (526_mult2): Likewise.
9516 * config/arm/arm-generic.md (mult): Update attribute change.
9517 (mult_ldsched_strongarm): Likewise.
9518 (mult_ldsched): Likewise.
9519 (multi_cycle): Likewise.
9520 * config/arm/cortex-a5.md (cortex_a5_mul): Update attribute change.
9521 * config/arm/fa606te.md (606te_mult1): Update attribute change.
9522 (606te_mult2): Likewise.
9523 (606te_mult3): Likewise.
9524 (606te_mult4): Likewise.
9525 * config/arm/cortex-a9.md (cortex_a9_mult16): Update attribute change.
9526 (cortex_a9_mac16): Likewise.
9527 (cortex_a9_multiply): Likewise.
9528 (cortex_a9_mac): Likewise.
9529 (cortex_a9_multiply_long): Likewise.
9530 * config/arm/fa626te.md (626te_mult1): Update attribute change.
9531 (626te_mult2): Likewise.
9532 (626te_mult3): Likewise.
9533 (626te_mult4): Likewise.
9534
8951f345
RB
95352013-06-18 Richard Biener <rguenther@suse.de>
9536
9537 PR lto/57334
9538 * lto-symtab.c (lto_symtab_merge_decls): Process nodes properly.
9539
d8101d05
AK
95402013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9541
9542 PR target/57609
9543 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
9544 with next_active_insn.
9545
69eff9da
AM
95462013-06-18 Alan Modra <amodra@gmail.com>
9547
9548 * config/rs6000/rs6000.h (enum data_align): New.
9549 (LOCAL_ALIGNMENT, DATA_ALIGNMENT): Use rs6000_data_alignment.
9550 (DATA_ABI_ALIGNMENT): Define.
9551 (CONSTANT_ALIGNMENT): Correct comment.
9552 * config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare.
9553 * config/rs6000/rs6000.c (rs6000_data_alignment): New function.
9554
8ed00d76
DM
95552013-06-17 David Malcolm <dmalcolm@redhat.com>
9556
9557 * ggc-page.c (ggc_pch_write_object) <d>: Remove erroneous
9558 ATTRIBUTE_UNUSED marking.
9559
3d33d06b
SN
95602013-06-17 Sofiane Naci <sofiane.naci@arm.com>
9561
9562 * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>): Add r<-w
9563 alternative and update.
9564 (aarch64_dup_lanedi): Delete.
9565 * config/aarch64/arm_neon.h (vdup<bhsd>_lane_*): Update.
9566 * config/aarch64/aarch64-simd-builtins.def: Update.
9567
ee03e71d
RB
95682013-06-17 Richard Biener <rguenther@suse.de>
9569
9570 * lto-streamer.h (enum LTO_tags): Add LTO_tree_scc.
9571 (lto_input_scc): Declare.
9572 (lto_input_tree_1): Likewise.
9573 (struct lto_stats_d): Add num_tree_bodies_output and
9574 num_pickle_refs_output.
9575 * lto-streamer-in.c (lto_read_body): Use streamer_tree_cache_get_tree.
9576 (lto_read_tree_1): Split out from ...
9577 (lto_read_tree): ... this.
9578 (lto_input_scc): New function.
9579 (lto_input_tree_1): Split out from ...
9580 (lto_input_tree): ... this. Handle LTO_tree_scc.
9581 (lto_data_in_create): Create the streamer cache without hashes.
9582 * lto-streamer-out.c (create_output_block): Create the streamer
9583 cache with hashes when not doing WPA.
9584 (lto_write_tree_1): Split out from ...
9585 (lto_write_tree): ... this.
9586 (get_symbol_initial_value): New function.
9587 (lto_output_tree_1): Split out from ...
9588 (lto_output_tree): ... this. Write trees as series of SCCs
9589 using a DFS walk via DFS_write_tree.
9590 (struct sccs, struct scc_entry): New types.
9591 (next_dfs_num, sccstack, sccstate, sccstate_obstack): New globals.
9592 (DFS_write_tree_body): New function.
9593 (DFS_write_tree): Likewise.
9594 (hash_tree): Likewise.
9595 (scc_entry_compare): Likewise.
9596 (hash_scc): Likewise.
9597 (tree_is_indexable): DEBUG_EXPR_DECLs are local entities.
9598 * tree-streamer-in.c (lto_input_ts_list_tree_pointers): Stream
9599 TREE_CHAIN as regular reference.
9600 (streamer_read_integer_cst): Remove.
9601 (streamer_get_pickled_tree): Adjust.
9602 * tree-streamer-out.c (streamer_write_chain): Disable streaming
9603 of DECL_EXTERNALs in BLOCK_VARS for now.
9604 (write_ts_list_tree_pointers): Stream TREE_CHAIN as regular
9605 reference.
9606 * tree-streamer.c (streamer_tree_cache_add_to_node_array):
9607 Add hash value argument and record that if hashes are recorded
9608 in the cache.
9609 (streamer_tree_cache_insert_1): Adjust.
9610 (streamer_tree_cache_insert): Likewise.
9611 (streamer_tree_cache_insert_at): Rename to ...
9612 (streamer_tree_cache_replace_tree): ... this and adjust.
9613 (streamer_tree_cache_append): Adjust.
9614 (record_common_node): Likewise.
9615 (streamer_tree_cache_create): Add argument whether to
9616 record hash values together with trees.
9617 (streamer_tree_cache_delete): Adjust.
9618 * tree-streamer.h (struct streamer_tree_cache_d): Add
9619 vector of hashes.
9620 (streamer_read_integer_cst): Remove.
9621 (streamer_tree_cache_insert): Adjust.
9622 (streamer_tree_cache_append): Likewise.
9623 (streamer_tree_cache_insert_at): Rename to ...
9624 (streamer_tree_cache_replace_tree): ... this and adjust.
9625 (streamer_tree_cache_create): Add argument whether to record hashes.
9626 (streamer_tree_cache_get): Rename to ...
9627 (streamer_tree_cache_get_tree): ... this.
9628 (streamer_tree_cache_get_hash): New function.
9629 * tree.c (cache_integer_cst): New function.
9630 * tree.h (cache_integer_cst): Declare.
9631 (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Move here from cp/cp-tree.h.
9632 * lto-symtab.c (lto_varpool_replace_node): Only release
9633 DECL_INITIAL of non-prevailing decls.
9634 * varpool.c (varpool_remove_initializer): Do not release
9635 DECL_INITIAL when we are still in CGRAPH_LTO_STREAMING.
9636
0de86a92
JU
96372013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
9638
9639 * config/mips/mips.h (ISA_HAS_MUL3): Include TARGET_MIPS5900.
9640 (ISA_HAS_MULT, ISA_HAS_DMULT, ISA_HAS_DIV, ISA_HAS_DDIV): New macros.
9641 * config/mips/mips.md (mul<mode>3, mul<mode>3_internal)
9642 (mul<mode>3_r4000): Require ISA_HAS_<D>MULT.
9643 (mul<mode>3_mul3): Handle TARGET_MIPS5900.
9644 (mulsidi3_64bit_dmul): Remove redundant TARGET_64BIT test.
9645 (<su>muldi3_highpart, <su>muldi3_highpart_internal, <u>mulditi3)
9646 (<u>mulditi3_internal, <u>mulditi3_r4000): Require ISA_HAS_DMULT
9647 instead of TARGET_64BIT.
9648 (divmod<mode>4, udivmod<mode>4, <u>divmod<GPR:mode>4_hilo_<HILO:mode>):
9649 Require ISA_HAS_<D>DIV.
9650
74240413
RS
96512013-06-16 Richard Sandiford <rdsandiford@googlemail.com>
9652
9653 * config.gcc (mips*-mti-linux*, mips64*-*-linux*, mipsisa64*-*-linux*)
9654 (mips*-*-linux*): Move default with_llsc setting to where other
9655 defaults are set.
9656 (mips*-*-vxworks*): Move with_arch default from with_cpu block to
9657 with_arch block.
9658 (mips64r5900-*-*, mips64r5900el-*-*, mipsr5900-*-*, mipsr5900el-*-*):
9659 Likewise. Remove default with_tune setting. Move default float
9660 setting to its own block. Handle with_llsc in the same block as above.
9661
12211b99 96622013-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
393f9fed
JR
9663
9664 PR rtl-optimization/57425
9665 PR rtl-optimization/57569
299a5f6a 9666 * alias.c (write_dependence_p): Add new parameters mem_mode,
393f9fed
JR
9667 canon_mem_addr and mem_canonicalized. Change type of writep to bool.
9668 Changed all callers.
9669 (canon_anti_dependence): New function.
9670 * cse.c (check_dependence): Use canon_anti_dependence.
9671 * cselib.c (cselib_invalidate_mem): Likewise.
9672 * rtl.h (canon_anti_dependence): Declare.
9673
b259d352
JU
96742013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
9675
9676 * config/mips/mips.h (ISA_HAS_LL_SC): Exclude TARGET_MIPS5900.
9677 * config/mips/mips.c (mips_start_ll_sc_sync_block): Output
9678 ".set mips3" for 64-bit targets.
9679
4de09b85
DC
96802013-06-15 Dehao Chen <dehao@google.com>
9681
9682 * tree-flow.h (gimple_check_call_matching_types): Add new argument.
9683 * gimple-low.c (gimple_check_call_matching_types): Likewise.
9684 (gimple_check_call_args): Likewise.
9685 * value-prof.c (check_ic_target): Likewise.
9686 * ipa-inline.c (early_inliner): Likewise.
9687 * ipa-prop.c (update_indirect_edges_after_inlining): Likewise.
9688 * cgraph.c (cgraph_create_edge_1): Likewise.
9689 (cgraph_make_edge_direct): Likewise.
9690
d1aa4a76
MM
96912013-06-14 Michael Meissner <meissner@linux.vnet.ibm.com>
9692
9693 PR target/57615
9694 * config/rs6000/rs6000.md (mov<mode>_ppc64): Call
9695 rs6000_output_move_128bit to handle emitting quad memory
9696 operations. Set attribute length to 8 bytes.
9697
12211b99 96982013-06-14 Vidya Praveen <vidyapraveen@arm.com>
24244e4d
VP
9699
9700 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_lo<mode>):
9701 New pattern.
9702 (aarch64_<su>mlal_hi<mode>, aarch64_<su>mlsl_lo<mode>): Likewise.
9703 (aarch64_<su>mlsl_hi<mode>, aarch64_<su>mlal<mode>): Likewise.
9704 (aarch64_<su>mlsl<mode>): Likewise.
9705
f5273574
MS
97062013-06-14 Mike Stump <mikestump@comcast.net>
9707
9708 * Makefile.in (TARGET_H): Add insn-codes.h.
9709
ef7e7ab2
AM
97102013-06-14 Alan Modra <amodra@gmail.com>
9711
9712 PR middle-end/57134
9713 PR middle-end/57586
9714 * expr.c (expand_expr_real_1 <normal_inner_ref>): Pass
9715 EXPAND_MEMORY and EXPAND_WRITE to recursive call. Don't use
9716 bitfield expansion when EXPAND_MEMORY.
9717 (expand_expr_real_1 <VIEW_CONVERT_EXPR>): Pass modifier likewise.
9718
135faab6
MM
97192013-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
9720
9721 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
9722 test for clearing quad memory on 32-bit later.
9723
948a1fd9
MG
97242013-06-13 Marc Glisse <marc.glisse@inria.fr>
9725
9726 * fold-const.c (negate_expr_p): Handle VECTOR_CST.
9727 (fold_negate_expr): Likewise.
9728 (fold_real_zero_addition_p): Handle vectors.
9729 (fold_binary_loc) <PLUS_EXPR, MINUS_EXPR>: Likewise.
9730
0597fb9c
AM
97312013-06-14 Alan Modra <amodra@gmail.com>
9732
9733 * varasm.c (force_const_mem): Revert 2013-06-07 change.
9734
e5b962d0
JH
97352013-06-13 Jan Hubicka <jh@suse.cz>
9736
9737 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
9738 Local comdats are not externally visible.
9739 * symtab.c (dump_symtab_base): Dump externally visible.
9740 (verify_symtab_base): Verify back links in the symtab hash.
9741
a8355e51
BC
97422013-06-13 Bin Cheng <bin.cheng@arm.com>
9743
9744 * fold-const.c (operand_equal_p): Consider NOP_EXPR and
9745 CONVERT_EXPR as equal nodes.
9746
8f7e6e33
BC
97472013-06-13 Bin Cheng <bin.cheng@arm.com>
9748
22fc7d3d 9749 * rtlanal.c (noop_move_p): Check the code to be executed for COND_EXEC.
8f7e6e33 9750
5d418483
MG
97512013-06-13 Marc Glisse <marc.glisse@inria.fr>
9752
9753 * tree-ssa-forwprop.c (simplify_bitwise_binary, associate_plusminus):
9754 Generalize to complex and vector.
9755 * tree.c (build_all_ones_cst): New function.
9756 * tree.h (build_all_ones_cst): Declare it.
9757
50751417
AM
97582013-06-13 Alan Modra <amodra@gmail.com>
9759
9760 * config/rs6000/rs6000.h (LONG_DOUBLE_LARGE_FIRST): Define.
9761 * config/rs6000/rs6000.md (signbittf2): New insn.
9762 (extenddftf2_internal): Use LONG_DOUBLE_LARGE_FIRST.
9763 (abstf2_internal, cmptf_internal2): Likewise.
9764 * config/rs6000/spe.md (spe_abstf2_cmp, spe_abstf2_tst): Likewise.
9765
4b02c962 97662013-06-12 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
9767 Pat Haugen <pthaugen@us.ibm.com>
9768 Peter Bergner <bergner@vnet.ibm.com>
4b02c962
MM
9769
9770 * config/rs6000/rs6000.c (emit_load_locked): Add support for
9771 power8 byte, half-word, and quad-word atomic instructions.
9772 (emit_store_conditional): Likewise.
9773 (rs6000_expand_atomic_compare_and_swap): Likewise.
9774 (rs6000_expand_atomic_op): Likewise.
9775
9776 * config/rs6000/sync.md (larx): Add new modes for power8.
9777 (stcx): Likewise.
9778 (AINT): New mode iterator to include TImode as well as normal
9779 integer modes on power8.
9780 (fetchop_pred): Use int_reg_operand instead of gpc_reg_operand so
9781 that VSX registers are not considered. Use AINT mode iterator
9782 instead of INT1 to allow inclusion of quad word atomic operations
9783 on power8.
9784 (load_locked<mode>): Likewise.
9785 (store_conditional<mode>): Likewise.
9786 (atomic_compare_and_swap<mode>): Likewise.
9787 (atomic_exchange<mode>): Likewise.
9788 (atomic_nand<mode>): Likewise.
9789 (atomic_fetch_<fetchop_name><mode>): Likewise.
9790 (atomic_nand_fetch<mode>): Likewise.
9791 (mem_thread_fence): Use gen_loadsync_<mode> instead of enumerating
9792 each type.
9793 (ATOMIC): On power8, add QImode, HImode modes.
9794 (load_locked<QHI:mode>_si): Varients of load_locked for QI/HI
9795 modes that promote to SImode.
9796 (load_lockedti): Convert TImode arguments to PTImode, so that we
9797 get a guaranteed even/odd register pair.
9798 (load_lockedpti): Likewise.
9799 (store_conditionalti): Likewise.
9800 (store_conditionalpti): Likewise.
9801
9802 * config/rs6000/rs6000.md (QHI): New mode iterator for power8
9803 atomic load/store instructions.
9804 (HSI): Likewise.
9805
710b6cc1
RS
98062013-06-12 Richard Sandiford <rdsandiford@googlemail.com>
9807
9808 * config/mips/mips.md (extended_mips16): Include GOT and constant-pool
9809 loads.
9810 (insn_count): New attribute, with most cases extracted from...
9811 (length): ...here. Redefine most cases in terms of insn_count.
9812 (single_insn): Delete.
9813 (can_delay): Use insn_count to check for single instructions.
9814 (*mul<mode>3_r4300, mul<mode>3_r4000, *mul_acc_si, *mul_acc_si_r3900)
9815 (*msac_using_macc, *mul_sub_si, <u>mulsidi3_32bit_r4000)
9816 (<u>mulsidi3_64bit_r4000, <su>muldi3_highpart_internal)
9817 (<su>mulsi3_highpart_split, <su>muldi3_highpart_internal)
9818 (<u>mulditi3_r4000, *div<mode>3, *recip<mode>3, divmod<mode>4)
9819 (udivmod<mode>4, sqrt<mode>2, *rsqrt<mode>a, *rsqrt<mode>b)
9820 (fix_truncdfsi2_macro, fix_truncsfsi2_macro, *lea_high64)
9821 (*lea64, cprestore_<mode>, clear_hazard_<mode>, <unnamed insn>)
9822 (casesi_internal_mips16_<mode>, *tls_get_tp_<mode>_split)
9823 (tls_get_tp_mips16, *tls_get_tp_mips16_call_<mode>): Use "insn_count"
9824 rather than "length".
9825 (tls_get_tp_<mode>): Likewise. Remove redundant "no_delay" attribute.
9826 * config/mips/mips-ps-3d.md (mips_c_cond_4s, mips_cabs_cond_4s):
9827 Use "insn_count" rather than "length".
9828 * config/mips/mips-dsp.md
9829 (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>)
9830 (mips_l<GPR:size>x_<P:mode>, *mips_lw<u>x_<P:mode>_ext): Remove
9831 length attributes.
9832
1951f101
MG
98332013-06-12 Marc Glisse <marc.glisse@inria.fr>
9834
9835 PR tree-optimization/57361
9836 * tree-ssa-dse.c (dse_possible_dead_store_p): Handle self-assignment.
9837
8b033a8a
SN
98382013-06-12 Sofiane Naci <sofiane.naci@arm.com>
9839
22fc7d3d
UB
9840 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Convert
9841 to split.
8b033a8a
SN
9842 (aarch64_simd_combine<mode>): New instruction expansion.
9843 * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine): New
9844 function prototype.
9845 * config/aarch64/aarch64.c (aarch64_split_combine): New function.
9846 * config/aarch64/iterators.md (Vdbl): Add entry for DF.
9847
ca0f62a8
JH
98482013-06-12 Jan Hubicka <jh@suse.cz>
9849
9850 * cgraph.c (verify_edge_corresponds_to_fndecl): Be lax about
9851 decl has when in streaming stage.
9852 * lto-symtab.c (lto_symtab_merge_symbols): Likewise.
9853 * cgraph.h (cgraph_state): Add CGRAPH_LTO_STREAMING.
9854
12211b99 98552013-06-12 Roland Stigge <stigge@antcom.de>
cddd69eb
RS
9856
9857 PR target/57578
9858 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Fix SPE version detection.
9859
bfdeda2c
JJ
98602013-06-12 Jakub Jelinek <jakub@redhat.com>
9861
9862 PR tree-optimization/57537
9863 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): If
9864 vect_handle_widen_op_by_const, convert oprnd1 to half_type1.
9865
a4fa02d1
RB
98662013-06-12 Richard Biener <rguenther@suse.de>
9867
9868 * data-streamer.h (streamer_write_char_stream): CSE
9869 obs->current_pointer.
9870 * data-streamer-out.c (streamer_write_uhwi_stream): Inline
9871 streamer_write_char_stream manually and optimize the resulting loop.
9872 (streamer_write_hwi_stream): Likewise.
9873
bbf9ad07
JH
98742013-06-12 Jan Hubicka <jh@suse.cz>
9875
9876 * lto-symtab.c (lto_symtab_merge_symbols): Populate symtab hashtable.
9877 * cgraph.h (varpool_create_empty_node): Declare.
9878 * lto-cgraph.c (input_node, input_varpool_node): Forcingly create
9879 duplicated nodes.
9880 * symtab.c (symtab_unregister_node): Be lax about missin entries
9881 in node hash.
9882 (symtab_get_node): Update comment.
9883 * varpool.c (varpool_create_empty_node): Break out from ...
9884 (varpool_node_for_decl): ... here.
9885 * lto-streamer.h (lto_file_decl_data): Add RESOLUTION_MAP.
9886
a53f90ad
EB
98872013-06-12 Eric Botcazou <ebotcazou@adacore.com>
9888
9889 * expr.c (expand_expr_real_1) <TARGET_MEM_REF>: Use straight-line flow.
9890 <MEM_REF>: Use 'type' instead of TREE_TYPE (exp) and tidy up the first
9891 part. Use straight-line flow at the end.
9892 <COMPONENT_REF>: Remove superfluous else.
9893 <VIEW_CONVERT_EXPR>: Use 'type' instead of TREE_TYPE (exp).
9894
946f9306
JJ
98952013-06-12 Jakub Jelinek <jakub@redhat.com>
9896
9897 PR target/56564
9898 * varasm.c (decl_binds_to_current_def_p): Call binds_local_p
9899 target hook even for !TREE_PUBLIC decls. If no resolution info
9900 is available, return false for common and external decls.
9901
a7fca6f0
KP
99022013-06-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
9903
9904 * config/rl78/constraints.md (U): New constraint.
9905 * config/rl78/rl78.md (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): Add
9906 valloc attribute.
9907
c7d8f446
MM
99082013-06-11 Michael Meissner <meissner@linux.vnet.ibm.com>
9909
9910 PR target/57589
9911 * config/rs6000/driver-rs6000.c (elf_platform): Make buffer static
9912 to allow returning address to AT_PLATFORM name.
9913
08346abd
JH
99142013-06-11 Jan Hubicka <jh@suse.cz>
9915
9916 * cgraph.c (cgraph_create_function_alias): Set weakref flag.
9917 * cgraph.h (symtab_node_base): Add weakref flag.
9918 * cgraphunit.c (cgraph_reset_node): Clear weakref flag.
9919 (handle_alias_pairs): Set weakref flag, do not set DECL_EXTERNAL.
9920 (output_weakrefs): Use weakref flag.
9921 * fold-const.c (simple_operand_p): Handle WEAK.
9922 * gimple-fold.c (can_refer_decl_in_current_unit_p): Drop weakref.
9923 * ipa.c (varpool_externally_visible_p): Drop weakref.
9924 (function_and_variable_visibility): Update comment; fix weakref
9925 sanity checks; do not clear DECL_WEAK on them.
9926 * lto-cgraph.c (lto_output_node): update.
9927 (lto_output_varpool_node): Update.
9928 (input_overwrite_node): Update.
9929 (input_node): Update.
9930 (input_varpool_node): Update.
9931 * lto-symtab.c (lto_symtab_symbol_p): Do not special case weakrefs.
9932 (lto_symtab_merge_symbols): Add sanity check.
9933 (lto_symtab_prevailing_decl): Do not special case weakrefs.
9934 * passes.c (rest_of_decl_compilation): Set static flag, too.
9935 * symtab.c (dump_symtab_base): Dump weakref.
9936 (verify_symtab_base): Sanity check weakrefs.
9937 (symtab_make_decl_local): Remove duplicated code.
9938 (symtab_alias_ultimate_target): Simplify.
9939 * varpool.c (varpool_create_variable_alias): Set weakref flag.
c7d8f446 9940
2e6a2f88
TV
99412013-06-11 Tom de Vries <tom@codesourcery.com>
9942
9943 * genautomata.c (gen_regexp_sequence): Handle els_num == -1. Handle
9944 sequence_vect == NULL.
9945
d9af3652
DD
99462013-06-11 DJ Delorie <dj@redhat.com>
9947
9948 * config/rl78/rl78.c (TARGET_UNWIND_WORD_MODE): Define.
9949 (rl78_unwind_word_mode): New.
9950
ffa66012
DM
99512013-06-11 David Malcolm <dmalcolm@redhat.com>
9952
9953 * final.c (debug_prefix_maps): Make static.
9954
783f2d35
DM
99552013-06-11 David Malcolm <dmalcolm@redhat.com>
9956
9957 * function.c (initial_trampoline): Remove stray copy.
9958
7af26def
SN
99592013-06-11 Sofiane Naci <sofiane.naci@arm.com>
9960
9961 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update.
9962
97756c0e
MJ
99632013-06-11 Martin Jambor <mjambor@suse.cz>
9964
9965 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that param_index is
9966 within bounds at the beginning of the function.
9967
2c7b8bf6
AM
99682013-06-11 Alan Modra <amodra@gmail.com>
9969
9970 * varasm.c (get_section): Don't die on !DECL_P decl. Tidy error
9971 reporting.
9972 (get_named_section): Don't NULL !DECL_P decl.
9973
77cea46e
IZ
99742013-06-11 Igor Zamyatin <igor.zamyatin@intel.com>
9975
9976 * doc/invoke.texi (core-avx2): Document.
9977 (slm): Likewise.
9978 (atom): Updated with MOVBE.
9979
888f0920
RB
99802013-06-11 Richard Biener <rguenther@suse.de>
9981
22fc7d3d 9982 * collect2.c (main): Do not redirect ld stdout/stderr when debugging.
888f0920 9983
6b438d58
AB
99842013-06-11 Anton Blanchard <anton@samba.org>
9985
9986 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Calculate
9987 correct shift value in little-endian mode.
9988
3bc66938
JJ
99892013-06-11 Jakub Jelinek <jakub@redhat.com>
9990
9991 PR target/56564
9992 * varasm.c (get_variable_align): Move #endif to the right place.
9993
a5dc7f88
CC
99942013-06-10 Cary Coutant <ccoutant@google.com>
9995
9996 * dwarf2out.c (hash_external_ref): Use die_symbol or signature
9997 for hash so that hash table traversal order is deterministic.
9998
19be72ab 99992013-06-10 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
10000 Pat Haugen <pthaugen@us.ibm.com>
10001 Peter Bergner <bergner@vnet.ibm.com>
19be72ab
MM
10002
10003 * config/rs6000/vector.md (GPR move splitter): Do not split moves
10004 of vectors in GPRS if they are direct moves or quad word load or
10005 store moves.
10006
10007 * config/rs6000/rs6000-protos.h (rs6000_output_move_128bit): Add
10008 declaration.
10009 (direct_move_p): Likewise.
10010 (quad_load_store_p): Likewise.
10011
10012 * config/rs6000/rs6000.c (enum rs6000_reg_type): Simplify register
10013 classes into bins based on the physical register type.
10014 (reg_class_to_reg_type): Likewise.
10015 (IS_STD_REG_TYPE): Likewise.
10016 (IS_FP_VECT_REG_TYPE): Likewise.
10017 (reload_fpr_gpr): Arrays to determine what insn to use if we can
10018 use direct move instructions.
10019 (reload_gpr_vsx): Likewise.
10020 (reload_vsx_gpr): Likewise.
10021 (rs6000_init_hard_regno_mode_ok): Precalculate the register type
10022 information that is a simplification of register classes. Also
10023 precalculate direct move reload helpers.
10024 (direct_move_p): New function to return true if the operation can
10025 be done as a direct move instruciton.
10026 (quad_load_store_p): New function to return true if the operation
10027 is a quad memory operation.
10028 (rs6000_legitimize_address): If quad memory, only allow register
10029 indirect for TImode addresses.
10030 (rs6000_legitimate_address_p): Likewise.
10031 (enum reload_reg_type): Delete, replace with rs6000_reg_type.
10032 (rs6000_reload_register_type): Likewise.
10033 (register_to_reg_type): Return register type.
10034 (rs6000_secondary_reload_simple_move): New helper function for
10035 secondary reload and secondary memory needed to identify anything
10036 that is a simple move, and does not need reloading.
10037 (rs6000_secondary_reload_direct_move): New helper function for
10038 secondary reload to identify cases that can be done with several
10039 instructions via the direct move instructions.
10040 (rs6000_secondary_reload_move): New helper function for secondary
10041 reload to identify moves between register types that can be done.
10042 (rs6000_secondary_reload): Add support for quad memory operations
10043 and for direct move.
10044 (rs6000_secondary_memory_needed): Likewise.
10045 (rs6000_debug_secondary_memory_needed): Change argument names.
10046 (rs6000_output_move_128bit): New function to return the move to
10047 use for 128-bit moves, including knowing about the various
10048 limitations of quad memory operations.
10049
10050 * config/rs6000/vsx.md (vsx_mov<mode>): Add support for quad
10051 memory operations. call rs6000_output_move_128bit for the actual
10052 instruciton(s) to generate.
10053 (vsx_movti_64bit): Likewise.
10054
10055 * config/rs6000/rs6000.md (UNSPEC_P8V_FMRGOW): New unspec values.
10056 (UNSPEC_P8V_MTVSRWZ): Likewise.
10057 (UNSPEC_P8V_RELOAD_FROM_GPR): Likewise.
10058 (UNSPEC_P8V_MTVSRD): Likewise.
10059 (UNSPEC_P8V_XXPERMDI): Likewise.
10060 (UNSPEC_P8V_RELOAD_FROM_VSX): Likewise.
10061 (UNSPEC_FUSION_GPR): Likewise.
10062 (FMOVE128_GPR): New iterator for direct move.
22fc7d3d 10063 (f32_lv): New mode attribute for load/store of SFmode/SDmode values.
19be72ab
MM
10064 (f32_sv): Likewise.
10065 (f32_dm): Likewise.
10066 (zero_extend<mode>di2_internal1): Add support for power8 32-bit
10067 loads and direct move instructions.
10068 (zero_extendsidi2_lfiwzx): Likewise.
10069 (extendsidi2_lfiwax): Likewise.
10070 (extendsidi2_nocell): Likewise.
10071 (floatsi<mode>2_lfiwax): Likewise.
10072 (lfiwax): Likewise.
10073 (floatunssi<mode>2_lfiwzx): Likewise.
10074 (lfiwzx): Likewise.
10075 (fix_trunc<mode>_stfiwx): Likewise.
10076 (fixuns_trunc<mode>_stfiwx): Likewise.
10077 (mov<mode>_hardfloat, 32-bit floating point): Likewise.
10078 (mov<move>_hardfloat64, 64-bit floating point): Likewise.
10079 (parity<mode>2_cmpb): Set length/type attr.
10080 (unnamed shift right patterns, mov<mode>_internal2): Change type attr
10081 for 'mr.' to fast_compare.
10082 (bpermd_<mode>): Change type attr to popcnt.
10083 (p8_fmrgow_<mode>): New insns for power8 direct move support.
10084 (p8_mtvsrwz_1): Likewise.
10085 (p8_mtvsrwz_2): Likewise.
10086 (reload_fpr_from_gpr<mode>): Likewise.
10087 (p8_mtvsrd_1): Likewise.
10088 (p8_mtvsrd_2): Likewise.
10089 (p8_xxpermdi_<mode>): Likewise.
10090 (reload_vsx_from_gpr<mode>): Likewise.
10091 (reload_vsx_from_gprsf): Likewise.
10092 (p8_mfvsrd_3_<mode>): LIkewise.
10093 (reload_gpr_from_vsx<mode>): Likewise.
10094 (reload_gpr_from_vsxsf): Likewise.
10095 (p8_mfvsrd_4_disf): Likewise.
10096 (multi-word GPR splits): Do not split direct moves or quad memory
10097 operations.
10098
16876bdc
DM
100992013-06-10 David Malcolm <dmalcolm@redhat.com>
10100
10101 * tree-into-ssa.c (interesting_blocks): Make static.
10102
df8a1d28
JJ
101032013-06-10 Jakub Jelinek <jakub@redhat.com>
10104
10105 PR target/56564
10106 * varasm.c (align_variable): Don't use DATA_ALIGNMENT or
10107 CONSTANT_ALIGNMENT if !decl_binds_to_current_def_p (decl).
10108 Use DATA_ABI_ALIGNMENT for that case instead if defined.
10109 (get_variable_align): New function.
10110 (get_variable_section, emit_bss, emit_common,
10111 assemble_variable_contents, place_block_symbol): Use
10112 get_variable_align instead of DECL_ALIGN.
10113 (assemble_noswitch_variable): Add align argument, use it
10114 instead of DECL_ALIGN.
10115 (assemble_variable): Adjust caller. Use get_variable_align
10116 instead of DECL_ALIGN.
10117 * config/i386/i386.h (DATA_ALIGNMENT): Adjust x86_data_alignment
10118 caller.
10119 (DATA_ABI_ALIGNMENT): Define.
10120 * config/i386/i386-protos.h (x86_data_alignment): Adjust prototype.
10121 * config/i386/i386.c (x86_data_alignment): Add opt argument. If
10122 opt is false, only return the psABI mandated alignment increase.
10123 * config/c6x/c6x.h (DATA_ALIGNMENT): Renamed to...
10124 (DATA_ABI_ALIGNMENT): ... this.
10125 * config/mmix/mmix.h (DATA_ALIGNMENT): Renamed to...
10126 (DATA_ABI_ALIGNMENT): ... this.
10127 * config/mmix/mmix.c (mmix_data_alignment): Adjust function comment.
10128 * config/s390/s390.h (DATA_ALIGNMENT): Renamed to...
10129 (DATA_ABI_ALIGNMENT): ... this.
10130 * doc/tm.texi.in (DATA_ABI_ALIGNMENT): Document.
10131 * doc/tm.texi: Regenerated.
10132
57b29ca6
UB
101332013-06-10 Uros Bizjak <ubizjak@gmail.com>
10134
10135 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Also use
10136 cmp_code to construct REG_EQUAL note.
10137
3e56ed50
JJ
101382013-06-09 Jakub Jelinek <jakub@redhat.com>
10139
10140 PR target/57568
10141 * config/i386/i386.md (TARGET_READ_MODIFY_WRITE peepholes): Ensure
10142 that operands[2] doesn't overlap with operands[0].
10143
74fe2a1d
DE
101442013-06-09 David Edelsohn <dje.gcc@gmail.com>
10145 Jan Hubicka <jh@suse.cz>
10146
10147 * config/rs6000/rs6000.c (print_operand, 'z'): Remove historical
10148 hack to mark symbols as used.
10149
ed52a84e
VM
101502013-06-08 Vladimir Makarov <vmakarov@redhat.com>
10151
10152 PR rtl-optimization/57559
10153 * lra-constraints.c (process_alt_operands): Don't discourage
10154 memory with known offset for offsetable memory constraint.
10155 * lra.c (lra_emit_add): Exchange y and z for 2-op add insn.
10156
299316ed
EB
101572013-06-08 Eric Botcazou <ebotcazou@adacore.com>
10158
10159 * varasm.c (struct oc_local_state): Reorder fields.
10160 (output_constructor_bitfield): Replace OUTER parameter with BIT_OFFSET
10161 and adjust accordingly.
10162 (output_constructor): Reorder initialization code and adjust call to
10163 output_constructor_bitfield.
10164
88ac60d3
JH
101652013-06-07 Jan Hubicka <jh@suse.cz>
10166
10167 * symtab.c (symtab_resolve_alias): Do not remove alias attribute.
10168
4cdce1a8
DM
101692013-06-07 David Malcolm <dmalcolm@redhat.com>
10170
10171 * tree-object-size.c (unknown): Make const.
10172
b5e0425c
AK
101732013-06-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
10174
10175 * config/s390/s390.md (cpu_facility): Add cpu_zarch.
10176 ("*movmem_short", "*clrmem_short", "*cmpmem_short): Use cpu_zarch
10177 for last alternative in the cpu_facility attribute.
10178
79678d04
KT
101792013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10180
10181 PR target/56315
10182 * config/arm/arm.md (*xordi3_insn): Change to insn_and_split.
10183 (xordi3): Change operand 2 constraint to arm_xordi_operand.
10184 * config/arm/arm.c (const_ok_for_dimode_op): Handle XOR.
10185 * config/arm/constraints.md (Dg): New constraint.
10186 * config/arm/neon.md (xordi3_neon): Remove.
10187 (neon_veor<mode>): Generate xordi3 instead of xordi3_neon.
10188 * config/arm/predicates.md (arm_xordi_operand): New predicate.
10189
b31ddbdb
KT
101902013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10191
10192 * config/arm/arm.md (anddi3_insn): Remove duplicate alternatives.
10193 Clean up alternatives.
10194
8f90b7d4
AM
101952013-06-07 Alan Modra <amodra@gmail.com>
10196
10197 * config/rs6000/rs6000.c (setup_incoming_varargs): Round up
10198 va_list_gpr_size.
10199
961ce119
AM
102002013-06-07 Alan Modra <amodra@gmail.com>
10201
10202 * varasm.c (force_const_mem): Assert mode is not VOID or BLK.
10203
33e49835
KT
102042013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10205
10206 * config/arm/constraints.md (Df): New constraint.
10207 * config/arm/arm.md (iordi3_insn): Use Df constraint instead of De.
10208 Correct length attribute for last two alternatives.
10209
acd17ae6
AM
102102013-06-07 Alan Modra <amodra@gmail.com>
10211
10212 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
10213 override user -mfp-in-toc.
10214 (offsettable_ok_by_alignment): Consider just the current access
10215 rather than the whole object, unless BLKmode. Handle
10216 CONSTANT_POOL_ADDRESS_P constants that lack a decl too.
10217 (use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants
10218 for -mcmodel=medium.
10219 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
10220 override user -mfp-in-toc or -msum-in-toc. Default to
10221 -mno-fp-in-toc for -mcmodel=medium.
10222
73310b0e
DD
102232013-06-06 DJ Delorie <dj@redhat.com>
10224
10225 * config/rl78/rl78.c (rl78_valid_pointer_mode): New, implements
10226 TARGET_VALID_POINTER_MODE.
10227
0bd62dca 102282013-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
10229 Pat Haugen <pthaugen@us.ibm.com>
10230 Peter Bergner <bergner@vnet.ibm.com>
0bd62dca
MM
10231
10232 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
10233 Document new power8 builtins.
10234
10235 * config/rs6000/vector.md (and<mode>3): Add a clobber/scratch of a
10236 condition code register, to allow 128-bit logical operations to be
10237 done in the VSX or GPR registers.
10238 (nor<mode>3): Use the canonical form for nor.
10239 (eqv<mode>3): Add expanders for power8 xxleqv, xxlnand, xxlorc,
10240 vclz*, and vpopcnt* vector instructions.
10241 (nand<mode>3): Likewise.
10242 (orc<mode>3): Likewise.
10243 (clz<mode>2): LIkewise.
10244 (popcount<mode>2): Likewise.
10245
10246 * config/rs6000/predicates.md (int_reg_operand): Rework tests so
10247 that only the GPRs are recognized.
10248
10249 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
10250 support for new power8 builtins.
10251
10252 * config/rs6000/rs6000-builtin.def (xscvspdpn): Add new power8
10253 builtin functions.
10254 (xscvdpspn): Likewise.
10255 (vclz): Likewise.
10256 (vclzb): Likewise.
10257 (vclzh): Likewise.
10258 (vclzw): Likewise.
10259 (vclzd): Likewise.
10260 (vpopcnt): Likewise.
10261 (vpopcntb): Likewise.
10262 (vpopcnth): Likewise.
10263 (vpopcntw): Likewise.
10264 (vpopcntd): Likewise.
10265 (vgbbd): Likewise.
10266 (vmrgew): Likewise.
10267 (vmrgow): Likewise.
10268 (eqv): Likewise.
10269 (eqv_v16qi3): Likewise.
10270 (eqv_v8hi3): Likewise.
10271 (eqv_v4si3): Likewise.
10272 (eqv_v2di3): Likewise.
10273 (eqv_v4sf3): Likewise.
10274 (eqv_v2df3): Likewise.
10275 (nand): Likewise.
10276 (nand_v16qi3): Likewise.
10277 (nand_v8hi3): Likewise.
10278 (nand_v4si3): Likewise.
10279 (nand_v2di3): Likewise.
10280 (nand_v4sf3): Likewise.
10281 (nand_v2df3): Likewise.
10282 (orc): Likewise.
10283 (orc_v16qi3): Likewise.
10284 (orc_v8hi3): Likewise.
10285 (orc_v4si3): Likewise.
10286 (orc_v2di3): Likewise.
10287 (orc_v4sf3): Likewise.
10288 (orc_v2df3): Likewise.
10289
10290 * config/rs6000/rs6000.c (rs6000_option_override_internal): Only
10291 allow power8 quad mode in 64-bit.
10292 (rs6000_builtin_vectorized_function): Add support to vectorize
10293 ISA 2.07 count leading zeros, population count builtins.
10294 (rs6000_expand_vector_init): On ISA 2.07 use xscvdpspn to form
10295 V4SF vectors instead of xscvdpsp to avoid IEEE related traps.
10296 (builtin_function_type): Add vgbbd builtin function which takes an
10297 unsigned argument.
10298 (altivec_expand_vec_perm_const): Add support for new power8 merge
10299 instructions.
10300
10301 * config/rs6000/vsx.md (VSX_L2): New iterator for 128-bit types,
10302 that does not include TImdoe for use with 32-bit.
10303 (UNSPEC_VSX_CVSPDPN): Support for power8 xscvdpspn and xscvspdpn
10304 instructions.
10305 (UNSPEC_VSX_CVDPSPN): Likewise.
10306 (vsx_xscvdpspn): Likewise.
10307 (vsx_xscvspdpn): Likewise.
10308 (vsx_xscvdpspn_scalar): Likewise.
10309 (vsx_xscvspdpn_directmove): Likewise.
10310 (vsx_and<mode>3): Split logical operations into 32-bit and
10311 64-bit. Add support to do logical operations on TImode as well as
10312 VSX vector types. Allow logical operations to be done in either
10313 VSX registers or in general purpose registers in 64-bit mode. Add
10314 splitters if GPRs were used. For AND, add clobber of CCmode to
10315 allow use of ANDI on GPRs. Rewrite nor to use the canonical RTL
10316 encoding.
10317 (vsx_and<mode>3_32bit): Likewise.
10318 (vsx_and<mode>3_64bit): Likewise.
10319 (vsx_ior<mode>3): Likewise.
10320 (vsx_ior<mode>3_32bit): Likewise.
10321 (vsx_ior<mode>3_64bit): Likewise.
10322 (vsx_xor<mode>3): Likewise.
10323 (vsx_xor<mode>3_32bit): Likewise.
10324 (vsx_xor<mode>3_64bit): Likewise.
10325 (vsx_one_cmpl<mode>2): Likewise.
10326 (vsx_one_cmpl<mode>2_32bit): Likewise.
10327 (vsx_one_cmpl<mode>2_64bit): Likewise.
10328 (vsx_nor<mode>3): Likewise.
10329 (vsx_nor<mode>3_32bit): Likewise.
10330 (vsx_nor<mode>3_64bit): Likewise.
10331 (vsx_andc<mode>3): Likewise.
10332 (vsx_andc<mode>3_32bit): Likewise.
10333 (vsx_andc<mode>3_64bit): Likewise.
10334 (vsx_eqv<mode>3_32bit): Add support for power8 xxleqv, xxlnand,
10335 and xxlorc instructions.
10336 (vsx_eqv<mode>3_64bit): Likewise.
10337 (vsx_nand<mode>3_32bit): Likewise.
10338 (vsx_nand<mode>3_64bit): Likewise.
10339 (vsx_orc<mode>3_32bit): Likewise.
10340 (vsx_orc<mode>3_64bit): Likewise.
10341
10342 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Update comment.
10343
10344 * config/rs6000/altivec.md (UNSPEC_VGBBD): Add power8 vgbbd
10345 instruction.
10346 (p8_vmrgew): Add power8 vmrgew and vmrgow instructions.
10347 (p8_vmrgow): Likewise.
10348 (altivec_and<mode>3): Add clobber of CCmode to allow AND using
10349 GPRs to be split under VSX.
10350 (p8v_clz<mode>2): Add power8 count leading zero support.
10351 (p8v_popcount<mode>2): Add power8 population count support.
10352 (p8v_vgbbd): Add power8 gather bits by bytes by doubleword
10353 support.
10354
10355 * config/rs6000/rs6000.md (eqv<mode>3): Add support for powerp eqv
10356 instruction.
10357
10358 * config/rs6000/altivec.h (vec_eqv): Add defines to export power8
10359 builtin functions.
10360 (vec_nand): Likewise.
10361 (vec_vclz): Likewise.
10362 (vec_vclzb): Likewise.
10363 (vec_vclzd): Likewise.
10364 (vec_vclzh): Likewise.
10365 (vec_vclzw): Likewise.
10366 (vec_vgbbd): Likewise.
10367 (vec_vmrgew): Likewise.
10368 (vec_vmrgow): Likewise.
10369 (vec_vpopcnt): Likewise.
10370 (vec_vpopcntb): Likewise.
10371 (vec_vpopcntd): Likewise.
10372 (vec_vpopcnth): Likewise.
10373 (vec_vpopcntw): Likewise.
10374
37684c46
VM
103752013-06-06 Vladimir Makarov <vmakarov@redhat.com>
10376
10377 PR rtl-optimization/57468
10378 * config/i386/i386.c (inline_secondary_memory_needed): Ignore
10379 spilled pseudos.
10380
d89ae27c
VM
103812013-06-06 Vladimir Makarov <vmakarov@redhat.com>
10382
10383 PR rtl-optimization/57459
10384 * lra-constraints.c (update_ebb_live_info): Fix typo for operand
10385 type when setting live regs.
10386
3597e113
VM
103872013-06-06 Vladimir Makarov <vmakarov@redhat.com>
10388
10389 * config/s390/s390.opt (mlra): New option.
10390 * config/s390/s390.c (s390_decompose_address): Check displacement
10391 for all registers for LRA.
10392 (s390_secondary_reload): Don't used secondary reloads for LRA.
10393 (s390_lra_p): New function.
10394 (TARGET_LRA_P): Define.
10395 * config/s390/s390.md (*movmem_short, *clrmem_short): Change value
10396 of attribute cpu_facility to zarch for the last alternative.
10397 (*cmpmem_short): Ditto.
10398
01037aeb
EB
103992013-06-06 Eric Botcazou <ebotcazou@adacore.com>
10400
10401 * config/arm/arm.c (arm_r3_live_at_start_p): New predicate.
10402 (arm_compute_static_chain_stack_bytes): Use it. Tidy up.
10403 (arm_expand_prologue): Likewise.
10404
3371a64f
TJ
104052013-06-06 Teresa Johnson <tejohnson@google.com>
10406
10407 PR c++/53743
10408 * ifcvt.c (find_if_case_1): Replace BB_COPY_PARTITION with assert
10409 as this is now done by redirect_edge_and_branch_force.
10410 * function.c (thread_prologue_and_epilogue_insns): Insert new bb after
10411 barriers, and fix interaction with splitting.
10412 * emit-rtl.c (try_split): Copy REG_CROSSING_JUMP notes.
10413 * cfgcleanup.c (try_forward_edges): Fix early return value to properly
10414 reflect changes made in the routine.
10415 * bb-reorder.c (emit_barrier_after_bb): Move to cfgrtl.c.
10416 (fix_up_fall_thru_edges): Remove incorrect check for bb layout order
10417 since this is called in cfglayout mode, and replace partition fixup
10418 with assert as that is now done by force_nonfallthru_and_redirect.
10419 (add_reg_crossing_jump_notes): Handle the fact that some jumps may
10420 already be marked with region crossing note.
10421 (insert_section_boundary_note): Make non-static, gate on flag
10422 has_bb_partition, rewrite to also check for multiple partitions.
10423 (rest_of_handle_reorder_blocks): Remove call to
10424 insert_section_boundary_note, now done later during free_cfg.
10425 (duplicate_computed_gotos): Don't duplicate partition crossing edge.
10426 * bb-reorder.h (insert_section_boundary_note): Declare.
10427 * Makefile.in (cfgrtl.o): Depend on bb-reorder.h
10428 * cfgrtl.c (rest_of_pass_free_cfg): If partitions exist
10429 invoke insert_section_boundary_note.
10430 (try_redirect_by_replacing_jump): Remove unnecessary
10431 check for region crossing note.
10432 (fixup_partition_crossing): New function.
10433 (rtl_redirect_edge_and_branch): Fixup partition boundaries.
10434 (emit_barrier_after_bb): Move here from bb-reorder.c, handle insertion
10435 in non-cfglayout mode.
10436 (force_nonfallthru_and_redirect): Fixup partition boundaries,
10437 remove old code that tried to do this. Emit barrier correctly
10438 when we are in cfglayout mode.
10439 (last_bb_in_partition): New function.
10440 (rtl_split_edge): Correctly fixup partition boundaries.
10441 (commit_one_edge_insertion): Remove old code that tried to
10442 fixup region crossing edge since this is now handled in
10443 split_block, and set up insertion point correctly since
10444 block may now end in a jump.
10445 (verify_hot_cold_block_grouping): Guard against checking when not in
10446 linearized RTL mode.
10447 (rtl_verify_edges): Add checks for incorrect/missing REG_CROSSING_JUMP
10448 notes.
10449 (rtl_verify_flow_info_1): Move verify_hot_cold_block_grouping to
10450 rtl_verify_flow_info, so not called in cfglayout mode.
10451 (rtl_verify_flow_info): Move verify_hot_cold_block_grouping here.
10452 (fixup_reorder_chain): Remove old code that attempted to fixup region
10453 crossing note as this is now handled in force_nonfallthru_and_redirect.
10454 (duplicate_insn_chain): Don't duplicate switch section notes.
10455 (rtl_can_remove_branch_p): Remove unnecessary check for region crossing
10456 note.
10457 * basic-block.h (emit_barrier_after_bb): Declare.
10458
66071e10
KT
104592013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10460
10461 * config/arm/arm-fixed.md (add<mode>3,usadd<mode>3,ssadd<mode>3,
10462 sub<mode>3, ussub<mode>3, sssub<mode>3, arm_ssatsihi_shift,
10463 arm_usatsihi): Adjust alternatives for arm_restrict_it.
10464
0e26bf3d
KT
104652013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10466
10467 * config/arm/arm-ldmstm.ml: Set "predicable_short_it" to "no"
10468 where appropriate.
10469 * config/arm/ldmstm.md: Regenerate.
10470
12b4e7ef
KT
104712013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10472
10473 * config/arm/sync.md (atomic_loaddi_1):
10474 Disable predication for arm_restrict_it.
10475 (arm_load_exclusive<mode>): Likewise.
10476 (arm_load_exclusivesi): Likewise.
10477 (arm_load_exclusivedi): Likewise.
10478 (arm_load_acquire_exclusive<mode>): Likewise.
10479 (arm_load_acquire_exclusivesi): Likewise.
10480 (arm_load_acquire_exclusivedi): Likewise.
10481 (arm_store_exclusive<mode>): Likewise.
10482 (arm_store_exclusive<mode>): Likewise.
10483 (arm_store_release_exclusivedi): Likewise.
10484 (arm_store_release_exclusive<mode>): Likewise.
10485
15d16c8a
RB
104862013-06-06 Richard Biener <rguenther@suse.de>
10487
10488 * lto-streamer.h (enum LTO_tags): Move LTO_tree_pickle_reference
10489 after LTO_null.
10490 (lto_tag_is_tree_code_p): Adjust.
10491 (lto_tag_is_gimple_code_p): Likewise.
10492 (lto_gimple_code_to_tag): Likewise.
10493 (lto_tag_to_gimple_code): Likewise.
10494 (lto_tree_code_to_tag): Likewise.
10495 (lto_tag_to_tree_code): Likewise.
10496 * data-streamer.h (streamer_write_hwi_in_range): Use
10497 uhwi streaming to stream the normalized range.
10498 (streamer_read_hwi_in_range): Likewise.
10499
17a7fc37
KT
105002013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10501
10502 * config/arm/arm.md (enabled_for_depr_it): New attribute.
10503 (predicable_short_it): Likewise.
10504 (predicated): Likewise.
10505 (enabled): Handle above.
10506 (define_cond_exec): Set predicated attribute to yes.
10507
b57ca59b
MS
105082013-06-05 Mike Stump <mikestump@comcast.net>
10509
10510 * gdbinit.in (__FUNCTION__): Add.
10511
c1e183a9
UB
105122013-06-05 Uros Bizjak <ubizjak@gmail.com>
10513
10514 * config/alpha/alpha.c (alpha_emit_conditional_move): Swap all
10515 GE, GT, GEU and GTU compares, modulo DImode compares with zero.
10516
0378bddb
JH
105172013-06-05 Jan Hubicka <jh@suse.cz>
10518
10519 * varasm.c (mark_decl_referenced): Revert the removal until targets
10520 are fixed.
10521
8f8a2057
DE
105222013-06-05 David Edelsohn <dje.gcc@gmail.com>
10523
10524 * config/rs6000/rs6000.c (print_operand, 'z'): Use DECL_PRESERVE_P
10525 instead of mark_decl_referenced.
10526
edb983b2
JH
105272013-06-05 Jan Hubicka <jh@suse.cz>
10528
10529 * cgraph.c (cgraph_remove_node): Clear forced_by_abi.
10530 (cgraph_node_cannot_be_local_p_1): Honnor symbol.forced_by_abi
10531 and symtab_used_from_object_file_p.
10532 (cgraph_make_node_local_1): Clear forced_by_abi.
10533 (cgraph_can_remove_if_no_direct_calls_and): Use forced_by_abi
10534 * cgraph.h (symtab_node_base): Add forced_by_abi.
10535 (decide_is_variable_needed): Remove.
10536 (varpool_can_remove_if_no_refs): Honnor symbol.forced_by_abi.
10537 * cgraphunit.c (cgraph_decide_is_function_needed): Rename to ..
10538 (decide_is_symbol_needed): ... this one; handle symbols in general;
10539 always analyze virtuals; honnor forced_by_abi.
10540 (cgraph_finalize_function): Update.
10541 (varpool_finalize_decl): Update.
10542 (symbol_defined_and_needed): Remove.
10543 (analyze_functions): Update.
10544 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
10545 output_refs, input_overwrite_node): Handle forced_by_abi.
10546 * ipa.c (cgraph_address_taken_from_non_vtable_p): Rename to ...
10547 (address_taken_from_non_vtable_p): ... this one.
10548 (comdat_can_be_unshared_p_1): New function.
10549 (cgraph_comdat_can_be_unshared_p): Rename to ...
10550 (comdat_can_be_unshared_p): ... this one; handle symbols in general.
10551 (varpool_externally_visible_p): Use comdat_can_be_unshared_p.
10552 (function_and_variable_visibility): Clear forced_by_abi as needed.
10553 * trans-mem.c (ipa_tm_mark_forced_by_abi_node): New functoin.
10554 (ipa_tm_create_version_alias, ipa_tm_create_version): Update.
edb983b2
JH
10555 * symtab.c (dump_symtab_base): Dump forced_by_abi.
10556 * varpool.c (decide_is_variable_needed): Remove.
10557
9912dbe5
KT
105582013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10559
10560 * config/arm/arm.c (MAX_INSN_PER_IT_BLOCK): New macro.
10561 (arm_option_override): Override arm_restrict_it where appropriate.
10562 (thumb2_final_prescan_insn): Use MAX_INSN_PER_IT_BLOCK.
10563 * config/arm/arm.opt (mrestrict-it): New command-line option.
10564 * doc/invoke.texi: Document -mrestrict-it.
10565
34c136b6
DM
105662013-06-05 David Malcolm <dmalcolm@redhat.com>
10567
10568 * tsan.c (tsan_atomic_table): Make const.
10569
a367df53
RB
105702013-06-05 Richard Biener <rguenther@suse.de>
10571
10572 * tree-streamer.c (streamer_tree_cache_insert_1): Update the
10573 index associated with the tree we are supposed to replace.
10574 * tree-streamer-out.c (pack_ts_base_value_fields): Output
10575 TREE_ASM_WRITTEN as zero for everything but SSA names.
10576
70d51a19
DM
105772013-06-05 David Malcolm <dmalcolm@redhat.com>
10578
10579 * tree-ssa-structalias.c (call_stmt_vars): Make static.
10580
b9bd2075
JH
105812013-06-04 Jan Hubicka <jh@suse.cz>
10582
10583 * lto-cgraph.c (get_alias_symbol): Remove weakref sanity check.
10584 (input_node, input_varpool_node): Handle correctly external same
10585 body aliases.
10586 * ipa.c (symtab_remove_unreachable_nodes): Do not remove external
10587 nodes at ltrans stage.
10588
aaae719d
JH
105892013-06-04 Jan Hubicka <jh@suse.cz>
10590
10591 * ipa-inline.c (update_caller_keys): Fix availability test.
10592 (update_callee_keys): Likewise.
10593 * symtab.c (symtab_alias_ultimate_target): Make availaiblity logic
10594 to follow ELF standard.
10595
107eea2c
JU
105962013-06-04 Jürgen Urban <JuergenUrban@gmx.de>
10597
10598 * config.gcc (mipsr5900-*-elf*, mipsr5900el-*-elf*, mips64r5900-*-elf*)
10599 (mips64r5900el-*-elf*): New configurations.
10600 * config/mips/mips-cpus.def (r5900): New processor.
10601 * config/mips/mips-tables.opt: Regenerate.
10602 * config/mips/mips.c (mips_rtx_cost_data): Add an R5900 entry.
10603 (mips_issue_rate): Handle PROCESSOR_R5900.
10604 (mips_reorg_process_insns): Force reorder mode for the R5900.
10605 * config/mips/mips.h (TARGET_MIPS5900): Define.
10606 (ISA_HAS_CONDMOVE, ISA_HAS_PREFETCH, ISA_HAS_HILO_INTERLOCKS): Include
10607 TARGET_MIPS5900.
10608 (ISA_HAS_LOAD_DELAY, ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY): Exclude
10609 TARGET_MIPS5900.
10610 * config/mips/mips.md (processor): Add r5900.
10611 (MOVECC): Disallow CCmode conditions for TARGET_MIPS5900.
10612
b7342d25
IB
106132013-06-04 Ian Bolton <ian.bolton@arm.com>
10614
10615 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Call
10616 into function to generate MOVI instruction.
c1e183a9 10617 * config/aarch64/aarch64.c (aarch64_simd_container_mode): New function.
b7342d25
IB
10618 (aarch64_preferred_simd_mode): Turn into wrapper.
10619 (aarch64_output_scalar_simd_mov_immediate): New function.
10620 * config/aarch64/aarch64-protos.h: Add prototype for above.
10621
81c2dfb9
IB
106222013-06-04 Ian Bolton <ian.bolton@arm.com>
10623
10624 * config/aarch64/aarch64.c (simd_immediate_info): Remove
10625 element_char member.
10626 (sizetochar): Return signed char.
10627 (aarch64_simd_valid_immediate): Remove elchar and other
10628 unnecessary variables.
10629 (aarch64_output_simd_mov_immediate): Take rtx instead of &rtx.
10630 Calculate element_char as required.
10631 * config/aarch64/aarch64-protos.h: Update and move prototype
10632 for aarch64_output_simd_mov_immediate.
10633 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
10634 Update arguments.
10635
48063b9d
IB
106362013-06-04 Ian Bolton <ian.bolton@arm.com>
10637
10638 * config/aarch64/aarch64.c (simd_immediate_info): Struct to hold
10639 information completed by aarch64_simd_valid_immediate.
10640 (aarch64_legitimate_constant_p): Update arguments.
10641 (aarch64_simd_valid_immediate): Work with struct rather than many
10642 pointers.
10643 (aarch64_simd_scalar_immediate_valid_for_move): Update arguments.
10644 (aarch64_simd_make_constant): Update arguments.
10645 (aarch64_output_simd_mov_immediate): Work with struct rather than
10646 many pointers. Output immediate directly rather than as operand.
10647 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
10648 Update prototype.
10649 * config/aarch64/constraints.md (Dn): Update arguments.
10650
3ea63f60
IB
106512013-06-04 Ian Bolton <ian.bolton@arm.com>
10652
10653 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): No
10654 longer static.
10655 (aarch64_simd_immediate_valid_for_move): Remove.
10656 (aarch64_simd_scalar_immediate_valid_for_move): Update call.
10657 (aarch64_simd_make_constant): Update call.
10658 (aarch64_output_simd_mov_immediate): Update call.
10659 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
10660 Add prototype.
10661 * config/aarch64/constraints.md (Dn): Update call.
10662
d8edd899
IB
106632013-06-04 Ian Bolton <ian.bolton@arm.com>
10664
10665 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Change
10666 return type to bool for prototype.
10667 (aarch64_legitimate_constant_p): Check for true instead of not -1.
10668 (aarch64_simd_valid_immediate): Fix up each return to return a bool.
10669 (aarch64_simd_immediate_valid_for_move): Update retval for bool.
10670
44b20bb8
CM
106712013-06-04 Catherine Moore <clm@codesourcery.com>
10672
10673 * config/mips/mips.opt (meva): New.
c1e183a9 10674 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_eva.
44b20bb8
CM
10675 (ASM_SPEC): Handle -meva.
10676 * doc/invoke.texi (meva): Document.
10677
52befbd8
AM
106782013-06-04 Alan Modra <amodra@gmail.com>
10679
10680 * config/rs6000/rs6000.c (output_toc): Correct little-endian float
10681 constant output.
10682
aadaf24e
KT
106832013-06-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10684
10685 * rtl.def: Add extra fourth optional field to define_cond_exec.
10686 * gensupport.c (process_one_cond_exec): Process attributes from
10687 define_cond_exec.
10688 * doc/md.texi: Document fourth field in define_cond_exec.
10689
0cd9e9ee
EB
106902013-06-04 Eric Botcazou <ebotcazou@adacore.com>
10691
10692 * expmed.c (extract_bit_field_1): In the larger-than-a-word case, factor
10693 out the processing order as in store_bit_field_1.
10694
cb0f665d
JH
106952013-06-04 Jan Hubicka <jh@suse.cz>
10696
10697 PR middle-end/57500
10698 * cgraphunit.c (cgraph_process_same_body_aliases): Create
10699 non-VAR_DECL node if it does not exist yet.
10700
53984b9b
RS
107012013-06-03 Richard Sandiford <rdsandiford@googlemail.com>
10702
10703 * config.gcc (mipsisa64sr71k-*-elf*, mipsisa64sb1-*-elf*)
10704 (mipsisa64sb1el-*-elf*, mips64-*-elf*, mips64el-*-elf*)
10705 (mips64orion-*-elf*, mips64orionel-*-elf*): Remove
10706 target_cpu_default setting.
10707
5d318fd4
TJ
107082013-06-03 Teresa Johnson <tejohnson@google.com>
10709
10710 * dumpfile.c (opt_info_switch_p): Change -fopt-info
10711 default to -fopt-info=optimized instead of all.
10712 * doc/invoke.texi: Ditto.
10713 * tree-vectorizer.c (vectorize_loops): Emit loop vectorization
10714 success under MSG_OPTIMIZED_LOCATIONS, and use dump_printf_loc.
10715 (execute_vect_slp): Emit BB vectorization success under
10716 MSG_OPTIMIZED_LOCATIONS.
10717 * tree-vect-slp.c (vect_slp_transform_bb): Change
10718 MSG_OPTIMIZED_LOCATIONS to MSG_NOTE.
10719 * tree-vect-loop.c (vect_transform_loop): Ditto.
10720
ec3af349
JM
107212013-06-03 Jason Merrill <jason@redhat.com>
10722
10723 PR c++/57415
10724 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
10725 Use TARGET_EXPR for C++.
10726
1baf9159
JJ
107272013-06-03 Jakub Jelinek <jakub@redhat.com>
10728
10729 PR rtl-optimization/57268
0cd9e9ee 10730 * sched-deps.c (sched_analyze_2): Don't flush_pending_lists
1baf9159
JJ
10731 if DEBUG_INSN_P (insn).
10732
10733 Reapply
10734 2013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
10735
10736 PR rtl-optimization/57268
10737 * sched-deps.c (sched_analyze_2): Flush dependence lists if
10738 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
10739
0f1d3965
YR
107402013-06-03 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
10741
10742 * config/i386/i386.c (ix86_lea_outperforms): Fix formatting.
10743 (ix86_avoid_lea_for_addr): Likewise.
10744 (exact_dependency_1): Likewise.
10745 (ix86_adjust_cost): Likewise.
10746 (swap_top_of_ready_list): Fix formatting and !reload_completed check
10747 removed.
10748 (do_reorder_for_imul): Fix typo, formatting and
10749 !reload_completed check removed.
10750 (ix86_sched_reorder): Fix typo and formatting.
10751 (fold_builtin_cpu): Move M_INTEL_SLM at the end of processor types
10752 list.
10753
3bc30db4
SN
107542013-06-03 Sofiane Naci <sofiane.naci@arm.com>
10755
10756 * config/aarch64/aarch64.md (*movdi_aarch64): Define "simd" attribute.
10757
19cc6fac
EB
107582013-06-03 Eric Botcazou <ebotcazou@adacore.com>
10759
10760 * varasm.c (output_constant) <CONSTRUCTOR>: Minor formatting tweak.
10761 <STRING_CST>: Likewise.
10762 <VECTOR_CST>: Likewise.
10763
c68a6e08
JW
107642013-06-01 Janus Weil <janus@gcc.gnu.org>
10765 Mikael Morin <mikael@gcc.gnu.org>
10766
10767 * configure.ac: Add AC_HEADER_TIOCGWINSZ macro.
10768 * config.in: Regenerated.
10769 * configure: Regenerated.
10770
38e55e5c
JH
107712013-06-01 Jan Hubicka <jh@suse.cz>
10772
10773 PR middle-end/57366
10774 * cgraphunit.c (compile): When weakref is not supported,
10775 set up transparent aliases before final output pass.
10776 * varasm.c (assemble_alias): Do not try to do it here.
10777
eb51d2ff
JH
107782013-06-01 Jan Hubicka <jh@suse.cz>
10779
10780 PR middle-end/57467
10781 * passes.c (for_per_function): Skip unanalyzed functions.
10782
40a7fe1e
JH
107832013-06-01 Jan Hubicka <jh@suse.cz>
10784
10785 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Rename to ...
10786 (lto_symtab_merge_symbols_1): ... this one.
10787 (lto_symtab_merge_cgraph_nodes): Rename to ...
10788 (lto_symtab_merge_symbols): ... this one; simplify.
10789 * cgraph.c (same_body_aliases_done): Rename to ...
10790 (cpp_implicit_aliases_done): ... this one.
10791 (cgraph_create_function_alias): Update.
10792 (cgraph_same_body_alias): Update.
c1e183a9 10793 (dump_cgraph_node): Remove alias dumping; simplify thunk dumping.
40a7fe1e 10794 (verify_edge_corresponds_to_fndecl): Simplify.
c1e183a9 10795 * cgraph.h (symtab_node_base): Add cpp_implicit_alias, alias_target.
40a7fe1e
JH
10796 (cgraph_node): Remove same_body_alias.
10797 (varpool_node): Remove alias_of and extra_name_alias.
10798 (same_body_aliases_done): Rename to ..
10799 (cpp_implicit_aliases_done): ... this one.
10800 (symtab_alias_ultimate_target): Add default parameter.
10801 (symtab_resolve_alias): New function.
10802 (fixup_same_cpp_alias_visibility): Declare.
10803 (cgraph_function_node): Add default parameter.
10804 (cgraph_node_asm_name): Likewise.
10805 (cgraph_function_or_thunk_node): Add default parameter; do
10806 not ICE when it is NULL.
10807 (varpool_variable_node): Likewise.
10808 * tree-emutls.c (create_emultls_var): Update.
10809 (ipa_lower_emutls): Update.
10810 * cgraphunit.c (cgraph_decide_is_function_needed): Update.
10811 (cgraph_reset_node): Reset alias info.
10812 (cgraph_finalize_function): Update.
10813 (fixup_same_cpp_alias_visibility): Move to symtab.c.
10814 (analyze_function): Simplify.
10815 (cgraph_process_same_body_aliases): Simplify.
10816 (analyze_functions): Fixup same body aliases.
10817 (handle_alias_pairs): Simplify.
10818 (assemble_thunk): Update.
10819 (assemble_thunks_and_aliases): Update.
10820 (output_weakrefs): Rewrite.
10821 * lto-cgraph.c (lto_output_node): Rewrite alias handling.
10822 (lto_output_varpool_node): Likewise.
10823 (compute_ltrans_boundary): Remve assert.
10824 (get_alias_symbol): New functoin.
10825 (input_node): Rewrite alias handling.
10826 (input_varpool_node): Likewise.
10827 * ipa-pure-const.c (propagate_pure_const): Fix formating.
10828 * ipa.c (process_references): Handle weakrefs correctly.
10829 (symtab_remove_unreachable_nodes): Likewise.
10830 * trans-mem.c (get_cg_data): Update.
10831 (ipa_tm_create_version_alias): Update.
10832 (ipa_tm_execute): Update.
10833 * symtab.c (dump_symtab_base): Dump aliases.
10834 (verify_symtab_base): Verify aliases.
10835 (symtab_node_availability): New function.
10836 (symtab_alias_ultimate_target): Simplify.
10837 (fixup_same_cpp_alias_visibility): Move here from cgraphunit.c;
10838 handle all the fixup cases.
10839 (symtab_resolve_alias): New function.
10840 * passes.c (ipa_write_summaries): Handle weakrefs.
10841 * varpool.c (varpool_analyze_node): Simplify.
10842 (assemble_aliases): Update.
10843 (varpool_create_variable_alias): Simplify.
10844 (varpool_extra_name_alias): Simplify.
10845 * lto-streamer.h (lto_symtab_merge_cgraph_nodes): Rename to...
10846 (lto_symtab_merge_symbols): ... this one.
10847
21759881
DT
108482013-06-01 Dinar Temirbulatov <dinar@kugelworks.com>
10849
10850 Revert
10851 PR rtl-optimization/57268
10852 * sched-deps.c (sched_analyze_2): Flush dependence lists if
10853 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
10854
daf4e940
TB
108552013-06-01 Tobias Burnus <burnus@net-b.de>
10856
10857 Partially reverted:
10858 2013-05-31 Tobias Burnus <burnus@net-b.de>
10859
10860 PR middle-end/57073
10861 * tree-ssa-math-opts.c (execute_cse_sincos): Move check
10862 further up.
10863
c359d8d0
DT
108642013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
10865
10866 PR rtl-optimization/57268
10867 * sched-deps.c (sched_analyze_2): Flush dependence lists if
10868 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
10869
4172215d
EB
108702013-05-31 Eric Botcazou <ebotcazou@adacore.com>
10871
10872 * config/rs6000/predicates.md (rs6000_cbranch_operator): Accept some
10873 unordered comparison operators when -fno-trapping-math is in effect
10874 on the e500.
10875 * config/rs6000/rs6000.c (rs6000_generate_compare): Remove dead code
10876 and implement unordered comparison operators properly on the e500.
10877
a8c50132
EB
108782013-05-31 Eric Botcazou <ebotcazou@adacore.com>
10879
10880 * simplify-rtx.c (simplify_byte_swapping_operation): Use proper macro
10881 for constant scalar integers.
10882 (simplify_relational_operation_1): Likewise.
10883
44626634
SB
108842013-05-31 Segher Boessenkool <segher@kernel.crashing.org>
10885
10886 * config/rs6000/rs6000-opts.h (enum processor_type): Reorder.
10887 * config/rs6000/rs6000.md (cpu): Reorder. Split long line.
10888 Fix comment.
10889
55805e54
YR
108902013-05-31 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
10891 Igor Zamyatin <igor.zamyatin@intel.com>
10892
10893 Silvermont (SLM) architecture performance tuning.
10894 * config/i386/i386.h (enum ix86_tune_indices): Add
10895 X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS.
10896 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS): New define.
10897
10898 * config/i386/i386.c (initial_ix86_tune_features)
10899 <X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS>: Initialize.
10900 (ix86_lea_outperforms): Handle Silvermont tuning.
10901 (ix86_avoid_lea_for_add): Add new argument to ix86_lea_outperforms
10902 call.
10903 (ix86_use_lea_for_mov): Likewise.
10904 (ix86_avoid_lea_for_addr): Likewise.
10905 (ix86_lea_for_add_ok): Likewise.
10906 (exact_dependency_1): New function.
10907 (exact_store_load_dependency): Likewise.
10908 (ix86_adjust_cost): Handle Silvermont tuning.
10909 (do_reoder_for_imul): Likewise.
10910 (swap_top_of_ready_list): New function.
10911 (ix86_sched_reorder): Changed to handle Silvermont tuning.
10912
10913 * config/i386/i386.md (peepholes that split memory operand in fp
10914 converts): New.
10915
e19c9de2
MS
109162013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
10917
10918 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
10919 Remove un-necessary braces.
10920
38e6c9a6
MS
109212013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
10922
10923 * config/aarch64/aarch64.c (aarch64_classify_symbol):
10924 Use SYMBOL_TINY_ABSOLUTE for AARCH64_CMODEL_TINY_PIC.
10925
e3530904
TB
109262013-05-31 Tobias Burnus <burnus@net-b.de>
10927
10928 PR middle-end/57073
c1e183a9 10929 * tree-ssa-math-opts.c (execute_cse_sincos): Move check further up.
e3530904 10930
b6af05a9
KT
109312013-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10932
10933 PR target/56315
10934 * config/arm/arm.c (const_ok_for_dimode_op): Handle IOR.
10935 * config/arm/arm.md (*iordi3_insn): Change to insn_and_split.
10936 * config/arm/neon.md (iordi3_neon): Remove.
10937 (neon_vorr<mode>): Generate iordi3 instead of iordi3_neon.
10938 * config/arm/predicates.md (imm_for_neon_logic_operand):
10939 Move to earlier in the file.
10940 (neon_logic_op2): Likewise.
10941 (arm_iordi_operand_neon): New predicate.
10942
f800c166
RB
109432013-05-31 Richard Biener <rguenther@suse.de>
10944
10945 PR tree-optimization/57478
10946 PR tree-optimization/57453
10947 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Uses in PHI nodes
10948 are life as well.
10949
e571fa59
KP
109502013-05-31 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
10951
10952 * config/rl78/rl78.md (mulqi3,mulhi3): New define_expands.
10953 (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): New define_insns.
10954
0fa6e0ef
TB
109552013-05-30 Tobias Burnus <burnus@net-b.de>
10956 Thomas Koenig <tkoenig@gcc.gnu.org>
10957
10958 PR middle-end/57073
10959 * tree-ssa-math-opts.c (execute_cse_sincos): Optimize
10960 powi (-1.0, k) to (k & 1) ? -1.0 : 1.0.
10961
4688ddf5
SB
109622013-05-30 Steven Bosscher <steven@gcc.gnu.org>
10963
0fa6e0ef 10964 * rtlanal.c (tablejump_p): Expect table and label to be adjacent.
4688ddf5 10965
3b9ceb4b
VM
109662013-05-30 Vladimir Makarov <vmakarov@redhat.com>
10967
10968 * target.def (register_usage_leveling_p): New hook.
10969 * targhooks.c (default_register_usage_leveling_p): New.
10970 * targhooks.h (default_register_usage_leveling_p): New prototype.
10971 * lra-assigns.c (register_usage_leveling_p): Use the hook.
10972 * doc/tm.texi.in (TARGET_REGISTER_USAGE_LEVELING_P): New hook.
10973 * doc/tm.texi: Update.
10974 * config/i386/i386.c (TARGET_REGISTER_USAGE_LEVELING_P): Define.
10975
65f9e789
IB
109762013-05-30 Ian Bolton <ian.bolton@arm.com>
10977
10978 * config/aarch64/aarch64.md (insv<mode>): New define_expand.
10979 (*insv_reg<mode>): New define_insn.
10980
12211b99 109812013-05-30 Joern Rennecke <joern.rennecke@embecosm.com>
ca035367
JR
10982
10983 PR rtl-optimization/57439
10984 * postreload.c (move2add_valid_value_p): Check that we have
10985 a zero subreg_regno_offset when accessing the register in
10986 the requested mode.
10987
0b871ccf
YR
109882013-05-30 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
10989 Igor Zamyatin <igor.zamyatin@intel.com>
10990
10991 Silvermont (SLM) architecture pipeline model, tuning and
10992 insn selection.
10993 * config.gcc: Add slm config options and target.
10994
10995 * config/i386/slm.md: New.
10996
10997 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
10998
f43245d1 10999 * config/i386/i386-c.c (ix86_target_macros_internal): New case
0b871ccf
YR
11000 PROCESSOR_SLM.
11001 (ix86_target_macros_internal): Likewise.
11002
f43245d1 11003 * config/i386/i386.c (slm_cost): New cost.
0b871ccf
YR
11004 (m_SLM): New macro flag.
11005 (initial_ix86_tune_features): Set m_SLM.
11006 (x86_accumulate_outgoing_args): Likewise.
11007 (x86_arch_always_fancy_math_387): Likewise.
11008 (processor_target_table): Add slm cost.
11009 (cpu_names): Add slm cpu name.
11010 (x86_option_override_internal): Set SLM ISA.
11011 (ix86_issue_rate): New case PROCESSOR_SLM.
11012 (ia32_multipass_dfa_lookahead): Likewise.
11013 (fold_builtin_cpu): Add slm.
11014
11015 * config/i386/i386.h (TARGET_SLM): New target macro.
11016 (target_cpu_default): Add TARGET_CPU_DEFAULT_slm.
11017 (processor_type): Add PROCESSOR_SLM.
11018
11019 * config/i386/i386.md (cpu): Add new value "slm".
11020 (slm.md): Include slm.md.
11021
24d5b097
XG
110222013-05-30 Bernd Schmidt <bernds@codesourcery.com>
11023 Zhenqiang Chen <zhenqiang.chen@linaro.org>
11024
11025 * config/arm/arm-protos.h: Add and update function protos.
11026 * config/arm/arm.c (use_simple_return_p): New added.
11027 (thumb2_expand_return): Check simple_return flag.
11028 * config/arm/arm.md: Add simple_return and conditional simple_return.
11029 * config/arm/iterators.md: Add iterator for return and simple_return.
11030
c1cccc15
ZC
110312013-05-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
11032
11033 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
11034 (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
11035 (arm_emit_vfp_multi_reg_pop): Likewise.
11036 (thumb2_emit_ldrd_pop): Likewise.
11037 (arm_expand_epilogue): Add misc REG_CFA notes.
11038 (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
11039
3a4f280b
LC
110402013-05-29 Lawrence Crowl <crowl@google.com>
11041
11042 * config/arm/t-arm: Update for below.
11043
11044 * config/arm/arm.c (arm_libcall_uses_aapcs_base::libcall_htab):
11045 Change type to hash_table. Update dependent calls and types.
11046
11047 * config/i386/t-cygming: Update for below.
11048
11049 * config/i386/t-interix: Update for below.
11050
11051 * config/i386/winnt.c (i386_pe_section_type_flags::htab):
11052 Change type to hash_table. Update dependent calls and types.
11053 (i386_find_on_wrapper_list::wrappers): Likewise.
11054
11055 * config/ia64/t-ia64: Update for below.
11056
11057 * config/ia64/ia64.c (bundle_state_table):
11058 Change type to hash_table. Update dependent calls and types.
11059
11060 * config/mips/mips.c (mips_reorg_process_insns::htab):
11061 Change type to hash_table. Update dependent calls and types.
11062
11063 * config/sol2.c (solaris_comdat_htab):
11064 Change type to hash_table. Update dependent calls and types.
11065
11066 * config/t-sol2: Update for above.
11067
1388a0e3
TJ
110682013-05-29 Teresa Johnson <tejohnson@google.com>
11069
11070 * passes.c (dump_passes): Use FOR_EACH_FUNCTION since
11071 functions are not yet marked as defined.
11072
a5965b52 110732013-05-29 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
11074 Pat Haugen <pthaugen@us.ibm.com>
11075 Peter Bergner <bergner@vnet.ibm.com>
a5965b52
MM
11076
11077 * config/rs6000/vector.md (VEC_I): Add support for new power8 V2DI
11078 instructions.
11079 (VEC_A): Likewise.
11080 (VEC_C): Likewise.
11081 (vrotl<mode>3): Likewise.
11082 (vashl<mode>3): Likewise.
11083 (vlshr<mode>3): Likewise.
11084 (vashr<mode>3): Likewise.
11085
11086 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
11087 support for power8 V2DI builtins.
11088
11089 * config/rs6000/rs6000-builtin.def (abs_v2di): Add support for
11090 power8 V2DI builtins.
11091 (vupkhsw): Likewise.
11092 (vupklsw): Likewise.
11093 (vaddudm): Likewise.
11094 (vminsd): Likewise.
11095 (vmaxsd): Likewise.
11096 (vminud): Likewise.
11097 (vmaxud): Likewise.
11098 (vpkudum): Likewise.
11099 (vpksdss): Likewise.
11100 (vpkudus): Likewise.
11101 (vpksdus): Likewise.
11102 (vrld): Likewise.
11103 (vsld): Likewise.
11104 (vsrd): Likewise.
11105 (vsrad): Likewise.
11106 (vsubudm): Likewise.
11107 (vcmpequd): Likewise.
11108 (vcmpgtsd): Likewise.
11109 (vcmpgtud): Likewise.
11110 (vcmpequd_p): Likewise.
11111 (vcmpgtsd_p): Likewise.
11112 (vcmpgtud_p): Likewise.
11113 (vupkhsw): Likewise.
11114 (vupklsw): Likewise.
11115 (vaddudm): Likewise.
11116 (vmaxsd): Likewise.
11117 (vmaxud): Likewise.
11118 (vminsd): Likewise.
11119 (vminud): Likewise.
11120 (vpksdss): Likewise.
11121 (vpksdus): Likewise.
11122 (vpkudum): Likewise.
11123 (vpkudus): Likewise.
11124 (vrld): Likewise.
11125 (vsld): Likewise.
11126 (vsrad): Likewise.
11127 (vsrd): Likewise.
11128 (vsubudm): Likewise.
11129
11130 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
11131 support for power8 V2DI instructions.
11132
11133 * config/rs6000/altivec.md (UNSPEC_VPKUHUM): Add support for
11134 power8 V2DI instructions. Combine pack and unpack insns to use an
11135 iterator for each mode. Check whether a particular mode supports
11136 Altivec instructions instead of just checking TARGET_ALTIVEC.
11137 (UNSPEC_VPKUWUM): Likewise.
11138 (UNSPEC_VPKSHSS): Likewise.
11139 (UNSPEC_VPKSWSS): Likewise.
11140 (UNSPEC_VPKUHUS): Likewise.
11141 (UNSPEC_VPKSHUS): Likewise.
11142 (UNSPEC_VPKUWUS): Likewise.
11143 (UNSPEC_VPKSWUS): Likewise.
11144 (UNSPEC_VPACK_SIGN_SIGN_SAT): Likewise.
11145 (UNSPEC_VPACK_SIGN_UNS_SAT): Likewise.
11146 (UNSPEC_VPACK_UNS_UNS_SAT): Likewise.
11147 (UNSPEC_VPACK_UNS_UNS_MOD): Likewise.
11148 (UNSPEC_VUPKHSB): Likewise.
11149 (UNSPEC_VUNPACK_HI_SIGN): Likewise.
11150 (UNSPEC_VUNPACK_LO_SIGN): Likewise.
11151 (UNSPEC_VUPKHSH): Likewise.
11152 (UNSPEC_VUPKLSB): Likewise.
11153 (UNSPEC_VUPKLSH): Likewise.
11154 (VI2): Likewise.
11155 (VI_char): Likewise.
11156 (VI_scalar): Likewise.
11157 (VI_unit): Likewise.
11158 (VP): Likewise.
11159 (VP_small): Likewise.
11160 (VP_small_lc): Likewise.
11161 (VU_char): Likewise.
11162 (add<mode>3): Likewise.
11163 (altivec_vaddcuw): Likewise.
11164 (altivec_vaddu<VI_char>s): Likewise.
11165 (altivec_vadds<VI_char>s): Likewise.
11166 (sub<mode>3): Likewise.
11167 (altivec_vsubcuw): Likewise.
11168 (altivec_vsubu<VI_char>s): Likewise.
11169 (altivec_vsubs<VI_char>s): Likewise.
11170 (altivec_vavgs<VI_char>): Likewise.
11171 (altivec_vcmpbfp): Likewise.
11172 (altivec_eq<mode>): Likewise.
11173 (altivec_gt<mode>): Likewise.
11174 (altivec_gtu<mode>): Likewise.
11175 (umax<mode>3): Likewise.
11176 (smax<mode>3): Likewise.
11177 (umin<mode>3): Likewise.
11178 (smin<mode>3): Likewise.
11179 (altivec_vpkuhum): Likewise.
11180 (altivec_vpkuwum): Likewise.
11181 (altivec_vpkshss): Likewise.
11182 (altivec_vpkswss): Likewise.
11183 (altivec_vpkuhus): Likewise.
11184 (altivec_vpkshus): Likewise.
11185 (altivec_vpkuwus): Likewise.
11186 (altivec_vpkswus): Likewise.
11187 (altivec_vpks<VI_char>ss): Likewise.
11188 (altivec_vpks<VI_char>us): Likewise.
11189 (altivec_vpku<VI_char>us): Likewise.
11190 (altivec_vpku<VI_char>um): Likewise.
11191 (altivec_vrl<VI_char>): Likewise.
11192 (altivec_vsl<VI_char>): Likewise.
11193 (altivec_vsr<VI_char>): Likewise.
11194 (altivec_vsra<VI_char>): Likewise.
11195 (altivec_vsldoi_<mode>): Likewise.
11196 (altivec_vupkhsb): Likewise.
11197 (altivec_vupkhs<VU_char>): Likewise.
11198 (altivec_vupkls<VU_char>): Likewise.
11199 (altivec_vupkhsh): Likewise.
11200 (altivec_vupklsb): Likewise.
11201 (altivec_vupklsh): Likewise.
11202 (altivec_vcmpequ<VI_char>_p): Likewise.
11203 (altivec_vcmpgts<VI_char>_p): Likewise.
11204 (altivec_vcmpgtu<VI_char>_p): Likewise.
11205 (abs<mode>2): Likewise.
11206 (vec_unpacks_hi_v16qi): Likewise.
11207 (vec_unpacks_hi_v8hi): Likewise.
11208 (vec_unpacks_lo_v16qi): Likewise.
11209 (vec_unpacks_hi_<VP_small_lc>): Likewise.
11210 (vec_unpacks_lo_v8hi): Likewise.
11211 (vec_unpacks_lo_<VP_small_lc>): Likewise.
11212 (vec_pack_trunc_v8h): Likewise.
11213 (vec_pack_trunc_v4si): Likewise.
11214 (vec_pack_trunc_<mode>): Likewise.
11215
11216 * config/rs6000/altivec.h (vec_vaddudm): Add defines for power8
11217 V2DI builtins.
11218 (vec_vmaxsd): Likewise.
11219 (vec_vmaxud): Likewise.
11220 (vec_vminsd): Likewise.
11221 (vec_vminud): Likewise.
11222 (vec_vpksdss): Likewise.
11223 (vec_vpksdus): Likewise.
11224 (vec_vpkudum): Likewise.
11225 (vec_vpkudus): Likewise.
11226 (vec_vrld): Likewise.
11227 (vec_vsld): Likewise.
11228 (vec_vsrad): Likewise.
11229 (vec_vsrd): Likewise.
11230 (vec_vsubudm): Likewise.
11231 (vec_vupkhsw): Likewise.
11232 (vec_vupklsw): Likewise.
11233
e70670cf
JH
112342013-05-29 Jan Hubicka <jh@suse.cz>
11235
11236 * cgraph.h (symtab_node_base): Add definition, alias and analyzed
11237 flags; reorder rest of fields in more consistent way.
11238 (varpool_node): Remove analyzed, finalized and alias.
11239 (cgraph_ndoe): Likewise.
11240 (symtab_alias_ultimate_target): New function.
11241 (cgraph_function_node): Move offline.
11242 (cgraph_reset_node): Declare.
11243 (cgraph_comdat_can_be_unshared_p): Remove.
11244 (varpool_remove_initializer): Declare.
11245 (varpool_first_defined_variable, varpool_next_defined_variable
11246 cgraph_first_defined_function, cgraph_next_defined_function): Update.
11247 (cgraph_function_with_gimple_body_p): Update.
11248 (varpool_all_refs_explicit_p): Update.
11249 (symtab_alias_target): New function.
11250 (cgraph_alias_aliased_node, varpool_alias_aliased_node): Rename to ...
11251 (cgraph_alias_target, varpool_alias_target): .. this one; simplify.
c1e183a9
UB
11252 (cgraph_function_or_thunk_node): Simplify using
11253 symtab_alias_ultimate_target.
e70670cf
JH
11254 (varpool_variable_node): Likewise.
11255 * cgraph.c (cgraph_create_function_alias): Update.
11256 (cgraph_add_thunk): Update.
11257 (cgraph_remove_node): Update.
11258 (dump_cgraph_node): Do not dump removed flags.
11259 (cgraph_function_body_availability): Update.
11260 (cgraph_propagate_frequency): Update.
11261 (verify_cgraph_node): Check sanity of local flag.
11262 (cgraph_function_node): Move here from cgraph.h; revamp for
11263 cgraph_function_or_thunk_node.
11264 * lto-symtab.c (lto_varpool_replace_node): Update.
11265 (lto_symtab_resolve_can_prevail_p): Update.
11266 (lto_symtab_merge_cgraph_nodes): Update.
11267 * ipa-cp.c (determine_versionability, initialize_node_lattices,
11268 propagate_constants_accross_call, devirtualization_time_bonus,
11269 ipcp_propagate_stage): Update.
11270 * tree-emutls.c (create_emultls_var, ipa_lower_emutls): Update.
c1e183a9
UB
11271 * ipa-inline-transform.c (clone_inlined_nodes,
11272 preserve_function_body_p): Update.
e70670cf
JH
11273 * ipa-reference.c (propagate): Update.
11274 (write_node_summary_p): Update.
11275 * toplev.c (wrapup_global_declaration_2): Update.
11276 * cgraphunit.c (cgraph_analyze_function): Rename to ...
11277 (analyze_function) ... this one.
11278 (cgraph_process_new_functions): Update.
11279 (cgraph_reset_node): Export.
11280 (cgraph_finalize_function): Update.
11281 (cgraph_add_new_function): Update.
11282 (process_function_and_variable_attributes): Update.
11283 (varpool_finalize_decl): Update.
11284 (symbol_finalized): Remove.
11285 (symbol_finalized_and_needed): Rename to ...
11286 (symbol_defined_and_needed): ... update.
11287 (cgraph_analyze_functions): Update.
11288 (handle_alias_pairs): Update.
11289 (mark_functions_to_output): Update.
11290 (assemble_thunk): Update.
11291 (output_in_order): Update.
11292 (output_weakrefs): Update.
11293 (finalize_compilation_unit): Update.
11294 * lto-cgraph.c (reachable_from_other_partition_p, lto_output_node,
11295 lto_output_varpool_node, compute_ltrans_boundary, input_overwrite_node,
11296 input_node, input_varpool_node): Update.
11297 * dbxout.c (dbxout_expand_expr): Update.
11298 * cgraphclones.c (cgraph_clone_node): Update.
11299 (cgraph_copy_node_for_versioning): Update.
11300 (cgraph_materialize_clone): Update.
11301 (cgraph_materialize_all_clones): Update.
11302 * ipa-pure-const.c (analyze_function, pure_const_write_summary,
11303 propagate_pure_const, propagate_nothrow): Update.
11304 * lto-streamer-out.c (lto_output, write_symbol): Update.
11305 * ipa-utils.c (ipa_reverse_postorder): Update.
11306 * ipa-inline.c (can_inline_edge_p): Update.
11307 (update_caller_keys, ipa_inline): Update.
11308 * dwarf2out.c (reference_to_unused,
11309 premark_types_used_by_global_vars_helper): Update.
11310 * tree-eh.c (tree_could_trap_p): Update.
11311 * ipa-split.c (consider_split, execute_split_functions): Update.
11312 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
c1e183a9
UB
11313 has_addr_references_p): Update; move ahead in file for better
11314 readability.
e70670cf
JH
11315 (process_references): Simplify.
11316 (symtab_remove_unreachable_nodes): Update; cleanup way function/var
11317 bodies are removed.
11318 (cgraph_comdat_can_be_unshared_p): Make static.
11319 (cgraph_externally_visible_p): Update.
11320 (varpool_externally_visible_p): Update.
11321 (function_and_variable_visibility): Update.
11322 * trans-mem.c (get_cg_data, ipa_tm_mayenterirr_function,
11323 ipa_tm_mark_force_output_node): Update.
11324 * ipa-inline-analysis.c (dump_inline_summary, initialize_inline_failed,
11325 estimate_edge_devirt_benefit, inline_generate_summary,
11326 inline_write_summary): Update.
11327 * gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
11328 * ipa-prop.c (ipa_compute_jump_functions): Update.
c1e183a9
UB
11329 (ipa_print_node_params, ipa_prop_read_section,
11330 ipa_update_after_lto_read, read_replacements_section): Update.
e70670cf
JH
11331 * varasm.c (mark_decl_referenced): Update.
11332 (assemble_alias, dump_tm_clone_pairs): Update.
11333 * tree-inline.c (copy_bb): Update.
11334 (estimate_num_insns, optimize_inline_calls, tree_function_versioning):
11335 Update.
11336 * symtab.c (dump_symtab_base): Print new flags.
11337 (verify_symtab_base): Verify new flags.
11338 (symtab_alias_ultimate_target): New function.
11339 * tree-ssa-structalias.c (get_constraint_for_ssa_var,
11340 create_variable_info_for, associate_varinfo_to_alias, ipa_pta_execute):
11341 Update.
c1e183a9
UB
11342 * passes.c (ipa_write_summaries, ipa_write_optimization_summaries):
11343 Update.
e70670cf
JH
11344 * i386.c (ix86_get_function_versions_dispatcher,
11345 ix86_generate_version_dispatcher_body): Update.
11346 (fold_builtin_cpu): Use varpool_add_new_variable.
11347 * varpool.c (varpool_remove_initializer): Break out from ...
11348 (varpool_remove_node): ... this one.
11349 (dump_varpool_node, varpool_node_for_asm,
11350 cgraph_variable_initializer_availability, varpool_analyze_node,
11351 varpool_assemble_decl, varpool_remove_unreferenced_decls,
c1e183a9
UB
11352 varpool_finalize_named_section_flags, varpool_create_variable_alias):
11353 Update.
e70670cf 11354
182802ad
JH
113552013-05-29 Jan Hubicka <jh@suse.cz>
11356
11357 * passes.c (init_optimization_passes): Move OMP expansion into lowering.
11358
8190b609
ER
113592013-05-29 Easwaran Raman <eraman@google.com>
11360
11361 PR tree-optimization/57442
11362 * tree-ssa-reassoc.c (appears_later_in_bb): Return correct value
11363 when control exits the main loop.
11364
69f5aa9b
SKS
113652013-05-29 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
11366
11367 * rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add macros for RX100, RX200,
11368 and RX600.
c1e183a9 11369 * rx/rx.opt: Add macro for rx100 with string rx100 and value RX100.
69f5aa9b
SKS
11370 * rx/rx-opts.h (rx_cpu_types): Add new cpu type rx100.
11371 * rx/t-rx: Add rx100 under multi library matches option for nofpu
11372 option.
11373
4b847da9
BS
113742013-05-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11375
11376 PR tree-optimization/57441
11377 * gimple-ssa-strength-reduction.c (analyze_candidates_and_replace):
11378 Don't limit size of incr_vec to number of candidates.
11379
4fc43c39
SE
113802013-05-29 Steve Ellcey <sellcey@imgtec.com>
11381
11382 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add micromips
11383 and mips16 directories.
c1e183a9 11384 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Add micromips and mips16.
4fc43c39
SE
11385 (MULTILIB_DIRNAMES): Ditto.
11386 (MULTILIB_EXCEPTIONS): Add new exceptions.
11387 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Add micromips.
11388 (MULTILIB_DIRNAMES): Ditto.
11389 (MULTILIB_EXCEPTIONS): Add new exceptions.
11390
12211b99 113912012-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
a5350ddc
CSS
11392 Marcus Shawcroft <marcus.shawcroft@arm.com>
11393
11394 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
11395 SYMBOL_TINY_ABSOLUTE.
11396 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Handle
11397 SYMBOL_TINY_ABSOLUTE.
11398 (aarch64_expand_mov_immediate): Likewise.
11399 (aarch64_classify_symbol): Likewise.
11400 (aarch64_mov_operand_p): Remove ATTRIBUTE_UNUSED.
11401 Permit SYMBOL_TINY_ABSOLUTE.
11402 * config/aarch64/predicates.md (aarch64_mov_operand): Permit CONST.
11403
12211b99 114042013-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
17f4d4bf
CSS
11405 Marcus Shawcroft <marcus.shawcroft@arm.com>
11406
11407 * config/aarch64/aarch64.c (aarch64_classify_symbol): Remove comment.
11408 Refactor if/switch. Replace gcc_assert with if.
11409
c0186656
GG
114102013-05-29 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
11411
11412 * config/i386/i386.c (initial_ix86_tune_features): Enable
11413 FP Reassociation for AMD bdver1 and bdver2.
11414
d20188f3
MJ
114152013-05-29 Martin Jambor <mjambor@suse.cz>
11416
11417 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REF, REALPART_EXPR
11418 and IMAGPART_EXPR do not occur within other handled_components.
11419
292cba13
RB
114202013-05-29 Richard Biener <rguenther@suse.de>
11421
11422 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Guard vinfo
11423 access on whether the use is in the BB we currently try to
11424 vectorize.
11425 (vect_bb_vectorization_profitable_p): Pass the BB we currently
11426 vectorize to vect_bb_slp_scalar_cost.
11427
6eddf228
RB
114282013-05-29 Richard Biener <rguenther@suse.de>
11429
11430 * tree-vect-slp.c (vect_bb_slp_scalar_cost): New function
11431 computing scalar cost offsetted by stmts that are kept live
11432 by scalar uses.
11433 (vect_bb_vectorization_profitable_p): Use vect_bb_slp_scalar_cost
11434 for computation of scalar cost.
11435
7df36117
SE
114362013-05-28 Steve Ellcey <sellcey@mips.com>
11437
11438 * config/mips/mips-cpus.def (mips32r2): Change processor type.
11439
36536d79
BI
114402013-05-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
11441
11442 * doc/extend.texi (C Extensions): Added documentation about Cilk Plus
11443 array notation built-in reduction functions.
11444 * doc/passes.texi (Passes): Added documentation about changes done
11445 for Cilk Plus.
11446 * doc/invoke.texi (C Dialect Options): Added documentation about
11447 the -fcilkplus flag.
11448 * Makefile.in (C_COMMON_OBJS): Added c-family/array-notation-common.o.
11449 (BUILTINS_DEF): Depend on cilkplus.def.
11450 * builtins.def: Include cilkplus.def. Define DEF_CILKPLUS_BUILTIN.
11451 * builtin-types.def: Define BT_FN_INT_PTR_PTR_PTR.
11452 * cilkplus.def: New file.
11453
12211b99 114542013-05-28 Joern Rennecke <joern.rennecke@embecosm.com>
b49eefa5
JR
11455
11456 PR rtl-optimization/57439
11457 * postreload.c (move2add_use_add2_insn): Use gen_lowpart_common.
11458
9daf6dbb
ER
114592013-05-28 Easwaran Raman <eraman@google.com>
11460
11461 PR tree-optimization/57337
11462 * tree-ssa-reassoc.c (appears_later_in_bb): New function.
11463 (find_insert_point): Correctly identify the insertion point
11464 when two statements with the same UID is compared.
11465
fbd7e877
RB
114662013-05-28 Richard Biener <rguenther@suse.de>
11467
11468 PR tree-optimization/56787
11469 * tree-vect-data-refs.c (vect_analyze_data_refs): Drop clobbers
11470 from the list of data references.
11471 * tree-vect-loop.c (vect_determine_vectorization_factor): Skip
11472 clobbers.
11473 (vect_analyze_loop_operations): Likewise.
11474 (vect_transform_loop): Remove clobbers.
11475
bbba1117
MJ
114762013-05-28 Martin Jambor <mjambor@suse.cz>
11477
11478 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REFs, IMAGPART_EXPRs
11479 and REALPART_EXPRs have scalar type.
11480
bd388c2a
RB
114812013-05-28 Richard Biener <rguenther@suse.de>
11482
11483 PR tree-optimization/57411
11484 * tree-ssa-copy.c (may_propagate_copy): Cannot propagate
11485 virtual operands.
11486 * tree-ssa-dom.c (eliminate_const_or_copy): Special-case
11487 virtual operand propagation.
11488
2f56a311
EB
114892013-05-28 Eric Botcazou <ebotcazou@adacore.com>
11490
11491 * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use %g0 as
11492 destination register for bmasksi_vis.
11493 (vector_init_bshuffle): Likewise.
11494 * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
11495
5c3eacbb
EB
114962013-05-28 Eric Botcazou <ebotcazou@adacore.com>
11497
11498 * doc/invoke.texi (SPARC Options): Document -mfix-ut699.
11499 * builtins.c (expand_builtin_mathfn) <BUILT_IN_SQRT>: Try to widen the
11500 mode if the instruction isn't available in the original mode.
11501 * config/sparc/sparc.opt (mfix-ut699): New option.
11502 * config/sparc/sparc.md (muldf3_extend): Disable if -mfix-ut699.
11503 (divdf3): Turn into expander.
11504 (divdf3_nofix): New insn.
11505 (divdf3_fix): Likewise.
11506 (divsf3): Disable if -mfix-ut699.
11507 (sqrtdf2): Turn into expander.
11508 (sqrtdf2_nofix): New insn.
11509 (sqrtdf2_fix): Likewise.
11510 (sqrtsf2): Disable if -mfix-ut699.
11511
a1756c0a
RB
115122013-05-27 Richard Biener <rguenther@suse.de>
11513
11514 PR middle-end/57412
11515 * omp-low.c (expand_omp_atomic_pipeline): Use the correct latch
11516 block for the new loop.
11517
5a892248
RB
115182013-05-27 Richard Biener <rguenther@suse.de>
11519
11520 PR tree-optimization/57343
11521 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Do not
11522 use multiple_of_p if not TYPE_OVERFLOW_UNDEFINED.
11523 (number_of_iterations_cond): Do not build the folded tree.
11524
d1de852b
RB
115252013-05-27 Richard Biener <rguenther@suse.de>
11526
11527 Revert
11528 PR middle-end/57381
11529 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
11530 OEP_CONSTANT_ADDRESS_OF retained.
11531
11532 PR tree-optimization/57417
11533 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Fix test
11534 for unchanged base.
11535 (set_ssa_val_to): Compare addresses using
11536 get_addr_base_and_unit_offset.
11537
12211b99 115382013-05-27 Joern Rennecke <joern.rennecke@embecosm.com>
7894bc6b
JR
11539
11540 PR rtl-optimization/56833
11541 * postreload.c (move2add_record_mode): New function.
11542 (move2add_record_sym_value, move2add_valid_value_p): Likewise.
11543 (move2add_use_add2_insn): Use move2add_record_sym_value.
11544 (move2add_use_add3_insn): Likewise.
11545 (reload_cse_move2add): Use move2add_valid_value_p and
11546 move2add_record_mode. Invalidate call-clobbered and REG_INC
11547 affected regs by setting reg_mode to VOIDmode.
11548 (move2add_note_store): Don't pretend the inside of a SUBREG is
11549 the actual destination. Invalidate single/leading registers by
11550 setting reg_mode to VOIDmode.
11551 Use move2add_record_sym_value, move2add_valid_value_p and
11552 move2add_record_mode.
11553
b03be25f
RB
115542013-05-27 Richard Biener <rguenther@suse.de>
11555
11556 PR tree-optimization/57396
11557 * tree-affine.c (double_int_constant_multiple_p): Properly
11558 return false for val == 0 and div != 0.
11559
44e88db2
RS
115602013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
11561
11562 * config/mips/mips.h: Use #elif in preprocessor conditions.
11563
3b859704
RS
115642013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
11565
11566 PR target/53916
11567 * config/mips/constraints.md (kl): New constraint.
11568 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Delete.
11569 (divmod<mode>4_internal): Rename to divmod<mode>4. Use "kl" as the
11570 constraint for operand 0. Split after CSE for MIPS16. Emit a move
11571 from LO for MIPS16.
11572 (udivmod<mode>4_internal): Likewise udivmod<mode>4.
11573
c979d5f5
RS
115742013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
11575
11576 PR target/55777
11577 * config/mips/mips.c (mips_can_inline_p): New function.
11578 (TARGET_CAN_INLINE_P): Define.
11579
8e90de43
SB
115802013-05-25 Steven Bosscher <steven@gcc.gnu.org>
11581
11582 * sched-int.h (ds_t, dw_t): Make unsigned int.
11583 Fix documentation that describes how all the ds_t bits are used.
11584 Reserve the last bit for delayed-branch scheduling.
11585 (BITS_PER_DEP_STATUS): Move to ds_t typedef.
11586 (BITS_PER_DEP_WEAK): Fix definition and documentation.
11587 (gen_dep_weak_1): Remove prototype.
11588 * sched-deps.c (get_dep_weak_1): Make static.
11589 * target.def (speculate_insn, needs_block_p, gen_spec_check,
11590 get_insn_spec_ds, get_insn_checked_ds): Adjust hook prototypes.
11591 * doc/tm.texi: Regenerate.
11592 * config/ia64/ia64.c (ia64_needs_block_p): Update prototype.
11593
cb5cb194
SB
115942013-05-24 Steven Bosscher <steven@gcc.gnu.org>
11595
11596 PR debug/56950
11597 * haifa-sched.c (sched_extend_bb): Ignore DEBUG_INSNs.
11598
5bd93ff6
NS
115992013-05-24 Nathan Sidwell <nathan@codesourcery.com>
11600 Sandra Loosemore <sandra@codesourcery.com>
11601
11602 * config.gcc (powerpc-*): Allow native for with-cpu.
11603
2343af65
JL
116042013-05-24 Jeff Law <law@redhat.com>
11605
11606 PR tree-optimization/57124
11607 * tree-vrp.c (simplify_cond_using_ranges): Only simplify a
11608 conversion feeding a condition if the range has an overflow
11609 if -fstrict-overflow. Add warnings for when we do make the
11610 transformation.
11611
3ad695b9
DC
116122013-05-24 Dehao Chen <dehao@google.com>
11613
04960246 11614 * tree-cfg.c (locus_discrim_map): Fix the typo.
3ad695b9
DC
11615 (locus_discrim_hasher): Likewise.
11616 (locus_discrim_hasher::hash): Likewise.
11617 (locus_discrim_hasher::equal): Likewise.
11618
82338059
MJ
116192013-05-24 Martin Jambor <mjambor@suse.cz>
11620
11621 PR tree-optimization/57294
11622 * cgraph.h (ipa_record_stmt_references): Declare.
11623 * cgraphbuild.c (ipa_record_stmt_references): New function.
11624 (build_cgraph_edges): Use ipa_record_stmt_references.
11625 (rebuild_cgraph_edges): Likewise.
11626 (cgraph_rebuild_references): Likewise.
11627 * ipa-prop.c (ipa_modify_call_arguments): Discard references
11628 associated with the old statement and build references from the
11629 newly built statements.
11630 * ipa-ref.c (ipa_remove_stmt_references): New function.
11631 * ipa-ref.h (ipa_remove_stmt_references): Declare.
11632
1ccd4874
VM
116332013-05-24 Vladimir Makarov <vmakarov@redhat.com>
11634
55805e54 11635 * lra-constraints.c (emit_spill_move): Use smaller mode for
1ccd4874 11636 mem-mem moves.
55805e54 11637 (check_and_process_move): Consider mem-reg moves for secondary
1ccd4874 11638 too.
55805e54 11639 (curr_insn_transform): Don't lose insns emitted before for
1ccd4874
VM
11640 secondary memory moves.
11641 (inherit_in_ebb): Mark defined reg. Add usage only if it is not a
11642 reg set up in the current insn.
11643
25e25c73
DC
116442013-05-24 Dehao Chen <dehao@google.com>
11645
04960246 11646 * tree-cfg.c (locus_descrim_hasher::hash): Change discriminator
25e25c73
DC
11647 hash function.
11648 (locus_descrim_hasher::equal): Likewise.
04960246 11649 (build_gimple_cfg): New discriminator assignment algorithm.
25e25c73
DC
11650 (make_edges): Likewise.
11651 (next_discriminator_for_locus): Likewise.
11652 (same_line_p): Likewise.
11653 (assign_discriminators): Likewise.
11654 (make_cond_expr_edges): Likewise.
11655 (make_gimple_switch_edges): Likewise.
11656 (make_goto_expr_edges): Likewise.
11657 (make_gimple_asm_edges): Likewise.
11658
50d38551
IB
116592013-05-24 Ian Bolton <ian.bolton@arm.com>
11660
11661 * config/aarch64/aarch64.c (aarch64_print_operand): Change the
11662 X format specifier to only display bottom 16 bits.
11663 * config/aarch64/aarch64.md (insv_imm<mode>): Allow any size of
11664 immediate to match for operand 2, since it will be masked.
11665
aea0101d
RB
116662013-05-24 Richard Biener <rguenther@suse.de>
11667
11668 PR tree-optimization/57287
11669 * tree-ssa-uninit.c (compute_uninit_opnds_pos): Disregard
11670 all SSA names that occur in abnormal PHIs.
11671
634e03d3
AI
116722013-05-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
11673
11674 PR tree-ssa/57385
11675 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Check
11676 that index is not negative.
11677
b17c024f
EB
116782013-05-24 Eric Botcazou <ebotcazou@adacore.com>
11679
11680 PR rtl-optimization/55177
11681 * simplify-rtx.c (simplify_unary_operation_1) <NOT>: Deal with BSWAP.
11682 (simplify_byte_swapping_operation): New.
11683 (simplify_binary_operation_1): Call it for AND, IOR and XOR.
11684 (simplify_relational_operation_1): Deal with BSWAP.
11685
46aeac1b
RH
116862013-05-23 Richard Henderson <rth@redhat.com>
11687
11688 PR target/56742
11689 * config/i386/i386.c (ix86_seh_fixup_eh_fallthru): New.
11690 (ix86_reorg): Call it.
11691
70cc1536
UB
116922013-05-23 Uros Bizjak <ubizjak@gmail.com>
11693
11694 PR target/57379
11695 * config/alpha/alpha.md (unspec): Add UNSPEC_XFLT_COMPARE.
11696 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Construct
11697 REG_EQUAL note as UNSPEC_XFLT_COMPARE unspec.
11698
b3851501
CB
116992013-05-23 Christian Bruel <christian.bruel@st.com>
11700
11701 PR debug/57351
11702 * config/arm/arm.c (arm_dwarf_register_span): Do not use dbx number.
11703
12211b99 117042013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
4e194912
CSS
11705 Marcus Shawcroft <marcus.shawcroft@arm.com>
11706
11707 * config/aarch64/aarch64.md (*movdi_aarch64): Replace Usa with S.
11708 * config/aarch64/constraints.md (Usa): Remove.
11709 * doc/md.texi (AArch64 Usa): Remove.
11710
12211b99 117112013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
83f8c414
CSS
11712 Marcus Shawcroft <marcus.shawcroft@arm.com>
11713
11714 * config/aarch64/aarch64-protos.h (aarch64_mov_operand_p): Define.
11715 * config/aarch64/aarch64.c (aarch64_mov_operand_p): Define.
11716 * config/aarch64/predicates.md (aarch64_const_address): Remove.
11717 (aarch64_mov_operand): Use aarch64_mov_operand_p.
11718
12211b99 117192013-05-23 Vidya Praveen <vidyapraveen@arm.com>
b5574232
VP
11720
11721 * config/aarch64/aarch64-simd.md (clzv4si2): Support for CLZ
11722 instruction (AdvSIMD).
11723 * config/aarch64/aarch64-builtins.c
11724 (aarch64_builtin_vectorized_function): Handler for BUILT_IN_CLZ.
11725 * config/aarch64/aarch-simd-builtins.def: Entry for CLZ.
11726
76c36cb1 117272013-05-23 Martin Jambor <mjambor@suse.cz>
7d2fb524
MJ
11728
11729 PR middle-end/57347
11730 * tree.h (contains_bitfld_component_ref_p): Declare.
11731 * tree-sra.c (contains_bitfld_comp_ref_p): Move...
70cc1536
UB
11732 * tree.c (contains_bitfld_component_ref_p): ...here. Adjust its
11733 caller.
7d2fb524
MJ
11734 * ipa-prop.c (determine_known_aggregate_parts): Check that LHS does
11735 not access a bit-field. Assert all final offsets are byte-aligned.
11736
ce521ae6
RB
117372013-05-23 Richard Biener <rguenther@suse.de>
11738
11739 PR tree-optimization/57380
11740 * tree-ssa-phiprop.c (propagate_with_phi): Do not require at
11741 least one invariant or re-used load.
11742 * passes.c (init_optimization_passes): Move pass_phiprop before
11743 pass_forwprop.
11744
75c7257f
JG
117452013-05-23 James Greenhalgh <james.greenhalgh@arm.com>
11746
11747 * config/aarch64/aarch64-simd.md
11748 (aarch64_cm<optab>di): Add clobber of CC_REGNUM to unsplit pattern.
11749
af6d44b5
RB
117502013-05-23 Richard Biener <rguenther@suse.de>
11751
11752 PR middle-end/57381
11753 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
11754 OEP_CONSTANT_ADDRESS_OF retained.
11755
bd3647bf
JJ
117562013-05-23 Jakub Jelinek <jakub@redhat.com>
11757
11758 PR middle-end/57344
70cc1536
UB
11759 * expmed.c (store_split_bit_field): If op0 is a REG or SUBREG of a REG,
11760 don't lower unit. Handle unit not being always BITS_PER_WORD.
bd3647bf 11761
a55757ea
RB
117622013-05-23 Richard Biener <rguenther@suse.de>
11763
11764 PR rtl-optimization/57341
11765 * ira.c (validate_equiv_mem_from_store): Use anti_dependence
11766 instead of true_dependence.
11767
cfb00b41
DM
117682013-05-22 David Malcolm <dmalcolm@redhat.com>
11769
dd1c676f
DM
11770 * bb-reorder.c (branch_threshold): Make const.
11771 (exec_threshold): Ditto.
cfb00b41 11772
f62511da 117732013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
11774 Pat Haugen <pthaugen@us.ibm.com>
11775 Peter Bergner <bergner@vnet.ibm.com>
f62511da
MM
11776
11777 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Add
11778 documentation for the power8 crypto builtins.
11779
11780 * config/rs6000/t-rs6000 (MD_INCLUDES): Add crypto.md.
11781
11782 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_1): Add support
11783 macros for defining power8 builtin functions.
11784 (BU_P8V_AV_2): Likewise.
11785 (BU_P8V_AV_P): Likewise.
11786 (BU_P8V_VSX_1): Likewise.
11787 (BU_P8V_OVERLOAD_1): Likewise.
11788 (BU_P8V_OVERLOAD_2): Likewise.
11789 (BU_CRYPTO_1): Likewise.
11790 (BU_CRYPTO_2): Likewise.
11791 (BU_CRYPTO_3): Likewise.
11792 (BU_CRYPTO_OVERLOAD_1): Likewise.
11793 (BU_CRYPTO_OVERLOAD_2): Likewise.
11794 (XSCVSPDP): Fix typo, point to the correct instruction.
11795 (VCIPHER): Add power8 crypto builtins.
11796 (VCIPHERLAST): Likewise.
11797 (VNCIPHER): Likewise.
11798 (VNCIPHERLAST): Likewise.
11799 (VPMSUMB): Likewise.
11800 (VPMSUMH): Likewise.
11801 (VPMSUMW): Likewise.
11802 (VPERMXOR_V2DI): Likewise.
11803 (VPERMXOR_V4SI: Likewise.
11804 (VPERMXOR_V8HI: Likewise.
11805 (VPERMXOR_V16QI: Likewise.
11806 (VSHASIGMAW): Likewise.
11807 (VSHASIGMAD): Likewise.
11808 (VPMSUM): Likewise.
11809 (VPERMXOR): Likewise.
11810 (VSHASIGMA): Likewise.
11811
11812 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
11813 __CRYPTO__ if the crypto instructions are available.
11814 (altivec_overloaded_builtins): Add support for overloaded power8
11815 builtins.
11816
11817 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
11818 support for power8 crypto builtins.
11819 (builtin_function_type): Likewise.
11820 (altivec_init_builtins): Add support for builtins that take vector
11821 long long (V2DI) arguments.
11822
11823 * config/rs6000/crypto.md: New file, define power8 crypto
11824 instructions.
11825
118262013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
11827 Pat Haugen <pthaugen@us.ibm.com>
11828 Peter Bergner <bergner@vnet.ibm.com>
f62511da
MM
11829
11830 * doc/invoke.texi (Option Summary): Add power8 options.
11831 (RS/6000 and PowerPC Options): Likewise.
11832
11833 * doc/md.texi (PowerPC and IBM RS6000 constraints): Update to use
11834 constraints.md instead of rs6000.h. Reorder w* constraints. Add
11835 wm, wn, wr documentation.
11836
f43245d1 11837 * config/rs6000/constraints.md (wm): New constraint for VSX
f62511da
MM
11838 registers if direct move instructions are enabled.
11839 (wn): New constraint for no registers.
11840 (wq): New constraint for quad word even GPR registers.
11841 (wr): New constraint if 64-bit instructions are enabled.
11842 (wv): New constraint if power8 vector instructions are enabled.
11843 (wQ): New constraint for quad word memory locations.
11844
f43245d1 11845 * config/rs6000/predicates.md (const_0_to_15_operand): New
f62511da
MM
11846 constraint for 0..15 for crypto instructions.
11847 (gpc_reg_operand): If VSX allow registers in VSX registers as well
11848 as GPR and floating point registers.
11849 (int_reg_operand): New predicate to match only GPR registers.
11850 (base_reg_operand): New predicate to match base registers.
11851 (quad_int_reg_operand): New predicate to match even GPR registers
11852 for quad memory operations.
11853 (vsx_reg_or_cint_operand): New predicate to allow vector logical
11854 operations in both GPR and VSX registers.
11855 (quad_memory_operand): New predicate for quad memory operations.
11856 (reg_or_indexed_operand): New predicate for direct move support.
11857
f43245d1 11858 * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED):
f62511da
MM
11859 Inherit from ISA_2_4_MASKS, not ISA_2_2_MASKS.
11860 (ISA_2_7_MASKS_SERVER): New mask for ISA 2.07 (i.e. power8).
11861 (POWERPC_MASKS): Add power8 options.
11862 (power8 cpu): Use ISA_2_7_MASKS_SERVER instead of specifying the
11863 various options.
11864
f43245d1 11865 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
f62511da
MM
11866 Define _ARCH_PWR8 and __POWER8_VECTOR__ for power8.
11867
f43245d1 11868 * config/rs6000/rs6000.opt (-mvsx-timode): Add documentation.
f62511da
MM
11869 (-mpower8-fusion): New power8 options.
11870 (-mpower8-fusion-sign): Likewise.
11871 (-mpower8-vector): Likewise.
11872 (-mcrypto): Likewise.
11873 (-mdirect-move): Likewise.
11874 (-mquad-memory): Likewise.
11875
f43245d1 11876 * config/rs6000/rs6000.c (power8_cost): Initial definition for power8.
f62511da
MM
11877 (rs6000_hard_regno_mode_ok): Make PTImode only match even GPR
11878 registers.
70cc1536 11879 (rs6000_debug_reg_print): Print the base register class if -mdebug=reg.
f62511da
MM
11880 (rs6000_debug_vector_unit): Add p8_vector.
11881 (rs6000_debug_reg_global): If -mdebug=reg, print power8 constraint
11882 definitions. Also print fusion state.
11883 (rs6000_init_hard_regno_mode_ok): Set up power8 constraints.
11884 (rs6000_builtin_mask_calculate): Add power8 builtin support.
11885 (rs6000_option_override_internal): Add support for power8.
11886 (rs6000_common_init_builtins): Add debugging for skipped builtins
11887 if -mdebug=builtin.
11888 (rs6000_adjust_cost): Add power8 support.
11889 (rs6000_issue_rate): Likewise.
11890 (insn_must_be_first_in_group): Likewise.
11891 (insn_must_be_last_in_group): Likewise.
11892 (force_new_group): Likewise.
11893 (rs6000_register_move_cost): Likewise.
11894 (rs6000_opt_masks): Likewise.
11895
11896 * config/rs6000/rs6000.h (ASM_CPU_POWER8_SPEC): If we don't have a
11897 power8 capable assembler, default to power7 options.
11898 (TARGET_DIRECT_MOVE): Likewise.
11899 (TARGET_CRYPTO): Likewise.
11900 (TARGET_P8_VECTOR): Likewise.
11901 (VECTOR_UNIT_P8_VECTOR_P): Define power8 vector support.
11902 (VECTOR_UNIT_VSX_OR_P8_VECTOR_P): Likewise.
11903 (VECTOR_MEM_P8_VECTOR_P): Likewise.
11904 (VECTOR_MEM_VSX_OR_P8_VECTOR_P): Likewise.
11905 (VECTOR_MEM_ALTIVEC_OR_VSX_P): Likewise.
11906 (TARGET_XSCVDPSPN): Likewise.
11907 (TARGET_XSCVSPDPN): Likewsie.
11908 (TARGET_SYNC_HI_QI): Likewise.
11909 (TARGET_SYNC_TI): Likewise.
11910 (MASK_CRYPTO): Likewise.
11911 (MASK_DIRECT_MOVE): Likewise.
11912 (MASK_P8_FUSION): Likewise.
11913 (MASK_P8_VECTOR): Likewise.
70cc1536
UB
11914 (REG_ALLOC_ORDER): Move fr13 to be lower in priority so that the TFmode
11915 temporary used by some of the direct move instructions to get two FP
11916 temporary registers does not force creation of a stack frame.
f62511da
MM
11917 (VLOGICAL_REGNO_P): Allow vector logical operations in GPRs.
11918 (MODES_TIEABLE_P): Move the VSX tests above the Altivec tests so
11919 that any VSX registers are tieable, even if they are also an
11920 Altivec vector mode.
11921 (r6000_reg_class_enum): Add wm, wr, wv constraints.
11922 (RS6000_BTM_P8_VECTOR): Power8 builtin support.
11923 (RS6000_BTM_CRYPTO): Likewise.
11924 (RS6000_BTM_COMMON): Likewise.
11925
11926 * config/rs6000/rs6000.md (cpu attribute): Add power8.
11927 * config/rs6000/rs6000-opts.h (PROCESSOR_POWER8): Likewise.
11928 (enum rs6000_vector): Add power8 vector support.
11929
73a1a707
RR
119302013-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11931
11932 PR target/19599
11933 PR target/57340
11934 * config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
11935 (any_sibcall_could_use_r3): this and handle indirect calls.
11936 (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
11937
d28073d4
BS
119382013-05-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11939
11940 * config/rs6000/rs6000.h (MALLOC_ABI_ALIGNMENT): New #define.
11941
bee0b10c
RB
119422013-05-22 Richard Biener <rguenther@suse.de>
11943
11944 PR middle-end/57349
11945 * profile.c (branch_prob): Do not split blocks that are
11946 abnormally receiving from ECF_RETURNS_TWICE functions.
11947
98409b51
RS
119482013-05-22 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
11949
11950 * recog.c (offsettable_address_addr_space_p): Fix calculation of
11951 address mode. Move pointer mode initialization to the same place.
11952
c0602ab8
MZ
119532013-05-22 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11954
11955 * read-rtl.c (copy_rtx_for_iterators): Continue applying iterators
11956 while it has any effect.
11957
4f7a634e
ER
119582013-05-21 Easwaran Raman <eraman@google.com>
11959
11960 PR tree-optimization/57322
9daf6dbb
ER
11961 * tree-ssa-reassoc.c (build_and_add_sum): If a BB is empty, set the
11962 UID of the statement added to the BB to be 1.
4f7a634e 11963
a4ce1258
JJ
119642013-05-21 Jakub Jelinek <jakub@redhat.com>
11965
11966 PR tree-optimization/57331
70cc1536
UB
11967 * tree-vrp.c (simplify_cond_using_ranges): Don't optimize comparison
11968 of conversion from pointer type to integral type with integer.
a4ce1258 11969
1b14621a
MJ
119702013-05-21 Martin Jambor <mjambor@suse.cz>
11971
11972 PR lto/57289
11973 * ipa-prop.c (ipa_read_node_info): Process param_used and
11974 controlled_uses in the same order as when writing.
11975
e60661f0
MG
119762013-05-21 Magnus Granberg <baldrick@free.fr>
11977
11978 PR plugins/56754
ee49aa34 11979 * Makefile.in (PLUGIN_HEADERS): Add $(TARGET_H).
e60661f0 11980
4a61be9a
RB
119812013-05-21 Richard Biener <rguenther@suse.de>
11982
11983 PR tree-optimization/57318
11984 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not
11985 estimate stmts with side-effects as likely eliminated.
11986
c52da5f7
RB
119872013-05-21 Richard Biener <rguenther@suse.de>
11988
11989 PR tree-optimization/57330
11990 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Properly
11991 preserve the call stmts fntype.
11992
7ec67e2a
RB
119932013-05-21 Richard Biener <rguenther@suse.de>
11994
11995 PR tree-optimization/57303
11996 * tree-ssa-sink.c (statement_sink_location): Improve killing
11997 stmt detection and properly handle self-assignments.
11998
b112d513
CB
119992013-05-21 Christian Bruel <christian.bruel@st.com>
12000
55805e54
YR
12001 * dwarf2out.c (multiple_reg_loc_descriptor): Use dbx_reg_number for
12002 spanning registers. LEAF_REG_REMAP is supported only for contiguous
b112d513
CB
12003 registers. Set register size out of the PARALLEL loop.
12004
14c2ec26
OE
120052013-05-20 Oleg Endo <olegendo@gcc.gnu.org>
12006
12007 PR target/56547
12008 * config/sh/sh.md (fmasf4): Remove empty constraints strings.
12009 (*fmasf4, *fmasf4_media): New insns.
12010
da734fa1
RS
120112013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
12012
12013 * config/mips/mips.h (BASE_INSN_LENGTH, NOP_INSN_LENGTH): New macros.
12014 * config/mips/mips.c (mips_symbol_insns, mips_address_insns)
12015 (mips_const_insns, mips_split_const_insns, mips_load_store_insns)
12016 (mips_idiv_insns): Update the comments to say that the returned
12017 instruction counts are in units of BASE_INSN_LENGTH.
12018 (mips_adjust_insn_length): Multiply the mips_load_label_num_insns
12019 by BASE_INSN_LENGTH rather than 4. Add the jump separately,
12020 using 2 rather than 4 as the length of indirect MIPS16 and
12021 microMIPS jumps. Use NOP_INSN_LENGTH rather than 4 as the
12022 length of a NOP. Don't divide MIPS16 lengths by 2.
12023 (mips16_split_long_branches): Assume a branch is long if the
12024 length is greater than 4 rather than 8.
12025 * config/mips/mips.md (length): Give MIPS16 lengths directly,
12026 rather than multiplying them by 2. Multiply instruction counts
12027 by BASE_INSN_LENGTH rather than 4.
12028 (*jump_mips16, tls_get_tp_mips16_<mode>)
12029 (*tls_get_tp_mips16_call_<mode>): Divide lengths by 2.
12030
13719e8b
RS
120312013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
12032
12033 * config/mips/mips.md (extended_mips16): Remove branch case.
12034 (length): Remove duplicated extended_mips16 test.
12035
c3850d14
RS
120362013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
12037
12038 * config/mips/t-sde: Don't build 64-bit microMIPS multilibs.
12039
8da2e059
RS
120402013-05-18 Richard Sandiford <rdsandiford@googlemail.com>
12041
12042 * recog.h (Recog_data): Rename to...
12043 (recog_data_d): ...this.
12044 (recog_data): Update accordingly.
12045 * recog.c (recog_data): Likewise.
12046 * reload.c (save_recog_data): Likewise.
12047 * config/picochip/picochip.c (picochip_saved_recog_data): Likewise.
12048 (picochip_save_recog_data, picochip_restore_recog_data): Likewise.
12049
2df013f3
JB
120502013-05-17 Julian Brown <julian@codesourcery.com>
12051
12052 * gcse.c (compute_ld_motion_mems): If a non-simple MEM is
12053 found in a REG_EQUAL note, invalidate it.
12054
371e77e3 120552013-05-17 Easwaran Raman <eraman@google.com>
933f507d
ER
12056
12057 * tree-ssa-reassoc.c (find_insert_point): New function.
12058 (insert_stmt_after): Likewise.
12059 (get_def_stmt): Likewise.
12060 (ensure_ops_are_available): Likewise.
12061 (not_dominated_by): Likewise.
12062 (rewrite_expr_tree): Do not move statements beyond what is
12063 necessary. Remove call to swap_ops_for_binary_stmt...
12064 (reassociate_bb): ... and move it here.
12065 (build_and_add_sum): Assign UIDs for new statements.
12066 (linearize_expr): Likewise.
12067 (do_reassoc): Renumber gimple statement UIDs.
12068
e01c7cca
JH
120692013-05-17 Jan Hubicka <jh@suse.cz>
12070
12071 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Resolve cross module
12072 weakrefs.
12073 * cgraph.c (dump_cgraph_node): Do not ice on unresolved alias.
e2420687
UB
12074 * cgraphunit.c (handle_alias_pairs): Store target of unresolved
12075 weakrefs.
e01c7cca
JH
12076 (output_weakrefs): Update.
12077
c3272a92
PCC
120782013-05-17 Po-Chun Chang <pchang9@cs.wisc.edu>
12079 Martin Jambor <mjambor@suse.cz>
12080
12081 PR middle-end/57276
12082 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Break when a
12083 value that corresponds to the given aggval is found in values vector.
12084
11c2aa39
UB
120852013-05-17 Uros Bizjak <ubizjak@gmail.com>
12086
12087 * config/i386/driver-i386.c (host_detect_local_cpu): Pass mmx, 3dnow,
12088 sse, sse2, sse3, ssse3 and sse4a flags to options.
12089
abecc8c6
DM
120902013-05-17 David Malcolm <dmalcolm@redhat.com>
12091
12092 * gengtype-state.c: (s_expr_writer): New class, to handle
12093 prettifying of output layout of s-expressions.
12094 (state_writer): New class, to write out gtype.state.
12095 (state_written_type_count): Move this variable into member data of
12096 state_writer.
12097 (s_expr_writer::s_expr_writer): New code: constructor for new class
12098 (state_writer::state_writer(): ditto
12099 (s_expr_writer::write_new_line): New function
12100 (s_expr_writer::write_any_indent): ditto
12101 (s_expr_writer::begin_s_expr): ditto
12102 (s_expr_writer::end_s_expr): ditto
12103 (write_state_fileloc): convert to method of state_writer...
12104 (state_writer:: write_state_fileloc): ...and use methods of
12105 s_expr_writer to write indentation into the gtype.state output file
12106 to visually represent the hierarchical structure of the list
12107 structures
12108 (write_state_fields): ditto, renaming to...
12109 (state_writer::write_state_fields)
12110 (write_state_a_string): ditto, renaming to...
12111 (state_writer::write_state_a_string)
12112 (write_state_string_option): ditto, renaming to...
12113 (state_writer::write_state_string_option)
12114 (write_state_type_option): ditto, renaming to...
12115 (state_writer::write_state_type_option)
12116 (write_state_nested_option): ditto, renaming to...
12117 (state_writer::write_state_nested_option)
12118 (write_state_option): ditto, renaming to...
12119 (state_writer::write_state_option)
12120 (write_state_options): ditto, renaming to...
12121 (state_writer::write_state_options)
12122 (write_state_lang_bitmap): ditto, renaming to...
12123 (state_writer::write_state_lang_bitmap)
12124 (write_state_version): ditto, renaming to...
12125 (state_writer::write_state_version)
12126 (write_state_scalar_type): ditto, renaming to...
12127 (state_writer::write_state_scalar_type)
12128 (write_state_string_type): ditto, renaming to...
12129 (state_writer::write_state_string_type)
12130 (write_state_undefined_type): ditto, renaming to...
12131 (state_writer::write_state_undefined_type)
12132 (write_state_struct_union_type): ditto, renaming to...
12133 (state_writer::write_state_struct_union_type)
12134 (write_state_struct_type): ditto, renaming to...
12135 (state_writer::write_state_struct_type)
12136 (write_state_user_struct_type): ditto, renaming to...
12137 (state_writer::write_state_user_struct_type)
12138 (write_state_lang_struct_type): ditto, renaming to...
12139 (state_writer::write_state_lang_struct_type)
12140 (write_state_param_struct_type): ditto, renaming to...
12141 (state_writer::write_state_param_struct_type)
12142 (write_state_pointer_type): ditto, renaming to...
12143 (state_writer::write_state_pointer_type)
12144 (write_state_array_type): ditto, renaming to...
12145 (state_writer::write_state_array_type)
12146 (write_state_gc_used): ditto, renaming to...
12147 (state_writer::write_state_gc_used)
12148 (write_state_common_type_content): ditto, renaming to...
12149 (state_writer::write_state_common_type_content)
12150 (write_state_type): ditto, renaming to...
12151 (state_writer::write_state_type)
12152 (write_state_pair_list): ditto, renaming to...
12153 (state_writer::write_state_pair_list)
12154 (write_state_pair): ditto, renaming to...
12155 (state_writer::write_state_pair)
12156 (write_state_typedefs): ditto, renaming to...
12157 (state_writer::write_state_typedefs)
12158 (write_state_structures): ditto, renaming to...
12159 (state_writer::write_state_structures)
12160 (write_state_param_structs): ditto, renaming to...
12161 (state_writer::write_state_param_structs)
12162 (write_state_variables): ditto, renaming to...
12163 (state_writer::write_state_variables)
12164 (write_state_srcdir): ditto, renaming to...
12165 (state_writer::write_state_srcdir)
12166 (write_state_files_list): ditto, renaming to...
12167 (state_writer::write_state_files_list)
12168 (write_state_languages): ditto, renaming to...
12169 (state_writer::write_state_languages)
12170 (write_state): create a state_writer instance and use it when
12171 writing out the state file
12172
d6545f29
MS
121732013-05-17 Mike Stump <mikestump@comcast.net>
12174
816a3f73 12175 PR rtl-optimization/57304
d6545f29
MS
12176 * web.c (union_match_dups): Ensure that DF_REF_LOC exists before
12177 accessing DF_REF_REAL_LOC.
12178
38c821cf
JJ
121792013-05-17 Jakub Jelinek <jakub@redhat.com>
12180
12181 PR rtl-optimization/57281
12182 PR rtl-optimization/57300
12183 * config/i386/i386.md (extendsidi2_1 dead reg splitter): Remove.
12184 (extendsidi2_1 peephole2s): Add instead 2 new peephole2s, that undo
12185 what the other splitter did if the registers are dead.
12186
2a293391
RB
121872013-05-17 Richard Biener <rguenther@suse.de>
12188
12189 * tree-ssa-alias.c (stmt_kills_ref_p_1): Properly compare
12190 MEM_REF offsets.
12191
17042d2b
JJ
121922013-05-17 Jakub Jelinek <jakub@redhat.com>
12193
12194 * gcc.c (SANITIZER_SPEC): Reject -fsanitize=address -fsanitize=thread
12195 linking.
12196
5b115c1f
MP
121972013-05-17 Marek Polacek <polacek@redhat.com>
12198
11c2aa39
UB
12199 * tree-ssa-strlen.c (handle_char_store): Don't invalidate cached
12200 length when doing non-zero store of storing '\0' to '\0'.
5b115c1f 12201
52d84413
JJ
122022013-05-17 Jakub Jelinek <jakub@redhat.com>
12203
68119618
JJ
12204 * tree-vect-patterns.c (vect_recog_rotate_pattern): For
12205 vect_external_def oprnd1 with loop_vinfo, try to emit
12206 optional cast, negation and and stmts on the loop preheader
12207 edge instead of into the pattern def seq.
12208
52d84413
JJ
12209 PR tree-optimization/57051
12210 * fold-const.c (const_binop) <case VEC_LSHIFT_EXPR,
12211 case VEC_RSHIFT_EXPR>: Fix BYTES_BIG_ENDIAN handling.
12212
17b962bd
NC
122132013-05-16 Nick Clifton <nickc@redhat.com>
12214
12215 * config/rl78/rl78.c (rl78_attribute_table): Add naked.
12216 (rl78_is_naked_func): New function.
56aefbf7
UB
12217 (rl78_expand_prologue): Skip prologue generation for naked functions.
12218 (rl78_expand_epilogue): Skip epilogue generation for naked functions.
17b962bd
NC
12219 * doc/extend.texi (naked): Add RL78 to the list of processors
12220 that supports this attribute.
12221
b1a0f84e
JL
122222013-05-16 Jeff Law <law@redhat.com>
12223
12224 * Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H).
12225
af0e415b
UB
122262013-05-16 Uros Bizjak <ubizjak@gmail.com>
12227
12228 * config/i386/driver-i386.c (host_detect_local_cpu): Determine
12229 cache parameters using detect_caches_amd also for CYRIX,
12230 NSC and TM2 signatures.
12231
19db293a
UB
122322013-05-16 Uros Bizjak <ubizjak@gmail.com>
12233 Dzianis Kahanovich <mahatma@eu.by>
12234
12235 PR target/45359
12236 PR target/46396
12237 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
12238 VIA/Centaur processors and determine their cache parameters
12239 using detect_caches_amd.
12240
251a41b9
TJ
122412013-05-16 Teresa Johnson <tejohnson@google.com>
12242
12243 * cfgrtl.c (verify_hot_cold_block_grouping): Return err.
12244 (rtl_verify_edges): New function.
12245 (rtl_verify_bb_insns): Ditto.
12246 (rtl_verify_bb_pointers): Ditto.
12247 (rtl_verify_bb_insn_chain): Ditto.
12248 (rtl_verify_fallthru): Ditto.
12249 (rtl_verify_bb_layout): Ditto.
12250 (rtl_verify_flow_info_1): Outline checks into new functions.
12251 (rtl_verify_flow_info): Ditto.
12252
f14540b6
SE
122532013-05-16 Steve Ellcey <sellcey@imgtec.com>
12254
12255 * cfghooks.c (copy_bbs): Add update_dominance argument.
12256 * cfghooks.h (copy_bbs): Update prototype.
12257 * tree-cfg.c (gimple_duplicate_sese_region):
12258 Add update_dominance argument.
12259 * tree-flow.h (gimple_duplicate_sese_region): Update prototype.
12260 * tree-ssa-loop-ch.c (copy_loop_headers): Update
12261 gimple_duplicate_sese_region call.
12262 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg):
12263 Update copy_bbs call.
12264 * cfgloopmanip.c (duplicate_loop_to_header_edge): Ditto.
12265 * trans-mem.c (ipa_uninstrument_transaction): Ditto.
12266
7e9a3abb
JJ
122672013-05-16 Jakub Jelinek <jakub@redhat.com>
12268
12269 * tree-vectorizer.h (NUM_PATTERNS): Increment.
12270 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
12271 vect_recog_rotate_pattern.
12272 (vect_recog_rotate_pattern): New function.
12273
427b248d
JM
122742013-05-16 Jason Merrill <jason@redhat.com>
12275
12276 * Makefile.in (LLINKER): New variable.
12277 (mostlyclean): Remove link mutex.
12278 * configure.ac: Handle --enable-link-mutex.
12279 * lock-and-run.sh: New script.
12280
b871e3d2
RR
122812013-05-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12282
12283 PR target/19599
12284 * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
12285 for NULL decl.
12286
ce858126
RO
122872013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12288
12289 * reorg.c (link_cc0_insns): Wrap in #ifdef HAVE_cc0.
12290
798d3d04
GY
122912013-05-16 Greta Yorsh <Greta.Yorsh@arm.com>
12292
12293 * config/arm/arm-protos.h (gen_movmem_ldrd_strd): New declaration.
12294 * config/arm/arm.c (next_consecutive_mem): New function.
12295 (gen_movmem_ldrd_strd): Likewise.
12296 * config/arm/arm.md (movmemqi): Update condition and code.
12297 (unaligned_loaddi, unaligned_storedi): New patterns.
12298
0baddc45
RO
122992013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12300
12301 * config.gcc: Obsolete *-*-solaris2.9*.
12302 * doc/install.texi (Specific, *-*-solaris2*): Document it.
12303
aa9d5bcf
RB
123042013-05-16 Richard Biener <rguenther@suse.de>
12305
12306 * passes.c (init_optimization_passes): Move pass_parallelize_loops
12307 earlier, after GRAPHITE transforms and IV canonicalization.
12308
5a0f4dd3
JJ
123092013-05-16 Jakub Jelinek <jakub@redhat.com>
12310
12311 * omp-low.c (extract_omp_for_data): For collapsed loops,
12312 if at least one of the loops is known at compile time to
12313 iterate zero times, set count to 0.
12314 (expand_omp_regimplify_p): New function.
12315 (expand_omp_for_generic): For collapsed loops, if at least
12316 one of the loops isn't known to iterate at least once,
12317 add runtime check with setting count to 0.
12318 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
12319 For unsigned types if it isn't known at compile time that
12320 the loop will iterate at least once, add runtime check to bypass
12321 the whole loop if initial condition isn't true.
12322
e3753785
NS
123232013-05-16 Nathan Sidwell <nathan@codesourcery.com>
12324
12325 * varasm.c (default_use_anchors_for_symbol_p): Use decl_replaceable_p.
12326
43bb4dd1
MG
123272013-05-16 Marc Glisse <marc.glisse@inria.fr>
12328
12329 PR middle-end/57286
12330 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Disable some
12331 transformations to avoid an infinite loop.
12332
3571dde6
MP
123332013-05-16 Marek Polacek <polacek@redhat.com>
12334
12335 * tree-scalar-evolution.c (scev_const_prop): Add more dumps.
12336
b8b3f0ca
LE
123372013-05-15 Leif Ekblad <leif@rdos.net>
12338
12339 * config/i386/i386.c (ix86_decompose_address): Use
12340 DEFAULT_TLS_SEG_REG to access TLS segment register.
12341 * config/i386/i386.h (DEFAULT_TLS_SEG_REG): New define.
12342 * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Ditto.
12343 (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Ditto.
12344
e299a383
RS
123452013-05-15 Richard Sandiford <rdsandiford@googlemail.com>
12346
12347 PR target/57260
12348 * config/mips/mips.c (mips_function_ok_for_sibcall): Don't allow
12349 sibling calls to functions that would normally be lazily bound,
12350 unless $gp is call-clobbered.
12351
e7208ea3
UB
123522013-05-15 Uros Bizjak <ubizjak@gmail.com>
12353
19db293a 12354 * config/i386/i386.c (ix86_option_override_internal): Update
e7208ea3 12355 processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags. Add
5d280e2b
UB
12356 PTA_POPCNT to corei7 entry. Do not enable SSE prefetch on
12357 non-SSE 3dNow! targets. Enable TARGET_PRFCHW for TARGET_3DNOW targets.
e7208ea3
UB
12358 * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW instead
12359 of TARGET_3DNOW.
12360 (*prefetch_3dnow): Enable for TARGET_PRFCHW only.
12361
e7413f3d
AS
123622013-05-15 Andreas Schwab <schwab@suse.de>
12363
12364 * config/m68k/m68k.md (*rotlhi3_lowpart, *rotlqi3_lowpart): Name
12365 for rotlhi3+1 and rotlqi3+1, resp. Fix reference to non-existing
12366 third operand.
12367
ad4db775
TJ
123682013-05-15 Teresa Johnson <tejohnson@google.com>
12369
12370 * loop-unroll.c (report_unroll_peel): Check decision before
12371 emitting unroll/peel message.
12372
af205f67
TJ
123732013-05-15 Teresa Johnson <tejohnson@google.com>
12374
12375 * function.h (has_bb_partition): New rtl_data flag.
12376 (bb_reorder_complete): Ditto.
12377 * cfgcleanup.c (try_crossjump_to_edge): Check for has_bb_partition
12378 instead of flag_reorder_blocks_and_partition.
12379 * cfgrtl.c (verify_hot_cold_block_grouping): Moved from bb-reorder.c,
12380 with some enhancements.
12381 (rtl_verify_flow_info_1): Call verify_hot_cold_block_grouping.
12382 * bb-reorder.c (connect_traces): Check for has_bb_partition
12383 instead of flag_reorder_blocks_and_partition.
12384 (verify_hot_cold_block_grouping): Moved to cfgrtl.c.
12385 (reorder_basic_blocks): Set bb_reorder_complete flag, remove call to
12386 verify_hot_cold_block_grouping.
12387 (partition_hot_cold_basic_blocks): Set has_bb_partition.
12388
9adcfa3c
RR
123892013-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12390
12391 PR target/19599
12392 * config/arm/predicates.md (call_insn_operand): New predicate.
12393 * config/arm/constraints.md ("Cs", "Ss"): New constraints.
12394 * config/arm/arm.md (*call_insn, *call_value_insn): Match only
12395 if insn is not a tail call.
12396 (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
12397 registers.
12398 * config/arm/arm.h (enum reg_class): New caller save register class.
12399 (REG_CLASS_NAMES): Likewise.
12400 (REG_CLASS_CONTENTS): Likewise.
12401 * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
12402 without decls.
12403
ccb3ad87
RB
124042013-05-15 Richard Biener <rguenther@suse.de>
12405
12406 * tree-vect-loop.c (vect_transform_loop): Use MSG_NOTE instead
12407 of MSG_OPTIMIZED_LOCATIONS.
12408 * tree-vect-slp.c (vect_make_slp_decision): Likewise.
12409 (vect_slp_transform_bb): Indicate location in MSG_OPTIMIZED_LOCATIONS
12410 message.
12411 * tree-vectorizer.c (vectorize_loops): Use MSG_NOTE instead
12412 of MSG_OPTIMIZED_LOCATIONS.
12413 (execute_vect_slp): Likewise.
12414 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
12415 (vect_create_cond_for_alias_checks): Likewise.
12416 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise.
12417 (vect_recog_widen_mult_pattern): Likewise.
12418 (vect_recog_widen_sum_pattern): Likewise.
12419 (vect_recog_over_widening_pattern): Likewise.
12420 (vect_recog_widen_shift_pattern): Likewise.
12421 (vect_recog_vector_vector_shift_pattern): Likewise.
12422 (vect_recog_divmod_pattern): Likewise.
12423 (vect_recog_mixed_size_cond_pattern): Likewise.
12424 (vect_recog_bool_pattern): Likewise.
12425 (vect_pattern_recog_1): Likewise.
12426
48b1474e
MJ
124272013-05-15 Martin Jambor <mjambor@suse.cz>
12428
12429 * ipa-prop.c (ipa_make_edge_direct_to_target): Redirect calls to
12430 non-functions to builtin_unreachable.
12431 * ipa-inline-transform.c (inline_call): Do not assert estimates were
12432 correct when new direct edges were discovered.
12433
9de04252
MJ
124342013-05-15 Martin Jambor <mjambor@suse.cz>
12435
12436 * ipa-prop.c (ipa_print_node_jump_functions): Print symbol order in
12437 header, print symbol order instead of node uid, print more information
12438 about indirect edge targets.
12439 (ipa_make_edge_direct_to_target): Print symbol order instead of node
12440 uids.
12441 (ipa_make_edge_direct_to_target): Likewise.
12442 (remove_described_reference): Likewise.
12443 (propagate_controlled_uses): Likewise.
12444 (ipa_print_node_params): Also print symbol order.
12445 (ipcp_transform_function): Print symbol order instead of node uids.
12446 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
12447 (cgraph_get_create_real_symbol_node): Likewise.
12448 * ipa-cp.c (print_lattice): Likewise.
12449 (print_all_lattices): Likewise.
12450 (determine_versionability): Likewise.
12451 (initialize_node_lattices): Likewise.
12452 (estimate_local_effects): Likewise.
12453 (update_profiling_info): Likewise.
12454 (create_specialized_node): Likewise.
12455 (perhaps_add_new_callers): Likewise.
12456 (decide_about_value): Likewise.
12457 (decide_whether_version_node): Likewise.
12458 (identify_dead_nodes): Likewise.
12459 * ipa-inline-analysis.c (dump_inline_edge_summary): Likewise.
12460 (dump_inline_summary): Likewise.
12461 (estimate_node_size_and_time): Likewise.
12462 (inline_analyze_function): Likewise.
12463 * ipa-inline.c (report_inline_failed_reason): Likewise.
12464 (want_early_inline_function_p): Likewise.
12465 (edge_badness): Likewise.
12466 (update_edge_key): Likewise.
12467 (inline_small_functions): Likewise. Add dumping of order to two other
12468 dumps.
12469 * ipa-pure-const.c (pure_const_read_summary): Print symbol order
12470 instead of node uids.
12471 (propagate_pure_const): Likewise.
12472 (propagate_pure_const): Likewise.
12473 * ipa-utils.c (dump_cgraph_node_set): Likewise.
12474 * lto-cgraph.c (input_node): Explicitly specify we dump uid.
12475 * lto-symtab.c (lto_cgraph_replace_node): Print symbol order instead
12476 of node uids.
12477 * tree-pretty-print.c (dump_function_header): Likewise.
12478 * tree-sra.c (convert_callers_for_node): Dump in traditional format.
12479 Print symbol order instead of node uids.
12480
1dd03b91
AK
124812013-05-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12482
12483 * config/s390/s390.c (s390_register_move_cost): Don't impose the
12484 FPR<->GPR move cost penalty if ldgr/lgdr can be used.
12485
fdf6a7b9
RB
124862013-05-15 Richard Biener <rguenther@suse.de>
12487
12488 PR tree-optimization/57275
12489 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Fix
12490 return value for fail to do runtime alias checks for gather loads.
12491
2d6e4603
JH
124922013-05-15 Jan Hubicka <jh@suse.cz>
12493
12494 PR lto/57038
12495 PR lto/47375
e7208ea3
UB
12496 * lto-symtab.c (lto_symtab_symbol_p): Add external symbol;
12497 weakrefs are not external.
12498 (lto_symtab_merge_decls): Fix thinko when dealing with
12499 non-lto_symtab decls.
2d6e4603
JH
12500 (lto_symtab_merge_cgraph_nodes): Use lto_symtab_symbol_p.
12501 (lto_symtab_prevailing_decl): Get int sync with lto_symtab_symbol_p.
12502 * varpool.c (dump_varpool_node): Dump more flags.
12503
83f44b39
GG
125042013-05-15 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
12505
12506 * config/i386/i386.c (processor_alias_table): Add instruction
12507 FSGSBASE for AMD bdver3 architecture.
12508
2e55d062
JJ
125092013-05-14 Jakub Jelinek <jakub@redhat.com>
12510
12511 * tree.c (warn_deprecated_use): Print file:line using locus color.
12512 * diagnostic.c (diagnostic_report_current_module): Print file:line
12513 and file:line:column using locus color.
12514
0bfdb81e
MS
125152013-05-14 Mike Stump <mikestump@comcast.net>
12516
12517 * gdbinit.in: Add __null.
12518
a508ef22
MS
125192013-05-14 Mike Stump <mikestump@comcast.net>
12520
12521 * recog.h: Rename struct recog_data to Recog_data.
12522 * recog.c: Likewise.
12523 * reload.c (can_reload_into): Likewise.
12524 * config/picochip/picochip.c: Likewise.
12525
e7180acb
MS
125262013-05-14 Mike Stump <mikestump@comcast.net>
12527
12528 * web.c (union_match_dups): Also check DF_REF_REAL_LOC.
12529
61216c26
SB
125302013-05-14 Steven Bosscher <steven@gcc.gnu.org>
12531
fd6beed4
SB
12532 * resource.h (struct resources): Remove unch_memory member.
12533 (CLEAR_RESOURCE): Don't clear unch_memory.
12534 * resource.c (mark_referenced_resources): Don't set it.
12535 (mark_set_resources): Likewise.
12536 (mark_target_live_regs): Don't clear it.
12537 (init_resource_info): Likewise.
12538 * reorg.c (resource_conflicts_p): Don't compare it.
12539 (redundant_insn): Don't set it.
12540
61216c26
SB
12541 * rtl.h (next_label, skip_consecutive_labels, link_cc0_insns):
12542 Remove prototypes.
12543 * emit-rtl.c (next_label): Remove unused function.
12544 (skip_consecutive_labels, link_cc0_insns): Move to ...
12545 * reorg.c (skip_consecutive_labels, link_cc0_insns): ... here, the
12546 only place where these functions are used, and make them static.
12547
418d1b87
MG
125482013-05-14 Marc Glisse <marc.glisse@inria.fr>
12549
12550 * fold-const.c (fold_negate_expr): Handle vectors.
12551 (fold_truth_not_expr): Make it static.
12552 (fold_invert_truthvalue): New static function.
12553 (invert_truthvalue_loc): Handle vectors. Do not call
12554 fold_truth_not_expr directly.
12555 (fold_unary_loc) <BIT_NOT_EXPR>: Handle comparisons.
12556 <TRUTH_NOT_EXPR>: Do not cast to boolean.
12557 (fold_comparison): Handle vector constants.
12558 (fold_binary_loc) <TRUTH_XOR_EXPR>: Remove redundant code.
12559 (fold_ternary_loc) <VEC_COND_EXPR>: Adapt more COND_EXPR optimizations.
12560 * tree.h (fold_truth_not_expr): Remove declaration.
12561
fc21784d
JG
125622013-05-14 James Greenhalgh <james.greenhalgh@arm.com>
12563
12564 * config/aarch64/aarch64-simd.md
12565 (aarch64_vcond_internal<mode>): Rename to...
12566 (aarch64_vcond_internal<mode><mode>): ...This, for integer modes.
12567 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): ...This for
12568 float modes. Clarify all iterator modes.
12569 (vcond<mode><mode>): Use new name for vcond expanders.
12570 (vcond<v_cmp_result><mode>): Likewise.
12571 (vcondu<mode><mode>: Likewise.
12572 * config/aarch64/iterators.md (VDQF_COND): New.
12573
d4c52634
MG
125742013-05-14 Marc Glisse <marc.glisse@inria.fr>
12575
12576 PR bootstrap/57266
12577 * fold-const.c (fold_binary_loc) <shift>: Use an unsigned
12578 variable for the shift amount. Check that we shift by non-negative
12579 amounts.
12580
2b261262
CLT
125812013-05-14 Chung-Lin Tang <cltang@codesourcery.com>
12582
12583 PR target/42017
12584 * config/arm/arm.h (EPILOGUE_USES): Only return true
12585 for LR_REGNUM after epilogue_completed.
12586
12211b99 125872013-05-14 Joern Rennecke <joern.rennecke@embecosm.com>
6e022d7b
JR
12588
12589 * config/avr/avr.c (avr_encode_section_info): Bail out if the type
e7208ea3 12590 is error_mark_node.
6e022d7b 12591
56cf7859
RO
125922013-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12593
12594 PR target/57261
12595 * configure.ac (gcc_cv_ld_as_needed): Disable before Solaris 11
12596 and Solaris 11+/x86 with gld.
12597 * configure: Regenerate.
12598
75776c6d
JJ
125992013-05-14 Jakub Jelinek <jakub@redhat.com>
12600
12601 * expmed.c (expand_shift_1): Canonicalize rotates by
12602 constant bitsize / 2 to bitsize - 1.
7f998021 12603 * simplify-rtx.c (simplify_binary_operation_1) <case ROTATE,
75776c6d
JJ
12604 case ROTATERT>: Likewise.
12605
12606 Revert:
12607 2013-05-10 Jakub Jelinek <jakub@redhat.com>
12608
12609 * config/i386/i386.md (rotateinv): New code attr.
12610 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
12611 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
12612 roll $31, %eax, etc.
12613
df35498a
RB
126142013-05-14 Richard Biener <rguenther@suse.de>
12615
12616 PR middle-end/57235
12617 * tree-eh.c (sink_clobbers): Give up for successors with
12618 multiple predecessors and no virtual uses.
12619
cc6e7ece
EB
126202013-05-14 Eric Botcazou <ebotcazou@adacore.com>
12621
12622 * config/sparc/sp64-elf.h (CPP_SUBTARGET_SPEC): Delete.
12623 * config/sparc/openbsd64.h (CPP_SUBTARGET_SPEC): Likewise.
12624
f778dd4d
JJ
126252013-05-14 Jakub Jelinek <jakub@redhat.com>
12626
12627 PR middle-end/57251
12628 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Handle
12629 the case when both op0 and op1 have VOIDmode.
12630
bad4df9b
KP
126312013-05-14 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
12632
12633 * config/rl78/rl78.md(mulsi3_g13): Add additional 'nop' required
12634 in multiply-accumulate mode.
12635
56f3e9ac
GW
126362013-05-13 Guozhi Wei <carrot@google.com>
12637
12638 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark new decl STATIC.
12639
a3d7ab92
KT
126402013-05-13 Kai Tietz <ktietz@redhat.com>
12641
12642 PR target/56975
12643 * config/i386/cygming.h (TARGET_PECOFF): Define as true.
e7208ea3 12644 * config/i386/i386.h (TARGET_PECOFF): Define by default as false.
a3d7ab92 12645 (PIC_OFFSET_TABLE_REGNUM): Use TARGET_PECOFF.
e7208ea3 12646 * config/i386/i386.c (ix86_option_override_internal): Likewise.
a3d7ab92
KT
12647 (ix86_expand_prologue): Likewise.
12648 (ix86_expand_split_stack_prologue): Likewise.
12649 (legitimate_pic_address_disp_p): Likewise.
12650 (legitimize_pic_address): Likewise.
12651 (legitimize_tls_address): Likewise.
12652 (legitimize_pe_coff_symbol): Likewise.
12653 (output_pic_addr_const): Likewise.
12654 (construct_plt_address): Likewise.
12655 (ix86_expand_call): Likewise.
12656 (x86_output_mi_thunk): Likewise.
12657 (x86_function_profiler): Likewise.
12658
c59b7e28
SN
126592013-05-13 Sofiane Naci <sofiane.naci@arm.com>
12660
12661 * config/aarch64/aarch64-simd.md (aarch64_simd_mov<mode>): Group
12662 similar switch cases.
12663 (aarch64_simd_mov): Rename to aarch64_split_simd_mov. Update.
12664 (aarch64_simd_mov_to_<mode>low): Delete.
12665 (aarch64_simd_mov_to_<mode>high): Delete.
12666 (move_lo_quad_<mode>): Add w<-r alternative.
12667 (aarch64_simd_move_hi_quad_<mode>): Likewise.
12668 (aarch64_simd_mov_from_*): Update type attribute.
12669 * config/aarch64/aarch64.c (aarch64_split_simd_move): Refacror switch
12670 statement.
12671
5f28524a
JH
126722013-05-13 Jan Hubicka <jh@suse.cz>
12673
12674 * mode-switching.c (optimize_mode_switching): Set correct RTL profile.
12675 * config/i386/i386.c (ix86_compute_frame_layout,
e7208ea3
UB
12676 ix86_expand_epilogue, emit_i387_cw_initialization,
12677 ix86_expand_vector_move_misalign, ix86_fp_comparison_strategy,
12678 ix86_local_alignment): Fix use of size/speed predicates.
5f28524a 12679
ae6fa899
JJ
126802013-05-13 Jakub Jelinek <jakub@redhat.com>
12681
12682 PR tree-optimization/45216
12683 PR tree-optimization/57157
12684 * tree-ssa-forwprop.c (simplify_rotate): Only recognize
12685 the (-Y) & (B - 1) variant if OP is |.
12686 * expmed.c (expand_shift_1): For rotations by const0_rtx just
12687 return shifted. Use (-op1) & (prec - 1) as other_amount
12688 instead of prec - op1.
12689
4502fe8d
MJ
126902013-05-13 Martin Jambor <mjambor@suse.cz>
12691
12692 PR middle-end/42371
12693 * ipa-prop.h (IPA_UNDESCRIBED_USE): New macro.
12694 (ipa_constant_data): New type.
12695 (ipa_jump_func): Use ipa_constant_data to hold information about
12696 constant jump functions.
12697 (ipa_get_jf_constant): Adjust to jump function type changes.
12698 (ipa_get_jf_constant_rdesc): New function.
12699 (ipa_param_descriptor): New field controlled_uses.
12700 (ipa_get_controlled_uses): New function.
12701 (ipa_set_controlled_uses): Likewise.
12702 * ipa-ref.h (ipa_find_reference): Declare.
12703 * ipa-prop.c (ipa_cst_ref_desc): New type.
12704 (ipa_print_node_jump_functions_for_edge): Adjust for jump function type
12705 changes.
12706 (ipa_set_jf_constant): Likewise. Also create reference descriptions.
12707 New parameter cs. Adjust all callers.
12708 (ipa_analyze_params_uses): Detect uncontrolled and controlled uses.
12709 (remove_described_reference): New function.
12710 (jfunc_rdesc_usable): Likewise.
12711 (try_make_edge_direct_simple_call): Decrement controlled use count,
12712 attempt to remove reference if it hits zero.
12713 (combine_controlled_uses_counters): New function.
12714 (propagate_controlled_uses): Likewise.
12715 (ipa_propagate_indirect_call_infos): Call propagate_controlled_uses.
12716 (ipa_edge_duplication_hook): Duplicate reference descriptions.
12717 (ipa_print_node_params): Print described use counter.
12718 (ipa_write_jump_function): Adjust to jump function type changes.
12719 (ipa_read_jump_function): New parameter CS, pass it to
12720 ipa_set_jf_constant. Adjust caller.
12721 (ipa_write_node_info): Stream controlled use count
12722 (ipa_read_node_info): Likewise.
12723 * cgraph.c (cgraph_mark_address_taken_node): Bail out instead of
12724 asserting.
12725 * ipa-cp.c (ipcp_discover_new_direct_edges): Decrement controlled use
12726 count. Remove cloning-added reference if it reaches zero.
12727 * ipa-ref.c (ipa_find_reference): New function.
12728
0864bfc2
GG
127292013-05-13 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
12730
e7208ea3 12731 * config/i386/i386.c (processor_target_table): Modified default
0864bfc2
GG
12732 alignment values for AMD BD and BT architectures.
12733
640bfeb2
MG
127342013-05-13 Marc Glisse <marc.glisse@inria.fr>
12735
12736 * tree-vect-generic.c (uniform_vector_p): Move ...
12737 * tree.c (uniform_vector_p): ... here.
12738 * tree.h (uniform_vector_p): Declare it.
12739 * fold-const.c (fold_binary_loc) <shift>: Turn the second argument
12740 into a scalar.
12741
3a60f32b
JJ
127422013-05-13 Jakub Jelinek <jakub@redhat.com>
12743
198fe1bf
JJ
12744 PR tree-optimization/57230
12745 * tree-ssa-strlen.c (handle_char_store): Record length for
12746 array store from STRING_CST.
12747
3a60f32b
JJ
12748 PR tree-optimization/57230
12749 * tree-ssa-strlen.c (handle_char_store): Add missing integer_zerop
12750 check.
12751
566be57c
JR
127522013-05-12 Joern Rennecke <joern.rennecke@embecosm.com>
12753
12754 * config/epiphany/epiphany.c (epiphany_init): Check size of
12755 NUM_MODES_FOR_MODE_SWITCHING.
12756 (epiphany_expand_prologue):
12757 Remove CONFIG_REGNUM initial value handling code.
12758 (epiphany_optimize_mode_switching): Handle EPIPHANY_MSW_ENTITY_CONFIG.
12759 (epiphany_mode_needed, epiphany_mode_entry_exit): Likewise.
2710a27a 12760 (emit_set_fp_mode, epiphany_mode_after): Likewise.
566be57c
JR
12761 (epiphany_mode_needed) <Handle EPIPHANY_MSW_ENTITY_AND>:
12762 Don't return 1 for FP_MODE_NONE.
12763 * config/epiphany/epiphany.h (NUM_MODES_FOR_MODE_SWITCHING):
12764 Add value for EPIPHANY_MSW_ENTITY_CONFIG.
12765 (EPIPHANY_MSW_ENTITY_CONFIG, EPIPHANY_MSW_ENTITY_NUM): Define.
12766 * config/epiphany/epiphany.md (save_config): New pattern.
12767
0f2c2331
UB
127682013-05-12 Uros Bizjak <ubizjak@gmail.com>
12769
12770 * config/i386/i386.md (*zero_extendsidi2): Add *x->?r alternative.
12771
5b3f93c7
UB
127722013-05-10 Uros Bizjak <ubizjak@gmail.com>
12773
12774 * config/i386/i386.md (memory): Handle sseishft1.
12775 * config/i386/sse.md (*vec_extractv4si): Remove memory attribute.
12776 (*vec_extractv2di_1): Ditto.
12777
1f873f0e
VM
127782013-05-10 Vladimir Makarov <vmakarov@redhat.com>
12779
12780 * lra-assigns.c (find_hard_regno_for): Add 1 to the cost of call
12781 saved registers.
12782
341427fa 127832013-05-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
d7de6455
SH
12784
12785 * config/arm/t-rtems-eabi: Remove mthumb/march=armv7 multilib.
12786 Add mthumb/march=armv7-a multilib.
12787 Add mthumb/march=armv7-r multilib.
12788 Add mthumb/march=armv7-a/mfpu=neon/mfloat-abi=hard multilib.
12789
9e69bdde
RC
127902013-05-10 Ralf Corsépius <ralf.corsepius@rtems.org>
12791
12792 * config/v850/t-rtems: Add more multilibs.
12793
9ff09a22
RB
127942013-05-10 Richard Biener <rguenther@suse.de>
12795
12796 PR tree-optimization/57214
12797 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Do
12798 not propagate from SSA names that occur in abnormal PHI nodes.
12799
a5e0cd1d
MG
128002013-05-10 Marc Glisse <marc.glisse@inria.fr>
12801
12802 * stor-layout.c (element_precision): New function.
12803 * machmode.h (element_precision): Declare it.
12804 * tree.c (build_minus_one_cst): New function.
12805 (element_precision): Likewise.
12806 * tree.h (build_minus_one_cst): Declare new function.
12807 (element_precision): Likewise.
12808 * fold-const.c (operand_equal_p): Use element_precision.
12809 (fold_binary_loc): Handle vector types.
12810 * convert.c (convert_to_integer): Use element_precision.
12811 * gimple.c (iterative_hash_canonical_type): Handle complex and vectors
12812 separately.
12813
cb2558bc
RS
128142013-05-10 Richard Sandiford <rdsandiford@googlemail.com>
12815
12816 * config/mips/mips-protos.h (m16_uimm3_b, m16_simm4_1, m16_nsimm4_1)
12817 (m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4, m16_simm8_1)
12818 (m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1, m16_uimm8_4)
12819 (m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
12820 * config/mips/mips.c (m16_check_op, m16_uimm3_b, m16_simm4_1)
12821 (m16_nsimm4_1, m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4)
12822 (m16_simm8_1, m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1)
12823 (m16_uimm8_4, m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
12824 * config/mips/constraints.md (Udb8, Usb5, Usb8, Usd8, Uub8, Uuw5)
12825 (Uuw8): New constraints.
12826 (Usb4): Move into alphabetical order.
12827 * config/mips/predicates.md (db8_operand, sb5_operand, sb8_operand)
12828 (sd8_operand, ub8_operand, uw8_operand): New predicates.
12829 * config/mips/mips.md (*xor<mode>3, *xor<mode>3_mips16): Name
12830 previously unnamed patterns.
12831 (*add<mode>3_mips16, *xor<mode>3_mips16, *<optab>si3_mips16)
12832 (*ashldi3_mips16, *ashrdi3_mips16, *lshrdi3_mips16)
12833 (*slt<u>_<GPR:mode><GPR2:mode>_mips16)
12834 (*sle<u>_<GPR:mode><GPR2:mode>_mips16): Use constraints instead
12835 of set_attr_alternative/if_then_else. Use extended_mips16 instead
12836 of specific lengths.
12837
cb3b8d33
JJ
128382013-05-10 Jakub Jelinek <jakub@redhat.com>
12839
6f93c008
JJ
12840 * config/i386/i386.md (rotateinv): New code attr.
12841 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
12842 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
12843 roll $31, %eax, etc.
12844
cb3b8d33
JJ
12845 PR tree-optimization/45216
12846 PR tree-optimization/57157
12847 * tree-ssa-forwprop.c (simplify_rotate): New function.
12848 (ssa_forward_propagate_and_combine): Call it.
12849
afb119be
RB
128502013-05-10 Richard Biener <rguenther@suse.de>
12851
12852 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
12853 disable peeling when we version for aliasing.
12854 (vector_alignment_reachable_p): Honor explicit user alignment.
12855 (vect_supportable_dr_alignment): Likewise.
12856 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Use
12857 STMT_VINFO_LOOP_PHI_EVOLUTION_PART instead of recomputing it.
12858 * tree-vect-loop.c (vect_transform_loop): First apply versioning,
12859 then peeling to arrange for the cost-model check to come first.
12860
01ae4861
AM
128612013-05-10 Alan Modra <amodra@gmail.com>
12862
12863 * configure.ac (HAVE_AS_TLS): Swap powerpc64 and powerpc cases.
12864 (HAVE_LD_LARGE_TOC): Don't mention AIX in help text.
12865 * configure: Regenerate.
12866
ebc9a431
AM
128672013-05-10 Alan Modra <amodra@gmail.com>
12868
12869 PR target/55033
12870 * varasm.c (default_elf_select_section): Move !DECL_P check..
12871 (get_named_section): ..to here before calling get_section_name.
12872 Adjust assertion.
12873 (default_section_type_flags): Add DECL_P check.
12874 * config/i386/winnt.c (i386_pe_section_type_flags): Likewise.
12875 * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): Likewise.
12876
d4bca93c
JR
128772013-05-09 Joern Rennecke <joern.rennecke@embecosm.com>
12878
12879 * config/epiphany/epiphany.c (epiphany_expand_prologue):
12880 When using gen_stack_adjust_str with a register offset, add a
12881 REG_FRAME_RELATED_EXPR note.
12882
60ca9a65
UB
128832013-05-09 Uros Bizjak <ubizjak@gmail.com>
12884
12885 * config/i386/sse.md (*vec_extractv4si_0_zext): New pattern.
12886 (*vec_extractv4si_zext_mem): Ditto.
12887 (*vec_extractv2di): Add 0->x and x->x alternatives.
12888 * config/i386/mmx.md (*vec_extractv2si_zext_mem): New pattern.
12889 * config/i386/i386.md (*zero_extendsidi2): Add *Yj->?r alternative.
12890
a3409c02
JM
128912013-05-09 Jason Merrill <jason@redhat.com>
12892
0138d6b2
JM
12893 N3639 C++1y VLA support
12894 * gimplify.c (gimplify_vla_decl): Don't touch an existing
12895 DECL_VALUE_EXPR.
12896
a3409c02
JM
12897 * tree.c (build_constructor_va): New.
12898 * tree.h: Declare it.
12899
66e6b990
MJ
129002013-05-09 Martin Jambor <mjambor@suse.cz>
12901
12902 PR lto/57084
12903 * gimple-fold.c (canonicalize_constructor_val): Call
12904 cgraph_get_create_real_symbol_node instead of cgraph_get_create_node.
12905
64cfa6c0
JH
129062013-05-09 Jan Hubicka <jh@suse.cz>
12907 Richard Biener <rguenther@suse.de>
12908
12909 PR lto/54095
12910 * symtab.c (symtab_make_decl_local): Do not add private names.
12911
c3167b00
JH
129122013-05-09 Jan Hubicka <jh@suse.cz>
12913
12914 PR lto/54095
12915 * symtab.c (insert_to_assembler_name_hash): Handle clones.
12916 (unlink_from_assembler_name_hash): Likewise.
12917 (symtab_prevail_in_asm_name_hash, symtab_register_node,
12918 symtab_unregister_node, symtab_initialize_asm_name_hash,
12919 change_decl_assembler_name): Update.
12920
12dc6974
SN
129212013-05-09 Sofiane Naci <sofiane.naci@arm.com>
12922
12923 * config/aarch64/aarch64.md: New movtf split.
12924 (*movtf_aarch64): Update.
12925 (aarch64_movdi_tilow): Handle TF modes and rename to
12926 aarch64_movdi_<mode>low.
12927 (aarch64_movdi_tihigh): Handle TF modes and rename to
12928 aarch64_movdi_<mode>high
12929 (aarch64_movtihigh_di): Handle TF modes and rename to
12930 aarch64_mov<mode>high_di
12931 (aarch64_movtilow_di): Handle TF modes and rename to
12932 aarch64_mov<mode>low_di
12933 (aarch64_movtilow_tilow): Remove spurious whitespace.
12934 * config/aarch64/aarch64.c (aarch64_split_128bit_move): Handle TFmode
12935 splits.
12936 (aarch64_print_operand): Update.
12937
227eb343
AM
129382013-05-09 Alan Modra <amodra@gmail.com>
12939
12940 * configure.ac (HAVE_AS_TLS): Enable tests for powerpcle and
12941 powerpc64le.
12942 * configure: Regenerate.
12943
0b013847
UB
129442013-05-08 Uros Bizjak <ubizjak@gmail.com>
12945
12946 * config/i386/mmx.md (*vec_extract* splitters): Simplify post-reload
12947 splitter preparation statements.
12948 * config/i386/sse.md (*vec_extract* splitters): Ditto.
12949 (*avx_vperm_broadcast_<mode>): Use adjust_address instead of
12950 adjust_address_nv.
12951
1dc3d6e9
BS
129522013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12953
12954 * gimple-ssa-strength-reduction.c (count_candidates): Change
12955 return value to int.
12956 (analyze_candidates_and_replace): Change type of length to int.
12957
e61e7d28
UB
129582013-05-08 Uros Bizjak <ubizjak@gmail.com>
12959
12960 * config/i386/sse.md (PEXTR_MODE, PEXTR_MODEx): Remove.
12961 (*vec_extract<mode>): Use VI12_128 mode iterator.
12962 (*vec_extract<mode>_mem): Ditto.
12963 (*vec_extract*_mem splitters): Merge splitters using VI_128 mode
12964 attribute.
12965
4fbfcf44
DN
129662013-05-08 Diego Novillo <dnovillo@google.com>
12967
12968 PR bootstrap/54659
12969
12970 Revert:
4fbfcf44
DN
12971 2012-08-17 Diego Novillo <dnovillo@google.com>
12972
e61e7d28
UB
12973 PR bootstrap/54281
12974 * configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
12975 * config.in: Regenerate.
12976 * configure: Regenerate.
12977 * intl.h: Always include libintl.h if HAVE_LIBINTL_H is set.
4fbfcf44 12978
702d8703
JH
129792013-05-08 Jan Hubicka <jh@suse.cz>
12980
12981 PR lto/54095
12982 * cgraph.c (cgraph_make_node_local_1): Se unique_name.
12983 * cgraph.h (symtab_node_base): Add unique_name.
12984 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
12985 input_overwrite_node, input_varpool_node): Stream unique_name.
12986 * cgraphclones.c (cgraph_create_virtual_clone,
12987 cgraph_function_versioning): Set unique_name.
12988 * ipa.c (function_and_variable_visibility): Set unique_name.
12989
8b28cf47
BS
129902013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12991
12992 * gimple-ssa-strength-reduction.c (find_phi_def): Revert former "fix."
12993 (alloc_cand_and_find_basis): Restrict conditional candidate
12994 processing to CAND_MULTs.
12995
e86074fd
JH
129962013-05-08 Jan Hubicka <jh@suse.cz>
12997
12998 PR lto/54095
12999 lto-symtab.c (lto_symtab_symbol_p): New function.
13000 (lto_symtab_resolve_can_prevail_p, lto_symtab_resolve_symbols,
13001 lto_symtab_resolve_symbols, lto_symtab_merge_decls_2,
13002 lto_symtab_merge_decls_1, lto_symtab_merge_cgraph_nodes_1):
13003 Skip static symbols.
13004
44398cbe
PC
130052013-05-08 Paolo Carlini <paolo.carlini@oracle.com>
13006
13007 PR tree-optimization/57200
13008 * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
13009 Only call inform if the preceding warning_at returns true.
13010
f6bc1c4a
HS
130112013-05-07 Han Shen <shenhan@google.com>
13012
13013 * cfgexpand.c (record_or_union_type_has_array_p): New function.
13014 (expand_used_vars): Add logic handling '-fstack-protector-strong'.
13015 * common.opt (fstack-protector-strong): New option.
13016 * doc/cpp.texi (__SSP_STRONG__): New builtin "__SSP_STRONG__".
13017 * doc/invoke.texi (Optimization Options): Document
13018 "-fstack-protector-strong".
13019 * gcc.c (LINK_SSP_SPEC): Add 'fstack-protector-strong'.
13020
4ffecb1f
SB
130212013-05-06 Steven Bosscher <steven@gcc.gnu.org>
13022
13023 * config/mips/mips.c (mips_machine_reorg2): Return 0.
13024
5a107a0f
VM
130252013-05-07 Vladimir Makarov <vmakarov@redhat.com>
13026
13027 * ira.c (update_equiv_regs): Add insn having equiv memory even if
13028 it is not lhs of the insn.
13029 (setup_reg_equiv): Remove insn having equiv memory which it is not
13030 lhs of the insn.
13031 * lra-constraints.c (process_address): Try to improve generation
13032 code for address base + disp.
13033 (lra_constraints): Make correct the code for checking insn setting
13034 up backward equivalence. Remove insn only if it is in the init
13035 insn list.
13036 * lra-eliminations.c (update_reg_eliminate): Change return value.
13037 (lra_eliminate): Use the result.
13038
3f5783ea
UB
130392013-05-07 Uros Bizjak <ubizjak@gmail.com>
13040
13041 * config/i386/sse.md (ssescalarnummask): New mode attribute.
13042 (PEXTR_MODE, PEXTR_MODEx): New mode iterators.
13043 (*vec_extract<mode>): Merge from *sse4_1_pextrb_memory and
13044 *sse4_1_pextrw_memory using PEXTR_MODE mode iterator. Handle
13045 register target operands.
13046 (*vec_extractv8hi_sse2): New pattern.
13047 (*vec_extractv16qi_zext): Rename from *sse4_1_pextrb_<mode>.
13048 (*vec_extractv8hi_zext): Rename from *sse2_pextrw_<mode>.
13049 (*vec_extract<mode>_mem): New insn and split pattern.
13050
8a5800b8
CL
130512013-05-07 Christophe Lyon <christophe.lyon@linaro.org>
13052
13053 * config/arm/arm.c (arm_asan_shadow_offset): New function.
13054 (TARGET_ASAN_SHADOW_OFFSET): Define.
13055 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Define.
13056 (LINUX_OR_ANDROID_CC): Add ASAN_CC1_SPEC.
13057
7bf55a70
BS
130582013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13059
13060 * gimple-ssa-strength-reduction.c (MAX_INCR_VEC_LEN): New constant.
13061 (incr_vec_index): Return -1 if increment not found.
13062 (create_add_on_incoming_edge): Assert if increment not found.
13063 (record_increment): Limit number of increments recorded.
13064 (all_phi_incrs_profitable): Return false if an increment not found.
13065 (replace_profitable_candidates): Don't process increments that were
13066 not recorded.
13067 (analyze_candidates_and_replace): Limit size of incr_vec.
13068
3f8825c0
RB
130692013-05-07 Richard Biener <rguenther@suse.de>
13070
13071 * calls.c (special_function_p): setjmp-like functions are leaf.
13072 * builtins.def (BUILT_IN_SETJMP): setjmp is leaf.
13073 * tree-inline.c (update_ssa_across_abnormal_edges): Remove assert.
13074
fd4842cd
SN
130752013-05-07 Sofiane Naci <sofiane.naci@arm.com>
13076
13077 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): call splitter.
13078 (aarch64_simd_mov<mode>): New expander.
13079 (aarch64_simd_mov_to_<mode>low): New instruction pattern.
13080 (aarch64_simd_mov_to_<mode>high): Likewise.
13081 (aarch64_simd_mov_from_<mode>low): Likewise.
13082 (aarch64_simd_mov_from_<mode>high): Likewise.
13083 (aarch64_dup_lane<mode>): Update.
13084 (aarch64_dup_lanedi): New instruction pattern.
13085 * config/aarch64/aarch64-protos.h (aarch64_split_simd_move): New prototype.
13086 * config/aarch64/aarch64.c (aarch64_split_simd_move): New function.
13087
a7a7d10e
BS
130882013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13089
13090 * gimple-ssa-strength-reduction.c (lazy_create_slsr_reg): Remove.
13091 (replace_mult_candidate): Remove unnecessary argument; remove
13092 unnecessary parameter from call to introduce_cast_before_cand.
13093 (replace_unconditional_candidate): Remove unnecessary parameter
13094 from call to replace_mult_candidate.
13095 (replace_conditional_candidate): Likewise.
13096 (insert_initializers): Use make_temp_ssa_name.
13097 (introduce_cast_before_cand): Remove unnecessary argument; use
13098 make_temp_ssa_name.
13099 (replace_one_candidate): Remove unnecessary argument; remove
13100 unnecessary parameter from calls to introduce_cast_before_cand.
13101 (replace_profitable_candidates): Remove unnecessary parameters
13102 from calls to replace_one_candidate.
13103
29105868
BS
131042013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13105
13106 * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
13107 phi def as possibly hiding a basis for a CAND_ADD whose operands
13108 have been commuted in the analysis.
13109 (alloc_cand_and_find_basis): Add parms to call to find_phi_def.
13110
4095f9fa
N
131112013-05-07 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
13112
13113 * config/aarch64/aarch64.md
13114 (cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Restrict the
13115 shift value between 0-4.
13116
39e843e8
RB
131172013-05-07 Richard Biener <rguenther@suse.de>
13118
13119 * double-int.h (rshift): New overload.
13120 * double-int.c (rshift): New function.
13121 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Optimize.
13122 (create_reference_ops_from_ref): Remove.
13123 (vn_reference_insert): Use shared ops for constructing the
13124 reference and copy it.
13125
0a1a83cb
RB
131262013-05-07 Richard Biener <rguenther@suse.de>
13127
13128 PR middle-end/57190
13129 * tree-eh.c (sink_clobbers): Properly propagate
13130 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
13131
43303d6f
JJ
131322013-05-07 Jakub Jelinek <jakub@redhat.com>
13133
ba7e83f8
JJ
13134 PR tree-optimization/57149
13135 * tree-ssa-uninit.c (uninit_undefined_value_p): New inline.
13136 (can_skip_redundant_opnd, compute_uninit_opnds_pos,
13137 collect_phi_def_edges, execute_late_warn_uninitialized): Use
13138 uninit_undefined_value_p instead of ssa_undefined_value_p.
13139
43303d6f
JJ
13140 PR debug/57184
13141 * expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR
13142 for modifier == EXPAND_INITIALIZER.
13143
14523c25
AB
131442013-05-07 Anton Blanchard <anton@samba.org>
13145
13146 * configure.ac (HAVE_LD_LARGE_TOC): Use correct linker emulation
13147 for powerpc64 little endian.
13148 * configure: Regenerate.
13149
cb7c8be9
GS
131502013-05-06 Graham Stott <grahams@btinternet.com>
13151
13152 * expmed.c (init_expmed_rtl): Remove unused fields reg_fld, plus_fld,
13153 mult_fld, sdiv_fld1, udiv_fld1, sdiv_32_fld1, smod_32_fld1,
13154 wide_mult_fld1, wide_lshr_fld1, shift_fld1, shift_mult_fld1,
13155 shift_add_fld1, shift_sub0_fld1, shift_sub1_fld1.
13156
131572013-05-06 Graham Stott <grahams@btinternet.com>
a8fd4225
GS
13158
13159 * gensupport.c (add_predicate_code): Also exclude SCRATCH from rtx
13160 codes which allow non-lvalues.
13161
9a0ee7b0
MG
131622013-05-06 Marc Glisse <marc.glisse@inria.fr>
13163
13164 * tree.c (integer_all_onesp) <COMPLEX_CST>: Test that both
13165 components are all 1s.
13166 (integer_minus_onep): New function.
13167 * tree.h (integer_minus_onep): Declare it.
13168 * fold-const.c (fold_binary_loc) <MULT_EXPR>: Test
13169 integer_minus_onep instead of integer_all_onesp.
13170
f2c17ea9
OE
131712013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
13172
13173 PR target/52933
13174 * config/sh/sh.md (*cmp_div0s_0, *cmp_div0s_1, *movsicc_div0s): Add
13175 variations of these patterns.
13176
f75e6a51
UB
131772013-05-06 Uros Bizjak <ubizjak@gmail.com>
13178
13179 * config/i386/i386.md (isa): Add x64_sse4 member.
13180 (enabled): Handle x64_sse4.
13181 (*movdi_internal): Add *x->?r alternative to emit pextrq $0,%xmm,%reg
13182 instruction for 64bit SSE4_1 targets. Update insn attributes.
13183 (*movsi_internal): Add *x->?r alternative to emit pextrd $0,%xmm,%reg
13184 instruction for SSE4_1 targets. Update insn attributes.
13185 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
13186 with *sse4_1_pextrd and *sse4_1_pextrq having const_0 selector.
13187 (*vec_extractv2di_1): Merge with *sse4_1_pextrq having
13188 const_1 selector.
13189 (*vec_extractv4si): Rename from *sse4_1_pextrd.
13190 (*vec_extractv4si_zext): Rename from *sse4_1_pextrd_zext.
13191 (*vec_extract<ssevecmodelower>_0 splitters): Merge splitters together.
13192
a986d468
OE
131932013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
13194
13195 PR target/57108
13196 * config/sh/sh.md (tstsi_t_zero_extract_eq): Use QIHISIDI mode iterator.
13197
382522cb
MK
131982013-05-06 Maxim Kuznetsov <maks.kuznetsov@gmail.com>
13199
13200 * final.c (do_assembler_dialects): Don't handle curly braces and
13201 vertical bar escaped by % as dialect delimiters.
13202 (output_asm_insn): Print curly braces and vertical bar if escaped
13203 by % and ASSEMBLER_DIALECT defined.
13204 * doc/tm.texi.in (ASSEMBLER_DIALECT): Document new standard escapes.
13205 * doc/tm.texi: Regenerated.
13206
fb0d5c60
SB
132072013-05-06 Steven Bosscher <steven@gcc.gnu.org>
13208
fb0d5c60
SB
13209 * config/mips/mips.c: Include tree-pass.h.
13210 (mips_reorg): Split in pre- and post-dbr_schedule parts.
13211 (mips_machine_reorg2): Move mips_reorg post-dbr_schedule parts here.
13212 (pass_mips_machine_reorg2): New machine specific pass.
13213 (insert_pass_mips_machine_reorg2): New pass plugin definition.
13214 (mips_option_override): Register the new pass.
13215 * rtl.h (cleanup_barriers): Remove prototype.
13216 (dbr_schedule): Likewise.
13217 * jump.c (cleanup_barriers): Make static.
13218 * reorg.c (dbr_schedule): Likewise.
13219
aa06a978
RB
132202013-05-06 Richard Biener <rguenther@suse.de>
13221
13222 PR tree-optimization/57185
13223 * tree-parloops.c (add_field_for_reduction): Handle anonymous
13224 SSA names properly.
13225
0b953bec
UB
132262013-05-06 Uros Bizjak <ubizjak@gmail.com>
13227
13228 PR target/57106
13229 * config/i386/i386.c (add_parameter_dependencies): Add dependence
13230 between "first_arg" and "insn", not "last" and "insn".
13231
28708525
WS
132322013-05-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13233
13234 * gimple-ssa-strength-reduction.c (slsr_process_phi): Re-enable.
13235 (find_candidates_in_block): Re-enable slsr_process_phi.
13236 (create_phi_basis): Fix double counting of candidate adjustment.
13237
0107dca2
RB
132382013-05-06 Richard Biener <rguenther@suse.de>
13239
13240 PR middle-end/57147
13241 * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): If
13242 the edge is also fallthru, preserve it and just clear the
13243 abnormal flag.
13244 * tree-cfgcleanup.c (remove_fallthru_edge): If the edge is
13245 also complex, preserve that and just clear the fallthru flag.
13246 * tree-inline.c (update_ssa_across_abnormal_edges): Also
13247 update virtual operands.
13248
470d4d13
AM
132492013-05-06 Alan Modra <amodra@gmail.com>
13250
13251 * config/rs6000/linux.h (DEFAULT_ASM_ENDIAN): Define.
13252 (LINK_OS_LINUX_EMUL): Use ENDIAN_SELECT.
13253 * config/rs6000/linux64.h (DEFAULT_ASM_ENDIAN): Define.
13254 * config/rs6000/sysv4le.h (DEFAULT_ASM_ENDIAN): Define.
13255 (LINK_TARGET_SPEC): Use ENDIAN_SELECT.
13256 * config/rs6000/sysv4.h (DEFAULT_ASM_ENDIAN): Define as -mbig.
13257
8f1dbf8d
AM
132582013-05-06 Alan Modra <amodra@gmail.com>
13259
13260 * config/rs6000/sysv4.h (ENDIAN_SELECT): Define, extracted from
13261 (ASM_SPEC): ..here. Emit DEFAULT_ASM_ENDIAN too.
13262 (DEFAULT_ASM_ENDIAN): Define.
13263 (CC1_SPEC, LINK_TARGET_SPEC): Use ENDIAN_SELECT.
13264 * config/rs6000/linux64.h (ASM_SPEC32): Remove endian options.
13265 Update -K PIC clause from sysv4.h.
13266 (ASM_SPEC_COMMON): Use ENDIAN_SELECT.
13267 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Likewise.
13268
54890767
AM
132692013-05-06 Alan Modra <amodra@gmail.com>
13270
13271 * config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words
13272 twice for little-endian.
13273 (ashrdi3_no_power, ashrdi3): Support little-endian.
13274
2353515d
OE
132752013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
13276
13277 PR target/55303
13278 * config/sh/sh.c (sh_rtx_costs): Handle SMIN and SMAX cases.
13279 * config/sh/sh.md (*clips, uminsi3, *clipu, clipu_one): New insns and
13280 related expanders.
13281 * config/sh/iterators.md (SMIN_SMAX): New code iterator.
13282 * config/sh/predicates.md (arith_reg_or_0_or_1_operand,
13283 clips_min_const_int, clips_max_const_int, clipu_max_const_int):
13284 New predicates.
13285
33e67557
SB
132862013-05-05 Steven Bosscher <steven@gcc.gnu.org>
13287 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13288
13289 * config.gcc (hppa*-*-*): Remove MASK_BIG_SWITCH from CPU default.
13290 * config/pa/pa.opt: Make mbig-switch a no-op.
13291 * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_BIG_SWITCH.
13292 (CASE_VECTOR_MODE): Always return SImode.
13293 (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove code
13294 for the !TARGET_BIG_SWITCH case.
13295 * config/pa/pa-linux.h: Likewise.
13296 * config/pa/pa-openbsd.h: Likewise.
13297 * config/pa/pa-hpux.h: Define TARGET_DEFAULT to 0.
13298 * config/pa/pa.md (short_jump): Remove define_insn.
13299 (casesi): Remove code for the !TARGET_BIG_SWITCH case.
13300 (casesi0): Remove define_insn.
13301 (type): Remove btable_branch.
13302 (pa_combine_type): Likewise.
13303 (in_nullified_branch_delay): Likewise.
13304 (in_call_delay): Likewise.
13305 (define_delay): Likewise.
13306 (define_insn_reservation "Z3"): Likewise.
13307 (define_insn_reservation "Z4"): Likewise.
13308 * config/pa/pa.c (pa_reorg): Remove code for !TARGET_BIG_SWITCH.
13309 (pa_adjust_insn_length): Remove adjustment for btable branches.
13310 * doc/invoke.texi (HPPA Options): Delete documentation for mbig-switch
13311 and mno-big-switch
13312
3095685e
UB
133132013-05-05 Uros Bizjak <ubizjak@gmail.com>
13314
13315 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
13316 from sse2_stored and *sse2_storeq_rex64 using SWI48 mode iterator.
13317 Add m->r,x alternatives.
13318 (*vec_extract<ssevecmodelower>_0 splitters): Merge V2DI and V4SI
13319 splitters using SWI48x mode iterator.
13320 (*vec_extract_v2di_0_sse): Rename from *sse2_storeq. Disable for
13321 TARGET_64BIT. Add m->x alternative.
13322 (*vec_extractv4si_mem): Rename from *vec_ext_v4si_mem.
13323 Add o->x alternative. Enable for TARGET_SSE.
13324 (sse_storeq): Remove expander.
13325 (*vec_extractv2di_1): Enable for TARGET_SSE. Split alternatives
13326 with memory input operand.
13327 (*vec_extractv2di_1 splitter): New.
13328 (*vec_extractv4sf_mem): Rename from *vec_extract_v4sf_mem.
13329 * config/i386/i386.md (ssevecmodelower): New mode attribute.
13330
4b36ae28
SB
133312013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
13332
13333 * config/rs6000/rs6000.c (INT_P): Reformat. Delete obsolete comment.
13334 (INT_LOWPART): Delete.
13335 (extract_MB): Adjust.
13336 (extract_ME): Adjust.
13337 (print_operand): Adjust.
13338
da226db2
SB
133392013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
13340
13341 * config/rs6000/predicates.md (reg_or_add_cint_operand,
13342 reg_or_sub_cint_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
13343 (reg_or_logical_cint_operand, easy_fp_constant,
13344 logical_const_operand): Delete "CONST_DOUBLE" case.
13345 * config/rs6000/rs6000.c (num_insns_constant_wide): Delete
13346 "HOST_BITS_PER_WIDE_INT == 64" test.
3095685e 13347 (num_insns_constant): Ditto. Delete CONST_DOUBLE DImode/VOIDmode case.
da226db2
SB
13348 (build_mask64_2_operands): Delete "HOST_BITS_PER_WIDE_INT >= 64" test.
13349 (rs6000_emit_set_const): Delete CONST_DOUBLE case.
13350 (rs6000_emit_set_long_const): Delete "HOST_BITS_PER_WIDE_INT >= 64"
13351 test.
13352 (includes_rldic_lshift_p, includes_rldicr_lshift_p): Delete
13353 CONST_DOUBLE DImode/VOIDmode case.
13354 (INT_P, INT_LOWPART): Delete CONST_DOUBLE case.
13355 (print_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case. Delete
13356 CONST_DOUBLE VOIDmode case.
13357 (output_toc): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
13358 (rs6000_rtx_costs): Delete CONST_DOUBLE DImode/VOIDmode case.
13359 * config/rs6000/rs6000.md (iordi3, xordi3, splitter for these):
13360 Delete CONST_DOUBLE case.
13361 (splitters for mov FMOVE64 const_double): Delete
13362 "HOST_BITS_PER_WIDE_INT == 32" case. Delete
13363 "HOST_BITS_PER_WIDE_INT >= 64" test.
13364 (splitter for mov DI const_int): Delete "HOST_BITS_PER_WIDE_INT == 32"
13365 case.
13366 (mov DI const_double): Delete.
13367
40de22d6
JJ
133682013-05-04 Jakub Jelinek <jakub@redhat.com>
13369
13370 * combine.c (combine_simplify_rtx) <case SUBREG>: If nonzero_bits
13371 on op shows all bits zero in mode of a lowpart subreg, return zero.
13372
5ec6aff2
MM
133732013-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
13374
13375 PR target/57150
13376 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode
13377 to save TFmode registers and DImode to save TImode registers for
13378 caller save operations.
13379 (HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to
13380 mark being partially clobbered since they only use the first
13381 double word.
13382
13383 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode
13384 and TDmode only use the upper 64-bits of each VSX register.
13385
2cefad90
BS
133862013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13387
13388 * gimple-ssa-strength-reduction.c (slsr_process_phi): Disable.
13389 (find_candidates_in_block): Disable slsr_process_phi.
13390
d6d7eee1
GW
133912013-05-03 Guozhi Wei <carrot@google.com>
13392
13393 * coverage.c (coverage_obj_init): Move the construction of gcov
3095685e
UB
13394 constructor to ...
13395 (build_init_ctor): ... here.
d6d7eee1 13396
9b92d12b
BS
133972013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13398
13399 * gimple-ssa-strength-reduction.c (cand_kind): Add CAND_PHI.
13400 (slsr_cand_d): Redefine def_phi.
13401 (stride_status, phi_adjust_status, count_phis_status): New enums.
13402 (find_phi_def): New.
13403 (find_basis_for_base_expr): New.
13404 (find_basis_for_candidate): Handle hidden bases.
13405 (alloc_cand_and_find_basis): Handle phi candidates.
13406 (slsr_process_phi): New.
13407 (create_mul_ssa_cand): Exclude phi base candidates; use integer_onep.
13408 (create_mul_imm_cand): Likewise.
13409 (create_add_ssa_cand): Exclude phi base candidates.
13410 (create_add_imm_cand): Likewise.
13411 (slsr_process_cast): Likewise.
13412 (slsr_process_copy): Likewise.
13413 (find_candidates_in_block): Handle phi candidates.
13414 (dump_candidate): Likewise.
13415 (unconditional_cands): Delete.
13416 (unconditional_cands_with_known_stride_p): Delete.
13417 (phi_dependent_cand_p): New.
13418 (cand_increment): Handle phi-dependent candidates.
13419 (replace_dependent): Delete.
13420 (replace_mult_candidate): New.
13421 (replace_unconditional_candidate): New.
13422 (incr_vec_index): Move to avoid forward reference.
13423 (create_add_on_incoming_edge): New.
13424 (create_phi_basis): New.
13425 (replace_dependents): Delete.
13426 (replace_conditional_candidate): New.
13427 (phi_add_costs): New.
13428 (replace_uncond_cands_and_profitable_phis): New.
13429 (record_increment): Handle phi adjustments.
13430 (record_phi_increments): New.
13431 (record_increments): Handle phi adjustments.
13432 (phi_incr_cost): New.
13433 (lowest_cost_path): Handle phis.
13434 (total_savings): Likewise.
13435 (analyze_increments): Likewise.
13436 (ncd_with_phi): New.
13437 (ncd_of_cand_and_phis): New.
13438 (nearest_common_dominator_for_cands): Handle phi increments.
13439 (all_phi_incrs_profitable): New.
13440 (replace_profitable_candidates): Handle phi-dependent candidates.
13441 (analyze_candidates_and_replace): Likewise.
13442
68f073d4
TJ
134432013-05-03 Teresa Johnson <tejohnson@google.com>
13444
13445 PR bootstrap/57154
13446 * sched-rgn.c (compute_dom_prob_ps): Ensure accumulated probabilities
13447 do not exceed REG_BR_PROB_BASE.
13448
a4ee7cb9
JL
134492013-05-03 Jeff Law <law@redhat.com>
13450
ade67f70 13451 PR tree-optimization/57144
a4ee7cb9
JL
13452 * tree-vrp.c (simplify_cond_using_ranges): Verify the constant
13453 operand of the condition will bit into the new type when eliminating
13454 a cast feeding a condition.
13455
47954c4e
JJ
134562013-05-03 Jakub Jelinek <jakub@redhat.com>
13457
13458 PR rtl-optimization/57130
3095685e
UB
13459 * combine.c (make_compound_operation) <case SUBREG>: Pass SET instead
13460 of COMPARE as in_code to the recursive call if needed.
47954c4e 13461
3c21604f
UB
134622013-05-03 Uros Bizjak <ubizjak@gmail.com>
13463
13464 * config/i386/i386.md (isa): Add x64_sse4_noavx and x64_avx members.
13465 (enabled): Handle new members.
13466 * config/i386/sse.md (*vec_concatv2si): Merge from
13467 *vec_concatv2si_sse2 and vec_concatv2si_sse.
13468 (vec_concatv2di): Merge with *vec_concatv2di_rex64.
13469
12211b99 134702013-05-03 Joern Rennecke <joern.rennecke@embecosm.com>
95c03b36
JR
13471
13472 PR tree-optimization/57027
13473 * tree-ssa-math-opts.c (convert_mult_to_fma): When checking
13474 for fnms opportunity, check we got the prerequisite kind
13475 of tree / gimple before using accessor functions.
13476
07bfc9ec
RB
134772013-05-03 Richard Biener <rguenther@suse.de>
13478
13479 * double-int.h (lshift): New overload without precision
13480 and arith argument.
13481 (operator *=, operator +=, operator -=): Move ...
13482 * double-int.c (operator *=, operator +=, operator -=): ... here
13483 and implement more efficiently.
13484 (mul_double_with_sign): Remove.
13485 (lshift_double): Adjust to take unsinged shift argument, push
13486 dispatching code to callers.
13487 (mul_double_wide_with_sign): Add early out for callers that
13488 are not interested in high parts or overflow.
13489 (lshift): New function.
13490 (lshift, rshift, alshift, arshift, llshift, lrshift): Add
13491 dispatch code here.
13492 (lrotate, rrotate): Use logical shifts.
13493 * expr.c (get_inner_reference): Use lshift.
13494 * fixed-value.c (do_fixed_divide): Likewise.
13495 * tree-dfa.c (get_ref_base_and_extent): Likewise.
13496 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
13497 (indirect_refs_may_alias_p): Likewise.
13498 (stmt_kills_ref_p_1): Likewise.
13499
7769bb64
VP
135002013-05-03 Vidya Praveen <vidyapraveen@arm.com>
13501
13502 * config/aarch64/aarch64-simd.md (simd_fabd): Correct the description.
13503
1d0c8e5c
VP
135042013-05-03 Vidya Praveen <vidyapraveen@arm.com>
13505
13506 * config/aarch64/aarch64-simd.md (*fabd_scalar<mode>3): Support
13507 scalar form of FABD instruction.
13508
f15feaf9
VM
135092013-05-02 Vladimir Makarov <vmakarov@redhat.com>
13510
13511 * lra-constraints.c (process_alt_operands): Add checking alt
13512 number to choose the best alternative.
13513
d90e76d4
RB
135142013-05-02 Richard Biener <rguenther@suse.de>
13515
13516 * tree-eh.c (cleanup_empty_eh_merge_phis): Remove rename_virts
13517 bitmap and its handling.
13518 (pass_cleanup_eh): Set todo_flags_finish to TODO_verify_ssa.
13519
9f8e7a96
RB
135202013-05-02 Richard Biener <rguenther@suse.de>
13521
13522 PR middle-end/57140
13523 * tree-inline.c (copy_loops): Properly handle removed loops.
13524 (copy_cfg_body): Mark destination loops for fixup if source
13525 loops needed fixup.
13526
f3a81b39
GY
135272013-05-02 Greta Yorsh <Greta.Yorsh@arm.com>
13528
13529 PR target/56732
13530 * config/arm/arm.c (arm_expand_epilogue): Check really_return before
13531 generating simple_return for naked functions.
13532
7b920a9a
MJ
135332013-05-02 Martin Jambor <mjambor@suse.cz>
13534
13535 PR middle-end/56988
13536 * ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
13537 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also check that by_ref
13538 flags match.
13539 (find_aggregate_values_for_callers_subset): Fill in the by_ref flag of
13540 ipa_agg_replacement_value structures.
13541 (known_aggs_to_agg_replacement_list): Likewise.
13542 * ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
13543 (read_agg_replacement_chain): Likewise.
13544 (ipcp_transform_function): Also check that by_ref flags match.
13545
2c41c19d
RB
135462013-05-02 Richard Biener <rguenther@suse.de>
13547
13548 * graphds.h (struct graph): Add obstack member.
13549 * graphds.c (new_graph): Initialize obstack and allocate
13550 vertices from it.
13551 (add_edge): Allocate edge from the obstack.
3c21604f 13552 (free_graph): Free the obstack instead of all edges and vertices.
2c41c19d 13553
8b47039c
TJ
135542013-05-02 Teresa Johnson <tejohnson@google.com>
13555
13556 * loop-unswitch.c (unswitch_loop): Use helper routines with rounding
13557 divides.
13558 * cfg.c (update_bb_profile_for_threading): Ditto.
13559 * tree-inline.c (copy_bb): Ditto.
13560 (copy_edges_for_bb): Ditto.
13561 (initialize_cfun): Ditto.
13562 (copy_cfg_body): Ditto.
13563 (expand_call_inline): Ditto.
13564 * ipa-inline-analysis.c (estimate_edge_size_and_time): Ditto.
13565 (estimate_node_size_and_time): Ditto.
13566 (inline_merge_summary): Ditto.
13567 * cgraphclones.c (cgraph_clone_edge): Ditto.
13568 (cgraph_clone_node): Ditto.
13569 * sched-rgn.c (compute_dom_prob_ps): Ditto.
13570 (compute_trg_info): Ditto.
13571
da65928c
IB
135722013-05-02 Ian Bolton <ian.bolton@arm.com>
13573
13574 * config/aarch64/aarch64.md (movsi_aarch64): Only allow to/from
13575 S reg when fp attribute set.
13576 (movdi_aarch64): Only allow to/from D reg when fp attribute set.
13577
add3c965
IB
135782013-05-02 Ian Bolton <ian.bolton@arm.com>
13579
13580 * config/aarch64/aarch64.md (*and_one_cmpl<mode>3_compare0):
13581 New pattern.
13582 (*and_one_cmplsi3_compare0_uxtw): Likewise.
13583 (*and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
13584 (*and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
13585
fdd43ac4
RB
135862013-05-02 Richard Biener <rguenther@suse.de>
13587
13588 * tree-scalar-evolution.c (scev_info_hasher): Remove.
13589 (struct instantiate_cache_entry): New type.
13590 (struct instantiate_cache_entry_hasher): New hashtable descriptor.
13591 (struct instantiate_cache_type): New type.
13592 (set_instantiated_value, get_instantiated_value): Remove.
13593 (get_instantiated_value_entry): New function.
13594 (instantiate_scev_name): Use the new cache and adjust.
13595 (instantiate_scev_poly): Adjust.
13596 (instantiate_scev_binary): Likewise.
13597 (instantiate_array_ref): Likewise.
13598 (instantiate_scev_convert): Likewise.
13599 (instantiate_scev_not): Likewise.
13600 (instantiate_scev_3): Likewise.
13601 (instantiate_scev_2): Likewise.
13602 (instantiate_scev_r): Likewise.
13603 (instantiate_scev): Likewise.
13604 (resolve_mixers): Likewise.
13605
36ff9dfb
VM
136062013-05-01 Vladimir Makarov <vmakarov@redhat.com>
13607
13608 PR target/57091
13609 * lra-constraints.c (best_small_class_operands_num): Remove.
13610 (process_alt_operands): Remove small_class_operands_num. Take
13611 small classes operands into losers and only if the operand is not
13612 matched. Modify debugging output.
13613 (curr_insn_transform): Remove best_small_class_operands_num.
13614 Print insn name.
13615
36054fab
JG
136162013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
13617
13618 * config/aarch64/aarch64-builtins.c
13619 (aarch64_gimple_fold_builtin.c): Fold more modes for reduc_splus_.
13620 * config/aarch64/aarch64-simd-builtins.def
13621 (reduc_splus_): Add new modes.
13622 (reduc_uplus_): New.
13623 * config/aarch64/aarch64-simd.md (aarch64_addvv4sf): Remove.
13624 (reduc_uplus_v4sf): Likewise.
13625 (reduc_splus_v4sf): Likewise.
13626 (aarch64_addv<mode>): Likewise.
13627 (reduc_uplus_<mode>): Likewise.
13628 (reduc_splus_<mode>): Likewise.
13629 (aarch64_addvv2di): Likewise.
13630 (reduc_uplus_v2di): Likewise.
13631 (reduc_splus_v2di): Likewise.
13632 (aarch64_addvv2si): Likewise.
13633 (reduc_uplus_v2si): Likewise.
13634 (reduc_splus_v2si): Likewise.
13635 (reduc_<sur>plus_<mode>): New.
13636 (reduc_<sur>plus_v2di): Likewise.
13637 (reduc_<sur>plus_v2si): Likewise.
13638 (reduc_<sur>plus_v4sf): Likewise.
13639 (aarch64_addpv4sf): Likewise.
13640 * config/aarch64/arm_neon.h
13641 (vaddv<q>_<s,u,f><8, 16, 32, 64): Rewrite using builtins.
13642 * config/aarch64/iterators.md (unspec): Remove UNSPEC_ADDV,
13643 add UNSPEC_SADDV, UNSPEC_UADDV.
13644 (SUADDV): New.
13645 (sur): Add UNSPEC_SADDV, UNSPEC_UADDV.
13646
6dce23a8
JG
136472013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
13648
13649 * config/aarch64/arm_neon.h
13650 (v<max,min><nm><q><v>_<sfu><8, 16, 32, 64>): Rewrite using builtins.
13651
1598945b
JG
136522013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
13653
13654 * config/aarch64/aarch64-builtins
13655 (aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.
13656
998eaf97
JG
136572013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
13658
13659 * config/aarch64/aarch64-simd-builtins.def
13660 (reduc_smax_): New.
13661 (reduc_smin_): Likewise.
13662 (reduc_umax_): Likewise.
13663 (reduc_umin_): Likewise.
13664 (reduc_smax_nan_): Likewise.
13665 (reduc_smin_nan_): Likewise.
13666 (fmax): Remove.
13667 (fmin): Likewise.
13668 (smax): Update for V2SF, V4SF and V2DF modes.
13669 (smin): Likewise.
13670 (smax_nan): New.
13671 (smin_nan): Likewise.
13672 * config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to...
13673 (<su><maxmin><mode>3): ...This, refactor.
13674 (s<maxmin><mode>3): New.
13675 (<maxmin_uns><mode>3): Likewise.
13676 (reduc_<maxmin_uns>_<mode>): Refactor.
13677 (reduc_<maxmin_uns>_v4sf): Likewise.
13678 (reduc_<maxmin_uns>_v2si): Likewise.
13679 (aarch64_<fmaxmin><mode>: Remove.
13680 * config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use
13681 new builtin names.
13682 (vmin<q>_f<32,64>): Likewise.
13683 * config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
13684 (FMAXMIN): New.
13685 (su): Add mappings for smax, smin, umax, umin.
13686 (maxmin): New.
13687 (FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
13688 (FMAXMIN): Rename as...
13689 (FMAXMIN_UNS): ...This.
13690 (maxminv): Remove.
13691 (fmaxminv): Likewise.
13692 (fmaxmin): Likewise.
13693 (maxmin_uns): New.
13694 (maxmin_uns_op): Likewise.
13695
bd11644e
JG
136962013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
13697
13698 * config/aarch64/arm_neon.h
13699 (vac<ge, gt><sd>_f<32, 64>): Rename to...
13700 (vca<ge, gt><sd>_f<32, 64>): ...this, reimpliment in C.
13701 (vca<ge, gt, lt, le><q>_f<32, 64>): Reimpliment in C.
13702
75dd5ace
JG
137032013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
13704
13705 * config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New.
13706 * config/aarch64/iterators.md (FAC_COMPARISONS): New.
13707
7c19979f
JG
137082013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
13709
13710 * config/aarch64/aarch64-simd.md
13711 (vcond<mode>_internal): Handle special cases for constant masks.
13712 (vcond<mode><mode>): Allow nonmemory_operands for outcome vectors.
13713 (vcondu<mode><mode>): Likewise.
13714 (vcond<v_cmp_result><mode>): New.
13715
bb60efd9
JG
137162013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
13717
13718 * config/aarch64/aarch64-builtins.c (BUILTIN_VALLDI): Define.
13719 (aarch64_fold_builtin): Add folding for cm<eq,ge,gt,tst>.
13720 * config/aarch64/aarch64-simd-builtins.def
13721 (cmeq): Update to BUILTIN_VALLDI.
13722 (cmgt): Likewise.
13723 (cmge): Likewise.
13724 (cmle): Likewise.
13725 (cmlt): Likewise.
13726 * config/aarch64/arm_neon.h
13727 (vc<eq, lt, le, gt, ge, tst><z><qsd>_<fpsu><8,16,32,64>): Remap
13728 to builtins or C as appropriate.
13729
889b9412
JG
137302013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
13731
13732 * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
13733 (cmgeu): ...This.
13734 (cmhi): Rename to...
13735 (cmgtu): ...This.
13736 * config/aarch64/aarch64-simd.md
13737 (simd_mode): Add SF.
13738 (aarch64_vcond_internal): Use new names for unsigned comparison insns.
13739 (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
13740 * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
13741 (cstore<mode>_neg): ...This.
13742 * config/aarch64/iterators.md
13743 (VALLF): new.
13744 (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
13745 (COMPARISONS): New.
13746 (UCOMPARISONS): Likewise.
13747 (optab): Add missing comparisons.
13748 (n_optab): New.
13749 (cmp_1): Likewise.
13750 (cmp_2): Likewise.
13751 (CMP): Likewise.
13752 (cmp): Remove.
13753 (VCMP_S): Likewise.
13754 (VCMP_U): Likewise.
13755 (V_cmp_result): Add DF, SF modes.
13756 (v_cmp_result): Likewise.
13757 (v): Likewise.
13758 (vmtype): Likewise.
13759 * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
13760
0a7dbb76
GY
137612013-05-01 Greta Yorsh <Greta.Yorsh@arm.com>
13762
13763 * config/arm/thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert
13764 define_insn to define_insn_and_split.
13765 (thumb32_umaxsi3,thumb2_uminsi3): Likewise.
13766 (thumb2_negdi2,thumb2_abssi2,thumb2_neg_abssi2): Likewise.
13767 (thumb2_mov_scc,thumb2_mov_negscc,thumb2_mov_notscc): Likewise.
13768 (thumb2_movsicc_insn,thumb2_and_scc,thumb2_ior_scc): Likewise.
13769 (thumb2_negscc): Likewise.
13770
fb614ca6
GY
137712013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
13772
13773 * config/arm/thumb2.md (thumb2_incscc, thumb2_decscc): Delete.
13774
9e64a0bf
GY
137752013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
13776
13777 * config/arm/thumb2.md: Remove trailing whitespaces.
13778
d6b28156
RS
137792013-04-30 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
13780
13781 * explow.c (plus_constant): Pass "mode" to immed_double_int_const.
13782 Use gen_int_mode rather than GEN_INT.
13783
f91674c3
L
137842013-04-30 H.J. Lu <hongjiu.lu@intel.com>
13785
b0dec607 13786 * value-prof.c (stream_in_histogram_value): Remove the strayed
f91674c3
L
13787 debug_gimple_stmt.
13788
3551257c
RB
137892013-04-30 Richard Biener <rguenther@suse.de>
13790
13791 PR middle-end/57122
3c21604f 13792 * cfghooks.c (split_edge): Properly check for the loop latch edge.
3551257c 13793
4c1aff1c
RB
137942013-04-30 Richard Biener <rguenther@suse.de>
13795
13796 PR middle-end/57107
13797 * tree-eh.c (sink_clobbers): Preserve virtual SSA form.
13798
54b8379a
AB
137992013-04-30 Andrey Belevantsev <abel@ispras.ru>
13800
13801 PR rtl-optimization/56957
13802 PR rtl-optimization/57105
54b8379a
AB
13803 * sel-sched.c (move_op_orig_expr_found): Remove insn_emitted
13804 variable. Use just INSN_UID for determining whether an insn
13805 should be only disconnected from the insn stream.
13806 * sel-sched-ir.h (EXPR_WAS_CHANGED): Remove.
13807
abc27962
JJ
138082013-04-30 Jakub Jelinek <jakub@redhat.com>
13809
13810 PR tree-optimization/57104
13811 * tsan.c (instrument_expr): Don't instrument accesses to
13812 DECL_HARD_REGISTER VAR_DECLs.
13813
0fc822d0
RB
138142013-04-30 Richard Biener <rguenther@suse.de>
13815
13816 * function.h (loops_for_fn): New inline function.
13817 (set_loops_for_fn): Likewise.
13818 * cfgloop.h (place_new_loop): Add struct function parameter.
13819 (get_loop): Likewise.
13820 (get_loops): Likewise.
13821 (number_of_loops): Likewise.
13822 (fel_next): Adjust.
13823 (fel_init): Likewise.
13824 * cfg.c (get_loop_copy): Adjust.
13825 * cfgloop.c (flow_loops_dump): Likewise.
13826 (record_loop_exits): Likewise.
13827 (verify_loop_structure): Likewise.
13828 * cfgloopanal.c (mark_irreducible_loops): Likewise.
13829 (estimate_reg_pressure_cost): Likewise.
13830 (mark_loop_exit_edges): Likewise.
13831 * cfgloopmanip.c (place_new_loop): Likewise.
13832 (add_loop): Likewise.
13833 (duplicate_loop): Likewise.
13834 * graph.c (draw_cfg_nodes): Likewise.
13835 * graphite-clast-to-gimple.c (translate_clast_user): Likewise.
13836 * graphite-sese-to-poly.c (build_scop_scattering): Likewise.
13837 (extract_affine_chrec): Likewise.
13838 (build_scop_iteration_domain): Likewise.
13839 * graphite.c (graphite_initialize): Likewise.
13840 * ira-build.c (create_loop_tree_nodes): Likewise.
13841 (more_one_region_p): Likewise.
13842 (rebuild_regno_allocno_maps): Likewise.
13843 (mark_loops_for_removal): Likewise.
13844 (mark_all_loops_for_removal): Likewise.
13845 (remove_unnecessary_regions): Likewise.
13846 (ira_build): Likewise.
13847 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
13848 * loop-init.c (fix_loop_structure): Likewise.
13849 (gate_rtl_move_loop_invariants): Likewise.
13850 (gate_rtl_unswitch): Likewise.
13851 (gate_rtl_unroll_and_peel_loops): Likewise.
13852 (rtl_doloop): Likewise.
13853 * lto-streamer-in.c (input_cfg): Likewise.
13854 * lto-streamer-out.c (output_cfg): Likewise.
13855 * modulo-sched.c (sms_schedule): Likewise.
13856 * predict.c (tree_estimate_probability): Likewise.
13857 (tree_estimate_probability_driver): Likewise.
13858 (estimate_loops): Likewise.
13859 * tree-cfg.c (fixup_loop_arrays_after_move): Likewise.
13860 (move_sese_region_to_fn): Likewise.
13861 (debug_loop_num): Likewise.
13862 * tree-chrec.c (chrec_evaluate): Likewise.
13863 (hide_evolution_in_other_loops_than_loop): Likewise.
13864 (chrec_component_in_loop_num): Likewise.
13865 (reset_evolution_in_loop): Likewise.
13866 (evolution_function_is_invariant_rec_p): Likewise.
13867 * tree-if-conv.c (main_tree_if_conversion): Likewise.
13868 * tree-inline.c (copy_loops): Likewise.
13869 (copy_cfg_body): Likewise.
13870 (tree_function_versioning): Likewise.
13871 * tree-loop-distribution.c (rdg_flag_loop_exits): Likewise.
13872 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
13873 Likewise.
13874 (add_to_evolution_1): Likewise.
13875 (scev_const_prop): Likewise.
13876 * tree-scalar-evolution.h (get_chrec_loop): Likewise.
13877 * tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
13878 * tree-ssa-loop-im.c (analyze_memory_references): Likewise.
13879 (tree_ssa_lim_initialize): Likewise.
13880 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Likewise.
13881 (verify_loop_closed_ssa): Likewise.
13882 * tree-ssa-loop.c (tree_ssa_loop_init): Likewise.
13883 (tree_ssa_loop_im): Likewise.
13884 (tree_ssa_loop_unswitch): Likewise.
13885 (tree_vectorize): Likewise.
13886 (check_data_deps): Likewise.
13887 (tree_ssa_loop_ivcanon): Likewise.
13888 (tree_ssa_loop_bounds): Likewise.
13889 (tree_complete_unroll): Likewise.
13890 (tree_complete_unroll_inner): Likewise.
13891 (tree_parallelize_loops): Likewise.
13892 (tree_ssa_loop_prefetch): Likewise.
13893 (tree_ssa_loop_ivopts): Likewise.
13894 * tree-ssa.c (execute_update_addresses_taken): Liekwise.
13895 * tree-vectorizer.c (vectorize_loops): Likewise.
13896
37953bd3
MF
138972013-04-29 Mike Frysinger <vapier@gentoo.org>
13898
13899 * config/arm/bpabi.h (EABI_LINK_SPEC): Define.
13900 (BPABI_LINK_SPEC): Use new EABI_LINK_SPEC.
13901 * config/arm/linux-eabi.h (LINK_SPEC): Replace BE8_LINK_SPEC
13902 with EABI_LINK_SPEC.
13903
f9ed28db
UB
139042013-04-29 Uros Bizjak <ubizjak@gmail.com>
13905
13906 PR target/44578
13907 * config/i386/i386.md (*zero_extendsidi2): Add "!" to m->?*y
13908 alternative.
13909
deca73f5
VM
139102013-04-29 Vladimir Makarov <vmakarov@redhat.com>
13911
13912 PR target/57097
37953bd3 13913 * lra-constraints.c (process_alt_operands): Discourage a bit more
deca73f5
VM
13914 using memory for pseudos. Print cost dump for alternatives.
13915 Modify cost values for conflicts with early clobbers.
13916 (curr_insn_transform): Spill pseudos reassigned to NO_REGS.
13917
fdca7d03
UB
139182013-04-29 Uros Bizjak <ubizjak@gmail.com>
13919
13920 PR target/57098
13921 * config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory.
13922
0b064172
IB
139232013-04-29 Ian Bolton <ian.bolton@arm.com>
13924
13925 * config/aarch64/aarch64.md (movsi_aarch64): Support LDR/STR
13926 from/to S register.
13927 (movdi_aarch64): Support LDR/STR from/to D register.
13928
473cec55
IB
139292013-04-29 Ian Bolton <ian.bolton@arm.com>
13930
13931 * common/config/aarch64/aarch64-common.c: Enable REE pass at O2
13932 or higher by default.
13933
a6f30e66
RB
139342013-04-29 Richard Biener <rguenther@suse.de>
13935
13936 PR middle-end/57075
13937 * tree-inline.c (copy_edges_for_bb): Still split the bbs,
13938 even if not adding abnormal edges for calls that can make
13939 abnormal gotos.
13940
0c2b2040
RB
139412013-04-29 Richard Biener <rguenther@suse.de>
13942
13943 PR middle-end/57103
13944 * tree-cfg.c (move_stmt_op): Fix condition under which to update
13945 TREE_BLOCK.
13946 (move_stmt_r): Remove redundant checking.
13947
f41f80f9
TJ
139482013-04-29 Teresa Johnson <tejohnson@google.com>
13949
13950 PR bootstrap/57077
13951 * basic-block.h (apply_scale): New function.
13952 (apply_probability): Use apply_scale.
13953 * gimple-streamer-in.c (input_bb): Ditto.
13954 * lto-streamer-in.c (input_cfg): Ditto.
13955 * lto-cgraph.c (merge_profile_summaries): Ditto.
13956 * tree-optimize.c (execute_fixup_cfg): Ditto.
fdca7d03 13957 * tree-inline.c (copy_bb): Update comment to use apply_scale.
f41f80f9
TJ
13958 (copy_edges_for_bb): Ditto.
13959 (copy_cfg_body): Ditto.
13960
315bbd2e
TV
139612013-04-29 Tom de Vries <tom@codesourcery.com>
13962
13963 * tree-ssa-tail-merge.c (find_same_succ_bb): Skip loop latch bbs.
13964 (replace_block_by): Don't set LOOPS_NEED_FIXUP.
13965 (tail_merge_optimize): Handle current_loops == NULL.
13966
ebbd90d8
JL
139672013-04-26 Jeff Law <law@redhat.com>
13968
13969 * tree-vrp.c (range_fits_type_p): Move to earlier point in file.
13970 (simplify_cond_using_ranges): Generalize code to simplify
13971 COND_EXPRs where one argument is a constant and the other
13972 is an SSA_NAME created by an integral type conversion.
13973
8b9b57eb
KT
139742013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13975
13976 * config/arm/arm.md (store_minmaxsi): Use only when
13977 optimize_insn_for_size_p.
13978
9498e5dc
CB
139792013-04-29 Christian Bruel <christian.bruel@st.com>
13980
13981 PR target/57108
13982 * sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0.
13983
6093bc06
RB
139842013-04-29 Richard Biener <rguenther@suse.de>
13985
13986 PR middle-end/57089
fdca7d03
UB
13987 * omp-low.c (expand_omp_taskreg): If the parent function had a broken
13988 loop tree make sure to schedule a fixup for the child as well.
6093bc06
RB
13989 (expand_omp_for_generic): Properly add loops.
13990 (expand_omp_for_static_nochunk): Likewise.
13991 (expand_omp_for_static_chunk): Likewise.
13992 (expand_omp_for): For the degenerate case fixup loops.
13993 (expand_omp_sections): Fix default bb placement in loops.
13994 (expand_omp_atomic_pipeline): Properly add loops.
13995
84aacbfd
KT
139962013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13997
13998 * predict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY.
13999
8dee4479
TV
140002013-04-29 Tom de Vries <tom@codesourcery.com>
14001
14002 * tree-ssa-tail-merge.c: Update header comment.
14003
47934dc4
JG
140042013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14005
14006 * config/aarch64/arm_neon.h
14007 (vcvt<sd>_f<32,64>_s<32,64>): Rewrite in C.
14008 (vcvt<q>_f<32,64>_s<32,64>): Rewrite using builtins.
14009 (vcvt_<high_>_f<32,64>_f<32,64>): Likewise.
14010 (vcvt<qsd>_<su><32,64>_f<32,64>): Likewise.
14011 (vcvta<qsd>_<su><32,64>_f<32,64>): Likewise.
14012 (vcvtm<qsd>_<su><32,64>_f<32,64>): Likewise.
14013 (vcvtn<qsd>_<su><32,64>_f<32,64>): Likewise.
14014 (vcvtp<qsd>_<su><32,64>_f<32,64>): Likewise.
14015
384be29f
JG
140162013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14017
14018 * config/aarch64/aarch64-simd.md
14019 (<optab><VDQF:mode><fcvt_target>2): New, maps to fix, fixuns.
14020 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): New, maps to
14021 fix_trunc, fixuns_trunc.
14022 (ftrunc<VDQF:mode>2): New.
14023 * config/aarch64/iterators.md (optab): Add fix, fixuns.
14024 (fix_trunc_optab): New.
14025
0386b123
JG
140262013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14027
14028 * config/aarch64/aarch64-builtins.c
14029 (aarch64_builtin_vectorized_function): Vectorize over ifloorf,
14030 iceilf, lround, iroundf.
14031
00fcb892
UB
140322013-04-29 Uros Bizjak <ubizjak@gmail.com>
14033
14034 PR target/54349
14035 * config/i386/i386.h (enum ix86_tune_indices)
14036 <X86_TUNE_INTER_UNIT_MOVES_TO_VEC, X86_TUNE_INTER_UNIT_MOVES_FROM_VEC>:
14037 New, split from X86_TUNE_INTER_UNIT_MOVES.
14038 <X86_TUNE_INTER_UNIT_MOVES>: Remove.
14039 (TARGET_INTER_UNIT_MOVES_TO_VEC): New define.
14040 (TARGET_INTER_UNIT_MOVES_FROM_VEC): Ditto.
14041 (TARGET_INTER_UNIT_MOVES): Remove.
14042 * config/i386/i386.c (initial_ix86_tune_features): Update.
14043 Disable X86_TUNE_INTER_UNIT_MOVES_FROM_VEC for m_ATHLON_K8 only.
14044 (ix86_expand_convert_uns_didf_sse): Use
14045 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
14046 (ix86_expand_vector_init_one_nonzero): Ditto.
14047 (ix86_expand_vector_init_interleave): Ditto.
14048 (inline_secondary_memory_needed): Return true for moves from SSE class
14049 registers for !TARGET_INTER_UNIT_MOVES_FROM_VEC targets and for moves
14050 to SSE class registers for !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
14051 * config/i386/constraints.md (Yi, Ym): Depend on
14052 TARGET_INTER_UNIT_MOVES_TO_VEC.
14053 (Yj, Yn): New constraints.
14054 * config/i386/i386.md (*movdi_internal): Change constraints of
14055 operand 1 from Yi to Yj and from Ym to Yn.
14056 (*movsi_internal): Ditto.
14057 (*movdf_internal): Ditto.
14058 (*movsf_internal): Ditto.
14059 (*float<SWI48x:mode><X87MODEF:mode>2_1): Use
14060 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
14061 (*float<SWI48x:mode><X87MODEF:mode>2_1 splitters): Ditto.
14062 (floatdi<X87MODEF:mode>2_i387_with_xmm): Ditto.
14063 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters): Ditto.
14064 * config/i386/sse.md (movdi_to_sse): Ditto.
14065 (sse2_stored): Change constraint of operand 1 from Yi to Yj.
14066 Use TARGET_INTER_UNIT_MOVES_FROM_VEC instead of
14067 TARGET_INTER_UNIT_MOVES.
14068 (sse_storeq_rex64): Change constraint of operand 1 from Yi to Yj.
14069 (sse_storeq_rex64 splitter): Use TARGET_INTER_UNIT_MOVES_FROM_VEC
14070 instead of TARGET_INTER_UNIT_MOVES.
14071 * config/i386/mmx.md (*mov<mode>_internal): Change constraint of
14072 operand 1 from Yi to Yj and from Ym to Yn.
14073
4c871069
JG
140742013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14075
14076 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New.
14077 (float_truncate_hi_): Likewise.
14078 (float_extend_lo_): Likewise.
14079 (float_truncate_lo_): Likewise.
14080 * config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New.
14081 (aarch64_float_extend_lo_v2df): Likewise.
14082 (vec_unpacks_hi_v4sf): Likewise.
14083 (aarch64_float_truncate_lo_v2sf): Likewise.
14084 (aarch64_float_truncate_hi_v4sf): Likewise.
14085 (vec_pack_trunc_v2df): Likewise.
14086 (vec_pack_trunc_df): Likewise.
14087
1709ff9b
JG
140882013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14089
14090 * config/aarch64/aarch64-builtins.c
14091 (aarch64_fold_builtin): Fold float conversions.
14092 * config/aarch64/aarch64-simd-builtins.def
14093 (floatv2si, floatv4si, floatv2di): New.
14094 (floatunsv2si, floatunsv4si, floatunsv2di): Likewise.
14095 * config/aarch64/aarch64-simd.md
14096 (<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns.
14097 * config/aarch64/iterators.md (FLOATUORS): New.
14098 (optab): Add float, floatuns.
14099 (su_optab): Likewise.
14100
ce966824
JG
141012013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14102
14103 * config/aarch64/aarch64-builtins.c
14104 (aarch64_builtin_vectorized_function): Use new names for
14105 fcvt builtins.
14106 * config/aarch64/aarch64-simd-builtins.def (fcvtzs): Split as...
14107 (lbtruncv2sf, lbtruncv4sf, lbtruncv2df): ...This.
14108 (fcvtzu): Split as...
14109 (lbtruncuv2sf, lbtruncuv4sf, lbtruncuv2df): ...This.
14110 (fcvtas): Split as...
14111 (lroundv2sf, lroundv4sf, lroundv2df, lroundsf, lrounddf): ...This.
14112 (fcvtau): Split as...
14113 (lrounduv2sf, lrounduv4sf, lrounduv2df, lroundusf, lroundudf): ...This.
14114 (fcvtps): Split as...
14115 (lceilv2sf, lceilv4sf, lceilv2df): ...This.
14116 (fcvtpu): Split as...
14117 (lceiluv2sf, lceiluv4sf, lceiluv2df, lceilusf, lceiludf): ...This.
14118 (fcvtms): Split as...
14119 (lfloorv2sf, lfloorv4sf, lfloorv2df): ...This.
14120 (fcvtmu): Split as...
14121 (lflooruv2sf, lflooruv4sf, lflooruv2df, lfloorusf, lfloorudf): ...This.
14122 (lfrintnv2sf, lfrintnv4sf, lfrintnv2df, lfrintnsf, lfrintndf): New.
14123 (lfrintnuv2sf, lfrintnuv4sf, lfrintnuv2df): Likewise.
14124 (lfrintnusf, lfrintnudf): Likewise.
14125 * config/aarch64/aarch64-simd.md
14126 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Convert to
14127 define_insn.
14128 (aarch64_fcvt<frint_suffix><su><mode>): Remove.
14129 * config/aarch64/iterators.md (FCVT): Include UNSPEC_FRINTN.
14130 (fcvt_pattern): Likewise.
14131
b9de24fe
JG
141322013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14133
14134 * config/aarch64/aarch64-simd.md
14135 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Rename to...
14136 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): ... This.
14137
77a205be
JG
141382013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14139
14140 * config/aarch64/arm_neon.h (vrndq<a,m,n,p>_f<32, 64>): Rename to...
14141 (vrnd<a,m,n,p>q_f<32, 64>): ...This, implement using builtin.
14142 (vrnd<a,m,n,p>_f32): Implement using builtins.
14143 (vrnd<i,x><q>_f<32, 64>): New.
14144
0659ce6f
JG
141452013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
14146
14147 * config/aarch64/aarch64-builtins.c
14148 (aarch64_builtin_vectorized_function): Fold to standard pattern names.
14149 * config/aarch64/aarch64-simd-builtins.def (frintn): New.
14150 (frintz): Rename to...
14151 (btrunc): ...this.
14152 (frintp): Rename to...
14153 (ceil): ...this.
14154 (frintm): Rename to...
14155 (floor): ...this.
14156 (frinti): Rename to...
14157 (nearbyint): ...this.
14158 (frintx): Rename to...
14159 (rint): ...this.
14160 (frinta): Rename to...
14161 (round): ...this.
14162 * config/aarch64/aarch64-simd.md
14163 (aarch64_frint<frint_suffix><mode>): Delete.
14164 (<frint_pattern><mode>2): Convert to insn.
14165 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN.
14166 * config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN.
14167 (frint_pattern): Likewise.
14168 (frint_suffix): Likewise.
14169
ea78906a
RB
141702013-04-29 Richard Biener <rguenther@suse.de>
14171
14172 PR tree-optimization/57081
14173 * loop-init.c: Include tree-flow.h.
14174 (loop_optimizer_finalize): Free number of iteration estimates.
14175 * Makefile.in (loop-init.o): Add $(TREE_FLOW_H) dependency.
14176
baee1763
JJ
141772013-04-29 Jakub Jelinek <jakub@redhat.com>
14178
94dc5332
JJ
14179 PR tree-optimization/57083
14180 * tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with
14181 non-singleton shift count range, zero extend low_bound for uns case.
14182
baee1763
JJ
14183 * config/i386/predicates.md (general_vector_operand): New predicate.
14184 * config/i386/i386.c (const_vector_equal_evenodd_p): New function.
14185 (ix86_expand_mul_widen_evenodd): Force op1 resp. op2 into register
14186 if they aren't nonimmediate operands. If their original values
14187 satisfy const_vector_equal_evenodd_p, don't shift them.
14188 * config/i386/sse.md (mul<mode>3): Use general_vector_operand
14189 predicates. For the SSE4.1 case force operands[{1,2}] into registers
14190 if not nonimmediate_operand.
14191 (vec_widen_smult_even_v4si): Use nonimmediate_operand predicates
14192 instead of register_operand.
14193 (vec_widen_<s>mult_odd_<mode>): Use general_vector_operand predicates.
14194
a9073727 141952013-04-28 Eric Botcazou <ebotcazou@adacore.com>
22ad5e0a
EB
14196
14197 * stor-layout.c (finalize_size_functions): Allocate a structure and
14198 reset cfun before dumping the functions.
14199
ba8011e6
JJ
142002013-04-27 Jakub Jelinek <jakub@redhat.com>
14201
d6fde69e
JJ
14202 * config/i386/i386.c (ix86_expand_call): Make cregs_size unsigned.
14203
ba8011e6
JJ
14204 PR target/56866
14205 * config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't
14206 use xop_pmacsdqh if uns_p.
14207 * config/i386/sse.md (xop_rotr<mode>3): Fix up computation of
14208 the immediate rotate count.
14209
2c62cbaa
VM
142102013-04-26 Vladimir Makarov <vmakarov@redhat.com>
14211
14212 * rtl.h (struct rtx_def): Add comment for field jump.
14213 (LRA_SUBREG_P): New macro.
14214 * recog.c (register_operand): Check LRA_SUBREG_P.
14215 * lra.c (lra): Add note at the end of RTL code. Align non-empty
14216 stack frame.
14217 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
14218 (lra_final_code_change): Skip subreg change for operators.
14219 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
14220 if there are no operand changes.
14221 * lra-constraints.c (curr_insn_set): New.
14222 (match_reload): Set LRA_SUBREG_P.
14223 (emit_spill_move): Ditto.
14224 (check_and_process_move): Use curr_insn_set. Process only single
14225 set insns. Don't initialize sec_mem_p and change_p.
14226 (simplify_operand_subreg): Use LRA_SUBREG_P.
14227 (reg_in_class_p): New function.
14228 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
14229 of #ifdef. Add code to remove cycling.
14230 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
14231 non-null disp. Reload inner instead of disp when base and index
14232 are null. Try to put lo_sum into register.
14233 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
14234 (check_and_process_move): Move code for move cost check to
14235 simple_move_p. Remove equiv_substitution.
14236 (simple_move_p): New function.
14237 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
14238 curr_insn_set. Call check_and_process_move only for single set
14239 insns. Use the new function. Move call of check_and_process_move
14240 after operand equiv substitution and address process.
14241
e7d764f3
JJ
142422013-04-26 Jakub Jelinek <jakub@redhat.com>
14243
14244 PR go/57045
14245 * tree-ssa-uninit.c (compute_uninit_opnds_pos): In functions
14246 with nonlocal goto receivers or returns twice calls, ignore
14247 unininitialized values from abnormal edges to nl goto receiver
14248 or returns twice call.
14249
41e10689
JJ
142502013-04-26 Jakub Jelinek <jakub@redhat.com>
14251
14252 PR tree-optimization/57051
14253 * fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR
14254 and VEC_RSHIFT_EXPR if shift count is a multiple of element
14255 bitsize.
14256
d7ed20db
RB
142572013-04-26 Richard Biener <rguenther@suse.de>
14258
14259 * omp-low.c (finalize_task_copyfn): Do not drop PROP_loops.
14260 (expand_omp_taskreg): Likewise. Mark loops for fixup.
14261 * tree-cfg.c (move_block_to_fn): Remap loop fathers.
14262 (fixup_loop_arrays_after_move): New function.
14263 (move_sese_region_to_fn): Properly outline the loop tree parts
14264 of the SESE region.
14265
df93505e
UB
142662013-04-26 Uros Bizjak <ubizjak@gmail.com>
14267
14268 * config/i386/i386.md (type, unit): Fix long lines.
14269
dd366ec3
RB
142702013-04-26 Richard Biener <rguenther@suse.de>
14271
14272 * Makefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency.
14273 (lto-streamer-out.o): Likewise.
14274 * cfgloop.c (init_loops_structure): Export, add struct function
14275 argument and adjust.
14276 (flow_loops_find): Adjust.
14277 * cfgloop.h (enum loop_estimation): Add EST_LAST.
14278 (init_loops_structure): Declare.
14279 * lto-streamer-in.c: Include cfgloop.h.
14280 (input_cfg): Input the loop tree.
14281 * lto-streamer-out.c: Include cfgloop.h.
14282 (output_cfg): Output the loop tree.
14283 (output_struct_function_base): Do not drop PROP_loops.
14284
a9e0d843
RB
142852013-03-26 Richard Biener <rguenther@suse.de>
14286
14287 * tree-cfg.c (execute_build_cfg): Build the loop tree.
14288 (pass_build_cfg): Provide PROP_loops.
14289 (move_sese_region_to_fn): Remove loops that are outlined into fn
14290 for now.
14291 * tree-inline.c: Include cfgloop.h.
14292 (initialize_cfun): Do not drop PROP_loops.
14293 (copy_loops): New function.
14294 (copy_cfg_body): Copy loop structure.
14295 (tree_function_versioning): Initialize destination loop tree.
14296 * tree-ssa-loop.c (pass_tree_loop_init): Do not provide PROP_loops.
14297 (pass_parallelize_loops): Do IL verification.
14298 * loop-init.c (loop_optimizer_init): Fixup loops if required.
14299 * tree-optimize.c (execute_fixup_cfg): If we need to cleanup
14300 the CFG make sure we fixup loops as well.
14301 * tree-ssa-tail-merge.c: Include cfgloop.h.
14302 (replace_block_by): When merging loop latches mark loops for fixup.
14303 * lto-streamer-out.c (output_struct_function_base): Drop
14304 PROP_loops for now.
14305 * tree-ssa-phiopt.c: Include tree-scalar-evolution.h.
14306 (tree_ssa_cs_elim): Initialize the loop optimizer and SCEV.
14307 * ipa-split.c: Include cfgloop.h.
14308 (split_function): Add the new return block to the loop tree root.
14309 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Return
14310 whether we have removed the forwarder block.
14311 (merge_phi_nodes): If we removed a forwarder mark loops for fixup.
14312 * cfgloop.h (place_new_loop): Declare.
14313 * cfgloopmanip.c (place_new_loop): Export.
14314 * Makefile.in (asan.o): Add $(CFGLOOP_H) dependency.
14315 (tree-switch-conversion.o): Likewise.
14316 (tree-complex.o): Likewise.
14317 (tree-inline.o): Likewise.
14318 (tree-ssa-tailmerge.o): Likewise.
14319 (ipa-split.o): Likewise.
14320 (tree-ssa-phiopt.o): Add $(SCEV_H) dependency.
14321 (tree-ssa-copy.o): Likewise.
14322 * tree-switch-conversion.c: Include cfgloop.h
14323 (process_switch): If we emit a bit-test cascade, schedule loops
14324 for fixup.
14325 * tree-complex.c: Include cfgloop.h.
14326 (expand_complex_div_wide): Properly add new basic-blocks to loops.
14327 * asan.c: Include cfgloop.h.
14328 (create_cond_insert_point): Properly add new basic-blocks to
14329 loops, schedule loop fixup.
14330 * cfgloop.c (verify_loop_structure): Check that looks are not
14331 marked for fixup.
14332 * omp-low.c (expand_parallel_call): Properly add new basic-blocks
14333 to loops.
14334 (expand_omp_for_generic): Likewise.
14335 (expand_omp_sections): Likewise.
14336 (expand_omp_atomic_pipeline): Schedule loops for fixup.
14337 * tree-ssa-copy.c: Include tree-scalar-evolution.h.
14338 (fini_copy_prop): Disable DCE in substitute_and_fold if SCEV
14339 is initialized, not when loops are present.
14340 * tree-parloops.c (parallelize_loops): Remove checking here.
14341 * passes.c (init_optimization_passes): Schedule a copy-propagation
14342 pass before complete unrolling of inner loops.
14343
e78e8a0b
JJ
143442013-04-26 Jakub Jelinek <jakub@redhat.com>
14345
a2e836b2
JJ
14346 * Makefile.in (toplev.o): Depend on diagnostic-color.h.
14347 * diagnostic-color.c (should_colorize): Remove _WIN32 version.
14348 (colorize_init): Add argument to _WIN32 version.
14349 * toplev.c: Include diagnostic-color.h.
14350 (process_options): Default to -fdiagnostics-color=auto if
14351 GCC_COLORS env var is in the environment.
14352 * common.opt (fdiagnostics-color=): Add Var and Init.
df93505e
UB
14353 * doc/invoke.texi (-fdiagnostics-color=): Document that if GCC_COLORS
14354 env var is in the environment, the default is auto rather than never.
a2e836b2 14355
e78e8a0b
JJ
14356 * diagnostic.h (file_name_as_prefix): Add context argument.
14357 * diagnostic.c (file_name_as_prefix): Likewise. Colorize
14358 the string as locus.
14359 * langhooks.c (lhd_print_error_function): Adjust caller.
14360
013e5ef9
LC
143612013-04-25 Lawrence Crowl <crowl@google.com>
14362
14363 * var-tracking.c (shared_hash_def::htab):
14364 Change type to hash_table. Update dependent calls and types.
14365
4a8fb1a1
LC
143662013-04-25 Lawrence Crowl <crowl@google.com>
14367
14368 * Makefile.in: Update as needed below.
14369
14370 * alloc-pool.c (static hash_table <alloc_pool_hasher> alloc_pool_hash):
14371 Move declaration to after the type's method definitons.
14372
14373 * attribs.c (htab_t scoped_attributes::attribute_hash):
14374 Change type to hash_table. Update dependent calls and types.
14375
14376 * bitmap.c (htab_t bitmap_desc_hash):
14377 Change type to hash_table. Update dependent calls and types.
14378
14379 * cselib.c (htab_t cselib_hash_table):
14380 Change type to hash_table. Update dependent calls and types.
14381
14382 * data-streamer.h (struct string_slot): Move to lto-streamer.h.
14383 (hash_string_slot_node): Move implementation into lto-streamer.h
14384 struct string_slot_hasher.
14385 (eq_string_slot_node): Likewise.
14386
14387 * data-streamer-out.c: Update output_block::string_hash_table
14388 dependent calls and types.
14389
14390 * dwarf2cfi.c (htab_t trace_index):
14391 Change type to hash_table. Update dependent calls and types.
14392
14393 * dwarf2out.c (htab_t break_out_includes::cu_hash_table):
14394 Change type to hash_table. Update dependent calls and types.
14395 (htab_t copy_decls_for_unworthy_types::decl_table): Likewise.
14396 (htab_t optimize_external_refs::map): Likewise.
14397 (htab_t output_comp_unit::extern_map): Likewise.
14398 (htab_t output_comdat_type_unit::extern_map): Likewise.
14399 (htab_t output_macinfo::macinfo_htab): Likewise.
14400 (htab_t optimize_location_lists::htab): Likewise.
14401 (htab_t dwarf2out_finish::comdat_type_table): Likewise.
14402
14403 * except.c (htab_t ehspec_hash_type):
14404 Change type to hash_table. Update dependent calls and types.
14405 (assign_filter_values::ttypes): Likewise.
14406 (assign_filter_values::ehspec): Likewise.
14407 (sjlj_assign_call_site_values::ar_hash): Likewise.
14408 (convert_to_eh_region_ranges::ar_hash): Likewise.
14409
14410 * gcse.c (htab_t pre_ldst_table):
14411 Change type to hash_table. Update dependent calls and types.
14412
14413 * ggc-common.c (htab_t saving_htab):
14414 Change type to hash_table. Update dependent calls and types.
14415 (htab_t loc_hash): Likewise.
14416 (htab_t ptr_hash): Likewise.
14417 (call_count): Rename ggc_call_count.
14418 (call_alloc): Rename ggc_call_alloc.
14419 (loc_descriptor): Rename make_loc_descriptor.
14420 (add_statistics): Rename ggc_add_statistics.
14421
14422 * ggc-common.c (saving_htab):
14423 Change type to hash_table. Update dependent calls and types.
14424
14425 * gimple.h (struct gimplify_ctx): Move to gimplify-ctx.h.
14426 (push_gimplify_context): Likewise.
14427 (pop_gimplify_context): Likewise.
14428 (struct gimple_temp_hash_elt): Added.
14429 (struct gimplify_hasher): Likewise.
14430 (struct gimplify_ctx.temp_htab):
14431 Change type to hash_table. Update dependent calls and types.
14432
14433 * gimple-fold.c: Include gimplify-ctx.h.
14434
14435 * gimple-ssa-strength-reduction.c (htab_t base_cand_map):
14436 Change type to hash_table. Update dependent calls and types.
14437 (base_cand_dump_callback): Rename to ssa_base_cand_dump_callback to
14438 avoid potential global name collision.
14439
14440 * gimplify.c: Include gimplify-ctx.h.
14441 (struct gimple_temp_hash_elt): Move to gimplify-ctx.h.
14442 (htab_t gimplify_ctx::temp_htab):
14443 Update dependent calls and types for new type hash_table.
14444 (gimple_tree_hash): Move into gimplify_hasher in gimplify-ctx.h.
14445 (gimple_tree_eq): Move into gimplify_hasher in gimplify-ctx.h.
14446
14447 * gimplify-ctx.h: New.
14448 (struct gimple_temp_hash_elt): Move from gimplify.c.
14449 (class gimplify_hasher): New.
14450 (struct gimplify_ctx): Move from gimple.h.
14451 (htab_t gimplify_ctx::temp_htab):
14452 Change type to hash_table. Update dependent calls and types.
14453
14454 * graphite-clast-to-gimple.c: Include graphite-htab.h.
14455 (htab_t ivs_params::newivs_index):
14456 Change type to hash_table. Update dependent calls and types.
14457 (htab_t ivs_params::params_index): Likewise.
14458 (htab_t print_generated_program::params_index): Likewise.
14459 (htab_t gloog::newivs_index): Likewise.
14460 (htab_t gloog::params_index): Likewise.
14461
14462 * graphite.c: Include graphite-htab.h.
14463 4htab_t graphite_transform_loops::bb_pbb_mapping):
14464 Change type to hash_table. Update dependent calls and types.
14465
14466 * graphite-clast-to-gimple.h: (extern gloog) Move to graphite-htab.h.
14467 (bb_pbb_map_hash): Fold into bb_pbb_htab_type in graphite-htab.h.
14468 (eq_bb_pbb_map): Fold into bb_pbb_htab_type in graphite-htab.h.
14469
14470 * graphite-dependences.c: Include graphite-htab.h.
14471 (loop_is_parallel_p): Change hash table type of parameter.
14472
14473 * graphite-htab.h: New.
14474 (typedef hash_table <bb_pbb_hasher> bb_pbb_htab_type): New.
14475 (extern find_pbb_via_hash): Move from graphite-poly.h.
14476 (extern loop_is_parallel_p): Move from graphite-poly.h.
14477 (extern get_loop_body_pbbs): Move from graphite-poly.h.
14478
14479 * graphite-poly.h (extern find_pbb_via_hash): Move to graphite-htab.h.
14480 (extern loop_is_parallel_p): Move to graphite-htab.h.
14481 (extern get_loop_body_pbbs): Move to graphite-htab.h.
14482
14483 * haifa-sched.c (htab_t delay_htab):
14484 Change type to hash_table. Update dependent calls and types.
14485 (htab_t delay_htab_i2): Likewise.
14486
14487 * ira-color.c (htab_t allocno_hard_regs_htab):
14488 Change type to hash_table. Update dependent calls and types.
14489
14490 * ira-costs.c (htab_t cost_classes_htab):
14491 Change type to hash_table. Update dependent calls and types.
14492
14493 * loop-invariant.c (htab_t merge_identical_invariants::eq):
14494 Change type to hash_table. Update dependent calls and types.
14495
14496 * loop-iv.c (htab_t bivs):
14497 Change type to hash_table. Update dependent calls and types.
14498
14499 * loop-unroll.c (htab_t opt_info::insns_to_split):
14500 Change type to hash_table. Update dependent calls and types.
14501 (htab_t opt_info::insns_with_var_to_expand): Likewise.
14502
14503 * lto-streamer.h (struct string_slot): Move from data-streamer.h
14504 (struct string_slot_hasher): New.
14505 (htab_t output_block::string_hash_table):
14506 Change type to hash_table. Update dependent calls and types.
14507
14508 * lto-streamer-in.c (freeing_string_slot_hasher): New.
14509 (htab_t file_name_hash_table):
14510 Change type to hash_table. Update dependent calls and types.
14511
14512 * lto-streamer-out.c: Update output_block::string_hash_table dependent
14513 calls and types.
14514
14515 * lto-streamer.c (htab_t tree_htab):
14516 Change type to hash_table. Update dependent calls and types.
14517
14518 * omp-low.c: Include gimplify-ctx.h.
14519
14520 * passes.c (htab_t name_to_pass_map):
14521 Change type to hash_table. Update dependent calls and types.
14522 (pass_traverse): Rename to passes_pass_traverse.
14523
14524 * plugin.c (htab_t event_tab):
14525 Change type to hash_table. Update dependent calls and types.
14526
14527 * postreload-gcse.c (htab_t expr_table):
14528 Change type to hash_table. Update dependent calls and types.
14529 (dump_hash_table_entry): Rename dump_expr_hash_table_entry.
14530
14531 * sese.c (debug_rename_map_1): Make extern.
14532 (htab_t copy_bb_and_scalar_dependences::rename_map):
14533 Change type to hash_table. Update dependent calls and types.
14534
14535 * sese.h (extern debug_rename_map): Move to .c file.
14536
14537 * store-motion.c (htab_t store_motion_mems_table):
14538 Change type to hash_table. Update dependent calls and types.
14539
14540 * trans-mem.c (htab_t tm_new_mem_hash):
14541 Change type to hash_table. Update dependent calls and types.
14542
14543 * tree-browser.c (htab_t TB_up_ht):
14544 Change type to hash_table. Update dependent calls and types.
14545
14546 * tree-cfg.c (htab_t discriminator_per_locus):
14547 Change type to hash_table. Update dependent calls and types.
14548
14549 * tree-complex.c: Include tree-hasher.h
14550 (htab_t complex_variable_components):
14551 Change type to hash_table. Update dependent calls and types.
14552
14553 * tree-eh.c (htab_t finally_tree):
14554 Change type to hash_table. Update dependent calls and types.
14555
14556 * tree-flow.h (extern int_tree_map_hash): Moved into tree-hasher
14557 struct int_tree_hasher.
14558 (extern int_tree_map_eq): Likewise.
14559 (uid_decl_map_hash): Removed.
14560 (extern decl_tree_map_eq): Likewise.
14561
14562 * tree-hasher.h: New.
14563 (struct int_tree_hasher): New.
14564 (typedef int_tree_htab_type): New.
14565
14566 * tree-inline.c: Include gimplify-ctx.h.
14567
14568 * tree-mudflap.c: Include gimplify-ctx.h.
14569
14570 * tree-parloops.c: Include tree-hasher.h.
14571 (htab_t eliminate_local_variables_stmt::decl_address):
14572 Change type to hash_table. Update dependent calls and types.
14573 (htab_t separate_decls_in_region::decl_copies): Likewise.
14574
14575 * tree-scalar-evolution.c (htab_t resolve_mixers::cache):
14576 Change type to hash_table. Update dependent calls and types.
14577
14578 * tree-sra.c (candidates):
14579 Change type to hash_table. Update dependent calls and types.
14580
14581 * tree-ssa.c (int_tree_map_eq): Moved into struct int_tree_hasher
14582 in tree-flow.h.
14583 (int_tree_map_hash): Likewise.
14584
14585 * tree-ssa-dom.c (htab_t avail_exprs):
14586 Change type to hash_table. Update dependent calls and types.
14587
14588 * tree-ssa-live.c (var_map_base_init::tree_to_index):
14589 Change type to hash_table. Update dependent calls and types.
14590
14591 * tree-ssa-loop-ivopts.c (struct ivopts_data.inv_expr_tab):
14592 Change type to hash_table. Update dependent calls and types.
14593
14594 * tree-ssa-phiopt.c (seen_ssa_names):
14595 Change type to hash_table. Update dependent calls and types.
14596
14597 * tree-ssa-strlen.c (decl_to_stridxlist_htab):
14598 Change type to hash_table. Update dependent calls and types.
14599
14600 * tree-ssa-uncprop.c (equiv):
14601 Change type to hash_table. Update dependent calls and types.
14602
c5a44004
JJ
146032013-04-25 Jakub Jelinek <jakub@redhat.com>
14604
14605 PR rtl-optimization/57003
14606 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
14607 call note_stores with kill_clobbered_value callback again after
14608 killing regs_invalidated_by_call.
14609
09962a4a
JG
146102013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
14611
14612 * config/aarch64/aarch64-simd.md
14613 (aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL.
14614 (aarch64_simd_bsl<mode>): Likewise.
14615 * config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL.
14616
ea28bb0b
MP
146172013-04-25 Marek Polacek <polacek@redhat.com>
14618
14619 PR tree-optimization/57066
3c21604f 14620 * builtins.c (fold_builtin_logb): Return +Inf for -Inf.
ea28bb0b 14621
96659611
JG
146222013-04-25 James Greenhalgh <jame.greenhalgh@arm.com>
14623
14624 * config/aarch64/aarch64-simd.md (neg<mode>2): Use VDQ iterator.
14625
9697e620
JG
146262013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
14627
14628 * config/aarch64/aarch64-builtins.c
14629 (aarch64_fold_builtin): New.
14630 * config/aarch64/aarch64-protos.h (aarch64_fold_builtin): New.
14631 * config/aarch64/aarch64.c (TARGET_FOLD_BUILTIN): Define.
14632 * config/aarch64/aarch64-simd-builtins.def (abs): New.
14633 * config/aarch64/arm_neon.h
14634 (vabs<q>_<f32, 64>): Implement using __builtin_aarch64_fabs.
14635
0ac198d3
JG
146362013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
14637 Tejas Belagod <tejas.belagod@arm.com>
14638
14639 * config/aarch64/aarch64-builtins.c
14640 (aarch64_gimple_fold_builtin): New.
14641 * config/aarch64/aarch64-protos.h (aarch64_gimple_fold_builtin): New.
14642 * config/aarch64/aarch64-simd-builtins.def (addv): New.
14643 * config/aarch64/aarch64-simd.md (addpv4sf): New.
14644 (addvv4sf): Update.
14645 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define.
14646
58cff58c
N
146472013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
14648
df93505e 14649 * config/aarch64/aarch64.md
58cff58c
N
14650 (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): New pattern.
14651
7e0228bf
N
146522013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
14653
14654 * config/aarch64/aarch64.md (*ngc<mode>): New pattern.
14655 (*ngcsi_uxtw): New pattern.
14656
5819f96f 146572013-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3c21604f 14658 Julian Brown <julian@codesourcery.com>
5819f96f
KT
14659
14660 * config/arm/arm.c (neon_builtin_type_mode): Add T_V4HF.
14661 (TB_DREG): Add T_V4HF.
14662 (v4hf_UP): New macro.
14663 (neon_itype): Add NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
df93505e 14664 (arm_init_neon_builtins): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
14665 Handle initialisation of V4HF. Adjust initialisation of reinterpret
14666 built-ins.
df93505e 14667 (arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
14668 (arm_vector_mode_supported_p): Handle V4HF.
14669 (arm_mangle_map): Handle V4HFmode.
14670 * config/arm/arm.h (VALID_NEON_DREG_MODE): Add V4HF.
14671 * config/arm/arm_neon_builtins.def: Add entries for
14672 vcvtv4hfv4sf, vcvtv4sfv4hf.
14673 * config/arm/neon.md (neon_vcvtv4sfv4hf): New pattern.
14674 (neon_vcvtv4hfv4sf): Likewise.
14675 * config/arm/neon-gen.ml: Handle half-precision floating point
14676 features.
14677 * config/arm/neon-testgen.ml: Handle Requires_FP_bit feature.
14678 * config/arm/arm_neon.h: Regenerate.
14679 * config/arm/neon.ml (type elts): Add F16.
14680 (type vectype): Add T_float16x4, T_floatHF.
14681 (type vecmode): Add V4HF.
14682 (type features): Add Requires_FP_bit feature.
14683 (elt_width): Handle F16.
14684 (elt_class): Likewise.
14685 (elt_of_class_width): Likewise.
14686 (mode_of_elt): Refactor.
14687 (type_for_elt): Handle F16, fix error messages.
14688 (vectype_size): Handle T_float16x4.
14689 (vcvt_sh): New function.
14690 (ops): Add entries for vcvt_f16_f32, vcvt_f32_f16.
14691 (string_of_vectype): Handle T_floatHF, T_float16, T_float16x4.
14692 (string_of_mode): Handle V4HF.
14693 * doc/arm-neon-intrinsics.texi: Regenerate.
14694
1ef395e4
JG
146952013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
14696
14697 * config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf
14698 format specifier in 'X' case.
14699
41c34e94
AM
147002013-04-25 Alan Modra <amodra@gmail.com>
14701
14702 PR target/57052
14703 * config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
14704 rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
14705 (rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
14706 Repeat for many other rotate/shift and mask patterns using subregs.
14707 Name lshiftrt insns.
14708 (ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
14709 on WORDS_BIG_ENDIAN.
14710
b9a7eb5d
AM
147112013-04-25 Alan Modra <amodra@gmail.com>
14712
14713 * config.gcc: Support little-endian powerpc-linux targets.
14714 * config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define.
14715 (LINK_OS_LINUX_SPEC): Define.
14716 * config/rs6000/linuxspe.h (TARGET_DEFAULT):
14717 Preserve MASK_LITTLE_ENDIAN.
14718 * config/rs6000/default64.h (TARGET_DEFAULT): Likewise.
14719 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise.
14720 * config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero.
14721 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define.
14722 (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above.
14723 * config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF.
14724 Correct fp word order for little-endian. Don't shift toc entries
14725 smaller than a word for little-endian.
14726 * config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment.
14727 (bswapdi2 splits): Correct low-part subreg for little-endian.
14728 Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove
14729 low/high where such is correct only for be.
14730 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow
14731 little-endian for -mcall-aixdesc.
14732
87f73374
AM
147332013-04-25 Alan Modra <amodra@gmail.com>
14734
14735 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
14736 replace_equiv_address_nv.
14737
cabf91cd
AM
147382013-04-25 Alan Modra <amodra@gmail.com>
14739
14740 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Tidy.
14741
0ae24cc8
VM
147422013-04-24 Vladimir Makarov <vmakarov@redhat.com>
14743
14744 Revert:
14745 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
14746 * rtl.h (struct rtx_def): ...
cabf91cd 14747
77bce07c
VM
147482013-04-24 Vladimir Makarov <vmakarov@redhat.com>
14749
14750 PR rtl-optimizations/57046
14751 * lra-constraints (split_reg): Set up lra_risky_transformations_p
14752 for multi-reg splits.
14753
0db63e7f
L
147542013-04-24 H.J. Lu <hongjiu.lu@intel.com>
14755
14756 * config/i386/x86-64.h (ASM_SPEC): Support -mx32.
14757
3362b6b6
SA
147582013-04-24 Sterling Augustine <saugustine@google.com>
14759
14760 * dwarf2out.c (skeleton_debug_str_hash, add_skeleton_AT_string)
14761 (comp_dir_string, debug_str_dwo_section): New.
14762 (DEBUG_STR_DWO_SECTION): Rename to ...
14763 (DEBUG_DWO_STR_SECTION): ... this.
14764 (DEBUG_NORM_STR_SECTION): Delete.
14765 (DEBUG_STR_SECTION, DEBUG_STR_SECTION_FLAGS): Edit definitions.
14766 (DEBUG_STR_DWO_SECTION_FLAGS): New.
14767 (find_AT_string): Move most logic to ...
14768 (find_AT_string_in_table): ... here. New.
14769 (add_top_level_skeleton_die_attrs): Call comp_dir_string and
14770 add_skeleton_AT_string. Delete logic.
14771 (output_skeleton_debug_sections): Remove call to
14772 add_top_level_skeleton_die_attrs.
14773 (add_comp_dir_attribute): Move logic to comp_dir_string.
14774 (dwarf2out_init): Initialize debug_str_dwo_section.
14775 (output_indirect_string): Call find_string_form.
14776 (output_indirect_strings): Rewrite.
14777 (prune_unused_types): Empty skeleton_debug_str_hash.
14778 Call get_skeleton_type_unit and add_top_level_skeleton_die_attrs.
14779 (dwarf2out_finish): Call output_indirect_strings.
14780
e93e18e9
PC
147812013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
14782
14783 * doc/cpp.texi: Remove __GXX_EXPERIMENTAL_CXX1Y__.
14784
f6ce35ac
VM
147852013-04-24 Vladimir Makarov <vmakarov@redhat.com>
14786
cabf91cd 14787 * rtl.h (struct rtx_def): Add comment for field jump.
f6ce35ac
VM
14788 (LRA_SUBREG_P): New macro.
14789 * recog.c (register_operand): Check LRA_SUBREG_P.
14790 * lra.c (lra): Add note at the end of RTL code. Align non-empty
14791 stack frame.
14792 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
14793 (lra_final_code_change): Skip subreg change for operators.
14794 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
14795 if there are no operand changes.
14796 * lra-constraints.c (curr_insn_set): New.
14797 (match_reload): Set LRA_SUBREG_P.
14798 (emit_spill_move): Ditto.
14799 (check_and_process_move): Use curr_insn_set. Process only single
14800 set insns. Don't initialize sec_mem_p and change_p.
14801 (simplify_operand_subreg): Use LRA_SUBREG_P.
14802 (reg_in_class_p): New function.
14803 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
14804 of #ifdef. Add code to remove cycling.
14805 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
14806 non-null disp. Reload inner instead of disp when base and index
14807 are null. Try to put lo_sum into register.
14808 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
cabf91cd 14809 (check_and_process_move): Move code for move cost check to
f6ce35ac 14810 simple_move_p. Remove equiv_substitution.
cabf91cd 14811 (simple_move_p): New function.
f6ce35ac
VM
14812 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
14813 curr_insn_set. Call check_and_process_move only for single set
14814 insns. Use the new function. Move call of check_and_process_move
14815 after operand equiv substitution and address process.
14816
38047d90
JG
148172013-04-24 James Greenhalgh <james.greenhalgh@arm.com>
14818
14819 * config/aarch64/arm_neon.h (vld1<q>_lane*): Fix constraints.
14820 (vld1<q>_dup_<sufp><8, 16, 32, 64>): Likewise.
14821 (vld1<q>_<sufp><8, 16, 32, 64>): Likewise.
14822
13f39b2e
PC
148232013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
14824
14825 * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CXX1Y__.
14826
97c116dc
MP
148272013-04-24 Marek Polacek <polacek@redhat.com>
14828
14829 * tree-scalar-evolution.h (analyze_scalar_evolution): Remove.
14830 * tree-scalar-evolution.c (get_exit_conditions_rec): Likewise.
14831 (select_loops_exit_conditions): Likewise.
14832 (number_of_iterations_for_all_loops): Likewise.
14833 (analyze_scalar_evolution_for_all_loop_phi_nodes): Likewise.
14834 (scev_analysis): Likewise.
14835
83082391 148362013-04-02 Catherine Moore <clm@codesourcery.com>
12211b99 14837 Chao-ying Fu <fu@mips.com>
83082391 14838
cabf91cd
AM
14839 * config/mips/micromips.md (jraddiusp): New pattern.
14840 * config/mips/mips.c (mips_expand_epilogue): Use the JRADDIUSP
14841 instruction if possible.
83082391 14842
19e34aa2
AM
148432013-04-24 Alan Modra <amodra@gmail.com>
14844
14845 * config/rs6000/driver-rs6000.c (elf_dcachebsize): Fix comment pasto.
14846
fdb6603c
JB
148472013-04-24 Julian Brown <julian@codesourcery.com>
14848 Chung-Lin Tang <cltang@codesourcery.com>
14849
14850 * dwarf2out.c (gen_enumeration_type_die): Fix HOST_BITS_PER_WIDE_INT
df93505e
UB
14851 dependency behavior in enumeration type DIE generation. Add TODO note
14852 to comments about future DW_FORM_sdata/udata re-work of related code.
fdb6603c 14853
bf190e8d
LC
148542013-04-23 Lawrence Crowl <crowl@google.com>
14855
14856 * Makefile.in: Update as needed below.
14857
14858 * hash-table.h (class hash_table):
14859 Correct many methods with parameter types compare_type to the correct
14860 value_type. (Correct code was unlikely to notice the change.)
14861 (hash_table::elements_with_deleted) New.
14862 (class hashtable::iterator): New.
14863 (hashtable::begin()): New.
14864 (hashtable::end()): New.
14865 (FOR_EACH_HASH_TABLE_ELEMENT): New.
14866
14867 * statistics.c (statistics_hashes):
14868 Change type to hash_table. Update dependent calls and types.
14869
14870 * tree-into-ssa.c (var_infos):
14871 Change type to hash_table. Update dependent calls and types.
14872
14873 * tree-ssa-coalesce.c (struct coalesce_list_d.list):
14874 Change type to hash_table. Update dependent calls and types.
14875
14876 * tree-ssa-loop-im.c (struct mem_ref.refs):
14877 Change type to hash_table. Update dependent calls and types.
14878
14879 * tree-ssa-reassoc.c (undistribute_ops_list::ctable):
14880 Change type to hash_table. Update dependent calls and types.
14881
14882 * tree-ssa-sccvn.c (vn_tables_s::nary):
14883 Change type to hash_table. Update dependent calls and types.
14884 (vn_tables_s::phis): Likewise.
14885 (vn_tables_s::references): Likewise.
14886
14887 * tree-ssa-sccvn.h (vn_nary_op_eq): Update parameter and return types.
14888 (vn_reference_eq): Update parameter and return types.
14889
14890 * tree-ssa-structalias.c (pointer_equiv_class_table):
14891 Change type to hash_table. Update dependent calls and types.
14892 (location_equiv_class_table): Likewise.
14893
14894 * tree-vect-data-refs.c: Consequential changes for making
14895 peeling a hash_table.
14896
14897 * tree-vect-loop.c (new_loop_vec_info): Dependent hash_table update.
14898 (destroy_loop_vec_info): Dependent hash_table update.
14899
14900 * tree-vectorizer.h (peeling_htab):
14901 Change type to hash_table. Update dependent calls and types.
14902
d70a81dd
SC
149032013-04-23 Shiva Chen <shiva0217@gmail.com>
14904
cabf91cd
AM
14905 * lra-assigns.c (find_hard_regno_for): Use lra_reg_val_equal_p
14906 to check the register content is equal or not.
14907 * lra-constraints.c (match_reload): Use lra_assign_reg_val
14908 to assign register content record.
14909 * lra-eliminations.c (update_reg_eliminate): Use
d70a81dd 14910 lra_update_reg_val_offset to update register content offset.
cabf91cd
AM
14911 * lra-int.h (struct lra_reg): Add offset member.
14912 (lra_reg_val_equal_p): New static inline function.
14913 (lra_update_reg_val_offset): New static inline function.
14914 (lra_assign_reg_val): New static inline function.
14915 * lra.c (lra_create_new_reg): Use lra_assign_reg_val
14916 to assign register content record.
14917 (initialize_lra_reg_info_element): Initial offset to zero.
d70a81dd 14918
b894a1f3
CM
149192013-04-23 Catherine Moore <clm@codesourcery.com>
14920
14921 * config/mips/mips.md (*movhi_internal, *movqi_internal): New
14922 operands. Record compression.
14923
ecd14de9
XDL
149242013-04-23 Xinliang David Li <davidxl@google.com>
14925
14926 * cfghhooks.c (dump_bb_for_graph): Support 'slim' graph dump.
14927
92e776e9
RB
149282013-04-23 Richard Biener <rguenther@suse.de>
14929
14930 PR middle-end/57036
14931 * tree-inline.c (copy_edges_for_bb): Add can_make_abnormal_goto
14932 parameter, only add abnormal goto edges from the copied body
14933 if the call could perform abnormal gotos.
14934 (copy_cfg_body): Adjust.
14935
a15ee567
SN
149362013-04-23 Sofiane Naci <sofiane.naci@arm.com>
14937
14938 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add simd attribute.
14939
08c52234
AS
149402013-04-23 Andreas Schwab <schwab@linux-m68k.org>
14941
14942 * coretypes.h (gimple_stmt_iterator): Add struct to make
14943 compatible with C.
14944
999c1171
RB
149452013-04-23 Richard Biener <rguenther@suse.de>
14946
14947 PR tree-optimization/57026
14948 * tree-vrp.c (simplify_conversion_using_ranges): Do not propagate
14949 from SSA names occuring in abnormal PHI nodes.
14950
53669259
AK
149512013-04-22 Andi Kleen <ak@linux.intel.com>
14952
14953 * lto/lto.c (print_lto_report_1): Fix LTO report names.
14954
1a0ad150
AK
149552013-04-22 Andi Kleen <ak@linux.intel.com>
14956
14957 * lto/lto.c (print_lto_report_1): Declare early.
14958 (read_cgraph_and_symbols): Call print_lto_report_1 early.
14959
057f8f20
AK
149602013-04-22 Andi Kleen <ak@linux.intel.com>
14961
14962 * common.opt (-flto-report-wpa): Add.
14963 * doc/invoke.texi (-flto-report-wpa): Add.
14964 * lto/lto.c (do_whole_program_analysis): Check for lto-report-wpa.
14965 (lto_main): dito.
14966
473b1e05
XDL
149672013-04-22 Xinliang David Li <davidxl@google.com>
14968
14969 * graph.c (draw_cfg_node_succ_edges): Add branch probility as label.
14970 * cfghhooks.c (dump_bb_for_graph): Dump profile count and frquency.
14971 * Makefile.in: New dependency
14972
cabf91cd 14973 David Daney <ddaney.cavm@gmail.com>
b1485a33 14974
cabf91cd
AM
14975 * configure.ac (gcc_cv_as_micromips_support): Use the
14976 --fatal-warnings option.
14977 * configure: Regenerate.
b1485a33 14978
829d0168
MP
149792013-04-22 Marek Polacek <polacek@redhat.com>
14980
14981 PR sanitizer/56990
14982 * tsan.c (instrument_expr): Don't instrument expression
14983 in case its size is zero.
14984
6d9b7208
UB
149852013-04-22 Uros Bizjak <ubizjak@gmail.com>
14986
14987 PR target/57032
14988 Revert:
14989 2013-03-17 Uros Bizjak <ubizjak@gmail.com>
14990
14991 * config/alpha/alpha.c (TARGET_LRA_P): New define.
14992
ea679d55
JG
149932013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
14994
14995 * coretypes.h (gimple_stmt_iterator_d): Forward declare.
14996 (gimple_stmt_iterator): New typedef.
14997 * gimple.h (gimple_stmt_iterator): Rename to...
14998 (gimple_stmt_iterator_d): ... This.
14999 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Detail restriction that
15000 trees be valid for GIMPLE and GENERIC.
15001 (TARGET_GIMPLE_FOLD_BUILTIN): New.
15002 * gimple-fold.c (gimple_fold_call): Call target hook
15003 gimple_fold_builtin.
15004 * hooks.c (hook_bool_gsiptr_false): New.
15005 * hooks.h (hook_bool_gsiptr_false): New.
15006 * target.def (fold_stmt): New.
15007 * doc/tm.texi: Regenerate.
15008
88a581da
VM
150092013-04-22 Vladimir Makarov <vmakarov@redhat.com>
15010
15011 PR target/57018
15012 * lra-eliminations.c (mark_not_eliminable): Prevent elimination of
15013 a set sp if no stack realignment.
15014
92be22dc
NC
150152013-04-22 Nick Clifton <nickc@redhat.com>
15016
15017 * config.gcc (tilegx-linux): Extend extra_objs rather than
15018 overwriting it.
15019 (tilepro-linux): Likewise.
15020
0ddec79f
JG
150212013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
15022
15023 * config/aarch64/aarch64-builtins.c
15024 (CF): Remove.
15025 (CF0, CF1, CF2, CF3, CF4, CF10): New.
15026 (VAR<1-12>): Add MAP parameter.
15027 (BUILTIN_*): Likewise.
15028 * config/aarch64/aarch64-simd-builtins.def: Set MAP parameter.
15029 * config/aarch64/aarch64-simd.md (aarch64_sshl_n<mode>): Remove.
15030 (aarch64_ushl_n<mode>): Likewise.
15031 (aarch64_sshr_n<mode>): Likewise.
15032 (aarch64_ushr_n<mode>): Likewise.
15033 (aarch64_<maxmin><mode>): Likewise.
15034 (aarch64_sqrt<mode>): Likewise.
15035 * config/aarch64/arm_neon.h (vshl<q>_n_*): Use new builtin names.
15036 (vshr<q>_n_*): Likewise.
15037
0050faf8
JG
150382013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
15039
15040 * config/aarch64/aarch64-builtins.c
15041 (aarch64_simd_builtin_type_mode): Handle SF types.
15042 (sf_UP): Define.
15043 (BUILTIN_GPF): Define.
15044 (aarch64_init_simd_builtins): Handle SF types.
15045 * config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
15046 (frecps): Likewise.
15047 (frecpx): Likewise.
15048 * config/aarch64/aarch64-simd.md
15049 (simd_types): Update simd_frcp<esx> to simd_frecp<esx>.
15050 (aarch64_frecpe<mode>): New.
15051 (aarch64_frecps<mode>): Likewise.
15052 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRECP<ESX>.
15053 (v8type): Add frecp<esx>.
15054 (aarch64_frecp<FRECP:frecp_suffix><mode>): New.
15055 (aarch64_frecps<mode>): Likewise.
15056 * config/aarch64/iterators.md (FRECP): New.
15057 (frecp_suffix): Likewise.
15058 * config/aarch64/arm_neon.h
15059 (vrecp<esx><qsd>_<fd><32, 64>): Convert to using builtins.
15060
0fad3dbc 150612013-04-22 Christian Bruel <christian.bruel@st.com>
1818d01c
CB
15062
15063 PR target/56995
15064 * config/sh/sh.h (enum reg_class): Remove DF_HI_REGS.
15065 (REG_CLASS_NAMES): Idem.
15066 (REG_CLASS_CONTENTS): Idem.
15067 (REGCLASS_HAS_FP_REG): Idem.
15068 * config/sh/sh.c (sh_cannot_change_mode_class): Idem.
15069 (sh_conditional_register_usage): Idem.
15070
3e8a33f9
JL
150712013-04-21 Jeff Law <law@redhat.com>
15072
15073 * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): New function.
15074 (ssa_forward_propagate_and_combine): Use it.
15075
f38e1b0a
VM
150762013-04-19 Vladimir Makarov <vmakarov@redhat.com>
15077
15078 * lra.c: Update the flow chart diagram.
15079
682303da
VM
150802013-04-19 Vladimir Makarov <vmakarov@redhat.com>
15081
15082 PR rtl-optimization/56847
15083 * lra-constraints.c (process_alt_operands): Discourage alternative
15084 with non-matche doffsettable memory constraint fro memory with
15085 known offset.
15086
f6b64c35
RB
150872013-04-19 Richard Biener <rguenther@suse.de>
15088
15089 PR tree-optimization/56982
15090 * builtins.def (BUILT_IN_LONGJMP): longjmp is not a leaf
15091 function.
15092 * gimplify.c (gimplify_call_expr): Notice special calls.
15093 (gimplify_modify_expr): Likewise.
15094 * tree-cfg.c (make_abnormal_goto_edges): Handle setjmp-like
15095 abnormal control flow receivers.
15096 (call_can_make_abnormal_goto): Handle cfun->calls_setjmp
15097 in the same way as cfun->has_nonlocal_labels.
15098 (gimple_purge_dead_abnormal_call_edges): Likewise.
15099 (stmt_starts_bb_p): Make setjmp-like abnormal control flow
15100 receivers start a basic-block.
15101
01d8bf07
RB
151022013-04-19 Richard Biener <rguenther@suse.de>
15103
15104 * tree-vectorizer.h (struct _slp_instance): Move load_permutation
15105 member ...
15106 (struct _slp_tree): ... here. Make it a vector of unsigned ints.
15107 (SLP_INSTANCE_LOAD_PERMUTATION): Remove.
15108 (SLP_TREE_LOAD_PERMUTATION): Add.
15109 (vect_transform_slp_perm_load): Adjust prototype.
15110 * tree-vect-slp.c (vect_free_slp_tree): Adjust.
15111 (vect_free_slp_instance): Likewise.
15112 (vect_create_new_slp_node): Likewise.
15113 (vect_supported_slp_permutation_p): Remove.
15114 (vect_slp_rearrange_stmts): Adjust.
15115 (vect_supported_load_permutation_p): Likewise. Inline
15116 vect_supported_slp_permutation_p here.
15117 (vect_analyze_slp_instance): Compute load permutations per
15118 slp node instead of per instance.
15119 (vect_get_slp_defs): Adjust.
15120 (vect_transform_slp_perm_load): Likewise.
15121 (vect_schedule_slp_instance): Remove redundant code.
15122 (vect_schedule_slp): Remove hack for PR56270, add it ...
15123 * tree-vect-stmts.c (vectorizable_load): ... here, do not
15124 CSE loads for SLP. Adjust.
15125
ede22fc3
GY
151262013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
15127
15128 * config/arm/arm.c (load_multiple_sequence, ldm_stm_operation_p): Fix
15129 spelling in two comments.
15130
67bc84fb
GY
151312013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
15132
15133 PR target/56797
15134 * config/arm/arm.c (load_multiple_sequence): Require SP
15135 as base register for loads if SP is in the register list.
15136
e248d83f
MJ
151372013-04-19 Martin Jambor <mjambor@suse.cz>
15138
15139 PR tree-optimization/56718
15140 * ipa-cp.c (ipa_value_from_known_type_jfunc): Moved...
15141 * ipa-prop.c (ipa_binfo_from_known_type_jfunc): ...here, renamed
15142 and made public. Adjusted all callers.
15143 (ipa_intraprocedural_devirtualization): New function.
15144 * ipa-prop.h (ipa_binfo_from_known_type_jfunc): Declare.
15145 (ipa_intraprocedural_devirtualization): Likewise.
15146 * Makefile.in (tree-ssa-pre.o): Add ipa-prop.h to dependencies.
15147
4891e8f8
RB
151482013-04-19 Richard Biener <rguenther@suse.de>
15149
15150 PR tree-optimization/57000
15151 * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.
15152
dad89f7c
TG
151532013-04-19 Terry Guo <terry.guo@arm.com>
15154
15155 * config/arm/cortex-m4-fpu.md (cortex_m4_v): Delete cpu unit.
15156 Replace with ...
15157 (cortex_m4_v_a, cortex_m4_v_b): ... new cpu units.
15158 (cortex_m4_v, cortex_m4_exa_va, cortex_m4_exb_vb): New reservations.
15159 (cortex_m4_fmacs): Use new reservations.
15160 (cortex_m4_f_load, cortex_m4_f_store): Likewise.
15161
72ea0d47
VM
151622013-04-18 Vladimir Makarov <vmakarov@redhat.com>
15163
f1e6512c 15164 PR rtl-optimization/56999
72ea0d47
VM
15165 * lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and
15166 related code.
15167 (lra_coalesce): Remove split_origin_bitmap and related code.
15168 * lra.c (lra): Coalesce after undoing inheritance. Recreate live
15169 ranges if necessary.
15170
780a5b71
UB
151712013-04-18 Uros Bizjak <ubizjak@gmail.com>
15172
15173 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers):
15174 New array.
15175 (ix86_expand_call): Remove clobbered_registers array and use
15176 x86_64_ms_sysv_extra_clobbered_registers instead.
15177 * config/i386/i386.h (x86_64_ms_sysv_extra_clobbered_registers):
15178 Declare here.
15179 * config/i386/predicates.md (call_rex64_ms_sysv_operation): New
15180 predicate.
15181 * config/i386/i386.md (*call_rex64_ms_sysv): Use
15182 call_rex64_ms_sysv_operation predicate. Remove explicit clobbers.
15183 (*call_value_rex64_ms_sysv): Ditto.
15184
6f5a366a
CC
151852013-04-18 Cary Coutant <ccoutant@google.com>
15186
15187 * dwarf2out.c (output_pubnames): Check die_perennial_p of
15188 parent instead of die_mark.
15189
475b8f37
DN
151902013-04-18 Diego Novillo <dnovillo@google.com>
15191
15192 * gimple.c (create_gimple_tmp): New.
15193 (get_expr_type): New.
15194 (build_assign): New.
15195 (build_type_cast): New.
15196 * gimple.h (enum ssa_mode): Define.
15197 (gimple_seq_set_location): New.
15198 * asan.c (build_check_stmt): Change some gimple_build_* calls
780a5b71 15199 to use build_assign and build_type_cast.
475b8f37 15200
08940f33
RB
152012013-04-18 Richard Biener <rguenther@suse.de>
15202
15203 * tree-vect-data-refs.c (vect_analyze_group_access): Properly
15204 handle negative step. Remove redundant checks.
15205 (vect_create_data_ref_ptr): Avoid ICEs with non-constant steps.
15206 * tree-vect-stmts.c (vectorizable_load): Instead of asserting
15207 for negative step and grouped loads fail to vectorize.
15208
0e0f87d4
SB
152092013-04-18 Steven Bosscher <steven@gcc.gnu.org>
15210
15211 * emit-rtl.c (reset_insn_used_flags): New function.
15212 (reset_all_used_flags): Use it.
15213 (verify_insn_sharing): New function.
15214 (verify_rtl_sharing): Fix verification for SEQUENCEs.
15215
4c445590
JJ
152162013-04-18 Jakub Jelinek <jakub@redhat.com>
15217
15218 PR tree-optimization/56984
15219 * tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N
15220 and (x >> M) >= N don't register any assertion if N << M is the
15221 minimum value.
15222
6873ecab
SB
152232013-04-18 Steven Bosscher <steven@gcc.gnu.org>
15224
15225 * lower-subreg.c (resolve_simple_move): If called self-recursive,
15226 do not delete_insn insns that have not yet been emitted, only
15227 unlink them with remove_insn.
15228 * df-scan.c (df_insn_delete): Revert r197492.
15229
3ccb989e
SB
152302013-04-17 Steven Bosscher <steven@gcc.gnu.org>
15231
15232 * emit-rtl.c (link_insn_into_chain): Handle chaining of SEQUENCEs.
15233 * reorg.c (emit_delay_sequence): Simplify with emit-rtl API.
15234
152352013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
0480fff0
GY
15236
15237 * config/arm/arm.md (movsicc_insn): Convert define_insn into
15238 define_insn_and_split.
15239 (and_scc,ior_scc,negscc): Likewise.
15240 (cmpsi2_addneg, subsi3_compare): Convert to named patterns.
15241
3ccb989e 152422013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
367075fe
GY
15243
15244 * config/arm/arm.c (use_return_insn): Return 0 for targets that
15245 can benefit from using a sequence of LDRD instructions in epilogue
15246 instead of a single LDM instruction.
15247
6d10a203
MLI
152482013-04-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
15249
15250 PR 45688
15251 * doc/extend.texi: Fix typo.
15252
6983e6b5
RB
152532013-04-17 Richard Biener <rguenther@suse.de>
15254
15255 * tree-vect-slp.c (vect_build_slp_tree_1): Split out from ...
15256 (vect_build_slp_tree): ... here.
15257 (vect_build_slp_tree_1): Compute which stmts of the SLP group
15258 match. Remove special-casing of mismatched complex loads.
15259 (vect_build_slp_tree): Based on the result from vect_build_slp_tree_1
15260 re-try the match with swapped commutative operands.
15261 (vect_supported_load_permutation_p): Remove special-casing of
15262 mismatched complex loads.
15263 (vect_analyze_slp_instance): Adjust.
15264
ef23e6a2
RB
152652013-04-17 Richard Biener <rguenther@suse.de>
15266
15267 PR rtl-optimization/56921
15268 * cfgloop.h (struct loop): Add simple_loop_desc member.
15269 (struct niter_desc): Mark with GTY(()).
15270 (simple_loop_desc): Do not use aux field but simple_loop_desc.
15271 * loop-iv.c (get_simple_loop_desc): Likewise.
15272 (free_simple_loop_desc): Likewise.
15273
15274 Revert
15275 2013-04-16 Richard Biener <rguenther@suse.de>
15276
15277 PR rtl-optimization/56921
15278 * loop-init.c (pass_rtl_move_loop_invariants): Add
15279 TODO_do_not_ggc_collect to todo_flags_finish.
15280 (pass_rtl_unswitch): Same.
15281 (pass_rtl_unroll_and_peel_loops): Same.
15282 (pass_rtl_doloop): Same.
15283
fc6f94f5
EB
152842013-04-17 Eric Botcazou <ebotcazou@adacore.com>
15285
15286 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): New.
15287 (decl_refs_may_alias_p): Add REF1 and REF2 parameters.
15288 Use nonoverlapping_component_refs_of_decl_p to disambiguate component
15289 references.
15290 (refs_may_alias_p_1): Adjust call to decl_refs_may_alias_p.
15291 * tree-streamer.c (record_common_node): Adjust reference in comment.
15292
10a88311
TG
152932013-04-17 Terry Guo <terry.guo@arm.com>
15294
15295 * config/arm/cortex-m4.md: Add a new bypass.
15296
6d9b7208 152972013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f3d096b0
N
15298
15299 * config/aarch64/aarch64.md (*adds_<optab><mode>_multp2):
15300 New pattern.
15301 (*subs_<optab><mode>_multp2): New pattern.
15302 (*adds_<optab><ALLX:mode>_<GPI:mode>): New pattern.
15303 (*subs_<optab><ALLX:mode>_<GPI:mode>): New pattern.
15304
6d9b7208 153052013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
860ad33f
N
15306
15307 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): New pattern.
15308 (*subs_mul_imm_<mode>): New pattern.
15309
18a6701e
DE
153102013-04-16 David Edelsohn <dje.gcc@gmail.com>
15311
15312 PR target/56948
15313 * config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative.
15314 (vsx_movti_64bit): Change j->wa to O->wa. Add n->r alternative.
15315 (vsx_movti_32bit): Change j->wa to O->wa.
15316
07c37b2f
RB
153172013-04-16 Richard Biener <rguenther@suse.de>
15318
15319 PR rtl-optimization/56921
15320 * loop-init.c (pass_rtl_move_loop_invariants): Add
15321 TODO_do_not_ggc_collect to todo_flags_finish.
15322 (pass_rtl_unswitch): Same.
15323 (pass_rtl_unroll_and_peel_loops): Same.
15324 (pass_rtl_doloop): Same.
15325
0e0f87d4 153262013-04-16 Greta Yorsh <Greta.Yorsh@arm.com>
974ba22d
GY
15327
15328 * config/arm/arm.c (emit_multi_reg_push): New declaration
15329 for an existing function.
15330 (arm_emit_strd_push): New function.
15331 (arm_expand_prologue): Used here.
15332 (arm_emit_ldrd_pop): New function.
15333 (arm_expand_epilogue): Used here.
15334 (arm_get_frame_offsets): Update condition.
15335 (arm_emit_multi_reg_pop): Add a special case for load of a single
15336 register with writeback.
15337
5e8e2af4
UB
153382013-04-16 Uros Bizjak <ubizjak@gmail.com>
15339
15340 * doc/invoke.texi (i386 Option): Reword -mstack-protector-guard
15341 description.
15342
9fd9ccf7
RB
153432013-04-16 Richard Biener <rguenther@suse.de>
15344
15345 PR tree-optimization/56756
15346 * tree-ssa-loop-im.c (struct first_mem_ref_loc_1): New functor.
15347 (first_mem_ref_loc): New.
15348 (execute_sm): Place the load temporarily before a previous
15349 access instead of in the latch edge to ensure its SSA dependencies
15350 are defined at points dominating the load.
15351
96fba521
SB
153522013-04-16 Steven Bosscher <steven@gcc.gnu.org>
15353
4c8af858
SB
15354 * cfgrtl.c (cfg_layout_merge_blocks): Revert r184005, implement
15355 correct fix by moving header and footer insn to the footer of
15356 the merged basic block. Clear BB_END of the merged-away block.
15357
96fba521
SB
15358 PR middle-end/43631
15359 * emit-rtl.c (make_note_raw): New function.
15360 (link_insn_into_chain): New static inline function.
15361 (add_insn): Use it.
15362 (add_insn_before, add_insn_after): Factor insn chain linking code...
15363 (add_insn_before_nobb, add_insn_after_nobb): ...here, new functions
15364 using link_insn_into_chain.
15365 (note_outside_basic_block_p): New helper function for emit_note_after
15366 and emit_note_before.
15367 (emit_note_after): Use nobb variant of add_insn_after if the note
15368 should not be contained in a basic block.
15369 (emit_note_before): Use nobb variant of add_insn_before if the note
15370 should not be contained in a basic block.
15371 (emit_note_copy): Use make_note_raw.
15372 (emit_note): Likewise.
15373 * bb-reorder.c (insert_section_boundary_note): Remove hack to set
15374 BLOCK_FOR_INSN to NULL manually for NOTE_INSN_SWITCH_TEXT_SECTIONS.
15375 * jump.c (cleanup_barriers): Use reorder_insns_nobb to avoid making
15376 the moved barrier the tail of the basic block it follows.
15377 * var-tracking.c (pass_variable_tracking): Add TODO_verify_flow.
15378
7b8265ba
JJ
153792013-04-15 Jakub Jelinek <jakub@redhat.com>
15380
15381 PR tree-optimization/56962
15382 * gimple-ssa-strength-reduction.c (record_increment): Only set
15383 initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and
15384 either rhs1 or rhs2 is equal to c->base_expr.
15385
5185d248
RB
153862013-04-15 Richard Biener <rguenther@suse.de>
15387
15388 PR tree-optimization/56933
15389 * tree-vectorizer.h (struct _stmt_vec_info): Remove read_write_dep
15390 member.
15391 (GROUP_READ_WRITE_DEPENDENCE): Remove.
15392 (STMT_VINFO_GROUP_READ_WRITE_DEPENDENCE): Likewise.
15393 * tree-vect-data-refs.c (vect_analyze_group_access): Move
15394 dependence check ...
15395 vect_analyze_data_ref_dependence (vect_analyze_data_ref_dependence):
15396 ... here.
15397 * tree-vect-stmts.c (new_stmt_vec_info): Do not initialize
15398 GROUP_READ_WRITE_DEPENDENCE.
15399
a24243a0
AK
154002013-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15401
15402 * emit-rtl.c (reset_all_used_flags): New function.
15403 (verify_rtl_sharing): Call reset_all_used_flags before and after
15404 performing the checks.
15405
1c50eada
KT
154062013-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15407
15408 * config/arm/arm.c (const_ok_for_dimode_op): Handle AND case.
15409 * config/arm/arm.md (*anddi3_insn): Change to insn_and_split.
15410 * config/arm/constraints.md (De): New constraint.
15411 * config/arm/neon.md (anddi3_neon): Delete.
15412 (neon_vand<mode>): Expand to standard anddi3 pattern.
15413 * config/arm/predicates.md (imm_for_neon_inv_logic_operand):
15414 Move earlier in the file.
15415 (neon_inv_logic_op2): Likewise.
15416 (arm_anddi_operand_neon): New predicate.
15417
e927b6ad
RO
154182013-04-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15419
15420 * configure.ac (gcc_cv_ld_as_needed): Set
15421 gcc_cv_ld_as_needed_option, gcc_cv_no_as_needed_option.
15422 Use -z ignore, -z record on *-*-solaris2*.
15423 (HAVE_LD_AS_NEEDED): Update comment.
15424 (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Define.
15425 * configure: Regenerate.
15426 * config.in: Regenerate.
15427 * gcc.c (init_gcc_specs) [USE_LD_AS_NEEDED]: Use
15428 LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION.
15429 * config/sol2.h [HAVE_LD_AS_NEEDED] (USE_LD_AS_NEEDED): Define.
15430 * doc/tm.texi.in (USE_LD_AS_NEEDED): Allow for --as-needed
15431 equivalents. Fix markup.
15432 * doc/tm.texi: Regenerate.
15433
e0ea8797
AH
154342013-04-15 Andrew Hsieh <andrewhsieh.google.com>
15435
15436 * config/i386/i386.opt: New option mstack-protector-guard=.
15437 * config/i386/i386-opts.h: Add enum stack_protector_guard.
15438 * config/i386/i386.h: Define TARGET_SSP_GLOBAL_GUARD and
15439 TARGET_SSP_TLS_GUARD.
15440 * config/i386/i386.c (ix86_option_override_internal): Set
15441 ix86_stack_protector_guard.
15442 * config/i386/i386.md (stack_protect_set): Enable for
15443 TARGET_SSP_TLS_GUARD only.
15444 (stack_protect_set_<mode>): Ditto.
15445 (stack_protect_test): Ditto.
15446 (stack_protect_test_<mode>): Ditto.
15447 * doc/invoke.texi (i386 Option): Document.
15448
811b72f9
EB
154492013-04-15 Eric Botcazou <ebotcazou@adacore.com>
15450
15451 PR target/56890
15452 * config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value.
15453 (S_MODES): Set H_MODE bit.
15454 (SF_MODES): Set only S_MODE and SF_MODE bits.
15455 (DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits.
15456 (sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes.
15457 <MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes.
15458 <MODE_FLOAT>: Likewise.
15459
5529fdd6
JY
154602013-04-15 Joey Ye <joey.ye@arm.com>
15461
15462 * config/arm/arm.c (thumb_far_jump_used_p): Fix typo in comments.
15463
517b1da2
JY
154642013-04-15 Joey Ye <joey.ye@arm.com>
15465
15466 * config/arm/arm.c (thumb1_final_prescan_insn): Assert lr save
15467 for real far jump.
15468 (thumb_far_jump_used_p): Count instruction size and set
15469 far_jump_used.
15470
01007ae0
EB
154712013-04-14 Eric Botcazou <ebotcazou@adacore.com>
15472
15473 * reorg.c (fill_simple_delay_slots): Reindent block of code.
15474 * resource.c (mark_target_live_regs): Reformat conditional block.
15475
c46f6580
SB
154762013-04-13 Steven Bosscher <steven@gcc.gnu.org>
15477
15478 * sched-deps.c (deps_analyze_insn): Do not check for EH_REGION insn
15479 notes, they are emitted only just before final.
15480 * sched-int.h: Include insn-attr.h before checking INSN_SCHEDULING.
15481
1f397f45
SB
154822013-04-13 Steven Bosscher <steven@gcc.gnu.org>
15483
15484 * emit-rtl.c (remove_insn): Do not call df_insn_delete here.
15485 * cfgrtl.c (delete_insn): Call it here instead.
15486 * lra-spills.c (lra_final_code_change): Use delete_insn.
15487 * haifa-sched.c (sched_remove_insn): Likewise.
15488 * sel-sched-ir.c (return_nop_to_pool): Clear INSN_DELETED_P for nops
15489 returning to the nop pool.
15490 (sel_remove_insn): Simplify the only_disconnect case via remove_insn,
15491 use delete_insn for definitive removal. Clear BLOCK_FOR_INSN.
15492
58a51369
SB
154932013-04-12 Steven Bosscher <steven@gcc.gnu.org>
15494
15495 * doc/tm.texi.in (LOOP_ALIGN): Remove loop note references.
15496 * doc/tm.texi: Regenerated.
15497
33159866
UB
154982013-04-12 Uros Bizjak <ubizjak@gmail.com>
15499
15500 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use ANY_QI_REGNO_P in
15501 QImode checks.
15502
226e378f
SB
155032013-04-12 Steven Bosscher <steven@gcc.gnu.org>
15504
15505 * df-core.c (df_find_def): Compare register numbers.
15506 (df_find_use): Likewise.
15507
fafb9b18
VM
155082013-04-12 Vladimir Makarov <vmakarov@redhat.com>
15509
15510 PR target/56903
15511 * config/i386/i386.c (ix86_hard_regno_mode_ok): Add
15512 lra_in_progress for return.
15513
9a946fd6
GY
155142013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
15515
15516 * config/arm/arm.md (mov_scc,mov_negscc,mov_notscc): Convert
15517 define_insn into define_insn_and_split and emit movsicc patterns.
15518
41b83758
GY
155192013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
15520
15521 * config/arm/arm.c (gen_operands_ldrd_strd): Initialize "base".
15522
d3afd9aa
RB
155232013-04-12 Richard Biener <rguenther@suse.de>
15524
15525 * tree-pass.h (TODO_do_not_ggc_collect): New.
15526 * passes.c (execute_one_ipa_transform_pass): Honor
15527 TODO_do_not_ggc_collect.
15528 (execute_one_pass): Likewise.
15529
15530 Revert
15531 2013-04-10 Richard Biener <rguenther@suse.de>
15532
15533 * passes.c (init_optimization_passes): Remove reload pass.
15534 * ira.c (do_reload): Merge into ...
15535 (ira): ... this.
15536 (rest_of_handle_reload): Remove.
15537 (pass_reload): Likewise.
15538 * config/i386/i386.c (ix86_option_override): Refer to ira instead
15539 of reload for vzeroupper pass placement.
15540
06f9b387
JJ
155412013-04-12 Jakub Jelinek <jakub@redhat.com>
15542
15543 PR tree-optimization/56918
15544 PR tree-optimization/56920
15545 * fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...)
15546 instead of op1 - op2. Pass 2 * TYPE_PRECISION (type) as second
15547 argument to rshift method. For 2 * HOST_BITS_PER_WIDE_INT precision
15548 use wide_mul_with_sign method.
15549
953094d2
RB
155502013-04-12 Richard Biener <rguenther@suse.de>
15551
15552 * gimple.c (is_gimple_constant): Vector CONSTRUCTORs should
15553 not be considered a gimple constant.
15554
bb506982
MG
155552013-04-12 Marc Glisse <marc.glisse@inria.fr>
15556
15557 * fold-const.c (const_binop): Handle vector shifts by a scalar.
15558 (fold_binary_loc): Call const_binop also for mixed vector-scalar
15559 operations.
15560
4b84d650
JJ
155612013-04-12 Manuel López-Ibáñez <manu@gcc.gnu.org>
15562 Jakub Jelinek <jakub@redhat.com>
15563
15564 * opts.c: Include diagnostic-color.h.
15565 (common_handle_option): Handle OPT_fdiagnostics_color_.
15566 * Makefile.in (OBJS-libcommon): Add diagnostic-color.o.
15567 (diagnostic.o, opts.o, pretty-print.o): Depend on diagnostic-color.h.
15568 (diagnostic-color.o): New.
15569 * common.opt (fdiagnostics-color, fdiagnostics-color=): New options.
15570 (diagnostic_color_rule): New enum.
15571 * dwarf2out.c (gen_producer_string): Don't print -fdiagnostics-color*.
15572 * langhooks.c (lhd_print_error_function): Add %r "locus" and %R around
15573 the location string.
15574 * diagnostic.def: Add 3rd argument to DEFINE_DIAGNOSTIC_KIND macros,
15575 either NULL, or color kind.
15576 * diagnostic-color.c: New file.
15577 * diagnostic-color.h: New file.
15578 * diagnostic-core.h (DEFINE_DIAGNOSTIC_KIND): Adjust macro for 3
15579 arguments.
15580 * doc/invoke.texi (-fdiagnostics-color): Document.
15581 * pretty-print.h (pp_show_color): Define.
15582 (struct pretty_print_info): Add show_color field.
15583 * diagnostic.c: Include diagnostic-color.h.
15584 (diagnostic_build_prefix): Adjust for 3 argument DEFINE_DIAGNOSTIC_KIND
15585 macros. Colorize error:, warning: etc. strings and also the location
15586 string.
15587 (diagnostic_show_locus): Colorize the caret line.
15588 * pretty-print.c: Include diagnostic-color.h.
15589 (pp_base_format): Handle %r and %R format specifiers. Colorize strings
15590 inside of %< %> quotes or quoted through q format modifier.
15591
067a1e71
AK
155922013-04-12 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15593
33159866 15594 * ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as well.
067a1e71 15595
33159866 155962013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
b056c910
N
15597
15598 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Allow NEG
15599 code in CC_NZ mode.
15600 * config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New
15601 pattern.
15602
7b55f98f
MP
156032013-04-11 Marek Polacek <polacek@redhat.com>
15604
15605 PR tree-optimization/48184
33159866 15606 * params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum value to 1.
7b55f98f 15607
966b587e
EB
156082013-04-11 Eric Botcazou <ebotcazou@adacore.com>
15609
15610 * stor-layout.c (skip_simple_constant_arithmetic): Move to...
15611 * tree.c (skip_simple_constant_arithmetic): ...here and make public.
15612 (skip_simple_arithmetic): Tidy up.
15613 * tree.h (skip_simple_constant_arithmetic): Declare.
15614
33159866 156152013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f8bf91ab
N
15616
15617 * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Define.
15618
1d42c1ec
RB
156192013-04-11 Richard Biener <rguenther@suse.de>
15620
15621 * tree-vect-loop.c (get_initial_def_for_induction): Properly
15622 generate vector constants.
15623
4ba5ea11
RB
156242013-04-11 Richard Biener <rguenther@suse.de>
15625
15626 PR tree-optimization/56878
15627 * tree-flow.h (outermost_invariant_loop_for_expr): Declare.
15628 * tree-ssa-loop-ivopts.c (outermost_invariant_loop_for_expr):
15629 New function.
15630 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
15631 Prefer to align the DR with the most invariant base address.
15632
f0defe58
SKS
156332013-04-11 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
15634
15635 * opts.c (common_handle_option): Fix formatting and add FALLTHRU
15636 comment.
15637
d07458be
JG
156382013-04-11 James Greenhalgh <james.greenhalgh@arm.com>
15639
15640 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix
15641 floating-point vector comparisons against 0.
15642
146b8692
JJ
156432013-04-11 Jakub Jelinek <jakub@redhat.com>
15644
15645 PR tree-optimization/56899
15646 * fold-const.c (extract_muldiv_1): Apply distributive law
15647 only if TYPE_OVERFLOW_WRAPS (ctype).
15648
b8578ff7
BC
156492013-04-11 Bin Cheng <bin.cheng@arm.com>
15650
15651 PR target/56124
15652 * ira-costs.c (scan_one_insn): Check whether the source rtx of
15653 loading has side effect.
15654
0ea8a6f9
SB
156552013-04-10 Steven Bosscher <steven@gcc.gnu.org>
15656
15657 * config/sparc/sparc.c: Include tree-pass.h.
15658 (TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
15659 (sparc_reorg): Rename to sparc_do_work_around_errata. Move to
15660 head of file. Change return type. Split off gate function.
15661 (sparc_gate_work_around_errata): New function.
15662 (pass_work_around_errata): New pass definition.
15663 (insert_pass_work_around_errata) New pass insert definition to
15664 insert pass_work_around_errata just after delayed-branch scheduling.
15665 (sparc_option_override): Insert the pass.
15666 * config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.
15667
42e37616
DM
156682013-04-10 David S. Miller <davem@davemloft.net>
15669
89deeb3b
DM
15670 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc
15671 or -mcpu=hypersparc.
15672
42e37616
DM
15673 * target.def (cstore_mode): New hook.
15674 * target.h: Include insn-codes.h
15675 * targhooks.c: Likewise.
15676 (default_cstore_mode): New function.
15677 * targhooks.h: Declare it.
15678 * doc/tm.texi.in: New hook slot for TARGET_CSTORE_MODE.
15679 * doc/tm.texi: Rebuild.
15680 * expmed.c (emit_cstore): Obtain cstore boolean result mode using
15681 target hook, rather than inspecting the insn_data.
15682 * config/sparc/sparc.c (sparc_cstore_mode): New function.
15683 (TARGET_CSTORE_MODE): Redefine.
15684 (emit_scc_insn): When TARGET_ARCH64, emit new 64-bit boolean
15685 result patterns.
15686 * config/sparc/predicates.md (cstore_result_operand): New special
15687 predicate.
15688 * config/sparc/sparc.md (cstoresi4, cstoredi4, cstore<F:mode>4):
15689 Use it for operand 0.
15690 (*seqsi_special): Rewrite using 'P' mode iterator on operand 0.
15691 (*snesi_special): Likewise.
15692 (*snesi_zero): Likewise.
15693 (*seqsi_zero): Likewise.
15694 (*sltu_insn): Likewise.
15695 (*sgeu_insn): Likewise.
15696 (*seqdi_special): Make operand 0 and comparison operation be of
15697 DImode.
15698 (*snedi_special): Likewise.
15699 (*snedi_special_vis3): Likewise.
15700 (*neg_snesi_zero): Rename to *neg_snesisi_zero.
15701 (*neg_snesi_sign_extend): Rename to *neg_snesidi_zero.
15702 (*snesi_zero_extend): Delete, covered by 'P' mode iterator.
15703 (*neg_seqsi_zero): Rename to *neg_seqsisi_zero.
15704 (*neg_seqsi_sign_extend): Rename to *neg_seqsidi_zero.
15705 (*seqsi_zero_extend): Delete, covered by 'P' mode iterator.
15706 (*sltu_extend_sp64): Likewise.
15707 (*neg_sltu_insn): Rename to *neg_sltusi_insn.
15708 (*neg_sltu_extend_sp64): Rename to *neg_sltudi_insn.
15709 (*sgeu_extend_sp64): Delete, covered by 'P' mode iterator.
15710 (*neg_sgeu_insn): Rename to *neg_sgeusi_insn.
15711 (*neg_sgeu_extend_sp64): Rename to *neg_sgeudi_insn.
15712
95ca411e
YZ
157132013-04-10 Yufeng Zhang <yufeng.zhang@arm.com>
15714
15715 * config/aarch64/aarch64.c (aarch64_print_extension): New function.
15716 (aarch64_start_file): Use the new function.
15717
6782438d 157182013-04-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
33159866 15719 Jason Merrill <jason@redhat.com>
6782438d
SKS
15720
15721 * common.opt: Add -gdwarf.
15722 * opts.c (common_handle_option): Handle it.
15723 * gcc.c (ASM_DEBUG_SPEC): Don't expect "-2" for DWARF.
15724
bb313b93
RB
157252013-04-10 Richard Biener <rguenther@suse.de>
15726
15727 * passes.c (execute_todo): Do not call ggc_collect conditional here.
15728 (execute_one_ipa_transform_pass): But unconditionally here.
15729 (execute_one_pass): And here.
15730 (init_optimization_passes): Remove reload pass.
15731 * tree-pass.h (TODO_ggc_collect): Remove.
15732 (pass_reload): Likewise.
15733 * ira.c (do_reload): Merge into ...
15734 (ira): ... this.
15735 (rest_of_handle_reload): Remove.
15736 (pass_reload): Likewise.
15737 * config/i386/i386.c (ix86_option_override): Refer to ira instead
15738 of reload for vzeroupper pass placement.
15739 * <everywhere>: Remove TODO_ggc_collect from todo_flags_start
15740 and todo_flags_finish of all passes.
15741
793d9a16
RB
157422013-04-10 Richard Biener <rguenther@suse.de>
15743
15744 * tree-vectorizer.h (struct _slp_oprnd_info): Remove
15745 first_const_oprnd field, rename first_def_type to first_op_type.
15746 * tree-vect-slp.c (vect_create_oprnd_info): Adjust.
15747 (vect_get_and_check_slp_defs): Always use the type of the
15748 operand. Allow mixed vect_external_def, vect_constant_def types.
15749 (vect_get_constant_vectors): Handle mixed vect_external_def,
15750 vect_constant_def types.
15751
12211b99 157522013-04-10 Joern Rennecke <joern.rennecke@embecosm.com>
ee8a9b7b
JR
15753
15754 PR tree-optimization/55524
15755 * tree-ssa-math-opts.c
15756 (convert_mult_to_fma): Don't use an fms construct
15757 when we don't have an fms operation, but fnma, and it looks
15758 likely that we'll be able to use the latter.
15759
12211b99 157602013-04-10 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
6957a6f6
ZZ
15761
15762 * cif-code.def (OVERWRITABLE): Correct the comment for overwritable
15763 function.
15764 * ipa-inline.c (can_inline_edge_p): Let dump mechanism report the
15765 inline fail caused by overwritable functions.
15766
34ab4a5b
CJW
157672013-04-10 Chung-Ju Wu <jasonwucj@gmail.com>
15768
15769 * combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out
15770 unnecessary bits in the constant power of two case.
15771
abf9bfbc
RB
157722013-04-10 Richard Biener <rguenther@suse.de>
15773
15774 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
15775 broken code swapping operands.
15776 (vect_build_slp_tree): Do not compute load permutations here.
15777 (vect_analyze_slp_instance): Compute load permutations here,
15778 after building the SLP tree.
15779
f408477e
CB
157802013-04-09 Christian Bruel <christian.bruel@st.com>
15781
15782 * config/sh/sh.md (barrier_align): Use next/prev_active_insn instead
15783 of next/prev_real_insn.
15784
5ac42672
JH
157852013-04-09 Jan Hubicka <jh@suse.cz>
15786
abf9bfbc
RB
15787 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
15788 Drop aliased parameter.
5ac42672
JH
15789 (function_and_variable_visibility): Do not handle alias pairs.
15790 * cgraph.c (varpool_externally_visible_p): Update prototype.
15791 * varpool.c (varpool_add_new_variable): Update.
15792
5017f1d2
KT
157932013-04-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15794
15795 * config/arm/arm.md (minmax_arithsi_non_canon): New pattern.
15796
48eecbee
SB
157972013-04-09 Steven Bosscher <steven@gcc.gnu.org>
15798
a949cf1c
SB
15799 * sched-vis.c (print_pattern): Print SEQUENCE of insns as insns.
15800
48eecbee
SB
15801 * config/sparc/sparc.md: Use define_c_enum for "unspec" and "unspecv".
15802
75ef8e3d
MP
158032013-04-09 Marek Polacek <polacek@redhat.com>
15804
15805 PR tree-optimization/48762
33159866 15806 * params.def (PARAM_MAX_CSE_INSNS): Increase the minimum value to 1.
75ef8e3d 15807
23847df4
RB
158082013-04-09 Richard Biener <rguenther@suse.de>
15809
15810 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove code
15811 dealing with cost.
15812 (vect_build_slp_tree): Likewise.
15813 (vect_analyze_slp_cost_1, vect_analyze_slp_cost): New functions
15814 calculating the cost of a SLP instance.
15815 (vect_analyze_slp_instance): Use it from here, after building
15816 the SLP tree.
15817
ea3a0fde
JJ
158182013-04-09 Jakub Jelinek <jakub@redhat.com>
15819
15820 PR middle-end/56883
15821 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
15822 expand_omp_for_static_chunk): Use simple_p = true in
15823 force_gimple_operand_gsi calls when assigning to addressable decls.
15824
a32dfe9d
JL
158252013-04-09 Jeff Law <law@redhat.com>
15826
15827 * tree-vrp.c (simplify_cond_using_ranges): Simplify test of boolean
15828 when the boolean was created by converting a wider object which
15829 had a boolean range.
15830
d755c7ef
RB
158312013-04-09 Richard Biener <rguenther@suse.de>
15832
15833 * tree-vectorizer.h (slp_void_p): Remove.
15834 (slp_tree): Typedef before _slp_tree declaration.
15835 (struct _slp_tree): Use a vector of slp_tree as children.
15836 (vect_get_place_in_interleaving_chain): Remove.
15837 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain):
15838 Move ...
15839 * tree-vect-slp.c (vect_get_place_in_interleaving_chain): ... here
15840 and make static.
15841 (vect_free_slp_tree, vect_print_slp_tree, vect_mark_slp_stmts,
15842 vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
15843 vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
15844 vect_schedule_slp_instance, vect_remove_slp_scalar_calls):
15845 Use slp_node instead of slp_void_p and adjust.
15846
3d741091
RB
158472013-04-09 Richard Biener <rguenther@suse.de>
15848
15849 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Avoid
15850 work that is not necessary.
15851
39307ba7
JJ
158522013-04-09 Jakub Jelinek <jakub@redhat.com>
15853
15854 PR tree-optimization/56854
15855 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't
15856 forward into clobber stmts if it would change MEM_REF lhs into
15857 non-MEM_REF.
15858
343881fd
MK
158592013-04-09 Maxim Kuvyrkov <maxim@kugelworks.com>
15860
15861 * tree.c (type_hash_lookup, type_hash_add): Make static.
15862 * tree.h (type_hash_lookup, type_hash_add): Remove global declarations.
15863
3922658a
RB
158642013-04-09 Richard Biener <rguenther@suse.de>
15865
15866 * tree.h (unsave_expr_now): Remove.
15867 * tree-inline.c (mark_local_for_remap_r): Remove.
15868 (unsave_expr_1): Likewise.
15869 (unsave_r): Likewise.
15870 (unsave_expr_now): Likewise.
15871 * tree-ssa-copy.c (replace_exp_1): Use unshare_expr.
15872 (propagate_tree_value): Likewise.
15873
9fb6b620
SB
158742013-04-08 Steven Bosscher <steven@gcc.gnu.org>
15875
15876 * doc/rtl.texi (sequence): Rewrite documentation to match the
15877 current use of SEQUENCE rtl objects.
15878 * rtl.def (SEQUENCE): Likewise.
15879
15880 * doc/rtl.texi (NOTE_INSN_EH_REGION_BEG, NOTE_INSN_EH_REGION_END):
15881 Update documentation.
15882 (NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_END, NOTE_INSN_LOOP_CONT,
15883 NOTE_INSN_LOOP_VTOP): Remove documentation for non-existing notes.
15884
15885 * reg-notes.def (REG_EH_CONTEXT): Remove unused note.
15886
8ddb5a29
TJ
158872013-04-08 Teresa Johnson <tejohnson@google.com>
15888
15889 * basic-block.h (GCOV_COMPUTE_SCALE): Define.
15890 * ipa-inline-analysis.c (param_change_prob): Use helper rounding divide
33159866 15891 methods.
8ddb5a29
TJ
15892 (estimate_edge_size_and_time): Add comment to suggest using rounding
15893 methods.
15894 (estimate_node_size_and_time): Ditto.
15895 (remap_edge_change_prob): Use helper rounding divide methods.
15896 * value-prof.c (gimple_divmod_fixed_value_transform): Ditto.
15897 (gimple_mod_pow2_value_transform): Ditto.
15898 (gimple_mod_subtract_transform): Ditto.
15899 (gimple_ic_transform): Ditto.
15900 (gimple_stringops_transform): Ditto.
15901 * stmt.c (conditional_probability): Ditto.
15902 (emit_case_dispatch_table): Ditto.
15903 * lto-cgraph.c (merge_profile_summaries): Ditto.
15904 * tree-optimize.c (execute_fixup_cfg): Ditto.
15905 * cfgcleanup.c (try_forward_edges): Ditto.
15906 * cfgloopmanip.c (scale_loop_profile): Ditto.
15907 (loopify): Ditto.
15908 (duplicate_loop_to_header_edge): Ditto.
15909 (lv_adjust_loop_entry_edge): Ditto.
15910 * tree-vect-loop.c (vect_transform_loop): Ditto.
15911 * profile.c (compute_branch_probabilities): Ditto.
15912 * cfgbuild.c (compute_outgoing_frequencies): Ditto.
15913 * lto-streamer-in.c (input_cfg): Ditto.
15914 * gimple-streamer-in.c (input_bb): Ditto.
15915 * ipa-cp.c (update_profiling_info): Ditto.
15916 (update_specialized_profile): Ditto.
15917 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Ditto.
15918 * cfg.c (update_bb_profile_for_threading): Add comment to suggest using
33159866 15919 rounding methods.
8ddb5a29
TJ
15920 * sched-rgn.c (compute_dom_prob_ps): Ditto.
15921 (compute_trg_info): Ditto.
15922 * cfgrtl.c (force_nonfallthru_and_redirect): Ditto.
15923 (purge_dead_edges): Ditto.
15924 * loop-unswitch.c (unswitch_loop): Ditto.
15925 * cgraphclones.c (cgraph_clone_edge): Ditto.
15926 (cgraph_clone_node): Ditto.
15927 * tree-inline.c (copy_bb): Ditto.
15928 (copy_edges_for_bb): Ditto.
15929 (initialize_cfun): Ditto.
15930 (copy_cfg_body): Ditto.
15931 (expand_call_inline): Ditto.
15932
661e6bd7
KT
159332013-04-08 Kai Tietz <ktietz@redhat.com>
15934
15935 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Replaced
15936 TARGET_CYGWIN64 by TARGET_64BIT.
15937
105766f3
JR
159382013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
15939
15940 * config/epiphany/epiphany.md (GPR_1): New constant.
15941 (define_expand "mov<mode>cc): FAIL if gen_compare_reg returned 0.
15942 * config/epiphany/epiphany.c (gen_compare_reg):
15943 For flag_finite_math_only, avoid swapping operands when r0 and/or r1
15944 is already in place.
15945 Use GPR_0 / GPR_1 instead of 0/1 for r0/r1 register numbers.
15946 Don't require being called during rtl expansion; If y operlaps r0,
15947 return 0.
15948 (epiphany_compute_frame_size, epiphany_expand_prologue): Use GPR_1.
15949 (epiphany_expand_epilogue): Likewise.
15950
8afab237
JR
15951 * config/epiphany/epiphany.c (epiphany_select_cc_mode):
15952 Don't use CC_FPmode for ORDERED / UNORDERED.
33159866 15953 * config/epiphany/epiphany.md (cmpsf_ord): Make pattern unconditional.
8afab237 15954
fa7707d6
JR
15955 * config/epiphany/constraints.md (CnL): New constraint.
15956 * config/epiphany/epiphany.md (addsi3_i): Add r/r/CnL alternative.
15957 * config/epiphany/predicates.md (add_operand): Allow 1024.
15958
5138e18d
JR
15959 * config/epiphany/epiphany.md (logical_op): New code iterator.
15960 (op_mnc): New code attribute.
15961 (<op_mnc>_f, mov_f, cstoresi4): New patterns.
15962 (mov_f+1, mov_f+2): New peephole2 patterns.
15963
2ccc703d
JR
15964 * config/epiphany/epiphany.md (mov_f+2): New peephole2 pattern.
15965 (cstoresi4): Also allow re-use of zero result when doing a NE
15966 comparison to a non-zero operand.
aefb0819 15967 Use (clobber (scratch)) for first insn if the gpr output is not needed.
2ccc703d 15968
093ac0a5
JR
15969 * config/epiphany/epiphany.md (<insn_opname>v2si3):
15970 Use gen_addsi3_i / gen_subsi3_i.
15971
f223bb13
JJ
159722013-04-08 Jakub Jelinek <jakub@redhat.com>
15973
15974 PR c++/34949
15975 PR c++/50243
15976 * tree-eh.c (optimize_clobbers): Only remove clobbers if bb doesn't
15977 contain anything but clobbers, at most one __builtin_stack_restore,
15978 optionally debug stmts and final resx, and if it has at least one
15979 incoming EH edge. Don't check for SSA_NAME on LHS of a clobber.
15980 (sink_clobbers): Don't check for SSA_NAME on LHS of a clobber.
15981 Instead of moving clobbers with MEM_REF LHS with SSA_NAME address
15982 which isn't defaut definition, remove them.
15983 (unsplit_eh, cleanup_empty_eh): Use single_{pred,succ}_{p,edge}
15984 instead of EDGE_COUNT comparisons or EDGE_{PRED,SUCC}.
15985 * tree-ssa-ccp.c (execute_fold_all_builtins): Remove clobbers
15986 with MEM_REF LHS with SSA_NAME address.
15987
4481581f
JL
159882013-04-08 Jeff Law <law@redhat.com>
15989
15990 * gimple.c (canonicalize_cond_expr_cond): Rewrite x ^ y into x != y.
a32dfe9d 15991
451dabda
RB
159922013-04-08 Richard Biener <rguenther@suse.de>
15993
15994 * gimple-pretty-print.c (debug_gimple_stmt): Do not print
15995 extra newline.
15996 * tree-vect-loop.c (vect_determine_vectorization_factor): Dump
15997 determined vector type.
15998 (vect_analyze_data_refs): Likewise.
15999 (vect_get_new_vect_var): Adjust.
16000 (vect_create_destination_var): Preserve SSA name versions.
16001 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Do
16002 not dump anything here.
16003
3b088b47
JR
160042013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
16005
16006 * config/epiphany/epiphany.h (struct GTY (()) machine_function):
16007 Add member lr_slot_known.
16008 * config/epiphany/epiphany.md (reload_insi_ra): Compute lr_slot_offs
16009 if necessary.
16010 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
16011 Remove code that sets lr_slot_offset according to what a previous
16012 version of epiphany_emit_save_restore used to do.
16013 (epiphany_emit_save_restore): When doing an lr save or restore,
16014 set/verify lr_slot_known and lr_slot_offset.
16015
d8484d41
XQ
160162013-04-08 Xinyu Qi <xyqi@marvell.com>
16017
33159866
UB
16018 PR target/54338
16019 * config/arm/arm.h (REG_CLASS_CONTENTS): Include IWMMXT_GR_REGS
d8484d41
XQ
16020 in ALL_REGS.
16021
481be1c4
RB
160222013-04-08 Richard Biener <rguenther@suse.de>
16023
16024 * alias.c (find_base_term): Fix thinko in previous change.
16025
401f3a81
JJ
160262013-04-08 Jakub Jelinek <jakub@redhat.com>
16027
16028 * tree-loop-distribution.c (const_with_all_bytes_same): New function.
16029 (generate_memset_builtin): Only handle integer_all_onesp as -1 val if
16030 TYPE_PRECISION is equal to mode bitsize. Use const_with_all_bytes_same
16031 if possible to compute val.
16032 (classify_partition): Verify CONSTRUCTOR doesn't have any elts.
16033 For QImode integers don't require anything about precision. Use
16034 const_with_all_bytes_same to find out if the constant doesn't have
16035 repeated bytes in it.
16036
03ed99a8
AK
160372013-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16038
16039 * config/s390/s390.c (s390_expand_insv): Only accept insertions
16040 within mode size.
16041
781b2e62
MP
160422013-04-08 Marek Polacek <polacek@redhat.com>
16043
16044 PR rtl-optimization/48182
16045 * params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
16046 value to 1.
16047
27e430a2
JDA
160482013-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16049
16050 PR target/55487
16051 * config/pa/pa.c (legitimize_pic_address): Before incrementing label
16052 nuses, make sure we have a label.
16053
4902aa64
BS
160542013-04-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16055
16056 PR target/56843
16057 * config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
16058 (rs6000_emit_swdiv_low_precision): Remove.
16059 (rs6000_emit_swdiv): Rewrite to handle between one and four
16060 iterations of Newton-Raphson generally; modify required number of
16061 iterations for some cases.
16062 * config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.
16063
7bca81dc
SB
160642013-04-05 Steven Bosscher <steven@gcc.gnu.org>
16065
16066 * bb-reorder.c (fix_crossing_unconditional_branches): Remove a
16067 set-but-unused variable.
16068
16069 * cgraph.c (cgraph_release_function_body): Clear cfun->cfg to make
16070 basic blocks of released function bodies garbage-collectable.
16071
16072 * ree.c (find_and_remove_re): Do not call df_finish_pass here.
16073 (struct rtl_opt_pass): Add TODO_df_finish.
16074
16075 * rtl.def (DEFINE_SUBST, DEFINE_SUBST_ATTR): Add documentation.
16076
4542a38a
GY
160772013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16078
16079 * config/arm/constraints.md (q): New constraint.
16080 * config/arm/ldrdstrd.md: New file.
16081 * config/arm/arm.md (ldrdstrd.md) New include.
16082 (arm_movdi): Use "q" instead of "r" constraint
16083 for double-word memory access.
16084 (movdf_soft_insn): Likewise.
16085 * config/arm/vfp.md (movdi_vfp): Likewise.
16086 * config/arm/t-arm (MD_INCLUDES): Add ldrdstrd.md.
33159866 16087 * config/arm/arm-protos.h (gen_operands_ldrd_strd): New declaration.
4542a38a
GY
16088 * config/arm/arm.c (gen_operands_ldrd_strd): New function.
16089 (mem_ok_for_ldrd_strd): Likewise.
16090 (output_move_double): Update assertion.
16091
2385b218
GY
160922013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16093
16094 * config/arm/arm.md: Comment on splitting Thumb1 patterns.
16095
75fe1cb5
GY
160962013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16097
16098 * config/arm/arm.md (arm_smax_insn): Convert define_insn into
16099 define_insn_and_split.
16100 (arm_smin_insn,arm_umaxsi3,arm_uminsi3): Likewise.
16101
dd660e8e
GY
161022013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16103
16104 * config/arm/arm.md (arm_ashldi3_1bit): Convert define_insn into
16105 define_insn_and_split.
33159866 16106 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
dd660e8e
GY
16107 (shiftsi3_compare): New pattern.
16108 (rrx): New pattern.
16109 * config/arm/unspecs.md (UNSPEC_RRX): New.
16110
045e472c
GY
161112013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16112
16113 * config/arm/arm.md (negdi_extendsidi): New pattern.
16114 (negdi_zero_extendsidi): Likewise.
16115
3f3bf1a8
GY
161162013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16117
16118 * config/arm/arm.md (andsi_iorsi3_notsi): Convert define_insn into
16119 define_insn_and_split.
16120 (arm_negdi2,arm_abssi2,arm_neg_abssi2): Likewise.
16121 (arm_cmpdi_insn,arm_cmpdi_unsigned): Likewise.
16122
b0b49556
GY
161232013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16124
16125 * config/arm/arm.md (arm_subdi3): Convert define_insn into
16126 define_insn_and_split.
16127 (subdi_di_zesidi,subdi_di_sesidi): Likewise.
16128 (subdi_zesidi_di,subdi_sesidi_di,subdi_zesidi_zesidi): Likewise.
16129
d633dd84
GY
161302013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16131
16132 * config/arm/arm.md (subsi3_carryin): New pattern.
16133 (subsi3_carryin_const): Likewise.
16134 (subsi3_carryin_compare,subsi3_carryin_compare_const): Likewise.
16135 (subsi3_carryin_shift,rsbsi3_carryin_shift): Likewise.
16136
f4499066
GY
161372013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16138
16139 * config/arm/arm.md (incscc,arm_incscc,decscc,arm_decscc): Delete.
16140
ceef6fd9
GY
161412013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
16142
16143 * config/arm/arm.md (addsi3_carryin_<optab>): Set attribute predicable.
d633dd84 16144 (addsi3_carryin_alt2_<optab>,addsi3_carryin_shift_<optab>): Likewise.
ceef6fd9 16145
ddbdd8a7
KT
161462013-04-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16147
16148 * config/arm/arm.c (arm_expand_builtin): Change fcode
16149 type to unsigned int.
16150
8456d78a
RR
161512013-04-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16152
16153 * doc/invoke.texi (ARM Options): Document cortex-a53 support.
16154
526c230f
ILT
161552013-04-04 Ian Lance Taylor <iant@google.com>
16156
33159866
UB
16157 * doc/standards.texi (Standards): The Go frontend supports the Go 1
16158 language standard.
526c230f 16159
3cfbe04d
SB
161602013-04-04 Steven Bosscher <steven@gcc.gnu.org>
16161
16162 PR middle-end/56729
16163 * df-scan.c (df_insn_delete): Disable failing assert.
16164
dfa3f8d0
KT
161652013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16166
16167 * config/arm/arm-protos.h (arm_builtin_vectorized_function):
16168 New function prototype.
16169 * config/arm/arm.c (TARGET_VECTORIZE_BUILTINS): Define.
16170 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise.
16171 (arm_builtin_vectorized_function): New function.
16172
f7837758
KT
161732013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16174
16175 * config/arm/arm_neon_builtins.def: New file.
16176 * config/arm/arm.c (neon_builtin_data): Move contents to
16177 arm_neon_builtins.def.
16178 (enum arm_builtins): Include neon builtin definitions.
16179 (ARM_BUILTIN_NEON_BASE): Move from enum to macro.
33159866 16180 * config/arm/t-arm (arm.o): Add dependency on arm_neon_builtins.def.
f7837758 16181
39c1b6db
MP
161822013-04-04 Marek Polacek <polacek@redhat.com>
16183
16184 PR tree-optimization/48186
16185 * predict.c (maybe_hot_frequency_p): Return false if
16186 HOT_BB_FREQUENCY_FRACTION is 0.
16187 (cgraph_maybe_hot_edge_p): Likewise.
16188
314f64eb
RB
161892013-04-04 Richard Biener <rguenther@suse.de>
16190
16191 PR tree-optimization/56826
16192 * tree-vect-slp.c (vect_build_slp_tree): Compute ncopies
16193 more accurately.
16194
51a905b2
RB
161952013-04-04 Richard Biener <rguenther@suse.de>
16196
16197 PR tree-optimization/56213
16198 * tree-vect-data-refs.c (vect_check_strided_load): Remove.
33159866 16199 (vect_analyze_data_refs): Allow all non-nested loads as strided loads.
51a905b2 16200
f1bf4f3a
RB
162012013-04-04 Richard Biener <rguenther@suse.de>
16202
16203 PR tree-optimization/56837
16204 * tree-loop-distribution.c (classify_partition): For non-zero
16205 values require that the value has the same precision as its
16206 mode to be useful as memset value.
16207
0bca7ded
NC
162082013-04-03 Nick Clifton <nickc@redhat.com>
16209
33159866 16210 * config/v850/v850e3v5.md (fmasf4): Use fmaf.s on E3V5 architectures.
0bca7ded
NC
16211 (fmssf4): Use fmsf.s on E3V5 architectures.
16212 (fnmasf4): Use fnmaf.s on E3V5 architectures.
16213 (fnmssf4): Use fnmsf.s on E3V5 architectures.
16214
b4019227
JL
162152013-04-03 Jeff Law <law@redhat.com>
16216
16217 * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
16218 (lra-eliminations.o): Likewise.
16219
f57ddb5b
TJ
162202013-04-03 Teresa Johnson <tejohnson@google.com>
16221
16222 * gcov-io.c (compute_working_sets): Moved most of body of old
33159866 16223 compute_working_sets here from profile.c.
f57ddb5b 16224 * gcov-io.h (NUM_GCOV_WORKING_SETS): Moved here from profile.c.
33159866
UB
16225 (gcov_working_set_t): Moved typedef here from basic-block.h
16226 (compute_working_set): Declare.
f57ddb5b
TJ
16227 * profile.c (NUM_GCOV_WORKING_SETS): Moved to gcov-io.h.
16228 (get_working_sets): Renamed from compute_working_set,
33159866 16229 replace most of body with call to new compute_working_sets.
f57ddb5b 16230 (get_exec_counts): Replace call to compute_working_sets
33159866
UB
16231 to get_working_sets.
16232 * profile.h (get_working_sets): Renamed from compute_working_set.
f57ddb5b 16233 * lto-cgraph.c (input_symtab): Replace call to compute_working_sets
33159866 16234 to get_working_sets.
f57ddb5b
TJ
16235 * basic-block.h (gcov_working_set_t): Moved to gcov-io.h.
16236 * gcov-dump.c (dump_working_sets): New function.
16237
12211b99 162382013-04-03 Kenneth Zadeck <zadeck@naturalbridge.com>
5e0919f1
KZ
16239
16240 * hwint.c (sext_hwi, zext_hwi): New functions.
16241 * hwint.h (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT,
16242 HOST_HALF_WIDE_INT_PRINT, HOST_HALF_WIDE_INT_PRINT_C,
16243 HOST_HALF_WIDE_INT_PRINT_DEC, HOST_HALF_WIDE_INT_PRINT_DEC_C,
16244 HOST_HALF_WIDE_INT_PRINT_UNSIGNED, HOST_HALF_WIDE_INT_PRINT_HEX,
16245 HOST_HALF_WIDE_INT_PRINT_HEX_PURE): New symbols.
16246 (sext_hwi, zext_hwi): New functions.
0bca7ded 16247
be672e08
JL
162482013-04-03 Jeff Law <law@redhat.com>
16249
16250 PR tree-optimization/56799
33159866
UB
16251 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Bring
16252 back test for widening conversion erroneously dropped in prior change.
be672e08 16253
9d821fa5
KT
162542013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16255
16256 PR target/56809
16257 * config/aarch64/aarch64.c (is_jump_table): Use next_active_insn
16258 instead of next_real_insn.
16259
71c581e7
MP
162602013-04-03 Marek Polacek <polacek@redhat.com>
16261
16262 PR sanitizer/55702
33159866 16263 * tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN functions.
71c581e7 16264
4a32ef80
KT
162652013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16266
16267 PR target/56809
16268 * config/arm/arm.c (is_jump_table): Use next_active_insn instead of
16269 next_real_insn.
16270 (thumb1_output_casesi): Likewise.
16271 (thumb2_output_casesi): Likewise.
16272
1b2253d4
RB
162732013-04-03 Richard Biener <rguenther@suse.de>
16274
16275 PR tree-optimization/56817
16276 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
16277 Split out ...
16278 (tree_unroll_loops_completely_1): ... new function to manually
16279 walk the loop tree, properly defering outer loops of unrolled
16280 loops to later iterations.
16281
38000232
MG
162822013-04-03 Marc Glisse <marc.glisse@inria.fr>
16283
16284 * tree-vect-stmts.c (vectorizable_store): Accept BIT_FIELD_REF.
16285 (vectorizable_load): Likewise.
16286 * tree-vect-slp.c (vect_build_slp_tree): Likewise.
16287 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Handle VECTOR_TYPE.
16288
3fa35298
MG
162892013-04-03 Marc Glisse <marc.glisse@inria.fr>
16290
16291 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Handle
16292 BIT_FIELD_REF.
16293
b3d45ff0
UW
162942013-04-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16295
16296 * config/spu/spu.c (emit_nop_for_insn): Handle JUMP_TABLE_DATA.
16297
ec9202a8
BC
162982013-04-03 Bin Cheng <bin.cheng@arm.com>
16299
16300 * rtl.h (AUTO_INC_DEC): Fix typo of HAVE_POST_MODIFY_DISP.
16301
6805bd36
MG
163022013-04-03 Marc Glisse <marc.glisse@inria.fr>
16303
16304 PR tree-optimization/56790
33159866
UB
16305 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Add constant
16306 folding.
6805bd36 16307
da694a77
MG
163082013-04-03 Marc Glisse <marc.glisse@inria.fr>
16309
16310 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
16311 Handle VEC_MERGE.
16312 (simplify_ternary_operation) <VEC_MERGE>: Use unsigned HOST_WIDE_INT
16313 for masks. Test for side effects. Handle nested VEC_MERGE. Handle
16314 equal arguments.
16315
4e7d7b3d
JJ
163162013-04-03 Jakub Jelinek <jakub@redhat.com>
16317
16318 PR c/19449
16319 * tree.h (force_folding_builtin_constant_p): New decl.
16320 * builtins.c (force_folding_builtin_constant_p): New variable.
16321 (fold_builtin_constant_p): Fold immediately also if
16322 force_folding_builtin_constant_p.
16323
e6c9d234
RB
163242013-04-03 Richard Biener <rguenther@suse.de>
16325
16326 PR tree-optimization/56812
16327 * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
16328 DRs of the same interleaving chain are independent.
16329
984d07dd
JM
163302013-04-02 Jason Merrill <jason@redhat.com>
16331
16332 * gdbinit.in (pbb): Use debug fn.
16333
622849c9
LC
163342013-04-02 Lawrence Crowl <crowl@google.com>
16335
16336 * sese.h (struct ivtype_map_elt_s): Remove unused.
16337 (extern debug_ivtype_map): Remove unused.
16338 (extern eq_ivtype_map_elts): Remove unused.
16339 * sese.c (debug_ivtype_map): Removed unused.
16340 (debug_ivtype_map_1): Removed unused.
16341 (debug_ivtype_elt): Remove unused.
16342 (eq_ivtype_map_elts): Remove unused.
16343
16344
82c0e1a0
KT
163452013-04-02 Kai Tietz <ktietz@redhat.com>
16346
16347 PR target/52790
16348 * config/i386/cygming.h (SUB_TARGET_RECORD_STUB): New sub-target macro.
16349 * config/i386/i386-protos.h (i386_pe_record_stub): Add new prototype.
33159866
UB
16350 * config/i386/i386.c (legitimize_pe_coff_extern_decl): New static
16351 function.
82c0e1a0
KT
16352 (legitimize_pe_coff_symbol): Likewise.
16353 (is_imported_p): New helper-function.
16354 (ix86_option_override_internal): Make MEDIUM_PIC the default code-model
16355 for Windows x64 targets.
16356 (ix86_expand_prologue): Optimize for pe-coff targets.
16357 (ix86_expand_split_stack_prologue): Adjust for pe-coff targets.
16358 (legitimate_pic_address_disp_p): Adjust for x64 pe-coff to support
16359 medium/large code-model.
16360 (legitimize_pic_address): Likewise.
16361 (legitimize_tls_address): Likewise.
16362 (ix86_expand_call): Likewise.
16363 (x86_output_mi_thunk): Likewise.
16364 (get_dllimport_decl): Add new beimport argument.
16365 (construct_plt_address): Don't assert for x64 pe-coff targets.
16366 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Adjust for x64 pe-coff
16367 targets.
16368 (SYMBOL_FLAG_STUBVAR): New macro.
16369 (SYMBOL_REF_STUBVAR_P): Likewise.
16370 * config/i386/winnt.c (stub_list): New structure.
16371 (stub_head): New local variable.
16372 (i386_pe_record_stub): New function.
16373 (i386_pe_file_end): Emit refptr-stubs.
16374
5d751b0c
JJ
163752013-04-02 Jakub Jelinek <jakub@redhat.com>
16376
09bb4c99
JJ
16377 PR rtl-optimization/56745
16378 * ifcvt.c (cond_exec_find_if_block): Don't try to optimize
16379 if then_bb has no successors and else_bb is EXIT_BLOCK_PTR.
16380
a1d8947a
JJ
16381 PR c++/34949
16382 * tree-ssa-alias.c (stmt_kills_ref_p_1): If base != ref->base
16383 and both of them are MEM_REFs, just compare first argument for
16384 equality and attempt to deal even with differing offsets.
16385
5d751b0c
JJ
16386 PR c++/34949
16387 * tree-cfg.c (verify_gimple_assign_single): Allow lhs
16388 of gimple_clobber_p to be MEM_REF.
16389 * gimplify.c (gimplify_modify_expr): Gimplify *to_p of
16390 an assignment from TREE_CLOBBER_P. Allow it to be MEM_REF
16391 after gimplification.
16392 * asan.c (get_mem_ref_of_assignment): Don't instrument
16393 gimple_clobber_p stmts.
16394 * tree-ssa-dse.c (dse_optimize_stmt): Allow DSE of
16395 gimple_clobber_p stmt if they have MEM_REF lhs and
16396 are dead because of another gimple_clobber_p stmt.
16397 * tree-ssa-live.c (clear_unused_block_pointer): Treat
16398 gimple_clobber_p stmts like debug stmts.
16399 (remove_unused_locals): Remove clobbers with MEM_REF lhs
16400 that refer to unused VAR_DECLs or uninitialized values.
16401 * tree-sra.c (sra_ipa_reset_debug_stmts): Also remove
16402 gimple_clobber_p stmts if they refer to removed parameters.
16403 (get_repl_default_def_ssa_name, sra_ipa_modify_expr): Fix up
16404 formatting.
16405
e594716a
UB
164062013-04-02 Uros Bizjak <ubizjak@gmail.com>
16407
16408 * config/i386/i386.md (*testqi_ext_3): Merge with *testqi_ext_3_rex64
16409 using SWI48 mode attribute.
16410
7a80735b
WM
164112013-04-02 Wei Mi <wmi@google.com>
16412
16413 * config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for
16414 ashl<mode>3_mask, *<shift_insn><mode>3_mask and
16415 *<rotate_insn><mode>3_mask in i386.md.
16416
f423a9e4
AI
164172013-04-02 Alexander Ivchenko <alexander.ivchenko@intel.com>
16418
16419 * config.gcc (arm*-*-linux-*): Remove duplicate t-linux-android.
16420
90eb75f2
RB
164212013-04-02 Richard Biener <rguenther@suse.de>
16422
16423 PR tree-optimization/56778
16424 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
16425 Runtime alias tests are not supported for gather loads.
16426 * tree-vect-loop-manip.c (vect_loop_versioning): Insert
16427 stmts referenced from SSA operands before updating SSA form.
16428
d8c69a92
IC
164292013-04-02 Ian Caulfield <ian.caulfield@arm.com>
16430 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16431
16432 * config/arm/arm-arches.def (armv8-a): Default to cortex-a53.
e594716a
UB
16433 * config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md.
16434 * config/arm/cortex-a53.md: New file.
16435 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53.
16436 * config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53.
16437 * config/arm/arm.c (arm_issue_rate): Likewise.
16438 * config/arm/arm-tune.md: Regenerate
16439 * config/arm/arm-tables.opt: Regenerate.
16440 * config/arm/arm-cores.def: Add cortex-a53.
d8c69a92 16441
239eb04c
ZC
164422013-04-02 Zhenqiang Chen <zhenqiang.chen@arm.com>
16443
16444 * config/arm/uclinux-elf.h: Add %L to LINK_GCC_C_SEQUENCE_SPEC for
16445 non-static link.
16446
c902d3c8
SN
164472013-04-02 Sofiane Naci <sofiane.naci@arm.com>
16448
d8c69a92
IC
16449 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add variants for
16450 scalar load/store operations using B/H registers.
c902d3c8
SN
16451 (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): Likewise.
16452
051d0e2f
SN
164532013-04-02 Sofiane Naci <sofiane.naci@arm.com>
16454
16455 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add alternatives for
16456 scalar move.
16457 * config/aarch64/aarch64.c
16458 (aarch64_simd_scalar_immediate_valid_for_move): New.
16459 * config/aarch64/aarch64-protos.h
16460 (aarch64_simd_scalar_immediate_valid_for_move): New.
16461 * config/aarch64/constraints.md (Dh, Dq): New.
16462 * config/aarch64/iterators.md (hq): New.
16463
0ee1e3d9
EB
164642013-04-02 Eric Botcazou <ebotcazou@adacore.com>
16465
16466 * reorg.c (get_branch_condition): Deal with conditional returns.
16467 (fill_simple_delay_slots): Remove dead code dealing with jumps.
16468
136fb3f7
WM
164692013-04-01 Wei Mi <wmi@google.com>
16470
16471 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn.
16472 Truncate operand 2 using %b asm operand modifier.
16473 (*<shift_insn><mode>3_mask): Ditto.
16474 (*<rotate_insn><mode>3_mask): Ditto.
16475
6388c738
SB
164762013-04-01 Steven Bosscher <steven@gcc.gnu.org>
16477
16478 PR middle-end/56798
16479 * cfgbuild.c (inside_basic_block_p): Restore check broken at r197234.
16480
f7a4d826
KK
164812013-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
16482
16483 * config/sh/sh.md (casesi_worker_1): Use next_active_insn instead
16484 of next_real_insn.
16485 (casesi_worker_2, casesi_shift_media, casesi_load_media): Likewise.
16486
4b943a49
LC
164872013-03-30 Lawrence Crowl <crowl@google.com>
16488
16489 * dse.c (clear_alias_sets): Remove never set.
16490 (disqualified_clear_alias_sets): Remove never set.
16491 (clear_alias_mode_pool): Remove never set.
16492 (dse_step0): Remove condition that is never true.
16493 (canon_address): Remove condition that is never true.
16494 (dse_step7): Remove condition that is never true.
16495 (rest_of_handle_dse): Remove condition that is never true.
16496 (rest_of_handle_dse::did_global): Remove never read from above.
16497 (dse_step2_spill): Remove never called from above.
16498 (dse_step5_spill): Remove never called from above.
16499
39718607
SB
165002013-03-30 Steven Bosscher <steven@gcc.gnu.org>
16501
da5c6bde
SB
16502 * doc/md.texi (Standard Names) <casesi>: Update documentation for
16503 JUMP_TABLE_DATA changes.
16504 * doc/tm.texi.in (Dispatch Tables) <ASM_OUTPUT_CASE_LABEL>: Likewise.
16505 * doc/rtl.texi (Flags) <INSN_DELETED_P, SCHED_GROUP_P>: Likewise.
16506 (Insns) <jump_table_data>: New entry.
16507 * doc/tm.texi: Regenerate.
16508
39718607
SB
16509 * cfgrtl.c (fixup_reorder_chain): Do not emit barriers to BB_FOOTER.
16510
16511 * postreload-gcse.c (bb_has_well_behaved_predecessors): Correct test
16512 for table jump at the end of a basic block using tablejump_p.
16513 * targhooks.c (default_invalid_within_doloop): Likewise.
16514 * config/rs6000/rs6000.c (TARGET_INVALID_WITHIN_DOLOOP): Remove
16515 target hook implementation that is identical to the default hook.
16516 (rs6000_invalid_within_doloop): Remove.
16517
16518 * bb-reorder.c (fix_crossing_unconditional_branches): Remove set but
16519 unused variable from tablejump_p call.
16520
16521 * rtl.def (JUMP_TABLE_DATA): New RTX_INSN object.
16522 * rtl.h (RTX_PREV, RTX_NEXT): Adjust for new JUMP_TABLE_DATA.
16523 (INSN_DELETED_P): Likewise.
16524 (emit_jump_table_data): New prototype.
16525 * gengtype.c (adjust_field_rtx_def): Handle JUMP_TABLE_DATA fields
16526 after 4th as unused.
16527 * print-rtl.c (print_rtl): Handle JUMP_TABLE_DATA.
16528 * sched-vis.c (print_insn): Likewise.
16529 * emit-rtl.c (active_insn_p): Consider JUMP_TABLE_DATA an active
16530 insn for compatibility with back ends that use next_active_insn to
16531 identify jump table data.
16532 (set_insn_deleted): Remove no longer useful JUMP_TABLE_DATA_P check.
16533 (remove_insn): Likewise.
16534 (emit_insn): Do not accept JUMP_TABLE_DATA objects in insn chains
16535 to be emitted.
16536 (emit_debug_insn, emit_jump_insn, emit_call_insn, emit_label): Idem.
16537 (emit_jump_table_data): New function.
16538
16539 * cfgbuild.c (inside_basic_block_p): A JUMP_INSN is always inside a
16540 basic block, a JUMP_TABLE_DATA never is.
16541 (control_flow_insn_p): JUMP_TABLE_DATA is not a control flow insn.
16542 * cfgrtl.c (duplicate_insn_chain): Split handling of JUMP_TABLE_DATA
16543 off from code handling real insns.
16544 * final.c (get_attr_length_1): Simplify for JUMP_INSNs.
16545 * function.c (instantiate_virtual_regs): Remove JUMP_TABLE_DATA_P
16546 test, now redundant because JUMP_TABLE_DATA is not an INSN_P insn.
16547 * gcse.c (insert_insn_end_basic_block): Likewise, JUMP_TABLE_DATA_P
16548 is not a NONDEBUG_INSN_P.
16549 * ira-costs.c (scan_one_insn): Likewise.
16550 * jump.c (mark_all_labels): Likewise.
16551 (mark_jump_label_1): Likewise.
16552 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
16553 * lra.c (get_insn_freq): Expect all insns reaching here to be in
16554 a basic block.
16555 (check_rtl): Remove JUMP_TABLE_DATA_P test, not a NONDEBUG_INSN_P insn.
16556 * predict.c (expensive_function_p): Use FOR_BB_INSNS.
16557 * reload1.c (calculate_needs_all_insns): Call set_label_offsets for
16558 JUMP_TABLE_DATA_P insns.
16559 (calculate_elim_costs_all_insns): Likewise.
16560 (set_label_offsets): Recurse on the PATTERN of JUMP_TABLE_DATA insns.
16561 (elimination_costs_in_insn): Remove redundant JUMP_TABLE_DATA_P test.
16562 (delete_output_reload): Code style fixups.
16563 * reorg.c (dbr_schedule): Move JUMP_TABLE_DATA_P up to avoid setting
16564 insn flags on this non-insn.
16565 * sched-rgn.c (add_branch_dependences): Treat JUMP_TABLE_DATA insns
16566 as scheduling barriers, for pre-change compatibility.
16567 * stmt.c (emit_case_dispatch_table): Emit jump table data not as
16568 JUMP_INSN objects but instead as JUMP_TABLE_DATA objects.
16569
16570 * config/alpha/alpha.c (alpha_does_function_need_gp): Remove
16571 redundant JUMP_TABLE_DATA_P test.
16572 * config/arm/arm.c (thumb_far_jump_used_p): Likewise.
16573 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
16574 (frv_for_each_packet): Likewise.
16575 * config/i386/i386.c (min_insn_size): Likewise.
16576 (ix86_avoid_jump_mispredicts): Likewise.
16577 * config/m32r/m32r.c (m32r_is_insn): Likewise.
16578 * config/mep/mep.c (mep_reorg_erepeat): Likewise.
16579 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
16580 (mips16_insn_length): Robustify.
16581 (mips_has_long_branch_p): Remove redundant JUMP_TABLE_DATA_P test.
16582 (mips16_split_long_branches): Likewise.
16583 * config/pa/pa.c (pa_combine_instructions): Likewise.
16584 * config/rs6000/rs6000.c (get_next_active_insn): Treat
16585 JUMP_TABLE_DATA objects as active insns, like in active_insn_p.
16586 * config/s390/s390.c (s390_chunkify_start): Treat JUMP_TABLE_DATA
16587 as contributing to pool range lengths.
16588 * config/sh/sh.c (find_barrier): Restore check for ADDR_DIFF_VEC.
16589 Remove redundant JUMP_TABLE_DATA_P test.
16590 (sh_loop_align): Likewise.
16591 (split_branches): Likewise.
16592 (sh_insn_length_adjustment): Likewise.
16593 * config/spu/spu.c (get_branch_target): Likewise.
16594
0208f7da
JH
165952013-03-29 Jan Hubicka <jh@suse.cz>
16596
16597 * lto-cgraph.c (output_profile_summary, input_profile_summary): Use
16598 gcov streaming; stream hot bb threshold to ltrans.
16599 * predict.c (get_hot_bb_threshold): Break out from ....
16600 (maybe_hot_count_p): ... here.
16601 (set_hot_bb_threshold): New function.
16602 * lto-section-in.c (lto_section_name): Add profile.
16603 * profile.h (get_hot_bb_threshold, set_hot_bb_threshold): Declare.
16604 * ipa.c: Include hash-table.h, tree-inline.h, profile.h, lto-streamer.h
16605 and data-streamer.h
16606 (histogram_entry): New structure.
16607 (histogram, histogram_pool): New global vars.
16608 (histogram_hash): New structure.
16609 (histogram_hash::hash): New method.
16610 (histogram_hash::equal): Likewise.
16611 (account_time_size): New function.
16612 (cmp_counts): New function.
16613 (dump_histogram): New function.
16614 (ipa_profile_generate_summary): New function.
16615 (ipa_profile_write_summary): New function.
16616 (ipa_profile_read_summary): New function.
16617 (ipa_profile): Decide on threshold.
e594716a
UB
16618 (pass_ipa_profile): Add ipa_profile_write_summary and
16619 ipa_profile_read_summary.
0208f7da
JH
16620 * Makefile.in (ipa.o): Update dependencies.
16621 * lto-streamer.h (LTO_section_ipa_profile): New section.
16622
5a6ccc94
GDR
166232013-03-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
16624
16625 * tree.h (VAR_P): New.
16626
39385fa6
PC
166272013-03-29 Paolo Carlini <paolo.carlini@oracle.com>
16628
16629 PR lto/56777
16630 * doc/invoke.texi ([-fwhole-program]): Fix typo.
16631
34f0d87a
SB
166322013-03-29 Steven Bosscher <steven@gcc.gnu.org>
16633
16634 * cfgbuild.c (inside_basic_block_p): Use JUMP_TABLE_DATA_P in lieu
16635 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
16636 (control_flow_insn_p): Likewise.
16637 * cfgrtl.c (duplicate_insn_chain): Likewise.
16638 * final.c (get_attr_length_1): Likewise.
16639 (shorten_branches): Likewise.
16640 (final_scan_insn): Likewise.
16641 * function.c (instantiate_virtual_regs): Likewise.
16642 * gcse.c (insert_insn_end_basic_block): Likewise.
16643 * ira-costs.c (scan_one_insn): Likewise.
16644 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
16645 * lra.c (check_rtl): Likewise.
16646 * reload1.c (elimination_costs_in_insn): Likewise.
16647 * reorg.c (follow_jumps): Likewise.
16648
16649 * config/arm/arm.c (is_jump_table): Use JUMP_TABLE_DATA_P in lieu
16650 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
16651 (thumb_far_jump_used_p): Likewise.
16652 * config/bfin/bfin.c (workaround_rts_anomaly): Likewise.
16653 (workaround_speculation): Likewise.
16654 (add_sched_insns_for_speculation): Likewise.
16655 * config/c6x/c6x.c (reorg_emit_nops): Likewise.
16656 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
16657 (frv_for_each_packet): Likewise.
16658 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Likewise.
16659 * config/ia64/ia64.c (emit_all_insn_group_barriers): Likewise.
16660 (final_emit_insn_group_barriers): Likewise.
16661 * config/m32r/m32r.c (m32r_is_insn): Likewise.
16662 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
16663 (mips16_insn_length): Likewise.
16664 * config/pa/pa.c (pa_reorg): Likewise.
16665 (pa_combine_instructions): Likewise.
16666 * config/rs6000/rs6000.c (rs6000_invalid_within_doloop): Likewise.
16667 * config/sh/sh.c (fixup_addr_diff_vecs): Likewise.
16668 (sh_reorg): Likewise.
16669 (split_branches): Likewise.
16670 * config/spu/spu.c (get_branch_target): Likewise.
16671
16672 * config/s390/s390.c (s390_chunkify_start): Simplify logic using
16673 JUMP_TABLE_DATA_P.
16674
4ac761b0
KY
166752013-03-29 Kirill Yukhin <kirill.yukhin@intel.com>
16676
39385fa6 16677 * config/i386/avx2intrin.h (_mm256_broadcastsi128_si256):
4ac761b0
KY
16678 Fix declaration name.
16679
58a49189
LC
166802013-03-28 Lawrence Crowl <crowl@google.com>
16681
16682 * graphds.h (struct graph.indicies): Remove unused.
16683 * graphite-poly.h (struct graph.original_pddrs): Remove unused.
16684 (SCOP_ORIGINAL_PDDRS): Remove unused.
16685 * sese.h (extern insert_loop_close_phis): Removed unused.
16686 (extern insert_guard_phis): Removed unused.
16687 (extern ivtype_map_elt_info): Removed unused.
16688 (new_ivtype_map_elt): Removed unused.
16689 * sese.c (ivtype_map_elt_info): Removed unused.
16690
7b3b6ae4
LC
166912013-03-28 Lawrence Crowl <crowl@google.com>
16692
16693 * Makefile.in: Add several missing include dependences.
16694 (DUMPFILE_H): New.
16695 (test-dump.o): New. This object is not added to any executable,
16696 but is present for ad-hoc testing.
16697 * bitmap.c
16698 (debug (const bitmap_head_def &)): New.
16699 (debug (const bitmap_head_def *)): New.
16700 * bitmap.h
16701 (extern debug (const bitmap_head_def &)): New.
16702 (extern debug (const bitmap_head_def *)): New.
16703 * cfg.c
16704 (debug (edge_def &)): New.
16705 (debug (edge_def *)): New.
16706 * cfghooks.c
16707 (debug (basic_block_def &)): New.
16708 (debug (basic_block_def *)): New.
16709 * dumpfile.h
16710 (dump_node (const_tree, int, FILE *)): Correct source file.
16711 * dwarf2out.c
16712 (debug (die_struct &)): New.
16713 (debug (die_struct *)): New.
16714 * dwarf2out.h
16715 (extern debug (die_struct &)): New.
16716 (extern debug (die_struct *)): New.
16717 * gimple-pretty-print.c
16718 (debug (gimple_statement_d &)): New.
16719 (debug (gimple_statement_d *)): New.
16720 * gimple-pretty-print.h
16721 (extern debug (gimple_statement_d &)): New.
16722 (extern debug (gimple_statement_d *)): New.
16723 * ira-build.c
16724 (debug (ira_allocno_copy &)): New.
16725 (debug (ira_allocno_copy *)): New.
16726 (debug (ira_allocno &)): New.
16727 (debug (ira_allocno *)): New.
16728 * ira-int.h
16729 (extern debug (ira_allocno_copy &)): New.
16730 (extern debug (ira_allocno_copy *)): New.
16731 (extern debug (ira_allocno &)): New.
16732 (extern debug (ira_allocno *)): New.
16733 * ira-lives.c
16734 (debug (live_range &)): New.
16735 (debug (live_range *)): New.
16736 * lra-int.h
16737 (debug (lra_live_range &)): New.
16738 (debug (lra_live_range *)): New.
16739 * lra-lives.c
16740 (debug (lra_live_range &)): New.
16741 (debug (lra_live_range *)): New.
16742 * omega.c
16743 (debug (omega_pb_d &)): New.
16744 (debug (omega_pb_d *)): New.
16745 * omega.h
16746 (extern debug (omega_pb_d &)): New.
16747 (extern debug (omega_pb_d *)): New.
16748 * print-rtl.c
16749 (debug (const rtx_def &)): New.
16750 (debug (const rtx_def *)): New.
16751 * print-tree.c
16752 (debug_tree (tree): Move within file.
16753 (debug_raw (const tree_node &)): New.
16754 (debug_raw (const tree_node *)): New.
16755 (dump_tree_via_hooks (const tree_node *, int)): New.
16756 (debug (const tree_node &)): New.
16757 (debug (const tree_node *)): New.
16758 (debug_verbose (const tree_node &)): New.
16759 (debug_verbose (const tree_node *)): New.
16760 (debug_head (const tree_node &)): New.
16761 (debug_head (const tree_node *)): New.
16762 (debug_body (const tree_node &)): New.
16763 (debug_body (const tree_node *)): New.
16764 (debug_vec_tree (tree): Move and reimplement in terms of dump.
16765 (debug (vec<tree, va_gc> &)): New.
16766 (debug (vec<tree, va_gc> *)): New.
16767 * rtl.h
16768 (extern debug (const rtx_def &)): New.
16769 (extern debug (const rtx_def *)): New.
16770 * sbitmap.c
16771 (debug_raw (simple_bitmap_def &)): New.
16772 (debug_raw (simple_bitmap_def *)): New.
16773 (debug (simple_bitmap_def &)): New.
16774 (debug (simple_bitmap_def *)): New.
16775 * sbitmap.h
16776 (extern debug (simple_bitmap_def &)): New.
16777 (extern debug (simple_bitmap_def *)): New.
16778 (extern debug_raw (simple_bitmap_def &)): New.
16779 (extern debug_raw (simple_bitmap_def *)): New.
16780 * sel-sched-dump.c
16781 (debug (vinsn_def &)): New.
16782 (debug (vinsn_def *)): New.
16783 (debug_verbose (vinsn_def &)): New.
16784 (debug_verbose (vinsn_def *)): New.
16785 (debug (expr_def &)): New.
16786 (debug (expr_def *)): New.
16787 (debug_verbose (expr_def &)): New.
16788 (debug_verbose (expr_def *)): New.
16789 (debug (vec<rtx> &)): New.
16790 (debug (vec<rtx> *)): New.
16791 * sel-sched-dump.h
16792 (extern debug (vinsn_def &)): New.
16793 (extern debug (vinsn_def *)): New.
16794 (extern debug_verbose (vinsn_def &)): New.
16795 (extern debug_verbose (vinsn_def *)): New.
16796 (extern debug (expr_def &)): New.
16797 (extern debug (expr_def *)): New.
16798 (extern debug_verbose (expr_def &)): New.
16799 (extern debug_verbose (expr_def *)): New.
16800 (extern debug (vec<rtx> &)): New.
16801 (extern debug (vec<rtx> *)): New.
16802 * sel-sched-ir.h
16803 (_list_iter_cond_expr): Make inline instead of static.
16804 * sreal.c
16805 (debug (sreal &)): New.
16806 (debug (sreal *)): New.
16807 * sreal.h
16808 (extern debug (sreal &)): New.
16809 (extern debug (sreal *)): New.
16810 * tree.h
16811 (extern debug_raw (const tree_node &)): New.
16812 (extern debug_raw (const tree_node *)): New.
16813 (extern debug (const tree_node &)): New.
16814 (extern debug (const tree_node *)): New.
16815 (extern debug_verbose (const tree_node &)): New.
16816 (extern debug_verbose (const tree_node *)): New.
16817 (extern debug_head (const tree_node &)): New.
16818 (extern debug_head (const tree_node *)): New.
16819 (extern debug_body (const tree_node &)): New.
16820 (extern debug_body (const tree_node *)): New.
16821 (extern debug (vec<tree, va_gc> &)): New.
16822 (extern debug (vec<tree, va_gc> *)): New.
16823 * tree-cfg.c
16824 (debug (struct loop &)): New.
16825 (debug (struct loop *)): New.
16826 (debug_verbose (struct loop &)): New.
16827 (debug_verbose (struct loop *)): New.
16828 * tree-dump.c: Add header dependence.
16829 * tree-flow.h
16830 (extern debug (struct loop &)): New.
16831 (extern debug (struct loop *)): New.
16832 (extern debug_verbose (struct loop &)): New.
16833 (extern debug_verbose (struct loop *)): New.
16834 * tree-data-ref.c
16835 (debug (data_reference &)): New.
16836 (debug (data_reference *)): New.
16837 (debug (vec<data_reference_p> &)): New.
16838 (debug (vec<data_reference_p> *)): New.
16839 (debug (vec<ddr_p> &)): New.
16840 (debug (vec<ddr_p> *)): New.
16841 * tree-data-ref.h
16842 (extern debug (data_reference &)): New.
16843 (extern debug (data_reference *)): New.
16844 (extern debug (vec<data_reference_p> &)): New.
16845 (extern debug (vec<data_reference_p> *)): New.
16846 (extern debug (vec<ddr_p> &)): New.
16847 (extern debug (vec<ddr_p> *)): New.
16848 * tree-ssa-alias.c
16849 (debug (pt_solution &)): New.
16850 (debug (pt_solution *)): New.
16851 * tree-ssa-alias.h
16852 (extern debug (pt_solution &)): New.
16853 (extern debug (pt_solution *)): New.
16854 * tree-ssa-alias.c
16855 (debug (_var_map &)): New.
16856 (debug (_var_map *)): New.
16857 (debug (tree_live_info_d &)): New.
16858 (debug (tree_live_info_d *)): New.
16859 * tree-ssa-alias.h
16860 (extern debug (_var_map &)): New.
16861 (extern debug (_var_map *)): New.
16862 (extern debug (tree_live_info_d &)): New.
16863 (extern debug (tree_live_info_d *)): New.
16864
be77e1e5
JH
168652013-03-28 Jan Hubicka <jh@suse.cz>
16866
16867 * lto-cgraph.c (merge_profile_summaries): Fix overflows.
16868
777e6976
IB
168692013-03-28 Ian Bolton <ian.bolton@arm.com>
16870
16871 * config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame
16872 record only when desired or required.
16873
9cd347ae
UB
168742013-03-28 Uros Bizjak <ubizjak@gmail.com>
16875
16876 * config/i386/i386.md (*vec_extract2vdi_1): Merge with
16877 *vec_extractv2di_1_rex64. Use x64 isa attribute.
16878
33159866 168792013-03-28 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
2a1d1991
N
16880
16881 * config/aarch64/aarch64.md (*and<mode>3_compare0): New pattern.
16882 (*andsi3_compare0_uxtw): New pattern.
16883 (*and_<SHIFT:optab><mode>3_compare0): New pattern.
16884 (*and_<SHIFT:optab>si3_compare0_uxtw): New pattern.
16885
89ab31c1
JH
168862013-03-28 Jan Hubicka <jh@suse.cz>
16887
16888 * data-streamer-in.c (streamer_read_gcov_count): New function.
16889 * gimple-streamer-out.c: Include value-prof.h.
16890 (output_gimple_stmt): Output histogram.
16891 (output_bb): Use streamer_write_gcov_count.
16892 * value-prof.c: Include data-streamer.h
16893 (dump_histogram_value): Add HIST_TYPE_MAX.
16894 (stream_out_histogram_value): New function.
16895 (stream_in_histogram_value): New function.
16896 * value-prof.h (enum hist_type): Add HIST_TYPE_MAX.
16897 (stream_out_histogram_value, stream_in_histogram_value): Declare.
16898 * data-streamer-out.c (streamer_write_gcov_count): New function.
16899 (streamer_write_gcov_count_stream): New function.
16900 * lto-cgraph.c (lto_output_edge): Update counter streaming.
16901 (lto_output_node): Likewise.
16902 (input_node, input_edge): Likewise.
16903 * lto-streamer-out.c (output_cfg): Update streaming.
16904 * lto-streamer-in.c (input_cfg): Likewise.
16905 * data-streamer.h (streamer_write_gcov_count,
16906 streamer_write_gcov_count_stream, streamer_read_gcov_count): Declare.
16907 * gimple-streamer-in.c: Include value-prof.h
16908 (input_gimple_stmt): Input histograms.
16909 (input_bb): Update profile streaming.
16910
e594716a 169112013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
b4c73eed 16912
33159866 16913 * genmodes.c (emit_max_int): New function.
8697be17 16914 (emit_insn_modes_h): Added call to emit_max_function.
39385fa6
PC
16915 * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_INT, MAX_BITSIZE_MODE_ANY_MODE):
16916 Added doc.
8697be17 16917 * machmode.def: Fixed comment.
89ab31c1 16918
e594716a 169192013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
8697be17
KZ
16920
16921 * combine.c (try_combine): Removed useless assert.
b4c73eed
KZ
16922 * cselib.c (rtx_equal_for_cselib_1): Removed unnecessary parens.
16923
74946978
MP
169242013-03-28 Marek Polacek <polacek@redhat.com>
16925 Richard Biener <rguenther@suse.de>
16926
16927 PR tree-optimization/56695
16928 * tree-vect-stmts.c (vectorizable_condition): Unconditionally
16929 build signed result of a vector comparison.
16930 * tree-cfg.c (verify_gimple_comparison): Check that a result
16931 of a vector comparison has signed type.
16932
a64b9c26
RB
169332013-03-28 Richard Biener <rguenther@suse.de>
16934
16935 PR tree-optimization/37021
16936 * tree-vect-slp.c (vect_build_slp_tree): When not unrolling
16937 do not restrict gaps between groups.
16938 * tree-vect-stmts.c (vectorizable_load): Properly account for
16939 a gap between groups.
16940
a9dc2a2f
EB
169412013-03-28 Eric Botcazou <ebotcazou@adacore.com>
16942
16943 * toplev.c (process_options): Do not disable -fomit-frame-pointer on a
16944 general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS
16945 is not enabled.
16946
53cb97f9
GP
169472013-03-27 Gerald Pfeifer <gerald@pfeifer.com>
16948
16949 * doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual.
16950 * doc/extend.texi (Named Address Spaces): Ditto.
16951 (Variable Attributes): Ditto.
16952
b802ae5c
KT
169532013-03-27 Kai Tietz <ktietz@redhat.com>
16954
eddae10a
KT
16955 * config.build: Add support for cygwin x64 target.
16956 * config.gcc: Likewise.
16957 * config.host: Likewise.
16958 * configure.ac: Likewise
16959 * configure: Regenerated.
b802ae5c 16960
371e77e3 169612013-03-27 Kai Tietz <ktietz@redhat.com>
8269de54
KT
16962
16963 * config/i386/cygwin-stdint.h: Add support for cygwin x64 target.
16964 * config/i386/t-cygwin-w64: New file.
16965 * config/i386/cygwin-w64.h: New file.
16966 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Extend
16967 and add support for x64-cygwin target.
16968 (CPP_SPEC): Likewise.
16969 (CXX_WRAP_SPEC_LIST): Undefine before define.
16970 (LIBGCJ_SONAME): Use 15 as version.
16971
f49b33cb
RB
169722013-03-27 Richard Biener <rguenther@suse.de>
16973
16974 PR tree-optimization/56716
16975 * tree-ssa-structalias.c (perform_var_substitution): Adjust
16976 dumping for ref nodes.
16977
b37a6ce5
MJ
169782013-03-27 Martin Jambor <mjambor@suse.cz>
16979
16980 PR tree-optimization/55334
16981 * ipa-cp.c (initialize_node_lattices): Allow IPA-CP through and to
16982 restricted pointers to arrays.
16983
9469b9b2
GDR
169842013-03-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
16985
16986 * Makefile.in (.SUFFIXES): Add .cc.
16987 (.c.o): Apply same recipe for implicit rule .cc.o.
16988
7d24f650
RB
169892013-03-27 Richard Biener <rguenther@suse.de>
16990
16991 PR tree-optimization/37021
16992 * tree-vect-data-refs.c (vect_check_strided_load): Allow
16993 REALPART/IMAGPART_EXPRs around the supported refs.
16994 * tree-ssa-structalias.c (find_func_aliases): Assume that
16995 floating-point values are not used to transfer pointers.
16996
2f251a05
AI
169972013-03-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
16998
f43245d1
UB
16999 * target.def (TARGET_HAS_IFUNC_P): New target hook.
17000 * doc/tm.texi.in (TARGET_HAS_IFUNC_P): New.
17001 * doc/tm.texi: Regenerate.
17002 * targhooks.h (default_has_ifunc_p): New.
17003 * targhooks.c (default_has_ifunc_p): Ditto.
17004 * config/linux-protos.h: New file.
17005 * config/linux-android.h (TARGET_HAS_IFUNC_P): Using version of this
17006 hook for linux which disables support of indirect functions in android.
17007 * config/linux-android.c: New file.
17008 * config/t-linux-android.c: Ditto.
17009 * config.gcc: Added new object file linux-android.o.
17010 * config/i386/i386.c (ix86_get_function_versions_dispatcher):
2f251a05 17011 Using TARGET_HAS_IFUNC hook instead of HAVE_GNU_INDIRECT_FUNCTION.
f43245d1 17012 * varasm.c (do_assemble_alias): Likewise.
2f251a05
AI
17013 * configure.ac: Define HAVE_GNU_INDIRECT_FUNCTION as zero if the target
17014 doesn't support indirect functions.
17015 * configure: Regenerate.
17016
78b4e425
BC
170172013-03-27 Bin Cheng <bin.cheng@arm.com>
17018
17019 PR target/56102
17020 * config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix
17021 rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with
17022 mult-word mode.
17023
a5ba7b92
AK
170242013-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17025
17026 * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
17027
be624986
TG
170282013-03-27 Terry Guo <terry.guo@arm.com>
17029
17030 * config/arm/arm-cores.def: Added core cortex-r7.
17031 * config/arm/arm-tune.md: Regenerated.
17032 * config/arm/arm-tables.opt: Regenerated.
17033 * doc/invoke.texi: Added entry for core cortex-r7.
17034
0a514f47
WL
170352013-03-27 Walter Lee <walt@tilera.com>
17036
17037 * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid
17038 double-decrement of next_scratch_regno.
17039
9332b0d2
WL
170402013-03-27 Walter Lee <walt@tilera.com>
17041
801d9b2a 17042 * config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on
9332b0d2
WL
17043 input operands.
17044 (insn_v1mulus): Ditto.
17045 (insn_v2muls): Ditto.
17046
f54ea5dd
WL
170472013-03-27 Walter Lee <walt@tilera.com>
17048
e594716a 17049 * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete extra tab.
f54ea5dd
WL
17050 (ASM_OUTPUT_ADDR_DIFF_ELT): Ditto.
17051
bf60f4ca
WL
170522013-03-27 Walter Lee <walt@tilera.com>
17053
e594716a 17054 * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr.
bf60f4ca
WL
17055 (*sibcall_value): Ditto.
17056
e3b51eeb
WL
170572013-03-27 Walter Lee <walt@tilera.com>
17058
17059 * config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ...
17060 (insn_mnz_v8qi): ... this ...
17061 (insn_mnz_v4hi): ... and this. Replace (const_int 0) with the
17062 vector equivalent.
17063 (insn_v<n>mnz): Replaced by ...
17064 (insn_v1mnz): ... this ...
17065 (insn_v2mnz): ... and this. Replace (const_int 0) with the vector
17066 equivalent.
17067 (insn_mz_<mode>): Replaced by ...
17068 (insn_mz_v8qi): ... this ...
17069 (insn_mz_v4hi): ... and this. Replace (const_int 0) with the
17070 vector equivalent.
17071 (insn_v<n>mz): Replaced by ...
17072 (insn_v1mz): ... this ...
17073 (insn_v2mz): ... and this. Replace (const_int 0) with the vector
17074 equivalent.
17075
4fc7b145
EB
170762013-03-26 Eric Botcazou <ebotcazou@adacore.com>
17077
17078 * doc/invoke.texi (SPARC options): Remove -mlittle-endian.
17079
6f33817e
RM
170802013-03-26 Roland McGrath <mcgrathr@google.com>
17081
17082 * config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather
17083 than fprintf with a non-constant, non-format string.
17084
93a4145b
UB
170852013-03-26 Uros Bizjak <ubizjak@gmail.com>
17086
17087 * config/i386/i386.md (*cmpqi_ext_1): Merge with *cmpqi_ext_1_rex64
17088 using nox64 isa attribute. Use nonimmediate_x86nomem_operand as
17089 operand 0 predicate.
17090 (*cmpqi_ext_3): Merge with *cmpqi_ext_3_rex64 using nox64 isa
17091 attribute. Use general_x64nomem_operand as operand 1 predicate.
17092 (*movqi_extv_1): Merge with *movqi_extv_1_rex64 using nox64 isa
17093 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
17094 (*movqi_extzv_2): Merge with *movqi_extzv_2_rex64 using nox64 isa
17095 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
17096 (mov<mode>_insv_1): Remove expander. Merge insn with
17097 movsi_insv_1 using SWI48 mode iterator and nox64 isa attribute.
17098 Use general_x64nomem_operand as operand 1 predicate.
17099 (addqi_ext_1): Merge with *addqi_ext_1_rex64 using nox64 isa attribute.
17100 (*testqi_ext_1): Merge with *testqi_ext_1_rex64 using nox64 isa
17101 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
17102 (*andqi_ext_1): Merge with *andqi_ext_1_rex64 using nox64 isa
17103 attribute. Use nonimmediate_x64nomem_operand as operand 2 predicate.
17104 (*<code>qi_ext_1): Merge with *<code>qi_ext_1_rex64 using nox64 isa
17105 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
17106 (*xorqi_cc_ext_1): Merge with *xorqi_cc_ext_1_rex64 using nox64
17107 isa attribute. Use general_x64nomem_operand as operand 2 predicate.
17108 * config/i386/predicates.md (nonimmediate_x64nomem_operand): New.
17109 (general_x64nomem_operand): Ditto.
17110
c6a9ed5a 171112013-03-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
df599020
SH
17112
17113 * config/rtems.opt: Add -pthread option.
17114
31b0a960
RB
171152013-03-26 Richard Biener <rguenther@suse.de>
17116
93a4145b
UB
17117 * alias.c (find_base_term): Avoid redundant and not used recursion.
17118 (base_alias_check): Get the initial base term from the caller.
31b0a960
RB
17119 (true_dependence_1): Compute and pass base terms to base_alias_check.
17120 (write_dependence_p): Likewise.
17121 (may_alias_p): Likewise.
17122
79517551
SN
171232013-03-26 Sofiane Naci <sofiane.naci@arm.com>
17124
17125 * config/aarch64/aarch64.c (aarch64_classify_address): Support
17126 PC-relative load in SI modes and above only.
17127
a76213b9
XQ
171282013-03-26 Xinyu Qi <xyqi@marvell.com>
17129
17130 * config/arm/arm.h (FIRST_IWMMXT_GR_REGNUM): Add comment.
33159866
UB
17131 * config/arm/iwmmxt.md (WCGR0): Update.
17132 (WCGR1, WCGR2, WCGR3): Likewise.
a76213b9 17133
37ff9355
UB
171342013-03-26 Uros Bizjak <ubizjak@gmail.com>
17135
17136 * config/i386/i386.md (*movdfcc_1): Merge with *movdfcc_1_rex64.
17137 Use x64 and nox64 isa attributes.
17138
30b0317c
RB
171392013-03-26 Richard Biener <rguenther@suse.de>
17140
17141 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
17142 alignment computations and rely on get_object_alignment_1
17143 for the !TYPE_P case.
17144 Commonize DECL/COMPONENT_REF handling in the ARRAY_REF path.
17145
cbcdb140
WL
171462013-03-26 Walter Lee <walt@tilera.com>
17147
17148 * config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define.
17149 * config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define.
17150
dd884525 171512013-03-25 Jeff Law <law@redhat.com>
be672e08 17152
33159866
UB
17153 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Add missing
17154 check for INTEGRAL_TYPE_P that was missing due to checking in
dd884525
JL
17155 wrong version of prior patch.
17156
0051d3ec
WL
171572013-03-25 Walter Lee <walt@tilera.com>
17158
17159 * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add
17160 TILEGX_INSN_SHUFFLEBYTES1.
17161 * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for
17162 shufflebytes1.
17163 (tilegx_builtins): Ditto.
17164 * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern.
17165
065a3605
WL
171662013-03-25 Walter Lee <walt@tilera.com>
17167
17168 * config/tilegx/tilegx.md (floatsisf2): New pattern.
0051d3ec
WL
17169 (floatunssisf2): New pattern.
17170 (floatsidf2): New pattern.
17171 (floatunssidf2): New pattern.
065a3605 17172
5b2a3c82
WL
171732013-03-25 Walter Lee <walt@tilera.com>
17174
17175 * config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline
17176 tests for constraint J, K, N, P.
17177
192ea533
WL
171782013-03-25 Walter Lee <walt@tilera.com>
17179
17180 * config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format):
17181 Use indirect/pcrel encoding.
17182 * config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format):
17183 Ditto.
17184
855e0d0b
SE
171852013-03-25 Steve Ellcey <sellcey@mips.com>
17186
17187 * config/mips/mmips-cpus.def (74kc, 74kf2_1, 74kf, 74kf, 74kf1_1,
17188 74kfx, 74kx, 74kf3_2): Add PTF_AVOID_IMADD.
17189 * config/mips/mips.c (mips_option_override): Set IMADD default.
17190 * config/mips/mips.h (PTF_AVOID_IMADD): New.
17191 (ISA_HAS_MADD_MSUB): Remove MIPS16 check.
17192 (GENERATE_MADD_MSUB): Remove TUNE_74K check, add MIPS16 check.
17193 * config/mips/mips.md (mimadd): New flag for integer madd/msub.
17194 * doc/invoke.texi (-mimadd/-mno-imadd): New.
17195
39e45653
JL
171962013-03-25 Jeff Law <law@redhat.com>
17197
17198 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Rework
17199 slightly to avoid creating and folding useless trees. Simplify
17200 slightly by restricting to INTEGER_CSTs and using int_fits_type_p.
17201
7482c470
UB
172022013-03-25 Uros Bizjak <ubizjak@gmail.com>
17203
17204 * config/i386/i386.md (*zero_extendsidi2): Merge with
17205 *zero_extendsidi2_rex64. Use x64 and nox64 isa attributes.
17206 * config/i386/predicates.md (x86_64_zext_operand): Rename from
17207 x86_64_zext_general_operand. Use nonimmediate_operand on 32bit
17208 targets. Clarify comment.
17209
4a53743e
MJ
172102013-03-25 Martin Jambor <mjambor@suse.cz>
17211
17212 * ipa-prop.c (ipa_write_jump_function): Stream simple and aritmetic
17213 pass-through jump functions differently.
17214 (ipa_read_jump_function): Likewise. Also use setter functions to set
17215 up jump functions.
17216
162712de
MJ
172172013-03-25 Martin Jambor <mjambor@suse.cz>
17218
17219 * ipa-cp.c (ipa_get_indirect_edge_target): Renamed to
17220 ipa_get_indirect_edge_target_1, added parameter agg_reps and ability to
17221 process it.
17222 (ipa_get_indirect_edge_target): New function.
17223 (devirtualization_time_bonus): New parameter known_aggs, pass it to
17224 ipa_get_indirect_edge_target. Update all callers.
17225 (ipcp_discover_new_direct_edges): New parameter aggvals. Pass it to
17226 ipa_get_indirect_edge_target_1 instead of calling
17227 ipa_get_indirect_edge_target.
17228 (create_specialized_node): Pass aggvlas to
17229 ipcp_discover_new_direct_edges.
17230
a5a4c20a
KT
172312013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17232
17233 * config/arm/arm.md (f_sels, f_seld): New types.
17234 (*cmov<mode>): New pattern.
17235 * config/arm/predicates.md (arm_vsel_comparison_operator): New
17236 predicate.
17237
f992b9fc
KT
172382013-03-25 Kai Tietz <ktietz@redhat.com>
17239
17240 * config/i386/xm-mingw32.h (__USE_MINGW_ANSI_STDIO): Enable
17241 POSIX-printf for mingw-hosted builds.
17242
c16fd676
RB
172432013-03-25 Richard Biener <rguenther@suse.de>
17244
17245 PR middle-end/56694
17246 * tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the
17247 must-not-throw stmt location.
17248
5ad29f12
KT
172492013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17250
17251 * config/arm/arm.c (arm_emit_load_exclusive): Add acq parameter.
17252 Emit load-acquire versions when acq is true.
17253 (arm_emit_store_exclusive): Add rel parameter.
17254 Emit store-release versions when rel is true.
17255 (arm_split_compare_and_swap): Use acquire-release instructions
17256 instead.
17257 of barriers when appropriate.
17258 (arm_split_atomic_op): Likewise.
17259 * config/arm/arm.h (TARGET_HAVE_LDACQ): New macro.
17260 * config/arm/unspecs.md (VUNSPEC_LAX): New unspec.
17261 (VUNSPEC_SLX): Likewise.
17262 (VUNSPEC_LDA): Likewise.
17263 (VUNSPEC_STL): Likewise.
17264 * config/arm/sync.md (atomic_load<mode>): New pattern.
17265 (atomic_store<mode>): Likewise.
17266 (arm_load_acquire_exclusive<mode>): Likewise.
17267 (arm_load_acquire_exclusivesi): Likewise.
17268 (arm_load_acquire_exclusivedi): Likewise.
17269 (arm_store_release_exclusive<mode>): Likewise.
17270
03a7dddb
CM
172712013-03-25 Catherine Moore <clm@codesourcery.com>
17272
17273 * config/mips/constraints.md (u, Udb7 Uead, Uean, Uesp, Uib3,
17274 Uuw6, Usb4, ZS, ZT, ZU, ZV, ZW): New constraints.
17275 * config/mip/predicates.md (lwsp_swsp_operand,
17276 lw16_sw16_operand, lhu16_sh16_operand, lbu16_operand,
17277 sb16_operand, db4_operand, db7_operand, ib3_operand,
17278 sb4_operand, ub4_operand, uh4_operand, uw4_operand,
17279 uw5_operand, uw6_operand, addiur2_operand, addiusp_operand,
17280 andi16_operand): New predicates.
17281 * config/mips/mips.md (compression): New attribute.
17282 (enabled): New attribute.
17283 (length): Consider compression in computing length.
17284 (shift_compression): New code attribute.
17285 (*add<mode>3): New operands. Record compression.
17286 (sub<mode>3): Likewise.
17287 (one_cmpl<mode>2): Likewise.
17288 (*and<mode>3): Likewise.
17289 (*ior<mode>3): Likewise.
17290 (unnamed pattern for xor): Likewise.
17291 (*zero_extend<SHORT:mode><GPR:mode>2): Likewise.
17292 (*<optab><mode>3): Likewise.
17293 (*mov<mode>_internal: Likewise.
17294 * config/mips/mips-protos.h (mips_signed_immediate_p): New.
17295 (mips_unsigned_immediate_p): New.
17296 (umips_lwsp_swsp_address_p): New.
17297 (m16_based_address_p): New.
17298 * config/mips/mips-protos.h (mips_signed_immediate_p): New prototype.
17299 (mips_unsigned_immediate_p): New prototype.
17300 (lwsp_swsp_address_p): New prototype.
17301 (m16_based_address_p): New prototype.
17302 * config/mips/mips.c (mips_unsigned_immediate_p): New function.
17303 (mips_signed_immediate_p): New function.
17304 (m16_based_address_p): New function.
17305 (lwsp_swsp_address_p): New function.
17306 (mips_print_operand_punctuation): Recognize short delay slot insns
17307 for microMIPS.add<mode>3"
17308
f35c297f 173092013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
a5784ce6 17310
f35c297f
KT
17311 PR target/56720
17312 * config/arm/iterators.md (v_cmp_result): New mode attribute.
17313 * config/arm/neon.md (vcond<mode><mode>): Handle unordered cases.
17314
051b9446
RB
173152013-03-25 Richard Biener <rguenther@suse.de>
17316
17317 PR tree-optimization/56689
17318 * tree-vrp.c (execute_vrp): Mark loops for fixup if we removed
17319 any edge.
17320
374001cb
RB
173212013-03-25 Richard Biener <rguenther@suse.de>
17322
17323 * tree-ssa-loop-im.c (struct mem_ref): Use bitmap_head instead
17324 of bitmap.
17325 (memory_references): Likewise.
17326 (outermost_indep_loop, mem_ref_alloc, mark_ref_stored,
17327 gather_mem_refs_stmt, record_dep_loop, ref_indep_loop_p_1,
17328 ref_indep_loop_p_2, find_refs_for_sm): Adjust.
17329 (gather_mem_refs_in_loops): Fold into ...
17330 (analyze_memory_references): ... this. Move initialization
17331 to tree_ssa_lim_initialize.
17332 (fill_always_executed_in): Rename to ...
17333 (fill_always_executed_in_1): ... this.
17334 (fill_always_executed_in): Move contains_call computation to
17335 this new function from ...
17336 (tree_ssa_lim_initialize): ... here.
17337 (tree_ssa_lim): Call fill_always_executed_in.
17338
57895947
EB
173392013-03-25 Eric Botcazou <ebotcazou@adacore.com>
17340
17341 * postreload.c (reload_combine): Fix code detecting returns.
17342
1e1b18c1
EB
173432013-03-25 Eric Botcazou <ebotcazou@adacore.com>
17344
17345 * function.c (emit_use_return_register_into_block): On cc0 targets,
17346 do not emit the sequence between cc0 setter and user.
17347
9216baf1
KT
173482013-03-25 Kai Tietz <ktietz@redhat.com>
17349
1e1b18c1
EB
17350 * config/i386/predicates.md (local_symbolic_operand): Interpret
17351 dll-imported symbols as none-local.
9216baf1 17352
76421b44
RB
173532013-03-25 Richard Biener <rguenther@suse.de>
17354
17355 * tree-ssa-loop-im.c (struct depend): Remove.
17356 (struct lim_aux_data): Make depends a vec of gimples.
17357 (free_lim_aux_data): Adjust.
17358 (add_dependency): Likewise.
17359 (set_level): Likewise.
17360
d154bfa2
RB
173612013-03-25 Richard Biener <rguenther@suse.de>
17362
17363 PR middle-end/56434
17364 * calls.c (expand_call): Use MALLOC_ABI_ALIGNMENT to annotate
17365 the pointer returned by calls with ECF_MALLOC set.
17366
2cd9804e
UB
173672013-03-24 Uros Bizjak <ubizjak@gmail.com>
17368
acef5fe0
UB
17369 * config/i386/mmx.md (mov<mode>): Add ?!Ym,r and r,?!Ym alternatives.
17370
173712013-03-24 Uros Bizjak <ubizjak@gmail.com>
17372
17373 * config/i386/mmx.md (mov<mode>): Merge with movv2sf expander
2cd9804e
UB
17374 using MMXMODE mode iterator.
17375 (*move<mode>_internal): Merge with *movv2sf_internal and
17376 *movv2sf_internal_rex64 using MMXMODE mode iterator.
17377
225ccc68
SB
173782013-03-23 Steven Bosscher <steven@gcc.gnu.org>
17379
85c0f02d
SB
17380 * gcse.c (oprs_unchanged_p): Respect flag_gcse_lm.
17381 (record_last_mem_set_info): Likewise.
17382
225ccc68
SB
17383 * df-core.c (rest_of_handle_df_initialize): Use XCNEWVEC instead
17384 of XNEWVEC followed by memset.
17385 (df_worklist_dataflow): Use XNEWVEC instead of xmalloc with a cast.
17386
b64925dc
SB
173872013-03-23 Steven Bosscher <steven@gcc.gnu.org>
17388
17389 * config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
17390 config/epiphany/epiphany.c, config/frv/frv.c, config/ia64/ia64.c,
17391 config/iq2000/iq2000.c, config/mcore/mcore.c, config/mep/mep.c,
17392 config/mmix/mmix.c, config/pa/pa.c, config/rs6000/rs6000.c,
17393 config/s390/s390.c, config/sparc/sparc.c, config/spu/spu.c,
17394 config/stormy16/stormy16.c, config/v850/v850.c, config/xtensa/xtensa.c,
17395 dwarf2out.c, hw-doloop.c, resource.c, rtl.h : Where applicable, use
17396 the predicates NOTE_P, NONJUMP_INSN_P, JUMP_P, CALL_P, LABEL_P, and
17397 BARRIER_P instead of GET_CODE.
17398
b9aaf52e
EB
173992013-03-23 Eric Botcazou <ebotcazou@adacore.com>
17400
17401 * config/sparc/sparc.c (sparc_emit_probe_stack_range): Fix small
17402 inaccuracy in the probing code.
17403
17404 * config/sparc/sparc.md (ctrapsi4): Add predicate for operand #3.
17405 (ctrapdi4): Likewise.
17406
66de4d7c
EB
174072013-03-23 Eric Botcazou <ebotcazou@adacore.com>
17408
17409 * calls.c (expand_call): Add missing guard to code handling return
17410 of non-BLKmode structures in MSB.
17411 * function.c (expand_function_end): Likewise.
17412
4f25c8fb
EB
174132013-03-23 Eric Botcazou <ebotcazou@adacore.com>
17414
17415 * combine.c (try_combine): Adjust comment. Do not add the set of
17416 insn #0 if the destination indirectly is set or dies in insn #2.
17417 Tidy up code to distribute a new note.
17418
23b7850d
UB
174192013-03-22 Uros Bizjak <ubizjak@gmail.com>
17420
17421 * config/i386/i386.md (*movdi_internal): Set prefix_rex attribute
17422 also for alternatives 16 and 17.
17423
bed852cf
UB
174242013-03-22 Uros Bizjak <ubizjak@gmail.com>
17425
17426 * config/i386/sse.md (*mov<mode>_internal): Merge with
17427 *mov<mode>_internal_rex64. Use x64 and nox64 isa attributes.
17428 Emit insn template depending on type attribute. Use
17429 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
17430 movd instead of movq mnemonic for interunit moves. Rewrite mode
17431 attribute calculation. Remove unit attribute calculation.
17432 Set prefix attribute to maybe_vex for sselog1 and ssemov types.
17433 Set prefix_data16 attribute for DImode ssemov types.
17434 Use Ym instead of y for SSE-MMX conversion alternatives.
17435 Reorder operand constraints.
17436
1e8a7937
SB
174372013-03-22 Steven Bosscher <steven@gcc.gnu.org>
17438
17439 * df.h (df_insn_delete): Adjust prototype.
17440 * emit-rtl.c (remove_insn): Pass a basic block to df_insn_delete
17441 and let it decide whether mark the basic block dirty.
17442 (set_insn_deleted): Only pass INSN_P insns to df_insn_delete.
17443 * df-scan.c (df_insn_info_delete): New helper function, split
17444 off from df_insn_delete.
17445 (df_scan_free_bb_info): Use it.
17446 (df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans):
17447 Likewise.
17448 (df_insn_delete): Likewise. Take insn rtx as argument. Verify
17449 that the insn is actually an insn and it has a non-NULL basic block.
17450 Do not mark basic block dirty if only deleting a DEBUG_INSN.
17451
e14d094c
RB
174522013-03-22 Richard Biener <rguenther@suse.de>
17453
17454 * tree-ssa-loop-im.c (struct mem_ref): Remove indep_ref and
17455 dep_ref members.
17456 (mem_ref_alloc): Do not allocate them.
17457 (refs_independent_p): Do not query or maintain a cache.
17458
e9cf7316
RB
174592013-03-22 Richard Biener <rguenther@suse.de>
17460
17461 * tree-ssa-loop-im.c (memory_references): Drop all_refs_in_loop.
17462 (gather_mem_refs_in_loops): Do not compute it.
17463 (analyze_memory_references): Do not allocate it.
17464 (tree_ssa_lim_finalize): Do not free it.
17465 (for_all_locs_in_loop): Do not query all_refs_in_loop.
17466
f046e81b
RB
174672013-03-22 Richard Biener <rguenther@suse.de>
17468
17469 * is-a.h (as_a): Use gcc_checking_assert.
bed852cf 17470
a05c0ddf
IB
174712013-03-22 Ian Bolton <ian.bolton@arm.com>
17472
17473 * config/aarch64/aarch64.c (aarch64_print_operand): New
17474 format specifier for printing a constant in hex.
17475 * config/aarch64/aarch64.md (insv_imm<mode>): Use the X
17476 format specifier for printing second operand.
17477
c00217fc
RB
174782013-03-22 Richard Biener <rguenther@suse.de>
17479
17480 * tree-ssa-loop-im.c (memory_references): Add refs_stored_in_loop
17481 bitmaps.
17482 (gather_mem_refs_in_loops): Perform store accumulation here.
17483 (create_vop_ref_mapping_loop): Remove.
17484 (create_vop_ref_mapping): Likewise.
17485 (analyze_memory_references): Initialize refs_stored_in_loop.
bed852cf 17486 (LOOP_DEP_BIT): New define to map to bits in (in)dep_loop bitmaps.
c00217fc
RB
17487 (record_indep_loop): Remove.
17488 (record_dep_loop): New function.
17489 (ref_indep_loop_p_1): Adjust to only walk over references
17490 in the loop, not its subloops.
17491 (ref_indep_loop_p): Rename to ...
17492 (ref_indep_loop_p_2): ... this and recurse over the loop tree,
17493 maintaining a more fine-grained cache.
17494 (ref_indep_loop_p): Wrap ref_indep_loop_p_2.
17495 (tree_ssa_lim_finalize): Free refs_stored_in_loop.
17496
15d19bf8
RB
174972013-03-22 Richard Biener <rguenther@suse.de>
17498
17499 * tree-ssa-loop-im.c (struct mem_ref_locs): Remove.
17500 (struct mem_ref): Make accesses_in_loop a vec of a vec of
17501 aggregate mem_ref_loc.
17502 (free_mem_ref_locs): Inline into ...
17503 (memref_free): ... this and adjust.
17504 (mem_ref_alloc): Adjust.
17505 (mem_ref_locs_alloc): Remove.
17506 (record_mem_ref_loc): Adjust.
17507 (get_all_locs_in_loop): Rewrite into ...
17508 (for_all_locs_in_loop): ... this iterator.
17509 (rewrite_mem_ref_loc): New functor.
17510 (rewrite_mem_refs): Use for_all_locs_in_loop.
17511 (sm_set_flag_if_changed): New functor.
17512 (execute_sm_if_changed_flag_set): Use for_all_locs_in_loop.
17513 (ref_always_accessed): New functor.
17514 (ref_always_accessed_p): Use for_all_locs_in_loop.
17515
6f37411d
MG
175162013-03-21 Marc Glisse <marc.glisse@inria.fr>
17517
17518 * tree-pass.h (PROP_gimple_lvec): New.
17519 * passes.c (dump_properties): Handle PROP_gimple_lvec.
17520 (init_optimization_passes): Move pass_lower_vector.
17521 * tree-vect-generic.c (gate_expand_vector_operations_ssa): Test
17522 PROP_gimple_lvec.
17523 (pass_lower_vector): Provide PROP_gimple_lvec.
17524 (pass_lower_vector_ssa): Likewise.
17525 * cfgexpand.c (pass_expand): Require PROP_gimple_lvec.
17526
511ef689
MW
175272013-03-21 Mark Wielaard <mjw@redhat.com>
17528
17529 * dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.
17530
cc1df30b
UB
175312013-03-21 Uros Bizjak <ubizjak@gmail.com>
17532
17533 * config/i386/i386.md (*movdi_internal): Disparage slightly
17534 all MMX moves to/from memory. Use Yi instead of x for SSE-MMX
17535 conversion alternatives.
17536
c845cfe1
JJ
175372013-03-21 Jakub Jelinek <jakub@redhat.com>
17538
37e99116
JJ
17539 PR middle-end/48087
17540 * diagnostic.def (DK_WERROR): New kind.
17541 * diagnostic.h (werrorcount): Define.
17542 * diagnostic.c (diagnostic_report_diagnostic): For DK_WARNING
17543 promoted to DK_ERROR, increment DK_WERROR counter instead of
17544 DK_ERROR counter.
17545 * toplev.c (toplev_main): Call print_ignored_options even if
17546 just werrorcount is non-zero. Exit with FATAL_EXIT_CODE
17547 even if just werrorcount is non-zero.
17548
c845cfe1
JJ
17549 PR debug/55608
17550 * dwarf2out.c (tree_add_const_value_attribute): Call ggc_free (array)
17551 on failure.
17552 (resolve_one_addr): Fail if referenced STRING_CST hasn't been written.
17553 (string_cst_pool_decl): New function.
17554 (optimize_one_addr_into_implicit_ptr): New function.
17555 (resolve_addr_in_expr): Optimize DWARF location expression
17556 DW_OP_addr DW_OP_stack_value where DW_OP_addr refers to some variable
17557 which doesn't live in memory, but has DW_AT_location or
17558 DW_AT_const_value, or refers to a string literal, into
17559 DW_OP_GNU_implicit_pointer.
17560 (optimize_location_into_implicit_ptr): New function.
17561 (resolve_addr): If removing DW_AT_location of a variable because
17562 it was DW_OP_addr of address of the variable, but the variable doesn't
17563 live in memory, try to emit const value attribute for the initializer.
17564
08e0cda6
MG
175652013-03-21 Marc Glisse <marc.glisse@inria.fr>
17566
17567 * tree.h (VECTOR_TYPE_P): New macro.
17568 (VECTOR_INTEGER_TYPE_P, VECTOR_FLOAT_TYPE_P, FLOAT_TYPE_P,
17569 TYPE_MODE): Use it.
17570 * fold-const.c (fold_cond_expr_with_comparison): Use build_zero_cst.
17571 VEC_COND_EXPR cannot be lvalues.
17572 (fold_ternary_loc) <VEC_COND_EXPR>: Merge with the COND_EXPR case.
17573
d08633b4
MG
175742013-03-21 Marc Glisse <marc.glisse@inria.fr>
17575
17576 * simplify-rtx.c (simplify_binary_operation_1) <VEC_CONCAT>:
17577 Restrict the transformation to equal modes.
17578
e6647190
RB
175792013-03-21 Richard Biener <rguenther@suse.de>
17580
17581 PR tree-optimization/39326
17582 * tree-ssa-loop-im.c (UNANALYZABLE_MEM_ID): New define.
17583 (MEM_ANALYZABLE): Adjust.
17584 (record_mem_ref_loc): Move bitmap ops ...
17585 (gather_mem_refs_stmt): ... here. Use the shared mem-ref for
17586 unanalyzable refs, do not record locations for it.
17587 (analyze_memory_references): Allocate ref zero as shared
17588 unanalyzable ref.
17589 (refs_independent_p): Do not test for unanalyzed mems here.
17590 (ref_indep_loop_p_1): Special-case disambiguation against
17591 the unanalyzed ref.
cc1df30b 17592 (ref_indep_loop_p): Assert we are not queried for the unanalyzed mem.
e6647190 17593
65074f54
CL
175942013-03-21 Christophe Lyon <christophe.lyon@linaro.org>
17595
17596 * config/arm/arm-protos.h (tune_params): Add
17597 prefer_neon_for_64bits field.
17598 * config/arm/arm.c (prefer_neon_for_64bits): New variable.
17599 (arm_slowmul_tune): Default prefer_neon_for_64bits to false.
17600 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
17601 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
17602 (arm_cortex_a15_tune, arm_cortex_a5_tune): Ditto.
17603 (arm_cortex_a9_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
17604 (arm_option_override): Handle -mneon-for-64bits new option.
17605 * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro.
17606 (prefer_neon_for_64bits): Declare new variable.
17607 * config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to
cc1df30b 17608 avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and nota8.
65074f54
CL
17609 (arch_enabled): Handle new arch types. Remove support for onlya8
17610 and nota8.
17611 (one_cmpldi2): Use new arch names.
bc5faa5b 17612 (zero_extend<mode>di2, extend<mode>di2): Ditto.
65074f54
CL
17613 * config/arm/arm.opt (mneon-for-64bits): Add option.
17614 * config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon)
17615 (anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use
17616 neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead
17617 of onlya8.
17618 * doc/invoke.texi (-mneon-for-64bits): Document.
17619
5a2d2a79
RB
176202013-03-21 Richard Biener <rguenther@suse.de>
17621
17622 PR tree-optimization/39326
17623 * tree-ssa-loop-im.c (bb_loop_postorder): New global static.
17624 (sort_bbs_in_loop_postorder_cmp): New function.
cc1df30b 17625 (gather_mem_refs_in_loops): Assign mem-ref IDs in loop postorder.
5a2d2a79 17626
5abe1e05
RB
176272013-03-21 Richard Biener <rguenther@suse.de>
17628
17629 * tree-vect-data-refs.c (vect_update_interleaving_chain): Remove.
17630 (vect_insert_into_interleaving_chain): Likewise.
17631 (vect_drs_dependent_in_basic_block): Inline ...
17632 (vect_slp_analyze_data_ref_dependence): ... here. New function,
17633 split out from ...
17634 (vect_analyze_data_ref_dependence): ... here. Simplify.
17635 (vect_check_interleaving): Simplify.
17636 (vect_analyze_data_ref_dependences): Likewise. Split out ...
17637 (vect_slp_analyze_data_ref_dependences): ... this new function.
17638 (dr_group_sort_cmp): New function.
17639 (vect_analyze_data_ref_accesses): Compute data-reference groups
17640 here instead of in vect_analyze_data_ref_dependence. Use
17641 a more efficient algorithm.
17642 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use
17643 vect_slp_analyze_data_ref_dependences. Call
17644 vect_analyze_data_ref_accesses earlier.
17645 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
17646 * tree-vectorizer.h (vect_analyze_data_ref_dependences): Adjust.
17647 (vect_slp_analyze_data_ref_dependences): New prototype.
17648
cad1735b
RB
176492013-03-21 Richard Biener <rguenther@suse.de>
17650
17651 * tree-ssa-loop-im.c (can_sm_ref_p): Do not test whether
17652 ref is stored in the loop.
17653 (find_refs_for_sm): Walk only over all stores.
17654 (store_motion_loop): Allocate from lim_bitmap_obstack.
17655 (store_motion): Likewise.
17656
141310ef
RB
176572013-03-21 Richard Biener <rguenther@suse.de>
17658
17659 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge):
17660 Update virtual SSA form.
17661
5022315a
RO
176622013-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17663
17664 * configure.ac (gcc_cv_ld_eh_frame_ciev3): New test.
17665 * configure: Regenerate.
17666 * config.in: Regenerate.
17667 * config/sol2.c (solaris_override_options): Only enforce DWARF 2
17668 if !HAVE_LD_EH_FRAME_CIEV3.
17669
50d4421c
RB
176702013-03-21 Richard Biener <rguenther@suse.de>
17671
17672 * tree-cfg.c (verify_expr_no_block): New function.
17673 (verify_expr_location_1): Verify that neither DECL_DEBUG_EXPR
17674 nor DECL_VALUE_EXPR have locations with associated blocks.
17675 * tree-ssa-live.c (clear_unused_block_pointer_1): Remove.
17676 (clear_unused_block_pointer): Remove code dealing with
17677 blocks in DECL_DEBUG_EXPR locations.
17678
839b422f
RB
176792013-03-21 Richard Biener <rguenther@suse.de>
17680
17681 * tree.h (DECL_DEBUG_EXPR_IS_FROM): Rename to ...
17682 (DECL_HAS_DEBUG_EXPR_P): ... this. Guard properly.
17683 * tree.c (copy_node_stat): Do not copy DECL_HAS_DEBUG_EXPR_P.
17684 * dwarf2out.c (add_var_loc_to_decl): Use DECL_HAS_DEBUG_EXPR_P
17685 instead of DECL_DEBUG_EXPR_IS_FROM.
17686 * gimplify.c (gimplify_modify_expr): Likewise.
17687 * tree-cfg.c (verify_expr_location_1): Likewise.
17688 * tree-complex.c (create_one_component_var): Likewise.
17689 * tree-sra.c (create_access_replacement): Likewise.
17690 * tree-ssa-live.c (clear_unused_block_pointer_1): Likewise.
17691 (clear_unused_block_pointer): Likewise.
17692 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
17693 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
17694 * var-tracking.c (var_debug_decl): Likewise.
17695 (track_expr_p): Likewise.
17696 * tree-inline.c (add_local_variables): Likewise. Set
17697 DECL_HAS_DEBUG_EXPR_P after copying it.
17698 * tree-diagnostic.c (default_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
17699 instead of DECL_DEBUG_EXPR_IS_FROM. Guard properly.
17700
fe04878d
UB
177012013-03-21 Uros Bizjak <ubizjak@gmail.com>
17702
17703 PR bootstrap/56656
17704 * configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): New test.
17705 * configure: Regenerate.
17706 * config.in: Regenerate.
17707 * config/i386/i386.md (*movdf_internal): Use
17708 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
17709 movd instead of movq mnemonic for interunit moves.
17710 (*movdi_internal): Ditto.
17711
bd059b26 177122013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
fa2e9a58
N
17713
17714 * config/aarch64/aarch64-simd.md (simd_fabd): New Attribute.
17715 (abd<mode>_3): New pattern.
17716 (aba<mode>_3): New pattern.
17717 (fabd<mode>_3): New pattern.
17718
bd059b26 177192013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
50ce6f88
N
17720
17721 * config/aarch64/aarch64-elf.h (REGISTER_PREFIX): Remove.
17722 * config/aarch64/aarch64.c (aarch64_print_operand): Remove all
17723 occurrence of REGISTER_PREFIX as its empty string.
17724
4f1f78b9
JL
177252013-03-20 Jeff Law <law@redhat.com>
17726
17727 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Record
17728 addititional equivalences for equality comparisons between an SSA_NAME
17729 and a constant where the SSA_NAME was set from a widening conversion.
17730
327a1118
WL
177312013-03-20 Walter Lee <walt@tilera.com>
17732
17733 * config/tilegx/sync.md (atomic_test_and_set): New pattern.
17734
813e0036
UB
177352013-03-20 Uros Bizjak <ubizjak@gmail.com>
17736
17737 * config/i386/i386.md (*movoi_internal_avx): Emit insn template
17738 depending on type attribute.
17739 (*movti_internal): Ditto.
17740 (*movtf_internal): Ditto.
17741 (*movxf_internal): Ditto.
17742 (*movdf_internal): Ditto.
17743 (*movsf_internal): Ditto.
17744
7cf34aae
UB
177452013-03-20 Uros Bizjak <ubizjak@gmail.com>
17746
17747 * config/i386/i386.md (*movti_internal): Set prefix attribute to
17748 maybe_vex for sselog1 and ssemov types.
17749 (*movdi_internal): Reorder operand constraints.
17750 (*movsi_internal): Ditto. Set prefix attribute to
17751 maybe_vex for sselog1 and ssemov types.
17752 (*movtf_internal): Set prefix attribute to maybe_vex
17753 for sselog1 and ssemov types.
17754 (*movdf_internal): Ditto. Set prefix_data16 attribute for
17755 DImode ssemov types. Reorder operand constraints.
17756 (*movsf_internal): Set type of alternatives 3,4 to imov. Set prefix
17757 attribute to maybe_vex for sselog1 and ssemov types. Set prefix_data16
17758 attribute for SImode ssemov types. Reorder operand constraints.
17759
19321415
MJ
177602013-03-20 Martin Jambor <mjambor@suse.cz>
17761
17762 * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter.
17763 * ipa-cp.c (hint_time_bonus): Add abonus for known array indices.
17764
12211b99 177652013-03-20 Pat Haugen <pthaugen@us.ibm.com>
c6d5ff83
MM
17766
17767 * config/rs6000/predicates.md (indexed_address, update_address_mem
17768 update_indexed_address_mem): New predicates.
17769 * config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
17770 attribute for load/store instructions.
17771 * config/rs6000/dfp.md (movsd_store): Likewise.
17772 (movsd_load): Likewise.
17773 * config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
17774 (unnamed HI->DI extend define_insn): Likewise.
17775 (unnamed SI->DI extend define_insn): Likewise.
17776 (unnamed QI->SI extend define_insn): Likewise.
17777 (unnamed QI->HI extend define_insn): Likewise.
17778 (unnamed HI->SI extend define_insn): Likewise.
17779 (unnamed HI->SI extend define_insn): Likewise.
17780 (extendsfdf2_fpr): Likewise.
17781 (movsi_internal1): Likewise.
17782 (movsi_internal1_single): Likewise.
17783 (movhi_internal): Likewise.
17784 (movqi_internal): Likewise.
17785 (movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
17786 attribute for load/store instructions.
17787 (mov<mode>_hardfloat): Set correct "type" attribute for load/store
17788 instructions.
17789 (mov<mode>_softfloat): Likewise.
17790 (mov<mode>_hardfloat32): Likewise.
17791 (mov<mode>_hardfloat64): Likewise.
17792 (mov<mode>_softfloat64): Likewise.
17793 (movdi_internal32): Likewise.
17794 (movdi_internal64): Likewise.
17795 (probe_stack_<mode>): Likewise.
17796
177972013-03-20 Michael Meissner <meissner@linux.vnet.ibm.com>
17798
17799 * config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
17800 floating point, and decimal floating point to reload iterator.
17801
17802 * config/rs6000/constraints.md (wl constraint): New constraints to
17803 return FLOAT_REGS if certain options are used to reduce the number
17804 of separate patterns that exist in the file.
17805 (wx constraint): Likewise.
17806 (wz constraint): Likewise.
17807
17808 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
17809 -mdebug=reg, print wg, wl, wx, and wz constraints.
17810 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
17811 Initialize the reload functions for 64-bit binary/decimal floating
17812 point types.
17813 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
17814 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
17815 create the buffer on the stack to overcome not having a 32-bit
17816 load and store.
17817 (rs6000_emit_move): Likewise.
17818 (rs6000_secondary_memory_needed_rtx): Likewise.
17819 (rs6000_alloc_sdmode_stack_slot): Likewise.
17820 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
17821 via xxlxor, just like DFmode 0.0.
17822
17823 * config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro,
17824 define as 1 if we are running on a power7 or newer.
17825 (enum r6000_reg_class_enum): Add new constraints.
17826
17827 * config/rs6000/dfp.md (movsd): Delete, combine with binary
17828 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
17829 with other moves by using conditional constraits (wg). Use LFIWZX
bd059b26 17830 and STFIWX for loading SDmode on power7. Use xxlxor to create 0.0f.
c6d5ff83
MM
17831 (movsd splitter): Likewise.
17832 (movsd_hardfloat): Likewise.
17833 (movsd_softfloat): Likewise.
17834
17835 * config/rs6000/rs6000.md (FMOVE32): New iterators to combine
17836 binary and decimal floating point moves.
17837 (fmove_ok): New attributes to combine binary and decimal floating
17838 point moves, and to combine power6x (mfpgpr) moves along normal
17839 floating moves.
17840 (real_value_to_target): Likewise.
17841 (f32_lr): Likewise.
17842 (f32_lm): Likewise.
17843 (f32_li): Likewise.
17844 (f32_sr): Likewise.
17845 (f32_sm): Likewise.
17846 (f32_si): Likewise.
17847 (movsf): Combine binary and decimal floating point moves. Combine
17848 power6x (mfpgpr) moves with other moves by using conditional
bd059b26 17849 constraits (wg). Use LFIWZX and STFIWX for loading SDmode on power7.
c6d5ff83
MM
17850 (mov<mode> for SFmode/SDmode); Likewise.
17851 (SFmode/SDmode splitters): Likewise.
17852 (movsf_hardfloat): Likewise.
17853 (mov<mode>_hardfloat for SFmode/SDmode): Likewise.
17854 (movsf_softfloat): Likewise.
17855 (mov<mode>_softfloat for SFmode/SDmode): Likewise.
17856
17857 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl,
17858 wx and wz constraints.
17859
17860 * config/rs6000/constraints.md (wg constraint): New constraint to
17861 return FLOAT_REGS if -mmfpgpr (power6x) was used.
17862
17863 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
17864 constraint.
17865
17866 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
17867 -mdebug=reg, print wg, wl, wx, and wz constraints.
17868 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
17869 Initialize the reload functions for 64-bit binary/decimal floating
17870 point types.
17871 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
17872 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
17873 create the buffer on the stack to overcome not having a 32-bit
17874 load and store.
17875 (rs6000_emit_move): Likewise.
17876 (rs6000_secondary_memory_needed_rtx): Likewise.
17877 (rs6000_alloc_sdmode_stack_slot): Likewise.
17878 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
17879 via xxlxor, just like DFmode 0.0.
17880
c6d5ff83
MM
17881 * config/rs6000/dfp.md (movdd): Delete, combine with binary
17882 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
17883 with other moves by using conditional constraits (wg). Use LFIWZX
17884 and STFIWX for loading SDmode on power7.
17885 (movdd splitters): Likewise.
17886 (movdd_hardfloat32): Likewise.
17887 (movdd_softfloat32): Likewise.
17888 (movdd_hardfloat64_mfpgpr): Likewise.
17889 (movdd_hardfloat64): Likewise.
17890 (movdd_softfloat64): Likewise.
17891
17892 * config/rs6000/rs6000.md (FMOVE64): New iterators to combine
17893 64-bit binary and decimal floating point moves.
17894 (FMOVE64X): Likewise.
17895 (movdf): Combine 64-bit binary and decimal floating point moves.
17896 Combine power6x (mfpgpr) moves with other moves by using
17897 conditional constraits (wg).
17898 (mov<mode> for DFmode/DDmode): Likewise.
17899 (DFmode/DDmode splitters): Likewise.
17900 (movdf_hardfloat32): Likewise.
17901 (mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
17902 (movdf_softfloat32): Likewise.
17903 (movdf_hardfloat64_mfpgpr): Likewise.
17904 (movdf_hardfloat64): Likewise.
17905 (mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
17906 (movdf_softfloat64): Likewise.
17907 (mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
17908 (reload_<mode>_load): Move to later in the file so they aren't in
17909 the middle of the floating point move insns.
17910 (reload_<mode>_store): Likewise.
17911
17912 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
17913 constraint.
17914
17915 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
17916 constraint if -mdebug=reg.
bd059b26
UB
17917 (rs6000_initi_hard_regno_mode_ok): Enable wg constraint if -mfpgpr.
17918 Enable using dd reload support if needed.
c6d5ff83
MM
17919
17920 * config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
17921 binary and decimal floating point moves in rs6000.md.
17922 (movtd_internal): Likewise.
17923
17924 * config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
17925 decimal floating point moves.
17926 (movtf): Likewise.
17927 (movtf_internal): Likewise.
17928 (mov<mode>_internal, TDmode/TFmode): Likewise.
17929 (movtf_softfloat): Likewise.
17930 (mov<mode>_softfloat, TDmode/TFmode): Likewise.
17931
17932 * config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
17933 movdi_internal64, using wg constraint for move direct operations.
17934 (movdi_internal64): Likewise.
17935
17936 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
17937 MODES_TIEABLE_P for selected modes. Print the numerical value of
17938 the various virtual registers. Use GPR/FPR first/last values,
17939 instead of hard coding the register numbers. Print which modes
17940 have reload functions registered.
bd059b26
UB
17941 (rs6000_option_override_internal): If -mdebug=reg, trace the options
17942 settings before/after setting cpu, target and subtarget settings.
17943 (rs6000_secondary_reload_trace): Improve the RTL dump for -mdebug=addr
17944 and for secondary reload failures in rs6000_secondary_reload_inner.
c6d5ff83
MM
17945 (rs6000_secondary_reload_fail): Likewise.
17946 (rs6000_secondary_reload_inner): Likewise.
17947
17948 * config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
17949 macros for first/last GPR and FPR registers.
17950 (LAST_GPR_REGNO): Likewise.
17951 (FIRST_FPR_REGNO): Likewise.
17952 (LAST_FPR_REGNO): Likewise.
17953
17954 * config/rs6000/vector.md (mul<mode>3): Use the combined macro
17955 VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
17956 VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
17957 (vcond<mode><mode>): Likewise.
17958 (vcondu<mode><mode>): Likewise.
17959 (vector_gtu<mode>): Likewise.
17960 (vector_gte<mode>): Likewise.
17961 (xor<mode>3): Don't allow logical operations on TImode in 32-bit
bd059b26 17962 to prevent the compiler from converting DImode operations to TImode.
c6d5ff83
MM
17963 (ior<mode>3): Likewise.
17964 (and<mode>3): Likewise.
17965 (one_cmpl<mode>2): Likewise.
17966 (nor<mode>3): Likewise.
17967 (andc<mode>3): Likewise.
17968
17969 * config/rs6000/constraints.md (wt constraint): New constraint
17970 that returns VSX_REGS if TImode is allowed in VSX registers.
17971
17972 * config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
17973 constant under VSX.
17974
17975 * config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
17976 similar to TImode, but it is restricted to being in the GPRs.
17977
17978 * config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
17979 TImode to occupy a single VSX register.
17980
17981 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
17982 -mvsx-timode for power7/power8.
17983 (power7 cpu): Likewise.
17984 (power8 cpu): Likewise.
17985
17986 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
17987 sure that TFmode/TDmode take up two registers if they are ever
17988 allowed in the upper VSX registers.
17989 (rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
17990 registers.
17991 (rs6000_init_hard_regno_mode_ok): Likewise.
17992 (rs6000_debug_reg_global): Add debugging for PTImode and wt
17993 constraint. Print if LRA is turned on.
17994 (rs6000_option_override_internal): Give an error if -mvsx-timode
17995 and VSX is not enabled.
17996 (invalid_e500_subreg): Handle PTImode, restricting it to GPRs. If
17997 -mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
17998 to reg+offset addressing. Use PTImode when checking offset
17999 addresses for validity.
18000 (reg_offset_addressing_ok_p): Likewise.
18001 (rs6000_legitimate_offset_address_p): Likewise.
18002 (rs6000_legitimize_address): Likewise.
18003 (rs6000_legitimize_reload_address): Likewise.
18004 (rs6000_legitimate_address_p): Likewise.
18005 (rs6000_eliminate_indexed_memrefs): Likewise.
18006 (rs6000_emit_move): Likewise.
18007 (rs6000_secondary_reload): Likewise.
18008 (rs6000_secondary_reload_inner): Handle PTImode. Allow 64-bit
18009 reloads to fpr registers to continue to use reg+offset addressing,
18010 but 64-bit reloads to altivec registers need reg+reg addressing.
18011 Drop test for PRE_MODIFY, since VSX loads/stores no longer support
18012 it. Treat LO_SUM like a PLUS operation.
18013 (rs6000_secondary_reload_class): If type is 64-bit, prefer to use
bd059b26 18014 FLOAT_REGS instead of VSX_RGS to allow use of reg+offset addressing.
c6d5ff83
MM
18015 (rs6000_cannot_change_mode_class): Do not allow TImode in VSX
18016 registers to share a register with a smaller sized type, since VSX
18017 puts scalars in the upper 64-bits.
18018 (print_operand): Add support for PTImode.
18019 (rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
18020 VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
18021 registers, but don't have arithmetic support.
18022 (rs6000_memory_move_cost): Add test for VSX.
18023 (rs6000_opt_masks): Add -mvsx-timode.
18024
18025 * config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
18026 for TImode.
18027 (VSs): Likewise.
18028 (VSr): Use wt constraint for TImode.
18029 (VSv): Drop TImode support.
18030 (vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
18031 (vsx_movti_64bit): Likewise.
18032 (vsx_movti_32bit): Likewise.
18033 (vec_store_<mode>): Use VSX iterator instead of vector iterator.
18034 (vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
18035 one '?' on the appropriate output constraint. Do not allow TImode
18036 logical operations on 32-bit systems.
18037 (vsx_ior<mode>3): Likewise.
18038 (vsx_xor<mode>3): Likewise.
18039 (vsx_one_cmpl<mode>2): Likewise.
18040 (vsx_nor<mode>3): Likewise.
18041 (vsx_andc<mode>3): Likewise.
18042 (vsx_concat_<mode>): Likewise.
18043 (vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.
18044
18045 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
18046 OPTION_MASK_VSX_TIMODE.
18047 (enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
18048 (STACK_SAVEAREA_MODE): Use PTImode instead of TImode.
18049
18050 * config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
18051 (TI2 iterator): New iterator for TImode, PTImode.
18052 (wd mode attribute): Add values for vector types.
bd059b26
UB
18053 (movti_string): Replace TI move operations with operations for TImode
18054 and PTImode. Add support for TImode being allowed in VSX registers.
c6d5ff83
MM
18055 (mov<mode>_string, TImode/PTImode): Likewise.
18056 (movti_ppc64): Likewise.
18057 (mov<mode>_ppc64, TImode/PTImode): Likewise.
18058 (TI mode splitters): Likewise.
18059
18060 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
18061 constraint.
18062
1fc5eced
MG
180632013-03-20 Marc Glisse <marc.glisse@inria.fr>
18064
18065 PR tree-optimization/56355
18066 * fold-const.c (tree_binary_nonnegative_warnv_p) <MULT_EXPR>:
18067 Also handle integers with undefined overflow.
18068
22c4c869
CM
180692013-03-20 Catherine Moore <clm@codesourcery.com>
18070 Maciej W. Rozycki <macro@codesourcery.com>
18071 Tom de Vries <tom@codesourcery.com>
12211b99 18072 Nathan Sidwell <nathan@codesourcery.com>
22c4c869
CM
18073 Iain Sandoe <iain@codesourcery.com>
18074 Nathan Froyd <froydnj@codesourcery.com>
12211b99 18075 Chao-ying Fu <fu@mips.com>
22c4c869
CM
18076
18077 * doc/extend.texi: (micromips, nomicromips, nocompression):
7cf34aae 18078 Document new function attributes.
22c4c869
CM
18079 * doc/invoke.texi (minterlink-compressed, mmicromips,
18080 m14k, m14ke, m14kec): Document new options.
18081 (minterlink-mips16): Update documentation.
18082 * doc/md.texi (ZC, ZD): Document new constraints.
18083 * configure.ac (gcc_cv_as_micromips): Check if linker
18084 supports the .set micromips directive.
18085 * configure: Regenerate.
18086 * config.in: Regenerate.
18087 * config/mips/mips-tables.opt: Regenerate.
18088 * config/mips/micromips.md: New file.
18089 * constraints.md (ZC, ZD): New constraints.
18090 * config/mips/predicates.md (movep_src_register): New predicate.
18091 (movep_src_operand): New predicate.
18092 (non_volatile_mem_operand): New predicate.
18093 * config/mips/mips.md (multimem): New type.
18094 (length): Differentiate between 17-bit and 18-bit branch offsets.
18095 (MOVEP1, MOVEP2): New mode iterator.
33159866 18096 (mov_<load>l): Use ZC constraint.
22c4c869
CM
18097 (mov_<load>r): Likewise.
18098 (mov_<store>l): Likewise.
18099 (mov_<store>r): Likewise.
18100 (*branch_equality<mode>_inverted): Add microMIPS support.
18101 (*branch_equality<mode>): Likewise.
18102 (*jump_absolute): Likewise.
18103 (indirect_jump_<mode>): Likewise.
18104 (tablejump_<mode>): Likewise.
18105 (<optab>_internal): Likewise.
18106 (sibcall_internal): Likewise.
18107 (sibcall_value_internal): Likewise.
18108 (prefetch): Use constraint ZD.
18109 * config/mips/mips.opt (minterlink-compressed): New option.
18110 (minterlink-mips16): Now an alias for minterlink-compressed.
18111 (mmicromips): New option.
18112 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
18113 (compare_and_swap_12): Likewise.
18114 (sync_add<mode>): Likewise.
18115 (sync_<optab>_12): Likewise.
18116 (sync_old_<optab>_12): Likewise.
18117 (sync_new_<optab>_12): Likewise.
18118 (sync_nand_12): Likewise.
18119 (sync_old_nand_12): Likewise.
18120 (sync_new_nand_12): Likewise.
18121 (sync_sub<mode>): Likewise.
18122 (sync_old_add<mode>): Likewise.
18123 (sync_old_sub<mode>): Likewise.
18124 (sync_new_add<mode>): Likewise.
18125 (sync_new_sub<mode>): Likewise.
18126 (sync_<optab><mode>): Likewise.
18127 (sync_old_<optab><mode>): Likewise.
18128 (sync_new_<optab><mode>): Likewise.
18129 (sync_nand<mode>): Likewise.
18130 (sync_old_nand<mode>): Likewise.
18131 (sync_new_nand<mode>): Likewise.
18132 (sync_lock_test_and_set<mode>): Likewise.
18133 (test_and_set_12): Likewise.
18134 (atomic_compare_and_swap<mode>): Likewise.
18135 (atomic_exchange<mode>_llsc): Likewise.
18136 (atomic_fetch_add<mode>_llsc): Likewise.
18137 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
18138 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
18139 (umips_save_restore_pattern_p): Likewise.
18140 (umips_load_store_pair_p): Likewise.
18141 (umips_output_load_store_pair): Likewise.
18142 (umips_movep_target_p): Likewise.
18143 (umips_12bit_offset_address_p): Likewise.
18144 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
18145 (mips_base_mips16): Rename this...
18146 (mips_base_compression_flags): ...to this. Update all uses.
18147 (mips_attribute_table): Add micromips, nomicromips and nocompression.
18148 (mips_mips16_decl_p): Delete.
18149 (mips_nomips16_decl_p): Delete.
33159866 18150 (mips_get_compress_on_flags): New function.
22c4c869
CM
18151 (mips_get_compress_off_flags): New function.
18152 (mips_get_compress_mode): New function.
18153 (mips_get_compress_on_name): New function.
18154 (mips_get_compress_off_name): New function.
18155 (mips_insert_attributes): Support multiple compression types.
18156 (mips_merge_decl_attributes): Likewise.
18157 (umips_12bit_offset_address_p): New function.
18158 (mips_start_function_definition): Emit .set micromips directive.
18159 (mips_call_may_need_jalx_p): New function.
18160 (mips_function_ok_for_sibcall): Add microMIPS support.
18161 (mips_print_operand_punctuation): Support short delay slots and
18162 compact jumps.
18163 (umips_swm_mask, umips_swm_encoding): New.
18164 (umips_build_save_restore): New function.
18165 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
18166 (was_mips16_p): Remove.
18167 (old_compression_mode): New.
18168 (mips_set_compression_mode): New function.
18169 (mips_set_current_function): Add microMIPS support.
18170 (mips_option_override): Likewise.
18171 (umips_save_restore_pattern_p): New function.
18172 (umips_output_save_restore): New function.
18173 (umips_load_store_pair_p_1): New function.
18174 (umips_load_store_pair_p): New function.
18175 (umips_output_load_store_pair_1): New function.
18176 (umips_output_load_store_pair): New function.
18177 (umips_movep_target_p) New function.
18178 (mips_prepare_pch_save): Add microMIPS support.
18179 * config/mips/mips.h (TARGET_COMPRESSION): New.
18180 (TARGET_CPU_CPP_BUILTINS): Update macro
18181 to use new compression flags and to support microMIPS.
18182 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
18183 (MIPS_ARCH_FLOAT_SPEC): Likewise.
18184 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
18185 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
18186 (ASM_SPEC): Support mmicromips and mno-micromips.
18187 (M16STORE_REG_P): New macro.
18188 (MIPS_CALL): Support TARGET_MICROMIPS.
18189 (MICROMIPS_J): New macro.
18190 (mips_base_mips16): Rename this...
18191 (mips_base_compression_flags): ...to this.
18192 (UMIPS_12BIT_OFFSET_P): New macro.
18193 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
18194 (MULTILIB_DIRNAMES): Likewise.
92a8d7a7
RB
181952013-03-20 Richard Biener <rguenther@suse.de>
18196
18197 PR tree-optimization/56661
18198 * tree-ssa-sccvn.c (visit_use): Only value-number calls if
18199 the result does not have to be distinct.
18200
54714c68
RB
182012013-03-20 Richard Biener <rguenther@suse.de>
18202
18203 * tree-inline.c (copy_tree_body_r): Sync MEM_REF code with
18204 remap_gimple_op_r.
18205
cca1130d 182062013-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 18207 Steven Bosscher <steven@gcc.gnu.org>
cca1130d
BS
18208
18209 PR rtl-optimization/56605
18210 * loop-iv.c (implies_p): Handle equal RTXs and subregs.
18211
2a930377
UB
182122013-03-20 Uros Bizjak <ubizjak@gmail.com>
18213
18214 PR bootstrap/56656
18215 * config/i386/i386.md (*movdi_internal): Handle broken assemblers
18216 that require movd instead of movq.
18217
d6d305fe
RB
182182013-03-20 Richard Biener <rguenther@suse.de>
18219
18220 * tree-ssa-structalias.c (struct variable_info): Add pointer
18221 to the first field of an aggregate with sub-vars. Make
18222 this and the pointer to the next subfield its ID.
18223 (vi_next): New function.
18224 (nothing_id, anything_id, readonly_id, escaped_id, nonlocal_id,
18225 storedanything_id, integer_id): Increment by one.
18226 (new_var_info, get_call_vi, lookup_call_clobber_vi,
18227 get_call_clobber_vi): Adjust.
18228 (solution_set_expand): Simplify and speedup.
18229 (solution_set_add): Inline into ...
18230 (set_union_with_increment): ... this. Adjust accordingly.
18231 (do_sd_constraint): Likewise.
18232 (do_ds_constraint): Likewise.
18233 (do_complex_constraint): Simplify.
18234 (build_pred_graph): Adjust.
18235 (solve_graph): Likewise. Simplify and speedup.
18236 (get_constraint_for_ssa_var, get_constraint_for_ptr_offset,
18237 get_constraint_for_component_ref, get_constraint_for_1,
18238 first_vi_for_offset, first_or_preceding_vi_for_offset,
18239 create_function_info_for, create_variable_info_for_1,
18240 create_variable_info_for, intra_create_variable_infos): Adjust.
18241 (init_base_vars): Push NULL for ID zero.
18242 (compute_points_to_sets): Adjust.
18243
a271b42d
RB
182442013-03-20 Richard Biener <rguenther@suse.de>
18245
18246 * cfgloop.c (verify_loop_structure): Streamline and avoid
18247 ICEing on corrupt loop tree.
18248 * graph.c (draw_cfg_nodes_for_loop): Avoid ICEing on corrupt
18249 loop tree.
18250
ebd65954
RB
182512013-03-20 Richard Biener <rguenther@suse.de>
18252
18253 * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Do not
18254 check whether an SSA update is needed.
18255
4547b7ee
RS
182562013-03-20 Richard Sandiford <rdsandiford@googlemail.com>
18257
18258 * config/mips/constraints.md (T): Rename to...
18259 (Yf): ...this.
18260 (U): Rename to...
18261 (Yd): ...this.
18262 * config/mips/mips.md (*movdi_64bit, *movdi_64bit_mips16)
18263 (*mov<mode>_internal, *mov<mode>_mips16): Update accordingly.
18264
0b8cdc58
IB
182652013-03-19 Ian Bolton <ian.bolton@arm.com>
18266
18267 * config/aarch64/aarch64.md (*sub<mode>3_carryin): New pattern.
18268 (*subsi3_carryin_uxtw): Likewise.
18269
5977a10d
IB
182702013-03-19 Ian Bolton <ian.bolton@arm.com>
18271
18272 * config/aarch64/aarch64.md (*ror<mode>3_insn): New pattern.
18273 (*rorsi3_insn_uxtw): Likewise.
18274
bd83ff2c
IB
182752013-03-19 Ian Bolton <ian.bolton@arm.com>
18276
18277 * config/aarch64/aarch64.md (*extr<mode>5_insn): New pattern.
18278 (*extrsi5_insn_uxtw): Likewise.
18279
ba65123c
RB
182802013-03-19 Richard Biener <rguenther@suse.de>
18281
18282 PR tree-optimization/56273
18283 * passes.c (init_optimization_passes): Move second VRP after DOM.
18284
2eac0476
UB
182852013-03-19 Uros Bizjak <ubizjak@gmail.com>
18286
18287 * config/i386/i386.md (*movti_internal): Merge from
18288 *movti_internal_rex64 and *movti_internal_sse. Use x64 isa attribute.
18289 (*movdi_internal): Merge with *movdi_internal_rex64. Use x64 and
18290 nox64 isa attributes.
18291
6e55eda7
RB
182922013-03-18 Richard Biener <rguenther@suse.de>
18293
18294 * tree-ssa-structalias.c (find): Use gcc_checking_assert.
18295 (unite): Likewise.
18296 (merge_node_constraints): Likewise.
18297 (build_succ_graph): Likewise.
18298 (valid_graph_edge): Inline into single caller.
18299 (unify_nodes): Likewise. Use bitmap_set_bit return value
18300 and cache varinfo.
18301 (scc_visit): Fix formatting and variable use.
18302 (do_sd_constraint): Use gcc_checking_assert.
18303 (do_ds_constraint): Likewise.
18304 (do_complex_constraint): Likewise.
18305 (condense_visit): Likewise. Cleanup.
18306 (dump_pred_graph): New function.
18307 (perform_var_substitution): Dump the pred-graph before
18308 variable substitution.
18309 (find_equivalent_node): Use gcc_checking_assert.
18310 (rewrite_constraints): Guard checking loop with ENABLE_CHECKING.
18311
4bdd44c4
RB
183122013-03-18 Richard Biener <rguenther@suse.de>
18313
18314 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
18315 Remove cond_expr_stmt_list argument and do not gimplify the
18316 built expression.
18317 (vect_loop_versioning): Adjust.
18318 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
18319 Cleanup to use less temporaries.
18320 (vect_create_data_ref_ptr): Cleanup.
18321
38c56a5b
JJ
183222013-03-18 Jakub Jelinek <jakub@redhat.com>
18323
18324 PR tree-optimization/56635
18325 * fold-const.c (operand_equal_p): For MEM_REF and TARGET_MEM_REF,
18326 require types_compatible_p types.
18327
20b2e6a0
NC
183282013-03-18 Nick Clifton <nickc@redhat.com>
18329
a6178a25
NC
18330 * config/stormy16/stormy16.c (xstormy16_expand_prologue): Remove
18331 spurious backslash.
18332
20b2e6a0
NC
18333 * config/mn10300/mn10300.c (mn10300_get_live_callee_saved_regs):
18334 Add missing line to comment describing function.
18335
92608d0e
RB
183362013-03-18 Richard Biener <rguenther@suse.de>
18337
18338 PR tree-optimization/56210
18339 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
18340 Handle string / character search functions.
18341 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
18342
31348d52
RB
183432013-03-18 Richard Biener <rguenther@suse.de>
18344
18345 PR middle-end/56483
18346 * cfgexpand.c (expand_gimple_cond): Inline gimple_cond_single_var_p
18347 and implement properly.
18348 * gimple.h (gimple_cond_single_var_p): Remove.
18349
fcac74a1
RB
183502013-03-18 Richard Biener <rguenther@suse.de>
18351
18352 * tree-data-ref.h (find_data_references_in_loop): Declare.
18353 * tree-data-ref.c (get_references_in_stmt): Use a stack
18354 vector pre-allocated in the callers.
18355 (find_data_references_in_stmt): Adjust.
18356 (graphite_find_data_references_in_stmt): Likewise.
18357 (create_rdg_vertices): Likewise.
18358 (find_data_references_in_loop): Export.
18359 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
18360 Compute dependences here...
18361 (vect_analyze_data_refs): ...not here. When we encounter
18362 a non-vectorizable data reference in basic-block vectorization
18363 truncate the data reference vector. Do not bother to
18364 fixup data-dependence information for gather loads.
18365 * tree-vect-slp.c (vect_slp_analyze_bb_1): Check the number
18366 of data references, as reported.
18367
0d5a1b56
RB
183682013-03-18 Richard Biener <rguenther@suse.de>
18369
18370 PR tree-optimization/3713
18371 * tree-ssa-sccvn.c (visit_copy): Simplify. Always propagate
18372 has_constants and expr.
18373 (stmt_has_constants): Properly valueize SSA names when deciding
18374 whether the stmt has constants.
18375
789c34e3
RB
183762013-03-18 Richard Biener <rguenther@suse.de>
18377
18378 * tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the
18379 whole function when there is nothing to do.
18380 * tree-ssa-loop.c (pass_vectorize): Remove TODO_update_ssa.
18381 * tree-vectorizer.c (vectorize_loops): Update virtual and
18382 loop-closed SSA once.
18383 * tree-vect-loop.c (vect_transform_loop): Do not update SSA here.
18384
076b4605
RB
183852013-03-18 Richard Biener <rguenther@suse.de>
18386
18387 PR middle-end/56113
18388 * domwalk.c (bb_postorder): New global static.
18389 (cmp_bb_postorder): New function.
18390 (walk_dominator_tree): Replace scheme imposing an order for
18391 visiting dominator sons by one sorting them at the time they
18392 are pushed on the stack.
18393
bdb01696
RB
183942013-03-18 Richard Biener <rguenther@suse.de>
18395
18396 PR tree-optimization/39326
18397 * tree-ssa-loop-im.c (refs_independent_p): Exploit symmetry.
18398 (struct mem_ref): Replace mem member with ao_ref typed member.
18399 (MEM_ANALYZABLE): Adjust.
18400 (memref_eq): Likewise.
18401 (mem_ref_alloc): Likewise.
18402 (gather_mem_refs_stmt): Likewise.
18403 (mem_refs_may_alias_p): Use the ao_ref to query the alias oracle.
18404 (execute_sm_if_changed_flag_set): Adjust.
18405 (execute_sm): Likewise.
18406 (ref_always_accessed_p): Likewise.
18407 (refs_independent_p): Likewise.
18408 (can_sm_ref_p): Likewise.
18409
12d2dc5e
JJ
184102013-03-18 Jakub Jelinek <jakub@redhat.com>
18411
18412 PR c/56566
18413 * tree.c (tree_int_cst_min_precision): For integer_zerop (value)
18414 return 1 even for !unsignedp.
18415
286fb677
UB
184162013-03-17 Uros Bizjak <ubizjak@gmail.com>
18417
18418 * config/i386/i386.md (isa): Add x64 and nox64.
18419 (enabled): Define x64 for TARGET_64BIT and nox64 for !TARGET_64BIT.
18420 (*pushtf): Enable *roF alternative for x64 isa only.
18421 (*pushxf): Merge with *pushxf_nointeger. Use Yx*r constraint. Set
18422 mode attribute of integer alternatives to DImode for TARGET_64BIT.
18423 (*pushdf): Merge with *pushdf_rex64. Use x64 and nox64 isa attributes.
18424 (*movtf_internal): Merge from *movtf_internal_rex64 and
18425 *movtf_internal_sse. Use x64 and nox64 isa attributes.
18426 (*movxf_internal): Merge with *movxf_internal_rex64. Use x64 and
18427 nox64 isa attributes.
18428 (*movdf_internal): Merge with *movdf_internal_rex64. Use x64 and
18429 nox64 isa attributes.
18430 * config/i386/constraints.md (Yd): Do not set for TARGET_64BIT.
18431
88b97037
UB
184322013-03-17 Uros Bizjak <ubizjak@gmail.com>
18433
18434 * config/alpha/alpha.c (TARGET_LRA_P): New define.
18435
9f4f1735
JJ
184362013-03-17 Jakub Jelinek <jakub@redhat.com>
18437
18438 PR target/56640
18439 * config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
18440 class names. Remove trailing comma after "ALL_REGS".
18441
48f4a6fa
JH
184422013-03-16 Jan Hubicka <jh@suse.cz>
18443
18444 * cgraph.h (cgraph_get_create_real_symbol_node): Declare.
18445 * cgraph.c (cgraph_get_create_real_symbol_node): New function.
18446 * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
18447 of cgraph_get_create_node.
18448 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
18449
98e81123
JM
184502013-03-16 Jason Merrill <jason@redhat.com>
18451
18452 PR debug/49090
18453 * dwarf2out.c (gen_generic_params_dies): Indicate default arguments
18454 with DW_AT_default_value.
18455
8a298c04
JJ
184562013-03-16 Jakub Jelinek <jakub@redhat.com>
18457
18458 * BASE-VER: Set to 4.9.0.
18459
4323afa0
AK
184602013-03-14 Andi Kleen <ak@linux.intel.com>
18461
18462 PR target/56619
18463 * doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE,
18464 __ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs.
18465 Document _x* TSX intrinsics.
18466
b3c0d469
JJ
184672013-03-14 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
18468 David Holsgrove <david.holsgrove@xilinx.com>
8cc9a5a5
EI
18469
18470 * configure.ac: Add MicroBlaze TLS support detection.
18471 * configure: Regenerate.
88b97037
UB
18472 * config/microblaze/microblaze-protos.h
18473 (microblaze_cannot_force_const_mem, microblaze_tls_referenced_p,
18474 symbol_mentioned_p, label_mentioned_p): Add prototypes.
18475 * config/microblaze/microblaze.c (microblaze_address_type): Add
18476 ADDRESS_TLS and tls_reloc address types.
8cc9a5a5
EI
18477 (microblaze_address_info): Add tls_reloc.
18478 (TARGET_HAVE_TLS): Define.
18479 (get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1,
18480 microblaze_tls_referenced_p, microblaze_cannot_force_const_mem,
88b97037
UB
18481 symbol_mentioned_p, label_mentioned_p, tls_mentioned_p,
18482 load_tls_operand, microblaze_call_tls_get_addr,
18483 microblaze_legitimize_tls_address): New functions.
8cc9a5a5
EI
18484 (microblaze_classify_unspec): Handle UNSPEC_TLS.
18485 (get_base_reg): Use microblaze_tls_symbol_p.
18486 (microblaze_classify_address): Handle TLS.
88b97037
UB
18487 (microblaze_legitimate_pic_operand): Use symbol_mentioned_p,
18488 label_mentioned_p and microblaze_tls_referenced_p.
8cc9a5a5
EI
18489 (microblaze_legitimize_address): Handle TLS.
18490 (microblaze_address_insns): Handle ADDRESS_TLS.
18491 (pic_address_needs_scratch): Handle TLS.
18492 (print_operand_address): Handle TLS.
18493 (microblaze_expand_prologue): Check TLS_NEEDS_GOT.
18494 (microblaze_expand_move): Handle TLS.
88b97037
UB
18495 (microblaze_legitimate_constant_p): Check
18496 microblaze_cannot_force_const_mem and microblaze_tls_symbol_p.
8cc9a5a5
EI
18497 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
18498 * config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define
18499 (PIC_OFFSET_TABLE_REGNUM): Set.
18500 * config/microblaze/linux.h (TLS_NEEDS_GOT): Define.
18501 * config/microblaze/microblaze.md (UNSPEC_TLS): Define.
18502 (addsi3, movsi_internal2, movdf_internal): Update constraints
18503 * config/microblaze/predicates.md (arith_plus_operand): Define
88b97037
UB
18504 (move_operand): Redefine as move_src_operand,
18505 check microblaze_tls_referenced_p.
8cc9a5a5 18506
d803a491
IB
185072013-03-14 Ian Bolton <ian.bolton@arm.com>
18508
18509 * config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ.
18510 (*and_<SHIFT:optab><mode>3nr_compare0): Likewise.
18511
a8504f22
IB
185122013-03-14 Ian Bolton <ian.bolton@arm.com>
18513
18514 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct
18515 CC mode for AND.
18516
df2dfaea
JJ
185172013-03-14 Jakub Jelinek <jakub@redhat.com>
18518
fbd28bc3
JJ
18519 PR tree-optimization/53265
18520 * common.opt (Waggressive-loop-optimizations): New option.
18521 * tree-ssa-loop-niter.c: Include tree-pass.h.
18522 (do_warn_aggressive_loop_optimizations): New function.
18523 (record_estimate): Call it. Don't add !is_exit bounds to loop->bounds
18524 if number_of_latch_executions returned constant.
18525 (estimate_numbers_of_iterations_loop): Call number_of_latch_executions
18526 early. If number_of_latch_executions returned constant, set
18527 nb_iterations_upper_bound back to it.
18528 * cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations
18529 field.
18530 * Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H).
18531 * doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document.
18532
df2dfaea
JJ
18533 * config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove.
18534 (MULTILIB_OSDIRNAMES): Set.
18535 * genmultilib: If defaultosdirname doesn't start with :: , set
18536 defaultosdirname2 instead, clear it and emit two . multilib_raw
18537 entries instead of just one.
18538
ee0d2b68
KK
185392013-03-14 Kaz Kojima <kkojima@gcc.gnu.org>
18540
18541 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE.
18542 (SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default.
18543 * config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE.
18544 (SUBTARGET_OVERRIDE_OPTIONS): New.
18545
decc676e
OE
185462013-03-13 Oleg Endo <olegendo@gcc.gnu.org>
18547
18548 PR target/49880
18549 * config/sh/sh.opt (FPU_SINGLE_ONLY): New mask.
18550 (musermode): Convert to Var(TARGET_USERMODE).
18551 * config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY,
18552 MASK_ARCH): Add MASK_FPU_SINGLE_ONLY.
18553 * config/sh/sh.c (sh_option_override): Use
18554 TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case.
18555 * config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4
18556 condition.
18557 (udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
18558 TARGET_SH4.
18559 (udivsi3_i4_single, divsi3_i4_single): Use
18560 TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4.
18561
f4b719c7
DK
185622013-03-13 Dave Korn <dave.korn.cygwin@....>
18563
18564 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the
18565 default setting.
18566
c40eced0
RB
185672013-03-13 Richard Biener <rguenther@suse.de>
18568
18569 PR tree-optimization/56608
18570 * tree-vect-slp.c (vect_schedule_slp): Do not remove scalar
18571 calls when vectorizing basic-blocks.
18572
1bfa5973
JJ
185732013-03-13 Jakub Jelinek <jakub@redhat.com>
18574
18575 PR plugins/45078
18576 * config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to
18577 tm_file.
18578
6fcf5434
JJ
185792013-03-12 Jakub Jelinek <jakub@redhat.com>
18580
18581 * doc/invoke.texi (-Waddr-space-convert): Move into the table earlier.
18582
4f38fa8c
JH
185832013-03-11 Jan Hubicka <jh@suse.cz>
18584
18585 PR lto/56557
18586 * lto-streamer-out.c (output_symbol_p): Skip references from
18587 constructors of external variables.
18588
c5c5ba89
JH
185892013-03-11 Jan Hubicka <jh@suse.cz>
18590
18591 PR middle-end/56571
18592 * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating
18593 from pseudos.
18594 * emit-rtl.c (verify_rtx_sharing): Likewise.
18595 (copy_insn_1): Likewise.
18596 * rtl.c (copy_rtx): Likewise.
18597
c2a939b1
GJL
185982013-03-11 Georg-Johann Lay <avr@gjlay.de>
18599
18600 PR target/56591
18601 * config/avr/avr.c (avr_print_operand): Add space after '%c' in
18602 output_operand_lossage message.
88b97037 18603
3c3279fb
RE
186042013-03-11 Richard Earnshaw <rearnsha@arm.com>
18605
18606 PR target/56470
18607 * arm.c (shift_op): Validate RTL pattern on the fly.
18608 (arm_print_operand, case 'S'): Don't use shift_operator to validate
18609 the RTL.
18610
aef5ef9d
JDA
186112013-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
18612
18613 PR target/56347
18614 * config/pa/pa.md (call_value): Check for calls to powf and direct to
18615 new call patterns that clobber %fr12.
18616 (call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn,
18617 split and postreload patterns.
18618 * config/pa/pa.c (pa_conditional_register_usage): Revert marking
18619 registers %fr12 and %fr12R as call used.
18620
456610d3
SB
186212013-03-09 Steven Bosscher <steven@gcc.gnu.org>
18622
18623 * dse.c (delete_dead_store_insn): Respect TDF_DETAILS.
18624 (canon_address, record_store, replace_read, check_mem_read_rtx,
18625 scan_insn, dse_step1, dse_step2_init, dse_step2_spill,
18626 dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6,
18627 rest_of_handle_dse): Likewise.
18628
4b1baac8
RS
186292013-03-09 Richard Sandiford <rdsandiford@googlemail.com>
18630
18631 PR middle-end/56524
18632 * tree.h (tree_optimization_option): Rename target_optabs to optabs.
18633 Add base_optabs.
18634 (TREE_OPTIMIZATION_OPTABS): Update after previous field change.
18635 (TREE_OPTIMIZATION_BASE_OPTABS): New macro.
18636 (save_optabs_if_changed): Replace with...
18637 (init_tree_optimization_optabs): ...this.
18638 * optabs.c (save_optabs_if_changed): Rename to...
18639 (init_tree_optimization_optabs): ...this. Take the optimization node
18640 as argument. Do nothing if the base optabs are already correct.
18641 Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need
18642 to recompute optabs.
18643 * function.h (function): Remove optabs field.
18644 * function.c (invoke_set_current_function_hook): Call
18645 init_tree_optimization_optabs. Use the result to initialize
18646 this_fn_optabs.
18647
b7a78683
AH
186482013-02-27 Aldy Hernandez <aldyh@redhat.com>
18649
18650 * trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE
18651 if GTMA_HAS_NO_INSTRUMENTATION.
18652 (generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit.
18653 (ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION.
18654 * gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define.
18655 * gimple-pretty-print.c (dump_gimple_transaction): Handle
18656 GTMA_HAS_NO_INSTRUMENTATION.
18657
6384c29b
JJ
186582013-03-08 Jakub Jelinek <jakub@redhat.com>
18659
18660 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against
18661 libasan_preinit.o.
18662
ecd4f20a
MP
186632013-03-08 Marek Polacek <polacek@redhat.com>
18664 Jakub Jelinek <jakub@redhat.com>
18665
18666 PR tree-optimization/56478
18667 * predict.c (is_comparison_with_loop_invariant_p): Change the
18668 type of loop_step to tree.
18669 (predict_loops): Adjust.
18670 (predict_iv_comparison): Perform the computations on double_ints.
18671
64366d35
RB
186722013-03-08 Richard Biener <rguenther@suse.de>
18673
18674 PR tree-optimization/56570
18675 * tree-cfg.c (verify_expr_location_1): Verify locations for
18676 DECL_DEBUG_EXPR.
18677 * tree-sra.c (create_access_replacement): Strip locations
18678 from DECL_DEBUG_EXPRs.
18679
a9d5a059
RB
186802013-03-08 Richard Biener <rguenther@suse.de>
18681
18682 * tree-inline.c (expand_call_inline): Do not associate
18683 a BLOCK with the location in BLOCK_SOURCE_LOCATION.
18684 * tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION.
18685
b7aa4e9a
RB
186862013-03-08 Richard Biener <rguenther@suse.de>
18687
18688 * tree-ssa-ter.c (is_replaceable_p): Do not TER across location
18689 or block changes with -Og. Fix for location / block encoding
18690 changes and PHI arguments with locations.
18691
c4c2f9fa
SB
186922013-03-07 Steven Bosscher <steven@gcc.gnu.org>
18693
18694 * bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
18695 for all counters.
18696 (struct output_info): Likewise.
18697 (register_overhead): Remove bad gcc_assert.
18698 (bitmap_find_bit): If there is only a single bitmap element, do not
18699 count a miss as a search.
18700 (print_statistics): Update for counter type changes.
18701 (dump_bitmap_statistics): Likewise. Print headers such that they
18702 are properly lined up with the printed counters.
18703
5bf6606a
JJ
187042013-03-07 Jakub Jelinek <jakub@redhat.com>
18705
18706 PR tree-optimization/56559
18707 * tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2,
18708 check that it has only a single use.
18709
2c653d46
RB
187102013-03-07 Richard Biener <rguenther@suse.de>
18711
18712 * doc/invoke.texi (fwhole-program): Discourage use in combination
18713 with -flto.
18714
a72d8780
JJ
187152013-03-06 Jakub Jelinek <jakub@redhat.com>
18716
01a454df
JJ
18717 * config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def.
18718
c1781047
JJ
18719 PR tree-optimization/56539
18720 * tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
18721 instead of GSI_CONTINUE_LINKING as last argument to
18722 force_gimple_operand_gsi. Adjust function comment.
18723
9772c47a
JJ
18724 * config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add
18725 aarch64-cores.def.
18726
a72d8780
JJ
18727 PR middle-end/56548
18728 * expr.c (expand_cond_expr_using_cmove): When expanding cmove in
18729 promoted mode, convert the result back to the original mode.
18730
fa5556de
RB
187312013-03-06 Richard Biener <rguenther@suse.de>
18732
18733 PR middle-end/56294
18734 * tree-into-ssa.c (insert_phi_nodes_for): Add dumping.
18735 (insert_updated_phi_nodes_compare_uids): New function.
18736 (update_ssa): Sort symbols_to_rename after UID before
18737 traversing it to insert PHI nodes.
18738
010403d1
RB
187392013-03-06 Richard Biener <rguenther@suse.de>
18740
18741 PR middle-end/50494
18742 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
18743 Do not adjust alignment of DECL_IN_CONSTANT_POOL decls.
18744
18745 Revert
18746 2013-02-13 Richard Biener <rguenther@suse.de>
18747
18748 PR lto/50494
18749 * varasm.c (output_constant_def_1): Get the decl representing
18750 the constant as argument.
18751 (output_constant_def): Wrap output_constant_def_1.
18752 (make_decl_rtl): Use output_constant_def_1 with the decl
18753 representing the constant.
18754 (build_constant_desc): Optionally re-use a decl already
18755 representing the constant.
18756 (tree_output_constant_def): Adjust.
18757
3c27ce4c
JY
187582013-03-06 Joey Ye <joey.ye@arm.com>
18759
18760 PR lto/50293
18761 * gcc.c (convert_white_space): New function.
18762 (main): Handles white space in function name.
18763
8f6d1c86
OE
187642013-03-06 Oleg Endo <olegendo@gcc.gnu.org>
18765
18766 PR target/56529
18767 * config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
18768 instead of TARGET_SH2 for call-table case. Do not set sh_div_strategy
18769 to SH_DIV_CALL_TABLE for TARGET_SH2.
18770 * config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
18771 list.
18772 * doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
18773 call-table options.
18774
798a209f
SA
187752013-03-05 Sterling Augustine <saugustine@google.com>
18776 Cary Coutant <ccoutant@google.com>
18777
18778 PR debug/55364
18779 * dwarf2out.c (resolve_addr): Don't call
18780 remove_loc_list_addr_table_entries a second time for the same
18781 expression.
18782
6cfa417f 187832013-03-05 Jakub Jelinek <jakub@redhat.com>
ee61ea38 18784
6cfa417f
JJ
18785 PR debug/56510
18786 * cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming.
18787 (avoid_complex_debug_insns): New function.
18788 (expand_debug_locations): Call it.
18789
18790 PR rtl-optimization/56484
18791 * ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending
18792 lifetimes of hard registers on small register class machines.
18793
187942013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
18795
18796 * config/microblaze/microblaze-protos.h: Rename
ee61ea38 18797 microblaze_is_interrupt_handler to microblaze_is_interrupt_variant.
6cfa417f 18798 * config/microblaze/microblaze.c (microblaze_attribute_table): Add
ee61ea38
DH
18799 fast_interrupt.
18800 (microblaze_fast_interrupt_function_p): New function.
18801 (microblaze_is_interrupt_handler): Rename to
18802 microblaze_is_interrupt_variant and add fast_interrupt check.
18803 (microblaze_must_save_register): Use microblaze_is_interrupt_variant.
18804 (save_restore_insns): Likewise.
18805 (compute_frame_size): Likewise.
18806 (microblaze_function_prologue): Add FAST_INTERRUPT_NAME.
18807 (microblaze_globalize_label): Likewise.
6cfa417f
JJ
18808 * config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME.
18809 * config/microblaze/microblaze.md: Use wrapper
ee61ea38
DH
18810 microblaze_is_interrupt_variant.
18811
731aefac
KT
188122013-03-05 Kai Tietz <ktietz@redhat.com>
18813
18814 * sdbout.c (sdbout_one_type): Switch to current function's section
18815 supporting cold/hot.
18816
a72d8780 188172013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
e34fd5a7
DH
18818
18819 * doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian,
18820 -mxl-reorder.
18821
334e71e8
JJ
188222013-03-05 Jakub Jelinek <jakub@redhat.com>
18823
0b50e654
JJ
18824 PR middle-end/56461
18825 * ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING,
18826 if VALGRIND_GET_VBITS is defined, temporarily make object
18827 memory all defined, and restore previous valgrind addressability
18828 and definability afterwards. Free this_object at the end.
18829
4ccf8f43
JJ
18830 PR middle-end/56461
18831 * lra.c (lra): Call lra_clear_live_ranges if live_p,
18832 right before calling lra_create_live_ranges, also call it
18833 when clearing live_p. Only call lra_clear_live_ranges
18834 at the end if live_p.
18835
334e71e8
JJ
18836 PR middle-end/56461
18837 * sched-deps.c (delete_dep_node): Free DEP_REPLACE.
18838
9ca966ca
RB
188392013-03-05 Richard Biener <rguenther@suse.de>
18840
18841 PR tree-optimization/56521
18842 * tree-ssa-sccvn.c (set_value_id_for_result): Always initialize
18843 value-id.
18844
d273b176
SB
188452013-03-05 Steven Bosscher <steven@gcc.gnu.org>
18846
18847 PR c++/55135
18848 * except.h (remove_unreachable_eh_regions): New prototype.
18849 * except.c (remove_eh_handler_splicer): New function, split out
18850 of remove_eh_handler.
18851 (remove_eh_handler): Use remove_eh_handler_splicer. Add comment
18852 warning about running it on many EH regions one at a time.
18853 (remove_unreachable_eh_regions_worker): New function, walk the
18854 EH tree in depth-first order and remove non-marked regions.
18855 (remove_unreachable_eh_regions): New function.
18856 * tree-eh.c (mark_reachable_handlers): New function, split out
18857 from remove_unreachable_handlers.
18858 (remove_unreachable_handlers): Use mark_reachable_handlers and
18859 remove_unreachable_eh_regions.
18860 (remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
18861 and remove_unreachable_eh_regions.
18862
5e7f1aef
RB
188632013-03-05 Richard Biener <rguenther@suse.de>
18864
18865 PR middle-end/56525
18866 * loop-init.c (fix_loop_structure): Remove loops in two stages,
18867 not freeing them until the end.
18868
f276b762
AK
188692013-03-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18870
18871 * config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO.
18872
12a43ab8
RB
188732013-03-05 Richard Biener <rguenther@suse.de>
18874
18875 PR tree-optimization/56270
18876 * tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts
18877 of loads after scheduling an SLP instance.
18878
93675444
JJ
188792013-03-05 Jakub Jelinek <jakub@redhat.com>
18880
db4138e3
JJ
18881 * Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and
18882 tic6x.exp.
18883 (check_gcc_parallelize): Run guality.exp as a separate job from
18884 vect.exp with unsorted.exp and $(dg_target_exps) separately from
18885 struct-layout-1.exp with stackalign.exp.
18886
dd3d1ec0
JJ
18887 * alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap.
18888
b8d381a3
JJ
18889 PR middle-end/56461
18890 * tree-vect-slp.c (vect_supported_load_permutation_p): Free
18891 load_index sbitmap even if some bit in it isn't set.
18892
b4f9786b
JJ
18893 PR middle-end/56461
18894 * tree-ssa-loop-niter.c (bb_queue): Remove typedef.
18895 (discover_iteration_bound_by_body_walk): Change queues to
18896 vec<vec<basic_block> > and queue to vec<basic_block>. Fix up
18897 spelling in comment. Call safe_push on queues[bound_index] directly.
18898 Release queues[queue_index] in every iteration unconditionally.
18899 Release bounds vector.
18900
93675444
JJ
18901 PR middle-end/56461
18902 * tree-vect-stmts.c (free_stmt_vec_info_vec): Call
18903 free_stmt_vec_info on any left-over stmt_vec_info in the vector.
18904 * tree-vect-loop.c (vect_create_epilog_for_reduction): Release
18905 inner_phis vector.
18906
3e492e9c
RB
189072013-03-05 Richard Biener <rguenther@suse.de>
18908
18909 PR lto/56515
18910 * tree-inline.c (remap_blocks_to_null): New function.
18911 (expand_call_inline): When expanding a call stmt without
18912 an associated block inline remap all callee blocks to NULL.
18913
a5d1569a
JJ
189142013-03-05 Jakub Jelinek <jakub@redhat.com>
18915
86efb5cd
JJ
18916 PR rtl-optimization/56494
18917 * simplify-rtx.c (simplify_truncation): If C is narrower than A,
18918 optimize (truncate:A (subreg:B (truncate:C X) 0)) into
18919 (subreg:A (truncate:C X) 0) instead of (truncate:A X).
18920
85f5dbea
JJ
18921 PR middle-end/56461
18922 * sel-sched-ir.c (free_sched_pools): Release
18923 succs_info_pool.stack[succs_info_pool.max_top] vectors too
18924 if succs_info_pool.max_top isn't -1.
18925
a5d1569a
JJ
18926 PR bootstrap/56509
18927 * opts.c (opts_obstack, opts_concat): Moved to...
18928 * opts-common.c (opts_obstack, opts_concat): ... here.
18929
4432aa6c
JJ
189302013-03-04 Jakub Jelinek <jakub@redhat.com>
18931
18932 PR middle-end/56461
18933 * diagnostic.c (diagnostic_append_note): Save and restore old prefix.
18934
f3a1fb91
MJ
189352013-03-04 Martin Jambor <mjambor@suse.cz>
18936
18937 * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in
18938 all appropriate places.
18939
22110e6c
EB
189402013-01-04 Eric Botcazou <ebotcazou@adacore.com>
18941
18942 PR tree-optimization/56424
18943 * ipa-split.c (split_function): Do not set the RSO flag if result is
18944 not by reference and its type is a register type.
18945
a72d8780 189462013-03-04 David Holsgrove <david.holsgrove@xilinx.com>
91c4e421 18947
88b97037 18948 * config/microblaze/microblaze.c (microblaze_valid_pic_const): New
91c4e421 18949 (microblaze_legitimate_pic_operand): Likewise
88b97037 18950 * config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): calls
91c4e421
DH
18951 new function microblaze_legitimate_pic_operand
18952 * config/microblaze/microblaze-protos.h
18953 (microblaze_legitimate_pic_operand): Declare.
18954
a72d8780 189552013-03-04 Edgar E. Iglesias <edgar.iglesias@gmail.com>
82f8f53a 18956
a72d8780 18957 * config/microblaze/predicates.md (call_insn_simple_operand):
82f8f53a 18958 New predicate for supported rtx code types.
a72d8780 18959 * config/microblaze/microblaze.md (call_internal1): Use
82f8f53a
EI
18960 call_insn_simple_operand predicate.
18961
541d9ac8
JJ
189622013-03-04 Jakub Jelinek <jakub@redhat.com>
18963
5eb010bc
JJ
18964 PR middle-end/56461
18965 * tree-loop-distribution.c (ldist_gen): Call partition_free after each
18966 partitions.ordered_remove.
18967
30862efc
JJ
18968 PR middle-end/56461
18969 * tree-vect-stmts.c (vectorizable_conversion): Don't call
18970 vec_oprnds0.create (1) for modifier == NONE.
18971
8930f723
JJ
18972 PR middle-end/56461
18973 * tree-vect-stmts.c (vectorizable_shift): Don't call create methods
18974 on vec_oprnds0 or vec_oprnds1 before loop, only call it on
18975 vec_oprnds1 right before pushing anything to it for
18976 scalar_shift_arg.
18977
541d9ac8
JJ
18978 PR middle-end/56461
18979 * tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just
18980 set nbbs to 0 instead of having separate code path.
18981 (vect_analyze_loop_form): Call destroy_loop_vec_info with true
18982 instead of false as last argument if returning NULL.
18983
7aa7f2e3
SL
189842013-03-03 Sandra Loosemore <sandra@codesourcery.com>
18985
18986 * target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments;
18987 the attribute is now called "target" instead of "option".
18988 (TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma.
18989 * doc/tm.texi.in (Target Attributes): Likewise document the correct
18990 attribute/pragma name for TARGET_OPTION_VALID_P and
18991 TARGET_OPTION_PRAGMA_PARSE. Also copy-edit and correct markup.
18992 * doc/tm.texi: Regenerated.
18993
8930f723 189942013-03-02 David Holsgrove <david.holsgrove@xilinx.com>
cb8a1637 18995
8930f723 18996 * config/microblaze/microblaze.c:
cb8a1637 18997 Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met.
8930f723
JJ
18998 * config/microblaze/microblaze.h: Add -mxl-reorder to
18999 DRIVER_SELF_SPECS.
19000 * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2.
19001 instructions emitted if TARGET_REORDER.
88b97037
UB
19002 * config/microblaze/microblaze.opt: New option -mxl-reorder set to 1
19003 or 0 for -m/-mno case, but initialises as 2 to detect default use case
8930f723 19004 separately.
cb8a1637 19005
4dc1d68c
XDL
190062013-03-01 Xinliang David Li <davidxl@google.com>
19007
19008 * tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
19009 walk length.
19010
689eaba3
JJ
190112013-03-01 Jakub Jelinek <jakub@redhat.com>
19012
9d676bf6
JJ
19013 PR middle-end/56461
19014 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
19015 vector even when returning true. Fix up function comment formatting.
19016
caff7edf
JJ
19017 PR middle-end/56461
19018 * ira-build.c (ira_loop_nodes_count): New variable.
19019 (create_loop_tree_nodes): Initialize it.
19020 (finish_loop_tree_nodes): Use it instead of looking at current_loops.
19021
b6b9227d
JJ
19022 PR middle-end/56461
19023 * tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
19024 method on dr_chain and result_chain.
19025 * tree-vect-stmts.c (vectorizable_store): Only call
19026 result_chain.create if j == 0.
19027
689eaba3
JJ
19028 PR middle-end/56461
19029 * tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call
19030 vec_oprnds0->release (); rather than vec_oprnds0->truncate (0)
19031 before overwriting it.
19032
40bf31ed
TB
190332013-03-01 Tobias Burnus <burnus@net-b.de>
19034
19035 * doc/extended.texi (C Extensions): Change order in @menu
19036 to match @node.
19037 (Other MIPS Built-in Functions): Move last MIPS entry before
19038 "picoChip Built-in Functions".
19039 (SH Built-in Functions): Move after RX Built-in Functions.
19040 * doc/gcc.texi (Introduction): Change order in @menu
19041 to match @node.
19042 * doc/md.texi (Constraints): Ditto.
19043 * gty.texi (Type Information): Ditto.
19044 (User-provided marking routines for template types): Make
19045 subsection.
19046 * doc/invoke.texi (AArch64 Options): Move before
19047 "Adapteva Epiphany Options".
19048
e664c61c
KS
190492013-02-28 Konstantin Serebryany <konstantin.s.serebryany@gmail.com>
19050 Jakub Jelinek <jakub@redhat.com>
19051
19052 PR sanitizer/56454
19053 * asan.c (gate_asan): Lookup no_sanitize_address instead of
19054 no_address_safety_analysis attribute.
19055 * doc/extend.texi (no_address_safety_attribute): Rename to
19056 no_sanitize_address attribute, mention no_address_safety_analysis
19057 attribute as deprecated alias.
19058
37b5ec8f
JJ
190592013-02-28 Jakub Jelinek <jakub@redhat.com>
19060
19061 PR middle-end/56461
19062 * tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument
19063 type to vec<vec<tree> > *.
19064 * tree-vect-slp.c (vect_get_slp_defs): Likewise. Change vec_defs
19065 to be vec<tree> instead of vec<tree> *, set vec_defs
19066 to vNULL and call vec_defs.create (number_of_vects), adjust other
19067 uses of vec_defs.
19068 * tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call,
19069 vectorizable_condition): Adjust vect_get_slp_defs callers.
19070
ba96cdfb
JG
190712013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
19072
19073 * config/aarch64/aarch64.c
19074 (aarch64_float_const_representable): Remove unused variable.
19075
6f549691
JG
190762013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
19077
19078 * config/aarch64/aarch64.c (aarch64_mangle_type): Make static.
19079
af55e82d
JG
190802013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
19081
19082 * config/aarch64/aarch64-builtins.c
19083 (aarch64_init_simd_builtins): Make static.
19084
1df3f464
JG
190852013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
19086
19087 * config/aarch64/aarch64.c
19088 (aarch64_simd_make_constant): Make static.
19089
f8f42513
MJ
190902013-02-28 Martin Jambor <mjambor@suse.cz>
19091
19092 * tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements
19093 with no initialization to the RHS of debug statements.
19094
b48b3fc4
MJ
190952013-02-28 Martin Jambor <mjambor@suse.cz>
19096
19097 PR tree-optimization/56294
19098 * tree-sra.c (analyze_access_subtree): Create replacement declarations.
19099 Adjust dumping.
19100 (get_access_replacement): Do not call create_access_replacement.
19101 Assert a replacement exists.
19102 (get_repl_default_def_ssa_name): Create the replacement declaration
19103 itself.
19104
c3ae224c
RR
191052013-02-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
19106
19107 * config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and
19108 final_end_function.
19109
45fa0eef
MP
191102013-02-28 Marek Polacek <polacek@redhat.com>
19111
19112 PR rtl-optimization/56466
19113 * loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure
19114 if we're changing a loop.
19115 (peel_loops_completely): Likewise.
19116
502c067d
PC
191172013-02-28 Paolo Carlini <paolo.carlini@oracle.com>
19118
19119 PR c++/55813
19120 * doc/invoke.texi ([-Wctor-dtor-privacy]): Complete.
19121
ff24afc8
GJL
191222013-02-28 Georg-Johann Lay <avr@gjlay.de>
19123
19124 PR target/56445
19125 * config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty
19126 macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX,
19127 INTX_FTYPE_FX, FX_FTYPE_INTX.
19128 * config/avr/builtins.def: Adjust respective DEF_BUILTIN.
19129
c7b1fc1b
GJL
191302013-02-28 Georg-Johann Lay <avr@gjlay.de>
19131
19132 * avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285)
19133 (ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795)
19134 (atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb)
19135 (atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a)
19136 (atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1)
19137 (atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p)
19138 (atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb)
19139 (atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161)
19140 (atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e)
19141 (atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4)
19142 (atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3)
19143 (atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1)
19144 (atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva)
19145 (atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3)
19146 (atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU.
19147 (avrxmega6): Increase max flash segments from 5 to 6.
19148 * config/avr/t-multilib: Regenerate.
19149 * config/avr/avr-tables.opt: Regenerate.
19150 * doc/avr-mmcu.texi: Regenerate.
19151
4a0e3cfe
GJL
191522013-02-28 Georg-Johann Lay <avr@gjlay.de>
19153
19154 * config/avr/avr.h (device_to_arch): Rename to device_to_ld.
19155 (avr_device_to_arch): Rename to avr_device_to_ld.
19156 (avr_device_to_as): New prototype.
19157 (EXTRA_SPEC_FUNCTIONS): Add device_to_as.
19158 (ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=.
19159 * config/avr/driver-avr.c (avr_device_to_as): New.
19160 (avr_device_to_arch): Rename to avr_device_to_ld.
19161
97785e52
JJ
191622013-02-27 Jakub Jelinek <jakub@redhat.com>
19163
3f292312
JJ
19164 PR middle-end/56461
19165 * tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy
19166 method on dr_chain and result_chain.
19167
a344216b
JJ
19168 PR middle-end/56461
19169 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call
19170 pointer_set_destroy on not_executed_last_iteration.
19171
f121ad02 19172 PR middle-end/56461
88b97037 19173 * tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector.
f121ad02 19174
307f83a3
JJ
19175 PR middle-end/56461
19176 * ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
19177 FOR_EACH_DEFINED_FUNCTION when freeing state.
19178
e19624ee
JJ
19179 PR middle-end/56461
19180 * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
19181 pool_free.
19182 (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
19183 overwriting it.
19184
90e709fd
JJ
19185 PR middle-end/56461
19186 * ipa-cp.c (decide_whether_version_node): Call vec_free on
19187 known_aggs[i].items and release known_aggs vector.
19188
97785e52
JJ
19189 PR middle-end/56461
19190 * ipa-reference.c (propagate): Free node_info even for alias nodes.
19191
191922013-02-27 Edgar E. Iglesias <edgar.iglesias@gmail.com>
bbb3a9e2 19193
97785e52
JJ
19194 * config/microblaze/microblaze.c (microblaze_emit_compare):
19195 Use xor for EQ/NE comparisions.
19196 * config/microblaze/microblaze.md (cstoresf4): Add constraints
19197 (cbranchsf4): Adjust operator to comparison_operator.
bbb3a9e2 19198
6fa5e0ed
JJ
191992013-02-27 Jakub Jelinek <jakub@redhat.com>
19200
19201 PR middle-end/56461
19202 * tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
19203 vector.
19204 * tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
19205 vec_safe_push, always update *slot.
19206 (redirect_edge_var_map_clear): Use vec_free.
19207 (redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
19208 (free_var_map_entry): Use vec_free.
19209 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
19210 FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.
19211
436a956a
AB
192122013-02-27 Andrey Belevantsev <abel@ispras.ru>
19213
19214 PR middle-end/45472
436a956a
AB
19215 * sel-sched-ir.c (merge_expr): Also change vinsn of merged expr
19216 when the may_trap_p bit of the exprs being merged differs.
436a956a
AB
19217 Reorder tests for speculativeness in the logical and operator.
19218
f5c2caca
JJ
192192013-02-27 Jakub Jelinek <jakub@redhat.com>
19220
0fcb564b
JJ
19221 * incpath.c (add_standard_paths): Use reconcat instead of concat
19222 where appropriate and avoid leaking memory.
19223
dc357798
JJ
19224 * opts.h: Include obstack.h.
19225 (opts_concat): New prototype.
19226 (opts_obstack): New declaration.
19227 * opts.c (opts_concat): New function.
19228 (opts_obstack): New variable.
19229 (init_options_struct): Call gcc_init_obstack on opts_obstack.
19230 (finish_options): Use opts_concat instead of concat
19231 and XOBNEWVEC instead of XNEWVEC.
19232 * opts-common.c (generate_canonical_option, decode_cmdline_option,
19233 generate_option): Likewise.
19234 * Makefile.in (OPTS_H): Depend on $(OBSTACK_H).
19235 * lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack.
19236
f5c2caca
JJ
19237 PR target/56455
19238 * stmt.c (expand_switch_as_decision_tree_p): If flag_pic
19239 and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true.
19240
d0163673
JJ
192412013-02-26 Jakub Jelinek <jakub@redhat.com>
19242
19243 PR middle-end/56461
19244 * lra-spills.c (lra_spill): Free spill_hard_reg at the end.
19245
b5ad2b8e
JR
192462013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
19247
19248 * config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
19249 (arm_block_move_unaligned_straight): Likewise.
19250 (arm_adjust_block_mem): Likewise.
19251
9b639e2c
JR
192522013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
19253
19254 PR target/48901
19255 * config/lm32/lm32.c (gen_int_relational): Remove unused variables
19256 temp, cond and label.
19257 * config/lm32/lm32.md (ashlsi3): Remove unused variable one.
19258
e13a0ccb
JR
19259 PR target/52500
19260 * config/c6x/c6x.c (dbx_register_map): Change to unsigned.
19261 * config/c6x/c6x.h (dbx_register_map): Update declaration.
19262
fbe4f171
JR
19263 PR target/52501
19264 * config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end
19265 of prologue/epilogue functions.
19266
ae006543
JR
19267 PR target/52550
19268 * config/tilegx/tilegx.c (tilegx_expand_prologue):
19269 Remove unused variable cfa_offset.
19270 * config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise.
19271
c81369fa
JR
19272 PR target/54639
19273 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset
19274 type promotion to unsigned.
19275
f8a8fea7
JR
19276 PR target/54640
19277 * config/arm/arm.c (const_ok_for_dimode_op): Make code consistent
19278 for HOST_WIDE_INT of 32 bit / same size as int.
19279 (arm_block_move_unaligned_straight): Likewise.
19280 (arm_adjust_block_mem): Likewise.
19281
f8be5169
JR
19282 PR target/54662
19283 * config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of
19284 ALL_CFLAGS.
19285
f1ad3354
MP
192862013-02-26 Marek Polacek <polacek@redhat.com>
19287
19288 PR tree-optimization/56426
88b97037 19289 * tree-ssa-loop.c (tree_ssa_loop_init): Always call scev_initialize.
f1ad3354 19290
a6af0f42
RB
192912013-02-26 Richard Biener <rguenther@suse.de>
19292
19293 PR target/56444
19294 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove
19295 unused variable loops.
19296
aca43c6c
JJ
192972013-02-26 Jakub Jelinek <jakub@redhat.com>
19298
cecbe5d9
JJ
19299 PR tree-optimization/56448
19300 * fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at
19301 TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF.
19302 Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or
19303 later operands of the references, or even first operand for
19304 INDIRECT_REF, TARGET_MEM_REF or MEM_REF.
19305
aca43c6c
JJ
19306 PR tree-optimization/56443
19307 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
19308 overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
19309 to type_for_mode langhook.
19310
53e2e141
MT
193112013-02-25 Matt Turner <mattst88@gmail.com>
19312
19313 * doc/invoke.texi: Document r4700.
19314
259ee451
RB
193152013-02-25 Richard Biener <rguenther@suse.de>
19316
19317 PR tree-optimization/56175
19318 * tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate,
19319 split out from ...
19320 (simplify_bitwise_binary): ... here. Also guard the conversion
19321 of (type) X op CST to (type) (X op ((type-x) CST)) with it.
19322
6d65e8f1
CM
193232013-02-25 Catherine Moore <clm@codesourcery.com>
19324
19325 Revert:
19326 2013-02-24 Catherine Moore <clm@codesourcery.com>
19327 Maciej W. Rozycki <macro@codesourcery.com>
19328 Tom de Vries <tom@codesourcery.com>
a72d8780 19329 Nathan Sidwell <nathan@codesourcery.com>
6d65e8f1
CM
19330 Iain Sandoe <iain@codesourcery.com>
19331 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 19332 Chao-ying Fu <fu@mips.com>
88b97037 19333
6d65e8f1 19334 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 19335 Document new function attributes.
6d65e8f1
CM
19336 * doc/invoke.texi (minterlink-compressed, mmicromips,
19337 m14k, m14ke, m14kec): Document new options.
19338 (minterlink-mips16): Update documentation.
19339 * doc/md.texi (ZC, ZD): Document new constraints.
19340 * configure.ac (gcc_cv_as_micromips): Check if linker
19341 supports the .set micromips directive.
19342 * configure: Regenerate.
19343 * config.in: Regenerate.
19344 * config/mips/mips-tables.opt: Regenerate.
19345 * config/mips/micromips.md: New file.
19346 * constraints.md (ZC, AD): New constraints.
19347 * config/mips/predicates.md (movep_src_register): New predicate.
19348 (movep_src_operand): New predicate.
19349 (non_volatile_mem_operand): New predicate.
19350 * config/mips/mips.md (multimem): New type.
19351 (length): Differentiate between 17-bit and 18-bit branch offsets.
19352 (MOVEP1, MOVEP2): New mode iterator.
19353 (mov_<load>l): Use ZC constraint.
19354 (mov_<load>r): Likewise.
19355 (mov_<store>l): Likewise.
19356 (mov_<store>r): Likewise.
19357 (*branch_equality<mode>_inverted): Add microMIPS support.
19358 (*branch_equality<mode>): Likewise.
19359 (*jump_absolute): Likewise.
19360 (indirect_jump_<mode>): Likewise.
19361 (tablejump_<mode>): Likewise.
19362 (<optab>_internal): Likewise.
19363 (sibcall_internal): Likewise.
19364 (sibcall_value_internal): Likewise.
19365 (prefetch): Use constraint ZD.
19366 * config/mips/mips.opt (minterlink-compressed): New option.
19367 (minterlink-mips16): Now an alias for minterlink-compressed.
19368 (mmicromips): New option.
19369 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
19370 (compare_and_swap_12): Likewise.
19371 (sync_add<mode>): Likewise.
19372 (sync_<optab>_12): Likewise.
19373 (sync_old_<optab>_12): Likewise.
19374 (sync_new_<optab>_12): Likewise.
19375 (sync_nand_12): Likewise.
19376 (sync_old_nand_12): Likewise.
19377 (sync_new_nand_12): Likewise.
19378 (sync_sub<mode>): Likewise.
19379 (sync_old_add<mode>): Likewise.
19380 (sync_old_sub<mode>): Likewise.
19381 (sync_new_add<mode>): Likewise.
19382 (sync_new_sub<mode>): Likewise.
19383 (sync_<optab><mode>): Likewise.
19384 (sync_old_<optab><mode>): Likewise.
19385 (sync_new_<optab><mode>): Likewise.
19386 (sync_nand<mode>): Likewise.
19387 (sync_old_nand<mode>): Likewise.
19388 (sync_new_nand<mode>): Likewise.
19389 (sync_lock_test_and_set<mode>): Likewise.
19390 (test_and_set_12): Likewise.
19391 (atomic_compare_and_swap<mode>): Likewise.
19392 (atomic_exchange<mode>_llsc): Likewise.
19393 (atomic_fetch_add<mode>_llsc): Likewise.
19394 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
19395 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
19396 (umips_save_restore_pattern_p): Likewise.
19397 (umips_load_store_pair_p): Likewise.
19398 (umips_output_load_store_pair): Likewise.
19399 (umips_movep_target_p): Likewise.
19400 (umips_12bit_offset_address_p): Likewise.
19401 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
19402 (mips_base_mips16): Rename this...
19403 (mips_base_compression_flags): ...to this. Update all uses.
19404 (mips_attribute_table): Add micromips, nomicromips and nocompression.
19405 (mips_mips16_decl_p): Delete.
19406 (mips_nomips16_decl_p): Delete.
19407 (mips_get_compress_on_flags): New function.
19408 (mips_get_compress_off_flags): New function.
19409 (mips_get_compress_mode): New function.
19410 (mips_get_compress_on_name): New function.
19411 (mips_get_compress_off_name): New function.
19412 (mips_insert_attributes): Support multiple compression types.
19413 (mips_merge_decl_attributes): Likewise.
19414 (umips_12bit_offset_address_p): New function.
19415 (mips_start_function_definition): Emit .set micromips directive.
19416 (mips_call_may_need_jalx_p): New function.
19417 (mips_function_ok_for_sibcall): Add microMIPS support.
19418 (mips_print_operand_punctuation): Support short delay slots and
19419 compact jumps.
19420 (umips_swm_mask, umips_swm_encoding): New.
19421 (umips_build_save_restore): New function.
19422 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
19423 (was_mips16_p): Remove.
19424 (old_compression_mode): New.
19425 (mips_set_compression_mode): New function.
19426 (mips_set_current_function): Add microMIPS support.
19427 (mips_option_override): Likewise.
19428 (umips_save_restore_pattern_p): New function.
19429 (umips_output_save_restore): New function.
19430 (umips_load_store_pair_p_1): New function.
19431 (umips_load_store_pair_p): New function.
19432 (umips_output_load_store_pair_1): New function.
19433 (umips_output_load_store_pair): New function.
19434 (umips_movep_target_p) New function.
19435 (mips_prepare_pch_save): Add microMIPS support.
19436 * config/mips/mips.h (TARGET_COMPRESSION): New.
19437 (TARGET_CPU_CPP_BUILTINS): Update macro
19438 to use new compression flags and to support microMIPS.
19439 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
19440 (MIPS_ARCH_FLOAT_SPEC): Likewise.
19441 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
19442 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
19443 (ASM_SPEC): Support mmicromips and mno-micromips.
19444 (M16STORE_REG_P): New macro.
19445 (MIPS_CALL): Support TARGET_MICROMIPS.
19446 (MICROMIPS_J): New macro.
19447 (mips_base_mips16): Rename this...
19448 (mips_base_compression_flags): ...to this.
19449 (UMIPS_12BIT_OFFSET_P): New macro.
19450 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
19451 (MULTILIB_DIRNAMES): Likewise.
19452
5e5df392
TV
194532013-02-25 Tom de Vries <tom@codesourcery.com>
19454
19455 PR rtl-optimization/56131
19456 * insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment.
19457 * cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and
19458 NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL.
19459
3fdb53c1
TB
194602013-02-25 Tobias Burnus <burnus@net-b.de>
19461
19462 * doc/invoke.texi (-fsanitize=): Move from optimization
19463 to debugging options.
19464
ed358aea
AB
194652013-02-25 Andrey Belevantsev <abel@ispras.ru>
19466
19467 * sched-deps.c (sched_analyze_insn): Fix typo in comment.
19468
f45e9053
AB
194692013-02-25 Andrey Belevantsev <abel@ispras.ru>
19470 Alexander Monakov <amonakov@ispras.ru>
19471
19472 PR middle-end/56077
19473 * sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
19474 flush pending lists also on non-jumps. Adjust comment.
19475
6941b508
CM
194762013-02-24 Catherine Moore <clm@codesourcery.com>
19477 Maciej W. Rozycki <macro@codesourcery.com>
19478 Tom de Vries <tom@codesourcery.com>
a72d8780 19479 Nathan Sidwell <nathan@codesourcery.com>
6941b508
CM
19480 Iain Sandoe <iain@codesourcery.com>
19481 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 19482 Chao-ying Fu <fu@mips.com>
6941b508
CM
19483
19484 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 19485 Document new function attributes.
6941b508
CM
19486 * doc/invoke.texi (minterlink-compressed, mmicromips,
19487 m14k, m14ke, m14kec): Document new options.
19488 (minterlink-mips16): Update documentation.
19489 * doc/md.texi (ZC, ZD): Document new constraints.
19490 * configure.ac (gcc_cv_as_micromips): Check if linker
19491 supports the .set micromips directive.
19492 * configure: Regenerate.
19493 * config.in: Regenerate.
19494 * config/mips/mips-tables.opt: Regenerate.
19495 * config/mips/micromips.md: New file.
19496 * constraints.md (ZC, AD): New constraints.
19497 * config/mips/predicates.md (movep_src_register): New predicate.
19498 (movep_src_operand): New predicate.
19499 (non_volatile_mem_operand): New predicate.
19500 * config/mips/mips.md (multimem): New type.
19501 (length): Differentiate between 17-bit and 18-bit branch offsets.
19502 (MOVEP1, MOVEP2): New mode iterator.
3fdb53c1 19503 (mov_<load>l): Use ZC constraint.
6941b508
CM
19504 (mov_<load>r): Likewise.
19505 (mov_<store>l): Likewise.
19506 (mov_<store>r): Likewise.
19507 (*branch_equality<mode>_inverted): Add microMIPS support.
19508 (*branch_equality<mode>): Likewise.
19509 (*jump_absolute): Likewise.
19510 (indirect_jump_<mode>): Likewise.
19511 (tablejump_<mode>): Likewise.
19512 (<optab>_internal): Likewise.
19513 (sibcall_internal): Likewise.
19514 (sibcall_value_internal): Likewise.
19515 (prefetch): Use constraint ZD.
19516 * config/mips/mips.opt (minterlink-compressed): New option.
19517 (minterlink-mips16): Now an alias for minterlink-compressed.
19518 (mmicromips): New option.
19519 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
19520 (compare_and_swap_12): Likewise.
19521 (sync_add<mode>): Likewise.
19522 (sync_<optab>_12): Likewise.
19523 (sync_old_<optab>_12): Likewise.
19524 (sync_new_<optab>_12): Likewise.
19525 (sync_nand_12): Likewise.
19526 (sync_old_nand_12): Likewise.
19527 (sync_new_nand_12): Likewise.
19528 (sync_sub<mode>): Likewise.
19529 (sync_old_add<mode>): Likewise.
19530 (sync_old_sub<mode>): Likewise.
19531 (sync_new_add<mode>): Likewise.
19532 (sync_new_sub<mode>): Likewise.
19533 (sync_<optab><mode>): Likewise.
19534 (sync_old_<optab><mode>): Likewise.
19535 (sync_new_<optab><mode>): Likewise.
19536 (sync_nand<mode>): Likewise.
19537 (sync_old_nand<mode>): Likewise.
19538 (sync_new_nand<mode>): Likewise.
19539 (sync_lock_test_and_set<mode>): Likewise.
19540 (test_and_set_12): Likewise.
19541 (atomic_compare_and_swap<mode>): Likewise.
19542 (atomic_exchange<mode>_llsc): Likewise.
19543 (atomic_fetch_add<mode>_llsc): Likewise.
19544 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
19545 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
19546 (umips_save_restore_pattern_p): Likewise.
19547 (umips_load_store_pair_p): Likewise.
19548 (umips_output_load_store_pair): Likewise.
19549 (umips_movep_target_p): Likewise.
19550 (umips_12bit_offset_address_p): Likewise.
19551 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
19552 (mips_base_mips16): Rename this...
19553 (mips_base_compression_flags): ...to this. Update all uses.
19554 (mips_attribute_table): Add micromips, nomicromips and nocompression.
19555 (mips_mips16_decl_p): Delete.
19556 (mips_nomips16_decl_p): Delete.
3fdb53c1 19557 (mips_get_compress_on_flags): New function.
6941b508
CM
19558 (mips_get_compress_off_flags): New function.
19559 (mips_get_compress_mode): New function.
19560 (mips_get_compress_on_name): New function.
19561 (mips_get_compress_off_name): New function.
19562 (mips_insert_attributes): Support multiple compression types.
19563 (mips_merge_decl_attributes): Likewise.
19564 (umips_12bit_offset_address_p): New function.
19565 (mips_start_function_definition): Emit .set micromips directive.
19566 (mips_call_may_need_jalx_p): New function.
19567 (mips_function_ok_for_sibcall): Add microMIPS support.
19568 (mips_print_operand_punctuation): Support short delay slots and
19569 compact jumps.
19570 (umips_swm_mask, umips_swm_encoding): New.
19571 (umips_build_save_restore): New function.
19572 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
19573 (was_mips16_p): Remove.
19574 (old_compression_mode): New.
19575 (mips_set_compression_mode): New function.
19576 (mips_set_current_function): Add microMIPS support.
19577 (mips_option_override): Likewise.
19578 (umips_save_restore_pattern_p): New function.
19579 (umips_output_save_restore): New function.
19580 (umips_load_store_pair_p_1): New function.
19581 (umips_load_store_pair_p): New function.
19582 (umips_output_load_store_pair_1): New function.
19583 (umips_output_load_store_pair): New function.
19584 (umips_movep_target_p) New function.
19585 (mips_prepare_pch_save): Add microMIPS support.
19586 * config/mips/mips.h (TARGET_COMPRESSION): New.
19587 (TARGET_CPU_CPP_BUILTINS): Update macro
19588 to use new compression flags and to support microMIPS.
19589 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
19590 (MIPS_ARCH_FLOAT_SPEC): Likewise.
19591 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
19592 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
19593 (ASM_SPEC): Support mmicromips and mno-micromips.
19594 (M16STORE_REG_P): New macro.
19595 (MIPS_CALL): Support TARGET_MICROMIPS.
19596 (MICROMIPS_J): New macro.
19597 (mips_base_mips16): Rename this...
19598 (mips_base_compression_flags): ...to this.
19599 (UMIPS_12BIT_OFFSET_P): New macro.
19600 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
19601 (MULTILIB_DIRNAMES): Likewise.
19602
cdebbc6d
JJ
196032013-02-24 Jakub Jelinek <jakub@redhat.com>
19604
19605 PR target/52555
19606 * target-globals.c (save_target_globals): For init_reg_sets and
19607 target_reinit remporarily set this_fn_optabs to this_target_optabs.
19608
18c63565
JG
196092013-02-22 James Grennahlgh <james.greenhalgh@arm.com>
19610
19611 * config/aarch64/aarch64-simd-builtins.def: Add copyright header.
19612 * config/aarch64/t-aarch64
19613 (aarch64-builtins.o): Depend on aarch64-simd-builtins.def.
19614
2194f7a2
VM
196152013-02-22 Vladimir Makarov <vmakarov@redhat.com>
19616
19617 PR inline-asm/56148
19618 * lra-constraints.c (process_alt_operands): Reload operand
19619 conflicting with earlier clobber only if no more other conflicting
19620 operands.
19621
7d613735
JJ
196222013-02-22 Jakub Jelinek <jakub@redhat.com>
19623
19624 PR sanitizer/56393
19625 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o
19626 if not linking a shared library.
19627
ac8d93a7
SL
196282013-02-22 Seth LaForge <sethml@google.com>
19629
19630 * config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian.
19631
e0237780
GY
196322013-02-22 Greta Yorsh <Greta.Yorsh@arm.com>
19633
3fdb53c1
TB
19634 * config/arm/arm.md (split for extendsidi): Update condition.
19635 (zero_extend<mode>di2,extend<mode>di2): Add an alternative.
19636 * config/arm/iterators.md (qhs_extenddi_cstr): Likewise.
19637 (qhs_zextenddi_cstr): Likewise.
e0237780 19638
d7fde18c
JJ
196392013-02-21 Jakub Jelinek <jakub@redhat.com>
19640
be63b77d
JJ
19641 PR middle-end/56420
19642 * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to
19643 avoid signed wrapping.
19644 (expand_mult): Handle properly multiplication by
19645 ((dword_type) -1) << (BITS_PER_WORD - 1). Improve multiplication by
19646 ((dword_type) 1) << (BITS_PER_WORD - 1). Avoid undefined behavior
19647 in the compiler if coeff is HOST_WIDE_INT_MIN.
19648 (expand_divmod): Don't make ext_op1 static, change it's type to
19649 uhwi. Avoid undefined behavior in -INTVAL (op1).
19650
d7fde18c
JJ
19651 PR rtl-optimization/50339
19652 * lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt
19653 field.
19654 * lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT.
19655 (compute_costs): Call compute_splitting_shift also for ASHIFTRT
19656 into splitting_ashiftrt field.
19657 (find_decomposable_shift_zext, resolve_shift_zext): Handle also
19658 ASHIFTRT.
19659 (dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT
19660 choices.
19661
6aad4455
AH
196622013-02-20 Aldy Hernandez <aldyh@redhat.com>
19663
19664 PR middle-end/56108
19665 * trans-mem.c (execute_tm_mark): Do not expand transactions that
19666 are sure to go irrevocable.
19667
38fe784d
HPN
196682013-02-21 Hans-Peter Nilsson <hp@axis.com>
19669
19670 * doc/rtl.texi (vec_concat, vec_duplicate): Mention that
19671 scalars are valid operands.
19672
0fd44da3
MJ
196732013-02-21 Martin Jambor <mjambor@suse.cz>
19674
19675 PR tree-optimization/56310
19676 * ipa-cp.c (agg_replacements_to_vector): New parameter index, copy
19677 only matching indices and non-negative final offsets.
19678 (intersect_aggregates_with_edge): Pass src_idx to
19679 agg_replacements_to_vector. Pass src_idx insstead of index to
19680 intersect_with_agg_replacements.
19681
7a92038b
MJ
196822013-02-21 Martin Jambor <mjambor@suse.cz>
19683
19684 * ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold
19685 instead of hard-wired defaults.
19686
c0da9c37
MR
196872013-02-21 Maciej W. Rozycki <macro@codesourcery.com>
19688
19689 * doc/invoke.texi (MIPS Options): Update documentation of the
19690 floating-point multiply-accumulate instruction restrictions.
19691
d247ea0c 196922013-02-21 Kostya Serebryany <kcc@google.com>
7df59255
KS
19693
19694 * config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as
19695 asan_shadow_offset on x86_64 linux.
19696
22deefcb
RB
196972013-02-21 Richard Biener <rguenther@suse.de>
19698
19699 PR tree-optimization/56415
19700 Revert
19701 2013-02-11 Richard Biener <rguenther@suse.de>
19702
19703 PR tree-optimization/56273
19704 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
19705 first VRP run.
19706
7bcc6e75
JJ
197072013-02-21 Jakub Jelinek <jakub@redhat.com>
19708
a0ad148f
JJ
19709 PR bootstrap/56258
19710 * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
19711 instead of @itemx.
19712
7bcc6e75
JJ
19713 PR inline-asm/56405
19714 * expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
19715 use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.
19716
a0a7b611
JH
197172013-02-20 Jan Hubicka <jh@suse.cz>
19718
19719 PR tree-optimization/56265
88b97037
UB
19720 * ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph
19721 when target is referenced for first time.
a0a7b611 19722
c0e50f72
RB
197232013-02-20 Richard Biener <rguenther@suse.de>
19724
19725 * tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
19726 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
19727 * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
19728 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
19729 not return anything.
19730 (rename_ssa_copies): Do not remove unused locals.
19731 * tree-ssa-ccp.c (do_ssa_ccp): Likewise.
88b97037 19732 * tree-ssanames.c (pass_release_ssa_names): Remove unused locals first.
c0e50f72
RB
19733 * passes.c (execute_function_todo): Do not schedule unused locals
19734 removal if cleanup_tree_cfg did something.
19735 * tree-ssa-live.c (remove_unused_locals): Dump statistics
19736 about the number of removed locals.
19737
a52ca739
RB
197382013-02-20 Richard Biener <rguenther@suse.de>
19739
19740 PR tree-optimization/56398
88b97037 19741 * tree-vect-loop-manip.c (adjust_debug_stmts): Skip SSA default defs.
a52ca739 19742
ec9c9d1b
MJ
197432013-02-20 Martin Jambor <mjambor@suse.cz>
19744
19745 PR tree-optimization/55334
19746 * ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
19747 restricted pointers to arrays.
19748
e91c8ed6 197492013-02-20 Richard Biener <rguenther@suse.de>
88b97037 19750 Jakub Jelinek <jakub@redhat.com>
e91c8ed6
RB
19751
19752 PR tree-optimization/56396
19753 * tree-ssa-ccp.c (n_const_val): New static variable.
19754 (get_value): Return NULL for SSA names we don't have a lattice
19755 entry for.
19756 (ccp_initialize): Initialize n_const_val.
19757 * tree-ssa-copy.c (n_copy_of): New static variable.
19758 (init_copy_prop): Initialize n_copy_of.
19759 (get_value): Return NULL_TREE for SSA names we don't have a
19760 lattice entry for.
19761
3d916479
MJ
197622013-02-20 Martin Jambor <mjambor@suse.cz>
19763
19764 * ipa-cp.c (initialize_node_lattices): Fix dumping condition.
19765
71a86758
RB
197662013-02-20 Richard Biener <rguenther@suse.de>
19767
19768 * genpreds.c (write_lookup_constraint): Do not compare first
19769 letter of the constraint again.
19770
79836a12
RB
197712013-02-20 Richard Biener <rguenther@suse.de>
19772
19773 * tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits
19774 and ceil_log2.
19775 (get_use_iv_cost): Terminate hashtable walk when coming across
19776 an empty entry.
19777
bbe4fb2c
IZ
197782013-02-20 Igor Zamyatin <igor.zamyatin@intel.com>
19779
19780 * config/i386/i386.c (initial_ix86_tune_features): Turn on fp
19781 reassociation for avx2 targets.
19782
a72d8780 197832012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
79836a12 19784
c77f83d5
EI
19785 * config/microblaze/microblaze.c: microblaze_has_clz = 0
19786 Add version check for v8.10.a to enable microblaze_has_clz
88b97037 19787 * config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined
c77f83d5
EI
19788 version and TARGET_PATTERN_COMPARE check
19789 * config/microblaze/microblaze.md: New clzsi2 instruction
3fdb53c1 19790
a72d8780 197912012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
959434e6 19792
a72d8780 19793 * config/microblaze/microblaze.md (call_value_intern): Check symbol is
959434e6
EI
19794 function before branching.
19795
242387fa
AB
197962012-02-19 Andrey Belevantsev <abel@ispras.ru>
19797
19798 * sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set
19799 DUMP_INSN_RTX_UID.
19800 (dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim.
19801
b4979ab9
AB
198022012-02-19 Andrey Belevantsev <abel@ispras.ru>
19803
19804 PR middle-end/55889
b4979ab9
AB
19805 * sel-sched.c: Include ira.h.
19806 (implicit_clobber_conflict_p): New function.
19807 (moveup_expr): Use it.
88b97037 19808 * Makefile.in (sel-sched.o): Depend on ira.h.
b4979ab9 19809
24d63016
RB
198102013-02-19 Richard Biener <rguenther@suse.de>
19811
19812 PR tree-optimization/56384
19813 * tree-ssa-sccvn.h (struct vn_phi_s): Add type member.
19814 (vn_hash_type): Split out from ...
19815 (vn_hash_constant_with_type): ... here.
19816 * tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type.
19817 (vn_phi_eq): Compare types from vn_phi_s structure.
19818 (vn_phi_lookup): Populate vn_phi_s type.
19819 (vn_phi_insert): Likewise.
19820
a475fd3d
JJ
198212013-02-19 Jakub Jelinek <jakub@redhat.com>
19822
47cc28f5
JJ
19823 PR tree-optimization/56350
19824 * tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
19825 if haven't found reduction or nested cycle operand, rather than
19826 asserting we must find it.
19827
a475fd3d
JJ
19828 PR tree-optimization/56381
19829 * tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
19830 to fold_build3.
19831
198322013-02-18 Aldy Hernandez <aldyh@redhat.com>
135204dd
AH
19833 Jakub Jelinek <jakub@redhat.com>
19834
19835 PR target/52555
19836 * genopinit.c (raw_optab_handler): Use this_fn_optabs.
19837 (swap_optab_enable): Same.
19838 (init_all_optabs): Use argument instead of global.
88b97037 19839 * tree.h (struct tree_optimization_option): New field target_optabs.
135204dd
AH
19840 * expr.h (init_all_optabs): Add argument to prototype.
19841 (TREE_OPTIMIZATION_OPTABS): New.
19842 (save_optabs_if_changed): Protoize.
19843 * optabs.h: Declare this_fn_optabs.
19844 * optabs.c (save_optabs_if_changed): New.
19845 Declare this_fn_optabs.
19846 (init_optabs): Add argument to init_all_optabs() call.
19847 * function.c (invoke_set_current_function_hook): Handle per
19848 function optabs.
19849 * function.h (struct function): New field optabs.
19850 * config/mips/mips.c (mips_set_mips16_mode): Handle when
19851 optimization_current_node has changed.
19852 * target-globals.h (save_target_globals_default_opts): Protoize.
19853 * target-globals.c (save_target_globals_default_opts): New.
19854
3f587ca3
JDA
198552013-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19856
19857 PR target/56347
19858 * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
19859 registers %fr12 and %fr12R as call used.
ceaca33e
JDA
19860
19861 PR target/56214
19862 * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
88b97037
UB
19863 and HImode, require all displacements to be an integer multiple of
19864 their mode size.
ceaca33e
JDA
19865 * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses,
19866 only allow QImode and HImode when reload is in progress and strict is
19867 true. Likewise for symbolic addresses. Use base14_operand to check
19868 displacements in REG+BASE addresses.
19869
fe0b4796
RB
198702013-02-18 Richard Biener <rguenther@suse.de>
19871
19872 PR tree-optimization/56366
19873 * tree-vect-loop.c (get_initial_def_for_induction): Properly
19874 handle sign-conversion of outer-loop initial induction value.
19875
6aaf596b
RB
198762013-02-18 Richard Biener <rguenther@suse.de>
19877
73db8ff1 19878 PR middle-end/56349
6aaf596b
RB
19879 * cfghooks.c (merge_blocks): If we merge a latch into another
19880 block adjust references to it.
19881 * cfgloop.c (flow_loops_find): Reset latch before recomputing it.
19882 (verify_loop_structure): Verify that a recorded latch is in fact
19883 a latch.
19884
5e97dfb6
RB
198852013-02-18 Richard Biener <rguenther@suse.de>
19886
19887 PR tree-optimization/56321
19888 * tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
19889 order SSA name release and virtual operand unlinking.
19890
825527e8
EI
198912013-02-17 Edgar E. Iglesias <edgar.iglesias@gmail.com>
19892
19893 * config/microblaze/microblaze.md (save_stack_block): Define.
19894 (restore_stack_block): Likewise.
19895
debd11d9
EI
198962013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
19897
19898 * config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1.
19899 * config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1.
19900 * config/microblaze/microblaze.c (microblaze_option_override):
19901 Bail out early for PIC modes when target does not support PIC.
19902
8ec77be0
EI
199032013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
19904
88b97037 19905 * config/microblaze/microblaze.c (microblaze_asm_trampoline_template):
8ec77be0
EI
19906 Replace with a microblaze version.
19907 (microblaze_trampoline_init): Adapt for microblaze.
a752b80f 19908 * config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for
8ec77be0
EI
19909 microblaze.
19910
b41288b3
JJ
199112013-02-16 Jakub Jelinek <jakub@redhat.com>
19912 Dodji Seketeli <dodji@redhat.com>
19913
19914 PR asan/56330
88b97037 19915 * asan.c (get_mem_refs_of_builtin_call): White space and style cleanup.
b41288b3
JJ
19916 (instrument_mem_region_access): Do not forget to always put
19917 instrumentation of the of 'base' and 'base + len' in a "if (len !=
19918 0) statement, even for cases where either 'base' or 'base + len'
19919 are not instrumented -- because they have been previously
19920 instrumented. Simplify the logic by putting all the statements
19921 instrument 'base + len' inside a sequence, and then insert that
19922 sequence right before the current insertion point. Then, to
19923 instrument 'base + len', just get an iterator on that statement.
19924 And do not forget to update the pointer to iterator the function
19925 received as argument.
19926
47918951
VM
199272013-02-15 Vladimir Makarov <vmakarov@redhat.com>
19928
19929 PR rtl-optimization/56348
19930 * lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos.
19931
3fb7c699
SB
199322013-02-15 Steven Bosscher <steven@gcc.gnu.org>
19933
19934 * graph.c (start_graph_dump): Print dumpfile base as digraph label.
19935 (clean_graph_dump_file): Pass base to start_graph_dump.
19936
576fe41a
RH
199372013-02-14 Richard Henderson <rth@redhat.com>
19938
19939 PR target/55941
19940 * lower-subreg.c (simple_move): Check dest mode instead of src mode.
19941
bb3accfa
SB
199422013-02-14 Steven Bosscher <steven@gcc.gnu.org>
19943
19944 * collect2-aix.h: Define F_LOADONLY.
19945
03143140
RB
199462013-02-14 Richard Biener <rguenther@suse.de>
19947
19948 PR lto/50494
19949 * varasm.c (output_constant_def_1): Get the decl representing
19950 the constant as argument.
19951 (output_constant_def): Wrap output_constant_def_1.
19952 (make_decl_rtl): Use output_constant_def_1 with the decl
19953 representing the constant.
19954 (build_constant_desc): Optionally re-use a decl already
19955 representing the constant.
19956 (tree_output_constant_def): Adjust.
19957
8fb06726
DS
199582013-02-14 Dodji Seketeli <dodji@redhat.com>
19959
19960 Fix an asan crash
19961 * asan.c (instrument_builtin_call): Really put the length of the
19962 second source argument into src1_len.
19963
c4bfe8bf
JJ
199642013-02-13 Jakub Jelinek <jakub@redhat.com>
19965
19966 * asan.c (create_cond_insert_point): Add create_then_fallthru_edge
19967 argument. If it is false, don't create edge from then_bb to
19968 fallthru_bb.
19969 (insert_if_then_before_iter): Pass true to it.
19970 (build_check_stmt): Pass false to it.
19971 (transform_statements): Flush hash table only on extended basic
19972 block boundaries, rather than at the beginning of every bb.
19973 Don't flush hash table on nonfreeing_call_p calls.
19974 * tree-flow.h (nonfreeing_call_p): New prototype.
19975 * tree-ssa-phiopt.c (nonfreeing_call_p): No longer static.
19976
7afe2801
DM
199772013-02-13 David S. Miller <davem@davemloft.net>
19978
19979 * expmed.c (expand_shift_1): Only strip scalar integer subregs.
19980
70cc3288
VM
199812013-02-13 Vladimir Makarov <vmakarov@redhat.com>
19982
19983 PR target/56184
19984 * ira.c (max_regno_before_ira): Move from ...
19985 (ira): ... here.
19986 (fix_reg_equiv_init): Use max_regno_before_ira instead of
19987 vec_safe_length.
19988
6422242b
JJ
199892013-02-13 Jakub Jelinek <jakub@redhat.com>
19990
19991 * config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.
19992
976a81ee
RB
199932013-02-13 Richard Biener <rguenther@suse.de>
19994
19995 PR lto/56295
19996 * gimple-streamer-out.c (output_gimple_stmt): Undo wrapping
19997 globals in MEM_REFs.
19998
c1874a87
RB
199992013-02-13 Richard Biener <rguenther@suse.de>
20000
20001 * loop-init.c (loop_optimizer_init): Clear loop state when
20002 re-initializing preserved loops.
20003 * loop-unswitch.c (unswitch_single_loop): Return whether
20004 we unswitched the loop. Do not verify loop state here.
88b97037 20005 (unswitch_loops): When we unswitched a loop discover new loops.
c1874a87 20006
b4ab7d34
KS
200072013-02-13 Kostya Serebryany <kcc@google.com>
20008
88b97037
UB
20009 * config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset
20010 on x86_64 linux.
b4ab7d34
KS
20011 * sanitizer.def: Rename __asan_init to __asan_init_v1.
20012
bdcbe80c
DS
200132013-02-12 Dodji Seketeli <dodji@redhat.com>
20014
20015 Avoid instrumenting duplicated memory access in the same basic block
20016 * Makefile.in (asan.o): Add new dependency on hash-table.h
20017 * asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types.
20018 (asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table)
20019 (has_stmt_been_instrumented_p, empty_mem_ref_hash_table)
20020 (free_mem_ref_resources, has_mem_ref_been_instrumented)
20021 (has_stmt_been_instrumented_p, update_mem_ref_hash_table)
20022 (get_mem_ref_of_assignment): New functions.
20023 (get_mem_refs_of_builtin_call): Extract from
20024 instrument_builtin_call and tweak a little bit to make it fit with
20025 the new signature.
20026 (instrument_builtin_call): Use the new
20027 get_mem_refs_of_builtin_call. Use gimple_call_builtin_p instead
20028 of is_gimple_builtin_call.
20029 (instrument_derefs, instrument_mem_region_access): Insert the
20030 instrumented memory reference into the hash table.
20031 (maybe_instrument_assignment): Renamed instrument_assignment into
20032 this, and change it to advance the iterator when instrumentation
20033 actually happened and return true in that case. This makes it
20034 homogeneous with maybe_instrument_assignment, and thus give a
20035 chance to callers to be more 'regular'.
20036 (transform_statements): Clear the memory reference hash table
20037 whenever we enter a new BB, when we cross a function call, or when
20038 we are done transforming statements. Use
20039 maybe_instrument_assignment instead of instrumentation. No more
20040 need to special case maybe_instrument_assignment and advance the
20041 iterator after calling it; it's now handled just like
20042 maybe_instrument_call. Update comment.
20043
4861a1f7
RB
200442013-02-13 Richard Biener <rguenther@suse.de>
20045
20046 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
20047 Fix loop discovery code.
20048
1c86bd80
VM
200492013-02-12 Vladimir Makarov <vmakarov@redhat.com>
20050
20051 PR inline-asm/56148
20052 * lra-constraints.c (process_alt_operands): Match early clobber
70cc3288 20053 operand with itself. Check conflicts with earlyclobber only if
1c86bd80
VM
20054 the operand is not reloaded. Prefer to reload conflicting operand
20055 if earlyclobber and matching operands are the same.
20056
7cbda518
RB
200572013-02-12 Richard Biener <rguenther@suse.de>
20058
20059 PR lto/56297
20060 * lto-streamer-out.c (write_symbol): Do not output symbols
20061 for hard register variables.
20062
e68a4ef6
GJL
200632013-02-12 Georg-Johann Lay <avr@gjlay.de>
20064
20065 PR target/54222
20066 * config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
20067 (umulsidi3_insn, mulsidi3_insn): New insns.
20068
a72d8780 200692013-02-12 Christophe Lyon <christophe.lyon@linaro.org>
2597da22
CL
20070
20071 * config/arm/arm-protos.h (struct cpu_vec_costs): New struct type.
20072 (struct tune_params): Add vec_costs field.
20073 * config/arm/arm.c (arm_builtin_vectorization_cost)
20074 (arm_add_stmt_cost): New functions.
20075 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST)
20076 (TARGET_VECTORIZE_ADD_STMT_COST): Define.
20077 (arm_default_vec_cost): New struct of type cpu_vec_costs.
20078 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
20079 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune)
20080 (arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune)
20081 (arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field.
20082
43320568
RB
200832013-02-12 Richard Biener <rguenther@suse.de>
20084
20085 PR lto/56295
20086 * gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off
20087 decls again if possible.
20088
a011aa39
RB
200892013-02-12 Richard Biener <rguenther@suse.de>
20090
20091 PR middle-end/56288
20092 * tree-ssa.c (verify_ssa_name): Fix check, move
20093 SSA_NAME_IN_FREE_LIST check up.
20094
6da26889
JJ
200952013-02-12 Jakub Jelinek <jakub@redhat.com>
20096 Steven Bosscher <steven@gcc.gnu.org>
20097
20098 PR rtl-optimization/56151
20099 * optabs.c (add_equal_note): Don't return 0 if target is a MEM,
20100 equal to op0 or op1, and last_insn pattern is CODE operation
20101 with MEM dest and one of the operands matches that MEM.
20102
f80e0faf
ST
201032013-02-11 Sriraman Tallam <tmsriramgoogle.com>
20104
20105 * doc/extend.texi: Document Function Multiversioning and "default"
20106 parameter string to target attribute.
20107 * config/i386/i386.c (get_builtin_code_for_version): Return 0 if
20108 target attribute parameter is "default".
20109 (ix86_compare_version_priority): Remove checks for target attribute.
20110 (ix86_mangle_function_version_assembler_name): Change error to sorry.
20111 Remove check for target attribute equal to NULL. Add assert.
20112 (ix86_generate_version_dispatcher_body): Change error to sorry.
20113
6c59ffd1
IS
201142013-02-11 Iain Sandoe <iain@codesourcery.com>
20115 Jack Howarth <howarth@bromo.med.uc.edu>
20116 Patrick Marlier <patrick.marlier@gmail.com>
20117
20118 PR libitm/55693
20119 * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
20120 define ENDFILE_SPEC as TM_DESTRUCTOR.
20121 * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.
20122
a72d8780 201232013-02-11 Alexander Potapenko <glider@google.com>
6a52ccb3
AP
20124 Jack Howarth <howarth@bromo.med.uc.edu>
20125 Jakub Jelinek <jakub@redhat.com>
20126
20127 PR sanitizer/55617
20128 * config/darwin.c (cdtor_record): Rename ctor_record.
20129 (sort_cdtor_records): Rename sort_ctor_records.
20130 (finalize_dtors): New routine to sort destructors by
20131 priority before use in assemble_integer.
20132 (machopic_asm_out_destructor): Use finalize_dtors if needed.
20133
b63fe007
UB
201342013-02-11 Uros Bizjak <ubizjak@gmail.com>
20135
20136 PR rtl-optimization/56275
20137 * simplify-rtx.c (avoid_constant_pool_reference): Check that
20138 offset is non-negative and less than cmode size before
20139 calling simplify_subreg.
20140
8e89b5b5
RB
201412013-02-11 Richard Biener <rguenther@suse.de>
20142
20143 PR tree-optimization/56264
20144 * cfgloop.h (fix_loop_structure): Adjust prototype.
20145 * loop-init.c (fix_loop_structure): Return the number of
20146 newly discovered loops.
20147 * tree-cfgcleanup.c (repair_loop_structures): When new loops
20148 are discovered, do a full loop-closed SSA rewrite.
20149
b4a4b56d
RB
201502013-02-11 Richard Biener <rguenther@suse.de>
20151
20152 PR tree-optimization/56273
20153 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
20154 first VRP run.
20155 (check_array_ref): Fix missing newline in dumps.
20156 (search_for_addr_array): Likewise.
20157
0c885229
DE
201582013-02-09 David Edelsohn <dje.gcc@gmail.com>
20159
20160 * config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine.
20161
59ac9a55
JJ
201622013-02-09 Jakub Jelinek <jakub@redhat.com>
20163
20164 PR target/56256
20165 * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
20166
25bb0bb5
VM
201672013-02-08 Vladimir Makarov <vmakarov@redhat.com>
20168
20169 PR rtl-optimization/56246
0c885229 20170 * lra-constraints.c (simplify_operand_subreg): Try to reuse
25bb0bb5
VM
20171 reload pseudo.
20172 * lra.c (lra): Clear lra_optional_reload_pseudos only when all
20173 constraints are satisfied.
20174
a698cc03
JL
201752013-02-08 Jeff Law <law@redhat.com>
20176
20177 PR debug/53948
20178 * emit-rtl.c (reg_is_parm_p): New function.
20179 * regs.h (reg_is_parm_p): New prototype.
20180 * ira-conflicts.c (ira_build_conflicts): Allow parameters in
20181 callee-clobbered registers.
20182
e1122ddd
MM
201832013-02-08 Michael Meissner <meissner@linux.vnet.ibm.com>
20184
20185 PR target/56043
20186 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
20187 If there is no implicit builtin declaration, just return NULL.
20188
19c5f6e6
UB
201892013-02-08 Uros Bizjak <ubizjak@gmail.com>
20190
20191 * config/i386/sse.md (FMAMODEM): New mode iterator.
20192 (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
20193 mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
20194
2480f2ca 201952013-02-08 Uros Bizjak <ubizjak@gmail.com>
76ef61fb 20196
2480f2ca
UB
20197 * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
20198 when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
20199 * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.
20200
202012013-02-08 Edgar E. Iglesias <edgar.iglesias@gmail.com>
20202
20203 * config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT.
20204 (microblaze*-*-elf): Likewise.
20205 * config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to
20206 LINK_SPEC.
20207 * config/microblaze/microblaze-c.c: Add builtin defines for
20208 _LITTLE_ENDIAN and _BIG_ENDIAN.
20209 * config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and
20210 add to TARGET_DEFAULT flags.
76ef61fb 20211 Expand ASM_SPEC and LINK_SPEC.
2480f2ca
UB
20212 Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
20213 * config/microblaze/microblaze.md: Update extendsidi2 and
20214 movdi_internal instructions to use low-order / high-order reg
20215 print_operands.
20216 * config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian
20217 options and inversemask / mask of LITTLE_ENDIAN.
20218 * config/microblaze/t-microblaze: Expand multilib options to
20219 include mlittle-endian (le) and update exceptions patterns.
20220
600a5961
JJ
202212013-02-08 Jakub Jelinek <jakub@redhat.com>
20222
5df81313
JJ
20223 PR rtl-optimization/56195
20224 * lra-constraints.c (get_reload_reg): Don't reuse regs
20225 if they have smaller mode than requested, if they have
20226 wider mode than requested, try to return a SUBREG.
20227
600a5961
JJ
20228 PR tree-optimization/56250
20229 * fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize
20230 if type is unsigned and code isn't MULT_EXPR.
20231
ff544649
GJL
202322013-02-08 Georg-Johann Lay <avr@gjlay.de>
20233
20234 PR tree-optimization/56064
20235 * fixed-value.c (fixed_from_double_int): Sign/zero extend payload
20236 bits according to mode.
20237 * fixed-value.h (fixed_from_double_int)
20238 (const_fixed_from_double_int): Adjust comments.
20239
e45cde98
RB
202402013-02-08 Richard Biener <rguenther@suse.de>
20241
20242 PR lto/56231
20243 * lto-streamer.h (struct data_in): Remove current_file, current_line
20244 and current_col members.
20245 * lto-streamer-out.c (lto_output_location): Stream changed bits
20246 en-block for efficiency.
20247 * lto-streamer-in.c (clear_line_info): Remove.
20248 (lto_input_location): Cache current file, line and column
20249 globally via local statics. Read changed bits en-block.
20250 (input_function): Do not call clear_line_info.
20251 (lto_read_body): Likewise.
20252 (lto_input_toplevel_asms): Likewise.
20253
c1ca73d8
MM
202542013-02-08 Michael Matz <matz@suse.de>
20255
20256 PR tree-optimization/52448
20257 * tree-ssa-phiopt.c (struct name_to_bb): Add phase member.
20258 (nt_call_phase): New static.
20259 (add_or_mark_expr): Only mark accesses with newer phase than any
20260 call seen.
20261 (nonfreeing_call_p): New.
20262 (nt_init_block): Update nt_call_phase, mark blocks as visited.
20263 (nt_fini_block): Keep blocks marked as visited.
20264 (get_non_trapping): Initialize nt_call_phase, and reset aux pointer.
20265
57548aa2
RB
202662013-02-08 Richard Biener <rguenther@suse.de>
20267
20268 * ira.c (ira): Free broken dominator information.
20269
8e10366f
UB
202702013-02-08 Uros Bizjak <ubizjak@gmail.com>
20271
20272 * config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro.
20273
f64fb0fa
MP
202742013-02-08 Marek Polacek <polacek@redhat.com>
20275
8e10366f 20276 * cfgloop.c (verify_loop_structure): Add more checking of headers.
f64fb0fa 20277
0375167b
RB
202782013-02-08 Richard Biener <rguenther@suse.de>
20279
20280 PR middle-end/56181
20281 * cfgloop.h (flow_loops_find): Adjust.
20282 (bb_loop_header_p): Declare.
20283 * cfgloop.c (bb_loop_header_p): New function split out from ...
20284 (flow_loops_find): ... here. Adjust function signature,
20285 support incremental loop structure update.
20286 (verify_loop_structure): Cleanup. Verify a loop is a loop.
20287 * cfgloopmanip.c (fix_loop_structure): Move ...
20288 * loop-init.c (fix_loop_structure): ... here.
20289 (apply_loop_flags): Split out from ...
20290 (loop_optimizer_init): ... here.
20291 (fix_loop_structure): Use apply_loop_flags. Use flow_loops_find
20292 in incremental mode, only remove dead loops here.
20293
85d768f3
GJL
202942013-02-08 Georg-Johann Lay <avr@gjlay.de>
20295
20296 PR target/54222
20297 * config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
20298 * config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
20299 (round<mode>3, round<mode>3_const): New expanders for fixed-mode.
20300 (*round<mode>3.libgcc): New insns for fixed-modes.
20301 * config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
20302 (ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
20303 (ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
20304 * config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
20305 implementations. Define to __builtin_avr_absFX,
20306 __builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
20307 (roundFX, countlsFX): Define to __builtin_avr_roundFX,
20308 __builtin_avr_countlsFX, respectively.
20309 * config/avr/avr-c.c (target.h): Include it.
20310 (enum avr_builtin_id): New enum.
20311 (avr_resolve_overloaded_builtin): New static function.
20312 (avr_register_target_pragmas): Use it to set
20313 targetm.resolve_overloaded_builtin.
20314 * config/avr/avr.c (avr_init_builtins): Supply myriads of local
20315 tree nodes used by DEF_BUILTIN.
20316 (avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
20317 (avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
20318 <AVR_BUILTIN_xxBITS>: Same.
20319
661bc682
RB
203202013-02-08 Richard Biener <rguenther@suse.de>
20321
20322 * cfgloop.c (verify_loop_structure): Properly handle
20323 a loop exiting to another loop header.
20324 * ira-int.h (ira_loops): Remove.
20325 * ira.c (ira_loops): Remove.
20326 (ira): Use loop_optimizer_init and loop_optimizer_finalize.
20327 (do_reload): Use loop_optimizer_finalize.
20328 * ira-build.c (create_loop_tree_nodes): Use get_loops and
20329 number_of_loops to access the loop tree.
20330 (more_one_region_p): Likewise.
20331 (finish_loop_tree_nodes): Likewise.
20332 (rebuild_regno_allocno_maps): Likewise.
20333 (mark_loops_for_removal): Likewise.
20334 (mark_all_loops_for_removal): Likewise.
20335 (remove_unnecessary_regions): Likewise.
20336 (ira_build): Likewise.
20337 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
20338
0d5049b2
RB
203392013-02-08 Richard Biener <rguenther@suse.de>
20340
20341 * Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency.
20342 * ipa-pure-const.c (analyze_function): Avoid calling
20343 mark_irreducible_loops twice.
8e10366f 20344 * tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup.
0d5049b2 20345
499f32e8
DM
203462013-02-07 David S. Miller <davem@davemloft.net>
20347
20348 * dwarf2out.c (based_loc_descr): Perform leaf register remapping
20349 on 'reg'.
20350 * var-tracking.c (vt_add_function_parameter): Test the presence of
20351 HAVE_window_save properly and do not remap argument registers when
20352 we have a leaf function.
20353
6edc3e32
UB
203542013-02-07 Uros Bizjak <ubizjak@gmail.com>
20355
20356 PR bootstrap/56227
20357 * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
20358 instead of "ll".
20359 * config/i386/i386.c (ix86_print_operand): Ditto.
20360
5306401f
VM
203612013-02-07 Vladimir Makarov <vmakarov@redhat.com>
20362
6edc3e32 20363 * lra-constraints.c (process_alt_operands): Fix recently added comment.
5306401f 20364
027ece11
VM
203652013-02-07 Vladimir Makarov <vmakarov@redhat.com>
20366
20367 PR rtl-optimization/56225
20368 * lra-constraints.c (process_alt_operands): Check that reload hard
20369 reg can hold value for strict_low_part.
20370
f980dfdb
JJ
203712013-02-07 Jakub Jelinek <jakub@redhat.com>
20372
20373 PR debug/56154
20374 * dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to
20375 dwarf2out_end_function.
20376 (in_first_function_p, maybe_at_text_label_p,
20377 first_loclabel_num_not_at_text_label): New variables.
20378 (dwarf2out_var_location): In the first function find out
6edc3e32 20379 lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0.
f980dfdb
JJ
20380 (find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New
20381 functions.
20382
73dd3123
EB
203832013-02-07 Eric Botcazou <ebotcazou@adacore.com>
20384
20385 PR rtl-optimization/56178
20386 * cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a
20387 SUBREG of a register. Tidy up related block of code.
20388 * fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL
20389 note if the source is a register or a SUBREG of a register.
20390
e3936f47
JJ
203912013-02-07 Jakub Jelinek <jakub@redhat.com>
20392
20393 PR target/56228
20394 * config/rs6000/rs6000.md (ptrm): New mode attr.
20395 (call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11,
20396 call_value_indirect_aix<pttrsize>,
20397 call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of
20398 m in constraints.
20399
d96d674b
MH
204002013-02-07 Michael Haubenwallner <michael.haubenwallner@salomon.at>
20401
20402 * collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable
20403 if -bnortl. Convert to strcmp and strncmp.
20404
921f2dee
AM
204052013-02-07 Alan Modra <amodra@gmail.com>
20406
20407 PR target/54009
20408 * config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM
20409 addresses won't wrap when offsetting.
20410 (rs6000_secondary_reload): Provide secondary reloads needed for
20411 wrapping LO_SUM addresses.
20412
d09c7dba
TS
204132013-02-06 Thomas Schwinge <thomas@codesourcery.com>
20414
20415 * config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define
20416 MACH, just __MACH__.
20417
a44bbd48
RB
204182013-02-06 Richard Biener <rguenther@suse.de>
20419
20420 * tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP
20421 instead of calling fix_loop_structure.
20422
6d840d99
JJ
204232013-02-06 Jakub Jelinek <jakub@redhat.com>
20424
20425 PR middle-end/56217
20426 * omp-low.c (use_pointer_for_field): Return false if
20427 lower_send_shared_vars doesn't generate any copy-out code.
20428
0f33baa9
TV
204292013-02-06 Tom de Vries <tom@codesourcery.com>
20430
20431 PR rtl-optimization/56131
20432 * cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN
20433 to get the bb of a NOTE_INSN_BASIC_BLOCK. Handle the case that the bb
20434 of the label is NULL. Add comment.
20435
11f1e3ab
JJ
204362013-02-05 Jakub Jelinek <jakub@redhat.com>
20437
31502f9f
JJ
20438 * tree.h (struct tree_decl_with_vis): Remove thread_local field.
20439
a74db9bd
JJ
20440 PR sanitizer/55374
20441 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define.
20442 (STATIC_LIBTSAN_LIBS): Likewise.
20443 * gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define.
20444 (LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC
20445 is defined, don't add anything else beyond that.
20446 (SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define.
20447 (LINK_COMMAND_SPEC): Use them.
20448
11f1e3ab
JJ
20449 PR tree-optimization/56205
20450 * tree-stdarg.c (check_all_va_list_escapes): Return true if
20451 there are any PHI nodes that set non-va_list_escape_vars SSA_NAME
20452 and some va_list_escape_vars SSA_NAME appears in some PHI argument.
20453
14ac6aa2
RB
204542013-02-05 Richard Biener <rguenther@suse.de>
20455
20456 PR tree-optimization/53342
20457 PR tree-optimization/53185
20458 * tree-vectorizer.h (vect_check_strided_load): Remove.
20459 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do
20460 not disallow peeling for vectorized strided loads.
20461 (vect_check_strided_load): Make static and simplify.
20462 (vect_analyze_data_refs): Adjust.
20463 * tree-vect-stmts.c (vectorizable_load): Handle peeled loops
20464 correctly when vectorizing strided loads.
20465
6f22445a
RB
204662013-02-05 Richard Biener <rguenther@suse.de>
20467
20468 * doc/install.texi: Refer to ISL, not PPL.
20469
39f9719e
JH
204702013-02-05 Jan Hubicka <jh@suse.cz>
20471
ec4224ac
JH
20472 PR tree-optimization/55789
20473 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1.
20474
204752013-02-05 Jan Hubicka <jh@suse.cz>
20476
20477 PR tree-optimization/55789
39f9719e
JH
20478 * cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove
20479 the dead call anyway.
20480
956d3b33
EB
204812013-02-05 Eric Botcazou <ebotcazou@adacore.com>
20482
20483 PR sanitizer/55374
20484 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard.
20485
204862013-02-04 Alexander Potapenko <glider@google.com>
20487 Jack Howarth <howarth@bromo.med.uc.edu>
ae526fe5
AP
20488 Jakub Jelinek <jakub@redhat.com>
20489
20490 PR sanitizer/55617
20491 * config/darwin.c (sort_ctor_records): Stabilized qsort
20492 on constructor priority by using original position.
20493 (finalize_ctors): New routine to sort constructors by
20494 priority before use in assemble_integer.
20495 (machopic_asm_out_constructor): Use finalize_ctors if needed.
20496
7ac3af38
JJ
204972013-02-04 Jakub Jelinek <jakub@redhat.com>
20498
20499 PR libstdc++/54314
20500 * config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn
20501 about visibility on artificial decls.
20502 * config/sol2.c (solaris_assemble_visibility): Likewise.
20503
152689dc
KT
205042013-02-04 Kai Tietz <ktietz@redhat.com>
20505
20506 PR target/56186
20507 * config/i386/i386.c (function_value_ms_64): Add additional valtype
20508 argument and improve checking of return-argument types for 16-byte
20509 modes.
20510 (ix86_function_value_1): Add additional valtype argument on call
20511 of function_value_64.
20512 (return_in_memory_ms_64): Sync 16-byte sized mode handling with
20513 handling infunction_value_64 function.
20514
2b5987b5
MGD
205152013-02-04 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
20516
7ac3af38 20517 * reload.c (subst_reloads): Fix DEBUG_RELOAD build issue.
2b5987b5 20518
14597080
RB
205192013-02-04 Richard Biener <rguenther@suse.de>
20520
20521 PR tree-optimization/56188
20522 * tree-ssa-structalias.c (label_visit): Consider case with
20523 initially non-empty points-to set.
20524 (perform_var_substitution): Dump node mapping and clean up.
20525
ed73881e
RG
205262013-02-04 Richard Guenther <rguenther@suse.de>
20527
20528 PR lto/56168
20529 * lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin
20530 node prevail as last resort.
20531 (lto_symtab_merge_decls): Remove guard on LTRANS here.
6edc3e32 20532 (lto_symtab_prevailing_decl): Builtins are their own prevailing decl.
ed73881e 20533
139a0707
RB
205342013-02-04 Richard Biener <rguenther@suse.de>
20535
20536 PR tree-optimization/56113
20537 * tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add):
20538 Merge into ...
20539 (equiv_class_lookup_or_add): ... this.
20540 (label_visit): Adjust and fix error in previous patch.
20541 (perform_var_substitution): Adjust.
20542
50fe8924
OE
205432013-02-03 Oleg Endo <olegendo@gcc.gnu.org>
20544
20545 * config/sh/divtab.c: Fix formatting and comments throughout the file.
20546 * config/sh/sh4-300.md: Likewise.
20547 * config/sh/sh4a.md: Likewise.
20548 * config/sh/constraints.md: Likewise.
20549 * config/sh/sh.md: Likewise.
20550 * config/sh/netbsd-elf.h: Likewise.
20551 * config/sh/predicates.md: Likewise.
20552 * config/sh/sh-protos.h: Likewise.
20553 * config/sh/ushmedia.h: Likewise.
20554 * config/sh/linux.h: Likewise.
20555 * config/sh/sh.c: Likewise.
20556 * config/sh/superh.h: Likewise.
20557 * config/sh/elf.h: Likewise.
20558 * config/sh/sh4.md: Likewise.
20559 * config/sh/sh.h: Likewise.
20560
1a04ac2b
JDA
205612013-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20562
20563 * config/pa/constraints.md: Adjust unused letters. Change "T"
20564 constraint to match_test floating_point_store_memory_operand().
20565 * config/pa/predicates.md (reg_plus_base_memory_operand): New.
20566 (base14_operand): New.
20567 (floating_point_store_memory_operand): New.
20568 (integer_store_memory_operand): Revise to use base14_operand and
20569 reg_plus_base_memory_operand.
20570 (move_dest_operand): Allow symbolic_memory_operands.
20571 (symbolic_memory_operand): Check for LO_SOM.
20572 (symbolic_operand): Change default case to break.
20573 * config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force
20574 CONST_DOUBLE values to be reloaded by putting them into memory when
20575 the destination is a floating point register.
20576 (movdf): Remove code to handle CONST_DOUBLE.
20577 (movsf): Likewise.
20578 (reload_indf_r1): New.
20579 (reload_insf_r1): New.
20580 Consistently use "Q" and "T" constraints with integer and floating
20581 point move instructions, respectively.
20582 (movdi): Remove FAIL.
20583 Change predicate for source operand unamed DImode move from
20584 general_operand to move_src_operand.
20585 (umulsidi3): Change predicate for destination operand to
20586 register_operand.
20587 Likewise for similar unamed patterns.
20588 * config/pa/pa-protos.h (pa_legitimize_reload_address): Declare.
20589 * config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis.
20590 (hppa_legitimize_address): Simplify mask calculation.
20591 (pa_emit_move_sequence): Revised handling of secondary reloads from
20592 REG+D addresses for floating point loads and stores. Directly handle
20593 loading CONST0_RTX (mode) to a floating point register.
20594 (pa_secondary_reload): Handle reloading DF and SFmode constant values
20595 to floating point registers. Don't restrict secondary reloads to
20596 floating point registers to integer modes. Revise some comments and
20597 cleanup some code.
20598 (TARGET_LEGITIMATE_ADDRESS_P): Define.
20599 (pa_legitimate_address_p): New.
20600 (pa_legitimize_reload_address): New.
20601 * config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New.
20602 (STRICT_REG_OK_FOR_BASE_P): New.
20603 (GO_IF_LEGITIMATE_ADDRESS): Delete. Update some related comments.
20604 (LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address.
20605
3bf65591
DE
206062013-02-03 David Edelsohn <dje.gcc@gmail.com>
20607 Andrew Dixie <andrewd@gentrack.com>
20608
20609 * collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
20610 flag set.
20611
c0a8a3e6
RS
206122013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
20613
20614 * expmed.c (extract_bit_field_1): Pass the full width of the
20615 structure to get_best_reg_extraction_insn.
20616
99113dff
DE
206172013-02-01 David Edelsohn <dje.gcc@gmail.com>
20618
20619 PR target/54601
20620 * configure.ac (use_cxa_atexit): Add AIX.
20621 * configure: Regenerate.
20622
20623 * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o.
20624
ddd84654
JJ
206252013-02-01 Jakub Jelinek <jakub@redhat.com>
20626
20627 PR debug/54793
20628 * final.c (need_profile_function): New variable.
20629 (final_start_function): Drop ATTRIBUTE_UNUSED from first argument.
20630 If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG
20631 is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED
20632 notes, targetm.asm_out.function_prologue doesn't emit anything,
20633 HAVE_prologue and profiler should be emitted before prologue,
20634 set need_profile_function instead of emitting it.
20635 (final_scan_insn): If need_profile_function, emit
20636 profile_function on the first NOTE_INSN_BASIC_BLOCK or
20637 NOTE_INSN_FUNCTION_BEG note.
20638
206392013-02-01 Richard Henderson <rth@redhat.com>
749af8ee
RH
20640
20641 * config/rs6000/rs6000.md (smulditi3): New.
20642 (umulditi3): New.
20643
ff2a9d88
RH
20644 * config/alpha/alpha.md (umulditi3): New.
20645
14d52b90
DE
206462013-02-01 David Edelsohn <dje.gcc@gmail.com>
20647
20648 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
20649 (ASM_OUTPUT_ALIGNED_LOCAL): New.
20650
8c7ca45c
RB
206512013-02-01 Richard Biener <rguenther@suse.de>
20652
20653 PR tree-optimization/56113
20654 * tree-ssa-structalias.c (label_visit): Reduce work for
20655 single-predecessor nodes.
20656
9f419393
EB
206572013-02-01 Eric Botcazou <ebotcazou@adacore.com>
20658
20659 * fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the
20660 range isn't testing for zero.
20661
c5f4be84
SB
206622013-01-31 Steven Bosscher <steven@gcc.gnu.org>
20663
20664 PR middle-end/56113
20665 * fwprop.c (fwprop_init): Set up loops without CFG modifications.
20666
dbdbd982
NC
206672013-01-31 Hiroyuki Ono <hiroyuki.ono.jc@renesas.com>
20668 Nick Clifton <nickc@redhat.com>
20669
20670 * config/v850/constraints.md (Q): Define as a memory constraint.
20671 * config/v850/predicates.md (label_ref_operand): New predicate.
20672 (e3v5_shift_operand): New predicate.
20673 (ior_operator): New predicate.
20674 * config/v850/t-v850: Add e3v5 multilib.
20675 * config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
20676 (v850_gen_movdi): Prototype.
20677 * config/v850/v850.c: Add support for e3v5 architecture.
20678 Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
20679 TARGET_V850E_UP.
20680 (construct_save_jarl): Add e3v5 long JARL support.
20681 (v850_adjust_insn_length): New function. Adjust length of call
20682 insns when using e3v5 instructions.
20683 (v850_gen_movdi): New function: Generate instructions to move a
20684 DImode value.
20685 * config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
20686 (CPP_SPEC): Define __v850e3v5__ as appropriate.
20687 (TARGET_USE_FPU): Enable for e3v5.
20688 (CONST_OK_FOR_W): New macro.
20689 (ADJUST_INSN_LENGTH): Define.
20690 * config/v850/v850.md (UNSPEC_LOOP): Define.
20691 (attr cpu): Add v850e3v5.
20692 Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
20693 (movdi): New pattern.
20694 (movdi_internal): New pattern.
20695 (cbranchsf4): Conditionalize on TARGET_USE_FPU.
20696 (cbranchdf4): Conditionalize on TARGET_USE_FPU.
20697 (cstoresf4): Likewise.
20698 (cstoredf4): Likewise.
20699 (insv): New pattern.
20700 (rotlso3_a): New pattern.
20701 (rotlsi3_b): New pattern
20702 (rotlsi3_v850e3v5): New pattern.
20703 (doloop_begin): New pattern.
20704 (fix_loop_counter): New pattern.
20705 (doloop_end): New pattern.
20706 (branch_normal): Add e3v5 long branch support.
20707 (branch_invert): Likewise.
20708 (branch_z_normal): Likewise.
20709 (branch_z_invert): Likewise.
20710 (branch_nz_normal): Likewise.
20711 (branch_nz_invert): Likewise.
20712 (call_internal_short): Add e3v5 register-indirect JARL support.
20713 (call_internal_long): Likewise.
20714 (call_value_internal_short): Likewise.
20715 (call_value_internal_long): Likewise.
20716 * config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
20717 (mloop): New option.
20718 * config.gcc: Add support for configuring v840e3v5 target.
6edc3e32 20719 * doc/invoke.texi: Document new v850 specific command line options.
dbdbd982 20720
73861a41
PK
207212013-01-31 Paul Koning <ni1d@arrl.net>
20722
20723 PR debug/55059
20724 PR debug/54508
20725 * dwarf2out.c (prune_unused_types_mark): Mark all of parent's
20726 children if parent is a class.
20727 (prune_unused_types_prune): Don't add DW_AT_declaration.
20728
e44978dc
RB
207292013-01-31 Richard Biener <rguenther@suse.de>
20730
20731 PR tree-optimization/56157
20732 * tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to
20733 match up operand with SLP child.
20734
90b10dec
JM
207352013-01-31 Jason Merrill <jason@redhat.com>
20736
04d2dadd 20737 PR debug/54410
90b10dec
JM
20738 * dwarf2out.c (gen_struct_or_union_type_die): Always schedule template
20739 parameters the first time.
20740 (gen_scheduled_generic_parms_dies): Check completeness here.
20741
6e616110
RB
207422013-01-31 Richard Biener <rguenther@suse.de>
20743
20744 PR middle-end/53073
20745 * common.opt (faggressive-loop-optimizations): New flag,
20746 enabled by default.
20747 * doc/invoke.texi (faggressive-loop-optimizations): Document.
20748 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard
20749 infer_loop_bounds_from_undefined by it.
20750
636f59cf
RB
207512013-01-31 Richard Biener <rguenther@suse.de>
20752
20753 PR tree-optimization/56150
20754 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not
20755 visit virtual operands.
20756 (find_uses_to_rename_bb): Likewise.
20757
207582013-01-31 Richard Biener <rguenther@suse.de>
fcfa87ac
RB
20759
20760 PR tree-optimization/56150
20761 * tree-ssa-tail-merge.c (gimple_equal_p): Properly handle
20762 mixed store non-store stmts.
20763
32887460
JJ
207642013-01-30 Jakub Jelinek <jakub@redhat.com>
20765
e60e09a0
JJ
20766 PR sanitizer/55374
20767 * gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if
20768 LIBASAN_EARLY_SPEC is defined.
20769 (LIBASAN_EARLY_SPEC): Define to empty string if not already defined.
20770 (LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address,
20771 before %o.
20772 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define.
20773
32887460
JJ
20774 PR c++/55742
20775 * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose
20776 invalid args instead of ICEing on it.
20777 (ix86_valid_target_attribute_tree): Return error_mark_node if
20778 ix86_valid_target_attribute_inner_p failed.
20779 (ix86_valid_target_attribute_p): Return false only if
20780 ix86_valid_target_attribute_tree returned error_mark_node. Allow
20781 target("default") attribute.
20782 (sorted_attr_string): Change argument from const char * to tree,
20783 merge in all target attribute arguments rather than just one.
20784 Formatting fix. Use XNEWVEC instead of xmalloc and XDELETEVEC
20785 instead of free. Avoid using strcat.
20786 (ix86_mangle_function_version_assembler_name): Mangle
20787 target("default") as if no target attribute is present. Adjust
20788 sorted_attr_string caller. Avoid leaking memory. Use XNEWVEC
20789 instead of xmalloc and XDELETEVEC instead of free.
20790 (ix86_function_versions): Don't return true if one of the decls
20791 doesn't have target attribute. If they don't and one of the decls
20792 is DECL_FUNCTION_VERSIONED, report an error. Adjust
20793 sorted_attr_string caller. Use XDELETEVEC instead of free.
20794 (ix86_supports_function_versions): Remove.
20795 (make_name): Fix up formatting.
20796 (make_dispatcher_decl): Remove resolver_name and its initialization.
20797 Avoid leaking memory.
20798 (is_function_default_version): Return true if there is
20799 target("default") attribute rather than no target attribute at all.
20800 (make_resolver_func): Avoid leaking memory.
20801 (ix86_generate_version_dispatcher_body): Likewise.
20802 (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove.
20803 * target.def (supports_function_versions): Remove.
20804 * doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove.
20805 * doc/tm.texi: Regenerated.
20806
73cca0cc
VM
208072013-01-30 Vladimir Makarov <vmakarov@redhat.com>
20808
20809 PR rtl-optimization/56144
20810 * lra-constraints.c (get_reload_reg): Don't reuse reload pseudo
20811 for values with side effects.
20812
11452e7b
RB
208132013-01-30 Richard Biener <rguenther@suse.de>
20814
20815 * sparseset.h (sparseset_bit_p): Use gcc_checking_assert.
20816 (sparseset_pop): Likewise.
20817 * cfganal.c (compute_idf): Likewise. Increase work-stack size
20818 to be able to use quick_push in the worker loop.
20819
01cb1ef5
MP
208202013-01-30 Marek Polacek <polacek@redhat.com>
20821
20822 * cfgcleanup.c (cleanup_cfg): Don't mark affected BBs.
20823
e892936e
RB
208242013-01-30 Richard Biener <rguenther@suse.de>
20825
20826 PR lto/56147
6edc3e32 20827 * lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check.
e892936e 20828
cc06c01d
GJL
208292013-01-30 Georg-Johann Lay <avr@gjlay.de>
20830
20831 PR tree-optimization/56064
20832 * fixed-value.c (fixed_from_double_int): New function.
20833 * fixed-value.h (fixed_from_double_int): New prototype.
20834 (const_fixed_from_double_int): New static inline function.
20835 * fold-const.c (native_interpret_fixed): New static function.
20836 (native_interpret_expr) <FIXED_POINT_TYPE>: Use it.
20837 (can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true.
20838 (native_encode_fixed): New static function.
20839 (native_encode_expr) <FIXED_CST>: Use it.
20840 (native_interpret_int): Move double_int worker code to...
20841 * double-int.c (double_int::from_buffer): ...this new static method.
20842 * double-int.h (double_int::from_buffer): Prototype it.
20843
d394a308
RB
208442013-01-30 Richard Biener <rguenther@suse.de>
20845
20846 * tree-ssa-structalias.c (final_solutions, final_solutions_obstack):
20847 New pointer-map and obstack.
20848 (init_alias_vars): Allocate pointer-map and obstack.
20849 (delete_points_to_sets): Free them.
20850 (find_what_var_points_to): Cache result.
20851 (find_what_p_points_to): Adjust for changed interface of
20852 find_what_var_points_to.
20853 (compute_points_to_sets): Likewise.
20854 (ipa_pta_execute): Likewise.
20855
20804d96
RO
208562013-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20857
20858 * configure.ac (HAVE_AS_SPARC_NOBITS): New test.
20859 * configure: Regenerate.
20860 * config.in: Regenerate.
20861 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit
20862 #nobits/#progbits if supported.
20863
a7ad88a2
OE
208642013-01-29 Oleg Endo <olegendo@gcc.gnu.org>
20865
20866 PR target/56121
20867 * config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a,
20868 bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a,
20869 bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition.
20870
7af79f92
GY
208712013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
20872
91bfca59
OE
20873 * config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove.
20874 (cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all.
7af79f92 20875
753bcf7b
GY
208762013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
20877
91bfca59
OE
20878 * config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL.
20879 * config/arm/cortex-a7.md (cortex_a7_call): Update required units.
753bcf7b 20880
8cbc2ea8
GY
208812013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
20882
91bfca59
OE
20883 * config/arm/arm-protos.h (arm_mac_accumulator_is_result): New
20884 declaration.
20885 * config/arm/arm.c (arm_mac_accumulator_is_result): New function.
20886 * config/arm/cortex-a7.md: New bypasses using
20887 arm_mac_accumulator_is_result.
8cbc2ea8 20888
697a3325
GY
208892013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
20890
91bfca59 20891 * config/arm/cortex-a7.md (cortex_a7_neon_mul): New reservation.
697a3325 20892 (cortex_a7_neon_mla): Likewise.
91bfca59
OE
20893 (cortex_a7_fpfmad): New reservation.
20894 (cortex_a7_fpmacs): Use ffmas and update required units.
20895 (cortex_a7_fpmuld): Update required units and latency.
20896 (cortex_a7_fpmacd): Likewise.
20897 (cortex_a7_fdivs, cortex_a7_fdivd): Likewise.
20898 (cortex_a7_neon). Likewise.
20899 (bypass) Update participating units.
697a3325 20900
29637783
GY
209012013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
20902
91bfca59
OE
20903 * config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute.
20904 * config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type
20905 from fmac to ffma.
20906 * config/arm/vfp11.md (vfp_farith): Use ffmas.
20907 (vfp_fmul): Use ffmad.
20908 * config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas.
20909 (cortex_r4_fmacd): Use ffmad.
20910 * config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas.
20911 * config/arm/cortex-a9.md (cortex_a9_fmacs): Use ffmas.
20912 (cortex_a9_fmacd): Use ffmad.
20913 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas.
20914 (cortex_a8_vfp_macd): Use ffmad.
20915 * config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas.
20916 (cortex_a5_fpmacd): Use ffmad.
20917 * config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas.
20918 (cortex_a15_vfp_macd): Use ffmad.
20919 * config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad.
29637783 20920
2ee8a2d5
JM
209212013-01-29 Jason Merrill <jason@redhat.com>
20922
20923 PR libstdc++/54314
20924 * varasm.c (default_assemble_visibility): Don't warn about
20925 visibility on artificial decls.
20926
78d087bc
RB
209272013-01-29 Richard Biener <rguenther@suse.de>
20928
20929 PR tree-optimization/56113
20930 * tree-ssa-structalias.c (equiv_class_lookup): Also return
20931 the bitmap leader.
20932 (label_visit): Free duplicate bitmaps and record the leader instead.
20933 (perform_var_substitution): Adjust.
20934
83ba4d6f
RB
209352013-01-29 Richard Biener <rguenther@suse.de>
20936
20937 PR tree-optimization/55270
20938 * tree-ssa-dom.c (eliminate_degenerate_phis): If we changed
20939 the CFG, schedule loops for fixup.
20940
66dfe13f
NC
209412013-01-29 Nick Clifton <nickc@redhat.com>
20942
20943 * config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow
20944 SP_REG.
20945
5a579c3b
LE
209462013-01-28 Leif Ekblad <leif@rdos.net>
20947
20948 * config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets.
20949 * config/i386/i386.h (TARGET_RDOS): New macro.
20950 (DEFAULT_LARGE_SECTION_THRESHOLD): New macro.
20951 * config/i386/i386.c (ix86_option_override_internal): For 64bit
20952 TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1.
20953 * config/i386/i386.opt (mlarge-data-threshold): Initialize to
20954 DEFAULT_LARGE_SECTION_THRESHOLD.
20955 * config/i386/i386.md (R14_REG, R15_REG): New constants.
20956 * config/i386/rdos.h: New file.
20957 * config/i386/rdos64.h: New file.
20958
51e44392
BS
209592013-01-28 Bernd Schmidt <bernds@codesourcery.com>
20960
20961 PR other/54814
20962 * reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
20963 TEST_HARD_REG_BIT.
20964
db1fb332
JJ
209652013-01-28 Jakub Jelinek <jakub@redhat.com>
20966
20967 PR rtl-optimization/56117
20968 * sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib
20969 call cselib_lookup_from_insn on the MEM before calling
20970 add_insn_mem_dependence.
20971
16917761
RB
209722013-01-28 Richard Biener <rguenther@suse.de>
20973
20974 * tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK
20975 to a stmt that didn't have one.
20976 (copy_phis_for_bb): Likewise for PHI arguments.
20977 (copy_debug_stmt): Likewise for debug stmts.
20978
b9fc0497
RB
209792013-01-28 Richard Biener <rguenther@suse.de>
20980
20981 PR tree-optimization/56034
6edc3e32 20982 * tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION.
b9fc0497
RB
20983 (partition_builtin_p): Adjust.
20984 (generate_code_for_partition): Handle PKIND_REDUCTION. Assert
20985 it is the last partition.
20986 (rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking
20987 up the vertex for the definition.
20988 (classify_partition): Classify whether a partition is a
20989 PKIND_REDUCTION, thus has uses outside of the loop.
20990 (ldist_gen): Inherit PKIND_REDUCTION when merging partitions.
20991 Merge all PKIND_REDUCTION partitions into the last partition.
20992 (tree_loop_distribution): Seed partitions from reductions as well.
20993
aa710d25
JJ
209942013-01-28 Jakub Jelinek <jakub@redhat.com>
20995
0bfbca58
JJ
20996 PR tree-optimization/56125
20997 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize
20998 pow(x,c) into sqrt(x) * powi(x, n/2) or
20999 1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when
21000 optimizing for size.
21001 Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or
21002 1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an
21003 integer.
21004
aa710d25
JJ
21005 PR tree-optimization/56094
21006 * gimplify.c (force_gimple_operand_1): Temporarily set input_location
21007 to UNKNOWN_LOCATION while gimplifying expr.
21008
77dc5297
UB
210092013-01-27 Uros Bizjak <ubizjak@gmail.com>
21010
21011 PR target/56114
21012 * config/i386/i386.md (*movabs<mode>_1): Add square brackets around
21013 operand 0 in movabs insn template for -masm=intel asm alternative.
21014 (*movabs<mode>_2): Ditto for operand 1.
21015
0bfbca58 210162013-01-26 David Holsgrove <david.holsgrove@xilinx.com>
fbf0cf90
DH
21017
21018 PR target/54663
21019 * config.gcc (microblaze*-linux*): Add tmake_file to allow building
21020 of microblaze-c.o
21021
0bfbca58 210222013-01-26 Edgar E. Iglesias <edgar.iglesias@gmail.com>
6f14eef2
EI
21023
21024 * config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update
21025 tm_file.
21026
0bfbca58 210272013-01-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
706b2314
N
21028
21029 * config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS):
21030 Undef to avoid warning.
21031
478f60f9
MH
210322013-01-25 Michael Haubenwallner <michael.haubenwallner@salomon.at>
21033
21034 * configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld.
21035 * configure: Regenerate.
21036
d7fa6ee2
JJ
210372013-01-25 Jakub Jelinek <jakub@redhat.com>
21038
21039 PR tree-optimization/56098
21040 * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
21041 for stmts with volatile ops.
21042 (cond_store_replacement): Don't optimize if assign has volatile ops.
21043 (cond_if_else_store_replacement_1): Don't optimize if either
21044 then_assign or else_assign have volatile ops.
21045 (hoist_adjacent_loads): Don't optimize if either def1 or def2 have
21046 volatile ops.
21047
f8fe87bd
GJL
210482013-01-25 Georg-Johann Lay <avr@gjlay.de>
21049
21050 * doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__.
21051
28398d0d
GJL
210522013-01-25 Georg-Johann Lay <avr@gjlay.de>
21053
21054 * doc/extend.texi (Example of asm with clobbered asm reg): Fix
21055 missing ':' in asm example.
21056
b7d7d917
TB
210572013-01-25 Tejas Belagod <tejas.belagod@arm.com>
21058
21059 * config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane
21060 entries into lane and laneq entries.
77dc5297
UB
21061 * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>):
21062 Remove AdvSIMD scalar modes.
b7d7d917
TB
21063 (aarch64_sq<r>dmulh_laneq<mode>): New.
21064 (aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD
21065 modes.
21066 * config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics'
21067 builtin implementations to relfect changes in RTL in aarch64-simd.md.
21068 * config/aarch64/iterators.md (VCOND): New.
21069 (VCONQ): New.
21070
556f9906
GJL
210712013-01-25 Georg-Johann Lay <avr@gjlay.de>
21072
21073 PR target/54222
21074 * config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument.
21075 Add NULL LIBNAME argument to existing definitions.
21076 (ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New.
21077 * config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument.
21078 * config/avr/avr.c (DEF_BUILTIN): Same.
21079 (avr_init_builtins): Pass down LIBNAME to add_builtin_function.
21080 (avr_expand_builtin): Expand to a vanilla call if a libgcc
21081 implementation is available (DECL_ASSEMBLER_NAME is set).
21082 (avr_fold_absfx): New static function.
21083 (avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR,
21084 AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR,
21085 AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK,
21086 AVR_BUILTIN_ABSLLK.
21087 * config/avr/stdfix.h (abshr, absr, abslr, absllr)
21088 (abshk, absk, abslk, absllk): Provide as static inline functions.
21089
1f546bbb
MP
210902013-01-25 Marek Polacek <polacek@redhat.com>
21091
21092 PR tree-optimization/56035
21093 * cfgloopmanip.c (fix_loop_structure): Remove redundant condition.
21094
7e184bd7
UB
210952012-01-24 Uros Bizjak <ubizjak@gmail.com>
21096
21097 * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative.
21098 (*movtf_internal_rex64): Add (!o,C) alternative
21099 (*movxf_internal_rex64): Ditto.
21100 (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives.
21101
f5ba49ac
SM
211022013-01-24 Shenghou Ma <minux.ma@gmail.com>
21103
21104 * doc/invoke.texi: fix typo.
21105 * doc/objc.texi: fix typo.
21106
a6343728
RS
211072013-01-24 Richard Sandiford <rdsandiford@googlemail.com>
21108
21109 * config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint
21110 for the first two alternatives.
21111
cd030c07
DN
211122013-01-24 Diego Novillo <dnovillo@google.com>
21113
77dc5297 21114 * Makefile.in (GGC): Remove. Replace all instances with ggc-page.o.
cd030c07
DN
21115 (ggc-zone.o): Remove.
21116 * configure.ac: Remove option --with-gc.
21117 * configure: Re-generate.
21118 * doc/install.texi: Remove documentation for --with-gc.
21119 * gengtype.c (write_enum_defn): Remove. Update all users.
21120 (write_Types_process_field): Remove generation of gt_e_* argument.
21121 (output_type_enum): Remove. Update all users.
21122 (write_enum_defn): Remove. Update all users.
21123 (enum alloc_zone): Remove. Update all users.
77dc5297 21124 (write_splay_tree_allocator_def): Remove generation of gt_e_* argument.
cd030c07
DN
21125 * ggc-common.c (ggc_splay_alloc): Remove first argument.
21126 Update all callers.
21127 (struct ptr_data): Remove field TYPE. Update all users.
77dc5297 21128 (gt_pch_note_object): Remove argument TYPE. Update all users.
cd030c07
DN
21129 * ggc-internal.h (ggc_pch_alloc_object): Remove last argument.
21130 Update all users.
aaf1e810 21131 * ggc-none.c (ggc_alloc_typed_stat): Remove.
cd030c07
DN
21132 (struct alloc_zone): Remove.
21133 (ggc_internal_alloc_zone_stat): Remove.
21134 (ggc_internal_cleared_alloc_zone_stat): Remove.
21135 * ggc-page.c (ggc_alloc_typed_stat): Remove.
77dc5297
UB
21136 (ggc_pch_count_object): Remove last argument. Update all users.
21137 (ggc_pch_alloc_object): Remove last argument. Update all users.
cd030c07
DN
21138 (struct alloc_zone): Remove.
21139 * ggc-zone.c: Remove.
77dc5297 21140 * ggc.h (gt_pch_note_object): Remove last argument. Update all users.
cd030c07
DN
21141 (struct alloc_zone): Remove.
21142 (ggc_alloc_typed_stat): Remove.
21143 (ggc_alloc_typed): Remove.
21144 (ggc_splay_alloc): Remove first argument.
21145 (rtl_zone): Remove. Update all users.
21146 (tree_zone): Remove. Update all users.
21147 (tree_id_zone): Remove. Update all users.
21148 (ggc_internal_zone_alloc_stat): Remove. Update all users.
77dc5297 21149 (ggc_internal_zone_cleared_alloc_stat): Remove. Update all users.
cd030c07 21150 (ggc_internal_zone_vec_alloc_stat): Remove. Update all users.
77dc5297 21151 * tree-ssanames.c: Remove references to zone allocator in comments.
cd030c07 21152
a861ffa4
GJL
211532013-01-24 Georg-Johann Lay <avr@gjlay.de>
21154
21155 * config/avr/avr.c (avr_out_fract): Make register numbers that
21156 might be outside of source operand signed.
21157
593c0ddd
UB
211582013-01-24 Uros Bizjak <ubizjak@gmail.com>
21159
21160 * config/i386/constraints.md (Yf): New constraint.
21161 * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead
21162 of f constraint to conditionaly disable x87 register preferences.
21163 (*movdf_internal): Ditto.
21164 (*movsf_internal): Ditto.
21165
e86c0101
SB
211662013-01-24 Steven Bosscher <steven@gcc.gnu.org>
21167
21168 PR inline-asm/55934
21169 * lra-assigns.c (assign_by_spills): Throw away the pattern of asms
21170 that have operands with impossible constraints.
21171 Add a FIXME for a speed-up opportunity.
21172 * lra-constraints.c (process_alt_operands): Verify that a class
21173 selected from constraints on asms is valid for the operand mode.
21174 (curr_insn_transform): Remove incorrect comment.
21175
f6fee35f
DE
211762013-01-23 David Edelsohn <dje.gcc@gmail.com>
21177
21178 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that
21179 TOC operand is a valid symbol ref in the constant pool.
21180
211812013-01-23 Edgar E. Iglesias <edgar.iglesias@gmail.com>
c7729184 21182
aaf1e810 21183 * config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS
c7729184 21184
dc62d7d1
GJL
211852013-01-23 Georg-Johann Lay <avr@gjlay.de>
21186
21187 PR target/54222
21188 * config/avr/stdfix.h: New file.
21189 * t-avr (stdfix-gcc.h): New rule to build it.
21190 (EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h.
21191
2660d12d
KS
211922013-01-23 Kostya Serebryany <kcc@google.com>
21193
77dc5297
UB
21194 * config/darwin.h: remove dependency on
21195 CoreFoundation (asan on Mac OS).
2660d12d 21196
a70418fc
JJ
211972013-01-23 Jakub Jelinek <jakub@redhat.com>
21198
21199 PR target/49069
21200 * config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand
21201 instead of cmpdi_operand for first comparison operand.
21202 Don't assert that comparison operands aren't both constants.
21203
47876a2a
JW
212042013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
21205
21206 * doc/install.texi (Downloading the Source): Update references to
21207 downloading separate components.
21208
212092013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
4ebd56a5
JW
21210
21211 * doc/extend.texi (__int128): Improve grammar.
21212
47876a2a 212132013-01-22 Uros Bizjak <ubizjak@gmail.com>
32fc5b8a
UB
21214
21215 PR target/56028
21216 * config/i386/i386.md (*movti_internal_rex64): Change (o,riF)
21217 alternative to (o,r).
21218 (*movdi_internal_rex64): Remove (!o,n) alternative.
21219 (DImode immediate->memory splitter): Remove.
21220 (DImode immediate->memory peephole2): Remove.
21221 (movtf): Enable for TARGET_64BIT || TARGET_SSE.
21222 (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r)
21223 alternative to (!o,*r).
21224 (*movtf_internal_sse): New pattern.
21225 (*movxf_internal_rex64): New pattern.
21226 (*movxf_internal): Disable for TARGET_64BIT.
21227 (*movdf_internal_rex64): Remove (!o,F) alternative.
21228
3a984f10
JJ
212292013-01-22 Jakub Jelinek <jakub@redhat.com>
21230
502498d5
JJ
21231 PR middle-end/56074
21232 * dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc)
21233 isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION.
21234 * tree-vect-loop-manip.c (find_loop_location): Also ignore
21235 stmt locations where LOCATION_LOCUS of the stmt location is
21236 UNKNOWN_LOCATION or BUILTINS_LOCATION.
21237
3a984f10
JJ
21238 PR target/55686
21239 * config/i386/i386.md (UNSPEC_STOS): New.
21240 (strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1,
21241 *strsetqi_1): Add UNSPEC_STOS.
21242
fa817f7f
PC
212432013-01-22 Paolo Carlini <paolo.carlini@oracle.com>
21244
21245 PR c++/56067
21246 * doc/invoke.texi: Remove left over -Wsynth example.
21247
8f498c1b
JJ
212482013-01-21 Jakub Jelinek <jakub@redhat.com>
21249
21250 PR tree-optimization/56051
21251 * fold-const.c (fold_binary_loc): Don't fold
21252 X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
21253 a narrowing conversion, or widening conversion from signed
21254 to unsigned.
21255
47876a2a 212562013-01-21 Uros Bizjak <ubizjak@gmail.com>
35d59da7
UB
21257
21258 PR rtl-optimization/56023
21259 * haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
21260 dependent on debug instruction.
21261
5b9db1bc
MJ
212622013-01-21 Martin Jambor <mjambor@suse.cz>
21263
21264 PR middle-end/56022
21265 * function.c (allocate_struct_function): Call
21266 invoke_set_current_function_hook earlier.
21267
e8bb7d68
JJ
212682013-01-21 Jakub Jelinek <jakub@redhat.com>
21269
21270 * reload1.c (init_reload): Only initialize reload_obstack
21271 during the first call.
21272
616a4e32
MP
212732013-01-21 Marek Polacek <polacek@redhat.com>
21274
21275 * cfgloop.c (verify_loop_structure): Fix up grammar.
21276
4401981b
YHH
212772013-01-21 Yi-Hsiu Hsu <ahsu@marvell.com>
21278
21279 * config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift,
21280 pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift.
21281
8e87740b
RR
212822013-01-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21283
21284 PR target/56058
21285 * config/arm/marvell-pj4.md: Update copyright year.
21286 Fix up use of alu to alu_reg and simple_alu_imm.
21287
47876a2a 212882013-01-21 Uros Bizjak <ubizjak@gmail.com>
1f6bc337
UB
21289
21290 * config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.
21291
89d56d79
VM
212922013-01-20 Vladimir Makarov <vmakarov@redhat.com>
21293
21294 PR target/55433
21295 * lra-constraints.c (curr_insn_transform): Don't reuse original
1f6bc337 21296 insn for secondary memory move when memory mode should be different.
89d56d79 21297
fe603553
JDA
212982013-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21299
21300 * config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi,
21301 atomic_storedi_1): New patterns.
21302
01284895
VK
213032013-01-20 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
21304
21305 btver2 pipeline descriptions.
21306 * config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline
21307 descriptions.
21308 * config/i386/i386.md (btver2_decode): New type attributes.
1f6bc337 21309 * config/i386/sse.md (btver2_decode, btver2_sse_attr): New
01284895
VK
21310 type attributes.
21311 * config/i386/btver2.md: New file describing btver2 pipelines.
21312
5630e3e1
JL
213132013-01-19 Andrew Pinski <apinski@cavium.com>
21314
21315 PR tree-optimization/52631
21316 * tree-ssa-sccvn (visit_use): Before looking up the original
21317 statement, try looking up the simplified expression.
21318
650ae806
AG
213192013-01-19 Anthony Green <green@moxielogic.com>
21320
21321 * config/moxie/moxie.c (moxie_expand_prologue): Set
21322 current_function_static_stack_size.
21323
e300ec2d
JJ
213242013-01-18 Jakub Jelinek <jakub@redhat.com>
21325
21326 PR tree-optimization/56029
21327 * tree-phinodes.c (reserve_phi_args_for_new_edge): Set
21328 gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION.
21329
a3d7af04
SS
213302013-01-18 Sharad Singhai <singhai@google.com>
21331
21332 PR tree-optimization/55995
21333 * dumpfile.c (dump_loc): Print location only if available.
21334 * tree-vectorizer.c (increase_alignment): Intialize vect_location.
21335
66aa7879
VM
213362013-01-18 Vladimir Makarov <vmakarov@redhat.com>
21337
21338 PR target/55433
21339 * lra-constraints.c (curr_insn_transform): Reuse original insn for
21340 secondary memory move.
21341 (inherit_reload_reg): Use rclass instead of cl for
21342 check_secondary_memory_needed_p.
21343
3f0fee7b
JJ
213442013-01-18 Jakub Jelinek <jakub@redhat.com>
21345
21346 PR middle-end/56015
21347 * expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
1f6bc337 21348 the case where writing real complex part of target modifies op1.
3f0fee7b 21349
70c67693
JG
213502013-01-18 James Greenhalgh <james.greenhalgh@arm.com>
21351
21352 * config/aarch64/aarch64-simd.md
21353 (aarch64_vcond_internal<mode>): Handle unordered cases.
21354 * config/aarch64/iterators.md (v_cmp_result): New.
21355
df8de9b3
YHH
213562013-01-18 Yi-Hsiu Hsu <ahsu@marvell.com>
21357 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21358
21359 * config/arm/marvell-pj4.md: New file.
21360 * config/arm/arm.c (arm_issue_rate): Add marvell_pj4.
21361 * config/arm/arm.md (generic_sched): Add marvell_pj4.
21362 (generic_vfp): Likewise.
21363 * config/arm/arm-cores.def: Add marvell-pj4.
21364 * config/arm/arm-tune.md: Regenerate.
21365 * config/arm/arm-tables.opt: Regenerate.
21366 * config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4.
21367 * doc/invoke.texi: Document marvell-pj4.
21368
be30c356
TB
213692013-01-18 Tejas Belagod <tejas.belagod@arm.com>
21370
21371 * config/aarch64/arm_neon.h: Map scalar types to standard types.
21372
0bfbca58 213732013-01-18 Alexandre Oliva <aoliva@redhat.com>
af6236c1
AO
21374
21375 PR debug/54114
21376 PR debug/54402
21377 PR debug/49888
21378 * var-tracking.c (negative_power_of_two_p): New.
21379 (global_get_addr_cache, local_get_addr_cache): New.
21380 (get_addr_from_global_cache, get_addr_from_local_cache): New.
21381 (vt_canonicalize_addr): Rewrite using the above. Adjust the
21382 heading comment.
21383 (vt_stack_offset_p): Remove.
21384 (vt_canon_true_dep): Always canonicalize loc's address.
21385 (clobber_overlapping_mems): Make sure we have a MEM.
21386 (local_get_addr_clear_given_value): New.
21387 (val_reset): Clear local cached entries.
21388 (compute_bb_dataflow): Create and release the local cache.
21389 Disable duplicate MEMs clobbering.
21390 (emit_notes_in_bb): Clobber MEMs likewise.
21391 (vt_emit_notes): Create and release the local cache.
21392 (vt_initialize, vt_finalize): Create and release the global
21393 cache, respectively.
1f6bc337 21394 * alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs.
af6236c1 21395
0bfbca58 213962013-01-18 Alexandre Oliva <aoliva@redhat.com>
7ff37ffa
AO
21397
21398 PR libmudflap/53359
21399 * tree-mudflap.c (mudflap_finish_file): Skip deferred decls
21400 not found in the symtab.
21401
0bfbca58 214022013-01-18 Alexandre Oliva <aoliva@redhat.com>
3aa03517 21403
c350ba53 21404 PR debug/56006
3aa03517
AO
21405 PR rtl-optimization/55547
21406 PR rtl-optimization/53827
21407 PR debug/53671
21408 PR debug/49888
21409 * alias.c (offset_overlap_p): New, factored out of...
21410 (memrefs_conflict_p): ... this. Use absolute sizes. Retain
21411 the conservative special case for symbolic constants. Don't
21412 adjust zero sizes on alignment.
21413
c664546f
JL
214142013-01-18 Bernd Schmidt <bernds@codesourcery.com>
21415
21416 PR rtl-optimization/52573
21417 * regrename.c (build_def_use): Ignore REG_DEAD notes if there is a
21418 REG_UNUSED for the same register.
21419
1bd3f750
MP
214202013-01-17 Richard Biener <rguenther@suse.de>
21421 Marek Polacek <polacek@redhat.com>
21422
21423 PR rtl-optimization/55833
21424 * loop-unswitch.c (unswitch_loops): Move loop verification...
21425 (unswitch_single_loop): ...here. Call mark_irreducible_loops.
21426 * cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter.
21427 Set it to true when we're removing a loop from hierarchy tree in
21428 an irreducible region.
21429 (fix_bb_placements): Adjust caller.
21430 (fix_loop_placements): Likewise.
21431
e52a8b71
GJL
214322013-01-17 Georg-Johann Lay <avr@gjlay.de>
21433
21434 * config/avr/builtins.def (DEF_BUILTIN): Factor out
21435 "__builtin_avr_" from NAME, turn NAME to an uppercase identifier.
21436 Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'.
21437 Remove ID. Adjust comments.
21438 * config/avr/avr-c.c (avr_builtin_name): Remove.
21439 (avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop.
21440 * config/avr/avr.c (avr_tolower): New static function.
21441 (DEF_BUILTIN): Remove parameter ID. Prefix ICODE by 'CODE_FOR_'.
21442 Stringify NAME, prefix it with "__builtin_avr_" and lowercase it.
21443 (avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for
21444 default expansion.
21445
8386a7ea
JH
214462013-01-17 Jan Hubicka <jh@suse.cz>
21447
610fb637 21448 PR tree-optimization/55273
8386a7ea
JH
21449 * loop-iv.c (iv_number_of_iterations): Consider zero iteration case.
21450
47876a2a 214512013-01-17 Uros Bizjak <ubizjak@gmail.com>
8abaebcd
UB
21452
21453 PR target/55981
21454 * config/i386/sync.md (atomic_store<mode>): Always generate SWImode
21455 store through atomic_store<mode>_1.
21456 (atomic_store<mode>_1): Macroize insn using SWI mode iterator.
21457
8222c37e
MJ
214582013-01-17 Martin Jambor <mjambor@suse.cz>
21459
21460 PR tree-optimizations/55264
21461 * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
21462 for virtual methods.
21463 * ipa.c (symtab_remove_unreachable_nodes): Never return true for
21464 virtual methods before inlining is over.
21465 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
21466 virtual functions.
21467 * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
21468 non-virtual.
21469
79f01c76
VM
214702013-01-16 Vladimir Makarov <vmakarov@redhat.com>
21471
21472 PR rtl-optimization/56005
21473 * sched-deps.c (sched_analyze_2): Check deps->readonly for adding
21474 pending reads for prefetch.
21475
d0b6bb1b
IB
214762013-01-16 Ian Bolton <ian.bolton@arm.com>
21477
aaf1e810 21478 * config/aarch64/aarch64.md
d0b6bb1b
IB
21479 (*cstoresi_neg_uxtw): New pattern.
21480 (*cmovsi_insn_uxtw): New pattern.
21481 (*<optab>si3_uxtw): New pattern.
21482 (*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern.
21483 (*<optab>si3_insn_uxtw): New pattern.
21484 (*bswapsi2_uxtw): New pattern.
21485
cb9cf03b
RB
214862013-01-16 Richard Biener <rguenther@suse.de>
21487
21488 * tree-inline.c (tree_function_versioning): Remove set but
21489 never used variable.
21490
2cfc56b9
RB
214912013-01-16 Richard Biener <rguenther@suse.de>
21492
21493 PR tree-optimization/55964
21494 * tree-flow.h (rename_variables_in_loop): Remove.
21495 (rename_variables_in_bb): Likewise.
21496 * tree-loop-distribution.c (update_phis_for_loop_copy): Remove.
21497 (copy_loop_before): Adjust and delete update-ssa status.
21498 * tree-vect-loop-manip.c (rename_variables_in_bb): Make static.
8abaebcd 21499 (rename_variables_in_bb): Likewise. Properly walk over predecessors.
2cfc56b9
RB
21500 (rename_variables_in_loop): Remove.
21501 (slpeel_update_phis_for_duplicate_loop): Likewise.
21502 (slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops,
21503 use available cfg machinery instead of duplicating it.
21504 Update PHI nodes and perform poor-mans SSA update here.
21505 (slpeel_tree_peel_loop_to_edge): Adjust.
21506
c25a0c60
RB
215072013-01-16 Richard Biener <rguenther@suse.de>
21508
21509 PR tree-optimization/54767
21510 PR tree-optimization/53465
21511 * tree-vrp.c (vrp_meet_1): Revert original fix for PR53465.
21512 (vrp_visit_phi_node): For PHI arguments coming via backedges
21513 drop all symbolical range information.
21514 (execute_vrp): Compute backedges.
21515
04b535af
RB
215162013-01-16 Richard Biener <rguenther@suse.de>
21517
21518 * doc/install.texi: Update CLooG and ISL requirements to
21519 0.18.0 and 0.11.1.
21520
8b0a1e0b
CB
215212013-01-16 Christian Bruel <christian.bruel@st.com>
21522
21523 PR target/55301
21524 * config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol.
21525 (broken_move): Handle UNSPECV_SP_SWITCH_B.
21526 * config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG).
21527
215282013-01-16 DJ Delorie <dj@redhat.com>
21529
21530 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
21531 (UNSPECV_SP_SWITCH_E): New.
21532 (sp_switch_1): Change to an unspec.
21533 (sp_switch_2): Change to an unspec. Don't use post-inc when we
21534 replace $r15.
21535
215362013-01-16 Uros Bizjak <ubizjak@gmail.com>
88e784e6
UB
21537
21538 * emit-rtl.c (need_atomic_barrier_p): Mask memory model argument
21539 with MEMMODEL_MASK before comparing with MEMMODEL_* memory types.
21540 * optabs.c (maybe_emit_sync_lock_test_and_set): Ditto.
21541 (expand_mem_thread_fence): Ditto.
21542 (expand_mem_signal_fence): Ditto.
21543 (expand_atomic_load): Ditto.
21544 (expand_atomic_store): Ditto.
21545
0bfbca58 215462013-01-16 Alexandre Oliva <aoliva@redhat.com>
5147bf6a
AO
21547
21548 PR rtl-optimization/55547
21549 PR rtl-optimization/53827
21550 PR debug/53671
21551 PR debug/49888
21552 * alias.c (memrefs_conflict_p): Set sizes to negative after
21553 AND adjustments.
21554
305e3ac1
JJ
215552013-01-15 Jakub Jelinek <jakub@redhat.com>
21556
21557 PR target/55940
21558 * function.c (thread_prologue_and_epilogue_insns): Always
21559 add crtl->drap_reg to set_up_by_prologue.set, even if
21560 stack_realign_drap is false.
21561
f78ac4f2
JBG
215622013-01-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
21563
21564 * config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3,
21565 and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3,
21566 *call): Fix indention.
21567
a78a8cc4
TV
215682013-01-15 Tom de Vries <tom@codesourcery.com>
21569
21570 PR target/55876
21571 * optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG.
21572 Update comment.
21573
0e80383f
VM
215742013-01-15 Vladimir Makarov <vmakarov@redhat.com>
21575
305e3ac1 21576 PR rtl-optimization/55153
0e80383f
VM
21577 * sched-deps.c (sched_analyze_2): Add pending reads for prefetch.
21578
207b5956
MJ
215792013-01-15 Martin Jambor <mjambor@suse.cz>
21580
21581 PR tree-optimization/55920
21582 * tree-sra.c (analyze_access_subtree): Do not mark non-removable
21583 accesses as grp_to_be_debug_replaced.
21584
a7818b54
JJ
215852013-01-15 Jakub Jelinek <jakub@redhat.com>
21586
21587 PR tree-optimization/55920
21588 * tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced
21589 there is non-useless type conversion needed from debug rhs to lhs,
21590 use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR.
21591
b0fe107e
JM
215922013-01-15 Joseph Myers <joseph@codesourcery.com>
21593 Mikael Pettersson <mikpe@it.uu.se>
21594
21595 PR target/43961
21596 * config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for
21597 Thumb.
21598 (ASM_OUTPUT_CASE_LABEL): Remove.
21599 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty.
21600 * final.c (shorten_branches): Update alignment of labels before
21601 jump tables if CASE_VECTOR_SHORTEN_MODE.
21602
34ab62ee
RB
216032013-01-15 Richard Biener <rguenther@suse.de>
21604
21605 PR bootstrap/55961
21606 * system.h: Do not include gmp.h for building host tools.
21607
783a3a05
RB
216082013-01-15 Richard Biener <rguenther@suse.de>
21609
21610 PR middle-end/55882
21611 * emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly
21612 account for bitpos when computing alignment.
21613
3a579e09
VY
216142013-01-15 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com>
21615
21616 * config/i386/i386-c.c (ix86_target_macros_internal): New case.
21617 (ix86_target_macros_internal): Likewise.
21618
21619 * config/i386/i386.c (m_CORE2I7): Removed.
21620 (m_CORE_HASWELL): New macro.
21621 (m_CORE_ALL): Likewise.
21622 (initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL.
21623 (initial_ix86_arch_features): Likewise.
21624 (processor_target_table): Initializations for Core avx2.
21625 (cpu_names): New names "core-avx2".
21626 (ix86_option_override_internal): Changed PROCESSOR_COREI7 by
21627 PROCESSOR_CORE_HASWELL.
21628 (ix86_issue_rate): New case.
21629 (ia32_multipass_dfa_lookahead): Likewise.
21630 (ix86_sched_init_global): Likewise.
21631
21632 * config/i386/i386.h (TARGET_HASWELL): New macro.
21633 (target_cpu_default): New TARGET_CPU_DEFAULT_haswell.
21634 (processor_type): New PROCESSOR_HASWELL.
21635
955f5a07
JJ
216362013-01-15 Jakub Jelinek <jakub@redhat.com>
21637
ff784829
JJ
21638 PR tree-optimization/55955
21639 * tree-vect-loop.c (vectorizable_reduction): Give up early on
21640 *SHIFT_EXPR and *ROTATE_EXPR codes.
21641
955f5a07
JJ
21642 PR tree-optimization/48766
21643 * opts.c (common_handle_option): For -fwrapv disable -ftrapv, for
21644 -ftrapv disable -fwrapv.
21645
aeb8b4e9
GJL
216462013-01-14 Georg-Johann Lay <avr@gjlay.de>
21647
21648 PR target/55974
21649 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH
21650 etc. to 1 and not to __flash.
21651 Use LL suffix for __INT24_MAX__ with -mint8.
21652 Use ULL suffix for __UINT24_MAX__ with -mint8.
21653
1c494c6a
GJL
216542013-01-14 Georg-Johann Lay <avr@gjlay.de>
21655
21656 * config/avr/avr-arch.h
21657 (struct base_arch_s): Use typedef avr_arch_t instead.
21658 (struct arch_info_s): Use typedef avr_arch_info_t instead.
21659 (struct mcu_type_s): Use typedef avr_mcu_t instead.
21660 * config/avr/avr.c: Same.
21661 * config/avr/avr-devices.c: Same.
21662 * config/avr/driver-avr.c: Same.
21663 * config/avr/gen-avr-mmcu-texi.c: Same.
21664 * config/avr/avr-mcus.def: Adjust comment.
21665
a50344cb
TB
216662013-01-14 Tejas Belagod <tejas.belagod@arm.com>
21667
88e784e6
UB
21668 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New.
21669 * config/aarch64/iterators.md (VALLDI): New.
a50344cb 21670
47876a2a 216712013-01-14 Uros Bizjak <ubizjak@gmail.com>
e6f0e052
UB
21672 Andi Kleen <ak@linux.intel.com>
21673
21674 PR target/55948
21675 * config/i386/sync.md (atomic_store<mode>_1): New pattern.
21676 (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE
21677 memmodel flag.
21678
00892272
GJL
216792013-01-14 Georg-Johann Lay <avr@gjlay.de>
21680
21681 * config/avr/avr-stdint.h: Remove trailing blanks.
21682 * config/avr/avr-log.h: Same.
21683 * config/avr/avr-arch.h: Same.
21684 * config/avr/avr-devices.c: Same.
21685 * config/avr/avr-dimode.md: Same.
21686 * config/avr/predicates.md: Same.
21687 * config/avr/avr-c.c: Same. And fix typo.
e6f0e052 21688
00892272
GJL
21689 * config/avr/avr-protos.h: Same. And:
21690 (function_arg_regno_p): Rename to avr_function_arg_regno_p.
21691 (init_cumulative_args): Rename to avr_init_cumulative_args.
21692 (expand_prologue): Rename to avr_expand_prologue.
21693 (expand_epilogue): Rename to avr_expand_epilogue.
21694 (adjust_insn_length): Rename to avr_adjust_insn_length.
21695 (notice_update_cc): Rename to avr_notice_update_cc.
21696 (final_prescan_insn): Rename to avr_final_prescan_insn.
21697 * config/avr/avr.c: Same.
21698 * config/avr/avr.h: Same.
21699 * config/avr/avr.md: Remove trailing blanks.
21700 (prologue): Use avr_expand_prologue.
21701 (epilogue, sibcall_epilogue): Use avr_expand_epilogue.
21702
7bb01996
RB
217032013-01-14 Richard Biener <rguenther@suse.de>
21704
21705 * tree-cfg.c (verify_expr_location, verify_expr_location_1,
21706 verify_location, collect_subblocks): New functions.
21707 (verify_gimple_in_cfg): Verify that locations only reference
21708 BLOCKs in the functions BLOCK tree.
21709
2724573f
RB
217102013-01-14 Richard Biener <rguenther@suse.de>
21711
21712 * tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated
21713 PHI argument.
21714 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly
21715 unshare reference.
21716 (insert_out_of_ssa_copy_on_edge): Likewise.
21717 (rewrite_close_phi_out_of_ssa): Likewise.
21718 * tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare
21719 debug expressions.
21720 * tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare
21721 propagated constants.
21722 * tree-cfg.c (tree_node_can_be_shared): Handled component-refs
21723 can not be shared.
21724
9a0bbab6
GJL
217252013-01-14 Georg-Johann Lay <avr@gjlay.de>
21726
21727 * config/avr/avr-modes.def: Add GPL copyright notice.
21728
45805f17
UB
217292013-01-13 Uros Bizjak <ubizjak@gmail.com>
21730
21731 * config/i386/sync.md (mem_thread_fence): Mask operands[0] with
21732 MEMMODEL_MASK to determine memory model.
21733 (atomic_store<mode>): Ditto from operands[2].
21734 * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool.
21735
9d60be38
JJ
217362013-01-13 Jakub Jelinek <jakub@redhat.com>
21737
21738 PR fortran/55935
45805f17 21739 * gimple-fold.c (get_symbol_constant_value): Call unshare_expr.
9d60be38
JJ
21740 (fold_gimple_assign): Don't call unshare_expr here.
21741 (fold_ctor_reference): Call unshare_expr.
21742
e7f49d92
TG
217432013-01-13 Terry Guo <terry.guo@arm.com>
21744
aaf1e810
EB
21745 * Makefile.in (s-mlib): New argument MULTILIB_REUSE.
21746 * doc/fragments.texi: Document MULTILIB_REUSE.
21747 * gcc.c (multilib_reuse): New internal spec.
e7f49d92 21748 (set_multilib_dir): Also search multilib from multilib_reuse.
aaf1e810 21749 * genmultilib (tmpmultilib3): Refactor code.
e7f49d92
TG
21750 (tmpmultilib4): Ditto.
21751 (multilib_reuse): New multilib argument.
21752
fbd03a27
RS
217532013-01-13 Richard Sandiford <rdsandiford@googlemail.com>
21754
21755 * Makefile.in: Update copyright.
21756
b3681f13
TV
217572013-01-12 Tom de Vries <tom@codesourcery.com>
21758
21759 PR middle-end/55890
21760 * calls.c (expand_call): Check if arg_nr is valid.
21761
3f287e4b
MM
217622013-01-11 Michael Meissner <meissner@linux.vnet.ibm.com>
21763
21764 * doc/extend.texi (X86 Built-in Functions): Add whitespace in
21765 __builtin_ia32_paddb256 and __builtin_ia32_pavgb256
5bc35113
MM
21766 documentation. Add missing '__' in front of
21767 __builtin_ia32_packssdw256.
3f287e4b 21768
1abcd5eb
AK
217692013-01-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21770
21771 PR target/55719
21772 * config/s390/s390.c (s390_preferred_reload_class): Do not return
21773 NO_REGS for larl operands.
21774 (s390_reload_larl_operand): Use s390_load_address instead of
21775 emit_move_insn.
21776
980d0812
RB
217772013-01-11 Richard Biener <rguenther@suse.de>
21778
21779 * tree-cfg.c (verify_node_sharing_1): Split out from ...
21780 (verify_node_sharing): ... here.
21781 (verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree.
21782
7cb9fd07
EB
217832013-01-11 Eric Botcazou <ebotcazou@adacore.com>
21784
21785 * configure.ac (Tree checking): Set TREECHECKING to yes if enabled.
21786 Substitute TREECHECKING.
21787 * configure: Regenerate.
21788 * Makefile.in (TREECHECKING): New.
21789
47876a2a 217902013-01-11 Richard Guenther <rguenther@suse.de>
c7ab2530
RG
21791
21792 PR tree-optimization/44061
21793 * tree-vrp.c (extract_range_basic): Compute zero as
21794 value-range for __builtin_constant_p of function parameters.
21795
d1e082c2
RS
217962013-01-10 Richard Sandiford <rdsandiford@googlemail.com>
21797
45805f17 21798 Update copyright years.
d1e082c2 21799
f85021b0
VM
218002013-01-10 Vladimir Makarov <vmakarov@redhat.com>
21801
9d60be38 21802 PR rtl-optimization/55672
0160442c
VM
21803 * lra-eliminations.c (mark_not_eliminable): Permit addition with
21804 const to be eliminable.
f85021b0 21805
7a8b1ec4
DE
218062013-01-10 David Edelsohn <dje.gcc@gmail.com>
21807
21808 * configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix.
21809 * configure: Regenerate.
21810
ad2e5b71
RB
218112013-01-10 Richard Biener <rguenther@suse.de>
21812
ddf9322d 21813 * builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes.
ad2e5b71 21814
ffc5b2bb
RB
218152013-01-10 Richard Biener <rguenther@suse.de>
21816
21817 PR bootstrap/55792
21818 * tree-into-ssa.c (rewrite_add_phi_arguments): Do not set
21819 locations for virtual PHI arguments.
21820 (rewrite_update_phi_arguments): Likewise.
21821
e1f674e4
JS
218222013-01-10 Joel Sherrill <joel.sherrill@OARcorp.com>
21823
21824 * config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi
21825 on to assembler.
21826
a57fc743
JJ
218272013-01-10 Jakub Jelinek <jakub@redhat.com>
21828
21829 PR tree-optimization/55921
21830 * tree-complex.c (expand_complex_asm): New function.
21831 (expand_complex_operations_1): Call it for GIMPLE_ASM.
21832
0ff4390d
AK
218332013-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21834
21835 PR target/55718
21836 * config/s390/s390.c (s390_symref_operand_p)
21837 (s390_loadrelative_operand_p): Merge the two functions.
21838 (s390_check_qrst_address, print_operand_address): Add parameters
21839 to s390_loadrelative_operand_p invokation.
21840 (s390_check_symref_alignment): Use s390_loadrelative_operand_p.
21841 (s390_reload_larl_operand, s390_secondary_reload): Use
21842 s390_loadrelative_operand_p instead of s390_symref_operand_p.
21843 (legitimize_pic_address): Handle @GOTENT and @PLT + addend.
21844
6f557e0e
MS
218452013-01-09 Mike Stump <mikestump@comcast.net>
21846
21847 * dse.c (record_store): Remove unnecessary assert.
21848
7770c9e9
JH
218492013-01-09 Jan Hubicka <jh@suse.cz>
21850
21851 PR tree-optimization/55569
21852 * cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
21853 * cfgloop.h (scale_loop_profile): Likewise.
21854
a19b1432
JH
218552013-01-09 Jan Hubicka <jh@suse.cz>
21856
21857 PR lto/45375
ddf9322d
UB
21858 * ipa-inline.c (ipa_inline): Remove extern inlines and virtual
21859 functions.
a19b1432
JH
21860 * cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data.
21861
9a002da8
RS
218622013-01-09 Richard Sandiford <rdsandiford@googlemail.com>
21863
21864 PR middle-end/55114
21865 * expr.h (maybe_emit_group_store): Declare.
21866 * expr.c (maybe_emit_group_store): New function.
21867 * builtins.c (expand_builtin_int_roundingfn): Call it.
21868 (expand_builtin_int_roundingfn_2): Likewise.
21869
511dcace
VM
218702013-01-09 Vladimir Makarov <vmakarov@redhat.com>
21871
e1f2b729 21872 PR rtl-optimization/55829
511dcace
VM
21873 * lra-constraints.c (match_reload): Add code for absent output.
21874 (curr_insn_transform): Add code for reloads of matched inputs
21875 without output.
21876
7b0fe4f4
UB
218772013-01-09 Uros Bizjak <ubizjak@gmail.com>
21878
21879 * config/i386/sse.md (*vec_interleave_highv2df): Change mode
21880 attribute of movddup insn to DF.
21881 (*vec_interleave_lowv2df): Ditto.
21882 (vec_dupv2df): Ditto.
21883
870ca331
JH
218842013-01-09 Jan Hubicka <jh@suse.cz>
21885
21886 PR tree-optimiation/55875
21887 * tree-ssa-loop-niter.c (number_of_iterations_cond): Add
21888 EVERY_ITERATION parameter.
7b0fe4f4 21889 (number_of_iterations_exit): Check if exit is executed every iteration.
870ca331
JH
21890 (idx_infer_loop_bounds): Similarly here.
21891 (n_of_executions_at_most): Simplify
21892 to only test for cases where statement is dominated by the
7b0fe4f4 21893 particular bound; handle correctly the "postdominance" test.
870ca331
JH
21894 (scev_probably_wraps_p): Use max loop iterations info
21895 as a global bound first.
21896
6f575fe4 218972013-01-09 Nguyen Duy Dat <dat.nguyen.yn@rvc.renesas.com>
3cd232b5
NDD
21898 Nick Clifton <nickc@redhat.com>
21899
21900 * config/v850/v850.md (cbranchsf4): New pattern.
21901 (cstoresf4): New pattern.
21902 (cbranchdf4): New pattern.
21903 (cstoredf4): New pattern.
21904 (movsicc): Disallow floating point comparisons.
21905 (cmpsf_le_insn): Fix order of operators.
21906 (cmpsf_lt_insn): Likewise.
21907 (cmpsf_eq_insn): Likewise.
21908 (cmpdf_le_insn): Likewise.
21909 (cmpdf_lt_insn): Likewise.
21910 (cmpdf_eq_insn): Likewise.
21911 (cmpsf_ge_insn): Use LE comparison.
21912 (cmpdf_ge_insn): Likewise.
21913 (cmpsf_gt_insn): Use LT comparison.
21914 (cmpdf_gt_insn): Likewise.
21915 (cmpsf_ne_insn): Delete pattern.
21916 (cmpdf_ne_insn): Delete pattern.
21917 * config/v850/v850.c (v850_gen_float_compare): Use
21918 gen_cmpdf_eq_insn for NE comparison.
21919 (v850_float_z_comparison_operator)
21920 (v850_float_nz_comparison_operator): Move from here ...
21921 * config/v850/predicates.md: ... to here. Move GT and GE
21922 comparisons into v850_float_z_comparison_operator.
21923 * config/v850/v850-protos.h (v850_float_z_comparison_operator):
21924 Delete prototype.
21925 (v850_float_nz_comparison_operator): Likewise.
21926
f0d54148
JDA
219272013-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21928
21929 * config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv
21930 with calls to gen_insvsi/gen_insvdi.
21931
8f01beca
VK
219322013-01-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
21933
21934 * config/i386/i386.c (initial_ix86_tune_features): Set up
21935 X86_TUNE_AVX128_OPTIMAL for m_BTVER2.
21936
2aa579ad
JJ
219372013-01-09 Steven Bosscher <steven@gcc.gnu.org>
21938 Jakub Jelinek <jakub@redhat.com>
21939
21940 PR tree-optimization/48189
21941 * predict.c (predict_loops): If max is 0, don't call compare_tree_int.
21942 If nitercst is 0, don't predict the exit edge.
21943
6edc3e32 219442013-01-08 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
01a3a324
N
21945
21946 * config/aarch64/aarch64.c (aarch64_print_operand): Replace %r
21947 in asm_fprintf with reg_names.
21948 (aarch64_print_operand_address): Likewise.
21949 (aarch64_return_addr): Likewise.
21950 * config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove.
21951
f6f94d94
JDA
219522013-01-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21953
21954 * config/pa/pa.h (VAL_U6_BITS_P): Define.
21955 (INT_U6_BITS): Likewise.
21956 * config/pa/predicates.md (uint6_operand): New predicate.
21957 (shift5_operand, shift6_operand): Likewise.
21958 * config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of
21959 arith32_operand.
21960 (lshrdi3): Use shift6_operand.
21961 (shrpsi4, shrpdi4): New insn patterns.
21962 (extzv): Delete expander.
21963 (extzvsi, extzvdi): New expanders. Use uint5_operand and uint6_operand
21964 predicates in unamed zero extract patterns. Tighten common constraint.
21965 (extv): Delete expander.
21966 (extvsi, extvdi): New expanders. Use uint5_operand and uint6_operand
21967 predicates in unamed sign extract patterns. Tighten common constraint.
21968 (insv): Delete expander.
21969 (insvsi, insvdi): New expanders. Use uint5_operand and uint6_operand
21970 predicates in unamed insert patterns. Tighten common constraint.
21971 Change uint32_operand predicate to uint6_operand predicate in unamed
21972 DImode pattern to insert constant values of type 1...1xxxx.
21973
36b72910
JH
219742013-01-04 Jan Hubicka <jh@suse.cz>
21975
21976 PR tree-optimization/55823
7b0fe4f4
UB
21977 * ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering
21978 issue.
36b72910 21979
47876a2a 219802013-01-08 Jakub Jelinek <jakub@redhat.com>
c6d851b9
JJ
21981 Uros Bizjak <ubizjak@gmail.com>
21982
21983 PR rtl-optimization/55845
21984 * df-problems.c (can_move_insns_across): Stop scanning at
21985 volatile_insn_p source instruction or give up if
21986 across_from .. across_to range contains any volatile_insn_p
21987 instructions.
21988
4369c11e
TB
219892013-01-08 Tejas Belagod <tejas.belagod@arm.com>
21990
7b0fe4f4
UB
21991 * config/aarch64/aarch64-simd.md (vec_init<mode>): New.
21992 * config/aarch64/aarch64-protos.h (aarch64_expand_vector_init):
21993 Declare.
4369c11e 21994 * config/aarch64/aarch64.c (aarch64_simd_dup_constant,
7b0fe4f4 21995 aarch64_simd_make_constant, aarch64_expand_vector_init): New.
4369c11e 21996
aeb7e7c1
JJ
219972013-01-08 Jakub Jelinek <jakub@redhat.com>
21998
21999 PR fortran/55341
22000 * asan.c (asan_clear_shadow): New function.
22001 (asan_emit_stack_protection): Use it.
22002
a02ad1aa
TB
220032013-01-08 Tejas Belagod <tejas.belagod@arm.com>
22004
22005 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>,
22006 aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand
22007 with tab instead of space.
22008
f90d87f5
NC
220092013-01-08 Nick Clifton <nickc@redhat.com>
22010
22011 * config/rl78/rl78.c (rl78_expand_prologue): Always select
22012 register bank 0 at the start of an interrupt handler.
83ffd964
NC
22013 * config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and
22014 MDBH registers.
f90d87f5 22015
385eb93d
JG
220162013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
22017
22018 * config/aarch64/aarch64-simd.md
22019 (aarch64_simd_bsl<mode>_internal): Add floating-point modes.
22020 (aarch64_simd_bsl): Likewise.
22021 (aarch64_vcond_internal<mode>): Likewise.
22022 (vcond<mode><mode>): Likewise.
22023 (aarch64_cm<cmp><mode>): Fix constraints, add new modes.
22024 * config/aarch64/iterators.md (V_cmp_result): Add V2DF.
22025
4dcd1054
JG
220262013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
22027
22028 * config/aarch64/aarch64-builtins.c
22029 (aarch64_builtin_vectorized_function): Handle sqrt, sqrtf.
22030
4267a4a6
MJ
220312013-01-08 Martin Jambor <mjambor@suse.cz>
22032
22033 PR debug/55579
22034 * tree-sra.c (analyze_access_subtree): Return true also after
22035 potentially creating a debug-only replacement.
22036
5f4e6de3
JJ
220372013-01-08 Jakub Jelinek <jakub@redhat.com>
22038
3138f224
JJ
22039 PR middle-end/55890
22040 * tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p.
22041
5f4e6de3
JJ
22042 PR tree-optimization/54120
22043 * tree-vrp.c (range_fits_type_p): Don't allow
22044 src_precision < precision from signed vr to unsigned_p
22045 if vr->min or vr->max is negative.
22046 (simplify_float_conversion_using_ranges): Test can_float_p
22047 against CODE_FOR_nothing.
22048
f3ef18ff
JJ
220492013-01-08 Jakub Jelinek <jakub@redhat.com>
22050 Richard Biener <rguenther@suse.de>
22051
22052 PR middle-end/55851
22053 * fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P
22054 types instead of just INTEGER_TYPE types.
22055
25c210f9
MK
220562013-01-07 Mark Kettenis <kettenis@openbsd.org>
22057
22058 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT,
22059 TF_SIZE): Define.
f90d87f5 22060
81826a7b
SE
220612013-01-07 Steve Ellcey <sellcey@mips.com>
22062
22063 PR target/42661
22064 * config/mips/mips.opt: Change mad to mmad to match documentation.
22065
35678514
GJL
220662013-01-07 Georg-Johann Lay <avr@gjlay.de>
22067
22068 PR target/55897
22069 * doc/extend.texi (AVR Named Address Spaces): __memx goes into
22070 .progmemx.data now.
22071
e5669488
GJL
220722013-01-07 Georg-Johann Lay <avr@gjlay.de>
22073
22074 PR target/55897
22075 * config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
22076 (avr_addrspace_t): Add .section_name field.
22077 * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
22078 array size.
22079 (avr_addrspace): Same. Initialize .section_name. Remove last
22080 NULL entry. Put __memx into .progmemx.data.
22081 (progmem_section_prefix): Remove.
22082 (avr_asm_init_sections): No need to initialize progmem_section.
22083 (avr_asm_named_section): Use avr_addrspace[].section_name to get
22084 section name prefix.
22085 (avr_asm_select_section): Ditto. And use get_unnamed_section to
22086 retrieve the progmem section.
22087 * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
22088 boundary to run over avr_addrspace[].
22089 (avr_register_target_pragmas): Ditto.
22090
656e6f37
JJ
220912013-01-06 Jakub Jelinek <jakub@redhat.com>
22092
22093 * varasm.c (output_constant_def_contents): For asan_protect_global
22094 protected strings, adjust DECL_ALIGN if needed, before testing for
22095 anchored symbols.
22096 (place_block_symbol): Adjust size for asan protected STRING_CSTs if
22097 TREE_CONSTANT_POOL_ADDRESS_P. Increase alignment for asan protected
22098 normal decls.
22099 (output_object_block): For asan protected decls, emit asan padding
22100 after their contents.
22101 * asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here.
22102 (asan_finish_file): Test it here instead.
22103
6edc3e32
UB
221042013-01-07 Nick Clifton <nickc@redhat.com>
22105 Matthias Klose <doko@debian.org>
22106 Doug Kwan <dougkwan@google.com>
22107 H.J. Lu <hongjiu.lu@intel.com>
b352afba
NC
22108
22109 PR driver/55470
22110 * collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold.
22111
22112 * common.opt: Add fuse-ld=bfd and fuse-ld=gold.
22113
22114 * gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2.
22115
7b0fe4f4 22116 * opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold.
b352afba
NC
22117
22118 * doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold.
22119
2a095093
GJL
221202013-01-07 Georg-Johann Lay <avr@gjlay.de>
22121
f3b503f4 22122 PR target/54461
2a095093
GJL
22123 * doc/install.texi (Cross-Compiler-Specific Options): Document
22124 --with-avrlibc.
22125
383f9b34
TB
221262013-01-07 Tejas Belagod <tejas.belagod@arm.com>
22127
22128 * config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32,
22129 vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64,
22130 vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16,
22131 vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32,
22132 vqmovun_high_s64): Fix source operand number and update copyright.
22133
3626621a
RB
221342013-01-07 Richard Biener <rguenther@suse.de>
22135
22136 PR middle-end/55890
22137 * gimple.h (gimple_call_builtin_p): New overload.
22138 * gimple.c (validate_call): New function.
22139 (gimple_call_builtin_p): Likewise.
22140 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
22141 Use gimple_call_builtin_p.
22142 (find_func_clobbers): Likewise.
22143 * tree-ssa-strlen.c (adjust_last_stmt): Likewise.
22144 (strlen_optimize_stmt): Likewise.
22145
8b2ea410
JG
221462013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
22147
22148 * config/aarch64/arm_neon.h (vld1_dup_*): Make argument const.
22149 (vld1q_dup_*): Likewise.
22150 (vld1_*): Likewise.
22151 (vld1q_*): Likewise.
22152 (vld1_lane_*): Likewise.
22153 (vld1q_lane_*): Likewise.
22154
9713d329
RB
221552013-01-07 Richard Biener <rguenther@suse.de>
22156
22157 * lto-streamer.h (LTO_minor_version): Bump to 2.
22158
3520f7cc
JG
221592013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
22160
22161 * config/aarch64/aarch64-protos.h
22162 (aarch64_const_double_zero_rtx_p): Rename to...
22163 (aarch64_float_const_zero_rtx_p): ...this.
22164 (aarch64_float_const_representable_p): New.
22165 (aarch64_output_simd_mov_immediate): Likewise.
22166 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor
22167 move immediate case.
22168 * config/aarch64/aarch64.c
22169 (aarch64_const_double_zero_rtx_p): Rename to...
22170 (aarch64_float_const_zero_rtx_p): ...this.
22171 (aarch64_print_operand): Allow printing of new constants.
22172 (aarch64_valid_floating_const): New.
22173 (aarch64_legitimate_constant_p): Check for valid floating-point
22174 constants.
22175 (aarch64_simd_valid_immediate): Likewise.
22176 (aarch64_vect_float_const_representable_p): New.
22177 (aarch64_float_const_representable_p): Likewise.
22178 (aarch64_simd_imm_zero_p): Also allow for floating-point 0.0.
22179 (aarch64_output_simd_mov_immediate): New.
22180 * config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative.
22181 (*movdf_aarch64): Likewise.
22182 * config/aarch64/constraints.md (Ufc): New.
22183 (Y): call aarch64_float_const_zero_rtx.
22184 * config/aarch64/predicates.md (aarch64_fp_compare_operand): New.
22185
e167c04d
RB
221862013-01-07 Richard Biener <rguenther@suse.de>
22187
22188 PR tree-optimization/55888
22189 PR tree-optimization/55862
22190 * tree-ssa-pre.c (phi_translate_1): Revert previous change.
22191 (valid_in_sets): Check if a NAME has a leader in AVAIL_OUT,
22192 not if it is contained therein.
22193
0139aaab
GJL
221942013-01-07 Georg-Johann Lay <avr@gjlay.de>
22195
22196 * config/avr/t-avr: Typo.
22197
4a176b23
GJL
221982013-01-07 Georg-Johann Lay <avr@gjlay.de>
22199
22200 PR55243
22201 * config/avr/t-avr: Don't automatically rebuild
22202 $(srcdir)/config/avr/t-multilib
22203 $(srcdir)/config/avr/avr-tables.opt
22204 $(srcdir)/doc/avr-mmcu.texi
22205 (avr-mcus): New phony target to build them on request.
22206 (s-avr-mlib, s-avr-mmcu-texi): Remove.
22207 * avr/avr-mcus.def: Adjust comments.
22208
c7afdc98
UB
222092013-01-07 Uros Bizjak <ubizjak@gmail.com>
22210
22211 * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove.
22212
1ab05c31
RS
222132013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
22214
22215 * file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder.
22216
488e3acc
RS
222172013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
22218
22219 * config/tilepro/gen-mul-tables.cc: Put copyright on one line.
22220
a89599d2
DE
222212013-01-05 David Edelsohn <dje.gcc@gmail.com>
22222
22223 * config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling
22224 to generate profiling.
22225 * config/rs6000/aix64.h (LIB_SPEC): Same.
22226
70f09188
AP
222272013-01-04 Andrew Pinski <apinski@cavium.com>
22228
22229 * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs):
22230 New function.
22231 (TARGET_FIXED_CONDITION_CODE_REGS): Define.
22232
918d445f
UB
222332013-01-04 Uros Bizjak <ubizjak@gmail.com>
22234
22235 * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
22236 unconditionally.
22237 (ix86_expand_move): Ditto.
22238 (ix86_zero_extend_to_Pmode): Ditto.
22239 (ix86_expand_call): Ditto.
22240 (ix86_expand_special_args_builtin): Ditto.
22241 (ix86_expand_builtin): Ditto.
22242
361618ec
RB
222432013-01-04 Richard Biener <rguenther@suse.de>
22244
22245 PR tree-optimization/55862
22246 * tree-ssa-pre.c (phi_translate_1): Valueize SSA names after
22247 translating them through PHI nodes.
22248
87eab554
MJ
222492013-01-04 Martin Jambor <mjambor@suse.cz>
22250
22251 PR tree-optimization/55755
22252 * tree-sra.c (sra_modify_assign): Do not check that an access has no
22253 children when trying to avoid producing a VIEW_CONVERT_EXPR.
22254
33879b9f
MP
222552013-01-04 Marek Polacek <polacek@redhat.com>
22256
22257 PR middle-end/55859
22258 * opts.c (default_options_optimization): Clarify error message.
22259
3068819a
RB
222602013-01-04 Richard Biener <rguenther@suse.de>
22261
22262 PR middle-end/55863
22263 * fold-const.c (split_tree): Undo -X - 1 to ~X folding for
22264 reassociation.
22265
0e4ae794
JDA
222662013-01-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22267
22268 PR target/53789
22269 * config/pa/pa.md (movsi): Revert previous change.
e58d2e48
JDA
22270 * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
22271 references.
0e4ae794 22272
65c88cef
RH
222732013-01-03 Richard Henderson <rth@redhat.com>
22274
22275 * config/i386/i386.c (ix86_expand_move): Always assign to op1
22276 after eliminating TLS symbols.
22277
8ac16127
MG
222782013-01-03 Marc Glisse <marc.glisse@inria.fr>
22279
22280 PR bootstrap/50167
22281 * graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf.
22282 * graphite-poly.c (debug_gmp_value): Likewise.
22283
bb664f09
UB
222842013-01-03 Uros Bizjak <ubizjak@gmail.com>
22285
22286 PR target/55712
22287 * config/i386/i386-c.c (ix86_target_macros_internal): Depending on
22288 selected code model, define __code_mode_small__, __code_model_medium__,
22289 __code_model_large__, __code_model_32__ or __code_model_kernel__.
22290 * config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix
22291 xchg temporary register with %k. Declare temporary register as
22292 early clobbered.
22293 [__x86_64__]: For medium and large code models, preserve %rbx register.
22294
bcf1ef00
RB
222952013-01-03 Richard Biener <rguenther@suse.de>
22296
0506634a 22297 * tree-data-ref.c (dump_conflict_function): Use less vertical spacing.
bcf1ef00
RB
22298 (dump_subscript): Adjust.
22299 (finalize_ddr_dependent): Do not dump redundant info.
22300 (analyze_siv_subscript): Adjust.
22301 (subscript_dependence_tester): Likewise.
22302 (compute_affine_dependence): Likewise.
22303
59fd17e3
RB
223042013-01-03 Richard Biener <rguenther@suse.de>
22305
22306 Revert
22307 2013-01-03 Richard Biener <rguenther@suse.de>
22308
22309 PR tree-optimization/55857
22310 * tree-vect-stmts.c (vectorizable_load): Do not setup
22311 re-alignment for invariant loads.
22312
22313 2013-01-02 Richard Biener <rguenther@suse.de>
22314
22315 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 22316 invariant load do not generate a vector load from the scalar location.
59fd17e3 22317
595c2679
RB
223182013-01-03 Richard Biener <rguenther@suse.de>
22319
22320 * tree-vect-loop.c (vect_analyze_loop_form): Clarify reason
22321 for not vectorizing.
22322 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
22323 not build INDIRECT_REFs, call get_name once only.
22324 (vect_create_data_ref_ptr): Likewise. Dump base object kind
22325 based on DR_BASE_OBJECT, not DR_BASE_ADDRESS.
22326
90bb7d7a
RB
223272013-01-03 Richard Biener <rguenther@suse.de>
22328
22329 PR tree-optimization/55857
22330 * tree-vect-stmts.c (vectorizable_load): Do not setup
22331 re-alignment for invariant loads.
22332
f09b77ca
RB
223332013-01-03 Richard Biener <rguenther@suse.de>
22334
22335 PR lto/55848
22336 * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
22337 prefer a built-in decl.
22338
3461a16e
JJ
223392013-01-03 Jakub Jelinek <jakub@redhat.com>
22340
df8e2b4f
JJ
22341 * gcc.c (process_command): Update copyright notice dates.
22342 * gcov.c (print_version): Likewise.
22343 * gcov-dump.c (print_version): Likewise.
22344
3461a16e
JJ
22345 PR rtl-optimization/55838
22346 * loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on
22347 iv0.step, iv1.step and step.
22348
8b5546d6
JJ
223492013-01-03 Jakub Jelinek <jakub@redhat.com>
22350 Marc Glisse <marc.glisse@inria.fr>
22351
22352 PR tree-optimization/55832
22353 * fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and
22354 ABS_EXPR<x> < 0 folding use constant_boolean_node instead of
22355 integer_{one,zero}_node.
22356
8ab1d2e9
JJ
223572013-01-03 Jakub Jelinek <jakub@redhat.com>
22358
22359 PR debug/54402
22360 * params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param.
22361 * var-tracking.c (reverse_op): Don't add reverse ops to
22362 VALUEs that have already
0506634a 22363 PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list.
8ab1d2e9 22364
5b9ad1d4
GP
223652013-01-02 Gerald Pfeifer <gerald@pfeifer.com>
22366
22367 * doc/contrib.texi: Note years as release manager for Mark Mitchell.
22368
e25a6711
TJ
223692013-01-02 Teresa Johnson <tejohnson@google.com>
22370
22371 * dumpfile.c (dump_loc): Print filename with location.
22372 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use
22373 new location_t parameter to emit complete unroll message with
22374 new dump framework.
22375 (canonicalize_loop_induction_variables): Compute loops location
22376 and pass to try_unroll_loop_completely.
22377 * loop-unroll.c (report_unroll_peel): New function.
22378 (peel_loops_completely): Use new dump format with location
22379 for main dumpfile message, and invoke report_unroll_peel on success.
22380 (decide_unrolling_and_peeling): Ditto.
22381 (decide_peel_once_rolling): Remove old dumpfile message subsumed
22382 by report_unroll_peel.
22383 (decide_peel_completely): Ditto.
22384 (decide_unroll_constant_iterations): Ditto.
22385 (decide_unroll_runtime_iterations): Ditto.
22386 (decide_peel_simple): Ditto.
22387 (decide_unroll_stupid): Ditto.
22388 * cfgloop.c (get_loop_location): New function.
22389 * cfgloop.h (get_loop_location): Declare.
22390
77878621
ST
223912013-01-02 Sriraman Tallam <tmsriram@google.com>
22392
22393 * config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for
22394 NULL.
22395
9e65d03e
JDA
223962013-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22397
22398 PR middle-end/55198
22399 * expr.c (expand_expr_real_1): Don't use bitfield extraction for non
22400 BLKmode objects when EXPAND_MEMORY is specified.
22401
6a7da30f
ST
224022013-01-02 Sriraman Tallam <tmsriram@google.com>
22403
22404 * config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug
22405 in loop predicate.
22406 (fold_builtin_cpu): Do not share cpu model decls across statements.
22407
e78167f2
JM
224082013-01-02 Jason Merrill <jason@redhat.com>
22409
22410 PR c++/55804
22411 * tree.c (build_array_type_1): Revert earlier change.
22412
8c075fb4
YZ
224132013-01-02 Yufeng Zhang <yufeng.zhang@arm.com>
22414
22415 * config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and
22416 "cortex-a57".
22417 * config/aarch64/aarch64-tune.md: Re-generate.
22418
0682ed3e
RB
224192013-01-02 Richard Biener <rguenther@suse.de>
22420
22421 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 22422 invariant load do not generate a vector load from the scalar location.
0682ed3e 22423
b8f6a302
RB
224242013-01-02 Richard Biener <rguenther@suse.de>
22425
22426 PR bootstrap/55784
22427 * configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS.
22428 * configure: Regenerate.
22429
04b80dbb
RS
224302013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
22431
22432 * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2)
22433 (expand_builtin_mathfn_ternary, expand_builtin_mathfn_3)
22434 (expand_builtin_int_roundingfn_2): Keep the original target around
22435 for the fallback case.
22436
635b0b0c
RS
224372013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
22438
22439 * tree-vrp.c (range_fits_type_p): Require the MSB of the double_int
22440 to be clear for sign changes.
22441
42d57399
JH
224422013-01-01 Jan Hubicka <jh@suse.cz>
22443
22444 * ipa-inline-analysis.c: Fix formatting.
22445
5bb6669d
JJ
224462013-01-01 Jakub Jelinek <jakub@redhat.com>
22447
22448 PR tree-optimization/55831
22449 * tree-vect-loop.c (get_initial_def_for_induction): Use
22450 gsi_after_labels instead of gsi_start_bb.
ad41bd84 22451\f
86a2db33 22452Copyright (C) 2013 Free Software Foundation, Inc.
ad41bd84
JM
22453
22454Copying and distribution of this file, with or without modification,
22455are permitted in any medium without royalty provided the copyright
22456notice and this notice are preserved.