]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
tree-flow.h (ssa_undefined_value_p): Remove prototype.
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
c152901f
AM
12013-09-17 Andrew MacLeod <amacleod@redhat.com>
2
3 * tree-flow.h (ssa_undefined_value_p): Remove prototype.
4 * tree-ssa.c (ssa_undefined_value_p): Move pass independent parts here.
5 (warn_uninit, warn_uninitialized_vars, execute_early_warn_uninitialized,
6 make_pass_early_warn_uninitialized): Move to tree-ssa-uninit.c.
7 * tree-ssa-uninit.c (ssa_undefined_value_p): Move to tree-ssa.c
8 (has_undefined_value_p): New. Pass dependant parts of
9 ssa_undefined_value_p.
10 (uninit_undefined_value_p): Use has_undefined_value_p.
11 (warn_uninit, warn_uninitialized_vars, execute_early_warn_uninitialized,
12 make_pass_early_warn_uninitialized): Move from tree-ssa.c
13 * tree-ssa.h: Adjust prototypes
14
5b79657a
JH
152013-09-17 Jan Hubicka <jh@suse.cz>
16
17 PR middle-end/58329
18 * ipa-devirt.c (ipa_devirt): Be ready for symtab_nonoverwritable_alias
19 to return NULL.
20 * ipa.c (function_and_variable_visibility): Likewise.
21 * ipa-profile.c (ipa_profile): Likewise.
22
27442c24
BE
232013-09-17 Bernd Edlinger <bernd.edlinger@hotmail.de>
24
25 PR ipa/58398
26 * cgraph.c (cgraph_function_body_availability): Check for ifunc
27 attribute, and don't inline the resolver in this case.
28
753b9bc3
TJ
292013-09-17 Teresa Johnson <tejohnson@google.com>
30
31 * coverage.c (get_coverage_counts): Add missing newline.
32
e3d3cfb4
KT
332013-09-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
34
35 PR tree-optimization/58088
36 * fold-const.c (mask_with_trailing_zeros): New function.
37 (fold_binary_loc): Make sure we don't recurse infinitely
38 when the X in (X & C1) | C2 is a tree of the form (Y * K1) & K2.
39 Use mask_with_trailing_zeros where appropriate.
40
9a0ac98f
YR
412013-09-17 Yuri Rumyantsev <ysrumyan@gmail.com>
42
43 * config/i386/i386.c (distance_agu_use_in_bb) : Proper initialization
44 of 'prev' var to get better distance estimation.
45
78bbd765
EB
462013-09-17 Eric Botcazou <ebotcazou@adacore.com>
47
48 * tree-inline.h (struct copy_body_data): Add transform_parameter.
49 * tree-inline.c (is_parameter_of): New predicate.
50 (remap_gimple_op_r): Do not propagate TREE_THIS_NOTRAP on MEM_REF if
51 a parameter has been remapped.
52 (copy_tree_body_r): Likewise on INDIRECT_REF and MEM_REF.
53 (optimize_inline_calls): Initialize transform_parameter.
54 (copy_gimple_seq_and_replace_locals): Likewise.
55 (tree_function_versioning): Likewise.
56 (maybe_inline_call_in_expr): Likewise.
57
cad055a4
NC
582013-09-17 Nick Clifton <nickc@redhat.com>
59
60 * config/msp430/msp430-protos.h: Add prototypes for new functions.
61 * config/msp430/msp430.c (msp430_preserve_reg_p): Add support for
62 interrupt handlers.
63 (is_attr_func): New function.
64 (msp430_is_interrupt_func): New function.
65 (is_naked_func): New function.
66 (is_reentrant_func): New function.
67 (is_critical_func): New function.
68 (msp430_start_function): Add annotations for function attributes.
69 (msp430_attr): New function.
70 (msp430_attribute_table): New.
71 (msp430_function_section): New function.
72 (TARGET_ASM_FUNCTION_SECTION): Define.
73 (msp430_builtin): New enum.
74 (msp430_init_builtins): New function.
75 (msp430_builtin_devl): New function.
76 (msp430_expand_builtin): New function.
77 (TARGET_INIT_BUILTINS): Define.
78 (TARGET_EXPAND_BUILTINS): Define.
79 (TARGET_BUILTIN_DECL): Define.
80 (msp430_expand_prologue): Add support for naked, interrupt,
81 critical and reentrant functions.
82 (msp430_expand_epilogue): Likewise.
83 (msp430_print_operand): Handle 'O' character.
84 * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Define
85 NO_TRAMPOLINES.
86 * config/msp430/msp430.md (unspec): Add UNS_DINT, UNS_EINT,
87 UNS_PUSH_INTR, UNS_POP_INTR, UNS_BIC_SR, UNS_BIS_SR.
88 (pushm): Use a 'n' rather than an 'i' constraint.
89 (msp_return): Add generation of the interrupt return instruction.
90 (disable_interrupts): New pattern.
91 (enable_interrupts): New pattern.
92 (push_intr_state): New pattern.
93 (pop_intr_state): New pattern.
94 (bic_SR): New pattern.
95 (bis_SR): New pattern.
96 * doc/extend.texi: Document MSP430 function attributes and builtin
97 functions.
98
deb6c11a
RB
992013-09-17 Richard Biener <rguenther@suse.de>
100
101 PR tree-optimization/58432
102 * tree-loop-distribution.c (tree_loop_distribution): Also
103 scan PHIs for outside loop uses and seed a partition from them.
104
c068654b
BC
1052013-09-17 Bin Cheng <bin.cheng@arm.com>
106
107 * gimple-ssa-strength-reduction.c (backtrace_base_for_ref): New.
108 (restructure_reference): Call backtrace_base_for_ref.
109
567969e4
AM
1102013-09-17 Alan Modra <amodra@gmail.com>
111
112 PR target/57589
113 * config/rs6000/driver-rs6000.c (elf_platform): Revert 2013-06-11 patch.
114
5c0029de
DD
1152013-09-16 DJ Delorie <dj@redhat.com>
116
117 * config/rl78/rl78.c (rl78_asm_file_start): Specify alternate
118 vregs location for RL78/G10.
119 (rl78_expand_prologue): Avoid SEL on G10.
120 (rl78_expand_epilogue): Likewise.
121 (rl78_peep_movhi_p): Can't move a constant to memory in HImode.
122 * config/rl78/rl78.h (TARGET_CPU_CPP_BUILTINS): Define
123 __RL78_G10__ when appropriate.
124 (ASM_SPEC): Pass -mg10 along to the assembler.
125 * config/rl78/rl78.md (sel_rb): Disable for G10.
126 * config/rl78/rl78.opt: Add -mg10 option.
127 * config/rl78/t-rl78: Add -mg10 multilib.
128
ea0f3e87
XDL
1292013-09-16 Xinliang David Li <davidxl@google.com>
130
131 * tree-if-conv.c (main_tree_if_conversion): Check new flag.
132 * omp-low.c (omp_max_vf): Ditto.
133 (expand_omp_simd): Ditto.
134 * tree-vectorizer.c (vectorize_loops): Ditto.
135 (gate_vect_slp): Ditto.
136 (gate_increase_alignment): Ditto.
137 * tree-ssa-pre.c (inhibit_phi_insertion): Ditto.
138 * tree-ssa-loop.c (gate_tree_vectorize): Ditto.
139 (gate_tree_vectorize): Name change.
140 (tree_vectorize): Ditto.
141 (pass_vectorize::gate): Call new function.
142 (pass_vectorize::execute): Ditto.
143 opts.c: O3 default setting change.
144 (finish_options): Check new flag.
145 * doc/invoke.texi: Document new flags.
146 * common.opt: New flags.
147
4f3da2e5
AS
1482013-09-16 Andreas Schwab <schwab@linux-m68k.org>
149
150 * doc/tm.texi.in (Cond Exec Macros): Remove node.
151 (Condition Code): Don't reference it.
152 * doc/tm.texi: Regenerate.
153
aa940f7c
VM
1542013-09-16 Vladimir Makarov <vmakarov@redhat.com>
155
156 PR middle-end/58418
157 * lra-constraints.c (undo_optional_reloads): Consider all optional
158 reload even if it did not get a hard reg.
159
e645e942
TJ
1602013-09-16 Teresa Johnson <tejohnson@google.com>
161
162 * dumpfile.c (dump_loc): Remove newline emission.
163 * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Add newline
164 emission to dump_printf_loc calls where missing.
165 (vect_mark_for_runtime_alias_test): Ditto.
166 (vect_analyze_data_ref_dependence): Ditto.
167 (vect_analyze_data_ref_dependences): Ditto.
168 (vect_slp_analyze_data_ref_dependence): Ditto.
169 (vect_slp_analyze_data_ref_dependences): Ditto.
170 (vect_compute_data_ref_alignment): Ditto.
171 (vect_update_misalignment_for_peel): Ditto.
172 (vect_verify_datarefs_alignment): Ditto.
173 (vector_alignment_reachable_p): Ditto.
174 (vect_get_data_access_cost): Ditto.
175 (vect_enhance_data_refs_alignment): Ditto.
176 (vect_find_same_alignment_drs): Ditto.
177 (vect_analyze_data_refs_alignment): Ditto.
178 (vect_analyze_group_access): Ditto.
179 (vect_analyze_data_ref_access): Ditto.
180 (vect_analyze_data_ref_accesses): Ditto.
181 (vect_prune_runtime_alias_test_list): Ditto.
182 (vect_analyze_data_refs): Ditto.
183 (vect_create_addr_base_for_vector_ref): Ditto.
184 (vect_create_data_ref_ptr): Ditto.
185 (vect_grouped_store_supported): Ditto.
186 (vect_grouped_load_supported): Ditto.
187 * value-prof.c (check_counter): Ditto.
188 (check_ic_target): Ditto.
189 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Ditto.
190 (vect_recog_widen_mult_pattern): Ditto.
191 (vect_recog_widen_sum_pattern): Ditto.
192 (vect_recog_over_widening_pattern): Ditto.
193 (vect_recog_widen_shift_pattern): Ditto.
194 (vect_recog_rotate_pattern): Ditto.
195 (vect_recog_vector_vector_shift_pattern): Ditto.
196 (vect_recog_divmod_pattern): Ditto.
197 (vect_recog_mixed_size_cond_pattern): Ditto.
198 (vect_recog_bool_pattern): Ditto.
199 (vect_pattern_recog_1): Ditto.
200 (vect_pattern_recog): Ditto.
201 * tree-vect-loop.c (vect_determine_vectorization_factor): Ditto.
202 (vect_is_simple_iv_evolution): Ditto.
203 (vect_analyze_scalar_cycles_1): Ditto.
204 (vect_get_loop_niters): Ditto.
205 (vect_analyze_loop_1): Ditto.
206 (vect_analyze_loop_form): Ditto.
207 (vect_analyze_loop_operations): Ditto.
208 (vect_analyze_loop_2): Ditto.
209 (vect_analyze_loop): Ditto.
210 (report_vect_op): Ditto.
211 (vect_is_slp_reduction): Ditto.
212 (vect_is_simple_reduction_1): Ditto.
213 (vect_get_known_peeling_cost): Ditto.
214 (vect_estimate_min_profitable_iters): Ditto.
215 (vect_model_reduction_cost): Ditto.
216 (vect_model_induction_cost): Ditto.
217 (get_initial_def_for_induction): Ditto.
218 (vect_create_epilog_for_reduction): Ditto.
219 (vectorizable_reduction): Ditto.
220 (vectorizable_induction): Ditto.
221 (vectorizable_live_operation): Ditto.
222 (vect_loop_kill_debug_uses): Ditto.
223 (vect_transform_loop): Ditto.
224 * tree-vect-stmts.c (vect_mark_relevant): Ditto.
225 (vect_stmt_relevant_p): Ditto.
226 (process_use): Ditto.
227 (vect_mark_stmts_to_be_vectorized): Ditto.
228 (vect_model_simple_cost): Ditto.
229 (vect_model_promotion_demotion_cost): Ditto.
230 (vect_model_store_cost): Ditto.
231 (vect_get_store_cost): Ditto.
232 (vect_model_load_cost): Ditto.
233 (vect_get_load_cost): Ditto.
234 (vect_init_vector_1): Ditto.
235 (vect_get_vec_def_for_operand): Ditto.
236 (vect_finish_stmt_generation): Ditto.
237 (vectorizable_call): Ditto.
238 (vectorizable_conversion): Ditto.
239 (vectorizable_assignment): Ditto.
240 (vectorizable_shift): Ditto.
241 (vectorizable_operation): Ditto.
242 (vectorizable_store): Ditto.
243 (vectorizable_load): Ditto.
244 (vectorizable_condition): Ditto.
245 (vect_analyze_stmt): Ditto.
246 (vect_transform_stmt): Ditto.
247 (vect_is_simple_use): Ditto.
248 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Ditto.
249 (vect_can_advance_ivs_p): Ditto.
250 (vect_update_ivs_after_vectorizer): Ditto.
251 (vect_do_peeling_for_loop_bound): Ditto.
252 (vect_gen_niters_for_prolog_loop): Ditto.
253 (vect_update_inits_of_drs): Ditto.
254 (vect_create_cond_for_alias_checks): Ditto.
255 * tree-vect-slp.c (vect_get_and_check_slp_defs): Ditto.
256 (vect_build_slp_tree_1): Ditto.
257 (vect_supported_load_permutation_p): Ditto.
258 (vect_analyze_slp_instance): Ditto.
259 (vect_analyze_slp): Ditto.
260 (vect_make_slp_decision): Ditto.
261 (vect_detect_hybrid_slp): Ditto.
262 (vect_bb_vectorization_profitable_p): Ditto.
263 (vect_slp_analyze_bb_1): Ditto.
264 (vect_update_slp_costs_according_to_vf): Ditto.
265 (vect_get_mask_element): Ditto.
266 (vect_transform_slp_perm_load): Ditto.
267 (vect_schedule_slp_instance): Ditto.
268 (vect_schedule_slp): Ditto.
269 (vect_slp_transform_bb): Ditto.
270 * profile.c (read_profile_edge_counts): Ditto.
271 (compute_branch_probabilities): Ditto.
272 * coverage.c (get_coverage_counts): Ditto.
273
46f851f3
DN
2742013-09-16 Diego Novillo <dnovillo@google.com>
275
276 * tree-core.h: Add missing comment lines from refactoring
277 of tree.h.
278
1632a686
JH
2792013-09-16 Jan Hubicka <jh@suse.cz>
280
281 * gimple-fold.c (can_refer_decl_in_current_unit_p): Do not accept
282 abstract functions; for static functions check the presence
283 of body.
284
828e70c1
JG
2852013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
286
287 * config/aarch64/aarch64-simd-builtins.def (fma): New.
288 * config/aarch64/aarch64-simd.md
289 (aarch64_mla_elt<mode>): New.
290 (aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
291 (aarch64_mls_elt<mode>): Likewise.
292 (aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
293 (aarch64_fma4_elt<mode>): Likewise.
294 (aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
295 (aarch64_fma4_elt_to_128v2df): Likewise.
296 (aarch64_fma4_elt_to_64df): Likewise.
297 (fnma<mode>4): Likewise.
298 (aarch64_fnma4_elt<mode>): Likewise.
299 (aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
300 (aarch64_fnma4_elt_to_128v2df): Likewise.
301 (aarch64_fnma4_elt_to_64df): Likewise.
302 * config/aarch64/iterators.md (VDQSF): New.
303 * config/aarch64/arm_neon.h
304 (vfm<as><sdq>_lane<q>_f<32, 64>): Convert to C implementation.
305 (vml<sa><q>_lane<q>_<fsu><16, 32, 64>): Likewise.
306
779aea46
JG
3072013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
308
309 * config/aarch64/aarch64-simd.md (aarch64_mul3_elt<mode>): New.
310 (aarch64_mul3_elt_<vswap_width_name><mode>): Likewise.
311 (aarch64_mul3_elt_to_128df): Likewise.
312 (aarch64_mul3_elt_to_64v2df): Likewise.
313 * config/aarch64/iterators.md (VEL): Also handle DFmode.
314 (VMUL): New.
315 (VMUL_CHANGE_NLANES) Likewise.
316 (h_con): Likewise.
317 (f): Likewise.
318 * config/aarch64/arm_neon.h
319 (vmul<q>_lane<q>_<suf><16,32,64>): Convert to C implementation.
320
a407a750
JG
3212013-09-16 James Greenhalgh <james.greenhalgh@arm.com>
322
323 * config/aarch64/arm_neon.h
324 (vcvtx_high_f32_f64): Fix parameters.
325
f77e2d2d 3262013-09-16 Jan-Benedict Glaw <jbglaw@lug-owl.de>
a5bd71fa 327 Uros Bizjak <ubizjak@gmail.com>
f77e2d2d 328
a5bd71fa 329 * config/alpha.c: Include tree-ssanames.h.
f77e2d2d 330
36875e8f
RB
3312013-09-16 Richard Biener <rguenther@suse.de>
332
333 * tree-loop-distribution.c (enum rdg_dep_type): Add control_dd.
334 (dot_rdg_1): Handle control_dd.
335 (create_edge_for_control_dependence): New function.
336 (create_rdg_edges): Add control dependences if asked for.
337 (build_rdg): Likewise.
338 (generate_loops_for_partition): If there are not necessary
339 control stmts remove all their dependencies.
340 (collect_condition_stmts, rdg_flag_loop_exits): Remove.
341 (distribute_loop): Pass on control dependences.
342 (tree_loop_distribution): Compute control dependences and remove
343 restriction on number of loop nodes.
344
96e24d49
JJ
3452013-09-16 Jakub Jelinek <jakub@redhat.com>
346
347 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Return early
348 for internal calls.
349
40dbb05c
RS
3502013-09-16 Richard Sandiford <rdsandiford@googlemail.com>
351
352 * cse.c (try_const_anchors): Punt on CC modes.
353
97191ad0
JBG
3542013-09-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
355
356 * config/vax/constraints.md (T): Add missing CONSTANT_P check.
357
403a3fb7
JDA
3582013-09-14 John David Anglin <danglin@gcc.gnu.org>
359
360 PR target/58382
361 * config/pa/pa.c (pa_expand_prologue): Change mode in gen_rtx_POST_INC
362 calls to word_mode.
363
fb5610fb
IS
3642013-09-14 Iain Sandoe <iain@codesourcery.com>
365
366 PR target/48094
367 * config/darwin.c (darwin_objc2_section): Note if ObjC Metadata is
f77e2d2d
JBG
368 seen.
369 (darwin_objc1_section): Likewise.
fb5610fb
IS
370 (darwin_file_end): Emit Image Info section when required.
371
afdec9bd
JH
3722013-09-14 Jan Hubicka <jh@suse.cz>
373
374 * tree-into-ssa.c (gate_into_ssa): New.
375 (pass_data_build_ssa): Use it.
376 * cgraph.h (expand_thunk): Update prototype.
377 * cgraphunit.c (analyze_function): Expand thunks early.
378 (expand_thunk): Fix DECL_CONTEXT of reust_decl;
379 build proper cgraph; set in_ssa_p; clear bogus TREE_ASM_WRITTEN;
380 set lowered flag; do not add new function.
381 (assemble_thunks_and_aliases): Update.
382 * tree-ssa.c (gate_init_datastructures): New gate.
383 (pass_data_init_datastructures): Use it.
384
492d1e0a
IS
3852013-09-14 Iain Sandoe <iain@codesourcery.com>
386
387 PR target/58269
f77e2d2d 388 * config/i386/i386.c (ix86_function_arg_regno_p): Make Darwin use the
492d1e0a
IS
389 xmm register set described in the psABI.
390
d13c6b70
EG
3912013-09-13 Evgeny Gavrin <e.gavrin@samsung.com>
392
f77e2d2d
JBG
393 * dwarf2out.c (should_emit_struct_debug): Add check
394 for type_decl variable is not NULL.
d13c6b70 395
88b0e79e
JC
3962013-09-13 Jacek Caban <jacek@codeweavers.com>
397
398 * config.gcc: Use new winnt-c.c target hooks
399 * config/t-winnt: New file
400 * config/winnt-c.c: New file
401 * doc/tm.texi.in: Document new hook
402 * doc/tm.texi: Regenerated
403
19ba6aab
JH
4042013-09-13 Jan Hubicka <jh@suse.cz>
405
406 PR middle-end/58094
407 * ipa-inline.c (check_callers): New function.
408 (check_caller_edge): Remove.
409 (want_inline_function_to_all_callers_p): Also permit alises that are
410 called dirrectly.
411 (inline_to_all_callers): Terminate the walk when devirtualization
412 introduce new calls.
413
a93c18c8
JH
4142013-09-13 Jan Hubicka <jh@suse.cz>
415
416 * ipa-inline-analysis.c (struct growth_data): Add node.
417 (do_estimate_growth_1): Fix detection of recursion.
418
f3b331d1
JJ
4192013-09-13 Jakub Jelinek <jakub@redhat.com>
420
421 PR tree-optimization/58392
422 * tree-cfg.c (move_sese_region_to_fn): Rename loop variable
423 to avoid shadowing of outer loop variable. If
424 saved_cfun->has_simduid_loops or saved_cfun->has_force_vect_loops,
425 replace_by_duplicate_decl simduid of loops that have it set and
426 set dest_cfun->has_simduid_loops and/or
427 dest_cfun->has_force_vect_loops.
428 * omp-low.c (build_outer_var_ref): Call maybe_lookup_decl_in_outer_ctx
429 instead of maybe_lookup_decl.
430 * tree-inline.c (copy_loops): Change blocks_to_copy argument to id.
431 Use id->blocks_to_copy instead of blocks_to_copy. Adjust recursive
432 call. Copy over force_vect and copy and remap simduid. Set
433 cfun->has_simduid_loops and/or cfun->has_force_vect_loops.
434 (copy_cfg_body): Remove blocks_to_copy argument. Use
435 id->blocks_to_copy instead of blocks_to_copy. Adjust copy_loops
436 caller. Don't set cfun->has_simduid_loops and/or
437 cfun->has_force_vect_loops here.
438 (copy_body): Remove blocks_to_copy argument. Adjust copy_cfg_body
439 caller.
440 (expand_call_inline, tree_function_versioning): Adjust copy_body
441 callers.
442
ae6d0907
MJ
4432013-09-13 Martin Jambor <mjambor@suse.cz>
444
445 PR bootstrap/58388
446 * ipa-prop.c (try_make_edge_direct_simple_call): Be less strict in
447 the assert if the edge was a speculative one.
448
2fd5894f
RB
4492013-09-13 Richard Biener <rguenther@suse.de>
450
451 * tree-data-ref.h (known_dependences_p): Move here ...
452 * tree-loop-distribution.c (known_dependences_p): ... from here.
453 (dump_rdg_component, debug_rdg_component): Remove.
454 (dump_rdg): Adjust.
455 (generate_loops_for_partition): Use gimple_uid instead of
456 relying on matching stmt visit order.
457 (rdg_build_partitions): Take starting stmt vector.
458 (ldist_gen): Merge into ...
459 (distribute_loop): ... this function. Do not compute starting
460 vertices vector.
461 * tree-cfg.c (gimple_duplicate_bb): Copy UID for PHIs.
462
86eb4bd7
KT
4632013-09-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
464
465 * config/arm/arm.md (arm_cmpsi_insn): Split rI alternative.
466 Set type attribute correctly. Set predicable_short_it attribute.
467 (cmpsi_shiftsi): Remove %? from output template.
468
83a95546
RB
4692013-09-13 Richard Biener <rguenther@suse.de>
470
471 * tree-loop-distribution.c (struct rdg_component,
472 rdg_defs_used_in_other_loops_p, free_rdg_components,
473 rdg_build_components): Remove.
474 (stmts_from_loop): Do not record virtual PHIs.
475 (generate_loops_for_partition): Skip virtual PHIs.
476 (build_rdg_partition_for_component): Rename to ...
477 (build_rdg_partition_for_vertex): ... this and adjust.
478 (rdg_build_partitions): Take a vector of starting vertices
479 instead of components. Remove unnecessary leftover handling.
480 (ldist_gen): Do not build components or record other stores.
481 (distribute_loop): Do not distribute loops containing stmts
482 with side-effects.
483
c0ecf7f1
CB
4842013-09-13 Christian Bruel <christian.bruel@st.com>
485
486 PR target/58314
487 * config/sh/sh.md (mov<mode>_reg_reg): Allow memory reloads.
488
34f56efc
KT
4892013-09-13 Kai Tietz <ktietz@redhat.com>
490
740f2bf3
KT
491 * config.gcc: Separate cases for mingw and cygwin targets,
492 and add 64-bit cygwin target case.
493
34f56efc
KT
494 * config/i386/winnt-cxx.c (i386_pe_type_dllexport_p): Don't
495 dll-export inline-functions.
496 * config/i386/winnt.c (i386_pe_determine_dllexport_p): Likewise.
497
498
4992013-09-13 Jeff Law <law@redhat.com>
823b5d6b
JL
500
501 PR middle-end/58387
502 Revert:
503 2013-09-06 Jeff Law <law@redhat.com>
504
505 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
506 edge implied equivalences into successor phis.
507
aadb52ad
DD
5082013-09-12 DJ Delorie <dj@redhat.com>
509
510 * config/rl78/rl78-virt.md: Change from | to \; for asm line
511 separators.
512
90ae7019
BM
5132013-09-12 Brooks Moses <bmoses@google.com>
514
515 PR driver/42955
516 * Makefile.in: Do not install driver binaries in $(target)/bin.
517
17b2557c
DD
5182013-09-12 DJ Delorie <dj@redhat.com>
519
c5215a9b
DD
520 * config/rl78/rl78.opt (mrelax): New.
521 * config/rl78/rl78.h (ASM_SPEC): New, pass on -mrelax to gas.
522 * config/rl78/rl78.h (LINK_SPEC): New, pass on -mrelax to ld.
523
17b2557c
DD
524 * config/rl78/rl78.c (rl78_expand_prologue): Use AX to copy
525 between SP and FP.
526 (rl78_expand_epilogue): Likewise.
527
ecafcf05
VM
5282013-09-12 Vladimir Makarov <vmakarov@redhat.com>
529
530 PR middle-end/58335
84f6d9fa 531 * lra-eliminations.c (remove_reg_equal_offset_note): New.
ecafcf05
VM
532 (eliminate_regs_in_insn): Rewrite frame pointer to hard frame
533 pointer elimination with using remove_reg_equal_offset_note.
534
8369f38a
DD
5352013-09-12 DJ Delorie <dj@redhat.com>
536
f6a83b4a
DD
537 * config/msp430/: New port.
538 * config.gcc (msp430): Added.
539 * doc/invoke.texi: Document MSP430 options.
540 * doc/install.texi: Document msp430-elf
541 * doc/md.texi: Document msp430-elf
542 * doc/contrib.texi: Document msp430-elf
543
8369f38a
DD
544 * cfgexpand.c (expand_debug_expr): Avoid sign-extending SImode to
545 PSImode.
546
a854f856
MJ
5472013-09-12 Martin Jambor <mjambor@suse.cz>
548
549 PR ipa/58389
550 * ipa-prop.c (remove_described_reference): Give up if the edge in the
551 reference descriptor is NULL.
552 (ipa_edge_removal_hook): If owning a reference descriptor, set its
553 edge to NULL.
554
b12ebd96
AM
5552013-09-12 Andrew MacLeod <amacleod@redhat.com>
556
557 * tree-flow.h (FREE_SSANAMES): Move to tree-ssanames.c
558 (SSANAMES, MODIFIED_NORETURN_CALLS, DEFAULT_DEFS, ptr_info_def,
559 num_ssa_names, ssa_name): Move to tree-ssanames.h + prototypes.
560 * tree-flow-inline.h (make_ssa_name, copy_ssa_name, duplicate_ssa_name,
561 make_temp_ssa_name): move to tree-ssanames.h
562 * tree-ssa-alias.h: Move prototype.
563 * tree-ssa.h: Include tree-ssanames.h.
564 * tree-ssanames.c (FREE_SSANAMES): Move to here.
565 * tree-ssanames.h: New. Move items from tree-flow*.h
566 * Makefile.in (tree-ssanames.h): Add to tree-ssanames.o and GTFILES.
567
e1fb4ad3
RB
5682013-09-12 Richard Biener <rguenther@suse.de>
569
570 PR tree-optimization/58404
571 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also
572 propagate non-invariant addresses into dereferences wrapped
573 in component references.
574
154c9188
RB
5752013-09-12 Richard Biener <rguenther@suse.de>
576
577 PR tree-optimization/58402
578 * passes.def: Move pass_late_warn_uninitialized later.
579
7a300452
AM
5802013-09-12 Andrew MacLeod <amacleod@redhat.com>
581
582 * tree-ssa.h: New. Move content from tree-flow.h and
583 tree-flow-inline.h.
584 * tree-flow.h (_edge_var_map, edge_var_map_vector): Move to tree-ssa.h.
585 Move prototypes belonging to tree-ssa.c.
f77e2d2d 586 * tree-flow-inline.h (redirect_edge_var_map_def,
7a300452
AM
587 redirect_edge_var_map_result, redirect_edge_var_map_location): Move to
588 tree-ssa.h.
589 * gimple.h: Adjust prototypes.
f77e2d2d
JBG
590 * tree-ssa.c (useless_type_conversion_p, types_compatible_p): Move
591 to...
592 * gimple.c (useless_type_conversion_p, types_compatible_p): Here.
7a300452
AM
593 * tree.h: Move prototype to tree-ssa.h.
594 * gengtype.c (open_base_files): Replace tree-flow.h with tree-ssa.h.
595 * Makefile.in: (TREE_SSA_H, TREE_FLOW_H): Adjust dependencies.
596 * alias.c, asan.c, builtins.c, calls.c, cfgexpand.c, cfghooks.c,
597 cfgloop.c, cfgloopmanip.c, cgraph.c, cgraphbuild.c, cgraphclones.c,
598 cgraphunit.c, dse.c, except.c, expr.c, final.c, fold-const.c,
599 ggc-page.c, gimple-fold.c, gimple-iterator.c, gimple-low.c,
600 gimple-pretty-print.c, gimple-ssa-strength-reduction.c,
601 gimple-streamer-in.c, gimple-streamer-out.c, gimple.c, gimplify.c,
f77e2d2d
JBG
602 graphite-blocking.c, graphite-clast-to-gimple.c,
603 graphite-dependences.c, graphite-interchange.c,
604 graphite-optimize-isl.c, graphite-poly.c, graphite-scop-detection.c,
605 graphite-sese-to-poly.c, graphite.c, ipa-cp.c, ipa-inline-analysis.c,
606 ipa-inline-transform.c, ipa-inline.c, ipa-prop.c, ipa-pure-const.c,
607 ipa-reference.c, ipa-split.c, ipa-utils.c,
7a300452
AM
608 loop-init.c, lto-cgraph.c, lto-section-in.c, lto-section-out.c,
609 lto-streamer-in.c, lto-streamer-out.c, lto-streamer.c, omp-low.c,
610 passes.c, predict.c, print-tree.c, profile.c, sese.c, targhooks.c,
611 tracer.c, trans-mem.c, tree-call-cdce.c, tree-cfg.c, tree-cfgcleanup.c,
612 tree-chrec.c, tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
613 tree-emutls.c, tree-if-conv.c, tree-inline.c, tree-into-ssa.c,
614 tree-loop-distribution.c, tree-mudflap.c, tree-nested.c, tree-nrv.c,
615 tree-object-size.c, tree-optimize.c, tree-outof-ssa.c, tree-parloops.c,
616 tree-phinodes.c, tree-predcom.c, tree-pretty-print.c, tree-profile.c,
617 tree-scalar-evolution.c, tree-sra.c, tree-ssa*.c, tree-stdarg.c,
618 tree-streamer-in.c, tree-switch-conversion.c, tree-tailcall.c,
619 tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
620 tree-vect-loop.c, tree-vect-patterns.c, tree-vect-slp.c,
621 tree-vect-stmts.c, tree-vectorizer.c, tree-vrp.c, tsan.c,
622 value-prof.c, var-tracking.c,
623 varpool.c, vtable-verify.c: Replace tree-flow.h with tree-ssa.h
624
97463b2b
RB
6252013-09-12 Richard Biener <rguenther@suse.de>
626
627 PR tree-optimization/58396
628 * tree-loop-distribution.c (create_rdg_edges): Free unused DDRs.
629 (build_rdg): Take a loop-nest parameter, fix memleaks.
630 (distribute_loop): Compute loop-nest here and pass it to build_rdg.
631
80ecd89d
YR
6322013-09-12 Yuri Rumyantsev <ysrumyan@gmail.com>
633
634 * config/i386/x86-tune.def: Turn on X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE
635 for SLM.
636
893e85fa
CM
6372013-09-12 Cameron McInally <cameron.mcinally@nyu.edu>
638
639 * doc/extend.texi: Fix errors in x86 FMA builtin naming.
640 The FMA instruction names should have a 'v' prefix.
641
174ec470
RB
6422013-09-12 Richard Biener <rguenther@suse.de>
643
644 * tree-loop-distribution.c (dot_rdg_1): Make graph prettier.
645 (dot_rdg): Use popen instead of system in optional code.
646 (remaining_stmts, upstream_mem_writes): Remove global bitmaps.
647 (already_processed_vertex_p): Adjust.
648 (has_anti_or_output_dependence, predecessor_has_mem_write,
649 mark_nodes_having_upstream_mem_writes, has_upstream_mem_writes,
650 rdg_flag_uses): Remove.
651 (rdg_flag_vertex): Simplify.
652 (rdg_flag_vertex_and_dependent): Rely on a correct RDG and
653 remove recursion.
654 (build_rdg_partition_for_component): Process the first vertex
655 of a component only.
656 (ldist_gen): Do not compute remaining_stmts or upstream_mem_writes.
657
38c89763
AM
6582013-09-12 Alan Modra <amodra@gmail.com>
659
660 * config/rs6000/rs6000.c (toc_relative_expr_p): Use add_cint_operand.
661
3e3d9d17
DD
6622013-09-11 DJ Delorie <dj@redhat.com>
663 Nick Clifton <nickc@redhat.com>
664
665 * config/rl78/predicates.md (rl78_cmp_operator_signed): New.
666 (rl78_stack_based_mem): New.
667 * config/rl78/constraints.md (Iv08): New.
668 (Iv16): New.
669 (Iv24): New.
670 (Is09): New.
671 (Is17): New.
672 (Is25): New.
673 (ISsi): New.
674 (IShi): New.
675 (ISqi): New.
676 * config/rl78/rl78-expand.md (movqi): Reject more SUBREG operands.
677 (movhi): Likewise.
678 (movsi): Change from expand to insn-and-split.
679 (ashrsi3): Clobber AX.
680 (lshrsi3): New.
681 (ashlsi3): New.
682 (cbranchsi4): New.
683 * config/rl78/rl78.md (CC_REG): Fix.
684 (addsi3): Allow memory and immediate operands.
685 (addsi3_internal): Split into...
686 (addsi3_internal_virt): ...new, and ...
687 (addsi3_internal_real): ...new.
688 (subsi): New.
689 (subsi3_internal_virt): New.
690 (subsi3_internal_real): New.
691 (mulsi3): Add memory operand.
692 (mulsi3_rl78): Likewise.
693 (mulsi3_g13): Likewise.
694 * config/rl78/rl78-real.md (cbranchqi4_real_signed): New.
695 (cbranchqi4_real): Add more constraint options.
696 (cbranchhi4_real): Expand pattern.
697 (cbranchhi4_real_signed): New.
698 (cbranchhi4_real_inverted): New.
699 (cbranchsi4_real_lt): New.
700 (cbranchsi4_real_ge): New.
701 (cbranchsi4_real_signed): New.
702 (cbranchsi4_real): New.
703 (peephole2): New.
893e85fa
CM
704 * config/rl78/rl78-virt.md (ashrsi3_virt): Add custom cases for
705 constant shifts.
3e3d9d17
DD
706 (lshrsi3_virt): Likewise.
707 (ashlsi3_virt): Likewise.
708 (cbranchqi4_virt_signed): New.
709 (cbranchhi4_virt_signed): New.
710 (cbranchsi4_virt): New.
711 * config/rl78/rl78.c: Whitespace fixes throughout.
712 (move_elim_pass): New.
713 (pass_data_rl78_move_elim): New.
714 (pass_rl78_move_elim): New.
715 (make_pass_rl78_move_elim): New.
716 (rl78_devirt_info): Run devirt earlier.
717 (rl78_move_elim_info): New.
718 (rl78_asm_file_start): Register it.
719 (rl78_split_movsi): New.
720 (rl78_as_legitimate_address): Allow virtual base registers when
721 appropriate.
722 (rl78_addr_space_convert): Remove spurious debug stuff.
723 (rl78_print_operand_1): Add z,s,S,r,E modifiers.
724 (rl78_print_operand): More cases for not printing '#'.
725 (rl78_expand_compare): Remove most of the logic.
726 (content_memory): New.
727 (clear_content_memory): New.
728 (get_content_index): New.
729 (get_content_name): New.
730 (display_content_memory): New.
731 (update_content): New.
732 (record_content): New.
733 (already_contains): New.
734 (insn_ok_now): Re-recog insns with virtual registers.
735 (add_postponed_content_update): New.
736 (process_postponed_content_update): New.
737 (gen_and_emit_move): New.
893e85fa
CM
738 (transcode_memory_rtx): Record new location content.
739 Use gen_and_emit_move.
3e3d9d17
DD
740 (force_into_acc): New.
741 (move_to_acc): Use gen_and_emit_move.
742 (move_from_acc): Likewise.
743 (move_acc_to_reg): Likewise.
744 (move_to_x): Likewise.
745 (move_to_hl): Likewise.
746 (move_to_de): Likewise.
747 (rl78_alloc_physical_registers_op1): Record location content.
748 (has_constraint): New.
749 (rl78_alloc_physical_registers_op2): Record location content.
750 Optimize use of HL.
751 (rl78_alloc_physical_registers_ro1): Likewise.
752 (rl78_alloc_physical_registers_cmp): Likewise.
753 (rl78_alloc_physical_registers_umul): Likewise.
754 (rl78_alloc_address_registers_macax): New.
755 (rl78_alloc_physical_registers): Initialize and set location
756 content memory as needed.
757 (rl78_reorg): Make sure split2 is called.
758 (rl78_rtx_costs): New.
759
088845a5
RS
7602013-09-11 Richard Sandiford <rdsandiford@googlemail.com>
761
762 * simplify-rtx.c (simplify_unary_operation_1): Use simplify_gen_binary
763 for (not (neg ...)) and (neg (not ...)) cases.
764
5c2961cf
RB
7652013-09-11 Richard Biener <rguenther@suse.de>
766
767 PR middle-end/58377
768 * passes.def: Split critical edges before late uninit warning passes.
769 * tree-cfg.c (pass_split_crit_edges): Implement clone method.
770
427e6a14
JJ
7712013-09-11 Jakub Jelinek <jakub@redhat.com>
772
773 PR tree-optimization/58385
774 * fold-const.c (build_range_check): If both low and high are NULL,
775 use omit_one_operand_loc to preserve exp side-effects.
776
df45c0cc
KT
7772013-09-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
778
779 * config/arm/arm.md (arm_shiftsi3): New alternative l/l/M.
780
80ab0b19
RB
7812013-09-11 Richard Biener <rguenther@suse.de>
782
783 * tree-data-ref.c (dump_rdg_vertex, debug_rdg_vertex,
784 dump_rdg_component, debug_rdg_component, dump_rdg, debug_rdg,
785 dot_rdg_1, dot_rdg, rdg_vertex_for_stmt, create_rdg_edge_for_ddr,
786 create_rdg_edges_for_scalar, create_rdg_edges, create_rdg_vertices,
787 stmts_from_loop, known_dependences_p, build_empty_rdg,
788 build_rdg, free_rdg, rdg_defs_used_in_other_loops_p): Move ...
789 * tree-loop-distribution.c: ... here.
790 * tree-data-ref.h (struct rdg_vertex, RDGV_STMT, RDGV_DATAREFS,
791 RDGV_HAS_MEM_WRITE, RDGV_HAS_MEM_READS, RDG_STMT, RDG_DATAREFS,
792 RDG_MEM_WRITE_STMT, RDG_MEM_READS_STMT, enum rdg_dep_type,
793 struct rdg_edge, RDGE_TYPE, RDGE_LEVEL, RDGE_RELATION): Move ...
794 * tree-loop-distribution.c: ... here.
795 * tree-loop-distribution.c: Include gimple-pretty-print.h.
796 (struct partition_s): Add loops member.
797 (partition_alloc, partition_free, rdg_flag_uses, rdg_flag_vertex,
798 rdg_flag_vertex_and_dependent, rdg_flag_loop_exits,
799 build_rdg_partition_for_component, rdg_build_partitions): Adjust.
800
85a77221
AI
8012013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
802 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
803 Sergey Lega <sergey.s.lega@intel.com>
804 Anna Tikhonova <anna.tikhonova@intel.com>
805 Ilya Tocar <ilya.tocar@intel.com>
806 Andrey Turetskiy <andrey.turetskiy@intel.com>
807 Ilya Verbin <ilya.verbin@intel.com>
808 Kirill Yukhin <kirill.yukhin@intel.com>
809 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
810
811 * config/i386/constraints.md (k): New.
812 (Yk): Ditto.
813 * config/i386/i386.c (const regclass_map): Add new mask registers.
814 (dbx_register_map): Ditto.
815 (dbx64_register_map): Ditto.
816 (svr4_dbx_register_map): Ditto.
817 (ix86_conditional_register_usage): Squash mask registers if AVX512F is
818 disabled.
819 (ix86_preferred_reload_class): Disable constants for mask registers.
820 (ix86_secondary_reload): Do spill of mask register using 32-bit insn.
821 (ix86_hard_regno_mode_ok): Support new mask registers.
822 (x86_order_regs_for_local_alloc): Ditto.
823 * config/i386/i386.h (FIRST_PSEUDO_REGISTER): Update.
824 (FIXED_REGISTERS): Add new mask registers.
825 (CALL_USED_REGISTERS): Ditto.
826 (REG_ALLOC_ORDER): Ditto.
827 (VALID_MASK_REG_MODE): New.
828 (FIRST_MASK_REG): Ditto.
829 (LAST_MASK_REG): Ditto.
830 (reg_class): Add MASK_EVEX_REGS, MASK_REGS.
831 (MAYBE_MASK_CLASS_P): New.
832 (REG_CLASS_NAMES): Add MASK_EVEX_REGS, MASK_REGS.
833 (REG_CLASS_CONTENTS): Ditto.
834 (MASK_REGNO_P): New.
835 (ANY_MASK_REG_P): Ditto.
836 (HI_REGISTER_NAMES): Add new mask registers.
893e85fa
CM
837 * config/i386/i386.md (MASK0_REG, MASK1_REG, MASK2_REG, MASK3_REG,
838 MASK4_REG, MASK5_REG, MASK6_REG, MASK7_REG): Constants for new
839 mask registers.
85a77221
AI
840 (attribute "type"): Add mskmov, msklog.
841 (attribute "length_immediate"): Support them.
842 (attribute "memory"): Ditto.
843 (attribute "prefix_0f"): Ditto.
844 (*movhi_internal): Support new mask registers.
845 (*movqi_internal): Ditto.
846 (define_split): Split out clobber pattern is a logic
847 insn on mask registers.
848 (*k<logic><mode>): New.
849 (*andhi_1): Extend to support mask regs.
850 (*andqi_1): Extend to support mask regs.
851 (kandn<mode>): New.
852 (define_split): Split and-not to and and not if operands
853 are not mask regs.
854 (*<code><mode>_1): Separate HI mode to new pattern...
855 (*<code>hi_1): This.
856 (*<code>qi_1): Extend to support mask regs.
857 (kxnor<mode>): New.
858 (kortestzhi): Ditto.
859 (kortestchi): Ditto.
860 (kunpckhi): Ditto.
861 (*one_cmpl<mode>2_1): Remove HImode and handle it...
862 (*one_cmplhi2_1): ...Here, now with mask registers support.
863 (*one_cmplqi2_1): Support new mask registers.
893e85fa
CM
864 (HI/QImode arithmetics splitter): Don't split if mask registers
865 are used.
85a77221
AI
866 (HI/QImode not splitter): Ditto.
867 * config/i386/predicated.md (mask_reg_operand): New.
868 (general_reg_operand): Ditto.
869
7e570821
AI
8702013-09-11 Alexander Ivchenko <alexander.ivchenko@intel.com>
871
872 * doc/invoke.texi: Document fxsr, xsave and xsaveopt options.
873 * doc/extend.texi: Document fxsr, xsave and xsaveopt builtins.
874
9e1376e9
JL
8752013-09-10 Jeff Law <law@redhat.com>
876
877 PR tree-optimization/58380
878 * tree-ssa-threadupdate.c (thread_block): Recognize another case
879 of threading through a buried loop header.
880
881 * tree-ssa-threadedge.c (thread_around_empty_blocks): Correct
882 return value for single successor case.
883
5bbcb888
JH
8842013-09-10 Jan Hubicka <jh@suse.cz>
885
886 * ipa-devirt.c (ipa_devirt): Enable with LTO.
887
d742ff4b
RE
8882013-09-10 Richard Earnshaw <rearnsha@arm.com>
889
890 PR target/58361
891 * arm/vfp.md (combine_vcvt_f32_<FCVTI32typename>): Fix pattern to
892 support conditional execution.
893 (combine_vcvt_f64_<FCVTI32typename>): Likewise.
894
b0681c9e
VM
8952013-09-10 Vladimir Makarov <vmakarov@redhat.com>
896
897 * lra.c (lra): Clear lra_optional_reload_pseudos before every
898 constraint pass.
f77e2d2d
JBG
899 * lra-constraints.c (curr_insn_transform): Switch on optional reloads.
900 Check destination too to check move insn.
b0681c9e 901 (undo_optional_reloads): Add check that the original peudo did not
f77e2d2d
JBG
902 changed its allocation and the optional reload was inherited on last
903 inheritance pass. Break loop after deciding to keep optional reload.
b0681c9e
VM
904 (lra_undo_inheritance): Add check that inherited pseudo still in
905 memory.
906
c9b1c957
JG
9072013-09-10 James Greenhalgh <james.greenhalgh@arm.com>
908
909 * config/aarch64/aarch64.md (generic_sched): New.
910 * config/aarch64/aarch64-generic.md (load): Make conditional
911 on generic_sched attribute.
912 (nonload): Likewise.
913
82d618d3
JH
9142013-09-10 Jan Hubicka <jh@suse.cz>
915
916 * lto-cgraph.c: Include ipa-utils.h.
917 (compute_ltrans_boundary): Also add possible targets into the boundary.
918
668b6894
JH
9192013-09-10 Jan Hubicka <jh@suse.cz>
920
921 * gimple-fold.c (gimple_get_virt_method_for_binfo): Pass real
922 VAR_DECL of vtable rather than full expression.
923
4f90d3e0
JH
9242013-09-10 Jan Hubicka <jh@suse.cz>
925 Paolo Carlini <paolo.carlini@oracle.com>
926
927 * cgraphunit.c (analyze_functions): Save input_location, set it
928 to UNKNOWN_LOCATION and restore it at the end.
929
39e87baf
MJ
9302013-09-10 Martin Jambor <mjambor@suse.cz>
931
932 * ipa-cp.c (propagate_constants_topo): Do not ignore SCC
933 represented by a thunk.
934
581aedec
JL
9352013-09-10 Jeff Law <law@redhat.com>
936
937 PR tree-optimization/58343
938 * tree-ssa-threadupdate.c (thread_block): Identify and disable
939 jump threading requests through loop headers buried in the middle
940 of a jump threading path.
941
942 * tree-ssa-threadedge.c (thread_around_empty_blocks): Fix thinko
943 in return value/type.
944
84cf4ab6
JJ
9452013-09-10 Jakub Jelinek <jakub@redhat.com>
946
947 PR rtl-optimization/58365
948 * cfgcleanup.c (merge_memattrs): Also clear MEM_READONLY_P
949 resp. MEM_NOTRAP_P if they differ, or set MEM_VOLATILE_P if
950 it differs.
951
447dd906
RB
9522013-09-10 Richard Biener <rguenther@suse.de>
953
954 * tree-data-ref.h (build_rdg): Drop all parameters but loop.
955 * tree-data-ref.c (create_rdg_vertices): Collect all data
956 references, signal failure to the caller, use data-ref API.
893e85fa
CM
957 (build_rdg): Compute data references only once. Maintain lifetime
958 of data references and data dependences from within RDG.
447dd906
RB
959 (free_rdg): Free dependence relations.
960 * tree-loop-distribution.c (rdg_flag_uses): Drop weird code
961 inventing extra dependences.
962 (distribute_loop): Update for RDG API changes.
963
f14a7324
KT
9642013-09-10 Kai Tietz <ktietz@redhat.com>
965
966 * doc/invoke.texi (fms-extensions): Document changed
967 behavior for ms-abi targets.
968 * config/i386/i386.c (ix86_option_override_internal):
969 Set default value of option -fms-extension for ms-abi targets.
970
ff131f26
MZ
9712013-09-10 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
972
973 * config/i386/i386.c (ix86_expand_movmem): Fix epilogue generation.
974
33115a2c
AM
9752013-09-10 Alan Modra <amodra@gmail.com>
976
977 PR target/58330
978 * config/rs6000/rs6000.md (bswapdi2_64bit): Disable for volatile mems.
979
b6872a13
AM
9802013-09-10 Alan Modra <amodra@gmail.com>
981
982 * config/rs6000/predicates.md (add_cint_operand): New.
983 (reg_or_add_cint_operand, small_toc_ref): Use add_cint_operand.
984 * config/rs6000/rs6000.md (largetoc_high_plus): Restrict offset
985 using add_cint_operand.
986 (largetoc_high_plus_aix): Likewise.
987
28fd0ba2
JJ
9882013-09-09 Jakub Jelinek <jakub@redhat.com>
989
990 PR tree-optimization/58364
991 * tree-ssa-reassoc.c (init_range_entry): For BIT_NOT_EXPR on
992 BOOLEAN_TYPE, only invert in_p and continue with arg0 if
993 the current range can't be an unconditional true or false.
994
552d99fe
JG
9952013-09-09 James Greenhalgh <james.greenhalgh@arm.com>
996
997 * config/aarch64/arm_neon.h (vrsqrte_f64): Fix parameter type.
998
f43245d1
UB
9992013-09-09 Uros Bizjak <ubizjak@gmail.com>
1000
1001 * ipa-prop.c (ipa_modify_call_arguments): Initialize deref_align.
1002
c9b0866a
PC
10032013-09-09 Paolo Carlini <paolo.carlini@oracle.com>
1004
1005 PR c++/43452
1006 * doc/invoke.texi (-Wdelete-incomplete): Document it.
1007
78d8b9f0
IB
10082013-09-09 Ian Bolton <ian.bolton@arm.com>
1009
1010 * config/aarch64/aarch64.c (aarch64_preferred_reload_class): Return
1011 NO_REGS for immediate that can't be moved directly into FP_REGS.
1012
274b2532
KT
10132013-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1014
1015 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
1016 comparison with negated operand.
c9b0866a
PC
1017 * config/aarch64/aarch64.md (compare_neg<mode>): Match canonical
1018 RTL form.
274b2532 1019
467a3558
RB
10202013-09-09 Richard Biener <rguenther@suse.de>
1021
1022 PR middle-end/58326
1023 * cfgloopmanip.c (fix_bb_placements): When fixing the placement
1024 of a subloop record all its block as affecting loop-closed SSA form.
1025
088c5368
RS
10262013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
1027
1028 * expmed.c (lshift_value): Take an unsigned HOST_WIDE_INT instead
1029 of an rtx/bitpos pair.
1030 (store_fixed_bit_field): Update accordingly.
1031
69db2d57
RS
10322013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
1033
1034 * asan.c (asan_emit_stack_protection): Use gen_int_mode instead of
1035 GEN_INT.
1036 * builtins.c (expand_errno_check): Likewise.
1037 * dwarf2cfi.c (init_return_column_size): Likewise.
1038 * except.c (sjlj_mark_call_sites): Likewise.
1039 * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise.
1040 * lra-constraints.c (emit_inc): Likewise.
1041 * ree.c (combine_set_extension): Likewise.
1042 * regmove.c (fixup_match_2): Likewise.
1043 * reload1.c (inc_for_reload): Likewise.
1044
69a59f0f
RS
10452013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
1046
1047 * combine.c (simplify_set, expand_field_assignment, extract_left_shift)
1048 (force_to_mode, simplify_shift_const_1, simplify_comparison):
1049 Use gen_int_mode with the mode of the associated simplify_* call.
1050 * explow.c (probe_stack_range, anti_adjust_stack_and_probe): Likewise.
1051 * expmed.c (expand_shift_1): Likewise.
1052 * function.c (instantiate_virtual_regs_in_insn): Likewise.
1053 * loop-iv.c (iv_number_of_iterations): Likewise.
1054 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
1055 * simplify-rtx.c (simplify_binary_operation_1): Likewise.
1056
2f1cd2eb
RS
10572013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
1058
1059 * asan.c (asan_clear_shadow): Use gen_int_mode with the mode
1060 of the associated expand_* call.
1061 (asan_emit_stack_protection): Likewise.
1062 * builtins.c (round_trampoline_addr): Likewise.
1063 * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
1064 * expmed.c (expand_smod_pow2, expand_sdiv_pow2, expand_divmod)
1065 (emit_store_flag): Likewise.
1066 * expr.c (emit_move_resolve_push, push_block, emit_single_push_insn_1)
1067 (emit_push_insn, optimize_bitfield_assignment_op, expand_expr_real_1):
1068 Likewise.
1069 * function.c (instantiate_virtual_regs_in_insn): Likewise.
1070 * ifcvt.c (noce_try_store_flag_constants): Likewise.
1071 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
1072 * modulo-sched.c (generate_prolog_epilog): Likewise.
1073 * optabs.c (expand_binop, widen_leading, expand_doubleword_clz)
1074 (expand_ctz, expand_ffs, expand_unop): Likewise.
1075
4789c0ce
RS
10762013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
1077
1078 * alias.c (addr_side_effect_eval): Use gen_int_mode with the mode
1079 of the associated gen_rtx_* call.
1080 * caller-save.c (init_caller_save): Likewise.
1081 * combine.c (find_split_point, make_extraction): Likewise.
1082 (make_compound_operation): Likewise.
1083 * dwarf2out.c (mem_loc_descriptor): Likewise.
1084 * explow.c (plus_constant, probe_stack_range): Likewise.
1085 * expmed.c (expand_mult_const): Likewise.
1086 * expr.c (emit_single_push_insn_1, do_tablejump): Likewise.
1087 * reload1.c (init_reload): Likewise.
1088 * valtrack.c (cleanup_auto_inc_dec): Likewise.
1089 * var-tracking.c (adjust_mems): Likewise.
1090 * modulo-sched.c (sms_schedule): Likewise, but use gen_rtx_GT
1091 rather than gen_rtx_fmt_ee.
1092
a811f7cb
JH
10932013-09-09 Jan Hubicka <jh@suse.cz>
1094
1095 PR middle-end/58294
1096 * value-prof.c (gimple_ic): Copy also abnormal edges.
1097
dcad1dd3
RS
10982013-09-09 Richard Sandiford <rdsandiford@googlemail.com>
1099
1100 * asan.c (asan_shadow_cst): Use gen_int_mode.
1101
daf5c770
JH
11022013-09-08 Jan Hubicka <jh@suse.cz>
1103
1104 * ipa-profile.c: Add toplevel comment.
1105 (ipa_propagate_frequency_1): Be more conservative when profile is read.
1106 (contains_hot_call_p): New function.
1107 (ipa_propagate_frequency): Set frequencies based on counts when
1108 profile is read.
1109 * predict.c (compute_function_frequency): Use PROFILE_READ gueard for
1110 profile; do not tamper with profile after inlining if it is read.
1111
a12cd2db
JH
11122013-09-08 Jan Hubicka <jh@suse.cz>
1113
1114 * ipa-prop.c (try_make_edge_direct_simple_call): Do not special case
1115 speculative edges.
1116
856a1588
JH
11172013-09-08 Jan Hubicka <jh@suse.cz>
1118
1119 * ipa.c (walk_polymorphic_call_targets): Fix redirection before IPA
1120 summary generation.
1121
4f4b0b73
JL
11222013-09-08 Jeff Law <law@redhat.com>
1123
1124 PR bootstrap/58340
1125 * tree-ssa-threadedge.c (thread_across_edge): Fix initialization
1126 of 'found'.
1127
cc4029ee
AK
11282013-09-08 Andi Kleen <ak@linux.intel.com>
1129
1130 * tree-inline.c (estimate_num_insns): Limit asm cost to 1000.
1131
7b395ddd
JH
11322013-09-08 Jan Hubicka <jh@suse.cz>
1133
1134 * ipa.c (walk_polymorphic_call_targets): Fix inliner summary update.
1135
c34c46dd
RS
11362013-09-08 Richard Sandiford <rdsandiford@googlemail.com>
1137
1138 * ira.c (update_equiv_regs): Only call set_paradoxical_subreg
1139 for non-debug insns.
1140 * lra.c (new_insn_reg): Take the containing insn as a parameter.
1141 Only modify lra_reg_info[].biggest_mode if it's non-debug insn.
1142 (collect_non_operand_hard_regs, add_regs_to_insn_regno_info): Update
1143 accordingly.
1144
3462aa02
JH
11452013-09-08 Jan Hubicka <jh@suse.cz>
1146
1147 * cgraphunit.c (walk_polymorphic_call_targets): Permit 0 possible
1148 targets and devirtualize to BUILT_IN_UNREACHABLE.
1149 * timevar.def (TV_IPA_UNREACHABLE): New timevar.
1150 * ipa.c (walk_polymorphic_call_targets): New function.
1151 (symtab_remove_unreachable_nodes): Use it; do not keep all virtual
1152 functions; use the new timevar.
1153 * ipa-devirt.c (maybe_record_node): Do not insert static nodes that
1154 was removed from the program.
1155 (record_binfo): If BINFO corresponds to an anonymous namespace, we may
1156 not consider it in the walk when its vtable is dead.
1157 (possible_polymorphic_call_targets_1): Pass anonymous flag to
1158 record_binfo.
1159 (devirt_variable_node_removal_hook): New function.
1160 (possible_polymorphic_call_targets): Also register
1161 devirt_variable_node_removal_hook.
1162 (ipa_devirt): Do not do non-speculative devirtualization.
1163 (gate_ipa_devirt): One execute if devirtualizing speculatively.
1164
26e5b0fd
JH
11652013-09-08 Jan Hubicka <jh@suse.cz>
1166
1167 * cgraph.h (varpool_node_hook, varpool_node_hook_list,
1168 varpool_add_node_removal_hook, varpool_add_variable_insertion_hook,
1169 varpool_remove_variable_insertion_hook): Declare.
1170 * varpool.c (varpool_node_hook_list): New structure.
1171 (first_varpool_node_removal_hook,
1172 first_varpool_variable_insertion_hook): New variables.
1173 (varpool_add_node_removal_hook, varpool_remove_node_removal_hook,
1174 varpool_call_node_removal_hooks, varpool_add_variable_insertion_hook,
1175 varpool_remove_variable_insertion_hook,
1176 varpool_call_variable_insertion_hooks): New functions.
1177 (varpool_remove_node): Use it.
1178
97f1f314 11792013-09-08 Paolo Carlini <paolo.carlini@oracle.com>
6df2ca09 1180
97f1f314
PC
1181 PR c++/54941
1182 * diagnostic.c (diagnostic_build_prefix): When s.file is
1183 "<built-in>" don't output line and column numbers.
6df2ca09 1184
bcb650cb
JH
11852013-09-06 Jan Hubicka <jh@suse.cz>
1186
1187 * cgraphunit.c (expand_thunk): Get body before touching arguments.
1188 * lto-streamer-out.c: Stream thunks, too.
1189 * lto-streamer-in.c (input_function): Pop cfun here
1190 (lto_read_body): Instead of here.
1191
87f3fea8
CT
11922013-09-06 Caroline Tice <cmtice@google.com>
1193
1194 * doc/install.texi: Add documentation for the --enable-vtable-verify
1195 and the --disable-libvtv configure options.
1196
5e8d9b45
JL
11972013-09-06 Jeff Law <law@redhat.com>
1198
1199 * tree-ssa-dom.c (cprop_into_successor_phis): Also propagate
1200 edge implied equivalences into successor phis.
1201
3a001aff
JR
12022013-09-06 Joern Rennecke <joern.rennecke@embecosm.com>
1203
1204 * resource.c (mark_referenced_resources): Handle COND_EXEC.
1205
12062013-09-06 Claudiu Zissulescu <claziss@synopsys.com>
c42091c1
CZ
1207
1208 * resource.c (mark_target_live_regs): Compute resources taking
1209 into account if a call is predicated or not.
1210
2c641f8b
EB
12112013-09-06 Eric Botcazou <ebotcazou@adacore.com>
1212
1213 * toplev.c (output_stack_usage): Be prepared for suffixes created by
1214 the compiler in the function names.
1215
a81b0a3d
JH
12162013-09-06 Jan Hubicka <jh@suse.cz>
1217
1218 PR middle-end/58094
1219 * ipa-inline.c (has_caller_p): New function.
1220 (want_inline_function_to_all_callers_p): Use it.
1221 (sum_callers, inline_to_all_callers): Break out from ...
1222 (ipa_inline): ... here.
1223
68e4ca7e
JH
12242013-09-06 Jan Hubicka <jh@suse.cz>
1225
2c641f8b
EB
1226 * config/i386/i386.c (ix86_hard_regno_mode_ok): AVX modes are valid
1227 only when AVX is enabled.
68e4ca7e 1228
3c73e2fe
JG
12292013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1230
1231 * config/aarch64/aarch64.md
1232 (*movtf_aarch64): Use neon_<ls>dm_2 as type where v8type
1233 is fpsimd_<load/store>2.
1234 (load_pair<mode>): Likewise.
1235 (store_pair<mode>): Likewise.
1236
8c48eecd
JG
12372013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1238
1239 * config/arm/types.md (type): Add "mrs" type.
1240 * config/aarch64/aarch64.md
1241 (aarch64_load_tp_hard): Make type "mrs".
1242 * config/arm/arm.md
1243 (load_tp_hard): Make type "mrs".
1244 * config/arm/cortex-a15.md: Update with new attributes.
1245 * config/arm/cortex-a5.md: Update with new attributes.
1246 * config/arm/cortex-a53.md: Update with new attributes.
1247 * config/arm/cortex-a7.md: Update with new attributes.
1248 * config/arm/cortex-a8.md: Update with new attributes.
1249 * config/arm/cortex-a9.md: Update with new attributes.
1250 * config/arm/cortex-m4.md: Update with new attributes.
1251 * config/arm/cortex-r4.md: Update with new attributes.
1252 * config/arm/fa526.md: Update with new attributes.
1253 * config/arm/fa606te.md: Update with new attributes.
1254 * config/arm/fa626te.md: Update with new attributes.
1255 * config/arm/fa726te.md: Update with new attributes.
1256
9ea187a5
JG
12572013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1258
1259 * config/aarch64/aarch64.md
1260 (*movti_aarch64): Use "multiple" for type where v8type is "move2".
1261 (*movtf_aarch64): Likewise.
1262 * config/arm/arm.md
1263 (thumb1_movdi_insn): Use "multiple" for type where more than one
1264 instruction is used for a move.
1265 (*arm32_movhf): Likewise.
1266 (*thumb_movdf_insn): Likewise.
1267
292b89b3
JG
12682013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1269
1270 * config/arm/types.md (type): Rename fcpys to fmov.
1271 * config/arm/vfp.md
1272 (*arm_movsi_vfp): Rename type fcpys as fmov.
1273 (*thumb2_movsi_vfp): Likewise
1274 (*movhf_vfp_neon): Likewise
1275 (*movhf_vfp): Likewise
1276 (*movsf_vfp): Likewise
1277 (*thumb2_movsf_vfp): Likewise
1278 (*movsfcc_vfp): Likewise
1279 (*thumb2_movsfcc_vfp): Likewise
1280 * config/aarch64/aarch64-simd.md
1281 (move_lo_quad_<mode>): Replace type mov_reg with fmovs.
1282 * config/aarch64/aarch64.md
1283 (*movsi_aarch64): Replace type mov_reg with fmovs.
1284 (*movdi_aarch64): Likewise
1285 (*movsf_aarch64): Likewise
1286 (*movdf_aarch64): Likewise
1287 * config/arm/arm.c
1288 (cortexa7_older_only): Rename TYPE_FCPYS to TYPE_FMOV.
1289 * config/arm/iwmmxt.md
1290 (*iwmmxt_movsi_insn): Rename type fcpys as fmov.
1291 * config/arm/arm1020e.md: Update with new attributes.
1292 * config/arm/cortex-a15-neon.md: Update with new attributes.
1293 * config/arm/cortex-a5.md: Update with new attributes.
1294 * config/arm/cortex-a53.md: Update with new attributes.
1295 * config/arm/cortex-a7.md: Update with new attributes.
1296 * config/arm/cortex-a8-neon.md: Update with new attributes.
1297 * config/arm/cortex-a9.md: Update with new attributes.
1298 * config/arm/cortex-m4-fpu.md: Update with new attributes.
1299 * config/arm/cortex-r4f.md: Update with new attributes.
1300 * config/arm/marvell-pj4.md: Update with new attributes.
1301 * config/arm/vfp11.md: Update with new attributes.
1302
6a24a83e
JG
13032013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1304
1305 * config/aarch64/aarch64.md
1306 (*madd<mode>): Fix type attribute.
1307 (*maddsi_uxtw): Likewise.
1308 (*msub<mode>): Likewise.
1309 (*msubsi_uxtw): Likewise.
1310 (<su_optab>maddsidi4): Likewise.
1311 (<su_optab>msubsidi4): Likewise.
1312
b86923f0
JG
13132013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1314
1315 * config/arm/types.md: Split fdiv<sd> as fsqrt<sd>, fdiv<sd>.
1316 * config/arm/arm.md (core_cycles): Remove fdiv.
1317 * config/arm/vfp.md:
1318 (*sqrtsf2_vfp): Update for attribute changes.
1319 (*sqrtdf2_vfp): Likewise.
1320 * config/aarch64/aarch64.md:
1321 (sqrt<mode>2): Update for attribute changes.
1322 * config/arm/arm1020e.md: Update with new attributes.
1323 * config/arm/cortex-a15-neon.md: Update with new attributes.
1324 * config/arm/cortex-a5.md: Update with new attributes.
1325 * config/arm/cortex-a53.md: Update with new attributes.
1326 * config/arm/cortex-a7.md: Update with new attributes.
1327 * config/arm/cortex-a8-neon.md: Update with new attributes.
1328 * config/arm/cortex-a9.md: Update with new attributes.
1329 * config/arm/cortex-m4-fpu.md: Update with new attributes.
1330 * config/arm/cortex-r4f.md: Update with new attributes.
1331 * config/arm/marvell-pj4.md: Update with new attributes.
1332 * config/arm/vfp11.md: Update with new attributes.
1333
7b49c9e1
JG
13342013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1335
1336 * config/arm/types.md
1337 (type): Split f_cvt as f_cvt, f_cvtf2i, f_cvti2f.
1338 * config/aarch64/aarch64.md
1339 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Update with
1340 new attributes.
1341 (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
1342 (fixuns_trunc<GPF:mode><GPI:mode>2): Likewise.
1343 (float<GPI:mode><GPF:mode>2): Likewise.
1344 * config/arm/vfp.md
1345 (*truncsisf2_vfp): Update with new attributes.
1346 (*truncsidf2_vfp): Likewise.
1347 (fixuns_truncsfsi2): Likewise.
1348 (fixuns_truncdfsi2): Likewise.
1349 (*floatsisf2_vfp): Likewise.
1350 (*floatsidf2_vfp): Likewise.
1351 (floatunssisf2): Likewise.
1352 (floatunssidf2): Likewise.
1353 (*combine_vcvt_f32_<FCVTI32typename>): Likewise.
1354 (*combine_vcvt_f64_<FCVTI32typename>): Likewise.
1355 * config/arm/arm1020e.md: Update with new attributes.
1356 * config/arm/cortex-a15-neon.md: Update with new attributes.
1357 * config/arm/cortex-a5.md: Update with new attributes.
1358 * config/arm/cortex-a53.md: Update with new attributes.
1359 * config/arm/cortex-a7.md: Update with new attributes.
1360 * config/arm/cortex-a8-neon.md: Update with new attributes.
1361 * config/arm/cortex-a9.md: Update with new attributes.
1362 * config/arm/cortex-m4-fpu.md: Update with new attributes.
1363 * config/arm/cortex-r4f.md: Update with new attributes.
1364 * config/arm/marvell-pj4.md: Update with new attributes.
1365 * config/arm/vfp11.md: Update with new attributes.
1366
e7df8af8
JG
13672013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1368
1369 * config/aarch64/arm_neon.h
1370 (vqtbl<1,2,3,4><q>_s8): Fix control vector parameter type.
1371 (vqtbx<1,2,3,4><q>_s8): Likewise.
1372
594726e4
JG
13732013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1374
f43245d1
UB
1375 * config/arm/types.md: Add "no_insn", "multiple" and "untyped" types.
1376 * config/arm/arm-fixed.md: Add type attribute to all insn patterns.
594726e4
JG
1377 (add<mode>3): Add type attribute.
1378 (add<mode>3): Likewise.
1379 (usadd<mode>3): Likewise.
1380 (ssadd<mode>3): Likewise.
1381 (sub<mode>3): Likewise.
1382 (sub<mode>3): Likewise.
1383 (ussub<mode>3): Likewise.
1384 (sssub<mode>3): Likewise.
1385 (ssmulsa3): Likewise.
1386 (usmulusa3): Likewise.
1387 (arm_usatsihi): Likewise.
1388 * config/arm/vfp.md
1389 (*movdi_vfp): Add types for all instructions.
1390 (*movdi_vfp_cortexa8): Likewise.
1391 (*movhf_vfp_neon): Likewise.
1392 (*movhf_vfp): Likewise.
1393 (*movdf_vfp): Likewise.
1394 (*thumb2_movdf_vfp): Likewise.
1395 (*thumb2_movdfcc_vfp): Likewise.
1396 * config/arm/arm.md: Add type attribute to all insn patterns.
1397 (*thumb1_adddi3): Add type attribute.
1398 (*arm_adddi3): Likewise.
1399 (*adddi_sesidi_di): Likewise.
1400 (*adddi_zesidi_di): Likewise.
1401 (*thumb1_addsi3): Likewise.
1402 (addsi3_compare0): Likewise.
1403 (*addsi3_compare0_scratch): Likewise.
1404 (*compare_negsi_si): Likewise.
1405 (cmpsi2_addneg): Likewise.
1406 (*addsi3_carryin_<optab>): Likewise.
1407 (*addsi3_carryin_alt2_<optab>): Likewise.
1408 (*addsi3_carryin_clobercc_<optab>): Likewise.
1409 (*subsi3_carryin): Likewise.
1410 (*subsi3_carryin_const): Likewise.
1411 (*subsi3_carryin_compare): Likewise.
1412 (*subsi3_carryin_compare_const): Likewise.
1413 (*arm_subdi3): Likewise.
1414 (*thumb_subdi3): Likewise.
1415 (*subdi_di_zesidi): Likewise.
1416 (*subdi_di_sesidi): Likewise.
1417 (*subdi_zesidi_di): Likewise.
1418 (*subdi_sesidi_di): Likewise.
1419 (*subdi_zesidi_ze): Likewise.
1420 (thumb1_subsi3_insn): Likewise.
1421 (*arm_subsi3_insn): Likewise.
1422 (*anddi3_insn): Likewise.
1423 (*anddi_zesidi_di): Likewise.
1424 (*anddi_sesdi_di): Likewise.
1425 (*ne_zeroextracts): Likewise.
1426 (*ne_zeroextracts): Likewise.
1427 (*ite_ne_zeroextr): Likewise.
1428 (*ite_ne_zeroextr): Likewise.
1429 (*anddi_notdi_di): Likewise.
1430 (*anddi_notzesidi): Likewise.
1431 (*anddi_notsesidi): Likewise.
1432 (andsi_notsi_si): Likewise.
1433 (thumb1_bicsi3): Likewise.
1434 (*iordi3_insn): Likewise.
1435 (*iordi_zesidi_di): Likewise.
1436 (*iordi_sesidi_di): Likewise.
1437 (*thumb1_iorsi3_insn): Likewise.
1438 (*xordi3_insn): Likewise.
1439 (*xordi_zesidi_di): Likewise.
1440 (*xordi_sesidi_di): Likewise.
1441 (*arm_xorsi3): Likewise.
1442 (*andsi_iorsi3_no): Likewise.
1443 (*smax_0): Likewise.
1444 (*smax_m1): Likewise.
1445 (*arm_smax_insn): Likewise.
1446 (*smin_0): Likewise.
1447 (*arm_smin_insn): Likewise.
1448 (*arm_umaxsi3): Likewise.
1449 (*arm_uminsi3): Likewise.
1450 (*minmax_arithsi): Likewise.
1451 (*minmax_arithsi_): Likewise.
1452 (*satsi_<SAT:code>): Likewise.
1453 (arm_ashldi3_1bit): Likewise.
1454 (arm_ashrdi3_1bit): Likewise.
1455 (arm_lshrdi3_1bit): Likewise.
1456 (*arm_negdi2): Likewise.
1457 (*thumb1_negdi2): Likewise.
1458 (*arm_negsi2): Likewise.
1459 (*thumb1_negsi2): Likewise.
1460 (*negdi_extendsid): Likewise.
1461 (*negdi_zero_extend): Likewise.
1462 (*arm_abssi2): Likewise.
1463 (*thumb1_abssi2): Likewise.
1464 (*arm_neg_abssi2): Likewise.
1465 (*thumb1_neg_abss): Likewise.
1466 (one_cmpldi2): Likewise.
1467 (extend<mode>di2): Likewise.
1468 (*compareqi_eq0): Likewise.
1469 (*arm_extendhisi2addsi): Likewise.
1470 (*arm_movdi): Likewise.
1471 (*thumb1_movdi_insn): Likewise.
1472 (*arm_movt): Likewise.
1473 (*thumb1_movsi_insn): Likewise.
1474 (pic_add_dot_plus_four): Likewise.
1475 (pic_add_dot_plus_eight): Likewise.
1476 (tls_load_dot_plus_eight): Likewise.
1477 (*thumb1_movhi_insn): Likewise.
1478 (*thumb1_movsf_insn): Likewise.
1479 (*movdf_soft_insn): Likewise.
1480 (*thumb_movdf_insn): Likewise.
1481 (cbranchsi4_insn): Likewise.
1482 (cbranchsi4_scratch): Likewise.
1483 (*negated_cbranchsi4): Likewise.
1484 (*tbit_cbranch): Likewise.
1485 (*tlobits_cbranch): Likewise.
1486 (*tstsi3_cbranch): Likewise.
1487 (*cbranchne_decr1): Likewise.
1488 (*addsi3_cbranch): Likewise.
1489 (*addsi3_cbranch_scratch): Likewise.
1490 (*arm_cmpdi_insn): Likewise.
1491 (*arm_cmpdi_unsig): Likewise.
1492 (*arm_cmpdi_zero): Likewise.
1493 (*thumb_cmpdi_zero): Likewise.
1494 (*deleted_compare): Likewise.
1495 (*mov_scc): Likewise.
1496 (*mov_negscc): Likewise.
1497 (*mov_notscc): Likewise.
1498 (*cstoresi_eq0_thumb1_insn): Likewise.
1499 (cstoresi_nltu_thumb1): Likewise.
1500 (cstoresi_ltu_thu): Likewise.
1501 (thumb1_addsi3_addgeu): Likewise.
1502 (*arm_jump): Likewise.
1503 (*thumb_jump): Likewise.
1504 (*check_arch2): Likewise.
1505 (arm_casesi_internal): Likewise.
1506 (thumb1_casesi_dispatch): Likewise.
1507 (*arm_indirect_jump): Likewise.
1508 (*thumb1_indirect_jump): Likewise.
1509 (nop): Likewise.
1510 (*and_scc): Likewise.
1511 (*ior_scc): Likewise.
1512 (*compare_scc): Likewise.
1513 (*cond_move): Likewise.
1514 (*cond_arith): Likewise.
1515 (*cond_sub): Likewise.
1516 (*cmp_ite0): Likewise.
1517 (*cmp_ite1): Likewise.
1518 (*cmp_and): Likewise.
1519 (*cmp_ior): Likewise.
1520 (*ior_scc_scc): Likewise.
1521 (*ior_scc_scc_cmp): Likewise.
1522 (*and_scc_scc): Likewise.
1523 (*and_scc_scc_cmp): Likewise.
1524 (*and_scc_scc_nod): Likewise.
1525 (*negscc): Likewise.
1526 (movcond_addsi): Likewise.
1527 (movcond): Likewise.
1528 (*ifcompare_plus_move): Likewise.
1529 (*if_plus_move): Likewise.
1530 (*ifcompare_move_plus): Likewise.
1531 (*if_move_plus): Likewise.
1532 (*ifcompare_arith_arith): Likewise.
1533 (*if_arith_arith): Likewise.
1534 (*ifcompare_arith_move): Likewise.
1535 (*if_arith_move): Likewise.
1536 (*ifcompare_move_arith): Likewise.
1537 (*if_move_arith): Likewise.
1538 (*ifcompare_move_not): Likewise.
1539 (*if_move_not): Likewise.
1540 (*ifcompare_not_move): Likewise.
1541 (*if_not_move): Likewise.
1542 (*ifcompare_shift_move): Likewise.
1543 (*if_shift_move): Likewise.
1544 (*ifcompare_move_shift): Likewise.
1545 (*if_move_shift): Likewise.
1546 (*ifcompare_shift_shift): Likewise.
1547 (*ifcompare_not_arith): Likewise.
1548 (*ifcompare_arith_not): Likewise.
1549 (*if_arith_not): Likewise.
1550 (*ifcompare_neg_move): Likewise.
1551 (*if_neg_move): Likewise.
1552 (*ifcompare_move_neg): Likewise.
1553 (*if_move_neg): Likewise.
1554 (prologue_thumb1_interwork): Likewise.
1555 (*cond_move_not): Likewise.
1556 (*sign_extract_onebit): Likewise.
1557 (*not_signextract_onebit): Likewise.
1558 (stack_tie): Likewise.
1559 (align_4): Likewise.
1560 (align_8): Likewise.
1561 (consttable_end): Likewise.
1562 (consttable_1): Likewise.
1563 (consttable_2): Likewise.
1564 (consttable_4): Likewise.
1565 (consttable_8): Likewise.
1566 (consttable_16): Likewise.
1567 (*thumb1_tablejump): Likewise.
1568 (prefetch): Likewise.
1569 (force_register_use): Likewise.
1570 (thumb_eh_return): Likewise.
1571 (load_tp_hard): Likewise.
1572 (load_tp_soft): Likewise.
1573 (tlscall): Likewise.
1574 (*arm_movtas_ze): Likewise.
1575 (*arm_rev): Likewise.
1576 (*arm_revsh): Likewise.
1577 (*arm_rev16): Likewise.
1578 * config/arm/thumb2.md
1579 (*thumb2_smaxsi3): Likewise.
1580 (*thumb2_sminsi3): Likewise.
1581 (*thumb32_umaxsi3): Likewise.
1582 (*thumb2_uminsi3): Likewise.
1583 (*thumb2_negdi2): Likewise.
1584 (*thumb2_abssi2): Likewise.
1585 (*thumb2_neg_abss): Likewise.
1586 (*thumb2_movsi_insn): Likewise.
1587 (tls_load_dot_plus_four): Likewise.
1588 (*thumb2_movhi_insn): Likewise.
1589 (*thumb2_mov_scc): Likewise.
1590 (*thumb2_mov_negs): Likewise.
1591 (*thumb2_mov_negs): Likewise.
1592 (*thumb2_mov_nots): Likewise.
1593 (*thumb2_mov_nots): Likewise.
1594 (*thumb2_movsicc_): Likewise.
1595 (*thumb2_movsfcc_soft_insn): Likewise.
1596 (*thumb2_indirect_jump): Likewise.
1597 (*thumb2_and_scc): Likewise.
1598 (*thumb2_ior_scc): Likewise.
1599 (*thumb2_ior_scc_strict_it): Likewise.
1600 (*thumb2_cond_move): Likewise.
1601 (*thumb2_cond_arith): Likewise.
1602 (*thumb2_cond_ari): Likewise.
1603 (*thumb2_cond_sub): Likewise.
1604 (*thumb2_negscc): Likewise.
1605 (*thumb2_movcond): Likewise.
1606 (thumb2_casesi_internal): Likewise.
1607 (thumb2_casesi_internal_pic): Likewise.
1608 (*thumb2_alusi3_short): Likewise.
1609 (*thumb2_mov<mode>_shortim): Likewise.
1610 (*thumb2_addsi_short): Likewise.
1611 (*thumb2_subsi_short): Likewise.
1612 (thumb2_addsi3_compare0): Likewise.
1613 (*thumb2_cbz): Likewise.
1614 (*thumb2_cbnz): Likewise.
1615 (*thumb2_one_cmplsi2_short): Likewise.
1616 (*thumb2_negsi2_short): Likewise.
1617 (*orsi_notsi_si): Likewise.
1618 * config/arm/arm1020e.md: Update with new attributes.
1619 * config/arm/arm1026ejs.md: Update with new attributes.
1620 * config/arm/arm1136jfs.md: Update with new attributes.
1621 * config/arm/arm926ejs.md: Update with new attributes.
1622 * config/arm/cortex-a15.md: Update with new attributes.
1623 * config/arm/cortex-a5.md: Update with new attributes.
1624 * config/arm/cortex-a53.md: Update with new attributes.
1625 * config/arm/cortex-a7.md: Update with new attributes.
1626 * config/arm/cortex-a8.md: Update with new attributes.
1627 * config/arm/cortex-a9.md: Update with new attributes.
1628 * config/arm/cortex-m4.md: Update with new attributes.
1629 * config/arm/cortex-r4.md: Update with new attributes.
1630 * config/arm/fa526.md: Update with new attributes.
1631 * config/arm/fa606te.md: Update with new attributes.
1632 * config/arm/fa626te.md: Update with new attributes.
1633 * config/arm/fa726te.md: Update with new attributes.
1634
1c83b673
JG
16352013-09-06 James Greenhalgh <james.greenhalgh@arm.com>
1636
1637 * config/aarch64/aarch64-simd.md
1638 (aarch64_sqdml<SBINQOPS:as>l_n<mode>_internal): Use
1639 <vwx> iterator to ensure correct register choice.
1640 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Likewise.
1641 (aarch64_sqdmull_n<mode>): Likewise.
1642 (aarch64_sqdmull2_n<mode>_internal): Likewise.
1643 * config/aarch64/arm_neon.h
1644 (vml<as><q>_lane<q>_<su>16): Use 'x' constraint for element vector.
1645 (vml<as><q>_n_<su>16): Likewise.
1646 (vml<as>l_high_lane<q>_<su>16): Likewise.
1647 (vml<as>l_high_n_<su>16): Likewise.
1648 (vml<as>l_lane<q>_<su>16): Likewise.
1649 (vml<as>l_n_<su>16): Likewise.
1650 (vmul<q>_lane<q>_<su>16): Likewise.
1651 (vmul<q>_n_<su>16): Likewise.
1652 (vmull_lane<q>_<su>16): Likewise.
1653 (vmull_n_<su>16): Likewise.
1654 (vmull_high_lane<q>_<su>16): Likewise.
1655 (vmull_high_n_<su>16): Likewise.
1656 (vqrdmulh<q>_n_s16): Likewise.
1657
bb1ae543
TB
16582013-09-06 Tejas Belagod <tejas.belagod@arm.com>
1659
1660 * config/aarch64/arm_neon.h: Fix all vdup<bhsd_lane<q> intrinsics to
1661 have the correct lane parameter.
1662
f23c0742
RB
16632013-09-06 Richard Biener <rguenther@suse.de>
1664
1665 * cfganal.c (control_dependences::~control_dependences):
1666 Properly free all of the vector.
1667
c1d49770
KY
16682013-09-06 Kirill Yukhin <kirill.yukhin@intel.com>
1669
1670 PR target/58269
1671 * config/i386/i386.c (ix86_conditional_register_usage):
1672 Proper initialize extended SSE registers.
1673
6da47f52
JH
16742013-09-06 Jan Hubicka <jh@suse.cz>
1675
1676 PR tree-optimization/58311
1677 * ipa-devirt.c (gate_ipa_devirt): Only execute when optimizing.
1678
16792013-09-06 Jan Hubicka <jh@suse.cz>
1680
1681 * Makefile.in (tree-sra.o): Update dependencies.
1682 * tree-sra.c: Include ipa-utils.h
1683 (scan_function): Use recursive_call_p.
1684 (has_caller_p): New function.
1685 (cgraph_for_node_and_aliases): Count also callers of aliases.
1686
fc11f321
JH
16872013-09-06 Jan Hubicka <jh@suse.cz>
1688
1689 PR middle-end/58094
1690 * cgraph.h (symtab_semantically_equivalent_p): Declare.
1691 * tree-tailcall.c: Include ipa-utils.h.
1692 (find_tail_calls): Use it.
1693 * ipa-pure-const.c (check_call): Likewise.
1694 * ipa-utils.c (recursive_call_p): New function.
1695 * ipa-utils.h (recursive_call_p): Dclare.
1696 * symtab.c (symtab_nonoverwritable_alias): Fix formatting.
1697 (symtab_semantically_equivalent_p): New function.
1698 * Makefile.in (tree-tailcall.o): Update dependencies.
1699
9a6af450
EB
17002013-09-06 Eric Botcazou <ebotcazou@adacore.com>
1701
1702 * ipa-split.c (split_function): Set DECL_NO_INLINE_WARNING_P on the
1703 non-inlinable part.
1704
35f32ad4
RB
17052013-09-06 Richard Biener <rguenther@suse.de>
1706
1707 * lto-streamer.h (lto_global_var_decls): Remove.
1708 * Makefile.in (OBJS): Remove lto-symtab.o.
1709 (lto-symtab.o): Remove.
1710 (GTFILES): Remove lto-symtab.c
1711 * lto-symtab.c: Move to lto/
1712
d12a76f3
AK
17132013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1714
1715 * config/s390/s390.md (UNSPEC_FPINT_FLOOR, UNSPEC_FPINT_BTRUNC)
1716 (UNSPEC_FPINT_ROUND, UNSPEC_FPINT_CEIL, UNSPEC_FPINT_NEARBYINT)
1717 (UNSPEC_FPINT_RINT): New constant definitions.
1718 (FPINT, fpint_name, fpint_roundingmode): New integer iterator
1719 definition with 2 attributes.
1720 ("<FPINT:fpint_name><BFP:mode>2", "rint<BFP:mode>2")
1721 ("<FPINT:fpint_name><DFP:mode>2", "rint<DFP:mode>2"): New pattern
1722 definitions.
1723
17242013-09-06 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
1725
f43245d1 1726 * config/s390/s390.md: Add "bcr_flush" value to mnemonic attribute.
d12a76f3
AK
1727 ("mem_thread_fence_1"): Use bcr 14,0 for z196 and later.
1728 Set the mnemonic attribute to "bcr_flush". Set the "z196prop"
1729 attribute to "z196_alone".
1730 * config/s390/2827.md: Add "bcr_flush" to "ooo_groupalone" and
1731 "zEC12_simple".
1732
c8e9d8c3
RB
17332013-09-06 Richard Biener <rguenther@suse.de>
1734
1735 * basic-block.h (class control_dependences): New.
1736 * tree-ssa-dce.c (control_dependence_map): Remove.
1737 (cd): New global.
1738 (EXECUTE_IF_CONTROL_DEPENDENT): Remove.
1739 (set_control_dependence_map_bit, clear_control_dependence_bitmap,
1740 find_pdom, find_control_dependence, find_all_control_dependences):
1741 Move to cfganal.c.
f43245d1
UB
1742 (mark_control_dependent_edges_necessary,
1743 find_obviously_necessary_stmts, propagate_necessity, tree_dce_init,
1744 tree_dce_done, perform_tree_ssa_dce): Adjust.
c8e9d8c3
RB
1745 * cfganal.c (set_control_dependence_map_bit,
1746 clear_control_dependence_bitmap, find_pdom, find_control_dependence,
1747 find_all_control_dependences): Move from tree-ssa-dce.c and
1748 implement as methods of control_dependences class.
1749 (control_dependences::control_dependences): New.
1750 (control_dependences::~control_dependences): Likewise.
1751 (control_dependences::get_edges_dependent_on): Likewise.
1752 (control_dependences::get_edge): Likewise.
1753
7d2ba471
JH
17542013-09-04 Jan Hubicka <jh@suse.cz>
1755
1756 * tree.c (types_same_for_odr): Drop overactive check.
1757 * ipa-devirt.c (hash_type_name): Likewise.
1758
e18412fc
JH
17592013-09-04 Jan Hubicka <jh@suse.cz>
1760
1761 * cgraphunit.c (walk_polymorphic_call_targets): Break out from ...
1762 (analyze_functions): ... here.
1763
d352b245
JH
17642013-09-04 Jan Hubicka <jh@suse.cz>
1765
1766 PR middle-end/58201
1767 * cgraphunit.c (analyze_functions): Clear AUX fields
1768 after processing; initialize assembler name has.
1769
770da076
JL
17702013-09-05 Jeff Law <law@redhat.com>
1771
1772 * tree-ssa-threadedge.c (thread_around_empty_blocks): Renamed
1773 from thread_around_empty_block. Record threading path into PATH.
1774 Recurse if threading through the initial block is successful.
1775 (thread_across_edge): Corresponding changes to slightly simplify.
1776
fe6f68e2
JG
17772013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
1778
1779 * config/aarch64/aarch64.md
1780 (type): Remove frecpe, frecps, frecpx.
1781 (aarch64_frecp<FRECP:frecp_suffix><mode>): Move to aarch64-simd.md,
1782 fix to be a TARGET_SIMD instruction.
1783 (aarch64_frecps): Remove.
1784 * config/aarch64/aarch64-simd.md
1785 (aarch64_frecp<FRECP:frecp_suffix><mode>): New, moved from aarch64.md
1786 (aarch64_frecps<mode>): Handle all float/vector of float modes.
1787
6e4150e1
JG
17882013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
1789 Sofiane Naci <sofiane.naci@arm.com>
1790
f43245d1 1791 * config/arm/types.md (define_attr "type"): Expand "arlo_imm"
6e4150e1 1792 into "adr", "alu_imm", "alus_imm", "logic_imm", "logics_imm".
f43245d1
UB
1793 Expand "arlo_reg" into "adc_reg", "adc_imm", "adcs_reg", "adcs_imm",
1794 "alu_ext", "alu_reg", "alus_ext", "alus_reg", "bfm", "csel",
1795 "logic_reg", "logics_reg", "rev". Expand "arlo_shift" into
1796 "alu_shift_imm", "alus_shift_imm", "logic_shift_imm",
1797 "logics_shift_imm". Expand "arlo_shift_reg" into "alu_shift_reg",
1798 "alus_shift_reg", "logic_shift_reg", "logics_shift_reg". Expand "clz"
1799 into "clz, "rbit". Rename "shift" to "shift_imm".
6e4150e1 1800 * config/arm/arm.md (define_attr "core_cycles"): Update for attribute
f43245d1 1801 changes. Update for attribute changes all occurrences of arlo_* and
6e4150e1
JG
1802 shift* types.
1803 * config/arm/arm-fixed.md: Update for attribute changes
1804 all occurrences of arlo_* types.
1805 * config/arm/thumb2.md: Update for attribute changes all occurrences
1806 of arlo_* types.
1807 * config/arm/arm.c (xscale_sched_adjust_cost): (rtx insn, rtx
1808 (cortexa7_older_only): Likewise.
1809 (cortexa7_younger): Likewise.
1810 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
1811 (1020alu_shift_op): Likewise.
1812 (1020alu_shift_reg_op): Likewise.
1813 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
1814 (alu_shift_op): Likewise.
1815 (alu_shift_reg_op): Likewise.
f43245d1 1816 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
6e4150e1
JG
1817 (11_alu_shift_op): Likewise.
1818 (11_alu_shift_reg_op): Likewise.
1819 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
1820 (9_alu_shift_reg_op): Likewise.
1821 * config/arm/cortex-a15.md (cortex_a15_alu): Update for
1822 attribute changes.
1823 (cortex_a15_alu_shift): Likewise.
1824 (cortex_a15_alu_shift_reg): Likewise.
1825 * config/arm/cortex-a5.md (cortex_a5_alu): Update for
1826 attribute changes.
1827 (cortex_a5_alu_shift): Likewise.
f43245d1
UB
1828 * config/arm/cortex-a53.md (cortex_a53_alu): Update for
1829 attribute changes.
6e4150e1 1830 (cortex_a53_alu_shift): Likewise.
f43245d1
UB
1831 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for
1832 attribute changes.
6e4150e1
JG
1833 (cortex_a7_alu_reg): Likewise.
1834 (cortex_a7_alu_shift): Likewise.
f43245d1
UB
1835 * config/arm/cortex-a8.md (cortex_a8_alu): Update for
1836 attribute changes.
6e4150e1
JG
1837 (cortex_a8_alu_shift): Likewise.
1838 (cortex_a8_alu_shift_reg): Likewise.
f43245d1 1839 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
6e4150e1 1840 (cortex_a9_dp_shift): Likewise.
f43245d1
UB
1841 * config/arm/cortex-m4.md (cortex_m4_alu): Update for
1842 attribute changes.
6e4150e1
JG
1843 * config/arm/cortex-r4.md
1844 (cortex_r4_alu): Update for attribute changes.
1845 (cortex_r4_mov): Likewise.
1846 (cortex_r4_alu_shift_reg): Likewise.
f43245d1 1847 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
6e4150e1 1848 (526_alu_shift_op): Likewise.
f43245d1
UB
1849 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
1850 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
6e4150e1 1851 (626te_alu_shift_op): Likewise.
f43245d1 1852 * config/arm/fa726te.md (726te_alu_op): Update for attribute changes.
6e4150e1
JG
1853 (726te_alu_shift_op): Likewise.
1854 (726te_alu_shift_reg_op): Likewise.
1855 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
1856 (mp626_alu_shift_op): Likewise.
1857 * config/arm/marvell-pj4.md (pj4_alu): Update for attribute changes.
1858 (pj4_alu_conds): Likewise.
1859 (pj4_shift): Likewise.
1860 (pj4_shift_conds): Likewise.
1861 (pj4_alu_shift): Likewise.
1862 (pj4_alu_shift_conds): Likewise.
1863 * config/aarch64/aarch64.md: Update for attribute change
1864 all occurrences of arlo_* and shift* types.
1865
e6523306
MS
18662013-09-05 Mike Stump <mikestump@comcast.net>
1867
1868 * tree.h: Move documentation for tree_function_decl to tree-core.h
1869 with the declaration.
1870
80a18161
PB
18712013-09-05 Peter Bergner <bergner@vnet.ibm.com>
1872
1873 PR target/58139
1874 * reginfo.c (choose_hard_reg_mode): Scan through all mode classes
1875 looking for widest mode.
1876
6994430a
EB
18772013-09-05 Eric Botcazou <ebotcazou@adacore.com>
1878
1879 * config.gcc (*-*-vxworks*): Do not override an existing extra_objs.
1880
e67f39f7
RB
18812013-09-05 Richard Biener <rguenther@suse.de>
1882
1883 PR tree-optimization/58137
1884 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
1885 Do not create vectors of pointers.
1886 * tree-vect-loop.c (get_initial_def_for_induction): Use proper
1887 types for the components of the vector initializer.
1888 * tree-cfg.c (verify_gimple_assign_binary): Remove special-casing
1889 allowing pointer vectors with PLUS_EXPR/MINUS_EXPR.
1890
568cda29
MJ
18912013-09-05 Martin Jambor <mjambor@suse.cz>
1892
1893 * ipa-prop.c (remove_described_reference): Accept missing references,
1894 return false if that hppens, otherwise return true.
1895 (cgraph_node_for_jfunc): New function.
1896 (try_decrement_rdesc_refcount): Likewise.
1897 (try_make_edge_direct_simple_call): Use them.
1898 (ipa_edge_removal_hook): Remove references from rdescs.
1899 (ipa_edge_duplication_hook): Clone rdescs and their references
1900 when the new edge has the same caller as the old one.
1901 * cgraph.c (cgraph_resolve_speculation): Remove speculative
1902 reference before removing any edges.
1903
5a200acb
RE
19042013-09-05 Richard Earnshaw <rearnsha@arm.com>
1905
1906 * arm.c (thumb2_emit_strd_push): Rewrite to use pre-decrement on
1907 initial store.
1908 * thumb2.md (thumb2_storewb_parisi): New pattern.
1909
5922847b
YZ
19102013-09-05 Yufeng Zhang <yufeng.zhang@arm.com>
1911
1912 * config/aarch64/aarch64-option-extensions.def: Add
1913 AARCH64_OPT_EXTENSION of 'crc'.
1914 * config/aarch64/aarch64.h (AARCH64_FL_CRC): New define.
1915 (AARCH64_ISA_CRC): Ditto.
1916 * doc/invoke.texi (-march and -mcpu feature modifiers): Add
1917 description of the CRC extension.
1918
996746aa
AI
19192013-09-05 Alexander Ivchenko <alexander.ivchenko@intel.com>
1920
1921 * config/rs6000/linux64.h: Define OPTION_BIONIC and OPTION_UCLIBC.
1922 * config/rs6000/linux.h: Ditto.
1923 * alpha/linux.h: Ditto.
1924 * config/bfin/uclinux.h: Define TARGET_LIBC_HAS_FUNCTION as
1925 no_c99_libc_has_function.
1926 * config/c6x/uclinux-elf.h: Ditto.
1927 * config/lm32/uclinux-elf.h: Ditto.
1928 * config/m68k/uclinux.h: Ditto.
1929 * config/moxie/uclinux.h: Ditto.
1930 * config.gcc (bfin*-linux-uclibc*): Add t-linux-android to tmake_file.
1931 (crisv32-*-linux*, cris-*-linux*): Ditto.
1932 * config/bfin/bfin.c: Include "tm_p.h".
1933
c370d99f
RB
19342013-09-05 Richard Biener <rguenther@suse.de>
1935
1936 * tree-vect-loop.c (vect_analyze_loop_operations): Properly
1937 check for a definition without a basic-block.
1938
003bb7f3
JG
19392013-09-05 James Greenhalgh <james.greenhalgh@arm.com>
1940 Sofiane Naci <sofiane.naci@arm.com>
1941
1942 * config/aarch64/aarch64.md
1943 (*movti_aarch64): Rename r_2_f and f_2_r.
1944 (*movsf_aarch64): Likewise.
1945 (*movdf_aarch64): Likewise.
1946 (*movtf_aarch64): Likewise.
1947 (aarch64_movdi_<mode>low): Likewise.
1948 (aarch64_movdi_<mode>high): Likewise.
1949 (aarch64_mov<mode>high_di): Likewise.
1950 (aarch64_mov<mode>low_di): Likewise.
1951 (aarch64_movtilow_tilow): Likewise.
1952 * config/arm/arm.md (attribute "neon_type"): Delete. Move attribute
1953 values to config/arm/types.md
1954 (attribute "conds"): Update for attribute change.
1955 (anddi3_insn): Likewise.
1956 (iordi3_insn): Likewise.
1957 (xordi3_insn): Likewise.
1958 (one_cmpldi2): Likewise.
1959 * config/arm/types.md (type): Add Neon types.
1960 * config/arm/neon.md (neon_mov<mode>): Remove "neon_type" attribute,
1961 use "type" attribute.
1962 (movmisalign<mode>_neon_store): Likewise.
1963 (movmisalign<mode>_neon_load): Likewise.
1964 (vec_set<mode>_internal): Likewise.
1965 (vec_setv2di_internal): Likewise.
1966 (vec_extract<mode>): Likewise.
1967 (vec_extractv2di): Likewise.
1968 (add<mode>3_neon): Likewise.
1969 (adddi3_neon): Likewise.
1970 (sub<mode>3_neon): Likewise.
1971 (subdi3_neon): Likewise.
1972 (mul<mode>3_neon): Likewise.
1973 (mul<mode>3add<mode>_neon): Likewise.
1974 (mul<mode>3neg<mode>add<mode>_neon): Likewise.
1975 (fma<VCVTF:mode>4)): Likewise.
1976 (fma<VCVTF:mode>4_intrinsic): Likewise.
1977 (fmsub<VCVTF:mode>4)): Likewise.
1978 (fmsub<VCVTF:mode>4_intrinsic): Likewise.
1979 (neon_vrint<NEON_VRINT:nvrint_variant><VCVTF:mode>): Likewise.
1980 (ior<mode>3): Likewise.
1981 (and<mode>3): Likewise.
1982 (anddi3_neon): Likewise.
1983 (orn<mode>3_neon): Likewise.
1984 (orndi3_neon): Likewise.
1985 (bic<mode>3_neon): Likewise.
1986 (bicdi3_neon): Likewise.
1987 (xor<mode>3): Likewise.
1988 (one_cmpl<mode>2): Likewise.
1989 (abs<mode>2): Likewise.
1990 (neg<mode>2): Likewise.
1991 (umin<mode>3_neon): Likewise.
1992 (umax<mode>3_neon): Likewise.
1993 (smin<mode>3_neon): Likewise.
1994 (smax<mode>3_neon): Likewise.
1995 (vashl<mode>3): Likewise.
1996 (vashr<mode>3_imm): Likewise.
1997 (vlshr<mode>3_imm): Likewise.
1998 (ashl<mode>3_signed): Likewise.
1999 (ashl<mode>3_unsigned): Likewise.
2000 (neon_load_count): Likewise.
2001 (ashldi3_neon_noclobber): Likewise.
2002 (signed_shift_di3_neon): Likewise.
2003 (unsigned_shift_di3_neon): Likewise.
2004 (ashrdi3_neon_imm_noclobber): Likewise.
2005 (lshrdi3_neon_imm_noclobber): Likewise.
2006 (widen_ssum<mode>3): Likewise.
2007 (widen_usum<mode>3): Likewise.
2008 (quad_halves_<code>v4si): Likewise.
2009 (quad_halves_<code>v4sf): Likewise.
2010 (quad_halves_<code>v8hi): Likewise.
2011 (quad_halves_<code>v16qi): Likewise.
2012 (reduc_splus_v2di): Likewise.
2013 (neon_vpadd_internal<mode>): Likewise.
2014 (neon_vpsmin<mode>): Likewise.
2015 (neon_vpsmax<mode>): Likewise.
2016 (neon_vpumin<mode>): Likewise.
2017 (neon_vpumax<mode>): Likewise.
2018 (ss_add<mode>_neon): Likewise.
2019 (us_add<mode>_neon): Likewise.
2020 (ss_sub<mode>_neon): Likewise.
2021 (us_sub<mode>_neon): Likewise.
2022 (neon_vadd<mode>_unspec): Likewise.
2023 (neon_vaddl<mode>): Likewise.
2024 (neon_vaddw<mode>): Likewise.
2025 (neon_vhadd<mode>): Likewise.
2026 (neon_vqadd<mode>): Likewise.
2027 (neon_vaddhn<mode>): Likewise.
2028 (neon_vmul<mode>): Likewise.
2029 (neon_vmla<mode>): Likewise.
2030 (neon_vmlal<mode>): Likewise.
2031 (neon_vmls<mode>): Likewise.
2032 (neon_vmlsl<mode>): Likewise.
2033 (neon_vqdmulh<mode>): Likewise.
2034 (neon_vqdmlal<mode>): Likewise.
2035 (neon_vqdmlsl<mode>): Likewise.
2036 (neon_vmull<mode>): Likewise.
2037 (neon_vqdmull<mode>): Likewise.
2038 (neon_vsub<mode>_unspec): Likewise.
2039 (neon_vsubl<mode>): Likewise.
2040 (neon_vsubw<mode>): Likewise.
2041 (neon_vqsub<mode>): Likewise.
2042 (neon_vhsub<mode>): Likewise.
2043 (neon_vsubhn<mode>): Likewise.
2044 (neon_vceq<mode>): Likewise.
2045 (neon_vcge<mode>): Likewise.
2046 (neon_vcgeu<mode>): Likewise.
2047 (neon_vcgt<mode>): Likewise.
2048 (neon_vcgtu<mode>): Likewise.
2049 (neon_vcle<mode>): Likewise.
2050 (neon_vclt<mode>): Likewise.
2051 (neon_vcage<mode>): Likewise.
2052 (neon_vcagt<mode>): Likewise.
2053 (neon_vtst<mode>): Likewise.
2054 (neon_vabd<mode>): Likewise.
2055 (neon_vabdl<mode>): Likewise.
2056 (neon_vaba<mode>): Likewise.
2057 (neon_vabal<mode>): Likewise.
2058 (neon_vmax<mode>): Likewise.
2059 (neon_vmin<mode>): Likewise.
2060 (neon_vpaddl<mode>): Likewise.
2061 (neon_vpadal<mode>): Likewise.
2062 (neon_vpmax<mode>): Likewise.
2063 (neon_vpmin<mode>): Likewise.
2064 (neon_vrecps<mode>): Likewise.
2065 (neon_vrsqrts<mode>): Likewise.
2066 (neon_vqabs<mode>): Likewise.
2067 (neon_vqneg<mode>): Likewise.
2068 (neon_vcls<mode>): Likewise.
2069 (clz<mode>2): Likewise.
2070 (popcount<mode>2): Likewise.
2071 (neon_vrecpe): Likewise.
2072 (neon_vrsqrte): Likewise.
2073 (neon_vget_lane<mode>_sext_internal): Likewise.
2074 (neon_vget_lane<mode>_zext_internal): Likewise.
2075 (neon_vdup_n<mode>): Likewise.
2076 (neon_vdup_nv2di): Likewise.
2077 (neon_vdpu_lane<mode>_internal): Likewise.
2078 (neon_vswp<mode>): Likewise.
2079 (float<mode><V_cvtto>2): Likewise.
2080 (floatuns<mode><V_cvtto>2): Likewise.
2081 (fix_trunc<mode><V_cvtto>)2): Likewise
2082 (fixuns_trunc<mode><V_cvtto)2): Likewise.
2083 (neon_vcvt<mode>): Likewise.
2084 (neon_vcvtv4sfv4hf): Likewise.
2085 (neon_vcvtv4hfv4sf): Likewise.
2086 (neon_vcvt_n<mode>): Likewise.
2087 (neon_vmovn<mode>): Likewise.
2088 (neon_vqmovn<mode>): Likewise.
2089 (neon_vqmovun<mode>): Likewise.
2090 (neon_vmovl<mode>): Likewise.
2091 (neon_vmul_lane<mode>): Likewise.
2092 (neon_vmull_lane<mode>): Likewise.
2093 (neon_vqdmull_lane<mode>): Likewise.
2094 (neon_vqdmulh_lane<mode>): Likewise.
2095 (neon_vmla_lane<mode>): Likewise.
2096 (neon_vmlal_lane<mode>): Likewise.
2097 (neon_vqdmlal_lane<mode>): Likewise.
2098 (neon_vmls_lane<mode>): Likewise.
2099 (neon_vmlsl_lane<mode>): Likewise.
2100 (neon_vqdmlsl_lane<mode>): Likewise.
2101 (neon_vext<mode>): Likewise.
2102 (neon_vrev64<mode>): Likewise.
2103 (neon_vrev32<mode>): Likewise.
2104 (neon_vrev16<mode>): Likewise.
2105 (neon_vbsl<mode>_internal): Likewise.
2106 (neon_vshl<mode>): Likewise.
2107 (neon_vqshl<mode>): Likewise.
2108 (neon_vshr_n<mode>): Likewise.
2109 (neon_vshrn_n<mode>): Likewise.
2110 (neon_vqshrn_n<mode>): Likewise.
2111 (neon_vqshrun_n<mode>): Likewise.
2112 (neon_vshl_n<mode>): Likewise.
2113 (neon_vqshl_n<mode>): Likewise.
2114 (neon_vqshlu_n<mode>): Likewise.
2115 (neon_vshll_n<mode>): Likewise.
2116 (neon_vsra_n<mode>): Likewise.
2117 (neon_vsri_n<mode>): Likewise.
2118 (neon_vsli_n<mode>): Likewise.
2119 (neon_vtbl1v8qi): Likewise.
2120 (neon_vtbl2v8qi): Likewise.
2121 (neon_vtbl3v8qi): Likewise.
2122 (neon_vtbl4v8qi): Likewise.
2123 (neon_vtbx1v8qi): Likewise.
2124 (neon_vtbx2v8qi): Likewise.
2125 (neon_vtbx3v8qi): Likewise.
2126 (neon_vtbx4v8qi): Likewise.
2127 (neon_vtrn<mode>_internal): Likewise.
2128 (neon_vzip<mode>_internal): Likewise.
2129 (neon_vuzp<mode>_internal): Likewise.
2130 (neon_vld1<mode>): Likewise.
2131 (neon_vld1_lane<mode>): Likewise.
2132 (neon_vld1_dup<mode>): Likewise.
2133 (neon_vld1_dupv2di): Likewise.
2134 (neon_vst1<mode>): Likewise.
2135 (neon_vst1_lane<mode>): Likewise.
2136 (neon_vld2<mode>): Likewise.
2137 (neon_vld2_lane<mode>): Likewise.
2138 (neon_vld2_dup<mode>): Likewise.
2139 (neon_vst2<mode>): Likewise.
2140 (neon_vst2_lane<mode>): Likewise.
2141 (neon_vld3<mode>): Likewise.
2142 (neon_vld3qa<mode>): Likewise.
2143 (neon_vld3qb<mode>): Likewise.
2144 (neon_vld3_lane<mode>): Likewise.
2145 (neon_vld3_dup<mode>): Likewise.
2146 (neon_vst3<mode>): Likewise.
2147 (neon_vst3qa<mode>): Likewise.
2148 (neon_vst3qb<mode>): Likewise.
2149 (neon_vst3_lane<mode>): Likewise.
2150 (neon_vld4<mode>): Likewise.
2151 (neon_vld4qa<mode>): Likewise.
2152 (neon_vld4qb<mode>): Likewise.
2153 (neon_vld4_lane<mode>): Likewise.
2154 (neon_vld4_dup<mode>): Likewise.
2155 (neon_vst4<mode>): Likewise.
2156 (neon_vst4qa<mode>): Likewise.
2157 (neon_vst4qb<mode>): Likewise.
2158 (neon_vst4_lane<mode>): Likewise.
2159 (neon_vec_unpack<US>_lo_<mode>): Likewise.
2160 (neon_vec_unpack<US>_hi_<mode>): Likewise.
2161 (neon_vec_<US>mult_lo_<mode>): Likewise.
2162 (neon_vec_<US>mult_hi_<mode>): Likewise.
2163 (neon_vec_<US>shiftl_<mode>): Likewise.
2164 (neon_unpack<US>_<mode>): Likewise.
2165 (neon_vec_<US>mult_<mode>): Likewise.
2166 (vec_pack_trunc_<mode>): Likewise.
2167 (neon_vec_pack_trunk_<mode>): Likewise.
2168 (neon_vabd<mode>_2): Likewise.
2169 (neon_vabd<mode>_3): Likewise.
2170 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
2171 (thumb2_movsi_vfp): Likewise.
2172 (movdi_vfp): Likewise.
2173 (movdi_vfp_cortexa8): Likewise.
2174 (movhf_vfp_neon): Likewise.
2175 (movhf_vfp): Likewiwse.
2176 (movsf_vfp): Likewiwse.
2177 (thumb2_movsf_vfp): Likewiwse.
2178 (movdf_vfp): Likewise.
2179 (thumb2_movdf_vfp): Likewise.
2180 (movsfcc_vfp): Likewise.
2181 (thumb2_movsfcc_vfp): Likewise.
2182 (movdfcc_vfp): Likewise.
2183 (thumb2_movdfcc_vfp): Likewise.
2184 * config/arm/arm.c (cortexa7_older_only): Update for attribute change.
2185 * config/arm/arm1020e.md (v10_c2v): Update for attribute change.
2186 (v10_v2c): Likewise.
2187 * config/arm/cortex-a15-neon.md (cortex_a15_neon_int_1): Update for
2188 attribute change.
2189 (cortex_a15_neon_int_2): Likewise.
2190 (cortex_a15_neon_int_3): Likewise.
2191 (cortex_a15_neon_int_4): Likewise.
2192 (cortex_a15_neon_int_5): Likewise.
2193 (cortex_a15_neon_vqneg_vqabs): Likewise.
2194 (cortex_a15_neon_vmov): Likewise.
2195 (cortex_a15_neon_vaba): Likewise.
2196 (cortex_a15_neon_vaba_qqq): Likewise.
2197 (cortex_a15_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
2198 (cortex_a15_neon_mul_qqq_8_16_32_ddd_32): Likewise.
2199 (cortex_a15_neon_mul_qdd_64_32_long_qqd_16_ddd_32_\
2200 scalar_64_32_long_scalar): Likewise.
2201 (cortex_a15_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
2202 (cortex_a15_neon_mla_qqq_8_16): Likewise.
2203 (cortex_a15_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
2204 lotype_qdd_64_32_long): Likewise.
2205 (cortex_a15_neon_mla_qqq_32_qqd_32_scalar): Likewise.
2206 (cortex_a15_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
2207 (cortex_a15_neon_mul_qqd_32_scalar): Likewise.
2208 (cortex_a15_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
2209 (cortex_a15_neon_shift_1): Likewise.
2210 (cortex_a15_neon_shift_2): Likewise.
2211 (cortex_a15_neon_shift_3): Likewise.
2212 (cortex_a15_neon_vshl_ddd): Likewise.
2213 (cortex_a15_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
2214 (cortex_a15_neon_vsra_vrsra): Likewise.
2215 (cortex_a15_neon_fp_vadd_ddd_vabs_dd): Likewise.
2216 (cortex_a15_neon_fp_vadd_qqq_vabs_qq): Likewise.
2217 (cortex_a15_neon_fp_vmul_ddd): Likewise.
2218 (cortex_a15_neon_fp_vmul_qqd): Likewise.
2219 (cortex_a15_neon_fp_vmla_ddd): Likewise.
2220 (cortex_a15_neon_fp_vmla_qqq): Likewise.
2221 (cortex_a15_neon_fp_vmla_ddd_scalar): Likewise.
2222 (cortex_a15_neon_fp_vmla_qqq_scalar): Likewise.
2223 (cortex_a15_neon_fp_vrecps_vrsqrts_ddd): Likewise.
2224 (cortex_a15_neon_fp_vrecps_vrsqrts_qqq): Likewise.
2225 (cortex_a15_neon_bp_simple): Likewise.
2226 (cortex_a15_neon_bp_2cycle): Likewise.
2227 (cortex_a15_neon_bp_3cycle): Likewise.
2228 (cortex_a15_neon_vld1_1_2_regs): Likewise.
2229 (cortex_a15_neon_vld1_3_4_regs): Likewise.
2230 (cortex_a15_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
2231 (cortex_a15_neon_vld2_4_regs): Likewise.
2232 (cortex_a15_neon_vld3_vld4): Likewise.
2233 (cortex_a15_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
2234 (cortex_a15_neon_vst1_3_4_regs): Likewise.
2235 (cortex_a15_neon_vst2_4_regs_vst3_vst4): Likewise.
2236 (cortex_a15_neon_vst3_vst4): Likewise.
2237 (cortex_a15_neon_vld1_vld2_lane): Likewise.
2238 (cortex_a15_neon_vld3_vld4_lane" 10
2239 (cortex_a15_neon_vst1_vst2_lane): Likewise.
2240 (cortex_a15_neon_vst3_vst4_lane): Likewise.
2241 (cortex_a15_neon_vld3_vld4_all_lanes): Likewise.
2242 (cortex_a15_neon_ldm_2): Likewise.0
2243 (cortex_a15_neon_stm_2): Likewise.
2244 (cortex_a15_neon_mcr): Likewise.
2245 (cortex_a15_neon_mcr_2_mcrr): Likewise.
2246 (cortex_a15_neon_mrc): Likewise.
2247 (cortex_a15_neon_mrrc): Likewise.
2248 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
2249 change.
2250 (cortex_a15_alu_shift): Likewise.
2251 (cortex_a15_alu_shift_reg): Likewise.
2252 (cortex_a15_mult32): Likewise.
2253 (cortex_a15_mult64): Likewise.
2254 (cortex_a15_block): Likewise.
2255 (cortex_a15_branch): Likewise.
2256 (cortex_a15_load1): Likewise.
2257 (cortex_a15_load3): Likewise.
2258 (cortex_a15_store1): Likewise.
2259 (cortex_a15_store3): Likewise.
2260 (cortex_a15_call): Likewise.
f43245d1 2261 * config/arm/cortex-a5.md (cortex_a5_r2f): Update for attribute change.
003bb7f3
JG
2262 (cortex_a5_f2r): Likewise.
2263 * config/arm/cortex-a53.md (cortex_a53_r2f): Update for attribute
2264 change.
2265 (cortex_a53_f2r): Likewise.
2266 * config/arm/cortex-a7.md
2267 (cortex_a7_branch): Update for attribute change.
2268 (cortex_a7_call): Likewise.
2269 (cortex_a7_alu_imm): Likewise.
2270 (cortex_a7_alu_reg): Likewise.
2271 (cortex_a7_alu_shift): Likewise.
2272 (cortex_a7_mul): Likewise.
2273 (cortex_a7_load1): Likewise.
2274 (cortex_a7_store1): Likewise.
2275 (cortex_a7_load2): Likewise.
2276 (cortex_a7_store2): Likewise.
2277 (cortex_a7_load3): Likewise.
2278 (cortex_a7_store3): Likewise.
2279 (cortex_a7_load4): Likewise.
2280 (cortex_a7_store4): Likewise.
2281 (cortex_a7_fpalu): Likewise.
2282 (cortex_a7_fconst): Likewise.
2283 (cortex_a7_fpmuls): Likewise.
2284 (cortex_a7_neon_mul): Likewise.
2285 (cortex_a7_fpmacs): Likewise.
2286 (cortex_a7_neon_mla: Likewise.
2287 (cortex_a7_fpmuld: Likewise.
2288 (cortex_a7_fpmacd: Likewise.
2289 (cortex_a7_fpfmad: Likewise.
2290 (cortex_a7_fdivs: Likewise.
2291 (cortex_a7_fdivd: Likewise.
2292 (cortex_a7_r2f: Likewise.
2293 (cortex_a7_f2r: Likewise.
2294 (cortex_a7_f_flags: Likewise.
2295 (cortex_a7_f_loads: Likewise.
2296 (cortex_a7_f_loadd: Likewise.
2297 (cortex_a7_f_stores: Likewise.
2298 (cortex_a7_f_stored: Likewise.
2299 (cortex_a7_neon): Likewise.
2300 * config/arm/cortex-a8-neon.md
2301 (cortex_a8_neon_mrc): Update for attribute change.
2302 (cortex_a8_neon_mrrc): Likewise.
2303 (cortex_a8_neon_int_1): Likewise.
2304 (cortex_a8_neon_int_2): Likewise.
2305 (cortex_a8_neon_int_3): Likewise.
2306 (cortex_a8_neon_int_4): Likewise.
2307 (cortex_a8_neon_int_5): Likewise.
2308 (cortex_a8_neon_vqneg_vqabs): Likewise.
2309 (cortex_a8_neon_vmov): Likewise.
2310 (cortex_a8_neon_vaba): Likewise.
2311 (cortex_a8_neon_vaba_qqq): Likewise.
2312 (cortex_a8_neon_vsma): Likewise.
2313 (cortex_a8_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
2314 (cortex_a8_neon_mul_qqq_8_16_32_ddd_32): Likewise.
f43245d1
UB
2315 (cortex_a8_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
2316 long_scalar): Likewise.
003bb7f3
JG
2317 (cortex_a8_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
2318 (cortex_a8_neon_mla_qqq_8_16): Likewise.
2319 (cortex_a8_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
2320 long_scalar_qdd_64_32_long): Likewise.
2321 (cortex_a8_neon_mla_qqq_32_qqd_32_scalar): Likewise.
2322 (cortex_a8_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
2323 (cortex_a8_neon_mul_qqd_32_scalar): Likewise.
2324 (cortex_a8_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
2325 (cortex_a8_neon_shift_1): Likewise.
2326 (cortex_a8_neon_shift_2): Likewise.
2327 (cortex_a8_neon_shift_3): Likewise.
2328 (cortex_a8_neon_vshl_ddd): Likewise.
2329 (cortex_a8_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
2330 (cortex_a8_neon_vsra_vrsra): Likewise.
2331 (cortex_a8_neon_fp_vadd_ddd_vabs_dd): Likewise.
2332 (cortex_a8_neon_fp_vadd_qqq_vabs_qq): Likewise.
2333 (cortex_a8_neon_fp_vsum): Likewise.
2334 (cortex_a8_neon_fp_vmul_ddd): Likewise.
2335 (cortex_a8_neon_fp_vmul_qqd): Likewise.
2336 (cortex_a8_neon_fp_vmla_ddd): Likewise.
2337 (cortex_a8_neon_fp_vmla_qqq): Likewise.
2338 (cortex_a8_neon_fp_vmla_ddd_scalar): Likewise.
2339 (cortex_a8_neon_fp_vmla_qqq_scalar): Likewise.
2340 (cortex_a8_neon_fp_vrecps_vrsqrts_ddd): Likewise.
2341 (cortex_a8_neon_fp_vrecps_vrsqrts_qqq): Likewise.
2342 (cortex_a8_neon_bp_simple): Likewise.
2343 (cortex_a8_neon_bp_2cycle): Likewise.
2344 (cortex_a8_neon_bp_3cycle): Likewise.
2345 (cortex_a8_neon_ldr): Likewise.
2346 (cortex_a8_neon_str): Likewise.
2347 (cortex_a8_neon_vld1_1_2_regs): Likewise.
2348 (cortex_a8_neon_vld1_3_4_regs): Likewise.
2349 (cortex_a8_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
2350 (cortex_a8_neon_vld2_4_regs): Likewise.
2351 (cortex_a8_neon_vld3_vld4): Likewise.
2352 (cortex_a8_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
2353 (cortex_a8_neon_vst1_3_4_regs): Likewise.
2354 (cortex_a8_neon_vst2_4_regs_vst3_vst4): Likewise.
2355 (cortex_a8_neon_vst3_vst4): Likewise.
2356 (cortex_a8_neon_vld1_vld2_lane): Likewise.
2357 (cortex_a8_neon_vld3_vld4_lane): Likewise.
2358 (cortex_a8_neon_vst1_vst2_lane): Likewise.
2359 (cortex_a8_neon_vst3_vst4_lane): Likewise.
2360 (cortex_a8_neon_vld3_vld4_all_lanes): Likewise.
2361 (cortex_a8_neon_mcr): Likewise.
2362 (cortex_a8_neon_mcr_2_mcrr): Likewise.
f43245d1 2363 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
003bb7f3
JG
2364 * config/arm/cortex-a9-neon.md (ca9_neon_mrc): Update for attribute
2365 change.
2366 (ca9_neon_mrrc): Likewise.
2367 (cortex_a9_neon_int_1): Likewise.
2368 (cortex_a9_neon_int_2): Likewise.
2369 (cortex_a9_neon_int_3): Likewise.
2370 (cortex_a9_neon_int_4): Likewise.
2371 (cortex_a9_neon_int_5): Likewise.
2372 (cortex_a9_neon_vqneg_vqabs): Likewise.
2373 (cortex_a9_neon_vmov): Likewise.
2374 (cortex_a9_neon_vaba): Likewise.
2375 (cortex_a9_neon_vaba_qqq): Likewise.
2376 (cortex_a9_neon_vsma): Likewise.
2377 (cortex_a9_neon_mul_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
2378 (cortex_a9_neon_mul_qqq_8_16_32_ddd_32): Likewise.
f43245d1
UB
2379 (cortex_a9_neon_mul_qdd_64_32_long_qqd_16_ddd_32_scalar_64_32_\
2380 long_scalar): Likewise.
003bb7f3
JG
2381 (cortex_a9_neon_mla_ddd_8_16_qdd_16_8_long_32_16_long): Likewise.
2382 (cortex_a9_neon_mla_qqq_8_16): Likewise.
2383 (cortex_a9_neon_mla_ddd_32_qqd_16_ddd_32_scalar_qdd_64_32_\
2384 long_scalar_qdd_64_32_long): Likewise.
2385 (cortex_a9_neon_mla_qqq_32_qqd_32_scalar): Likewise.
2386 (cortex_a9_neon_mul_ddd_16_scalar_32_16_long_scalar): Likewise.
2387 (cortex_a9_neon_mul_qqd_32_scalar): Likewise.
2388 (cortex_a9_neon_mla_ddd_16_scalar_qdd_32_16_long_scalar): Likewise.
2389 (cortex_a9_neon_shift_1): Likewise.
2390 (cortex_a9_neon_shift_2): Likewise.
2391 (cortex_a9_neon_shift_3): Likewise.
2392 (cortex_a9_neon_vshl_ddd): Likewise.
2393 (cortex_a9_neon_vqshl_vrshl_vqrshl_qqq): Likewise.
2394 (cortex_a9_neon_vsra_vrsra): Likewise.
2395 (cortex_a9_neon_fp_vadd_ddd_vabs_dd): Likewise.
2396 (cortex_a9_neon_fp_vadd_qqq_vabs_qq): Likewise.
2397 (cortex_a9_neon_fp_vsum): Likewise.
2398 (cortex_a9_neon_fp_vmul_ddd): Likewise.
2399 (cortex_a9_neon_fp_vmul_qqd): Likewise.
2400 (cortex_a9_neon_fp_vmla_ddd): Likewise.
2401 (cortex_a9_neon_fp_vmla_qqq): Likewise.
2402 (cortex_a9_neon_fp_vmla_ddd_scalar): Likewise.
2403 (cortex_a9_neon_fp_vmla_qqq_scalar): Likewise.
2404 (cortex_a9_neon_fp_vrecps_vrsqrts_ddd): Likewise.
2405 (cortex_a9_neon_fp_vrecps_vrsqrts_qqq): Likewise.
2406 (cortex_a9_neon_bp_simple): Likewise.
2407 (cortex_a9_neon_bp_2cycle): Likewise.
2408 (cortex_a9_neon_bp_3cycle): Likewise.
2409 (cortex_a9_neon_ldr): Likewise.
2410 (cortex_a9_neon_str): Likewise.
2411 (cortex_a9_neon_vld1_1_2_regs): Likewise.
2412 (cortex_a9_neon_vld1_3_4_regs): Likewise.
2413 (cortex_a9_neon_vld2_2_regs_vld1_vld2_all_lanes): Likewise.
2414 (cortex_a9_neon_vld2_4_regs): Likewise.
2415 (cortex_a9_neon_vld3_vld4): Likewise.
2416 (cortex_a9_neon_vst1_1_2_regs_vst2_2_regs): Likewise.
2417 (cortex_a9_neon_vst1_3_4_regs): Likewise.
2418 (cortex_a9_neon_vst2_4_regs_vst3_vst4): Likewise.
2419 (cortex_a9_neon_vst3_vst4): Likewise.
2420 (cortex_a9_neon_vld1_vld2_lane): Likewise.
2421 (cortex_a9_neon_vld3_vld4_lane): Likewise.
2422 (cortex_a9_neon_vst1_vst2_lane): Likewise.
2423 (cortex_a9_neon_vst3_vst4_lane): Likewise.
2424 (cortex_a9_neon_vld3_vld4_all_lanes): Likewise.
2425 (cortex_a9_neon_mcr): Likewise.
2426 (cortex_a9_neon_mcr_2_mcrr): Likewise.
2427 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
2428 (cortex_a9_fps): Likewise.
2429 * config/arm/cortex-m4-fpu.md (cortex_m4_vmov_2): Update for attribute
2430 change.
2431 (cortex_m4_fmuls): Likewise.
2432 * config/arm/cortex-r4f.md (cortex_r4_mcr): Update for attribute
2433 change.
2434 (cortex_r4_mrc): Likewise.
2435 * config/arm/iterators.md: Update comment referring to neon_type.
f43245d1 2436 * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Update for attribute change.
003bb7f3 2437 (iwmmxt_movsi_insn): Likewise.
f43245d1
UB
2438 * config/arm/marvell-pj4.md (pj4_vfp_to_core): Update for
2439 attribute change.
003bb7f3
JG
2440 (pj4_core_to_vfp): Likewise.
2441 * config/arm/neon-schedgen.ml (emit_insn_reservations): Update for
2442 attribute change.
2443 * config/arm/vfp11.md (vfp_fload): Update for attribute change.
2444 (vfp_fstore): Likewise.
2445 * doc/md.texi: Change references to neon_type to refer to type.
2446
fbe0dc78
DS
24472013-09-04 Dodji Seketeli <dodji@redhat.com>
2448
2449 * tree.h (DECL_BUILT_IN): Fix typo in comment.
2450
c167bc5b
DE
24512013-09-04 David Edelsohn <dje.gcc@gmail.com>
2452
2453 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Only emit
2454 lglobl if not weak.
2455
035cb59f
ER
24562013-09-04 Easwaran Raman <eraman@google.com>
2457
2458 PR middle-end/57370
2459 * tree-ssa-reassoc.c (get_stmt_uid_with_default): New function,
2460 (build_and_add_sum): Use it.
2461 (appears_later_in_bb): Simplify code.
2462
71191083
TJ
24632013-09-04 Teresa Johnson <tejohnson@google.com>
2464
2465 * dumpfile.c (dump_finish): Don't close stderr/stdout.
2466
0c488213
JG
24672013-09-04 James Greenhalgh <james.greenhalgh@arm.com>
2468
2469 * config/aarch64/arm_neon.h (vaddvq_<su>64): Fix return types.
2470
61a74079
JH
24712013-09-04 Jan Hubicka <jh@suse.cz>
2472
2473 * Makefile.in (ipa-devirt.o): Add dependency on diagnostic.h
2474 * ipa-devirt.c: Include diganostic.h
2475 (odr_type_d): Add types and types_set.
2476 (hash_type_name): Work for types with vtables during LTO.
2477 (odr_hasher::remove): Fix comment; destroy types_set.
2478 (add_type_duplicate): New function,
2479 (get_odr_type): Use it.
2480 (dump_type_inheritance_graph): Dump type duplicates.
2481 * ipa.c (symtab_remove_unreachable_nodes): Build type inheritance
2482 graph.
2483 * tree.c (types_same_for_odr): Give exact answers on types with
2484 virtual tables.
2485
24ba8195
DS
24862013-09-04 Dodji Seketeli <dodji@redhat.com>
2487
2488 * tree.h (DECL_BUILT_IN, DECL_IS_BUILTIN): Add more comments
2489 explaining their differences.
2490
0a04869e
SKS
24912013-09-04 Sandeep Kumar Singh<Sandeep.Singh2@kpitcummins.com>
2492
2493 * config/rx/rx.h: Add option -mcpu for target variants RX100 and RX200.
2494
3b18bc42
JL
24952013-09-03 Jeff Law <law@redhat.com>
2496
2497 * tree-ssa-threadedge.c (thread_across_edge): Record entire path
2498 when not threading through a joiner block. Pass joiner/no joiner
2499 state to register_jump_thread.
2500 * tree-ssa-threadupdate.c (register_jump_thread): Get joiner/no joiner
2501 state from argument rather than implying on path length.
2502 Dump the entire jump thread path into debugging dump.
2503 * tree-flow.h (register_jump_thread): Update prototype.
2504
ae84e151
XDL
25052013-08-29 Xinliang David Li <davidxl@google.com>
2506
2507 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
2508 Remove a trivial gcc_assert.
2509
c716e67f
XDL
25102013-08-29 Xinliang David Li <davidxl@google.com>
2511
2512 * tree-vect-slp.c (destroy_bb_vec_info): Data ref cleanup.
2513 * tree-vect-loop.c (destroy_bb_vec_info): Ditto.
2514 * tree-vect-data-refs.c (vect_compute_data_ref_alignment):
2515 Delay base decl alignment adjustment.
2516 * tree-vectorizer.c (vect_destroy_datarefs): New function.
2517 * tree-vectorizer.h: New data structure.
2518 (set_dr_misalignment): New function.
2519 (dr_misalignment): Ditto.
2520 * tree-vect-stmts.c (vectorizable_store): Ensure alignment.
2521 (vectorizable_load): Ditto.
2522 (ensure_base_align): New function.
2523 (vectorize_loops): Add dbg_cnt support.
2524 (execute_vect_slp): Ditto.
2525 * dbgcnt.def: New debug counter.
2526 * Makefile: New dependency.
2527
db8800bc
MI
25282013-09-03 Meador Inge <meadori@codesourcery.com>
2529
2530 Revert:
2531
2532 2013-08-30 Meador Inge <meadori@codesourcery.com>
2533
2534 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
2535
0d9b4f5c
DE
25362013-09-03 David Edelsohn <dje.gcc@gmail.com>
2537
2538 * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Emit lglobl for
2539 function descriptor.
2540
29e810b9
RB
25412013-09-03 Richard Biener <rguenther@suse.de>
2542
2543 * tree-affine.c (add_elt_to_tree): Fix association issue,
2544 avoid useless converts and make sure to always return a
2545 properly typed result.
2546
dbfc2894
RB
25472013-09-03 Richard Biener <rguenther@suse.de>
2548
2549 PR middle-end/57656
2550 * fold-const.c (negate_expr_p): Fix division case.
2551 (negate_expr): Likewise.
2552
fa3bf4ce
RB
25532013-09-03 Richard Biener <rguenther@suse.de>
2554
2555 PR lto/58285
2556 * tree-streamer-out.c: Include tm.h.
2557 * Makefile.in (tree-streamer-out.o): Depend on $(TM_H).
2558
a64bbb3f
JH
25592013-09-03 Jan Hubicka <jh@suse.cz>
2560
2561 * tree-profile.c (tree_profiling): Cleanup CFG when done.
2562
93ed07e2
AM
25632013-09-03 Alan Modra <amodra@gmail.com>
2564
2565 * config.gcc (powerpc*-*-linux*): Add support for little-endian
2566 multilibs to big-endian target and vice versa.
2567 * config/rs6000/t-linux64: Use := assignment on all vars.
2568 (MULTILIB_EXTRA_OPTS): Remove fPIC.
2569 (MULTILIB_OSDIRNAMES): Specify using mapping from multilib_options.
2570 * config/rs6000/t-linux64le: New file.
2571 * config/rs6000/t-linux64bele: New file.
2572 * config/rs6000/t-linux64lebe: New file.
2573
07d6cd64
JH
25742013-09-02 Jan Hubicka <jh@suse.cz>
2575
2576 * ipa-inline-transform.c (inline_transform): Do not
2577 optimize_inline_calls when not optimizing.
2578
8e4c9a10
JH
25792013-09-02 Jan Hubicka <jh@suse.cz>
2580
2581 * lto-symtab.c (lto_symtab_merge_symbols): Add comments; merge
2582 duplicated nodes for assembler names.
2583 * symtab.c (symtab_unregister_node): Do not attempt to unlink
2584 hard registers from assembler name hash.
2585
c91061e6
JH
25862013-09-02 Jan Hubicka <jh@suse.cz>
2587
2588 * ipa-split.c (execute_split_functions): Split externally visible
2589 functions called once.
2590
2fd0985c
MJ
25912013-09-02 Martin Jambor <mjambor@suse.cz>
2592
2593 PR ipa/58106
2594 * ipa-prop.c (ipa_edge_duplication_hook): Always put new rdesc to the
2595 linked list. When finding the correct duplicate, also consider also
2596 the caller in additon to its inlined_to node.
2597
91bd4114
JG
25982013-09-02 James Greenhalgh <james.greenhalgh@arm.com>
2599
2600 * config/aarch64/aarch64-simd-builtins.def
2601 (dup_lane_scalar): Remove.
2602 * config/aarch64/aarch64-simd.md
2603 (aarch64_simd_dup): Add 'w->w' alternative.
2604 (aarch64_dup_lane<mode>): Allow for VALL.
2605 (aarch64_dup_lane_scalar<mode>): Remove.
2606 (aarch64_dup_lane_<vswap_width_name><mode>): New.
2607 (aarch64_get_lane_signed<mode>): Add w->w altenative.
2608 (aarch64_get_lane_unsigned<mode>): Likewise.
2609 (aarch64_get_lane<mode>): Likewise.
2610 * config/aarch64/aarch64.c (aarch64_evpc_dup): New.
2611 (aarch64_expand_vec_perm_const_1): Use aarch64_evpc_dup.
2612 * config/aarch64/iterators.md (VSWAP_WIDTH): New.
2613 (VCON): Change container of V2SF.
2614 (vswap_width_name): Likewise.
2615 * config/aarch64/arm_neon.h
2616 (__aarch64_vdup_lane_any): New.
2617 (__aarch64_vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
2618 (vdup<q>_n_<psuf><8,16,32,64>): Convert to C implementation.
2619 (vdup<q>_lane<q>_<fpsu><8,16,32,64>): Likewise.
2620
d617d2d8
EB
26212013-09-02 Eric Botcazou <ebotcazou@adacore.com>
2622
2623 PR middle-end/56382
2624 * expr.c (emit_move_complex): Do not move complex FP values as parts if
2625 the source or the destination is a single hard register.
2626
63fdb7be
RB
26272013-09-02 Richard Biener <rguenther@suse.de>
2628
2629 PR middle-end/57511
2630 * tree-scalar-evolution.c (instantiate_scev_name): Allow
2631 non-linear SCEVs.
2632
78de2333
RB
26332013-09-02 Richard Biener <rguenther@suse.de>
2634
2635 * tree-affine.c (add_elt_to_tree): Avoid converting all pointer
2636 arithmetic to sizetype.
2637
85ff4ec6
BC
26382013-09-02 Bin Cheng <bin.cheng@arm.com>
2639
2640 * tree-ssa-loop-ivopts.c (set_autoinc_for_original_candidates):
2641 Find auto-increment use both before and after candidate.
2642
576016fe
MP
26432013-09-02 Marek Polacek <polacek@redhat.com>
2644
2645 * Makefile.in (ubsan.o): Add $(TM_P_H) dependency.
2646
08f835dc
JH
26472013-09-01 Jan Hubicka <jh@suse.cz>
2648
2649 * Makefile.in: Add ipa-profile.o
2650 (ipa.o, ipa-devrit.o, ipa-inline-analysis.o): Adjust dependencies.
2651 * cgraph.c (struct cgraph_propagate_frequency_data,
2652 cgraph_propagate_frequency_1, cgraph_propagate_frequency): Move to
2653 ipa-profile.c; replace cgraph_ by ipa_ prefix.
2654 * cgraph.h (cgraph_propagate_frequency): Remove.
f43245d1
UB
2655 * ipa-inline-analysis.c: Include ipa-utils.h;
2656 drop duplicated cfgloop.h.
08f835dc
JH
2657 (inline_update_callee_summaries): Update.
2658 * ipa-profile.c: New file.
2659 * ipa-utils.h (ipa_propagate_frequency): Declare.
2660 * ipa.c: Do not include pointer-set.h, hash-table.h, lto-streamer.h,
f43245d1 2661 data-streamer.h, value-prof.h.
08f835dc
JH
2662 (symtab_remove_unreachable_nodes): Update profile.
2663 (struct histogram_entry, histogram, histogram_pool, histogram_hash,
2664 account_time_size, cmp_counts, dump_histogram,
2665 ipa_profile_generate_summary, ipa_profile_write_summary,
2666 ipa_profile_read_summary, ipa_profile, gate_ipa_profile,
2667 pass_data_ipa_profile, pass_ipa_profile, make_pass_ipa_profile):
f43245d1 2668 Move to ipa-profile.c.
08f835dc 2669
cec8583c
JDA
26702013-09-01 John David Anglin <danglin@gcc.gnu.org>
2671
2672 * config/pa/pa.md: Allow "const 0" operand 1 in "scc" insns.
2673
bbc9396b
JH
26742013-09-01 Jan Hubicka <jh@suse.cz>
2675
2676 * common.opt (fdevirtualize-speculatively): New function.
2677 * invoke.texi (fdevirtualize-speculatively): Document.
2678 * ipa-devirt.c: Include ipa-inline.h
2679 (likely_target_p): New function.
2680 (ipa_devirt): New function.
2681 (gate_ipa_devirt): New function.
2682 (pass_data_ipa_devirt): New static var.
2683 (pass_ipa_devirt): Likewise.
2684 (make_pass_ipa_devirt): New function.
2685 * opts.c (default_options): Add OPT_fdevirtualize_speculatively.
2686 (common_handle_option): Disable devirtualization when
2687 value range profiling is available.
2688 * passes.def (pass_ipa_devirt): Add.
2689 * timever.def (TV_IPA_DEVIRT): New timevar.
f43245d1 2690 * tree-pass.h (make_pass_ipa_devirt):
bbc9396b 2691
0cea211e
IS
26922013-09-01 Iain Sandoe <iain@codesourcery.com>
2693
2694 * config/darwin.h (LINK_COMMAND_SPEC_A): Revise sanitizer specs to
2695 include sanitize(undefined).
2696
5e351e96
DN
26972013-08-31 Diego Novillo <dnovillo@google.com>
2698
2699 * Makefile.in (TREE_CORE_H): Define.
2700 (TREE_H): Use.
2701 (GTFILES): Add tree-core.h.
2702 * builtins.c (built_in_class_names): Use BUILT_IN_LAST to
2703 size the array.
2704 * tree-core.h: New file.
2705 Move all data structures, enum, typedefs, global
2706 declarations and constants from ...
2707 * tree.h: ... here.
2708
63bf9a90
JH
27092013-08-31 Jan Hubicka <jh@suse.cz>
2710
2711 * bulitins.c (expand_builtin): Do not early exit for gcov
2712 instrumented functions.
2713
5c0abd6a
MP
27142013-08-31 Marek Polacek <polacek@redhat.com>
2715
2716 * ubsan.c: Include tm_p.h.
2717
4843f032
JH
27182013-08-31 Jan Hubicka <jh@suse.cz>
2719
8356c89c
JH
2720 * gimple-streamer-in.c (input_gimple_stmt): Silence parameter unused
2721 warning.
2722
4843f032
JH
2723 * cgraph.c (cgraph_get_body): Update call of lto_input_function_body.
2724 * gimple-streamer-in.c (input_gimple_stmt): Move sanity check to ...
5e581212 2725 * tree-cfg.c (verify_gimple_label): ... here.
4843f032
JH
2726 * ipa-utils.c: Include lto-streamer.h, ipa-inline.h
2727 (ipa_merge_profiles): New function.
2728 * lto-streamer-in.c (lto_read_body): Take node instead of fn_decl.
2729 (lto_input_function_body): Likewise.
5e581212
JH
2730 * ipa-utils.h (ipa_merge_profiles): Declare.
2731 * lto-streamer.h (lto_input_function_body): Update prototype.
2732 (emit_label_in_global_context_p): Remove.
2733 * lto-symtab.c: Include ipa-utils.h
2734 (lto_cgraph_replace_node): Use ipa_merge_profiles.
4843f032 2735
57292ce9
JH
27362013-08-31 Jan Hubicka <jh@suse.cz>
2737
2738 * cgraph.c (cgraph_speculative_call_info): Fix ref lookup
2739
b9cbfeeb
JH
27402013-08-31 Jan Hubicka <jh@suse.cz>
2741
2742 * basic-block.h (apply_scale): Make scale parmeter gcov_type.
2743
41dedebd
UB
27442013-08-31 Uros Bizjak <ubizjak@gmail.com>
2745
2746 * config/alpha/alpha.c (alpha_emit_conditional_move): Update
2747 "cmp" RTX before signed_comparison_operator check to account
2748 for "code" changes.
2749
06d65050
JH
27502013-08-30 Jan Hubicka <jh@suse.cz>
2751
41dedebd 2752 * ipa-prop.c (ipa_set_jf_known_type): Check that we add only records.
06d65050
JH
2753 (detect_type_change_1): Rename to ...
2754 (detect_type_change): ... this one; early return on non-polymorphic
2755 types.
41dedebd 2756 (detect_type_change_ssa): Add comp_type parameter; update
06d65050
JH
2757 use of detect_type_change.
2758 (compute_complex_assign_jump_func): Add param_type parameter;
2759 update use of detect_type_change_ssa.
2760 (compute_complex_ancestor_jump_func): Likewise.
2761 (ipa_get_callee_param_type): New function.
2762 (ipa_compute_jump_functions_for_edge): Compute parameter type;
2763 update calls to the jump function computation functions.
2764
600b5b1d
TJ
27652013-08-30 Teresa Johnson <tejohnson@google.com>
2766 Steven Bosscher <steven@gcc.gnu.org>
2767
2768 * cfgrtl.c (fixup_new_cold_bb): New routine.
2769 (commit_edge_insertions): Invoke fixup_partitions.
2770 (find_partition_fixes): New routine.
2771 (fixup_partitions): Ditto.
2772 (verify_hot_cold_block_grouping): Update comments.
2773 (rtl_verify_edges): Invoke find_partition_fixes.
2774 (rtl_verify_bb_pointers): Update comments.
2775 (rtl_verify_bb_layout): Ditto.
2776 * basic-block.h (probably_never_executed_edge_p): Declare.
2777 (fixup_partitions): Ditto.
2778 * cfgcleanup.c (try_optimize_cfg): Invoke fixup_partitions.
2779 * bb-reorder.c (sanitize_hot_paths): New function.
2780 (find_rarely_executed_basic_blocks_and_crossing_edges): Invoke
2781 sanitize_hot_paths.
2782 * predict.c (probably_never_executed_edge_p): New routine.
2783 * cfg.c (check_bb_profile): Add partition insanity warnings.
2784
0a6ea5c9
MI
27852013-08-30 Meador Inge <meadori@codesourcery.com>
2786
2787 * tree-vrp.c (check_array_ref): Bail out on zero-length arrays.
2788
de5a5fa1
MP
27892013-08-30 Marek Polacek <polacek@redhat.com>
2790
2791 * Makefile.in (ubsan.o): Add.
2792 (c-family/c-ubsan.o): Add.
2793 (builtins.o): Add ubsan.h dependency.
2794 * ubsan.h: New file.
2795 * ubsan.c: New file.
2796 * common.opt: Add -fsanitize=undefined option.
2797 (flag_sanitize): Add variable.
2798 (fsanitize=): Add option. Add Driver.
2799 (fsanitize=thread): Remove option.
2800 (fsanitize=address): Likewise.
2801 (static-libubsan): New option.
2802 * doc/invoke.texi: Document the new flag and -static-libubsan.
2803 * sanitizer.def (DEF_SANITIZER_BUILTIN): Define.
2804 (BUILT_IN_UBSAN_HANDLE_BUILTIN_UNREACHABLE): Define.
2805 * builtin-attrs.def (ATTR_COLD): Define.
2806 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
2807 * builtins.def (BUILT_IN_UBSAN_HANDLE_DIVREM_OVERFLOW,
2808 BUILT_IN_UBSAN_HANDLE_SHIFT_OUT_OF_BOUNDS): Define.
2809 * flag-types.h (sanitize_code): New enum.
2810 * opts.c (common_handle_option): Parse command line arguments
2811 of -fsanitize=. Add -fsanitize=unreachable option.
2812 * varasm.c (get_variable_section): Adjust.
2813 (assemble_noswitch_variable): Likewise.
2814 (assemble_variable): Likewise.
2815 (output_constant_def_contents): Likewise.
2816 (categorize_decl_for_section): Likewise.
2817 (place_block_symbol): Likewise.
2818 (output_object_block): Likewise.
2819 * builtins.def: Likewise.
2820 * toplev.c (compile_file): Likewise.
2821 (process_options): Likewise.
2822 * cppbuiltin.c: Likewise.
2823 * tsan.c (tsan_pass): Likewise.
2824 (tsan_gate): Likewise.
2825 (tsan_gate_O0): Likewise.
2826 * cfgexpand.c (partition_stack_vars): Likewise.
2827 (expand_stack_vars): Likewise.
2828 (defer_stack_allocation): Likewise.
2829 (expand_used_vars): Likewise.
2830 * cfgcleanup.c (old_insns_match_p): Likewise.
2831 * asan.c (asan_finish_file): Likewise.
2832 (asan_instrument): Likewise.
2833 (gate_asan): Likewise.
2834 (initialize_sanitizer_builtins): Build BT_FN_VOID_PTR_PTR_PTR.
2835 (ATTR_COLD_NOTHROW_LEAF_LIST): Define.
2836 (asan_global_struct): Use pointer_sized_int_node instead
2837 calling build_nonstandard_integer_type.
2838 (initialize_sanitizer_builtins): Likewise.
2839 (asan_finish_file): Likewise.
2840 * gcc.c: Document %{%:function(args):X}.
2841 (static_spec_functions): Add sanitize.
2842 (handle_spec_function): Add retval_nonnull argument and if non-NULL,
2843 store funcval != NULL there.
2844 (do_spec_1): Adjust handle_spec_function caller.
2845 (handle_braces): Allow %:function(args) as condition.
2846 (sanitize_spec_function): New function.
2847 (ADD_STATIC_LIBUBSAN_LIBS): Define.
2848 (LIBUBSAN_SPEC): Likewise.
2849 (LIBUBSAN_EARLY_SPEC): Likewise.
2850 (SANITIZER_SPEC): Handle libubsan.
2851 (SANITIZER_EARLY_SPEC): Likewise.
2852 * config/darwin.h (LINK_COMMAND_SPEC_A): Use %:sanitize(address)
2853 instead of fsanitize=address.
2854 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Use %:sanitize(address)
2855 instead of fsanitize=address*.
2856 * builtins.c: Include ubsan.h.
2857 (fold_builtin_0): Instrument __builtin_unreachable.
2858 * config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Use flag_sanitize
2859 instead of flag_asan.
2860 * tree.h (enum tree_index): Add TI_POINTER_SIZED_TYPE.
2861 (pointer_sized_int_node): Define.
41dedebd 2862 * tree.c (build_common_tree_nodes): Initialize pointer_sized_int_node.
de5a5fa1 2863
f07f30cf
MS
28642013-08-30 Mike Stump <mikestump@comcast.net>
2865
2866 * doc/install.texi (Prerequisites): Note regression in Tcl 8.6
2867 with RE patterns.
2868
8a41354f
JH
28692013-08-29 Jan Hubicka <jh@suse.cz>
2870
2871 * cgraph.c (cgraph_function_body_availability): Handle weakref
2872 correctly.
2873 * passes.def: Remove pass_fixup_cfg.
2874 * ipa-inline.c (ipa_inline): When not optimizing, do not inline;
2875 track when we need to remove functions.
2876 (gate_ipa_inline): Execute inlining always; add comment why.
2877 (pass_data_ipa_inline): Remove TODO_remove_functions.
2878 * ipa-inline-analysis.c (inline_generate_summary): When not optimizing
2879 do not produce summaries.
2880 * symtab.c (change_decl_assembler_name): Handle renaming of weakrefs.
2881 (symtab_nonoverwritable_alias): Assert we are not called on weakref.
2882 * varpool.c (cgraph_variable_initializer_availability): Fix weakrefs,
2883 constant pool and vtable.
2884
dc8d7a0f
TB
28852013-08-30 Tejas Belagod <tejas.belagod@arm.com>
2886
41dedebd
UB
2887 * config/aarch64/arm_neon.h (__AARCH64_UINT64_C, __AARCH64_INT64_C):
2888 New arm_neon.h's internal macros to specify 64-bit constants.
2889 Avoid using stdint.h's macros.
dc8d7a0f 2890
ac7eacd2
JR
28912013-08-30 Joern Rennecke <joern.rennecke@embecosm.com>
2892
2893 * recog.c (verify_changes): Verify that changes[i].old is non-zero
2894 before applying REG_P.
2895
8b29fd4e
JJ
28962013-08-30 Jakub Jelinek <jakub@redhat.com>
2897
2898 PR tree-optimization/58277
2899 * tree-ssa-strlen.c (strlen_enter_block): If do_invalidate gave up
2900 after seeing too many stmts with vdef in between dombb and current
2901 bb, invalidate everything.
2902
26d75703
RB
29032013-08-30 Richard Biener <rguenther@suse.de>
2904
2905 * fold-const.c (fold_single_bit_test): Fix overflow test.
2906
f7e088e7
EB
29072013-08-30 Eric Botcazou <ebotcazou@adacore.com>
2908
2909 * function.c (assign_parm_setup_reg): For a parameter passed by pointer
2910 and which can live in a register, always retrieve the value on entry.
2911 * var-tracking.c (add_stores): Treat the copy on entry for a parameter
2912 passed by invisible reference specially.
2913 (emit_notes_in_bb) <MO_VAL_USE>: Emit notes before the instruction.
2914 (vt_add_function_parameter): Correctly deal with a parameter passed by
2915 invisible reference.
2916
29172013-08-30 Jan Hubicka <jh@suse.cz>
47500756
JH
2918
2919 * tree.c (set_call_expr_flags): Fix handling of TM_PURE.
2920
6e8dad05
RB
29212013-08-30 Richard Biener <rguenther@suse.de>
2922
2923 PR tree-optimization/58228
2924 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Do not
2925 allow invariant loads in nested loop vectorization.
2926
062ef2c8
RB
29272013-08-30 Richard Biener <rguenther@suse.de>
2928
2929 PR tree-optimization/58223
2930 * tree-loop-distribution.c (has_anti_dependence): Rename to ...
2931 (has_anti_or_output_dependence): ... this and adjust to also
2932 look for output dependences.
2933 (mark_nodes_having_upstream_mem_writes): Adjust.
2934 (rdg_flag_uses): Likewise.
2935
7a764c60
RB
29362013-08-30 Richard Biener <rguenther@suse.de>
2937
2938 PR tree-optimization/58010
2939 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
2940 assert that we have a loop-closed PHI.
2941
82e9d642
JH
29422013-08-29 Jan Hubicka <jh@suse.cz>
2943
2944 * lto-symtab.c (lto_cgraph_replace_node): Free decl_in_state.
2945 * cgraph.c (cgraph_release_function_body): Free decl_in_state.
2946 * lto-section-in.c (lto_free_function_in_decl_state): New function.
2947 (lto_free_function_in_decl_state_for_node): New function.
2948
9cc1fb4b
XDL
29492013-08-29 Xinliang David Li <davidxl@google.com>
2950
41dedebd 2951 * loop-unroll.c (report_unroll_peel): Minor message change.
9cc1fb4b
XDL
2952 * tree-vect-loop-manip.c (vect_do_peeling_for_alignment):
2953 Emit alignment peeling message with default -fopt-info.
2954 (vect_loop_versioning): Emit loop version info message.
41dedebd 2955 * tree-vectorizer.c (vectorize_loops): Minor message change.
9cc1fb4b
XDL
2956 (execute_vect_slp): Ditto.
2957
440a5082
EB
29582013-08-29 Eric Botcazou <ebotcazou@adacore.com>
2959
2960 * cgraphclones.c (cgraph_create_virtual_clone): Compute the DECL_NAME
2961 of the clone from the DECL_NAME of the original function.
2962
3fa3690d
OE
29632013-08-29 Oleg Endo <olegendo@gcc.gnu.org>
2964
2965 * passes.c (register_pass): Add overload.
2966 * tree-pass.h (register_pass): Forward declare it. Add comment.
2967
0170f33c
JH
29682013-08-29 Jan Hubicka <jh@suse.cz>
2969
41dedebd
UB
2970 * lto-streamer-out.c (hash_tree): Stream DECL_FINAL_P,
2971 DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P and TYPE_FINAL_P.
2972 * lto-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Stream
2973 DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
0170f33c
JH
2974 (unpack_ts_type_common_value_fields): Stream TYPE_FINAL_P.
2975 * tree-streamer-out.c (pack_ts_decl_with_vis_value_fields):
41dedebd 2976 Add DECL_FINAL_P, DECL_CXX_CONSTRUCTOR_P and DECL_CXX_DESTRUCTOR_P.
0170f33c
JH
2977 (pack_ts_type_common_value_fields): Add TYPE_FINAL_P.
2978
103ff0d6
TJ
29792013-08-29 Teresa Johnson <tejohnson@google.com>
2980
2981 * dumpfile.c (dump_loc): Output column number.
2982 * dumpfile.h (OPTGROUP_OTHER): Add and enable under OPTGROUP_ALL.
2983 * doc/invoke.texi: Document optall -fopt-info flag.
2984 * profile.c (read_profile_edge_counts): Use new dump framework.
2985 (compute_branch_probabilities): Ditto.
2986 * passes.c (pass_manager::register_one_dump_file): Use OPTGROUP_OTHER
2987 when pass not in any opt group.
2988 * pass_manager.h (pass_manager::get_pass_profile): New method.
2989 * value-prof.c (check_counter): Use new dump framework.
2990 (check_ic_target): Ditto.
2991 * coverage.c (get_coverage_counts): Ditto.
2992 (coverage_init): Setup new dump framework.
2993
301bbc16
RB
29942013-08-29 Richard Biener <rguenther@suse.de>
2995
2996 PR tree-optimization/58246
2997 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): Properly
2998 handle the dominance check inside a basic-block.
2999
1b275000
RB
30002013-08-29 Richard Biener <rguenther@suse.de>
3001
3002 PR middle-end/57287
3003 * tree-ssa-copy.c (may_propagate_copy): Allow propagating
3004 of default defs that appear in abnormal PHI nodes.
3005
6b1184ba
RB
30062013-08-29 Richard Biener <rguenther@suse.de>
3007
3008 PR tree-optimization/57685
3009 * tree-vrp.c (register_edge_assert_for_1): Recurse only for
3010 single-use operands to avoid exponential complexity.
3011
1b08b734
DC
30122013-08-28 Dehao Chen <dehao@google.com>
3013
3014 * ipa-inline.c (edge_badness): Fix integer underflow.
3015
48a3fa69
UB
30162013-08-28 Uros Bizjak <ubizjak@gmail.com>
3017
3018 * gtm-builtins.def (_ITM_free): Declare leaf.
3019
215f73e6
JJ
30202013-08-28 Jakub Jelinek <jakub@redhat.com>
3021
3022 PR target/58067
3023 * config/i386/i386.md (*tls_global_dynamic_64_largepic): New insn.
3024 (*tls_local_dynamic_base_64_largepic): Likewise.
3025 (tls_global_dynamic_64_<mode>, tls_local_dynamic_base_64_<mode>):
3026 Remove predicate from call operand.
3027 * config/i386/i386.c (ix86_tls_get_addr): For -mcmodel=large -fpic
3028 return sum of pic_offset_table_rtx and UNSPEC_PLTOFF of the symbol.
3029
34554d1a
JL
30302013-08-28 Jeff Law <law@redhat.com>
3031
3032 * tree-ssa-threadedge.c (thread_around_empty_block): Remove
3033 checks for the number of predecessors and successors allowed.
3034 * tree-ssa-threadupdate.c (mark_threaded_blocks): Ignore requests
3035 which require copying a joiner block if there is a request which
3036 is a subpath that requires no joiner block copying.
3037
c01c111b
JH
30382013-08-28 Jan Hubicka <jh@suse.cz>
3039
3040 * lto-streamer-out.c (DFS_write_tree_body): Drop
3041 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX and BINFO_VPTR_INDEX.
3042 (hash_tree): Do not hash DECL_DEFER_OUTPUT, BINFO_INHERITANCE_CHAIN,
3043 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, DECL_IN_TEXT_SECTION.
3044 * tree-streamer-in.c (unpack_ts_decl_common_value_fields):
3045 Do not read DECL_ERROR_ISSUED.
3046 (unpack_ts_decl_with_vis_value_fields): Do not read
3047 DECL_DEFER_OUTPUT.
48a3fa69
UB
3048 (lto_input_ts_binfo_tree_pointers): Do not read
3049 BINFO_INHERITANCE_CHAIN, BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX
c01c111b
JH
3050 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Do not
3051 write DECL_ERROR_ISSUED..
3052 (pack_ts_decl_with_vis_value_fields): Do not write
3053 DECL_DEFER_OUTPUT.
3054 (write_ts_binfo_tree_pointers): Do not read BINFO_INHERITANCE_CHAIN,
48a3fa69 3055 BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX.
c01c111b
JH
3056 * print-tree.c (print_node): Do not print DECL_ERROR_ISSUED.
3057 * tree.h (tree_decl_common): Update comment.
3058 (DECL_ERROR_ISSUED): Remove.
3059
4b128ece
JJ
30602013-08-28 Jakub Jelinek <jakub@redhat.com>
3061
3062 PR middle-end/58257
3063 * omp-low.c (copy_var_decl): Copy over TREE_NO_WARNING flag.
3064
12211b99 30652013-08-28 Jan Hubicka <jh@suse.cz>
9e57846a
JH
3066
3067 * builtins.def (free): Declare leaf.
3068
8dce4dbc
DM
30692013-08-27 David Malcolm <dmalcolm@redhat.com>
3070
3071 * gdbhooks.py: New.
3072 * configure.ac (gdbinit.in): Add import of gcc/gdbhooks.py.
3073 * configure: Regenerate.
3074
b8f6e610
MJ
30752013-08-27 Martin Jambor <mjambor@suse.cz>
3076
3077 * ipa-prop.h (ipa_pass_through_data): New field type_preserved.
3078 (ipa_ancestor_jf_data): Likewise.
3079 (ipa_get_jf_pass_through_agg_preserved): Fix comment typo.
3080 (ipa_get_jf_pass_through_type_preserved): New function.
3081 (ipa_get_jf_ancestor_agg_preserved): Fix comment typo.
3082 (ipa_get_jf_ancestor_type_preserved): New function.
12211b99 3083 * ipa-cp.c (ipa_get_jf_pass_through_result): Honor type_preserved flag.
b8f6e610
MJ
3084 (ipa_get_jf_ancestor_result): Likewise.
3085 (propagate_vals_accross_pass_through): Use
3086 ipa_get_jf_pass_through_result to do all the value mappings.
3087 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Dump the
3088 type_preserved flag.
3089 (ipa_set_jf_cst_copy): New function.
3090 (ipa_set_jf_simple_pass_through): Set the type_preserved flag.
3091 (ipa_set_jf_arith_pass_through): Likewise.
3092 (ipa_set_ancestor_jf): Likewise.
3093 (compute_complex_assign_jump_func): Set type_preserved instead of
3094 punting.
3095 (ipa_compute_jump_functions_for_edge): Likewise.
3096 (combine_known_type_and_ancestor_jfs): Honor type_preserved.
3097 (update_jump_functions_after_inlining): Update type_preserved.
12211b99 3098 Explicitely create jump functions when combining one with pass_through.
b8f6e610
MJ
3099 (ipa_write_jump_function): Stream the type_preserved flags.
3100 (ipa_read_jump_function): Likewise.
3101
74bf76ed
JJ
31022013-08-27 Jakub Jelinek <jakub@redhat.com>
3103 Aldy Hernandez <aldyh@redhat.com>
3104
3105 * Makefile.in (omp-low.o): Depend on $(TARGET_H).
3106 * cfgloop.h (struct loop): Add safelen, force_vect, simduid.
3107 * function.h (struct function): Add has_force_vect_loops and
3108 has_simduid_loops.
12211b99 3109 * gimple-pretty-print.c (dump_gimple_omp_for): Handle GF_OMP_FOR_KIND*.
74bf76ed
JJ
3110 * gimple.c (gimple_build_omp_critical): Add KIND argument and
3111 handle it.
3112 * gimple.def: Update CLAUSES comments.
3113 * gimple.h (enum gf_mask): Add GF_OMP_FOR_KIND_{FOR,SIMD}.
3114 (gimple_build_omp_for): Add argument to prototype.
3115 (gimple_omp_for_kind): New.
3116 (gimple_omp_for_set_kind): New.
3117 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_LINEAR to
3118 GOVD_DATA_SHARE_CLASS.
3119 (enum omp_region_type): Add ORT_SIMD.
3120 (gimple_add_tmp_var): Handle ORT_SIMD.
3121 (gimplify_var_or_parm_decl): Same.
3122 (is_gimple_stmt): Same.
3123 (omp_firstprivatize_variable): Same.
3124 (omp_add_variable): Only use splay_tree_insert if lookup failed.
3125 (omp_notice_variable): Handle ORT_SIMD.
12211b99 3126 (omp_is_private): Add SIMD argument and handle it as well as ORT_SIMD.
74bf76ed
JJ
3127 (omp_check_private): Handle ORT_SIMD.
3128 (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_LINEAR and
3129 OMP_CLAUSE_SAFELEN.
3130 (gimplify_adjust_omp_clauses_1): Handle GOVD_LINEAR.
3131 Handle OMP_CLAUSE_LASTPRIVATE.
3132 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_LINEAR and
3133 OMP_CLAUSE_SAFELEN.
3134 (gimplify_omp_for): Handle OMP_SIMD and OMP_CLAUSE_LINEAR.
3135 (gimplify_expr): Handle OMP_SIMD.
3136 * internal-fn.c (expand_GOMP_SIMD_LANE): New.
3137 (expand_GOMP_SIMD_VF): New.
3138 (expand_GOMP_SIMD_LAST_LANE): New.
3139 * internal-fn.def (GOMP_SIMD_LANE): New.
3140 (GOMP_SIMD_VF): New.
3141 (GOMP_SIMD_LAST_LANE): New.
3142 * omp-low.c: Include target.h.
3143 (extract_omp_for_data): Handle OMP_SIMD, OMP_CLAUSE_LINEAR,
3144 OMP_CLAUSE_SAFELEN.
3145 (check_omp_nesting_restrictions): Same.
3146 (omp_max_vf): New.
3147 (lower_rec_simd_input_clauses): New.
3148 (lower_rec_input_clauses): Handle OMP_SIMD, GF_OMP_FOR_KIND_SIMD,
3149 OMP_CLAUSE_LINEAR.
3150 (lower_lastprivate_clauses): Handle OMP_CLAUSE_LINEAR,
3151 GF_OMP_FOR_KIND_SIMD, OMP_SIMD.
3152 (expand_omp_build_assign): New.
3153 (expand_omp_for_init_counts): New.
3154 (expand_omp_for_init_vars): New.
3155 (extract_omp_for_update_vars): New.
3156 (expand_omp_for_generic): Use expand_omp_for_{init,update}_vars
3157 and rewrite accordingly.
3158 (expand_omp_simd): New.
3159 (expand_omp_for): Use expand_omp_simd.
3160 (lower_omp_for_lastprivate): Unshare vinit when appropriate.
3161 (lower_omp_for): Do not lower the body.
3162 * tree-data-ref (get_references_in_stmt): Allow IFN_GOMP_SIMD_LANE
3163 in their own loops.
3164 * tree-flow.h (find_omp_clause): Remove prototype.
12211b99
UB
3165 * tree-if-conv.c (main_tree_if_conversion): Run if doing if conversion,
3166 forcing vectorization of the loop, or if flag_tree_vectorize.
74bf76ed
JJ
3167 (gate_tree_if_conversion): Similarly.
3168 * tree-inline.c (remap_gimple_stmt): Pass for kind argument to
3169 gimple_build_omp_for.
3170 (copy_cfg_body): set has_force_vect_loops and has_simduid_loops.
3171 * tree-parloops (create_parallel_loop): Pass kind argument to
3172 gimple_build_omp_for.
3173 * tree-pretty-print.c (dump_omp_clause): Add cases for
3174 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_LINEAR, OMP_CLAUSE_SAFELEN,
3175 OMP_CLAUSE__SIMDUID_.
3176 (dump_generic_node): Handle OMP_SIMD.
3177 * tree-ssa-ccp.c (likely_value): Handle IFN_GOMP_SIMD*.
3178 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Do not
3179 unroll OMP_SIMD loops here.
12211b99 3180 * tree-ssa-loop.c (gate_tree_vectorize): Run if has_force_vect_loops.
74bf76ed 3181 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Handle
12211b99 3182 loop->safelen.
74bf76ed
JJ
3183 (vect_analyze_data_refs): Handle simd loops.
3184 * tree-vect-loop.c (vectorizable_live_operation): Handle
3185 IFN_GOMP_SIMD*.
12211b99 3186 * tree-vect-stmts.c (vectorizable_call): Handle IFN_GOMP_SIMD_LANE.
74bf76ed
JJ
3187 (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P.
3188 (vectorizable_load): Same.
12211b99 3189 * tree-vectorizer.c: Include hash-table.h and tree-ssa-propagate.h.
74bf76ed
JJ
3190 (struct simduid_to_vf): New.
3191 (simduid_to_vf::hash): New.
3192 (simduid_to-vf::equal): New.
3193 (struct simd_array_to_simduid): New.
3194 (simd_array_to_simduid::hash): New.
3195 (simd_array_to_simduid::equal): New.
3196 (adjust_simduid_builtins): New.
3197 (struct note_simd_array_uses_struct): New.
3198 (note_simd_array_uses_cb): New.
3199 (note_simd_array_uses): New.
3200 (vectorize_loops): Handle simd hints and adjust simd builtins
3201 accordingly.
3202 * tree-vectorizer.h (struct _stmt_vec_info): Add
3203 simd_lane_access_p field.
3204 (STMT_VINFO_SIMD_LANE_ACCESS_P): New macro.
3205 * tree.c (omp_clause_num_ops): Add entries for OMP_CLAUSE_LINEAR,
3206 OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_UNIFORM.
3207 (omp_clause_code_name): Same.
3208 (walk_tree_1): Handle OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN,
3209 OMP_CLAUSE__SIMDUID_, OMP_CLAUSE_LINEAR.
3210 * tree.def (OMP_SIMD): New entry.
12211b99
UB
3211 * tree.h (enum omp_clause_code): Add entries for OMP_CLAUSE_LINEAR,
3212 OMP_CLAUSE_UNIFORM, OMP_CLAUSE_SAFELEN, OMP_CLAUSE__SIMDUID_.
74bf76ed
JJ
3213 (OMP_CLAUSE_DECL): Adjust range for new clauses.
3214 (OMP_CLAUSE_LINEAR_NO_COPYIN): New.
3215 (OMP_CLAUSE_LINEAR_NO_COPYOUT): New.
3216 (OMP_CLAUSE_LINEAR_STEP): New.
3217 (OMP_CLAUSE_SAFELEN_EXPR): New.
3218 (OMP_CLAUSE__SIMDUID__DECL): New.
3219 (find_omp_clause): New prototype.
3220
d0cf4e84
L
32212013-08-27 H.J. Lu <hongjiu.lu@intel.com>
3222
3223 * config/i386/driver-i386.c (host_detect_local_cpu): Update
3224 Haswell processor detection.
3225
992592ec
CW
32262013-08-27 Christian Widmer <shadow@umbrox.de>
3227
3228 PR target/57927
3229 * config/i386/driver-i386.c (host_detect_local_cpu): Add detection
3230 of Ivy Bridge and Haswell processors. Assume core-avx2 for unknown
3231 AVX2 capable processors.
3232
9116eb22
TB
32332013-08-27 Tejas Belagod <tejas.belagod@arm.com>
3234
3235 * config/aarch64/arm_neon.h: Replace all inline asm implementations
3236 of vget_low_* with implementations in terms of other intrinsics.
3237
1c5abb53
MG
32382013-08-27 Marc Glisse <marc.glisse@inria.fr>
3239
3240 PR middle-end/57219
3241 * doc/extend.texi (__builtin_isinf_sign): Restrict the return
3242 values to -1, 0 and 1.
3243
2e100703
VP
32442013-08-27 Vidya Praveen <vidyapraveen@arm.com>
3245
3246 * config/aarch64/aarch64.md (unspec): Add UNSPEC_SISD_SSHL,
3247 UNSPEC_SISD_USHL, UNSPEC_USHL_2S, UNSPEC_SSHL_2S, UNSPEC_SISD_NEG.
3248 (<optab><mode>3_insn): Remove.
3249 (aarch64_ashl_sisd_or_int_<mode>3): New Pattern.
3250 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
3251 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
3252 (define_split for aarch64_lshr_sisd_or_int_di3): Likewise.
3253 (define_split for aarch64_lshr_sisd_or_int_si3): Likewise.
3254 (define_split for aarch64_ashr_sisd_or_int_di3): Likewise.
3255 (define_split for aarch64_ashr_sisd_or_int_si3): Likewise.
3256 (aarch64_sisd_ushl, aarch64_sisd_sshl): Likewise.
3257 (aarch64_ushl_2s, aarch64_sshl_2s, aarch64_sisd_neg_qi): Likewise.
3258 (ror<mode>3_insn): Likewise.
3259 * config/aarch64/predicates.md (aarch64_simd_register): New.
3260
4ded8276
RB
32612013-08-27 Richard Biener <rguenther@suse.de>
3262
3263 PR tree-optimization/57521
3264 * tree-if-conv.c (if_convertible_bb_p): Verify that at least
3265 one edge is non-critical.
3266 (find_phi_replacement_condition): Make sure to use a non-critical
3267 edge. Cleanup and remove old bug workarounds.
3268 (bb_postdominates_preds): Remove.
3269 (if_convertible_loop_p_1): Do not compute post-dominators.
3270 (combine_blocks): Do not free post-dominators.
3271 (main_tree_if_conversion): Likewise.
3272 (pass_data_if_conversion): Add TODO_verify_ssa.
3273
5aa11061
DD
32742013-08-27 DJ Delorie <dj@redhat.com>
3275
3276 * config/i386/djgpp.h (ASM_DECLARE_FUNCTION_NAME): New.
3277
fd91cfe3
YZ
32782013-08-27 Yufeng Zhang <yufeng.zhang@arm.com>
3279
3280 * function.c (assign_parm_find_data_types): Set passed_mode and
3281 nominal_mode to the TYPE_MODE of nominal_type for the built
3282 pointer type in case of the struct-pass-by-reference.
3283
907555ce
JR
32842013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
3285
3286 * config/avr/avr-stdint.h (INT16_TYPE): Change default to "int".
3287 (UINT16_TYPE): Change default to "unsigned int".
3288
67518c93
JR
3289 * config/avr/avr.opt (mfract-convert-truncate): New option.
3290 * config/avr/avr.c (avr_out_fract): Unless TARGET_FRACT_CONV_TRUNC
3291 is set, round negative fractional integers according to n1169
3292 when converting to integer types.
3293
d6d989fc
JH
32942013-08-26 Jan Hubicka <jh@suse.cz>
3295
3296 * cgraph.c (cgraph_propagate_frequency): Do not assume that virtual
3297 methods can not be called indirectly when their address is not taken.
3298
2aa3da06
JH
32992013-08-26 Jan Hubicka <jh@suse.cz>
3300
12211b99
UB
3301 * gimple-fold.c (gimple_get_virt_method_for_binfo): Use
3302 ctor_for_folding.
2aa3da06 3303
0987ffe7
JH
33042013-08-26 Jan Hubicka <jh@suse.cz>
3305
3306 * ipa.c (comdat_can_be_unshared_p_1): C++ constructors and destructors
3307 can be unshared.
3308
befe8647
JR
33092013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
3310
3311 * reload.c (find_valid_class): Allow classes that do not include
3312 FIRST_PSEUDO_REGISTER - 1.
3313
a21e735e
JH
33142013-08-26 Jan Hubicka <jh@suse.cz>
3315
3316 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Fix formatting;
3317 fix edge count/frequency when speculation failed; fix type check
3318 for the direct call.
3319
e067bd43
JH
33202013-08-26 Jan Hubicka <jh@suse.cz>
3321
3322 * ipa-prop.c (ipa_print_node_params): Do not ICE during WPA.
3323
e8aec975
JH
33242013-08-26 Jan Hubicka <jh@suse.cz>
3325
3326 * ipa-inline-transform.c (inline_transform): Be ready for basic block
3327 to be changed by edge redirection.
3328
d0b66480
JH
33292013-08-26 Jan Hubicka <jh@suse.cz>
3330
12211b99
UB
3331 * cgraph.c (cgraph_speculative_call_info): Fix parameter order and
3332 formating; add sanity check.
d0b66480
JH
3333 (cgraph_resolve_speculation): Add FIXME about scaling profiles.
3334 (cgraph_redirect_edge_call_stmt_to_callee): Fix ICE in debug dump.
3335 * ipa-inline.c (heap_edge_removal_hook): Reset node growth cache.
3336 (resolve_noninline_speculation): Update callee keys, too.
3337
0f9aaac7
JH
33382013-08-26 Jan Hubicka <jh@suse.cz>
3339
3340 * tree.h (tree_decl_with_vis): Add cxx_constructor, cxx_destructor.
3341 (DECL_CXX_CONSTRUCTOR_P, DECL_CXX_DESTRUCTOR_P): New macros.
3342
4b37444e
JR
33432013-08-26 Joern Rennecke <joern.rennecke@embecosm.com>
3344
3345 * config/i386/i386.c (x86_64_elf_select_section): Put ATTRIBUTE_UNUSED
3346 into proper place.
3347
5339fc0c
UB
33482013-08-26 Uros Bizjak <ubizjak@gmail.com>
3349
3350 * config/i386/i386.c (ix86_debug_options): Remove prototype.
3351 (x86_64_elf_select_section): Ditto.
3352 (ix86_handle_tm_regparm_attribute): Remove ATTRIBUTE_UNUSED on used
3353 arguments.
3354 (ix86_pass_by_reference): Ditto.
5339fc0c
UB
3355 (output_set_got): Ditto.
3356 (ix86_unary_operator_ok): Ditto.
3357 (ix86_expand_builtin): Ditto.
3358
d5c3d3ef
JH
33592013-08-23 Jan Hubicka <jh@suse.cz>
3360
5339fc0c 3361 * cgraph.c (cgraph_turn_edge_to_speculative): Fix debug output.
d5c3d3ef 3362
5b1e7435
JH
33632013-08-23 Jan Hubicka <jh@suse.cz>
3364
3365 * tree.h (TYPE_FINAL_P, DECL_FINAL_P): New macros.
3366 (tree_decl_with_vis): Add FINAL field.
3367
ead69dac
JL
33682013-08-23 Jeff Law <law@redhat.com>
3369
3370 * tree-ssa-pre.c (do_regular_insertion): Include the expression in
3371 the debugging dump when the expression is fully redundant.
3372
025311c4
GDR
33732013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
3374
3375 * diagnostic.c (diagnostic_set_caret_max_width): Use pp_buffer.
3376 * gimple-pretty-print.c (gimple_dump_bb_buff): Likewise.
3377 * pretty-print.c (pp_formatted_text_data): Likewise.
3378 (pp_write_text_to_stream): Likewise.
3379 (pp_write_text_as_dot_label_to_stream): Likewise.
3380 (pp_append_r): Likewise.
3381 (pp_format): Likewise.
3382 (pp_flush): Likewise.
3383 (pp_clear_output_area): Likewise.
3384 (pp_append_text): Likewise.
3385 (pp_formatted_text): Likewise.
3386 (pp_remaining_character_count_for_line): Likewise.
3387 (pp_newline): Likewise.
3388 (pp_character): Likewise.
3389 (output_buffer::~output_buffer): Define.
3390 (pretty_printer::~pretty_printer): Destruct output buffer.
3391 * pretty-print.h (output_buffer::~output_buffer): Declare.
3392 (pretty_printer::~pretty_printer): Declare virtual.
3393
0cadbfaa
MG
33942013-08-24 Marc Glisse <marc.glisse@inria.fr>
3395
3396 PR other/57324
3397 * hwint.h (HOST_WIDE_INT_UC, HOST_WIDE_INT_1U, HOST_WIDE_INT_M1,
3398 HOST_WIDE_INT_M1U): New macros.
3399 * fold-const.c (sign_bit_p, build_range_check, fold_unary_loc,
3400 fold_binary_loc, fold_ternary_loc): Use the new macros. Use an
3401 unsigned -1 for lshift.
3402 * cse.c (cse_insn): Likewise.
3403 * double-int.c (rshift_double, lshift_double): Likewise.
3404 * builtins.c (fold_builtin_bitop): Likewise.
3405 * combine.c (force_to_mode): Likewise.
3406 * tree.c (integer_pow2p, tree_log2, tree_floor_log2): Likewise.
3407 * simplify-rtx.c (simplify_const_unary_operation,
3408 simplify_const_binary_operation): Likewise.
3409 * tree-stdarg.c (va_list_counter_bump, va_list_ptr_read,
3410 check_va_list_escapes): Likewise.
3411 * rtlanal.c (nonzero_bits1): Likewise.
3412 * expmed.c (expand_smod_pow2): Likewise.
3413 * tree-ssa-structalias.c (UNKNOWN_OFFSET): Use HOST_WIDE_INT_MIN.
3414
009e5353
JH
34152013-08-23 Jan Hubicka <jh@suse.cz>
3416
3417 * cgraph.c (cgraph_turn_edge_to_speculative): Mark target node
3418 as having address taken.
3419
c4be6568
JH
34202013-08-23 Jan Hubicka <jh@suse.cz>
3421
64cbf23d
JH
3422 * ipa-utils.h (method_class_type): Declare.
3423 * ipa-devirt.c (method_class_type): Export.
3424
c4be6568
JH
3425 * cgraphunit.c (analyze_functions): Do basic devirtualization;
3426 do not walk base classes of anonymous types.
3427
97aba8e9
KK
34282013-08-23 Kaz Kojima <kkojima@gcc.gnu.org>
3429
3430 PR rtl-optimization/58220
3431 PR regression/58221
3432 * final.c (reemit_insn_block_notes): Use NEXT_INSN to
3433 handle SEQUENCE insns properly.
3434
0fc80001
GDR
34352013-08-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
3436
3437 * pretty-print.h (pp_newline_and_flush): Declare. Remove macro
3438 definition.
3439 (pp_newline_and_indent): Likewise.
3440 (pp_separate_with): Likewise.
3441 * pretty-print.c (pp_newline_and_flush): Define.
3442 (pp_newline_and_indent): Likewise.
3443 (pp_separate_with): Likewise.
3444
520a5868
JJ
34452013-08-23 Jakub Jelinek <jakub@redhat.com>
3446
3447 PR target/58218
3448 * config/i386/x86-64.h (TARGET_SECTION_TYPE_FLAGS): Define.
3449 * config/i386/i386.c (x86_64_elf_section_type_flags): New function.
3450
e500c62a
KY
34512013-08-23 Kirill Yukhin <kirill.yukhin@intel.com>
3452
f43245d1
UB
3453 * config/i386/predicates.md (ext_sse_reg_operand): New.
3454 * config/i386/i386.md (*movti_internal): Use
e500c62a
KY
3455 predicate to determine if EVEX is needed.
3456 (*movsi_internal): Ditto.
3457 (*movdf_internal): Ditto.
3458 (*movsf_internal): Ditto.
f43245d1 3459 * config/i386/mmx.md (*mov<mode>_internal): Ditto.
e500c62a 3460
6b00d7dd
JJ
34612013-08-23 Jakub Jelinek <jakub@redhat.com>
3462
3463 PR tree-optimization/58209
3464 * tree-tailcall.c (process_assignment): Handle POINTER_PLUS_EXPR.
3465 (find_tail_calls): Give up for pointer result types if m is non-NULL.
3466 (adjust_return_value_with_ops): For PLUS_EXPR and pointer result type
3467 emit POINTER_PLUS_EXPR.
3468 (create_tailcall_accumulator): For pointer result type accumulate in
3469 sizetype type.
3470
4f2a9f90
PC
34712013-08-22 Paolo Carlini <paolo.carlini@oracle.com>
3472
3473 * configure.ac: Add backslashes missing from the last change.
3474 * configure: Regenerate.
3475
7bf4274e
JH
34762013-08-22 Jan Hubicka <jh@susue.cz>
3477
4f2a9f90
PC
3478 * ipa.c (function_and_variable_visibility): First remember function
3479 was global and then make it local.
7bf4274e 3480
1bea243d
JB
34812013-08-22 Julian Brown <julian@codesourcery.com>
3482
3483 * configure.ac: Add aarch64 to list of arches which use "nop" in
3484 debug_line test.
3485 * configure: Regenerate.
3486
bcba7ecc
AK
34872013-08-22 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3488
3489 * config/s390/linux.h (TARGET_LIBC_HAS_FUNCTION): Define as
3490 gnu_libc_has_function.
3491 * config/s390/tpf.h: Likewise.
3492
4c495b0d
JH
34932013-08-22 Jan Hubicka <jh@susue.cz>
3494
3495 * timevar.c (validate_phases): Add cast.
3496
5e302bca
JH
34972013-08-22 Jan Hubicka <jh@susue.cz>
3498
3499 * timevar.c (validate_phases): Use size_t for memory.
3500 * timevar.h (struct timevar_time_def): Use size_t for ggc_mem.
3501
da6ca2b5
GDR
35022013-08-22 Gabriel Dos Reis <gdr@integrable-solutions.net>
3503
3504 * pretty-print.h (output_buffer::output_buffer): Declare.
3505 (pretty_printer::pretty_printer): Likewise.
3506 (pp_construct): Remove.
3507 * pretty-print.c (output_buffer::output_buffer): Define.
3508 (pretty_printer::pretty_printer): Rename from pp_construct. Simplify.
3509 * gimple-pretty-print.c (print_gimple_stmt): Do not call pp_construct.
3510 (print_gimple_expr): Likewise.
3511 (print_gimple_seq): Likewise.
3512 (gimple_dump_bb): Likewise.
3513 * sched-vis.c (dump_value_slim): Likewise.
3514 (dump_insn_slim): Likewise.
3515 (dump_rtl_slim): Likewise.
3516 (str_pattern_slim): Likewise.
3517 * tree-mudflap.c (mf_varname_tree): Likewise.
3518 * graph.c (print_graph_cfg): Likewise.
3519 (start_graph_dump): Likewise.
3520 * tree-pretty-print.c (maybe_init_pretty_print): Likewise. Use
3521 placement-new.
3522 * diagnostic.c (diagnostic_initialize): Simplify early diagnostic
3523 pretty printer initialization.
3524 * coretypes.h (diagnostic_context): Remove superflous type alias
3525 declaration.
3526 (pretty_printer): Likewise. Declare directly as a class.
3527 (pretty_print_info): Remove declaration as class.
3528 * asan.c (asan_emit_stack_protection): Remove call to pp_construct
3529 and pp_clear_output_area.
3530 (asan_add_global): Likewise.
3531
0e1474e5
JH
35322013-08-22 Jan Hubicka <jh@suse.cz>
3533
3534 * cgraphunit.c (analyze_functions) Use update_type_inheritance_graph.
3535 * ipa-utils.h (update_type_inheritance_graph): Declare.
3536 (possible_polymorphic_call_target_p): Declare.
3537 (possible_polymorphic_call_target_p): New.
3538 * ipa-devirt.c: Update toplevel comments.
3539 (cached_polymorphic_call_targets): Move up.
3540 (odr_type_d): Move ID down.
3541 (polymorphic_type_binfo_p): Update comment.
3542 (odr_hasher::remove): Likewise;
3543 (get_odr_type): Set anonymous_namespace.
3544 (dump_odr_type): Dump it.
3545 (dump_type_inheritance_graph): Do not ICE when there are no ODR types.
3546 (maybe_record_node): Record node in cached_polymorphic_call_targets.
3547 (record_binfo): Add comment.
5339fc0c
UB
3548 (free_polymorphic_call_targets_hash): Do not ICE when cache is not
3549 built.
0e1474e5
JH
3550 (devirt_node_removal_hook): Do not iCE when cache is freed.
3551 (possible_polymorphic_call_target_p): New predicate.
3552 (update_type_inheritance_graph): New function.
3553
3f97cb0b
AI
35542013-08-22 Alexander Ivchenko <alexander.ivchenko@intel.com>
3555 Maxim Kuznetsov <maxim.kuznetsov@intel.com>
3556 Sergey Lega <sergey.s.lega@intel.com>
3557 Anna Tikhonova <anna.tikhonova@intel.com>
3558 Ilya Tocar <ilya.tocar@intel.com>
3559 Andrey Turetskiy <andrey.turetskiy@intel.com>
3560 Ilya Verbin <ilya.verbin@intel.com>
3561 Kirill Yukhin <kirill.yukhin@intel.com>
3562 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
3563
3564 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_SET): New.
3565 (OPTION_MASK_ISA_AVX512CD_SET): Ditto.
3566 (OPTION_MASK_ISA_AVX512PF_SET): Ditto.
3567 (OPTION_MASK_ISA_AVX512ER_SET): Ditto.
3568 (OPTION_MASK_ISA_AVX2_UNSET): Update.
3569 (OPTION_MASK_ISA_AVX512F_UNSET): New.
3570 (OPTION_MASK_ISA_AVX512CD_UNSET): Ditto.
3571 (OPTION_MASK_ISA_AVX512PF_UNSET): Ditto.
3572 (OPTION_MASK_ISA_AVX512ER_UNSET): Ditto.
3573 (ix86_handle_option): Handle OPT_mavx512f, OPT_mavx512cd,
3574 OPT_mavx512pf, OPT_mavx512er cases.
3575 * config/i386/constraints.md (v): New constraint.
3576 (Yi, Yj): Replace SSE_REGS with ALL_SSE_REGS.
3577 * config/i386/cpuid.h (bit_AVX512F, bit_AVX512PF, bit_AVX512ER)
3578 (bit_AVX512CD): New.
3579 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
3580 AVX512F, AVX512ER, AVX512PF, AVX512CD features.
3581 * config/i386/i386-c.c (ix86_target_macros_internal):
3582 Conditionally define __AVX512F__, __AVX512ER__, __AVX512CD__,
3583 __AVX512PF__.
3584 * config/i386/i386-modes.def (VECTOR_MODES (INT, 128))
3585 (VECTOR_MODES (FLOAT, 128), INT_MODE (XI, 64)): New modes.
3586 * config/i386/i386.c (regclass_map, dbx_register_map)
3587 (dbx64_register_map, svr4_dbx_register_map): Add new SSE registers.
3588 (gate_insert_vzeroupper): Disable vzeroupper for TARGET_AVX512F.
3589 (ix86_target_string): Define -mavx512f, -mavx512er, -mavx512cd,
3590 -mavx512pf options.
3591 (ix86_option_override_internal): Define PTA_AVX512F, PTA_AVX512ER,
3592 PTA_AVX512PF, PTA_AVX512CD. Handle -mavx512f, -mavx512er, -mavx512cd,
3593 -mavx512pf options. Fix formatting.
3594 (ix86_conditional_register_usage): Squash EXT_REX_SSE_REGs for 32-bit
3595 targets. Squash EVEX_SSE_REGS if AVX512F is disabled.
3596 (ix86_valid_target_attribute_inner_p): Handle -mavx512f, -mavx512er,
3597 -mavx512cd, -mavx512pf options.
3598 (standard_sse_constant_opcode): Add vpternlogd for 512-bit modes.
3599 (print_reg, ix86_print_operand): Handle 'g' to output 512-bit operands.
3600 (ix86_preferred_output_reload_class): Replace SSE_REGS with
3601 ALL_SSE_REGS.
3602 (ix86_hard_regno_mode_ok): Support 512-bit registers.
3603 (ix86_set_reg_reg_cost): Ditto.
3604 (x86_order_regs_for_local_alloc): Ditto.
3605 (MAX_VECT_LEN): Extend to 64-byte.
3606 (ix86_spill_class): Replace SSE_REGS with ALL_SSE_REGS.
3607 * config/i386/i386.h (TARGET_AVX512F, TARGET_AVX512PF)
3608 (TARGET_AVX512ER, TARGET_AVX512CD): New.
3609 (BIGGEST_ALIGNMENT): Extend to 512-bits.
3610 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS): Add new registers.
3611 (CALL_USED_REGISTERS, REG_ALLOC_ORDER): Likewise.
3612 (VALID_AVX512F_SCALAR_MODE, VALID_AVX512F_REG_MODE): New.
3613 (SSE_REG_MODE_P): Support new modes.
3614 (FIRST_MMX_REG, FIRST_REX_INT_REG, FIRST_REX_SSE_REG): Add comments.
3615 (FIRST_EXT_REX_SSE_REG, LAST_EXT_REX_SSE_REG): New.
3616 (reg_class, REG_CLASS_NAMES): Add EVEX_SSE_REGS, ALL_SSE_REGS.
3617 (SSE_CLASS_P, MAYBE_SSE_CLASS_P): Replace SSE_REGS with ALL_SSE_REGS.
3618 (REG_CLASS_CONTENTS): Add new registers.
3619 (SSE_REGNO_P, SSE_REGNO, HARD_REGNO_RENAME_OK): Support new registers.
3620 (EXT_REX_SSE_REGNO_P): New.
3621 (HI_REGISTER_NAMES): Add new registers.
3622 * config/i386/i386.md: Define constants for new registers.
3623 (mode): Add new 512-bit modes.
3624 (prefix): Support evex prefix.
3625 (isa): Support avx512f, noavx512f, fma_avx512f.
3626 (ssemodesuffix): Add new 512-bit modes.
3627 (movxi): New.
3628 (*movxi_internal_avx512f): Ditto.
3629 (*movdi_internal): Replace constraint "x" with the new constraint "v".
3630 Support MODE_XI.
3631 (*movsi_internal): Likewise.
3632 (*movdf_internal): Likewise.
3633 (*movsf_internal): Likewise.
3634 (*fop_<mode>_comm_sse): Replace constraint "x" with new constraint "v".
3635 (<code><mode>3): Likewise.
5339fc0c
UB
3636 * config/i386/i386.opt (mavx512f, mavx512pf, mavx512er, mavx512cd):
3637 New.
3f97cb0b
AI
3638 * config/i386/mmx.md (*mov<mode>_internal): Replace constraint "x"
3639 with the new constraint "v".
3640 * config/i386/sse.md (*mov<mode>_internal): Support new registers and
3641 modes.
3642 (<sse>_loadu<ssemodesuffix><avxsizesuffix>): Replace constraint "x"
3643 with the new constraint "v".
3644 (<sse2>_loaddqu<avxsizesuffix>): Likewise.
3645 (<sse2>_storedqu<avxsizesuffix>): Likewise.
3646 (*<plusminus_insn><mode>3): Likewise.
3647 (<sse>_vm<plusminus_insn><mode>3): Likewise.
3648 (*mul<mode>3): Likewise.
3649 (<sse>_vmmul<mode>3): Likewise.
3650 (<sse>_div<mode>3): Likewise.
3651 (<sse>_vmdiv<mode>3): Likewise.
3652 (<sse>_sqrt<mode>2): Likewise.
3653 (<sse>_vmsqrt<mode>2): Likewise.
3654 (*<code><mode>3_finite): Likewise.
3655 (*<code><mode>3) <smaxmin>: Likewise.
3656 (<sse>_vm<code><mode>3): Likewise.
3657 (*<code><mode>3) <any_logic>: Likewise.
3658 (*fma_fmadd_<mode>): Likewise.
3659 (*fma_fmsub_<mode>): Likewise.
3660 (*fma_fnmadd_<mode>): Likewise.
3661 (*fma_fnmsub_<mode>): Likewise.
3662 (*fma_fmaddsub_<mode>): Likewise.
3663 (*fma_fmsubadd_<mode>): Likewise.
3664 (*fmai_fmadd_<mode>): Likewise.
3665 (*fmai_fmsub_<mode>): Likewise.
3666 (*fmai_fnmadd_<mode>): Likewise.
3667 (*fmai_fnmsub_<mode>): Likewise.
3668 (sse_cvtsi2ss): Likewise.
3669 (sse_cvtsi2ssq): Likewise.
3670 (sse_cvtss2si): Likewise.
3671 (sse_cvtss2si_2): Likewise.
3672 (sse_cvtss2siq): Likewise.
3673 (sse_cvtss2siq_2): Likewise.
3674 (sse_cvttss2si): Likewise.
3675 (sse_cvtss2siq_2): Likewise.
3676 (float<sseintvecmodelower><mode>2): Likewise.
3677 (sse2_cvtsd2si_2): Likewise.
3678 (sse2_cvtsd2siq_2): Likewise.
3679 (*<plusminus_insn><mode>3): Likewise.
3680 (*<sse2_avx2>_<plusminus_insn><mode>3): Likewise.
3681 (*<sse4_1_avx2>_mul<mode>3): Likewise.
3682 (ashr<mode>3): Likewise.
3683 (<shift_insn><mode>3): Likewise.
3684 (avx2_<code><mode>3): Likewise.
3685 (*avx2_<code><mode>3): Likewise.
3686 (*andnot<mode>3): Likewise.
3687 (*<code><mode>3) <any_logic>: Likewise.
3688 (abs<mode>2): Likewise.
3689 (avx2_permvar<mode>): Likewise.
3690 (avx2_perm<mode>_1): Likewise.
3691 (*avx_vpermilp<mode>): Likewise.
3692 (avx_vpermilvar<mode>3): Likewise.
3693 (avx2_ashrv<mode>): Likewise.
3694 (avx2_<shift_insn>v<mode>): Likewise.
3695 * doc/invoke.texi: Document -mavx512f, -mavx512pf, -mavx512er,
3696 -mavx512cd.
3697 * doc/rtl.texi: Document XImode.
3698
dd5e8423
JL
36992013-08-21 Jeff Law <law@redhat.com>
3700
b9ebee5d
JL
3701 * tree-flow.h (register_jump_thread): Pass vector of edges
3702 instead of each important edge.
3703 * tree-ssa-threadedge.c (thread_across_edge): Build the jump
3704 thread path into a vector and pass that to register_jump_thread.
3705 * tree-ssa-threadupdate.c (register_jump_thread): Conver the
3706 passed in edge vector to the current 3-edge form.
3707
dd5e8423
JL
3708 Revert:
3709 2013-08-20 Alexey Makhalov <makhaloff@gmail.com>
3710
9bb6628e 3711 * dce.c (fini_dce): Call df_analyze again just in case
dd5e8423
JL
3712 delete_unmarked_insns removed anything.
3713
445dc8df
JR
37142013-08-21 Joern Rennecke <joern.rennecke@embecosm.com>
3715
3716 * reload.h (struct reg_equivs): Rename to ..
3717 (struct reg_equivs_s): .. this.
3718
e0df53dd
ML
37192013-08-20 Martin Liska <marxin.liska@gmail.com>
3720
3721 * ipa.c (ipa_profile_read_summary): Fix buffer overflow.
3722
e7d1d3eb
RO
37232013-08-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3724
5339fc0c 3725 * config/sol2-10.h (TARGET_LIBC_HAS_FUNCTION): Don't nest comment.
e7d1d3eb 3726
5562e26e
JL
37272013-08-21 Jeff Law <law@redhat.com>
3728
3729 * tree-vrp.c (simplify_stmt_for_jump_threading): Try to
3730 simplify assignments too. If the RHS collapses to a singleton
3731 range, then return the value for the range.
3732
c7ecdec6
KY
37332013-08-21 Kirill Yukhin <kirill.yukhin@intel.com>
3734
3735 * config/i386/sse.md (V16): Rename to...
3736 (VMOVE): this.
3737 (mov<mode>): Update iterator name.
3738 (*mov<mode>_internal): Ditto.
3739 (push<mode>1): Ditto.
3740 (movmisalign<mode>): Ditto.
3741
bfa3b50a
JH
37422013-08-20 Jan Hubicka <jh@suse.cz>
3743
3744 PR bootstrap/58186
3745 * cgraph.c (cgraph_add_edge_to_call_site_hash): Overwrite hash
3746 entry for direct edges.
3747 (cgraph_turn_edge_to_speculative): Fix setting of can_throw_external.
3748
6cd4d135
DM
37492013-08-20 David Malcolm <dmalcolm@redhat.com>
3750
3751 Revert my last two changes, r201865 and r201864:
3752
3753 Revert r201865:
3754 2013-08-20 David Malcolm <dmalcolm@redhat.com>
3755
3756 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
3757 instances can own GC refs.
3758
3759 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
3760 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
3761 (gcc::context::gt_pch_nx): Likewise.
3762 (gcc::context::gt_pch_nx): Likewise.
3763 * ggc.h (gt_ggc_mx <T>): New.
3764 (gt_pch_nx_with_op <T>): New.
3765 (gt_pch_nx <T>): New.
3766 * passes.c (opt_pass::gt_ggc_mx): New.
3767 (opt_pass::gt_pch_nx): New.
3768 (opt_pass::gt_pch_nx_with_op): New.
3769 (pass_manager::gt_ggc_mx): New.
3770 (pass_manager::gt_pch_nx): New.
3771 (pass_manager::gt_pch_nx_with_op): New.
3772 (pass_manager::operator new): Use
3773 ggc_internal_cleared_alloc_stat rather than xcalloc.
3774 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
3775 (pass_manager::gt_ggc_mx): New.
3776 (pass_manager::gt_pch_nx): New.
3777 (pass_manager::gt_pch_nx_with_op): New.
3778 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
3779 (opt_pass::operator new): New.
3780 (opt_pass::gt_ggc_mx): New.
3781 (opt_pass::gt_pch_nx): New.
3782 (opt_pass::gt_pch_nx_with_op): New.
3783
3784 Revert r201864:
3785 2013-08-20 David Malcolm <dmalcolm@redhat.com>
3786
3787 * Makefile.in (GTFILES): Add context.h.
3788 * context.c (gcc::context::operator new): New.
3789 (gcc::context::gt_ggc_mx): New.
3790 (gcc::context::gt_pch_nx): New.
3791 (gcc::context::gt_pch_nx): New.
3792 * context.h (gcc::context): Add GTY((user)) marking.
3793 (gcc::context::operator new): New.
3794 (gcc::context::gt_ggc_mx): New.
3795 (gcc::context::gt_pch_nx): New.
3796 (gcc::context::gt_pch_nx): New.
3797 (g): Add GTY marking.
3798 (gt_ggc_mx (gcc::context *)): New.
3799 (gt_pch_nx (gcc::context *)): New.
3800 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
3801 void *cookie)): New.
3802 * gengtype.c (open_base_files) <ifiles>: Add context.h.
3803
a046136a
AM
38042013-08-20 Alexey Makhalov <makhaloff@gmail.com>
3805
3806 * dce.c (fini_dce): Call df_analyze again just in case
3807 delete_unmarked_insns removed anything.
3808
67598720
TJ
38092013-08-20 Teresa Johnson <tejohnson@google.com>
3810
3811 PR rtl-optimizations/57451
3812 * final.c (reemit_insn_block_notes): Prevent lexical blocks
3813 from crossing split section boundaries.
3814
f8693faf
MGD
38152013-08-20 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
3816
3817 * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Remove definition.
3818 * config/arm/t-linux-eabi (MULTILIB_OPTIONS): Document association
3819 with MULTLIB_DEFAULTS.
3820
7d0b9a9c
NC
38212013-08-20 Nick Clifton <nickc@redhat.com>
3822
3823 * target.def (narrow_volatile_bitfield): Note that the default
3824 value is false, not !TARGET_STRICT_ALIGN.
3825 * doc/tm.texi: Regenerate.
3826
8edb8dc8
PC
38272013-08-20 Pavel Chupin <pavel.v.chupin@intel.com>
3828
3829 Fix LIB_SPEC for systems without libpthread.
3830
3831 * config/gnu-user.h: Introduce GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC.
3832 * config/arm/linux-eabi.h: Use GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC
3833 for Android.
3834 * config/i386/linux-common.h: Likewise.
3835 * config/mips/linux-common.h: Likewise.
3836
12211b99 38372013-08-20 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
d71ff3fa
ZZ
3838
3839 * tree-ssa-ccp.c (get_default_value): Remove redundant condition
3840 checks.
3841
e42c64cb
DM
38422013-08-20 David Malcolm <dmalcolm@redhat.com>
3843
3844 Make opt_pass and gcc::pass_manager be GC-managed, so that pass
3845 instances can own GC refs.
3846
3847 * Makefile.in (GTFILES): Add pass_manager.h and tree-pass.h.
3848 * context.c (gcc::context::gt_ggc_mx): Traverse passes_.
3849 (gcc::context::gt_pch_nx): Likewise.
3850 (gcc::context::gt_pch_nx): Likewise.
3851 * ggc.h (gt_ggc_mx <T>): New.
3852 (gt_pch_nx_with_op <T>): New.
3853 (gt_pch_nx <T>): New.
3854 * passes.c (opt_pass::gt_ggc_mx): New.
3855 (opt_pass::gt_pch_nx): New.
3856 (opt_pass::gt_pch_nx_with_op): New.
3857 (pass_manager::gt_ggc_mx): New.
3858 (pass_manager::gt_pch_nx): New.
3859 (pass_manager::gt_pch_nx_with_op): New.
3860 (pass_manager::operator new): Use
3861 ggc_internal_cleared_alloc_stat rather than xcalloc.
3862 * pass_manager.h (class pass_manager): Add GTY((user)) marking.
3863 (pass_manager::gt_ggc_mx): New.
3864 (pass_manager::gt_pch_nx): New.
3865 (pass_manager::gt_pch_nx_with_op): New.
3866 * tree-pass.h (class opt_pass): Add GTY((user)) marking.
3867 (opt_pass::operator new): New.
3868 (opt_pass::gt_ggc_mx): New.
3869 (opt_pass::gt_pch_nx): New.
3870 (opt_pass::gt_pch_nx_with_op): New.
3871
910c02a0
DM
38722013-08-20 David Malcolm <dmalcolm@redhat.com>
3873
3874 * Makefile.in (GTFILES): Add context.h.
3875 * context.c (gcc::context::operator new): New.
3876 (gcc::context::gt_ggc_mx): New.
3877 (gcc::context::gt_pch_nx): New.
3878 (gcc::context::gt_pch_nx): New.
3879 * context.h (gcc::context): Add GTY((user)) marking.
3880 (gcc::context::operator new): New.
3881 (gcc::context::gt_ggc_mx): New.
3882 (gcc::context::gt_pch_nx): New.
3883 (gcc::context::gt_pch_nx): New.
3884 (g): Add GTY marking.
3885 (gt_ggc_mx (gcc::context *)): New.
3886 (gt_pch_nx (gcc::context *)): New.
3887 (gt_pch_nx (gcc::context *ctxt, gt_pointer_operator op,
3888 void *cookie)): New.
3889 * gengtype.c (open_base_files) <ifiles>: Add context.h.
3890
af4b4236
AM
38912013-08-20 Alan Modra <amodra@gmail.com>
3892
3893 PR target/57865
3894 * config/rs6000/rs6000.c (rs6000_emit_prologue): Correct ool_adjust.
3895 (rs6000_emit_epilogue): Likewise.
3896
12211b99 38972013-08-19 Dehao Chen <dehao@google.com>
0d633222
DC
3898
3899 * value-prof.c (gimple_ic): Fix the bug of adding EH edge.
3900
e2323f5b
PB
39012013-08-19 Peter Bergner <bergner@vnet.ibm.com>
3902 Jakub Jelinek <jakub@redhat.com>
3903
3904 * builtins.def (BUILT_IN_FABSD32): New DFP ABS builtin.
3905 (BUILT_IN_FABSD64): Likewise.
3906 (BUILT_IN_FABSD128): Likewise.
3907 * builtins.c (expand_builtin): Add support for new DFP ABS builtins.
3908 (fold_builtin_1): Likewise.
5339fc0c
UB
3909 * config/rs6000/dfp.md (*negtd2_fpr): Handle non-overlapping
3910 destination and source operands.
e2323f5b
PB
3911 (*abstd2_fpr): Likewise.
3912 (*nabstd2_fpr): Likewise.
3913
cfbf3ee8
RS
39142013-08-19 Richard Sandiford <rdsandiford@googlemail.com>
3915
3916 * config/mips/mips.c (mips_adjust_insn_length): Add checks for
3917 JUMP_P and INSN_P.
3918
d3136aeb
AH
39192013-08-19 Aldy Hernandez <aldyh@redhat.com>
3920
3921 * doc/invoke.texi (-fcilkplus): Clarify that implementation is
3922 incomplete.
3923
d33d9e47
AI
39242013-08-19 Alexander Ivchenko <alexander.ivchenko@intel.com>
3925
3926 * target.def (TARGET_LIBC_HAS_FUNCTION): New target hook.
3927 * builtins.c (default_libc_has_function): New.
3928 (gnu_libc_has_function): Ditto.
3929 (no_c99_libc_has_function): Ditto.
3930 (expand_builtin_cexpi): Using new target hook TARGET_LIBC_HAS_FUNCTION
3931 instead of TARGET_HAS_SINCOS and TARGET_C99_FUNCTIONS.
3932 (fold_builtin_sincos): Likewise.
3933 (fold_builtin_cexp): Likewise.
3934 * builtins.def (DEF_C94_BUILTIN): Likewise.
3935 (DEF_C99_BUILTIN): Likewise.
3936 (DEF_C99_C90RES_BUILTIN): Likewise.
3937 (DEF_C99_COMPL_BUILTIN): New define. Change all complex c99 builtin
3938 definitions to using this define.
3939 * config/darwin-protos.h (darwin_libc_has_function): New.
5339fc0c 3940 * config/darwin.c (darwin_libc_has_function): Ditto.
d33d9e47
AI
3941 * config/alpha/linux.h: Remove TARGET_C99_FUNCTIONS and
3942 TARGET_HAS_SINCOS. Redefine TARGET_LIBC_HAS_FUNCTION.
3943 * config/darwin.h: Ditto.
3944 * config/elfos.h: Ditto.
3945 * config/freebsd.h: Ditto.
3946 * config/i386/cygming.h: Ditto.
3947 * config/i386/djgpp.h: Ditto.
3948 * config/i386/i386-interix.h: Ditto.
3949 * config/microblaze/microblaze.h: Ditto.
3950 * config/mmix/mmix.h: Ditto.
3951 * config/gnu-user.h: Ditto.
3952 * config/ia64/hpux.h: Ditto.
3953 * config/pa/pa-hpux.h: Ditto.
3954 * config/pdp11/pdp11.h: Ditto.
3955 * config/picochip/picochip.h: Ditto.
3956 * config/linux.h: Ditto.
3957 * config/netbsd.h: Ditto.
3958 * config/openbsd.h: Ditto.
3959 * config/rs6000/aix43.h: Ditto.
3960 * config/rs6000/aix51.h: Ditto.
3961 * config/rs6000/aix52.h: Ditto.
3962 * config/rs6000/aix53.h: Ditto.
3963 * config/rs6000/aix61.h: Ditto.
3964 * config/rs6000/darwin.h: Ditto.
3965 * config/rs6000/linux.h: Ditto.
3966 * config/rs6000/linux64.h: Ditto.
3967 * config/s390/tpf.h: Ditto.
3968 * config/sol2-10.h: Ditto.
3969 * config/sol2.h: Ditto.
3970 * config/vms/vms.h: Ditto.
3971 * config/vxworks.h: Ditto.
3972 * config/linux-android.c (linux_android_libc_has_function):
3973 New linux-specific implementation of TARGET_LIBC_HAS_FUNCTION.
3974 * config/linux-protos.h (linux_android_libc_has_function):
3975 New declaration.
3976 * config/i386/i386.c (ix86_libc_has_function): New.
3977 * config/i386/i386-protos.h
3978 (ix86_libc_has_function): New declaration.
3979 * config/i386/i386.md
3980 ("isinfxf2"): Change condition for TARGET_LIBC_HAS_FUNCTION.
3981 ("isinf<mode>2): Likewise.
3982 * convert.c (convert_to_integer): Using new target hook
3983 TARGET_LIBC_HAS_FUNCTION istead of TARGET_HAS_SINCOS and
3984 TARGET_C99_FUNCTIONS.
3985 * fortran/f95-lang.c (gfc_init_builtin_functions): Ditto.
3986 * tree-ssa-math-opts.c (execute_cse_sincos): Ditto.
3987 * coretypes.h (function_class): New enum for different
3988 classes of functions.
3989 * defaults.h: Remove TARGET_C99_FUNCTIONS and TARGET_HAS_SINCOS.
3990 * doc/tm.texi.in (TARGET_C99_FUNCTIONS): Remove documentation.
3991 (TARGET_HAS_SINCOS): Likewise.
3992 (TARGET_LIBC_HAS_FUNCTION): New.
3993 * doc/tm.texi: Regenerated.
3994 * targhooks.h (default_libc_has_function): New declaration.
3995 (no_c99_libc_has_function): Ditto.
3996 (gnu_libc_has_function): Ditto.
3997 * system.h: Add the poisoning of TARGET_C99_FUNCTIONS
3998 and TARGET_HAS_SINCOS.
3999
eefe9a99
JH
40002013-08-18 Jan Hubicka <jh@suse.cz>
4001
4002 * Makeifle-in (ipa-devirt.o): New.
4003 (GTFILES): Add ipa-utils.h and ipa-devirt.c
4004 * cgraphunit.c (decide_is_symbol_needed): Do not care about virtuals.
4005 (analyze_functions): Look into possible targets of polymorphic call.
4006 * dumpfile.c (dump_files): Add type-inheritance dump.
4007 * dumpfile.h (TDI_inheritance): New.
4008 * ipa-devirt.c: New file.
4009 * ipa-utils.h (odr_type_d): Forward declare.
4010 (odr_type): New type.
4011 (build_type_inheritance_graph): Declare.
4012 (possible_polymorphic_call_targets): Declare and introduce inline
4013 variant when only edge is pased.
4014 (dump_possible_polymorphic_call_targets): Likewise.
4015 * timevar.def (TV_IPA_INHERITANCE, TV_IPA_VIRTUAL_CALL): New.
4016 * tree.c (type_in_anonymous_namespace_p): Break out from ...
4017 (types_same_for_odr): ... here.
4018 * tree.h (type_in_anonymous_namespace_p): Declare.
4019
29b89442
JJ
40202013-08-18 Jakub Jelinek <jakub@redhat.com>
4021
4022 PR tree-optimization/58006
4023 * tree-parloops.c (take_address_of): Don't ICE if get_name
4024 returns NULL.
4025 (eliminate_local_variables_stmt): Remove clobber stmts.
4026
4f219961
EB
40272013-08-18 Eric Botcazou <ebotcazou@adacore.com>
4028
4029 * cgraphunit.c (handle_alias_pairs): Reset the alias flag after the
4030 error message is issued for an alias to undefined symbol.
4031
1d5755ef
JH
40322013-08-18 Jan Hubicka <jh@suse.cz>
4033
4034 * cgraph.c (cgraph_create_indirect_edge): Discover
4035 polymorphic calls and record basic info into indirect_info.
4036 * gimple-fold.c (gimple_fold_call): When doing BINFO based
4037 devirtualization, ignore objc function calls.
4038 * ipa-cp.c (initialize_node_lattices): Be ready for polymorphic
4039 call with no parm index info.
4040 * ipa-prop.c (ipa_analyze_call_uses): Likewise.
4041 * tree.c (virtual_method_call_p): New function.
4042 * tree.h (virtual_method_call_p): Declare.
4043
5945bebf
JH
40442013-08-16 Jan Hubicka <jh@suse.cz>
4045
4046 PR middle-end/58179
4047 * tree.c (obj_type_ref_class): Do not ICE on non-method calls.
4048
47fa5d23
DE
40492013-08-16 David Edelsohn <dje.gcc@gmail.com>
4050
4051 * config/rs6000/rs6000.md (rs6000_get_timebase_ppc32): Add length
4052 attribute.
4053
c74f54a0
DM
40542013-08-16 David Malcolm <dmalcolm@redhat.com>
4055
4056 * gengtype.c (type_for_name): Add special-case support for
4057 locating types within the "gcc::" namespace.
4058 (open_base_files): Emit a "using namespace gcc" directive.
4059
f758f299
MM
40602013-08-16 Michael Meissner <meissner@linux.vnet.ibm.com>
4061
4062 PR target/58160
4063 * config/rs6000/predicates.md (fusion_gpr_mem_load): Allow the
4064 memory rtx to contain ZERO_EXTEND and SIGN_EXTEND.
4065
4066 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): Pass operands
4067 array instead of each individual operand as a separate argument.
4068 (emit_fusion_gpr_load): Likewise.
4069 (expand_fusion_gpr_load): Add new function declaration.
4070
4071 * config/rs6000/rs6000.c (fusion_gpr_load_p): Change the calling
4072 signature to have the operands passed as an array, instead of as
4073 separate arguments. Allow ZERO_EXTEND to be in the memory
4074 address, and also SIGN_EXTEND if -mpower8-fusion-sign. Do not
4075 depend on the register live/dead flags when peepholes are run.
4076 (expand_fusion_gpr_load): New function to be called from the
4077 peephole2 pass, to change the register that addis sets to be the
4078 target register.
4079 (emit_fusion_gpr_load): Change the calling signature to have the
4080 operands passed as an array, instead of as separate arguments.
4081 Allow ZERO_EXTEND to be in the memory address, and also
4082 SIGN_EXTEND if -mpower8-fusion-sign.
4083
4084 * config/rs6000/rs6000.md (UNSPEC_FUSION_GPR): Delete unused
4085 unspec enumeration.
4086 (power8 fusion peephole/peephole2): Rework the fusion peepholes to
4087 adjust the register addis loads up in the peephole2 pass. Do not
5339fc0c 4088 depend on the register live/dead state when the peephole pass is done.
f758f299 4089
158f4e4f
DM
40902013-08-16 David Malcolm <dmalcolm@redhat.com>
4091
4092 * gengtype.c (create_user_defined_type): Ensure that the kind
4093 is set to TYPE_USER_STRUCT, fixing a bug seen when an incomplete
4094 declaration is seen before the GTY((user)) marking.
4095
22f8cea5
BE
40962013-08-16 Bernd Edlinger <bernd.edlinger@hotmail.de>
4097
4098 PR target/58105
4099 * config/i386/i386.c (make_resolver_func): Set DECL_UNINLINABLE.
4100
c49bdb2e
JH
41012013-08-16 Jan Hubicka <jh@suse.cz>
4102
4103 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Add new
4104 arugment expected_type.
4105 (gimple_fold_call): Use it.
4106 * gimple.h (gimple_extract_devirt_binfo_from_cst): Update prototype.
4107 * ipa-cp.c (ipa_get_indirect_edge_target_1): Update.
22f8cea5 4108 * ipa-prop.c (ipa_analyze_virtual_call_uses): Use obj_type_ref_class.
c49bdb2e
JH
4109 (try_make_edge_direct_virtual_call): Likewise.
4110 * tree.c (obj_type_ref_class): New.
4111 * tree.h (obj_type_ref_class): Use it.
4112
4042dca9
GDR
41132013-08-16 Gabriel Dos Reis <gdr@integrable-solutions.net>
4114
4115 * sched-vis.c (rtl_slim_pp_initialized): Remove.
4116 (rtl_slim_pp): Likewise.
4117 (init_rtl_slim_pretty_print): Likewise.
4118 (dump_value_slim): Don't call it. Use local pretty printer.
4119 (dump_insn_slim): Likewise.
4120 (dump_rtl_slim): Likewise.
4121 (str_pattern_slim): Likewise.
4122 * tree-mudflap.c (mf_varname_tree): Use local pretty printer.
4123 Simplify.
4124
7a460594
JJ
41252013-08-16 Jakub Jelinek <jakub@redhat.com>
4126
639dc669
JJ
4127 PR tree-optimization/58164
4128 * gimple.c (walk_stmt_load_store_addr_ops): For visit_addr
4129 walk gimple_goto_dest of GIMPLE_GOTO.
4130
7a460594
JJ
4131 PR tree-optimization/58165
4132 * tree-call-cdce.c (shrink_wrap_one_built_in_call): If
4133 bi_call must be the last stmt in a bb, don't split_block, instead
4134 use fallthru edge from it and give up if there is none.
4135 Release conds vector when returning early.
4136
e3c02cc7
XDL
41372013-08-14 Xinliang David Li <davidxl@google.com>
4138
4139 * config/i386/i386.c (ix86_option_override_internal):
4140 Remove unused variable and field.
4141
6469da2c
BS
41422013-08-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4143
4144 PR target/57949
22f8cea5 4145 * doc/invoke.texi: Add documentation of mcompat-align-parm option.
6469da2c
BS
4146 * config/rs6000/rs6000.opt: Add mcompat-align-parm option.
4147 * config/rs6000/rs6000.c (rs6000_function_arg_boundary): For AIX
4148 and Linux, correct BLKmode alignment when 128-bit alignment is
4149 required and compatibility flag is not set.
22f8cea5
BE
4150 (rs6000_gimplify_va_arg): For AIX and Linux, honor specified alignment
4151 for zero-size arguments when compatibility flag is not set.
6469da2c 4152
4ca890e2
JJ
41532013-08-14 Jakub Jelinek <jakub@redhat.com>
4154
4155 PR tree-optimization/58145
4156 * tree-sra.c (build_ref_for_offset): If prev_base has
4157 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS, propagate it to MEM_REF.
4158
daec1759 41592013-08-14 Xinliang David Li <davidxl@google.com>
4ca890e2 4160
daec1759 4161 * config/i386/i386.c (ix86_option_override_internal):
e3c02cc7 4162 Fix uninitialized variable error.
daec1759 4163
3ad20bd4
XDL
41642013-08-14 Xinliang David Li <davidxl@google.com>
4165
4166 * config/i386/i386.opt: Define two new options.
4167 * config/i386/x86-tune.def: Add arch selector field in macros.
4168 * config/i386/i386.h: Adjust macro definition.
4169 * config/i386/i386.c (ix86_option_override_internal):
4170 Refactor the code.
4171 (parse_mtune_ctrl_str): New function.
4172 (set_ix86_tune_features): New function.
4173 (ix86_function_specific_restore): Call the new helper function.
4174
e839e2a9
AB
41752013-08-14 Andrey Belevantsev <abel@ispras.ru>
4176
4177 PR rtl-optimization/57662
4178 * sel-sched.c (code_motion_process_successors): When the current insn
4179 is removed after the recursive traversal, break from the loop.
4180 Add comments and debug printouts.
4181
27ed665f
JJ
41822013-08-14 Jakub Jelinek <jakub@redhat.com>
4183 Alexandre Oliva <aoliva@redhat.com>
4184
4185 PR target/58067
4186 * config/i386/i386.c (ix86_delegitimize_address): For CM_MEDIUM_PIC
4187 and CM_LARGE_PIC ix86_cmodel fall thru into the -m32 code, handle
4188 there also UNSPEC_PLTOFF.
4189
61c1a609
MP
41902013-08-14 Marek Polacek <polacek@redhat.com>
4191
4192 * ipa-inline-analysis.c (add_clause): Avoid shifting integer
4193 NUM_CONDITIONS bit positions.
4194
0e901c67
CC
41952013-08-13 Cary Coutant <ccoutant@google.com>
4196
4197 * dwarf2out.c (CHECKSUM_BLOCK): New macro.
4198 (attr_checksum): Hash vector contents instead of pointer.
4199 (attr_checksum_ordered): Likewise.
4200
061eff6d
UB
42012013-08-13 Uros Bizjak <ubizjak@gmail.com>
4202
4203 * config/i386/sse.md (*sse2_maskmovdqu): Emit addr32 prefix
4204 when Pmode != word_mode. Add length_address attribute.
4205 (sse3_monitor_<mode>): Merge from sse3_monitor and
4206 sse3_monitor64_<mode> insn patterns. Emit addr32 prefix when
4207 Pmode != word_mode. Update insn length attribute.
4208 * config/i386/i386.c (ix86_option_override_internal): Update
4209 ix86_gen_monitor selection for merged sse3_monitor insn.
4210
8ec9249b
JB
42112013-08-13 Julian Brown <julian@codesourcery.com>
4212
4213 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
4214 perform invalid legitimization on greater-than-word-size modes for
4215 TARGET_E500_DOUBLE.
4216
761a8eb7
VM
42172013-08-13 Vladimir Makarov <vmakarov@redhat.com>
4218
4219 * ira.c (setup_class_translate_array): Use aclass instead of cl
4220 for classes not fully covered by allocno classes.
4221
99c2bd54
JJ
42222013-08-13 Jakub Jelinek <jakub@redhat.com>
4223
4029a5e0
JJ
4224 PR tree-optimization/57661
4225 * tree-inline.h (struct copy_body_data): Add blocks_to_copy field.
4226 * tree-inline.c (tree_function_versioning): Initialize it.
4227 (remap_gimple_stmt): Return GIMPLE_NOP for MEM_REF lhs clobber stmts
4228 if id->blocks_to_copy and MEM_REF's SSA_NAME is defined in a block
4229 that is not being copied.
4230
99c2bd54
JJ
4231 PR sanitizer/56417
4232 * asan.c (instrument_strlen_call): Fix typo in comment.
4233 Use char * type even for the lhs of POINTER_PLUS_EXPR.
4234
b5f8f063
SE
42352013-08-13 Steve Ellcey <sellcey@mips.com>
4236
4237 * config/mips/mips.md (prefetch): Use lw instead of ld on
4238 loongson in 32bit mode.
4239
4de80584
NC
42402013-08-13 Nick Clifton <nickc@redhat.com>
4241
4242 * config.gcc: (avr-linux): Allow for tmake_file not being empty.
4243
09ce3660
JH
42442013-08-13 Jan Hubicka <jh@suse.cz>
4245
4246 * cgraph.c (cgraph_turn_edge_to_speculative): Return newly
4247 introduced edge; fix typo in sanity check.
4248 (cgraph_resolve_speculation): Export; improve diagnostic.
4249 (cgraph_redirect_edge_call_stmt_to_callee): Better diagnostic; cancel
4250 speculation at type mismatch.
4251 * cgraph.h (cgraph_turn_edge_to_speculative): Update.
4252 (cgraph_resolve_speculation): Declare.
4253 (symtab_can_be_discarded): New function.
4254 * value-prof.c (gimple_ic_transform): Remove actual transform code.
4255 * ipa-inline-transform.c (speculation_removed): New global var.
4256 (clone_inlined_nodes): See if speculation can be removed.
4257 (inline_call): If speculations was removed, we growths may not match.
4258 * ipa-inline.c (can_inline_edge_p): Add DISREGARD_LIMITS parameter.
4259 (speculation_useful_p): New function.
4260 (resolve_noninline_speculation): New function.
4261 (inline_small_functions): Resolve useless speculations.
4262 * ipa-inline.h (speculation_useful_p): Declare
4263 * ipa.c (can_replace_by_local_alias): Simplify.
4264 (ipa_profile): Produce speculative calls in non-lto, too;
4265 add simple cost model; produce local aliases.
4266
f971dc24
DM
42672013-08-13 David Malcolm <dmalcolm@redhat.com>
4268
4269 * config/i386/t-i386 (i386.o): Rename stray PIPELINE_H to
061eff6d 4270 PASS_MANAGER_H.
f971dc24 4271
2e507b9a
PC
42722013-08-12 Paolo Carlini <paolo.carlini@oracle.com>
4273
4274 * config/i386/i386.c (ix86_function_versions): Use error + inform.
4275
c97fd4b8
UB
42762013-08-12 Uros Bizjak <ubizjak@gmail.com>
4277
4278 * config/i386/i386.md (floatunssi<mode>2 expand): Use MODEF mode
4279 iterator instead of X87MODEF.
4280
42812013-08-12 Perez Read <netfirewall@gmail.com>
4282
4283 PR target/58132
4284 * config/i386/i386.md (*movabs<mode>_1): Add <ptrsize> PTR before
4285 operand 0 for intel asm alternative.
4286 (*movabs<mode>_2): Ditto for operand 1.
4287
f4f4204c
JG
42882013-08-12 James Greenhalgh <james.greenhalgh@arm.com>
4289
4290 * config/aarch64/arm_none.h
4291 (vdup<bhsd>_lane_<su><8,16,32,64>): Fix macro call.
4292
133b1a8e
NC
42932013-08-12 Nick Clifton <nickc@redhat.com>
4294
4295 * config.gcc (m32r-linux): Allow for tmake_file not being empty.
4296
15dd8b3a
YR
42972013-08-12 Yuri Rumyantsev <ysrumyan@gmail.com>
4298
4299 * config/i386/i386.md (floatunssi<mode>2 expand): Add new
4300 expand for QI/HImode operand to produce more effictive code for
4301 unsigned char(short) --> float(double) conversion.
4302
94109a6a
AM
43032013-08-12 Alexander Monakov <amonakov@ispras.ru>
4304
4305 * doc/invoke.texi: Mention that -ftls-model does not force the final
4306 model.
4307
4e115102
MP
43082013-08-12 Marek Polacek <polacek@redhat.com>
4309 Marc Glisse <marc.glisse@inria.fr>
4310
4311 PR tree-optimization/57980
4312 * tree-tailcall.c (process_assignment): Call build_minus_one_cst
4313 when creating -1 constant.
4314
748d71f3
JH
43152013-08-10 Jan Hubicka <jh@suse.cz>
4316
1f97e193 4317 Workaround binutils PR14342.
748d71f3
JH
4318 * tree-profile.c (init_ic_make_global_vars): Add LTO path.
4319 (gimple_init_edge_profiler): Likewise.
4320 (gimple_gen_ic_func_profiler): Likewise.
4321
5979aa54
JH
43222013-08-09 Jan Hubicka <jh@suse.cz>
4323
4324 * cgraph.c (cgraph_create_edge_1): Clear speculative flag.
4325
ad83025e
XDL
43262013-08-09 Xinliang David Li <davidxl@google.com>
4327
4328 * config/i386/stringop.def: New file.
4329 * config/i386/stringop.opt: New file.
4330 * config/i386/i386-opts.h: Include stringopt.def.
4331 * config/i386/i386.opt: Include stringopt.opt.
4332 * config/i386/i386.c (ix86_option_override_internal):
c97fd4b8 4333 Override default size based stringop inline strategies with options.
ad83025e
XDL
4334 * config/i386/i386.c (ix86_parse_stringop_strategy_string):
4335 New function.
4336
e59df5fd
JH
43372013-08-09 Jan Hubicka <jh@suse.cz>
4338
c97fd4b8 4339 * ipa-ref.c (ipa_clear_stmts_in_references): Clear lto_stmt_uid, too.
e59df5fd 4340
634ab819
JH
43412013-08-09 Jan Hubicka <jh@suse.cz>
4342
4343 * cgraph.c (cgraph_resolve_speculation): Cut frequency to
4344 CGRAPH_FREQ_MAX.
4345 (dump_cgraph_node): Dump profile-id.
4346 * cgraph.h (cgraph_indirect_call_info): Add common_target_id
4347 and common_target_probability.
4348 * lto-cgraph.c (lto_output_edge): Stream common targets.
4349 (lto_output_node): Stream profile ids.
4350 (input_node): Stream profile ids.
4351 (input_edge): Stream common targets.
4352 * lto-streamer-in.c (fixup_call_stmt_edges_1): Fix formatting.
4353 * ipa.c: Include value-prof.h
4354 (ipa_profile_generate_summary): Turn indirect call statement histograms
4355 into common targets.
4356 (ipa_profile): Turn common targets into speculative edges.
4357
2fa3d31b
JH
43582013-08-09 Jan Hubicka <jh@suse.cz>
4359
4360 * cgraph.h (cgraph_node): Add profile_id.
4361 * value-prof.c (cgraph_node_map): Turn into pointer_map.
c97fd4b8 4362 (init_node_map): Rewrite to handle hashes increas of incremental IDs.
2fa3d31b
JH
4363 (del_node_map): Update.
4364 (find_func_by_funcdef_no): Replace by ...
4365 (find_func_by_profile_id): ... this one.
4366 (gimple_ic_transform): Do not remove useful histograms when
4367 speculation is not done; dump info when indirect call removal
4368 can happen at LTO.
4369 * value-prof.h (find_func_by_profile_id, gimple_ic): Declare.
4370 * gcov-io.h (__gcov_indirect_call_profiler): Replace by ...
4371 (__gcov_indirect_call_profiler_v2): .. this one.
4372 * profile.h (init_node_map): Update.
4373 * coverage.c (coverage_compute_profile_id): New function.
4374 * coverage.h (coverage_compute_profile_id): Declare.
4375 * tree-profile.c (init_ic_make_global_vars): Make
4376 __gcov_indirect_call_callee and __gcov_indirect_call_counters global.
4377 (gimple_init_edge_profiler): Update prototype of
4378 __gcov_indirect_call_profiler.
4379 (gimple_gen_ic_func_profiler): Simplify.
4380 (tree_profiling): Use init_node_map
4381
042ae7d2
JH
43822013-08-09 Jan Hubicka <jh@suse.cz>
4383
c97fd4b8
UB
4384 * cgraphbuild.c (cgraph_rebuild_references): Rebuild only
4385 non-speculative refs.
042ae7d2
JH
4386 * cgraph.c (cgraph_update_edge_in_call_site_hash): New function.
4387 (cgraph_add_edge_to_call_site_hash): Deal with speculative calls.
4388 (cgraph_set_call_stmt): Likewise.
4389 (cgraph_create_edge_1): Fix release checking compilatoin;
4390 clear lto_stmt_uid.
4391 (cgraph_free_edge): Free indirect info.
4392 (cgraph_turn_edge_to_speculative): New function.
4393 (cgraph_speculative_call_info): New function.
4394 (cgraph_make_edge_direct): Return direct edge; handle speculation.
c97fd4b8 4395 (cgraph_redirect_edge_call_stmt_to_callee): Expand speculative edges.
042ae7d2
JH
4396 (dump_cgraph_node): Dump speculation.
4397 (verify_edge_count_and_frequency): Accept speculative edges.
4398 (verify_edge_corresponds_to_fndecl): Handle partitioned cgraph.
4399 (verify_cgraph_node): Handle speculation.
4400 * cgraph.h (cgraph_edge): Add SPECULATIVE flag.
4401 (cgraph_set_call_stmt): Update prototype.
4402 (cgraph_make_edge_direct): Update prototype.
4403 (cgraph_speculative_call_info): Declare.
4404 * ipa-cp.c (ipcp_discover_new_direct_edges): Be ready for edge
4405 to change; update call of ipa_find_references.
4406 * ipa-ref.c (ipa_record_reference): Fix return value; clear
4407 lto_stmt_uid and speculative flags.
4408 (ipa_dump_references): Dump speculation.
4409 (ipa_clone_references): Clone speculative flag.
4410 (ipa_clone_referring): Likewise.
4411 (ipa_clone_ref): New function.
4412 (ipa_find_reference): Look into lto_stmt_uids
4413 (ipa_clear_stmts_in_references): Do not clear speculative calls.
4414 * ipa-ref.h (ipa_ref): Add lto_stmt_uid and speculative flags.
4415 (ipa_find_reference): Update declaration.
4416 (ipa_clone_ref): Declare.
4417 * lto-cgraph.c (lto_output_edge): Make lto_stmt_uids start from 0;
4418 stream speculative flag.
4419 (lto_output_ref): Stream statements uids and speculation.
4420 (input_ref): Likewise.
4421 (input_edge): Stream speuclation.
4422 * cgraphclones.c (cgraph_clone_edge): Clone speculation.
4423 (cgraph_set_call_stmt_including_clones): Handle speculation.
4424 * ipa-inline.c (heap_edge_removal_hook): New function.
4425 (inline_small_functions): Register it.
4426 * lto-streamer-in.c (fixup_call_stmt_edges_1): Bounds checking;
4427 also initialize refs.
4428 * ipa-prop.c (ipa_make_edge_direct_to_target): Be ready for
4429 edge to change.
4430 (try_make_edge_direct_simple_call): Likewise.
4431 (try_make_edge_direct_simple_call): Likewise.
4432 (update_indirect_edges_after_inlining): Likewise.
4433 (remove_described_reference): Look proper lto_stmt_uid.
4434 (propagate_controlled_uses): Likewise.
4435 (propagate_controlled_uses): Liekwise.
4436 * tree-inline.c (copy_bb): Copy speculative edges.
4437 (redirect_all_calls): New function.
c97fd4b8
UB
4438 (copy_cfg_body): Do redirection after loop info is updated.
4439 (delete_unreachable_blocks_update_callgraph): Updadte speculation.
042ae7d2 4440
aa1e10cc
JH
44412013-08-09 Jan Hubicka <jh@suse.cz>
4442
4443 * lto-streamer-out.c (output_function): Renumber PHIs.
4444 * lto-streamer-in.c (input_function): Likewise.
4445
66adb8eb
JG
44462013-08-09 James Greenhalgh <james.greenhalgh@arm.com>
4447
4448 * config/aarch64/aarch64-simd-builtins.def (get_lane_signed): Remove.
4449 (get_lane_unsigned): Likewise.
4450 (dup_lane_scalar): Likewise.
4451 (get_lane): enable for VALL.
4452 * config/aarch64/aarch64-simd.md
4453 (aarch64_dup_lane_scalar<mode>): Remove.
4454 (aarch64_get_lane_signed<mode>): Likewise.
4455 (aarch64_get_lane_unsigned<mode>): Likewise.
4456 (aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): New.
4457 (aarch64_get_lane_zero_extendsi<mode>): Likewise.
4458 (aarch64_get_lane<mode>): Enable for all vector modes.
4459 (aarch64_get_lanedi): Remove misleading constraints.
4460 * config/aarch64/arm_neon.h
4461 (__aarch64_vget_lane_any): Define.
4462 (__aarch64_vget<q>_lane_<fpsu><8,16,32,64>): Likewise.
4463 (vget<q>_lane_<fpsu><8,16,32,64>): Use __aarch64_vget_lane macros.
4464 (vdup<bhsd>_lane_<su><8,16,32,64>): Likewise.
4465 * config/aarch64/iterators.md (VDQQH): New.
4466 (VDQQHS): Likewise.
4467 (vwcore): Likewise.
4468
1f65ae7a
EB
44692013-08-09 Eric Botcazou <ebotcazou@adacore.com>
4470
4471 * configure.ac: Add GAS check for LEON instructions on SPARC.
4472 * configure: Regenerate.
4473 * config.in: Likewise.
4474 * config.gcc (with_cpu): Remove sparc-leon*-* and deal with LEON in the
4475 sparc*-*-* block.
4476 * config/sparc/sparc.opt (LEON, LEON3): New masks.
4477 * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Set to AS_LEON_FLAG
4478 for LEON or LEON3.
4479 (ASM_CPU_SPEC): Pass AS_LEON_FLAG if -mcpu=leon or -mcpu=leon3.
4480 (AS_LEON_FLAG): New macro.
4481 * config/sparc/sparc.c (sparc_option_override): Set MASK_LEON for leon
4482 and MASK_LEON3 for leon3 and unset them if HAVE_AS_LEON is not defined.
4483 Deal with LEON and LEON3 for the memory model.
23a6cb78 4484 * config/sparc/sync.md (atomic_compare_and_swap<mode>): Enable if LEON3
1f65ae7a
EB
4485 (atomic_compare_and_swap<mode>_1): Likewise.
4486 (*atomic_compare_and_swap<mode>_1): Likewise.
4487
ff522f7f
ZC
44882013-08-09 Zhenqiang Chen <zhenqiang.chen@linaro.org>
4489
4490 * config/arm/neon.md (vcond): Fix floating-point vector
4491 comparisons against 0.
4492
cb1cca12
VM
44932013-08-08 Vladimir Makarov <vmakarov@redhat.com>
4494
4495 * lra-constraints.c (emit_spill_move): Remove assert.
4496 (process_alt_operands): Add more debugging
4497 output. Increase reject for spilling into memory. Decrease
4498 reject for reloading scratch.
4499 (split_reg): Use HARD_REGNO_CALLER_SAVE_MODE.
4500
a3719e31
SE
45012013-08-08 Steve Ellcey <sellcey@mips.com>
4502
4503 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add nan2008.
4504 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Make mips16 and
4505 micromips incompatible. Add nan2008.
4506 (MULTILIB_DIRNAMES): Add nan2008.
4507 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
4508 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Make mips16
4509 and micromips incompatible. Add nan2008.
4510 (MULTILIB_DIRNAMES): Add nan2008.
4511 (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry.
4512
f40423e2
RS
45132013-08-08 Richard Sandiford <rdsandiford@googlemail.com>
4514
4515 PR rtl-optimization/58079
4516 * combine.c (combine_simplify_rtx): Avoid using SUBST if
4517 simplify_comparison has widened a comparison with an integer.
4518
869b9125
KT
45192013-08-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4520
4521 * config/arm/neon.md (movmisalign<mode>): Disable when we
4522 don't allow unaligned accesses.
4523 (*movmisalign<mode>_neon_store): Likewise.
4524 (*movmisalign<mode>_neon_load): Likewise.
4525 (*movmisalign<mode>_neon_store): Likewise.
4526 (*movmisalign<mode>_neon_load): Likewise.
4527
71cafea9
JH
45282013-08-08 Jan Hubicka <jh@suse.cz>
4529
4530 * cgraphbuild.c (build_cgraph_edges): Do not walk into debugs.
4531 (make_pass_rebuild_cgraph_edges): Also clear references.
4532 * cgraph.c (verify_cgraph_node): Add basic ipa-ref verifier.
4533 * ipa-inline-transform.c (inline_transform): Remove all references
4534 after inlining.
c97fd4b8
UB
4535 * cgraphunit.c (expand_function): Remove all references after
4536 expansion.
71cafea9
JH
4537 * ipa-ref.c (ipa_ref_has_aliases_p): Fix formatting.
4538 (ipa_find_reference): Rewrite to iterator.
4539 (remove_stmt_references): Likewise.
4540 (ipa_clear_stmts_in_references): New function.
4541 * ipa-ref.h (ipa_clear_stmts_in_references): Declare.
03b0ee0a
UB
4542 * cgraphclones.c (cgraph_materialize_all_clones): Remove or
4543 clear references.
71cafea9
JH
4544 * ipa-split.c (split_function): Remove references in split function.
4545
27d2e612
RE
45462013-08-08 Richard Earnshaw <rearnsha@arm.com>
4547
4548 PR target/57431
1f65ae7a 4549 * config/arm/arm/neon.md (neon_vld1_dupdi): New expand pattern.
27d2e612
RE
4550 (neon_vld1_dup<mode> VD iterator): Iterate over VD not VDX.
4551
5efc661c
RE
45522013-08-08 Richard Earnshaw <rearnsha@arm.com>
4553
4554 PR target/56979
1f65ae7a 4555 * config/arm/arm.c (aapcs_vfp_allocate): Decompose the argument if the
5efc661c
RE
4556 suggested mode for the assignment isn't compatible with the
4557 registers required.
4558
f276d31d
BE
45592013-08-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
4560
4561 PR target/58065
4562 * config/arm/arm.h (MALLOC_ABI_ALIGNMENT): Define.
4563
4b8bc035
XDL
45642013-08-07 Xinliang David Li <davidxl@google.com>
4565
4566 * config/i386/i386.opt: New option -mtune-ctrl=.
4567 * config/i386/x86-tune.def: New file.
4568 * config/i386/i386.h: include x86-tune.def.
4569 * config/i386/i386.c (ix86_option_override_internal):
4570 Parsing -mtune-ctrl= option and set tune features.
4571
12211b99 45722013-08-07 Oleg Endo <olegendo@gcc.gnu.org>
a5b38740
OE
4573
4574 PR other/12081
03b0ee0a 4575 * config/rs6000/rs6000.c (gen_2arg_fn_t): Remove typedef.
a5b38740
OE
4576 (rs6000_emit_swdiv, rs6000_emit_swrsqrt): Don't cast result of GEN_FCN
4577 to gen_2arg_fn_t.
4578
5cf6635b
EB
45792013-08-07 Eric Botcazou <ebotcazou@adacore.com>
4580
4581 * rtl.h (update_alignments): Declare.
4582 * final.c (grow_label_align): New function extracted from...
4583 (shorten_branches): ...here. Call it.
4584 (update_alignments): New function.
4585 * reorg.c (sibling_labels): New variable.
4586 (get_label_before): Add SIBLING parameter. If it is non-zero, push
4587 the new label along with it onto the sibling_labels vector.
4588 (fill_simple_delay_slots): Adjust call to get_label_before.
4589 (fill_slots_from_thread): Likewise.
4590 (relax_delay_slots): Likewise.
4591 (make_return_insns): Likewise.
4592 (dbr_schedule): Invoke update_alignment on the sibling_labels vector.
4593
3c8ca1ab
EB
45942013-08-07 Eric Botcazou <ebotcazou@adacore.com>
4595
4596 * diagnostic.c (diagnostic_classify_diagnostic): Accept zero index and
4597 document its semantics.
4598 (diagnostic_report_diagnostic): Adjust accordingly.
4599
5ee5b32c
DM
46002013-08-07 David Malcolm <dmalcolm@redhat.com>
4601
03b0ee0a 4602 * config/sparc/sparc.c (insert_pass_work_around_errata): Move into...
5ee5b32c
DM
4603 (sparc_option_override): ...and port to new C++ pass API.
4604 * config/sparc/t-sparc (sparc.o): Add dep on CONTEXT_H
4605
abd566fa
PB
46062013-08-07 Peter Bergner <bergner@vnet.ibm.com>
4607
4608 * config/rs6000/rs6000.c (htm_expand_builtin) <case 0>: Remove.
4609
2077db1b
CT
46102013-08-06 Caroline Tice <cmtice@google.com>
4611
4612 * gcc.c (VTABLE_VERIFICATION_SPEC): New definition.
4613 (LINK_COMMAND_SPEC): Add VTABLE_VERIFICATION_SPEC.
4614 * tree-pass.h: Add pass_vtable_verify.
4615 * varasm.c (assemble_variable): Add code to properly set the comdat
4616 section and name for the .vtable_map_vars section.
4617 (assemble_vtyv_preinit_initializer): New function.
4618 (default_sectin_type_flags): Make sure .vtable_map_vars section has
4619 LINK_ONCE flag.
4620 * output.h: Add function decl for assemble_vtv_preinit_initializer.
4621 * vtable-verify.c: New file.
4622 * vtable-verify.h: New file.
4623 * flag-types.h (enum vtv_priority): Defintions for flag_vtable_verify
4624 initialiation levels.
4625 * timevar.def (TV_VTABLE_VERIFICATION): New definition.
4626 * passes.def: Insert pass_vtable_verify.
4627 * aclocal.m4: Reorder includes.
4628 * doc/invoke.texi: Document the -fvtable-verify=, -fvtv-debug, and
4629 -fvtv-counts options.
4630 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add vtv_start*.o,
4631 as appropriate, if -fvtable-verify=... is used.
4632 (GNU_USER_TARGET_ENDFILE_SPEC): Add vtv_end*.o as appropriate, if
4633 -fvtable-verify=... is used.
4634 * Makefile.in (OBJS): Add vtable-verify.o to list.
4635 (vtable-verify.o): Add new build rule.
4636 (GTFILES): Add vtable-verify.c to list.
4637 * common.opt (fvtable-verify=): New flag.
4638 (vtv_priority): Values for fvtable-verify= flag.
4639 (fvtv-counts): New flag.
4640 (fvtv-debug): New flag.
4641 * tree.h (save_vtable_map_decl): New extern function decl.
4642
03085d1c
DM
46432013-08-07 David Malcolm <dmalcolm@redhat.com>
4644
4645 * config/rl78/rl78.c (rl78_devirt_pass): Convert from a struct to...
4646 (pass_rl78_devirt): ...new subclass of rtl_opt_pass along with...
4647 (pass_data_rl78_devirt): ...new pass_data instance and...
4648 (make_pass_rl78_devirt): ...new function.
4649 (rl78_asm_file_start): Port pass registration to new C++ API.
4650
05555c4a
DM
46512013-08-07 David Malcolm <dmalcolm@redhat.com>
4652
4653 * coretypes.h (rtl_opt_pass): Add.
4654 (gcc::context): Add.
4655 * config/epiphany/epiphany.c (pass_mode_switch_use): New.
4656 (epiphany_init): Port to new C++ pass API.
4657 (epiphany_optimize_mode_switching): Likewise.
4658 * pass_manager.h (pass_manager::get_pass_split_all_insns): New.
4659 (pass_manager::get_pass_mode_switching): New.
4660 (pass_manager::get_pass_peephole2): New.
4661 * mode-switching.c (pass_mode_switching): Add clone method.
4662 * recog.c (pass_peephole2): Add clone method.
4663 (pass_split_all_insns): Add clone method.
4664
c5a12e26
DM
46652013-08-06 David Malcolm <dmalcolm@redhat.com>
4666
03b0ee0a
UB
4667 * config/mips/mips.c (insert_pass_mips_machine_reorg2): Move into...
4668 (mips_option_override): ...here, porting to new C++ API for passes.
c5a12e26 4669
a2e2a668
JH
46702013-08-06 Jan Hubicka <jh@suse.cz>
4671
4672 * cgraph.c (cgraph_get_body): New function based on lto.c
4673 implementation.
4674 * cgraph.h (cgraph_get_body): Declare.
03b0ee0a
UB
4675 * cgraphclones.c (cgraph_create_virtual_clone): Commonize WPA and
4676 LTO paths.
a2e2a668
JH
4677 * cgraphunit.c (expand_function): Get body prior expanding.
4678 * ipa.c (function_and_variable_visibility): Use gimple_has_body_p test.
03b0ee0a
UB
4679 * lto-cgraph.c (lto_output_node): Do not stream bodies we don't
4680 really need.
a2e2a668
JH
4681 * passes.c (do_per_function_toporder): Get body.
4682 * tree-inline.c (expand_call_inline): Get body prior inlining it.
4683 * tree-ssa-structalias.c (ipa_pta_execute): Get body; skip clones.
4684
15682f24
MJ
46852013-08-06 Martin Jambor <mjambor@suse.cz>
4686
4687 PR fortran/57987
4688 * cgraphunit.c (cgraph_finalize_function): Assert that nested function
4689 is not re-finalized. Rename second parameter to no_collect.
4690
78f6dd68
MJ
46912013-08-06 Martin Jambor <mjambor@suse.cz>
4692
4693 PR middle-end/58041
4694 * gimple-ssa-strength-reduction.c (replace_ref): Make sure built
4695 MEM_REF has proper alignment information.
4696
12211b99 46972013-08-05 Oleg Endo <olegendo@gcc.gnu.org>
eb923e54
OE
4698
4699 PR other/12081
4700 * recog.h (rtx (*insn_gen_fn) (rtx, ...)): Replace typedef with new
4701 class insn_gen_fn.
4702 * expr.c (move_by_pieces_1, store_by_pieces_2): Replace argument
4703 rtx (*) (rtx, ...) with insn_gen_fn.
4704 * genoutput.c (output_insn_data): Cast gen_? function pointers to
4705 insn_gen_fn::stored_funcptr. Add initializer braces.
4706
8ac69a6c
DM
47072013-08-05 David Malcolm <dmalcolm@redhat.com>
4708
4709 Rewrite how instances of passes are cloned to remove assumptions
4710 about their sizes (thus allowing pass subclasses to have
4711 additional data fields, albeit non-GC-managed ones at this point).
4712
4713 * passes.c (make_pass_instance): Now that passes have clone
4714 methods, rewrite this function to eliminate XNEW and memcpy
4715 calls that used hardcoded sizes. Since this function no longer
4716 creates pass instances, rename it to...
03b0ee0a
UB
4717 (add_pass_instance): ...this. Document the old way that passes were
4718 numbered and flagged, and rework this function to continue using it.
8ac69a6c
DM
4719 (next_pass_1): Add an initial_pass argument for use by
4720 add_pass_instance.
4721 (position_pass): When adding multiple instances of a pass, use
4722 the pass's clone method, rather than relying on the XNEW/memcpy
4723 within the former make_pass_instance (now add_pass_instance).
03b0ee0a
UB
4724 (pass_manager::pass_manager): When invoking next_pass_1, also supply
4725 the initial instance of the current pass within the pass manager.
8ac69a6c 4726
27a4cd48
DM
47272013-08-05 David Malcolm <dmalcolm@redhat.com>
4728
4729 This is the automated part of the conversion of passes from C
4730 structs to C++ classes.
4731
4732 Patch autogenerated by refactor_passes.py from
4733 https://github.com/davidmalcolm/gcc-refactoring-scripts
4734 revision 03fe39476a4c4ea450b49e087cfa817b5f92021e
4735
4736 * asan.c (pass_asan): Convert from a global struct to a subclass of
4737 gimple_opt_pass along with...
4738 (pass_data_asan): ...new pass_data instance and...
4739 (make_pass_asan): ...new function.
4740 (pass_asan_O0): Convert from a global struct to a subclass of
4741 gimple_opt_pass along with...
4742 (pass_data_asan_O0): ...new pass_data instance and...
4743 (make_pass_asan_O0): ...new function.
4744 * auto-inc-dec.c (pass_inc_dec): Convert from a global struct to a
4745 subclass of rtl_opt_pass along with...
4746 (pass_data_inc_dec): ...new pass_data instance and...
4747 (make_pass_inc_dec): ...new function.
4748 * bb-reorder.c (pass_reorder_blocks): Convert from a global struct to
4749 a subclass of rtl_opt_pass along with...
4750 (pass_data_reorder_blocks): ...new pass_data instance and...
4751 (make_pass_reorder_blocks): ...new function.
4752 (pass_duplicate_computed_gotos): Convert from a global struct to a
4753 subclass of rtl_opt_pass along with...
4754 (pass_data_duplicate_computed_gotos): ...new pass_data instance and...
4755 (make_pass_duplicate_computed_gotos): ...new function.
4756 (pass_partition_blocks): Convert from a global struct to a subclass of
4757 rtl_opt_pass along with...
4758 (pass_data_partition_blocks): ...new pass_data instance and...
4759 (make_pass_partition_blocks): ...new function.
4760 * bt-load.c (pass_branch_target_load_optimize1): Convert from a global
4761 struct to a subclass of rtl_opt_pass along with...
4762 (pass_data_branch_target_load_optimize1): ...new pass_data instance
4763 and...
4764 (make_pass_branch_target_load_optimize1): ...new function.
4765 (pass_branch_target_load_optimize2): Convert from a global struct to a
4766 subclass of rtl_opt_pass along with...
4767 (pass_data_branch_target_load_optimize2): ...new pass_data instance
4768 and...
4769 (make_pass_branch_target_load_optimize2): ...new function.
4770 * cfgcleanup.c (pass_jump): Convert from a global struct to a subclass
4771 of rtl_opt_pass along with...
4772 (pass_data_jump): ...new pass_data instance and...
4773 (make_pass_jump): ...new function.
4774 (pass_jump2): Convert from a global struct to a subclass of
4775 rtl_opt_pass along with...
4776 (pass_data_jump2): ...new pass_data instance and...
4777 (make_pass_jump2): ...new function.
4778 * cfgexpand.c (pass_expand): Convert from a global struct to a
4779 subclass of rtl_opt_pass along with...
4780 (pass_data_expand): ...new pass_data instance and...
4781 (make_pass_expand): ...new function.
4782 * cfgrtl.c (pass_free_cfg): Convert from a global struct to a subclass
4783 of rtl_opt_pass along with...
4784 (pass_data_free_cfg): ...new pass_data instance and...
4785 (make_pass_free_cfg): ...new function.
4786 (pass_into_cfg_layout_mode): Convert from a global struct to a
4787 subclass of rtl_opt_pass along with...
4788 (pass_data_into_cfg_layout_mode): ...new pass_data instance and...
4789 (make_pass_into_cfg_layout_mode): ...new function.
4790 (pass_outof_cfg_layout_mode): Convert from a global struct to a
4791 subclass of rtl_opt_pass along with...
4792 (pass_data_outof_cfg_layout_mode): ...new pass_data instance and...
4793 (make_pass_outof_cfg_layout_mode): ...new function.
4794 * cgraphbuild.c (pass_build_cgraph_edges): Convert from a global
4795 struct to a subclass of gimple_opt_pass along with...
4796 (pass_data_build_cgraph_edges): ...new pass_data instance and...
4797 (make_pass_build_cgraph_edges): ...new function.
4798 (pass_rebuild_cgraph_edges): Convert from a global struct to a
4799 subclass of gimple_opt_pass along with...
4800 (pass_data_rebuild_cgraph_edges): ...new pass_data instance and...
4801 (make_pass_rebuild_cgraph_edges): ...new function.
4802 (pass_remove_cgraph_callee_edges): Convert from a global struct to a
4803 subclass of gimple_opt_pass along with...
4804 (pass_data_remove_cgraph_callee_edges): ...new pass_data instance
4805 and...
4806 (make_pass_remove_cgraph_callee_edges): ...new function.
4807 * combine-stack-adj.c (pass_stack_adjustments): Convert from a global
4808 struct to a subclass of rtl_opt_pass along with...
4809 (pass_data_stack_adjustments): ...new pass_data instance and...
4810 (make_pass_stack_adjustments): ...new function.
4811 * combine.c (pass_combine): Convert from a global struct to a subclass
4812 of rtl_opt_pass along with...
4813 (pass_data_combine): ...new pass_data instance and...
4814 (make_pass_combine): ...new function.
4815 * compare-elim.c (pass_compare_elim_after_reload): Convert from a
4816 global struct to a subclass of rtl_opt_pass along with...
4817 (pass_data_compare_elim_after_reload): ...new pass_data instance
4818 and...
4819 (make_pass_compare_elim_after_reload): ...new function.
4820 * cprop.c (pass_rtl_cprop): Convert from a global struct to a subclass
4821 of rtl_opt_pass along with...
4822 (pass_data_rtl_cprop): ...new pass_data instance and...
4823 (make_pass_rtl_cprop): ...new function.
4824 * cse.c (pass_cse): Convert from a global struct to a subclass of
4825 rtl_opt_pass along with...
4826 (pass_data_cse): ...new pass_data instance and...
4827 (make_pass_cse): ...new function.
4828 (pass_cse2): Convert from a global struct to a subclass of
4829 rtl_opt_pass along with...
4830 (pass_data_cse2): ...new pass_data instance and...
4831 (make_pass_cse2): ...new function.
4832 (pass_cse_after_global_opts): Convert from a global struct to a
4833 subclass of rtl_opt_pass along with...
4834 (pass_data_cse_after_global_opts): ...new pass_data instance and...
4835 (make_pass_cse_after_global_opts): ...new function.
4836 * dce.c (pass_ud_rtl_dce): Convert from a global struct to a subclass
4837 of rtl_opt_pass along with...
4838 (pass_data_ud_rtl_dce): ...new pass_data instance and...
4839 (make_pass_ud_rtl_dce): ...new function.
4840 (pass_fast_rtl_dce): Convert from a global struct to a subclass of
4841 rtl_opt_pass along with...
4842 (pass_data_fast_rtl_dce): ...new pass_data instance and...
4843 (make_pass_fast_rtl_dce): ...new function.
4844 * df-core.c (pass_df_initialize_opt): Convert from a global struct to
4845 a subclass of rtl_opt_pass along with...
4846 (pass_data_df_initialize_opt): ...new pass_data instance and...
4847 (make_pass_df_initialize_opt): ...new function.
4848 (pass_df_initialize_no_opt): Convert from a global struct to a
4849 subclass of rtl_opt_pass along with...
4850 (pass_data_df_initialize_no_opt): ...new pass_data instance and...
4851 (make_pass_df_initialize_no_opt): ...new function.
4852 (pass_df_finish): Convert from a global struct to a subclass of
4853 rtl_opt_pass along with...
4854 (pass_data_df_finish): ...new pass_data instance and...
4855 (make_pass_df_finish): ...new function.
4856 * dse.c (pass_rtl_dse1): Convert from a global struct to a subclass of
4857 rtl_opt_pass along with...
4858 (pass_data_rtl_dse1): ...new pass_data instance and...
4859 (make_pass_rtl_dse1): ...new function.
4860 (pass_rtl_dse2): Convert from a global struct to a subclass of
4861 rtl_opt_pass along with...
4862 (pass_data_rtl_dse2): ...new pass_data instance and...
4863 (make_pass_rtl_dse2): ...new function.
4864 * dwarf2cfi.c (pass_dwarf2_frame): Convert from a global struct to a
4865 subclass of rtl_opt_pass along with...
4866 (pass_data_dwarf2_frame): ...new pass_data instance and...
4867 (make_pass_dwarf2_frame): ...new function.
4868 * except.c (pass_set_nothrow_function_flags): Convert from a global
4869 struct to a subclass of rtl_opt_pass along with...
4870 (pass_data_set_nothrow_function_flags): ...new pass_data instance
4871 and...
4872 (make_pass_set_nothrow_function_flags): ...new function.
4873 (pass_convert_to_eh_region_ranges): Convert from a global struct to a
4874 subclass of rtl_opt_pass along with...
4875 (pass_data_convert_to_eh_region_ranges): ...new pass_data instance
4876 and...
4877 (make_pass_convert_to_eh_region_ranges): ...new function.
4878 * final.c (pass_compute_alignments): Convert from a global struct to a
4879 subclass of rtl_opt_pass along with...
4880 (pass_data_compute_alignments): ...new pass_data instance and...
4881 (make_pass_compute_alignments): ...new function.
4882 (pass_final): Convert from a global struct to a subclass of
4883 rtl_opt_pass along with...
4884 (pass_data_final): ...new pass_data instance and...
4885 (make_pass_final): ...new function.
4886 (pass_shorten_branches): Convert from a global struct to a subclass of
4887 rtl_opt_pass along with...
4888 (pass_data_shorten_branches): ...new pass_data instance and...
4889 (make_pass_shorten_branches): ...new function.
4890 (pass_clean_state): Convert from a global struct to a subclass of
4891 rtl_opt_pass along with...
4892 (pass_data_clean_state): ...new pass_data instance and...
4893 (make_pass_clean_state): ...new function.
4894 * function.c (pass_instantiate_virtual_regs): Convert from a global
4895 struct to a subclass of rtl_opt_pass along with...
4896 (pass_data_instantiate_virtual_regs): ...new pass_data instance and...
4897 (make_pass_instantiate_virtual_regs): ...new function.
4898 (pass_leaf_regs): Convert from a global struct to a subclass of
4899 rtl_opt_pass along with...
4900 (pass_data_leaf_regs): ...new pass_data instance and...
4901 (make_pass_leaf_regs): ...new function.
4902 (pass_thread_prologue_and_epilogue): Convert from a global struct to a
4903 subclass of rtl_opt_pass along with...
4904 (pass_data_thread_prologue_and_epilogue): ...new pass_data instance
4905 and...
4906 (make_pass_thread_prologue_and_epilogue): ...new function.
4907 (pass_match_asm_constraints): Convert from a global struct to a
4908 subclass of rtl_opt_pass along with...
4909 (pass_data_match_asm_constraints): ...new pass_data instance and...
4910 (make_pass_match_asm_constraints): ...new function.
4911 * fwprop.c (pass_rtl_fwprop): Convert from a global struct to a
4912 subclass of rtl_opt_pass along with...
4913 (pass_data_rtl_fwprop): ...new pass_data instance and...
4914 (make_pass_rtl_fwprop): ...new function.
4915 (pass_rtl_fwprop_addr): Convert from a global struct to a subclass of
4916 rtl_opt_pass along with...
4917 (pass_data_rtl_fwprop_addr): ...new pass_data instance and...
4918 (make_pass_rtl_fwprop_addr): ...new function.
4919 * gcse.c (pass_rtl_pre): Convert from a global struct to a subclass of
4920 rtl_opt_pass along with...
4921 (pass_data_rtl_pre): ...new pass_data instance and...
4922 (make_pass_rtl_pre): ...new function.
4923 (pass_rtl_hoist): Convert from a global struct to a subclass of
4924 rtl_opt_pass along with...
4925 (pass_data_rtl_hoist): ...new pass_data instance and...
4926 (make_pass_rtl_hoist): ...new function.
4927 * gimple-low.c (pass_lower_cf): Convert from a global struct to a
4928 subclass of gimple_opt_pass along with...
4929 (pass_data_lower_cf): ...new pass_data instance and...
4930 (make_pass_lower_cf): ...new function.
4931 * gimple-ssa-strength-reduction.c (pass_strength_reduction): Convert
4932 from a global struct to a subclass of gimple_opt_pass along with...
4933 (pass_data_strength_reduction): ...new pass_data instance and...
4934 (make_pass_strength_reduction): ...new function.
4935 * ifcvt.c (pass_rtl_ifcvt): Convert from a global struct to a subclass
4936 of rtl_opt_pass along with...
4937 (pass_data_rtl_ifcvt): ...new pass_data instance and...
4938 (make_pass_rtl_ifcvt): ...new function.
4939 (pass_if_after_combine): Convert from a global struct to a subclass of
4940 rtl_opt_pass along with...
4941 (pass_data_if_after_combine): ...new pass_data instance and...
4942 (make_pass_if_after_combine): ...new function.
4943 (pass_if_after_reload): Convert from a global struct to a subclass of
4944 rtl_opt_pass along with...
4945 (pass_data_if_after_reload): ...new pass_data instance and...
4946 (make_pass_if_after_reload): ...new function.
4947 * init-regs.c (pass_initialize_regs): Convert from a global struct to
4948 a subclass of rtl_opt_pass along with...
4949 (pass_data_initialize_regs): ...new pass_data instance and...
4950 (make_pass_initialize_regs): ...new function.
4951 * ipa-cp.c (pass_ipa_cp): Convert from a global struct to a subclass
4952 of ipa_opt_pass_d along with...
4953 (pass_data_ipa_cp): ...new pass_data instance and...
4954 (make_pass_ipa_cp): ...new function.
4955 * ipa-inline-analysis.c (pass_inline_parameters): Convert from a
4956 global struct to a subclass of gimple_opt_pass along with...
4957 (pass_data_inline_parameters): ...new pass_data instance and...
4958 (make_pass_inline_parameters): ...new function.
4959 * ipa-inline.c (pass_early_inline): Convert from a global struct to a
4960 subclass of gimple_opt_pass along with...
4961 (pass_data_early_inline): ...new pass_data instance and...
4962 (make_pass_early_inline): ...new function.
4963 (pass_ipa_inline): Convert from a global struct to a subclass of
4964 ipa_opt_pass_d along with...
4965 (pass_data_ipa_inline): ...new pass_data instance and...
4966 (make_pass_ipa_inline): ...new function.
4967 * ipa-pure-const.c (pass_local_pure_const): Convert from a global
4968 struct to a subclass of gimple_opt_pass along with...
4969 (pass_data_local_pure_const): ...new pass_data instance and...
4970 (make_pass_local_pure_const): ...new function.
4971 (pass_ipa_pure_const): Convert from a global struct to a subclass of
4972 ipa_opt_pass_d along with...
4973 (pass_data_ipa_pure_const): ...new pass_data instance and...
4974 (make_pass_ipa_pure_const): ...new function.
4975 * ipa-reference.c (pass_ipa_reference): Convert from a global struct
4976 to a subclass of ipa_opt_pass_d along with...
4977 (pass_data_ipa_reference): ...new pass_data instance and...
4978 (make_pass_ipa_reference): ...new function.
4979 * ipa-split.c (pass_split_functions): Convert from a global struct to
4980 a subclass of gimple_opt_pass along with...
4981 (pass_data_split_functions): ...new pass_data instance and...
4982 (make_pass_split_functions): ...new function.
4983 (pass_feedback_split_functions): Convert from a global struct to a
4984 subclass of gimple_opt_pass along with...
4985 (pass_data_feedback_split_functions): ...new pass_data instance and...
4986 (make_pass_feedback_split_functions): ...new function.
4987 * ipa.c (pass_ipa_function_and_variable_visibility): Convert from a
4988 global struct to a subclass of simple_ipa_opt_pass along with...
4989 (pass_data_ipa_function_and_variable_visibility): ...new pass_data
4990 instance and...
4991 (make_pass_ipa_function_and_variable_visibility): ...new function.
4992 (pass_ipa_free_inline_summary): Convert from a global struct to a
4993 subclass of simple_ipa_opt_pass along with...
4994 (pass_data_ipa_free_inline_summary): ...new pass_data instance and...
4995 (make_pass_ipa_free_inline_summary): ...new function.
4996 (pass_ipa_whole_program_visibility): Convert from a global struct to a
4997 subclass of ipa_opt_pass_d along with...
4998 (pass_data_ipa_whole_program_visibility): ...new pass_data instance
4999 and...
5000 (make_pass_ipa_whole_program_visibility): ...new function.
5001 (pass_ipa_profile): Convert from a global struct to a subclass of
5002 ipa_opt_pass_d along with...
5003 (pass_data_ipa_profile): ...new pass_data instance and...
5004 (make_pass_ipa_profile): ...new function.
5005 (pass_ipa_cdtor_merge): Convert from a global struct to a subclass of
5006 ipa_opt_pass_d along with...
5007 (pass_data_ipa_cdtor_merge): ...new pass_data instance and...
5008 (make_pass_ipa_cdtor_merge): ...new function.
5009 * ira.c (pass_ira): Convert from a global struct to a subclass of
5010 rtl_opt_pass along with...
5011 (pass_data_ira): ...new pass_data instance and...
5012 (make_pass_ira): ...new function.
5013 (pass_reload): Convert from a global struct to a subclass of
5014 rtl_opt_pass along with...
5015 (pass_data_reload): ...new pass_data instance and...
5016 (make_pass_reload): ...new function.
5017 * jump.c (pass_cleanup_barriers): Convert from a global struct to a
5018 subclass of rtl_opt_pass along with...
5019 (pass_data_cleanup_barriers): ...new pass_data instance and...
5020 (make_pass_cleanup_barriers): ...new function.
5021 * loop-init.c (pass_loop2): Convert from a global struct to a subclass
5022 of rtl_opt_pass along with...
5023 (pass_data_loop2): ...new pass_data instance and...
5024 (make_pass_loop2): ...new function.
5025 (pass_rtl_loop_init): Convert from a global struct to a subclass of
5026 rtl_opt_pass along with...
5027 (pass_data_rtl_loop_init): ...new pass_data instance and...
5028 (make_pass_rtl_loop_init): ...new function.
5029 (pass_rtl_loop_done): Convert from a global struct to a subclass of
5030 rtl_opt_pass along with...
5031 (pass_data_rtl_loop_done): ...new pass_data instance and...
5032 (make_pass_rtl_loop_done): ...new function.
5033 (pass_rtl_move_loop_invariants): Convert from a global struct to a
5034 subclass of rtl_opt_pass along with...
5035 (pass_data_rtl_move_loop_invariants): ...new pass_data instance and...
5036 (make_pass_rtl_move_loop_invariants): ...new function.
5037 (pass_rtl_unswitch): Convert from a global struct to a subclass of
5038 rtl_opt_pass along with...
5039 (pass_data_rtl_unswitch): ...new pass_data instance and...
5040 (make_pass_rtl_unswitch): ...new function.
5041 (pass_rtl_unroll_and_peel_loops): Convert from a global struct to a
5042 subclass of rtl_opt_pass along with...
5043 (pass_data_rtl_unroll_and_peel_loops): ...new pass_data instance
5044 and...
5045 (make_pass_rtl_unroll_and_peel_loops): ...new function.
5046 (pass_rtl_doloop): Convert from a global struct to a subclass of
5047 rtl_opt_pass along with...
5048 (pass_data_rtl_doloop): ...new pass_data instance and...
5049 (make_pass_rtl_doloop): ...new function.
5050 * lower-subreg.c (pass_lower_subreg): Convert from a global struct to
5051 a subclass of rtl_opt_pass along with...
5052 (pass_data_lower_subreg): ...new pass_data instance and...
5053 (make_pass_lower_subreg): ...new function.
5054 (pass_lower_subreg2): Convert from a global struct to a subclass of
5055 rtl_opt_pass along with...
5056 (pass_data_lower_subreg2): ...new pass_data instance and...
5057 (make_pass_lower_subreg2): ...new function.
5058 * lto-streamer-out.c (pass_ipa_lto_gimple_out): Convert from a global
5059 struct to a subclass of ipa_opt_pass_d along with...
5060 (pass_data_ipa_lto_gimple_out): ...new pass_data instance and...
5061 (make_pass_ipa_lto_gimple_out): ...new function.
5062 (pass_ipa_lto_finish_out): Convert from a global struct to a subclass
5063 of ipa_opt_pass_d along with...
5064 (pass_data_ipa_lto_finish_out): ...new pass_data instance and...
5065 (make_pass_ipa_lto_finish_out): ...new function.
5066 * mode-switching.c (pass_mode_switching): Convert from a global struct
5067 to a subclass of rtl_opt_pass along with...
5068 (pass_data_mode_switching): ...new pass_data instance and...
5069 (make_pass_mode_switching): ...new function.
5070 * modulo-sched.c (pass_sms): Convert from a global struct to a
5071 subclass of rtl_opt_pass along with...
5072 (pass_data_sms): ...new pass_data instance and...
5073 (make_pass_sms): ...new function.
5074 * omp-low.c (pass_expand_omp): Convert from a global struct to a
5075 subclass of gimple_opt_pass along with...
5076 (pass_data_expand_omp): ...new pass_data instance and...
5077 (make_pass_expand_omp): ...new function.
5078 (pass_lower_omp): Convert from a global struct to a subclass of
5079 gimple_opt_pass along with...
5080 (pass_data_lower_omp): ...new pass_data instance and...
5081 (make_pass_lower_omp): ...new function.
5082 (pass_diagnose_omp_blocks): Convert from a global struct to a subclass
5083 of gimple_opt_pass along with...
5084 (pass_data_diagnose_omp_blocks): ...new pass_data instance and...
5085 (make_pass_diagnose_omp_blocks): ...new function.
5086 * passes.c (pass_early_local_passes): Convert from a global struct to
5087 a subclass of simple_ipa_opt_pass along with...
5088 (pass_data_early_local_passes): ...new pass_data instance and...
5089 (make_pass_early_local_passes): ...new function.
5090 (pass_all_early_optimizations): Convert from a global struct to a
5091 subclass of gimple_opt_pass along with...
5092 (pass_data_all_early_optimizations): ...new pass_data instance and...
5093 (make_pass_all_early_optimizations): ...new function.
5094 (pass_all_optimizations): Convert from a global struct to a subclass
5095 of gimple_opt_pass along with...
5096 (pass_data_all_optimizations): ...new pass_data instance and...
5097 (make_pass_all_optimizations): ...new function.
5098 (pass_all_optimizations_g): Convert from a global struct to a subclass
5099 of gimple_opt_pass along with...
5100 (pass_data_all_optimizations_g): ...new pass_data instance and...
5101 (make_pass_all_optimizations_g): ...new function.
5102 (pass_rest_of_compilation): Convert from a global struct to a subclass
5103 of rtl_opt_pass along with...
5104 (pass_data_rest_of_compilation): ...new pass_data instance and...
5105 (make_pass_rest_of_compilation): ...new function.
5106 (pass_postreload): Convert from a global struct to a subclass of
5107 rtl_opt_pass along with...
5108 (pass_data_postreload): ...new pass_data instance and...
5109 (make_pass_postreload): ...new function.
5110 * postreload-gcse.c (pass_gcse2): Convert from a global struct to a
5111 subclass of rtl_opt_pass along with...
5112 (pass_data_gcse2): ...new pass_data instance and...
5113 (make_pass_gcse2): ...new function.
5114 * postreload.c (pass_postreload_cse): Convert from a global struct to
5115 a subclass of rtl_opt_pass along with...
5116 (pass_data_postreload_cse): ...new pass_data instance and...
5117 (make_pass_postreload_cse): ...new function.
5118 * predict.c (pass_profile): Convert from a global struct to a subclass
5119 of gimple_opt_pass along with...
5120 (pass_data_profile): ...new pass_data instance and...
5121 (make_pass_profile): ...new function.
5122 (pass_strip_predict_hints): Convert from a global struct to a subclass
5123 of gimple_opt_pass along with...
5124 (pass_data_strip_predict_hints): ...new pass_data instance and...
5125 (make_pass_strip_predict_hints): ...new function.
5126 * recog.c (pass_peephole2): Convert from a global struct to a subclass
5127 of rtl_opt_pass along with...
5128 (pass_data_peephole2): ...new pass_data instance and...
5129 (make_pass_peephole2): ...new function.
5130 (pass_split_all_insns): Convert from a global struct to a subclass of
5131 rtl_opt_pass along with...
5132 (pass_data_split_all_insns): ...new pass_data instance and...
5133 (make_pass_split_all_insns): ...new function.
5134 (pass_split_after_reload): Convert from a global struct to a subclass
5135 of rtl_opt_pass along with...
5136 (pass_data_split_after_reload): ...new pass_data instance and...
5137 (make_pass_split_after_reload): ...new function.
5138 (pass_split_before_regstack): Convert from a global struct to a
5139 subclass of rtl_opt_pass along with...
5140 (pass_data_split_before_regstack): ...new pass_data instance and...
5141 (make_pass_split_before_regstack): ...new function.
5142 (pass_split_before_sched2): Convert from a global struct to a subclass
5143 of rtl_opt_pass along with...
5144 (pass_data_split_before_sched2): ...new pass_data instance and...
5145 (make_pass_split_before_sched2): ...new function.
5146 (pass_split_for_shorten_branches): Convert from a global struct to a
5147 subclass of rtl_opt_pass along with...
5148 (pass_data_split_for_shorten_branches): ...new pass_data instance
5149 and...
5150 (make_pass_split_for_shorten_branches): ...new function.
5151 * ree.c (pass_ree): Convert from a global struct to a subclass of
5152 rtl_opt_pass along with...
5153 (pass_data_ree): ...new pass_data instance and...
5154 (make_pass_ree): ...new function.
5155 * reg-stack.c (pass_stack_regs): Convert from a global struct to a
5156 subclass of rtl_opt_pass along with...
5157 (pass_data_stack_regs): ...new pass_data instance and...
5158 (make_pass_stack_regs): ...new function.
5159 (pass_stack_regs_run): Convert from a global struct to a subclass of
5160 rtl_opt_pass along with...
5161 (pass_data_stack_regs_run): ...new pass_data instance and...
5162 (make_pass_stack_regs_run): ...new function.
5163 * regcprop.c (pass_cprop_hardreg): Convert from a global struct to a
5164 subclass of rtl_opt_pass along with...
5165 (pass_data_cprop_hardreg): ...new pass_data instance and...
5166 (make_pass_cprop_hardreg): ...new function.
5167 * reginfo.c (pass_reginfo_init): Convert from a global struct to a
5168 subclass of rtl_opt_pass along with...
5169 (pass_data_reginfo_init): ...new pass_data instance and...
5170 (make_pass_reginfo_init): ...new function.
5171 * regmove.c (pass_regmove): Convert from a global struct to a subclass
5172 of rtl_opt_pass along with...
5173 (pass_data_regmove): ...new pass_data instance and...
5174 (make_pass_regmove): ...new function.
5175 * regrename.c (pass_regrename): Convert from a global struct to a
5176 subclass of rtl_opt_pass along with...
5177 (pass_data_regrename): ...new pass_data instance and...
5178 (make_pass_regrename): ...new function.
5179 * reorg.c (pass_delay_slots): Convert from a global struct to a
5180 subclass of rtl_opt_pass along with...
5181 (pass_data_delay_slots): ...new pass_data instance and...
5182 (make_pass_delay_slots): ...new function.
5183 (pass_machine_reorg): Convert from a global struct to a subclass of
5184 rtl_opt_pass along with...
5185 (pass_data_machine_reorg): ...new pass_data instance and...
5186 (make_pass_machine_reorg): ...new function.
5187 * sched-rgn.c (pass_sched): Convert from a global struct to a subclass
5188 of rtl_opt_pass along with...
5189 (pass_data_sched): ...new pass_data instance and...
5190 (make_pass_sched): ...new function.
5191 (pass_sched2): Convert from a global struct to a subclass of
5192 rtl_opt_pass along with...
5193 (pass_data_sched2): ...new pass_data instance and...
5194 (make_pass_sched2): ...new function.
5195 * stack-ptr-mod.c (pass_stack_ptr_mod): Convert from a global struct
5196 to a subclass of rtl_opt_pass along with...
5197 (pass_data_stack_ptr_mod): ...new pass_data instance and...
5198 (make_pass_stack_ptr_mod): ...new function.
5199 * store-motion.c (pass_rtl_store_motion): Convert from a global struct
5200 to a subclass of rtl_opt_pass along with...
5201 (pass_data_rtl_store_motion): ...new pass_data instance and...
5202 (make_pass_rtl_store_motion): ...new function.
5203 * tracer.c (pass_tracer): Convert from a global struct to a subclass
5204 of gimple_opt_pass along with...
5205 (pass_data_tracer): ...new pass_data instance and...
5206 (make_pass_tracer): ...new function.
5207 * trans-mem.c (pass_diagnose_tm_blocks): Convert from a global struct
5208 to a subclass of gimple_opt_pass along with...
5209 (pass_data_diagnose_tm_blocks): ...new pass_data instance and...
5210 (make_pass_diagnose_tm_blocks): ...new function.
5211 (pass_lower_tm): Convert from a global struct to a subclass of
5212 gimple_opt_pass along with...
5213 (pass_data_lower_tm): ...new pass_data instance and...
5214 (make_pass_lower_tm): ...new function.
5215 (pass_tm_init): Convert from a global struct to a subclass of
5216 gimple_opt_pass along with...
5217 (pass_data_tm_init): ...new pass_data instance and...
5218 (make_pass_tm_init): ...new function.
5219 (pass_tm_mark): Convert from a global struct to a subclass of
5220 gimple_opt_pass along with...
5221 (pass_data_tm_mark): ...new pass_data instance and...
5222 (make_pass_tm_mark): ...new function.
5223 (pass_tm_edges): Convert from a global struct to a subclass of
5224 gimple_opt_pass along with...
5225 (pass_data_tm_edges): ...new pass_data instance and...
5226 (make_pass_tm_edges): ...new function.
5227 (pass_tm_memopt): Convert from a global struct to a subclass of
5228 gimple_opt_pass along with...
5229 (pass_data_tm_memopt): ...new pass_data instance and...
5230 (make_pass_tm_memopt): ...new function.
5231 (pass_ipa_tm): Convert from a global struct to a subclass of
5232 simple_ipa_opt_pass along with...
5233 (pass_data_ipa_tm): ...new pass_data instance and...
5234 (make_pass_ipa_tm): ...new function.
5235 * tree-call-cdce.c (pass_call_cdce): Convert from a global struct to a
5236 subclass of gimple_opt_pass along with...
5237 (pass_data_call_cdce): ...new pass_data instance and...
5238 (make_pass_call_cdce): ...new function.
5239 * tree-cfg.c (pass_build_cfg): Convert from a global struct to a
5240 subclass of gimple_opt_pass along with...
5241 (pass_data_build_cfg): ...new pass_data instance and...
5242 (make_pass_build_cfg): ...new function.
5243 (pass_split_crit_edges): Convert from a global struct to a subclass of
5244 gimple_opt_pass along with...
5245 (pass_data_split_crit_edges): ...new pass_data instance and...
5246 (make_pass_split_crit_edges): ...new function.
5247 (pass_warn_function_return): Convert from a global struct to a
5248 subclass of gimple_opt_pass along with...
5249 (pass_data_warn_function_return): ...new pass_data instance and...
5250 (make_pass_warn_function_return): ...new function.
5251 (pass_warn_function_noreturn): Convert from a global struct to a
5252 subclass of gimple_opt_pass along with...
5253 (pass_data_warn_function_noreturn): ...new pass_data instance and...
5254 (make_pass_warn_function_noreturn): ...new function.
5255 (pass_warn_unused_result): Convert from a global struct to a subclass
5256 of gimple_opt_pass along with...
5257 (pass_data_warn_unused_result): ...new pass_data instance and...
5258 (make_pass_warn_unused_result): ...new function.
5259 * tree-cfgcleanup.c (pass_merge_phi): Convert from a global struct to
5260 a subclass of gimple_opt_pass along with...
5261 (pass_data_merge_phi): ...new pass_data instance and...
5262 (make_pass_merge_phi): ...new function.
5263 * tree-complex.c (pass_lower_complex): Convert from a global struct to
5264 a subclass of gimple_opt_pass along with...
5265 (pass_data_lower_complex): ...new pass_data instance and...
5266 (make_pass_lower_complex): ...new function.
5267 (pass_lower_complex_O0): Convert from a global struct to a subclass of
5268 gimple_opt_pass along with...
5269 (pass_data_lower_complex_O0): ...new pass_data instance and...
5270 (make_pass_lower_complex_O0): ...new function.
5271 * tree-eh.c (pass_lower_eh): Convert from a global struct to a
5272 subclass of gimple_opt_pass along with...
5273 (pass_data_lower_eh): ...new pass_data instance and...
5274 (make_pass_lower_eh): ...new function.
5275 (pass_refactor_eh): Convert from a global struct to a subclass of
5276 gimple_opt_pass along with...
5277 (pass_data_refactor_eh): ...new pass_data instance and...
5278 (make_pass_refactor_eh): ...new function.
5279 (pass_lower_resx): Convert from a global struct to a subclass of
5280 gimple_opt_pass along with...
5281 (pass_data_lower_resx): ...new pass_data instance and...
5282 (make_pass_lower_resx): ...new function.
5283 (pass_lower_eh_dispatch): Convert from a global struct to a subclass
5284 of gimple_opt_pass along with...
5285 (pass_data_lower_eh_dispatch): ...new pass_data instance and...
5286 (make_pass_lower_eh_dispatch): ...new function.
5287 (pass_cleanup_eh): Convert from a global struct to a subclass of
5288 gimple_opt_pass along with...
5289 (pass_data_cleanup_eh): ...new pass_data instance and...
5290 (make_pass_cleanup_eh): ...new function.
5291 * tree-emutls.c (pass_ipa_lower_emutls): Convert from a global struct
5292 to a subclass of simple_ipa_opt_pass along with...
5293 (pass_data_ipa_lower_emutls): ...new pass_data instance and...
5294 (make_pass_ipa_lower_emutls): ...new function.
5295 * tree-if-conv.c (pass_if_conversion): Convert from a global struct to
5296 a subclass of gimple_opt_pass along with...
5297 (pass_data_if_conversion): ...new pass_data instance and...
5298 (make_pass_if_conversion): ...new function.
5299 * tree-into-ssa.c (pass_build_ssa): Convert from a global struct to a
5300 subclass of gimple_opt_pass along with...
5301 (pass_data_build_ssa): ...new pass_data instance and...
5302 (make_pass_build_ssa): ...new function.
5303 * tree-loop-distribution.c (pass_loop_distribution): Convert from a
5304 global struct to a subclass of gimple_opt_pass along with...
5305 (pass_data_loop_distribution): ...new pass_data instance and...
5306 (make_pass_loop_distribution): ...new function.
5307 * tree-mudflap.c (pass_mudflap_1): Convert from a global struct to a
5308 subclass of gimple_opt_pass along with...
5309 (pass_data_mudflap_1): ...new pass_data instance and...
5310 (make_pass_mudflap_1): ...new function.
5311 (pass_mudflap_2): Convert from a global struct to a subclass of
5312 gimple_opt_pass along with...
5313 (pass_data_mudflap_2): ...new pass_data instance and...
5314 (make_pass_mudflap_2): ...new function.
5315 * tree-nomudflap.c (pass_mudflap_1): Convert from a global struct to a
5316 subclass of gimple_opt_pass along with...
5317 (pass_data_mudflap_1): ...new pass_data instance and...
5318 (make_pass_mudflap_1): ...new function.
5319 (pass_mudflap_2): Convert from a global struct to a subclass of
5320 gimple_opt_pass along with...
5321 (pass_data_mudflap_2): ...new pass_data instance and...
5322 (make_pass_mudflap_2): ...new function.
5323 * tree-nrv.c (pass_nrv): Convert from a global struct to a subclass of
5324 gimple_opt_pass along with...
5325 (pass_data_nrv): ...new pass_data instance and...
5326 (make_pass_nrv): ...new function.
5327 (pass_return_slot): Convert from a global struct to a subclass of
5328 gimple_opt_pass along with...
5329 (pass_data_return_slot): ...new pass_data instance and...
5330 (make_pass_return_slot): ...new function.
5331 * tree-object-size.c (pass_object_sizes): Convert from a global struct
5332 to a subclass of gimple_opt_pass along with...
5333 (pass_data_object_sizes): ...new pass_data instance and...
5334 (make_pass_object_sizes): ...new function.
5335 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Convert from a
5336 global struct to a subclass of gimple_opt_pass along with...
5337 (pass_data_cleanup_cfg_post_optimizing): ...new pass_data instance
5338 and...
5339 (make_pass_cleanup_cfg_post_optimizing): ...new function.
5340 (pass_fixup_cfg): Convert from a global struct to a subclass of
5341 gimple_opt_pass along with...
5342 (pass_data_fixup_cfg): ...new pass_data instance and...
5343 (make_pass_fixup_cfg): ...new function.
5344 * tree-pass.h (pass_mudflap_1): Replace declaration with that of...
5345 (make_pass_mudflap_1): ...new function.
5346 (pass_mudflap_2): Replace declaration with that of...
5347 (make_pass_mudflap_2): ...new function.
5348 (pass_asan): Replace declaration with that of...
5349 (make_pass_asan): ...new function.
5350 (pass_asan_O0): Replace declaration with that of...
5351 (make_pass_asan_O0): ...new function.
5352 (pass_tsan): Replace declaration with that of...
5353 (make_pass_tsan): ...new function.
5354 (pass_tsan_O0): Replace declaration with that of...
5355 (make_pass_tsan_O0): ...new function.
5356 (pass_lower_cf): Replace declaration with that of...
5357 (make_pass_lower_cf): ...new function.
5358 (pass_refactor_eh): Replace declaration with that of...
5359 (make_pass_refactor_eh): ...new function.
5360 (pass_lower_eh): Replace declaration with that of...
5361 (make_pass_lower_eh): ...new function.
5362 (pass_lower_eh_dispatch): Replace declaration with that of...
5363 (make_pass_lower_eh_dispatch): ...new function.
5364 (pass_lower_resx): Replace declaration with that of...
5365 (make_pass_lower_resx): ...new function.
5366 (pass_build_cfg): Replace declaration with that of...
5367 (make_pass_build_cfg): ...new function.
5368 (pass_early_tree_profile): Replace declaration with that of...
5369 (make_pass_early_tree_profile): ...new function.
5370 (pass_cleanup_eh): Replace declaration with that of...
5371 (make_pass_cleanup_eh): ...new function.
5372 (pass_sra): Replace declaration with that of...
5373 (make_pass_sra): ...new function.
5374 (pass_sra_early): Replace declaration with that of...
5375 (make_pass_sra_early): ...new function.
5376 (pass_early_ipa_sra): Replace declaration with that of...
5377 (make_pass_early_ipa_sra): ...new function.
5378 (pass_tail_recursion): Replace declaration with that of...
5379 (make_pass_tail_recursion): ...new function.
5380 (pass_tail_calls): Replace declaration with that of...
5381 (make_pass_tail_calls): ...new function.
5382 (pass_tree_loop): Replace declaration with that of...
5383 (make_pass_tree_loop): ...new function.
5384 (pass_tree_loop_init): Replace declaration with that of...
5385 (make_pass_tree_loop_init): ...new function.
5386 (pass_lim): Replace declaration with that of...
5387 (make_pass_lim): ...new function.
5388 (pass_tree_unswitch): Replace declaration with that of...
5389 (make_pass_tree_unswitch): ...new function.
5390 (pass_predcom): Replace declaration with that of...
5391 (make_pass_predcom): ...new function.
5392 (pass_iv_canon): Replace declaration with that of...
5393 (make_pass_iv_canon): ...new function.
5394 (pass_scev_cprop): Replace declaration with that of...
5395 (make_pass_scev_cprop): ...new function.
5396 (pass_empty_loop): Replace declaration with that of...
5397 (make_pass_empty_loop): ...new function.
5398 (pass_record_bounds): Replace declaration with that of...
5399 (make_pass_record_bounds): ...new function.
5400 (pass_graphite): Replace declaration with that of...
5401 (make_pass_graphite): ...new function.
5402 (pass_graphite_transforms): Replace declaration with that of...
5403 (make_pass_graphite_transforms): ...new function.
5404 (pass_if_conversion): Replace declaration with that of...
5405 (make_pass_if_conversion): ...new function.
5406 (pass_loop_distribution): Replace declaration with that of...
5407 (make_pass_loop_distribution): ...new function.
5408 (pass_vectorize): Replace declaration with that of...
5409 (make_pass_vectorize): ...new function.
5410 (pass_slp_vectorize): Replace declaration with that of...
5411 (make_pass_slp_vectorize): ...new function.
5412 (pass_complete_unroll): Replace declaration with that of...
5413 (make_pass_complete_unroll): ...new function.
5414 (pass_complete_unrolli): Replace declaration with that of...
5415 (make_pass_complete_unrolli): ...new function.
5416 (pass_parallelize_loops): Replace declaration with that of...
5417 (make_pass_parallelize_loops): ...new function.
5418 (pass_loop_prefetch): Replace declaration with that of...
5419 (make_pass_loop_prefetch): ...new function.
5420 (pass_iv_optimize): Replace declaration with that of...
5421 (make_pass_iv_optimize): ...new function.
5422 (pass_tree_loop_done): Replace declaration with that of...
5423 (make_pass_tree_loop_done): ...new function.
5424 (pass_ch): Replace declaration with that of...
5425 (make_pass_ch): ...new function.
5426 (pass_ccp): Replace declaration with that of...
5427 (make_pass_ccp): ...new function.
5428 (pass_phi_only_cprop): Replace declaration with that of...
5429 (make_pass_phi_only_cprop): ...new function.
5430 (pass_build_ssa): Replace declaration with that of...
5431 (make_pass_build_ssa): ...new function.
5432 (pass_build_alias): Replace declaration with that of...
5433 (make_pass_build_alias): ...new function.
5434 (pass_build_ealias): Replace declaration with that of...
5435 (make_pass_build_ealias): ...new function.
5436 (pass_dominator): Replace declaration with that of...
5437 (make_pass_dominator): ...new function.
5438 (pass_dce): Replace declaration with that of...
5439 (make_pass_dce): ...new function.
5440 (pass_dce_loop): Replace declaration with that of...
5441 (make_pass_dce_loop): ...new function.
5442 (pass_cd_dce): Replace declaration with that of...
5443 (make_pass_cd_dce): ...new function.
5444 (pass_call_cdce): Replace declaration with that of...
5445 (make_pass_call_cdce): ...new function.
5446 (pass_merge_phi): Replace declaration with that of...
5447 (make_pass_merge_phi): ...new function.
5448 (pass_split_crit_edges): Replace declaration with that of...
5449 (make_pass_split_crit_edges): ...new function.
5450 (pass_pre): Replace declaration with that of...
5451 (make_pass_pre): ...new function.
5452 (pass_profile): Replace declaration with that of...
5453 (make_pass_profile): ...new function.
5454 (pass_strip_predict_hints): Replace declaration with that of...
5455 (make_pass_strip_predict_hints): ...new function.
5456 (pass_lower_complex_O0): Replace declaration with that of...
5457 (make_pass_lower_complex_O0): ...new function.
5458 (pass_lower_complex): Replace declaration with that of...
5459 (make_pass_lower_complex): ...new function.
5460 (pass_lower_vector): Replace declaration with that of...
5461 (make_pass_lower_vector): ...new function.
5462 (pass_lower_vector_ssa): Replace declaration with that of...
5463 (make_pass_lower_vector_ssa): ...new function.
5464 (pass_lower_omp): Replace declaration with that of...
5465 (make_pass_lower_omp): ...new function.
5466 (pass_diagnose_omp_blocks): Replace declaration with that of...
5467 (make_pass_diagnose_omp_blocks): ...new function.
5468 (pass_expand_omp): Replace declaration with that of...
5469 (make_pass_expand_omp): ...new function.
5470 (pass_expand_omp_ssa): Replace declaration with that of...
5471 (make_pass_expand_omp_ssa): ...new function.
5472 (pass_object_sizes): Replace declaration with that of...
5473 (make_pass_object_sizes): ...new function.
5474 (pass_strlen): Replace declaration with that of...
5475 (make_pass_strlen): ...new function.
5476 (pass_fold_builtins): Replace declaration with that of...
5477 (make_pass_fold_builtins): ...new function.
5478 (pass_stdarg): Replace declaration with that of...
5479 (make_pass_stdarg): ...new function.
5480 (pass_early_warn_uninitialized): Replace declaration with that of...
5481 (make_pass_early_warn_uninitialized): ...new function.
5482 (pass_late_warn_uninitialized): Replace declaration with that of...
5483 (make_pass_late_warn_uninitialized): ...new function.
5484 (pass_cse_reciprocals): Replace declaration with that of...
5485 (make_pass_cse_reciprocals): ...new function.
5486 (pass_cse_sincos): Replace declaration with that of...
5487 (make_pass_cse_sincos): ...new function.
5488 (pass_optimize_bswap): Replace declaration with that of...
5489 (make_pass_optimize_bswap): ...new function.
5490 (pass_optimize_widening_mul): Replace declaration with that of...
5491 (make_pass_optimize_widening_mul): ...new function.
5492 (pass_warn_function_return): Replace declaration with that of...
5493 (make_pass_warn_function_return): ...new function.
5494 (pass_warn_function_noreturn): Replace declaration with that of...
5495 (make_pass_warn_function_noreturn): ...new function.
5496 (pass_cselim): Replace declaration with that of...
5497 (make_pass_cselim): ...new function.
5498 (pass_phiopt): Replace declaration with that of...
5499 (make_pass_phiopt): ...new function.
5500 (pass_forwprop): Replace declaration with that of...
5501 (make_pass_forwprop): ...new function.
5502 (pass_phiprop): Replace declaration with that of...
5503 (make_pass_phiprop): ...new function.
5504 (pass_tree_ifcombine): Replace declaration with that of...
5505 (make_pass_tree_ifcombine): ...new function.
5506 (pass_dse): Replace declaration with that of...
5507 (make_pass_dse): ...new function.
5508 (pass_nrv): Replace declaration with that of...
5509 (make_pass_nrv): ...new function.
5510 (pass_rename_ssa_copies): Replace declaration with that of...
5511 (make_pass_rename_ssa_copies): ...new function.
5512 (pass_sink_code): Replace declaration with that of...
5513 (make_pass_sink_code): ...new function.
5514 (pass_fre): Replace declaration with that of...
5515 (make_pass_fre): ...new function.
5516 (pass_check_data_deps): Replace declaration with that of...
5517 (make_pass_check_data_deps): ...new function.
5518 (pass_copy_prop): Replace declaration with that of...
5519 (make_pass_copy_prop): ...new function.
5520 (pass_vrp): Replace declaration with that of...
5521 (make_pass_vrp): ...new function.
5522 (pass_uncprop): Replace declaration with that of...
5523 (make_pass_uncprop): ...new function.
5524 (pass_return_slot): Replace declaration with that of...
5525 (make_pass_return_slot): ...new function.
5526 (pass_reassoc): Replace declaration with that of...
5527 (make_pass_reassoc): ...new function.
5528 (pass_rebuild_cgraph_edges): Replace declaration with that of...
5529 (make_pass_rebuild_cgraph_edges): ...new function.
5530 (pass_remove_cgraph_callee_edges): Replace declaration with that of...
5531 (make_pass_remove_cgraph_callee_edges): ...new function.
5532 (pass_build_cgraph_edges): Replace declaration with that of...
5533 (make_pass_build_cgraph_edges): ...new function.
5534 (pass_local_pure_const): Replace declaration with that of...
5535 (make_pass_local_pure_const): ...new function.
5536 (pass_tracer): Replace declaration with that of...
5537 (make_pass_tracer): ...new function.
5538 (pass_warn_unused_result): Replace declaration with that of...
5539 (make_pass_warn_unused_result): ...new function.
5540 (pass_diagnose_tm_blocks): Replace declaration with that of...
5541 (make_pass_diagnose_tm_blocks): ...new function.
5542 (pass_lower_tm): Replace declaration with that of...
5543 (make_pass_lower_tm): ...new function.
5544 (pass_tm_init): Replace declaration with that of...
5545 (make_pass_tm_init): ...new function.
5546 (pass_tm_mark): Replace declaration with that of...
5547 (make_pass_tm_mark): ...new function.
5548 (pass_tm_memopt): Replace declaration with that of...
5549 (make_pass_tm_memopt): ...new function.
5550 (pass_tm_edges): Replace declaration with that of...
5551 (make_pass_tm_edges): ...new function.
5552 (pass_split_functions): Replace declaration with that of...
5553 (make_pass_split_functions): ...new function.
5554 (pass_feedback_split_functions): Replace declaration with that of...
5555 (make_pass_feedback_split_functions): ...new function.
5556 (pass_strength_reduction): Replace declaration with that of...
5557 (make_pass_strength_reduction): ...new function.
5558 (pass_ipa_lower_emutls): Replace declaration with that of...
5559 (make_pass_ipa_lower_emutls): ...new function.
5560 (pass_ipa_function_and_variable_visibility): Replace declaration with
5561 that of...
5562 (make_pass_ipa_function_and_variable_visibility): ...new function.
5563 (pass_ipa_tree_profile): Replace declaration with that of...
5564 (make_pass_ipa_tree_profile): ...new function.
5565 (pass_early_local_passes): Replace declaration with that of...
5566 (make_pass_early_local_passes): ...new function.
5567 (pass_ipa_whole_program_visibility): Replace declaration with that
5568 of...
5569 (make_pass_ipa_whole_program_visibility): ...new function.
5570 (pass_ipa_lto_gimple_out): Replace declaration with that of...
5571 (make_pass_ipa_lto_gimple_out): ...new function.
5572 (pass_ipa_increase_alignment): Replace declaration with that of...
5573 (make_pass_ipa_increase_alignment): ...new function.
5574 (pass_ipa_inline): Replace declaration with that of...
5575 (make_pass_ipa_inline): ...new function.
5576 (pass_ipa_free_lang_data): Replace declaration with that of...
5577 (make_pass_ipa_free_lang_data): ...new function.
5578 (pass_ipa_free_inline_summary): Replace declaration with that of...
5579 (make_pass_ipa_free_inline_summary): ...new function.
5580 (pass_ipa_cp): Replace declaration with that of...
5581 (make_pass_ipa_cp): ...new function.
5582 (pass_ipa_reference): Replace declaration with that of...
5583 (make_pass_ipa_reference): ...new function.
5584 (pass_ipa_pure_const): Replace declaration with that of...
5585 (make_pass_ipa_pure_const): ...new function.
5586 (pass_ipa_pta): Replace declaration with that of...
5587 (make_pass_ipa_pta): ...new function.
5588 (pass_ipa_lto_finish_out): Replace declaration with that of...
5589 (make_pass_ipa_lto_finish_out): ...new function.
5590 (pass_ipa_tm): Replace declaration with that of...
5591 (make_pass_ipa_tm): ...new function.
5592 (pass_ipa_profile): Replace declaration with that of...
5593 (make_pass_ipa_profile): ...new function.
5594 (pass_ipa_cdtor_merge): Replace declaration with that of...
5595 (make_pass_ipa_cdtor_merge): ...new function.
5596 (pass_cleanup_cfg_post_optimizing): Replace declaration with that
5597 of...
5598 (make_pass_cleanup_cfg_post_optimizing): ...new function.
5599 (pass_init_datastructures): Replace declaration with that of...
5600 (make_pass_init_datastructures): ...new function.
5601 (pass_fixup_cfg): Replace declaration with that of...
5602 (make_pass_fixup_cfg): ...new function.
5603 (pass_expand): Replace declaration with that of...
5604 (make_pass_expand): ...new function.
5605 (pass_instantiate_virtual_regs): Replace declaration with that of...
5606 (make_pass_instantiate_virtual_regs): ...new function.
5607 (pass_rtl_fwprop): Replace declaration with that of...
5608 (make_pass_rtl_fwprop): ...new function.
5609 (pass_rtl_fwprop_addr): Replace declaration with that of...
5610 (make_pass_rtl_fwprop_addr): ...new function.
5611 (pass_jump): Replace declaration with that of...
5612 (make_pass_jump): ...new function.
5613 (pass_jump2): Replace declaration with that of...
5614 (make_pass_jump2): ...new function.
5615 (pass_lower_subreg): Replace declaration with that of...
5616 (make_pass_lower_subreg): ...new function.
5617 (pass_cse): Replace declaration with that of...
5618 (make_pass_cse): ...new function.
5619 (pass_fast_rtl_dce): Replace declaration with that of...
5620 (make_pass_fast_rtl_dce): ...new function.
5621 (pass_ud_rtl_dce): Replace declaration with that of...
5622 (make_pass_ud_rtl_dce): ...new function.
5623 (pass_rtl_dce): Replace declaration with that of...
5624 (make_pass_rtl_dce): ...new function.
5625 (pass_rtl_dse1): Replace declaration with that of...
5626 (make_pass_rtl_dse1): ...new function.
5627 (pass_rtl_dse2): Replace declaration with that of...
5628 (make_pass_rtl_dse2): ...new function.
5629 (pass_rtl_dse3): Replace declaration with that of...
5630 (make_pass_rtl_dse3): ...new function.
5631 (pass_rtl_cprop): Replace declaration with that of...
5632 (make_pass_rtl_cprop): ...new function.
5633 (pass_rtl_pre): Replace declaration with that of...
5634 (make_pass_rtl_pre): ...new function.
5635 (pass_rtl_hoist): Replace declaration with that of...
5636 (make_pass_rtl_hoist): ...new function.
5637 (pass_rtl_store_motion): Replace declaration with that of...
5638 (make_pass_rtl_store_motion): ...new function.
5639 (pass_cse_after_global_opts): Replace declaration with that of...
5640 (make_pass_cse_after_global_opts): ...new function.
5641 (pass_rtl_ifcvt): Replace declaration with that of...
5642 (make_pass_rtl_ifcvt): ...new function.
5643 (pass_into_cfg_layout_mode): Replace declaration with that of...
5644 (make_pass_into_cfg_layout_mode): ...new function.
5645 (pass_outof_cfg_layout_mode): Replace declaration with that of...
5646 (make_pass_outof_cfg_layout_mode): ...new function.
5647 (pass_loop2): Replace declaration with that of...
5648 (make_pass_loop2): ...new function.
5649 (pass_rtl_loop_init): Replace declaration with that of...
5650 (make_pass_rtl_loop_init): ...new function.
5651 (pass_rtl_move_loop_invariants): Replace declaration with that of...
5652 (make_pass_rtl_move_loop_invariants): ...new function.
5653 (pass_rtl_unswitch): Replace declaration with that of...
5654 (make_pass_rtl_unswitch): ...new function.
5655 (pass_rtl_unroll_and_peel_loops): Replace declaration with that of...
5656 (make_pass_rtl_unroll_and_peel_loops): ...new function.
5657 (pass_rtl_doloop): Replace declaration with that of...
5658 (make_pass_rtl_doloop): ...new function.
5659 (pass_rtl_loop_done): Replace declaration with that of...
5660 (make_pass_rtl_loop_done): ...new function.
5661 (pass_web): Replace declaration with that of...
5662 (make_pass_web): ...new function.
5663 (pass_cse2): Replace declaration with that of...
5664 (make_pass_cse2): ...new function.
5665 (pass_df_initialize_opt): Replace declaration with that of...
5666 (make_pass_df_initialize_opt): ...new function.
5667 (pass_df_initialize_no_opt): Replace declaration with that of...
5668 (make_pass_df_initialize_no_opt): ...new function.
5669 (pass_reginfo_init): Replace declaration with that of...
5670 (make_pass_reginfo_init): ...new function.
5671 (pass_inc_dec): Replace declaration with that of...
5672 (make_pass_inc_dec): ...new function.
5673 (pass_stack_ptr_mod): Replace declaration with that of...
5674 (make_pass_stack_ptr_mod): ...new function.
5675 (pass_initialize_regs): Replace declaration with that of...
5676 (make_pass_initialize_regs): ...new function.
5677 (pass_combine): Replace declaration with that of...
5678 (make_pass_combine): ...new function.
5679 (pass_if_after_combine): Replace declaration with that of...
5680 (make_pass_if_after_combine): ...new function.
5681 (pass_ree): Replace declaration with that of...
5682 (make_pass_ree): ...new function.
5683 (pass_partition_blocks): Replace declaration with that of...
5684 (make_pass_partition_blocks): ...new function.
5685 (pass_match_asm_constraints): Replace declaration with that of...
5686 (make_pass_match_asm_constraints): ...new function.
5687 (pass_regmove): Replace declaration with that of...
5688 (make_pass_regmove): ...new function.
5689 (pass_split_all_insns): Replace declaration with that of...
5690 (make_pass_split_all_insns): ...new function.
5691 (pass_fast_rtl_byte_dce): Replace declaration with that of...
5692 (make_pass_fast_rtl_byte_dce): ...new function.
5693 (pass_lower_subreg2): Replace declaration with that of...
5694 (make_pass_lower_subreg2): ...new function.
5695 (pass_mode_switching): Replace declaration with that of...
5696 (make_pass_mode_switching): ...new function.
5697 (pass_sms): Replace declaration with that of...
5698 (make_pass_sms): ...new function.
5699 (pass_sched): Replace declaration with that of...
5700 (make_pass_sched): ...new function.
5701 (pass_ira): Replace declaration with that of...
5702 (make_pass_ira): ...new function.
5703 (pass_reload): Replace declaration with that of...
5704 (make_pass_reload): ...new function.
5705 (pass_clean_state): Replace declaration with that of...
5706 (make_pass_clean_state): ...new function.
5707 (pass_branch_prob): Replace declaration with that of...
5708 (make_pass_branch_prob): ...new function.
5709 (pass_value_profile_transformations): Replace declaration with that
5710 of...
5711 (make_pass_value_profile_transformations): ...new function.
5712 (pass_postreload_cse): Replace declaration with that of...
5713 (make_pass_postreload_cse): ...new function.
5714 (pass_gcse2): Replace declaration with that of...
5715 (make_pass_gcse2): ...new function.
5716 (pass_split_after_reload): Replace declaration with that of...
5717 (make_pass_split_after_reload): ...new function.
5718 (pass_branch_target_load_optimize1): Replace declaration with that
5719 of...
5720 (make_pass_branch_target_load_optimize1): ...new function.
5721 (pass_thread_prologue_and_epilogue): Replace declaration with that
5722 of...
5723 (make_pass_thread_prologue_and_epilogue): ...new function.
5724 (pass_stack_adjustments): Replace declaration with that of...
5725 (make_pass_stack_adjustments): ...new function.
5726 (pass_peephole2): Replace declaration with that of...
5727 (make_pass_peephole2): ...new function.
5728 (pass_if_after_reload): Replace declaration with that of...
5729 (make_pass_if_after_reload): ...new function.
5730 (pass_regrename): Replace declaration with that of...
5731 (make_pass_regrename): ...new function.
5732 (pass_cprop_hardreg): Replace declaration with that of...
5733 (make_pass_cprop_hardreg): ...new function.
5734 (pass_reorder_blocks): Replace declaration with that of...
5735 (make_pass_reorder_blocks): ...new function.
5736 (pass_branch_target_load_optimize2): Replace declaration with that
5737 of...
5738 (make_pass_branch_target_load_optimize2): ...new function.
5739 (pass_leaf_regs): Replace declaration with that of...
5740 (make_pass_leaf_regs): ...new function.
5741 (pass_split_before_sched2): Replace declaration with that of...
5742 (make_pass_split_before_sched2): ...new function.
5743 (pass_compare_elim_after_reload): Replace declaration with that of...
5744 (make_pass_compare_elim_after_reload): ...new function.
5745 (pass_sched2): Replace declaration with that of...
5746 (make_pass_sched2): ...new function.
5747 (pass_stack_regs): Replace declaration with that of...
5748 (make_pass_stack_regs): ...new function.
5749 (pass_stack_regs_run): Replace declaration with that of...
5750 (make_pass_stack_regs_run): ...new function.
5751 (pass_df_finish): Replace declaration with that of...
5752 (make_pass_df_finish): ...new function.
5753 (pass_compute_alignments): Replace declaration with that of...
5754 (make_pass_compute_alignments): ...new function.
5755 (pass_duplicate_computed_gotos): Replace declaration with that of...
5756 (make_pass_duplicate_computed_gotos): ...new function.
5757 (pass_variable_tracking): Replace declaration with that of...
5758 (make_pass_variable_tracking): ...new function.
5759 (pass_free_cfg): Replace declaration with that of...
5760 (make_pass_free_cfg): ...new function.
5761 (pass_machine_reorg): Replace declaration with that of...
5762 (make_pass_machine_reorg): ...new function.
5763 (pass_cleanup_barriers): Replace declaration with that of...
5764 (make_pass_cleanup_barriers): ...new function.
5765 (pass_delay_slots): Replace declaration with that of...
5766 (make_pass_delay_slots): ...new function.
5767 (pass_split_for_shorten_branches): Replace declaration with that of...
5768 (make_pass_split_for_shorten_branches): ...new function.
5769 (pass_split_before_regstack): Replace declaration with that of...
5770 (make_pass_split_before_regstack): ...new function.
5771 (pass_convert_to_eh_region_ranges): Replace declaration with that
5772 of...
5773 (make_pass_convert_to_eh_region_ranges): ...new function.
5774 (pass_shorten_branches): Replace declaration with that of...
5775 (make_pass_shorten_branches): ...new function.
5776 (pass_set_nothrow_function_flags): Replace declaration with that of...
5777 (make_pass_set_nothrow_function_flags): ...new function.
5778 (pass_dwarf2_frame): Replace declaration with that of...
5779 (make_pass_dwarf2_frame): ...new function.
5780 (pass_final): Replace declaration with that of...
5781 (make_pass_final): ...new function.
5782 (pass_rtl_seqabstr): Replace declaration with that of...
5783 (make_pass_rtl_seqabstr): ...new function.
5784 (pass_release_ssa_names): Replace declaration with that of...
5785 (make_pass_release_ssa_names): ...new function.
5786 (pass_early_inline): Replace declaration with that of...
5787 (make_pass_early_inline): ...new function.
5788 (pass_inline_parameters): Replace declaration with that of...
5789 (make_pass_inline_parameters): ...new function.
5790 (pass_update_address_taken): Replace declaration with that of...
5791 (make_pass_update_address_taken): ...new function.
5792 (pass_convert_switch): Replace declaration with that of...
5793 (make_pass_convert_switch): ...new function.
5794 * tree-profile.c (pass_ipa_tree_profile): Convert from a global struct
5795 to a subclass of simple_ipa_opt_pass along with...
5796 (pass_data_ipa_tree_profile): ...new pass_data instance and...
5797 (make_pass_ipa_tree_profile): ...new function.
5798 * tree-sra.c (pass_sra_early): Convert from a global struct to a
5799 subclass of gimple_opt_pass along with...
5800 (pass_data_sra_early): ...new pass_data instance and...
5801 (make_pass_sra_early): ...new function.
5802 (pass_sra): Convert from a global struct to a subclass of
5803 gimple_opt_pass along with...
5804 (pass_data_sra): ...new pass_data instance and...
5805 (make_pass_sra): ...new function.
5806 (pass_early_ipa_sra): Convert from a global struct to a subclass of
5807 gimple_opt_pass along with...
5808 (pass_data_early_ipa_sra): ...new pass_data instance and...
5809 (make_pass_early_ipa_sra): ...new function.
5810 * tree-ssa-ccp.c (pass_ccp): Convert from a global struct to a
5811 subclass of gimple_opt_pass along with...
5812 (pass_data_ccp): ...new pass_data instance and...
5813 (make_pass_ccp): ...new function.
5814 (pass_fold_builtins): Convert from a global struct to a subclass of
5815 gimple_opt_pass along with...
5816 (pass_data_fold_builtins): ...new pass_data instance and...
5817 (make_pass_fold_builtins): ...new function.
5818 * tree-ssa-copy.c (pass_copy_prop): Convert from a global struct to a
5819 subclass of gimple_opt_pass along with...
5820 (pass_data_copy_prop): ...new pass_data instance and...
5821 (make_pass_copy_prop): ...new function.
5822 * tree-ssa-copyrename.c (pass_rename_ssa_copies): Convert from a
5823 global struct to a subclass of gimple_opt_pass along with...
5824 (pass_data_rename_ssa_copies): ...new pass_data instance and...
5825 (make_pass_rename_ssa_copies): ...new function.
5826 * tree-ssa-dce.c (pass_dce): Convert from a global struct to a
5827 subclass of gimple_opt_pass along with...
5828 (pass_data_dce): ...new pass_data instance and...
5829 (make_pass_dce): ...new function.
5830 (pass_dce_loop): Convert from a global struct to a subclass of
5831 gimple_opt_pass along with...
5832 (pass_data_dce_loop): ...new pass_data instance and...
5833 (make_pass_dce_loop): ...new function.
5834 (pass_cd_dce): Convert from a global struct to a subclass of
5835 gimple_opt_pass along with...
5836 (pass_data_cd_dce): ...new pass_data instance and...
5837 (make_pass_cd_dce): ...new function.
5838 * tree-ssa-dom.c (pass_dominator): Convert from a global struct to a
5839 subclass of gimple_opt_pass along with...
5840 (pass_data_dominator): ...new pass_data instance and...
5841 (make_pass_dominator): ...new function.
5842 (pass_phi_only_cprop): Convert from a global struct to a subclass of
5843 gimple_opt_pass along with...
5844 (pass_data_phi_only_cprop): ...new pass_data instance and...
5845 (make_pass_phi_only_cprop): ...new function.
5846 * tree-ssa-dse.c (pass_dse): Convert from a global struct to a
5847 subclass of gimple_opt_pass along with...
5848 (pass_data_dse): ...new pass_data instance and...
5849 (make_pass_dse): ...new function.
5850 * tree-ssa-forwprop.c (pass_forwprop): Convert from a global struct to
5851 a subclass of gimple_opt_pass along with...
5852 (pass_data_forwprop): ...new pass_data instance and...
5853 (make_pass_forwprop): ...new function.
5854 * tree-ssa-ifcombine.c (pass_tree_ifcombine): Convert from a global
5855 struct to a subclass of gimple_opt_pass along with...
5856 (pass_data_tree_ifcombine): ...new pass_data instance and...
5857 (make_pass_tree_ifcombine): ...new function.
5858 * tree-ssa-loop-ch.c (pass_ch): Convert from a global struct to a
5859 subclass of gimple_opt_pass along with...
5860 (pass_data_ch): ...new pass_data instance and...
5861 (make_pass_ch): ...new function.
5862 * tree-ssa-loop.c (pass_tree_loop): Convert from a global struct to a
5863 subclass of gimple_opt_pass along with...
5864 (pass_data_tree_loop): ...new pass_data instance and...
5865 (make_pass_tree_loop): ...new function.
5866 (pass_tree_loop_init): Convert from a global struct to a subclass of
5867 gimple_opt_pass along with...
5868 (pass_data_tree_loop_init): ...new pass_data instance and...
5869 (make_pass_tree_loop_init): ...new function.
5870 (pass_lim): Convert from a global struct to a subclass of
5871 gimple_opt_pass along with...
5872 (pass_data_lim): ...new pass_data instance and...
5873 (make_pass_lim): ...new function.
5874 (pass_tree_unswitch): Convert from a global struct to a subclass of
5875 gimple_opt_pass along with...
5876 (pass_data_tree_unswitch): ...new pass_data instance and...
5877 (make_pass_tree_unswitch): ...new function.
5878 (pass_predcom): Convert from a global struct to a subclass of
5879 gimple_opt_pass along with...
5880 (pass_data_predcom): ...new pass_data instance and...
5881 (make_pass_predcom): ...new function.
5882 (pass_vectorize): Convert from a global struct to a subclass of
5883 gimple_opt_pass along with...
5884 (pass_data_vectorize): ...new pass_data instance and...
5885 (make_pass_vectorize): ...new function.
5886 (pass_graphite): Convert from a global struct to a subclass of
5887 gimple_opt_pass along with...
5888 (pass_data_graphite): ...new pass_data instance and...
5889 (make_pass_graphite): ...new function.
5890 (pass_graphite_transforms): Convert from a global struct to a subclass
5891 of gimple_opt_pass along with...
5892 (pass_data_graphite_transforms): ...new pass_data instance and...
5893 (make_pass_graphite_transforms): ...new function.
5894 (pass_check_data_deps): Convert from a global struct to a subclass of
5895 gimple_opt_pass along with...
5896 (pass_data_check_data_deps): ...new pass_data instance and...
5897 (make_pass_check_data_deps): ...new function.
5898 (pass_iv_canon): Convert from a global struct to a subclass of
5899 gimple_opt_pass along with...
5900 (pass_data_iv_canon): ...new pass_data instance and...
5901 (make_pass_iv_canon): ...new function.
5902 (pass_scev_cprop): Convert from a global struct to a subclass of
5903 gimple_opt_pass along with...
5904 (pass_data_scev_cprop): ...new pass_data instance and...
5905 (make_pass_scev_cprop): ...new function.
5906 (pass_record_bounds): Convert from a global struct to a subclass of
5907 gimple_opt_pass along with...
5908 (pass_data_record_bounds): ...new pass_data instance and...
5909 (make_pass_record_bounds): ...new function.
5910 (pass_complete_unroll): Convert from a global struct to a subclass of
5911 gimple_opt_pass along with...
5912 (pass_data_complete_unroll): ...new pass_data instance and...
5913 (make_pass_complete_unroll): ...new function.
5914 (pass_complete_unrolli): Convert from a global struct to a subclass of
5915 gimple_opt_pass along with...
5916 (pass_data_complete_unrolli): ...new pass_data instance and...
5917 (make_pass_complete_unrolli): ...new function.
5918 (pass_parallelize_loops): Convert from a global struct to a subclass
5919 of gimple_opt_pass along with...
5920 (pass_data_parallelize_loops): ...new pass_data instance and...
5921 (make_pass_parallelize_loops): ...new function.
5922 (pass_loop_prefetch): Convert from a global struct to a subclass of
5923 gimple_opt_pass along with...
5924 (pass_data_loop_prefetch): ...new pass_data instance and...
5925 (make_pass_loop_prefetch): ...new function.
5926 (pass_iv_optimize): Convert from a global struct to a subclass of
5927 gimple_opt_pass along with...
5928 (pass_data_iv_optimize): ...new pass_data instance and...
5929 (make_pass_iv_optimize): ...new function.
5930 (pass_tree_loop_done): Convert from a global struct to a subclass of
5931 gimple_opt_pass along with...
5932 (pass_data_tree_loop_done): ...new pass_data instance and...
5933 (make_pass_tree_loop_done): ...new function.
5934 * tree-ssa-math-opts.c (pass_cse_reciprocals): Convert from a global
5935 struct to a subclass of gimple_opt_pass along with...
5936 (pass_data_cse_reciprocals): ...new pass_data instance and...
5937 (make_pass_cse_reciprocals): ...new function.
5938 (pass_cse_sincos): Convert from a global struct to a subclass of
5939 gimple_opt_pass along with...
5940 (pass_data_cse_sincos): ...new pass_data instance and...
5941 (make_pass_cse_sincos): ...new function.
5942 (pass_optimize_bswap): Convert from a global struct to a subclass of
5943 gimple_opt_pass along with...
5944 (pass_data_optimize_bswap): ...new pass_data instance and...
5945 (make_pass_optimize_bswap): ...new function.
5946 (pass_optimize_widening_mul): Convert from a global struct to a
5947 subclass of gimple_opt_pass along with...
5948 (pass_data_optimize_widening_mul): ...new pass_data instance and...
5949 (make_pass_optimize_widening_mul): ...new function.
5950 * tree-ssa-phiopt.c (pass_phiopt): Convert from a global struct to a
5951 subclass of gimple_opt_pass along with...
5952 (pass_data_phiopt): ...new pass_data instance and...
5953 (make_pass_phiopt): ...new function.
5954 (pass_cselim): Convert from a global struct to a subclass of
5955 gimple_opt_pass along with...
5956 (pass_data_cselim): ...new pass_data instance and...
5957 (make_pass_cselim): ...new function.
5958 * tree-ssa-phiprop.c (pass_phiprop): Convert from a global struct to a
5959 subclass of gimple_opt_pass along with...
5960 (pass_data_phiprop): ...new pass_data instance and...
5961 (make_pass_phiprop): ...new function.
5962 * tree-ssa-pre.c (pass_pre): Convert from a global struct to a
5963 subclass of gimple_opt_pass along with...
5964 (pass_data_pre): ...new pass_data instance and...
5965 (make_pass_pre): ...new function.
5966 (pass_fre): Convert from a global struct to a subclass of
5967 gimple_opt_pass along with...
5968 (pass_data_fre): ...new pass_data instance and...
5969 (make_pass_fre): ...new function.
5970 * tree-ssa-reassoc.c (pass_reassoc): Convert from a global struct to a
5971 subclass of gimple_opt_pass along with...
5972 (pass_data_reassoc): ...new pass_data instance and...
5973 (make_pass_reassoc): ...new function.
5974 * tree-ssa-sink.c (pass_sink_code): Convert from a global struct to a
5975 subclass of gimple_opt_pass along with...
5976 (pass_data_sink_code): ...new pass_data instance and...
5977 (make_pass_sink_code): ...new function.
5978 * tree-ssa-strlen.c (pass_strlen): Convert from a global struct to a
5979 subclass of gimple_opt_pass along with...
5980 (pass_data_strlen): ...new pass_data instance and...
5981 (make_pass_strlen): ...new function.
5982 * tree-ssa-structalias.c (pass_build_alias): Convert from a global
5983 struct to a subclass of gimple_opt_pass along with...
5984 (pass_data_build_alias): ...new pass_data instance and...
5985 (make_pass_build_alias): ...new function.
5986 (pass_build_ealias): Convert from a global struct to a subclass of
5987 gimple_opt_pass along with...
5988 (pass_data_build_ealias): ...new pass_data instance and...
5989 (make_pass_build_ealias): ...new function.
5990 (pass_ipa_pta): Convert from a global struct to a subclass of
5991 simple_ipa_opt_pass along with...
5992 (pass_data_ipa_pta): ...new pass_data instance and...
5993 (make_pass_ipa_pta): ...new function.
5994 * tree-ssa-uncprop.c (pass_uncprop): Convert from a global struct to a
5995 subclass of gimple_opt_pass along with...
5996 (pass_data_uncprop): ...new pass_data instance and...
5997 (make_pass_uncprop): ...new function.
5998 * tree-ssa-uninit.c (pass_late_warn_uninitialized): Convert from a
5999 global struct to a subclass of gimple_opt_pass along with...
6000 (pass_data_late_warn_uninitialized): ...new pass_data instance and...
6001 (make_pass_late_warn_uninitialized): ...new function.
6002 * tree-ssa.c (pass_init_datastructures): Convert from a global struct
6003 to a subclass of gimple_opt_pass along with...
6004 (pass_data_init_datastructures): ...new pass_data instance and...
6005 (make_pass_init_datastructures): ...new function.
6006 (pass_early_warn_uninitialized): Convert from a global struct to a
6007 subclass of gimple_opt_pass along with...
6008 (pass_data_early_warn_uninitialized): ...new pass_data instance and...
6009 (make_pass_early_warn_uninitialized): ...new function.
6010 (pass_update_address_taken): Convert from a global struct to a
6011 subclass of gimple_opt_pass along with...
6012 (pass_data_update_address_taken): ...new pass_data instance and...
6013 (make_pass_update_address_taken): ...new function.
6014 * tree-ssanames.c (pass_release_ssa_names): Convert from a global
6015 struct to a subclass of gimple_opt_pass along with...
6016 (pass_data_release_ssa_names): ...new pass_data instance and...
6017 (make_pass_release_ssa_names): ...new function.
6018 * tree-stdarg.c (pass_stdarg): Convert from a global struct to a
6019 subclass of gimple_opt_pass along with...
6020 (pass_data_stdarg): ...new pass_data instance and...
6021 (make_pass_stdarg): ...new function.
6022 * tree-switch-conversion.c (pass_convert_switch): Convert from a
6023 global struct to a subclass of gimple_opt_pass along with...
6024 (pass_data_convert_switch): ...new pass_data instance and...
6025 (make_pass_convert_switch): ...new function.
6026 * tree-tailcall.c (pass_tail_recursion): Convert from a global struct
6027 to a subclass of gimple_opt_pass along with...
6028 (pass_data_tail_recursion): ...new pass_data instance and...
6029 (make_pass_tail_recursion): ...new function.
6030 (pass_tail_calls): Convert from a global struct to a subclass of
6031 gimple_opt_pass along with...
6032 (pass_data_tail_calls): ...new pass_data instance and...
6033 (make_pass_tail_calls): ...new function.
6034 * tree-vect-generic.c (pass_lower_vector): Convert from a global
6035 struct to a subclass of gimple_opt_pass along with...
6036 (pass_data_lower_vector): ...new pass_data instance and...
6037 (make_pass_lower_vector): ...new function.
6038 (pass_lower_vector_ssa): Convert from a global struct to a subclass of
6039 gimple_opt_pass along with...
6040 (pass_data_lower_vector_ssa): ...new pass_data instance and...
6041 (make_pass_lower_vector_ssa): ...new function.
6042 * tree-vectorizer.c (pass_slp_vectorize): Convert from a global struct
6043 to a subclass of gimple_opt_pass along with...
6044 (pass_data_slp_vectorize): ...new pass_data instance and...
6045 (make_pass_slp_vectorize): ...new function.
6046 (pass_ipa_increase_alignment): Convert from a global struct to a
6047 subclass of simple_ipa_opt_pass along with...
6048 (pass_data_ipa_increase_alignment): ...new pass_data instance and...
6049 (make_pass_ipa_increase_alignment): ...new function.
6050 * tree-vrp.c (pass_vrp): Convert from a global struct to a subclass of
6051 gimple_opt_pass along with...
6052 (pass_data_vrp): ...new pass_data instance and...
6053 (make_pass_vrp): ...new function.
6054 * tree.c (pass_ipa_free_lang_data): Convert from a global struct to a
6055 subclass of simple_ipa_opt_pass along with...
6056 (pass_data_ipa_free_lang_data): ...new pass_data instance and...
6057 (make_pass_ipa_free_lang_data): ...new function.
6058 * tsan.c (pass_tsan): Convert from a global struct to a subclass of
6059 gimple_opt_pass along with...
6060 (pass_data_tsan): ...new pass_data instance and...
6061 (make_pass_tsan): ...new function.
6062 (pass_tsan_O0): Convert from a global struct to a subclass of
6063 gimple_opt_pass along with...
6064 (pass_data_tsan_O0): ...new pass_data instance and...
6065 (make_pass_tsan_O0): ...new function.
6066 * var-tracking.c (pass_variable_tracking): Convert from a global
6067 struct to a subclass of rtl_opt_pass along with...
6068 (pass_data_variable_tracking): ...new pass_data instance and...
6069 (make_pass_variable_tracking): ...new function.
6070 * web.c (pass_web): Convert from a global struct to a subclass of
6071 rtl_opt_pass along with...
6072 (pass_data_web): ...new pass_data instance and...
6073 (make_pass_web): ...new function.
6074 * config/epiphany/epiphany.h (pass_mode_switch_use): Replace
6075 declaration with that of...
6076 (make_pass_mode_switch_use): ...new function.
6077 (pass_resolve_sw_modes): Replace declaration with that of...
6078 (make_pass_resolve_sw_modes): ...new function.
6079 * config/epiphany/mode-switch-use.c (pass_mode_switch_use): Convert
6080 from a global struct to a subclass of rtl_opt_pass along with...
6081 (pass_data_mode_switch_use): ...new pass_data instance and...
6082 (make_pass_mode_switch_use): ...new function.
6083 * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes): Convert
6084 from a global struct to a subclass of rtl_opt_pass along with...
6085 (pass_data_resolve_sw_modes): ...new pass_data instance and...
6086 (make_pass_resolve_sw_modes): ...new function.
6087 * config/i386/i386.c (pass_insert_vzeroupper): Convert from a global
6088 struct to a subclass of rtl_opt_pass along with...
6089 (pass_data_insert_vzeroupper): ...new pass_data instance and...
6090 (make_pass_insert_vzeroupper): ...new function.
6091 * config/sparc/sparc.c (pass_work_around_errata): Convert from a
6092 global struct to a subclass of rtl_opt_pass along with...
6093 (pass_data_work_around_errata): ...new pass_data instance and...
6094 (make_pass_work_around_errata): ...new function.
6095 * config/mips/mips.c (pass_mips_machine_reorg2): Convert from a global
6096 struct to a subclass of rtl_opt_pass along with...
6097 (pass_data_mips_machine_reorg2): ...new pass_data instance and...
6098 (make_pass_mips_machine_reorg2): ...new function.
6099
6a389ed5
DM
61002013-08-05 David Malcolm <dmalcolm@redhat.com>
6101
6102 * passes.c (pass_manager::operator new): New.
6103
f7695dbf
DM
61042013-08-05 David Malcolm <dmalcolm@redhat.com>
6105
6106 Handwritten part of conversion of passes to C++ classes.
6107
6108 * Makefile.in (PASS_MANAGER_H): Add dep on pass-instances.def.
6109 (toplev.o): Add dep on PASS_MANAGER_H.
6110 * cgraphunit.c (cgraph_process_new_functions): Rework invocation
6111 of early local pases to reflect this moving from a global to a
6112 member of gcc::pass_manager.
6113 (cgraph_add_new_function): Likewise.
6114 * lto-cgraph.c (lto_output_node): Update for conversion of
6115 struct ipa_opt_pass_d to a C++ subclass of opt_pass.
6116 * passes.c (opt_pass::clone): New.
6117 (opt_pass::gate): New.
6118 (opt_pass::execute): New.
6119 (opt_pass::opt_pass): New.
6120 (pass_manager::execute_early_local_passes): New.
6121 (pass_manager::execute_pass_mode_switching): new.
6122 (finish_optimization_passes): Convert to...
6123 (pass_manager::finish_optimization_passes): ...this.
6124 (finish_optimization_passes): Update for conversion of passes to
6125 C++ classes.
6126 (register_dump_files_1): Use has_gate since we cannot portably
6127 check a vtable entry against NULL.
6128 (dump_one_pass): Likewise.
6129 (ipa_write_summaries_2): Likewise.
6130 (ipa_write_optimization_summaries_1): Likewise.
6131 (ipa_read_summaries_1): Likewise.
6132 (ipa_read_optimization_summaries_1): Likewise.
6133 (execute_ipa_stmt_fixups): Likewise.
6134 (pass_manager::pass_manager): Rewrite pass-creation, invoking
6135 pass-creation functions rather than wiring up globals, and
6136 storing the results in fields of pass_manager generated using
6137 pass-instances.def.
6138 (pass_manager::dump_profile_report): Update for conversion of
6139 passes to C++ classes.
6140 (pass_manager::execute_ipa_summary_passes): Likewise.
6141 (execute_one_ipa_transform_pass): Likewise.
6142 (execute_one_pass): Use has_gate and has_execute since we cannot
6143 portably check a vtable entry against NULL.
6144 * pass_manager.h (pass_manager::finish_optimization_passes): New.
6145 (pass_manager): Use pass-instances.def to add fields for the
6146 various pass instances.
6147 * toplev.c (finalize): Update for move of
6148 finish_optimization_passes to a method of gcc::pass_manager.
6149 * toplev.h (finish_optimization_passes): Move to method of class
6150 pass_manager.
6151 * tree-pass.h (struct pass_data): New.
03b0ee0a 6152 (opt_pass): Convert to C++ class, make it a subclass of pass_data.
f7695dbf
DM
6153 (opt_pass::gate): Convert to virtual function.
6154 (opt_pass::~opt_pass): New.
6155 (opt_pass::clone): New.
6156 (opt_pass::execute): Convert to virtual function.
6157 (opt_pass::opt_pass): New.
6158 (opt_pass::ctxt_): new.
6159 (gimple_opt_pass): Convert to subclass of opt_pass.
6160 (gimple_opt_pass::gimple_opt_pass): New.
6161 (rtl_opt_pass): Convert to subclass of opt_pass.
6162 (rtl_opt_pass::rtl_opt_pass): New.
6163 (ipa_opt_pass_d): Convert to subclass of opt_pass.
6164 (ipa_opt_pass_d::ipa_opt_pass_d): New.
6165 (simple_ipa_opt_pass): Convert to subclass of opt_pass.
6166 (simple_ipa_opt_pass::simple_ipa_opt_pass): New.
6167 * config/i386/i386.c (rest_of_handle_insert_vzeroupper): Rework
6168 invocation of pass_mode_switching to reflect this moving from a
6169 global to a member of gcc::pass_manager.
6170 (ix86_option_override): Rework how pass_insert_vzeroupper is
6171 added to the pass_manager to reflect autogenerated changes.
03b0ee0a 6172 * config/i386/t-i386 (i386.o) Add deps on CONTEXT_H and PASS_MANAGER_H.
f7695dbf 6173
d0b2f831
RE
61742013-08-05 Richard Earnshaw <rearnsha@arm.com>
6175
6176 PR rtl-optimization/57708
6177 * recog.c (peep2_find_free_register): Validate all regs in a
6178 multi-reg mode.
6179
51a5c0c2
JH
61802013-08-05 Jan Hubicka <jh@suse.cz>
6181
6182 PR lto/57602
03b0ee0a
UB
6183 * cgraph.c (verify_cgraph_node): Accept local flags from other
6184 partitions.
51a5c0c2
JH
6185 * ipa.c (symtab_remove_unreachable_nodes): Do not clear local flag.
6186 (function_and_variable_visibility): Likewise.
6187 * trans-mem.c (ipa_tm_create_version): TM versions are not local.
6188
65f0a120
GDR
61892013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
6190
6191 * graph.c (init_graph_slim_pretty_print): Remove.
6192 (print_graph_cfg): Do not call it. Use local pretty printer.
6193 (start_graph_dump): Likewise.
6194
b3f80694
GDR
61952013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
6196
6197 * gimple-pretty-print.c (buffer): Remove.
6198 (initialized): Likewise.
6199 (maybe_init_pretty_print): Likewise.
6200 (print_gimple_stmt): Do not call it. Use non-static local
6201 pretty_printer variable.
6202 (print_gimple_expr): Likewise.
6203 (print_gimple_seq): Likewise.
6204 (gimple_dump_bb): Likewise.
6205
11a877b3
GDR
62062013-08-05 Gabriel Dos Reis <gdr@integrable-solutions.net>
6207
6208 * asan.c (asan_pp): Remove.
6209 (asan_pp_initialized): Likewise.
6210 (asan_pp_initialize): Likewise.
6211 (asan_pp_string): Take a pretty_printer parameter. Adjust callers.
6212 (asan_emit_stack_protection): Tidy. Use local pretty printer.
6213 (asan_add_global): Likewise.
6214
b066401f
GDR
62152013-08-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
6216
6217 * pretty-print.h (pp_base): Remove. Adjust dependent macros.
6218 * diagnostic.h (diagnostic_flush_buffer): Adjust.
6219 * pretty-print.c (pp_formatted_text_data): Likewise.
6220 (pp_indent): Rename from pp_base_indent.
6221 (pp_format): Rename from pp_base_format.
6222 (pp_output_formatted_text): Rename from pp_base_output_formatted_text.
6223 (pp_format_verbatim): Rename from pp_base_format_verbatim.
6224 (pp_flush): Rename from pp_base_flush.
6225 (pp_set_line_maximum_length): Rename from
6226 pp_base_set_line_maximum_length.
6227 (pp_clear_output_area): Rename from pp_base_clear_output_area.
6228 (pp_set_prefix): Rename from pp_base_set_prefix.
6229 (pp_destroy_prefix): Rename from pp_base_destroy_prefix.
6230 (pp_emit_prefix): Rename from pp_base_emit_prefix.
6231 (pp_append_text): Rename from pp_base_append_text.
6232 (pp_formatted_text): Rename from pp_base_formatted_text.
6233 (pp_last_position_in_text): Rename from pp_base_last_position_in_text.
6234 (pp_remaining_character_count_for_line): Rename from
6235 pp_base_remaining_character_count_for_line.
6236 (pp_newline): Rename from pp_base_newline.
6237 (pp_character): Rename from pp_base_character.
6238 (pp_string): Rename from pp_base_string.
6239 (pp_maybe_space): Rename from pp_base_maybe_space.
6240 * asan.c (asan_pp_string): Adjust.
6241 (asan_emit_stack_protection): Likewise.
6242 (asan_add_global): Likewise.
6243 * sched-vis.c (str_pattern_slim): Adjust pretty printer function call.
6244 * tree-mudflap.c (mf_varname_tree): Likewise.
6245 * tree-pretty-print.c (pp_tree_identifier): Rename from
6246 pp_base_tree_identifier.
6247 * tree-pretty-print.h (pp_tree_identifier): Remove macro definition.
6248 Declare as function.
6249
137a1a27
GDR
62502013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
6251
6252 * pretty-print.h (pp_bar_bar): New.
6253 (pp_ampersand_ampersand): Likewise.
6254 (pp_less_equal): Likewise.
6255 (pp_greater_equal): Likewise.
6256 * gimple-pretty-print.c (dump_ternary_rhs): Use specialized pretty
6257 printer functions instead of pp_string or operators and punctuators.
6258 (dump_gimple_call): Likewise.
6259 (dump_gimple_omp_for): Likewise.
6260 (dump_gimple_transaction): Likewise.
6261 (dump_gimple_phi): Likewise.
6262 (pp_gimple_stmt_1): Likewise.
6263 * sched-vis.c (print_insn): Likewise.
6264 * tree-mudflap.c (mf_varname_tree): Likewise.
6265 * tree-pretty-print.c (dump_block_node): Likewise.
6266 (dump_generic_node): Likewise.
6267
815effe1
JH
62682013-08-02 Jan Hubicka <jh@suse.cz>
6269
6270 * lto-cgraph.c (compute_ltrans_boundary): Add abstract origins into
6271 boundaries.
6272 * lto-streamer-out.c (tree_is_indexable): Results decls and
6273 parm decls are not indexable.
6274 (DFS_write_tree_body): Do not follow args and results.
6275 (hash_tree): Likewise.
6276 (output_functions): Rearrange so struct function is needed
6277 only when real body is output; be able to also ouptut abstract
6278 functions; output DECL_ARGUMENTS and DECL_RESULT.
6279 (lto_output): When not in WPA, ale store abstract functions.
6280 (write_symbol): Do not care about RESULT_DECL.
6281 (output_symbol_p): Handle correctly sbtract decls.
6282 * lto-streamer-in.c (input_function): Rearrange so struct
6283 function can be NULL at entry; allow streaming of
6284 functions w/o body; store DECL_ARGUMENTS and DECL_RESULT.
6285 * ipa.c (symtab_remove_unreachable_nodes): Silence confused
6286 sanity check during LTO.
6287 * tree-streamer-out.c (write_ts_decl_non_common_tree_pointers): Skip
6288 RESULT_DECl and DECL_ARGUMENTS.
6289 * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers):
6290 Likewise.
6291
07838b13
GDR
62922013-08-03 Gabriel Dos Reis <gdr@integrable-solutions.net>
6293
6294 * pretty-print.h (pp_underscore): New.
6295 (pp_comma): Tidy.
6296 * gimple-pretty-print.c (dump_unary_rhs): Use specialized pretty
6297 printer functions instead of pp_character.
6298 (dump_binary_rhs): Likewise.
6299 (dump_ternary_rhs): Likewise.
6300 (dump_gimple_call_args): Likewise.
6301 (pp_points_to_solution): Likewise.
6302 (dump_gimple_call): Likewise.
6303 (dump_gimple_switch): Likewise.
6304 (dump_gimple_cond): Likewise.
6305 (dump_gimple_bind): Likewise.
6306 (dump_gimple_try): Likewise.
6307 (dump_gimple_omp_for): Likewise.
6308 (dump_gimple_omp_continue): Likewise.
6309 (dump_gimple_omp_single): Likewise.
6310 (dump_gimple_omp_sections): Likewise.
6311 (dump_gimple_omp_block): Likewise.
6312 (dump_gimple_omp_critical): Likewise.
6313 (dump_gimple_transaction): Likewise.
6314 (dump_gimple_asm): Likewise.
6315 (dump_gimple_phi): Likewise.
6316 (dump_gimple_omp_parallel): Likewise.
6317 (dump_gimple_omp_task): Likewise.
6318 (dump_gimple_omp_atomic_load): Likewise.
6319 (dump_gimple_omp_atomic_store): Likewise.
6320 (dump_gimple_mem_ops): Likewise.
6321 (pp_gimple_stmt_1): Likewise.
6322 (pp_cfg_jump): Likewise.
6323 (dump_implicit_edges): Likewise.
6324 (gimple_dump_bb_for_graph): Likewise.
6325 * graph.c (draw_cfg_node): Likewise.
6326 * langhooks.c (lhd_print_error_function): Likewise.
6327 * sched-vis.c (print_exp): Likewise.
6328 (print_value): Likewise.
6329 (print_pattern): Likewise.
6330 (print_insn): Likewise.
6331 (rtl_dump_bb_for_graph): Likewise.
6332 * tree-pretty-print.c (dump_function_declaration): Likewise.
6333 (dump_array_domain): Likewise.
6334 (dump_omp_clause): Likewise.
6335 (dump_location): Likewise.
6336 (dump_generic_node): Likewise.
6337 (print_struct_decl): Likewise.
6338 * diagnostic.c (diagnostic_show_locus): Use pp_space.
6339
bb0d2039
BS
63402013-08-03 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
6341
6342 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Update
6343 candidate table when replacing a candidate statement.
6344 (replace_rhs_if_not_dup): Likewise.
6345 (replace_one_candidate): Likewise.
6346
bc0ec027 63472013-08-02 Jan Hubicka <jh@suse.cz>
cdaa808a 6348 Martin Liska <marxin.liska@gmail.com>
bc0ec027
JH
6349
6350 * cgraphunit.c (add_new_function): Fix logic when adding from
6351 late IPA pass.
6352 (assemble_thunk): Rename to ...
03b0ee0a
UB
6353 (expand_thunk); .. this one; export; get it working with
6354 general functions; make produced gimple valid.
bc0ec027
JH
6355 * cgraph.h (expand_thunk): Declare.
6356
0e8853ee
JH
63572013-08-02 Jan Hubicka <jh@suse.cz>
6358
03b0ee0a
UB
6359 * ipa-cp.c (gather_context_independent_values): Use
6360 ipa_get_param_move_cost.
6361 (get_replacement_map): Remove PARAM; move parameter folding
6362 into tree-inline.c
0e8853ee
JH
6363 (create_specialized_node): Update.
6364 * ipa-prop.c (ipa_populate_param_decls): Do not look for origins;
6365 assert that we have gimple body; update move_cost.
6366 (count_formal_params): Assert that we have gimple body.
6367 (ipa_dump_param): New function.
6368 (ipa_alloc_node_params): Break out from ...
6369 (ipa_initialize_node_params): ... here.
6370 (ipa_get_vector_of_formal_parms): ICE when used in WPA.
6371 (ipa_write_node_info): Stream move costs.
6372 (ipa_read_node_info): Read move costs.
6373 (ipa_update_after_lto_read): Do not recompute node params.
6374 * ipa-prop.h (ipa_param_descriptor): Add move_cost.
6375 (ipa_get_param): Check we are not in WPA.
6376 (ipa_get_param_move_cost): New.
6377 * tree-inline.c (tree_function_versioning): Fold replacement as needed.
6378 * ipa-inline-analysis.c (inline_node_duplication_hook): Expect only
6379 parm numbers to be present.
6380
ecee672b
VM
63812013-08-02 Vladimir Makarov <vmakarov@redhat.com>
6382
6383 PR rtl-optimization/58048
6384 * lra-constraints.c (process_alt_operands): Don't check asm
6385 operand on register.
6386
13ec0527
EB
63872013-08-02 Eric Botcazou <ebotcazou@adacore.com>
6388
6389 * config/sparc/sparc.c (sparc_emit_membar_for_model) <SMM_TSO>: Add
6390 the implied StoreLoad barrier for atomic operations if before.
6391
af15184a
JH
63922013-08-02 Jan Hubicka <jh@suse.cz>
6393 Martin Liska <marxin.liska@gmail.com>
6394
03b0ee0a
UB
6395 * cgraph.c (cgraph_function_body_availability): Do not check
6396 cgraph flags.
af15184a
JH
6397 * cgraph.h (symtab_for_node_and_aliases, symtab_nonoverwritable_alias,
6398 symtab_node_availability): Declare.
6399 * ipa.c (can_replace_by_local_alias): New.
6400 (function_and_variable_visibility): Use it.
03b0ee0a
UB
6401 * symtab.c (symtab_for_node_and_aliases,
6402 symtab_nonoverwritable_alias_1, symtab_nonoverwritable_alias): New.
af15184a 6403
01e54ef8
VM
64042013-08-02 Vladimir Makarov <vmakarov@redhat.com>
6405
6406 PR rtl-optimization/57963
03b0ee0a 6407 * lra-constraints.c (reverse_equiv_p, contains_reloaded_insn_p): New.
01e54ef8
VM
6408 (lra_constraints): Use them.
6409
e2fd7ca7
SN
64102013-08-02 Sofiane Naci <sofiane.naci@arm.com>
6411
03b0ee0a
UB
6412 * config/arm/types.md (define_attr "type"): Add "load_acq"
6413 and "store_rel".
e2fd7ca7
SN
6414 * config/arm/cortex-a53.md (cortex_a53_load1): Update for attribute
6415 changes.
6416 (cortex_a53_store1): Likewise.
6417
0dcc26c3
JH
64182013-08-01 Jan Hubicka <jh@suse.cz>
6419
03b0ee0a
UB
6420 * ipa.c (symtab_remove_unreachable_nodes): Nodes in other
6421 partitions are not needed.
0dcc26c3 6422
0bd72901
UB
64232013-08-01 Uros Bizjak <ubizjak@gmail.com>
6424
6425 * config/i386/i386.h (MAYBE_NON_Q_CLASS_P): New.
6426 * config/i386/i386.c (ix86_secondary_reload): Use INTEGER_CLASS_P and
6427 MAYBE_NON_Q_CLASS_P where appropriate.
6428
12123452
JH
64292013-08-01 Jan Hubicka <jh@suse.cz>
6430
6431 * cgraph.h (release_function_body): Declare.
6432 * tree.c (free_lang_data_in_decl): Free, parameters and return values
6433 of unused delcarations.
6434
ce852f9c
KT
64352013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6436
03b0ee0a
UB
6437 * config/arm/arm.md (minmax_arithsi_non_canon): Emit canonical
6438 RTL form when subtracting a constant.
ce852f9c 6439
c743b246
KT
64402013-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6441
6442 * config/arm/arm.md (peepholes for eq (reg1) (reg2/imm)):
6443 Generate canonical plus rtx with negated immediate instead of minus
6444 where appropriate.
6445 * config/arm/arm.c (thumb2_reorg): Handle ADCS <Rd>, <Rn> case.
6446
c0c123ef
JH
64472013-08-01 Jan Hubicka <jh@suse.cz>
6448
6449 * cgraph.c (cgraph_release_function_body): Use used_as_abstract_origin.
6450 (cgraph_release_function_body): Likewise.
6451 (cgraph_can_remove_if_no_direct_calls_p): Likewise.
6452 * cgraph.h (cgrpah_node): Rename abstract_and_needed
6453 to used_as_abstract_origin.
6454 * tree-inline-transfrom.c (can_remove_node_now_p_1): Do not remove
6455 symbols used as abstract origins.
6456 * cgraphunit.c (analyze_functions): Update.
0bd72901
UB
6457 * ipa.c (symtab_remove_unreachable_nodes): Recompute
6458 used_as_abstract_origin.
c0c123ef 6459 * tree-inline.c (tree_function_versioning): Update
0bd72901
UB
6460 used_as_abstract_origin; be ready for DECL_RESULT and
6461 DECL_ARGUMENTS to be NULL.
c0c123ef 6462
0bd72901
UB
6463 * lto-symtab.c (lto_symtab_merge_symbols): Merge duplicated nodes
6464 for abstract functions.
6465 * cgraph.h (symtab_real_symbol_p): Abstract declarations are not
6466 real symbols.
c0c123ef 6467
1f029433
JH
64682013-08-01 Jan Hubicka <jh@suse.cz>
6469
6470 * profile.c (compute_value_histograms): Fix thinko.
6471
c451f4d6
SN
64722013-08-01 Sofiane Naci <sofiane.naci@arm.com>
6473
6474 * config.gcc (aarch64*-*-*): Add aarch-common.o to extra_objs. Add
6475 aarch-common-protos.h to extra_headers.
6476 (aarch64*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
6477 * config/aarch64/aarch64.md: Include "../arm/cortex-a53.md".
6478 * config/aarch64/t-aarch64 (aarch-common.o): Define.
6479
34b512f5
SN
64802013-08-01 Sofiane Naci <sofiane.naci@arm.com>
6481
6482 * config/aarch64/aarch64.md (define_attr "type"): Delete.
6483 Include "../arm/types.md". Define "type" attribute for all patterns.
6484 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update for
6485 attribute changes.
6486
d86e633a
MM
64872013-07-31 Michael Meissner <meissner@linux.vnet.ibm.com>
6488
6489 * config/rs6000/predicates.md (fusion_gpr_addis): New predicates
6490 to support power8 load fusion.
6491 (fusion_gpr_mem_load): Likewise.
6492
6493 * config/rs6000/rs6000-modes.def (PTImode): Update a comment.
6494
6495 * config/rs6000/rs6000-protos.h (fusion_gpr_load_p): New
6496 declarations for power8 load fusion.
6497 (emit_fusion_gpr_load): Likewise.
6498
6499 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
6500 tuning for power8, turn on fusion mode by default. Turn on sign
6501 extending fusion mode if normal fusion mode is on, and we are at
6502 -O2 or -O3.
6503 (fusion_gpr_load_p): New function, return true if we can fuse an
6504 addis instruction with a dependent load to a GPR.
6505 (emit_fusion_gpr_load): Emit the instructions for power8 load
6506 fusion to GPRs.
6507
0bd72901 6508 * config/rs6000/vsx.md (VSX_M2): New iterator for fusion peepholes.
d86e633a
MM
6509 (VSX load fusion peepholes): New peepholes to fuse together an
6510 addi instruction with a VSX load instruction.
6511
6512 * config/rs6000/rs6000.md (GPR load fusion peepholes): New
6513 peepholes to fuse an addis instruction with a load to a GPR base
6514 register. If we are supporting sign extending fusions, convert
6515 sign extending loads to zero extending loads and add an explicit
6516 sign extension.
6517
c3f35647
SN
65182013-07-31 Sofiane Naci <sofiane.naci@arm.com>
6519
6520 * config.gcc (arm*-*-*): Add aarch-common.o to extra_objs. Add
6521 aarch-common-protos.h to extra_headers.
6522 (arm*-*-*): Add arm/aarch-common-protos.h to tm_p_file.
6523 * config/arm/arm.c (arm_early_load_addr_dep): Move from here to ...
6524 (arm_early_store_addr_dep): Likewise.
0bd72901
UB
6525 (arm_no_early_alu_shift_dep): Likewise.
6526 (arm_no_early_alu_shift_value_dep): Likewise.
6527 (arm_no_early_mul_dep): Likewise.
6528 (arm_no_early_store_addr_dep): Likewise.
6529 (arm_mac_accumulator_is_mul_result): Likewise.
6530 (arm_mac_accumulator_is_result): Likewise.
c3f35647 6531 * config/arm/aarch-common.c: ... here. New file.
0bd72901
UB
6532 * config/arm/arm-protos.h (arm_early_load_addr_dep): Move from
6533 here to ...
c3f35647 6534 (arm_early_store_addr_dep): Likewise.
0bd72901
UB
6535 (arm_no_early_alu_shift_dep): Likewise.
6536 (arm_no_early_alu_shift_value_dep): Likewise.
6537 (arm_no_early_mul_dep): Likewise.
6538 (arm_no_early_store_addr_dep): Likewise.
6539 (arm_mac_accumulator_is_mul_result): Likewise.
6540 (arm_mac_accumulator_is_result): Likewise.
c3f35647
SN
6541 * config/arm/aarch-common-protos.h: ... here. New file.
6542 * config/arm/t-arm (aarch-common.o): Define.
6543
65442013-07-31 Sofiane Naci <sofiane.naci@arm.com>
6545
6546 * config/arm/arm.md: Include new file "types.md".
6547 (define_attr "type"): Move from here to ...
6548 (define_attr "mul32"): Likewise.
6549 (define_attr "mul64"): Likewise.
6550 * config/arm/types.md: ... here. New file.
6551
228c1313
SH
65522013-07-31 Sebastian Huber <sebastian.huber@embedded-brains.de>
6553
6554 * config.gcc (*-*-rtems*): Use __cxa_atexit by default.
6555 * config/rs6000/rtems.h (TARGET_LIBGCC_SDATA_SECTION): Define.
6556
d6e9046d 65572013-07-31 Jan-Benedict Glaw <jbglaw@lug-owl.de>
8ac499bb
JBG
6558
6559 * gen-pass-instances.awk: Fix offset of substr().
6560
a167b052
DM
65612013-07-31 David Malcolm <dmalcolm@redhat.com>
6562
6563 * Makefile.in (pass-instances.def): New.
6564 (passes.o): Replace dependency on passes.def with one on
6565 pass-instances.def
6566
6567 * gen-pass-instances.awk: New.
6568
6569 * passes.c (pass_manager::pass_manager): Use pass-instances.def
6570 rather than passes.def, updating local definition of NEXT_PASS
6571 macro to add an extra NUM parameter (currently unused).
6572
315f8c0e
DM
65732013-07-30 David Malcolm <dmalcolm@redhat.com>
6574
6575 * Makefile.in (PASS_MANAGER_H): New.
6576 (lto-cgraph.o): Depend on CONTEXT_H and PASS_MANAGER_H.
6577 (passes.o): Likewise.
6578 (statistics.o): Likewise.
6579 (cgraphunit.o): Likewise.
6580 (context.o): Depend on PASS_MANAGER_H.
6581
6582 * pass_manager.h: New.
6583
6584 * cgraphunit.c (cgraph_add_new_function): Update for moves
6585 of globals to fields of pass_manager.
6586 (analyze_function): Likewise.
6587 (expand_function): Likewise.
6588 (ipa_passes): Likewise.
6589 (compile): Likewise.
6590
6591 * context.c (context::context): New.
6592 * context.h (context::context): New.
6593 (context::get_passes): New.
6594 (context::passes_): New.
6595
6596 * lto-cgraph.c (input_node): Update for moves of globals to
6597 fields of pass_manager.
6598
6599 * passes.c (all_passes): Remove, in favor of a field of the
6600 same name within the new class pass_manager.
6601 (all_small_ipa_passes): Likewise.
6602 (all_lowering_passes): Likewise.
6603 (all_regular_ipa_passes): Likewise.
6604 (all_late_ipa_passes): Likewise.
6605 (all_lto_gen_passes): Likewise.
6606 (passes_by_id): Likewise.
6607 (passes_by_id_size): Likewise.
6608 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
6609 the new class pass_manager.
6610 (set_pass_for_id): Convert to...
6611 (pass_manager::set_pass_for_id): ...method.
6612 (get_pass_for_id): Convert to...
6613 (pass_manager::get_pass_for_id): ...method.
6614 (register_one_dump_file): Move body of implementation into...
6615 (pass_manager::register_one_dump_file): ...here.
6616 (register_dump_files_1): Convert to...
6617 (pass_manager::register_dump_files_1): ...method.
6618 (register_dump_files): Convert to...
6619 (pass_manager::register_dump_files): ...method.
6620 (create_pass_tab): Update for moves of globals to fields of
6621 pass_manager.
6622 (dump_passes): Move body of implementation into...
6623 (pass_manager::dump_passes): ...here.
6624 (register_pass): Move body of implementation into...
6625 (pass_manager::register_pass): ...here.
6626 (init_optimization_passes): Convert into...
6627 (pass_manager::pass_manager): ...constructor for new
6628 pass_manager class, and initialize the pass_lists array.
6629 (check_profile_consistency): Update for moves of globals to
6630 fields of pass_manager.
6631 (dump_profile_report): Move body of implementation into...
6632 (pass_manager::dump_profile_report): ...here.
6633 (ipa_write_summaries_1): Update for moves of pass lists from
6634 being globals to fields of pass_manager.
6635 (ipa_write_optimization_summaries): Likewise.
6636 (ipa_read_summaries): Likewise.
6637 (ipa_read_optimization_summaries): Likewise.
6638 (execute_all_ipa_stmt_fixups): Likewise.
6639
6640 * statistics.c (statistics_fini): Update for moves of globals to
6641 fields of pass_manager.
6642
6643 * toplev.c (general_init): Replace call to
6644 init_optimization_passes with construction of the pass_manager
6645 instance.
6646
6647 * tree-pass.h (all_passes): Remove, in favor of a field of the
6648 same name within the new class pass_manager.
6649 (all_small_ipa_passes): Likewise.
6650 (all_lowering_passes): Likewise.
6651 (all_regular_ipa_passes): Likewise.
6652 (all_lto_gen_passes): Likewise.
6653 (all_late_ipa_passes): Likewise.
6654 (passes_by_id): Likewise.
6655 (passes_by_id_size): Likewise.
6656 (gcc_pass_lists): Remove, in favor of "pass_lists" field within
6657 the new class pass_manager.
6658 (get_pass_for_id): Remove.
6659
02cab1c1
RE
66602013-07-30 Richard Earnshaw <rearnsha@arm.com>
6661
6662 * config.gcc (arm): Require 64-bit host-wide-int for all ARM target
6663 configs.
6664
b2d3f886
RE
66652013-07-30 Richard Earnshaw <rearnsha@arm.com>
6666
6667 * arm.md (mulhi3): New expand pattern.
6668
605e86fa
JH
66692013-07-30 Jan Hubicka <jh@suse.cz>
6670 Martin Liska <marxin.liska@gmail.com>
6671
6672 * profile.c (compute_value_histograms): Do not ICE when
6673 there is mismatch only on some counters.
6674
14a87636
ZC
66752013-07-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
6676
6677 PR rtl-optimization/57637
6678 * function.c (move_insn_for_shrink_wrap): Also check the
6679 GEN set of the LIVE problem for the liveness analysis
6680 if it exists, otherwise give up.
6681
0100cd3f
BS
66822013-07-29 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
6683
6684 PR tree-optimization/57993
6685 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Record
6686 replaced statement in the candidate table.
6687 (phi_add_costs): Return infinite cost when the hidden basis does
6688 not dominate all phis on which the candidate is dependent.
6689 (replace_one_candidate): Record replaced statement in the
6690 candidate table.
6691
f0d811f7
JR
66922013-07-29 Joern Rennecke <joern.rennecke@embecosm.com>
6693
6694 * config/epiphany/epiphany.md (*isub_i+2): New peephole.
6695 (ashlv2si3): New expander.
6696 (*ashlv2si3_i): New define_insn_and_split.
6697 * predicates.md (float_operation): Allow patterns with three
6698 basic sub-patterns.
6699
bba33211
JR
6700 PR rtl-optimization/58021
6701 * mode-switching.c (create_pre_exit): Always split off preceding
6702 insns if we are not at the basic block head.
6703
ff3f3951
MR
67042013-07-29 Maciej W. Rozycki <macro@codesourcery.com>
6705
6706 * config/mips/linux.h (GLIBC_DYNAMIC_LINKER): Handle `-mnan=2008'.
6707 (UCLIBC_DYNAMIC_LINKER): New macro.
6708 * config/mips/linux64.h (GLIBC_DYNAMIC_LINKER32): Handle
6709 `-mnan=2008'.
6710 (GLIBC_DYNAMIC_LINKER64, GLIBC_DYNAMIC_LINKERN32): Likewise.
6711 (UCLIBC_DYNAMIC_LINKER32): Undefine macro first. Handle
6712 `-mnan=2008'.
6713 (UCLIBC_DYNAMIC_LINKER64): Redefine macro.
6714 (UCLIBC_DYNAMIC_LINKERN32): Likewise.
6715 * config/mips/mips-modes.def: Remove RESET_FLOAT_FORMAT calls
6716 for SF and DF modes. Use ieee_quad_format for TF mode.
6717 * config/mips/mips-opts.h (mips_ieee_754_setting): New enum.
6718 * config/mips/mips.c (mips_file_start): Output a `.nan' directive.
6719 (mips_option_override): Handle `-mnan=legacy'.
6720 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Handle
6721 `-mabs=2008' and `-mnan=2008'.
6722 (OPTION_DEFAULT_SPECS): Add "nan" default.
6723 (ASM_SPEC): Handle `-mnan='.
6724 [!HAVE_AS_NAN] (HAVE_AS_NAN): New macro.
6725 * config/mips/mips.md (abs<mode>2): Handle `-mabs=2008', update
6726 comment accordingly.
6727 (neg<mode>2): Likewise.
6728 * config/mips/mips.opt (mabs, mnan): New options.
6729 * doc/install.texi (Configuration): Document `--with-nan=' option.
6730 * doc/invoke.texi (Option Summary): List MIPS `-mabs=' and
6731 `-mnan=' options.
6732 (MIPS Options): Document them.
6733 * config.gcc <mips*-*-*>: Handle `--with-nan='.
6734 * configure.ac <mips*-*-*>: Check for GAS `-mnan=2008' support.
6735 * configure: Regenerate.
6736 * config.in: Regenerate.
6737
576e2f37
UB
67382013-07-29 Uros Bizjak <ubizjak@gmail.com>
6739
6740 * config/i386/i386.md (float post-reload splitters): Do not check
6741 for subregs of SSE registers.
6742
67432013-07-29 Uros Bizjak <ubizjak@gmail.com>
6744 H.J. Lu <hongjiu.lu@intel.com>
6745
6746 PR target/57954
6747 PR target/57988
6748 * config/i386/i386.md (post-reload splitter
6749 to avoid partial SSE reg dependency stalls): New pattern.
6750
a71f0749
DV
67512013-07-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
6752
6753 * config/s390/s390.md ("movcc"): Swap load and store instructions.
6754
4c97f1cc
JR
67552013-07-27 Joern Rennecke <joern.rennecke@embecosm.com>
6756
6757 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
6758 Also reserve space for saving UNKNOWN_REGNUM for leaf functions.
6759
b0c733d8
CC
67602013-07-26 Cary Coutant <ccoutant@google.com>
6761
6762 * dwarf2out.c (die_checksum_ordered): Don't include template
6763 instantiations in signature.
6764 (is_template_parameter): New function.
6765 (is_template_instantiation): New function.
6766 (generate_skeleton_bottom_up): Don't include template instantiations
6767 in type unit DIE.
6768 (generate_skeleton): Likewise.
6769 (break_out_comdat_types): Move recursive call to break out nested
6770 types earlier.
6771 (prune_unused_types_mark_generic_parms_dies): Call
6772 is_template_parameter.
6773
040d8a1c
IB
67742013-07-26 Ian Bolton <ian.bolton@arm.com>
6775
6776 * config/aarch64/aarch64.md (neg<mode>2): Offer alternative that
6777 uses vector registers.
89fdc743 6778 * config/aarch64/iterators.md: Add attributes rtn and vas.
040d8a1c 6779
85bd4ac6 67802013-07-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
576e2f37 6781 Richard Earnshaw <richard.earnshaw@arm.com>
85bd4ac6
KT
6782
6783 * combine.c (simplify_comparison): Re-canonicalize operands
576e2f37 6784 where appropriate.
85bd4ac6
KT
6785 * config/arm/arm.md (movcond_addsi): New splitter.
6786
b6051207
SA
67872013-07-25 Sterling Augustine <saugustine@google.com>
6788
6789 * dwarf2out.c (size_of_pubnames): Move code to...
6790 (include_pubname_in_output): ...here. New.
6791 (want_pubnames): Rearrange.
6792 (output_pubnames): Call include_pubname_in_output. Move assertion.
6793
41a7c215
CM
67942013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
6795
6796 * doc/extend.texi: Fix return types for __builtin_ia32_cmp*s builtins.
6797
67982013-07-25 Cameron McInally <cameron.mcinally@nyu.edu>
6799
6800 PR target/38836
6801 * doc/extend.texi: Remove obsolete builtins. Fix
6802 typo for __builtin_ia32_loadss and __builtin_ia32_cmpnltss.
6803
49bde175
JH
68042013-07-25 Jan Hubicka <jh@suse.cz>
6805
6806 * cgraph.c (release_function_body): Break out from ...
6807 (cgraph_release_function_body): ... this one; also release DECL_RESULT
6808 and DECL_ARGUMENTS.
6809 * ipa-cp.c (get_replacement_map): Add parm_num argument; do not set
6810 old_tree in the map.
6811 (create_specialized_node): Update.
6812 * lto-cgraph.c (output_node_opt_summary): Do not translate old_tree
6813 into index.
41a7c215
CM
6814 * cgraphclones.c (cgraph_create_virtual_clone): Do not copy
6815 DECL_ARGUMENTS, DECL_INITIAL and DECL_RESULT.
49bde175
JH
6816 * ipa-prop.c (ipa_populate_param_decls): Look for origin of clones.
6817 * tree-inline.c (initialize_cfun): Initialize DECL_ARGUMENTS and
6818 DECL_RESULT.
6819
4870352d
KT
68202013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6821
6822 * config/arm/arm.md (arm_addsi3, addsi3_carryin_<optab>,
6823 addsi3_carryin_alt2_<optab>): Correct output template.
6824
1d6aee1c
KT
68252013-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6826
6827 * config/arm/arm-fixed.md (ssmulsa3, usmulusa3):
6828 Adjust for arm_restrict_it.
6829 Remove trailing whitespace.
6830
c7cafd75
MK
68312013-07-25  Mark Kettenis  <kettenis@openbsd.org>
6832
017d38f5
MK
6833 * config/pa/pa.c (pa_trampoline_init): Emit __enable_execute_stack
6834 libcall if HAVE_ENABLE_EXECUTE_STACK is defined.
6835
c7cafd75
MK
6836 * config.gcc (hppa-*-openbsd*): Don't set tmake_file.
6837
00b7527b
VM
68382013-07-25 Vladimir Makarov <vmakarov@redhat.com>
6839
6840 PR rtl-optimization/57960
6841 * lra-constraints.c (process_alt_operands): Use the right mode
6842 when checking strict_low.
6843
4f63dfc6
JH
68442013-07-25 Jan Hubicka <jh@suse.cz>
6845
6846 * lto-symtab.c (lto_cgraph_replace_node): Release function body.
6847 * cgraph.c (cgraph_remove_node): Do not release function body
6848 when in cgraph streaming.
6849 * ipa.c (process_references, symtab_remove_unreachable_nodes): Objects
41a7c215
CM
6850 in other partitions are not considered reachable; fix handling of
6851 clones.
4f63dfc6 6852
e6dcfa18
RR
68532013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6854
6855 * config/arm/arm.md (*sibcall_insn): Remove unnecessary space.
6856
0b93d3b6
RR
68572013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6858
6859 PR target/19599
6860 PR target/57731
bb80c2eb 6861 PR target/57837
e6dcfa18 6862 * config/arm/arm.md ("*sibcall_insn): Replace use of
0b93d3b6 6863 Ss with US. Adjust output for v5 and v4t.
41a7c215 6864 (*sibcall_value_insn): Likewise and loosen predicate on operand0.
e6dcfa18 6865
0b93d3b6
RR
6866 * config/arm/constraints.md ("Ss"): Rename to US.
6867
690688b3
TG
68682013-07-25 Terry Guo <terry.guo@arm.com>
6869
6870 * config/arm/arm.c (thumb1_size_rtx_costs): Assign proper cost for
6871 shift_add/shift_sub0/shift_sub1 RTXs.
6872
a4ad093b 68732013-07-24 Bill Schmidt <wschmidt@linux.ibm.com>
12211b99 6874 Anton Blanchard <anton@au1.ibm.com>
a4ad093b
BS
6875
6876 * config/rs6000/altivec.md (altivec_vpkpx): Handle little endian.
6877 (altivec_vpks<VI_char>ss): Likewise.
6878 (altivec_vpks<VI_char>us): Likewise.
6879 (altivec_vpku<VI_char>us): Likewise.
6880 (altivec_vpku<VI_char>um): Likewise.
6881
8c5005ce
DM
68822013-07-24 David Malcolm <dmalcolm@redhat.com>
6883
6884 Introduce context class.
6885
6886 * Makefile.in (CONTEXT_H): New.
6887 (OBJS): Add context.o.
6888 (toplev.o): Add CONTEXT_H to dependencies.
6889 (context.o): New.
6890
41a7c215 6891 * toplev.c (general_init): Create the singleton gcc::context instance.
8c5005ce
DM
6892
6893 * context.c: New.
6894
6895 * context.h: New.
6896
ce4a9422
JR
68972013-07-24 Joern Rennecke <joern.rennecke@embecosm.com>
6898
6899 PR rtl-optimization/57968
6900 * mode-switching.c (create_pre_exit): Allow instructions that
6901 don't set a return register to need a non-exit mode.
6902
493f4c9e 69032013-07-24 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
12211b99 6904 Anton Blanchard <anton@au1.ibm.com>
493f4c9e 6905
b5860fd3
WS
6906 * config/rs6000/vector.md (vec_realign_load_<mode>): Reorder input
6907 operands to vperm for little endian.
6908 * config/rs6000/rs6000.c (rs6000_expand_builtin): Use lvsr instead
6909 of lvsl to create the control mask for a vperm for little endian.
493f4c9e 6910
73792b92 69112013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 6912 Anton Blanchard <anton@au1.ibm.com>
73792b92
BS
6913
6914 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Reverse
6915 two operands for little-endian.
6916
14c21302
SE
69172013-07-23 Steve Ellcey <sellcey@mips.com>
6918
6919 * config/mips/mips.c (mips_case_values_threshold): New.
6920 (TARGET_CASE_VALUES_THRESHOLD): Define.
6921
a6056198 69222013-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 6923 Anton Blanchard <anton@au1.ibm.com>
a6056198
BS
6924
6925 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Correct
6926 selection of field for vector splat in little endian mode.
6927
dd7a40e1
MM
69282013-07-23 Michael Meissner <meissner@linux.vnet.ibm.com>
6929
6930 * config/rs6000/vector.md (xor<mode>3): Move 128-bit boolean
6931 expanders to rs6000.md.
6932 (ior<mode>3): Likewise.
6933 (and<mode>3): Likewise.
6934 (one_cmpl<mode>2): Likewise.
6935 (nor<mode>3): Likewise.
6936 (andc<mode>3): Likewise.
6937 (eqv<mode>3): Likewise.
6938 (nand<mode>3): Likewise.
6939 (orc<mode>3): Likewise.
6940
6941 * config/rs6000/rs6000-protos.h (rs6000_split_logical): New
6942 declaration.
6943
6944 * config/rs6000/rs6000.c (rs6000_split_logical_inner): Add support
6945 to split multi-word logical operations.
6946 (rs6000_split_logical_di): Likewise.
6947 (rs6000_split_logical): Likewise.
6948
6949 * config/rs6000/vsx.md (VSX_L2): Delete, no longer used.
6950 (vsx_and<mode>3_32bit): Move 128-bit logical insns to rs6000.md,
6951 and allow TImode operations in 32-bit.
6952 (vsx_and<mode>3_64bit): Likewise.
6953 (vsx_ior<mode>3_32bit): Likewise.
6954 (vsx_ior<mode>3_64bit): Likewise.
6955 (vsx_xor<mode>3_32bit): Likewise.
6956 (vsx_xor<mode>3_64bit): Likewise.
6957 (vsx_one_cmpl<mode>2_32bit): Likewise.
6958 (vsx_one_cmpl<mode>2_64bit): Likewise.
6959 (vsx_nor<mode>3_32bit): Likewise.
6960 (vsx_nor<mode>3_64bit): Likewise.
6961 (vsx_andc<mode>3_32bit): Likewise.
6962 (vsx_andc<mode>3_64bit): Likewise.
6963 (vsx_eqv<mode>3_32bit): Likewise.
6964 (vsx_eqv<mode>3_64bit): Likewise.
6965 (vsx_nand<mode>3_32bit): Likewise.
6966 (vsx_nand<mode>3_64bit): Likewise.
6967 (vsx_orc<mode>3_32bit): Likewise.
6968 (vsx_orc<mode>3_64bit): Likewise.
6969
6970 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Always allow vector
6971 logical types in GPRs.
6972
6973 * config/rs6000/altivec.md (altivec_and<mode>3): Move 128-bit
6974 logical insns to rs6000.md, and allow TImode operations in
6975 32-bit.
6976 (altivec_ior<mode>3): Likewise.
6977 (altivec_xor<mode>3): Likewise.
6978 (altivec_one_cmpl<mode>2): Likewise.
6979 (altivec_nor<mode>3): Likewise.
6980 (altivec_andc<mode>3): Likewise.
6981
6982 * config/rs6000/rs6000.md (BOOL_128): New mode iterators and mode
6983 attributes for moving the 128-bit logical operations into
6984 rs6000.md.
6985 (BOOL_REGS_OUTPUT): Likewise.
6986 (BOOL_REGS_OP1): Likewise.
6987 (BOOL_REGS_OP2): Likewise.
6988 (BOOL_REGS_UNARY): Likewise.
6989 (BOOL_REGS_AND_CR0): Likewise.
6990 (one_cmpl<mode>2): Add support for DI logical operations on
6991 32-bit, splitting the operations to 32-bit.
6992 (anddi3): Likewise.
6993 (iordi3): Likewise.
6994 (xordi3): Likewise.
6995 (and<mode>3, 128-bit types): Rewrite 2013-06-06 logical operator
6996 changes to combine the 32/64-bit code, allow logical operations on
6997 TI mode in 32-bit, and to use similar match_operator patterns like
6998 scalar mode uses. Combine the Altivec and VSX code for logical
6999 operations, and move it here.
7000 (ior<mode>3, 128-bit types): Likewise.
7001 (xor<mode>3, 128-bit types): Likewise.
7002 (one_cmpl<mode>3, 128-bit types): Likewise.
7003 (nor<mode>3, 128-bit types): Likewise.
7004 (andc<mode>3, 128-bit types): Likewise.
7005 (eqv<mode>3, 128-bit types): Likewise.
7006 (nand<mode>3, 128-bit types): Likewise.
7007 (orc<mode>3, 128-bit types): Likewise.
7008 (and<mode>3_internal): Likewise.
7009 (bool<mode>3_internal): Likewise.
7010 (boolc<mode>3_internal1): Likewise.
7011 (boolc<mode>3_internal2): Likewise.
7012 (boolcc<mode>3_internal1): Likewise.
7013 (boolcc<mode>3_internal2): Likewise.
7014 (eqv<mode>3_internal1): Likewise.
7015 (eqv<mode>3_internal2): Likewise.
7016 (one_cmpl1<mode>3_internal): Likewise.
7017
12211b99 70182013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
9b69d4b4
DH
7019
7020 * config/microblaze/microblaze.c (microblaze_expand_prologue):
7021 Rename flag_stack_usage to flag_stack_usage_info.
7022
12211b99 70232013-07-23 David Holsgrove <david.holsgrove@xilinx.com>
450b0ebb 7024
a5f257fd
ME
7025 * config/microblaze/sync.md: New file.
7026 * config/microblaze/microblaze.md: Include sync.md
7027 * config/microblaze/microblaze.c: Add print_operand 'y'.
7028 * config/microblaze/constraints.md: Add memory_contraint
7029 'Q' which is a single register.
450b0ebb 7030
49fba14f
EB
70312013-07-23 Eric Botcazou <ebotcazou@adacore.com>
7032
7033 * doc/invoke.texi (SPARC Options): Document new leon3 processor value.
7034
c7b3b99f
PCC
70352013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
7036
7037 * reload.c (find_reloads): Exit loop once we find this operand
7038 cannot be reloaded somehow for this alternative.
7039
7040 * reload.c (find_reloads): Exit loop once we find a hard register.
7041
7042 * rtlanal.c (computed_jump_p): Exit loop once we find label
7043 reference is used.
7044
7045 * i386.c (ix86_pad_returns): Exit loop after setting replace.
7046
7047 * cfgloopmanip.c (remove_path): Exit loop after setting
7048 irred_invalidated.
7049
7050 * gensupport.c (subst_dup): Avoid loop if code is not
7051 MATCH_DUP nor MATCH_OP_DUP.
7052
c8fbf1fa
NBJ
70532013-07-23 Nicklas Bo Jensen <nbjensen@gmail.com>
7054
7055 * doc/md.texi (Machine-Specific Peephole Optimizers): Fix a typo.
7056
9259db42
YZ
70572013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
7058
7059 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Also return
7060 true for SP_REGNUM if mode == ptr_mode.
7061 * config/aarch64/aarch64.h (ADDITIONAL_REGISTER_NAMES): Add "wsp"
7062 with value R0_REGNUM + 31.
7063
00edcfbe
YZ
70642013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
7065
7066 * config/aarch64/aarch64.c (aarch64_pad_arg_upward): In big-endian,
7067 pad pointer-typed argument downward.
7068
43be9a95
YZ
70692013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
7070
7071 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define _ILP32
7072 and __ILP32__ when the ILP32 model is in use.
7073
28514dda
YZ
70742013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
7075
7076 * config/aarch64/aarch64.c (POINTER_BYTES): New define.
7077 (aarch64_load_symref_appropriately): In the case of
7078 SYMBOL_SMALL_ABSOLUTE, use the mode of 'dest' instead of Pmode
7079 to generate new rtx; likewise to the case of SYMBOL_SMALL_GOT.
7080 (aarch64_expand_mov_immediate): In the case of SYMBOL_FORCE_TO_MEM,
7081 change to pass 'ptr_mode' to force_const_mem and zero-extend 'mem'
7082 if 'mode' doesn't equal to 'ptr_mode'.
7083 (aarch64_output_mi_thunk): Add an assertion on the alignment of
7084 'vcall_offset'; change to call aarch64_emit_move differently depending
7085 on whether 'Pmode' equals to 'ptr_mode' or not; use 'POINTER_BYTES'
7086 to calculate the upper bound of 'vcall_offset'.
7087 (aarch64_cannot_force_const_mem): Change to also return true if
7088 mode != ptr_mode.
7089 (aarch64_legitimize_reload_address): In the case of large
7090 displacements, add new local variable 'xmode' and an assertion
7091 based on it; change to use 'xmode' to generate the new rtx and
7092 reload.
7093 (aarch64_asm_trampoline_template): Change to generate the template
7094 differently depending on TARGET_ILP32 or not; change to use
7095 'POINTER_BYTES' in the argument passed to assemble_aligned_integer.
7096 (aarch64_trampoline_size): Removed.
7097 (aarch64_trampoline_init): Add new local constant 'tramp_code_sz'
7098 and replace immediate literals with it. Change to use 'ptr_mode'
7099 instead of 'DImode' and call convert_memory_address if the mode
7100 of 'fnaddr' doesn't equal to 'ptr_mode'.
7101 (aarch64_elf_asm_constructor): Change to use assemble_aligned_integer
7102 to output symbol.
7103 (aarch64_elf_asm_destructor): Likewise.
7104 * config/aarch64/aarch64.h (TRAMPOLINE_SIZE): Change to be dependent
7105 on TARGET_ILP32 instead of aarch64_trampoline_size.
7106 * config/aarch64/aarch64.md (movsi_aarch64): Add new alternatives
7107 of 'mov' between WSP and W registers as well as 'adr' and 'adrp'.
7108 (loadwb_pair<GPI:mode>_<PTR:mode>): Rename to ...
7109 (loadwb_pair<GPI:mode>_<P:mode>): ... this. Replace PTR with P.
7110 (storewb_pair<GPI:mode>_<PTR:mode>): Likewise; rename to ...
7111 (storewb_pair<GPI:mode>_<P:mode>): ... this.
7112 (add_losym): Change to 'define_expand' and call gen_add_losym_<mode>
7113 depending on the value of 'mode'.
7114 (add_losym_<mode>): New.
7115 (ldr_got_small_<mode>): New, based on ldr_got_small.
7116 (ldr_got_small): Remove.
7117 (ldr_got_small_sidi): New.
7118 * config/aarch64/iterators.md (P): New.
7119 (PTR): Change to 'ptr_mode' in the condition.
7120
17a819cb
YZ
71212013-07-23 Yufeng Zhang <yufeng.zhang@arm.com>
7122
7123 * config.gcc (aarch64*-*-*): Support --with-abi.
7124 (aarch64*-*-elf): Support --with-multilib-list.
7125 (aarch64*-*-linux*): Likewise.
7126 (supported_defaults): Add abi to aarch64*-*-*.
7127 * configure.ac: Mention AArch64 for --with-multilib-list.
7128 * configure: Re-generated.
7129 * config/aarch64/biarchilp32.h: New file.
7130 * config/aarch64/biarchlp64.h: New file.
7131 * config/aarch64/aarch64-elf.h (ENDIAN_SPEC): New define.
7132 (ABI_SPEC): Ditto.
7133 (MULTILIB_DEFAULTS): Ditto.
7134 (DRIVER_SELF_SPECS): Ditto.
7135 (ASM_SPEC): Update to also substitute -mabi.
7136 * config/aarch64/aarch64-elf-raw.h (LINK_SPEC): Add linker script
7137 file whose name depends on -mabi= and -mbig-endian.
7138 * config/aarch64/aarch64.h (LONG_TYPE_SIZE): Change to depend on
7139 TARGET_ILP32.
7140 (POINTER_SIZE): New define.
7141 (POINTERS_EXTEND_UNSIGNED): Ditto.
7142 (enum aarch64_abi_type): New enumeration tag.
7143 (AARCH64_ABI_LP64, AARCH64_ABI_ILP32): New enumerators.
7144 (AARCH64_ABI_DEFAULT): Define to AARCH64_ABI_LP64 if undefined.
7145 (TARGET_ILP32): New define.
7146 * config/aarch64/aarch64.opt (mabi): New.
7147 (aarch64_abi): New.
7148 (ilp32, lp64): New values for -mabi.
7149 * config/aarch64/t-aarch64 (comma): New define.
7150 (MULTILIB_OPTIONS): Ditto.
7151 (MULTILIB_DIRNAMES): Ditto.
7152 * config/aarch64/t-aarch64-linux (MULTIARCH_DIRNAME): New define.
7153 * doc/invoke.texi: Document -mabi for AArch64.
7154
9f9cbdce
GJL
71552013-07-23 Georg-Johann Lay <avr@gjlay.de>
7156
7157 * config/avr/avr.md: Explain asm print modifier 'r' for REG.
7158
7061977b 71592013-07-22 Bill Schmidt <wschmidt@vnet.linux.ibm.com>
12211b99 7160 Anton Blanchard <anton@au1.ibm.com>
7061977b
BS
7161
7162 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Fix
7163 endianness when selecting field to splat.
7164
75a41878
EC
71652013-07-22 Eric Christopher <echristo@gmail.com>
7166
7167 * dwarf2out.c (die_odr_checksum): New function to use
7168 CHECKSUM_ macros and ULEB128 for DIE tag.
7169 (generate_type_signature): Use.
41a7c215 7170
38ae58ca
EB
71712013-07-22 Eric Botcazou <ebotcazou@adacore.com>
7172
7173 * config.gcc (sparc*-*-*): Accept leon3 processor.
7174 (sparc-leon*-*): Merge with sparc*-*-* and add leon3 support.
7175 * doc/invoke.texi (SPARC Options): Adjust -mfix-ut699 entry.
7176 * config/sparc/sparc-opts.h (enum processor_type): Add PROCESSOR_LEON3.
7177 * config/sparc/sparc.opt (enum processor_type): Add leon3.
7178 (mfix-ut699): Adjust comment.
7179 * config/sparc/sparc.h (TARGET_CPU_leon3): New define.
7180 (CPP_CPU32_DEFAULT_SPEC): Add leon3 support.
7181 (CPP_CPU_SPEC): Likewise.
7182 (ASM_CPU_SPEC): Likewise.
7183 * config/sparc/sparc.c (leon3_cost): New constant.
7184 (sparc_option_override): Add leon3 support.
7185 (mem_ref): New function.
7186 (sparc_gate_work_around_errata): Return true if -mfix-ut699 is enabled.
7187 (sparc_do_work_around_errata): Look into the instruction in the delay
7188 slot and adjust accordingly. Add fix for the data cache nullify issues
7189 of the UT699. Change insertion position for the NOP.
7190 * config/sparc/leon.md (leon_fpalu, leon_fpmds, write_buf): Delete.
7191 (leon3_load): New reservation.
7192 (leon_store): Bump latency to 2.
7193 (grfpu): New automaton.
7194 (grfpu_alu): New unit.
7195 (grfpu_ds): Likewise.
7196 (leon_fp_alu): Adjust.
7197 (leon_fp_mult): Delete.
7198 (leon_fp_div): Split into leon_fp_divs and leon_fp_divd.
7199 (leon_fp_sqrt): Split into leon_fp_sqrts and leon_fp_sqrtd.
7200 * config/sparc/sparc.md (cpu): Add leon3.
7201 * config/sparc/sync.md (atomic_exchangesi): Disable if -mfix-ut699.
7202 (swapsi): Likewise.
7203 (atomic_test_and_set): Likewise.
7204 (ldstub): Likewise.
7205
04dfc6df
JU
72062013-07-22 Jürgen Urban <JuergenUrban@gmx.de>
7207
7208 * config.gcc (mips*-*-*): Add --with-fpu support. Make single the
7209 default for R5900 targets.
7210 * config/mips/mips.h (OPTION_DEFAULT_SPECS): Handle --with-fpu.
7211 (ISA_HAS_LDC1_SDC1): Set to false for TARGET_MIPS5900.
7212 * config/mips/mips.c (mips_option_override): Report an error for
7213 -march=r5900 -mhard-float -mdouble-float. Use spu_single_format
7214 for -march=r5900 -mhard-float.
7215
c7b3b99f 72162013-07-22 Po-Chun Chang <pchang9@cs.wisc.edu>
ae382ebd
PCC
7217
7218 * df-problems.c (can_move_insns_across): Exit loop once we
7219 find a non-fixed, non-global register.
7220
7221 * ipa-pure-const.c (propagate_nothrow): Exit loop after
7222 setting can_throw.
7223
7224 * omega.c (omega_eliminate_red): Break after setting red_found.
7225 (omega_problem_has_red_equations): Similarly after setting found.
7226 (omega_query_variable): Similarly after setting coupled.
7227
9b6e6981
MP
72282013-07-22 Marek Polacek <polacek@redhat.com>
7229
7230 * gimplify.c: Don't include gimple.h twice.
7231
5e5f7673
KT
72322013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7233
7234 * config/arm/constraints.md (Pd): Allow TARGET_THUMB
7235 instead of TARGET_THUMB1.
7236 (Pz): New constraint.
7237 * config/arm/arm.md (arm_addsi3): Add alternatives for 16-bit
7238 encodings.
7239 (compare_negsi_si): Likewise.
7240 (compare_addsi2_op0): Likewise.
7241 (compare_addsi2_op1): Likewise.
7242 (addsi3_carryin_<optab>): Likewise.
7243 (addsi3_carryin_alt2_<optab>): Likewise.
7244 (addsi3_carryin_shift_<optab>): Disable cond_exec variant
7245 for arm_restrict_it.
7246 (subsi3_carryin): Likewise.
7247 (arm_subsi3_insn): Add alternatives for 16-bit encoding.
7248 (minmax_arithsi): Disable for arm_restrict_it.
7249 (minmax_arithsi_non_canon): Adjust for arm_restrict_it.
7250 (satsi_<SAT:code>): Disable cond_exec variant for arm_restrict_it.
7251 (satsi_<SAT:code>_shift): Likewise.
7252 (arm_shiftsi3): Add alternative for 16-bit encoding.
7253 (arm32_movhf): Disable for arm_restrict_it.
7254 (arm_cmpdi_unsigned): Add alternatives for 16-bit encoding.
7255 (arm_movtas_ze): Disable cond_exec variant for arm_restrict_it.
7256
859abddd
SN
72572013-07-22 Sofiane Naci <sofiane.naci@arm.com>
7258
7259 * config/arm/arm.md (attribute "insn"): Delete.
7260 (attribute "type"): Add "mov_imm", "mov_reg", "mov_shift",
7261 "mov_shift_reg", "mvn_imm", "mvn_reg", "mvn_shift" and "mvn_shift_reg".
7262 (not_shiftsi): Update for attribute change.
7263 (not_shiftsi_compare0): Likewise.
7264 (not_shiftsi_compare0_scratch): Likewise.
7265 (arm_one_cmplsi2): Likewise.
7266 (thumb1_one_cmplsi2): Likewise.
7267 (notsi_compare0): Likewise.
7268 (notsi_compare0_scratch): Likewise.
7269 (thumb1_movdi_insn): Likewise.
7270 (arm_movsi_insn): Likewise.
7271 (movhi_insn_arch4): Likewise.
7272 (movhi_bytes): Likewise.
7273 (arm_movqi_insn): Likewise.
7274 (thumb1_movqi_insn): Likewise.
7275 (arm32_movhf): Likewise.
7276 (thumb1_movhf): Likewise.
7277 (arm_movsf_soft_insn): Likewise.
7278 (thumb1_movsf_insn): Likewise.
7279 (thumb_movdf_insn): Likewise.
7280 (movsicc_insn): Likewise.
7281 (movsfcc_soft_insn): Likewise.
7282 (and_scc): Likewise.
7283 (cond_move): Likewise.
7284 (if_move_not): Likewise.
7285 (if_not_move): Likewise.
7286 (if_shift_move): Likewise.
7287 (if_move_shift): Likewise.
7288 (if_shift_shift): Likewise.
7289 (if_not_arith): Likewise.
7290 (if_arith_not): Likewise.
7291 (cond_move_not): Likewise.
7292 * config/arm/neon.md (neon_mov<mode>): Update for attribute change.
7293 (neon_mov<mode>): Likewise.
7294 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute change.
7295 (thumb2_movsi_vfp): Likewise.
7296 (movsf_vfp): Likewise.
7297 (thumb2_movsf_vfp): Likewise.
371e77e3
UB
7298 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
7299 change.
859abddd
SN
7300 (cortexa7_older_only): Likewise.
7301 (cortexa7_younger): Likewise.
7302 * config/arm/arm1020e.md (1020alu_op): Update for attribute change.
7303 (1020alu_shift_op): Likewise.
7304 (1020alu_shift_reg_op): Likewise.
7305 * config/arm/arm1026ejs.md (alu_op): Update for attribute change.
7306 (alu_shift_op): Likewise.
7307 (alu_shift_reg_op): Likewise.
7308 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute change.
7309 (11_alu_shift_op): Likewise.
7310 (11_alu_shift_reg_op): Likewise.
7311 * config/arm/arm926ejs.md (9_alu_op): Update for attribute change.
7312 (9_alu_shift_reg_op): Likewise.
371e77e3
UB
7313 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
7314 change.
859abddd
SN
7315 (cortex_a15_alu_shift): Likewise.
7316 (cortex_a15_alu_shift_reg): Likewise.
7317 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute change.
7318 (cortex_a5_alu_shift): Likewise.
371e77e3
UB
7319 * config/arm/cortex-a53.md (cortex_a53_alu): Update for attribute
7320 change.
859abddd 7321 (cortex_a53_alu_shift): Likewise.
371e77e3
UB
7322 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
7323 change.
859abddd
SN
7324 (cortex_a7_alu_reg): Likewise.
7325 (cortex_a7_alu_shift): Likewise.
7326 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
7327 (cortex_a8_alu_shift): Likewise.
7328 (cortex_a8_alu_shift_reg): Likewise.
7329 (cortex_a8_mov): Likewise.
7330 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
7331 (cortex_a9_dp_shift): Likewise.
7332 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute change.
7333 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute change.
7334 (cortex_r4_mov): Likewise.
7335 (cortex_r4_alu_shift): Likewise.
7336 (cortex_r4_alu_shift_reg): Likewise.
7337 * config/arm/fa526.md (526_alu_op): Update for attribute change.
7338 (526_alu_shift_op): Likewise.
7339 * config/arm/fa606te.md (606te_alu_op): Update for attribute change.
7340 * config/arm/fa626te.md (626te_alu_op): Update for attribute change.
7341 (626te_alu_shift_op): Likewise.
7342 * config/arm/fa726te.md (726te_shift_op): Update for attribute change.
7343 (726te_alu_op): Likewise.
7344 (726te_alu_shift_op): Likewise.
7345 (726te_alu_shift_reg_op): Likewise.
7346 * config/arm/fmp626.md (mp626_alu_op): Update for attribute change.
7347 (mp626_alu_shift_op): Likewise.
7348 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute change.
7349 (pj4_alu_e1_conds): Likewise.
7350 (pj4_alu): Likewise.
7351 (pj4_alu_conds): Likewise.
7352 (pj4_shift): Likewise.
7353 (pj4_shift_conds): Likewise.
7354 (pj4_alu_shift): Likewise.
7355 (pj4_alu_shift_conds): Likewise.
7356
95b97fac
KT
73572013-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7358
7359 * config/arm/predicates.md (shiftable_operator_strict_it):
7360 New predicate.
7361 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si):
7362 Disable cond_exec version for arm_restrict_it.
7363 (thumb2_smaxsi3): Convert to generate cond_exec.
7364 (thumb2_sminsi3): Likewise.
7365 (thumb32_umaxsi3): Likewise.
7366 (thumb2_uminsi3): Likewise.
7367 (thumb2_abssi2): Adjust constraints for arm_restrict_it.
7368 (thumb2_neg_abssi2): Likewise.
7369 (thumb2_mov_scc): Add alternative for 16-bit encoding.
7370 (thumb2_movsicc_insn): Adjust alternatives.
7371 (thumb2_mov_negscc): Disable for arm_restrict_it.
7372 (thumb2_mov_negscc_strict_it): New pattern.
7373 (thumb2_mov_notscc_strict_it): New pattern.
7374 (thumb2_mov_notscc): Disable for arm_restrict_it.
7375 (thumb2_ior_scc): Likewise.
7376 (thumb2_ior_scc_strict_it): New pattern.
7377 (thumb2_cond_move): Adjust for arm_restrict_it.
7378 (thumb2_cond_arith): Disable for arm_restrict_it.
7379 (thumb2_cond_arith_strict_it): New pattern.
7380 (thumb2_cond_sub): Adjust for arm_restrict_it.
7381 (thumb2_movcond): Likewise.
7382 (thumb2_extendqisi_v6): Disable cond_exec variant for arm_restrict_it.
7383 (thumb2_zero_extendhisi2_v6): Likewise.
7384 (thumb2_zero_extendqisi2_v6): Likewise.
7385 (orsi_notsi_si): Likewise.
7386 (orsi_not_shiftsi_si): Likewise.
7387
d5a6ef82
GJL
73882013-07-22 Georg-Johann Lay <avr@gjlay.de>
7389
7390 * config/avr/avr.c (avr_out_xload): No SBIS around LPM so that
7391 instruction sequence is 1 byte shorter.
7392
d9e71154
UB
73932013-07-22 Uros Bizjak <ubizjak@gmail.com>
7394
7395 * config/i386/i386.md (nonlocal_goto_receiver): Delete insn if
7396 it is not needed after split.
7397
8c6381ec
IS
73982013-07-20 Iain Sandoe <iain@codesourcery.com>
7399
7400 PR target/51784
7401 * config/i386/i386.c (output_set_got) [TARGET_MACHO]: Adjust to emit a
7402 second label for nonlocal goto receivers. Don't output pic base labels
7403 unless we're producing PIC; mark that action unreachable().
7404 (ix86_save_reg): If the function contains a nonlocal label, save the
7405 PIC base reg.
7406 * config/darwin-protos.h (machopic_should_output_picbase_label): New.
f43245d1 7407 * config/darwin.c (emitted_pic_label_num): New GTY.
8c6381ec
IS
7408 (update_pic_label_number_if_needed): New.
7409 (machopic_output_function_base_name): Adjust for nonlocal receiver
7410 case.
7411 (machopic_should_output_picbase_label): New.
7412 * config/i386/i386.md (enum unspecv): UNSPECV_NLGR: New.
7413 (nonlocal_goto_receiver): New insn and split.
7414
d05d0709
JG
74152013-07-20 James Greenhalgh <james.greenhalgh@arm.com>
7416
7417 * config/aarch64/aarch64-builtins.c
7418 (aarch64_fold_builtin): Fold abs in all modes.
7419 * config/aarch64/aarch64-simd-builtins.def
7420 (abs): Enable for all modes.
7421 * config/aarch64/arm_neon.h
7422 (vabs<q>_s<8,16,32,64): Rewrite using builtins.
7423 (vabs_f64): Add missing intrinsic.
7424
ba590e63
IB
74252013-07-19 Ian Bolton <ian.bolton@arm.com>
7426
7427 * config/aarch64/arm_neon.h (vabs_s64): New function
7428
02371798
GJL
74292013-07-19 Georg-Johann Lay <avr@gjlay.de>
7430
7431 PR target/57516
7432 * config/avr/avr-fixed.md (round<mode>3_const): Turn expander to insn.
7433 * config/avr/avr.md (adjust_len): Add `round'.
7434 * config/avr/avr-protos.h (avr_out_round): New prototype.
7435 (avr_out_plus): Add `out_label' argument.
7436 * config/avr/avr.c (avr_out_plus_1): Add `out_label' argument.
7437 (avr_out_plus): Pass down `out_label' to avr_out_plus_1.
7438 Handle the case where `insn' is just a pattern.
7439 (avr_out_bitop): Handle the case where `insn' is just a pattern.
7440 (avr_out_round): New function.
7441 (avr_adjust_insn_length): Handle ADJUST_LEN_ROUND.
7442
12211b99 74432013-07-18 David Holsgrove <david.holsgrove@xilinx.com>
b950ac25
DH
7444
7445 * config/microblaze/microblaze.c (microblaze_expand_prologue):
7446 Add check for flag_stack_usage to handle -fstack-usage support
7447
12211b99 74482013-07-18 Pat Haugen <pthaugen@us.ibm.com>
ed1fd999
PH
7449
7450 * config/rs6000/rs6000.c (rs6000_option_override_internal): Adjust flag
7451 interaction for new Power8 flags and VSX.
7452
df9dda2d
ST
74532013-07-18 Sriraman Tallam <tmsriram@google.com>
7454
7455 PR middle-end/57698
7456 * tree-inline.c (expand_call_inline): Emit errors during
7457 early_inlining only if optimization is not turned on.
7458
0f9cdef4
DM
74592013-07-18 David Malcolm <dmalcolm@redhat.com>
7460
7461 * passes.def: New.
7462
7463 * passes.c (init_optimization_passes): Move the construction of
7464 the pass hierarchy into a new passes.def file.
7465
7466 * Makefile.in (passes.o): Add dependency on passes.def.
7467
2efa4087
DM
74682013-07-18 David Malcolm <dmalcolm@redhat.com>
7469
7470 * passes.c (init_optimization_passes): Introduce macros for
7471 constructing the tree of passes (INSERT_PASSES_AFTER,
7472 PUSH_INSERT_PASSES_WITHIN, POP_INSERT_PASSES,
7473 TERMINATE_PASS_LIST).
7474
bc404e1b
VM
74752013-07-18 Vladimir Makarov <vmakarov@redhat.com>
7476 Wei Mi <wmi@google.com>
7477
7478 PR rtl-optimization/57878
7479 * lra-assigns.c (assign_by_spills): Move non_reload_pseudos to the
7480 top.
7481 (reload_pseudo_compare_func): Check nregs first for reload
7482 pseudos.
7483
d675843f
DM
74842013-07-18 David Malcolm <dmalcolm@redhat.com>
7485
7486 * tree-pass.h (pass_ipa_lto_wpa_fixup): Remove redundant decl.
7487
c7b3b99f 74882013-07-18 Po-Chun Chang <pchang9@cs.wisc.edu>
bcb97fbd
PCC
7489
7490 * read-rtl.c (validate_const_int): Once an invalid character is
7491 seen, quit the loop.
7492
7493 * gengtype.c (write_roots): Similarly once we find the "deletable"
7494 or "if_marked" option.
7495
52fceb44
SN
74962013-07-18 Sofiane Naci <sofiane.naci@arm.com>
7497
7498 * config/arm/arm.md (attribute "insn"): Delete values "mrs", "msr",
7499 "xtab" and "sat". Move value "clz" from here to ...
7500 (attriubte "type"): ... here.
7501 (satsi_<SAT:code>): Delete "insn" attribute.
7502 (satsi_<SAT:code>_shift): Likewise.
7503 (arm_zero_extendqisi2addsi): Likewise.
7504 (arm_extendqisi2addsi): Likewise.
7505 (clzsi2): Update for attribute changes.
7506 (rbitsi2): Likewise.
371e77e3
UB
7507 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Delete "insn"
7508 attribute.
52fceb44
SN
7509 (arm_usatsihi): Likewise.
7510 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
7511
006bd006
SN
75122013-07-18 Sofiane Naci <sofiane.naci@arm.com>
7513
7514 * config/arm/arm.md (attribute "type"): Rename "simple_alu_imm" to
371e77e3
UB
7515 "arlo_imm". Rename "alu_reg" to "arlo_reg". Rename "simple_alu_shift"
7516 to "extend". Split "alu_shift" into "shift" and "arlo_shift". Split
006bd006
SN
7517 "alu_shift_reg" into "shift_reg" and "arlo_shift_reg". List types
7518 in alphabetical order.
7519 (attribute "core_cycles"): Update for attribute changes.
7520 (arm_addsi3): Likewise.
7521 (addsi3_compare0): Likewise.
7522 (addsi3_compare0_scratch): Likewise.
7523 (addsi3_compare_op1): Likewise.
7524 (addsi3_compare_op2): Likewise.
7525 (compare_addsi2_op0): Likewise.
7526 (compare_addsi2_op1): Likewise.
7527 (addsi3_carryin_shift_<optab>): Likewise.
7528 (subsi3_carryin_shift): Likewise.
7529 (rsbsi3_carryin_shift): Likewise.
7530 (arm_subsi3_insn): Likewise.
7531 (subsi3_compare0): Likewise.
7532 (subsi3_compare): Likewise.
7533 (arm_andsi3_insn): Likewise.
7534 (thumb1_andsi3_insn): Likewise.
7535 (andsi3_compare0): Likewise.
7536 (andsi3_compare0_scratch): Likewise.
7537 (zeroextractsi_compare0_scratch
7538 (andsi_not_shiftsi_si): Likewise.
7539 (iorsi3_insn): Likewise.
7540 (iorsi3_compare0): Likewise.
7541 (iorsi3_compare0_scratch): Likewise.
7542 (arm_xorsi3): Likewise.
7543 (thumb1_xorsi3_insn): Likewise.
7544 (xorsi3_compare0): Likewise.
7545 (xorsi3_compare0_scratch): Likewise.
7546 (satsi_<SAT:code>_shift): Likewise.
7547 (rrx): Likewise.
7548 (arm_shiftsi3): Likewise.
7549 (shiftsi3_compare0): Likewise.
7550 (not_shiftsi): Likewise.
7551 (not_shiftsi_compare0): Likewise.
7552 (not_shiftsi_compare0_scratch): Likewise.
7553 (arm_one_cmplsi2): Likewise.
7554 (thumb_one_complsi2): Likewise.
7555 (notsi_compare0): Likewise.
7556 (notsi_compare0_scratch): Likewise.
7557 (thumb1_zero_extendhisi2): Likewise.
7558 (arm_zero_extendhisi2): Likewise.
7559 (arm_zero_extendhisi2_v6): Likewise.
7560 (arm_zero_extendhisi2addsi): Likewise.
7561 (thumb1_zero_extendqisi2): Likewise.
7562 (thumb1_zero_extendqisi2_v6): Likewise.
7563 (arm_zero_extendqisi2): Likewise.
7564 (arm_zero_extendqisi2_v6): Likewise.
7565 (arm_zero_extendqisi2addsi): Likewise.
7566 (thumb1_extendhisi2): Likewise.
7567 (arm_extendhisi2): Likewise.
7568 (arm_extendhisi2_v6): Likewise.
7569 (arm_extendqisi): Likewise.
7570 (arm_extendqisi_v6): Likewise.
7571 (arm_extendqisi2addsi): Likewise.
7572 (thumb1_extendqisi2): Likewise.
7573 (thumb1_movdi_insn): Likewise.
7574 (arm_movsi_insn): Likewise.
7575 (movsi_compare0): Likewise.
7576 (movhi_insn_arch4): Likewise.
7577 (movhi_bytes): Likewise.
7578 (arm_movqi_insn): Likewise.
7579 (thumb1_movqi_insn): Likewise.
7580 (arm32_movhf): Likewise.
7581 (thumb1_movhf): Likewise.
7582 (arm_movsf_soft_insn): Likewise.
7583 (thumb1_movsf_insn): Likewise.
7584 (movdf_soft_insn): Likewise.
7585 (thumb_movdf_insn): Likewise.
7586 (arm_cmpsi_insn): Likewise.
7587 (cmpsi_shiftsi): Likewise.
7588 (cmpsi_shiftsi_swp): Likewise.
7589 (arm_cmpsi_negshiftsi_si): Likewise.
7590 (movsicc_insn): Likewise.
7591 (movsfcc_soft_insn): Likewise.
7592 (arith_shiftsi): Likewise.
7593 (arith_shiftsi_compare0
7594 (arith_shiftsi_compare0_scratch
7595 (sub_shiftsi): Likewise.
7596 (sub_shiftsi_compare0
7597 (sub_shiftsi_compare0_scratch
7598 (and_scc): Likewise.
7599 (cond_move): Likewise.
7600 (if_plus_move): Likewise.
7601 (if_move_plus): Likewise.
7602 (if_move_not): Likewise.
7603 (if_not_move): Likewise.
7604 (if_shift_move): Likewise.
7605 (if_move_shift): Likewise.
7606 (if_shift_shift): Likewise.
7607 (if_not_arith): Likewise.
7608 (if_arith_not): Likewise.
7609 (cond_move_not): Likewise.
7610 (thumb1_ashlsi3): Set type attribute.
7611 (thumb1_ashrsi3): Likewise.
7612 (thumb1_lshrsi3): Likewise.
7613 (thumb1_rotrsi3): Likewise.
7614 (shiftsi3_compare0_scratch): Likewise.
7615 * config/arm/neon.md (neon_mov<mode>): Update for attribute changes.
7616 (neon_mov<mode>): Likewise.
371e77e3
UB
7617 * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si): Update for
7618 attribute changes.
006bd006
SN
7619 (thumb2_movsi_insn): Likewise.
7620 (thumb2_cmpsi_neg_shiftsi): Likewise.
7621 (thumb2_extendqisi_v6): Likewise.
7622 (thumb2_zero_extendhisi2_v6): Likewise.
7623 (thumb2_zero_extendqisi2_v6): Likewise.
7624 (thumb2_shiftsi3_short): Likewise.
7625 (thumb2_addsi3_compare0_scratch): Likewise.
7626 (orsi_not_shiftsi_si): Likewise.
7627 * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
7628 * config/arm/arm-fixed.md (arm_ssatsihi_shift): Update for attribute
7629 changes.
7630 * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
7631 (1020alu_shift_op): Likewise.
7632 (1020alu_shift_reg_op): Likewise.
7633 * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
7634 (alu_shift_op): Likewise.
7635 (alu_shift_reg_op): Likewise.
7636 * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
7637 (11_alu_shift_op): Likewise.
7638 (11_alu_shift_reg_op): Likewise.
7639 * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
7640 (9_alu_shift_reg_op): Likewise.
371e77e3
UB
7641 * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute
7642 changes.
006bd006
SN
7643 (cortex_a15_alu_shift): Likewise.
7644 (cortex_a15_alu_shift_reg): Likewise.
371e77e3
UB
7645 * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute
7646 changes.
006bd006
SN
7647 (cortex_a5_alu_shift): Likewise.
7648 * config/arm/cortex-a53.md (cortex_a53_alu) : Update for attribute
7649 changes.
7650 (cortex_a53_alu_shift): Likewise.
7651 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
7652 changes.
7653 (cortex_a7_alu_reg): Likewise.
7654 (cortex_a7_alu_shift): Likewise.
371e77e3
UB
7655 * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute
7656 changes.
006bd006
SN
7657 (cortex_a8_alu_shift): Likewise.
7658 (cortex_a8_alu_shift_reg): Likewise.
7659 (cortex_a8_mov): Likewise.
7660 * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
7661 (cortex_a9_dp_shift): Likewise.
371e77e3
UB
7662 * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute
7663 changes.
7664 * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute
7665 changes.
006bd006
SN
7666 (cortex_r4_mov): Likewise.
7667 (cortex_r4_alu_shift): Likewise.
7668 (cortex_r4_alu_shift_reg): Likewise.
7669 * config/arm/fa526.md (526_alu_op): Update for attribute changes.
7670 (526_alu_shift_op): Likewise.
7671 * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
7672 * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
7673 (626te_alu_shift_op): Likewise.
7674 * config/arm/fa726te.md (726te_shift_op): Update for attribute changes.
7675 (726te_alu_op): Likewise.
7676 (726te_alu_shift_op): Likewise.
7677 (726te_alu_shift_reg_op): Likewise.
7678 * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
7679 (mp626_alu_shift_op): Likewise.
7680 * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute changes.
7681 (pj4_alu_e1_conds): Likewise.
7682 (pj4_alu): Likewise.
7683 (pj4_alu_conds): Likewise.
7684 (pj4_shift): Likewise.
7685 (pj4_shift_conds): Likewise.
7686 (pj4_alu_shift): Likewise.
7687 (pj4_alu_shift_conds): Likewise.
371e77e3
UB
7688 * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute
7689 changes.
006bd006
SN
7690 (cortexa7_older_only): Likewise.
7691 (cortexa7_younger): Likewise.
7692
651df1b2
DM
76932013-07-18 David Malcolm <dmalcolm@redhat.com>
7694
7695 * ipa-pure-const.c (generate_summary): Rename to...
7696 (pure_const_generate_summary): ... this.
7697
ea717bd7
IS
76982013-07-17 Iain Sandoe <iain@codesourcery.com>
7699
7700 * config/rs6000/darwin.h (REGISTER_NAMES): Add HTM registers.
7701
a1259a13
YR
77022013-07-17 Yvan Roux <yvan.roux@linaro.org>
7703
7704 PR target/57909
7705 * config/arm/arm.c (gen_movmem_ldrd_strd): Fix unaligned load/store
7706 usage in HI mode.
7707
167f68ed
AK
77082013-07-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7709
7710 * config/s390/s390.c: (s390_expand_builtin): Allow -mhtm to be
7711 enabled without -march=zEC12.
7712 * config/s390/s390.h (TARGET_HTM): Do not require EC12 machine
7713 flags to be set.
7714
f900a982
MR
77152013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
7716
7717 * config/mips/mips.h (ISA_HAS_FP4): Correct formatting.
7718 (ISA_HAS_FP_MADD4_MSUB4): Also enable for ISA_MIPS32R2.
7719 (ISA_HAS_NMADD4_NMSUB4): Remove the MODE argument; rewrite in
7720 terms of ISA_HAS_FP4, and also enable for ISA_MIPS32R2.
7721 (ISA_HAS_NMADD3_NMSUB3): Remove the MODE argument.
7722 * config/mips/mips.c (mips_rtx_costs) <PLUS>: Check for
7723 ISA_HAS_FP_MADD4_MSUB4 || ISA_HAS_FP_MADD3_MSUB3 rather than
7724 ISA_HAS_FP4.
7725 <MINUS, NEG>: Update according to changes to ISA_HAS_NMADD4_NMSUB4
7726 and ISA_HAS_NMADD3_NMSUB3.
7727 * config/mips/mips.md (nmadd4<mode>, nmadd3<mode>): Likewise.
7728 (nmadd4<mode>_fastmath, nmadd3<mode>_fastmath): Likewise.
7729 (nmsub4<mode>, nmsub3<mode>): Likewise.
7730 (nmsub4<mode>_fastmath, nmsub3<mode>_fastmath): Likewise.
7731
d4ed27eb
MR
77322013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
7733
7734 * config/mips/mips.h (ISA_HAS_NMADD4_NMSUB4): Remove
7735 TARGET_MIPS5400 checking.
7736
7a5add18
PB
77372013-07-16 Jakub Jelinek <jakub@redhat.com>
7738 Peter Bergner <bergner@vnet.ibm.com>
7739
7740 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTERS): Mention HTM
7741 registers in the comment.
7742 (DWARF_FRAME_REGISTERS): Subtract also the 3 HTM registers.
7743 (DWARF_REG_TO_UNWIND_COLUMN): Use DWARF_FRAME_REGISTERS
7744 rather than FIRST_PSEUDO_REGISTERS.
7745
77462013-07-16 Peter Bergner <bergner@vnet.ibm.com>
c694dc01
PB
7747
7748 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
7749 enable extra ISA flags with TARGET_HTM.
7750
d2ab0929
MR
77512013-07-16 Maciej W. Rozycki <macro@codesourcery.com>
7752
7753 * config/mips/mips.h (ISA_HAS_MULS, ISA_HAS_MSAC, ISA_HAS_MACC):
7754 Fix comment typos.
7755
839c74bc
CH
77562013-07-15 Cong Hou <congh@google.com>
7757
7758 * tree-vect-data-refs.c (dr_group_sort_cmp): Do not use hash function
7759 in compare function for sorting.
7760
7a5add18 77612013-07-15 Peter Bergner <bergner@vnet.ibm.com>
0258b6e4
PB
7762
7763 * config.gcc (powerpc*-*-*): Install htmintrin.h and htmxlintrin.h.
7764 * config/rs6000/t-rs6000 (MD_INCLUDES): Add htm.md.
7765 * config/rs6000/rs6000.opt: Add -mhtm option.
7766 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_HTM.
7767 (ISA_2_7_MASKS_SERVER): Add OPTION_MASK_HTM.
7768 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
7769 __HTM__ if the HTM instructions are available.
7770 * config/rs6000/predicates.md (u3bit_cint_operand, u10bit_cint_operand,
7771 htm_spr_reg_operand): New define_predicates.
7772 * config/rs6000/rs6000.md (define_attr "type"): Add htm.
7773 (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO): New define_constants.
7774 Include htm.md.
7775 * config/rs6000/rs6000-builtin.def (BU_HTM_0, BU_HTM_1, BU_HTM_2,
7776 BU_HTM_3, BU_HTM_SPR0, BU_HTM_SPR1): Add support macros for defining
7777 HTM builtin functions.
7778 * config/rs6000/rs6000.c (RS6000_BUILTIN_H): New macro.
7779 (rs6000_reg_names, alt_reg_names): Add HTM SPR register names.
7780 (rs6000_init_hard_regno_mode_ok): Add support for HTM instructions.
7781 (rs6000_builtin_mask_calculate): Likewise.
7782 (rs6000_option_override_internal): Likewise.
7783 (bdesc_htm): Add new HTM builtin support.
7784 (htm_spr_num): New function.
7785 (htm_spr_regno): Likewise.
7786 (rs6000_htm_spr_icode): Likewise.
7787 (htm_expand_builtin): Likewise.
7788 (htm_init_builtins): Likewise.
7789 (rs6000_expand_builtin): Add support for HTM builtin functions.
7790 (rs6000_init_builtins): Likewise.
371e77e3
UB
7791 (rs6000_invalid_builtin, rs6000_opt_mask): Add support for -mhtm
7792 option.
0258b6e4
PB
7793 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mhtm.
7794 (TARGET_HTM, MASK_HTM): Define macros.
7795 (FIRST_PSEUDO_REGISTER): Adjust for new HTM SPR registers.
7796 (FIXED_REGISTERS): Likewise.
7797 (CALL_USED_REGISTERS): Likewise.
7798 (CALL_REALLY_USED_REGISTERS): Likewise.
7799 (REG_ALLOC_ORDER): Likewise.
7800 (enum reg_class): Likewise.
7801 (REG_CLASS_NAMES): Likewise.
7802 (REG_CLASS_CONTENTS): Likewise.
7803 (REGISTER_NAMES): Likewise.
7804 (ADDITIONAL_REGISTER_NAMES): Likewise.
7805 (RS6000_BTC_SPR, RS6000_BTC_VOID, RS6000_BTC_32BIT, RS6000_BTC_64BIT,
7806 RS6000_BTC_MISC_MASK, RS6000_BTM_HTM): New macros.
7807 (RS6000_BTM_COMMON): Add RS6000_BTM_HTM.
7808 * config/rs6000/htm.md: New file.
7809 * config/rs6000/htmintrin.h: New file.
7810 * config/rs6000/htmxlintrin.h: New file.
7811
87dd8ab0
MS
78122013-07-15 Marcus Shawcroft <marcus.shawcroft@arm.com>
7813
7814 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
7815 Define SYMBOL_TINY_GOT, update comment.
7816 * config/aarch64/aarch64.c
7817 (aarch64_load_symref_appropriately): Handle SYMBOL_TINY_GOT.
7818 (aarch64_expand_mov_immediate): Likewise.
7819 (aarch64_print_operand): Likewise.
7820 (aarch64_classify_symbol): Likewise.
7821 * config/aarch64/aarch64.md (UNSPEC_GOTTINYPIC): Define.
7822 (ldr_got_tiny): Define.
7823
52d676b6
TG
78242013-07-13 Tobias Grosser <tobias@grosser.es>
7825
7826 PR tree-optimization/54094
7827 * graphite-clast-to-gimple.c (translate_clast_for_loop): Derive the
7828 scheduling dimension for the parallelism check from the polyhedral
7829 information in the AST.
7830 * graphite-dependences.c (carries_deps): Do not assume the schedule is
7831 in 2D + 1 form.
7832
286e8fc1
JM
78332013-07-13 Jason Merrill <jason@redhat.com>
7834
7835 * print-tree.c (debug_vec_tree): Use debug_raw.
7836 (debug_raw (vec<tree, va_gc> &)): New.
7837 (debug_raw (vec<tree, va_gc> *)): New.
7838 * tree.h: Declare them.
7839
e43257e8
BC
78402013-07-13 Bin Cheng <bin.cheng@arm.com>
7841
7842 * ifcvt.c (ifcvt_after_combine): New static variable.
7843 (cheap_bb_rtx_cost_p): Set scale to REG_BR_PROB_BASE when optimizing
7844 for size.
7845 (if_convert): New parameter after_combine. Set ifcvt_after_combine.
7846 (rest_of_handle_if_conversion, rest_of_handle_if_after_combine,
7847 rest_of_handle_if_after_reload): Pass new argument for if_convert.
7848
da582d46
MR
78492013-07-12 Maciej W. Rozycki <macro@codesourcery.com>
7850
7851 * config/mips/mips.c (mips_expand_call): Remove empty statement.
7852
18b0ea8f
MM
78532013-07-12 Michael Matz <matz@suse.de>
7854
7855 PR middle-end/55771
7856 * convert.c (convert_to_real): Reject non-float inner types.
7857
e4f0f84d
TB
78582013-07-12 Tejas Belagod <tejas.belagod@arm.com>
7859
7860 * config/aarch64/aarch64-protos.h
7861 (aarch64_simd_immediate_valid_for_move): Remove.
7862 * config/aarch64/aarch64.c (simd_immediate_info): New member.
7863 (aarch64_simd_valid_immediate): Recognize idioms for shifting ones
7864 cases.
7865 (aarch64_output_simd_mov_immediate): Print the correct shift specifier.
7866
76500022
SE
78672013-07-11 Steve Ellcey <sellcey@mips.com>
7868
7869 * config/mips/mips.c (mips_conditional_register_usage): Do not
7870 use t[0-7] registers in MIPS16 mode when optimizing for size.
7871
78039734
ST
78722013-07-11 Sriraman Tallam <tmsriram@google.com>
7873
7874 * config/i386/i386.c (dispatch_function_versions): Fix array
7875 indexing of function_version_info to match actual_versions.
7876
7b24b675
TJ
78772013-07-11 Teresa Johnson <tejohnson@google.com>
7878
7879 * vec.h (struct va_gc): Move release out-of-line.
7880 (va_gc::release): Call ggc_free on released vec.
7881
85d4cbb8
UW
78822013-07-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
7883
7884 * config/rs6000/rs6000.md (""*tls_gd_low<TLSmode:tls_abi_suffix>"):
7885 Require GOT register as additional operand in UNSPEC.
7886 ("*tls_ld_low<TLSmode:tls_abi_suffix>"): Likewise.
7887 ("*tls_got_dtprel_low<TLSmode:tls_abi_suffix>"): Likewise.
7888 ("*tls_got_tprel_low<TLSmode:tls_abi_suffix>"): Likewise.
7889 ("*tls_gd<TLSmode:tls_abi_suffix>"): Update splitter.
7890 ("*tls_ld<TLSmode:tls_abi_suffix>"): Likewise.
7891 ("tls_got_dtprel_<TLSmode:tls_abi_suffix>"): Likewise.
7892 ("tls_got_tprel_<TLSmode:tls_abi_suffix>"): Likewise.
7893
52b3f9e2
GJL
78942013-07-11 Georg-Johann Lay <avr@gjlay.de>
7895
7896 PR target/57631
7897 * config/avr/avr.c (avr_set_current_function): Sanity-check signal
7898 name seen by assembler/linker rather if available.
7899
3f3e266e
AS
79002013-07-11 Andreas Schwab <schwab@suse.de>
7901
7902 * config/aarch64/aarch64-linux.h (CPP_SPEC): Define.
7903
21231ca6
VM
79042013-07-10 Vladimir Makarov <vmakarov@redhat.com>
7905
371e77e3 7906 * lra-constraints.c (curr_insn_transform): Switch off optional reloads.
21231ca6 7907
d331d374
JM
79082013-07-10 Joseph Myers <joseph@codesourcery.com>
7909
673c2f63
JM
7910 * doc/tm.texi.in: Move hook documentation to ....
7911 * target.def: ... here.
7912
d331d374
JM
7913 * doc/tm.texi.in (TARGET_CANONICALIZE_COMPARISON): Remove stray
7914 text on @hook line.
7915 * doc/tm.texi: Regenerate.
7916
dfeadaa0
PC
79172013-07-10 Paolo Carlini <paolo.carlini@oracle.com>
7918
7919 PR c++/57869
7920 * doc/invoke.texi: Document -Wconditionally-supported.
7921
bb6f2bac
GJL
79222013-07-10 Georg-Johann Lay <avr@gjlay.de>
7923
7924 PR target/57844
7925 * config/avr/avr.c (avr_prologue_setup_frame): Trunk -size to mode
7926 of my_fp.
7927
5219b232
GJL
79282013-07-10 Georg-Johann Lay <avr@gjlay.de>
7929
7930 PR target/57506
7931 * config/avr/avr-mcus.def (atmega16hva, atmega16hva2, atmega16hvb)
7932 (atmega16m1, atmega16u4, atmega32a, atmega32c1, atmega32hvb)
7933 (atmega32m1, atmega32u4, atmega32u6, atmega64c1, atmega64m1):
7934 Remove duplicate devices.
7935 * config/avr/gen-avr-mmcu-texi.c (print_mcus): Fail on duplicate MCUs.
7936 * config/avr/t-multilib: Regenerate.
7937 * config/avr/avr-tables.opt: Regenerate.
7938 * doc/avr-mmcu.texi: Regenerate.
7939
283045c0
GJL
79402013-07-10 Georg-Johann Lay <avr@gjlay.de>
7941
7942 PR target/56987
7943 * config/avr/avr.opt (Waddr-space-convert): Fix typo.
7944
ceb2d59f 79452013-07-10 Graham Stott <graham.stott@btinternet.com>
6a2fa4b2 7946
ceb2d59f
GS
7947 * config/mips/mips.c (mips_rtx_costs): Very slightly increase
7948 the cost of MULT when optimizing for size.
7949
055e0a99
JBG
79502013-07-10 Jan-Benedict Glaw <jbglaw@lug-owl.de>
7951
7952 * config/cr16/cr16-protos.h: Don't include target.h.
7953
ef43e868
JM
79542013-07-09 Joseph Myers <joseph@codesourcery.com>
7955
7956 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Only
7957 adjust register size for TDmode and TFmode for VSX registers.
7958
4a283fdf
KT
79592013-07-08 Kai Tietz <ktietz@redhat.com>
7960
7961 PR target/56892
7962 * config/i386/i386.c (TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): Define as
7963 hook_bool_const_tree_true.
7964
2cf4c39e
AK
79652013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7966
7967 * config/s390/s390.c: Replace F*_REGNUM with FPR*_REGNUM.
7968 * config/s390/s390.h: Remove F*_REGNUM macro definitions.
7969 * config/s390/s390.md: Define FPR*_REGNUM constants.
7970 Fix FPR2_REGNUM constant (18 -> 17).
7971 ("*trunc<BFP:mode><DFP_ALL:mode>2")
7972 ("*trunc<DFP_ALL:mode><BFP:mode>2")
7973 ("trunc<BFP:mode><DFP_ALL:mode>2")
7974 ("trunc<DFP_ALL:mode><BFP:mode>2")
7975 ("*extend<BFP:mode><DFP_ALL:mode>2")
7976 ("*extend<DFP_ALL:mode><BFP:mode>2")
7977 ("extend<BFP:mode><DFP_ALL:mode>2")
7978 ("extend<DFP_ALL:mode><BFP:mode>2"): Replace FPR2_REGNUM with
7979 FPR4_REGNUM.
7980
e6ac0270 79812013-07-08 Graham Stott <graham.stott@btinternet.com>
e6ac0270 7982
6a2fa4b2 7983 * Makefile.in: (c-family-warn): Define to $(STRICT_WARN)
64a92610 7984
b89b22fc
AK
79852013-07-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
7986
7987 * config/s390/s390.c: Rename cfun_set_fpr_bit to cfun_set_fpr_save
7988 and cfun_fpr_bit_p to cfun_fpr_save_p.
7989 (s390_frame_area, s390_register_info, s390_frame_info)
7990 (s390_emit_prologue, s390_emit_epilogue)
7991 (s390_conditional_register_usage): Use the *_REGNUM macros for FPR
7992 register numbers.
7993 * config/s390/s390.h: Define *_REGNUM macros for floating point
7994 register numbers.
7995
07f398aa
EB
79962013-07-08 Eric Botcazou <ebotcazou@adacore.com>
7997
7998 * Makefile.in (tree-ssa-reassoc.o): Add dependency on $(PARAMS_H).
7999
75fefa91
PCC
80002013-07-08 Po-Chun Chang <pchang9@cs.wisc.edu>
8001
8002 PR rtl-optimization/57786
8003 * combine.c (distribute_notes) <case REG_DEAD>: Change all_used to bool
8004 and break out of the loop when it is set to false.
8005
046f1eee
JJ
80062013-07-08 Jakub Jelinek <jakub@redhat.com>
8007
8140c065
JJ
8008 PR target/57819
8009 * simplify-rtx.c (simplify_unary_operation_1) <case ZERO_EXTEND>:
8010 Simplify (zero_extend:SI (subreg:QI (and:SI (reg:SI)
8011 (const_int 63)) 0)).
8012 * combine.c (make_extraction): Create ZERO_EXTEND or SIGN_EXTEND
8013 using simplify_gen_unary instead of gen_rtx_*_EXTEND.
8014 * config/i386/i386.md (*jcc_bt<mode>_1): New define_insn_and_split.
8015
046f1eee
JJ
8016 PR rtl-optimization/57829
8017 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Ensure that
8018 mask bits outside of mode are just sign-extension from mode to HWI.
8019
930b700b
MZ
80202013-07-08 Michael Zolotukhin <michael.v.zolotukhin@gmail.com>
8021
8022 * config/i386/i386-opts.h (enum stringop_alg): Add vector_loop.
8023 * config/i386/i386.c (expand_set_or_movmem_via_loop): Use
8024 adjust_address instead of change_address to keep info about alignment.
8025 (emit_strmov): Remove.
8026 (emit_memmov): New function.
8027 (expand_movmem_epilogue): Refactor to properly handle bigger sizes.
8028 (expand_movmem_epilogue): Likewise and return updated rtx for
8029 destination.
8030 (expand_constant_movmem_prologue): Likewise and return updated rtx for
8031 destination and source.
8032 (decide_alignment): Refactor, handle vector_loop.
8033 (ix86_expand_movmem): Likewise.
8034 (ix86_expand_setmem): Likewise.
8035 * config/i386/i386.opt (Enum): Add vector_loop to option stringop_alg.
8036
7b9d1bd8
UB
80372013-07-07 Uros Bizjak <ubizjak@gmail.com>
8038
8039 * config/i386/driver-i386.c (host_detect_local_cpu): Do not check
8040 signature_TM2_ebx, it interferes with signature_INTEL_ebx.
8041
eabb5f48
UB
80422013-07-06 Uros Bizjak <ubizjak@gmail.com>
8043
8044 * config/i386/sse.md (sse_movlhps): Change alternative 3
8045 of operand 2 to "m".
8046
80472013-07-06 Uros Bizjak <ubizjak@gmail.com>
8048
8049 PR target/57807
8050 * config/i386/sse.md (iptr): New mode attribute.
8051 (sse2_movq128): Add pointer size overrides for Intel asm dialect.
8052 (<sse>_vm<plusminus_insn><mode>3): Ditto.
8053 (<sse>_vmmul<mode>3): Ditto.
8054 (<sse>_vmdiv<mode>3): Ditto.
8055 (sse_vmrcpv4sf2): Ditto.
8056 (<sse>_vmsqrt<mode>2): Ditto.
8057 (sse_vmrsqrtv4sf2): Ditto.
8058 (<sse>_vm<code><mode>3): Ditto.
8059 (avx_vmcmp<mode>3): Ditto.
8060 (<sse>_vmmaskcmp<mode>3): Ditto.
8061 (<sse>_comi): Ditto.
8062 (<sse>_ucomi): Ditto.
8063 (*xop_vmfrcz_<mode>): Ditto.
8064 (*fmai_fmadd_<mode>): Ditto.
8065 (*fmai_fmsub_<mode>): Ditto.
8066 (*fmai_fnmadd_<mode>): Ditto.
8067 (*fmai_fnmsub_<mode>): Ditto.
8068 (*fma4i_vmfmadd_<mode>): Ditto.
8069 (*fma4i_vmfmsub_<mode>): Ditto.
8070 (*fma4i_vmfnmadd_<mode>): Ditto.
8071 (*fma4i_vmfnmsub_<mode>): Ditto.
8072 (*xop_vmfrcz_<mode>): Ditto.
8073 (sse_cvtps2pi): Ditto.
8074 (sse_cvttps2pi): Ditto.
8075 (sse_cvtss2si): Ditto.
8076 (sse_cvtss2si_2): Ditto.
8077 (sse_cvtss2siq_2): Ditto.
8078 (sse_cvttss2si): Ditto.
8079 (sse_cvttss2siq): Ditto.
8080 (sse_cvtsd2si): Ditto.
8081 (sse_cvtsd2si_2): Ditto.
8082 (sse_cvtsd2siq_2): Ditto.
8083 (sse_cvttsd2si): Ditto.
8084 (sse_cvttsd2siq): Ditto.
8085 (sse_cvtsd2ss): Ditto.
8086 (sse_cvtss2sd): Ditto.
8087 (avx2_pbroadcast<mode>): Ditto.
8088 (avx2_pbroadcast<mode>_1): Ditto.
8089 (*avx_vperm_broadcast_v4sf): Ditto.
8090
8091 (sse_movhlps): Ditto for movlp[sd]/movhp[sd] alternatives.
8092 (sse_movlhps): Ditto.
8093 (sse_storehps): Ditto.
8094 (sse_loadhps): Ditto.
8095 (sse_storelps): Ditto.
8096 (sse_loadlps): Ditto.
8097 (*vec_concatv4sf): Ditto.
8098 (*vec_interleave_highv2df): Ditto.
8099 (*vec_interleave_lowv2df): Ditto.
8100 (*vec_extractv2df_1_sse): Ditto.
8101 (*vec_extractv2df_0_sse): Ditto.
8102 (sse2_storelpd): Ditto.
8103 (sse2_loadlpd): Ditto.
8104 (sse2_movsd): Ditto.
8105 (*vec_concatv4si): Ditto.
8106 (vec_concatv2di): Ditto.
8107
8108 * config/i386/mmx.md (mmx_punpcklbw): Add pointer size overrides
8109 for Intel asm dialect.
8110 (mmx_punpcklwd): Ditto.
8111 (mmx_punpckldq): Ditto.
8112
8113 * config/i386/i386.c (ix86_print_operand) ['H']: Output 'qword ptr'
8114 for intel assembler dialect.
8115
1f6eac90
JJ
81162013-07-06 Jakub Jelinek <jakub@redhat.com>
8117
8118 PR target/29776
8119 * fold-const.c (tree_call_nonnegative_warnv_p): Return true
8120 for BUILT_IN_C{LZ,LRSB}*.
8121 * tree.h (CASE_INT_FN): Add FN##IMAX case.
8122 * tree-vrp.c (extract_range_basic): Handle
8123 BUILT_IN_{FFS,PARITY,POPCOUNT,C{LZ,TZ,LRSB}}*. For
8124 BUILT_IN_CONSTANT_P if argument isn't (D) of PARM_DECL,
8125 fall thru to code calling set_value*.
8126 * builtins.c (expand_builtin): Remove *IMAX cases.
8127 (fold_builtin_bitop): For BUILT_IN_CLRSB* return NULL_TREE
8128 if width is bigger than 2*HWI.
8129
2b778c9d
VM
81302013-07-05 Vladimir Makarov <vmakarov@redhat.com>
8131
8132 PR rtl-optimization/55342
8133 * lra-int.h (lra_subreg_reload_pseudos): New.
8134 * lra.c: Add undoing optional reloads to the block diagram.
8135 (lra_subreg_reload_pseudos): New.
8136 (lra_optional_reload_pseudos): Change comments.
8137 (lra): Init and clear lra_subreg_reload_pseudos. Clear
8138 lra_optional_reload_pseudos after undo transformations.
8139 * lra-assigns.c (pseudo_prefix_title): New.
8140 (lra_setup_reg_renumber): Use it.
8141 (spill_for): Ditto. Check subreg reload pseudos too.
8142 (assign_by_spills): Consider subreg reload pseudos too.
8143 * lra-constraints.c (simplify_operand_subreg): Use
8144 lra_subreg_reload_pseudos instead of lra_optional_reload_pseudos.
8145 (curr_insn_transform): Recognize and do optional reloads.
8146 (undo_optional_reloads): New.
8147 (lra_undo_inheritance): Call undo_optional_reloads.
8148
207156e4
TQ
81492013-07-05 Thomas Quinot <quinot@adacore.com>
8150
8151 * tree-complex.c (expand_complex_operations_1): Fix typo.
8152
8990e73a
TB
81532013-07-04 Tejas Belagod <tejas.belagod@arm.com>
8154
8155 * config/aarch64/aarch64-protos.h (cpu_vector_cost): New.
8156 (tune_params): New member 'const vec_costs'.
8157 * config/aarch64/aarch64.c (generic_vector_cost): New.
8158 (generic_tunings): New member 'generic_vector_cost'.
8159 (aarch64_builtin_vectorization_cost): New.
8160 (aarch64_add_stmt_cost): New.
8161 (TARGET_VECTORIZE_ADD_STMT_COST): New.
8162 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
8163
f7bc421d
JJ
81642013-07-03 Jakub Jelinek <jakub@redhat.com>
8165
8166 PR target/57777
8167 * config/i386/predicates.md (vsib_address_operand): Disallow
8168 SYMBOL_REF or LABEL_REF in parts.disp if TARGET_64BIT && flag_pic.
8169
e90d1568
HPN
81702013-07-03 Hans-Peter Nilsson <hp@bitrange.com>
8171
8172 PR middle-end/55030
8173 * stmt.c (expand_nl_goto_receiver): Remove almost-copy of
8174 expand_builtin_setjmp_receiver.
8175 (expand_label): Adjust, call expand_builtin_setjmp_receiver
8176 with NULL for the label parameter.
8177 * builtins.c (expand_builtin_setjmp_receiver): Don't clobber
8178 the frame-pointer. Adjust comments.
8179 [HAVE_builtin_setjmp_receiver]: Emit builtin_setjmp_receiver
8180 only if LABEL is non-NULL.
8181
cbd7413b
YZ
81822013-07-03 Yufeng Zhang <yufeng.zhang@arm.com>
8183
8184 * config/aarch64/aarch64.h (enum arm_abi_type): Remove.
8185 (ARM_ABI_AAPCS64): Ditto.
8186 (arm_abi): Ditto.
8187 (ARM_DEFAULT_ABI): Ditto.
8188
dec11868
JG
81892013-07-03 James Greenhalgh <james.greenhalgh@arm.com>
8190
8191 * config/aarch64/aarch64-builtins.c
8192 (aarch64_simd_expand_builtin): Handle AARCH64_SIMD_STORE1.
8193 * config/aarch64/aarch64-simd-builtins.def (ld1): New.
8194 (st1): Likewise.
8195 * config/aarch64/aarch64-simd.md
8196 (aarch64_ld1<VALL:mode>): New.
8197 (aarch64_st1<VALL:mode>): Likewise.
8198 * config/aarch64/arm_neon.h
8199 (vld1<q>_<fpsu><8, 16, 32, 64>): Convert to RTL builtins.
8200
786fb9b6
ST
82012013-07-02 Sriraman Tallam <tmsriram@google.com>
8202
0ba6aff3
UB
8203 * config/i386/i386.c (gate_insert_vzeroupper): Check if
8204 target ISA is AVX.
786fb9b6
ST
8205 (ix86_option_override_internal):Turn on all -mavx target flags by
8206 default as they are dependent on AVX anyway.
8207
4b043553
CC
82082013-07-02 Cary Coutant <ccoutant@google.com>
8209
8210 * dwarf2out.c (loc_checksum): Call hash_loc_operands for a
8211 deterministic hash.
8212 (loc_checksum_ordered): Likewise.
8213 (hash_loc_operands): Remove inline keyword.
8214
c4e87a13
JJ
82152013-07-02 Jakub Jelinek <jakub@redhat.com>
8216
8217 PR tree-optimization/57741
8218 * tree-vect-loop.c (vect_is_simple_iv_evolution): Disallow
8219 non-INTEGRAL_TYPE_P non-SCALAR_FLOAT_TYPE_P SSA_NAME step_exprs,
8220 or SCALAR_FLOAT_TYPE_P SSA_NAMEs if !flag_associative_math.
8221 Allow REAL_CST step_exprs if flag_associative_math.
8222 (get_initial_def_for_induction): Handle SCALAR_FLOAT_TYPE_P step_expr.
8223
26366d28
IB
82242013-07-02 Ian Bolton <ian.bolton@arm.com>
8225
0ba6aff3 8226 * config/aarch64/aarch64-simd.md (absdi2): Support abs for DI mode.
26366d28 8227
2879bb2b
IB
82282013-07-02 Ian Bolton <ian.bolton@arm.com>
8229
8230 * config/aarch64/aarch64.md (*extr_insv_reg<mode>): New pattern.
8231
afc5e8a6
KT
82322013-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8233
8234 * config/arm/arm.md (arm_andsi3_insn): Add alternatives for 16-bit
8235 encoding.
8236 (iorsi3_insn): Likewise.
8237 (arm_xorsi3): Likewise.
8238
31f8442b
SN
82392013-07-01 Sofiane Naci <sofiane.naci@arm.com>
8240
8241 * arm.md (attribute "wtype"): Delete. Move attribute values from here
8242 to ...
8243 (attribute "type"): ... here, and prefix with "wmmx_".
8244 (attribute "core_cycles"): Update for attribute changes.
8245 * iwmmxt.md (tbcstv8qi): Update for attribute changes.
8246 (tbcstv4hi): Likewise.
8247 (tbcstv2si): Likewise.
8248 (iwmmxt_iordi3): Likewise.
8249 (iwmmxt_xordi3): Likewise.
8250 (iwmmxt_anddi3): Likewise.
8251 (iwmmxt_nanddi3): Likewise.
8252 (iwmmxt_arm_movdi): Likewise.
8253 (iwmmxt_movsi_insn): Likewise.
8254 (mov<mode>_internal): Likewise.
8255 (and<mode>3_iwmmxt): Likewise.
8256 (ior<mode>3_iwmmxt): Likewise.
8257 (xor<mode>3_iwmmxt): Likewise.
8258 (add<mode>3_iwmmxt): Likewise.
8259 (ssaddv8qi3): Likewise.
8260 (ssaddv4hi3): Likewise.
8261 (ssaddv2si3): Likewise.
8262 (usaddv8qi3): Likewise.
8263 (usaddv4hi3): Likewise.
8264 (usaddv2si3): Likewise.
8265 (sub<mode>3_iwmmxt): Likewise.
8266 (sssubv8qi3): Likewise.
8267 (sssubv4hi3): Likewise.
8268 (sssubv2si3): Likewise.
8269 (ussubv8qi3): Likewise.
8270 (ussubv4hi3): Likewise.
8271 (ussubv2si3): Likewise.
8272 (mulv4hi3_iwmmxt): Likewise.
8273 (smulv4hi3_highpart): Likewise.
8274 (umulv4hi3_highpart): Likewise.
8275 (iwmmxt_wmacs): Likewise.
8276 (iwmmxt_wmacsz): Likewise.
8277 (iwmmxt_wmacu): Likewise.
8278 (iwmmxt_wmacuz): Likewise.
8279 (iwmmxt_clrdi): Likewise.
8280 (iwmmxt_clrv8qi): Likewise.
8281 (iwmmxt_clr4hi): Likewise.
8282 (iwmmxt_clr2si): Likewise.
8283 (iwmmxt_uavgrndv8qi3): Likewise.
8284 (iwmmxt_uavgrndv4hi3): Likewise.
8285 (iwmmxt_uavgv8qi3): Likewise.
8286 (iwmmxt_uavgv4hi3): Likewise.
8287 (iwmmxt_tinsrb): Likewise.
8288 (iwmmxt_tinsrh): Likewise.
8289 (iwmmxt_tinsrw): Likewise.
8290 (iwmmxt_textrmub): Likewise.
8291 (iwmmxt_textrmsb): Likewise.
8292 (iwmmxt_textrmuh): Likewise.
8293 (iwmmxt_textrmsh): Likewise.
8294 (iwmmxt_textrmw): Likewise.
8295 (iwmxxt_wshufh): Likewise.
8296 (eqv8qi3): Likewise.
8297 (eqv4hi3): Likewise.
8298 (eqv2si3): Likewise.
8299 (gtuv8qi3): Likewise.
8300 (gtuv4hi3): Likewise.
8301 (gtuv2si3): Likewise.
8302 (gtv8qi3): Likewise.
8303 (gtv4hi3): Likewise.
8304 (gtv2si3): Likewise.
8305 (smax<mode>3_iwmmxt): Likewise.
8306 (umax<mode>3_iwmmxt): Likewise.
8307 (smin<mode>3_iwmmxt): Likewise.
8308 (umin<mode>3_iwmmxt): Likewise.
8309 (iwmmxt_wpackhss): Likewise.
8310 (iwmmxt_wpackwss): Likewise.
8311 (iwmmxt_wpackdss): Likewise.
8312 (iwmmxt_wpackhus): Likewise.
8313 (iwmmxt_wpackwus): Likewise.
8314 (iwmmxt_wpackdus): Likewise.
8315 (iwmmxt_wunpckihb): Likewise.
8316 (iwmmxt_wunpckihh): Likewise.
8317 (iwmmxt_wunpckihw): Likewise.
8318 (iwmmxt_wunpckilb): Likewise.
8319 (iwmmxt_wunpckilh): Likewise.
8320 (iwmmxt_wunpckilw): Likewise.
8321 (iwmmxt_wunpckehub): Likewise.
8322 (iwmmxt_wunpckehuh): Likewise.
8323 (iwmmxt_wunpckehuw): Likewise.
8324 (iwmmxt_wunpckehsb): Likewise.
8325 (iwmmxt_wunpckehsh): Likewise.
8326 (iwmmxt_wunpckehsw): Likewise.
8327 (iwmmxt_wunpckelub): Likewise.
8328 (iwmmxt_wunpckeluh): Likewise.
8329 (iwmmxt_wunpckeluw): Likewise.
8330 (iwmmxt_wunpckelsb): Likewise.
8331 (iwmmxt_wunpckelsh): Likewise.
8332 (iwmmxt_wunpckelsw): Likewise.
8333 (ror<mode>3): Likewise.
8334 (ashr<mode>3_iwmmxt): Likewise.
8335 (lshr<mode>3_iwmmxt): Likewise.
8336 (ashl<mode>3_iwmmxt): Likewise.
8337 (ror<mode>3_di): Likewise.
8338 (ashr<mode>3_di): Likewise.
8339 (lshr<mode>3_di): Likewise.
8340 (ashl<mode>3_di): Likewise.
8341 (iwmmxt_wmadds): Likewise.
8342 (iwmmxt_wmaddu): Likewise.
8343 (iwmmxt_tmia): Likewise.
8344 (iwmmxt_tmiaph): Likewise.
8345 (iwmmxt_tmiabb): Likewise.
8346 (iwmmxt_tmiatb): Likewise.
8347 (iwmmxt_tmiabt): Likewise.
8348 (iwmmxt_tmiatt): Likewise.
8349 (iwmmxt_tmovmskb): Likewise.
8350 (iwmmxt_tmovmskh): Likewise.
8351 (iwmmxt_tmovmskw): Likewise.
8352 (iwmmxt_waccb): Likewise.
8353 (iwmmxt_wacch): Likewise.
8354 (iwmmxt_waccw): Likewise.
8355 (iwmmxt_waligni): Likewise.
8356 (iwmmxt_walignr): Likewise.
8357 (iwmmxt_walignr0): Likewise.
8358 (iwmmxt_walignr1): Likewise.
8359 (iwmmxt_walignr2): Likewise.
8360 (iwmmxt_walignr3): Likewise.
8361 (iwmmxt_wsadb): Likewise.
8362 (iwmmxt_wsadh): Likewise.
8363 (iwmmxt_wsadbz): Likewise.
8364 (iwmmxt_wsadhz): Likewise.
8365 * iwmmxt2.md (iwmmxt_wabs<mode>3): Update for attribute changes.
8366 (iwmmxt_wabsdiffb): Likewise.
8367 (iwmmxt_wabsdiffh): Likewise.
8368 (iwmmxt_wabsdiffw): Likewise.
8369 (iwmmxt_waddsubhx): Likewise
8370 (iwmmxt_wsubaddhx): Likewise.
8371 (addc<mode>3): Likewise.
8372 (iwmmxt_avg4): Likewise.
8373 (iwmmxt_avg4r): Likewise.
8374 (iwmmxt_wmaddsx): Likewise.
8375 (iwmmxt_wmaddux): Likewise.
8376 (iwmmxt_wmaddsn): Likewise.
8377 (iwmmxt_wmaddun): Likewise.
8378 (iwmmxt_wmulwsm): Likewise.
8379 (iwmmxt_wmulwum): Likewise.
8380 (iwmmxt_wmulsmr): Likewise.
8381 (iwmmxt_wmulumr): Likewise.
8382 (iwmmxt_wmulwsmr): Likewise.
8383 (iwmmxt_wmulwumr): Likewise.
8384 (iwmmxt_wmulwl): Likewise.
8385 (iwmmxt_wqmulm): Likewise.
8386 (iwmmxt_wqmulwm): Likewise.
8387 (iwmmxt_wqmulmr): Likewise.
8388 (iwmmxt_wqmulwmr): Likewise.
8389 (iwmmxt_waddbhusm): Likewise.
8390 (iwmmxt_waddbhusl): Likewise.
8391 (iwmmxt_wqmiabb): Likewise.
8392 (iwmmxt_wqmiabt): Likewise.
8393 (iwmmxt_wqmiatb): Likewise.
8394 (iwmmxt_wqmiatt): Likewise.
8395 (iwmmxt_wqmiabbn): Likewise.
8396 (iwmmxt_wqmiabtn): Likewise.
8397 (iwmmxt_wqmiatbn): Likewise.
8398 (iwmmxt_wqmiattn): Likewise.
8399 (iwmmxt_wmiabb): Likewise.
8400 (iwmmxt_wmiabt): Likewise.
8401 (iwmmxt_wmiatb): Likewise.
8402 (iwmmxt_wmiatt): Likewise.
8403 (iwmmxt_wmiabbn): Likewise.
8404 (iwmmxt_wmiabtn): Likewise.
8405 (iwmmxt_wmiatbn): Likewise.
8406 (iwmmxt_wmiattn): Likewise.
8407 (iwmmxt_wmiawbb): Likewise.
8408 (iwmmxt_wmiawbt): Likewise.
8409 (iwmmxt_wmiawtb): Likewise.
8410 (iwmmxt_wmiawtt): Likewise.
8411 (iwmmxt_wmiawbbn): Likewise.
8412 (iwmmxt_wmiawbtn): Likewise.
8413 (iwmmxt_wmiawtbn): Likewise.
8414 (iwmmxt_wmiawttn): Likewise.
8415 (iwmmxt_wmerge): Likewise.
8416 (iwmmxt_tandc<mode>3): Likewise.
8417 (iwmmxt_torc<mode>3): Likewise.
8418 (iwmmxt_torvsc<mode>3): Likewise.
8419 (iwmmxt_textrc<mode>3): Likewise.
8420 * marvell-f-iwmmxt.md (wmmxt_shift): Update for attribute changes.
8421 (wmmxt_pack): Likewise.
8422 (wmmxt_mult_c1): Likewise.
8423 (wmmxt_mult_c2): Likewise.
8424 (wmmxt_alu_c1): Likewise.
8425 (wmmxt_alu_c2): Likewise.
8426 (wmmxt_alu_c3): Likewise.
8427 (wmmxt_transfer_c1): Likewise.
8428 (wmmxt_transfer_c2): Likewise.
8429 (wmmxt_transfer_c3): Likewise.
8430 (marvell_f_iwmmxt_wstr): Likewise.
8431 (marvell_f_iwmmxt_wldr): Likewise.
8432
bdb7bf8a
YZ
84332013-06-29 Yufeng Zhang <yufeng.zhang@arm.com>
8434
0ba6aff3 8435 * config/aarch64/aarch64.c: Remove junk from the beginning of the file.
bdb7bf8a 8436
e6631d38
VM
84372013-06-28 Vladimir Makarov <vmakarov@redhat.com>
8438
8439 Revert:
8440 2013-06-28 Vladimir Makarov <vmakarov@redhat.com>
8441 * lra-constraints.c (need_for_split_p): Check call used hard regs
8442 living through calls.
8443
8444 * lra-constraints.c (inherit_in_ebb): Reset live_hard_regs for
8445 call used regs for call insn.
8446
53c1275b
JJ
84472013-06-28 Jakub Jelinek <jakub@redhat.com>
8448
8449 PR target/57736
0ba6aff3
UB
8450 * config/i386/i386.c (ix86_expand_builtin): If target == NULL and
8451 mode is VOIDmode, don't create a VOIDmode pseudo to copy result into.
53c1275b 8452
1141ed3f
BI
84532013-06-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
8454
8455 * builtins.def: Fixed the function type of CILKPLUS_BUILTIN.
e6631d38 8456
e32e4c4a
VM
84572013-06-28 Vladimir Makarov <vmakarov@redhat.com>
8458
8459 * lra-constraints.c (need_for_split_p): Check call used hard regs
8460 living through calls.
8461
f161bfd3
MM
84622013-06-28 Michael Meissner <meissner@linux.vnet.ibm.com>
8463
8464 PR target/57744
8465 * config/rs6000/rs6000.h (MODES_TIEABLE_P): Do not allow PTImode
8466 to tie with any other modes. Eliminate Altivec vector mode tests,
8467 since these are a subset of ALTIVEC or VSX vector modes. Simplify
8468 code, to return 0 if testing MODE2 for a condition, if we've
8469 already tested MODE1 for the same condition.
8470
7eda14e1
MS
84712013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
8472
8473 * config/aarch64/aarch64.c (aarch64_cannot_force_const_mem): Adjust
8474 layout.
8475
c822f852
MS
84762013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
8477
8478 * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
8479 Update comment w.r.t SYMBOL_TINY_ABSOLUTE.
8480
da4f13a4
MS
84812013-06-28 Marcus Shawcroft <marcus.shawcroft@arm.com>
8482
0ba6aff3
UB
8483 * config/aarch64/aarch64-protos.h (aarch64_classify_symbol_expression):
8484 Define.
da4f13a4
MS
8485 (aarch64_symbolic_constant_p): Remove.
8486 * config/aarch64/aarch64.c (aarch64_classify_symbol_expression): Remove
8487 static. Fix line length and white space.
8488 (aarch64_symbolic_constant_p): Remove.
8489 * config/aarch64/predicates.md (aarch64_valid_symref):
8490 Use aarch64_classify_symbol_expression.
8491
956a95a5
KT
84922013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8493
8494 * config/arm/constraints.md (Ts): New constraint.
8495 * config/arm/arm.md (arm_movqi_insn): Add alternatives for
8496 16-bit encodings.
8497 (compare_scc): Use "Ts" constraint for operand 0.
8498 (ior_scc_scc): Likewise.
8499 (and_scc_scc): Likewise.
8500 (and_scc_scc_nodom): Likewise.
8501 (ior_scc_scc_cmp): Likewise for operand 7.
8502 (and_scc_scc_cmp): Likewise.
8503 * config/arm/thumb2.md (thumb2_movsi_insn):
8504 Add alternatives for 16-bit encodings.
8505 (thumb2_movhi_insn): Likewise.
8506 (thumb2_movsicc_insn): Likewise.
8507 (thumb2_and_scc): Take 'and' outside cond_exec. Use "Ts" constraint.
8508 (thumb2_negscc): Use "Ts" constraint.
8509 Move mvn instruction outside cond_exec block.
8510 * config/arm/vfp.md (thumb2_movsi_vfp): Add alternatives
8511 for 16-bit encodings.
8512
31dfce10
KT
85132013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8514
8515 * config/arm/arm.md (arm_mulsi3_v6): Add alternative for 16-bit
8516 encoding.
8517 (mulsi3addsi_v6): Disable predicable variant for arm_restrict_it.
8518 (mulsi3subsi): Likewise.
8519 (mulsidi3adddi): Likewise.
8520 (mulsidi3_v6): Likewise.
8521 (umulsidi3_v6): Likewise.
8522 (umulsidi3adddi_v6): Likewise.
8523 (smulsi3_highpart_v6): Likewise.
8524 (umulsi3_highpart_v6): Likewise.
8525 (mulhisi3tb): Likewise.
8526 (mulhisi3bt): Likewise.
8527 (mulhisi3tt): Likewise.
8528 (maddhisi4): Likewise.
8529 (maddhisi4tb): Likewise.
8530 (maddhisi4tt): Likewise.
8531 (maddhidi4): Likewise.
8532 (maddhidi4tb): Likewise.
8533 (maddhidi4tt): Likewise.
8534 (zeroextractsi_compare0_scratch): Likewise.
8535 (insv_zero): Likewise.
8536 (insv_t2): Likewise.
8537 (anddi_notzesidi_di): Likewise.
8538 (anddi_notsesidi_di): Likewise.
8539 (andsi_notsi_si): Likewise.
8540 (iordi_zesidi_di): Likewise.
8541 (xordi_zesidi_di): Likewise.
8542 (andsi_iorsi3_notsi): Likewise.
8543 (smax_0): Likewise.
8544 (smax_m1): Likewise.
8545 (smin_0): Likewise.
8546 (not_shiftsi): Likewise.
8547 (unaligned_loadsi): Likewise.
8548 (unaligned_loadhis): Likewise.
8549 (unaligned_loadhiu): Likewise.
8550 (unaligned_storesi): Likewise.
8551 (unaligned_storehi): Likewise.
8552 (extv_reg): Likewise.
8553 (extzv_t2): Likewise.
8554 (divsi3): Likewise.
8555 (udivsi3): Likewise.
8556 (arm_zero_extendhisi2addsi): Likewise.
8557 (arm_zero_extendqisi2addsi): Likewise.
8558 (compareqi_eq0): Likewise.
8559 (arm_extendhisi2_v6): Likewise.
8560 (arm_extendqisi2addsi): Likewise.
8561 (arm_movt): Likewise.
8562 (thumb2_ldrd): Likewise.
8563 (thumb2_ldrd_base): Likewise.
8564 (thumb2_ldrd_base_neg): Likewise.
8565 (thumb2_strd): Likewise.
8566 (thumb2_strd_base): Likewise.
8567 (thumb2_strd_base_neg): Likewise.
8568 (arm_negsi2): Add alternative for 16-bit encoding.
8569 (arm_one_cmplsi2): Likewise.
8570
1572e697
KT
85712013-06-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8572
8573 * config/arm/predicates.md (arm_cond_move_operator): New predicate.
8574 * config/arm/arm.md (movsfcc): Use arm_cond_move_operator predicate.
8575 (movdfcc): Likewise.
8576 * config/arm/vfp.md (*thumb2_movsf_vfp):
8577 Disable predication for arm_restrict_it.
8578 (*thumb2_movsfcc_vfp): Disable for arm_restrict_it.
8579 (*thumb2_movdfcc_vfp): Likewise.
8580 (*abssf2_vfp, *absdf2_vfp, *negsf2_vfp, *negdf2_vfp,*addsf3_vfp,
8581 *adddf3_vfp, *subsf3_vfp, *subdf3_vfpc, *divsf3_vfp,*divdf3_vfp,
8582 *mulsf3_vfp, *muldf3_vfp, *mulsf3negsf_vfp, *muldf3negdf_vfp,
8583 *mulsf3addsf_vfp, *muldf3adddf_vfp, *mulsf3subsf_vfp,
8584 *muldf3subdf_vfp, *mulsf3negsfaddsf_vfp, *fmuldf3negdfadddf_vfp,
8585 *mulsf3negsfsubsf_vfp, *muldf3negdfsubdf_vfp, *fma<SDF:mode>4,
8586 *fmsub<SDF:mode>4, *fnmsub<SDF:mode>4, *fnmadd<SDF:mode>4,
8587 *extendsfdf2_vfp, *truncdfsf2_vfp, *extendhfsf2, *truncsfhf2,
8588 *truncsisf2_vfp, *truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2,
8589 *floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2, floatunssidf2,
8590 *sqrtsf2_vfp, *sqrtdf2_vfp, *cmpsf_vfp, *cmpsf_trap_vfp, *cmpdf_vfp,
8591 *cmpdf_trap_vfp, <vrint_pattern><SDF:mode>2):
8592 Disable predication for arm_restrict_it.
8593
ebf8f0ea
KY
85942013-06-28 Kirill Yukhin <kirill.yukhin@intel.com>
8595
8596 * config/i386/bmiintrin.h (_bextr_u32): New.
8597 (_bextr_u64): Ditto.
8598
a290fcda
RS
85992013-06-27 Richard Sandiford <rdsandiford@googlemail.com>
8600
8601 * config.gcc (mips*-mti-elf*, mips*-sde-elf*, mips64r5900-*-elf*)
8602 (mips64r5900el-*-elf*): Include mips/n32-elf.h.
8603 * config/mips/sde.h (LOCAL_LABEL_PREFIX, NO_DOLLAR_IN_LABEL)
8604 (LONG_DOUBLE_TYPE_SIZE, LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Move to...
8605 * config/mips/n32-elf.h: ...this new file.
8606
ea169996
MG
86072013-06-27 Marc Glisse <marc.glisse@inria.fr>
8608
8609 PR target/57224
8610 * config/i386/i386.c (enum ix86_builtins, bdesc_args): Remove
8611 IX86_BUILTIN_CMPNGTSS and IX86_BUILTIN_CMPNGESS.
8612
12211b99 86132013-06-27 Catherine Moore <clm@codesourcery.com>
8e932114
CM
8614
8615 * config/mips/mips-tables.opt: Regenerate.
8616 * config/mips/mips-cpus.def: Add m14ke and m14kec.
0ba6aff3 8617 * config/mips/mips.h (BASE_DRIVER_SELF_SPECS): m14ke* implies -mdspr2.
8e932114 8618 * doc/invoke.texi: Add -m14kc.
ebf8f0ea 8619
2444244e
JJ
86202013-06-27 Jakub Jelinek <jakub@redhat.com>
8621
cd06d2a2
JJ
8622 PR target/57623
8623 * config/i386/i386.md (bmi_bextr_<mode>): Swap predicates and
8624 constraints of operand 1 and 2.
8625
2444244e
JJ
8626 PR target/57623
8627 * config/i386/i386.md (bmi2_bzhi_<mode>3): Swap AND arguments
8628 to match RTL canonicalization. Swap predicates and
8629 constraints of operand 1 and 2.
8630
2f259720
VM
86312013-06-27 Vladimir Makarov <vmakarov@redhat.com>
8632
0ba6aff3
UB
8633 * lra-constraints.c (inherit_in_ebb): Process static hard regs too.
8634 Process OP_INOUT regs for splitting too.
2f259720 8635
fef4d2b3
JJ
86362013-06-27 Jakub Jelinek <jakub@redhat.com>
8637
8638 * tree-vect-stmts.c (vectorizable_store): Move ptr_incr var
8639 decl before the loop, initialize to NULL.
8640 (vectorizable_load): Initialize ptr_incr to NULL.
8641
79ee9826
MJ
86422013-06-27 Martin Jambor <mjambor@suse.cz>
8643
8644 PR lto/57208
8645 * ipa-ref.h (ipa_maybe_record_reference): Declare.
8646 * ipa-ref.c (ipa_maybe_record_reference): New function.
8647 * cgraphclones.c (cgraph_create_virtual_clone): Use it.
8648 * ipa-cp.c (create_specialized_node): Record potential references from
8649 aggvals.
8650 * Makefile.in (ipa-ref.o): Add IPA_REF_H to dependencies.
8651
e18b4a81
YZ
86522013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
8653
8654 * config/aarch64/aarch64.c (aarch64_force_temporary): Add an extra
8655 parameter 'mode' of type 'enum machine_mode mode'; change to pass
8656 'mode' to force_reg.
8657 (aarch64_add_offset): Update calls to aarch64_force_temporary.
8658 (aarch64_expand_mov_immediate): Likewise.
8659
9c023bf0
YZ
86602013-06-27 Yufeng Zhang <yufeng.zhang@arm.com>
8661
8662 * config/aarch64/aarch64.c (aarch64_add_offset): Change to pass
8663 'mode' to aarch64_plus_immediate and gen_rtx_PLUS.
8664
5a3fe9b6
AK
86652013-06-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
8666
8667 * config/s390/s390.c: Rename UNSPEC_CCU_TO_INT to
8668 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
8669 (struct machine_function): Add tbegin_p.
8670 (s390_canonicalize_comparison): Fold CC mode compares to
8671 conditional jump if possible.
8672 (s390_emit_jump): Return the emitted jump.
8673 (s390_branch_condition_mask, s390_branch_condition_mnemonic):
8674 Handle CCRAWmode compares.
8675 (s390_option_override): Default to -mhtm if available.
8676 (s390_reg_clobbered_rtx): Handle floating point regs as well.
8677 (s390_regs_ever_clobbered): Use s390_regs_ever_clobbered also for
8678 FPRs instead of df_regs_ever_live_p.
8679 (s390_optimize_nonescaping_tx): New function.
8680 (s390_init_frame_layout): Extend clobbered_regs array to cover
8681 FPRs as well.
8682 (s390_emit_prologue): Call s390_optimize_nonescaping_tx.
8683 (s390_expand_tbegin): New function.
8684 (enum s390_builtin): New enum definition.
8685 (code_for_builtin): New array definition.
8686 (s390_init_builtins): New function.
8687 (s390_expand_builtin): New function.
8688 (TARGET_INIT_BUILTINS): Define.
8689 (TARGET_EXPAND_BUILTIN): Define.
0ba6aff3 8690 * common/config/s390/s390-common.c (processor_flags_table): Add PF_TX.
5a3fe9b6
AK
8691 * config/s390/predicates.md (s390_comparison): Handle CCRAWmode.
8692 (s390_alc_comparison): Likewise.
8693 * config/s390/s390-modes.def: Add CCRAWmode.
8694 * config/s390/s390.h (processor_flags): Add PF_TX.
8695 (TARGET_CPU_HTM): Define macro.
8696 (TARGET_HTM): Define macro.
8697 (TARGET_CPU_CPP_BUILTINS): Define __HTM__ for htm.
8698 * config/s390/s390.md: Rename UNSPEC_CCU_TO_INT to
8699 UNSPEC_STRCMPCC_TO_INT and UNSPEC_CCZ_TO_INT to UNSPEC_CC_TO_INT.
8700 (UNSPECV_TBEGIN, UNSPECV_TBEGINC, UNSPECV_TEND, UNSPECV_TABORT)
0ba6aff3 8701 (UNSPECV_ETND, UNSPECV_NTSTG, UNSPECV_PPA): New unspecv enum values.
5a3fe9b6
AK
8702 (TBEGIN_MASK, TBEGINC_MASK): New constants.
8703 ("*cc_to_int"): Move up.
8704 ("*mov<mode>cc", "*cjump_64", "*cjump_31"): Accept integer
8705 constants other than 0.
8706 ("*ccraw_to_int"): New insn and splitter definition.
8707 ("tbegin", "tbegin_nofloat", "tbegin_retry")
8708 ("tbegin_retry_nofloat", "tbeginc", "tend", "tabort")
8709 ("tx_assist"): New expander.
8710 ("tbegin_1", "tbegin_nofloat_1", "*tbeginc_1", "*tend_1")
8711 ("*tabort_1", "etnd", "ntstg", "*ppa"): New insn definition.
8712 * config/s390/s390.opt: Add -mhtm option.
8713 * config/s390/s390-protos.h (s390_emit_jump): Add return type.
8714 * config/s390/htmxlintrin.h: New file.
8715 * config/s390/htmintrin.h: New file.
8716 * config/s390/s390intrin.h: New file.
8717 * doc/extend.texi: Document htm builtins.
8718 * config.gcc: Add the new header files to extra_headers.
8719
9e216629
TS
87202013-06-26 Thomas Schwinge <thomas@codesourcery.com>
8721
8722 * config/i386/gnu.h [TARGET_LIBC_PROVIDES_SSP]
0ba6aff3 8723 (TARGET_CAN_SPLIT_STACK, TARGET_THREAD_SPLIT_STACK_OFFSET): Undefine.
9e216629 8724
fd8c65e7 87252013-06-26 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
8726 Pat Haugen <pthaugen@us.ibm.com>
8727 Peter Bergner <bergner@vnet.ibm.com>
fd8c65e7
MM
8728
8729 * config/rs6000/power8.md: New.
8730 * config/rs6000/rs6000-cpus.def (RS6000_CPU table): Adjust processor
8731 setting for power8 entry.
8732 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power8.md.
8733 * config/rs6000/rs6000.c (is_microcoded_insn, is_cracked_insn): Adjust
8734 test for Power4/Power5 only.
8735 (insn_must_be_first_in_group, insn_must_be_last_in_group): Add Power8
8736 support.
8737 (force_new_group): Adjust comment.
8738 * config/rs6000/rs6000.md: Include power8.md.
8739
b24a2ce5
GY
87402013-06-26 Greta Yorsh <Greta.Yorsh@arm.com>
8741
8742 * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Define macro.
8743 * config/arm/arm-protos.h (arm_max_conditional_execute): New
8744 declaration.
8745 (tune_params): Update comment.
8746 * config/arm/arm.c (arm_cortex_a15_tune): Set max_cond_insns to 2.
8747 (arm_max_conditional_execute): New function.
8748 (thumb2_final_prescan_insn): Use max_insn_skipped and
8749 MAX_INSN_PER_IT_BLOCK to compute maximum instructions in a block.
8750
f6fdeb62
JJ
87512013-06-25 Jakub Jelinek <jakub@redhat.com>
8752
8753 PR tree-optimization/57705
8754 * tree-vect-loop.c (vect_is_simple_iv_evolution): Allow
8755 SSA_NAME step, provided that it is not defined inside the loop.
0ba6aff3 8756 (vect_analyze_scalar_cycles_1): Disallow SSA_NAME step in nested loop.
f6fdeb62
JJ
8757 (get_initial_def_for_induction): Handle SSA_NAME IV step.
8758
c13bc3d9
MJ
87592013-06-25 Martin Jambor <mjambor@suse.cz>
8760
8761 PR middle-end/57670
8762 * cgraph.h (cgraph_indirect_call_info): New flag member_ptr.
8763 * ipa-prop.c (ipa_print_node_jump_functions): Mark member pointer
8764 calls in the dump.
8765 (ipa_note_param_call): Initialize member_ptr flag.
8766 (ipa_analyze_indirect_call_uses): Set member_ptr flag.
8767 (ipa_make_edge_direct_to_target): Bail out if member_ptr is set.
8768 (ipa_write_indirect_edge_info): Stream member_ptr flag.
8769 (ipa_read_indirect_edge_info): Likewise.
8770
8a845901
RB
87712013-06-25 Richard Biener <rguenther@suse.de>
8772
8773 PR middle-end/56977
8774 * passes.c (init_optimization_passes): Move pass_fold_builtins
8775 and pass_dce earlier with -Og.
8776
33be0bec
EB
87772013-06-25 Eric Botcazou <ebotcazou@adacore.com>
8778
8779 * expr.c (expand_expr_real_1) <ARRAY_REF>: Fix formatting glitches.
8780 <BIT_FIELD_REF>: Remove trailing TAB.
8781 * varasm.c (output_constructor_bitfield): Fix formatting glitch and
8782 remove blank line.
8783
5fe8e757
MJ
87842013-06-24 Martin Jambor <mjambor@suse.cz>
8785
8786 PR tree-optimization/57358
8787 * ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): New function.
8788 (ipa_compute_jump_functions_for_edge): Bail out if it returns true.
8789 (ipa_analyze_params_uses): Generate pessimistic info when true.
8790
44a60244
MJ
87912013-06-24 Martin Jambor <mjambor@suse.cz>
8792
8793 PR tree-optimization/57539
8794 * cgraphclones.c (cgraph_clone_node): Add parameter new_inlined_to, set
8795 global.inlined_to of the new node to it. All callers changed.
8796 * ipa-inline-transform.c (clone_inlined_nodes): New variable
8797 inlining_into, pass it to cgraph_clone_node.
8798 * ipa-prop.c (ipa_propagate_indirect_call_infos): Do not call
8799 ipa_free_edge_args_substructures.
8800 (ipa_edge_duplication_hook): Only add edges from inlined nodes to
8801 rdesc linked list. Do not assert rdesc edges have inlined caller.
8802 Assert we have found an rdesc in the rdesc list.
8803
7c5848b8
RB
88042013-06-24 Richard Biener <rguenther@suse.de>
8805
0ba6aff3 8806 * pointer-set.h (struct pointer_set_t): Move here from pointer-set.c.
7c5848b8
RB
8807 (pointer_set_lookup): Declare.
8808 (class pointer_map): New template class implementing a
8809 generic pointer to T map.
8810 (pointer_map<T>::pointer_map, pointer_map<T>::~pointer_map,
8811 pointer_map<T>::contains, pointer_map<T>::insert,
8812 pointer_map<T>::traverse): New functions.
8813 * pointer-set.c (struct pointer_set_t): Moved to pointer-set.h.
8814 (pointer_set_lookup): New function.
8815 (pointer_set_contains): Use pointer_set_lookup.
8816 (pointer_set_insert): Likewise.
8817 (insert_aux): Remove.
8818 (struct pointer_map_t): Embed a pointer_set_t.
8819 (pointer_map_create): Adjust.
8820 (pointer_map_destroy): Likewise.
8821 (pointer_map_contains): Likewise.
8822 (pointer_map_insert): Likewise.
8823 (pointer_map_traverse): Likewise.
8824 * tree-streamer.h (struct streamer_tree_cache_d): Use a
8825 pointer_map<unsigned> instead of a pointer_map_t.
8826 * tree-streamer.c (streamer_tree_cache_insert_1): Adjust.
8827 (streamer_tree_cache_lookup): Likewise.
8828 (streamer_tree_cache_create): Likewise.
8829 (streamer_tree_cache_delete): Likewise.
8830 * lto-streamer.h (struct lto_tree_ref_encoder): Use a
8831 pointer_map<unsigned> instead of a pointer_map_t.
8832 (lto_init_tree_ref_encoder): Adjust.
8833 (lto_destroy_tree_ref_encoder): Likewise.
8834 * lto-section-out.c (lto_output_decl_index): Likewise.
8835 (lto_record_function_out_decl_state): Likewise.
8836 * dominance.c (iterate_fix_dominators): Use pointer_map<int>.
8837
3dbc97a9
RB
88382013-06-24 Richard Biener <rguenther@suse.de>
8839
8840 PR tree-optimization/57488
8841 * tree-ssa-pre.c (insert): Clear NEW sets before each iteration.
8842
8345965a
AM
88432013-06-24 Alan Modra <amodra@gmail.com>
8844
8845 * config/rs6000/rs6000.c (vspltis_constant): Correct for little-endian.
8846 (gen_easy_altivec_constant): Likewise.
8847 * config/rs6000/predicates.md (easy_vector_constant_add_self,
8848 easy_vector_constant_msb): Likewise.
8849
b7df379f
JJ
88502013-06-23 Jakub Jelinek <jakub@redhat.com>
8851
8852 PR target/57688
8853 * common/config/i386/i386-common.c (ix86_handle_option): For OPT_mlzcnt
8854 add missing return true.
8855
12211b99 88562013-06-23 Oleg Endo <olegendo@gcc.gnu.org>
0bcf9a09
OE
8857
8858 PR target/52483
8859 * config/sh/predicates.md (general_extend_operand): Invoke
8860 general_movsrc_operand for memory operands.
8861 (general_movsrc_operand): Allow reg+reg addressing, do not use
8862 general_operand for memory operands.
8863
97db2bf7
ST
88642013-06-23 Sriraman Tallam <tmsriram@google.com>
8865
8866 * config/i386/i386.c (ix86_pragma_target_parse): Restore target
8867 when current target options does not apply.
8868 * config/i386/i386-protos.h (ix86_reset_previous_fndecl): New function.
8869 * config/i386/i386.c (ix86_reset_previous_fndecl): Ditto.
0ba6aff3
UB
8870 * config/i386/bmiintrin.h: Pass appropriate target
8871 attributes to header.
97db2bf7
ST
8872 * config/i386/mmintrin.h: Ditto.
8873 * config/i386/nmmintrin.h: Ditto.
8874 * config/i386/avx2intrin.h: Ditto.
8875 * config/i386/fxsrintrin.h: Ditto.
8876 * config/i386/tbmintrin.h: Ditto.
8877 * config/i386/xsaveintrin.h: Ditto.
8878 * config/i386/f16cintrin.h: Ditto.
8879 * config/i386/xtestintrin.h: Ditto.
8880 * config/i386/xsaveoptintrin.h: Ditto.
8881 * config/i386/bmi2intrin.h: Ditto.
8882 * config/i386/lzcntintrin.h: Ditto.
8883 * config/i386/smmintrin.h: Ditto.
8884 * config/i386/wmmintrin.h: Ditto.
8885 * config/i386/x86intrin.h: Remove all header include guards.
8886 * config/i386/prfchwintrin.h: Ditto.
8887 * config/i386/pmmintrin.h: Ditto.
8888 * config/i386/tmmintrin.h: Ditto.
8889 * config/i386/xmmintrin.h: Ditto.
8890 * config/i386/popcntintrin.h: Ditto.
8891 * config/i386/rdseedintrin.h: Ditto.
8892 * config/i386/ammintrin.h: Ditto.
8893 * config/i386/emmintrin.h: Ditto.
8894 * config/i386/immintrin.h: Remove all header include guards.
8895 * config/i386/fma4intrin.h: Ditto.
8896 * config/i386/lwpintrin.h: Ditto.
8897 * config/i386/xopintrin.h: Ditto.
8898 * config/i386/ia32intrin.h: Ditto.
8899 * config/i386/avxintrin.h: Ditto.
8900 * config/i386/rtmintrin.h: Ditto.
8901 * config/i386/fmaintrin.h: Ditto.
8902 * config/i386/mm3dnow.h: Ditto.
8903
495e6879
ST
89042013-06-22 Sriraman Tallam <tmsriram@google.com>
8905
8906 * common/config/i386/i386-common.c: Handle LZCNT.
8907
11e8f687
AK
89082013-06-22 Andi Kleen <ak@linux.intel.com>
8909
8910 * doc/extend.texi: Use __atomic_store_n instead of
8911 __atomic_store in HLE example.
8912
12211b99 89132013-06-22 Oleg Endo <olegendo@gcc.gnu.org>
664dd721
OE
8914
8915 * config/sh/sh.c: Remove <cstdlib> workaround.
8916
927f908b
AK
89172013-06-21 Andi Kleen <ak@linux.intel.com>
8918
0ba6aff3 8919 * doc/extend.texi: Dont use __atomic_clear in HLE example. Fix typo.
927f908b 8920
cca410b6
AK
89212013-06-21 Andi Kleen <ak@linux.intel.com>
8922
8923 * doc/extend.texi: Document that __atomic_clear and
8924 __atomic_test_and_set should only be used with bool.
8925
d84db1ed
JH
89262013-06-20 Jan Hubicka <jh@suse.cz>
8927
8928 * gimple-fold.c (gimple_extract_devirt_binfo_from_cst): Use
8929 types_same_for_odr.
8930 * tree.c (decls_same_for_odr): New function.
8931 (same_for_edr): New function.
8932 (types_same_for_odr): New function.
8933 (get_binfo_at_offset): Use it.
8934 * tree.h (types_same_for_odr): Declare.
8935
12211b99 89362013-06-20 Oleg Endo <olegendo@gcc.gnu.org>
469a31a9
OE
8937 Jason Merrill <jason@redhat.com>
8938
8939 * system.h: Include <cstdlib> as well as <stdlib.h>.
8940
49b4ff63
UB
89412013-06-20 Uros Bizjak <ubizjak@gmail.com>
8942
8943 PR target/57655
8944 * config/i386/i386.c (construct_container): Report error if
8945 long double is used with disabled x87 float returns.
8946
7a89ad00
JH
89472013-06-20 Jan Hubicka <jh@suse.cz>
8948
8949 * lto-cgraph.c (input_symtab): Do not set cgraph state.
8950
12211b99 89512013-06-20 Joern Rennecke <joern.rennecke@embecosm.com>
bd280792
JR
8952
8953 PR rtl-optimization/57425
8954 PR rtl-optimization/57569
8955 * alias.c (write_dependence_p): Remove parameters mem_mode and
8956 canon_mem_addr. Add parameters x_mode, x_addr and x_canonicalized.
8957 Changed all callers.
8958 (canon_anti_dependence): Get comments and semantics in sync.
8959 Add parameter mem_canonicalized. Changed all callers.
8960 * rtl.h (canon_anti_dependence): Update prototype.
8961
d16e9a99
RB
89622013-06-20 Richard Biener <rguenther@suse.de>
8963
8964 * data-streamer-in.c (streamer_read_uhwi): Optimize single
8965 byte case, inline streamer_read_uchar and defer section
8966 overrun check.
8967
c3a9b91b
RB
89682013-06-20 Richard Biener <rguenther@suse.de>
8969
8970 PR tree-optimization/57584
8971 * tree-ssa-loop-niter.c (expand_simple_operations): Avoid including
8972 SSA names into the expanded expression that take part in
8973 abnormal coalescing.
8974
371e77e3 89752013-06-19 Sharad Singhai <singhai@google.com>
fc8a650e
SS
8976
8977 * gcov.c (print_usage): Handle new option.
8978 (process_args): Ditto.
8979 (get_gcov_intermediate_filename): New function.
8980 (output_intermediate_file): New function.
8981 (output_gcov_file): New function
8982 (generate_results): Handle new option.
8983 (release_function): Relase demangled name.
8984 (read_graph_file): Handle demangled name.
8985 (output_lines): Ditto.
8986 * doc/gcov.texi: Document gcov intermediate format.
8987
11f5b71a
VM
89882013-06-19 Vladimir Makarov <vmakarov@redhat.com>
8989
8990 PR bootstrap/57604
8991 * lra.c (emit_add3_insn, emit_add2_insn): New functions.
8992 (lra_emit_add): Use the functions. Add comment about Y as an
8993 address segment.
8994
e1f9340b
DE
89952013-06-19 David Edelsohn <dje.gcc@gmail.com>
8996
8997 PR driver/57652
8998 * collect2.c (collect_atexit): New.
8999 (collect_exit): Delete.
9000 (main): Register collect_atexit with atexit.
9001 (collect_wait): Change collect_exit to exit.
9002 (do_wait): Same.
9003 * collect2.h (collect_exit): Delete.
9004 * tlink.c (do_tlink): Rename exit to ret. Change collect_exit to exit.
9005
e3f9e0ac
WM
90062013-06-19 Wei Mi <wmi@google.com>
9007
9008 PR rtl-optimization/57518
9009 * ira.c (set_paradoxical_subreg): Set pdx_subregs[regno]
9010 if regno is used in paradoxical subreg.
9011 (update_equiv_regs): Check pdx_subregs[regno] before
9012 set a reg to be equivalent with a mem.
9013
a09f1a76
MK
90142013-06-19 Matthias Klose <doko@ubuntu.com>
9015
9016 PR driver/57651
9017 * file-find.h (find_a_file): Add a mode parameter.
9018 * file-find.c (find_a_file): Likewise.
9019 * gcc-ar.c (main): Call find_a_file with R_OK for the plugin,
9020 with X_OK for the executables.
9021 * collect2.c (main): Call find_a_file with X_OK.
9022
7d18b0ad
SE
90232013-06-19 Steve Ellcey <sellcey@mips.com>
9024
9025 PR target/56942
9026 * config/mips/mips.md (casesi_internal_mips16_<mode>):
9027 Use NEXT_INSN instead of next_real_insn.
9028
6a6dac52
JH
90292013-06-19 Jan Hubicka <jh@suse.cz>
9030
9031 * cgraph.h (const_value_known_p): Replace by ...
9032 (ctor_for_folding): .. this one.
9033 * cgraphunit.c (process_function_and_variable_attributes): Use it.
9034 * lto-cgraph.c (compute_ltrans_boundary): Use ctor_for_folding.
9035 * expr.c (expand_expr_real_1): Likewise.
9036 (string_constant): Likewise.
9037 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Likewise.
9038 * ipa.c (process_references): Likewise.
9039 (symtab_remove_unreachable_nodes): Likewise.
9040 * ipa-inline-analysis.c (param_change_prob): Likewise.
9041 * gimple-fold.c (canonicalize_constructor_val): Likewise.
9042 (get_base_constructor): Likwise.
9043 * varpool.c (varpool_remove_node): Likewise.
9044 (varpool_remove_initializer): LIkewise.
9045 (dump_varpool_node): LIkwise.
9046 (const_value_known_p): Rewrite to ...
9047 (ctor_for_folding): ... this one.
9048
216c12ab
JJ
90492013-06-19 Jakub Jelinek <jakub@redhat.com>
9050
9051 PR driver/57651
9052 * gcc-ar.c (main): If not CROSS_DIRECTORY_STRUCTURE, look for
9053 PERSONALITY in $PATH derived prefixes.
9054
d53e2f99
JL
90552013-06-19 Jeff Law <law@redhat.com>
9056
ecdbf306
JL
9057 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): Fix typo
9058 in comment.
9059
d53e2f99
JL
9060 * tree-ssa-forwprop.c (simplify_bitwise_binary_boolean): New function.
9061 (simplify_bitwise_binary): Use it to simpify certain binary ops on
9062 booleans.
9063
89e7fc04
SN
90642013-06-19 Sofiane Naci <sofiane.naci@arm.com>
9065
9066 * config/arm/vfp.md: Move VFP instruction classification documentation
9067 to ...
9068 * config/arm/arm.md: ... here. Update instruction classification
9069 documentation.
9070
5e7f6aaa
RE
90712013-06-19 Richard Earnshaw <rearnsha@arm.com>
9072
9073 arm.md (split for eq(reg, 0)): Add variants for ARMv5 and Thumb2.
9074 (peepholes for eq(reg, not-0)): Ensure condition register is dead after
9075 pattern. Use more efficient sequences on ARMv5 and Thumb2.
9076
5fdc1e5d
SB
90772013-06-19 Steven Bosscher <steven@gcc.gnu.org>
9078
9079 PR target/57609
9080 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
9081 with NEXT_INSN. Use tablejump_p to check for jump table data
9082 insns.
9083
e952afba
PC
90842013-06-19 Paolo Carlini <paolo.carlini@oracle.com>
9085
9086 PR c++/56544
9087 * doc/cpp.texi [Standard Predefined Macros, __cplusplus]: Document
9088 that now in C++ the value is correct per the C++ standards.
9089
3fd0303a
RB
90902013-06-19 Richard Biener <rguenther@suse.de>
9091
9092 * expr.c (expand_expr_real_1): Use SCOPE_FILE_SCOPE_P to check
9093 for global context.
9094
b04e4b08
AK
90952013-06-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9096
9097 Revert:
9098 2013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9099
9100 PR target/57609
9101 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
9102 with next_active_insn.
9103
bef8491a
ST
91042013-06-18 Sriraman Tallam <tmsriram@google.com>
9105
9106 * ipa-inline.c (inline_always_inline_functions): Pretend always_inline
9107 functions are inlined during failures to flag an error.
9108 * tree-inline.c (expand_call_inline): Allow the error to be flagged
9109 in early inline pass.
22fc7d3d 9110
c21b257d
L
91112013-06-18 H.J. Lu <hongjiu.lu@intel.com>
9112
9113 * config/i386/i386.c (initial_ix86_tune_features): Fix a typo
9114 in comments.
9115
33255ae3
JB
91162013-06-18 Julian Brown <julian@codesourcery.com>
9117
9118 * config/arm/arm.c (neon_vector_mem_operand): Add strict argument.
9119 Permit virtual register pre-reload if !strict.
9120 (coproc_secondary_reload_class): Adjust for neon_vector_mem_operand
9121 change.
9122 * config/arm/arm-protos.h (neon_vector_mem_operand): Adjust
9123 prototype.
9124 * config/arm/neon.md (movmisalign<mode>): Use
9125 neon_perm_struct_or_reg_operand instead of
9126 neon_struct_or_register_operand.
9127 (*movmisalign<mode>_neon_load, *movmisalign<mode>_neon_store): Use
9128 neon_permissive_struct_operand instead of neon_struct_operand.
9129 * config/arm/constraints.md (Un, Um, Us): Adjust calls to
9130 neon_vector_mem_operand.
9131 * config/arm/predicates.md (neon_struct_operand): Adjust call to
9132 neon_vector_mem_operand.
9133 (neon_permissive_struct_operand): New.
9134 (neon_struct_or_register_operand): Rename to...
9135 (neon_perm_struct_or_reg_operand): This. Adjust call to
9136 neon_vector_mem_operand.
9137
d579fcda
RB
91382013-06-18 Richard Biener <rguenther@suse.de>
9139
9140 * Makefile.in (LTO_STREAMER_H): Add pointer-set.h dependency.
9141 * lto-streamer.h: Include pointer-set.h.
9142 (struct lto_decl_slot): Remove.
9143 (struct lto_tree_ref_encoder): Make tree_hash_table a pointer-map.
9144 Remove next_index entry.
9145 (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
9146 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
9147 (lto_init_tree_ref_encoder): Adjust.
9148 (lto_destroy_tree_ref_encoder): Likewise.
9149 * lto-section-out.c (lto_hash_decl_slot_node, lto_eq_decl_slot_node,
9150 lto_hash_type_slot_node, lto_eq_type_slot_node): Remove.
9151 (lto_output_decl_index): Adjust.
9152 (lto_new_out_decl_state): Likewise.
9153 (lto_record_function_out_decl_state): Likewise.
9154 * lto-streamer-out.c (copy_function): Likewise.
9155
31ee20ba
RB
91562013-06-18 Richard Biener <rguenther@suse.de>
9157
9158 * Makefile.in (cgraphunit.o): Add $(CFGLOOP_H) dependency.
9159 * cgraphunit.c: Include cfgloop.h.
9160 (init_lowered_empty_function): Initialize the loop tree.
9161 (assemble_thunk): Insert new BBs into loops.
9162
ac0511f2
RB
91632013-06-18 Richard Biener <rguenther@suse.de>
9164
9165 * tree-streamer.h (streamer_tree_cache_create): Adjust prototype.
9166 * tree-streamer.c (streamer_tree_cache_create): Make maintaining
9167 the map from cache entry to cache index optional.
9168 (streamer_tree_cache_replace_tree): Adjust accordingly.
9169 (streamer_tree_cache_append): Likewise.
9170 (streamer_tree_cache_delete): Likewise.
9171 * lto-streamer-in.c (lto_data_in_create): Do not maintain the
9172 streamer cache map from cache entry to cache index.
9173 * lto-streamer-out.c (create_output_block): Adjust.
9174
09485a08
SN
91752013-06-18 Sofiane Naci <sofiane.naci@arm.com>
9176
22fc7d3d
UB
9177 * config/arm/arm.md (attribute "insn"): Move multiplication and
9178 division attributes to...
09485a08
SN
9179 (attribute "type"): ... here. Remove mult.
9180 (attribute "mul32"): New attribute.
9181 (attribute "mul64"): Add umaal.
9182 (*arm_mulsi3): Update attributes.
9183 (*arm_mulsi3_v6): Likewise.
9184 (*thumb_mulsi3): Likewise.
9185 (*thumb_mulsi3_v6): Likewise.
9186 (*mulsi3_compare0): Likewise.
9187 (*mulsi3_compare0_v6): Likewise.
9188 (*mulsi_compare0_scratch): Likewise.
9189 (*mulsi_compare0_scratch_v6): Likewise.
9190 (*mulsi3addsi): Likewise.
9191 (*mulsi3addsi_v6): Likewise.
9192 (*mulsi3addsi_compare0): Likewise.
9193 (*mulsi3addsi_compare0_v6): Likewise.
9194 (*mulsi3addsi_compare0_scratch): Likewise.
9195 (*mulsi3addsi_compare0_scratch_v6): Likewise.
9196 (*mulsi3subsi): Likewise.
9197 (*mulsidi3adddi): Likewise.
9198 (*mulsi3addsi_v6): Likewise.
9199 (*mulsidi3adddi_v6): Likewise.
9200 (*mulsidi3_nov6): Likewise.
9201 (*mulsidi3_v6): Likewise.
9202 (*umulsidi3_nov6): Likewise.
9203 (*umulsidi3_v6): Likewise.
9204 (*umulsidi3adddi): Likewise.
9205 (*umulsidi3adddi_v6): Likewise.
9206 (*smulsi3_highpart_nov6): Likewise.
9207 (*smulsi3_highpart_v6): Likewise.
9208 (*umulsi3_highpart_nov6): Likewise.
9209 (*umulsi3_highpart_v6): Likewise.
9210 (mulhisi3): Likewise.
9211 (*mulhisi3tb): Likewise.
9212 (*mulhisi3bt): Likewise.
9213 (*mulhisi3tt): Likewise.
9214 (maddhisi4): Likewise.
9215 (*maddhisi4tb): Likewise.
9216 (*maddhisi4tt): Likewise.
9217 (maddhidi4): Likewise.
9218 (*maddhidi4tb): Likewise.
9219 (*maddhidi4tt): Likewise.
9220 (divsi3): Likewise.
9221 (udivsi3): Likewise.
9222 * config/arm/thumb2.md (thumb2_mulsi_short): Update attributes.
9223 (thumb2_mulsi_short_compare0): Likewise.
9224 (thumb2_mulsi_short_compare0_scratch): Likewise.
9225 * config/arm/arm1020e.md (1020mult1): Update attribute change.
9226 (1020mult2): Likewise.
9227 (1020mult3): Likewise.
9228 (1020mult4): Likewise.
9229 (1020mult5): Likewise.
9230 (1020mult6): Likewise.
22fc7d3d
UB
9231 * config/arm/cortex-a15.md (cortex_a15_mult32): Update attribute
9232 change.
09485a08
SN
9233 (cortex_a15_mult64): Likewise.
9234 (cortex_a15_sdiv): Likewise.
9235 (cortex_a15_udiv): Likewise.
9236 * config/arm/arm1026ejs.md (mult1): Update attribute change.
9237 (mult2): Likewise.
9238 (mult3): Likewise.
9239 (mult4): Likewise.
9240 (mult5): Likewise.
9241 (mult6): Likewise.
9242 * config/arm/marvell-pj4.md (pj4_ir_mul): Update attribute change.
9243 (pj4_ir_div): Likewise.
9244 * config/arm/arm1136jfs.md (11_mult1): Update attribute change.
9245 (11_mult2): Likewise.
9246 (11_mult3): Likewise.
9247 (11_mult4): Likewise.
9248 (11_mult5): Likewise.
9249 (11_mult6): Likewise.
9250 (11_mult7): Likewise.
9251 * config/arm/cortex-a8.md (cortex_a8_mul): Update attribute change.
9252 (cortex_a8_mla): Likewise.
9253 (cortex_a8_mull): Likewise.
9254 (cortex_a8_smulwy): Likewise.
9255 (cortex_a8_smlald): Likewise.
9256 * config/arm/cortex-m4.md (cortex_m4_alu): Update attribute change.
9257 * config/arm/cortex-r4.md (cortex_r4_mul_4): Update attribute change.
9258 (cortex_r4_mul_3): Likewise.
9259 (cortex_r4_mla_4): Likewise.
9260 (cortex_r4_mla_3): Likewise.
9261 (cortex_r4_smlald): Likewise.
9262 (cortex_r4_mull): Likewise.
9263 (cortex_r4_sdiv): Likewise.
9264 (cortex_r4_udiv): Likewise.
9265 * config/arm/cortex-a7.md (cortex_a7_mul): Update attribute change.
9266 (cortex_a7_idiv): Likewise.
9267 * config/arm/arm926ejs.md (9_mult1): Update attribute change.
9268 (9_mult2): Likewise.
9269 (9_mult3): Likewise.
9270 (9_mult4): Likewise.
9271 (9_mult5): Likewise.
9272 (9_mult6): Likewise.
9273 * config/arm/cortex-a53.md (cortex_a53_mul): Update attribute change.
9274 (cortex_a53_sdiv): Likewise.
9275 (cortex_a53_udiv): Likewise.
9276 * config/arm/fa726te.md (726te_mult_op): Update attribute change.
9277 * config/arm/fmp626.md (mp626_mult1): Update attribute change.
9278 (mp626_mult2): Likewise.
9279 (mp626_mult3): Likewise.
9280 (mp626_mult4): Likewise.
9281 * config/arm/fa526.md (526_mult1): Update attribute change.
9282 (526_mult2): Likewise.
9283 * config/arm/arm-generic.md (mult): Update attribute change.
9284 (mult_ldsched_strongarm): Likewise.
9285 (mult_ldsched): Likewise.
9286 (multi_cycle): Likewise.
9287 * config/arm/cortex-a5.md (cortex_a5_mul): Update attribute change.
9288 * config/arm/fa606te.md (606te_mult1): Update attribute change.
9289 (606te_mult2): Likewise.
9290 (606te_mult3): Likewise.
9291 (606te_mult4): Likewise.
9292 * config/arm/cortex-a9.md (cortex_a9_mult16): Update attribute change.
9293 (cortex_a9_mac16): Likewise.
9294 (cortex_a9_multiply): Likewise.
9295 (cortex_a9_mac): Likewise.
9296 (cortex_a9_multiply_long): Likewise.
9297 * config/arm/fa626te.md (626te_mult1): Update attribute change.
9298 (626te_mult2): Likewise.
9299 (626te_mult3): Likewise.
9300 (626te_mult4): Likewise.
9301
8951f345
RB
93022013-06-18 Richard Biener <rguenther@suse.de>
9303
9304 PR lto/57334
9305 * lto-symtab.c (lto_symtab_merge_decls): Process nodes properly.
9306
d8101d05
AK
93072013-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9308
9309 PR target/57609
9310 * config/s390/s390.c (s390_chunkify_start): Replace next_real_insn
9311 with next_active_insn.
9312
69eff9da
AM
93132013-06-18 Alan Modra <amodra@gmail.com>
9314
9315 * config/rs6000/rs6000.h (enum data_align): New.
9316 (LOCAL_ALIGNMENT, DATA_ALIGNMENT): Use rs6000_data_alignment.
9317 (DATA_ABI_ALIGNMENT): Define.
9318 (CONSTANT_ALIGNMENT): Correct comment.
9319 * config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare.
9320 * config/rs6000/rs6000.c (rs6000_data_alignment): New function.
9321
8ed00d76
DM
93222013-06-17 David Malcolm <dmalcolm@redhat.com>
9323
9324 * ggc-page.c (ggc_pch_write_object) <d>: Remove erroneous
9325 ATTRIBUTE_UNUSED marking.
9326
3d33d06b
SN
93272013-06-17 Sofiane Naci <sofiane.naci@arm.com>
9328
9329 * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>): Add r<-w
9330 alternative and update.
9331 (aarch64_dup_lanedi): Delete.
9332 * config/aarch64/arm_neon.h (vdup<bhsd>_lane_*): Update.
9333 * config/aarch64/aarch64-simd-builtins.def: Update.
9334
ee03e71d
RB
93352013-06-17 Richard Biener <rguenther@suse.de>
9336
9337 * lto-streamer.h (enum LTO_tags): Add LTO_tree_scc.
9338 (lto_input_scc): Declare.
9339 (lto_input_tree_1): Likewise.
9340 (struct lto_stats_d): Add num_tree_bodies_output and
9341 num_pickle_refs_output.
9342 * lto-streamer-in.c (lto_read_body): Use streamer_tree_cache_get_tree.
9343 (lto_read_tree_1): Split out from ...
9344 (lto_read_tree): ... this.
9345 (lto_input_scc): New function.
9346 (lto_input_tree_1): Split out from ...
9347 (lto_input_tree): ... this. Handle LTO_tree_scc.
9348 (lto_data_in_create): Create the streamer cache without hashes.
9349 * lto-streamer-out.c (create_output_block): Create the streamer
9350 cache with hashes when not doing WPA.
9351 (lto_write_tree_1): Split out from ...
9352 (lto_write_tree): ... this.
9353 (get_symbol_initial_value): New function.
9354 (lto_output_tree_1): Split out from ...
9355 (lto_output_tree): ... this. Write trees as series of SCCs
9356 using a DFS walk via DFS_write_tree.
9357 (struct sccs, struct scc_entry): New types.
9358 (next_dfs_num, sccstack, sccstate, sccstate_obstack): New globals.
9359 (DFS_write_tree_body): New function.
9360 (DFS_write_tree): Likewise.
9361 (hash_tree): Likewise.
9362 (scc_entry_compare): Likewise.
9363 (hash_scc): Likewise.
9364 (tree_is_indexable): DEBUG_EXPR_DECLs are local entities.
9365 * tree-streamer-in.c (lto_input_ts_list_tree_pointers): Stream
9366 TREE_CHAIN as regular reference.
9367 (streamer_read_integer_cst): Remove.
9368 (streamer_get_pickled_tree): Adjust.
9369 * tree-streamer-out.c (streamer_write_chain): Disable streaming
9370 of DECL_EXTERNALs in BLOCK_VARS for now.
9371 (write_ts_list_tree_pointers): Stream TREE_CHAIN as regular
9372 reference.
9373 * tree-streamer.c (streamer_tree_cache_add_to_node_array):
9374 Add hash value argument and record that if hashes are recorded
9375 in the cache.
9376 (streamer_tree_cache_insert_1): Adjust.
9377 (streamer_tree_cache_insert): Likewise.
9378 (streamer_tree_cache_insert_at): Rename to ...
9379 (streamer_tree_cache_replace_tree): ... this and adjust.
9380 (streamer_tree_cache_append): Adjust.
9381 (record_common_node): Likewise.
9382 (streamer_tree_cache_create): Add argument whether to
9383 record hash values together with trees.
9384 (streamer_tree_cache_delete): Adjust.
9385 * tree-streamer.h (struct streamer_tree_cache_d): Add
9386 vector of hashes.
9387 (streamer_read_integer_cst): Remove.
9388 (streamer_tree_cache_insert): Adjust.
9389 (streamer_tree_cache_append): Likewise.
9390 (streamer_tree_cache_insert_at): Rename to ...
9391 (streamer_tree_cache_replace_tree): ... this and adjust.
9392 (streamer_tree_cache_create): Add argument whether to record hashes.
9393 (streamer_tree_cache_get): Rename to ...
9394 (streamer_tree_cache_get_tree): ... this.
9395 (streamer_tree_cache_get_hash): New function.
9396 * tree.c (cache_integer_cst): New function.
9397 * tree.h (cache_integer_cst): Declare.
9398 (ANON_AGGRNAME_FORMAT, ANON_AGGRNAME_P): Move here from cp/cp-tree.h.
9399 * lto-symtab.c (lto_varpool_replace_node): Only release
9400 DECL_INITIAL of non-prevailing decls.
9401 * varpool.c (varpool_remove_initializer): Do not release
9402 DECL_INITIAL when we are still in CGRAPH_LTO_STREAMING.
9403
0de86a92
JU
94042013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
9405
9406 * config/mips/mips.h (ISA_HAS_MUL3): Include TARGET_MIPS5900.
9407 (ISA_HAS_MULT, ISA_HAS_DMULT, ISA_HAS_DIV, ISA_HAS_DDIV): New macros.
9408 * config/mips/mips.md (mul<mode>3, mul<mode>3_internal)
9409 (mul<mode>3_r4000): Require ISA_HAS_<D>MULT.
9410 (mul<mode>3_mul3): Handle TARGET_MIPS5900.
9411 (mulsidi3_64bit_dmul): Remove redundant TARGET_64BIT test.
9412 (<su>muldi3_highpart, <su>muldi3_highpart_internal, <u>mulditi3)
9413 (<u>mulditi3_internal, <u>mulditi3_r4000): Require ISA_HAS_DMULT
9414 instead of TARGET_64BIT.
9415 (divmod<mode>4, udivmod<mode>4, <u>divmod<GPR:mode>4_hilo_<HILO:mode>):
9416 Require ISA_HAS_<D>DIV.
9417
74240413
RS
94182013-06-16 Richard Sandiford <rdsandiford@googlemail.com>
9419
9420 * config.gcc (mips*-mti-linux*, mips64*-*-linux*, mipsisa64*-*-linux*)
9421 (mips*-*-linux*): Move default with_llsc setting to where other
9422 defaults are set.
9423 (mips*-*-vxworks*): Move with_arch default from with_cpu block to
9424 with_arch block.
9425 (mips64r5900-*-*, mips64r5900el-*-*, mipsr5900-*-*, mipsr5900el-*-*):
9426 Likewise. Remove default with_tune setting. Move default float
9427 setting to its own block. Handle with_llsc in the same block as above.
9428
12211b99 94292013-06-16 Joern Rennecke <joern.rennecke@embecosm.com>
393f9fed
JR
9430
9431 PR rtl-optimization/57425
9432 PR rtl-optimization/57569
299a5f6a 9433 * alias.c (write_dependence_p): Add new parameters mem_mode,
393f9fed
JR
9434 canon_mem_addr and mem_canonicalized. Change type of writep to bool.
9435 Changed all callers.
9436 (canon_anti_dependence): New function.
9437 * cse.c (check_dependence): Use canon_anti_dependence.
9438 * cselib.c (cselib_invalidate_mem): Likewise.
9439 * rtl.h (canon_anti_dependence): Declare.
9440
b259d352
JU
94412013-06-16 Jürgen Urban <JuergenUrban@gmx.de>
9442
9443 * config/mips/mips.h (ISA_HAS_LL_SC): Exclude TARGET_MIPS5900.
9444 * config/mips/mips.c (mips_start_ll_sc_sync_block): Output
9445 ".set mips3" for 64-bit targets.
9446
4de09b85
DC
94472013-06-15 Dehao Chen <dehao@google.com>
9448
9449 * tree-flow.h (gimple_check_call_matching_types): Add new argument.
9450 * gimple-low.c (gimple_check_call_matching_types): Likewise.
9451 (gimple_check_call_args): Likewise.
9452 * value-prof.c (check_ic_target): Likewise.
9453 * ipa-inline.c (early_inliner): Likewise.
9454 * ipa-prop.c (update_indirect_edges_after_inlining): Likewise.
9455 * cgraph.c (cgraph_create_edge_1): Likewise.
9456 (cgraph_make_edge_direct): Likewise.
9457
d1aa4a76
MM
94582013-06-14 Michael Meissner <meissner@linux.vnet.ibm.com>
9459
9460 PR target/57615
9461 * config/rs6000/rs6000.md (mov<mode>_ppc64): Call
9462 rs6000_output_move_128bit to handle emitting quad memory
9463 operations. Set attribute length to 8 bytes.
9464
12211b99 94652013-06-14 Vidya Praveen <vidyapraveen@arm.com>
24244e4d
VP
9466
9467 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_lo<mode>):
9468 New pattern.
9469 (aarch64_<su>mlal_hi<mode>, aarch64_<su>mlsl_lo<mode>): Likewise.
9470 (aarch64_<su>mlsl_hi<mode>, aarch64_<su>mlal<mode>): Likewise.
9471 (aarch64_<su>mlsl<mode>): Likewise.
9472
f5273574
MS
94732013-06-14 Mike Stump <mikestump@comcast.net>
9474
9475 * Makefile.in (TARGET_H): Add insn-codes.h.
9476
ef7e7ab2
AM
94772013-06-14 Alan Modra <amodra@gmail.com>
9478
9479 PR middle-end/57134
9480 PR middle-end/57586
9481 * expr.c (expand_expr_real_1 <normal_inner_ref>): Pass
9482 EXPAND_MEMORY and EXPAND_WRITE to recursive call. Don't use
9483 bitfield expansion when EXPAND_MEMORY.
9484 (expand_expr_real_1 <VIEW_CONVERT_EXPR>): Pass modifier likewise.
9485
135faab6
MM
94862013-06-13 Michael Meissner <meissner@linux.vnet.ibm.com>
9487
9488 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move
9489 test for clearing quad memory on 32-bit later.
9490
948a1fd9
MG
94912013-06-13 Marc Glisse <marc.glisse@inria.fr>
9492
9493 * fold-const.c (negate_expr_p): Handle VECTOR_CST.
9494 (fold_negate_expr): Likewise.
9495 (fold_real_zero_addition_p): Handle vectors.
9496 (fold_binary_loc) <PLUS_EXPR, MINUS_EXPR>: Likewise.
9497
0597fb9c
AM
94982013-06-14 Alan Modra <amodra@gmail.com>
9499
9500 * varasm.c (force_const_mem): Revert 2013-06-07 change.
9501
e5b962d0
JH
95022013-06-13 Jan Hubicka <jh@suse.cz>
9503
9504 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
9505 Local comdats are not externally visible.
9506 * symtab.c (dump_symtab_base): Dump externally visible.
9507 (verify_symtab_base): Verify back links in the symtab hash.
9508
a8355e51
BC
95092013-06-13 Bin Cheng <bin.cheng@arm.com>
9510
9511 * fold-const.c (operand_equal_p): Consider NOP_EXPR and
9512 CONVERT_EXPR as equal nodes.
9513
8f7e6e33
BC
95142013-06-13 Bin Cheng <bin.cheng@arm.com>
9515
22fc7d3d 9516 * rtlanal.c (noop_move_p): Check the code to be executed for COND_EXEC.
8f7e6e33 9517
5d418483
MG
95182013-06-13 Marc Glisse <marc.glisse@inria.fr>
9519
9520 * tree-ssa-forwprop.c (simplify_bitwise_binary, associate_plusminus):
9521 Generalize to complex and vector.
9522 * tree.c (build_all_ones_cst): New function.
9523 * tree.h (build_all_ones_cst): Declare it.
9524
50751417
AM
95252013-06-13 Alan Modra <amodra@gmail.com>
9526
9527 * config/rs6000/rs6000.h (LONG_DOUBLE_LARGE_FIRST): Define.
9528 * config/rs6000/rs6000.md (signbittf2): New insn.
9529 (extenddftf2_internal): Use LONG_DOUBLE_LARGE_FIRST.
9530 (abstf2_internal, cmptf_internal2): Likewise.
9531 * config/rs6000/spe.md (spe_abstf2_cmp, spe_abstf2_tst): Likewise.
9532
4b02c962 95332013-06-12 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
9534 Pat Haugen <pthaugen@us.ibm.com>
9535 Peter Bergner <bergner@vnet.ibm.com>
4b02c962
MM
9536
9537 * config/rs6000/rs6000.c (emit_load_locked): Add support for
9538 power8 byte, half-word, and quad-word atomic instructions.
9539 (emit_store_conditional): Likewise.
9540 (rs6000_expand_atomic_compare_and_swap): Likewise.
9541 (rs6000_expand_atomic_op): Likewise.
9542
9543 * config/rs6000/sync.md (larx): Add new modes for power8.
9544 (stcx): Likewise.
9545 (AINT): New mode iterator to include TImode as well as normal
9546 integer modes on power8.
9547 (fetchop_pred): Use int_reg_operand instead of gpc_reg_operand so
9548 that VSX registers are not considered. Use AINT mode iterator
9549 instead of INT1 to allow inclusion of quad word atomic operations
9550 on power8.
9551 (load_locked<mode>): Likewise.
9552 (store_conditional<mode>): Likewise.
9553 (atomic_compare_and_swap<mode>): Likewise.
9554 (atomic_exchange<mode>): Likewise.
9555 (atomic_nand<mode>): Likewise.
9556 (atomic_fetch_<fetchop_name><mode>): Likewise.
9557 (atomic_nand_fetch<mode>): Likewise.
9558 (mem_thread_fence): Use gen_loadsync_<mode> instead of enumerating
9559 each type.
9560 (ATOMIC): On power8, add QImode, HImode modes.
9561 (load_locked<QHI:mode>_si): Varients of load_locked for QI/HI
9562 modes that promote to SImode.
9563 (load_lockedti): Convert TImode arguments to PTImode, so that we
9564 get a guaranteed even/odd register pair.
9565 (load_lockedpti): Likewise.
9566 (store_conditionalti): Likewise.
9567 (store_conditionalpti): Likewise.
9568
9569 * config/rs6000/rs6000.md (QHI): New mode iterator for power8
9570 atomic load/store instructions.
9571 (HSI): Likewise.
9572
710b6cc1
RS
95732013-06-12 Richard Sandiford <rdsandiford@googlemail.com>
9574
9575 * config/mips/mips.md (extended_mips16): Include GOT and constant-pool
9576 loads.
9577 (insn_count): New attribute, with most cases extracted from...
9578 (length): ...here. Redefine most cases in terms of insn_count.
9579 (single_insn): Delete.
9580 (can_delay): Use insn_count to check for single instructions.
9581 (*mul<mode>3_r4300, mul<mode>3_r4000, *mul_acc_si, *mul_acc_si_r3900)
9582 (*msac_using_macc, *mul_sub_si, <u>mulsidi3_32bit_r4000)
9583 (<u>mulsidi3_64bit_r4000, <su>muldi3_highpart_internal)
9584 (<su>mulsi3_highpart_split, <su>muldi3_highpart_internal)
9585 (<u>mulditi3_r4000, *div<mode>3, *recip<mode>3, divmod<mode>4)
9586 (udivmod<mode>4, sqrt<mode>2, *rsqrt<mode>a, *rsqrt<mode>b)
9587 (fix_truncdfsi2_macro, fix_truncsfsi2_macro, *lea_high64)
9588 (*lea64, cprestore_<mode>, clear_hazard_<mode>, <unnamed insn>)
9589 (casesi_internal_mips16_<mode>, *tls_get_tp_<mode>_split)
9590 (tls_get_tp_mips16, *tls_get_tp_mips16_call_<mode>): Use "insn_count"
9591 rather than "length".
9592 (tls_get_tp_<mode>): Likewise. Remove redundant "no_delay" attribute.
9593 * config/mips/mips-ps-3d.md (mips_c_cond_4s, mips_cabs_cond_4s):
9594 Use "insn_count" rather than "length".
9595 * config/mips/mips-dsp.md
9596 (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>)
9597 (mips_l<GPR:size>x_<P:mode>, *mips_lw<u>x_<P:mode>_ext): Remove
9598 length attributes.
9599
1951f101
MG
96002013-06-12 Marc Glisse <marc.glisse@inria.fr>
9601
9602 PR tree-optimization/57361
9603 * tree-ssa-dse.c (dse_possible_dead_store_p): Handle self-assignment.
9604
8b033a8a
SN
96052013-06-12 Sofiane Naci <sofiane.naci@arm.com>
9606
22fc7d3d
UB
9607 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Convert
9608 to split.
8b033a8a
SN
9609 (aarch64_simd_combine<mode>): New instruction expansion.
9610 * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine): New
9611 function prototype.
9612 * config/aarch64/aarch64.c (aarch64_split_combine): New function.
9613 * config/aarch64/iterators.md (Vdbl): Add entry for DF.
9614
ca0f62a8
JH
96152013-06-12 Jan Hubicka <jh@suse.cz>
9616
9617 * cgraph.c (verify_edge_corresponds_to_fndecl): Be lax about
9618 decl has when in streaming stage.
9619 * lto-symtab.c (lto_symtab_merge_symbols): Likewise.
9620 * cgraph.h (cgraph_state): Add CGRAPH_LTO_STREAMING.
9621
12211b99 96222013-06-12 Roland Stigge <stigge@antcom.de>
cddd69eb
RS
9623
9624 PR target/57578
9625 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Fix SPE version detection.
9626
bfdeda2c
JJ
96272013-06-12 Jakub Jelinek <jakub@redhat.com>
9628
9629 PR tree-optimization/57537
9630 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): If
9631 vect_handle_widen_op_by_const, convert oprnd1 to half_type1.
9632
a4fa02d1
RB
96332013-06-12 Richard Biener <rguenther@suse.de>
9634
9635 * data-streamer.h (streamer_write_char_stream): CSE
9636 obs->current_pointer.
9637 * data-streamer-out.c (streamer_write_uhwi_stream): Inline
9638 streamer_write_char_stream manually and optimize the resulting loop.
9639 (streamer_write_hwi_stream): Likewise.
9640
bbf9ad07
JH
96412013-06-12 Jan Hubicka <jh@suse.cz>
9642
9643 * lto-symtab.c (lto_symtab_merge_symbols): Populate symtab hashtable.
9644 * cgraph.h (varpool_create_empty_node): Declare.
9645 * lto-cgraph.c (input_node, input_varpool_node): Forcingly create
9646 duplicated nodes.
9647 * symtab.c (symtab_unregister_node): Be lax about missin entries
9648 in node hash.
9649 (symtab_get_node): Update comment.
9650 * varpool.c (varpool_create_empty_node): Break out from ...
9651 (varpool_node_for_decl): ... here.
9652 * lto-streamer.h (lto_file_decl_data): Add RESOLUTION_MAP.
9653
a53f90ad
EB
96542013-06-12 Eric Botcazou <ebotcazou@adacore.com>
9655
9656 * expr.c (expand_expr_real_1) <TARGET_MEM_REF>: Use straight-line flow.
9657 <MEM_REF>: Use 'type' instead of TREE_TYPE (exp) and tidy up the first
9658 part. Use straight-line flow at the end.
9659 <COMPONENT_REF>: Remove superfluous else.
9660 <VIEW_CONVERT_EXPR>: Use 'type' instead of TREE_TYPE (exp).
9661
946f9306
JJ
96622013-06-12 Jakub Jelinek <jakub@redhat.com>
9663
9664 PR target/56564
9665 * varasm.c (decl_binds_to_current_def_p): Call binds_local_p
9666 target hook even for !TREE_PUBLIC decls. If no resolution info
9667 is available, return false for common and external decls.
9668
a7fca6f0
KP
96692013-06-12 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
9670
9671 * config/rl78/constraints.md (U): New constraint.
9672 * config/rl78/rl78.md (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): Add
9673 valloc attribute.
9674
c7d8f446
MM
96752013-06-11 Michael Meissner <meissner@linux.vnet.ibm.com>
9676
9677 PR target/57589
9678 * config/rs6000/driver-rs6000.c (elf_platform): Make buffer static
9679 to allow returning address to AT_PLATFORM name.
9680
08346abd
JH
96812013-06-11 Jan Hubicka <jh@suse.cz>
9682
9683 * cgraph.c (cgraph_create_function_alias): Set weakref flag.
9684 * cgraph.h (symtab_node_base): Add weakref flag.
9685 * cgraphunit.c (cgraph_reset_node): Clear weakref flag.
9686 (handle_alias_pairs): Set weakref flag, do not set DECL_EXTERNAL.
9687 (output_weakrefs): Use weakref flag.
9688 * fold-const.c (simple_operand_p): Handle WEAK.
9689 * gimple-fold.c (can_refer_decl_in_current_unit_p): Drop weakref.
9690 * ipa.c (varpool_externally_visible_p): Drop weakref.
9691 (function_and_variable_visibility): Update comment; fix weakref
9692 sanity checks; do not clear DECL_WEAK on them.
9693 * lto-cgraph.c (lto_output_node): update.
9694 (lto_output_varpool_node): Update.
9695 (input_overwrite_node): Update.
9696 (input_node): Update.
9697 (input_varpool_node): Update.
9698 * lto-symtab.c (lto_symtab_symbol_p): Do not special case weakrefs.
9699 (lto_symtab_merge_symbols): Add sanity check.
9700 (lto_symtab_prevailing_decl): Do not special case weakrefs.
9701 * passes.c (rest_of_decl_compilation): Set static flag, too.
9702 * symtab.c (dump_symtab_base): Dump weakref.
9703 (verify_symtab_base): Sanity check weakrefs.
9704 (symtab_make_decl_local): Remove duplicated code.
9705 (symtab_alias_ultimate_target): Simplify.
9706 * varpool.c (varpool_create_variable_alias): Set weakref flag.
c7d8f446 9707
2e6a2f88
TV
97082013-06-11 Tom de Vries <tom@codesourcery.com>
9709
9710 * genautomata.c (gen_regexp_sequence): Handle els_num == -1. Handle
9711 sequence_vect == NULL.
9712
d9af3652
DD
97132013-06-11 DJ Delorie <dj@redhat.com>
9714
9715 * config/rl78/rl78.c (TARGET_UNWIND_WORD_MODE): Define.
9716 (rl78_unwind_word_mode): New.
9717
ffa66012
DM
97182013-06-11 David Malcolm <dmalcolm@redhat.com>
9719
9720 * final.c (debug_prefix_maps): Make static.
9721
783f2d35
DM
97222013-06-11 David Malcolm <dmalcolm@redhat.com>
9723
9724 * function.c (initial_trampoline): Remove stray copy.
9725
7af26def
SN
97262013-06-11 Sofiane Naci <sofiane.naci@arm.com>
9727
9728 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update.
9729
97756c0e
MJ
97302013-06-11 Martin Jambor <mjambor@suse.cz>
9731
9732 * ipa-cp.c (ipa_get_indirect_edge_target_1): Check that param_index is
9733 within bounds at the beginning of the function.
9734
2c7b8bf6
AM
97352013-06-11 Alan Modra <amodra@gmail.com>
9736
9737 * varasm.c (get_section): Don't die on !DECL_P decl. Tidy error
9738 reporting.
9739 (get_named_section): Don't NULL !DECL_P decl.
9740
77cea46e
IZ
97412013-06-11 Igor Zamyatin <igor.zamyatin@intel.com>
9742
9743 * doc/invoke.texi (core-avx2): Document.
9744 (slm): Likewise.
9745 (atom): Updated with MOVBE.
9746
888f0920
RB
97472013-06-11 Richard Biener <rguenther@suse.de>
9748
22fc7d3d 9749 * collect2.c (main): Do not redirect ld stdout/stderr when debugging.
888f0920 9750
6b438d58
AB
97512013-06-11 Anton Blanchard <anton@samba.org>
9752
9753 * config/rs6000/rs6000.c (rs6000_adjust_atomic_subword): Calculate
9754 correct shift value in little-endian mode.
9755
3bc66938
JJ
97562013-06-11 Jakub Jelinek <jakub@redhat.com>
9757
9758 PR target/56564
9759 * varasm.c (get_variable_align): Move #endif to the right place.
9760
a5dc7f88
CC
97612013-06-10 Cary Coutant <ccoutant@google.com>
9762
9763 * dwarf2out.c (hash_external_ref): Use die_symbol or signature
9764 for hash so that hash table traversal order is deterministic.
9765
19be72ab 97662013-06-10 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
9767 Pat Haugen <pthaugen@us.ibm.com>
9768 Peter Bergner <bergner@vnet.ibm.com>
19be72ab
MM
9769
9770 * config/rs6000/vector.md (GPR move splitter): Do not split moves
9771 of vectors in GPRS if they are direct moves or quad word load or
9772 store moves.
9773
9774 * config/rs6000/rs6000-protos.h (rs6000_output_move_128bit): Add
9775 declaration.
9776 (direct_move_p): Likewise.
9777 (quad_load_store_p): Likewise.
9778
9779 * config/rs6000/rs6000.c (enum rs6000_reg_type): Simplify register
9780 classes into bins based on the physical register type.
9781 (reg_class_to_reg_type): Likewise.
9782 (IS_STD_REG_TYPE): Likewise.
9783 (IS_FP_VECT_REG_TYPE): Likewise.
9784 (reload_fpr_gpr): Arrays to determine what insn to use if we can
9785 use direct move instructions.
9786 (reload_gpr_vsx): Likewise.
9787 (reload_vsx_gpr): Likewise.
9788 (rs6000_init_hard_regno_mode_ok): Precalculate the register type
9789 information that is a simplification of register classes. Also
9790 precalculate direct move reload helpers.
9791 (direct_move_p): New function to return true if the operation can
9792 be done as a direct move instruciton.
9793 (quad_load_store_p): New function to return true if the operation
9794 is a quad memory operation.
9795 (rs6000_legitimize_address): If quad memory, only allow register
9796 indirect for TImode addresses.
9797 (rs6000_legitimate_address_p): Likewise.
9798 (enum reload_reg_type): Delete, replace with rs6000_reg_type.
9799 (rs6000_reload_register_type): Likewise.
9800 (register_to_reg_type): Return register type.
9801 (rs6000_secondary_reload_simple_move): New helper function for
9802 secondary reload and secondary memory needed to identify anything
9803 that is a simple move, and does not need reloading.
9804 (rs6000_secondary_reload_direct_move): New helper function for
9805 secondary reload to identify cases that can be done with several
9806 instructions via the direct move instructions.
9807 (rs6000_secondary_reload_move): New helper function for secondary
9808 reload to identify moves between register types that can be done.
9809 (rs6000_secondary_reload): Add support for quad memory operations
9810 and for direct move.
9811 (rs6000_secondary_memory_needed): Likewise.
9812 (rs6000_debug_secondary_memory_needed): Change argument names.
9813 (rs6000_output_move_128bit): New function to return the move to
9814 use for 128-bit moves, including knowing about the various
9815 limitations of quad memory operations.
9816
9817 * config/rs6000/vsx.md (vsx_mov<mode>): Add support for quad
9818 memory operations. call rs6000_output_move_128bit for the actual
9819 instruciton(s) to generate.
9820 (vsx_movti_64bit): Likewise.
9821
9822 * config/rs6000/rs6000.md (UNSPEC_P8V_FMRGOW): New unspec values.
9823 (UNSPEC_P8V_MTVSRWZ): Likewise.
9824 (UNSPEC_P8V_RELOAD_FROM_GPR): Likewise.
9825 (UNSPEC_P8V_MTVSRD): Likewise.
9826 (UNSPEC_P8V_XXPERMDI): Likewise.
9827 (UNSPEC_P8V_RELOAD_FROM_VSX): Likewise.
9828 (UNSPEC_FUSION_GPR): Likewise.
9829 (FMOVE128_GPR): New iterator for direct move.
22fc7d3d 9830 (f32_lv): New mode attribute for load/store of SFmode/SDmode values.
19be72ab
MM
9831 (f32_sv): Likewise.
9832 (f32_dm): Likewise.
9833 (zero_extend<mode>di2_internal1): Add support for power8 32-bit
9834 loads and direct move instructions.
9835 (zero_extendsidi2_lfiwzx): Likewise.
9836 (extendsidi2_lfiwax): Likewise.
9837 (extendsidi2_nocell): Likewise.
9838 (floatsi<mode>2_lfiwax): Likewise.
9839 (lfiwax): Likewise.
9840 (floatunssi<mode>2_lfiwzx): Likewise.
9841 (lfiwzx): Likewise.
9842 (fix_trunc<mode>_stfiwx): Likewise.
9843 (fixuns_trunc<mode>_stfiwx): Likewise.
9844 (mov<mode>_hardfloat, 32-bit floating point): Likewise.
9845 (mov<move>_hardfloat64, 64-bit floating point): Likewise.
9846 (parity<mode>2_cmpb): Set length/type attr.
9847 (unnamed shift right patterns, mov<mode>_internal2): Change type attr
9848 for 'mr.' to fast_compare.
9849 (bpermd_<mode>): Change type attr to popcnt.
9850 (p8_fmrgow_<mode>): New insns for power8 direct move support.
9851 (p8_mtvsrwz_1): Likewise.
9852 (p8_mtvsrwz_2): Likewise.
9853 (reload_fpr_from_gpr<mode>): Likewise.
9854 (p8_mtvsrd_1): Likewise.
9855 (p8_mtvsrd_2): Likewise.
9856 (p8_xxpermdi_<mode>): Likewise.
9857 (reload_vsx_from_gpr<mode>): Likewise.
9858 (reload_vsx_from_gprsf): Likewise.
9859 (p8_mfvsrd_3_<mode>): LIkewise.
9860 (reload_gpr_from_vsx<mode>): Likewise.
9861 (reload_gpr_from_vsxsf): Likewise.
9862 (p8_mfvsrd_4_disf): Likewise.
9863 (multi-word GPR splits): Do not split direct moves or quad memory
9864 operations.
9865
16876bdc
DM
98662013-06-10 David Malcolm <dmalcolm@redhat.com>
9867
9868 * tree-into-ssa.c (interesting_blocks): Make static.
9869
df8a1d28
JJ
98702013-06-10 Jakub Jelinek <jakub@redhat.com>
9871
9872 PR target/56564
9873 * varasm.c (align_variable): Don't use DATA_ALIGNMENT or
9874 CONSTANT_ALIGNMENT if !decl_binds_to_current_def_p (decl).
9875 Use DATA_ABI_ALIGNMENT for that case instead if defined.
9876 (get_variable_align): New function.
9877 (get_variable_section, emit_bss, emit_common,
9878 assemble_variable_contents, place_block_symbol): Use
9879 get_variable_align instead of DECL_ALIGN.
9880 (assemble_noswitch_variable): Add align argument, use it
9881 instead of DECL_ALIGN.
9882 (assemble_variable): Adjust caller. Use get_variable_align
9883 instead of DECL_ALIGN.
9884 * config/i386/i386.h (DATA_ALIGNMENT): Adjust x86_data_alignment
9885 caller.
9886 (DATA_ABI_ALIGNMENT): Define.
9887 * config/i386/i386-protos.h (x86_data_alignment): Adjust prototype.
9888 * config/i386/i386.c (x86_data_alignment): Add opt argument. If
9889 opt is false, only return the psABI mandated alignment increase.
9890 * config/c6x/c6x.h (DATA_ALIGNMENT): Renamed to...
9891 (DATA_ABI_ALIGNMENT): ... this.
9892 * config/mmix/mmix.h (DATA_ALIGNMENT): Renamed to...
9893 (DATA_ABI_ALIGNMENT): ... this.
9894 * config/mmix/mmix.c (mmix_data_alignment): Adjust function comment.
9895 * config/s390/s390.h (DATA_ALIGNMENT): Renamed to...
9896 (DATA_ABI_ALIGNMENT): ... this.
9897 * doc/tm.texi.in (DATA_ABI_ALIGNMENT): Document.
9898 * doc/tm.texi: Regenerated.
9899
57b29ca6
UB
99002013-06-10 Uros Bizjak <ubizjak@gmail.com>
9901
9902 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Also use
9903 cmp_code to construct REG_EQUAL note.
9904
3e56ed50
JJ
99052013-06-09 Jakub Jelinek <jakub@redhat.com>
9906
9907 PR target/57568
9908 * config/i386/i386.md (TARGET_READ_MODIFY_WRITE peepholes): Ensure
9909 that operands[2] doesn't overlap with operands[0].
9910
74fe2a1d
DE
99112013-06-09 David Edelsohn <dje.gcc@gmail.com>
9912 Jan Hubicka <jh@suse.cz>
9913
9914 * config/rs6000/rs6000.c (print_operand, 'z'): Remove historical
9915 hack to mark symbols as used.
9916
ed52a84e
VM
99172013-06-08 Vladimir Makarov <vmakarov@redhat.com>
9918
9919 PR rtl-optimization/57559
9920 * lra-constraints.c (process_alt_operands): Don't discourage
9921 memory with known offset for offsetable memory constraint.
9922 * lra.c (lra_emit_add): Exchange y and z for 2-op add insn.
9923
299316ed
EB
99242013-06-08 Eric Botcazou <ebotcazou@adacore.com>
9925
9926 * varasm.c (struct oc_local_state): Reorder fields.
9927 (output_constructor_bitfield): Replace OUTER parameter with BIT_OFFSET
9928 and adjust accordingly.
9929 (output_constructor): Reorder initialization code and adjust call to
9930 output_constructor_bitfield.
9931
88ac60d3
JH
99322013-06-07 Jan Hubicka <jh@suse.cz>
9933
9934 * symtab.c (symtab_resolve_alias): Do not remove alias attribute.
9935
4cdce1a8
DM
99362013-06-07 David Malcolm <dmalcolm@redhat.com>
9937
9938 * tree-object-size.c (unknown): Make const.
9939
b5e0425c
AK
99402013-06-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9941
9942 * config/s390/s390.md (cpu_facility): Add cpu_zarch.
9943 ("*movmem_short", "*clrmem_short", "*cmpmem_short): Use cpu_zarch
9944 for last alternative in the cpu_facility attribute.
9945
79678d04
KT
99462013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9947
9948 PR target/56315
9949 * config/arm/arm.md (*xordi3_insn): Change to insn_and_split.
9950 (xordi3): Change operand 2 constraint to arm_xordi_operand.
9951 * config/arm/arm.c (const_ok_for_dimode_op): Handle XOR.
9952 * config/arm/constraints.md (Dg): New constraint.
9953 * config/arm/neon.md (xordi3_neon): Remove.
9954 (neon_veor<mode>): Generate xordi3 instead of xordi3_neon.
9955 * config/arm/predicates.md (arm_xordi_operand): New predicate.
9956
b31ddbdb
KT
99572013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9958
9959 * config/arm/arm.md (anddi3_insn): Remove duplicate alternatives.
9960 Clean up alternatives.
9961
8f90b7d4
AM
99622013-06-07 Alan Modra <amodra@gmail.com>
9963
9964 * config/rs6000/rs6000.c (setup_incoming_varargs): Round up
9965 va_list_gpr_size.
9966
961ce119
AM
99672013-06-07 Alan Modra <amodra@gmail.com>
9968
9969 * varasm.c (force_const_mem): Assert mode is not VOID or BLK.
9970
33e49835
KT
99712013-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9972
9973 * config/arm/constraints.md (Df): New constraint.
9974 * config/arm/arm.md (iordi3_insn): Use Df constraint instead of De.
9975 Correct length attribute for last two alternatives.
9976
acd17ae6
AM
99772013-06-07 Alan Modra <amodra@gmail.com>
9978
9979 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
9980 override user -mfp-in-toc.
9981 (offsettable_ok_by_alignment): Consider just the current access
9982 rather than the whole object, unless BLKmode. Handle
9983 CONSTANT_POOL_ADDRESS_P constants that lack a decl too.
9984 (use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants
9985 for -mcmodel=medium.
9986 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
9987 override user -mfp-in-toc or -msum-in-toc. Default to
9988 -mno-fp-in-toc for -mcmodel=medium.
9989
73310b0e
DD
99902013-06-06 DJ Delorie <dj@redhat.com>
9991
9992 * config/rl78/rl78.c (rl78_valid_pointer_mode): New, implements
9993 TARGET_VALID_POINTER_MODE.
9994
0bd62dca 99952013-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
9996 Pat Haugen <pthaugen@us.ibm.com>
9997 Peter Bergner <bergner@vnet.ibm.com>
0bd62dca
MM
9998
9999 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions):
10000 Document new power8 builtins.
10001
10002 * config/rs6000/vector.md (and<mode>3): Add a clobber/scratch of a
10003 condition code register, to allow 128-bit logical operations to be
10004 done in the VSX or GPR registers.
10005 (nor<mode>3): Use the canonical form for nor.
10006 (eqv<mode>3): Add expanders for power8 xxleqv, xxlnand, xxlorc,
10007 vclz*, and vpopcnt* vector instructions.
10008 (nand<mode>3): Likewise.
10009 (orc<mode>3): Likewise.
10010 (clz<mode>2): LIkewise.
10011 (popcount<mode>2): Likewise.
10012
10013 * config/rs6000/predicates.md (int_reg_operand): Rework tests so
10014 that only the GPRs are recognized.
10015
10016 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
10017 support for new power8 builtins.
10018
10019 * config/rs6000/rs6000-builtin.def (xscvspdpn): Add new power8
10020 builtin functions.
10021 (xscvdpspn): Likewise.
10022 (vclz): Likewise.
10023 (vclzb): Likewise.
10024 (vclzh): Likewise.
10025 (vclzw): Likewise.
10026 (vclzd): Likewise.
10027 (vpopcnt): Likewise.
10028 (vpopcntb): Likewise.
10029 (vpopcnth): Likewise.
10030 (vpopcntw): Likewise.
10031 (vpopcntd): Likewise.
10032 (vgbbd): Likewise.
10033 (vmrgew): Likewise.
10034 (vmrgow): Likewise.
10035 (eqv): Likewise.
10036 (eqv_v16qi3): Likewise.
10037 (eqv_v8hi3): Likewise.
10038 (eqv_v4si3): Likewise.
10039 (eqv_v2di3): Likewise.
10040 (eqv_v4sf3): Likewise.
10041 (eqv_v2df3): Likewise.
10042 (nand): Likewise.
10043 (nand_v16qi3): Likewise.
10044 (nand_v8hi3): Likewise.
10045 (nand_v4si3): Likewise.
10046 (nand_v2di3): Likewise.
10047 (nand_v4sf3): Likewise.
10048 (nand_v2df3): Likewise.
10049 (orc): Likewise.
10050 (orc_v16qi3): Likewise.
10051 (orc_v8hi3): Likewise.
10052 (orc_v4si3): Likewise.
10053 (orc_v2di3): Likewise.
10054 (orc_v4sf3): Likewise.
10055 (orc_v2df3): Likewise.
10056
10057 * config/rs6000/rs6000.c (rs6000_option_override_internal): Only
10058 allow power8 quad mode in 64-bit.
10059 (rs6000_builtin_vectorized_function): Add support to vectorize
10060 ISA 2.07 count leading zeros, population count builtins.
10061 (rs6000_expand_vector_init): On ISA 2.07 use xscvdpspn to form
10062 V4SF vectors instead of xscvdpsp to avoid IEEE related traps.
10063 (builtin_function_type): Add vgbbd builtin function which takes an
10064 unsigned argument.
10065 (altivec_expand_vec_perm_const): Add support for new power8 merge
10066 instructions.
10067
10068 * config/rs6000/vsx.md (VSX_L2): New iterator for 128-bit types,
10069 that does not include TImdoe for use with 32-bit.
10070 (UNSPEC_VSX_CVSPDPN): Support for power8 xscvdpspn and xscvspdpn
10071 instructions.
10072 (UNSPEC_VSX_CVDPSPN): Likewise.
10073 (vsx_xscvdpspn): Likewise.
10074 (vsx_xscvspdpn): Likewise.
10075 (vsx_xscvdpspn_scalar): Likewise.
10076 (vsx_xscvspdpn_directmove): Likewise.
10077 (vsx_and<mode>3): Split logical operations into 32-bit and
10078 64-bit. Add support to do logical operations on TImode as well as
10079 VSX vector types. Allow logical operations to be done in either
10080 VSX registers or in general purpose registers in 64-bit mode. Add
10081 splitters if GPRs were used. For AND, add clobber of CCmode to
10082 allow use of ANDI on GPRs. Rewrite nor to use the canonical RTL
10083 encoding.
10084 (vsx_and<mode>3_32bit): Likewise.
10085 (vsx_and<mode>3_64bit): Likewise.
10086 (vsx_ior<mode>3): Likewise.
10087 (vsx_ior<mode>3_32bit): Likewise.
10088 (vsx_ior<mode>3_64bit): Likewise.
10089 (vsx_xor<mode>3): Likewise.
10090 (vsx_xor<mode>3_32bit): Likewise.
10091 (vsx_xor<mode>3_64bit): Likewise.
10092 (vsx_one_cmpl<mode>2): Likewise.
10093 (vsx_one_cmpl<mode>2_32bit): Likewise.
10094 (vsx_one_cmpl<mode>2_64bit): Likewise.
10095 (vsx_nor<mode>3): Likewise.
10096 (vsx_nor<mode>3_32bit): Likewise.
10097 (vsx_nor<mode>3_64bit): Likewise.
10098 (vsx_andc<mode>3): Likewise.
10099 (vsx_andc<mode>3_32bit): Likewise.
10100 (vsx_andc<mode>3_64bit): Likewise.
10101 (vsx_eqv<mode>3_32bit): Add support for power8 xxleqv, xxlnand,
10102 and xxlorc instructions.
10103 (vsx_eqv<mode>3_64bit): Likewise.
10104 (vsx_nand<mode>3_32bit): Likewise.
10105 (vsx_nand<mode>3_64bit): Likewise.
10106 (vsx_orc<mode>3_32bit): Likewise.
10107 (vsx_orc<mode>3_64bit): Likewise.
10108
10109 * config/rs6000/rs6000.h (VLOGICAL_REGNO_P): Update comment.
10110
10111 * config/rs6000/altivec.md (UNSPEC_VGBBD): Add power8 vgbbd
10112 instruction.
10113 (p8_vmrgew): Add power8 vmrgew and vmrgow instructions.
10114 (p8_vmrgow): Likewise.
10115 (altivec_and<mode>3): Add clobber of CCmode to allow AND using
10116 GPRs to be split under VSX.
10117 (p8v_clz<mode>2): Add power8 count leading zero support.
10118 (p8v_popcount<mode>2): Add power8 population count support.
10119 (p8v_vgbbd): Add power8 gather bits by bytes by doubleword
10120 support.
10121
10122 * config/rs6000/rs6000.md (eqv<mode>3): Add support for powerp eqv
10123 instruction.
10124
10125 * config/rs6000/altivec.h (vec_eqv): Add defines to export power8
10126 builtin functions.
10127 (vec_nand): Likewise.
10128 (vec_vclz): Likewise.
10129 (vec_vclzb): Likewise.
10130 (vec_vclzd): Likewise.
10131 (vec_vclzh): Likewise.
10132 (vec_vclzw): Likewise.
10133 (vec_vgbbd): Likewise.
10134 (vec_vmrgew): Likewise.
10135 (vec_vmrgow): Likewise.
10136 (vec_vpopcnt): Likewise.
10137 (vec_vpopcntb): Likewise.
10138 (vec_vpopcntd): Likewise.
10139 (vec_vpopcnth): Likewise.
10140 (vec_vpopcntw): Likewise.
10141
37684c46
VM
101422013-06-06 Vladimir Makarov <vmakarov@redhat.com>
10143
10144 PR rtl-optimization/57468
10145 * config/i386/i386.c (inline_secondary_memory_needed): Ignore
10146 spilled pseudos.
10147
d89ae27c
VM
101482013-06-06 Vladimir Makarov <vmakarov@redhat.com>
10149
10150 PR rtl-optimization/57459
10151 * lra-constraints.c (update_ebb_live_info): Fix typo for operand
10152 type when setting live regs.
10153
3597e113
VM
101542013-06-06 Vladimir Makarov <vmakarov@redhat.com>
10155
10156 * config/s390/s390.opt (mlra): New option.
10157 * config/s390/s390.c (s390_decompose_address): Check displacement
10158 for all registers for LRA.
10159 (s390_secondary_reload): Don't used secondary reloads for LRA.
10160 (s390_lra_p): New function.
10161 (TARGET_LRA_P): Define.
10162 * config/s390/s390.md (*movmem_short, *clrmem_short): Change value
10163 of attribute cpu_facility to zarch for the last alternative.
10164 (*cmpmem_short): Ditto.
10165
01037aeb
EB
101662013-06-06 Eric Botcazou <ebotcazou@adacore.com>
10167
10168 * config/arm/arm.c (arm_r3_live_at_start_p): New predicate.
10169 (arm_compute_static_chain_stack_bytes): Use it. Tidy up.
10170 (arm_expand_prologue): Likewise.
10171
3371a64f
TJ
101722013-06-06 Teresa Johnson <tejohnson@google.com>
10173
10174 PR c++/53743
10175 * ifcvt.c (find_if_case_1): Replace BB_COPY_PARTITION with assert
10176 as this is now done by redirect_edge_and_branch_force.
10177 * function.c (thread_prologue_and_epilogue_insns): Insert new bb after
10178 barriers, and fix interaction with splitting.
10179 * emit-rtl.c (try_split): Copy REG_CROSSING_JUMP notes.
10180 * cfgcleanup.c (try_forward_edges): Fix early return value to properly
10181 reflect changes made in the routine.
10182 * bb-reorder.c (emit_barrier_after_bb): Move to cfgrtl.c.
10183 (fix_up_fall_thru_edges): Remove incorrect check for bb layout order
10184 since this is called in cfglayout mode, and replace partition fixup
10185 with assert as that is now done by force_nonfallthru_and_redirect.
10186 (add_reg_crossing_jump_notes): Handle the fact that some jumps may
10187 already be marked with region crossing note.
10188 (insert_section_boundary_note): Make non-static, gate on flag
10189 has_bb_partition, rewrite to also check for multiple partitions.
10190 (rest_of_handle_reorder_blocks): Remove call to
10191 insert_section_boundary_note, now done later during free_cfg.
10192 (duplicate_computed_gotos): Don't duplicate partition crossing edge.
10193 * bb-reorder.h (insert_section_boundary_note): Declare.
10194 * Makefile.in (cfgrtl.o): Depend on bb-reorder.h
10195 * cfgrtl.c (rest_of_pass_free_cfg): If partitions exist
10196 invoke insert_section_boundary_note.
10197 (try_redirect_by_replacing_jump): Remove unnecessary
10198 check for region crossing note.
10199 (fixup_partition_crossing): New function.
10200 (rtl_redirect_edge_and_branch): Fixup partition boundaries.
10201 (emit_barrier_after_bb): Move here from bb-reorder.c, handle insertion
10202 in non-cfglayout mode.
10203 (force_nonfallthru_and_redirect): Fixup partition boundaries,
10204 remove old code that tried to do this. Emit barrier correctly
10205 when we are in cfglayout mode.
10206 (last_bb_in_partition): New function.
10207 (rtl_split_edge): Correctly fixup partition boundaries.
10208 (commit_one_edge_insertion): Remove old code that tried to
10209 fixup region crossing edge since this is now handled in
10210 split_block, and set up insertion point correctly since
10211 block may now end in a jump.
10212 (verify_hot_cold_block_grouping): Guard against checking when not in
10213 linearized RTL mode.
10214 (rtl_verify_edges): Add checks for incorrect/missing REG_CROSSING_JUMP
10215 notes.
10216 (rtl_verify_flow_info_1): Move verify_hot_cold_block_grouping to
10217 rtl_verify_flow_info, so not called in cfglayout mode.
10218 (rtl_verify_flow_info): Move verify_hot_cold_block_grouping here.
10219 (fixup_reorder_chain): Remove old code that attempted to fixup region
10220 crossing note as this is now handled in force_nonfallthru_and_redirect.
10221 (duplicate_insn_chain): Don't duplicate switch section notes.
10222 (rtl_can_remove_branch_p): Remove unnecessary check for region crossing
10223 note.
10224 * basic-block.h (emit_barrier_after_bb): Declare.
10225
66071e10
KT
102262013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10227
10228 * config/arm/arm-fixed.md (add<mode>3,usadd<mode>3,ssadd<mode>3,
10229 sub<mode>3, ussub<mode>3, sssub<mode>3, arm_ssatsihi_shift,
10230 arm_usatsihi): Adjust alternatives for arm_restrict_it.
10231
0e26bf3d
KT
102322013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10233
10234 * config/arm/arm-ldmstm.ml: Set "predicable_short_it" to "no"
10235 where appropriate.
10236 * config/arm/ldmstm.md: Regenerate.
10237
12b4e7ef
KT
102382013-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10239
10240 * config/arm/sync.md (atomic_loaddi_1):
10241 Disable predication for arm_restrict_it.
10242 (arm_load_exclusive<mode>): Likewise.
10243 (arm_load_exclusivesi): Likewise.
10244 (arm_load_exclusivedi): Likewise.
10245 (arm_load_acquire_exclusive<mode>): Likewise.
10246 (arm_load_acquire_exclusivesi): Likewise.
10247 (arm_load_acquire_exclusivedi): Likewise.
10248 (arm_store_exclusive<mode>): Likewise.
10249 (arm_store_exclusive<mode>): Likewise.
10250 (arm_store_release_exclusivedi): Likewise.
10251 (arm_store_release_exclusive<mode>): Likewise.
10252
15d16c8a
RB
102532013-06-06 Richard Biener <rguenther@suse.de>
10254
10255 * lto-streamer.h (enum LTO_tags): Move LTO_tree_pickle_reference
10256 after LTO_null.
10257 (lto_tag_is_tree_code_p): Adjust.
10258 (lto_tag_is_gimple_code_p): Likewise.
10259 (lto_gimple_code_to_tag): Likewise.
10260 (lto_tag_to_gimple_code): Likewise.
10261 (lto_tree_code_to_tag): Likewise.
10262 (lto_tag_to_tree_code): Likewise.
10263 * data-streamer.h (streamer_write_hwi_in_range): Use
10264 uhwi streaming to stream the normalized range.
10265 (streamer_read_hwi_in_range): Likewise.
10266
17a7fc37
KT
102672013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10268
10269 * config/arm/arm.md (enabled_for_depr_it): New attribute.
10270 (predicable_short_it): Likewise.
10271 (predicated): Likewise.
10272 (enabled): Handle above.
10273 (define_cond_exec): Set predicated attribute to yes.
10274
b57ca59b
MS
102752013-06-05 Mike Stump <mikestump@comcast.net>
10276
10277 * gdbinit.in (__FUNCTION__): Add.
10278
c1e183a9
UB
102792013-06-05 Uros Bizjak <ubizjak@gmail.com>
10280
10281 * config/alpha/alpha.c (alpha_emit_conditional_move): Swap all
10282 GE, GT, GEU and GTU compares, modulo DImode compares with zero.
10283
0378bddb
JH
102842013-06-05 Jan Hubicka <jh@suse.cz>
10285
10286 * varasm.c (mark_decl_referenced): Revert the removal until targets
10287 are fixed.
10288
8f8a2057
DE
102892013-06-05 David Edelsohn <dje.gcc@gmail.com>
10290
10291 * config/rs6000/rs6000.c (print_operand, 'z'): Use DECL_PRESERVE_P
10292 instead of mark_decl_referenced.
10293
edb983b2
JH
102942013-06-05 Jan Hubicka <jh@suse.cz>
10295
10296 * cgraph.c (cgraph_remove_node): Clear forced_by_abi.
10297 (cgraph_node_cannot_be_local_p_1): Honnor symbol.forced_by_abi
10298 and symtab_used_from_object_file_p.
10299 (cgraph_make_node_local_1): Clear forced_by_abi.
10300 (cgraph_can_remove_if_no_direct_calls_and): Use forced_by_abi
10301 * cgraph.h (symtab_node_base): Add forced_by_abi.
10302 (decide_is_variable_needed): Remove.
10303 (varpool_can_remove_if_no_refs): Honnor symbol.forced_by_abi.
10304 * cgraphunit.c (cgraph_decide_is_function_needed): Rename to ..
10305 (decide_is_symbol_needed): ... this one; handle symbols in general;
10306 always analyze virtuals; honnor forced_by_abi.
10307 (cgraph_finalize_function): Update.
10308 (varpool_finalize_decl): Update.
10309 (symbol_defined_and_needed): Remove.
10310 (analyze_functions): Update.
10311 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
10312 output_refs, input_overwrite_node): Handle forced_by_abi.
10313 * ipa.c (cgraph_address_taken_from_non_vtable_p): Rename to ...
10314 (address_taken_from_non_vtable_p): ... this one.
10315 (comdat_can_be_unshared_p_1): New function.
10316 (cgraph_comdat_can_be_unshared_p): Rename to ...
10317 (comdat_can_be_unshared_p): ... this one; handle symbols in general.
10318 (varpool_externally_visible_p): Use comdat_can_be_unshared_p.
10319 (function_and_variable_visibility): Clear forced_by_abi as needed.
10320 * trans-mem.c (ipa_tm_mark_forced_by_abi_node): New functoin.
10321 (ipa_tm_create_version_alias, ipa_tm_create_version): Update.
edb983b2
JH
10322 * symtab.c (dump_symtab_base): Dump forced_by_abi.
10323 * varpool.c (decide_is_variable_needed): Remove.
10324
9912dbe5
KT
103252013-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10326
10327 * config/arm/arm.c (MAX_INSN_PER_IT_BLOCK): New macro.
10328 (arm_option_override): Override arm_restrict_it where appropriate.
10329 (thumb2_final_prescan_insn): Use MAX_INSN_PER_IT_BLOCK.
10330 * config/arm/arm.opt (mrestrict-it): New command-line option.
10331 * doc/invoke.texi: Document -mrestrict-it.
10332
34c136b6
DM
103332013-06-05 David Malcolm <dmalcolm@redhat.com>
10334
10335 * tsan.c (tsan_atomic_table): Make const.
10336
a367df53
RB
103372013-06-05 Richard Biener <rguenther@suse.de>
10338
10339 * tree-streamer.c (streamer_tree_cache_insert_1): Update the
10340 index associated with the tree we are supposed to replace.
10341 * tree-streamer-out.c (pack_ts_base_value_fields): Output
10342 TREE_ASM_WRITTEN as zero for everything but SSA names.
10343
70d51a19
DM
103442013-06-05 David Malcolm <dmalcolm@redhat.com>
10345
10346 * tree-ssa-structalias.c (call_stmt_vars): Make static.
10347
b9bd2075
JH
103482013-06-04 Jan Hubicka <jh@suse.cz>
10349
10350 * lto-cgraph.c (get_alias_symbol): Remove weakref sanity check.
10351 (input_node, input_varpool_node): Handle correctly external same
10352 body aliases.
10353 * ipa.c (symtab_remove_unreachable_nodes): Do not remove external
10354 nodes at ltrans stage.
10355
aaae719d
JH
103562013-06-04 Jan Hubicka <jh@suse.cz>
10357
10358 * ipa-inline.c (update_caller_keys): Fix availability test.
10359 (update_callee_keys): Likewise.
10360 * symtab.c (symtab_alias_ultimate_target): Make availaiblity logic
10361 to follow ELF standard.
10362
107eea2c
JU
103632013-06-04 Jürgen Urban <JuergenUrban@gmx.de>
10364
10365 * config.gcc (mipsr5900-*-elf*, mipsr5900el-*-elf*, mips64r5900-*-elf*)
10366 (mips64r5900el-*-elf*): New configurations.
10367 * config/mips/mips-cpus.def (r5900): New processor.
10368 * config/mips/mips-tables.opt: Regenerate.
10369 * config/mips/mips.c (mips_rtx_cost_data): Add an R5900 entry.
10370 (mips_issue_rate): Handle PROCESSOR_R5900.
10371 (mips_reorg_process_insns): Force reorder mode for the R5900.
10372 * config/mips/mips.h (TARGET_MIPS5900): Define.
10373 (ISA_HAS_CONDMOVE, ISA_HAS_PREFETCH, ISA_HAS_HILO_INTERLOCKS): Include
10374 TARGET_MIPS5900.
10375 (ISA_HAS_LOAD_DELAY, ISA_HAS_XFER_DELAY, ISA_HAS_FCMP_DELAY): Exclude
10376 TARGET_MIPS5900.
10377 * config/mips/mips.md (processor): Add r5900.
10378 (MOVECC): Disallow CCmode conditions for TARGET_MIPS5900.
10379
b7342d25
IB
103802013-06-04 Ian Bolton <ian.bolton@arm.com>
10381
10382 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Call
10383 into function to generate MOVI instruction.
c1e183a9 10384 * config/aarch64/aarch64.c (aarch64_simd_container_mode): New function.
b7342d25
IB
10385 (aarch64_preferred_simd_mode): Turn into wrapper.
10386 (aarch64_output_scalar_simd_mov_immediate): New function.
10387 * config/aarch64/aarch64-protos.h: Add prototype for above.
10388
81c2dfb9
IB
103892013-06-04 Ian Bolton <ian.bolton@arm.com>
10390
10391 * config/aarch64/aarch64.c (simd_immediate_info): Remove
10392 element_char member.
10393 (sizetochar): Return signed char.
10394 (aarch64_simd_valid_immediate): Remove elchar and other
10395 unnecessary variables.
10396 (aarch64_output_simd_mov_immediate): Take rtx instead of &rtx.
10397 Calculate element_char as required.
10398 * config/aarch64/aarch64-protos.h: Update and move prototype
10399 for aarch64_output_simd_mov_immediate.
10400 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
10401 Update arguments.
10402
48063b9d
IB
104032013-06-04 Ian Bolton <ian.bolton@arm.com>
10404
10405 * config/aarch64/aarch64.c (simd_immediate_info): Struct to hold
10406 information completed by aarch64_simd_valid_immediate.
10407 (aarch64_legitimate_constant_p): Update arguments.
10408 (aarch64_simd_valid_immediate): Work with struct rather than many
10409 pointers.
10410 (aarch64_simd_scalar_immediate_valid_for_move): Update arguments.
10411 (aarch64_simd_make_constant): Update arguments.
10412 (aarch64_output_simd_mov_immediate): Work with struct rather than
10413 many pointers. Output immediate directly rather than as operand.
10414 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
10415 Update prototype.
10416 * config/aarch64/constraints.md (Dn): Update arguments.
10417
3ea63f60
IB
104182013-06-04 Ian Bolton <ian.bolton@arm.com>
10419
10420 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): No
10421 longer static.
10422 (aarch64_simd_immediate_valid_for_move): Remove.
10423 (aarch64_simd_scalar_immediate_valid_for_move): Update call.
10424 (aarch64_simd_make_constant): Update call.
10425 (aarch64_output_simd_mov_immediate): Update call.
10426 * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
10427 Add prototype.
10428 * config/aarch64/constraints.md (Dn): Update call.
10429
d8edd899
IB
104302013-06-04 Ian Bolton <ian.bolton@arm.com>
10431
10432 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Change
10433 return type to bool for prototype.
10434 (aarch64_legitimate_constant_p): Check for true instead of not -1.
10435 (aarch64_simd_valid_immediate): Fix up each return to return a bool.
10436 (aarch64_simd_immediate_valid_for_move): Update retval for bool.
10437
44b20bb8
CM
104382013-06-04 Catherine Moore <clm@codesourcery.com>
10439
10440 * config/mips/mips.opt (meva): New.
c1e183a9 10441 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define __mips_eva.
44b20bb8
CM
10442 (ASM_SPEC): Handle -meva.
10443 * doc/invoke.texi (meva): Document.
10444
52befbd8
AM
104452013-06-04 Alan Modra <amodra@gmail.com>
10446
10447 * config/rs6000/rs6000.c (output_toc): Correct little-endian float
10448 constant output.
10449
aadaf24e
KT
104502013-06-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10451
10452 * rtl.def: Add extra fourth optional field to define_cond_exec.
10453 * gensupport.c (process_one_cond_exec): Process attributes from
10454 define_cond_exec.
10455 * doc/md.texi: Document fourth field in define_cond_exec.
10456
0cd9e9ee
EB
104572013-06-04 Eric Botcazou <ebotcazou@adacore.com>
10458
10459 * expmed.c (extract_bit_field_1): In the larger-than-a-word case, factor
10460 out the processing order as in store_bit_field_1.
10461
cb0f665d
JH
104622013-06-04 Jan Hubicka <jh@suse.cz>
10463
10464 PR middle-end/57500
10465 * cgraphunit.c (cgraph_process_same_body_aliases): Create
10466 non-VAR_DECL node if it does not exist yet.
10467
53984b9b
RS
104682013-06-03 Richard Sandiford <rdsandiford@googlemail.com>
10469
10470 * config.gcc (mipsisa64sr71k-*-elf*, mipsisa64sb1-*-elf*)
10471 (mipsisa64sb1el-*-elf*, mips64-*-elf*, mips64el-*-elf*)
10472 (mips64orion-*-elf*, mips64orionel-*-elf*): Remove
10473 target_cpu_default setting.
10474
5d318fd4
TJ
104752013-06-03 Teresa Johnson <tejohnson@google.com>
10476
10477 * dumpfile.c (opt_info_switch_p): Change -fopt-info
10478 default to -fopt-info=optimized instead of all.
10479 * doc/invoke.texi: Ditto.
10480 * tree-vectorizer.c (vectorize_loops): Emit loop vectorization
10481 success under MSG_OPTIMIZED_LOCATIONS, and use dump_printf_loc.
10482 (execute_vect_slp): Emit BB vectorization success under
10483 MSG_OPTIMIZED_LOCATIONS.
10484 * tree-vect-slp.c (vect_slp_transform_bb): Change
10485 MSG_OPTIMIZED_LOCATIONS to MSG_NOTE.
10486 * tree-vect-loop.c (vect_transform_loop): Ditto.
10487
ec3af349
JM
104882013-06-03 Jason Merrill <jason@redhat.com>
10489
10490 PR c++/57415
10491 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
10492 Use TARGET_EXPR for C++.
10493
1baf9159
JJ
104942013-06-03 Jakub Jelinek <jakub@redhat.com>
10495
10496 PR rtl-optimization/57268
0cd9e9ee 10497 * sched-deps.c (sched_analyze_2): Don't flush_pending_lists
1baf9159
JJ
10498 if DEBUG_INSN_P (insn).
10499
10500 Reapply
10501 2013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
10502
10503 PR rtl-optimization/57268
10504 * sched-deps.c (sched_analyze_2): Flush dependence lists if
10505 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
10506
0f1d3965
YR
105072013-06-03 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
10508
10509 * config/i386/i386.c (ix86_lea_outperforms): Fix formatting.
10510 (ix86_avoid_lea_for_addr): Likewise.
10511 (exact_dependency_1): Likewise.
10512 (ix86_adjust_cost): Likewise.
10513 (swap_top_of_ready_list): Fix formatting and !reload_completed check
10514 removed.
10515 (do_reorder_for_imul): Fix typo, formatting and
10516 !reload_completed check removed.
10517 (ix86_sched_reorder): Fix typo and formatting.
10518 (fold_builtin_cpu): Move M_INTEL_SLM at the end of processor types
10519 list.
10520
3bc30db4
SN
105212013-06-03 Sofiane Naci <sofiane.naci@arm.com>
10522
10523 * config/aarch64/aarch64.md (*movdi_aarch64): Define "simd" attribute.
10524
19cc6fac
EB
105252013-06-03 Eric Botcazou <ebotcazou@adacore.com>
10526
10527 * varasm.c (output_constant) <CONSTRUCTOR>: Minor formatting tweak.
10528 <STRING_CST>: Likewise.
10529 <VECTOR_CST>: Likewise.
10530
c68a6e08
JW
105312013-06-01 Janus Weil <janus@gcc.gnu.org>
10532 Mikael Morin <mikael@gcc.gnu.org>
10533
10534 * configure.ac: Add AC_HEADER_TIOCGWINSZ macro.
10535 * config.in: Regenerated.
10536 * configure: Regenerated.
10537
38e55e5c
JH
105382013-06-01 Jan Hubicka <jh@suse.cz>
10539
10540 PR middle-end/57366
10541 * cgraphunit.c (compile): When weakref is not supported,
10542 set up transparent aliases before final output pass.
10543 * varasm.c (assemble_alias): Do not try to do it here.
10544
eb51d2ff
JH
105452013-06-01 Jan Hubicka <jh@suse.cz>
10546
10547 PR middle-end/57467
10548 * passes.c (for_per_function): Skip unanalyzed functions.
10549
40a7fe1e
JH
105502013-06-01 Jan Hubicka <jh@suse.cz>
10551
10552 * lto-symtab.c (lto_symtab_merge_cgraph_nodes_1): Rename to ...
10553 (lto_symtab_merge_symbols_1): ... this one.
10554 (lto_symtab_merge_cgraph_nodes): Rename to ...
10555 (lto_symtab_merge_symbols): ... this one; simplify.
10556 * cgraph.c (same_body_aliases_done): Rename to ...
10557 (cpp_implicit_aliases_done): ... this one.
10558 (cgraph_create_function_alias): Update.
10559 (cgraph_same_body_alias): Update.
c1e183a9 10560 (dump_cgraph_node): Remove alias dumping; simplify thunk dumping.
40a7fe1e 10561 (verify_edge_corresponds_to_fndecl): Simplify.
c1e183a9 10562 * cgraph.h (symtab_node_base): Add cpp_implicit_alias, alias_target.
40a7fe1e
JH
10563 (cgraph_node): Remove same_body_alias.
10564 (varpool_node): Remove alias_of and extra_name_alias.
10565 (same_body_aliases_done): Rename to ..
10566 (cpp_implicit_aliases_done): ... this one.
10567 (symtab_alias_ultimate_target): Add default parameter.
10568 (symtab_resolve_alias): New function.
10569 (fixup_same_cpp_alias_visibility): Declare.
10570 (cgraph_function_node): Add default parameter.
10571 (cgraph_node_asm_name): Likewise.
10572 (cgraph_function_or_thunk_node): Add default parameter; do
10573 not ICE when it is NULL.
10574 (varpool_variable_node): Likewise.
10575 * tree-emutls.c (create_emultls_var): Update.
10576 (ipa_lower_emutls): Update.
10577 * cgraphunit.c (cgraph_decide_is_function_needed): Update.
10578 (cgraph_reset_node): Reset alias info.
10579 (cgraph_finalize_function): Update.
10580 (fixup_same_cpp_alias_visibility): Move to symtab.c.
10581 (analyze_function): Simplify.
10582 (cgraph_process_same_body_aliases): Simplify.
10583 (analyze_functions): Fixup same body aliases.
10584 (handle_alias_pairs): Simplify.
10585 (assemble_thunk): Update.
10586 (assemble_thunks_and_aliases): Update.
10587 (output_weakrefs): Rewrite.
10588 * lto-cgraph.c (lto_output_node): Rewrite alias handling.
10589 (lto_output_varpool_node): Likewise.
10590 (compute_ltrans_boundary): Remve assert.
10591 (get_alias_symbol): New functoin.
10592 (input_node): Rewrite alias handling.
10593 (input_varpool_node): Likewise.
10594 * ipa-pure-const.c (propagate_pure_const): Fix formating.
10595 * ipa.c (process_references): Handle weakrefs correctly.
10596 (symtab_remove_unreachable_nodes): Likewise.
10597 * trans-mem.c (get_cg_data): Update.
10598 (ipa_tm_create_version_alias): Update.
10599 (ipa_tm_execute): Update.
10600 * symtab.c (dump_symtab_base): Dump aliases.
10601 (verify_symtab_base): Verify aliases.
10602 (symtab_node_availability): New function.
10603 (symtab_alias_ultimate_target): Simplify.
10604 (fixup_same_cpp_alias_visibility): Move here from cgraphunit.c;
10605 handle all the fixup cases.
10606 (symtab_resolve_alias): New function.
10607 * passes.c (ipa_write_summaries): Handle weakrefs.
10608 * varpool.c (varpool_analyze_node): Simplify.
10609 (assemble_aliases): Update.
10610 (varpool_create_variable_alias): Simplify.
10611 (varpool_extra_name_alias): Simplify.
10612 * lto-streamer.h (lto_symtab_merge_cgraph_nodes): Rename to...
10613 (lto_symtab_merge_symbols): ... this one.
10614
21759881
DT
106152013-06-01 Dinar Temirbulatov <dinar@kugelworks.com>
10616
10617 Revert
10618 PR rtl-optimization/57268
10619 * sched-deps.c (sched_analyze_2): Flush dependence lists if
10620 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
10621
daf4e940
TB
106222013-06-01 Tobias Burnus <burnus@net-b.de>
10623
10624 Partially reverted:
10625 2013-05-31 Tobias Burnus <burnus@net-b.de>
10626
10627 PR middle-end/57073
10628 * tree-ssa-math-opts.c (execute_cse_sincos): Move check
10629 further up.
10630
c359d8d0
DT
106312013-05-31 Dinar Temirbulatov <dinar@kugelworks.com>
10632
10633 PR rtl-optimization/57268
10634 * sched-deps.c (sched_analyze_2): Flush dependence lists if
10635 the sum of the read and write lists exceeds MAX_PENDING_LIST_LENGTH.
10636
4172215d
EB
106372013-05-31 Eric Botcazou <ebotcazou@adacore.com>
10638
10639 * config/rs6000/predicates.md (rs6000_cbranch_operator): Accept some
10640 unordered comparison operators when -fno-trapping-math is in effect
10641 on the e500.
10642 * config/rs6000/rs6000.c (rs6000_generate_compare): Remove dead code
10643 and implement unordered comparison operators properly on the e500.
10644
a8c50132
EB
106452013-05-31 Eric Botcazou <ebotcazou@adacore.com>
10646
10647 * simplify-rtx.c (simplify_byte_swapping_operation): Use proper macro
10648 for constant scalar integers.
10649 (simplify_relational_operation_1): Likewise.
10650
44626634
SB
106512013-05-31 Segher Boessenkool <segher@kernel.crashing.org>
10652
10653 * config/rs6000/rs6000-opts.h (enum processor_type): Reorder.
10654 * config/rs6000/rs6000.md (cpu): Reorder. Split long line.
10655 Fix comment.
10656
55805e54
YR
106572013-05-31 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
10658 Igor Zamyatin <igor.zamyatin@intel.com>
10659
10660 Silvermont (SLM) architecture performance tuning.
10661 * config/i386/i386.h (enum ix86_tune_indices): Add
10662 X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS.
10663 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS): New define.
10664
10665 * config/i386/i386.c (initial_ix86_tune_features)
10666 <X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS>: Initialize.
10667 (ix86_lea_outperforms): Handle Silvermont tuning.
10668 (ix86_avoid_lea_for_add): Add new argument to ix86_lea_outperforms
10669 call.
10670 (ix86_use_lea_for_mov): Likewise.
10671 (ix86_avoid_lea_for_addr): Likewise.
10672 (ix86_lea_for_add_ok): Likewise.
10673 (exact_dependency_1): New function.
10674 (exact_store_load_dependency): Likewise.
10675 (ix86_adjust_cost): Handle Silvermont tuning.
10676 (do_reoder_for_imul): Likewise.
10677 (swap_top_of_ready_list): New function.
10678 (ix86_sched_reorder): Changed to handle Silvermont tuning.
10679
10680 * config/i386/i386.md (peepholes that split memory operand in fp
10681 converts): New.
10682
e19c9de2
MS
106832013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
10684
10685 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
10686 Remove un-necessary braces.
10687
38e6c9a6
MS
106882013-05-31 Marcus Shawcroft <marcus.shawcroft@arm.com>
10689
10690 * config/aarch64/aarch64.c (aarch64_classify_symbol):
10691 Use SYMBOL_TINY_ABSOLUTE for AARCH64_CMODEL_TINY_PIC.
10692
e3530904
TB
106932013-05-31 Tobias Burnus <burnus@net-b.de>
10694
10695 PR middle-end/57073
c1e183a9 10696 * tree-ssa-math-opts.c (execute_cse_sincos): Move check further up.
e3530904 10697
b6af05a9
KT
106982013-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10699
10700 PR target/56315
10701 * config/arm/arm.c (const_ok_for_dimode_op): Handle IOR.
10702 * config/arm/arm.md (*iordi3_insn): Change to insn_and_split.
10703 * config/arm/neon.md (iordi3_neon): Remove.
10704 (neon_vorr<mode>): Generate iordi3 instead of iordi3_neon.
10705 * config/arm/predicates.md (imm_for_neon_logic_operand):
10706 Move to earlier in the file.
10707 (neon_logic_op2): Likewise.
10708 (arm_iordi_operand_neon): New predicate.
10709
f800c166
RB
107102013-05-31 Richard Biener <rguenther@suse.de>
10711
10712 PR tree-optimization/57478
10713 PR tree-optimization/57453
10714 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Uses in PHI nodes
10715 are life as well.
10716
e571fa59
KP
107172013-05-31 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
10718
10719 * config/rl78/rl78.md (mulqi3,mulhi3): New define_expands.
10720 (*mulqi3_rl78,*mulhi3_rl78,*mulhi3_g13): New define_insns.
10721
0fa6e0ef
TB
107222013-05-30 Tobias Burnus <burnus@net-b.de>
10723 Thomas Koenig <tkoenig@gcc.gnu.org>
10724
10725 PR middle-end/57073
10726 * tree-ssa-math-opts.c (execute_cse_sincos): Optimize
10727 powi (-1.0, k) to (k & 1) ? -1.0 : 1.0.
10728
4688ddf5
SB
107292013-05-30 Steven Bosscher <steven@gcc.gnu.org>
10730
0fa6e0ef 10731 * rtlanal.c (tablejump_p): Expect table and label to be adjacent.
4688ddf5 10732
3b9ceb4b
VM
107332013-05-30 Vladimir Makarov <vmakarov@redhat.com>
10734
10735 * target.def (register_usage_leveling_p): New hook.
10736 * targhooks.c (default_register_usage_leveling_p): New.
10737 * targhooks.h (default_register_usage_leveling_p): New prototype.
10738 * lra-assigns.c (register_usage_leveling_p): Use the hook.
10739 * doc/tm.texi.in (TARGET_REGISTER_USAGE_LEVELING_P): New hook.
10740 * doc/tm.texi: Update.
10741 * config/i386/i386.c (TARGET_REGISTER_USAGE_LEVELING_P): Define.
10742
65f9e789
IB
107432013-05-30 Ian Bolton <ian.bolton@arm.com>
10744
10745 * config/aarch64/aarch64.md (insv<mode>): New define_expand.
10746 (*insv_reg<mode>): New define_insn.
10747
12211b99 107482013-05-30 Joern Rennecke <joern.rennecke@embecosm.com>
ca035367
JR
10749
10750 PR rtl-optimization/57439
10751 * postreload.c (move2add_valid_value_p): Check that we have
10752 a zero subreg_regno_offset when accessing the register in
10753 the requested mode.
10754
0b871ccf
YR
107552013-05-30 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
10756 Igor Zamyatin <igor.zamyatin@intel.com>
10757
10758 Silvermont (SLM) architecture pipeline model, tuning and
10759 insn selection.
10760 * config.gcc: Add slm config options and target.
10761
10762 * config/i386/slm.md: New.
10763
10764 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe.
10765
f43245d1 10766 * config/i386/i386-c.c (ix86_target_macros_internal): New case
0b871ccf
YR
10767 PROCESSOR_SLM.
10768 (ix86_target_macros_internal): Likewise.
10769
f43245d1 10770 * config/i386/i386.c (slm_cost): New cost.
0b871ccf
YR
10771 (m_SLM): New macro flag.
10772 (initial_ix86_tune_features): Set m_SLM.
10773 (x86_accumulate_outgoing_args): Likewise.
10774 (x86_arch_always_fancy_math_387): Likewise.
10775 (processor_target_table): Add slm cost.
10776 (cpu_names): Add slm cpu name.
10777 (x86_option_override_internal): Set SLM ISA.
10778 (ix86_issue_rate): New case PROCESSOR_SLM.
10779 (ia32_multipass_dfa_lookahead): Likewise.
10780 (fold_builtin_cpu): Add slm.
10781
10782 * config/i386/i386.h (TARGET_SLM): New target macro.
10783 (target_cpu_default): Add TARGET_CPU_DEFAULT_slm.
10784 (processor_type): Add PROCESSOR_SLM.
10785
10786 * config/i386/i386.md (cpu): Add new value "slm".
10787 (slm.md): Include slm.md.
10788
24d5b097
XG
107892013-05-30 Bernd Schmidt <bernds@codesourcery.com>
10790 Zhenqiang Chen <zhenqiang.chen@linaro.org>
10791
10792 * config/arm/arm-protos.h: Add and update function protos.
10793 * config/arm/arm.c (use_simple_return_p): New added.
10794 (thumb2_expand_return): Check simple_return flag.
10795 * config/arm/arm.md: Add simple_return and conditional simple_return.
10796 * config/arm/iterators.md: Add iterator for return and simple_return.
10797
c1cccc15
ZC
107982013-05-30 Zhenqiang Chen <zhenqiang.chen@linaro.org>
10799
10800 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
10801 (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
10802 (arm_emit_vfp_multi_reg_pop): Likewise.
10803 (thumb2_emit_ldrd_pop): Likewise.
10804 (arm_expand_epilogue): Add misc REG_CFA notes.
10805 (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
10806
3a4f280b
LC
108072013-05-29 Lawrence Crowl <crowl@google.com>
10808
10809 * config/arm/t-arm: Update for below.
10810
10811 * config/arm/arm.c (arm_libcall_uses_aapcs_base::libcall_htab):
10812 Change type to hash_table. Update dependent calls and types.
10813
10814 * config/i386/t-cygming: Update for below.
10815
10816 * config/i386/t-interix: Update for below.
10817
10818 * config/i386/winnt.c (i386_pe_section_type_flags::htab):
10819 Change type to hash_table. Update dependent calls and types.
10820 (i386_find_on_wrapper_list::wrappers): Likewise.
10821
10822 * config/ia64/t-ia64: Update for below.
10823
10824 * config/ia64/ia64.c (bundle_state_table):
10825 Change type to hash_table. Update dependent calls and types.
10826
10827 * config/mips/mips.c (mips_reorg_process_insns::htab):
10828 Change type to hash_table. Update dependent calls and types.
10829
10830 * config/sol2.c (solaris_comdat_htab):
10831 Change type to hash_table. Update dependent calls and types.
10832
10833 * config/t-sol2: Update for above.
10834
1388a0e3
TJ
108352013-05-29 Teresa Johnson <tejohnson@google.com>
10836
10837 * passes.c (dump_passes): Use FOR_EACH_FUNCTION since
10838 functions are not yet marked as defined.
10839
a5965b52 108402013-05-29 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
10841 Pat Haugen <pthaugen@us.ibm.com>
10842 Peter Bergner <bergner@vnet.ibm.com>
a5965b52
MM
10843
10844 * config/rs6000/vector.md (VEC_I): Add support for new power8 V2DI
10845 instructions.
10846 (VEC_A): Likewise.
10847 (VEC_C): Likewise.
10848 (vrotl<mode>3): Likewise.
10849 (vashl<mode>3): Likewise.
10850 (vlshr<mode>3): Likewise.
10851 (vashr<mode>3): Likewise.
10852
10853 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
10854 support for power8 V2DI builtins.
10855
10856 * config/rs6000/rs6000-builtin.def (abs_v2di): Add support for
10857 power8 V2DI builtins.
10858 (vupkhsw): Likewise.
10859 (vupklsw): Likewise.
10860 (vaddudm): Likewise.
10861 (vminsd): Likewise.
10862 (vmaxsd): Likewise.
10863 (vminud): Likewise.
10864 (vmaxud): Likewise.
10865 (vpkudum): Likewise.
10866 (vpksdss): Likewise.
10867 (vpkudus): Likewise.
10868 (vpksdus): Likewise.
10869 (vrld): Likewise.
10870 (vsld): Likewise.
10871 (vsrd): Likewise.
10872 (vsrad): Likewise.
10873 (vsubudm): Likewise.
10874 (vcmpequd): Likewise.
10875 (vcmpgtsd): Likewise.
10876 (vcmpgtud): Likewise.
10877 (vcmpequd_p): Likewise.
10878 (vcmpgtsd_p): Likewise.
10879 (vcmpgtud_p): Likewise.
10880 (vupkhsw): Likewise.
10881 (vupklsw): Likewise.
10882 (vaddudm): Likewise.
10883 (vmaxsd): Likewise.
10884 (vmaxud): Likewise.
10885 (vminsd): Likewise.
10886 (vminud): Likewise.
10887 (vpksdss): Likewise.
10888 (vpksdus): Likewise.
10889 (vpkudum): Likewise.
10890 (vpkudus): Likewise.
10891 (vrld): Likewise.
10892 (vsld): Likewise.
10893 (vsrad): Likewise.
10894 (vsrd): Likewise.
10895 (vsubudm): Likewise.
10896
10897 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
10898 support for power8 V2DI instructions.
10899
10900 * config/rs6000/altivec.md (UNSPEC_VPKUHUM): Add support for
10901 power8 V2DI instructions. Combine pack and unpack insns to use an
10902 iterator for each mode. Check whether a particular mode supports
10903 Altivec instructions instead of just checking TARGET_ALTIVEC.
10904 (UNSPEC_VPKUWUM): Likewise.
10905 (UNSPEC_VPKSHSS): Likewise.
10906 (UNSPEC_VPKSWSS): Likewise.
10907 (UNSPEC_VPKUHUS): Likewise.
10908 (UNSPEC_VPKSHUS): Likewise.
10909 (UNSPEC_VPKUWUS): Likewise.
10910 (UNSPEC_VPKSWUS): Likewise.
10911 (UNSPEC_VPACK_SIGN_SIGN_SAT): Likewise.
10912 (UNSPEC_VPACK_SIGN_UNS_SAT): Likewise.
10913 (UNSPEC_VPACK_UNS_UNS_SAT): Likewise.
10914 (UNSPEC_VPACK_UNS_UNS_MOD): Likewise.
10915 (UNSPEC_VUPKHSB): Likewise.
10916 (UNSPEC_VUNPACK_HI_SIGN): Likewise.
10917 (UNSPEC_VUNPACK_LO_SIGN): Likewise.
10918 (UNSPEC_VUPKHSH): Likewise.
10919 (UNSPEC_VUPKLSB): Likewise.
10920 (UNSPEC_VUPKLSH): Likewise.
10921 (VI2): Likewise.
10922 (VI_char): Likewise.
10923 (VI_scalar): Likewise.
10924 (VI_unit): Likewise.
10925 (VP): Likewise.
10926 (VP_small): Likewise.
10927 (VP_small_lc): Likewise.
10928 (VU_char): Likewise.
10929 (add<mode>3): Likewise.
10930 (altivec_vaddcuw): Likewise.
10931 (altivec_vaddu<VI_char>s): Likewise.
10932 (altivec_vadds<VI_char>s): Likewise.
10933 (sub<mode>3): Likewise.
10934 (altivec_vsubcuw): Likewise.
10935 (altivec_vsubu<VI_char>s): Likewise.
10936 (altivec_vsubs<VI_char>s): Likewise.
10937 (altivec_vavgs<VI_char>): Likewise.
10938 (altivec_vcmpbfp): Likewise.
10939 (altivec_eq<mode>): Likewise.
10940 (altivec_gt<mode>): Likewise.
10941 (altivec_gtu<mode>): Likewise.
10942 (umax<mode>3): Likewise.
10943 (smax<mode>3): Likewise.
10944 (umin<mode>3): Likewise.
10945 (smin<mode>3): Likewise.
10946 (altivec_vpkuhum): Likewise.
10947 (altivec_vpkuwum): Likewise.
10948 (altivec_vpkshss): Likewise.
10949 (altivec_vpkswss): Likewise.
10950 (altivec_vpkuhus): Likewise.
10951 (altivec_vpkshus): Likewise.
10952 (altivec_vpkuwus): Likewise.
10953 (altivec_vpkswus): Likewise.
10954 (altivec_vpks<VI_char>ss): Likewise.
10955 (altivec_vpks<VI_char>us): Likewise.
10956 (altivec_vpku<VI_char>us): Likewise.
10957 (altivec_vpku<VI_char>um): Likewise.
10958 (altivec_vrl<VI_char>): Likewise.
10959 (altivec_vsl<VI_char>): Likewise.
10960 (altivec_vsr<VI_char>): Likewise.
10961 (altivec_vsra<VI_char>): Likewise.
10962 (altivec_vsldoi_<mode>): Likewise.
10963 (altivec_vupkhsb): Likewise.
10964 (altivec_vupkhs<VU_char>): Likewise.
10965 (altivec_vupkls<VU_char>): Likewise.
10966 (altivec_vupkhsh): Likewise.
10967 (altivec_vupklsb): Likewise.
10968 (altivec_vupklsh): Likewise.
10969 (altivec_vcmpequ<VI_char>_p): Likewise.
10970 (altivec_vcmpgts<VI_char>_p): Likewise.
10971 (altivec_vcmpgtu<VI_char>_p): Likewise.
10972 (abs<mode>2): Likewise.
10973 (vec_unpacks_hi_v16qi): Likewise.
10974 (vec_unpacks_hi_v8hi): Likewise.
10975 (vec_unpacks_lo_v16qi): Likewise.
10976 (vec_unpacks_hi_<VP_small_lc>): Likewise.
10977 (vec_unpacks_lo_v8hi): Likewise.
10978 (vec_unpacks_lo_<VP_small_lc>): Likewise.
10979 (vec_pack_trunc_v8h): Likewise.
10980 (vec_pack_trunc_v4si): Likewise.
10981 (vec_pack_trunc_<mode>): Likewise.
10982
10983 * config/rs6000/altivec.h (vec_vaddudm): Add defines for power8
10984 V2DI builtins.
10985 (vec_vmaxsd): Likewise.
10986 (vec_vmaxud): Likewise.
10987 (vec_vminsd): Likewise.
10988 (vec_vminud): Likewise.
10989 (vec_vpksdss): Likewise.
10990 (vec_vpksdus): Likewise.
10991 (vec_vpkudum): Likewise.
10992 (vec_vpkudus): Likewise.
10993 (vec_vrld): Likewise.
10994 (vec_vsld): Likewise.
10995 (vec_vsrad): Likewise.
10996 (vec_vsrd): Likewise.
10997 (vec_vsubudm): Likewise.
10998 (vec_vupkhsw): Likewise.
10999 (vec_vupklsw): Likewise.
11000
e70670cf
JH
110012013-05-29 Jan Hubicka <jh@suse.cz>
11002
11003 * cgraph.h (symtab_node_base): Add definition, alias and analyzed
11004 flags; reorder rest of fields in more consistent way.
11005 (varpool_node): Remove analyzed, finalized and alias.
11006 (cgraph_ndoe): Likewise.
11007 (symtab_alias_ultimate_target): New function.
11008 (cgraph_function_node): Move offline.
11009 (cgraph_reset_node): Declare.
11010 (cgraph_comdat_can_be_unshared_p): Remove.
11011 (varpool_remove_initializer): Declare.
11012 (varpool_first_defined_variable, varpool_next_defined_variable
11013 cgraph_first_defined_function, cgraph_next_defined_function): Update.
11014 (cgraph_function_with_gimple_body_p): Update.
11015 (varpool_all_refs_explicit_p): Update.
11016 (symtab_alias_target): New function.
11017 (cgraph_alias_aliased_node, varpool_alias_aliased_node): Rename to ...
11018 (cgraph_alias_target, varpool_alias_target): .. this one; simplify.
c1e183a9
UB
11019 (cgraph_function_or_thunk_node): Simplify using
11020 symtab_alias_ultimate_target.
e70670cf
JH
11021 (varpool_variable_node): Likewise.
11022 * cgraph.c (cgraph_create_function_alias): Update.
11023 (cgraph_add_thunk): Update.
11024 (cgraph_remove_node): Update.
11025 (dump_cgraph_node): Do not dump removed flags.
11026 (cgraph_function_body_availability): Update.
11027 (cgraph_propagate_frequency): Update.
11028 (verify_cgraph_node): Check sanity of local flag.
11029 (cgraph_function_node): Move here from cgraph.h; revamp for
11030 cgraph_function_or_thunk_node.
11031 * lto-symtab.c (lto_varpool_replace_node): Update.
11032 (lto_symtab_resolve_can_prevail_p): Update.
11033 (lto_symtab_merge_cgraph_nodes): Update.
11034 * ipa-cp.c (determine_versionability, initialize_node_lattices,
11035 propagate_constants_accross_call, devirtualization_time_bonus,
11036 ipcp_propagate_stage): Update.
11037 * tree-emutls.c (create_emultls_var, ipa_lower_emutls): Update.
c1e183a9
UB
11038 * ipa-inline-transform.c (clone_inlined_nodes,
11039 preserve_function_body_p): Update.
e70670cf
JH
11040 * ipa-reference.c (propagate): Update.
11041 (write_node_summary_p): Update.
11042 * toplev.c (wrapup_global_declaration_2): Update.
11043 * cgraphunit.c (cgraph_analyze_function): Rename to ...
11044 (analyze_function) ... this one.
11045 (cgraph_process_new_functions): Update.
11046 (cgraph_reset_node): Export.
11047 (cgraph_finalize_function): Update.
11048 (cgraph_add_new_function): Update.
11049 (process_function_and_variable_attributes): Update.
11050 (varpool_finalize_decl): Update.
11051 (symbol_finalized): Remove.
11052 (symbol_finalized_and_needed): Rename to ...
11053 (symbol_defined_and_needed): ... update.
11054 (cgraph_analyze_functions): Update.
11055 (handle_alias_pairs): Update.
11056 (mark_functions_to_output): Update.
11057 (assemble_thunk): Update.
11058 (output_in_order): Update.
11059 (output_weakrefs): Update.
11060 (finalize_compilation_unit): Update.
11061 * lto-cgraph.c (reachable_from_other_partition_p, lto_output_node,
11062 lto_output_varpool_node, compute_ltrans_boundary, input_overwrite_node,
11063 input_node, input_varpool_node): Update.
11064 * dbxout.c (dbxout_expand_expr): Update.
11065 * cgraphclones.c (cgraph_clone_node): Update.
11066 (cgraph_copy_node_for_versioning): Update.
11067 (cgraph_materialize_clone): Update.
11068 (cgraph_materialize_all_clones): Update.
11069 * ipa-pure-const.c (analyze_function, pure_const_write_summary,
11070 propagate_pure_const, propagate_nothrow): Update.
11071 * lto-streamer-out.c (lto_output, write_symbol): Update.
11072 * ipa-utils.c (ipa_reverse_postorder): Update.
11073 * ipa-inline.c (can_inline_edge_p): Update.
11074 (update_caller_keys, ipa_inline): Update.
11075 * dwarf2out.c (reference_to_unused,
11076 premark_types_used_by_global_vars_helper): Update.
11077 * tree-eh.c (tree_could_trap_p): Update.
11078 * ipa-split.c (consider_split, execute_split_functions): Update.
11079 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p,
c1e183a9
UB
11080 has_addr_references_p): Update; move ahead in file for better
11081 readability.
e70670cf
JH
11082 (process_references): Simplify.
11083 (symtab_remove_unreachable_nodes): Update; cleanup way function/var
11084 bodies are removed.
11085 (cgraph_comdat_can_be_unshared_p): Make static.
11086 (cgraph_externally_visible_p): Update.
11087 (varpool_externally_visible_p): Update.
11088 (function_and_variable_visibility): Update.
11089 * trans-mem.c (get_cg_data, ipa_tm_mayenterirr_function,
11090 ipa_tm_mark_force_output_node): Update.
11091 * ipa-inline-analysis.c (dump_inline_summary, initialize_inline_failed,
11092 estimate_edge_devirt_benefit, inline_generate_summary,
11093 inline_write_summary): Update.
11094 * gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
11095 * ipa-prop.c (ipa_compute_jump_functions): Update.
c1e183a9
UB
11096 (ipa_print_node_params, ipa_prop_read_section,
11097 ipa_update_after_lto_read, read_replacements_section): Update.
e70670cf
JH
11098 * varasm.c (mark_decl_referenced): Update.
11099 (assemble_alias, dump_tm_clone_pairs): Update.
11100 * tree-inline.c (copy_bb): Update.
11101 (estimate_num_insns, optimize_inline_calls, tree_function_versioning):
11102 Update.
11103 * symtab.c (dump_symtab_base): Print new flags.
11104 (verify_symtab_base): Verify new flags.
11105 (symtab_alias_ultimate_target): New function.
11106 * tree-ssa-structalias.c (get_constraint_for_ssa_var,
11107 create_variable_info_for, associate_varinfo_to_alias, ipa_pta_execute):
11108 Update.
c1e183a9
UB
11109 * passes.c (ipa_write_summaries, ipa_write_optimization_summaries):
11110 Update.
e70670cf
JH
11111 * i386.c (ix86_get_function_versions_dispatcher,
11112 ix86_generate_version_dispatcher_body): Update.
11113 (fold_builtin_cpu): Use varpool_add_new_variable.
11114 * varpool.c (varpool_remove_initializer): Break out from ...
11115 (varpool_remove_node): ... this one.
11116 (dump_varpool_node, varpool_node_for_asm,
11117 cgraph_variable_initializer_availability, varpool_analyze_node,
11118 varpool_assemble_decl, varpool_remove_unreferenced_decls,
c1e183a9
UB
11119 varpool_finalize_named_section_flags, varpool_create_variable_alias):
11120 Update.
e70670cf 11121
182802ad
JH
111222013-05-29 Jan Hubicka <jh@suse.cz>
11123
11124 * passes.c (init_optimization_passes): Move OMP expansion into lowering.
11125
8190b609
ER
111262013-05-29 Easwaran Raman <eraman@google.com>
11127
11128 PR tree-optimization/57442
11129 * tree-ssa-reassoc.c (appears_later_in_bb): Return correct value
11130 when control exits the main loop.
11131
69f5aa9b
SKS
111322013-05-29 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
11133
11134 * rx/rx.h (TARGET_CPU_CPP_BUILTINS): Add macros for RX100, RX200,
11135 and RX600.
c1e183a9 11136 * rx/rx.opt: Add macro for rx100 with string rx100 and value RX100.
69f5aa9b
SKS
11137 * rx/rx-opts.h (rx_cpu_types): Add new cpu type rx100.
11138 * rx/t-rx: Add rx100 under multi library matches option for nofpu
11139 option.
11140
4b847da9
BS
111412013-05-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11142
11143 PR tree-optimization/57441
11144 * gimple-ssa-strength-reduction.c (analyze_candidates_and_replace):
11145 Don't limit size of incr_vec to number of candidates.
11146
4fc43c39
SE
111472013-05-29 Steve Ellcey <sellcey@imgtec.com>
11148
11149 * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add micromips
11150 and mips16 directories.
c1e183a9 11151 * config/mips/t-mti-linux (MULTILIB_OPTIONS): Add micromips and mips16.
4fc43c39
SE
11152 (MULTILIB_DIRNAMES): Ditto.
11153 (MULTILIB_EXCEPTIONS): Add new exceptions.
11154 * config/mips/t-mti-elf (MULTILIB_OPTIONS): Add micromips.
11155 (MULTILIB_DIRNAMES): Ditto.
11156 (MULTILIB_EXCEPTIONS): Add new exceptions.
11157
12211b99 111582012-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
a5350ddc
CSS
11159 Marcus Shawcroft <marcus.shawcroft@arm.com>
11160
11161 * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
11162 SYMBOL_TINY_ABSOLUTE.
11163 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Handle
11164 SYMBOL_TINY_ABSOLUTE.
11165 (aarch64_expand_mov_immediate): Likewise.
11166 (aarch64_classify_symbol): Likewise.
11167 (aarch64_mov_operand_p): Remove ATTRIBUTE_UNUSED.
11168 Permit SYMBOL_TINY_ABSOLUTE.
11169 * config/aarch64/predicates.md (aarch64_mov_operand): Permit CONST.
11170
12211b99 111712013-05-29 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
17f4d4bf
CSS
11172 Marcus Shawcroft <marcus.shawcroft@arm.com>
11173
11174 * config/aarch64/aarch64.c (aarch64_classify_symbol): Remove comment.
11175 Refactor if/switch. Replace gcc_assert with if.
11176
c0186656
GG
111772013-05-29 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
11178
11179 * config/i386/i386.c (initial_ix86_tune_features): Enable
11180 FP Reassociation for AMD bdver1 and bdver2.
11181
d20188f3
MJ
111822013-05-29 Martin Jambor <mjambor@suse.cz>
11183
11184 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REF, REALPART_EXPR
11185 and IMAGPART_EXPR do not occur within other handled_components.
11186
292cba13
RB
111872013-05-29 Richard Biener <rguenther@suse.de>
11188
11189 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Guard vinfo
11190 access on whether the use is in the BB we currently try to
11191 vectorize.
11192 (vect_bb_vectorization_profitable_p): Pass the BB we currently
11193 vectorize to vect_bb_slp_scalar_cost.
11194
6eddf228
RB
111952013-05-29 Richard Biener <rguenther@suse.de>
11196
11197 * tree-vect-slp.c (vect_bb_slp_scalar_cost): New function
11198 computing scalar cost offsetted by stmts that are kept live
11199 by scalar uses.
11200 (vect_bb_vectorization_profitable_p): Use vect_bb_slp_scalar_cost
11201 for computation of scalar cost.
11202
7df36117
SE
112032013-05-28 Steve Ellcey <sellcey@mips.com>
11204
11205 * config/mips/mips-cpus.def (mips32r2): Change processor type.
11206
36536d79
BI
112072013-05-28 Balaji V. Iyer <balaji.v.iyer@intel.com>
11208
11209 * doc/extend.texi (C Extensions): Added documentation about Cilk Plus
11210 array notation built-in reduction functions.
11211 * doc/passes.texi (Passes): Added documentation about changes done
11212 for Cilk Plus.
11213 * doc/invoke.texi (C Dialect Options): Added documentation about
11214 the -fcilkplus flag.
11215 * Makefile.in (C_COMMON_OBJS): Added c-family/array-notation-common.o.
11216 (BUILTINS_DEF): Depend on cilkplus.def.
11217 * builtins.def: Include cilkplus.def. Define DEF_CILKPLUS_BUILTIN.
11218 * builtin-types.def: Define BT_FN_INT_PTR_PTR_PTR.
11219 * cilkplus.def: New file.
11220
12211b99 112212013-05-28 Joern Rennecke <joern.rennecke@embecosm.com>
b49eefa5
JR
11222
11223 PR rtl-optimization/57439
11224 * postreload.c (move2add_use_add2_insn): Use gen_lowpart_common.
11225
9daf6dbb
ER
112262013-05-28 Easwaran Raman <eraman@google.com>
11227
11228 PR tree-optimization/57337
11229 * tree-ssa-reassoc.c (appears_later_in_bb): New function.
11230 (find_insert_point): Correctly identify the insertion point
11231 when two statements with the same UID is compared.
11232
fbd7e877
RB
112332013-05-28 Richard Biener <rguenther@suse.de>
11234
11235 PR tree-optimization/56787
11236 * tree-vect-data-refs.c (vect_analyze_data_refs): Drop clobbers
11237 from the list of data references.
11238 * tree-vect-loop.c (vect_determine_vectorization_factor): Skip
11239 clobbers.
11240 (vect_analyze_loop_operations): Likewise.
11241 (vect_transform_loop): Remove clobbers.
11242
bbba1117
MJ
112432013-05-28 Martin Jambor <mjambor@suse.cz>
11244
11245 * tree-cfg.c (verify_expr): Verify that BIT_FIELD_REFs, IMAGPART_EXPRs
11246 and REALPART_EXPRs have scalar type.
11247
bd388c2a
RB
112482013-05-28 Richard Biener <rguenther@suse.de>
11249
11250 PR tree-optimization/57411
11251 * tree-ssa-copy.c (may_propagate_copy): Cannot propagate
11252 virtual operands.
11253 * tree-ssa-dom.c (eliminate_const_or_copy): Special-case
11254 virtual operand propagation.
11255
2f56a311
EB
112562013-05-28 Eric Botcazou <ebotcazou@adacore.com>
11257
11258 * config/sparc/sparc.c (sparc_expand_vec_perm_bmask): Use %g0 as
11259 destination register for bmasksi_vis.
11260 (vector_init_bshuffle): Likewise.
11261 * config/sparc/sparc.md (vec_perm_constv8qi): Likewise.
11262
5c3eacbb
EB
112632013-05-28 Eric Botcazou <ebotcazou@adacore.com>
11264
11265 * doc/invoke.texi (SPARC Options): Document -mfix-ut699.
11266 * builtins.c (expand_builtin_mathfn) <BUILT_IN_SQRT>: Try to widen the
11267 mode if the instruction isn't available in the original mode.
11268 * config/sparc/sparc.opt (mfix-ut699): New option.
11269 * config/sparc/sparc.md (muldf3_extend): Disable if -mfix-ut699.
11270 (divdf3): Turn into expander.
11271 (divdf3_nofix): New insn.
11272 (divdf3_fix): Likewise.
11273 (divsf3): Disable if -mfix-ut699.
11274 (sqrtdf2): Turn into expander.
11275 (sqrtdf2_nofix): New insn.
11276 (sqrtdf2_fix): Likewise.
11277 (sqrtsf2): Disable if -mfix-ut699.
11278
a1756c0a
RB
112792013-05-27 Richard Biener <rguenther@suse.de>
11280
11281 PR middle-end/57412
11282 * omp-low.c (expand_omp_atomic_pipeline): Use the correct latch
11283 block for the new loop.
11284
5a892248
RB
112852013-05-27 Richard Biener <rguenther@suse.de>
11286
11287 PR tree-optimization/57343
11288 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Do not
11289 use multiple_of_p if not TYPE_OVERFLOW_UNDEFINED.
11290 (number_of_iterations_cond): Do not build the folded tree.
11291
d1de852b
RB
112922013-05-27 Richard Biener <rguenther@suse.de>
11293
11294 Revert
11295 PR middle-end/57381
11296 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
11297 OEP_CONSTANT_ADDRESS_OF retained.
11298
11299 PR tree-optimization/57417
11300 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Fix test
11301 for unchanged base.
11302 (set_ssa_val_to): Compare addresses using
11303 get_addr_base_and_unit_offset.
11304
12211b99 113052013-05-27 Joern Rennecke <joern.rennecke@embecosm.com>
7894bc6b
JR
11306
11307 PR rtl-optimization/56833
11308 * postreload.c (move2add_record_mode): New function.
11309 (move2add_record_sym_value, move2add_valid_value_p): Likewise.
11310 (move2add_use_add2_insn): Use move2add_record_sym_value.
11311 (move2add_use_add3_insn): Likewise.
11312 (reload_cse_move2add): Use move2add_valid_value_p and
11313 move2add_record_mode. Invalidate call-clobbered and REG_INC
11314 affected regs by setting reg_mode to VOIDmode.
11315 (move2add_note_store): Don't pretend the inside of a SUBREG is
11316 the actual destination. Invalidate single/leading registers by
11317 setting reg_mode to VOIDmode.
11318 Use move2add_record_sym_value, move2add_valid_value_p and
11319 move2add_record_mode.
11320
b03be25f
RB
113212013-05-27 Richard Biener <rguenther@suse.de>
11322
11323 PR tree-optimization/57396
11324 * tree-affine.c (double_int_constant_multiple_p): Properly
11325 return false for val == 0 and div != 0.
11326
44e88db2
RS
113272013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
11328
11329 * config/mips/mips.h: Use #elif in preprocessor conditions.
11330
3b859704
RS
113312013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
11332
11333 PR target/53916
11334 * config/mips/constraints.md (kl): New constraint.
11335 * config/mips/mips.md (divmod<mode>4, udivmod<mode>4): Delete.
11336 (divmod<mode>4_internal): Rename to divmod<mode>4. Use "kl" as the
11337 constraint for operand 0. Split after CSE for MIPS16. Emit a move
11338 from LO for MIPS16.
11339 (udivmod<mode>4_internal): Likewise udivmod<mode>4.
11340
c979d5f5
RS
113412013-05-25 Richard Sandiford <rdsandiford@googlemail.com>
11342
11343 PR target/55777
11344 * config/mips/mips.c (mips_can_inline_p): New function.
11345 (TARGET_CAN_INLINE_P): Define.
11346
8e90de43
SB
113472013-05-25 Steven Bosscher <steven@gcc.gnu.org>
11348
11349 * sched-int.h (ds_t, dw_t): Make unsigned int.
11350 Fix documentation that describes how all the ds_t bits are used.
11351 Reserve the last bit for delayed-branch scheduling.
11352 (BITS_PER_DEP_STATUS): Move to ds_t typedef.
11353 (BITS_PER_DEP_WEAK): Fix definition and documentation.
11354 (gen_dep_weak_1): Remove prototype.
11355 * sched-deps.c (get_dep_weak_1): Make static.
11356 * target.def (speculate_insn, needs_block_p, gen_spec_check,
11357 get_insn_spec_ds, get_insn_checked_ds): Adjust hook prototypes.
11358 * doc/tm.texi: Regenerate.
11359 * config/ia64/ia64.c (ia64_needs_block_p): Update prototype.
11360
cb5cb194
SB
113612013-05-24 Steven Bosscher <steven@gcc.gnu.org>
11362
11363 PR debug/56950
11364 * haifa-sched.c (sched_extend_bb): Ignore DEBUG_INSNs.
11365
5bd93ff6
NS
113662013-05-24 Nathan Sidwell <nathan@codesourcery.com>
11367 Sandra Loosemore <sandra@codesourcery.com>
11368
11369 * config.gcc (powerpc-*): Allow native for with-cpu.
11370
2343af65
JL
113712013-05-24 Jeff Law <law@redhat.com>
11372
11373 PR tree-optimization/57124
11374 * tree-vrp.c (simplify_cond_using_ranges): Only simplify a
11375 conversion feeding a condition if the range has an overflow
11376 if -fstrict-overflow. Add warnings for when we do make the
11377 transformation.
11378
3ad695b9
DC
113792013-05-24 Dehao Chen <dehao@google.com>
11380
04960246 11381 * tree-cfg.c (locus_discrim_map): Fix the typo.
3ad695b9
DC
11382 (locus_discrim_hasher): Likewise.
11383 (locus_discrim_hasher::hash): Likewise.
11384 (locus_discrim_hasher::equal): Likewise.
11385
82338059
MJ
113862013-05-24 Martin Jambor <mjambor@suse.cz>
11387
11388 PR tree-optimization/57294
11389 * cgraph.h (ipa_record_stmt_references): Declare.
11390 * cgraphbuild.c (ipa_record_stmt_references): New function.
11391 (build_cgraph_edges): Use ipa_record_stmt_references.
11392 (rebuild_cgraph_edges): Likewise.
11393 (cgraph_rebuild_references): Likewise.
11394 * ipa-prop.c (ipa_modify_call_arguments): Discard references
11395 associated with the old statement and build references from the
11396 newly built statements.
11397 * ipa-ref.c (ipa_remove_stmt_references): New function.
11398 * ipa-ref.h (ipa_remove_stmt_references): Declare.
11399
1ccd4874
VM
114002013-05-24 Vladimir Makarov <vmakarov@redhat.com>
11401
55805e54 11402 * lra-constraints.c (emit_spill_move): Use smaller mode for
1ccd4874 11403 mem-mem moves.
55805e54 11404 (check_and_process_move): Consider mem-reg moves for secondary
1ccd4874 11405 too.
55805e54 11406 (curr_insn_transform): Don't lose insns emitted before for
1ccd4874
VM
11407 secondary memory moves.
11408 (inherit_in_ebb): Mark defined reg. Add usage only if it is not a
11409 reg set up in the current insn.
11410
25e25c73
DC
114112013-05-24 Dehao Chen <dehao@google.com>
11412
04960246 11413 * tree-cfg.c (locus_descrim_hasher::hash): Change discriminator
25e25c73
DC
11414 hash function.
11415 (locus_descrim_hasher::equal): Likewise.
04960246 11416 (build_gimple_cfg): New discriminator assignment algorithm.
25e25c73
DC
11417 (make_edges): Likewise.
11418 (next_discriminator_for_locus): Likewise.
11419 (same_line_p): Likewise.
11420 (assign_discriminators): Likewise.
11421 (make_cond_expr_edges): Likewise.
11422 (make_gimple_switch_edges): Likewise.
11423 (make_goto_expr_edges): Likewise.
11424 (make_gimple_asm_edges): Likewise.
11425
50d38551
IB
114262013-05-24 Ian Bolton <ian.bolton@arm.com>
11427
11428 * config/aarch64/aarch64.c (aarch64_print_operand): Change the
11429 X format specifier to only display bottom 16 bits.
11430 * config/aarch64/aarch64.md (insv_imm<mode>): Allow any size of
11431 immediate to match for operand 2, since it will be masked.
11432
aea0101d
RB
114332013-05-24 Richard Biener <rguenther@suse.de>
11434
11435 PR tree-optimization/57287
11436 * tree-ssa-uninit.c (compute_uninit_opnds_pos): Disregard
11437 all SSA names that occur in abnormal PHIs.
11438
634e03d3
AI
114392013-05-24 Alexander Ivchenko <alexander.ivchenko@intel.com>
11440
11441 PR tree-ssa/57385
11442 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Check
11443 that index is not negative.
11444
b17c024f
EB
114452013-05-24 Eric Botcazou <ebotcazou@adacore.com>
11446
11447 PR rtl-optimization/55177
11448 * simplify-rtx.c (simplify_unary_operation_1) <NOT>: Deal with BSWAP.
11449 (simplify_byte_swapping_operation): New.
11450 (simplify_binary_operation_1): Call it for AND, IOR and XOR.
11451 (simplify_relational_operation_1): Deal with BSWAP.
11452
46aeac1b
RH
114532013-05-23 Richard Henderson <rth@redhat.com>
11454
11455 PR target/56742
11456 * config/i386/i386.c (ix86_seh_fixup_eh_fallthru): New.
11457 (ix86_reorg): Call it.
11458
70cc1536
UB
114592013-05-23 Uros Bizjak <ubizjak@gmail.com>
11460
11461 PR target/57379
11462 * config/alpha/alpha.md (unspec): Add UNSPEC_XFLT_COMPARE.
11463 * config/alpha/alpha.c (alpha_emit_xfloating_compare): Construct
11464 REG_EQUAL note as UNSPEC_XFLT_COMPARE unspec.
11465
b3851501
CB
114662013-05-23 Christian Bruel <christian.bruel@st.com>
11467
11468 PR debug/57351
11469 * config/arm/arm.c (arm_dwarf_register_span): Do not use dbx number.
11470
12211b99 114712013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
4e194912
CSS
11472 Marcus Shawcroft <marcus.shawcroft@arm.com>
11473
11474 * config/aarch64/aarch64.md (*movdi_aarch64): Replace Usa with S.
11475 * config/aarch64/constraints.md (Usa): Remove.
11476 * doc/md.texi (AArch64 Usa): Remove.
11477
12211b99 114782013-05-23 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
83f8c414
CSS
11479 Marcus Shawcroft <marcus.shawcroft@arm.com>
11480
11481 * config/aarch64/aarch64-protos.h (aarch64_mov_operand_p): Define.
11482 * config/aarch64/aarch64.c (aarch64_mov_operand_p): Define.
11483 * config/aarch64/predicates.md (aarch64_const_address): Remove.
11484 (aarch64_mov_operand): Use aarch64_mov_operand_p.
11485
12211b99 114862013-05-23 Vidya Praveen <vidyapraveen@arm.com>
b5574232
VP
11487
11488 * config/aarch64/aarch64-simd.md (clzv4si2): Support for CLZ
11489 instruction (AdvSIMD).
11490 * config/aarch64/aarch64-builtins.c
11491 (aarch64_builtin_vectorized_function): Handler for BUILT_IN_CLZ.
11492 * config/aarch64/aarch-simd-builtins.def: Entry for CLZ.
11493
76c36cb1 114942013-05-23 Martin Jambor <mjambor@suse.cz>
7d2fb524
MJ
11495
11496 PR middle-end/57347
11497 * tree.h (contains_bitfld_component_ref_p): Declare.
11498 * tree-sra.c (contains_bitfld_comp_ref_p): Move...
70cc1536
UB
11499 * tree.c (contains_bitfld_component_ref_p): ...here. Adjust its
11500 caller.
7d2fb524
MJ
11501 * ipa-prop.c (determine_known_aggregate_parts): Check that LHS does
11502 not access a bit-field. Assert all final offsets are byte-aligned.
11503
ce521ae6
RB
115042013-05-23 Richard Biener <rguenther@suse.de>
11505
11506 PR tree-optimization/57380
11507 * tree-ssa-phiprop.c (propagate_with_phi): Do not require at
11508 least one invariant or re-used load.
11509 * passes.c (init_optimization_passes): Move pass_phiprop before
11510 pass_forwprop.
11511
75c7257f
JG
115122013-05-23 James Greenhalgh <james.greenhalgh@arm.com>
11513
11514 * config/aarch64/aarch64-simd.md
11515 (aarch64_cm<optab>di): Add clobber of CC_REGNUM to unsplit pattern.
11516
af6d44b5
RB
115172013-05-23 Richard Biener <rguenther@suse.de>
11518
11519 PR middle-end/57381
11520 * fold-const.c (operand_equal_p): Compare FIELD_DECLs with
11521 OEP_CONSTANT_ADDRESS_OF retained.
11522
bd3647bf
JJ
115232013-05-23 Jakub Jelinek <jakub@redhat.com>
11524
11525 PR middle-end/57344
70cc1536
UB
11526 * expmed.c (store_split_bit_field): If op0 is a REG or SUBREG of a REG,
11527 don't lower unit. Handle unit not being always BITS_PER_WORD.
bd3647bf 11528
a55757ea
RB
115292013-05-23 Richard Biener <rguenther@suse.de>
11530
11531 PR rtl-optimization/57341
11532 * ira.c (validate_equiv_mem_from_store): Use anti_dependence
11533 instead of true_dependence.
11534
cfb00b41
DM
115352013-05-22 David Malcolm <dmalcolm@redhat.com>
11536
dd1c676f
DM
11537 * bb-reorder.c (branch_threshold): Make const.
11538 (exec_threshold): Ditto.
cfb00b41 11539
f62511da 115402013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
11541 Pat Haugen <pthaugen@us.ibm.com>
11542 Peter Bergner <bergner@vnet.ibm.com>
f62511da
MM
11543
11544 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Add
11545 documentation for the power8 crypto builtins.
11546
11547 * config/rs6000/t-rs6000 (MD_INCLUDES): Add crypto.md.
11548
11549 * config/rs6000/rs6000-builtin.def (BU_P8V_AV_1): Add support
11550 macros for defining power8 builtin functions.
11551 (BU_P8V_AV_2): Likewise.
11552 (BU_P8V_AV_P): Likewise.
11553 (BU_P8V_VSX_1): Likewise.
11554 (BU_P8V_OVERLOAD_1): Likewise.
11555 (BU_P8V_OVERLOAD_2): Likewise.
11556 (BU_CRYPTO_1): Likewise.
11557 (BU_CRYPTO_2): Likewise.
11558 (BU_CRYPTO_3): Likewise.
11559 (BU_CRYPTO_OVERLOAD_1): Likewise.
11560 (BU_CRYPTO_OVERLOAD_2): Likewise.
11561 (XSCVSPDP): Fix typo, point to the correct instruction.
11562 (VCIPHER): Add power8 crypto builtins.
11563 (VCIPHERLAST): Likewise.
11564 (VNCIPHER): Likewise.
11565 (VNCIPHERLAST): Likewise.
11566 (VPMSUMB): Likewise.
11567 (VPMSUMH): Likewise.
11568 (VPMSUMW): Likewise.
11569 (VPERMXOR_V2DI): Likewise.
11570 (VPERMXOR_V4SI: Likewise.
11571 (VPERMXOR_V8HI: Likewise.
11572 (VPERMXOR_V16QI: Likewise.
11573 (VSHASIGMAW): Likewise.
11574 (VSHASIGMAD): Likewise.
11575 (VPMSUM): Likewise.
11576 (VPERMXOR): Likewise.
11577 (VSHASIGMA): Likewise.
11578
11579 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
11580 __CRYPTO__ if the crypto instructions are available.
11581 (altivec_overloaded_builtins): Add support for overloaded power8
11582 builtins.
11583
11584 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
11585 support for power8 crypto builtins.
11586 (builtin_function_type): Likewise.
11587 (altivec_init_builtins): Add support for builtins that take vector
11588 long long (V2DI) arguments.
11589
11590 * config/rs6000/crypto.md: New file, define power8 crypto
11591 instructions.
11592
115932013-05-22 Michael Meissner <meissner@linux.vnet.ibm.com>
12211b99
UB
11594 Pat Haugen <pthaugen@us.ibm.com>
11595 Peter Bergner <bergner@vnet.ibm.com>
f62511da
MM
11596
11597 * doc/invoke.texi (Option Summary): Add power8 options.
11598 (RS/6000 and PowerPC Options): Likewise.
11599
11600 * doc/md.texi (PowerPC and IBM RS6000 constraints): Update to use
11601 constraints.md instead of rs6000.h. Reorder w* constraints. Add
11602 wm, wn, wr documentation.
11603
f43245d1 11604 * config/rs6000/constraints.md (wm): New constraint for VSX
f62511da
MM
11605 registers if direct move instructions are enabled.
11606 (wn): New constraint for no registers.
11607 (wq): New constraint for quad word even GPR registers.
11608 (wr): New constraint if 64-bit instructions are enabled.
11609 (wv): New constraint if power8 vector instructions are enabled.
11610 (wQ): New constraint for quad word memory locations.
11611
f43245d1 11612 * config/rs6000/predicates.md (const_0_to_15_operand): New
f62511da
MM
11613 constraint for 0..15 for crypto instructions.
11614 (gpc_reg_operand): If VSX allow registers in VSX registers as well
11615 as GPR and floating point registers.
11616 (int_reg_operand): New predicate to match only GPR registers.
11617 (base_reg_operand): New predicate to match base registers.
11618 (quad_int_reg_operand): New predicate to match even GPR registers
11619 for quad memory operations.
11620 (vsx_reg_or_cint_operand): New predicate to allow vector logical
11621 operations in both GPR and VSX registers.
11622 (quad_memory_operand): New predicate for quad memory operations.
11623 (reg_or_indexed_operand): New predicate for direct move support.
11624
f43245d1 11625 * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED):
f62511da
MM
11626 Inherit from ISA_2_4_MASKS, not ISA_2_2_MASKS.
11627 (ISA_2_7_MASKS_SERVER): New mask for ISA 2.07 (i.e. power8).
11628 (POWERPC_MASKS): Add power8 options.
11629 (power8 cpu): Use ISA_2_7_MASKS_SERVER instead of specifying the
11630 various options.
11631
f43245d1 11632 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
f62511da
MM
11633 Define _ARCH_PWR8 and __POWER8_VECTOR__ for power8.
11634
f43245d1 11635 * config/rs6000/rs6000.opt (-mvsx-timode): Add documentation.
f62511da
MM
11636 (-mpower8-fusion): New power8 options.
11637 (-mpower8-fusion-sign): Likewise.
11638 (-mpower8-vector): Likewise.
11639 (-mcrypto): Likewise.
11640 (-mdirect-move): Likewise.
11641 (-mquad-memory): Likewise.
11642
f43245d1 11643 * config/rs6000/rs6000.c (power8_cost): Initial definition for power8.
f62511da
MM
11644 (rs6000_hard_regno_mode_ok): Make PTImode only match even GPR
11645 registers.
70cc1536 11646 (rs6000_debug_reg_print): Print the base register class if -mdebug=reg.
f62511da
MM
11647 (rs6000_debug_vector_unit): Add p8_vector.
11648 (rs6000_debug_reg_global): If -mdebug=reg, print power8 constraint
11649 definitions. Also print fusion state.
11650 (rs6000_init_hard_regno_mode_ok): Set up power8 constraints.
11651 (rs6000_builtin_mask_calculate): Add power8 builtin support.
11652 (rs6000_option_override_internal): Add support for power8.
11653 (rs6000_common_init_builtins): Add debugging for skipped builtins
11654 if -mdebug=builtin.
11655 (rs6000_adjust_cost): Add power8 support.
11656 (rs6000_issue_rate): Likewise.
11657 (insn_must_be_first_in_group): Likewise.
11658 (insn_must_be_last_in_group): Likewise.
11659 (force_new_group): Likewise.
11660 (rs6000_register_move_cost): Likewise.
11661 (rs6000_opt_masks): Likewise.
11662
11663 * config/rs6000/rs6000.h (ASM_CPU_POWER8_SPEC): If we don't have a
11664 power8 capable assembler, default to power7 options.
11665 (TARGET_DIRECT_MOVE): Likewise.
11666 (TARGET_CRYPTO): Likewise.
11667 (TARGET_P8_VECTOR): Likewise.
11668 (VECTOR_UNIT_P8_VECTOR_P): Define power8 vector support.
11669 (VECTOR_UNIT_VSX_OR_P8_VECTOR_P): Likewise.
11670 (VECTOR_MEM_P8_VECTOR_P): Likewise.
11671 (VECTOR_MEM_VSX_OR_P8_VECTOR_P): Likewise.
11672 (VECTOR_MEM_ALTIVEC_OR_VSX_P): Likewise.
11673 (TARGET_XSCVDPSPN): Likewise.
11674 (TARGET_XSCVSPDPN): Likewsie.
11675 (TARGET_SYNC_HI_QI): Likewise.
11676 (TARGET_SYNC_TI): Likewise.
11677 (MASK_CRYPTO): Likewise.
11678 (MASK_DIRECT_MOVE): Likewise.
11679 (MASK_P8_FUSION): Likewise.
11680 (MASK_P8_VECTOR): Likewise.
70cc1536
UB
11681 (REG_ALLOC_ORDER): Move fr13 to be lower in priority so that the TFmode
11682 temporary used by some of the direct move instructions to get two FP
11683 temporary registers does not force creation of a stack frame.
f62511da
MM
11684 (VLOGICAL_REGNO_P): Allow vector logical operations in GPRs.
11685 (MODES_TIEABLE_P): Move the VSX tests above the Altivec tests so
11686 that any VSX registers are tieable, even if they are also an
11687 Altivec vector mode.
11688 (r6000_reg_class_enum): Add wm, wr, wv constraints.
11689 (RS6000_BTM_P8_VECTOR): Power8 builtin support.
11690 (RS6000_BTM_CRYPTO): Likewise.
11691 (RS6000_BTM_COMMON): Likewise.
11692
11693 * config/rs6000/rs6000.md (cpu attribute): Add power8.
11694 * config/rs6000/rs6000-opts.h (PROCESSOR_POWER8): Likewise.
11695 (enum rs6000_vector): Add power8 vector support.
11696
73a1a707
RR
116972013-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11698
11699 PR target/19599
11700 PR target/57340
11701 * config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
11702 (any_sibcall_could_use_r3): this and handle indirect calls.
11703 (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
11704
d28073d4
BS
117052013-05-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11706
11707 * config/rs6000/rs6000.h (MALLOC_ABI_ALIGNMENT): New #define.
11708
bee0b10c
RB
117092013-05-22 Richard Biener <rguenther@suse.de>
11710
11711 PR middle-end/57349
11712 * profile.c (branch_prob): Do not split blocks that are
11713 abnormally receiving from ECF_RETURNS_TWICE functions.
11714
98409b51
RS
117152013-05-22 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
11716
11717 * recog.c (offsettable_address_addr_space_p): Fix calculation of
11718 address mode. Move pointer mode initialization to the same place.
11719
c0602ab8
MZ
117202013-05-22 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
11721
11722 * read-rtl.c (copy_rtx_for_iterators): Continue applying iterators
11723 while it has any effect.
11724
4f7a634e
ER
117252013-05-21 Easwaran Raman <eraman@google.com>
11726
11727 PR tree-optimization/57322
9daf6dbb
ER
11728 * tree-ssa-reassoc.c (build_and_add_sum): If a BB is empty, set the
11729 UID of the statement added to the BB to be 1.
4f7a634e 11730
a4ce1258
JJ
117312013-05-21 Jakub Jelinek <jakub@redhat.com>
11732
11733 PR tree-optimization/57331
70cc1536
UB
11734 * tree-vrp.c (simplify_cond_using_ranges): Don't optimize comparison
11735 of conversion from pointer type to integral type with integer.
a4ce1258 11736
1b14621a
MJ
117372013-05-21 Martin Jambor <mjambor@suse.cz>
11738
11739 PR lto/57289
11740 * ipa-prop.c (ipa_read_node_info): Process param_used and
11741 controlled_uses in the same order as when writing.
11742
e60661f0
MG
117432013-05-21 Magnus Granberg <baldrick@free.fr>
11744
11745 PR plugins/56754
ee49aa34 11746 * Makefile.in (PLUGIN_HEADERS): Add $(TARGET_H).
e60661f0 11747
4a61be9a
RB
117482013-05-21 Richard Biener <rguenther@suse.de>
11749
11750 PR tree-optimization/57318
11751 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Do not
11752 estimate stmts with side-effects as likely eliminated.
11753
c52da5f7
RB
117542013-05-21 Richard Biener <rguenther@suse.de>
11755
11756 PR tree-optimization/57330
11757 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Properly
11758 preserve the call stmts fntype.
11759
7ec67e2a
RB
117602013-05-21 Richard Biener <rguenther@suse.de>
11761
11762 PR tree-optimization/57303
11763 * tree-ssa-sink.c (statement_sink_location): Improve killing
11764 stmt detection and properly handle self-assignments.
11765
b112d513
CB
117662013-05-21 Christian Bruel <christian.bruel@st.com>
11767
55805e54
YR
11768 * dwarf2out.c (multiple_reg_loc_descriptor): Use dbx_reg_number for
11769 spanning registers. LEAF_REG_REMAP is supported only for contiguous
b112d513
CB
11770 registers. Set register size out of the PARALLEL loop.
11771
14c2ec26
OE
117722013-05-20 Oleg Endo <olegendo@gcc.gnu.org>
11773
11774 PR target/56547
11775 * config/sh/sh.md (fmasf4): Remove empty constraints strings.
11776 (*fmasf4, *fmasf4_media): New insns.
11777
da734fa1
RS
117782013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
11779
11780 * config/mips/mips.h (BASE_INSN_LENGTH, NOP_INSN_LENGTH): New macros.
11781 * config/mips/mips.c (mips_symbol_insns, mips_address_insns)
11782 (mips_const_insns, mips_split_const_insns, mips_load_store_insns)
11783 (mips_idiv_insns): Update the comments to say that the returned
11784 instruction counts are in units of BASE_INSN_LENGTH.
11785 (mips_adjust_insn_length): Multiply the mips_load_label_num_insns
11786 by BASE_INSN_LENGTH rather than 4. Add the jump separately,
11787 using 2 rather than 4 as the length of indirect MIPS16 and
11788 microMIPS jumps. Use NOP_INSN_LENGTH rather than 4 as the
11789 length of a NOP. Don't divide MIPS16 lengths by 2.
11790 (mips16_split_long_branches): Assume a branch is long if the
11791 length is greater than 4 rather than 8.
11792 * config/mips/mips.md (length): Give MIPS16 lengths directly,
11793 rather than multiplying them by 2. Multiply instruction counts
11794 by BASE_INSN_LENGTH rather than 4.
11795 (*jump_mips16, tls_get_tp_mips16_<mode>)
11796 (*tls_get_tp_mips16_call_<mode>): Divide lengths by 2.
11797
13719e8b
RS
117982013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
11799
11800 * config/mips/mips.md (extended_mips16): Remove branch case.
11801 (length): Remove duplicated extended_mips16 test.
11802
c3850d14
RS
118032013-05-19 Richard Sandiford <rdsandiford@googlemail.com>
11804
11805 * config/mips/t-sde: Don't build 64-bit microMIPS multilibs.
11806
8da2e059
RS
118072013-05-18 Richard Sandiford <rdsandiford@googlemail.com>
11808
11809 * recog.h (Recog_data): Rename to...
11810 (recog_data_d): ...this.
11811 (recog_data): Update accordingly.
11812 * recog.c (recog_data): Likewise.
11813 * reload.c (save_recog_data): Likewise.
11814 * config/picochip/picochip.c (picochip_saved_recog_data): Likewise.
11815 (picochip_save_recog_data, picochip_restore_recog_data): Likewise.
11816
2df013f3
JB
118172013-05-17 Julian Brown <julian@codesourcery.com>
11818
11819 * gcse.c (compute_ld_motion_mems): If a non-simple MEM is
11820 found in a REG_EQUAL note, invalidate it.
11821
371e77e3 118222013-05-17 Easwaran Raman <eraman@google.com>
933f507d
ER
11823
11824 * tree-ssa-reassoc.c (find_insert_point): New function.
11825 (insert_stmt_after): Likewise.
11826 (get_def_stmt): Likewise.
11827 (ensure_ops_are_available): Likewise.
11828 (not_dominated_by): Likewise.
11829 (rewrite_expr_tree): Do not move statements beyond what is
11830 necessary. Remove call to swap_ops_for_binary_stmt...
11831 (reassociate_bb): ... and move it here.
11832 (build_and_add_sum): Assign UIDs for new statements.
11833 (linearize_expr): Likewise.
11834 (do_reassoc): Renumber gimple statement UIDs.
11835
e01c7cca
JH
118362013-05-17 Jan Hubicka <jh@suse.cz>
11837
11838 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Resolve cross module
11839 weakrefs.
11840 * cgraph.c (dump_cgraph_node): Do not ice on unresolved alias.
e2420687
UB
11841 * cgraphunit.c (handle_alias_pairs): Store target of unresolved
11842 weakrefs.
e01c7cca
JH
11843 (output_weakrefs): Update.
11844
c3272a92
PCC
118452013-05-17 Po-Chun Chang <pchang9@cs.wisc.edu>
11846 Martin Jambor <mjambor@suse.cz>
11847
11848 PR middle-end/57276
11849 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Break when a
11850 value that corresponds to the given aggval is found in values vector.
11851
11c2aa39
UB
118522013-05-17 Uros Bizjak <ubizjak@gmail.com>
11853
11854 * config/i386/driver-i386.c (host_detect_local_cpu): Pass mmx, 3dnow,
11855 sse, sse2, sse3, ssse3 and sse4a flags to options.
11856
abecc8c6
DM
118572013-05-17 David Malcolm <dmalcolm@redhat.com>
11858
11859 * gengtype-state.c: (s_expr_writer): New class, to handle
11860 prettifying of output layout of s-expressions.
11861 (state_writer): New class, to write out gtype.state.
11862 (state_written_type_count): Move this variable into member data of
11863 state_writer.
11864 (s_expr_writer::s_expr_writer): New code: constructor for new class
11865 (state_writer::state_writer(): ditto
11866 (s_expr_writer::write_new_line): New function
11867 (s_expr_writer::write_any_indent): ditto
11868 (s_expr_writer::begin_s_expr): ditto
11869 (s_expr_writer::end_s_expr): ditto
11870 (write_state_fileloc): convert to method of state_writer...
11871 (state_writer:: write_state_fileloc): ...and use methods of
11872 s_expr_writer to write indentation into the gtype.state output file
11873 to visually represent the hierarchical structure of the list
11874 structures
11875 (write_state_fields): ditto, renaming to...
11876 (state_writer::write_state_fields)
11877 (write_state_a_string): ditto, renaming to...
11878 (state_writer::write_state_a_string)
11879 (write_state_string_option): ditto, renaming to...
11880 (state_writer::write_state_string_option)
11881 (write_state_type_option): ditto, renaming to...
11882 (state_writer::write_state_type_option)
11883 (write_state_nested_option): ditto, renaming to...
11884 (state_writer::write_state_nested_option)
11885 (write_state_option): ditto, renaming to...
11886 (state_writer::write_state_option)
11887 (write_state_options): ditto, renaming to...
11888 (state_writer::write_state_options)
11889 (write_state_lang_bitmap): ditto, renaming to...
11890 (state_writer::write_state_lang_bitmap)
11891 (write_state_version): ditto, renaming to...
11892 (state_writer::write_state_version)
11893 (write_state_scalar_type): ditto, renaming to...
11894 (state_writer::write_state_scalar_type)
11895 (write_state_string_type): ditto, renaming to...
11896 (state_writer::write_state_string_type)
11897 (write_state_undefined_type): ditto, renaming to...
11898 (state_writer::write_state_undefined_type)
11899 (write_state_struct_union_type): ditto, renaming to...
11900 (state_writer::write_state_struct_union_type)
11901 (write_state_struct_type): ditto, renaming to...
11902 (state_writer::write_state_struct_type)
11903 (write_state_user_struct_type): ditto, renaming to...
11904 (state_writer::write_state_user_struct_type)
11905 (write_state_lang_struct_type): ditto, renaming to...
11906 (state_writer::write_state_lang_struct_type)
11907 (write_state_param_struct_type): ditto, renaming to...
11908 (state_writer::write_state_param_struct_type)
11909 (write_state_pointer_type): ditto, renaming to...
11910 (state_writer::write_state_pointer_type)
11911 (write_state_array_type): ditto, renaming to...
11912 (state_writer::write_state_array_type)
11913 (write_state_gc_used): ditto, renaming to...
11914 (state_writer::write_state_gc_used)
11915 (write_state_common_type_content): ditto, renaming to...
11916 (state_writer::write_state_common_type_content)
11917 (write_state_type): ditto, renaming to...
11918 (state_writer::write_state_type)
11919 (write_state_pair_list): ditto, renaming to...
11920 (state_writer::write_state_pair_list)
11921 (write_state_pair): ditto, renaming to...
11922 (state_writer::write_state_pair)
11923 (write_state_typedefs): ditto, renaming to...
11924 (state_writer::write_state_typedefs)
11925 (write_state_structures): ditto, renaming to...
11926 (state_writer::write_state_structures)
11927 (write_state_param_structs): ditto, renaming to...
11928 (state_writer::write_state_param_structs)
11929 (write_state_variables): ditto, renaming to...
11930 (state_writer::write_state_variables)
11931 (write_state_srcdir): ditto, renaming to...
11932 (state_writer::write_state_srcdir)
11933 (write_state_files_list): ditto, renaming to...
11934 (state_writer::write_state_files_list)
11935 (write_state_languages): ditto, renaming to...
11936 (state_writer::write_state_languages)
11937 (write_state): create a state_writer instance and use it when
11938 writing out the state file
11939
d6545f29
MS
119402013-05-17 Mike Stump <mikestump@comcast.net>
11941
816a3f73 11942 PR rtl-optimization/57304
d6545f29
MS
11943 * web.c (union_match_dups): Ensure that DF_REF_LOC exists before
11944 accessing DF_REF_REAL_LOC.
11945
38c821cf
JJ
119462013-05-17 Jakub Jelinek <jakub@redhat.com>
11947
11948 PR rtl-optimization/57281
11949 PR rtl-optimization/57300
11950 * config/i386/i386.md (extendsidi2_1 dead reg splitter): Remove.
11951 (extendsidi2_1 peephole2s): Add instead 2 new peephole2s, that undo
11952 what the other splitter did if the registers are dead.
11953
2a293391
RB
119542013-05-17 Richard Biener <rguenther@suse.de>
11955
11956 * tree-ssa-alias.c (stmt_kills_ref_p_1): Properly compare
11957 MEM_REF offsets.
11958
17042d2b
JJ
119592013-05-17 Jakub Jelinek <jakub@redhat.com>
11960
11961 * gcc.c (SANITIZER_SPEC): Reject -fsanitize=address -fsanitize=thread
11962 linking.
11963
5b115c1f
MP
119642013-05-17 Marek Polacek <polacek@redhat.com>
11965
11c2aa39
UB
11966 * tree-ssa-strlen.c (handle_char_store): Don't invalidate cached
11967 length when doing non-zero store of storing '\0' to '\0'.
5b115c1f 11968
52d84413
JJ
119692013-05-17 Jakub Jelinek <jakub@redhat.com>
11970
68119618
JJ
11971 * tree-vect-patterns.c (vect_recog_rotate_pattern): For
11972 vect_external_def oprnd1 with loop_vinfo, try to emit
11973 optional cast, negation and and stmts on the loop preheader
11974 edge instead of into the pattern def seq.
11975
52d84413
JJ
11976 PR tree-optimization/57051
11977 * fold-const.c (const_binop) <case VEC_LSHIFT_EXPR,
11978 case VEC_RSHIFT_EXPR>: Fix BYTES_BIG_ENDIAN handling.
11979
17b962bd
NC
119802013-05-16 Nick Clifton <nickc@redhat.com>
11981
11982 * config/rl78/rl78.c (rl78_attribute_table): Add naked.
11983 (rl78_is_naked_func): New function.
56aefbf7
UB
11984 (rl78_expand_prologue): Skip prologue generation for naked functions.
11985 (rl78_expand_epilogue): Skip epilogue generation for naked functions.
17b962bd
NC
11986 * doc/extend.texi (naked): Add RL78 to the list of processors
11987 that supports this attribute.
11988
b1a0f84e
JL
119892013-05-16 Jeff Law <law@redhat.com>
11990
11991 * Makefile.in (tree-switch-conversion.o): Depend on $(OPTABS_H).
11992
af0e415b
UB
119932013-05-16 Uros Bizjak <ubizjak@gmail.com>
11994
11995 * config/i386/driver-i386.c (host_detect_local_cpu): Determine
11996 cache parameters using detect_caches_amd also for CYRIX,
11997 NSC and TM2 signatures.
11998
19db293a
UB
119992013-05-16 Uros Bizjak <ubizjak@gmail.com>
12000 Dzianis Kahanovich <mahatma@eu.by>
12001
12002 PR target/45359
12003 PR target/46396
12004 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
12005 VIA/Centaur processors and determine their cache parameters
12006 using detect_caches_amd.
12007
251a41b9
TJ
120082013-05-16 Teresa Johnson <tejohnson@google.com>
12009
12010 * cfgrtl.c (verify_hot_cold_block_grouping): Return err.
12011 (rtl_verify_edges): New function.
12012 (rtl_verify_bb_insns): Ditto.
12013 (rtl_verify_bb_pointers): Ditto.
12014 (rtl_verify_bb_insn_chain): Ditto.
12015 (rtl_verify_fallthru): Ditto.
12016 (rtl_verify_bb_layout): Ditto.
12017 (rtl_verify_flow_info_1): Outline checks into new functions.
12018 (rtl_verify_flow_info): Ditto.
12019
f14540b6
SE
120202013-05-16 Steve Ellcey <sellcey@imgtec.com>
12021
12022 * cfghooks.c (copy_bbs): Add update_dominance argument.
12023 * cfghooks.h (copy_bbs): Update prototype.
12024 * tree-cfg.c (gimple_duplicate_sese_region):
12025 Add update_dominance argument.
12026 * tree-flow.h (gimple_duplicate_sese_region): Update prototype.
12027 * tree-ssa-loop-ch.c (copy_loop_headers): Update
12028 gimple_duplicate_sese_region call.
12029 * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg):
12030 Update copy_bbs call.
12031 * cfgloopmanip.c (duplicate_loop_to_header_edge): Ditto.
12032 * trans-mem.c (ipa_uninstrument_transaction): Ditto.
12033
7e9a3abb
JJ
120342013-05-16 Jakub Jelinek <jakub@redhat.com>
12035
12036 * tree-vectorizer.h (NUM_PATTERNS): Increment.
12037 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Add
12038 vect_recog_rotate_pattern.
12039 (vect_recog_rotate_pattern): New function.
12040
427b248d
JM
120412013-05-16 Jason Merrill <jason@redhat.com>
12042
12043 * Makefile.in (LLINKER): New variable.
12044 (mostlyclean): Remove link mutex.
12045 * configure.ac: Handle --enable-link-mutex.
12046 * lock-and-run.sh: New script.
12047
b871e3d2
RR
120482013-05-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12049
12050 PR target/19599
12051 * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
12052 for NULL decl.
12053
ce858126
RO
120542013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12055
12056 * reorg.c (link_cc0_insns): Wrap in #ifdef HAVE_cc0.
12057
798d3d04
GY
120582013-05-16 Greta Yorsh <Greta.Yorsh@arm.com>
12059
12060 * config/arm/arm-protos.h (gen_movmem_ldrd_strd): New declaration.
12061 * config/arm/arm.c (next_consecutive_mem): New function.
12062 (gen_movmem_ldrd_strd): Likewise.
12063 * config/arm/arm.md (movmemqi): Update condition and code.
12064 (unaligned_loaddi, unaligned_storedi): New patterns.
12065
0baddc45
RO
120662013-05-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12067
12068 * config.gcc: Obsolete *-*-solaris2.9*.
12069 * doc/install.texi (Specific, *-*-solaris2*): Document it.
12070
aa9d5bcf
RB
120712013-05-16 Richard Biener <rguenther@suse.de>
12072
12073 * passes.c (init_optimization_passes): Move pass_parallelize_loops
12074 earlier, after GRAPHITE transforms and IV canonicalization.
12075
5a0f4dd3
JJ
120762013-05-16 Jakub Jelinek <jakub@redhat.com>
12077
12078 * omp-low.c (extract_omp_for_data): For collapsed loops,
12079 if at least one of the loops is known at compile time to
12080 iterate zero times, set count to 0.
12081 (expand_omp_regimplify_p): New function.
12082 (expand_omp_for_generic): For collapsed loops, if at least
12083 one of the loops isn't known to iterate at least once,
12084 add runtime check with setting count to 0.
12085 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk):
12086 For unsigned types if it isn't known at compile time that
12087 the loop will iterate at least once, add runtime check to bypass
12088 the whole loop if initial condition isn't true.
12089
e3753785
NS
120902013-05-16 Nathan Sidwell <nathan@codesourcery.com>
12091
12092 * varasm.c (default_use_anchors_for_symbol_p): Use decl_replaceable_p.
12093
43bb4dd1
MG
120942013-05-16 Marc Glisse <marc.glisse@inria.fr>
12095
12096 PR middle-end/57286
12097 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Disable some
12098 transformations to avoid an infinite loop.
12099
3571dde6
MP
121002013-05-16 Marek Polacek <polacek@redhat.com>
12101
12102 * tree-scalar-evolution.c (scev_const_prop): Add more dumps.
12103
b8b3f0ca
LE
121042013-05-15 Leif Ekblad <leif@rdos.net>
12105
12106 * config/i386/i386.c (ix86_decompose_address): Use
12107 DEFAULT_TLS_SEG_REG to access TLS segment register.
12108 * config/i386/i386.h (DEFAULT_TLS_SEG_REG): New define.
12109 * config/i386/rdos.h (DEFAULT_TLS_SEG_REG): Ditto.
12110 (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Ditto.
12111
e299a383
RS
121122013-05-15 Richard Sandiford <rdsandiford@googlemail.com>
12113
12114 PR target/57260
12115 * config/mips/mips.c (mips_function_ok_for_sibcall): Don't allow
12116 sibling calls to functions that would normally be lazily bound,
12117 unless $gp is call-clobbered.
12118
e7208ea3
UB
121192013-05-15 Uros Bizjak <ubizjak@gmail.com>
12120
19db293a 12121 * config/i386/i386.c (ix86_option_override_internal): Update
e7208ea3 12122 processor_alias_table for missing PTA_PRFCHW and PTA_FXSR flags. Add
5d280e2b
UB
12123 PTA_POPCNT to corei7 entry. Do not enable SSE prefetch on
12124 non-SSE 3dNow! targets. Enable TARGET_PRFCHW for TARGET_3DNOW targets.
e7208ea3
UB
12125 * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW instead
12126 of TARGET_3DNOW.
12127 (*prefetch_3dnow): Enable for TARGET_PRFCHW only.
12128
e7413f3d
AS
121292013-05-15 Andreas Schwab <schwab@suse.de>
12130
12131 * config/m68k/m68k.md (*rotlhi3_lowpart, *rotlqi3_lowpart): Name
12132 for rotlhi3+1 and rotlqi3+1, resp. Fix reference to non-existing
12133 third operand.
12134
ad4db775
TJ
121352013-05-15 Teresa Johnson <tejohnson@google.com>
12136
12137 * loop-unroll.c (report_unroll_peel): Check decision before
12138 emitting unroll/peel message.
12139
af205f67
TJ
121402013-05-15 Teresa Johnson <tejohnson@google.com>
12141
12142 * function.h (has_bb_partition): New rtl_data flag.
12143 (bb_reorder_complete): Ditto.
12144 * cfgcleanup.c (try_crossjump_to_edge): Check for has_bb_partition
12145 instead of flag_reorder_blocks_and_partition.
12146 * cfgrtl.c (verify_hot_cold_block_grouping): Moved from bb-reorder.c,
12147 with some enhancements.
12148 (rtl_verify_flow_info_1): Call verify_hot_cold_block_grouping.
12149 * bb-reorder.c (connect_traces): Check for has_bb_partition
12150 instead of flag_reorder_blocks_and_partition.
12151 (verify_hot_cold_block_grouping): Moved to cfgrtl.c.
12152 (reorder_basic_blocks): Set bb_reorder_complete flag, remove call to
12153 verify_hot_cold_block_grouping.
12154 (partition_hot_cold_basic_blocks): Set has_bb_partition.
12155
9adcfa3c
RR
121562013-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12157
12158 PR target/19599
12159 * config/arm/predicates.md (call_insn_operand): New predicate.
12160 * config/arm/constraints.md ("Cs", "Ss"): New constraints.
12161 * config/arm/arm.md (*call_insn, *call_value_insn): Match only
12162 if insn is not a tail call.
12163 (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
12164 registers.
12165 * config/arm/arm.h (enum reg_class): New caller save register class.
12166 (REG_CLASS_NAMES): Likewise.
12167 (REG_CLASS_CONTENTS): Likewise.
12168 * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
12169 without decls.
12170
ccb3ad87
RB
121712013-05-15 Richard Biener <rguenther@suse.de>
12172
12173 * tree-vect-loop.c (vect_transform_loop): Use MSG_NOTE instead
12174 of MSG_OPTIMIZED_LOCATIONS.
12175 * tree-vect-slp.c (vect_make_slp_decision): Likewise.
12176 (vect_slp_transform_bb): Indicate location in MSG_OPTIMIZED_LOCATIONS
12177 message.
12178 * tree-vectorizer.c (vectorize_loops): Use MSG_NOTE instead
12179 of MSG_OPTIMIZED_LOCATIONS.
12180 (execute_vect_slp): Likewise.
12181 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Likewise.
12182 (vect_create_cond_for_alias_checks): Likewise.
12183 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise.
12184 (vect_recog_widen_mult_pattern): Likewise.
12185 (vect_recog_widen_sum_pattern): Likewise.
12186 (vect_recog_over_widening_pattern): Likewise.
12187 (vect_recog_widen_shift_pattern): Likewise.
12188 (vect_recog_vector_vector_shift_pattern): Likewise.
12189 (vect_recog_divmod_pattern): Likewise.
12190 (vect_recog_mixed_size_cond_pattern): Likewise.
12191 (vect_recog_bool_pattern): Likewise.
12192 (vect_pattern_recog_1): Likewise.
12193
48b1474e
MJ
121942013-05-15 Martin Jambor <mjambor@suse.cz>
12195
12196 * ipa-prop.c (ipa_make_edge_direct_to_target): Redirect calls to
12197 non-functions to builtin_unreachable.
12198 * ipa-inline-transform.c (inline_call): Do not assert estimates were
12199 correct when new direct edges were discovered.
12200
9de04252
MJ
122012013-05-15 Martin Jambor <mjambor@suse.cz>
12202
12203 * ipa-prop.c (ipa_print_node_jump_functions): Print symbol order in
12204 header, print symbol order instead of node uid, print more information
12205 about indirect edge targets.
12206 (ipa_make_edge_direct_to_target): Print symbol order instead of node
12207 uids.
12208 (ipa_make_edge_direct_to_target): Likewise.
12209 (remove_described_reference): Likewise.
12210 (propagate_controlled_uses): Likewise.
12211 (ipa_print_node_params): Also print symbol order.
12212 (ipcp_transform_function): Print symbol order instead of node uids.
12213 * cgraph.c (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
12214 (cgraph_get_create_real_symbol_node): Likewise.
12215 * ipa-cp.c (print_lattice): Likewise.
12216 (print_all_lattices): Likewise.
12217 (determine_versionability): Likewise.
12218 (initialize_node_lattices): Likewise.
12219 (estimate_local_effects): Likewise.
12220 (update_profiling_info): Likewise.
12221 (create_specialized_node): Likewise.
12222 (perhaps_add_new_callers): Likewise.
12223 (decide_about_value): Likewise.
12224 (decide_whether_version_node): Likewise.
12225 (identify_dead_nodes): Likewise.
12226 * ipa-inline-analysis.c (dump_inline_edge_summary): Likewise.
12227 (dump_inline_summary): Likewise.
12228 (estimate_node_size_and_time): Likewise.
12229 (inline_analyze_function): Likewise.
12230 * ipa-inline.c (report_inline_failed_reason): Likewise.
12231 (want_early_inline_function_p): Likewise.
12232 (edge_badness): Likewise.
12233 (update_edge_key): Likewise.
12234 (inline_small_functions): Likewise. Add dumping of order to two other
12235 dumps.
12236 * ipa-pure-const.c (pure_const_read_summary): Print symbol order
12237 instead of node uids.
12238 (propagate_pure_const): Likewise.
12239 (propagate_pure_const): Likewise.
12240 * ipa-utils.c (dump_cgraph_node_set): Likewise.
12241 * lto-cgraph.c (input_node): Explicitly specify we dump uid.
12242 * lto-symtab.c (lto_cgraph_replace_node): Print symbol order instead
12243 of node uids.
12244 * tree-pretty-print.c (dump_function_header): Likewise.
12245 * tree-sra.c (convert_callers_for_node): Dump in traditional format.
12246 Print symbol order instead of node uids.
12247
1dd03b91
AK
122482013-05-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
12249
12250 * config/s390/s390.c (s390_register_move_cost): Don't impose the
12251 FPR<->GPR move cost penalty if ldgr/lgdr can be used.
12252
fdf6a7b9
RB
122532013-05-15 Richard Biener <rguenther@suse.de>
12254
12255 PR tree-optimization/57275
12256 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Fix
12257 return value for fail to do runtime alias checks for gather loads.
12258
2d6e4603
JH
122592013-05-15 Jan Hubicka <jh@suse.cz>
12260
12261 PR lto/57038
12262 PR lto/47375
e7208ea3
UB
12263 * lto-symtab.c (lto_symtab_symbol_p): Add external symbol;
12264 weakrefs are not external.
12265 (lto_symtab_merge_decls): Fix thinko when dealing with
12266 non-lto_symtab decls.
2d6e4603
JH
12267 (lto_symtab_merge_cgraph_nodes): Use lto_symtab_symbol_p.
12268 (lto_symtab_prevailing_decl): Get int sync with lto_symtab_symbol_p.
12269 * varpool.c (dump_varpool_node): Dump more flags.
12270
83f44b39
GG
122712013-05-15 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
12272
12273 * config/i386/i386.c (processor_alias_table): Add instruction
12274 FSGSBASE for AMD bdver3 architecture.
12275
2e55d062
JJ
122762013-05-14 Jakub Jelinek <jakub@redhat.com>
12277
12278 * tree.c (warn_deprecated_use): Print file:line using locus color.
12279 * diagnostic.c (diagnostic_report_current_module): Print file:line
12280 and file:line:column using locus color.
12281
0bfdb81e
MS
122822013-05-14 Mike Stump <mikestump@comcast.net>
12283
12284 * gdbinit.in: Add __null.
12285
a508ef22
MS
122862013-05-14 Mike Stump <mikestump@comcast.net>
12287
12288 * recog.h: Rename struct recog_data to Recog_data.
12289 * recog.c: Likewise.
12290 * reload.c (can_reload_into): Likewise.
12291 * config/picochip/picochip.c: Likewise.
12292
e7180acb
MS
122932013-05-14 Mike Stump <mikestump@comcast.net>
12294
12295 * web.c (union_match_dups): Also check DF_REF_REAL_LOC.
12296
61216c26
SB
122972013-05-14 Steven Bosscher <steven@gcc.gnu.org>
12298
fd6beed4
SB
12299 * resource.h (struct resources): Remove unch_memory member.
12300 (CLEAR_RESOURCE): Don't clear unch_memory.
12301 * resource.c (mark_referenced_resources): Don't set it.
12302 (mark_set_resources): Likewise.
12303 (mark_target_live_regs): Don't clear it.
12304 (init_resource_info): Likewise.
12305 * reorg.c (resource_conflicts_p): Don't compare it.
12306 (redundant_insn): Don't set it.
12307
61216c26
SB
12308 * rtl.h (next_label, skip_consecutive_labels, link_cc0_insns):
12309 Remove prototypes.
12310 * emit-rtl.c (next_label): Remove unused function.
12311 (skip_consecutive_labels, link_cc0_insns): Move to ...
12312 * reorg.c (skip_consecutive_labels, link_cc0_insns): ... here, the
12313 only place where these functions are used, and make them static.
12314
418d1b87
MG
123152013-05-14 Marc Glisse <marc.glisse@inria.fr>
12316
12317 * fold-const.c (fold_negate_expr): Handle vectors.
12318 (fold_truth_not_expr): Make it static.
12319 (fold_invert_truthvalue): New static function.
12320 (invert_truthvalue_loc): Handle vectors. Do not call
12321 fold_truth_not_expr directly.
12322 (fold_unary_loc) <BIT_NOT_EXPR>: Handle comparisons.
12323 <TRUTH_NOT_EXPR>: Do not cast to boolean.
12324 (fold_comparison): Handle vector constants.
12325 (fold_binary_loc) <TRUTH_XOR_EXPR>: Remove redundant code.
12326 (fold_ternary_loc) <VEC_COND_EXPR>: Adapt more COND_EXPR optimizations.
12327 * tree.h (fold_truth_not_expr): Remove declaration.
12328
fc21784d
JG
123292013-05-14 James Greenhalgh <james.greenhalgh@arm.com>
12330
12331 * config/aarch64/aarch64-simd.md
12332 (aarch64_vcond_internal<mode>): Rename to...
12333 (aarch64_vcond_internal<mode><mode>): ...This, for integer modes.
12334 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): ...This for
12335 float modes. Clarify all iterator modes.
12336 (vcond<mode><mode>): Use new name for vcond expanders.
12337 (vcond<v_cmp_result><mode>): Likewise.
12338 (vcondu<mode><mode>: Likewise.
12339 * config/aarch64/iterators.md (VDQF_COND): New.
12340
d4c52634
MG
123412013-05-14 Marc Glisse <marc.glisse@inria.fr>
12342
12343 PR bootstrap/57266
12344 * fold-const.c (fold_binary_loc) <shift>: Use an unsigned
12345 variable for the shift amount. Check that we shift by non-negative
12346 amounts.
12347
2b261262
CLT
123482013-05-14 Chung-Lin Tang <cltang@codesourcery.com>
12349
12350 PR target/42017
12351 * config/arm/arm.h (EPILOGUE_USES): Only return true
12352 for LR_REGNUM after epilogue_completed.
12353
12211b99 123542013-05-14 Joern Rennecke <joern.rennecke@embecosm.com>
6e022d7b
JR
12355
12356 * config/avr/avr.c (avr_encode_section_info): Bail out if the type
e7208ea3 12357 is error_mark_node.
6e022d7b 12358
56cf7859
RO
123592013-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
12360
12361 PR target/57261
12362 * configure.ac (gcc_cv_ld_as_needed): Disable before Solaris 11
12363 and Solaris 11+/x86 with gld.
12364 * configure: Regenerate.
12365
75776c6d
JJ
123662013-05-14 Jakub Jelinek <jakub@redhat.com>
12367
12368 * expmed.c (expand_shift_1): Canonicalize rotates by
12369 constant bitsize / 2 to bitsize - 1.
7f998021 12370 * simplify-rtx.c (simplify_binary_operation_1) <case ROTATE,
75776c6d
JJ
12371 case ROTATERT>: Likewise.
12372
12373 Revert:
12374 2013-05-10 Jakub Jelinek <jakub@redhat.com>
12375
12376 * config/i386/i386.md (rotateinv): New code attr.
12377 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
12378 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
12379 roll $31, %eax, etc.
12380
df35498a
RB
123812013-05-14 Richard Biener <rguenther@suse.de>
12382
12383 PR middle-end/57235
12384 * tree-eh.c (sink_clobbers): Give up for successors with
12385 multiple predecessors and no virtual uses.
12386
cc6e7ece
EB
123872013-05-14 Eric Botcazou <ebotcazou@adacore.com>
12388
12389 * config/sparc/sp64-elf.h (CPP_SUBTARGET_SPEC): Delete.
12390 * config/sparc/openbsd64.h (CPP_SUBTARGET_SPEC): Likewise.
12391
f778dd4d
JJ
123922013-05-14 Jakub Jelinek <jakub@redhat.com>
12393
12394 PR middle-end/57251
12395 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Handle
12396 the case when both op0 and op1 have VOIDmode.
12397
bad4df9b
KP
123982013-05-14 Kaushik Phatak <kaushik.phatak@kpitcummins.com>
12399
12400 * config/rl78/rl78.md(mulsi3_g13): Add additional 'nop' required
12401 in multiply-accumulate mode.
12402
56f3e9ac
GW
124032013-05-13 Guozhi Wei <carrot@google.com>
12404
12405 * dwarf2asm.c (dw2_output_indirect_constant_1): Mark new decl STATIC.
12406
a3d7ab92
KT
124072013-05-13 Kai Tietz <ktietz@redhat.com>
12408
12409 PR target/56975
12410 * config/i386/cygming.h (TARGET_PECOFF): Define as true.
e7208ea3 12411 * config/i386/i386.h (TARGET_PECOFF): Define by default as false.
a3d7ab92 12412 (PIC_OFFSET_TABLE_REGNUM): Use TARGET_PECOFF.
e7208ea3 12413 * config/i386/i386.c (ix86_option_override_internal): Likewise.
a3d7ab92
KT
12414 (ix86_expand_prologue): Likewise.
12415 (ix86_expand_split_stack_prologue): Likewise.
12416 (legitimate_pic_address_disp_p): Likewise.
12417 (legitimize_pic_address): Likewise.
12418 (legitimize_tls_address): Likewise.
12419 (legitimize_pe_coff_symbol): Likewise.
12420 (output_pic_addr_const): Likewise.
12421 (construct_plt_address): Likewise.
12422 (ix86_expand_call): Likewise.
12423 (x86_output_mi_thunk): Likewise.
12424 (x86_function_profiler): Likewise.
12425
c59b7e28
SN
124262013-05-13 Sofiane Naci <sofiane.naci@arm.com>
12427
12428 * config/aarch64/aarch64-simd.md (aarch64_simd_mov<mode>): Group
12429 similar switch cases.
12430 (aarch64_simd_mov): Rename to aarch64_split_simd_mov. Update.
12431 (aarch64_simd_mov_to_<mode>low): Delete.
12432 (aarch64_simd_mov_to_<mode>high): Delete.
12433 (move_lo_quad_<mode>): Add w<-r alternative.
12434 (aarch64_simd_move_hi_quad_<mode>): Likewise.
12435 (aarch64_simd_mov_from_*): Update type attribute.
12436 * config/aarch64/aarch64.c (aarch64_split_simd_move): Refacror switch
12437 statement.
12438
5f28524a
JH
124392013-05-13 Jan Hubicka <jh@suse.cz>
12440
12441 * mode-switching.c (optimize_mode_switching): Set correct RTL profile.
12442 * config/i386/i386.c (ix86_compute_frame_layout,
e7208ea3
UB
12443 ix86_expand_epilogue, emit_i387_cw_initialization,
12444 ix86_expand_vector_move_misalign, ix86_fp_comparison_strategy,
12445 ix86_local_alignment): Fix use of size/speed predicates.
5f28524a 12446
ae6fa899
JJ
124472013-05-13 Jakub Jelinek <jakub@redhat.com>
12448
12449 PR tree-optimization/45216
12450 PR tree-optimization/57157
12451 * tree-ssa-forwprop.c (simplify_rotate): Only recognize
12452 the (-Y) & (B - 1) variant if OP is |.
12453 * expmed.c (expand_shift_1): For rotations by const0_rtx just
12454 return shifted. Use (-op1) & (prec - 1) as other_amount
12455 instead of prec - op1.
12456
4502fe8d
MJ
124572013-05-13 Martin Jambor <mjambor@suse.cz>
12458
12459 PR middle-end/42371
12460 * ipa-prop.h (IPA_UNDESCRIBED_USE): New macro.
12461 (ipa_constant_data): New type.
12462 (ipa_jump_func): Use ipa_constant_data to hold information about
12463 constant jump functions.
12464 (ipa_get_jf_constant): Adjust to jump function type changes.
12465 (ipa_get_jf_constant_rdesc): New function.
12466 (ipa_param_descriptor): New field controlled_uses.
12467 (ipa_get_controlled_uses): New function.
12468 (ipa_set_controlled_uses): Likewise.
12469 * ipa-ref.h (ipa_find_reference): Declare.
12470 * ipa-prop.c (ipa_cst_ref_desc): New type.
12471 (ipa_print_node_jump_functions_for_edge): Adjust for jump function type
12472 changes.
12473 (ipa_set_jf_constant): Likewise. Also create reference descriptions.
12474 New parameter cs. Adjust all callers.
12475 (ipa_analyze_params_uses): Detect uncontrolled and controlled uses.
12476 (remove_described_reference): New function.
12477 (jfunc_rdesc_usable): Likewise.
12478 (try_make_edge_direct_simple_call): Decrement controlled use count,
12479 attempt to remove reference if it hits zero.
12480 (combine_controlled_uses_counters): New function.
12481 (propagate_controlled_uses): Likewise.
12482 (ipa_propagate_indirect_call_infos): Call propagate_controlled_uses.
12483 (ipa_edge_duplication_hook): Duplicate reference descriptions.
12484 (ipa_print_node_params): Print described use counter.
12485 (ipa_write_jump_function): Adjust to jump function type changes.
12486 (ipa_read_jump_function): New parameter CS, pass it to
12487 ipa_set_jf_constant. Adjust caller.
12488 (ipa_write_node_info): Stream controlled use count
12489 (ipa_read_node_info): Likewise.
12490 * cgraph.c (cgraph_mark_address_taken_node): Bail out instead of
12491 asserting.
12492 * ipa-cp.c (ipcp_discover_new_direct_edges): Decrement controlled use
12493 count. Remove cloning-added reference if it reaches zero.
12494 * ipa-ref.c (ipa_find_reference): New function.
12495
0864bfc2
GG
124962013-05-13 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
12497
e7208ea3 12498 * config/i386/i386.c (processor_target_table): Modified default
0864bfc2
GG
12499 alignment values for AMD BD and BT architectures.
12500
640bfeb2
MG
125012013-05-13 Marc Glisse <marc.glisse@inria.fr>
12502
12503 * tree-vect-generic.c (uniform_vector_p): Move ...
12504 * tree.c (uniform_vector_p): ... here.
12505 * tree.h (uniform_vector_p): Declare it.
12506 * fold-const.c (fold_binary_loc) <shift>: Turn the second argument
12507 into a scalar.
12508
3a60f32b
JJ
125092013-05-13 Jakub Jelinek <jakub@redhat.com>
12510
198fe1bf
JJ
12511 PR tree-optimization/57230
12512 * tree-ssa-strlen.c (handle_char_store): Record length for
12513 array store from STRING_CST.
12514
3a60f32b
JJ
12515 PR tree-optimization/57230
12516 * tree-ssa-strlen.c (handle_char_store): Add missing integer_zerop
12517 check.
12518
566be57c
JR
125192013-05-12 Joern Rennecke <joern.rennecke@embecosm.com>
12520
12521 * config/epiphany/epiphany.c (epiphany_init): Check size of
12522 NUM_MODES_FOR_MODE_SWITCHING.
12523 (epiphany_expand_prologue):
12524 Remove CONFIG_REGNUM initial value handling code.
12525 (epiphany_optimize_mode_switching): Handle EPIPHANY_MSW_ENTITY_CONFIG.
12526 (epiphany_mode_needed, epiphany_mode_entry_exit): Likewise.
2710a27a 12527 (emit_set_fp_mode, epiphany_mode_after): Likewise.
566be57c
JR
12528 (epiphany_mode_needed) <Handle EPIPHANY_MSW_ENTITY_AND>:
12529 Don't return 1 for FP_MODE_NONE.
12530 * config/epiphany/epiphany.h (NUM_MODES_FOR_MODE_SWITCHING):
12531 Add value for EPIPHANY_MSW_ENTITY_CONFIG.
12532 (EPIPHANY_MSW_ENTITY_CONFIG, EPIPHANY_MSW_ENTITY_NUM): Define.
12533 * config/epiphany/epiphany.md (save_config): New pattern.
12534
0f2c2331
UB
125352013-05-12 Uros Bizjak <ubizjak@gmail.com>
12536
12537 * config/i386/i386.md (*zero_extendsidi2): Add *x->?r alternative.
12538
5b3f93c7
UB
125392013-05-10 Uros Bizjak <ubizjak@gmail.com>
12540
12541 * config/i386/i386.md (memory): Handle sseishft1.
12542 * config/i386/sse.md (*vec_extractv4si): Remove memory attribute.
12543 (*vec_extractv2di_1): Ditto.
12544
1f873f0e
VM
125452013-05-10 Vladimir Makarov <vmakarov@redhat.com>
12546
12547 * lra-assigns.c (find_hard_regno_for): Add 1 to the cost of call
12548 saved registers.
12549
341427fa 125502013-05-10 Sebastian Huber <sebastian.huber@embedded-brains.de>
d7de6455
SH
12551
12552 * config/arm/t-rtems-eabi: Remove mthumb/march=armv7 multilib.
12553 Add mthumb/march=armv7-a multilib.
12554 Add mthumb/march=armv7-r multilib.
12555 Add mthumb/march=armv7-a/mfpu=neon/mfloat-abi=hard multilib.
12556
9e69bdde
RC
125572013-05-10 Ralf Corsépius <ralf.corsepius@rtems.org>
12558
12559 * config/v850/t-rtems: Add more multilibs.
12560
9ff09a22
RB
125612013-05-10 Richard Biener <rguenther@suse.de>
12562
12563 PR tree-optimization/57214
12564 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Do
12565 not propagate from SSA names that occur in abnormal PHI nodes.
12566
a5e0cd1d
MG
125672013-05-10 Marc Glisse <marc.glisse@inria.fr>
12568
12569 * stor-layout.c (element_precision): New function.
12570 * machmode.h (element_precision): Declare it.
12571 * tree.c (build_minus_one_cst): New function.
12572 (element_precision): Likewise.
12573 * tree.h (build_minus_one_cst): Declare new function.
12574 (element_precision): Likewise.
12575 * fold-const.c (operand_equal_p): Use element_precision.
12576 (fold_binary_loc): Handle vector types.
12577 * convert.c (convert_to_integer): Use element_precision.
12578 * gimple.c (iterative_hash_canonical_type): Handle complex and vectors
12579 separately.
12580
cb2558bc
RS
125812013-05-10 Richard Sandiford <rdsandiford@googlemail.com>
12582
12583 * config/mips/mips-protos.h (m16_uimm3_b, m16_simm4_1, m16_nsimm4_1)
12584 (m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4, m16_simm8_1)
12585 (m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1, m16_uimm8_4)
12586 (m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
12587 * config/mips/mips.c (m16_check_op, m16_uimm3_b, m16_simm4_1)
12588 (m16_nsimm4_1, m16_simm5_1, m16_nsimm5_1, m16_uimm5_4, m16_nuimm5_4)
12589 (m16_simm8_1, m16_nsimm8_1, m16_uimm8_1, m16_nuimm8_1, m16_uimm8_m1_1)
12590 (m16_uimm8_4, m16_nuimm8_4, m16_simm8_8, m16_nsimm8_8): Delete.
12591 * config/mips/constraints.md (Udb8, Usb5, Usb8, Usd8, Uub8, Uuw5)
12592 (Uuw8): New constraints.
12593 (Usb4): Move into alphabetical order.
12594 * config/mips/predicates.md (db8_operand, sb5_operand, sb8_operand)
12595 (sd8_operand, ub8_operand, uw8_operand): New predicates.
12596 * config/mips/mips.md (*xor<mode>3, *xor<mode>3_mips16): Name
12597 previously unnamed patterns.
12598 (*add<mode>3_mips16, *xor<mode>3_mips16, *<optab>si3_mips16)
12599 (*ashldi3_mips16, *ashrdi3_mips16, *lshrdi3_mips16)
12600 (*slt<u>_<GPR:mode><GPR2:mode>_mips16)
12601 (*sle<u>_<GPR:mode><GPR2:mode>_mips16): Use constraints instead
12602 of set_attr_alternative/if_then_else. Use extended_mips16 instead
12603 of specific lengths.
12604
cb3b8d33
JJ
126052013-05-10 Jakub Jelinek <jakub@redhat.com>
12606
6f93c008
JJ
12607 * config/i386/i386.md (rotateinv): New code attr.
12608 (*<rotate_insn><mode>3_1, *<rotate_insn>si3_1_zext,
12609 *<rotate_insn>qi3_1_slp): Emit rorl %eax instead of
12610 roll $31, %eax, etc.
12611
cb3b8d33
JJ
12612 PR tree-optimization/45216
12613 PR tree-optimization/57157
12614 * tree-ssa-forwprop.c (simplify_rotate): New function.
12615 (ssa_forward_propagate_and_combine): Call it.
12616
afb119be
RB
126172013-05-10 Richard Biener <rguenther@suse.de>
12618
12619 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do not
12620 disable peeling when we version for aliasing.
12621 (vector_alignment_reachable_p): Honor explicit user alignment.
12622 (vect_supportable_dr_alignment): Likewise.
12623 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Use
12624 STMT_VINFO_LOOP_PHI_EVOLUTION_PART instead of recomputing it.
12625 * tree-vect-loop.c (vect_transform_loop): First apply versioning,
12626 then peeling to arrange for the cost-model check to come first.
12627
01ae4861
AM
126282013-05-10 Alan Modra <amodra@gmail.com>
12629
12630 * configure.ac (HAVE_AS_TLS): Swap powerpc64 and powerpc cases.
12631 (HAVE_LD_LARGE_TOC): Don't mention AIX in help text.
12632 * configure: Regenerate.
12633
ebc9a431
AM
126342013-05-10 Alan Modra <amodra@gmail.com>
12635
12636 PR target/55033
12637 * varasm.c (default_elf_select_section): Move !DECL_P check..
12638 (get_named_section): ..to here before calling get_section_name.
12639 Adjust assertion.
12640 (default_section_type_flags): Add DECL_P check.
12641 * config/i386/winnt.c (i386_pe_section_type_flags): Likewise.
12642 * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): Likewise.
12643
d4bca93c
JR
126442013-05-09 Joern Rennecke <joern.rennecke@embecosm.com>
12645
12646 * config/epiphany/epiphany.c (epiphany_expand_prologue):
12647 When using gen_stack_adjust_str with a register offset, add a
12648 REG_FRAME_RELATED_EXPR note.
12649
60ca9a65
UB
126502013-05-09 Uros Bizjak <ubizjak@gmail.com>
12651
12652 * config/i386/sse.md (*vec_extractv4si_0_zext): New pattern.
12653 (*vec_extractv4si_zext_mem): Ditto.
12654 (*vec_extractv2di): Add 0->x and x->x alternatives.
12655 * config/i386/mmx.md (*vec_extractv2si_zext_mem): New pattern.
12656 * config/i386/i386.md (*zero_extendsidi2): Add *Yj->?r alternative.
12657
a3409c02
JM
126582013-05-09 Jason Merrill <jason@redhat.com>
12659
0138d6b2
JM
12660 N3639 C++1y VLA support
12661 * gimplify.c (gimplify_vla_decl): Don't touch an existing
12662 DECL_VALUE_EXPR.
12663
a3409c02
JM
12664 * tree.c (build_constructor_va): New.
12665 * tree.h: Declare it.
12666
66e6b990
MJ
126672013-05-09 Martin Jambor <mjambor@suse.cz>
12668
12669 PR lto/57084
12670 * gimple-fold.c (canonicalize_constructor_val): Call
12671 cgraph_get_create_real_symbol_node instead of cgraph_get_create_node.
12672
64cfa6c0
JH
126732013-05-09 Jan Hubicka <jh@suse.cz>
12674 Richard Biener <rguenther@suse.de>
12675
12676 PR lto/54095
12677 * symtab.c (symtab_make_decl_local): Do not add private names.
12678
c3167b00
JH
126792013-05-09 Jan Hubicka <jh@suse.cz>
12680
12681 PR lto/54095
12682 * symtab.c (insert_to_assembler_name_hash): Handle clones.
12683 (unlink_from_assembler_name_hash): Likewise.
12684 (symtab_prevail_in_asm_name_hash, symtab_register_node,
12685 symtab_unregister_node, symtab_initialize_asm_name_hash,
12686 change_decl_assembler_name): Update.
12687
12dc6974
SN
126882013-05-09 Sofiane Naci <sofiane.naci@arm.com>
12689
12690 * config/aarch64/aarch64.md: New movtf split.
12691 (*movtf_aarch64): Update.
12692 (aarch64_movdi_tilow): Handle TF modes and rename to
12693 aarch64_movdi_<mode>low.
12694 (aarch64_movdi_tihigh): Handle TF modes and rename to
12695 aarch64_movdi_<mode>high
12696 (aarch64_movtihigh_di): Handle TF modes and rename to
12697 aarch64_mov<mode>high_di
12698 (aarch64_movtilow_di): Handle TF modes and rename to
12699 aarch64_mov<mode>low_di
12700 (aarch64_movtilow_tilow): Remove spurious whitespace.
12701 * config/aarch64/aarch64.c (aarch64_split_128bit_move): Handle TFmode
12702 splits.
12703 (aarch64_print_operand): Update.
12704
227eb343
AM
127052013-05-09 Alan Modra <amodra@gmail.com>
12706
12707 * configure.ac (HAVE_AS_TLS): Enable tests for powerpcle and
12708 powerpc64le.
12709 * configure: Regenerate.
12710
0b013847
UB
127112013-05-08 Uros Bizjak <ubizjak@gmail.com>
12712
12713 * config/i386/mmx.md (*vec_extract* splitters): Simplify post-reload
12714 splitter preparation statements.
12715 * config/i386/sse.md (*vec_extract* splitters): Ditto.
12716 (*avx_vperm_broadcast_<mode>): Use adjust_address instead of
12717 adjust_address_nv.
12718
1dc3d6e9
BS
127192013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12720
12721 * gimple-ssa-strength-reduction.c (count_candidates): Change
12722 return value to int.
12723 (analyze_candidates_and_replace): Change type of length to int.
12724
e61e7d28
UB
127252013-05-08 Uros Bizjak <ubizjak@gmail.com>
12726
12727 * config/i386/sse.md (PEXTR_MODE, PEXTR_MODEx): Remove.
12728 (*vec_extract<mode>): Use VI12_128 mode iterator.
12729 (*vec_extract<mode>_mem): Ditto.
12730 (*vec_extract*_mem splitters): Merge splitters using VI_128 mode
12731 attribute.
12732
4fbfcf44
DN
127332013-05-08 Diego Novillo <dnovillo@google.com>
12734
12735 PR bootstrap/54659
12736
12737 Revert:
4fbfcf44
DN
12738 2012-08-17 Diego Novillo <dnovillo@google.com>
12739
e61e7d28
UB
12740 PR bootstrap/54281
12741 * configure.ac: Add libintl.h to AC_CHECK_HEADERS list.
12742 * config.in: Regenerate.
12743 * configure: Regenerate.
12744 * intl.h: Always include libintl.h if HAVE_LIBINTL_H is set.
4fbfcf44 12745
702d8703
JH
127462013-05-08 Jan Hubicka <jh@suse.cz>
12747
12748 PR lto/54095
12749 * cgraph.c (cgraph_make_node_local_1): Se unique_name.
12750 * cgraph.h (symtab_node_base): Add unique_name.
12751 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
12752 input_overwrite_node, input_varpool_node): Stream unique_name.
12753 * cgraphclones.c (cgraph_create_virtual_clone,
12754 cgraph_function_versioning): Set unique_name.
12755 * ipa.c (function_and_variable_visibility): Set unique_name.
12756
8b28cf47
BS
127572013-05-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12758
12759 * gimple-ssa-strength-reduction.c (find_phi_def): Revert former "fix."
12760 (alloc_cand_and_find_basis): Restrict conditional candidate
12761 processing to CAND_MULTs.
12762
e86074fd
JH
127632013-05-08 Jan Hubicka <jh@suse.cz>
12764
12765 PR lto/54095
12766 lto-symtab.c (lto_symtab_symbol_p): New function.
12767 (lto_symtab_resolve_can_prevail_p, lto_symtab_resolve_symbols,
12768 lto_symtab_resolve_symbols, lto_symtab_merge_decls_2,
12769 lto_symtab_merge_decls_1, lto_symtab_merge_cgraph_nodes_1):
12770 Skip static symbols.
12771
44398cbe
PC
127722013-05-08 Paolo Carlini <paolo.carlini@oracle.com>
12773
12774 PR tree-optimization/57200
12775 * tree-ssa-loop-niter.c (do_warn_aggressive_loop_optimizations):
12776 Only call inform if the preceding warning_at returns true.
12777
f6bc1c4a
HS
127782013-05-07 Han Shen <shenhan@google.com>
12779
12780 * cfgexpand.c (record_or_union_type_has_array_p): New function.
12781 (expand_used_vars): Add logic handling '-fstack-protector-strong'.
12782 * common.opt (fstack-protector-strong): New option.
12783 * doc/cpp.texi (__SSP_STRONG__): New builtin "__SSP_STRONG__".
12784 * doc/invoke.texi (Optimization Options): Document
12785 "-fstack-protector-strong".
12786 * gcc.c (LINK_SSP_SPEC): Add 'fstack-protector-strong'.
12787
4ffecb1f
SB
127882013-05-06 Steven Bosscher <steven@gcc.gnu.org>
12789
12790 * config/mips/mips.c (mips_machine_reorg2): Return 0.
12791
5a107a0f
VM
127922013-05-07 Vladimir Makarov <vmakarov@redhat.com>
12793
12794 * ira.c (update_equiv_regs): Add insn having equiv memory even if
12795 it is not lhs of the insn.
12796 (setup_reg_equiv): Remove insn having equiv memory which it is not
12797 lhs of the insn.
12798 * lra-constraints.c (process_address): Try to improve generation
12799 code for address base + disp.
12800 (lra_constraints): Make correct the code for checking insn setting
12801 up backward equivalence. Remove insn only if it is in the init
12802 insn list.
12803 * lra-eliminations.c (update_reg_eliminate): Change return value.
12804 (lra_eliminate): Use the result.
12805
3f5783ea
UB
128062013-05-07 Uros Bizjak <ubizjak@gmail.com>
12807
12808 * config/i386/sse.md (ssescalarnummask): New mode attribute.
12809 (PEXTR_MODE, PEXTR_MODEx): New mode iterators.
12810 (*vec_extract<mode>): Merge from *sse4_1_pextrb_memory and
12811 *sse4_1_pextrw_memory using PEXTR_MODE mode iterator. Handle
12812 register target operands.
12813 (*vec_extractv8hi_sse2): New pattern.
12814 (*vec_extractv16qi_zext): Rename from *sse4_1_pextrb_<mode>.
12815 (*vec_extractv8hi_zext): Rename from *sse2_pextrw_<mode>.
12816 (*vec_extract<mode>_mem): New insn and split pattern.
12817
8a5800b8
CL
128182013-05-07 Christophe Lyon <christophe.lyon@linaro.org>
12819
12820 * config/arm/arm.c (arm_asan_shadow_offset): New function.
12821 (TARGET_ASAN_SHADOW_OFFSET): Define.
12822 * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Define.
12823 (LINUX_OR_ANDROID_CC): Add ASAN_CC1_SPEC.
12824
7bf55a70
BS
128252013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12826
12827 * gimple-ssa-strength-reduction.c (MAX_INCR_VEC_LEN): New constant.
12828 (incr_vec_index): Return -1 if increment not found.
12829 (create_add_on_incoming_edge): Assert if increment not found.
12830 (record_increment): Limit number of increments recorded.
12831 (all_phi_incrs_profitable): Return false if an increment not found.
12832 (replace_profitable_candidates): Don't process increments that were
12833 not recorded.
12834 (analyze_candidates_and_replace): Limit size of incr_vec.
12835
3f8825c0
RB
128362013-05-07 Richard Biener <rguenther@suse.de>
12837
12838 * calls.c (special_function_p): setjmp-like functions are leaf.
12839 * builtins.def (BUILT_IN_SETJMP): setjmp is leaf.
12840 * tree-inline.c (update_ssa_across_abnormal_edges): Remove assert.
12841
fd4842cd
SN
128422013-05-07 Sofiane Naci <sofiane.naci@arm.com>
12843
12844 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): call splitter.
12845 (aarch64_simd_mov<mode>): New expander.
12846 (aarch64_simd_mov_to_<mode>low): New instruction pattern.
12847 (aarch64_simd_mov_to_<mode>high): Likewise.
12848 (aarch64_simd_mov_from_<mode>low): Likewise.
12849 (aarch64_simd_mov_from_<mode>high): Likewise.
12850 (aarch64_dup_lane<mode>): Update.
12851 (aarch64_dup_lanedi): New instruction pattern.
12852 * config/aarch64/aarch64-protos.h (aarch64_split_simd_move): New prototype.
12853 * config/aarch64/aarch64.c (aarch64_split_simd_move): New function.
12854
a7a7d10e
BS
128552013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12856
12857 * gimple-ssa-strength-reduction.c (lazy_create_slsr_reg): Remove.
12858 (replace_mult_candidate): Remove unnecessary argument; remove
12859 unnecessary parameter from call to introduce_cast_before_cand.
12860 (replace_unconditional_candidate): Remove unnecessary parameter
12861 from call to replace_mult_candidate.
12862 (replace_conditional_candidate): Likewise.
12863 (insert_initializers): Use make_temp_ssa_name.
12864 (introduce_cast_before_cand): Remove unnecessary argument; use
12865 make_temp_ssa_name.
12866 (replace_one_candidate): Remove unnecessary argument; remove
12867 unnecessary parameter from calls to introduce_cast_before_cand.
12868 (replace_profitable_candidates): Remove unnecessary parameters
12869 from calls to replace_one_candidate.
12870
29105868
BS
128712013-05-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12872
12873 * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
12874 phi def as possibly hiding a basis for a CAND_ADD whose operands
12875 have been commuted in the analysis.
12876 (alloc_cand_and_find_basis): Add parms to call to find_phi_def.
12877
4095f9fa
N
128782013-05-07 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
12879
12880 * config/aarch64/aarch64.md
12881 (cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Restrict the
12882 shift value between 0-4.
12883
39e843e8
RB
128842013-05-07 Richard Biener <rguenther@suse.de>
12885
12886 * double-int.h (rshift): New overload.
12887 * double-int.c (rshift): New function.
12888 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Optimize.
12889 (create_reference_ops_from_ref): Remove.
12890 (vn_reference_insert): Use shared ops for constructing the
12891 reference and copy it.
12892
0a1a83cb
RB
128932013-05-07 Richard Biener <rguenther@suse.de>
12894
12895 PR middle-end/57190
12896 * tree-eh.c (sink_clobbers): Properly propagate
12897 SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
12898
43303d6f
JJ
128992013-05-07 Jakub Jelinek <jakub@redhat.com>
12900
ba7e83f8
JJ
12901 PR tree-optimization/57149
12902 * tree-ssa-uninit.c (uninit_undefined_value_p): New inline.
12903 (can_skip_redundant_opnd, compute_uninit_opnds_pos,
12904 collect_phi_def_edges, execute_late_warn_uninitialized): Use
12905 uninit_undefined_value_p instead of ssa_undefined_value_p.
12906
43303d6f
JJ
12907 PR debug/57184
12908 * expr.c (expand_expr_addr_expr_1): Handle COMPOUND_LITERAL_EXPR
12909 for modifier == EXPAND_INITIALIZER.
12910
14523c25
AB
129112013-05-07 Anton Blanchard <anton@samba.org>
12912
12913 * configure.ac (HAVE_LD_LARGE_TOC): Use correct linker emulation
12914 for powerpc64 little endian.
12915 * configure: Regenerate.
12916
cb7c8be9
GS
129172013-05-06 Graham Stott <grahams@btinternet.com>
12918
12919 * expmed.c (init_expmed_rtl): Remove unused fields reg_fld, plus_fld,
12920 mult_fld, sdiv_fld1, udiv_fld1, sdiv_32_fld1, smod_32_fld1,
12921 wide_mult_fld1, wide_lshr_fld1, shift_fld1, shift_mult_fld1,
12922 shift_add_fld1, shift_sub0_fld1, shift_sub1_fld1.
12923
129242013-05-06 Graham Stott <grahams@btinternet.com>
a8fd4225
GS
12925
12926 * gensupport.c (add_predicate_code): Also exclude SCRATCH from rtx
12927 codes which allow non-lvalues.
12928
9a0ee7b0
MG
129292013-05-06 Marc Glisse <marc.glisse@inria.fr>
12930
12931 * tree.c (integer_all_onesp) <COMPLEX_CST>: Test that both
12932 components are all 1s.
12933 (integer_minus_onep): New function.
12934 * tree.h (integer_minus_onep): Declare it.
12935 * fold-const.c (fold_binary_loc) <MULT_EXPR>: Test
12936 integer_minus_onep instead of integer_all_onesp.
12937
f2c17ea9
OE
129382013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
12939
12940 PR target/52933
12941 * config/sh/sh.md (*cmp_div0s_0, *cmp_div0s_1, *movsicc_div0s): Add
12942 variations of these patterns.
12943
f75e6a51
UB
129442013-05-06 Uros Bizjak <ubizjak@gmail.com>
12945
12946 * config/i386/i386.md (isa): Add x64_sse4 member.
12947 (enabled): Handle x64_sse4.
12948 (*movdi_internal): Add *x->?r alternative to emit pextrq $0,%xmm,%reg
12949 instruction for 64bit SSE4_1 targets. Update insn attributes.
12950 (*movsi_internal): Add *x->?r alternative to emit pextrd $0,%xmm,%reg
12951 instruction for SSE4_1 targets. Update insn attributes.
12952 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
12953 with *sse4_1_pextrd and *sse4_1_pextrq having const_0 selector.
12954 (*vec_extractv2di_1): Merge with *sse4_1_pextrq having
12955 const_1 selector.
12956 (*vec_extractv4si): Rename from *sse4_1_pextrd.
12957 (*vec_extractv4si_zext): Rename from *sse4_1_pextrd_zext.
12958 (*vec_extract<ssevecmodelower>_0 splitters): Merge splitters together.
12959
a986d468
OE
129602013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
12961
12962 PR target/57108
12963 * config/sh/sh.md (tstsi_t_zero_extract_eq): Use QIHISIDI mode iterator.
12964
382522cb
MK
129652013-05-06 Maxim Kuznetsov <maks.kuznetsov@gmail.com>
12966
12967 * final.c (do_assembler_dialects): Don't handle curly braces and
12968 vertical bar escaped by % as dialect delimiters.
12969 (output_asm_insn): Print curly braces and vertical bar if escaped
12970 by % and ASSEMBLER_DIALECT defined.
12971 * doc/tm.texi.in (ASSEMBLER_DIALECT): Document new standard escapes.
12972 * doc/tm.texi: Regenerated.
12973
fb0d5c60
SB
129742013-05-06 Steven Bosscher <steven@gcc.gnu.org>
12975
fb0d5c60
SB
12976 * config/mips/mips.c: Include tree-pass.h.
12977 (mips_reorg): Split in pre- and post-dbr_schedule parts.
12978 (mips_machine_reorg2): Move mips_reorg post-dbr_schedule parts here.
12979 (pass_mips_machine_reorg2): New machine specific pass.
12980 (insert_pass_mips_machine_reorg2): New pass plugin definition.
12981 (mips_option_override): Register the new pass.
12982 * rtl.h (cleanup_barriers): Remove prototype.
12983 (dbr_schedule): Likewise.
12984 * jump.c (cleanup_barriers): Make static.
12985 * reorg.c (dbr_schedule): Likewise.
12986
aa06a978
RB
129872013-05-06 Richard Biener <rguenther@suse.de>
12988
12989 PR tree-optimization/57185
12990 * tree-parloops.c (add_field_for_reduction): Handle anonymous
12991 SSA names properly.
12992
0b953bec
UB
129932013-05-06 Uros Bizjak <ubizjak@gmail.com>
12994
12995 PR target/57106
12996 * config/i386/i386.c (add_parameter_dependencies): Add dependence
12997 between "first_arg" and "insn", not "last" and "insn".
12998
28708525
WS
129992013-05-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13000
13001 * gimple-ssa-strength-reduction.c (slsr_process_phi): Re-enable.
13002 (find_candidates_in_block): Re-enable slsr_process_phi.
13003 (create_phi_basis): Fix double counting of candidate adjustment.
13004
0107dca2
RB
130052013-05-06 Richard Biener <rguenther@suse.de>
13006
13007 PR middle-end/57147
13008 * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): If
13009 the edge is also fallthru, preserve it and just clear the
13010 abnormal flag.
13011 * tree-cfgcleanup.c (remove_fallthru_edge): If the edge is
13012 also complex, preserve that and just clear the fallthru flag.
13013 * tree-inline.c (update_ssa_across_abnormal_edges): Also
13014 update virtual operands.
13015
470d4d13
AM
130162013-05-06 Alan Modra <amodra@gmail.com>
13017
13018 * config/rs6000/linux.h (DEFAULT_ASM_ENDIAN): Define.
13019 (LINK_OS_LINUX_EMUL): Use ENDIAN_SELECT.
13020 * config/rs6000/linux64.h (DEFAULT_ASM_ENDIAN): Define.
13021 * config/rs6000/sysv4le.h (DEFAULT_ASM_ENDIAN): Define.
13022 (LINK_TARGET_SPEC): Use ENDIAN_SELECT.
13023 * config/rs6000/sysv4.h (DEFAULT_ASM_ENDIAN): Define as -mbig.
13024
8f1dbf8d
AM
130252013-05-06 Alan Modra <amodra@gmail.com>
13026
13027 * config/rs6000/sysv4.h (ENDIAN_SELECT): Define, extracted from
13028 (ASM_SPEC): ..here. Emit DEFAULT_ASM_ENDIAN too.
13029 (DEFAULT_ASM_ENDIAN): Define.
13030 (CC1_SPEC, LINK_TARGET_SPEC): Use ENDIAN_SELECT.
13031 * config/rs6000/linux64.h (ASM_SPEC32): Remove endian options.
13032 Update -K PIC clause from sysv4.h.
13033 (ASM_SPEC_COMMON): Use ENDIAN_SELECT.
13034 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Likewise.
13035
54890767
AM
130362013-05-06 Alan Modra <amodra@gmail.com>
13037
13038 * config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words
13039 twice for little-endian.
13040 (ashrdi3_no_power, ashrdi3): Support little-endian.
13041
2353515d
OE
130422013-05-06 Oleg Endo <olegendo@gcc.gnu.org>
13043
13044 PR target/55303
13045 * config/sh/sh.c (sh_rtx_costs): Handle SMIN and SMAX cases.
13046 * config/sh/sh.md (*clips, uminsi3, *clipu, clipu_one): New insns and
13047 related expanders.
13048 * config/sh/iterators.md (SMIN_SMAX): New code iterator.
13049 * config/sh/predicates.md (arith_reg_or_0_or_1_operand,
13050 clips_min_const_int, clips_max_const_int, clipu_max_const_int):
13051 New predicates.
13052
33e67557
SB
130532013-05-05 Steven Bosscher <steven@gcc.gnu.org>
13054 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
13055
13056 * config.gcc (hppa*-*-*): Remove MASK_BIG_SWITCH from CPU default.
13057 * config/pa/pa.opt: Make mbig-switch a no-op.
13058 * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_BIG_SWITCH.
13059 (CASE_VECTOR_MODE): Always return SImode.
13060 (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove code
13061 for the !TARGET_BIG_SWITCH case.
13062 * config/pa/pa-linux.h: Likewise.
13063 * config/pa/pa-openbsd.h: Likewise.
13064 * config/pa/pa-hpux.h: Define TARGET_DEFAULT to 0.
13065 * config/pa/pa.md (short_jump): Remove define_insn.
13066 (casesi): Remove code for the !TARGET_BIG_SWITCH case.
13067 (casesi0): Remove define_insn.
13068 (type): Remove btable_branch.
13069 (pa_combine_type): Likewise.
13070 (in_nullified_branch_delay): Likewise.
13071 (in_call_delay): Likewise.
13072 (define_delay): Likewise.
13073 (define_insn_reservation "Z3"): Likewise.
13074 (define_insn_reservation "Z4"): Likewise.
13075 * config/pa/pa.c (pa_reorg): Remove code for !TARGET_BIG_SWITCH.
13076 (pa_adjust_insn_length): Remove adjustment for btable branches.
13077 * doc/invoke.texi (HPPA Options): Delete documentation for mbig-switch
13078 and mno-big-switch
13079
3095685e
UB
130802013-05-05 Uros Bizjak <ubizjak@gmail.com>
13081
13082 * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge
13083 from sse2_stored and *sse2_storeq_rex64 using SWI48 mode iterator.
13084 Add m->r,x alternatives.
13085 (*vec_extract<ssevecmodelower>_0 splitters): Merge V2DI and V4SI
13086 splitters using SWI48x mode iterator.
13087 (*vec_extract_v2di_0_sse): Rename from *sse2_storeq. Disable for
13088 TARGET_64BIT. Add m->x alternative.
13089 (*vec_extractv4si_mem): Rename from *vec_ext_v4si_mem.
13090 Add o->x alternative. Enable for TARGET_SSE.
13091 (sse_storeq): Remove expander.
13092 (*vec_extractv2di_1): Enable for TARGET_SSE. Split alternatives
13093 with memory input operand.
13094 (*vec_extractv2di_1 splitter): New.
13095 (*vec_extractv4sf_mem): Rename from *vec_extract_v4sf_mem.
13096 * config/i386/i386.md (ssevecmodelower): New mode attribute.
13097
4b36ae28
SB
130982013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
13099
13100 * config/rs6000/rs6000.c (INT_P): Reformat. Delete obsolete comment.
13101 (INT_LOWPART): Delete.
13102 (extract_MB): Adjust.
13103 (extract_ME): Adjust.
13104 (print_operand): Adjust.
13105
da226db2
SB
131062013-05-04 Segher Boessenkool <segher@kernel.crashing.org>
13107
13108 * config/rs6000/predicates.md (reg_or_add_cint_operand,
13109 reg_or_sub_cint_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
13110 (reg_or_logical_cint_operand, easy_fp_constant,
13111 logical_const_operand): Delete "CONST_DOUBLE" case.
13112 * config/rs6000/rs6000.c (num_insns_constant_wide): Delete
13113 "HOST_BITS_PER_WIDE_INT == 64" test.
3095685e 13114 (num_insns_constant): Ditto. Delete CONST_DOUBLE DImode/VOIDmode case.
da226db2
SB
13115 (build_mask64_2_operands): Delete "HOST_BITS_PER_WIDE_INT >= 64" test.
13116 (rs6000_emit_set_const): Delete CONST_DOUBLE case.
13117 (rs6000_emit_set_long_const): Delete "HOST_BITS_PER_WIDE_INT >= 64"
13118 test.
13119 (includes_rldic_lshift_p, includes_rldicr_lshift_p): Delete
13120 CONST_DOUBLE DImode/VOIDmode case.
13121 (INT_P, INT_LOWPART): Delete CONST_DOUBLE case.
13122 (print_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case. Delete
13123 CONST_DOUBLE VOIDmode case.
13124 (output_toc): Delete "HOST_BITS_PER_WIDE_INT == 32" case.
13125 (rs6000_rtx_costs): Delete CONST_DOUBLE DImode/VOIDmode case.
13126 * config/rs6000/rs6000.md (iordi3, xordi3, splitter for these):
13127 Delete CONST_DOUBLE case.
13128 (splitters for mov FMOVE64 const_double): Delete
13129 "HOST_BITS_PER_WIDE_INT == 32" case. Delete
13130 "HOST_BITS_PER_WIDE_INT >= 64" test.
13131 (splitter for mov DI const_int): Delete "HOST_BITS_PER_WIDE_INT == 32"
13132 case.
13133 (mov DI const_double): Delete.
13134
40de22d6
JJ
131352013-05-04 Jakub Jelinek <jakub@redhat.com>
13136
13137 * combine.c (combine_simplify_rtx) <case SUBREG>: If nonzero_bits
13138 on op shows all bits zero in mode of a lowpart subreg, return zero.
13139
5ec6aff2
MM
131402013-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
13141
13142 PR target/57150
13143 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode
13144 to save TFmode registers and DImode to save TImode registers for
13145 caller save operations.
13146 (HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to
13147 mark being partially clobbered since they only use the first
13148 double word.
13149
13150 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode
13151 and TDmode only use the upper 64-bits of each VSX register.
13152
2cefad90
BS
131532013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13154
13155 * gimple-ssa-strength-reduction.c (slsr_process_phi): Disable.
13156 (find_candidates_in_block): Disable slsr_process_phi.
13157
d6d7eee1
GW
131582013-05-03 Guozhi Wei <carrot@google.com>
13159
13160 * coverage.c (coverage_obj_init): Move the construction of gcov
3095685e
UB
13161 constructor to ...
13162 (build_init_ctor): ... here.
d6d7eee1 13163
9b92d12b
BS
131642013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13165
13166 * gimple-ssa-strength-reduction.c (cand_kind): Add CAND_PHI.
13167 (slsr_cand_d): Redefine def_phi.
13168 (stride_status, phi_adjust_status, count_phis_status): New enums.
13169 (find_phi_def): New.
13170 (find_basis_for_base_expr): New.
13171 (find_basis_for_candidate): Handle hidden bases.
13172 (alloc_cand_and_find_basis): Handle phi candidates.
13173 (slsr_process_phi): New.
13174 (create_mul_ssa_cand): Exclude phi base candidates; use integer_onep.
13175 (create_mul_imm_cand): Likewise.
13176 (create_add_ssa_cand): Exclude phi base candidates.
13177 (create_add_imm_cand): Likewise.
13178 (slsr_process_cast): Likewise.
13179 (slsr_process_copy): Likewise.
13180 (find_candidates_in_block): Handle phi candidates.
13181 (dump_candidate): Likewise.
13182 (unconditional_cands): Delete.
13183 (unconditional_cands_with_known_stride_p): Delete.
13184 (phi_dependent_cand_p): New.
13185 (cand_increment): Handle phi-dependent candidates.
13186 (replace_dependent): Delete.
13187 (replace_mult_candidate): New.
13188 (replace_unconditional_candidate): New.
13189 (incr_vec_index): Move to avoid forward reference.
13190 (create_add_on_incoming_edge): New.
13191 (create_phi_basis): New.
13192 (replace_dependents): Delete.
13193 (replace_conditional_candidate): New.
13194 (phi_add_costs): New.
13195 (replace_uncond_cands_and_profitable_phis): New.
13196 (record_increment): Handle phi adjustments.
13197 (record_phi_increments): New.
13198 (record_increments): Handle phi adjustments.
13199 (phi_incr_cost): New.
13200 (lowest_cost_path): Handle phis.
13201 (total_savings): Likewise.
13202 (analyze_increments): Likewise.
13203 (ncd_with_phi): New.
13204 (ncd_of_cand_and_phis): New.
13205 (nearest_common_dominator_for_cands): Handle phi increments.
13206 (all_phi_incrs_profitable): New.
13207 (replace_profitable_candidates): Handle phi-dependent candidates.
13208 (analyze_candidates_and_replace): Likewise.
13209
68f073d4
TJ
132102013-05-03 Teresa Johnson <tejohnson@google.com>
13211
13212 PR bootstrap/57154
13213 * sched-rgn.c (compute_dom_prob_ps): Ensure accumulated probabilities
13214 do not exceed REG_BR_PROB_BASE.
13215
a4ee7cb9
JL
132162013-05-03 Jeff Law <law@redhat.com>
13217
ade67f70 13218 PR tree-optimization/57144
a4ee7cb9
JL
13219 * tree-vrp.c (simplify_cond_using_ranges): Verify the constant
13220 operand of the condition will bit into the new type when eliminating
13221 a cast feeding a condition.
13222
47954c4e
JJ
132232013-05-03 Jakub Jelinek <jakub@redhat.com>
13224
13225 PR rtl-optimization/57130
3095685e
UB
13226 * combine.c (make_compound_operation) <case SUBREG>: Pass SET instead
13227 of COMPARE as in_code to the recursive call if needed.
47954c4e 13228
3c21604f
UB
132292013-05-03 Uros Bizjak <ubizjak@gmail.com>
13230
13231 * config/i386/i386.md (isa): Add x64_sse4_noavx and x64_avx members.
13232 (enabled): Handle new members.
13233 * config/i386/sse.md (*vec_concatv2si): Merge from
13234 *vec_concatv2si_sse2 and vec_concatv2si_sse.
13235 (vec_concatv2di): Merge with *vec_concatv2di_rex64.
13236
12211b99 132372013-05-03 Joern Rennecke <joern.rennecke@embecosm.com>
95c03b36
JR
13238
13239 PR tree-optimization/57027
13240 * tree-ssa-math-opts.c (convert_mult_to_fma): When checking
13241 for fnms opportunity, check we got the prerequisite kind
13242 of tree / gimple before using accessor functions.
13243
07bfc9ec
RB
132442013-05-03 Richard Biener <rguenther@suse.de>
13245
13246 * double-int.h (lshift): New overload without precision
13247 and arith argument.
13248 (operator *=, operator +=, operator -=): Move ...
13249 * double-int.c (operator *=, operator +=, operator -=): ... here
13250 and implement more efficiently.
13251 (mul_double_with_sign): Remove.
13252 (lshift_double): Adjust to take unsinged shift argument, push
13253 dispatching code to callers.
13254 (mul_double_wide_with_sign): Add early out for callers that
13255 are not interested in high parts or overflow.
13256 (lshift): New function.
13257 (lshift, rshift, alshift, arshift, llshift, lrshift): Add
13258 dispatch code here.
13259 (lrotate, rrotate): Use logical shifts.
13260 * expr.c (get_inner_reference): Use lshift.
13261 * fixed-value.c (do_fixed_divide): Likewise.
13262 * tree-dfa.c (get_ref_base_and_extent): Likewise.
13263 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
13264 (indirect_refs_may_alias_p): Likewise.
13265 (stmt_kills_ref_p_1): Likewise.
13266
7769bb64
VP
132672013-05-03 Vidya Praveen <vidyapraveen@arm.com>
13268
13269 * config/aarch64/aarch64-simd.md (simd_fabd): Correct the description.
13270
1d0c8e5c
VP
132712013-05-03 Vidya Praveen <vidyapraveen@arm.com>
13272
13273 * config/aarch64/aarch64-simd.md (*fabd_scalar<mode>3): Support
13274 scalar form of FABD instruction.
13275
f15feaf9
VM
132762013-05-02 Vladimir Makarov <vmakarov@redhat.com>
13277
13278 * lra-constraints.c (process_alt_operands): Add checking alt
13279 number to choose the best alternative.
13280
d90e76d4
RB
132812013-05-02 Richard Biener <rguenther@suse.de>
13282
13283 * tree-eh.c (cleanup_empty_eh_merge_phis): Remove rename_virts
13284 bitmap and its handling.
13285 (pass_cleanup_eh): Set todo_flags_finish to TODO_verify_ssa.
13286
9f8e7a96
RB
132872013-05-02 Richard Biener <rguenther@suse.de>
13288
13289 PR middle-end/57140
13290 * tree-inline.c (copy_loops): Properly handle removed loops.
13291 (copy_cfg_body): Mark destination loops for fixup if source
13292 loops needed fixup.
13293
f3a81b39
GY
132942013-05-02 Greta Yorsh <Greta.Yorsh@arm.com>
13295
13296 PR target/56732
13297 * config/arm/arm.c (arm_expand_epilogue): Check really_return before
13298 generating simple_return for naked functions.
13299
7b920a9a
MJ
133002013-05-02 Martin Jambor <mjambor@suse.cz>
13301
13302 PR middle-end/56988
13303 * ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
13304 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also check that by_ref
13305 flags match.
13306 (find_aggregate_values_for_callers_subset): Fill in the by_ref flag of
13307 ipa_agg_replacement_value structures.
13308 (known_aggs_to_agg_replacement_list): Likewise.
13309 * ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
13310 (read_agg_replacement_chain): Likewise.
13311 (ipcp_transform_function): Also check that by_ref flags match.
13312
2c41c19d
RB
133132013-05-02 Richard Biener <rguenther@suse.de>
13314
13315 * graphds.h (struct graph): Add obstack member.
13316 * graphds.c (new_graph): Initialize obstack and allocate
13317 vertices from it.
13318 (add_edge): Allocate edge from the obstack.
3c21604f 13319 (free_graph): Free the obstack instead of all edges and vertices.
2c41c19d 13320
8b47039c
TJ
133212013-05-02 Teresa Johnson <tejohnson@google.com>
13322
13323 * loop-unswitch.c (unswitch_loop): Use helper routines with rounding
13324 divides.
13325 * cfg.c (update_bb_profile_for_threading): Ditto.
13326 * tree-inline.c (copy_bb): Ditto.
13327 (copy_edges_for_bb): Ditto.
13328 (initialize_cfun): Ditto.
13329 (copy_cfg_body): Ditto.
13330 (expand_call_inline): Ditto.
13331 * ipa-inline-analysis.c (estimate_edge_size_and_time): Ditto.
13332 (estimate_node_size_and_time): Ditto.
13333 (inline_merge_summary): Ditto.
13334 * cgraphclones.c (cgraph_clone_edge): Ditto.
13335 (cgraph_clone_node): Ditto.
13336 * sched-rgn.c (compute_dom_prob_ps): Ditto.
13337 (compute_trg_info): Ditto.
13338
da65928c
IB
133392013-05-02 Ian Bolton <ian.bolton@arm.com>
13340
13341 * config/aarch64/aarch64.md (movsi_aarch64): Only allow to/from
13342 S reg when fp attribute set.
13343 (movdi_aarch64): Only allow to/from D reg when fp attribute set.
13344
add3c965
IB
133452013-05-02 Ian Bolton <ian.bolton@arm.com>
13346
13347 * config/aarch64/aarch64.md (*and_one_cmpl<mode>3_compare0):
13348 New pattern.
13349 (*and_one_cmplsi3_compare0_uxtw): Likewise.
13350 (*and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
13351 (*and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
13352
fdd43ac4
RB
133532013-05-02 Richard Biener <rguenther@suse.de>
13354
13355 * tree-scalar-evolution.c (scev_info_hasher): Remove.
13356 (struct instantiate_cache_entry): New type.
13357 (struct instantiate_cache_entry_hasher): New hashtable descriptor.
13358 (struct instantiate_cache_type): New type.
13359 (set_instantiated_value, get_instantiated_value): Remove.
13360 (get_instantiated_value_entry): New function.
13361 (instantiate_scev_name): Use the new cache and adjust.
13362 (instantiate_scev_poly): Adjust.
13363 (instantiate_scev_binary): Likewise.
13364 (instantiate_array_ref): Likewise.
13365 (instantiate_scev_convert): Likewise.
13366 (instantiate_scev_not): Likewise.
13367 (instantiate_scev_3): Likewise.
13368 (instantiate_scev_2): Likewise.
13369 (instantiate_scev_r): Likewise.
13370 (instantiate_scev): Likewise.
13371 (resolve_mixers): Likewise.
13372
36ff9dfb
VM
133732013-05-01 Vladimir Makarov <vmakarov@redhat.com>
13374
13375 PR target/57091
13376 * lra-constraints.c (best_small_class_operands_num): Remove.
13377 (process_alt_operands): Remove small_class_operands_num. Take
13378 small classes operands into losers and only if the operand is not
13379 matched. Modify debugging output.
13380 (curr_insn_transform): Remove best_small_class_operands_num.
13381 Print insn name.
13382
36054fab
JG
133832013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
13384
13385 * config/aarch64/aarch64-builtins.c
13386 (aarch64_gimple_fold_builtin.c): Fold more modes for reduc_splus_.
13387 * config/aarch64/aarch64-simd-builtins.def
13388 (reduc_splus_): Add new modes.
13389 (reduc_uplus_): New.
13390 * config/aarch64/aarch64-simd.md (aarch64_addvv4sf): Remove.
13391 (reduc_uplus_v4sf): Likewise.
13392 (reduc_splus_v4sf): Likewise.
13393 (aarch64_addv<mode>): Likewise.
13394 (reduc_uplus_<mode>): Likewise.
13395 (reduc_splus_<mode>): Likewise.
13396 (aarch64_addvv2di): Likewise.
13397 (reduc_uplus_v2di): Likewise.
13398 (reduc_splus_v2di): Likewise.
13399 (aarch64_addvv2si): Likewise.
13400 (reduc_uplus_v2si): Likewise.
13401 (reduc_splus_v2si): Likewise.
13402 (reduc_<sur>plus_<mode>): New.
13403 (reduc_<sur>plus_v2di): Likewise.
13404 (reduc_<sur>plus_v2si): Likewise.
13405 (reduc_<sur>plus_v4sf): Likewise.
13406 (aarch64_addpv4sf): Likewise.
13407 * config/aarch64/arm_neon.h
13408 (vaddv<q>_<s,u,f><8, 16, 32, 64): Rewrite using builtins.
13409 * config/aarch64/iterators.md (unspec): Remove UNSPEC_ADDV,
13410 add UNSPEC_SADDV, UNSPEC_UADDV.
13411 (SUADDV): New.
13412 (sur): Add UNSPEC_SADDV, UNSPEC_UADDV.
13413
6dce23a8
JG
134142013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
13415
13416 * config/aarch64/arm_neon.h
13417 (v<max,min><nm><q><v>_<sfu><8, 16, 32, 64>): Rewrite using builtins.
13418
1598945b
JG
134192013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
13420
13421 * config/aarch64/aarch64-builtins
13422 (aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.
13423
998eaf97
JG
134242013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
13425
13426 * config/aarch64/aarch64-simd-builtins.def
13427 (reduc_smax_): New.
13428 (reduc_smin_): Likewise.
13429 (reduc_umax_): Likewise.
13430 (reduc_umin_): Likewise.
13431 (reduc_smax_nan_): Likewise.
13432 (reduc_smin_nan_): Likewise.
13433 (fmax): Remove.
13434 (fmin): Likewise.
13435 (smax): Update for V2SF, V4SF and V2DF modes.
13436 (smin): Likewise.
13437 (smax_nan): New.
13438 (smin_nan): Likewise.
13439 * config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to...
13440 (<su><maxmin><mode>3): ...This, refactor.
13441 (s<maxmin><mode>3): New.
13442 (<maxmin_uns><mode>3): Likewise.
13443 (reduc_<maxmin_uns>_<mode>): Refactor.
13444 (reduc_<maxmin_uns>_v4sf): Likewise.
13445 (reduc_<maxmin_uns>_v2si): Likewise.
13446 (aarch64_<fmaxmin><mode>: Remove.
13447 * config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use
13448 new builtin names.
13449 (vmin<q>_f<32,64>): Likewise.
13450 * config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
13451 (FMAXMIN): New.
13452 (su): Add mappings for smax, smin, umax, umin.
13453 (maxmin): New.
13454 (FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
13455 (FMAXMIN): Rename as...
13456 (FMAXMIN_UNS): ...This.
13457 (maxminv): Remove.
13458 (fmaxminv): Likewise.
13459 (fmaxmin): Likewise.
13460 (maxmin_uns): New.
13461 (maxmin_uns_op): Likewise.
13462
bd11644e
JG
134632013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
13464
13465 * config/aarch64/arm_neon.h
13466 (vac<ge, gt><sd>_f<32, 64>): Rename to...
13467 (vca<ge, gt><sd>_f<32, 64>): ...this, reimpliment in C.
13468 (vca<ge, gt, lt, le><q>_f<32, 64>): Reimpliment in C.
13469
75dd5ace
JG
134702013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
13471
13472 * config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New.
13473 * config/aarch64/iterators.md (FAC_COMPARISONS): New.
13474
7c19979f
JG
134752013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
13476
13477 * config/aarch64/aarch64-simd.md
13478 (vcond<mode>_internal): Handle special cases for constant masks.
13479 (vcond<mode><mode>): Allow nonmemory_operands for outcome vectors.
13480 (vcondu<mode><mode>): Likewise.
13481 (vcond<v_cmp_result><mode>): New.
13482
bb60efd9
JG
134832013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
13484
13485 * config/aarch64/aarch64-builtins.c (BUILTIN_VALLDI): Define.
13486 (aarch64_fold_builtin): Add folding for cm<eq,ge,gt,tst>.
13487 * config/aarch64/aarch64-simd-builtins.def
13488 (cmeq): Update to BUILTIN_VALLDI.
13489 (cmgt): Likewise.
13490 (cmge): Likewise.
13491 (cmle): Likewise.
13492 (cmlt): Likewise.
13493 * config/aarch64/arm_neon.h
13494 (vc<eq, lt, le, gt, ge, tst><z><qsd>_<fpsu><8,16,32,64>): Remap
13495 to builtins or C as appropriate.
13496
889b9412
JG
134972013-05-01 James Greenhalgh <james.greenhalgh@arm.com>
13498
13499 * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
13500 (cmgeu): ...This.
13501 (cmhi): Rename to...
13502 (cmgtu): ...This.
13503 * config/aarch64/aarch64-simd.md
13504 (simd_mode): Add SF.
13505 (aarch64_vcond_internal): Use new names for unsigned comparison insns.
13506 (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
13507 * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
13508 (cstore<mode>_neg): ...This.
13509 * config/aarch64/iterators.md
13510 (VALLF): new.
13511 (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
13512 (COMPARISONS): New.
13513 (UCOMPARISONS): Likewise.
13514 (optab): Add missing comparisons.
13515 (n_optab): New.
13516 (cmp_1): Likewise.
13517 (cmp_2): Likewise.
13518 (CMP): Likewise.
13519 (cmp): Remove.
13520 (VCMP_S): Likewise.
13521 (VCMP_U): Likewise.
13522 (V_cmp_result): Add DF, SF modes.
13523 (v_cmp_result): Likewise.
13524 (v): Likewise.
13525 (vmtype): Likewise.
13526 * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
13527
0a7dbb76
GY
135282013-05-01 Greta Yorsh <Greta.Yorsh@arm.com>
13529
13530 * config/arm/thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert
13531 define_insn to define_insn_and_split.
13532 (thumb32_umaxsi3,thumb2_uminsi3): Likewise.
13533 (thumb2_negdi2,thumb2_abssi2,thumb2_neg_abssi2): Likewise.
13534 (thumb2_mov_scc,thumb2_mov_negscc,thumb2_mov_notscc): Likewise.
13535 (thumb2_movsicc_insn,thumb2_and_scc,thumb2_ior_scc): Likewise.
13536 (thumb2_negscc): Likewise.
13537
fb614ca6
GY
135382013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
13539
13540 * config/arm/thumb2.md (thumb2_incscc, thumb2_decscc): Delete.
13541
9e64a0bf
GY
135422013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
13543
13544 * config/arm/thumb2.md: Remove trailing whitespaces.
13545
d6b28156
RS
135462013-04-30 Richard Sandiford <rsandifo@linux.vnet.ibm.com>
13547
13548 * explow.c (plus_constant): Pass "mode" to immed_double_int_const.
13549 Use gen_int_mode rather than GEN_INT.
13550
f91674c3
L
135512013-04-30 H.J. Lu <hongjiu.lu@intel.com>
13552
b0dec607 13553 * value-prof.c (stream_in_histogram_value): Remove the strayed
f91674c3
L
13554 debug_gimple_stmt.
13555
3551257c
RB
135562013-04-30 Richard Biener <rguenther@suse.de>
13557
13558 PR middle-end/57122
3c21604f 13559 * cfghooks.c (split_edge): Properly check for the loop latch edge.
3551257c 13560
4c1aff1c
RB
135612013-04-30 Richard Biener <rguenther@suse.de>
13562
13563 PR middle-end/57107
13564 * tree-eh.c (sink_clobbers): Preserve virtual SSA form.
13565
54b8379a
AB
135662013-04-30 Andrey Belevantsev <abel@ispras.ru>
13567
13568 PR rtl-optimization/56957
13569 PR rtl-optimization/57105
54b8379a
AB
13570 * sel-sched.c (move_op_orig_expr_found): Remove insn_emitted
13571 variable. Use just INSN_UID for determining whether an insn
13572 should be only disconnected from the insn stream.
13573 * sel-sched-ir.h (EXPR_WAS_CHANGED): Remove.
13574
abc27962
JJ
135752013-04-30 Jakub Jelinek <jakub@redhat.com>
13576
13577 PR tree-optimization/57104
13578 * tsan.c (instrument_expr): Don't instrument accesses to
13579 DECL_HARD_REGISTER VAR_DECLs.
13580
0fc822d0
RB
135812013-04-30 Richard Biener <rguenther@suse.de>
13582
13583 * function.h (loops_for_fn): New inline function.
13584 (set_loops_for_fn): Likewise.
13585 * cfgloop.h (place_new_loop): Add struct function parameter.
13586 (get_loop): Likewise.
13587 (get_loops): Likewise.
13588 (number_of_loops): Likewise.
13589 (fel_next): Adjust.
13590 (fel_init): Likewise.
13591 * cfg.c (get_loop_copy): Adjust.
13592 * cfgloop.c (flow_loops_dump): Likewise.
13593 (record_loop_exits): Likewise.
13594 (verify_loop_structure): Likewise.
13595 * cfgloopanal.c (mark_irreducible_loops): Likewise.
13596 (estimate_reg_pressure_cost): Likewise.
13597 (mark_loop_exit_edges): Likewise.
13598 * cfgloopmanip.c (place_new_loop): Likewise.
13599 (add_loop): Likewise.
13600 (duplicate_loop): Likewise.
13601 * graph.c (draw_cfg_nodes): Likewise.
13602 * graphite-clast-to-gimple.c (translate_clast_user): Likewise.
13603 * graphite-sese-to-poly.c (build_scop_scattering): Likewise.
13604 (extract_affine_chrec): Likewise.
13605 (build_scop_iteration_domain): Likewise.
13606 * graphite.c (graphite_initialize): Likewise.
13607 * ira-build.c (create_loop_tree_nodes): Likewise.
13608 (more_one_region_p): Likewise.
13609 (rebuild_regno_allocno_maps): Likewise.
13610 (mark_loops_for_removal): Likewise.
13611 (mark_all_loops_for_removal): Likewise.
13612 (remove_unnecessary_regions): Likewise.
13613 (ira_build): Likewise.
13614 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
13615 * loop-init.c (fix_loop_structure): Likewise.
13616 (gate_rtl_move_loop_invariants): Likewise.
13617 (gate_rtl_unswitch): Likewise.
13618 (gate_rtl_unroll_and_peel_loops): Likewise.
13619 (rtl_doloop): Likewise.
13620 * lto-streamer-in.c (input_cfg): Likewise.
13621 * lto-streamer-out.c (output_cfg): Likewise.
13622 * modulo-sched.c (sms_schedule): Likewise.
13623 * predict.c (tree_estimate_probability): Likewise.
13624 (tree_estimate_probability_driver): Likewise.
13625 (estimate_loops): Likewise.
13626 * tree-cfg.c (fixup_loop_arrays_after_move): Likewise.
13627 (move_sese_region_to_fn): Likewise.
13628 (debug_loop_num): Likewise.
13629 * tree-chrec.c (chrec_evaluate): Likewise.
13630 (hide_evolution_in_other_loops_than_loop): Likewise.
13631 (chrec_component_in_loop_num): Likewise.
13632 (reset_evolution_in_loop): Likewise.
13633 (evolution_function_is_invariant_rec_p): Likewise.
13634 * tree-if-conv.c (main_tree_if_conversion): Likewise.
13635 * tree-inline.c (copy_loops): Likewise.
13636 (copy_cfg_body): Likewise.
13637 (tree_function_versioning): Likewise.
13638 * tree-loop-distribution.c (rdg_flag_loop_exits): Likewise.
13639 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
13640 Likewise.
13641 (add_to_evolution_1): Likewise.
13642 (scev_const_prop): Likewise.
13643 * tree-scalar-evolution.h (get_chrec_loop): Likewise.
13644 * tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
13645 * tree-ssa-loop-im.c (analyze_memory_references): Likewise.
13646 (tree_ssa_lim_initialize): Likewise.
13647 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Likewise.
13648 (verify_loop_closed_ssa): Likewise.
13649 * tree-ssa-loop.c (tree_ssa_loop_init): Likewise.
13650 (tree_ssa_loop_im): Likewise.
13651 (tree_ssa_loop_unswitch): Likewise.
13652 (tree_vectorize): Likewise.
13653 (check_data_deps): Likewise.
13654 (tree_ssa_loop_ivcanon): Likewise.
13655 (tree_ssa_loop_bounds): Likewise.
13656 (tree_complete_unroll): Likewise.
13657 (tree_complete_unroll_inner): Likewise.
13658 (tree_parallelize_loops): Likewise.
13659 (tree_ssa_loop_prefetch): Likewise.
13660 (tree_ssa_loop_ivopts): Likewise.
13661 * tree-ssa.c (execute_update_addresses_taken): Liekwise.
13662 * tree-vectorizer.c (vectorize_loops): Likewise.
13663
37953bd3
MF
136642013-04-29 Mike Frysinger <vapier@gentoo.org>
13665
13666 * config/arm/bpabi.h (EABI_LINK_SPEC): Define.
13667 (BPABI_LINK_SPEC): Use new EABI_LINK_SPEC.
13668 * config/arm/linux-eabi.h (LINK_SPEC): Replace BE8_LINK_SPEC
13669 with EABI_LINK_SPEC.
13670
f9ed28db
UB
136712013-04-29 Uros Bizjak <ubizjak@gmail.com>
13672
13673 PR target/44578
13674 * config/i386/i386.md (*zero_extendsidi2): Add "!" to m->?*y
13675 alternative.
13676
deca73f5
VM
136772013-04-29 Vladimir Makarov <vmakarov@redhat.com>
13678
13679 PR target/57097
37953bd3 13680 * lra-constraints.c (process_alt_operands): Discourage a bit more
deca73f5
VM
13681 using memory for pseudos. Print cost dump for alternatives.
13682 Modify cost values for conflicts with early clobbers.
13683 (curr_insn_transform): Spill pseudos reassigned to NO_REGS.
13684
fdca7d03
UB
136852013-04-29 Uros Bizjak <ubizjak@gmail.com>
13686
13687 PR target/57098
13688 * config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory.
13689
0b064172
IB
136902013-04-29 Ian Bolton <ian.bolton@arm.com>
13691
13692 * config/aarch64/aarch64.md (movsi_aarch64): Support LDR/STR
13693 from/to S register.
13694 (movdi_aarch64): Support LDR/STR from/to D register.
13695
473cec55
IB
136962013-04-29 Ian Bolton <ian.bolton@arm.com>
13697
13698 * common/config/aarch64/aarch64-common.c: Enable REE pass at O2
13699 or higher by default.
13700
a6f30e66
RB
137012013-04-29 Richard Biener <rguenther@suse.de>
13702
13703 PR middle-end/57075
13704 * tree-inline.c (copy_edges_for_bb): Still split the bbs,
13705 even if not adding abnormal edges for calls that can make
13706 abnormal gotos.
13707
0c2b2040
RB
137082013-04-29 Richard Biener <rguenther@suse.de>
13709
13710 PR middle-end/57103
13711 * tree-cfg.c (move_stmt_op): Fix condition under which to update
13712 TREE_BLOCK.
13713 (move_stmt_r): Remove redundant checking.
13714
f41f80f9
TJ
137152013-04-29 Teresa Johnson <tejohnson@google.com>
13716
13717 PR bootstrap/57077
13718 * basic-block.h (apply_scale): New function.
13719 (apply_probability): Use apply_scale.
13720 * gimple-streamer-in.c (input_bb): Ditto.
13721 * lto-streamer-in.c (input_cfg): Ditto.
13722 * lto-cgraph.c (merge_profile_summaries): Ditto.
13723 * tree-optimize.c (execute_fixup_cfg): Ditto.
fdca7d03 13724 * tree-inline.c (copy_bb): Update comment to use apply_scale.
f41f80f9
TJ
13725 (copy_edges_for_bb): Ditto.
13726 (copy_cfg_body): Ditto.
13727
315bbd2e
TV
137282013-04-29 Tom de Vries <tom@codesourcery.com>
13729
13730 * tree-ssa-tail-merge.c (find_same_succ_bb): Skip loop latch bbs.
13731 (replace_block_by): Don't set LOOPS_NEED_FIXUP.
13732 (tail_merge_optimize): Handle current_loops == NULL.
13733
ebbd90d8
JL
137342013-04-26 Jeff Law <law@redhat.com>
13735
13736 * tree-vrp.c (range_fits_type_p): Move to earlier point in file.
13737 (simplify_cond_using_ranges): Generalize code to simplify
13738 COND_EXPRs where one argument is a constant and the other
13739 is an SSA_NAME created by an integral type conversion.
13740
8b9b57eb
KT
137412013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13742
13743 * config/arm/arm.md (store_minmaxsi): Use only when
13744 optimize_insn_for_size_p.
13745
9498e5dc
CB
137462013-04-29 Christian Bruel <christian.bruel@st.com>
13747
13748 PR target/57108
13749 * sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0.
13750
6093bc06
RB
137512013-04-29 Richard Biener <rguenther@suse.de>
13752
13753 PR middle-end/57089
fdca7d03
UB
13754 * omp-low.c (expand_omp_taskreg): If the parent function had a broken
13755 loop tree make sure to schedule a fixup for the child as well.
6093bc06
RB
13756 (expand_omp_for_generic): Properly add loops.
13757 (expand_omp_for_static_nochunk): Likewise.
13758 (expand_omp_for_static_chunk): Likewise.
13759 (expand_omp_for): For the degenerate case fixup loops.
13760 (expand_omp_sections): Fix default bb placement in loops.
13761 (expand_omp_atomic_pipeline): Properly add loops.
13762
84aacbfd
KT
137632013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13764
13765 * predict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY.
13766
8dee4479
TV
137672013-04-29 Tom de Vries <tom@codesourcery.com>
13768
13769 * tree-ssa-tail-merge.c: Update header comment.
13770
47934dc4
JG
137712013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
13772
13773 * config/aarch64/arm_neon.h
13774 (vcvt<sd>_f<32,64>_s<32,64>): Rewrite in C.
13775 (vcvt<q>_f<32,64>_s<32,64>): Rewrite using builtins.
13776 (vcvt_<high_>_f<32,64>_f<32,64>): Likewise.
13777 (vcvt<qsd>_<su><32,64>_f<32,64>): Likewise.
13778 (vcvta<qsd>_<su><32,64>_f<32,64>): Likewise.
13779 (vcvtm<qsd>_<su><32,64>_f<32,64>): Likewise.
13780 (vcvtn<qsd>_<su><32,64>_f<32,64>): Likewise.
13781 (vcvtp<qsd>_<su><32,64>_f<32,64>): Likewise.
13782
384be29f
JG
137832013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
13784
13785 * config/aarch64/aarch64-simd.md
13786 (<optab><VDQF:mode><fcvt_target>2): New, maps to fix, fixuns.
13787 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): New, maps to
13788 fix_trunc, fixuns_trunc.
13789 (ftrunc<VDQF:mode>2): New.
13790 * config/aarch64/iterators.md (optab): Add fix, fixuns.
13791 (fix_trunc_optab): New.
13792
0386b123
JG
137932013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
13794
13795 * config/aarch64/aarch64-builtins.c
13796 (aarch64_builtin_vectorized_function): Vectorize over ifloorf,
13797 iceilf, lround, iroundf.
13798
00fcb892
UB
137992013-04-29 Uros Bizjak <ubizjak@gmail.com>
13800
13801 PR target/54349
13802 * config/i386/i386.h (enum ix86_tune_indices)
13803 <X86_TUNE_INTER_UNIT_MOVES_TO_VEC, X86_TUNE_INTER_UNIT_MOVES_FROM_VEC>:
13804 New, split from X86_TUNE_INTER_UNIT_MOVES.
13805 <X86_TUNE_INTER_UNIT_MOVES>: Remove.
13806 (TARGET_INTER_UNIT_MOVES_TO_VEC): New define.
13807 (TARGET_INTER_UNIT_MOVES_FROM_VEC): Ditto.
13808 (TARGET_INTER_UNIT_MOVES): Remove.
13809 * config/i386/i386.c (initial_ix86_tune_features): Update.
13810 Disable X86_TUNE_INTER_UNIT_MOVES_FROM_VEC for m_ATHLON_K8 only.
13811 (ix86_expand_convert_uns_didf_sse): Use
13812 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
13813 (ix86_expand_vector_init_one_nonzero): Ditto.
13814 (ix86_expand_vector_init_interleave): Ditto.
13815 (inline_secondary_memory_needed): Return true for moves from SSE class
13816 registers for !TARGET_INTER_UNIT_MOVES_FROM_VEC targets and for moves
13817 to SSE class registers for !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
13818 * config/i386/constraints.md (Yi, Ym): Depend on
13819 TARGET_INTER_UNIT_MOVES_TO_VEC.
13820 (Yj, Yn): New constraints.
13821 * config/i386/i386.md (*movdi_internal): Change constraints of
13822 operand 1 from Yi to Yj and from Ym to Yn.
13823 (*movsi_internal): Ditto.
13824 (*movdf_internal): Ditto.
13825 (*movsf_internal): Ditto.
13826 (*float<SWI48x:mode><X87MODEF:mode>2_1): Use
13827 TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
13828 (*float<SWI48x:mode><X87MODEF:mode>2_1 splitters): Ditto.
13829 (floatdi<X87MODEF:mode>2_i387_with_xmm): Ditto.
13830 (floatdi<X87MODEF:mode>2_i387_with_xmm splitters): Ditto.
13831 * config/i386/sse.md (movdi_to_sse): Ditto.
13832 (sse2_stored): Change constraint of operand 1 from Yi to Yj.
13833 Use TARGET_INTER_UNIT_MOVES_FROM_VEC instead of
13834 TARGET_INTER_UNIT_MOVES.
13835 (sse_storeq_rex64): Change constraint of operand 1 from Yi to Yj.
13836 (sse_storeq_rex64 splitter): Use TARGET_INTER_UNIT_MOVES_FROM_VEC
13837 instead of TARGET_INTER_UNIT_MOVES.
13838 * config/i386/mmx.md (*mov<mode>_internal): Change constraint of
13839 operand 1 from Yi to Yj and from Ym to Yn.
13840
4c871069
JG
138412013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
13842
13843 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New.
13844 (float_truncate_hi_): Likewise.
13845 (float_extend_lo_): Likewise.
13846 (float_truncate_lo_): Likewise.
13847 * config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New.
13848 (aarch64_float_extend_lo_v2df): Likewise.
13849 (vec_unpacks_hi_v4sf): Likewise.
13850 (aarch64_float_truncate_lo_v2sf): Likewise.
13851 (aarch64_float_truncate_hi_v4sf): Likewise.
13852 (vec_pack_trunc_v2df): Likewise.
13853 (vec_pack_trunc_df): Likewise.
13854
1709ff9b
JG
138552013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
13856
13857 * config/aarch64/aarch64-builtins.c
13858 (aarch64_fold_builtin): Fold float conversions.
13859 * config/aarch64/aarch64-simd-builtins.def
13860 (floatv2si, floatv4si, floatv2di): New.
13861 (floatunsv2si, floatunsv4si, floatunsv2di): Likewise.
13862 * config/aarch64/aarch64-simd.md
13863 (<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns.
13864 * config/aarch64/iterators.md (FLOATUORS): New.
13865 (optab): Add float, floatuns.
13866 (su_optab): Likewise.
13867
ce966824
JG
138682013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
13869
13870 * config/aarch64/aarch64-builtins.c
13871 (aarch64_builtin_vectorized_function): Use new names for
13872 fcvt builtins.
13873 * config/aarch64/aarch64-simd-builtins.def (fcvtzs): Split as...
13874 (lbtruncv2sf, lbtruncv4sf, lbtruncv2df): ...This.
13875 (fcvtzu): Split as...
13876 (lbtruncuv2sf, lbtruncuv4sf, lbtruncuv2df): ...This.
13877 (fcvtas): Split as...
13878 (lroundv2sf, lroundv4sf, lroundv2df, lroundsf, lrounddf): ...This.
13879 (fcvtau): Split as...
13880 (lrounduv2sf, lrounduv4sf, lrounduv2df, lroundusf, lroundudf): ...This.
13881 (fcvtps): Split as...
13882 (lceilv2sf, lceilv4sf, lceilv2df): ...This.
13883 (fcvtpu): Split as...
13884 (lceiluv2sf, lceiluv4sf, lceiluv2df, lceilusf, lceiludf): ...This.
13885 (fcvtms): Split as...
13886 (lfloorv2sf, lfloorv4sf, lfloorv2df): ...This.
13887 (fcvtmu): Split as...
13888 (lflooruv2sf, lflooruv4sf, lflooruv2df, lfloorusf, lfloorudf): ...This.
13889 (lfrintnv2sf, lfrintnv4sf, lfrintnv2df, lfrintnsf, lfrintndf): New.
13890 (lfrintnuv2sf, lfrintnuv4sf, lfrintnuv2df): Likewise.
13891 (lfrintnusf, lfrintnudf): Likewise.
13892 * config/aarch64/aarch64-simd.md
13893 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Convert to
13894 define_insn.
13895 (aarch64_fcvt<frint_suffix><su><mode>): Remove.
13896 * config/aarch64/iterators.md (FCVT): Include UNSPEC_FRINTN.
13897 (fcvt_pattern): Likewise.
13898
b9de24fe
JG
138992013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
13900
13901 * config/aarch64/aarch64-simd.md
13902 (l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Rename to...
13903 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): ... This.
13904
77a205be
JG
139052013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
13906
13907 * config/aarch64/arm_neon.h (vrndq<a,m,n,p>_f<32, 64>): Rename to...
13908 (vrnd<a,m,n,p>q_f<32, 64>): ...This, implement using builtin.
13909 (vrnd<a,m,n,p>_f32): Implement using builtins.
13910 (vrnd<i,x><q>_f<32, 64>): New.
13911
0659ce6f
JG
139122013-04-29 James Greenhalgh <james.greenhalgh@arm.com>
13913
13914 * config/aarch64/aarch64-builtins.c
13915 (aarch64_builtin_vectorized_function): Fold to standard pattern names.
13916 * config/aarch64/aarch64-simd-builtins.def (frintn): New.
13917 (frintz): Rename to...
13918 (btrunc): ...this.
13919 (frintp): Rename to...
13920 (ceil): ...this.
13921 (frintm): Rename to...
13922 (floor): ...this.
13923 (frinti): Rename to...
13924 (nearbyint): ...this.
13925 (frintx): Rename to...
13926 (rint): ...this.
13927 (frinta): Rename to...
13928 (round): ...this.
13929 * config/aarch64/aarch64-simd.md
13930 (aarch64_frint<frint_suffix><mode>): Delete.
13931 (<frint_pattern><mode>2): Convert to insn.
13932 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN.
13933 * config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN.
13934 (frint_pattern): Likewise.
13935 (frint_suffix): Likewise.
13936
ea78906a
RB
139372013-04-29 Richard Biener <rguenther@suse.de>
13938
13939 PR tree-optimization/57081
13940 * loop-init.c: Include tree-flow.h.
13941 (loop_optimizer_finalize): Free number of iteration estimates.
13942 * Makefile.in (loop-init.o): Add $(TREE_FLOW_H) dependency.
13943
baee1763
JJ
139442013-04-29 Jakub Jelinek <jakub@redhat.com>
13945
94dc5332
JJ
13946 PR tree-optimization/57083
13947 * tree-vrp.c (extract_range_from_binary_expr_1): For LSHIFT_EXPR with
13948 non-singleton shift count range, zero extend low_bound for uns case.
13949
baee1763
JJ
13950 * config/i386/predicates.md (general_vector_operand): New predicate.
13951 * config/i386/i386.c (const_vector_equal_evenodd_p): New function.
13952 (ix86_expand_mul_widen_evenodd): Force op1 resp. op2 into register
13953 if they aren't nonimmediate operands. If their original values
13954 satisfy const_vector_equal_evenodd_p, don't shift them.
13955 * config/i386/sse.md (mul<mode>3): Use general_vector_operand
13956 predicates. For the SSE4.1 case force operands[{1,2}] into registers
13957 if not nonimmediate_operand.
13958 (vec_widen_smult_even_v4si): Use nonimmediate_operand predicates
13959 instead of register_operand.
13960 (vec_widen_<s>mult_odd_<mode>): Use general_vector_operand predicates.
13961
a9073727 139622013-04-28 Eric Botcazou <ebotcazou@adacore.com>
22ad5e0a
EB
13963
13964 * stor-layout.c (finalize_size_functions): Allocate a structure and
13965 reset cfun before dumping the functions.
13966
ba8011e6
JJ
139672013-04-27 Jakub Jelinek <jakub@redhat.com>
13968
d6fde69e
JJ
13969 * config/i386/i386.c (ix86_expand_call): Make cregs_size unsigned.
13970
ba8011e6
JJ
13971 PR target/56866
13972 * config/i386/i386.c (ix86_expand_mul_widen_evenodd): Don't
13973 use xop_pmacsdqh if uns_p.
13974 * config/i386/sse.md (xop_rotr<mode>3): Fix up computation of
13975 the immediate rotate count.
13976
2c62cbaa
VM
139772013-04-26 Vladimir Makarov <vmakarov@redhat.com>
13978
13979 * rtl.h (struct rtx_def): Add comment for field jump.
13980 (LRA_SUBREG_P): New macro.
13981 * recog.c (register_operand): Check LRA_SUBREG_P.
13982 * lra.c (lra): Add note at the end of RTL code. Align non-empty
13983 stack frame.
13984 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
13985 (lra_final_code_change): Skip subreg change for operators.
13986 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
13987 if there are no operand changes.
13988 * lra-constraints.c (curr_insn_set): New.
13989 (match_reload): Set LRA_SUBREG_P.
13990 (emit_spill_move): Ditto.
13991 (check_and_process_move): Use curr_insn_set. Process only single
13992 set insns. Don't initialize sec_mem_p and change_p.
13993 (simplify_operand_subreg): Use LRA_SUBREG_P.
13994 (reg_in_class_p): New function.
13995 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
13996 of #ifdef. Add code to remove cycling.
13997 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
13998 non-null disp. Reload inner instead of disp when base and index
13999 are null. Try to put lo_sum into register.
14000 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
14001 (check_and_process_move): Move code for move cost check to
14002 simple_move_p. Remove equiv_substitution.
14003 (simple_move_p): New function.
14004 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
14005 curr_insn_set. Call check_and_process_move only for single set
14006 insns. Use the new function. Move call of check_and_process_move
14007 after operand equiv substitution and address process.
14008
e7d764f3
JJ
140092013-04-26 Jakub Jelinek <jakub@redhat.com>
14010
14011 PR go/57045
14012 * tree-ssa-uninit.c (compute_uninit_opnds_pos): In functions
14013 with nonlocal goto receivers or returns twice calls, ignore
14014 unininitialized values from abnormal edges to nl goto receiver
14015 or returns twice call.
14016
41e10689
JJ
140172013-04-26 Jakub Jelinek <jakub@redhat.com>
14018
14019 PR tree-optimization/57051
14020 * fold-const.c (const_binop): Handle VEC_LSHIFT_EXPR
14021 and VEC_RSHIFT_EXPR if shift count is a multiple of element
14022 bitsize.
14023
d7ed20db
RB
140242013-04-26 Richard Biener <rguenther@suse.de>
14025
14026 * omp-low.c (finalize_task_copyfn): Do not drop PROP_loops.
14027 (expand_omp_taskreg): Likewise. Mark loops for fixup.
14028 * tree-cfg.c (move_block_to_fn): Remap loop fathers.
14029 (fixup_loop_arrays_after_move): New function.
14030 (move_sese_region_to_fn): Properly outline the loop tree parts
14031 of the SESE region.
14032
df93505e
UB
140332013-04-26 Uros Bizjak <ubizjak@gmail.com>
14034
14035 * config/i386/i386.md (type, unit): Fix long lines.
14036
dd366ec3
RB
140372013-04-26 Richard Biener <rguenther@suse.de>
14038
14039 * Makefile.in (lto-streamer-in.o): Add $(CFGLOOP_H) dependency.
14040 (lto-streamer-out.o): Likewise.
14041 * cfgloop.c (init_loops_structure): Export, add struct function
14042 argument and adjust.
14043 (flow_loops_find): Adjust.
14044 * cfgloop.h (enum loop_estimation): Add EST_LAST.
14045 (init_loops_structure): Declare.
14046 * lto-streamer-in.c: Include cfgloop.h.
14047 (input_cfg): Input the loop tree.
14048 * lto-streamer-out.c: Include cfgloop.h.
14049 (output_cfg): Output the loop tree.
14050 (output_struct_function_base): Do not drop PROP_loops.
14051
a9e0d843
RB
140522013-03-26 Richard Biener <rguenther@suse.de>
14053
14054 * tree-cfg.c (execute_build_cfg): Build the loop tree.
14055 (pass_build_cfg): Provide PROP_loops.
14056 (move_sese_region_to_fn): Remove loops that are outlined into fn
14057 for now.
14058 * tree-inline.c: Include cfgloop.h.
14059 (initialize_cfun): Do not drop PROP_loops.
14060 (copy_loops): New function.
14061 (copy_cfg_body): Copy loop structure.
14062 (tree_function_versioning): Initialize destination loop tree.
14063 * tree-ssa-loop.c (pass_tree_loop_init): Do not provide PROP_loops.
14064 (pass_parallelize_loops): Do IL verification.
14065 * loop-init.c (loop_optimizer_init): Fixup loops if required.
14066 * tree-optimize.c (execute_fixup_cfg): If we need to cleanup
14067 the CFG make sure we fixup loops as well.
14068 * tree-ssa-tail-merge.c: Include cfgloop.h.
14069 (replace_block_by): When merging loop latches mark loops for fixup.
14070 * lto-streamer-out.c (output_struct_function_base): Drop
14071 PROP_loops for now.
14072 * tree-ssa-phiopt.c: Include tree-scalar-evolution.h.
14073 (tree_ssa_cs_elim): Initialize the loop optimizer and SCEV.
14074 * ipa-split.c: Include cfgloop.h.
14075 (split_function): Add the new return block to the loop tree root.
14076 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Return
14077 whether we have removed the forwarder block.
14078 (merge_phi_nodes): If we removed a forwarder mark loops for fixup.
14079 * cfgloop.h (place_new_loop): Declare.
14080 * cfgloopmanip.c (place_new_loop): Export.
14081 * Makefile.in (asan.o): Add $(CFGLOOP_H) dependency.
14082 (tree-switch-conversion.o): Likewise.
14083 (tree-complex.o): Likewise.
14084 (tree-inline.o): Likewise.
14085 (tree-ssa-tailmerge.o): Likewise.
14086 (ipa-split.o): Likewise.
14087 (tree-ssa-phiopt.o): Add $(SCEV_H) dependency.
14088 (tree-ssa-copy.o): Likewise.
14089 * tree-switch-conversion.c: Include cfgloop.h
14090 (process_switch): If we emit a bit-test cascade, schedule loops
14091 for fixup.
14092 * tree-complex.c: Include cfgloop.h.
14093 (expand_complex_div_wide): Properly add new basic-blocks to loops.
14094 * asan.c: Include cfgloop.h.
14095 (create_cond_insert_point): Properly add new basic-blocks to
14096 loops, schedule loop fixup.
14097 * cfgloop.c (verify_loop_structure): Check that looks are not
14098 marked for fixup.
14099 * omp-low.c (expand_parallel_call): Properly add new basic-blocks
14100 to loops.
14101 (expand_omp_for_generic): Likewise.
14102 (expand_omp_sections): Likewise.
14103 (expand_omp_atomic_pipeline): Schedule loops for fixup.
14104 * tree-ssa-copy.c: Include tree-scalar-evolution.h.
14105 (fini_copy_prop): Disable DCE in substitute_and_fold if SCEV
14106 is initialized, not when loops are present.
14107 * tree-parloops.c (parallelize_loops): Remove checking here.
14108 * passes.c (init_optimization_passes): Schedule a copy-propagation
14109 pass before complete unrolling of inner loops.
14110
e78e8a0b
JJ
141112013-04-26 Jakub Jelinek <jakub@redhat.com>
14112
a2e836b2
JJ
14113 * Makefile.in (toplev.o): Depend on diagnostic-color.h.
14114 * diagnostic-color.c (should_colorize): Remove _WIN32 version.
14115 (colorize_init): Add argument to _WIN32 version.
14116 * toplev.c: Include diagnostic-color.h.
14117 (process_options): Default to -fdiagnostics-color=auto if
14118 GCC_COLORS env var is in the environment.
14119 * common.opt (fdiagnostics-color=): Add Var and Init.
df93505e
UB
14120 * doc/invoke.texi (-fdiagnostics-color=): Document that if GCC_COLORS
14121 env var is in the environment, the default is auto rather than never.
a2e836b2 14122
e78e8a0b
JJ
14123 * diagnostic.h (file_name_as_prefix): Add context argument.
14124 * diagnostic.c (file_name_as_prefix): Likewise. Colorize
14125 the string as locus.
14126 * langhooks.c (lhd_print_error_function): Adjust caller.
14127
013e5ef9
LC
141282013-04-25 Lawrence Crowl <crowl@google.com>
14129
14130 * var-tracking.c (shared_hash_def::htab):
14131 Change type to hash_table. Update dependent calls and types.
14132
4a8fb1a1
LC
141332013-04-25 Lawrence Crowl <crowl@google.com>
14134
14135 * Makefile.in: Update as needed below.
14136
14137 * alloc-pool.c (static hash_table <alloc_pool_hasher> alloc_pool_hash):
14138 Move declaration to after the type's method definitons.
14139
14140 * attribs.c (htab_t scoped_attributes::attribute_hash):
14141 Change type to hash_table. Update dependent calls and types.
14142
14143 * bitmap.c (htab_t bitmap_desc_hash):
14144 Change type to hash_table. Update dependent calls and types.
14145
14146 * cselib.c (htab_t cselib_hash_table):
14147 Change type to hash_table. Update dependent calls and types.
14148
14149 * data-streamer.h (struct string_slot): Move to lto-streamer.h.
14150 (hash_string_slot_node): Move implementation into lto-streamer.h
14151 struct string_slot_hasher.
14152 (eq_string_slot_node): Likewise.
14153
14154 * data-streamer-out.c: Update output_block::string_hash_table
14155 dependent calls and types.
14156
14157 * dwarf2cfi.c (htab_t trace_index):
14158 Change type to hash_table. Update dependent calls and types.
14159
14160 * dwarf2out.c (htab_t break_out_includes::cu_hash_table):
14161 Change type to hash_table. Update dependent calls and types.
14162 (htab_t copy_decls_for_unworthy_types::decl_table): Likewise.
14163 (htab_t optimize_external_refs::map): Likewise.
14164 (htab_t output_comp_unit::extern_map): Likewise.
14165 (htab_t output_comdat_type_unit::extern_map): Likewise.
14166 (htab_t output_macinfo::macinfo_htab): Likewise.
14167 (htab_t optimize_location_lists::htab): Likewise.
14168 (htab_t dwarf2out_finish::comdat_type_table): Likewise.
14169
14170 * except.c (htab_t ehspec_hash_type):
14171 Change type to hash_table. Update dependent calls and types.
14172 (assign_filter_values::ttypes): Likewise.
14173 (assign_filter_values::ehspec): Likewise.
14174 (sjlj_assign_call_site_values::ar_hash): Likewise.
14175 (convert_to_eh_region_ranges::ar_hash): Likewise.
14176
14177 * gcse.c (htab_t pre_ldst_table):
14178 Change type to hash_table. Update dependent calls and types.
14179
14180 * ggc-common.c (htab_t saving_htab):
14181 Change type to hash_table. Update dependent calls and types.
14182 (htab_t loc_hash): Likewise.
14183 (htab_t ptr_hash): Likewise.
14184 (call_count): Rename ggc_call_count.
14185 (call_alloc): Rename ggc_call_alloc.
14186 (loc_descriptor): Rename make_loc_descriptor.
14187 (add_statistics): Rename ggc_add_statistics.
14188
14189 * ggc-common.c (saving_htab):
14190 Change type to hash_table. Update dependent calls and types.
14191
14192 * gimple.h (struct gimplify_ctx): Move to gimplify-ctx.h.
14193 (push_gimplify_context): Likewise.
14194 (pop_gimplify_context): Likewise.
14195 (struct gimple_temp_hash_elt): Added.
14196 (struct gimplify_hasher): Likewise.
14197 (struct gimplify_ctx.temp_htab):
14198 Change type to hash_table. Update dependent calls and types.
14199
14200 * gimple-fold.c: Include gimplify-ctx.h.
14201
14202 * gimple-ssa-strength-reduction.c (htab_t base_cand_map):
14203 Change type to hash_table. Update dependent calls and types.
14204 (base_cand_dump_callback): Rename to ssa_base_cand_dump_callback to
14205 avoid potential global name collision.
14206
14207 * gimplify.c: Include gimplify-ctx.h.
14208 (struct gimple_temp_hash_elt): Move to gimplify-ctx.h.
14209 (htab_t gimplify_ctx::temp_htab):
14210 Update dependent calls and types for new type hash_table.
14211 (gimple_tree_hash): Move into gimplify_hasher in gimplify-ctx.h.
14212 (gimple_tree_eq): Move into gimplify_hasher in gimplify-ctx.h.
14213
14214 * gimplify-ctx.h: New.
14215 (struct gimple_temp_hash_elt): Move from gimplify.c.
14216 (class gimplify_hasher): New.
14217 (struct gimplify_ctx): Move from gimple.h.
14218 (htab_t gimplify_ctx::temp_htab):
14219 Change type to hash_table. Update dependent calls and types.
14220
14221 * graphite-clast-to-gimple.c: Include graphite-htab.h.
14222 (htab_t ivs_params::newivs_index):
14223 Change type to hash_table. Update dependent calls and types.
14224 (htab_t ivs_params::params_index): Likewise.
14225 (htab_t print_generated_program::params_index): Likewise.
14226 (htab_t gloog::newivs_index): Likewise.
14227 (htab_t gloog::params_index): Likewise.
14228
14229 * graphite.c: Include graphite-htab.h.
14230 4htab_t graphite_transform_loops::bb_pbb_mapping):
14231 Change type to hash_table. Update dependent calls and types.
14232
14233 * graphite-clast-to-gimple.h: (extern gloog) Move to graphite-htab.h.
14234 (bb_pbb_map_hash): Fold into bb_pbb_htab_type in graphite-htab.h.
14235 (eq_bb_pbb_map): Fold into bb_pbb_htab_type in graphite-htab.h.
14236
14237 * graphite-dependences.c: Include graphite-htab.h.
14238 (loop_is_parallel_p): Change hash table type of parameter.
14239
14240 * graphite-htab.h: New.
14241 (typedef hash_table <bb_pbb_hasher> bb_pbb_htab_type): New.
14242 (extern find_pbb_via_hash): Move from graphite-poly.h.
14243 (extern loop_is_parallel_p): Move from graphite-poly.h.
14244 (extern get_loop_body_pbbs): Move from graphite-poly.h.
14245
14246 * graphite-poly.h (extern find_pbb_via_hash): Move to graphite-htab.h.
14247 (extern loop_is_parallel_p): Move to graphite-htab.h.
14248 (extern get_loop_body_pbbs): Move to graphite-htab.h.
14249
14250 * haifa-sched.c (htab_t delay_htab):
14251 Change type to hash_table. Update dependent calls and types.
14252 (htab_t delay_htab_i2): Likewise.
14253
14254 * ira-color.c (htab_t allocno_hard_regs_htab):
14255 Change type to hash_table. Update dependent calls and types.
14256
14257 * ira-costs.c (htab_t cost_classes_htab):
14258 Change type to hash_table. Update dependent calls and types.
14259
14260 * loop-invariant.c (htab_t merge_identical_invariants::eq):
14261 Change type to hash_table. Update dependent calls and types.
14262
14263 * loop-iv.c (htab_t bivs):
14264 Change type to hash_table. Update dependent calls and types.
14265
14266 * loop-unroll.c (htab_t opt_info::insns_to_split):
14267 Change type to hash_table. Update dependent calls and types.
14268 (htab_t opt_info::insns_with_var_to_expand): Likewise.
14269
14270 * lto-streamer.h (struct string_slot): Move from data-streamer.h
14271 (struct string_slot_hasher): New.
14272 (htab_t output_block::string_hash_table):
14273 Change type to hash_table. Update dependent calls and types.
14274
14275 * lto-streamer-in.c (freeing_string_slot_hasher): New.
14276 (htab_t file_name_hash_table):
14277 Change type to hash_table. Update dependent calls and types.
14278
14279 * lto-streamer-out.c: Update output_block::string_hash_table dependent
14280 calls and types.
14281
14282 * lto-streamer.c (htab_t tree_htab):
14283 Change type to hash_table. Update dependent calls and types.
14284
14285 * omp-low.c: Include gimplify-ctx.h.
14286
14287 * passes.c (htab_t name_to_pass_map):
14288 Change type to hash_table. Update dependent calls and types.
14289 (pass_traverse): Rename to passes_pass_traverse.
14290
14291 * plugin.c (htab_t event_tab):
14292 Change type to hash_table. Update dependent calls and types.
14293
14294 * postreload-gcse.c (htab_t expr_table):
14295 Change type to hash_table. Update dependent calls and types.
14296 (dump_hash_table_entry): Rename dump_expr_hash_table_entry.
14297
14298 * sese.c (debug_rename_map_1): Make extern.
14299 (htab_t copy_bb_and_scalar_dependences::rename_map):
14300 Change type to hash_table. Update dependent calls and types.
14301
14302 * sese.h (extern debug_rename_map): Move to .c file.
14303
14304 * store-motion.c (htab_t store_motion_mems_table):
14305 Change type to hash_table. Update dependent calls and types.
14306
14307 * trans-mem.c (htab_t tm_new_mem_hash):
14308 Change type to hash_table. Update dependent calls and types.
14309
14310 * tree-browser.c (htab_t TB_up_ht):
14311 Change type to hash_table. Update dependent calls and types.
14312
14313 * tree-cfg.c (htab_t discriminator_per_locus):
14314 Change type to hash_table. Update dependent calls and types.
14315
14316 * tree-complex.c: Include tree-hasher.h
14317 (htab_t complex_variable_components):
14318 Change type to hash_table. Update dependent calls and types.
14319
14320 * tree-eh.c (htab_t finally_tree):
14321 Change type to hash_table. Update dependent calls and types.
14322
14323 * tree-flow.h (extern int_tree_map_hash): Moved into tree-hasher
14324 struct int_tree_hasher.
14325 (extern int_tree_map_eq): Likewise.
14326 (uid_decl_map_hash): Removed.
14327 (extern decl_tree_map_eq): Likewise.
14328
14329 * tree-hasher.h: New.
14330 (struct int_tree_hasher): New.
14331 (typedef int_tree_htab_type): New.
14332
14333 * tree-inline.c: Include gimplify-ctx.h.
14334
14335 * tree-mudflap.c: Include gimplify-ctx.h.
14336
14337 * tree-parloops.c: Include tree-hasher.h.
14338 (htab_t eliminate_local_variables_stmt::decl_address):
14339 Change type to hash_table. Update dependent calls and types.
14340 (htab_t separate_decls_in_region::decl_copies): Likewise.
14341
14342 * tree-scalar-evolution.c (htab_t resolve_mixers::cache):
14343 Change type to hash_table. Update dependent calls and types.
14344
14345 * tree-sra.c (candidates):
14346 Change type to hash_table. Update dependent calls and types.
14347
14348 * tree-ssa.c (int_tree_map_eq): Moved into struct int_tree_hasher
14349 in tree-flow.h.
14350 (int_tree_map_hash): Likewise.
14351
14352 * tree-ssa-dom.c (htab_t avail_exprs):
14353 Change type to hash_table. Update dependent calls and types.
14354
14355 * tree-ssa-live.c (var_map_base_init::tree_to_index):
14356 Change type to hash_table. Update dependent calls and types.
14357
14358 * tree-ssa-loop-ivopts.c (struct ivopts_data.inv_expr_tab):
14359 Change type to hash_table. Update dependent calls and types.
14360
14361 * tree-ssa-phiopt.c (seen_ssa_names):
14362 Change type to hash_table. Update dependent calls and types.
14363
14364 * tree-ssa-strlen.c (decl_to_stridxlist_htab):
14365 Change type to hash_table. Update dependent calls and types.
14366
14367 * tree-ssa-uncprop.c (equiv):
14368 Change type to hash_table. Update dependent calls and types.
14369
c5a44004
JJ
143702013-04-25 Jakub Jelinek <jakub@redhat.com>
14371
14372 PR rtl-optimization/57003
14373 * regcprop.c (copyprop_hardreg_forward_1): If ksvd.ignore_set_reg,
14374 call note_stores with kill_clobbered_value callback again after
14375 killing regs_invalidated_by_call.
14376
09962a4a
JG
143772013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
14378
14379 * config/aarch64/aarch64-simd.md
14380 (aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL.
14381 (aarch64_simd_bsl<mode>): Likewise.
14382 * config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL.
14383
ea28bb0b
MP
143842013-04-25 Marek Polacek <polacek@redhat.com>
14385
14386 PR tree-optimization/57066
3c21604f 14387 * builtins.c (fold_builtin_logb): Return +Inf for -Inf.
ea28bb0b 14388
96659611
JG
143892013-04-25 James Greenhalgh <jame.greenhalgh@arm.com>
14390
14391 * config/aarch64/aarch64-simd.md (neg<mode>2): Use VDQ iterator.
14392
9697e620
JG
143932013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
14394
14395 * config/aarch64/aarch64-builtins.c
14396 (aarch64_fold_builtin): New.
14397 * config/aarch64/aarch64-protos.h (aarch64_fold_builtin): New.
14398 * config/aarch64/aarch64.c (TARGET_FOLD_BUILTIN): Define.
14399 * config/aarch64/aarch64-simd-builtins.def (abs): New.
14400 * config/aarch64/arm_neon.h
14401 (vabs<q>_<f32, 64>): Implement using __builtin_aarch64_fabs.
14402
0ac198d3
JG
144032013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
14404 Tejas Belagod <tejas.belagod@arm.com>
14405
14406 * config/aarch64/aarch64-builtins.c
14407 (aarch64_gimple_fold_builtin): New.
14408 * config/aarch64/aarch64-protos.h (aarch64_gimple_fold_builtin): New.
14409 * config/aarch64/aarch64-simd-builtins.def (addv): New.
14410 * config/aarch64/aarch64-simd.md (addpv4sf): New.
14411 (addvv4sf): Update.
14412 * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define.
14413
58cff58c
N
144142013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
14415
df93505e 14416 * config/aarch64/aarch64.md
58cff58c
N
14417 (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): New pattern.
14418
7e0228bf
N
144192013-04-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
14420
14421 * config/aarch64/aarch64.md (*ngc<mode>): New pattern.
14422 (*ngcsi_uxtw): New pattern.
14423
5819f96f 144242013-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3c21604f 14425 Julian Brown <julian@codesourcery.com>
5819f96f
KT
14426
14427 * config/arm/arm.c (neon_builtin_type_mode): Add T_V4HF.
14428 (TB_DREG): Add T_V4HF.
14429 (v4hf_UP): New macro.
14430 (neon_itype): Add NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
df93505e 14431 (arm_init_neon_builtins): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
14432 Handle initialisation of V4HF. Adjust initialisation of reinterpret
14433 built-ins.
df93505e 14434 (arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
5819f96f
KT
14435 (arm_vector_mode_supported_p): Handle V4HF.
14436 (arm_mangle_map): Handle V4HFmode.
14437 * config/arm/arm.h (VALID_NEON_DREG_MODE): Add V4HF.
14438 * config/arm/arm_neon_builtins.def: Add entries for
14439 vcvtv4hfv4sf, vcvtv4sfv4hf.
14440 * config/arm/neon.md (neon_vcvtv4sfv4hf): New pattern.
14441 (neon_vcvtv4hfv4sf): Likewise.
14442 * config/arm/neon-gen.ml: Handle half-precision floating point
14443 features.
14444 * config/arm/neon-testgen.ml: Handle Requires_FP_bit feature.
14445 * config/arm/arm_neon.h: Regenerate.
14446 * config/arm/neon.ml (type elts): Add F16.
14447 (type vectype): Add T_float16x4, T_floatHF.
14448 (type vecmode): Add V4HF.
14449 (type features): Add Requires_FP_bit feature.
14450 (elt_width): Handle F16.
14451 (elt_class): Likewise.
14452 (elt_of_class_width): Likewise.
14453 (mode_of_elt): Refactor.
14454 (type_for_elt): Handle F16, fix error messages.
14455 (vectype_size): Handle T_float16x4.
14456 (vcvt_sh): New function.
14457 (ops): Add entries for vcvt_f16_f32, vcvt_f32_f16.
14458 (string_of_vectype): Handle T_floatHF, T_float16, T_float16x4.
14459 (string_of_mode): Handle V4HF.
14460 * doc/arm-neon-intrinsics.texi: Regenerate.
14461
1ef395e4
JG
144622013-04-25 James Greenhalgh <james.greenhalgh@arm.com>
14463
14464 * config/aarch64/aarch64.c (aarch64_print_operand): Fix asm_fprintf
14465 format specifier in 'X' case.
14466
41c34e94
AM
144672013-04-25 Alan Modra <amodra@gmail.com>
14468
14469 PR target/57052
14470 * config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
14471 rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
14472 (rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
14473 Repeat for many other rotate/shift and mask patterns using subregs.
14474 Name lshiftrt insns.
14475 (ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
14476 on WORDS_BIG_ENDIAN.
14477
b9a7eb5d
AM
144782013-04-25 Alan Modra <amodra@gmail.com>
14479
14480 * config.gcc: Support little-endian powerpc-linux targets.
14481 * config/rs6000/linux.h (LINK_OS_LINUX_EMUL): Define.
14482 (LINK_OS_LINUX_SPEC): Define.
14483 * config/rs6000/linuxspe.h (TARGET_DEFAULT):
14484 Preserve MASK_LITTLE_ENDIAN.
14485 * config/rs6000/default64.h (TARGET_DEFAULT): Likewise.
14486 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Likewise.
14487 * config/rs6000/linux64.h (OPTION_LITTLE_ENDIAN): Don't zero.
14488 (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Define.
14489 (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Use above.
14490 * config/rs6000/rs6000.c (output_toc): Don't use .tc for TARGET_ELF.
14491 Correct fp word order for little-endian. Don't shift toc entries
14492 smaller than a word for little-endian.
14493 * config/rs6000/rs6000.md (bswaphi2, bswapsi2 split): Comment.
14494 (bswapdi2 splits): Correct low-part subreg for little-endian.
14495 Remove wrong BYTES_BIG_ENDIAN tests, and rename vars to remove
14496 low/high where such is correct only for be.
14497 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Allow
14498 little-endian for -mcall-aixdesc.
14499
87f73374
AM
145002013-04-25 Alan Modra <amodra@gmail.com>
14501
14502 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Use
14503 replace_equiv_address_nv.
14504
cabf91cd
AM
145052013-04-25 Alan Modra <amodra@gmail.com>
14506
14507 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Tidy.
14508
0ae24cc8
VM
145092013-04-24 Vladimir Makarov <vmakarov@redhat.com>
14510
14511 Revert:
14512 2013-04-24 Vladimir Makarov <vmakarov@redhat.com>
14513 * rtl.h (struct rtx_def): ...
cabf91cd 14514
77bce07c
VM
145152013-04-24 Vladimir Makarov <vmakarov@redhat.com>
14516
14517 PR rtl-optimizations/57046
14518 * lra-constraints (split_reg): Set up lra_risky_transformations_p
14519 for multi-reg splits.
14520
0db63e7f
L
145212013-04-24 H.J. Lu <hongjiu.lu@intel.com>
14522
14523 * config/i386/x86-64.h (ASM_SPEC): Support -mx32.
14524
3362b6b6
SA
145252013-04-24 Sterling Augustine <saugustine@google.com>
14526
14527 * dwarf2out.c (skeleton_debug_str_hash, add_skeleton_AT_string)
14528 (comp_dir_string, debug_str_dwo_section): New.
14529 (DEBUG_STR_DWO_SECTION): Rename to ...
14530 (DEBUG_DWO_STR_SECTION): ... this.
14531 (DEBUG_NORM_STR_SECTION): Delete.
14532 (DEBUG_STR_SECTION, DEBUG_STR_SECTION_FLAGS): Edit definitions.
14533 (DEBUG_STR_DWO_SECTION_FLAGS): New.
14534 (find_AT_string): Move most logic to ...
14535 (find_AT_string_in_table): ... here. New.
14536 (add_top_level_skeleton_die_attrs): Call comp_dir_string and
14537 add_skeleton_AT_string. Delete logic.
14538 (output_skeleton_debug_sections): Remove call to
14539 add_top_level_skeleton_die_attrs.
14540 (add_comp_dir_attribute): Move logic to comp_dir_string.
14541 (dwarf2out_init): Initialize debug_str_dwo_section.
14542 (output_indirect_string): Call find_string_form.
14543 (output_indirect_strings): Rewrite.
14544 (prune_unused_types): Empty skeleton_debug_str_hash.
14545 Call get_skeleton_type_unit and add_top_level_skeleton_die_attrs.
14546 (dwarf2out_finish): Call output_indirect_strings.
14547
e93e18e9
PC
145482013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
14549
14550 * doc/cpp.texi: Remove __GXX_EXPERIMENTAL_CXX1Y__.
14551
f6ce35ac
VM
145522013-04-24 Vladimir Makarov <vmakarov@redhat.com>
14553
cabf91cd 14554 * rtl.h (struct rtx_def): Add comment for field jump.
f6ce35ac
VM
14555 (LRA_SUBREG_P): New macro.
14556 * recog.c (register_operand): Check LRA_SUBREG_P.
14557 * lra.c (lra): Add note at the end of RTL code. Align non-empty
14558 stack frame.
14559 * lra-spills.c (lra_spill): Align stack after spilling pseudos.
14560 (lra_final_code_change): Skip subreg change for operators.
14561 * lra-eliminations.c (eliminate_regs_in_insn): Make return earlier
14562 if there are no operand changes.
14563 * lra-constraints.c (curr_insn_set): New.
14564 (match_reload): Set LRA_SUBREG_P.
14565 (emit_spill_move): Ditto.
14566 (check_and_process_move): Use curr_insn_set. Process only single
14567 set insns. Don't initialize sec_mem_p and change_p.
14568 (simplify_operand_subreg): Use LRA_SUBREG_P.
14569 (reg_in_class_p): New function.
14570 (process_alt_operands): Use it. Use #if HAVE_ATTR_enabled instead
14571 of #ifdef. Add code to remove cycling.
14572 (process_address): Check EXTRA_CONSTRAINT_STR. Process even if
14573 non-null disp. Reload inner instead of disp when base and index
14574 are null. Try to put lo_sum into register.
14575 (EBB_PROBABILITY_CUTOFF): Redefine probability in percents.
cabf91cd 14576 (check_and_process_move): Move code for move cost check to
f6ce35ac 14577 simple_move_p. Remove equiv_substitution.
cabf91cd 14578 (simple_move_p): New function.
f6ce35ac
VM
14579 (curr_insn_transform): Initialize sec_mem_p and change_p. Set up
14580 curr_insn_set. Call check_and_process_move only for single set
14581 insns. Use the new function. Move call of check_and_process_move
14582 after operand equiv substitution and address process.
14583
38047d90
JG
145842013-04-24 James Greenhalgh <james.greenhalgh@arm.com>
14585
14586 * config/aarch64/arm_neon.h (vld1<q>_lane*): Fix constraints.
14587 (vld1<q>_dup_<sufp><8, 16, 32, 64>): Likewise.
14588 (vld1<q>_<sufp><8, 16, 32, 64>): Likewise.
14589
13f39b2e
PC
145902013-04-24 Paolo Carlini <paolo.carlini@oracle.com>
14591
14592 * doc/cpp.texi: Document __GXX_EXPERIMENTAL_CXX1Y__.
14593
97c116dc
MP
145942013-04-24 Marek Polacek <polacek@redhat.com>
14595
14596 * tree-scalar-evolution.h (analyze_scalar_evolution): Remove.
14597 * tree-scalar-evolution.c (get_exit_conditions_rec): Likewise.
14598 (select_loops_exit_conditions): Likewise.
14599 (number_of_iterations_for_all_loops): Likewise.
14600 (analyze_scalar_evolution_for_all_loop_phi_nodes): Likewise.
14601 (scev_analysis): Likewise.
14602
83082391 146032013-04-02 Catherine Moore <clm@codesourcery.com>
12211b99 14604 Chao-ying Fu <fu@mips.com>
83082391 14605
cabf91cd
AM
14606 * config/mips/micromips.md (jraddiusp): New pattern.
14607 * config/mips/mips.c (mips_expand_epilogue): Use the JRADDIUSP
14608 instruction if possible.
83082391 14609
19e34aa2
AM
146102013-04-24 Alan Modra <amodra@gmail.com>
14611
14612 * config/rs6000/driver-rs6000.c (elf_dcachebsize): Fix comment pasto.
14613
fdb6603c
JB
146142013-04-24 Julian Brown <julian@codesourcery.com>
14615 Chung-Lin Tang <cltang@codesourcery.com>
14616
14617 * dwarf2out.c (gen_enumeration_type_die): Fix HOST_BITS_PER_WIDE_INT
df93505e
UB
14618 dependency behavior in enumeration type DIE generation. Add TODO note
14619 to comments about future DW_FORM_sdata/udata re-work of related code.
fdb6603c 14620
bf190e8d
LC
146212013-04-23 Lawrence Crowl <crowl@google.com>
14622
14623 * Makefile.in: Update as needed below.
14624
14625 * hash-table.h (class hash_table):
14626 Correct many methods with parameter types compare_type to the correct
14627 value_type. (Correct code was unlikely to notice the change.)
14628 (hash_table::elements_with_deleted) New.
14629 (class hashtable::iterator): New.
14630 (hashtable::begin()): New.
14631 (hashtable::end()): New.
14632 (FOR_EACH_HASH_TABLE_ELEMENT): New.
14633
14634 * statistics.c (statistics_hashes):
14635 Change type to hash_table. Update dependent calls and types.
14636
14637 * tree-into-ssa.c (var_infos):
14638 Change type to hash_table. Update dependent calls and types.
14639
14640 * tree-ssa-coalesce.c (struct coalesce_list_d.list):
14641 Change type to hash_table. Update dependent calls and types.
14642
14643 * tree-ssa-loop-im.c (struct mem_ref.refs):
14644 Change type to hash_table. Update dependent calls and types.
14645
14646 * tree-ssa-reassoc.c (undistribute_ops_list::ctable):
14647 Change type to hash_table. Update dependent calls and types.
14648
14649 * tree-ssa-sccvn.c (vn_tables_s::nary):
14650 Change type to hash_table. Update dependent calls and types.
14651 (vn_tables_s::phis): Likewise.
14652 (vn_tables_s::references): Likewise.
14653
14654 * tree-ssa-sccvn.h (vn_nary_op_eq): Update parameter and return types.
14655 (vn_reference_eq): Update parameter and return types.
14656
14657 * tree-ssa-structalias.c (pointer_equiv_class_table):
14658 Change type to hash_table. Update dependent calls and types.
14659 (location_equiv_class_table): Likewise.
14660
14661 * tree-vect-data-refs.c: Consequential changes for making
14662 peeling a hash_table.
14663
14664 * tree-vect-loop.c (new_loop_vec_info): Dependent hash_table update.
14665 (destroy_loop_vec_info): Dependent hash_table update.
14666
14667 * tree-vectorizer.h (peeling_htab):
14668 Change type to hash_table. Update dependent calls and types.
14669
d70a81dd
SC
146702013-04-23 Shiva Chen <shiva0217@gmail.com>
14671
cabf91cd
AM
14672 * lra-assigns.c (find_hard_regno_for): Use lra_reg_val_equal_p
14673 to check the register content is equal or not.
14674 * lra-constraints.c (match_reload): Use lra_assign_reg_val
14675 to assign register content record.
14676 * lra-eliminations.c (update_reg_eliminate): Use
d70a81dd 14677 lra_update_reg_val_offset to update register content offset.
cabf91cd
AM
14678 * lra-int.h (struct lra_reg): Add offset member.
14679 (lra_reg_val_equal_p): New static inline function.
14680 (lra_update_reg_val_offset): New static inline function.
14681 (lra_assign_reg_val): New static inline function.
14682 * lra.c (lra_create_new_reg): Use lra_assign_reg_val
14683 to assign register content record.
14684 (initialize_lra_reg_info_element): Initial offset to zero.
d70a81dd 14685
b894a1f3
CM
146862013-04-23 Catherine Moore <clm@codesourcery.com>
14687
14688 * config/mips/mips.md (*movhi_internal, *movqi_internal): New
14689 operands. Record compression.
14690
ecd14de9
XDL
146912013-04-23 Xinliang David Li <davidxl@google.com>
14692
14693 * cfghhooks.c (dump_bb_for_graph): Support 'slim' graph dump.
14694
92e776e9
RB
146952013-04-23 Richard Biener <rguenther@suse.de>
14696
14697 PR middle-end/57036
14698 * tree-inline.c (copy_edges_for_bb): Add can_make_abnormal_goto
14699 parameter, only add abnormal goto edges from the copied body
14700 if the call could perform abnormal gotos.
14701 (copy_cfg_body): Adjust.
14702
a15ee567
SN
147032013-04-23 Sofiane Naci <sofiane.naci@arm.com>
14704
14705 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add simd attribute.
14706
08c52234
AS
147072013-04-23 Andreas Schwab <schwab@linux-m68k.org>
14708
14709 * coretypes.h (gimple_stmt_iterator): Add struct to make
14710 compatible with C.
14711
999c1171
RB
147122013-04-23 Richard Biener <rguenther@suse.de>
14713
14714 PR tree-optimization/57026
14715 * tree-vrp.c (simplify_conversion_using_ranges): Do not propagate
14716 from SSA names occuring in abnormal PHI nodes.
14717
53669259
AK
147182013-04-22 Andi Kleen <ak@linux.intel.com>
14719
14720 * lto/lto.c (print_lto_report_1): Fix LTO report names.
14721
1a0ad150
AK
147222013-04-22 Andi Kleen <ak@linux.intel.com>
14723
14724 * lto/lto.c (print_lto_report_1): Declare early.
14725 (read_cgraph_and_symbols): Call print_lto_report_1 early.
14726
057f8f20
AK
147272013-04-22 Andi Kleen <ak@linux.intel.com>
14728
14729 * common.opt (-flto-report-wpa): Add.
14730 * doc/invoke.texi (-flto-report-wpa): Add.
14731 * lto/lto.c (do_whole_program_analysis): Check for lto-report-wpa.
14732 (lto_main): dito.
14733
473b1e05
XDL
147342013-04-22 Xinliang David Li <davidxl@google.com>
14735
14736 * graph.c (draw_cfg_node_succ_edges): Add branch probility as label.
14737 * cfghhooks.c (dump_bb_for_graph): Dump profile count and frquency.
14738 * Makefile.in: New dependency
14739
cabf91cd 14740 David Daney <ddaney.cavm@gmail.com>
b1485a33 14741
cabf91cd
AM
14742 * configure.ac (gcc_cv_as_micromips_support): Use the
14743 --fatal-warnings option.
14744 * configure: Regenerate.
b1485a33 14745
829d0168
MP
147462013-04-22 Marek Polacek <polacek@redhat.com>
14747
14748 PR sanitizer/56990
14749 * tsan.c (instrument_expr): Don't instrument expression
14750 in case its size is zero.
14751
6d9b7208
UB
147522013-04-22 Uros Bizjak <ubizjak@gmail.com>
14753
14754 PR target/57032
14755 Revert:
14756 2013-03-17 Uros Bizjak <ubizjak@gmail.com>
14757
14758 * config/alpha/alpha.c (TARGET_LRA_P): New define.
14759
ea679d55
JG
147602013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
14761
14762 * coretypes.h (gimple_stmt_iterator_d): Forward declare.
14763 (gimple_stmt_iterator): New typedef.
14764 * gimple.h (gimple_stmt_iterator): Rename to...
14765 (gimple_stmt_iterator_d): ... This.
14766 * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Detail restriction that
14767 trees be valid for GIMPLE and GENERIC.
14768 (TARGET_GIMPLE_FOLD_BUILTIN): New.
14769 * gimple-fold.c (gimple_fold_call): Call target hook
14770 gimple_fold_builtin.
14771 * hooks.c (hook_bool_gsiptr_false): New.
14772 * hooks.h (hook_bool_gsiptr_false): New.
14773 * target.def (fold_stmt): New.
14774 * doc/tm.texi: Regenerate.
14775
88a581da
VM
147762013-04-22 Vladimir Makarov <vmakarov@redhat.com>
14777
14778 PR target/57018
14779 * lra-eliminations.c (mark_not_eliminable): Prevent elimination of
14780 a set sp if no stack realignment.
14781
92be22dc
NC
147822013-04-22 Nick Clifton <nickc@redhat.com>
14783
14784 * config.gcc (tilegx-linux): Extend extra_objs rather than
14785 overwriting it.
14786 (tilepro-linux): Likewise.
14787
0ddec79f
JG
147882013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
14789
14790 * config/aarch64/aarch64-builtins.c
14791 (CF): Remove.
14792 (CF0, CF1, CF2, CF3, CF4, CF10): New.
14793 (VAR<1-12>): Add MAP parameter.
14794 (BUILTIN_*): Likewise.
14795 * config/aarch64/aarch64-simd-builtins.def: Set MAP parameter.
14796 * config/aarch64/aarch64-simd.md (aarch64_sshl_n<mode>): Remove.
14797 (aarch64_ushl_n<mode>): Likewise.
14798 (aarch64_sshr_n<mode>): Likewise.
14799 (aarch64_ushr_n<mode>): Likewise.
14800 (aarch64_<maxmin><mode>): Likewise.
14801 (aarch64_sqrt<mode>): Likewise.
14802 * config/aarch64/arm_neon.h (vshl<q>_n_*): Use new builtin names.
14803 (vshr<q>_n_*): Likewise.
14804
0050faf8
JG
148052013-04-22 James Greenhalgh <james.greenhalgh@arm.com>
14806
14807 * config/aarch64/aarch64-builtins.c
14808 (aarch64_simd_builtin_type_mode): Handle SF types.
14809 (sf_UP): Define.
14810 (BUILTIN_GPF): Define.
14811 (aarch64_init_simd_builtins): Handle SF types.
14812 * config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
14813 (frecps): Likewise.
14814 (frecpx): Likewise.
14815 * config/aarch64/aarch64-simd.md
14816 (simd_types): Update simd_frcp<esx> to simd_frecp<esx>.
14817 (aarch64_frecpe<mode>): New.
14818 (aarch64_frecps<mode>): Likewise.
14819 * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRECP<ESX>.
14820 (v8type): Add frecp<esx>.
14821 (aarch64_frecp<FRECP:frecp_suffix><mode>): New.
14822 (aarch64_frecps<mode>): Likewise.
14823 * config/aarch64/iterators.md (FRECP): New.
14824 (frecp_suffix): Likewise.
14825 * config/aarch64/arm_neon.h
14826 (vrecp<esx><qsd>_<fd><32, 64>): Convert to using builtins.
14827
0fad3dbc 148282013-04-22 Christian Bruel <christian.bruel@st.com>
1818d01c
CB
14829
14830 PR target/56995
14831 * config/sh/sh.h (enum reg_class): Remove DF_HI_REGS.
14832 (REG_CLASS_NAMES): Idem.
14833 (REG_CLASS_CONTENTS): Idem.
14834 (REGCLASS_HAS_FP_REG): Idem.
14835 * config/sh/sh.c (sh_cannot_change_mode_class): Idem.
14836 (sh_conditional_register_usage): Idem.
14837
3e8a33f9
JL
148382013-04-21 Jeff Law <law@redhat.com>
14839
14840 * tree-ssa-forwprop.c (simplify_conversion_from_bitmask): New function.
14841 (ssa_forward_propagate_and_combine): Use it.
14842
f38e1b0a
VM
148432013-04-19 Vladimir Makarov <vmakarov@redhat.com>
14844
14845 * lra.c: Update the flow chart diagram.
14846
682303da
VM
148472013-04-19 Vladimir Makarov <vmakarov@redhat.com>
14848
14849 PR rtl-optimization/56847
14850 * lra-constraints.c (process_alt_operands): Discourage alternative
14851 with non-matche doffsettable memory constraint fro memory with
14852 known offset.
14853
f6b64c35
RB
148542013-04-19 Richard Biener <rguenther@suse.de>
14855
14856 PR tree-optimization/56982
14857 * builtins.def (BUILT_IN_LONGJMP): longjmp is not a leaf
14858 function.
14859 * gimplify.c (gimplify_call_expr): Notice special calls.
14860 (gimplify_modify_expr): Likewise.
14861 * tree-cfg.c (make_abnormal_goto_edges): Handle setjmp-like
14862 abnormal control flow receivers.
14863 (call_can_make_abnormal_goto): Handle cfun->calls_setjmp
14864 in the same way as cfun->has_nonlocal_labels.
14865 (gimple_purge_dead_abnormal_call_edges): Likewise.
14866 (stmt_starts_bb_p): Make setjmp-like abnormal control flow
14867 receivers start a basic-block.
14868
01d8bf07
RB
148692013-04-19 Richard Biener <rguenther@suse.de>
14870
14871 * tree-vectorizer.h (struct _slp_instance): Move load_permutation
14872 member ...
14873 (struct _slp_tree): ... here. Make it a vector of unsigned ints.
14874 (SLP_INSTANCE_LOAD_PERMUTATION): Remove.
14875 (SLP_TREE_LOAD_PERMUTATION): Add.
14876 (vect_transform_slp_perm_load): Adjust prototype.
14877 * tree-vect-slp.c (vect_free_slp_tree): Adjust.
14878 (vect_free_slp_instance): Likewise.
14879 (vect_create_new_slp_node): Likewise.
14880 (vect_supported_slp_permutation_p): Remove.
14881 (vect_slp_rearrange_stmts): Adjust.
14882 (vect_supported_load_permutation_p): Likewise. Inline
14883 vect_supported_slp_permutation_p here.
14884 (vect_analyze_slp_instance): Compute load permutations per
14885 slp node instead of per instance.
14886 (vect_get_slp_defs): Adjust.
14887 (vect_transform_slp_perm_load): Likewise.
14888 (vect_schedule_slp_instance): Remove redundant code.
14889 (vect_schedule_slp): Remove hack for PR56270, add it ...
14890 * tree-vect-stmts.c (vectorizable_load): ... here, do not
14891 CSE loads for SLP. Adjust.
14892
ede22fc3
GY
148932013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
14894
14895 * config/arm/arm.c (load_multiple_sequence, ldm_stm_operation_p): Fix
14896 spelling in two comments.
14897
67bc84fb
GY
148982013-04-19 Greta Yorsh <Greta.Yorsh@arm.com>
14899
14900 PR target/56797
14901 * config/arm/arm.c (load_multiple_sequence): Require SP
14902 as base register for loads if SP is in the register list.
14903
e248d83f
MJ
149042013-04-19 Martin Jambor <mjambor@suse.cz>
14905
14906 PR tree-optimization/56718
14907 * ipa-cp.c (ipa_value_from_known_type_jfunc): Moved...
14908 * ipa-prop.c (ipa_binfo_from_known_type_jfunc): ...here, renamed
14909 and made public. Adjusted all callers.
14910 (ipa_intraprocedural_devirtualization): New function.
14911 * ipa-prop.h (ipa_binfo_from_known_type_jfunc): Declare.
14912 (ipa_intraprocedural_devirtualization): Likewise.
14913 * Makefile.in (tree-ssa-pre.o): Add ipa-prop.h to dependencies.
14914
4891e8f8
RB
149152013-04-19 Richard Biener <rguenther@suse.de>
14916
14917 PR tree-optimization/57000
14918 * tree-ssa-reassoc.c (pass_reassoc): Add TODO_update_ssa_only_virtuals.
14919
dad89f7c
TG
149202013-04-19 Terry Guo <terry.guo@arm.com>
14921
14922 * config/arm/cortex-m4-fpu.md (cortex_m4_v): Delete cpu unit.
14923 Replace with ...
14924 (cortex_m4_v_a, cortex_m4_v_b): ... new cpu units.
14925 (cortex_m4_v, cortex_m4_exa_va, cortex_m4_exb_vb): New reservations.
14926 (cortex_m4_fmacs): Use new reservations.
14927 (cortex_m4_f_load, cortex_m4_f_store): Likewise.
14928
72ea0d47
VM
149292013-04-18 Vladimir Makarov <vmakarov@redhat.com>
14930
f1e6512c 14931 PR rtl-optimization/56999
72ea0d47
VM
14932 * lra-coalesce.c (coalescable_pseudo_p): Remove 2nd parameter and
14933 related code.
14934 (lra_coalesce): Remove split_origin_bitmap and related code.
14935 * lra.c (lra): Coalesce after undoing inheritance. Recreate live
14936 ranges if necessary.
14937
780a5b71
UB
149382013-04-18 Uros Bizjak <ubizjak@gmail.com>
14939
14940 * config/i386/i386.c (x86_64_ms_sysv_extra_clobbered_registers):
14941 New array.
14942 (ix86_expand_call): Remove clobbered_registers array and use
14943 x86_64_ms_sysv_extra_clobbered_registers instead.
14944 * config/i386/i386.h (x86_64_ms_sysv_extra_clobbered_registers):
14945 Declare here.
14946 * config/i386/predicates.md (call_rex64_ms_sysv_operation): New
14947 predicate.
14948 * config/i386/i386.md (*call_rex64_ms_sysv): Use
14949 call_rex64_ms_sysv_operation predicate. Remove explicit clobbers.
14950 (*call_value_rex64_ms_sysv): Ditto.
14951
6f5a366a
CC
149522013-04-18 Cary Coutant <ccoutant@google.com>
14953
14954 * dwarf2out.c (output_pubnames): Check die_perennial_p of
14955 parent instead of die_mark.
14956
475b8f37
DN
149572013-04-18 Diego Novillo <dnovillo@google.com>
14958
14959 * gimple.c (create_gimple_tmp): New.
14960 (get_expr_type): New.
14961 (build_assign): New.
14962 (build_type_cast): New.
14963 * gimple.h (enum ssa_mode): Define.
14964 (gimple_seq_set_location): New.
14965 * asan.c (build_check_stmt): Change some gimple_build_* calls
780a5b71 14966 to use build_assign and build_type_cast.
475b8f37 14967
08940f33
RB
149682013-04-18 Richard Biener <rguenther@suse.de>
14969
14970 * tree-vect-data-refs.c (vect_analyze_group_access): Properly
14971 handle negative step. Remove redundant checks.
14972 (vect_create_data_ref_ptr): Avoid ICEs with non-constant steps.
14973 * tree-vect-stmts.c (vectorizable_load): Instead of asserting
14974 for negative step and grouped loads fail to vectorize.
14975
0e0f87d4
SB
149762013-04-18 Steven Bosscher <steven@gcc.gnu.org>
14977
14978 * emit-rtl.c (reset_insn_used_flags): New function.
14979 (reset_all_used_flags): Use it.
14980 (verify_insn_sharing): New function.
14981 (verify_rtl_sharing): Fix verification for SEQUENCEs.
14982
4c445590
JJ
149832013-04-18 Jakub Jelinek <jakub@redhat.com>
14984
14985 PR tree-optimization/56984
14986 * tree-vrp.c (register_edge_assert_for_2): For (x >> M) < N
14987 and (x >> M) >= N don't register any assertion if N << M is the
14988 minimum value.
14989
6873ecab
SB
149902013-04-18 Steven Bosscher <steven@gcc.gnu.org>
14991
14992 * lower-subreg.c (resolve_simple_move): If called self-recursive,
14993 do not delete_insn insns that have not yet been emitted, only
14994 unlink them with remove_insn.
14995 * df-scan.c (df_insn_delete): Revert r197492.
14996
3ccb989e
SB
149972013-04-17 Steven Bosscher <steven@gcc.gnu.org>
14998
14999 * emit-rtl.c (link_insn_into_chain): Handle chaining of SEQUENCEs.
15000 * reorg.c (emit_delay_sequence): Simplify with emit-rtl API.
15001
150022013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
0480fff0
GY
15003
15004 * config/arm/arm.md (movsicc_insn): Convert define_insn into
15005 define_insn_and_split.
15006 (and_scc,ior_scc,negscc): Likewise.
15007 (cmpsi2_addneg, subsi3_compare): Convert to named patterns.
15008
3ccb989e 150092013-04-17 Greta Yorsh <Greta.Yorsh@arm.com>
367075fe
GY
15010
15011 * config/arm/arm.c (use_return_insn): Return 0 for targets that
15012 can benefit from using a sequence of LDRD instructions in epilogue
15013 instead of a single LDM instruction.
15014
6d10a203
MLI
150152013-04-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
15016
15017 PR 45688
15018 * doc/extend.texi: Fix typo.
15019
6983e6b5
RB
150202013-04-17 Richard Biener <rguenther@suse.de>
15021
15022 * tree-vect-slp.c (vect_build_slp_tree_1): Split out from ...
15023 (vect_build_slp_tree): ... here.
15024 (vect_build_slp_tree_1): Compute which stmts of the SLP group
15025 match. Remove special-casing of mismatched complex loads.
15026 (vect_build_slp_tree): Based on the result from vect_build_slp_tree_1
15027 re-try the match with swapped commutative operands.
15028 (vect_supported_load_permutation_p): Remove special-casing of
15029 mismatched complex loads.
15030 (vect_analyze_slp_instance): Adjust.
15031
ef23e6a2
RB
150322013-04-17 Richard Biener <rguenther@suse.de>
15033
15034 PR rtl-optimization/56921
15035 * cfgloop.h (struct loop): Add simple_loop_desc member.
15036 (struct niter_desc): Mark with GTY(()).
15037 (simple_loop_desc): Do not use aux field but simple_loop_desc.
15038 * loop-iv.c (get_simple_loop_desc): Likewise.
15039 (free_simple_loop_desc): Likewise.
15040
15041 Revert
15042 2013-04-16 Richard Biener <rguenther@suse.de>
15043
15044 PR rtl-optimization/56921
15045 * loop-init.c (pass_rtl_move_loop_invariants): Add
15046 TODO_do_not_ggc_collect to todo_flags_finish.
15047 (pass_rtl_unswitch): Same.
15048 (pass_rtl_unroll_and_peel_loops): Same.
15049 (pass_rtl_doloop): Same.
15050
fc6f94f5
EB
150512013-04-17 Eric Botcazou <ebotcazou@adacore.com>
15052
15053 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): New.
15054 (decl_refs_may_alias_p): Add REF1 and REF2 parameters.
15055 Use nonoverlapping_component_refs_of_decl_p to disambiguate component
15056 references.
15057 (refs_may_alias_p_1): Adjust call to decl_refs_may_alias_p.
15058 * tree-streamer.c (record_common_node): Adjust reference in comment.
15059
10a88311
TG
150602013-04-17 Terry Guo <terry.guo@arm.com>
15061
15062 * config/arm/cortex-m4.md: Add a new bypass.
15063
6d9b7208 150642013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f3d096b0
N
15065
15066 * config/aarch64/aarch64.md (*adds_<optab><mode>_multp2):
15067 New pattern.
15068 (*subs_<optab><mode>_multp2): New pattern.
15069 (*adds_<optab><ALLX:mode>_<GPI:mode>): New pattern.
15070 (*subs_<optab><ALLX:mode>_<GPI:mode>): New pattern.
15071
6d9b7208 150722013-04-16 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
860ad33f
N
15073
15074 * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): New pattern.
15075 (*subs_mul_imm_<mode>): New pattern.
15076
18a6701e
DE
150772013-04-16 David Edelsohn <dje.gcc@gmail.com>
15078
15079 PR target/56948
15080 * config/rs6000/vsx.md (vsx_mov<mode>): Add j->r alternative.
15081 (vsx_movti_64bit): Change j->wa to O->wa. Add n->r alternative.
15082 (vsx_movti_32bit): Change j->wa to O->wa.
15083
07c37b2f
RB
150842013-04-16 Richard Biener <rguenther@suse.de>
15085
15086 PR rtl-optimization/56921
15087 * loop-init.c (pass_rtl_move_loop_invariants): Add
15088 TODO_do_not_ggc_collect to todo_flags_finish.
15089 (pass_rtl_unswitch): Same.
15090 (pass_rtl_unroll_and_peel_loops): Same.
15091 (pass_rtl_doloop): Same.
15092
0e0f87d4 150932013-04-16 Greta Yorsh <Greta.Yorsh@arm.com>
974ba22d
GY
15094
15095 * config/arm/arm.c (emit_multi_reg_push): New declaration
15096 for an existing function.
15097 (arm_emit_strd_push): New function.
15098 (arm_expand_prologue): Used here.
15099 (arm_emit_ldrd_pop): New function.
15100 (arm_expand_epilogue): Used here.
15101 (arm_get_frame_offsets): Update condition.
15102 (arm_emit_multi_reg_pop): Add a special case for load of a single
15103 register with writeback.
15104
5e8e2af4
UB
151052013-04-16 Uros Bizjak <ubizjak@gmail.com>
15106
15107 * doc/invoke.texi (i386 Option): Reword -mstack-protector-guard
15108 description.
15109
9fd9ccf7
RB
151102013-04-16 Richard Biener <rguenther@suse.de>
15111
15112 PR tree-optimization/56756
15113 * tree-ssa-loop-im.c (struct first_mem_ref_loc_1): New functor.
15114 (first_mem_ref_loc): New.
15115 (execute_sm): Place the load temporarily before a previous
15116 access instead of in the latch edge to ensure its SSA dependencies
15117 are defined at points dominating the load.
15118
96fba521
SB
151192013-04-16 Steven Bosscher <steven@gcc.gnu.org>
15120
4c8af858
SB
15121 * cfgrtl.c (cfg_layout_merge_blocks): Revert r184005, implement
15122 correct fix by moving header and footer insn to the footer of
15123 the merged basic block. Clear BB_END of the merged-away block.
15124
96fba521
SB
15125 PR middle-end/43631
15126 * emit-rtl.c (make_note_raw): New function.
15127 (link_insn_into_chain): New static inline function.
15128 (add_insn): Use it.
15129 (add_insn_before, add_insn_after): Factor insn chain linking code...
15130 (add_insn_before_nobb, add_insn_after_nobb): ...here, new functions
15131 using link_insn_into_chain.
15132 (note_outside_basic_block_p): New helper function for emit_note_after
15133 and emit_note_before.
15134 (emit_note_after): Use nobb variant of add_insn_after if the note
15135 should not be contained in a basic block.
15136 (emit_note_before): Use nobb variant of add_insn_before if the note
15137 should not be contained in a basic block.
15138 (emit_note_copy): Use make_note_raw.
15139 (emit_note): Likewise.
15140 * bb-reorder.c (insert_section_boundary_note): Remove hack to set
15141 BLOCK_FOR_INSN to NULL manually for NOTE_INSN_SWITCH_TEXT_SECTIONS.
15142 * jump.c (cleanup_barriers): Use reorder_insns_nobb to avoid making
15143 the moved barrier the tail of the basic block it follows.
15144 * var-tracking.c (pass_variable_tracking): Add TODO_verify_flow.
15145
7b8265ba
JJ
151462013-04-15 Jakub Jelinek <jakub@redhat.com>
15147
15148 PR tree-optimization/56962
15149 * gimple-ssa-strength-reduction.c (record_increment): Only set
15150 initializer if gimple_assign_rhs_code is {,POINTER_}PLUS_EXPR and
15151 either rhs1 or rhs2 is equal to c->base_expr.
15152
5185d248
RB
151532013-04-15 Richard Biener <rguenther@suse.de>
15154
15155 PR tree-optimization/56933
15156 * tree-vectorizer.h (struct _stmt_vec_info): Remove read_write_dep
15157 member.
15158 (GROUP_READ_WRITE_DEPENDENCE): Remove.
15159 (STMT_VINFO_GROUP_READ_WRITE_DEPENDENCE): Likewise.
15160 * tree-vect-data-refs.c (vect_analyze_group_access): Move
15161 dependence check ...
15162 vect_analyze_data_ref_dependence (vect_analyze_data_ref_dependence):
15163 ... here.
15164 * tree-vect-stmts.c (new_stmt_vec_info): Do not initialize
15165 GROUP_READ_WRITE_DEPENDENCE.
15166
a24243a0
AK
151672013-04-15 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15168
15169 * emit-rtl.c (reset_all_used_flags): New function.
15170 (verify_rtl_sharing): Call reset_all_used_flags before and after
15171 performing the checks.
15172
1c50eada
KT
151732013-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15174
15175 * config/arm/arm.c (const_ok_for_dimode_op): Handle AND case.
15176 * config/arm/arm.md (*anddi3_insn): Change to insn_and_split.
15177 * config/arm/constraints.md (De): New constraint.
15178 * config/arm/neon.md (anddi3_neon): Delete.
15179 (neon_vand<mode>): Expand to standard anddi3 pattern.
15180 * config/arm/predicates.md (imm_for_neon_inv_logic_operand):
15181 Move earlier in the file.
15182 (neon_inv_logic_op2): Likewise.
15183 (arm_anddi_operand_neon): New predicate.
15184
e927b6ad
RO
151852013-04-15 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15186
15187 * configure.ac (gcc_cv_ld_as_needed): Set
15188 gcc_cv_ld_as_needed_option, gcc_cv_no_as_needed_option.
15189 Use -z ignore, -z record on *-*-solaris2*.
15190 (HAVE_LD_AS_NEEDED): Update comment.
15191 (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Define.
15192 * configure: Regenerate.
15193 * config.in: Regenerate.
15194 * gcc.c (init_gcc_specs) [USE_LD_AS_NEEDED]: Use
15195 LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION.
15196 * config/sol2.h [HAVE_LD_AS_NEEDED] (USE_LD_AS_NEEDED): Define.
15197 * doc/tm.texi.in (USE_LD_AS_NEEDED): Allow for --as-needed
15198 equivalents. Fix markup.
15199 * doc/tm.texi: Regenerate.
15200
e0ea8797
AH
152012013-04-15 Andrew Hsieh <andrewhsieh.google.com>
15202
15203 * config/i386/i386.opt: New option mstack-protector-guard=.
15204 * config/i386/i386-opts.h: Add enum stack_protector_guard.
15205 * config/i386/i386.h: Define TARGET_SSP_GLOBAL_GUARD and
15206 TARGET_SSP_TLS_GUARD.
15207 * config/i386/i386.c (ix86_option_override_internal): Set
15208 ix86_stack_protector_guard.
15209 * config/i386/i386.md (stack_protect_set): Enable for
15210 TARGET_SSP_TLS_GUARD only.
15211 (stack_protect_set_<mode>): Ditto.
15212 (stack_protect_test): Ditto.
15213 (stack_protect_test_<mode>): Ditto.
15214 * doc/invoke.texi (i386 Option): Document.
15215
811b72f9
EB
152162013-04-15 Eric Botcazou <ebotcazou@adacore.com>
15217
15218 PR target/56890
15219 * config/sparc/sparc.c (enum sparc_mode_class): Add H_MODE value.
15220 (S_MODES): Set H_MODE bit.
15221 (SF_MODES): Set only S_MODE and SF_MODE bits.
15222 (DF_MODES): Set SF_MODES and only D_MODE and DF_MODE bits.
15223 (sparc_init_modes) <MODE_INT>: Set H_MODE bit for sub-word modes.
15224 <MODE_VECTOR_INT>: Do not set SF_MODE for sub-word modes.
15225 <MODE_FLOAT>: Likewise.
15226
5529fdd6
JY
152272013-04-15 Joey Ye <joey.ye@arm.com>
15228
15229 * config/arm/arm.c (thumb_far_jump_used_p): Fix typo in comments.
15230
517b1da2
JY
152312013-04-15 Joey Ye <joey.ye@arm.com>
15232
15233 * config/arm/arm.c (thumb1_final_prescan_insn): Assert lr save
15234 for real far jump.
15235 (thumb_far_jump_used_p): Count instruction size and set
15236 far_jump_used.
15237
01007ae0
EB
152382013-04-14 Eric Botcazou <ebotcazou@adacore.com>
15239
15240 * reorg.c (fill_simple_delay_slots): Reindent block of code.
15241 * resource.c (mark_target_live_regs): Reformat conditional block.
15242
c46f6580
SB
152432013-04-13 Steven Bosscher <steven@gcc.gnu.org>
15244
15245 * sched-deps.c (deps_analyze_insn): Do not check for EH_REGION insn
15246 notes, they are emitted only just before final.
15247 * sched-int.h: Include insn-attr.h before checking INSN_SCHEDULING.
15248
1f397f45
SB
152492013-04-13 Steven Bosscher <steven@gcc.gnu.org>
15250
15251 * emit-rtl.c (remove_insn): Do not call df_insn_delete here.
15252 * cfgrtl.c (delete_insn): Call it here instead.
15253 * lra-spills.c (lra_final_code_change): Use delete_insn.
15254 * haifa-sched.c (sched_remove_insn): Likewise.
15255 * sel-sched-ir.c (return_nop_to_pool): Clear INSN_DELETED_P for nops
15256 returning to the nop pool.
15257 (sel_remove_insn): Simplify the only_disconnect case via remove_insn,
15258 use delete_insn for definitive removal. Clear BLOCK_FOR_INSN.
15259
58a51369
SB
152602013-04-12 Steven Bosscher <steven@gcc.gnu.org>
15261
15262 * doc/tm.texi.in (LOOP_ALIGN): Remove loop note references.
15263 * doc/tm.texi: Regenerated.
15264
33159866
UB
152652013-04-12 Uros Bizjak <ubizjak@gmail.com>
15266
15267 * config/i386/i386.c (ix86_hard_regno_mode_ok): Use ANY_QI_REGNO_P in
15268 QImode checks.
15269
226e378f
SB
152702013-04-12 Steven Bosscher <steven@gcc.gnu.org>
15271
15272 * df-core.c (df_find_def): Compare register numbers.
15273 (df_find_use): Likewise.
15274
fafb9b18
VM
152752013-04-12 Vladimir Makarov <vmakarov@redhat.com>
15276
15277 PR target/56903
15278 * config/i386/i386.c (ix86_hard_regno_mode_ok): Add
15279 lra_in_progress for return.
15280
9a946fd6
GY
152812013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
15282
15283 * config/arm/arm.md (mov_scc,mov_negscc,mov_notscc): Convert
15284 define_insn into define_insn_and_split and emit movsicc patterns.
15285
41b83758
GY
152862013-04-12 Greta Yorsh <Greta.Yorsh@arm.com>
15287
15288 * config/arm/arm.c (gen_operands_ldrd_strd): Initialize "base".
15289
d3afd9aa
RB
152902013-04-12 Richard Biener <rguenther@suse.de>
15291
15292 * tree-pass.h (TODO_do_not_ggc_collect): New.
15293 * passes.c (execute_one_ipa_transform_pass): Honor
15294 TODO_do_not_ggc_collect.
15295 (execute_one_pass): Likewise.
15296
15297 Revert
15298 2013-04-10 Richard Biener <rguenther@suse.de>
15299
15300 * passes.c (init_optimization_passes): Remove reload pass.
15301 * ira.c (do_reload): Merge into ...
15302 (ira): ... this.
15303 (rest_of_handle_reload): Remove.
15304 (pass_reload): Likewise.
15305 * config/i386/i386.c (ix86_option_override): Refer to ira instead
15306 of reload for vzeroupper pass placement.
15307
06f9b387
JJ
153082013-04-12 Jakub Jelinek <jakub@redhat.com>
15309
15310 PR tree-optimization/56918
15311 PR tree-optimization/56920
15312 * fold-const.c (int_const_binop_1): Use op1.mul_with_sign (op2, ...)
15313 instead of op1 - op2. Pass 2 * TYPE_PRECISION (type) as second
15314 argument to rshift method. For 2 * HOST_BITS_PER_WIDE_INT precision
15315 use wide_mul_with_sign method.
15316
953094d2
RB
153172013-04-12 Richard Biener <rguenther@suse.de>
15318
15319 * gimple.c (is_gimple_constant): Vector CONSTRUCTORs should
15320 not be considered a gimple constant.
15321
bb506982
MG
153222013-04-12 Marc Glisse <marc.glisse@inria.fr>
15323
15324 * fold-const.c (const_binop): Handle vector shifts by a scalar.
15325 (fold_binary_loc): Call const_binop also for mixed vector-scalar
15326 operations.
15327
4b84d650
JJ
153282013-04-12 Manuel López-Ibáñez <manu@gcc.gnu.org>
15329 Jakub Jelinek <jakub@redhat.com>
15330
15331 * opts.c: Include diagnostic-color.h.
15332 (common_handle_option): Handle OPT_fdiagnostics_color_.
15333 * Makefile.in (OBJS-libcommon): Add diagnostic-color.o.
15334 (diagnostic.o, opts.o, pretty-print.o): Depend on diagnostic-color.h.
15335 (diagnostic-color.o): New.
15336 * common.opt (fdiagnostics-color, fdiagnostics-color=): New options.
15337 (diagnostic_color_rule): New enum.
15338 * dwarf2out.c (gen_producer_string): Don't print -fdiagnostics-color*.
15339 * langhooks.c (lhd_print_error_function): Add %r "locus" and %R around
15340 the location string.
15341 * diagnostic.def: Add 3rd argument to DEFINE_DIAGNOSTIC_KIND macros,
15342 either NULL, or color kind.
15343 * diagnostic-color.c: New file.
15344 * diagnostic-color.h: New file.
15345 * diagnostic-core.h (DEFINE_DIAGNOSTIC_KIND): Adjust macro for 3
15346 arguments.
15347 * doc/invoke.texi (-fdiagnostics-color): Document.
15348 * pretty-print.h (pp_show_color): Define.
15349 (struct pretty_print_info): Add show_color field.
15350 * diagnostic.c: Include diagnostic-color.h.
15351 (diagnostic_build_prefix): Adjust for 3 argument DEFINE_DIAGNOSTIC_KIND
15352 macros. Colorize error:, warning: etc. strings and also the location
15353 string.
15354 (diagnostic_show_locus): Colorize the caret line.
15355 * pretty-print.c: Include diagnostic-color.h.
15356 (pp_base_format): Handle %r and %R format specifiers. Colorize strings
15357 inside of %< %> quotes or quoted through q format modifier.
15358
067a1e71
AK
153592013-04-12 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15360
33159866 15361 * ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as well.
067a1e71 15362
33159866 153632013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
b056c910
N
15364
15365 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Allow NEG
15366 code in CC_NZ mode.
15367 * config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New
15368 pattern.
15369
7b55f98f
MP
153702013-04-11 Marek Polacek <polacek@redhat.com>
15371
15372 PR tree-optimization/48184
33159866 15373 * params.def (PARAM_ALIGN_THRESHOLD): Increase the minimum value to 1.
7b55f98f 15374
966b587e
EB
153752013-04-11 Eric Botcazou <ebotcazou@adacore.com>
15376
15377 * stor-layout.c (skip_simple_constant_arithmetic): Move to...
15378 * tree.c (skip_simple_constant_arithmetic): ...here and make public.
15379 (skip_simple_arithmetic): Tidy up.
15380 * tree.h (skip_simple_constant_arithmetic): Declare.
15381
33159866 153822013-04-11 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
f8bf91ab
N
15383
15384 * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Define.
15385
1d42c1ec
RB
153862013-04-11 Richard Biener <rguenther@suse.de>
15387
15388 * tree-vect-loop.c (get_initial_def_for_induction): Properly
15389 generate vector constants.
15390
4ba5ea11
RB
153912013-04-11 Richard Biener <rguenther@suse.de>
15392
15393 PR tree-optimization/56878
15394 * tree-flow.h (outermost_invariant_loop_for_expr): Declare.
15395 * tree-ssa-loop-ivopts.c (outermost_invariant_loop_for_expr):
15396 New function.
15397 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
15398 Prefer to align the DR with the most invariant base address.
15399
f0defe58
SKS
154002013-04-11 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
15401
15402 * opts.c (common_handle_option): Fix formatting and add FALLTHRU
15403 comment.
15404
d07458be
JG
154052013-04-11 James Greenhalgh <james.greenhalgh@arm.com>
15406
15407 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal): Fix
15408 floating-point vector comparisons against 0.
15409
146b8692
JJ
154102013-04-11 Jakub Jelinek <jakub@redhat.com>
15411
15412 PR tree-optimization/56899
15413 * fold-const.c (extract_muldiv_1): Apply distributive law
15414 only if TYPE_OVERFLOW_WRAPS (ctype).
15415
b8578ff7
BC
154162013-04-11 Bin Cheng <bin.cheng@arm.com>
15417
15418 PR target/56124
15419 * ira-costs.c (scan_one_insn): Check whether the source rtx of
15420 loading has side effect.
15421
0ea8a6f9
SB
154222013-04-10 Steven Bosscher <steven@gcc.gnu.org>
15423
15424 * config/sparc/sparc.c: Include tree-pass.h.
15425 (TARGET_MACHINE_DEPENDENT_REORG): Do not redefine.
15426 (sparc_reorg): Rename to sparc_do_work_around_errata. Move to
15427 head of file. Change return type. Split off gate function.
15428 (sparc_gate_work_around_errata): New function.
15429 (pass_work_around_errata): New pass definition.
15430 (insert_pass_work_around_errata) New pass insert definition to
15431 insert pass_work_around_errata just after delayed-branch scheduling.
15432 (sparc_option_override): Insert the pass.
15433 * config/sparc/t-sparc (sparc.o): Add TREE_PASS_H dependence.
15434
42e37616
DM
154352013-04-10 David S. Miller <davem@davemloft.net>
15436
89deeb3b
DM
15437 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=supersparc
15438 or -mcpu=hypersparc.
15439
42e37616
DM
15440 * target.def (cstore_mode): New hook.
15441 * target.h: Include insn-codes.h
15442 * targhooks.c: Likewise.
15443 (default_cstore_mode): New function.
15444 * targhooks.h: Declare it.
15445 * doc/tm.texi.in: New hook slot for TARGET_CSTORE_MODE.
15446 * doc/tm.texi: Rebuild.
15447 * expmed.c (emit_cstore): Obtain cstore boolean result mode using
15448 target hook, rather than inspecting the insn_data.
15449 * config/sparc/sparc.c (sparc_cstore_mode): New function.
15450 (TARGET_CSTORE_MODE): Redefine.
15451 (emit_scc_insn): When TARGET_ARCH64, emit new 64-bit boolean
15452 result patterns.
15453 * config/sparc/predicates.md (cstore_result_operand): New special
15454 predicate.
15455 * config/sparc/sparc.md (cstoresi4, cstoredi4, cstore<F:mode>4):
15456 Use it for operand 0.
15457 (*seqsi_special): Rewrite using 'P' mode iterator on operand 0.
15458 (*snesi_special): Likewise.
15459 (*snesi_zero): Likewise.
15460 (*seqsi_zero): Likewise.
15461 (*sltu_insn): Likewise.
15462 (*sgeu_insn): Likewise.
15463 (*seqdi_special): Make operand 0 and comparison operation be of
15464 DImode.
15465 (*snedi_special): Likewise.
15466 (*snedi_special_vis3): Likewise.
15467 (*neg_snesi_zero): Rename to *neg_snesisi_zero.
15468 (*neg_snesi_sign_extend): Rename to *neg_snesidi_zero.
15469 (*snesi_zero_extend): Delete, covered by 'P' mode iterator.
15470 (*neg_seqsi_zero): Rename to *neg_seqsisi_zero.
15471 (*neg_seqsi_sign_extend): Rename to *neg_seqsidi_zero.
15472 (*seqsi_zero_extend): Delete, covered by 'P' mode iterator.
15473 (*sltu_extend_sp64): Likewise.
15474 (*neg_sltu_insn): Rename to *neg_sltusi_insn.
15475 (*neg_sltu_extend_sp64): Rename to *neg_sltudi_insn.
15476 (*sgeu_extend_sp64): Delete, covered by 'P' mode iterator.
15477 (*neg_sgeu_insn): Rename to *neg_sgeusi_insn.
15478 (*neg_sgeu_extend_sp64): Rename to *neg_sgeudi_insn.
15479
95ca411e
YZ
154802013-04-10 Yufeng Zhang <yufeng.zhang@arm.com>
15481
15482 * config/aarch64/aarch64.c (aarch64_print_extension): New function.
15483 (aarch64_start_file): Use the new function.
15484
6782438d 154852013-04-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
33159866 15486 Jason Merrill <jason@redhat.com>
6782438d
SKS
15487
15488 * common.opt: Add -gdwarf.
15489 * opts.c (common_handle_option): Handle it.
15490 * gcc.c (ASM_DEBUG_SPEC): Don't expect "-2" for DWARF.
15491
bb313b93
RB
154922013-04-10 Richard Biener <rguenther@suse.de>
15493
15494 * passes.c (execute_todo): Do not call ggc_collect conditional here.
15495 (execute_one_ipa_transform_pass): But unconditionally here.
15496 (execute_one_pass): And here.
15497 (init_optimization_passes): Remove reload pass.
15498 * tree-pass.h (TODO_ggc_collect): Remove.
15499 (pass_reload): Likewise.
15500 * ira.c (do_reload): Merge into ...
15501 (ira): ... this.
15502 (rest_of_handle_reload): Remove.
15503 (pass_reload): Likewise.
15504 * config/i386/i386.c (ix86_option_override): Refer to ira instead
15505 of reload for vzeroupper pass placement.
15506 * <everywhere>: Remove TODO_ggc_collect from todo_flags_start
15507 and todo_flags_finish of all passes.
15508
793d9a16
RB
155092013-04-10 Richard Biener <rguenther@suse.de>
15510
15511 * tree-vectorizer.h (struct _slp_oprnd_info): Remove
15512 first_const_oprnd field, rename first_def_type to first_op_type.
15513 * tree-vect-slp.c (vect_create_oprnd_info): Adjust.
15514 (vect_get_and_check_slp_defs): Always use the type of the
15515 operand. Allow mixed vect_external_def, vect_constant_def types.
15516 (vect_get_constant_vectors): Handle mixed vect_external_def,
15517 vect_constant_def types.
15518
12211b99 155192013-04-10 Joern Rennecke <joern.rennecke@embecosm.com>
ee8a9b7b
JR
15520
15521 PR tree-optimization/55524
15522 * tree-ssa-math-opts.c
15523 (convert_mult_to_fma): Don't use an fms construct
15524 when we don't have an fms operation, but fnma, and it looks
15525 likely that we'll be able to use the latter.
15526
12211b99 155272013-04-10 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
6957a6f6
ZZ
15528
15529 * cif-code.def (OVERWRITABLE): Correct the comment for overwritable
15530 function.
15531 * ipa-inline.c (can_inline_edge_p): Let dump mechanism report the
15532 inline fail caused by overwritable functions.
15533
34ab4a5b
CJW
155342013-04-10 Chung-Ju Wu <jasonwucj@gmail.com>
15535
15536 * combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out
15537 unnecessary bits in the constant power of two case.
15538
abf9bfbc
RB
155392013-04-10 Richard Biener <rguenther@suse.de>
15540
15541 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove
15542 broken code swapping operands.
15543 (vect_build_slp_tree): Do not compute load permutations here.
15544 (vect_analyze_slp_instance): Compute load permutations here,
15545 after building the SLP tree.
15546
f408477e
CB
155472013-04-09 Christian Bruel <christian.bruel@st.com>
15548
15549 * config/sh/sh.md (barrier_align): Use next/prev_active_insn instead
15550 of next/prev_real_insn.
15551
5ac42672
JH
155522013-04-09 Jan Hubicka <jh@suse.cz>
15553
abf9bfbc
RB
15554 * ipa.c (cgraph_externally_visible_p, varpool_externally_visible_p):
15555 Drop aliased parameter.
5ac42672
JH
15556 (function_and_variable_visibility): Do not handle alias pairs.
15557 * cgraph.c (varpool_externally_visible_p): Update prototype.
15558 * varpool.c (varpool_add_new_variable): Update.
15559
5017f1d2
KT
155602013-04-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15561
15562 * config/arm/arm.md (minmax_arithsi_non_canon): New pattern.
15563
48eecbee
SB
155642013-04-09 Steven Bosscher <steven@gcc.gnu.org>
15565
a949cf1c
SB
15566 * sched-vis.c (print_pattern): Print SEQUENCE of insns as insns.
15567
48eecbee
SB
15568 * config/sparc/sparc.md: Use define_c_enum for "unspec" and "unspecv".
15569
75ef8e3d
MP
155702013-04-09 Marek Polacek <polacek@redhat.com>
15571
15572 PR tree-optimization/48762
33159866 15573 * params.def (PARAM_MAX_CSE_INSNS): Increase the minimum value to 1.
75ef8e3d 15574
23847df4
RB
155752013-04-09 Richard Biener <rguenther@suse.de>
15576
15577 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove code
15578 dealing with cost.
15579 (vect_build_slp_tree): Likewise.
15580 (vect_analyze_slp_cost_1, vect_analyze_slp_cost): New functions
15581 calculating the cost of a SLP instance.
15582 (vect_analyze_slp_instance): Use it from here, after building
15583 the SLP tree.
15584
ea3a0fde
JJ
155852013-04-09 Jakub Jelinek <jakub@redhat.com>
15586
15587 PR middle-end/56883
15588 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
15589 expand_omp_for_static_chunk): Use simple_p = true in
15590 force_gimple_operand_gsi calls when assigning to addressable decls.
15591
a32dfe9d
JL
155922013-04-09 Jeff Law <law@redhat.com>
15593
15594 * tree-vrp.c (simplify_cond_using_ranges): Simplify test of boolean
15595 when the boolean was created by converting a wider object which
15596 had a boolean range.
15597
d755c7ef
RB
155982013-04-09 Richard Biener <rguenther@suse.de>
15599
15600 * tree-vectorizer.h (slp_void_p): Remove.
15601 (slp_tree): Typedef before _slp_tree declaration.
15602 (struct _slp_tree): Use a vector of slp_tree as children.
15603 (vect_get_place_in_interleaving_chain): Remove.
15604 * tree-vect-data-refs.c (vect_get_place_in_interleaving_chain):
15605 Move ...
15606 * tree-vect-slp.c (vect_get_place_in_interleaving_chain): ... here
15607 and make static.
15608 (vect_free_slp_tree, vect_print_slp_tree, vect_mark_slp_stmts,
15609 vect_mark_slp_stmts_relevant, vect_slp_rearrange_stmts,
15610 vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations,
15611 vect_schedule_slp_instance, vect_remove_slp_scalar_calls):
15612 Use slp_node instead of slp_void_p and adjust.
15613
3d741091
RB
156142013-04-09 Richard Biener <rguenther@suse.de>
15615
15616 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Avoid
15617 work that is not necessary.
15618
39307ba7
JJ
156192013-04-09 Jakub Jelinek <jakub@redhat.com>
15620
15621 PR tree-optimization/56854
15622 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't
15623 forward into clobber stmts if it would change MEM_REF lhs into
15624 non-MEM_REF.
15625
343881fd
MK
156262013-04-09 Maxim Kuvyrkov <maxim@kugelworks.com>
15627
15628 * tree.c (type_hash_lookup, type_hash_add): Make static.
15629 * tree.h (type_hash_lookup, type_hash_add): Remove global declarations.
15630
3922658a
RB
156312013-04-09 Richard Biener <rguenther@suse.de>
15632
15633 * tree.h (unsave_expr_now): Remove.
15634 * tree-inline.c (mark_local_for_remap_r): Remove.
15635 (unsave_expr_1): Likewise.
15636 (unsave_r): Likewise.
15637 (unsave_expr_now): Likewise.
15638 * tree-ssa-copy.c (replace_exp_1): Use unshare_expr.
15639 (propagate_tree_value): Likewise.
15640
9fb6b620
SB
156412013-04-08 Steven Bosscher <steven@gcc.gnu.org>
15642
15643 * doc/rtl.texi (sequence): Rewrite documentation to match the
15644 current use of SEQUENCE rtl objects.
15645 * rtl.def (SEQUENCE): Likewise.
15646
15647 * doc/rtl.texi (NOTE_INSN_EH_REGION_BEG, NOTE_INSN_EH_REGION_END):
15648 Update documentation.
15649 (NOTE_INSN_LOOP_BEG, NOTE_INSN_LOOP_END, NOTE_INSN_LOOP_CONT,
15650 NOTE_INSN_LOOP_VTOP): Remove documentation for non-existing notes.
15651
15652 * reg-notes.def (REG_EH_CONTEXT): Remove unused note.
15653
8ddb5a29
TJ
156542013-04-08 Teresa Johnson <tejohnson@google.com>
15655
15656 * basic-block.h (GCOV_COMPUTE_SCALE): Define.
15657 * ipa-inline-analysis.c (param_change_prob): Use helper rounding divide
33159866 15658 methods.
8ddb5a29
TJ
15659 (estimate_edge_size_and_time): Add comment to suggest using rounding
15660 methods.
15661 (estimate_node_size_and_time): Ditto.
15662 (remap_edge_change_prob): Use helper rounding divide methods.
15663 * value-prof.c (gimple_divmod_fixed_value_transform): Ditto.
15664 (gimple_mod_pow2_value_transform): Ditto.
15665 (gimple_mod_subtract_transform): Ditto.
15666 (gimple_ic_transform): Ditto.
15667 (gimple_stringops_transform): Ditto.
15668 * stmt.c (conditional_probability): Ditto.
15669 (emit_case_dispatch_table): Ditto.
15670 * lto-cgraph.c (merge_profile_summaries): Ditto.
15671 * tree-optimize.c (execute_fixup_cfg): Ditto.
15672 * cfgcleanup.c (try_forward_edges): Ditto.
15673 * cfgloopmanip.c (scale_loop_profile): Ditto.
15674 (loopify): Ditto.
15675 (duplicate_loop_to_header_edge): Ditto.
15676 (lv_adjust_loop_entry_edge): Ditto.
15677 * tree-vect-loop.c (vect_transform_loop): Ditto.
15678 * profile.c (compute_branch_probabilities): Ditto.
15679 * cfgbuild.c (compute_outgoing_frequencies): Ditto.
15680 * lto-streamer-in.c (input_cfg): Ditto.
15681 * gimple-streamer-in.c (input_bb): Ditto.
15682 * ipa-cp.c (update_profiling_info): Ditto.
15683 (update_specialized_profile): Ditto.
15684 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): Ditto.
15685 * cfg.c (update_bb_profile_for_threading): Add comment to suggest using
33159866 15686 rounding methods.
8ddb5a29
TJ
15687 * sched-rgn.c (compute_dom_prob_ps): Ditto.
15688 (compute_trg_info): Ditto.
15689 * cfgrtl.c (force_nonfallthru_and_redirect): Ditto.
15690 (purge_dead_edges): Ditto.
15691 * loop-unswitch.c (unswitch_loop): Ditto.
15692 * cgraphclones.c (cgraph_clone_edge): Ditto.
15693 (cgraph_clone_node): Ditto.
15694 * tree-inline.c (copy_bb): Ditto.
15695 (copy_edges_for_bb): Ditto.
15696 (initialize_cfun): Ditto.
15697 (copy_cfg_body): Ditto.
15698 (expand_call_inline): Ditto.
15699
661e6bd7
KT
157002013-04-08 Kai Tietz <ktietz@redhat.com>
15701
15702 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Replaced
15703 TARGET_CYGWIN64 by TARGET_64BIT.
15704
105766f3
JR
157052013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
15706
15707 * config/epiphany/epiphany.md (GPR_1): New constant.
15708 (define_expand "mov<mode>cc): FAIL if gen_compare_reg returned 0.
15709 * config/epiphany/epiphany.c (gen_compare_reg):
15710 For flag_finite_math_only, avoid swapping operands when r0 and/or r1
15711 is already in place.
15712 Use GPR_0 / GPR_1 instead of 0/1 for r0/r1 register numbers.
15713 Don't require being called during rtl expansion; If y operlaps r0,
15714 return 0.
15715 (epiphany_compute_frame_size, epiphany_expand_prologue): Use GPR_1.
15716 (epiphany_expand_epilogue): Likewise.
15717
8afab237
JR
15718 * config/epiphany/epiphany.c (epiphany_select_cc_mode):
15719 Don't use CC_FPmode for ORDERED / UNORDERED.
33159866 15720 * config/epiphany/epiphany.md (cmpsf_ord): Make pattern unconditional.
8afab237 15721
fa7707d6
JR
15722 * config/epiphany/constraints.md (CnL): New constraint.
15723 * config/epiphany/epiphany.md (addsi3_i): Add r/r/CnL alternative.
15724 * config/epiphany/predicates.md (add_operand): Allow 1024.
15725
5138e18d
JR
15726 * config/epiphany/epiphany.md (logical_op): New code iterator.
15727 (op_mnc): New code attribute.
15728 (<op_mnc>_f, mov_f, cstoresi4): New patterns.
15729 (mov_f+1, mov_f+2): New peephole2 patterns.
15730
2ccc703d
JR
15731 * config/epiphany/epiphany.md (mov_f+2): New peephole2 pattern.
15732 (cstoresi4): Also allow re-use of zero result when doing a NE
15733 comparison to a non-zero operand.
aefb0819 15734 Use (clobber (scratch)) for first insn if the gpr output is not needed.
2ccc703d 15735
093ac0a5
JR
15736 * config/epiphany/epiphany.md (<insn_opname>v2si3):
15737 Use gen_addsi3_i / gen_subsi3_i.
15738
f223bb13
JJ
157392013-04-08 Jakub Jelinek <jakub@redhat.com>
15740
15741 PR c++/34949
15742 PR c++/50243
15743 * tree-eh.c (optimize_clobbers): Only remove clobbers if bb doesn't
15744 contain anything but clobbers, at most one __builtin_stack_restore,
15745 optionally debug stmts and final resx, and if it has at least one
15746 incoming EH edge. Don't check for SSA_NAME on LHS of a clobber.
15747 (sink_clobbers): Don't check for SSA_NAME on LHS of a clobber.
15748 Instead of moving clobbers with MEM_REF LHS with SSA_NAME address
15749 which isn't defaut definition, remove them.
15750 (unsplit_eh, cleanup_empty_eh): Use single_{pred,succ}_{p,edge}
15751 instead of EDGE_COUNT comparisons or EDGE_{PRED,SUCC}.
15752 * tree-ssa-ccp.c (execute_fold_all_builtins): Remove clobbers
15753 with MEM_REF LHS with SSA_NAME address.
15754
4481581f
JL
157552013-04-08 Jeff Law <law@redhat.com>
15756
15757 * gimple.c (canonicalize_cond_expr_cond): Rewrite x ^ y into x != y.
a32dfe9d 15758
451dabda
RB
157592013-04-08 Richard Biener <rguenther@suse.de>
15760
15761 * gimple-pretty-print.c (debug_gimple_stmt): Do not print
15762 extra newline.
15763 * tree-vect-loop.c (vect_determine_vectorization_factor): Dump
15764 determined vector type.
15765 (vect_analyze_data_refs): Likewise.
15766 (vect_get_new_vect_var): Adjust.
15767 (vect_create_destination_var): Preserve SSA name versions.
15768 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Do
15769 not dump anything here.
15770
3b088b47
JR
157712013-04-08 Joern Rennecke <joern.rennecke@embecosm.com>
15772
15773 * config/epiphany/epiphany.h (struct GTY (()) machine_function):
15774 Add member lr_slot_known.
15775 * config/epiphany/epiphany.md (reload_insi_ra): Compute lr_slot_offs
15776 if necessary.
15777 * config/epiphany/epiphany.c (epiphany_compute_frame_size):
15778 Remove code that sets lr_slot_offset according to what a previous
15779 version of epiphany_emit_save_restore used to do.
15780 (epiphany_emit_save_restore): When doing an lr save or restore,
15781 set/verify lr_slot_known and lr_slot_offset.
15782
d8484d41
XQ
157832013-04-08 Xinyu Qi <xyqi@marvell.com>
15784
33159866
UB
15785 PR target/54338
15786 * config/arm/arm.h (REG_CLASS_CONTENTS): Include IWMMXT_GR_REGS
d8484d41
XQ
15787 in ALL_REGS.
15788
481be1c4
RB
157892013-04-08 Richard Biener <rguenther@suse.de>
15790
15791 * alias.c (find_base_term): Fix thinko in previous change.
15792
401f3a81
JJ
157932013-04-08 Jakub Jelinek <jakub@redhat.com>
15794
15795 * tree-loop-distribution.c (const_with_all_bytes_same): New function.
15796 (generate_memset_builtin): Only handle integer_all_onesp as -1 val if
15797 TYPE_PRECISION is equal to mode bitsize. Use const_with_all_bytes_same
15798 if possible to compute val.
15799 (classify_partition): Verify CONSTRUCTOR doesn't have any elts.
15800 For QImode integers don't require anything about precision. Use
15801 const_with_all_bytes_same to find out if the constant doesn't have
15802 repeated bytes in it.
15803
03ed99a8
AK
158042013-04-08 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
15805
15806 * config/s390/s390.c (s390_expand_insv): Only accept insertions
15807 within mode size.
15808
781b2e62
MP
158092013-04-08 Marek Polacek <polacek@redhat.com>
15810
15811 PR rtl-optimization/48182
15812 * params.def (PARAM_MIN_CROSSJUMP_INSNS): Increase the minimum
15813 value to 1.
15814
27e430a2
JDA
158152013-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
15816
15817 PR target/55487
15818 * config/pa/pa.c (legitimize_pic_address): Before incrementing label
15819 nuses, make sure we have a label.
15820
4902aa64
BS
158212013-04-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15822
15823 PR target/56843
15824 * config/rs6000/rs6000.c (rs6000_emit_swdiv_high_precision): Remove.
15825 (rs6000_emit_swdiv_low_precision): Remove.
15826 (rs6000_emit_swdiv): Rewrite to handle between one and four
15827 iterations of Newton-Raphson generally; modify required number of
15828 iterations for some cases.
15829 * config/rs6000/rs6000.h (RS6000_RECIP_HIGH_PRECISION_P): Remove.
15830
7bca81dc
SB
158312013-04-05 Steven Bosscher <steven@gcc.gnu.org>
15832
15833 * bb-reorder.c (fix_crossing_unconditional_branches): Remove a
15834 set-but-unused variable.
15835
15836 * cgraph.c (cgraph_release_function_body): Clear cfun->cfg to make
15837 basic blocks of released function bodies garbage-collectable.
15838
15839 * ree.c (find_and_remove_re): Do not call df_finish_pass here.
15840 (struct rtl_opt_pass): Add TODO_df_finish.
15841
15842 * rtl.def (DEFINE_SUBST, DEFINE_SUBST_ATTR): Add documentation.
15843
4542a38a
GY
158442013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
15845
15846 * config/arm/constraints.md (q): New constraint.
15847 * config/arm/ldrdstrd.md: New file.
15848 * config/arm/arm.md (ldrdstrd.md) New include.
15849 (arm_movdi): Use "q" instead of "r" constraint
15850 for double-word memory access.
15851 (movdf_soft_insn): Likewise.
15852 * config/arm/vfp.md (movdi_vfp): Likewise.
15853 * config/arm/t-arm (MD_INCLUDES): Add ldrdstrd.md.
33159866 15854 * config/arm/arm-protos.h (gen_operands_ldrd_strd): New declaration.
4542a38a
GY
15855 * config/arm/arm.c (gen_operands_ldrd_strd): New function.
15856 (mem_ok_for_ldrd_strd): Likewise.
15857 (output_move_double): Update assertion.
15858
2385b218
GY
158592013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
15860
15861 * config/arm/arm.md: Comment on splitting Thumb1 patterns.
15862
75fe1cb5
GY
158632013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
15864
15865 * config/arm/arm.md (arm_smax_insn): Convert define_insn into
15866 define_insn_and_split.
15867 (arm_smin_insn,arm_umaxsi3,arm_uminsi3): Likewise.
15868
dd660e8e
GY
158692013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
15870
15871 * config/arm/arm.md (arm_ashldi3_1bit): Convert define_insn into
15872 define_insn_and_split.
33159866 15873 (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
dd660e8e
GY
15874 (shiftsi3_compare): New pattern.
15875 (rrx): New pattern.
15876 * config/arm/unspecs.md (UNSPEC_RRX): New.
15877
045e472c
GY
158782013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
15879
15880 * config/arm/arm.md (negdi_extendsidi): New pattern.
15881 (negdi_zero_extendsidi): Likewise.
15882
3f3bf1a8
GY
158832013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
15884
15885 * config/arm/arm.md (andsi_iorsi3_notsi): Convert define_insn into
15886 define_insn_and_split.
15887 (arm_negdi2,arm_abssi2,arm_neg_abssi2): Likewise.
15888 (arm_cmpdi_insn,arm_cmpdi_unsigned): Likewise.
15889
b0b49556
GY
158902013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
15891
15892 * config/arm/arm.md (arm_subdi3): Convert define_insn into
15893 define_insn_and_split.
15894 (subdi_di_zesidi,subdi_di_sesidi): Likewise.
15895 (subdi_zesidi_di,subdi_sesidi_di,subdi_zesidi_zesidi): Likewise.
15896
d633dd84
GY
158972013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
15898
15899 * config/arm/arm.md (subsi3_carryin): New pattern.
15900 (subsi3_carryin_const): Likewise.
15901 (subsi3_carryin_compare,subsi3_carryin_compare_const): Likewise.
15902 (subsi3_carryin_shift,rsbsi3_carryin_shift): Likewise.
15903
f4499066
GY
159042013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
15905
15906 * config/arm/arm.md (incscc,arm_incscc,decscc,arm_decscc): Delete.
15907
ceef6fd9
GY
159082013-04-05 Greta Yorsh <Greta.Yorsh@arm.com>
15909
15910 * config/arm/arm.md (addsi3_carryin_<optab>): Set attribute predicable.
d633dd84 15911 (addsi3_carryin_alt2_<optab>,addsi3_carryin_shift_<optab>): Likewise.
ceef6fd9 15912
ddbdd8a7
KT
159132013-04-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15914
15915 * config/arm/arm.c (arm_expand_builtin): Change fcode
15916 type to unsigned int.
15917
8456d78a
RR
159182013-04-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
15919
15920 * doc/invoke.texi (ARM Options): Document cortex-a53 support.
15921
526c230f
ILT
159222013-04-04 Ian Lance Taylor <iant@google.com>
15923
33159866
UB
15924 * doc/standards.texi (Standards): The Go frontend supports the Go 1
15925 language standard.
526c230f 15926
3cfbe04d
SB
159272013-04-04 Steven Bosscher <steven@gcc.gnu.org>
15928
15929 PR middle-end/56729
15930 * df-scan.c (df_insn_delete): Disable failing assert.
15931
dfa3f8d0
KT
159322013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15933
15934 * config/arm/arm-protos.h (arm_builtin_vectorized_function):
15935 New function prototype.
15936 * config/arm/arm.c (TARGET_VECTORIZE_BUILTINS): Define.
15937 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise.
15938 (arm_builtin_vectorized_function): New function.
15939
f7837758
KT
159402013-04-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15941
15942 * config/arm/arm_neon_builtins.def: New file.
15943 * config/arm/arm.c (neon_builtin_data): Move contents to
15944 arm_neon_builtins.def.
15945 (enum arm_builtins): Include neon builtin definitions.
15946 (ARM_BUILTIN_NEON_BASE): Move from enum to macro.
33159866 15947 * config/arm/t-arm (arm.o): Add dependency on arm_neon_builtins.def.
f7837758 15948
39c1b6db
MP
159492013-04-04 Marek Polacek <polacek@redhat.com>
15950
15951 PR tree-optimization/48186
15952 * predict.c (maybe_hot_frequency_p): Return false if
15953 HOT_BB_FREQUENCY_FRACTION is 0.
15954 (cgraph_maybe_hot_edge_p): Likewise.
15955
314f64eb
RB
159562013-04-04 Richard Biener <rguenther@suse.de>
15957
15958 PR tree-optimization/56826
15959 * tree-vect-slp.c (vect_build_slp_tree): Compute ncopies
15960 more accurately.
15961
51a905b2
RB
159622013-04-04 Richard Biener <rguenther@suse.de>
15963
15964 PR tree-optimization/56213
15965 * tree-vect-data-refs.c (vect_check_strided_load): Remove.
33159866 15966 (vect_analyze_data_refs): Allow all non-nested loads as strided loads.
51a905b2 15967
f1bf4f3a
RB
159682013-04-04 Richard Biener <rguenther@suse.de>
15969
15970 PR tree-optimization/56837
15971 * tree-loop-distribution.c (classify_partition): For non-zero
15972 values require that the value has the same precision as its
15973 mode to be useful as memset value.
15974
0bca7ded
NC
159752013-04-03 Nick Clifton <nickc@redhat.com>
15976
33159866 15977 * config/v850/v850e3v5.md (fmasf4): Use fmaf.s on E3V5 architectures.
0bca7ded
NC
15978 (fmssf4): Use fmsf.s on E3V5 architectures.
15979 (fnmasf4): Use fnmaf.s on E3V5 architectures.
15980 (fnmssf4): Use fnmsf.s on E3V5 architectures.
15981
b4019227
JL
159822013-04-03 Jeff Law <law@redhat.com>
15983
15984 * Makefile.in (lra-constraints.o): Depend on $(OPTABS_H).
15985 (lra-eliminations.o): Likewise.
15986
f57ddb5b
TJ
159872013-04-03 Teresa Johnson <tejohnson@google.com>
15988
15989 * gcov-io.c (compute_working_sets): Moved most of body of old
33159866 15990 compute_working_sets here from profile.c.
f57ddb5b 15991 * gcov-io.h (NUM_GCOV_WORKING_SETS): Moved here from profile.c.
33159866
UB
15992 (gcov_working_set_t): Moved typedef here from basic-block.h
15993 (compute_working_set): Declare.
f57ddb5b
TJ
15994 * profile.c (NUM_GCOV_WORKING_SETS): Moved to gcov-io.h.
15995 (get_working_sets): Renamed from compute_working_set,
33159866 15996 replace most of body with call to new compute_working_sets.
f57ddb5b 15997 (get_exec_counts): Replace call to compute_working_sets
33159866
UB
15998 to get_working_sets.
15999 * profile.h (get_working_sets): Renamed from compute_working_set.
f57ddb5b 16000 * lto-cgraph.c (input_symtab): Replace call to compute_working_sets
33159866 16001 to get_working_sets.
f57ddb5b
TJ
16002 * basic-block.h (gcov_working_set_t): Moved to gcov-io.h.
16003 * gcov-dump.c (dump_working_sets): New function.
16004
12211b99 160052013-04-03 Kenneth Zadeck <zadeck@naturalbridge.com>
5e0919f1
KZ
16006
16007 * hwint.c (sext_hwi, zext_hwi): New functions.
16008 * hwint.h (HOST_BITS_PER_HALF_WIDE_INT, HOST_HALF_WIDE_INT,
16009 HOST_HALF_WIDE_INT_PRINT, HOST_HALF_WIDE_INT_PRINT_C,
16010 HOST_HALF_WIDE_INT_PRINT_DEC, HOST_HALF_WIDE_INT_PRINT_DEC_C,
16011 HOST_HALF_WIDE_INT_PRINT_UNSIGNED, HOST_HALF_WIDE_INT_PRINT_HEX,
16012 HOST_HALF_WIDE_INT_PRINT_HEX_PURE): New symbols.
16013 (sext_hwi, zext_hwi): New functions.
0bca7ded 16014
be672e08
JL
160152013-04-03 Jeff Law <law@redhat.com>
16016
16017 PR tree-optimization/56799
33159866
UB
16018 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Bring
16019 back test for widening conversion erroneously dropped in prior change.
be672e08 16020
9d821fa5
KT
160212013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16022
16023 PR target/56809
16024 * config/aarch64/aarch64.c (is_jump_table): Use next_active_insn
16025 instead of next_real_insn.
16026
71c581e7
MP
160272013-04-03 Marek Polacek <polacek@redhat.com>
16028
16029 PR sanitizer/55702
33159866 16030 * tsan.c (instrument_func_exit): Allow BUILT_IN_RETURN functions.
71c581e7 16031
4a32ef80
KT
160322013-04-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16033
16034 PR target/56809
16035 * config/arm/arm.c (is_jump_table): Use next_active_insn instead of
16036 next_real_insn.
16037 (thumb1_output_casesi): Likewise.
16038 (thumb2_output_casesi): Likewise.
16039
1b2253d4
RB
160402013-04-03 Richard Biener <rguenther@suse.de>
16041
16042 PR tree-optimization/56817
16043 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely):
16044 Split out ...
16045 (tree_unroll_loops_completely_1): ... new function to manually
16046 walk the loop tree, properly defering outer loops of unrolled
16047 loops to later iterations.
16048
38000232
MG
160492013-04-03 Marc Glisse <marc.glisse@inria.fr>
16050
16051 * tree-vect-stmts.c (vectorizable_store): Accept BIT_FIELD_REF.
16052 (vectorizable_load): Likewise.
16053 * tree-vect-slp.c (vect_build_slp_tree): Likewise.
16054 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Handle VECTOR_TYPE.
16055
3fa35298
MG
160562013-04-03 Marc Glisse <marc.glisse@inria.fr>
16057
16058 * tree-flow-inline.h (get_addr_base_and_unit_offset_1): Handle
16059 BIT_FIELD_REF.
16060
b3d45ff0
UW
160612013-04-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16062
16063 * config/spu/spu.c (emit_nop_for_insn): Handle JUMP_TABLE_DATA.
16064
ec9202a8
BC
160652013-04-03 Bin Cheng <bin.cheng@arm.com>
16066
16067 * rtl.h (AUTO_INC_DEC): Fix typo of HAVE_POST_MODIFY_DISP.
16068
6805bd36
MG
160692013-04-03 Marc Glisse <marc.glisse@inria.fr>
16070
16071 PR tree-optimization/56790
33159866
UB
16072 * fold-const.c (fold_ternary_loc) <VEC_COND_EXPR>: Add constant
16073 folding.
6805bd36 16074
da694a77
MG
160752013-04-03 Marc Glisse <marc.glisse@inria.fr>
16076
16077 * simplify-rtx.c (simplify_binary_operation_1) <VEC_SELECT>:
16078 Handle VEC_MERGE.
16079 (simplify_ternary_operation) <VEC_MERGE>: Use unsigned HOST_WIDE_INT
16080 for masks. Test for side effects. Handle nested VEC_MERGE. Handle
16081 equal arguments.
16082
4e7d7b3d
JJ
160832013-04-03 Jakub Jelinek <jakub@redhat.com>
16084
16085 PR c/19449
16086 * tree.h (force_folding_builtin_constant_p): New decl.
16087 * builtins.c (force_folding_builtin_constant_p): New variable.
16088 (fold_builtin_constant_p): Fold immediately also if
16089 force_folding_builtin_constant_p.
16090
e6c9d234
RB
160912013-04-03 Richard Biener <rguenther@suse.de>
16092
16093 PR tree-optimization/56812
16094 * tree-vect-data-refs.c (vect_slp_analyze_data_ref_dependence):
16095 DRs of the same interleaving chain are independent.
16096
984d07dd
JM
160972013-04-02 Jason Merrill <jason@redhat.com>
16098
16099 * gdbinit.in (pbb): Use debug fn.
16100
622849c9
LC
161012013-04-02 Lawrence Crowl <crowl@google.com>
16102
16103 * sese.h (struct ivtype_map_elt_s): Remove unused.
16104 (extern debug_ivtype_map): Remove unused.
16105 (extern eq_ivtype_map_elts): Remove unused.
16106 * sese.c (debug_ivtype_map): Removed unused.
16107 (debug_ivtype_map_1): Removed unused.
16108 (debug_ivtype_elt): Remove unused.
16109 (eq_ivtype_map_elts): Remove unused.
16110
16111
82c0e1a0
KT
161122013-04-02 Kai Tietz <ktietz@redhat.com>
16113
16114 PR target/52790
16115 * config/i386/cygming.h (SUB_TARGET_RECORD_STUB): New sub-target macro.
16116 * config/i386/i386-protos.h (i386_pe_record_stub): Add new prototype.
33159866
UB
16117 * config/i386/i386.c (legitimize_pe_coff_extern_decl): New static
16118 function.
82c0e1a0
KT
16119 (legitimize_pe_coff_symbol): Likewise.
16120 (is_imported_p): New helper-function.
16121 (ix86_option_override_internal): Make MEDIUM_PIC the default code-model
16122 for Windows x64 targets.
16123 (ix86_expand_prologue): Optimize for pe-coff targets.
16124 (ix86_expand_split_stack_prologue): Adjust for pe-coff targets.
16125 (legitimate_pic_address_disp_p): Adjust for x64 pe-coff to support
16126 medium/large code-model.
16127 (legitimize_pic_address): Likewise.
16128 (legitimize_tls_address): Likewise.
16129 (ix86_expand_call): Likewise.
16130 (x86_output_mi_thunk): Likewise.
16131 (get_dllimport_decl): Add new beimport argument.
16132 (construct_plt_address): Don't assert for x64 pe-coff targets.
16133 * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Adjust for x64 pe-coff
16134 targets.
16135 (SYMBOL_FLAG_STUBVAR): New macro.
16136 (SYMBOL_REF_STUBVAR_P): Likewise.
16137 * config/i386/winnt.c (stub_list): New structure.
16138 (stub_head): New local variable.
16139 (i386_pe_record_stub): New function.
16140 (i386_pe_file_end): Emit refptr-stubs.
16141
5d751b0c
JJ
161422013-04-02 Jakub Jelinek <jakub@redhat.com>
16143
09bb4c99
JJ
16144 PR rtl-optimization/56745
16145 * ifcvt.c (cond_exec_find_if_block): Don't try to optimize
16146 if then_bb has no successors and else_bb is EXIT_BLOCK_PTR.
16147
a1d8947a
JJ
16148 PR c++/34949
16149 * tree-ssa-alias.c (stmt_kills_ref_p_1): If base != ref->base
16150 and both of them are MEM_REFs, just compare first argument for
16151 equality and attempt to deal even with differing offsets.
16152
5d751b0c
JJ
16153 PR c++/34949
16154 * tree-cfg.c (verify_gimple_assign_single): Allow lhs
16155 of gimple_clobber_p to be MEM_REF.
16156 * gimplify.c (gimplify_modify_expr): Gimplify *to_p of
16157 an assignment from TREE_CLOBBER_P. Allow it to be MEM_REF
16158 after gimplification.
16159 * asan.c (get_mem_ref_of_assignment): Don't instrument
16160 gimple_clobber_p stmts.
16161 * tree-ssa-dse.c (dse_optimize_stmt): Allow DSE of
16162 gimple_clobber_p stmt if they have MEM_REF lhs and
16163 are dead because of another gimple_clobber_p stmt.
16164 * tree-ssa-live.c (clear_unused_block_pointer): Treat
16165 gimple_clobber_p stmts like debug stmts.
16166 (remove_unused_locals): Remove clobbers with MEM_REF lhs
16167 that refer to unused VAR_DECLs or uninitialized values.
16168 * tree-sra.c (sra_ipa_reset_debug_stmts): Also remove
16169 gimple_clobber_p stmts if they refer to removed parameters.
16170 (get_repl_default_def_ssa_name, sra_ipa_modify_expr): Fix up
16171 formatting.
16172
e594716a
UB
161732013-04-02 Uros Bizjak <ubizjak@gmail.com>
16174
16175 * config/i386/i386.md (*testqi_ext_3): Merge with *testqi_ext_3_rex64
16176 using SWI48 mode attribute.
16177
7a80735b
WM
161782013-04-02 Wei Mi <wmi@google.com>
16179
16180 * config/i386/i386.c (ix86_rtx_costs): Set proper rtx cost for
16181 ashl<mode>3_mask, *<shift_insn><mode>3_mask and
16182 *<rotate_insn><mode>3_mask in i386.md.
16183
f423a9e4
AI
161842013-04-02 Alexander Ivchenko <alexander.ivchenko@intel.com>
16185
16186 * config.gcc (arm*-*-linux-*): Remove duplicate t-linux-android.
16187
90eb75f2
RB
161882013-04-02 Richard Biener <rguenther@suse.de>
16189
16190 PR tree-optimization/56778
16191 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
16192 Runtime alias tests are not supported for gather loads.
16193 * tree-vect-loop-manip.c (vect_loop_versioning): Insert
16194 stmts referenced from SSA operands before updating SSA form.
16195
d8c69a92
IC
161962013-04-02 Ian Caulfield <ian.caulfield@arm.com>
16197 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
16198
16199 * config/arm/arm-arches.def (armv8-a): Default to cortex-a53.
e594716a
UB
16200 * config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md.
16201 * config/arm/cortex-a53.md: New file.
16202 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53.
16203 * config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53.
16204 * config/arm/arm.c (arm_issue_rate): Likewise.
16205 * config/arm/arm-tune.md: Regenerate
16206 * config/arm/arm-tables.opt: Regenerate.
16207 * config/arm/arm-cores.def: Add cortex-a53.
d8c69a92 16208
239eb04c
ZC
162092013-04-02 Zhenqiang Chen <zhenqiang.chen@arm.com>
16210
16211 * config/arm/uclinux-elf.h: Add %L to LINK_GCC_C_SEQUENCE_SPEC for
16212 non-static link.
16213
c902d3c8
SN
162142013-04-02 Sofiane Naci <sofiane.naci@arm.com>
16215
d8c69a92
IC
16216 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add variants for
16217 scalar load/store operations using B/H registers.
c902d3c8
SN
16218 (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): Likewise.
16219
051d0e2f
SN
162202013-04-02 Sofiane Naci <sofiane.naci@arm.com>
16221
16222 * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add alternatives for
16223 scalar move.
16224 * config/aarch64/aarch64.c
16225 (aarch64_simd_scalar_immediate_valid_for_move): New.
16226 * config/aarch64/aarch64-protos.h
16227 (aarch64_simd_scalar_immediate_valid_for_move): New.
16228 * config/aarch64/constraints.md (Dh, Dq): New.
16229 * config/aarch64/iterators.md (hq): New.
16230
0ee1e3d9
EB
162312013-04-02 Eric Botcazou <ebotcazou@adacore.com>
16232
16233 * reorg.c (get_branch_condition): Deal with conditional returns.
16234 (fill_simple_delay_slots): Remove dead code dealing with jumps.
16235
136fb3f7
WM
162362013-04-01 Wei Mi <wmi@google.com>
16237
16238 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite as define_insn.
16239 Truncate operand 2 using %b asm operand modifier.
16240 (*<shift_insn><mode>3_mask): Ditto.
16241 (*<rotate_insn><mode>3_mask): Ditto.
16242
6388c738
SB
162432013-04-01 Steven Bosscher <steven@gcc.gnu.org>
16244
16245 PR middle-end/56798
16246 * cfgbuild.c (inside_basic_block_p): Restore check broken at r197234.
16247
f7a4d826
KK
162482013-03-31 Kaz Kojima <kkojima@gcc.gnu.org>
16249
16250 * config/sh/sh.md (casesi_worker_1): Use next_active_insn instead
16251 of next_real_insn.
16252 (casesi_worker_2, casesi_shift_media, casesi_load_media): Likewise.
16253
4b943a49
LC
162542013-03-30 Lawrence Crowl <crowl@google.com>
16255
16256 * dse.c (clear_alias_sets): Remove never set.
16257 (disqualified_clear_alias_sets): Remove never set.
16258 (clear_alias_mode_pool): Remove never set.
16259 (dse_step0): Remove condition that is never true.
16260 (canon_address): Remove condition that is never true.
16261 (dse_step7): Remove condition that is never true.
16262 (rest_of_handle_dse): Remove condition that is never true.
16263 (rest_of_handle_dse::did_global): Remove never read from above.
16264 (dse_step2_spill): Remove never called from above.
16265 (dse_step5_spill): Remove never called from above.
16266
39718607
SB
162672013-03-30 Steven Bosscher <steven@gcc.gnu.org>
16268
da5c6bde
SB
16269 * doc/md.texi (Standard Names) <casesi>: Update documentation for
16270 JUMP_TABLE_DATA changes.
16271 * doc/tm.texi.in (Dispatch Tables) <ASM_OUTPUT_CASE_LABEL>: Likewise.
16272 * doc/rtl.texi (Flags) <INSN_DELETED_P, SCHED_GROUP_P>: Likewise.
16273 (Insns) <jump_table_data>: New entry.
16274 * doc/tm.texi: Regenerate.
16275
39718607
SB
16276 * cfgrtl.c (fixup_reorder_chain): Do not emit barriers to BB_FOOTER.
16277
16278 * postreload-gcse.c (bb_has_well_behaved_predecessors): Correct test
16279 for table jump at the end of a basic block using tablejump_p.
16280 * targhooks.c (default_invalid_within_doloop): Likewise.
16281 * config/rs6000/rs6000.c (TARGET_INVALID_WITHIN_DOLOOP): Remove
16282 target hook implementation that is identical to the default hook.
16283 (rs6000_invalid_within_doloop): Remove.
16284
16285 * bb-reorder.c (fix_crossing_unconditional_branches): Remove set but
16286 unused variable from tablejump_p call.
16287
16288 * rtl.def (JUMP_TABLE_DATA): New RTX_INSN object.
16289 * rtl.h (RTX_PREV, RTX_NEXT): Adjust for new JUMP_TABLE_DATA.
16290 (INSN_DELETED_P): Likewise.
16291 (emit_jump_table_data): New prototype.
16292 * gengtype.c (adjust_field_rtx_def): Handle JUMP_TABLE_DATA fields
16293 after 4th as unused.
16294 * print-rtl.c (print_rtl): Handle JUMP_TABLE_DATA.
16295 * sched-vis.c (print_insn): Likewise.
16296 * emit-rtl.c (active_insn_p): Consider JUMP_TABLE_DATA an active
16297 insn for compatibility with back ends that use next_active_insn to
16298 identify jump table data.
16299 (set_insn_deleted): Remove no longer useful JUMP_TABLE_DATA_P check.
16300 (remove_insn): Likewise.
16301 (emit_insn): Do not accept JUMP_TABLE_DATA objects in insn chains
16302 to be emitted.
16303 (emit_debug_insn, emit_jump_insn, emit_call_insn, emit_label): Idem.
16304 (emit_jump_table_data): New function.
16305
16306 * cfgbuild.c (inside_basic_block_p): A JUMP_INSN is always inside a
16307 basic block, a JUMP_TABLE_DATA never is.
16308 (control_flow_insn_p): JUMP_TABLE_DATA is not a control flow insn.
16309 * cfgrtl.c (duplicate_insn_chain): Split handling of JUMP_TABLE_DATA
16310 off from code handling real insns.
16311 * final.c (get_attr_length_1): Simplify for JUMP_INSNs.
16312 * function.c (instantiate_virtual_regs): Remove JUMP_TABLE_DATA_P
16313 test, now redundant because JUMP_TABLE_DATA is not an INSN_P insn.
16314 * gcse.c (insert_insn_end_basic_block): Likewise, JUMP_TABLE_DATA_P
16315 is not a NONDEBUG_INSN_P.
16316 * ira-costs.c (scan_one_insn): Likewise.
16317 * jump.c (mark_all_labels): Likewise.
16318 (mark_jump_label_1): Likewise.
16319 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
16320 * lra.c (get_insn_freq): Expect all insns reaching here to be in
16321 a basic block.
16322 (check_rtl): Remove JUMP_TABLE_DATA_P test, not a NONDEBUG_INSN_P insn.
16323 * predict.c (expensive_function_p): Use FOR_BB_INSNS.
16324 * reload1.c (calculate_needs_all_insns): Call set_label_offsets for
16325 JUMP_TABLE_DATA_P insns.
16326 (calculate_elim_costs_all_insns): Likewise.
16327 (set_label_offsets): Recurse on the PATTERN of JUMP_TABLE_DATA insns.
16328 (elimination_costs_in_insn): Remove redundant JUMP_TABLE_DATA_P test.
16329 (delete_output_reload): Code style fixups.
16330 * reorg.c (dbr_schedule): Move JUMP_TABLE_DATA_P up to avoid setting
16331 insn flags on this non-insn.
16332 * sched-rgn.c (add_branch_dependences): Treat JUMP_TABLE_DATA insns
16333 as scheduling barriers, for pre-change compatibility.
16334 * stmt.c (emit_case_dispatch_table): Emit jump table data not as
16335 JUMP_INSN objects but instead as JUMP_TABLE_DATA objects.
16336
16337 * config/alpha/alpha.c (alpha_does_function_need_gp): Remove
16338 redundant JUMP_TABLE_DATA_P test.
16339 * config/arm/arm.c (thumb_far_jump_used_p): Likewise.
16340 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
16341 (frv_for_each_packet): Likewise.
16342 * config/i386/i386.c (min_insn_size): Likewise.
16343 (ix86_avoid_jump_mispredicts): Likewise.
16344 * config/m32r/m32r.c (m32r_is_insn): Likewise.
16345 * config/mep/mep.c (mep_reorg_erepeat): Likewise.
16346 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
16347 (mips16_insn_length): Robustify.
16348 (mips_has_long_branch_p): Remove redundant JUMP_TABLE_DATA_P test.
16349 (mips16_split_long_branches): Likewise.
16350 * config/pa/pa.c (pa_combine_instructions): Likewise.
16351 * config/rs6000/rs6000.c (get_next_active_insn): Treat
16352 JUMP_TABLE_DATA objects as active insns, like in active_insn_p.
16353 * config/s390/s390.c (s390_chunkify_start): Treat JUMP_TABLE_DATA
16354 as contributing to pool range lengths.
16355 * config/sh/sh.c (find_barrier): Restore check for ADDR_DIFF_VEC.
16356 Remove redundant JUMP_TABLE_DATA_P test.
16357 (sh_loop_align): Likewise.
16358 (split_branches): Likewise.
16359 (sh_insn_length_adjustment): Likewise.
16360 * config/spu/spu.c (get_branch_target): Likewise.
16361
0208f7da
JH
163622013-03-29 Jan Hubicka <jh@suse.cz>
16363
16364 * lto-cgraph.c (output_profile_summary, input_profile_summary): Use
16365 gcov streaming; stream hot bb threshold to ltrans.
16366 * predict.c (get_hot_bb_threshold): Break out from ....
16367 (maybe_hot_count_p): ... here.
16368 (set_hot_bb_threshold): New function.
16369 * lto-section-in.c (lto_section_name): Add profile.
16370 * profile.h (get_hot_bb_threshold, set_hot_bb_threshold): Declare.
16371 * ipa.c: Include hash-table.h, tree-inline.h, profile.h, lto-streamer.h
16372 and data-streamer.h
16373 (histogram_entry): New structure.
16374 (histogram, histogram_pool): New global vars.
16375 (histogram_hash): New structure.
16376 (histogram_hash::hash): New method.
16377 (histogram_hash::equal): Likewise.
16378 (account_time_size): New function.
16379 (cmp_counts): New function.
16380 (dump_histogram): New function.
16381 (ipa_profile_generate_summary): New function.
16382 (ipa_profile_write_summary): New function.
16383 (ipa_profile_read_summary): New function.
16384 (ipa_profile): Decide on threshold.
e594716a
UB
16385 (pass_ipa_profile): Add ipa_profile_write_summary and
16386 ipa_profile_read_summary.
0208f7da
JH
16387 * Makefile.in (ipa.o): Update dependencies.
16388 * lto-streamer.h (LTO_section_ipa_profile): New section.
16389
5a6ccc94
GDR
163902013-03-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
16391
16392 * tree.h (VAR_P): New.
16393
39385fa6
PC
163942013-03-29 Paolo Carlini <paolo.carlini@oracle.com>
16395
16396 PR lto/56777
16397 * doc/invoke.texi ([-fwhole-program]): Fix typo.
16398
34f0d87a
SB
163992013-03-29 Steven Bosscher <steven@gcc.gnu.org>
16400
16401 * cfgbuild.c (inside_basic_block_p): Use JUMP_TABLE_DATA_P in lieu
16402 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
16403 (control_flow_insn_p): Likewise.
16404 * cfgrtl.c (duplicate_insn_chain): Likewise.
16405 * final.c (get_attr_length_1): Likewise.
16406 (shorten_branches): Likewise.
16407 (final_scan_insn): Likewise.
16408 * function.c (instantiate_virtual_regs): Likewise.
16409 * gcse.c (insert_insn_end_basic_block): Likewise.
16410 * ira-costs.c (scan_one_insn): Likewise.
16411 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
16412 * lra.c (check_rtl): Likewise.
16413 * reload1.c (elimination_costs_in_insn): Likewise.
16414 * reorg.c (follow_jumps): Likewise.
16415
16416 * config/arm/arm.c (is_jump_table): Use JUMP_TABLE_DATA_P in lieu
16417 of tests for JUMP_P and a ADDR_DIFF_VEC or ADDR_VEC pattern.
16418 (thumb_far_jump_used_p): Likewise.
16419 * config/bfin/bfin.c (workaround_rts_anomaly): Likewise.
16420 (workaround_speculation): Likewise.
16421 (add_sched_insns_for_speculation): Likewise.
16422 * config/c6x/c6x.c (reorg_emit_nops): Likewise.
16423 * config/frv/frv.c (frv_function_contains_far_jump): Likewise.
16424 (frv_for_each_packet): Likewise.
16425 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Likewise.
16426 * config/ia64/ia64.c (emit_all_insn_group_barriers): Likewise.
16427 (final_emit_insn_group_barriers): Likewise.
16428 * config/m32r/m32r.c (m32r_is_insn): Likewise.
16429 * config/mips/mips.c (USEFUL_INSN_P): Likewise.
16430 (mips16_insn_length): Likewise.
16431 * config/pa/pa.c (pa_reorg): Likewise.
16432 (pa_combine_instructions): Likewise.
16433 * config/rs6000/rs6000.c (rs6000_invalid_within_doloop): Likewise.
16434 * config/sh/sh.c (fixup_addr_diff_vecs): Likewise.
16435 (sh_reorg): Likewise.
16436 (split_branches): Likewise.
16437 * config/spu/spu.c (get_branch_target): Likewise.
16438
16439 * config/s390/s390.c (s390_chunkify_start): Simplify logic using
16440 JUMP_TABLE_DATA_P.
16441
4ac761b0
KY
164422013-03-29 Kirill Yukhin <kirill.yukhin@intel.com>
16443
39385fa6 16444 * config/i386/avx2intrin.h (_mm256_broadcastsi128_si256):
4ac761b0
KY
16445 Fix declaration name.
16446
58a49189
LC
164472013-03-28 Lawrence Crowl <crowl@google.com>
16448
16449 * graphds.h (struct graph.indicies): Remove unused.
16450 * graphite-poly.h (struct graph.original_pddrs): Remove unused.
16451 (SCOP_ORIGINAL_PDDRS): Remove unused.
16452 * sese.h (extern insert_loop_close_phis): Removed unused.
16453 (extern insert_guard_phis): Removed unused.
16454 (extern ivtype_map_elt_info): Removed unused.
16455 (new_ivtype_map_elt): Removed unused.
16456 * sese.c (ivtype_map_elt_info): Removed unused.
16457
7b3b6ae4
LC
164582013-03-28 Lawrence Crowl <crowl@google.com>
16459
16460 * Makefile.in: Add several missing include dependences.
16461 (DUMPFILE_H): New.
16462 (test-dump.o): New. This object is not added to any executable,
16463 but is present for ad-hoc testing.
16464 * bitmap.c
16465 (debug (const bitmap_head_def &)): New.
16466 (debug (const bitmap_head_def *)): New.
16467 * bitmap.h
16468 (extern debug (const bitmap_head_def &)): New.
16469 (extern debug (const bitmap_head_def *)): New.
16470 * cfg.c
16471 (debug (edge_def &)): New.
16472 (debug (edge_def *)): New.
16473 * cfghooks.c
16474 (debug (basic_block_def &)): New.
16475 (debug (basic_block_def *)): New.
16476 * dumpfile.h
16477 (dump_node (const_tree, int, FILE *)): Correct source file.
16478 * dwarf2out.c
16479 (debug (die_struct &)): New.
16480 (debug (die_struct *)): New.
16481 * dwarf2out.h
16482 (extern debug (die_struct &)): New.
16483 (extern debug (die_struct *)): New.
16484 * gimple-pretty-print.c
16485 (debug (gimple_statement_d &)): New.
16486 (debug (gimple_statement_d *)): New.
16487 * gimple-pretty-print.h
16488 (extern debug (gimple_statement_d &)): New.
16489 (extern debug (gimple_statement_d *)): New.
16490 * ira-build.c
16491 (debug (ira_allocno_copy &)): New.
16492 (debug (ira_allocno_copy *)): New.
16493 (debug (ira_allocno &)): New.
16494 (debug (ira_allocno *)): New.
16495 * ira-int.h
16496 (extern debug (ira_allocno_copy &)): New.
16497 (extern debug (ira_allocno_copy *)): New.
16498 (extern debug (ira_allocno &)): New.
16499 (extern debug (ira_allocno *)): New.
16500 * ira-lives.c
16501 (debug (live_range &)): New.
16502 (debug (live_range *)): New.
16503 * lra-int.h
16504 (debug (lra_live_range &)): New.
16505 (debug (lra_live_range *)): New.
16506 * lra-lives.c
16507 (debug (lra_live_range &)): New.
16508 (debug (lra_live_range *)): New.
16509 * omega.c
16510 (debug (omega_pb_d &)): New.
16511 (debug (omega_pb_d *)): New.
16512 * omega.h
16513 (extern debug (omega_pb_d &)): New.
16514 (extern debug (omega_pb_d *)): New.
16515 * print-rtl.c
16516 (debug (const rtx_def &)): New.
16517 (debug (const rtx_def *)): New.
16518 * print-tree.c
16519 (debug_tree (tree): Move within file.
16520 (debug_raw (const tree_node &)): New.
16521 (debug_raw (const tree_node *)): New.
16522 (dump_tree_via_hooks (const tree_node *, int)): New.
16523 (debug (const tree_node &)): New.
16524 (debug (const tree_node *)): New.
16525 (debug_verbose (const tree_node &)): New.
16526 (debug_verbose (const tree_node *)): New.
16527 (debug_head (const tree_node &)): New.
16528 (debug_head (const tree_node *)): New.
16529 (debug_body (const tree_node &)): New.
16530 (debug_body (const tree_node *)): New.
16531 (debug_vec_tree (tree): Move and reimplement in terms of dump.
16532 (debug (vec<tree, va_gc> &)): New.
16533 (debug (vec<tree, va_gc> *)): New.
16534 * rtl.h
16535 (extern debug (const rtx_def &)): New.
16536 (extern debug (const rtx_def *)): New.
16537 * sbitmap.c
16538 (debug_raw (simple_bitmap_def &)): New.
16539 (debug_raw (simple_bitmap_def *)): New.
16540 (debug (simple_bitmap_def &)): New.
16541 (debug (simple_bitmap_def *)): New.
16542 * sbitmap.h
16543 (extern debug (simple_bitmap_def &)): New.
16544 (extern debug (simple_bitmap_def *)): New.
16545 (extern debug_raw (simple_bitmap_def &)): New.
16546 (extern debug_raw (simple_bitmap_def *)): New.
16547 * sel-sched-dump.c
16548 (debug (vinsn_def &)): New.
16549 (debug (vinsn_def *)): New.
16550 (debug_verbose (vinsn_def &)): New.
16551 (debug_verbose (vinsn_def *)): New.
16552 (debug (expr_def &)): New.
16553 (debug (expr_def *)): New.
16554 (debug_verbose (expr_def &)): New.
16555 (debug_verbose (expr_def *)): New.
16556 (debug (vec<rtx> &)): New.
16557 (debug (vec<rtx> *)): New.
16558 * sel-sched-dump.h
16559 (extern debug (vinsn_def &)): New.
16560 (extern debug (vinsn_def *)): New.
16561 (extern debug_verbose (vinsn_def &)): New.
16562 (extern debug_verbose (vinsn_def *)): New.
16563 (extern debug (expr_def &)): New.
16564 (extern debug (expr_def *)): New.
16565 (extern debug_verbose (expr_def &)): New.
16566 (extern debug_verbose (expr_def *)): New.
16567 (extern debug (vec<rtx> &)): New.
16568 (extern debug (vec<rtx> *)): New.
16569 * sel-sched-ir.h
16570 (_list_iter_cond_expr): Make inline instead of static.
16571 * sreal.c
16572 (debug (sreal &)): New.
16573 (debug (sreal *)): New.
16574 * sreal.h
16575 (extern debug (sreal &)): New.
16576 (extern debug (sreal *)): New.
16577 * tree.h
16578 (extern debug_raw (const tree_node &)): New.
16579 (extern debug_raw (const tree_node *)): New.
16580 (extern debug (const tree_node &)): New.
16581 (extern debug (const tree_node *)): New.
16582 (extern debug_verbose (const tree_node &)): New.
16583 (extern debug_verbose (const tree_node *)): New.
16584 (extern debug_head (const tree_node &)): New.
16585 (extern debug_head (const tree_node *)): New.
16586 (extern debug_body (const tree_node &)): New.
16587 (extern debug_body (const tree_node *)): New.
16588 (extern debug (vec<tree, va_gc> &)): New.
16589 (extern debug (vec<tree, va_gc> *)): New.
16590 * tree-cfg.c
16591 (debug (struct loop &)): New.
16592 (debug (struct loop *)): New.
16593 (debug_verbose (struct loop &)): New.
16594 (debug_verbose (struct loop *)): New.
16595 * tree-dump.c: Add header dependence.
16596 * tree-flow.h
16597 (extern debug (struct loop &)): New.
16598 (extern debug (struct loop *)): New.
16599 (extern debug_verbose (struct loop &)): New.
16600 (extern debug_verbose (struct loop *)): New.
16601 * tree-data-ref.c
16602 (debug (data_reference &)): New.
16603 (debug (data_reference *)): New.
16604 (debug (vec<data_reference_p> &)): New.
16605 (debug (vec<data_reference_p> *)): New.
16606 (debug (vec<ddr_p> &)): New.
16607 (debug (vec<ddr_p> *)): New.
16608 * tree-data-ref.h
16609 (extern debug (data_reference &)): New.
16610 (extern debug (data_reference *)): New.
16611 (extern debug (vec<data_reference_p> &)): New.
16612 (extern debug (vec<data_reference_p> *)): New.
16613 (extern debug (vec<ddr_p> &)): New.
16614 (extern debug (vec<ddr_p> *)): New.
16615 * tree-ssa-alias.c
16616 (debug (pt_solution &)): New.
16617 (debug (pt_solution *)): New.
16618 * tree-ssa-alias.h
16619 (extern debug (pt_solution &)): New.
16620 (extern debug (pt_solution *)): New.
16621 * tree-ssa-alias.c
16622 (debug (_var_map &)): New.
16623 (debug (_var_map *)): New.
16624 (debug (tree_live_info_d &)): New.
16625 (debug (tree_live_info_d *)): New.
16626 * tree-ssa-alias.h
16627 (extern debug (_var_map &)): New.
16628 (extern debug (_var_map *)): New.
16629 (extern debug (tree_live_info_d &)): New.
16630 (extern debug (tree_live_info_d *)): New.
16631
be77e1e5
JH
166322013-03-28 Jan Hubicka <jh@suse.cz>
16633
16634 * lto-cgraph.c (merge_profile_summaries): Fix overflows.
16635
777e6976
IB
166362013-03-28 Ian Bolton <ian.bolton@arm.com>
16637
16638 * config/aarch64/aarch64.md (aarch64_can_eliminate): Keep frame
16639 record only when desired or required.
16640
9cd347ae
UB
166412013-03-28 Uros Bizjak <ubizjak@gmail.com>
16642
16643 * config/i386/i386.md (*vec_extract2vdi_1): Merge with
16644 *vec_extractv2di_1_rex64. Use x64 isa attribute.
16645
33159866 166462013-03-28 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
2a1d1991
N
16647
16648 * config/aarch64/aarch64.md (*and<mode>3_compare0): New pattern.
16649 (*andsi3_compare0_uxtw): New pattern.
16650 (*and_<SHIFT:optab><mode>3_compare0): New pattern.
16651 (*and_<SHIFT:optab>si3_compare0_uxtw): New pattern.
16652
89ab31c1
JH
166532013-03-28 Jan Hubicka <jh@suse.cz>
16654
16655 * data-streamer-in.c (streamer_read_gcov_count): New function.
16656 * gimple-streamer-out.c: Include value-prof.h.
16657 (output_gimple_stmt): Output histogram.
16658 (output_bb): Use streamer_write_gcov_count.
16659 * value-prof.c: Include data-streamer.h
16660 (dump_histogram_value): Add HIST_TYPE_MAX.
16661 (stream_out_histogram_value): New function.
16662 (stream_in_histogram_value): New function.
16663 * value-prof.h (enum hist_type): Add HIST_TYPE_MAX.
16664 (stream_out_histogram_value, stream_in_histogram_value): Declare.
16665 * data-streamer-out.c (streamer_write_gcov_count): New function.
16666 (streamer_write_gcov_count_stream): New function.
16667 * lto-cgraph.c (lto_output_edge): Update counter streaming.
16668 (lto_output_node): Likewise.
16669 (input_node, input_edge): Likewise.
16670 * lto-streamer-out.c (output_cfg): Update streaming.
16671 * lto-streamer-in.c (input_cfg): Likewise.
16672 * data-streamer.h (streamer_write_gcov_count,
16673 streamer_write_gcov_count_stream, streamer_read_gcov_count): Declare.
16674 * gimple-streamer-in.c: Include value-prof.h
16675 (input_gimple_stmt): Input histograms.
16676 (input_bb): Update profile streaming.
16677
e594716a 166782013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
b4c73eed 16679
33159866 16680 * genmodes.c (emit_max_int): New function.
8697be17 16681 (emit_insn_modes_h): Added call to emit_max_function.
39385fa6
PC
16682 * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_INT, MAX_BITSIZE_MODE_ANY_MODE):
16683 Added doc.
8697be17 16684 * machmode.def: Fixed comment.
89ab31c1 16685
e594716a 166862013-03-28 Kenneth Zadeck <zadeck@naturalbridge.com>
8697be17
KZ
16687
16688 * combine.c (try_combine): Removed useless assert.
b4c73eed
KZ
16689 * cselib.c (rtx_equal_for_cselib_1): Removed unnecessary parens.
16690
74946978
MP
166912013-03-28 Marek Polacek <polacek@redhat.com>
16692 Richard Biener <rguenther@suse.de>
16693
16694 PR tree-optimization/56695
16695 * tree-vect-stmts.c (vectorizable_condition): Unconditionally
16696 build signed result of a vector comparison.
16697 * tree-cfg.c (verify_gimple_comparison): Check that a result
16698 of a vector comparison has signed type.
16699
a64b9c26
RB
167002013-03-28 Richard Biener <rguenther@suse.de>
16701
16702 PR tree-optimization/37021
16703 * tree-vect-slp.c (vect_build_slp_tree): When not unrolling
16704 do not restrict gaps between groups.
16705 * tree-vect-stmts.c (vectorizable_load): Properly account for
16706 a gap between groups.
16707
a9dc2a2f
EB
167082013-03-28 Eric Botcazou <ebotcazou@adacore.com>
16709
16710 * toplev.c (process_options): Do not disable -fomit-frame-pointer on a
16711 general basis if unwind info is requested and ACCUMULATE_OUTGOING_ARGS
16712 is not enabled.
16713
53cb97f9
GP
167142013-03-27 Gerald Pfeifer <gerald@pfeifer.com>
16715
16716 * doc/invoke.texi (AVR Options): Tweak link for AVR-LibC user manual.
16717 * doc/extend.texi (Named Address Spaces): Ditto.
16718 (Variable Attributes): Ditto.
16719
b802ae5c
KT
167202013-03-27 Kai Tietz <ktietz@redhat.com>
16721
eddae10a
KT
16722 * config.build: Add support for cygwin x64 target.
16723 * config.gcc: Likewise.
16724 * config.host: Likewise.
16725 * configure.ac: Likewise
16726 * configure: Regenerated.
b802ae5c 16727
371e77e3 167282013-03-27 Kai Tietz <ktietz@redhat.com>
8269de54
KT
16729
16730 * config/i386/cygwin-stdint.h: Add support for cygwin x64 target.
16731 * config/i386/t-cygwin-w64: New file.
16732 * config/i386/cygwin-w64.h: New file.
16733 * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): Extend
16734 and add support for x64-cygwin target.
16735 (CPP_SPEC): Likewise.
16736 (CXX_WRAP_SPEC_LIST): Undefine before define.
16737 (LIBGCJ_SONAME): Use 15 as version.
16738
f49b33cb
RB
167392013-03-27 Richard Biener <rguenther@suse.de>
16740
16741 PR tree-optimization/56716
16742 * tree-ssa-structalias.c (perform_var_substitution): Adjust
16743 dumping for ref nodes.
16744
b37a6ce5
MJ
167452013-03-27 Martin Jambor <mjambor@suse.cz>
16746
16747 PR tree-optimization/55334
16748 * ipa-cp.c (initialize_node_lattices): Allow IPA-CP through and to
16749 restricted pointers to arrays.
16750
9469b9b2
GDR
167512013-03-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
16752
16753 * Makefile.in (.SUFFIXES): Add .cc.
16754 (.c.o): Apply same recipe for implicit rule .cc.o.
16755
7d24f650
RB
167562013-03-27 Richard Biener <rguenther@suse.de>
16757
16758 PR tree-optimization/37021
16759 * tree-vect-data-refs.c (vect_check_strided_load): Allow
16760 REALPART/IMAGPART_EXPRs around the supported refs.
16761 * tree-ssa-structalias.c (find_func_aliases): Assume that
16762 floating-point values are not used to transfer pointers.
16763
2f251a05
AI
167642013-03-27 Alexander Ivchenko <alexander.ivchenko@intel.com>
16765
f43245d1
UB
16766 * target.def (TARGET_HAS_IFUNC_P): New target hook.
16767 * doc/tm.texi.in (TARGET_HAS_IFUNC_P): New.
16768 * doc/tm.texi: Regenerate.
16769 * targhooks.h (default_has_ifunc_p): New.
16770 * targhooks.c (default_has_ifunc_p): Ditto.
16771 * config/linux-protos.h: New file.
16772 * config/linux-android.h (TARGET_HAS_IFUNC_P): Using version of this
16773 hook for linux which disables support of indirect functions in android.
16774 * config/linux-android.c: New file.
16775 * config/t-linux-android.c: Ditto.
16776 * config.gcc: Added new object file linux-android.o.
16777 * config/i386/i386.c (ix86_get_function_versions_dispatcher):
2f251a05 16778 Using TARGET_HAS_IFUNC hook instead of HAVE_GNU_INDIRECT_FUNCTION.
f43245d1 16779 * varasm.c (do_assemble_alias): Likewise.
2f251a05
AI
16780 * configure.ac: Define HAVE_GNU_INDIRECT_FUNCTION as zero if the target
16781 doesn't support indirect functions.
16782 * configure: Regenerate.
16783
78b4e425
BC
167842013-03-27 Bin Cheng <bin.cheng@arm.com>
16785
16786 PR target/56102
16787 * config/arm/arm.c (thumb1_rtx_costs, thumb1_size_rtx_costs): Fix
16788 rtx costs for SET/ASHIFT/ASHIFTRT/LSHIFTRT/ROTATERT patterns with
16789 mult-word mode.
16790
a5ba7b92
AK
167912013-03-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16792
16793 * config/s390/s390.h (TARGET_FLT_EVAL_METHOD): Define.
16794
be624986
TG
167952013-03-27 Terry Guo <terry.guo@arm.com>
16796
16797 * config/arm/arm-cores.def: Added core cortex-r7.
16798 * config/arm/arm-tune.md: Regenerated.
16799 * config/arm/arm-tables.opt: Regenerated.
16800 * doc/invoke.texi: Added entry for core cortex-r7.
16801
0a514f47
WL
168022013-03-27 Walter Lee <walt@tilera.com>
16803
16804 * config/tilegx/tilegx.c (tilegx_expand_prologue): Avoid
16805 double-decrement of next_scratch_regno.
16806
9332b0d2
WL
168072013-03-27 Walter Lee <walt@tilera.com>
16808
801d9b2a 16809 * config/tilegx/tilegx.md (insn_v1mulu): Fix predicates on
9332b0d2
WL
16810 input operands.
16811 (insn_v1mulus): Ditto.
16812 (insn_v2muls): Ditto.
16813
f54ea5dd
WL
168142013-03-27 Walter Lee <walt@tilera.com>
16815
e594716a 16816 * config/tilegx/tilegx.h (ASM_OUTPUT_ADDR_VEC_ELT): Delete extra tab.
f54ea5dd
WL
16817 (ASM_OUTPUT_ADDR_DIFF_ELT): Ditto.
16818
bf60f4ca
WL
168192013-03-27 Walter Lee <walt@tilera.com>
16820
e594716a 16821 * config/tilegx/tilegx.md (*sibcall_insn): Fix type atribute for jr.
bf60f4ca
WL
16822 (*sibcall_value): Ditto.
16823
e3b51eeb
WL
168242013-03-27 Walter Lee <walt@tilera.com>
16825
16826 * config/tilegx/tilegx.md (insn_mnz_<mode>): Replaced by ...
16827 (insn_mnz_v8qi): ... this ...
16828 (insn_mnz_v4hi): ... and this. Replace (const_int 0) with the
16829 vector equivalent.
16830 (insn_v<n>mnz): Replaced by ...
16831 (insn_v1mnz): ... this ...
16832 (insn_v2mnz): ... and this. Replace (const_int 0) with the vector
16833 equivalent.
16834 (insn_mz_<mode>): Replaced by ...
16835 (insn_mz_v8qi): ... this ...
16836 (insn_mz_v4hi): ... and this. Replace (const_int 0) with the
16837 vector equivalent.
16838 (insn_v<n>mz): Replaced by ...
16839 (insn_v1mz): ... this ...
16840 (insn_v2mz): ... and this. Replace (const_int 0) with the vector
16841 equivalent.
16842
4fc7b145
EB
168432013-03-26 Eric Botcazou <ebotcazou@adacore.com>
16844
16845 * doc/invoke.texi (SPARC options): Remove -mlittle-endian.
16846
6f33817e
RM
168472013-03-26 Roland McGrath <mcgrathr@google.com>
16848
16849 * config/arm/arm.c (arm_print_operand: case 'w'): Use fputs rather
16850 than fprintf with a non-constant, non-format string.
16851
93a4145b
UB
168522013-03-26 Uros Bizjak <ubizjak@gmail.com>
16853
16854 * config/i386/i386.md (*cmpqi_ext_1): Merge with *cmpqi_ext_1_rex64
16855 using nox64 isa attribute. Use nonimmediate_x86nomem_operand as
16856 operand 0 predicate.
16857 (*cmpqi_ext_3): Merge with *cmpqi_ext_3_rex64 using nox64 isa
16858 attribute. Use general_x64nomem_operand as operand 1 predicate.
16859 (*movqi_extv_1): Merge with *movqi_extv_1_rex64 using nox64 isa
16860 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
16861 (*movqi_extzv_2): Merge with *movqi_extzv_2_rex64 using nox64 isa
16862 attribute. Use nonimmediate_x64nomem_operand as operand 0 predicate.
16863 (mov<mode>_insv_1): Remove expander. Merge insn with
16864 movsi_insv_1 using SWI48 mode iterator and nox64 isa attribute.
16865 Use general_x64nomem_operand as operand 1 predicate.
16866 (addqi_ext_1): Merge with *addqi_ext_1_rex64 using nox64 isa attribute.
16867 (*testqi_ext_1): Merge with *testqi_ext_1_rex64 using nox64 isa
16868 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
16869 (*andqi_ext_1): Merge with *andqi_ext_1_rex64 using nox64 isa
16870 attribute. Use nonimmediate_x64nomem_operand as operand 2 predicate.
16871 (*<code>qi_ext_1): Merge with *<code>qi_ext_1_rex64 using nox64 isa
16872 attribute. Use nonimmediate_x64nomem_operand as operand 1 predicate.
16873 (*xorqi_cc_ext_1): Merge with *xorqi_cc_ext_1_rex64 using nox64
16874 isa attribute. Use general_x64nomem_operand as operand 2 predicate.
16875 * config/i386/predicates.md (nonimmediate_x64nomem_operand): New.
16876 (general_x64nomem_operand): Ditto.
16877
c6a9ed5a 168782013-03-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
df599020
SH
16879
16880 * config/rtems.opt: Add -pthread option.
16881
31b0a960
RB
168822013-03-26 Richard Biener <rguenther@suse.de>
16883
93a4145b
UB
16884 * alias.c (find_base_term): Avoid redundant and not used recursion.
16885 (base_alias_check): Get the initial base term from the caller.
31b0a960
RB
16886 (true_dependence_1): Compute and pass base terms to base_alias_check.
16887 (write_dependence_p): Likewise.
16888 (may_alias_p): Likewise.
16889
79517551
SN
168902013-03-26 Sofiane Naci <sofiane.naci@arm.com>
16891
16892 * config/aarch64/aarch64.c (aarch64_classify_address): Support
16893 PC-relative load in SI modes and above only.
16894
a76213b9
XQ
168952013-03-26 Xinyu Qi <xyqi@marvell.com>
16896
16897 * config/arm/arm.h (FIRST_IWMMXT_GR_REGNUM): Add comment.
33159866
UB
16898 * config/arm/iwmmxt.md (WCGR0): Update.
16899 (WCGR1, WCGR2, WCGR3): Likewise.
a76213b9 16900
37ff9355
UB
169012013-03-26 Uros Bizjak <ubizjak@gmail.com>
16902
16903 * config/i386/i386.md (*movdfcc_1): Merge with *movdfcc_1_rex64.
16904 Use x64 and nox64 isa attributes.
16905
30b0317c
RB
169062013-03-26 Richard Biener <rguenther@suse.de>
16907
16908 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove
16909 alignment computations and rely on get_object_alignment_1
16910 for the !TYPE_P case.
16911 Commonize DECL/COMPONENT_REF handling in the ARRAY_REF path.
16912
cbcdb140
WL
169132013-03-26 Walter Lee <walt@tilera.com>
16914
16915 * config/tilegx/tilegx.h (PROFILE_BEFORE_PROLOGUE): Define.
16916 * config/tilegx/tilepro.h (PROFILE_BEFORE_PROLOGUE): Define.
16917
dd884525 169182013-03-25 Jeff Law <law@redhat.com>
be672e08 16919
33159866
UB
16920 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Add missing
16921 check for INTEGRAL_TYPE_P that was missing due to checking in
dd884525
JL
16922 wrong version of prior patch.
16923
0051d3ec
WL
169242013-03-25 Walter Lee <walt@tilera.com>
16925
16926 * config/tilegx/tilegx-builtins.h (enum tilegx_builtin): Add
16927 TILEGX_INSN_SHUFFLEBYTES1.
16928 * config/tilegx/tilegx.c (tilegx_builtin_info): Add entry for
16929 shufflebytes1.
16930 (tilegx_builtins): Ditto.
16931 * config/tilegx/tilegx.md (insn_shufflebytes1): New pattern.
16932
065a3605
WL
169332013-03-25 Walter Lee <walt@tilera.com>
16934
16935 * config/tilegx/tilegx.md (floatsisf2): New pattern.
0051d3ec
WL
16936 (floatunssisf2): New pattern.
16937 (floatsidf2): New pattern.
16938 (floatunssidf2): New pattern.
065a3605 16939
5b2a3c82
WL
169402013-03-25 Walter Lee <walt@tilera.com>
16941
16942 * config/tilegx/tilegx.c (expand_set_cint64_one_inst): Inline
16943 tests for constraint J, K, N, P.
16944
192ea533
WL
169452013-03-25 Walter Lee <walt@tilera.com>
16946
16947 * config/tilegx/tilegx.c (tilegx_asm_preferred_eh_data_format):
16948 Use indirect/pcrel encoding.
16949 * config/tilepro/tilepro.c (tilepro_asm_preferred_eh_data_format):
16950 Ditto.
16951
855e0d0b
SE
169522013-03-25 Steve Ellcey <sellcey@mips.com>
16953
16954 * config/mips/mmips-cpus.def (74kc, 74kf2_1, 74kf, 74kf, 74kf1_1,
16955 74kfx, 74kx, 74kf3_2): Add PTF_AVOID_IMADD.
16956 * config/mips/mips.c (mips_option_override): Set IMADD default.
16957 * config/mips/mips.h (PTF_AVOID_IMADD): New.
16958 (ISA_HAS_MADD_MSUB): Remove MIPS16 check.
16959 (GENERATE_MADD_MSUB): Remove TUNE_74K check, add MIPS16 check.
16960 * config/mips/mips.md (mimadd): New flag for integer madd/msub.
16961 * doc/invoke.texi (-mimadd/-mno-imadd): New.
16962
39e45653
JL
169632013-03-25 Jeff Law <law@redhat.com>
16964
16965 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Rework
16966 slightly to avoid creating and folding useless trees. Simplify
16967 slightly by restricting to INTEGER_CSTs and using int_fits_type_p.
16968
7482c470
UB
169692013-03-25 Uros Bizjak <ubizjak@gmail.com>
16970
16971 * config/i386/i386.md (*zero_extendsidi2): Merge with
16972 *zero_extendsidi2_rex64. Use x64 and nox64 isa attributes.
16973 * config/i386/predicates.md (x86_64_zext_operand): Rename from
16974 x86_64_zext_general_operand. Use nonimmediate_operand on 32bit
16975 targets. Clarify comment.
16976
4a53743e
MJ
169772013-03-25 Martin Jambor <mjambor@suse.cz>
16978
16979 * ipa-prop.c (ipa_write_jump_function): Stream simple and aritmetic
16980 pass-through jump functions differently.
16981 (ipa_read_jump_function): Likewise. Also use setter functions to set
16982 up jump functions.
16983
162712de
MJ
169842013-03-25 Martin Jambor <mjambor@suse.cz>
16985
16986 * ipa-cp.c (ipa_get_indirect_edge_target): Renamed to
16987 ipa_get_indirect_edge_target_1, added parameter agg_reps and ability to
16988 process it.
16989 (ipa_get_indirect_edge_target): New function.
16990 (devirtualization_time_bonus): New parameter known_aggs, pass it to
16991 ipa_get_indirect_edge_target. Update all callers.
16992 (ipcp_discover_new_direct_edges): New parameter aggvals. Pass it to
16993 ipa_get_indirect_edge_target_1 instead of calling
16994 ipa_get_indirect_edge_target.
16995 (create_specialized_node): Pass aggvlas to
16996 ipcp_discover_new_direct_edges.
16997
a5a4c20a
KT
169982013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16999
17000 * config/arm/arm.md (f_sels, f_seld): New types.
17001 (*cmov<mode>): New pattern.
17002 * config/arm/predicates.md (arm_vsel_comparison_operator): New
17003 predicate.
17004
f992b9fc
KT
170052013-03-25 Kai Tietz <ktietz@redhat.com>
17006
17007 * config/i386/xm-mingw32.h (__USE_MINGW_ANSI_STDIO): Enable
17008 POSIX-printf for mingw-hosted builds.
17009
c16fd676
RB
170102013-03-25 Richard Biener <rguenther@suse.de>
17011
17012 PR middle-end/56694
17013 * tree-eh.c (lower_eh_must_not_throw): Strip BLOCKs from the
17014 must-not-throw stmt location.
17015
5ad29f12
KT
170162013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17017
17018 * config/arm/arm.c (arm_emit_load_exclusive): Add acq parameter.
17019 Emit load-acquire versions when acq is true.
17020 (arm_emit_store_exclusive): Add rel parameter.
17021 Emit store-release versions when rel is true.
17022 (arm_split_compare_and_swap): Use acquire-release instructions
17023 instead.
17024 of barriers when appropriate.
17025 (arm_split_atomic_op): Likewise.
17026 * config/arm/arm.h (TARGET_HAVE_LDACQ): New macro.
17027 * config/arm/unspecs.md (VUNSPEC_LAX): New unspec.
17028 (VUNSPEC_SLX): Likewise.
17029 (VUNSPEC_LDA): Likewise.
17030 (VUNSPEC_STL): Likewise.
17031 * config/arm/sync.md (atomic_load<mode>): New pattern.
17032 (atomic_store<mode>): Likewise.
17033 (arm_load_acquire_exclusive<mode>): Likewise.
17034 (arm_load_acquire_exclusivesi): Likewise.
17035 (arm_load_acquire_exclusivedi): Likewise.
17036 (arm_store_release_exclusive<mode>): Likewise.
17037
03a7dddb
CM
170382013-03-25 Catherine Moore <clm@codesourcery.com>
17039
17040 * config/mips/constraints.md (u, Udb7 Uead, Uean, Uesp, Uib3,
17041 Uuw6, Usb4, ZS, ZT, ZU, ZV, ZW): New constraints.
17042 * config/mip/predicates.md (lwsp_swsp_operand,
17043 lw16_sw16_operand, lhu16_sh16_operand, lbu16_operand,
17044 sb16_operand, db4_operand, db7_operand, ib3_operand,
17045 sb4_operand, ub4_operand, uh4_operand, uw4_operand,
17046 uw5_operand, uw6_operand, addiur2_operand, addiusp_operand,
17047 andi16_operand): New predicates.
17048 * config/mips/mips.md (compression): New attribute.
17049 (enabled): New attribute.
17050 (length): Consider compression in computing length.
17051 (shift_compression): New code attribute.
17052 (*add<mode>3): New operands. Record compression.
17053 (sub<mode>3): Likewise.
17054 (one_cmpl<mode>2): Likewise.
17055 (*and<mode>3): Likewise.
17056 (*ior<mode>3): Likewise.
17057 (unnamed pattern for xor): Likewise.
17058 (*zero_extend<SHORT:mode><GPR:mode>2): Likewise.
17059 (*<optab><mode>3): Likewise.
17060 (*mov<mode>_internal: Likewise.
17061 * config/mips/mips-protos.h (mips_signed_immediate_p): New.
17062 (mips_unsigned_immediate_p): New.
17063 (umips_lwsp_swsp_address_p): New.
17064 (m16_based_address_p): New.
17065 * config/mips/mips-protos.h (mips_signed_immediate_p): New prototype.
17066 (mips_unsigned_immediate_p): New prototype.
17067 (lwsp_swsp_address_p): New prototype.
17068 (m16_based_address_p): New prototype.
17069 * config/mips/mips.c (mips_unsigned_immediate_p): New function.
17070 (mips_signed_immediate_p): New function.
17071 (m16_based_address_p): New function.
17072 (lwsp_swsp_address_p): New function.
17073 (mips_print_operand_punctuation): Recognize short delay slot insns
17074 for microMIPS.add<mode>3"
17075
f35c297f 170762013-03-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
a5784ce6 17077
f35c297f
KT
17078 PR target/56720
17079 * config/arm/iterators.md (v_cmp_result): New mode attribute.
17080 * config/arm/neon.md (vcond<mode><mode>): Handle unordered cases.
17081
051b9446
RB
170822013-03-25 Richard Biener <rguenther@suse.de>
17083
17084 PR tree-optimization/56689
17085 * tree-vrp.c (execute_vrp): Mark loops for fixup if we removed
17086 any edge.
17087
374001cb
RB
170882013-03-25 Richard Biener <rguenther@suse.de>
17089
17090 * tree-ssa-loop-im.c (struct mem_ref): Use bitmap_head instead
17091 of bitmap.
17092 (memory_references): Likewise.
17093 (outermost_indep_loop, mem_ref_alloc, mark_ref_stored,
17094 gather_mem_refs_stmt, record_dep_loop, ref_indep_loop_p_1,
17095 ref_indep_loop_p_2, find_refs_for_sm): Adjust.
17096 (gather_mem_refs_in_loops): Fold into ...
17097 (analyze_memory_references): ... this. Move initialization
17098 to tree_ssa_lim_initialize.
17099 (fill_always_executed_in): Rename to ...
17100 (fill_always_executed_in_1): ... this.
17101 (fill_always_executed_in): Move contains_call computation to
17102 this new function from ...
17103 (tree_ssa_lim_initialize): ... here.
17104 (tree_ssa_lim): Call fill_always_executed_in.
17105
57895947
EB
171062013-03-25 Eric Botcazou <ebotcazou@adacore.com>
17107
17108 * postreload.c (reload_combine): Fix code detecting returns.
17109
1e1b18c1
EB
171102013-03-25 Eric Botcazou <ebotcazou@adacore.com>
17111
17112 * function.c (emit_use_return_register_into_block): On cc0 targets,
17113 do not emit the sequence between cc0 setter and user.
17114
9216baf1
KT
171152013-03-25 Kai Tietz <ktietz@redhat.com>
17116
1e1b18c1
EB
17117 * config/i386/predicates.md (local_symbolic_operand): Interpret
17118 dll-imported symbols as none-local.
9216baf1 17119
76421b44
RB
171202013-03-25 Richard Biener <rguenther@suse.de>
17121
17122 * tree-ssa-loop-im.c (struct depend): Remove.
17123 (struct lim_aux_data): Make depends a vec of gimples.
17124 (free_lim_aux_data): Adjust.
17125 (add_dependency): Likewise.
17126 (set_level): Likewise.
17127
d154bfa2
RB
171282013-03-25 Richard Biener <rguenther@suse.de>
17129
17130 PR middle-end/56434
17131 * calls.c (expand_call): Use MALLOC_ABI_ALIGNMENT to annotate
17132 the pointer returned by calls with ECF_MALLOC set.
17133
2cd9804e
UB
171342013-03-24 Uros Bizjak <ubizjak@gmail.com>
17135
acef5fe0
UB
17136 * config/i386/mmx.md (mov<mode>): Add ?!Ym,r and r,?!Ym alternatives.
17137
171382013-03-24 Uros Bizjak <ubizjak@gmail.com>
17139
17140 * config/i386/mmx.md (mov<mode>): Merge with movv2sf expander
2cd9804e
UB
17141 using MMXMODE mode iterator.
17142 (*move<mode>_internal): Merge with *movv2sf_internal and
17143 *movv2sf_internal_rex64 using MMXMODE mode iterator.
17144
225ccc68
SB
171452013-03-23 Steven Bosscher <steven@gcc.gnu.org>
17146
85c0f02d
SB
17147 * gcse.c (oprs_unchanged_p): Respect flag_gcse_lm.
17148 (record_last_mem_set_info): Likewise.
17149
225ccc68
SB
17150 * df-core.c (rest_of_handle_df_initialize): Use XCNEWVEC instead
17151 of XNEWVEC followed by memset.
17152 (df_worklist_dataflow): Use XNEWVEC instead of xmalloc with a cast.
17153
b64925dc
SB
171542013-03-23 Steven Bosscher <steven@gcc.gnu.org>
17155
17156 * config/avr/avr.c, config/bfin/bfin.c, config/c6x/c6x.c,
17157 config/epiphany/epiphany.c, config/frv/frv.c, config/ia64/ia64.c,
17158 config/iq2000/iq2000.c, config/mcore/mcore.c, config/mep/mep.c,
17159 config/mmix/mmix.c, config/pa/pa.c, config/rs6000/rs6000.c,
17160 config/s390/s390.c, config/sparc/sparc.c, config/spu/spu.c,
17161 config/stormy16/stormy16.c, config/v850/v850.c, config/xtensa/xtensa.c,
17162 dwarf2out.c, hw-doloop.c, resource.c, rtl.h : Where applicable, use
17163 the predicates NOTE_P, NONJUMP_INSN_P, JUMP_P, CALL_P, LABEL_P, and
17164 BARRIER_P instead of GET_CODE.
17165
b9aaf52e
EB
171662013-03-23 Eric Botcazou <ebotcazou@adacore.com>
17167
17168 * config/sparc/sparc.c (sparc_emit_probe_stack_range): Fix small
17169 inaccuracy in the probing code.
17170
17171 * config/sparc/sparc.md (ctrapsi4): Add predicate for operand #3.
17172 (ctrapdi4): Likewise.
17173
66de4d7c
EB
171742013-03-23 Eric Botcazou <ebotcazou@adacore.com>
17175
17176 * calls.c (expand_call): Add missing guard to code handling return
17177 of non-BLKmode structures in MSB.
17178 * function.c (expand_function_end): Likewise.
17179
4f25c8fb
EB
171802013-03-23 Eric Botcazou <ebotcazou@adacore.com>
17181
17182 * combine.c (try_combine): Adjust comment. Do not add the set of
17183 insn #0 if the destination indirectly is set or dies in insn #2.
17184 Tidy up code to distribute a new note.
17185
23b7850d
UB
171862013-03-22 Uros Bizjak <ubizjak@gmail.com>
17187
17188 * config/i386/i386.md (*movdi_internal): Set prefix_rex attribute
17189 also for alternatives 16 and 17.
17190
bed852cf
UB
171912013-03-22 Uros Bizjak <ubizjak@gmail.com>
17192
17193 * config/i386/sse.md (*mov<mode>_internal): Merge with
17194 *mov<mode>_internal_rex64. Use x64 and nox64 isa attributes.
17195 Emit insn template depending on type attribute. Use
17196 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
17197 movd instead of movq mnemonic for interunit moves. Rewrite mode
17198 attribute calculation. Remove unit attribute calculation.
17199 Set prefix attribute to maybe_vex for sselog1 and ssemov types.
17200 Set prefix_data16 attribute for DImode ssemov types.
17201 Use Ym instead of y for SSE-MMX conversion alternatives.
17202 Reorder operand constraints.
17203
1e8a7937
SB
172042013-03-22 Steven Bosscher <steven@gcc.gnu.org>
17205
17206 * df.h (df_insn_delete): Adjust prototype.
17207 * emit-rtl.c (remove_insn): Pass a basic block to df_insn_delete
17208 and let it decide whether mark the basic block dirty.
17209 (set_insn_deleted): Only pass INSN_P insns to df_insn_delete.
17210 * df-scan.c (df_insn_info_delete): New helper function, split
17211 off from df_insn_delete.
17212 (df_scan_free_bb_info): Use it.
17213 (df_insn_rescan, df_insn_rescan_all, df_process_deferred_rescans):
17214 Likewise.
17215 (df_insn_delete): Likewise. Take insn rtx as argument. Verify
17216 that the insn is actually an insn and it has a non-NULL basic block.
17217 Do not mark basic block dirty if only deleting a DEBUG_INSN.
17218
e14d094c
RB
172192013-03-22 Richard Biener <rguenther@suse.de>
17220
17221 * tree-ssa-loop-im.c (struct mem_ref): Remove indep_ref and
17222 dep_ref members.
17223 (mem_ref_alloc): Do not allocate them.
17224 (refs_independent_p): Do not query or maintain a cache.
17225
e9cf7316
RB
172262013-03-22 Richard Biener <rguenther@suse.de>
17227
17228 * tree-ssa-loop-im.c (memory_references): Drop all_refs_in_loop.
17229 (gather_mem_refs_in_loops): Do not compute it.
17230 (analyze_memory_references): Do not allocate it.
17231 (tree_ssa_lim_finalize): Do not free it.
17232 (for_all_locs_in_loop): Do not query all_refs_in_loop.
17233
f046e81b
RB
172342013-03-22 Richard Biener <rguenther@suse.de>
17235
17236 * is-a.h (as_a): Use gcc_checking_assert.
bed852cf 17237
a05c0ddf
IB
172382013-03-22 Ian Bolton <ian.bolton@arm.com>
17239
17240 * config/aarch64/aarch64.c (aarch64_print_operand): New
17241 format specifier for printing a constant in hex.
17242 * config/aarch64/aarch64.md (insv_imm<mode>): Use the X
17243 format specifier for printing second operand.
17244
c00217fc
RB
172452013-03-22 Richard Biener <rguenther@suse.de>
17246
17247 * tree-ssa-loop-im.c (memory_references): Add refs_stored_in_loop
17248 bitmaps.
17249 (gather_mem_refs_in_loops): Perform store accumulation here.
17250 (create_vop_ref_mapping_loop): Remove.
17251 (create_vop_ref_mapping): Likewise.
17252 (analyze_memory_references): Initialize refs_stored_in_loop.
bed852cf 17253 (LOOP_DEP_BIT): New define to map to bits in (in)dep_loop bitmaps.
c00217fc
RB
17254 (record_indep_loop): Remove.
17255 (record_dep_loop): New function.
17256 (ref_indep_loop_p_1): Adjust to only walk over references
17257 in the loop, not its subloops.
17258 (ref_indep_loop_p): Rename to ...
17259 (ref_indep_loop_p_2): ... this and recurse over the loop tree,
17260 maintaining a more fine-grained cache.
17261 (ref_indep_loop_p): Wrap ref_indep_loop_p_2.
17262 (tree_ssa_lim_finalize): Free refs_stored_in_loop.
17263
15d19bf8
RB
172642013-03-22 Richard Biener <rguenther@suse.de>
17265
17266 * tree-ssa-loop-im.c (struct mem_ref_locs): Remove.
17267 (struct mem_ref): Make accesses_in_loop a vec of a vec of
17268 aggregate mem_ref_loc.
17269 (free_mem_ref_locs): Inline into ...
17270 (memref_free): ... this and adjust.
17271 (mem_ref_alloc): Adjust.
17272 (mem_ref_locs_alloc): Remove.
17273 (record_mem_ref_loc): Adjust.
17274 (get_all_locs_in_loop): Rewrite into ...
17275 (for_all_locs_in_loop): ... this iterator.
17276 (rewrite_mem_ref_loc): New functor.
17277 (rewrite_mem_refs): Use for_all_locs_in_loop.
17278 (sm_set_flag_if_changed): New functor.
17279 (execute_sm_if_changed_flag_set): Use for_all_locs_in_loop.
17280 (ref_always_accessed): New functor.
17281 (ref_always_accessed_p): Use for_all_locs_in_loop.
17282
6f37411d
MG
172832013-03-21 Marc Glisse <marc.glisse@inria.fr>
17284
17285 * tree-pass.h (PROP_gimple_lvec): New.
17286 * passes.c (dump_properties): Handle PROP_gimple_lvec.
17287 (init_optimization_passes): Move pass_lower_vector.
17288 * tree-vect-generic.c (gate_expand_vector_operations_ssa): Test
17289 PROP_gimple_lvec.
17290 (pass_lower_vector): Provide PROP_gimple_lvec.
17291 (pass_lower_vector_ssa): Likewise.
17292 * cfgexpand.c (pass_expand): Require PROP_gimple_lvec.
17293
511ef689
MW
172942013-03-21 Mark Wielaard <mjw@redhat.com>
17295
17296 * dwarf2out.c (size_of_aranges): Skip DECL_IGNORED_P functions.
17297
cc1df30b
UB
172982013-03-21 Uros Bizjak <ubizjak@gmail.com>
17299
17300 * config/i386/i386.md (*movdi_internal): Disparage slightly
17301 all MMX moves to/from memory. Use Yi instead of x for SSE-MMX
17302 conversion alternatives.
17303
c845cfe1
JJ
173042013-03-21 Jakub Jelinek <jakub@redhat.com>
17305
37e99116
JJ
17306 PR middle-end/48087
17307 * diagnostic.def (DK_WERROR): New kind.
17308 * diagnostic.h (werrorcount): Define.
17309 * diagnostic.c (diagnostic_report_diagnostic): For DK_WARNING
17310 promoted to DK_ERROR, increment DK_WERROR counter instead of
17311 DK_ERROR counter.
17312 * toplev.c (toplev_main): Call print_ignored_options even if
17313 just werrorcount is non-zero. Exit with FATAL_EXIT_CODE
17314 even if just werrorcount is non-zero.
17315
c845cfe1
JJ
17316 PR debug/55608
17317 * dwarf2out.c (tree_add_const_value_attribute): Call ggc_free (array)
17318 on failure.
17319 (resolve_one_addr): Fail if referenced STRING_CST hasn't been written.
17320 (string_cst_pool_decl): New function.
17321 (optimize_one_addr_into_implicit_ptr): New function.
17322 (resolve_addr_in_expr): Optimize DWARF location expression
17323 DW_OP_addr DW_OP_stack_value where DW_OP_addr refers to some variable
17324 which doesn't live in memory, but has DW_AT_location or
17325 DW_AT_const_value, or refers to a string literal, into
17326 DW_OP_GNU_implicit_pointer.
17327 (optimize_location_into_implicit_ptr): New function.
17328 (resolve_addr): If removing DW_AT_location of a variable because
17329 it was DW_OP_addr of address of the variable, but the variable doesn't
17330 live in memory, try to emit const value attribute for the initializer.
17331
08e0cda6
MG
173322013-03-21 Marc Glisse <marc.glisse@inria.fr>
17333
17334 * tree.h (VECTOR_TYPE_P): New macro.
17335 (VECTOR_INTEGER_TYPE_P, VECTOR_FLOAT_TYPE_P, FLOAT_TYPE_P,
17336 TYPE_MODE): Use it.
17337 * fold-const.c (fold_cond_expr_with_comparison): Use build_zero_cst.
17338 VEC_COND_EXPR cannot be lvalues.
17339 (fold_ternary_loc) <VEC_COND_EXPR>: Merge with the COND_EXPR case.
17340
d08633b4
MG
173412013-03-21 Marc Glisse <marc.glisse@inria.fr>
17342
17343 * simplify-rtx.c (simplify_binary_operation_1) <VEC_CONCAT>:
17344 Restrict the transformation to equal modes.
17345
e6647190
RB
173462013-03-21 Richard Biener <rguenther@suse.de>
17347
17348 PR tree-optimization/39326
17349 * tree-ssa-loop-im.c (UNANALYZABLE_MEM_ID): New define.
17350 (MEM_ANALYZABLE): Adjust.
17351 (record_mem_ref_loc): Move bitmap ops ...
17352 (gather_mem_refs_stmt): ... here. Use the shared mem-ref for
17353 unanalyzable refs, do not record locations for it.
17354 (analyze_memory_references): Allocate ref zero as shared
17355 unanalyzable ref.
17356 (refs_independent_p): Do not test for unanalyzed mems here.
17357 (ref_indep_loop_p_1): Special-case disambiguation against
17358 the unanalyzed ref.
cc1df30b 17359 (ref_indep_loop_p): Assert we are not queried for the unanalyzed mem.
e6647190 17360
65074f54
CL
173612013-03-21 Christophe Lyon <christophe.lyon@linaro.org>
17362
17363 * config/arm/arm-protos.h (tune_params): Add
17364 prefer_neon_for_64bits field.
17365 * config/arm/arm.c (prefer_neon_for_64bits): New variable.
17366 (arm_slowmul_tune): Default prefer_neon_for_64bits to false.
17367 (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
17368 (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
17369 (arm_cortex_a15_tune, arm_cortex_a5_tune): Ditto.
17370 (arm_cortex_a9_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
17371 (arm_option_override): Handle -mneon-for-64bits new option.
17372 * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro.
17373 (prefer_neon_for_64bits): Declare new variable.
17374 * config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to
cc1df30b 17375 avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and nota8.
65074f54
CL
17376 (arch_enabled): Handle new arch types. Remove support for onlya8
17377 and nota8.
17378 (one_cmpldi2): Use new arch names.
bc5faa5b 17379 (zero_extend<mode>di2, extend<mode>di2): Ditto.
65074f54
CL
17380 * config/arm/arm.opt (mneon-for-64bits): Add option.
17381 * config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon)
17382 (anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use
17383 neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead
17384 of onlya8.
17385 * doc/invoke.texi (-mneon-for-64bits): Document.
17386
5a2d2a79
RB
173872013-03-21 Richard Biener <rguenther@suse.de>
17388
17389 PR tree-optimization/39326
17390 * tree-ssa-loop-im.c (bb_loop_postorder): New global static.
17391 (sort_bbs_in_loop_postorder_cmp): New function.
cc1df30b 17392 (gather_mem_refs_in_loops): Assign mem-ref IDs in loop postorder.
5a2d2a79 17393
5abe1e05
RB
173942013-03-21 Richard Biener <rguenther@suse.de>
17395
17396 * tree-vect-data-refs.c (vect_update_interleaving_chain): Remove.
17397 (vect_insert_into_interleaving_chain): Likewise.
17398 (vect_drs_dependent_in_basic_block): Inline ...
17399 (vect_slp_analyze_data_ref_dependence): ... here. New function,
17400 split out from ...
17401 (vect_analyze_data_ref_dependence): ... here. Simplify.
17402 (vect_check_interleaving): Simplify.
17403 (vect_analyze_data_ref_dependences): Likewise. Split out ...
17404 (vect_slp_analyze_data_ref_dependences): ... this new function.
17405 (dr_group_sort_cmp): New function.
17406 (vect_analyze_data_ref_accesses): Compute data-reference groups
17407 here instead of in vect_analyze_data_ref_dependence. Use
17408 a more efficient algorithm.
17409 * tree-vect-slp.c (vect_slp_analyze_bb_1): Use
17410 vect_slp_analyze_data_ref_dependences. Call
17411 vect_analyze_data_ref_accesses earlier.
17412 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
17413 * tree-vectorizer.h (vect_analyze_data_ref_dependences): Adjust.
17414 (vect_slp_analyze_data_ref_dependences): New prototype.
17415
cad1735b
RB
174162013-03-21 Richard Biener <rguenther@suse.de>
17417
17418 * tree-ssa-loop-im.c (can_sm_ref_p): Do not test whether
17419 ref is stored in the loop.
17420 (find_refs_for_sm): Walk only over all stores.
17421 (store_motion_loop): Allocate from lim_bitmap_obstack.
17422 (store_motion): Likewise.
17423
141310ef
RB
174242013-03-21 Richard Biener <rguenther@suse.de>
17425
17426 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge):
17427 Update virtual SSA form.
17428
5022315a
RO
174292013-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17430
17431 * configure.ac (gcc_cv_ld_eh_frame_ciev3): New test.
17432 * configure: Regenerate.
17433 * config.in: Regenerate.
17434 * config/sol2.c (solaris_override_options): Only enforce DWARF 2
17435 if !HAVE_LD_EH_FRAME_CIEV3.
17436
50d4421c
RB
174372013-03-21 Richard Biener <rguenther@suse.de>
17438
17439 * tree-cfg.c (verify_expr_no_block): New function.
17440 (verify_expr_location_1): Verify that neither DECL_DEBUG_EXPR
17441 nor DECL_VALUE_EXPR have locations with associated blocks.
17442 * tree-ssa-live.c (clear_unused_block_pointer_1): Remove.
17443 (clear_unused_block_pointer): Remove code dealing with
17444 blocks in DECL_DEBUG_EXPR locations.
17445
839b422f
RB
174462013-03-21 Richard Biener <rguenther@suse.de>
17447
17448 * tree.h (DECL_DEBUG_EXPR_IS_FROM): Rename to ...
17449 (DECL_HAS_DEBUG_EXPR_P): ... this. Guard properly.
17450 * tree.c (copy_node_stat): Do not copy DECL_HAS_DEBUG_EXPR_P.
17451 * dwarf2out.c (add_var_loc_to_decl): Use DECL_HAS_DEBUG_EXPR_P
17452 instead of DECL_DEBUG_EXPR_IS_FROM.
17453 * gimplify.c (gimplify_modify_expr): Likewise.
17454 * tree-cfg.c (verify_expr_location_1): Likewise.
17455 * tree-complex.c (create_one_component_var): Likewise.
17456 * tree-sra.c (create_access_replacement): Likewise.
17457 * tree-ssa-live.c (clear_unused_block_pointer_1): Likewise.
17458 (clear_unused_block_pointer): Likewise.
17459 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Likewise.
17460 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
17461 * var-tracking.c (var_debug_decl): Likewise.
17462 (track_expr_p): Likewise.
17463 * tree-inline.c (add_local_variables): Likewise. Set
17464 DECL_HAS_DEBUG_EXPR_P after copying it.
17465 * tree-diagnostic.c (default_tree_printer): Use DECL_HAS_DEBUG_EXPR_P
17466 instead of DECL_DEBUG_EXPR_IS_FROM. Guard properly.
17467
fe04878d
UB
174682013-03-21 Uros Bizjak <ubizjak@gmail.com>
17469
17470 PR bootstrap/56656
17471 * configure.ac (HAVE_AS_IX86_INTERUNIT_MOVQ): New test.
17472 * configure: Regenerate.
17473 * config.in: Regenerate.
17474 * config/i386/i386.md (*movdf_internal): Use
17475 HAVE_AS_IX86_INTERUNIT_MOVQ to handle broken assemblers that require
17476 movd instead of movq mnemonic for interunit moves.
17477 (*movdi_internal): Ditto.
17478
bd059b26 174792013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
fa2e9a58
N
17480
17481 * config/aarch64/aarch64-simd.md (simd_fabd): New Attribute.
17482 (abd<mode>_3): New pattern.
17483 (aba<mode>_3): New pattern.
17484 (fabd<mode>_3): New pattern.
17485
bd059b26 174862013-03-21 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
50ce6f88
N
17487
17488 * config/aarch64/aarch64-elf.h (REGISTER_PREFIX): Remove.
17489 * config/aarch64/aarch64.c (aarch64_print_operand): Remove all
17490 occurrence of REGISTER_PREFIX as its empty string.
17491
4f1f78b9
JL
174922013-03-20 Jeff Law <law@redhat.com>
17493
17494 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): Record
17495 addititional equivalences for equality comparisons between an SSA_NAME
17496 and a constant where the SSA_NAME was set from a widening conversion.
17497
327a1118
WL
174982013-03-20 Walter Lee <walt@tilera.com>
17499
17500 * config/tilegx/sync.md (atomic_test_and_set): New pattern.
17501
813e0036
UB
175022013-03-20 Uros Bizjak <ubizjak@gmail.com>
17503
17504 * config/i386/i386.md (*movoi_internal_avx): Emit insn template
17505 depending on type attribute.
17506 (*movti_internal): Ditto.
17507 (*movtf_internal): Ditto.
17508 (*movxf_internal): Ditto.
17509 (*movdf_internal): Ditto.
17510 (*movsf_internal): Ditto.
17511
7cf34aae
UB
175122013-03-20 Uros Bizjak <ubizjak@gmail.com>
17513
17514 * config/i386/i386.md (*movti_internal): Set prefix attribute to
17515 maybe_vex for sselog1 and ssemov types.
17516 (*movdi_internal): Reorder operand constraints.
17517 (*movsi_internal): Ditto. Set prefix attribute to
17518 maybe_vex for sselog1 and ssemov types.
17519 (*movtf_internal): Set prefix attribute to maybe_vex
17520 for sselog1 and ssemov types.
17521 (*movdf_internal): Ditto. Set prefix_data16 attribute for
17522 DImode ssemov types. Reorder operand constraints.
17523 (*movsf_internal): Set type of alternatives 3,4 to imov. Set prefix
17524 attribute to maybe_vex for sselog1 and ssemov types. Set prefix_data16
17525 attribute for SImode ssemov types. Reorder operand constraints.
17526
19321415
MJ
175272013-03-20 Martin Jambor <mjambor@suse.cz>
17528
17529 * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): New parameter.
17530 * ipa-cp.c (hint_time_bonus): Add abonus for known array indices.
17531
12211b99 175322013-03-20 Pat Haugen <pthaugen@us.ibm.com>
c6d5ff83
MM
17533
17534 * config/rs6000/predicates.md (indexed_address, update_address_mem
17535 update_indexed_address_mem): New predicates.
17536 * config/rs6000/vsx.md (vsx_extract_<mode>_zero): Set correct "type"
17537 attribute for load/store instructions.
17538 * config/rs6000/dfp.md (movsd_store): Likewise.
17539 (movsd_load): Likewise.
17540 * config/rs6000/rs6000.md (zero_extend<mode>di2_internal1): Likewise.
17541 (unnamed HI->DI extend define_insn): Likewise.
17542 (unnamed SI->DI extend define_insn): Likewise.
17543 (unnamed QI->SI extend define_insn): Likewise.
17544 (unnamed QI->HI extend define_insn): Likewise.
17545 (unnamed HI->SI extend define_insn): Likewise.
17546 (unnamed HI->SI extend define_insn): Likewise.
17547 (extendsfdf2_fpr): Likewise.
17548 (movsi_internal1): Likewise.
17549 (movsi_internal1_single): Likewise.
17550 (movhi_internal): Likewise.
17551 (movqi_internal): Likewise.
17552 (movcc_internal1): Correct mnemonic for stw insn. Set correct "type"
17553 attribute for load/store instructions.
17554 (mov<mode>_hardfloat): Set correct "type" attribute for load/store
17555 instructions.
17556 (mov<mode>_softfloat): Likewise.
17557 (mov<mode>_hardfloat32): Likewise.
17558 (mov<mode>_hardfloat64): Likewise.
17559 (mov<mode>_softfloat64): Likewise.
17560 (movdi_internal32): Likewise.
17561 (movdi_internal64): Likewise.
17562 (probe_stack_<mode>): Likewise.
17563
175642013-03-20 Michael Meissner <meissner@linux.vnet.ibm.com>
17565
17566 * config/rs6000/vector.md (VEC_R): Add 32-bit integer, binary
17567 floating point, and decimal floating point to reload iterator.
17568
17569 * config/rs6000/constraints.md (wl constraint): New constraints to
17570 return FLOAT_REGS if certain options are used to reduce the number
17571 of separate patterns that exist in the file.
17572 (wx constraint): Likewise.
17573 (wz constraint): Likewise.
17574
17575 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
17576 -mdebug=reg, print wg, wl, wx, and wz constraints.
17577 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
17578 Initialize the reload functions for 64-bit binary/decimal floating
17579 point types.
17580 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
17581 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
17582 create the buffer on the stack to overcome not having a 32-bit
17583 load and store.
17584 (rs6000_emit_move): Likewise.
17585 (rs6000_secondary_memory_needed_rtx): Likewise.
17586 (rs6000_alloc_sdmode_stack_slot): Likewise.
17587 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
17588 via xxlxor, just like DFmode 0.0.
17589
17590 * config/rs6000/rs6000.h (TARGET_NO_SDMODE_STACK): New macro,
17591 define as 1 if we are running on a power7 or newer.
17592 (enum r6000_reg_class_enum): Add new constraints.
17593
17594 * config/rs6000/dfp.md (movsd): Delete, combine with binary
17595 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
17596 with other moves by using conditional constraits (wg). Use LFIWZX
bd059b26 17597 and STFIWX for loading SDmode on power7. Use xxlxor to create 0.0f.
c6d5ff83
MM
17598 (movsd splitter): Likewise.
17599 (movsd_hardfloat): Likewise.
17600 (movsd_softfloat): Likewise.
17601
17602 * config/rs6000/rs6000.md (FMOVE32): New iterators to combine
17603 binary and decimal floating point moves.
17604 (fmove_ok): New attributes to combine binary and decimal floating
17605 point moves, and to combine power6x (mfpgpr) moves along normal
17606 floating moves.
17607 (real_value_to_target): Likewise.
17608 (f32_lr): Likewise.
17609 (f32_lm): Likewise.
17610 (f32_li): Likewise.
17611 (f32_sr): Likewise.
17612 (f32_sm): Likewise.
17613 (f32_si): Likewise.
17614 (movsf): Combine binary and decimal floating point moves. Combine
17615 power6x (mfpgpr) moves with other moves by using conditional
bd059b26 17616 constraits (wg). Use LFIWZX and STFIWX for loading SDmode on power7.
c6d5ff83
MM
17617 (mov<mode> for SFmode/SDmode); Likewise.
17618 (SFmode/SDmode splitters): Likewise.
17619 (movsf_hardfloat): Likewise.
17620 (mov<mode>_hardfloat for SFmode/SDmode): Likewise.
17621 (movsf_softfloat): Likewise.
17622 (mov<mode>_softfloat for SFmode/SDmode): Likewise.
17623
17624 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wl,
17625 wx and wz constraints.
17626
17627 * config/rs6000/constraints.md (wg constraint): New constraint to
17628 return FLOAT_REGS if -mmfpgpr (power6x) was used.
17629
17630 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wg
17631 constraint.
17632
17633 * config/rs6000/rs6000.c (rs6000_debug_reg_global): If
17634 -mdebug=reg, print wg, wl, wx, and wz constraints.
17635 (rs6000_init_hard_regno_mode_ok): Initialize new constraints.
17636 Initialize the reload functions for 64-bit binary/decimal floating
17637 point types.
17638 (reg_offset_addressing_ok_p): If we are on a power7 or later, use
17639 LFIWZX and STFIWX to load/store 32-bit decimal types, and don't
17640 create the buffer on the stack to overcome not having a 32-bit
17641 load and store.
17642 (rs6000_emit_move): Likewise.
17643 (rs6000_secondary_memory_needed_rtx): Likewise.
17644 (rs6000_alloc_sdmode_stack_slot): Likewise.
17645 (rs6000_preferred_reload_class): On VSX, we can create SFmode 0.0f
17646 via xxlxor, just like DFmode 0.0.
17647
c6d5ff83
MM
17648 * config/rs6000/dfp.md (movdd): Delete, combine with binary
17649 floating point moves in rs6000.md. Combine power6x (mfpgpr) moves
17650 with other moves by using conditional constraits (wg). Use LFIWZX
17651 and STFIWX for loading SDmode on power7.
17652 (movdd splitters): Likewise.
17653 (movdd_hardfloat32): Likewise.
17654 (movdd_softfloat32): Likewise.
17655 (movdd_hardfloat64_mfpgpr): Likewise.
17656 (movdd_hardfloat64): Likewise.
17657 (movdd_softfloat64): Likewise.
17658
17659 * config/rs6000/rs6000.md (FMOVE64): New iterators to combine
17660 64-bit binary and decimal floating point moves.
17661 (FMOVE64X): Likewise.
17662 (movdf): Combine 64-bit binary and decimal floating point moves.
17663 Combine power6x (mfpgpr) moves with other moves by using
17664 conditional constraits (wg).
17665 (mov<mode> for DFmode/DDmode): Likewise.
17666 (DFmode/DDmode splitters): Likewise.
17667 (movdf_hardfloat32): Likewise.
17668 (mov<mode>_hardfloat32 for DFmode/DDmode): Likewise.
17669 (movdf_softfloat32): Likewise.
17670 (movdf_hardfloat64_mfpgpr): Likewise.
17671 (movdf_hardfloat64): Likewise.
17672 (mov<mode>_hardfloat64 for DFmode/DDmode): Likewise.
17673 (movdf_softfloat64): Likewise.
17674 (mov<mode>_softfloat64 for DFmode/DDmode): Likewise.
17675 (reload_<mode>_load): Move to later in the file so they aren't in
17676 the middle of the floating point move insns.
17677 (reload_<mode>_store): Likewise.
17678
17679 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wg
17680 constraint.
17681
17682 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print out wg
17683 constraint if -mdebug=reg.
bd059b26
UB
17684 (rs6000_initi_hard_regno_mode_ok): Enable wg constraint if -mfpgpr.
17685 Enable using dd reload support if needed.
c6d5ff83
MM
17686
17687 * config/rs6000/dfp.md (movtd): Delete, combine with 128-bit
17688 binary and decimal floating point moves in rs6000.md.
17689 (movtd_internal): Likewise.
17690
17691 * config/rs6000/rs6000.md (FMOVE128): Combine 128-bit binary and
17692 decimal floating point moves.
17693 (movtf): Likewise.
17694 (movtf_internal): Likewise.
17695 (mov<mode>_internal, TDmode/TFmode): Likewise.
17696 (movtf_softfloat): Likewise.
17697 (mov<mode>_softfloat, TDmode/TFmode): Likewise.
17698
17699 * config/rs6000/rs6000.md (movdi_mfpgpr): Delete, combine with
17700 movdi_internal64, using wg constraint for move direct operations.
17701 (movdi_internal64): Likewise.
17702
17703 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print
17704 MODES_TIEABLE_P for selected modes. Print the numerical value of
17705 the various virtual registers. Use GPR/FPR first/last values,
17706 instead of hard coding the register numbers. Print which modes
17707 have reload functions registered.
bd059b26
UB
17708 (rs6000_option_override_internal): If -mdebug=reg, trace the options
17709 settings before/after setting cpu, target and subtarget settings.
17710 (rs6000_secondary_reload_trace): Improve the RTL dump for -mdebug=addr
17711 and for secondary reload failures in rs6000_secondary_reload_inner.
c6d5ff83
MM
17712 (rs6000_secondary_reload_fail): Likewise.
17713 (rs6000_secondary_reload_inner): Likewise.
17714
17715 * config/rs6000/rs6000.md (FIRST_GPR_REGNO): Add convenience
17716 macros for first/last GPR and FPR registers.
17717 (LAST_GPR_REGNO): Likewise.
17718 (FIRST_FPR_REGNO): Likewise.
17719 (LAST_FPR_REGNO): Likewise.
17720
17721 * config/rs6000/vector.md (mul<mode>3): Use the combined macro
17722 VECTOR_UNIT_ALTIVEC_OR_VSX_P instead of separate calls to
17723 VECTOR_UNIT_ALTIVEC_P and VECTOR_UNIT_VSX_P.
17724 (vcond<mode><mode>): Likewise.
17725 (vcondu<mode><mode>): Likewise.
17726 (vector_gtu<mode>): Likewise.
17727 (vector_gte<mode>): Likewise.
17728 (xor<mode>3): Don't allow logical operations on TImode in 32-bit
bd059b26 17729 to prevent the compiler from converting DImode operations to TImode.
c6d5ff83
MM
17730 (ior<mode>3): Likewise.
17731 (and<mode>3): Likewise.
17732 (one_cmpl<mode>2): Likewise.
17733 (nor<mode>3): Likewise.
17734 (andc<mode>3): Likewise.
17735
17736 * config/rs6000/constraints.md (wt constraint): New constraint
17737 that returns VSX_REGS if TImode is allowed in VSX registers.
17738
17739 * config/rs6000/predicates.md (easy_fp_constant): 0.0f is an easy
17740 constant under VSX.
17741
17742 * config/rs6000/rs6000-modes.def (PTImode): Define, PTImode is
17743 similar to TImode, but it is restricted to being in the GPRs.
17744
17745 * config/rs6000/rs6000.opt (-mvsx-timode): New switch to allow
17746 TImode to occupy a single VSX register.
17747
17748 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Default to
17749 -mvsx-timode for power7/power8.
17750 (power7 cpu): Likewise.
17751 (power8 cpu): Likewise.
17752
17753 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Make
17754 sure that TFmode/TDmode take up two registers if they are ever
17755 allowed in the upper VSX registers.
17756 (rs6000_hard_regno_mode_ok): If -mvsx-timode, allow TImode in VSX
17757 registers.
17758 (rs6000_init_hard_regno_mode_ok): Likewise.
17759 (rs6000_debug_reg_global): Add debugging for PTImode and wt
17760 constraint. Print if LRA is turned on.
17761 (rs6000_option_override_internal): Give an error if -mvsx-timode
17762 and VSX is not enabled.
17763 (invalid_e500_subreg): Handle PTImode, restricting it to GPRs. If
17764 -mvsx-timode, restrict TImode to reg+reg addressing, and PTImode
17765 to reg+offset addressing. Use PTImode when checking offset
17766 addresses for validity.
17767 (reg_offset_addressing_ok_p): Likewise.
17768 (rs6000_legitimate_offset_address_p): Likewise.
17769 (rs6000_legitimize_address): Likewise.
17770 (rs6000_legitimize_reload_address): Likewise.
17771 (rs6000_legitimate_address_p): Likewise.
17772 (rs6000_eliminate_indexed_memrefs): Likewise.
17773 (rs6000_emit_move): Likewise.
17774 (rs6000_secondary_reload): Likewise.
17775 (rs6000_secondary_reload_inner): Handle PTImode. Allow 64-bit
17776 reloads to fpr registers to continue to use reg+offset addressing,
17777 but 64-bit reloads to altivec registers need reg+reg addressing.
17778 Drop test for PRE_MODIFY, since VSX loads/stores no longer support
17779 it. Treat LO_SUM like a PLUS operation.
17780 (rs6000_secondary_reload_class): If type is 64-bit, prefer to use
bd059b26 17781 FLOAT_REGS instead of VSX_RGS to allow use of reg+offset addressing.
c6d5ff83
MM
17782 (rs6000_cannot_change_mode_class): Do not allow TImode in VSX
17783 registers to share a register with a smaller sized type, since VSX
17784 puts scalars in the upper 64-bits.
17785 (print_operand): Add support for PTImode.
17786 (rs6000_register_move_cost): Use VECTOR_MEM_VSX_P instead of
17787 VECTOR_UNIT_VSX_P to catch types that can be loaded in VSX
17788 registers, but don't have arithmetic support.
17789 (rs6000_memory_move_cost): Add test for VSX.
17790 (rs6000_opt_masks): Add -mvsx-timode.
17791
17792 * config/rs6000/vsx.md (VSm): Change to use 64-bit aligned moves
17793 for TImode.
17794 (VSs): Likewise.
17795 (VSr): Use wt constraint for TImode.
17796 (VSv): Drop TImode support.
17797 (vsx_movti): Delete, replace with versions for 32-bit and 64-bit.
17798 (vsx_movti_64bit): Likewise.
17799 (vsx_movti_32bit): Likewise.
17800 (vec_store_<mode>): Use VSX iterator instead of vector iterator.
17801 (vsx_and<mode>3): Delete use of '?' constraint on inputs, just put
17802 one '?' on the appropriate output constraint. Do not allow TImode
17803 logical operations on 32-bit systems.
17804 (vsx_ior<mode>3): Likewise.
17805 (vsx_xor<mode>3): Likewise.
17806 (vsx_one_cmpl<mode>2): Likewise.
17807 (vsx_nor<mode>3): Likewise.
17808 (vsx_andc<mode>3): Likewise.
17809 (vsx_concat_<mode>): Likewise.
17810 (vsx_xxpermdi_<mode>): Fix thinko for non V2DF/V2DI modes.
17811
17812 * config/rs6000/rs6000.h (MASK_VSX_TIMODE): Map from
17813 OPTION_MASK_VSX_TIMODE.
17814 (enum rs6000_reg_class_enum): Add RS6000_CONSTRAINT_wt.
17815 (STACK_SAVEAREA_MODE): Use PTImode instead of TImode.
17816
17817 * config/rs6000/rs6000.md (INT mode attribute): Add PTImode.
17818 (TI2 iterator): New iterator for TImode, PTImode.
17819 (wd mode attribute): Add values for vector types.
bd059b26
UB
17820 (movti_string): Replace TI move operations with operations for TImode
17821 and PTImode. Add support for TImode being allowed in VSX registers.
c6d5ff83
MM
17822 (mov<mode>_string, TImode/PTImode): Likewise.
17823 (movti_ppc64): Likewise.
17824 (mov<mode>_ppc64, TImode/PTImode): Likewise.
17825 (TI mode splitters): Likewise.
17826
17827 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document wt
17828 constraint.
17829
1fc5eced
MG
178302013-03-20 Marc Glisse <marc.glisse@inria.fr>
17831
17832 PR tree-optimization/56355
17833 * fold-const.c (tree_binary_nonnegative_warnv_p) <MULT_EXPR>:
17834 Also handle integers with undefined overflow.
17835
22c4c869
CM
178362013-03-20 Catherine Moore <clm@codesourcery.com>
17837 Maciej W. Rozycki <macro@codesourcery.com>
17838 Tom de Vries <tom@codesourcery.com>
12211b99 17839 Nathan Sidwell <nathan@codesourcery.com>
22c4c869
CM
17840 Iain Sandoe <iain@codesourcery.com>
17841 Nathan Froyd <froydnj@codesourcery.com>
12211b99 17842 Chao-ying Fu <fu@mips.com>
22c4c869
CM
17843
17844 * doc/extend.texi: (micromips, nomicromips, nocompression):
7cf34aae 17845 Document new function attributes.
22c4c869
CM
17846 * doc/invoke.texi (minterlink-compressed, mmicromips,
17847 m14k, m14ke, m14kec): Document new options.
17848 (minterlink-mips16): Update documentation.
17849 * doc/md.texi (ZC, ZD): Document new constraints.
17850 * configure.ac (gcc_cv_as_micromips): Check if linker
17851 supports the .set micromips directive.
17852 * configure: Regenerate.
17853 * config.in: Regenerate.
17854 * config/mips/mips-tables.opt: Regenerate.
17855 * config/mips/micromips.md: New file.
17856 * constraints.md (ZC, ZD): New constraints.
17857 * config/mips/predicates.md (movep_src_register): New predicate.
17858 (movep_src_operand): New predicate.
17859 (non_volatile_mem_operand): New predicate.
17860 * config/mips/mips.md (multimem): New type.
17861 (length): Differentiate between 17-bit and 18-bit branch offsets.
17862 (MOVEP1, MOVEP2): New mode iterator.
33159866 17863 (mov_<load>l): Use ZC constraint.
22c4c869
CM
17864 (mov_<load>r): Likewise.
17865 (mov_<store>l): Likewise.
17866 (mov_<store>r): Likewise.
17867 (*branch_equality<mode>_inverted): Add microMIPS support.
17868 (*branch_equality<mode>): Likewise.
17869 (*jump_absolute): Likewise.
17870 (indirect_jump_<mode>): Likewise.
17871 (tablejump_<mode>): Likewise.
17872 (<optab>_internal): Likewise.
17873 (sibcall_internal): Likewise.
17874 (sibcall_value_internal): Likewise.
17875 (prefetch): Use constraint ZD.
17876 * config/mips/mips.opt (minterlink-compressed): New option.
17877 (minterlink-mips16): Now an alias for minterlink-compressed.
17878 (mmicromips): New option.
17879 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
17880 (compare_and_swap_12): Likewise.
17881 (sync_add<mode>): Likewise.
17882 (sync_<optab>_12): Likewise.
17883 (sync_old_<optab>_12): Likewise.
17884 (sync_new_<optab>_12): Likewise.
17885 (sync_nand_12): Likewise.
17886 (sync_old_nand_12): Likewise.
17887 (sync_new_nand_12): Likewise.
17888 (sync_sub<mode>): Likewise.
17889 (sync_old_add<mode>): Likewise.
17890 (sync_old_sub<mode>): Likewise.
17891 (sync_new_add<mode>): Likewise.
17892 (sync_new_sub<mode>): Likewise.
17893 (sync_<optab><mode>): Likewise.
17894 (sync_old_<optab><mode>): Likewise.
17895 (sync_new_<optab><mode>): Likewise.
17896 (sync_nand<mode>): Likewise.
17897 (sync_old_nand<mode>): Likewise.
17898 (sync_new_nand<mode>): Likewise.
17899 (sync_lock_test_and_set<mode>): Likewise.
17900 (test_and_set_12): Likewise.
17901 (atomic_compare_and_swap<mode>): Likewise.
17902 (atomic_exchange<mode>_llsc): Likewise.
17903 (atomic_fetch_add<mode>_llsc): Likewise.
17904 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
17905 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
17906 (umips_save_restore_pattern_p): Likewise.
17907 (umips_load_store_pair_p): Likewise.
17908 (umips_output_load_store_pair): Likewise.
17909 (umips_movep_target_p): Likewise.
17910 (umips_12bit_offset_address_p): Likewise.
17911 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
17912 (mips_base_mips16): Rename this...
17913 (mips_base_compression_flags): ...to this. Update all uses.
17914 (mips_attribute_table): Add micromips, nomicromips and nocompression.
17915 (mips_mips16_decl_p): Delete.
17916 (mips_nomips16_decl_p): Delete.
33159866 17917 (mips_get_compress_on_flags): New function.
22c4c869
CM
17918 (mips_get_compress_off_flags): New function.
17919 (mips_get_compress_mode): New function.
17920 (mips_get_compress_on_name): New function.
17921 (mips_get_compress_off_name): New function.
17922 (mips_insert_attributes): Support multiple compression types.
17923 (mips_merge_decl_attributes): Likewise.
17924 (umips_12bit_offset_address_p): New function.
17925 (mips_start_function_definition): Emit .set micromips directive.
17926 (mips_call_may_need_jalx_p): New function.
17927 (mips_function_ok_for_sibcall): Add microMIPS support.
17928 (mips_print_operand_punctuation): Support short delay slots and
17929 compact jumps.
17930 (umips_swm_mask, umips_swm_encoding): New.
17931 (umips_build_save_restore): New function.
17932 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
17933 (was_mips16_p): Remove.
17934 (old_compression_mode): New.
17935 (mips_set_compression_mode): New function.
17936 (mips_set_current_function): Add microMIPS support.
17937 (mips_option_override): Likewise.
17938 (umips_save_restore_pattern_p): New function.
17939 (umips_output_save_restore): New function.
17940 (umips_load_store_pair_p_1): New function.
17941 (umips_load_store_pair_p): New function.
17942 (umips_output_load_store_pair_1): New function.
17943 (umips_output_load_store_pair): New function.
17944 (umips_movep_target_p) New function.
17945 (mips_prepare_pch_save): Add microMIPS support.
17946 * config/mips/mips.h (TARGET_COMPRESSION): New.
17947 (TARGET_CPU_CPP_BUILTINS): Update macro
17948 to use new compression flags and to support microMIPS.
17949 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
17950 (MIPS_ARCH_FLOAT_SPEC): Likewise.
17951 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
17952 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
17953 (ASM_SPEC): Support mmicromips and mno-micromips.
17954 (M16STORE_REG_P): New macro.
17955 (MIPS_CALL): Support TARGET_MICROMIPS.
17956 (MICROMIPS_J): New macro.
17957 (mips_base_mips16): Rename this...
17958 (mips_base_compression_flags): ...to this.
17959 (UMIPS_12BIT_OFFSET_P): New macro.
17960 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
17961 (MULTILIB_DIRNAMES): Likewise.
92a8d7a7
RB
179622013-03-20 Richard Biener <rguenther@suse.de>
17963
17964 PR tree-optimization/56661
17965 * tree-ssa-sccvn.c (visit_use): Only value-number calls if
17966 the result does not have to be distinct.
17967
54714c68
RB
179682013-03-20 Richard Biener <rguenther@suse.de>
17969
17970 * tree-inline.c (copy_tree_body_r): Sync MEM_REF code with
17971 remap_gimple_op_r.
17972
cca1130d 179732013-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12211b99 17974 Steven Bosscher <steven@gcc.gnu.org>
cca1130d
BS
17975
17976 PR rtl-optimization/56605
17977 * loop-iv.c (implies_p): Handle equal RTXs and subregs.
17978
2a930377
UB
179792013-03-20 Uros Bizjak <ubizjak@gmail.com>
17980
17981 PR bootstrap/56656
17982 * config/i386/i386.md (*movdi_internal): Handle broken assemblers
17983 that require movd instead of movq.
17984
d6d305fe
RB
179852013-03-20 Richard Biener <rguenther@suse.de>
17986
17987 * tree-ssa-structalias.c (struct variable_info): Add pointer
17988 to the first field of an aggregate with sub-vars. Make
17989 this and the pointer to the next subfield its ID.
17990 (vi_next): New function.
17991 (nothing_id, anything_id, readonly_id, escaped_id, nonlocal_id,
17992 storedanything_id, integer_id): Increment by one.
17993 (new_var_info, get_call_vi, lookup_call_clobber_vi,
17994 get_call_clobber_vi): Adjust.
17995 (solution_set_expand): Simplify and speedup.
17996 (solution_set_add): Inline into ...
17997 (set_union_with_increment): ... this. Adjust accordingly.
17998 (do_sd_constraint): Likewise.
17999 (do_ds_constraint): Likewise.
18000 (do_complex_constraint): Simplify.
18001 (build_pred_graph): Adjust.
18002 (solve_graph): Likewise. Simplify and speedup.
18003 (get_constraint_for_ssa_var, get_constraint_for_ptr_offset,
18004 get_constraint_for_component_ref, get_constraint_for_1,
18005 first_vi_for_offset, first_or_preceding_vi_for_offset,
18006 create_function_info_for, create_variable_info_for_1,
18007 create_variable_info_for, intra_create_variable_infos): Adjust.
18008 (init_base_vars): Push NULL for ID zero.
18009 (compute_points_to_sets): Adjust.
18010
a271b42d
RB
180112013-03-20 Richard Biener <rguenther@suse.de>
18012
18013 * cfgloop.c (verify_loop_structure): Streamline and avoid
18014 ICEing on corrupt loop tree.
18015 * graph.c (draw_cfg_nodes_for_loop): Avoid ICEing on corrupt
18016 loop tree.
18017
ebd65954
RB
180182013-03-20 Richard Biener <rguenther@suse.de>
18019
18020 * tree-vect-loop-manip.c (slpeel_can_duplicate_loop_p): Do not
18021 check whether an SSA update is needed.
18022
4547b7ee
RS
180232013-03-20 Richard Sandiford <rdsandiford@googlemail.com>
18024
18025 * config/mips/constraints.md (T): Rename to...
18026 (Yf): ...this.
18027 (U): Rename to...
18028 (Yd): ...this.
18029 * config/mips/mips.md (*movdi_64bit, *movdi_64bit_mips16)
18030 (*mov<mode>_internal, *mov<mode>_mips16): Update accordingly.
18031
0b8cdc58
IB
180322013-03-19 Ian Bolton <ian.bolton@arm.com>
18033
18034 * config/aarch64/aarch64.md (*sub<mode>3_carryin): New pattern.
18035 (*subsi3_carryin_uxtw): Likewise.
18036
5977a10d
IB
180372013-03-19 Ian Bolton <ian.bolton@arm.com>
18038
18039 * config/aarch64/aarch64.md (*ror<mode>3_insn): New pattern.
18040 (*rorsi3_insn_uxtw): Likewise.
18041
bd83ff2c
IB
180422013-03-19 Ian Bolton <ian.bolton@arm.com>
18043
18044 * config/aarch64/aarch64.md (*extr<mode>5_insn): New pattern.
18045 (*extrsi5_insn_uxtw): Likewise.
18046
ba65123c
RB
180472013-03-19 Richard Biener <rguenther@suse.de>
18048
18049 PR tree-optimization/56273
18050 * passes.c (init_optimization_passes): Move second VRP after DOM.
18051
2eac0476
UB
180522013-03-19 Uros Bizjak <ubizjak@gmail.com>
18053
18054 * config/i386/i386.md (*movti_internal): Merge from
18055 *movti_internal_rex64 and *movti_internal_sse. Use x64 isa attribute.
18056 (*movdi_internal): Merge with *movdi_internal_rex64. Use x64 and
18057 nox64 isa attributes.
18058
6e55eda7
RB
180592013-03-18 Richard Biener <rguenther@suse.de>
18060
18061 * tree-ssa-structalias.c (find): Use gcc_checking_assert.
18062 (unite): Likewise.
18063 (merge_node_constraints): Likewise.
18064 (build_succ_graph): Likewise.
18065 (valid_graph_edge): Inline into single caller.
18066 (unify_nodes): Likewise. Use bitmap_set_bit return value
18067 and cache varinfo.
18068 (scc_visit): Fix formatting and variable use.
18069 (do_sd_constraint): Use gcc_checking_assert.
18070 (do_ds_constraint): Likewise.
18071 (do_complex_constraint): Likewise.
18072 (condense_visit): Likewise. Cleanup.
18073 (dump_pred_graph): New function.
18074 (perform_var_substitution): Dump the pred-graph before
18075 variable substitution.
18076 (find_equivalent_node): Use gcc_checking_assert.
18077 (rewrite_constraints): Guard checking loop with ENABLE_CHECKING.
18078
4bdd44c4
RB
180792013-03-18 Richard Biener <rguenther@suse.de>
18080
18081 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks):
18082 Remove cond_expr_stmt_list argument and do not gimplify the
18083 built expression.
18084 (vect_loop_versioning): Adjust.
18085 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
18086 Cleanup to use less temporaries.
18087 (vect_create_data_ref_ptr): Cleanup.
18088
38c56a5b
JJ
180892013-03-18 Jakub Jelinek <jakub@redhat.com>
18090
18091 PR tree-optimization/56635
18092 * fold-const.c (operand_equal_p): For MEM_REF and TARGET_MEM_REF,
18093 require types_compatible_p types.
18094
20b2e6a0
NC
180952013-03-18 Nick Clifton <nickc@redhat.com>
18096
a6178a25
NC
18097 * config/stormy16/stormy16.c (xstormy16_expand_prologue): Remove
18098 spurious backslash.
18099
20b2e6a0
NC
18100 * config/mn10300/mn10300.c (mn10300_get_live_callee_saved_regs):
18101 Add missing line to comment describing function.
18102
92608d0e
RB
181032013-03-18 Richard Biener <rguenther@suse.de>
18104
18105 PR tree-optimization/56210
18106 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
18107 Handle string / character search functions.
18108 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
18109
31348d52
RB
181102013-03-18 Richard Biener <rguenther@suse.de>
18111
18112 PR middle-end/56483
18113 * cfgexpand.c (expand_gimple_cond): Inline gimple_cond_single_var_p
18114 and implement properly.
18115 * gimple.h (gimple_cond_single_var_p): Remove.
18116
fcac74a1
RB
181172013-03-18 Richard Biener <rguenther@suse.de>
18118
18119 * tree-data-ref.h (find_data_references_in_loop): Declare.
18120 * tree-data-ref.c (get_references_in_stmt): Use a stack
18121 vector pre-allocated in the callers.
18122 (find_data_references_in_stmt): Adjust.
18123 (graphite_find_data_references_in_stmt): Likewise.
18124 (create_rdg_vertices): Likewise.
18125 (find_data_references_in_loop): Export.
18126 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
18127 Compute dependences here...
18128 (vect_analyze_data_refs): ...not here. When we encounter
18129 a non-vectorizable data reference in basic-block vectorization
18130 truncate the data reference vector. Do not bother to
18131 fixup data-dependence information for gather loads.
18132 * tree-vect-slp.c (vect_slp_analyze_bb_1): Check the number
18133 of data references, as reported.
18134
0d5a1b56
RB
181352013-03-18 Richard Biener <rguenther@suse.de>
18136
18137 PR tree-optimization/3713
18138 * tree-ssa-sccvn.c (visit_copy): Simplify. Always propagate
18139 has_constants and expr.
18140 (stmt_has_constants): Properly valueize SSA names when deciding
18141 whether the stmt has constants.
18142
789c34e3
RB
181432013-03-18 Richard Biener <rguenther@suse.de>
18144
18145 * tree-ssa-loop-manip.c (find_uses_to_rename): Do not scan the
18146 whole function when there is nothing to do.
18147 * tree-ssa-loop.c (pass_vectorize): Remove TODO_update_ssa.
18148 * tree-vectorizer.c (vectorize_loops): Update virtual and
18149 loop-closed SSA once.
18150 * tree-vect-loop.c (vect_transform_loop): Do not update SSA here.
18151
076b4605
RB
181522013-03-18 Richard Biener <rguenther@suse.de>
18153
18154 PR middle-end/56113
18155 * domwalk.c (bb_postorder): New global static.
18156 (cmp_bb_postorder): New function.
18157 (walk_dominator_tree): Replace scheme imposing an order for
18158 visiting dominator sons by one sorting them at the time they
18159 are pushed on the stack.
18160
bdb01696
RB
181612013-03-18 Richard Biener <rguenther@suse.de>
18162
18163 PR tree-optimization/39326
18164 * tree-ssa-loop-im.c (refs_independent_p): Exploit symmetry.
18165 (struct mem_ref): Replace mem member with ao_ref typed member.
18166 (MEM_ANALYZABLE): Adjust.
18167 (memref_eq): Likewise.
18168 (mem_ref_alloc): Likewise.
18169 (gather_mem_refs_stmt): Likewise.
18170 (mem_refs_may_alias_p): Use the ao_ref to query the alias oracle.
18171 (execute_sm_if_changed_flag_set): Adjust.
18172 (execute_sm): Likewise.
18173 (ref_always_accessed_p): Likewise.
18174 (refs_independent_p): Likewise.
18175 (can_sm_ref_p): Likewise.
18176
12d2dc5e
JJ
181772013-03-18 Jakub Jelinek <jakub@redhat.com>
18178
18179 PR c/56566
18180 * tree.c (tree_int_cst_min_precision): For integer_zerop (value)
18181 return 1 even for !unsignedp.
18182
286fb677
UB
181832013-03-17 Uros Bizjak <ubizjak@gmail.com>
18184
18185 * config/i386/i386.md (isa): Add x64 and nox64.
18186 (enabled): Define x64 for TARGET_64BIT and nox64 for !TARGET_64BIT.
18187 (*pushtf): Enable *roF alternative for x64 isa only.
18188 (*pushxf): Merge with *pushxf_nointeger. Use Yx*r constraint. Set
18189 mode attribute of integer alternatives to DImode for TARGET_64BIT.
18190 (*pushdf): Merge with *pushdf_rex64. Use x64 and nox64 isa attributes.
18191 (*movtf_internal): Merge from *movtf_internal_rex64 and
18192 *movtf_internal_sse. Use x64 and nox64 isa attributes.
18193 (*movxf_internal): Merge with *movxf_internal_rex64. Use x64 and
18194 nox64 isa attributes.
18195 (*movdf_internal): Merge with *movdf_internal_rex64. Use x64 and
18196 nox64 isa attributes.
18197 * config/i386/constraints.md (Yd): Do not set for TARGET_64BIT.
18198
88b97037
UB
181992013-03-17 Uros Bizjak <ubizjak@gmail.com>
18200
18201 * config/alpha/alpha.c (TARGET_LRA_P): New define.
18202
9f4f1735
JJ
182032013-03-17 Jakub Jelinek <jakub@redhat.com>
18204
18205 PR target/56640
18206 * config/arm/arm.h (REG_CLASS_NAMES): Add "SFP_REG" and "AFP_REG"
18207 class names. Remove trailing comma after "ALL_REGS".
18208
48f4a6fa
JH
182092013-03-16 Jan Hubicka <jh@suse.cz>
18210
18211 * cgraph.h (cgraph_get_create_real_symbol_node): Declare.
18212 * cgraph.c (cgraph_get_create_real_symbol_node): New function.
18213 * cgrpahbuild.c: Use cgraph_get_create_real_symbol_node instead
18214 of cgraph_get_create_node.
18215 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
18216
98e81123
JM
182172013-03-16 Jason Merrill <jason@redhat.com>
18218
18219 PR debug/49090
18220 * dwarf2out.c (gen_generic_params_dies): Indicate default arguments
18221 with DW_AT_default_value.
18222
8a298c04
JJ
182232013-03-16 Jakub Jelinek <jakub@redhat.com>
18224
18225 * BASE-VER: Set to 4.9.0.
18226
4323afa0
AK
182272013-03-14 Andi Kleen <ak@linux.intel.com>
18228
18229 PR target/56619
18230 * doc/extend.texi: Document __ATOMIC_HLE_ACQUIRE,
18231 __ATOMIC_HLE_RELEASE. Document __builtin_ia32 TSX intrincs.
18232 Document _x* TSX intrinsics.
18233
b3c0d469
JJ
182342013-03-14 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
18235 David Holsgrove <david.holsgrove@xilinx.com>
8cc9a5a5
EI
18236
18237 * configure.ac: Add MicroBlaze TLS support detection.
18238 * configure: Regenerate.
88b97037
UB
18239 * config/microblaze/microblaze-protos.h
18240 (microblaze_cannot_force_const_mem, microblaze_tls_referenced_p,
18241 symbol_mentioned_p, label_mentioned_p): Add prototypes.
18242 * config/microblaze/microblaze.c (microblaze_address_type): Add
18243 ADDRESS_TLS and tls_reloc address types.
8cc9a5a5
EI
18244 (microblaze_address_info): Add tls_reloc.
18245 (TARGET_HAVE_TLS): Define.
18246 (get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1,
18247 microblaze_tls_referenced_p, microblaze_cannot_force_const_mem,
88b97037
UB
18248 symbol_mentioned_p, label_mentioned_p, tls_mentioned_p,
18249 load_tls_operand, microblaze_call_tls_get_addr,
18250 microblaze_legitimize_tls_address): New functions.
8cc9a5a5
EI
18251 (microblaze_classify_unspec): Handle UNSPEC_TLS.
18252 (get_base_reg): Use microblaze_tls_symbol_p.
18253 (microblaze_classify_address): Handle TLS.
88b97037
UB
18254 (microblaze_legitimate_pic_operand): Use symbol_mentioned_p,
18255 label_mentioned_p and microblaze_tls_referenced_p.
8cc9a5a5
EI
18256 (microblaze_legitimize_address): Handle TLS.
18257 (microblaze_address_insns): Handle ADDRESS_TLS.
18258 (pic_address_needs_scratch): Handle TLS.
18259 (print_operand_address): Handle TLS.
18260 (microblaze_expand_prologue): Check TLS_NEEDS_GOT.
18261 (microblaze_expand_move): Handle TLS.
88b97037
UB
18262 (microblaze_legitimate_constant_p): Check
18263 microblaze_cannot_force_const_mem and microblaze_tls_symbol_p.
8cc9a5a5
EI
18264 (TARGET_CANNOT_FORCE_CONST_MEM): Define.
18265 * config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define
18266 (PIC_OFFSET_TABLE_REGNUM): Set.
18267 * config/microblaze/linux.h (TLS_NEEDS_GOT): Define.
18268 * config/microblaze/microblaze.md (UNSPEC_TLS): Define.
18269 (addsi3, movsi_internal2, movdf_internal): Update constraints
18270 * config/microblaze/predicates.md (arith_plus_operand): Define
88b97037
UB
18271 (move_operand): Redefine as move_src_operand,
18272 check microblaze_tls_referenced_p.
8cc9a5a5 18273
d803a491
IB
182742013-03-14 Ian Bolton <ian.bolton@arm.com>
18275
18276 * config/aarch64/aarch64.md: (*and<mode>3nr_compare0): Use CC_NZ.
18277 (*and_<SHIFT:optab><mode>3nr_compare0): Likewise.
18278
a8504f22
IB
182792013-03-14 Ian Bolton <ian.bolton@arm.com>
18280
18281 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return correct
18282 CC mode for AND.
18283
df2dfaea
JJ
182842013-03-14 Jakub Jelinek <jakub@redhat.com>
18285
fbd28bc3
JJ
18286 PR tree-optimization/53265
18287 * common.opt (Waggressive-loop-optimizations): New option.
18288 * tree-ssa-loop-niter.c: Include tree-pass.h.
18289 (do_warn_aggressive_loop_optimizations): New function.
18290 (record_estimate): Call it. Don't add !is_exit bounds to loop->bounds
18291 if number_of_latch_executions returned constant.
18292 (estimate_numbers_of_iterations_loop): Call number_of_latch_executions
18293 early. If number_of_latch_executions returned constant, set
18294 nb_iterations_upper_bound back to it.
18295 * cfgloop.h (struct loop): Add warned_aggressive_loop_optimizations
18296 field.
18297 * Makefile.in (tree-ssa-loop-niter.o): Depend on $(TREE_PASS_H).
18298 * doc/invoke.texi (-Wno-aggressive-loop-optimizations): Document.
18299
df2dfaea
JJ
18300 * config/aarch64/t-aarch64-linux (MULTARCH_DIRNAME): Remove.
18301 (MULTILIB_OSDIRNAMES): Set.
18302 * genmultilib: If defaultosdirname doesn't start with :: , set
18303 defaultosdirname2 instead, clear it and emit two . multilib_raw
18304 entries instead of just one.
18305
ee0d2b68
KK
183062013-03-14 Kaz Kojima <kkojima@gcc.gnu.org>
18307
18308 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_USERMODE.
18309 (SUBTARGET_OVERRIDE_OPTIONS): Set TARGET_USERMODE as default.
18310 * config/sh/netbsd-elf.h (TARGET_DEFAULT): Remove MASK_USERMODE.
18311 (SUBTARGET_OVERRIDE_OPTIONS): New.
18312
decc676e
OE
183132013-03-13 Oleg Endo <olegendo@gcc.gnu.org>
18314
18315 PR target/49880
18316 * config/sh/sh.opt (FPU_SINGLE_ONLY): New mask.
18317 (musermode): Convert to Var(TARGET_USERMODE).
18318 * config/sh/sh.h (SELECT_SH2A_SINGLE_ONLY, SELECT_SH4_SINGLE_ONLY,
18319 MASK_ARCH): Add MASK_FPU_SINGLE_ONLY.
18320 * config/sh/sh.c (sh_option_override): Use
18321 TARGET_FPU_DOUBLE || TARGET_FPU_SINGLE_ONLY for call-fp case.
18322 * config/sh/sh.md (udivsi3_i1, divsi3_i1): Remove ! TARGET_SH4
18323 condition.
18324 (udivsi3_i4, divsi3_i4): Use TARGET_FPU_DOUBLE condition instead of
18325 TARGET_SH4.
18326 (udivsi3_i4_single, divsi3_i4_single): Use
18327 TARGET_FPU_SINGLE_ONLY || TARGET_FPU_DOUBLE instead of TARGET_HARD_SH4.
18328
f4b719c7
DK
183292013-03-13 Dave Korn <dave.korn.cygwin@....>
18330
18331 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): Make shared libgcc the
18332 default setting.
18333
c40eced0
RB
183342013-03-13 Richard Biener <rguenther@suse.de>
18335
18336 PR tree-optimization/56608
18337 * tree-vect-slp.c (vect_schedule_slp): Do not remove scalar
18338 calls when vectorizing basic-blocks.
18339
1bfa5973
JJ
183402013-03-13 Jakub Jelinek <jakub@redhat.com>
18341
18342 PR plugins/45078
18343 * config.gcc: On arm, mips, sh and sparc add vxworks-dummy.h to
18344 tm_file.
18345
6fcf5434
JJ
183462013-03-12 Jakub Jelinek <jakub@redhat.com>
18347
18348 * doc/invoke.texi (-Waddr-space-convert): Move into the table earlier.
18349
4f38fa8c
JH
183502013-03-11 Jan Hubicka <jh@suse.cz>
18351
18352 PR lto/56557
18353 * lto-streamer-out.c (output_symbol_p): Skip references from
18354 constructors of external variables.
18355
c5c5ba89
JH
183562013-03-11 Jan Hubicka <jh@suse.cz>
18357
18358 PR middle-end/56571
18359 * valtrack.c (cleanup_auto_inc_dec): Unshare clobbers originating
18360 from pseudos.
18361 * emit-rtl.c (verify_rtx_sharing): Likewise.
18362 (copy_insn_1): Likewise.
18363 * rtl.c (copy_rtx): Likewise.
18364
c2a939b1
GJL
183652013-03-11 Georg-Johann Lay <avr@gjlay.de>
18366
18367 PR target/56591
18368 * config/avr/avr.c (avr_print_operand): Add space after '%c' in
18369 output_operand_lossage message.
88b97037 18370
3c3279fb
RE
183712013-03-11 Richard Earnshaw <rearnsha@arm.com>
18372
18373 PR target/56470
18374 * arm.c (shift_op): Validate RTL pattern on the fly.
18375 (arm_print_operand, case 'S'): Don't use shift_operator to validate
18376 the RTL.
18377
aef5ef9d
JDA
183782013-03-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
18379
18380 PR target/56347
18381 * config/pa/pa.md (call_value): Check for calls to powf and direct to
18382 new call patterns that clobber %fr12.
18383 (call_val_powf, call_val_powf_pic, call_val_powf_64bit): New insn,
18384 split and postreload patterns.
18385 * config/pa/pa.c (pa_conditional_register_usage): Revert marking
18386 registers %fr12 and %fr12R as call used.
18387
456610d3
SB
183882013-03-09 Steven Bosscher <steven@gcc.gnu.org>
18389
18390 * dse.c (delete_dead_store_insn): Respect TDF_DETAILS.
18391 (canon_address, record_store, replace_read, check_mem_read_rtx,
18392 scan_insn, dse_step1, dse_step2_init, dse_step2_spill,
18393 dse_step4, dse_step5_nospill, dse_step5_spill, dse_step6,
18394 rest_of_handle_dse): Likewise.
18395
4b1baac8
RS
183962013-03-09 Richard Sandiford <rdsandiford@googlemail.com>
18397
18398 PR middle-end/56524
18399 * tree.h (tree_optimization_option): Rename target_optabs to optabs.
18400 Add base_optabs.
18401 (TREE_OPTIMIZATION_OPTABS): Update after previous field change.
18402 (TREE_OPTIMIZATION_BASE_OPTABS): New macro.
18403 (save_optabs_if_changed): Replace with...
18404 (init_tree_optimization_optabs): ...this.
18405 * optabs.c (save_optabs_if_changed): Rename to...
18406 (init_tree_optimization_optabs): ...this. Take the optimization node
18407 as argument. Do nothing if the base optabs are already correct.
18408 Reuse the existing TREE_OPTIMIZATION_OPTABS memory if we need
18409 to recompute optabs.
18410 * function.h (function): Remove optabs field.
18411 * function.c (invoke_set_current_function_hook): Call
18412 init_tree_optimization_optabs. Use the result to initialize
18413 this_fn_optabs.
18414
b7a78683
AH
184152013-02-27 Aldy Hernandez <aldyh@redhat.com>
18416
18417 * trans-mem.c (expand_transaction): Do not set PR_INSTRUMENTEDCODE
18418 if GTMA_HAS_NO_INSTRUMENTATION.
18419 (generate_tm_state): Keep GTMA_HAS_NO_INSTRUMENTATION bit.
18420 (ipa_tm_transform_transaction): Set GTMA_HAS_NO_INSTRUMENTATION.
18421 * gimple.h (GTMA_HAS_NO_INSTRUMENTATION): Define.
18422 * gimple-pretty-print.c (dump_gimple_transaction): Handle
18423 GTMA_HAS_NO_INSTRUMENTATION.
18424
6384c29b
JJ
184252013-03-08 Jakub Jelinek <jakub@redhat.com>
18426
18427 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Don't link against
18428 libasan_preinit.o.
18429
ecd4f20a
MP
184302013-03-08 Marek Polacek <polacek@redhat.com>
18431 Jakub Jelinek <jakub@redhat.com>
18432
18433 PR tree-optimization/56478
18434 * predict.c (is_comparison_with_loop_invariant_p): Change the
18435 type of loop_step to tree.
18436 (predict_loops): Adjust.
18437 (predict_iv_comparison): Perform the computations on double_ints.
18438
64366d35
RB
184392013-03-08 Richard Biener <rguenther@suse.de>
18440
18441 PR tree-optimization/56570
18442 * tree-cfg.c (verify_expr_location_1): Verify locations for
18443 DECL_DEBUG_EXPR.
18444 * tree-sra.c (create_access_replacement): Strip locations
18445 from DECL_DEBUG_EXPRs.
18446
a9d5a059
RB
184472013-03-08 Richard Biener <rguenther@suse.de>
18448
18449 * tree-inline.c (expand_call_inline): Do not associate
18450 a BLOCK with the location in BLOCK_SOURCE_LOCATION.
18451 * tree-cfg.c (verify_location): Verify BLOCK_SOURCE_LOCATION.
18452
b7aa4e9a
RB
184532013-03-08 Richard Biener <rguenther@suse.de>
18454
18455 * tree-ssa-ter.c (is_replaceable_p): Do not TER across location
18456 or block changes with -Og. Fix for location / block encoding
18457 changes and PHI arguments with locations.
18458
c4c2f9fa
SB
184592013-03-07 Steven Bosscher <steven@gcc.gnu.org>
18460
18461 * bitmap.c (struct bitmap_descriptor_d): Use unsigned HOST_WIDEST_INT
18462 for all counters.
18463 (struct output_info): Likewise.
18464 (register_overhead): Remove bad gcc_assert.
18465 (bitmap_find_bit): If there is only a single bitmap element, do not
18466 count a miss as a search.
18467 (print_statistics): Update for counter type changes.
18468 (dump_bitmap_statistics): Likewise. Print headers such that they
18469 are properly lined up with the printed counters.
18470
5bf6606a
JJ
184712013-03-07 Jakub Jelinek <jakub@redhat.com>
18472
18473 PR tree-optimization/56559
18474 * tree-ssa-reassoc.c (zero_one_operation): When looking at rhs2,
18475 check that it has only a single use.
18476
2c653d46
RB
184772013-03-07 Richard Biener <rguenther@suse.de>
18478
18479 * doc/invoke.texi (fwhole-program): Discourage use in combination
18480 with -flto.
18481
a72d8780
JJ
184822013-03-06 Jakub Jelinek <jakub@redhat.com>
18483
01a454df
JJ
18484 * config/arm/t-arm (TM_H, OPTIONS_H_EXTRA): Add arm-cores.def.
18485
c1781047
JJ
18486 PR tree-optimization/56539
18487 * tree-tailcall.c (adjust_return_value_with_ops): Use GSI_SAME_STMT
18488 instead of GSI_CONTINUE_LINKING as last argument to
18489 force_gimple_operand_gsi. Adjust function comment.
18490
9772c47a
JJ
18491 * config/aarch64/t-aarch64 (TM_H, OPTIONS_H_EXTRA): Add
18492 aarch64-cores.def.
18493
a72d8780
JJ
18494 PR middle-end/56548
18495 * expr.c (expand_cond_expr_using_cmove): When expanding cmove in
18496 promoted mode, convert the result back to the original mode.
18497
fa5556de
RB
184982013-03-06 Richard Biener <rguenther@suse.de>
18499
18500 PR middle-end/56294
18501 * tree-into-ssa.c (insert_phi_nodes_for): Add dumping.
18502 (insert_updated_phi_nodes_compare_uids): New function.
18503 (update_ssa): Sort symbols_to_rename after UID before
18504 traversing it to insert PHI nodes.
18505
010403d1
RB
185062013-03-06 Richard Biener <rguenther@suse.de>
18507
18508 PR middle-end/50494
18509 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
18510 Do not adjust alignment of DECL_IN_CONSTANT_POOL decls.
18511
18512 Revert
18513 2013-02-13 Richard Biener <rguenther@suse.de>
18514
18515 PR lto/50494
18516 * varasm.c (output_constant_def_1): Get the decl representing
18517 the constant as argument.
18518 (output_constant_def): Wrap output_constant_def_1.
18519 (make_decl_rtl): Use output_constant_def_1 with the decl
18520 representing the constant.
18521 (build_constant_desc): Optionally re-use a decl already
18522 representing the constant.
18523 (tree_output_constant_def): Adjust.
18524
3c27ce4c
JY
185252013-03-06 Joey Ye <joey.ye@arm.com>
18526
18527 PR lto/50293
18528 * gcc.c (convert_white_space): New function.
18529 (main): Handles white space in function name.
18530
8f6d1c86
OE
185312013-03-06 Oleg Endo <olegendo@gcc.gnu.org>
18532
18533 PR target/56529
18534 * config/sh/sh.c (sh_option_override): Check for TARGET_DYNSHIFT
18535 instead of TARGET_SH2 for call-table case. Do not set sh_div_strategy
18536 to SH_DIV_CALL_TABLE for TARGET_SH2.
18537 * config.gcc (sh_multilibs): Add m2 and m2a to sh*-*-linux* multilib
18538 list.
18539 * doc/invoke.texi (SH options): Document mdiv= call-div1, call-fp,
18540 call-table options.
18541
798a209f
SA
185422013-03-05 Sterling Augustine <saugustine@google.com>
18543 Cary Coutant <ccoutant@google.com>
18544
18545 PR debug/55364
18546 * dwarf2out.c (resolve_addr): Don't call
18547 remove_loc_list_addr_table_entries a second time for the same
18548 expression.
18549
6cfa417f 185502013-03-05 Jakub Jelinek <jakub@redhat.com>
ee61ea38 18551
6cfa417f
JJ
18552 PR debug/56510
18553 * cfgexpand.c (expand_debug_parm_decl): Call copy_rtx on incoming.
18554 (avoid_complex_debug_insns): New function.
18555 (expand_debug_locations): Call it.
18556
18557 PR rtl-optimization/56484
18558 * ifcvt.c (noce_process_if_block): If else_bb is NULL, avoid extending
18559 lifetimes of hard registers on small register class machines.
18560
185612013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
18562
18563 * config/microblaze/microblaze-protos.h: Rename
ee61ea38 18564 microblaze_is_interrupt_handler to microblaze_is_interrupt_variant.
6cfa417f 18565 * config/microblaze/microblaze.c (microblaze_attribute_table): Add
ee61ea38
DH
18566 fast_interrupt.
18567 (microblaze_fast_interrupt_function_p): New function.
18568 (microblaze_is_interrupt_handler): Rename to
18569 microblaze_is_interrupt_variant and add fast_interrupt check.
18570 (microblaze_must_save_register): Use microblaze_is_interrupt_variant.
18571 (save_restore_insns): Likewise.
18572 (compute_frame_size): Likewise.
18573 (microblaze_function_prologue): Add FAST_INTERRUPT_NAME.
18574 (microblaze_globalize_label): Likewise.
6cfa417f
JJ
18575 * config/microblaze/microblaze.h: Define FAST_INTERRUPT_NAME.
18576 * config/microblaze/microblaze.md: Use wrapper
ee61ea38
DH
18577 microblaze_is_interrupt_variant.
18578
731aefac
KT
185792013-03-05 Kai Tietz <ktietz@redhat.com>
18580
18581 * sdbout.c (sdbout_one_type): Switch to current function's section
18582 supporting cold/hot.
18583
a72d8780 185842013-03-05 David Holsgrove <david.holsgrove@xilinx.com>
e34fd5a7
DH
18585
18586 * doc/invoke.texi (MicroBlaze): Add -mbig-endian, -mlittle-endian,
18587 -mxl-reorder.
18588
334e71e8
JJ
185892013-03-05 Jakub Jelinek <jakub@redhat.com>
18590
0b50e654
JJ
18591 PR middle-end/56461
18592 * ggc-common.c (gt_pch_save): For ENABLE_VALGRIND_CHECKING,
18593 if VALGRIND_GET_VBITS is defined, temporarily make object
18594 memory all defined, and restore previous valgrind addressability
18595 and definability afterwards. Free this_object at the end.
18596
4ccf8f43
JJ
18597 PR middle-end/56461
18598 * lra.c (lra): Call lra_clear_live_ranges if live_p,
18599 right before calling lra_create_live_ranges, also call it
18600 when clearing live_p. Only call lra_clear_live_ranges
18601 at the end if live_p.
18602
334e71e8
JJ
18603 PR middle-end/56461
18604 * sched-deps.c (delete_dep_node): Free DEP_REPLACE.
18605
9ca966ca
RB
186062013-03-05 Richard Biener <rguenther@suse.de>
18607
18608 PR tree-optimization/56521
18609 * tree-ssa-sccvn.c (set_value_id_for_result): Always initialize
18610 value-id.
18611
d273b176
SB
186122013-03-05 Steven Bosscher <steven@gcc.gnu.org>
18613
18614 PR c++/55135
18615 * except.h (remove_unreachable_eh_regions): New prototype.
18616 * except.c (remove_eh_handler_splicer): New function, split out
18617 of remove_eh_handler.
18618 (remove_eh_handler): Use remove_eh_handler_splicer. Add comment
18619 warning about running it on many EH regions one at a time.
18620 (remove_unreachable_eh_regions_worker): New function, walk the
18621 EH tree in depth-first order and remove non-marked regions.
18622 (remove_unreachable_eh_regions): New function.
18623 * tree-eh.c (mark_reachable_handlers): New function, split out
18624 from remove_unreachable_handlers.
18625 (remove_unreachable_handlers): Use mark_reachable_handlers and
18626 remove_unreachable_eh_regions.
18627 (remove_unreachable_handlers_no_lp): Use mark_reachable_handlers
18628 and remove_unreachable_eh_regions.
18629
5e7f1aef
RB
186302013-03-05 Richard Biener <rguenther@suse.de>
18631
18632 PR middle-end/56525
18633 * loop-init.c (fix_loop_structure): Remove loops in two stages,
18634 not freeing them until the end.
18635
f276b762
AK
186362013-03-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18637
18638 * config/s390/s390.h: Define DWARF2_ASM_LINE_DEBUG_INFO.
18639
12a43ab8
RB
186402013-03-05 Richard Biener <rguenther@suse.de>
18641
18642 PR tree-optimization/56270
18643 * tree-vect-slp.c (vect_schedule_slp): Clear vectorized stmts
18644 of loads after scheduling an SLP instance.
18645
93675444
JJ
186462013-03-05 Jakub Jelinek <jakub@redhat.com>
18647
db4138e3
JJ
18648 * Makefile.in (dg_target_exps): Add aarch64.exp, epiphany.exp and
18649 tic6x.exp.
18650 (check_gcc_parallelize): Run guality.exp as a separate job from
18651 vect.exp with unsorted.exp and $(dg_target_exps) separately from
18652 struct-layout-1.exp with stackalign.exp.
18653
dd3d1ec0
JJ
18654 * alias.c (init_alias_analysis): Clear reg_known_equiv_p bitmap.
18655
b8d381a3
JJ
18656 PR middle-end/56461
18657 * tree-vect-slp.c (vect_supported_load_permutation_p): Free
18658 load_index sbitmap even if some bit in it isn't set.
18659
b4f9786b
JJ
18660 PR middle-end/56461
18661 * tree-ssa-loop-niter.c (bb_queue): Remove typedef.
18662 (discover_iteration_bound_by_body_walk): Change queues to
18663 vec<vec<basic_block> > and queue to vec<basic_block>. Fix up
18664 spelling in comment. Call safe_push on queues[bound_index] directly.
18665 Release queues[queue_index] in every iteration unconditionally.
18666 Release bounds vector.
18667
93675444
JJ
18668 PR middle-end/56461
18669 * tree-vect-stmts.c (free_stmt_vec_info_vec): Call
18670 free_stmt_vec_info on any left-over stmt_vec_info in the vector.
18671 * tree-vect-loop.c (vect_create_epilog_for_reduction): Release
18672 inner_phis vector.
18673
3e492e9c
RB
186742013-03-05 Richard Biener <rguenther@suse.de>
18675
18676 PR lto/56515
18677 * tree-inline.c (remap_blocks_to_null): New function.
18678 (expand_call_inline): When expanding a call stmt without
18679 an associated block inline remap all callee blocks to NULL.
18680
a5d1569a
JJ
186812013-03-05 Jakub Jelinek <jakub@redhat.com>
18682
86efb5cd
JJ
18683 PR rtl-optimization/56494
18684 * simplify-rtx.c (simplify_truncation): If C is narrower than A,
18685 optimize (truncate:A (subreg:B (truncate:C X) 0)) into
18686 (subreg:A (truncate:C X) 0) instead of (truncate:A X).
18687
85f5dbea
JJ
18688 PR middle-end/56461
18689 * sel-sched-ir.c (free_sched_pools): Release
18690 succs_info_pool.stack[succs_info_pool.max_top] vectors too
18691 if succs_info_pool.max_top isn't -1.
18692
a5d1569a
JJ
18693 PR bootstrap/56509
18694 * opts.c (opts_obstack, opts_concat): Moved to...
18695 * opts-common.c (opts_obstack, opts_concat): ... here.
18696
4432aa6c
JJ
186972013-03-04 Jakub Jelinek <jakub@redhat.com>
18698
18699 PR middle-end/56461
18700 * diagnostic.c (diagnostic_append_note): Save and restore old prefix.
18701
f3a1fb91
MJ
187022013-03-04 Martin Jambor <mjambor@suse.cz>
18703
18704 * tree-dfa.c (get_or_create_ssa_default_def): Use parameter fn in
18705 all appropriate places.
18706
22110e6c
EB
187072013-01-04 Eric Botcazou <ebotcazou@adacore.com>
18708
18709 PR tree-optimization/56424
18710 * ipa-split.c (split_function): Do not set the RSO flag if result is
18711 not by reference and its type is a register type.
18712
a72d8780 187132013-03-04 David Holsgrove <david.holsgrove@xilinx.com>
91c4e421 18714
88b97037 18715 * config/microblaze/microblaze.c (microblaze_valid_pic_const): New
91c4e421 18716 (microblaze_legitimate_pic_operand): Likewise
88b97037 18717 * config/microblaze/microblaze.h (LEGITIMATE_PIC_OPERAND_P): calls
91c4e421
DH
18718 new function microblaze_legitimate_pic_operand
18719 * config/microblaze/microblaze-protos.h
18720 (microblaze_legitimate_pic_operand): Declare.
18721
a72d8780 187222013-03-04 Edgar E. Iglesias <edgar.iglesias@gmail.com>
82f8f53a 18723
a72d8780 18724 * config/microblaze/predicates.md (call_insn_simple_operand):
82f8f53a 18725 New predicate for supported rtx code types.
a72d8780 18726 * config/microblaze/microblaze.md (call_internal1): Use
82f8f53a
EI
18727 call_insn_simple_operand predicate.
18728
541d9ac8
JJ
187292013-03-04 Jakub Jelinek <jakub@redhat.com>
18730
5eb010bc
JJ
18731 PR middle-end/56461
18732 * tree-loop-distribution.c (ldist_gen): Call partition_free after each
18733 partitions.ordered_remove.
18734
30862efc
JJ
18735 PR middle-end/56461
18736 * tree-vect-stmts.c (vectorizable_conversion): Don't call
18737 vec_oprnds0.create (1) for modifier == NONE.
18738
8930f723
JJ
18739 PR middle-end/56461
18740 * tree-vect-stmts.c (vectorizable_shift): Don't call create methods
18741 on vec_oprnds0 or vec_oprnds1 before loop, only call it on
18742 vec_oprnds1 right before pushing anything to it for
18743 scalar_shift_arg.
18744
541d9ac8
JJ
18745 PR middle-end/56461
18746 * tree-vect-loop.c (destroy_loop_vec_info): For !clean_stmts, just
18747 set nbbs to 0 instead of having separate code path.
18748 (vect_analyze_loop_form): Call destroy_loop_vec_info with true
18749 instead of false as last argument if returning NULL.
18750
7aa7f2e3
SL
187512013-03-03 Sandra Loosemore <sandra@codesourcery.com>
18752
18753 * target.def (TARGET_OPTION_VALID_ATTRIBUTE_P): Update comments;
18754 the attribute is now called "target" instead of "option".
18755 (TARGET_OPTION_PRAGMA_PARSE): Likewise, for the pragma.
18756 * doc/tm.texi.in (Target Attributes): Likewise document the correct
18757 attribute/pragma name for TARGET_OPTION_VALID_P and
18758 TARGET_OPTION_PRAGMA_PARSE. Also copy-edit and correct markup.
18759 * doc/tm.texi: Regenerated.
18760
8930f723 187612013-03-02 David Holsgrove <david.holsgrove@xilinx.com>
cb8a1637 18762
8930f723 18763 * config/microblaze/microblaze.c:
cb8a1637 18764 Check mcpu, pcmp requirement and set TARGET_REORDER to 0 if not met.
8930f723
JJ
18765 * config/microblaze/microblaze.h: Add -mxl-reorder to
18766 DRIVER_SELF_SPECS.
18767 * config/microblaze/microblaze.md: New bswapsi2 and bswaphi2.
18768 instructions emitted if TARGET_REORDER.
88b97037
UB
18769 * config/microblaze/microblaze.opt: New option -mxl-reorder set to 1
18770 or 0 for -m/-mno case, but initialises as 2 to detect default use case
8930f723 18771 separately.
cb8a1637 18772
4dc1d68c
XDL
187732013-03-01 Xinliang David Li <davidxl@google.com>
18774
18775 * tree-ssa-uninit.c (compute_control_dep_chain): Limit post-dom
18776 walk length.
18777
689eaba3
JJ
187782013-03-01 Jakub Jelinek <jakub@redhat.com>
18779
9d676bf6
JJ
18780 PR middle-end/56461
18781 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Release path
18782 vector even when returning true. Fix up function comment formatting.
18783
caff7edf
JJ
18784 PR middle-end/56461
18785 * ira-build.c (ira_loop_nodes_count): New variable.
18786 (create_loop_tree_nodes): Initialize it.
18787 (finish_loop_tree_nodes): Use it instead of looking at current_loops.
18788
b6b9227d
JJ
18789 PR middle-end/56461
18790 * tree-vect-data-refs.c (vect_permute_store_chain): Avoid using copy
18791 method on dr_chain and result_chain.
18792 * tree-vect-stmts.c (vectorizable_store): Only call
18793 result_chain.create if j == 0.
18794
689eaba3
JJ
18795 PR middle-end/56461
18796 * tree-vect-stmts.c (vect_create_vectorized_promotion_stmts): Call
18797 vec_oprnds0->release (); rather than vec_oprnds0->truncate (0)
18798 before overwriting it.
18799
40bf31ed
TB
188002013-03-01 Tobias Burnus <burnus@net-b.de>
18801
18802 * doc/extended.texi (C Extensions): Change order in @menu
18803 to match @node.
18804 (Other MIPS Built-in Functions): Move last MIPS entry before
18805 "picoChip Built-in Functions".
18806 (SH Built-in Functions): Move after RX Built-in Functions.
18807 * doc/gcc.texi (Introduction): Change order in @menu
18808 to match @node.
18809 * doc/md.texi (Constraints): Ditto.
18810 * gty.texi (Type Information): Ditto.
18811 (User-provided marking routines for template types): Make
18812 subsection.
18813 * doc/invoke.texi (AArch64 Options): Move before
18814 "Adapteva Epiphany Options".
18815
e664c61c
KS
188162013-02-28 Konstantin Serebryany <konstantin.s.serebryany@gmail.com>
18817 Jakub Jelinek <jakub@redhat.com>
18818
18819 PR sanitizer/56454
18820 * asan.c (gate_asan): Lookup no_sanitize_address instead of
18821 no_address_safety_analysis attribute.
18822 * doc/extend.texi (no_address_safety_attribute): Rename to
18823 no_sanitize_address attribute, mention no_address_safety_analysis
18824 attribute as deprecated alias.
18825
37b5ec8f
JJ
188262013-02-28 Jakub Jelinek <jakub@redhat.com>
18827
18828 PR middle-end/56461
18829 * tree-vectorizer.h (vect_get_slp_defs): Change 3rd argument
18830 type to vec<vec<tree> > *.
18831 * tree-vect-slp.c (vect_get_slp_defs): Likewise. Change vec_defs
18832 to be vec<tree> instead of vec<tree> *, set vec_defs
18833 to vNULL and call vec_defs.create (number_of_vects), adjust other
18834 uses of vec_defs.
18835 * tree-vect-stmts.c (vect_get_vec_defs, vectorizable_call,
18836 vectorizable_condition): Adjust vect_get_slp_defs callers.
18837
ba96cdfb
JG
188382013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
18839
18840 * config/aarch64/aarch64.c
18841 (aarch64_float_const_representable): Remove unused variable.
18842
6f549691
JG
188432013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
18844
18845 * config/aarch64/aarch64.c (aarch64_mangle_type): Make static.
18846
af55e82d
JG
188472013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
18848
18849 * config/aarch64/aarch64-builtins.c
18850 (aarch64_init_simd_builtins): Make static.
18851
1df3f464
JG
188522013-02-28 James Greenhalgh <james.greenhalgh@arm.com>
18853
18854 * config/aarch64/aarch64.c
18855 (aarch64_simd_make_constant): Make static.
18856
f8f42513
MJ
188572013-02-28 Martin Jambor <mjambor@suse.cz>
18858
18859 * tree-sra.c (load_assign_lhs_subreplacements): Do not put replacements
18860 with no initialization to the RHS of debug statements.
18861
b48b3fc4
MJ
188622013-02-28 Martin Jambor <mjambor@suse.cz>
18863
18864 PR tree-optimization/56294
18865 * tree-sra.c (analyze_access_subtree): Create replacement declarations.
18866 Adjust dumping.
18867 (get_access_replacement): Do not call create_access_replacement.
18868 Assert a replacement exists.
18869 (get_repl_default_def_ssa_name): Create the replacement declaration
18870 itself.
18871
c3ae224c
RR
188722013-02-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
18873
18874 * config/arm/arm.c (arm_output_mi_thunk): Call final_start_function and
18875 final_end_function.
18876
45fa0eef
MP
188772013-02-28 Marek Polacek <polacek@redhat.com>
18878
18879 PR rtl-optimization/56466
18880 * loop-unroll.c (unroll_and_peel_loops): Call fix_loop_structure
18881 if we're changing a loop.
18882 (peel_loops_completely): Likewise.
18883
502c067d
PC
188842013-02-28 Paolo Carlini <paolo.carlini@oracle.com>
18885
18886 PR c++/55813
18887 * doc/invoke.texi ([-Wctor-dtor-privacy]): Complete.
18888
ff24afc8
GJL
188892013-02-28 Georg-Johann Lay <avr@gjlay.de>
18890
18891 PR target/56445
18892 * config/avr/avr.c (avr_init_builtins): Use 'n' instead of empty
18893 macro parameters with: FX_FTYPE_FX, FX_FTYPE_FX_INT, INT_FTYPE_FX,
18894 INTX_FTYPE_FX, FX_FTYPE_INTX.
18895 * config/avr/builtins.def: Adjust respective DEF_BUILTIN.
18896
c7b1fc1b
GJL
188972013-02-28 Georg-Johann Lay <avr@gjlay.de>
18898
18899 * avr/avr-mcus.def (ata5272, ata5505, attiny1634, ata6285)
18900 (ata6286, atmega8a, atmega48pa, ata5790, ata5790n, ata5795)
18901 (atmega164pa, atmega165pa, atmega168pa, atmega16hva, atmega16hvb)
18902 (atmega16hvbrevb, atmega16m1, atmega16u4, atmega26hvg, atmega32a)
18903 (atmega32a, atmega3250pa, atmega3290pa, atmega32c1, atmega32m1)
18904 (atmega32u4, atmega32u6, atmega64a, atmega6490a, atmega6490p)
18905 (atmega64c1, atmega64m1, atmega64rfa2, atmega64rfr2, atmega32hvb)
18906 (atmega32hvbrevb, atmega16hva2, atmega48hvf, at90pwm161)
18907 (atmega128a, atmega1284, atmxt112sl, atmxt224, atmxt224e)
18908 (atmxt336s, atxmega16a4u, atxmega16c4, atxmega32a4u, atxmega32c4)
18909 (atxmega32e5, atxmega64a3u, atxmega64a4u, atxmega64b1, atxmega64b3)
18910 (atxmega64c3, atxmega64d4, atxmega128a3u, atxmega128b1)
18911 (atxmega128b3, atxmega128c3, atxmega128d4, atmxt540s, atmxt540sreva)
18912 (atxmega192a3u, atxmega192c3, atxmega256a3u, atxmega256c3)
18913 (atxmega384c3, atxmega384d3, atxmega128a4u): New AVR_MCU.
18914 (avrxmega6): Increase max flash segments from 5 to 6.
18915 * config/avr/t-multilib: Regenerate.
18916 * config/avr/avr-tables.opt: Regenerate.
18917 * doc/avr-mmcu.texi: Regenerate.
18918
4a0e3cfe
GJL
189192013-02-28 Georg-Johann Lay <avr@gjlay.de>
18920
18921 * config/avr/avr.h (device_to_arch): Rename to device_to_ld.
18922 (avr_device_to_arch): Rename to avr_device_to_ld.
18923 (avr_device_to_as): New prototype.
18924 (EXTRA_SPEC_FUNCTIONS): Add device_to_as.
18925 (ASM_SPEC): Use device_to_as to get -mmcu= and -mno-skip-bug=.
18926 * config/avr/driver-avr.c (avr_device_to_as): New.
18927 (avr_device_to_arch): Rename to avr_device_to_ld.
18928
97785e52
JJ
189292013-02-27 Jakub Jelinek <jakub@redhat.com>
18930
3f292312
JJ
18931 PR middle-end/56461
18932 * tree-vect-data-refs.c (vect_permute_load_chain): Avoid using copy
18933 method on dr_chain and result_chain.
18934
a344216b
JJ
18935 PR middle-end/56461
18936 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Call
18937 pointer_set_destroy on not_executed_last_iteration.
18938
f121ad02 18939 PR middle-end/56461
88b97037 18940 * tree-vect-loop.c (vectorizable_reduction): Release vect_defs vector.
f121ad02 18941
307f83a3
JJ
18942 PR middle-end/56461
18943 * ipa-pure-const.c (propagate): Use FOR_EACH_FUNCTION instead of
18944 FOR_EACH_DEFINED_FUNCTION when freeing state.
18945
e19624ee
JJ
18946 PR middle-end/56461
18947 * df-scan.c (df_insn_delete): Use df_scan_free_mws_vec before
18948 pool_free.
18949 (df_insn_rescan_debug_internal): Use df_scan_free_mws_vec before
18950 overwriting it.
18951
90e709fd
JJ
18952 PR middle-end/56461
18953 * ipa-cp.c (decide_whether_version_node): Call vec_free on
18954 known_aggs[i].items and release known_aggs vector.
18955
97785e52
JJ
18956 PR middle-end/56461
18957 * ipa-reference.c (propagate): Free node_info even for alias nodes.
18958
189592013-02-27 Edgar E. Iglesias <edgar.iglesias@gmail.com>
bbb3a9e2 18960
97785e52
JJ
18961 * config/microblaze/microblaze.c (microblaze_emit_compare):
18962 Use xor for EQ/NE comparisions.
18963 * config/microblaze/microblaze.md (cstoresf4): Add constraints
18964 (cbranchsf4): Adjust operator to comparison_operator.
bbb3a9e2 18965
6fa5e0ed
JJ
189662013-02-27 Jakub Jelinek <jakub@redhat.com>
18967
18968 PR middle-end/56461
18969 * tree-flow.h (edge_var_map_vector): Change into va_heap, vl_embed
18970 vector.
18971 * tree-ssa.c (redirect_edge_var_map_add): Use vec_safe_reserve and
18972 vec_safe_push, always update *slot.
18973 (redirect_edge_var_map_clear): Use vec_free.
18974 (redirect_edge_var_map_dup): Use vec_safe_copy and vec_safe_reserve.
18975 (free_var_map_entry): Use vec_free.
18976 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Use
18977 FOR_EACH_VEC_SAFE_ELT instead of FOR_EACH_VEC_ELT.
18978
436a956a
AB
189792013-02-27 Andrey Belevantsev <abel@ispras.ru>
18980
18981 PR middle-end/45472
436a956a
AB
18982 * sel-sched-ir.c (merge_expr): Also change vinsn of merged expr
18983 when the may_trap_p bit of the exprs being merged differs.
436a956a
AB
18984 Reorder tests for speculativeness in the logical and operator.
18985
f5c2caca
JJ
189862013-02-27 Jakub Jelinek <jakub@redhat.com>
18987
0fcb564b
JJ
18988 * incpath.c (add_standard_paths): Use reconcat instead of concat
18989 where appropriate and avoid leaking memory.
18990
dc357798
JJ
18991 * opts.h: Include obstack.h.
18992 (opts_concat): New prototype.
18993 (opts_obstack): New declaration.
18994 * opts.c (opts_concat): New function.
18995 (opts_obstack): New variable.
18996 (init_options_struct): Call gcc_init_obstack on opts_obstack.
18997 (finish_options): Use opts_concat instead of concat
18998 and XOBNEWVEC instead of XNEWVEC.
18999 * opts-common.c (generate_canonical_option, decode_cmdline_option,
19000 generate_option): Likewise.
19001 * Makefile.in (OPTS_H): Depend on $(OBSTACK_H).
19002 * lto-wrapper.c (main): Call gcc_init_obstack on opts_obstack.
19003
f5c2caca
JJ
19004 PR target/56455
19005 * stmt.c (expand_switch_as_decision_tree_p): If flag_pic
19006 and ASM_OUTPUT_ADDR_DIFF_ELT isn't defined, return true.
19007
d0163673
JJ
190082013-02-26 Jakub Jelinek <jakub@redhat.com>
19009
19010 PR middle-end/56461
19011 * lra-spills.c (lra_spill): Free spill_hard_reg at the end.
19012
b5ad2b8e
JR
190132013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
19014
19015 * config/arm/arm.c (const_ok_for_dimode_op): Back out last change.
19016 (arm_block_move_unaligned_straight): Likewise.
19017 (arm_adjust_block_mem): Likewise.
19018
9b639e2c
JR
190192013-02-26 Joern Rennecke <joern.rennecke@embecosm.com>
19020
19021 PR target/48901
19022 * config/lm32/lm32.c (gen_int_relational): Remove unused variables
19023 temp, cond and label.
19024 * config/lm32/lm32.md (ashlsi3): Remove unused variable one.
19025
e13a0ccb
JR
19026 PR target/52500
19027 * config/c6x/c6x.c (dbx_register_map): Change to unsigned.
19028 * config/c6x/c6x.h (dbx_register_map): Update declaration.
19029
fbe4f171
JR
19030 PR target/52501
19031 * config/cr16/cr16-protos.h: Move end of RTX_CODE guard below end
19032 of prologue/epilogue functions.
19033
ae006543
JR
19034 PR target/52550
19035 * config/tilegx/tilegx.c (tilegx_expand_prologue):
19036 Remove unused variable cfa_offset.
19037 * config/tilepro/tilepro.c (tilepro_expand_prologue): Likewise.
19038
c81369fa
JR
19039 PR target/54639
19040 * config/mn10300/mn10300.c (mn10300_expand_epilogue): Avoid offset
19041 type promotion to unsigned.
19042
f8a8fea7
JR
19043 PR target/54640
19044 * config/arm/arm.c (const_ok_for_dimode_op): Make code consistent
19045 for HOST_WIDE_INT of 32 bit / same size as int.
19046 (arm_block_move_unaligned_straight): Likewise.
19047 (arm_adjust_block_mem): Likewise.
19048
f8be5169
JR
19049 PR target/54662
19050 * config/mep/t-mep (mep-pragma.o): Use ALL_COMPILERFLAGS instead of
19051 ALL_CFLAGS.
19052
f1ad3354
MP
190532013-02-26 Marek Polacek <polacek@redhat.com>
19054
19055 PR tree-optimization/56426
88b97037 19056 * tree-ssa-loop.c (tree_ssa_loop_init): Always call scev_initialize.
f1ad3354 19057
a6af0f42
RB
190582013-02-26 Richard Biener <rguenther@suse.de>
19059
19060 PR target/56444
19061 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Remove
19062 unused variable loops.
19063
aca43c6c
JJ
190642013-02-26 Jakub Jelinek <jakub@redhat.com>
19065
cecbe5d9
JJ
19066 PR tree-optimization/56448
19067 * fold-const.c (operand_equal_p) <case tcc_reference>: Don't look at
19068 TREE_SIDE_EFFECTS if flags contain OEP_CONSTANT_ADDRESS_OF.
19069 Clear OEP_CONSTANT_ADDRESS_OF from flags before recursing on second or
19070 later operands of the references, or even first operand for
19071 INDIRECT_REF, TARGET_MEM_REF or MEM_REF.
19072
aca43c6c
JJ
19073 PR tree-optimization/56443
19074 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): For
19075 overaligned types, pass TYPE_UNSIGNED (scalar_type) as second argument
19076 to type_for_mode langhook.
19077
53e2e141
MT
190782013-02-25 Matt Turner <mattst88@gmail.com>
19079
19080 * doc/invoke.texi: Document r4700.
19081
259ee451
RB
190822013-02-25 Richard Biener <rguenther@suse.de>
19083
19084 PR tree-optimization/56175
19085 * tree-ssa-forwprop.c (hoist_conversion_for_bitop_p): New predicate,
19086 split out from ...
19087 (simplify_bitwise_binary): ... here. Also guard the conversion
19088 of (type) X op CST to (type) (X op ((type-x) CST)) with it.
19089
6d65e8f1
CM
190902013-02-25 Catherine Moore <clm@codesourcery.com>
19091
19092 Revert:
19093 2013-02-24 Catherine Moore <clm@codesourcery.com>
19094 Maciej W. Rozycki <macro@codesourcery.com>
19095 Tom de Vries <tom@codesourcery.com>
a72d8780 19096 Nathan Sidwell <nathan@codesourcery.com>
6d65e8f1
CM
19097 Iain Sandoe <iain@codesourcery.com>
19098 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 19099 Chao-ying Fu <fu@mips.com>
88b97037 19100
6d65e8f1 19101 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 19102 Document new function attributes.
6d65e8f1
CM
19103 * doc/invoke.texi (minterlink-compressed, mmicromips,
19104 m14k, m14ke, m14kec): Document new options.
19105 (minterlink-mips16): Update documentation.
19106 * doc/md.texi (ZC, ZD): Document new constraints.
19107 * configure.ac (gcc_cv_as_micromips): Check if linker
19108 supports the .set micromips directive.
19109 * configure: Regenerate.
19110 * config.in: Regenerate.
19111 * config/mips/mips-tables.opt: Regenerate.
19112 * config/mips/micromips.md: New file.
19113 * constraints.md (ZC, AD): New constraints.
19114 * config/mips/predicates.md (movep_src_register): New predicate.
19115 (movep_src_operand): New predicate.
19116 (non_volatile_mem_operand): New predicate.
19117 * config/mips/mips.md (multimem): New type.
19118 (length): Differentiate between 17-bit and 18-bit branch offsets.
19119 (MOVEP1, MOVEP2): New mode iterator.
19120 (mov_<load>l): Use ZC constraint.
19121 (mov_<load>r): Likewise.
19122 (mov_<store>l): Likewise.
19123 (mov_<store>r): Likewise.
19124 (*branch_equality<mode>_inverted): Add microMIPS support.
19125 (*branch_equality<mode>): Likewise.
19126 (*jump_absolute): Likewise.
19127 (indirect_jump_<mode>): Likewise.
19128 (tablejump_<mode>): Likewise.
19129 (<optab>_internal): Likewise.
19130 (sibcall_internal): Likewise.
19131 (sibcall_value_internal): Likewise.
19132 (prefetch): Use constraint ZD.
19133 * config/mips/mips.opt (minterlink-compressed): New option.
19134 (minterlink-mips16): Now an alias for minterlink-compressed.
19135 (mmicromips): New option.
19136 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
19137 (compare_and_swap_12): Likewise.
19138 (sync_add<mode>): Likewise.
19139 (sync_<optab>_12): Likewise.
19140 (sync_old_<optab>_12): Likewise.
19141 (sync_new_<optab>_12): Likewise.
19142 (sync_nand_12): Likewise.
19143 (sync_old_nand_12): Likewise.
19144 (sync_new_nand_12): Likewise.
19145 (sync_sub<mode>): Likewise.
19146 (sync_old_add<mode>): Likewise.
19147 (sync_old_sub<mode>): Likewise.
19148 (sync_new_add<mode>): Likewise.
19149 (sync_new_sub<mode>): Likewise.
19150 (sync_<optab><mode>): Likewise.
19151 (sync_old_<optab><mode>): Likewise.
19152 (sync_new_<optab><mode>): Likewise.
19153 (sync_nand<mode>): Likewise.
19154 (sync_old_nand<mode>): Likewise.
19155 (sync_new_nand<mode>): Likewise.
19156 (sync_lock_test_and_set<mode>): Likewise.
19157 (test_and_set_12): Likewise.
19158 (atomic_compare_and_swap<mode>): Likewise.
19159 (atomic_exchange<mode>_llsc): Likewise.
19160 (atomic_fetch_add<mode>_llsc): Likewise.
19161 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
19162 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
19163 (umips_save_restore_pattern_p): Likewise.
19164 (umips_load_store_pair_p): Likewise.
19165 (umips_output_load_store_pair): Likewise.
19166 (umips_movep_target_p): Likewise.
19167 (umips_12bit_offset_address_p): Likewise.
19168 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
19169 (mips_base_mips16): Rename this...
19170 (mips_base_compression_flags): ...to this. Update all uses.
19171 (mips_attribute_table): Add micromips, nomicromips and nocompression.
19172 (mips_mips16_decl_p): Delete.
19173 (mips_nomips16_decl_p): Delete.
19174 (mips_get_compress_on_flags): New function.
19175 (mips_get_compress_off_flags): New function.
19176 (mips_get_compress_mode): New function.
19177 (mips_get_compress_on_name): New function.
19178 (mips_get_compress_off_name): New function.
19179 (mips_insert_attributes): Support multiple compression types.
19180 (mips_merge_decl_attributes): Likewise.
19181 (umips_12bit_offset_address_p): New function.
19182 (mips_start_function_definition): Emit .set micromips directive.
19183 (mips_call_may_need_jalx_p): New function.
19184 (mips_function_ok_for_sibcall): Add microMIPS support.
19185 (mips_print_operand_punctuation): Support short delay slots and
19186 compact jumps.
19187 (umips_swm_mask, umips_swm_encoding): New.
19188 (umips_build_save_restore): New function.
19189 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
19190 (was_mips16_p): Remove.
19191 (old_compression_mode): New.
19192 (mips_set_compression_mode): New function.
19193 (mips_set_current_function): Add microMIPS support.
19194 (mips_option_override): Likewise.
19195 (umips_save_restore_pattern_p): New function.
19196 (umips_output_save_restore): New function.
19197 (umips_load_store_pair_p_1): New function.
19198 (umips_load_store_pair_p): New function.
19199 (umips_output_load_store_pair_1): New function.
19200 (umips_output_load_store_pair): New function.
19201 (umips_movep_target_p) New function.
19202 (mips_prepare_pch_save): Add microMIPS support.
19203 * config/mips/mips.h (TARGET_COMPRESSION): New.
19204 (TARGET_CPU_CPP_BUILTINS): Update macro
19205 to use new compression flags and to support microMIPS.
19206 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
19207 (MIPS_ARCH_FLOAT_SPEC): Likewise.
19208 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
19209 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
19210 (ASM_SPEC): Support mmicromips and mno-micromips.
19211 (M16STORE_REG_P): New macro.
19212 (MIPS_CALL): Support TARGET_MICROMIPS.
19213 (MICROMIPS_J): New macro.
19214 (mips_base_mips16): Rename this...
19215 (mips_base_compression_flags): ...to this.
19216 (UMIPS_12BIT_OFFSET_P): New macro.
19217 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
19218 (MULTILIB_DIRNAMES): Likewise.
19219
5e5df392
TV
192202013-02-25 Tom de Vries <tom@codesourcery.com>
19221
19222 PR rtl-optimization/56131
19223 * insn-notes.def (INSN_NOTE_BASIC_BLOCK): Update comment.
19224 * cfgrtl.c (delete_insn): Don't reorder NOTE_INSN_DELETED_LABEL and
19225 NOTE_INSN_BASIC_BLOCK if BLOCK_FOR_INSN == NULL.
19226
3fdb53c1
TB
192272013-02-25 Tobias Burnus <burnus@net-b.de>
19228
19229 * doc/invoke.texi (-fsanitize=): Move from optimization
19230 to debugging options.
19231
ed358aea
AB
192322013-02-25 Andrey Belevantsev <abel@ispras.ru>
19233
19234 * sched-deps.c (sched_analyze_insn): Fix typo in comment.
19235
f45e9053
AB
192362013-02-25 Andrey Belevantsev <abel@ispras.ru>
19237 Alexander Monakov <amonakov@ispras.ru>
19238
19239 PR middle-end/56077
19240 * sched-deps.c (sched_analyze_insn): When reg_pending_barrier,
19241 flush pending lists also on non-jumps. Adjust comment.
19242
6941b508
CM
192432013-02-24 Catherine Moore <clm@codesourcery.com>
19244 Maciej W. Rozycki <macro@codesourcery.com>
19245 Tom de Vries <tom@codesourcery.com>
a72d8780 19246 Nathan Sidwell <nathan@codesourcery.com>
6941b508
CM
19247 Iain Sandoe <iain@codesourcery.com>
19248 Nathan Froyd <froydnj@codesourcery.com>
a72d8780 19249 Chao-ying Fu <fu@mips.com>
6941b508
CM
19250
19251 * doc/extend.texi: (micromips, nomicromips, nocompression):
88b97037 19252 Document new function attributes.
6941b508
CM
19253 * doc/invoke.texi (minterlink-compressed, mmicromips,
19254 m14k, m14ke, m14kec): Document new options.
19255 (minterlink-mips16): Update documentation.
19256 * doc/md.texi (ZC, ZD): Document new constraints.
19257 * configure.ac (gcc_cv_as_micromips): Check if linker
19258 supports the .set micromips directive.
19259 * configure: Regenerate.
19260 * config.in: Regenerate.
19261 * config/mips/mips-tables.opt: Regenerate.
19262 * config/mips/micromips.md: New file.
19263 * constraints.md (ZC, AD): New constraints.
19264 * config/mips/predicates.md (movep_src_register): New predicate.
19265 (movep_src_operand): New predicate.
19266 (non_volatile_mem_operand): New predicate.
19267 * config/mips/mips.md (multimem): New type.
19268 (length): Differentiate between 17-bit and 18-bit branch offsets.
19269 (MOVEP1, MOVEP2): New mode iterator.
3fdb53c1 19270 (mov_<load>l): Use ZC constraint.
6941b508
CM
19271 (mov_<load>r): Likewise.
19272 (mov_<store>l): Likewise.
19273 (mov_<store>r): Likewise.
19274 (*branch_equality<mode>_inverted): Add microMIPS support.
19275 (*branch_equality<mode>): Likewise.
19276 (*jump_absolute): Likewise.
19277 (indirect_jump_<mode>): Likewise.
19278 (tablejump_<mode>): Likewise.
19279 (<optab>_internal): Likewise.
19280 (sibcall_internal): Likewise.
19281 (sibcall_value_internal): Likewise.
19282 (prefetch): Use constraint ZD.
19283 * config/mips/mips.opt (minterlink-compressed): New option.
19284 (minterlink-mips16): Now an alias for minterlink-compressed.
19285 (mmicromips): New option.
19286 * config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
19287 (compare_and_swap_12): Likewise.
19288 (sync_add<mode>): Likewise.
19289 (sync_<optab>_12): Likewise.
19290 (sync_old_<optab>_12): Likewise.
19291 (sync_new_<optab>_12): Likewise.
19292 (sync_nand_12): Likewise.
19293 (sync_old_nand_12): Likewise.
19294 (sync_new_nand_12): Likewise.
19295 (sync_sub<mode>): Likewise.
19296 (sync_old_add<mode>): Likewise.
19297 (sync_old_sub<mode>): Likewise.
19298 (sync_new_add<mode>): Likewise.
19299 (sync_new_sub<mode>): Likewise.
19300 (sync_<optab><mode>): Likewise.
19301 (sync_old_<optab><mode>): Likewise.
19302 (sync_new_<optab><mode>): Likewise.
19303 (sync_nand<mode>): Likewise.
19304 (sync_old_nand<mode>): Likewise.
19305 (sync_new_nand<mode>): Likewise.
19306 (sync_lock_test_and_set<mode>): Likewise.
19307 (test_and_set_12): Likewise.
19308 (atomic_compare_and_swap<mode>): Likewise.
19309 (atomic_exchange<mode>_llsc): Likewise.
19310 (atomic_fetch_add<mode>_llsc): Likewise.
19311 * config/mips/mips-cpus.def (m14kc, m14k): New processors.
19312 * config/mips/mips-protos.h (umips_output_save_restore): New prototype.
19313 (umips_save_restore_pattern_p): Likewise.
19314 (umips_load_store_pair_p): Likewise.
19315 (umips_output_load_store_pair): Likewise.
19316 (umips_movep_target_p): Likewise.
19317 (umips_12bit_offset_address_p): Likewise.
19318 * config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
19319 (mips_base_mips16): Rename this...
19320 (mips_base_compression_flags): ...to this. Update all uses.
19321 (mips_attribute_table): Add micromips, nomicromips and nocompression.
19322 (mips_mips16_decl_p): Delete.
19323 (mips_nomips16_decl_p): Delete.
3fdb53c1 19324 (mips_get_compress_on_flags): New function.
6941b508
CM
19325 (mips_get_compress_off_flags): New function.
19326 (mips_get_compress_mode): New function.
19327 (mips_get_compress_on_name): New function.
19328 (mips_get_compress_off_name): New function.
19329 (mips_insert_attributes): Support multiple compression types.
19330 (mips_merge_decl_attributes): Likewise.
19331 (umips_12bit_offset_address_p): New function.
19332 (mips_start_function_definition): Emit .set micromips directive.
19333 (mips_call_may_need_jalx_p): New function.
19334 (mips_function_ok_for_sibcall): Add microMIPS support.
19335 (mips_print_operand_punctuation): Support short delay slots and
19336 compact jumps.
19337 (umips_swm_mask, umips_swm_encoding): New.
19338 (umips_build_save_restore): New function.
19339 (mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
19340 (was_mips16_p): Remove.
19341 (old_compression_mode): New.
19342 (mips_set_compression_mode): New function.
19343 (mips_set_current_function): Add microMIPS support.
19344 (mips_option_override): Likewise.
19345 (umips_save_restore_pattern_p): New function.
19346 (umips_output_save_restore): New function.
19347 (umips_load_store_pair_p_1): New function.
19348 (umips_load_store_pair_p): New function.
19349 (umips_output_load_store_pair_1): New function.
19350 (umips_output_load_store_pair): New function.
19351 (umips_movep_target_p) New function.
19352 (mips_prepare_pch_save): Add microMIPS support.
19353 * config/mips/mips.h (TARGET_COMPRESSION): New.
19354 (TARGET_CPU_CPP_BUILTINS): Update macro
19355 to use new compression flags and to support microMIPS.
19356 (MIPS_ISA_LEVEL_SPEC): Add m14k processors.
19357 (MIPS_ARCH_FLOAT_SPEC): Likewise.
19358 (ISA_HAS_LWXS): Include TARGET_MICROMIPS.
19359 (ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
19360 (ASM_SPEC): Support mmicromips and mno-micromips.
19361 (M16STORE_REG_P): New macro.
19362 (MIPS_CALL): Support TARGET_MICROMIPS.
19363 (MICROMIPS_J): New macro.
19364 (mips_base_mips16): Rename this...
19365 (mips_base_compression_flags): ...to this.
19366 (UMIPS_12BIT_OFFSET_P): New macro.
19367 * config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
19368 (MULTILIB_DIRNAMES): Likewise.
19369
cdebbc6d
JJ
193702013-02-24 Jakub Jelinek <jakub@redhat.com>
19371
19372 PR target/52555
19373 * target-globals.c (save_target_globals): For init_reg_sets and
19374 target_reinit remporarily set this_fn_optabs to this_target_optabs.
19375
18c63565
JG
193762013-02-22 James Grennahlgh <james.greenhalgh@arm.com>
19377
19378 * config/aarch64/aarch64-simd-builtins.def: Add copyright header.
19379 * config/aarch64/t-aarch64
19380 (aarch64-builtins.o): Depend on aarch64-simd-builtins.def.
19381
2194f7a2
VM
193822013-02-22 Vladimir Makarov <vmakarov@redhat.com>
19383
19384 PR inline-asm/56148
19385 * lra-constraints.c (process_alt_operands): Reload operand
19386 conflicting with earlier clobber only if no more other conflicting
19387 operands.
19388
7d613735
JJ
193892013-02-22 Jakub Jelinek <jakub@redhat.com>
19390
19391 PR sanitizer/56393
19392 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Link in libasan_preinit.o
19393 if not linking a shared library.
19394
ac8d93a7
SL
193952013-02-22 Seth LaForge <sethml@google.com>
19396
19397 * config.gcc (arm*-*-eabi*): Treat arm*eb as big-endian.
19398
e0237780
GY
193992013-02-22 Greta Yorsh <Greta.Yorsh@arm.com>
19400
3fdb53c1
TB
19401 * config/arm/arm.md (split for extendsidi): Update condition.
19402 (zero_extend<mode>di2,extend<mode>di2): Add an alternative.
19403 * config/arm/iterators.md (qhs_extenddi_cstr): Likewise.
19404 (qhs_zextenddi_cstr): Likewise.
e0237780 19405
d7fde18c
JJ
194062013-02-21 Jakub Jelinek <jakub@redhat.com>
19407
be63b77d
JJ
19408 PR middle-end/56420
19409 * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Do subtraction in uhwi, to
19410 avoid signed wrapping.
19411 (expand_mult): Handle properly multiplication by
19412 ((dword_type) -1) << (BITS_PER_WORD - 1). Improve multiplication by
19413 ((dword_type) 1) << (BITS_PER_WORD - 1). Avoid undefined behavior
19414 in the compiler if coeff is HOST_WIDE_INT_MIN.
19415 (expand_divmod): Don't make ext_op1 static, change it's type to
19416 uhwi. Avoid undefined behavior in -INTVAL (op1).
19417
d7fde18c
JJ
19418 PR rtl-optimization/50339
19419 * lower-subreg.h (struct lower_subreg_choices): Add splitting_ashiftrt
19420 field.
19421 * lower-subreg.c (compute_splitting_shift): Handle ASHIFTRT.
19422 (compute_costs): Call compute_splitting_shift also for ASHIFTRT
19423 into splitting_ashiftrt field.
19424 (find_decomposable_shift_zext, resolve_shift_zext): Handle also
19425 ASHIFTRT.
19426 (dump_choices): Fix up printing LSHIFTRT choices, print ASHIFTRT
19427 choices.
19428
6aad4455
AH
194292013-02-20 Aldy Hernandez <aldyh@redhat.com>
19430
19431 PR middle-end/56108
19432 * trans-mem.c (execute_tm_mark): Do not expand transactions that
19433 are sure to go irrevocable.
19434
38fe784d
HPN
194352013-02-21 Hans-Peter Nilsson <hp@axis.com>
19436
19437 * doc/rtl.texi (vec_concat, vec_duplicate): Mention that
19438 scalars are valid operands.
19439
0fd44da3
MJ
194402013-02-21 Martin Jambor <mjambor@suse.cz>
19441
19442 PR tree-optimization/56310
19443 * ipa-cp.c (agg_replacements_to_vector): New parameter index, copy
19444 only matching indices and non-negative final offsets.
19445 (intersect_aggregates_with_edge): Pass src_idx to
19446 agg_replacements_to_vector. Pass src_idx insstead of index to
19447 intersect_with_agg_replacements.
19448
7a92038b
MJ
194492013-02-21 Martin Jambor <mjambor@suse.cz>
19450
19451 * ipa-cp.c (good_cloning_opportunity_p): Dump the real threshold
19452 instead of hard-wired defaults.
19453
c0da9c37
MR
194542013-02-21 Maciej W. Rozycki <macro@codesourcery.com>
19455
19456 * doc/invoke.texi (MIPS Options): Update documentation of the
19457 floating-point multiply-accumulate instruction restrictions.
19458
d247ea0c 194592013-02-21 Kostya Serebryany <kcc@google.com>
7df59255
KS
19460
19461 * config/i386/i386.c (ix86_asan_shadow_offset): Use 0x7fff8000 as
19462 asan_shadow_offset on x86_64 linux.
19463
22deefcb
RB
194642013-02-21 Richard Biener <rguenther@suse.de>
19465
19466 PR tree-optimization/56415
19467 Revert
19468 2013-02-11 Richard Biener <rguenther@suse.de>
19469
19470 PR tree-optimization/56273
19471 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
19472 first VRP run.
19473
7bcc6e75
JJ
194742013-02-21 Jakub Jelinek <jakub@redhat.com>
19475
a0ad148f
JJ
19476 PR bootstrap/56258
19477 * doc/invoke.texi (-fdump-rtl-pro_and_epilogue): Use @item
19478 instead of @itemx.
19479
7bcc6e75
JJ
19480 PR inline-asm/56405
19481 * expr.c (expand_expr_real_1) <case TARGET_MEM_REF, MEM_REF>: Don't
19482 use movmisalign or extract_bit_field for EXPAND_MEMORY modifier.
19483
a0a7b611
JH
194842013-02-20 Jan Hubicka <jh@suse.cz>
19485
19486 PR tree-optimization/56265
88b97037
UB
19487 * ipa-prop.c (ipa_make_edge_direct_to_target): Fixup callgraph
19488 when target is referenced for first time.
a0a7b611 19489
c0e50f72
RB
194902013-02-20 Richard Biener <rguenther@suse.de>
19491
19492 * tree-call-cdce.c (tree_call_cdce): Do not remove unused locals.
19493 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
19494 * tree-ssa-dce.c (perform_tree_ssa_dce): Likewise.
19495 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Do
19496 not return anything.
19497 (rename_ssa_copies): Do not remove unused locals.
19498 * tree-ssa-ccp.c (do_ssa_ccp): Likewise.
88b97037 19499 * tree-ssanames.c (pass_release_ssa_names): Remove unused locals first.
c0e50f72
RB
19500 * passes.c (execute_function_todo): Do not schedule unused locals
19501 removal if cleanup_tree_cfg did something.
19502 * tree-ssa-live.c (remove_unused_locals): Dump statistics
19503 about the number of removed locals.
19504
a52ca739
RB
195052013-02-20 Richard Biener <rguenther@suse.de>
19506
19507 PR tree-optimization/56398
88b97037 19508 * tree-vect-loop-manip.c (adjust_debug_stmts): Skip SSA default defs.
a52ca739 19509
ec9c9d1b
MJ
195102013-02-20 Martin Jambor <mjambor@suse.cz>
19511
19512 PR tree-optimization/55334
19513 * ipa-cp.c (initialize_node_lattices): Disable IPA-CP through and to
19514 restricted pointers to arrays.
19515
e91c8ed6 195162013-02-20 Richard Biener <rguenther@suse.de>
88b97037 19517 Jakub Jelinek <jakub@redhat.com>
e91c8ed6
RB
19518
19519 PR tree-optimization/56396
19520 * tree-ssa-ccp.c (n_const_val): New static variable.
19521 (get_value): Return NULL for SSA names we don't have a lattice
19522 entry for.
19523 (ccp_initialize): Initialize n_const_val.
19524 * tree-ssa-copy.c (n_copy_of): New static variable.
19525 (init_copy_prop): Initialize n_copy_of.
19526 (get_value): Return NULL_TREE for SSA names we don't have a
19527 lattice entry for.
19528
3d916479
MJ
195292013-02-20 Martin Jambor <mjambor@suse.cz>
19530
19531 * ipa-cp.c (initialize_node_lattices): Fix dumping condition.
19532
71a86758
RB
195332013-02-20 Richard Biener <rguenther@suse.de>
19534
19535 * genpreds.c (write_lookup_constraint): Do not compare first
19536 letter of the constraint again.
19537
79836a12
RB
195382013-02-20 Richard Biener <rguenther@suse.de>
19539
19540 * tree-ssa-loop-ivopts.c (alloc_use_cost_map): Use bitmap_count_bits
19541 and ceil_log2.
19542 (get_use_iv_cost): Terminate hashtable walk when coming across
19543 an empty entry.
19544
bbe4fb2c
IZ
195452013-02-20 Igor Zamyatin <igor.zamyatin@intel.com>
19546
19547 * config/i386/i386.c (initial_ix86_tune_features): Turn on fp
19548 reassociation for avx2 targets.
19549
a72d8780 195502012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
79836a12 19551
c77f83d5
EI
19552 * config/microblaze/microblaze.c: microblaze_has_clz = 0
19553 Add version check for v8.10.a to enable microblaze_has_clz
88b97037 19554 * config/microblaze/microblaze.h: Add TARGET_HAS_CLZ as combined
c77f83d5
EI
19555 version and TARGET_PATTERN_COMPARE check
19556 * config/microblaze/microblaze.md: New clzsi2 instruction
3fdb53c1 19557
a72d8780 195582012-02-19 Edgar E. Iglesias <edgar.iglesias@gmail.com>
959434e6 19559
a72d8780 19560 * config/microblaze/microblaze.md (call_value_intern): Check symbol is
959434e6
EI
19561 function before branching.
19562
242387fa
AB
195632012-02-19 Andrey Belevantsev <abel@ispras.ru>
19564
19565 * sel-sched-dump.c (dump_insn_rtx_flags): Explicitly set
19566 DUMP_INSN_RTX_UID.
19567 (dump_insn_rtx_1): Pass PATTERN (insn) to str_pattern_slim.
19568
b4979ab9
AB
195692012-02-19 Andrey Belevantsev <abel@ispras.ru>
19570
19571 PR middle-end/55889
b4979ab9
AB
19572 * sel-sched.c: Include ira.h.
19573 (implicit_clobber_conflict_p): New function.
19574 (moveup_expr): Use it.
88b97037 19575 * Makefile.in (sel-sched.o): Depend on ira.h.
b4979ab9 19576
24d63016
RB
195772013-02-19 Richard Biener <rguenther@suse.de>
19578
19579 PR tree-optimization/56384
19580 * tree-ssa-sccvn.h (struct vn_phi_s): Add type member.
19581 (vn_hash_type): Split out from ...
19582 (vn_hash_constant_with_type): ... here.
19583 * tree-ssa-sccvn.c (vn_phi_compute_hash): Use vn_hash_type.
19584 (vn_phi_eq): Compare types from vn_phi_s structure.
19585 (vn_phi_lookup): Populate vn_phi_s type.
19586 (vn_phi_insert): Likewise.
19587
a475fd3d
JJ
195882013-02-19 Jakub Jelinek <jakub@redhat.com>
19589
47cc28f5
JJ
19590 PR tree-optimization/56350
19591 * tree-vect-loop.c (vectorizable_reduction): If orig_stmt, return false
19592 if haven't found reduction or nested cycle operand, rather than
19593 asserting we must find it.
19594
a475fd3d
JJ
19595 PR tree-optimization/56381
19596 * tree-ssa-pre.c (create_expression_by_pieces): Fix up last argument
19597 to fold_build3.
19598
195992013-02-18 Aldy Hernandez <aldyh@redhat.com>
135204dd
AH
19600 Jakub Jelinek <jakub@redhat.com>
19601
19602 PR target/52555
19603 * genopinit.c (raw_optab_handler): Use this_fn_optabs.
19604 (swap_optab_enable): Same.
19605 (init_all_optabs): Use argument instead of global.
88b97037 19606 * tree.h (struct tree_optimization_option): New field target_optabs.
135204dd
AH
19607 * expr.h (init_all_optabs): Add argument to prototype.
19608 (TREE_OPTIMIZATION_OPTABS): New.
19609 (save_optabs_if_changed): Protoize.
19610 * optabs.h: Declare this_fn_optabs.
19611 * optabs.c (save_optabs_if_changed): New.
19612 Declare this_fn_optabs.
19613 (init_optabs): Add argument to init_all_optabs() call.
19614 * function.c (invoke_set_current_function_hook): Handle per
19615 function optabs.
19616 * function.h (struct function): New field optabs.
19617 * config/mips/mips.c (mips_set_mips16_mode): Handle when
19618 optimization_current_node has changed.
19619 * target-globals.h (save_target_globals_default_opts): Protoize.
19620 * target-globals.c (save_target_globals_default_opts): New.
19621
3f587ca3
JDA
196222013-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
19623
19624 PR target/56347
19625 * config/pa/pa.c (pa_conditional_register_usage): On HP-UX, mark
19626 registers %fr12 and %fr12R as call used.
ceaca33e
JDA
19627
19628 PR target/56214
19629 * config/pa/predicates.md (base14_operand): Except for BLKmode, QImode
88b97037
UB
19630 and HImode, require all displacements to be an integer multiple of
19631 their mode size.
ceaca33e
JDA
19632 * config/pa/pa.c (pa_legitimate_address_p): For REG+BASE addresses,
19633 only allow QImode and HImode when reload is in progress and strict is
19634 true. Likewise for symbolic addresses. Use base14_operand to check
19635 displacements in REG+BASE addresses.
19636
fe0b4796
RB
196372013-02-18 Richard Biener <rguenther@suse.de>
19638
19639 PR tree-optimization/56366
19640 * tree-vect-loop.c (get_initial_def_for_induction): Properly
19641 handle sign-conversion of outer-loop initial induction value.
19642
6aaf596b
RB
196432013-02-18 Richard Biener <rguenther@suse.de>
19644
73db8ff1 19645 PR middle-end/56349
6aaf596b
RB
19646 * cfghooks.c (merge_blocks): If we merge a latch into another
19647 block adjust references to it.
19648 * cfgloop.c (flow_loops_find): Reset latch before recomputing it.
19649 (verify_loop_structure): Verify that a recorded latch is in fact
19650 a latch.
19651
5e97dfb6
RB
196522013-02-18 Richard Biener <rguenther@suse.de>
19653
19654 PR tree-optimization/56321
19655 * tree-ssa-reassoc.c (propagate_op_to_single_use): Properly
19656 order SSA name release and virtual operand unlinking.
19657
825527e8
EI
196582013-02-17 Edgar E. Iglesias <edgar.iglesias@gmail.com>
19659
19660 * config/microblaze/microblaze.md (save_stack_block): Define.
19661 (restore_stack_block): Likewise.
19662
debd11d9
EI
196632013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
19664
19665 * config/microblaze/linux.h (TARGET_SUPPORTS_PIC): Define as 1.
19666 * config/microblaze/microblaze.h (TARGET_SUPPORTS_PIC): Define as 1.
19667 * config/microblaze/microblaze.c (microblaze_option_override):
19668 Bail out early for PIC modes when target does not support PIC.
19669
8ec77be0
EI
196702013-02-16 Edgar E. Iglesias <edgar.iglesias@gmail.com>
19671
88b97037 19672 * config/microblaze/microblaze.c (microblaze_asm_trampoline_template):
8ec77be0
EI
19673 Replace with a microblaze version.
19674 (microblaze_trampoline_init): Adapt for microblaze.
a752b80f 19675 * config/microblaze/microblaze.h (TRAMPOLINE_SIZE): Adapt for
8ec77be0
EI
19676 microblaze.
19677
b41288b3
JJ
196782013-02-16 Jakub Jelinek <jakub@redhat.com>
19679 Dodji Seketeli <dodji@redhat.com>
19680
19681 PR asan/56330
88b97037 19682 * asan.c (get_mem_refs_of_builtin_call): White space and style cleanup.
b41288b3
JJ
19683 (instrument_mem_region_access): Do not forget to always put
19684 instrumentation of the of 'base' and 'base + len' in a "if (len !=
19685 0) statement, even for cases where either 'base' or 'base + len'
19686 are not instrumented -- because they have been previously
19687 instrumented. Simplify the logic by putting all the statements
19688 instrument 'base + len' inside a sequence, and then insert that
19689 sequence right before the current insertion point. Then, to
19690 instrument 'base + len', just get an iterator on that statement.
19691 And do not forget to update the pointer to iterator the function
19692 received as argument.
19693
47918951
VM
196942013-02-15 Vladimir Makarov <vmakarov@redhat.com>
19695
19696 PR rtl-optimization/56348
19697 * lra-assigns.c (reload_pseudo_compare_func): Prefer bigger pseudos.
19698
3fb7c699
SB
196992013-02-15 Steven Bosscher <steven@gcc.gnu.org>
19700
19701 * graph.c (start_graph_dump): Print dumpfile base as digraph label.
19702 (clean_graph_dump_file): Pass base to start_graph_dump.
19703
576fe41a
RH
197042013-02-14 Richard Henderson <rth@redhat.com>
19705
19706 PR target/55941
19707 * lower-subreg.c (simple_move): Check dest mode instead of src mode.
19708
bb3accfa
SB
197092013-02-14 Steven Bosscher <steven@gcc.gnu.org>
19710
19711 * collect2-aix.h: Define F_LOADONLY.
19712
03143140
RB
197132013-02-14 Richard Biener <rguenther@suse.de>
19714
19715 PR lto/50494
19716 * varasm.c (output_constant_def_1): Get the decl representing
19717 the constant as argument.
19718 (output_constant_def): Wrap output_constant_def_1.
19719 (make_decl_rtl): Use output_constant_def_1 with the decl
19720 representing the constant.
19721 (build_constant_desc): Optionally re-use a decl already
19722 representing the constant.
19723 (tree_output_constant_def): Adjust.
19724
8fb06726
DS
197252013-02-14 Dodji Seketeli <dodji@redhat.com>
19726
19727 Fix an asan crash
19728 * asan.c (instrument_builtin_call): Really put the length of the
19729 second source argument into src1_len.
19730
c4bfe8bf
JJ
197312013-02-13 Jakub Jelinek <jakub@redhat.com>
19732
19733 * asan.c (create_cond_insert_point): Add create_then_fallthru_edge
19734 argument. If it is false, don't create edge from then_bb to
19735 fallthru_bb.
19736 (insert_if_then_before_iter): Pass true to it.
19737 (build_check_stmt): Pass false to it.
19738 (transform_statements): Flush hash table only on extended basic
19739 block boundaries, rather than at the beginning of every bb.
19740 Don't flush hash table on nonfreeing_call_p calls.
19741 * tree-flow.h (nonfreeing_call_p): New prototype.
19742 * tree-ssa-phiopt.c (nonfreeing_call_p): No longer static.
19743
7afe2801
DM
197442013-02-13 David S. Miller <davem@davemloft.net>
19745
19746 * expmed.c (expand_shift_1): Only strip scalar integer subregs.
19747
70cc3288
VM
197482013-02-13 Vladimir Makarov <vmakarov@redhat.com>
19749
19750 PR target/56184
19751 * ira.c (max_regno_before_ira): Move from ...
19752 (ira): ... here.
19753 (fix_reg_equiv_init): Use max_regno_before_ira instead of
19754 vec_safe_length.
19755
6422242b
JJ
197562013-02-13 Jakub Jelinek <jakub@redhat.com>
19757
19758 * config/i386/i386.c (ix86_asan_shadow_offset): Revert last change.
19759
976a81ee
RB
197602013-02-13 Richard Biener <rguenther@suse.de>
19761
19762 PR lto/56295
19763 * gimple-streamer-out.c (output_gimple_stmt): Undo wrapping
19764 globals in MEM_REFs.
19765
c1874a87
RB
197662013-02-13 Richard Biener <rguenther@suse.de>
19767
19768 * loop-init.c (loop_optimizer_init): Clear loop state when
19769 re-initializing preserved loops.
19770 * loop-unswitch.c (unswitch_single_loop): Return whether
19771 we unswitched the loop. Do not verify loop state here.
88b97037 19772 (unswitch_loops): When we unswitched a loop discover new loops.
c1874a87 19773
b4ab7d34
KS
197742013-02-13 Kostya Serebryany <kcc@google.com>
19775
88b97037
UB
19776 * config/i386/i386.c: Use 0x7fff8000 as asan_shadow_offset
19777 on x86_64 linux.
b4ab7d34
KS
19778 * sanitizer.def: Rename __asan_init to __asan_init_v1.
19779
bdcbe80c
DS
197802013-02-12 Dodji Seketeli <dodji@redhat.com>
19781
19782 Avoid instrumenting duplicated memory access in the same basic block
19783 * Makefile.in (asan.o): Add new dependency on hash-table.h
19784 * asan.c (struct asan_mem_ref, struct mem_ref_hasher): New types.
19785 (asan_mem_ref_init, asan_mem_ref_get_end, get_mem_ref_hash_table)
19786 (has_stmt_been_instrumented_p, empty_mem_ref_hash_table)
19787 (free_mem_ref_resources, has_mem_ref_been_instrumented)
19788 (has_stmt_been_instrumented_p, update_mem_ref_hash_table)
19789 (get_mem_ref_of_assignment): New functions.
19790 (get_mem_refs_of_builtin_call): Extract from
19791 instrument_builtin_call and tweak a little bit to make it fit with
19792 the new signature.
19793 (instrument_builtin_call): Use the new
19794 get_mem_refs_of_builtin_call. Use gimple_call_builtin_p instead
19795 of is_gimple_builtin_call.
19796 (instrument_derefs, instrument_mem_region_access): Insert the
19797 instrumented memory reference into the hash table.
19798 (maybe_instrument_assignment): Renamed instrument_assignment into
19799 this, and change it to advance the iterator when instrumentation
19800 actually happened and return true in that case. This makes it
19801 homogeneous with maybe_instrument_assignment, and thus give a
19802 chance to callers to be more 'regular'.
19803 (transform_statements): Clear the memory reference hash table
19804 whenever we enter a new BB, when we cross a function call, or when
19805 we are done transforming statements. Use
19806 maybe_instrument_assignment instead of instrumentation. No more
19807 need to special case maybe_instrument_assignment and advance the
19808 iterator after calling it; it's now handled just like
19809 maybe_instrument_call. Update comment.
19810
4861a1f7
RB
198112013-02-13 Richard Biener <rguenther@suse.de>
19812
19813 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc):
19814 Fix loop discovery code.
19815
1c86bd80
VM
198162013-02-12 Vladimir Makarov <vmakarov@redhat.com>
19817
19818 PR inline-asm/56148
19819 * lra-constraints.c (process_alt_operands): Match early clobber
70cc3288 19820 operand with itself. Check conflicts with earlyclobber only if
1c86bd80
VM
19821 the operand is not reloaded. Prefer to reload conflicting operand
19822 if earlyclobber and matching operands are the same.
19823
7cbda518
RB
198242013-02-12 Richard Biener <rguenther@suse.de>
19825
19826 PR lto/56297
19827 * lto-streamer-out.c (write_symbol): Do not output symbols
19828 for hard register variables.
19829
e68a4ef6
GJL
198302013-02-12 Georg-Johann Lay <avr@gjlay.de>
19831
19832 PR target/54222
19833 * config/avr/avr-dimode.md (umulsidi3, mulsidi3): New expanders.
19834 (umulsidi3_insn, mulsidi3_insn): New insns.
19835
a72d8780 198362013-02-12 Christophe Lyon <christophe.lyon@linaro.org>
2597da22
CL
19837
19838 * config/arm/arm-protos.h (struct cpu_vec_costs): New struct type.
19839 (struct tune_params): Add vec_costs field.
19840 * config/arm/arm.c (arm_builtin_vectorization_cost)
19841 (arm_add_stmt_cost): New functions.
19842 (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST)
19843 (TARGET_VECTORIZE_ADD_STMT_COST): Define.
19844 (arm_default_vec_cost): New struct of type cpu_vec_costs.
19845 (arm_slowmul_tune, arm_fastmul_tune, arm_strongarm_tune)
19846 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune, arm_cortex_tune)
19847 (arm_cortex_a15_tune, arm_cortex_a5_tune, arm_cortex_a9_tune)
19848 (arm_v6m_tune, arm_fa726te_tune): Define new vec_costs field.
19849
43320568
RB
198502013-02-12 Richard Biener <rguenther@suse.de>
19851
19852 PR lto/56295
19853 * gimple-streamer-in.c (input_gimple_stmt): Strip MEM_REFs off
19854 decls again if possible.
19855
a011aa39
RB
198562013-02-12 Richard Biener <rguenther@suse.de>
19857
19858 PR middle-end/56288
19859 * tree-ssa.c (verify_ssa_name): Fix check, move
19860 SSA_NAME_IN_FREE_LIST check up.
19861
6da26889
JJ
198622013-02-12 Jakub Jelinek <jakub@redhat.com>
19863 Steven Bosscher <steven@gcc.gnu.org>
19864
19865 PR rtl-optimization/56151
19866 * optabs.c (add_equal_note): Don't return 0 if target is a MEM,
19867 equal to op0 or op1, and last_insn pattern is CODE operation
19868 with MEM dest and one of the operands matches that MEM.
19869
f80e0faf
ST
198702013-02-11 Sriraman Tallam <tmsriramgoogle.com>
19871
19872 * doc/extend.texi: Document Function Multiversioning and "default"
19873 parameter string to target attribute.
19874 * config/i386/i386.c (get_builtin_code_for_version): Return 0 if
19875 target attribute parameter is "default".
19876 (ix86_compare_version_priority): Remove checks for target attribute.
19877 (ix86_mangle_function_version_assembler_name): Change error to sorry.
19878 Remove check for target attribute equal to NULL. Add assert.
19879 (ix86_generate_version_dispatcher_body): Change error to sorry.
19880
6c59ffd1
IS
198812013-02-11 Iain Sandoe <iain@codesourcery.com>
19882 Jack Howarth <howarth@bromo.med.uc.edu>
19883 Patrick Marlier <patrick.marlier@gmail.com>
19884
19885 PR libitm/55693
19886 * config/darwin.h: Replace ENDFILE_SPEC with TM_DESTRUCTOR and
19887 define ENDFILE_SPEC as TM_DESTRUCTOR.
19888 * config/i386/darwin.h (ENDFILE_SPEC): Use TM_DESTRUCTOR.
19889
a72d8780 198902013-02-11 Alexander Potapenko <glider@google.com>
6a52ccb3
AP
19891 Jack Howarth <howarth@bromo.med.uc.edu>
19892 Jakub Jelinek <jakub@redhat.com>
19893
19894 PR sanitizer/55617
19895 * config/darwin.c (cdtor_record): Rename ctor_record.
19896 (sort_cdtor_records): Rename sort_ctor_records.
19897 (finalize_dtors): New routine to sort destructors by
19898 priority before use in assemble_integer.
19899 (machopic_asm_out_destructor): Use finalize_dtors if needed.
19900
b63fe007
UB
199012013-02-11 Uros Bizjak <ubizjak@gmail.com>
19902
19903 PR rtl-optimization/56275
19904 * simplify-rtx.c (avoid_constant_pool_reference): Check that
19905 offset is non-negative and less than cmode size before
19906 calling simplify_subreg.
19907
8e89b5b5
RB
199082013-02-11 Richard Biener <rguenther@suse.de>
19909
19910 PR tree-optimization/56264
19911 * cfgloop.h (fix_loop_structure): Adjust prototype.
19912 * loop-init.c (fix_loop_structure): Return the number of
19913 newly discovered loops.
19914 * tree-cfgcleanup.c (repair_loop_structures): When new loops
19915 are discovered, do a full loop-closed SSA rewrite.
19916
b4a4b56d
RB
199172013-02-11 Richard Biener <rguenther@suse.de>
19918
19919 PR tree-optimization/56273
19920 * tree-vrp.c (simplify_cond_using_ranges): Disable for the
19921 first VRP run.
19922 (check_array_ref): Fix missing newline in dumps.
19923 (search_for_addr_array): Likewise.
19924
0c885229
DE
199252013-02-09 David Edelsohn <dje.gcc@gmail.com>
19926
19927 * config/rs6000/aix61.h (OS_MISSING_ALTIVEC): Undefine.
19928
59ac9a55
JJ
199292013-02-09 Jakub Jelinek <jakub@redhat.com>
19930
19931 PR target/56256
19932 * config/rs6000/rs6000.h (ASSEMBLER_DIALECT): Define.
19933
25bb0bb5
VM
199342013-02-08 Vladimir Makarov <vmakarov@redhat.com>
19935
19936 PR rtl-optimization/56246
0c885229 19937 * lra-constraints.c (simplify_operand_subreg): Try to reuse
25bb0bb5
VM
19938 reload pseudo.
19939 * lra.c (lra): Clear lra_optional_reload_pseudos only when all
19940 constraints are satisfied.
19941
a698cc03
JL
199422013-02-08 Jeff Law <law@redhat.com>
19943
19944 PR debug/53948
19945 * emit-rtl.c (reg_is_parm_p): New function.
19946 * regs.h (reg_is_parm_p): New prototype.
19947 * ira-conflicts.c (ira_build_conflicts): Allow parameters in
19948 callee-clobbered registers.
19949
e1122ddd
MM
199502013-02-08 Michael Meissner <meissner@linux.vnet.ibm.com>
19951
19952 PR target/56043
19953 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass):
19954 If there is no implicit builtin declaration, just return NULL.
19955
19c5f6e6
UB
199562013-02-08 Uros Bizjak <ubizjak@gmail.com>
19957
19958 * config/i386/sse.md (FMAMODEM): New mode iterator.
19959 (fma<mode>4, fms<mode>4, fnma<mode>4, fnms<mode>4): Use FMAMODEM
19960 mode iterator. Do not use TARGET_SSE_MATH in insn constraint.
19961
2480f2ca 199622013-02-08 Uros Bizjak <ubizjak@gmail.com>
76ef61fb 19963
2480f2ca
UB
19964 * config/i386/gnu-user.h (TARGET_CAN_SPLIT_STACK): Define only
19965 when HAVE_GAS_CFI_PERSONALITY_DIRECTIVE is set.
19966 * config/i386/gnu-user64.h (TARGET_CAN_SPLIT_STACK): Ditto.
19967
199682013-02-08 Edgar E. Iglesias <edgar.iglesias@gmail.com>
19969
19970 * config.gcc (microblaze*-linux*): Add TARGET_BIG_ENDIAN_DEFAULT.
19971 (microblaze*-*-elf): Likewise.
19972 * config/microblaze/linux.h: Add -mbig-endian / -mlittle-endian to
19973 LINK_SPEC.
19974 * config/microblaze/microblaze-c.c: Add builtin defines for
19975 _LITTLE_ENDIAN and _BIG_ENDIAN.
19976 * config/microblaze/microblaze.h: Add TARGET_ENDIAN_DEFAULT and
19977 add to TARGET_DEFAULT flags.
76ef61fb 19978 Expand ASM_SPEC and LINK_SPEC.
2480f2ca
UB
19979 Update BYTES_BIG_ENDIAN and WORDS_BIG_ENDIAN.
19980 * config/microblaze/microblaze.md: Update extendsidi2 and
19981 movdi_internal instructions to use low-order / high-order reg
19982 print_operands.
19983 * config/microblaze/microblaze.opt: Add mbig-endian and mlittle-endian
19984 options and inversemask / mask of LITTLE_ENDIAN.
19985 * config/microblaze/t-microblaze: Expand multilib options to
19986 include mlittle-endian (le) and update exceptions patterns.
19987
600a5961
JJ
199882013-02-08 Jakub Jelinek <jakub@redhat.com>
19989
5df81313
JJ
19990 PR rtl-optimization/56195
19991 * lra-constraints.c (get_reload_reg): Don't reuse regs
19992 if they have smaller mode than requested, if they have
19993 wider mode than requested, try to return a SUBREG.
19994
600a5961
JJ
19995 PR tree-optimization/56250
19996 * fold-const.c (extract_muldiv_1) <case NEGATE_EXPR>: Don't optimize
19997 if type is unsigned and code isn't MULT_EXPR.
19998
ff544649
GJL
199992013-02-08 Georg-Johann Lay <avr@gjlay.de>
20000
20001 PR tree-optimization/56064
20002 * fixed-value.c (fixed_from_double_int): Sign/zero extend payload
20003 bits according to mode.
20004 * fixed-value.h (fixed_from_double_int)
20005 (const_fixed_from_double_int): Adjust comments.
20006
e45cde98
RB
200072013-02-08 Richard Biener <rguenther@suse.de>
20008
20009 PR lto/56231
20010 * lto-streamer.h (struct data_in): Remove current_file, current_line
20011 and current_col members.
20012 * lto-streamer-out.c (lto_output_location): Stream changed bits
20013 en-block for efficiency.
20014 * lto-streamer-in.c (clear_line_info): Remove.
20015 (lto_input_location): Cache current file, line and column
20016 globally via local statics. Read changed bits en-block.
20017 (input_function): Do not call clear_line_info.
20018 (lto_read_body): Likewise.
20019 (lto_input_toplevel_asms): Likewise.
20020
c1ca73d8
MM
200212013-02-08 Michael Matz <matz@suse.de>
20022
20023 PR tree-optimization/52448
20024 * tree-ssa-phiopt.c (struct name_to_bb): Add phase member.
20025 (nt_call_phase): New static.
20026 (add_or_mark_expr): Only mark accesses with newer phase than any
20027 call seen.
20028 (nonfreeing_call_p): New.
20029 (nt_init_block): Update nt_call_phase, mark blocks as visited.
20030 (nt_fini_block): Keep blocks marked as visited.
20031 (get_non_trapping): Initialize nt_call_phase, and reset aux pointer.
20032
57548aa2
RB
200332013-02-08 Richard Biener <rguenther@suse.de>
20034
20035 * ira.c (ira): Free broken dominator information.
20036
8e10366f
UB
200372013-02-08 Uros Bizjak <ubizjak@gmail.com>
20038
20039 * config/i386/i386.c (ix86_spill_class): Use INTEGER_CLASS_P macro.
20040
f64fb0fa
MP
200412013-02-08 Marek Polacek <polacek@redhat.com>
20042
8e10366f 20043 * cfgloop.c (verify_loop_structure): Add more checking of headers.
f64fb0fa 20044
0375167b
RB
200452013-02-08 Richard Biener <rguenther@suse.de>
20046
20047 PR middle-end/56181
20048 * cfgloop.h (flow_loops_find): Adjust.
20049 (bb_loop_header_p): Declare.
20050 * cfgloop.c (bb_loop_header_p): New function split out from ...
20051 (flow_loops_find): ... here. Adjust function signature,
20052 support incremental loop structure update.
20053 (verify_loop_structure): Cleanup. Verify a loop is a loop.
20054 * cfgloopmanip.c (fix_loop_structure): Move ...
20055 * loop-init.c (fix_loop_structure): ... here.
20056 (apply_loop_flags): Split out from ...
20057 (loop_optimizer_init): ... here.
20058 (fix_loop_structure): Use apply_loop_flags. Use flow_loops_find
20059 in incremental mode, only remove dead loops here.
20060
85d768f3
GJL
200612013-02-08 Georg-Johann Lay <avr@gjlay.de>
20062
20063 PR target/54222
20064 * config/avr/avr.md (unspec) <UNSPEC_ROUND>: Add.
20065 * config/avr/avr-fixed.md (ALL4QA, ALL124QA): New mode iterators.
20066 (round<mode>3, round<mode>3_const): New expanders for fixed-mode.
20067 (*round<mode>3.libgcc): New insns for fixed-modes.
20068 * config/avr/builtins.def (ABSxx): Use a non-NULL LIBNAME.
20069 (ROUNDxx, COUNTLSxx, BITSxx, xxBITS): New DEF_BUILTINs.
20070 (ROUNDFX, COUNTLSFX, ABSFX): New DEF_BUILTINs.
20071 * config/avr/stdfix.h (absFX, bitsFX, FXbits): Remove inline
20072 implementations. Define to __builtin_avr_absFX,
20073 __builtin_avr_bitsFX, __builtin_avr_FXbits, respectively.
20074 (roundFX, countlsFX): Define to __builtin_avr_roundFX,
20075 __builtin_avr_countlsFX, respectively.
20076 * config/avr/avr-c.c (target.h): Include it.
20077 (enum avr_builtin_id): New enum.
20078 (avr_resolve_overloaded_builtin): New static function.
20079 (avr_register_target_pragmas): Use it to set
20080 targetm.resolve_overloaded_builtin.
20081 * config/avr/avr.c (avr_init_builtins): Supply myriads of local
20082 tree nodes used by DEF_BUILTIN.
20083 (avr_expand_builtin) <AVR_BUILTIN_ROUNDxx>: Sanity-check them.
20084 (avr_fold_builtin) <AVR_BUILTIN_BITSxx>: Fold to VIEW_COVERT_EXPR.
20085 <AVR_BUILTIN_xxBITS>: Same.
20086
661bc682
RB
200872013-02-08 Richard Biener <rguenther@suse.de>
20088
20089 * cfgloop.c (verify_loop_structure): Properly handle
20090 a loop exiting to another loop header.
20091 * ira-int.h (ira_loops): Remove.
20092 * ira.c (ira_loops): Remove.
20093 (ira): Use loop_optimizer_init and loop_optimizer_finalize.
20094 (do_reload): Use loop_optimizer_finalize.
20095 * ira-build.c (create_loop_tree_nodes): Use get_loops and
20096 number_of_loops to access the loop tree.
20097 (more_one_region_p): Likewise.
20098 (finish_loop_tree_nodes): Likewise.
20099 (rebuild_regno_allocno_maps): Likewise.
20100 (mark_loops_for_removal): Likewise.
20101 (mark_all_loops_for_removal): Likewise.
20102 (remove_unnecessary_regions): Likewise.
20103 (ira_build): Likewise.
20104 * ira-emit.c (setup_entered_from_non_parent_p): Likewise.
20105
0d5049b2
RB
201062013-02-08 Richard Biener <rguenther@suse.de>
20107
20108 * Makefile.in (tree-tailcall.o): Add $(CFGLOOP_H) dependency.
20109 * ipa-pure-const.c (analyze_function): Avoid calling
20110 mark_irreducible_loops twice.
8e10366f 20111 * tree-tailcall.c (tree_optimize_tail_calls_1): Mark loops for fixup.
0d5049b2 20112
499f32e8
DM
201132013-02-07 David S. Miller <davem@davemloft.net>
20114
20115 * dwarf2out.c (based_loc_descr): Perform leaf register remapping
20116 on 'reg'.
20117 * var-tracking.c (vt_add_function_parameter): Test the presence of
20118 HAVE_window_save properly and do not remap argument registers when
20119 we have a leaf function.
20120
6edc3e32
UB
201212013-02-07 Uros Bizjak <ubizjak@gmail.com>
20122
20123 PR bootstrap/56227
20124 * ggc-page.c (ggc_print_statistics): Use HOST_LONG_LONG_FORMAT
20125 instead of "ll".
20126 * config/i386/i386.c (ix86_print_operand): Ditto.
20127
5306401f
VM
201282013-02-07 Vladimir Makarov <vmakarov@redhat.com>
20129
6edc3e32 20130 * lra-constraints.c (process_alt_operands): Fix recently added comment.
5306401f 20131
027ece11
VM
201322013-02-07 Vladimir Makarov <vmakarov@redhat.com>
20133
20134 PR rtl-optimization/56225
20135 * lra-constraints.c (process_alt_operands): Check that reload hard
20136 reg can hold value for strict_low_part.
20137
f980dfdb
JJ
201382013-02-07 Jakub Jelinek <jakub@redhat.com>
20139
20140 PR debug/56154
20141 * dwarf2out.c (dwarf2_debug_hooks): Set end_function hook to
20142 dwarf2out_end_function.
20143 (in_first_function_p, maybe_at_text_label_p,
20144 first_loclabel_num_not_at_text_label): New variables.
20145 (dwarf2out_var_location): In the first function find out
6edc3e32 20146 lowest loclabel_num N where .LVLN is known not to be equal to .Ltext0.
f980dfdb
JJ
20147 (find_empty_loc_ranges_at_text_label, dwarf2out_end_function): New
20148 functions.
20149
73dd3123
EB
201502013-02-07 Eric Botcazou <ebotcazou@adacore.com>
20151
20152 PR rtl-optimization/56178
20153 * cse.c (cse_insn): Do not create a REG_EQUAL note if the source is a
20154 SUBREG of a register. Tidy up related block of code.
20155 * fwprop.c (forward_propagate_and_simplify): Do not create a REG_EQUAL
20156 note if the source is a register or a SUBREG of a register.
20157
e3936f47
JJ
201582013-02-07 Jakub Jelinek <jakub@redhat.com>
20159
20160 PR target/56228
20161 * config/rs6000/rs6000.md (ptrm): New mode attr.
20162 (call_indirect_aix<ptrsize>, call_indirect_aix<ptrsize>_nor11,
20163 call_value_indirect_aix<pttrsize>,
20164 call_value_indirect_aix<pttrsize>_nor11): Use <ptrm> instead of
20165 m in constraints.
20166
d96d674b
MH
201672013-02-07 Michael Haubenwallner <michael.haubenwallner@salomon.at>
20168
20169 * collect2.c (main): Set aix64_flag for -G and -bsvr4 too, disable
20170 if -bnortl. Convert to strcmp and strncmp.
20171
921f2dee
AM
201722013-02-07 Alan Modra <amodra@gmail.com>
20173
20174 PR target/54009
20175 * config/rs6000/rs6000.c (mem_operand_gpr): Check that LO_SUM
20176 addresses won't wrap when offsetting.
20177 (rs6000_secondary_reload): Provide secondary reloads needed for
20178 wrapping LO_SUM addresses.
20179
d09c7dba
TS
201802013-02-06 Thomas Schwinge <thomas@codesourcery.com>
20181
20182 * config/gnu.h (GNU_USER_TARGET_OS_CPP_BUILTINS): Never define
20183 MACH, just __MACH__.
20184
a44bbd48
RB
201852013-02-06 Richard Biener <rguenther@suse.de>
20186
20187 * tracer.c (tracer): Mark loops with LOOPS_NEED_FIXUP
20188 instead of calling fix_loop_structure.
20189
6d840d99
JJ
201902013-02-06 Jakub Jelinek <jakub@redhat.com>
20191
20192 PR middle-end/56217
20193 * omp-low.c (use_pointer_for_field): Return false if
20194 lower_send_shared_vars doesn't generate any copy-out code.
20195
0f33baa9
TV
201962013-02-06 Tom de Vries <tom@codesourcery.com>
20197
20198 PR rtl-optimization/56131
20199 * cfgrtl.c (delete_insn): Use NOTE_BASIC_BLOCK instead of BLOCK_FOR_INSN
20200 to get the bb of a NOTE_INSN_BASIC_BLOCK. Handle the case that the bb
20201 of the label is NULL. Add comment.
20202
11f1e3ab
JJ
202032013-02-05 Jakub Jelinek <jakub@redhat.com>
20204
31502f9f
JJ
20205 * tree.h (struct tree_decl_with_vis): Remove thread_local field.
20206
a74db9bd
JJ
20207 PR sanitizer/55374
20208 * config/gnu-user.h (LIBTSAN_EARLY_SPEC): Define.
20209 (STATIC_LIBTSAN_LIBS): Likewise.
20210 * gcc.c (ADD_STATIC_LIBTSAN_LIBS, LIBTSAN_EARLY_SPEC): Define.
20211 (LIBTSAN_SPEC): Add ADD_STATIC_LIBTSAN_LIBS, if LIBTSAN_EARLY_SPEC
20212 is defined, don't add anything else beyond that.
20213 (SANITIZER_EARLY_SPEC, SANITIZER_SPEC): Define.
20214 (LINK_COMMAND_SPEC): Use them.
20215
11f1e3ab
JJ
20216 PR tree-optimization/56205
20217 * tree-stdarg.c (check_all_va_list_escapes): Return true if
20218 there are any PHI nodes that set non-va_list_escape_vars SSA_NAME
20219 and some va_list_escape_vars SSA_NAME appears in some PHI argument.
20220
14ac6aa2
RB
202212013-02-05 Richard Biener <rguenther@suse.de>
20222
20223 PR tree-optimization/53342
20224 PR tree-optimization/53185
20225 * tree-vectorizer.h (vect_check_strided_load): Remove.
20226 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Do
20227 not disallow peeling for vectorized strided loads.
20228 (vect_check_strided_load): Make static and simplify.
20229 (vect_analyze_data_refs): Adjust.
20230 * tree-vect-stmts.c (vectorizable_load): Handle peeled loops
20231 correctly when vectorizing strided loads.
20232
6f22445a
RB
202332013-02-05 Richard Biener <rguenther@suse.de>
20234
20235 * doc/install.texi: Refer to ISL, not PPL.
20236
39f9719e
JH
202372013-02-05 Jan Hubicka <jh@suse.cz>
20238
ec4224ac
JH
20239 PR tree-optimization/55789
20240 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): Drop to 1.
20241
202422013-02-05 Jan Hubicka <jh@suse.cz>
20243
20244 PR tree-optimization/55789
39f9719e
JH
20245 * cgraphclones.c (cgraph_remove_node_and_inline_clones): Remove
20246 the dead call anyway.
20247
956d3b33
EB
202482013-02-05 Eric Botcazou <ebotcazou@adacore.com>
20249
20250 PR sanitizer/55374
20251 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Add missing guard.
20252
202532013-02-04 Alexander Potapenko <glider@google.com>
20254 Jack Howarth <howarth@bromo.med.uc.edu>
ae526fe5
AP
20255 Jakub Jelinek <jakub@redhat.com>
20256
20257 PR sanitizer/55617
20258 * config/darwin.c (sort_ctor_records): Stabilized qsort
20259 on constructor priority by using original position.
20260 (finalize_ctors): New routine to sort constructors by
20261 priority before use in assemble_integer.
20262 (machopic_asm_out_constructor): Use finalize_ctors if needed.
20263
7ac3af38
JJ
202642013-02-04 Jakub Jelinek <jakub@redhat.com>
20265
20266 PR libstdc++/54314
20267 * config/i386/winnt.c (i386_pe_assemble_visibility): Don't warn
20268 about visibility on artificial decls.
20269 * config/sol2.c (solaris_assemble_visibility): Likewise.
20270
152689dc
KT
202712013-02-04 Kai Tietz <ktietz@redhat.com>
20272
20273 PR target/56186
20274 * config/i386/i386.c (function_value_ms_64): Add additional valtype
20275 argument and improve checking of return-argument types for 16-byte
20276 modes.
20277 (ix86_function_value_1): Add additional valtype argument on call
20278 of function_value_64.
20279 (return_in_memory_ms_64): Sync 16-byte sized mode handling with
20280 handling infunction_value_64 function.
20281
2b5987b5
MGD
202822013-02-04 Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
20283
7ac3af38 20284 * reload.c (subst_reloads): Fix DEBUG_RELOAD build issue.
2b5987b5 20285
14597080
RB
202862013-02-04 Richard Biener <rguenther@suse.de>
20287
20288 PR tree-optimization/56188
20289 * tree-ssa-structalias.c (label_visit): Consider case with
20290 initially non-empty points-to set.
20291 (perform_var_substitution): Dump node mapping and clean up.
20292
ed73881e
RG
202932013-02-04 Richard Guenther <rguenther@suse.de>
20294
20295 PR lto/56168
20296 * lto-symtab.c (lto_symtab_merge_decls_1): Make non-builtin
20297 node prevail as last resort.
20298 (lto_symtab_merge_decls): Remove guard on LTRANS here.
6edc3e32 20299 (lto_symtab_prevailing_decl): Builtins are their own prevailing decl.
ed73881e 20300
139a0707
RB
203012013-02-04 Richard Biener <rguenther@suse.de>
20302
20303 PR tree-optimization/56113
20304 * tree-ssa-structalias.c (equiv_class_lookup, equiv_class_add):
20305 Merge into ...
20306 (equiv_class_lookup_or_add): ... this.
20307 (label_visit): Adjust and fix error in previous patch.
20308 (perform_var_substitution): Adjust.
20309
50fe8924
OE
203102013-02-03 Oleg Endo <olegendo@gcc.gnu.org>
20311
20312 * config/sh/divtab.c: Fix formatting and comments throughout the file.
20313 * config/sh/sh4-300.md: Likewise.
20314 * config/sh/sh4a.md: Likewise.
20315 * config/sh/constraints.md: Likewise.
20316 * config/sh/sh.md: Likewise.
20317 * config/sh/netbsd-elf.h: Likewise.
20318 * config/sh/predicates.md: Likewise.
20319 * config/sh/sh-protos.h: Likewise.
20320 * config/sh/ushmedia.h: Likewise.
20321 * config/sh/linux.h: Likewise.
20322 * config/sh/sh.c: Likewise.
20323 * config/sh/superh.h: Likewise.
20324 * config/sh/elf.h: Likewise.
20325 * config/sh/sh4.md: Likewise.
20326 * config/sh/sh.h: Likewise.
20327
1a04ac2b
JDA
203282013-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
20329
20330 * config/pa/constraints.md: Adjust unused letters. Change "T"
20331 constraint to match_test floating_point_store_memory_operand().
20332 * config/pa/predicates.md (reg_plus_base_memory_operand): New.
20333 (base14_operand): New.
20334 (floating_point_store_memory_operand): New.
20335 (integer_store_memory_operand): Revise to use base14_operand and
20336 reg_plus_base_memory_operand.
20337 (move_dest_operand): Allow symbolic_memory_operands.
20338 (symbolic_memory_operand): Check for LO_SOM.
20339 (symbolic_operand): Change default case to break.
20340 * config/pa/pa.md: Remove unamed DFmode and SFmode patterns to force
20341 CONST_DOUBLE values to be reloaded by putting them into memory when
20342 the destination is a floating point register.
20343 (movdf): Remove code to handle CONST_DOUBLE.
20344 (movsf): Likewise.
20345 (reload_indf_r1): New.
20346 (reload_insf_r1): New.
20347 Consistently use "Q" and "T" constraints with integer and floating
20348 point move instructions, respectively.
20349 (movdi): Remove FAIL.
20350 Change predicate for source operand unamed DImode move from
20351 general_operand to move_src_operand.
20352 (umulsidi3): Change predicate for destination operand to
20353 register_operand.
20354 Likewise for similar unamed patterns.
20355 * config/pa/pa-protos.h (pa_legitimize_reload_address): Declare.
20356 * config/pa/pa.c (pa_symbolic_expression_p): Remove extra parenthesis.
20357 (hppa_legitimize_address): Simplify mask calculation.
20358 (pa_emit_move_sequence): Revised handling of secondary reloads from
20359 REG+D addresses for floating point loads and stores. Directly handle
20360 loading CONST0_RTX (mode) to a floating point register.
20361 (pa_secondary_reload): Handle reloading DF and SFmode constant values
20362 to floating point registers. Don't restrict secondary reloads to
20363 floating point registers to integer modes. Revise some comments and
20364 cleanup some code.
20365 (TARGET_LEGITIMATE_ADDRESS_P): Define.
20366 (pa_legitimate_address_p): New.
20367 (pa_legitimize_reload_address): New.
20368 * config/pa/pa.h (STRICT_REG_OK_FOR_INDEX_P): New.
20369 (STRICT_REG_OK_FOR_BASE_P): New.
20370 (GO_IF_LEGITIMATE_ADDRESS): Delete. Update some related comments.
20371 (LEGITIMIZE_RELOAD_ADDRESS): Revise to use pa_legitimize_reload_address.
20372
3bf65591
DE
203732013-02-03 David Edelsohn <dje.gcc@gmail.com>
20374 Andrew Dixie <andrewd@gentrack.com>
20375
20376 * collect2.c (GCC_CHECK_HDR): Do not scan objects with F_LOADONLY
20377 flag set.
20378
c0a8a3e6
RS
203792013-02-03 Richard Sandiford <rdsandiford@googlemail.com>
20380
20381 * expmed.c (extract_bit_field_1): Pass the full width of the
20382 structure to get_best_reg_extraction_insn.
20383
99113dff
DE
203842013-02-01 David Edelsohn <dje.gcc@gmail.com>
20385
20386 PR target/54601
20387 * configure.ac (use_cxa_atexit): Add AIX.
20388 * configure: Regenerate.
20389
20390 * config/rs6000/aix61.h (STARTFILE_SPEC): Add crtcxa.o.
20391
ddd84654
JJ
203922013-02-01 Jakub Jelinek <jakub@redhat.com>
20393
20394 PR debug/54793
20395 * final.c (need_profile_function): New variable.
20396 (final_start_function): Drop ATTRIBUTE_UNUSED from first argument.
20397 If first of NOTE_INSN_BASIC_BLOCK or NOTE_INSN_FUNCTION_BEG
20398 is only preceeded by NOTE_INSN_VAR_LOCATION or NOTE_INSN_DELETED
20399 notes, targetm.asm_out.function_prologue doesn't emit anything,
20400 HAVE_prologue and profiler should be emitted before prologue,
20401 set need_profile_function instead of emitting it.
20402 (final_scan_insn): If need_profile_function, emit
20403 profile_function on the first NOTE_INSN_BASIC_BLOCK or
20404 NOTE_INSN_FUNCTION_BEG note.
20405
204062013-02-01 Richard Henderson <rth@redhat.com>
749af8ee
RH
20407
20408 * config/rs6000/rs6000.md (smulditi3): New.
20409 (umulditi3): New.
20410
ff2a9d88
RH
20411 * config/alpha/alpha.md (umulditi3): New.
20412
14d52b90
DE
204132013-02-01 David Edelsohn <dje.gcc@gmail.com>
20414
20415 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_COMMON): Use floor_log2.
20416 (ASM_OUTPUT_ALIGNED_LOCAL): New.
20417
8c7ca45c
RB
204182013-02-01 Richard Biener <rguenther@suse.de>
20419
20420 PR tree-optimization/56113
20421 * tree-ssa-structalias.c (label_visit): Reduce work for
20422 single-predecessor nodes.
20423
9f419393
EB
204242013-02-01 Eric Botcazou <ebotcazou@adacore.com>
20425
20426 * fold-const.c (make_range_step) <TRUTH_NOT_EXPR>: Bail out if the
20427 range isn't testing for zero.
20428
c5f4be84
SB
204292013-01-31 Steven Bosscher <steven@gcc.gnu.org>
20430
20431 PR middle-end/56113
20432 * fwprop.c (fwprop_init): Set up loops without CFG modifications.
20433
dbdbd982
NC
204342013-01-31 Hiroyuki Ono <hiroyuki.ono.jc@renesas.com>
20435 Nick Clifton <nickc@redhat.com>
20436
20437 * config/v850/constraints.md (Q): Define as a memory constraint.
20438 * config/v850/predicates.md (label_ref_operand): New predicate.
20439 (e3v5_shift_operand): New predicate.
20440 (ior_operator): New predicate.
20441 * config/v850/t-v850: Add e3v5 multilib.
20442 * config/v850/v850-protos.h (v850_adjust_insn_length): Prototype.
20443 (v850_gen_movdi): Prototype.
20444 * config/v850/v850.c: Add support for e3v5 architecture.
20445 Rename all uses of TARGET_V850E || TARGET_V850E2_ALL to
20446 TARGET_V850E_UP.
20447 (construct_save_jarl): Add e3v5 long JARL support.
20448 (v850_adjust_insn_length): New function. Adjust length of call
20449 insns when using e3v5 instructions.
20450 (v850_gen_movdi): New function: Generate instructions to move a
20451 DImode value.
20452 * config/v850/v850.h (TARGET_CPU_v850e3v5): Define.
20453 (CPP_SPEC): Define __v850e3v5__ as appropriate.
20454 (TARGET_USE_FPU): Enable for e3v5.
20455 (CONST_OK_FOR_W): New macro.
20456 (ADJUST_INSN_LENGTH): Define.
20457 * config/v850/v850.md (UNSPEC_LOOP): Define.
20458 (attr cpu): Add v850e3v5.
20459 Rename all uses of TARGET_V850E2 to TARGET_V850E2V3_UP.
20460 (movdi): New pattern.
20461 (movdi_internal): New pattern.
20462 (cbranchsf4): Conditionalize on TARGET_USE_FPU.
20463 (cbranchdf4): Conditionalize on TARGET_USE_FPU.
20464 (cstoresf4): Likewise.
20465 (cstoredf4): Likewise.
20466 (insv): New pattern.
20467 (rotlso3_a): New pattern.
20468 (rotlsi3_b): New pattern
20469 (rotlsi3_v850e3v5): New pattern.
20470 (doloop_begin): New pattern.
20471 (fix_loop_counter): New pattern.
20472 (doloop_end): New pattern.
20473 (branch_normal): Add e3v5 long branch support.
20474 (branch_invert): Likewise.
20475 (branch_z_normal): Likewise.
20476 (branch_z_invert): Likewise.
20477 (branch_nz_normal): Likewise.
20478 (branch_nz_invert): Likewise.
20479 (call_internal_short): Add e3v5 register-indirect JARL support.
20480 (call_internal_long): Likewise.
20481 (call_value_internal_short): Likewise.
20482 (call_value_internal_long): Likewise.
20483 * config/v850/v850.opt (mv850e3v5, mv850e2v4): New options.
20484 (mloop): New option.
20485 * config.gcc: Add support for configuring v840e3v5 target.
6edc3e32 20486 * doc/invoke.texi: Document new v850 specific command line options.
dbdbd982 20487
73861a41
PK
204882013-01-31 Paul Koning <ni1d@arrl.net>
20489
20490 PR debug/55059
20491 PR debug/54508
20492 * dwarf2out.c (prune_unused_types_mark): Mark all of parent's
20493 children if parent is a class.
20494 (prune_unused_types_prune): Don't add DW_AT_declaration.
20495
e44978dc
RB
204962013-01-31 Richard Biener <rguenther@suse.de>
20497
20498 PR tree-optimization/56157
20499 * tree-vect-slp.c (vect_get_slp_defs): More thoroughly try to
20500 match up operand with SLP child.
20501
90b10dec
JM
205022013-01-31 Jason Merrill <jason@redhat.com>
20503
04d2dadd 20504 PR debug/54410
90b10dec
JM
20505 * dwarf2out.c (gen_struct_or_union_type_die): Always schedule template
20506 parameters the first time.
20507 (gen_scheduled_generic_parms_dies): Check completeness here.
20508
6e616110
RB
205092013-01-31 Richard Biener <rguenther@suse.de>
20510
20511 PR middle-end/53073
20512 * common.opt (faggressive-loop-optimizations): New flag,
20513 enabled by default.
20514 * doc/invoke.texi (faggressive-loop-optimizations): Document.
20515 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Guard
20516 infer_loop_bounds_from_undefined by it.
20517
636f59cf
RB
205182013-01-31 Richard Biener <rguenther@suse.de>
20519
20520 PR tree-optimization/56150
20521 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not
20522 visit virtual operands.
20523 (find_uses_to_rename_bb): Likewise.
20524
205252013-01-31 Richard Biener <rguenther@suse.de>
fcfa87ac
RB
20526
20527 PR tree-optimization/56150
20528 * tree-ssa-tail-merge.c (gimple_equal_p): Properly handle
20529 mixed store non-store stmts.
20530
32887460
JJ
205312013-01-30 Jakub Jelinek <jakub@redhat.com>
20532
e60e09a0
JJ
20533 PR sanitizer/55374
20534 * gcc.c (LIBASAN_SPEC): Define just to ADD_STATIC_LIBASAN_LIBS if
20535 LIBASAN_EARLY_SPEC is defined.
20536 (LIBASAN_EARLY_SPEC): Define to empty string if not already defined.
20537 (LINK_COMMAND_SPEC): Add LIBASAN_EARLY_SPEC for -fsanitize=address,
20538 before %o.
20539 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Define.
20540
32887460
JJ
20541 PR c++/55742
20542 * config/i386/i386.c (ix86_valid_target_attribute_inner_p): Diagnose
20543 invalid args instead of ICEing on it.
20544 (ix86_valid_target_attribute_tree): Return error_mark_node if
20545 ix86_valid_target_attribute_inner_p failed.
20546 (ix86_valid_target_attribute_p): Return false only if
20547 ix86_valid_target_attribute_tree returned error_mark_node. Allow
20548 target("default") attribute.
20549 (sorted_attr_string): Change argument from const char * to tree,
20550 merge in all target attribute arguments rather than just one.
20551 Formatting fix. Use XNEWVEC instead of xmalloc and XDELETEVEC
20552 instead of free. Avoid using strcat.
20553 (ix86_mangle_function_version_assembler_name): Mangle
20554 target("default") as if no target attribute is present. Adjust
20555 sorted_attr_string caller. Avoid leaking memory. Use XNEWVEC
20556 instead of xmalloc and XDELETEVEC instead of free.
20557 (ix86_function_versions): Don't return true if one of the decls
20558 doesn't have target attribute. If they don't and one of the decls
20559 is DECL_FUNCTION_VERSIONED, report an error. Adjust
20560 sorted_attr_string caller. Use XDELETEVEC instead of free.
20561 (ix86_supports_function_versions): Remove.
20562 (make_name): Fix up formatting.
20563 (make_dispatcher_decl): Remove resolver_name and its initialization.
20564 Avoid leaking memory.
20565 (is_function_default_version): Return true if there is
20566 target("default") attribute rather than no target attribute at all.
20567 (make_resolver_func): Avoid leaking memory.
20568 (ix86_generate_version_dispatcher_body): Likewise.
20569 (TARGET_OPTION_SUPPORTS_FUNCTION_VERSIONS): Remove.
20570 * target.def (supports_function_versions): Remove.
20571 * doc/tm.texi.in (SUPPORTS_FUNCTION_VERSIONS): Remove.
20572 * doc/tm.texi: Regenerated.
20573
73cca0cc
VM
205742013-01-30 Vladimir Makarov <vmakarov@redhat.com>
20575
20576 PR rtl-optimization/56144
20577 * lra-constraints.c (get_reload_reg): Don't reuse reload pseudo
20578 for values with side effects.
20579
11452e7b
RB
205802013-01-30 Richard Biener <rguenther@suse.de>
20581
20582 * sparseset.h (sparseset_bit_p): Use gcc_checking_assert.
20583 (sparseset_pop): Likewise.
20584 * cfganal.c (compute_idf): Likewise. Increase work-stack size
20585 to be able to use quick_push in the worker loop.
20586
01cb1ef5
MP
205872013-01-30 Marek Polacek <polacek@redhat.com>
20588
20589 * cfgcleanup.c (cleanup_cfg): Don't mark affected BBs.
20590
e892936e
RB
205912013-01-30 Richard Biener <rguenther@suse.de>
20592
20593 PR lto/56147
6edc3e32 20594 * lto-symtab.c (lto_symtab_merge_decls_1): Guard DECL_BUILT_IN check.
e892936e 20595
cc06c01d
GJL
205962013-01-30 Georg-Johann Lay <avr@gjlay.de>
20597
20598 PR tree-optimization/56064
20599 * fixed-value.c (fixed_from_double_int): New function.
20600 * fixed-value.h (fixed_from_double_int): New prototype.
20601 (const_fixed_from_double_int): New static inline function.
20602 * fold-const.c (native_interpret_fixed): New static function.
20603 (native_interpret_expr) <FIXED_POINT_TYPE>: Use it.
20604 (can_native_interpret_type_p) <FIXED_POINT_TYPE>: Return true.
20605 (native_encode_fixed): New static function.
20606 (native_encode_expr) <FIXED_CST>: Use it.
20607 (native_interpret_int): Move double_int worker code to...
20608 * double-int.c (double_int::from_buffer): ...this new static method.
20609 * double-int.h (double_int::from_buffer): Prototype it.
20610
d394a308
RB
206112013-01-30 Richard Biener <rguenther@suse.de>
20612
20613 * tree-ssa-structalias.c (final_solutions, final_solutions_obstack):
20614 New pointer-map and obstack.
20615 (init_alias_vars): Allocate pointer-map and obstack.
20616 (delete_points_to_sets): Free them.
20617 (find_what_var_points_to): Cache result.
20618 (find_what_p_points_to): Adjust for changed interface of
20619 find_what_var_points_to.
20620 (compute_points_to_sets): Likewise.
20621 (ipa_pta_execute): Likewise.
20622
20804d96
RO
206232013-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
20624
20625 * configure.ac (HAVE_AS_SPARC_NOBITS): New test.
20626 * configure: Regenerate.
20627 * config.in: Regenerate.
20628 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section): Emit
20629 #nobits/#progbits if supported.
20630
a7ad88a2
OE
206312013-01-29 Oleg Endo <olegendo@gcc.gnu.org>
20632
20633 PR target/56121
20634 * config/sh/sh.md (bclr_m2a, bset_m2a, bst_m2a, bld_m2a, bldsign_m2a,
20635 bld_reg, *bld_regqi, band_m2a, bandreg_m2a, bor_m2a, borreg_m2a,
20636 bxor_m2a, bxorreg_m2a): Add satisfies_constraint_K03 condition.
20637
7af79f92
GY
206382013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
20639
91bfca59
OE
20640 * config/arm/cortex-a7.md (cortex_a7_neon, cortex_a7_all): Remove.
20641 (cortex_a7_idiv): Use cortex_a7_both instead of cortex_a7_all.
7af79f92 20642
753bcf7b
GY
206432013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
20644
91bfca59
OE
20645 * config/arm/arm.c (cortexa7_younger): Return true for TYPE_CALL.
20646 * config/arm/cortex-a7.md (cortex_a7_call): Update required units.
753bcf7b 20647
8cbc2ea8
GY
206482013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
20649
91bfca59
OE
20650 * config/arm/arm-protos.h (arm_mac_accumulator_is_result): New
20651 declaration.
20652 * config/arm/arm.c (arm_mac_accumulator_is_result): New function.
20653 * config/arm/cortex-a7.md: New bypasses using
20654 arm_mac_accumulator_is_result.
8cbc2ea8 20655
697a3325
GY
206562013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
20657
91bfca59 20658 * config/arm/cortex-a7.md (cortex_a7_neon_mul): New reservation.
697a3325 20659 (cortex_a7_neon_mla): Likewise.
91bfca59
OE
20660 (cortex_a7_fpfmad): New reservation.
20661 (cortex_a7_fpmacs): Use ffmas and update required units.
20662 (cortex_a7_fpmuld): Update required units and latency.
20663 (cortex_a7_fpmacd): Likewise.
20664 (cortex_a7_fdivs, cortex_a7_fdivd): Likewise.
20665 (cortex_a7_neon). Likewise.
20666 (bypass) Update participating units.
697a3325 20667
29637783
GY
206682013-01-29 Greta Yorsh <Greta.Yorsh@arm.com>
20669
91bfca59
OE
20670 * config/arm/arm.md (type): Add ffmas and ffmad to "type" attribute.
20671 * config/arm/vfp.md (fma,fmsub,fnmsub,fnmadd): Change type
20672 from fmac to ffma.
20673 * config/arm/vfp11.md (vfp_farith): Use ffmas.
20674 (vfp_fmul): Use ffmad.
20675 * config/arm/cortex-r4f.md (cortex_r4_fmacs): Use ffmas.
20676 (cortex_r4_fmacd): Use ffmad.
20677 * config/arm/cortex-m4-fpu.md (cortex_m4_fmacs): Use ffmas.
20678 * config/arm/cortex-a9.md (cortex_a9_fmacs): Use ffmas.
20679 (cortex_a9_fmacd): Use ffmad.
20680 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_macs): Use ffmas.
20681 (cortex_a8_vfp_macd): Use ffmad.
20682 * config/arm/cortex-a5.md (cortex_a5_fpmacs): Use ffmas.
20683 (cortex_a5_fpmacd): Use ffmad.
20684 * config/arm/cortex-a15-neon.md (cortex_a15_vfp_macs) Use ffmas.
20685 (cortex_a15_vfp_macd): Use ffmad.
20686 * config/arm/arm1020e.md (v10_fmul): Use ffmas and ffmad.
29637783 20687
2ee8a2d5
JM
206882013-01-29 Jason Merrill <jason@redhat.com>
20689
20690 PR libstdc++/54314
20691 * varasm.c (default_assemble_visibility): Don't warn about
20692 visibility on artificial decls.
20693
78d087bc
RB
206942013-01-29 Richard Biener <rguenther@suse.de>
20695
20696 PR tree-optimization/56113
20697 * tree-ssa-structalias.c (equiv_class_lookup): Also return
20698 the bitmap leader.
20699 (label_visit): Free duplicate bitmaps and record the leader instead.
20700 (perform_var_substitution): Adjust.
20701
83ba4d6f
RB
207022013-01-29 Richard Biener <rguenther@suse.de>
20703
20704 PR tree-optimization/55270
20705 * tree-ssa-dom.c (eliminate_degenerate_phis): If we changed
20706 the CFG, schedule loops for fixup.
20707
66dfe13f
NC
207082013-01-29 Nick Clifton <nickc@redhat.com>
20709
20710 * config/rl78/rl78.c (rl78_regno_mode_code_ok_for_base_p): Allow
20711 SP_REG.
20712
5a579c3b
LE
207132013-01-28 Leif Ekblad <leif@rdos.net>
20714
20715 * config.gcc (i[34567]86-*-rdos*, x86_64-*-rdos*): New targets.
20716 * config/i386/i386.h (TARGET_RDOS): New macro.
20717 (DEFAULT_LARGE_SECTION_THRESHOLD): New macro.
20718 * config/i386/i386.c (ix86_option_override_internal): For 64bit
20719 TARGET_RDOS, set ix86_cmodel to CM_MEDIUM_PIC and flag_pic to 1.
20720 * config/i386/i386.opt (mlarge-data-threshold): Initialize to
20721 DEFAULT_LARGE_SECTION_THRESHOLD.
20722 * config/i386/i386.md (R14_REG, R15_REG): New constants.
20723 * config/i386/rdos.h: New file.
20724 * config/i386/rdos64.h: New file.
20725
51e44392
BS
207262013-01-28 Bernd Schmidt <bernds@codesourcery.com>
20727
20728 PR other/54814
20729 * reload.c (find_valid_class_1): Use in_hard_reg_set_p instead of
20730 TEST_HARD_REG_BIT.
20731
db1fb332
JJ
207322013-01-28 Jakub Jelinek <jakub@redhat.com>
20733
20734 PR rtl-optimization/56117
20735 * sched-deps.c (sched_analyze_2) <case PREFETCH>: For use_cselib
20736 call cselib_lookup_from_insn on the MEM before calling
20737 add_insn_mem_dependence.
20738
16917761
RB
207392013-01-28 Richard Biener <rguenther@suse.de>
20740
20741 * tree-inline.c (remap_gimple_stmt): Do not assing a BLOCK
20742 to a stmt that didn't have one.
20743 (copy_phis_for_bb): Likewise for PHI arguments.
20744 (copy_debug_stmt): Likewise for debug stmts.
20745
b9fc0497
RB
207462013-01-28 Richard Biener <rguenther@suse.de>
20747
20748 PR tree-optimization/56034
6edc3e32 20749 * tree-loop-distribution.c (enum partition_kind): Add PKIND_REDUCTION.
b9fc0497
RB
20750 (partition_builtin_p): Adjust.
20751 (generate_code_for_partition): Handle PKIND_REDUCTION. Assert
20752 it is the last partition.
20753 (rdg_flag_uses): Check SSA_NAME_IS_DEFAULT_DEF before looking
20754 up the vertex for the definition.
20755 (classify_partition): Classify whether a partition is a
20756 PKIND_REDUCTION, thus has uses outside of the loop.
20757 (ldist_gen): Inherit PKIND_REDUCTION when merging partitions.
20758 Merge all PKIND_REDUCTION partitions into the last partition.
20759 (tree_loop_distribution): Seed partitions from reductions as well.
20760
aa710d25
JJ
207612013-01-28 Jakub Jelinek <jakub@redhat.com>
20762
0bfbca58
JJ
20763 PR tree-optimization/56125
20764 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Don't optimize
20765 pow(x,c) into sqrt(x) * powi(x, n/2) or
20766 1.0 / (sqrt(x) * powi(x, abs(n/2))) if c is an integer or when
20767 optimizing for size.
20768 Don't optimize pow(x,c) into powi(x, n/3) * powi(cbrt(x), n%3) or
20769 1.0 / (powi(x, abs(n)/3) * powi(cbrt(x), abs(n)%3)) if 2c is an
20770 integer.
20771
aa710d25
JJ
20772 PR tree-optimization/56094
20773 * gimplify.c (force_gimple_operand_1): Temporarily set input_location
20774 to UNKNOWN_LOCATION while gimplifying expr.
20775
77dc5297
UB
207762013-01-27 Uros Bizjak <ubizjak@gmail.com>
20777
20778 PR target/56114
20779 * config/i386/i386.md (*movabs<mode>_1): Add square brackets around
20780 operand 0 in movabs insn template for -masm=intel asm alternative.
20781 (*movabs<mode>_2): Ditto for operand 1.
20782
0bfbca58 207832013-01-26 David Holsgrove <david.holsgrove@xilinx.com>
fbf0cf90
DH
20784
20785 PR target/54663
20786 * config.gcc (microblaze*-linux*): Add tmake_file to allow building
20787 of microblaze-c.o
20788
0bfbca58 207892013-01-26 Edgar E. Iglesias <edgar.iglesias@gmail.com>
6f14eef2
EI
20790
20791 * config.gcc (microblaze*-*-*): Rename microblaze*-*-elf, update
20792 tm_file.
20793
0bfbca58 207942013-01-25 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
706b2314
N
20795
20796 * config/aarch64/aarch64.c (TARGET_FIXED_CONDITION_CODE_REGS):
20797 Undef to avoid warning.
20798
478f60f9
MH
207992013-01-25 Michael Haubenwallner <michael.haubenwallner@salomon.at>
20800
20801 * configure.ac (gcc_cv_ld_static_dynamic): Define for AIX native ld.
20802 * configure: Regenerate.
20803
d7fa6ee2
JJ
208042013-01-25 Jakub Jelinek <jakub@redhat.com>
20805
20806 PR tree-optimization/56098
20807 * tree-ssa-phiopt.c (nt_init_block): Don't call add_or_mark_expr
20808 for stmts with volatile ops.
20809 (cond_store_replacement): Don't optimize if assign has volatile ops.
20810 (cond_if_else_store_replacement_1): Don't optimize if either
20811 then_assign or else_assign have volatile ops.
20812 (hoist_adjacent_loads): Don't optimize if either def1 or def2 have
20813 volatile ops.
20814
f8fe87bd
GJL
208152013-01-25 Georg-Johann Lay <avr@gjlay.de>
20816
20817 * doc/invoke.texi (AVR Built-in Macros): Document __XMEGA__.
20818
28398d0d
GJL
208192013-01-25 Georg-Johann Lay <avr@gjlay.de>
20820
20821 * doc/extend.texi (Example of asm with clobbered asm reg): Fix
20822 missing ':' in asm example.
20823
b7d7d917
TB
208242013-01-25 Tejas Belagod <tejas.belagod@arm.com>
20825
20826 * config/aarch64/aarch64-simd-builtins.def: Separate sq<r>dmulh_lane
20827 entries into lane and laneq entries.
77dc5297
UB
20828 * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_lane<mode>):
20829 Remove AdvSIMD scalar modes.
b7d7d917
TB
20830 (aarch64_sq<r>dmulh_laneq<mode>): New.
20831 (aarch64_sq<r>dmulh_lane<mode>): New RTL pattern for Scalar AdvSIMD
20832 modes.
20833 * config/aarch64/arm_neon.h: Fix all the vq<r>dmulh_lane* intrinsics'
20834 builtin implementations to relfect changes in RTL in aarch64-simd.md.
20835 * config/aarch64/iterators.md (VCOND): New.
20836 (VCONQ): New.
20837
556f9906
GJL
208382013-01-25 Georg-Johann Lay <avr@gjlay.de>
20839
20840 PR target/54222
20841 * config/avr/builtins.def (DEF_BUILTIN): Add LIBNAME argument.
20842 Add NULL LIBNAME argument to existing definitions.
20843 (ABSHR, ABSR, ABSLR, ABSLLR, ABSHK, ABSK, ABSLK, ABSLLK): New.
20844 * config/avr/avr-c.c (DEF_BUILTIN): Add LIBNAME argument.
20845 * config/avr/avr.c (DEF_BUILTIN): Same.
20846 (avr_init_builtins): Pass down LIBNAME to add_builtin_function.
20847 (avr_expand_builtin): Expand to a vanilla call if a libgcc
20848 implementation is available (DECL_ASSEMBLER_NAME is set).
20849 (avr_fold_absfx): New static function.
20850 (avr_fold_builtin): Use it to handle: AVR_BUILTIN_ABSHR,
20851 AVR_BUILTIN_ABSR, AVR_BUILTIN_ABSLR, AVR_BUILTIN_ABSLLR,
20852 AVR_BUILTIN_ABSHK, AVR_BUILTIN_ABSK, AVR_BUILTIN_ABSLK,
20853 AVR_BUILTIN_ABSLLK.
20854 * config/avr/stdfix.h (abshr, absr, abslr, absllr)
20855 (abshk, absk, abslk, absllk): Provide as static inline functions.
20856
1f546bbb
MP
208572013-01-25 Marek Polacek <polacek@redhat.com>
20858
20859 PR tree-optimization/56035
20860 * cfgloopmanip.c (fix_loop_structure): Remove redundant condition.
20861
7e184bd7
UB
208622012-01-24 Uros Bizjak <ubizjak@gmail.com>
20863
20864 * config/i386/i386.md (*movti_internal_rex64): Add (o,e) alternative.
20865 (*movtf_internal_rex64): Add (!o,C) alternative
20866 (*movxf_internal_rex64): Ditto.
20867 (*movdf_internal_rex64): Add (?r,C) and (?m,C) alternatives.
20868
f5ba49ac
SM
208692013-01-24 Shenghou Ma <minux.ma@gmail.com>
20870
20871 * doc/invoke.texi: fix typo.
20872 * doc/objc.texi: fix typo.
20873
a6343728
RS
208742013-01-24 Richard Sandiford <rdsandiford@googlemail.com>
20875
20876 * config/mips/mips.md (*and<mode>3_mips16): Use the "W" constraint
20877 for the first two alternatives.
20878
cd030c07
DN
208792013-01-24 Diego Novillo <dnovillo@google.com>
20880
77dc5297 20881 * Makefile.in (GGC): Remove. Replace all instances with ggc-page.o.
cd030c07
DN
20882 (ggc-zone.o): Remove.
20883 * configure.ac: Remove option --with-gc.
20884 * configure: Re-generate.
20885 * doc/install.texi: Remove documentation for --with-gc.
20886 * gengtype.c (write_enum_defn): Remove. Update all users.
20887 (write_Types_process_field): Remove generation of gt_e_* argument.
20888 (output_type_enum): Remove. Update all users.
20889 (write_enum_defn): Remove. Update all users.
20890 (enum alloc_zone): Remove. Update all users.
77dc5297 20891 (write_splay_tree_allocator_def): Remove generation of gt_e_* argument.
cd030c07
DN
20892 * ggc-common.c (ggc_splay_alloc): Remove first argument.
20893 Update all callers.
20894 (struct ptr_data): Remove field TYPE. Update all users.
77dc5297 20895 (gt_pch_note_object): Remove argument TYPE. Update all users.
cd030c07
DN
20896 * ggc-internal.h (ggc_pch_alloc_object): Remove last argument.
20897 Update all users.
aaf1e810 20898 * ggc-none.c (ggc_alloc_typed_stat): Remove.
cd030c07
DN
20899 (struct alloc_zone): Remove.
20900 (ggc_internal_alloc_zone_stat): Remove.
20901 (ggc_internal_cleared_alloc_zone_stat): Remove.
20902 * ggc-page.c (ggc_alloc_typed_stat): Remove.
77dc5297
UB
20903 (ggc_pch_count_object): Remove last argument. Update all users.
20904 (ggc_pch_alloc_object): Remove last argument. Update all users.
cd030c07
DN
20905 (struct alloc_zone): Remove.
20906 * ggc-zone.c: Remove.
77dc5297 20907 * ggc.h (gt_pch_note_object): Remove last argument. Update all users.
cd030c07
DN
20908 (struct alloc_zone): Remove.
20909 (ggc_alloc_typed_stat): Remove.
20910 (ggc_alloc_typed): Remove.
20911 (ggc_splay_alloc): Remove first argument.
20912 (rtl_zone): Remove. Update all users.
20913 (tree_zone): Remove. Update all users.
20914 (tree_id_zone): Remove. Update all users.
20915 (ggc_internal_zone_alloc_stat): Remove. Update all users.
77dc5297 20916 (ggc_internal_zone_cleared_alloc_stat): Remove. Update all users.
cd030c07 20917 (ggc_internal_zone_vec_alloc_stat): Remove. Update all users.
77dc5297 20918 * tree-ssanames.c: Remove references to zone allocator in comments.
cd030c07 20919
a861ffa4
GJL
209202013-01-24 Georg-Johann Lay <avr@gjlay.de>
20921
20922 * config/avr/avr.c (avr_out_fract): Make register numbers that
20923 might be outside of source operand signed.
20924
593c0ddd
UB
209252013-01-24 Uros Bizjak <ubizjak@gmail.com>
20926
20927 * config/i386/constraints.md (Yf): New constraint.
20928 * config/i386/i386.md (*movdf_internal_rex64): Use Yf*f instead
20929 of f constraint to conditionaly disable x87 register preferences.
20930 (*movdf_internal): Ditto.
20931 (*movsf_internal): Ditto.
20932
e86c0101
SB
209332013-01-24 Steven Bosscher <steven@gcc.gnu.org>
20934
20935 PR inline-asm/55934
20936 * lra-assigns.c (assign_by_spills): Throw away the pattern of asms
20937 that have operands with impossible constraints.
20938 Add a FIXME for a speed-up opportunity.
20939 * lra-constraints.c (process_alt_operands): Verify that a class
20940 selected from constraints on asms is valid for the operand mode.
20941 (curr_insn_transform): Remove incorrect comment.
20942
f6fee35f
DE
209432013-01-23 David Edelsohn <dje.gcc@gmail.com>
20944
20945 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Check that
20946 TOC operand is a valid symbol ref in the constant pool.
20947
209482013-01-23 Edgar E. Iglesias <edgar.iglesias@gmail.com>
c7729184 20949
aaf1e810 20950 * config/microblaze/linux.h: Add TARGET_OS_CPP_BUILTINS
c7729184 20951
dc62d7d1
GJL
209522013-01-23 Georg-Johann Lay <avr@gjlay.de>
20953
20954 PR target/54222
20955 * config/avr/stdfix.h: New file.
20956 * t-avr (stdfix-gcc.h): New rule to build it.
20957 (EXTRA_HEADERS): Set it to install stdfix.h, stdfix-gcc.h.
20958
2660d12d
KS
209592013-01-23 Kostya Serebryany <kcc@google.com>
20960
77dc5297
UB
20961 * config/darwin.h: remove dependency on
20962 CoreFoundation (asan on Mac OS).
2660d12d 20963
a70418fc
JJ
209642013-01-23 Jakub Jelinek <jakub@redhat.com>
20965
20966 PR target/49069
20967 * config/arm/arm.md (cbranchdi4, cstoredi4): Use s_register_operand
20968 instead of cmpdi_operand for first comparison operand.
20969 Don't assert that comparison operands aren't both constants.
20970
47876a2a
JW
209712013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
20972
20973 * doc/install.texi (Downloading the Source): Update references to
20974 downloading separate components.
20975
209762013-01-22 Jonathan Wakely <jwakely.gcc@gmail.com>
4ebd56a5
JW
20977
20978 * doc/extend.texi (__int128): Improve grammar.
20979
47876a2a 209802013-01-22 Uros Bizjak <ubizjak@gmail.com>
32fc5b8a
UB
20981
20982 PR target/56028
20983 * config/i386/i386.md (*movti_internal_rex64): Change (o,riF)
20984 alternative to (o,r).
20985 (*movdi_internal_rex64): Remove (!o,n) alternative.
20986 (DImode immediate->memory splitter): Remove.
20987 (DImode immediate->memory peephole2): Remove.
20988 (movtf): Enable for TARGET_64BIT || TARGET_SSE.
20989 (*movtf_internal_rex64): Rename from *movtf_internal. Change (!o,F*r)
20990 alternative to (!o,*r).
20991 (*movtf_internal_sse): New pattern.
20992 (*movxf_internal_rex64): New pattern.
20993 (*movxf_internal): Disable for TARGET_64BIT.
20994 (*movdf_internal_rex64): Remove (!o,F) alternative.
20995
3a984f10
JJ
209962013-01-22 Jakub Jelinek <jakub@redhat.com>
20997
502498d5
JJ
20998 PR middle-end/56074
20999 * dumpfile.c (dump_loc): Only print loc if LOCATION_LOCUS (loc)
21000 isn't UNKNOWN_LOCATION nor BUILTINS_LOCATION.
21001 * tree-vect-loop-manip.c (find_loop_location): Also ignore
21002 stmt locations where LOCATION_LOCUS of the stmt location is
21003 UNKNOWN_LOCATION or BUILTINS_LOCATION.
21004
3a984f10
JJ
21005 PR target/55686
21006 * config/i386/i386.md (UNSPEC_STOS): New.
21007 (strset_singleop, *strsetdi_rex_1, *strsetsi_1, *strsethi_1,
21008 *strsetqi_1): Add UNSPEC_STOS.
21009
fa817f7f
PC
210102013-01-22 Paolo Carlini <paolo.carlini@oracle.com>
21011
21012 PR c++/56067
21013 * doc/invoke.texi: Remove left over -Wsynth example.
21014
8f498c1b
JJ
210152013-01-21 Jakub Jelinek <jakub@redhat.com>
21016
21017 PR tree-optimization/56051
21018 * fold-const.c (fold_binary_loc): Don't fold
21019 X < (cast) (1 << Y) into (X >> Y) != 0 if cast is either
21020 a narrowing conversion, or widening conversion from signed
21021 to unsigned.
21022
47876a2a 210232013-01-21 Uros Bizjak <ubizjak@gmail.com>
35d59da7
UB
21024
21025 PR rtl-optimization/56023
21026 * haifa-sched.c (fix_inter_tick): Do not update ticks of instructions,
21027 dependent on debug instruction.
21028
5b9db1bc
MJ
210292013-01-21 Martin Jambor <mjambor@suse.cz>
21030
21031 PR middle-end/56022
21032 * function.c (allocate_struct_function): Call
21033 invoke_set_current_function_hook earlier.
21034
e8bb7d68
JJ
210352013-01-21 Jakub Jelinek <jakub@redhat.com>
21036
21037 * reload1.c (init_reload): Only initialize reload_obstack
21038 during the first call.
21039
616a4e32
MP
210402013-01-21 Marek Polacek <polacek@redhat.com>
21041
21042 * cfgloop.c (verify_loop_structure): Fix up grammar.
21043
4401981b
YHH
210442013-01-21 Yi-Hsiu Hsu <ahsu@marvell.com>
21045
21046 * config/arm/marvell-pj4.md (pj4_shift_conds, pj4_alu_shift,
21047 pj4_alu_shift_conds, pj4_shift): Handle simple_alu_shift.
21048
8e87740b
RR
210492013-01-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21050
21051 PR target/56058
21052 * config/arm/marvell-pj4.md: Update copyright year.
21053 Fix up use of alu to alu_reg and simple_alu_imm.
21054
47876a2a 210552013-01-21 Uros Bizjak <ubizjak@gmail.com>
1f6bc337
UB
21056
21057 * config/i386/i386.md (enabled): Do not disable fma4 for TARGET_FMA.
21058
89d56d79
VM
210592013-01-20 Vladimir Makarov <vmakarov@redhat.com>
21060
21061 PR target/55433
21062 * lra-constraints.c (curr_insn_transform): Don't reuse original
1f6bc337 21063 insn for secondary memory move when memory mode should be different.
89d56d79 21064
fe603553
JDA
210652013-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21066
21067 * config/pa/pa.md (atomic_loaddi, atomic_loaddi_1, atomic_storedi,
21068 atomic_storedi_1): New patterns.
21069
01284895
VK
210702013-01-20 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
21071
21072 btver2 pipeline descriptions.
21073 * config/i386/i386.c: Enable CPU_BTVER2 to use btver2 pipeline
21074 descriptions.
21075 * config/i386/i386.md (btver2_decode): New type attributes.
1f6bc337 21076 * config/i386/sse.md (btver2_decode, btver2_sse_attr): New
01284895
VK
21077 type attributes.
21078 * config/i386/btver2.md: New file describing btver2 pipelines.
21079
5630e3e1
JL
210802013-01-19 Andrew Pinski <apinski@cavium.com>
21081
21082 PR tree-optimization/52631
21083 * tree-ssa-sccvn (visit_use): Before looking up the original
21084 statement, try looking up the simplified expression.
21085
650ae806
AG
210862013-01-19 Anthony Green <green@moxielogic.com>
21087
21088 * config/moxie/moxie.c (moxie_expand_prologue): Set
21089 current_function_static_stack_size.
21090
e300ec2d
JJ
210912013-01-18 Jakub Jelinek <jakub@redhat.com>
21092
21093 PR tree-optimization/56029
21094 * tree-phinodes.c (reserve_phi_args_for_new_edge): Set
21095 gimple_phi_arg_location for the new arg to UNKNOWN_LOCATION.
21096
a3d7af04
SS
210972013-01-18 Sharad Singhai <singhai@google.com>
21098
21099 PR tree-optimization/55995
21100 * dumpfile.c (dump_loc): Print location only if available.
21101 * tree-vectorizer.c (increase_alignment): Intialize vect_location.
21102
66aa7879
VM
211032013-01-18 Vladimir Makarov <vmakarov@redhat.com>
21104
21105 PR target/55433
21106 * lra-constraints.c (curr_insn_transform): Reuse original insn for
21107 secondary memory move.
21108 (inherit_reload_reg): Use rclass instead of cl for
21109 check_secondary_memory_needed_p.
21110
3f0fee7b
JJ
211112013-01-18 Jakub Jelinek <jakub@redhat.com>
21112
21113 PR middle-end/56015
21114 * expr.c (expand_expr_real_2) <case COMPLEX_EXPR>: Handle
1f6bc337 21115 the case where writing real complex part of target modifies op1.
3f0fee7b 21116
70c67693
JG
211172013-01-18 James Greenhalgh <james.greenhalgh@arm.com>
21118
21119 * config/aarch64/aarch64-simd.md
21120 (aarch64_vcond_internal<mode>): Handle unordered cases.
21121 * config/aarch64/iterators.md (v_cmp_result): New.
21122
df8de9b3
YHH
211232013-01-18 Yi-Hsiu Hsu <ahsu@marvell.com>
21124 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
21125
21126 * config/arm/marvell-pj4.md: New file.
21127 * config/arm/arm.c (arm_issue_rate): Add marvell_pj4.
21128 * config/arm/arm.md (generic_sched): Add marvell_pj4.
21129 (generic_vfp): Likewise.
21130 * config/arm/arm-cores.def: Add marvell-pj4.
21131 * config/arm/arm-tune.md: Regenerate.
21132 * config/arm/arm-tables.opt: Regenerate.
21133 * config/arm/bpabi.h (BE8_LINK_SPEC): Add marvell_pj4.
21134 * doc/invoke.texi: Document marvell-pj4.
21135
be30c356
TB
211362013-01-18 Tejas Belagod <tejas.belagod@arm.com>
21137
21138 * config/aarch64/arm_neon.h: Map scalar types to standard types.
21139
0bfbca58 211402013-01-18 Alexandre Oliva <aoliva@redhat.com>
af6236c1
AO
21141
21142 PR debug/54114
21143 PR debug/54402
21144 PR debug/49888
21145 * var-tracking.c (negative_power_of_two_p): New.
21146 (global_get_addr_cache, local_get_addr_cache): New.
21147 (get_addr_from_global_cache, get_addr_from_local_cache): New.
21148 (vt_canonicalize_addr): Rewrite using the above. Adjust the
21149 heading comment.
21150 (vt_stack_offset_p): Remove.
21151 (vt_canon_true_dep): Always canonicalize loc's address.
21152 (clobber_overlapping_mems): Make sure we have a MEM.
21153 (local_get_addr_clear_given_value): New.
21154 (val_reset): Clear local cached entries.
21155 (compute_bb_dataflow): Create and release the local cache.
21156 Disable duplicate MEMs clobbering.
21157 (emit_notes_in_bb): Clobber MEMs likewise.
21158 (vt_emit_notes): Create and release the local cache.
21159 (vt_initialize, vt_finalize): Create and release the global
21160 cache, respectively.
1f6bc337 21161 * alias.c (rtx_equal_for_memref_p): Compare operands of ENTRY_VALUEs.
af6236c1 21162
0bfbca58 211632013-01-18 Alexandre Oliva <aoliva@redhat.com>
7ff37ffa
AO
21164
21165 PR libmudflap/53359
21166 * tree-mudflap.c (mudflap_finish_file): Skip deferred decls
21167 not found in the symtab.
21168
0bfbca58 211692013-01-18 Alexandre Oliva <aoliva@redhat.com>
3aa03517 21170
c350ba53 21171 PR debug/56006
3aa03517
AO
21172 PR rtl-optimization/55547
21173 PR rtl-optimization/53827
21174 PR debug/53671
21175 PR debug/49888
21176 * alias.c (offset_overlap_p): New, factored out of...
21177 (memrefs_conflict_p): ... this. Use absolute sizes. Retain
21178 the conservative special case for symbolic constants. Don't
21179 adjust zero sizes on alignment.
21180
c664546f
JL
211812013-01-18 Bernd Schmidt <bernds@codesourcery.com>
21182
21183 PR rtl-optimization/52573
21184 * regrename.c (build_def_use): Ignore REG_DEAD notes if there is a
21185 REG_UNUSED for the same register.
21186
1bd3f750
MP
211872013-01-17 Richard Biener <rguenther@suse.de>
21188 Marek Polacek <polacek@redhat.com>
21189
21190 PR rtl-optimization/55833
21191 * loop-unswitch.c (unswitch_loops): Move loop verification...
21192 (unswitch_single_loop): ...here. Call mark_irreducible_loops.
21193 * cfgloopmanip.c (fix_loop_placement): Add IRRED_INVALIDATED parameter.
21194 Set it to true when we're removing a loop from hierarchy tree in
21195 an irreducible region.
21196 (fix_bb_placements): Adjust caller.
21197 (fix_loop_placements): Likewise.
21198
e52a8b71
GJL
211992013-01-17 Georg-Johann Lay <avr@gjlay.de>
21200
21201 * config/avr/builtins.def (DEF_BUILTIN): Factor out
21202 "__builtin_avr_" from NAME, turn NAME to an uppercase identifier.
21203 Factor out 'CODE_FOR_' from ICODE, use 'nothing' instead of '-1'.
21204 Remove ID. Adjust comments.
21205 * config/avr/avr-c.c (avr_builtin_name): Remove.
21206 (avr_cpu_cpp_builtins): Use DEF_BUILTIN instead of for-loop.
21207 * config/avr/avr.c (avr_tolower): New static function.
21208 (DEF_BUILTIN): Remove parameter ID. Prefix ICODE by 'CODE_FOR_'.
21209 Stringify NAME, prefix it with "__builtin_avr_" and lowercase it.
21210 (avr_expand_builtin): Assert insn_code != CODE_FOR_nothing for
21211 default expansion.
21212
8386a7ea
JH
212132013-01-17 Jan Hubicka <jh@suse.cz>
21214
610fb637 21215 PR tree-optimization/55273
8386a7ea
JH
21216 * loop-iv.c (iv_number_of_iterations): Consider zero iteration case.
21217
47876a2a 212182013-01-17 Uros Bizjak <ubizjak@gmail.com>
8abaebcd
UB
21219
21220 PR target/55981
21221 * config/i386/sync.md (atomic_store<mode>): Always generate SWImode
21222 store through atomic_store<mode>_1.
21223 (atomic_store<mode>_1): Macroize insn using SWI mode iterator.
21224
8222c37e
MJ
212252013-01-17 Martin Jambor <mjambor@suse.cz>
21226
21227 PR tree-optimizations/55264
21228 * ipa-inline-transform.c (can_remove_node_now_p_1): Never return true
21229 for virtual methods.
21230 * ipa.c (symtab_remove_unreachable_nodes): Never return true for
21231 virtual methods before inlining is over.
21232 * cgraph.h (cgraph_only_called_directly_or_aliased_p): Return false for
21233 virtual functions.
21234 * cgraphclones.c (cgraph_create_virtual_clone): Mark clones as
21235 non-virtual.
21236
79f01c76
VM
212372013-01-16 Vladimir Makarov <vmakarov@redhat.com>
21238
21239 PR rtl-optimization/56005
21240 * sched-deps.c (sched_analyze_2): Check deps->readonly for adding
21241 pending reads for prefetch.
21242
d0b6bb1b
IB
212432013-01-16 Ian Bolton <ian.bolton@arm.com>
21244
aaf1e810 21245 * config/aarch64/aarch64.md
d0b6bb1b
IB
21246 (*cstoresi_neg_uxtw): New pattern.
21247 (*cmovsi_insn_uxtw): New pattern.
21248 (*<optab>si3_uxtw): New pattern.
21249 (*<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): New pattern.
21250 (*<optab>si3_insn_uxtw): New pattern.
21251 (*bswapsi2_uxtw): New pattern.
21252
cb9cf03b
RB
212532013-01-16 Richard Biener <rguenther@suse.de>
21254
21255 * tree-inline.c (tree_function_versioning): Remove set but
21256 never used variable.
21257
2cfc56b9
RB
212582013-01-16 Richard Biener <rguenther@suse.de>
21259
21260 PR tree-optimization/55964
21261 * tree-flow.h (rename_variables_in_loop): Remove.
21262 (rename_variables_in_bb): Likewise.
21263 * tree-loop-distribution.c (update_phis_for_loop_copy): Remove.
21264 (copy_loop_before): Adjust and delete update-ssa status.
21265 * tree-vect-loop-manip.c (rename_variables_in_bb): Make static.
8abaebcd 21266 (rename_variables_in_bb): Likewise. Properly walk over predecessors.
2cfc56b9
RB
21267 (rename_variables_in_loop): Remove.
21268 (slpeel_update_phis_for_duplicate_loop): Likewise.
21269 (slpeel_tree_duplicate_loop_to_edge_cfg): Handle nested loops,
21270 use available cfg machinery instead of duplicating it.
21271 Update PHI nodes and perform poor-mans SSA update here.
21272 (slpeel_tree_peel_loop_to_edge): Adjust.
21273
c25a0c60
RB
212742013-01-16 Richard Biener <rguenther@suse.de>
21275
21276 PR tree-optimization/54767
21277 PR tree-optimization/53465
21278 * tree-vrp.c (vrp_meet_1): Revert original fix for PR53465.
21279 (vrp_visit_phi_node): For PHI arguments coming via backedges
21280 drop all symbolical range information.
21281 (execute_vrp): Compute backedges.
21282
04b535af
RB
212832013-01-16 Richard Biener <rguenther@suse.de>
21284
21285 * doc/install.texi: Update CLooG and ISL requirements to
21286 0.18.0 and 0.11.1.
21287
8b0a1e0b
CB
212882013-01-16 Christian Bruel <christian.bruel@st.com>
21289
21290 PR target/55301
21291 * config/sh/sh.c (sh_expand_prologue): Postpone new_stack mem symbol.
21292 (broken_move): Handle UNSPECV_SP_SWITCH_B.
21293 * config/sh/sh.md (sp_switch_1): Use set (reg:SI SP_REG).
21294
212952013-01-16 DJ Delorie <dj@redhat.com>
21296
21297 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New.
21298 (UNSPECV_SP_SWITCH_E): New.
21299 (sp_switch_1): Change to an unspec.
21300 (sp_switch_2): Change to an unspec. Don't use post-inc when we
21301 replace $r15.
21302
213032013-01-16 Uros Bizjak <ubizjak@gmail.com>
88e784e6
UB
21304
21305 * emit-rtl.c (need_atomic_barrier_p): Mask memory model argument
21306 with MEMMODEL_MASK before comparing with MEMMODEL_* memory types.
21307 * optabs.c (maybe_emit_sync_lock_test_and_set): Ditto.
21308 (expand_mem_thread_fence): Ditto.
21309 (expand_mem_signal_fence): Ditto.
21310 (expand_atomic_load): Ditto.
21311 (expand_atomic_store): Ditto.
21312
0bfbca58 213132013-01-16 Alexandre Oliva <aoliva@redhat.com>
5147bf6a
AO
21314
21315 PR rtl-optimization/55547
21316 PR rtl-optimization/53827
21317 PR debug/53671
21318 PR debug/49888
21319 * alias.c (memrefs_conflict_p): Set sizes to negative after
21320 AND adjustments.
21321
305e3ac1
JJ
213222013-01-15 Jakub Jelinek <jakub@redhat.com>
21323
21324 PR target/55940
21325 * function.c (thread_prologue_and_epilogue_insns): Always
21326 add crtl->drap_reg to set_up_by_prologue.set, even if
21327 stack_realign_drap is false.
21328
f78ac4f2
JBG
213292013-01-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
21330
21331 * config/vax/vax.md (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3,
21332 and<mode>3, *and<mode>_const_int, ior<mode>3, xor<mode>3, ashrsi3,
21333 *call): Fix indention.
21334
a78a8cc4
TV
213352013-01-15 Tom de Vries <tom@codesourcery.com>
21336
21337 PR target/55876
21338 * optabs.c (widen_operand): Use gen_lowpart instead of gen_rtx_SUBREG.
21339 Update comment.
21340
0e80383f
VM
213412013-01-15 Vladimir Makarov <vmakarov@redhat.com>
21342
305e3ac1 21343 PR rtl-optimization/55153
0e80383f
VM
21344 * sched-deps.c (sched_analyze_2): Add pending reads for prefetch.
21345
207b5956
MJ
213462013-01-15 Martin Jambor <mjambor@suse.cz>
21347
21348 PR tree-optimization/55920
21349 * tree-sra.c (analyze_access_subtree): Do not mark non-removable
21350 accesses as grp_to_be_debug_replaced.
21351
a7818b54
JJ
213522013-01-15 Jakub Jelinek <jakub@redhat.com>
21353
21354 PR tree-optimization/55920
21355 * tree-sra.c (sra_modify_assign): If for lacc->grp_to_be_debug_replaced
21356 there is non-useless type conversion needed from debug rhs to lhs,
21357 use build_debug_ref_for_model and/or VIEW_CONVERT_EXPR.
21358
b0fe107e
JM
213592013-01-15 Joseph Myers <joseph@codesourcery.com>
21360 Mikael Pettersson <mikpe@it.uu.se>
21361
21362 PR target/43961
21363 * config/arm/arm.h (ADDR_VEC_ALIGN): Align SImode jump tables for
21364 Thumb.
21365 (ASM_OUTPUT_CASE_LABEL): Remove.
21366 (ASM_OUTPUT_BEFORE_CASE_LABEL): Define to empty.
21367 * final.c (shorten_branches): Update alignment of labels before
21368 jump tables if CASE_VECTOR_SHORTEN_MODE.
21369
34ab62ee
RB
213702013-01-15 Richard Biener <rguenther@suse.de>
21371
21372 PR bootstrap/55961
21373 * system.h: Do not include gmp.h for building host tools.
21374
783a3a05
RB
213752013-01-15 Richard Biener <rguenther@suse.de>
21376
21377 PR middle-end/55882
21378 * emit-rtl.c (set_mem_attributes_minus_bitpos): Correctly
21379 account for bitpos when computing alignment.
21380
3a579e09
VY
213812013-01-15 Vladimir Yakovlev <vladimir.b.yakovlev@intel.com>
21382
21383 * config/i386/i386-c.c (ix86_target_macros_internal): New case.
21384 (ix86_target_macros_internal): Likewise.
21385
21386 * config/i386/i386.c (m_CORE2I7): Removed.
21387 (m_CORE_HASWELL): New macro.
21388 (m_CORE_ALL): Likewise.
21389 (initial_ix86_tune_features): m_CORE2I7 is replaced by m_CORE_ALL.
21390 (initial_ix86_arch_features): Likewise.
21391 (processor_target_table): Initializations for Core avx2.
21392 (cpu_names): New names "core-avx2".
21393 (ix86_option_override_internal): Changed PROCESSOR_COREI7 by
21394 PROCESSOR_CORE_HASWELL.
21395 (ix86_issue_rate): New case.
21396 (ia32_multipass_dfa_lookahead): Likewise.
21397 (ix86_sched_init_global): Likewise.
21398
21399 * config/i386/i386.h (TARGET_HASWELL): New macro.
21400 (target_cpu_default): New TARGET_CPU_DEFAULT_haswell.
21401 (processor_type): New PROCESSOR_HASWELL.
21402
955f5a07
JJ
214032013-01-15 Jakub Jelinek <jakub@redhat.com>
21404
ff784829
JJ
21405 PR tree-optimization/55955
21406 * tree-vect-loop.c (vectorizable_reduction): Give up early on
21407 *SHIFT_EXPR and *ROTATE_EXPR codes.
21408
955f5a07
JJ
21409 PR tree-optimization/48766
21410 * opts.c (common_handle_option): For -fwrapv disable -ftrapv, for
21411 -ftrapv disable -fwrapv.
21412
aeb8b4e9
GJL
214132013-01-14 Georg-Johann Lay <avr@gjlay.de>
21414
21415 PR target/55974
21416 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Define __FLASH
21417 etc. to 1 and not to __flash.
21418 Use LL suffix for __INT24_MAX__ with -mint8.
21419 Use ULL suffix for __UINT24_MAX__ with -mint8.
21420
1c494c6a
GJL
214212013-01-14 Georg-Johann Lay <avr@gjlay.de>
21422
21423 * config/avr/avr-arch.h
21424 (struct base_arch_s): Use typedef avr_arch_t instead.
21425 (struct arch_info_s): Use typedef avr_arch_info_t instead.
21426 (struct mcu_type_s): Use typedef avr_mcu_t instead.
21427 * config/avr/avr.c: Same.
21428 * config/avr/avr-devices.c: Same.
21429 * config/avr/driver-avr.c: Same.
21430 * config/avr/gen-avr-mmcu-texi.c: Same.
21431 * config/avr/avr-mcus.def: Adjust comment.
21432
a50344cb
TB
214332013-01-14 Tejas Belagod <tejas.belagod@arm.com>
21434
88e784e6
UB
21435 * config/aarch64/aarch64-simd.md (*aarch64_simd_ld1r<mode>): New.
21436 * config/aarch64/iterators.md (VALLDI): New.
a50344cb 21437
47876a2a 214382013-01-14 Uros Bizjak <ubizjak@gmail.com>
e6f0e052
UB
21439 Andi Kleen <ak@linux.intel.com>
21440
21441 PR target/55948
21442 * config/i386/sync.md (atomic_store<mode>_1): New pattern.
21443 (atomic_store<mode>): Call atomic_store<mode>_1 for IX86_HLE_RELEASE
21444 memmodel flag.
21445
00892272
GJL
214462013-01-14 Georg-Johann Lay <avr@gjlay.de>
21447
21448 * config/avr/avr-stdint.h: Remove trailing blanks.
21449 * config/avr/avr-log.h: Same.
21450 * config/avr/avr-arch.h: Same.
21451 * config/avr/avr-devices.c: Same.
21452 * config/avr/avr-dimode.md: Same.
21453 * config/avr/predicates.md: Same.
21454 * config/avr/avr-c.c: Same. And fix typo.
e6f0e052 21455
00892272
GJL
21456 * config/avr/avr-protos.h: Same. And:
21457 (function_arg_regno_p): Rename to avr_function_arg_regno_p.
21458 (init_cumulative_args): Rename to avr_init_cumulative_args.
21459 (expand_prologue): Rename to avr_expand_prologue.
21460 (expand_epilogue): Rename to avr_expand_epilogue.
21461 (adjust_insn_length): Rename to avr_adjust_insn_length.
21462 (notice_update_cc): Rename to avr_notice_update_cc.
21463 (final_prescan_insn): Rename to avr_final_prescan_insn.
21464 * config/avr/avr.c: Same.
21465 * config/avr/avr.h: Same.
21466 * config/avr/avr.md: Remove trailing blanks.
21467 (prologue): Use avr_expand_prologue.
21468 (epilogue, sibcall_epilogue): Use avr_expand_epilogue.
21469
7bb01996
RB
214702013-01-14 Richard Biener <rguenther@suse.de>
21471
21472 * tree-cfg.c (verify_expr_location, verify_expr_location_1,
21473 verify_location, collect_subblocks): New functions.
21474 (verify_gimple_in_cfg): Verify that locations only reference
21475 BLOCKs in the functions BLOCK tree.
21476
2724573f
RB
214772013-01-14 Richard Biener <rguenther@suse.de>
21478
21479 * tree-cfgcleanup.c (remove_forwarder_block): Unshare propagated
21480 PHI argument.
21481 * graphite-sese-to-poly.c (insert_out_of_ssa_copy): Properly
21482 unshare reference.
21483 (insert_out_of_ssa_copy_on_edge): Likewise.
21484 (rewrite_close_phi_out_of_ssa): Likewise.
21485 * tree-ssa.c (insert_debug_temp_for_var_def): Properly unshare
21486 debug expressions.
21487 * tree-ssa-pre.c (insert_into_preds_of_block): Properly unshare
21488 propagated constants.
21489 * tree-cfg.c (tree_node_can_be_shared): Handled component-refs
21490 can not be shared.
21491
9a0bbab6
GJL
214922013-01-14 Georg-Johann Lay <avr@gjlay.de>
21493
21494 * config/avr/avr-modes.def: Add GPL copyright notice.
21495
45805f17
UB
214962013-01-13 Uros Bizjak <ubizjak@gmail.com>
21497
21498 * config/i386/sync.md (mem_thread_fence): Mask operands[0] with
21499 MEMMODEL_MASK to determine memory model.
21500 (atomic_store<mode>): Ditto from operands[2].
21501 * config/i386/i386.c (ix86_memmodel_check): Declare "strong" as bool.
21502
9d60be38
JJ
215032013-01-13 Jakub Jelinek <jakub@redhat.com>
21504
21505 PR fortran/55935
45805f17 21506 * gimple-fold.c (get_symbol_constant_value): Call unshare_expr.
9d60be38
JJ
21507 (fold_gimple_assign): Don't call unshare_expr here.
21508 (fold_ctor_reference): Call unshare_expr.
21509
e7f49d92
TG
215102013-01-13 Terry Guo <terry.guo@arm.com>
21511
aaf1e810
EB
21512 * Makefile.in (s-mlib): New argument MULTILIB_REUSE.
21513 * doc/fragments.texi: Document MULTILIB_REUSE.
21514 * gcc.c (multilib_reuse): New internal spec.
e7f49d92 21515 (set_multilib_dir): Also search multilib from multilib_reuse.
aaf1e810 21516 * genmultilib (tmpmultilib3): Refactor code.
e7f49d92
TG
21517 (tmpmultilib4): Ditto.
21518 (multilib_reuse): New multilib argument.
21519
fbd03a27
RS
215202013-01-13 Richard Sandiford <rdsandiford@googlemail.com>
21521
21522 * Makefile.in: Update copyright.
21523
b3681f13
TV
215242013-01-12 Tom de Vries <tom@codesourcery.com>
21525
21526 PR middle-end/55890
21527 * calls.c (expand_call): Check if arg_nr is valid.
21528
3f287e4b
MM
215292013-01-11 Michael Meissner <meissner@linux.vnet.ibm.com>
21530
21531 * doc/extend.texi (X86 Built-in Functions): Add whitespace in
21532 __builtin_ia32_paddb256 and __builtin_ia32_pavgb256
5bc35113
MM
21533 documentation. Add missing '__' in front of
21534 __builtin_ia32_packssdw256.
3f287e4b 21535
1abcd5eb
AK
215362013-01-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21537
21538 PR target/55719
21539 * config/s390/s390.c (s390_preferred_reload_class): Do not return
21540 NO_REGS for larl operands.
21541 (s390_reload_larl_operand): Use s390_load_address instead of
21542 emit_move_insn.
21543
980d0812
RB
215442013-01-11 Richard Biener <rguenther@suse.de>
21545
21546 * tree-cfg.c (verify_node_sharing_1): Split out from ...
21547 (verify_node_sharing): ... here.
21548 (verify_gimple_in_cfg): Use verify_node_sharing_1 for walk_tree.
21549
7cb9fd07
EB
215502013-01-11 Eric Botcazou <ebotcazou@adacore.com>
21551
21552 * configure.ac (Tree checking): Set TREECHECKING to yes if enabled.
21553 Substitute TREECHECKING.
21554 * configure: Regenerate.
21555 * Makefile.in (TREECHECKING): New.
21556
47876a2a 215572013-01-11 Richard Guenther <rguenther@suse.de>
c7ab2530
RG
21558
21559 PR tree-optimization/44061
21560 * tree-vrp.c (extract_range_basic): Compute zero as
21561 value-range for __builtin_constant_p of function parameters.
21562
d1e082c2
RS
215632013-01-10 Richard Sandiford <rdsandiford@googlemail.com>
21564
45805f17 21565 Update copyright years.
d1e082c2 21566
f85021b0
VM
215672013-01-10 Vladimir Makarov <vmakarov@redhat.com>
21568
9d60be38 21569 PR rtl-optimization/55672
0160442c
VM
21570 * lra-eliminations.c (mark_not_eliminable): Permit addition with
21571 const to be eliminable.
f85021b0 21572
7a8b1ec4
DE
215732013-01-10 David Edelsohn <dje.gcc@gmail.com>
21574
21575 * configure.ac (HAVE_AS_TLS): Add check for powerpc-ibm-aix.
21576 * configure: Regenerate.
21577
ad2e5b71
RB
215782013-01-10 Richard Biener <rguenther@suse.de>
21579
ddf9322d 21580 * builtins.c (expand_builtin_init_trampoline): Use set_mem_attributes.
ad2e5b71 21581
ffc5b2bb
RB
215822013-01-10 Richard Biener <rguenther@suse.de>
21583
21584 PR bootstrap/55792
21585 * tree-into-ssa.c (rewrite_add_phi_arguments): Do not set
21586 locations for virtual PHI arguments.
21587 (rewrite_update_phi_arguments): Likewise.
21588
e1f674e4
JS
215892013-01-10 Joel Sherrill <joel.sherrill@OARcorp.com>
21590
21591 * config/v850/rtems.h (ASM_SPEC): Pass -m8byte-align and -mgcc-abi
21592 on to assembler.
21593
a57fc743
JJ
215942013-01-10 Jakub Jelinek <jakub@redhat.com>
21595
21596 PR tree-optimization/55921
21597 * tree-complex.c (expand_complex_asm): New function.
21598 (expand_complex_operations_1): Call it for GIMPLE_ASM.
21599
0ff4390d
AK
216002013-01-10 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
21601
21602 PR target/55718
21603 * config/s390/s390.c (s390_symref_operand_p)
21604 (s390_loadrelative_operand_p): Merge the two functions.
21605 (s390_check_qrst_address, print_operand_address): Add parameters
21606 to s390_loadrelative_operand_p invokation.
21607 (s390_check_symref_alignment): Use s390_loadrelative_operand_p.
21608 (s390_reload_larl_operand, s390_secondary_reload): Use
21609 s390_loadrelative_operand_p instead of s390_symref_operand_p.
21610 (legitimize_pic_address): Handle @GOTENT and @PLT + addend.
21611
6f557e0e
MS
216122013-01-09 Mike Stump <mikestump@comcast.net>
21613
21614 * dse.c (record_store): Remove unnecessary assert.
21615
7770c9e9
JH
216162013-01-09 Jan Hubicka <jh@suse.cz>
21617
21618 PR tree-optimization/55569
21619 * cfgloopmanip.c (scale_loop_profile): Make ITERATION_BOUND gcov_type.
21620 * cfgloop.h (scale_loop_profile): Likewise.
21621
a19b1432
JH
216222013-01-09 Jan Hubicka <jh@suse.cz>
21623
21624 PR lto/45375
ddf9322d
UB
21625 * ipa-inline.c (ipa_inline): Remove extern inlines and virtual
21626 functions.
a19b1432
JH
21627 * cgraphclones.c (cgraph_clone_node): Cpoy also LTO file data.
21628
9a002da8
RS
216292013-01-09 Richard Sandiford <rdsandiford@googlemail.com>
21630
21631 PR middle-end/55114
21632 * expr.h (maybe_emit_group_store): Declare.
21633 * expr.c (maybe_emit_group_store): New function.
21634 * builtins.c (expand_builtin_int_roundingfn): Call it.
21635 (expand_builtin_int_roundingfn_2): Likewise.
21636
511dcace
VM
216372013-01-09 Vladimir Makarov <vmakarov@redhat.com>
21638
e1f2b729 21639 PR rtl-optimization/55829
511dcace
VM
21640 * lra-constraints.c (match_reload): Add code for absent output.
21641 (curr_insn_transform): Add code for reloads of matched inputs
21642 without output.
21643
7b0fe4f4
UB
216442013-01-09 Uros Bizjak <ubizjak@gmail.com>
21645
21646 * config/i386/sse.md (*vec_interleave_highv2df): Change mode
21647 attribute of movddup insn to DF.
21648 (*vec_interleave_lowv2df): Ditto.
21649 (vec_dupv2df): Ditto.
21650
870ca331
JH
216512013-01-09 Jan Hubicka <jh@suse.cz>
21652
21653 PR tree-optimiation/55875
21654 * tree-ssa-loop-niter.c (number_of_iterations_cond): Add
21655 EVERY_ITERATION parameter.
7b0fe4f4 21656 (number_of_iterations_exit): Check if exit is executed every iteration.
870ca331
JH
21657 (idx_infer_loop_bounds): Similarly here.
21658 (n_of_executions_at_most): Simplify
21659 to only test for cases where statement is dominated by the
7b0fe4f4 21660 particular bound; handle correctly the "postdominance" test.
870ca331
JH
21661 (scev_probably_wraps_p): Use max loop iterations info
21662 as a global bound first.
21663
6f575fe4 216642013-01-09 Nguyen Duy Dat <dat.nguyen.yn@rvc.renesas.com>
3cd232b5
NDD
21665 Nick Clifton <nickc@redhat.com>
21666
21667 * config/v850/v850.md (cbranchsf4): New pattern.
21668 (cstoresf4): New pattern.
21669 (cbranchdf4): New pattern.
21670 (cstoredf4): New pattern.
21671 (movsicc): Disallow floating point comparisons.
21672 (cmpsf_le_insn): Fix order of operators.
21673 (cmpsf_lt_insn): Likewise.
21674 (cmpsf_eq_insn): Likewise.
21675 (cmpdf_le_insn): Likewise.
21676 (cmpdf_lt_insn): Likewise.
21677 (cmpdf_eq_insn): Likewise.
21678 (cmpsf_ge_insn): Use LE comparison.
21679 (cmpdf_ge_insn): Likewise.
21680 (cmpsf_gt_insn): Use LT comparison.
21681 (cmpdf_gt_insn): Likewise.
21682 (cmpsf_ne_insn): Delete pattern.
21683 (cmpdf_ne_insn): Delete pattern.
21684 * config/v850/v850.c (v850_gen_float_compare): Use
21685 gen_cmpdf_eq_insn for NE comparison.
21686 (v850_float_z_comparison_operator)
21687 (v850_float_nz_comparison_operator): Move from here ...
21688 * config/v850/predicates.md: ... to here. Move GT and GE
21689 comparisons into v850_float_z_comparison_operator.
21690 * config/v850/v850-protos.h (v850_float_z_comparison_operator):
21691 Delete prototype.
21692 (v850_float_nz_comparison_operator): Likewise.
21693
f0d54148
JDA
216942013-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21695
21696 * config/pa/pa.c (pa_emit_move_sequence): Replace calls to gen_insv
21697 with calls to gen_insvsi/gen_insvdi.
21698
8f01beca
VK
216992013-01-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
21700
21701 * config/i386/i386.c (initial_ix86_tune_features): Set up
21702 X86_TUNE_AVX128_OPTIMAL for m_BTVER2.
21703
2aa579ad
JJ
217042013-01-09 Steven Bosscher <steven@gcc.gnu.org>
21705 Jakub Jelinek <jakub@redhat.com>
21706
21707 PR tree-optimization/48189
21708 * predict.c (predict_loops): If max is 0, don't call compare_tree_int.
21709 If nitercst is 0, don't predict the exit edge.
21710
6edc3e32 217112013-01-08 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
01a3a324
N
21712
21713 * config/aarch64/aarch64.c (aarch64_print_operand): Replace %r
21714 in asm_fprintf with reg_names.
21715 (aarch64_print_operand_address): Likewise.
21716 (aarch64_return_addr): Likewise.
21717 * config/aarch64/aarch64.h (ASM_FPRINTF_EXTENSIONS): Remove.
21718
f6f94d94
JDA
217192013-01-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
21720
21721 * config/pa/pa.h (VAL_U6_BITS_P): Define.
21722 (INT_U6_BITS): Likewise.
21723 * config/pa/predicates.md (uint6_operand): New predicate.
21724 (shift5_operand, shift6_operand): Likewise.
21725 * config/pa/pa.md (lshrsi3, rotrsi3): Use shift5_operand instead of
21726 arith32_operand.
21727 (lshrdi3): Use shift6_operand.
21728 (shrpsi4, shrpdi4): New insn patterns.
21729 (extzv): Delete expander.
21730 (extzvsi, extzvdi): New expanders. Use uint5_operand and uint6_operand
21731 predicates in unamed zero extract patterns. Tighten common constraint.
21732 (extv): Delete expander.
21733 (extvsi, extvdi): New expanders. Use uint5_operand and uint6_operand
21734 predicates in unamed sign extract patterns. Tighten common constraint.
21735 (insv): Delete expander.
21736 (insvsi, insvdi): New expanders. Use uint5_operand and uint6_operand
21737 predicates in unamed insert patterns. Tighten common constraint.
21738 Change uint32_operand predicate to uint6_operand predicate in unamed
21739 DImode pattern to insert constant values of type 1...1xxxx.
21740
36b72910
JH
217412013-01-04 Jan Hubicka <jh@suse.cz>
21742
21743 PR tree-optimization/55823
7b0fe4f4
UB
21744 * ipa-prop.c (update_indirect_edges_after_inlining): Fix ordering
21745 issue.
36b72910 21746
47876a2a 217472013-01-08 Jakub Jelinek <jakub@redhat.com>
c6d851b9
JJ
21748 Uros Bizjak <ubizjak@gmail.com>
21749
21750 PR rtl-optimization/55845
21751 * df-problems.c (can_move_insns_across): Stop scanning at
21752 volatile_insn_p source instruction or give up if
21753 across_from .. across_to range contains any volatile_insn_p
21754 instructions.
21755
4369c11e
TB
217562013-01-08 Tejas Belagod <tejas.belagod@arm.com>
21757
7b0fe4f4
UB
21758 * config/aarch64/aarch64-simd.md (vec_init<mode>): New.
21759 * config/aarch64/aarch64-protos.h (aarch64_expand_vector_init):
21760 Declare.
4369c11e 21761 * config/aarch64/aarch64.c (aarch64_simd_dup_constant,
7b0fe4f4 21762 aarch64_simd_make_constant, aarch64_expand_vector_init): New.
4369c11e 21763
aeb7e7c1
JJ
217642013-01-08 Jakub Jelinek <jakub@redhat.com>
21765
21766 PR fortran/55341
21767 * asan.c (asan_clear_shadow): New function.
21768 (asan_emit_stack_protection): Use it.
21769
a02ad1aa
TB
217702013-01-08 Tejas Belagod <tejas.belagod@arm.com>
21771
21772 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_<su>mult_lo_<mode>,
21773 aarch64_simd_vec_<su>mult_hi_<mode>): Separate instruction and operand
21774 with tab instead of space.
21775
f90d87f5
NC
217762013-01-08 Nick Clifton <nickc@redhat.com>
21777
21778 * config/rl78/rl78.c (rl78_expand_prologue): Always select
21779 register bank 0 at the start of an interrupt handler.
83ffd964
NC
21780 * config/rl78/rl78.md (mulsi3_g13): Correct values for MDBL and
21781 MDBH registers.
f90d87f5 21782
385eb93d
JG
217832013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
21784
21785 * config/aarch64/aarch64-simd.md
21786 (aarch64_simd_bsl<mode>_internal): Add floating-point modes.
21787 (aarch64_simd_bsl): Likewise.
21788 (aarch64_vcond_internal<mode>): Likewise.
21789 (vcond<mode><mode>): Likewise.
21790 (aarch64_cm<cmp><mode>): Fix constraints, add new modes.
21791 * config/aarch64/iterators.md (V_cmp_result): Add V2DF.
21792
4dcd1054
JG
217932013-01-08 James Greenhalgh <james.greenhalgh@arm.com>
21794
21795 * config/aarch64/aarch64-builtins.c
21796 (aarch64_builtin_vectorized_function): Handle sqrt, sqrtf.
21797
4267a4a6
MJ
217982013-01-08 Martin Jambor <mjambor@suse.cz>
21799
21800 PR debug/55579
21801 * tree-sra.c (analyze_access_subtree): Return true also after
21802 potentially creating a debug-only replacement.
21803
5f4e6de3
JJ
218042013-01-08 Jakub Jelinek <jakub@redhat.com>
21805
3138f224
JJ
21806 PR middle-end/55890
21807 * tree-ssa-ccp.c (evaluate_stmt): Use gimple_call_builtin_p.
21808
5f4e6de3
JJ
21809 PR tree-optimization/54120
21810 * tree-vrp.c (range_fits_type_p): Don't allow
21811 src_precision < precision from signed vr to unsigned_p
21812 if vr->min or vr->max is negative.
21813 (simplify_float_conversion_using_ranges): Test can_float_p
21814 against CODE_FOR_nothing.
21815
f3ef18ff
JJ
218162013-01-08 Jakub Jelinek <jakub@redhat.com>
21817 Richard Biener <rguenther@suse.de>
21818
21819 PR middle-end/55851
21820 * fold-const.c (int_binop_types_match_p): Allow all INTEGRAL_TYPE_P
21821 types instead of just INTEGER_TYPE types.
21822
25c210f9
MK
218232013-01-07 Mark Kettenis <kettenis@openbsd.org>
21824
21825 * config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE, LIBGCC2_TF_CEXT,
21826 TF_SIZE): Define.
f90d87f5 21827
81826a7b
SE
218282013-01-07 Steve Ellcey <sellcey@mips.com>
21829
21830 PR target/42661
21831 * config/mips/mips.opt: Change mad to mmad to match documentation.
21832
35678514
GJL
218332013-01-07 Georg-Johann Lay <avr@gjlay.de>
21834
21835 PR target/55897
21836 * doc/extend.texi (AVR Named Address Spaces): __memx goes into
21837 .progmemx.data now.
21838
e5669488
GJL
218392013-01-07 Georg-Johann Lay <avr@gjlay.de>
21840
21841 PR target/55897
21842 * config/avr/avr.h (ADDR_SPACE_COUNT): New enum.
21843 (avr_addrspace_t): Add .section_name field.
21844 * config/avr/avr.c (progmem_section): Use ADDR_SPACE_COUNT as
21845 array size.
21846 (avr_addrspace): Same. Initialize .section_name. Remove last
21847 NULL entry. Put __memx into .progmemx.data.
21848 (progmem_section_prefix): Remove.
21849 (avr_asm_init_sections): No need to initialize progmem_section.
21850 (avr_asm_named_section): Use avr_addrspace[].section_name to get
21851 section name prefix.
21852 (avr_asm_select_section): Ditto. And use get_unnamed_section to
21853 retrieve the progmem section.
21854 * avr-c.c (avr_cpu_cpp_builtins): Use ADDR_SPACE_COUNT as loop
21855 boundary to run over avr_addrspace[].
21856 (avr_register_target_pragmas): Ditto.
21857
656e6f37
JJ
218582013-01-06 Jakub Jelinek <jakub@redhat.com>
21859
21860 * varasm.c (output_constant_def_contents): For asan_protect_global
21861 protected strings, adjust DECL_ALIGN if needed, before testing for
21862 anchored symbols.
21863 (place_block_symbol): Adjust size for asan protected STRING_CSTs if
21864 TREE_CONSTANT_POOL_ADDRESS_P. Increase alignment for asan protected
21865 normal decls.
21866 (output_object_block): For asan protected decls, emit asan padding
21867 after their contents.
21868 * asan.c (asan_protect_global): Don't check TREE_ASM_WRITTEN here.
21869 (asan_finish_file): Test it here instead.
21870
6edc3e32
UB
218712013-01-07 Nick Clifton <nickc@redhat.com>
21872 Matthias Klose <doko@debian.org>
21873 Doug Kwan <dougkwan@google.com>
21874 H.J. Lu <hongjiu.lu@intel.com>
b352afba
NC
21875
21876 PR driver/55470
21877 * collect2.c (main): Support -fuse-ld=bfd and -fuse-ld=gold.
21878
21879 * common.opt: Add fuse-ld=bfd and fuse-ld=gold.
21880
21881 * gcc.c (LINK_COMMAND_SPEC): Pass -fuse-ld=* to collect2.
21882
7b0fe4f4 21883 * opts.c (comman_handle_option): Ignore -fuse-ld=bfd and -fuse-ld=gold.
b352afba
NC
21884
21885 * doc/invoke.texi: Document -fuse-ld=bfd and -fuse-ld=gold.
21886
2a095093
GJL
218872013-01-07 Georg-Johann Lay <avr@gjlay.de>
21888
f3b503f4 21889 PR target/54461
2a095093
GJL
21890 * doc/install.texi (Cross-Compiler-Specific Options): Document
21891 --with-avrlibc.
21892
383f9b34
TB
218932013-01-07 Tejas Belagod <tejas.belagod@arm.com>
21894
21895 * config/aarch64/arm_neon.h (vmovn_high_is16, vmovn_high_s32,
21896 vmovn_high_s64, vmovn_high_u16, vmovn_high_u32, vmovn_high_u64,
21897 vqmovn_high_s16, vqmovn_high_s32, vqmovn_high_s64, vqmovn_high_u16,
21898 vqmovn_high_u32, vqmovn_high_u64, vqmovun_high_s16, vqmovun_high_s32,
21899 vqmovun_high_s64): Fix source operand number and update copyright.
21900
3626621a
RB
219012013-01-07 Richard Biener <rguenther@suse.de>
21902
21903 PR middle-end/55890
21904 * gimple.h (gimple_call_builtin_p): New overload.
21905 * gimple.c (validate_call): New function.
21906 (gimple_call_builtin_p): Likewise.
21907 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
21908 Use gimple_call_builtin_p.
21909 (find_func_clobbers): Likewise.
21910 * tree-ssa-strlen.c (adjust_last_stmt): Likewise.
21911 (strlen_optimize_stmt): Likewise.
21912
8b2ea410
JG
219132013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
21914
21915 * config/aarch64/arm_neon.h (vld1_dup_*): Make argument const.
21916 (vld1q_dup_*): Likewise.
21917 (vld1_*): Likewise.
21918 (vld1q_*): Likewise.
21919 (vld1_lane_*): Likewise.
21920 (vld1q_lane_*): Likewise.
21921
9713d329
RB
219222013-01-07 Richard Biener <rguenther@suse.de>
21923
21924 * lto-streamer.h (LTO_minor_version): Bump to 2.
21925
3520f7cc
JG
219262013-01-07 James Greenhalgh <james.greenhalgh@arm.com>
21927
21928 * config/aarch64/aarch64-protos.h
21929 (aarch64_const_double_zero_rtx_p): Rename to...
21930 (aarch64_float_const_zero_rtx_p): ...this.
21931 (aarch64_float_const_representable_p): New.
21932 (aarch64_output_simd_mov_immediate): Likewise.
21933 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): Refactor
21934 move immediate case.
21935 * config/aarch64/aarch64.c
21936 (aarch64_const_double_zero_rtx_p): Rename to...
21937 (aarch64_float_const_zero_rtx_p): ...this.
21938 (aarch64_print_operand): Allow printing of new constants.
21939 (aarch64_valid_floating_const): New.
21940 (aarch64_legitimate_constant_p): Check for valid floating-point
21941 constants.
21942 (aarch64_simd_valid_immediate): Likewise.
21943 (aarch64_vect_float_const_representable_p): New.
21944 (aarch64_float_const_representable_p): Likewise.
21945 (aarch64_simd_imm_zero_p): Also allow for floating-point 0.0.
21946 (aarch64_output_simd_mov_immediate): New.
21947 * config/aarch64/aarch64.md (*movsf_aarch64): Add new alternative.
21948 (*movdf_aarch64): Likewise.
21949 * config/aarch64/constraints.md (Ufc): New.
21950 (Y): call aarch64_float_const_zero_rtx.
21951 * config/aarch64/predicates.md (aarch64_fp_compare_operand): New.
21952
e167c04d
RB
219532013-01-07 Richard Biener <rguenther@suse.de>
21954
21955 PR tree-optimization/55888
21956 PR tree-optimization/55862
21957 * tree-ssa-pre.c (phi_translate_1): Revert previous change.
21958 (valid_in_sets): Check if a NAME has a leader in AVAIL_OUT,
21959 not if it is contained therein.
21960
0139aaab
GJL
219612013-01-07 Georg-Johann Lay <avr@gjlay.de>
21962
21963 * config/avr/t-avr: Typo.
21964
4a176b23
GJL
219652013-01-07 Georg-Johann Lay <avr@gjlay.de>
21966
21967 PR55243
21968 * config/avr/t-avr: Don't automatically rebuild
21969 $(srcdir)/config/avr/t-multilib
21970 $(srcdir)/config/avr/avr-tables.opt
21971 $(srcdir)/doc/avr-mmcu.texi
21972 (avr-mcus): New phony target to build them on request.
21973 (s-avr-mlib, s-avr-mmcu-texi): Remove.
21974 * avr/avr-mcus.def: Adjust comments.
21975
c7afdc98
UB
219762013-01-07 Uros Bizjak <ubizjak@gmail.com>
21977
21978 * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Remove.
21979
1ab05c31
RS
219802013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
21981
21982 * file-find.c, file-find.h, realmpfr.c: Add FSF as copyright holder.
21983
488e3acc
RS
219842013-01-06 Richard Sandiford <rdsandiford@googlemail.com>
21985
21986 * config/tilepro/gen-mul-tables.cc: Put copyright on one line.
21987
a89599d2
DE
219882013-01-05 David Edelsohn <dje.gcc@gmail.com>
21989
21990 * config/rs6000/aix53.h (LIB_SPEC): Add -lpthreads when compiling
21991 to generate profiling.
21992 * config/rs6000/aix64.h (LIB_SPEC): Same.
21993
70f09188
AP
219942013-01-04 Andrew Pinski <apinski@cavium.com>
21995
21996 * config/aarch64/aarch64.c (aarch64_fixed_condition_code_regs):
21997 New function.
21998 (TARGET_FIXED_CONDITION_CODE_REGS): Define.
21999
918d445f
UB
220002013-01-04 Uros Bizjak <ubizjak@gmail.com>
22001
22002 * config/i386/i386.c (ix86_legitimize_address): Call convert_to_mode
22003 unconditionally.
22004 (ix86_expand_move): Ditto.
22005 (ix86_zero_extend_to_Pmode): Ditto.
22006 (ix86_expand_call): Ditto.
22007 (ix86_expand_special_args_builtin): Ditto.
22008 (ix86_expand_builtin): Ditto.
22009
361618ec
RB
220102013-01-04 Richard Biener <rguenther@suse.de>
22011
22012 PR tree-optimization/55862
22013 * tree-ssa-pre.c (phi_translate_1): Valueize SSA names after
22014 translating them through PHI nodes.
22015
87eab554
MJ
220162013-01-04 Martin Jambor <mjambor@suse.cz>
22017
22018 PR tree-optimization/55755
22019 * tree-sra.c (sra_modify_assign): Do not check that an access has no
22020 children when trying to avoid producing a VIEW_CONVERT_EXPR.
22021
33879b9f
MP
220222013-01-04 Marek Polacek <polacek@redhat.com>
22023
22024 PR middle-end/55859
22025 * opts.c (default_options_optimization): Clarify error message.
22026
3068819a
RB
220272013-01-04 Richard Biener <rguenther@suse.de>
22028
22029 PR middle-end/55863
22030 * fold-const.c (split_tree): Undo -X - 1 to ~X folding for
22031 reassociation.
22032
0e4ae794
JDA
220332013-01-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22034
22035 PR target/53789
22036 * config/pa/pa.md (movsi): Revert previous change.
e58d2e48
JDA
22037 * config/pa/pa.c (pa_legitimate_constant_p): Reject all TLS symbol
22038 references.
0e4ae794 22039
65c88cef
RH
220402013-01-03 Richard Henderson <rth@redhat.com>
22041
22042 * config/i386/i386.c (ix86_expand_move): Always assign to op1
22043 after eliminating TLS symbols.
22044
8ac16127
MG
220452013-01-03 Marc Glisse <marc.glisse@inria.fr>
22046
22047 PR bootstrap/50167
22048 * graphite-interchange.c (pdr_stride_in_loop): Use gmp_fprintf.
22049 * graphite-poly.c (debug_gmp_value): Likewise.
22050
bb664f09
UB
220512013-01-03 Uros Bizjak <ubizjak@gmail.com>
22052
22053 PR target/55712
22054 * config/i386/i386-c.c (ix86_target_macros_internal): Depending on
22055 selected code model, define __code_mode_small__, __code_model_medium__,
22056 __code_model_large__, __code_model_32__ or __code_model_kernel__.
22057 * config/i386/cpuid.h (__cpuid, __cpuid_count) [__i386__]: Prefix
22058 xchg temporary register with %k. Declare temporary register as
22059 early clobbered.
22060 [__x86_64__]: For medium and large code models, preserve %rbx register.
22061
bcf1ef00
RB
220622013-01-03 Richard Biener <rguenther@suse.de>
22063
0506634a 22064 * tree-data-ref.c (dump_conflict_function): Use less vertical spacing.
bcf1ef00
RB
22065 (dump_subscript): Adjust.
22066 (finalize_ddr_dependent): Do not dump redundant info.
22067 (analyze_siv_subscript): Adjust.
22068 (subscript_dependence_tester): Likewise.
22069 (compute_affine_dependence): Likewise.
22070
59fd17e3
RB
220712013-01-03 Richard Biener <rguenther@suse.de>
22072
22073 Revert
22074 2013-01-03 Richard Biener <rguenther@suse.de>
22075
22076 PR tree-optimization/55857
22077 * tree-vect-stmts.c (vectorizable_load): Do not setup
22078 re-alignment for invariant loads.
22079
22080 2013-01-02 Richard Biener <rguenther@suse.de>
22081
22082 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 22083 invariant load do not generate a vector load from the scalar location.
59fd17e3 22084
595c2679
RB
220852013-01-03 Richard Biener <rguenther@suse.de>
22086
22087 * tree-vect-loop.c (vect_analyze_loop_form): Clarify reason
22088 for not vectorizing.
22089 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Do
22090 not build INDIRECT_REFs, call get_name once only.
22091 (vect_create_data_ref_ptr): Likewise. Dump base object kind
22092 based on DR_BASE_OBJECT, not DR_BASE_ADDRESS.
22093
90bb7d7a
RB
220942013-01-03 Richard Biener <rguenther@suse.de>
22095
22096 PR tree-optimization/55857
22097 * tree-vect-stmts.c (vectorizable_load): Do not setup
22098 re-alignment for invariant loads.
22099
f09b77ca
RB
221002013-01-03 Richard Biener <rguenther@suse.de>
22101
22102 PR lto/55848
22103 * lto-symtab.c (lto_symtab_merge_decls_1): As last resort, always
22104 prefer a built-in decl.
22105
3461a16e
JJ
221062013-01-03 Jakub Jelinek <jakub@redhat.com>
22107
df8e2b4f
JJ
22108 * gcc.c (process_command): Update copyright notice dates.
22109 * gcov.c (print_version): Likewise.
22110 * gcov-dump.c (print_version): Likewise.
22111
3461a16e
JJ
22112 PR rtl-optimization/55838
22113 * loop-iv.c (iv_number_of_iterations): Call lowpart_subreg on
22114 iv0.step, iv1.step and step.
22115
8b5546d6
JJ
221162013-01-03 Jakub Jelinek <jakub@redhat.com>
22117 Marc Glisse <marc.glisse@inria.fr>
22118
22119 PR tree-optimization/55832
22120 * fold-const.c (fold_binary_loc): For ABS_EXPR<x> >= 0 and
22121 ABS_EXPR<x> < 0 folding use constant_boolean_node instead of
22122 integer_{one,zero}_node.
22123
8ab1d2e9
JJ
221242013-01-03 Jakub Jelinek <jakub@redhat.com>
22125
22126 PR debug/54402
22127 * params.def (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE): New param.
22128 * var-tracking.c (reverse_op): Don't add reverse ops to
22129 VALUEs that have already
0506634a 22130 PARAM_VALUE (PARAM_MAX_VARTRACK_REVERSE_OP_SIZE) or longer locs list.
8ab1d2e9 22131
5b9ad1d4
GP
221322013-01-02 Gerald Pfeifer <gerald@pfeifer.com>
22133
22134 * doc/contrib.texi: Note years as release manager for Mark Mitchell.
22135
e25a6711
TJ
221362013-01-02 Teresa Johnson <tejohnson@google.com>
22137
22138 * dumpfile.c (dump_loc): Print filename with location.
22139 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use
22140 new location_t parameter to emit complete unroll message with
22141 new dump framework.
22142 (canonicalize_loop_induction_variables): Compute loops location
22143 and pass to try_unroll_loop_completely.
22144 * loop-unroll.c (report_unroll_peel): New function.
22145 (peel_loops_completely): Use new dump format with location
22146 for main dumpfile message, and invoke report_unroll_peel on success.
22147 (decide_unrolling_and_peeling): Ditto.
22148 (decide_peel_once_rolling): Remove old dumpfile message subsumed
22149 by report_unroll_peel.
22150 (decide_peel_completely): Ditto.
22151 (decide_unroll_constant_iterations): Ditto.
22152 (decide_unroll_runtime_iterations): Ditto.
22153 (decide_peel_simple): Ditto.
22154 (decide_unroll_stupid): Ditto.
22155 * cfgloop.c (get_loop_location): New function.
22156 * cfgloop.h (get_loop_location): Declare.
22157
77878621
ST
221582013-01-02 Sriraman Tallam <tmsriram@google.com>
22159
22160 * config/i386/i386.c (fold_builtin_cpu): Remove unnecessary checks for
22161 NULL.
22162
9e65d03e
JDA
221632013-01-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
22164
22165 PR middle-end/55198
22166 * expr.c (expand_expr_real_1): Don't use bitfield extraction for non
22167 BLKmode objects when EXPAND_MEMORY is specified.
22168
6a7da30f
ST
221692013-01-02 Sriraman Tallam <tmsriram@google.com>
22170
22171 * config/i386/i386.c (ix86_get_function_versions_dispatcher): Fix bug
22172 in loop predicate.
22173 (fold_builtin_cpu): Do not share cpu model decls across statements.
22174
e78167f2
JM
221752013-01-02 Jason Merrill <jason@redhat.com>
22176
22177 PR c++/55804
22178 * tree.c (build_array_type_1): Revert earlier change.
22179
8c075fb4
YZ
221802013-01-02 Yufeng Zhang <yufeng.zhang@arm.com>
22181
22182 * config/aarch64/aarch64-cores.def: Add entries for "cortex-a53" and
22183 "cortex-a57".
22184 * config/aarch64/aarch64-tune.md: Re-generate.
22185
0682ed3e
RB
221862013-01-02 Richard Biener <rguenther@suse.de>
22187
22188 * tree-vect-stmts.c (vectorizable_load): When vectorizing an
0506634a 22189 invariant load do not generate a vector load from the scalar location.
0682ed3e 22190
b8f6a302
RB
221912013-01-02 Richard Biener <rguenther@suse.de>
22192
22193 PR bootstrap/55784
22194 * configure.ac: Add $GMPINC to CFLAGS/CXXFLAGS.
22195 * configure: Regenerate.
22196
04b80dbb
RS
221972013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
22198
22199 * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2)
22200 (expand_builtin_mathfn_ternary, expand_builtin_mathfn_3)
22201 (expand_builtin_int_roundingfn_2): Keep the original target around
22202 for the fallback case.
22203
635b0b0c
RS
222042013-01-02 Richard Sandiford <rdsandiford@googlemail.com>
22205
22206 * tree-vrp.c (range_fits_type_p): Require the MSB of the double_int
22207 to be clear for sign changes.
22208
42d57399
JH
222092013-01-01 Jan Hubicka <jh@suse.cz>
22210
22211 * ipa-inline-analysis.c: Fix formatting.
22212
5bb6669d
JJ
222132013-01-01 Jakub Jelinek <jakub@redhat.com>
22214
22215 PR tree-optimization/55831
22216 * tree-vect-loop.c (get_initial_def_for_induction): Use
22217 gsi_after_labels instead of gsi_start_bb.
ad41bd84 22218\f
86a2db33 22219Copyright (C) 2013 Free Software Foundation, Inc.
ad41bd84
JM
22220
22221Copying and distribution of this file, with or without modification,
22222are permitted in any medium without royalty provided the copyright
22223notice and this notice are preserved.