]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/ChangeLog
tree-vect-loop-manip.c (vect_can_advance_ivs_p): Query is_gimple_reg on the SSA name...
[thirdparty/gcc.git] / gcc / ChangeLog
CommitLineData
b2ec94d4
RG
12012-08-03 Richard Guenther <rguenther@suse.de>
2
3 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Query
4 is_gimple_reg on the SSA name, not its variable.
5 (vect_update_ivs_after_vectorizer): Likewise.
6 * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
7 * tree-if-conv.c (if_convertible_phi_p): Likewise.
8 (predicate_scalar_phi): Likewise.
9 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Likewise.
10 (vect_analyze_scalar_cycles_1): Likewise.
11 * tree-ssa-live.c (register_ssa_partition_check): Likewise.
12 * tree-outof-ssa.c (eliminate_useless_phis): Likewise.
13 * tree-ssa-reassoc.c (phi_rank): Likewise.
14 * tree-parloops.c (separate_decls_in_region_name): Use
15 replace_ssa_name_symbol.
16 * tree-predcom.c (base_names_in_chain_on): Likewise.
17 * matrix-reorg.c (update_type_size): Query the type of the SSA name,
18 not its variable.
19 * gimple-ssa-strength-reduction.c (create_mul_ssa_cand): Likewise.
20 (create_mul_imm_cand): Likewise.
21 (create_add_ssa_cand): Likewise.
22 (create_add_imm_cand): Likewise.
23 (slsr_process_add): Likewise.
24 * tree-inline.c (remap_ssa_name): Do not set the type of the
25 new SSA_NAME.
26 * tree-ssa-structalias.c (get_constraint_for_ssa_var): Clarify
27 assert. Check for default def first.
28
07fd4efa
SB
292012-08-04 Steven Bosscher <steven@gcc.gnu.org>
30
1b03a96d
SB
31 * cfgrtl.c (print_rtl_with_bb): Do not print a newline between insns.
32
33 * sched-vis.c (print_pattern): Handle SEQUENCE also.
07fd4efa 34
34831f3e
RH
352012-08-02 Richard Henderson <rth@redhat.com>
36
37 Revert:
38 PR 34548
39 * function.h (struct rtl_data): Add max_dynamic_stack_alignment.
40 * cfgexpand.c (gimple_expand_cfg): Initialise it.
41 * explow.c (allocate_dynamic_stack_space): Set it. Simplify
42 alignment requirements given the known alignment of dynamic_offset.
43 * function.c (instantiate_virtual_regs): Align dtnamic_offset.
44
48175537
KZ
452012-08-02 Kenneth Zadeck <zadeck@naturalbridge.com>
46
47 * cfgexpand.c (expand_debug_locations): Encapsulate test for
48 CONST_DOUBLE in macro.
49 * combine.c (try_combine, gen_lowpart_for_combine): Ditto.
50 * cprop.c (implicit_set_cond_p): Ditto.
51 * cselib.c (rtx_equal_for_cselib_1): Ditto.
52 * expmed.c (expand_mult): Ditto.
53 * expr.c (convert_modes): Ditto.
54 * ira-costs.c (record_reg_classes): Ditto.
55 * ira-lives.c (single_reg_class): Ditto.
56 * optabs.c (expand_copysign_absneg, expand_copysign): Ditto.
57 * print-rtl.c (print_rtx): Ditto.
58 * recog.c (simplify_while_replacing, const_double_operand)
59 (asm_operand_ok, constrain_operands): Ditto.
60 * reg-stack.c (subst_stack_regs_pat): Ditto.
61 * reload.c (find_reloads, find_equiv_reg): Ditto.
62 * rtlanal.c (replace_rtx): Remove test.
63 * rtlanal.c (constant_pool_constant_p, split_double): Encapsulate test for
64 CONST_DOUBLE in macro.
65 * simplify-rtx.c (mode_signbit_p, avoid_constant_pool_reference)
66 (simplify_unary_operation_1, simplify_const_unary_operation)
67 (simplify_binary_operation_1, simplify_const_binary_operation)
68 (simplify_relational_operation_1)
69 (simplify_const_relational_operations)
70 (implify_subreg): Ditto.
71 * varasm.c (output_constant_pool_2): Ditto.
72 * rtl.h (CONST_DOUBLE_AS_INT_P, CONST_DOUBLE_AS_FLOAT_P): New
73 macros.
74 * rtl.def (CONST_DOUBLE): Updated comments.
75
36be1dee
RS
762012-08-02 Richard Sandiford <rdsandiford@googlemail.com>
77
78 PR target/51931
79 * config/mips/mips-protos.h (mips_strip_unspec_address): Declare.
80 * config/mips/mips.c (mips_strip_unspec_address): Make extern.
81 (mips16_rewrite_pool_constant): Make a copy of the pool constant
82 before adding to a PC-relative table.
83 (mips16_lay_out_constants): Add a SPLIT_P parameter.
84 (mips16_load_branch_target, mips16_split_long_branches): New functions.
85 (mips_reorg): Update call to mips16_lay_out_constants.
86 Call mips16_split_long_branches.
87 * config/mips/predicates.md (pc_or_label_operand): Delete.
88 * config/mips/mips.md (length): Add a calculation for MIPS16 branches.
89 Move the extended_mips16 handling further down.
90 (*branch_equality<mode>_mips16): Replace use pc_or_label_operand
91 with explicit label_ref and pc. Follow the usual operand numbering.
92 (*branch_equality<mode>_mips16_inverted): New pattern.
93 (*jump_mips16): Add length attribute.
94 (indirect_jump_and_restore_<mode>): New pattern.
95 (consttable_int): Call mips_strip_unspec_address on the operand.
96
b5b071a5
RS
972012-08-02 Richard Sandiford <rdsandiford@googlemail.com>
98
99 * recog.c (split_insn): Copy the original SET_SRC before using
100 it as a note.
101
8e6ecdc0
RS
1022012-08-02 Richard Sandiford <rdsandiford@googlemail.com>
103
104 * reorg.c (dbr_schedule): Delete REG_BR_PRED loop.
105
77b5132f
MG
1062012-08-02 Marc Glisse <marc.glisse@inria.fr>
107
108 PR tree-optimization/53805
109 * fold-const.c (invert_tree_comparison): Invert ORDERED_EXPR and
110 UNORDERED_EXPR even for trapping floating point.
111
a8da72b8
L
1122012-08-02 H.J. Lu <hongjiu.lu@intel.com>
113
114 PR middle-end/53321
115 PR middle-end/53865
116 * ipa-inline-analysis.c (inline_free_summary): Return if
117 inline_edge_summary_vec is NULL.
118
119 * ipa-split.c (execute_split_functions): Check if a function
120 is inlinable only if inline_edge_summary_vec != NULL.
121
122 * ipa.c (symtab_remove_unreachable_nodes): Restore
123 cgraph_propagate_frequency call when something was changed.
124 (free_inline_summary): New function.
125 (pass_ipa_free_inline_summary): New pass.
126
127 * passes.c (init_optimization_passes): Add
128 pass_ipa_free_inline_summary before pass_ipa_tree_profile.
129
130 * timevar.def (TV_IPA_FREE_INLINE_SUMMARY): New.
131
132 * tree-pass.h (pass_ipa_free_inline_summary): New.
133
ca26f665
RE
1342012-08-02 Richard Earnshaw <rearnsha@arm.com>
135
136 * arm.c (arm_gen_constant): Use UBFX for some AND operations when
137 available.
138
8812aab1
RG
1392012-08-02 Richard Guenther <rguenther@suse.de>
140
141 * tree-into-ssa.c (struct common_info_d): New struct.
142 (struct var_info_d, struct ssa_name_info): Use it.
143 (get_ssa_name_ann): Adjust.
144 (get_phi_state, set_phi_state): Remove.
145 (get_common_info): New function.
146 (get_current_def, set_current_def): Adjust.
147 (get_def_blocks_for): Take a common info as param.
148 (set_def_block): Call get_common_info once.
149 (set_livein_block): Likewise.
150 (find_def_blocks_for): Adjust.
151 (insert_phi_nodes): Likewise.
152 (register_new_def): Call get_common_info once.
153 (get_reaching_def): Likewise.
154 (rewrite_debug_stmt_uses): Likewise.
155 (rewrite_leave_block): Likewise.
156 (dump_currdefs): Likewise.
157 (debug_var_infos_r): Adjust.
158 (register_new_update_single): Call get_common_info once.
159 (maybe_replace_use_in_debug_stmt): Likewise.
160 (rewrite_update_leave_block): Likewise.
161 (mark_use_interesting): Adjust.
162 (create_new_def_for): Likewise.
163 (update_ssa): Likewise.
164
329df070
MM
1652012-08-02 Michael Matz <matz@suse.de>
166
167 * tree-ssa-live.c (set_is_used): Return a bool.
168 (mark_all_vars_used): Don't take data argument.
169 (mark_all_vars_used_1): Adjust calls to above, merge handling
170 of local and global vars.
171 (remove_unused_scope_block_p): Don't take global_unused_vars,
172 merge handling of local and global vars.
173 (remove_unused_locals): Don't allocate/fill/pass global_unused_vars,
174 use is_used_p for local and global vars.
175
7cc434a3
RG
1762012-08-02 Richard Guenther <rguenther@suse.de>
177
178 * tree-flow.h (make_rename_temp): Remove.
179 * tree-dfa.c (make_rename_temp): Likewise.
180 * cgraphunit.c (thunk_adjust, assemble_thunk): Use create_tmp_reg
181 instead of make_rename_temp.
182 * omp-low.c (expand_omp_for_generic, expand_omp_for_static_nochunk,
183 expand_omp_atomic_pipeline): Likewise.
184 * trans-mem.c (tm_log_emit_save_or_restores, build_tm_load,
185 build_tm_store, expand_call_tm, expand_transaction,
186 ipa_tm_insert_gettmclone_call): Likewise.
187 * tree-complex.c (expand_complex_div_wide): Likewise.
188 * tree-mudflap.c (mf_decl_cache_locals, mf_build_check_statement_for):
189 Likewise.
190 * tree-ssa-loop-im.c (execute_sm_if_changed_flag_set, execute_sm):
191 Likewise.
192 * tree-ssa-math-opts.c (insert_reciprocals): Likewise.
193 * value-prof.c (gimple_divmod_fixed_value, gimple_mod_pow2,
194 gimple_mod_subtract): Likewise.
195
32244553
RG
1962012-08-02 Richard Guenther <rguenther@suse.de>
197
198 * tree-flow.h (set_default_def): Rename to ...
199 (set_ssa_default_def): ... this. Take a struct function argument.
200 (gimple_default_def): Rename to ...
201 (ssa_default_def): ... this.
202 (get_or_create_ssa_default_def): New function.
203 * tree-dfa.c: Likewise.
204 (dump_variable): Adjust.
205 * ipa-prop.c (ipa_analyze_params_uses): Adjust, properly check
206 for used parameters.
207 * ipa-split.c (consider_split): Adjust, avoid repeated default-def
208 lookups.
209 (split_function): Likewise.
210 * lto-streamer-in.c (input_ssa_names): Adjust.
211 * omp-low.c (expand_omp_taskreg): Likewise.
212 * tree-cfg.c (replace_ssa_name): Adjust, no need to push/pop cfun.
213 * tree-complex.c (init_parameter_lattice_values): Adjust.
214 (get_component_ssa_name): Likewise.
215 (update_parameter_components): Likewise.
216 * tree-inline.c (remap_ssa_name): Likewise.
217 (setup_one_parameter): Likewise.
218 (initialize_inlined_parameters): Likewise.
219 (declare_return_variable): Likewise.
220 (expand_call_inline): Likewise.
221 (tree_function_versioning): Likewise.
222 * tree-into-ssa.c (get_default_def_for): Remove.
223 (get_reaching_def): Use get_or_create_ssa_default_def instead.
224 * tree-predcom.c (replace_ref_with): Adjust.
225 * tree-sra.c (get_repl_default_def_ssa_name): Likewise.
226 (is_unused_scalar_param): Likewise.
227 (ptr_parm_has_direct_uses): Likewise.
228 (sra_ipa_reset_debug_stmts): Likewise.
229 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust.
230 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
231 * tree-ssa-live.c (verify_live_on_entry): Likewise.
232 * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise,
233 avoid repeated default def lookups.
234 * tree-ssa-sccvn.c (run_scc_vn): Likewise.
235 * tree-tailcall.c (arg_needs_copy_p): Adjust.
236 (tree_optimize_tail_calls_1): Likewise.
237
fcddd80e
RG
2382012-08-02 Richard Guenther <rguenther@suse.de>
239
240 PR tree-optimization/50672
241 Revert
242 2012-08-01 Richard Guenther <rguenther@suse.de>
243
244 * tree-ssa-tail-merge.c (release_last_vdef): Remove.
245 (replace_block_by): Adjust.
246
46eb666a
RG
2472012-08-02 Richard Guenther <rguenther@suse.de>
248
249 * tree-dfa.c (referenced_var_lookup): Remove.
250 (find_referenced_vars): Remove.
251 (pass_referenced_vars): Likewise.
252 (make_rename_temp): Do not add referenced vars.
253 (dump_referenced_vars): Remove.
254 (debug_referenced_vars): Likewise.
255 (dump_dfa_stats): Do not dump referenced var stats.
256 (find_vars_r): Remove.
257 (find_referenced_vars_in): Likewise.
258 (referenced_var_check_and_insert): Likewise.
259 (add_referenced_var_1): Likewise.
260 (remove_referenced_var): Likewise.
261 * tree-flow.h (referenced_var_lookup): Likewise.
262 (struct gimple_df): Remove referenced_vars member.
263 (typedef referenced_var_iterator): Remove.
264 (FOR_EACH_REFERENCED_VAR): Likewise.
265 (num_referenced_vars): Likewise.
266 (debug_referenced_vars, dump_referenced_vars): Likewise.
267 (add_referenced_var_1, add_referenced_var): Likewise.
268 (remove_referenced_var): Likewise.
269 (find_referenced_vars_in): Likewise.
270 * tree-flow-inline.h (gimple_referenced_vars): Remove.
271 (first_referenced_var): Likewise.
272 (end_referenced_vars_p): Likewise.
273 (next_referenced_var): Likewise.
274 * cfgexpand.c (update_alias_info_with_stack_vars): Remove assert.
275 * gimple-pretty-print.c (pp_points_to_solution): Dump UIDs
276 unconditionally.
277 * tree-into-ssa.c (dump_decl_set): Likewise.
278 (pass_build_ssa): Do not require PROP_referenced_vars.
279 * tree-ssa.c (target_for_debug_bind): Virtual operands are
280 not suitable, but all register type vars are.
281 (init_tree_ssa): Do not allocate referenced vars.
282 (delete_tree_ssa): Do not free referenced vars.
283 * cgraphunit.c (init_lowered_empty_function): Do not set
284 PROP_referenced_vars.
285 (assemble_thunk): Do not add referenced vars.
286 * gimple-fold.c (canonicalize_constructor_val): Likewise.
287 (gimplify_and_update_call_from_tree): Likewise.
288 * gimple-streamer-in.c (input_bb): Likewise.
289 * passes.c (init_optimization_passes): Do not run
290 pass_referenced_vars.
291 (dump_properties): Do not dump PROP_referenced_vars.
292 * tree-inline.c (remap_decl): Do not add referenced vars.
293 (remap_gimple_op_r): Likewise.
294 (copy_tree_body_r): Likewise.
295 (copy_bb): Likewise.
296 (setup_one_parameter): Likewise.
297 (declare_return_variable): Likewise.
298 (copy_decl_for_dup_finish): Likewise.
299 (copy_arguments_for_versioning): Likewise.
300 (tree_function_versioning): Likewise.
301 * tree-pass.h (PROP_referenced_vars): Remove.
302 (pass_referenced_vars): Likewise.
303 * tree-profile.c (gimple_gen_edge_profiler): Do not add referenced vars.
304 (gimple_gen_interval_profiler): Likewise.
305 (gimple_gen_pow2_profiler): Likewise.
306 (gimple_gen_one_value_profiler): Likewise.
307 (gimple_gen_ic_profiler): Likewise.
308 (gimple_gen_average_profiler): Likewise.
309 (gimple_gen_ior_profiler): Likewise.
310 * tree-ssa-live.c (remove_unused_locals): Do not touch referenced vars.
311 * tree-cfg.c (replace_ssa_name): Do not add referenced vars.
312 (move_stmt_op): Likewise.
313 * tree-ssa-operands.c (create_vop_var): Likewise.
314 * gimple-low.c (record_vars_into): Likewise.
315 * gimplify.c (gimple_regimplify_operands): Likewise.
316 (force_gimple_operand_1): Likewise.
317 * omp-low.c (expand_omp_for_generic): Likewise.
318 (expand_omp_for_static_chunk): Likewise.
319 (expand_omp_atomic_pipeline): Likewise.
320 * graphite-clast-to-gimple.c (graphite_create_new_loop): Likewise.
321 (translate_clast_assignment): Likewise.
322 * graphite-sese-to-poly.c (create_zero_dim_array): Likewise.
323 (handle_scalar_deps_crossing_scop_limits): Likewise.
324 * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
325 * ipa-split.c (split_function): Likewise.
326 * matrix-reorg.c (transform_access_sites): Likewise.
327 * trans-mem.c (tm_log_add): Likewise.
328 (ipa_tm_insert_gettmclone_call): Likewise.
329 * tree-complex.c (create_one_component_var): Likewise.
330 * tree-if-conv.c (ifc_temp_var): Likewise.
331 * tree-parloops.c (take_address_of): Likewise.
332 (initialize_reductions): Likewise.
333 (separate_decls_in_region_name): Likewise.
334 (create_call_for_reduction_1): Likewise.
335 (separate_decls_in_region): Likewise.
336 * tree-predcom.c (predcom_tmp_var): Likewise.
337 (reassociate_to_the_same_stmt): Likewise.
338 * tree-sra.c (build_ref_for_offset): Likewise.
339 (create_access_replacement): Likewise.
340 (get_replaced_param_substitute): Likewise.
341 (sra_ipa_reset_debug_stmts): Likewise.
342 * tree-ssa-loop-im.c (rewrite_reciprocal): Likewise.
343 (rewrite_bittest): Likewise.
344 * tree-ssa-loop-ivopts.c (create_new_iv): Likewise.
345 * tree-ssa-loop-manip.c (create_iv): Likewise.
346 (tree_transform_and_unroll_loop): Likewise.
347 * tree-ssa-math-opts.c (powi_as_mults): Likewise.
348 (build_and_insert_call): Likewise.
349 (gimple_expand_builtin_cabs): Likewise.
350 (execute_optimize_bswap): Likewise.
351 * tree-ssa-phiopt.c (conditional_replacement): Likewise.
352 (abs_replacement): Likewise.
353 (cond_store_replacement): Likewise.
354 (cond_if_else_store_replacement_1): Likewise.
355 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
356 * tree-ssa-pre.c (get_representative_for): Likewise.
357 (create_expression_by_pieces): Likewise.
358 (insert_into_preds_of_block): Likewise.
359 * tree-ssa-propagate.c (update_call_from_tree): Likewise.
360 * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
361 (eliminate_redundant_comparison): Likewise.
362 (rewrite_expr_tree_parallel): Likewise.
363 (get_reassoc_pow_ssa_name): Likewise.
364 * tree-ssa-strlen.c (get_string_length): Likewise.
365 * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
366 (build_arrays): Likewise.
367 * tree-tailcall.c (adjust_return_value_with_ops): Likewise.
368 (create_tailcall_accumulator): Likewise.
369 * tree-vect-data-refs.c (vect_get_new_vect_var): Likewise.
370 (vect_create_addr_base_for_vector_ref): Likewise.
371 (vect_permute_store_chain): Likewise.
372 (vect_permute_load_chain): Likewise.
373 * tree-vect-generic.c (expand_vector_divmod): Likewise.
374 * tree-vect-loop-manip.c (set_prologue_iterations): Likewise.
375 (vect_build_loop_niters): Likewise.
376 (vect_generate_tmps_on_preheader): Likewise.
377 (vect_update_ivs_after_vectorizer): Likewise.
378 (vect_gen_niters_for_prolog_loop): Likewise.
379 (vect_do_peeling_for_alignment): Likewise.
380 (vect_create_cond_for_align_checks): Likewise.
381 * tree-vect-patterns.c (vect_recog_temp_ssa_var): Likewise.
382 (vect_handle_widen_op_by_const): Likewise.
383 (vect_operation_fits_smaller_type): Likewise.
384 (vect_recog_over_widening_pattern): Likewise.
385 * tree-vect-stmts.c (vect_init_vector): Likewise.
386
e7206ab1
AO
3872012-08-01 Alexandre Oliva <aoliva@redhat.com>
388
389 PR debug/52983
390 * valtrack.c (dead_debug_insert_temp): Use cleanup_auto_inc_dec.
391
375e3d07
AO
3922012-08-01 Alexandre Oliva <aoliva@redhat.com>
393
394 PR debug/52983
395 * valtrack.c (cleanup_auto_inc_dec): Implement unconditionally,
396 falling back to copy_rtx on non-autoinc machines.
397 (propagate_for_debug_subst): Always use cleanup_auto_inc_dec.
398
08df6c0d
AO
3992012-08-01 Alexandre Oliva <aoliva@redhat.com>
400
401 PR debug/52983
402 * valtrack.h, valtrack.c: New.
403 * Makefile.in (VALTRACK_H): New.
404 (OBJS): Add valtrack.o.
405 (valtrack.o): New.
406 (cselib.o, dce.o, df-problems.o, combine.o): Add VALTRACK_H.
407 * combine.c: Include valtrack.h.
408 (make_compound_operation): Publish.
409 (cleanup_auto_inc_dec): Move to valtrack.c.
410 (struct rtx_subst_pair, propagate_for_debug_subst): Likewise.
411 (propagate_for_debug): Likewise. Add this_basic_block parameter.
412 Adjust all callers.
413 * cselib.c: Include valtrack.h.
414 * dce.c: Likewise.
415 * df-problems.c: Likewise.
416 (dead_debug_init, dead_debug_reset_uses): Move to valtrack.c.
417 (dead_debug_finish, dead_debug_add): Likewise.
418 (dead_debug_insert_temp): Likewise.
419 * df.h (struct dead_debug_use): Move to valtrack.h.
420 (struct dead_debug, enum debug_temp_where): Likewise.
421 (dead_debug_init, dead_debug_reset_uses): Move to valtrack.h.
422 (dead_debug_finish, dead_debug_add): Likewise.
423 (dead_debug_insert_temp): Likewise.
424 * rtl.h (make_compound_operation): Declare.
425
fdd195f4
CM
4262012-08-01 Catherine Moore <clm@codesourcery.com>
427 Sandra Loosemore <sandra@codesourcery.com>
428
429 gcc/
430 * config/mips/mips-cpus.def (34kn): New.
431 * config/mips/mips.h (MIPS_ARCH_FLOAT_SPEC): Add 34kn.
432 (BASE_DRIVER_SELF_SPECS): Do not imply -mdsp for the 34kn.
433 * config/mips/mips-tables.opt: Regenerate.
434 * doc/invoke.texi (MIPS Options): Document -march=34kn.
435
91f8035e
RH
4362012-08-01 Richard Henderson <rth@redhat.com>
437
438 * expmed.h (NUM_MODE_PARTIAL_INT): New.
439 (NUM_MODE_VECTOR_INT, NUM_MODE_IP_INT, NUM_MODE_IPV_INT): New.
440 (struct expmed_op_cheap): Size one array on NUM_MODE_IPV_INT.
441 (struct expmed_op_costs): Likewise.
442 (struct target_expmed): Size x_convert_cost on NUM_MODE_IP_INT.
443 (expmed_mode_index): New.
444 (expmed_op_cheap_ptr, expmed_op_cost_ptr): Use expmed_mode_index.
445 (convert_cost_ptr): Likewise.
446 * expmed.c (struct init_expmed_rtl): Rename convert to trunc.
447 (init_expmed_one_conv): Split out from ...
448 (init_expmed_one_mode): ... here. Iterate conversions over
449 partial integer modes too.
450 (init_expmed): Iterate over partial integer modes too.
451
92e014ca
RH
4522012-08-01 Richard Henderson <rth@redhat.com>
453
454 * config/m32c/m32c.c (TARGET_INIT_LIBFUNCS): Remove.
455 (m32c_init_libfuncs): Remove.
456 * config/m32c/cond.md (cstore<QHPSI>4_16): Rename from cstore<QHPSI>4.
457 (cstore<QHPSI>4): New expander.
458
d94b820b
RG
4592012-08-01 Richard Guenther <rguenther@suse.de>
460
461 * tree-flow-inline.h (referenced_var): Remove.
462 * tree-ssa-coalesce.c (create_outofssa_var_map): Remove duplicate
463 checking code.
464 * tree-sra.c (candidates): New global hashtable.
465 (candidate): New function.
466 (sra_initialize): Initialize candidates.
467 (sra_deinitialize): Free candidates.
468 (disqualify_candidate): Remove candidate from candidates.
469 (maybe_add_sra_candidate): New function.
470 (find_var_candidates): Walk over all local decls and parameters,
471 add candidates to candidates hashtable.
472 (find_param_candidates): Add candidates to candidates hashtable.
473 (analyze_all_variable_accesses): Use candidate instead of
474 referenced_var.
475
8bb37e9a
TV
4762012-08-01 Tom de Vries <tom@codesourcery.com>
477
478 * tree-vrp.c (find_case_label_ranges): New function.
479 (vrp_visit_switch_stmt, simplify_switch_using_ranges): Use
480 find_case_label_ranges instead of find_case_label_range. Handle second
481 range.
482
5f564b8f
MM
4832012-08-01 Michael Matz <matz@suse.de>
484
485 * tree-complex.c (init_parameter_lattice_values): Don't call var_ann.
486 * tree-dfa.c (struct dfa_stats_d): Remove num_var_anns member.
487 (dump_dfa_stats): Don't dump stats about var anns.
488 (collect_dfa_stats): Don't collect them.
489 (add_referenced_var_1): Don't set var annotation pointers.
490 (remove_referenced_var): Ditto, and only remove it it's in the
491 hash table.
492
493 * tree-flow-inline.h (var_ann): Remove.
494 * tree-flow.h (struct var_ann_d, var_ann_t): Remove.
495
496 * tree-inline.c (remapped_type): Remove.
497 (can_be_nonlocal): Most variable will be considered live here,
498 return false earlier.
499 (remap_decls): Don't call var_ann, all variables will be considered
500 referenced here.
501 (copy_debug_stmt): Ditto, and use is_global_var.
502
503 * tree-into-ssa.c (rewrite_debug_stmt_uses): Use get_current_def to
504 determine if a variable was referred to, not var_ann.
505 * tree-ssa-live.c (remove_unused_scope_block_p): Don't check var_ann.
506 (remove_unused_locals): Ditto.
507 * tree-ssa.c (delete_tree_ssa): Don't free/clear var ann pointers.
508 * tree-tailcall.c (arg_needs_copy_p): Don't check var_ann.
509 * tree.c (copy_node_stat): Don't clear var ann pointer.
510 * tree.h (tree_result_decl, tree_parm_decl, tree_var_decl): Remove
511 ann member.
512 (DECL_VAR_ANN_PTR): Remove.
513
5142012-08-01 Michael Matz <matz@suse.de>
515
516 * tree-flow.h (struct var_ann_d): Rename used member.
517 (set_is_used): Don't declare.
518 * tree-flow-inline.h (clear_is_used): Remove.
519 (set_is_used, is_used_p): Move to ...
520 * tree-ssa-live.c (set_is_used, is_used_p): ... here, and use
521 on the side bitmap.
522 (usedvars): New bitmap.
523 (dump_scope_block): Don't dump unusedness.
524 (remove_unused_locals): Allocate and free usedvars.
525 * tree-nrv.c (tree_nrv): Don't clear used flags here.
526
5272012-08-01 Michael Matz <matz@suse.de>
528
529 * tree-flow.h (struct var_ann_d): Remove base_var_processed and
530 base_index members.
531 * tree-ssa-live.h (struct _var_map): Remove basevars member.
532 (VAR_ANN_BASE_INDEX): Remove.
533 * tree-ssa-live.c (var_map_base_init): Use a hash table instead
534 of var annotation to compress index space. Don't deal with above
535 removed members.
536 (var_map_base_fini): Don't free basevars.
537 (init_var_map): Don't clear basevars.
538
3cfd4469
BS
5392012-08-01 Bill Schmidt <wschmidt@linux.ibm.com>
540
541 * gimple-ssa-strength-reduction.c (struct slsr_cand_d): Change
542 base_name to base_expr.
543 (struct cand_chain_d): Likewise.
544 (base_cand_hash): Likewise.
545 (base_cand_eq): Likewise.
546 (record_potential_basis): Likewise.
547 (alloc_cand_and_find_basis): Likewise.
548 (create_mul_ssa_cand): Likewise.
549 (create_mul_imm_cand): Likewise.
550 (create_add_ssa_cand): Likewise.
551 (create_add_imm_cand): Likewise.
552 (slsr_process_cast): Likewise.
553 (slsr_process_copy): Likewise.
554 (dump_candidate): Likewise.
555 (base_cand_dump_callback): Likewise.
556 (unconditional_cands_with_known_stride_p): Likewise.
557 (cand_increment): Likewise.
558
2749c8f6
BS
5592012-08-01 Bill Schmidt <wschmidt@linux.ibm.com>
560
561 PR tree-optimization/46556
562 * gimple-ssa-strength-reduction.c (enum cand_kind): Add CAND_REF.
563 (base_cand_map): Change to hash table.
564 (base_cand_hash): New function.
565 (base_cand_free): Likewise.
566 (base_cand_eq): Likewise.
567 (lookup_cand): Change base_cand_map to hash table.
568 (find_basis_for_candidate): Likewise.
569 (base_cand_from_table): Exclude CAND_REF.
570 (restructure_reference): New function.
571 (slsr_process_ref): Likewise.
572 (find_candidates_in_block): Call slsr_process_ref.
573 (dump_candidate): Handle CAND_REF.
574 (base_cand_dump_callback): New function.
575 (dump_cand_chains): Change base_cand_map to hash table.
576 (replace_ref): New function.
577 (replace_refs): Likewise.
578 (analyze_candidates_and_replace): Call replace_refs.
579 (execute_strength_reduction): Change base_cand_map to hash table.
580
85add0cf
UB
5812012-08-01 Uros Bizjak <ubizjak@gmail.com>
582
583 * config/i386/i386.c (ix86_address_subreg_operand): Reject
584 stack pointer.
585 (ix86_print_operand_address): Assert that parts.base and parts.index
586 are non-NULL after call to simplify_subreg.
587
1491b564
RG
5882012-08-01 Richard Guenther <rguenther@suse.de>
589
590 * doc/tree-ssa.texi: Remove pieces mentioning mark_sym_for_renaming.
591
525174a2
RG
5922012-08-01 Richard Guenther <rguenther@suse.de>
593
594 * graphite-clast-to-gimple.c (translate_clast_user): Rename
595 virtual operands.
596 * sese.c (graphite_copy_stmts_from_block): Do not rename virtual
597 operands here.
598 * tree-call-cdce.c (tree_call_cdce): Use
599 mark_virtual_operands_for_renaming.
600 * tree-eh.c (sink_clobbers): Simplify.
601 * tree-flow.h (mark_sym_for_renaming): Remove.
602 (mark_virtual_operands_for_renaming): New function.
603 * tree-if-conv.c (tree_if_conversion): Use
604 mark_virtual_operands_for_renaming.
605 * tree-inline.c (update_ssa_across_abnormal_edges): Likewise.
606 * tree-into-ssa.c (mark_sym_for_renaming): Remove.
607 (mark_virtual_operands_for_renaming): New function.
608 * tree-loop-distribution.c (tree_loop_distribution): Use
609 mark_virtual_operands_for_renaming.
610 * tree-ssa-dce.c (mark_virtual_operand_for_renaming): Do not
611 update stmts, use mark_virtual_operands_for_renaming.
612 * tree-ssa-tail-merge.c (release_last_vdef): Remove.
613 (replace_block_by): Adjust.
614 (tail_merge_optimize): Use mark_virtual_operands_for_renaming.
615 * tree-tailcall.c (tree_optimize_tail_calls_1): Use
616 mark_virtual_operands_for_renaming.
617 * tree-vect-slp.c (vect_slp_transform_bb): Likewise.
618 * tree-vectorizer.c (vectorize_loops): Likewise.
619
13714310
RG
6202012-08-01 Richard Guenther <rguenther@suse.de>
621
622 * tree-flow.h (struct gimple_df): Remove syms_to_rename member,
623 add ssa_renaming_needed and rename_vops flags.
624 (SYMS_TO_RENAME): Remove.
625 (symbol_marked_for_renaming): Likewise.
626 (mark_virtual_ops_for_renaming): Likewise.
627 * tree-into-ssa.c (symbols_to_rename_set, symbols_to_rename):
628 New globals.
629 (mark_for_renaming, marked_for_renaming): New functions.
630 (symbol_marked_for_renaming): Remove.
631 (dump_currdefs): Adjust.
632 (maybe_replace_use): Likewise.
633 (maybe_replace_use_in_debug_stmt): Likewise.
634 (maybe_register_def): Likewise.
635 (rewrite_update_phi_arguments): Likewise.
636 (rewrite_update_enter_block): Likewise.
637 (fini_ssa_renamer): Clear update SSA status here ...
638 (delete_update_ssa): ... not here. Free rename set.
639 (prepare_block_for_update): Compute which decls need renaming.
640 (dump_update_ssa): Adjust.
641 (mark_sym_for_renaming): Adjust update SSA status for virtuals.
642 (need_ssa_update_p): Adjust.
643 (insert_updated_phi_nodes_for): Likewise.
644 (update_ssa): Likewise.
645 * tree-ssa-operands.c (finalize_ssa_defs): Adjust update SSA status
646 for virtual and real operands.
647 (finalize_ssa_uses): Likewise.
648 * tree-ssanames.c (init_ssanames): Adjust.
649 * tree-ssa.c (maybe_rewrite_mem_ref_base, maybe_optimize_var,
650 execute_update_addresses_taken): Add bitmap to keep track of which
85add0cf 651 candidates are suitable for rewriting and later renaming by SSA update.
13714310 652 * matrix-reorg.c (transform_access_sites): Do not rename all defs.
85add0cf
UB
653 * tree-dfa.c (make_rename_temp): Do not mark real operands for
654 renaming.
13714310
RG
655 * cgraphunit.c (assemble_thunk): Likewise.
656 * gimplify.c (gimple_regimplify_operands): Likewise.
657 (force_gimple_operand_1): Likewise.
658 * ipa-prop.c (ipa_modify_formal_parameters): Likewise.
659 * tree-inline.c (declare_return_variable): Likewise.
660 * tree-parloops.c (separate_decls_in_region_stmt): Do not call
661 mark_virtual_ops_for_renaming.
662 (create_stores_for_reduction): Likewise.
663 (create_loads_and_stores_for_name): Likewise.
664 * tree-predcom.c (mark_virtual_ops_for_renaming): Remove.
665 (initialize_root_vars_lm): Do not call mark_virtual_ops_for_renaming.
666 (execute_load_motion): Likewise.
667 (remove_stmt): Likewise.
668 (execute_pred_commoning_chain): Likewise.
85add0cf 669 * tree-sra.c (create_access_replacement): Do not rename real operands.
13714310
RG
670 (get_unrenamed_access_replacement): Unify with ...
671 (get_access_replacement): ... this.
672 (get_repl_default_def_ssa_name): Adjust.
673 * tree-ssa-loop-im.c (move_computations_stmt): Manually update
674 virtual SSA form.
675 (rewrite_mem_ref_loc): Do not call mark_virtual_ops_for_renaming.
676 * tree-ssa-loop-prefetch.c (emit_mfence_after_loop): Likewise.
677
b3e8a0d2
DD
6782012-07-31 DJ Delorie <dj@redhat.com>
679
680 * config/s390/s390.c (s390_option_override): Disable DWARF 3/4
681 extensions for TPF, unless specifically selected.
682
7099ce06
AM
6832012-08-01 Alan Modra <amodra@gmail.com>
684
685 PR target/54131
686 * config/rs6000/rs6000.c (mem_operand_gpr): Don't limit range
687 of lo_sum offsets. Comment. Assert mode at least word size
688 rather than bypassing powerpc64 word offset check.
689
fdc43210
BS
6902012-07-31 Bill Schmidt <wschmidt@linux.ibm.com>
691
692 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Revise
693 costs for vec_perm and vec_promote_demote down to more natural values.
694 (struct _rs6000_cost_data): New data structure.
695 (rs6000_density_test): New function.
696 (rs6000_init_cost): Change to use rs6000_cost_data.
697 (rs6000_add_stmt_cost): Likewise.
698 (rs6000_finish_cost): Perform density test when vectorizing a loop.
699
ab6d55ef
SB
7002012-07-31 Steven Bosscher <steven@gcc.gnu.org>
701
702 * sched-vis.c (print_exp): Handle FMA explicitly. Simplify handling
703 of RTX_UNARY function-like operations. Print unknown expression
704 RTX classes as pseudo-functions.
705 (print_pattern): Simplify return pattern printing.
706 (dump_insn_slim): Print the value of notes as a pattern for proper
707 printing of CFA notes.
708
aa36f90b
DC
7092012-07-31 Dehao Chen <dehao@google.com>
710
711 * predict.c (tree_estimate_probability_driver): Normalize the
712 loop when initializing the loop optimizer.
713
b4e209fd
RG
7142012-07-31 Richard Guenther <rguenther@suse.de>
715
716 * tree-flow.h (struct var_ann_d): Remove need_phi_state
717 and current_def members.
718 * tree-into-ssa.c (struct def_blocks_d): Remove var member.
719 (def_blocks): Remove.
720 (struct var_info_d): New.
721 (var_infos): New hashtable.
722 (struct ssa_name_info): Add def_blocks member.
723 (get_ssa_name_ann): Adjust.
724 (get_var_info): New function.
725 (get_phi_state, set_phi_state, get_current_def,
726 set_current_def, get_def_blocks_for, find_def_blocks_for): Adjust.
727 (insert_phi_nodes_compare_def_blocks): Rename to ...
728 (insert_phi_nodes_compare_var_infos): ... this and adjust.
729 (insert_phi_nodes): Adjust.
730 (dump_tree_ssa, dump_tree_ssa_stats): Adjust.
731 (def_blocks_hash, def_blocks_eq, def_blocks_free): Remove.
732 (debug_def_blocks_r): Rename to ...
733 (debug_var_infos_r): ... this and adjust.
734 (var_info_hash): New function.
735 (var_info_eq): Likewise.
736 (rewrite_blocks): Adjust.
737 (init_ssa_renamer): Likewise.
738 (fini_ssa_renamer): Likewise.
739 (delete_update_ssa): Likewise.
740 (update_ssa): Likewise.
85add0cf 741 * tree-ssanames.c (release_dead_ssa_names): Do not clear current defs.
b4e209fd 742
3393a711
BS
7432012-07-31 Bill Schmidt <wschmidt@linux.ibm.com>
744
745 PR tree-optimization/53773
746 * tree-vectorizer.h (struct _loop_vec_info): Add operands_swapped.
747 (LOOP_VINFO_OPERANDS_SWAPPED): New macro.
748 * tree-vect-loop.c (new_loop_vec_info): Initialize
749 LOOP_VINFO_OPERANDS_SWAPPED field.
750 (destroy_loop_vec_info): Restore canonical form.
751 (vect_is_slp_reduction): Set LOOP_VINFO_OPERANDS_SWAPPED field.
752 (vect_is_simple_reduction_1): Likewise.
753
8c503f0d
SB
7542012-07-31 Steven Bosscher <steven@gcc.gnu.org>
755
756 * sched-vis.c (dump_insn_slim): Print print_rtx_head at the
757 start of each new line.
758 * final.c (final_scan_insn): If the final dump is requested as
759 slim RTL, dump slim RTL to the assembly file also.
760
0d4acd90
AB
7612012-07-31 Andrey Belevantsev <abel@ispras.ru>
762
763 PR target/53975
85add0cf
UB
764
765 * sel-sched-ir.c (has_dependence_note_reg_use): Clarify comment.
0d4acd90
AB
766
767 Revert
768 2011-08-04 Sergey Grechanik <mouseentity@ispras.ru>
769
770 * sel-sched-ir.c (has_dependence_note_reg_use): Call ds_full_merge
771 only if producer writes to the register given by regno.
772
4adf72f1
NC
7732012-07-31 Nick Clifton <nickc@redhat.com>
774
315bdf71
NC
775 * config/stormy16/stormy16.c (xstormy16_expand_prologue): Add
776 support for reporting stack usage.
777
4adf72f1 778 * config/frv/frv.c (QUAD): Fix typo.
7027164c 779 (frv_expand_prologue): Report stack usage.
4adf72f1 780
3ad45f7f
SB
7812012-07-31 Steven Bosscher <steven@gcc.gnu.org>
782
783 PR pch/53880
784 * gengtype.c (struct walk_type_data): Add have_this_obj field.
785 (walk_type): For functions that take a this_obj argument and
786 that process fields with a GTY((length)) argument, write the
787 test that write_types_local_process_field will write also at the
788 head of the loop, effectively unswitching the loop.
789 (write_func_for_structure, write_local_func_for_structure): Clear
790 have_this_obj before calling walk_type.
791 (write_local_func_for_structure): Set have_this_obj before walk_type.
792 (write_array): Set have_this_obj for output of local pointer walking
793 functions but not for marker functions.
794 (write_types_local_process_field): Assert have_this_obj is set.
795
796 * rtl.h (simplify_using_condition): Adjust prototype using bitmap
797 from coretypes.h.
798
b0f6b612
NF
7992012-07-30 Nathan Froyd <froydnj@gcc.gnu.org>
800
801
802 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
803 * targhooks.c (default_mode_dependent_address_p): Delete code
804 for GO_IF_MODE_DEPENDENT_ADDRESS.
805 * system.h (GO_IF_MODE_DEPENDENT_ADDRESS): Poison.
806 * doc/tm.texi.in (GO_IF_MODE_DEPENDENT_ADDRESS): Delete documention.
807 * doc/tm.texi: Regenerate.
808 * config/alpha.h (GO_IF_MODE_DEPENDENT_ADDRESS): Move code to...
809 * config/alpha.c (alpha_mode_dependent_address_p): ...here. New
810 function.
811 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
812 * config/cr16/cr16.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
813 * config/mep/mep.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
814 * config/vax/vax-protos.h (vax_mode_dependent_address_p): Delete.
815 * config/vax/vax.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete.
816 * config/vax/vax.c (vax_mode_dependent_address_p): Make static.
817 Take a const_rtx.
818 (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
819
2a261cd3
NF
8202012-07-30 Nathan Froyd <froydnj@gcc.gnu.org>
821
822 * expmed.h (NUM_MODE_VECTOR_INT): Define.
823 (struct expmed_op_cheap, struct expmed_op_costs): New structures.
824 (struct target_expmed): Convert x_mul_highpart_cost and
825 x_mul_widen_cost fields to be indexed by integer modes.
826 Convert x_sdiv_pow2_cheap and x_smod_pow2_cheap fields to be
827 of type struct expmed_op_cheap. Convert other cost fields to be
828 of type struct_expmed_op_costs.
829 (mul_widen_cost_ptr, mul_highpart_cost_ptr): Adjust for new
830 indexing of respective fields.
831 (expmed_op_cheap_ptr): New function.
832 (sdiv_pow2_cheap_ptr, smod_pow2_cheap_ptr): Call it.
833 (expmed_op_cost_ptr): New function.
834 (add_cost_ptr, neg_cost_ptr, shift_cost_ptr, shiftadd_cost_ptr,
835 shiftsub0_cost_ptr, shiftsub1_cost_ptr, mul_cost_ptr,
836 sdiv_cost_ptr, udiv_cost_ptr): Call it.
837
3df0998b
SL
8382012-07-30 Sandra Loosemore <sandra@codesourcery.com>
839 Julian Brown <julian@codesourcery.com>
840
841 * doc/invoke.texi (MIPS Options): Document -mno-float.
842 * config/mips/mips.h (MIPS_ARCH_FLOAT_SPEC): Make it know
843 about -mno-float.
844
9a99299d
JM
8452012-07-30 Joseph Myers <joseph@codesourcery.com>
846
85add0cf 847 * doc/sourcebuild.texi (Subdirectories): Document common subdirectory.
9a99299d 848
caf62455
JDA
8492012-07-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
850
851 PR middle-end/53823
852 * expmed.c (expand_mult): Skip synth_mult for constant double op1 except
853 for special cases. Don't initialize coeff and is_neg.
854
5aea1e76
UW
8552012-07-30 Ulrich Weigand <ulrich.weigand@linaro.org>
856 Richard Earnshaw <rearnsha@arm.com>
857
858 * target.def (vector_alignment): New target hook.
859 * doc/tm.texi.in (TARGET_VECTOR_ALIGNMENT): Document new hook.
860 * doc/tm.texi: Regenerate.
861 * targhooks.c (default_vector_alignment): New function.
862 * targhooks.h (default_vector_alignment): Add prototype.
863 * stor-layout.c (layout_type): Use targetm.vector_alignment.
864 * config/arm/arm.c (arm_vector_alignment): New function.
865 (TARGET_VECTOR_ALIGNMENT): Define.
866
867 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): Use
868 vector type alignment instead of size.
869 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Use
870 element type size directly instead of computing it from alignment.
871 Fix variable naming and comment.
872
4c340b5d
KY
8732012-07-30 Kirill Yukhin <kirill.yukhin@intel.com>
874 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
875
876 * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDSEED_SET): New.
877 (OPTION_MASK_ISA_RDSEED_UNSET): Likewise.
878 (ix86_handle_option): Handle mrdseed option.
879 * config.gcc (i[34567]86-*-*): Add rdseedintrin.h.
880 (x86_64-*-*): Likewise.
881 * config/i386/prfchwintrin.h: New header.
882 * config/i386/cpuid.h (bit_RDSEED): New.
883 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
884 RDSEED support.
885 * config/i386/i386-c.c: Define __RDSEED__ if needed.
85add0cf 886 * config/i386/i386.c (ix86_target_string): Define -mrdseed option.
4c340b5d
KY
887 (PTA_RDSEED): New.
888 (ix86_option_override_internal): Handle new option.
889 (ix86_valid_target_attribute_inner_p): Add OPT_mrdseed.
890 (ix86_builtins): Add enum entries for RDSEED* builtins.
891 (ix86_init_mmx_sse_builtins): Define new builtins.
892 (ix86_expand_builtin): Expand RDSEED* builtins.
893 * config/i386/i386.h (TARGET_RDSEED): New.
894 * config/i386/i386.md (rdseed<mode>_1): New.
895 * config/i386/i386.opt (mrdseed): New.
896 * config/i386/x86intrin.h: Include rdseedintrin.h.
897
39c58b3a
RG
8982012-07-30 Richard Guenther <rguenther@suse.de>
899
900 * tree-into-ssa.c (mark_def_sites): Also process virtual operands.
901 (rewrite_stmt): Likewise.
902 (rewrite_enter_block): Likewise.
903 (pass_build_ssa): Do not update virtual SSA form during TODO.
904 (mark_symbol_for_renaming): Do nothing if we are not in SSA form.
905 * lto-streamer-in.c (lto_read_body): Set in_ssa_p earlier.
906
974f90ba
OE
9072012-07-30 Oleg Endo <olegendo@gcc.gnu.org>
908
909 PR target/39423
85add0cf
UB
910 * config/gcc/sh/sh.md (*movsi_index_disp, *movhi_index_disp): New
911 insns.
974f90ba 912
be8cbce1
OE
9132012-07-30 Oleg Endo <olegendo@gcc.gnu.org>
914
915 PR target/51244
916 * config/sh/sh.md (mov_neg_si_t): Move to Scc instructions section.
917 Use t_reg_operand predicate. Add split for negated case.
918 (ashrsi2_31): Pass get_t_reg_rtx to gen_mov_neg_si_t.
919 * config/sh/sh.c (expand_ashiftrt): Likewise.
920
be82afe6
OE
9212012-07-30 Oleg Endo <olegendo@gcc.gnu.org>
922
923 PR target/54089
924 * config/sh/sh.md (ashlsi3_d): Invoke gen_shifty_op directly instead
925 of trying to emit ashlsi3_n.
926
c0fd3497
LB
9272012-07-30 Laurynas Biveinis <laurynas.biveinis@gmail.com>
928 Steven Bosscher <steven@gcc.gnu.org>
929
930 * gengtype.c (adjust_field_type): Diagnose duplicate "length"
85add0cf 931 option applications and option being applied to arrays of atomic types.
c0fd3497
LB
932 (walk_type): Allow "atomic" option on strings too.
933 * dwarf2out.h (struct dw_vec_struct): Use the "atomic" GTY option
934 for the array field.
935 * vec.h: Describe the atomic object "A" type of the macros in
936 the header comment.
937 (VEC_T_GTY_ATOMIC, DEF_VEC_A, DEF_VEC_ALLOC_A): Define.
85add0cf 938 * emit-rtl.c (locations_locators_vals): use the atomic object vector.
c0fd3497
LB
939 * doc/gty.texi: Clarify that GTY option "length" is only for
940 arrays of non-atomic objects. Fix typo in the description of the
941 "atomic" option.
942
61c7941c
UB
9432012-07-27 Uros Bizjak <ubizjak@gmail.com>
944
945 * config/i386/i386.c (ix86_avoid_lea_for_addr): Handle
946 zero-extended addresses. Return false if the address has less
947 than two components.
948 (ix86_split_lea_for_addr): Unconditionally convert target and
949 all address operands to requested mode.
950 * config/i386/i386.md (*lea<mode>): Recover operands from curr_insn.
951 Pass SImode to ix86_split_lea_for_addr when splitting zero-extended
952 address.
953 (zero-extended add splitter): New splitter to conditionally split
954 non-destructive adds.
955 (*zero_extendsidi2_rex64): Conditionally emit leal instead of movl.
956
6ad58e82
AM
9572012-07-28 Alan Modra <amodra@gmail.com>
958
959 PR target/54093
960 * config/rs6000/rs6000.c (rs6000_secondary_reload): Limit 32-bit
961 multi-gpr reload to cases where predicate passes. Do the same for
962 64-bit multi-gpr reload.
963
5322d07e
NF
9642012-07-27 Nathan Froyd <froydnj@gcc.gnu.org>
965
966 * expmed.h (alg_hash, alg_hash_used_p, sdiv_pow2_cheap,
967 smod_pow2_cheap, zero_cost, add_cost, neg_cost, shift_cost)
968 shiftadd_cost, shiftsub0_cost, shiftsub1_cost, mul_cost,
969 sdiv_cost, udiv_cost, mul_widen_cost, mul_highpart_cost): Delete
970 macro definitions and re-purpose as inline functions.
971 (alg_hash_entry_ptr, set_alg_hash_used_p, sdiv_pow2_cheap_ptr,
972 set_sdiv_pow2_cheap, smod_pow2_cheap_ptr, set_smod_pow2_cheap,
973 zero_cost_ptr, set_zero_cost, add_cost_ptr, set_add_cost,
974 neg_cost_ptr, set_neg_cost, shift_cost_ptr, set_shift_cost,
975 shiftadd_cost_ptr, set_shiftadd_cost, shiftsub0_cost_ptr,
976 set_shiftsub0_cost, shiftsub1_cost_ptr, set_shiftsub1_cost,
977 mul_cost_ptr, set_mul_cost, sdiv_cost_ptr, set_sdiv_cost,
978 udiv_cost_ptr, set_udiv_cost, mul_widen_cost_ptr,
979 set_mul_widen_cost, mul_highpart_cost_ptr, set_mul_highpart_cost):
980 New functions.
981 (convert_cost_ptr): New function, split out from...
982 (set_convert_cost, convert_cost): ...here.
983 * expmed.c, tree-ssa-loop-ivopts.c: Update for new functions.
984 * gimple-ssa-strength-reduction.c: Likewise.
985
ccbc132f
RM
9862012-07-20 Ryan Mansfield <rmansfield@qnx.com>
987
988 * gcc.c (main): Move GCC_DRIVER_HOST_INITIALIZATION after
989 diagnostic_initialize.
990
ebe0dd38
OE
9912012-07-27 Oleg Endo <olegendo@gcc.gnu.org>
992
993 PR target/54089
5322d07e 994 * config/sh/sh.c (shiftcosts): Remove case where first operand
ebe0dd38
OE
995 is a const_int. Move COSTS_N_INSNS usage into caller ...
996 (sh_rtx_costs) ... here. Return false when shiftcosts cannot be
997 calculated instead of MAX_COST.
998
891f2df6
RG
9992012-07-27 Richard Guenther <rguenther@suse.de>
1000
1001 * tree-cfg.c (gimple_can_merge_blocks_p): Do more fine-grained
1002 check whether SSA form is not up-to-date.
1003 * tree-flow.h (name_mappings_registered_p): Remove.
1004 * tree-into-ssa.c (struct repl_map_d): Remove.
1005 (repl_tbl): Likewise.
1006 (struct ssa_name_info): Add repl_set member.
1007 (update_ssa_obstack): New static global.
1008 (get_ssa_name_ann): Initialize repl_set.
1009 (clear_ssa_name_info): Assert age did not wrap.
1010 (repl_map_hash, repl_map_eq, repl_map_free): Remove.
1011 (names_replaced_by): Adjust.
1012 (add_to_repl_tbl): Likewise.
1013 (dump_tree_ssa_stats): Likewise.
1014 (init_update_ssa): Initialize update_ssa_obstack.
1015 (delete_update_ssa): Free update_ssa_obstack.
1016 (name_mappings_registered_p): Remove.
1017 (update_ssa): Adjust.
1018
462f7901
SB
10192012-07-27 Segher Boessenkool <segher@kernel.crashing.org>
1020
1021 * config/rs6000/constraints.md: Delete "q" constraint.
1022 * config/rs6000/dfp.md (movsd_hardfloat, movsd_softfloat):
1023 Delete the "q" alternative.
1024 * config/rs6000/predicates.md (gpc_reg_operand): Adjust.
1025 * config/rs6000/rs6000.c (rs6000_debug_reg_global,
1026 rs6000_init_hard_regno_mode_ok, rs6000_dbx_register_number):
1027 Adjust to MQ_REGNO removal.
1028 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust
1029 comment.
1030 (REG_ALLOC_ORDER): Adjust comment. Remove MQ from alloc order.
1031 (enum reg_class): Adjust comment. Delete MQ_REGS.
1032 (REG_CLASS_CONTENTS): Adjust.
1033 (REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Adjust comment.
1034 * config/rs6000/rs6000.md: Delete MQ_REGNO.
1035 (movsi_internal1, movsi_internal1_single, movhi_internal,
1036 movqi_internal, movcc_internal1, movsf_hardfloat,
1037 movsf_softfloat): Delete the "q" alternative.
1038 (ctr<mode>_internal1, ctr<mode>_internal2, ctr<mode>_internal5,
1039 ctr<mode>_internal6): Delete "q" constraint.
1040
d9ed2fbd
RG
10412012-07-27 Richard Guenther <rguenther@suse.de>
1042
1043 * tree-into-ssa.c (def_blocks_p): New typedef.
1044 (insert_phi_nodes_compare_def_blocks): New function.
1045 (insert_phi_nodes): Do not walk over referenced vars, instead
1046 walk over recorded def_blocks, record relevant ones and sort
1047 them to avoid repeated hashtable lookups.
1048
cf3791ae
RG
10492012-07-27 Richard Guenther <rguenther@suse.de>
1050
1051 * doc/invoke.texi (min-virtual-mappings, virtual-mappings-ratio):
1052 Remove param documentation.
1053 * params.def (PARAM_MIN_VIRTUAL_MAPPINGS,
1054 PARAM_VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Remove.
1055 * tree-flow.h (mark_set_for_renaming): Remove.
1056 * tree-into-ssa.c (struct update_ssa_stats_d): Remove.
1057 (add_new_name_mapping): Remove bookkeeping code.
1058 (dump_update_ssa): Remove stats dumping code.
1059 (init_update_ssa): Remove stats allocation code.
1060 (delete_update_ssa): Remove stats freeing code.
1061 (mark_set_for_renaming): Remove.
1062 (switch_virtuals_to_full_rewrite_p): Likewise.
1063 (switch_virtuals_to_full_rewrite): Likewise.
1064 (update_ssa): Do not call switch_virtuals_to_full_rewrite.
1065
047ae098
MP
10662012-07-27 Marek Polacek <polacek@redhat.com>
1067
1068 * cgraphunit.c: Rename varpool_finalize_variable to
1069 varpool_finalize_decl in a comment.
1070
c28a7c24
SB
10712012-07-27 Segher Boessenkool <segher@kernel.crashing.org>
1072
1073 * common/config/rs6000/rs6000-common.c (rs6000_handle_option):
1074 Delete code for -mno-power, -mpower, and -mpower2.
1075 * config/rs6000/aix43.h (NON_POWERPC_MASKS): Delete.
1076 (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
1077 with -maix64.
1078 (ASM_CPU_SPEC): Delete support for POWER and POWER2.
1079 * config/rs6000/aix51.h (NON_POWERPC_MASKS): Delete.
1080 (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
1081 with -maix64.
1082 (ASM_CPU_SPEC): Delete support for POWER and POWER2.
1083 * config/rs6000/aix52.h (NON_POWERPC_MASKS): Delete.
1084 (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
1085 with -maix64.
1086 (TARGET_POWER): Delete.
1087 * config/rs6000/aix53.h (NON_POWERPC_MASKS): Delete.
1088 (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
1089 with -maix64.
1090 (TARGET_POWER): Delete.
1091 * config/rs6000/aix61.h (NON_POWERPC_MASKS): Delete.
1092 (SUBTARGET_OVERRIDE_OPTIONS): Delete check for POWER together
1093 with -maix64.
1094 (TARGET_POWER): Delete.
1095 * config/rs6000/darwin.h (TARGET_POWER): Delete.
1096 * config/rs6000/driver-rs6000.c (struct asm_names): Delete
1097 support for -mpower, -mpower2, and -mno-power.
1098 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros):
1099 Likewise.
1100 (rs6000_cpu_cpp_builtins): Likewise.
1101 * config/rs6000/rs6000-cpus.def: Likewise.
1102 * config/rs6000/rs6000-tables.opt: Regenerate.
1103 * config/rs6000/rs6000.c (POWER_MASKS): Delete.
1104 (rs6000_option_override_internal): Adjust.
1105 (rs6000_conditional_register_usage): Adjust.
1106 (rs6000_emit_move): Adjust.
1107 (rs6000_common_init_builtins): Adjust.
1108 (rs6000_init_libfuncs): Adjust.
1109 (rs6000_output_function_prologue): Adjust.
1110 (rs6000_adjust_cost): Adjust.
1111 (struct rs6000_opt_masks): Delete MASK_POWER and MASK_POWER2.
1112 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Delete support for
1113 POWER and POWER2.
1114 (TARGET_DEFAULT): Adjust.
1115 (PROCESSOR_POWER): Delete.
1116 (SHIFT_COUNT_TRUNCATED): Adjust.
1117 * config/rs6000/rs6000.md (extendqisi2): Delete POWER support.
1118 (extendqisi2_power): Delete.
1119 (extendqisi2_no_power): Adjust.
1120 (extendqihi2, extendqihi2_power, extendqihi2_no_power):
1121 Likewise.
1122 (sminsi3, smaxsi3, uminsi3, umaxsi3): Adjust.
1123 (anonymous doz insn patterns): Delete.
1124 (abssi2): Adjust.
1125 (abssi2_power): Delete.
1126 (abssi2_nopower): Adjust.
1127 (nabs_power, nabs_nopower): Likewise.
1128 (mulsi3, mulsi3_mq, mulsi3_no_mq, mulsi3_mq_internal1):
1129 Likewise. Delete anonymous post-reload splitter.
1130 (mulsi3_no_mq_internal1): rename to...
1131 (mulsi3_internal1): New define_insn.
1132 (mulsi3_mq_internal2, mulsi3_no_mq_internal2, mulsi3_internal2):
1133 Likewise.
1134 (divmodsi4, divmodsi4_internal, udiv<mode>3, udivsi3_mq,
1135 udivsi3_no_mq, udivsi3, div<mode>3, divsi3_mq, div<mode>3_no_mq,
1136 udivmodsi4_normal, udivmodsi4_tests, udivmodsi4): Likewise.
1137 (mulh_call, mull_call, divss_call, divus_call, quoss_call,
1138 quous_call): Likewise.
1139 (maskir_internal1, maskir_internal2, maskir_internal3,
1140 maskir_internal4, maskir_internal5, maskir_internal6,
1141 maskir_internal7, maskir_internal8): Delete.
1142 (ashlsi3, ashlsi3_power, ashlsi3_no_power): Adjust.
1143 (anonymous sl insn patterns): Delete.
1144 (lshrsi3, lshrsi3_power, lshrsi3_no_power): Adjust.
1145 (lshrsi3_64): Adjust.
1146 (anonymous sr insn patterns): Delete.
1147 (anonymous rrib insn patterns): Delete.
1148 (ashrsi3, ashrsi3_power, ashrsi3_no_power): Adjust.
1149 (anonymous sra insn patterns): Delete.
1150 (sqrtsf2, sqrtdf2, sqrtdf2_fpr): Adjust.
1151 (fix_trunc<mode>si2, fix_trunc<mode>si2_internal,
1152 fctiwz_<mode>): Adjust.
1153 (mulsidi3, mulsidi3_mq, mulsidi3_no_mq, umulsidi3, umulsidi3_mq,
1154 umulsidi3_no_mq, smulsi3_highpart, smulsi3_highpart_mq,
1155 smulsi3_highpart_no_mq, umulsi3_highpart, umulsi3_highpart_mq,
1156 umulsi3_highpart_no_mq): Adjust.
1157 (ashldi3_power, lshrdi3_power, ashrdi3_power): Delete.
1158 (ashrdi3_no_power, ashldi3, ashldi3_internal1,
1159 lshrdi3_internal1): Adjust.
1160 (fix_trunctfsi2, fix_trunctfsi2_fprs): Adjust.
1161 (movti_power): Delete.
1162 (movti_string): Adjust.
1163 (stmsi8, stmsi7, stmsi6, stmsi5, stmsi4, stmsi3): Adjust.
1164 (stmsi8_power, stmsi7_power, stmsi6_power, stmsi5_power,
1165 stmsi4_power, stmsi3_power): Delete.
1166 (anonymous movmemsi insn patterns): Adjust.
1167 (lfq_power2, stfq_power2): Delete.
1168 (eq<mode>, eq<mode>_compare): Adjust.
1169 (eqsi_power): Delete.
1170 (ne0si): Adjust.
1171 (anonymous le, lt, ge, gt insn patterns): Delete.
1172 * config/rs6000/rs6000.opt (mpower, mno-power, mpower2): Delete.
1173 * config/rs6000/sysv4.h (TARGET_POWER): Delete.
1174 * config/rs6000/t-aix43 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
1175 MULTILIB_MATCHES): Adjust.
1176 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete
1177 -mpower, -mno-power, -mpower2, -mno-power2 documentation.
1178 Delete -mcpu=power and -mcpu=power2 documentation.
1179
f3061fa4
SB
11802012-07-27 Segher Boessenkool <segher@kernel.crashing.org>
1181
1182 * config/rs6000/601.md: New file.
1183 * config/rs6000/aix43.h (ASM_CPU_SPEC): Delete support for
1184 RIOS CPUs.
1185 * config/rs6000/aix51.h (ASM_CPU_SPEC): Likewise.
1186 * config/rs6000/driver-rs6000.c (detect_processor_aix,
1187 struct asm_names): Likewise.
1188 * config/rs6000/rios1.md: Delete file.
1189 * config/rs6000/rios2.md: Delete file.
1190 * config/rs6000/rs6000-cpus.def: Delete definitions for RIOS
1191 CPUs.
1192 * config/rs6000/rs6000-opts.h (enum processor_type): Delete
1193 PROCESSOR_RIOS1 and PROCESSOR_RIOS2.
1194 * config/rs6000/rs6000-tables.opt: Regenerated.
1195 * config/rs6000/rs6000.c (struct rios1_cost, struct rios2_cost):
1196 Delete.
1197 (rs6000_option_override_internal): Delete support for RIOS CPUs.
1198 (rs6000_conditional_register_usage): Adjust comment.
1199 (rs6000_issue_rate):Delete support for RIOS CPUs.
1200 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Delete support for
1201 RIOS CPUs.
1202 (PROCESSOR_POWER): Change to PROCESSOR_PPC601.
1203 (PROCESSOR_DEFAULT): Change to PROCESSOR_PPC603.
1204 * config/rs6000/rs6000.md (define_attr "cpu"): Delete rios1
1205 and rios2.
1206 (include "rios1.md", include "rios2.md"): Delete.
1207 (include "601.md"): New.
1208 * config/rs6000/rs6000.opt (enum rs6000_cpu): Default to
1209 PROCESSOR_PPC603.
1210 * config/rs6000/t-aix43 (MULTILIB_MATCHES): Delete support
1211 for RIOS CPUs.
1212 * config/rs6000/t-rs6000 (MD_INCLUDES): Delete rios1.md and
1213 rios2.md . Add 601.md .
1214
e45abe1f
RH
12152012-07-26 Richard Henderson <rth@redhat.com>
1216
1217 * doc/extend.texi (attribute): Document hot/cold for labels.
1218 * predict.c (tree_estimate_probability_bb): Handle hot/cold
1219 attributes on user labels.
1220 * predict.def (PRED_HOT_LABEL, PRED_COLD_LABEL): New.
1221
27ec0502
AJ
12222012-07-26 Andrew Jenner <andrew@codesourcery.com>
1223 Sandra Loosemore <sandra@codesourcery.com>
1224
1225 * cse.c (find_comparison_args): Check for cycles of any length.
1226
e902c266
NC
12272012-07-26 Nick Clifton <nickc@redhat.com>
1228
1229 * config/mn10300/mn10300.c (REG_SAVE_BYTES): Delete.
1230 (mn10300_get_live_callee_saved_regs): If requested return a count
1231 of the number of bytes in the mask.
1232 (mn10300_expand_prologue): Add argument to invocation of
1233 mn10300_get_live_callee_regs.
1234 (mn10300_expand_epilogue): Compute reg_save_bytes by calling
1235 mn10300_get_live_callee_saved_regs.
1236 (mn10300_initial_offset): Likewise.
1237 * config/mn10300/mn10300-protos.h (mn10300_get_live_callee_saved_regs):
1238 Update prototype.
1239 * config/mn10300/mn10300.md (return_ret): Add argument to
1240 invocation of mn10300_get_live_callee_saved_regs.
1241
d38933a0
SB
12422012-07-26 Steven Bosscher <steven@gcc.gnu.org>
1243
1244 PR regression/54084
1245 * sel-sched-ir.c (cmp_v_in_regset_pool): Clarify logic, fix
1246 pointer difference check.
1247
6dd8f4bb
BS
12482012-07-26 Bill Schmidt <wschmidt@linux.ibm.com>
1249
1250 * tree-ssa-loop-ivopts.c (mbc_entry_hash): Remove.
1251 (mbc_entry_eq): Likewise.
1252 (mult_costs): Likewise.
1253 (cost_tables_exist): Likewise.
1254 (initialize_costs): Likewise.
1255 (finalize_costs): Likewise.
1256 (tree_ssa_iv_optimize_init): Remove call to initialize_costs.
1257 (add_regs_cost): Remove.
1258 (multiply_regs_cost): Likewise.
1259 (add_const_cost): Likewise.
1260 (extend_or_trunc_reg_cost): Likewise.
1261 (negate_reg_cost): Likewise.
1262 (struct mbc_entry): Likewise.
1263 (multiply_by_const_cost): Likewise.
1264 (get_address_cost): Change add_regs_cost calls to add_cost lookups;
1265 change multiply_by_const_cost to mult_by_coeff_cost.
1266 (force_expr_to_var_cost): Likewise.
1267 (difference_cost): Change multiply_by_const_cost to mult_by_coeff_cost.
1268 (get_computation_cost_at): Change add_regs_cost calls to add_cost
1269 lookups; change multiply_by_const_cost to mult_by_coeff_cost.
1270 (determine_iv_cost): Change add_regs_cost calls to add_cost lookups.
1271 (tree_ssa_iv_optimize_finalize): Remove call to finalize_costs.
1272 * tree-ssa-address.c (expmed.h): New #include.
1273 (most_expensive_mult_to_index): Change multiply_by_const_cost to
1274 mult_by_coeff_cost.
1275 * gimple-ssa-strength-reduction.c (expmed.h): New #include.
1276 (stmt_cost): Change to use mult_by_coeff_cost, mul_cost, add_cost,
1277 neg_cost, and convert_cost instead of IVOPTS interfaces.
1278 (execute_strength_reduction): Remove calls to initialize_costs and
1279 finalize_costs.
1280 * expmed.c (struct init_expmed_rtl): Add convert rtx_def.
1281 (init_expmed_one_mode): Initialize convert rtx_def; initialize
1282 x_convert_cost for related modes.
1283 (mult_by_coeff_cost): New function.
1284 * expmed.h (NUM_MODE_INT): New #define.
1285 (struct target_expmed): Add x_convert_cost matrix.
1286 (set_convert_cost): New inline function.
1287 (convert_cost): Likewise.
1288 (mult_by_coeff_cost): New extern decl.
1289 * tree-flow.h (initialize_costs): Remove decl.
1290 (finalize_costs): Likewise.
1291 (multiply_by_const_cost): Likewise.
1292 (add_regs_cost): Likewise.
1293 (multiply_regs_cost): Likewise.
1294 (add_const_cost): Likewise.
1295 (extend_or_trunc_reg_cost): Likewise.
1296 (negate_reg_cost): Likewise.
1297 * Makefile.in (gimple-ssa-strength-reduction.o): Update dependencies.
1298 (tree-ssa-address.o): Update dependencies.
1299
0263463d
SB
13002012-07-26 Steven Bosscher <steven@gcc.gnu.org>
1301
1302 * bitmap.h: Add explanation of sparse set as linked-list bitmap.
1303 * sbitmap.h: Add explanation about non-sparse sets as simple bitmap.
1304 (TEST_BIT): Make a static inline function for stronger type checking.
1305 (SET_BIT): Don't handle sbitmaps with popcount.
1306 (RESET_BIT): Likewise.
1307 (SET_BIT_WITH_POPCOUNT): New, like SET_BIT but with popcount.
1308 (RESET_BIT_WITH_POPCOUNT): New, like RESET_BIT but with popcount.
1309 * ebitmap.c (ebitmap_clear_bit): Use SET_BIT_WITH_POPCOUNT and
1310 RESET_BIT_WITH_POPCOUNT on wordmask bitmaps.
1311 (ebitmap_set_bit, ebitmap_and_into, ebitmap_and, ebitmap_ior_into,
1312 ebitmap_and_compl_into, ebitmap_and_compl): Likewise.
1313 * sparseset.h: Add explanation of sparse set representation.
1314
2f33158f
RG
13152012-07-26 Richard Guenther <rguenther@suse.de>
1316
1317 PR tree-optimization/54098
1318 * tree-vrp.c (vrp_visit_phi_node): Iterate once more if the
1319 original range was UNDEFINED.
1320
da7d74c2
RR
13212012-07-26 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1322
1323 * config/arm/neon.ml (ops): Fix regexp for vld1Q_dups64 and
1324 vld1Q_dupu64 tests.
1325
f34ee0b2
OE
13262012-07-26 Oleg Endo <olegendo@gcc.gnu.org>
1327
1328 PR target/51244
1329 * config/sh/sh.opt (mzdcbranch): New option.
1330 * doc/invoke.texi: Document it.
1331 * config/sh/sh.md (negsi_cond): Use TARGET_ZDCBRANCH as condition
1332 instead of TARGET_HARD_SH4.
1333 * config/sh/sh.c (sh_option_override): Set TARGET_ZDCBRANCH as default
1334 for TARGET_HARD_SH4.
1335
d8a48c21
OE
13362012-07-25 Oleg Endo <olegendo@gcc.gnu.org>
1337
1338 PR target/54089
1339 * config/sh/predicates.md (shift_count_operand): Handle not-SHMEDIA
1340 case.
1341 (p27_shift_count_operand, not_p27_shift_count_operand): New predicates.
1342 * config/sh/sh.md (ashlsi3): Remove parallel and T_REG clobber
1343 from expander. Do not emit shift insn for not-SHMEDIA case.
1344 (ashlsi3_std): Replace with ...
1345 (ashlsi3_k, ashlsi3_d): ... these new insns.
1346 * config/sh/sh.c (gen_ashift): Make static. Add sanity checks.
1347 Emit ashlsi3_k insn instead of ashlsi3_std in ASHIFT case.
1348 (gen_ashift_hi): Make static.
1349 * config/sh/sh-protos.h (gen_ashift, gen_ashift_hi): Remove forward
1350 declaration.
1351
b0c724c2
BS
13522012-07-25 Bharathi Seshadri <bseshadr@cisco.com>
1353 Jim Wilson <jimwilso@cisco.com>
1354
1355 * config/arm/bpabi.h (BE8_LINK_SPEC): Set according to
1356 TARGET_BIG_ENDIAN_DEFAULT.
1357
f778c049
EB
13582012-07-25 Eric Botcazou <ebotcazou@adacore.com>
1359
1360 * gimple-low.c (lower_try_catch): New function.
1361 (lower_stmt) <GIMPLE_TRY>: Use it to lower GIMPLE_TRY_CATCH.
1362 <GIMPLE_CATCH>: Delete.
1363 <GIMPLE_EH_FILTER>: Likewise.
1364
ea814c66
EB
13652012-07-25 Eric Botcazou <ebotcazou@adacore.com>
1366
1367 * expr.c (expand_expr_real_1): Do not expand operand #1 and #2
1368 of BIT_FIELD_REF for ignored results.
1369 * fold-const.c (fold_ternary_loc) <BIT_FIELD_REF>: Check that the
1370 CONSTRUCTOR has vector type before using vector accessors on it.
1371 * gimplify.c (gimplify_compound_lval): Do not gimplify operand #1 and
1372 #2 of BIT_FIELD_REF.
1373 (gimplify_expr) <BIT_FIELD_REF>: Likewise.
1374 * tree-nested.c (convert_nonlocal_reference_op) <BIT_FIELD_REF>: Do
1375 not process operand #1 and #2.
1376 (convert_local_reference_op): Likewise.
1377 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Remove superfluous
1378 breaks throughout.
1379 <BIT_FIELD_REF>: Reuse operand #1 and #2 directly.
1380 * tree.c (stabilize_reference) <BIT_FIELD_REF>: Do not stabilize
1381 operand #1 and #2.
1382 (UPDATE_FLAGS): Do not consider operand #2 of BIT_FIELD_REF.
1383 (build6_stat): Delete.
1384 * tree.h (build6_stat, build6, build6_stat_loc, build6_loc): Likewise.
1385
933a2c39
MG
13862012-07-25 Marc Glisse <marc.glisse@inria.fr>
1387
1388 PR tree-optimization/30318
1389 * tree-vrp.c (extract_range_from_binary_expr_1) [PLUS_EXPR]:
1390 Handle __int128.
1391 [MINUS_EXPR]: Merge with PLUS_EXPR.
1392
d45eae79
SL
13932012-07-25 Sandra Loosemore <sandra@codesourcery.com>
1394 Paul Brook <paul@codesourcery.com>
1395
1396 PR target/53633
d45eae79
SL
1397 * target.def (warn_func_return): New hook.
1398 * doc/tm.texi.in (TARGET_WARN_FUNC_RETURN): New hook.
1399 * doc/tm.texi: Regenerate.
1400 * doc/sourcebuild.texi (Effective-Target Keywords): Document
1401 naked_functions.
1402 * ipa-pure-const.c (warn_function_noreturn): Check
1403 targetm.warn_func_return.
1404 * tree-cfg.c (execute_warn_function_return): Likewise.
1405 * config/spu/spu.c (spu_warn_func_return): New.
1406 (TARGET_WARN_FUNC_RETURN): Define.
1407 * config/rx/rx.c (rx_warn_func_return): New.
1408 (TARGET_WARN_FUNC_RETURN): Define.
1409 * config/avr/avr.c (avr_warn_func_return): New.
1410 (TARGET_WARN_FUNC_RETURN): Define.
1411 * config/arm/arm.c (arm_warn_func_return): New.
1412 (TARGET_WARN_FUNC_RETURN): Define.
1413 * config/mcore/mcore.c (mcore_warn_func_return): New.
1414 (TARGET_WARN_FUNC_RETURN): Define.
1415 (saved_warn_return_type, saved_warn_return_type_count): Remove.
1416 (mcore_reorg, mcore_handle_naked_attribute): Remove warn_return hack.
1417
d1658619
SP
14182012-07-25 Siddhesh Poyarekar <siddhesh@redhat.com>
1419
1420 * final.c [ASSEMBLER_DIALECT](do_assembler_dialects): New
1421 function to implement assembler dialects.
1422 (output_asm_insn): Use do_assembler_dialects.
1423 (asm_fprintf): Likewise.
1424
5714c34f
RH
14252012-07-25 Richard Henderson <rth@redhat.com>
1426
1427 PR bootstrap/54092
1428 * libfuncs.h: Don't include optabs.h.
1429 (struct libfunc_entry): Use "int" for op, mode1, mode2 members.
1430 * optabs.c (hash_libfunc): Don't cast members to int.
1431 * Makefile.in (LIBFUNCS_H): Don't include OPTABS_H.
1432
229ecb89
DS
14332012-07-25 Dodji Seketeli <dodji@redhat.com>
1434
1435 * basic-block.c: Fix typo in comment.
1436
e61c94dd
KY
14372012-07-25 Kirill Yukhin <kirill.yukhin@intel.com>
1438 Michael Zolotukhin <michael.v.zolotukhin@intel.com>
1439
f2962e2d
OE
1440 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PRFCHW_SET): New.
1441 (OPTION_MASK_ISA_PRFCHW_UNSET): Likewise.
1442 (ix86_handle_option): Handle mprfchw option.
1443 * config.gcc (i[34567]86-*-*): Add prfchwintrin.h.
1444 (x86_64-*-*): Likewise.
1445 * config/i386/prfchwintrin.h: New header.
1446 * config/i386/cpuid.h (bit_PRFCHW): New.
1447 (bit_BMI): Formatting fix.
1448 (bit_HLE): Likewise.
1449 (bit_RTM): Likewise.
1450 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
1451 PREFETCHW support.
1452 * config/i386/i386-c.c: Define __PRFCHW__ if needed.
1453 * config/i386/i386.c (ix86_target_string): Define
1454 -mprfchw option. Formatting fixes.
1455 (PTA_HLE): Formatting fix.
1456 (PTA_PRFCHW): New.
1457 (ix86_option_override_internal): Handle new option.
1458 (ix86_valid_target_attribute_inner_p): Add OPT_mprfchw.
1459 * config/i386/i386.h (TARGET_PRFCHW): New.
1460 * config/i386/i386.md (prefetch): Enable for TARGET_PRFCHW.
1461 * config/i386/i386.opt (mprfchw): New.
1462 * config/i386/mm3dnow.h: Move _m_prefetchw from here to prfchwintrin.h.
1463 * config/i386/x86intrin.h: Include prfchwintrin.h.
e61c94dd 1464
4bd5abca
SM
14652012-07-25 Sergey Melnikov <sergey.melnikov@intel.com>
1466
1467 * config/i386/i386.md (stack_protect_set): Disable the pattern
1468 for Android since Android libc (bionic) does not provide random
1469 value for stack protection guard at gs:0x14. Guard value
1470 will be provided from external symbol (default implementation).
1471 (stack_protect_set_<mode>): Likewise.
1472 (stack_protect_test): Likewise.
1473 (stack_protect_test_<mode>): Likewise.
1474 * gcc/defaults.h: Define macro TARGET_HAS_BIONIC to 0 - target does
1475 not have Bionic by default
1476 * config/linux.h: Redefine macro TARGET_HAS_BIONIC to (OPTION_BIONIC)
1477 Macro OPTION_BIONIC is defined in this file and provides Bionic
1478 accessibility status
1479
3e31cf28
SB
14802012-07-25 Steven Bosscher <steven@gcc.gnu.org>
1481
1482 * gimple-pretty-print.c (gimple_dump_bb_buff): Call pp_flush.
1483
14842012-07-25 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
1485
e32bfc16
VK
1486 btver2 Enablement
1487 * config.gcc (i[34567]86-*-linux* | ...): Add btver2.
1488 (case ${target}): Add btver2.
1489 * config/i386/driver-i386.c (host_detect_local_cpu): Let
1490 -march=native recognize btver2 processors.
1491 * config/i386/i386-c.c (ix86_target_macros_internal): Add
1492 btver2 def_and_undef
1493 * config/i386/i386.c (struct processor_costs btver2_cost): New
1494 btver2 cost table.
1495 (m_BTVER2): New definition.
1496 (m_AMD_MULTIPLE): Includes m_BTVER2.
1497 (initial_ix86_tune_features): Add btver2 tune.
1498 (processor_target_table): Add btver2 entry.
1499 (static const char *const cpu_names): Add btver2 entry.
1500 (software_prefetching_beneficial_p): Add btver2.
1501 (ix86_option_override_internal): Add btver2 instruction sets.
1502 (ix86_issue_rate): Add btver2.
1503 (ix86_adjust_cost): Add btver2.
1504 * config/i386/i386.h (TARGET_BTVER2): New definition.
1505 (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver2.
1506 (enum processor_type): Add PROCESSOR_BTVER2.
1507 * config/i386/i386.md (define_attr "cpu"): Add btver2.
1508
92345349
BS
15092012-07-24 Bill Schmidt <wschmidt@linux.ibm.com>
1510
1511 * doc/tm.texi: Regenerate.
1512 * targhooks.c (default_init_cost): Add prologue and epilogue costs.
1513 (default_add_stmt_cost): Likewise; also handle NULL stmt_info.
1514 (default_finish_cost): Add prologue and epilogue costs.
1515 * targhooks.h (default_add_stmt_cost): Change parameter list.
1516 (default_finish_cost): Likewise.
1517 * target.def (init_cost): Change documentation string.
1518 (add_stmt_cost): Change documentation string and parameter list.
1519 (finish_cost): Likewise.
1520 * target.h (vect_cost_model_location): New enum.
1521 * tree-vectorizer.h (struct _slp_tree): Remove cost substruct.
1522 (struct _slp_instance): Remove cost substruct; rename stmt_cost_vec
1523 to body_cost_vec.
1524 (SLP_INSTANCE_OUTSIDE_OF_LOOP_COST): Remove.
1525 (SLP_INSTANCE_STMT_COST_VEC): Rename to SLP_INSTANCE_BODY_COST_VEC.
1526 (SLP_TREE_OUTSIDE_OF_LOOP_COST): Remove.
1527 (struct _vect_peel_extended_info): Rename stmt_cost_vec to
1528 body_cost_vec.
1529 (struct _stmt_vec_info): Remove cost substruct.
1530 (STMT_VINFO_OUTSIDE_OF_LOOP_COST): Remove.
1531 (stmt_vinfo_set_outside_of_loop_cost): Remove.
1532 (builtin_vectorization_cost): New function.
1533 (vect_get_stmt_cost): Change to use builtin_vectorization_cost.
1534 (add_stmt_cost): Change parameter list.
1535 (finish_cost): Likewise.
1536 (vect_model_simple_cost): Likewise.
1537 (vect_model_store_cost): Likewise.
1538 (vect_model_load_cost): Likewise.
1539 (record_stmt_cost): Likewise.
1540 (vect_get_load_cost): Likewise.
1541 (vect_get_known_peeling_cost): Likewise.
1542 * tree-vect-loop.c (vect_get_known_peeling_cost): Change parameter
1543 list; call record_stmt_cost for prologue and epilogue costs.
1544 (vect_estimate_min_profitable_iters): Call add_stmt_cost for
1545 prologue and epilogue costs; remove computation of vec_outside_cost;
1546 return vec_prologue_cost and vec_epilogue_cost from finish_cost.
1547 (vect_model_reduction_cost): Revise call to add_stmt_cost for body
1548 costs; call add_stmt_cost for prologue and epilogue costs.
1549 (vect_model_induction_cost): Revise call to add_stmt_cost for body
1550 costs; call add_stmt_cost for prologue costs.
1551 * tree-vect-data-refs.c (vect_get_data_access_cost): Change parameter
1552 list for function and arguments for calls to vect_get_load_cost and
1553 vect_get_store_cost.
1554 (vect_peeling_hash_get_lowest_cost): Change argument list for calls to
1555 vect_get_data_access_cost and vect_get_known_peeling_cost; use
1556 temporary vectors prologue_cost_vec and epilogue_cost_vec for the
1557 latter call and discard their results; rename stmt_cost_vec to
1558 body_cost_vec; correct possible storage leak for body_cost_vec.
1559 (vect_peeling_hash_choose_best_peeling): Rename stmt_cost_vec to
1560 body_cost_vec.
1561 (vect_enhance_data_refs_alignment): Rename stmt_cost_vec to
1562 body_cost_vec; add extra dummy parameter on calls to
1563 vect_get_data_access_cost; tolerate null si->stmt; add vect_body to
1564 argument list on call to add_stmt_cost.
1565 * tree-vect-stmts.c (record_stmt_cost): Change parameter list;
1566 rename stmt_cost_vec to body_cost_vec; tolerate null stmt_info; call
1567 builtin_vectorization_cost; add "where" parameter on call to
1568 add_stmt_cost.
1569 (vect_model_simple_cost): Change parameter list; call record_stmt_cost
1570 for prologue costs; remove call to stmt_vinfo_set_outside_of_loop_cost;
1571 rename stmt_cost_vec to body_cost_vec.
1572 (vect_model_promotion_demotion_cost): Add vect_body argument to call
1573 to add_stmt_cost; call add_stmt_cost for prologue costs; remove call
1574 to stmt_vinfo_set_outside_of_loop_cost.
1575 (vect_model_store_cost): Change parameter list; call record_stmt_cost
1576 for prologue costs; add vect_body argument to call to record_stmt_cost;
1577 rename stmt_cost_vec to body_cost_vec; remove call to
1578 stmt_vinfo_set_outside_of_loop_cost.
1579 (vect_get_store_cost): Rename stmt_cost_vec to body_cost_vec; add
1580 vect_body argument to calls to record_stmt_cost.
1581 (vect_model_load_cost): Change parameter list; rename stmt_cost_vec to
1582 body_cost_vec; add vect_body argument to calls to record_stmt_cost;
1583 remove call to stmt_vinfo_set_outside_of_loop_cost.
1584 (vect_get_load_cost): Change parameter list; rename stmt_cost_vec to
1585 body_cost_vec; add vect_body argument to calls to record_stmt_cost;
1586 call record_stmt_cost for prologue costs.
1587 (vectorizable_store): Change argument list for call to
1588 vect_model_store_cost.
1589 (vectorizable_load): Change argument list for call to
1590 vect_model_load_cost.
1591 (new_stmt_vec_info): Remove assignment to
1592 STMT_VINFO_OUTSIDE_OF_LOOP_COST.
1593 * config/spu/spu.c (spu_init_cost): Add prologue and epilogue costs.
1594 (spu_add_stmt_cost): Likewise; also handle NULL stmt_info.
1595 (spu_finish_cost): Add prologue and epilogue costs.
1596 * config/i386/i386.c (i386_init_cost): Add prologue and epilogue costs.
1597 (i386_add_stmt_cost): Likewise; also handle NULL stmt_info.
1598 (i386_finish_cost): Add prologue and epilogue costs.
1599 * config/rs6000/rs6000.c (rs6000_init_cost): Add prologue and epilogue
1600 costs.
1601 (rs6000_add_stmt_cost): Likewise; also handle NULL stmt_info.
1602 (rs6000_finish_cost): Add prologue and epilogue costs.
1603 * tree-vect-slp.c (vect_free_slp_instance): Rename
1604 SLP_INSTANCE_STMT_COST_VEC to SLP_INSTANCE_BODY_COST_VEC.
1605 (vect_create_new_slp_node): Remove assignment to
1606 SLP_TREE_OUTSIDE_OF_LOOP_COST.
1607 (vect_get_and_check_slp_defs): Change parameter list; change argument
1608 lists to calls to vect_model_store_cost and vect_model_simple_cost.
1609 (vect_build_slp_tree): Change parameter list; change argument lists
1610 to calls to vect_model_load_cost, vect_get_and_check_slp_defs, and
1611 recursive self-calls; remove setting of outside_cost from
1612 SLP_TREE_OUTSIDE_OF_LOOP_COST; add vect_body argument to call to
1613 record_stmt_cost.
1614 (vect_analyze_slp_instance): Rename stmt_cost_vec to body_cost_vec;
1615 rename SLP_INSTANCE_STMT_COST_VEC to SLP_INSTANCE_BODY_COST_VEC;
1616 remove assignment to SLP_INSTANCE_OUTSIDE_OF_LOOP_COST; record SLP
1617 prologue costs.
1618 (vect_bb_vectorization_profitable_p): Rename stmt_cost_vec to
1619 body_cost_vec; handle null ci->stmt; add vect_body argument to call
1620 to add_stmt_cost; simplify calls to targetm.vectorize.
1621 builtin_vectorization_cost; return vec_prologue_cost and
1622 vec_epilogue_cost from finish_cost.
1623 (vect_update_slp_costs_according_to_vf): Rename stmt_cost_vec to
1624 body_cost_vec; add vect_body argument to call to add_stmt_cost.
1625
5e4aec98
RH
16262012-07-24 Richard Henderson <rth@redhat.com>
1627
1628 * system.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Poison.
1629 * config/cris/cris.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
1630 * config/h8300/h8300.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
1631 * config/mn10300/mn10300.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
1632 * config/rs6000/rs6000.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove
1633 comment reference.
1634 * config/v850/v850.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
1635 * config/v850/v850.md (fixuns_truncsfsi2, fixuns_truncdfsi2): New.
1636 (fix_truncsfsi2, fix_truncdfsi2): Avoid double FIX.
1637 * config/vax/vax.h (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
1638 * config/vax/vax.md (fixuns_trunc<VAXfp><VAXint>): New.
1639 * doc/tm.texi.in (FIXUNS_TRUNC_LIKE_FIX_TRUNC): Remove.
1640 * doc/tm.texi: Rebuild.
1641
cd1440b1
RH
16422012-07-24 Richard Henderson <rth@redhat.com>
1643
1644 * optabs.def: New file.
1645 * Makefile.in (OPTABS_H): Add insn-opinit.h.
1646 (MOSTLYCLEANFILES): Likewise.
1647 (insn-opinit.o): Remove reload.h
1648 (simple_rtl_generated_c): Remove insn-opinit.c.
1649 (s-opinit): New rule.
1650 (build/genopinit.o): Add optabs.def.
1651 * genopinit.c (rtx_upname): New.
1652 (optabs): Extract to optabs.def
1653 (enum optab_tag, struct optab_def_d, optabs): New.
1654 (struct pattern_d, patterns): New.
1655 (match_pattern): Split out from ...
1656 (gen_insn): ... here. Push matches on patterns vec.
1657 (pattern_cmp, optab_kind_cmp, optab_rcode_cmp): New.
1658 (header_file_name, source_file_name, handle_arg): New.
1659 (open_outfile): New.
1660 (main): Sort and emit new tables. Generate lookup_handler,
1661 raw_optab_handler, swap_optab_enable.
1662 * libfuncs.h (libfunc_entry): Change "size_t optab" to "optab op".
1663 * optabs.c (code_to_optab_): Remove.
1664 (hash_libfunc): Update for optab name change.
1665 (eq_libfunc): Likewise.
1666 (convert_optab_libfunc): Update computation of optab member;
1667 use the new convlib_def table.
1668 (optab_libfunc): Similarly.
1669 (set_optab_libfunc, set_conv_libfunc): Likewise.
1670 (sign_expand_binop): Use swap_optab_enable instead of fake optabs.
1671 (init_insn_codes, init_optab, init_optabv, init_convert_optab): Remove.
1672 (init_optabs): Don't call them; export the data to optabs.def.
1673 (gen_int_libfunc, gen_fp_libfunc): Export non-static.
1674 (gen_fixed_libfunc, gen_signed_fixed_libfunc): Likewise.
1675 (gen_unsigned_fixed_libfunc, gen_int_fp_libfunc): Likewise.
1676 (gen_intv_fp_libfunc, gen_int_fp_fixed_libfunc): Likewise.
1677 (gen_int_fp_signed_fixed_libfunc, gen_int_fixed_libfunc): Likewise.
1678 (gen_int_signed_fixed_libfunc): Likewise.
1679 (gen_int_unsigned_fixed_libfunc): Likewise.
1680 (gen_interclass_conv_libfunc, gen_int_to_fp_conv_libfunc): Likewise.
1681 (gen_ufloat_conv_libfunc): Likewise.
1682 (gen_int_to_fp_nondecimal_conv_libfunc): Likewise.
1683 (gen_fp_to_int_conv_libfunc, gen_intraclass_conv_libfunc): Likewise.
1684 (gen_trunc_conv_libfunc, gen_extend_conv_libfunc): Likewise.
1685 (gen_fract_conv_libfunc, gen_fractuns_conv_libfunc): Likewise.
1686 (gen_satfract_conv_libfunc, gen_satfractuns_conv_libfunc): Likewise.
1687 (debug_optab_libfuncs): Update for optab representation change.
1688 * optabs.h: Include insn-opinit.h.
1689 (optab, convert_optab, direct_optab): New typedefs.
1690 (struct optab_handlers, struct widening_optab_handlers): Remove.
1691 (struct optab_libcall_d): Rename from optab_d; remove code_,
1692 handlers, widening members.
1693 (struct convert_optab_libcall_d): Rename from convert_optab_d;
1694 remove code_ and handlers members.
1695 (enum optab_index, enum convert_optab_index): Remove.
1696 (enum direct_optab_index): Remove.
1697 (code_to_optab_): Fix array range.
1698 (optab_to_code): Covert to inline function.
1699 (optab_to_code_, convlib_def, normlib_def): Declare.
1700 (raw_optab_handler, swap_optab_enable): Declare.
1701 (unknown_optab): Remove; export to optabs.def
1702 (ssadd_optab, usadd_optab, sssub_optab, ussub_optab, ssmul_optab,
1703 usmul_optab, ssdiv_optab, usdiv_optab, ssneg_optab, usneg_optab,
1704 ssashl_optab, usashl_optab, add_optab, sub_optab, smul_optab,
1705 addv_optab, subv_optab, smul_highpart_optab, umul_highpart_optab,
1706 smul_widen_optab, umul_widen_optab, usmul_widen_optab,
1707 smadd_widen_optab, umadd_widen_optab, ssmadd_widen_optab,
1708 usmadd_widen_optab, smsub_widen_optab, umsub_widen_optab,
1709 ssmsub_widen_optab, usmsub_widen_optab, sdiv_optab, smulv_optab,
1710 sdivv_optab, sdivmod_optab, udiv_optab, udivmod_optab, smod_optab,
1711 umod_optab, fmod_optab, remainder_optab, ftrunc_optab, and_optab,
1712 ior_optab, xor_optab, ashl_optab, lshr_optab, ashr_optab, rotl_optab,
1713 rotr_optab, vashl_optab, vlshr_optab, vashr_optab, vrotl_optab,
1714 vrotr_optab, smin_optab, smax_optab, umin_optab, umax_optab, pow_optab,
1715 atan2_optab, fma_optab, fms_optab, fnma_optab, fnms_optab, mov_optab,
1716 movstrict_optab, movmisalign_optab, storent_optab, neg_optab,
1717 negv_optab, abs_optab, absv_optab, one_cmpl_optab, bswap_optab,
1718 ffs_optab, clz_optab, ctz_optab, clrsb_optab, popcount_optab,
1719 parity_optab, sqrt_optab, sincos_optab, sin_optab, asin_optab,
1720 cos_optab, acos_optab, exp_optab, exp10_optab, exp2_optab, expm1_optab,
1721 ldexp_optab, scalb_optab, significand_optab, logb_optab, ilogb_optab,
1722 log_optab, log10_optab, log2_optab, log1p_optab, floor_optab,
1723 ceil_optab, btrunc_optab, round_optab, nearbyint_optab, rint_optab,
1724 tan_optab, atan_optab, copysign_optab, signbit_optab, isinf_optab,
1725 cmp_optab, ucmp_optab, eq_optab, ne_optab, gt_optab, ge_optab,
1726 lt_optab, le_optab, unord_optab, strlen_optab, cbranch_optab,
1727 cmov_optab, cstore_optab, ctrap_optab, push_optab, addcc_optab,
1728 reduc_smax_optab, reduc_umax_optab, reduc_smin_optab, reduc_umin_optab,
1729 reduc_splus_optab, reduc_uplus_optab, ssum_widen_optab,
1730 usum_widen_optab, sdot_prod_optab, udot_prod_optab, vec_set_optab,
1731 vec_extract_optab, vec_init_optab, vec_shl_optab, vec_shr_optab,
1732 vec_realign_load_optab, vec_widen_umult_hi_optab,
1733 vec_widen_umult_lo_optab, vec_widen_smult_hi_optab,
1734 vec_widen_smult_lo_optab, vec_widen_umult_even_optab,
1735 vec_widen_umult_odd_optab, vec_widen_smult_even_optab,
1736 vec_widen_smult_odd_optab, vec_widen_ushiftl_hi_optab,
1737 vec_widen_ushiftl_lo_optab, vec_widen_sshiftl_hi_optab,
1738 vec_widen_sshiftl_lo_optab, vec_unpacks_hi_optab, vec_unpacks_lo_optab,
1739 vec_unpacku_hi_optab, vec_unpacku_lo_optab, vec_unpacks_float_hi_optab,
1740 vec_unpacks_float_lo_optab, vec_unpacku_float_hi_optab,
1741 vec_unpacku_float_lo_optab, vec_pack_trunc_optab, vec_pack_ssat_optab,
1742 vec_pack_usat_optab, vec_pack_sfix_trunc_optab,
1743 vec_pack_ufix_trunc_optab, powi_optab, sync_compare_and_swap_optab,
1744 sync_lock_test_and_set_optab, sync_old_add_optab, sync_old_sub_optab,
1745 sync_old_ior_optab, sync_old_and_optab, sync_old_xor_optab,
1746 sync_old_nand_optab, sync_new_add_optab, sync_new_sub_optab,
1747 sync_new_ior_optab, sync_new_and_optab, sync_new_xor_optab,
1748 sync_new_nand_optab, sext_optab, zext_optab, trunc_optab, sfix_optab,
1749 ufix_optab, sfixtrunc_optab, ufixtrunc_optab, sfloat_optab,
1750 ufloat_optab, lrint_optab, lround_optab, lfloor_optab, lceil_optab,
1751 fract_optab, fractuns_optab, satfract_optab, satfractuns_optab,
1752 vec_load_lanes_optab, vec_store_lanes_optab, vcond_optab, vcondu_optab,
1753 movcc_optab, reload_in_optab, reload_out_optab, movmem_optab,
1754 setmem_optab, cmpstr_optab, cmpstrn_optab, cmpmem_optab,
1755 sync_lock_release_optab, sync_add_optab, sync_sub_optab,
1756 sync_ior_optab, sync_and_optab, sync_xor_optab, sync_nand_optab,
1757 atomic_exchange_optab, atomic_compare_and_swap_optab,
1758 atomic_load_optab, atomic_store_optab, atomic_add_fetch_optab,
1759 atomic_sub_fetch_optab, atomic_and_fetch_optab,
1760 atomic_nand_fetch_optab, atomic_xor_fetch_optab, atomic_or_fetch_optab,
1761 atomic_fetch_add_optab, atomic_fetch_sub_optab, atomic_fetch_and_optab,
1762 atomic_fetch_nand_optab, atomic_fetch_xor_optab, atomic_fetch_or_optab,
1763 atomic_add_optab, atomic_sub_optab, atomic_and_optab,
1764 atomic_nand_optab, atomic_xor_optab, atomic_or_optab,
1765 atomic_always_lock_free_optab, atomic_is_lock_free_optab,
1766 atomic_thread_fence_optab, atomic_signal_fence_optab,
1767 vec_perm_optab, vec_perm_const_optab): Likewise.
1768 (struct target_optabs): Remove x_optab_table, x_convert_optab_table,
1769 and x_direct_optab_table members; add pat_enable.
1770 (optab_table, convert_optab_table, direct_optab_table): Remove.
1771 (optab_handler): Use raw_optab_handler.
1772 (widening_optab_handler, convert_optab_handler): Likewise.
1773 (set_optab_handler, set_widening_optab_handler): Remove.
1774 (set_convert_optab_handler, set_direct_optab_handler): Remove.
1775 (direct_optab_handler): Defer to optab_handler.
1776 * rtl.h (NON_GENERATOR_NUM_RTX_CODE): New.
1777
4cdf5307
JM
17782012-07-24 Jason Merrill <jason@redhat.com>
1779
1780 * bitmap.c (bitmap_descriptor): Adjust order of parameters to
1781 match MEM_STAT_DECL.
1782 * statistics.h (ALONE_FINAL_MEM_STAT_DECL): Correct typo.
1783
2225b9f2
RH
17842012-07-24 Richard Henderson <rth@redhat.com>
1785
19b5fafb
RH
1786 * optabs.h (struct optab_d): Rename code member to code_.
1787 (struct convert_optab_h): Likewise.
1788 (code_to_optab_): Rename from code_to_optab.
1789 (code_to_optab, optab_to_code): New.
1790 * dojump.c (do_compare_rtx_and_jump): Use code_to_optab.
1791 * ifcvt.c (noce_emit_move_insn): Likewise.
1792 * optabs.c (simplify_expand_binop): Use optab_to_code.
1793 (expand_simple_binop, shift_optab_p, commutative_optab_p): Likewise.
1794 (avoid_expensive_constant, expand_binop_directly): Likewise.
1795 (expand_binop, expand_simple_unop, expand_unop_direct): Likewise.
1796 (expand_unop, prepare_float_lib_cmp, expand_fixed_convert): Likewise.
1797 (have_insn_for, debug_optab_libfuncs): Likewise.
1798 (init_optab, init_optabv, init_convert_optab): Update for optab
1799 member name change.
1800
723cd7ab
RH
1801 * libfuncs.h: Include optabs.h.
1802 * dwarf2out.c, lto-streamer.in.c: Don't include libfuncs.h.
1803 * Makefile.in (LIBFUNCS_H): Add OPTABS_H.
1804 (lto-streamer-in.o, dwarf2out.o): Update deps.
1805
2225b9f2
RH
1806 * optabs.h (unknown_optab): New.
1807 * builtins.c (interclass_mathfn_icode): Use it.
1808 * dojump.c (do_compare_rtx_and_jump): Likewise.
1809 * optabs.c (optab_for_tree_code, expand_binop): Likewise.
1810 * tree-vect-generic.c (add_rshift, expand_vector_divmod): Likewise.
1811 (expand_vector_operations_1): Likewise.
1812 * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
1813 * tree-vect-stmts.c (supportable_narrowing_operation): Likewise.
1814
e040476c
SB
18152012-07-24 Steven Bosscher <steven@gcc.gnu.org>
1816
1817 * alloc-pool.c (create_alloc_pool): Fix ENABLE_CHECKING check.
1818
9594fe5e
RR
18192012-07-24 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
1820
1821 PR target/54051
1822 * config/arm/arm.c (arm_print_operand_address): Remove superfluous
1823 printing of 0.
1824 * config/arm/neon.md ("neon_vld3_lane<mode>":VD): Remove alignment
1825 specifier.
1826 ("neon_vld3_lane<mode>":VMQ): Likewise.
1827 ("neon_vld3_dup<mode>":VDX): Likewise.
1828 ("neon_vst3_lane<mode>":VD): Likewise.
1829 ("neon_vst3_lane<mode>":VMQ): Likewise.
1830
e2a6dd68
RM
18312012-07-24 Roland McGrath <mcgrathr@google.com>
1832
9594fe5e 1833 * arm.c (arm_get_frame_offsets): Don't use fixed regs for
e2a6dd68
RM
1834 stack alignment padding.
1835
9fecd005
UB
18362012-07-24 Uros Bizjak <ubizjak@gmail.com>
1837
1838 PR target/53961
1839 * config/i386/i386.c (ix86_legitimate_address_p): Move check for
658e8eba 1840 negative constant address for TARGET_X32 ...
9fecd005
UB
1841 (ix86_decompose_address): ... here. Reject constant addresses
1842 that don't satisfy x86_64_immediate_operand predicate.
1843
552b56fc
JB
18442012-07-24 Julian Brown <julian@codesourcery.com>
1845
9fecd005 1846 * doc/sourcebuild.texi (arm_hf_eabi): Document effective-target check.
552b56fc 1847
7aa6d18a
SB
18482012-07-24 Steven Bosscher <steven@gcc.gnu.org>
1849
1850 * sbitmap.h (SBITMAP_ELT_BITS): Use "1u" trick as for BITMAP_WORD_BITS.
1851 Move test to check that there is a popcount function for the the number
1852 of bits in SBITMAP_ELT_BITS to sbitmap.c.
1853 * sbitmap.c: Test SBITMAP_ELT_BITS, not HOST_BITS_PER_WIDEST_FAST_INT.
1854 MEM_STAT_INFO): Define in terms of their ALONE counterparts.
1855
1856 * configure.ac (GATHER_STATISTICS): Always define, non-zero if enabled.
1857 * configure: Regenerate.
1858 * statistics.h (GATHER_STATISTICS): Error out if it is not defined.
1859 (GCC_MEM_STAT_ARGUMENTS): New define.
1860 (ALONE_MEM_STAT_DECL): Define in terms of GCC_MEM_STAT_ARGUMENTS.
1861 (ALONE_FINAL_MEM_STAT_DECL, ALONE_FINAL_PASS_MEM_STAT): New defines.
9fecd005
UB
1862 (MEM_STAT_DECL, FINAL_MEM_STAT_DECL, PASS_MEM_STAT,
1863 FINAL_PASS_MEM_STAT): Define.
7aa6d18a
SB
1864 * ggc-internal.h (ggc_record_overhead): Use FINAL_MEM_STAT_DECL.
1865 * ggc.h (ggc_record_overhead, ggc_free_overhead,
1866 ggc_prune_overhead_list): Remove internal prototypes, they are defined
1867 already in ggc-internal.h.
1868 * ggc-common.c (struct loc_descriptor): Remove #ifdef GATHER_STATISTICS
1869 wrappers.
1870 (add_statistics): Likewise.
9fecd005 1871 (dump_ggc_loc_statistics): Likewise. Return if GATHER_STATISTICS is 0.
7aa6d18a
SB
1872 * ggc-zone.c (struct page_entry): Remove #ifdef GATHER_STATISTICS
1873 wrappers around "survived" and "stats" members.
1874 (alloc_large_page): Always initialize survived.
1875 (ggc_internal_alloc_zone_stat): Likewise.
1876 Remove #ifdef GATHER_STATISTICS wrappers. Record overhead if
1877 GATHER_STATISTICS is non-0.
1878 (ggc_free): Convert #ifdef GATHER_STATISTICS to if-code.
1879 (sweep_pages): Always increase survived.
1880 (ggc_collect_1): Convert #ifdef GATHER_STATISTICS to if-code.
1881 (calculate_average_page_survival): Always define.
1882 (ggc_collect): Convert #ifdef GATHER_STATISTICS to if-code.
1883 (ggc_print_statistics): Likewise.
1884 (ggc_pch_read): Likewise.
1885 * ggc-page.c (struct globals): Always define "stats" member.
1886 (ggc_internal_alloc_stat): Convert #ifdef GATHER_STATISTICS to if-code.
1887 (ggc_free): Likewise.
1888 (ggc_collec): Likewise.
1889 (ggc_print_statistics): Likewise.
1890 * bitmap.h (struct bitmap_head_def): Always define "desc" member.
1891 (bitmap_initialize_stat): Convert #ifdef GATHER_STATISTICS to if-code.
1892 * gimple.h (enum gimple_alloc_kind): Always define.
1893 (gimple_alloc_kind): Likewise.
1894 * tree-flow.h (phinodes_print_statistics): Always define.
1895 (ssanames_print_statistics): Likewise.
1896 * vec.h (vec_heap_free): Always define.
1897 (VEC_stack_alloc): Define if GATHER_STATISTICS is non-0.
1898 * alloc-pool.c (alloc_pool_descriptor): Always define.
1899 (create_alloc_pool): Convert #ifdef GATHER_STATISTICS to if-code.
1900 (empty_alloc_pool): Likewise.
1901 (pool_alloc): Likewise.
1902 (pool_free): Likewise.
1903 (dump_alloc_pool_statistics): Likewise.
1904 (print_statistics): Always define.
1905 * bitmap.c (struct bitmap_descriptor): Always define.
1906 (bitmap_register): Pass ALONE_FINAL_PASS_MEM_STAT.
1907 (register_overhead): Always define.
1908 (bitmap_element_free): Convert #ifdef GATHER_STATISTICS to if-code.
1909 (bitmap_element_allocate): Likewise.
1910 (bitmap_elt_clear_from): Likewise.
1911 (bitmap_obstack_alloc_stat): Likewise.
1912 (bitmap_gc_alloc_stat): Likewise.
1913 (bitmap_obstack_free): Likewise.
1914 (bitmap_find_bit): Likewise.
1915 (bitmap_ior_and_into): Likewise.
1916 (bitmap_print): Likewise.
1917 (dump_bitmap_statistics): Likewise. Return if GATHER_STATISTICS is 0.
1918 * gimple.c (gimple_alloc_counts, gimple_alloc_sizes): Always define.
1919 (gimple_alloc_kind_names): Likewise.
1920 (gimple_alloc_stat): Convert #ifdef GATHER_STATISTICS to if-code.
1921 (dump_gimple_statistics): Likewise. Return if GATHER_STATISTICS is 0.
1922 * rtl.c (rtx_alloc_counts, rtx_alloc_sizes, rtvec_alloc_counts,
1923 rtvec_alloc_sizes): Always define.
1924 (rvec_alloc): Convert #ifdef GATHER_STATISTICS to if-code.
1925 (rtx_alloc_stat): Likewise.
1926 (dump_rtx_statistics): Likewise. Return if GATHER_STATISTICS is 0.
1927 * tree.c (_obstack_allocated_p, tree_code_counts, tree_node_counts,
1928 tree_node_sizes, tree_node_kind_names): Always define.
1929 (record_node_allocation_statistics): Convert #ifdef GATHER_STATISTICS
1930 to if-code.
1931 (type_hash_canon): Likewise.
1932 (dump_tree_statistics): Likewise.
1933 * tree-ssanames.c (ssa_name_nodes_reused, ssa_name_nodes_created):
1934 Always define.
1935 (ssanames_print_statistics): Likewise.
1936 (make_ssa_name_fn): Convert #ifdef GATHER_STATISTICS to if-code.
1937 * tree-phinodes.c (phi_nodes_reused, phi_nodes_created): Always define.
1938 (phinodes_print_statistics): Likewise.
1939 (allocate_phi_node): Convert #ifdef GATHER_STATISTICS to if-code.
1940 * vec.c (struct vec_descriptor): Always define.
1941 (hash_descriptor, eq_descriptor, ptr_hash_entry, hash_ptr, eq_ptr,
1942 vec_descriptor, rester_overhead, free_overhead): Likewise.
1943 (cmp_statistic): Likewise.
1944 (vec_heap_free): Convert #ifdef GATHER_STATISTICS to if-code.
1945 (vec_heap_o_reserve_1): Likewise.
1946 (dump_vec_loc_statistics): Likewise.
1947
38ad2d07
RG
19482012-07-24 Richard Guenther <rguenther@suse.de>
1949
1950 PR tree-optimization/53616
1951 * tree-loop-distribution.c (ldist_gen): Do not change
1952 partition ordering when merging partitions.
1953
d32d6b75
AM
19542012-07-24 Alan Modra <amodra@gmail.com>
1955
1956 PR target/53914
1957 PR target/54009
1958 * config/rs6000/constraints.md (Y): Use mem_operand_gpr.
1959 * config/rs6000/predicates.md (word_offset_memref_operand): Delete.
1960 Adjust all rs6000_legitimate_offset_address_p calls.
1961 * config/rs6000/rs6000-protos.h (mem_operand_gpr): Declare.
1962 (rs6000_secondary_reload_gpr): Declare.
1963 (rs6000_legitimate_offset_address_p): Update prototype.
1964 (rs6000_offsettable_memref_p): Delete.
1965 (rs6000_secondary_reload_ppc64): Delete.
1966 * config/rs6000/rs6000.c (address_offset): New function.
1967 (mem_operand_gpr): Likewise.
1968 (rs6000_legitimate_offset_address_p): Add worst_case param. When
1969 not worst_case assume class of regs with least restrictive offsets.
1970 Adjust all calls.
1971 (legitimate_lo_sum_address_p): Simplify register mode tests.
1972 (rs6000_legitimize_address): Likewise. Assume best case offset
1973 addressing. Combine ELF and MACHO lo_sum code.
1974 (rs6000_mode_dependent_address): Correct offset addressing limits.
1975 (rs6000_offsettable_memref_p): Make static, add reg_mode param.
1976 Use reg_mode to help rs6000_legitimate_offset_address_p.
1977 (rs6000_secondary_reload): Use address_offset. Handle 32-bit multi
1978 gpr load/store when offset too large.
1979 (rs6000_secondary_reload_gpr): Renamed rs6000_secondary_reload_ppc64.
1980 (rs6000_split_multireg_move): Adjust rs6000_offsettable_memref_p calls.
1981 * config/rs6000/rs6000.md (movdf_hardfloat32): Use 'Y' constraint
1982 for gpr load/store. Order alternatives as r->Y,Y->r,r->r and
1983 d->m,m->d,d->d. Correct size of gpr load/store.
1984 (movdf_softfloat32): Use 'Y' constraint for gpr load/store. Order
1985 alternatives.
1986 (movti_ppc64): Likewise.
1987 (movdi_internal32): Likewise. Also disparage fprs.
1988 (movdi_mfpgpr, movdi_internal64): Likewise.
1989 (movtf_internal): Use 'm' for fpr load/store. Order alternatives.
1990 (movtf_softfloat): Order alternatives.
1991 (extenddftf2_internal): Use 'm' and 'Y' for store.
1992 (movti_power, movti_string): Use 'Y' for gpr load/store. Order.
1993 (stack_protect_setdi, stack_protect_testdi): Likewise.
1994 (movdf_hardfloat64_mfpgpr, movdf_hardfloat64): Order alternatives.
1995 (movdf_softfloat64): Likewise.
1996 (reload_<mode>_store): Adjust reload_di_store to provide
1997 reload_si_store as well.
1998 (reload_<mode>_load): Likewise.
1999
ef812306
OE
20002012-07-23 Oleg Endo <olegendo@gcc.gnu.org>
2001
2002 PR target/51244
2003 * config/sh/predicates.md (general_movsrc_operand,
2004 general_movdst_operand): Reject T_REG.
2005 * config/sh/sh.md (*extendqisi2_compact_reg, *extendhisi2_compact_reg,
2006 movsi_i, movsi_ie, movsi_i_lowpart, *movqi_reg_reg, *movhi_reg_reg):
2007 Remove T_REG alternatives.
2008 (*negtstsi): New insn.
2009
5734aefd
OE
20102012-07-23 Oleg Endo <olegendo@gcc.gnu.org>
2011
2012 PR target/53511
2013 * config/sh/sh.md (mulsf3_ie): Delete.
2014 (mulsf3_i4): Rename to mulsf3_i.
2015 (mulsf3): Emit mulsf3_i insn.
2016
dad6fafd
OE
20172012-07-23 Oleg Endo <olegendo@gcc.gnu.org>
2018
2019 * config/sh/sh.md (addc1, subc1): Delete.
2020 (adddi3_compact): Use addc instead of addc1.
2021 (subdi3_compact): Use subc instead of subc1.
2022
8046c604
UB
20232012-07-23 Uros Bizjak <ubizjak@gmail.com>
2024
2025 * config/i386/i386-protos.c (ix86_lea_outperforms): Remove prototype.
2026 * config/i386/i386.c (ix86_lea_outperforms): Make static. Make
2027 split_cost argument signed.
2028 (ix86_avoid_lea_for_add): Cleanup.
2029 (ix86_use_lea_for_mov): Use INVALID_REGNUM instead of -1.
2030 (ix86_avoid_lea_for_addr): Ditto. Make split_cost signed.
2031 Use gen_lowpart instead of gen_rtx_SUBREG. Cleanup.
2032
7839a79c
UW
20332012-07-23 Ulrich Weigand <ulrich.weigand@linaro.org>
2034
2035 * config/arm/arm.c (arm_reorg): Ensure all insns are split.
2036
7a49d85e
UB
20372012-07-23 Uros Bizjak <ubizjak@gmail.com>
2038
2039 PR target/53961
2040 * config/i386/i386.md (*lea): Add asserts to detect invalid addresses.
2041 * config/i386/i386.c (ix86_print_operand_address): Ditto.
2042 (ix86_decompose_address): Allow (zero_extend:DI (subreg:SI (...)))
2043 addresses. Prevent zero extensions of CONST_INT operands.
2044
7aa6d18a 20452012-07-23 Steven Bosscher <steven@gcc.gnu.org>
3c2c4f22
SB
2046
2047 * sbitmap.h (struct int_list): Remove.
2048 (sbitmap_intersect_of_predsucc, sbitmap_union_of_predsucc):
2049 Remove prototypes of non-existing function.
2050 (sbitmap_intersect_of_predecessors, sbitmap_intersect_of_successors,
2051 sbitmap_union_of_predecessors, sbitmap_union_of_successors): Remove
2052 unused defines.
2053 (sbitmap_intersection_of_succs, sbitmap_intersection_of_preds,
2054 sbitmap_union_of_succs, sbitmap_union_of_preds): Move prototypes to...
2055 * basic-block.h: ... here.
2056 * sbitmap.c: Do not include basic-block.h.
2057 (sbitmap_intersection_of_succs, sbitmap_intersection_of_preds,
2058 sbitmap_union_of_succs, sbitmap_union_of_preds): Move functions to...
2059 * cfganal.c: ... here.
2060 * bt-load.c (compute_out, link_btr_uses): Update for above changes.
2061 * gcse.c (compute_code_hoist_vbeinout): Likewise.
2062 * lcm.c (compute_antinout_edge, compute_available): Likewise.
2063 * Makefile.in: Fix sbitmap.o dependencies.
2064
afa63532
JBG
20652012-07-23 Jan-Benedict Glaw <jbglaw@lug-owl.de>
2066 Nick Clifton <nickc@redhat.com>
2067
2068 * config/frv/frv-protos.h (frv_ifcvt_machdep_init): Prototype.
2069 * config/frv/frv.c (frv_ifcvt_machdep_init): Change type of
2070 (unused) parameter to void *.
2071
fdc030e8
RG
20722012-07-23 Richard Guenther <rguenther@suse.de>
2073
2074 * tree-ssa-alias.c (dump_alias_info): Walk over local decls
2075 instead of referenced vars.
2076
7aa6d18a 20772012-07-23 Steven Bosscher <steven@gcc.gnu.org>
efbb59b2
SB
2078
2079 * coverage.c: Refer to "notes file" instead of "graph file"
2080 in all comments. Explain history of bbg prefix.
2081 * gcov-io.h: Likewise.
2082 * gcov.c: Likewise.
2083 (find_source): Likewise in fnotice.
2084 (read_graph_file): Likewise.
2085 (read_count_file): Likewise.
2086 * doc/gcov.texi: Document -fprofile-dir flag. Add "notes file"
2087 and "data file" explicitly in the explanation of the files.
2088
25632d2e
SB
20892012-07-22 Steven Bosscher <steven@gcc.gnu.org>
2090
2091 PR tree-optimization/53881
2092 * tree-cfg.c (group_case_labels_stmt): Look up the basic block
2093 for each label and compare them instead of labels.
2094
9696c529
SB
20952012-07-22 Steven Bosscher <steven@gcc.gnu.org>
2096
7a49d85e 2097 * opts.c (common_handle_option): Do not set
9696c529
SB
2098 flag_value_profile_transformations for -fprofile-generate.
2099 * profile.c (instrument_values): Use COUNTER_FOR_HIST_TYPE.
2100 (BB_TO_GCOV_INDEX): Remove.
2101 (output_location): Don't use it.
2102 (branch_prob): Likewise. Don't fiddle with the index of
2103 ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR. Use clear_aux_for_blocks.
2104 (find_spanning_tree):
2105 * gcov.c (struct function_info): Document that blocks 0 and 1
2106 are the entry resp. exit blocks in gcov, too, like in GCC itself.
2107 (solve_flow_graph): Use ENTRY_BLOCK and EXIT_BLOCK for special
2108 blocks identification.
2109 (output_lines): Likewise.
2110 * value-prof.c (gimple_value_profile_transformations): Do not
2111 test flag_value_profile_transformations again.
2112 (gimple_ic_transform): Take a gimple_stmt_iterator like all other
2113 transformation functions.
2114 (gimple_values_to_profile):
2115 Don't test flag_value_profile_transformations
2116 * tree-profile.c (tree_profiling): Assert that the cgraph is in
2117 the CGRAPH_STATE_IPA_SSA state.
2118 Do not set, or look at, after_tree_profile.
2119 * function.h (struct function): Remove after_tree_profile bit.
2120 * omp-low.c (expand_omp_taskreg): Don't set after_tree_profile.
2121 * tree-inline.c (initialize_cfun): Don't copy it.
2122 * lto-streamer-out.c (output_struct_function_base): Don't stream it.
2123 * lto-streamer-in.c (input_struct_function_base): Likewise.
2124
a594120b
OE
21252012-07-22 Oleg Endo <olegendo@gcc.gnu.org>
2126
2127 * config/sh/sh.h (TARGET_DYNSHIFT): New macro.
2128 (SH_DYNAMIC_SHIFT_COST): Use it.
2129 * config/sh/sh.c (expand_ashiftrt, shl_sext_kind): Likewise.
2130 (sh_dynamicalize_shift_p): Add TARGET_DYNSHIFT condition.
2131 Add sanity check for input value. Add function description.
2132 * config/sh/sh.md (ashlsi3, ashlsi3_std, ashrsi3_d, lshrsi3,
2133 lshrsi3_d): Use TARGET_DYNSHIFT.
2134
7222fdd8
OE
21352012-07-22 Oleg Endo <olegendo@gcc.gnu.org>
2136
2137 * config/sh/sh.md (negc): Delete expander.
2138 (*negc): Rename insn to negc.
2139
888b670f
UB
21402012-07-22 Uros Bizjak <ubizjak@gmail.com>
2141
2142 PR target/53961
2143 * config/i386/i386.md (*lea): New insn pattern.
2144 (*lea_1): Remove.
2145 (*lea<mode>_2): Ditto.
2146 (*lea_{3,4,5,6}_zext): Ditto.
658e8eba
UB
2147 * config/i386/predicates.md (lea_address_operand): Do not reject
2148 zero-extended address operands.
888b670f
UB
2149 * config/i386/constraints.md (j): Remove address constraint.
2150 * config/i386/i386.c (ix86_decompose_address): Allow SImode subreg
2151 of an address.
2152 (ix86_print_operand_address): Handle SImode subreg of an address.
78aaa514 2153 (ix86_avoid_lea_for_addr): Reject zero-extended addresses for now.
888b670f 2154
922a784c
HPN
21552012-07-22 Hans-Peter Nilsson <hp@axis.com>
2156
2157 Emit executable-stack note correctly for CRIS targets.
2158 * config/cris/cris.c (cris_file_end): New function.
2159 (TARGET_ASM_FILE_END): Define.
2160
eb448bee
CLT
21612012-07-22 Chung-Lin Tang <cltang@codesourcery.com>
2162 Maxim Kuvyrkov <maxim@codesourcery.com>
2163 NetLogic Microsystems Inc.
2164
2165 * config/mips/mips.c (mips_issue_rate): Handle XLP.
2166 * config/mips/mips.md: Include xlp.md.
2167 * config/mips/xlp.md: New file.
2168
5e3dbb3b
SB
21692012-07-21 Steven Bosscher <steven@gcc.gnu.org>
2170
2171 PR gcov-profile/32543
2172 * profile.c (branch_prob): Update total_num_edges_instrumented and
2173 report the number of edges to instrument.
2174
55f7c481
OE
21752012-07-21 Oleg Endo <olegendo@gcc.gnu.org>
2176
2177 * config/sh/sh.md: Correct comment regarding clrt and sett insns.
2178
c55963eb
AP
21792012-07-21 Andrew Pinski <apinski@cavium.com>
2180
2181 * config/mips/mips.md (*popcountdi2_trunc): New pattern
2182 to handle popcount of a truncation.
2183
aea21190
AP
21842012-07-21 Andrew Pinski <apinski@cavium.com>
2185
2186 * config/mips/mips-protos.h (mips_expand_ext_as_unaligned_load):
2187 Add a bool argument.
2188 * config/mips/mips.c (mips_block_move_straight): Update call to
2189 mips_expand_ext_as_unaligned_load.
2190 (mips_expand_ext_as_unaligned_load): Add unsigned_p argument.
2191 Accept DImode dest when the width is that of SImode.
888b670f 2192 * config/mips/mips.md (extv): Update call to
aea21190
AP
2193 mips_expand_ext_as_unaligned_load.
2194 (extzv): Likewise.
2195
5621a843
AP
21962012-07-21 Andrew Pinski <apinski@cavium.com>
2197
2198 * config/mips/mips.c (mips_get_unaligned_mem): Copy *op after calling
2199 adjust_address.
2200
3088716e
MK
22012012-07-20 Maxim Kuvyrkov <maxim@codesourcery.com>
2202
2203 * config/mips/mips.md (define_attr sync_*): Move before "type".
2204 (define_attr "type"): New values "atomic" and "syncloop".
2205 * config/mips/sync.md (atomic_exchange<mode>, atomic_fetch_add<mode>):
2206 Set "type" attribute.
2207 * config/mips/generic.md (generic_atomic, generic_syncloop):
2208 New reservations.
2209 * gcc/config/mips/10000.md, gcc/config/mips/20kc.md,
2210 * gcc/config/mips/24k.md, gcc/config/mips/4130.md,
888b670f 2211 * gcc/config/mips/4k.md, gcc/config/mips/5400.md,
3088716e 2212 * gcc/config/mips/5500.md, gcc/config/mips/5k.md,
888b670f 2213 * gcc/config/mips/7000.md, gcc/config/mips/74k.md,
3088716e
MK
2214 * gcc/config/mips/9000.md, gcc/config/mips/loongson2ef.md,
2215 * gcc/config/mips/loongson3a.md, gcc/config/mips/octeon.md,
2216 * gcc/config/mips/sb1.md, gcc/config/mips/sr71k.md,
2217 * gcc/config/mips/xlr.md: Handle "atomic" and "syncloop" types.
2218
56e25830
OE
22192012-07-20 Oleg Endo <olegendo@gcc.gnu.org>
2220
2221 * config/sh/sh.md: Group and sort shift related patterns.
2222 (ashlsi3_n, *ashlhi3_n, lshrsi3_n): Remove length attributes.
2223
c21a1dbb
HPN
22242012-07-20 Hans-Peter Nilsson <hp@axis.com>
2225
2226 * config/cris/cris.c (cris_asm_output_ident): Remove unused
2227 local variables section_asm_op, size, buf.
2228
714b8718
PH
22292012-07-20 Pat Haugen <pthaugen@us.ibm.com>
2230 Steven Bosscher <steven@gcc.gnu.org>
3e31cf28 2231
714b8718
PH
2232 * config/rs6000/power4.md (power4-store-update): Fix reservation.
2233 (power4-three): Likewise.
2234
ad05f87b 22352012-07-20 Sameera Deshpande <sameera.deshpande@arm.com>
2ced0ae8 2236 Greta Yorsh <Greta.Yorsh@arm.com>
ad05f87b 2237
2ced0ae8
OE
2238 * config/arm/arm.c (arm_cortex_a15_tune): New tune.
2239 * config/arm/arm-cores.def (cortex-a15): Use it.
ad05f87b 2240
ab3dfff7 22412012-07-20 Sameera Deshpande <sameera.deshpande@arm.com>
2ced0ae8
OE
2242 Greta Yorsh <Greta.Yorsh@arm.com>
2243
2244 * config/arm/arm-protos.h (tune_params): Add prefer_ldrd_strd.
2245 * config/arm/arm.c (arm_slowmul_tune): Initialize it.
2246 (arm_fastmul_tune, arm_strongarm_tune): Likewise.
2247 (arm_xscale_tune, arm_9e_tune, arm_v6t2_tune): Likewise.
2248 (arm_cortex_tune, arm_cortex_a5_tune, arm_cortex_a9_tune): Likewise.
2249 (arm_fa726te_tune): Likewise.
ab3dfff7 2250
824f71b9
RG
22512012-07-20 Richard Guenther <rguenther@suse.de>
2252
2253 * tree-dfa.c (collect_dfa_stats): Simplify.
2254 * tree-ssa-structalias.c (compute_may_aliases): Do not dump
2255 referenced vars.
2256 * cfgexpand.c (estimated_stack_frame_size): Walk over local
2257 decls instead of referenced vars.
2258 * tree-ssa.c (delete_tree_ssa): Simplify.
2259 * tree-tailcall.c (find_tail_calls): Walk over local decls
2260 instead of referenced vars.
2261 (add_virtual_phis): Remove.
2262 (tree_optimize_tail_calls_1): Instead mark the virtual operand
2263 for renaming.
2264
c4669594
SB
22652012-07-20 Steven Bosscher <steven@gcc.gnu.org>
2266
2267 * basic-block.h (BB_FLAGS_TO_PRESERVE): New define.
2268 (brief_dump_cfg): Update prototype to take flags argument.
2269 (check_bb_profile): Remove prototype.
2270 * tracer.c (tracer): Update brief_dump_cfg calls.
2271 * cfghooks.c (dump_bb): Do not pass TDF_COMMENT to dump_bb_info.
2272 Call dump_bb_info before and after the cfghook dump_bb. Terminate
2273 the dump with a newline.
2274 (dump_flow_info): Do not call check_bb_profile.
2275 * cfg.c (clear_bb_flags): Update using BB_FLAGS_TO_PRESERVE.
2276 (check_bb_profile): Make static. Take indent and flags arguments.
2277 (dump_bb_info): Always dump loop depth. With TDF_DETAILS, call
2278 check_bb_profile. Print one edge per line.
2279 (brief_dump_cfg): Take a flags argument, and filter out
2280 TDF_COMMENT and TDF_DETAILS.
2281 * pretty-print.c (pp_base_newline): Set pp_needs_newline to false.
888b670f
UB
2282 * gimple-pretty-print.c (dump_gimple_bb_header): Do not use
2283 dump_bb_info here, it is already called from dump_bb. Idem for
2284 check_bb_profile.
c4669594
SB
2285 (dump_gimple_bb_footer): Likewise.
2286 (gimple_dump_bb_buff): Call pp_flush after dump_gimple_stmt to
2287 avoid broken dumps for statement histograms.
2288 (gimple_dump_bb): Handle ENTRY_BLOCK and EXIT_BLOCK. Do
2289 not call pp_flush here, the buffer should be empty.
2290 * sched-rgn.c (debug_region): Pass TDF_BLOCKS to dump_bb.
2291 * sched-vis.c (debug_bb_slim): Likewise.
2292 * tree-cfg.c (remove_bb): Pass dump_flags to dump_bb.
2293 (gimple_debug_bb): Pass TDF_BLOCKS to dump_bb.
2294 (gimple_dump_cfg): Do brief_dump_cfg with TDF_COMMENT.
2295 (dump_function_to_file): Do not call check_bb_profile on
2296 ENTRY_BLOCK and EXIT_BLOCK, check_bb_profile doesn't handle them.
2297 Use dump_bb instead of gimple_dump_bb.
2298 (print_loops_bb): Use dump_bb instead of gimple_dump_bb.
2299 * passes.c (execute_function_dump): Always call print_rtl_with_bb
2300 for RTL dumps.
2301 * cfgrtl.c (print_rtl_with_bb): Handle printing without an up-to-date
888b670f
UB
2302 CFG. With TDF_BLOCKS and TDF_DETAILS, do DF dumps at the top and
2303 bottom of each basic block.
c4669594 2304
a0969677
RG
23052012-07-20 Richard Guenther <rguenther@suse.de>
2306
2307 PR tree-optimization/54031
2308 * tree-ssa-ccp.c (get_value_from_alignment): Use
2309 get_pointer_alignment_1.
2310
ae0379fc
RG
23112012-07-20 Richard Guenther <rguenther@suse.de>
2312
2313 * tree-inline.c (add_local_variables): Remove check_var_ann
2314 parameter and dead code.
2315 (expand_call_inline): Adjust.
2316 (tree_function_versioning): Likewise.
2317
332f1d24
JJ
23182012-07-20 Jakub Jelinek <jakub@redhat.com>
2319
2320 PR c++/28656
2321 * tree-vrp.c (nonnull_arg_p): Handle all nonnull attributes instead
2322 of just the first one.
2323
3c82efd9
RG
23242012-07-20 Richard Guenther <rguenther@suse.de>
2325
2326 * builtins.c (get_object_alignment_2): Correct offset handling
2327 when using type alignment of a MEM_REF kind base.
2328
83c8cdd7
KY
23292012-07-20 Kirill Yukhin <kirill.yukhin@intel.com>
2330
2331 PR target/53877
2332 * config/i386/lzcntintrin.h (_lzcnt_u32): New.
2333 (_lzcnt_u64): Ditto.
2334
cb40a885
EB
23352012-07-19 Eric Botcazou <ebotcazou@adacore.com>
2336
2337 * config/sparc/sparc.md (adddi3_insn_sp32): Add earlyclobber.
2338
9402220c
EB
23392012-07-19 Eric Botcazou <ebotcazou@adacore.com>
2340
2341 * tree-ssa-forwprop.c (combine_conversions): Punt if the RHS of the
2342 defining statement is a SSA name that occurs in abnormal PHIs.
2343
a3628196
EB
23442012-07-19 Eric Botcazou <ebotcazou@adacore.com>
2345
2346 * gimple-fold.c (canonicalize_constructor_val): Strip only useless type
2347 conversions.
2348
f9fef349
JJ
23492012-07-19 Jakub Jelinek <jakub@redhat.com>
2350
2351 PR rtl-optimization/53942
2352 * function.c (assign_parm_setup_reg): Avoid zero/sign extension
2353 directly from likely spilled non-fixed hard registers, move them
2354 to pseudo first.
2355
fdb45c0c
SE
23562012-07-19 Steve Ellcey <sellcey@mips.com>
2357
2358 * config/mips/mips.c (mips_set_mips16_mode): Clear SYNCI_MASK in
2359 MIPS16 mode.
2360
e1310984
JM
23612012-07-19 Jason Merrill <jason@redhat.com>
2362
2363 PR debug/53235
2364 * dwarf2out.c (get_die_parent): New.
2365 (generate_type_signature): Use it.
2366
dee54b6e
RH
23672012-07-19 Richard Henderson <rth@redhat.com>
2368
1312c276
RH
2369 * config/ia64/vect.md (smulv4hi3_highpart): New.
2370 (umulv4hi3_highpart): New.
2371 (vec_widen_smult_even_v4hi): Rename from pmpy2_even.
2372 (vec_widen_smult_odd_v4hi): Rename from pmpy2_odd.
2373 (udot_prodv8qi, sdot_prodv8qi): Remove.
2374 (sdot_prodv4hi, udot_prodv4hi): Remove.
2375 * config/ia64/ia64.c (ia64_expand_dot_prod_v8qi): Remove.
2376 * config/ia64/ia64-protos.h: Update.
2377
e6d4f8f5
RH
2378 * tree-vect-patterns.c (vect_recog_divmod_pattern): Do not require
2379 vectors larger than UNITS_PER_WORD.
2380
dee54b6e
RH
2381 * expr.c (store_constructor): Initialize icode with CODE_FOR_nothing.
2382 * tree-vect-stmts.c (vectorizable_operation): Use LAST_INSN_CODE for
2383 dummy != CODE_FOR_nothing value.
2384
9786913b
UB
23852012-07-19 Uros Bizjak <ubizjak@gmail.com>
2386
2387 * doc/tm.texi.in (MODE_AFTER): Add entity as the first macro argument.
2388 * doc/tm.texi: Regenerate.
2389 * mode-switching.c (optimize_mode_switching): Update MODE_AFTER call.
2390 * config/sh/sh.h (MODE_AFTER): Update.
2391 * config/epiphany/epiphany.h (MODE_AFTER): Update.
2392
65e7bfe3
JJ
23932012-07-19 Jakub Jelinek <jakub@redhat.com>
2394
2395 PR middle-end/54017
2396 * tree-cfgcleanup.c (cleanup_omp_return): Remove.
2397 (cleanup_tree_cfg_bb): Don't call it.
2398 * omp-low.c (expand_omp_sections): Fix up the !exit_reachable case
2399 handling.
2400
867ff7ed
CB
24012012-07-19 Christian Bruel <christian.bruel@st.com>
2402
2403 PR target/54029
2404 * config/sh/sh.c (gen_far_branch): Set JUMP_LABEL for return jumps.
2405
95cbf851 24062012-07-19 Richard Guenther <rguenther@suse.de>
9786913b 2407 Eric Botcazou <ebotcazou@adacore.com>
95cbf851
RG
2408
2409 * tree-ssa-ccp.c (valid_lattice_transition): Clarify comment
2410 about transition from invariant to known bits.
9786913b 2411 (likely_value): Addresses with UNDEFINED components are UNDEFINED.
95cbf851 2412
cd1cae35
RG
24132012-07-19 Richard Guenther <rguenther@suse.de>
2414
2415 PR tree-optimization/53970
9786913b
UB
2416 * tree-vect-data-refs.c (not_size_aligned): Avoid sign-compare warning.
2417
bf1431e3
TG
24182012-07-19 Tristan Gingold <gingold@adacore.com>
2419 Richard Henderson <rth@redhat.com>
2420
2421 * opts.c (finish_options): Handle UI_SEH.
2422 * expr.c (build_personality_function): Handle UI_SEH.
2423 * dwarf2out.c (dwarf2out_begin_prologue): Handle UI_SEH.
2424 * coretypes.h (unwind_info_type): Add UI_SEH.
2425 * config/i386/winnt.c (i386_pe_seh_emit_except_personality):
2426 New function.
2427 (i386_pe_seh_init_sections): Likewise.
2428 * config/i386/cygming.h (TARGET_ASM_EMIT_EXCEPT_PERSONALITY): Define.
2429 (TARGET_ASM_INIT_SECTIONS): Define.
2430 * common/config/i386/i386-common.c (TARGET_EXCEPT_UNWIND_INFO): Define.
2431 (i386_except_unwind_info): New function.
2432
5cb5a23f
MR
24332012-07-18 Maciej W. Rozycki <macro@codesourcery.com>
2434 Chao-ying Fu <fu@mips.com>
2435
2436 * config/mips/mips.opt (mmcu): New option.
9786913b 2437 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define
5cb5a23f
MR
2438 _mips_mcu when TARGET_MCU.
2439 (ASM_SPEC): Pass mcu options to the assembler.
2440 * doc/invoke.texi (MIPS Options): Document -mmcu and -mno-mcu.
2441
cc5476cb
RC
24422012-07-18 Ralf Corsépius <ralf.corsepius@rtems.org>
2443
9786913b
UB
2444 * config.gcc (v850-*-rtems*): New target.
2445 * config/v850/rtems.h: New.
2446 * config/v850/t-rtems: New.
cc5476cb 2447
75cfe445
BS
24482012-07-18 Bill Schmidt <wschmidt@linux.ibm.com>
2449
2450 * doc/invoke.texi: Add -fhoist-adjacent-loads and -ftree-slsr to list
2451 of flags controlling optimization; add -ftree-slsr to list of flags
2452 enabled by default at -O; add -fhoist-adjacent-loads to list of flags
2453 enabled by default at -O2; add -fvect-cost-model to list of flags
2454 enabled by default at -O3; document -fhoist-adjacent-loads and
2455 -ftree-slsr.
2456 * opts.c (default_option): Make -ftree-slsr default at -O1 and above.
2457 * gimple-ssa-strength-reduction.c (gate_strength_reduction): Use
2458 flag_tree_slsr.
2459 * common.opt: Add -ftree-slsr with flag_tree_slsr.
2460
edd5e900
JZ
24612012-07-18 Jie Zhang <jzhang918@gmail.com>
2462 Julian Brown <julian@codesourcery.com>
2463
9786913b 2464 * config/arm/arm.c (arm_rtx_costs_1): Adjust cost for CONST_VECTOR.
edd5e900
JZ
2465 (arm_size_rtx_costs): Likewise.
2466 (neon_valid_immediate): Add a case for double 0.0.
2467
392e87f6
AS
24682012-07-18 Andrew Stubbs <ams@codesourcery.com>
2469 Mark Shinwell <shinwell@codesourcery.com>
2470 Julian Brown <julian@codesourcery.com>
2471
392e87f6
AS
2472 * config/arm/vfp.md (*arm_movsi_vfp, *thumb2_movsi_vfp)
2473 (*movdi_vfp_cortexa8, *movsf_vfp, *thumb2_movsf_vfp)
2474 (*movdf_vfp, *thumb2_movdf_vfp, *movsfcc_vfp)
2475 (*thumb2_movsfcc_vfp, *movdfcc_vfp, *thumb2_movdfcc_vfp): Add
2476 neon_type.
2477 * config/arm/arm.md (neon_type): Update comment.
2478
4c9bcf89
RG
24792012-07-18 Richard Guenther <rguenther@suse.de>
2480
2481 PR tree-optimization/53970
2482 * tree.h (contains_packed_reference): Remove.
2483 * expr.c (contains_packed_reference): Likewise.
2484 * tree-vect-data-refs.c (not_size_aligned): New function.
2485 (vector_alignment_reachable_p): Use it.
2486 (vect_supportable_dr_alignment): Likewise.
2487
b0f4a35f
RG
24882012-07-18 Richard Guenther <rguenther@suse.de>
2489
2490 * tree.h (get_object_or_type_alignment): Remove.
2491 * builtins.c (get_object_alignment_2): New function copied from
2492 get_object_alignment_1. Take extra argument to indicate whether
2493 we take the address of EXP. Rework to use type alignment information
2494 if not, and return whether the result is an approximation or not.
2495 (get_object_alignment_1): Wrap around get_object_alignment_2.
2496 (get_pointer_alignment_1): Call get_object_alignment_2 indicating
2497 we take the address.
2498 (get_object_or_type_alignment): Remove.
2499 * expr.c (expand_assignment): Call get_object_alignment.
2500 (expand_expr_real_1): Likewise.
2501
59194a3c
NC
25022012-07-18 Nick Clifton <nickc@redhat.com>
2503
2504 * doc/invoke.texi (ARM Options): Document -munaligned-access.
2505
ee04b091
OE
25062012-07-18 Oleg Endo <olegendo@gcc.gnu.org>
2507
2508 * config/sh/sh.md (mulsidi3, umulsidi3): Remove constraints in
2509 expander. Use arith_reg_dest predicate.
2510 (rotldi3, rotrdi3): Remove constraints in expander.
2511 (adddi3_compact, subdi3_compact, mulsidi3_compact, umulsidi3_compact,
2512 ashlsi3_n, *ashlhi3_n, ashrsi2_16, ashrsi2_31, lshrsi3_n): Convert to
2513 insn_and_split.
2514
13f1f508
OE
25152012-07-18 Oleg Endo <olegendo@gcc.gnu.org>
2516
2517 PR target/33135
2518 * config/sh/sh.opt (mieee): Use Var instead of Mask. Correct
2519 description.
59194a3c 2520 * config/sh/sh.c (sh_option_override): Do not change
13f1f508
OE
2521 flag_finite_math_only. Set TARGET_IEEE to complement of
2522 flag_finite_math_only.
2523 * doc/invoke.texi (SH options): Add mno-ieee. Correct description
2524 of mieee and mno-ieee behavior.
2525
512ab654
SB
25262012-07-18 Steven Bosscher <steven@gcc.gnu.org>
2527
2528 * graphite-poly.c (print_pbb_body): Fixup dump_bb call.
2529
a315c44c
SB
25302012-07-18 Steven Bosscher <steven@gcc.gnu.org>
2531
2532 * dumpfile.h (TDF_COMMENT): New define.
2533 * basic-block.h (EDGE_FALLTHRU, EDGE_ABNORMAL, EDGE_ABNORMAL_CALL,
2534 EDGE_EH, EDGE_FAKE, EDGE_DFS_BACK, EDGE_CAN_FALLTHRU,
2535 EDGE_IRREDUCIBLE_LOOP, EDGE_SIBCALL, EDGE_LOOP_EXIT, EDGE_TRUE_VALUE,
2536 EDGE_FALSE_VALUE, EDGE_EXECUTABLE, EDGE_CROSSING, EDGE_PRESERVE):
2537 Move to new file cfg-flags.h.
2538 (enum cfg_edge_flags): New enum, using cfg-flags.h.
2539 (EDGE_ALL_FLAGS): Compute value automatically.
2540 (BB_NEW, BB_REACHABLE, BB_IRREDUCIBLE_LOOP, BB_SUPERBLOCK,
2541 BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION,
2542 BB_DUPLICATED, BB_NON_LOCAL_GOTO_TARGET, BB_RTL,
2543 BB_FORWARDER_BLOCK, BB_NONTHREADABLE_BLOCK, BB_MODIFIED, BB_VISITED,
2544 BB_IN_TRANSACTION): Move to new file cfg-flags.h.
2545 (enum bb_flags): Rename to cfg_bb_flags. Use cfg-flags.h.
2546 (BB_ALL_FLAGS): New, compute value automatically.
2547 (dump_bb_info): Update prototype.
2548 (dump_edge_info): Update prototype.
2549 * cfg-flags.h: New file.
2550 * cfg.c (dump_edge_info): Take flags argument. Be verbose only if
2551 TDF_DETAILS and not TDF_SLIM. Include cfg-flags.h for bitnames.
2552 Check that the edge flags are within the range of EDGE_ALL_FLAGS.
2553 (debug_bb): Update dump_bb call.
2554 (dump_cfg_bb_info): Remove.
2555 (dump_bb_info): New function. Use cfg-flags.h for bitnames.
2556 Adjust verbosity using TDF_* flags. Check that the basic block flags
2557 are within the range of BB_ALL_FLAGS.
2558 (brief_dump_cfg): Use dump_bb_info instead of dump_cfg_bb_info.
2559 * cfghooks.h (struct cfghooks): Update dump_bb hook, take a FILE
2560 first for consistency with other dump functions.
2561 (dump_bb): Update prototype accordingly.
2562 * cfghooks.c: Include dumpfile.h.
2563 (verify_flow_info): Update dump_edge_info calls.
2564 (dump_bb): Take a flags argument and pass it around.
2565 Use dump_bb_info to dump common information about a basic block.
2566 (dump_flow_info): Moved here from cfgrtl.c. Make IL agnostic.
2567 (debug_flow_info): Moved here from cfgrtl.c.
2568 * profile.c (is_edge_inconsistent): Update dump_bb calls.
2569 * loop-invariant.c (find_defs): Update print_rtl_with_bb call.
2570 * rtl.h (debug_bb_n_slim, debug_bb_slim, print_rtl_slim,
2571 print_rtl_slim_with_bb): Remove prototypes.
2572 (dump_insn_slim): Adjust prototype to take a const_rtx.
2573 (print_rtl_with_bb): Adjust prototype.
2574 * sched-rgn.c (debug_region): Use dump_bb instead of debug_bb_n_slim.
2575 * sched-vis.c (dump_insn_slim): Take a const_rtx.
2576 (debug_insn_slim): Prototype here near DEBUG_FUNCTION marker.
2577 (print_rtl_slim_with_bb): Remove.
2578 (print_rtl_slim): Rename to debug_rtl_slim. Print only insn info,
2579 not basic block info (print_rtl_with_bb with TDF_SLIM should be used
2580 for that. Prototype here near DEBUG_FUNCTION marker.
2581 (debug_bb_slim): Prototype here near DEBUG_FUNCTION marker.
2582 Use dump_bb.
2583 (debug_bb_n_slim): Prototype here near DEBUG_FUNCTION marker.
2584 * tree-cfg.c (gimple_can_merge_blocks_p): Use EDGE_COMPLEX.
2585 (remove_bb): Update dump_bb call.
2586 (gimple_debug_bb): Use dump_bb.
2587 (dump_function_to_file): Update gimple_dump_bb call.
2588 (print_loops_bb): Likewise.
2589 * tree-flow.h (gimple_dump_bb): Update prototype.
2590 * gimple-pretty-print.c (dump_bb_header): Rename to
2591 dump_gimple_bb_header. Write to a stream instead of a pretty
2592 printer. Use dump_bb_info to dump basic block info.
2593 (dump_bb_end): Rename to dump_gimple_bb_footer. Write to a
2594 stream instead of a pretty printer. Use dump_bb_info.
2595 (gimple_dump_bb_buff): Do not call dump_bb_header and dump_bb_end.
2596 (gimple_dump_bb): Do it here with dump_gimple_bb_header and
2597 dump_gimple_bb_footer.
2598 * cfgrtl.c (rtl_dump_bb): Update prototype. Only dump DF if the
2599 dump flags have TDF_DETAILS. Use dump_insn_slim if TDF_SLIM.
2600 (print_rtl_with_bb): Take a flags argument and pass it around.
2601 Use dump_insn_slim if TDF_SLIM.
2602 (dump_bb_info): Removed and re-incarnated in cfg.c.
2603 (dump_flow_info): Moved to cfghooks.c.
2604 (debug_flow_info): Moved to cfghooks.c.
2605 * passes.c (execute_function_dump): Unconditionally use
2606 print_rtl_with_bb for RTL dumps, now that it understands TDF_SLIM.
2607 * final.c (dump_basic_block_info): Update dump_edge_info calls.
2608 * tree-vrp.c (dump_asserts_for): Likewise.
2609 * ifcvt.c (if_convert): Unconditionally use print_rtl_with_bb.
2610 * tree-if-conv.c (if_convertible_bb_p): Don't look at
2611 EDGE_ABNORMAL_CALL, it has no meaning in the GIMPLE world.
2612 * trans-mem.c (make_tm_edge): Don't set EDGE_ABNORMAL_CALL,
2613 for the same reason.
2614 * config/rl78/rl78.c (rl78_reorg): Update print_rtl_with_bb calls.
2615
65876d24
RG
26162012-07-17 Richard Guenther <rguenther@suse.de>
2617
2618 * tree-vect-data-refs.c (vect_get_new_vect_var): Add referenced
2619 vars here, use create_tmp_reg where appropriate.
2620 (vect_create_addr_base_for_vector_ref): Do not add referenced
2621 vars here, use create_tmp_reg where appropriate.
2622 (vect_create_data_ref_ptr): Likewise.
2623 (vect_create_destination_var): Likewise.
2624 (vect_permute_store_chain): Likewise.
2625 (vect_permute_load_chain): Likewise.
2626 * tree-vect-loop-manip.c (vect_create_cond_for_align_checks):
2627 Likewise.
2628 * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
2629 * tree-vect-patterns.c (vect_recog_temp_ssa_var): Likewise.
2630 (vect_handle_widen_op_by_const): Likewise.
2631 * tree-vect-stmts.c (vect_init_vector): Likewise.
2632 (vectorizable_load): Likewise.
2633
7cb151c0
TV
26342012-07-17 Tom de Vries <tom@codesourcery.com>
2635
2636 * hwint.c: Fix loop range.
2637
440b6d59
TV
26382012-07-17 Tom de Vries <tom@codesourcery.com>
2639
2640 * double-int.h (double_int_popcount): New inline function.
2641 * hwint.c (popcount_hwi): New function.
2642 * hwint.h (popcount_hwi): Declare function. New inline function.
2643
a86ec597
RH
26442012-07-17 Richard Henderson <rth@redhat.com>
2645
2646 * tree-vect-stmts.c (supportable_widening_operation): Remove decl
2647 parameters.
2648 (vectorizable_conversion): Update supportable_widening_operation call.
2649 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Likewise.
2650 (vect_recog_widen_shift_pattern): Likewise.
2651 * tree-vectorizer.h: Update decl.
2652
22969a8c
RR
26532012-07-17 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
2654 Ulrich Weigand <ulrich.weigand@linaro.org>
2655
2656 * common/config/arm/arm-common.c (arm_option_optimization_table):
2657 Enable -fsched-pressure by default while optimizing.
2658 * config/arm/arm.c (arm_option_override): Use the alternate scheduler
2659 pressure algorithm by default.
2660
4111c296
OE
26612012-07-16 Oleg Endo <olegendo@gcc.gnu.org>
2662
2663 * config/sh/sh.h (CONST_OK_FOR_I06): Delete.
2664 (CONST_OK_FOR_I10): Move macro to ...
2665 * config/sh/sh.c: ... here.
2666 (sh_legitimate_index_p): Use satisfies_constraint_I06 instead of
2667 CONST_OK_FOR_I06.
2668
7bd3f65f
OE
26692012-07-16 Oleg Endo <olegendo@gcc.gnu.org>
2670
2671 * config/sh/sh.md: Delete mov related define_peephole patterns.
2672
1b667f1b
JW
26732012-07-16 Jonathan Wakely <jwakely.gcc@gmail.com>
2674
2675 PR c++/53919
2676 * doc/install.texi (Installing GCC): Refer to instructions for
2677 released versions. Fix hyphenation.
2678
c9c72699
UW
26792012-07-16 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2680
2681 * config/spu/spu.c (targetm): Move to bottom of file.
2682 (spu_attribute_table): Likewise.
2683 (spu_option_override, spu_init_builtins, spu_builtin_decl,
2684 spu_scalar_mode_supported_p, spu_vector_mode_supported_p,
2685 spu_legitimate_address_p, spu_addr_space_legitimate_address_p,
2686 adjust_operand, get_pic_reg, need_to_save_reg, frame_emit_store,
2687 frame_emit_load, frame_emit_add_imm, emit_nop_for_insn,
2688 insn_clobbers_hbr, spu_emit_branch_hint, spu_emit_vector_compare,
2689 get_branch_target, spu_machine_dependent_reorg, spu_sched_issue_rate,
2690 spu_sched_variable_issue, spu_sched_adjust_cost, spu_sched_init_global,
2691 spu_sched_init, spu_sched_reorder, spu_handle_fndecl_attribute,
2692 spu_handle_vector_attribute, spu_pass_by_reference, spu_function_arg,
2693 spu_function_arg_advance, spu_build_builtin_va_list, spu_va_start,
2694 spu_gimplify_va_arg_expr, store_with_one_insn_p, reg_aligned_for_addr,
2695 spu_assemble_integer, spu_asm_globalize_label, spu_rtx_costs,
2696 spu_function_ok_for_sibcall, spu_init_libfuncs, spu_return_in_memory,
2697 spu_encode_section_info, spu_legitimize_address,
2698 spu_addr_space_legitimize_address, spu_builtin_mask_for_load,
2699 spu_builtin_vectorization_cost, spu_vector_alignment_reachable,
2700 spu_addr_space_pointer_mode, spu_addr_space_address_mode,
2701 spu_addr_space_subset_p, spu_addr_space_convert, spu_sms_res_mii,
2702 spu_section_type_flags, spu_select_section, spu_unique_section,
2703 spu_trampoline_init, spu_conditional_register_usage,
2704 spu_ref_may_alias_errno, spu_output_mi_thunk, spu_unwind_word_mode,
2705 spu_libgcc_cmp_return_mode, spu_libgcc_shift_count_mode,
2706 spu_setup_incoming_varargs): Remove prototypes.
2707 (spu_legitimize_address): Add "static" to definition.
2708
4cca007e
JJ
27092012-07-16 Jakub Jelinek <jakub@redhat.com>
2710
2711 * config/i386/rtmintrin.h (_xabort): Remove trailing semicolon.
2712
cd356d96
UW
27132012-07-16 Ulrich Weigand <ulrich.weigand@linaro.org>
2714
2715 * tree-ssa-ccp.c (optimize_unreachable): Check gsi_end_p
2716 before calling gsi_stmt.
2717
aaba3304
KY
27182012-07-16 Kirill Yukhin <kirill.yukhin@intel.com>
2719
2720 Revert
2721 2012-07-16 Sergey Melnikov <sergey.melnikov@intel.com>
2722
2723 * config/i386/i386.md (stack_protect_set): Disable the pattern
2724 for Android since Android libc (bionic) does not provide random
2725 value for stack protection guard at gs:0x14. Guard value
2726 will be provided from external symbol (default implementation).
2727 (stack_protect_set_<mode>): Likewise.
2728 (stack_protect_test): Likewise.
2729 (stack_protect_test_<mode>): Likewise.
2730
59a6c9d5
L
27312012-07-16 H.J. Lu <hongjiu.lu@intel.com>
2732
2733 PR middle-end/53959
2734 PR bootstrap/53963
2735 * gimple.c (gimple_types_compatible_p_1): Restore type attribute
2736 comparison.
2737
a75a89eb
BS
27382012-07-16 Bill Schmidt <wschmidt@linux.ibm.com>
2739
2740 * opts.c (default_option): Add -fvect-cost-model to default options
2741 at -O3 and above.
2742
7a1c57d3
SB
27432012-07-16 Steven Bosscher <steven@gcc.gnu.org>
2744
2745 * graphite-clast-to-gimple.c, graphite-dependences.c,
2746 graphite-sese-to-poly.c: Include tree-pass.h instead of dumpfile.h
2747 for pass TODO flags.
2748 * Makefile.in: Fix dependencies.
2749
89ca6d79
SB
27502012-07-16 Steven Bosscher <steven@gcc.gnu.org>
2751
ee44c28d
SB
2752 * haifa-sched.c (init_before_recovery): Do not set EDGE_CAN_FALLTHRU.
2753 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
2754
2755 * function.c (stack_protect_epilogue): Use expand_call to expand
2756 targetm.stack_protect_fail.
2757 * stmt.c (expand_expr_stmt): Remove now-unused function.
2758 * tree.h (expand_expr_stmt): Remove prototype.
2759 * doc/tm.texi.in (TARGET_STACK_PROTECT_FAIL): Document that this
2760 hook must return a CALL_EXPR.
2761 * doc/tm.texi: Regenerate.
2762
468660d3 2763 * emit-rtl.c (emit_label_before): Do not allow the same label
9786913b 2764 to be emitted twice.
468660d3
SB
2765 (emit_label_after): Likewise.
2766 (emit_label): Likewise.
2767
89ca6d79
SB
2768 * flags.h (TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED,
2769 TYPE_OVERFLOW_TRAPS, POINTER_TYPE_OVERFLOW_UNDEFINED): Move to tree.h.
2770 * tree.h (TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED,
2771 TYPE_OVERFLOW_TRAPS, POINTER_TYPE_OVERFLOW_UNDEFINED): New home.
2772
7ee2468b
SB
27732012-07-16 Steven Bosscher <steven@gcc.gnu.org>
2774
2775 * system.h (dump_file): Do not define.
2776 * tree-pass.h: Include dumpfile.h, which is a new file containing...
2777 (enum tree_dump_index, TDF_*, get_dump_file_name, dump_enabled_p,
2778 dump_initialized_p, dump_begin, dump_end, dump_node, dump_switch_p,
2779 dump_flag_name, dump_file, dump_flags, dump_file_name,
2780 get_dump_file_info, struct dump_file_info): all of this, moved to...
2781 * dumpfile.h: Here, new file.
2782 * tree-dump.h: Include dumpfile.h, but not tree-pass.h.
2783 (dump_stmt): Remove prototype for C++ specific function.
2784 (dump_enumerated_decls): Move prototype from here...
2785 * tree-flow.h (dump_enumerated_decls): ... to here.
2786 (get_ref_base_and_extent) Move prototype from here ...
2787 * tree.h (get_ref_base_and_extent) ... to here.
2788 * tree-ssa-live.c: Do not inclde tree-pretty-print.h, because
2789 gimple-pretty-print.h is enough. Do not include tree-dump.h,
2790 include timevar.h and dumpfile.h instead.
2791 (struct numbered_tree_d, compare_decls_by_uid,
2792 dump_enumerated_decls_push, dump_enumerated_decls): Move from here ...
2793 * tree-dfa.c:(struct numbered_tree_d, compare_decls_by_uid,
2794 dump_enumerated_decls_push, dump_enumerated_decls):... to here.
2795 Do not include timevar.h.
2796 * tree.c: Do not include timevar.h.
2797 * tree-cfg.c: Do not include langhooks.h, tree-pretty-print.h, and
2798 timevar.h.
2799 (dump_cfg_stats): Use current_function_name.
2800 (gimple_cfg2vcg): Likewise.
2801 (dump_function_to_file): Likewise.
2802 * df-scan.c: Do not include tree-pass.h and timevar.h.
2803 Include dumpfile.h.
2804 (df_entry_block_bitmap_verify, df_exit_block_bitmap_verify): Do not
2805 use print_current_pass.
2806 * df-problems.c: Include dumpfile.h.
2807 Always define REG_DEAD_DEBUGGING, avoid #ifdef code, because it
2808 leads to errors in the code not selected.
2809 (df_note_compute): Do not print_rtl_with_bb here. Fix compilation
2810 bug if REG_DEAD_DEBUGGING is not 0, get_insns is not available here.
2811 * lcm.c: Include dumpfile.h.
2812 Remove obsolete include of insn-attr.h.
2813 * dojump.c (do_compare_rtx_and_jump): Remove failure printing for
2814 missing probability notes.
2815 * stmt.c: Include dumpfile.h.
2816 (emit_case_decision_tree): Re-enable printing expand details only
2817 if TDF_DETAILS.
9786913b
UB
2818 * alias.c, auto-inc-dec.c, bb-reorder.c, caller-save.c, cfg.c,
2819 cfgcleanup.c, cfgexpand.c, cfgloop.c, cfgloopmanip.c, cgraph.c,
2820 cgraphclones.c, cgraphunit.c, combine.c, combine-stack-adj.c,
2821 coverage.c, cprop.c, cse.c, cselib.c, dbgcnt.c, dce.c, df-core.c,
2822 dse.c, dwarf2out.c, emit-rtl.c, except.c, expr.c, final.c,
2823 function.c, fwprop.c, gcse.c, gimple-fold.c,
2824 gimple-pretty-print.c, gimple-ssa-strength-reduction.c,
2825 gimplify.c, graphite-blocking.c, graphite-clast-to-gimple.c,
2826 graphite-dependences.c, graphite-interchange.c,
2827 graphite-optimize-isl.c, graphite-poly.c,
2828 graphite-sese-to-poly.c, haifa-sched.c, hw-doloop.c, ifcvt.c,
2829 ipa.c, ipa-cp.c, ipa-inline-analysis.c, ipa-inline.c,
2830 ipa-inline-transform.c, ipa-prop.c, ipa-pure-const.c,
2831 ipa-reference.c, ipa-split.c, ipa-utils.c, ira.c, ira-emit.c,
2832 jump.c, loop-doloop.c, loop-init.c, loop-invariant.c, loop-iv.c,
2833 loop-unroll.c, loop-unswitch.c, lower-subreg.c,
2834 lto-section-out.c, lto-streamer-in.c, matrix-reorg.c, mcf.c,
2835 mode-switching.c, modulo-sched.c, omega.c, omp-low.c, passes.c,
2836 plugin.c, postreload.c, postreload-gcse.c, predict.c, print-rtl.c,
2837 print-tree.c, profile.c, recog.c, ree.c, regcprop.c, reginfo.c,
2838 regmove.c, regrename.c, reg-stack.c, reload1.c, reorg.c,
2839 sched-rgn.c, sched-vis.c, sel-sched.c, sel-sched-ir.c,
2840 store-motion.c, tracer.c, trans-mem.c, tree-affine.c,
2841 tree-call-cdce.c, tree-cfgcleanup.c, tree-chrec.c,
7ee2468b 2842 tree-data-ref.c, tree-diagnostic.c, tree-dump.c,
9786913b
UB
2843 tree-eh.c, tree-flow-inline.h, tree-if-conv.c, tree-into-ssa.c,
2844 tree-mudflap.c, tree-nrv.c, tree-object-size.c,
2845 tree-optimize.c, tree-outof-ssa.c, tree-predcom.c,
2846 tree-pretty-print.c, tree-profile.c, tree-scalar-evolution.c,
2847 tree-sra.c, tree-ssa-address.c, tree-ssa-alias.c, tree-ssa.c,
2848 tree-ssa-ccp.c, tree-ssa-coalesce.c, tree-ssa-copy.c,
2849 tree-ssa-copyrename.c,, tree-ssa-dce.c, tree-ssa-dom.c,
2850 tree-ssa-dse.c, tree-ssa-forwprop.c, tree-ssa-ifcombine.c,
2851 tree-ssa-loop.c, tree-ssa-loop-ch.c, tree-ssa-loop-im.c,
2852 tree-ssa-loop-ivcanon.c, tree-ssa-loop-ivopts.c,
2853 tree-ssa-loop-manip.c, tree-ssa-loop-niter.c,
2854 tree-ssa-loop-prefetch.c, tree-ssa-loop-unswitch.c,
2855 tree-ssa-math-opts.c, tree-ssa-operands.c, tree-ssa-phiopt.c,
2856 tree-ssa-phiprop.c, tree-ssa-pre.c, tree-ssa-propagate.c,
2857 tree-ssa-reassoc.c, tree-ssa-sccvn.c, tree-ssa-sink.c,
2858 tree-ssa-structalias.c, tree-ssa-tail-merge.c, tree-ssa-ter.c,
2859 tree-ssa-threadedge.c, tree-ssa-threadupdate.c,
2860 tree-ssa-uncprop.c, tree-ssa-uninit.c,
2861 tree-switch-conversion.c, tree-tailcall.c,
2862 tree-vect-data-refs.c, tree-vect-loop.c,
2863 tree-vect-loop-manip.c, tree-vectorizer.c,
2864 tree-vect-patterns.c, tree-vect-slp.c, tree-vect-stmts.c,
7ee2468b
SB
2865 tree-vrp.c, value-prof.c, var-tracking.c, web.c: Include tree-pass.h
2866 only if needed. If tree-pass.h is included, do not include timevar.h
2867 and dumpfile.h. If tree-pass.h is not included but dump_file, or
2868 dump_flags, or the TDF_* flags are used, include dumpfile.h.
9786913b
UB
2869 If gimple-pretty-print.h is included, don't include
2870 tree-pretty-print.h. Remove assorted unnecessary includes.
7ee2468b
SB
2871
2872 * config/mn10300/mn10300.c, config/c6x/c6x.c, config/ia64/ia64.c,
2873 config/arm/arm.c, config/bfin/bfin.c, config/frv/frv.c,
2874 config/spu/spu.c, config/mep/mep.c, config/i386/i386.c:
2875 Include dumpfile.h.
2876 * config/rl78/rl78.c: Include dumpfile.h instead of tree-pass.h.
2877 * arm/t-arm, avr/t-avr, i386/t-i386, ia64/t-ia64, mep/t-mep,
2878 spu/t-spu-elf: Fix dependencies.
2879
9e227d60
DC
28802012-07-16 Dehao Chen <dehao@google.com>
2881
2882 Revert
2883 2012-07-10 Dehao Chen <dehao@google.com>
2884
2885 * tree.h (phi_arg_d): New field.
2886 * tree-flow-inline.h (gimple_phi_arg_block): New function.
2887 (gimple_phi_arg_block_from_edge): New function.
2888 (gimple_phi_arg_set_block): New function.
2889 (gimple_phi_arg_has_block): New function.
2890 (redirect_edge_var_map_block): New function.
2891 * tree-flow.h (_edge_var_map): New field.
2892 * tree-ssa-live.c (remove_unused_locals): Mark phi_arg's block as used.
2893 * tree-eh.c (cleanup_empty_eh_merge_phis): Add block debug info for
2894 redirect_edge_var_map_add.
2895 * tree-outof-ssa.c (_elim_graph): New field.
2896 (insert_partition_copy_on_edge): New parameter.
2897 (insert_value_copy_on_edge): New parameter.
2898 (insert_rtx_to_part_on_edge): New parameter.
2899 (insert_part_to_rtx_on_edge): New parameter.
2900 (elim_graph_add_edge): New parameter.
2901 (elim_graph_remove_succ_edge): New parameter.
2902 (FOR_EACH_ELIM_GRAPH_SUCC): New parameter.
2903 (FOR_EACH_ELIM_GRAPH_PRED): New parameter.
2904 (new_elim_graph): Add block debug info.
2905 (clear_elim_graph): Likewise.
2906 (delete_elim_graph): Likewise.
2907 (elim_graph_add_node): Likewise.
2908 (elim_graph_add_edge): Likewise.
2909 (elim_graph_remove_succ_edge): Likewise.
2910 (eliminate_build): Likewise.
2911 (elim_forward): Likewise.
2912 (elim_unvisited_predecessor): Likewise.
2913 (elim_backward): Likewise.
2914 (elim_create): Likewise.
2915 (eliminate_phi): Likewise.
2916 (insert_backedge_copies): Likewise.
2917 * tree-into-ssa.c (insert_phi_nodes_for): Add block debug info for
2918 add_phi_arg.
2919 (rewrite_add_phi_arguments): Likewise.
2920 * tree-ssa-loop-im.c (execute_sm_if_changed): Likewise.
2921 * tree-ssa-tail-merge.c (replace_block_by): Likewise.
2922 * tree-ssa-threadupdate.c (copy_phi_args): Likewise.
2923 * tree-loop-distribution.c (update_phis_for_loop_copy): Likewise.
2924 * tree-ssa-loop-manip.c (create_iv): Likewise.
2925 (add_exit_phis_edge): Likewise.
2926 (split_loop_exit_edge): Likewise.
2927 (copy_phi_node_args): Likewise.
2928 (tree_transform_and_unroll_loop): Likewise.
2929 * value-prof.c (gimple_ic): Likewise.
2930 (gimple_stringop_fixed_value): Likewise.
2931 * tree-tailcall.c (add_successor_phi_arg): Likewise.
2932 (eliminate_tail_call): Likewise.
2933 (create_tailcall_accumulator): Likewise.
2934 (tree_optimize_tail_calls_1): Likewise.
2935 * tree-phinodes.c (add_phi_arg): Likewise.
2936 (make_phi_node): Likewise.
2937 (resize_phi_node): Likewise.
2938 (remove_phi_arg_num): Likewise.
2939 * omp-low.c (expand_parallel_call): Likewise.
2940 (expand_omp_for_static_chunk): Likewise.
2941 * tree-vect-loop-manip.c (slpeel_update_phis_for_duplicate_loop):
2942 Likewise.
2943 (slpeel_update_phi_nodes_for_guard1): Likewise.
2944 (slpeel_update_phi_nodes_for_guard2): Likewise.
2945 (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
2946 (set_prologue_iterations): Likewise.
2947 (slpeel_tree_peel_loop_to_edge): Likewise.
2948 (vect_loop_versioning): Likewise.
2949 * tree-parloops.c (create_phi_for_local_result): Likewise.
2950 (transform_to_exit_first_loop): Likewise.
2951 (create_parallel_loop): Likewise.
2952 * ipa-split.c (split_function): Likewise.
2953 * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
2954 (vect_create_epilog_for_reduction): Likewise.
2955 * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
2956 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Likewise.
2957 * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
2958 (cond_if_else_store_replacement_1): Likewise.
2959 * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
2960 (remove_forwarder_block_with_phi): Likewise.
2961 * tree-ssa-pre.c (insert_into_preds_of_block): Likewise.
2962 * tree-predcom.c (initialize_root_vars): Likewise.
2963 (initialize_root_vars_lm): Likewise.
2964 * sese.c (sese_add_exit_phis_edge): Likewise.
2965 * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
2966 * tree-ssa.c (flush_pending_stmts): Likewise.
2967 (redirect_edge_var_map_add): Likewise.
2968 (ssa_redirect_edge): Likewise.
2969 * gimple-streamer-in.c (input_phi): Likewise.
2970 * tree-vect-stmts.c (vectorizable_load): Likewise.
2971 * tree-inline.c (copy_phis_for_bb): Likewise.
2972 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
2973 * tree-switch-conversion.c (fix_phi_nodes): Likewise.
2974 * tree-cfg.c (reinstall_phi_args): Likewise.
2975 (gimple_make_forwarder_block): Likewise.
2976 (add_phi_args_after_copy_edge): Likewise.
2977 (gimple_duplicate_sese_tail): Likewise.
2978
d923fe0f
SM
29792012-07-16 Sergey Melnikov <sergey.melnikov@intel.com>
2980
2981 * config/i386/i386.md (stack_protect_set): Disable the pattern
2982 for Android since Android libc (bionic) does not provide random
2983 value for stack protection guard at gs:0x14. Guard value
2984 will be provided from external symbol (default implementation).
2985 (stack_protect_set_<mode>): Likewise.
2986 (stack_protect_test): Likewise.
2987 (stack_protect_test_<mode>): Likewise.
2988
fdb6272c
HPN
29892012-07-16 Hans-Peter Nilsson <hp@axis.com>
2990
a502bdb6
HPN
2991 * config/cris/cris-protos.h (cris_legitimate_address_p): Declare.
2992 * config/cris/cris.h (CONSTANT_ADDRESS_P): Define in terms of
2993 CONSTANT_P and cris_legitimate_address_p.
2994 * config/cris/cris.c (cris_legitimate_address_p): Make non-static.
2995 (cris_preferred_reload_class): Don't return GENERAL_REGS as
2996 preferred to MOF_SRP_REGS.
ff57d866 2997
dec4306f
HPN
2998 * config/cris/cris.c (cris_init_libfuncs): Handle initialization
2999 of library functions for basic atomic compare-and-swap.
3000 * config/cris/cris.h (TARGET_ATOMICS_MAY_CALL_LIBFUNCS): New macro.
dc7f4baf 3001 * config/cris/cris.opt (munaligned-atomic-may-use-library): New option.
dec4306f
HPN
3002 * config/cris/sync.md ("atomic_fetch_<atomic_op_name><mode>")
3003 ("cris_atomic_fetch_<atomic_op_name><mode>_1")
3004 ("atomic_compare_and_swap<mode>")
dc7f4baf
HPN
3005 ("cris_atomic_compare_and_swap<mode>_1"): Make conditional on
3006 TARGET_ATOMICS_MAY_CALL_LIBFUNCS for sizes larger than byte.
24ddb79c
HPN
3007 * config/cris/cris.c (cris_print_operand) <case 'P', 'q'>: New cases.
3008 * config/cris/sync.md (atomic_op_op_cnstr): New code_attr.
3009 (atomic_op_op_pred): Ditto.
3010 (atomic_op_mnem_pre_op2): Renamed from atomic_op_mnem_pre; to
3011 reflect the change to include %2 in expansion. All callers changed.
3012 (qm3): New mode_attr.
3013 ("atomic_fetch_<atomic_op_name><mode>"): Use <atomic_op_op_pred>
9786913b 3014 as predicate for operand 2.
24ddb79c
HPN
3015 ("cris_atomic_fetch_<atomic_op_name><mode>_1"): Update FIXME. Use
3016 "<atomic_op_op_pred>" "<atomic_op_op_cnstr>" for predicate and
3017 constraint for operand 2.
3018 ("atomic_compare_and_swap<mode>"): Add FIXME. Change predicate to
3019 nonmemory_operand for operand 3.
3020 ("cris_atomic_compare_and_swap<mode>_1"): Change operand 3 to
3021 exclude memory. Improve emitted sync code for v10 and v32. Use
3022 <qm3> instead of <m> for size designator for cmp.
3023 ("atomic_compare_and_swap<mode>"): Change predicate to
3024 nonmemory_operand for operand 3. Add FIXME.
1cdea33b
HPN
3025 ("cris_atomic_compare_and_swap<mode>_1"): Change predicates and
3026 constraints for operand 3 to exclude memory.
3027 ("atomic_fetch_<atomic_op_name><mode>")
fdb6272c
HPN
3028 ("atomic_compare_and_swap<mode>"): Gate expand_mem_thread_fence
3029 calls on result of call to need_atomic_barrier_p.
3030
cb00489c
RS
30312012-07-15 Richard Sandiford <rdsandiford@googlemail.com>
3032
3033 * config/mips/mips.md (move_type): Replace mfhilo and mthilo
3034 with mflo and mtlo.
3035 (type): Split mfhilo into mfhi and mflo. Split mthilo into mthi
3036 and mtlo. Adjust move_type->type mapping.
3037 (may_clobber_hilo): Split mthilo into mthi and mtlo.
3038 (*movdi_32bit, *movdi_32bit_mips16, *movdi_64bit, *movdi_64bit_mips16)
3039 (*mov<mode>_internal, *mov<mode>_mips16, *movhi_internal)
3040 (*movhi_mips16, *movqi_internal, *movqi_mips16): Use mtlo and mflo
3041 instead of mthilo and mfhilo.
3042 (mfhi<GPR:mode>_<HILO:mode>): Use mfhi instead of mfhilo.
3043 (mthi<GPR:mode>_<HILO:mode>): Use mthi instead of mthilo.
3044 * config/mips/mips-dsp.md (mips_extr_w, mips_extr_r_w, mips_extr_rs_w)
3045 (mips_extr_s_h, mips_extp, mips_extpdp, mips_shilo, mips_mthlip):
3046 Use mflo instead of mfhilo.
3047 * config/mips/10000.md (r10k_arith): Split mthilo.
3048 (r10k_mfhi, r10k_mflo): Use mfhi and mflo directly.
3049 * config/mips/sb1.md (ir_sb1_mfhi, ir_sb1_mflo): Likewise.
3050 (ir_sb1_mthilo): Split mthilo into mthi and mtlo.
3051 * config/mips/20kc.md (r20kc_imthilo, r20kc_imfhilo): Split
3052 mthilo and mfhilo.
3053 * config/mips/24k.md (r24k_int_mfhilo, r24k_int_mthilo): Likewise.
3054 * config/mips/4130.md (vr4130_class, vr4130_mfhilo, vr4130_mthilo):
3055 Likewise.
3056 * config/mips/4k.md (r4k_int_mthilo, r4k_int_mfhilo): Likewise.
3057 * config/mips/5400.md (ir_vr54_hilo): Likewise.
3058 * config/mips/5500.md (ir_vr55_mthilo, ir_vr55_mfhilo): Likewise.
3059 * config/mips/5k.md (r5k_int_mthilo, r5k_int_mfhilo): Likewise.
3060 * config/mips/7000.md (rm7_mthilo, rm7_mfhilo): Likewise.
3061 * config/mips/74k.md (r74k_int_mfhilo, r74k_int_mthilo): Likewise.
3062 * config/mips/9000.md (rm9k_mfhilo, rm9k_mthilo): Likewise.
3063 * config/mips/generic.md (generic_hilo): Likewise.
3064 * config/mips/loongson2ef.md (ls2_alu): Likewise.
3065 * config/mips/loongson3a.md (ls3a_mfhilo): Likewise.
3066 * config/mips/octeon.md (octeon_imul_o1, octeon_imul_o2)
3067 (octeon_mfhilo_o1, octeon_mfhilo_o2): Likewise.
3068 * config/mips/sr71k.md (ir_sr70_hilo): Likewise.
3069 * config/mips/xlr.md (xlr_hilo): Likewise.
3070
9b024103
AS
30712012-07-14 Andrew Stubbs <ams@codesourcery.com>
3072 Sandra Loosemore <sandra@codesourcery.com>
3073
3074 * config/sh/sh.h (SH_ASM_SPEC): Add spaces between options.
3075
abc4d4e9
UB
30762012-07-14 Uros Bizjak <ubizjak@gmail.com>
3077
3078 * config/i386/i386.c (ix86_set_reg_reg_cost): Enable TFmode/TCmode
3079 for TARGET_SSE.
3080
ee7b28eb
SB
30812012-07-14 Steven Bosscher <steven@gcc.gnu.org>
3082
3083 * toplev.c (init_asm_output): Open asm_out_file in 'w' mode.
3084
cf0d4e15
BS
30852012-07-13 Bill Schmidt <wschmidt@linux.ibm.com>
3086
3087 PR bootstrap/53955
3088 * config/spu/spu.c (spu_init_cost): Mark static.
3089 (spu_add_stmt_cost): Likewise.
3090 (spu_finish_cost): Likewise.
3091 (spu_destroy_cost_data): Likewise.
3092 * config/i386/i386.c (ix86_init_cost): Mark static.
3093 (ix86_add_stmt_cost): Likewise.
3094 (ix86_finish_cost): Likewise.
3095 (ix86_destroy_cost_data): Likewise.
3096 * config/rs6000/rs6000.c (rs6000_init_cost): Mark static.
3097 (rs6000_add_stmt_cost): Likewise.
3098 (rs6000_finish_cost): Likewise.
3099 (rs6000_destroy_cost_data): Likewise.
3100
c8b8af71
SB
31012012-07-13 Steven Bosscher <steven@gcc.gnu.org>
3102
3103 * ggc.h (ggc_internal_alloc_stat, ggc_alloc_typed_stat,
3104 ggc_internal_cleared_alloc_stat, ggc_cleared_alloc_htab_ignore_args,
3105 ggc_cleared_alloc_ptr_array_two_args, ggc_splay_alloc): Add
3106 ATTRIBUTE_MALLOC.
3107 * alloc-pool.h (pool_alloc): Likewise.
3108
3109 * final.c (final): Do not loop to find max_uid.
3110
e4da1e17
SB
31112012-07-13 Steven Bosscher <steven@gcc.gnu.org>
3112
3113 * emit-rtl.c (make_debug_insn_raw, make_jump_insn_raw): Make static.
3114 * rtl.h (make_debug_insn_raw, make_jump_insn_raw): Remove prototypes.
3115
a8ab21e5
RG
31162012-07-13 Richard Guenther <rguenther@suse.de>
3117
3118 PR tree-optimization/53907
3119 * tree-ssa-forwprop.c (associate_pointerplus): New function.
3120 (ssa_forward_propagate_and_combine): Call it.
3121
e8f808b3
RG
31222012-07-13 Richard Guenther <rguenther@suse.de>
3123
3124 PR tree-optimization/53922
3125 * tree-vrp.c (value_inside_range): Change prototype to take
3126 min/max instead of value-range.
3127 (range_includes_zero_p): Likewise. Return the result from
3128 value_inside_range.
3129 (extract_range_from_binary_expr_1): Adjust to handle dont-know
3130 return value from range_includes_zero_p.
3131 (extract_range_from_unary_expr_1): Likewise.
3132 (compare_range_with_value): Likewise.
3133 (vrp_meet_1): Likewise.
3134
c3e7ee41
BS
31352012-07-13 Bill Schmidt <wschmidt@linux.ibm.com>
3136
3137 * doc/tm.texi: Regenerate.
3138 * doc/tm.texi.in (TARGET_VECTORIZE_INIT_COST): New hook.
3139 (TARGET_VECTORIZE_ADD_STMT_COST): Likewise.
3140 (TARGET_VECTORIZE_FINISH_COST): Likewise.
3141 (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
3142 * targhooks.c (default_init_cost): New function.
3143 (default_add_stmt_cost): Likewise.
3144 (default_finish_cost): Likewise.
3145 (default_destroy_cost_data): Likewise.
3146 * targhooks.h (default_init_cost): New decl.
3147 (default_add_stmt_cost): Likewise.
3148 (default_finish_cost): Likewise.
3149 (default_destroy_cost_data): Likewise.
3150 * target.def (init_cost): New DEFHOOK.
3151 (add_stmt_cost): Likewise.
3152 (finish_cost): Likewise.
3153 (destroy_cost_data): Likewise.
3154 * target.h (struct _stmt_vec_info): New extern decl.
3155 (stmt_vectype): Likewise.
3156 (stmt_in_inner_loop_p): Likewise.
3157 * tree-vectorizer.h (stmt_info_for_cost): New struct/typedef.
3158 (stmt_vector_for_cost): New VEC/typedef.
3159 (add_stmt_info_to_vec): New function.
3160 (struct _slp_tree): Remove cost.inside_of_loop field.
3161 (struct _slp_instance): Remove cost.inside_of_loop field; add
3162 stmt_cost_vec field.
3163 (SLP_INSTANCE_INSIDE_OF_LOOP_COST): Remove macro.
3164 (SLP_INSTANCE_STMT_COST_VEC): New accessor macro.
3165 (SLP_TREE_INSIDE_OF_LOOP_COST): Remove macro.
3166 (struct _vect_peel_extended_info): Add stmt_cost_vec field.
3167 (struct _loop_vec_info): Add target_cost_data field.
3168 (LOOP_VINFO_TARGET_COST_DATA): New accessor macro.
3169 (struct _bb_vec_info): Add target_cost_data field.
3170 (BB_VINFO_TARGET_COST_DATA): New accessor macro.
3171 (struct _stmt_vec_info): Remove cost.inside_of_loop field.
3172 (STMT_VINFO_INSIDE_OF_LOOP_COST): Remove macro.
3173 (stmt_vinfo_set_inside_of_loop_cost): Remove function.
3174 (init_cost): New function.
3175 (add_stmt_cost): Likewise.
3176 (finish_cost): Likewise.
3177 (destroy_cost_data): Likewise.
3178 (vect_model_simple_cost): Change parameter list.
3179 (vect_model_store_cost): Likewise.
3180 (vect_model_load_cost): Likewise.
3181 (record_stmt_cost): New extern decl.
3182 (vect_get_load_cost): Change parameter list.
3183 (vect_get_store_cost): Likewise.
3184 * tree-vect-loop.c (new_loop_vec_info): Call init_cost.
3185 (destroy_loop_vec_info): Call destroy_cost_data.
3186 (vect_estimate_min_profitable_iters): Remove old calculation of
3187 inside costs; call finish_cost instead.
3188 (vect_model_reduction_cost): Call add_stmt_cost instead of old
3189 inside-costs calculation.
3190 (vect_model_induction_cost): Likewise.
3191 * tree-vect-data-refs.c (vect_get_data_access_cost): Change to
3192 return a stmt_vector_for_cost; modify calls to vect_get_load_cost
3193 and vect_get_store_cost to obtain the value to return.
3194 (vect_peeling_hash_get_lowest_cost): Obtain a stmt_cost_vec from
3195 vect_get_data_access_cost and store it in the minimum peeling
3196 structure.
3197 (vect_peeling_hash_choose_best_peeling): Change the parameter list
3198 to add a (stmt_vector_for_cost *) output parameter, and set its value.
3199 (vect_enhance_data_refs_alignment): Ignore the new return value from
3200 calls to vect_get_data_access_cost; obtain stmt_cost_vec from
3201 vect_peeling_hash_choose_best_peeling and pass its contents to the
3202 target cost model.
3203 * tree-vect-stmts.c (stmt_vectype): New function.
3204 (stmt_in_inner_loop_p): Likewise.
3205 (record_stmt_cost): Likewise.
3206 (vect_model_simple_cost): Add stmt_cost_vec parameter; call
3207 record_stmt_cost instead of old calculation; don't call
3208 stmt_vinfo_set_inside_of_loop_cost.
3209 (vect_model_promotion_demotion_cost): Call add_stmt_cost instead of
3210 old calculation; don't call stmt_vinfo_set_inside_of_loop_cost.
3211 (vect_model_store_cost): Add stmt_cost_vec parameter; call
3212 record_stmt_cost instead of old calculation; add stmt_cost_vec
3213 parameter to vect_get_store_cost call; don't call
3214 stmt_vinfo_set_inside_of_loop_cost.
3215 (vect_get_store_cost): Add stmt_cost_vec parameter; call
3216 record_stmt_cost instead of old calculation.
3217 (vect_model_load_cost): Add stmt_cost_vec parameter; call
3218 record_stmt_cost instead of old calculation; add stmt_cost_vec
3219 parameter to vect_get_load_cost call; don't call
3220 stmt_vinfo_set_inside_of_loop_cost.
3221 (vect_get_load_cost): Add stmt_cost_vec parameter; call
3222 record_stmt_cost instead of old calculation.
3223 (vectorizable_call): Add NULL parameter to vect_model_simple_cost call.
3224 (vectorizable_conversion): Likewise.
3225 (vectorizable_assignment): Likewise.
3226 (vectorizable_shift): Likewise.
3227 (vectorizable_operation): Likewise.
3228 (vectorizable_store): Add NULL parameter to vect_model_store_cost call.
3229 (vectorizable_load): Add NULL parameter to vect_model_load_cost call.
3230 (new_stmt_vec_info): Don't set STMT_VINFO_INSIDE_OF_LOOP_COST.
3231 * config/spu/spu.c (TARGET_VECTORIZE_INIT_COST): New macro def.
3232 (TARGET_VECTORIZE_ADD_STMT_COST): Likewise.
3233 (TARGET_VECTORIZE_FINISH_COST): Likewise.
3234 (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
3235 (spu_init_cost): New function.
3236 (spu_add_stmt_cost): Likewise.
3237 (spu_finish_cost): Likewise.
3238 (spu_destroy_cost_data): Likewise.
3239 * config/i386/i386.c (ix86_init_cost): New function.
3240 (ix86_add_stmt_cost): Likewise.
3241 (ix86_finish_cost): Likewise.
3242 (ix86_destroy_cost_data): Likewise.
3243 (TARGET_VECTORIZE_INIT_COST): New macro def.
3244 (TARGET_VECTORIZE_ADD_STMT_COST): Likewise.
3245 (TARGET_VECTORIZE_FINISH_COST): Likewise.
3246 (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
3247 * config/rs6000/rs6000.c (TARGET_VECTORIZE_INIT_COST): New macro def.
3248 (TARGET_VECTORIZE_ADD_STMT_COST): Likewise.
3249 (TARGET_VECTORIZE_FINISH_COST): Likewise.
3250 (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.
3251 (rs6000_init_cost): New function.
3252 (rs6000_add_stmt_cost): Likewise.
3253 (rs6000_finish_cost): Likewise.
3254 (rs6000_destroy_cost_data): Likewise.
3255 * tree-vect-slp.c (vect_free_slp_instance): Free stmt_cost_vec.
3256 (vect_create_new_slp_node): Don't set SLP_TREE_INSIDE_OF_LOOP_COST.
3257 (vect_get_and_check_slp_defs): Add stmt_cost_vec parameter; add
3258 stmt_cost_vec parameter to vect_model_store_cost and
3259 vect_model_simple_cost calls.
3260 (vect_build_slp_tree): Remove inside_cost parameter; add stmt_cost_vec
3261 parameter; add stmt_cost_vec parameter to vect_get_and_check_slp_defs,
3262 vect_model_load_cost, and recursive vect_build_slp_tree calls; prevent
3263 calculating cost more than once for loads; remove inside_cost
3264 parameter from recursive vect_build_slp_tree calls; call
3265 record_stmt_cost instead of old calculation.
3266 (vect_analyze_slp_instance): Allocate stmt_cost_vec and save it with
3267 the instance; free it on premature exit; remove inside_cost parameter
3268 from vect_build_slp_tree call; add stmt_cost_vec parameter to
3269 vect_build_slp_tree call; don't set SLP_INSTANCE_INSIDE_OF_LOOP_COST.
3270 (new_bb_vec_info): Call init_cost.
3271 (destroy_bb_vec_info): Call destroy_cost_data.
3272 (vect_bb_vectorization_profitable_p): Call add_stmt_cost for each
3273 statement recorded with an SLP instance; call finish_cost instead of
3274 the old calculation.
3275 (vect_update_slp_costs_according_to_vf): Record statement costs from
3276 SLP instances, multiplying by the appropriate number of copies; don't
3277 update SLP_INSTANCE_INSIDE_OF_LOOP_COST.
3278
44fabee4
RG
32792012-07-13 Richard Guenther <rguenther@suse.de>
3280
3281 PR middle-end/53937
3282 * builtins.c (get_pointer_alignment_1): Handle constant
3283 pointers.
3284
b1435931
RS
32852012-07-13 Richard Sandiford <rdsandiford@googlemail.com>
3286 Steven Bosscher <steven@gcc.gnu.org>
3287 Bernd Schmidt <bernds@codesourcery.com>
3288
3289 PR rtl-optimization/53908
3290 * df-problems.c (can_move_insns_across): When doing
3291 memory-reference book-keeping, handle call insns.
3292
a2faea4b
RG
32932012-07-13 Richard Guenther <rguenther@suse.de>
3294
3295 * gimple.c (gimple_types_compatible_p_1): Remove redundant
3296 type attribute comparisons.
3297 (gimple_canonical_types_compatible_p): Likewise.
3298
e098c169
HPN
32992012-07-12 Hans-Peter Nilsson <hp@axis.com>
3300
3301 PR rtl-optimization/53176
3302 * rtlanal.c (rtx_cost): Adjust default cost for X with a
3303 UNITS_PER_WORD factor for all X according to the size of
3304 its mode, not just for SUBREGs with untieable modes.
3305 Handle SET. Use factor * factor for MULT, DIV, UDIV,
3306 MOD, UMOD.
3307
8c15b4b0
UB
33082012-07-12 Uros Bizjak <ubizjak@gmail.com>
3309
3310 * config/i386/i386.md (QImode and HImode cmove splitters): Merge
3311 QImode and HImode splitters. Use ix86_comparison_operator.
3312 Explicitly match FLAGS_REG.
3313 (DFmode cmove splitter): Explicitly match FLAGS_REG.
3314
6bdf3519
SB
33152012-07-11 Steven Bosscher <steven@gcc.gnu.org>
3316
3317 * expr.h (can_move_by_pieces): Move prototype from here ...
3318 * tree.h (can_move_by_pieces): ... to here.
3319 * optabs.h (set_widening_optab_handler): Use XCNEW.
3320 * gimplify.c: Do not include expr.h.
3321
3322 * toplev.c: Do not include dwarf2out.h.
3323 * config/ia64/ia64.c: Likewise.
3324 * config/sparc/sparc.c: Likewise.
3325 * config/sparc/t-sparc (sparc.o): Fix dependencies.
3326
3327 * Makefile.in (toplev.o): Fix dependencies
3328 (c-family/c-gimplify.o): Likewise.
3329 (c-family/c-common.o): Likewise.
3330
b8244d74
SB
33312012-07-11 Steven Bosscher <steven@gcc.gnu.org>
3332
3333 * basic-block.h (struct edge_def): Use basic_block instead of
3334 basic_block_def *.
3335 * cfgloop.h (struct loop_exit, struct loop): Likewise.
3336 * gengenrtl.c (type_from_format): Likewise. Also for 'tree'
3337 instead of union tree_node *.
3338 * rtl.h (union rtunion_def, emit_insn_before_noloc,
3339 emit_insn_after_noloc, add_insn_before, add_insn_after,
3340 debug_bb_slim): Likewise.
3341 * tree-inline.h (struct copy_body_data): Likewise.
3342 * sched-rgn.c (dump_region_dot): Likewise.
3343 * gimple.h (struct gimple_statement_base, gimple_set_bb,
3344 gsi_move_to_bb_end): Likewise.
3345 * sched-vis.c (debug_bb_slim): Likewise.
3346 (debug_bb_n_slim): Likewise.
3347 * config/mn10300/mn10300.c (mn10300_insert_setlb_lcc): Likewise.
3348 (mn10300_block_contains_call):
3349
c48acc4f
GY
33502012-07-11 Greta Yorsh <Greta.Yorsh@arm.com>
3351
3352 PR target/53859
3353 * config/arm/arm.c (arm_early_load_addr_dep): Handle new
3354 epilogue patterns.
3355
b0af456a
JW
33562012-07-11 Jonathan Wakely <jwakely.gcc@gmail.com>
3357
3358 * doc/extend.texi (Namespace Association): Alter cautionary text.
3359
c03cfe1e
OE
33602012-07-10 Oleg Endo <olegendo@gcc.gnu.org>
3361
3362 PR target/53911
3363 * config/sh/sh.md: Remove displacement addresssing related splits.
3364
87e2a8fd
XDL
33652012-07-10 Xinliang David Li <davidxl@google.com>
3366
3367 * doc/invoke.texi: New option documented.
3368 * flag-types.h: New enum type.
3369 * gimplify.c (gimplify_bind_expr): Control
3370 clobber generation with new option.
3371 (gimplify_target_expr): Ditto.
8c15b4b0 3372 * common.opt: New option.
87e2a8fd 3373
2f011375
JB
33742012-07-10 Julian Brown <julian@codesourcery.com>
3375
3376 * config/arm/arm.md (movsi): Don't split symbol refs here.
3377 (define_split): New.
3378
175aed00
AS
33792012-07-10 Andreas Schwab <schwab@linux-m68k.org>
3380
3381 PR bootstrap/53913
3382 * config/m68k/m68k.c (m68k_epilogue_uses): New.
3383 * config/m68k/m68k.h (EPILOGUE_USES): Use it.
3384 * config/m68k/m68k-protos.h (m68k_epilogue_uses): Add prototype.
3385
3f30a9a6
RH
33862012-07-10 Richard Henderson <rth@redhat.com>
3387
30a7bac9
RH
3388 * target.def (builtin_mul_widen_even, builtin_mul_widen_odd): Remove.
3389 * system.h (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Poison.
3390 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Poison.
3391 * config/i386/i386.c (IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V4SI): Remove.
3392 (IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V8SI): Remove.
3393 (IX86_BUILTIN_VEC_WIDEN_UMUL_ODD_V4SI): Remove.
3394 (IX86_BUILTIN_VEC_WIDEN_UMUL_ODD_V8SI): Remove.
3395 (IX86_BUILTIN_VEC_WIDEN_SMUL_EVEN_V4SI): Remove.
3396 (IX86_BUILTIN_VEC_WIDEN_UMUL_EVEN_V4SI): Remove.
3397 (IX86_BUILTIN_VEC_WIDEN_UMUL_EVEN_V8SI): Remove.
3398 (bdesc_args): Remove entries to match.
3399 (ix86_builtin_mul_widen_even, ix86_builtin_mul_widen_odd): Remove.
3400 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Remove.
3401 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Remove.
3402 * config/rs6000/rs6000.c (rs6000_builtin_mul_widen_even): Remove.
3403 (rs6000_builtin_mul_widen_odd): Remove.
3404 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Remove.
3405 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Remove.
3406 * config/spu/spu.c (spu_builtin_mul_widen_even): Remove.
3407 (spu_builtin_mul_widen_odd): Remove.
3408 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): Remove.
3409 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): Remove.
3410 * doc/tm.texi.in: Don't document the removed hooks.
3411
6ae6116f
RH
3412 * tree-vect-stmts.c (supportable_widening_operation): Expand
3413 WIDEN_MULT_EXPR via VEC_WIDEN_MULT_EVEN/ODD_EXPR if possible.
3414
00f07b86
RH
3415 * expmed.c (expmed_mult_highpart): Rename from expand_mult_highpart.
3416 (expmed_mult_highpart_optab): Rename from expand_mult_highpart_optab.
3417 * optabs.c (can_mult_highpart_p): New.
3418 (expand_mult_highpart): New.
3419 * expr.c (expand_expr_real_2) [MULT_HIGHPART_EXPR): Use it.
3420 * tree-vect-generic.c (expand_vector_operations_1): Don't expand
3421 by pieces if can_mult_highpart_p.
3422 (expand_vector_divmod): Use can_mult_highpart_p and always
3423 generate MULT_HIGHPART_EXPR.
3424 * tree-vect-patterns.c (vect_recog_divmod_pattern): Likewise.
3425 * tree-vect-stmts.c (vectorizable_operation): Likewise.
3426
9283726f
RH
3427 * config/spu/spu-builtins.md (spu_mpy): Move to spu.md.
3428 (spu_mpyu, spu_mpyhhu, spu_mpyhh): Likewise.
3429 * config/spu/spu.md (vec_widen_smult_odd_v8hi): Rename from spu_mpy.
3430 (vec_widen_umult_odd_v8hi): Rename from spu_mpyu.
3431 (vec_widen_smult_even_v8hi): Rename from spu_mpyhh.
3432 (vec_widen_umult_even_v8hi): Rename from spu_mpyhhu.
3433 * config/spu/spu-builtins.def: Update pattern names to match.
3434
2371eaec
RH
3435 * config/rs6000/altivec.md (vec_widen_umult_even_v16qi): Rename
3436 from altivec_vmuleub.
3437 (vec_widen_smult_even_v16qi): Rename from altivec_vmulesb.
3438 (vec_widen_umult_even_v8hi): Rename from altivec_vmuleuh.
3439 (vec_widen_smult_even_v8hi): Rename from altivec_vmulesh.
3440 (vec_widen_umult_odd_v16qi): Rename from altivec_vmuloub.
3441 (vec_widen_smult_odd_v16qi): Rename from altivec_vmulosb.
3442 (vec_widen_umult_odd_v8hi): Rename from altivec_vmulouh.
3443 (vec_widen_smult_odd_v8hi): Rename from altivec_vmulosh.
3444 * config/rs6000/rs6000-builtin.def: Update pattern names to match.
3445
c6b37fab
RH
3446 * config/i386/sse.md (vec_widen_umult_even_v8si): Rename from
3447 avx2_umulv4siv4di3.
3448 (vec_widen_umult_even_v4si): Rename from sse2_umulv2siv2di3.
3449 (vec_widen_smult_even_v8si): Rename from avx2_mulv4siv4di3.
3450 (mulv4si3): Remove XOP test shadowed by SSE4 test.
3451 * config/i386/i386.c (bdesc_args): Update pattern names.
3452 (ix86_expand_sse2_mulvxdi3): Likewise.
3453 (ix86_expand_mul_widen_evenodd): Likewise. Remove XOP test
3454 shadowed by SSE4 test.
3455
3f30a9a6
RH
3456 * tree.def (VEC_WIDEN_MULT_EVEN_EXPR, VEC_WIDEN_MULT_ODD_EXPR): New.
3457 * cfgexpand.c (expand_debug_expr): Handle them.
3458 * expr.c (expand_expr_real_2): Likewise.
3459 * fold-const.c (fold_binary_loc): Likewise.
3460 * gimple-pretty-print.c (dump_binary_rhs): Likewise.
3461 * optabs.c (optab_for_tree_code): Likewise.
3462 * tree-cfg.c (verify_gimple_assign_binary): Likewise.
3463 * tree-inline.c (estimate_operator_cost): Likewise.
3464 * tree-pretty-print.c (dump_generic_node): Likewise.
3465 * tree.c (commutative_tree_code): Likewise.
3466 * tree-vect-generic.c (expand_vector_operations_1): Likewise.
3467 Handle type change before looking up optab.
3468 * optabs.h (OTI_vec_widen_umult_even, OTI_vec_widen_umult_odd): New.
3469 (OTI_vec_widen_smult_even, OTI_vec_widen_smult_odd): New.
3470 (vec_widen_umult_even_optab, vec_widen_umult_odd_optab): New.
3471 (vec_widen_smult_even_optab, vec_widen_smult_odd_optab): New.
3472 * genopinit.c (optabs): Initialize them.
3473 * doc/md.texi: Document them.
3474
e53a3e77
DC
34752012-07-10 Dehao Chen <dehao@google.com>
3476
3477 * tree.h (phi_arg_d): New field.
3478 * tree-flow-inline.h (gimple_phi_arg_block): New function.
3479 (gimple_phi_arg_block_from_edge): New function.
3480 (gimple_phi_arg_set_block): New function.
3481 (gimple_phi_arg_has_block): New function.
3482 (redirect_edge_var_map_block): New function.
3483 * tree-flow.h (_edge_var_map): New field.
8c15b4b0 3484 * tree-ssa-live.c (remove_unused_locals): Mark phi_arg's block as used.
e53a3e77
DC
3485 * tree-eh.c (cleanup_empty_eh_merge_phis): Add block debug info for
3486 redirect_edge_var_map_add.
3487 * tree-outof-ssa.c (_elim_graph): New field.
3488 (insert_partition_copy_on_edge): New parameter.
3489 (insert_value_copy_on_edge): New parameter.
3490 (insert_rtx_to_part_on_edge): New parameter.
3491 (insert_part_to_rtx_on_edge): New parameter.
3492 (elim_graph_add_edge): New parameter.
3493 (elim_graph_remove_succ_edge): New parameter.
3494 (FOR_EACH_ELIM_GRAPH_SUCC): New parameter.
3495 (FOR_EACH_ELIM_GRAPH_PRED): New parameter.
3496 (new_elim_graph): Add block debug info.
3497 (clear_elim_graph): Likewise.
3498 (delete_elim_graph): Likewise.
3499 (elim_graph_add_node): Likewise.
3500 (elim_graph_add_edge): Likewise.
3501 (elim_graph_remove_succ_edge): Likewise.
3502 (eliminate_build): Likewise.
3503 (elim_forward): Likewise.
3504 (elim_unvisited_predecessor): Likewise.
3505 (elim_backward): Likewise.
3506 (elim_create): Likewise.
3507 (eliminate_phi): Likewise.
3508 (insert_backedge_copies): Likewise.
3509 * tree-into-ssa.c (insert_phi_nodes_for): Add block debug info for
3510 add_phi_arg.
3511 (rewrite_add_phi_arguments): Likewise.
3512 * tree-ssa-loop-im.c (execute_sm_if_changed): Likewise.
3513 * tree-ssa-tail-merge.c (replace_block_by): Likewise.
3514 * tree-ssa-threadupdate.c (copy_phi_args): Likewise.
3515 * tree-loop-distribution.c (update_phis_for_loop_copy): Likewise.
3516 * tree-ssa-loop-manip.c (create_iv): Likewise.
3517 (add_exit_phis_edge): Likewise.
3518 (split_loop_exit_edge): Likewise.
3519 (copy_phi_node_args): Likewise.
3520 (tree_transform_and_unroll_loop): Likewise.
3521 * value-prof.c (gimple_ic): Likewise.
3522 (gimple_stringop_fixed_value): Likewise.
3523 * tree-tailcall.c (add_successor_phi_arg): Likewise.
3524 (eliminate_tail_call): Likewise.
3525 (create_tailcall_accumulator): Likewise.
3526 (tree_optimize_tail_calls_1): Likewise.
3527 * tree-phinodes.c (add_phi_arg): Likewise.
3528 (make_phi_node): Likewise.
3529 (resize_phi_node): Likewise.
3530 (remove_phi_arg_num): Likewise.
3531 * omp-low.c (expand_parallel_call): Likewise.
3532 (expand_omp_for_static_chunk): Likewise.
3533 * tree-vect-loop-manip.c (slpeel_update_phis_for_duplicate_loop):
3534 Likewise.
3535 (slpeel_update_phi_nodes_for_guard1): Likewise.
3536 (slpeel_update_phi_nodes_for_guard2): Likewise.
3537 (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
3538 (set_prologue_iterations): Likewise.
3539 (slpeel_tree_peel_loop_to_edge): Likewise.
3540 (vect_loop_versioning): Likewise.
3541 * tree-parloops.c (create_phi_for_local_result): Likewise.
3542 (transform_to_exit_first_loop): Likewise.
3543 (create_parallel_loop): Likewise.
3544 * ipa-split.c (split_function): Likewise.
3545 * tree-vect-loop.c (get_initial_def_for_induction): Likewise.
3546 (vect_create_epilog_for_reduction): Likewise.
3547 * tree-vect-data-refs.c (vect_setup_realignment): Likewise.
3548 * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Likewise.
3549 * tree-ssa-phiopt.c (cond_store_replacement): Likewise.
3550 (cond_if_else_store_replacement_1): Likewise.
3551 * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
3552 (remove_forwarder_block_with_phi): Likewise.
3553 * tree-ssa-pre.c (insert_into_preds_of_block): Likewise.
3554 * tree-predcom.c (initialize_root_vars): Likewise.
3555 (initialize_root_vars_lm): Likewise.
3556 * sese.c (sese_add_exit_phis_edge): Likewise.
3557 * tree-ssa-dce.c (forward_edge_to_pdom): Likewise.
3558 * tree-ssa.c (flush_pending_stmts): Likewise.
3559 (redirect_edge_var_map_add): Likewise.
3560 (ssa_redirect_edge): Likewise.
3561 * gimple-streamer-in.c (input_phi): Likewise.
3562 * tree-vect-stmts.c (vectorizable_load): Likewise.
3563 * tree-inline.c (copy_phis_for_bb): Likewise.
3564 * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise.
3565 * tree-switch-conversion.c (fix_phi_nodes): Likewise.
3566 * tree-cfg.c (reinstall_phi_args): Likewise.
3567 (gimple_make_forwarder_block): Likewise.
3568 (add_phi_args_after_copy_edge): Likewise.
3569 (gimple_duplicate_sese_tail): Likewise.
3570
83d88a6d
OE
35712012-07-09 Oleg Endo <olegendo@gcc.gnu.org>
3572
3573 PR target/53886
3574 * config/sh/sh.c (sequence_insn_p): New function.
3575 (find_barrier, sh_insn_length_adjustment): Use it.
3576
1cd130b0
IS
35772012-07-09 Iain Sandoe <iain@codesourcery.com>
3578
3579 PR target/53283
3580 * config/i386/i386.c (ix86_fold_builtin): Call SUBTARGET_FOLD_BUILTIN
3581 if defined.
3582 * config/darwin.h: Rename TARGET_FOLD_BUILTIN to
3583 SUBTARGET_FOLD_BUILTIN.
3584 * config/rs6000/darwin.h: Map TARGET_FOLD_BUILTIN onto
3585 SUBTARGET_FOLD_BUILTIN.
3586
f29234df
IS
35872012-07-09 Iain Sandoe <iain@codesourcery.com>
3588
3589 * config/darwin.h (SUBTARGET_C_COMMON_OVERRIDE_OPTIONS): Move NeXT
3590 runtime exceptions model setting from here ...
3591 * config/darwin.c (darwin_override_options): ... to here.
3592
238065a7
SB
35932012-07-09 Steven Bosscher <steven@gcc.gnu.org>
3594
3595 PR tree-optimization/53887
3596 * tree-cfg.c (group_case_labels_stmt): Make non-static.
3597 * tree-flow.h (group_case_labels_stmt): Add prototype.
3598 * tree-switch-conversion.c (process_switch): Use group_case_labels_stmt
3599 to pre-process every switch.
3600
06e3e32b
JM
36012012-07-09 Jason Merrill <jason@redhat.com>
3602
3603 PR c++/53882
3604 * tree.c (type_contains_placeholder_1): Handle NULLPTR_TYPE.
3605 (type_hash_eq): Likewise.
3606
c61e5cc1
TV
36072012-07-09 Tom de Vries <tom@codesourcery.com>
3608 Richard Guenther <rguenther@suse.de>
3609
3610 * tree-ssa-ccp.c (optimize_unreachable): New function.
3611 (execute_fold_all_builtins): Use optimize_unreachable to optimize
3612 BUILT_IN_UNREACHABLE. Don't optimize after BUILT_IN_UNREACHABLE.
3613
02663f24
RG
36142012-07-09 Richard Guenther <rguenther@suse.de>
3615
3616 PR bootstrap/53898
3617 * graphite-optimize-isl.c: Make sure CU is not empty.
3618
e714561a
SB
36192012-07-09 Steven Bosscher <steven@gcc.gnu.org>
3620
3621 * gensupport.c (init_rtx_reader_args_cb): Start counting code
3622 generating patterns from 1 to free up 0 for CODE_FOR_nothing.
3623 * gencodes.c (main): Give CODE_FOR_nothing the value 0. Add
3624 the LAST_INSN_CODE marker at the end.
3625 * genoutput.c (nothing): New static struct data.
3626 (idata): Initialize to &nothing.
3627 (idata_end): Initialize to &nothing.next.
3628 (init_insn_for_nothing): New function to create dummy 'nothing' insn.
3629 (main): Use it.
3630 * genpeep.c (insn_code_number): Remove global variable.
3631 (gen_peephole): Take it as an argument instead.
3632 (main): Take insn_code_number from read_md_rtx.
3633 * optabs.h: Revert r161809:
3634 (optab_handlers): Change type of insn_code back to insn_code.
3635 (optab_handler, widening_optab_handler, set_optab_handler,
3636 set_widening_optab_handler, convert_optab_handler,
3637 set_convert_optab_handler, direct_optab_handler,
3638 set_direct_optab_handler): Remove int casts.
3639 Revert to treating the insn_code field as "insn_code".
3640
d16202ba
OE
36412012-07-08 Oleg Endo <olegendo@gcc.gnu.org>
3642
3643 * config/sh/sh.md (*return_i): Move trap_exit attribute check to ...
3644 * config/sh/sh.c (sh_cfun_trap_exit_p): ... this new function.
3645 * config/sh/sh-protos.h: Declare it.
3646
e6d46b5a
SB
36472012-07-08 Steven Bosscher <steven@gcc.gnu.org>
3648
3649 * mcf.c: Do not include tm.h, tree.h, and langhooks.h.
3650 (dump_fixup_graph): Use current_function_name.
3651 (adjust_cfg_counts): Likewise.
3652 * ira-conflicts.c: Do not include tree.h.
3653 (ira_build_conflicts): Use REG_USERVAR_P instead of DECL_ARTIFICIAL.
3654
cab4c510
OE
36552012-07-08 Oleg Endo <olegendo@gcc.gnu.org>
3656
3657 PR target/51244
3658 * config/sh/sh.md (*branch_true_eq, *branch_false_ne, nott): New insns.
3659
532aafad
SB
36602012-07-08 Steven Bosscher <steven@gcc.gnu.org>
3661
3662 * basic-block.h: Re-group most prototypes per file.
3663 (struct edge_list): Remove num_blocks field.
3664 (dump_bb_info): Adjust prototypes.
3665 (dump_reg_info): Move prototype to regs.h.
3666 * function.h: Do not include tree.h.
3667 Include vec.h, vecir.h, input.h and machmode.h to compensate.
3668 (function_name): New prototype.
3669 * gimple.h: Include tree.h to compensate for basic-block.h change.
3670 * langhooks.h: Note that tree.h is only necessary for enum tree_code.
3671 * regs.h (dump_reg_info): Prototype here.
3672 * regset.h: Adjust file reference in comment.
3673 (debug_regset): Remove prototype.
3674 * rtl.h: Include flags.h for flag_var_tracking_assignments.
3675 (MAY_HAVE_DEBUG_INSNS): Define as flag_var_tracking_assignments
3676 instead of no-longer-available tree.h's MAY_HAVE_DEBUG_STMTS.
3677 (dump_reg_info, dump_flow_info): Remove prototypes.
3678 * bb-reorder.c (set_edge_can_fallthru_flag): Move from cfganal.c
3679 to here, the only user. Make static.
3680 (reorder_basic_blocks): Call dump_reg_info before dump_flow_info.
3681 * cfg.c: Do not include tm.h, tree.h, rtl.h, hard-reg-set.h, regs.h,
3682 flags.h, function.h, except.h, diagnostic-core.h, tm_p.h, timevar.h,
3683 tree-pass.h, cfgloop.h, and tree-flow.h.
3684 Include basic-block.h, the first header I'd expect to be included.
3685 (reg_obstack): Move to df-core.c.
3686 (free_edge): Remove bogus ATTRIBUTE_UNUSED.
3687 (remove_edge_raw): Do not call tree-ssa's redirect_edge_var_map_clear.
3688 (redirect_edge_succ_nodup): Move to cfghooks.c.
3689 (dump_regset, debug_regset): Move to df-core.c.
3690 (dump_bb_info): Move to cfgrtl.c.
3691 (dump_reg_info): Move to regstat.c.
3692 (dump_flow_info): Move to cfgrtl.c.
3693 (debug_flow_info): Likewise.
3694 (dump_edge_info): Do not look at cfun, a CFG without cfun is nonsense.
3695 * cfganal.c: Do not include tm.h, rtl.h, obstack.h, hard-reg-set.h,
3696 insn-config.h, recog.h, diagnostic-core.h, tm_p.h, and cfgloop.h.
3697 (flow_active_insn_p, forwarder_block_p, can_fallthru,
3698 could_fall_through): Move to cfgrtl.c.
3699 (set_edge_can_fallthru_flag): Moved to bb-reorder.c.
3700 (create_edge_list): Do not set edge_list's removed num_blocks.
3701 (print_edge_list): Look at n_basic_blocks instead of num_blocks.
3702 (flow_nodes_print): Remove.
3703 (flow_edge_list_print): Remove.
3704 (inverted_post_order_compute): Use FOR_ALL_BB.
c4669594 3705 * cfgrtl.c (dump_flow_info): Moved from cfg.c.
532aafad
SB
3706 Do not call dump_reg_info.
3707 (debug_flow_info): Moved from cfg.c
3708 (dump_bb_info): Moved from cfg.c. Take 'verbose' argument
3709 to avoid looking at TDF_* flags from tree-pass.h.
3710 (flow_active_insn_p, forwarder_block_p, can_fallthru,
3711 could_fall_through): Moved from cfganal.c.
3712 (print_rtl_with_bb): Adjust dump_bb_info calls.
3713 * cfghooks.c (redirect_edge_succ_nodup): Moved from cfg.c.
3714 (remove_edge): Call redirect_edge_var_map_clear if IR_GIMPLE.
3715 (cfgcleanup.c): Look at MAY_HAVE_DEBUG_INSNS, not MAY_HAVE_DEBUG_STMTS.
3716 * cselib.c: Include tree.h with a FIXME.
3717 * df-core.c (reg_obstack): Moved from cfg.c.
3718 (dump_regset): Likewise.
3719 (debug_regset): Likewise. Make a DEBUG_FUNCTION.
3720 * final.c (compute_alignments): Call dump_reg_info before
3721 dump_flow_info.
3722 * function.c (function_name): New function.
3723 (current_function_name): Use it.
3724 * ifcvt.c (rest_of_handle_if_conversion): Call dump_reg_info before
3725 dump_flow_info.
3726 * ira-conflicts.c: Include tree.h with a note.
3727 * regstat.c (dump_reg_info): Moved here from cfg.c.
3728 * loop-init.c: Include regs.h instead of hard-reg-set.h.
3729 (rtl_loop_init): Call dump_reg_info before dump_flow_info.
3730 (rtl_loop_done): Likewise.
3731 * mcf.c: Include tree.h before langhooks.h.
3732 * predict.c (maybe_hot_count_p): Assert we have cfun.
3733 (probably_never_executed_bb_p): Likewise.
3734 * profile.c (compute_branch_probabilities): Use gimple_dump_cfg
3735 instead of dump_flow_info.
3736 * sched-deps.c: Include tree.h with a FIXME.
3737 (call_may_noreturn_p): Add FIXME note why this function has to
3738 look at function decls instead of function decl flags.
3739 * sched-vis.c: Include tree.h with a FIXME.
3740 (print_rtl_slim): Adjust dump_bb_info uses.
3741 * statistics.c (statistics_fini_pass_2): Use current_function_name
3742 to avoid including tree.h.
3743 (statistics_counter_event): Use function_name for the same reason.
3744 (statistics_histogram_event): Likewise.
3745 * tracer.c (tracer): Remove bogus gcc_assert. Use brief_dump_cfg
3746 instead of dump_flow_info.
3747 * var-tracking.c (variable_tracking_main_1): Call dump_reg_info
3748 before dump_flow_info.
3749 * doc/cfg.texi: Update CFG documentation.
3750 * Makefile.in (RTL_H): Depend on FLAGS_H.
3751 (GIMPLE_H): Depend on TREE_H.
3752 (FUNCTION_H): Depend on VEC_H, vecir.h, INPUT_H and MACHMODE_H,
3753 but no longer on TREE_H.
3754 (C_COMMON_H): Depend on TREE_H.
3755 (cselib.o, cse.o, cfganal.o, loop-init.o, ira-conflicts.o,
3756 sched-deps.o, sched-vis.o): Fixup dependencies.
3757
79bdca32
SB
37582012-07-08 Steven Bosscher <steven@gcc.gnu.org>
3759
3760 * alias.h: Do not include coretypes.h in header files.
3761 * cppbuiltin.h: Likewise.
3762 * double-int.h: Likewise.
3763 * gimple-fold.h: Likewise.
3764 * flags.h: Likewise.
3765 * tree-ssa-alias.h: Likewise.
3766 * gengtype.h (obstack_chunk_alloc, obstack_chunk_free,
3767 OBSTACK_CHUNK_SIZE): Define here to avoid dependency on coretypes.h.
3768 * Makefile.in (RTL_BASE_H): Depend on coretypes.h.
3769 (TREE_H): Likewise.
3770 (ALIAS_H): Do not depend on coretypes.h.
3771 (FLAGS_H): Likewise.
3772 (realmpfr.o): Depend on coretypes.h.
3773
4a061351
SB
37742012-07-08 Steven Bosscher <steven@gcc.gnu.org>
3775
3776 * Makefile.in (gengtype-lex.o, gengtype-parse.o, gengtype-state.o,
3777 gengtype.o): Add -DGENERATOR_FILE manually for host gengtype objects.
3778
0be8bd1a
RE
37792012-07-07 Richard Earnshaw <rearnsha@arm.com>
3780
3781 * arm.h (TARGET_CPU_CPP_BUILTINS): Remove Maverick support.
3782 (TARGET_FPA): Delete definition.
3783 (TARGET_MAVERICK): Likewise.
3784 (TARGET_FPA_EMU2): Likewise.
3785 (arm_fp_model): Remove FPA and Maverick models.
3786 (arm_arch_cirrus): Delete declaration.
3787 (FLOAT_WORDS_BIG_ENDIAN): Delete definition.
3788 (FIXED_REGISTERS): Remove FPA and Maverick support. Reorganize.
3789 (CALL_USED_REGISTERS): Likewise.
3790 (FIRST_FPA_REGNUM, LAST_FPA_REGNUM): Delete definition.
3791 (FIRST_VFP_REGNUM): Renumbered.
3792 (D7_VFP_REGNUM): Chain definition.
3793 (LAST_LO_VFP_REGNUM): Likewise.
3794 (FIRST_HI_VFP_REGNUM): Likewise.
3795 (LAST_HI_VFP_REGNUM): Likewise.
3796 (FIRST_IWMMXT_GR_REGNUM): Likewise.
3797 (LAST_IWMMXT_GR_REGNUM): Likewise.
3798 (FIRST_IWMMXT_REGNUM): Likewise.
3799 (LAST_IWMMXT_REGNUM): Likewise.
3800 (FRAME_POINTER_REGNUM): Renumbered.
3801 (ARG_POINTER_REGNUM): Renumbered.
3802 (FIRST_PSEUDO_REGISTER): Remove FPA and Maverick registers.
3803 (FIRST_CIRRUS_FP_REGNUM, LAST_CIRRUS_FP_REGNUM): Delete definitions.
3804 (HARD_REGNO_REGNUM): Remove FPA support.
3805 (REG_ALLOC_ORDER): Remove FPA and Maverick registers. Reorganize.
3806 (reg_class): Likewise.
3807 (REG_CLASS_NAMES): Likewise.
3808 (REG_CLASS_CONTENTS): Likewise.
3809 (CANNOT_CHANGE_MODE_CLASS): Never true. Update comment.
3810 (SECONDARY_INPUT_RELOAD_CLASS): Remove Maverick support.
3811 (CLASS_MAX_NREGS): Remove FPA and Maverick support.
3812 * aout.h (REGISTER_NAMES): Remove FPA and Maverick registers.
3813 Reorganize. Use AAPCS preferred names.
3814 (ADDITIONAL_REGISTER_NAMES): Remove aliases for Maverick. Update
3815 comments.
3816 (OVERLAPPING_REGISTER_NAMES): Update register numbering.
3817 * arm.c (FL_CIRRUS): Delete definition.
3818 (arm_arch_cirrus): Delete variable.
3819 (arm_float_words_big_endian): Delete function.
3820 (cirrus_memory_offset): Delete function.
3821 (output_mov_long_double_fpa_from_arm): Delete function.
3822 (output_mov_long_double_arm_from_fpa): Delete function.
3823 (output_mov_double_fpa_from_arm): Delete function.
3824 (output_mov_double_arm_from_fpa): Delete function.
3825 (emit_sfm): Delete function.
3826 (maybe_get_arm_condition_code): Update comment.
3827 (arm_file_start): Always use softvfp for softfloat systems.
3828 (thumb_core_reg_alloc_order): Adjust for updated register allocation.
3829 (arm_option_override): Remove FPA and Maverick support. Always
3830 default to vfp as the fallback FPU format.
3831 (use_return_insn): Remove FPA support.
3832 (arm_get_frame_offsets): Likewise.
3833 (arm_save_coproc_regs): Likewise.
3834 (arm_canonicalize_comparison): Remove Maverick support.
3835 (arm_select_cc_mode): Likewise.
3836 (arm_gen_compare_reg): Likewise.
3837 (arm_print_operand): Likewise.
3838 (arm_libcall_value_1): Remove FPA and Maverick support.
3839 (arm_function_value_regno_p): Likewise.
3840 (arm_apply_result_size): Likewise.
3841 (arm_legitimate_index_p): Likewise.
3842 (thumb2_legitimate_index_p): Likewise.
3843 (legitimize_reload_address): Likewise.
3844 (arm_register_move_cost): Likewise.
3845 (arm_hard_regno_mode_ok): Likewise.
3846 (arm_regno_class): Likewise.
3847 (arm_dbx_register_number): Likewise.
3848 (arm_emit_unwind_sequence): Likewise.
3849 (arm_conditional_register_usage): Likewise.
3850 * arm-protos.h (neg_const_double_rtx_ok_for_fpa): Remove declaration.
3851 (cirrus_memory_offset): Likewise.
3852 (output_move_long_double_fpa_from_arm): Likewise.
3853 (output_move_long_double_arm_from_fpa): Likewise.
3854 (output_move_double_fpa_from_arm): Likewise.
3855 (output_move_double_arm_from_fpa): Likewise.
3856 (arm_float_words_big_endian): Likewise.
3857 * arm.md (CC_REGNUM): Renumbered.
3858 (VFPCC_REGNUM): Moved here. Renumbered.
3859 (FPA_F0_REGNUM, FPA_F7_REGNUM): Delete.
3860 (attr fpu): Remove FPA and Maverick support.
3861 * vfp.md (VFPCC_REGNUM): Delete. Moved to arm.md.
3862 * arm-cores.def (ep9312): Remove Maverick support.
3863 * arm-arches.def (ep9312): Delete architecture.
3864 * arm-tables.opt: Regenerated.
3865
3866 * arm/linux-elf.h (FPUTYPE_DEFAULT): Set to vfp.
3867
8166ff4d
SB
38682012-07-07 Steven Bosscher <steven@gcc.gnu.org>
3869
3870 PR tree-optimization/53881
3871 * tree-switch-conversion.c (emit_case_bit_tests): Do not rely on
3872 comparing labels to establish uniqueness of a switch case target,
3873 use the CFG instead.
3874
f99391fe
UW
38752012-07-07 Ulrich Weigand <ulrich.weigand@linaro.org>
3876
3877 * combine.c (force_to_mode) [LSHIFTRT]: Avoid undefined behaviour
3878 due to negative shift amount.
3879
755e0546
HPN
38802012-07-07 Hans-Peter Nilsson <hp@axis.com>
3881
3882 Fix configure test for "stack protector support in target C library".
3883 * configure.ac (test_prefix, test_exec_prefix): Move setting from
3884 inside sysroot handling to before and outside it.
3885 * configure: Regenerate.
3886
d44f78af
KT
38872012-07-06 Kai Tietz <ktietz@redhat.com>
3888
3889 PR bootstrap/52947
3890 * config/i386/mingw32.h (NATIVE_SYSTEM_HEADER_DIR): Define it always
3891 as "/mingw/include".
3892
2b9d5ad7
AO
38932012-07-06 Alexandre Oliva <aoliva@redhat.com>
3894
3895 PR debug/53820
3896 * var-tracking.c (vt_add_function_parameter): Convert
3897 internal_arg_pointer into arg_pointer-based address even
3898 without DRAP.
3899
fe8fb1c4
AO
39002012-07-06 Alexandre Oilva <aoliva@redhat.com>
3901
3902 PR rtl-optimization/53827
3903 PR debug/53671
3904 PR debug/49888
3905 * alias.c (memrefs_conflict_p): Adjust offset and size by the
3906 same amount for alignment ANDs.
3907
6867d9a9
TV
39082012-07-06 Tom de Vries <tom@codesourcery.com>
3909
3910 PR tree-optimization/51879
3911 * tree-ssa-sccvn.c (copy_reference_ops_from_call)
3912 (visit_reference_op_call): Handle case that lhs is not an SSA_NAME.
3913 (visit_use): Also call visit_reference_op_call for calls with a vdef.
3914
4ec0a198
TV
39152012-07-06 Tom de Vries <tom@codesourcery.com>
3916
3917 PR tree-optimization/52009
3918 * tree-ssa-tail-merge.c (gimple_equal_p): For GIMPLE_ASSIGN, compare
3919 value numbers of gimple_vdef.
3920 * tree-ssa-sccvn.h (vn_reference_insert): Add vdef parameter to
3921 prototype.
3922 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle MODIFY_EXPR.
3923 (vn_reference_insert): Add and handle vdef parameter.
3924 (visit_reference_op_load): Add argument to vn_reference_insert call.
3925 (visit_reference_op_store): Find value number of vdef of store. Insert
3926 value number of vdef of store.
3927
e81941b7
UB
39282012-07-06 Uros Bizjak <ubizjak@gmail.com>
3929
3930 * config/i386/i386.md (simple lea to add peephole): Also transform
3931 RTXes where second PLUS operand matches output.
3932
6b908be7
UB
39332012-07-06 Uros Bizjak <ubizjak@gmail.com>
3934
3935 * config/i386/i386.c (construct_plt_address): Make static.
3936 * config/i386/i386-protos.h (construct_plt_address): Remove.
3937
2ba3d2a9
NC
39382012-07-06 Nick Clifton <nickc@redhat.com>
3939
3940 * config/mn10300/mn10300.c (mn10300_encode_section_info): Call
3941 default_encode_section_info.
3942
dea8f801
UB
39432012-07-06 Uros Bizjak <ubizjak@gmail.com>
3944
6b908be7 3945 PR target/53853
dea8f801
UB
3946 * config/i386/i386.c (x86_output_mi_thunk): For CM_LARGE_PIC model,
3947 emit PIC sequence for fnaddr symbol reference in advance.
3948
c253bc8c
EB
39492012-07-06 Eric Botcazou <ebotcazou@adacore.com>
3950
3951 Revert
3952 2012-06-14 Eric Botcazou <ebotcazou@adacore.com>
3953
3954 * dwarf2out.c (function_possibly_abstracted_p): New static function.
3955 (gen_subprogram_die): Use it function_possibly_abstracted_p in lieu of
3956 cgraph_function_possibly_inlined_p.
3957 (gen_inlined_subroutine_die): Return if the origin is to be ignored.
3958 (process_scope_var): Do not emit concrete instances of abstracted
3959 nested functions from here.
3960 (gen_decl_die): Emit the abstract instance if the function is possibly
3961 abstracted and not only possibly inlined.
3962 (dwarf2out_finish): Find the first non-abstract parent instance and
3963 attach concrete instances on the limbo list to it.
3964
37891309
RR
39652012-07-05 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
3966 Julian Brown <julian@codesourcery.com>
3967
6b908be7
UB
3968 PR target/48941
3969 PR target/51980
3970 * config/arm/neon-gen.ml (return_by_ptr): Delete.
3971 (print_function): Handle empty strings.
3972 (return): Delete use of return_by_ptr.
3973 (mask_shape_for_shuffle): New function.
3974 (mask_elems): Likewise.
3975 (shuffle_fn): Likewise.
3976 (params): Simplify and remove use of return_by_ptr.
3977 (get_shuffle): New function.
3978 (print_variant): Update.
3979 * config/arm/neon.ml (rev_elems): New function.
3980 (permute_range): Likewise.
3981 (zip_range): Likewise.
3982 (uzip_range): Likewise.
3983 (trn_range): Likewise.
3984 (zip_elems): Likewise.
3985 (uzip_elems): Likewise.
3986 (trn_elems): Likewise.
3987 (features): New enumeration Use_shuffle. Delete ReturnPtr.
3988 (pf_su_8_16): New.
3989 (suf_32): New.
3990 (ops): Update entries for Vrev64, Vrev32, Vrev16, Vtr, Vzip, Vuzp.
3991 * config/arm/arm_neon.h: Regenerate.
37891309 3992
44b9837c
RG
39932012-07-05 Richard Guenther <rguenther@suse.de>
3994
3995 * tree-pretty-print.c (dump_generic_node): Properly test
3996 the result of exact_log2.
3997
367d32f3
AK
39982012-07-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
3999
4000 * config/s390/s390-protos.h (s390_expand_movmem)
4001 (s390_expand_cmpmem): Add return value.
4002 * config/s390/s390.c (s390_expand_movmem, s390_expand_cmpmem):
4003 Return FALSE to use the library function in some cases.
4004 * config/s390/s390.md (movmem, cmpmem): Evaluate return value of C
4005 helper functions.
4006
604fbe51
AK
40072012-07-05 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
4008
4009 * config.gcc: Enable ifunc attribute by default on s390 and s390x.
4010
04a40cb9
SB
40112012-07-05 Steven Bosscher <steven@gcc.gnu.org>
4012
4013 * expr.c (try_casesi): Remove bogus ATTRIBUTE_UNUSED markers.
4014 * stmt.c (dump_case_nodes): New.
4015 (expand_case): Split out code generation parts into new functions.
4016 (expand_switch_as_decision_tree_p): Split out from expand_case.
4017 (emit_case_decision_tree): Likewise.
4018 (emit_case_dispatch_table): Likewise.
4019
76f722f4
MGD
40202012-07-05 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
4021
4022 * config/arm/iterators.md (SDF): New mode iterator.
4023 (V_if_elem): Add support for SF and DF modes.
4024 (V_reg): Likewise.
4025 (F_constraint): New mode iterator attribute.
4026 (F_fma_type): Likewise.
4027 config/arm/vfp.md (fma<SDF:mode>4): New pattern.
4028 (*fmsub<SDF:mode>4): Likewise.
4029 (*fmnsub<SDF:mode>4): Likewise.
4030 (*fmnadd<SDF:mode>4): Likewise.
4031
4b68f9ee
UB
40322012-07-04 Uros Bizjak <ubizjak@gmail.com>
4033
4034 * expmed.c (expand_mult): Initialize coeff and is_neg.
4035
33344a62
OE
40362012-07-04 Oleg Endo <olegendo@gcc.gnu.org>
4037
4038 * config/sh/predicates.md (zero_extend_operand): New predicate.
4039 * config/sh/sh.md (zero_extendhisi2): Simplify by using new
4040 zero_extend_operand predicate.
4041 (zero_extendqisi2): Likewise.
4042
3f1ae742
UB
40432012-07-04 Uros Bizjak <ubizjak@gmail.com>
4044
4045 PR middle-end/53321
4046 * ipa.c (symtab_remove_unreachable_nodes): Partially revert r187375
4047 to not call cgraph_propagate_frequency if something was changed.
4048
23af816c
RG
40492012-07-04 Richard Guenther <rguenther@suse.de>
4050
4051 PR middle-end/53433
4052 * gimple-fold.c (get_base_constructor): Do not return an
4053 error_mark_node DECL_INITIAL.
4054
6c9df5a0
RG
40552012-07-04 Richard Guenther <rguenther@suse.de>
4056
4057 PR tree-optimization/53844
4058 * tree-ssa-dse.c (dse_possible_dead_store_p): Properly handle
4059 the loop virtual PHI.
4060
e1b6bbea
RG
40612012-07-04 Richard Guenther <rguenther@suse.de>
4062
4063 PR tree-optimization/53849
4064 * tree-cfg.c (move_stmt_op): Only call add_referenced_var
4065 for duplicated locals. Use add_referenced_var_1 to avoid
4066 pushing/popping cfun.
4067
463d5aa0
KT
40682012-07-04 Kai Tietz <ktietz@redhat.com>
4069
4070 * config/i386/winnt.c (i386_pe_reloc_rw_mask): New function.
4071 * config/i386/i386-protos.h (i386_pe_reloc_rw_mask): Add
4072 prototype.
4073 * config/i386/cygming.h (TARGET_ASM_RELOC_RW_MASK): Define
4074 as i386_pe_reloc_rw_mask.
4075
cef8c100
RG
40762012-07-04 Richard Guenther <rguenther@suse.de>
4077
4078 * tree.c (find_decls_types_r): Handle TYPE_CONTEXT the same
4079 as in free_lang_data_in_type.
4080
b60cc080 40812012-07-04 Tobias Grosser <tobias@grosser.es>
3f1ae742 4082 Michael Matz <matz@suse.de>
b60cc080
TG
4083
4084 * Makefile.in (OBJS): Add graphite-optimize-isl.o.
4085 (graphite-optimize-isl.o): Add dependencies.
4086 * common.opt (floop-nest-optimize): New flag.
4087 * doc/invoke.texi (floop-nest-optimize): Document.
4088 * graphite-dependences.c (compute_deps): Export.
4089 * graphite-poly.h (compute_deps): Declare.
4090 * graphite-optimize-isl.c: New file.
4091 * graphite-poly.c (apply_poly_transforms): Run the loop
4092 nest optimizer.
4093 * tree-ssa-loop.c (gate_graphite_transforms): Enable graphite
4094 if -floop-nest-optimize is enabled.
4095
5e204a6e
OE
40962012-07-03 Oleg Endo <olegendo@gcc.gnu.org>
4097
4098 * config/sh/predicates.md (logical_and_operand): New predicate.
4099 * config/sh/constraints.md (Jmb, Jmw): New constraints.
4100 * config/sh/sh.md (andsi3): Move expander above insns. Add handling
4101 of 0xFFFF constant. Use logical_and_operand predicate and
4102 satisfies_constraint_Jmb, satisfies_constraint_Jmw.
4103 (*andsi3_compact): Make it an insn_and_split. Use
4104 logical_and_operand predicate. Add Jmb,Jmw alternatives.
4105
f5d30680
JM
41062012-07-03 Jason Merrill <jason@redhat.com>
4107
4108 PR c++/53826
4109 * tree.c (build_zero_cst): Handle NULLPTR_TYPE.
4110
f758c26c
NC
41112012-07-03 Nick Clifton <nickc@redhat.com>
4112
4113 * config/mep/mep.c (mep_reorg_regmove): Use
4114 next_nonnote_non_debug_insn to advance to the next insn. Do not
4115 expect delete_insn to return an rtx.
4116
9795be39
RG
41172012-07-03 Richard Guenther <rguenther@suse.de>
4118
4119 * doc/install.texi (CLooG): Clarify how CLooG needs to be
4120 configured and that it needs to be built against ISL 0.10.
4121
95a3d9ee
UB
41222012-07-03 Uros Bizjak <ubizjak@gmail.com>
4123
4124 * config/i386/i386.c (ix86_option_override_internal): Fix wrong
4125 code model string in the error message.
4126
19d7dc0d
UB
41272012-07-03 Uros Bizjak <ubizjak@gmail.com>
4128
4129 PR target/53811
4130 * config/i386/i386.c (x86_output_mi_thunk): Check if fnaddr satisfies
4131 sibcall_insn_operand. Move it to a temporary register if not.
4132
8e22f79f
AS
41332012-07-03 Andreas Schwab <schwab@linux-m68k.org>
4134
4135 PR target/28896
4136 * config/m68k/m68k.c (m68k_option_override): Reset stack_limit_rtx
4137 if !TARGET_68020.
4138
68a12ef3
UB
41392012-07-03 Uros Bizjak <ubizjak@gmail.com>
4140
4141 * config/i386/xmmintrin.h (_mm_sfence): Use __builtin_ia32_pause.
4142
43283548
UB
41432012-07-03 Roland McGrath <mcgrathr@google.com>
4144
4145 * configure.ac (HAVE_AS_IX86_REP_LOCK_PREFIX): Also require that the
4146 assembler accept 'rep bsf ...', 'rep bsr ...', 'rep ret' and 'rep nop'.
4147 * configure: Regenerated.
4148 * config/i386/i386.md (simple_return_internal_long): Use %;
4149 (ctz<mode>2): Likewise.
4150 (*pause): Likewise.
4151
f031c344
OE
41522012-07-02 Oleg Endo <olegendo@gcc.gnu.org>
4153
4154 PR target/51244
4155 * config/sh/predicates.md (t_reg_operand, negt_reg_operand): New
4156 predicates.
4157 * config/sh/sh-protos.h (get_t_reg_rtx): New prototype.
4158 * config/sh/sh.c (get_t_reg_rtx): New function. Use it when invoking
4159 gen_branch_true and gen_branch_false.
4160 * config/sh/sh.md: Use get_t_reg_rtx when invoking gen_branch_true and
4161 gen_branch_false.
4162 (branch_true, branch_false): Use t_reg_operand predicate.
4163 (*branch_true, *branch_false): Delete.
4164 (movt): Use t_reg_operand predicate.
4165 (*negnegt): Use negt_reg_operand predicate and fold little and big
4166 endian variants.
4167 (*movtt): Use t_reg_operand and fold little and big endian variants.
4168 (*movt_qi): Delete.
4169
531b10fc
SB
41702012-07-02 Steven Bosscher <steven@gcc.gnu.org>
4171
4172 * stmt.c (emit_case_bit_tests): Remove.
4173 (expand_case): Remove expand_switch_using_bit_tests_p code.
4174 * tree-switch-conversion.c (hoist_edge_and_branch_if_true): New.
4175 (MAX_CASE_BIT_TESTS): Moved from stmt.c to here.
4176 (lshift_cheap_p): Likewise.
4177 (expand_switch_using_bit_tests_p): Likewise.
4178 (struct case_bit_test): Likewise.
4179 (case_bit_test_cmp): Likewise.
4180 (emit_case_bit_tests): New implementation for GIMPLE.
4181 (gen_inbound_check): Do not release post-dominator info here.
4182 (process_switch): Reorder code. Expand as bit tests if it
4183 looks like a win.
43283548 4184 (do_switchconv): Release post-dominator info here if something changed.
531b10fc
SB
4185 (struct gimple_opt_pass): Verify more.
4186 * tree.h (expand_switch_using_bit_tests_p): Remove prototype.
4187
4e03d849
MJ
41882012-07-02 Martin Jambor <mjambor@suse.cz>
4189
4190 PR middle-end/38474
4191 * ipa-prop.c (compute_known_type_jump_func): Put BINFO check before a
4192 dynamic type change check.
4193
33ad93b9 41942012-07-02 Richard Guenther <rguenther@suse.de>
43283548
UB
4195 Michael Matz <matz@suse.de>
4196 Tobias Grosser <tobias@grosser.es>
4197 Sebastian Pop <sebpop@gmail.com>
33ad93b9
RG
4198
4199 * Makefile.in: Remove PPL flags in favor of ISL ones.
4200 (BACKENDLIBS): Remove PPL libs.
4201 (INCLUDES): Remove PPL includes in favor of ISL ones.
4202 (graphite-clast-to-gimple.o): Remove graphite-dependences.h and
4203 graphite-cloog-compat.h dependencies.
4204 (graphite-dependences.o): Likewise.
4205 (graphite-poly.o): Likewise.
4206 * configure.ac: Declare ISL vars instead of PPL ones.
4207 * configure: Regenerated.
43283548 4208 * doc/install.texi: Replace PPL requirement documentation with ISL one.
33ad93b9
RG
4209 * graphite-blocking.c: Remove PPL code, add ISL equivalent.
4210 * graphite-clast-to-gimple.c: Likewise.
4211 * graphite-dependences.c: Likewise.
4212 * graphite-interchange.c: Likewise.
4213 * graphite-poly.h: Likewise.
4214 * graphite-poly.c: Likewise.
4215 * graphite-sese-to-poly.c: Likewise.
4216 * graphite.c: Likewise.
4217 * graphite-scop-detection.c: Re-arrange includes.
4218 * graphite-cloog-util.c: Remove.
4219 * graphite-cloog-util.h: Likewise.
4220 * graphite-ppl.h: Likewise.
4221 * graphite-ppl.c: Likewise.
4222 * graphite-dependences.h: Likewise.
4223
6886e444
RG
42242012-07-02 Richard Guenther <rguenther@suse.de>
4225
4226 Merge from graphite branch
4227 2011-07-21 Tobias Grosser <tobias@grosser.es>
43283548 4228
6886e444
RG
4229 * Makefile.in (graphite-clast-to-gimple.o, graphite-cloog-util.o):
4230 Remove graphite-cloog-util.h.
4231 * graphite-clast-to-gimple.c (gcc_type_for_iv_of_clast_loop,
4232 build_iv_mapping, translate_clast_user, translate_clast,
4233 free_scattering, initialize_cloog_names, build_cloog_prog,
4234 create_params_index): Do not use old compatibility functions.
4235 (clast_name_to_index, set_cloog_options): Remove code for legacy cloog.
4236 * graphite-cloog-util.c (openscop_print_cloog_matrix): Do not use old
4237 compatibility functions.
4238 (new_Cloog_Scattering_from_ppl_Polyhedron): Remove code for legacy
4239 cloog.
4240 * graphite-cloog-util.h: Remove include of graphite-cloog-util.h.
4241 * graphite.c (graphite.c): Do not call outdated cloog_initialize() and
4242 cloog_finalize().
4243 * graphite-cloog-compat.h: Remove.
4244
4245 2011-08-09 Tobias Grosser <tobias@grosser.es>
4246
4247 * graphite-clast-to-gimple.c (new_clast_name_index): Store a copy
4248 of the string, no just a reference.
4249 (clast_name_index): Add a new field, that specifies if we need to free
4250 the name.
4251 (free_clast_name_index): If necessary, free the name string.
4252 (clast_name_index_elt_info): Calculate the hash based on the string
4253 content, not the memory location it is stored in.
4254 (clast_name_to_level): Specify that we do not need to free the name.
4255 (clast_name_to_index): Dito.
4256 (clast_name_to_lb_ub): Dito.
4257 (eq_clast_name_indexes): Compare the strings, not their base pointers.
4258 (free_scattering): Removed.
4259 (initialize_cloog_names): Renamed to add_names_to_union_domain().
4260 (add_names_to_union_domain): Changed to work on a union_domain,
4261 instead of a CloogNames structure.
4262 (build_cloog_prog): Removed.
4263 (build_cloog_union_domain): New.
4264 (generate_cloog_input): New.
4265 (scop_to_clast): Use CloogInput instead of CloogProgram.
4266 (print_generated_program): Adapt to new scop_to_clast() and do not
4267 print the CloogProgram any more.
4268 (create_params_index): Removed, functionality integrated in
4269 add_names_to_union_domain().
4270 (gloog): Adapt to new scop_to_clast().
4271 * graphite-clast-to-gimple.h (scop_to_clast): Remove.
4272
4273 2012-01-11 Tobias Grosser <tobias@grosser.es>
43283548 4274
6886e444
RG
4275 * graphite-clast-to-gimple.c (clast_name_to_index,
4276 clast_name_to_lb_ub, clast_name_to_gcc): Change types.
4277 (clast_to_gcc_expression): Add clast_expr_name as a new
4278 case. Do not assume a clast_expr_term points always to a
4279 clast_expr_name.
4280 (type_for_clast_term): Do not assume a clast_expr_term points always to
4281 a clast_expr_name.
4282 (type_for_clast_name): New.
4283 (type_for_clast_expr): Add clast_expr_name as a new case.
4284
4285 2011-08-03 Sebastian Pop <sebpop@gmail.com>
4286
4287 * graphite-cloog-util.c (new_Cloog_Domain_from_ppl_Polyhedron,
4288 new_Cloog_Scattering_from_ppl_Polyhedron,
4289 new_Cloog_Domain_from_ppl_Pointset_Powerset): Remove ATTRIBUTE_UNUSED.
4290
6698ed01
JJ
42912012-07-02 Jakub Jelinek <jakub@redhat.com>
4292
4293 PR tree-optimization/53645
4294 * tree-vect-generic.c (expand_vector_divmod): Use TYPE_MODE (type)
4295 instead of TYPE_MODE (wider_type) as can_vec_perm_p argument.
4296
44cd6810
WG
42972012-07-01 Wei Guozhi <carrot@google.com>
4298
4299 PR target/53447
4300 * config/arm/arm-protos.h (const_ok_for_dimode_op): New prototype.
4301 * config/arm/arm.c (const_ok_for_dimode_op): New function.
4302 * config/arm/constraints.md (Dd): New constraint.
4303 * config/arm/predicates.md (arm_adddi_operand): New predicate.
4304 * config/arm/arm.md (adddi3): Extend it to handle constants.
4305 (arm_adddi3): Likewise.
4306 (addsi3_carryin_<optab>): Extend it to handle sbc case.
4307 (addsi3_carryin_alt2_<optab>): Likewise.
4308 * config/arm/neon.md (adddi3_neon): Extend it to handle constants.
4309
cb686b99
NS
43102012-06-30 Nathan Sidwell <nathan@acm.org>
4311
4312 * coverage.c (bbg_file_stamp): New.
4313 (read_counts_file): Merge incoming stamp with bbg_file_stamp.
4314 (build_info): Write bbg_file_stamp.
4315 (coverage_init): Initialize bbg_file_stamp. Read counts file
4316 before writing graph header.
4317 (coverage_finish): Don't unlink the data file if we can generate a
4318 unique file stamp.
4319 * tree.h (crc32_unsigned): Declare.
4320 * tree.c (crc32_unsigned_bits): New, broken out of ...
4321 (crc32_byte): ... here. Use it.
4322 (crc32_unsigned): New.
4323
43283548 43242012-06-29 Cary Coutant <ccoutant@google.com>
1ec205bf
CC
4325
4326 * dwarf2out.c (add_pubname_string): Don't check for want_pubnames.
4327 (gen_subprogram_die): Don't add pubname if want_pubnames is false.
4328 (gen_variable_die): Likewise.
4329 (gen_namespace_die): Likewise.
4330
0118b919
EB
43312012-06-29 Eric Botcazou <ebotcazou@adacore.com>
4332
4333 * tree-eh.c (lower_try_finally_switch): Really put the location of the
4334 last statement of the finally block onto the switch.
4335
dc726735
L
43362012-06-29 H.J. Lu <hongjiu.lu@intel.com>
4337
4338 PR target/53539
4339 * config/i386/gnu-user64.h (WCHAR_TYPE): Use "int" only for
4340 TARGET_LP64.
4341
dfa15de2
SA
43422012-06-29 Sterling Augustine <saugustine@google.com>
4343
4344 * dwarf2out.c (add_pubname): Add comment.
4345 (add_pubtype): Fix indentation.
4346 (gen_enumeration_type_die): Likewise.
4347
271be516
JJ
43482012-06-29 Jakub Jelinek <jakub@redhat.com>
4349
4350 * tree-vect-generic.c (expand_vector_divmod): For even/odd
43283548 4351 widening multiply, put even always as first argument to VEC_PERM_EXPR.
271be516 4352
0fcc85cd
RH
43532012-06-29 Richard Henderson <rth@redhat.com>
4354
4355 * tree-vect-generic.c: Include target.h.
4356 (expand_vector_divmod): Use builtin_mul_widen_even/odd if supported.
4357 * Makefile.in (tree-vect-generic.o): Update.
4358
d4a10d0a
SB
43592012-06-29 Steven Bosscher <steven@gcc.gnu.org>
4360
4361 * configure.ac: Remove special gtfiles case for C.
4362 * configure: Regenerate.
4363 * Makefile.in: Remove C front-end hooks and build hooks that
4364 will be picked up from c/Make-lang.in now.
4365 Add tree-mudflap to C_COMMON_OBJS.
4366 * gengtype.c (files_rules): Adjust gt-files for c/c-decl.c.
4367 * config/vms/vms.c: Look for c-tree.h in c/.
4368 * doc/gty.texi: Remove reference to c-config-lang.in.
4369 * doc/sourcebuild.texi: Document the c/ subdirectory.
4370
cc193fba
SB
43712012-06-29 Steven Bosscher <steven@gcc.gnu.org>
4372
4373 * system.h (CASE_USE_BIT_TESTS): Poison.
4374 * stmt.c (CASE_USE_BIT_TESTS): Fold away into its only user ...
4375 (expand_switch_using_bit_tests_p): ...here.
4376 * doc/tm.texi.in (CASE_USE_BIT_TESTS): Remove documentation.
4377 * doc/tm.texi (CASE_USE_BIT_TESTS): Regenerate.
4378
67a0732f
SB
43792012-06-29 Steven Bosscher <steven@gcc.gnu.org>
4380
4381 * system.h (IFCVT_EXTRA_FIELDS): Poison.
4382 (IFCVT_INIT_EXTRA_FIELDS): Poison.
4383 * basic-block.h (struct ce_if_block): Remove IFCVT_EXTRA_FIELDS.
4384 * ifcvt.c (find_if_header): Use IFCVT_MACHDEP_INIT instead of
4385 IFCVT_INIT_EXTRA_FIELDS.
4386 * gengtype-parse.c (struct_field_seq): Remove obsolete comment.
4387 * config/frv/frv.h (IFCVT_INIT_EXTRA_FIELDS): Rename to
4388 IFCVT_MACHDEP_INIT.
4389 * config/frv/frv.c (frv_ifcvt_init_extra_fields): Rename to
4390 frv_ifcvt_machdep_init.
4391 * doc/tm.texi.in (IFCVT_INIT_EXTRA_FIELDS, IFCVT_EXTRA_FIELDS):
4392 Remove documentation.
4393 (IFCVT_MACHDEP_INIT): Document.
4394 * doc/tm.texi: Regenerate.
4395
126ea3e1
NC
43962012-06-29 Nick Clifton <nickc@redhat.com>
4397
4398 * config/lm32/lm32.c (lm32_compute_frame_size): Fix typo.
4399
2b5bb7da
JJ
44002012-06-29 Jakub Jelinek <jakub@redhat.com>
4401
4402 * tree-vect-stmts.c (vectorizable_operation): Check both
4403 VEC_WIDEN_MULT_LO_EXPR and VEC_WIDEN_MULT_HI_EXPR optabs.
4404 Verify that operand[0]'s mode is TYPE_MODE (wide_vectype).
4405
99651574
RH
44062012-06-28 Richard Henderson <rth@redhat.com>
4407
4408 * doc/generic.texi (MULT_HIGHPART_EXPR): Document it.
4409
c9ba3307
JJ
44102012-06-28 Jakub Jelinek <jakub@redhat.com>
4411
5deb57cb
JJ
4412 PR tree-optimization/51581
4413 * tree-vect-stmts.c (permute_vec_elements): Add forward decl.
4414 (vectorizable_operation): Handle vectorization of MULT_HIGHPART_EXPR
4415 also using VEC_WIDEN_MULT_*_EXPR or builtin_mul_widen_* plus
4416 VEC_PERM_EXPR if vector MULT_HIGHPART_EXPR isn't supported.
4417 * tree-vect-patterns.c (vect_recog_divmod_pattern): Use
4418 MULT_HIGHPART_EXPR instead of VEC_WIDEN_MULT_*_EXPR and shifts.
4419
c9ba3307
JJ
4420 PR tree-optimization/53645
4421 * tree-vect-generic.c (expand_vector_divmod): Use MULT_HIGHPART_EXPR
4422 instead of VEC_WIDEN_MULT_{HI,LO}_EXPR followed by VEC_PERM_EXPR
4423 if possible.
4424
b04ffa56
GJL
44252012-06-28 Georg-Johann Lay <avr@gjlay.de>
4426
4427 PR 53595
4428 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): New.
4429 * config/avr/avr-protos.h (avr_hard_regno_call_part_clobbered): New.
4430 * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): Forward to
4431 avr_hard_regno_call_part_clobbered.
4432
4519d745
RG
44332012-06-28 Richard Guenther <rguenther@suse.de>
4434
4435 PR middle-end/53790
4436 * expr.c (expand_expr_real_1): Verify if the type is complete
4437 before inspecting its size.
4438
7db2226d
AS
44392012-06-28 Andreas Schwab <schwab@linux-m68k.org>
4440
4441 * doc/include/gpl.texi: Remove.
4442 * doc/sourcebuild.texi (Texinfo Manuals): Don't mention gpl.texi.
4443
4ee4c52c
JJ
44442012-06-28 Jakub Jelinek <jakub@redhat.com>
4445
4446 PR tree-optimization/53645
4447 * tree-vect-generic.c (add_rshift): New function.
4448 (expand_vector_divmod): New function.
4449 (expand_vector_operation): Use it for vector integer
4450 TRUNC_{DIV,MOD}_EXPR by VECTOR_CST.
4451 * tree-vect-patterns.c (vect_recog_divmod_pattern): Replace
4452 unused lguup variable with dummy_int.
4453
ecd49d51
OH
44542012-06-28 OLivier Hainque <hainque@adacore.com>
4455
4456 * expr.c (convert_move): Latch mem integer inputs into a
4457 register before expanding a multi-instructions sequence.
4458
9faeb493
UB
44592012-06-28 Alexandre Oliva <aoliva@redhat.com>
4460 Uros Bizjak <ubizjak@gmail.com>
4461 Jakub Jelinek <jakub@redhat.com>
a992a6d1
AO
4462
4463 PR debug/53706
4464 PR debug/47624
4465 * var-tracking.c (vt_emit_notes): Release loc_exp_dep_pool...
4466 (vt_finalize): ... here instead, if needed.
4467
6f9e260c
AO
44682012-06-28 Alexandre Oliva <aoliva@redhat.com>
4469
4470 PR debug/53740
4471 PR debug/52983
4472 PR debug/48866
4473 * dce.c (word_dce_process_block): Check whether inserting debug
4474 temps are needed even for needed insns.
4475 (dce_process_block): Likewise.
4476 * df-problems.c (dead_debug_add): Add comment about multi-regs.
4477 (dead_debug_insert_temp): Likewise. Don't subreg when we're
4478 setting fewer regs than a multi-reg requires.
4479
64a5dc56
RH
44802012-06-27 Richard Henderson <rth@redhat.com>
4481
4482 * config/alpha/alpha.c (alpha_dimode_u): New.
4483 (alpha_init_builtins): Initialize it, and use it.
4484 (alpha_fold_builtin_cmpbge): Use alpha_dimode_u.
4485 (alpha_fold_builtin_zapnot, alpha_fold_builtin_insxx): Likewise.
4486 (alpha_fold_vector_minmax, alpha_fold_builtin_perr): Likewise.
4487 (alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb): Likewise.
4488 (alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw): Likewise.
4489 (alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz): Likewise.
4490 (alpha_fold_builtin_ctpop): Likewise.
4491 (alpha_fold_builtin_umulh): Remove.
4492 (alpha_fold_builtin): Use MULT_HIGHPART_EXPR for UMULH; fix
4493 typo in MAX_ARGS check.
4494
98449720
RH
44952012-06-27 Richard Henderson <rth@redhat.com>
4496
4497 * tree.def (MULT_HIGHPART_EXPR): New.
4498 * cfgexpand.c (expand_debug_expr): Ignore it.
4499 * expr.c (expand_expr_real_2): Handle it.
4500 * fold-const.c (int_const_binop_1): Likewise.
4501 * optabs.c (optab_for_tree_code): Likewise.
4502 * tree-cfg.c (verify_gimple_assign_binary): Likewise.
4503 * tree-inline.c (estimate_operator_cost): Likewise.
4504 * tree-pretty-print.c (dump_generic_node): Likewise.
4505 (op_code_prio, op_symbol_code): Likewise.
4506 * tree.c (commutative_tree_code): Likewise. Also handle
4507 WIDEN_MULT_EXPR, VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_LO_EXPR.
4508
ff4d1662
RH
45092012-06-27 Richard Henderson <rth@redhat.com>
4510
4511 PR target/53749
4512 * config/i386/i386.c (ix86_rtx_costs): Fix typo vs UNITS_PER_WORD
4513 in 2012-06-23 change. Adjust two other DImode tests as well.
4514
4b3650e3
NC
45152012-06-27 Nick Clifton <nickc@redhat.com>
4516
4517 * config/rx/rx.md (comparesi3_extend): Remove = modifier from
4518 input operand.
4519
195b4c50
RG
45202012-06-27 Richard Guenther <rguenther@suse.de>
4521
4522 PR middle-end/53676
4523 * tree-chrec.c (chrec_convert_1): Represent truncation to
4524 a type with undefined overflow as truncation to an unsigned
4525 type converted to the type with undefined overflow.
4526 * tree-scalar-evolution.c (interpret_rhs_expr): For computing
4527 the scalar evolution of a truncated widened operation avoid
4528 looking at the non-existing evolution of the widened operation
4529 result.
4530
be7493ca
RG
45312012-06-27 Richard Guenther <rguenther@suse.de>
4532
4533 PR tree-optimization/53774
4534 * tree-ssa-reassoc.c (get_rank): All default defs have
4535 precomputed rank.
4536 (init_reassoc): Precompute rank for all SSA default defs.
4537
d3f7b31e
NC
45382012-06-27 Nick Clifton <nickc@redhat.com>
4539
4540 * config/rx/rx.md (simple_return): Use the simple_return rtx.
4541
a247af83
RH
45422012-06-26 Richard Henderson <rth@redhat.com>
4543
4544 * config/i386/i386.c (ix86_rtx_costs): Use standard_sse_constant_p
4545 and don't fall thru from standard_80387_constant_p to the memory
9faeb493 4546 fallback.
a247af83 4547
87b78516
RH
45482012-06-26 Richard Henderson <rth@redhat.com>
4549
4550 * config/i386/i386.c (bdesc_args): Update. Change
4551 IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V4SI to OPTION_MASK_ISA_SSE2.
4552 (IX86_BUILTIN_VEC_WIDEN_SMUL_EVEN_V4SI): New.
4553 (ix86_builtin_mul_widen_even): Use it.
4554 (ix86_builtin_mul_widen_odd): Relax SMUL_ODD from sse4 to sse2.
4555 (ix86_expand_mul_widen_evenodd): Handle signed for sse2.
4556 * config/i386/sse.md (vec_widen_<s>mult_hi_<V124_AVX2>): Allow
4557 for all SSE2.
4558 (vec_widen_<s>mult_lo_<V124_AVX2>): Likewise.
4559 (vec_widen_<s>mult_odd_<VI4_AVX2>): Likewise. Relax from V124_AVX2.
4560 (vec_widen_smult_even_v4si): New.
4561
298301d9
RH
45622012-06-26 Richard Henderson <rth@redhat.com>
4563
4564 * config/i386/sse.md (mul<VI8_AVX2>3): Change from insn_and_split
4565 to expander; move guts to ...
4566 * config/i386/i386.c (ix86_expand_sse2_mulvxdi3): ... here. Add
4567 highparts before shifting up.
4568 * config/i386/i386-protos.h: Update.
4569
4e2edffd
SB
45702012-06-26 Steven Bosscher <steven@gcc.gnu.org>
4571
4572 * system.h (USE_COMMON_FOR_ONE_ONLY): Poison.
4573 * defaults.h (USE_COMMON_FOR_ONE_ONLY): Do not provide default.
4574 * config/darwin.h (USE_COMMON_FOR_ONE_ONLY): Do not define.
4575
de2c775d
AO
45762012-06-26 Alexandre Oliva <aoliva@redhat.com>
4577
4578 * var-tracking.c (vt_add_function_parameter): Use a preserved
4579 VALUE for the MEM address of an incoming parameter.
4580
d44f5f25
SA
45812012-06-26 Sterling Augustine <saugustine@google.com>
4582
1542460a
SA
4583 * dwarf2out.c (output_pubnames): Add check for DW_TAG_enumerator.
4584 (prune_unused_types): Likewise.
d44f5f25 4585
01a07a64
SB
45862012-06-26 Steven Bosscher <steven@gcc.gnu.org>
4587
4588 * system.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
4589 UNALIGNED_LONG_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Poison.
4590 * vmsdbgout.c (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
4591 UNALIGNED_LONG_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Rename to
4592 VMS_UNALIGNED_SHORT_ASM_OP, VMS_UNALIGNED_INT_ASM_OP,
4593 VMS_UNALIGNED_LONG_ASM_OP, and VMS_UNALIGNED_DOUBLE_INT_ASM_OP.
4594 * config/microblaze/microblaze.h (UNALIGNED_SHORT_ASM_OP,
4595 UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Do not define.
4596 * doc/tm.texi.in: Remove UNALIGNED_INT_ASM_OP reference from the
4597 documentation.
4598 * doc/tm.texi: Regenerate.
4599 * doc/cpp.texi: Make example for #error generic.
4600 * config/frv/frv.h: Fix example text to match tm.texi.
4601
f9453c07
BS
46022012-06-26 Bill Schmidt <wschmidt@linux.ibm.com>
4603
4604 * tree-pass.h (pass_strength_reduction): New decl.
4605 * tree-ssa-loop-ivopts.c (initialize_costs): Make non-static.
4606 (finalize_costs): Likewise.
4607 * timevar.def (TV_TREE_SLSR): New timevar.
4608 * gimple-ssa-strength-reduction.c: New.
4609 * tree-flow.h (initialize_costs): New decl.
4610 (finalize_costs): Likewise.
4611 * Makefile.in (tree-ssa-strength-reduction.o): New dependencies.
4612 * passes.c (init_optimization_passes): Add pass_strength_reduction.
4613
703ae70c
MT
46142012-06-26 Matt Turner <mattst88@gmail.com>
4615
9faeb493 4616 * doc/extend.texi (__builtin_arm_tinsrb): Add missing second parameter.
703ae70c
MT
4617 (__builtin_arm_tinsrh): Likewise.
4618 (__builtin_arm_tinsrw): Likewise.
4619 (__builtin_arm_wsadb): Add missing v2si parameter.
4620 (__builtin_arm_wsadh): Likewise.
4621 (__builtin_arm_getwcx): Delete.
4622 (__builtin_arm_setwcx): Delete.
4623 (__builtin_arm_getwcgr0): Add.
4624 (__builtin_arm_getwcgr1): Add.
4625 (__builtin_arm_getwcgr2): Add.
4626 (__builtin_arm_getwcgr3): Add.
4627 (__builtin_arm_setwcgr0): Add.
4628 (__builtin_arm_setwcgr1): Add.
4629 (__builtin_arm_setwcgr2): Add.
4630 (__builtin_arm_setwcgr3): Add.
4631
3c04921b
RG
46322012-06-26 Richard Guenther <rguenther@suse.de>
4633
4634 Revert
4635 2012-06-21 Richard Guenther <rguenther@suse.de>
4636
4637 * tree-inline.c (estimate_num_insns): Estimate call cost for
4638 tailcalls properly.
4639
a8d56c30
SB
46402012-06-26 Steven Bosscher <steven@gcc.gnu.org>
4641
4642 PR other/33190
4643 * doc/tm.texi.in: Document LOGICAL_OP_NON_SHORT_CIRCUIT.
4644 * doc/tm.texi: Regenerate.
4645
0c93ed52
SB
46462012-06-26 Steven Bosscher <steven@gcc.gnu.org>
4647
4648 PR other/33190
4649 * config/mips/mips.h: Do not define ALL_COP_ADDITIONAL_REGISTER_NAMES.
4650 * config/frv/frv.h: Do not define REVERSE_CONDEXEC_PREDICATES_P.
4651 * doc/tm.texi.in: Remove documentation for unused target macros
4652 ALL_COP_ADDITIONAL_REGISTER_NAMES, DBX_OUTPUT_LBRAC, DBX_OUTPUT_NFUN,
4653 DBX_OUTPUT_RBRAC, RANGE_TEST_NON_SHORT_CIRCUIT, REAL_VALUE_TRUNCATE,
4654 REVERSE_CONDEXEC_PREDICATES_P, TARGET_ALIGN_ANON_BITFIELDS, and
4655 TARGET_NARROW_VOLATILE_BITFIELDS.
4656 Document that MD_HANDLE_UNWABI is a macro in libgcc.
4657 * doc/tm.texi: Regenerate.
4658 * system.h: Poison target macros
4659 ALL_COP_ADDITIONAL_REGISTER_NAMES, DBX_OUTPUT_LBRAC, DBX_OUTPUT_NFUN,
4660 DBX_OUTPUT_RBRAC, RANGE_TEST_NON_SHORT_CIRCUIT, REAL_VALUE_TRUNCATE,
4661 REVERSE_CONDEXEC_PREDICATES_P, TARGET_ALIGN_ANON_BITFIELDS, and
4662 TARGET_NARROW_VOLATILE_BITFIELDS
4663
3d2e04fd
JH
46642012-06-26 Jan Hubicka <jh@suse.cz>
4665
4666 PR lto/53572
4667 * cgraph.h (varpool_can_remove_if_no_refs): Fix handling of
4668 used symbols.
4669
035775c8
DC
46702012-06-26 Dehao Chen <dehao@google.com>
4671
4672 * tree-inline.c: (expand_call_inline): Ensure that lexical block's
4673 source location is consistant with the call stmt.
4674
38eec4c6
UW
46752012-06-26 Ulrich Weigand <ulrich.weigand@linaro.org>
4676
4677 PR tree-optimization/53729
4678 PR tree-optimization/53636
4679 * tree-vect-slp.c (vect_slp_analyze_bb_1): Delay call to
4680 vect_verify_datarefs_alignment until after statements have
4681 been marked as relevant/irrelevant.
4682 * tree-vect-data-refs.c (vect_verify_datarefs_alignment):
4683 Skip irrelevant statements.
4684 (vect_enhance_data_refs_alignment): Use STMT_VINFO_RELEVANT_P
4685 instead of STMT_VINFO_RELEVANT.
4686 (vect_get_data_access_cost): Do not check for supportable
4687 alignment before calling vect_get_load_cost/vect_get_store_cost.
4688 * tree-vect-stmts.c (vect_get_store_cost): Do not abort when
4689 handling unsupported alignment.
4690 (vect_get_load_cost): Likewise.
4691
e4ae19bc
SB
46922012-06-25 Steven Bosscher <steven@gcc.gnu.org>
4693
4694 * config/rl78/rl78.h: Do not undefine DONT_USE_BUILTIN_SETJMP.
4695 Do not define JMP_BUF_SIZE.
4696
5dcf6b7f
JJ
46972012-06-26 Jakub Jelinek <jakub@redhat.com>
4698
4699 PR tree-optimization/53748
4700 * tree-ssa-phiopt.c (conditional_replacement): Only optimize
4701 if arg0/arg1 have integral or pointer types.
4702
a2051b26
RH
47032012-06-25 Richard Henderson <rth@redhat.com>
4704
4705 * config/i386/sse.md (sse2_sse4_1): Remove code attr.
4706 (<s>dot_prodv4si, <s>dot_prodv8si): Remove
4707 (sdot_prodv4si): New; handle only XOP.
4708
93703e79
RH
47092012-06-25 Richard Henderson <rth@redhat.com>
4710
4711 * config/i386/i386-builtin-types.def (V4UDI, V8USI): New.
4712 (V2UDI_FUNC_V4USI_V4USI): New.
4713 (V4UDI_FUNC_V8USI_V8USI): New.
4714 * config/i386/i386.c (ix86_expand_args_builtin): Handle them.
4715 (IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V4SI): New.
4716 (IX86_BUILTIN_VEC_WIDEN_SMUL_ODD_V8SI): New.
4717 (IX86_BUILTIN_VEC_WIDEN_UMUL_ODD_V4SI): New.
4718 (IX86_BUILTIN_VEC_WIDEN_UMUL_ODD_V8SI): New.
4719 (IX86_BUILTIN_VEC_WIDEN_UMUL_EVEN_V4SI): New.
4720 (IX86_BUILTIN_VEC_WIDEN_UMUL_EVEN_V8SI): New.
4721 (bdesc_args): Add them.
4722 (ix86_builtin_mul_widen_even, ix86_builtin_mul_widen_odd): New.
4723 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN): New.
4724 (TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD): New.
4725 (ix86_expand_mul_widen_evenodd): Use xop_pmacsdqh.
4726 * config/i386/sse.md (vec_widen_<s>mult_odd_<V124_AVX2>): New.
4727
379eaa6f
RH
47282012-06-25 Richard Henderson <rth@redhat.com>
4729
4730 * config/i386.sse.md (mul<VI4_AVX2>3): Use xop_pmacsdd.
4731
ac357108
RH
47322012-06-25 Richard Henderson <rth@redhat.com>
4733
4734 * config/i386/i386.c (ix86_rtx_costs) [MULT]: Only apply XOP cost
4735 to V16QImode.
4736 (ix86_expand_vec_interleave): New.
4737 (ix86_expand_mul_widen_evenodd): New.
4738 (ix86_expand_mul_widen_hilo): New.
4739 (ix86_expand_sse2_mulv4si3): Use ix86_expand_mul_widen_evenodd.
4740 * config/i386/i386.md (u_bool) New code attr.
4741 * config/i386/predicates.md
4742 (nonimmediate_or_const_vector_operand): Remove.
4743 * config/i386/sse.md (mul<VI4_AVX2>3): Don't use it; don't test
4744 both AVX and SSE4_1.
4745 (vec_widen<s>mult_hi_<VI2_AVX2>): Remove.
4746 (vec_widen<s>mult_lo_<VI2_AVX2>): Remove.
4747 (vec_widen<s>mult_hi_v8si): Remove.
4748 (vec_widen<s>mult_lo_v8si): Remove.
4749 (vec_widen_smult_hi_v4si): Remove.
4750 (vec_widen_smult_lo_v4si): Remove.
4751 (vec_widen_umult_hi_v4si): Remove.
4752 (vec_widen_umult_lo_v4si): Remove.
4753 (vec_widen_<s>mult_hi_<VI124_AVX2>): New.
4754 (vec_widen_<s>mult_lo_<VI124_AVX2>): New.
4755 * config/i386/i386-protos.h: Update.
4756
8490252a
CL
47572012-06-25 Christophe Lyon <christophe.lyon@st.com>
4758
4759 * config/arm/neon.md (UNSPEC_VLD1_DUP): Remove.
4760 (neon_vld1_dup): Restrict to VQ operands.
4761 (neon_vld1_dupv2di): New, fixes vld1q_dup_s64.
4762
9e94a7fc 47632012-06-25 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
9faeb493 4764 James Greenhalgh <james.greenhalgh@arm.com>
9e94a7fc
MGD
4765
4766 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Add new built-ins.
4767 (TARGET_FMA): New macro.
4768 (TARGET_ARM_QBIT, TARGET_ARM_SAT): Likewise.
4769 (TARGET_ARM_ARCH): Likewise.
4770 (TARGET_ARM_ARCH_ISA_THUMB): Likewise.
4771 (TARGET_V6M, TARGET_V7M): Likewise.
4772 (TARGET_ARM_ARCH_PROFILE): Likewise.
4773 (TARGET_ARM_FEATURE_LDREX): Likewise.
4774 (TARGET_ARM_FP, TARGET_NEON_FP): Likewise.
4775 (ARM_MIN_ENUM_SIZE): Likewise.
4776 * config/arm/arm.c (arm_file_start): Refactor appropriately.
4777 (base_architecture): New enumeration.
4778 (arm_base_arch): New global variable.
4779 (processors): Add field base_arch.
4780 (ARM_ARCH, ARM_CORE): Adjust accordingly.
4781 (arm_option_override): Add initialization of arm_base_arch.
4782 * doc/cpp.texi (system-specific predefined macros.): Change.
4783
85d91748
JJ
47842012-06-25 Jakub Jelinek <jakub@redhat.com>
4785
4786 PR target/53759
4787 * config/i386/sse.md (sse_loadlps): Use x m x constraints instead
4788 of x x x in the vmovlps load alternative.
4789
ecf706e5
RS
47902012-06-25 Richard Sandiford <rdsandiford@googlemail.com>
4791
4792 PR debug/53740
4793 * df.h (dead_debug_add): Remove third argument.
4794 * df-problems.c (dead_debug_add): Likewise. Use the REGNO of the
4795 REG that we want to replace instead.
4796 (dead_debug_insert_temp): Use the REGNO of the reg that we want
4797 to replace instead of DF_REF_REGNO. Require there to always be
4798 at least one such use. Check for cases where the same location
4799 has more than df_ref associated with it.
4800 (df_note_bb_compute): Remove third dead_debug_add argument.
4801 * dce.c (word_dce_process_block): Likewise.
4802
39ce30d8
SB
48032012-06-25 Steven Bosscher <steven@gcc.gnu.org>
4804
4805 * config/v850/v850.c: Remove redundant extern declarations for
4806 last_assemble_variable_decl and size_directive_output.
4807
4808 * doc/tm.texi.in: Document JMP_BUF_SIZE.
4809 * doc/tm.texi: Regenerate.
4810 * config/sparc/sparc.h (JMP_BUF_SIZE): Do not define.
4811 * config/pa/pa.h (JMP_BUF_SIZE): Likewise.
4812 * config/stormy16/stormy16.h: Likewise.
4813
4814 * config/picochip/picochip.c: Do not define DONT_USE_BUILTIN_SETJMP.
4815
4816 * doc/sourcebuild.texi: Add missing subdirectories.
4817
4e523f33
TG
48182012-06-25 Tristan Gingold <gingold@adacore.com>
4819
4820 * config/i386/i386.h: Fix typo.
4821
a2851b75
TG
48222012-06-25 Tristan Gingold <gingold@adacore.com>
4823
4824 * config/i386/winnt.c (i386_pe_seh_end_prologue): Move code to ...
4825 (seh_cfa_adjust_cfa): ... that function.
4826 (seh_emit_stackalloc): Do not emit out of range values.
4827 * config/i386/i386.md: Delete unused UNSPEC_REG_SAVE,
4828 UNSPEC_DEF_CFA constants.
4829 * config/i386/i386.h (SEH_MAX_FRAME_SIZE): Define.
4830 * config/i386/i386.c (ix86_frame_pointer_required): Required
4831 for very large frames on SEH target.
4832 (ix86_compute_frame_layout): Save area is before frame pointer
4833 on SEH target. Handle very large frames.
4834 (ix86_expand_prologue): Likewise.
4835
416ff32e
SB
48362012-06-24 Steven Bosscher <steven@gcc.gnu.org>
4837
4838 * output.h: (current_function_is_leaf,
4839 current_function_sp_is_unchanging,
4840 current_function_uses_only_leaf_regs): Remove.
4841 * function.c (current_function_is_leaf,
4842 current_function_sp_is_unchanging,
4843 current_function_uses_only_leaf_regs): Remove.
4844 (rest_of_handle_check_leaf_regs): Set crtl->uses_only_leaf_regs
4845 instead of current_function_uses_only_leaf_regs.
4846 * function.h (struct rtl_data): New fields sp_is_unchanging,
4847 is_leaf, uses_only_leaf_regs.
4848 * resource.c (init_resource_info): Replace current_function_is_leaf,
4849 current_function_sp_is_unchanging, and
4850 current_function_uses_only_leaf_regs with new crtl fields.
4851 * sdbout.c (sdbout_symbol): Likewise.
4852 * df-core.c (rest_of_handle_df_initialize): Likewise.
4853 * ira.c (ira): Likewise.
4854 * final.c (final_start_function): Likewise.
4855 * reorg.c (fill_simple_delay_slots): Likewise.
4856 * regrename.c (check_new_reg_p): Likewise.
4857 * stack-ptr-mod.c (notice_stack_pointer_modification_1): Likewise.
4858 (notice_stack_pointer_modification): Likewise.
4859 * dbxout.c (dbxout_symbol): Likewise.
4860 (dbxout_parms): Likewise.
4861 * sel-sched.c (init_regs_for_mode): Likewise.
4862 * dwarf2out.c (dbx_reg_number): Likewise.
4863 (multiple_reg_loc_descriptor): Likewise.
4864 * config/i386/i386.c (ix86_frame_pointer_required): Likewise.
4865 (gen_pop): Likewise.
4866 (ix86_select_alt_pic_regnum): Likewise.
4867 (ix86_compute_frame_layout): Likewise.
4868 (ix86_finalize_stack_realign_flags): Likewise.
4869 (ix86_expand_epilogue): Likewise.
4870 * config/rs6000/rs6000.c (rs6000_stack_info): Likewise.
4871 * config/h8300/h8300.c (byte_reg): Likewise.
4872 * config/c6x/c6x.c (must_reload_pic_reg_p): Likewise.
4873 (c6x_save_reg): Likewise.
4874 (c6x_compute_frame_layout): Likewise.
4875 * config/pa/pa.c (pa_compute_frame_size): Likewise.
4876 (pa_output_function_prologue): Likewise.
4877 * config/stormy16/stormy16.c (struct xstormy16_stack_layout): Likewise.
4878 * config/sparc/sparc.md (attr "leaf_function"): Likewise.
4879 * config/sparc/sparc.c (sparc_initial_elimination_offset): Likewise.
4880 (sparc_expand_prologue): Likewise.
4881 (sparc_flat_expand_prologue): Likewise.
4882 (sparc_asm_function_prologue): Likewise.
4883 (sparc_output_mi_thunk): Likewise.
4884 (sparc_frame_pointer_required): Likewise.
4885 * config/epiphany/epiphany.c (epiphany_compute_function_type):
4886 Likewise.
4887 (epiphany_compute_frame_size): Likewise.
4888 * config/lm32/lm32.c (lm32_compute_frame_size): Likewise.
4889 * config/cris/cris.c (cris_md_asm_clobbers): Likewise.
4890 (cris_frame_pointer_required): Likewise.
4891 * config/tilepro/tilepro.c (emit_sp_adjust): Likewise.
4892 (tilepro_current_function_is_leaf): Likewise.
4893 * config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Likewise.
4894 * config/pdp11/pdp11.c (pdp11_expand_epilogue): Likewise.
4895 * config/ia64/ia64.c (find_gr_spill): Likewise.
4896 (ia64_compute_frame_size): Likewise.
4897 (ia64_can_eliminate): Likewise.
4898 (ia64_initial_elimination_offset): Likewise.
4899 * config/m68k/m68k.c (m68k_save_reg): Likewise.
4900 (m68k_expand_epilogue): Likewise.
4901 * config/rx/rx.c (rx_get_stack_layout): Likewise.
4902 * config/tilegx/tilegx.c (tilegx_current_function_is_leaf): Likewise.
4903 * config/picochip/picochip.c (picochip_can_eliminate_link_sp_save):
4904 Likewise.
4905 (picochip_output_frame_debug): Likewise.
4906 * config/sh/sh.c (sh_media_register_for_return): Likewise.
4907 (sh_allocate_initial_value): Likewise.
4908 (sh_output_mi_thunk): Likewise.
4909 * config/microblaze/microblaze.c (microblaze_must_save_register):
4910 Likewise.
4911 (compute_frame_size): Likewise.
4912 (microblaze_initial_elimination_offset): Likewise.
4913 (microblaze_expand_prologue): Likewise.
4914 (microblaze_expand_epilogue): Likewise.
4915 * config/frv/frv.c (frv_expand_epilogue): Likewise.
4916 (frv_frame_pointer_required): Likewise.
4917 * config/spu/spu.c (get_pic_reg): Likewise.
4918 (direct_return): Likewise.
4919 (spu_expand_prologue): Likewise.
4920 (spu_expand_epilogue): Likewise.
4921 (spu_initial_elimination_offset): Likewise.
4922 * config/mips/mips.c (mips_global_pointer): Likewise.
4923 (mips_cfun_might_clobber_call_saved_reg_p): Likewise.
4924 (mips_compute_frame_info): Likewise.
4925 * config/mep/mep.c (mep_interrupt_saved_reg): Likewise.
4926 (mep_reload_pointer): Likewise.
4927 * config/rl78/rl78.c (need_to_save): Likewise.
4928 * config/cr16/cr16.c (cr16_compute_save_regs): Likewise.
4929 * config/score/score.c (score_compute_frame_size): Likewise.
4930 (score_function_prologue): Likewise.
4931 * config/bfin/bfin.c (must_save_p): Likewise.
4932 (expand_prologue_reg_save): Likewise.
4933 (expand_epilogue_reg_restore): Likewise.
4934 (bfin_frame_pointer_required): Likewise.
4935 (n_regs_saved_by_prologue): Likewise.
4936 (add_to_reg): Likewise.
4937 (expand_interrupt_handler_prologue): Likewise.
4938 (expand_interrupt_handler_epilogue): Likewise.
4939 (bfin_expand_prologue): Likewise.
4940 * config/avr/avr.c (avr_regs_to_save): Likewise.
4941 (avr_prologue_setup_frame): Likewise.
4942 (expand_epilogue): Likewise.
4943 * config/s390/s390.c (s390_regs_ever_clobbered): Likewise.
4944 (s390_register_info): Likewise.
4945 (s390_frame_info): Likewise.
4946 (s390_init_frame_layout): Likewise.
4947 (s390_emit_prologue): Likewise.
4948
4949
e1ab7892
SB
49502012-06-24 Steven Bosscher <steven@gcc.gnu.org>
4951
4952 * system.h: Poison ASM_BYTE_OP and ASM_OUTPUT_BYTE.
4953 * vmsdbgout: Do not undefine it if defined.
4954 Rename local ASM_BYTE_OP definition to VMS_ASM_BYTE_OP.
4955 * config/microblaze/microblaze/h: Do no define ASM_BYTE_OP.
4956 * config/mep/mep.h: Do not define ASM_OUTPUT_BYTE.
4957
636da826
RS
49582012-06-24 Richard Sandiford <rdsandiford@googlemail.com>
4959
9faeb493 4960 * config/mips/mips.c (mips_process_sync_loop): Add missing enum cast.
636da826 4961
77a3dbf6
RH
49622012-06-23 Richard Henderson <rth@redhat.com>
4963
2d542a9f
RH
4964 PR target/53749
4965 * config/i386/i386.c (ix86_rtx_costs): Add reasonable costs for
4966 V*QImode shifts and multiply.
4967 (ix86_expand_vecop_qihi): Support shifts.
4968 * config/i386/i386.md (any_shift): New code iterator.
4969 * config/i386/sse.md (ashlv16qi3): Merge ...
4970 (<any_shiftrt>v16qi3): ... into ...
4971 (<any_shift><VI1_AVX2>3): ... here. Use ix86_expand_vecop_qihi
4972 to support SSE and AVX.
4973
7b532118
RH
4974 * config/i386/i386.c (ix86_expand_sse_unpack): Split operands[]
4975 parameter into src and dest.
4976 * config/i386/sse.md (vec_unpacku_hi_<V124_AVX2>): Update call.
4977 (vec_unpacks_hi_<V124_AVX2>): Likewise.
4978 (vec_unpacku_lo_<V124_AVX2>): Likewise.
4979 (vec_unpacks_lo_<V124_AVX2>): Likewise.
4980 * config/i386/i386-protos.h: Update.
4981
77a3dbf6
RH
4982 * config/i386/sse.md (mul<VI1_AVX2>3): Change from insn_and_split to
4983 pure expander; move expansion code ...
4984 * config/i386/i386.c (ix86_expand_vecop_qihi): ... here. New function.
4985 * config/i386/i386-protos.h: Update.
4986
42533d77
EW
49872012-06-22 Edmar Wienskoski <edmar@freescale.com>
4988
4989 * config/rs6000/rs6000.md (define_attr "type"): New type popcnt.
4990 (popcntb<mode>2): Add attribute type popcnt.
4991 (popcntd<mode>2): Ditto.
4992 * config/rs6000/power4.md (define_insn_reservation): Add type popcnt.
4993 * config/rs6000/power5.md (define_insn_reservation): Ditto.
4994 * config/rs6000/power7.md (define_insn_reservation): Ditto.
4995 * config/rs6000/476.md (define_insn_reservation): Ditto.
4996 * config/rs6000/power6.md (define_insn_reservation): New
4997 reservation for popcnt instructions.
4998
50c7ad7e
L
49992012-06-22 H.J. Lu <hongjiu.lu@intel.com>
5000
5001 * doc/invoke.texi: Update -mpreferred-stack-boundary=3 warning.
5002
5bfb2af2
L
50032012-06-22 H.J. Lu <hongjiu.lu@intel.com>
5004
5005 PR target/53383
5006 * doc/invoke.texi: Add a warning for -mpreferred-stack-boundary=3.
5007
5008 * config/i386/i386.c (ix86_option_override_internal): Allow
5009 -mpreferred-stack-boundary=3 for 64-bit if SSE is disabled.
5010
5011 * config/i386/i386.h (MIN_STACK_BOUNDARY): Set to 64 for 64-bit
5012 if SSE is disabled.
5013
7735d6c7
BS
50142012-06-22 Bill Schmidt <wschmidt@linux.ibm.com>
5015
5016 * double-int.c (double_int_multiple_of): New function.
5017 * double-int.h (double_int_multiple_of): New decl.
5018 * tree-ssa-loop-ivopts.c (add_cost, zero_cost): Remove undefs.
5019 (mbc_entry_hash): New forward decl.
5020 (mbc_entry_eq): Likewise.
5021 (zero_cost): Change to no_cost.
5022 (mult_costs): New static var.
5023 (cost_tables_exist): Likewise.
5024 (initialize_costs): New function.
5025 (finalize_costs): Likewise.
5026 (tree_ssa_iv_optimize_init): Call initialize_costs.
5027 (add_cost): Change to add_regs_cost; distinguish costs by speed.
5028 (multiply_regs_cost): New function.
5029 (add_const_cost): Likewise.
5030 (extend_or_trunc_reg_cost): Likewise.
5031 (negate_reg_cost): Likewise.
5032 (multiply_by_cost): Change to multiply_by_const_cost; distinguish
5033 costs by speed.
5034 (get_address_cost): Change add_cost to add_regs_cost; change
5035 multiply_by_cost to multiply_by_const_cost.
5036 (force_expr_to_var_cost): Change zero_cost to no_cost; change
5037 add_cost to add_regs_cost; change multiply_by_cost to
5038 multiply_by_const_cost.
5039 (split_cost): Change zero_cost to no_cost.
5040 (ptr_difference_cost): Likewise.
5041 (difference_cost): Change zero_cost to no_cost; change multiply_by_cost
5042 to multiply_by_const_cost.
5043 (get_computation_cost_at): Change add_cost to add_regs_cost; change
5044 multiply_by_cost to multiply_by_const_cost.
5045 (determine_use_iv_cost_generic): Change zero_cost to no_cost.
5046 (determine_iv_cost): Change add_cost to add_regs_cost.
5047 (iv_ca_new): Change zero_cost to no_cost.
5048 (tree_ssa_iv_optimize_finalize): Call finalize_costs.
5049 * tree-ssa-address.c (most_expensive_mult_to_index): Change
5050 multiply_by_cost to multiply_by_const_cost.
5051 * tree-flow.h (multiply_by_cost): Change to multiply_by_const_cost.
5052 (add_regs_cost): New decl.
5053 (multiply_regs_cost): Likewise.
5054 (add_const_cost): Likewise.
5055 (extend_or_trunc_reg_cost): Likewise.
5056 (negate_reg_cost): Likewise.
5057
62e0a1ed
RG
50582012-06-22 Richard Guenther <rguenther@suse.de>
5059
5060 Merge from graphite branch
5061 2011-08-10 Sebastian Pop <sebpop@gmail.com>
9faeb493 5062
62e0a1ed
RG
5063 * graphite-sese-to-poly.c (build_scop_drs): Fix memory leak.
5064
5065 2012-01-13 Tobias Grosser <tobias@grosser.es>
5066
5067 * tree-flow.h (parallelized_function_p): Declare.
5068 * tree-parloops.c (parallelized_function_p): Export.
5069 * graphite.c (graphite_transform_loops): Do not run graphite on
5070 already parallel functions.
5071
d25df882
AM
50722012-06-22 Alan Modra <amodra@gmail.com>
5073
5074 * config/rs6000/rs6000.c (rs6000_pre_atomic_barrier): Pass in and
5075 return mem. Convert to indirect addressing if not indirect or
5076 indexed. Adjust all callers.
5077
de703cd7
RG
50782012-06-22 Richard Guenther <rguenther@suse.de>
5079
5080 * gcov-iov.c: Include bconfig.h and system.h.
5081
dbf85890
AS
50822012-06-22 Andreas Schwab <schwab@linux-m68k.org>
5083
5084 * doc/include/texinfo.tex: Update to version 2012-06-05.14.
5085
e196f4b7
RG
50862012-06-22 Richard Guenther <rguenther@suse.de>
5087
5088 PR gcov-profile/53744
5089 * gcov-iov.c (main): Treat "" and "prerelease" the same.
5090
c43470b1
EB
50912012-06-22 Eric Botcazou <ebotcazou@adacore.com>
5092
5093 PR debug/53704
5094 * dwarf2out.c (gen_compile_unit_die): Use DW_LANG_Fortran90 as language
5095 for GNU Fortran if in strict DWARF2 mode.
5096
a300e459
EB
50972012-06-22 Eric Botcazou <ebotcazou@adacore.com>
5098
5099 * tree-ssa-live.c (remove_unused_scope_block_p): Remove again
5100 DECL_IGNORED_P non-reg vars even if they are used.
5101
61806a93
AO
51022012-06-21 Alexandre Oliva <aoliva@redhat.com>
5103
5104 PR debug/53671
5105 PR debug/49888
5106 * var-tracking.c (vt_get_canonicalize_base): New.
5107 (vt_canonicalize_addr, vt_stack_offset_p): New.
5108 (vt_canon_true_dep): New.
5109 (drop_overlapping_mem_locs): Use vt_canon_true_dep.
5110 (clobber_overlaping_mems): Use vt_canonicalize_addr.
5111
48b00503
AO
51122012-06-21 Alexandre Oliva <aoliva@redhat.com>
5113
5114 PR debug/53671
5115 PR debug/49888
5116 * var-tracking.c (vt_initialize): Record initial offset between
5117 arg pointer and stack pointer.
5118
4977e903
AO
51192012-06-21 Alexandre Oliva <aoliva@redhat.com>
5120
5121 PR debug/53671
5122 PR debug/49888
5123 * var-tracking.c (vt_init_cfa_base): Drop redundant recording of
5124 CFA base.
5125
a9bf4fe2
AO
51262012-06-21 Alexandre Oliva <aoliva@redhat.com>
5127
5128 PR debug/53671
5129 PR debug/49888
9faeb493 5130 * alias.c (memrefs_conflict_p): Improve handling of AND for alignment.
a9bf4fe2 5131
1ca63357
AO
51322012-06-21 Alexandre Oliva <aoliva@redhat.com>
5133
5134 * ddg.c (build_intra_loop_deps): Discard deps of nondebug on debug.
5135
ce8fe26d
AO
51362012-06-21 Alexandre Oliva <aoliva@redhat.com>
5137
5138 PR debug/53682
5139 * cselib.c (promote_debug_loc): Don't crash on NULL argument.
5140
b6fbbea3
MI
51412012-06-21 Meador Inge <meadori@codesourcery.com>
5142
5143 PR c/53702
5144 * c-decl.c (c_push_function_context): Restore the behavior to reuse
5145 the language function allocated for -Wunused-local-typedefs.
5146 (c_pop_function_context): If necessary, clear the language function
5147 created in c_push_function_context. Always clear out the
5148 x_cur_stmt_list field of the restored language function.
5149
9faeb493
UB
51502012-06-21 Sterling Augustine <saugustine@google.com>
5151 Cary Coutant <ccoutant@google.com>
5175cbaf
SA
5152
5153 * dwarf2out.c (is_cu_die, is_namespace_die, is_class_die,
5154 add_AT_pubnames, add_enumerator_pubname, want_pubnames): New functions.
5155 (comdat_type_struct): New field 'skeleton_die'.
5156 (breakout_comdat_types): Update it.
5157 (add_pubname): Rework logic. Call is_class_die, is_cu_die and
5158 is_namespace_die. Fix minor style violation. Call want_pubnames.
5159 (add_pubname_string): Call want_pubnames.
5160 (add_pubtype): Rework logic for calculating type name. Call
5161 is_namespace_die. Call want_pubnames.
5162 (output_pubnames): Move conditional logic deciding when to produce the
5163 section from dwarf2out_finish. Use new skeleton_die field.
5164 (base_type_die): Call add_pubtype.
5165 (gen_enumeration_type_die): Unconditionally call add_pubtype.
5166 (gen_subprogram_die): Adjust calls to add_pubname.
5167 (gen_namespace_die): Call add_pubname_string.
5168 (dwarf2out_finish): Call add_AT_pubnames; Move logic on when to
5169 produce pubnames and pubtypes sections to output_pubnames.
0aba8600 5170 * common.opt (-gpubnames): New option.
1a102c52 5171 * doc/invoke.texi: Document it.
5175cbaf 5172
7033abe1
SB
51732012-06-21 Steven Bosscher <steven@gcc.gnu.org>
5174
5175 * config/m32c/m32c-pragma.c: Remove unnecessary includes.
5176
625ed172
MM
51772012-06-21 Michael Matz <matz@suse.de>
5178
5179 PR middle-end/53688
5180 * builtins.c (get_memory_rtx): Always build an all-aliasing MEM_REF
5181 with correct size.
5182
ccd49f5a
RG
51832012-06-21 Richard Guenther <rguenther@suse.de>
5184
5185 * tree-inline.c (estimate_num_insns): Estimate call cost for
5186 tailcalls properly.
5187
19c1aa2d
RS
51882012-06-20 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
5189
5190 * tree.h (DECL_SOURCE_COLUMN): New accessor.
5191
19425621
UB
51922012-06-20 Uros Bizjak <ubizjak@gmail.com>
5193
5194 * config/i386/i386.md (SINCOS): New int iterator.
5195 (sincos): New int attribute.
5196 (*<sincos>xf2_i387): Macroize insn from *{sin,cos}xf2_i387 using
5197 SINCOS int iterator.
5198 (*<sincos>_extend<mode>xf2_i387): Macroize insn from
5199 *{sin,cos}_extend<mode>xf2_i387 using SINCOS int iterator.
5200
52012012-06-20 Uros Bizjak <ubizjak@gmail.com>
5202
5203 * config/i386/i386.md (RDFSGSBASE): New int iterator.
5204 (WRFSGSBASE): Ditto.
5205 (fsgs): New int attribute.
5206 (rd<fsgs>base<mode>): Macroize insn from rd<fsgs>base<mode> using
5207 RDFSGSBASE int iterator.
5208 (wr<fsgs>base<mode>): Macroize insn from wr<fsgs>base<mode> using
5209 WRFSGSBASE int iterator.
5210
bafda723
UB
52112012-06-20 Uros Bizjak <ubizjak@gmail.com>
5212
5213 * config/i386/i386.md (<rounding_insn><mode>2): Macroize expander
5214 from {floor,ceil,btrunc}<mode>2 using FIST_ROUNDING int iterator.
5215 (l<rounding_insn><MODEF:mode><SWI48:mode>2): Macroize expander
5216 from l{floor,ceil}<MODEF:mode><SWI48:mode>2 using FIST_ROUNDING
5217 int iterator.
5218
975667e7
SB
52192012-06-20 Steven Bosscher <steven@gcc.gnu.org>
5220
5221 * system.h: Poison ASM_OUTPUT_IDENT and IDENT_ASM_OP.
5222
a75f5017
RG
52232012-06-20 Richard Guenther <rguenther@suse.de>
5224
5225 PR tree-optimization/30318
5226 * tree-vrp.c (range_int_cst_p): Do not reject overflowed
5227 constants here.
5228 (range_int_cst_singleton_p): But explicitely here.
5229 (zero_nonzero_bits_from_vr): And here.
5230 (extract_range_from_binary_expr_1): Re-implement PLUS_EXPR
5231 to cover all cases we can perform arbitrary precision
5232 arithmetic with double-ints.
5233 (intersect_ranges): Handle adjacent anti-ranges.
5234
fb124e23
UB
52352012-06-20 Uros Bizjak <ubizjak@gmail.com>
5236
5237 * config/i386/i386.md (rounding_insn): New int attribute.
5238 (<rounding_insn>xf2): Macroize insn from
5239 {floor,ceil,btrunc}xf2 using FRNDINT_ROUNDING int iterator.
5240 (l<rounding_insn>xf<mode>2): Rename from l<rounding>xf<mode>2.
5241
52422012-06-20 Uros Bizjak <ubizjak@gmail.com>
5243
5244 * config/i386/i386.md (IEEE_MAXMIN): New int iterator.
5245 (ieee_maxmin): New int attribute.
5246 (*ieee_s<ieee_maxmin><mode>3): Macroize insn from
19425621 5247 *ieee_s{max,min}<mode>3 using IEEE_MAXMIN int iterator.
fb124e23 5248
34dd397b
SB
52492012-06-20 Steven Bosscher <steven@gcc.gnu.org>
5250
5251 * config/arm/arm.h (EMIT_EABI_ATTRIBUTE): Remove.
5252 * config/arm/arm.c: Do not include c-pragma.h.
5253 (arm_emit_eabi_attribute): New function based on EMIT_EABI_ATTRIBUTE.
5254 (arm_file_start): Replace uses of EMIT_EABI_ATTRIBUTE with calls
5255 to arm_emit_eabi_attribute.
5256 * arm-c.c: Do not include output.h.
5257 (arm_output_c_attributes): Replace use of EMIT_EABI_ATTRIBUTE with a
5258 call to arm_emit_eabi_attribute.
5259 * config/arm/arm-protos.h (arm_emit_eabi_attribute): Prototype it.
5260
f89dcfd8
RG
52612012-06-20 Richard Guenther <rguenther@suse.de>
5262
5263 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p):
5264 Allow adjusting alignment of user-aligned decls again.
5265
5a772946
SB
52662012-06-20 Steven Bosscher <steven@gcc.gnu.org>
5267
5268 * config/rl78/rl78-c.c: Remove unnecessary includes.
5269
3e71d953
SB
52702012-06-20 Steven Bosscher <steven@gcc.gnu.org>
5271
5272 * config/cris/cris.c: Include cgraph.h.
5273 (cris_option_override): Do not set non-existing flag_no_gcc_ident.
5274
8930883e
MK
52752012-06-19 Maxim Kuvyrkov <maxim@codesourcery.com>
5276
5277 * emit-rtl.c (need_atomic_barrier_p): New function.
5278 * emit-rtl.h (need_atomic_barrier_p): Declare it.
5279 * config/alpha/alpha.c (alpha_{pre,post}_atomic_barrier): Use it.
5280 * config/arm/arm.c (arm_{pre,post}_atomic_barrier): Use it.
5281 * config/tilegx/tilegx.c (tile_{pre,post}_atomic_barrier): Use it.
5282 * config/mips/mips.c (mips_{pre,post}_atomic_barrier_p): Remove.
5283 (mips_process_sync_loop): Use generic version instead.
5284
ff619148
MK
52852012-06-19 Maxim Kuvyrkov <maxim@codesourcery.com>
5286
5287 * config/mips/mips.c (mips_process_sync_loop): Emit cmp result only if
5288 it is used.
5289
6399761a 52902012-06-19 Tom de Vries <vries@codesourcery.com>
fb124e23 5291 Maxim Kuvyrkov <maxim@codesourcery.com>
6399761a
TV
5292
5293 * config/mips/constraints.md (ZR): New constraint.
5294 * config/mips/predicates.md (mem_noofs_operand): New predicate.
5295 * config/mips/mips.c (mips_print_operand): Handle new print modifier.
fb124e23 5296 * config/mips/mips.h (TARGET_XLP): Define.
6399761a
TV
5297 (TARGET_SYNC_AFTER_SC): Update.
5298 (ISA_HAS_SWAP, ISA_HAS_LDADD): Define.
5299 * config/mips/sync.md (atomic_exchange, atomic_fetch_add): Use
5300 XLP-specific swap and ldadd patterns.
5301 (atomic_exchange_swap, atomic_fetch_add_ldadd): New patterns.
5302
01c196ea
TV
53032012-06-19 Tom de Vries <vries@codesourcery.com>
5304 Maxim Kuvyrkov <maxim@codesourcery.com>
5305
5306 * config/mips/mips.c (mips_emit_pre_atomic_barrier_p,)
5307 (mips_emit_post_atomic_barrier_p): New static functions.
5308 (mips_process_sync_loop): Use them. Emit sync memory barriers in
5309 accordance with memory model semantics. Add return of CMP result for
5310 compare_and_swap.
5311 * config/mips/mips.md: Update comment.
5312 (sync_cmp): New attribute.
5313 (sync_memmodel): New attribute replacing sync_release_barrier.
5314 * config/mips/sync.md (UNSPEC_ATOMIC_COMPARE_AND_SWAP,)
5315 (UNSPEC_ATOMIC_EXCHANGE, UNSPEC_ATOMIC_FETCH_OP): New constants.
5316 (sync_lock_test_and_set, test_and_set_12): Update.
5317 (atomic_compare_and_swap, atomic_exchange, atomic_exchange_llsc,)
5318 (atomic_fetch_add, atomic_fetch_add_llsc): New patterns.
5319
b513d0fe
JM
53202012-06-19 Joseph Myers <joseph@codesourcery.com>
5321
5322 * config/rs6000/spe.md (*mov_si<mode>_e500_subreg0): Rename to
5323 mov_si<mode>_e500_subreg0.
5324 (*mov_si<mode>_e500_subreg0_elf_low)
5325 (*mov_si<mode>_e500_subreg4_elf_low): New patterns.
5326
f49278e6
RH
53272012-06-19 Richard Henderson <rth@redhat.com>
5328
5329 * config/alpha/alpha.c: Include params.h.
5330 (alpha_option_override): Initialize PARAM_L1_CACHE_LINE_SIZE,
5331 PARAM_L1_CACHE_SIZE, PARAM_L2_CACHE_SIZE for the cpu tuning.
5332
70f42967
SB
53332012-06-19 Steven Bosscher <steven@gcc.gnu.org>
5334
5335 * doc/tm.texi.in (TARGET_OBJC_DECLARE_UNRESOLVED_CLASS_REFERENCE,
5336 TARGET_OBJC_DECLARE_CLASS_DEFINITION): Add @hooks.
5337 (ASM_DECLARE_CLASS_REFERENCE, ASM_DECLARE_UNRESOLVED_REFERENCE):
5338 Remove.
5339 * doc/tm.texi: Regenerate.
5340 * config/darwin.h (ASM_OUTPUT_LABELREF): Remove special case for
5341 .objc_class_name_*.
5342 * config/darwin-c.c: Include target.h.
5343 (darwin_objc_declare_unresolved_class_reference): New function.
5344 (darwin_objc_declare_class_definition): New function.
5345 (TARGET_OBJC_DECLARE_UNRESOLVED_CLASS_REFERENCE): Define.
5346 (TARGET_OBJC_DECLARE_CLASS_DEFINITION): Define.
5347
a8781821
SB
53482012-06-19 Steven Bosscher <steven@gcc.gnu.org>
5349
5350 * target.def (output_ident): New hook.
5351 * targhooks.h (default_asm_output_ident_directive): Add prototype.
5352 * varasm.c (assemble_asm): Only prefix a tab if the string does not
5353 already start with one.
5354 (default_asm_output_ident_directive): New function to emit
5355 .ident as a top-level asm node while parsing, or directly to
5356 asm_out_file after parsing.
5357 * toplev.c (compile_file): Print a GCC .ident with
5358 targetm.asm_out.output_ident.
5359 * doc/tm.texi.in (ASM_OUTPUT_IDENT): Remove documentation for macro.
5360 (TARGET_ASM_OUTPUT_IDENT): Add @hook for this.
5361 * doc/tm.texi: Update.
5362
5363 * config/elfos.h (ASM_OUTPUT_IDENT, IDENT_ASM_OP): Remove.
5364 (TARGET_ASM_OUTPUT_IDENT): Define.
5365 * config/i386/djgpp.h (IDENT_ASM_OP): Remove.
5366 * config/i386/gas.h (ASM_OUTPUT_IDENT): Remove.
5367 * config/arm/aout.h (ASM_OUTPUT_IDENT): Remove.
5368 * config/sparc/sparc.h (IDENT_ASM_OP): Remove.
5369 (TARGET_ASM_OUTPUT_IDENT): Define.
5370 * config/picochip/picochip.h (IDENT_ASM_OP): Remove.
5371 (TARGET_ASM_OUTPUT_IDENT): Define.
5372
5373 * config/cris/cris-protos.h (cris_asm_output_ident): Add prototype.
5374 * config/cris/cris.c (cris_asm_output_ident): New function.
5375 * config/cris/cris.h (ASM_OUTPUT_IDENT, IDENT_ASM_OP): Remove.
5376
5377 * config/microblaze/microblaze-protos.h (microblaze_asm_output_ident):
5378 Add prototype.
5379 * config/microblaze/microblaze.c: Include cgraph.h for add_asm_node.
5380 (microblaze_asm_output_ident): Rewrite to work similar to
5381 default_asm_output_ident_directive for front-end .idents.
5382 * config/microblaze/microblaze.h (ASM_OUTPUT_IDENT): Remove.
5383 (TARGET_ASM_OUTPUT_IDENT): Define.
5384
5385 * config/mips/mips.h (ASM_OUTPUT_IDENT): Remove.
5386 * config/mips/sde.h (IDENT_ASM_OP, ASM_OUTPUT_IDENT): Remove.
5387
5388 * config/rx/rx.c: Include cgraph.h for add_asm_node.
5389 (rx_asm_output_ident): New function, similar to
5390 default_asm_output_ident_directive, but handle AS100 syntax also, so
5391 that #ident also works for rx in AS100 syntax.
5392 (TARGET_ASM_OUTPUT_IDENT): Define.
5393 * config/rx/rx.h (IDENT_ASM_OP): Remove.
5394
5395 * Makefile.in: Fix dependencies for c-family/c-lex.o.
5396
e42d5b2d
UB
53972012-06-19 Uros Bizjak <ubizjak@gmail.com>
5398
5399 * config/i386/i386.md (FIST_ROUNDING): New int iterator.
5400 (rounding): Handle UNSPEC_FIST_{FLOOR,CEIL}.
5401 (ROUNDING): Ditto.
5402 (*fist<mode>2_<rounding>_1): Macroize insn from
5403 *fist<mode>2_{floor,ceil}_1 using FIST_ROUNDING int iterator.
5404 (fistdi2_<rounding>): Macroize insn from
5405 fistdi2_{floor,ceil} using FIST_ROUNDING int iterator.
5406 (fistdi2_<rounding>_with_temp and splitters): Macroize insn and
5407 corresponding splitters from fistdi2_{floor,ceil} and corresponding
5408 splitters using FIST_ROUNDING int iterator.
5409 (fist<mode>2_<rounding>): Macroize insn from
5410 fist<mode>2_{floor,ceil} using FIST_ROUNDING int iterator.
5411 (fist<mode>2_<rounding>_with_temp and splitters): Macroize insn and
5412 corresponding splitters from fist<mode>2_{floor,ceil} and corresponding
5413 splitters using FIST_ROUNDING int iterator.
5414 (l<rounding>xf<mode>2): Macroize expander from l{floor,ceil}xf<mode>2
5415 using FIST_ROUNDING int iterator.
5416
73e9d637
RH
54172012-06-19 Richard Henderson <rth@redhat.com>
5418
5419 * config/i386/i386-protos.h (ix86_expand_sse2_mulv4si3): Declare.
5420 * config/i386/i386.c (ix86_expand_sse2_mulv4si3): New.
5421 * config/i386/predicates.md (nonimmediate_or_const_vector_operand): New.
5422 * config/i386/sse.md (sse2_mulv4si3): Delete.
5423 (mul<VI4_AVX2>3): Use ix86_expand_sse2_mulv4si3 and
5424 nonimmediate_or_const_vector_operand.
5425
84ddb681
RH
54262012-06-19 Richard Henderson <rth@redhat.com>
5427
5428 * expmed.c (struct init_expmed_rtl): Split ...
5429 (init_expmed_one_mode): ... out of ...
5430 (init_expmed): ... here. Initialize integer vector modes also.
5431 (synth_mult): Handle integer vector modes.
5432 (choose_mult_variant): Likewise.
5433 (expand_mult_const): Likewise.
5434 (expand_mult): Likewise.
5435 * machmode.h (GET_MODE_UNIT_BITSIZE): New.
5436
6bc0ff89
RH
54372012-06-19 Richard Henderson <rth@redhat.com>
5438
5439 * config/i386/i386.c (ix86_rtx_costs): Handle CONST_VECTOR, and
5440 integral vector modes.
5441
b13024e6
UB
54422012-06-19 Uros Bizjak <ubizjak@gmail.com>
5443
5444 * config/i386/i386.md (FRNDINT_ROUNDING): New int iterator.
5445 (rounding): New int attribute.
5446 (ROUNDING): Ditto.
5447 (frndintxf2_<rounding>): Macroize insn from
5448 frndintxf2_{floor,ceil,trunc} using FRNDINT_ROUNDING int iterator.
5449 (frndintxf2_<rounding>_i387): Macroize insn from
5450 frndintxf2_{floor,ceil,trunc}_i387 using FRNDINT_ROUNDING int iterator.
5451
b54e19c2
RG
54522012-06-19 Richard Guenther <rguenther@suse.de>
5453
5454 * tree-vrp.c (union_ranges): New function.
5455 (vrp_meet_1): Use union_ranges.
5456 (vrp_meet): Dump what we union and call vrp_meet_1.
5457
82981dc4
RE
54582012-06-19 Richard Earnshaw <rearnsha@arm.com>
5459
5460 * arm.md (enum unspec): Delete UNSPEC_SIN and UNSPEC_COS.
5461 (attr type): Remove fmul, ffmul, farith, ffarith, float_em
5462 f_fpa_load, f_fpa_store, f_mem_r, r_mem_f.
5463 (attr write_conflict, attr core_cycles): Update.
5464 * arm-generic.md (r_mem_f_wbuf): Delete reservation.
5465
105b7208
RG
54662012-06-19 Richard Guenther <rguenther@suse.de>
5467
5468 * tree-vrp.c (intersect_ranges): Handle more cases.
5469 (vrp_intersect_ranges): Dump what we intersect and call ...
5470 (vrp_intersect_ranges_1): ... this.
5471
af4d0d91
RG
54722012-06-19 Richard Guenther <rguenther@suse.de>
5473
5474 PR tree-optimization/53708
5475 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Preserve
5476 user-supplied alignment and alignment of decls with the used
5477 attribute.
5478
a910399d
LC
54792012-06-18 Lawrence Crowl <crowl@google.com>
5480
5481 * timevar.def (TV_PHASE_GENERATE): Rename to TV_PHASE_LATE_ASM.
5482 (TV_PHASE_CGRAPH): Rename to TV_PHASE_OPT_GEN.
5483 (TV_PHASE_STREAM_IN): New.
5484 (TV_PHASE_STREAM_OUT): New.
5485 * timevar.c (validate_phases): New.
5486 (timevar_print): Call validate_phases.
5487 * c-decl.c (c_write_global_declarations): Rename use of TV_PHASE_CGRAPH
5488 to TV_PHASE_OPT_GEN.
5489 * langhooks.c (write_global_declarations): Rename use of
5490 TV_PHASE_CGRAPH to TV_PHASE_OPT_GEN. Use TV_PHASE_DBGINFO instead of
5491 TV_PHASE_CHECK_DBGINFO.
5492 * toplev.c (compile_file): Rename use of TV_PHASE_GENERATE to
5493 TV_PHASE_LATE_ASM. Move start of TV_PHASE_LATE_ASM to after call to
5494 lang_hooks.decls.final_write_globals.
5495
f897891a
DE
54962012-06-18 David Edelshn <dje.gcc@gmail.com>
5497
5498 * config/rs6000/aix52.h (TARGET_EXTRA_BUILTINS): Define as 0.
5499
b86da593
UB
55002012-06-18 Uros Bizjak <ubizjak@gmail.com>
5501
5502 PR target/53712
5503 * config/i386/sse.md (*sse4_2_pcmpestr_unaligned): New.
5504 (*sse4_2_pcmpistr_unaligned): New.
5505
c59e1214 55062012-06-18 Ian Bolton <ian.bolton@arm.com>
1a73c9e4
UB
5507 Sameera Deshpande <sameera.deshpande@arm.com>
5508 Greta Yorsh <greta.yorsh@arm.com>
c59e1214 5509
1a73c9e4
UB
5510 * config/arm/arm-protos.h (arm_output_epilogue): Remove.
5511 * config/arm/arm.c (print_multi_reg): Remove.
5512 (vfp_output_fldmd): Likewise.
5513 (arm_output_epilogue): Likewise.
5514 * config/arm/arm.md (epilogue_insns): Update condition and code.
c59e1214 5515
482baa63 55162012-06-18 Ian Bolton <ian.bolton@arm.com>
1a73c9e4
UB
5517 Sameera Deshpande <sameera.deshpande@arm.com>
5518 Greta Yorsh <greta.yorsh@arm.com>
482baa63 5519
1a73c9e4
UB
5520 * config/arm/arm-protos.h (thumb2_expand_return): New declaration.
5521 * config/arm/arm.c (thumb2_expand_return): New function.
5522 * config/arm/arm.md (return): Update condition and code.
482baa63 5523
f79b86a4 55242012-06-18 Ian Bolton <ian.bolton@arm.com>
1a73c9e4
UB
5525 Sameera Deshpande <sameera.deshpande@arm.com>
5526 Greta Yorsh <greta.yorsh@arm.com>
f79b86a4 5527
1a73c9e4
UB
5528 * config/arm/arm-protos.h (output_return_instruction): New parameter
5529 and int to bool change of parameter types.
5530 * config/arm/arm.c (output_return_instruction): Likewise.
5531 * config/arm/arm.md (arm_simple_return): New pattern.
5532 (arm_return, cond_return, cond_return_inverted): Add new arguments.
5533 * config/arm/thumb2.md (thumb2_return): Update condition and code.
f79b86a4 5534
d461c88a 55352012-06-18 Ian Bolton <ian.bolton@arm.com>
1a73c9e4
UB
5536 Sameera Deshpande <sameera.deshpande@arm.com>
5537 Greta Yorsh <greta.yorsh@arm.com>
d461c88a 5538
1a73c9e4
UB
5539 * config/arm/arm-protos.h (arm_expand_epilogue): New declaration.
5540 * config/arm/arm.c (arm_expand_epilogue): New function.
5541 * config/arm/arm.md (epilogue): Update condition and code.
5542 (sibcall_epilogue): Likewise.
d461c88a 5543
0f9926f3 55442012-06-18 Ian Bolton <ian.bolton@arm.com>
1a73c9e4
UB
5545 Sameera Deshpande <sameera.deshpande@arm.com>
5546 Greta Yorsh <greta.yorsh@arm.com>
0f9926f3 5547
1a73c9e4
UB
5548 * config/arm/arm.c (arm_expand_epilogue_apcs_frame): New function.
5549 * config/arm/arm.md (arm_addsi3) Add an alternative.
0f9926f3 5550
4b2678f8 55512012-06-18 Ian Bolton <ian.bolton@arm.com>
1a73c9e4
UB
5552 Sameera Deshpande <sameera.deshpande@arm.com>
5553 Greta Yorsh <greta.yorsh@arm.com>
4b2678f8 5554
1a73c9e4
UB
5555 * config/arm/arm.md (vfp_pop_multiple_with_writeback) New define_insn.
5556 * config/arm/predicates.md (pop_multiple_fp) New special predicate.
5557 * config/arm/arm.c (arm_emit_vfp_multi_reg_pop): New function.
4b2678f8 5558
3aee1982 55592012-06-18 Ian Bolton <ian.bolton@arm.com>
1a73c9e4
UB
5560 Sameera Deshpande <sameera.deshpande@arm.com>
5561 Greta Yorsh <greta.yorsh@arm.com>
3aee1982 5562
1a73c9e4
UB
5563 * config/arm/arm.md (load_multiple_with_writeback) New define_insn.
5564 (load_multiple, pop_multiple_with_writeback_and_return) Likewise.
5565 (pop_multiple_with_return, ldr_with_return) Likewise.
5566 * config/arm/predicates.md (pop_multiple_return) New special predicate.
5567 * config/arm/arm-protos.h (arm_output_multireg_pop) New declaration.
5568 * config/arm/arm.c (arm_output_multireg_pop) New function.
5569 (arm_emit_multi_reg_pop): New function.
3aee1982 5570
474038cd
GY
55712012-06-18 Greta Yorsh <Greta.Yorsh@arm.com>
5572
5573 * config/arm/arm.c (ldm_stm_operation_p): Require SP
5574 as base register for loads if SP is in the register list.
5575
9ef7adc0
RG
55762012-06-18 Richard Guenther <rguenther@suse.de>
5577
5578 PR tree-optimization/53693
5579 * tree-vect-patterns.c (vect_operation_fits_smaller_type):
5580 Reject operands with more than one use.
5581
9b10be32
BS
55822012-06-18 Bill Schmidt <wschmidt@linux.ibm.com>
5583
5584 PR tree-optimization/53703
5585 * tree-ssa-phiopt.c (hoist_adjacent_loads): Skip virtual phis;
5586 correctly set bb_for_def[12].
5587
d421b10c
SB
55882012-06-18 Steven Bosscher <steven@gcc.gnu.org>
5589
5590 * config/vax/vax.h (VMS_TARGET): Remove.
5591
3928c098
RG
55922012-06-18 Richard Guenther <rguenther@suse.de>
5593
5594 * tree-vrp.c (extract_range_from_assert): Split out range
5595 intersecting code.
5596 (intersect_ranges): New function.
5597 (vrp_intersect_ranges): Likewise.
5598
ab4a745b
AK
55992012-06-18 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
5600
5601 * config/s390/s390.c (s390_gimplify_va_arg): Revert change from
5602 r187965.
5603
57a4717b
TB
56042012-06-18 Tejas Belagod <tejas.belagod@arm.com>
5605
5606 * doc/md.texi: Document int iterators.
5607 * read-rtl.c (ints): New iterator group.
5608 (find_int): Int iterator group callback.
5609 (apply_int_iterator): Likewise.
5610 (apply_iterators): Traverse int iterator table and add all the used
5611 iterators to list.
1a73c9e4
UB
5612 (initialize_iterators): Initialize data structures and callbacks for
5613 int iterators.
57a4717b
TB
5614 (read_rtx): Parse and read mappings for int iterators.
5615 (read_rtx_code): Record int iterator usage.
5616
b7104c55
RS
56172012-06-18 Richard Sandiford <rdsandiford@googlemail.com>
5618
5619 PR middle-end/53698
5620 * expr.c (expand_expr_addr_expr_1): Convert to tmode before
5621 performing an addition.
5622
ca3f2950
SB
56232012-06-17 Steven Bosscher <steven@gcc.gnu.org>
5624
5625 * output.h (split_double): Move prototype to rtl.h.
5626 (constructor_static_from_elts_p): Move prototype to tree.c.
5627 * rtl.h (split_double): Moved here from output.h.
5628 * tree.h (constructor_static_from_elts_p): Moved here from output.h.
5629 * final.c (split_double): Move from here ...
5630 * rtlanal.c (split_double): ... to here.
5631 * expr.c: Do not include output.h.
5632
172a84ff
SB
56332012-06-17 Steven Bosscher <steven@gcc.gnu.org>
5634
5635 * cfglayout.h: Remove.
5636 * cfglayout.c: Remove.
5637 * function.h (struct function): Remove x_last_location field.
5638 * function.c: Do not include cfglayout.h.
5639 (expand_function_start): Do not call no-op force_next_line_note.
5640 (expand_function_end): Likewise.
5641 * cfgrtl.c: Do not include cfglayout.h. Include gt-cfgrtl.h.
5642 (unlink_insn_chain): Moved here from cfglayout.c.
5643 (skip_insns_after_block, label_for_bb, record_effective_endpoints,
5644 into_cfg_layout_mode, outof_cfg_layout_mode,
5645 pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode,
5646 relink_block_chain, fixup_reorder_chain, verify_insn_chain,
5647 fixup_fallthru_exit_predecessor, force_one_exit_fallthru,
5648 cfg_layout_can_duplicate_bb_p, duplicate_insn_chain,
5649 cfg_layout_duplicate_bb, cfg_layout_initialize, break_superblocks,
5650 cfg_layout_finalize): Likewise.
5651 (rtl_can_remove_branch_p): Likewise.
5652 * rtl.h (insn_scope): Move prototype from cfglayout.h here.
5653 (duplicate_insn_chain): Likewise.
5654 (force_next_line_note): Remove prototype.
5655 * emit-rtl.c: Do not include tree-flow.h, egad. Include vecprim.h.
5656 (last_location): Remove #define to emit.x_last_location.
5657 (force_next_line_note): Remove no-op function.
5658 (init_emit): Don't set x_last_location.
5659 (block_locators_locs, block_locators_blocks, locations_locators_locs,
5660 locations_locators_vals, prologue_locator, epilogue_locator,
5661 curr_location, last_location, curr_block, last_block, curr_rtl_loc):
5662 Move POD to here from cfglayout.c.
5663 (insn_locators_alloc, insn_locators_finalize, insn_locators_free,
5664 set_curr_insn_source_location, get_curr_insn_source_location,
5665 set_curr_insn_block, get_curr_insn_block, curr_insn_locator,
5666 locator_scope, insn_scope, locator_location, locator_line, insn_line,
5667 locator_file, insn_file, locator_eq): Move to here from cfglayout.c.
5668 * cfghooks.h: Remove double-include protection.
5669 (can_copy_bbs_p, copy_bbs): Move prototypes from cfglayout.h to here.
5670 * cfghooks.c (can_copy_bbs_p, copy_bbs): Move to here from cfglayout.c.
5671 * final.c: Do not include cfglayout.h.
5672 (choose_inner_scope, change_scope): Move to here from cfglayout.c.
5673 (reemit_insn_block_notes): Likewise. Make static.
5674 * tree-flow.h (tree_could_trap_p, operation_could_trap_helper_p,
5675 operation_could_trap_p, tree_could_throw_p): Move from here...
5676 * tree.h: ... to here.
5677 * gengtype.c (open_base_files): Remove cfglayout.h from the list.
5678 * profile.c: Do not include cfghooks.h.
5679 * cfgloopmanip.c: Do not include cfglayout.h and cfghooks.h.
5680 * modulo-sched.c: Likewise.
5681 * loop-unswitch.c: Do not include cfglayout.h.
5682 * sched-ebb.c: Likewise.
5683 * tracer.c: Likewise.
5684 * ddg.c: Likewise.
5685 * tree-vect-loop-manip.c: Likewise.
5686 * loop-init.c: Likewise.
5687 * dwarf2out.c: Likewise.
5688 * hw-doloop.c: Likewise.
5689 * loop-unroll.c: Likewise.
5690 * cfgcleanup.c: Likewise.
5691 * bb-reorder.c: Likewise.
5692 * sched-rgn.c: Likewise.
5693 * tree-cfg.c: Likewise.
5694 * config/alpha/alpha.c: Likewise.
5695 * config/spu/spu.c: Likewise.
5696 * config/sparc/sparc.c: Likewise.
5697 * config/sh/sh.c: Likewise.
5698 * config/c6x/c6x.c: Likewise.
5699 * config/ia64/ia64.c: Likewise.
5700 * config/rs6000/rs6000.c: Likewise.
5701 * config/score/score.c: Likewise.
5702 * config/mips/mips.c: Likewise.
5703 * config/bfin/bfin.c: Likewise.
5704 * Makefile.in (CFGAYOUT_H): Remove, and fixup users.
5705 * config/rs6000/t-rs6000 (rs6000.o): Do not depend on cfglayout.h.
5706 * config/spu/t-spu-elf (spu.o: $): Likewise.
5707 * config/sparc/t-sparc (sparc.o): Do not depend on CFGLAYOUT_H.
5708
1c1ad7bb
SB
57092012-06-17 Steven Bosscher <steven@gcc.gnu.org>
5710
5711 * cfgloop.h: Do not include rtl.h.
5712 (enum iv_extend_code): New.
5713 (struct rtx_iv): Use iv_extend_code instead of rtx_code.
5714 * Makefile.in (CFGLOOP_H): Do not depend on RTL_H.
5715 * loop-iv.c (iv_extend_to_rtx_code): New function to translate
5716 an IV_EXTEND_CODE to an RTX_CODE.
5717 (dump_iv_info): Update for rtx_iv field type change.
5718 (iv_constant): Likewise.
5719 (iv_subreg): Likewise.
5720 (iv_extend): Likewise.
5721 (iv_neg): Likewise.
5722 (iv_add): Likewise.
5723 (iv_mult): Likewise.
5724 (iv_shift): Likewise.
5725 (get_biv_step_1): Likewise.
5726 (get_biv_step): Likewise.
5727 (iv_analyze_biv): Likewise.
5728 (get_iv_value): Likewise.
5729 (shorten_into_mode): Likewise.
5730 (canonicalize_iv_subregs): Likewise.
5731 * sese.c (sese_build_liveouts): Use MAY_HAVE_DEBUG_STMTS instead
5732 of MAY_HAVE_DEBUG_INSNS.
5733 * tree-ssa-loop-ivopts.c: Include recog.h after expr.h.
5734 * tree-ssa-loop-prefetch.c: Likewise.
5735
46d33ae9
SB
57362012-06-17 Steven Bosscher <steven@gcc.gnu.org>
5737
5738 * expmed.c (ceil_log2): Move from here...
5739 * hwint.c: ... to here for older GCCs...
5740 * hwint.h: ... and here for newer GCCs.
5741 * rtl.h (ceil_log2): Remove prototype.
5742
5743 * tree-phinodes.c: Do not include rtl.h.
5744 * Makefile.in (tree-phinodes.o): Do not depend on RTL_H.
5745
0df965d7
SB
57462012-06-17 Steven Bosscher <steven@gcc.gnu.org>
5747
5748 * config/cris/cris.h (TARGET_ELF): Remove.
5749 (FORCE_EH_FRAME_INFO_IN_DATA_SECTION): Remove.
5750 (CRIS_ASM_OUTPUT_ALIGNED_DECL_COMMON): Simpify using TARGET_ELF==1.
5751 (LOCAL_LABEL_PREFIX): Likewise.
5752 * config/cris/cris.c (cris_target_asm_named_section): Remove.
5753 (cris_option_override): Simpify using TARGET_ELF==1.
5754 (cris_file_start): Likewise.
5755 * config/cris/cris-protos.h (cris_target_asm_named_section): Remove.
5756
0a2818d5
UB
57572012-06-17 Uros Bizjak <ubizjak@gmail.com>
5758
5759 * config/i386/sse.md (vcvtph2ps): Fix vec_select selector.
5760
9510c5af
EB
57612012-06-16 Eric Botcazou <ebotcazou@adacore.com>
5762
5763 PR middle-end/53590
5764 * tree-inline.c (initialize_cfun): Copy can_delete_dead_exceptions.
5765
0a2818d5 57662012-06-15 Easwaran Raman <eraman@google.com>
ad14c7da
ER
5767
5768 * passes.c (init_optimization_passes): Remove pass_call_cdce
5769 from its current position and insert after pass_dce.
5770
7eb0f141
WL
57712012-06-15 Walter Lee <walt@tilera.com>
5772
5773 * config/tilegx/sync.md (atomic_fetch_<fetchop_name><mode>): Fix typo.
5774
96adb183
RE
57752012-06-15 Richard Earnshaw <rearnsha@arm.com>
5776
5777 * arm.c (note_invalid_constants): Don't return a result.
5778 (arm_memory_load_p): Delete function.
5779 (arm_const_double_rtx): Delete iterator variable i;
5780 (fp_immediate_constant): Likewise.
5781 (fp_const_from_val): Likewise.
5782
5783 * arm.c (arm_init_iwmmxt_builtins): Delete void_ftype_void.
5784
9e1a8dd1
RR
57852012-06-15 Marc Glisse <marc.glisse@inria.fr>
5786
5787 PR c++/51033
5788 * c-typeck.c (c_build_vec_perm_expr): Move to c-family/c-common.c.
b13024e6 5789 * c-tree.h (c_build_vec_perm_expr): Move to c-family/c-common.h.
9e1a8dd1 5790
eb6bb559
GJL
57912012-06-15 Georg-Johann Lay <avr@gjlay.de>
5792
5793 * config/avr/avr.c (avr_default_expand_builtin): New function.
5794 (avr_expand_builtin): Use it.
5795 (avr_expand_unop_builtin): Remove.
5796 (avr_expand_binop_builtin): Remove.
5797 (avr_expand_triop_builtin): Remove.
5798
f8395d62
MM
57992012-06-15 Michael Matz <matz@suse.de>
5800
5801 PR middle-end/38474
5802 * cfgexpand.c (add_alias_set_conflicts): Remove.
5803 (expand_used_vars): Don't call it.
5804 (aggregate_contains_union_type): Remove.
5805 * function.c (n_temp_slots_in_use): New static data.
5806 (make_slot_available, assign_stack_temp_for_type): Update it.
5807 (init_temp_slots): Zero it.
5808 (remove_unused_temp_slot_addresses): Use it for quicker removal.
5809 (remove_unused_temp_slot_addresses_1): Use htab_clear_slot.
5810
4c53d183
MM
58112012-06-15 Michael Matz <matz@suse.de>
5812
5813 * gimplify.c (gimplify_compound_literal_expr): Take gimple_test_f
5814 argument, don't emit assign statement if value is directly usable.
5815 (gimplify_expr): Adjust.
5816
6da8be89
MM
58172012-06-15 Michael Matz <matz@suse.de>
5818
5819 * gimplify.c (gimplify_modify_expr): Fold generated statements.
5820 * gimple-fold.c (can_refer_decl_in_current_unit_p): Check flag_ltrans.
5821
ef5ad3b7
RG
58222012-06-15 Richard Guenther <rguenther@suse.de>
5823
5824 * tree-vrp.c (set_and_canonicalize_value_range): Use canonical
5825 predicates to set VR_UNDEFINED and VR_VARYING. Drop a case
5826 we assert for in set_value_range to VR_VARYING.
5827
dae840fc
RE
58282012-06-15 Richard Earnshaw <rearnsha@arm.com>
5829
5830 * arm.md (addsf3, adddf3): Use s_register_operand.
5831 (subsf3, subdf3): Likewise.
5832 (mulsf3, muldf3): Likewise.
5833 (difsf3, divdf3): Likewise.
5834 (movsfcc, movdfcc): Likewise.
5835 * predicates.md (f_register_operand): Delete.
5836 (arm_float_rhs_operand): Delete.
5837 (arm_float_add_operand): Delete.
5838 (arm_float_compare_operand): Use s_register_operand when
5839 there's no VFP.
5840 (cirrus_register_operand): Delete.
5841 (cirrus_fp_register): Delete.
5842 (cirrus_shift_const): Delete.
5843 (cmpdi_operand): Remove Maverick support.
5844 * constraints.md (f, v, H): Delete constraints.
5845 (G): Update documentation.
5846 * arm.c (fp_consts_inited): Convert to bool.
5847 (strings_fp): Delete.
5848 (values_fp): Delete.
5849 (value_fp0): New variable.
5850 (init_fp_table): Simplify logic.
5851 (arm_const_double_rtx): Likewise.
5852 (fp_immediate_constant): Likewise.
5853 (fp_const_from_val): Likewise.
5854 (neg_const_double_rtx_ok_for_fpa): Delete.
5855 * doc/md.texi (ARM constraints): Update documentation.
5856
3ebde0e9
UW
58572012-06-15 Ulrich Weigand <ulrich.weigand@linaro.org>
5858
5859 PR tree-optimization/53636
5860 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Verify
5861 stride when doing basic-block vectorization.
5862
273d260f
RR
58632012-06-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
5864
5865 * tree-vect-generic.c (lower_vec_perm): Propagate vector constants
5866 into VEC_PERM_EXPR.
5867
079c527f
JJ
58682012-06-15 Jakub Jelinek <jakub@redhat.com>
5869
772e61e1
JJ
5870 * tree-vect-patterns.c (vect_pattern_recog): Don't unnecessarily
5871 allocate and free bbs array for the SLP case.
5872
079c527f
JJ
5873 PR tree-optimization/51581
5874 * expr.h (choose_multiplier): New prototype.
5875 * expmed.c (choose_multiplier): No longer static.
5876 Change multiplier_ptr from rtx * to UHWI *.
5877 (expand_divmod): Adjust callers.
0a2818d5 5878 * tree-vect-patterns.c (vect_recog_sdivmod_pow2_pattern): Renamed to...
079c527f
JJ
5879 (vect_recog_divmod_pattern): ... this. Pass bb_vinfo as last
5880 argument to new_stmt_vec_info. Attempt to optimize also divisions
5881 by non-pow2 constants if integer vector division isn't supported.
5882 * tree-vect-stmts.c (vect_analyze_stmt): If node != NULL,
5883 don't look at pattern stmts and sequences.
5884
2da02156
EB
58852012-06-15 Eric Botcazou <ebotcazou@adacore.com>
5886
5887 PR middle-end/53590
5888 * common.opt (-fdelete-dead-exceptions): New switch.
5889 * doc/invoke.texi (Code Gen Options): Document it.
5890 * cse.c (count_reg_usage) <CALL_INSN>: Use !insn_nothrow_p in lieu of
5891 insn_could_throw_p predicate. Do not skip an insn that could throw
5892 if dead exceptions can be deleted.
5893 (insn_live_p): Likewise, do not return true in that case.
5894 * dce.c (can_alter_cfg): New flag.
5895 (deletable_insn_p): Do not return false for an insn that can throw if
5896 the CFG can be altered and dead exceptions can be deleted.
5897 (init_dce): Set can_alter_cfg to false for fast DCE, true otherwise.
5898 * dse.c (scan_insn): Use !insn_nothrow_p in lieu of insn_could_throw_
5899 predicate. Do not preserve an insn that could throw if dead exceptions
5900 can be deleted.
5901 * function.h (struct function): Add can_delete_dead_exceptions flag.
5902 * function.c (allocate_struct_function): Set it.
5903 * lto-streamer-in.c (input_struct_function_base): Stream it.
5904 * lto-streamer-out.c (input_struct_function_base): Likewise.
5905 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Do not mark a
5906 statement that could throw as necessary if dead exceptions can be
5907 deleted.
5908
2bcf3c5c
MK
59092012-06-14 Maxim Kuvyrkov <maxim@codesourcery.com>
5910
5911 * config/tilegx/sync.md (atomic_fetch_sub<mode>): Fix typo.
5912
3f8d753f
OE
59132012-06-14 Oleg Endo <olegendo@gcc.gnu.org>
5914
5915 PR target/53568
5916 * config/sh/sh.md: Add peephole for swapbsi2.
5917 (*swapbisi2_and_shl8, *swapbhisi2): New insns and splits.
5918
c5b7018e
UB
59192012-06-14 Uros Bizjak <ubizjak@gmail.com>
5920
87b86710 5921 * config/i386/i386.md (*zero_extendsidi2): Remove x,x alternative.
6c31f5fb 5922 (*zero_extendsidi2_rex64): Ditto. Remove isa attribute.
c5b7018e 5923
4e534d30
JJ
59242012-06-14 Jakub Jelinek <jakub@redhat.com>
5925
5926 PR target/53639
5927 * config/i386/i386.md (*anddi_1 into *andsi_1_zext splitter): New.
5928
479f7546
RE
59292012-06-14 Richard Earnshaw <rearnsha@arm.com>
5930
5931 * arm.c (arm_cirrus_insn_p): Delete.
5932 (cirrus_reorg): Delete.
5933 (arm_reorg): Don't call cirrus_reorg.
5934 (arm_final_prescan_insn_p): Don't check for cirrus insns.
5935 * arm.md (define_attr "type"): Remove mav_farith and mav_dmult.
5936 (adddi3, subdi3): Remove Maverick support.
5937 (arm_adddi3): Likewise.
5938 (adddi_sesidi_di, adddi_zesidi_di): Likewise.
5939 (addsf3, adddf3): Likewise.
5940 (subsf3, subdf3): Likewise.
5941 (mulsf3, muldf3): Likewise.
5942 (ashldi3, ashrdi3, lshrdi3): Likewise.
5943 (floatsisf2, floatsidf2): Likewise.
5944 (fix_truncsfsi2, fix_truncdfsi2): Likewise.
5945 (arm_movdi, thumb1_movdi_insn): Likewise.
5946 (arm_cmpdi_insn): Likewise.
5947 (cirrus_cmpsf, cirrus_cmpdf, cirrus_cmpdi): Likewise.
5948 (cirrus.md): Don't include.
5949 * cirrus.md: Delete file.
5950 * t-arm (MD_INCLUDES): Remove cirrus.md.
5951
0364adfd
EB
59522012-06-14 Eric Botcazou <ebotcazou@adacore.com>
5953
5954 * dwarf2out.c (function_possibly_abstracted_p): New static function.
5955 (gen_subprogram_die): Use it function_possibly_abstracted_p in lieu of
5956 cgraph_function_possibly_inlined_p.
5957 (gen_inlined_subroutine_die): Return if the origin is to be ignored.
5958 (process_scope_var): Do not emit concrete instances of abstracted
5959 nested functions from here.
5960 (gen_decl_die): Emit the abstract instance if the function is possibly
5961 abstracted and not only possibly inlined.
5962 (dwarf2out_finish): Find the first non-abstract parent instance and
5963 attach concrete instances on the limbo list to it.
5964
8fcd8c83
RE
59652012-06-14 Richard Earnshaw <rearnsha@arm.com>
5966
5967 * arm.md (divsf3, divdf3): Remove FPA support.
5968 (negsf2, negdf2): Likewise.
5969 (sqrtsf2, sqrtdf2): Likewise.
5970 (movdfcc): Likewise.
5971 (modsf3, moddf3, movxf): Delete.
5972 (push_fp_multi): Delete.
5973 (fpa.md): Don't include it.
5974 * fpa.md: Delete file.
5975 * t-arm (MD_INCLUDES): Remove fpa.md.
5976
b6cef4e0
BS
59772012-06-14 Bill Schmidt <wschmidt@linux.ibm.com>
5978
5979 * tree-vectorizer.h (vect_get_stmt_cost): Move from tree-vect-stmts.c.
5980 (cost_for_stmt): Remove decl.
5981 (vect_get_single_scalar_iteration_cost): Correct typo in name.
5982 * tree-vect-loop.c (vect_get_cost): Remove.
5983 (vect_get_single_scalar_iteration_cost): Correct typo in name; use
5984 vect_get_stmt_cost rather than vect_get_cost.
5985 (vect_get_known_peeling_cost): Use vect_get_stmt_cost rather than
5986 vect_get_cost.
5987 (vect_estimate_min_profitable_iters): Correct typo in call to
5988 vect_get_single_scalar_iteration_cost; use vect_get_stmt_cost rather
5989 than vect_get_cost.
5990 (vect_model_reduction_cost): Use vect_get_stmt_cost rather than
5991 vect_get_cost.
5992 (vect_model_induction_cost): Likewise.
5993 * tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost): Correct
5994 typo in call to vect_get_single_scalar_iteration_cost.
5995 * tree-vect-stmts.c (vect_get_stmt_cost): Move to tree-vectorizer.h.
5996 (cost_for_stmt): Remove unnecessary function.
5997 * Makefile.in (TREE_VECTORIZER_H): Update dependencies.
5998
76702923
RE
59992012-06-14 Richard Earnshaw <rearnsha@arm.com>
6000
6001 * arm.opt (mfp=2, mfp=3, mfpe, mfpe=2, mfpe=3): Delete options.
f8395d62 6002 * arm-fpus.def (fpa, fpe2, fpe3, maverick): Delete FPU types.
76702923 6003 * arm-tables.opt: Regenerated.
f8395d62 6004 * doc/invoke.texi: Remove references to deleted options.
76702923 6005
9257546b
SKS
60062012-06-14 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
6007
c5b7018e 6008 * config/h8300/genmova.sh: Modified to add offset bits of
9257546b
SKS
6009 mova/Sz assembly instruction for memory access.
6010 * config/h8300/h8300.c: Likewise.
6011 * config/h8300/mova.md: Likewise.
6012
5921cd19
CB
60132012-06-12 Christian Bruel <christian.bruel@st.com>
6014
6015 PR target/53621
6016 * config/sh/sh.c (sh_option_override): Don't force
6017 flag_omit_frame_pointer and maccumulate_outgoing_args.
6018 * config/sh/sh.opt (maccumulate-outgoing-args): Init as Var.
6019
3c9c79e8
RG
60202012-06-14 Richard Guenther <rguenther@suse.de>
6021
6022 * tree-vrp.c (VR_INITIALIZER): New define.
6023 (ranges_from_anti_range): New function.
6024 (extract_range_from_binary_expr_1): Decompose operations on
6025 VR_ANTI_RANGEs to operations on VR_RANGE.
6026 (extract_range_from_unary_expr_1): Likewise.
6027 (extract_range_from_binary_expr_1, extract_range_from_binary_expr,
6028 extract_range_from_unary_expr_1, extract_range_from_unary_expr,
6029 extract_range_from_cond_expr, adjust_range_with_scev,
6030 vrp_visit_assignment_or_call, vrp_visit_phi_node,
6031 simplify_bit_ops_using_ranges): Use VR_INITIALIZER.
6032
fd2d9121
RH
60332012-06-13 Richard Henderson <rth@redhat.com>
6034
6035 * hwint.h (HOST_WIDEST_INT_C): New.
6036 (HOST_WIDE_INT_C): New.
6037 (HOST_WIDE_INT_1): Use it.
6038 * config/alpha/alpha.c (alpha_trampoline_init): Use it.
6039
8cda8ad3
AO
60402012-06-13 Alexandre Oliva <aoliva@redhat.com>
6041
6042 PR debug/49888
6043 * var-tracking.c: Include alias.h.
6044 (overlapping_mems): New struct.
6045 (drop_overlapping_mem_locs): New.
6046 (clobber_overlapping_mems): New.
6047 (var_mem_delete_and_set, var_mem_delete): Call it.
6048 (val_bind): Likewise, but only if modified.
6049 (compute_bb_dataflow, emit_notes_in_bb): Call it on MEMs.
6050 * Makefile.in (var-tracking.o): Depend in $(ALIAS_H).
6051
d05cae4a
AO
60522012-06-13 Alexandre Oliva <aoliva@redhat.com>
6053
6054 PR debug/47624
6055 * var-tracking.c (loc_exp_dep_pool): New.
6056 (vt_emit_notes): Create and release the pool.
6057 (compute_bb_dataflow): Use value-based locations in MO_VAL_SET.
6058 (emit_notes_in_bb): Likewise.
6059 (loc_exp_dep_insert): Deal with NOT_ONEPART vars.
6060 (notify_dependents_of_changed_value): Likewise.
6061 (notify_dependents_of_resolved_value): Check that NOT_ONEPART
6062 variables don't have a VAR_LOC_DEP_LST.
6063 (emit_note_insn_var_location): Expand NOT_ONEPART locs that are
6064 VALUEs or MEMs of VALUEs.
6065
39bc0f01
AO
60662012-06-13 Alexandre Oliva <aoliva@redhat.com>
6067
6068 PR debug/52983
6069 PR debug/48866
6070 * dce.c (word_dce_process_block): Insert debug temps only if the
6071 insn is not marked.
6072 (dce_process_block): Likewise, and if debug.used is not empty,
6073 and only after iterating over all DEFs that might mark the insn.
6074
21d01365
AO
60752012-06-13 Alexandre Oliva <aoliva@redhat.com>
6076
6077 * common.opt (ftree-coalesce-inlined-vars): New.
6078 (ftree-coalesce-vars): New.
6079 * doc/invoke.texi: Document them.
6080 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
6081 Implement them.
6082
b78fd164
RS
60832012-06-13 Richard Sandiford <rdsandiford@googlemail.com>
6084
6085 * read-rtl.c (mapping): Remove index field. Add current_value field.
6086 Define heap vectors.
6087 (iterator_group): Fix long line. Remove num_builtins field and
6088 uses_iterator fields. Make apply_iterator take a void * parameter.
6089 (iterator_use, atttribute_use): New structures.
6090 (iterator_traverse_data, BELLWETHER_CODE, bellwether_codes): Delete.
6091 (current_iterators, iterator_uses, attribute_uses): New variables.
6092 (uses_mode_iterator_p, uses_code_iterator_p): Delete.
6093 (apply_mode_iterator, apply_code_iterator): Take a void * parameter.
6094 (map_attr_string, apply_iterator_to_string): Remove iterator
6095 and value parameters. Look through all current iterator values
6096 for a matching attribute.
6097 (mode_attr_index, apply_mode_maps): Delete.
6098 (apply_iterator_to_rtx): Replace with...
6099 (copy_rtx_for_iterators): ...this new function.
6100 (uses_iterator_p, apply_iterator_traverse): Delete.
6101 (apply_attribute_uses, add_current_iterators, apply_iterators): New
6102 functions.
6103 (add_mapping): Remove index field. Set current_value field.
6104 (initialize_iterators): Don't set num_builtins and uses_iterator_p
6105 fields.
6106 (find_iterator): Delete.
6107 (record_iterator_use, record_attribute_use): New functions.
6108 (record_potential_iterator_use): New function.
6109 (check_code_iterator): Remove handling of bellwether codes.
6110 (read_rtx): Remove mode maps. Truncate iterator and attribute uses.
6111 (read_rtx_code, read_nested_rtx, read_rtx_variadic): Remove mode_maps
6112 parameter. Use the first code iterator value instead of the
c5b7018e 6113 bellwether_codes array. Use record_potential_iterator_use for modes.
b78fd164 6114
638a085f
OE
61152012-06-13 Oleg Endo <olegendo@gcc.gnu.org>
6116
6117 PR target/53568
6118 * config/sh/sh.md (bswapsi2): New expander.
6119 (swapbsi2): New insn.
6120
054121a4
L
61212012-06-13 H.J. Lu <hongjiu.lu@intel.com>
6122
6123 PR target/53647
6124 * config/i386/i386.c (ix86_tune_cost): New variable.
6125 (ix86_option_override_internal): Set ix86_tune_cost. Use
6126 ix86_tune_cost for simultaneous_prefetches, prefetch_block,
6127 l1_cache_size and l2_cache_size.
6128
cf35667e
RG
61292012-06-13 Richard Guenther <rguenther@suse.de>
6130
6131 * tree-vrp.c (vrp_meet): Properly meet equivalent ranges.
6132 Handle meeting two VR_RANGE to an VR_ANTI_RANGE. Implement
6133 all possible meetings of VR_RANGE with VR_ANTI_RANGE and
6134 VR_ANTI_RANGE with VR_ANTI_RANGE.
6135
c4cc7bc1
RE
61362012-06-13 Richard Earnshaw <rearnsha@arm.com>
6137
6138 * config.gcc (unsupported): Move obsoleted FPA-based configurations
6139 here from ...
6140 (obsolete): ... here.
6141 (arm*-*-freebsd*): Remove.
6142 (arm*-*-linux*): Only accept EABI variants. Simplify logic.
6143 (arm*-*-uclinux*): Likewise.
6144 (arm*-*-ecos-elf): Remove.
6145 (arm*-*-rtems*): Remove.
6146 (arm*-*-elf): Remove.
6147 (arm*-wince-pe*): Remove.
6148 (arm, --with-fpu): Remove support for fpa and Maverick variants.
6149 * arm/ecos-elf.h: Delete.
6150 * arm/t-strongarm-elf: Delete.
6151 * arm/rtems-elf.h: Delete.
6152 * arm/wince-pe.h: Delete.
6153 * arm/pe.c: Delete.
6154 * arm/pe.h: Delete.
6155 * arm/t-wince-pe: Delete.
6156
7ef58a1a
BS
61572012-06-13 Bill Schmidt <wschmidt@linux.ibm.com>
6158
6159 PR tree-optimization/53647
6160 * tree-ssa-phiopt.c (gate_hoist_loads): Skip transformation for
6161 targets with no defined cache line size.
6162
a21892ad
BS
61632012-06-13 Bill Schmidt <wschmidt@linux.ibm.com>
6164
6165 * targhooks.c (default_builtin_vectorized_conversion): Handle
6166 vec_construct, using vectype to base cost on subparts.
6167 * target.h (enum vect_cost_for_stmt): Add vec_construct.
6168 * tree-vect-stmts.c (vect_model_load_cost): Use vec_construct
6169 instead of scalar_to-vec.
6170 * config/spu/spu.c (spu_builtin_vectorization_cost): Handle
6171 vec_construct in same way as default for now.
6172 * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
6173 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
6174 Handle vec_construct, including special case for 32-bit loads.
6175
8fd03515
XQ
61762012-06-13 Xinyu Qi <xyqi@marvell.com>
6177
6178 * config/arm/arm.c (FL_IWMMXT2): New define.
6179 (arm_arch_iwmmxt2): New variable.
6180 (arm_option_override): Enable use of iWMMXt with VFP.
6181 Disable use of iWMMXt with NEON. Disable use of iWMMXt under
6182 Thumb mode. Set arm_arch_iwmmxt2.
6183 (arm_expand_binop_builtin): Accept VOIDmode op.
6184 (enum arm_builtins): Revise built-in fcode.
6185 (IWMMXT2_BUILTIN): New define.
6186 (IWMMXT2_BUILTIN2): Likewise.
6187 (iwmmx2_mbuiltin): Likewise.
6188 (builtin_description bdesc_2arg): Revise built in declaration.
6189 (builtin_description bdesc_1arg): Likewise.
6190 (arm_init_iwmmxt_builtins): Revise built in initialization.
6191 (arm_expand_builtin): Revise built in expansion.
6192 (arm_output_iwmmxt_shift_immediate): New function.
6193 (arm_output_iwmmxt_tinsr): Likewise.
6194 * config/arm/arm-protos.h (arm_output_iwmmxt_shift_immediate): Declare.
6195 (arm_output_iwmmxt_tinsr): Likewise.
6196 * config/arm/iwmmxt.md (WCGR0, WCGR1, WCGR2, WCGR3): New constant.
6197 (iwmmxt_psadbw, iwmmxt_walign, iwmmxt_tmrc, iwmmxt_tmcr): Delete.
6198 (rorv4hi3, rorv2si3, rordi3): Likewise.
6199 (rorv4hi3_di, rorv2si3_di, rordi3_di): Likewise.
6200 (ashrv4hi3_di, ashrv2si3_di, ashrdi3_di): Likewise.
6201 (lshrv4hi3_di, lshrv2si3_di, lshrdi3_di): Likewise.
6202 (ashlv4hi3_di, ashlv2si3_di, ashldi3_di): Likewise.
6203 (iwmmxt_tbcstqi, iwmmxt_tbcsthi, iwmmxt_tbcstsi): Likewise
6204 (*iwmmxt_clrv8qi, *iwmmxt_clrv4hi, *iwmmxt_clrv2si): Likewise.
6205 (tbcstv8qi, tbcstv4hi, tbsctv2si): New pattern.
6206 (iwmmxt_clrv8qi, iwmmxt_clrv4hi, iwmmxt_clrv2si): Likewise.
6207 (*and<mode>3_iwmmxt, *ior<mode>3_iwmmxt, *xor<mode>3_iwmmxt): Likewise.
6208 (ror<mode>3, ror<mode>3_di): Likewise.
6209 (ashr<mode>3_di, lshr<mode>3_di, ashl<mode>3_di): Likewise.
6210 (ashli<mode>3_iwmmxt, iwmmxt_waligni, iwmmxt_walignr): Likewise.
6211 (iwmmxt_walignr0, iwmmxt_walignr1): Likewise.
6212 (iwmmxt_walignr2, iwmmxt_walignr3): Likewise.
6213 (iwmmxt_setwcgr0, iwmmxt_setwcgr1): Likewise.
6214 (iwmmxt_setwcgr2, iwmmxt_setwcgr3): Likewise.
6215 (iwmmxt_getwcgr0, iwmmxt_getwcgr1): Likewise.
6216 (iwmmxt_getwcgr2, iwmmxt_getwcgr3): Likewise.
6217 (All instruction patterns): Add wtype attribute.
6218 (*iwmmxt_arm_movdi, *iwmmxt_movsi_insn): iWMMXt coexist with vfp.
6219 (iwmmxt_uavgrndv8qi3, iwmmxt_uavgrndv4hi3): Revise the pattern.
6220 (iwmmxt_uavgv8qi3, iwmmxt_uavgv4hi3): Likewise.
6221 (ashr<mode>3_iwmmxt, ashl<mode>3_iwmmxt, lshr<mode>3_iwmmxt): Likewise.
6222 (iwmmxt_tinsrb, iwmmxt_tinsrh, iwmmxt_tinsrw):Likewise.
6223 (eqv8qi3, eqv4hi3, eqv2si3, gtuv8qi3): Likewise.
6224 (gtuv4hi3, gtuv2si3, gtv8qi3, gtv4hi3, gtv2si3): Likewise.
6225 (iwmmxt_wunpckihh, iwmmxt_wunpckihw, iwmmxt_wunpckilh): Likewise.
6226 (iwmmxt_wunpckilw, iwmmxt_wunpckehub, iwmmxt_wunpckehuh): Likewise.
6227 (iwmmxt_wunpckehuw, iwmmxt_wunpckehsb, iwmmxt_wunpckehsh): Likewise.
6228 (iwmmxt_wunpckehsw, iwmmxt_wunpckelub, iwmmxt_wunpckeluh): Likewise.
6229 (iwmmxt_wunpckeluw, iwmmxt_wunpckelsb, iwmmxt_wunpckelsh): Likewise.
6230 (iwmmxt_wunpckelsw, iwmmxt_wmadds, iwmmxt_wmaddu): Likewise.
6231 (iwmmxt_wsadb, iwmmxt_wsadh, iwmmxt_wsadbz, iwmmxt_wsadhz): Likewise.
6232 (iwmmxt2.md): Include.
6233 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __IWMMXT2__.
6234 (TARGET_IWMMXT2): New define.
6235 (TARGET_REALLY_IWMMXT2): Likewise.
6236 (arm_arch_iwmmxt2): Declare.
6237 * config/arm/mmintrin.h: Use __IWMMXT__ to enable iWMMXt intrinsics.
6238 Use __IWMMXT2__ to enable iWMMXt2 intrinsics.
6239 Use C name-mangling for intrinsics.
6240 (__v8qi): Redefine.
6241 (_mm_cvtsi32_si64, _mm_andnot_si64, _mm_sad_pu8): Revise.
6242 (_mm_sad_pu16, _mm_align_si64, _mm_setwcx, _mm_getwcx): Likewise.
6243 (_m_from_int): Likewise.
6244 (_mm_sada_pu8, _mm_sada_pu16): New intrinsic.
6245 (_mm_alignr0_si64, _mm_alignr1_si64, _mm_alignr2_si64): Likewise.
6246 (_mm_alignr3_si64, _mm_tandcb, _mm_tandch, _mm_tandcw): Likewise.
6247 (_mm_textrcb, _mm_textrch, _mm_textrcw, _mm_torcb): Likewise.
6248 (_mm_torch, _mm_torcw, _mm_tbcst_pi8, _mm_tbcst_pi16): Likewise.
6249 (_mm_tbcst_pi32): Likewise.
6250 (_mm_abs_pi8, _mm_abs_pi16, _mm_abs_pi32): New iWMMXt2 intrinsic.
6251 (_mm_addsubhx_pi16, _mm_absdiff_pu8, _mm_absdiff_pu16): Likewise.
6252 (_mm_absdiff_pu32, _mm_addc_pu16, _mm_addc_pu32): Likewise.
6253 (_mm_avg4_pu8, _mm_avg4r_pu8, _mm_maddx_pi16, _mm_maddx_pu16): Likewise.
6254 (_mm_msub_pi16, _mm_msub_pu16, _mm_mulhi_pi32): Likewise.
6255 (_mm_mulhi_pu32, _mm_mulhir_pi16, _mm_mulhir_pi32): Likewise.
6256 (_mm_mulhir_pu16, _mm_mulhir_pu32, _mm_mullo_pi32): Likewise.
6257 (_mm_qmulm_pi16, _mm_qmulm_pi32, _mm_qmulmr_pi16): Likewise.
6258 (_mm_qmulmr_pi32, _mm_subaddhx_pi16, _mm_addbhusl_pu8): Likewise.
6259 (_mm_addbhusm_pu8, _mm_qmiabb_pi32, _mm_qmiabbn_pi32): Likewise.
6260 (_mm_qmiabt_pi32, _mm_qmiabtn_pi32, _mm_qmiatb_pi32): Likewise.
6261 (_mm_qmiatbn_pi32, _mm_qmiatt_pi32, _mm_qmiattn_pi32): Likewise.
6262 (_mm_wmiabb_si64, _mm_wmiabbn_si64, _mm_wmiabt_si64): Likewise.
6263 (_mm_wmiabtn_si64, _mm_wmiatb_si64, _mm_wmiatbn_si64): Likewise.
6264 (_mm_wmiatt_si64, _mm_wmiattn_si64, _mm_wmiawbb_si64): Likewise.
6265 (_mm_wmiawbbn_si64, _mm_wmiawbt_si64, _mm_wmiawbtn_si64): Likewise.
6266 (_mm_wmiawtb_si64, _mm_wmiawtbn_si64, _mm_wmiawtt_si64): Likewise.
6267 (_mm_wmiawttn_si64, _mm_merge_si64): Likewise.
6268 (_mm_torvscb, _mm_torvsch, _mm_torvscw): Likewise.
6269 (_m_to_int): New define.
6270 * config/arm/arm-cores.def (iwmmxt2): Add FL_IWMMXT2.
6271 * config/arm/arm-arches.def (iwmmxt2): Likewise.
6272 * config/arm/t-arm (MD_INCLUDES): Add marvell-f-iwmmxt.md and
6273 iwmmxt2.md.
6274 * config/arm/arm.md (marvell-f-iwmmxt.md): Include.
6275 (arch): Add "iwmmxt2".
6276 (arch_enabled): Handle "iwmmxt2".
6277 (wtype): New attribute.
6278 (UNSPEC_WMADDS, UNSPEC_WMADDU): Delete.
6279 (UNSPEC_WALIGNI): New unspec.
6280 * config/arm/predicates.md (imm_or_reg_operand): New predicate.
6281 * config/arm/iterators.md (VMMX2): New mode_iterator.
6282 * config/arm/marvell-f-iwmmxt.md: New file.
6283 * config/arm/iwmmxt2.md: New file.
6284
cce50861
JJ
62852012-06-12 Jakub Jelinek <jakub@redhat.com>
6286
6287 PR c/53532
6288 PR c/51034
6289 PR c/53196
6290 * c-decl.c (build_compound_literal): Call c_incomplete_type_error
6291 if type isn't complete.
6292
69c8c01f
UB
62932012-06-12 Uros Bizjak <ubizjak@gmail.com>
6294
6295 * config/ia64/sync.md (fetchop_name): Change ior attribute to "or".
6296
126294f4
RH
62972012-06-12 Richard Henderson <rth@redhat.com>
6298
6299 * config/rs6000/sync.md (atomic_load, atomic_store): Use INT1 mode
6300 iterator instead of INT.
69c8c01f 6301
372a6eb8
BS
63022012-06-12 Bill Schmidt <wschmidt@linux.ibm.com>
6303
6304 * opts.c: Add -fhoist-adjacent-loads to -O2 and above.
6305 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Add argument to forward
6306 declaration.
6307 (hoist_adjacent_loads, gate_hoist_loads): New forward declarations.
6308 (tree_ssa_phiopt): Call gate_hoist_loads.
6309 (tree_ssa_cs_elim): Add parm to tree_ssa_phiopt_worker call.
6310 (tree_ssa_phiopt_worker): Add do_hoist_loads to formal arg list; call
6311 hoist_adjacent_loads.
6312 (local_mem_dependence): New function.
6313 (hoist_adjacent_loads): Likewise.
6314 (gate_hoist_loads): Likewise.
6315 * common.opt (fhoist-adjacent-loads): New switch.
6316 * Makefile.in (tree-ssa-phiopt.o): Added dependencies.
6317
175a7536
MM
63182012-06-12 Michael Matz <matz@suse.de>
6319
6320 * alias.c (nonoverlapping_component_refs_p): Take two rtx arguments.
6321 (nonoverlapping_memrefs_p): Don't call it here ...
6322 (true_dependence_1): ... but here.
6323
f68396a1
RG
63242012-06-12 Richard Guenther <rguenther@suse.de>
6325
6326 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove dead code.
6327 * alias.c (ao_ref_from_mem): MEM_EXPR is conservative, MEM_OFFSET
6328 and MEM_SIZE only refines it. Reflect that and be less conservative
6329 if either of the latter is not known.
6330
891ca07d
JJ
63312012-06-12 Jakub Jelinek <jakub@redhat.com>
6332
6333 PR rtl-optimization/53589
6334 * cfgrtl.c (force_nonfallthru_and_redirect): Do asm_goto_edge
6335 discovery even when e->dest != target. If any LABEL_REF points
6336 to e->dest label, redirect it to target's label.
6337
2b8088e7
CLT
63382012-06-12 Chung-Lin Tang <cltang@codesourcery.com>
6339
6340 * config/sh/sh.c (output_stack_adjust): Remove !epilogue_p
6341 condition for generating REG_FRAME_RELATED_EXPR note.
6342 (pop): Add code for generating REG_CFA_RESTORE,
6343 REG_CFA_ADJUST_CFA notes. Set RTX_FRAME_RELATED_P to 1.
6344 (sh_expand_epilogue): Use frame_insn() for FP to SP move.
6345 Set 'frame_p' of calls to output_stack_adjust() to 'true'.
6346
4522854a
RH
63472012-06-11 Richard Henderson <rth@redhat.com>
6348
3db91d7e
RH
6349 * config/alpha/alpha.c (HWI_HEX2): Add missing shift.
6350 * vmsdbgout.c (VMS_EPOCH_OFFSET): Add LL suffix.
6351
4522854a
RH
6352 * config/alpha/alpha.c (alpha_trampoline_init): Split large constants.
6353
f938987f
HPN
63542012-06-12 Hans-Peter Nilsson <hp@axis.com>
6355
6356 * doc/tm.texi.in (Addressing Modes) <TARGET_LEGITIMIZE_ADDRESS>:
6357 Mention that this hook needs to be defined for native TLS.
6358 * doc/tm.texi: Regenerate.
6359
ede6c734
MS
63602012-06-11 Mike Stump <mikestump@comcast.net>
6361
6362 * emit-rtl.c (init_emit_once): Iterate through the
6363 MODE_PARTIAL_INT modes with MIN_MODE_PARTIAL_INT and
6364 MAX_MODE_PARTIAL_INT, as GET_MODE_WIDER_MODE doesn't step through
6365 all the MIN_MODE_PARTIAL_INT modes anymore.
6366
8b007d75
MK
63672012-06-12 Maxim Kuvyrkov <maxim@codesourcery.com>
6368
6369 * gcc/config/mips/mips-tables.opt (xlp): Fix merge typo.
6370
a04739cb
RM
63712012-06-11 Roland McGrath <mcgrathr@google.com>
6372
6373 * dwarf2out.c (const_ok_for_output_1): Detect a TLS UNSPEC using
6374 SYMBOL_REF_TLS_MODEL rather than DECL_THREAD_LOCAL_P, in case it's
6375 not a VAR_DECL. Also don't limit it to UNSPECs with exactly one
6376 operand.
6377
159b4b2f
OE
63782012-06-11 Oleg Endo <olegendo@gcc.gnu.org>
6379
6380 PR target/53511
6381 * config/sh/sh.md (fmasf4): New expander.
6382 (*macsf3): Rename to fmasf4_i. Adapt to fma pattern.
6383 (mac_media): Rename to fmasf4_media. Adapt to fma pattern.
6384 * config/sh/sh.opt (mfused-madd): Remove.
6385 * config/sh/sh.c (sh_option_override): Remove mfused-madd handling.
6386 (builtin_description bdesc): Remove __builtin_sh_media_FMAC_S.
6387 * config.gcc (sh[123456789lbe]*-*-* | sh-*-*): Add fused-madd.opt
6388 as extra options.
6389 * doc/invoke.texi (SH Options): Update mfused-madd and mno-fused-madd
6390 descriptions.
6391
bf27c43e
RH
63922012-06-11 Richard Henderson <rth@redhat.com>
6393
6394 * dwarf2cfi.c (scan_trace): Handle annulled branch-taken delay slots.
6395
e3b127e8
RG
63962012-06-11 Richard Guenther <rguenther@suse.de>
6397
6398 PR middle-end/53470
6399 * tree.c (free_lang_data_in_type): Do not clear TYPE_CONTEXT but
6400 replace it with the first non-BLOCK context.
6401
a95b3cc7
RG
64022012-06-11 Richard Guenther <rguenther@suse.de>
6403
6404 * alias.c (aliases_everything_p): Remove.
6405 (DIFFERENT_ALIAS_SETS_P): Likewise.
6406 (true_dependence_1): Use mems_in_disjoint_alias_sets_p directly.
6407 Do not use aliases_everything_p or special-case ANDs. Do not
6408 special-case BLKmode moves.
6409 (may_alias_p): Likewise. Handle BLKmode similar like everywhere
69c8c01f 6410 - for SCATCH only.
a95b3cc7 6411
2f352e3d
HPN
64122012-06-09 Hans-Peter Nilsson <hp@axis.com>
6413
6414 Fix CRIS build errors with --enable-build-with-cxx.
6415 * config/cris/cris.c (cris_emit_trap_for_misalignment): Rename
6416 variable "and" to "andop".
6417 * config/cris/sync.md ("atomic_fetch_<atomic_op_name><mode>"): Use
6418 temporary variable for memory model, passing C++-type-correct
6419 parameter type to expand_mem_thread_fence.
6420 ("atomic_compare_and_swap<mode>"): Ditto.
6421
11a687e7
RH
64222012-06-09 Richard Henderson <rth@redhat.com>
6423
6424 PR c++/53602
6425 * cfgcleanup.c (execute_jump): Rename from rest_of_handle_jump2.
6426 (pass_jump): Rename from pass_jump2.
6427 (execute_jump2, pass_jump2): New.
6428 * combine-stack-adj.c (rest_of_handle_stack_adjustments): Don't
6429 perform cfg cleanup here. Move the test of PUSH_ROUNDING
6430 and ACCUMULATE_OUTGOING_ARGS test...
6431 (gate_handle_stack_adjustments): ... here.
6432 * passes.c (init_optimization_passes): Update for pass_jump2 rename.
6433 Place new pass_jump2 after pass_stack_adjustments.
6434 * tree-pass.h (pass_jump): Declare.
6435
aef2b1d1
KZ
64362012-06-09 Kenneth Zadeck <zadeck@naturalbridge.com>
6437
6438 * simplify-rtx.c (simplify_const_binary_operation): Fixed shift
6439 count trucation.
6440
65c2e636
RH
64412012-06-08 Richard Henderson <rth@redhat.com>
6442
a3fac361
UB
6443 PR c++/53602
6444 * combine-stack-adj.c (force_move_args_size_note): Add ARGS_SIZE
6445 note to a clobber insn when no other insn is available.
65c2e636 6446
102375cc
GJL
64472012-06-08 Georg-Johann Lay <avr@gjlay.de>
6448
6449 * config/avr/avr.c (avr_case_values_threshold): Return 7.
6450
17c4f786
AS
64512012-06-07 Andreas Schwab <schwab@linux-m68k.org>
6452
6453 * genhooks.c (main): Set progname.
6454 (emit_documentation): Remove variable found_start, always bail out
6455 when a place is missing.
a3fac361 6456 * doc/tm.texi.in (C++ ABI): Add @hook TARGET_CXX_DECL_MANGLING_CONTEXT.
17c4f786 6457
26127932
JJ
64582012-06-07 Jakub Jelinek <jakub@redhat.com>
6459
6460 PR middle-end/53580
a3fac361
UB
6461 * omp-low.c (scan_omp): Change first argument to gimple_seq *,
6462 call walk_gimple_seq_mod instead of walk_gimple_seq.
26127932
JJ
6463 (scan_sharing_clauses, scan_omp_parallel, scan_omp_task,
6464 scan_omp_for, scan_omp_sections, scan_omp_single,
6465 execute_lower_omp): Adjust callers.
6466 (scan_omp_1_stmt): Likewise. If check_omp_nesting_restrictions
6467 returns false, replace stmt with GIMPLE_NOP.
6468 (check_omp_nesting_restrictions): Instead of issuing warnings,
6469 issue errors and return false if any errors were reported.
6470
6f07a821
SB
64712012-06-06 Steven Bosscher <steven@gcc.gnu.org>
6472
6473 * doc/invoke.texi (fconserve-space): Remove documentation.
6474
ce79b857
EW
64752012-06-06 Edmar Wienskoski <edmar@freescale.com>
6476
6477 * config/rs6000/rs6000-tables.opt: Regenerated.
6478
d0582dc1
RG
64792012-06-06 Richard Guenther <rguenther@suse.de>
6480
6481 PR tree-optimization/53081
6482 * tree-data-ref.h (adjacent_store_dr_p): Rename to ...
6483 (adjacent_dr_p): ... this and make it work for reads, too.
6484 * tree-loop-distribution.c (enum partition_kind): Add PKIND_MEMCPY.
6485 (struct partition_s): Change main_stmt to main_dr, add
6486 secondary_dr member.
6487 (build_size_arg_loc): Change to date data-reference and not
6488 gimplify here.
6489 (build_addr_arg_loc): New function split out from ...
6490 (generate_memset_builtin): ... here. Use it and simplify.
6491 (generate_memcpy_builtin): New function.
6492 (generate_code_for_partition): Adjust.
a3fac361 6493 (classify_partition): Streamline pattern detection. Detect memcpy.
d0582dc1
RG
6494 (ldist_gen): Adjust.
6495 (tree_loop_distribution): Adjust seed statements for memcpy
6496 recognition.
6497
4ad4fa63
MT
64982012-06-06 Matt Turner <mattst88@gmail.com>
6499
6500 * config/arm/mmintrin.h (_mm_empty): New.
a3fac361 6501 (_m_empty): New.
4ad4fa63 6502
c881de02
RS
65032012-06-06 Richard Sandiford <r.sandiford@uk.ibm.com>
6504
6505 * doc/invoke.texi (sched-pressure-algorithm): Document new --param.
6506 * common.opt (fsched-pressure-algorithm=): Remove.
6507 * flag-types.h (sched_pressure_algorithm): Move to...
6508 * sched-int.h (sched_pressure_algorithm): ...here.
6509 * params.def (sched-pressure-algorithm): New param.
6510 * haifa-sched.c (sched_init): Use it to initialize sched_pressure.
6511 * common/config/s390/s390-common.c (s390_option_optimization_table):
6512 Remove OPT_fsched_pressure_algorithm_ entry.
6513 * config/s390/s390.c (s390_option_override): Set a default value for
6514 PARAM_SCHED_PRESSURE_ALGORITHM.
6515
d7685183
MM
65162012-06-05 Michael Meissner <meissner@linux.vnet.ibm.com>
6517
6518 PR target/53487
6519 * config/rs6000/rs6000.c (rs6000_generate_compare): If we are
6520 doing an unsigned compare, make sure the second argument is not a
6521 negative constant.
6522 (rs6000_emit_cmove): Don't allow floating point comparisons when
6523 generating ISEL moves.
6524
a6dac809 65252012-06-05 Edmar Wienskoski <edmar@freescale.com>
683ed19e
EW
6526
6527 * config/rs6000/e5500.md: New file.
6528 * config/rs6000/e6500.md: New file.
6529 * config/rs6000/rs6000.c (processor_costs): Add new costs for
6530 e5500 and e6500.
6531 (rs6000_option_override_internal): Altivec and Spe options not
6532 allowed with e5500. Spe options not allowed with e6500. Increase
6533 move inline limit for e5500 and e6500. Disable string instructions
6534 for e5500 and e6500. Enable branch targets alignment for e5500 and
6535 e6500. Initialize rs6000_cost for e5500 and e6500.
6536 (rs6000_adjust_cost): Add extra scheduling cycles between compare
6537 and brnach for e5500 and e6500.
6538 (rs6000_issue_rate): Set issue rate for e5500 and e6500.
6539 * config/rs6000/rs6000-cpus.def: Add cpu definitions for e5500 and
6540 e6500.
6541 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add e5500 and e6500.
6542 * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce5500 and
6543 ppce6500.
6544 Include e5500.md and e6500.md.
6545 * config/rs6000/rs6000-opt.h (processor_type): Add
6546 PROCESSOR_PPCE5500 and PROCESSOR_PPCE6500.
6547 * config.gcc (cpu_is_64bit): Add new cores e5500, e6500.
6548 (powerpc*-*-*): Add new cores e5500, e6500.
6549 * doc/invoke.texi: (item -mcpu): Add e5500 and e6500 to list of cpus.
6550
d4d5e146
RG
65512012-06-05 Richard Guenther <rguenther@suse.de>
6552
a3fac361 6553 * tree-vect-data-refs.c (vect_analyze_data_refs): Fix last change.
d4d5e146 6554
9287b168
L
65552012-06-05 H.J. Lu <hongjiu.lu@intel.com>
6556
6557 PR target/53575
6558 * config.gcc: Select x32 run-time library if --with-abi={x32|mx32}
6559 is used for x86_64-*-*.
6560
1aedeafe
RG
65612012-06-05 Richard Guenther <rguenther@suse.de>
6562
6563 PR tree-optimization/30442
6564 * tree-vect-data-refs.c (vect_analyze_data_refs): For basic-block
6565 vectorization stop analysis at the first stmt we cannot compute
6566 a data-reference for instead of giving up completely.
6567
7ad672e4
RG
65682012-06-05 Richard Guenther <rguenther@suse.de>
6569
a3fac361 6570 * tree-loop-distribution.c (struct partition_s): Add has_writes member.
7ad672e4
RG
6571 (partition_alloc): Initialize it.
6572 (partition_has_writes): New function.
6573 (rdg_flag_uses): Adjust.
6574 (rdg_flag_vertex): Likewise.
6575 (rdg_flag_vertex_and_dependent): Likewise.
6576 (rdg_flag_loop_exits): Likewise.
6577 (build_rdg_partition_for_component): Likewise.
6578 (rdg_build_partitions): Likewise.
6579
b6dd5261
RG
65802012-06-05 Richard Guenther <rguenther@suse.de>
6581
6582 PR tree-optimization/53081
6583 * tree-loop-distribution.c (generate_memset_builtin): Handle all
6584 kinds of byte-sized stores.
6585 (classify_partition): Likewise.
6586 (tree_loop_distribution): Adjust seed statements used for
6587 !flag_tree_loop_distribution.
6588
46f714c8
AM
65892012-06-05 Alan Modra <amodra@gmail.com>
6590
6591 * config/rs6000/rs6000.c (ptr_regno_for_savres): Comment.
6592 (rs6000_emit_prologue): Ensure register used for inline saves
6593 of vector regs is not the static chain register. Revise comment.
6594
6d1f6aff
OE
65952012-06-04 Oleg Endo <olegendo@gcc.gnu.org>
6596
6597 * doc/md.texi (Standard Pattern Names For Generation): Document
6598 sincos pattern.
6599
dea9f99d
L
66002012-06-04 H.J. Lu <hongjiu.lu@intel.com>
6601
6602 PR bootstrap/53555
6603 * config/i386/i386.c (ix86_sched_reorder) Skip debug insns.
6604
61a3e629
JM
66052012-06-04 Jason Merrill <jason@redhat.com>
6606
6607 * dwarf2out.c (is_unit_die): New.
6608 (copy_declaration_context, copy_ancestor_tree): Use it.
6609 (copy_decls_walk): Likewise.
6610
0e1dd874
PC
66112012-06-04 Paolo Carlini <paolo.carlini@oracle.com>
6612
6613 PR c++/53524
6614 * doc/invoke.texi (Wenum-compare): Update documentation.
6615
7ca643e1
DS
66162012-06-04 Dodji Seketeli <dodji@redhat.com>
6617
6618 PR preprocessor/53463
6619 * parser.c (cp_parser_assignment_expression): Use the location
6620 for the '=' as the default location for the expression.
6621
fbc932e7
EW
66222012-06-04 Edmar Wienskoski <edmar@freescale.com>
6623
6624 PR target/53559
6625 * config/rs6000/altivec.md (altivec_stvlx): Change machine mode of
6626 operands.
6627 (altivec_stvlxl): Ditto.
6628 (altivec_stvrx): Ditto.
6629 (altivec_stvrxl): Ditto.
6630
165f639c
VM
66312012-06-04 Vladimir Makarov <vmakarov@redhat.com>
6632
a3fac361 6633 * ira-int.h (struct target_ira_int): Add member x_ira_uniform_class_p.
165f639c
VM
6634 (ira_uniform_class_p): New macro.
6635
6636 * ira.c (setup_uniform_class_p): New function.
6637 (setup_allocno_and_important_classes): Call the function.
6638 (print_unform_and_important_classes): New function.
6639 (print_classes): Rename to print_translated_classes.
6640 (ira_debug_allocno_classes): Add call of
6641 print_unform_and_important_classes.
6642
6643 * ira-costs.c (setup_regno_cost_classes_by_aclass): Use uniform
6644 classes instead of pressure classes.
6645
764ce4f2
AH
66462012-06-04 Aldy Hernandez <aldyh@redhat.com>
6647
6648 PR middle-end/47530
6649 * trans-mem.c (expand_block_edges): Do not skip the first
6650 statement when resetting the BB.
6651
be6b029b
RG
66522012-06-04 Richard Guenther <rguenther@suse.de>
6653
6654 * tree-data-ref.c (stores_from_loop): Remove.
6655 (stmt_with_adjacent_zero_store_dr_p): Likewise.
6656 (stores_zero_from_loop): Likewise.
6657 * tree-data-ref.h (stores_from_loop, stores_zero_from_loop,
6658 stmt_with_adjacent_zero_store_dr_p, stride_of_unit_type_p): Remove.
6659 (adjacent_store_dr_p): New function.
6660 * tree-loop-distribution.c (generate_memset_builtin): Pass
6661 the RDG, use the already available data-reference.
6662 (generate_code_for_partition): Pass down RDG.
6663 (classify_partition): Inline parts of the former
6664 stmt_with_adjacent_zero_store_dr_p here and use adjacent_store_dr_p.
6665 (ldist_gen): Remember if there was any detected builtin and
6666 do less work if not and flag_tree_loop_distribution is not set.
6667 (tree_loop_distribution): Inline and fuse stores_from_loop
6668 and stores_zero_from_loop here.
6669
ad16e152
RG
66702012-06-04 Richard Guenther <rguenther@suse.de>
6671
6672 PR middle-end/53471
6673 * dwarf2out.c (dwarf2out_finish): If generating LTO do not
6674 create new assembler names.
6675
1fa0c180
RG
66762012-06-04 Richard Guenther <rguenther@suse.de>
6677
6678 * tree-data-ref.c (struct rdg_vertex_info): Remove.
6679 (rdg_vertex_for_stmt): Simplify using gimple_uid.
6680 (create_rdg_vertices): Pass loop argument, remove stmt to RDG index
9faeb493 6681 hashtable. Record stmt data-references.
1fa0c180
RG
6682 (hash_stmt_vertex_info): Remove.
6683 (eq_stmt_vertex_info): Likewise.
6684 (hash_stmt_vertex_del): Likewise.
6685 (build_empty_rdg): Simplify.
6686 (build_rdg): Adjust.
6687 (free_rdg): Likewise.
6688 (ref_base_address): Remove.
6689 (have_similar_memory_accesses): Likewise.
6690 * tree-data-ref.h (create_rdg_vertices): Remove.
6691 (struct rdg_vertex): Add datarefs member.
6692 (RDGV_DATAREFS): New define.
6693 (RDG_DATAREFS): Likewise.
6694 (have_similar_memory_accesses): Remove.
6695 (rdg_has_similar_memory_accesses): Likewise.
6696 * tree-loop-distribution.c (ref_base_address): Re-implement here.
6697 (similar_memory_accesses): Re-implement using existing data-references.
6698 (tree_loop_distribution): Initialize stmt uids for the stmt to
6699 RDG index mapping.
6700 * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
6701 access stmt vinfo for stmts in loop.
6702
143015c4
AS
67032012-06-04 Andreas Schwab <schwab@linux-m68k.org>
6704
6705 PR target/53461
6706 * config/m68k/m68k.md ("tablejump"): Fix check for
6707 CASE_VECTOR_PC_RELATIVE.
6708
a4b7d13c
SB
67092012-06-04 Steven Bosscher <steven@gcc.gnu.org>
6710
6711 * output.h (merge_weak, assemble_alias,
6712 initializer_constant_valid_p,
6713 initializer_constant_valid_for_bitfield_p): Move protos from here...
6714 * tree.h: ... to here.
6715 * cgraphclones.c: Do not include output.h.
6716 * gimplify.c: Likewise.
6717 * reload.c: Likewise.
6718 * recog.c: Likewise.
6719 * tree-ssa-loop-ivopts.c: Likewise.
6720 * tree-switch-conversion.c: Likewise.
6721 * c-parser.c: Likewise.
6722 * c-typeck.c: Likewise.
6723 * Makefile.in: Fix dependencies.
6724
0b8a03e1
GJL
67252012-06-04 Georg-Johann Lay <avr@gjlay.de>
6726
6727 PR target/46261
6728 * config/avr/avr-stdint.h: New file.
6729 * config.gcc (avr-*-*,tm_file): Use avr/avr-stdint.h instead of
6730 newlib-stdint.h
6731
5ece9847
JJ
67322012-06-04 Jakub Jelinek <jakub@redhat.com>
6733
6734 PR tree-optimization/53550
6735 * tree-ssa-loop-niter.c (number_of_iterations_cond): If type
6736 is POINTER_TYPE_P, use sizetype as step type instead of type.
6737
c014f6f5
RG
67382012-06-04 Richard Guenther <rguenther@suse.de>
6739
6740 * tree-data-ref.c (have_similar_memory_accesses_1): Remove.
6741 (ref_base_address_1): Likewise.
6742 (remove_similar_memory_refs): Likewise.
6743 * tree-data-ref.h (remove_similar_memory_refs): Remove.
6744 * tree-loop-distribution.c (classify_partition): Do not classify
6745 as builtin if -ftree-loop-distribute-patterns is not enabled.
6746 (fuse_partitions_with_similar_memory_accesses): Inline ...
6747 (ldist_gen): ... here. Fuse all non-builtin partitions if
6748 -ftree-loop-distribution is not enabled. Properly return
a3fac361 6749 the number of created partitions. Do not update SSA form here but ...
c014f6f5
RG
6750 (tree_loop_distribution): ... once here for the whole function.
6751 Only walk innermost loops, constrain loops we consider here
6752 further. Do not call remove_similar_memory_refs.
6753 (distribute_loop): Do not check number of loop nodes here.
6754
296f202e
SB
67552012-06-04 Steven Bosscher <steven@gcc.gnu.org>
6756
6757 * Makefile.in (GIMPLE_H): Do not depend on TARGET_H.
6758
7b872d9e
MJ
67592012-06-03 Martin Jambor <mjambor@suse.cz>
6760
6761 * ipa-prop.h (ipa_get_jf_known_type_offset): New function.
6762 (ipa_get_jf_known_type_base_type): Likewise.
6763 (ipa_get_jf_known_type_component_type): Likewise.
6764 (ipa_get_jf_constant): Likewise.
6765 (ipa_get_jf_pass_through_formal_id): Likewise.
6766 (ipa_get_jf_pass_through_operation): Likewise.
6767 (ipa_get_jf_ancestor_offset): Likewise.
6768 (ipa_get_jf_ancestor_type): Likewise.
6769 (ipa_get_jf_ancestor_formal_id): Likewise.
6770 (ipa_get_jf_member_ptr_pfn): Likewise.
6771 * ipa-prop.c (ipa_set_jf_known_type): New function.
6772 (ipa_set_jf_constant): Likewise.
6773 (ipa_set_jf_simple_pass_through): Likewise.
6774 (ipa_set_jf_arith_pass_through): Likewise.
6775 (ipa_set_ancestor_jf): Likewise.
6776 (fill_member_ptr_cst_jump_function): Moved up and renamed to
6777 ipa_set_jf_member_ptr_cst.
6778 (detect_type_change_1): Use the new jump function creation functions.
6779 (compute_complex_assign_jump_func): Likewise.
6780 (compute_complex_ancestor_jump_func): Likewise.
6781 (compute_known_type_jump_func): Likewise.
6782 (compute_scalar_jump_functions): Likewise.
6783 (compute_pass_through_member_ptrs): Likewise.
6784 (determine_cst_member_ptr): Likewise.
6785 (combine_known_type_and_ancestor_jfs): Likewise.
6786 (try_make_edge_direct_simple_call): Likewise.
6787 (try_make_edge_direct_virtual_call): Likewise.
6788 (update_indirect_edges_after_inlining): Likewise.
6789 * ipa-cp.c (ipa_get_jf_pass_through_result): Use jump function
6790 access functions. Incorporat NOP_EXPR and BINFO handling from its
6791 callers.
6792 (ipa_get_jf_ancestor_result): Likewise. Incorporate handling BINFOs
6793 which was in its callers.
6794 (ipa_value_from_jfunc): Use jump function access functions. Some
6795 functionality moved to functions above.
6796 (propagate_vals_accross_ancestor): Likewise.
6797 (propagate_vals_accross_pass_through): Use jump function access
6798 functions.
6799 (propagate_accross_jump_function): Likewise.
6800 * ipa-inline-analysis.c (remap_edge_change_prob): Use jump function
6801 access functions.
6802 (inline_merge_summary): Likewise.
6803
a43434ff
JDA
68042012-06-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
6805
6806 * config/pa/pa.h (MAX_PCREL17F_OFFSET): Define.
6807 * config/pa/pa.c (pa_attr_length_millicode_call): Use
6808 MAX_PCREL17F_OFFSET instead of fixed offset.
6809 (pa_attr_length_call): Likewise.
6810 (pa_attr_length_indirect_call): Likewise.
6811
aba92f5f
OE
68122012-06-03 Oleg Endo <olegendo@gcc.gnu.org>
6813
6814 PR target/53512
f9f472bd
OE
6815 * config/sh/sh.opt (mfsca, mfsrra): New options.
6816 * config/sh/sh.md (rsqrtsf2): Use TARGET_FPU_ANY and TARGET_FSRRA
6817 condition.
aba92f5f
OE
6818 (fsca): Use TARGET_FPU_ANY and TARGET_FSCA condition.
6819 (sinssf2, cossf2): Fold expanders to ...
6820 (sincossf3): ... this new expander. Use TARGET_FPU_ANY and
6821 TARGET_FSCA condition.
f9f472bd
OE
6822 * config/sh/sh.c (sh_option_override): Handle TARGET_FSRRA and
6823 TARGET_FSCA.
aba92f5f
OE
6824 * doc/invoke.texi (SH Options): Add descriptions for -mfsca,
6825 -mno-fsca, -mfsrra, -mno-fsrra.
6826
d58e7d69
MT
68272012-06-03 Matt Turner <mattst88@gmail.com>
6828
6829 * config/mips/4600.md (r4700_imul_si): New.
6830 (r4700_imul_di): New.
6831 (r4700_fmul_single): New.
6832 (r4700_fmul_double): New.
6833 * config/mips/mips-cpus.def: Add r4700.
6834 * config/mips/mips.c: Likewise.
6835 * config/mips/mips.md: Likewise.
6836 * config/mips/mips-tables.opt: Regenerate.
6837
9e6a4b77
SB
68382012-06-02 Steven Bosscher <steven@gcc.gnu.org>
6839
6840 * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Split out to
6841 new function sparc_initial_elimination_offset.
6842 * config/sparc/sparc.c (sparc_initial_elimination_offset): New
6843 function.
6844 * config/sparc/sparc-protos.h (sparc_initial_elimination_offset):
6845 Prototype it.
6846
aba92f5f 68472012-06-02 Kenneth Zadeck <zadeck@naturalbridge.com>
49ab6098 6848
a3fac361
UB
6849 * expmed.c (expand_mult, choose_multiplier): Change
6850 "2 * HOST_BITS_PER_WIDE_INT" to "HOST_BITS_PER_DOUBLE_INT".
49ab6098
KZ
6851 * expr.c (convert_modes): Likewise.
6852 * explow.c (plus_constant): Likewise.
6853 * fixed-value.c (fixed_saturate1, fixed_saturate2)
6854 (do_fixed_add, do_fixed_multiply, do_fixed_multiply)
6855 (do_fixed_multiply, do_fixed_multiply, do_fixed_divide)
6856 (do_fixed_divide, do_fixed_divide, do_fixed_divide)
6857 (do_fixed_divide, do_fixed_divide, do_fixed_shift, do_fixed_shift)
6858 (do_fixed_shift, fixed_convert, fixed_convert)
6859 (fixed_convert_from_int, fixed_convert_from_int)
6860 (fixed_convert_from_real): Likewise.
6861 * fold-const.c (fold_convert_const_int_from_fixed, sign_bit_p)
6862 (native_interpret_int, fold_binary_loc, fold_ternary_loc): Likewise.
6863 * varasm.c (output_constructor_bitfield): Likewise.
6864 * tree-vrp.c (register_edge_assert_for_2): Likewise.
6865 * double-int.c (rshift_double, lshift_double): Likewise.
f9f472bd
OE
6866 * double-int.h (double_int_fits_in_uhwi_p, double_int, double_int):
6867 Likewise.
49ab6098
KZ
6868 * simplify-rtx.c (mode_signbit_p)
6869 (simplify_const_unary_operation, simplify_binary_operation_1)
6870 (simplify_immed_subreg): Likewise.
6871 * builtins.c (c_readstr, fold_builtin_bitop): Likewise.
6872 * tree-vect-generic.c (build_replicated_const): Likewise.
6873 * dbxout.c (stabstr_O): Likewise.
6874 * emit-rtl.c (immed_double_int_const, immed_double_const)
6875 (gen_lowpart_common, init_emit_once): Likewise.
6876 * tree.c (integer_pow2p, tree_log2, tree_floor_log2)
6877 (widest_int_cst_value, upper_bound_in_type): Likewise.
6878 * stor-layout.c (initialize_sizetypes, fixup_signed_type)
6879 (fixup_unsigned_type): Likewise.
6880 * real.c (real_to_integer2, real_from_integer): Likewise.
6881 * dwarf2out.c (size_of_loc_descr, size_of_die, output_die)
6882 (clz_loc_descriptor, mem_loc_descriptor): Likewise.
6883
4efa9261
EB
68842012-06-01 Eric Botcazou <ebotcazou@adacore.com>
6885
6886 PR middle-end/53501
6887 * fold-const.c (fold_binary_loc): Refine previous change.
6888
676bd9a4
OH
68892012-06-01 Olivier Hainque <hainque@adacore.com>
6890
6891 * config/rs6000/vxworks.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Restore
6892 the "do {" part of the do-while(0) loop.
6893
674dd90a
YR
68942012-06-01 Yuri Rumyantsev <yuri.s.rumyantsev@intel.com>
6895
6896 * config/i386/i386.c (x86_sched_reorder): New function.
6897 Added new function x86_sched_reorder.
6898
9ca86fc3
RG
68992012-06-01 Richard Guenther <rguenther@suse.de>
6900
6901 * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
6902 Handle PHIs.
6903 (classify_partition): Likewise.
6904
30d55936
RG
69052012-06-01 Richard Guenther <rguenther@suse.de>
6906
6907 * tree-loop-distribution.c (enum partition_kind): New enum.
6908 (struct partition_s): Add kind and main_stmt members.
6909 (partition_alloc): Initialize kind to PKIND_NORMAL.
6910 (partition_builtin_p): New function.
6911 (copy_loop_before): Remove failure path and assert instead.
6912 (generate_loops_for_partition): Likewise.
6913 (generate_memset_zero): Fold into ...
6914 (generate_memset_builtin): ... this.
6915 (classify_partition): New function with code from
6916 can_generate_builtin and generate_builtin.
6917 (generate_builtin): Remove.
6918 (can_generate_builtin): Likewise.
6919 (fuse_partitions_with_similar_memory_accesses): Call
6920 partition_builtin_p instead of can_generate_builtin.
6921 (rdg_build_partitions): Do not call
6922 fuse_partitions_with_similar_memory_accesses here...
6923 (ldist_gen): ... but here after classifying all partitions.
6924 Remove failure path of generate_code_for_partition.
6925 (generate_code_for_partition): Generate code according
6926 to partition classification.
6927
c3a43311 69282012-06-01 Manuel López-Ibáñez <manu@gcc.gnu.org>
a3fac361 6929 Jonathan Wakely <jwakely.gcc@gmail.com>
c3a43311
MLI
6930
6931 PR c++/50134
6932 * doc/invoke.texi (Warning Options): Explain purpose and differences
6933 between -Wmissing-prototypes and -Wmissing-declarations.
6934
d168aaee
CB
69352012-06-01 Christian Bruel <christian.bruel@st.com>
6936
6937 * gcc.c (save_switch): Add user_p parameter.
6938 (read_specs): Likewise.
6939 (set_specs): Likewise.
6940 (validate_switches): Likewise.
6941 (validate_switches_from_spec): Likewise.
6942 (validate_all_switches): Pass on user_p parameter.
6943 (struct spec_list): Add user_p field.
6944 (struct switchstr): Add known field.
6945 (save_switch): Add known parameter.
6946 (INIT_STATIC_SPEC): Initialize user_p;
6947 (driver_unknown_option_callbac): call save_switch if
6948 OPT_SPECIAL_unknown.
6949 (driver_handle_option): Propagate OPT_specs.
6950 (do_spec_1): Set validated only if known.
6951 (check_live_switch): Likewise.
6952 (validate_switches): Set validated if known or user_spec.
6953
21ed4444
HPN
69542012-06-01 Hans-Peter Nilsson <hp@axis.com>
6955
6956 Add CRIS atomic patterns for 1, 2, and 4 bytes.
6957 * config/cris/cris.c (cris_emit_trap_for_misalignment): New function.
6958 * config/cris/cris-protos.h: Declare it.
69c8c01f 6959 * config/cris/cris.h [!TARGET_DEFAULT, TARGET_CPU_DEFAULT == 32]
21ed4444
HPN
6960 (TARGET_DEFAULT): Add alignment by 32.
6961 [!TARGET_DEFAULT, TARGET_CPU_DEFAULT == 10] (TARGET_DEFAULT): New
6962 case, as TARGET_CPU_DEFAULT == 0 but with alignment as for
69c8c01f 6963 TARGET_CPU_DEFAULT == 32.
21ed4444
HPN
6964 (TARGET_TRAP_UNALIGNED_ATOMIC): New macro.
6965 * config/cris/cris.md: Include sync.md. Avoid allocating specific
6966 numbers by replacing the define_constants for all UNSPECs with the
6967 equivalent define_c_enum construct.
6968 * config/cris/cris.opt (mtrap-unaligned-atomic): New option.
6969 * config/cris/sync.md: New file.
6970
22e83457
MT
69712012-05-31 Matt Turner <mattst88@gmail.com>
6972
6973 * config/mips/4600.md (r4600_imul_si): Rename from r4600_imul.
6974 (r4600_imul_di): New.
6975 (r4600_idiv_si): Rename from r4600_idiv.
6976 (r4600_idiv_di): New.
6977
be7a421e
SB
69782012-05-31 Steven Bosscher <steven@gcc.gnu.org>
6979
6980 * output.h (__gcc_host_wide_int__): Move to hwint.h.
6981 (decl_default_tls_model): Move to tree.h
6982 (dump_file): Move to system.h.
6983 (default_stabs_asm_out_destructor, default_stabs_asm_out_constructor,
6984 dbxout_int, dbxout_stabd, dbxout_begin_stabn, dbxout_begin_stabn_sline,
6985 dbxout_begin_empty_stabs, dbxout_begin_simple_stabs,
6986 dbxout_begin_simple_stabs_desc, dbxout_stab_value_zero,
6987 dbxout_stab_value_zero, dbxout_stab_value_label_diff,
6988 dbxout_stab_value_internal_label,
6989 dbxout_stab_value_internal_label_diff): Move from here ...
6990 * dbxout.h: ... to here.
6991 * system.h (dump_file): Moved here from output.h.
6992 * hwint.h (__gcc_host_wide_int__): Moved here from output.h.
6993 * tree.h (decl_default_tls_model): Moved here from output.h.
6994 * varasm.c (default_stabs_asm_out_destructor,
6995 default_stabs_asm_out_constructor): Move from here ...
6996 * dbxout.c: ... to here.
6997
6998 * gcov-dump.c (dump_file): Rename to dump_gcov_file. Update callers.
6999
7000 * collect2.h (dump_file): Rename to dump_ld_file.
7001 * collect2.c: Likewise.
7002 * tlink.c: Likewise.
7003
7004 * alias.c: Do not include output.h.
7005 * auto-inc-dec.c: Likewise.
7006 * bt-load.c: Likewise.
7007 * caller-save.c: Likewise.
7008 * cfg.c: Likewise.
7009 * cfgbuild.c: Likewise.
7010 * cfgcleanup.c: Likewise.
7011 * cfglayout.c: Likewise.
7012 * cfgloop.c: Likewise.
7013 * cfgloopanal.c: Likewise.
7014 * cfgloopmanip.c: Likewise.
7015 * cfgrtl.c: Likewise.
7016 * cgraph.c: Likewise.
7017 * cgraphclones.c: Likewise.
7018 * combine-stack-adj.c: Likewise.
7019 * combine.c: Likewise.
7020 * cprop.c: Likewise.
7021 * cse.c: Likewise.
7022 * cselib.c: Likewise.
7023 * dbgcnt.c: Likewise.
7024 * df-problems.c: Likewise.
7025 * df-scan.c: Likewise.
7026 * dojump.c: Likewise.
7027 * fwprop.c: Likewise.
7028 * gcse.c: Likewise.
7029 * graph.c: Likewise.
7030 * haifa-sched.c: Likewise.
7031 * hw-doloop.c: Likewise.
7032 * ipa-inline-transform.c: Likewise.
7033 * ipa-pure-const.c: Likewise.
7034 * ipa-reference.c: Likewise.
7035 * ipa-utils.c: Likewise.
7036 * ira-build.c: Likewise.
7037 * ira-emit.c: Likewise.
7038 * lcm.c: Likewise.
7039 * loop-doloop.c: Likewise.
7040 * loop-invariant.c: Likewise.
7041 * loop-iv.c: Likewise.
7042 * loop-unroll.c: Likewise.
7043 * loop-unswitch.c: Likewise.
7044 * lto-cgraph.c: Likewise.
7045 * lto-section-in.c: Likewise.
7046 * lto-streamer-in.c: Likewise.
7047 * mcf.c: Likewise.
7048 * mode-switching.c: Likewise.
7049 * postreload-gcse.c: Likewise.
7050 * postreload.c: Likewise.
7051 * predict.c: Likewise.
7052 * profile.c: Likewise.
7053 * ree.c: Likewise.
7054 * reg-stack.c: Likewise.
7055 * regcprop.c: Likewise.
7056 * regmove.c: Likewise.
7057 * regstat.c: Likewise.
7058 * reload1.c: Likewise.
7059 * sched-ebb.c: Likewise.
7060 * sel-sched-dump.c: Likewise.
7061 * simplify-rtx.c: Likewise.
7062 * stor-layout.c: Likewise.
7063 * store-motion.c: Likewise.
7064 * tracer.c: Likewise.
7065 * tree-affine.c: Likewise.
7066 * tree-cfg.c: Likewise.
7067 * tree-cfgcleanup.c: Likewise.
7068 * tree-dfa.c: Likewise.
7069 * tree-into-ssa.c: Likewise.
7070 * tree-nomudflap.c: Likewise.
7071 * tree-optimize.c: Likewise.
7072 * tree-pretty-print.c: Likewise.
7073 * tree-profile.c: Likewise.
7074 * tree-ssa-address.c: Likewise.
7075 * tree-ssa-ccp.c: Likewise.
7076 * tree-ssa-copy.c: Likewise.
7077 * tree-ssa-dom.c: Likewise.
7078 * tree-ssa-loop-ch.c: Likewise.
7079 * tree-ssa-loop-im.c: Likewise.
7080 * tree-ssa-loop-manip.c: Likewise.
7081 * tree-ssa-loop-niter.c: Likewise.
7082 * tree-ssa-loop-prefetch.c: Likewise.
7083 * tree-ssa-loop-unswitch.c: Likewise.
7084 * tree-ssa-loop.c: Likewise.
7085 * tree-ssa-propagate.c: Likewise.
7086 * tree-ssa-structalias.c: Likewise.
7087 * tree-ssa-tail-merge.c: Likewise.
7088 * tree-ssa-threadedge.c: Likewise.
7089 * tree-ssa-threadupdate.c: Likewise.
7090 * tree-ssa-uncprop.c: Likewise.
7091 * tree-ssa-uninit.c: Likewise.
7092 * tree-ssa.c: Likewise.
7093 * value-prof.c: Likewise.
7094 * var-tracking.c: Likewise.
7095 * web.c: Likewise.
7096
7097 * config/m32r/m32r.c: Include dbxout.h.
7098 * config/pa/pa.c: Likewise.
7099 * config/rs6000/rs6000.c: Likewise.
7100
7101 * Makefile.in: Fix dependencies.
7102 * config/rs6000/t-rs5000: Likewise.
7103
874a3589
AH
71042012-05-31 Aldy Hernandez <aldyh@redhat.com>
7105
7106 * tree-ssa-loop-im.c (execute_sm): Do not check flag_tm.
7107 * gimple.h (block_in_transaction): Check for flag_tm.
7108
039496da
AH
71092012-05-31 Aldy Hernandez <aldyh@redhat.com>
7110
7111 PR tree-optimization/52558
7112 * cfg.c (alloc_aux_for_edge): Fix comment.
7113 (alloc_aux_for_edge): Remove static.
7114 * basic-block.h (alloc_aux_for_edge): Protoize.
7115 * tree-ssa-loop-im.c (execute_sm_if_changed): New.
7116 (execute_sm_if_changed_flag): New.
7117 (execute_sm_if_changed_flag_set): New.
7118 (execute_sm): Do not generate data races unless requested.
7119 (tree_ssa_lim_initialize): Call alloc_aux_for_edges.
7120 (tree_ssa_lim_finalize): Call free_aux_for_edges.
7121 * gimple.h (block_in_transaction): New.
7122 (gimple_in_transaction): Use block_in_transaction.
7123
621dfb1e
GJL
71242012-05-31 Georg-Johann Lay <avr@gjlay.de>
7125
7126 PR target/51345
7127 * config/avr/avr.opt (-msp8): Document it.
7128 * doc/invoke.texi (AVR Options): Ditto. And document related
7129 built-in macros.
7130
416ff32e 71312012-05-31 Diego Novillo <dnovillo@google.com>
bdd5dc28 7132
a3fac361
UB
7133 * configure.ac (CXX_FOR_BUILD): Define and substitute.
7134 (BUILD_CXXFLAGS): Define and substitute.
7135 * Makefile.in (BUILD_CXXFLAGS): Define.
7136 (CXX_FOR_BUILD): Define.
7137 (COMPILER_FOR_BUILD): Set to CXX_FOR_BUILD if building with C++.
7138 (LINKER_FOR_BUILD): Likewise.
7139 (BUILD_COMPILERFLAGS): Set to BUILD_CXXFLAGS if building with C++.
7140 (BUILD_LINKERFLAGS): Likewise.
7141 * configure: Regenerate.
bdd5dc28 7142
6f4185d7
SB
71432012-05-31 Steven Bosscher <steven@gcc.gnu.org>
7144
7145 * Makefile.in: Fix many dependencies.
7146 * tree-profile.c: Don't include regs.h.
7147 * tree-vectorizer.c: Don't include cfglayout.h.
7148 * tree-vect-stmts.c: Likewise.
7149 * tree-vect-slp.c: Likewise.
7150 * tree-vect-loop.c: Likewise.
7151 * reg-stack.c: Likewise.
7152 * tree-ssa-loop-manip.c: Likewise.
7153 * toplev.c: Likewise.
7154 * varasm.c: Don't include cfglayout.h, basic-block.h,
7155 and tree-iterator.h.
7156 * tree-cfgcleanup.c: Don't include cfglayout.h.
7157 * passes.c: Don't include cfglayout.h, dwarf2asm.h,
7158 dwarf2out.h, dbxout.h, sdbout.h, and xcoffout.h.
7159 * cgraphclones.c: Don't include plugin.h.
7160
5a0563dc
GJL
71612012-05-31 Georg-Johann Lay <avr@gjlay.de>
7162
7163 * config/avr/t-avr: Correct avr-mmcu.texi dependencies.
7164 (s-avr-mmcu-texi): Don't sed on gen-avr-mmcu-texi output.
7165 * doc/avr-mmcu.texi (svn:eol-style): Set to native.
a3fac361 7166
c61f8985
RG
71672012-05-31 Richard Guenther <rguenther@suse.de>
7168
7169 * tree-loop-distribution.c (struct partition_s): New struct,
7170 typedef and vector type.
7171 (partition_alloc, partition_free): New functions.
7172 (generate_loops_for_partition, generate_builtin,
7173 generate_code_for_partition, rdg_flag_uses, rdg_flag_vertex,
7174 rdg_flag_vertex_and_dependent, rdg_flag_loop_exits,
7175 build_rdg_partition_for_component, can_generate_builtin,
7176 similar_memory_accesses, fuse_partitions_with_similar_memory_accesses,
7177 rdg_build_partitions, dump_rdg_partitions, debug_rdg_partitions,
7178 number_of_rw_in_partition, partition_contains_all_rw,
7179 ldist_gen): Use partition_t instead of bitmap.
7180
5be35a61
GJL
71812012-05-31 Georg-Johann Lay <avr@gjlay.de>
7182
a3fac361 7183 * config/avr/gen-avr-mmcu-texi.c: Sort MCUs.
5be35a61 7184 * doc/avr-mmcu.texi: Regenerate.
a3fac361 7185
88af7c1a
RG
71862012-05-31 Richard Guenther <rguenther@suse.de>
7187
7188 * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
7189 Use FOR_EACH_SSA_DEF_OPERAND.
7190 (generate_builtin): Adjust.
7191 (stmt_generated_in_another_partition): Remove.
7192 (add_scalar_computations_to_partition): Likewise.
7193 (rdg_build_partitions): Do not call
7194 add_scalar_computations_to_partition.
7195
ca8d9092
EB
71962012-05-31 Eric Botcazou <ebotcazou@adacore.com>
7197
7198 * tree-dfa.c (get_ref_base_and_extent): Compute the offset using
7199 double ints throughout.
7200 * tree-sra.c (build_user_friendly_ref_for_offset) <RECORD_TYPE>:
7201 Check that the position of the field is representable as an integer.
7202
673910d7
RG
72032012-05-31 Richard Guenther <rguenther@suse.de>
7204
7205 * tree-data-ref.c (dr_analyze_innermost): Properly convert
7206 the MEM_REF offset to sizetype.
7207
5b2f6f97
GJL
72082012-05-31 Georg-Johann Lay <avr@gjlay.de>
7209
7210 * doc/invoke.texi (AVR Options): Fix typos.
7211
e8baa9bc
HPN
72122012-05-31 Hans-Peter Nilsson <hp@axis.com>
7213
7214 * config/cris/cris.h (CC1_SPEC): Pass through all -march=
7215 and -mcpu= options.
7216 (ASM_SPEC): Ditto, not just -march=v32, but translate non-v10,
ef0cd8fe 7217 non-v32 into --march=v0_v10.
e8baa9bc 7218
7cc61ee4
RS
72192012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
7220
7221 * ira-int.h (target_ira_int): Rename x_move_cost to
7222 x_ira_register_move_cost, x_may_move_in_cost to
7223 x_ira_may_move_in_cost and x_may_move_out_cost to
7224 x_ira_may_move_out_cost. Delete the old fields with
7225 those names and also x_ira_max_register_move_cost,
7226 x_ira_max_may_move_in_cost and x_ira_max_may_move_out_cost.
7227 (move_cost, may_move_in_cost, may_move_out_cost)
7228 (ira_max_register_move_cost, ira_max_may_move_in_cost)
7229 (ira_max_may_move_out_cost): Delete.
7230 * ira.c (init_move_cost): Rename to...
7231 (ira_init_register_move_cost): ...this, deleting the old
7232 function with that name. Apply above variable renamings.
7233 Retain asserts for null fields.
7234 (ira_init_once): Don't initialize register move costs here.
7235 (free_register_move_costs): Apply above variable renamings.
7236 Remove code for deleted fields.
7237
48e3d6e9
RS
72382012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
7239
7240 * ira.c (init_move_cost): Adjust choice of subclasses to match
7241 the current ira_init_register_move_cost choice. Use
7242 ira_class_subset_p instead of reg_class_subset_p.
7243 (ira_init_register_move_cost): Assert that move_cost,
7244 may_move_in_cost and may_move_out_cost already hold the desired
7245 values for their ira_* equivalents. For the latter two,
7246 ignore classes that can't store a register of the given mode.
7247
3e575fe2
RS
72482012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
7249
7250 * ira.c (setup_allocno_and_important_classes): Use
7251 ira_class_hard_regs_num to check whether a class has any
7252 allocatable registers.
7253 (ira_init_register_move_cost): Likewise.
7254
ed9e2ed0
RS
72552012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
7256
7257 * ira.c (init_move_cost): Adjust local variable names to match
7258 file conventions. Use ira_assert instead of gcc_assert.
7259
e80ccebc
RS
72602012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
7261
7262 * regs.h (move_table, move_cost, may_move_in_cost, may_move_out_cost):
7263 Move these definitions and associated target_globals fields to...
7264 * ira-int.h: ...here.
7265 * rtl.h (init_move_cost): Delete.
7266 * reginfo.c (last_mode_for_init_move_cost, init_move_cost): Move to...
7267 * ira.c: ...here, making the latter static.
7268
bac1c6a4
RS
72692012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
7270
7271 * ira-costs.c (copy_cost): Use ira_init_register_move_cost_if_necessary
7272 and ira_register_move_cost instead of init_move_cost and move_cost.
7273
f508f827
RS
72742012-05-31 Richard Sandiford <rdsandiford@googlemail.com>
7275
7276 * ira.h (target_ira): Delete x_ira_available_class_regs.
7277 (ira_available_class_regs): Delete.
7278 * ira.c (setup_available_class_regs): Delete.
7279 (setup_alloc_classes): Don't call it.
7280 (setup_pressure_classes): Use ira_class_hard_regs_num instead of
7281 ira_available_class_regs.
7282 * haifa-sched.c (print_curr_reg_pressure, setup_insn_reg_pressure_info)
7283 (model_spill_cost): Likewise.
7284 * ira-build.c (low_pressure_loop_node_p): Likewise.
7285 * ira-color.c (color_pass): Likewise.
7286 * ira-emit.c (change_loop): Likewise.
7287 * ira-lives.c (inc_register_pressure, dec_register_pressure)
7288 (single_reg_class, ira_implicitly_set_insn_hard_regs)
7289 (process_bb_node_lives): Likewise.
7290 * loop-invariant.c (gain_for_invariant): Likewise.
7291
fda33f15
JDA
72922012-05-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
7293
7294 PR target/52999
7295 * config/pa/pa.c (TARGET_SECTION_TYPE_FLAGS): Define.
7296 (pa_section_type_flags): New.
7297 (pa_legitimate_constant_p): Revert previous change.
7298
a932fb89
SB
72992012-05-30 Steven Bosscher <steven@gcc.gnu.org>
7300
7301 * ira.c (allocate_initial_values): Make static.
7302
974485d7
UB
73032012-05-30 Uros Bizjak <ubizjak@gmail.com>
7304
7305 * config/i386/i386.c (legitimize_tls_address) <TLS_MODEL_INITIAL_EXEC>:
7306 Generate tls_initial_exec_64_sun only when !TARGET_X32.
7307
e40a9680
RG
73082012-05-30 Richard Guenther <rguenther@suse.de>
7309
7310 PR middle-end/53501
7311 * fold-const.c (fold_binary_loc): Make sure to call
7312 fold_plusminus_mult_expr with the original sign of operands.
7313
ee666c25
SB
73142012-05-30 Steven Bosscher <steven@gcc.gnu.org>
7315
7316 * Makefile.in: Fix many dependencies.
7317 (DWARF2_H): Depend on dwarf2.def.
7318 (RTL_ERROR_H): Depend on rtl-error.h.
7319 (TREE_PRETTY_PRINT_H, GIMPLE_PRETTY_PRINT_H): New. Replace
7320 all gimple-pretty-print.h and tree-pretty-print.h references.
7321
66c540d2
MG
73222012-05-30 Marc Glisse <marc.glisse@inria.fr>
7323
7324 * simplify-rtx.c (simplify_binary_operation_1): Optimize shuffle of
7325 concatenations.
7326
ab068278
RG
73272012-05-30 Richard Guenther <rguenther@suse.de>
7328
7329 PR middle-end/53522
7330 * tree-emutls.c (gen_emutls_addr): Do not add globals to
7331 referenced-vars.
7332
d6a6a07a
EB
73332012-05-30 Eric Botcazou <ebotcazou@adacore.com>
7334
7335 * explow.c (probe_stack_range): Restore simple control flow and stop
7336 again when the probe cannot be generated if HAVE_check_stack.
7337
667c517b
JJ
73382012-05-30 Jakub Jelinek <jakub@redhat.com>
7339
7340 PR rtl-optimization/53519
7341 * combine.c (simplify_shift_const_1) <case NOT>: Use constm1_rtx
7342 instead of GEN_INT (GET_MODE_MASK (mode)) as second operand of XOR.
7343
fa95aa25
RR
73442012-05-30 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
7345
7346 * config/arm/arm.c (arm_evpc_neon_vrev): Adjust off by one error.
7347
638c962f
JH
73482012-05-29 Jack Howarth <howarth@bromo.med.uc.edu>
7349
7350 PR debug/53453
7351 * doc/tm.texi: Update.
7352 * doc/tm.texi.in (SDB and DWARF) <TARGET_FORCE_AT_COMP_DIR>: Add @hook.
7353 * target.def (force_at_comp_dir): New hook.
7354 * config/darwin.h (TARGET_FORCE_AT_COMP_DIR): Define.
7355 * dwarf2out.c (dwarf2out_finish): Check targetm.force_at_comp_dir.
7356
a8b4175c 73572012-05-29 Jack Howarth <howarth@bromo.med.uc.edu>
3127f133
JH
7358
7359 * config/darwin.h (STARTFILE_SPEC): Do not use -lbundle1.o when
7360 Darwin >= 10.
7361 (DARWIN_DYLIB1_SPEC): Do not use -ldylib1.10.5.o when Darwin >= 10.
7362 (DARWIN_CRT1_SPEC): Use -lcrt1.10.6.o when Darwin >= 10.
7363
2df2ce3f
OE
73642012-05-29 Oleg Endo <olegendo@gcc.gnu.org>
7365
7366 PR target/51340
7367 * config/sh/sh.c (sh_option_override): Set TARGET_FMAC if
7368 flag_unsafe_math_optimizations is set.
7369 * doc/invoke.texi (SH Options): Add -mno-fused-madd description.
7370 Update description of -mfused-madd.
7371
c11394f8
OE
73722012-05-29 Oleg Endo <olegendo@gcc.gnu.org>
7373
7374 PR target/52941
7375 * config/sh/predicates.md (atomic_arith_operand,
7376 atomic_logical_operand): New predicates.
7377 * config/sh/sh.c (sh_option_override): Check atomic options.
7378 * config/sh/sh.h (TARGET_ANY_ATOMIC, UNSUPPORTED_ATOMIC_OPTIONS,
7379 UNSUPPORTED_HARD_ATOMIC_CPU): New macros.
7380 (DRIVER_SELF_SPECS): Use UNSUPPORTED_ATOMIC_OPTIONS and
7381 UNSUPPORTED_HARD_ATOMIC_CPU.
7382 * config/sh/sync.md: Update description comments.
7383 (I12): New mode iterator.
7384 (fetchop_predicate, fetchop_constraint): New code attributes.
7385 (atomic_compare_and_swapsi_hard, atomic_compare_and_swap<mode>_hard,
7386 atomic_exchangesi_hard, atomic_exchange<mode>_hard,
7387 atomic_fetch_<fetchop_name>si_hard,
7388 atomic_fetch_<fetchop_name><mode>_hard,
7389 atomic_fetch_nandsi_hard, atomic_fetch_nand<mode>_hard,
7390 atomic_<fetchop_name>_fetchsi_hard,
7391 atomic_<fetchop_name>_fetch<mode>_hard,
7392 atomic_nand_fetchsi_hard, atomic_nand_fetch<mode>_hard,
7393 atomic_test_and_set_hard): New insns.
7394 (atomic_compare_and_swap<mode>_soft, atomic_exchange<mode>_soft,
7395 atomic_fetch_<fetchop_name><mode>_soft, atomic_fetch_nand<mode>_soft,
7396 atomic_<fetchop_name>_fetch<mode>_soft, atomic_nand_fetch<mode>_soft,
7397 atomic_test_and_set_soft): Use same formatting for the first line of
7398 the asm block as in new insns above.
7399 (atomic_compare_and_swap<mode>, atomic_exchange<mode>,
7400 atomic_fetch_<fetchop_name><mode>, atomic_<fetchop_name>_fetch<mode>,
7401 atomic_test_and_set): Integrate new *_hard insns into expanders.
7402 * config/sh/sh.opt (mhard-atomic): New option.
7403 * doc/invoke.texi (SH Options): Document it.
7404
d0421638
MI
74052012-05-29 Meador Inge <meadori@codesourcery.com>
7406
7407 * c-decl.c (c_push_function_context): Always create a new language
7408 function.
7409 (c_pop_function_context): Clear the language function created in
7410 c_push_function_context.
7411
5e631e49
MT
74122012-05-29 Matt Turner <mattst88@gmail.com>
7413
7414 * config/alpha/ev6.md: (define_bypass "ev6_fmul,ev6_fadd"): New.
7415 (define_bypass "ev6_fcmov"): New.
7416
6399c0ab
SB
74172012-05-29 Steven Bosscher <steven@gcc.gnu.org>
7418
7419 * integrate.c: Remove.
7420 * integrate.h: Remove.
7421 * Makefile.in: Remove make rules for integrate.c and INTEGRATE_H.
7422 * config/arm/t-arm: Remove INTEGRATE_H dependency for target files.
7423 * config/rs6000/t-rs6000: Likewise
7424 * config/spu/t-spu-elf: Likewise.
7425 * function.h (get_hard_reg_initial_val, has_hard_reg_initial_val,
7426 get_hard_reg_initial_reg, emit_initial_value_sets): Move prototypes
7427 from integrate.h to here.
7428 (initial_value_entry): New prototype.
7429 * reload.h (allocate_initial_values): Remove prototype.
7430 * tree.h (set_decl_abstract_flags, set_decl_origin_self): Likewise.
7431 * cse.c (fixed_base_plus_p): Don't handle virtual registers for
7432 integrate.c.
7433 * dwarf2out.c (set_decl_origin_self, set_block_origin_self,
7434 set_decl_abstract_flags, set_block_abstract_flags): Move from
7435 integrate.c to here, the only user.
7436 * expmed.c (extract_fixed_bit_field): Remove outdated comment
7437 about integrate.c.
7438 * function.c: Don't include integrate.h.
7439 (struct initial_value_pair, struct initial_value_struct,
7440 get_hard_reg_initial_val, has_hard_reg_initial_val,
7441 get_hard_reg_initial_reg, emit_initial_value_sets): Move from
7442 integrate.c to here.
7443 (initial_value_entry): New function.
7444 * genemit.c (main): Don't print integrate.h include line.
7445 * ira.c: Don't include integrate.h.
7446 (allocate_initial_values): Move from integrate.c to here.
7447 (ira): Update allocate_initial_values call.
7448 * tree-inline.c: Don't include integrate.h.
7449 (function_attribute_inlinable_p): Moved from integrate.c to here.
7450 * cfgexpand.c: Don't include integrate.h.
7451 * except.c: Likewise.
7452 * langhooks.c: Likewise.
7453 * passes.c: Likewise.
7454 * toplev.c: Likewise.
7455 * config/frv/frv.c: Likewise.
7456 * config/pa/pa.c: Likewise.
7457 * config/spu/spu.c: Likewise.
7458 * config/epiphany/epiphany.c: Likewise.
7459 * config/mep/mep.c: Likewise.
7460 * config/score/score.c: Likewise.
7461 * config/picochip/picochip.c: Likewise.
7462 * config/sh/sh.c: Likewise.
7463 * config/alpha/alpha.c: Likewise.
7464 * config/microblaze/microblaze.c: Likewise.
7465 * config/mips/mips.c: Likewise.
7466 * config/v850/v850.c: Likewise.
7467 * config/mmix/mmix.c: Likewise.
7468 * config/bfin/bfin.c: Likewise.
7469 * config/arm/arm.c: Likewise.
7470 * config/s390/s390.c: Likewise.
7471 * config/m32r/m32r.c: Likewise.
7472 * config/rs6000/rs6000.c: Likewise.
7473 * config/c6x/c6x.c: Include function.h instead of integrate.h.
7474 * config/tilegx/tilegx.c: Likewise.
7475 * config/tilepro/tilepro.c: Likewise.
7476
030a9eb6
GJL
74772012-05-29 Georg-Johann Lay <avr@gjlay.de>
7478
974485d7 7479 * config/avr/t-avr (s-avr-mmcu-texi): Call
030a9eb6 7480 gen-avr-mmcu-texi$(build_exeext) via ./ and don't assume . is in PATH.
974485d7 7481
9474e8ab
MM
74822012-05-29 Michael Matz <matz@suse.de>
7483
7484 * rtl.h (assign_stack_temp, assign_stack_temp_for_type,
7485 assign_temp): Remove 'keep' argument.
7486 (mark_temp_addr_taken): Remove prototype.
7487 * tree.h (expand_decl): Remove prototype.
974485d7 7488 * function.c (struct temp_slot): Remove addr_taken and keep member.
9474e8ab
MM
7489 (assign_stack_temp_for_type) Don't initialize above, remove
7490 keep argument.
7491 (assign_stack_temp, assign_temp): Remove keep argument.
7492 (mark_temp_addr_taken): Remove.
974485d7 7493 (preserve_temp_slots): Remove handling of addr_taken and keep members.
9474e8ab
MM
7494 (free_temp_slots): Ditto.
7495 * expr.c (expand_expr_real_1 <COMPOUND_LITERAL_EXPR>): Remove
7496 dead code.
7497 * stmt.c (expand_asm_operands): Remove dead code.
7498 (expand_decl): Remove.
7499 * c-decl.c (finish_struct): Don't call expand_decl.
7500 * builtins.c (expand_builtin_cexpi): Adjust calls to assign_temp
7501 and assign_stack_temp.
7502 * calls.c (save_fixed_argument_area, initialize_argument_information,
7503 expand_call, emit_library_call_value_1, store_one_arg): Ditto.
7504 * expmed.c (extract_bit_field_1): Ditto.
7505 * expr.c (emit_group_load_1, emit_group_store,
7506 copy_blkmode_from_reg, emit_push_insn, expand_assignment,
7507 store_field, expand_constructor, expand_cond_expr_using_cmove,
7508 expand_expr_real_2, expand_expr_real_1): Ditto.
7509 * stmt.c (expand_asm_operands, expand_return): Ditto.
7510
7511 * function.c (pop_temp_slots): Call free_temp_slots.
7512 * calls.c (store_one_arg): Don't call preserve_temp_slots or
7513 free_temp_slots.
7514 * expr.c (expand_assignment): Don't call free_temp_slots.
7515
7516 * config/arm/arm.c (neon_expand_vector_init): Ditto.
7517 * config/i386/i386.c (ix86_expand_vector_set): Ditto.
7518 (ix86_expand_vector_extract): Ditto.
7519 * config/ia64/ia64.c (spill_xfmode_rfmode_operand,
7520 ia64_expand_movxf_movrf): Ditto.
7521 * config/mips/mips.c (mips_expand_vi_general): Ditto.
7522 * config/mmix/mmix.md (floatdisf2, floatunsdisf2, truncdfsf2,
7523 extendsfdf2): Ditto.
7524 * config/rs6000/rs6000.c (rs6000_expand_vector_init,
7525 rs6000_expand_vector_set, rs6000_expand_vector_extract,
7526 rs6000_allocate_stack_temp): Ditto.
7527 * config/rs6000/rs6000.md (fix_trunctfsi2_fprs): Ditto.
7528 * config/sparc/sparc.c (emit_soft_tfmode_libcall,
7529 sparc_emit_float_lib_cmp, sparc_emit_float_lib_cmp,
7530 sparc_expand_vector_init): Ditto.
7531
ca5f4331
MM
75322012-05-29 Michael Matz <matz@suse.de>
7533
7534 * c-tree.h (c_expand_decl): Remove prototype.
7535
7536 * expr.c (expand_expr_real_1 <normal_inner_ref>): Don't allocate
7537 a kept temp.
7538 (expand_expr_real_1 <COMPOUND_LITERAL_EXPR>): Make unreachable.
974485d7 7539 * gimple-fold.c (canonicalize_constructor_val): Canonicalize
ca5f4331
MM
7540 COMPOUND_LITERAL_EXPR.
7541 * function.c (expand_function_start): Don't call expand_decl,
7542 instead assert that we have RTL assigned.
7543 * tree-ssa-live.c (remove_unused_locals): Clear
7544 nonlocal_goto_save_area if its backing variable is removed.
7545 * stmt.c (expand_asm_operands): Remove handling of non-lvalues
7546 as mem inputs.
7547 (expand_decl): Assert that this does nothing.
7548 * calls.c (expand_call): Don't call mark_temp_addr_taken.
7549
508ef0c6
RG
75502012-05-29 Richard Guenther <rguenther@suse.de>
7551
7552 PR tree-optimization/53516
7553 * tree-data-ref.c (stmt_with_adjacent_zero_store_dr_p): Reject
7554 bitfield accesses.
7555 * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise.
7556
073a8998
JM
75572012-05-29 Joseph Myers <joseph@codesourcery.com>
7558
7559 * LANGUAGES: Fix typos.
7560 * Makefile.in: Fix typos.
7561 * alias.c: Fix typos.
7562 * auto-inc-dec.c: Fix typos.
7563 * bb-reorder.c: Fix typos.
7564 * cfgcleanup.c: Fix typos.
7565 * cgraph.c: Fix typos.
7566 * cgraph.h: Fix typos.
7567 * cgraphunit.c: Fix typos.
7568 * collect2-aix.h: Fix typos.
7569 * collect2.c: Fix typos.
7570 * compare-elim.c: Fix typos.
7571 * config/alpha/vms.h: Fix typos.
7572 * config/arm/README-interworking: Fix typos.
7573 * config/arm/arm.c: Fix typos.
7574 * config/arm/iterators.md: Fix typos.
7575 * config/arm/vxworks.h: Fix typos.
7576 * config/avr/avr.c: Fix typos.
7577 * config/avr/avr.h: Fix typos.
7578 * config/avr/avr.md: Fix typos.
7579 * config/avr/builtins.def: Fix typos.
7580 * config/c6x/c6x.c: Fix typos.
7581 * config/cr16/cr16.c: Fix typos.
7582 * config/cr16/cr16.md: Fix typos.
7583 * config/cris/cris.md: Fix typos.
7584 * config/darwin.c: Fix typos.
7585 * config/darwin.opt: Fix typos.
7586 * config/i386/i386-c.c: Fix typos.
7587 * config/i386/i386.c: Fix typos.
7588 * config/ia64/ia64.c: Fix typos.
7589 * config/m68k/cf.md: Fix typos.
7590 * config/mep/mep.c: Fix typos.
7591 * config/microblaze/microblaze.c: Fix typos.
7592 * config/microblaze/microblaze.h: Fix typos.
7593 * config/mn10300/mn10300.c: Fix typos.
7594 * config/mn10300/mn10300.md: Fix typos.
7595 * config/pa/pa.c: Fix typos.
7596 * config/picochip/picochip.h: Fix typos.
7597 * config/rs6000/a2.md: Fix typos.
7598 * config/rs6000/rs6000.c: Fix typos.
7599 * config/rs6000/vector.md: Fix typos.
7600 * config/rx/rx.md: Fix typos.
7601 * config/rx/rx.opt: Fix typos.
7602 * config/s390/2097.md: Fix typos.
7603 * config/s390/s390.c: Fix typos.
7604 * config/s390/s390.h: Fix typos.
7605 * config/sh/sh.c: Fix typos.
7606 * config/sh/sh.md: Fix typos.
7607 * config/sparc/sync.md: Fix typos.
7608 * config/spu/spu.c: Fix typos.
7609 * config/spu/spu.md: Fix typos.
7610 * config/vms/vms.c: Fix typos.
7611 * config/vxworks-dummy.h: Fix typos.
7612 * config/vxworks.h: Fix typos.
7613 * cselib.c: Fix typos.
7614 * df-scan.c: Fix typos.
7615 * df.h: Fix typos.
7616 * doc/extend.texi: Fix typos.
7617 * doc/install.texi: Fix typos.
7618 * doc/invoke.texi: Fix typos.
7619 * doc/md.texi: Fix typos.
7620 * doc/plugins.texi: Fix typos.
7621 * doc/rtl.texi: Fix typos.
7622 * dse.c: Fix typos.
7623 * dwarf2asm.c: Fix typos.
7624 * dwarf2out.c: Fix typos.
7625 * except.h: Fix typos.
7626 * expr.c: Fix typos.
7627 * fold-const.c: Fix typos.
7628 * gcc.c: Fix typos.
7629 * gcse.c: Fix typos.
7630 * genautomata.c: Fix typos.
7631 * gengtype-state.c: Fix typos.
7632 * gengtype.c: Fix typos.
7633 * genhooks.c: Fix typos.
7634 * gimple-fold.c: Fix typos.
7635 * gimple-pretty-print.c: Fix typos.
7636 * gimple.c: Fix typos.
7637 * gimple.h: Fix typos.
7638 * gimplify.c: Fix typos.
7639 * graphite-interchange.c: Fix typos.
7640 * graphite-sese-to-poly.c: Fix typos.
7641 * ifcvt.c: Fix typos.
7642 * input.c: Fix typos.
7643 * ipa-cp.c: Fix typos.
7644 * ipa-inline-analysis.c: Fix typos.
7645 * ipa-inline-transform.c: Fix typos.
7646 * ipa-inline.c: Fix typos.
7647 * ipa-pure-const.c: Fix typos.
7648 * ipa-ref.h: Fix typos.
7649 * ipa-reference.c: Fix typos.
7650 * ipa-utils.c: Fix typos.
7651 * ipa.c: Fix typos.
7652 * ira-emit.c: Fix typos.
7653 * ira-lives.c: Fix typos.
7654 * lto-streamer.c: Fix typos.
7655 * lto-streamer.h: Fix typos.
7656 * lto-wrapper.c: Fix typos.
7657 * mcf.c: Fix typos.
7658 * mode-switching.c: Fix typos.
7659 * modulo-sched.c: Fix typos.
7660 * plugin.c: Fix typos.
7661 * postreload.c: Fix typos.
7662 * sched-deps.c: Fix typos.
7663 * sel-sched-ir.c: Fix typos.
7664 * sel-sched-ir.h: Fix typos.
7665 * sel-sched.c: Fix typos.
7666 * sese.c: Fix typos.
7667 * stor-layout.c: Fix typos.
7668 * target-hooks-macros.h: Fix typos.
7669 * target.def: Fix typos.
7670 * trans-mem.c: Fix typos.
7671 * tree-eh.c: Fix typos.
7672 * tree-predcom.c: Fix typos.
7673 * tree-sra.c: Fix typos.
7674 * tree-ssa-address.c: Fix typos.
7675 * tree-ssa-loop-ivopts.c: Fix typos.
7676 * tree-ssa-loop-niter.c: Fix typos.
7677 * tree-ssa-math-opts.c: Fix typos.
7678 * tree-ssa-pre.c: Fix typos.
7679 * tree-ssa-propagate.c: Fix typos.
7680 * tree-ssa-reassoc.c: Fix typos.
7681 * tree-ssa-sccvn.c: Fix typos.
7682 * tree-ssa-ter.c: Fix typos.
7683 * tree-ssa-uninit.c: Fix typos.
7684 * tree-ssanames.c: Fix typos.
7685 * tree-vect-generic.c: Fix typos.
7686 * tree-vect-slp.c: Fix typos.
7687 * tree.c: Fix typos.
7688 * tree.h: Fix typos.
7689 * varasm.c: Fix typos.
7690 * varpool.c: Fix typos.
7691
aba6f2c2
JM
76922012-05-29 Joseph Myers <joseph@codesourcery.com>
7693
7694 * doc/include/texinfo.tex: Update to version 2012-05-16.16.
7695
a502e677
RG
76962012-05-29 Richard Guenther <rguenther@suse.de>
7697
7698 * tree-dfa.c (find_vars_r): Do not call add_referenced_vars
7699 for globals.
7700 (add_referenced_var_1): Re-organize. Assert we are not
7701 called for globals.
7702 (remove_referenced_var): Likewise.
7703 * varpool.c (add_new_static_var): Use create_tmp_var_raw.
7704 * tree-mudflap.c (execute_mudflap_function_ops): Do not
7705 call add_referenced_var on globals.
7706 * matrix-reorg.c (transform_access_sites): Likewise.
7707
9ff3c7ca
SB
77082012-05-29 Steven Bosscher <steven@gcc.gnu.org>
7709
7710 * alias.c (reg_known_value): Make this a VEC.
7711 (reg_known_equiv_p): Make this an sbitmap.
7712 (reg_known_value_size): Remove.
7713 (get_reg_known_value, set_reg_known_value, get_reg_known_equiv_p,
7714 set_reg_known_equiv_p): Update for reg_known_value and
7715 reg_known_value_size data structure change.
7716 (init_alias_analysis, end_alias_analysis): Likewise.
7717
92b05e72
JJ
77182012-05-29 Jakub Jelinek <jakub@redhat.com>
7719
7720 PR middle-end/53510
7721 * input.c (read_line): Use XRESIZEVEC instead of XNEWVEC
7722 to avoid leaking memory. No need to handle memory allocation
974485d7 7723 failure. Double string_len on each reallocation instead of adding 2.
92b05e72
JJ
7724 * gcov.c (read_line): Likewise.
7725
64f5af47
HPN
77262012-05-29 Hans-Peter Nilsson <hp@axis.com>
7727
7728 * config/cris/cris.h (TARGET_HAS_BREAK, TARGET_TRAP_USING_BREAK8):
7729 New macros.
7730 * config/cris/cris.md ("trap"): Define, enabled for
7731 TARGET_TRAP_USING_BREAK8.
7732 * config/cris/cris.opt (mtrap-using-break8): New option.
7733
4a792f9b
PC
77342012-05-28 Paolo Carlini <paolo.carlini@oracle.com>
7735
7736 PR c++/25137
7737 * doc/invoke.texi: Document -Wmissing-braces not enabled by -Wall
7738 for C++.
7739
e9d3ef3b
HPN
77402012-05-28 Hans-Peter Nilsson <hp@axis.com>
7741
974485d7 7742 * doc/md.texi (stack_protect_test): Remove negation of branch to label.
b4922105 7743 (Standard Names): Fix typos in documentation of atomic patterns.
e9d3ef3b 7744
253cbc5f
NS
77452012-05-27 Nathan Sidwell <nathan@acm.org>
7746
7747 * tree.c (build_constructor): Propagate TREE_SIDE_EFFECTS.
7748
1f37c583
JM
77492012-05-26 Jason Merrill <jason@redhat.com>
7750
7751 PR c++/53220
7752 * c-typeck.c (array_to_pointer_conversion): Give -Wc++-compat warning
7753 about array compound literals.
7754
9be94227
EB
77552012-05-26 Eric Botcazou <ebotcazou@adacore.com>
7756
7757 * cfgcleanup.c (try_optimize_cfg): Do not delete forwarder blocks
7758 if CLEANUP_NO_INSN_DEL.
7759 * cfgrtl.c (unique_locus_on_edge_between_p): New function extracted
7760 from cfg_layout_merge_blocks.
7761 (emit_nop_for_unique_locus_between): New function.
7762 (rtl_merge_blocks): Invoke emit_nop_for_unique_locus_between.
7763 (cfg_layout_merge_blocks): Likewise.
7764
c5ebdc25
DA
77652012-05-26 Dimitrios Apostolou <jimis@gmx.net>
7766 Paolo Bonzini <bonzini@gnu.org>
7767
7768 * df-scan.c (df_def_record_1): Assert a parallel must contain an
7769 EXPR_LIST at this point. Receive the LOC and move its extraction...
7770 (df_defs_record): ... here. Change if-else to a switch statement.
7771 (df_find_hard_reg_defs, df_find_hard_reg_defs_1): New.
7772 (df_get_call_refs): Changed defs_generated from bitmap to HARD_REG_SET
7773 and compute it from df_find_hard_reg_defs(). Record DF_REF_BASE
7774 DEFs in REGNO order. Use HARD_REG_SET instead of bitmap for
7775 regs_invalidated_by_call.
7776 (df_insn_refs_collect): Record DF_REF_REGULAR DEFs after
7777 df_get_call_refs().
7778
37c59e69
EB
77792012-05-25 Eric Botcazou <ebotcazou@adacore.com>
7780
7781 PR lto/52178
7782 * tree-inline.c (remap_gimple_op_r): Fix handling of FIELD_DECL.
7783 * tree.c (RETURN_TRUE_IF_VAR): Do not return true for PLACEHOLDER_EXPR.
7784
13af22d7
MM
77852012-05-25 Michael Meissner <meissner@linux.vnet.ibm.com>
7786
7787 * config/rs6000/t-linux64: Delete the 32-bit multilib that uses
7788 software floating point emulation. No longer build the multilibs
7789 with -mstrict-align.
7790
7be9eece
AH
77912012-05-25 Aldy Hernandez <aldyh@redhat.com>
7792
7793 PR middle-end/53008
7794 * trans-mem.c (ipa_tm_create_version_alias): Output new_node if
7795 accessed indirectly.
7796 (ipa_tm_create_version): Same.
7797
a295fa90
UB
77982012-05-25 Uros Bizjak <ubizjak@gmail.com>
7799
7800 PR target/53474
7801 * config/i386/i386.c (ix86_print_operand) <case 'O'>: Print '.' here.
7802 <case 'C', case 'c', case 'F', case 'f'>: Print '.' only for C and c.
7803
0ba89f9b
AI
78042012-05-25 Alexander Ivchenko <alexander.ivchenko@intel.com>
7805
7806 PR target/53435
7807 * config/i386/i386.c (ix86_expand_vec_perm): Use correct op.
7808 (ix86_expand_vec_perm): Use int mode instead of float.
7809 (expand_vec_perm_pshufb): Remove handling of useseless type
7810 conversion.
7811
b993039f
EB
78122012-05-25 Eric Botcazou <ebotcazou@adacore.com>
7813
7814 PR ada/52362
7815 * config.gcc (i[34567]86-*-mingw* | x86_64-*-mingw*): Set gas and
7816 gnu_ld variables to yes.
7817 * configure.ac (HAVE_GNU_LD): Move to after config.gcc inclusion.
7818 (HAVE_GNU_AS): Likewise.
7819 * config.in: Regenerate.
7820 * configure: Likewise.
7821
4aa820fe
TG
78222012-05-25 Tristan Gingold <gingold@adacore.com>
7823
7824 * config/i386/i386.c (struct ix86_frame): Remove unused frame field.
7825 (ix86_compute_frame_layout): Fix type of stack_alignment_needed
7826 and preferred_alignment.
7827
d656c9c5
TG
78282012-05-25 Tristan Gingold <gingold@adacore.com>
7829
7830 * common/config/ia64/ia64-common.c (ia64_except_unwind_info): Fix typo.
7831
48938147
TS
78322012-05-25 Thomas Schwinge <thomas@codesourcery.com>
7833
7834 * fold-const.c (optimize_bit_field_compare): Abort early in the strict
7835 volatile bitfields case.
7836
78372012-05-24 Pat Haugen <pthaugen@us.ibm.com>
6fac31b4
PH
7838
7839 * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
7840 rs6000_sched_costly_dep default to true_store_to_load_dep_costly.
7841 (adjacent_mem_locations): Move some code to and call...
7842 (get_memref_parts): ...new function.
7843 (mem_locations_overlap): New function.
7844 (rs6000_adjust_priority): Adjust calls to is_load_insn/is_store_insn.
7845 (is_mem_ref): Rename to...
7846 (find_mem_ref): ...this. Return MEM rtx.
7847 (get_store_dest): Remove function.
7848 (is_load_insn1, is_load_insn, is_store_insn1, is_store_insn): Add
7849 new parameter and adjust calls.
7850 (rs6000_is_costly_dependence): Update calls for extra arg. Make sure
7851 mem refs overlap for true_store_to_load_dep_costly.
7852 (rs6000_sched_reorder2): Update calls for extra arg. Adjust args
7853 passed to adjacent_mem_locations.
7854 (is_costly_group): Walk resolved dependency list.
7855 (force_new_group): Emit group ending nop for Power6/Power7.
7856 * config/rs6000/rs6000.md (UNSPEC_GRP_END_NOP): New enum value.
7857 (group_ending_nop): New define_insn.
7858
165ca58d
DS
78592012-05-24 Dodji Seketeli <dodji@redhat.com>
7860
7861 Make unwound macro expansion trace less redundant
7862 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Don't print
7863 context of macro definition in the trace, when it's redundant.
7864 Update comments.
7865
49bdc0a6
RG
78662012-05-24 Richard Guenther <rguenther@suse.de>
7867
7868 PR middle-end/53460
7869 * tree-profile.c (tree_profiling): Cleanup the CFG if
7870 execute_fixup_cfg requests it.
7871
0faa0562
RG
78722012-05-24 Richard Guenther <rguenther@suse.de>
7873
7874 * tree-flow.h (create_var_ann): Remove.
7875 * tree-dfa.c (create_var_ann): Remove and inline into its
7876 single caller ...
7877 (add_referenced_var_1): ... here.
7878 * varpool.c (add_new_static_var): Do not call add_referenced_var
7879 for global vars.
7880 * gimple-fold.c (canonicalize_constructor_val): Likewise.
7881 * tree-switch-conversion.c (build_one_array): Likewise.
7882 * tree-profile.c (gimple_gen_ic_profiler): Likewise.
7883 * tree-flow-inline.h (gimple_referenced_vars): Guard against
7884 NULL fn argument.
7885 * tree-inline.c (remap_gimple_op_r): Likewise. Check
7886 gimple_referenced_vars instead of gimple_in_ssa_p.
7887 (copy_tree_body_r): Likewise.
7888 (setup_one_parameter): Likewise.
7889 (declare_return_variable): Likewise.
7890 (tree_function_versioning): Likewise.
7891
0d5a9e78
JJ
78922012-05-24 Jakub Jelinek <jakub@redhat.com>
7893
7894 PR tree-optimization/53465
7895 * tree-vrp.c (extract_range_from_cond_expr): First copy_value_range
7896 vr0 into *vr, then vrp_meet that.
7897 (vrp_meet): If one vr type is VR_UNDEFINED, ensure the result doesn't
7898 have any equivalences.
7899 (vrp_visit_phi_node): Call copy_value_range instead of vrp_meet the
7900 first time.
7901
79022012-05-24 Jim MacArthur <jim.macarthur@arm.com>
e7bcc691
JM
7903
7904 * recog.c (reg_fits_class_p): Check both regno and regno + offset are
7905 hard registers.
7906 * regs.h (in_hard_reg_set_p): Assert that regno is a hard register and
7907 check end_regno - 1 is a hard register.
7908
b44be1e6
RG
79092012-05-24 Richard Guenther <rguenther@suse.de>
7910
7911 * varpool.c (add_new_static_var): Remove call to create_var_ann.
7912 * tree-ssa-operands.c (create_vop_var): Likewise.
7913
1431ce01
RG
79142012-05-24 Richard Guenther <rguenther@suse.de>
7915
7916 PR bootstrap/53466
7917 * tree-ssa-live.c (remove_unused_scope_block_p): Properly
7918 handle globals.
7919 (remove_unused_locals): Pass global_unused_vars to
7920 remove_unused_scope_block_p. Restore code walking all
7921 referenced vars and pruning them.
7922
07250f0e
JH
79232012-05-23 Jan Hubicka <jh@suse.cz>
7924
7925 * tree.h (alias_diag_flags): Remove.
7926 (alias_pair): Remove emitted_diags.
7927 (finish_aliases_1, finish_aliases_2, remove_unreachable_alias_pairs,
7928 symbol_alias_set_t, symbol_alias_set_destroy,
7929 symbol_alias_set_contains, propagate_aliases_backward): Remove.
7930 * toplev.c (compile_file): Do not call finish_aliases_2
a295fa90
UB
7931 * cgraphunit.c (cgraph_process_new_functions): Do not call
7932 finish_aliases_1.
07250f0e
JH
7933 (handle_alias_pairs): Output diagnostics about aliases to externals.
7934 (assemble_thunks_and_aliases): Use do_assemble_alias.
7935 (output_weakrefs): Likewise.
7936 (finalize_compilation_unit): Do not call finish_aliases_1.
a295fa90
UB
7937 * ipa.c (symtab_remove_unreachable_nodes): De not call
7938 remove_unreachable_alias_pairs.
07250f0e 7939 * varasm.c (do_assemble_alias): Export.
a295fa90
UB
7940 (symbol_alias_set_create, symbol_alias_set_destroy,
7941 symbol_alias_set_contains, symbol_alias_set_insert,
7942 propagate_aliases_forward, propagate_aliases_backward,
7943 propagate_aliases_backward, trivially_visible_alias,
7944 trivially_defined_alias, remove_unreachable_alias_pairs,
7945 finish_aliases_1, finish_aliases_2, assemble_alias): Remove.
07250f0e 7946 * output.h (do_assemble_alias): Declare.
a295fa90
UB
7947 * varpool.c (varpool_remove_unreferenced_decls): Do not call
7948 finish_aliases_1.
07250f0e 7949
fb909888
MJ
79502012-05-23 Martin Jambor <mjambor@suse.cz>
7951
7952 * ipa-inline-analysis.c (inline_merge_summary): Free operand_map.
7953
2e745103
EB
79542012-05-23 Eric Botcazou <ebotcazou@adacore.com>
7955
7956 * gimple.c (gimple_types_compatible_p_1) <ARRAY_TYPE>: Remove bogus
7957 size handling.
7958 (gimple_canonical_types_compatible_p) <ARRAY_TYPE>: Likewise.
7959 (iterative_hash_gimple_type): Adjust comment.
7960 (iterative_hash_canonical_type): Likewise. Hash the bounds of the
7961 domain for an array type instead of the domain type itself.
7962
e8257960
RG
79632012-05-23 Richard Guenther <rguenther@suse.de>
7964
7965 PR tree-optimization/53438
7966 * tree-sra.c (analyze_access_subtree): Correct bitfield exclusion.
7967
b49eb0ff
GJL
79682012-05-23 Georg-Johann Lay <avr@gjlay.de>
7969
7970 PR target/53448
7971 * config/avr/avr.h (ASM_OUTPUT_ALIGN): Don't inhibit .p2align 1.
7972 * config/avr/elf.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Use
7973 ASM_OUTPUT_ALIGN.
7974
9c09f152
RB
79752012-05-23 Richard Guenther <rguenther@suse.de>
7976
7977 * tree-dfa.c (add_referenced_var_1): Do not add global vars.
7978 * tree-ssa-live.c (mark_all_vars_used_1): Handle global vars
7979 via the global_unused_vars bitmap.
7980 (remove_unused_locals): Handle global vars in local-decls via
7981 a global_unused_vars bitmap instead of the used flag in the
7982 var annotation. Simplify global variable handling and removal.
7983
aa19cf87
JH
79842012-05-22 Jan Hubicka <jh@suse.cz>
7985
7986 PR middle-end/53426
9c09f152
RB
7987 * tree-ssa-structalias.c (create_variable_info_for): Skip constructors
7988 from other partitions.
aa19cf87 7989
66379195
JH
79902012-05-22 Jan Hubicka <jh@suse.cz>
7991
7992 PR middle-end/53161
7993 * symtab.c (symtab_register_node): Fix ordering issue.
7994
3cd50158
SD
79952012-05-22 Steven Drake <sbd@NetBSD.org>
7996
7997 * gcc.c (do_spec_1): Add %M spec token to output multilib_os_dir.
7998
f8dc1d83
DE
79992012-05-22 David Edelsohn <dje.gcc@gmail.com>
8000
8001 * config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_table_ref):
8002 Use strip_name_encoding target hook.
8003
3828719a
RG
80042012-05-22 Richard Guenther <rguenther@suse.de>
8005
8006 * tree.h (VAR_DECL_IS_VIRTUAL_OPERAND): New.
8007 (init_function_for_compilation): Remove.
8008 * tree-dfa.c (find_vars_r): Take struct function argument.
8009 (find_referenced_vars_in): Adjust.
8010 * tree-ssa-operands.c (clobber_stats): Remove.
8011 (create_vop_var): Take struct function argument. Mark
8012 virtual operand with VAR_DECL_IS_VIRTUAL_OPERAND.
8013 (init_ssa_operands): Take struct function argument.
8014 (fini_ssa_operands): Do not dump dead stats.
8015 * tree-ssa-operands.h (init_ssa_operands): Take struct function
8016 argument.
8017 * cgraphunit.c (init_lowered_empty_function): Adjust.
8018 * lto-streamer-in.c (input_cfg): Likewise.
8019 * tree-inline.c (initialize_cfun): Likewise.
8020 * tree-into-ssa.c (rewrite_into_ssa): Likewise.
a295fa90 8021 * omp-low.c (expand_omp_taskreg): Likewise. Avoid switching cfun.
3828719a
RG
8022 * gimple.c (is_gimple_reg): Optimize the SSA_NAME case,
8023 virtual operands are not registers.
8024
72d5c6c1
RG
80252012-05-22 Richard Guenther <rguenther@suse.de>
8026
a295fa90 8027 * tree-cfg.c (verify_gimple_assign_unary): Fix typo in previous commit.
72d5c6c1 8028
27eb31c9
RG
80292012-05-22 Richard Guenther <rguenther@suse.de>
8030
8031 PR middle-end/53437
8032 * tree-inline.c (setup_one_parameter): Create a dummy init
8033 statement for unused parameters when not optimizing.
8034
3efa0725
RG
80352012-05-22 Richard Guenther <rguenther@suse.de>
8036
8037 * tree-flow.h (add_referenced_var_1): Declare.
8038 (add_referenced_var): Define.
a295fa90 8039 * tree-dfa.c (referenced_var_check_and_insert): Avoid one hash lookup.
3efa0725
RG
8040 (add_referenced_var): Rename to ...
8041 (add_referenced_var_1): ... this. Take struct function argument.
8042
95ffee1f
RR
80432012-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
8044
8045 PR target/53334
8046 * config/arm/arm-protos.h (arm_validize_comparison): Declare.
8047 * config/arm/arm.c (arm_validize_comparison): Define.
8048 * config/arm/arm.md ("cbranchsi4"): Cleanup expansion and use
8049 arm_validize_comparison.
8050 ("cbranchdi4"): Likewise.
8051 ("cstoredi4"): Likewise.
8052 ("movsicc"): Likewise.
8053 ("movsfcc"): Likewise.
8054 ("movdfcc"): Likewise.
8055
7c2dbbdc
DA
80562012-05-22 Dimitrios Apostolou <jimis@gmx.net>
8057
8058 * df-scan.c (df_scan_alloc): Round up allocation pools size, reduce
95ffee1f 8059 the mw_reg_pool size.
7c2dbbdc 8060
819f3b2c
PB
80612012-05-22 Paolo Bonzini <bonzini@gnu.org>
8062
8063 PR tree-optimization/53336
8064 * tree-cfg.c (verify_gimple_assign_unary): Allow conversion from
8065 non-integer integral types to offset type and vice versa.
8066
c5e0766b
AM
80672012-05-22 Alan Modra <amodra@gmail.com>
8068
7caf4b0c
PB
8069 * config/rs6000/aix.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Delete.
8070 * config/rs6000/darwin.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Delete.
8071 * config/rs6000/sysv4.h (FP_SAVE_INLINE, GP_SAVE_INLINE,
8072 V_SAVE_INLINE): Delete.
c5e0766b
AM
8073 * config/rs6000/rs6000.c (V_SAVE_INLINE): Delete.
8074 (rs6000_savres_strategy): Reimplement GP/FP/V_SAVE_INLINE logic.
8075 For ELF targets, use out-of-line restores for -Os and any number
8076 of regs if the restore exits, and out-of-line gp save for two or
8077 more regs. Use save_reg_p to test for holes in reg restore set.
8078 Replace "#if" with "if".
8079
bbd72c2f
AM
80802012-05-22 Alan Modra <amodra@gmail.com>
8081
8082 * config/rs6000/rs6000.c (save_reg_p): New function.
8083 (first_reg_to_save, first_fp_reg_to_save): Use it here.
8084 (first_altivec_reg_to_save, restore_saved_cr): Likewise.
8085 (emit_frame_save): Use gen_frame_store.
8086 (gen_frame_mem_offset): Correct SPE condition requiring reg+reg.
8087 (rs6000_emit_prologue): Use save_reg_p. Use gen_frame_store for
8088 vrsave and toc.
8089 (rs6000_emit_epilogue): Use save_reg_p. Use gen_frame_load for
8090 vrsave, toc, gp and fp restores.
8091
e1968bba
AM
80922012-05-22 Alan Modra <amodra@gmail.com>
8093
8094 * config/rs6000/rs6000.c: Delete unnecessary forward declarations.
8095 Move those with ATTRIBUTE_UNUSED to immediately before definitions.
8096 Move function pointer variables after forward declarations.
8097 (rs6000_builtin_support_vector_misalignment): Make static.
8098 (rs6000_legitimate_address_p, rs6000_gimplify_va_arg): Likewise.
8099 (rs6000_function_value, rs6000_can_eliminate): Likewise.
8100
1d2944a3
BS
81012012-05-21 Bernd Schmidt <bernds@codesourcery.com>
8102
8103 PR rtl-optimization/53373
8104 * caller-save.c (save_call_clobbered_regs): Look into a possible
8105 PARALLEL manually rather than using single_set on a call insn.
8106
a9a58711
JJ
81072012-05-21 Jakub Jelinek <jakub@redhat.com>
8108
8109 PR tree-optimization/53436
8110 * omp-low.c (omp_build_component_ref): New function.
8111 (build_receiver_ref, build_sender_ref, create_task_copyfn): Use it.
8112
f1ea1f5c
UB
81132012-05-21 Uros Bizjak <ubizjak@gmail.com>
8114
8115 * config/i386/i386.c (put_condition_code): Change "reverse" and "fp"
8116 arguments to bool.
8117 (ix86_print_operand) <case 'O'>: Look at mode size of the operand.
8118 Do not print '.' here. Output operand lossage error for unhandled
8119 sizes. Move.
8120 <case '*'>: Move.
8121 <case '&'>: Ditto.
8122 <case 'Y'>: Ditto.
8123 <case 'z'>: Hardcode "code" argument into error strings.
8124 <case 'Z'>: Ditto.
8125 <case 'D'>: Merge AVX and non-AVX codes.
8126 <case 'C', case 'c', case 'F', case 'f'>: Merge. Fix error string.
8127 Update call to put_condition_code.
8128
577e0395
AS
81292012-05-21 Andreas Schwab <schwab@linux-m68k.org>
8130
8131 * config/m68k/m68k.md (*clzsi2_cf): Renamed from clzsi2. Call
8132 CC_STATUS_INIT.
8133 (clzsi2): New expander.
8134 (*clzsi2_68k): New insn.
f1ea1f5c 8135 * config/m68k/m68k.h: Update comment about CLZ_DEFINED_VALUE_AT_ZERO.
577e0395 8136
83e1a7f0
AH
81372012-05-21 Aldy Hernandez <aldyh@redhat.com>
8138
8139 * gimple.h (gimple_set_in_transaction): Remove.
8140 (gimple_in_transaction): Look in BB instead.
8141 (gimple_statement_base): Remove in_transaction field.
8142 * basic-block.h (enum bb_flags): Add BB_IN_TRANSACTION.
8143 * trans-mem.c (compute_transaction_bits): Place transaction bit
8144 information into basic blocks.
8145
18c56439
AS
81462012-05-21 Andreas Schwab <schwab@linux-m68k.org>
8147
8148 * expr.c (get_def_for_expr_class): Define only if
8149 HAVE_conditional_move.
8150 (convert_tree_comp_to_rtx): Likewise.
8151
89ac11d8
UB
81522012-05-21 Uros Bizjak <ubizjak@gmail.com>
8153
8154 PR target/53399
8155 * config/i386/i386.md (ffs<mode>2): Generate CCCmode compare
8156 for TARGET_BMI.
8157 (ffssi2_no_cmove): Ditto.
8158 (*ffs<mode>_1): Remove insn pattern.
8159 (*tzcnt<mode>_1): New insn pattern.
8160 (*bsf<mode>1): Ditto.
8161
cb0c9fc3
RG
81622012-05-21 Richard Guenther <rguenther@suse.de>
8163
8164 * tree-dfa.c (add_referenced_var): Do not walk DECL_INITIAL for
8165 more referenced vars.
8166 * tree-ssa-live.c (mark_all_vars_used_1): Only set the used
8167 flag on variables that have a var-annotation.
8168
01c7ccbb
JM
81692012-05-21 Joseph Myers <joseph@codesourcery.com>
8170
ce863f5d 8171 PR c/53418
01c7ccbb
JM
8172 * c-typeck.c (build_conditional_expr): Remove C_MAYBE_CONST_EXPR
8173 from folded operands before wrapping another around the
8174 conditional expression.
8175
27edb974
JJ
81762012-05-21 Jakub Jelinek <jakub@redhat.com>
8177
7772bae0
JJ
8178 PR tree-optimization/53366
8179 * tree-vect-slp.c (vect_supported_load_permutation_p): Don't shortcut
8180 tests if complex_numbers == 2, but there are non-complex number loads
8181 too.
8182
017a2020
JJ
8183 PR tree-optimization/53409
8184 * tree-vect-loop.c (vect_analyze_loop_operations): Don't check
8185 vinfo_for_stmt (op_def_stmt) if op_def_stmt isn't inside loop.
8186
27edb974
JJ
8187 PR tree-optimization/53410
8188 * fold-const.c (fold_binary_loc): Use build_zero_cst (type)
8189 instead of build_int_cst (type, 0) where vector types might be
8190 involved. Instead of build_int_cst (type, 1) convert the original
8191 integer_onep argument to the desired type.
8192
fb639843
MM
81932012-05-21 Michael Matz <matz@suse.de>
8194
8195 * genattrtab.c (attr_rtx_cost): Move earlier, start with cost being 1.
8196 (simplify_test_exp): Handle one more case of distributive law,
8197 decrease cost threshold.
8198 (tests_attr_p, get_attr_order): New functions.
8199 (optimize_attrs): Use topological order, inline only cheap values.
8200 (write_attr_set): Reset our_known_true after some time.
8201
30ee9dbf
L
82022012-05-21 H.J. Lu <hongjiu.lu@intel.com>
8203
8204 PR target/53425
8205 * config/i386/i386.c (type_natural_mode): Warn passing SSE
8206 vector argument without SSE enabled changes the ABI.
8207
21039e0e
RG
82082012-05-21 Richard Guenther <rguenther@suse.de>
8209
8210 PR tree-optimization/53408
8211 * tree-vect-loop.c (vectorizable_induction): Properly check
8212 the restriction that we cannot handle induction results from
8213 the inner loop outside of the outer loop.
8214
9b5effa4
L
82152012-05-21 H.J. Lu <hongjiu.lu@intel.com>
8216
8217 PR target/53416
8218 * config/i386/i386.md (UNSPEC_RDRAND): Renamed to ...
8219 (UNSPECV_RDRAND): This.
8220 (rdrand<mode>_1): Updated.
8221
8450aa97
RG
82222012-05-21 Richard Guenther <rguenther@suse.de>
8223
8224 * tree-loop-distribution.c (can_generate_builtin): Reject
8225 volatile stmts.
8226
6be4d3ac
CLT
82272012-05-21 Chung-Lin Tang <cltang@codesourcery.com>
8228
8229 * Makefile.in (options.c): Add options.h to included header
8230 files, before tm.h.
8231
70837b71
RL
82322012-05-21 Razya Ladelsky <razya@il.ibm.com>
8233
89ac11d8 8234 * tree-parloops.c : Add myself to contributors, update
70837b71
RL
8235 TODO list, add link to wiki.
8236
8afc3636
AM
82372012-05-21 Alan Modra <amodra@gmail.com>
8238
8239 * config/rs6000/predicates.md (input_operand): Don't match
8240 constant pool addresses. Remove label_ref, high and plus from
8241 match_code list. Remove redundant CONSTANT_P test.
8242 (splat_input_operand): Similarly update match_code list.
8243 (small_toc_ref): New predicate.
8244 * config/rs6000/rs6000-protos.h (toc_relative_expr_p): Update prototype.
8245 * config/rs6000/rs6000.c (tocrel_base, tocrel_offset): Make const.
8246 (legitimate_constant_pool_address_p): Move TARGET_TOC test and
8247 register checks to..
8248 (toc_relative_expr_p): ..here. Add "strict" param. Match new rtl
8249 generated by create_TOC_reference.
8250 (rs6000_legitimize_address): Update cerate_TOC_reference call.
8251 (rs6000_delegitimize_address): Handle new rtl for toc refs.
8252 (rs6000_cannot_force_const_mem, rs6000_find_base_term): Likewise.
8253 (use_toc_relative_ref): New function, split out from..
8254 (rs6000_emit_move): ..here. Remove redundant tests. Update
8255 create_TOC_reference calls.
8256 (rs6000_legitimize_reload_address): Formatting. Handle splitting
8257 of medium/large model toc addresses. Use use_toc_relative_ref.
8258 (print_operand): Formatting, style. Adjust for toc changes.
8259 (print_operand_address): Likewise.
8260 (rs6000_output_addr_const_extra): Likewise.
8261 (create_TOC_reference): Put TOC_REGISTER in UNSPEC_TOCREL rather
8262 than a PLUS. Use this formulation for both high and low part
8263 of -mcmodel=medium/large toc reference too. Before reload,
8264 always use the small model formulation.
8265 * config/rs6000/rs6000.md (tls_gd, tls_gd_high): Similarly avoid
8266 a PLUS in high part of addresses here.
8267 (tls_ld, tls_ld_high, tls_got_dtprel, tls_got_dtprel_high): Likewise.
8268 (tls_got_tprel, tls_got_tprel_high, largetoc_high): Likewise.
8269 (largetoc_high, largetoc_low): Move earlier. Cope when no
8270 base reg available.
8271 (largetoc_high_plus): New insn.
8272 (movsi_internal1, movsi_internal1_single, movsf_softfloat,
8273 movdi_mfpgpr, movdi_internal64): Don't handle 'R' constraint here..
8274 (tocref): ..instead do so here, new insn and split.
8275
d1925759
L
82762012-05-20 H.J. Lu <hongjiu.lu@intel.com>
8277
8278 * config/i386/driver-i386.c (host_detect_local_cpu): Support
8279 RDRND, F16C and FSGSBASE.
8280
05607e5b
JDA
82812012-05-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
8282
8283 PR rtl-optimzation/53373
8284 * config/pa/pa.md (call_symref_pic): Don't expose PIC register save in
8285 call pattern. Update split patterns.
8286 (call_symref_64bit, call_reg_pic, call_reg_64bit, call_val_symref_pic,
8287 call_val_symref_64bit, call_val_reg_pic, call_val_reg_64bit): Likewise.
8288
768da0da 82892012-05-20 Razya Ladelsky <razya@il.ibm.com>
89ac11d8
UB
8290
8291 * tree-parloops.c (gen_parallel_loop): Change many_iterations_cond
8292 for outer loops.
768da0da 8293
877ab5e9
JH
82942012-05-18 Jan Hubicka <jh@suse.cz>
8295
8296 * cgraphunit.c (handle_alias_pairs): Declare; free alias_pairs
8297 (cgraph_process_new_functions): Process also aliases.
8298 * lto-streamer-out.c (struct sets): Remove.
8299 (trivally_defined_alias): Remove.
8300 (output_alias_pair_p): Remove.
8301 (output_unreferenced_globals): Remove.
8302 (produce_symtab); Do not handle alias pairs.
8303 (produce_asm_for_decls): Likewise.
8304 * lto-streamer-in.c (input_alias_pairs): Remove.
8305 (lto_read_body): Do not input alias pairs.
8306 (lto_input_constructors_and_inits): Remove.
8307
38e55ac9
JH
83082012-05-18 Jan Hubicka <jh@suse.cz>
8309
89ac11d8
UB
8310 * cgraphunit.c (handle_alias_pairs): Cleanup; handle all types of
8311 aliases.
38e55ac9 8312
c44c2088
JH
83132012-05-18 Jan Hubicka <jh@suse.cz>
8314
8315 * cgraphbuild.c (record_reference): Update.
8316 * lto-cgraph.c (lto_output_varpool_node): External vars
8317 are not in other partition even if they are not output
8318 in current partition.
8319 * gimple-fold.c (can_refer_decl_in_current_unit_p): Take FROM_DECL
8320 argument; fix.
8321 (canonicalize_constructor_val): Take FROM_DECL argument.
8322 (fold_ctor_reference, fold_string_cst_ctor_reference,
8323 fold_array_ctor_reference, fold_nonarray_ctor_reference,
8324 fold_ctor_reference): Likewise.
8325 (fold_const_aggregate_ref_1, gimple_get_virt_method_for_binfo): Update.
8326 * gimple.h (gimple_fold_builtin): Likewise.
8327
0ac3cb2a
OH
83282012-05-18 Olivier Hainque <hainque@adacore.com>
8329
8330 * Makefile.in (FLAGS_TO_PASS): Pass $(libexecsubdir) instead of
8331 $(libsubdir) as libexecsubdir.
8332
9c68125e
BS
83332012-05-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8334
8335 * config/rs6000/rs6000.c (print_operand): Revise code that unsafely
8336 relied on signed overflow behavior.
8337
a4293fa6
RG
83382012-05-18 Richard Guenther <rguenther@suse.de>
8339
8340 PR tree-optimization/53346
8341 * tree-loop-distribution.c (ldist_gen): Make sure to apply
8342 builtin transform even when only a single partition with
8343 all reads/writes exists.
8344
7595989b
RG
83452012-05-18 Richard Guenther <rguenther@suse.de>
8346
8347 PR tree-optimization/53390
8348 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Ignore
8349 strided loads.
8350
917a5202
BS
83512012-05-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8352
8353 * tree-ssa-reassoc.c (bip_map): Remove decl.
8354 (completely_remove_stmt): Remove function.
8355 (remove_def_if_absorbed_call): Remove function.
8356 (remove_visited_stmt_chain): Remove __builtin_powi handling.
8357 (possibly_move_powi): Remove function.
8358 (rewrite_expr_tree): Remove calls to possibly_move_powi.
8359 (rewrite_expr_tree_parallel): Likewise.
8360 (attempt_builtin_powi): Build multiplies explicitly rather than
8361 relying on the ops vector and rank system.
8362 (transform_stmt_to_copy): New function.
8363 (transform_stmt_to_multiply): Likewise.
8364 (reassociate_bb): Handle leftover operations after __builtin_powi
8365 optimization; build a final multiply if necessary.
8366
387df871
JH
83672012-05-18 Jan Hubicka <jh@suse.cz>
8368
8369 * cgraphunit.c (varpool_finalize_decl): Allow external decls.
8370 (mark_functions_to_output): Fix sanity check.
89ac11d8 8371 * ipa.c (function_and_variable_visibility): Remove TREE_STATIC check.
387df871 8372
f9a21e13
RG
83732012-05-18 Richard Guenther <rguenther@suse.de>
8374
8375 * tree-flow.h (mark_symbols_for_renaming): Remove.
8376 * tree-dfa.c (mark_symbols_for_renaming): Likewise.
89ac11d8 8377 * tree-inline.c (copy_edges_for_bb): Do not mark symbols for renaming.
f9a21e13
RG
8378 (copy_debug_stmt): Likewise.
8379 (expand_call_inline): Likewise.
8380 (declare_return_variable): Mark the return variable for renaming
8381 if necessary.
8382
99aea943
AS
83832012-05-18 Andrew Stubbs <ams@codesourcery.com>
8384
8385 * config/arm/arm-protos.h (arm_emit_coreregs_64bit_shift): New
8386 prototype.
8387 * config/arm/arm.c (arm_emit_coreregs_64bit_shift): New function.
8388 * config/arm/arm.md (ashldi3): Use arm_emit_coreregs_64bit_shift.
8389 (ashrdi3,lshrdi3): Likewise.
8390 (arm_cond_branch): Remove '*' to enable gen_arm_cond_branch.
8391
7cb6668a
MI
83922012-05-18 Meador Inge <meadori@codesourcery.com>
8393
8394 PR rtl-optimization/53352
8395 * cse.c (equiv_constant): Ignore paradoxical subregs.
8396
8e6acdb8
SB
83972012-05-17 Steven Bosscher <steven@gcc.gnu.org>
8398
8399 PR rtl-optimization/53125
8400 * regstat.c (regstat_bb_compute_ri): Take new local_live_last_luid
8401 argument. Simplify calculation of REG_LIVE_LENGTH for regnos that
8402 die in the basic block. Correctly top off REG_FREQ and
8403 REG_FREQ_CALLS_CROSSED.
8404 Remove do_not_gen.
8405 (regstat_compute_ri): Allocate and free local_live_last_luid.
8406 Remove do_not_gen.
8407 (regstat_bb_compute_calls_crossed): Correctly top off
8408 REG_FREQ_CALLS_CROSSED.
8409
6649df51
JH
84102012-05-17 Jan Hubicka <jh@suse.cz>
8411
89ac11d8
UB
8412 * lto-symtab.c (lto_symtab_resolve_symbols): Preffer decl with
8413 constructor over decl without.
6649df51
JH
8414 * cgraph.c (cgraph_remove_node): Clear also body of unanalyzed nodes.
8415 * cgraph.h (varpool_can_remove_if_no_refs): Handle external correctly.
89ac11d8 8416 * cgraphunit.c (process_function_and_variable_attributes): Finalize
6649df51 8417 extrnal decls.
89ac11d8
UB
8418 (mark_functions_to_output): Also accept bodies for functions with
8419 clones.
6649df51
JH
8420 (output_in_order): Skip external vars.
8421 * lto-cgraph.c (lto_output_node): External functions are never in other
8422 partition.
8423 (lto_output_varpool_node): Likewise.
8424 * lto-streamer-out.c (lto_write_tree): Always use error_mark_nodes for
8425 forgotten initializers.
8426 * ipa.c (process_references): Handle external vars.
8427 (symtab_remove_unreachable_nodes): Update to handle external vars.
8428 (varpool_externally_visible_p): External vars are externally visible.
8429 * gimple-fold.c (can_refer_decl_in_current_unit_p): Update.
8430 * varpool.c (varpool_remove_node): Remove constructor.
8431 (decide_is_variable_needed): Handle externals.
8432 (varpool_remove_unreferenced_decls): Likewise.
8433
9b095bf1
MLI
84342012-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org>
8435
8436 * opts.c (common_handle_option): -pedantic-errors enables -Wpedantic.
8437 (enable_warning_as_error): Do not special case Wuninitialized.
8438 * optc-gen.awk: Add sanity checks.
8439
9faeb493 84402012-05-17 Jan Hubicka <jh@suse.cz>
5264f487
JH
8441
8442 * ipa-reference.c (is_proper_for_analysis): Do not check flags
8443 that might change as result of global optimization.
8444 (analyze_function): Do not check analyzed and externally_visible
8445 flags; be happy about address dereferences.
8446 (propagate): Prune all_module_statics so it really contains just
8447 statics; prune all the local summaries.
8448 (ipa_reference_write_optimization_summary): Simplify.
8449
de7ee1e9
KCY
84502012-05-17 Kwok Cheung Yeung <kcy@codesourcery.com>
8451
89ac11d8 8452 * config/m68k/m68k-devices.def: Add 51ag, 51je, 51jf, 51jg, 51mm, 51qm.
de7ee1e9
KCY
8453 * config/m68k/m68k-tables.opt: Regenerated.
8454 * doc/invoke.texi (M680x0 Options): Document.
8455
8730965e
PM
84562012-05-16 Dave Boutcher <daveboutcher@gmail.com>
8457 Patrick Marlier <patrick.marlier@gmail.com>
8458
8459 * trans-mem.c (ipa_tm_transform_clone): Transform functions with
8460 indirect calls.
8461
e6d5f8c9
L
84622012-05-16 H.J. Lu <hongjiu.lu@intel.com>
8463
8464 * configure: Regenerated.
8465
763dc99d
AP
84662012-05-16 Andrew Pinski <apinski@cavium.com>
8467
8468 * gimple-fold.c (get_maxval_strlen): Move COND_EXPR handling under
8469 GIMPLE_ASSIGN.
8470
0e2b0f75
DM
84712012-05-16 David S. Miller <davem@davemloft.net>
8472
8473 * jump.c (delete_related_insns): If we remove a CALL, make sure
8474 we delete it's NOTE_INSN_CALL_ARG_LOCATION note too.
8475
f002c196
BS
84762012-05-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8477
8478 PR tree-optimization/53217
8479 * tree-ssa-reassoc.c (bip_map): New static variable.
8480 (possibly_move_powi): Move feeding multiplies with __builtin_powi call.
8481 (attempt_builtin_powi): Save feeding multiplies on a stack.
8482 (reassociate_bb): Create and destroy bip_map.
8483
8294b6fe
OH
84842012-05-16 Olivier Hainque <hainque@adacore.com>
8485
8486 * Makefile.in (install-no-fixedincludes): New target, former toplevel
8487 gcc-no-fixedincludes. Stash "include-fixed" in addition to "include".
8488 Add comments and improve stamp preservation across the whole sequence.
8489 (stmp-int-hdrs): Use move-if-change + cp -p to setup fix_dir/limits.h.
8490
6b18b1a3
RG
84912012-05-16 Richard Guenther <rguenther@suse.de>
8492
8493 * tree-inline.c (insert_init_stmt): Do not call
8494 mark_symbols_for_renaming.
8495 (setup_one_parameter): Avoid initializing unused parameters.
8496 (declare_return_variable): Properly handle DECL_BY_REFERENCE
8497 return vars in SSA form.
8498
00d9266f
RG
84992012-05-16 Richard Guenther <rguenther@suse.de>
8500
8501 * tree-flow.h (get_virtual_var): Remove.
8502 * tree-dfa.c (get_virtual_var): Likewise.
8503
c334023f
RG
85042012-05-16 Richard Guenther <rguenther@suse.de>
8505
8506 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1):
8507 Remove set-only bitmap of new names.
8508 (slpeel_tree_peel_loop_to_edge): Likewise. Do not set
8509 CFG hooks.
8510 * tree-flow.h (ssa_names_to_replace): Remove.
8511 * tree-into-ssa.c (ssa_names_to_replace): Likewise.
8512
a952cc06
RG
85132012-05-16 Richard Guenther <rguenther@suse.de>
8514
8515 PR tree-optimization/53364
8516 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Properly
8517 detect a view-conversion of the decl.
8518
0b2c4be5
DS
85192012-05-16 Dodji Seketeli <dodji@redhat.com>
8520
8521 PR preprocessor/7263
8522 * c-tree.h (enum c_declspec_word): Declare new enum.
8523 (struct c_declspecs::locations): New member.
8524 (declspecs_add_qual, declspecs_add_scspec)
8525 (declspecs_add_addrspace, declspecs_add_alignas): Take a new
8526 location parameter.
8527 * c-decl.c (build_null_declspecs): Initialize the new struct
8528 c_declspecs::locations member.
8529 (declspecs_add_addrspace): Take a location parameter for the
8530 address space. Store it onto declaration specifiers.
8531 (declspecs_add_qual): Likewise, take a location parameter for the
8532 qualifier.
8533 (declspecs_add_type): Likewise, take a location parameter for the
8534 type specifier.
8535 (declspecs_add_scspec): Likewise, take a location parameter for
8536 the storage class specifier.
8537 (declspecs_add_attrs): Likewise, take a location parameter for the
8538 first attribute.
8539 (declspecs_add_alignas): Likewise, take a location parameter for
8540 the alignas token.
8541 (finish_declspecs): For diagnostics, use the location of the
8542 relevant declspec, instead of the global input_location.
8543 * c-parser.c (c_parser_parameter_declaration): Pass the precise
8544 virtual location of the declspec to the declspecs-setters.
8545 (c_parser_declspecs): Likewise. Avoid calling c_parser_peek_token
8546 repeatedly.
8547
40295cc7
IZ
85482012-05-16 Igor Zamyatin <igor.zamyatin@intel.com>
8549
8550 * configure.ac: Stack protector enabling for Android targets.
8551 * configure: Regenerate.
8552
a36b2706
RS
85532012-05-16 Richard Sandiford <r.sandiford@uk.ibm.com>
8554
8555 * ira.c (pseudo_move_insn): Delete.
8556 (find_moveable_pseudos): Don't set it.
8557 (move_unallocated_pseudos): Use DF_REG_DEF_CHAIN to find
8558 the definitions of the original pseudo. Delete all of them.
8559
a7c6c6d6
OH
85602012-05-16 Olivier Hainque <hainque@adacore.com>
8561
8562 * config/rs6000/rs6000-opts.h (enum processor_type): Add
8563 PROCESSOR_PPC8548.
8564 * config/rs6000/rs6000-cpus.def: Reference it for cpu="8548".
8565 * config/rs6000/rs6000.md (cpu attribute definition): Add ppc8548.
8566 * config/rs6000/8540.md: indicate that the units/patterns apply to
8567 ppc8548 as well.
8568
8569 * config/rs6000/rs6000.c (rs6000_option_override_internal): Rename
8570 default_cpu into implicit_cpu, conveying what --with-cpu was passed at
8571 configure time. Treat implicit_cpu as have_CPU. Pick defaults for SPE
8572 related flags, check that what is queried is supported by the selected
8573 configuration. Rework the single/double_float and MASK_STRING resets to
8574 hit for all the E500 cores (854x + E500MC variants). Select the ppc8540
8575 costs for PROCESSOR_PPC8548 as well.
8576 (rs6000_issue_rate): case CPU_PPC8548 together with CPU_PPC8540.
8577 (rs6000_use_sched_lookahead): Likewise, rewriting function as a case
8578 statement instead of a sequence of ifs.
8579
8580 * config/rs6000/rs6000.h (TARGET_E500): Remove.
8581 (TARGET_NO_LWSYNC): Adjust accordingly.
8582 * config/rs6000/e500.h (TARGET_E500): Remove.
8583 (CHECK_E500_OPTIONS): Adjust accordingly.
8584 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Remove.
8585 (TARGET_DEFAULT): Reformat definition to match the one in linuxspe.h.
8586 * config/rs6000/linuxspe.h: Likewise.
8587 * config/rs6000/vxworks.h: Remove bogus TARGET_E500 overrides and
8588 superfluous comments.
8589 * config/rs6000/e500-double.h: Remove.
8590
8591 * config.gcc (pick a default with_cpu): For powerpc*-*-*spe*,
8592 default to with_cpu=8548 if --enable-e500-double, and to 8540
8593 otherwise.
8594 (set misc flags section): For powerpc*|rs6000*, remove inclusion
8595 of e500-double.h for --enable-e500-double.
8596
af0a7a92
OH
85972012-05-16 Olivier Hainque <hainque@adacore.com>
8598
8599 * Makefile.in (s-header-vars): Resort to -n instead of trailing
8600 -e d in sed invocation.
8601
176a96de
HPN
86022012-05-16 Hans-Peter Nilsson <hp@axis.com>
8603
8604 * doc/tm.texi.in (Type Layout) <SIZE_TYPE>: Update reference to
8605 source-code.
8606 * doc/tm.texi: Regenerate.
8607
f2437399
PC
86082012-05-15 Paolo Carlini <paolo.carlini@oracle.com>
8609
8610 * tree.h (EXPR_LOCATION): Use CAN_HAVE_LOCATION_P.
8611
64137a35
JJ
86122012-05-15 Jakub Jelinek <jakub@redhat.com>
8613
8614 PR target/53358
8615 * config/i386/i386.md (*addqi_2 peephole with QImode addition): Check
8616 that operands[2] is either immediate, or q_regs_operand.
8617
7d80ca1f
RG
86182012-05-15 Richard Guenther <rguenther@suse.de>
8619
8620 * cgraphunit.c (thunk_adjust): Use make_rename_temp.
8621 (assemble_thunk): Likewise. Manually rename and register
8622 function arguments.
8623
8c1f1d42
RG
86242012-05-15 Richard Guenther <rguenther@suse.de>
8625
8626 PR tree-optimization/53355
8627 * tree-vrp.c (extract_range_from_binary_expr_1): Handle LSHIFT_EXPRs
8628 by constants.
8629
33960e2e
TG
86302012-05-15 Tristan Gingold <gingold@adacore.com>
8631
89ac11d8 8632 * tree-ssa-strlen.c (get_string_length): Convert lhs if needed.
33960e2e 8633
a02f0c5d
RG
86342012-05-15 Richard Guenther <rguenther@suse.de>
8635
8636 * gimple.c (gimple_set_modified): Move ...
8637 * gimple.h (gimple_set_modified): ... here.
8638
094aaeab
TG
86392012-05-15 Tristan Gingold <gingold@adacore.com>
8640
8641 * ira-color.c (move_spill_restore): Add a guard.
8642
f65e3801
TG
86432012-05-15 Tristan Gingold <gingold@adacore.com>
8644
8645 * config/ia64/ia64.c (ia64_emit_probe_stack_range): Adjust calls to
8646 plus_constant.
8647
f301837e
EB
86482012-05-15 Eric Botcazou <ebotcazou@adacore.com>
8649
8650 * gimplify.c (gimplify_init_constructor): Do a block move for very
8651 small objects as well.
8652
aa44c80c
BS
86532012-05-15 Bernd Schmidt <bernds@codesourcery.com>
8654
8655 * ira.c (find_moveable_pseudos): Skip registers whose
8656 DF_REG_EQ_USE_COUNT is nonzero.
8657
d6373302
KZ
86582012-05-15 Kenneth Zadeck <zadeck@naturalbridge.com>
8659
89ac11d8 8660 * doc/md.texi (fma): Define to only be applicable for single rounding.
33960e2e 8661
517f1b34
UB
86622012-05-14 Uros Bizjak <ubizjak@gmail.com>
8663
8664 PR target/46098
8665 * config/i386/i386.c (ix86_expand_special_args_builtin): Always
8666 generate target register for "load" class builtins.
8667
8668 Revert:
8669 2010-10-22 Uros Bizjak <ubizjak@gmail.com>
8670
8671 PR target/46098
8672 * config/i386/sse.md (*avx_movu<ssemodesuffix><avxmodesuffix>):
8673 Rename from avx_movu<ssemodesuffix><avxmodesuffix>.
8674 (avx_movu<ssemodesuffix><avxmodesuffix>): New expander.
8675 (*<sse>_movu<ssemodesuffix>): Rename from <sse>_movu<ssemodesuffix>.
8676 (<sse>_movu<ssemodesuffix>): New expander.
8677 (*avx_movdqu<avxmodesuffix>): Rename from avx_movdqu<avxmodesuffix>.
8678 (avx_movdqu<avxmodesuffix>): New expander.
8679 (*sse2_movdqu): Rename from sse2_movdqu.
8680 (sse2_movdqu): New expander.
8681
6015a67d
MG
86822012-05-14 Marc Glisse <marc.glisse@inria.fr>
8683
8684 PR target/52607
8685 * config/i386/i386.c (ix86_expand_vec_perm_const): Move code to ...
8686 (canonicalize_perm): ... new function.
8687 (expand_vec_perm_2vperm2f128_vshuf): New function.
8688 (ix86_expand_vec_perm_const_1): Call it.
8689
f6286674
JJ
86902012-05-14 Andrew Pinski <apinski@cavium.com>
8691 H.J. Lu <hongjiu.lu@intel.com>
8692 Jakub Jelinek <jakub@redhat.com>
8693
8694 PR target/53315
517f1b34 8695 * config/i386/i386.md (xbegin_1): Use + in constraint and match_dup.
f6286674
JJ
8696 (xbegin): Updated.
8697
d5c90983
JJ
86982012-05-14 Jakub Jelinek <jakub@redhat.com>
8699
210cfe63
JJ
8700 * dwarf2out.c (dwarf2out_define, dwarf2out_undef): Treat
8701 lineno 1 the same as lineno 0 before first start file directive.
8702 (optimize_macinfo_range): Likewise.
8703
d5c90983
JJ
8704 * dwarf2out.c (have_macinfo): Define.
8705 (dwarf2out_finish): Don't emit DW_AT_GNU_macros or DW_AT_macro_info
8706 attribute, don't force empty compilation unit and don't emit any
8707 .debug_macinfo/.debug_macro section if macinfo_table is empty.
8708
5bb53d1a
GJL
87092012-05-14 Georg-Johann Lay <avr@gjlay.de>
8710
8711 PR target/53344
8712 * config/avr/avr.c (avr_const_address_lo16): Remove.
8713 (avr_assemble_integer): Print ".byte lo8(x)",
8714 ".byte hi8(x)", ".byte hh8(x)" instead of emit an assembler
89ac11d8 8715 .warning if 3-byte address is assembled.
5bb53d1a
GJL
8716 * doc/extend.texi (AVR Named Address Spaces): Document that
8717 binutils 2.23 is needed to assemble 3-byte addresses.
8718
6ba84010
RG
87192012-05-14 Richard Guenther <rguenther@suse.de>
8720
8721 * tree-vect-data-refs.c (vect_setup_realignment): Remove
8722 call to mark_symbols_for_renaming.
8723 (vect_permute_load_chain): Likewise.
8724 * tree-vect-loop.c (vect_is_slp_reduction): Update stmt
8725 instead of calling mark_symbols_for_renaming.
8726 * tree-vect-stmts.c (read_vector_array): Remove call to
8727 mark_symbols_for_renaming.
8728 (write_vector_array): Likewise.
8729 (vectorizable_call): Likewise.
8730 (vectorizable_store): Likewise.
8731 (vectorizable_load): Likewise.
8732 * matrix-reorg.c (transform_allocation_sites): Likewise.
8733 * tree-ssa-pre.c (create_expression_by_pieces): Likewise.
8734 (create_expression_by_pieces): Likewise.
8735
097dcc66
RG
87362012-05-14 Richard Guenther <rguenther@suse.de>
8737
8738 * gimplify.c (gimple_regimplify_operands): Only mark the LHS
8739 of statements for renaming.
8740 (force_gimple_operand_1): Likewise, consistently for both
8741 calls to force_gimple_operand and force_gimple_operand_gsi.
8742
a5efada7
RG
87432012-05-14 Richard Guenther <rguenther@suse.de>
8744
8745 * tree-dfa.c (make_rename_temp): Be forgiving if not in SSA form.
8746 * omp-low.c (expand_omp_taskreg): Properly conditionalize call
8747 to update_ssa.
8748 (expand_omp_for): Likewise.
8749 (expand_omp_for_generic): Adjust conditional add to referenced vars.
8750 Use make_rename_temp for temporaries that should be rewritten into
8751 SSA form.
8752 (expand_omp_for_static_nochunk): Likewise.
8753 (expand_omp_atomic_pipeline): Likewise.
8754
a82960aa
RG
87552012-05-14 Richard Guenther <rguenther@suse.de>
8756
8757 PR tree-optimization/53331
8758 * tree-vect-data-refs.c (vect_verify_datarefs_alignment): Ignore
8759 strided loads.
8760 * tree-vect-stmts.c (vect_model_load_cost): Handle strided loads.
8761
f2bc201f
MLI
87622012-05-14 Manuel López-Ibáñez <manu@gcc.gnu.org>
8763
8764 PR 53063
8765 * doc/options.texi: (LangEnabledBy): Document it.
8766 * optc-gen.awk: Handle LangEnabledBy.
8767 * opth-gen.awk: Generate declaration for lang-specific functions.
8768 * opt-read.awk: Record lang numbers.
8769 * opt-functions.awk (flag_set_p): Ignore the arguments of flags.
8770 (lang_sanitized_name): New.
8771
e384e6b5
BS
87722012-05-14 Bernd Schmidt <bernds@codesourcery.com>
8773
8774 * attribs.c (decl_attributes): Avoid emitting a warning if
8775 ATTR_FLAG_BUILT_IN.
8776 * doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Use lowercase for rtx
8777 codes. Document meaning of sets inside CALL_INSN_FUNCTION_USAGE.
e384e6b5
BS
8778 * builtin-attrs.def (DEF_ATTR_FOR_STRING): Define. Use it to
8779 define a string "1".
8780 (ATTR_RET1_NOTHROW_NONNULL_LEAF): New attr definition.
8781 * builtins.def (BUILT_IN_MEMCPY, BUILT_IN_MEMMOVE, BUILT_IN_MEMSET,
8782 BUILT_IN_STRCPY): Use it for these functions.
8783 * postreload.c (reload_combine): Deal with SETs inside
8784 CALL_INSN_FUNCTION_USAGE.
8785 * caller-save.c (setup_save_areas, save_call_clobbered_regs):
8786 Look for REG_RETURNED notes and use a cheap restore if possible.
8787 * ira-int.h (struct ira_allocno): New member cheap_calls_crossed_num.
8788 (ALLOCNO_CHEAP_CALLS_CROSSED_NUM): New macro.
8789 * ira-build.c (ira_create_allocno, create_cap_allocno,
8790 propagate_allocno_info, propagate_some_info_from_allocno,
8791 copy_info_to_removed_store_destination, ira_flattening): Handle it.
8792 * ira-lives.c (pseudo_regno_single_word_and_live_p,
8793 find_call_crossed_cheap_reg): New static functions.
8794 (process_bb_node_lives): Look for SETs in CALL_INSN_FUNCTION_USAGE,
8795 and set ALLOCNO_CHEAP_CALLS_CROSSED_NUM if possible. Also make
8796 a REG_RETURNED note in that case.
8797 * ira.c (setup_reg_renumber): Change assert to allow cases where
8798 allocnos only cross calls for which they are cheap to restore.
8799 * ira-costs.c (ira_tune_allocno_costs): Compare
8800 ALLOCNO_CALLS_CROSSED_NUM to ALLOCNO_CHEAP_CALLS_CROSSED_NUM rather
8801 than 0.
8802 * reg-notes.def (REG_RETURNED): New note.
8803 * cse.c (cse_insn): Likewise.
8804 * sched-deps.c (sched_analyze_insn): Likewise.
8805 * expr.c (init_block_move_fn): Set a "fn spec" attribute.
8806 * calls.c (decl_return_flags): New static function.
8807 (expand_call): Generate a SET in CALL_INSN_FUNCTION_USAGE for
8808 functions that return one of their arguments.
e384e6b5
BS
8809 * regcprop.c (struct kill_set_value_data): New.
8810 (kill_set_value): Interpret data as a pointer to such a struct.
8811 Do nothing if the caller wants the register to be ignored.
8812 (copyprop_hardreg_forward_1): Handle SETs in CALL_INSN_FUNCTION_USAGE.
8813
92290a18
RG
88142012-05-14 Richard Guenther <rguenther@suse.de>
8815
8816 PR tree-optimization/53340
8817 * tree-ssa-pre.c (op_valid_in_sets): Fix error in last commit.
8818
412a1d9e
RG
88192012-05-14 Richard Guenther <rguenther@suse.de>
8820
8821 * gimplify.c (gimplify_expr): Remove odd code.
8822
9cbbba28
EB
88232012-05-14 Eric Botcazou <ebotcazou@adacore.com>
8824
8825 * stor-layout.c (bit_from_pos): Distribute conversion to bitsizetype
8826 into a PLUS_EXPR byte offset.
8827
8828 * tree-ssa-pre.c (can_value_number_call): Delete.
8829 (compute_avail): Skip all statements with side effects.
8830 <GIMPLE_CALL>: Skip calls to internal functions.
8831
ef4df353
SB
88322012-05-13 Steven Bosscher <steven@gcc.gnu.org>
8833
8834 * config/pa/pa.md: Use define_c_enum for "unspec" and "unspecv".
8835
95744782
MLI
88362012-05-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
8837
8838 * common.opt (Wtype-limits): Use EnabledBy.
8839
c9423cef
UB
88402012-05-13 Uros Bizjak <ubizjak@gmail.com>
8841
8842 * config/i386/i386.md (*pushtf): Enable for TARGET_SSE.
8843 (pushtf splitter): Ditto.
8844 (movtf): Ditto.
8845 (*movtf_internal): Ditto. Use V4SFmode for !TARGET_SSE2.
8846 (<code>tf2): Enable for TARGET_SSE.
8847 (*absnegtf2_sse): Ditto.
8848 (copysign<mode>3): Enable TFmode for TARGET_SSE.
8849 (copysign<mode>3_const): Ditto.
8850 (copysign<mode>3_var): Ditto.
8851 * config/i386/sse.md (<code>tf3): Enable for TARGET_SSE.
8852 (*andnottf3): Ditto. Use V4SFmode for !TARGET_SSE2.
8853 (*<code>tf3): Ditto.
8854 * config/i386/i386.c (struct builtin_description bdesc_args)
8855 <IX86_BUILTIN_FABSQ>: Enable for TARGET_SSE.
8856 <IX86_BUILTIN_COPYSIGNQ>: Ditto.
8857 (ix86_expand_builtin) <IX86_BUILTIN_FABSQ, IX86_BUILTIN_COPYSIGNQ>:
8858 Emit a normal call if SSE isn't available.
8859
b8dd0894
UB
88602012-05-13 Uros Bizjak <ubizjak@gmail.com>
8861
8862 * config/i386/sse.md (<sse>_andnot<mode>3): Handle
8863 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
8864 (<code><mode>3): Ditto.
8865 (*andnot<mode>3): Ditto.
8866 (*andnottf3): Ditto.
8867 (*<code><mode>3): Ditto.
8868 (<code>tf3): Ditto.
8869
71caddc5
MLI
88702012-05-13 Manuel López-Ibáñez <manu@gcc.gnu.org>
8871
8872 * optc-gen.awk: Error instead of warning for conflicting help.
8873
bf4c7d4a
JM
88742012-05-12 Jason Merrill <jason@redhat.com>
8875
8876 PR debug/53235
8877 * dwarf2out.c (build_local_stub): Prefer DW_AT_signature for
8878 comdat types.
8879
4265801b
EB
88802012-05-12 Eric Botcazou <ebotcazou@adacore.com>
8881
8882 * function.c (requires_stack_frame_p): If the function can throw
8883 non-call exceptions, return true if the insn can throw internally.
8884
66b1156a
PC
88852012-05-12 Paolo Carlini <paolo.carlini@oracle.com>
8886
8887 * doc/generic.texi: Rename TYPE_PTRMEM_P to TYPE_PTRDATAMEM_P.
8888
d2b21f20
UB
88892012-05-12 Uros Bizjak <ubizjak@gmail.com>
8890
8891 * config/alpha/alpha.c (alpha_emit_conditional_branch): Handle
8892 ORDERED and UNORDERED conditions.
8893
835c9db0
RG
88942012-05-11 Richard Guenther <rguenther@suse.de>
8895
8896 * tree-flow.h (referenced_var_check_and_insert): Remove.
8897 (find_new_referenced_vars): Likewise.
8898 * tree-dfa.c (referenced_var_check_and_insert): Make static.
8899 (find_new_referenced_vars_1, find_new_referenced_vars): Remove.
8900 * tree-inline.c (copy_bb): Use find_referenced_vars_in
8901 instead of find_new_referenced_vars.
8902 * gimple-fold.c (gimplify_and_update_call_from_tree): Likewise.
8903
6083578b
RG
89042012-05-11 Richard Guenther <rguenther@suse.de>
8905
8906 * tree-pass.h (pass_rest_of_compilation,
8907 pass_all_optimizations, pass_postreload, pass_all_early_optimizations):
8908 Remove.
8909 * passes.c (pass_all_optimizations, pass_postreload,
8910 pass_all_early_optimizations): Make static.
8911 (pass_rest_of_compilation): Likewise. Make it an RTL_PASS.
8912 * tree-phinodes.c (init_phinodes, fini_phinodes): Remove.
8913 * tree-ssa.c (init_tree_ssa): Do not call init_phinodes.
8914 (delete_tree_ssa): Do not call fini_phinodes.
8915 * tree-flow.h (init_phinodes, fini_phinodes): Remove.
8916
7d5a5747
MLI
89172012-05-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
8918
8919 PR 53063
8920 * doc/options.texi (EnabledBy): Document
8921 * opts.c: Include opts.h and options.h before tm.h.
8922 (finish_options): Do not handle some sub-options here...
6399c0ab
SB
8923 (common_handle_option): ... instead call common_handle_option_auto
8924 here.
7d5a5747
MLI
8925 * optc-gen.awk: Handle EnabledBy.
8926 * opth-gen.awk: Declare common_handle_option_auto.
8927 * common.opt (Wuninitialized): Use EnabledBy. Delete Init.
8928 (Wmaybe-uninitialized): Likewise.
517f1b34
UB
8929 (Wunused-but-set-variable): Likewise.
8930 (Wunused-function): Likewise.
8931 (Wunused-label): Likewise.
8932 (Wunused-value): Likewise.
8933 (Wunused-variable): Likewise.
8934 * opt-read.awk: Create opt_numbers array.
7d5a5747 8935
319e6439
RG
89362012-05-11 Richard Guenther <rguenther@suse.de>
8937
8938 PR tree-optimization/53295
8939 * tree-data-ref.h (stride_of_unit_type_p): Handle non-constant
8940 strides.
8941 * tree-data-ref.c (dr_analyze_innermost): Allow non-constant
8942 strides when analyzing data-references in a loop context.
8943 * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Reject
8944 non-constant strides for now.
8945 (vect_enhance_data_refs_alignment): Ignore data references
8946 that are strided loads.
8947 (vect_analyze_data_ref_access): Handle non-constant strides.
8948 (vect_check_strided_load): Verify the data-reference is a load.
8949 (vect_analyze_data_refs): Restructure to make strided load
8950 support not dependent on gather support.
8951 * tree-vect-stmts.c (vectorizable_load): Avoid useless work
8952 when doing strided or gather loads.
8953 * tree-vect-loop-manip.c (vect_vfa_segment_size): Use
8954 integer_zerop to compare stride with zero.
8955
76a02e42
L
89562012-05-11 H.J. Lu <hongjiu.lu@intel.com>
8957
b8dd0894 8958 * config/i386/driver-i386.c (host_detect_local_cpu): Support RTM.
76a02e42 8959
8fc17ddc
JH
89602012-05-11 Jan Hubicka <jh@suse.cz>
8961
8962 PR bootstrap/53300
8963 * varpool.c (varpool_assemble_decl): Also output constat pool entries
8964 that output_constant_pool missed.
8965
cc90dc84
MX
89662012-05-11 Mingjie Xing <mingjie.xing@gmail.com>
8967
8968 * config/mips/t-vxworks: Change MUTLILIB_EXTRA_OPTS to
8969 MULTILIB_EXTRA_OPTS.
8970
8d463d3a
UB
89712012-05-11 Uros Bizjak <ubizjak@gmail.com>
8972
8973 PR target/53291
8974 * config/i386/i386.md (xtest): Use NE condition in ix86_expand_setcc.
8975
63705578
UB
89762012-05-11 Uros Bizjak <ubizjak@gmail.com>
8977
8978 * config/i386/i386.md (*movti_internal_rex64): Avoid MOVAPS size
8979 optimization for TARGET_AVX.
8980 (*movti_internal_sse): Ditto.
8981 (*movdi_internal_rex64): Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
8982 (*movdi_internal): Ditto.
8983 (*movsi_internal): Ditto.
8984 (*movtf_internal): Avoid MOVAPS size optimization for TARGET_AVX.
8985 (*movdf_internal_rex64): Ditto.
8986 (*movfd_internal): Ditto.
8987 (*movsf_internal): Ditto.
8988 * config/i386/sse.md (mov<mode>): Handle TARGET_SSE_LOAD0_BY_PXOR.
8989
e580d8ee
EB
89902012-05-10 Eric Botcazou <ebotcazou@adacore.com>
8991
8992 * dwarf2out.c (add_byte_size_attribute) <RECORD_TYPE>: Handle variable
8993 reference as size attribute.
8994
7b84aac0
EB
89952012-05-10 Eric Botcazou <ebotcazou@adacore.com>
8996 Tristan Gingold <gingold@adacore.com>
8997
8998 * doc/md.texi (Standard Names): Document probe_stack_address.
8999 * explow.c (emit_stack_probe): Handle probe_stack_address.
9000 * config/ia64/ia64.md (UNSPECV_PROBE_STACK_ADDRESS): New constant.
9001 (UNSPECV_PROBE_STACK_RANGE): Likewise.
9002 (probe_stack_address): New insn.
9003 (probe_stack_range): Likewise.
9004 * config/ia64/ia64.c: Include common/common-target.h.
9005 (ia64_compute_frame_size): Mark r2 and r3 as used if static stack
9006 checking is enabled.
9007 (ia64_emit_probe_stack_range): New function.
9008 (output_probe_stack_range): Likewise.
9009 (ia64_expand_prologue): Invoke ia64_emit_probe_stack_range if static
9010 builtin stack checking is enabled.
9011 (rtx_needs_barrier) <UNSPEC_VOLATILE>: Handle UNSPECV_PROBE_STACK_RANGE
9012 and UNSPECV_PROBE_STACK_ADDRESS.
9013 (unknown_for_bundling_p): New predicate.
9014 (group_barrier_needed): Use important_for_bundling_p.
9015 (ia64_dfa_new_cycle): Use unknown_for_bundling_p.
9016 (issue_nops_and_insn): Likewise.
9017 (bundling): Likewise.
9018 (final_emit_insn_group_barriers): Likewise.
9019 * config/ia64/ia64-protos.h (output_probe_stack_range): Declare.
9020 * config/ia64/hpux.h (STACK_CHECK_STATIC_BUILTIN): Define.
9021 (STACK_CHECK_PROTECT): Likewise.
9022 * config/ia64/linux.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
9023
f1016df4
JH
90242012-05-10 Jan Hubicka <jh@suse.cz>
9025
9026 * ipa-inline.c (update_all_callee_keys): Remove.
9027 (inline_small_functions): Simplify priority updating.
9028
57228a69
JH
90292012-05-10 Jan Hubicka <jh@suse.cz>
9030
9031 * ipa.c (symtab_remove_unreachable_nodes): Fix marking of clones.
9032
04142cc3
JH
90332012-05-10 Jan Hubicka <jh@suse.cz>
9034
9035 * cgraph.h (cgraph_remove_unreachable_nodes): Rename to ...
9036 (symtab_remove_unreachable_nodes): ... this one.
9037 * ipa-cp.c (ipcp_driver): Do not remove unreachable nodes.
9038 * cgraphunit.c (ipa_passes): Update.
9039 * cgraphclones.c (cgraph_materialize_all_clones): Update.
9040 * cgraph.c (cgraph_release_function_body): Only turn initial
9041 into error mark when initial was previously set.
9042 * ipa-inline.c (ipa_inline): Update.
9043 * ipa.c: Include ipa-inline.h
9044 (enqueue_cgraph_node, enqueue_varpool_node): Remove.
9045 (enqueue_node): New function.
9046 (process_references): Update.
9047 (symtab_remove_unreachable_nodes): Cleanup.
9048 * passes.c (execute_todo, execute_one_pass): Update.
9049
e8d7e3e7
VM
90502012-05-10 Vladimir Makarov <vmakarov@redhat.com>
9051
9052 PR rtl-optimization/53125
3af2e3b5 9053 * ira.c (ira): Call find_moveable_pseudos and
e8d7e3e7
VM
9054 move_unallocated_pseudos if only ira_conflicts_p is true.
9055
e338c25c
UB
90562012-05-10 Uros Bizjak <ubizjak@gmail.com>
9057
9058 * config/i386/i386.md (*movoi_internal_avx): Handle
9059 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL and TARGET_SSE_TYPELESS_STORES.
9060 (*movti_internal_rex64): Handle TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL.
9061 (*movti_internal_sse): Ditto.
9062 (*movtf_internal): Ditto.
9063 * config/i386/sse.md (ssePSmode): New mode attribute.
9064 (*move<mode>_internal): Use ssePSmode.
9065 (*<sse>_movu<ssemodesuffix><avxsizesuffix>): Ditto.
9066 (*<sse2>_movdqu<avxsizesuffix>): Ditto.
9067 * config/i386/i386.c (standard_sse_constant_opcode): Do not handle
9068 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL here.
9069
d400d17e
EB
90702012-05-10 Eric Botcazou <ebotcazou@adacore.com>
9071
9072 * gimplify.c (gimplify_decl_expr): For a TYPE_DECL, also gimplify the
9073 DECL_ORIGINAL_TYPE if it is present.
9074
b5ba5188
NC
90752012-05-10 Nick Clifton <nickc@redhat.com>
9076
9077 PR target/53120
9078 * config/m32c/bitops.md (bset_qi): Change operand 2 from having
9079 a "0" constraint to being a (match_dup 0).
9080
8244f252
RG
90812012-05-10 Richard Guenther <rguenther@suse.de>
9082
9083 * stor-layout.c (byte_from_pos): Amend comment.
9084
aca06c90
RO
90852012-05-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9086
9087 * doc/extend.texi (X86 Built-in Functions, __builtin_cpu_init):
9088 Document requirement to call in constructors.
9089
e338c25c 9090 * config/i386/i386.c: Update comments for i386-cpuinfo.c name change.
aca06c90 9091
3ac8781c
RG
90922012-05-10 Richard Guenther <rguenther@suse.de>
9093
9094 * tree.h (TYPE_IS_SIZETYPE): Remove.
9095 * fold-const.c (int_const_binop_1): Remove TYPE_IS_SIZETYPE use.
9096 (extract_muldiv_1): Likewise.
9097 * gimple.c (gtc_visit): Likewise.
9098 (gimple_types_compatible_p): Likewise.
9099 (iterative_hash_canonical_type): Likewise.
9100 (gimple_canonical_types_compatible_p): Likewise.
9101 * gimplify.c (gimplify_one_sizepos): Likewise.
9102 * print-tree.c (print_node): Likewise.
9103 * stor-layout.c (initialize_sizetypes): Do not set TYPE_IS_SIZETYPE.
9104
d21a7b44
UB
91052012-05-09 Uros Bizjak <ubizjak@gmail.com>
9106
9107 PR target/52908
9108 * config/i386/sse.md (vec_widen_smult_hi_v4si): Expand using
9109 xop_pmacsdqh insn pattern instead of xop_mulv2div2di3_high.
9110 (vec_widen_smult_lo_v4si): Expand using xop_pmacsdql insn pattern
9111 instead of xop_mulv2div2di3_low.
9112 (xop_p<macs>dql): Fix vec_select selector.
9113 (xop_p<macs>dqh): Ditto.
9114 (xop_mulv2div2di3_low): Remove insn_and_split pattern.
9115 (xop_mulv2div2di3_high): Ditto.
9116
1b8b126f
MLI
91172012-05-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
9118
9119 PR c++/53289
9120 * diagnostic.h (diagnostic_context): Add last_location.
9121 * diagnostic.c (diagnostic_initialize): Initialize it.
9122 (diagnostic_show_locus): Use it.
9123
c54e7136
MLI
91242012-05-09 Manuel López-Ibáñez <manu@gcc.gnu.org>
9125
517f1b34 9126 * doc/extend.texi (Function Attributes): Point xref to section
c54e7136
MLI
9127 about Pragmas.
9128
0ba511a1
UB
91292012-05-09 Uros Bizjak <ubizjak@gmail.com>
9130
9131 * config/i386/i386.c (*movdf_internal_rex64): Remove
9132 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL handling from asm output code.
9133 Calculate "mode" attribute according to
9134 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL flag.
9135 (*movdf_internal): Ditto.
9136
20f9034b
UB
91372012-05-09 Uros Bizjak <ubizjak@gmail.com>
9138
9139 PR target/44141
9140 * config/i386/i386.c (ix86_expand_vector_move_misalign): Do not handle
9141 128 bit vectors specially for TARGET_AVX. Emit sse2_movupd and
9142 sse_movupd RTXes for TARGET_AVX, TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL
9143 or when optimizing for size.
9144 * config/i386/sse.md (*mov<mode>_internal): Remove
9145 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL handling from asm output code.
9146 Calculate "mode" attribute according to optimize_function_for_size_p
9147 and TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL flag.
9148 (*<sse>_movu<ssemodesuffix><avxsizesuffix>): Choose asm template
9149 depending on the mode of the instruction. Calculate "mode" attribute
9150 according to optimize_function_for_size_p, TARGET_SSE_TYPELESS_STORES
9151 and TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL flags.
9152 (*<sse2>_movdqu<avxsizesuffix>): Ditto.
9153
eac188c5
GJL
91542012-05-09 Georg-Johann Lay <avr@gjlay.de>
9155
9156 PR target/53256
9157 * config/avr/elf.h (ASM_DECLARE_FUNCTION_NAME): Remove.
9158 * config/avr/avr-protos.h (avr_asm_declare_function_name): Remove.
9159 * config/avr/avr.h (struct machine_function): Add attributes_checked_p.
9160 * config/avr/avr.c (avr_asm_declare_function_name): Remove.
9161 (expand_prologue): Move initialization of cfun->machine->is_naked,
9162 is_interrupt, is_signal, is_OS_task, is_OS_main from here to...
9163 (avr_set_current_function): ...this new static function.
9164 (TARGET_SET_CURRENT_FUNCTION): New define.
9165 (avr_function_ok_for_sibcall): Use cfun->machine->is_* instead of
9166 checking attributes of current_function_decl.
9167 (avr_regs_to_save): Ditto.
9168 (signal_function_p): Rename to avr_signal_function_p.
9169 (interrupt_function_p): Rename to avr_interrupt_function_p.
9170
9171 * doc/extend.texi (Function Attributes): Better explanation of
9172 'interrupt' and 'signal' for AVR. Move 'ifunc' down to establish
9173 alphabetical order.
9174
0c910378
MM
91752012-05-09 Michael Matz <matz@suse.de>
9176
9177 PR tree-optimization/53185
9178 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Disable
9179 peeling when we see strided loads.
9180
b0cd199e
MK
91812012-05-09 Matthias Klose <doko@ubuntu.com>
9182
9183 * gcc-ar.c (main): Don't check for execute bits for the plugin.
9184
8875e939
RR
91852012-05-09 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
9186
9187 * tree-ssa-loop-ivopts.c (add_autoinc_candidates, get_address_cost):
9188 Replace use of HAVE_{POST/PRE}_{INCREMENT/DECREMENT} with
9189 USE_{LOAD/STORE}_{PRE/POST}_{INCREMENT/DECREMENT} appropriately.
9190 * config/arm/arm.h (ARM_AUTOINC_VALID_FOR_MODE_P): New.
9191 (USE_LOAD_POST_INCREMENT): Define.
9192 (USE_LOAD_PRE_INCREMENT): Define.
9193 (USE_LOAD_POST_DECREMENT): Define.
9194 (USE_LOAD_PRE_DECREMENT): Define.
9195 (USE_STORE_PRE_DECREMENT): Define.
9196 (USE_STORE_PRE_INCREMENT): Define.
9197 (USE_STORE_POST_DECREMENT): Define.
9198 (USE_STORE_POST_INCREMENT): Define.
9199 (arm_auto_incmodes): Add enumeration.
9200 * config/arm/arm-protos.h (arm_autoinc_modes_ok_p): Declare.
9201 * config/arm/arm.c (arm_autoinc_modes_ok_p): Define.
9202
cc603b40
JJ
92032012-05-09 Jakub Jelinek <jakub@redhat.com>
9204
9205 PR tree-optimization/53226
9206 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Remove
9207 prev and prev_initialized vars, gimple_set_plf (stmt, GF_PLF_1, false)
9208 before processing it and gimple_set_plf (stmt, GF_PLF_1, true) if it
9209 doesn't need to be revisited, look for earliest stmt with
9210 !gimple_plf (stmt, GF_PLF_1) if something changed.
9211
97e574d8
TG
92122012-05-09 Terry Guo <terry.guo@arm.com>
9213
9214 * genmultilib: Update copyright dates.
9215 * doc/fragments.texi: Ditto.
9216
43661dc4
TG
92172012-05-09 Terry Guo <terry.guo@arm.com>
9218
9219 * Makefile.in (s-mlib): Add new argument MULTILIB_REQUIRED.
9220 * genmultilib (MULTILIB_REQUIRED): New.
9221 * doc/fragments.texi: Document the MULTILIB_REQUIRED.
9222
368117e8
RG
92232012-05-09 Richard Guenther <rguenther@suse.de>
9224
9225 * tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
9226 (vect_do_peeling_for_loop_bound): Likewise.
9227 (vect_do_peeling_for_alignment): Likewise.
9228 * tree-vect-loop-manip.c (conservative_cost_threshold): Remove.
9229 (vect_do_peeling_for_loop_bound): Get check_profitability and
9230 threshold as parameters.
9231 (vect_do_peeling_for_alignment): Likewise.
9232 (vect_loop_versioning): Likewise.
9233 * tree-vect-loop.c (vect_transform_loop): Compute check_profitability
9234 and threshold here. Control where to put the check here.
9235
372d6395
RS
92362012-05-09 Richard Sandiford <rdsandiford@googlemail.com>
9237
9238 PR middle-end/53249
9239 * dwarf2out.h (get_address_mode): Move declaration to...
9240 * rtl.h: ...here.
9241 * dwarf2out.c (get_address_mode): Move definition to...
9242 * rtlanal.c: ...here.
9243 * var-tracking.c (get_address_mode): Delete.
9244 * combine.c (find_split_point): Use get_address_mode instead of
9245 targetm.addr_space.address_mode.
9246 * cselib.c (cselib_record_sets): Likewise.
9247 * dse.c (canon_address, record_store): Likewise.
9248 * emit-rtl.c (adjust_address_1, offset_address): Likewise.
9249 * expr.c (move_by_pieces, emit_block_move_via_loop, store_by_pieces)
9250 (store_by_pieces_1, expand_assignment, store_expr, store_constructor)
9251 (expand_expr_real_1): Likewise.
9252 * ifcvt.c (noce_try_cmove_arith): Likewise.
9253 * optabs.c (maybe_legitimize_operand_same_code): Likewise.
9254 * reload.c (find_reloads): Likewise.
9255 * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
9256 * sel-sched-dump.c (debug_mem_addr_value): Likewise.
9257
45d05c5f
MR
92582012-05-09 Maciej W. Rozycki <macro@codesourcery.com>
9259
9260 * config/mips/mips.c (mips16_gp_pseudo_reg): Remove line
9261 information from the instruction produced.
9262
2af27301
RG
92632012-05-09 Richard Guenther <rguenther@suse.de>
9264
9265 * stor-layout.c (bit_from_pos): Document.
9266 (byte_from_pos): Likewise. Optimize.
9267 (pos_from_bit): Likewise.
9268 (normalize_offset): Use pos_from_bit instead of replicating it.
9269
570a374a
AM
92702012-05-09 Alan Modra <amodra@gmail.com>
9271
9272 PR target/53271
9273 * config/rs6000/rs6000.c (gen_frame_set): New function.
9274 (gen_frame_load, gen_frame_store): New functions.
9275 (rs6000_savres_rtx): Use the above.
9276 (rs6000_emit_epilogue, rs6000_emit_prologue): Here too.
9277 Correct mode used for CR2 in save/restore_world patterns.
9278 Don't emit instructions for eh_return frame unwind reg info.
9279
0d6bf48c
JH
92802012-05-08 Jan Hubicka <jh@suse.cz>
9281
9282 * cgraphbuild.c (build_cgraph_edges): Do not finalize vars
9283 with VALUE_EXPR.
9284 * cgraph.h (varpool_can_remove_if_no_refs): Vars with VALUE_EXPR
9285 are removable.
9286 * toplev.c (wrapup_global_declaration_2): Vars with VALUE_EXPR
9287 need to wrapup.
9288 (compile_file): Do not output variables.
9289 * cgraphbuild.c (varpool_finalize_decl): When var is finalized late,
9290 output it.
9291 * langhooks.c: Include timevar.h
9292 (write_global_declarations): Finalize compilation unit after wrapup;
9293 set timevars correctly.
9294 * passes.c (rest_of_decl_compilation): Decls with VALUE_EXPR needs
9295 not to be added to varpool.
9296 * varpool.c (varpool_assemble_decl): Sanity check that we are called
9297 only on cases where it makes sense; skip constant pool and value expr
9298 vars.
9299
36e0c0a5
DM
93002012-05-08 David S. Miller <davem@davemloft.net>
9301
9302 * config/sparc/linux.h (LINK_SPEC): Don't pass "-Y" option.
9303 * config/sparc/linux64.h (LINK_ARCH32_SPEC): Likewise.
9304 * config/sparc/linux64.h (LINK_ARCH64_SPEC): Likewise.
9305
b3c9bb62
RS
93062012-05-08 Richard Sandiford <rdsandiford@googlemail.com>
9307
9308 PR rtl-optimization/53278
9309 * lower-subreg.c (decompose_multiword_subregs): Remove left-over
9310 speed_p code from earlier patch.
9311
ef402c65
OE
93122012-05-08 Oleg Endo <olegendo@gcc.gnu.org>
9313
9314 PR target/51244
9315 * config/sh/sh.md (*branch_true, *branch_false): New insns.
9316
20f9034b 93172012-05-08 Teresa Johnson <tejohnson@google.com>
4e8ee9cb
TJ
9318
9319 * gcov-io.h (__gcov_reset, __gcov_dump): Declare.
9320 * doc/gcov.texi: Add note on using __gcov_reset and __gcov_dump.
9321
66a20fc2
JH
93222012-05-08 Jan Hubicka <jh@suse.cz>
9323
9324 * cgraph.c (cgraph_call_edge_duplication_hooks): Export.
9325 (cgraph_create_node_1): Rename to ...
9326 (cgraph_create_empty_node): ... this one; export.
9327 (cgraph_create_node): Update.
9328 (cgraph_set_call_stmt_including_clones): Move to cgraphclones.c
9329 (cgraph_create_edge_including_clones): Likewise.
9330 (cgraph_find_replacement_node): Likewise.
9331 (cgraph_clone_edge): Likewise.
9332 (cgraph_clone_node): Likewise.
9333 (clone_function_name): Likewise.
9334 (cgraph_create_virtual_clone): Likewise.
9335 (cgraph_remove_node_and_inline_clones): Likewise.
20f9034b 9336 (cgraph_redirect_edge_call_stmt_to_callee): Move here from cgraphunit.c
66a20fc2
JH
9337 * cgraph.h: Reorder declarations so they match file of origin.
9338 (cgraph_create_empty_node): Declare.
9339 * cgraphunit.c (update_call_expr): Move to cgraphclones.c
9340 (cgraph_copy_node_for_versioning): Likewise.
9341 (cgraph_function_versioning): Likewise.
9342 (cgraph_materialize_clone): Likewise.
9343 (cgraph_redirect_edge_call_stmt_to_callee): Likewise.
9344 (cgraph_materialize_all_clones): Likewise.
9345 * cgraphclones.c: New file.
9346 * Makefile.in: Update for cgraphclones.
9347
3f3dcbb3
UB
93482012-05-08 Uros Bizjak <ubizjak@gmail.com>
9349
aedfe0a8 9350 PR target/53176
3f3dcbb3
UB
9351 * config/i386/i386.c (ix86_set_reg_reg_cost): New function.
9352 (ix86_rtx_costs): Handle SET.
9353
bcc708fc
MM
93542012-05-08 Michael Matz <matz@suse.de>
9355
9356 * basic-block.h (struct rtl_bb_info): Remove visited member and
9357 move head_ member to ...
9358 (struct basic_block_def.basic_block_il_dependent): ... the new
9359 member x, replacing but containing old member rtl.
9360 (enum bb_flags): New BB_VISITED flag.
9361 (BB_HEADER, BB_FOOTER): New macros.
9362
9363 * jump.c (mark_all_labels): Adjust.
9364 * cfgcleanup.c (try_optimize_cfg): Adjust.
9365 * cfglayout.c (record_effective_endpoints): Adjust.
9366 (relink_block_chain): Ditto (and don't fiddle with visited).
9367 (fixup_reorder_chain): Adjust.
9368 (fixup_fallthru_exit_predecessor): Ditto.
9369 (cfg_layout_duplicate_bb): Ditto.
9370 * combine.c (update_cfg_for_uncondjump): Adjust.
3f3dcbb3 9371 * bb-reorder.c (struct bbro_basic_block_data_def): Add visited member.
bcc708fc
MM
9372 (bb_visited_trace): New accessor.
9373 (mark_bb_visited): Move in front.
9374 (rotate_loop): Use bb_visited_trace.
9375 (find_traces_1_round): Ditto.
9376 (emit_barrier_after): Ditto.
9377 (copy_bb): Ditto, and initialize visited on resize.
9378 (reorder_basic_blocks): Initize visited member.
9379 (duplicate_computed_gotos): Clear bb flags at start, use
9380 BB_VISITED flags.
9381
9382 * cfgrtl.c (try_redirect_by_replacing_jump): Adjust.
9383 (rtl_verify_flow_info_1): Ditto.
9384 (cfg_layout_split_block): Ditto.
9385 (cfg_layout_delete_block): Ditto.
9386 (cfg_layout_merge_blocks): Ditto.
9387 (init_rtl_bb_info): Adjust and initialize il.x.head_ member.
9388
b3374f14
HPN
93892012-05-08 Hans-Peter Nilsson <hp@axis.com>
9390
9391 PR target/53272
9392 * config/cris/cris.c (cris_normal_notice_update_cc): For TARGET_V32,
9393 when a constant source operand matches an "I" constraint, the "no
9394 CC0 change" applies to a register-destination only, not a
9395 strict_low_part-destination.
9396
ad9fc55a
RG
93972012-05-08 Richard Guenther <rguenther@suse.de>
9398
9399 * fold-const.c (fold_binary_loc): Fold (X * CST1) & CST2
9400 to zero or to (X * CST1) & CST2' when CST1 has trailing zeros.
9401
04d170d2
GJL
94022012-05-08 Georg-Johann Lay <avr@gjlay.de>
9403
9404 * Makefile.in (TEXI_GCC_FILES): Add avr-mmcu.texi.
9405
9406 * doc/avr-mmcu.texi: New auto-generated file.
9407 * doc/invoke.texi (AVR Options): Include avr-mmcu.texi in order
9408 to document all valid -mmcu= arguments.
9409
9410 * config/avr/avr.h (arch_info_s): New struct definition.
9411 * config/avr/avr-devices.c (avr_texinfo): New variable.
9412 * config/avr/gen-avr-mmcu-texi.c: New file.
9413 * config/avr/t-avr: New rules and dependencies to build avr-mmcu.texi.
9414
9c04723a
DC
94152012-05-08 Dehao Chen <dehao@google.com>
9416
99b113f9
DC
9417 * predict.c (find_qualified_ssa_name): New.
9418 (find_ssa_name_in_expr): New.
9419 (find_ssa_name_in_assign_stmt): New.
9420 (is_comparison_with_loop_invariant_p): New.
9421 (is_bound_expr_similar): New.
9422 (predict_iv_comparison): New.
9c04723a
DC
9423 (predict_loops): Add heuristic for loop-nested branches that compare an
9424 induction variable to a loop bound variable.
99b113f9 9425 * predict.def (PRED_LOOP_IV_COMPARE): New macro.
9c04723a 9426
536b0cb7
UB
94272012-05-08 Uros Bizjak <ubizjak@gmail.com>
9428
9429 * config/i386/i386.c (has_dispatch): Use TARGET_BDVER1 and
9430 TARGET_BDVER2 defines where appropriate.
9431
36d21883
EB
94322012-05-07 Eric Botcazou <ebotcazou@adacore.com>
9433
9434 * configure.ac (PLUGIN_LD): Rename into...
9435 (PLUGIN_LD_SUFFIX): ...this and strip the target_alias triplet.
9436 * config.in: Regenerate.
9437 * configure: Likewise.
9438 * collect2.c (main): Set plugin_ld_suffix to PLUGIN_LD_SUFFIX.
9439
b48e22b2
EB
94402012-05-07 Eric Botcazou <ebotcazou@adacore.com>
9441
9442 * tree-dfa.c (get_ref_base_and_extent) <ARRAY_REF>: Do the offset
9443 computation using the precision of the index type.
9444 * gimple-fold.c (fold_const_aggregate_ref_1) <ARRAY_REF>: Likewise.
9445 (fold_array_ctor_reference): Do index computations in the index type.
9446
94472012-05-07 Georg-Johann Lay <avr@gjlay.de>
55796e90
GJL
9448
9449 * config/avr/avr.c (avr_prologue_setup_frame): Fix mode passed
9450 down to plus_constant.
9451 (expand_epilogue): Ditto.
9452
8bb91f49
SB
94532012-05-07 Steven Bosscher <steven@gcc.gnu.org>
9454
9455 * postreload.c (reload_cse_regs): Make static.
9456 * reload.h (reload_cse_regs): Remove prototype.
9457
e220a047
RH
94582012-05-07 Richard Henderson <rth@redhat.com>
9459
9460 * config/alpha/alpha.md (clear_cache): New pattern.
9461
5be1632b
SB
94622012-05-07 Steven Bosscher <steven@gcc.gnu.org>
9463
9464 PR middle-end/53245
9465 * gimplify.c (preprocess_case_label_vec_for_gimple): If low or high
9466 is folded to a type boundary value, verify that the resulting case
9467 label is still a care range.
9468
60197adb
UB
94692012-05-07 Uros Bizjak <ubizjak@gmail.com>
9470
9471 * config/i386/i386.md (ctz<mode>2): Emit rep;bsf
9472 only for TARGET_GENERIC, when not optimizing for size.
9473 (*ffs<mode>_1): Ditto.
9474
198fc9f1
SB
94752012-05-07 Steven Bosscher <steven@gcc.gnu.org>
9476
9477 * tree-cfg.c (verify_gimple_switch): Tighten checks.
9478
7a04f01c
JJ
94792012-05-07 Jakub Jelinek <jakub@redhat.com>
9480
9481 PR tree-optimization/53239
536b0cb7
UB
9482 * tree-vrp.c (get_value_range): Set VR of SSA_NAME_IS_DEFAULT_DEF
9483 of DECL_BY_REFERENCE RESULT_DECL to nonnull.
7a04f01c 9484
fb7c3cc8
RB
94852012-05-07 Richard Guenther <rguenther@suse.de>
9486
9487 PR tree-optimization/53195
9488 * tree-inline.c (setup_one_parameter): Properly add referenced
9489 vars from the parameters new known value.
9490
75647ade
SB
94912012-05-07 Steven Bosscher <steven@gcc.gnu.org>
9492
9493 * config/m68k/m68k.c (m68k_sched_branch_type): Remove.
9494 (sched_branch_type): Remove.
9495 (m68k_sched_md_init_global): Don't allocate it.
9496 (m68k_sched_md_finish_global): Don't free it.
9497 * config/m68k/m68k.h (m68k_sched_branch_type): Remove prototype.
fb7c3cc8
RB
9498 * config/m68k/m68k.md: Set the type of insns using
9499 m68k_sched_branch_type to bcc directly.
75647ade 9500
fe551ce4
RO
95012012-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9502
9503 * config/sol2.c (solaris_override_options): New function.
9504 * config/sol2-protos.h (solaris_override_options): Declare.
9505 * config/sol2.h (SUBTARGET_OVERRIDE_OPTIONS): Define.
9506
1e373390
RG
95072012-05-07 Richard Guenther <rguenther@suse.de>
9508
9509 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Return
9510 whether we failed to compute data dependences.
9511 (loop_prefetch_arrays): Fail if we failed.
9512
19010925
UB
95132012-05-07 Uros Bizjak <ubizjak@gmail.com>
9514 Paolo Bonzini <bonzini@gnu.org>
9515
9516 * config/i386/i386.md (ctz<mode>2): Emit rep;bsf even for !TARGET_BMI.
9517 Emit bsf when optimizing for size.
9518 (*ffs<mode>_1): Ditto.
9519
0345d1dd
OE
95202012-05-07 Oleg Endo <olegendo@gcc.gnu.org>
9521
9522 PR target/53250
9523 * config/sh/sh.c (sh_rtx_costs): Handle SET.
9524
69f088a7
UB
95252012-05-06 Uros Bizjak <ubizjak@gmail.com>
9526
9527 PR target/53227
9528 * config/i386/i386.md (swap<mode>): Rename from *swap<mode>.
9529 (bswapdi2): Split from bswap<mode>2. Use nonnimediate_operand
9530 predicate for operand 1. Force operand 1 to register for TARGET_BSWAP.
9531 (bswapsi2): Ditto.
9532 (*bswapdi2_doubleword): New insn pattern.
9533 (*bswap<mode>2): Rename from *bswap<mode>2_1.
9534
91000c66
RS
95352012-05-06 Richard Sandiford <rdsandiford@googlemail.com>
9536
9537 * config/mips/mips.c (mips_set_reg_reg_piece_cost): New function.
9538 (mips_set_reg_reg_cost): Likewise.
9539 (mips_rtx_costs): Handle SET.
9540
69523a7c
RS
95412012-05-06 Richard Sandiford <rdsandiford@googlemail.com>
9542
9543 * lower-subreg.c (shift_cost): Use set_src_cost, avoiding the SET.
9544 (compute_costs): Likewise for the zero extension. Use set_rtx_cost
9545 to compute the cost of moves. Set the mode of the target register.
9546
0a81f074
RS
95472012-05-05 Richard Sandiford <rdsandiford@googlemail.com>
9548
9549 * rtl.h (plus_constant, plus_constant_mode): Merge into a single
9550 plus_constant function.
9551 * explow.c (plus_constant, plus_constant_mode): Likewise. Assert
9552 that the mode is sensible.
9553 (use_anchored_address, round_push, allocate_dynamic_stack_space)
9554 (probe_stack_range, anti_adjust_stack_and_probe): Update calls to
9555 plus_constant.
9556
9557 * alias.c (canon_rtx): Likewise.
9558 (init_alias_analysis): Likewise.
9559 * builtins.c (expand_builtin_return_addr)
9560 (expand_builtin_setjmp_setup, expand_builtin_longjmp)
9561 (expand_builtin_nonlocal_goto, expand_builtin_update_setjmp_buf)
9562 (expand_builtin_apply_args_1, expand_builtin_apply, expand_movstr)
9563 (expand_builtin_stpcpy): Likewise.
9564 * calls.c (save_fixed_argument_area, restore_fixed_argument_area)
9565 (compute_argument_addresses, internal_arg_pointer_based_exp)
9566 (expand_call, emit_library_call_value_1): Likewise.
9567 * cfgexpand.c (expand_one_stack_var_at, expand_debug_expr): Likewise.
9568 * combine-stack-adj.c (try_apply_stack_adjustment): Likewise.
9569 * combine.c (combine_simplify_rtx, force_to_mode): Likewise.
9570 * cse.c (insert_const_anchor, find_reg_offset_for_const)
9571 (use_related_value, fold_rtx): Likewise.
9572 * cselib.c (cselib_subst_to_values): Likewise.
9573 * dse.c (record_store, check_mem_read_rtx): Likewise.
9574 * dwarf2out.c (rtl_for_decl_location, gen_variable_die): Likewise.
9575 * emit-rtl.c (adjust_address_1): Likewise.
9576 * except.c (sjlj_emit_function_enter)
9577 (expand_builtin_extract_return_addr)
9578 (expand_builtin_frob_return_addr): Likewise.
9579 * expmed.c (expand_divmod): Likewise.
9580 * expr.c (move_by_pieces, store_by_pieces, store_by_pieces_1)
9581 (emit_move_resolve_push, push_block, emit_push_insn, store_expr)
9582 (expand_expr_addr_expr_1, expand_expr_real_1): Likewise.
9583 * function.c (assign_stack_local_1)
9584 (instantiate_virtual_regs_in_rtx): Likewise.
9585 * optabs.c (prepare_cmp_insn): Likewise.
9586 * recog.c (offsettable_address_addr_space_p): Likewise.
9587 * reload.c (find_reloads_address, form_sum)
9588 (find_reloads_subreg_address): Likewise.
9589 * reload1.c (init_reload, eliminate_regs_1)
9590 (eliminate_regs_in_insn): Likewise.
9591 * simplify-rtx.c (simplify_unary_operation_1)
9592 (simplify_binary_operation_1, simplify_plus_minus): Likewise.
9593 * var-tracking.c (compute_cfa_pointer, prepare_call_arguments)
9594 (vt_add_function_parameter): Likewise.
9595
9596 * config/alpha/alpha.h (EH_RETURN_HANDLER_RTX): Likewise.
9597 * config/alpha/vms.h (EH_RETURN_HANDLER_RTX): Likewise.
9598 * config/alpha/alpha.c (alpha_legitimize_address_1)
9599 (get_unaligned_address, alpha_expand_unaligned_load)
9600 (alpha_expand_unaligned_store, alpha_expand_unaligned_load_words)
9601 (alpha_expand_unaligned_store_words, alpha_expand_block_clear)
9602 (alpha_expand_builtin_establish_vms_condition_handler)
9603 (alpha_setup_incoming_varargs, emit_frame_store_1)
9604 (alpha_expand_prologue, alpha_expand_epilogue)
9605 (alpha_use_linkage): Likewise.
9606 * config/alpha/alpha.md: Likewise.
9607
9608 * config/arm/arm.c (arm_trampoline_init, legitimize_pic_address)
9609 (arm_load_pic_register, arm_pic_static_addr, arm_legitimize_address)
9610 (thumb_legitimize_address, arm_gen_load_multiple_1)
9611 (arm_gen_store_multiple_1, arm_gen_multiple_op, gen_ldm_seq)
9612 (gen_stm_seq, gen_const_stm_seq, arm_block_move_unaligned_straight)
9613 (arm_block_move_unaligned_loop, arm_gen_movmemqi, arm_reload_in_hi)
9614 (arm_reload_out_hi, arm_reorg, vfp_emit_fstmd, emit_multi_reg_push)
9615 (emit_sfm, thumb_set_frame_pointer, arm_expand_prologue)
9616 (thumb1_emit_multi_reg_push, thumb1_expand_prologue)
9617 (thumb_expand_movmemqi, arm_set_return_address)
9618 (thumb_set_return_address): Likewise.
9619 * config/arm/arm.md: Likewise.
9620
9621 * config/avr/avr.c (avr_incoming_return_addr_rtx)
9622 (avr_prologue_setup_frame, expand_epilogue)
9623 (avr_const_address_lo16): Likewise.
9624
9625 * config/bfin/bfin.h (EH_RETURN_HANDLER_RTX): Likewise.
9626 * config/bfin/bfin.c (setup_incoming_varargs, bfin_load_pic_reg)
9627 (bfin_expand_prologue, bfin_trampoline_init, bfin_expand_call)
9628 (bfin_output_mi_thunk): Likewise.
9629
9630 * config/c6x/c6x.c (c6x_initialize_trampoline)
9631 (c6x_output_mi_thunk): Likewise.
9632
9633 * config/cr16/cr16.h (EH_RETURN_HANDLER_RTX): Likewise.
9634 * config/cr16/cr16.c (cr16_create_dwarf_for_multi_push): Likewise.
9635
9636 * config/cris/cris.c (cris_return_addr_rtx, cris_split_movdx)
9637 (cris_expand_prologue, cris_expand_epilogue, cris_gen_movem_load)
9638 (cris_emit_movem_store, cris_trampoline_init): Likewise.
9639 * config/cris/cris.md: Likewise.
9640
9641 * config/darwin.c (machopic_indirect_data_reference)
9642 (machopic_legitimize_pic_address): Likewise.
9643
9644 * config/epiphany/epiphany.c (epiphany_emit_save_restore)
9645 (epiphany_expand_prologue, epiphany_expand_epilogue)
9646 (epiphany_trampoline_init): Likewise.
9647 * config/epiphany/epiphany.md: Likewise.
9648
9649 * config/fr30/fr30.c (fr30_move_double): Likewise.
9650
9651 * config/frv/frv.c (frv_dwarf_store, frv_expand_prologue)
9652 (frv_expand_block_move, frv_expand_block_clear, frv_return_addr_rtx)
9653 (frv_index_memory, unspec_got_name, frv_find_base_term)
9654 (frv_output_dwarf_dtprel): Likewise.
9655
9656 * config/h8300/h8300.c (h8300_push_pop, h8300_return_addr_rtx)
9657 (h8300_swap_into_er6, h8300_swap_out_of_er6): Likewise.
9658
9659 * config/i386/i386.h (RETURN_ADDR_RTX): Likewise.
9660 * config/i386/i386.c (setup_incoming_varargs_64)
9661 (setup_incoming_varargs_ms_64, choose_baseaddr)
9662 (ix86_emit_save_reg_using_mov, ix86_adjust_stack_and_probe)
9663 (ix86_emit_probe_stack_range, ix86_expand_prologue)
9664 (ix86_emit_restore_reg_using_pop, ix86_emit_leave)
9665 (ix86_expand_epilogue, legitimize_pic_address, ix86_legitimize_address)
9666 (ix86_split_long_move, ix86_expand_movmem, ix86_expand_setmem)
9667 (ix86_static_chain, ix86_trampoline_init, x86_this_parameter)
9668 (x86_output_mi_thunk): Likewise.
9669 * config/i386/i386.md: Likewise.
9670
9671 * config/ia64/ia64.c (ia64_expand_load_address)
9672 (ia64_expand_tls_address, ia64_expand_move, ia64_split_tmode)
9673 (do_spill, ia64_trampoline_init): Likewise.
9674
9675 * config/iq2000/iq2000.c (iq2000_va_start)
9676 (iq2000_emit_frame_related_store, iq2000_expand_prologue)
9677 (iq2000_expand_eh_return, iq2000_setup_incoming_varargs)
9678 (iq2000_print_operand, iq2000_legitimize_address): Likewise.
9679
9680 * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise.
9681
9682 * config/m32c/m32c.c (m32c_return_addr_rtx)
9683 (m32c_expand_insv): Likewise.
9684
9685 * config/m32r/m32r.c (m32r_setup_incoming_varargs)
9686 (m32r_legitimize_pic_address, m32r_print_operand)
9687 (m32r_print_operand_address): Likewise.
9688
9689 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Likewise.
9690 * config/m68k/m68k.h (RETURN_ADDR_RTX): Likewise.
9691 (EH_RETURN_HANDLER_RTX): Likewise.
9692 * config/m68k/m68k.c (m68k_emit_movem, m68k_expand_prologue)
9693 (m68k_expand_epilogue, legitimize_pic_address)
9694 (m68k_output_mi_thunk): Likewise.
9695 * config/m68k/m68k.md: Likewise.
9696
9697 * config/mcore/mcore.c (mcore_expand_prolog): Likewise.
9698 (mcore_expand_epilog): Likewise.
9699 * config/mcore/mcore.md: Likewise.
9700
9701 * config/mep/mep.c (mep_allocate_initial_value)
9702 (mep_expand_prologue, mep_expand_epilogue): Likewise.
9703
9704 * config/microblaze/microblaze.c (double_memory_operand)
9705 (microblaze_block_move_loop): Likewise.
9706
9707 * config/mips/mips.c (mips_strip_unspec_address, mips_add_offset)
9708 (mips_setup_incoming_varargs, mips_va_start, mips_block_move_loop)
9709 (mips_print_operand, mips16e_save_restore_reg, mips_save_restore_reg)
9710 (mips_expand_prologue, mips_epilogue_set_cfa)
9711 (mips_expand_epilogue): Likewise.
9712 * config/mips/mips.md: Likewise.
9713
9714 * config/mmix/mmix.c (mmix_dynamic_chain_address, mmix_return_addr_rtx)
9715 (mmix_expand_prologue, mmix_expand_epilogue): Likewise.
9716
9717 * config/mn10300/mn10300.c (mn10300_gen_multiple_store)
9718 (mn10300_builtin_saveregs, mn10300_trampoline_init): Likewise.
9719
9720 * config/moxie/moxie.h (INCOMING_RETURN_ADDR_RTX): Likewise.
9721 (EH_RETURN_HANDLER_RTX): Likewise.
9722 * config/moxie/moxie.c (moxie_static_chain): Likewise.
9723
9724 * config/pa/pa.c (legitimize_pic_address, hppa_legitimize_address)
9725 (store_reg, set_reg_plus_d, pa_expand_prologue, load_reg)
9726 (pa_return_addr_rtx, hppa_builtin_saveregs)
9727 (pa_trampoline_init): Likewise.
9728 * config/pa/pa.md: Likewise.
9729
9730 * config/pdp11/pdp11.c (pdp11_expand_epilogue): Likewise.
9731
9732 * config/picochip/picochip.c (picochip_static_chain): Likewise.
9733
9734 * config/rs6000/rs6000.h (RS6000_SAVE_TOC): Likewise.
9735 * config/rs6000/rs6000.c (rs6000_legitimize_address)
9736 (setup_incoming_varargs, print_operand, rs6000_return_addr)
9737 (rs6000_emit_eh_reg_restore, rs6000_emit_probe_stack_range)
9738 (rs6000_emit_epilogue)
9739 (rs6000_machopic_legitimize_pic_address): Likewise.
9740
9741 * config/rx/rx.c (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
9742
9743 * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Likewise.
9744 (DYNAMIC_CHAIN_ADDRESS): Likewise.
9745 * config/s390/s390.c (s390_decompose_address, legitimize_pic_address)
9746 (s390_delegitimize_address, print_operand, annotate_constant_pool_refs)
9747 (replace_constant_pool_ref, s390_return_addr_rtx, s390_back_chain_rtx)
9748 (save_fpr, restore_fpr, save_gprs, restore_gprs, s390_emit_prologue)
9749 (s390_emit_epilogue, s390_function_profiler): Likewise.
9750 * config/s390/s390.md: Likewise.
9751
9752 * config/score/score.c (score_add_offset, score_prologue): Likewise.
9753
9754 * config/sh/sh.c (expand_block_move, push_regs, sh_builtin_saveregs)
9755 (sh_output_mi_thunk): Likewise.
9756 * config/sh/sh.md: Likewise.
9757
9758 * config/sparc/sparc.h (DYNAMIC_CHAIN_ADDRESS, FRAME_ADDR_RTX)
9759 (RETURN_ADDR_RTX, INCOMING_RETURN_ADDR_RTX): Likewise.
9760 * config/sparc/sparc.c (sparc_legitimize_pic_address)
9761 (sparc_emit_probe_stack_range, emit_save_or_restore_regs)
9762 (emit_window_save, sparc_flat_expand_prologue, sparc_struct_value_rtx)
9763 (emit_and_preserve): Likewise.
9764 * config/sparc/sparc.md: Likewise.
9765
9766 * config/spu/spu.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
9767 * config/spu/spu.c (spu_expand_insv, spu_machine_dependent_reorg)
9768 (spu_setup_incoming_varargs, ea_load_store_inline)
9769 (spu_expand_load): Likewise.
9770
9771 * config/stormy16/stormy16.c (xstormy16_expand_prologue)
9772 (combine_bnp): Likewise.
9773
9774 * config/tilegx/tilegx.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
9775 * config/tilegx/tilegx.c (tilegx_setup_incoming_varargs)
9776 (tilegx_expand_unaligned_load, tilegx_trampoline_init): Likewise.
9777
9778 * config/tilepro/tilepro.h (DYNAMIC_CHAIN_ADDRESS): Likewise.
9779 * config/tilepro/tilepro.c (tilepro_setup_incoming_varargs)
9780 (tilepro_expand_unaligned_load, tilepro_trampoline_init): Likewise.
9781
9782 * config/v850/v850.c (expand_prologue, expand_epilogue): Likewise.
9783 * config/v850/v850.md: Likewise.
9784
9785 * config/vax/elf.h (EH_RETURN_STACKADJ_RTX): Likewise.
9786 (EH_RETURN_HANDLER_RTX): Likewise.
9787 * config/vax/vax.h (DYNAMIC_CHAIN_ADDRESS, RETURN_ADDR_RTX): Likewise.
9788 * config/vax/vax.c (vax_add_reg_cfa_offset, vax_expand_prologue)
9789 (print_operand_address, vax_trampoline_init): Likewise.
9790
9791 * config/xtensa/xtensa.c (xtensa_expand_prologue, xtensa_return_addr)
9792 (xtensa_function_value_regno_p): Likewise.
9793
683c600b
AP
97942012-05-04 Andrew Pinski <apinski@cavium.com>
9795
9796 * expr.c (get_def_for_expr_class): New function.
9797 (convert_tree_comp_to_rtx): New function.
9798 (expand_cond_expr_using_cmove): New function.
9799 (expand_expr_real_2 <case COND_EXPR>): Call
9800 expand_cond_expr_using_cmove first and return if it succeeds.
9801 Remove the check for HAVE_conditional_move since we should have
9802 already converted it to a conditional move.
9803 * config/i386/i386.c (ix86_expand_int_movcc): Disallow comparison
9804 modes of DImode for 32bits and TImode.
9805
41723253
SB
98062012-05-04 Steven Bosscher <steven@gcc.gnu.org>
9807
9808 PR other/29442
9809 * read-md.c (fprint_md_ptr_loc, fprint_c_condition): New functions.
9810 (print_md_ptr_loc, print_c_condition): Use them.
9811 * read-md.h (fprint_md_ptr_loc, fprint_c_condition): New prototypes.
9812 * genattrtab.c (attr_file_name, dfa_file_name, latency_file_name,
9813 attr_file, dfa_file, latency_file): New global variables.
9814 (write_attr_valueq, write_attr_set, write_attr_case, write_attr_value,
9815 write_upcase, write_indent, write_length_unit_log, write_test_expr,
9816 write_attr_get, write_insn_cases, write_eligible_delay,
9817 write_const_num_delay_slots): Accept FILE pointer and toss it around.
9818 Update all callers.
9819 (write_header, open_outfile, handle_arg): New funcions.
9820 (make_automaton_attrs): Write prototypes as extern to the output
9821 files.
9822 (main): Use init_rtx_reader_args_cb with handle_arg to take 3 file
9823 names from the command line. Open the output files and write out
9824 internal functions for DFA functions to dfa_file_name, insn latency
9825 functions to latency_file_name, and everything else to attr_file.
9826 * Makefile.in (OBJS): Add insn-dfatab.o and insn-latencytab.o.
9827 (BACKEND): Build libbackend first.
9828 (MOSTLYCLEANFILES): Add insn-dfatab.c and insn-latencytab.c.
9829 (.PRECIOUS): Likewise.
9830 (insn-dfatab.o): New rule.
9831 (insn-latencytab.o): New rule.
9832 (simple_rtl_generated_c): Do not include insn-attrtab.c.
9833 (s-attrtab): New rule.
9834
593dbe11
SB
98352012-05-04 Steven Bosscher <steven@gcc.gnu.org>
9836
9837 * rtl.def (ATTR_FLAG): Remove probability indicating flags.
9838 * genattr.c (main): Remove ATTR_FLAG_likely, ATTR_FLAG_unlikely,
9839 ATTR_FLAG_very_likely, and ATTR_FLAG_very_unlikely.
9840 * reorg.c (get_jump_flags): Do not set the removed flags.
9841
81e7aa8e
SB
9842 * doc/md.texi (attr_flag): Update for abovementioned changes.
9843
cef31f9c
UB
98442012-05-04 Uros Bizjak <ubizjak@gmail.com>
9845
9846 PR target/53228
9847 * config/i386/i386.h (X86_ARCH_CMOV): Rename from X86_ARCH_CMOVE.
9848 (TARGET_CMOV): Rename from TARGET_CMOVE.
9849 (TARGET_CMOVE): New define.
9850 * config/i386/i386.c (ix86_option_override_internal): Use TARGET_CMOV.
9851 Do not set TARGET_CMOVE here.
9852
33d11b97
DS
98532012-05-04 Dodji Seketeli <dodji@redhat.com>
9854
9855 Enable -Wunused-local-typedefs when -Wall or -Wunused is on
9856 * opts.c (finish_options): Activate -Wunused-local-typedefs if
20f9034b 9857 -Wunused is activated.
33d11b97
DS
9858 * doc/invoke.texi: Update blurb of -Wunused-local-typedefs.
9859
1eae36f0
AK
98602012-05-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
9861
9862 * config/s390/s390.md (*movmem_short, *clrmem_short)
9863 (*cmpmem_short): Move the mode check from the insn condition to
9864 the match_scratch.
9865
33018845
UW
98662012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org>
9867
9868 PR tree-optimization/52633
9869 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Swap order of
9870 vect_recog_widen_shift_pattern and vect_recog_over_widening_pattern.
9871 (vect_recog_over_widening_pattern): Remove handling of code that was
9872 already detected as over-widening pattern. Remove special handling
9873 of "unsigned" cases. Instead, support general case of conversion
9874 of the shift result to another type.
9875
9a7a4398
UW
98762012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org>
9877
9878 * tree-vect-patterns.c (vect_single_imm_use): New function.
9879 (vect_recog_widen_mult_pattern): Use it instead of open-coding loop.
9880 (vect_recog_over_widening_pattern): Likewise.
9881 (vect_recog_widen_shift_pattern): Likewise.
9882
f71cf56a
UW
98832012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org>
9884
9885 * tree-vect-patterns.c (vect_same_loop_or_bb_p): New function.
9886 (vect_handle_widen_op_by_const): Use it instead of open-coding test.
9887 (vect_recog_widen_mult_pattern): Likewise.
9888 (vect_operation_fits_smaller_type): Likewise.
9889 (vect_recog_over_widening_pattern): Likewise.
9890 (vect_recog_widen_shift_pattern): Add to vect_same_loop_or_bb_p test.
9891
8bb50e5c
RG
98922012-05-04 Richard Guenther <rguenther@suse.de>
9893
9894 PR lto/50602
9895 * lto-wrapper.c (merge_and_complain): Complain about mismatches
9896 of -freg-struct-return and -fpcc-struct-return.
9897 (run_gcc): Pass through -freg-struct-return and -fpcc-struct-return
9898 from the input file options and ignore those from the link
9899 command line.
9900
efe7068b
RG
99012012-05-04 Richard Guenther <rguenther@suse.de>
9902
9903 PR tree-optimization/53168
9904 * tree-ssa-pre.c (phi_translate_1): Only handle type-punned
9905 memory reads when the result is a constant we can pun.
9906
1d67dde8
RB
99072012-05-04 Richard Guenther <rguenther@suse.de>
9908
9909 * common.opt (flto-report): Do not mark as Optimization.
9910
a2f2d218
EB
99112012-05-04 Eric Botcazou <ebotcazou@adacore.com>
9912
9913 PR target/48496
9914 * recog.c (constrain_operands): If extra constraints are present, also
9915 accept pseudo-registers with equivalent memory locations during reload.
9916
9178a345
OH
99172012-05-04 Olivier Hainque <hainque@adacore.com>
9918
9919 * collect2.c (may_unlink_output_file): New global.
9920 (maybe_unlink): Honor it.
9921 * collect2.h: Add extern for it.
9922 * tlink.c (do_tlink): Set it to true if the link succeeded.
9923
b50ff8bb
OH
99242012-05-04 Olivier Hainque <hainque@adacore.com>
9925
9926 * gcc.c (eval_spec_function): Finalize/restore the current string
9927 obstack state as part of the context push/pop operations.
9928
73292fcf
BC
99292012-05-04 Bin Cheng <bin.cheng@arm.com>
9930
9931 PR rtl-optimization/52804
9932 * reload1.c (reload_reg_reaches_end_p): Check whether successor
9933 reload with type RELOAD_FOR_INPUT_ADDRESS kills reload register
9934 of current one with type RELOAD_FOR_INPADDR_ADDRESS.
9935 Same stands for reloads with type RELOAD_FOR_OUTPUT_ADDRESS and
9936 RELOAD_FOR_OUTADDR_ADDRESS.
9937
24454141
MLI
99382012-05-04 Manuel López-Ibáñez <manu@gcc.gnu.org>
9939
9940 PR c++/24985
9941 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Show caret
9942 for macro expansion.
9943
0c3641b0
MLI
99442012-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org>
9945
9946 * flags.h (flag_permissive): Do not declare.
9947 * diagnostic.c (diagnostic_report_diagnostic): Handle fpermissive
9948 option specially.
9949 * toplev.c (flag_permissive): Do not define.
9950 * c-tree.h (system_header_p): Delete unused.
9951
d333c3eb
DM
99522012-05-03 David S. Miller <davem@davemloft.net>
9953
9954 PR target/52684
9955 * config/sparc/sparc.c (emit_soft_tfmode_libcall): If we pass a
9956 MEM directly into a libcall, mark it's MEM_EXPR as addressable.
9957 (sparc_emit_float_lib_cmp): Likewise.
9958
65d512d1
MM
99592012-05-03 Michael Meissner <meissner@linux.vnet.ibm.com>
9960
9961 PR target/53199
9962 * config/rs6000/rs6000.md (bswapdi splitters): If
9963 -mavoid-indexed-addresses (or -mcpu=power6 which sets it by
9964 default) is used, generate an alternate sequence that does not
9965 depend on using indexed addressing.
9966
88f4f86f
JM
99672012-05-03 Jason Merrill <jason@redhat.com>
9968
9969 * gengtype.c (write_types): Fix warning message.
9970 (write_local): Likewise.
9971
05688bf7
JM
99722012-05-02 Jason Merrill <jason@redhat.com>
9973
9974 * dwarf2out.c (struct external_ref, build_local_stub): New.
9975 (hash_external_ref, external_ref_eq, lookup_external_ref): New.
9976 (optimize_external_refs, optimize_external_refs_1): New.
9977 (change_AT_die_ref): New.
9978 (clone_as_declaration): Add DW_AT_signature when cloning a declaration.
9979 (build_abbrev_table): Take the external refs hashtable.
9980 (output_comp_unit): Get it from optimize_external_refs and pass it in.
9981
f95f017c
JH
99822012-05-03 Jan Hubicka <jh@suse.cz>
9983
9984 PR middle-end/53093
9985 * tree-emutls.c (new_emutls_decl): Fix handling of aliases.
9986
c2b6c111
JH
99872012-05-03 Jan Hubicka <jh@suse.cz>
9988
9989 PR middle-end/53106
9990 * ipa.c (cgraph_remove_unreachable_nodes): Fix handling of clones.
9991
d8acd563
JM
99922012-05-03 Jason Merrill <jason@redhat.com>
9993
9994 * dwarf2out.c (die_struct): Add comdat_type_p flag. Use it instead of
9995 use_debug_types to discriminate the die_id union.
9996 (print_die, assign_symbol_names, copy_decls_walk): Likewise.
9997 (build_abbrev_table, output_die): Likewise.
9998 (prune_unused_types_walk_attribs): Likewise.
9999 (generate_type_signature, copy_declaration_context): Set it.
10000 (remove_child_or_replace_with_skeleton): Set it.
10001 (dwarf2out_start_source_file, dwarf2out_end_source_file): Don't
10002 check use_debug_types.
10003 (dwarf2out_finish): Do break_out_includes after .debug_types.
10004
0fd0752e
JM
100052012-05-03 Jason Merrill <jason@redhat.com>
10006
10007 * dwarf2out.c (modified_type_die): Use scope_die_for.
10008 (gen_type_die_with_usage, dwarf2out_finish): Likewise.
10009 (uses_local_type_r, uses_local_type): New.
10010 (scope_die_for): Keep a type that uses a local type in local scope.
10011 Use get_context_die for namespace and type scope.
10012
63aaf27c
JM
100132012-05-03 Jason Merrill <jason@redhat.com>
10014
10015 * config/i386/i386.c (ix86_code_end): Set DECL_IGNORED_P on the
10016 pc thunk.
10017 * dwarf2out.c (output_aranges): Skip DECL_IGNORED_P functions.
10018 (dwarf2out_finish): Likewise.
10019
644ffefd
MJ
100202012-05-03 Martin Jambor <mjambor@suse.cz>
10021
10022 * builtins.c (get_object_alignment_1): Return whether we can determine
10023 the alignment or conservatively assume byte alignment. Return the
10024 alignment by reference. Use get_pointer_alignment_1 for dereference
10025 alignment.
10026 (get_pointer_alignment_1): Return whether we can determine the
10027 alignment or conservatively assume byte alignment. Return the
10028 alignment by reference. Use get_ptr_info_alignment to get SSA name
10029 alignment.
10030 (get_object_alignment): Update call to get_object_alignment_1.
10031 (get_object_or_type_alignment): Likewise, fall back to type alignment
10032 only when it returned false.
10033 (get_pointer_alignment): Update call to get_pointer_alignment_1.
10034 * fold-const.c (get_pointer_modulus_and_residue): Update call to
10035 get_object_alignment_1.
10036 * ipa-prop.c (ipa_modify_call_arguments): Update call to
10037 get_pointer_alignment_1.
10038 * tree-sra.c (build_ref_for_offset): Likewise, fall back to the type
10039 of MEM_REF or TARGET_MEM_REF only when it returns false.
10040 * tree-ssa-ccp.c (get_value_from_alignment): Update call to
10041 get_object_alignment_1.
10042 (ccp_finalize): Use set_ptr_info_alignment.
10043 * tree.h (get_object_alignment_1): Update declaration.
10044 (get_pointer_alignment_1): Likewise.
10045 * gimple-pretty-print.c (dump_gimple_phi): Use get_ptr_info_alignment.
10046 (dump_gimple_stmt): Likewise.
10047 * tree-flow.h (ptr_info_def): Updated comments of fields align and
10048 misalign.
10049 (get_ptr_info_alignment): Declared.
10050 (mark_ptr_info_alignment_unknown): Likewise.
10051 (set_ptr_info_alignment): Likewise.
10052 (adjust_ptr_info_misalignment): Likewise.
10053 * tree-ssa-address.c (copy_ref_info): Use new access functions to get
10054 and set alignment of SSA names.
10055 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Call
10056 mark_ptr_info_alignment_unknown.
10057 * tree-ssanames.c (get_ptr_info_alignment): New function.
10058 (mark_ptr_info_alignment_unknown): Likewise.
10059 (set_ptr_info_alignment): Likewise.
10060 (adjust_ptr_info_misalignment): Likewise.
10061 (get_ptr_info): Call mark_ptr_info_alignment_unknown.
10062 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref):
10063 Likewise.
10064 (bump_vector_ptr): Likewise.
10065 * tree-vect-stmts.c (create_array_ref): Use set_ptr_info_alignment.
10066 (vectorizable_store): Likewise.
10067 (vectorizable_load): Likewise.
10068
3e8b732e
MM
100692012-05-03 Michael Matz <matz@suse.de>
10070
10071 * basic-block.h (struct rtl_bb_info, struct gimple_bb_info): Move
10072 in front of basic_block_def.
10073 (struct basic_block_def): Make il.gimple the full struct, not a
10074 pointer.
10075 (__assert_gimple_bb_smaller_rtl_bb): Asserting typedef.
10076
cef31f9c 10077 * cfgexpand.c (expand_gimple_basic_block): Clear all il.gimple members.
3e8b732e
MM
10078 * gimple-iterator.c (gimple_stmt_iterator): Don't special case
10079 NULL il.gimple, which can't happen anymore.
10080 * gimple.h (bb_seq): il.gimple can't be NULL.
10081 (bb_seq_add): Ditto.
10082 (set_bb_seq): Adjust.
10083 (gsi_start_bb, gsi_last_bb): Tidy.
10084 * lto-streamer-in.c (make_new_block): Don't zero members that
10085 are zeroed already, don't allocate a gimple_bb_info.
10086 * tree-cfg.c (create_bb): Don't allocate a gimple_bb_info.
10087 (remove_bb): Clear all il.gimple members.
10088 (gimple_verify_flow_info): Adjust for flat il.gimple.
10089 * tree-flow-inline.h (phi_nodes, phi_nodes_ptr, set_phi_nodes): Adjust.
10090
10091 * coretypes.h (const_gimple_seq): Remove typedef.
10092 * gimple.h (gimple_seq_first): Take gimple_seq.
10093 (gimple_seq_first_stmt): Ditto.
10094 (gimple_seq_last): Ditto.
10095 (gimple_seq_last_stmt): Ditto.
10096 (gimple_seq_empty_p): Ditto.
10097
bea966c2
RG
100982012-05-03 Richard Guenther <rguenther@suse.de>
10099
10100 * tree-ssa-pre.c (valid_in_sets): Remove checking of trapping
10101 operations.
cef31f9c 10102 (prune_clobbered_mems): Do it here. Do not uselessly sort expressions.
bea966c2
RG
10103 (compute_avail): Do not add possibly trapping operations to
10104 EXP_GEN if they might not be executed in the block.
10105
1cbdef51
UB
101062012-05-03 Uros Bizjak <ubizjak@gmail.com>
10107
10108 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Remove.
10109
6ab1ab14
SB
101102012-05-03 Steven Bosscher <steven@gcc.gnu.org>
10111
10112 * tree-switch-conversion.c (gen_inbound_check): Free post-dominance
10113 information as early as possible. Update dominance info instead of
10114 discarding it.
10115
19372838
RG
101162012-05-03 Richard Guenther <rguenther@suse.de>
10117
10118 * tree-ssa-pre.c (debug_bitmap_sets_for): New function.
10119 (union_contains_value): Remove.
10120 (vro_valid_in_sets): Likewise.
10121 (op_valid_in_sets): New function.
10122 (valid_in_sets): Use op_valid_in_sets.
10123 (insert_into_preds_of_block): Move dumping ...
10124 (do_regular_insertion): ... here.
10125 (do_partial_partial_insertion): ... and here. Dump that
10126 we've found a partial partial redundancy.
10127 (insert): Dump the current insert iteration.
10128
d5becc11
JJ
101292012-05-03 Jakub Jelinek <jakub@redhat.com>
10130
68d23306
JJ
10131 PR plugins/53126
10132 * gcc-ar.c (main): If GCC_EXEC_PREFIX is set in env,
10133 append program name to it and pass that as first argument
10134 to make_relative_prefix. Always pass standard_libexec_prefix
10135 as last argument to make_relative_prefix. If
10136 make_relative_prefix returns NULL, fall back to
10137 standard_libexec_prefix.
10138
273ccb6d
JJ
10139 PR debug/53174
10140 * tree-predcom.c (remove_stmt): Call reset_debug_uses on stmts being
10141 removed.
10142
d40a89e7
JJ
10143 PR target/53187
10144 * config/arm/arm.c (arm_select_cc_mode): If x has MODE_CC class
10145 mode, return that mode.
10146
d5becc11
JJ
10147 PR target/53194
10148 * config/i386/i386-c.c (ix86_target_macros_internal): Don't
10149 define __ATOMIC_HLE_* macros here.
10150 (ix86_target_macros): But here, using cpp_define_formatted.
10151
9179ed9d
RG
101522012-05-03 Richard Guenther <rguenther@suse.de>
10153
10154 PR tree-optimization/53144
10155 * tree-ssa-sccvn.c (vn_reference_lookup_or_insert_constant_for_pieces):
10156 Rename to ...
10157 (vn_reference_lookup_or_insert_for_pieces): ... this. Properly deal
10158 with SSA name values.
10159 (vn_reference_lookup_3): Adjust callers.
10160
d130f146
GG
101612012-05-03 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
10162
10163 * config/i386/driver-i386.c (host_detect_local_cpu): Reset
10164 has_fma4 for AMD processors with both fma3 and fma4 support.
10165
38d7f26e
KY
101662012-05-03 Kirill Yukhin <kirill.yukhin@intel.com>
10167
10168 PR target/53201
10169 * config/i386/driver-i386.c (host_detect_local_cpu): Add space to
10170 "-mno-hle".
10171
0285a18e
MM
101722012-05-03 Michael Matz <matz@suse.de>
10173
10174 PR bootstrap/53197
1cbdef51 10175 * tree-ssa-dse.c (dse_optimize_stmt): Take pointer to iterator.
0285a18e
MM
10176 (dse_enter_block): Properly iterate the whole sequence even
10177 if the last statement was removed.
10178
daccad6d
SB
101792012-05-02 Steven Bosscher <steven@gcc.gnu.org>
10180
10181 * config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): For pic code,
10182 unset flag_jump_tables.
10183 * stmt.c (expand_case): Remove special flag_pic case conditional
10184 on ASM_OUTPUT_ADDR_DIFF_ELT not being defined.
10185
aefa216b
UW
101862012-05-02 Ulrich Weigand <ulrich.weigand@linaro.org>
10187
10188 * common/config/s390/s390-common.c (s390_option_optimization_table):
10189 Enable -fsched-pressure using -fsched-pressure-algorithm=model by
10190 default when optimizing.
10191
d282264e
MJ
101922012-05-02 Martin Jambor <mjambor@suse.cz>
10193
10194 PR lto/52605
10195 * dwarf2out.c (dwarf2out_decl): Only lookup die representing context
10196 of a variable when the contect is a function.
10197
355a7673
MM
101982012-05-02 Michael Matz <matz@suse.de>
10199
10200 * coretypes.h (gimple_seq, const_gimple_seq): Typedef as gimple.
10201 * gimple.h (struct gimple_seq_node_d, struct gimple_seq_d): Remove.
10202 (const_gimple_seq_node): Remove.
10203 (gimple_seq_node): Typedef as gimple.
10204 (struct gimple_statement_base): Add next and prev members,
10205 adjust all WORD markers in using structs.
10206 (union gimple_statement_d): Link via gsbase.next field for GC and PCH.
10207 (gimple_seq_first, gimple_seq_first_stmt, gimple_seq_last,
10208 gimple_seq_last_stmt): Adjust as gimple_seq, gimple_seq_node and
10209 gimple are the same.
10210 (gimple_seq_set_last, gimple_seq_set_first): Don't allocate
10211 gimple_seq, adjust.
10212 (gimple_init_singleton): New function.
10213 (gsi_start_1, gsi_last_1, gsi_end_p, gsi_one_before_end_p): Adjust.
10214 (gsi_next, gsi_prev): Adjust, handle prev cyclic list correctly.
10215 (gsi_stmt): Adjust.
10216 (gsi_stmt_ptr): Remove.
10217 (enum gimple_alloc_kind): Remove gimple_alloc_kind_seq member.
10218
10219 * gimple-iterator.c (update_bb_for_stmts): Take last parameter
10220 again, adjust for above changes.
10221 (update_call_edge_frequencies): Adjust for above changes.
10222 (gsi_insert_seq_nodes_before): Rewrite for new data structure.
10223 (gsi_insert_seq_nodes_after): Ditto.
10224 (gsi_split_seq_after): Ditto.
10225 (gsi_set_stmt): Ditto.
10226 (gsi_split_seq_before): Ditto.
10227 (gsi_remove): Ditto.
10228 (gsi_insert_seq_before_without_update): Don't free sequence.
10229 (gsi_insert_seq_after_without_update): Ditto.
10230 (gsi_replace): Assert some more invariants.
10231 (gsi_insert_before_without_update, gsi_insert_after_without_update):
10232 Tidy.
10233 (gsi_for_stmt): Don't search for stmt.
10234 (gsi_insert_on_edge_immediate): Tidy.
10235
10236 * gimple.c (gimple_alloc_k): Remove "sequences".
10237 (gimple_seq_cache): Remove.
10238 (gimple_alloc_stat): Make stmt a singleton sequence.
10239 (gimple_seq_alloc, gimple_seq_free): Remove.
10240 (gimple_assign_set_rhs_with_ops_1): Ensure new stmt is a singleton.
10241 (gimple_copy): Ditto.
10242 * gimplify.c (gimplify_cleanup_point_expr): Use gsi_set_stmt,
10243 create iterator from correct sequence.
10244 * tree-phinodes.c (make_phi_node): Make stmt a singleton.
10245
102462012-05-02 Michael Matz <matz@suse.de>
10247
10248 * gimple.h (gimple_stmt_iterator <seq>): Make it be pointer to
10249 gimple_seq.
10250 (gimple_seq_set_last, gimple_seq_set_first): Take pointer to
10251 sequence, lazily allocate it.
10252 (bb_seq_addr): New function.
10253 (gsi_start_1): Rename from gsi_start, but take pointer to sequence.
10254 (gsi_start): Macro to wrap gsi_start_1 taking pointer of argument.
10255 (gsi_none): New function.
10256 (gsi_start_bb): Adjust.
10257 (gsi_last_1): Rename from gsi_last, but take pointer to sequence.
10258 (gsi_last): Macro to wrap gsi_last_1 taking pointer of argument.
10259 (gsi_last_bb): Adjust.
10260 (gsi_seq): Adjust.
10261 * tree-flow-inline.h (phi_nodes_ptr): New function.
10262
1cbdef51 10263 * gimple-iterator.c (gsi_insert_seq_nodes_before): Adjust to
355a7673
MM
10264 datastructure and interface change.
10265 (gsi_insert_seq_before_without_update): Ditto.
10266 (gsi_insert_seq_nodes_after): Ditto.
10267 (gsi_insert_seq_after_without_update): Ditto.
10268 (gsi_split_seq_after): Ditto, don't use gimple_seq_alloc.
10269 (gsi_split_seq_before): Ditto.
10270 (gsi_start_phis): Adjust.
1cbdef51 10271 * tree-vect-loop.c (vect_determine_vectorization_factor): Use gsi_none.
355a7673
MM
10272 (vect_transform_loop): Ditto.
10273 * gimple.c (gimple_seq_add_stmt, gimple_seq_add_seq,
10274 gimple_seq_copy): Don't use gimple_seq_alloc.
10275 * gimplify.c (gimple_seq_add_stmt_without_update): Ditto.
10276 (gimplify_seq_add_seq): Ditto.
10277 * lto-streamer-in.c (make_new_block): Ditto.
10278 * tree-cfg.c (create_bb): Ditto.
10279 * tree-sra.c (initialize_parameter_reductions): Ditto.
10280
102812012-05-02 Michael Matz <matz@suse.de>
10282
10283 * gimple.h (gimple_seq_first, gimple_seq_first_stmt, gimple_seq_last,
10284 gimple_seq_last_stmt, gimple_seq_set_last, gimple_seq_set_first,
10285 gimple_seq_empty_p, gimple_seq_alloc_with_stmt, bb_seq,
10286 set_bb_seq): Move down to after gimple_statement_d definition.
10287
102882012-05-02 Michael Matz <matz@suse.de>
10289
10290 * gimple-fold.c (gimplify_and_update_call_from_tree): Use
10291 gsi_replace_with_seq, instead of inserting itself.
10292 * gimple-iterator.c (gsi_replace_with_seq): New function.
10293 * tree-ssa-forwprop.c (forward_propagate_comparison): Take
10294 iterator instead of statement, advance it.
10295 (ssa_forward_propagate_and_combine): Adjust call to above.
10296
102972012-05-02 Michael Matz <matz@suse.de>
10298
10299 * tree-phinodes.c (add_phi_node_to_bb): Tidy, don't use
10300 gimple_seq_alloc.
10301 * omp-low.c (finalize_task_copyfn): Don't use gimple_seq_alloc.
10302 * tree-nested.c (walk_gimple_omp_for): Ditto.
10303 * trans-mem.c (lower_transaction): Ditto.
10304 * tree-eh.c (do_return_redirection): Ditto.
10305 (do_goto_redirection): Ditto.
10306 (lower_try_finally_switch): Ditto.
10307 * gimplify.c (gimplify_stmt): Ditto.
10308 (gimplify_scan_omp_clauses): Ditto.
10309 (gimplify_omp_for): Ditto.
10310 (gimplify_function_tree): Ditto.
10311 * gimple-fold.c (gimplify_and_update_call_from_tree): Ditto.
10312 * tree-mudflap.c (mf_decl_cache_locals): Ditto.
10313 (mf_build_check_statement_for): Ditto.
10314 (mx_register_decls): Ditto.
10315 * graphite-sese-to-poly.c (remove_invariant_phi): Ditto,
10316 and don't use itertors to append.
10317 (insert_stmts): Ditto.
10318 (insert_out_of_ssa_copy): Ditto.
10319 (insert_out_of_ssa_copy_on_edge): Ditto.
10320
103212012-05-02 Michael Matz <matz@suse.de>
10322
10323 * gimple.h (gimple_bind_body_ptr): New function.
10324 (gimple_bind_body): Use it.
10325 (gimple_catch_handler): Use gimple_catch_handler_ptr.
10326 (gimple_eh_filter_failure_ptr): New function.
10327 (gimple_eh_filter_failure): Use it.
10328 (gimple_eh_else_n_body_ptr): New function.
10329 (gimple_eh_else_n_body): Use it.
10330 (gimple_eh_else_e_body_ptr): New function.
10331 (gimple_eh_else_e_body): Use it.
10332 (gimple_try_eval_ptr): New function.
10333 (gimple_try_eval): Use it.
10334 (gimple_try_cleanup_ptr): New function.
10335 (gimple_try_cleanup): Use it.
10336 (gimple_wce_cleanup_ptr): New function.
10337 (gimple_wce_cleanup): Use it.
10338 (gimple_omp_body_ptr): New function.
10339 (gimple_omp_body): Use it.
10340 (gimple_omp_for_pre_body_ptr): New function.
10341 (gimple_omp_for_pre_body): Use it.
10342 (gimple_transaction_body_ptr): New function.
10343 (gimple_transaction_body): Use it.
10344 (gsi_split_seq_before): Adjust to return nothing and take pointer
10345 to sequence.
10346 (gsi_set_stmt): Declare.
10347 (gsi_replace_with_seq): Declare.
10348 (walk_gimple_seq_mod): Declare.
10349 * function.h (struct function <gimple_body>): Use typedef gimple_seq.
10350
10351 * gimple-iterator.c (gsi_set_stmt): New function.
10352 (gsi_split_seq_before): Return new sequence via pointer argument.
10353 (gsi_replace): Use gsi_set_stmt.
10354
10355 * tree-ssa-loop-im.c (move_computations_stmt): First remove
10356 then insert stmt.
1cbdef51 10357 * tree-complex.c (update_complex_components_on_edge): Don't copy gsi.
355a7673
MM
10358 * tree-phinodes.c (resize_phi_node): Don't resize stmt in-place,
10359 return new stmt.
10360 (reserve_phi_args_for_new_edge): Change call to above,
10361 use gsi_set_stmt.
10362
1cbdef51 10363 * omp-low.c (lower_omp): Change prototype to take pointer to sequence.
355a7673
MM
10364 (lower_rec_input_clauses): Use gimple_seq_add_seq instead of
10365 iterators. Adjust call to lower_omp.
10366 (lower_lastprivate_clauses): Adjust call to lower_omp.
10367 (lower_reduction_clauses): Ditto.
10368 (expand_omp_taskreg): Nullify non-cfg body of child_fn.
10369 (lower_omp_sections): Don't explicitely count sequence length,
10370 nullify lowered bodies earlier, ensure stmts are part of only
10371 one sequence, adjust call to lower_omp.
10372 (lower_omp_single): Ensure stmts are part of only one sequence,
10373 adjust call to lower_omp.
10374 (lower_omp_master): Ditto.
10375 (lower_omp_ordered): Ditto.
10376 (lower_omp_critical): Ditto.
10377 (lower_omp_for): Ditto.
10378 (lower_omp_taskreg): Ditto, tidy.
10379 (lower_omp_1): Adjust calls to lower_omp.
10380 (execute_lower_omp): Ditto.
10381 (lower_omp): Adjust to take pointer to sequence.
10382 (diagnose_sb_2): Use walk_gimple_seq_mod.
10383 (diagnose_omp_structured_block_errors): Ditto and set possibly
10384 changed function body.
10385 * gimple-low.c (lower_function_body): Set function body after
10386 it stabilizes.
10387 (lower_sequence): Adjust to take pointer to sequence.
10388 (lower_omp_directive): Ensure stmt isn't put twice into the
10389 sequence, adjust call to lower_sequence.
10390 (lower_stmt): Adjust calls to lower_sequence.
10391 (lower_gimple_bind): Ditto.
10392 (gimple_try_catch_may_fallthru): Call gsi_start with lvalue.
10393 * tree-nested.c (walk_body): Take pointer to sequence, use
10394 walk_gimple_seq_mod.
1cbdef51 10395 (walk_function): Adjust call to walk_body, set possibly changed body.
355a7673
MM
10396 (walk_gimple_omp_for): Adjust calls to walk_body.
10397 (convert_nonlocal_omp_clauses): Ditto.
10398 (convert_nonlocal_reference_stmt): Ditto.
10399 (convert_local_omp_clauses): Ditto.
10400 (convert_local_reference_stmt): Ditto.
10401 (convert_tramp_reference_stmt): Ditto.
10402 (convert_gimple_call): Ditto.
10403 (convert_nl_goto_reference): Use local iterator copy.
10404 * gimple.c (walk_gimple_seq_mod): Renamed from walk_gimple_seq,
10405 but taking pointer to sequence, ensure gsi_start is called with
10406 callers lvalue.
10407 (walk_gimple_seq): New wrapper around walk_gimple_seq_mod,
10408 asserting that the sequence head didn't change.
10409 (walk_gimple_stmt): Replace all calls to walk_gimple_seq with
10410 walk_gimple_seq_mod.
10411 * trans-mem.c (lower_transaction): Use walk_gimple_seq_mod.
10412 (execute_lower_tm): Ditto, and set possibly changed body.
10413 * tree-eh.c (lower_eh_constructs_1): Take pointer to sequence,
10414 call gsi_start with that lvalue.
10415 (replace_goto_queue_stmt_list): Ditto.
10416 (replace_goto_queue_1): Adjust calls to replace_goto_queue_stmt_list.
10417 (replace_goto_queue): Ditto.
10418 (lower_try_finally_nofallthru): Adjust calls to lower_eh_constructs_1.
10419 (lower_try_finally_onedest): Ditto.
10420 (lower_try_finally_copy): Ditto.
10421 (lower_try_finally_switch): Ditto.
10422 (lower_try_finally): Ditto.
10423 (lower_eh_filter): Ditto.
10424 (lower_eh_must_not_throw): Ditto.
10425 (lower_cleanup): Ditto.
10426 (lower_eh_constructs_2): Ditto.
10427 (lower_catch): Ditto, and ensure gsi_start is called with lvalue.
10428 (lower_eh_constructs): Adjust calls to lower_eh_constructs_1, and
10429 set possibly changed body.
10430 (optimize_double_finally): Call gsi_start with lvalue.
10431
10432 * tree-cfg.c (make_blocks): Adjust call to gsi_split_seq_before.
10433 (gimple_split_block): Ditto.
10434 (gimple_merge_blocks): Use gsi_start_phis.
10435 (move_stmt_r): Use walk_gimple_seq_mod.
10436 * tree-ssa-dse.c (dse_enter_block): Use gsi_last_bb.
10437 * cgraphbuild.c (build_cgraph_edges): Use gsi_start_phis.
10438 (rebuild_cgraph_edges): Ditto.
10439 (cgraph_rebuild_references): Ditto.
10440 * ipa-prop.c (ipa_analyze_params_uses): Ditto.
10441 * tree-inline.c (copy_phis_for_bb): Ditto.
10442 * tree-ssa-dce.c: Ditto.
10443
10444 * cgraphunit.c (cgraph_analyze_function): Use gimple_has_body_p.
10445
5dcfdccd
KY
104462012-05-02 Kirill Yukhin <kirill.yukhin@intel.com>
10447 Andi Kleen <ak@linux.intel.com>
10448
355a7673 10449 * coretypes.h (MEMMODEL_MASK): New.
5dcfdccd
KY
10450 * builtins.c (get_memmodel): Add val. Call target.memmodel_check
10451 and return new variable.
10452 (expand_builtin_atomic_exchange): Mask memmodel values.
10453 (expand_builtin_atomic_compare_exchange): Ditto.
10454 (expand_builtin_atomic_load): Ditto.
10455 (expand_builtin_atomic_store): Ditto.
10456 (expand_builtin_atomic_clear): Ditto.
10457 * doc/extend.texi: Mention port-dependent memory model flags.
10458 * config/i386/cpuid.h (bit_HLE): New.
10459 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
10460 HLE support.
10461 * config/i386/i386-protos.h (ix86_generate_hle_prefix): New.
cef31f9c 10462 * config/i386/i386-c.c (ix86_target_macros_internal): Set HLE defines.
5dcfdccd 10463 (ix86_target_string)<-mhle>: New.
1cbdef51
UB
10464 (ix86_valid_target_attribute_inner_p) <OPT_mhle>: Ditto.
10465 * config/i386/i386.c (ix86_target_string) <OPTION_MASK_ISA_HLE>: New.
10466 (ix86_valid_target_attribute_inner_p) <OPT_mhle>: Ditto.
10467 (ix86_option_override_internal) <PTA_HLE>: New switch, set it
5dcfdccd
KY
10468 enabled for generic, generic64 and core-avx2.
10469 (ix86_print_operand): Generate HLE lock prefixes.
10470 (ix86_memmodel_check): New.
10471 (TARGET_MEMMODEL_CHECK): Ditto.
10472 * config/i386/i386.h (OPTION_ISA_HLE): Ditto.
10473 (IX86_HLE_ACQUIRE): Ditto.
10474 (IX86_HLE_RELEASE): Ditto.
10475 * config/i386/i386.h (ix86_generate_hle_prefix): Ditto.
10476 * config/i386/i386.opt (mhle): Ditto.
10477 * config/i386/sync.md(atomic_compare_and_swap<mode>): Pass
10478 success model to instruction emitter.
10479 (atomic_fetch_add<mode>): Ditto.
10480 (atomic_exchange<mode>): Ditto.
10481 (atomic_add<mode>): Ditto.
10482 (atomic_sub<mode>): Ditto.
10483 (atomic_<code><mode>): Ditto.
10484 (*atomic_compare_and_swap_doubledi_pic): Ditto.
10485 (atomic_compare_and_swap_single<mode>): Define and use argument
10486 for success model.
10487 (atomic_compare_and_swap_double<mode>): Ditto.
10488 * configure.ac: Check if assembler support HLE prefixes.
10489 * configure: Regenerate.
10490 * config.in: Ditto.
10491
68e72840
SB
104922012-05-02 Steven Bosscher <steven@gcc.gnu.org>
10493
10494 PR middle-end/53153
10495 * gimplify.c (preprocess_case_label_vec_for_gimple): New function,
10496 split out from ...
10497 (gimplify_switch_expr): ... here.
10498 * gimple.h (preprocess_case_label_vec_for_gimple): Add prototype.
10499 * tree-ssa-forwprop.c (simplify_gimple_switch_label_vec): New function
10500 to clean up case labels with values outside the index type range.
10501 (simplify_gimple_switch): Call it if something changed.
10502 Remove strange and unnecessary assert.
10503
56099f00
RG
105042012-05-02 Richard Guenther <rguenther@suse.de>
10505
10506 * fold-const.c (div_if_zero_remainder): sizetypes no longer
10507 sign-extend.
10508 (int_const_binop_1): New worker for int_const_binop with
cef31f9c 10509 overflowable parameter. Pass it through to force_fit_type_double.
56099f00
RG
10510 (int_const_binop): Wrap around int_const_binop_1 with overflowable
10511 equal to one.
10512 (size_binop_loc): Call int_const_binop_1 with overflowable equal
10513 to minus one, forcing overflow detection for even unsigned types.
10514 (extract_muldiv_1): Remove bogus TYPE_IS_SIZETYPE special-casing.
10515 (fold_binary_loc): Call try_move_mult_to_index with signed offset.
10516 * stor-layout.c (initialize_sizetypes): sizetypes no longer
10517 sign-extend.
10518 (layout_type): For zero-sized arrays ignore overflow on the
10519 size calculations.
10520 * tree-ssa-ccp.c (bit_value_unop_1): Likewise.
10521 (bit_value_binop_1): Likewise.
10522 * tree.c (double_int_to_tree): Likewise.
10523 (double_int_fits_to_tree_p): Likewise.
10524 (force_fit_type_double): Likewise.
10525 (host_integerp): Likewise.
10526 (int_fits_type_p): Likewise.
10527 * varasm.c (output_constructor_regular_field): Sign-extend the
1cbdef51
UB
10528 field-offset to cater for negative offsets produced by the Ada
10529 frontend.
56099f00
RG
10530 * omp-low.c (extract_omp_for_data): Convert the loop step to
10531 signed for pointer adjustments.
10532
105332012-05-02 Richard Guenther <rguenther@suse.de>
10534
10535 * tree.c (valid_constant_size_p): New function.
10536 * tree.h (valid_constant_size_p): Declare.
10537 * cfgexpand.c (expand_one_var): Adjust check for too large
10538 variables by using valid_constant_size_p.
10539 * varasm.c (assemble_variable): Likewise.
10540
10541 * c-decl.c (grokdeclarator): Properly check for sizes that
10542 cover more than half of the address-space.
10543
6aae324c
JJ
105442012-05-02 Jakub Jelinek <jakub@redhat.com>
10545
795e8869
JJ
10546 PR tree-optimization/53163
10547 * tree-ssa-phiopt.c (cond_if_else_store_replacement): Don't ignore
10548 return value from compute_all_dependences.
10549
6aae324c
JJ
10550 PR rtl-optimization/53160
10551 * ree.c (combine_reaching_defs): Handle the case where cand->insn
10552 has been modified by ree pass already.
10553
a845a7f5
ILT
105542012-05-01 Ian Lance Taylor <iant@google.com>
10555
10556 PR c/37303
10557 * c-decl.c (build_compound_literal): Make the decl readonly if it
10558 an array of a readonly type.
10559 * gimplify.c (gimplify_compound_literal_expr): Add fallback
10560 parameter. Change all callers. If the decl is not addressable
10561 and is not an l-value, make it readonly.
10562
fb99ee9b
BS
105632012-05-01 Bernd Schmidt <bernds@codesourcery.com>
10564
10565 * ira.c (allocated_reg_info_size): New static variable.
10566 (expand_reg_info): Manage it. Call
10567 setup_preferred_alternate_classes_for_new_pseudos.
10568 (ira): Don't do it here. Remove local allocated_reg_info_size,
10569 set the global before calling find_moveable_pseudos.
10570 (find_moveable_pseudos): Call expand_reg_info rather than
10571 resize_reg_info.
10572
e8053cf5
RH
105732012-05-01 Richard Henderson <rth@redhat.com>
10574
10575 * common.opt (fsync-libcalls): New.
10576 * doc/invoke.texi: Document it.
10577 * optabs.c (init_sync_libfuncs): Honor it.
10578
af4ba423
KZ
105792012-05-01 Kenneth Zadeck <zadeck@naturalbridge.com>
10580 Richard Sandiford <r.sandiford@uk.ibm.com>
10581
ecfd6cec 10582 PR rtl-optimization/52543
af4ba423
KZ
10583 * Makefile.in (lower-subreg.o, target-globals.o): Depend on
10584 lower-subreg.h.
10585 * lower-subreg.h: New file.
10586 * target-globals.h (this_target_lower_subreg): Declare.
10587 (target_globals): Add lower_subreg;
10588 (restore_target_globals): Restore this_target_lower_subreg.
10589 * target-globals.c: Include it.
10590 (default_target_globals): Add default_target_lower_subreg.
10591 (save_target_globals): Initialize target_lower_subreg.
10592 * rtl.h (init_lower_subreg): Added declaration.
10593 * toplev.c (backend_init_target): Call initializer for lower-subreg
10594 pass.
10595 * lower-subreg.c (LOG_COSTS, FORCE_LOWERING): New macros.
10596 (default_target_lower_subreg): New variable.
10597 (this_target_lower_subreg): Likewise.
10598 (twice_word_mode, choices): New macros.
10599 (shift_cost, compute_splitting_shift, compute_costs)
10600 (init_lower_subreg): New functions.
10601 (resolve_simple_move): Add speed_p argument. Check choices.
10602 (find_pseudo_copy): Don't check the mode size here.
10603 (resolve_simple_move): Assert the mode size.
10604 (find_decomposable_shift_zext): Add speed_p argument and return
10605 a bool. Check choices.
10606 (resolve_shift_zext): Add comment.
10607 (dump_shift_choices, dump_choices): New functions.
10608 (decompose_multiword_subregs): Dump list of profitable
10609 transformations. Add code to skip non profitable transformations.
10610 Update calls to simple_move and find_decomposable_shift_zext.
10611
90911ab6 106122012-05-01 Ian Bolton <ian.bolton@arm.com>
1cbdef51
UB
10613 Sameera Deshpande <sameera.deshpande@arm.com>
10614 Greta Yorsh <greta.yorsh@arm.com>
90911ab6
IB
10615
10616 * config/arm/arm-protos.h (thumb_unexpanded_epilogue): Rename to...
1cbdef51 10617 (thumb1_unexpanded_epilogue): ...this.
90911ab6 10618 * config/arm/arm.c (thumb_unexpanded_epilogue): Rename to...
1cbdef51 10619 (thumb1_unexpanded_epilogue): ...this.
90911ab6 10620 * config/arm/arm.md (thumb_unexpanded_epilogue): Rename to...
1cbdef51 10621 (thumb1_unexpanded_epilogue): ...this.
90911ab6 10622
6302b84b
RE
106232012-05-01 Richard Earnshaw <rearnsha@arm.com>
10624
10625 * arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_DEFAULT): Avoid ifdef
10626 comparing enumeration values. Update comments.
10627
56ca756c
AM
106282012-05-01 Alan Modra <amodra@gmail.com>
10629
10630 PR target/53038
10631 * config/rs6000/rs6000.c (load_lr_save, restore_saved_lr,
10632 load_cr_save, add_crlr_cfa_restore): New functions.
10633 (rs6000_restore_saved_cr): Rename to..
10634 (restore_saved_cr): ..this. Add cfa_restore notes for cr.
10635 (rs6000_emit_epilogue): Use new functions. Adjust condition
10636 for emitting lr and cr cfa_restore. Emit cfa_restores for fp
10637 regs when using out-of-line restore only when shrink wrapping.
10638
036c0102
UB
106392012-04-30 Uros Bizjak <ubizjak@gmail.com>
10640
10641 PR middle-end/53136
10642 * ipa-prop.c (ipa_print_node_jump_functions): Wrap multiple
10643 calls to cgraph_node_name in xstrdup.
10644 (ipa_make_edge_direct_to_target): Ditto.
10645 * cgraph.c (dump_cgraph_node): Ditto.
10646 * tree-sra.c (convert_callers_for_node): Ditto.
10647 * lto-symtab.c (lto_cgraph_replace_node): Ditto.
10648 * ipa-cp.c (perhaps_add_new_callers): Ditto.
10649 * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Ditto.
10650 (cgraph_materialize_all_clones): Ditto.
10651 * ipa-inline.c (report_inline_failed_reason): Ditto.
10652 (want_early_inline_function_p): Ditto.
10653 (edge_badness): Ditto.
10654 (update_edge_key): Ditto.
10655 (flatten_function): Ditto.
10656 (ipa_inline): Ditto.
1cbdef51 10657 (inline_always_inline_functions): Ditto.
036c0102
UB
10658 (early_inline_small_functions): Ditto.
10659
24b2a15a
UB
106602012-04-30 Uros Bizjak <ubizjak@gmail.com>
10661
10662 PR target/53141
10663 * config/i386/i386.md (*umul<mode><dwi>3_1): Switch places of
10664 constraints 0 and 1.
10665
65d630d4
JH
10666012-04-30 Jan Hubicka <jh@suse.cz>
10667
10668 * cgraph.c (ld_plugin_symbol_resolution_names): Move to symtab.c
10669 (cgraph_asm_nodes, cgraph_asm_last_node): Move to cgraphunit.c
10670 (cgraph_add_to_same_comdat_group): Remove.
10671 (cgraph_add_asm_node): Move to cgraphunit.c.
10672 (cgraph_make_decl_local): Move to symtab.c
10673 (cgraph_make_node_local_1): Update.
10674 (cgraph_can_remove_if_no_direct_calls_and): Update.
10675 (used_from_object_file_p): Update.
10676 (resolution_used_from_other_file_p): Move to symtab.c
10677 (cgraph_used_from_object_file_p): move to symtab.c
10678 (verify_cgraph_node): Verify same comdat groups.
10679 * cgraph.h (cgraph_asm_node): Rename to ...
10680 (asm_node): ... this one.
10681 (cgraph_asm_nodes): Rename to ...
10682 (asm_nodes): ... this one.
10683 (symtab_add_to_same_comdat_group): New function.
10684 (symtab_dissolve_same_comdat_group_list): New function.
10685 (symtab_used_from_object_file_p): Declare.
10686 (symtab_make_decl_local): Declare.
10687 (cgraph_add_to_same_comdat_group): Remove.
10688 (cgraph_add_asm_node): Remove.
10689 (cgraph_used_from_object_file_p, varpool_used_from_object_file_p):
10690 Remove.
10691 (cgraph_finalize_compilation_unit): Rename to ...
10692 (finalize_compilation_unit): ... this one.
10693 (cgraph_optimize): Rename to ....
10694 (compile): ... this one.
10695 (add_asm_node): Declare.
10696 (fixup_same_cpp_alias_visibility): Declare.
10697 (cgraph_make_decl_local): Remove.
10698 (varpool_assemble_pending_decls): Rename to ...
10699 (varpool_output_variables): ... this one.
10700 (varpool_remove_unreferenced_decls): Remove.
10701 * ipa-inline-transform.c (clone_inlined_nodes): Dissolve comdat groups.
10702 (preserve_function_body_p): Make static.
24b2a15a 10703 * toplev.c (compile_file): Update comments; update.
65d630d4
JH
10704 * cgraphunit.c: Update comments.
10705 (cgraph_expand_all_functions): Rename to ...
10706 (expand_all_functions): ... this one; update.
10707 (cgraph_mark_functions_to_output): Rename to ...
10708 (mark_functions_to_output): ... this one; cleanup.
10709 (cgraph_output_pending_asms): Remove prototype.
10710 (asm_nodes, asm_last_node): New static vars.
10711 (cgraph_process_new_functions): Update.
10712 (cgraph_reset_node): Cleanup; add comment.
10713 (cgraph_add_new_function): Update.
10714 (cgraph_output_pending_asms): Rename to ...
10715 (output_asm_statements): ... this one.
10716 (add_asm_node): New function.
10717 (fixup_same_cpp_alias_visibility): New function based on code
10718 in cgraph_analyze_function.
10719 (cgraph_analyze_function): Use it.
10720 (cgraph_order_sort): Update.
10721 (cgraph_output_in_order): Update.
10722 (cgraph_function_versioning): Update.
10723 (cgraph_optimize): Rename to ...
10724 (compile): ... this one; initialize streamer hooks here.
10725 (cgraph_finalize_compilation_unit): Rename to ...
10726 (finalize_compilation_unit): ... this one; do not initialize streamer
10727 hook here.
10728 * lto-streamer-out.c (lto_output_toplevel_asms): Update.
10729 * dwarf2out.c: Update ocmment.
10730 * optimize.c (maybe_clone_body): Use symtab_add_to_same_comdat_group.
10731 * method.c (use_thunk): Likewise.
10732 * semantics.c (maybe_add_lambda_conv_op): Likewise.
24b2a15a 10733 * decl2.c (maybe_emit_vtables): Likewise.
65d630d4
JH
10734 (cp_write_global_declarations): Use finalize_compilation_unit.
10735 * parser.c (cp_parser_asm_definition): Use add_asm_node.
10736 * lto-streamer-in.c (lto_input_toplevel_asms): Use add_asm_node
24b2a15a
UB
10737 * c-decl.c (c_write_global_declarations): Use
10738 finalize_compilation_unit.
65d630d4
JH
10739 * langhooks.c (write_global_declarations): Update.
10740 * ipa.c (cgraph_externally_visible_p): Update.
10741 (dissolve_same_comdat_group_list): Remove.
10742 (function_and_variable_visibility): Update.
10743 * symtab.c: Inlcude lto-streamer.h and rtl.h
10744 (ld_plugin_symbol_resolution_names): New.
10745 (symtab_add_to_same_comdat_group): New.
10746 (symtab_dissolve_same_comdat_group_list): New.
10747 (resolution_used_from_other_file_p): Move here from cgraph.c
10748 (symtab_used_from_object_file_p): New.
10749 (symtab_make_decl_local): New.
10750 * passes.c (register_pass): Update comments.
10751 * c-parser.c (c_parser_asm_definition): Update.
24b2a15a
UB
10752 * varpool.c (varpool_analyze_node): Use
10753 fixup_same_cpp_alias_visibility.
65d630d4
JH
10754 (varpool_remove_unreferenced_decls): Make static.
10755 (varpool_assemble_pending_decls): Rename to ...
10756 (varpool_output_variables): ... this one; call
10757 varpool_remove_unreferenced_decls.
10758 (varpool_used_from_object_file_p): Remove.
10759
7edaa4d2
MG
107602012-04-30 Marc Glisse <marc.glisse@inria.fr>
10761
10762 PR c++/51033
10763 * c-typeck.c (build_array_ref): Call
10764 convert_vector_to_pointer_for_subscript.
10765 * doc/extend.texi (Vector Extensions): Subscripting not just for C.
10766
f45d8c45
UB
107672012-04-30 Uros Bizjak <ubizjak@gmail.com>
10768
10769 * config/i386/i386.md (and<mode>3): Change runtime operand mode checks
10770 to compile-time "mode == <MODE>mode" checks.
10771 (and splitter): Ditto.
10772
a7b8107f
RH
107732012-04-30 Richard Henderson <rth@redhat.com>
10774
10775 * config/arm/arm.md (UNSPEC_LL): New.
10776 * config/arm/sync.md (atomic_loaddi, atomic_loaddi_1): New.
10777 (arm_load_exclusivedi): Use %H0.
10778
85dd5559
JM
107792012-04-30 Jason Merrill <jason@redhat.com>
10780
10781 * dwarf2out.c (comdat_symbol_id): Add const.
10782 (union die_symbol_or_type_node): Add const to die_symbol.
10783 (output_die_symbol, output_die, output_comp_unit): Adjust.
10784
b8fb55d1
AS
107852012-04-30 Andrew Stubbs <ams@codesourcery.com>
10786
10787 * config/arm/arm.md (negdi2): Use gen_negdi2_neon.
10788 * config/arm/neon.md (negdi2_neon): New insn.
10789 Also add splitters for core and NEON registers.
10790
00a3a76a
AS
107912012-04-30 Andrew Stubbs <ams@codesourcery.com>
10792
10793 * config/arm/arm.c (neon_valid_immediate): Allow const_int.
10794 (arm_print_operand): Add 'x' format.
10795 * config/arm/constraints.md (Dn): Allow const_int.
10796 * config/arm/neon.md (neon_mov<mode>): Use VDX to allow DImode.
10797 Use 'x' format to print constants.
10798 * config/arm/predicates.md (imm_for_neon_mov_operand): Allow const_int.
10799 * config/arm/vfp.md (movdi_vfp): Disable for const_int when neon
10800 is enabled.
10801 (movdi_vfp_cortexa8): Likewise.
10802
0d5a9e78 108032012-04-30 Ian Bolton <ian.bolton@arm.com>
84ba0835
RE
10804 Sameera Deshpande <sameera.deshpande@arm.com>
10805 Greta Yorsh <greta.yorsh@arm.com>
5991e156
IB
10806
10807 * config/arm/arm-protos.h (ldm_stm_operation_p): New declaration.
10808 * config/arm/arm.c (ldm_stm_operation_p): New function.
10809 * config/arm/predicates.md (load_multiple_operation): Update predicate.
10810 (store_multiple_operation): Likewise.
10811
fb40241d
IB
10812 * config/arm/arm-protos.h (ldm_stm_operation_p): New parameters.
10813 * config/arm/arm.c (ldm_stm_operation_p): New parameters.
10814 * config/arm/predicates.md (load_multiple_operation): Add arguments.
f45d8c45 10815 (store_multiple_operation): Likewise.
fb40241d 10816
d55d2c84
UB
108172012-04-30 Uros Bizjak <ubizjak@gmail.com>
10818
10819 * config/i386/i386.md (and<mode>3): Expand masking operations with
10820 0xff, 0xffff or 0xffffffff immediates to corresponding zero_extend RTX.
10821 (and splitter): Split to DImode zero_extend RTX for DImode operand[0].
10822
b9c8da34
DS
108232012-04-30 Dodji Seketeli <dodji@redhat.com>
10824
10825 Add -Wvarargs option
10826 * builtins.c (fold_builtin_next_arg): Use OPT_Wvarargs as an
d55d2c84 10827 argument for the various warning_at calls.
b9c8da34
DS
10828 * docs/invoke.texi: Update the documentation.
10829
163fa1eb
DS
108302012-04-30 Dodji Seketeli <dodji@redhat.com>
10831
51fce2d3
DS
10832 Switch -ftrack-macro-expansion=2 on by default.
10833 * docs/cppopts.texi: Adjust for enabling -ftrack-macro-expansion=2
10834 by default.
10835
34c88790
DS
10836 Fix va_start related location
10837 * builtins.c (fold_builtin_next_arg): Unwinds to the first
10838 location in real source code.
10839
70dc395a
DS
10840 Make conversion warnings work on NULL with -ftrack-macro-expansion
10841 * input.h (expansion_point_location_if_in_system_header): Declare
10842 new function.
d55d2c84 10843 * input.c (expansion_point_location_if_in_system_header): Define it.
70dc395a 10844
2d48bdca 10845 Fix -Wuninitialized for -ftrack-macro-expansion
d55d2c84
UB
10846 * tree-ssa.c (warn_uninit): Use the spelling location of the variable
10847 declaration. Use linemap_location_before_p for source locations.
2d48bdca 10848
c4ca1a09
DS
10849 Strip "<built-in>" loc from displayed expansion context
10850 * input.c (expand_location_1): When expanding to spelling location
10851 in a context of a macro expansion, skip reserved system header
10852 locations. Update comments. * tree-diagnostic.c
10853 (maybe_unwind_expanded_macro_loc): Likewise.
10854
7eb918cc
DS
10855 Make expand_location resolve to locus in main source file
10856 * input.c (expand_location_1): New. Takes a parameter to choose
10857 whether to resolve the location to spelling or expansion point.
10858 Was factorized from ...
10859 (expand_location): ... here.
10860 (expand_location_to_spelling_point): New. Implemented in terms of
10861 expand_location_1.
10862 * diagnostic.c (diagnostic_build_prefix): Use the new
10863 expand_location_to_spelling_point instead of expand_location.
10864
163fa1eb
DS
10865 Fix PCH crash on GTYed pointer-to-scalar field of a struct
10866 * gengtype.c (write_types_process_field): Force second argument of
10867 the call to the PCH object hierarchy walker to be 'x'.
10868
bb358f1c
EB
108692012-04-30 Eric Botcazou <ebotcazou@adacore.com>
10870
10871 * config/i386/i386.c (ix86_handle_struct_attribute): Use the proper
10872 predicate to discriminate types.
10873
90137d8f
MLI
108742012-04-30 Manuel López-Ibáñez <manu@gcc.gnu.org>
10875
10876 * doc/invoke.texi (Wmissing-format-attribute): Document as an
10877 alias of Wsuggest-attribute=format.
10878 * c-typeck.c (convert_for_assignment): Replace
10879 Wmissing-format-attribute with Wsuggest-attribute=format.
10880 (digest_init): Likewise.
10881
94ee6979
MLI
108822012-04-29 Manuel López-Ibáñez <manu@gcc.gnu.org>
10883
d55d2c84
UB
10884 * opts.c (finish_options): Do not handle -Wmissing-noreturn here.
10885 * common.opt (Wmissing-noreturn): Alias of
10886 -Wsuggest-attribute=noreturn.
94ee6979 10887
ff2ca1bc
HPN
108882012-04-29 Hans-Peter Nilsson <hp@axis.com>
10889
10890 PR target/53156
10891 * config/cris/cris.md (andqu): New peephole2.
10892 (andu): Tweak head comment.
10893
fa06ad0d
JR
108942012-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
10895 Steven Bosscher <steven@gcc.gnu.org>
10896 Maxim Kuvyrkov <maxim@codesourcery.com>
10897
10898 PR tree-optimization/38785
10899 * common.opt (ftree-partial-pre): New option.
10900 * doc/invoke.texi: Document it.
10901 * opts.c (default_options_table): Initialize flag_tree_partial_pre.
10902 * tree-ssa-pre.c (do_partial_partial_insertion): Insert only if it will
10903 benefit speed path.
10904 (execute_pre): Use flag_tree_partial_pre.
10905
5f5f36f9
JDA
109062012-04-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10907
10908 PR target/52999
10909 * config/pa/pa.c (pa_legitimate_constant_p): Don't put function labels
10910 in constant pool.
10911
20f9034b 109122012-04-27 Ollie Wild <aaw@google.com>
7f5f5f98
OW
10913
10914 * doc/invoke.texi (Wliteral-suffix): Document new option.
10915
11ec770e
TT
109162012-04-27 Tom Tromey <tromey@redhat.com>
10917
10918 * dwarf2out.c (dwarf_stack_op_name): Use get_DW_OP_name.
10919 (dwarf_tag_name): Use get_DW_TAG_name.
10920 (dwarf_attr_name): Use get_DW_AT_name.
10921 (dwarf_form_name): Use get_DW_FORM_name.
10922 * dwarf2cfi.c (dwarf_cfi_name): Use get_DW_CFA_name.
10923
809c929c
PB
109242012-04-27 Paolo Bonzini <bonzini@gnu.org>
10925
d55d2c84
UB
10926 * tree-ssa-phiopt.c (conditional_replacement): Replace PHIs whose
10927 arguments are -1 and 0, by negating the result of the conditional.
809c929c 10928
d5548709
PB
109292012-04-27 Paolo Bonzini <bonzini@gnu.org>
10930
10931 PR target/53138
10932 * config/i386/i386.md (x86_mov<mode>cc_0_m1_neg): Add clobber.
10933
209be553
RG
109342012-04-27 Richard Guenther <rguenther@suse.de>
10935
10936 * tree-flow.h (is_hidden_global_store): Remove.
10937 * tree-ssa-sink.c (is_hidden_global_store): Likewise.
10938 * tree-ssa-alias.h (ref_may_alias_global_p): Declare.
10939 (stmt_may_clobber_global_p): Likewise.
10940 * tree-ssa-alias.c (ref_may_alias_global_p): New function.
10941 (stmt_may_clobber_global_p): Likewise.
10942 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Call
10943 stmt_may_clobber_global_p.
10944 * tree-ssa-dse.c (dse_possible_dead_store_p): Likewise.
10945
886cd84f
SB
109462012-04-27 Steven Bosscher <steven@gcc.gnu.org>
10947
c813039d
SB
10948 * cfg.c (disconnect_src): Do df_mark_solutions_dirty in the right
10949 place.
10950
886cd84f
SB
10951 * tree-switch-conversion.c (struct switch_conv_info): Add range_max,
10952 reorganize some fields and update comments. Rename bit_test_uniq
10953 and bit_test_count to uniq resp. count. Remove bit_test_bb.
10954 (collect_switch_conv_info): New function, collects info about a
10955 GIMPLE_SWITCH into a struct switch_conv_info.
10956 (check_range): Simplify to use pre-recorded info. Fix think-o in
10957 range-branch ratio check.
10958 (check_process_case): Remove function.
10959 (check_all_empty_except_final): New function, verifies that all
10960 non-final basic blocks are empty.
10961 (process_switch): Simplify to use pre-recorded info. Call
10962 collect_switch_conv_info to do that. Assert that degenerate switch
10963 statements have been cleaned up.
10964
07ab2b1b
MG
109652012-04-27 Marc Glisse <marc.glisse@inria.fr>
10966
10967 PR middle-end/27139
10968 * tree-ssa-forwprop.c (combine_conversions): Handle INT->FP->INT.
10969
ae933128
MLI
109702012-04-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
10971
10972 PR c/53130
10973 * c-typeck.c (pop_init_level): Use %qD instead of %qT.
10974
00115921
TV
109752012-04-27 Tom de Vries <tom@codesourcery.com>
10976
10977 PR tree-optimization/51879
10978 * tree-ssa-sccvn.h (struct vn_reference_s): Add result_vdef field.
10979 * tree-ssa-sccvn.c (mark_use_processed): New function, factored out
10980 of ...
10981 (defs_to_varying): ... here. Don't set use_processed.
10982 (visit_reference_op_call): Handle gimple_vdef.
10983 Handle case that lhs is NULL_TREE.
10984 (visit_use): Use mark_use_processed. Handle calls with side-effect
10985 using visit_reference_op_call.
10986
fd59643c
RS
109872012-04-26 Richard Sandiford <richard.sandiford@linaro.org>
10988
10989 * sched-deps.c (fixup_sched_groups): Rename to...
10990 (chain_to_prev_insn): ...this.
10991 (chain_to_prev_insn_p): New function.
10992 (deps_analyze_insn): Use it instead of SCHED_GROUP_P.
10993
7a1aca9c
RS
109942012-04-26 Richard Sandiford <richard.sandiford@linaro.org>
10995
10996 * sched-int.h (_haifa_insn_data): Move priority_status.
10997 Add model_index.
10998 (INSN_MODEL_INDEX): New macro.
10999 * haifa-sched.c (insn_delay): New function.
11000 (sched_regno_pressure_class): Update commentary.
11001 (mark_regno_birth_or_death): Pass the liveness bitmap and
11002 pressure array as arguments, instead of using curr_reg_live and
11003 curr_reg_pressure. Only update the pressure if the bit in the
11004 liveness set has changed.
11005 (initiate_reg_pressure_info): Always trust the live-in set for
11006 SCHED_PRESSURE_MODEL.
11007 (initiate_bb_reg_pressure_info): Update call to
11008 mark_regno_birth_or_death.
11009 (dep_list_size): Take the list as argument.
11010 (calculate_reg_deaths): New function, extracted from...
11011 (setup_insn_reg_pressure_info): ...here.
11012 (MODEL_BAR): New macro.
11013 (model_pressure_data, model_insn_info, model_pressure_limit)
11014 (model_pressure_group): New structures.
11015 (model_schedule, model_worklist, model_insns, model_num_insns)
11016 (model_curr_point, model_before_pressure, model_next_priority):
11017 New variables.
11018 (MODEL_PRESSURE_DATA, MODEL_MAX_PRESSURE, MODEL_REF_PRESSURE)
11019 (MODEL_INSN_INFO, MODEL_INSN): New macros.
11020 (model_index, model_update_limit_points_in_group): New functions.
11021 (model_update_limit_points, model_last_use_except): Likewise.
11022 (model_start_update_pressure, model_update_pressure): Likewise.
11023 (model_recompute, model_spill_cost, model_excess_group_cost): Likewise.
11024 (model_excess_cost, model_dump_pressure_points): Likewise.
11025 (model_set_excess_costs): Likewise.
11026 (rank_for_schedule): Extend SCHED_PRIORITY_WEIGHTED ordering to
11027 SCHED_PRIORITY_MODEL. Use insn_delay. Use the order in the model
11028 schedule as an alternative tie-breaker. Update the call to
11029 dep_list_size.
11030 (ready_sort): Call model_set_excess_costs.
11031 (update_register_pressure): Update call to mark_regno_birth_or_death.
11032 Rely on that function to check liveness rather than doing it here.
11033 (model_classify_pressure, model_order_p, model_add_to_worklist_at)
11034 (model_remove_from_worklist, model_add_to_worklist, model_promote_insn)
11035 (model_add_to_schedule, model_analyze_insns, model_init_pressure_group)
11036 (model_record_pressure, model_record_pressures): New functions.
11037 (model_record_final_pressures, model_add_successors_to_worklist)
11038 (model_promote_predecessors, model_choose_insn): Likewise.
11039 (model_reset_queue_indices, model_dump_pressure_summary): Likewise.
11040 (model_start_schedule, model_finalize_pressure_group): Likewise.
11041 (model_end_schedule): Likewise.
11042 (schedule_insn): Say when we're scheduling the next instruction
11043 in the model schedule.
11044 (schedule_insn): Handle SCHED_PRESSURE_MODEL.
11045 (queue_to_ready): Do not add instructions that are
11046 MAX_SCHED_READY_INSNS beyond the current point of the model schedule.
11047 Always allow the next instruction in the model schedule to be added.
11048 (debug_ready_list): Print the INSN_REG_PRESSURE_EXCESS_COST_CHANGE
11049 and delay for SCHED_PRESSURE_MODEL too.
11050 (prune_ready_list): Extend SCHED_PRIORITY_WEIGHTED handling to
11051 SCHED_PRIORITY_MODEL, but also take the DFA into account.
11052 (schedule_block): Call model_start_schedule and model_end_schedule.
11053 Extend SCHED_PRIORITY_WEIGHTED stall handling to SCHED_PRIORITY_MODEL.
11054 (sched_init): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling
11055 to SCHED_PRESSURE_MODEL, but don't allocate saved_reg_live or
11056 region_ref_regs.
11057 (sched_finish): Update accordingly.
11058 (fix_tick_ready): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling
11059 to SCHED_PRESSURE_MODEL.
11060 (add_jump_dependencies): Update call to dep_list_size.
11061 (haifa_finish_h_i_d): Fix leak of max_reg_pressure.
11062 (haifa_init_insn): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE handling
11063 to SCHED_PRESSURE_MODEL.
11064 * sched-deps.c (init_insn_reg_pressure_info): Likewise, but don't
11065 allocate INSN_MAX_REG_PRESSURE for SCHED_PRESSURE_MODEL.
11066 (sched_analyze_insn): Extend INSN_REG_PRESSURE_EXCESS_COST_CHANGE
11067 handling to SCHED_PRESSURE_MODEL.
11068
60867e8c
RS
110692012-04-26 Richard Sandiford <richard.sandiford@linaro.org>
11070
11071 * common.opt (fsched-pressure-algorithm=): New option.
11072 * flag-types.h (sched_pressure_algorithm): New enum.
11073 * sched-int.h (sched_pressure_p): Replace with...
11074 (sched_pressure): ...this new variable.
11075 * haifa-sched.c (sched_pressure_p): Replace with...
11076 (sched_pressure): ...this new variable.
11077 (sched_regno_pressure_class, rank_for_schedule, ready_sort)
11078 (update_reg_and_insn_max_reg_pressure, schedule_insn)
11079 (debug_ready_list, prune_ready_list, schedule_block, sched_init)
11080 (sched_finish, fix_tick_ready, haifa_init_insn): Update accordingly.
11081 * sched-deps.c (init_insn_reg_pressure_info): Likewise.
11082 (sched_analyze_insn): Likewise.
11083 * sched-rgn.c (schedule_region): Likewise.
11084 * config/m68k/m68k.c (m68k_sched_variable_issue): Likewise.
11085
81c082ec
BS
110862012-04-26 Bernd Schmidt <bernds@codesourcery.com>
11087
11088 * PR middle-end/52997
11089 * ira.c (find_moveable_pseudos): Call resize_reg_info.
11090
e90247f8
BS
11091 PR middle-end/52940
11092 * machmode.h (CLASS_HAS_WIDER_MODES_P): True for MODE_PARTIAL_INT.
11093 * expr.c (convert_move): Honor unsignedp when extending partial int
11094 modes.
11095 * genmodes.c (complete_mode): Don't clear component field of partial
11096 int modes.
11097 (emit_mode_inner): Don't emit it however.
11098 (calc_wider_mode): Partial int modes widen to their component.
11099
afa3ed85
DM
111002012-04-26 David S. Miller <davem@davemloft.net>
11101
851634c7
DM
11102 * config/sparc/niagara4.md: New file.
11103 * config/sparc/sparc.md: Include it.
11104 * config/sparc/sparc.c (niagara4_costs): New processor costs.
11105 (sparc_option_override): Use it.
11106 (sparc_use_sched_lookahead): Return 2 for niagara4.
11107 (sparc_issue_rate): Likewise.
11108
afa3ed85
DM
11109 * config/sparc/sparc.md (attr type): Delete 'fgm_cmp'.
11110 (fpack16_vis, fpackfix_vis, fpack32_vis): Set type to fgm_pack.
11111 (fmul8x16_vis, fmul8x16au_vis, fmul8x16al_vis, fmul8sux16_vis,
d55d2c84 11112 fmul8ulx16_vis, fmuld8sux16_vis, fmuld8ulx16_vis): Set type to fgm_mul.
afa3ed85
DM
11113 (alignaddrsi_vis, alignaddrdi_vis, alignaddrlsi_vis,
11114 alignaddrldi_vis): Set type to gsr.
11115 (pdist_vis, pdistn<mode>_vis): Set type to fgm_pdsit.
11116 (fcmp<code><GCM:gcm_name><P:mode>_vis, cmask8<P:mode>_vis,
11117 cmask16<P:mode>_vis, cmask32<P:mode>_vis, fchksm16_vis,
11118 v<vis3_shift_patname><mode>3, fmean16_vis,
11119 fp<plusminus_insn>64_vis, <vis3_addsub_ss_patname><mode>3,
11120 fucmp<code>8<P:mode>_vis): Set type to fga.
11121 * config/sparc/ultra1_2.md: Remove refrences to fgm_cmp.
11122 * config/sparc/niagara.md: Likewise.
11123 * config/sparc/niagara2.md: Likewise.
11124 * config/sparc/ultra3.md: Likewise, and fix type matching for
11125 us3_ialuX reservation.
11126
b5068425
AK
111272012-04-26 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11128
11129 * reload.c (find_reloads): Change the loop nesting when trying an
11130 alternative with swapped operands.
11131
1d72e96f
MLI
111322012-04-26 Manuel López-Ibáñez <manu@gcc.gnu.org>
11133
11134 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Fix
11135 comment. Delete unused parameter first_exp_point_map.
11136 (virt_loc_aware_diagnostic_finalizer): Update call.
11137
c7121189
MH
111382012-04-26 Michael Hope <michael.hope@linaro.org>
11139 Richard Earnshaw <rearnsha@arm.com>
11140
11141 * config/arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_SOFT_FLOAT): Define.
11142 (GLIBC_DYNAMIC_LINKER_HARD_FLOAT): Define.
11143 (GLIBC_DYNAMIC_LINKER_DEFAULT): Define.
11144 (GLIBC_DYNAMIC_LINKER): Redefine to use the hard float path.
11145
5ddecff9
ST
111462012-04-25 Sriraman Tallam <tmsriram@google.com>
11147
11148 * doc/extend.texi: Document avx2 support.
11149 * config/i386/i386.c (fold_builtin_cpu): Add avx2.
11150
d7173593
HPN
111512012-04-26 Hans-Peter Nilsson <hp@axis.com>
11152
11153 PR target/53120
11154 * config/cris/cris.md ("*andhi_lowpart_v32")
11155 ("*andqi_lowpart_v32"): Change first input-only operand from
11156 a (match_operand ...) to (match_dup 0). Drop alternatives with
11157 const_int-matching constraints for redundancy.
11158 ("*andhi_lowpart_non_v32", "*andqi_lowpart_non_v32"): Ditto. Drop
11159 three-operand alternative.
11160
c1d40097
JJ
111612012-04-25 Jakub Jelinek <jakub@redhat.com>
11162
11163 PR target/53110
11164 * config/i386/i386.md (and<mode>3): For andq $0xffffffff, reg
11165 instead expand it as zero extension.
11166
ff5f00c3
L
111672012-04-25 H.J. Lu <hongjiu.lu@intel.com>
11168
11169 PR debug/52857
d55d2c84 11170 * dwarf2out.c (dbx_reg_number): Assert return value != INVALID_REGNUM.
ff5f00c3 11171
98095aa3
JJ
111722012-04-25 Jakub Jelinek <jakub@redhat.com>
11173
11174 * common.opt (flag_debug_types_section): Default to 0.
11175 (dwarf_version): Default to 4.
11176 (dwarf_record_gcc_switches): Default to 1.
11177 (dwarf_strict): Default to 0.
11178 * toplev.c (process_options): Don't handle dwarf_strict
11179 or dwarf_version here.
11180 * config/vxworks.c (vxworks_override_options): Don't
11181 test whether dwarf_strict or dwarf_version are negative,
11182 instead test !global_options_set.x_dwarf_*.
11183 * config/darwin.c (darwin_override_options): Default to
11184 dwarf_version 2.
11185 * doc/invoke.texi: Note that -gdwarf-4, -grecord-gcc-switches
11186 and -fno-debug-types-section are now the default.
11187
9c8305f8
JH
111882012-04-25 Jan Hubicka <jh@suse.cz>
11189
11190 * cgraphunit.c: Update toplevel comment.
11191 (tree_rest_of_compilation): Merge into cgraph_expand_function.
11192 (cgraph_analyze_function): Make static.
11193 (cgraph_decide_is_function_needed): Make static.
11194 (cgraph_add_new_function): Use expand_function instead of
11195 rest_of_compilation.
11196 (clone_of_p, verify_edge_count_and_frequency, cgraph_debug_gimple_stmt,
11197 verify_edge_corresponds_to_fndecl, verify_cgraph_node, verify_cgraph):
11198 Move to cgraph.c
11199 (cgraph_inline_p): Remove.
11200 (cgraph_preserve_function_body_p): Move to ipa-inline-transform.
11201 (init_cgraph): Add comment.
11202 * cgraphbuild.c (record_reference, mark_address, mark_load,
11203 mark_store): Do not call analyze_expr hook.
11204 * cgraph.c: Update toplevel comment.
11205 (clone_of_p, verify_edge_count_and_frequency, cgraph_debug_gimple_stmt,
11206 verify_edge_corresponds_to_fndecl, verify_cgraph_node, verify_cgraph):
11207 Move fere from cgraphunit.c
11208 (cgraph_mark_force_output_node): Move to cgraph.h
11209 * cgraph.h: Reorder so the comments match the function placement.
11210 (cgraph_analyze_function, cgraph_decide_is_function_needed): Remove.
11211 (cgraph_mark_force_output_node): Move here from cgraph.c
11212 * tree.c (free_lang_data): Do not clear analyze_expr hook.
11213 * ipa-inline-transform.c (preserve_function_body_p): New function.
11214 (inline_transform): Update.
11215 * langhooks.c (lhd_callgraph_analyze_expr): Remove.
11216 * langhooks.h (lang_hooks_for_callgraph): Remove.
11217 (lang_hooks): Remove callgraph.
11218 * tree-inline.c (expand_call_inline): Do not use cgraph_inline_p.
11219 * varpool.c: Remove out of date comment.
11220 * langhooks-def.h (lhd_callgraph_analyze_expr): Remove.
11221 (LANG_HOOKS_CALLGRAPH_ANALYZE_EXPR): Remove.
11222
838ff415
JH
112232012-04-25 Jan Hubicka <jh@suse.cz>
11224
d55d2c84
UB
11225 PR middle-end/53089
11226 * cgraphunit.c (referred_to_p): Move ahead in file to avoid
11227 forward declaration.
838ff415
JH
11228 (cgraph_finalize_function): Finalize them here.
11229 * symtab.c (dump_symtab): Dump ctors and dtors.
11230
0ea62d93
JJ
112312012-04-25 Jakub Jelinek <jakub@redhat.com>
11232
f1cc9589
JJ
11233 PR middle-end/52979
11234 * stor-layout.c (get_best_mode): Don't return mode with bitsize
11235 larger than maxbits. Don't compute maxbits modulo align.
11236 Also check that unit bytes long store at bitpos / unit * unit
11237 doesn't affect bits beyond bitregion_end.
11238 * expmed.c (store_bit_field_1): Avoid trying insv if OP_MODE MEM
d55d2c84 11239 would not fit into bitregion_start ... bitregion_end + 1 bit region.
f1cc9589
JJ
11240 (store_split_bit_field): Decrease unit close to end of bitregion_end
11241 if access is restricted in order to avoid mutual recursion.
11242
0ea62d93
JJ
11243 PR tree-optimization/53058
11244 * double-int.h (double_int_max_value, double_int_min_value): New
11245 prototypes.
11246 * double-int.c (double_int_max_value, double_int_min_value): New
11247 functions.
d55d2c84
UB
11248 * tree-vrp.c (register_edge_assert_for_2): Compare mask for LE_EXPR
11249 or GT_EXPR with double_int_max_value instead of double_int_mask.
0ea62d93 11250
d68d56b5
RG
112512012-04-25 Richard Guenther <rguenther@suse.de>
11252
11253 * tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
11254 * tree-vect-loop.c (vect_transform_loop): Adjust.
11255 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): Record
11256 the maximum number of iterations for the epilogue loop.
d55d2c84 11257 (vect_loop_versioning): Remove case re-using the peeled epilogue loop.
d68d56b5 11258
fdce1719
JJ
112592012-04-25 Jakub Jelinek <jakub@redhat.com>
11260
11261 PR c/52880
11262 * c-typeck.c (set_nonincremental_init,
11263 set_nonincremental_init_from_string): Pass true instead of false
11264 as IMPLICIT to add_pending_init.
11265
32397f22
MLI
112662012-04-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
11267
11268 * c-typeck.c (pop_init_level): Improve diagnostics.
11269
ad1d9a50
UB
112702012-04-25 Uros Bizjak <ubizjak@gmail.com>
11271
11272 * compare-elim.c (try_eliminate_compare): Also handle operands with
11273 implicit extensions.
11274
b427dd7a
AM
112752012-04-25 Alan Modra <amodra@gmail.com>
11276
11277 * config/rs6000/rs6000 (SAVE_INLINE_VRS, REST_INLINE_VRS,
11278 V_SAVE_INLINE, SAVRES_LR, SAVRES_SAVE, SAVRES_REG,
11279 SAVRES_GPR, SAVRES_FPR, SAVRES_VR): Define.
11280 (no_global_regs_above): Delete.
11281 (no_global_regs): New function.
11282 (rs6000_savres_strategy): Handle vector regs. Use proper lr_save_p
11283 value for load multiple test.
11284 (savres_routine_syms): Increase size.
11285 (rs6000_savres_routine_name, rs6000_savres_routine_sym,
11286 ptr_regno_for_savres, rs6000_emit_savres_rtx): Pass in int selector
11287 rather than a number of boolean flags. Update all callers.
11288 (rs6000_savres_routine_name): Generate vector save/restore names.
11289 (rs6000_savres_routine_sym): Handle vector regs. Delete forward decl.
11290 (ptr_regno_for_savres, rs6000_emit_savres_rtx): Likewise.
11291 (rs6000_emit_prologue): Delete saving_FPRs_inline, saving_GPRs_inline
11292 and using_store_multiple. Expand uses. Don't always use r11 as
11293 frame reg when needed for out-of-line saves. Set up initial offset
11294 for out-of-line vector saves when buying stack frame. Handle pointer
11295 reg setup for out-of-line fp save. Emit call to out-of-line vector
11296 save function. Choose r11 or r12 for vrsave reg when available for
11297 better scheduling.
11298 (rs6000_output_function_prologue): Don't emit .extern for ELF.
11299 (rs6000_emit_epilogue): Choose a better frame reg when restoring
11300 from back-chain to suit out-of-line vector restore functions. Emit
11301 call to out-of-line vector restore function. Adjust register used
11302 for cr restore. Tweak pointer register setup for gpr restore.
11303 * config/rs6000/rs6000.h (FIRST_SAVED_GP_REGNO): Take into account
11304 FIXED_R13.
11305 * config/rs6000/sysv4.h (FP_SAVE_INLINE, GP_SAVE_INLINE): Simplify.
11306 (V_SAVE_INLINE): Define.
11307 * config/rs6000/altivec.md (save_vregs_*, restore_vregs_*): New insns.
11308
1bf7c2a7
AM
113092012-04-25 Alan Modra <amodra@gmail.com>
11310
11311 * config/rs6000/rs6000.c (rs6000_savres_strategy): Allow
11312 out-of-line save/restore for large frames. Don't disable
11313 out-of-line saves on ABI_AIX when using static chain reg.
11314 (rs6000_emit_prologue): Adjust cr_save_regno on ABI_AIX to not
11315 clobber static chain reg, and tweak for out-of-line gpr saves
11316 that use r1.
11317
c344e265
AM
113182012-04-25 Alan Modra <amodra@gmail.com>
11319
11320 * config/rs6000/rs6000.c (START_USE, END_USE, NOT_INUSE): Define.
11321 (rs6000_emit_prologue): Use the above to catch register overlap.
11322
544055ae
AM
113232012-04-25 Alan Modra <amodra@gmail.com>
11324
11325 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete forward
11326 decl. Move logic selecting update reg to callers. Update all callers.
11327 (rs6000_emit_allocate_stack): Add copy_off param.
11328 (emit_frame_save): Don't handle reg+reg addressing.
11329 (ptr_regno_for_savres): New function, extracted from..
11330 (rs6000_emit_savres_rtx): ..here. Add lr_offset param.
11331 (rs6000_emit_prologue): Generate frame_ptr_rtx as we need it.
11332 Set frame_reg_rtx to r11 whenever r11 is needed, and merge
11333 frame offset adjustment for out-of-line save with copy from sp.
11334 Simplify condition controlling whether cr is saved early or
11335 late. Use ptr_regno_for_savres to verify correct reg is set
11336 up for out-of-line saves. Pass the actual pointer reg used to
11337 rs6000_emit_savres_rtx so rtl matches insns in out-of-line
11338 function. Rearrange spe vars so code is similar to that
11339 elsewhere in this function. Don't update frame_off when spe
11340 save code will restore r11. Use emit_frame_save for spe and
11341 gpr saves. Consolidate darwin out-of-line gpr setup with that
11342 for other abis. Don't assume frame_offset is zero and frame
11343 reg is sp when setting up altivec reg saves, and calculate
11344 exact offset requirement.
11345 (rs6000_emit_epilogue): Use HOST_WIDE_INT for frame_off. Tidy
11346 spe restore code. Consolidate darwin out-of-line gpr setup
11347 with that for other abis.
11348
471df90f
AM
113492012-04-25 Alan Modra <amodra@gmail.com>
11350
11351 * config/rs6000/rs6000.c (rs6000_frame_related): Don't emit a
11352 REG_FRAME_RELATED_EXPR note when the instruction exactly matches
11353 the replacement.
11354 (emit_frame_save): Delete frame_ptr param. Rename total_size to
11355 frame_reg_to_sp.
11356 (rs6000_emit_prologue): Add sp_off. Update rs6000_frame_related
11357 and emit_frame_save calls. Cope with possibly missing note.
11358
792317cc
ST
113592012-04-24 Sriraman Tallam <tmsriram@google.com>
11360
11361 * config/i386/i386.c (build_processor_model_struct): New function.
11362 (make_var_decl): New function.
11363 (fold_builtin_cpu): New function.
11364 (ix86_fold_builtin): New function.
11365 (make_cpu_type_builtin): New function.
11366 (ix86_init_platform_type_builtins): New function.
11367 (ix86_expand_builtin): Expand new builtins by folding them.
11368 (ix86_init_builtins): Make new builtins to detect CPU type.
11369 (TARGET_FOLD_BUILTIN): New macro.
11370 (IX86_BUILTIN_CPU_INIT): New enum value.
11371 (IX86_BUILTIN_CPU_IS): New enum value.
11372 (IX86_BUILTIN_CPU_SUPPORTS): New enum value.
11373 * config/i386/i386-builtin-types.def: New function type.
11374 * testsuite/gcc.target/builtin_target.c: New testcase.
11375 * doc/extend.texi: Document builtins.
11376
7a9cf7e9
OH
113772012-04-24 Olivier Hainque <hainque@adacore.com>
11378
11379 * common.opt (gdwarf-): Initialize dwarf_version to -1 instead of 2.
11380 * toplev.c (process_options): Default to dwarf_version 2.
11381 * config/vxworks.c (vxworks_override_options): Default to strict-dwarf
11382 and dwarf_version 2.
11383
21e41715
MLI
113842012-04-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
11385
11386 * tree-pretty-print.h (default_tree_printer): Do not declare.
11387 * tree-diagnostic.c: Include tree-pretty-print.h, tree-pass.h and
11388 intl.h.
11389 (default_tree_diagnostic_starter): Make static.
11390 (default_tree_printer): Move to here. Make static.
11391 (tree_diagnostics_defaults): New.
11392 * tree-diagnostic.h (default_tree_diagnostic_starter): Do not declare.
11393 * tree.c (free_lang_data): Use tree_diagnostics_defaults.
11394 * toplev.c: Do not include tree-pass.h.
11395 (default_tree_printer): Move from here.
11396 (general_init): Use tree_diagnostics_defaults.
11397
3eab78f4
CF
113982012-04-24 Chao-ying Fu <fu@mips.com>
11399
11400 * config.gcc (mips64*-*-linux*): Append mips/linux-common.h to tm_file.
11401 (mips*-*-linux*): Append mips/linux-common.h to tm_file.
11402 * config/mips/gnu-user.h
11403 (SUBTARGET_CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC directly.
11404 (GNU_USER_TARGET_LINK_SPEC): New define.
11405 (LINK_SPEC): Use GNU_USER_TARGET_LINK_SPEC.
11406 (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC directly.
11407 (GNU_USER_TARGET_MATHFILE_SPEC): New define.
11408 (ENDFILE_SPEC): Use GNU_USER_TARGET_MATHFILE_SPEC and
11409 GNU_USER_TARGET_ENDFILE_SPEC.
11410 * config/mips/gnu-user64.h (LIB_SPEC): Remove.
11411 (GNU_USER_TARGET_LINK_SPEC): New define.
11412 (LINK_SPEC): Use GNU_USER_TARGET_LINK_SPEC.
11413 * config/mips/linux-common.h: New file.
11414
24d5b351
BS
114152012-04-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11416
11417 PR target/47197
11418 * config/rs6000/rs6000-c.c (fully_fold_convert): New function.
11419 (altivec_build_resolved_builtin): Call fully_fold_convert.
11420
59d9ade4
GJL
114212012-04-24 Georg-Johann Lay <avr@gjlay.de>
11422
11423 PR target/53065
11424 * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): New hook define.
11425
46b380a2
RG
114262012-04-24 Richard Guenther <rguenther@suse.de>
11427
11428 PR tree-optimization/53085
11429 * tree-ssa-pre.c (eliminate): Do not eliminate volatile redundant
11430 stores.
11431
05232ff6
RB
114322012-04-24 Richard Guenther <rguenther@suse.de>
11433
11434 * tree-if-conv.c (main_tree_if_conversion): Move bb under
11435 ENABLE_CHECKING.
11436
114372012-04-24 Jim Meyering <meyering@redhat.com>
57f10fe5
JM
11438
11439 * genattrtab.c (gen_attr): Avoid NULL-deref after diagnosing
11440 absence of an define_enum call.
11441
7d5a99f4
RG
114422012-04-24 Richard Guenther <rguenther@suse.de>
11443
11444 * tree-vect-loop-manip.c (vect_do_peeling_for_loop_bound): If
11445 the epilogue loop is not re-used as unvectorized version
11446 record the its maximum number of iterations.
11447
8eddb625
AP
114482012-04-24 Andrew Pinski <apinski@cavium.com>
11449
11450 * tree-ssa-forwprop.c (simplify_bitwise_binary):
11451 Don't directly use def1/def2.
11452
e1b435ad
RG
114532012-04-24 Richard Guenther <rguenther@suse.de>
11454
11455 PR tree-optimization/53098
11456 * tree-vect-loop.c (vect_analyze_loop_operations): Fixup
11457 comparison sign.
11458
a1e179f5
AP
114592012-04-24 Andrew Pinski <apinski@cavium.com>
11460
11461 PR tree-opt/33512
11462 * tree-ssa-forwprop.c (defcodefor_name): New function.
11463 (simplify_bitwise_binary): Use defcodefor_name instead of manually
11464 Simplify "( X | Y) & X" to X and "( X & Y) | X" to X.
11465 Simplify "(~X | Y) & X" to "X & Y" and
11466 "(~X & Y) | X" to "X | Y".
11467
57ac4c34
AK
114682012-04-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
11469
11470 * recog.c (insn_invalid_p): Add IN_GROUP parameter and use
11471 validate_change to add clobbers if IN_GROUP is nonzero.
11472 (verify_changes): Call insn_invalid_p with IN_GROUP set to true.
11473 * recog.h (insn_invalid_p): Add IN_GROUP parameter to function
11474 prototype.
11475 * gcse.c (process_insert_insn): Call insn_invalid_p with IN_GROUP
11476 set to false.
11477 * config/s390/s390.c (insn_invalid_p): Likewise.
11478
06edd772
JJ
114792012-04-24 Jakub Jelinek <jakub@redhat.com>
11480
dd0a516f 11481 PR middle-end/53084
ad1d9a50 11482 * varasm.c (compute_reloc_for_constant): Handle ADDR_EXPR of MEM_REF.
dd0a516f
JJ
11483 (output_addressed_constants): Likewise.
11484
06edd772
JJ
11485 PR middle-end/52999
11486 * varasm.c (get_section): Don't ICE for section conflicts with
11487 built-in section kinds.
11488
5e0cea66
DD
114892012-04-23 DJ Delorie <dj@redhat.com>
11490
11491 * config/s390/s390.h (LINK_SPEC): Remove, no longer needed.
11492 (LIBSTDCXX): Change to CPP2.
11493
eefdb8e6
L
114942012-04-23 H.J. Lu <hongjiu.lu@intel.com>
11495
11496 PR bootstrap/52878
11497 * opth-gen.awk: Check if MASK_ and TARGET_ macros are defined for
11498 extra_masks.
11499
025735b7
UB
115002012-04-23 Uros Bizjak <ubizjak@gmail.com>
11501
11502 * config/i386/i386.md (*add<mode>_2): Add r/r/0 alternative.
11503 (*addsi_2_zext): Ditto.
11504 (*add<mode>_3): Ditto.
11505 (*addsi_3_zext): Ditto.
11506 (*add<mode>_5): Ditto.
11507
24fc7360
AP
115082012-04-23 Andrew Pinski <apinski@cavium.com>
11509
11510 * tree-ssa-forwprop.c (simplify_bitwise_binary): Simplify (A & B) OP0
11511 (C & B) to (A OP0) & B.
11512
e9d68de9
MJ
115132012-04-23 Martin Jambor <mjambor@suse.cz>
11514
11515 * expr.c (expand_expr_real_1): Remove setting parent's alias set for
11516 temporaries created for a bitfield (reverting revision 122014).
11517
f7a06a98
RG
115182012-04-23 Richard Guenther <rguenther@suse.de>
11519
11520 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Gimplify
11521 the condition using is_gimple_condexpr and avoid the not necessary
11522 boolification.
11523 (set_prologue_iterations): Likewise.
11524 (vect_loop_versioning): Likewise.
11525
c6542175
RG
115262012-04-23 Richard Guenther <rguenther@suse.de>
11527
11528 PR tree-optimization/53070
11529 * tree-if-conv.c (combine_blocks): Free predicates in all blocks.
11530 (main_tree_if_conversion): Verify we succeeded in that.
11531
93a18a70
JH
115322012-04-23 Jan Hubicka <jh@suse.cz>
11533
11534 * lto-symtab.c (lto_cgraph_replace_node): Do not call
11535 mark_reahcable_node.
11536 * cgraph.c (cgraph_remove_node): Do not clear reachable.
11537 (cgraph_mark_reachable_node): Remove.
11538 (cgraph_mark_force_output_node): Do not set reachable.
11539 (dump_cgraph_node): Do not dump reachable.
11540 (cgraph_create_virtual_clone): Do not set reachable.
11541 * cgraph.h (cgraph_node): Remove reachable flag.
11542 (varpool_node): Remove reachable flag.
11543 (cgraph_mark_if_needed): Remove.
11544 (cgraph_mark_reachable_node): Remove.
025735b7 11545 * tree-emutls.c (ipa_lower_emutls): Do not check reachable.
93a18a70
JH
11546 * cgraphunit.c (cgraph_finalize_function): Do not mark node as
11547 reachable.
11548 (cgraph_add_new_function): Likewise.
11549 (cgraph_mark_if_needed): Remove.
11550 (cgraph_analyze_function): Do not set target as reachable.
025735b7
UB
11551 (process_function_and_variable_attributes): Do not care about
11552 dllexport.
93a18a70
JH
11553 (cgraph_analyze_functions): Do not set reachable flags.
11554 (cgraph_mark_functions_to_output): Do not check reachability.
11555 (cgraph_copy_node_for_versioning): Do not set reachable flag.
11556 (dbxout_expand_expr): Update.
11557 * c-decl.c (merge_decls): Do not track changed externs.
11558 * ipa.c: Include pointer-set.h
11559 (enqueue_cgraph_node): Use reachable pointer set.
11560 (process_references): Likewise.
11561 (cgraph_remove_unreachable_nodes): Likewise.
025735b7
UB
11562 (whole_program_function_and_variable_visibility): Do not recompute
11563 reachable.
93a18a70
JH
11564 * trans-mem.c (ipa_tm_execute): Do not check reachable flag.
11565
da4343c3
GJL
115662012-04-23 Georg-Johann Lay <avr@gjlay.de>
11567
11568 * doc/extend.texi (AVR Named Address Spaces): Fix typos.
11569
54b9f838
RB
115702012-04-23 Richard Guenther <rguenther@suse.de>
11571
11572 PR c/53060
11573 * c-typeck.c (build_binary_op): Fix typo.
11574
e6a21dd2
JJ
115752012-04-23 Jakub Jelinek <jakub@redhat.com>
11576
11577 PR tree-optimizations/52891
11578 * tree-vect-patterns.c (adjust_bool_pattern): Use
11579 build_nonstandard_type even if rhs1 has unsigned INTEGER_TYPE,
11580 but with non-standard precision.
11581
837a549b
JH
115822012-04-22 Jan Hubicka <jh@suse.cz>
11583
54b9f838
RB
11584 * tree-ssa-loop-ivopts.c (expr_invariant_in_loop_p): Bail out at NULL
11585 tree refs.
837a549b 11586
66058468
JH
115872012-04-22 Jan Hubicka <jh@suse.cz>
11588
11589 * lto-symtab.c (lto_varpool_replace_node): Do not merge needed flags.
11590 * cgraphbuild.c (record_reference, record_type_list, mark_address,
11591 mark_load, mark_store): Do not mark varpool nodes as needed.
11592 * cgraph.c (cgraph_new_nodes): Remove.
11593 (cgraph_create_function_alias): Do not mark nodes as reachable.
11594 (cgraph_add_thunk): Likewise.
11595 (cgraph_mark_reachable_node): Do not manage the queue.
11596 * cgraph.h (cgraph_node): Remove next_needed.
11597 (varpool_nodes_queue): Remove next_needed and prev_needed.
11598 (x_cgraph_nodes_queue, x_cgraph_nodes_queue, cgraph_new_nodes): Remove.
11599 (cgraph_new_nodes): Declare.
11600 (x_varpool_nodes_queue, varpool_nodes_queue); Remove.
11601 (varpool_analyze_pending_decls): Remove.
11602 (varpool_analyze_node): New.
11603 (varpool_mark_needed_node): Remove.
11604 (varpool_first_variable, varpool_next_variable): New inlines.
025735b7
UB
11605 (varpool_first_static_initializer, varpool_next_static_initializer):
11606 Update.
66058468
JH
11607 (FOR_EACH_STATIC_VARIABLE): Remove unused walker.
11608 (varpool_first_defined_variable): New inline.
11609 (varpool_next_defined_variable): New inline
11610 (FOR_EACH_VARIABLE): Reimplement.
11611 (FOR_EACH_DEFINED_VARIABLE): Reimplement.
11612 * toplev.c (wrapup_global_declaration_2): Use analyzed instead of
11613 needed flag.
11614 * cgraphunit.c (cgraph_new_nodes): Declare here.
11615 (enqueue_node): New function.
11616 (cgraph_process_new_functions): update for new
11617 node set; when constructing cgraph enqueue node for processing.
11618 (cgraph_add_new_function): Use new node set.
11619 (process_function_and_variable_attributes): Do not set varpool needed
11620 flags.
11621 (referred_to_p): New function.
11622 (varpool_finalize_decl): Move here from varpool.c; enqueue needed node
11623 when varpool is in construction.
11624 (cgraph_analyze_functions): Rewrite.
11625 (cgraph_expand_all_functions): Update.
025735b7
UB
11626 (cgraph_output_in_order): Do not analyze pending decls; do not set
11627 needed flags.
66058468 11628 (cgraph_optimize): Do not analyze pending decls.
025735b7
UB
11629 * lto-cgraph.c (input_varpool_node): Clear analyzed flag for objects
11630 in other partition; do not mark node as needed.
66058468
JH
11631 * dwarf2out.c (reference_to_unused): Use analyzed flag.
11632 (premark_types_used_by_global_vars_helper): Likewise.
11633 * ipa.c (process_references): Do not call varpool_mark_needed_node.
11634 (cgraph_remove_unreachable_nodes): Do not rely on varpool and
11635 cgrpah queues.
11636 (function_and_variable_visibility): Do not mark node as needed.
11637 (whole_program_function_and_variable_visibility): Likewise.
11638 * Makefile.in (gt-varpool.h): No longer needed.
11639 * passes.c (execute_one_pass, execute_ipa_pass_list): Update.
11640 (ipa_write_summaries): Do not use needed flag.
11641 * varpool.c: Do not include gt-varpool.h
11642 (x_varpool_nodes_queue, x_varpool_last_needed_node,
11643 x_varpool_last_needed_node, x_varpool_first_unanalyzed_node,
11644 x_varpool_first_unanalyzed_node, varpool_assembled_nodes_queue):
11645 Remove.
11646 (varpool_remove_node): Do not update the lists.
11647 (dump_varpool_node): Do not dump needed flag.
11648 (varpool_enqueue_needed_node): Remove.
11649 (varpool_mark_needed_node): Remove.
11650 (varpool_reset_queue): Remove.
11651 (varpool_finalize_decl): Move to cgraphunit.c
11652 (varpool_analyze_node): New functions based on former
11653 varpool_analyze_pending_decls.
11654 (varpool_analyze_pending_decls): Remove.
11655 (varpool_assemble_decl): Do not update the lists.
11656 (enqueue_node): New function.
11657 (varpool_remove_unreferenced_decls): Rewrite.
11658 (varpool_empty_needed_queue): Remove.
11659 (add_new_static_var): Do not mark node as needed.
11660 (varpool_create_variable_alias): Handle expansion state
11661 creation.
11662 * except.c (output_ttype): Do not mark node as needed.
11663 * varasm.c (mark_decl_referenced): Do not use mark_needed_node.
11664 * tree-profile.c (init_ic_make_global_vars, init_ic_make_global_vars):
11665 Likewise.
11666 * tree-switch-conversion.c (build_one_array): Likewise.
11667
c1771a20
MLI
116682012-04-22 Manuel López-Ibáñez <manu@gcc.gnu.org>
11669
11670 PR c/44774
11671 * doc/invoke.texi (pedantic): Rename to Wpedantic.
11672 * common.opt (Wpedantic): New.
11673 (pedantic): Alias Wpedantic.
11674 * diagnostic.c (warning_at): Likewise.
11675 * c-decl.c (diagnose_mismatched_decls): Likewise.
11676 (build_array_declarator): Likewise.
11677 (mark_forward_parm_decls):
11678 (check_bitfield_type_and_width): Likewise.
11679 (grokdeclarator): Likewise.
11680 (grokfield): Likewise.
11681 (finish_struct): Likewise.
11682 (build_enumerator): Likewise.
11683 (store_parm_decls_oldstyle): Likewise.
11684 (declspecs_add_qual): Likewise.
11685 (declspecs_add_type): Likewise.
11686 (finish_declspecs): Likewise.
11687 * c-typeck.c (composite_type): Likewise.
11688 (comp_target_types): Likewise.
11689 (build_array_ref): Likewise.
11690 (pointer_diff): Likewise.
11691 (build_unary_op): Likewise.
11692 (build_conditional_expr): Likewise.
11693 (build_c_cast): Likewise.
11694 (convert_for_assignment): Likewise.
11695 (maybe_warn_string_init): Likewise.
11696 (digest_init): Likewise.
11697 (pop_init_level): Likewise.
11698 (set_init_index): Likewise.
11699 (c_finish_goto_label): Likewise.
11700 (c_finish_return): Likewise.
11701 (do_case): Likewise.
11702 (build_binary_op): Likewise.
11703 * c-parser.c (static): Likewise.
11704 (c_parser_external_declaration): Likewise.
11705 (c_parser_declaration_or_fndef): Likewise.
11706 (c_parser_static_assert_declaration_no_se): Likewise.
11707 (c_parser_enum_specifier): Likewise.
11708 (c_parser_struct_or_union_specifier): Likewise.
11709 (c_parser_struct_declaration): Likewise.
11710 (c_parser_alignas_specifier): Likewise.
11711 (c_parser_braced_init): Likewise.
11712 (c_parser_initelt): Likewise.
11713 (c_parser_compound_statement_nostart): Likewise.
11714 (c_parser_conditional_expression): Likewise.
11715 (c_parser_alignof_expression): Likewise.
11716 (c_parser_postfix_expression): Likewise.
11717 (c_parser_postfix_expression_after_paren_): Likewise.
11718 (c_parser_objc_class_instance_variables): Likewise.
11719 (c_parser_objc_method_definition): Likewise.
11720 (c_parser_objc_methodprotolist): Likewise.
11721
f12e8bd5
ILT
117222012-04-22 Ian Lance Taylor <iant@google.com>
11723
11724 * godump.c (go_output_typedef): Dump size of structs.
11725
69958396 117262012-04-22 Razya Ladelsky <razya@il.ibm.com>
49c45e28
UB
11727
11728 Correcting transform_to_exit_first_loop + fix to PR46886
11729 * tree-parloops.c (transform_to_exit_first_loop): Remove
11730 setting of number of iterations according to the loop pattern.
11731 Duplicate from entry to exit->src instead of loop->latch.
11732 (pallelize_loops): Remove the condition preventing do-while loops.
11733 * tree-cfg.c (bool bb_in_region_p): New.
11734 (gimple_duplicate_sese_tail): Adjust duplication of the the subloops.
11735 Adjust redirection of the duplicated iteration.
11736
9e412ca3
RS
117372012-04-21 Richard Sandiford <rdsandiford@googlemail.com>
11738
11739 PR bootstrap/53021
11740 * rtl.def (ADDRESS): Use "i" rather than "w".
11741 * rtl.h (find_base_term): Delete.
11742 (may_be_sp_based_p): Declare.
11743 * rtl.c (rtx_code_size): Remove ADDRESS special case.
11744 * alias.h (UNIQUE_BASE_VALUE_SP, UNIQUE_BASE_VALUE_ARGP)
11745 (UNIQUE_BASE_VALUE_FP, UNIQUE_BASE_VALUE_HFP): Move to...
11746 * alias.c: ...here.
11747 (find_base_term): Make static.
11748 (may_be_sp_based_p): New function.
11749 * dse.c (record_store): Use it.
11750 * store-motion.c (store_killed_in_insn): Likewise.
11751
1a14ac4b
RS
117522012-04-21 Richard Sandiford <rdsandiford@googlemail.com>
11753
11754 * fold-const.c (fold_checksum_tree): Fix VECTOR_CST case.
11755
ae52741c
MLI
117562012-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org>
11757
11758 PR 35441
11759 * c-typeck.c (inform_declaration): New.
11760 (build_function_call_vec): Do not pretty-print
11761 expressions when caret is enabled.
11762 (convert_arguments): Use inform_declaration.
11763
1f36f7b3
JM
117642012-04-20 Jim Meyering <meyering@redhat.com>
11765
11766 * genmodes.c (make_complex_modes): Don't truncate a mode name of
11767 length 7 or more when prepending a "C". Suggested by Richard Guenther.
11768
add6207a
BS
117692012-04-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11770
11771 PR rtl-optimization/44214
11772 * fold-const.c (exact_inverse): New function.
11773 (fold_binary_loc): Fold vector and complex division by constant into
11774 multiply by recripocal with flag_reciprocal_math; fold vector division
11775 by constant into multiply by reciprocal with exact inverse.
11776
ead84f73
JH
117772012-04-20 Jan Hubicka <jh@suse.cz>
11778
49c45e28
UB
11779 * lto-symtab.c (lto_cgraph_replace_node): Merge needed instead of
11780 force flags.
ead84f73
JH
11781 * cgraph.c (cgraph_add_thunk): Use mark_reachable_node.
11782 (cgraph_remove_node): Update.
11783 (cgraph_mark_needed_node): Remove.
11784 (cgraph_mark_force_output_node): New.
11785 (dump_cgraph_node): Do not dump needed flag.
11786 (cgraph_node_cannot_be_local_p_1): Update.
11787 (cgraph_can_remove_if_no_direct_calls_and_refs): Update.
11788 * cgraph.h (symtab_node_base): Add force_output flag.
11789 (cgraph_node): Remove needed flag.
11790 (varpool_node): Remove force_output flag.
11791 (cgraph_mark_needed_node): Remove.
11792 (cgraph_mark_force_output_node): New.
11793 (cgraph_only_called_directly_or_aliased_p,
11794 varpool_can_remove_if_no_refs, varpool_all_refs_explicit_p): Update.
11795 * ipa-cp.c (ipcp_generate_summary): Remove out of date assert.
11796 * cgraphunit.c (cgraph_decide_is_function_needed): rewrite.
49c45e28
UB
11797 (cgraph_add_new_function): Update.
11798 (cgraph_mark_if_needed): Update.
ead84f73
JH
11799 (verify_cgraph_node): Update.
11800 (cgraph_analyze_function): Alias target is reachable.
11801 (process_function_and_variable_attributes): Update: externally_visible
11802 flag makes function reachable.
11803 (cgraph_analyze_functions): Update dumping.
11804 * lto-cgraph.c (lto_output_node, lto_output_varpool_node,
11805 input_overwrite_node, input_varpool_node): Update streaming.
11806 * lto-streamer-out.c (produce_symtab): Use force_output.
11807 * ipa.c (process_references): Weakrefs must be processed.
11808 (cgraph_remove_unreachable_nodes): Likewise; update for new
11809 force_output flag.
49c45e28 11810 (varpool_externally_visible_p): Weakrefs are externally visible
ead84f73
JH
11811 even if they are not.
11812 (function_and_variable_visibility): Update; when processing alias
11813 pair force the targets to be output.
49c45e28
UB
11814 (whole_program_function_and_variable_visility): Use
11815 mark_reachable_node.
ead84f73
JH
11816 * trans-mem.c (ipa_tm_mark_needed_node): Remove
11817 (ipa_tm_mark_force_output_node): New function.
11818 (ipa_tm_create_version_alias, ipa_tm_create_version): Update.
49c45e28
UB
11819 * gimple-fold.c (can_refer_decl_in_current_unit_p): Be lax about
11820 aliases.
ead84f73
JH
11821 * varasm.c (mark_decl_referenced): Update.
11822 (find_decl_and_mark_needed): Remove.
11823 (find_decl): New function.
11824 (weak_finish, finish_aliases_1, assemble_alias): Update; do not mark
11825 alias targets as needed.
11826 (dump_tm_clone_pairs): Update.
11827 * tree-inline.c (copy_bb): Update check.
11828 * symtab.c (dump_symtab_base): Dump force_output.
11829 * tree-ssa-structalias.c (ipa_pta_execute): Use force_output.
11830 * passes.c (execute_todo): Fix dumping.
11831 * varpool.c (decide_is_variable_needed, varpool_finalize_decl): Update.
11832 (varpool_analyze_pending_decls): Alias target is reachable.
11833 (varpool_create_variable_alias): Finalize weakrefs.
11834
757e8ba2
JJ
118352012-04-20 Jakub Jelinek <jakub@redhat.com>
11836
11837 PR bootstrap/53021
11838 * alias.h (UNIQUE_BASE_VALUE_SP, UNIQUE_BASE_VALUE_ARGP,
11839 UNIQUE_BASE_VALUE_FP, UNIQUE_BASE_VALUE_HFP): Define.
11840 * alias.c (init_alias_targets): Use UNIQUE_BASE_VALUE_*
11841 macros instead of constants.
11842 * dse.c (record_store): Check for SP ADDRESS by comparing
11843 XWINT to UNIQUE_BASE_VALUE_SP instead of expecting
11844 XEXP to be stack_pointer_rtx.
11845
faaf273b
RG
118462012-04-20 Richard Guenther <rguenther@suse.de>
11847
11848 * tree-ssa-copy.c (propagate_tree_value_into_stmt): Use
11849 update_call_from_tree when propagating into a call.
11850
a51e5fa2
AM
118512012-04-20 Alan Modra <amodra@gmail.com>
11852
11853 * config/rs6000/rs6000.c (rs6000_emit_savres_rtx): Formatting.
11854 (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise. Rename
11855 sp_offset to frame_off. Move world save code earlier.
11856
4cbc836e
RG
118572012-04-20 Richard Guenther <rguenther@suse.de>
11858
11859 PR tree-optimization/53050
11860 * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine):
11861 Do only one transform on COND_EXPRs at the same time.
11862
efb496b5
JH
118632012-04-19 Jan Hubicka <jh@suse.cz>
11864
11865 * symtab.c (dump_symtab_base): Revert accidental checkin.
11866
7153fab9
AM
118672012-04-20 Alan Modra <amodra@gmail.com>
11868
11869 PR target/53040
11870 * config/rs6000/rs6000.c (rs6000_savres_strategy): When using
11871 static chain, set REST_INLINE_FPRS too.
11872
4e0bd6d3
TS
118732012-04-20 Thomas Schwinge <thomas@codesourcery.com>
11874
11875 * tree-dump.c (dequeue_and_dump) <BIT_FIELD_REF>: Dump the three child
11876 nodes.
11877
552fd8e6
RG
118782012-04-20 Richard Guenther <rguenther@suse.de>
11879
49c45e28
UB
11880 * tree-vect-loop.c (vect_analyze_loop_operations): Do not vectorize
11881 loops that can never run more often than the vectorization factor.
552fd8e6 11882
fe0bd630
JH
118832012-04-19 Jan Hubicka <jh@suse.cz>
11884
11885 * symtab.c (dump_symtab_base): Fix dumping of asm lists.
11886
3877ce45
DE
118872012-04-19 David Edelsohn <dje.gcc@gmail.com>
11888
11889 * config/rs6000/sync.md (fetchop_name): Change ior attribute to "or".
11890
75be0217
JM
118912012-04-19 Jim Meyering <meyering@redhat.com>
11892
75be0217
JM
11893 * genmodes.c (make_complex_modes): Avoid unnecessary use of strncpy.
11894 We verified above that the string(including trailing NUL) fits in buf,
11895 so just use memcpy.
11896
f68c0487
RG
118972012-04-19 Richard Guenther <rguenther@suse.de>
11898
11899 * symtab.c (dump_symtab_base): Use TREE_STRING_POINTER
11900 for dumping DECL_SECTION_NAME.
11901
314b662a
MM
119022012-04-19 Michael Matz <matz@suse.de>
11903
11904 PR middle-end/52977
11905 * tree.h (VECTOR_CST_NELTS): Use part number of types again.
11906 (struct tree_vector): Adjust GTY length.
11907 * tree.c (make_vector_stat): Don't set VECTOR_CST_NELTS.
11908
11909 * gengtype.c (struct walk_type_data): Add in_record_p and loopcounter
11910 members.
11911 (walk_type, <TYPE_POINTER, TYPE_ARRAY>): Handle case where our
11912 caller emitted the length calulation already.
11913 (walk_type, <TYPE_UNION, TYPE_STRUCT>): Emit length calculations
11914 before handling any of the fields for structs.
11915
7c98ec60
RG
119162012-04-19 Richard Guenther <rguenther@suse.de>
11917
11918 PR tree-optimization/53031
11919 * tree-vrp.c (adjust_range_with_scev): Revert back to
11920 using max_loop_iterations.
11921
80f24351
MM
119222012-04-19 Michael Matz <matz@suse.de>
11923
11924 * diagnostic.c (emit_diagnostic): Move va_end call after user
11925 of the va_list.
11926 (warning, warning_at, pedwarn, permerror): Ditto.
11927
d0a854af
RG
119282012-04-19 Richard Guenther <rguenther@suse.de>
11929
11930 * ira-int.h (ira_allocno_object_iter_cond): Avoid out-of-bound
11931 array access.
11932
20955f5a
GJL
119332012-04-19 Georg-Johann Lay <avr@gjlay.de>
11934
11935 PR target/53033
11936 * config/avr/avr.c (avr_out_load_psi): Fix assembler template for
11937 the case *(X+const).
11938
e4eb230d
RR
119392012-04-19 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
11940
11941 * config/arm/sync.md (sync_optab): Change ior attribute to "or".
11942
49c45e28 119432012-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org>
007a787d
CB
11944
11945 PR c/52283/37985
11946 * stmt.c (warn_if_unused_value): Skip NOP_EXPR.
11947 * convert.c (convert_to_integer): Don't set TREE_NO_WARNING.
11948
daa57386
RG
119492012-04-19 Richard Guenther <rguenther@suse.de>
11950
11951 PR rtl-optimization/44688
11952 * loop-iv.c (determine_max_iter): Only return max_iter.
11953 (iv_number_of_iterations): Also use the recorded loop bound
11954 on the maximum number of iterations.
11955 * loop-unroll.c (decide_unroll_runtime_iterations): Use
11956 max_iter to avoid unrolling loops that do not roll.
11957 (decide_unroll_stupid): Likewise.
11958
0cd2402d
SB
119592012-04-18 Steven Bosscher <steven@gcc.gnu.org>
11960
11961 * targhooks.c (default_case_values_threshold): Fix code style nit.
11962
11963 * stmt.c (add_case_node, expand_case): Move logic to remove/reduce
11964 case range and type folding from here...
11965 * gimplify.c (gimplify_switch_expr): ... to here. Expect NULL_TREE
809e5f82 11966 type, as documented in tree.def.
0cd2402d 11967
474ffc72
JH
119682012-04-18 Jan Hubicka <jh@suse.cz>
11969
11970 * cgraph.h (verify_symtab, verify_symtab_node, verify_symtab_base):
11971 Declare.
618107ba 11972 * cgraphunit.c (verify_cgraph_node): Verify symtab base; do not verify
474ffc72 11973 cgraph hash and same comdat groups.
49c45e28 11974 (cgraph_optimize): Verify symbol table.
474ffc72
JH
11975 * ipa.c (cgraph_remove_unreachable_nodes): Verify symbol table.
11976 (dissolve_same_comdat_group_list): Work on symtab nodes.
11977 (function_and_variable_visibility): Dissolve variable same comdat group
11978 lists, too.
11979 * symtab.c: Include timevar.h
11980 (verify_symtab_base, verify_symtab_node, verify_symtab): New functions.
11981
308e3ba6
SB
119822012-04-18 Steven Bosscher <steven@gcc.gnu.org>
11983
fade902a
SB
11984 * tree-switch-conversion.c (info): Remove global pass info.
11985 (check_range, check_process_case, check_final_bb, create_temp_arrays,
11986 free_temp_arrays, gather_default_values, build_constructors,
11987 array_value_type, build_one_array, build_arrays, gen_def_assigns,
11988 fix_phi_nodes, gen_inbound_check): Pass info around from ...
11989 (process_switch): ... here. Unify message format. Return a const
11990 char pointer to the failure reason message.
11991 (do_switchconv): Unify message format. Update process_switch usage.
11992
308e3ba6
SB
11993 * tree.def (CASE_LABEL_EXPR): Fix documentation, mention all operands.
11994 * tree-cfg.c (edge_to_cases): Fix documentation.
11995
27dd0a95
UB
119962012-04-18 Uros Bizjak <ubizjak@gmail.com>
11997
11998 * config/alpha/sync.md (fetchop_name): Change ior attribute to "or".
11999
b59eee40
BS
120002012-04-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12001
12002 PR tree-optimization/52976
12003 * tree-ssa-reassoc.c (add_to_ops_vec_max_rank): Delete.
12004 (possibly_move_powi): New function.
12005 (rewrite_expr_tree): Call possibly_move_powi.
12006 (rewrite_expr_tree_parallel): Likewise.
12007 (attempt_builtin_powi): Change call of add_to_ops_vec_max_rank to
12008 call add_to_ops_vec instead.
12009
c2723bde
BS
120102012-04-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12011
12012 PR tree-optimization/52976
12013 * tree-ssa-reassoc.c (stmt_is_power_of_op): New function.
12014 (decrement_power): Likewise.
12015 (propagate_op_to_single_use): Likewise.
12016 (zero_one_operation): Handle __builtin_pow* calls in linearized
12017 expression trees; factor logic into propagate_op_to_single_use.
12018 (undistribute_ops_list): Allow operands with repeat counts > 1.
12019
03fd03d5
RG
120202012-04-18 Richard Guenther <rguenther@suse.de>
12021
12022 PR tree-optimization/44688
12023 * cfgloop.h (record_niter_bound): Declare.
12024 * tree-ssa-loop-niter.c (record_niter_bound): Export.
12025 Update the estimation with the upper bound here...
12026 (estimate_numbers_of_iterations_loop): ... instead of here.
12027 Do not forcefully reset a recorded upper bound.
12028 * tree-vect-loop-manip.c (vect_do_peeling_for_alignment):
49c45e28 12029 Record the maximum number of loop iterations of the prologue loop.
03fd03d5 12030
5932a4d4
JH
120312012-04-18 Jan Hubicka <jh@suse.cz>
12032
12033 * lto-symtab.c (lto_cgraph_replace_node): Update.
12034 * cgraphbuild.c (record_reference, record_type_list,
12035 record_eh_tables, mark_address, mark_load, mark_store): Update.
12036 * cgraph.c (cgraph_same_body_alias, dump_cgraph_node,
12037 cgraph_create_virtual_clone, cgraph_for_node_thunks_and_aliases):
12038 Update.
12039 * cgraph.h (symtab_node_def, symtab_node, const_symtab_node): Remove.
12040 (cgraph_alias_aliased_node, varpool_alias_aliased_node): Update.
12041 * reload.c: Fix typo in comment.
12042 * rtlanal.c: Likewise.
12043 * tree-emultls.c (gen_emutls_addr): Update.
12044 * ipa-reference.c (analyze_function): Update.
12045 * cgraphunit.c (cgraph_analyze_function,
12046 cgraph_process_same_body_aliases, assemble_thunks_and_aliases):
12047 Update.
12048 * ipa-ref.c (ipa_record_reference): Reorg to avoid reference types.
12049 (ipa_remove_reference): Likewise.
12050 (ipa_remove_all_refering): Rename to ...
12051 (ipa_remove_all_referring): ... this one; update.
12052 (ipa_dump_references): Update.
12053 (ipa_dump_referring): Update.
12054 (ipa_clone_references): Update.
12055 (ipa_clone_refering): Rename to ...
12056 (ipa_clone_referring): ... this one; update.
12057 (ipa_ref_cannot_lead_to_return): Update.
12058 (ipa_ref_has_aliases_p): Update.
12059 * ipa-ref.h (symtab_node_def, symtab_node, const_symtab_node): New
12060 forward typedefs.
12061 (ipa_ref_type): Remove.
12062 (ipa_ref_ptr_u): Remove.
12063 (ipa_ref): Remove referencing, refered, refered_index, refering_type
12064 and refered_type; add referring, referred and referred_index.
12065 (ipa_ref_list): Rename refering to referring.
12066 (ipa_record_reference, ipa_remove_all_referring, ipa_dump_referring,
12067 ipa_clone_references, ipa_clone_referring): Update prototypes.
12068 * lto-cgraph.c (referenced_from_other_partition_p): Update.
12069 (lto_output_ref): Update.
12070 (add_references): Update.
12071 (input_varpool_node): Update.
12072 (input_refs): Update.
12073 * ipa-ref-inline.h (ipa_ref_node): Update.
12074 (ipa_ref_varpool_node): Update.
49c45e28 12075 (ipa_ref_referring_node): Update.
5932a4d4 12076 (ipa_ref_referring_varpool_node): Update.
49c45e28 12077 (ipa_ref_referring_ref_list): Update.
5932a4d4
JH
12078 (ipa_ref_referred_ref_list): Update.
12079 (ipa_ref_list_first_referring): Update.
12080 (ipa_empty_ref_list): Update.
12081 (ipa_ref_list_refering_iterate): Rename to ...
12082 (ipa_ref_list_referring_iterate): ... this one.
12083 * cse.c: Update comment.
12084 * ipa-utils.c (ipa_reverse_postorder): Update.
12085 * tree-ssa-alias.c: Update.
12086 * ipa-inline.c (reset_edge_caches): Update.
12087 (update_caller_keys): Update.
12088 * ipa-inline.h: Update comments.
12089 * jump.c: Update comment.
12090 * alias.c: Likewise.
12091 * ipa.c (process_references): Update.
12092 (cgraph_remove_unreachable_nodes): Likewise.
12093 (ipa_discover_readonly_nonaddressable_var): Likewise.
12094 (cgraph_address_taken_from_non_vtable_p): Likewise.
12095 * trans-mem.c (ipa_tm_execute): Update.
12096 * simplify-rtx.c: Fix comment.
12097 * rtl.c: Fix comment.
12098 * symtab.c (symtab_unregister_node): Update.
12099 * varpool.c (dump_varpool_node): Update.
12100 (varpool_analyze_pending_decls): Update.
12101 (assemble_aliases): Update.
12102 (varpool_for_node_and_aliases): Update.
12103
421e6082
RG
121042012-04-18 Richard Guenther <rguenther@suse.de>
12105
12106 * cfgloop.h (estimate_numbers_of_iterations_loop): Remove
12107 use_undefined_p parameter.
12108 * tree-flow.h (estimate_numbers_of_iterations): Likewise.
12109 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
12110 Likewise.
12111 (estimate_numbers_of_iterations): Likewise.
12112 (estimated_loop_iterations): Adjust.
12113 (max_loop_iterations): Likewise.
12114 (scev_probably_wraps_p): Likewise.
12115 * tree-ssa-loop.c (tree_ssa_loop_bounds): Likewise.
12116 * tree-vrp.c (adjust_range_with_scev): Use max_stmt_executions,
12117 not max_loop_iterations.
12118 (execute_vrp): Remove explicit number of iterations estimation.
12119
6acc8a3c
EI
121202012-04-18 Enkovich Ilya <ilya.enkovich@intel.com>
12121
12122 * config/i386/linux-common.h: New.
12123
12124 * config.gcc: Add i386/linux-common.h before
12125 all i386/linux.h and i386/linux64.h usages.
12126
12127 * config/i386/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): New.
12128 (LINK_SPEC): Use GNU_USER_TARGET_LINK_SPEC.
12129 * config/i386/gnu-user64.h: Likewise.
12130
12131 * config/i386/gnu-user.common.h (GNU_USER_TARGET_CC1_SPEC): New.
12132 (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC.
12133 (GNU_USER_TARGET_MATHFILE_SPEC): New.
12134 (ENDFILE_SPEC): Use GNU_USER_TARGET_MATHFILE_SPEC.
12135
8f940ee6
JH
121362012-04-18 Jan Hubicka <jh@suse.cz>
12137
12138 * cgraph.c (cgraph_node_name): Remove.
12139 (dump_cgraph_node): Use dump_symtab_base; reformat.
12140 * cgraph.h (symtab_node_asm_name, symtab_node_name, dump_symtab,
12141 debug_symtab, dump_symtab_node, debug_symtab_node, dump_symtab_base):
12142 Declare.
12143 (cgraph_node_name, varpool_node_name): Remove.
12144 (cgraph_node_asm_name, varpool_node_asm_name,
12145 cgraph_node_name, varpool_node_name): New.
12146 * tree-pass.h (TODO_dump_cgraph): Rename to ...
12147 (TODO_dump_symtab): ... this one.
12148 * ipa-cp (pass_ipa_cp): Update.
12149 * ia-reference.c (generate_summary, read_write_all_from_decl,
12150 propagate, ipa_reference_read_optimization_summary): Update.
12151 * cgraphunit.c (cgraph_analyze_functions): Update.
12152 (cgraph_optimize): Update.
12153 * ipa-ref.c (ipa_dump_references): Update.
12154 (ipa_dump_refering): Update.
12155 * ipa-inline.c (pass_ipa_inline): Update.
12156 * matrix-reorg.c (pass_ipa_matrix_reorg): Update.
12157 * ipa.c (pass_ipa_function_visibility,
12158 pass_ipa_whole_program_visibility): Update.
12159 * tree-sra.c (pass_early_ipa_sra): Update.
12160 * symtab.c: Include langhooks.h
12161 (symtab_node_asm_name): New.
12162 (symtab_node_name): New.
12163 (symtab_type_names): New static var.
12164 (dump_symtab_base): New.
12165 (dump_symtab_node, dump_symtab): New.
12166 (debug_symtab_node, debug_symtab): New.
12167 * tree-ssa-structalias.c: Dump symbol table.
12168 * pases.c (execute_todo): Handle TODO_dump_symtab instead
12169 of TODO_dump_cgraph.
12170 * varpoo.c (varpool_node_name): Remove.
12171 (dump_varpool_node): Use dump_symtab_base; reformat.
12172
dae1c90e
MLI
121732012-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org>
12174
49c45e28 12175 * doc/invoke.texi (Language Independent Options): @item should be
dae1c90e
MLI
12176 before @opindex.
12177
f0184d42
RS
121782012-04-17 Richard Sandiford <rdsandiford@googlemail.com>
12179
12180 PR bootstrap/53021
12181 * rtl.c (rtx_code_size): Handle ADDRESS.
12182
a60596b8
TV
121832012-04-17 Tom de Vries <tom@codesourcery.com>
12184
12185 * tree-iterator.c (append_to_statement_list_1): Handle case that *list_p
12186 is not a STMT_LIST.
12187
6c381d9d
UB
121882012-04-17 Uros Bizjak <ubizjak@gmail.com>
12189
12190 PR target/53020
12191 * config/i386/sync.md (atomic_<code><mode>): Rename to
12192 atomic_<logic><mode>.
12193
9fc37b2b
RS
121942012-04-17 Richard Sandiford <rdsandiford@googlemail.com>
12195
12196 * rtl.def (ADDRESS): Turn operand into a HOST_WIDE_INT.
12197 * alias.c (reg_base_value): Expand and update comment.
12198 (arg_base_value): New variable.
12199 (unique_id): Move up file.
12200 (unique_base_value, unique_base_value_p, known_base_value_p): New.
12201 (find_base_value): Use arg_base_value and known_base_value_p.
12202 (record_set): Document REG_NOALIAS handling. Use unique_base_value.
12203 (find_base_term): Use known_base_value_p.
12204 (base_alias_check): Use unique_base_value_p.
12205 (init_alias_target): Initialize arg_base_value. Use unique_base_value.
12206 (init_alias_analysis): Use 1 as the first id for REG_NOALIAS bases.
12207
9f89e66e
PH
122082012-04-17 Pat Haugen <pthaugen@us.ibm.com>
12209
12210 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Remove DImode.
12211
7d75abc8
MM
122122012-04-17 Michael Matz <matz@suse.de>
12213
12214 PR tree-optimization/18437
12215 * tree-vectorizer.h (_stmt_vec_info.stride_load_p): New member.
12216 (STMT_VINFO_STRIDE_LOAD_P): New accessor.
12217 (vect_check_strided_load): Declare.
12218 * tree-vect-data-refs.c (vect_check_strided_load): New function.
12219 (vect_analyze_data_refs): Use it to accept strided loads.
12220 * tree-vect-stmts.c (vectorizable_load): Ditto and handle them.
12221
efa26eaa
RG
122222012-04-17 Richard Guenther <rguenther@suse.de>
12223
12224 PR middle-end/53011
12225 * tree-eh.c (cleanup_empty_eh_merge_phis): Properly discard
12226 loops when redirecting an entry or latch edge.
12227
d51e8a2d
BS
122282012-04-17 Bernd Schmidt <bernds@codesourcery.com>
12229
12230 * sel-sched.c (sel_global_init): Revert previous change.
12231
d8279b12
RG
122322012-04-17 Richard Guenther <rguenther@suse.de>
12233
12234 * tree-flow.h (array_at_struct_end_p): Move declaration ...
12235 * tree.h (array_at_struct_end_p): ... here.
12236 * tree-ssa-loop-niter.c (array_at_struct_end_p): Move ...
12237 * expr.c (array_at_struct_end_p): ... here. Rewrite.
12238
c5c20c55
SB
122392012-04-17 Steven Bosscher <steven@gcc.gnu.org>
12240
12241 * stmt.c (cost_table_, use_cost_table, cost_table_initialize,
12242 COST_TABLE): Remove.
12243 (estimate_case_costs): Remove.
12244 (expand_case): Do not call estimate_case_costs
12245 to set use_cost_table.
12246 (balance_case_nodes): Do not use use_cost_table.
12247
1ab24192
JH
122482012-04-16 Jan Hubicka <jh@suse.cz>
12249
12250 * cgraph.c (cgraph_hash, assembler_name_hash): Remove.
12251 (hash_node, eq_node): Remove.
12252 (cgraph_create_node): Do not handle hashtable.
12253 (cgraph_get_node): Remove.
12254 (cgraph_insert_node_to_hashtable): Remove.
12255 (hash_node_by_assembler_name): Remove.
12256 (eq_assembler_name): Remove.
12257 (cgraph_node_for_asm): Rewrite.
12258 (cgraph_find_replacement_node): Break out from ...
12259 (cgraph_remove_node): ... here; do not maintain hashtables.
12260 (change_decl_assembler_name): Remove.
12261 (cgraph_clone_node): Do not maintain hashtables.
12262 * cgraph.h (const_symtab_node): New typedef.
12263 (cgraph_insert_node_to_hashtable): Remove.
12264 (symtab_get_node, symtab_node_for_asm,
12265 symtab_insert_node_to_hashtable): Declare.
12266 (cgraph_find_replacement_node): Declare.
12267 (cgraph_get_node, varpool_get_node): Turn into inlines.
12268 (cgraph, varpool): Work sanely on NULL pointers.
12269 (FOR_EACH_SYMBOL): New walker.
12270 * ipa-inline-transform.c (save_inline_function_body): Use
12271 symtab_insert_node_to_hashtable.
12272 * symtab.c: Include ggc.h and diagnostics.h
12273 (symtab_hash, assembler_name_hash): New static vars;
12274 (hash_node, eq_node, hash_node_by_assembler_name,
12275 eq_assembler_name, insert_to_assembler_name_hash,
12276 unlink_from_assembler_name_hash): New.
12277 (symtab_register_node): Update hashtables.
12278 (symtab_insert_node_to_hashtable): New.
12279 (symtab_unregister_node): Update hashtables.
12280 (symtab_get_node): New.
12281 (symtab_node_for_asm): New.
12282 (change_decl_assembler_name): New.
12283 * Makefile.in (symtab.o): Needs GTY.
12284 * varpool.c (varpool_hash): Remove.
12285 (hash_varpool_node, eq_varpool_node, varpool_get_node): Remove.
12286 (varpool_node): Rewrite using varpool_get_node.
12287 (varpool_remove_node): DO not maintain hashtables.
49c45e28 12288 (varpool_node_for_asm): Rewrite.
1ab24192 12289
0d63b643
SL
122902012-04-16 Sandra Loosemore <sandra@codesourcery.com>
12291
12292 * doc/invoke.texi: Copy-edit to put verbs in the present tense
12293 when describing the current behavior of GCC.
12294
6b338d0a
RS
122952012-04-16 Richard Sandiford <rdsandiford@googlemail.com>
12296
12297 * genemit.c (gen_exp): Remove ADDRESS handling.
12298 * genoutput.c (scan_operands): Likewise.
12299 * genpeep.c (match_rtx): Likewise.
12300 * genrecog.c (add_to_sequence): Likewise.
12301
a0bc8f9c
DE
123022012-04-16 David Edelsohn <dje.gcc@gmail.com>
12303
49c45e28 12304 * doc/install.texi (Specific, *-ibm-aix*): Update assembler bug status.
a0bc8f9c 12305
36e57e16
MJ
123062012-04-16 Martin Jambor <mjambor@suse.cz>
12307
12308 * tree-sra.c (build_ref_for_model): Create COMPONENT_REFs only for
12309 bit-fields.
12310
d6cb05db
UW
123112012-04-16 Ulrich Weigand <ulrich.weigand@linaro.org>
12312
12313 PR target/51819
12314 * config/arm/arm.c (arm_print_operand): Fix invalid alignment
12315 hints for 'A' operand types.
12316
2aae7680
JH
123172012-04-16 Jan Hubicka <jh@suse.cz>
12318
12319 * cgraph.h (symtab_node_base): Add next and previous pointers.
12320 (cgraph_node): Remove next and preivous pointers.
12321 (varpool_node): Likewise; remove next/previous GTY marker;
12322 it is not type safe.
12323 (symtab_node_def): Update GTY marker
12324 (x_cgraph_nodes, cgraph_nodes): Remove.
12325 (symtab_nodes): New function.
12326 (cgraph_order): Rename to ...
12327 (symtab_order): ... this one.
12328 (symtab_register_node, symtab_unregister_node, symtab_remove_node):
12329 Declare.
12330 (x_varpool_nodes, varpool_nodes): Remove.
12331 (FOR_EACH_STATIC_VARIABLE): Update.
12332 (symtab_function_p, symtab_variable_p): New function.
12333 (FOR_EACH_VARIABLE): Update.
12334 (varpool_first_variable, varpool_next_variable): New functions.
12335 (FOR_EACH_VARIABLE): Update.
12336 (cgraph_first_defined_function): Update.
12337 (cgraph_next_defined_function, cgraph_next_defined_function): Update.
12338 (FOR_EACH_DEFINED_FUNCTION, FOR_EACH_FUNCTION): Update.
12339 (cgraph_first_function, cgraph_next_function): New.
12340 (FOR_EACH_FUNCTION): Update.
12341 (cgraph_first_function_with_gimple_body,
12342 cgraph_next_function_with_gimple_body): Update.
12343 * symtab.c: New file.
12344 * cgraph.c: Update copyright dates.
12345 (x_cgraph_nodes, cgraph_order): Remove.
12346 (NEXT_FREE_NODE): Update.
12347 (SET_NEXT_FREE_NODE): New.
12348 (cgraph_create_node_1): Remove common code.
49c45e28 12349 (cgraph_create_node): Remove common code; call symtab_register_node.
2aae7680 12350 (cgraph_remove_node): Remove common code; call symtab_unregister-node.
49c45e28 12351 (cgraph_add_asm_node): Update.
2aae7680
JH
12352 (cgraph_clone_node): Register new node.
12353 * cgraphunit.c (process_function_and_variable_attributes): Update.
12354 (cgraph_analyze_functions): Update.
12355 (cgraph_analyze_functions): Update.
12356 (cgraph_output_in_order): Update.
49c45e28
UB
12357 * lto-cgraph.c (input_node, input_varpool_node, input_cgraph_1):
12358 Update.
12359 * ipa-inline.c (recursive_inlining): Update.
12360 * lto-streamer-in.c (lto_input_toplevel_asms): Update.
2aae7680
JH
12361 * ipa.c (cgraph_remove_unreachable_nodes): Update.
12362 * Makefile.in: Add symtab.o
12363 * varpool.c (x_varpool_nodes): Remove
12364 (varpool_node): Remove common code; call symtab_register_node.
49c45e28 12365 (varpool_remove_node): Remove common code; call symtab_unregister_node.
2aae7680 12366
ac9a074c
RG
123672012-04-16 Richard Guenther <rguenther@suse.de>
12368
12369 PR middle-end/52977
12370 * tree.h (VECTOR_CST_NELTS): Adjust.
12371 (struct tree_vector): Add explicit length field.
12372 (make_vector_stat): Declare.
12373 (make_vector): Define.
12374 * tree.c (make_vector_stat): New function.
12375 (build_vector_stat): Use it.
12376 * tree-streamer-in.c (streamer_alloc_tree): Likewise.
12377
fba62120
BS
123782012-04-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12379
12380 PR tree-optimization/52976
12381 * tree-ssa-reassoc.c (add_to_ops_vec_max_rank): New function.
12382 (undistribute_ops_list): Ops with repeat counts aren't eligible for
12383 undistribution.
12384 (attempt_builtin_powi): Call add_to_ops_vec_max_rank.
12385
65c70e6b
JH
123862012-04-16 Jan Hubicka <jh@suse.cz>
12387
12388 * cgraph.h (FOR_EACH_VARIABLE, FOR_EACH_VARIABLE, FOR_EACH_FUNCTION):
12389 New macros.
12390 * lto-symtab.c (lto_symtab_merge_cgraph_nodes): Use FOR_EACH
12391 walkers to walk cgraph and varpool.
12392 * cgraph.c (cgraph_node_for_asm): Likewise.
12393 (dump_cgraph): Likewise.
12394 * value-prof.c (init_node_map): Likewise.
12395 * tree.c (free_lang_data_in_cgraph): Likewise.
12396 * tree-emutls.c: (ipa_lower_emutls): Likewise.
12397 * ipa-reference.c (generate_summary, propagate): Likewise.
12398 * cgraphunit.c (verify_cgraph, cgraph_process_same_body_aliases,
12399 cgraph_mark_functions_to_output, cgraph_output_in_order,
12400 output_weakrefs, cgraph_materialize_all_clones,
12401 cgraph_optimize): Likewise.
12402 * lto-cgraph.c (merge_profile_summaries): Likewise.
12403 (input_cgraph): Likewise.
12404 * ipa-pure-const.c (generate_summary): Likewise.
12405 (propagate): Likwise.
12406 * ipa-utils.c (ipa_reduced_postorder): Likewise.
12407 (ipa_free_postorder_info): Likewise.
12408 (ipa_reverse_postorder): Likewise.
12409 * ipa-inline.c (ipa_inline): Likewise.
12410 * matrix-reorg.c (find_matrices_decl): Likewise.
12411 (matrix_reorg): Likewise.
12412 * tree-vectorizer.c (increase_alignment): Likewise.
12413 * ipa.c (cgraph_remove_unreachable_nodes): Likewise.
12414 (function_and_variable_visibility): Likewise.
12415 (whole_program_function_and_variable_visibility): Likewise.
12416 (ipa_cdtor_merge): Likewise.
12417 * trans-mem.c (ipa_tm_execute): Likewise.
12418 * ipa-inline-analysis.c (dump_inline_summaries): Likewise.
12419 * ipa-prop.c (ipa_print_all_jump_functions): Likewise.
12420 (ipa_print_all_params): Likewise.
12421 (ipa_update_after_lto_read): Likewise.
12422 * tree-profie.c (tree_profiling): Likewise.
12423 * tree-ssa-structalias.c (ipa_pta_execute): Likewise.
12424 * passes.c (dump_passes): Likewise.
12425 (do_per_function): Likewise.
12426 (ipa_write_summaries): Likewise.
12427 * varpool.c (dump_varpool): Likewise.
12428 (varpool_node_for_asm): Likewise.
12429 (varpool_assemble_pending_decls): Likewise.
12430
8b7db259
RG
124312012-04-16 Richard Guenther <rguenther@suse.de>
12432
12433 PR tree-optimization/52975
12434 * tree-if-conv.c (predicate_bbs): Do not simplify inverted
12435 condition but always mark it with TRUTH_NOT_EXPR.
6c381d9d 12436
2515d916
RG
124372012-04-16 Richard Guenther <rguenther@suse.de>
12438
12439 PR tree-optimization/52975
12440 * tree-ssa-forwprop.c (combine_cond_exprs): New function.
12441 (ssa_forward_propagate_and_combine): Call it for COND_EXPRs
12442 and VEC_COND_EXPRs. Also combine into VEC_COND_EXPRs condition.
12443 * fold-const.c (operand_equal_p): Handle TARGET_MEM_REF.
12444
8861ba4d
UB
124452012-04-14 Uros Bizjak <ubizjak@gmail.com>
12446
12447 * config/i386/sse.md (ssse3_plusminus): New code iterator.
12448 (avx2_ph<plusminus_mnemonic>wv16hi3): Macroize insn from
12449 avx2_ph{add,adds,sub,subs}wv16hi3 using ssse3_plusminus code iterator.
12450 (ssse3_ph<plusminus_mnemonic>wv8hi3): Macroize insn from
12451 ssse3_ph{add,adds,sub,subs}wv8hi3 using ssse3_plusminus code iterator.
12452 (ssse3_ph<plusminus_mnemonic>wv4hi3): Macroize insn from
12453 ssse3_ph{add,adds,sub,subs}wv4hi3 using ssse3_plusminus code iterator.
12454
12455 (avx2_ph<plusminus_mnemonic>dv8si3): Macroize insn from
12456 avx2_ph{add,adds,sub,subs}dv8si3 using plusminus code iterator.
12457 (ssse3_ph<plusminus_mnemonic>dv4si3): Macroize insn from
12458 ssse3_ph{add,adds,sub,subs}dv4si3 using plusminus code iterator.
12459 (ssse3_ph<plusminus_mnemonic>dv2si3): Macroize insn from
12460 ssse3_ph{add,adds,sub,subs}dv2si3 using plusminus code iterator.
12461
12462 (xop_plus): New code iterator.
12463 (macs): New code attribute.
12464 (macds): Ditto.
12465 (xop_p<macs><ssemodesuffix><ssemodesuffix>): Macroize insn from
12466 xop_pmacs{,s}{ww,dd} using xop_plus code iterator and VI24_128 mode
12467 iterator.
12468 (xop_p<macs>dql): Macroize insn from xop_pmacs{,s}dql using
12469 xop_plus code iterator.
12470 (xop_p<macs>dqh): Macroize insn from xop_pmacs{,s}dqh using
12471 xop_plus code iterator.
12472 (xop_p<macs>wd): Macroize insn from xop_pmacs{,s}wd using
12473 xop_plus code iterator.
12474 (xop_p<madcs>wd): Macroize insn from xop_pmadcs{,s}wd using
12475 xop_plus code iterator.
12476
12477 (xop_phadd<u>bw): Macroize insn from xop_phadd{,u}bw usign
12478 any_extend code iterator.
12479 (xop_phadd<u>bd): Macroize insn from xop_phadd{,u}bd usign
12480 any_extend code iterator.
12481 (xop_phadd<u>bq): Macroize insn from xop_phadd{,u}bq usign
12482 any_extend code iterator.
12483 (xop_phadd<u>wd): Macroize insn from xop_phadd{,u}wd usign
12484 any_extend code iterator.
12485 (xop_phadd<u>wq): Macroize insn from xop_phadd{,u}wq usign
12486 any_extend code iterator.
12487 (xop_phadd<u>dq): Macroize insn from xop_phadd{,u}dq usign
12488 any_extend code iterator.
12489
03fbe718
TV
124902012-04-14 Tom de Vries <tom@codesourcery.com>
12491
12492 * cfgcleanup.c (try_optimize_cfg): Replace call to delete_insn_chain by
12493 call to delete_insn. Remove code to reorder BASIC_BLOCK note and
12494 DELETED_LABEL note, and move it to ...
12495 * cfgrtl.c (delete_insn): ... here. Change return type to void.
12496 (delete_insn_and_edges): Likewise.
12497 (delete_insn_chain): Handle new return type of delete_insn. Delete
12498 chain backwards rather than forwards.
12499 * rtl.h (delete_insn, delete_insn_and_edges): Change return type to
12500 void.
12501 * cfglayout.c (fixup_reorder_chain): Delete unused label.
12502
960bfb69
JH
125032012-04-14 Jan Hubicka <jh@suse.cz>
12504
12505 * cgraph.h: Update copyrights;
12506 (symtab_node): Turn to union typedef.
12507 (symtab_node_base): New structure.
12508 (symtab_type): Add SYMTAB_SYMBOL tag.
12509 (cgraph_node): Annotate some pinters with nested_ptr.
12510 (varpool_node): Likewise.
12511 (cgraph_local_info): Remove lto_file_data
12512 and externally_visible.
12513 (cgraph_node): Remove decl; same_comdat_group list;
12514 aux; ref_list; order; address_taken; reachable_from_other_parittion,
12515 in_other_partition; resolution.
12516 (varpool_node): Remove decl; same_comdat_group;
12517 ref_list; lto_file_data; aux; order; resolution; externally_visible;
12518 used_from_other_partition; in_other_partition.
49c45e28 12519 (symtab_node_def): New union.
960bfb69
JH
12520 (cgraph, varpool): Update.
12521 (varpool_first_static_initializer, varpool_next_static_initializer,
12522 cgraph_only_called_directly_or_aliased_p,
12523 varpool_can_remove_if_no_refs, varpool_can_remove_if_no_refs,
12524 varpool_all_refs_explicit_p, cgraph_alias_aliased_node,
12525 varpool_alias_aliased_node, cgraph_edge_recursive_p): Update
12526 field references.
12527 * cgraph.c: Likewise.
12528 (cgraph_hash, assembler_name_hash): Turn into symtab_node.
12529 * cgraphbuild.c: Likewise.
12530 * lto-symtab.c: Likewise.
12531 * c-gimplify.c: Likewise.
12532 * value-prof.c: Likewise.
12533 * tree.c: Likewise.
12534 * ipa-cp.c: Likewise.
12535 * tree-emutls.c: Likewise.
12536 * ipa-inline-transform.c: Likwise.
12537 * ipa-reference.c: Likewise.
12538 * cgraphunit.c: Likewise.
12539 * ipa-ref.c: Likewise.
12540 * lto-cgraph.c: Likewise.
12541 * ipa-ref-inline.h: Likewise.
12542 * ipa-pure-const.c: Likewise.
12543 * lto-streamer-out.c: Likewise.
12544 * ipa-utils.c: Likewise.
12545 * ipa-inline.c: Likewise.
12546 * matrix-reorg.c: Likewise.
12547 * tree-eh.c: Likewise.
12548 * tree-vectorizer.c: Likewise.
12549 * ipa-split.c: Likewise.
12550 * ipa.c: Likewise.
12551 * trans-mem.c: Likewise.
12552 * ipa-inline-analysis.c: Likewise.
12553 * gimplify.c: Likewise.
12554 * cfgexpand.c: Likewise.
12555 * tree-sra.c: Likewise.
12556 * ipa-prop.c: Likewise.
12557 * varasm.c: Likewise.
12558 * tree-nested.c: Likewise.
12559 * tree-inline.c: Likewise.
12560 * tree-profile.c: Likewise.
12561 * tree-ssa-structalias.c: Likewise.
12562 * passes.c: Likewise.
12563 * varpool.c: Likewise.
12564
b2b2f160
TV
125652012-04-14 Tom de Vries <tom@codesourcery.com>
12566
12567 * tree-ssa-tail-merge.c (stmt_local_def): New function, factored out of
12568 same_succ_hash, with local_def inlined. Use SINGLE_SSA_DEF_OPERAND.
12569 Use FOR_EACH_IMM_USE_FAST instead of FOR_EACH_IMM_USE_STMT. Remove use
12570 of find_edge.
12571 (gsi_advance_fw_nondebug_nonlocal): New function.
12572 (local_def): Removed function.
12573 (same_succ_hash): Use stmt_local_def.
12574 (same_succ_equal): Use gsi_advance_fw_nondebug_nonlocal.
12575 (gsi_advance_bw_nondebug_nonlocal): Use stmt_local_def.
12576
6573c644
L
125772012-04-13 H.J. Lu <hongjiu.lu@intel.com>
12578
12579 * config/i386/i386-c.c (ix86_target_macros): Define _ILP32
12580 and __ILP32__ for x32.
12581
8e8483e6
MJ
125822012-04-13 Martin Jambor <mjambor@suse.cz>
12583
12584 PR middle-end/52939
12585 * gimple-fold.c (gimple_get_virt_method_for_binfo): Bail out if
12586 fold_ctor_reference returns a zero constant.
12587
70a69509
EI
125882012-04-13 Enkovich Ilya <ilya.enkovich@intel.com>
12589
12590 * config.gcc: Add i386/gnu-user-common.h before all
12591 i386/gnu-user.h and i386/gnu-user64.h usages.
12592
12593 * config/i386/gnu-user-common.h: New.
12594
12595 * config/i386/gnu-user.h (CPP_SPEC): Moved to gnu-user-common.h.
12596 (CC1_SPEC): Likewise.
12597 (ENDFILE_SPEC): Likewise.
12598 (DEFAULT_PCC_STRUCT_RETURN): Likewise.
12599 (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Likewise.
12600 (TARGET_OS_CPP_BUILTINS): Likewise.
12601 (LIBGCC2_HAS_TF_MODE): Likewise.
12602 (LIBGCC2_TF_CEXT): Likewise.
12603 (TF_SIZE): Likewise.
12604 (TARGET_ASM_FILE_END): Likewise.
12605 (STACK_CHECK_MOVING_SP): Likewise.
12606 (STACK_CHECK_STATIC_BUILTIN): Likewise.
12607 * config/i386/gnu-user64.h: Likewise.
12608
65dc645a
MJ
126092012-04-13 Martin Jambor <mjambor@suse.cz>
12610
12611 * expr.c (expand_expr_real_1): Pass type, not the expression, to
12612 set_mem_attributes for a memory temporary. Do not call the function
12613 for the memory temporary created for a bitfield.
12614
1adbb361
AO
126152012-04-13 Alexandre Oliva <aoliva@redhat.com>
12616
12617 PR debug/48866
12618 * df.h (enum debug_temp_where): New.
12619 (dead_debug_init, dead_debug_finish) Declare.
12620 (dead_debug_add, dead_debug_insert_temp): Declare.
12621 (struct dead_debug_use, struct dead_debug): Moved from...
12622 * df-problems.c: ... here.
12623 (df_set_unused_notes_for_mw): Bind debug uses of unused regno
12624 to a debug temp.
12625 (df_create_unused_note): Likewise.
12626 (df_set_dead_notes_for_mw): Move comment where it belongs.
12627 (dead_debug_init): Export.
12628 (dead_debug_reset_uses): New, factored out of...
12629 (dead_debug_finish): ...this. Export.
12630 (dead_debug_reset): Remove.
12631 (dead_debug_add): Export.
12632 (dead_debug_insert_before): Rename to...
12633 (dead_debug_insert_temp): ... this. Add where argument. Export.
12634 Locate stored value for BEFORE_WITH_VALUE. Avoid repeat inserts.
12635 Return insertion count.
12636 (df_note_bb_compute): Adjust.
12637 * dce.c (word_dce_process_block): Adjust dead debug uses.
12638 (dce_process_block): Likewise.
12639
6ae1d471
AO
126402012-04-13 Alexandre Oliva <aoliva@redhat.com>
12641
12642 * df-problems.c (df_note_bb_compute): Do not take note of
12643 debug uses for whose REGs we won't emit DEAD or UNUSED notes.
12644
6a184afa
AO
126452012-04-13 Alexandre Oliva <aoliva@redhat.com>
12646
12647 PR debug/51570
12648 * var-tracking.c (expand_depth): New type.
12649 (onepart_aux, expand_loc_callback_data): Change depth type to it.
12650 (loc_exp_dep_alloc): Adjust initializer.
12651 (update_depth): Use new type. Add entryvals.
12652 (vt_expand_var_loc_chain): Take note of expansions with
12653 ENTRY_VALUEs, but don't accept them right away. Run an optional
12654 second pass accepting the minimum ENTRY_VALUE count found in the
12655 first pass.
12656 (vt_expand_loc_callback, INIT_ELCD): Adjust.
12657
46301137
TV
126582012-04-13 Tom de Vries <tom@codesourcery.com>
12659
12660 * tree-ssa-tail-merge.c (gsi_advance_bw_nondebug_nonlocal): Add
12661 parameters vuse and vuse_escaped.
12662 (find_duplicate): Init vuse1, vuse2 and vuse_escaped. Pass to
12663 gsi_advance_bw_nondebug_nonlocal. Return if vuse_escaped and
12664 vuse1 != vuse2.
12665
95df37bf
RG
126662012-04-13 Richard Guenther <rguenther@suse.de>
12667
12668 PR tree-optimization/52969
12669 * tree-if-conv.c (predicate_mem_writes): Properly gimplify
12670 the condition for the COND_EXPR and handle predicate negation
12671 by swapping the COND_EXPR arms.
12672
7911cc9e
NC
126732012-04-13 Nick Clifton <nickc@redhat.com>
12674
12675 * config/rl78/rl78.c (rl78_devirt_pass): Remove use of
12676 TODO_dump_func flag.
12677
d66b8f4b
AB
126782012-04-13 Andrey Belevantsev <abel@ispras.ru>
12679
12680 PR rtl-optimization/52203
12681 PR rtl-optimization/52715
12682
12683 Revert the 2012-03-07 fix for PR 52203.
12684 * sel-sched.c (reset_sched_cycles_in_current_ebb): Check that
12685 the insn does not modify DFA right before issuing, adjust
12686 issue_rate accordingly.
12687
1e867b22
RG
126882012-04-13 Richard Guenther <rguenther@suse.de>
12689
12690 PR c/52549
12691 * c-typeck.c (pointer_diff): Remove bogus assert.
12692
09c2b6d0
RG
126932012-04-13 Richard Guenther <rguenther@suse.de>
12694
12695 PR c/52862
8861ba4d 12696 * convert.c (convert_to_pointer): Remove special-casing of zero.
09c2b6d0 12697
572a49c8
JY
126982012-04-13 Joey Ye <joey.ye@arm.com>
12699
12700 * config/arm/constraints.md (Pe): New constraint.
12701 * config/arm/arm.md: New split for imm 256-510.
12702
50f75124
TG
127032012-04-13 Terry Guo <terry.guo@arm.com>
12704
12705 * config/arm/arm-cores.def: Added core cortex-m0plus.
12706 * config/arm/arm-tune.md: Regenerated.
12707 * config/arm/arm-tables.opt: Regenerated.
12708 * doc/invoke.texi: Added entry for cpu ARM cortex-m0plus.
12709
e8e029df
AM
127102012-04-13 Alan Modra <amodra@gmail.com>
12711
12712 PR target/52828
12713 * config/rs6000/rs6000.c (rs6000_emit_stack_tie): Rewrite with
12714 tie regs on destination of sets. Delete forward declaration.
12715 (rs6000_emit_stack_reset): Update rs6000_emit_stack_tie calls.
12716 (rs6000_emit_prologue): Likewise.
12717 (rs6000_emit_epilogue): Likewise. Use in place of gen_frame_tie
12718 and gen_stack_tie.
12719 (is_mem_ref): Use tie_operand to recognise stack ties.
12720 * config/rs6000/predicates.md (tie_operand): New.
12721 * config/rs6000/rs6000.md (restore_stack_block): Generate new
12722 stack tie rtl.
12723 (restore_stack_nonlocal): Likewise.
12724 (stack_tie): Update.
12725 (frame_tie): Delete.
12726
1ede5f2c
BS
127272012-04-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12728
12729 * tree-ssa-reassoc.c (attempt_builtin_powi_stats): Change %ld to
12730 HOST_WIDE_INT_PRINT_DEC in format strings.
12731
2ff5ea2d
UB
127322012-04-12 Uros Bizjak <ubizjak@gmail.com>
12733
12734 PR target/52932
12735 * config/i386/avx2intrin.h (_mm256_permutevar8x32_ps): Change second
12736 argument type to __m256i. Update call to __builtin_ia32_permvarsf256.
12737 * config/i386/sse.md (UNSPEC_VPERMVAR): New.
12738 (UNSPEC_VPERMSI, UNSPEC_VPERMSF): Remove.
12739 (avx2_permvarv8sf, avx2_permvarv8si): Switch operands 1 and 2.
12740 (avx2_permvar<mode>): Macroize insn from avx2_permvarv8sf and
12741 avx2_permvarv8si using VI4F_256 mode iterator.
12742 * config/i386/i386.c (bdesc_args) <__builtin_ia32_permvarsf256>:
12743 Update builtin type to V8SF_FTYPE_V8SF_V8SI.
12744 (ix86_expand_vec_perm): Update calls to gen_avx2_permvarv8si and
12745 gen_avx2_permvarv8sf.
12746 (expand_vec_perm_pshufb): Ditto.
12747
c3f8384f
MM
127482012-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
12749
12750 PR target/52775
12751 * config/rs6000/rs6000.h (TARGET_FCFID): Add TARGET_PPC_GPOPT to
12752 the list of options to enable the FCFID instruction.
12753 (TARGET_EXTRA_BUILTINS): Adjust comment.
12754
a6f8851e
BS
127552012-04-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12756
12757 PR tree-optimization/18589
12758 * tree-ssa-reassoc.c (reassociate_stats): Add two fields.
12759 (operand_entry): Add count field.
12760 (add_repeat_to_ops_vec): New function.
12761 (completely_remove_stmt): Likewise.
12762 (remove_def_if_absorbed_call): Likewise.
12763 (remove_visited_stmt_chain): Remove feeding builtin pow/powi calls.
12764 (acceptable_pow_call): New function.
12765 (linearize_expr_tree): Look for builtin pow/powi calls and add operand
12766 entries with repeat counts when found.
12767 (repeat_factor_d): New struct and associated typedefs.
12768 (repeat_factor_vec): New static vector variable.
12769 (compare_repeat_factors): New function.
12770 (get_reassoc_pow_ssa_name): Likewise.
12771 (attempt_builtin_powi): Likewise.
12772 (reassociate_bb): Call attempt_builtin_powi.
12773 (fini_reassoc): Two new calls to statistics_counter_event.
12774
452aa9c5
RG
127752012-04-12 Richard Guenther <rguenther@suse.de>
12776
12777 * Makefile.in (cgraphunit.o): Add $(EXCEPT_H) dependency.
12778 * cgraph.h (tree_rest_of_compilation): Remove.
12779 * cgraph.c (cgraph_add_new_function): Move ...
12780 * cgraphunit.c (cgraph_add_new_function): ... here.
12781 (tree_rest_of_compilation): Make static.
12782 (cgraph_expand_function): Do not set cgraph_function_flags_ready.
12783 * tree-optimize.c (gate_all_optimizations, pass_all_optimizations,
12784 gate_all_early_local_passes, execute_all_early_local_passes,
12785 pass_early_local_passes, gate_all_early_optimizations,
12786 pass_all_early_optimizations): Move ...
12787 * passes.c (gate_all_optimizations, pass_all_optimizations,
12788 gate_all_early_local_passes, execute_all_early_local_passes,
12789 pass_early_local_passes, gate_all_early_optimizations,
12790 pass_all_early_optimizations): ... here.
12791 * tree-optimize.c (execute_free_datastructures): Remove.
12792 * tree-flow.h (execute_free_datastructures): Remove.
12793 * tree-optimize.c (execute_init_datastructures,
12794 pass_init_datastructures): Move ...
12795 * tree-ssa.c (execute_init_datastructures,
12796 pass_init_datastructures): ... here.
12797 * cfgexpand.c (gimple_expand_cfg): Inline-expand call to
12798 execute_free_datastructures.
12799
acf41a74
BS
128002012-04-12 Bernd Schmidt <bernds@codesourcery.com>
12801
12802 * dbgcnt.def (ira_move): New counter.
12803 * ira-int.h (ira_create_new_reg): Declare function.
12804 (first_moveable_pseudo, last_moveable_pseudo): Declare variables.
12805 * ira-emit.c (ira_create_new_reg): Renamed from craete_new_reg and
12806 no longer static. All callers changed.
12807 * ira.c: Include "dbgcnt.h".
12808 (rtx_moveable_p, insn_dominated_by_p, find_moveable_pseudos,
12809 move_unallocated_pseudos): New static functions.
12810 (first_moveable_pseudo, last_moveable_pseudo): New global variables.
12811 (pseudo_replaced_reg, pseudo_move_insn): New static variables.
12812 (ira): Call find_moveable_pseudos and move_unallocated_pseudos.
12813 * ira-costs.c (find_costs_and_classes): Assign a memory cost of zero
12814 to the pseudos generated in find_moveable_pseudos.
12815 * Makefile.in (ira.o): Add $(DBGCNT_H).
12816
5f1fab58
RG
128172012-04-12 Richard Guenther <rguenther@suse.de>
12818
12819 PR tree-optimization/52943
12820 * tree-chrec.h (chrec_is_positive): Remove.
12821 * tree-scalar-evolution.c (chrec_is_positive): Move ...
12822 * tree-data-ref.c (chrec_is_positive): ... here. Make static.
12823 Return false for a constant zero instead of negative.
12824 (analyze_siv_subscript_cst_affine): Handle zero difference
12825 in the initial condition explicitely.
12826
e5b332cd
RG
128272012-04-12 Richard Guenther <rguenther@suse.de>
12828
12829 * tree-parloops.c (parallelize_loops): Also consult the upper
12830 bound for the number of iterations.
12831 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
12832 (loop_prefetch_arrays): Likewise.
12833
652c4c71
RG
128342012-04-12 Richard Guenther <rguenther@suse.de>
12835
12836 * cfgloop.h (estimated_loop_iterations_int): Ditch
12837 'conservative' parameter.
12838 (max_stmt_executions_int): Likewise.
12839 (estimated_loop_iterations): Likewise.
12840 (max_stmt_executions): Likewise.
12841 (max_loop_iterations): Declare.
12842 (max_loop_iterations_int): Likewise.
12843 (estimated_stmt_executions): Likewise.
12844 (estimated_stmt_executions_int): Likewise.
12845 * tree-ssa-loop-niter.c (estimated_loop_iterations):
12846 Split parts to ...
12847 (max_loop_iterations): ... this.
12848 (estimated_loop_iterations_int): Split parts to ...
12849 (max_loop_iterations_int): ... this.
12850 (max_stmt_executions_int): Split parts to ...
12851 (estimated_stmt_executions_int): ... this.
12852 (max_stmt_executions): Split parts to ...
12853 (estimated_stmt_executions): ... this.
12854 * graphite-sese-to-poly.c (build_loop_iteration_domains): Adjust.
12855 * predict.c (predict_loops): Likewise.
12856 * tree-data-ref.c (max_stmt_executions_tree): Likewise.
12857 (analyze_siv_subscript_cst_affine): Likewise.
12858 (compute_overlap_steps_for_affine_1_2): Likewise.
12859 (analyze_subscript_affine_affine): Likewise.
12860 (init_omega_for_ddr_1): Likewise.
12861 * tree-parloops.c (parallelize_loops): Likewise.
12862 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
12863 (may_eliminate_iv): Likewise.
12864 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Likewise.
12865 (loop_prefetch_arrays): Likewise.
12866 * tree-vrp.c (adjust_range_with_scev): Likewise.
12867
23d0939b
OE
128682012-04-12 Oleg Endo <olegendo@gcc.gnu.org>
12869
12870 * config/sh/sh.h (RETURN_ADDR_RTX): Use NULL_RTX instead of 0.
12871 * config/sh/sh.c (INSN_REGMODE_WEIGHT, CURR_REGMODE_PRESSURE):
12872 Fix line width.
12873 (dump_table): Use bool type for need_align and have_df variables.
12874 (find_barrier, sfunc_uses_reg): Use NULL_RTX instead of 0.
12875 (regs_used): Remove register modifier.
12876 (barrier_align): Move variables slot, credit, jump_to_next
12877 into if block above for loop. Use bool type for jump_to_next.
12878 (sh_function_arg): Use NULL_RTX instead of 0.
12879
dee16055
AS
128802012-04-11 Andreas Schwab <schwab@linux-m68k.org>
12881
12882 * config/m68k/m68k.md (rotrhi3+1): Name it rotrhi_lowpart.
12883 (bswapsi2): New expander.
12884
98bf0377
L
128852012-04-11 H.J. Lu <hongjiu.lu@intel.com>
12886
12887 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Defined to
12888 0x60000000 if __x86_64 is defined and __LP64__ isn't defined.
12889
de6f3f7a
L
128902012-04-11 H.J. Lu <hongjiu.lu@intel.com>
12891
12892 PR rtl-optimization/52876
12893 * emit-rtl.c (set_reg_attrs_from_value): Handle arbitrary value.
27dd0a95 12894 Don't call mark_reg_pointer for incompatible pointer sign extension.
de6f3f7a 12895
dee16055 12896 * reginfo.c (reg_scan_mark_refs): Call set_reg_attrs_from_value
de6f3f7a
L
12897 directly.
12898
d3ea1dbd
BS
128992012-04-11 Bernd Schmidt <bernds@codesourcery.com>
12900
12901 * fold-const.c (fold_unary_loc): Use GET_MODE_PRECISION for
12902 comparisons against TYPE_PRECISION.
12903 * tree-ssa-forwprop.c (combine_conversions): Likewise.
12904
c634f4ba
XDL
129052012-04-11 Xinliang David Li <davidxl@google.com>
12906
12907 * tree-passes.h: Remove TODO_dump_func.
12908 * tree-ssa-tail-merge.c (tail_merge_optimize): Remove TODO_dump_func.
12909 * trans-mem.c: Remove TODO_dump_func.
12910 * ira.c: Remove TODO_dump_func.
12911
ed6205b7
L
129122012-04-11 H.J. Lu <hongjiu.lu@intel.com>
12913
12914 * config/i386/i386.c (ix86_option_override_internal): Check
12915 SUBTARGET_OVERRIDE_OPTIONS and SUBSUBTARGET_OVERRIDE_OPTIONS
12916 after TARGET_64BIT is updated.
12917
a1fa0e6c
OE
129182012-04-11 Oleg Endo <olegendo@gcc.gnu.org>
12919
12920 * config/sh/sh.h: Remove old secondary reload code.
12921
e6b8b8c7
OE
129222012-04-11 Oleg Endo <olegendo@gcc.gnu.org>
12923
12924 * config/sh/sh.c (SCHED_REORDER): Merge macro into ...
12925 (ready_reorder): ... this function.
12926
7861732f
BS
129272012-04-11 Bernd Schmidt <bernds@codesourcery.com>
12928
12929 * sel-sched.c (sel_global_init): Swap order of sched_rgn_init and
12930 sched_init calls.
12931
05641603
BS
12932 * haifa-sched.c (prune_ready_list): Rework handling of SCHED_GROUP_P
12933 insns so that no other insn is queued for a time before them.
12934
0c51653d
BS
12935 * config/c6x/c6x.md (load_got_gotoff): Set op_pattern attribute to
12936 unknown.
12937
754870ed
RG
129382012-04-11 Richard Guenther <rguenther@suse.de>
12939
12940 PR middle-end/52621
12941 * tree-chrec.c (evolution_function_is_invariant_rec_p): Properly
12942 consider loop nesting.
12943 (evolution_function_is_univariate_p): Properly check the remainder
12944 for chrecs.
12945
405af656
RG
129462012-04-11 Richard Guenther <rguenther@suse.de>
12947
12948 PR middle-end/52918
2ff5ea2d 12949 * except.c (sjlj_emit_dispatch_table): Properly update loop structure.
405af656 12950
cf5025b6
NC
129512012-04-11 Nick Clifton <nickc@redhat.com>
12952
12953 * config/rl78/rl78.c (rl78_expand_prologue): Set stack use
12954 information, if requested.
12955
84e60183
NC
12956 * config/rx/rx.c (rx_expand_prologue): Likewise.
12957
7bc14a04
PB
129582012-04-11 Peter Bergner <bergner@vnet.ibm.com>
12959 Michael Matz <matz@suse.de>
12960
12961 PR target/16458
12962 * rtlanal.c (unsigned_reg_p): New function.
12963 Update copyright notice dates.
12964 * rtl.h (unsigned_reg_p): Prototype it.
12965 Update copyright notice dates.
12966 * config/rs6000/rs6000.c (rs6000_generate_compare): Use it.
12967 Update comment.
12968 * expr.c (expand_expr_real_1): Set register attributes.
12969 * stmt.c (expand_case): Likewise.
12970
8c2a3f3b
OE
129712012-04-11 Oleg Endo <olegendo@gcc.gnu.org>
12972
12973 PR target/50751
12974 * config/sh/sh-protos.h (sh_legitimate_index_p): Add new arguments
12975 consider_sh2a and allow_zero.
12976 * config/sh/sh.c (sh_legitimate_index_p): Likewise.
12977 (disp_addr_displacement): New function.
12978 (sh_address_cost): Use disp_addr_displacement function instead
12979 of DISP_ADDR_OFFSET.
12980 (sh_legitimate_address_p): Adapt to changed
12981 sh_legitimate_index_p declaration.
12982 (sh_find_mov_disp_adjust): Remove HImode check.
12983 (sh_secondary_reload): Add HImode case. Use satisfies_constraint_Sdd,
12984 disp_addr_displacement and max_mov_insn_displacement.
12985 (max_mov_insn_displacement): Remove HImode check.
cf5025b6 12986 * config/sh/sh.h (CONST_OK_FOR_K04, CONST_OK_FOR_K12,
8c2a3f3b
OE
12987 DISP_ADDR_P, DISP_ADDR_OFFSET): Remove.
12988 * config/sh/constraints.md (K05, K13): New constraints.
12989 (K12): Correct comment.
12990 (Sdd): Do not use DISP_ADDR_P macro.
12991 (Snd, Sbw): Use satisfies_constraint_Sdd.
12992 * config/sh/sh.md (extendhisi2): Remove constraints from expander.
12993 (*extendhisi2_compact, movhi_i): Remove.
12994 (*extendhisi2_compact_reg, *extendhisi2_compact_mem_disp,
12995 *extendhisi2_compact_mem_disp, *extendhisi2_compact_snd,
12996 *movhi_reg_reg, *movhi_store_mem_disp05, *movhi_store_mem_disp13,
12997 *movhi_load_mem_disp, *movhi_load_mem_disp, *movhi): New insns.
12998 (*extendqisi2_compact_mem_disp, *extendqisi2_compact_mem_disp,
12999 *movqi_store_mem_disp04, *movqi_store_mem_disp12, *movqi_load_mem_disp,
13000 *movqi_load_mem_disp): Use sh_legitimate_index_p instead of
13001 CONST_OK_FOR_Kxx.
13002 Add new peepholes for HImode displacement addressing.
13003
32ed5fcc
OE
130042012-04-11 Oleg Endo <olegendo@gcc.gnu.org>
13005
13006 * config/sh/sh.h (SIDI_OFF): Remove.
13007 * config/sh/sh.md: Use gen_highpart and gen_lowpart to access
13008 DImode subregs instead of gen_rtx_REG or simplifly_gen_subreg
13009 or operand_subword.
13010
ac868f29
EB
130112012-04-11 Eric Botcazou <ebotcazou@adacore.com>
13012
13013 PR target/52624
13014 * doc/extend.texi (Other Builtins): Document __builtin_bswap16.
13015 (PowerPC AltiVec/VSX Built-in Functions): Remove it.
13016 * doc/md.texi (Standard Names): Add bswap.
13017 * builtin-types.def (BT_UINT16): New primitive type.
13018 (BT_FN_UINT16_UINT16): New function type.
13019 * builtins.def (BUILT_IN_BSWAP16): New.
13020 * builtins.c (expand_builtin_bswap): Add TARGET_MODE argument.
13021 (expand_builtin) <BUILT_IN_BSWAP16>: New case. Pass TARGET_MODE to
13022 expand_builtin_bswap.
13023 (fold_builtin_bswap): Add BUILT_IN_BSWAP16 case.
13024 (fold_builtin_1): Likewise.
13025 (is_inexpensive_builtin): Likewise.
13026 * optabs.c (expand_unop): Deal with bswap in HImode specially. Add
13027 missing bits for bswap to libcall code.
13028 * tree.c (build_common_tree_nodes): Build uint16_type_node.
13029 * tree.h (enum tree_index): Add TI_UINT16_TYPE.
13030 (uint16_type_node): New define.
13031 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_BSWAP_HI): Delete.
13032 * config/rs6000/rs6000.c (rs6000_expand_builtin): Remove handling of
13033 above builtin.
13034 (rs6000_init_builtins): Likewise.
13035 * config/rs6000/rs6000.md (bswaphi2): Add TARGET_POWERPC predicate.
13036
ada37101
TG
130372012-04-11 Tristan Gingold <gingold@adacore.com>
13038
13039 * doc/extend.texi (Type Attributes): Move paragraph.
13040
9fec0042
MLI
130412012-04-11 Manuel López-Ibáñez <manu@gcc.gnu.org>
13042
13043 PR 24985
dee16055 13044 * diagnostic.h (show_caret): Declare.
9fec0042
MLI
13045 (caret_max_width): Declare.
13046 (diagnostic_show_locus): Declare.
dee16055
AS
13047 * diagnostic.c (diagnostic_initialize): Initialize to false.
13048 (diagnostic_show_locus): New.
13049 (diagnostic_report_diagnostic): Call it.
9fec0042
MLI
13050 (getenv_columns): New.
13051 (adjust_line): New.
13052 (diagnostic_set_caret_max_width): New.
dee16055 13053 * input.c (read_line): New.
9fec0042 13054 (location_get_source_line): New.
dee16055
AS
13055 * input.h (location_get_source_line): Declare.
13056 * toplev.c (general_init): Initialize show_caret from options.
13057 * dwarf2out.c (gen_producer_string): Handle fdiagnostics-show-caret.
13058 * opts.c (common_handle_option): Likewise.
9fec0042
MLI
13059 * pretty-print.h (pp_get_prefix): New.
13060 (pp_base_get_prefix): New.
dee16055 13061 * common.opt (fdiagnostics-show-caret): New option.
9fec0042
MLI
13062 * doc/invoke.texi (fdiagnostics-show-caret): Document it.
13063
13a7578b
RG
130642012-04-11 Richard Guenther <rguenther@suse.de>
13065
13066 PR rtl-optimization/52881
13067 * ifcvt.c (find_if_case_2): Avoid speculating loop latches.
13068
12df9a2f
RG
130692012-04-11 Richard Guenther <rguenther@suse.de>
13070
13071 PR tree-optimization/52912
13072 * tree-ssa-threadupdate.c (thread_block): Tell the cfg
13073 manipulation code we are threading through a loop header
13074 to an exit destination.
13075
fd4116f4
MLI
130762012-04-10 Manuel López-Ibáñez <manu@gcc.gnu.org>
13077
13078 * tree.h (warn_if_unused_value): Move declaration from here.
13079 * stmt.c (warn_if_unused_value): Move definition from here.
13080
8ca92d04 130812012-04-10 Michael Matz <matz@suse.de>
0d0293ac
MM
13082
13083 * tree-vectorizer.h (_loop_vec_info.strided_stores): Rename to
13084 grouped_stores.
13085 (LOOP_VINFO_STRIDED_STORES): Rename to LOOP_VINFO_GROUPED_STORES.
13086 (struce _bb_vec_info.strided_stores): Rename to grouped_stores.
13087 (BB_VINFO_STRIDED_STORES): Rename to BB_VINFO_GROUPED_STORES.
13088 (STMT_VINFO_STRIDED_ACCESS): Rename to STMT_VINFO_GROUPED_ACCESS.
13089 (vect_strided_store_supported): Rename to vect_grouped_store_supported.
13090 (vect_strided_load_supported): Rename to vect_grouped_load_supported.
13091 (vect_transform_strided_load): Rename to vect_transform_grouped_load.
13092 (vect_record_strided_load_vectors): Rename to
13093 vect_record_grouped_load_vectors.
13094 * tree-vect-data-refs.c (vect_update_misalignment_for_peel):
13095 Rename use of above macros.
13096 (vect_verify_datarefs_alignment): Ditto.
13097 (vector_alignment_reachable_p): Ditto.
13098 (vect_peeling_hash_get_lowest_cost): Ditto.
13099 (vect_enhance_data_refs_alignment): Ditto.
13100 (vect_analyze_group_access): Ditto and rename stride to groupsize.
13101 (vect_analyze_data_ref_access): Rename "strided" to "grouped".
13102 (vect_strided_store_supported): Rename to vect_grouped_store_supported.
13103 (vect_strided_load_supported): Rename to vect_grouped_load_supported.
13104 (vect_transform_strided_load): Rename to vect_transform_grouped_load.
13105 (vect_record_strided_load_vectors): Rename to
13106 vect_record_grouped_load_vectors.
13107 * tree-vect-loop.c (new_loop_vec_info): Rename use of above macros.
13108 (destroy_loop_vec_info): Ditto.
13109 (vect_transform_loop): Ditto and rename strided_store to grouped_store.
13110 * tree-vect-slp.c (vect_build_slp_tree): Rename use of above macros.
13111 (vect_analyze_slp): Ditto.
13112 (new_bb_vec_info): Ditto.
13113 (destroy_bb_vec_info): Ditto.
13114 (vect_schedule_slp_instance): Ditto and rename strided_store to
13115 grouped_store.
13116 * tree-vect-stmts.c (vect_cost_strided_group_size): Rename to
13117 vect_cost_group_size.
13118 (vect_model_store_cost): Rename use of above macros and call
13119 to vect_cost_strided_group_size.
13120 (vect_model_load_cost): Ditto.
13121 (vectorizable_store): Ditto, rename strided_store to grouped_store
13122 and calls to renamed tree-vectorizer.h functions.
13123 (vectorizable_load): Ditto.
13124 (vect_transform_stmt): Rename use of above macros and strided_store
13125 to grouped_store.
13126
1f00098b
JH
131272012-04-10 Jan Hubicka <jh@suse.cz>
13128
13129 * cgraph.h: Remove misledaing comment on ipa-ref.h.
13130 (symtab_type): New enum.
13131 (symtab_node): New structure.
13132 (cgraph_node, varpool_node): Add symbol base type.
13133 (cgraph, varpool): New accestor functions.
13134 * cgraph.c (cgraph_create_node_1): Set symbol type.
13135 * varpool.c (varpool_node): Set symbol type.
13136
ca18edc5
UW
131372012-04-10 Ulrich Weigand <ulrich.weigand@linaro.org>
13138 Richard Sandiford <rdsandiford@googlemail.com>
13139
13140 * fwprop.c (propagate_rtx): Also set PR_CAN_APPEAR for subregs.
13141
e30459d5
RG
131422012-04-10 Richard Guenther <rguenther@suse.de>
13143
13144 PR middle-end/52888
13145 * gimple-low.c (gimple_check_call_args): Properly account for
13146 compatible aggregate types.
13147
0878843f
RG
131482012-04-10 Richard Guenther <rguenther@suse.de>
13149
13150 * toplev.h (tree_rest_of_compilation): Remove.
13151 * tree-optimize.c (tree_rest_of_compilation): Likewise.
13152 * cgraph.h (tree_rest_of_compilation): Declare.
13153 * tree-optimize.c (tree_rest_of_compilation): Move ...
13154 * cgraphunit.c (tree_rest_of_compilation): ... here.
13155 * cgraph.c (cgraph_add_new_function): Adjust.
13156 * Makefile.in (tree-optimize.o): Adjust.
13157 (cgraphunit.o): Likewise.
13158
c0d942d2
UW
131592012-04-10 Ulrich Weigand <ulrich.weigand@linaro.org>
13160
13161 PR tree-optimization/52870
13162 * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Verify that
13163 presumed pattern statement is within the same loop or basic block.
13164
5973ae1a
TG
131652012-04-10 Tristan Gingold <gingold@adacore.com>
13166
13167 * gengtype.c (main): Make uintptr_t a known type.
13168
26eb69c6
RG
131692012-04-10 Richard Guenther <rguenther@suse.de>
13170
13171 * tree-pass.h (tree_lowering_passes): Remove.
13172 * tree-optimize.c (tree_lowering_passes): Remove.
13173 * cgraph.c (cgraph_add_new_function): Inline relevant parts
2ff5ea2d 13174 of tree_lowering_passes, avoid redundant call of early local passes.
26eb69c6
RG
13175 * cgraphunit.c (cgraph_lower_function): Fold into ...
13176 (cgraph_analyze_function): ... its single caller. Inline
13177 relevant parts of tree_lowering_passes.
13178
3271a0c0
L
131792012-04-09 H.J. Lu <hongjiu.lu@intel.com>
13180
13181 PR other/52777
13182 * config/pa/pa.opt: Remove SIO and GNU_LD.
13183
3c56b037
JH
131842012-04-09 Jan Hubicka <jh@suse.cz>
13185
13186 PR lto/52722
13187 PR lto/51765
dee16055 13188 PR lto/52634
2ff5ea2d
UB
13189 * lto-cgraph.c (compute_ltrans_boundary): When alias is in the
13190 boundary, add its target too.
3c56b037
JH
13191 * lto.c (add_references_to_partition): Add also aliased nodes.
13192 (add_cgraph_node_to_partition,
13193 add_varpool_node_to_partition): Work on nodes, not functions/variables;
13194 when adding alias, add also the aliased object.
13195
3cb2b15b
UB
131962012-04-09 Uros Bizjak <ubizjak@gmail.com>
13197
13198 PR target/52883
13199 * config/i386/predicates.md (x86_64_zext_general_operand): Prevent
13200 VOIDmode immediate operands.
13201 * config/i386/constraints.md (Wz): New constraint.
13202 * config/i386/i386.md (*zero_extendsidi2_rex64): Use Wz instead of Z.
13203
5ff5b41c
EB
132042012-04-09 Eric Botcazou <ebotcazou@adacore.com>
13205
13206 PR target/52717
13207 * config/sparc/sparc.c (sparc_file_end): Set TREE_PUBLIC explicitly on
13208 the DECL generated for the special GOT helper.
13209
7df2d73c
OE
132102012-04-09 Oleg Endo <olegendo@gcc.gnu.org>
13211
13212 * config/sh/constraints.md: Update list of constraints in
13213 comment block.
13214 (Sr0): Remove unused memory constraint.
13215
8772bd54
MLI
132162012-04-08 Manuel López-Ibáñez <manu@gcc.gnu.org>
13217
13218 * tree-pretty-print.h: Update comment.
13219
6b45f126
OE
132202012-04-08 Oleg Endo <olegendo@gcc.gnu.org>
13221
4f3dfa27
OE
13222 * config/sh/sh.md: Use braced string notation where applicable.
13223 (*prefetch_i4, prefetch_m2a): Merge into ...
6b45f126
OE
13224 (*prefetch): ... this new insn.
13225
fae61228
OE
132262012-04-07 Oleg Endo <olegendo@gcc.gnu.org>
13227
13228 * config/sh/sh.h (high_life_started): Remove
13229 * config/sh/predicates.md (general_movdst_operand): Use
13230 'reload_in_progress' instead of 'high_life_started'.
13231 * config/sh/sh.md (divsi_inv_call, *divsi_inv_call_combine,
13232 divsi_inv_fp): Likewise.
13233
2ef6611e
OE
132342012-04-07 Oleg Endo <olegendo@gcc.gnu.org>
13235
13236 * config/sh/sh-protos.h (prepare_move_operands): Return void
13237 instead of int.
13238 * config/sh/sh.c (prepare_move_operands): Likewise.
13239 * config/sh/sh.md: Remove return value checks of prepare_move_operands.
13240
df4f5d5f
OE
132412012-04-07 Oleg Endo <olegendo@gcc.gnu.org>
13242
13243 * config/sh/sh-protos.h (fp_int_operand, symbol_ref_operand,
13244 general_movsrc_operand, general_movdst_operand, arith_reg_operand,
13245 fp_arith_reg_operand, arith_operand, arith_reg_or_0_operand,
13246 logical_operand, fpscr_operand, fpul_operand, expand_fp_branch,
13247 commutative_float_operator, noncommutative_float_operator,
13248 sh_handle_pragma): Remove.
13249
f2dcf9b8
SL
132502012-04-06 Sandra Loosemore <sandra@codesourcery.com>
13251
13252 * doc/invoke.texi: Clean up Texinfo markup throughout the file.
13253 Use @option markup on command-line options. Use @samp markup on
13254 literal keywords to options. Use @code markup on code fragments.
13255 Use other markup in preference to quotation marks in the text.
13256 Add markup to some passages without any.
13257
d25c4172
MS
132582012-04-06 Mike Stump <mikestump@comcast.net>
13259
13260 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Avoid warning.
13261
bdb7ddcc
OE
132622012-04-06 Oleg Endo <olegendo@gcc.gnu.org>
13263
13264 * config/sh/sh.c (hi_const): Remove.
13265 (find_barrier, sh_reorg): Use satisfies_constraint_I16 instead
13266 of hi_const.
13267
10c17a58
OE
132682012-04-06 Oleg Endo <olegendo@gcc.gnu.org>
13269
13270 * config/sh/sh-protos.h (sh_expand_t_scc): Change return type from int
13271 to bool.
13272 * config/sh/sh.c (sh_expand_t_scc): Likewise.
13273 * config/sh/sh.md (cstoresi4, cstoredi4): Remove GET_CODE checks before
13274 calling sh_expand_t_scc.
13275
aaf701c5
OE
132762012-04-06 Oleg Endo <olegendo@gcc.gnu.org>
13277
13278 * config/sh/sh-protos.h (fp_zero_operand, fp_one_operand,
13279 nonpic_symbol_mentioned_p, expand_block_move, expand_ashiftrt,
13280 sh_dynamicalize_shift_p, gen_shl_and, gen_shl_sext, system_reg_operand,
13281 reg_unused_after, sh_can_redirect_branch, sh_need_epilogue, fldi_ok,
13282 sh_hard_regno_rename_ok, sh_cfun_interrupt_handler_p,
13283 sh_cfun_resbank_handler_p, sh_attr_renesas_p, sh_cfun_attr_renesas_p,
13284 check_use_sfunc_addr, sh_contains_memref_p, sh_loads_bankedreg_p,
13285 sh2a_is_function_vector_call): Use bool as return type.
13286 (sh_pass_in_reg_p): Remove.
13287 * config/sh/sh.c (broken_move, mova_p, noncall_uses_reg, high_pressure,
13288 flow_dependent_p, sh2a_function_vector_p, expand_block_move,
13289 expand_ashiftrt, sh_dynamicalize_shift_p, gen_shl_and, gen_shl_sext,
13290 sh_need_epilogue, sh2a_is_function_vector_call, sh_attr_renesas_p,
13291 sh_cfun_attr_renesas_p, sh_cfun_interrupt_handler_p,
13292 sh_cfun_resbank_handler_p, system_reg_operand, fp_zero_operand,
13293 fp_one_operand, fldi_ok, reg_unused_after, sh_can_redirect_branch,
3cb2b15b 13294 sh_hard_regno_rename_ok, check_use_sfunc_addr, sh_contains_memref_p,
aaf701c5
OE
13295 sh_loads_bankedreg_p): Use bool as return type.
13296 (nonpic_symbol_mentioned_p): Use bool as return type. Remove
13297 'register' modifier.
13298
3805a93e
MT
132992012-04-06 Matt Turner <mattst88@gmail.com>
13300
13301 * doc/install.texi: Correct typo "-mno-lsc" -> "-mno-llsc".
13302
22be5918
EB
133032012-04-06 Eric Botcazou <ebotcazou@adacore.com>
13304
13305 * config/ia64/ia64.c (ia64_load_pair_ok): Return 0 if the second member
13306 of the destination isn't also a FP_REGS register.
13307
7b38ee83
TJ
133082012-04-05 Teresa Johnson <tejohnson@google.com>
13309 H.J. Lu <hongjiu.lu@intel.com>
13310
2ff5ea2d 13311 * config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_LCP_STALL.
7b38ee83
TJ
13312 * config/i386/i386.md (move immediate to memory peephole2):
13313 Add cases for HImode move when LCP stall avoidance is needed.
13314 * config/i386/i386.c (initial_ix86_tune_features): Initialize
13315 X86_TUNE_LCP_STALL entry.
13316
4bdd6fa6
UB
133172012-04-05 Uros Bizjak <ubizjak@gmail.com>
13318
13319 PR target/52882
13320 * config/i386/i386.c (ix86_decompose_address): Allow VOIDmode
13321 CONST_INT operands, zero-extended with AND.
13322
9b9ad23f
OE
133232012-04-05 Oleg Endo <olegendo@gcc.gnu.org>
13324
13325 PR target/50751
13326 * config/sh/sh.c (sh_find_mov_disp_adjust): Take machine_mode as the
13327 first argument instead of mode size. Move displacement calculations
13328 to ...
4bdd6fa6 13329 (mov_insn_size, max_mov_insn_displacement, mov_insn_alignment_mask):
9b9ad23f
OE
13330 ... these new functions.
13331 (disp_adjust): Remove max_mov_disp field.
13332 (sh_legitimate_index_p): Use max_mov_insn_displacement and
13333 mov_insn_alignment_mask.
13334 (sh_address_cost): Use max_mov_insn_displacement.
13335
14f986ed
AS
133362012-04-05 Andrew Stubbs <ams@codesourcery.com>
13337
13338 * config/arm/arm.md (arch): Add neon_onlya8 and neon_nota8.
13339 (arch_enabled): Handle new arch types.
13340 (one_cmpldi2): Add NEON support.
13341
216820a4
RG
133422012-04-05 Richard Guenther <rguenther@suse.de>
13343
13344 * gimple.c (walk_gimple_op): Compute val_only for the LHS
13345 of an assigment in the canonical way, avoiding is_gimple_mem_rhs.
13346 (is_gimple_mem_rhs, is_gimple_reg_rhs, is_gimple_stmt): Move ...
13347 * gimplify.c (is_gimple_mem_rhs, is_gimple_reg_rhs, is_gimple_stmt):
13348 ... here and make static.
13349 * gimple.h (is_gimple_mem_rhs, is_gimple_reg_rhs, is_gimple_stmt):
13350 Remove.
13351
eaf6ca18
RG
133522012-04-05 Richard Guenther <rguenther@suse.de>
13353
13354 * tree-ssa-dse.c (dse_optimize_stmt): Remember the stmt
13355 basic-block before removing it.
13356
14f60a5a
RG
133572012-04-05 Richard Guenther <rguenther@suse.de>
13358
13359 * tree-ssanames.c (release_dead_ssa_names): Compact the SSA
13360 version namespace as we release the freelist.
13361
3d3f2249
RG
133622012-04-05 Richard Guenther <rguenther@suse.de>
13363
13364 * tree-nrv.c (tree_nrv): Release VDEFs.
13365 * tree-sra.c (sra_modify_constructor_assign): Likewise.
13366 (sra_modify_assign): Likewise.
13367 * tree-vect-stmts.c (vect_remove_stores): Likewise.
13368 * tree-vect-loop.c (vect_transform_loop): Likewise.
13369 * tree-ssa-dom.c (optimize_stmt): Likewise.
13370 * tree-vect-slp.c (vect_schedule_slp): Likewise.
13371 * tree-ssa-math-opts.c (execute_cse_sincos): Likewise.
13372
b5b3ec3e
RG
133732012-04-05 Richard Guenther <rguenther@suse.de>
13374
13375 * gimple-iterator.c (gsi_remove): Return whether EH edges need to be
13376 cleanup.
13377 * gimple.h (gsi_remove): Adjust.
13378 * tree-ssa-operands.c (unlink_stmt_vdef): Optimize.
13379 * tree-ssa-dom.c (optimize_stmt): Use gsi_remove result.
13380 * tree-ssa-dse.c (dse_optimize_stmt): Likewise.
13381 * tree-ssa-forwprop.c (remove_prop_source_from_use): Likewise.
13382 * tree-ssa-math-opts.c (execute_optimize_widening_mul): Likewise.
13383 * tree-ssa-pre.c (eliminate): Likewise.
13384
929e10f4
MS
133852012-04-04 Mike Stump <mikestump@comcast.net>
13386
13387 * doc/rtl.texi (const_double): Document as sign-extending.
2ff5ea2d 13388 * expmed.c (expand_mult): Ensure we don't use shift incorrectly.
929e10f4
MS
13389 * emit-rtl.c (immed_double_int_const): Refine to state the
13390 value is signed.
13391 * simplify-rtx.c (mode_signbit_p): Add a fixme for wider than
13392 CONST_DOUBLE integers.
13393 (simplify_const_unary_operation, UNSIGNED_FLOAT): Ensure no
13394 negative values are converted. Fix conversions bigger than
13395 HOST_BITS_PER_WIDE_INT.
2ff5ea2d 13396 (simplify_binary_operation_1): Ensure we don't use shift incorrectly.
929e10f4
MS
13397 (simplify_immed_subreg): Sign-extend CONST_DOUBLEs.
13398 * explow.c (plus_constant_mode): Add.
13399 (plus_constant): Implement with plus_constant_mode.
13400 * rtl.h (plus_constant_mode): Add.
13401
0b9066cf
RG
134022012-04-04 Richard Guenther <rguenther@suse.de>
13403
13404 PR tree-optimization/52808
2ff5ea2d 13405 * tracer.c (tail_duplicate): Do not tail-duplicate loop header blocks.
0b9066cf
RG
13406 * Makefile.in (tracer.o): Depend on $(CFGLOOP_H).
13407
9516c54e
TG
134082012-04-04 Tristan Gingold <gingold@adacore.com>
13409
13410 * expr.c (expand_expr_real_2): Handle larger sizetype in
13411 POINTER_PLUS_EXPR.
13412
407f43d7
KK
134132012-04-03 Kaz Kojima <kkojima@gcc.gnu.org>
13414
13415 * config/sh/t-sh (MULTILIB_MATCHES): Match m2a-single-only
13416 to m2a-single instead of m2e.
13417
1d0bafd9
EB
134182012-04-03 Eric Botcazou <ebotcazou@adacore.com>
13419
13420 * expr.c (get_bit_range): Add OFFSET parameter and adjust BITPOS.
13421 Change type of BITOFFSET to signed. Make sure the lower bound of
13422 the computed range is non-negative by adjusting OFFSET and BITPOS.
13423 (expand_assignment): Adjust call to get_bit_range.
13424
f4ea8112
SKS
134252012-04-03 Sandeep Kumar Singh <Sandeep.Singh2@kpitcummins.com>
13426
13427 * h8300/h8300.c (h8300_current_function_monitor_function_p):
dee16055
AS
13428 New function. Added to check monitor functions.
13429 (h8300_option_override): Modified to generate error/warning
13430 messages for invalid combinations of different command line
f4ea8112
SKS
13431 options.
13432 * h8300/h8300.md: Generate 'rte' for monitor functions. Do not
dee16055 13433 save EXR on stack for monitor function in case of H8S target
f4ea8112 13434 when "-mno-exr" is passed.
2ff5ea2d
UB
13435 * h8300/h8300-protos.h (h8300_current_function_monitor_function_p):
13436 Add prototype.
f4ea8112
SKS
13437 * doc/invoke.texi: Document H8S options.
13438
2f6935f4
TG
134392012-04-03 Tristan Gingold <gingold@adacore.com>
13440
13441 * configure.ac: Use GCC_AC_FUNC_MMAP_BLACKLIST instead
13442 of gcc_AC_FUNC_MMAP_BLACKLIST.
13443 * acinclude.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Remove.
13444 * Makefile.in (aclocal_deps): Add mmap.m4.
13445 * configure: Regenerate.
13446 * aclocal.m4: Regenerate.
13447
07b1bf20
RG
134482012-04-03 Richard Guenther <rguenther@suse.de>
13449
13450 PR tree-optimization/52808
13451 * tracer.c (tail_duplicate): Return whether we have duplicated
13452 any block.
13453 (tracer): If we have duplicated any block, cleanup the CFG.
13454 * cfghooks.c (duplicate_block): If we duplicated a loop
13455 header but not its loop, destroy the loop because it now has
13456 multiple entries.
13457 * tree-ssa-threadupdate.c (thread_through_loop_header): Tell
13458 the cfg manipulation routines we are not creating a multiple
13459 entry loop.
13460
90b2952f
TG
134612012-04-03 Tristan Gingold <gingold@adacore.com>
13462
13463 * config/vms/vms-c.c (vms_pragma_nomember_alignment): Handle
13464 'byte' alignment.
13465 (vms_c_common_override_options): Allow parameterless variadic
13466 functions.
13467
8a1da634
JJ
134682012-04-03 Jakub Jelinek <jakub@redhat.com>
13469
13470 PR tree-optimization/52835
13471 * tree-data-ref.c (build_rdg): Return NULL if
13472 compute_data_dependences_for_loop failed.
13473
1d3aa466
EB
134742012-04-03 Eric Botcazou <ebotcazou@adacore.com>
13475
13476 * varasm.c (initializer_constant_valid_for_bitfield_p): Return true
13477 for REAL_CST as well.
13478 (output_constructor): Use RECORD_OR_UNION_TYPE_P predicate.
13479 In the bitfield case, if the value is a REAL_CST, convert it first to
13480 an INTEGER_CST.
13481
0465e49e
L
134822012-04-02 H.J. Lu <hongjiu.lu@intel.com>
13483
13484 * config.gcc: Use i386/biarchx32.h instead of i386/biarch64.h
13485 for --with-abi={x32|mx32} or --with-multilib-list=mx32.
13486 (supported_defaults): Add abi for i[34567]86-*-* and x86_64-*-*.
13487
13488 * config/i386/biarchx32.h: New.
13489
107715f0
AS
134902012-04-02 Anatoly Sokolov <aesok@post.ru>
13491
13492 * config/arm/arm.h (PREFERRED_RELOAD_CLASS): Remove.
13493 * config/arm/arm.c (TARGET_PREFERRED_RELOAD_CLASS): Define.
13494 (arm_preferred_reload_class): New function.
13495
18ce8171
RG
134962012-04-02 Richard Guenther <rguenther@suse.de>
13497
13498 PR tree-optimization/52756
13499 * tree-ssa-threadupdate.c (def_split_header_continue_p): New function.
13500 (thread_through_loop_header): After threading through the loop latch
13501 remove the split part from the loop and clear further threading
13502 opportunities that would create a multiple entry loop.
13503
df09560e
RG
135042012-04-02 Richard Guenther <rguenther@suse.de>
13505
13506 PR rtl-optimization/52800
13507 * cprop.c (execute_rtl_cprop): Call cleanup_cfg with
13508 CLEANUP_CFG_CHANGED.
13509
225820ee
RG
135102012-04-02 Richard Guenther <rguenther@suse.de>
13511
13512 PR middle-end/52803
13513 * loop-init.c (gate_handle_loop2): Destroy loops here if
13514 we don't enter RTL loop optimizers.
13515
5bd5034e
UB
135162012-04-02 Uros Bizjak <ubizjak@gmail.com>
13517
13518 Partially revert:
13519 2012-03-29 Richard Guenther <rguenther@suse.de>
13520
13521 * rtl.h (extended_count): Remove.
13522 * combine.c (extended_count): Remove.
13523
cdc30df3
DS
135242012-04-02 Dodji Seketeli <dodji@redhat.com>
13525
13526 PR c++/40942
13527 * pt.c (more_specialized_fn): Don't apply decay conversion to
13528 types of function parameters.
13529
2a6e6fea
TG
135302012-04-02 Tristan Gingold <gingold@adacore.com>
13531
13532 * ggc-page.c (PAGE_L1_SIZE, PAGE_L2_SIZE, LOOKUP_L1, LOOKUP_L2)
13533 (ggc_allocated_p, lookup_page_table_entry, set_page_table_entry)
13534 (alloc_page, init_ggc, clear_marks, struct ggc_pch_data)
13535 (ggc_pch_this_base): Use uintptr_t instead of size_t.
13536
b6c0357f
L
135372012-03-31 H.J. Lu <hongjiu.lu@intel.com>
13538
13539 PR bootstrap/52784
13540 * config/i386/i386.c (ix86_option_override_internal): Don't
13541 check TARGET_64BIT if TARGET_64BIT_DEFAULT is false.
13542
8d960eda
EB
135432012-03-31 Eric Botcazou <ebotcazou@adacore.com>
13544
13545 * tree-cfg.c (call_can_make_abnormal_goto): New predicate.
13546 (stmt_can_make_abnormal_goto): Use it.
13547 (is_ctrl_altering_stmt): Likewise.
13548
57c7433f
N
135492012-03-30 Naveen H.S <naveen.S@kpitcummins.com>
13550 Kaz Kojima <kkojima@gcc.gnu.org>
13551
13552 * config/sh/sh.c (push_regs): Skip banked registers when
13553 resbank attribute is specified.
13554 (sh_expand_epilogue): Likewise.
13555
3825692d
RH
135562012-03-30 Richard Henderson <rth@redhat.com>
13557
13558 PR debug/52727
13559 * combine-stack-adj.c (prev_active_insn_bb): New.
13560 (next_active_insn_bb): New.
13561 (force_move_args_size_note): New.
13562 (combine_stack_adjustments_for_block): Use it.
13563
e025da0c
RH
135642012-03-30 Richard Henderson <rth@redhat.com>
13565
13566 * config/i386/i386.c (struct expand_vec_perm_d): Add one_operand_p.
13567 (ix86_expand_vector_init_duplicate): Initialize it.
13568 (expand_vec_perm_palignr): Likewise.
13569 (ix86_expand_vec_perm_const): Likewise.
13570 (ix86_vectorize_vec_perm_const_ok): Likewise.
13571 (expand_vec_perm_blend): Use it.
13572 (expand_vec_perm_vpermil): Likewise.
13573 (expand_vec_perm_pshufb): Likewise.
13574 (expand_vec_perm_1): Likewise.
13575 (expand_vec_perm_pshuflw_pshufhw): Likewise.
13576 (expand_vec_perm_interleave2): Likewise.
13577 (expand_vec_perm_vpermq_perm_1): Likewise.
13578 (expand_vec_perm_vperm2f128): Likewise.
13579 (expand_vec_perm_interleave3): Likewise.
13580 (expand_vec_perm_vperm2f128_vblend): Likewise.
13581 (expand_vec_perm_vpshufb2_vpermq): Likewise.
13582 (expand_vec_perm_vpshufb2_vpermq_even_odd): Likewise,.
13583 (expand_vec_perm_broadcast): Likewise.
13584 (expand_vec_perm_vpshufb4_vpermq2): Likewise.
13585
7b470faf
RH
135862012-03-30 Richard Henderson <rth@redhat.com>
13587
13588 * dwarf2out.c (gen_variable_die): Initialize off.
13589
c531f06a
TG
135902012-03-30 Tristan Gingold <gingold@adacore.com>
13591
13592 * config/vms/vms-f.c: New file.
13593 * config/vms/t-vms (vms-f.o): New rule.
13594 * config.gcc (*-*-*vms*): Define fortran_target_objs.
13595
fef205d5
RG
135962012-03-30 Richard Guenther <rguenther@suse.de>
13597
13598 PR tree-optimization/52754
13599 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only
13600 propagate arbitrary addresses into really plain dereferences.
13601
0b7fccfa
RG
136022012-03-30 Richard Guenther <rguenther@suse.de>
13603
13604 PR middle-end/52772
13605 * except.c (emit_to_new_bb_before): Move loop updating ...
13606 (dw2_build_landing_pads): ... here. Use a proper block for
13607 querying the loop father.
13608
fe5798c0
TG
136092012-03-30 Tristan Gingold <gingold@adacore.com>
13610
13611 * config/ia64/ia64.c (ia64_section_type_flags): Remove
13612 common_object attribute handling.
13613 (SECTION_VMS_OVERLAY): Remove
13614 (ia64_vms_common_object_attribute): Replace abort with an assert.
13615 Do not set DECL_SECTION_NAME.
13616 (ia64_vms_output_aligned_decl_common): Handle common_object
13617 attribute.
13618 (ia64_vms_elf_asm_named_section): Remove.
13619 * config/ia64/vms.h (TARGET_ASM_NAMED_SECTION): Remove.
13620
5cf01d62
RG
136212012-03-30 Richard Guenther <rguenther@suse.de>
13622
13623 PR middle-end/52786
13624 * double-int.c (rshift_double): Remove not needed cast.
13625
aeb83f09
RG
136262012-03-30 Richard Guenther <rguenther@suse.de>
13627
13628 * tree-affine.h (print_aff): Remove.
13629 * tree-affine.c (print_aff): Make static.
13630 * tree-data-ref.h (access_matrix_get_index_for_parameter): Remove.
13631 (get_references_in_stmt): Likewise.
13632 (print_direction_vector): Likewise.
13633 (print_dir_vectors): Likewise.
13634 (print_dist_vectors): Likewise.
13635 (dump_subscript): Likewise.
13636 (dump_ddrs): Likewise.
13637 (dump_dist_dir_vectors): Likewise.
13638 (dump_data_references): Likewise.
13639 (dump_data_dependence_relation): Likewise.
13640 (dump_data_dependence_direction): Likewise.
13641 (dump_rdg_vertex): Likewise.
13642 (dump_rdg_component): Likewise.
13643 (debug_ddrs): Declare.
13644 (struct data_ref_loc_d): Move ...
13645 * tree-data-ref.c (struct data_ref_loc_d): ... here.
13646 (get_references_in_stmt): Make static.
13647 (dump_data_references): Likewise.
13648 (dump_subscript): Likewise.
13649 (print_direction_vector): Likewise.
13650 (print_dir_vectors): Likewise.
13651 (print_dist_vectors): Likewise.
13652 (dump_data_dependence_relation): Likewise.
13653 (dump_dist_dir_vectors): Likewise.
13654 (dump_ddrs): Likewise.
13655 (dump_rdg_vertex): Likewise.
13656 (dump_rdg_component): Likewise.
13657 (debug_ddrs): New function.
13658 (access_matrix_get_index_for_parameter): Remove.
13659
b9268e55
TG
136602012-03-30 Tristan Gingold <gingold@adacore.com>
13661
13662 * config/vms/vms.c (VMS_CRTL_FLOAT32): Rename.
13663 (VMS_CRTL_FLOAT64, VMS_CRTL_FLOAT64_VAXD): New.
13664 (VMS_CRTL_FLOAT128, VMS_CRTL_DPML, VMS_CRTL_NODMPL)
13665 (VMS_CRTL_32ONLY, VMS_CRTL_G_MASK, VMS_CRTL_G_NONE)
13666 (VMS_CRTL_GA, VMS_CRTL_GL, VMS_CRTL_FLOATV2): New.
13667 (vms_patch_builtins): Handle new flags
13668 * config/vms/vms-crtlmap.map: Completed using nm on
13669 c and math system libraries.
13670 * config/vms/make-crtlmap.awk: Handle any number of flags.
13671
b9bebd7f
MJ
136722012-03-30 Martin Jambor <mjambor@suse.cz>
13673
13674 * tree-ssa-ccp.c (insert_clobbers_for_var): Do not assert that there
13675 is a builtin_stack_save in a dominating BB.
13676
a15d0d03
UB
136772012-03-29 Uros Bizjak <ubizjak@gmail.com>
13678
13679 * config/i386/sse.md (avx_h<plusminus_insn>v4df3): Fix results
13680 crossing 128bit lane boundary.
13681
d79318b7
VM
136822012-03-29 Vladimir Makarov <vmakarov@redhat.com>
13683
13684 * ira-color.c (setup_left_conflict_sizes_p): Process all
13685 conflicting objects.
13686
b84b294a
JJ
136872012-03-29 Jakub Jelinek <jakub@redhat.com>
13688
13689 PR tree-optimization/52760
13690 * tree-vect-slp.c (vect_get_constant_vectors): Convert constant_p
13691 shift count for {L,R}{SHIFT,ROTATE}_EXPR to TREE_TYPE (vector_type).
13692
711417cd
RG
136932012-03-29 Richard Guenther <rguenther@suse.de>
13694
13695 * cgraph.h (cgraph_materialize_all_clones): Remove.
13696 (reset_inline_failed): Likewise.
13697 * cgraphunit.c (cgraph_materialize_all_clones): Make static.
13698 * cgraphbuild.c (reset_inline_failed): Remove.
13699 * rtl.h (cse_main): Remove.
13700 (extended_count): Likewise.
13701 * cse.c (dump_class): Mark as DEBUG_FUNCTION.
13702 (cse_main): Make static.
13703 * combine.c (extended_count): Remove.
13704 (dump_combine_stats): Mark as DEBUG_FUNCTION.
13705 * basic-block.h (reorder_basic_blocks): Remove.
13706 * bb-reorder.c (reorder_basic_blocks): Make static.
13707 * Makefile.in (dse.o): Remove dse.h dependency.
13708 * dse.h: Remove.
13709 * dse.c (gate_dse): Remove.
13710 (clear_alias_mode_eq): Likewise.
13711 (clear_alias_mode_hash): Likewise.
13712 (dse_record_singleton_alias_set): Likewise.
13713 (dse_invalidate_singleton_alias_set): Likewise.
13714
a1ecc15c
L
137152012-03-29 H.J. Lu <hongjiu.lu@intel.com>
13716
13717 * config/linux-android.h (ANDROID_STARTFILE_SPEC): Use
13718 crtbegin_so%O%s for -shared.
13719 (ANDROID_ENDFILE_SPEC): Use crtend_so%O%s for -shared.
13720
6bcfb753
RG
137212012-03-29 Richard Guenther <rguenther@suse.de>
13722
13723 * tree-flow.h (struct pre_expr_d): Remove forward declaration.
13724 (add_to_value): Remove.
13725 (print_value_expressions): Likewise.
13726 * tree-ssa-pre.c (add_to_value): Make static.
13727 (print_value_expressions): Likewise.
13728 * gimple.h (gimple_adjust_this_by_delta): Remove.
13729 * gimple-fold.c (gimple_adjust_this_by_delta): Likewise.
13730
477fcae3
RG
137312012-03-29 Richard Guenther <rguenther@suse.de>
13732
13733 PR middle-end/50708
13734 * double-int.h (rshift_double): Remove.
6c381d9d 13735 * double-int.c (lshift_double): Use absu_hwi to make count positive.
477fcae3
RG
13736 (rshift_double): Make static, take unsigned count argument,
13737 remove handling of negative count argument.
13738 (double_int_rshift): Dispatch to lshift_double.
13739
1ab8b791
L
137402012-03-28 H.J. Lu <hongjiu.lu@intel.com>
13741
13742 * config/i386/biarch64.h (TARGET_64BIT_DEFAULT): Add
13743 OPTION_MASK_ABI_64.
13744
13745 * config/i386/gnu-user64.h (SPEC_64): Support TARGET_BI_ARCH == 2.
13746 (SPEC_X32): Likewise.
13747 (MULTILIB_DEFAULTS): Likewise.
13748
13749 * config/i386/i386.c (isa_opts): Remove -m64.
13750 (ix86_target_string): Properly handle -m32/-m64/-mx32.
13751 (ix86_option_override_internal): Properly
13752 set OPTION_MASK_ISA_64BIT and OPTION_MASK_ISA_X32 as well as
13753 handle -m32, -m64 and -mx32.
13754
13755 * config/i386/i386.h (TARGET_X32): Replace OPTION_ISA_X32
13756 with OPTION_ABI_X32. Moved after TARGET_LP64.
13757 (TARGET_LP64): Changed to OPTION_ABI_64.
13758
13759 * config/i386/i386.opt (m64): Replace ISA_64BIT with ABI_64.
13760 (mx32): Replace ISA_X32 with ABI_X32.
13761
2defb110
EB
137622012-03-28 Eric Botcazou <ebotcazou@adacore.com>
13763
13764 * tree.c (tree_size) <VECTOR_CST>: New case.
13765
2310e450
UB
137662012-03-28 Uros Bizjak <ubizjak@gmail.com>
13767
13768 * config/i386/i386.c (ix86_modes_tieable_p): Handle 32bit AVX modes.
13769 (ix86_expand_vector_move_misalign): Remove un-needed gen_lowpart calls.
13770
26a7fca2
JJ
137712012-03-28 Jakub Jelinek <jakub@redhat.com>
13772
f25a65f5
JJ
13773 PR middle-end/52691
13774 * tree-ssa-ccp.c (optimize_stdarg_builtin): Optimize
13775 __builtin_va_start to __builtin_next_arg if the latter is
13776 builtin_decl_explicit_p rather than when it is not.
13777
26a7fca2
JJ
13778 PR middle-end/52750
13779 * tree-vect-generic.c (vector_element): Perform multiplication
13780 for pos in bitsizetype type instead of idx type.
13781
7d776ee2
RG
137822012-03-28 Richard Guenther <rguenther@suse.de>
13783
13784 * loop-init.c (loop_optimizer_init): If loops are preserved
13785 perform incremental initialization of required loop features.
13786 (loop_optimizer_finalize): If loops are to be preserved only
13787 clean up optional loop features.
13788 (rtl_loop_done): Forcefully free loops here.
2310e450 13789 * cgraph.c (cgraph_release_function_body): Forcefully free loops.
7d776ee2
RG
13790 * cfgexpand.c (expand_gimple_cond): Properly add new basic-blocks
13791 to existing loops.
13792 (construct_init_block): Likewise.
13793 (construct_exit_block): Likewise.
13794 (gimple_expand_cfg): Clear LOOP_CLOSED_SSA loop state. Cleanup
13795 the CFG after expanding.
2310e450
UB
13796 * cfgloop.c (verify_loop_structure): Calculate or verify dominators.
13797 If we needed to calculate them, free them afterwards.
7d776ee2
RG
13798 * tree-pass.h (PROP_loops): New define.
13799 * tree-ssa-loop.c (pass_tree_loop_init): Provide PROP_loops.
13800 * basic-block.h (CLEANUP_CFG_CHANGED): New.
13801 * cfgcleanup.c (merge_blocks_move): Protect loop latches.
2310e450 13802 (cleanup_cfg): If we did something and have loops around, fix them up.
7d776ee2
RG
13803 * cse.c (rest_of_handle_cse_after_global_opts): Call cleanup_cfg
13804 with CLEANUP_CFG_CHANGED.
13805 * cfghooks.c (merge_blocks): If we merge a loop header into
13806 its predecessor, update the loop structure.
13807 (duplicate_block): If we copy a loop latch, adjust loop state
13808 to note we may have multiple latches.
13809 (delete_basic_block): Mark loops for fixup if we remove a loop.
13810 * cfganal.c (forwarder_block_p): Protect loop latches, headers
13811 and preheaders.
13812 * cfgrtl.c (rtl_can_merge_blocks): Protect loop latches.
13813 (cfg_layout_can_merge_blocks_p): Likewise.
13814 * cprop.c (bypass_block): If we create a loop with multiple
13815 entries, mark it for removal.
13816 * except.c (emit_to_new_bb_before): Add the new basic-block
13817 to existing loops.
13818 * tree-eh.c (lower_resx): Likewise.
13819 * omp-low.c (finalize_task_copyfn): Do not copy PROP_loops.
13820 (expand_omp_taskreg): Likewise.
13821 * tree-inline.c (initialize_cfun): Likewise.
13822 * tree-mudflap.c (add_bb_to_loop): Prototype.
13823 (mf_build_check_statement_for): Properly add new basic-blocks
13824 to existing loops.
13825 * tree-ssa-threadupdate.c (thread_block): Mark loops for fixup
13826 if we remove a loop.
13827 (thread_through_loop_header): Likewise.
13828 * trans-mem.c (tm_log_emit_save_or_restores): Properly add
13829 new basic-blocks to existing loops.
13830 (expand_transaction): Likewise.
13831 * Makefile.in (except.o): Add $(CFGLOOP_H).
13832 (expr.o): Likewise.
13833 (cgraph.o): Likewise.
13834 (cprop.o): Likewise.
13835 (cfgexpand.o): Likewise.
13836 (cfganal.o): Likewise.
13837 (trans-mem.o): Likewise.
13838 (tree-eh.o): Likewise.
13839
911ba855
GJL
138402012-03-28 Georg-Johann Lay <avr@gjlay.de>
13841
13842 PR target/52692
13843 * config/avr/avr.c (TARGET_BUILTIN_DECL): New define.
13844 (avr_builtin_decl): New static function.
13845 (struct avr_builtin_description, avr_bdesc): Move up.
13846 Add GTY marker. Add field fndecl. Remove redundant field id.
13847 (avr_init_builtins): Initialize avr_bdesc[ID].fndecl.
13848 (avr_expand_builtin): Code cleanup because .id is removed.
13849
7fd6378e
GJL
138502012-03-28 Georg-Johann Lay <avr@gjlay.de>
13851
13852 PR target/52737
13853 * config.gcc (tm_file): Remove avr/multilib.h.
13854
2310e450 13855 * doc/invoke.texi (AVR Options): Adjust documentation of -mtiny-stack.
7fd6378e
GJL
13856
13857 * config/avr/genmultilib.awk: Remove code to generate multilib.h.
13858 (BEGIN): Use -msp8 as multilib option instead of -mtiny-stack.
13859 * config/avr/t-avr: Remove generation of multilib.h.
13860 * config/avr/t-multilib: Regenerate.
13861 * config/avr/multilib.h: Remove.
13862 * config/avr/avr.opt (-msp8): New option.
13863 (avr_sp8): New variable.
13864 * config/avr/driver-avr.c (avr_device_to_sp8): New function.
13865 * config/avr/avr.h (AVR_HAVE_SPH): New define.
13866 (AVR_HAVE_8BIT_SP): Also set by avr_sp8 i.e. -msp8.
13867 (avr_device_to_sp8): New prototype.
13868 (EXTRA_SPEC_FUNCTIONS): Add { "device_to_sp8", avr_device_to_sp8 }
13869 (DRIVER_SELF_SPECS): New define.
13870 * config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in defines:
13871 __AVR_SP8__, __AVR_HAVE_SPH__.
13872 * config/avr/avr.c (output_movhi): Use AVR_HAVE_SPH instead of
13873 AVR_HAVE_8BIT_SP to decide if SP_H is present.
13874 (avr_file_start): Ditto.
13875
be47bf24
JJ
138762012-03-28 Jakub Jelinek <jakub@redhat.com>
13877
13878 PR target/52736
13879 * config/i386/sse.md (sse2_loadlpd splitter): Use offset 0
13880 instead of 8 in adjust_address.
13881
00d6b19a
AB
138822012-03-27 Aurelien Buhrig <aurelien.buhrig.gcc@gmail.com>
13883
13884 PR middle-end/51893
13885 * expmed.c (store_bit_field_1): Fix wordnum value for big-endian
13886 targets.
13887
8c6d71c0
OE
138882012-03-27 Oleg Endo <olegendo@gcc.gnu.org>
13889
13890 PR target/50751
13891 * config/sh/sh.c (sh_legitimize_address, sh_legitimize_reload_address):
13892 Rearrange conditional logic. Move displacement address calculations
13893 to ...
13894 (sh_find_mov_disp_adjust): ... this new function.
13895
719e1e80
L
138962012-03-27 H.J. Lu <hongjiu.lu@intel.com>
13897
13898 * config/arm/arm.opt (mapcs): Remove MaskExists.
13899 * config/cris/linux.opt (mno-gotplt): Likewise.
13900 * config/i386/i386.opt (mhard-float): Likewise.
13901 (msse4): Likewise.
13902 (mno-sse4): Likewise.
13903 * config/m68k/m68k.opt (mhard-float): Likewise.
13904 * config/mep/mep.op (mcop32): Likewise.
13905 * config/pa/pa-hpux.opt (msio): Likewise.
13906 * config/pa/pa64-hpux.opt (mgnu-ld): Likewise.
13907 * config/picochip/picochip.opt (mlittle): Likewise.
13908 * config/sh/sh.opt (mrenesas): Likewise.
13909 * config/sparc/long-double-switch.opt (mlong-double-128): Likewise.
13910 * config/sparc/sparc.opt (mhard-float): Likewise.
13911 * config/v850/v850.opt (mv850es): Likewise.
13912 * config/vax/vax.opt (mg-float): Likewise.
13913
429576ac
MJ
139142012-03-27 Martin Jambor <mjambor@suse.cz>
13915
13916 PR middle-end/52693
13917 * tree-sra.c (sra_modify_assign): Do not call
13918 load_assign_lhs_subreplacements when working with an unscalarizable
13919 region.
13920
ae1547cc
UB
139212012-03-27 Uros Bizjak <ubizjak@gmail.com>
13922
13923 PR target/52698
13924 * config/i386/i386-protos.h (ix86_legitimize_reload_address):
13925 New prototype.
13926 * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): New define.
13927 * config/i386/i386.c: Include reload.h.
13928 (ix86_legitimize_reload_address): New function.
13929
1ad36b7e
L
139302012-03-27 H.J. Lu <hongjiu.lu@intel.com>
13931
13932 * opth-gen.awk: Allocated a bit for Mask and InverseMask if it
13933 hasn't been allocated. Define a target macro for Mask and
ae1547cc 13934 InverseMask if it hasn't been defined. Remove MaskExists handling.
1ad36b7e 13935
9a0ee5ed 13936 * doc/options.texi: Remove MaskExists.
1ad36b7e 13937
066922e6
CLT
139382012-03-27 Chung-Lin Tang <cltang@codesourcery.com>
13939
13940 PR target/52667
13941 * config/sh/sh.c (find_barrier): Add equality check of last_got
13942 to avoid going above orig insn. Update comments.
13943
005aa1b4
RG
139442012-03-27 Richard Guenther <rguenther@suse.de>
13945
13946 PR middle-end/52720
13947 * fold-const.c (try_move_mult_to_index): Handle &x.array more
13948 explicitely.
13949
a59b038c
EB
139502012-03-27 Eric Botcazou <ebotcazou@adacore.com>
13951
13952 * expmed.c (store_bit_field): Assert that BITREGION_START is a multiple
13953 of a unit before computing the offset in units.
13954 * expr.c (get_bit_range): Return the null range if the enclosing record
13955 is part of a larger bit field.
13956
2283164d
TG
139572012-03-27 Tristan Gingold <gingold@adacore.com>
13958
13959 * config/ia64/vms.h (CASE_VECTOR_MODE): Define.
13960 * config/ia64/ia64.md: Remove mode in template.
13961 Sign extend operand in expand_simple_binop.
13962 * config/ia64/ia64.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use
13963 CASE_VECTOR_MODE instead of TARGET_ILP32.
13964 (ADDR_VEC_ALIGN): Make it depends on CASE_VECTOR_MODE.
13965
da3237d1
SB
139662012-03-26 Steven Bosscher <steven@gcc.gnu.org>
13967
13968 * varasm.c (assemble_external): #if 0 out the new assert from the
13969 previous commit, it breaks the Java and Go front ends.
13970
ffe5d708
SB
139712012-03-26 Steven Bosscher <steven@gcc.gnu.org>
13972
bbee5843
SB
13973 * toplev.c (check_global_declaration_1): Do not call assemble_external.
13974 * expr.c (emit_block_move_libcall_fn): Likewise.
13975 (clear_storage_libcall_fn): Likewise.
13976 (expand_expr_addr_expr_1): Likewise.
13977 (expand_expr_real_1): Likewise.
13978 * calls.c (rtx_for_function_call): Likewise.
13979
ffe5d708
SB
13980 * varasm.c (assemble_external): Assert this function is only called
13981 during or after expanding to RTL.
13982
3515a00b
MJ
139832012-03-26 Martin Jambor <mjambor@suse.cz>
13984
13985 PR tree-optimization/50052
13986 * tree-sra.c (tree_non_aligned_mem_p): Removed.
13987 (tree_non_aligned_mem_for_access_p): Likewise.
13988 (build_accesses_from_assign): Removed strict alignment requirements
13989 checks.
13990 (access_precludes_ipa_sra_p): Likewise.
13991
ad5d161a
RG
139922012-03-26 Richard Guenther <rguenther@suse.de>
13993
13994 PR tree-optimization/52701
13995 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Always
13996 compute and set the evolution part of PHI nodes.
13997
5467ee52
RG
139982012-03-26 Richard Guenther <rguenther@suse.de>
13999
14000 PR tree-optimization/52721
14001 * tree-vect-stmts.c (vect_init_vector): Handle scalars.
14002
39f3fed6
UW
140032012-03-26 Ulrich Weigand <ulrich.weigand@linaro.org>
14004
14005 PR tree-optimization/52686
14006 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
14007 WIDEN_LSHIFT_EXPR.
14008
4b12e93d
TG
140092012-03-26 Tristan Gingold <gingold@adacore.com>
14010
14011 * config/alpha/vms.h (LINK_SPEC): Simplify.
14012 (STARTFILE_SPEC): Remove -mvms-return-codes handling.
14013 (NAME__MAIN, SYMBOL__MAIN): Remove.
14014 (VMS_DEBUG_MAIN_POINTER): Remove.
14015 * config/ia64/vms.h: Likewise.
14016 * config/alpha/alpha.c (alpha_start_function): Move vms_debug_main
14017 code to vms.c. Call vms_start_function.
14018 * config/ia64/ia64.c (ia64_start_function): Likewise.
14019 * config/vms/vms-protos.h (vms_start_function): Declare.
14020 * config/vms/vms.c (vms_start_function): New function.
14021 * config/vms/vms.h (MATH_LIBRARY): Define.
14022 (VMS_DEBUG_MAIN_POINTER): Define.
14023
2169f14c
EB
140242012-03-26 Eric Botcazou <ebotcazou@adacore.com>
14025
14026 PR rtl-optimization/52629
14027 * reload1.c (count_pseudo): Short-circuit common case.
14028 (count_spilled_pseudo): Return early for pseudos without hard regs.
14029 Assert that the pseudo has got a hard reg before manipulating it.
14030
47a1ae3c
JH
140312012-03-24 Jan Hubicka <jh@suse.cz>
14032
14033 PR lto/51663
14034 * varpool.c (varpool_finalize_decl): Handle toplevel_reorder here.
14035 (decide_is_variable_needed): Do not handle toplevel reorder here.
14036 * cgraph.h (varpool_can_remove_if_no_refs): Likewise.
14037 * ipa.c (cgraph_remove_unreachable_nodes): Remove unreachable vars
14038 even at -O0.
14039
8c5f2327
EB
140402012-03-24 Eric Botcazou <ebotcazou@adacore.com>
14041
14042 * expr.c (optimize_bitfield_assignment_op) <BIT_IOR_EXPR>: Use str_mode
14043 and str_bitsize instead of more convoluted expressions.
14044
c4133027
EB
140452012-03-24 Eric Botcazou <ebotcazou@adacore.com>
14046
14047 PR target/52610
14048 * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=leon.
14049
f26c81d6
EB
140502012-03-24 Eric Botcazou <ebotcazou@adacore.com>
14051
14052 PR target/52656
14053 * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Fix pasto.
14054
d01f346b
MJ
140552012-03-23 Martin Jambor <mjambor@suse.cz>
14056
14057 * tree-sra.c (build_accesses_from_assign): Remove FIXME comment.
14058
0ac168a1
RG
140592012-03-23 Richard Guenther <rguenther@suse.de>
14060
14061 PR tree-optimization/52678
14062 * tree-vectorizer.h (struct _stmt_vec_info): Add
14063 loop_phi_evolution_part member.
14064 (STMT_VINFO_LOOP_PHI_EVOLUTION_PART): New define.
14065 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Initialize
14066 STMT_VINFO_LOOP_PHI_EVOLUTION_PART.
14067 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
14068 Use the cached evolution part and the PHI nodes value from
14069 the loop preheader edge instead of re-analyzing the evolution.
14070
3fd03b93
MK
140712012-03-22 Maxim Kuvyrkov <maxim@codesourcery.com>
14072
14073 * config/mips/mips-tables.opt: Update.
14074 * config/mips/mips.md (processor): Add xlp.
14075 * config/mips/mips-cpus.def: Add xlp.
14076 * config/mips/mips.c (mips_rtx_cost_data): Add costs for XLP, copy from
14077 5KF for now.
14078 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Handle xlp.
14079 * doc/invoke.texi: Mention XLP.
14080
c140ddf3
JJ
140812012-03-22 Jakub Jelinek <jakub@redhat.com>
14082
14083 PR middle-end/52547
14084 * tree-nested.c (convert_tramp_reference_stmt): Call declare_vars
14085 on any new_local_var_chain vars declared during recursing on
14086 GIMPLE_OMP_PARALLEL or GIMPLE_OMP_TASK body.
14087
b31a2c5a
UB
140882012-03-22 Uros Bizjak <ubizjak@gmail.com>
14089
14090 * config/alpha/alpha.h (ASM_OUTPUT_ALIGN): Move to config/alpha/elf.h
14091 (ASM_OUTPUT_SKIP): Move to config/alpha/vms.h
14092 (ASM_OUTPUT_LOCAL): Ditto.
14093 (ASM_OUTPUT_COMMON): Remove.
14094 * config/alpha/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Use ASM_OUTPUT_DEF.
14095 * config/alpha/vms.h (ASM_OUTPUT_ALIGN): Do not undefine before define.
14096
b4e93f45
JH
140972012-03-22 Jan Hubicka <jh@suse.cz>
14098
14099 PR middle-end/51737
14100 * cgraph.c (cgraph_remove_node_and_inline_clones): Add FORBIDDEN_NODE
14101 parameter.
14102 * cgraph.h (cgraph_remove_node_and_inline_clones): Update prototype.
b31a2c5a
UB
14103 * ipa-inline-transform.c (save_inline_function_body): Remove
14104 copied clone if needed.
b4e93f45
JH
14105 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Update.
14106
e45381b3
RG
141072012-03-22 Richard Guenther <rguenther@suse.de>
14108
14109 PR middle-end/52666
14110 * fold-const.c (fold_ternary_loc): Fix typo.
14111
94236928
GJL
141122012-03-22 Georg-Johann Lay <avr@gjlay.de>
14113
14114 PR target/52496
14115 * config/avr/avr.md (unspec): Remove UNSPEC_MEMORY_BARRIER.
14116 (unspecv): Add UNSPECV_MEMORY_BARRIER.
14117 (cli_sei): Use unspec_volatile instead of unspec for memory barrier.
14118 (delay_cycles_1, delay_cycles_2): Ditto.
14119 (delay_cycles_3, delay_cycles_4): Ditto.
14120 (nopv, *nopv): Ditto.
14121 (sleep, *sleep): Ditto.
14122 (wdr, *wdr): Ditto.
14123
cd32bb90
RG
141242012-03-22 Richard Guenther <rguenther@suse.de>
14125
14126 PR tree-optimization/52548
14127 * tree-ssa-pre.c (valid_in_sets): Remove handling of invalidation
14128 because of clobbers.
14129 (prune_clobbered_mems): New function.
14130 (compute_antic_aux): Use it to prune ANTIC_OUT.
14131 (compute_partial_antic_aux): Use it to prune PA_IN.
b31a2c5a
UB
14132 (compute_avail): Only insert expressions into EXP_GEN that are not
14133 invalidated when translated up to the beginning of the block.
cd32bb90 14134
418b7df3
RG
141352012-03-22 Richard Guenther <rguenther@suse.de>
14136
14137 PR tree-optimization/52638
14138 * tree-vect-stmts.c (vect_init_vector_1): New function, split
14139 out from ...
14140 (vect_init_vector): ... here. Handle scalar vector inits.
14141 (vect_get_vec_def_for_operand): Adjust.
14142 (vectorizable_load): Likewise.
14143
8f27fc6b
UB
141442012-03-22 Uros Bizjak <ubizjak@gmail.com>
14145
14146 * config.gcc (alpha*-*-linux*): Add elfos.h to tm_file.
14147 (alpha*-*-freebsd*): Ditto.
14148 (alpha*-*-netbsd*): Ditto.
14149 (alpha*-*-openbsd*): Ditto.
14150 * config/alpha/elf.h (OBJECT_FORMAT_ELF): Remove.
14151 (DWARF2_DEBUGGING_INFO): Remove.
14152 (PREFERRED_DEBUGGING_TYPE): Remove.
14153 (ASM_FINAL_SPEC): Remove.
14154 (IDENT_ASM_OP): Remove.
14155 (ASM_OUTPUT_IDENT): Remove.
14156 (SKIP_ASM_OP): Remove.
14157 (ASM_OUTPUT_SKIP): Remove.
14158 (ALIGN_ASM_OP): Remove.
14159 (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove.
14160 (ASM_OUTPUT_CASE_LABEL): Remove.
14161 (ASM_OUTPUT_EXTERNAL_LIBCALL): Remove.
14162 (COMMON_ASM_OP): Remove.
14163 (ASM_OUTPUT_ALIGNED_COMMON): Remove.
14164 (ASCII_DATA_ASM_OP): Remove.
14165 (READONLY_DATA_SECTION_ASM_OP): Remove.
14166 (INIT_SECTION_ASM_OP): Remove.
14167 (FINI_SECTION_ASM_OP): Remove.
14168 (ASM_SECTION_START_OP): Remove.
14169 (ASM_OUTPUT_SECTION_START_FILE): Remove.
14170 (TARGET_ASM_NAMED_SECTION): Remove.
14171 (TARGET_ASM_SELECT_SECTION): Remove.
14172 (MAKE_DECL_ONE_ONLY): Remove.
14173 (TYPE_ASM_OP): Remove.
14174 (SIZE_ASM_OP): Remove.
14175 (ASM_WEAKEN_LABEL): Remove.
14176 (TYPE_OPERAND_FMT): Remove.
14177 (ASM_DECLARE_RESULT): Remove.
14178 (ASM_DECLARE_OBJECT_NAME): Remove.
14179 (ASM_FINISH_DECLARE_OBJECT): Remove.
14180 (ELF_ASCII_ESCAPES): Remove.
14181 (ELF_STRING_LIMIT): Remove.
14182 (STRING_ASM_OP): Remove.
14183 (ASM_OUTPUT_EXTERNAL): Remove.
14184 (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Redefine to false.
14185 * config/alpha/alpha.h (PCC_BITFIELD_TYPE_MATTERS): Undefine
14186 before define.
14187 (ASM_DECLARE_FUNCTION_NAME): Ditto.
14188 (ASM_DECLARE_FUNCTION_SIZE): Ditto.
14189 (ASM_GENERATE_INTERNAL_LABEL): Ditto.
14190 (ASM_OUTPUT_SKIP): Ditto.
14191 (READONLY_DATA_SECTION_ASM_OP): Remove.
14192 (USER_LABEL_PREFIX): Remove.
14193 (ASM_OUTPUT_ASCII): Remove.
14194 (ASM_OUTPUT_CASE_LABEL): Remove.
14195 (NO_DOLLAR_IN_LABEL): Undefine.
14196
109a16c2
RG
141972012-03-22 Richard Guenther <rguenther@suse.de>
14198
14199 PR tree-optimization/52459
14200 * tree-ssa-pre.c (inhibit_phi_insertion): Do not inhibit
14201 PHI insertion for calls.
14202
7b02f4e0
SB
142032012-03-21 Steven Bosscher <steven@gcc.gnu.org>
14204
14205 * cse.c (invalidate_from_sets_and_clobbers, try_back_substitute_reg,
14206 find_sets_in_insn, canonicalize_insn): Split out from ...
14207 (cse_insn): ... here.
14208 (invalidate_from_clobbers): Take an insn instead of the pattern.
14209
e022193e
OE
142102012-03-21 Oleg Endo <olegendo@gcc.gnu.org>
14211
14212 PR target/52479
14213 * config/sh/sh-protos.h (sh_fsca_df2int): Remove.
14214 * config/sh/sh.c (sh_fsca_df2int_rtx, sh_fsca_df2int): Remove.
14215 * config/sh/sh.md (sindf2, cosdf2): Remove.
14216
6c5bfec0
KK
142172012-03-21 Kaz Kojima <kkojima@gcc.gnu.org>
14218
0dbc5be5 14219 PR target/52642
6c5bfec0 14220 * config/sh/sh.c (sh_expand_prologue): Emit blockage at the end of
8f27fc6b 14221 prologue for unwinder and profiler.
6c5bfec0 14222
a26f86dc
AT
142232012-03-21 Andreas Tobler <andreast@fgznet.ch>
14224
14225 * configure.ac (HAVE_LD_NO_DOT_SYMBOLS): Add powerpc64-*-freebsd*.
14226 Introduce emul_name to select the right linker emulation for
14227 powerpc64-*-freebsd*.
14228 * configure: Regenerate.
14229 * config.gcc: Add bits to support powerpc64-*-freebsd*.
14230 * config/rs6000/freebsd.h (POWERPC_FREEBSD): Define.
14231 * config/rs6000/freebsd64.h: New file.
14232 * config/rs6000/rs6000.c (rs6000_option_override_internal): Use
14233 POWERPC_FREEBSD.
14234 (rs6000_savres_strategy): Likewise.
14235 (rs6000_savres_routine_name): Likewise.
14236 (rs6000_elf_file_end): Likewise.
14237 * config/rs6000/t-freebsd64: New file.
14238 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set the
14239 rs6000_current_abi for 64-bit FreeBSD to ABI_AIX.
14240
ad648ade
AT
14241 * config/rs6000/freebsd64.h: Remove duplicated entries from last
14242 commit.
14243 * config/rs6000/t-freebsd64: Likewise.
14244
03b29b0a
GJL
142452012-03-21 Georg-Johann Lay <avr@gjlay.de>
14246
14247 PR rtl-optimization/52543
14248 PR target/52461
14249 * config/avr/avr-protos.h (avr_load_lpm): New prototype.
14250 * config/avr/avr.c (avr_mode_dependent_address_p): New function.
14251 (TARGET_MODE_DEPENDENT_ADDRESS_P): New define.
14252 (avr_load_libgcc_p): Restrict to __flash loads.
14253 (avr_out_lpm): Only handle 1-byte loads from __flash.
14254 (avr_load_lpm): New function.
14255 (avr_find_unused_d_reg): Remove.
14256 (avr_out_lpm_no_lpmx): Remove.
14257 (adjust_insn_length): Handle ADJUST_LEN_LOAD_LPM.
14258 * config/avr/avr.md (unspec): Add UNSPEC_LPM.
14259 (load_<mode>_libgcc): Use UNSPEC_LPM instead of MEM.
14260 (load_<mode>, load_<mode>_clobber): New insns.
14261 (mov<mode>): For multi-byte move from non-generic
14262 16-bit address spaces: Expand to load_<mode> resp.
14263 load_<mode>_clobber.
14264 (load<mode>_libgcc): Remove expander.
14265 (split-lpmx): Remove split.
14266
baeecefc
RE
142672012-03-21 Richard Earnshaw <rearnsha@arm.com>
14268
14269 * neon.md (neon_vget_lanev2di): Use gen_lowpart and gen_highpart.
14270 * config/arm/neon.ml (Fixed_return_reg): Renamed to fixed_vector_reg.
14271 All callers changed.
14272 (Fixed_core_reg): New feature.
14273 (Vget_lane [sizes S64 and U64]): Add Fixed_core_reg. Allow fmrrd in
14274 disassembly.
14275 * neon-testgen.ml: Handle Fixed_core_reg.
14276
021afdb4
AS
142772012-03-21 Andrew Stubbs <ams@codesourcery.com>
14278
14279 * config/arm/arm.c (thumb2_reorg): Add complete support
14280 for 16-bit instructions.
14281 * config/arm/thumb2.md: Delete obsolete flag-clobbering peepholes.
14282
50eeef09
RG
142832012-03-21 Richard Guenther <rguenther@suse.de>
14284
14285 PR tree-optimizer/52636
14286 * tree-vect-slp.c (vect_get_constant_vectors): Convert constants
14287 to the appropriate type.
14288
be147e84
RG
142892012-03-21 Richard Guenther <rguenther@suse.de>
14290
14291 * Makefile.in (cfgexpand.o): Add $(REGS_H) and $(INTEGRATE_H)
14292 dependencies.
14293 * cfgexpand.c (gimple_expand_cfg): Fold in pass_init_function,
14294 pass_jump, pass_initial_value_sets and pass_unshare_all_rtl.
14295 * passes.c (init_optimization_passes): Remove pass_init_function,
14296 pass_jump, pass_initial_value_sets and pass_unshare_all_rtl.
14297 * tree-pass.h (pass_init_function): Remove.
14298 (pass_jump): Remove.
14299 (pass_initial_value_sets): Remove.
14300 (pass_unshare_all_rtl): Remove.
14301 * integrate.c (pass_initial_value_sets): Remove.
14302 * emit-rtl.c (pass_unshare_all_rtl): Remove.
14303 * tree.h (init_function_for_compilation): Remove.
14304 * function.c (init_function_for_compilation): Remove.
14305 (pass_init_function): Remove.
14306 * cfgcleanup.c (rest_of_handle_jump): Remove.
14307 (pass_jump): Remove.
14308
f78f0473
JM
143092012-03-20 Jason Merrill <jason@redhat.com>
14310
14311 * tree-streamer-in.c (streamer_alloc_tree): Call
14312 ggc_alloc_zone_cleared_tree_node instead of
14313 ggc_alloc_zone_cleared_tree_node_stat.
14314
513d0519
JW
143152012-03-20 Jonathan Wakely <jwakely.gcc@gmail.com>
14316
14317 * doc/extend.texi (Template Instantiation): Remove anachronisms.
14318
6945a32e
JJ
143192012-03-20 Jakub Jelinek <jakub@redhat.com>
14320
ee289e45
JJ
14321 PR target/52607
14322 * config/i386/i386.c (expand_vec_perm_vperm2f128): New function.
14323 (ix86_expand_vec_perm_const_1): Call it.
14324
e5069d62
JJ
14325 * config/i386/i386.c (vselect_insn): New variable.
14326 (init_vselect_insn): New function.
14327 (expand_vselect, expand_vselect_insn): Add testing_p argument.
14328 Call init_vselect_insn if vselect_insn is NULL. Adjust
14329 PATTERN (vselect_insn), instead of creating a new insn each time,
14330 only emit a copy of it if not testing and recog has been successful.
14331 (expand_vec_perm_pshufb, expand_vec_perm_1,
14332 expand_vec_perm_pshuflw_pshufhw, expand_vec_perm_broadcast_1): Adjust
14333 callers.
14334
6945a32e
JJ
14335 PR target/52607
14336 * config/i386/i386.md ("isa" attribute): Add avx2 and noavx2.
14337 ("enabled" attribute): Handle avx2 and noavx2 isas.
14338 * config/i386/sse.md (avx2_vec_dupv8sf_1, avx2_pbroadcast<mode>_1):
14339 New insns.
14340 (vec_dup<mode>): Add avx2 =x,x alternative.
14341 (vec_dup<mode> splitter): Don't split if TARGET_AVX2.
14342 (*avx_vperm_broadcast_<mode>): Don't split V4DFmode if TARGET_AVX2.
14343 For TARGET_AVX2, V8SFmode and elt == 0 split into vbroadcastss.
14344 * config/i386/i386.c (expand_vec_perm_pshufb): Emit also vpermps
14345 for V8SFmode.
14346 (expand_vec_perm_1): For broadcasts, use avx2_pbroadcast<mode>_1
14347 if possible, handle also V8SFmode.
14348
681676df
RE
143492012-03-20 Richard Earnshaw <rearnsha@arm.com>
14350
14351 * arm/predicates.md (zero_operand, reg_or_zero_operand): New predicates.
14352 * arm/neon.md (neon_vceq<mode>, neon_vcge<mode>): Use
14353 reg_or_zero_operand predicate.
14354 (neon_vcle<mode>, neon_vclt<mode>): Use zero_operand predicate.
14355
999a099c
JJ
143562012-03-20 Jakub Jelinek <jakub@redhat.com>
14357
14358 * config/i386/i386.c (ix86_decompose_address) <case ZERO_EXTEND>:
14359 If operand isn't UNSPEC, return 0.
14360
dac1fbf8
RG
143612012-03-20 Richard Guenther <rguenther@suse.de>
14362
14363 * tree-pass.h (pass_rtl_eh): Remove.
14364 * except.c (gate_handle_eh): Likewise.
14365 (rest_of_handle_eh): Likewise.
14366 (pass_rtl_eh): Likewise.
14367 (finish_eh_generation): Export.
14368 * except.h (finish_eh_generation): Declare.
14369 * passes.c (init_optimization_passes): Remove pass_rtl_eh.
14370 * cfgexpand.c (gimple_expand_cfg): Call finish_eh_generation
14371 after expanding stack alignment. Instead of compacting blocks
14372 call cleanup_cfg.
14373
7ebf9677
RG
143742012-03-20 Richard Guenther <rguenther@suse.de>
14375
14376 * stor-layout.c (finish_bitfield_representative): Fallback
14377 to conservative maximum size if the padding up to the next
14378 field cannot be computed as a constant.
14379 (finish_bitfield_layout): If we cannot compute the distance
14380 between the start of the bitfield representative and the
14381 bitfield member start a new representative.
14382 * expr.c (get_bit_range): The distance between the start of
14383 the bitfield representative and the bitfield member is zero
14384 if the field offsets are not constants.
14385
18dae016
TG
143862012-03-20 Tristan Gingold <gingold@adacore.com>
14387
14388 * tree.h (enum size_type_kind): Add stk_ prefix to constants,
14389 convert in lowercase.
14390 (sizetype_tab, sizetype, bitsizetype, ssizetype, sbitsizetype)
14391 (size_int, ssize_int, bitsize_int, sbitsize_int): Adjust.
14392 * stor-layout.c (sizetype_tab): Adjust.
14393 (initialize_sizetypes): Use SIZETYPE instead of SIZE_TYPE.
14394 * tree-streamer.c (preload_common_nodes): Use stk_type_kind_last
14395 instead of type_kind_last.
14396 * tree-scalar-evolution.c (interpret_rhs_expr): Use size_int
14397 instead of size_int_kind.
14398 * doc/tm.texi.in (Type Layout): Document SIZETYPE.
14399 * doc/tm.texi: Regenerate.
14400 * defaults.h (SIZETYPE): Provide a default value.
14401 * config/vms/vms.h (SIZE_TYPE): Define as "unsigned int".
14402 (SIZETYPE): Define.
14403
d9241861
OE
144042012-03-20 Oleg Endo <olegendo@gcc.gnu.org>
14405
14406 * config/sh/sh.md: Use braced string notation where applicable.
14407
5ef4f609
UB
144082012-03-19 Uros Bizjak <ubizjak@gmail.com>
14409
14410 * config/i386/i386.md (allocate_stack): Simplify.
14411
18ae1560
UB
144122012-03-19 Uros Bizjak <ubizjak@gmail.com>
14413
14414 * builtins.c (expand_builtin_cexpi): Use copy_addr_to_reg instead of
14415 copy_to_mode_reg (Pmode, ...).
14416 (expand_builtin_frame_address): Ditto.
14417 * expr.c (emit_block_move_via_libcall): Ditto.
14418 (set_storage_via_libcall): Ditto.
14419
14420 * config/i386/i386.c (ix86_expand_movmem): Ditto.
14421 (ix86_expand_setmem): Ditto.
14422 (ix86_trampoline_init): DItto.
14423 * config/i386/i386.md (cmpstrnsi): Ditto.
18ae1560 14424
3e4907f4
SL
144252012-03-19 Sandra Loosemore <sandra@codesourcery.com>
14426
14427 * config/sh/sh.opt (madjust-unroll): Mark as ignored/obsolete.
14428 * config/sh/sh.h (TARGET_OPT_DEFAULT): Don't use MASK_ADJUST_UNROLL.
14429 * doc/invoke.texi (Option Summary): Remove -madjust-unroll.
14430 (SH Options): Likewise.
14431
edd8bb12
UB
144322012-03-19 Uros Bizjak <ubizjak@gmail.com>
14433
14434 * config/i386/i386.c (get_thread_pointer): Add tp_mode argument.
14435 Generate ZERO_EXTEND in place if GET_MODE (tp) != tp_mode.
14436 (legitimize_tls_address) <TLS_MODEL_INITIAL_EXEC>: Always generate
14437 DImode UNSPEC_GOTNTPOFF references on TARGET_64BIT.
14438 (ix86_decompose_address): Allow zero extended UNSPEC_TP references.
14439
14440 Revert:
14441 2012-03-13 Uros Bizjak <ubizjak@gmail.com>
14442
14443 * config/i386/i386.h (TARGET_TLS_INDIRECT_SEG_REFS): New.
14444 * config/i386/i386.c (ix86_decompose_address): Use
14445 TARGET_TLS_INDIRECT_SEG_REFS to prevent %fs:(%reg) addresses.
14446 (legitimize_tls_address): Use TARGET_TLS_INDIRECT_SEG_REFS to load
14447 thread pointer to a register.
14448
14449 Revert:
14450 2012-03-10 H.J. Lu <hongjiu.lu@intel.com>
14451
14452 * config/i386/i386.c (ix86_decompose_address): Disallow fs:(reg)
14453 if Pmode != word_mode.
14454 (legitimize_tls_address): Call gen_tls_initial_exec_x32 if
14455 Pmode == SImode for TARGET_X32.
14456
14457 * config/i386/i386.md (UNSPEC_TLS_IE_X32): New.
14458 (tls_initial_exec_x32): Likewise.
14459
344332e8
OE
144602012-03-19 Oleg Endo <olegendo@gcc.gnu.org>
14461
14462 PR target/50751
14463 * config/sh/sh.h (CONST_OK_FOR_K04, CONST_OK_FOR_K12, DISP_ADDR_P,
14464 DISP_ADDR_OFFSET): New macros.
14465 * config/sh/sh.c (sh_address_cost): Add SH2A special case.
14466 (sh_legitimate_index_p): Allow QImode displacements for non-SH2A.
14467 (sh_legitimize_address): Add QImode displacement handling.
edd8bb12 14468 (sh_cannot_change_mode_class): Disallow GENERAL_REGS for SFmode
344332e8
OE
14469 vector subregs.
14470 (sh_secondary_reload): Add QImode displacement handling.
14471 * config/sh/predicates.md (movsrc_no_disp_mem_operand): New predicate.
ae5a8549
OE
14472 * config/sh/constraints.md (K04, Snd, Sdd): New constraints.
14473 * config/sh/sh.md (extendqisi2): Remove constraints from expander.
14474 (*extendqisi2_compact): Rename to *extendqisi2_compact_reg, restrict
14475 to register operands only.
14476 (*extendqisi2_compact_mem_disp, *extendqisi2_compact_snd): New insns.
14477 (extendqihi2): Change insn to expander.
14478 (*extendqihi2_compact_reg): New insn.
14479 (movqi_i, movqi): Replace with ...
14480 (movqi, *movqi_reg_reg, *movqi_store_mem_disp12,
14481 *movqi_load_mem_disp, *movqi_load_mem_disp): ... these.
14482 Add new peepholes for QImode displacement addressing.
344332e8 14483
04398fa8
PC
144842012-03-19 Paolo Carlini <paolo.carlini@oracle.com>
14485
14486 PR c++/14710
14487 * doc/invoke.texi: Document -Wuseless-cast.
14488
b199074d
EB
144892012-03-19 Eric Botcazou <ebotcazou@adacore.com>
14490
14491 * tree.def (REALPART_EXPR, IMAGPART_EXPR, VIEW_CONVERT_EXPR): Move.
14492 * tree.h (handled_component_p): Reorder cases.
14493 * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref): Do
14494 not initialize unsignedp.
14495 (loc_list_from_tree): Likewise.
14496 (fortran_common): Likewise.
14497 * simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
14498
79f3658a
UB
144992012-03-19 Uros Bizjak <ubizjak@gmail.com>
14500
14501 * config/i386/i386.c (ix86_expand_prologue) <CM_LARGE_PIC>: Use Pmode
14502 mode consistently. Use ix86_gen_add3. Assert that Pmode == DImode.
14503 (ix86_expand_split_stack_prologue): Use ix86_gen_add3.
14504 (ix86_split_long_move): Ditto.
14505 (legitimize_tls_address): Use ix86_gen_sub3.
14506 (construct_plt_address): Assert that Pmode == DImode.
14507
82e86dc6
UB
145082012-03-18 Uros Bizjak <ubizjak@gmail.com>
14509
14510 * config/i386/i386.md: Remove empty predicates and/or constraints.
14511 * config/i386/sync.md: Ditto.
14512 * config/i386/sse.md: Ditto.
14513 * config/i386/mmx.md: Ditto.
14514 * config/i386/pentium.md: Ditto.
14515 * config/i386/athlon.md: Ditto.
14516
d6682315
RG
145172012-03-16 Richard Guenther <rguenther@suse.de>
14518
14519 PR tree-optimization/52603
14520 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Clarify
14521 comment.
14522
14523 Revert
14524 2012-03-14 Richard Guenther <rguenther@suse.de>
14525
14526 PR tree-optimization/52571
14527 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move
14528 flag_section_anchors check ...
14529 (vect_can_force_dr_alignment_p): ... here.
14530
0a1c20dc
MJ
145312012-03-16 Martin Jambor <mjambor@suse.cz>
14532
b199074d 14533 * expr.c (expand_expr_real_1): Handle misaligned scalar reads from
0a1c20dc
MJ
14534 memory through MEM_REFs by calling extract_bit_field.
14535
6814f778
RG
145362012-03-16 Richard Guenther <rguenther@suse.de>
14537
14538 * fold-const.c (native_interpret_expr): Also support POINTER_TYPE
14539 and REFERENCE_TYPE interpretations.
14540 (can_native_interpret_type_p): New function.
14541 (fold_ternary_loc): Use native encode/interpret to fold
14542 BIT_FIELD_REFs of constants.
14543
ada3df50
RG
145442012-03-16 Richard Guenther <rguenther@suse.de>
14545
14546 PR middle-end/52584
14547 * fold-const.c (fold_ternary_loc): Fold vector typed BIT_FIELD_REFs
14548 of vector constants and constructors.
14549
b758f602
RG
145502012-03-16 Richard Guenther <rguenther@suse.de>
14551
14552 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
14553 VIEW_CONVERT_EXPR to convert constants.
14554 (vect_is_simple_use): Treat all constants as vec_constant_def.
14555
cf1867a0 145562012-03-16 Richard Guenther <rguenther@suse.de>
82e86dc6 14557 Kai Tietz <ktietz@redhat.com>
cf1867a0
RG
14558
14559 PR middle-end/48814
14560 * gimplify.c (gimplify_self_mod_expr): Evaluate postfix
14561 side-effects completely in the pre-queue and use a temporary
14562 for the result.
14563
2447776c
RG
145642012-03-16 Richard Guenther <rguenther@suse.de>
14565
14566 * stor-layout.c (finish_bitfield_representative): Fall back
14567 to the conservative maximum size if we cannot compute the
14568 size of the tail padding.
14569
6ceb677f
TG
145702012-03-16 Tristan Gingold <gingold@adacore.com>
14571
14572 * config/vms/vms.h (TARGET_OS_CPP_BUILTINS): Define
14573 __CRTL_VER and __VMS_VER.
14574 * config/vms/vms-protos.h: Declare vms_c_get_crtl_ver
14575 and vms_c_get_vms_ver.
14576 * config/vms/vms-c.c (vms_c_get_crtl_ver, vms_c_get_vms_ver): New
14577 functions.
14578 * config/alpha/vms.h (VMS_DEFAULT_CRTL_VER)
14579 (VMS_DEFAULT_VMS_VER): Define.
14580 * config/ia64/vms.h (VMS_DEFAULT_CRTL_VER)
14581 (VMS_DEFAULT_VMS_VER): Define.
14582
50a763ab
RG
145832012-03-16 Richard Guenther <rguenther@suse.de>
14584
14585 * tree-vect-loop.c (get_initial_def_for_induction): Use
14586 build_constructor directly.
14587 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Use
14588 build_vector_from_val.
14589 * tree.c (build_vector_from_val): Avoid creating a constructor
14590 first when we want a constant vector.
14591
17246516
RO
145922012-03-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14593
14594 * doc/install.texi (Specific, *-*-solaris2*): Improve wording.
14595
d2a12ae7
RG
145962012-03-16 Richard Guenther <rguenther@suse.de>
14597
14598 * tree.h (TREE_VECTOR_CST_ELTS): Remove.
14599 (VECTOR_CST_NELTS, VECTOR_CST_ELTS, VECTOR_CST_ELT): New defines.
14600 (struct tree_vector): Remove elements member, add variable size
14601 elts array member.
14602 (build_vector_stat): Declare.
14603 (build_vector): Define in terms of build_vector_stat.
14604 * tree.c (build_vector): Rename to ...
14605 (build_vector_stat): ... this. Take array of trees as parameter.
14606 (build_vector_from_ctor): Adjust.
14607 (integer_zerop, integer_onep, integer_all_onesp, iterative_hash_expr,
14608 initializer_zerop): Adjust.
14609 * cfgexpand.c (expand_debug_expr): Likewise.
14610 * expr.c (categorize_ctor_elements_1, expand_expr_real_1,
14611 const_vector_from_tree): Likewise.
14612 * fold-const.c (const_binop, operand_equal_p, native_encode_vector,
14613 native_interpret_vector, fold_unary_loc, vec_cst_ctor_to_array,
14614 fold_vec_perm, fold_binary_loc, fold_ternary_loc): Likewise.
14615 * tree-streamer-in.c (streamer_alloc_tree): Handle TS_VECTOR.
14616 (lto_input_ts_vector_tree_pointers): Adjust.
14617 * tree-streamer-out.c (streamer_write_tree_header): Handle TS_VECTOR.
14618 (write_ts_vector_tree_pointers): Adjust.
14619 * varasm.c (const_hash_1, compare_constant, copy_constant,
14620 output_constant): Adjust.
14621 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Adjust.
14622 * print-tree.c (print_node): Adjust.
14623 * tree-pretty-print.c (dump_generic_node): Adjust.
14624 * tree-vect-generic.c (uniform_vector_p, vector_element,
14625 lower_vec_perm): Adjust.
14626 * tree-vect-loop.c (get_initial_def_for_reduction): Adjust.
14627 * tree-vect-slp.c (vect_get_constant_vectors,
14628 vect_transform_slp_perm_load): Adjust.
14629 * tree-vect-stmts.c (vect_gen_perm_mask): Adjust.
14630 * expmed.c (make_tree): Adjust.
14631 * config/i386/i386.c (ix86_expand_builtin): Adjust.
14632 * config/sparc/sparc.c (sparc_handle_vis_mul8x16): Adjust interface
14633 and implementation.
14634 (sparc_fold_builtin): Adjust.
14635
20bfad56
TG
146362012-03-16 Tristan Gingold <gingold@adacore.com>
14637
14638 * config.gcc (*-*-*vms*): Define use_gcc_stdint and tm_file.
14639 * config/vms/vms-stdint.h: New file.
14640
305576a5
TG
146412012-03-16 Tristan Gingold <gingold@adacore.com>
14642
14643 * config.host (alpha64-dec-*vms*, alpha*-dec-*vms*)
14644 (ia64-hp-*vms*): Replaced by ...
14645 (*-*-*vms*): ... This new entry.
14646
b8227739
JJ
146472012-03-15 Jakub Jelinek <jakub@redhat.com>
14648
81de8b03 14649 PR target/52568
82e86dc6 14650 * config/i386/i386.c (expand_vec_perm_vperm2f128_vblend): New function.
81de8b03
JJ
14651 (ix86_expand_vec_perm_const_1): Use it.
14652
b8227739
JJ
14653 PR target/52568
14654 * config/i386/sse.md (UNSPEC_VPERMDF): Remove.
14655 (avx2_permv4df): Remove.
14656 (avx2_permv4di): Macroize into...
14657 (avx2_perm<mode>): ... this using VI8F_256 iterator.
14658 (avx2_permv4di_1): Macroize into...
14659 (avx2_perm<mode>_1): ... this using VI8F_256 iterator.
14660
df7965e4
UW
146612012-03-15 Ulrich Weigand <ulrich.weigand@linaro.org>
14662
14663 * combine.c (apply_distributive_law): Do not distribute SUBREG.
14664
bc4fb355
IR
146652012-03-15 Ira Rosen <irar@il.ibm.com>
14666 Ulrich Weigand <ulrich.weigand@linaro.org>
14667
14668 * tree-vect-patterns.c (widened_name_p): Rename to ...
14669 (type_conversion_p): ... this. Add new argument to determine
14670 if it's a promotion or demotion operation. Check for
14671 CONVERT_EXPR_CODE_P instead of NOP_EXPR.
14672 (vect_recog_dot_prod_pattern): Call type_conversion_p instead
14673 widened_name_p.
14674 (vect_recog_widen_mult_pattern, vect_recog_widen_sum_pattern,
14675 vect_operation_fits_smaller_type, vect_recog_widen_shift_pattern):
14676 Likewise.
14677 (vect_recog_mixed_size_cond_pattern): Likewise and allow
14678 non-constant then and else clauses.
14679
f5709183
IR
146802012-03-15 Ira Rosen <irar@il.ibm.com>
14681 Ulrich Weigand <ulrich.weigand@linaro.org>
14682
14683 * tree-vectorizer.h (vect_pattern_recog): Add new argument.
14684 * tree-vect-loop.c (vect_analyze_loop_2): Update call to
14685 vect_pattern_recog.
14686 * tree-vect-patterns.c (widened_name_p): Pass basic block
14687 info to vect_is_simple_use.
14688 (vect_recog_dot_prod_pattern): Fail for basic blocks.
14689 (vect_recog_widen_sum_pattern): Likewise.
14690 (vect_handle_widen_op_by_const): Support basic blocks.
14691 (vect_operation_fits_smaller_type,
14692 vect_recog_over_widening_pattern): Likewise.
14693 (vect_recog_vector_vector_shift_pattern): Support basic blocks.
14694 Update call to vect_is_simple_use.
14695 (vect_recog_mixed_size_cond_pattern): Support basic blocks.
14696 Add printing.
14697 (check_bool_pattern): Add an argument, update call to
14698 vect_is_simple_use and the recursive calls.
14699 (vect_recog_bool_pattern): Update relevant function calls.
14700 Add printing.
14701 (vect_mark_pattern_stmts): Update calls to new_stmt_vec_info.
14702 (vect_pattern_recog_1): Check for reduction only in loops.
14703 (vect_pattern_recog): Add new argument. Support basic blocks.
14704 * tree-vect-stmts.c (vectorizable_conversion): Pass basic block
14705 info to vect_is_simple_use_1.
8f27fc6b 14706 * tree-vect-slp.c (vect_get_and_check_slp_defs): Support basic blocks.
f5709183
IR
14707 (vect_slp_analyze_bb_1): Call vect_pattern_recog.
14708
ff63ac4d
JJ
147092012-03-15 Jakub Jelinek <jakub@redhat.com>
14710 Andrew Pinski <apinski@cavium.com>
14711
14712 PR middle-end/52592
14713 * builtins.c (expand_builtin_int_roundingfn_2): If expanding
14714 BUILT_IN_IR{INT,OUND}* using optab fails, emit lr{int,ound}*
14715 calls instead of __builtin_ir{int,ound}*.
14716
b3781fcb
BRF
147172012-03-15 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
14718
14719 * doc/sourcebuild.texi (cleanup-modules, keep-modules): Update
14720 documentation.
14721
42183685 147222012-03-15 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
5ab22850
RR
14723
14724 * config.gcc (target_type_format_char): New. Document it. Set it for
b3781fcb 14725 arm*-*-* .
82e86dc6
UB
14726 * configure.ac (gnu_unique_option): Use target_type_format_char
14727 in test. Comment rationale.
5ab22850
RR
14728 * configure: Regenerate .
14729
ad193f32
JJ
147302012-03-15 Jakub Jelinek <jakub@redhat.com>
14731
14732 PR tree-optimization/52267
14733 * tree-vrp.c (masked_increment): New function.
14734 (register_edge_assert_for_2): Derive ASSERT_EXPRs
14735 from (X & CST1) cmp CST2 tests.
14736
9b00587c
RG
147372012-03-15 Richard Guenther <rguenther@suse.de>
14738
14739 PR middle-end/52580
14740 * tree-data-ref.c (subscript_dependence_tester_1): Check
14741 all dimensions for non-conflicting access functions.
14742
a12bf402
MLI
147432012-03-15 Manuel López-Ibáñez <manu@gcc.gnu.org>
14744
14745 PR c++/44783
14746 * doc/invoke.texi [C++ Language Options]: Document
14747 -ftemplate-backtrace-limit.
14748
51a1aacf
TG
147492012-03-15 Tristan Gingold <gingold@adacore.com>
14750
14751 * c-parser.c (c_parser_parameter_declaration): Handle #pragma
14752 before a parameter.
14753
b763dcaa
TG
147542012-03-15 Tristan Gingold <gingold@adacore.com>
14755
14756 * dwarf2out.c (gen_subprogram_die): Require dwarf unwinding to
14757 use DW_OP_call_frame_cfa.
14758
28968d91
L
147592012-03-14 H.J. Lu <hongjiu.lu@intel.com>
14760
14761 PR target/50797
14762 * config/i386/i386-opts.h (pmode): New.
14763
14764 * config/i386/i386.c (ix86_option_override_internal): Properly
14765 check and set ix86_pmode.
14766
8f27fc6b 14767 * config/i386/i386.h (Pmode): Check ix86_pmode instead of TARGET_64BIT.
28968d91
L
14768
14769 * config/i386/i386.opt (maddress-mode=): New.
14770
14771 * doc/invoke.texi: Document -maddress-mode=short|long for x86.
14772
7c17f335
RO
147732012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14774
14775 * dwarf2cfi.c (def_cfa_0): Remove MIPS_DEBUGGING_INFO handling.
14776 (dwarf2out_do_cfi_asm): Likewise.
14777 * dwarf2out.c (output_call_frame_info): Remove MIPS_DEBUGGING_INFO
14778 handling.
14779 (add_data_member_location_attribute): Likewise.
14780 (gen_array_type_die): Likewise.
14781 (gen_subprogram_die): Likewise.
14782 (gen_producer_string): Likewise.
14783 * sdbout.c (sdbout_begin_prologue): Declare unconditionally.
14784 Remove MIPS_DEBUGGING_INFO handling.
14785 (sdb_debug_hooks): Likewise.
14786 (sdbout_begin_block): Likewise.
14787 (sdbout_end_block): Likewise.
14788 (sdbout_begin_prologue): Likewise.
14789 (sdbout_start_source_file): Likewise.
14790 (sdbout_end_source_file): Likewise.
14791 (sdbout_init): Likewise.
14792 * system.h (MIPS_DEBUGGING_INFO): Poison.
14793
46e1a769
RO
147942012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14795
14796 * config/alpha/alpha.c [HAVE_STAMP_H]: Remove.
14797 (alpha_file_start) [MS_STAMP]: Remove.
14798
14799 * config/alpha/elf.h (TARGET_GAS): Remove.
14800 * config/alpha/freebsd.h (TARGET_DEFAULT): Remove.
14801 * config/alpha/linux.h (TARGET_DEFAULT): Remove.
14802 * config/alpha/netbsd.h (TARGET_DEFAULT): Remove.
14803 * config/alpha/vms.h (TARGET_DEFAULT): Remove.
14804 * config.gcc (alpha*-*-linux*): Remove target_cpu_default.
14805 (alpha*-*-freebsd*): Likewise.
14806 (alpha*-*-netbsd*): Likewise.
14807 (alpha*-*-openbsd*): Likewise.
14808 (alpha*-*-*): Remove target_cpu_default2.
14809 * config/alpha/alpha.c (alpha_output_filename): Remove !TARGET_GAS
14810 handling.
14811 * config/alpha/alpha.h (TARGET_AS_CAN_SUBTRACT_LABELS): Remove.
14812 (TARGET_AS_SLASH_BEFORE_SUFFIX): Remove.
14813 * config/alpha/alpha.c (print_operand): Always assume
14814 TARGET_AS_SLASH_BEFORE_SUFFIX.
14815 * config/alpha/alpha.md ("*builtin_setjmp_receiver_er_sl_1"):
14816 Remove TARGET_AS_CAN_SUBTRACT_LABELS.
14817 ("*builtin_setjmp_receiver_er_1"): Remove.
14818 * config/alpha/alpha.opt (malpha-as): Remove.
14819 (mgas): Ignore.
14820 * doc/invoke.texi (Option Summary, DEC Alpha Options): Remove
14821 -malpha-as, -mgas.
14822 Remove DEC Unix reference.
14823
14824 * config/alpha/alpha.h (OBJECT_FORMAT_COFF): Remove.
14825 (EXTENDED_COFF): Remove.
14826 * config/alpha/elf.h (OBJECT_FORMAT_COFF): Don't undef.
14827 (EXTENDED_COFF): Don't undef.
14828 * config/alpha/alpha.c (alpha_file_start): Always assume
14829 OBJECT_FORMAT_ELF.
14830 Don't set targetm.asm_file_start_file_directive.
14831 [!OBJECT_FORMAT_ELF]: Remove.
14832 (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Remove.
14833
14834 * config/alpha/alpha.h (SDB_DEBUGGING_INFO): Remove.
14835 (DBX_DEBUGGING_INFO): Remove.
14836 (MIPS_DEBUGGING_INFO): Remove.
14837 (PREFERRED_DEBUGGING_TYPE): Remove.
14838 (DBX_OUTPUT_SOURCE_LINE): Remove.
14839 (SDB_OUTPUT_SOURCE_LINE): Remove.
14840 (DBX_CONTIN_LENGTH): Remove.
14841 (NO_DBX_FUNCTION_END): Remove.
14842 (ASM_STABS_OP): Remove.
14843 (ASM_STABN_OP): Remove.
14844 (ASM_STABD_OP): Remove.
14845 (SDB_ALLOW_FORWARD_REFERENCES): Remove.
14846 (SDB_ALLOW_UNKNOWN_REFERENCES): Remove.
14847 (PUT_SDB_DEF): Remove.
14848 (PUT_SDB_PLAIN_DEF): Remove.
14849 (PUT_SDB_TYPE): Remove.
14850 (sdb_label_count): Remove.
14851 (PUT_SDB_BLOCK_START): Remove.
14852 (PUT_SDB_BLOCK_END): Remove.
14853 (PUT_SDB_FUNCTION_START): Remove.
14854 (PUT_SDB_FUNCTION_END): Remove.
14855 (PUT_SDB_EPILOGUE_END): Remove.
14856 * config/alpha/elf.h (SDB_DEBUGGING_INFO): Don't undef.
14857 (MIPS_DEBUGGING_INFO): Don't undef.
14858 (DBX_DEBUGGING_INFO): Don't undef.
14859 * config/alpha/vms.h (SDB_DEBUGGING_INFO): Don't undef.
14860 (MIPS_DEBUGGING_INFO): Don't undef.
14861 (DBX_DEBUGGING_INFO): Don't undef.
14862 * config/alpha/freebsd.h (DBX_CONTIN_CHAR): Remove.
14863 * config/alpha/alpha.c (alpha_option_override): Remove SDB_DEBUG
14864 handling.
14865 (alpha_start_function): Likewise.
14866 (sdb_label_count): Remove.
14867 (alpha_output_filename): Remove DBX_DEBUG handling.
14868 (alpha_file_start): Likewise.
14869
7888f266
RO
148702012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14871
14872 * config.gcc (enable_obsolete): Remove *-*-solaris2.8*.
14873 (*-*-solaris2.[0-8], *-*-solaris2.[0-8].*): Mark unsupported.
14874 (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Remove
14875 Solaris 8 support.
14876 * configure.ac (gcc_cv_ld_hidden): Remove *-*-solaris2.8*.
14877 (ld_tls_support): Remove Solaris 8 references.
14878 (lwp_dir, lwp_spec): Remove support for alternate thread library.
82e86dc6 14879 * acinclude.m4 (gcc_cv_initfini_array): Remove *-*-solaris2.* tests.
7888f266
RO
14880 * configure: Regenerate.
14881 * config.in: Regenerate.
14882
14883 * config/sol2.h (LINK_SPEC): Remove LIB_THREAD_LDFLAGS_SPEC.
14884 * config/i386/sol2.h: Remove Solaris 8 references.
14885
14886 * doc/install.texi (Specific, i?86-*-solaris2.[89]): Rename to ...
14887 (i?86-*-solaris2.9): ... this.
14888 Remove Solaris 8 references.
14889 (Specific, *-*-solaris2*): Document Solaris 8 removal.
14890 Remove Solaris 8 references.
14891
b24513a1
RO
148922012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14893
14894 * config.gcc (enable_obsolete): Remove mips-sgi-irix6.5.
14895 (mips-sgi-irix6.5*): Remove.
14896 * config.host (mips-sgi-irix*): Remove.
14897 * configure.ac (enable_fixed_point): Remove mips*-sgi-irix*.
14898 (set_have_as_tls): Remove *-*-irix6*.
14899 (gcc_cv_ld_static_dynamic): Remove mips-sgi-irix6*.
14900 * configure: Regenerate.
14901
14902 * config/mips/iris6.h: Remove.
14903 * config/mips/iris6.opt: Remove.
14904 * config/mips/t-irix6: Remove.
14905
14906 * config/mips/mips.h (TARGET_GPWORD): Remove IRIX 6 N64 handling.
14907 (TARGET_IRIX6): Remove.
14908 (TARGET_CPU_CPP_BUILTINS): Remove IRIX 6 handling.
14909 Don't define LANGUAGE_C, _LANGUAGE_C for Objective-C.
14910 * config/mips/mips.c (mips_build_builtin_va_list): Remove IRIX 6
14911 handling.
14912 (mips_file_start): Likewise.
14913 * config/mips/mips-protos.h (irix_asm_output_align): Remove.
14914
14915 * config/mips/driver-native.c [__sgi__]: Remove.
14916 (host_detect_local_cpu) [__sgi__]: Remove.
14917
14918 * config/mips/gnu-user.h: Remove iris5.h reference.
14919
14920 * config/mips/mips-modes.def: Remove IRIX 6 reference.
14921 * config/mips/gnu-user64.h (MIPS_TFMODE_FORMAT): Remove.
14922 * config/mips/mips.c (mips_option_override) [MIPS_TFMODE_FORMAT]:
14923 Remove.
14924
14925 * gcc.c (main): Move asm_debug initialization ...
14926 (asm_debug): ... here.
14927
14928 * ginclude/stddef.h (__STDDEF_H__): Don't define.
14929
14930 * defaults.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): Remove.
14931 * system.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): Poison.
14932 * collect2.c [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES]: Remove.
14933 (main) [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES]: Remove.
14934 [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES] (is_in_args): Remove.
14935 * doc/tm.texi.in (Driver, LINK_ELIMINATE_DUPLICATE_LDIRECTORIES):
14936 Remove.
14937 * doc/tm.texi: Regenerate.
14938
14939 * doc/invoke.texi (Debugging Options, -gdwarf-<version>): Remove
14940 IRIX 6 reference.
14941 (MIPS Options, -march): Remove IRIX reference.
14942 * doc/install.texi (Binaries, SGI IRIX): Remove.
14943 (Specific, mips-sgi-irix6): Document IRIX 6.5 removal, remove rest
14944 of section.
14945 * doc/trouble.texi (Interoperation): Remove -lgl_s handling.
14946
02f6574b
MJ
149472012-03-14 Martin Jambor <mjambor@suse.cz>
14948
14949 * expr.c (expand_assignment): Use expand_expr with EXPAND_WRITE
82e86dc6 14950 when expanding MEM_REFs, MEM_TARGET_REFs and handled_component bases.
02f6574b
MJ
14951 (expand_expr_real_1): Do not handle misalignment if modifier is
14952 EXPAND_WRITE.
14953
995ec132
RG
149542012-03-14 Richard Guenther <rguenther@suse.de>
14955
14956 PR middle-end/52584
14957 * tree-vect-generic.c (type_for_widest_vector_mode): Take
14958 element type instead of mode, use build_vector_type_for_mode
14959 instead of the langhook, build a vector of proper signedness.
14960 (expand_vector_operations_1): Adjust.
14961
7501ca28
RG
149622012-03-14 Richard Guenther <rguenther@suse.de>
14963
14964 PR middle-end/52582
82e86dc6
UB
14965 * gimple-fold.c (canonicalize_constructor_val): Make sure we have
14966 a cgraph node for a FUNCTION_DECL that comes from a constructor.
7501ca28
RG
14967 (gimple_get_virt_method_for_binfo): Likewise.
14968
c205d0b3
RG
149692012-03-14 Richard Guenther <rguenther@suse.de>
14970
14971 PR tree-optimization/52571
14972 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Move
14973 flag_section_anchors check ...
14974 (vect_can_force_dr_alignment_p): ... here. Do not re-align
14975 DECL_COMMON variables.
14976
26c71b93
RG
149772012-03-14 Richard Guenther <rguenther@suse.de>
14978
14979 * tree.h (DECL_BIT_FIELD_REPRESENTATIVE): New define.
14980 * stor-layout.c (start_bitfield_representative): New function.
14981 (finish_bitfield_representative): Likewise.
14982 (finish_bitfield_layout): Likewise.
14983 (finish_record_layout): Call finish_bitfield_layout.
14984 * tree.c (free_lang_data_in_decl): Only free DECL_QUALIFIER
14985 for QUAL_UNION_TYPE fields.
14986 * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
14987 Stream DECL_BIT_FIELD_REPRESENTATIVE.
14988 * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.
14989
14990 PR middle-end/52080
14991 PR middle-end/52097
14992 PR middle-end/48124
14993 * expr.c (get_bit_range): Unconditionally extract bitrange
14994 from DECL_BIT_FIELD_REPRESENTATIVE.
14995 (expand_assignment): Adjust call to get_bit_range.
14996
1caf8dd6
RG
149972012-03-14 Richard Guenther <rguenther@suse.de>
14998
14999 PR middle-end/52578
15000 * fold-const.c (fold_unary_loc): Fold (T1)(T2)x to (T1)x if
15001 the outermost conversion is a sign-change only.
15002 (fold_binary_loc): Disregard widening and sign-changing
15003 conversions when we determine if two variables are equal
15004 for reassociation.
15005 * tree-ssa-forwprop.c (combine_conversions): Fold (T1)(T2)x to
15006 (T1)x if the outermost conversion is a sign-change only.
15007
a1d3d84b
UB
150082012-03-14 Uros Bizjak <ubizjak@gmail.com>
15009
15010 Revert:
15011 2012-03-14 Uros Bizjak <ubizjak@gmail.com>
15012
15013 * config/i386/predicates.md (constant_call_address_operand): Declare
15014 as special predicate. Update all uses.
15015
b7613c91
JJ
150162012-03-13 Jakub Jelinek <jakub@redhat.com>
15017
9243c51d
JJ
15018 PR c/52577
15019 * c-parser.c (c_parser_postfix_expression)
15020 <case RID_BUILTIN_SHUFFLE>: Call mark_exp_read on argument values.
15021
b7613c91
JJ
15022 * config/i386/smmintrin.h: Avoid /* within a comment.
15023 * config/i386/nmmintrin.h: Likewise.
15024
9020ff27
UB
150252012-03-13 Uros Bizjak <ubizjak@gmail.com>
15026
15027 * config/i386/i386.md (xbegin): Remove constraint from expander.
15028
6e5c8423
UB
150292012-03-13 Uros Bizjak <ubizjak@gmail.com>
15030
15031 * config/i386/predicates.md (constant_call_address_operand): Declare
15032 as special predicate. Update all uses.
15033 * config/i386/i386.md: Remove mode from constant_call_address_operand
15034 predicates.
15035 * config/i386/i386.c (ix86_output_call_insn): Call
15036 constant_call_address_operand with VOIDmode.
15037
ff71e554
UB
150382012-03-13 Uros Bizjak <ubizjak@gmail.com>
15039
15040 * config/i386/i386.c (ix86_decompose_address): Handle subregs of
15041 AND zero extended address correctly.
15042
62a1c041
UB
150432012-03-13 Uros Bizjak <ubizjak@gmail.com>
15044
15045 * config/i386/predicates.md (tls_symbolic_operand): Declare as
15046 special predicate.
15047 (tls_modbase_operand): Ditto.
15048 * config/i386/i386.md: Remove mode from tls_symbolic_operand and
15049 tls_modbase_operand predicates.
15050
43332529
MJ
150512012-03-13 Martin Jambor <mjambor@suse.cz>
15052
15053 * expr.c (expand_assignment): Handle misaligned scalar writes to
15054 memory through top-level MEM_REFs by calling store_bit_field.
15055
0c12cd5e
RG
150562012-03-13 Richard Guenther <rguenther@suse.de>
15057
15058 PR middle-end/52134
15059 * fold-const.c (fold_binary_loc): Fold (X * Y) & -(1 << CST) to X * Y
15060 if Y is a constant multiple of 1 << CST.
15061
ae606c28
GJL
150622012-03-13 Georg-Johann Lay <avr@gjlay.de>
15063
15064 PR target/52488
15065 * config/avr/avr.c (avr_prologue_setup_frame): Cut down stack
15066 offset (size) to a value the insns can deal with.
15067 (expand_epilogue): Ditto.
15068
a0a6e3f7
MGD
150692012-03-13 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
15070
15071 * config/arm/neon.ml (ops): Fixup expected instructions for
15072 unsigned vector compares.
15073
9ec96023
UB
150742012-03-13 Uros Bizjak <ubizjak@gmail.com>
15075
15076 * config/i386/i386.c (ix86_decompose_address): Prevent %fs:(%reg)
15077 addresses only when %reg is not in word mode.
15078
d47657bd
RO
150792012-03-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15080
15081 * config/microblaze/microblaze.md: Fix typo.
15082 * tree-if-conv.c: Likewise.
15083 * tree-vect-patterns.c: Likewise.
15084
d82c57a8
RO
150852012-03-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15086
15087 * config.gcc (extra_passes): Remove.
15088 * configure.ac (extra_passes): Don't substitute.
15089 * configure: Regenerate.
15090 * Makefile.in (EXTRA_PASSES): Remove.
15091 (GCC_PASSES): Remove $(EXTRA_PASSES).
15092 (MOSTLYCLEANFILES): Likewise.
15093 (native): Likewise.
15094 (install-common): Likewise.
15095
6c2f0f83
UB
150962012-03-13 Uros Bizjak <ubizjak@gmail.com>
15097
15098 * config/i386/i386.h (TARGET_TLS_INDIRECT_SEG_REFS): New.
15099 * config/i386/i386.c (ix86_decompose_address): Use
15100 TARGET_TLS_INDIRECT_SEG_REFS to prevent %fs:(%reg) addresses.
15101 (legitimize_tls_address): Use TARGET_TLS_INDIRECT_SEG_REFS to load
15102 thread pointer to a register.
15103
a029a154
L
151042012-03-12 H.J. Lu <hongjiu.lu@intel.com>
15105
15106 * config/i386/i386.md (*tls_global_dynamic_64_<mode>): Remove :P
15107 on tls_symbolic_operand.
15108 (tls_global_dynamic_64_<mode>): Likewise.
15109
2dc5ca18
GJL
151102012-03-12 Georg-Johann Lay <avr@gjlay.de>
15111
15112 PR other/52545
15113 * output.h (SECTION_EXCLUDE, SECTION_MACH_DEP): Don't use
15114 SECTION_MACH_DEP reserved bits for SECTION_EXCLUDE.
15115
ed2d1466
GJL
151162012-03-12 Georg-Johann Lay <avr@gjlay.de>
15117
15118 PR target/52499
15119 * config/avr/avr.c (avr_mode_code_base_reg_class): Change return
15120 type from reg_class_t to enum reg_class.
15121 * config/avr/avr-protos.h (avr_mode_code_base_reg_class): Ditto.
15122
b928d32b
AP
151232012-03-12 Andrew Pinski <apinski@cavium.com>
15124
15125 * tree-ssa-phiopt.c (single_non_singleton_phi_for_edges): New function.
15126 (tree_ssa_phiopt_worker): Use single_non_singleton_phi_for_edges.
15127 (value_replacement): Likewise.
15128 (empty_block_p): Check also if the PHIs for the block are empty.
15129
2f986dce
GJL
151302012-03-12 Georg-Johann Lay <avr@gjlay.de>
15131
15132 PR target/52148
15133 * config/avr/avr.c (avr_out_movmem): Fix typo in output template
15134 for the case ADDR_SPACE_FLASH and AVR_HAVE_LPMX introduced in
15135 r184615 from 2012-02-28.
15136
79eeab23
L
151372012-03-12 H.J. Lu <hongjiu.lu@intel.com>
15138
15139 * config/i386/i386.c (ix86_gen_tls_global_dynamic_64): New.
15140 (ix86_gen_tls_local_dynamic_base_64): Likewise.
15141 (ix86_option_override_internal): Set ix86_gen_tls_global_dynamic_64
15142 and ix86_gen_tls_local_dynamic_base_64.
15143 (legitimize_tls_address): Use ix86_gen_tls_global_dynamic_64 and
15144 ix86_gen_tls_local_dynamic_base_64.
15145
15146 * config/i386/i386.md (*tls_global_dynamic_64): Renamed to ...
15147 (*tls_global_dynamic_64_<mode>): This.
15148 (tls_global_dynamic_64): Renamed to ...
15149 (tls_global_dynamic_64_<mode>): This.
15150 (*tls_local_dynamic_base_64): Renamed to ...
15151 (*tls_local_dynamic_base_64_<mode>): This.
15152 (tls_local_dynamic_base_64): Renamed to ...
15153 (tls_local_dynamic_base_64_<mode>): This.
15154
986b6423
L
151552012-03-12 H.J. Lu <hongjiu.lu@intel.com>
15156
15157 * config/i386/i386.c (ix86_option_override_internal): Properly
15158 set ix86_gen_leave and ix86_gen_monitor. Check Pmode == DImode,
15159 instead of TARGET_64BIT, to set ix86_gen_add3, ix86_gen_sub3,
82e86dc6
UB
15160 ix86_gen_one_cmpl2, ix86_gen_andsp, ix86_gen_allocate_stack_worker,
15161 ix86_gen_adjust_stack_and_probe and ix86_gen_probe_stack_range.
986b6423
L
15162
15163 * config/i386/sse.md (sse3_monitor64): Renamed to ...
15164 (sse3_monitor64_<mode>): This.
15165
472b8fdc
TG
151662012-03-12 Tristan Gingold <gingold@adacore.com>
15167
15168 * config/ia64/ia64.c (ia64_function_arg_1): Move code around.
15169 (ia64_function_arg_advance): Ditto.
15170
c4bc5c25
RO
151712012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15172
15173 * config.gcc (mips*-*-openbsd*): Remove.
15174 * config/mips/openbsd.h: Remove.
15175 * config/mips/sdb.h: Remove.
15176
15177 * config/mips/mips.h (SDB_OUTPUT_SOURCE_LINE): Remove.
15178 * config/mips/mips.c (sdb_label_count): Remove.
15179 (mips_debugger_offset): Remove #if 0 code.
15180 (mips_output_function_prologue) [SDB_DEBUGGING_INFO]: Remove.
15181 * config/mips/sde.h (SDB_DEBUGGING_INFO): Don't undef.
15182
493dd43c
RO
151832012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15184
15185 * doc/install.texi (Specific, i?86-*-solaris2.[89]): Update
15186 binutils reference.
15187 (Specific, i?86-*-solaris2.10): Remove GCC 4.0 reference.
15188 Update binutils references.
15189 (Specific, *-*-solaris2*): Mention bundled GCC in Solaris 10 and 11.
15190 Update binutils reference.
15191 Update Sun as/GNU ld caveat.
15192 Document binutils largefile requirement for LTO plugin.
344f61ae 15193 Remove reference to alternate libpthread.
493dd43c 15194
5c30094f
RO
151952012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15196
15197 * config.gcc (alpha*-dec-osf5.1*): Remove.
15198 * config.host (alpha*-dec-osf*): Remove.
15199 * configure.ac (*-*-osf*): Remove.
15200 (alpha*-dec-osf*): Remove.
15201 * configure: Regenerate.
15202
82e86dc6
UB
15203 * config/alpha/host-osf.c, config/alpha/osf5.h, config/alpha/osf5.opt,
15204 config/alpha/va_list.h, config/alpha/x-osf: Remove.
5c30094f
RO
15205
15206 * config/alpha/alpha.h (TARGET_LD_BUGGY_LDGP): Remove.
15207 * config/alpha/alpha.c (struct machine_function): Update comment.
15208 (alpha_start_function): Remove Tru64 UNIX as handling for
15209 max_frame_size.
15210 * config/alpha/alpha.md ("exception_receiver"): Remove
15211 TARGET_LD_BUGGY_LDGP.
15212 ("*exception_receiver_2"): Likewise.
15213 * except.c (finish_eh_generation): Remove Tru64 reference.
15214 * ginclude/stdarg.h [_HIDDEN_VA_LIST]: Don't undef _VA_LIST.
15215 * system.h (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Poison.
15216 * target.def (handle_pragma_extern_prefix): Remove.
15217
15218 * Makefile.in (mips-tfile.o-warn): Remove.
15219 (ALL_HOST_BACKEND_OBJS): Remove mips-tfile.o, mips-tdump.o.
15220 (mips-tfile, mips-tfile.o, mips-tdump, mips-tdump.o): Remove.
15221 * mips-tdump.c, mips-tfile.c: Remove.
15222
15223 * doc/extend.texi (Symbol-Renaming Pragmas): Remove #pragma
15224 extern_prefix.
15225 * doc/install.texi (Binaries): Remove Tru64 UNIX reference.
15226 (Specific, alpha*-dec-osf5.1): Note removal.
15227 * doc/tm.texi.in (Misc, TARGET_HANDLE_PRAGMA_EXTERN_PREFIX):
15228 Remove.
15229 * doc/tm.texi: Regenerate.
15230 * doc/trouble.texi (Cross-Compiler Problems): Remove.
15231
bb008427
RG
152322012-03-12 Richard Guenther <rguenther@suse.de>
15233
15234 * config/arm/arm.c (neon_dereference_pointer): Do not call
15235 covert during RTL expansion.
15236
281740d1
TG
152372012-03-12 Tristan Gingold <gingold@adacore.com>
15238
15239 * doc/invoke.texi (VMS Options): Merge Alpha/VMS and IA-64/VMS
15240 Options. Mention -mpointer-size.
15241
21fa2faf
RG
152422012-03-12 Richard Guenther <rguenther@suse.de>
15243
15244 * config/alpha/alpha.c (alpha_gimplify_va_arg): Use
15245 build_nonstandard_integer_type.
15246
7ee6fd68
RG
152472012-03-12 Richard Guenther <rguenther@suse.de>
15248
15249 * tree.c (signed_or_unsigned_type_for): Use
15250 build_nonstandard_integer_type.
15251 (signed_type_for): Adjust documentation.
15252 (unsigned_type_for): Likewise.
15253 * tree-pretty-print.c (dump_generic_node): Use standard names
15254 for non-standard integer types if available.
15255
d8aba32a
TG
152562012-03-12 Tristan Gingold <gingold@adacore.com>
15257
15258 * config/vms/vms.opt: Add vms-opts.h header.
15259 (mmalloc64): Use flag_vms_malloc64 flag instead of MALLOC64
15260 target mask.
15261 (-mvms-return-codes): Document.
15262 (-mpointer-size): New option.
15263 (vms_pointer_size): Add enumeration.
15264 * config/vms/vms-opts.h: New file.
15265 * config/vms/vms.h (TARGET_OS_CPP_BUILTINS): Define
15266 __INITIAL_POINTER_SIZE.
15267 (POINTER_SIZE, SIZE_TYPE, PTRDIFF_TYPE): Adjust definition.
15268 (C_COMMON_OVERRIDE_OPTIONS): Define.
15269 (DWARF2_ADDR_SIZE): Define.
15270 * config/vms/vms.c (vms_patch_builtins): Adjust condition.
15271 * config/vms/vms-protos.h (vms_c_common_override_options):
15272 New prototype.
15273 * config/vms/vms-c.c (vms_pragma_pointer_size): Ignore pragma
15274 if -mno-pointer-size.
15275 (vms_c_common_override_options): New function.
15276 * config/ia64/vms.h (TARGET_DEFAULT): Remove MASK_MALLOC64.
15277 * config/alpha/vms.h (TARGET_DEFAULT): Remove MASK_MALLOC64.
15278 (MALLOC_ABI_ALIGNMENT): Use flag_vms_malloc64
15279 and flag_vms_pointer_size.
15280 (MASK_RETURN_ADDR): Set according to flag_vms_pointer_size.
15281 * config.gcc (*-*-*vms*): Define xm_file.
15282 (alpha*-dec-*vms*): Do not define xm_file.
15283 (alpha64-dec-*vms*): Remove.
15284 (ia64-hp-*vms*): Do not define xm_file. Simplify tm_file
15285 and tmake_file.
15286
7b5c5139
JJ
152872012-03-12 Jakub Jelinek <jakub@redhat.com>
15288
15289 PR tree-optimization/51721
15290 * tree-vrp.c (register_edge_assert_for_2): Add asserts for unsvar
15291 if (int) unsvar cmp CST.
15292
3f5f6592
RG
152932012-03-12 Richard Guenther <rguenther@suse.de>
15294
82e86dc6
UB
15295 * tree-sra.c (create_access_replacement): Only rename the replacement
15296 if we can rewrite it into SSA form. Properly mark register typed
15297 replacements that we cannot rewrite with TREE_ADDRESSABLE.
3f5f6592
RG
15298 * tree-cfg.c (verify_expr): Fix BIT_FIELD_REF verification
15299 for aggregate or BLKmode results.
15300
01c1f20d
JJ
153012012-03-12 Jakub Jelinek <jakub@redhat.com>
15302
15303 PR tree-optimization/52533
15304 * tree-vrp.c (register_edge_assert_for_2): Use double_int
15305 type for mask, only handle shifts by non-zero in-range
15306 shift count, for LE_EXPR and GT_EXPR if new_val is
15307 maximum, don't add the assertion.
15308
bf2eaa3f
KY
153092012-02-12 Kirill Yukhin <kirill.yukhin@intel.com>
15310
15311 * doc/invoke.texi: Document -mrtm option.
82e86dc6 15312 * common/config/i386/i386-common.c (OPTION_MASK_ISA_RTM_SET): New.
bf2eaa3f
KY
15313 (OPTION_MASK_ISA_RTM_UNSET): Ditto.
15314 (ix86_handle_option): Handle OPT_mrtm.
15315 * config.gcc (i[34567]86-*-*): Add rtmintrin.h and
15316 xtestintrin.h.
15317 (x86_64-*-*): Ditto.
15318 * i386-builtin-types.def (INT_FTYPE_VOID): New.
15319 * config/i386/i386-c.c (ix86_target_macros_internal): Define
15320 __RTM__ if needed.
15321 (ix86_target_string): Define -mrtm option.
15322 (PTA_RTM): New.
82e86dc6
UB
15323 (ix86_option_override_internal): Extend "corei7-avx" with RTM option.
15324 Handle new option.
bf2eaa3f
KY
15325 (ix86_valid_target_attribute_inner_p): Add OPT_mrtm.
15326 (ix86_builtins): Add IX86_BUILTIN_XBEGIN, IX86_BUILTIN_XEND,
15327 IX86_BUILTIN_XTEST.
15328 (bdesc_special_args): Ditto.
15329 (ix86_init_mmx_sse_builtins): Add IX86_BUILTIN_XABORT.
15330 (ix86_expand_special_args_builtin): Handle new built-in type.
15331 (ix86_expand_builtin): Handle XABORT instruction.
15332 * config/i386/i386.h (TARGET_RTM): New.
15333 * config/i386/i386.md (UNSPECV_XBEGIN): New.
15334 (UNSPECV_XEND): Ditto.
15335 (UNSPECV_XABORT): Ditto.
15336 (UNSPECV_XTEST): Ditto.
15337 (xbegin): Ditto.
15338 (xbegin_1): Ditto.
15339 (xend): Ditto.
15340 (xabort): Ditto
15341 (xtest): Ditto.
15342 (xtest_1): Ditto.
15343 * config/i386/i386.opt (mrtm): New.
82e86dc6 15344 * config/i386/immintrin.h: Include rtmintrin.h and xtestintrin.h.
bf2eaa3f
KY
15345 * config/i386/rtmintrin.h: New header.
15346 * config/i386/xtestintrin.h: Ditto.
15347
914e2f45
TG
153482012-03-12 Tristan Gingold <gingold@adacore.com>
15349
82e86dc6
UB
15350 * ginclude/stddef.h: Adjust previous patch.
15351 Use __VMS__ instead of VMS.
914e2f45 15352
f70c41dd
UB
153532012-03-12 Uros Bizjak <ubizjak@gmail.com>
15354
15355 * config/i386/i386.md (setcc + movzbl to xor + setcc peephole2):
15356 Also convert sequences with CC setting arithmetic instruction.
15357
25d28bd3
SL
153582012-03-11 Sandra Loosemore <sandra@codesourcery.com>
15359
15360 * doc/invoke.texi (Option Summary): Move -no-integrated-cpp
15361 from C Language Options to Preprocessor Options.
15362 (C Dialect Options): Move -no-integrated-cpp documentation
15363 from here...
15364 (Preprocessor Options): ...to here. Rewrite the description
82e86dc6 15365 so it makes more sense, and remove discussion of merging front ends.
25d28bd3 15366
8100d8c1
L
153672012-03-11 H.J. Lu <hongjiu.lu@intel.com>
15368
15369 * config/i386/i386.c (ix86_expand_movmem): Use word_mode for size
15370 needed for loop.
15371 (ix86_expand_setmem): Likewise.
15372
670bb1a1
UB
153732012-03-11 Uros Bizjak <ubizjak@gmail.com>
15374
15375 * config/i386/i386.c (ix86_zero_extend_to_Pmode): Rewrite using
15376 convert_to_mode.
15377
ba61421d
L
153782012-03-11 H.J. Lu <hongjiu.lu@intel.com>
15379
15380 * config/i386/i386.c (ix86_trampoline_init): Use movl for 64bit if
15381 ptr_mode == SImode. Replace DImode with Pmode or ptr_mode.
15382
649507af
L
153832012-03-11 H.J. Lu <hongjiu.lu@intel.com>
15384
670bb1a1 15385 * config/i386/i386.c (x86_this_parameter): Replace DImode with Pmode.
649507af 15386
1991321c
L
153872012-03-11 H.J. Lu <hongjiu.lu@intel.com>
15388
15389 * config/i386/i386.md (lwp_slwpcb): Check Pmode instead of
15390 TARGET_64BIT.
15391
9ec90caa
UB
153922012-03-11 H.J. Lu <hongjiu.lu@intel.com>
15393 Uros Bizjak <ubizjak@gmail.com>
1ce8d925 15394
9ec90caa 15395 * config/i386/predicates.md (call_insn_operand): Allow
1ce8d925
UB
15396 constant_call_address_operand in Pmode only.
15397 (sibcall_insn_operand): Ditto.
15398 * config/i386/i386.md (*call): Use W mode iterator instead of P mode.
15399 (*call_vzeroupper): Ditto.
15400 (*sibcall): Ditto.
15401 (*sibcall_vzeroupper): Ditto.
15402 (*call_value): Ditto.
15403 (*call_value_vzeroupper): Ditto.
15404 (*sibcall_value): Ditto.
15405 (*sibcall_value_vzeroupper): Ditto.
15406 (*indirect_jump): Ditto.
15407 (*tablejump_1): Ditto.
15408 (indirect_jump): Convert memory address to word mode for TARGET_X32.
15409 (tablejump): Ditto.
15410 * config/i386/i386.c (ix86_expand_call): Convert indirect operands
15411 to word mode.
15412
07c0b560
OE
154132012-03-11 Oleg Endo <olegendo@gcc.gnu.org>
15414
15415 PR target/51244
15416 * config/sh/sh.md (movnegt): Expand into respective insns immediately.
15417 Use movrt_negc instead of negc pattern for non-SH2A.
15418 (*movnegt): Remove.
15419 (*movrt_negc, *negnegt, *movtt, *movt_qi): New insns and splits.
15420
09255652
L
154212012-03-10 H.J. Lu <hongjiu.lu@intel.com>
15422
15423 * config/i386/i386.c (ix86_decompose_address): Disallow fs:(reg)
15424 if Pmode != word_mode.
15425 (legitimize_tls_address): Call gen_tls_initial_exec_x32 if
1ce8d925 15426 Pmode == SImode for TARGET_X32.
09255652
L
15427
15428 * config/i386/i386.md (UNSPEC_TLS_IE_X32): New.
15429 (tls_initial_exec_x32): Likewise.
15430
30823ba6
CLT
154312012-03-10 Chung-Lin Tang <cltang@codesourcery.com>
15432
15433 PR rtl-optimization/52528
15434 * combine.c (can_combine_p): Add setting of subst_low_luid
15435 before call to expand_field_assignment().
15436
b364b425
SL
154372012-03-09 Sandra Loosemore <sandra@codesourcery.com>
15438
15439 * doc/invoke.texi: Use correct names/markup for "GCC", "GDB", "ld",
15440 and related program names.
15441
7bd11aba
SL
154422012-03-09 Sandra Loosemore <sandra@codesourcery.com>
15443
15444 * doc/invoke.texi: Use correct names for "DWARF", "stabs", and "ELF".
15445
080324ac
UB
154462012-03-09 Uros Bizjak <ubizjak@gmail.com>
15447
15448 PR target/52530
15449 * config/i386/i386.c (ix86_print_operand): Handle 'E' operand modifier.
15450 (ix86_print_operand_address): Handle UNSPEC_LEA_ADDR. Do not fallback
15451 to set code to 'q'.
15452 * config/i386/i386.md (UNSPEC_LEA_ADDR): New unspec.
15453 (*movdi_internal_rex64): Use %E operand modifier for lea.
15454 (*movsi_internal): Ditto.
15455 (*lea_1): Ditto.
15456 (*lea<mode>_2): Ditto.
15457 (*lea_{3,4,5,6}_zext): Ditto.
15458 (*tls_global_dynamic_32_gnu): Ditto.
15459 (*tls_global_dynamic_64): Ditto.
15460 (*tls_dynamic_gnu2_lea_32): Ditto.
15461 (*tls_dynamic_gnu2_lea_64): Ditto.
15462 (pro_epilogue_adjust_stack_<mode>_add): Ditto.
15463
45cfa18d
MM
154642012-03-09 Michael Meissner <meissner@linux.vnet.ibm.com>
15465
15466 * config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Do not
15467 redefine to be NULL if the current bit-size is different from the
15468 configured bit-size.
15469
15470 * config/rs6000/rs6000.c (rs6000_option_override_internal): If the
15471 cpu is defaulted, use PROCESSOR_DEFAULT and PROCESSOR_DEFAULT64 to
15472 set the default tuning. Add asserts to make sure the cpu and tune
15473 indexes are defined. Fix tests for cpu/tune index to use >= 0 to
15474 test whether the index is set, instead of > 0.
15475 (rs6000_file_start): Do not reset the default cpu if the current
15476 bit-size is different from the configured bit-size.
15477
30da483d
TG
154782012-03-09 Tristan Gingold <gingold@adacore.com>
15479
15480 * config/vms/vms-crtlmap.map: Add comments.
15481 Add entries needed to build Ada RTS.
15482
c8be95e6
TG
154832012-03-09 Tristan Gingold <gingold@adacore.com>
15484
15485 * ginclude/stddef.h: Do not define __size_t on VMS.
15486
412cd719
TG
154872012-03-09 Tristan Gingold <gingold@adacore.com>
15488
15489 * c-tree.h (c_default_pointer_mode): New variable.
15490 * c-decl.c (c_default_pointer_mode): New variable.
15491 (c_build_pointer_type): New function.
15492 (grokdeclarator): Call c_build_pointer_type instead
15493 of build_pointer_type.
15494
15495 * config/vms/vms-c.c: Include c-tree.h
15496 (saved_pointer_mode): New variable.
15497 (handle_pragma_pointer_size): New function.
15498 (vms_pragma_pointer_size, vms_pragma_required_pointer_size): Likewise.
15499 (vms_c_register_pragma): Register __pointer_size and
15500 __required_pointer_size pragmas.
15501
575a6235
TG
155022012-03-09 Tristan Gingold <gingold@adacore.com>
15503
15504 * config/vms/vms-c.c (vms_construct_include_filename): New function.
15505 (vms_c_register_includes): Reference it.
15506
210ac0b7
AP
155072012-03-09 Andrew Pinski <apinski@cavium.com>
15508
15509 PR middle-end/51988
15510 * tree-ssa-phiopt.c: Include tree-pretty-print.h for
15511 print_generic_expr.
15512 (tree_ssa_phiopt_worker): Go through all the PHIs for
15513 value_replacement instead of just the singleton one.
15514 (value_replacement): Change return type to int. Return 0 instead of
15515 false.
575a6235
TG
15516 Allow the middle basic block to contain more than just the defining
15517 statement.
210ac0b7
AP
15518 Handle non empty middle basic blocks.
15519 * Makefile.in (tree-ssa-phiopt.o): Add tree-pretty-print.h.
15520
bef28ced
JL
155212012-03-09 Jiangning Liu <jiangning.liu@arm.com>
15522
15523 * tree-scalar-evolution (interpret_rhs_expr): generate chrec for
15524 array reference and component reference.
15525 (analyze_scalar_evolution_for_address_of): New.
15526
9916d7ea
JZ
155272012-03-08 Jie Zhang <jzhang918@gmail.com>
15528
15529 PR target/49862
080324ac 15530 * config/bfin/bfin.c (hwloop_optimize): Fix unused variable warnings.
9916d7ea
JZ
15531 (hwloop_pattern_reg): Fix set but not used warning.
15532 (bfin_reorg_loops): Remove unused parameter.
15533 (bfin_reorg): Update use of bfin_reorg_loops.
15534
cc845923
L
155352012-03-08 H.J. Lu <hongjiu.lu@intel.com>
15536
15537 * config/i386/i386.c (setup_incoming_varargs_64): Use word_mode
15538 with integer parameters in registers.
15539 (gen_push): Push register in word_mode instead of Pmode.
15540 (ix86_emit_save_regs): Likewise.
080324ac 15541 (ix86_emit_save_regs_using_mov): Save integer registers in word_mode.
cc845923
L
15542 (gen_pop): Pop register in word_mode instead of Pmode.
15543 (ix86_emit_restore_regs_using_pop): Likewise.
15544 (ix86_expand_prologue): Replace Pmode with word_mode for push
15545 immediate. Use ix86_gen_pro_epilogue_adjust_stack. Save and
15546 restore RAX and R10 in word_mode.
15547 (ix86_emit_restore_regs_using_mov): Restore integer registers
15548 in word_mode.
15549 (ix86_expand_split_stack_prologue): Save R10_REG and restore in
15550 word_mode.
15551 (ix86_split_to_parts): Use word_mode with PUT_MODE for push.
15552 (ix86_split_long_move): Likewise.
15553
15554 * config/i386/i386.md (W): New.
15555 (*push<mode>2_prologue): Replace :P with :W.
15556 (*pop<mode>1): Likewise.
15557 (*pop<mode>1_epilogue): Likewise.
15558 (push/pop peephole2): Use word_mode scratch registers.
15559
b9719055
UB
155602012-03-08 Uros Bizjak <ubizjak@gmail.com>
15561
15562 * config/i386/predicates.md (indirect_branch_operand): Simplify.
15563
e04d063b
GJL
155642012-03-08 Georg-Johann Lay <avr@gjlay.de>
15565
15566 * config/avr/avr.md (*addhi3, addhi3_clobber): Add "w" alternative
15567 for constants in [-63,63].
15568
ce19a3f8
UB
155692012-03-08 Uros Bizjak <ubizjak@gmail.com>
15570
15571 PR target/52530
15572 Revert:
15573 2012-03-04 H.J. Lu <hongjiu.lu@intel.com>
15574
15575 * config/i386/i386.c (ix86_print_operand_address): Only handle
15576 zero-extended DImode addresses.
15577
2527ff87
RO
155782012-03-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15579
15580 * configure.ac (gcc_cv_as_ix86_tlsldmplt): Add label.
15581 * configure: Regenerate.
15582
d93417c8
GJL
155832012-03-08 Georg-Johann Lay <avr@gjlay.de>
15584
15585 PR target/52496
15586 * config/avr/avr.c (avr_mem_clobber): New static function.
15587 (avr_expand_delay_cycles): Add memory clobber operand to
15588 delay_cycles_1, delay_cycles_2, delay_cycles_3, delay_cycles_4.
15589 * config/avr/avr.md (unspec): Add UNSPEC_MEMORY_BARRIER.
15590 (enable_interrupt, disable_interrupt): New expander.
15591 (nopv, sleep, wdr): New expanders.
15592 (delay_cycles_1): Add memory clobber.
15593 (delay_cycles_2): Add memory clobber.
15594 (delay_cycles_3): Add memory clobber.
15595 (delay_cycles_4): Add memory clobber.
15596 (cli_sei): New insn from former "enable_interrupt",
15597 "disable_interrupt" with memory clobber.
15598 (*wdt): New insn from former "wdt" with memory clobber.
15599 (*nopv): Similar, but for "nopv".
15600 (*sleep): Similar, but for "sleep".
15601
bed9e870
OE
156022012-03-07 Oleg Endo <olegendo@gcc.gnu.org>
15603 Kaz Kojima <kkojima@gcc.gnu.org>
15604
15605 PR target/52503
15606 * config/sh/sh.opt (msoft-atomic): Use Var instead of Mask.
15607 * config/sh/linux.h (TARGET_DEFAULT): Remove MASK_SOFT_ATOMIC.
15608 (SUBTARGET_OVERRIDE_OPTIONS): Define.
15609
ca538e97
UB
156102012-03-07 Uros Bizjak <ubizjak@gmail.com>
15611
15612 * config/i386/predicates.md (x86_64_zext_general_operand): New.
15613 * config/i386/i386.md (*zero_extendsidi2_rex64): Change operand 1
15614 predicate to x86_64_zext_general_operand. Accept "Z" constraint.
15615
95f2389a
WL
156162012-03-07 Walter Lee <walt@tilera.com>
15617
15618 * config/tilegx/tilegx.c (tilegx_expand_prologue): Don't generate
15619 REG_CFA_* notes for the stack pointer.
15620 (tilegx_expand_epilogue): Restore stack pointer by adjusting it by
15621 EH_RETURN_STACKADJ_RTX.
15622 * config/tilepro/tilepro.c (tilepro_expand_prologue): Don't
15623 generate REG_CFA_* notes for the stack pointer.
15624 (tilepro_expand_epilogue): Restore stack pointer by adjusting it
15625 by EH_RETURN_STACKADJ_RTX.
15626
0bd5f4dd
GJL
156272012-03-07 Georg-Johann Lay <avr@gjlay.de>
15628
15629 * doc/invoke.texi (AVR Built-in Macros): Correct condition for
15630 when __AVR_3_BYTE_PC__ is defined.
15631
397c0dc8
UB
156322012-03-07 Uros Bizjak <ubizjak@gmail.com>
15633
15634 * config/i386/i386.c (ix86_print_operand_punct_valid_p): Add '^'.
15635 (ix86_print_operand): Handle '^'.
15636 * config/i386/i386.md (*strmovdi_rex_1): Macroize memory operands
15637 using P mode iterator. Add %^ to asm template to conditionally emit
15638 addr32 prefix.
15639 (*rep_movdi_rex64): Ditto.
15640 (*strsetdi_rex_1): Ditto.
15641 (*rep_stosdi_rex64): Ditto.
15642 (*strmov{si,hi,qi}_1): Add %^ to asm template to
15643 conditionally emit addr32 prefix.
15644 (*rep_mov{si,qi}): Ditto.
15645 (*strset{si,hi,qi}): Ditto.
15646 (*rep_stos{si,qi}): Ditto.
15647 (*cmpstrnqi_nz_1): Ditto.
15648 (*cmpstrnqi_1): Ditto.
15649 (*strlenqi_1): Ditto.
15650
cccff71a
L
156512012-03-07 H.J. Lu <hongjiu.lu@intel.com>
15652
15653 * config/i386/i386.c (function_value_64): Return pointers in
15654 word_mode instead of Pmode.
15655 (ix86_promote_function_mode): Likewise.
15656
0f250839
RG
156572012-03-07 Richard Guenther <rguenther@suse.de>
15658
15659 * coverage.c (get_gcov_type): Use type_for_mode.
15660 (get_gcov_unsigned_t): Likewise.
15661 * expr.c (store_constructor): Use type_for_mode.
15662 (try_casesi): Likewise.
397c0dc8 15663 * tree-ssa-loop-ivopts.c (add_standard_iv_candidates_for_size): Remove.
0f250839
RG
15664 (add_standard_iv_candidates): Use standard type trees.
15665 * dojump.c (do_jump): Remove dead code.
15666
647d4b75
RG
156672012-03-07 Richard Guenther <rguenther@suse.de>
15668
15669 * c-typeck.c (pointer_diff): Use c_common_type_for_size.
15670
73ddd02d
RG
156712012-03-07 Richard Guenther <rguenther@suse.de>
15672
15673 * convert.c (strip_float_extensions): Move ...
15674 * tree.c (strip_float_extensions): ... here.
15675
1274e3a4
GJL
156762012-03-07 Georg-Johann Lay <avr@gjlay.de>
15677
15678 PR target/52484
15679 * config/avr/avr.md (xload<mode>_A): Add R22... to register footprint.
15680
96f9265a
RG
156812012-03-07 Richard Guenther <rguenther@suse.de>
15682
15683 * omp-low.c (extract_omp_for_data): Use signed_type_for.
15684 (expand_omp_for_generic): Likewise.
15685 (expand_omp_for_static_nochunk): Likewise.
15686 (expand_omp_for_static_chunk): Likewise.
15687 * tree-vect-stmts.c (vect_gen_perm_mask): Use type_for_mode.
15688 * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise.
15689 * tree-vect-loop-manip.c (vect_gen_niters_for_prolog_loop):
15690 Use unsigned_type_for.
15691 (vect_create_cond_for_align_checks): Use signed_type_for.
15692
3f1960ac
AB
156932012-03-07 Andrey Belevantsev <abel@ispras.ru>
15694
15695 PR rtl-optimization/52203
15696 * sel-sched.c (estimate_insn_cost): New parameter pempty. Adjust
15697 all callers to pass NULL except ...
15698 (reset_sched_cycles_in_current_ebb): ... here, save the value
15699 in new variable 'empty'. Increase issue_rate only for
397c0dc8 15700 non-empty insns.
3f1960ac 15701
d6baa446
RC
157022012-03-07 Ralf Corsépius <ralf.corsepius@rtems.org>
15703
15704 PR target/51417
397c0dc8
UB
15705 * Makefile.in: Let install-gcc-ar depend on installdirs,
15706 gcc-ar$(exeext), gcc-nm$(exeext), gcc-ranlib$(exeext).
d6baa446
RC
15707 Don't double canonicalize if cross-compiling.
15708
42601c63
GJL
157092012-03-07 Georg-Johann Lay <avr@gjlay.de>
15710
15711 PR target/52506
15712 * gcc/config/avr/avr.c (expand_epilogue): Fix order of restoration
15713 to: RAMPZ, RAMPY, RAMPX, RAMPD.
15714 (expand_prologue): Only clear RAMPZ if it has effect on RAM-read.
15715
61108225
GJL
157162012-03-07 Georg-Johann Lay <avr@gjlay.de>
15717
15718 PR target/52505
15719 * config/avr/avr.c (avr_out_xload): Don't read unintentionally
15720 from RAM.
15721 * config/avr/avr.md (xload_8): Adjust insn length.
15722
b30e10ab
GJL
157232012-03-07 Georg-Johann Lay <avr@gjlay.de>
15724
15725 PR target/52461
15726 * gcc/config/avr/avr.c (avr_out_lpm): Clear RAMPZ after usage
15727 if RAMPZ affects reading from RAM.
15728
eb3e63cc
RG
157292012-03-07 Richard Guenther <rguenther@suse.de>
15730
15731 PR pch/52518
15732 PR pch/38987
15733 * doc/invoke.texi (Precompiled Headers): Remove sentence that
15734 suggests you can include PCHs from inside another header.
15735
788284ef
RS
157362012-03-07 Richard Sandiford <rdsandiford@googlemail.com>
15737
15738 PR middle-end/52515
15739 * rtl.h (pc_rtx, cc0_rtx, ret_rtx, simple_return_rtx): Add GTY markers.
15740
98b1d9b2
KT
157412012-03-07 Kai Tietz <ktietz@redhat.com>
15742
15743 * doc/invoke.texi (fwritable-relocated-rdata): Document
15744 new Cygwin/MinGW target option.
15745 * config/i386/winnt.c (i386_pe_unique_section): Ignore
15746 reloc if flag -fwritable-relocated-rdata is not set.
15747 (i386_pe_section_type_flags): Likewise.
15748 * config/i386/cygming.opt (fwritable-relocated-rdata):
15749 Add new flag variable flag_writable_rel_rdata.
15750
f409d239
RG
157512012-03-07 Richard Guenther <rguenther@suse.de>
15752
15753 * tree-ssa-math-opts.c (convert_mult_to_widen): Check actual
15754 precision against gimple constraints.
15755
ca4adc91
RS
157562012-03-06 Richard Sandiford <rdsandiford@googlemail.com>
15757
15758 PR middle-end/52372
15759 * rtl.h (pc_rtx, ret_rtx, simple_return_rtx, cc0_rtx): Redefine as
15760 variables.
15761 (GR_PC, GR_CC0, GR_RETURN, GR_SIMPLE_RETURN): Delete.
15762 * emit-rtl.c (pc_rtx, ret_rtx, simple_return_rtx, cc0_rtx): New
15763 variables.
15764 (init_emit_regs): Move associated initialization to...
15765 (init_emit_once): ...here.
15766
22a89c86
RH
157672012-03-06 Richard Henderson <rth@redhat.com>
15768
15769 * config/m68k/m68k.h (ISA_HAS_TAS): New.
15770 * config/m68k/sync.md (atomic_test_and_set): Use it.
15771 (atomic_test_and_set_1): Likewise.
15772
46402cbe
MM
157732012-03-06 Michael Meissner <meissner@linux.vnet.ibm.com>
15774
15775 PR target/50310
15776 * config/rs6000/vector.md (vector_uneq<mode>): Add support for
15777 UNEQ, LTGT, ORDERED, and UNORDERED IEEE vector comparisons.
15778 (vector_ltgt<mode>): Likewise.
15779 (vector_ordered<mode>): Likewise.
15780 (vector_unordered<mode>): Likewise.
397c0dc8 15781 * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
46402cbe 15782
6342e53f
AH
157832012-03-06 Aldy Hernandez <aldyh@redhat.com>
15784
15785 * trans-mem.c: New typedef for tm_region_p.
15786 Define vector types for tm_region_p.
15787 (tm_region_init): Replace region_worklist to a vector called
15788 bb_regions.
15789
d8f56643
RG
157902012-03-06 Richard Guenther <rguenther@suse.de>
15791
15792 * fold-const.c (build_fold_addr_expr_with_type_loc): Fold
15793 MEM_REF with constant pointer operand.
15794
9da5500b
RG
157952012-03-06 Richard Guenther <rguenther@suse.de>
15796
15797 PR middle-end/52493
15798 * tree-ssa-alias.c (ptr_derefs_may_alias_p): Robustify.
15799
66df6e9e
TG
158002012-03-06 Tristan Gingold <gingold@adacore.com>
15801
397c0dc8 15802 * config/vms/vms-c.c (vms_pragma_nomember_alignment): Handle octaword.
66df6e9e
TG
15803 (external_model_kind): Improve documentation.
15804 (vms_pragma_extern_model): Handle relaxed_redef.
15805 (vms_c_register_pragma): Allow expansion for nomember_alignment.
15806
837fd3b0
GJL
158072012-03-06 Georg-Johann Lay <avr@gjlay.de>
15808
15809 * doc/invoke.texi (AVR Options): -mmcu=: Document the XMEGA cores.
15810 Explain RAMPD, RAMPX, RAMPDY, RAMPZ usage by avr-gcc.
15811 Some more notes on EIND usage and reorder EIND subsection.
15812
17a27c59
TG
158132012-03-06 Tristan Gingold <gingold@adacore.com>
15814
15815 * config/vms/vms.c (VMS_CRTL_LDBL): Rename from VMS_CRTL_PRNTF.
15816 * config/vms/vms-crtlmap.map: Rename PRNTF to LDBL.
15817
a2ddaaf5
TG
158182012-03-06 Tristan Gingold <gingold@adacore.com>
15819
15820 * config/vms/t-vmsnative (version): Define.
15821 * config/vms/t-vms (STMP_FIXPROTO, STMP_FIXINC, version): Remove.
15822
b7b5540a
AB
158232012-03-06 Andrey Belevantsev <abel@ispras.ru>
15824
15825 PR rtl-optimization/52250
15826 * sel-sched-ir.c (maybe_tidy_empty_bb): Try harder to find a bb
15827 to put note list into. Unconditionally call move_bb_info.
15828 (move_bb_info): Do not assert the blocks being in the same region,
a2ddaaf5 15829 just drop the note list if they are not.
b7b5540a 15830
9747719a
OE
158312012-03-06 Oleg Endo <olegendo@gcc.gnu.org>
15832
15833 PR target/51244
15834 * config/sh/sh.c (sh_expand_t_scc): Remove SH2A special case
15835 and use unified expansion logic.
15836 * config/sh/sh.md (xorsi3_movrt): Rename to movrt. Move
15837 closer to the existing movt insn.
15838 (negc): Rename insn to *negc. Add new expander.
15839 (movnegt): Use xor pattern for T bit negation. Reserve helper
15840 constant for negc pattern.
15841 (*movnegt): New insn and splitter.
15842
5de72424
BS
158432012-03-05 Bernd Schmidt <bernds@codesourcery.com>
15844
15845 * c-typeck.c (pointer_diff): Check for POINTER_PLUS_EXPR, not
15846 PLUS_EXPR.
15847
3b1552c1
RH
158482012-03-05 Richard Henderson <rth@redhat.com>
15849
15850 * genemit.c (main): Include "target.h" in insn-emit.c.
15851 * Makefile.in (insn-emit.o): Depend on TARGET_H.
15852 * config/sh/sync.md (atomic_test_and_set): Reference
15853 targetm.atomic_test_and_set_trueval instead of
15854 TARGET_ATOMIC_TEST_AND_SET_TRUEVAL.
15855
1565f169
JR
158562012-03-05 Joern Rennecke <joern.rennecke@embecosm.com>
15857
15858 * config/epiphany/epiphany.c (epiphany_function_value_regno_p):
15859 Make static.
15860
c0814136
SB
158612012-03-05 Steven Bosscher <steven@gcc.gnu.org>
15862
15863 * langhooks.c (add_builtin_type): New function.
15864 * langhooks.h (add_builtin_type): Export it.
15865 * config/mep/mep.c (mep_init_builtins): Use it.
15866 * config/rs6000/rs6000.c (rs6000_init_builtins): Use it.
15867
1e3c1d95
JJ
158682012-03-05 Jakub Jelinek <jakub@redhat.com>
15869
15870 PR debug/51902
15871 * tree.h (BLOCK_SAME_RANGE): Define.
15872 * function.c (block_fragments_nreverse): Clear BLOCK_SAME_RANGE
15873 if BLOCK_FRAGMENT_CHAIN is non-NULL, but has it cleared.
15874 Also clear BLOCK_SAME_RANGE if fragment chain's supercontext fragment
15875 isn't equal to supercontext fragment's fragment chain.
15876 Adjust BLOCK_SUPERCONTEXT to point to supercontext fragment's
15877 fragment origin.
15878 (blocks_nreverse_all): Likewise.
15879 (reorder_blocks_1): Compute BLOCK_SAME_RANGE bits. Set
15880 BLOCK_SUPERCONTEXT to supercontext fragment instead of
15881 supercontext fragment's fragment origin.
15882 * dwarf2out.c (add_high_low_attributes): If stmt has the same
15883 range as its parent (or parents thereof etc.), use the parent's
15884 DW_AT_ranges value instead of creating a new .debug_ranges range.
15885
4999c62c
RH
158862012-03-05 Richard Henderson <rth@redhat.com>
15887
15888 PR tree-opt/52242
15889 Revert: 2011-11-26 Richard Henderson <rth@redhat.com>
15890 * omp-low.c (expand_omp_atomic): Assume anything aligned to
15891 BIGGEST_ALIGNMENT is aligned.
15892
95a6dda5
RH
158932012-03-05 Richard Henderson <rth@redhat.com>
15894
15895 * config/sh/sh.h (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): Move...
15896 * config/sh/sh.c: ... here.
15897
b7313c30
RH
158982012-03-05 Richard Henderson <rth@redhat.com>
15899
15900 PR target/52481
15901 * config/m68k/sync.md (atomic_test_and_set): Use expand_simple_unop
15902 instead of calling negqi2 directly.
15903
f49b12f4
RH
159042012-03-05 Aldy Hernandez <aldyh@redhat.com>
15905
15906 PR middle-end/52463
15907 * trans-mem.c (tm_region_init): Use last_basic_block.
15908
ab649754
OE
159092012-03-05 Oleg Endo <olegendo@gcc.gnu.org>
15910
15911 * config/sh/sh.h (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New hook.
15912 * config/sh/sync.md (atomic_test_and_set): New expander.
15913 (tasb, atomic_test_and_set_soft): New insns.
15914 * config/sh/sh.opt (menable-tas): New option.
15915 * doc/invoke.texi (SH Options): Document it.
15916
510dbcce
RG
159172012-03-05 Richard Guenther <rguenther@suse.de>
15918
15919 * cfgloop.c (verify_loop_structure): Verify dominators before
15920 using them.
15921 * graphite-clast-to-gimple.c (graphite_verify): Do not verify
15922 dominators from here.
15923 * graphite-scop-detection.c (create_sese_edges): Likewise.
15924 * loop-doloop.c (doloop_optimize_loops): Likewise.
15925 * loop-init.c (loop_optimizer_init): Likewise.
15926 * loop-unroll.c (unroll_and_peel_loops): Likewise.
15927 * loop-unswitch.c (unswitch_loops): Likewise.
15928 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
15929 * tree-parloops.c (parallelize_loops): Likewise. Verify
15930 only when checking is enabled.
15931 * tree-loop-distribution.c (tree_loop_distribution): Likewise.
15932
50bcfce0
BS
159332012-03-05 Bernd Schmidt <bernds@codesourcery.com>
15934
15935 * genautomata.c (parse_automata_opt): New static function.
15936 (initiate_automaton_gen): Remove all option handling code. Remove
15937 argc argument. All callers changed.
397c0dc8 15938 (main): Call init_rtx_reader_args_cb with the new function as argument.
50bcfce0 15939
cd7d9fd7
RG
159402012-03-05 Richard Guenther <rguenther@suse.de>
15941
15942 * cfgexpand.c (gimple_expand_cfg): Free dominator info.
15943 * tree-if-conv.c (combine_blocks): Free post-dominator info
15944 after breaking it.
15945 * tree-parloops.c (create_parallel_loop): Free and re-compute
15946 dominator info after breaking it.
15947
b55f62cc
RG
159482012-03-05 Richard Guenther <rguenther@suse.de>
15949
15950 PR middle-end/52353
15951 * optabs.h (trapv_unoptab_p): New function.
15952 (trapv_binoptab_p): Likewise.
15953 * optabs.c (expand_binop): Use emit_libcall_block_1 with
15954 a proper equiv_may_trap argument.
15955 (expand_unop): Likewise.
15956 (emit_libcall_block_1): Take extra argument whether the
15957 instruction may trap. Renamed from ...
15958 (emit_libcall_block): ... this. New wrapper.
15959
f9df6f16
JJ
159602012-03-05 Jakub Jelinek <jakub@redhat.com>
15961
3877a6a6
JJ
15962 PR tree-optimization/51721
15963 * tree-vrp.c (register_edge_assert_for_2): If comparing
15964 lhs of right shift by constant with an integer constant,
15965 add ASSERT_EXPRs for the rhs1 of the right shift.
15966
f9df6f16
JJ
15967 * cfgrtl.c (cfg_layout_merge_blocks): Cleanup.
15968
45c0175b
RG
159692012-03-05 Richard Guenther <rguenther@suse.de>
15970
15971 * tree.c (integer_zerop): Handle VECTOR_CSTs.
15972 (integer_onep): Likewise.
15973 (integer_all_onesp): Likewise.
15974
d84f3a05
GJL
159752012-03-05 Georg-Johann Lay <avr@gjlay.de>
15976
15977 * config/avr/avr.md (*umaddqihi4.2): New insn-and-split.
15978
55b86fb0
L
159792012-03-04 H.J. Lu <hongjiu.lu@intel.com>
15980
15981 * config/i386/i386.c (pro_epilogue_adjust_stack): Check Pmode
15982 instead of TARGET_64BIT.
15983
4732e8de
L
159842012-03-04 H.J. Lu <hongjiu.lu@intel.com>
15985
15986 * config/i386/i386.c (ix86_expand_prologue): Check Pmode to set
15987 adjust_stack_insn.
15988
5ca9708b
L
159892012-03-04 H.J. Lu <hongjiu.lu@intel.com>
15990
15991 * config/i386/i386.c (ix86_print_operand_address): Only handle
15992 zero-extended DImode addresses.
15993
f0050a4b
UB
159942012-03-04 Uros Bizjak <ubizjak@gmail.com>
15995
15996 * config/i386/i386.c (ix86_print_operand) <case '+'>: Declare
15997 taken and cputaken as bool.
15998
904eea2c
UB
159992012-03-04 Uros Bizjak <ubizjak@gmail.com>
16000
16001 * config/i386/constraints.md (Ya): New internal constraint.
16002 * config/i386/i386.md (zero_extendsidi2): Remove expansion.
16003 (*zero_extendsidi2_rex64): Add x,x alternative.
16004 (*zero_extendsidi2): Ditto. Add o,0 alternative.
16005 Remove flags reg clobber. Adjust corresponding splits.
16006 (zero_extend<mode>si2): Macroize expander from zero_extendhisi2 and
16007 zero_extendqisi2 expanders using SWI12 mode iterator.
16008 (zero_extend<mode>si2_and): Macroize insn from
16009 zero_extendhisi2_and and zero_extendqisi2_and. Merge corresponding
16010 splitters.
16011 (*zero_extend<mode>si2): Macroize insn from
16012 *zero_extendhisi2_movzbl and *zero_extendqisi2_movzbl.
16013 (*zero_extend*2_movzbl_and): Remove insn patterns.
16014 (zero_extendqihi2_and): Merge corresponding splitter.
16015 (*zero_extendqihi2): Rename from *zero_extendqihi2_movzbl.
16016 (*zero_extend*2_movzbl_and): Remove insn patterns.
16017 (*anddi_1): Split TYPE_IMOVX instructions.
16018 (*andsi_1): Use Ya for alternative 2. Split TYPE_IMOVX instructions.
16019 (*andhi_1): Ditto.
16020 (and->zext splitter): Add splitter pattern.
16021 (zero extend with andsi3 splitter): Adjust zero_extend pattern.
16022
b12866c7
SL
160232012-03-04 Sandra Loosemore <sandra@codesourcery.com>
16024
16025 * doc/invoke.texi (C++ Dialect Options): Minor copy-edits to
16026 x86-specific text.
16027 (Debugging Options): Likewise.
16028 (Optimize Options): Likewise.
16029 (i386 and x86-64 Options): Discuss -march before -mtune, consistently
16030 with other architectures. Use official processor names with correct
16031 spelling/capitalization. Fix formatting and grammar issues.
16032 (i386 and x86-64 Windows Options): Similar cleanup here.
16033
4feaca8b
KK
160342012-03-03 Kaz Kojima <kkojima@gcc.gnu.org>
16035
16036 * config/sh/sh.md (abssi2): Add TARGET_SH1 condition.
16037
59248459
KK
160382012-03-03 Kaz Kojima <kkojima@gcc.gnu.org>
16039
16040 * config/sh/sh.c (sh_dwarf_register_span): Don't apply
16041 DBX_REGISTER_NUMBER.
16042
dea148c4
KK
160432012-03-03 Kaz Kojima <kkojima@gcc.gnu.org>
16044
16045 * config/sh/sh.c (shiftcosts): Return MAX_COST when the first
16046 operand is CONST_INT. Take COSTS_N_INSNS into account.
16047 (sh_rtx_costs): Don't apply COSTS_N_INSNS to the return value
16048 of shiftcosts.
16049
a6de595f
RH
160502012-03-02 Richard Henderson <rth@redhat.com>
16051
16052 * optabs.c (expand_atomic_test_and_set): Honor
16053 atomic_test_and_set_trueval even when atomic_test_and_set
16054 optab is not in use.
16055
4978c736
KK
160562012-03-02 Kaz Kojima <kkojima@gcc.gnu.org>
16057
16058 PR target/48596
16059 PR target/48806
16060 * config/sh/sh.c (sh_register_move_cost): Increase cost between
16061 GENERAL_REGS and FP_REGS for SImode.
16062
5e44ea89
OE
160632012-03-02 Oleg Endo <olegendo@gcc.gnu.org>
16064
16065 PR target/49486
16066 * config/sh/sh.md (negdi2): Add TARGET_SH1 condition.
16067 (absdi2): New expander.
16068 (*absdi2, *negabsdi2, negdi_cond): New insns and splits.
16069
349e6f05
OE
160702012-03-02 Oleg Endo <olegendo@gcc.gnu.org>
16071
b5ea8036
OE
16072 * config/sh/sync.md (atomic_exchange<mode>): New expander.
16073 (atomic_exchange<mode>_soft): New insn.
16074
160752012-03-02 Oleg Endo <olegendo@gcc.gnu.org>
16076
16077 * config/sh/sync.md: Update copyright notice dates.
349e6f05
OE
16078 (atomic_compare_and_swap<mode>): Use SImode for return value instead
16079 of QImode.
b5ea8036 16080 (atomic_compare_and_swap<mode>_soft): Likewise.
349e6f05
OE
16081
160822012-03-02 Oleg Endo <olegendo@gcc.gnu.org>
904eea2c 16083
b6a0df6c
OE
16084 PR target/31640
16085 * config/sh/sh.h (LOOP_ALIGN): Move logic to sh_loop_align.
16086 * config/sh/sh.c: Update copyright notice dates.
16087 (sh_loop_align): Add logic from LOOP_ALIGN. Don't disable loop
16088 alignment for TARGET_HARD_SH4.
904eea2c 16089 (sh_option_override): Reduce default function alignment. Set
b6a0df6c
OE
16090 loop alignment to 4 bytes when not optimizing for size.
16091
093193be
MK
160922012-03-02 Maxim Kuvyrkov <maxim@codesourcery.com>
16093
290d87eb 16094 PR middle-end/50335
093193be
MK
16095 * doc/invoke.texi (floop-flatten): Remove.
16096 * toplev.c (process_options): Remove references to flag_loop_flatten.
16097 * tree-ssa-loop.c (gate_graphite_transform): Same.
16098 * common.opt (floop-flatten): Obsolete.
16099 * graphite-poly.c (apply_poly_transforms): Remove reference to
16100 flag_loop_flatten.
16101 * Makefile.in (graphite-flattening.o): Remove.
16102 * graphite-flattening.c: Remove.
16103
34c5f21a
UB
161042012-03-02 Uros Bizjak <ubizjak@gmail.com>
16105
16106 * compare-elim.c (find_comparisons_in_bb): Eliminate only compares
16107 having mode compatible with the mode of previous compare. Substitute
16108 compare mode of previous compare with the mode, compatible
16109 with eliminated and previous compare.
16110
6f975f93
PB
161112012-03-02 Peter Bergner <bergner@vnet.ibm.com>
16112
16113 * config/rs6000/dfp.md (floatdidd2): New define_insn.
16114
76945a7c
UB
161152012-03-02 Uros Bizjak <ubizjak@gmail.com>
16116
16117 * config/i386/i386.c (ix86_cc_modes_compatible): Declare CCZmode
16118 compatible with CCGOCmode and CCGCmode.
16119
2ff16893
PB
161202012-03-02 Peter Bergner <bergner@vnet.ibm.com>
16121
16122 * config/rs6000/vsx.md (vsx_set_<mode>): Reorder operands.
16123
5d216c70
UW
161242012-03-02 Ulrich Weigand <ulrich.weigand@linaro.org>
16125
16126 * config/arm/arm.c (arm_sat_operator_match): New function.
16127 * config/arm/arm-protos.h (arm_sat_operator_match): Add prototype.
16128 * config/arm/arm.md ("insn" attribute): Add "sat" value.
16129 ("SAT", "SATrev"): New code iterators.
16130 ("SATlo", "SAThi"): New code iterator attributes.
16131 ("*satsi_<SAT:code>"): New pattern.
16132 ("*satsi_<SAT:code>_shift"): Likewise.
16133 * config/arm/arm-fixed.md ("arm_ssatsihi_shift"): Add "insn"
16134 and "shift" attributes.
16135 ("arm_usatsihi"): Add "insn" attribute.
16136 * config/arm/predicates.md (sat_shift_operator): Allow multiplication
16137 by powers of two. Do not allow shift by 32.
16138
2b57045b
UB
161392012-03-02 Uros Bizjak <ubizjak@gmail.com>
16140
16141 PR target/46716
16142 * config/i386/i386.c (construct_container): Use gen_reg_or_parallel
16143 to pass the argument in the register of "natural" mode.
16144
c4ddde1b
RG
161452012-03-02 Richard Guenther <rguenther@suse.de>
16146
16147 PR tree-optimization/52406
16148 * tree-data-ref.h: Update documentation about DR_BASE_OBJECT.
16149 (struct indices): Add unconstrained_base member.
16150 (struct dr_alias): Remove unused vops member.
16151 (DR_UNCONSTRAINED_BASE): New define.
16152 * tree-data-ref.c (dr_analyze_indices): For COMPONENT_REFs
16153 add indices to allow their disambiguation. Make DR_BASE_OBJECT
16154 be an artificial access that covers the whole indexed object,
16155 or mark it with DR_UNCONSTRAINED_BASE if we cannot do so. Canonicalize
16156 plain decl base-objects to their MEM_REF variant.
16157 (dr_may_alias_p): When the base-object of either data reference
16158 has unknown size use only points-to information.
16159 (compute_affine_dependence): Make dumps easier to read and
16160 more verbose.
16161 * tree-vect-data-ref.c (vector_alignment_reachable_p): Use
16162 DR_REF when looking for packed references.
16163 (vect_supportable_dr_alignment): Likewise.
16164
2d68f67f
GY
161652012-03-02 Greta Yorsh <Greta.Yorsh@arm.com>
16166
2b57045b 16167 * config/arm/arm-ldmstm.ml (write_ldm_commutative_peephole):
2d68f67f
GY
16168 Improve conditions for peepholes of loads followed by commutative
16169 operators.
2b57045b 16170 * config/arm/ldmstm.md: Regenerated.
2d68f67f 16171
45c29d4d
RG
161722012-03-02 Richard Guenther <rguenther@suse.de>
16173
16174 * BASE-VER: Set to 4.8.0.
16175
9094e001
RE
161762012-03-01 Richard Earnshaw <rearnsha@arm.com>
16177
16178 * config.gcc (obsolete): Add all ARM targets using the FPA.
16179 (with_fpu): Obsolete selection of the FPA or Maverick on ARM.
16180 * doc/install.texi: Avoid references to obsolete ARM ports.
16181
82b06589
JR
161822012-03-01 Joern Rennecke <joern.rennecke@embecosm.com>
16183
16184 * config/epiphany/epiphany.md (movmisalign<mode>): New patterns.
16185
08b03910
JB
161862012-03-01 Jeremy Bennett <jeremy.bennett@embecosm.com>
16187 Joern Rennecke <joern.rennecke@embecosm.com>
16188
16189 * doc/extend.texi: Expand and update information on interrupt
16190 attribute for Epiphany.
16191
1ce35c11
OE
161922012-03-01 Oleg Endo <olegendo@gcc.gnu.org>
16193
16194 * config/sh/sh-protos.h: Update copyright notice dates.
16195 * config/sh/sh.h: Likewise.
16196 * config/sh/sh.md: Likewise.
16197 * config/sh/constraints.md: Likewise.
16198 * config/sh/predicates.md: Likewise.
16199
f51a9d10
OE
162002012-03-01 Oleg Endo <olegendo@gcc.gnu.org>
16201
16202 * config/sh/sh-protos.h (tertiary_reload_operand): Remove dead function.
16203 * config/sh/sh.c (tertiary_reload_operand): Likewise.
16204
d4217ae1
OE
162052012-03-01 Oleg Endo <olegendo@gcc.gnu.org>
16206
16207 * config/sh/constraints.md: Fix comment typo.
16208
5d9dc69a
JDA
162092012-03-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
16210
16211 PR target/52408
16212 * config/pa/pa.md (zvdep_imm32): Change type of variable x from int to
16213 unsigned HOST_WIDE_INT.
16214 (zvdep_imm64): Likewise.
16215 (vdepi_ior): Change type of variable x from int to HOST_WIDE_INT.
16216 (vdepi_and): Likewise.
16217 Likewise for unamed 64-bit patterns.
16218 * config/pa/predicates.md (lhs_lshift_cint_operand): Update comment.
16219
0f68ba3e
AO
162202012-03-01 Alexandre Oliva <aoliva@redhat.com>
16221
16222 PR debug/52001
16223 PR rtl-optimization/52417
16224 * cselib.c (cselib_any_perm_equivs): New variable.
16225 (cselib_reset_table): Check that it's not set when not
16226 preserving constants.
16227 (cselib_add_permanent_equiv): Set it.
16228 (cselib_have_permanent_equivalences): New.
16229 (cselib_init, cselib_finish): Reset it.
16230 * cselib.h (cselib_have_permanent_equivalences): Declare.
16231 * alias.c (get_addr): Restore earlier behavior when there
16232 aren't permanent equivalences.
16233
2aceddd8
SB
162342012-03-01 Steven Bosscher <steven@gcc.gnu.org>
16235
16236 * config/mn10300/mn10300-modes.def: Fix copyright notice.
16237 * config/v850/v850-modes.def: Fix copyright notice.
16238
1619fcfc
GJL
162392012-03-01 Georg-Johann Lay <avr@gjlay.de>
16240
16241 * doc/extend.texi (AVR Built-in Functions): Document
16242 __builtin_avr_flash_segment.
16243
16244 * config/avr/builtins.def (__builtin_avr_flash_segment): New entry.
16245 * config/avr/avr.md (flash_segment, flash_segment1): New expanders.
16246 (*split.flash_segment): New insn-and-split.
16247 * config/avr/avr.c (avr_init_builtins): Add local variables:
16248 const_memx_void_node, const_memx_ptr_type_node,
16249 char_ftype_const_memx_ptr.
16250
69ef9a79
JJ
162512012-03-01 Jakub Jelinek <jakub@redhat.com>
16252
16253 PR tree-optimization/52445
16254 * tree-ssa-phiopt.c (struct name_to_bb): Remove ssa_name field,
16255 add ssa_name_ver, offset and size fields and change store field
16256 to bool.
16257 (name_to_bb_hash, name_to_bb_eq): Adjust for the above changes.
16258 (add_or_mark_expr): Likewise. Only consider previous stores
16259 with the same size and offset.
16260 (nt_init_block): Only look at gimple_assign_single_p stmts,
16261 doesn't look at rhs2.
16262
c1d9cb02
RG
162632012-03-01 Richard Guenther <rguenther@suse.de>
16264
16265 PR middle-end/52443
16266 * tree-cfg.c (verify_gimple_assign_unary): Allow any
16267 conversions from integral types to pointer types.
16268
b2ef48ef
GJL
162692012-03-01 Georg-Johann Lay <avr@gjlay.de>
16270
16271 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Restore built-in
2b57045b 16272 defines for __UINT24_MAX__, __INT24_MAX__, __INT24_MIN__
b2ef48ef
GJL
16273 unintentionally removed in r184616.
16274
283b5296
VK
162752012-03-01 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
16276
16277 * doc/invoke.texi: Document AMD bdver2 and remove mentioning
16278 3DNow from bdver1.
16279
29ebe616
JJ
162802012-02-29 Jakub Jelinek <jakub@redhat.com>
16281 Uros Bizjak <ubizjak@gmail.com>
16282
16283 PR target/52437
16284 * config/i386/sse.md (vec_set<mode>_0): Swap "*r" and "fF"
16285 alternatives, add "e" constraint to the new last alternative
16286 and ! to last 3 alternatives.
16287
fd787640
EB
162882012-02-29 Eric Botcazou <ebotcazou@adacore.com>
16289
16290 * dwarf2out.c (modified_type_die): Set DW_AT_GNAT_descriptive_type and
16291 DW_AT_artificial attributes at the end of the processing.
16292 (gen_array_type_die): Likewise.
16293 (gen_enumeration_type_die): Likewise.
16294 (gen_struct_or_union_type_die): Likewise.
16295 (add_gnat_descriptive_type_attribute): Do not suppress debug info for
16296 the parent type.
16297
598e67d7
JJ
162982012-02-29 Jakub Jelinek <jakub@redhat.com>
16299
a3017cf1
JJ
16300 PR middle-end/52419
16301 * expr.c (expand_assignment): If doing misaligned store that doesn't
16302 cover all mode bits, perform a RMW cycle.
16303
598e67d7
JJ
16304 PR tree-optimization/52429
16305 * tree-parloops.c (separate_decls_in_region_debug): Return early
16306 if var is LABEL_DECL.
16307
529b39d8
BS
163082012-02-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16309
16310 PR tree-optimization/52424
16311 * tree-ssa-dom.c (dom_opt_leave_block): Push a marker before
16312 calling dom_thread_across_edge.
16313
43c626f0
GJL
163142012-02-29 Georg-Johann Lay <avr@gjlay.de>
16315
16316 * config/avr/avr.c: Move definition of TARGET macros to end of file.
16317
20848609
GJL
163182012-02-29 Georg-Johann Lay <avr@gjlay.de>
16319
16320 * config/avr/avr-protos.h (avr_output_bld): Remove unused prototype.
16321 * config/avr/avr.c (avr_output_bld): Remove unused function.
16322 (avr_out_sbxx_branch): Use "%T" to print bit position.
16323
1edaa8b7
GJL
163242012-02-29 Georg-Johann Lay <avr@gjlay.de>
16325
16326 * config/avr/avr.md: Untabify.
16327
163282012-02-29 Georg-Johann Lay <avr@gjlay.de>
16329
16330 * config/avr/avr.md (eqne): New code iterator.
16331 (*dec-and-branchsi): Use it in text peephole's condition.
16332 (*dec-and-branchhi): Ditto.
16333 (*dec-and-branchqi): Ditto.
16334
df51e502
GJL
163352012-02-29 Georg-Johann Lay <avr@gjlay.de>
16336
16337 PR target/49939
16338 * config/avr/avr.h (ASM_SPEC): Add -mno-skip-bug if we know that
16339 the device does not have the skip-bug.
16340
bf997c7d
OE
163412012-02-29 Oleg Endo <olegendo@gcc.gnu.org>
16342
16343 * doc/invoke.texi (-msoft-atomic): Add more detailed description.
16344 (-mbranch-cost, -mcbranchdi -mcmpeqdi -mfused-madd
16345 -mpretend-cmove): New.
16346
bf743fc4
JJ
163472012-02-29 Jakub Jelinek <jakub@redhat.com>
16348
16349 PR bootstrap/52397
16350 * df.h (struct df_d): Adjust comment that hard_regs_live_count
16351 doesn't count DEBUG_INSN refs.
16352 * df-scan.c (df_ref_create_structure): Don't set DF_HARD_REG_LIVE
16353 for DEBUG_INSN refs.
16354
211bea38
UW
163552012-02-28 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16356
16357 Partially revert:
16358
16359 2012-02-20 Richard Guenther <rguenther@suse.de>
16360 PR tree-optimization/52298
16361 * tree-vect-stmts.c (vectorizable_load): Properly use
6c381d9d 16362 STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing outer loops.
211bea38 16363
19c0d7df
AH
163642012-02-28 Aldy Hernandez <aldyh@redhat.com>
16365
16366 PR middle-end/51752
16367 * gimple.h (gimple_in_transaction): New.
16368 (gimple_set_in_transaction): New.
16369 (struct gimple_statement_base): Add in_transaction field.
16370 * tree-ssa-loop-im.c: (movement_possibility): Restrict movement of
16371 transaction loads.
16372 (tree_ssa_lim_initialize): Compute transaction bits.
16373 * tree.h (compute_transaction_bits): Protoize.
16374 * trans-mem.c (tm_region_init): Use the heap to store BB
16375 auxilliary data.
16376 (compute_transaction_bits): New.
16377
cdbfc61d
BRF
163782012-02-28 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
16379
16380 * gcc.c (display_help): Document --help=common and sort entries
16381 alphabetically.
16382
6c6b6634
BRF
163832012-02-28 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
16384
16385 * doc/install.texi: Document check-$LANG specific shortcuts
16386
fd92bb80
MGD
163872012-02-28 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
16388
16389 PR target/51534
16390 * config/arm/arm.c (neon_builtin_data): Add entries for vcgeu
16391 and vcgtu.
16392 * config/arm/arm_neon.h: Regenerate.
16393 * config/arm/neon.md (unspec): Add UNSPEC_VCGEU, and UNSPEC_VCGTU.
16394 (neon_vcgeu): New insn.
16395 (neon_vcgtu): Likewise.
16396 * config/arm/neon.ml (s_8_32, u_8_32): New lists.
2b57045b 16397 (ops): Unsigned comparison intrinsics call a different builtin.
fd92bb80 16398
8eef33ca
RG
163992012-02-28 Richard Guenther <rguenther@suse.de>
16400
16401 PR target/52407
16402 * config/i386/i386.c (ix86_expand_vector_set): Fix element
16403 ordering for the VEC_CONCAT for two element vectors for
16404 V2SFmode, V2SImode and V2DImode.
16405
e3ed9d60
RE
164062012-02-28 Richard Earnshaw <rearnsha@arm.com>
16407
16408 PR target/49448
16409 * config.gcc (arm*-*-linux*): Use an unambiguous pattern for
16410 detecting big-endian triplets.
16411
192af6e8
RE
164122012-02-28 Richard Earnshaw <rearnsha@arm.com>
16413
16414 * arm.c (aapcs_vfp_is_call_or_return_candidate): Only use the machine
16415 mode if there is no type information available.
16416
b0eaa5b4
TK
164172012-02-28 Thomas Koenig <tkoenig@gcc.gnu.org>
16418
16419 PR tree-optimization/53207
16420 * doc/invoke.texi: Document as experimental and relying on graphite.
16421
f37cf6a9
GJL
164222012-02-28 Georg-Johann Lay <avr@gjlay.de>
16423
16424 * config/avr/avr-devices.c (avr_mcu_type): Adjust NULL part
16425 of initializer to changes from r184614.
2b57045b 16426
85998a93
RG
164272012-02-28 Richard Guenther <rguenther@suse.de>
16428
16429 PR tree-optimization/52395
16430 * tree-sra.c (build_ref_for_offset): Also look at the base
16431 TYPE_ALIGN when figuring out the alignment of the replacement.
16432
3a5a825a
RG
164332012-02-28 Richard Guenther <rguenther@suse.de>
16434
16435 PR tree-optimization/52402
16436 * ipa-prop.c (ipa_modify_call_arguments): Properly use
16437 mis-aligned types when creating the accesses at the call site.
16438
639d0302
GJL
164392012-02-28 Georg-Johann Lay <avr@gjlay.de>
16440
16441 * config/avr/builtins.def: New file.
16442 * config/avr/t-avr (avr.o, avr-c.o): Depend on it.
16443 * config/avr/avr.c (enum avr_builtin_id): Use it.
16444 (avr_init_builtins): Use it. And use avr_bdesc.
16445 (bdesc_1arg): Remove.
16446 (bdesc_2arg): Remove.
16447 (bdesc_3arg): Remove.
16448 (struct avr_builtin_description): Add field n_args.
16449 (avr_bdesc): New static variable using builtins.def.
16450 (avr_expand_builtin): Use it.
16451 Don't call avr_expand_delay_cycles if op0 is not CONST_INT.
16452 (avr_fold_builtin): Fold AVR_BUILTIN_SWAP.
16453 Don't fold AVR_BUILTIN_INSERT_BITS if arg0 is not INTEGER_CST.
16454
8310dca7
GJL
164552012-02-28 Georg-Johann Lay <avr@gjlay.de>
16456
16457 PR target/52148
16458 * config/avr/avr.md (movmem_<mode>): Replace match_operand that
16459 match only one single hard register with respective hard reg rtx.
16460 (movmemx_<mode>): Ditto.
16461 * config/avr/avr.c (avr_emit_movmemhi): Adapt expanding to new
16462 insn anatomy of movmem[x]_<mode>.
16463 (avr_out_movmem): Same for printing assembler and operand usage.
16464
bae3b1bf
GJL
164652012-02-28 Georg-Johann Lay <avr@gjlay.de>
16466
16467 PR target/49868
16468 PR target/52261
16469 * doc/extend.texi (AVR Named Address Spaces): No more try to fix
16470 address spaces located outside of device flash.
16471
16472 * config/avr/avr.h (base_arch_s): Remove field n_segments.
16473 (mcu_type_s): Add field n_flash.
16474 * config/avr/avr-devices.c (avr_arch_types): Remove .n_segments.
16475 Set .have_elpm and .have_elpmx to 1 for avrxmega4 and avrxmega5.
16476 (AVR_MCU): Add N_FLASH argument.
16477 * config/avr/avr-mcus.def (AVR_MCU): Add initializer for .n_flash.
16478 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Only define built-in
16479 macro __FLASH<n> if that address space makes sense for the device.
16480 * config/avr/avr.c (avr_out_lpm): Don't try to fix address spaces
16481 outside of target flash.
16482 (avr_asm_named_section): Ditto.
16483 (avr_asm_select_section): Ditto.
16484 (avr_addr_space_convert): Ditto.
16485 (avr_emit_movmemhi): Ditto.
16486 (avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Error if
16487 address space is outside of device flash.
16488 (avr_insert_attributes): Ditto.
16489 (avr_xload_libgcc_p): Use avr_current_device->n_flash instead of
16490 avr_current_arch->n_segments.
16491
afbf6e97
L
164922012-02-27 H.J. Lu <hongjiu.lu@intel.com>
16493
16494 PR target/52352
2b57045b 16495 * config/i386/i386.md (*movabs<mode>_1): Enable only for TARGET_LP64.
afbf6e97
L
16496 (*movabs<mode>_2): Likewise.
16497
2e216592
JJ
164982012-02-27 Jakub Jelinek <jakub@redhat.com>
16499
56b15099
JJ
16500 PR target/52375
16501 * config/arm/neon.md (vashr<mode>3, vlshr<mode>3): Use
16502 s_register_operand in the test instead of REG_P. Don't call
16503 gen_reg_rtx if it won't be used.
16504
2e216592
JJ
16505 PR tree-optimization/52376
16506 * ipa-split.c (split_function): Ignore CLOBBER stmts.
16507
2662a821
SH
165082012-02-27 Stuart Henderson <shenders@gcc.gnu.org>
16509
16510 * ifcvt.c (noce_get_condition): Check condition variable is not
16511 small_register_classes_for_mode_p before accepting.
16512
f59280cf
UB
165132012-02-27 Uros Bizjak <ubizjak@gmail.com>
16514
16515 * config/i386/i386.md (*movabs<mode>_1): Fix operand 1 constraints.
16516
d2d6bcce
MGD
165172012-02-27 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
16518
16519 Revert:
16520 2012-01-09 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
16521 * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
16522 tuning parameters.
16523 * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
16524
dac73555
OE
165252012-02-27 Oleg Endo <olegendo@gcc.gnu.org>
16526
16527 * config/sh/sh.h: Delete dead GO_IF_LEGITIMATE_INDEX macro.
16528
2eff0b9d
OE
165292012-02-26 Oleg Endo <olegendo@gcc.gnu.org>
16530
16531 * config/sh/predicates.md: Remove blank lines.
16532 * config/sh/sh.c: Fix typos in comments.
16533 * config/sh/constraints.md: Likewise.
16534 * config/sh/sh.md: Remove blank lines.
16535 Fix typos in comments. Use ;; as comment characters.
16536
7afd1a8e
WL
165372012-02-26 Walter Lee <walt@tilera.com>
16538
f59280cf 16539 * config/tilegx/tilegx.c (match_pcrel_step2): Fix instruction pattern.
7afd1a8e
WL
16540 (replace_mov_pcrel_step2): Ditto.
16541
0e224656
AO
165422012-02-25 Alexandre Oliva <aoliva@redhat.com>
16543
a5628378
AO
16544 PR debug/52001
16545 * alias.c (refs_newer_value_cb, refs_newer_value_p): New.
16546 (get_addr): Walk canonical value's locs. Avoid returning VALUEs
16547 and locs that reference values newer than the non-canonical value
16548 at hand. Return the canonical value as a worst case.
16549 (memrefs_conflict_p): Walk canonical value's locs.
16550
0e224656
AO
16551 PR debug/52001
16552 * cselib.c (preserve_only_constants): Rename to...
16553 (preserve_constants_and_equivs): ... this. Split out...
16554 (invariant_or_equiv_p): ... this. Preserve plus expressions
16555 of other preserved expressions too.
16556 (cselib_reset_table): Adjust.
16557 * var-tracking.c (reverse_op): Use canonical value to build
16558 reverse operation.
16559
15498cfa
KT
165602012-02-23 Kai Tietz <ktietz@redhat.com>
16561
16562 * config/i386/i386.c (ix86_delegitimize_address): Handle
16563 UNSPEC_PCREL plus displacement.
16564
39e73abc
GJL
165652012-02-24 Georg-Johann Lay <avr@gjlay.de>
16566
16567 PR target/52261
16568 * config/avr/avr.c (avr_out_movhi_mr_r_xmega): Use base
16569 to test for unusedness in st X addressing.
16570
b9af73fc
RG
165712012-02-24 Richard Guenther <rguenther@suse.de>
16572
16573 PR middle-end/52361
f59280cf 16574 * gimple.c (walk_gimple_op): Use predicates with less redundant tests.
b9af73fc
RG
16575 (is_gimple_reg_type): Move inline ...
16576 * gimple.h (is_gimple_reg_type): ... here.
16577
6ae4eccd
RG
165782012-02-24 Richard Guenther <rguenther@suse.de>
16579
16580 PR middle-end/52361
16581 * passes.c (execute_function_todo): When verifying SSA form
16582 verify gimple form first.
16583 * tree-ssa.c (verify_ssa): Do not verify gimple form here.
16584
bf948210
RG
165852012-02-24 Richard Guenther <rguenther@suse.de>
16586
16587 PR middle-end/52355
16588 * fold-const.c (fold_addr_of_array_ref_difference): New function.
f59280cf 16589 (fold_binary_loc): Use it to extend the existing &a[i] - &a[j] folding.
bf948210 16590
b8f4632c
BRF
165912012-02-13 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
16592
16593 * tree-if-conv (predicate_scalar_phi): Commentary typo fix.
16594
4021ad55
BRF
165952012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
16596
16597 * tree-phinodes.c (make_phi_node): Mark static.
16598 * tree-flow.h (make_phi_node): Remove extern decl.
16599 * doc/gimple.texi (make_phi_node): Remove documentation.
16600
0eb09f31
BRF
166012012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
16602
f59280cf 16603 * tree-into-ssa (update_ssa): Avoid trailing whitespace in dump_file.
0eb09f31
BRF
16604 * tree-ssa-sccvn.c (print_scc): Ditto.
16605
6a953a91
BRF
166062012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
16607
16608 * doc/passes.texi (Full redundancy elimination): Fix typo.
16609
55532e32
BRF
166102012-02-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
16611
16612 * doc/invoke.texi (-fdse, -fdce): Remove duplicate entries.
16613
6cbb4c32
EB
166142012-02-23 Eric Botcazou <ebotcazou@adacore.com>
16615
16616 PR bootstrap/52287
16617 * haifa-sched.c (rank_for_schedule): Stabilize sort for debug insns.
16618
560ad308
UB
166192012-02-23 Uros Bizjak <ubizjak@gmail.com>
16620
16621 PR c/52290
16622 * c-decl.c (start_function): Exit early if decl1 is not FUNTION_DECL.
16623
f71f1418
GJL
166242012-02-23 Georg-Johann Lay <avr@gjlay.de>
16625
16626 * config/avr/avr.md (code_stdname): Add ior, xor.
16627 (xior): New code iterator.
16628 (*<code_stdname><mode>qi.byte0): Use xior instead of ior.
16629 (*<code_stdname><mode>qi.byte1-3): Ditto.
16630
a348dc7f
JJ
166312012-02-23 Jakub Jelinek <jakub@redhat.com>
16632
16633 PR tree-optimization/52019
16634 * ipa-split.c (find_return_bb, find_retval, visit_bb): Ignore
16635 CLOBBER stmts.
16636
e10e461e
UW
166372012-02-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
16638
16639 * acinclude.m4: Use HAVE_INITFINI_ARRAY_SUPPORT instead of
16640 HAVE_INITFINI_ARRAY to work around namespace pollution in
16641 certain versions of newlib system headers.
16642 * config.in: Regenerate.
16643 * configure: Regenerate.
16644 * config/initfini-array.h: Use HAVE_INITFINI_ARRAY_SUPPORT
16645 instead of HAVE_INITFINI_ARRAY.
16646
9517e333
UB
166472012-02-22 Uros Bizjak <ubizjak@gmail.com>
16648
16649 PR target/52330
16650 * config/i386/i386.c (ix86_print_operand) <case 'H'>: Error out if x
16651 is not offsettable memory reference.
16652
219db888
GJL
166532012-02-22 Georg-Johann Lay <avr@gjlay.de>
16654
16655 PR target/18145
16656 * config/avr/avr.c (avr_asm_output_aligned_decl_common): Skip
16657 setting avr_need_clear_bss_p for __gnu_lto* symbols.
16658
45958634
GJL
166592012-02-22 Georg-Johann Lay <avr@gjlay.de>
16660
16661 * config/avr/avr.h (avr_accumulate_outgoing_args): Return int.
9517e333 16662 * config/avr/avr.c (avr_accumulate_outgoing_args): Return int.
45958634 16663
bbd6a014
RO
166642012-02-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16665
16666 * configure.ac (LIB_TLS_SPEC): Enforce use of alternate thread
16667 library on Solaris 8 even without TLS support.
16668 * configure: Regenerate.
16669
3e888a5e
RG
166702012-02-22 Richard Guenther <rguenther@suse.de>
16671
16672 PR middle-end/52329
16673 * gimple-fold.c (fold_stmt_1): Also canonicalize ADDR_EXPRs
16674 for GIMPLE_DEBUG stmts.
bbd6a014 16675
f18a7b25
MJ
166762012-02-22 Martin Jambor <mjambor@suse.cz>
16677
16678 PR middle-end/51782
16679 * emit-rtl.c (set_mem_attributes_minus_bitpos): Set address space
16680 according to the base object.
16681
0b262c28
GJL
166822012-02-22 Georg-Johann Lay <avr@gjlay.de>
16683
16684 PR rtl-optimization/50063
16685 * config/avr/avr.md (movhi_sp_r): Handle -1 (unknown IRQ state)
16686 and 2 (8-bit SP) in operand 2.
16687 * config/avr/avr.c (avr_prologue_setup_frame): Adjust prologue
16688 setup to use movhi_sp_r instead of vanilla move to write SP.
16689 Adjust REG_CFA notes to superseed unspec.
16690 (expand_epilogue): Adjust epilogue setup to use movhi_sp_r instead
16691 of vanilla move.
16692 As function body might contain CLI or SEI: Use irq_state 0 (IRQ
16693 known to be off) only with TARGET_NO_INTERRUPTS. Never use
16694 irq_state 1 (IRQ known to be on) here.
16695
2805e6c0
BS
166962012-02-21 Bernd Schmidt <bernds@codesourcery.com>
16697
16698 * ira.c (check_allocation): Use REG_WORDS_BIG_ENDIAN, not
16699 WORDS_BIG_ENDIAN.
16700 * ira-color.c (setup_profitable_hard_regs, check_hard_reg_p,
16701 assign_hard_reg): Likewise.
16702
167032012-02-21 Georg-Johann Lay <avr@gjlay.de>
1890e136
GJL
16704
16705 * config/avr/avr.md (neghi2): Remove "!d,0" alternative. Tweak "r,0".
16706
2805e6c0 167072012-02-21 Georg-Johann Lay <avr@gjlay.de>
4998825d
GJL
16708
16709 * config/avr/avr.md
16710 (*dec-and-branchhi!=-1.d.clobber): New text peephole.
16711 (*dec-and-branchhi!=-1.l.clobber): New text peephole.
16712
2805e6c0 167132012-02-21 Georg-Johann Lay <avr@gjlay.de>
0545950b
GJL
16714
16715 * config/avr/avr-protos.h (avr_accumulate_outgoing_args): Move
16716 prototype from here to...
16717 * config/avr/avr.h: ...here.
16718
23d2a817
RE
167192012-02-21 Richard Earnshaw <rearnsha@arm.com>
16720
16721 PR target/52294
2805e6c0 16722 * thumb2.md (thumb2_shiftsi3_short): Split register and
23d2a817
RE
16723 immediate shifts. For register shifts tie operands 0 and 1.
16724 (peephole2 for above): Check that register-controlled shifts
16725 have suitably tied operands.
16726
602c3369
QN
167272012-02-21 Quentin Neill <quentin.neill@amd.com>
16728
16729 PR target/52137
16730 * config/i386/bdver1.md (bdver1_call, bdver1_push,
16731 bdver1_pop, bdver1_leave, bdver1_lea, bdver1_imul_DI, bdver1_imul,
16732 bdver1_imul_mem_DI, bdver1_imul_mem, bdver1_idiv, bdver1_idiv_mem,
16733 bdver1_str, bdver1_idirect, bdver1_ivector, bdver1_idirect_loadmov,
16734 bdver1_idirect_load, bdver1_ivector_load, bdver1_idirect_movstore,
16735 bdver1_idirect_both, bdver1_ivector_both, bdver1_idirect_store,
16736 bdver1_ivector_store, bdver1_fldxf, bdver1_fld, bdver1_fstxf,
16737 bdver1_fst, bdver1_fist, bdver1_fmov_bdver1, bdver1_fadd_load,
16738 bdver1_fadd, bdver1_fmul_load, bdver1_fmul, bdver1_fsgn,
16739 bdver1_fdiv_load, bdver1_fdiv, bdver1_fpspc_load, bdver1_fpspc,
16740 bdver1_fcmov_load, bdver1_fcmov, bdver1_fcomi_load,
16741 bdver1_fcomi, bdver1_fcom_load, bdver1_fcom,
16742 bdver1_fxch, bdver1_ssevector_avx128_unaligned_load,
16743 bdver1_ssevector_avx256_unaligned_load,
16744 bdver1_ssevector_sse128_unaligned_load,
16745 bdver1_ssevector_avx128_load, bdver1_ssevector_avx256_load,
16746 bdver1_ssevector_sse128_load, bdver1_ssescalar_movq_load,
16747 bdver1_ssescalar_vmovss_load, bdver1_ssescalar_sse128_load,
16748 bdver1_mmxsse_load, bdver1_sse_store_avx256, bdver1_sse_store,
16749 bdver1_mmxsse_store_short, bdver1_ssevector_avx256,
16750 bdver1_movss_movsd, bdver1_mmxssemov, bdver1_sselog_load_256,
16751 bdver1_sselog_256, bdver1_sselog_load, bdver1_sselog,
16752 bdver1_ssecmp_load, bdver1_ssecmp, bdver1_ssecomi_load,
16753 bdver1_ssecomi, bdver1_vcvtX2Y_avx256_load, bdver1_vcvtX2Y_avx256,
16754 bdver1_ssecvt_cvtss2sd_load, bdver1_ssecvt_cvtss2sd,
16755 bdver1_sseicvt_cvtsi2sd_load, bdver1_sseicvt_cvtsi2sd,
16756 bdver1_ssecvt_cvtpd2ps_load, bdver1_ssecvt_cvtpd2ps,
16757 bdver1_ssecvt_cvtdq2ps_load, bdver1_ssecvt_cvtdq2ps,
16758 bdver1_ssecvt_cvtdq2pd_load, bdver1_ssecvt_cvtdq2pd,
16759 bdver1_ssecvt_cvtps2pd_load, bdver1_ssecvt_cvtps2pd,
16760 bdver1_ssecvt_cvtsX2si_load, bdver1_ssecvt_cvtsX2si,
16761 bdver1_ssecvt_cvtpd2pi_load, bdver1_ssecvt_cvtpd2pi,
16762 bdver1_ssecvt_cvtpd2dq_load, bdver1_ssecvt_cvtpd2dq,
16763 bdver1_ssecvt_cvtps2pi_load, bdver1_ssecvt_cvtps2pi,
16764 bdver1_ssemuladd_load_256, bdver1_ssemuladd_256,
16765 bdver1_ssemuladd_load, bdver1_ssemuladd, bdver1_sseimul_load,
16766 bdver1_sseimul, bdver1_sseiadd_load, bdver1_sseiadd,
16767 bdver1_ssediv_double_load_256, bdver1_ssediv_double_256,
16768 bdver1_ssediv_single_load_256, bdver1_ssediv_single_256,
16769 bdver1_ssediv_double_load, bdver1_ssediv_double,
16770 bdver1_ssediv_single_load, bdver1_ssediv_single, bdver1_sseins):
16771 Add "bdver2" attribute.
16772
61369bb8
AK
167732012-02-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16774
16775 * config/s390/s390.c (s390_option_override): Make -mhard-dfp the
16776 default if possible and not specified otherwise.
16777
0c2ad203
RG
167782012-02-21 Richard Guenther <rguenther@suse.de>
16779
16780 PR middle-end/52314
16781 * gimplify.c (create_tmp_from_val): Use the main variant type
16782 for the type of the temporary we create.
16783
01718e96
RG
167842012-02-21 Richard Guenther <rguenther@suse.de>
16785
16786 PR tree-optimization/52324
16787 * gimplify.c (gimplify_expr): When re-gimplifying expressions
16788 do not gimplify a MEM_REF address operand if it is already
16789 in suitable form.
16790
8540e6e8
AK
167912012-02-21 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
16792
16793 * config/s390/s390.md ("fixuns_trunc<mode>si2"): Replace
16794 TARGET_HARD_FLOAT with TARGET_HARD_DFP.
16795
d1e4b493
RG
167962012-02-21 Richard Guenther <rguenther@suse.de>
16797
16798 * tree-vect-stmts.c (vectorizable_load): Use pre-computed
16799 nested_in_vect_loop.
16800
949e47e5
JJ
168012012-02-21 Jakub Jelinek <jakub@redhat.com>
16802
16803 PR tree-optimization/52318
16804 * gimple-fold.c (gimplify_and_update_call_from_tree): Add
16805 vdef also to non-pure/const call stmts in the sequence.
16806
a2ddaaf5
TG
168072012-02-21 Tristan Gingold <gingold@adacore.com>
16808
16809 * config/vms/vms-ld.c (main): Fix IDENTIFICATION padding.
16810
3ed27cf5
DM
168112012-02-20 David S. Miller <davem@davemloft.net>
16812
16813 * config/sparc/sparc.md (load_pcrel_sym<P:mode>): Explain why we
16814 don't use the "rd %pc" instruction on v9 for PIC register loads.
16815
a4d031c7
AH
168162012-02-20 Aldy Hernandez <aldyh@redhat.com>
16817
16818 PR middle-end/52141
16819 * trans-mem.c (ipa_tm_scan_irr_block): Error out on GIMPLE_ASM's
16820 in a transaction safe function.
16821
9954e17f
KT
168222012-02-20 Kai Tietz <ktietz@redhat.com>
16823
16824 PR target/52238
16825 * stor-layout.c (place_field): Handle desired_align for
16826 ms-bitfields, too.
16827
a7ce6ec3
RG
168282012-02-20 Richard Guenther <rguenther@suse.de>
16829
16830 PR tree-optimization/52298
16831 * tree-vect-stmts.c (vectorizable_store): Properly use
16832 STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing
16833 outer loops.
16834 (vectorizable_load): Likewise.
16835 * tree-vect-data-refs.c (vect_analyze_data_ref_access):
16836 Access DR_STEP after ensuring it is not NULL.
16837
5a226e0a
JJ
168382012-02-20 Jakub Jelinek <jakub@redhat.com>
16839
16840 PR tree-optimization/52286
16841 * fold-const.c (fold_binary_loc): For (X & C1) | C2
16842 optimization use double_int_to_tree instead of build_int_cst_wide,
16843 rewrite to use double_int vars.
16844
e992fc2e
RO
168452012-02-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16846
16847 PR target/50166
16848 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Require gcc_SUN_LD_VERSION.
16849 Define _start.
16850 Remove -e 0 from $gcc_cv_ld invocation.
16851 Only use __GLIBC_PREREQ if defined.
16852 Enable on Solaris since Solaris 8 patch.
16853 (gcc_SUN_LD_VERSION): New macro.
16854 * configure.ac (ld_ver) <*-*-solaris2*>: Refer to
16855 gcc_SUN_LD_VERSION for version number format.
16856 * configure: Regenerate.
16857 * varasm.c (get_elf_initfini_array_priority_section): Set
16858 SECTION_NOTYPE for non-default priority.
16859 Use get_section instead of get_unnamed_section to emit
16860 .init_array/.fini_array with default priority.
16861
78c27266
RS
168622012-02-19 Richard Sandiford <rdsandiford@googlemail.com>
16863
16864 * config/mips/mips.c (mips_need_mips16_rdhwr_p): New variable.
16865 (mips_get_tp): Set it. Record that __mips16_rdhwr binds locally.
16866 (mips_start_unique_function, mips_output_mips16_rdhwr)
16867 (mips_code_end): New functions.
16868 (TARGET_ASM_CODE_END): Define.
16869
5adeb246
RS
168702012-02-19 Richard Sandiford <rdsandiford@googlemail.com>
16871
16872 * config/mips/mips.c (mips16_build_call_stub): Add CFI information
16873 to stubs with non-sibling calls.
16874
e1813255
SL
168752012-02-18 Sandra Loosemore <sandra@codesourcery.com>
16876
16877 * doc/invoke.texi (-fira-* options): Copy-edit.
16878 (ira-* parameters): Copy-edit.
16879
141a25c2
SL
168802012-02-17 Sandra Loosemore <sandra@codesourcery.com>
16881
16882 * doc/invoke.texi: Minor copy-edits to bring into conformance with
16883 GCC coding conventions.
16884
195a2e9d
SL
168852012-02-17 Sandra Loosemore <sandra@codesourcery.com>
16886
16887 * doc/invoke.texi: Consistently hyphenate "big-endian"/"little-endian"
16888 when used as adjectives.
16889
1b015db7
SL
168902012-02-16 Sandra Loosemore <sandra@codesourcery.com>
16891
16892 * doc/invoke.texi: Clean up "that"/"which" confusion.
16893
7feed462
SB
168942012-02-17 Steven Bosscher <steven@gcc.gnu.org>
16895
16896 * system.h: Poison SMALL_REGISTER_CLASSES
16897 * config/rl78/rl78.h: Replace SMALL_REGISTER_CLASSES with hook.
16898 * config/rx/rx.h: Remove SMALL_REGISTER_CLASSES.
16899
ca786352
JJ
169002012-02-16 Jakub Jelinek <jakub@redhat.com>
16901
16902 PR tree-optimization/52285
16903 * tree-tailcall.c (find_tail_calls): Ignore gimple_clobber_p stmts
16904 when deciding if a call is a tail call or tail recursion.
16905
525b3f60
KT
169062012-02-16 Kai Tietz <ktietz@redhat.com>
16907
16908 * config/i386/i386.c (legitimate_pic_address_disp_p): Allow
16909 interger-constant displacement for UNSPEC_PCREL.
16910
04c937f5
JJ
169112012-02-16 Jakub Jelinek <jakub@redhat.com>
16912
3db93c89
JJ
16913 PR rtl-optimization/52208
16914 * ira-costs.c (scan_one_insn): Don't decrease mem_cost
16915 for MEMs with REG_EQUIV, if the MEM isn't general_operand.
16916
e20f6b4b
JJ
16917 PR tree-optimization/52255
16918 * tree-vect-loop-manip.c (slpeel_tree_peel_loop_to_edge): If
16919 loop->header has virtual PHI, but exit_e->dest doesn't, add
16920 virtual PHI to exit_e->dest and adjust all uses after the loop.
16921
04c937f5
JJ
16922 PR debug/52260
16923 * dwarf2out.c (copy_decls_walk): Fill in *slot before traversing
16924 children with clone_tree_hash, not after it.
16925
cebb4698
IS
169262012-02-16 Iain Sandoe <iains@gcc.gnu.org>
16927
16928 * config/darwin.h (ASM_OUTPUT_LABELREF): Add user label prefix for
16929 extended identifiers.
16930
cc8b9c31
JJ
169312012-02-16 Jakub Jelinek <jakub@redhat.com>
16932
183d6db2
JJ
16933 PR middle-end/51929
16934 * cgraphunit.c (verify_edge_corresponds_to_fndecl): If node is
16935 a same_body_alias, also test whether e->callee isn't a former
16936 or current clone of the decl this is a same body alias of.
16937
cc8b9c31
JJ
16938 PR translation/52264
16939 * cgraphunit.c (verify_cgraph_node): Fix a typo.
16940
e3a66c38
SL
169412012-02-15 Sandra Loosemore <sandra@codesourcery.com>
16942
16943 * doc/invoke.texi: Clean up "n-bit/byte/word" modifiers.
16944
a0367cc1
MM
169452012-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
16946
16947 PR target/52199
16948 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Use
16949 force_reg instead of copy_to_reg for better optimization. Force
16950 non-register or memory operands into a register.
16951
b1cef2a5
AM
169522012-02-15 Andrew MacLeod <amacleod@redhat.com>
16953
16954 * extend.texi: Reserve upper bits of memory model for future use.
16955
2da8c1ad
GJL
169562012-01-15 Georg-Johann Lay <avr@gjlay.de>
16957 Anatoly Sokolov <aesok@post.ru>
16958 Eric Weddington <eric.weddington@atmel.com>
16959
16960 PR target/52261
16961 * config/avr/avr-devices.c (avr_arch_types): Add avrxmega2,
16962 avrxmega4, avrxmega5, avrxmega6, avrxmega7.
16963 Rewrite initializers for .macro.
16964 * config/avr/avr-mcus.def (AVR_MCU): Add known MCUs:
16965 avrxmega2: atxmega16a4, atxmega16d4, atxmega16x1, atxmega32a4
16966 atxmega32d4, atxmega32x1.
16967 avrxmega4: atxmega64a3, atxmega64d3.
16968 avrxmega5: atxmega64a1, atxmega64a1u.
16969 avrxmega6: atxmega128a3, atxmega128d3, atxmega192a3, atxmega192d3,
16970 atxmega256a3, atxmega256a3b, atxmega256a3bu, atxmega256d3.
16971 avrxmega7: atxmega128a1, atxmega128a1u.
16972 * config/avr/avr.h (enum avr_arch): Add: ARCH_AVRXMEGA2,
16973 ARCH_AVRXMEGA4, ARCH_AVRXMEGA5, ARCH_AVRXMEGA6, ARCH_AVRXMEGA7.
16974 (struct base_arch_s): Rename reserved to xmega_p.
16975 Rename reserved2 to have_rampd.
16976 (AVR_XMEGA): New define.
16977 (AVR_HAVE_RAMPD, AVR_HAVE_RAMPX, AVR_HAVE_RAMPY): New defines.
16978 (AVR_HAVE_RAMPZ): Change definition to fit xmega.
16979 * config/avr/predicates.md (io_address_operand): Take into
16980 account SFR offset.
16981 (low_io_address_operand): Ditto.
16982 (high_io_address_operand): Ditto.
16983 * config/avr/avr.md (isa): Add alternatives no_xmega, xmega.
16984 (enabled, movhi_sp_r): Use them.
16985 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use
16986 cpp_define_formatted to built-in define __AVR_ARCH__.
16987 (__AVR_XMEGA__): New built-in define.
16988 (__AVR_HAVE_RAMPD__): New built-in define.
16989 (__AVR_HAVE_RAMPX__): New built-in define.
16990 (__AVR_HAVE_RAMPY__): New built-in define.
16991 (__AVR_HAVE_RAMPZ__): Change condition when to built-in define it.
16992
16993 * config/avr/avr.c (avr_addr_t): Add ccp, rampd, rampx, rampy.
16994 (avr_option_override): Initialize them.
16995 (sreg_rtx, rampd_rtx, rampx_rtx, rampy_rtx): New GTY rtx.
16996 (avr_init_expanders): Initialize them. No more block several calls.
16997 (emit_push_sfr): New static function.
16998 (avr_prologue_setup_frame): Use it to push SREG, RAMPD/X/Y/Z as needed.
16999 Handle AVR_XMEGA.
17000 (expand_epilogue): Handle AVR_XMEGA. Pop RAMPD/X/Y/Z as needed.
17001 (avr_print_operand): Print addreeses as symbols for
17002 RAMPX, RAMPY, RAMPD, CCP.
17003 (output_movhi): Handle AVR_XMEGA when writing to SP.
17004 (avr_out_movhi_mr_r_xmega): New static function.
17005 (out_movhi_mr_r): Forward to avr_out_movhi_mr_r_xmega for AVR_XMEGA.
17006 (avr_file_start): Print symbol defines for __RAMPX__, __RAMPY__,
17007 __RAMPD__, __CCP__ as needed.
17008
17009 * config/avr/multilib.h: Regenerate.
17010 * config/avr/t-multilib: Regenerate.
17011 * config/avr/avr-tables.opt: Regenerate.
17012
28db21ee
TG
170132012-02-15 Tobias Grosser <grosser@fim.uni-passau.de>
17014
17015 PR tree-optimization/50561
17016 * graphite-flattening.c (lst_project_loop): Do not
17017 remove old scattering dimensions after flattening.
17018 (lst_do_flatten): Likewise.
17019
0c578db6
GJL
170202012-02-15 Georg-Johann Lay <avr@gjlay.de>
17021
17022 * doc/extend.texi (AVR Built-in Functions): Remove doc for
17023 __builtin_avr_map8, __builtin_avr_map16.
17024 Document __builtin_avr_insert_bits.
17025
17026 * config/avr/avr.md (map_bitsqi, map_bitshi): Remove.
17027 (insert_bits): New insn.
17028 (adjust_len.map_bits): Rename to insert_bits.
17029 (UNSPEC_MAP_BITS): Rename to UNSPEC_INSERT_BITS.
17030 * avr-protos.h (avr_out_map_bits): Remove.
17031 (avr_out_insert_bits, avr_has_nibble_0xf): New.
17032 * config/avr/constraints.md (Cxf,C0f): New.
17033 * config/avr/avr.c (avr_cpu_cpp_builtins): Remove built-in
17034 defines __BUILTIN_AVR_MAP8, __BUILTIN_AVR_MAP16.
17035 New built-in define __BUILTIN_AVR_INSERT_BITS.
17036 * config/avr/avr.c (TARGET_FOLD_BUILTIN): New define.
17037 (enum avr_builtin_id): Add AVR_BUILTIN_INSERT_BITS.
17038 (avr_move_bits): Rewrite.
17039 (avr_fold_builtin, avr_map_metric, avr_map_decompose): New static
17040 functions.
17041 (avr_map_op_t): New typedef.
17042 (avr_map_op): New static variable.
17043 (avr_out_insert_bits, avr_has_nibble_0xf): New functions.
17044 (adjust_insn_length): Handle ADJUST_LEN_INSERT_BITS.
17045 (avr_init_builtins): Add definition for __builtin_avr_insert_bits.
17046 (bdesc_3arg, avr_expand_triop_builtin): New.
17047 (avr_expand_builtin): Use them. And handle AVR_BUILTIN_INSERT_BITS.
17048 (avr_revert_map, avr_swap_map, avr_id_map, avr_sig_map): Remove.
17049 (avr_map_hamming_byte, avr_map_hamming_nonstrict): Remove.
17050 (avr_map_equal_p, avr_map_sig_p): Remove.
17051 (avr_out_swap_bits, avr_out_revert_bits, avr_out_map_bits): Remove.
17052 (bdesc_2arg): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
17053 (adjust_insn_length): Remove handling for ADJUST_LEN_MAP_BITS.
17054 (enum avr_builtin_id): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
17055 (avr_init_builtins): Remove __builtin_avr_map8, __builtin_avr_map16.
17056 (avr_expand_builtin): Remove AVR_BUILTIN_MAP8, AVR_BUILTIN_MAP16.
17057
9e7fe10e
BS
170582012-02-14 Bernd Schmidt <bernds@codesourcery.com>
17059
17060 * config/c6x/c6x.md (reserve_cycles): New attribute.
17061 * config/c6x/c6x.c (c6x_sched_reorder_1): Ensure insns we predicate
17062 don't reserve functional units after the branch occurs.
17063
a7ff6e27
AH
170642012-02-14 Aldy Hernandez <aldyh@redhat.com>
17065
17066 PR middle-end/52142
17067 * ipa-inline.c (can_inline_edge_p): Do not inline tm_pure
17068 functions into non-tm_pure functions.
17069
aa47290b
EB
170702012-02-14 Eric Botcazou <ebotcazou@adacore.com>
17071
17072 PR lto/52178
17073 * gimple.c (iterative_hash_gimple_type): Use RECORD_OR_UNION_TYPE_P.
17074 (iterative_hash_canonical_type): Likewise.
17075 * tree-ssa-pre.c (fini_pre): Clean up the CFG only after purging all
17076 the dead edges.
17077
170782012-02-14 Bernd Schmidt <bernds@codesourcery.com>
b75f962c
BS
17079
17080 * haifa-sched.c (prune_ready_list): Ensure that if there is a
9517e333 17081 sched-group insn, it either remains alone or the entire list is pruned.
b75f962c 17082
169264b3
JW
170832012-02-14 Jonathan Wakely <jwakely.gcc@gmail.com>
17084
17085 * doc/install.texi (Prerequisites): Fix grammar.
17086 (Configuration): Likewise.
17087
7a07ae52
JW
170882012-02-14 Jonathan Wakely <jwakely.gcc@gmail.com>
17089
17090 * doc/install.texi (Prerequisites): Suggest building GMP, MPFR and
17091 MPC as part of GCC before describing configuring with --with-gmp etc.
17092 (Installing GCC: Configuration): --with-gmp etc. aren't needed if
17093 sources are present.
17094
a85ce59d
JJ
170952012-02-14 Jakub Jelinek <jakub@redhat.com>
17096
17097 PR debug/51950
17098 * dwarf2out.c (clone_tree_hash): New function.
17099 (copy_decls_walk): Use it instead of clone_tree.
17100
8085c586
RG
171012012-02-14 Richard Guenther <rguenther@suse.de>
17102
17103 PR tree-optimization/52244
17104 PR tree-optimization/51528
17105 * tree-sra.c (analyze_access_subtree): Only create INTEGER_TYPE
17106 replacements for integral types.
17107
dd552284
WL
171082012-02-14 Walter Lee <walt@tilera.com>
17109
17110 * config.gcc: Handle tilegx and tilepro.
17111 * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
17112 tilegx and tilepro.
17113 Add HAVE_AS_TLS check for tilegx and tilepro.
17114 * configure: Regenerate.
17115 * doc/contrib.texi: Add Mat Hostetter and self.
17116 * doc/extend.texi (TILE-Gx Built-in Functions): New node.
17117 Document instruction intrinsics and network accessing intrinsics.
17118 (TILEPro Built-in Functions): New node. Document instruction
17119 intrinsics and network accessing intrinsics.
17120 * doc/install.texi (Specific, tilegx-*-linux*): Document it.
17121 (Specific, tilepro-*-linux*): Likewise.
17122 * doc/invoke.texi (TILE-Gx Options): New section.
17123 (TILEPro Options): New section.
17124 * doc/md.texi (TILE-Gx): New section.
17125 (TILEPro): New section.
17126 * common/config/tilegx/tilegx-common.c: New file.
17127 * common/config/tilepro/tilepro-common.c: New file.
17128 * config/tilegx/constraints.md: New file.
17129 * config/tilegx/linux.h: New file.
17130 * config/tilegx/mul-tables.c: New file.
17131 * config/tilegx/predicates.md: New file.
17132 * config/tilegx/sync.md: New file.
17133 * config/tilegx/t-tilegx: New file.
17134 * config/tilegx/tilegx-builtins.h: New file.
17135 * config/tilegx/tilegx-c.c: New file.
17136 * config/tilegx/tilegx-generic.md: New file.
17137 * config/tilegx/tilegx-modes.def: New file.
17138 * config/tilegx/tilegx-multiply.h: New file.
17139 * config/tilegx/tilegx-protos.h: New file.
17140 * config/tilegx/tilegx.c: New file.
17141 * config/tilegx/tilegx.h: New file.
17142 * config/tilegx/tilegx.md: New file.
17143 * config/tilegx/tilegx.opt: New file.
17144 * config/tilepro/constraints.md: New file.
17145 * config/tilepro/gen-mul-tables.cc: New file.
17146 * config/tilepro/linux.h: New file.
17147 * config/tilepro/mul-tables.c: New file.
17148 * config/tilepro/predicates.md: New file.
17149 * config/tilepro/t-tilepro: New file.
17150 * config/tilepro/tilepro-builtins.h: New file.
17151 * config/tilepro/tilepro-c.c: New file.
17152 * config/tilepro/tilepro-generic.md: New file.
17153 * config/tilepro/tilepro-modes.def: New file.
17154 * config/tilepro/tilepro-multiply.h: New file.
17155 * config/tilepro/tilepro-protos.h: New file.
17156 * config/tilepro/tilepro.c: New file.
17157 * config/tilepro/tilepro.h: New file.
17158 * config/tilepro/tilepro.md: New file.
17159 * config/tilepro/tilepro.opt: New file.
17160
7daac345
JJ
171612012-02-14 Jakub Jelinek <jakub@redhat.com>
17162
17163 PR tree-optimization/52210
17164 * tree-vect-slp.c (vect_get_and_check_slp_defs): Call
17165 vect_model_simple_cost with two entry vect_def_type array instead
17166 of an address of dt.
17167
837487be
RG
171682012-02-14 Richard Guenther <rguenther@suse.de>
17169
17170 PR lto/52178
17171 * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers):
17172 Do not stream DECL_QUALIFIER.
17173 * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise.
17174 * tree.c (free_lang_data_in_decl): Free DECL_QUALIFIER.
17175 (find_decls_types_r): Do not walk DECL_QUALIFIER.
17176
45f41865
JJ
171772012-02-14 Jakub Jelinek <jakub@redhat.com>
17178
17179 PR c/52181
17180 * c-decl.c (merge_decls): Copy DECL_USER_ALIGN bit from olddecl to
17181 newdecl.
17182
9a76e83d
JJ
171832012-02-13 Jakub Jelinek <jakub@redhat.com>
17184
17185 PR bootstrap/52172
17186 * cselib.h (cselib_subst_to_values_from_insn): New prototype.
17187 * cselib.c (cselib_subst_to_values_from_insn): New function.
17188 * sched-deps.c (add_insn_mem_dependence,
17189 sched_analyze_1, sched_analyze_2): Use it.
17190
993716bd
JH
171912012-02-13 Jan Hubicka <jh@suse.cz>
17192
17193 PR middle-end/52214
17194 * predict.c (predict_paths_for_bb): Fix thinko in prevoius patch.
17195
255a9a1b
EB
171962012-02-13 Eric Botcazou <ebotcazou@adacore.com>
17197
17198 * gcc.c (LINK_COMMAND_SPEC): Deal with -fgnu-tm.
17199 (GTM_SELF_SPECS): Define if not already defined.
17200 (driver_self_specs): Add GTM_SELF_SPECS.
9517e333
UB
17201 * config/darwin.h (LINK_COMMAND_SPEC_A): Deal with -fgnu-tm.
17202 (GTM_SELF_SPECS): Define.
255a9a1b
EB
17203 * config/i386/cygwin.h (GTM_SELF_SPECS): Likewise.
17204 * config/i386/mingw32.h (GTM_SELF_SPECS): Likewise.
17205
9abd5ed9
JJ
172062012-02-13 Jakub Jelinek <jakub@redhat.com>
17207
67b977ad
JJ
17208 * cselib.c (expand_loc): Return sp, fp, hfp or cfa base reg right
17209 away if seen.
17210
9517e333 17211 * cselib.c (dump_cselib_val): Don't assume l->setting_insn is non-NULL.
42286976 17212
9abd5ed9 17213 PR middle-end/52230
9517e333
UB
17214 * omp-low.c (expand_omp_for): If a static schedule without chunk size
17215 has NULL region->cont, force fd.chunk_size to be integer_zero_node.
9abd5ed9 17216
8ca1b342
AM
172172012-02-13 Andrew MacLeod <amacleod@redhat.com>
17218
17219 PR c/52190
17220 * doc/extend.texi : Fix another __atomic_compare_exchange typo.
17221
1eb3478f
RG
172222012-02-13 Richard Guenther <rguenther@suse.de>
17223
17224 PR translation/52211
17225 * passes.c (enable_disable_pass): Fix typo.
17226
205ec405
JJ
172272012-02-13 Jakub Jelinek <jakub@redhat.com>
17228
17229 PR middle-end/52209
17230 * expr.c (expand_expr_real_2) <case BIT_NOT_EXPR>: Only expand using
17231 XOR for reduce_bit_field if type is unsigned.
17232
31d7b439
EB
172332012-02-12 Eric Botcazou <ebotcazou@adacore.com>
17234
17235 * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): In 64-bit mode,
17236 disallow changes from SFmode to mode with different size in FP regs.
17237
172382012-02-12 Robert Millan <rmh@gnu.org>
9517e333 17239 Gerald Pfeifer <gerald@pfeifer.com>
56c534c5
RM
17240
17241 * ginclude/stddef.h [__FreeBSD_kernel__] (__size_t): Do not define.
17242 Tweak comment.
17243
4cb0fdbc
RS
172442012-02-11 Richard Sandiford <rdsandiford@googlemail.com>
17245
17246 PR rtl-optimization/52175
17247 * reorg.c (fill_slots_from_thread): Don't apply add/sub optimization
17248 to frame-related instructions.
17249
4e92c31f
JM
172502012-02-10 Jason Merrill <jason@redhat.com>
17251
17252 PR c++/51910
17253 * tlink.c (demangled_hash_entry): Change mangled to a VEC.
17254 (demangle_new_symbols): Fill it.
17255 (scan_linker_output): Walk it.
17256 (start_tweaking): Split out from scan_linker_output.
17257 (maybe_tweak): Update sym->chosen.
17258 * Makefile.in (COLLECT2_OBJS): Add vec.o and gcc-none.o
17259
bd0ba05d
JJ
172602012-02-11 Jakub Jelinek <jakub@redhat.com>
17261
17262 PR debug/52132
9517e333 17263 * reg-stack.c (subst_stack_regs_in_debug_insn): Don't use get_true_reg.
bd0ba05d 17264
28f7ff45
UB
172652012-02-11 Uros Bizjak <ubizjak@gmail.com>
17266
17267 * compare-elim.c (find_comparisons_in_bb): Eliminate only compares
17268 having the same mode as previous compare.
17269
8c92f3e8
EB
172702012-02-10 Eric Botcazou <ebotcazou@adacore.com>
17271
17272 * config/sparc/sparc.c (sparc_flat_expand_prologue): Use emit_use.
17273 * config/sparc/sparc.md (UNSPECV_GOTO): Delete.
17274 (nonlocal_goto_internal): Likewise.
17275 (nonlocal_goto): Emit a use and an indirect jump directly.
17276
9ac1504b
AM
172772012-02-10 Andrew MacLeod <amacleod@redhat.com>
17278
17279 PR c/52190
17280 * doc/extend.texi : Update comments for __atomic_compare_exchange and
17281 __atomic_{is,always}_lock_free.
17282
877fb450
L
172832012-02-10 Uros Bizjak <ubizjak@gmail.com>
17284
17285 PR target/52146
17286 * config/i386/i386.c (ix86_legitimate_address_p): Disallow
1ce8d925 17287 negative constant address for TARGET_X32.
877fb450 17288
1d4fb493
RH
172892012-02-10 Richard Henderson <rth@redhat.com>
17290
28f7ff45
UB
17291 * tree-ssa-dce.c (propagate_necessity): Handle GIMPLE_TRANSACTION.
17292 * tree-ssa-operands.c (parse_ssa_operands): Add virtual operands
17293 for GIMPLE_TRANSACTION. Tidy if's into a switch.
1d4fb493 17294
8bd37302
BS
172952012-02-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17296 Ira Rosen <irar@il.ibm.com>
17297
17298 PR tree-optimization/50031
17299 * targhooks.c (default_builtin_vectorization_cost): Handle
17300 vec_promote_demote.
17301 * target.h (enum vect_cost_for_stmt): Add vec_promote_demote.
17302 * tree-vect-loop.c (vect_get_single_scalar_iteraion_cost): Handle
17303 all types of reduction and pattern statements.
17304 (vect_estimate_min_profitable_iters): Likewise.
17305 * tree-vect-stmts.c (vect_model_promotion_demotion_cost): New function.
17306 (vect_get_load_cost): Use vec_perm for permutations; add dump logic
17307 for explicit realigns.
17308 (vectorizable_conversion): Call vect_model_promotion_demotion_cost.
17309 * config/spu/spu.c (spu_builtin_vectorization_cost): Handle
17310 vec_promote_demote.
17311 * config/i386/i386.c (ix86_builtin_vectorization_cost): Likewise.
17312 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Update
17313 vec_perm for VSX and handle vec_promote_demote.
17314
58d38fd2
JJ
173152012-02-10 Jakub Jelinek <jakub@redhat.com>
17316
17317 PR middle-end/52177
17318 * builtins.c (fold_builtin_atomic_always_lock_free,
17319 expand_builtin_atomic_always_lock_free,
28f7ff45
UB
17320 fold_builtin_atomic_is_lock_free, expand_builtin_atomic_is_lock_free):
17321 Return and/or test boolean_true_node/boolean_false_node instead of
58d38fd2
JJ
17322 integer_one_node/integer_zero_node.
17323
0f3b7e9a
JH
173242012-02-10 Jan Hubicka <jh@suse.cz>
17325
17326 PR middle-end/48600
17327 * predict.c (predict_paths_for_bb): Prevent looping.
17328 (predict_paths_leading_to_edge, predict_paths_leading_to): Update.
17329
76c9058b
RZ
173302012-02-10 Roman Zhuykov <zhroma@ispras.ru>
17331
17332 * config/arm/arm.c (output_move_double): In one case properly
17333 count number of instructions that will be emitted.
17334
7cbf224d
RG
173352012-02-10 Richard Guenther <rguenther@suse.de>
17336
17337 PR translation/52193
17338 * cgraphunit.c (cgraph_mark_functions_to_output): Fix typo.
17339
16e0be9b
PB
173402012-02-09 Peter Bergner <bergner@vnet.ibm.com>
17341
17342 PR middle-end/52140
17343 * dojump.c (do_compare_rtx_and_jump): Use SCALAR_FLOAT_MODE_P.
17344
65cca5de
JJ
173452012-02-09 Jakub Jelinek <jakub@redhat.com>
17346
17347 PR debug/52165
17348 * var-tracking.c (emit_note_insn_var_location): If
17349 EMIT_NOTE_BEFORE_INSN and insn is NOTE_INSN_CALL_ARG_LOCATION,
17350 emit it before next non-NOTE_INSN_CALL_ARG_LOCATION
17351 non-NOTE_DURING_CALL_P insn.
17352
15ed19ff
BC
173532012-02-09 Bin Cheng <bin.cheng@arm.com>
17354
17355 PR middle-end/51867
17356 * builtins.c (expand_builtin): Don't check DECL_ASSEMBLER_NAME_SET_P.
17357
5371f719
MG
173582012-02-08 Magnus Granberg <zorry@gentoo.org>
17359
17360 PR driver/48524
28f7ff45
UB
17361 * gcc.c (switch_matches) Support switches with separated form,
17362 -D and -U.
5371f719 17363
82b37806
GJL
173642012-02-08 Georg-Johann Lay <avr@gjlay.de>
17365
17366 * config/avr/avr.md (SREG_ADDR): Remove constant definition.
17367 (SP_ADDR): Ditto.
17368 (RAMPZ_ADDR): Ditto.
17369 * config/avr/avr.c (avr_addr_t): New typedef.
17370 (avr_addr): New struct to hold RAM address of SPL, SPH, RAMPZ, SREG.
17371 (avr_init_expanders): Initialize it.
17372 (expand_prologue): Use avr_addr instead of RAMPZ_ADDR, SP_ADDR,
17373 SREG_ADDR.
17374 (expand_epilogue): Ditto.
17375 (avr_print_operand): Ditto.
17376 (avr_file_start): Ditto.
17377 (avr_emit_movmemhi): Ditto.
17378
31432e21
RG
173792012-02-08 Richard Guenther <rguenther@suse.de>
17380
17381 PR tree-optimization/46886
17382 * tree-flow.h (do_while_loop_p): Declare.
17383 * tree-ssa-loop-ch.c (do_while_loop_p): Export.
28f7ff45 17384 * tree-parloops.c (parallelize_loops): Only parallelize do-while loops.
31432e21 17385
c51ec0a3
AM
173862012-02-08 Andrew MacLeod <amacleod@redhat.com>
17387
17388 * optabs.c (expand_atomic_load): Do not assume compare_and_swap will
17389 always succeed for integers larger than a native word.
17390
ea72cc1d
RG
173912012-02-08 Richard Guenther <rguenther@suse.de>
17392
17393 PR rtl-optimization/52170
17394 * simplify-rtx.c (simplify_plus_minus): Use CONSTM1_RTX to
17395 properly handle integer vector modes.
17396
bd73623c
JJ
173972012-02-08 Jakub Jelinek <jakub@redhat.com>
17398
9e66e106
JJ
17399 PR gcov-profile/52150
17400 * coverage.c: Include target.h.
17401 (build_var): Call targetm.strip_name_encoding on the assembler name.
17402 Change one _ into . or $ if the target allows it.
17403 * Makefile.in (coverage.o): Depend on $(TARGET_H).
17404
bd73623c
JJ
17405 PR rtl-optimization/52139
17406 * cfgrtl.c (cfg_layout_merge_blocks): If BB_END
17407 is a BARRIER after emit_insn_after_noloc, move BB_END
17408 to the last non-BARRIER insn before it.
17409
4566de10
RS
174102012-02-07 Richard Sandiford <rdsandiford@googlemail.com>
17411
17412 PR middle-end/24306
17413 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): New function.
17414 (mips_gimplify_va_arg_expr): Call it instead of
17415 std_gimplify_va_arg_expr.
17416
7cb5ce1a
MM
174172012-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
17418
17419 * config/rs6000/rs6000.c (rs6000_trampoline_init): Fix error
17420 message for -mno-pointers-to-nested-function.
17421
f22cfd73
EB
174222012-02-07 Eric Botcazou <ebotcazou@adacore.com>
17423
17424 PR middle-end/51994
17425 * expr.c (get_inner_reference): If there is an offset, add a negative
17426 bit position to it (if any).
17427
13a72c0b
JJ
174282012-02-07 Jakub Jelinek <jakub@redhat.com>
17429
17430 PR rtl-optimization/52060
17431 * combine.c (try_combine): Add i0src_copy and i0src_copy2 variables,
17432 copy i1src to i1src_copy whenever added_sets_2 && i1_feeds_i2_n already
17433 before i1dest -> i1src substitution in newpat, copy i0src to i0src_copy
17434 and/or i0src_copy2 when needed.
17435
deb3f362
JJ
174362012-02-07 Jakub Jelinek <jakub@redhat.com>
17437
117cb2bc
JJ
17438 * gcc.c (main): Don't look for lto-wrapper or lto-wrapper
17439 or LTOPLUGINSONAME if have_c.
17440
deb3f362
JJ
17441 * config/freebsd-spec.h: Add comment about what macros can be defined
17442 in this header.
17443 (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): Don't define here.
17444 * config/freebsd.h (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): But
17445 here instead.
17446
b1edf2bc
RG
174472012-02-07 Richard Guenther <rguenther@suse.de>
17448
17449 * gimple-pretty-print.c (dump_gimple_phi): Avoid excessive
17450 newline in -alias dumps.
17451
26cfb9ab 174522012-02-07 Kai Tietz <ktietz@redhat.com>
28f7ff45 17453 Dave Korn <dave.korn.cygwin@gmail.com>
26cfb9ab
KT
17454
17455 PR target/40068
17456 * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition):
17457 Take care that typinfo gets dllexport-attribute.
17458
b1b95093
JJ
174592012-02-07 Jakub Jelinek <jakub@redhat.com>
17460
17461 PR middle-end/52074
17462 * expr.c (expand_expr_addr_expr_1): For CONSTANT_CLASS_P or CONST_DECL
17463 if modifier < EXPAND_SUM call force_operand on the result.
17464
60098013
JR
174652012-02-07 Joern Rennecke <joern.rennecke@embecosm.com>
17466
17467 * config/epiphany/epiphany.h (ASM_DECLARE_FUNCTION_SIZE): Redefine,
17468 adding __forwarder_dst__ prefix if a forwarder_section attribute is
17469 present.
17470 (epiphany_function_type): Replace types for specific interrupts with
17471 EPIPHANY_FUNCTION_INTERRUPT.
17472 (EPIPHANY_INTERRUPT_P): Update.
17473 * config/epiphany/epiphany.c (epiphany_handle_forwarder_attribute):
17474 New static function.
17475 (epiphany_attribute_table) <interrupt>: min_len is 0, max_len is 9.
17476 <disinterrupt>: Affects type identity.
17477 (epiphany_handle_interrupt_attribute): Handle variable number of
17478 arguments.
17479 (epiphany_compute_function_type): Update for new
17480 epiphany_function_type definition.
17481 (epiphany_expand_prologue): Don't save (reg:DI GPR_0) for interrupt
17482 handlers with a longcall forwarder.
17483 (epiphany_start_function): Handle multiple interrupt arguments and/or
17484 forwarder_section attribute.
17485
28f7ff45
UB
17486 * config/epiphany/epiphany.h (LIB_SPEC): Link libc again after
17487 libgloss.
be648db7 17488
30f0eb2d
AM
174892012-02-07 Alan Modra <amodra@gmail.com>
17490
17491 PR target/52107
17492 * config/rs6000/rs6000.c (rs6000_emit_move): Don't create DImode
17493 subregs of TFmode.
17494
c5f14d62
BS
174952012-02-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
17496
17497 PR tree-optimization/50969
17498 * tree-vect-stmts.c (vect_model_store_cost): Correct statement cost to
17499 use vec_perm rather than vector_stmt.
17500 (vect_model_load_cost): Likewise.
17501 * config/i386/i386.c (ix86_builtin_vectorization_cost): Change cost of
17502 vec_perm to be the same as other vector statements.
17503 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Revise
17504 cost of vec_perm for TARGET_VSX.
17505
973a39ae
RG
175062012-02-06 Richard Guenther <rguenther@suse.de>
17507
17508 PR tree-optimization/52115
17509 * tree-sra.c (access_has_replacements_p): New function.
17510 (sra_modify_assign): Use it to decide whether a use is uninitialized.
17511
fe924d9f
PM
175122012-02-06 Patrick Marlier <patrick.marlier@gmail.com>
17513
17514 PR middle-end/52047
17515 * trans-mem.c (expand_call_tm): Add an assertion.
17516 * calls.c (flags_from_decl_or_type): Add ECF_TM_PURE to 'no vops'
17517 functions.
17518
1d30a09a
RG
175192012-02-06 Richard Guenther <rguenther@suse.de>
17520
17521 PR tree-optimization/50955
17522 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Artificially
17523 raise cost of expressions that replace an address with an
17524 expression based on a different pointer.
17525
2c8b5d61
JJ
175262012-02-06 Jakub Jelinek <jakub@redhat.com>
17527
17528 PR target/52129
17529 * calls.c (mem_overlaps_already_clobbered_arg_p): If val is
17530 CONST_INT_P, subtract resp. add crtl->args.pretend_args_size to it.
17531
9039ea91
JW
175322012-02-06 Jonathan Wakely <jwakely.gcc@gmail.com>
17533
17534 PR c++/48680
17535 * doc/invoke.texi (C++ Dialect Options): Use @option markup for
17536 -Weffc++ and specify guidelines come from second edition.
17537
7ca9ea76
RS
175382012-02-05 Richard Sandiford <rdsandiford@googlemail.com>
17539
17540 * config/mips/mips.md (sibcall_internal, sibcall_value_internal)
17541 (sibcall_value_multiple_internal, call_split, call_internal_direct)
17542 (call_direct_split, call_value_split, call_value_internal_direct)
17543 (call_value_direct_split, call_value_multiple_split): Use jal and
17544 jal_macro attributes.
17545
7bd8c53f
RS
175462012-02-05 Richard Sandiford <rdsandiford@googlemail.com>
17547
17548 * reload1.c (reload_regs_reach_end_p): Replace with...
17549 (reload_reg_rtx_reaches_end_p): ...this function.
17550 (new_spill_reg_store): Update commentary.
17551 (emit_input_reload_insns): Don't clear new_spill_reg_store here.
17552 (emit_output_reload_insns): Check reload_reg_rtx_reaches_end_p
17553 before setting new_spill_reg_store.
17554 (emit_reload_insns): Use a separate loop to clear new_spill_reg_store.
17555 Use reload_reg_rtx_reaches_end_p instead of reload_regs_reach_end_p.
17556 Also use reload_reg_rtx_reaches_end_p when reading new_spill_reg_store
17557 for non-spill reload registers.
17558
24ee1384
IR
175592012-02-05 Ira Rosen <irar@il.ibm.com>
17560
17561 PR tree-optimization/52091
17562 * tree-vectorizer.h (vect_is_simple_use): Add an argument.
17563 (vect_is_simple_use_1): Likewise.
17564 * tree-vect-loop.c (vectorizable_reduction): Update calls
17565 to vect_is_simple_use_1 and vect_is_simple_use.
17566 (vectorizable_live_operation): Likewise.
17567 * tree-vect-patterns.c (widened_name_p,
28f7ff45 17568 vect_recog_vector_vector_shift_pattern, check_bool_pattern): Likewise.
24ee1384 17569 * tree-vect-stmts.c (process_use, vect_get_vec_def_for_operand,
28f7ff45
UB
17570 vectorizable_call, vectorizable_conversion, vectorizable_assignment,
17571 vectorizable_shift,vectorizable_operation, vectorizable_store,
17572 vectorizable_load): Likewise.
24ee1384
IR
17573 (vect_is_simple_cond): Add an argument, pass it to
17574 vect_is_simple_use_1.
17575 (vectorizable_condition): Update calls to vect_is_simple_cond,
17576 vect_is_simple_use.
17577 (vect_is_simple_use): Add an argument, the statement in which
17578 OPERAND is used. Check that if OPERAND's def stmt is a double
17579 reduction phi node, the use is a phi node too.
17580 (vect_is_simple_use_1): Add an argument, pass it to
17581 vect_is_simple_use.
17582 * tree-vect-slp.c (vect_get_and_check_slp_defs): Update a call
17583 to vect_is_simple_use.
17584
d5785e76
JJ
175852012-02-04 Jakub Jelinek <jakub@redhat.com>
17586
22439481
JJ
17587 PR rtl-optimization/52095
17588 * modulo-sched.c (dump_insn_locator): New function.
17589 (loop_canon_p, sms_schedule): Use it.
17590
d5785e76
JJ
17591 PR rtl-optimization/52113
17592 * lower-subreg.c (decompose_multiword_subregs): Call recog_memoized
17593 even for decomposable shift/zext insns.
17594
32410d02
JJ
175952012-02-03 Jakub Jelinek <jakub@redhat.com>
17596 Zdenek Dvorak <ook@ucw.cz>
17597
17598 PR rtl-optimization/52092
17599 * loop-unswitch.c (unswitch_single_loop): Call copy_rtx_if_shared
17600 on get_iv_value result.
17601
75471253
AP
176022012-02-02 Andrew Pinski <apinski@cavium.com>
17603
17604 PR middle-end/47982
17605 PR middle-end/43967
17606 * doc/libgcc.texi (__udivmoddi4/__udivmodti4): Fix documentation typo.
17607
1f01c3ec
JJ
176082012-02-02 Jakub Jelinek <jakub@redhat.com>
17609
17610 PR middle-end/48071
17611 * diagnostic.c (diagnostic_finish): Remove trailing newlines.
17612
662f8070
VM
176132012-02-02 Vladimir Makarov <vmakarov@redhat.com>
17614
17615 PR rtl-optimization/49800
17616 * haifa-sched.c (sched_init): Call regstat_init_n_sets_and_refs.
17617 (sched_finish): Call regstat_free_n_sets_and_refs.
17618
14bc59cb
RS
176192012-02-02 Jia Liu <proljc@gmail.com>
17620
17621 * config/mips/mips-dspr2.md (mips_prepend): Mask operand 3 rather
17622 than operand 2.
17623
9517e333
UB
176242012-02-02 Jan Hubicka <jh@suse.cz>
17625 Tom de Vries <tom@codesourcery.com>
5ee770bf
JH
17626
17627 PR middle-end/51998
17628 * cgraphunit.c (cgraph_analyze_function): Break cyclic aliases.
17629 * varpool.c (varpool_analyze_pending_decls): Likewise.
17630
b25364a0
S
176312012-02-02 Sumanth G <sumanth.gundapaneni@kpitcummins.com>
17632 Jayant R Sonar <jayant.sonar@kpitcummins.com>
17633
17634 * config.gcc: Add cr16-* support.
17635
17636 * doc/extend.texi: Document cr16 extensions.
17637 * doc/install.texi: Document cr16 install.
17638 * doc/invoke.texi: Document cr16 options.
17639 * doc/md.texi: Document cr16 constraints.
17640
17641 * common/config/cr16/cr16-common.c: New file.
17642 * config/cr16/cr16.c: New file.
17643 * config/cr16/cr16.h: New file.
17644 * config/cr16/cr16.md: New file.
17645 * config/cr16/cr16.opt: New file.
17646 * config/cr16/cr16-protos.h: New file.
17647 * config/cr16/predicates.md: New file.
17648 * config/cr16/constraints.md: New file.
17649 * config/cr16/t-cr16: New file.
17650
13c931c9
JJ
176512012-02-02 Jakub Jelinek <jakub@redhat.com>
17652
903e49f5
JJ
17653 PR target/52086
17654 * config/i386/i386.md (*addqi_2 peephole with SImode addition): Check
17655 that operands[2] is either immediate, or q_regs_operand.
17656
13c931c9
JJ
17657 PR tree-optimization/52073
17658 * tree-vect-stmts.c (vect_mark_relevant): When checking uses of
17659 a pattern stmt for pattern uses, ignore uses outside of the loop.
17660
c2453253
GJL
176612012-02-01 Georg-Johann Lay <avr@gjlay.de>
17662
17663 * config/avr/avr.c: Resolve all AS1 and AS2 macros.
17664 * config/avr/avr.h (AS1, AS2, AS2C, AS3): Remove.
17665 (OUT_AS1, OUT_AS2): Remove.
17666
07ad5438
GJL
176672012-02-01 Georg-Johann Lay <avr@gjlay.de>
17668
17669 PR rtl-optimization/51374
17670 * combine.c (can_combine_p): Don't allow volatile_refs_p insns
17671 to cross other volatile_refs_p insns.
17672
99ea07f8
RG
176732012-02-01 Richard Guenther <rguenther@suse.de>
17674
17675 * doc/invoke.texi (fno-inline): Clarify documentation.
17676 (finline-small-functions): Likewise.
17677 (finline-functions): Likewise.
17678 * common.opt (finline): Adjust comment and documentation.
17679 (finline-small-functions): Clarify documentation.
17680 (finline-functions): Likewise.
17681 (finline-functions-called-once): Likewise.
17682
3db684fb
TG
176832012-02-01 Tristan Gingold <gingold@adacore.com>
17684
17685 * c-typeck.c (composite_type): Keep mode for pointers.
17686
35aebd56
RS
176872012-01-31 Richard Sandiford <rdsandiford@googlemail.com>
17688
17689 * function.h (regno_reg_rtx): Adjust comment.
17690 * reginfo.c (init_reg_modes_target): Only use the previous mode
17691 if it fits within one register. Remove MIPS comment.
17692
8bb1a172
JJ
176932012-01-31 Jakub Jelinek <jakub@redhat.com>
17694
17695 PR bootstrap/52058
17696 * combine.c (do_SUBST_LINK, SUBST_LINK): Guard with #ifndef HAVE_cc0.
17697
01496eca
AK
176982012-01-31 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
17699
17700 * config/s390/s390.md ("*ashr<mode>3_and"): Add missing z196 flag
17701 to srak instruction.
17702
a2be33be
MGD
177032012-01-31 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
17704
28f7ff45 17705 * config/arm/thumb2.md (thumb2_mov_notscc): Use MVN for true condition.
a2be33be 17706
dd887943
JJ
177072012-01-31 Jakub Jelinek <jakub@redhat.com>
17708
17709 PR bootstrap/52041
17710 PR bootstrap/52039
17711 PR target/51974
17712 * ipa-prop.c (detect_type_change_1): Call ao_ref_init.
17713
63d7ceaa
RG
177142012-01-31 Richard Guenther <rguenther@suse.de>
17715
17716 PR tree-optimization/51528
17717 * tree-sra.c (sra_modify_assign): Avoid copy-in/out for aggregate
17718 assigns.
17719
68c8a824
JJ
177202012-01-31 Jakub Jelinek <jakub@redhat.com>
17721
17722 PR bootstrap/52041
17723 PR bootstrap/52039
17724 PR target/51974
17725 * ree.c (add_removable_extension): Change def_map argument
17726 to unsigned *, store in def_map 1 + offset into *insn_list vector
17727 instead of pointers into the vector.
17728 (find_removable_extensions): Adjust caller.
17729
a7fd5c6b
GJL
177302012-01-30 Georg-Johann Lay <avr@gjlay.de>
17731
17732 * config/avr/avr.md: Resolve all AS1 and AS2 macros.
17733 Transform all "* quoted-c-code" to { c-code }.
17734 Remove redundant test for "optimize" in combine patterns.
17735 Move (include "avr-dimode.md") to end of file.
17736
ab07692c
BC
177372012-01-30 Bin Cheng <bin.cheng@arm.com>
17738
17739 PR target/51835
17740 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Use correct ABI
17741 for __aeabi_d2iz/__aeabi_d2uiz with hard-float.
17742
e799d447
RG
177432012-01-30 Richard Guenther <rguenther@suse.de>
17744
17745 PR tree-optimization/52028
17746 * tree-loop-distribution.c (ldist_gen): Properly update
17747 virtual SSA form.
17748
dd44dcb0
JJ
177492012-01-30 Jakub Jelinek <jakub@redhat.com>
17750
2026d51a
JJ
17751 PR debug/52027
17752 * dwarf2out.c (dwarf2out_switch_text_section): Don't call
17753 set_cur_line_info_table if not emitting debug info.
17754
2f326699
JJ
17755 PR tree-optimization/52046
17756 * tree-vect-patterns.c (check_bool_pattern): Give up if
17757 a comparison could throw.
17758
dd44dcb0
JJ
17759 PR debug/52048
17760 * tree-ssa-tail-merge.c (local_def): Ignore debug uses.
17761
ab448cfa
RG
177622012-01-30 Richard Guenther <rguenther@suse.de>
17763
17764 PR tree-optimization/52045
17765 * tree-optimize.c (execute_cleanup_cfg_post_optimizing): Update
17766 SSA form if cfgcleanup did anything.
17767
f8698b37
RG
177682012-01-30 Richard Guenther <rguenther@suse.de>
17769
17770 PR tree-optimization/52045
17771 * ipa-inline-transform.c (inline_transform): Call execute_fixup_cfg
17772 before computing final todo.
17773
fdad69c1
RG
177742012-01-30 Richard Guenther <rguenther@suse.de>
17775
17776 PR tree-optimization/51528
17777 * tree-sra.c (sra_modify_assign): Re-factor in preparation
17778 for PR51528 fix.
17779
8203ac49
PB
177802012-01-30 Paolo Bonzini <bonzini@gnu.org>
17781
17782 * df-problems.c (df_kill_notes): Check that the use refers
17783 to the note under examination.
17784
98e4350f
EB
177852012-01-30 Eric Botcazou <ebotcazou@adacore.com>
17786
17787 PR target/51920
17788 * config/sparc/sparc.c (vector_init_fpmerge): Remove INNER_MODE
17789 parameter and use short-lived pseudos.
17790 (vector_init_faligndata): Remove INNER_MODE parameter and use loop.
17791 (sparc_expand_vector_init): Const-ify local variables and adjust
17792 calls to above functions.
17793
733ccf09
GJL
177942012-01-30 Georg-Johann Lay <avr@gjlay.de>
17795
17796 * config/avr/avr.c (out_movqi_mr_r): Fix length computation.
17797
1d7b264e
SL
177982012-01-29 Sandra Loosemore <sandra@codesourcery.com>
17799
17800 * doc/invoke.texi: Make usage of "compile time" and
17801 "run time"/"runtime" consistent throughout the file.
17802
1e86df8d
UB
178032012-01-29 Uros Bizjak <ubizjak@gmail.com>
17804
28f7ff45 17805 * config/alpha/alpha.c (alpha_option_override): Default to
1e86df8d
UB
17806 full IEEE compliance mode for Go language.
17807
8ca92d04 178082012-01-29 Tijl Coosemans <tijl@coosemans.org>
fc4c0b43
TC
17809
17810 * config/freebsd-spec.h [TARGET_LIBC_PROVIDES_SSP]
17811 (LINK_SSP_SPEC): Define.
17812
df8b5535
JDA
178132012-01-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17814
17815 PR target/51871
17816 * config/pa/pa.c (pa_return_addr_rtx): Add support for PA2.0 export
17817 stubs.
17818
6b6985ba
SL
178192012-01-28 Sandra Loosemore <sandra@codesourcery.com>
17820
17821 * doc/invoke.texi: Correct hyphenation of "floating point",
17822 "double precision", and related terminology throughout the file.
17823
8ea2d689
JJ
178242012-01-28 Jakub Jelinek <jakub@redhat.com>
17825
17826 PR target/52006
17827 * config/arm/arm.md (pic_add_dot_plus_eight peephole2): Use
17828 arm_general_register_operand predicate for operand 2 instead of
17829 register_operand.
17830
183dd130
ILT
178312012-01-27 Ian Lance Taylor <iant@google.com>
17832
17833 PR go/47656
17834 * builtins.def (BUILT_IN_INIT_HEAP_TRAMPOLINE): Define.
17835 * builtins.c (expand_builtin_init_trampoline): Add onstack
17836 parameter. Change caller.
17837 (expand_builtin): Handle BUILT_IN_INIT_HEAP_TRAMPOLINE.
17838 * tree.c (build_common_builtin_nodes): Declare
17839 __builtin_init_heap_trampoline.
17840
38ee0815
GJL
178412012-01-27 Georg-Johann Lay <avr@gjlay.de>
17842
17843 * config/avr/avr-protos.h (lpm_reg_rtx, lpm_addr_reg_rtx,
17844 tmp_reg_rtx, zero_reg_rtx, all_regs_rtx, rampz_rtx): Make global.
17845 * config/avr/avr.c: Ditto.
17846 (avr_regnames): Remove because unused.
17847 * config/avr/avr.md (*cpse.ne): New peephole.
17848 (*cpse.eq): New peephole from former cpse peepholes.
17849
b6c71f77
ME
178502012-01-27 Michael Eager <eager@eagercon.com>
17851
17852 * config/microblaze.c (microblaze_emit_compare): Correct
17853 test after pcmp instruction.
17854
13604927
RG
178552012-01-27 Richard Guenther <rguenther@suse.de>
17856
17857 PR tree-optimization/52020
17858 * tree-sra.c (sra_modify_assign): Do not transform clobbers.
17859
ace018f9
RG
178602012-01-27 Richard Guenther <rguenther@suse.de>
17861
17862 * ipa-pure-const.c (check_stmt): Clobbers do not make a
17863 function non-const/pure.
17864
aff86594
RG
178652012-01-27 Richard Guenther <rguenther@suse.de>
17866
17867 PR tree-optimization/50444
17868 * tree-sra.c (build_ref_for_offset): Properly adjust the
17869 MEM_REF type for unaligned accesses.
17870
22345357
RG
178712012-01-27 Richard Guenther <rguenther@suse.de>
17872
17873 PR tree-optimization/50444
17874 * expr.c (mem_ref_refers_to_non_mem_p): New function.
17875 (expand_assignment): Use it. Properly handle misaligned
17876 bases when expanding stores to component references.
17877 (expand_expr_real_1): Use mem_ref_refers_to_non_mem_p and
17878 refactor that case.
17879
3881dee9
AB
178802012-01-27 Andrey Belevantsev <abel@ispras.ru>
17881
17882 PR middle-end/51389
17883 * Makefile.in (tree-data-ref.o): Depend on $(PARAMS_H).
17884 * tree-data-ref.h (find_data_references_in_loop): Remove declaration.
17885 * tree-data-ref.c (find_data_references_in_loop): Make static.
17886 (compute_all_dependences): Change return type to bool. Bail out
17887 for too many datarefs in a loop. Move the hunk resetting the data
17888 dependences vector from ...
17889 (compute_data_dependences_for_loop): ... here. Account for
17890 compute_all_dependences returning false.
17891 (compute_data_dependences_for_bb): Likewise.
17892 * params.def (PARAM_LOOP_MAX_DATAREFS_FOR_DATADEPS): New param.
17893 * doc/invoke.texi (loop-max-datarefs-for-datadeps): Document it.
17894
45c83429
RG
178952012-01-27 Richard Guenther <rguenther@suse.de>
17896
17897 PR middle-end/51959
17898 * expr.c (store_field): Use the alias-set of the scratch memory
17899 for storing to it.
17900
842679dc
TV
179012012-01-27 Tom de Vries <tom@codesourcery.com>
17902
17903 PR tree-optimization/51990
1e86df8d
UB
17904 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle
17905 WITH_SIZE_EXPR.
842679dc
TV
17906 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Same.
17907
ae25db45
JJ
179082012-01-27 Jakub Jelinek <jakub@redhat.com>
17909
17910 PR debug/52001
17911 * var-tracking.c (reverse_op): Don't add any reverse operation
17912 if V already has any constant locations.
17913
cb485fff
SL
179142012-01-27 Sandra Loosemore <sandra@codesourcery.com>
17915
17916 * doc/invoke.texi: Correct usage of "command line" (noun)
17917 vs "command-line" (adjective) throughout.
17918
e3bd34b8
SL
179192012-01-27 Sandra Loosemore <sandra@codesourcery.com>
17920
17921 * doc/invoke.texi (Language Independent Options): Move
17922 -Wcoverage-mismatch blurb from here....
17923 (Warning Options): ...to here.
17924
b7c0a0d4
PB
179252012-01-27 Peter Bergner <bergner@vnet.ibm.com>
17926
17927 * config/rs6000/rs6000.c (rs6000_option_override_internal):
17928 Set rs6000_always_hint to false for 476.
17929
2fda54bd
MK
179302012-01-27 Matthias Klose <doko@ubuntu.com>
17931
17932 * gcc.c (add_sysrooted_prefix): Remove trailing dir separator from
17933 system root.
17934 * incpath.c (add_standard_paths): Likewise.
17935
4c1fd084
RH
179362012-01-27 Richard Henderson <rth@redhat.com>
17937
17938 * config/m68k/m68k.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
17939 * config/m68k/sync.md (atomic_test_and_set): Rename from
17940 sync_test_and_setqi and adjust the operands.
17941 (atomic_test_and_set_1): Rename from sync_test_and_setqi_1
17942 and unconditionally enable.
17943
5a843a13
RH
179442012-01-27 Richard Henderson <rth@redhat.com>
17945
17946 * config/sparc/sparc.c (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
17947 * config/sparc/sync.md (atomic_test_and_set): Only handle QImode.
17948 (ldstub): Rename from ldstubqi.
17949 (ldstub<I24MODE>): Remove.
17950
57c5ab1b
RH
179512012-01-27 Richard Henderson <rth@redhat.com>
17952
17953 * target.def (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): New.
17954 * c-cppbuiltin.c (cpp_atomic_builtins): Define
17955 __GCC_ATOMIC_TEST_AND_SET_TRUEVAL.
17956 * doc/tm.texi.in (TARGET_ATOMIC_TEST_AND_SET_TRUEVAL): Add doc hook.
17957 * doc/tm.texi: Rebuild.
17958
15e73e06
RH
179592012-01-27 Richard Henderson <rth@redhat.com>
17960
17961 * optabs.c (gen_atomic_test_and_set): Remove default.
17962 (maybe_emit_atomic_test_and_set): Use maybe_expand_insn.
17963
089dacc5
JJ
179642012-01-26 Jakub Jelinek <jakub@redhat.com>
17965
17966 PR rtl-optimization/51978
1e86df8d 17967 * ree.c (make_defs_and_copies_lists): Change set_pat type to const_rtx.
089dacc5
JJ
17968 (combine_reaching_defs): Likewise.
17969 (struct re_info): Remove.
17970 (add_removable_extension): Remove x and data arguments,
17971 add insn, insn_list and def_map. Use the arguments directly
17972 instead of using struct re_info.
17973 (find_removable_extensions): Don't call add_removable_extension
17974 through note_stores, instead just call it with single_set
17975 result if non-NULL.
17976 (find_and_remove_re): Pass curr_cand->expr instead of
1e86df8d 17977 PATTERN (curr_cand->insn) as set_pat argument to combine_reaching_defs.
089dacc5 17978
81bfd197
MM
179792012-01-26 Michael Matz <matz@suse.de>
17980
17981 PR tree-optimization/46590
17982 * cfgexpand.c: Revert last change (r183305).
17983 * gimplify.c (gimplify_bind_expr): Add clobbers for all non-gimple
17984 regs.
17985 * tree-eh.c (cleanup_empty_eh): Try to optimize clobbers before
17986 checking for emptiness.
17987
892123df
JJ
179882012-01-26 Jakub Jelinek <jakub@redhat.com>
17989
17990 PR middle-end/51895
17991 * expr.c (expand_expr_real_1): Handle BLKmode MEM_REF of
17992 non-addressable non-BLKmode base correctly.
17993
1a47f99c
MM
179942012-01-26 Michael Matz <matz@suse.de>
17995
17996 PR tree-optimization/48794
17997 * tree-eh.c (remove_unreachable_handlers_no_lp): Don't remove
17998 regions referenced from RESX/EH_DISPATCH.
17999
3d427cc1
AK
180002012-01-26 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18001
18002 * config/s390/s390.h: Make BRANCH_COST an option.
18003 * config/s390/s390.opt: New option -mbranch-cost.
18004
3be18e47
RH
180052012-01-26 Richard Henderson <rth@redhat.com>
18006
18007 Revert 2012-01-24 change:
18008 * trans-mem.c (requires_barrier): Do not instrument thread local
18009 variables and emit save/restore for them.
18010
21ae439c
JJ
180112012-01-25 Jakub Jelinek <jakub@redhat.com>
18012
18013 PR middle-end/51986
18014 * sched-deps.c (sched_get_condition_with_rev_uncached): Don't test
18015 for pat == 0.
18016
e906c889
RS
180172012-01-25 Richard Sandiford <rdsandiford@googlemail.com>
18018
55d4e75e
RS
18019 * config/mips/mips.c (mips_small_data_pattern_1): Don't process
18020 ASM_OPERANDS.
e906c889 18021
3a840863
GJL
180222012-01-25 Georg-Johann Lay <avr@gjlay.de>
18023
18024 PR target/49868
18025 Rename __pgm to __flash.
18026 Rename __pgm1 to __flash1.
18027 Rename __pgm2 to __flash2.
18028 Rename __pgm3 to __flash3.
18029 Rename __pgm4 to __flash4.
18030 Rename __pgm5 to __flash5.
18031 Rename __pgmx to __memx.
18032 * doc/extend.texi (AVR Named Address Spaces)
18033 Rename address space names as indicated above.
18034 * config/avr/avr.c (avr_addrspace): Ditto.
18035
18036 * config/avr/avr-protos.h
18037 (avr_mem_pgmx_p): Rename to avr_mem_memx_p.
18038 (avr_mem_pgm_p): Rename to avr_mem_flash_p.
18039 * config/avr/predicates.md: Ditto.
18040 * config/avr/avr.c Ditto, and
18041 (avr_decl_pgmx_p): Rename to avr_decl_memx_p.
18042 (avr_decl_pgm_p): Rename to avr_decl_flash_p.
18043
18044 * config/avr/avr.h (ADDR_SPACE_PGM): Rename to ADDR_SPACE_FLASH.
18045 (ADDR_SPACE_PGM1): Rename to ADDR_SPACE_FLASH1.
18046 (ADDR_SPACE_PGM2): Rename to ADDR_SPACE_FLASH2.
18047 (ADDR_SPACE_PGM3): Rename to ADDR_SPACE_FLASH3.
18048 (ADDR_SPACE_PGM4): Rename to ADDR_SPACE_FLASH4.
18049 (ADDR_SPACE_PGM5): Rename to ADDR_SPACE_FLASH5.
18050 (ADDR_SPACE_PGMX): Rename to ADDR_SPACE_MEMX.
18051 * config/avr/avr.c: Ditto.
18052 * config/avr/avr.md: Ditto.
18053
b3310d49
JM
180542012-01-25 Jason Merrill <jason@redhat.com>
18055
18056 PR c++/51992
18057 * tree.c (find_decls_types_in_node): Walk gimple_call_fntype.
18058
06e1d03d
JJ
180592012-01-25 Jakub Jelinek <jakub@redhat.com>
18060
18061 PR tree-optimization/51987
18062 * tree-data-ref.c (get_references_in_stmt): Handle references in
18063 non-volatile GIMPLE_ASM.
18064
8bf43909
RG
180652012-01-25 Richard Guenther <rguenther@suse.de>
18066
18067 * tree-ssa-sccvn.c (vn_reference_eq): Also compare if both
18068 bases are dereferenced.
18069
3dbdd1b9
AB
180702012-01-25 Andrey Belevantsev <abel@ispras.ru>
18071
18072 PR rtl-optimization/48374
1e86df8d 18073 * sel-sched-ir.h (get_all_loop_exits): Check for zero successors.
3dbdd1b9 18074
9ca3d00e
AB
180752012-01-25 Andrey Belevantsev <abel@ispras.ru>
18076
18077 * tree-predcom.c (tree_predictive_commoning_loop): Bail out when
18078 compute_data_dependences_for_loop returns false.
18079 * tree-parloops.c (loop_parallel_p): Likewise.
18080
87c0fb4b
RG
180812012-01-25 Richard Guenther <rguenther@suse.de>
18082
18083 * tree.h (get_pointer_alignment_1): Declare.
18084 * builtins.c (get_pointer_alignment_1): New function.
18085 (get_pointer_alignment): Use it.
18086
2630025d
RR
180872012-01-25 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
18088
18089 PR rtl-optimization/48308
18090 * combine.c (enum undo_kind): Add UNDO_LINKS.
18091 (struct undo): Add member l to other_contents and where.
18092 (do_SUBST_LINK): New.
18093 (SUBST_LINK): New.
18094 (try_combine): Handle LOG_LINKS for the dummy i1 case.
18095 (undo_all): Handle UNDO_LINKS.
18096
42cf0609
RH
180972012-01-25 Richard Henderson <rth@redhat.com>
18098
18099 * optabs.c (maybe_emit_atomic_test_and_set): Allow non-QImode
18100 mem inputs.
18101
1efaf134
RS
181022012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
18103
18104 * optabs.c (gen_atomic_test_and_set): Use each argument.
18105
63b9d91a
RS
181062012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
18107
18108 * config/mips/mips-ps-3d.md (mips_addr_ps, reduc_splus_v2sf)
18109 (mips_cvt_pw_ps, mips_cvt_ps_pw, mips_mulr_ps, mips_cabs_cond_<fmt>)
18110 (mips_cabs_cond_4s, mips_cabs_cond_ps, bc1any4t, bc1any4f, bc1any2t)
18111 (bc1any2f, mips_rsqrt1_<fmt>, mips_rsqrt2_<fmt>, mips_recip1_<fmt>)
18112 (mips_recip2_<fmt>): Require TARGET_MIPS3D rather than
18113 TARGET_PAIRED_SINGLE_FLOAT.
18114
55356334
RS
181152012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
18116
18117 * doc/rtl.texi (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
18118 (in_struct, return_val): Remove MEM documentation.
18119 * rtl.h (rtx_def): Remove MEM meanings from in_struct and return_val.
18120 (MEM_IN_STRUCT_P, MEM_SCALAR_P): Delete.
18121 (MEM_COPY_ATTRIBUTES): Remove references to MEM_IN_STRUCT_P
18122 and MEM_SCALAR.
18123 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
18124 * cfgexpand.c (add_alias_set_conflicts): Likewise.
18125 * expr.c (store_field): Likewise.
18126 * function.c (assign_stack_temp_for_type): Likewise.
18127 * ifcvt.c (noce_try_cmove_arith): Likewise.
18128 * reload1.c (reload): Likewise.
18129 * config/alpha/alpha.c (alpha_set_memflags_1): Likewise.
18130 (alpha_set_memflags): Likewise.
18131 * config/m32c/m32c.c (m32c_immd_dbl_mov): Nullify.
18132
53d9622b
RS
181332012-01-24 Richard Sandiford <rdsandiford@googlemail.com>
18134
18135 * rtl.h (true_dependence, canon_true_dependence): Remove varies
18136 parameter.
18137 * alias.c (fixed_scalar_and_varying_struct_p): Delete.
18138 (true_dependence_1, write_dependence_p, may_alias_p): Don't call it.
18139 (true_dependence_1, true_dependence, canon_true_dependence): Remove
18140 varies parameter.
18141 * cselib.c (cselib_rtx_varies_p): Delete.
18142 (cselib_invalidate_mem): Update call to canon_true_dependence.
18143 * dse.c (record_store, check_mem_read_rtx): Likewise.
18144 (scan_reads_nospill): Likewise.
18145 * cse.c (check_dependence): Likewise.
18146 (cse_rtx_varies_p): Delete.
18147 * expr.c (safe_from_p): Update call to true_dependence.
18148 * ira.c (validate_equiv_mem_from_store): Likewise.
18149 (memref_referenced_p): Likewise.
18150 * postreload-gcse.c (find_mem_conflicts): Likewise.
18151 * sched-deps.c (sched_analyze_2): Likewise.
18152 * store-motion.c (load_kills_store): Likewise.
18153 * config/frv/frv.c (frv_registers_conflict_p_1): Likewise.
18154 * gcse.c (mems_conflict_for_gcse_p): Likewise.
18155 (compute_transp): Update call to canon_true_dependence.
18156
f8a27aa6
RH
181572012-01-25 Richard Henderson <rth@redhat.com>
18158
18159 * optabs.c (CODE_FOR_atomic_test_and_set): Provide default.
18160 (maybe_emit_atomic_test_and_set): New.
18161 (expand_sync_lock_test_and_set): Use it.
18162 (expand_atomic_test_and_set): Likewise.
18163 * doc/extend.texi (__atomic_test_and_set): Adjust the docs to match
18164 the implementation; clarify implementation defined details.
18165 * doc/md.texi (atomic_test_and_set): Document.
18166
f1d4a790
RH
181672012-01-25 Richard Henderson <rth@redhat.com>
18168
18169 * config/sparc/predicates.md (zero_or_v7_operand): Use match_code.
18170
ed6cf318
RH
181712012-01-25 Richard Henderson <rth@redhat.com>
18172
18173 PR target/51968
18174 * config/arm/arm.c (neon_split_vcombine): Emit deleted note
18175 to effect no-op split.
18176
dda6ecae
AH
181772012-01-24 Aldy Hernandez <aldyh@redhat.com>
18178
18179 PR lto/51698
18180 * builtin-types.def: (BT_CONST_DOUBLE_PTR): New.
18181 (BT_FN_VOID_PTR_CONST_PTR_SIZE): New.
18182 (BT_FN_VOID_PTR_INT_SIZE): New.
18183 (BT_FN_UINT_UINT_VAR): Remove.
18184 (BT_FN_UINT32_UINT32_VAR): New.
18185 (BT_FN_DOUBLE_VPTR): Remove.
18186 (BT_FN_DOUBLE_CONST_DOUBLE_PTR): New.
18187
1e86df8d 18188 * gtm-builtins.def (_ITM_abortTransaction): Set return type to void.
dda6ecae
AH
18189 (_ITM_changeTransactionMode): Same.
18190 (_ITM_memmoveRtWt): Change return type to void.
18191 (_ITM_memcpyRtWt): Same.
18192 (_ITM_memsetW): Same.
18193 (_ITM_RaRD): Change types to double.
18194 (_ITM_RD): Same.
18195 (_ITM_RaWD): Same.
18196 (_ITM_RfWD): Same.
18197
18198 * builtins.def (DEF_TM_BUILTIN): Set BOTH_P to true.
18199
1aa5d1c7
AH
182002012-01-24 Aldy Hernandez <aldyh@redhat.com>
18201 Patrick Marlier <patrick.marlier@gmail.com>
18202
18203 * trans-mem.c (requires_barrier): Do not instrument thread local
18204 variables and emit save/restore for them.
18205
c5c90089
JM
182062012-01-24 Jason Merrill <jason@redhat.com>
18207
18208 PR c++/51812
18209 * cgraphunit.c (cgraph_decide_is_function_needed): Don't always
18210 output static aliases.
18211
5460e1fc
JJ
182122012-01-24 Jakub Jelinek <jakub@redhat.com>
18213
18214 PR driver/47249
18215 * common.opt (-pie, -shared, pie, shared): Change from Common to
18216 Driver.
18217 * gcc.c (display_help): Display help for -pie and -shared.
18218
aa9ec4db
GJL
182192012-01-24 Georg-Johann Lay <avr@gjlay.de>
18220
18221 PR target/49868
18222 * doc/extend.texi (AVR Named Address Spaces): Move sample code up.
18223 Remove note on size/offset limitation.
18224 (AVR Variable Attributes): Add example how to read data located
18225 with progmem. Refer to named address spaces.
18226 * doc/invoke.texi (AVR Options): Fix typo.
18227
a9d3ac1e
RG
182282012-01-24 Richard Guenther <rguenther@suse.de>
18229
18230 Forward-port to trunk
18231 2010-09-21 Jakub Jelinek <jakub@redhat.com>
18232
18233 PR middle-end/45678
18234 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: If
18235 op0 isn't sufficiently aligned and there is movmisalignM
18236 insn for mode, use it to load op0 into a temporary register.
18237
93bcc8c9
JJ
182382012-01-24 Jakub Jelinek <jakub@redhat.com>
18239
18240 PR target/51957
18241 * target.def (const_not_ok_for_debug_p): New hook.
18242 * doc/tm.texi.in (TARGET_CONST_NOT_OK_FOR_DEBUG_P): New hook
18243 documentation.
18244 * doc/tm.texi: Regenerated.
18245 * dwarf2out.c (const_ok_for_output_1): If
18246 targetm.const_not_ok_for_debug_p returns true, fail.
18247 * config/rs6000/rs6000.c (rs6000_const_not_ok_for_debug_p): New
18248 function.
18249 (TARGET_CONST_NOT_OK_FOR_DEBUG_P): Redefine.
18250
986ce92f
KT
182512012-01-23 Kai Tietz <ktietz@redhat.com>
18252
18253 PR target/51900
18254 * config/i386/predicates.md (symbolic_operand): Allow
18255 UNSPEC_PCREL as PIC expression for lea.
18256 * config/i386/winnt.c (i386_pe_binds_local_p): Reworked.
18257 * config/i386/i386.c (ix86_delegitimize_address): Handle
18258 UNSPEC_PCREL for none-MEM, too.
18259
e617b554
AH
182602012-01-23 Aldy Hernandez <aldyh@redhat.com>
18261
18262 * trans-mem.c (ipa_tm_create_version): Set externally_visible.
18263 (ipa_tm_create_version_alias): Same.
18264
1e86df8d 182652012-01-23 Uros Bizjak <ubizjak@gmail.com>
5752c591
UB
18266
18267 PR libitm/51830
18268 * builtin-types.def (BT_FN_UINT_UINT_VAR): New.
18269 * gtm-builtins.def (BUILT_IN_TM_START): Declare as BT_FN_UINT_UINT_VAR.
18270
f2ede0ee
AH
182712012-01-23 Aldy Hernandez <aldyh@redhat.com>
18272 Patrick Marlier <patrick.marlier@gmail.com>
18273 Iain Sandoe <developer@sandoe-acoustics.co.uk>
18274
18275 PR lto/51916
18276 * lto-wrapper.c (run_gcc): Pass the LTO section name to
18277 simple_object_start_read.
18278
191879f9
RG
182792012-01-23 Richard Guenther <rguenther@suse.de>
18280
f2ede0ee 18281
191879f9
RG
18282 PR tree-optimization/51895
18283 * tree-sra.c (decide_one_param_reduction): Avoid sub-optimal
18284 parameter decomposition into BLKmode components.
18285
b31799f4
EB
182862012-01-23 Eric Botcazou <ebotcazou@adacore.com>
18287
18288 * tree-ssa-structalias.c (intra_create_variable_infos): Do not create
18289 fake variables for restrict-qualified pointers whose pointed-to type
18290 contains a placeholder.
18291
b2d2adc6
RG
182922012-01-23 Richard Guenther <rguenther@suse.de>
18293
18294 PR tree-optimization/51949
5752c591 18295 * ipa-split.c (execute_split_functions): Do not split malloc functions.
b2d2adc6 18296
b57cca0b
JJ
182972012-01-23 Jakub Jelinek <jakub@redhat.com>
18298
18299 PR rtl-optimization/51933
18300 * ree.c (transform_ifelse): Return true right away if dstreg is
18301 already wider or equal to cand->mode.
18302 (enum ext_modified_kind, struct ext_modified, ext_state): New types.
18303 (make_defs_and_copies_lists): Remove defs_list and copies_list
18304 arguments, add state argument, just truncate state->work_list
18305 instead of always allocating and freeing the vector. Assert that
5752c591 18306 get_defs succeeds instead of returning 2. Changed return type to bool.
b57cca0b
JJ
18307 (merge_def_and_ext): Add state argument. If SET_DEST doesn't
18308 have ext_src_mode, see if it has been modified already with the
18309 right kind of extension and has been extended before from the
18310 ext_src_mode. If SET_DEST is already wider or equal to cand->mode,
5752c591 18311 just return true. Remember the original mode in state->modified array.
b57cca0b
JJ
18312 (combine_reaching_defs): Add state argument. Don't allocate and
18313 free here def_list, copied_list and vec vectors, instead just
5752c591 18314 VEC_truncate the vectors in *state. Don't handle outcome == 2 here.
b57cca0b
JJ
18315 (find_and_remove_re): Set DF_DEFER_INSN_RESCAN df flag.
18316 Add state variable, clear vectors in it, initialize state.modified
18317 if needed. Free all the vectors at the end and state.modified too.
18318 Don't skip a candidate if the extension expression has been modified.
18319
daecebc8
DR
183202012-01-22 Douglas B Rupp <rupp@gnat.com>
18321
18322 PR target/47096
18323 * config.gcc: (i[34567]86-*-interix3*): Remove from obsolete
18324 configurations. Change triplet to i[34567]86-*-interix[3-9]*.
18325 (extra_options) interix.opt -> i386/interix.opt"
18326 (extra_objs):Add winnt-stubs.o
18327 * configure.ac: Add interix to target_os .comm on PE check.
18328 * configure: Regenerate.
18329 * config/interix3.h: Delete and move bits to..
18330 * config/interix.h: Delete and move bits to..
18331 * config/i386/i386-interix3.h: Delete and move bits to..
18332 * config/i386/i386-interix.h: ..here.
18333 (TARGET_CPU_DEFAULT): Remove redefinition.
18334 (TARGET_ASM_CONSTRUCTOR): Undefine.
18335 (SUBTARGET_SWITCHES): Define for ms-bitfields.
18336 (TARGET_OS_CPP_BUILTINS): Remove __OPENNT. Add __declspec.
18337 (PTRDIFF_TYPE): Define.
18338 (LONG_DOUBLE_TYPE_SIZE): Define.
18339 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
18340 (SUBTARGET_OVERRIDE_OPTIONS): Remove.
18341 (TARGET_SECTION_TYPE_FLAGS): Define.
18342 (ASM_DECLARE_FUNCTION_NAME): Define.
18343 (ASM_OUTPUT_EXTERNAL): Define.
18344 (ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
18345 (ASM_OUTPUT_ALIGNED_BSS): Define.
18346 (PCC_BITFIELD_TYPE_MATTERS): Define.
18347 (USE_CONST_SECTION): Define.
18348 (SUBTARGET_ENCODE_SECTION_INFO): Remove.
18349 (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
18350 (SUPPORTS_ONE_ONLY): Remove.
18351 (I386_PE_STRIP_ENCODING): Define.
18352 * config/interix.opt: Delete and move bits to..
18353 * config/i386/interix.opt: ..here. New.
18354 (mpe-aligned-commons): Add.
18355 * config/i386/t-interix: Add copyright header.
18356 (winnt-stubs.o): Add rule.
18357
bbe04f21
JM
183582012-01-22 Jason Merrill <jason@redhat.com>
18359
18360 PR c++/51832
18361 * varpool.c (varpool_analyze_pending_decls): Copy DECL_EXTERNAL
18362 for extra name aliases.
18363
ca10595c
EB
183642012-01-22 Eric Botcazou <ebotcazou@adacore.com>
18365
18366 PR rtl-optimization/51924
18367 * ree.c (combine_set_extension): Improve debugging message.
18368 (combine_reaching_defs): Likewise.
18369 (get_defs): Rename confusingly named variable.
18370 (find_and_remove_re): Skip a candidate if the extension expression has
18371 been modified.
18372
4787ac51
RM
183732012-01-21 Robert Millan <rmh@gnu.org>
18374 Gerald Pfeifer <gerald@pfeifer.com>
18375
18376 * config/kfreebsd-gnu.h (GNU_USER_DYNAMIC_LINKERX32): New macro.
18377 (GNU_USER_DYNAMIC_LINKER): Adjust indentation.
18378
82294ec1
JJ
183792012-01-20 Jakub Jelinek <jakub@redhat.com>
18380
18381 PR tree-optimization/51914
18382 * tree-vect-stmts.c (vectorizable_conversion): For
18383 cvt_type && modifier == WIDEN, put temporary with cvt_type
18384 at the beginning of vec_dsts and set vec_dest to temporary
18385 with vectype_out.
18386
68cc3174
EB
183872012-01-20 Eric Botcazou <ebotcazou@adacore.com>
18388
18389 * cfgrtl.c (rtl_dump_bb): Do not dump insns for {ENTRY|EXIT}_BLOCK.
18390
8ca92d04 183912012-01-20 Tijl Coosemans <tijl@coosemans.org>
cdee0298
TC
18392
18393 * config/i386/i386.c: Fix checks for !TARGET_MACHO.
18394 * config/rs6000/rs6000.c: Likewise.
18395
4c2708c5
JJ
183962012-01-20 Jakub Jelinek <jakub@redhat.com>
18397
18398 PR target/51915
18399 * config/arm/arm.c (arm_count_output_move_double_insns): Call
18400 output_move_double on a copy of operands array.
18401
5752c591
UB
184022012-01-20 Cary Coutant <ccoutant@google.com>
18403 Dodji Seketeli <dodji@redhat.com>
2d663cb9
CC
18404
18405 PR debug/45682
18406 * dwarf2out.c (copy_declaration_context): Return ref to parent
18407 of declaration DIE, if necessary.
18408 (remove_child_or_replace_with_skeleton): Add new parameter; update
18409 caller. Place skeleton DIE under parent DIE of original declaration.
18410 Move call to copy_declaration_context to here ...
18411 (break_out_comdat_types): ... from here.
18412
afa73d3a
AK
184132012-01-20 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18414
18415 PR rtl-optimization/51856
18416 * reload.c (find_reloads_subreg_address): Set the address_reloaded
18417 flag to reloaded.
18418
3675f54b
RR
184192012-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
18420
18421 PR target/51819
18422 * config/arm/arm.c (arm_print_operand): Correct output of alignment
18423 hints for neon loads and stores.
18424
542bf446
GJL
184252012-01-20 Georg-Johann Lay <avr@gjlay.de>
18426
18427 PR target/49868
18428 PR target/50887
18429 * doc/extend.texi (Named Address Spaces): Split into subsections.
18430 (AVR Named Address Spaces): New subsection.
18431 (M32C Named Address Spaces): New subsection.
18432 (RL78 Named Address Spaces): New subsection.
18433 (SPU Named Address Spaces): New subsection.
18434 (Variable Attributes): New anchor "AVR Variable Attributes".
18435 (AVR Variable Attributes): Rewrite and avoid wording
18436 "address space" in this context.
18437 * doc/invoke.texi (AVR Options): Rewrite and add documentation
18438 for -maccumulate-args, -mbranch-cost=, -mrelax, -mshort-calls.
18439 (AVR Built-in Macros): New subsubsection therein.
18440 * doc/md.texi (AVR constraints): Remove "C04", "R".
18441
a88b3135
RG
184422012-01-20 Richard Guenther <rguenther@suse.de>
18443
18444 PR tree-optimization/51903
18445 * tree-ssa-pre.c (eliminate): Properly purging of EH edges
18446 when removing stmts.
18447
f06129ea
RR
184482012-01-20 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
18449
18450 PR target/50313
18451 * config/arm/arm.c (arm_load_pic_register): Use
18452 gen_pic_load_addr_unified. Delete calls to gen_pic_load_addr_32bit
18453 , gen_pic_add_dot_plus_eight and gen_pic_add_dot_plus_four.
18454 (arm_pic_static_addr): Likewise.
18455 (arm_rtx_costs_1): Adjust cost for UNSPEC_PIC_UNIFIED.
18456 (arm_note_pic_base): Handle UNSPEC_PIC_UNIFIED.
18457 * config/arm/arm.md (UNSPEC_PIC_UNIFIED): Define.
18458 (pic_load_addr_unified): New.
18459
229bfbcf
AB
184602012-01-20 Andrey Belevantsev <abel@ispras.ru>
18461
18462 PR target/51106
18463 * function.c (instantiate_virtual_regs_in_insn): Use
18464 delete_insn_and_edges when removing a wrong asm insn.
18465
2608d841
VM
184662012-01-19 Vladimir Makarov <vmakarov@redhat.com>
18467
18468 PR rtl-optimization/40761
5752c591
UB
18469 * ira-int.h (struct ira_loop_tree_node): Add comment for member loop.
18470 Add new member loop_num.
2608d841
VM
18471 (IRA_LOOP_NODE_BY_INDEX): Modify the check.
18472 (ira_build): Remove the parameter.
18473
5752c591 18474 * ira.c (ira_print_disposition): Use loop_num instead of loop->num.
2608d841
VM
18475 (ira.c): Do not build CFG loops for one region allocation. Remove
18476 argument from ira_build call.
18477
18478 * ira-build.c (init_loop_tree_node): New function.
18479 (create_loop_tree_nodes): Use it. Separate the case when CFG
18480 loops are not built.
18481 (more_one_region_p): Check current_loops.
18482 (finish_loop_tree_nodes): Separate the case when CFG loops are not
18483 built.
18484 (add_loop_to_tree): Process loop equal to NULL too.
18485 (form_loop_tree): Separate the case when CFG loops are not built.
18486 Use explicitly number for the root.
18487 (rebuild_regno_allocno_maps, create_loop_tree_node_allocnos): Add
18488 an assertion.
18489 (ira_print_expanded_allocno, loop_compare_func): Use loop_num
18490 instead of loop->num.
5752c591 18491 (mark_loops_for_removal): Ditto. Use loop_num instead of loop->num.
2608d841
VM
18492 (mark_all_loops_for_removal): Ditto.
18493 (remove_unnecessary_regions): Separate the case when CFG loops
18494 are not built.
18495 (ira_build): Remove the parameter. Use explicit number of regions
18496 when CFG loops are not built.
18497
5752c591
UB
18498 * ira-color.c (print_loop_title): Separate the case for the root node.
18499 Use loop_num instead of loop->num.
2608d841
VM
18500 (move_spill_restore): Use loop_num instead of loop->num.
18501
18502 * ira-emit.c (setup_entered_from_non_parent_p): Add an assertion.
18503 (change_loop): Ditto.
18504 (change_loop): Use loop_num instead of loop->num.
18505
18506 * ira-lives.c (process_bb_node_lives): Ditto.
18507
5752c591 18508 * ira-costs.c (print_allocno_costs, find_costs_and_classes): Ditto.
2608d841
VM
18509
18510 * ira-conflicts.c (print_allocno_conflicts): Ditto.
18511
dc2c7a52
JJ
185122012-01-19 Jakub Jelinek <jakub@redhat.com>
18513
58b3ebf2
JJ
18514 PR libmudflap/40778
18515 * tree-mudflap.c (mf_artificial): New function.
18516 (execute_mudflap_function_ops, execute_mudflap_function_decls,
18517 mx_register_decls, mudflap_enqueue_decl): Use it.
18518
dc2c7a52
JJ
18519 PR target/51876
18520 * config/arm/neon.md (*neon_vswp<mode>): Fix up operand
18521 numbers in the insn pattern.
18522
d5038d06
MM
185232012-01-19 Michael Matz <matz@suse.de>
18524
18525 PR tree-optimization/46590
18526 * cfgexpand.c (add_scope_conflicts_1): New old_conflicts argument,
18527 use it in remembering which conflicts we already created.
18528 (add_scope_conflicts): Adjust call to above, (de)allocate helper
18529 bitmap.
18530
aad038ca
AH
185312012-01-19 Aldy Hernandez <aldyh@redhat.com>
18532
18533 PR lto/51280
18534 * lto-wrapper.c (run_gcc): Pass -fgnu_tm on.
18535 (merge_and_complain): Same.
18536
e9c9f128
JJ
185372012-01-19 Jakub Jelinek <jakub@redhat.com>
18538
18539 PR bootstrap/50237
18540 * config/initfini-array.h: Guard content of the header
18541 with #ifdef HAVE_INITFINI_ARRAY.
18542 * configure.ac: Move gcc_AC_INITFINI_ARRAY much later into the file.
18543 Add initfini-array.h to tm_file here.
5752c591 18544 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): For non-ia64 do a linker test.
e9c9f128
JJ
18545 * config.gcc: Don't add initfini-array.h to tm_file here.
18546 * configure: Regenerated.
18547
185482012-01-19 Andrey Belevantsev <abel@ispras.ru>
f90aa714
AB
18549
18550 PR rtl-optimization/51505
18551 * df-problems.c (df_kill_notes): New parameter live. Update comment.
18552 Remove REG_EQUAL/REG_EQUIV notes referring to dead registers.
5752c591 18553 (df_note_bb_compute): Update the call to df_kill_notes.
f90aa714 18554
63c0efdb
AH
185552012-01-18 Aldy Hernandez <aldyh@redhat.com>
18556
18557 * trans-mem.c (requires_barrier): Remove call to is_global_var.
18558
b8cf611d
RG
185592012-01-18 Richard Guenther <rguenther@suse.de>
18560
18561 * tree-ssa.c (useless_type_conversion_p): Remove special-casing
18562 of conversions to void *.
18563
3bdb97b8
AK
185642012-01-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18565 Richard Sandiford <rdsandiford@googlemail.com>
18566
18567 PR middle-end/50325
18568 PR middle-end/51192
18569 * optabs.h (simplify_expand_binop): Declare.
18570 * optabs.c (simplify_expand_binop): Make global.
18571 * expmed.c (store_bit_field_1): Use simplify_expand_binop on big
18572 endian targets if the source cannot be exactly covered by word
18573 mode chunks.
18574
ee3d2ecd
JJ
185752012-01-17 Jakub Jelinek <jakub@redhat.com>
18576
18577 PR bootstrap/51872
18578 * hard-reg-set.h (struct hard_reg_set_container): New type.
18579 * target.h (struct hard_reg_set_container): Forward declare.
18580 * target.def (set_up_by_prologue): New target hook.
18581 * doc/tm.texi.in (TARGET_SET_UP_BY_PROLOGUE): Document it.
18582 * doc/tm.texi: Regenerated.
18583 * function.c (thread_prologue_and_epilogue_insns): Change
18584 set_up_by_prologue HARD_REG_SET into struct hard_reg_set_container.
18585 Call targetm.set_up_by_prologue on it.
18586 * config/rs6000/rs6000.c (rs6000_set_up_by_prologue): New function.
18587 (TARGET_SET_UP_BY_PROLOGUE): Redefine to it.
18588
be61ce52
NC
185892012-01-17 Nick Clifton <nickc@redhat.com>
18590
18591 * config/rx/rx.c (rx_can_use_simple_return): New function.
18592 * config/rx/rx-protos.h (rx_can_use_simple_return): Prototype.
18593 * config/rx/rx.md (return): Predicate on rx_can_use_simple_return.
18594
e831c1e8
RG
185952012-01-17 Richard Guenther <rguenther@suse.de>
18596
18597 PR middle-end/51782
18598 * expr.c (expand_assignment): Take address-space information
18599 from the address operand of MEM_REF and TARGET_MEM_REF.
18600 (expand_expr_real_1): Likewise.
18601
67463efb
AK
186022012-01-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
18603
18604 * ira.c (do_reload): Make sure ira_dump_file is re-set if no
18605 reload dump is requested.
18606
59cbe98e
AH
186072012-01-17 Aldy Hernandez <aldyh@redhat.com>
18608
18609 PR other/51165
18610 * trans-mem.c (requires_barrier): Call may_be_aliased.
18611
e6fa9204
JJ
186122012-01-17 Jakub Jelinek <jakub@redhat.com>
18613
18614 PR tree-optimization/51877
18615 * tree-ssa-tail-merge.c (gimple_equal_p): Don't return true whenever
18616 call arguments and fndecls compare equal, instead return false if they
18617 don't. Return true only if lhs1 and lhs2 are either both NULL, or
18618 both SSA_NAMEs that are valueized the same, or they satisfy
18619 operand_equal_p.
18620
26923657
RO
186212012-01-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18622
18623 * configure.ac (gcc_cv_target_dl_iterate_phdr): Only check on
18624 Solaris 11+.
18625 * configure: Regenerate.
18626
c53153e7
JH
186272012-01-16 Jan Hubicka <jh@suse.cz>
18628
18629 PR c/12245
18630 PR c++/14179
18631 * convert.c (convert_to_integer): Use fold_convert for
18632 converting an INTEGER_CST to integer type.
18633
7aeb037b
JM
186342012-01-16 Jason Merrill <jason@redhat.com>
18635
18636 PR c++/14179
18637 * vec.c (vec_gc_o_reserve_1): Use ggc_round_alloc_size.
18638
90dda0e9
JJ
186392012-01-16 Jakub Jelinek <jakub@redhat.com>
18640
00fbd5c8
JJ
18641 PR bootstrap/51860
18642 * config/s390/s390.c (s390_chunkify_start): Don't skip
18643 call insns followed by NOTE_INSN_CALL_ARG_LOCATION note. Skip
18644 NOTE_INSN_VAR_LOCATION and NOTE_INSN_CALL_ARG_LOCATION notes.
18645 If insn is followed by NOTE_INSN_VAR_LOCATION or
18646 NOTE_INSN_CALL_ARG_LOCATION notes, insert jump after all those notes.
18647 Don't use location of note insns.
18648
90dda0e9
JJ
18649 PR tree-optimization/51865
18650 * tree-inline.c (tree_function_versioning): Call remap_decl
18651 on DECL_RESULT whenever it has VOID_TYPE_P type.
18652
62835cee
RS
186532012-01-15 Richard Sandiford <rdsandiford@googlemail.com>
18654
18655 * config/mips/mips.c (mips16_build_call_stub): Don't use a stub
18656 for calls to locally-binding MIPS16 functions if only the return
18657 type uses float regs.
18658
ddaf8125
RS
186592012-01-15 Chung-Lin Tang <cltang@codesourcery.com>
18660 Richard Sandiford <rdsandiford@googlemail.com>
18661
18662 * config/mips/mips-protos.h (SYMBOL_FORCE_TO_MEM): Delete.
18663 (SYMBOL_32_HIGH): Likewise.
18664 (mips_output_tls_reloc_directive): Declare.
18665 * config/mips/mips.h (PIC_FUNCTION_ADDR_REGNUM): Move to mips.md.
18666 (mips_use_pcrel_pool_p, mips_lo_relocs, mips_hi_relocs): Declare.
18667 * config/mips/mips.c (mips_use_pcrel_pool_p): New variable.
18668 (mips_lo_relocs, mips_hi_relocs): Make extern.
18669 (mips16_stub_function): Move up file.
18670 (mips_classify_symbol): Remove SYMBOL_FORCE_TO_MEM handling.
18671 (mips_symbolic_constant_p): Likewise. Remove SYMBOL_32_HIGH too.
18672 (mips_symbol_insns_1): Likewise. Check mips_use_pcrel_pool_p.
5752c591
UB
18673 (mips_cannot_force_const_mem): Use mips_use_pcrel_pool_p instead of
18674 SYMBOL_FORCE_TO_MEM. Only check mips_tls_symbol_ref_1 if it's false.
ddaf8125
RS
18675 (mips_get_tp): Add MIPS16 support.
18676 (mips_legitimize_tls_address): Remove MIPS16 sorry().
18677 Generalize DTPREL and TPREL handling.
18678 (mips_init_relocs): Initialize mips_use_pcrel_pool_p.
18679 Add MIPS16 TLS support.
18680 (mips_output_tls_reloc_directive): New function.
18681 (mips16_rewrite_pool_refs): Ignore UNSPEC_TLS_GET_TPs.
18682 * config/mips/predicates.md (symbolic_operand_with_high)
18683 (tls_reloc_operand): New predicates.
18684 (force_to_mem_operand): Use mips_use_pcrel_pool_p.
18685 * config/mips/mips.md (UNSPEC_UNSHIFTED_HIGH): New unspec.
18686 (PIC_FUNCTION_ADDR_REGNUM): Moved from mips.h.
5752c591 18687 (*unshifted_high): New instruction. Use it for MIPS16 high splitter.
ddaf8125
RS
18688 (consttable_tls_reloc, tls_get_tp_mips16_<mode>): New patterns.
18689 (*tls_get_tp_mips16_call_<mode>): Likewise.
18690
bf63ef6c
UB
186912012-01-15 Uros Bizjak <ubizjak@gmail.com>
18692
18693 PR rtl-optimization/51821
18694 * recog.c (peep2_find_free_register): Determine clobbered registers
18695 from insn pattern.
18696
cfbaed3b
DC
186972012-01-14 Denis Chertykov <chertykov@gmail.com>
18698
18699 PR target/50925
18700 * config/avr/avr-protos.h: Revert change of 2012-01-09.
18701 * config/avr/avr.c: Likewise.
18702 * config/avr/avr.h: Likewise.
18703
12448f77
ILT
187042012-01-13 Ian Lance Taylor <iant@google.com>
18705
18706 PR c++/50012
18707 * tree.h (TYPE_QUALS): Add cast to int.
18708 (TYPE_QUALS_NO_ADDR_SPACE): Likewise.
18709
9ab6f957
ILT
187102012-01-13 Ian Lance Taylor <iant@google.com>
18711
18712 * ipa-cp.c (ipa_get_indirect_edge_target): Add typecasts when
18713 comparing param_index to VEC_length result.
18714
8554df86
SB
187152012-01-13 Steven Bosscher <steven@gcc.gnu.org>
18716
18717 * c-decl.c: Do not include tree-mudflap.h
18718 * tree-optimize.c: Likewise.
18719 * Makefile.in: Update dependencies.
18720
aabb90e5
RG
187212012-01-13 Richard Guenther <rguenther@suse.de>
18722
18723 PR middle-end/8081
18724 * gimplify.c (gimplify_modify_expr_rhs): For calls with a
18725 variable-sized result always use RSO.
18726
639d4bb8
DD
187272012-01-12 DJ Delorie <dj@redhat.com>
18728
18729 * cfgexpand.c (convert_debug_memory_address): Allow any valid
18730 pointer type, not just the default pointer type.
18731
105b876e
RH
187322012-01-09 Richard Henderson <rth@redhat.com>
18733 Denis Chertykov <chertykov@gmail.com>
18734
18735 PR target/50925
18736 * config/avr/avr-protos.h (avr_hard_regno_nregs): Declare.
18737 * config/avr/avr.c (avr_can_eliminate): Simplify.
18738 (avr_initial_elimination_offset): Likewise.
18739 (avr_prologue_setup_frame): Use hard_frame_pointer_rtx.
18740 (expand_epilogue): Likewise.
18741 (avr_legitimize_address): Gut.
18742 (avr_legitimize_reload_address): Use hard_frame_pointer_rtx.
18743 (avr_hard_regno_nregs): New.
18744 (avr_hard_regno_ok): Allow only Pmode for arg and frame_pointers.
18745 (avr_regno_mode_code_ok_for_base_b): Handle arg and frame pointers.
18746 * config/avr/avr.h (FIXED_REGISTERS): Adjust arg pointer,
18747 add soft frame pointer.
18748 (CALL_USED_REGISTERS): Likewise.
18749 (REG_CLASS_CONTENTS): Likewise.
18750 (REGISTER_NAMES): Likewise.
18751 (HARD_REGNO_NREGS): Use avr_hard_regno_nregs.
18752 (HARD_FRAME_POINTER_REGNUM): New.
18753 (FRAME_POINTER_REGNUM): Use soft frame pointer.
18754 (ELIMINABLE_REGS): Eliminate from the soft frame pointer,
18755 remove the HARD_FRAME_POINTER self-elimination.
18756
458652d1 187572012-01-12 Georg-Johann Lay <avr@gjlay.de>
ab8c5093
GJL
18758
18759 PR target/51756
18760 * config/avr/avr.c (avr_encode_section_info): Test for absence of
18761 DECL_EXTERNAL when checking for initializers of progmem variables.
18762
82db3d43
IR
187632012-01-12 Ira Rosen <irar@il.ibm.com>
18764
18765 PR tree-optimization/51799
18766 * tree-vect-patterns.c (vect_recog_over_widening_pattern): Check
18767 that the last operation is a type demotion.
18768
64668e68
UB
187692012-01-12 Uros Bizjak <ubizjak@gmail.com>
18770
18771 * config/i386/i386.md (*zero_extendsidi2_rex64): Correct movl template.
18772 (x86_shift<mode>_adj_1): Remove operand constraint from operand 3.
18773
319638ed
JJ
187742012-01-11 Jakub Jelinek <jakub@redhat.com>
18775
18776 PR bootstrap/51796
18777 * combine.c (distribute_notes): If i3 is a noreturn call,
18778 allow old_size to be equal to args_size and make sure the
18779 noreturn call gets REG_ARGS_SIZE note.
18780 * expr.c (fixup_args_size_notes): Put REG_ARGS_SIZE notes
18781 on noreturn calls even when the delta is 0.
18782
8f961b22
NS
187832012-01-11 Nathan Sidwell <nathan@acm.org>
18784
18785 * gcov.c (STRING_SIZE): Remove.
18786 (generate_results): Erase annotations for source files with no
18787 coverage information.
18788 (read_line): New.
18789 (output_lines): Use it.
18790
3ad065ef
EB
187912012-01-11 Eric Botcazou <ebotcazou@adacore.com>
18792
18793 * gimple.h (gimplify_body): Remove first argument.
18794 * gimplify.c (copy_if_shared): Add DATA argument. Do not create the
18795 pointer set here, instead just pass DATA to walk_tree.
18796 (unshare_body): Remove BODY_P argument and adjust. Create the pointer
18797 set here and invoke copy_if_shared on the size trees of DECL_RESULT.
18798 (unvisit_body): Likewise, but with unmark_visited.
18799 (gimplify_body): Remove BODY_P argument and adjust.
18800 (gimplify_function_tree): Adjust call to gimplify_body.
18801 * omp-low.c (finalize_task_copyfn): Likewise.
18802
1a2c27e9
EB
188032012-01-11 Eric Botcazou <ebotcazou@adacore.com>
18804
18805 * tree.h (build_function_decl_skip_args): Add boolean parameter.
18806 (build_function_type_skip_args): Delete.
18807 * tree.c (build_function_type_skip_args): Make static and add
18808 SKIP_RETURN parameter. Fix thinko in the handling of variants.
18809 (build_function_decl_skip_args): Add SKIP_RETURN parameter and
18810 pass it to build_function_type_skip_args.
18811 * cgraph.h (cgraph_function_versioning): Add boolean parameter.
18812 (tree_function_versioning): Likewise.
18813 * cgraph.c (cgraph_create_virtual_clone): Adjust call to
18814 build_function_decl_skip_args.
18815 * cgraphunit.c (cgraph_function_versioning): Add SKIP_RETURN parameter
18816 and pass it to build_function_decl_skip_args/tree_function_versioning.
18817 (cgraph_materialize_clone): Adjust call to tree_function_versioning.
18818 * ipa-inline-transform.c (save_inline_function_body): Likewise.
18819 * trans-mem.c (ipa_tm_create_version): Likewise.
18820 * tree-sra.c (modify_function): Ditto for cgraph_function_versioning.
18821 * tree-inline.c (declare_return_variable): Remove always-true test.
18822 (tree_function_versioning): Add SKIP_RETURN parameter. If the function
18823 returns non-void and SKIP_RETURN, create a void-typed RESULT_DECL.
18824 * ipa-split.c (split_function): Skip the return value for the split
18825 part if it doesn't return.
18826
b2e25729
BS
188272012-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18828
18829 PR tree-optimization/49642
18830 * ipa-split.c (forbidden_dominators): New variable.
18831 (check_forbidden_calls): New function.
18832 (dominated_by_forbidden): Likewise.
18833 (consider_split): Check for forbidden dominators.
18834 (execute_split_functions): Initialize and free forbidden
18835 dominators info; call check_forbidden_calls.
18836
9150e331
MGD
188372012-01-11 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
18838
18839 * config/arm/arm.md (mov_notscc): Use MVN for false condition.
18840
1c97289f
NC
188412012-01-11 Nick Clifton <nickc@redhat.com>
18842
18843 * config/rx/rx.md (return): Define pattern.
18844
65d5c485
RG
188452012-01-11 Richard Guenther <rguenther@suse.de>
18846
18847 * doc/extend.texi (malloc attribute): Adjust according to
18848 implementation.
18849
594ec92f
AH
188502012-01-10 Aldy Hernandez <aldyh@redhat.com>
18851 Patrick Marlier <patrick.marlier@gmail.com>
18852
18853 PR middle-end/51516
18854 * trans-mem.c (get_cg_data): Traverse aliases if requested.
18855 (ipa_tm_scan_calls_block): Update parameters to get_cg_data.
18856 (ipa_tm_note_irrevocable): Same.
18857 (ipa_tm_scan_irr_block): Same.
18858 (ipa_tm_decrement_clone_counts): Same.
18859 (ipa_tm_scan_irr_function): Same.
18860 (ipa_tm_create_version_alias): Same.
18861 (ipa_tm_create_version): Same.
18862 (ipa_tm_transform_calls_redirect): Same.
18863 (ipa_tm_transform_calls): Same.
18864 (ipa_tm_transform_transaction): Same.
18865 (ipa_tm_execute): Same.
18866
aee15221
RG
188672012-01-10 Richard Guenther <rguenther@suse.de>
18868
18869 PR middle-end/51806
18870 * opts.c (common_handle_option): Handle -Werror.
18871
b339cf22
AS
188722012-01-10 Andreas Schwab <schwab@linux-m68k.org>
18873
18874 * config/m68k/sync.md ("atomic_compare_and_swap<mode>_1"): Fix
18875 operand number.
18876
90aa444c
JM
188772012-01-10 Jason Merrill <jason@redhat.com>
18878
18879 * doc/invoke.texi (C++ Dialect Options): Update -fabi-version=6
18880 information.
18881
0f24748c
RO
188822012-01-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
18883
18884 * configure.ac (gcc_cv_as_ix86_tlsgdplt): Check if linker
18885 supports R_386_TLS_GD_PLT reloc.
18886 (gcc_cv_as_ix86_tlsldmplt): Check if linker
18887 supports R_386_TLS_LDM_PLT reloc.
18888 * configure: Regenerate.
18889 * config.in: Regenerate.
18890
cba300dd
GJL
188912012-01-10 Georg-Johann Lay <avr@gjlay.de>
18892
18893 PR target/49868
18894 Extend __pgmx semantics to linearize memory.
18895 * config/avr/avr.md (mov<mode>): Use avr_xload_libgcc_p to
18896 determine if code comes inline or from libgcc.
18897 (MOVMEM_r_d:HI): Add "w" to constraint for better preference.
18898 (movmem_qi, movmem_qi): Set constraint #2 to "n".
18899 (movmem_qi_elpm, movmem_hi_elpm): Remove insns.
18900 (movmemx_qi, movmemx_hi): New insns.
18901 (xload_<mode>_libgcc): Rewrite to new insn condition.
18902 (xload_<mode>): Remove insns.
18903 * config/avr/avr.c (avr_out_xload): Rewrite: Only need to handle
18904 cases that don't satisfy avr_xload_libgcc_p().
18905 (avr_addr_space_convert): Allow converting in any direction.
18906 (avr_addr_space_subset_p): Return always true.
18907 (avr_xload_libgcc_p): Rewrite to fit new __pgmx semantics.
18908 (avr_emit_movmemhi): Ditto.
18909 (avr_out_lpm): No need to handle ADDR_SPACE_PGMX any more.
18910 (avr_out_movmem): Ditto.
18911 (AVR_SYMBOL_FLAG_PROGMEM): New macro.
18912 (AVR_SYMBOL_SET_ADDR_SPACE): New macro.
18913 (AVR_SYMBOL_GET_ADDR_SPACE): New macro.
18914 (avr_encode_section_info): Encode 'progmem' in symbol flags.
18915 (output_reload_in_const): Don't zero-extend any 24-bit symbols.
18916
390b24dc
RG
189172012-01-10 Richard Guenther <rguenther@suse.de>
18918
18919 PR tree-optimization/50913
18920 * graphite-scop-detection.c (stmt_has_simple_data_refs_p):
18921 Require data-refs to be representable by Graphite with respect
18922 to any loop nest.
18923
f148a434
UB
189242012-01-10 Uros Bizjak <ubizjak@gmail.com>
18925
18926 * config/i386/constraints.md ("L"): Return true for 0xffffffff.
18927 * config/i386/i386.c (*anddi_1): Emit AND with 0xffffffff as MOV.
18928
5d1f1cd5
TV
189292012-01-10 Tom de Vries <tom@codesourcery.com>
18930
6fcebe79 18931 PR rtl-optimization/51271
5d1f1cd5
TV
18932 * dwarf2cfi.c (scan_trace): Save and restore cur_row->reg_save when
18933 handling annulled branch.
18934
b440f324
RH
189352012-01-10 Richard Henderson <rth@redhat.com>
18936
f148a434 18937 * config/arm/arm.c (arm_vectorize_vec_perm_const_ok,
b440f324
RH
18938 TARGET_VECTORIZE_VEC_PERM_CONST_OK, neon_split_vcombine, MAX_VECT_LEN,
18939 struct expand_vec_perm_d, arm_expand_vec_perm_1, arm_expand_vec_perm,
18940 arm_evpc_neon_vuzp, arm_evpc_neon_vzip, arm_evpc_neon_vrev,
18941 arm_evpc_neon_vtrn, arm_evpc_neon_vtbl, arm_expand_vec_perm_const_1,
18942 arm_expand_vec_perm_const): New.
18943 * config/arm/arm-protos.h: Update.
18944 * config/arm/neon.md (UNSPEC_VCONCAT): New.
18945 (*neon_vswp<VDQX>): New.
18946 (neon_vcombine<VDX>): Use neon_split_vcombine.
18947 (neon_vtbl1v16qi, neon_vtbl2v16qi, neon_vcombinev16qi): New.
18948 * config/arm/vec-common.md (vec_perm_const<VALL>): New.
18949 (vec_perm<VE>): New.
18950
18f0fe6b
RH
189512012-01-10 Richard Henderson <rth@redhat.com>
18952
18953 * config/arm/arm.c (arm_gen_compare_reg): Add scratch argument;
18954 use it if reload_completed.
18955 (arm_legitimize_sync_memory, arm_emit, arm_insn_count, arm_count,
18956 arm_output_asm_insn, arm_process_output_memory_barrier,
18957 arm_output_memory_barrier, arm_ldrex_suffix, arm_output_ldrex,
18958 arm_output_strex, arm_output_it, arm_output_op2, arm_output_op3,
18959 arm_output_sync_loop, arm_get_sync_operand, FETCH_SYNC_OPERAND,
18960 arm_process_output_sync_insn, arm_output_sync_insn,
18961 arm_sync_loop_insns, arm_call_generator, arm_expand_sync): Remove.
18962 (arm_pre_atomic_barrier, arm_post_atomic_barrier): New.
18963 (arm_emit_load_exclusive, arm_emit_store_exclusive): New.
18964 (emit_unlikely_jump): New.
18965 (arm_expand_compare_and_swap, arm_split_compare_and_swap): New.
18966 (arm_split_atomic_op): New.
18967 * config/arm/arm-protos.h: Update.
18968 * config/arm/arm.h (enum arm_sync_generator_tag): Remove.
18969 (struct arm_sync_generator): Remove.
18970 * config/arm/arm.md (VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK,
18971 VUNSPEC_SYNC_OP, VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): Remove.
18972 (VUNSPEC_ATOMIC_CAS, VUNSPEC_ATOMIC_XCHG, VUNSPEC_ATOMIC_OP): New.
18973 (VUNSPEC_LL, VUNSPEC_SC): New.
18974 (sync_result, sync_memory, sync_required_value, sync_new_value,
18975 sync_t1, sync_t2, sync_release_barrier, sync_op): Remove.
18976 (attr length): Don't use arm_sync_loop_insns.
18977 (cbranch_cc, cstore_cc): Update call to arm_gen_compare_reg.
18978 (movsfcc, movdfcc): Likewise.
18979 * config/arm/constraints.md (Ua): New.
18980 * config/arm/prediates.md (mem_noofs_operand): New.
18981 (sync_compare_and_swap<QHSD>, sync_lock_test_and_set<QHSD>): Remove.
18982 (sync_clobber, sync_t2_reqd): Remove.
18983 (sync_<syncop><QHSD>, sync_nand<QHSD>): Remove.
18984 (sync_new_<syncop><QHSD>, sync_new_nand<QHSD>): Remove.
18985 (sync_old_<syncop><QHSD>, sync_old_nand<QHSD>): Remove.
18986 (arm_sync_compare_and_swap<SIDI>): Remove.
18987 (arm_sync_compare_and_swap<NARROW>): Remove.
18988 (arm_sync_lock_test_and_set<SIDI>): Remove.
18989 (arm_sync_lock_test_and_set<NARROW>): Remove.
18990 (arm_sync_new_<syncop><SIDI>): Remove.
18991 (arm_sync_new_<syncop><NARROW>): Remove.
18992 (arm_sync_new_nand<SIDI>): Remove.
18993 (arm_sync_new_nand<NARROW>): Remove.
18994 (arm_sync_old_<syncop><SIDI>): Remove.
18995 (arm_sync_old_<syncop><NARROW>): Remove.
18996 (arm_sync_old_nand<SIDI>): Remove.
18997 (arm_sync_old_nand<NARROW>): Remove.
18998 (*memory_barrier): Merge arm_output_memory_barrier.
18999 (atomic_compare_and_swap<QHSD>): New.
19000 (atomic_compare_and_swap<NARROW>_1): New.
19001 (atomic_compare_and_swap<SIDI>_1): New.
19002 (atomic_exchange<QHSD>): New.
19003 (cas_cmp_operand, cas_cmp_str): New.
19004 (atomic_op_operand, atomic_op_str): New.
19005 (atomic_<syncop><QHSD>, atomic_nand<QHSD>): New.
19006 (atomic_fetch_<syncop><QHSD>, atomic_fetch_nand<QHSD>): New.
19007 (atomic_<syncop>_fetch<QHSD>, atomic_nand_fetch<QHSD>): New.
19008 (arm_load_exclusive<NARROW>): New.
19009 (arm_load_exclusivesi, arm_load_exclusivedi): New.
19010 (arm_store_exclusive<QHSD>): New.
19011
190122012-01-09 Michael Meissner <meissner@linux.vnet.ibm.com>
df5a9a7c
MM
19013
19014 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add DF
19015 reload patterns if -mvsx-scalar-memory.
19016
19017 * config/rs6000/vsx.md (vsx_xscvspdp): Allow xscvspdp to be
19018 generated, even -mno-vsx-scalar-double was used.
19019 (vsx_xscvdpsp_scalar): Likewise.
19020 (vsx_xscvspdp_scalar2): Likewise.
19021
243b92d1
TV
190222012-01-09 Tom de Vries <tom@codesourcery.com>
19023 Andrew Pinski <apinski@cavium.com>
19024
6fcebe79 19025 PR debug/51471
f148a434
UB
19026 * reorg.c (fill_slots_from_thread): Don't speculate
19027 frame-related insns.
243b92d1 19028
ef2be249
RS
190292012-01-09 Richard Sandiford <rdsandiford@googlemail.com>
19030
19031 * sched-int.h (bb_note): Move to...
19032 * basic-block.h: ...here.
19033 * haifa-sched.c (bb_note): Move to...
19034 * cfgrtl.c: ...here.
19035 * function.c (next_block_for_reg): New function.
19036 (move_insn_for_shrink_wrap): Likewise.
19037 (prepare_shrink_wrap): Rewrite to use the above.
19038
345ae177
AH
190392012-01-09 Aldy Hernandez <aldyh@redhat.com>
19040
19041 * gimple.c (is_gimple_non_addressable): Remove.
19042 * gimple.h: Remove is_gimple_non_addressable.
19043 * gimplify.c (gimplify_modify_expr_rhs): Use is_gimple_reg instead of
19044 is_gimple_non_addressable.
19045 * trans-mem.c (expand_assign_tm): Same.
19046
06468229
RG
190472012-01-09 Richard Guenther <rguenther@suse.de>
19048
19049 PR tree-optimization/51775
19050 * tree-ssa-sccvn.c (visit_use): Value-number throwing stmts.
19051 * tree-ssa-pre.c (eliminate): Properly fixup EH info.
19052
12aa62e9
MGD
190532012-01-09 Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
19054
19055 * config/arm/arm-cores.def (cortex-a15): Use cortex_a15_tune for
19056 tuning parameters.
19057 * config/arm/arm.c (arm_cortex_a15_tune): New static variable.
19058
fdff9f3d
RB
190592012-01-09 Richard Guenther <rguenther@suse.de>
19060
19061 * tree-streamer-out.c (write_ts_optimization): Fix spelling.
19062
d028561e
JH
190632012-01-08 Jan Hubicka <jh@suse.cz>
19064
19065 PR tree-optimize/51680
fdff9f3d
RB
19066 * ipa-inline-analyss.c (evaluate_properties_for_edge): Fix condition
19067 on when known_vals needs to be computed; cleanup.
d028561e 19068
4c8836c6
JH
190692012-01-08 Jan Hubicka <jh@suse.cz>
19070
19071 PR tree-optimize/51694
19072 * ipa-cp.c (ipa_get_indirect_edge_target): Add bounds checks.
19073
e478624f
JW
190742012-01-08 Jonathan Wakely <jwakely.gcc@gmail.com>
19075
19076 * doc/cpp.texi (Predefined Macros): __STRICT_ANSI__ is defined
19077 for -std=c++98 and -std=c++11 too.
19078
b78384e0
CLT
190792012-01-08 Chung-Lin Tang <cltang@codesourcery.com>
19080
19081 * cfgloop.c (cancel_loop): Add free() of bbs array.
19082
f45b2a8a
JH
190832012-01-07 Jan Hubicka <jh@suse.cz>
19084
19085 PR tree-optimization/51600
19086 * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Disable code
19087 that benefits small functions.
19088
190892012-01-07 Jan Hubicka <jh@suse.cz>
19090
19091 * ipa-inline.c (want_inline_small_function_p): Fix formating.
19092
db22a743
JH
190932012-01-07 Jan Hubicka <jh@suse.cz>
19094
19095 PR tree-optimization/51680
19096 * ipa-inline.c (want_inline_small_function_p): Be more lax on functions
19097 whose inlining reduce unit size.
19098
faead9f7
AO
190992012-01-07 Alexandre Oliva <aoliva@redhat.com>
19100
19101 PR bootstrap/51725
19102 * cselib.c (new_elt_loc_list): Promote addr_list to canonical node.
19103 Add canonical node to containing_mem chain after the non-canonical
19104 one, even if there weren't any locs to propagate.
19105 (remove_useless_values): Keep only canonical values.
19106 (add_mem_for_addr, cselib_lookup_mem): Canonicalize addr.
19107 (cselib_invalidate_mem): Likewise. Ensure v is canonical, and
19108 canonicalize mem_chain elements that are not discarded.
19109
b71d7f85
JJ
191102012-01-06 Jakub Jelinek <jakub@redhat.com>
19111
0850f694
JJ
19112 PR target/47333
19113 * cgraphunit.c (cgraph_optimize): Call output_weakrefs
19114 before emitting functions.
19115
b71d7f85
JJ
19116 PR gcov-profile/50127
19117 * bb-reorder.c (partition_hot_cold_basic_blocks): Call
19118 clear_aux_for_blocks.
19119
7483eef8
AO
191202012-01-06 Alexandre Oliva <aoliva@redhat.com>
19121
19122 PR debug/51746
19123 * cselib.c (cselib_hash_rtx): Hash incoming VALUEs too.
19124
86d71fca
AC
191252012-01-06 Arnaud Charlet <charlet@adacore.com>
19126
19127 * c-decl.c (ext_block): Moved up.
19128 (collect_all_refs, for_each_global_decl): Take ext_block into account.
19129
17719d09
HS
191302012-01-06 Han Shen <shenhan@google.com>
19131
19132 Translate built-in include paths for sysroot.
19133 * Makefile.in (gcc_gxx_include_dir_add_sysroot): New.
19134 (PREPROCESSOR_DEFINES): Define GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT.
19135
19136 * cppdefault.c (cpp_include_defaults): Replace hard coded "0" with
19137 GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT for "add_sysroot" field.
19138
19139 * configure.ac (AC_SUBST): Add gcc_gxx_include_dir_add_sysroot to
19140 control whether sysroot should be prepended to gxx include dir.
19141
19142 * configure: Regenerate.
19143
b0c99997
TR
191442012-01-06 Torvald Riegel <triegel@redhat.com>
19145
19146 PR rtl-optimization/51771
f148a434 19147 * builtin-attrs.def (ATTR_RETURNS_TWICE, ATTR_TM_NOTHROW_RT_LIST): New.
b0c99997
TR
19148 * gtm-builtins.def (BUILT_IN_TM_START): Add returns-twice attrib.
19149
c3e686a3
EB
191502012-01-05 Eric Botcazou <ebotcazou@adacore.com>
19151
19152 PR tree-optimization/51315
19153 * tree-sra.c (tree_non_aligned_mem_for_access_p): New predicate.
19154 (build_accesses_from_assign): Use it instead of tree_non_aligned_mem_p.
19155
2d130b31
UB
191562012-01-05 Uros Bizjak <ubizjak@gmail.com>
19157
19158 PR target/51681
19159 * config/ia64/ia64.c (expand_vec_perm_shrp): Use correct operands
19160 for shrp pattern. Correctly handle and fixup shift variable.
19161 Return false when shift > nelt for BYTES_BIG_ENDIAN target.
19162
f8f75b16
JJ
191632012-01-05 Jakub Jelinek <jakub@redhat.com>
19164
19165 PR debug/51762
19166 * calls.c (emit_call_1): For noreturn calls force a REG_ARGS_SIZE
19167 note when !ACCUMULATE_OUTGOING_ARGS.
19168
629c2cca
EB
191692012-01-05 Eric Botcazou <ebotcazou@adacore.com>
19170
19171 * tree-vrp.c (extract_range_from_binary_expr_1): Remove duplicated
19172 condition.
19173 (extract_range_from_unary_expr_1): Avoid useless computations.
19174
1e69d24e
JJ
191752012-01-05 Jakub Jelinek <jakub@redhat.com>
19176
a3e6a37b
JJ
19177 PR rtl-optimization/51767
19178 * cfgrtl.c (force_nonfallthru_and_redirect): Force addition
19179 of jump_block and add an extra edge for degenerated asm gotos.
19180
36363ebb
JJ
19181 PR middle-end/51768
19182 * stmt.c (check_unique_operand_names): Don't ICE during error
19183 reporting if i is from labels chain.
19184
1e69d24e
JJ
19185 PR middle-end/44777
19186 * profile.c (branch_prob): Split bbs that have exit edge
19187 and need a fake entry edge too.
19188
56494762
JH
191892012-01-05 Jan Hubicka <jh@suse.cz>
19190
19191 PR middle-end/49710
19192 * cfgloopmanip.c (remove_path): Walk loop hiearchy upwards when
19193 unlooping loops.
19194
10d12a3e
RG
191952012-01-05 Richard Guenther <rguenther@suse.de>
19196
19197 PR lto/50490
19198 * tree-streamer-out.c (write_ts_optimization): New function.
19199 (streamer_write_tree_body): Call it.
19200 * tree-streamer-in.c (lto_input_ts_optimization): New function.
19201 (streamer_read_tree_body): Call it.
19202 * lto-streamer-out.c (lto_is_streamable): Handle OPTIMIZATION_NODE.
19203
32be32af
JJ
192042012-01-05 Jakub Jelinek <jakub@redhat.com>
19205
19206 PR middle-end/51761
2d130b31 19207 * gimple.h (struct gimplify_ctx): Add in_cleanup_point_expr field.
32be32af
JJ
19208 * gimplify.c (gimplify_cleanup_point_expr): Save and set
19209 in_cleanup_point_expr before gimplify_stmt call and restore it
19210 afterwards.
19211 (gimplify_target_expr): Don't add {CLOBBER} cleanup if
19212 in_cleanup_point_expr is false.
19213
5720c0dc
RG
192142012-01-05 Richard Guenther <rguenther@suse.de>
19215
19216 PR middle-end/51764
19217 * common.opt (Wmudflap, fmudflap, fmudflapth, fmudflapir): Move
19218 to c.opt.
19219 * toplev.c (process_options): Reject combining mudflap and LTO.
19220 * tree-nomudflap.c (nogo): Use sorry instead of internal_error.
19221
6ad024b4
RG
192222012-01-05 Richard Guenther <rguenther@suse.de>
19223
19224 PR tree-optimization/51760
19225 * tree-ssa-ccp.c (likely_value): Drop UNDEFINED to CONSTANT,
19226 not VARYING.
19227 (bit_value_unop): Handle UNDEFINED operands.
19228 (bit_value_binop): Likewise.
19229
543a341c
GJL
192302012-01-05 Georg-Johann Lay <avr@gjlay.de>
19231
19232 * config/avr/avr.c (avr_replace_prefix): Remove.
19233 (avr_asm_named_section): Use ACONCAT instead of avr_replace_prefix.
19234 (avr_asm_function_rodata_section): Ditto.
19235 (avr_asm_select_section): Ditto.
19236
6bfd2688
MS
192372012-01-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
19238
19239 * reload.c (find_reloads): Adjust LABEL_NUSES on REG_LABEL_OPERAND
19240 insertion.
19241
cbd65133
JJ
192422012-01-05 Jakub Jelinek <jakub@redhat.com>
19243
bfeb0869
JJ
19244 PR bootstrap/51648
19245 * tree-cfg.c (need_fake_edge_p): Return true also for noreturn
19246 calls that have any non-fake successor edges.
19247
cbd65133
JJ
19248 PR debug/51746
19249 * var-tracking.c (add_stores): For COND_EXEC allow oval to be NULL.
19250
8594273a
EB
192512012-01-04 Eric Botcazou <ebotcazou@adacore.com>
19252
19253 PR tree-optimization/51624
19254 * tree-sra.c (build_ref_for_model): When replicating a chain of
19255 COMPONENT_REFs, stop as soon as the offset would become negative.
19256
5dc28f42
JJ
192572012-01-04 Jakub Jelinek <jakub@redhat.com>
19258
19259 PR debug/51695
19260 * dwarf2out.c (output_loc_list): For now drop >= 64KB expressions
19261 in .debug_loc on the floor.
19262
03a9ba1e
AP
192632012-01-04 Andrew Pinski <apinski@cavium.com>
19264
19265 * doc/invoke.texi (-march=@var{arch}): Add octeon+ and octeon2.
19266
770da00a
AP
192672012-01-04 Andrew Pinski <apinski@cavium.com>
19268 Adam Nemet <anemet@caviumnetworks.com>
19269
19270 * config/mips/mips.md (size): Add SI and DI.
19271 (SIZE): New mode attribute.
19272 (U): New code attribute.
19273 * config/mips/mips-dsp.md (mips_lbux): Use gen_mips_lbux_extsi.
19274 (mips_lbux_<mode>): Delete.
19275 (mips_l<SHORT:size><u>x_ext<GPR:mode>_<P:mode>): New pattern.
19276 (mips_lhx): Use gen_mips_lhx_extsi.
19277 (mips_lhx_<mode>): Delete.
19278 (mips_lwx): Delete.
19279 (mips_l<size>x): New expand.
19280 (mips_lwx_<mode>): Delete.
19281 (mips_l<GPR:size>x_<P:mode>): New pattern.
19282 (*mips_lw<u>x_<P:mode>_ext): Likewise.
19283 * config/mips/mips-ftypes.def: Add DI f(POINTER, SI) function type.
19284 * config/mips/mips.c (mips_lx_address_p): New function.
19285 (mips_rtx_costs <case MEM>): Call mips_lx_address_p.
19286 (dsp64): New availability predicate.
19287 (mips_builtins): Add an entry for __builtin_mips_ldx.
19288 * config/mips/mips.h (ISA_HAS_LBX): New define.
19289 (ISA_HAS_LBUX): Likewise.
19290 (ISA_HAS_LHX): Likewise.
19291 (ISA_HAS_LHUX): Likewise.
19292 (ISA_HAS_LWX): Likewise.
19293 (ISA_HAS_LWUX): Likewise.
19294 (ISA_HAS_LDX): Likewise.
19295 * doc/extend.texi (__builtin_mips_ldx): Document.
19296
e2b30a44
TG
192972012-01-04 Tristan Gingold <gingold@adacore.com>
19298
19299 * config/vms/xm-vms.h (HOST_LONG_FORMAT, HOST_PTR_PRINTF): Define
19300 when long pointers are used.
19301 * config.build (*-*-*vms*): Handle all OpenVMS targets.
19302 (alpha64-dec-*vms*, alpha*-dec-*vms*)
19303 (ia64-hp-*vms*): Remove.
19304 * config/vms/xm-vms64.h: Delete.
19305
713b8dfb
AH
193062012-01-04 Aldy Hernandez <aldyh@redhat.com>
19307
19308 PR middle-end/51472
19309 * trans-mem.c (expand_assign_tm): Handle TM_MEMMOVE loads correctly.
19310
7ba65723
AH
193112012-01-04 Aldy Hernandez <aldyh@redhat.com>
19312
b6aa8c33 19313 * opts.c (finish_options): Remove duplicate sorry.
7ba65723 19314
3a54c456
AH
193152012-01-04 Aldy Hernandez <aldyh@redhat.com>
19316
19317 PR middle-end/51696
19318 * trans-mem.c (diagnose_tm_1): Display indirect calls with no name
19319 correctly.
19320
f5a3d840
RG
193212012-01-04 Richard Guenther <rguenther@suse.de>
19322
19323 PR middle-end/51750
19324 * tree.c (size_low_cst): New function.
19325 * tree.h (size_low_cst): Declare.
19326 * fold-const.c (fold_comparison): Use it to extract the low
19327 part of the POINTER_PLUS_EXPR offset.
19328
299c4b5f
GJL
193292012-01-04 Georg-Johann Lay <avr@gjlay.de>
19330
19331 Fix clearing ZERO_REG
19332 * config/avr/avr.md (cc): Add alternative "ldi".
19333 (movqi_insn): Use it in cc attribute.
19334 * config/avr/avr.c (notice_update_cc): Handle CC_LDI.
19335 (output_reload_in_const): Use CLR to move 0 to ZERO_REG.
19336 (output_reload_insisf): Use ZERO_REG to pre-clear register.
19337
925b0ed8
AK
193382012-01-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19339
19340 * configure: Regenerate.
19341
b4cf8c9d
RG
193422012-01-04 Richard Guenther <rguenther@suse.de>
19343
19344 PR tree-optimization/49651
19345 * tree-ssa-structalias.c (type_can_have_subvars): New function.
19346 (var_can_have_subvars): Use it.
2d130b31 19347 (get_constraint_for_1): Only consider subfields if there can be any.
b4cf8c9d 19348
c067f6cf
JJ
193492012-01-03 Jakub Jelinek <jakub@redhat.com>
19350
e30afafb 19351 PR bootstrap/51725
2d130b31
UB
19352 * cselib.c (new_elt_loc_list): When moving locs from one cselib_val
19353 to its new canonical_cselib_val and the cselib_val was in
19354 first_containing_mem chain, but the canonical_cselib_val was not,
19355 add the latter into the chain.
e30afafb
JJ
19356 (cselib_invalidate_mem): Compare canonical_cselib_val of
19357 addr_list chain elt with v.
19358
c067f6cf
JJ
19359 PR pch/51722
19360 * dwarf2out.c (dwarf2out_start_source_file, dwarf2out_define,
19361 dwarf2out_undef): Allocate e.info using ggc_strdup instead
19362 of xstrdup.
19363 (output_macinfo_op): Don't ggc_strdup fd->filename.
19364 (optimize_macinfo_range): Allocate grp_name using XALLOCAVEC,
19365 then ggc_strdup it. Don't free inc->info or cur->info.
19366 (output_macinfo): Don't free ref->info or file->info.
19367
5d2eb24b
IR
193682012-01-03 Ira Rosen <irar@il.ibm.com>
19369
19370 PR tree-optimization/51269
19371 * tree-vect-loop-manip.c (set_prologue_iterations): Make
19372 first_niters a pointer.
19373 (slpeel_tree_peel_loop_to_edge): Likewise.
19374 (vect_do_peeling_for_loop_bound): Update call to
19375 slpeel_tree_peel_loop_to_edge.
19376 (vect_gen_niters_for_prolog_loop): Don't compute wide_prolog_niters
19377 here. Remove it from the parameters list.
19378 (vect_do_peeling_for_alignment): Update calls and compute
19379 wide_prolog_niters.
19380
c3e85659
RG
193812012-01-03 Richard Guenther <rguenther@suse.de>
19382
19383 PR tree-optimization/51070
19384 * tree-loop-distribution.c (stmt_has_scalar_dependences_outside_loop):
19385 Properly handle calls.
19386
f1749ec1
RG
193872012-01-03 Richard Guenther <rguenther@suse.de>
19388
19389 PR tree-optimization/51692
19390 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not remove
19391 the LHS of allocation stmts.
19392
75291c57
OH
193932012-01-03 Olivier Hainque <hainque@adacore.com>
19394
19395 * system.h: Prior to #define, #undef fopen and freopen unconditionally.
19396
6588d711
OH
193972012-01-03 Olivier Hainque <hainque@adacore.com>
19398
19399 * collect2.c (main): In AIX specific computations for vector
19400 insertions, use CONST_CAST2 to cast from char ** to const char **.
19401
f3321fd7
RG
194022012-01-03 Richard Guenther <rguenther@suse.de>
19403
19404 PR debug/51650
19405 * dwarf2out.c (dwarf2out_finish): Always create a DIE for
19406 the context of a limbo DIE when it does not already exist.
19407
a9730200
JJ
194082012-01-03 Jakub Jelinek <jakub@redhat.com>
19409
19410 PR tree-optimization/51719
19411 * value-prof.c (gimple_ic): When indirect call isn't noreturn,
19412 but direct call is, clear direct call's lhs and don't add fallthrough
19413 edge from dcall_bb to join_bb and PHIs.
19414
be5de7a1
AK
194152012-01-03 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
19416
19417 * config/s390/s390.md ("*cmp<mode>_ccs"): Fix comment mentioning
19418 the instructions emitted by the pattern.
19419 ("*TDC_insn_<mode>"): Add comment.
19420
8b3c2951
RG
194212012-01-03 Richard Guenther <rguenther@suse.de>
19422
19423 PR middle-end/51730
19424 * fold-const.c (fold_comparison): Properly canonicalize
19425 tree offset and HOST_WIDE_INT bit position.
19426
96fda42c
UB
194272012-01-02 Uros Bizjak <ubizjak@gmail.com>
19428
19429 * config/ia64/ia64.c (expand_vec_perm_broadcast): Use correct
19430 operands for extzv pattern.
19431
a4f436ff
JJ
194322012-01-02 Jakub Jelinek <jakub@redhat.com>
19433
19434 PR bootstrap/51725
19435 * cselib.c (add_mem_for_addr): Call canonical_cselib_val
19436 on mem_elt first.
19437
842322d3
SL
194382012-01-02 Sandra Loosemore <sandra@codesourcery.com>
19439
19440 * doc/invoke.texi (-flto and related options): Copy-edit.
19441
21e8e84d
RS
194422012-01-02 Richard Sandiford <rdsandiford@googlemail.com>
19443
96fda42c 19444 * config/mips/mips.md (loadgp_newabi_<mode>): Add missing earlyclobber.
21e8e84d 19445
06046046
JJ
194462012-01-02 Jakub Jelinek <jakub@redhat.com>
19447
19448 * config/i386/sse.md (*avx2_gatherdi<mode>_3, *avx2_gatherdi<mode>_4):
19449 New patterns.
19450
0d8f5d62
RS
194512012-01-02 Richard Sandiford <rdsandiford@googlemail.com>
19452
19453 * expr.h (move_by_pieces_ninsns): Declare.
19454 * expr.c (move_by_pieces_ninsns): Make external.
19455 * config/mips/mips-protos.h (mips_move_by_pieces_p): Declare.
19456 (mips_store_by_pieces_p): Likewise.
19457 * config/mips/mips.h (MOVE_BY_PIECES_P): Call mips_move_by_pieces_p.
19458 (STORE_BY_PIECES_P): Likewise mips_store_by_pieces_p.
19459 * config/mips/mips.c (mips_move_by_pieces_p): New function.
19460 (mips_store_by_pieces_p): Likewise.
19461
9f929ce6
JJ
194622012-01-02 Jakub Jelinek <jakub@redhat.com>
19463
19464 * passes.c (register_one_dump_file): Free full_name.
19465
96fda42c 19466 * reload1.c (reload): Don't allocate reg_max_ref_width here.
9f929ce6
JJ
19467 (calculate_elim_costs_all_insns): Free offsets_at and
19468 offsets_known_at at the end and clear the pointers.
19469
ce23293b
GJL
194702012-01-02 Georg-Johann Lay <avr@gjlay.de>
19471
19472 * config/avr/avr.opt (-mbranch-cost): Fix double definition of
19473 this option introduced in r180739.
19474
884f56d1
GJL
194752012-01-02 Georg-Johann Lay <avr@gjlay.de>
19476
19477 PR target/51345
19478 * config.gcc (tm_file target=avr]): Add avr/avr-multilib.h
19479 (tmake_file target=avr): Add avr/t-multilib.
19480
19481 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use AVR_HAVE_8BIT_SP
19482 to built-in define __AVR_HAVE_8BIT_SP__, __AVR_HAVE_16BIT_SP__.
19483 * config/avr/genmultilib.awk: New file.
19484 * config/avr/t-multilib: New auto-generated file.
19485 * config/avr/multilib.h: New auto-generated file.
19486 * config/avr/t-avr (AVR_MCUS): New variable.
19487 (genopt.sh): Use it.
19488 (s-mlib): Depend on t-multilib.
19489 (t-multilib, multilib.h): New dependencies.
19490 (s-avr-mlib): New rule to build t-multilib, multilib.h from AVR_MCUS.
19491 (MULTILIB_OPTIONS): Remove.
19492 (MULTILIB_MATCHES): Remove.
19493 (MULTILIB_DIRNAMES): Remove.
19494 (MULTILIB_EXCEPTIONS): Remove:
19495 * config/avr/genopt.sh: Don't use hard coded file name;
19496 pass AVR_MCUS from t-avr instead.
19497
9ecd3a64
GJL
194982012-01-02 Georg-Johann Lay <avr@gjlay.de>
19499
19500 * config/avr/avr.c (avr_out_ashrpsi3): Fix "case 31" to "case 23".
19501
8c57e547
GJL
195022012-01-02 Georg-Johann Lay <avr@gjlay.de>
19503
19504 Implement light-weight DImode support.
19505 * config/avr/avr-dimode.md: New file.
19506 * config/avr/avr.md: Include it.
19507 (adjust_len): Add plus64, compare64.
19508 (HIDI): Remove code iterator.
19509 (code_stdname): New code attribute.
19510 (rotx, rotsmode): Remove DI.
19511 (rotl<mode>3, *rotw<mode>, *rotb<mode>): Use HISI instead of HIDI
19512 as code iterator.
19513 * config/avr/avr-protos.h (avr_have_dimode): New.
19514 (avr_out_plus64, avr_out_compare64): New.
19515 * config/avr/avr.c (avr_out_compare): Handle DImode.
19516 (avr_have_dimode): New variable definition and initialization.
19517 (avr_out_compare64, avr_out_plus64): New functions.
19518 (avr_out_plus_1): Use simplify_unary_operation to negate xval.
19519 (adjust_insn_length): Handle ADJUST_LEN_COMPARE64, ADJUST_LEN_PLUS64.
19520 (avr_compare_pattern): Skip DImode comparisons.
19521
8b61e863
RE
195222012-01-02 Revital Eres <revital.eres@linaro.org>
19523
19524 * ddg.c (def_has_ccmode_p): New function.
19525 (add_cross_iteration_register_deps,
19526 create_ddg_dep_from_intra_loop_link): Call it.
19527
ba768e18
RG
195282012-01-02 Richard Guenther <rguenther@suse.de>
19529
19530 PR other/51679
19531 * invoke.texi (fassociative-math): Remove spurious paranthesis.
19532
66f1b195
JJ
195332012-01-01 Jakub Jelinek <jakub@redhat.com>
19534
19535 * gcc.c (process_command): Update copyright notice dates.
19536 * gcov.c (print_version): Likewise.
19537 * gcov-dump.c (print_version): Likewise.
19538 * mips-tfile.c (main): Likewise.
19539 * mips-tdump.c (main): Likewise.
19540
f2c74cc4
IR
195412012-01-01 Ira Rosen <irar@il.ibm.com>
19542
19543 PR tree-optimization/51704
19544 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Check that
96fda42c 19545 a use is inside the basic block or loop before accessing its vect info.
f2c74cc4 19546
06f1716b
JH
195472012-01-01 Jan Hubicka <jhjh@suse.cz>
19548
19549 PR rtl-optimization/51069
19550 * cfgloopmanip.c (remove_path): Removing path making irreducible
19551 region unconditional makes BB part of the region.
19552
45a5b21a
JJ
195532012-01-01 Jakub Jelinek <jakub@redhat.com>
19554
19555 PR tree-optimization/51683
19556 * tree-ssa-propagate.c (substitute_and_fold): Don't optimize away
19557 calls with side-effects.
19558 * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
ad41bd84 19559\f
a7f45047 19560Copyright (C) 2012 Free Software Foundation, Inc.
ad41bd84
JM
19561
19562Copying and distribution of this file, with or without modification,
19563are permitted in any medium without royalty provided the copyright
19564notice and this notice are preserved.