b5a4141202dfea28279097c7c97b66d27929ff5a
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2011-01-26  Dave Korn  <dave.korn.cygwin@gmail.com>
2
3         * tree.c (handle_dll_attribute): Handle it.
4         * doc/extend.texi (@item dllexport): Mention it.
5         * doc/invoke.texi (@item -fno-keep-inline-dllexport): Document it.
6
7 2011-01-25  Ian Lance Taylor  <iant@google.com>
8
9         PR tree-optimization/26854
10         * c-decl.c (struct c_scope): Add field has_jump_unsafe_decl.
11         (decl_jump_unsafe): Move higher in file, with no other change.
12         (bind): Set has_jump_unsafe_decl if appropriate.
13         (update_label_decls): Test has_jump_unsafe_decl to avoid loop.
14         (check_earlier_gotos): Likewise.
15         (c_check_switch_jump_warnings): Likewise.
16
17 2011-01-25  Jonathan Wakely  <jwakely.gcc@gmail.com>
18
19         * doc/invoke.texi (Warning Options): Add missing hyphen.
20         (-fprofile-dir): Minor grammatical fixes.
21         (-fbranch-probabilities): Likewise.
22
23 2011-01-25  Alexandre Oliva  <aoliva@redhat.com>
24
25         PR debug/45136
26         PR debug/45130
27         * haifa-sched.c (get_ebb_head_tail): Move notes across boundary
28         debug insns.
29         (no_real_insns_p, schedule_block, set_priorities): Drop special
30         treatment of boundary debug insns.
31         * sched-deps.c (sd_init_insn, sd_finish_insn): Don't mark debug
32         insns.
33         * sched-ebb.c (schedule_ebbs): Don't skip debug insns.
34         * sched-int.h (DEBUG_INSN_SCHED_P): Remove.
35         (BOUNDARY_DEBUG_INSN_P): Likewise.
36         (SCHEDULE_DEBUG_INSN_P): Likewise.
37         * sched-rgn.c (init_ready_list): Drop special treatment of
38         boundary debug insns.
39         * final.c (rest_of_clean-state): Clear notes' BB.
40
41 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
42
43         * Makefile.in (LAMBDA_H): Removed.
44         (TREE_DATA_REF_H): Remove dependence on LAMBDA_H.
45         (OBJS-common): Remove dependence on lambda-code.o, lambda-mat.o,
46         lambda-trans.o, and tree-loop-linear.o.
47         (lto-symtab.o): Remove dependence on LAMBDA_H.
48         (tree-loop-linear.o): Remove rule.
49         (lambda-mat.o): Same.
50         (lambda-trans.o): Same.
51         (lambda-code.o): Same.
52         (tree-vect-loop.o): Add missing dependence on TREE_DATA_REF_H.
53         (tree-vect-slp.o): Same.
54         * hwint.h (gcd): Moved here.
55         (least_common_multiple): Same.
56         * lambda-code.c: Removed.
57         * lambda-mat.c: Removed.
58         * lambda-trans.c: Removed.
59         * lambda.h: Removed.
60         * tree-loop-linear.c: Removed.
61         * lto-symtab.c: Do not include lambda.h.
62         * omega.c (gcd): Removed.
63         * passes.c (init_optimization_passes): Remove pass_linear_transform.
64         * tree-data-ref.c (print_lambda_vector): Moved here.
65         (lambda_vector_copy): Same.
66         (lambda_matrix_copy): Same.
67         (lambda_matrix_id): Same.
68         (lambda_vector_first_nz): Same.
69         (lambda_matrix_row_add): Same.
70         (lambda_matrix_row_exchange): Same.
71         (lambda_vector_mult_const): Same.
72         (lambda_vector_negate): Same.
73         (lambda_matrix_row_negate): Same.
74         (lambda_vector_equal): Same.
75         (lambda_matrix_right_hermite): Same.
76         * tree-data-ref.h: Do not include lambda.h.
77         (lambda_vector): Moved here.
78         (lambda_matrix): Same.
79         (dependence_level): Same.
80         (lambda_transform_legal_p): Removed declaration.
81         (lambda_collect_parameters): Same.
82         (lambda_compute_access_matrices): Same.
83         (lambda_vector_gcd): Same.
84         (lambda_vector_new): Same.
85         (lambda_vector_clear): Same.
86         (lambda_vector_lexico_pos): Same.
87         (lambda_vector_zerop): Same.
88         (lambda_matrix_new): Same.
89         * tree-flow.h (least_common_multiple): Removed declaration.
90         * tree-parloops.c (lambda_trans_matrix): Moved here.
91         (LTM_MATRIX): Same.
92         (LTM_ROWSIZE): Same.
93         (LTM_COLSIZE): Same.
94         (LTM_DENOMINATOR): Same.
95         (lambda_trans_matrix_new): Same.
96         (lambda_matrix_vector_mult): Same.
97         (lambda_transform_legal_p): Same.
98         * tree-pass.h (pass_linear_transform): Removed declaration.
99         * tree-ssa-loop.c (tree_linear_transform): Removed.
100         (gate_tree_linear_transform): Removed.
101         (pass_linear_transform): Removed.
102         (gate_graphite_transforms): Make flag_tree_loop_linear an alias of
103         flag_loop_interchange.
104
105 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
106
107         PR tree-optimization/47265
108         PR tree-optimization/47443
109         * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
110         if name still has some uses.
111
112 2011-01-25  Martin Jambor  <mjambor@suse.cz>
113
114         PR tree-optimization/47382
115         * gimple-fold.c (gimple_fold_obj_type_ref_call): Removed.
116         (gimple_fold_call): Do not call gimple_fold_obj_type_ref_call.
117
118 2011-01-25  Joel Sherrill <joel.sherrill@oarcorp.com>
119
120         * config/m32r/m32r.c: Define TARGET_EXCEPT_UNWIND_INFO to
121         sjlj_except_unwind_info.
122
123 2011-01-25  Richard Guenther  <rguenther@suse.de>
124
125         PR tree-optimization/47426
126         * tree-ssa-structalias.c (ipa_pta_execute): Make externally
127         visible functions results escape.
128
129 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
130
131         PR target/45701
132         * config/arm/arm.c (any_sibcall_uses_r3): New function.
133         (arm_get_frame_offsets): Use it.
134
135 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
136             Jakub Jelinek  <jakub@redhat.com>
137
138         PR tree-optimization/47271
139         * tree-if-conv.c (bb_postdominates_preds): New.
140         (if_convertible_bb_p): Call bb_postdominates_preds.
141         (if_convertible_loop_p_1): Compute CDI_POST_DOMINATORS.
142         (predicate_scalar_phi): Call bb_postdominates_preds.
143
144 2011-01-25  Nick Clifton  <nickc@redhat.com>
145
146         * config/rx/rx.h (LIBCALL_VALUE): Do not promote complex types.
147         * config/rx/rx.c (rx_function_value): Likewise.
148         (rx_promote_function_mode): Likewise.
149         (gen_safe_add): Place an outsized immediate value inside an UNSPEC
150         in order to make it legitimate.
151         * config/rx/rx.md (adddi3_internal): If the second operand is a
152         MEM make sure that the first operand is the same as the result
153         register.
154         (addsi3_unspec): Delete.
155         (subdi3): Do not accept immediate operands.
156         (subdi3_internal): Likewise.
157
158 2011-01-25  Jeff Law  <law@redhat.com>
159
160         PR rtl-optimization/37273
161         * ira-costs.c (scan_one_insn): Detect constants living in memory and
162         handle them like argument loads from stack slots.  Do not double
163         count memory for memory constants and argument loads from stack slots.
164
165 2011-01-25  Jakub Jelinek  <jakub@redhat.com>
166
167         PR tree-optimization/47427
168         PR tree-optimization/47428
169         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't
170         coalesce if the new root var would be TREE_READONLY.
171
172 2011-01-25  Richard Guenther  <rguenther@suse.de>
173
174         PR middle-end/47414
175         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Use the
176         correct type for TBAA.
177
178 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
179
180         * graphite-sese-to-poly.c (dr_indices_valid_in_loop): New.
181         (close_phi_written_to_memory): Call for_each_index with
182         dr_indices_valid_in_loop.
183
184 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
185
186         * graphite-sese-to-poly.c (new_pbb_from_pbb): Only copy PBB_DOMAIN
187         when it is initialized.
188
189 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
190
191         * graphite-scop-detection.c (stmt_has_simple_data_refs_p): Update
192         call to graphite_find_data_references_in_stmt.
193         * graphite-sese-to-poly.c (outermost_loop_in_sese_1): New.
194         (try_generate_gimple_bb): Call outermost_loop_in_sese_1.  Update
195         call to graphite_find_data_references_in_stmt.
196         (analyze_drs_in_stmts): Same.
197         * tree-data-ref.c (dr_analyze_indices): Pass in parameter the loop
198         in which the scalar analysis of indices is performed.
199         (create_data_ref): Same.  Update call to dr_analyze_indices.
200         (find_data_references_in_stmt): Update call to create_data_ref.
201         (graphite_find_data_references_in_stmt): Same.
202         * tree-data-ref.h (graphite_find_data_references_in_stmt): Update
203         declaration.
204         (create_data_ref): Same.
205         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Update
206         call to create_data_ref.
207
208 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
209
210         * graphite-sese-to-poly.c (build_poly_scop): Move
211         rewrite_commutative_reductions_out_of_ssa before
212         find_scop_parameters.
213
214 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
215
216         * graphite-sese-to-poly.c (close_phi_written_to_memory): Also allow
217         VAR_DECL, PARM_DECL, and RESULT_DECL.
218
219 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
220
221         * graphite-dependences.c (reduction_dr_1): Allow several reductions
222         in a reduction PBB.
223         * graphite-sese-to-poly.c (split_reduction_stmt): Do not split PBBs
224         that have already been marked as PBB_IS_REDUCTION.
225
226 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
227
228         * graphite-scop-detection.c (same_close_phi_node): New.
229         (remove_duplicate_close_phi): New.
230         (make_close_phi_nodes_unique): New.
231         (canonicalize_loop_closed_ssa): Call make_close_phi_nodes_unique.
232
233 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
234
235         * graphite-dependences.c (new_poly_ddr): Call same_pdr_p.
236         * graphite-poly.h (same_pdr_p): Do not expect that the PDR_TYPE
237         of both data references to be the same.
238
239 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
240
241         * graphite-dependences.c (build_lexicographical_constraint): Remove the
242         gdim parameter.
243         (build_lexicographical_constraint): Adjust call to ppl_powerset_is_empty.
244         (dependence_polyhedron): Same.
245         (graphite_legal_transform_dr): Same.
246         (graphite_carried_dependence_level_k): Same.
247         * graphite-ppl.c (ppl_powerset_is_empty): Remove the nb_params parameter.
248         * graphite-ppl.h (ppl_powerset_is_empty): Adjust declaration.
249
250 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
251
252         * graphite-sese-to-poly.c
253         (translate_scalar_reduction_to_array_for_stmt): Call unshare_expr.
254         (close_phi_written_to_memory): New.
255         (translate_scalar_reduction_to_array): Call close_phi_written_to_memory
256         and unshare_expr.
257
258 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
259
260         * doc/install.texi: Update the expected version number of PPL to 0.11.
261         * graphite-ppl.c (ppl_powerset_is_empty): Remove now dead code under
262         #if PPL_VERSION_MINOR < 11.
263
264 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
265
266         * graphite-dependences.c: Include graphite-cloog-util.h.
267         (new_poly_ddr): Inlined into dependence_polyhedron.
268         (free_poly_ddr): Moved close by new_poly_ddr.
269         (dependence_polyhedron_1): Renamed dependence_polyhedron.
270         Early return NULL when ppl_powerset_is_empty returns true.
271         (dependence_polyhedron): Renamed new_poly_ddr.  Call only once
272         poly_drs_may_alias_p.  Avoid one call to ppl_powerset_is_empty.
273         (graphite_legal_transform_dr): Call new_poly_ddr.
274         (graphite_carried_dependence_level_k): Same.
275         (dot_original_deps_stmt_1): Renamed dot_deps_stmt_2.  Use new_poly_ddr.
276         (dot_transformed_deps_stmt_1): Removed.
277         (dot_deps_stmt_1): Call dot_deps_stmt_2.
278         (dot_original_deps): Renamed dot_deps_2.  Call new_poly_ddr.
279         (dot_deps_1): Call dot_deps_2.
280         * Makefile.in (graphite-dependences.o): Add missing dependence on
281         graphite-cloog-util.h.
282
283 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
284
285         * graphite-dependences.c (new_poly_dr): Call ppl_powerset_is_empty.
286         (build_lexicographical_constraint): Same.
287         (dependence_polyhedron_1): Same.
288         (graphite_legal_transform_dr): Same.
289         (graphite_carried_dependence_level_k): Same.
290         * graphite-ppl.c (ppl_powerset_is_empty): New.
291         * graphite-ppl.h (ppl_powerset_is_empty): Declared.
292         * tree-data-ref.c (dump_data_reference): Print the basic block index.
293
294 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
295
296         * graphite-dependences.c (build_pairwise_scheduling): Correctly compute
297         the "a followed by b" relation and document it.
298
299 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
300
301         * graphite-dependences.c (build_lexicographical_constraint): Stop the
302         iteration when the bag of constraints is empty.
303
304 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
305
306         * graphite-poly.c (pbb_remove_duplicate_pdrs): Make it work.
307
308 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
309
310         * graphite-interchange.c (lst_interchange_profitable_p): Takes a loop
311         nest and two loop depths as parameters.
312         (lst_try_interchange_loops): Call lst_interchange_profitable_p after
313         lst_perfect_nestify.
314
315 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
316
317         * graphite-dependences.c (print_pddr): Call
318         ppl_io_fprint_Pointset_Powerset_C_Polyhedron.
319
320 2011-01-25  Sebastian Pop  <sebastian.pop@amd.com>
321
322         * graphite-ppl.c (debug_gmp_value): New.
323         * graphite-ppl.h (debug_gmp_value): Declared.
324
325 2011-01-25  Tobias Grosser  <grosser@fim.uni-passau.de>
326
327         * doc/install.texi: Document availability of cloog-0.16.
328
329 2011-01-25  Vladimir Kargov  <kargov@gmail.com>
330
331         * graphite-scop-detection.c (canonicalize_loop_closed_ssa): Free
332         invalid postdominance info.
333
334 2011-01-24  Jan Hubicka  <jh@suse.cz>
335
336         PR c/21659
337         * doc/extend.texi (weak pragma): Drop claim that it must
338         appear before definition.
339         * varasm.c (merge_weak, declare_weak): Only sanity check
340         that DECL is not output at a time it is declared weak.
341
342 2011-01-24  Kenneth Zadeck  <zadeck@naturalbridge.com>
343
344         * machmode.def: Fixed comments.
345
346 2011-01-24  Kai Tietz  <kai.tietz@onevision.com>
347
348         * emit-rtl.c (reg_attrs_htab_hash): Replace long by intptr_t.
349
350 2011-01-24  Paul Koning  <ni1d@arrl.net>
351
352         * builtins.c (c_readstr): Fix byte order if BYTES_BIG_ENDIAN !=
353         WORDS_BIG_ENDIAN.
354
355 2011-01-24  H.J. Lu  <hongjiu.lu@intel.com>
356
357         PR target/46519
358         * config/i386/i386.c: Include sbitmap.h and fibheap.h.
359         (block_info): Add scanned and prev.
360         (move_or_delete_vzeroupper_2): Return if the basic block
361         has been scanned and the upper 128bit state is unchanged
362         from the last scan.
363         (move_or_delete_vzeroupper_1): Return true if the exit
364         state is changed.
365         (move_or_delete_vzeroupper): Visit basic blocks using the
366         work-list based algorithm based on vt_find_locations in
367         var-tracking.c.
368
369         * config/i386/t-i386: Also depend on sbitmap.h and $(FIBHEAP_H).
370
371 2011-01-24  Nick Clifton  <nickc@redhat.com>
372
373         * config/v850/v850.opt (mv850es): New option - alias for -mv850e1.
374         * config/v850/v850.h (ASM_SPEC): If -mv850es is specified pass
375         -mv850e1 to the assembler.  If -mv850e1 or -mv850es is specified
376         then define __v850e1__.
377         * doc/invoke.texi: Document -mv850es.
378
379 2011-01-24  Richard Henderson  <rth@redhat.com>
380
381         * config/rx/predicates.md (rx_fp_comparison_operator): Don't accept
382         compound unordered comparisons.
383         * config/rx/rx.c (rx_split_fp_compare): Remove.
384         * config/rx/rx-protos.h: Update.
385         * config/rx/rx.md (gcc_conds, rx_conds): Remove.
386         (cbranchsf4): Don't call rx_split_fp_compare.
387         (*cbranchsf4): Use rx_split_cbranch.
388         (*cmpsf): Don't accept "i" constraint.
389         (*conditional_branch): Only valid after reload.
390         (cstoresf4): Merge expander with insn.  Don't call rx_split_fp_compare.
391
392 2011-01-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
393
394         PR target/47385
395         * config/rs6000/altivec.md (vector constant splitters): Add
396         support for creating vector single precision constants if -mvsx is
397         used and we would create the constant using Altivec primitives.
398
399 2011-01-23  Bernd Schmidt  <bernds@codesourcery.com>
400             Richard Sandiford  <rdsandiford@googlemail.com>
401
402         PR rtl-optimization/47166
403         * reload1.c (emit_reload_insns): Disable the spill_reg_store
404         mechanism for PRE_MODIFY and POST_MODIFY.
405         (inc_for_reload): For PRE_MODIFY, return the insn that sets the
406         reloadreg.
407
408 2011-01-23  Andreas Schwab  <schwab@linux-m68k.org>
409
410         * compare-elim.c (maybe_select_cc_mode): Add ATTRIBUTE_UNUSED markers.
411
412 2011-01-22  Jan Hubicka  <jh@suse.cz>
413
414         PR lto/47333
415         * lto-cgraph.c (reachable_from_this_partition_p): Fix pasto.
416
417 2011-01-22  Jan Hubicka  <jh@suse.cz>
418
419         PR tree-optimization/43884
420         PR lto/44334
421         * predict.c (maybe_hot_frequency_p): Use entry block frequency as base.
422         * doc/invoke.texi (hot-bb-frequency-fraction): Update docs.
423
424 2011-01-22  Anatoly Sokolov  <aesok@post.ru>
425
426         * config/s390/s390.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
427         * config/s390/s390.c (s390_register_move_cost,
428         s390_memory_move_cost): New.
429         (TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.
430
431 2011-01-22  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
432
433         PR middle-end/47401
434         * except.c (sjlj_assign_call_site_values): Move setting the
435         crtl->uses_eh_lsda flag to ...
436         (sjlj_mark_call_sites): ... here.
437         (sjlj_emit_function_enter): Support NULL dispatch label.
438         (sjlj_build_landing_pads): In a function with no landing pads
439         that still has must-not-throw regions, generate code to register
440         a personality function with empty LSDA.
441
442 2011-01-21  Richard Henderson  <rth@redhat.com>
443
444         * config/rx/rx.c (TARGET_FLAGS_REGNUM): New.
445
446         * config/mn10300/mn10300.c (TARGET_FLAGS_REGNUM): New.
447
448         * compare-elim.c: New file.
449         * Makefile.in (OBJS-common): Add it.
450         (compare-elim.o): New.
451         * common.opt (fcompare-elim): New.
452         * opts.c (default_options_table): Add OPT_fcompare_elim.
453         * tree-pass.h (pass_compare_elim_after_reload): New.
454         * passes.c (init_optimization_passes): Add it.
455         * recog.h: Protect against re-inclusion.
456         * target.def (TARGET_FLAGS_REGNUM): New POD hook.
457         * doc/invoke.texi (-fcompare-elim): Document it.
458         * doc/tm.texi.in (TARGET_FLAGS_REGNUM): Document it.
459         * doc/tm.texi: Rebuild.
460
461 2011-01-22  Nick Clifton  <nickc@redhat.com>
462
463         * config/rx/rx.md (cstoresf4): Pass comparison operator to
464         rx_split_fp_compare.
465
466 2011-01-22  Nick Clifton  <nickc@redhat.com>
467
468         * config/rx/rx.md (UNSPEC_CONST): New.
469         (deallocate_and_return): Wrap the amount popped off the stack in
470         an UNSPEC_CONST in order to stop it being rejected by
471         -mmax-constant-size.
472         (pop_and_return): Add a "(return)" rtx.
473         (call): Drop the immediate operand.
474         (call_internal): Likewise.
475         (call_value): Likewise.
476         (call_value_internal): Likewise.
477         (sibcall_internal): Likewise.
478         (sibcall_value_internal): Likewise.
479         (sibcall): Likewise.  Generate an explicit call using
480         sibcall_internal.
481         (sibcall_value): Likewise.
482         (mov<>): FAIL if a constant operand is not legitimate.
483         (addsi3_unpsec): New pattern.
484
485         * config/rx/rx.c (rx_print_operand_address): Handle UNPSEC
486         CONSTs.
487         (ok_for_max_constant): New function.
488         (gen_safe_add): New function.
489         (rx_expand_prologue): Use gen_safe_add.
490         (rx_expand_epilogue): Likewise.
491         (rx_is_legitimate_constant): Use ok_for_max_constant.  Handle
492         UNSPEC CONSTs.
493
494 2011-01-21  Jeff Law  <law@redhat.com>
495
496         PR tree-optimization/47053
497         * tree-ssa-dse.c (need_eh_cleanup): New bitmap.
498         (dse_optimize_stmt): Set the appropriate bit in NEED_EH_CLEANUP when
499         statements are deleted.
500         (tree_ssa_dse): Allocate & free NEED_EH_CLEANUP.  If NEED_EH_CLEANUP
501         is nonempty, then purge dead edges and cleanup the CFG.
502
503 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
504
505         PR debug/47402
506         Temporarily revert:
507         2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
508         PR debug/47106
509         * tree-dfa.c (create_var_ann): Mark variable as used.
510
511 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
512
513         PR middle-end/45566
514         * except.c (convert_to_eh_region_ranges): Emit queued no-region
515         notes from other section in hot/cold partitioning even if
516         last_action is -3.  Increment call_site_base.
517
518         PR rtl-optimization/47366
519         * fwprop.c (forward_propagate_into): Return bool.  If
520         any changes are made, -fnon-call-exceptions is used and
521         REG_EH_REGION note is present, call purge_dead_edges
522         and return true if it purged anything.
523         (fwprop_addr): Adjust callers, call cleanup_cfg (0) if
524         any EH edges were purged.
525
526 2011-01-21  Jeff Law  <law@redhat.com>
527
528         PR rtl-optimization/41619
529         * caller-save.c (setup_save_areas): Break out code to determine
530         which hard regs are live across calls by examining the reload chains
531         so that it is always used.
532         Eliminate code which checked REG_N_CALLS_CROSSED.
533
534 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
535
536         PR tree-optimization/47355
537         * tree-eh.c (cleanup_empty_eh_merge_phis): Give up if
538         NOP has non-debug uses beyond PHIs in new_bb.
539
540 2011-01-21  Alexandre Oliva  <aoliva@redhat.com>
541
542         PR debug/47106
543         * cfgexpand.c (account_used_vars_for_block): Only account vars
544         that are annotated as used.
545         (estimated_stack_frame_size): Don't set TREE_USED.
546         * tree-dfa.c (create_var_ann): Mark variable as used.
547
548 2011-01-21  Richard Guenther  <rguenther@suse.de>
549
550         PR middle-end/47395
551         * tree.def (WIDEN_MULT_MINUS_EXPR): Fix printed name.
552
553 2011-01-21  Richard Guenther  <rguenther@suse.de>
554
555         PR tree-optimization/47365
556         * tree-ssa-sccvn.h (vn_lookup_kind): Declare.
557         (vn_reference_lookup_pieces): Adjust.
558         (vn_reference_lookup): Likewise.
559         * tree-ssa-sccvn.c (vn_walk_kind): New static global.
560         (vn_reference_lookup_3): Only look through kills if in
561         VN_WALKREWRITE mode.
562         (vn_reference_lookup_pieces): Adjust.
563         (vn_reference_lookup): Likewise.
564         (visit_reference_op_load): Likewise.
565         (visit_reference_op_store): Likewise.
566         * tree-ssa-pre.c (phi_translate_1): Use VN_WALK mode.
567         (compute_avail): Likewise.
568         (eliminate): Likewise.
569
570 2011-01-21  Jakub Jelinek  <jakub@redhat.com>
571
572         * tree-ssa-live.c (remove_unused_scope_block_p): Don't remove
573         DECL_IGNORED_P non-reg vars if they are used.
574
575         PR tree-optimization/47391
576         * varpool.c (const_value_known_p): Return false if
577         decl is volatile.
578
579 2011-01-21  Kai Tietz  <kai.tietz@onevision.com>
580
581         PR bootstrap/47215
582         * config/i386/i386.c (ix86_local_alignment): Handle
583         case for va_list_type_node is nil.
584         (ix86_canonical_va_list_type): Likewise.
585
586 2011-01-21  Alan Modra  <amodra@gmail.com>
587
588         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Add
589         builtin_define __CMODEL_MEDIUM__ and __CMODEL_LARGE__.
590
591 2011-01-20  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
592
593         * config/arm/arm.md (define_attr type): Rename f_load
594         and f_store to f_fpa_load and f_fpa_store. Update.
595         (write_conflict): Deal with rename fallout.
596         (*push_fp_multi): Likewise.
597         * config/arm/fpa.md (f_load): Use f_fpa_load.
598         (f_store): Use f_fpa_store.
599         (*movsf_fpa): Likewise.
600         (*movdf_fpa): Likewise.
601         (*movxf_fpa): Likewise.
602         (*thumb2_movsf_fpa): Likewise.
603         (*thumb2_movdf_fpa): Likewise.
604         (*thumb2_movxf_fpa): Likewise.
605         * config/arm/vfp.md (*thumb2_movdf_vfp): Fix attribute to
606         f_loadd and f_stored.
607         (*thumb2_movdi_vfp): Likewise.
608         (*thumb2_movsf_vfp): Fix attribute to f_loads.
609         (*thumb2_movsi_vfp): Likewise.
610         * config/arm/cortex-m4-fpu.md (cortex_m4_f_load):
611         Use f_loads instead of f_load.
612         * config/arm/cortex-a5.md (cortex_a5_f_loads): Remove f_load.
613
614 2011-01-20  Anatoly Sokolov  <aesok@post.ru>
615
616         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Remove.
617         * config/xtensa/xtensa-protos.h (constantpool_address_p): Remove.
618         * config/xtensa/xtensa.c (TARGET_MODE_DEPENDENT_ADDRESS_P): Define.
619         (xtensa_mode_dependent_address_p): New function.
620         (constantpool_address_p): Make static. Change return type to bool.
621         Change argument type to const_rtx. Use CONST_INT_P predicate.
622
623 2011-01-20  Alexandre Oliva  <aoliva@redhat.com>
624
625         PR debug/46583
626         * tree-ssa-live.c (remove_unused_scope_block_p): Keep type decls.
627
628 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
629
630         PR debug/47283
631         * cfgexpand.c (expand_debug_expr): Instead of generating
632         (mem (debug_implicit_ptr)) for MEM_REFs use COMPONENT_REF
633         etc. handling.
634
635 2011-01-20  Richard Guenther  <rguenther@suse.de>
636
637         PR middle-end/47370
638         * tree-inline.c (remap_gimple_op_r): Recurse manually for
639         the pointer operand of MEM_REFs.
640
641 2011-01-20  Jakub Jelinek  <jakub@redhat.com>
642
643         PR tree-optimization/46130
644         * ipa-split.c (consider_split): If return_bb contains non-virtual
645         PHIs other than for retval or if split_function would not adjust it,
646         refuse to split.
647
648 2011-01-20  Richard Guenther  <rguenther@suse.de>
649
650         PR tree-optimization/47167
651         * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
652         Revert previous change, only avoid enumeral type changes.
653
654 2011-01-19  Dodji Seketeli  <dodji@redhat.com>
655
656         PR c++/47291
657         * dwarf2out.c (generic_type_p, schedule_generic_params_dies_gen)
658         (gen_scheduled_generic_parms_dies): New functions.
659         (gen_struct_or_union_type_die): Schedule template parameters DIEs
660         generation for the end of CU compilation.
661         (dwarf2out_finish): Generate template parameters DIEs here.
662
663 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
664
665         PR debug/46240
666         * tree-into-ssa.c (maybe_register_def): Do not attempt to add
667         debug bind stmt on merge edges.
668
669 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
670
671         PR debug/47079
672         PR debug/46724
673         * function.c (instantiate_expr): Instantiate incoming rtl of
674         implicit arguments, and recurse on VALUE_EXPRs.
675         (instantiate_decls): Instantiate rtl and VALUE_EXPR of result.
676         * var-tracking.c (adjust_mems): Reject virtual_incoming_args_rtx.
677
678 2011-01-19  Alexandre Oliva  <aoliva@redhat.com>
679
680         * c-parser.c (c_parser_for_statement): Initialize
681         collection_expression.
682
683 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
684
685         * config/spu/spu-elf.h (ASM_SPEC): Remove %{w:-W}.
686
687 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
688
689         * config/rs6000/sysv4.h (LINK_PATH_SPEC): Remove.
690         (LINK_SHLIB_SPEC): Don't use %(link_path).
691         (SUBTARGET_EXTRA_SPECS): Remove link_path.
692
693 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
694
695         * config/rs6000/sysv4.h (SHARED_LIB_SUPPORT): Remove conditional.
696         (NO_SHARED_LIB_SUPPORT): Remove.
697         (LINK_SHLIB_SPEC): Remove one conditional definition.
698
699 2011-01-19  Joseph Myers  <joseph@codesourcery.com>
700
701         * config/mips/linux64.h (LINK_SPEC): Remove %{non_shared}
702         %{call_shared}.
703         * config/mips/mips.h (LINK_SPEC): Remove %{non_shared}.
704         * config/mips/netbsd.h (LINK_SPEC): Remove %{call_shared}.
705         * config/mips/openbsd.h (LINK_SPEC): Remove %{non_shared}
706         %{call_shared} and conditionals on these options not being passed.
707         * config/mips/sde.h (LINK_SPEC): Remove %{non_shared}
708         %{call_shared}.
709
710 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
711
712         * ipa-split.c (find_return_bb): Use single_pred_p/single_pred_edge,
713         simplify.
714
715         * ipa-split.c: Spelling fixes.
716
717 2011-01-19  Richard Henderson  <rth@redhat.com>
718
719         * config/mn10300/mn10300.md (mulsi3): Use reg_or_am33_const_operand.
720         (*mulsi3): Likewise.
721
722         * longlong.h [__mn10300__] (count_leading_zeros): New.
723         [__mn10300__] (umul_ppmm, smul_ppmm): New.
724         [__mn10300__] (add_ssaaaa, subddmmss): New.
725         [__mn10300__] (udiv_qrnnd, sdiv_qrnnd): New.
726         [__mn10300__] (UMUL_TIME, UDIV_TIME): New.
727
728 2011-01-19  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
729
730         * config/spu/spu.h (MOVE_RATIO): Return 4 in the !speed case.
731
732 2011-01-19  Richard Henderson  <rth@redhat.com>
733
734         * config/mn10300/mn10300.md (addsi3_flags): New.
735         (addc_internal, adddi3, adddi3_internal, *adddi3_degenerate): New.
736         (subsi3_flags, subc_internal, subdi3): New.
737         (subdi3_internal, *subdi3_degenerate): New.
738         * config/mn10300/predicates.md (reg_or_am33_const_operand): New.
739
740         * config/mn10300/mn10300.c (mn10300_can_use_retf_insn): New.
741         (mn10300_can_use_rets_insn): Rename from mn10300_can_use_return_insn.
742         (mn10300_expand_epilogue): Use it.  Compute REG_SAVE_BYTES once.
743         * config/mn10300/mn10300-protos.h: Update.
744         * config/mn10300/mn10300.md (return): Use mn10300_can_use_retf_insn.
745         (return_ret): Likewise.  Rename from return_internal_regs.
746         (return_internal): Remove.
747
748         * config/mn10300/mn10300.c (mn10300_unspec_int_label_counter): Remove.
749         (mn10300_asm_output_addr_const_extra): Don't handle UNSPEC_INT_LABEL.
750         (mn10300_legitimate_constant_p): Likewise.
751         (mn10300_can_use_return_insn): Use mn10300_initial_offset.
752         (mn10300_frame_size): New.
753         (mn10300_expand_prologue): Use it.
754         (mn10300_expand_epilogue): Likewise.
755         (mn10300_initial_offset): Likewise.
756         * config/mn10300/mn10300-protos.h: Update.
757         * config/mn10300/mn10300.h (mn10300_unspec_int_label_counter): Remove.
758         * config/mn10300/mn10300.md (UNSPEC_INT_LABEL): Remove.
759         (prologue, epilogue, return_internal): Tidy output code.
760         (mn10300_store_multiple_operation, return): Likewise.
761         (int_label, pop_pic_reg, GOTaddr2picreg): Remove.
762         (am33_loadPC, mn10300_loadPC, call_next_insn): Remove.
763         (add_GOT_to_pic_reg, add_GOT_to_any_reg): Remove.
764         (load_pic, am33_load_pic): New.
765         (mn10300_load_pic0, mn10300_load_pic1): New.
766
767         * config/mn10300/mn10300-modes.def (CCZN, CCZNC): New modes.
768         * config/mn10300/mn10300.c (CC_FLAG_Z): New.
769         (CC_FLAG_N, CC_FLAG_C, CC_FLAG_V): New.
770         (cc_flags_for_mode, cc_flags_for_code): New.
771         (mn10300_print_operand) ['B']: Use nc/ns for GE/LT when the
772         overflow flag is not valid.  Validate that the flags we need
773         for the comparison are valid.
774         (mn10300_output_cmp): Remove.
775         (mn10300_output_add): New.
776         (mn10300_select_cc_mode): Use cc_flags_for_code.
777         (mn10300_split_cbranch): New.
778         (mn10300_match_ccmode): New.
779         (mn10300_split_and_operand_count): New.
780         * config/mn10300/mn10300.h (SELECT_CC_MODE): Pass all of the arguments
781         to the function.
782         * config/mn10300/mn10300.md (*am33_addsi3, *mn10300_addsi3): Merge...
783         (addsi3): ... here.  Use mn10300_output_add.
784         (*addsi3_flags): New.
785         (*am33_subsi3, *mn10300_subsi3): Merge...
786         (subsi3): ... here.  Use attribute isa.
787         (*subsi3_flags): New.
788         (negsi2): Rewrite from expander to insn_and_split.  Use NOT+INC
789         when possible.
790         (*am33_andsi3, *mn10300_andsi3): Merge...
791         (andsi3): ... here.
792         (*andsi3_flags): New.
793         (andsi3 splitters): New.
794         (*am33_iorsi3, *mn10300_iorsi3): Merge...
795         (iorsi3): ... here.
796         (*iorsi3_flags): New.
797         (*am33_xorsi3, *mn10300_xorsi3): Merge...
798         (xorsi3): ... here.
799         (*xorsi3_flags): New.
800         (*am33_cmpsi2, *mn10300_cmplsi2): Merge...
801         (one_cmplsi2): ... here.
802         (*one_cmplsi2_flags): New.
803         (*cbranchsi4_cmp): Rename from cbranchsi4_post_reload.  Use "r"
804         instead of "dax" in constraints.  Use mn10300_split_cbranch.
805         (*cmpsi): Rename from cmpsi.  Do not use mn10300_output_cmp.  Do not
806         use matching constraints to eliminate a self-comparison.
807         (*integer_conditional_branch): Rename from integer_conditional_branch.
808         Use int_mode_flags to match CC_REG.
809         (*cbranchsi4_btst, *btstsi): New.
810         (*cbranchsf4_cmp): Rename from *cbranchsf4_post_reload.  Use
811         mn10300_split_cbranch.
812         (*am33_cmpsf): Rename from am33_cmpsf.
813         (*float_conditional_branch): Rename from float_conditional_branch.
814         (*zero_extendqisi2_am33, *zero_extendqisi2_mn10300): Merge...
815         (zero_extendqisi2): ... here.
816         (*zero_extendhisi2_am33, *zero_extendhisi2_mn10300): Merge...
817         (zero_extendhisi2): ... here.
818         (*extendqisi2_am33, *extendqisi2_mn10300): Merge...
819         (extendqisi2): ... here.
820         (*extendhisi2_am33, *extendhisi2_mn10300): Merge...
821         (extendhisi2): ... here.
822         (*am33_ashlsi3, *mn10300_ashlsi3): Merge...
823         (ashlsi3): ... here.
824         (*am33_lshrsi3, *mn10300_lshrsi3): Merge...
825         (lshrsi3): ... here.
826         (*am33_ashrisi3, *mn10300_ashrsi3): Merge...
827         (ashrsi3): ... here.
828         (consecutive add peephole): Remove.
829         * config/mn10300/predicates.md (label_ref_operand): New.
830         (int_mode_flags): New.
831         (CCZN_comparison_operator): New.
832
833         * config/mn10300/mn10300.md (UNSPEC_EXT): New.
834         (throughput_42_latency_43): New reservation.
835         (mulsidi3, umulsidi3): New expanders.
836         (mulsidi3_internal): Rewrite from old mulsidi3 pattern.  Expose
837         the MDR register to allocation; separately allocate the low and
838         high parts of the DImode result.
839         (umulsidi3_internal): Similarly.
840         (*am33_mulsi3, *mn10300_mulsi3): Merge into ...
841         (*mulsi3): ... here.  Clobber MDR as a scratch as necessary.
842         (udivsi3, umodsi3): Remove.
843         (udivmodsi4, divmodsi4): New expanders.
844         (*udivmodsi4): Rename from udivmodsi4.  Expose MDR properly.
845         (*divmodsi4): Simiarly.
846         (ext_internal): New.
847
848         * config/mn10300/constraints.md ("z"): New constraint.
849         * config/mn10300/mn10300.h (MDR_REGNUM): Remove.
850         (FIXED_REGISTERS): Don't fix MDR.
851         (CALL_USED_REGSITERS): Reformat nicely.
852         (REG_ALLOC_ORDER): Add MDR.
853         (enum regclass): Add MDR_REGS.
854         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update to match.
855         (IRA_COVER_CLASSES): Add MDR_REGS.
856         (REGNO_REG_CLASS): Handle MDR_REG.
857         * config/mn10300/mn10300.c (mn10300_secondary_reload): Handle MDR_REGS.
858         (mn10300_register_move_cost): Likewise.
859         * config/mn10300/mn10300.md (MDR_REG): New.
860         (*movsi_internal): Handle moves to/from MDR_REGS.
861
862         * config/mn10300/mn10300.c (mn10300_print_operand_address): Handle
863         POST_MODIFY.
864         (mn10300_secondary_reload): Tidy combination reload classes.
865         (mn10300_legitimate_address_p): Allow post-modify and reg+reg
866         addresses for AM33.  Allow symbolic offsets for reg+imm.
867         (mn10300_regno_in_class_p): New.
868         (mn10300_legitimize_reload_address): New.
869         * config/mn10300/mn10300.h (enum reg_class): Remove
870         DATA_OR_ADDRESS_REGS, DATA_OR_EXTENDED_REGS, ADDRESS_OR_EXTENDED_REGS,
871         SP_OR_EXTENDED_REGS, SP_OR_ADDRESS_OR_EXTENDED_REGS.  Add
872         SP_OR_GENERAL_REGS.
873         (REG_CLASS_NAMES): Update to match.
874         (REG_CLASS_CONTENTS): Likewise.
875         (INDEX_REG_CLASS): Use GENERAL_REGS for AM33.
876         (BASE_REG_CLASS): Use SP_OR_GENERAL_REGS for AM33.
877         (REGNO_IN_RANGE_P): Remove.
878         (REGNO_DATA_P): Use mn10300_regno_in_class_p.
879         (REGNO_ADDRESS_P, REGNO_EXTENDED_P): Likewise.
880         (REGNO_STRICT_OK_FOR_BASE_P): Likewise.
881         (REGNO_STRICT_OK_FOR_BIT_BASE_P): Likewise.
882         (REGNO_STRICT_OK_FOR_INDEX_P): Likewise.
883         (REGNO_SP_P, REGNO_AM33_P, REGNO_FP_P): Remove.
884         (REGNO_GENERAL_P): New.
885         (HAVE_POST_MODIFY_DISP): New.
886         (USE_LOAD_POST_INCREMENT, USE_STORE_POST_INCREMENT): New.
887         (LEGITIMIZE_RELOAD_ADDRESS): New.
888         * config/mn10300/mn10300-protos.h: Update.
889
890         * config/mn10300/mn10300.c (mn10300_preferred_reload_class): Allow
891         DATA_REGS for AM33 stack-pointer destination.
892         (mn10300_preferred_output_reload_class): Likewise.
893         (mn10300_secondary_reload): Rearrange mn10300_secondary_reload_class
894         into a form appropriate for ...
895         (TARGET_SECONDARY_RELOAD): New.
896         * config/mn10300/mn10300.h (SECONDARY_RELOAD_CLASS): Remove.
897         * config/mn10300/mn10300-protos.h: Update.
898         * config/mn10300/mn10300.md (reload_plus_sp_const): Rename from
899         reload_insi; use the "A" constraint for the scratch; handle AM33
900         moves of sp to non-address registers.
901
902         * config/mn10300/mn10300.md (*am33_movqi, *mn10300_movqi): Merge into
903         (*movqi_internal): ... here.
904         (*am33_movhi, *mn10300_movhi): Merge into...
905         (*movhi_internal): ... here.
906         (*movsi_internal): Use "r" instead of "dax" in constraints.  Use "A"
907         as the source/destination of moves from/to SP.
908         (movsf): Only allow for AM33-2.
909         (*movsf_internal): Use "r" instead of "dax"; use "F" instead of
910         any integer constant constraint.  Only allow for AM33-2.  Tidy
911         all of the alternative outputs.
912         (movdi, movdf, *am33_2_movdf, *mn10300_movdf): Remove.
913         (udivmodsi4): Delete expander and promote *udivmodsi4.  Disallow
914         for MN103.
915         (udivsi3, umodsi3): New patterns for MN103 only.
916
917 2011-01-19  Joern Rennecke  <amylaar@spamcop.net>
918
919         * doc/tm.texi.in: Spell out that a lack of register class unions
920         can lead to ICEs.
921         * doc/tm.texi: Regenerate.
922
923 2011-01-19  Jakub Jelinek  <jakub@redhat.com>
924
925         PR rtl-optimization/47337
926         * dce.c (check_argument_store): New function.
927         (find_call_stack_args): Ignore debug insns.  Use check_argument_store.
928
929         PR tree-optimization/47290
930         * tree-eh.c (infinite_empty_loop_p): New function.
931         (cleanup_empty_eh): Use it.
932
933 2011-01-18  Steve Ellcey  <sje@cup.hp.com>
934
935         PR target/46997
936         * ia64.c (ia64_expand_unpack): Fix code for TARGET_BIG_ENDIAN.
937         (a64_expand_widen_sum): Ditto.
938         * vect.md (mulv2si3): Disable for TARGET_BIG_ENDIAN.
939         (vec_extract_evenodd_help): Ditto.
940         (vec_extract_evenv4hi): Ditto.
941         (vec_extract_oddv4hi): Ditto.
942         (vec_extract_evenv2si): Ditto.
943         (vec_extract_oddv2si): Ditto.
944         (vec_extract_evenv2sf): Ditto.
945         (vec_extract_oddv2sf): Ditto.
946         (vec_pack_trunc_v4hi: Ditto.
947         (vec_pack_trunc_v2si): Ditto.
948         (vec_interleave_lowv8qi): Fix for TARGET_BIG_ENDIAN.
949         (vec_interleave_highv8qi): Ditto.
950         (mix1_r): Ditto.
951         (vec_extract_oddv8qi): Ditto.
952         (vec_interleave_lowv4hi): Ditto.
953         (vec_interleave_highv4hi): Ditto.
954         (vec_interleave_lowv2si): Ditto.
955         (vec_interleave_highv2si): Ditto.
956
957 2011-01-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
958
959         * doc/extend.texi: Mention __float128 support on hppa HP-UX.
960         * config/pa/pa-hpux.h (HPUX_LONG_DOUBLE_LIBRARY): Define to 1.
961         * config/pa/pa.c (pa_expand_builtin): New.  Include "langhooks.h".
962         (pa_c_mode_for_suffix): New.
963         (TARGET_EXPAND_BUILTIN): Define.
964         (TARGET_C_MODE_FOR_SUFFIX): Define.
965         (pa_builtins): Define.
966         (pa_init_builtins): Register __float128 type and init new support
967         builtins.
968         * config/pa/pa.h (HPUX_LONG_DOUBLE_LIBRARY): Define if not defined.
969         * config/pa/quadlib.c (_U_Qfcopysign): New.
970
971 2011-01-18  Eric Botcazou  <ebotcazou@adacore.com>
972
973         PR middle-end/46894
974         * explow.c (allocate_dynamic_stack_space): Do not assume more than
975         BITS_PER_UNIT alignment if STACK_DYNAMIC_OFFSET or STACK_POINTER_OFFSET
976         are defined.
977
978 2011-01-18  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
979
980         PR tree-optimization/47179
981         * config/spu/spu.c (spu_ref_may_alias_errno): New function.
982         (TARGET_REF_MAY_ALIAS_ERRNO): Define.
983
984 2011-01-18  Richard Guenther  <rguenther@suse.de>
985
986         PR rtl-optimization/47216
987         * emit-rtl.c: Include tree-flow.h.
988         (set_mem_attributes_minus_bitpos): Use tree_could_trap_p instead
989         of replicating it with different semantics.
990         * Makefile.in (emit-rtl.o): Adjust.
991
992 2011-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
993
994         * config/arm/cortex-a9.md (cortex-a9-neon.md): Actually
995         include.
996         (cortex_a9_dp): Handle neon types correctly.
997
998 2011-01-18  Jakub Jelinek  <jakub@redhat.com>
999
1000         PR rtl-optimization/47299
1001         * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Don't use
1002         subtarget.  Use normal multiplication if both operands are
1003         constants.
1004         * expmed.c (expand_widening_mult): Don't try to optimize constant
1005         multiplication if op0 has VOIDmode.  Convert op1 constant to mode
1006         before using it.
1007
1008 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1009
1010         * doc/lto.texi (LTO): Ensure two spaces after period.  Fix
1011         spacing after 'e.g.', typos, comma, hyphenation.
1012
1013 2011-01-17  Richard Henderson  <rth@redhat.com>
1014
1015         * config/rx/predicates.md (rx_constshift_operand): Use match_test.
1016         (rx_restricted_mem_operand): New.
1017         (rx_shift_operand): Use register_operand.
1018         (rx_source_operand, rx_compare_operand): Likewise.
1019         * config/rx/rx.md (addsi3_flags): New expander.
1020         (adddi3): Rewrite as expander.
1021         (adc_internal, *adc_flags, adddi3_internal): New patterns.
1022         (subsi3_flags): New expander.
1023         (subdi3): Rewrite as expander.
1024         (sbb_internal, *sbb_flags, subdi3_internal): New patterns.
1025
1026         * config/rx/rx.c (RX_BUILTIN_SAT): Remove.
1027         (rx_init_builtins): Remove sat builtin.
1028         (rx_expand_builtin): Likewise.
1029         * config/rx/rx.md (ssaddsi3): New.
1030         (*sat): Rename from sat.  Represent the CC_REG input.
1031
1032         * config/rx/predicates.md (rshift_operator): New.
1033         * config/rx/rx.c (rx_expand_insv): Remove.
1034         * config/rx/rx-protos.h: Update.
1035         * config/rx/rx.md (*bitset): Rename from bitset.  Swap the ashift
1036         operand to the canonical position.
1037         (*bitset_in_memory, *bitinvert, *bitinvert_in_memory): Similarly.
1038         (*bitclr, *bitclr_in_memory): Similarly.
1039         (*insv_imm, rx_insv_reg, *insv_cond, *bmcc, *insv_cond_lt): New.
1040         (insv): Retain the zero_extract in the expansion.
1041
1042         * config/rx/rx.md (bswapsi2): Use = not + for output reload.
1043         (bswaphi2, bitinvert, revw): Likewise.
1044
1045         * config/rx/rx.c (gen_rx_store_vector): Use VOIDmode for gen_rtx_SET.
1046         (gen_rx_rtsd_vector, gen_rx_popm_vector): Likewise.
1047         * config/rx/rx.md (pop_and_return): Use VOIDmode for SET.
1048         (stack_push, stack_pushm, stack_pop, stack_popm): Likewise.
1049         (bitset, bitset_in_memory): Likewise.
1050         (bitinvert, bitinvert_in_memory): Likewise.
1051         (bitclr, bitclr_in_memory): Likewise.
1052         (insv, sync_lock_test_and_setsi, movstr, rx_movstr): Likewise.
1053         (rx_strend, rx_cmpstrn): Likewise.
1054         (rx_setmem): Likewise.  Make the source BLKmode to match the dest.
1055         (bitop peep2 patterns): Remove.
1056
1057         * config/rx/rx.c (rx_match_ccmode): New.
1058         * config/rx/rx-protos.h: Update.
1059         * config/rx/rx.md (abssi2): Clobber, don't set flags.
1060         (addsi3, adddi3, andsi3, negsi2, one_cmplsi2, iorsi3): Likewise.
1061         (rotlsi3, rotrsi3, ashrsi3, lshrsi3, ashlsi3): Likewise.
1062         (subsi3, subdi3, xorsi3, addsf3, divsf3, mulsf3, subsf3): Likewise.
1063         (fix_truncsfsi2, floatsisf2): Likewise.
1064         (*abssi2_flags, *addsi3_flags, *andsi3_flags, *negsi2_flags): New.
1065         (*one_cmplsi2_flags, *iorsi3_flags, *rotlsi3_flags): New.
1066         (*rotrsi3_flags, *ashrsi3_flags, *lshrsi3_flags, *ashlsi3_flags): New.
1067         (*subsi3_flags, *xorsi3_flags): New.
1068
1069         * config/rx/rx.md (cstoresf4, *cstoresf4): New patterns.
1070
1071         * config/rx/rx.c (rx_print_operand): Remove workaround for
1072         unsplit comparison operations.
1073
1074         * config/rx/rx.md (movsicc): Split after reload.
1075         (*movsicc): Merge *movsieq and *movsine via match_operator.
1076         (*stcc): New pattern.
1077
1078         * config/rx/rx.c (rx_float_compare_mode): Remove.
1079         * config/rx/rx.h (rx_float_compare_mode): Remove.
1080         * config/rx/rx.md (cstoresi4): Split after reload.
1081         (*sccc): New pattern.
1082
1083         * config/rx/predicates.md (label_ref_operand): New.
1084         (rx_z_comparison_operator): New.
1085         (rx_zs_comparison_operator): New.
1086         (rx_fp_comparison_operator): New.
1087         * config/rx/rx.c (rx_print_operand) [B]: Examine comparison modes.
1088         Validate that the flags are set properly for the comparison.
1089         (rx_gen_cond_branch_template): Remove.
1090         (rx_cc_modes_compatible): Remove.
1091         (mode_from_flags): New.
1092         (flags_from_code): Rename from flags_needed_for_conditional.
1093         (rx_cc_modes_compatible): Re-write in terms of flags_from_mode.
1094         (rx_select_cc_mode): Likewise.
1095         (rx_split_fp_compare): New.
1096         (rx_split_cbranch): New.
1097         * config/rx/rx.md (most_cond, zs_cond): Remove iterators.
1098         (*cbranchsi4): Use match_operator and rx_split_cbranch.
1099         (*cbranchsf4): Similarly.
1100         (*cbranchsi4_tst): Rename from *tstbranchsi4_<code>.  Use
1101         match_operator and rx_split_cbranch.
1102         (*cbranchsi4_tst_ext): Combine *tstbranchsi4m_eq and
1103         tstbranchsi4m_ne.  Use match_operator and rx_split_cbranch.
1104         (*cmpsi): Rename from cmpsi.
1105         (*tstsi): Rename from tstsi.
1106         (*cmpsf): Rename from cmpsf; use CC_Fmode.
1107         (*conditional_branch): Rename from conditional_branch.
1108         (*reveresed_conditional_branch): Remove.
1109         (b<code>): Remove expander.
1110         * config/rx/rx-protos.h: Update.
1111
1112         * config/rx/rx.c (rx_compare_redundant): Remove.
1113         * config/rx/rx.md (cmpsi): Don't use it.
1114         * config/rx/rx-protos.h: Update.
1115
1116         * config/rx/rx-modes.def (CC_F): New mode.
1117         * config/rx/rx.c (rx_select_cc_mode): New.
1118         * config/rx/rx.h (SELECT_CC_MODE): Use it.
1119         * config/rx/rx-protos.h: Update.
1120
1121 2011-01-17  Richard Henderson  <rth@redhat.com>
1122
1123         * except.c (dump_eh_tree): Fix stray ; after for statement.
1124
1125 2011-01-17  Richard Guenther  <rguenther@suse.de>
1126
1127         PR tree-optimization/47313
1128         * tree-inline.c (tree_function_versioning): Move DECL_RESULT
1129         handling before copying the body.  Properly deal with
1130         by-reference result in SSA form.
1131
1132 2011-01-17  Ian Lance Taylor  <iant@google.com>
1133
1134         PR target/47219
1135         * config/sparc/sparc.c (sparc_sr_alias_set): Don't define.
1136         (struct_value_alias_set): Don't define.
1137         (sparc_option_override): Don't set sparc_sr_alias_set and
1138         struct_value_alias_set.
1139         (save_or_restore_regs): Use gen_frame_mem rather than calling
1140         set_mem_alias_set.
1141         (sparc_struct_value_rtx): Likewise.
1142
1143 2011-01-17  H.J. Lu  <hongjiu.lu@intel.com>
1144
1145         PR target/47318
1146         * config/i386/avxintrin.h (_mm_maskload_pd): Change mask to
1147         __m128i.
1148         (_mm_maskstore_pd): Likewise.
1149         (_mm_maskload_ps): Likewise.
1150         (_mm_maskstore_ps): Likewise.
1151         (_mm256_maskload_pd): Change mask to __m256i.
1152         (_mm256_maskstore_pd): Likewise.
1153         (_mm256_maskload_ps): Likewise.
1154         (_mm256_maskstore_ps): Likewise.
1155
1156         * config/i386/i386-builtin-types.def: Updated.
1157         (ix86_expand_special_args_builtin): Likewise.
1158
1159         * config/i386/i386.c (bdesc_special_args): Update
1160         __builtin_ia32_maskloadpd, __builtin_ia32_maskloadps,
1161         __builtin_ia32_maskloadpd256, __builtin_ia32_maskloadps256,
1162         __builtin_ia32_maskstorepd, __builtin_ia32_maskstoreps,
1163         __builtin_ia32_maskstorepd256 and __builtin_ia32_maskstoreps256.
1164
1165         * config/i386/sse.md (avx_maskload<ssemodesuffix><avxmodesuffix>):
1166         Use <avxpermvecmode> on mask register.
1167         (avx_maskstore<ssemodesuffix><avxmodesuffix>): Likewise.
1168
1169 2011-01-17  Olivier Hainque  <hainque@adacore.com>
1170             Michael Haubenwallner  <michael.haubenwallner@salomon.at>
1171             Eric Botcazou  <ebotcazou@adacore.com>
1172
1173         PR target/46655
1174         * xcoffout.c (ASM_OUTPUT_LINE): Output line only if positive, and only
1175         if <= USHRT_MAX in 32-bit mode.
1176
1177 2011-01-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1178
1179         * doc/install.texi (Configuration, Specific): Wrap long
1180         lines in examples.  Allow line wrapping in long options
1181         and URLs where beneficial for PDF output.
1182
1183 2011-01-16  Richard Sandiford  <rdsandiford@googlemail.com>
1184
1185         * config/mips/mips.c (mips_classify_symbol): Don't return
1186         SYMBOL_PC_RELATIVE for nonlocal labels.
1187
1188 2011-01-15  Eric Botcazou  <ebotcazou@adacore.com>
1189
1190         * config/sparc/sol2-bi.h (CC1_SPEC): Fix typo.
1191
1192 2011-01-15  Jan Hubicka  <jh@suse.cz>
1193
1194         PR tree-optimization/47276
1195         * ipa.c (function_and_variable_visibility): Do not try to mark alias
1196         declarations as needed.
1197
1198 2011-01-15  Martin Jambor  <mjambor@suse.cz>
1199
1200         * common.opt (fdevirtualize): New flag.
1201         * doc/invoke.texi (Option Summary): Document it.
1202         * opts.c (default_options_table): Add devirtualize flag.
1203         * ipa-prop.c (detect_type_change): Return immediately if
1204         devirtualize flag is not set.
1205         (detect_type_change_ssa): Likewise.
1206         (compute_known_type_jump_func): Likewise.
1207         (ipa_analyze_virtual_call_uses): Likewise.
1208
1209 2011-01-14  Martin Jambor  <mjambor@suse.cz>
1210
1211         PR tree-optimization/45934
1212         PR tree-optimization/46302
1213         * ipa-prop.c (type_change_info): New type.
1214         (stmt_may_be_vtbl_ptr_store): New function.
1215         (check_stmt_for_type_change): Likewise.
1216         (detect_type_change): Likewise.
1217         (detect_type_change_ssa): Likewise.
1218         (compute_complex_assign_jump_func): Check for dynamic type change.
1219         (compute_complex_ancestor_jump_func): Likewise.
1220         (compute_known_type_jump_func): Likewise.
1221         (compute_scalar_jump_functions): Likewise.
1222         (ipa_analyze_virtual_call_uses): Likewise.
1223         (ipa_analyze_node): Push and pop cfun, set current_function_decl.
1224
1225 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
1226
1227         * config/i386/i386.h (CC1_CPU_SPEC_1): Don't handle -msse5.
1228         * config/i386/i386.opt (msse5): New Alias.
1229
1230 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
1231
1232         * config/sparc/linux.h (CC1_SPEC): Remove %{sun4:} %{target:}.
1233         * config/sparc/linux64.h (CC1_SPEC): Likewise.
1234         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
1235         * config/sparc/sparc.h (CC1_SPEC): Likewise.
1236
1237 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
1238
1239         * config/sparc/linux.h (CC1_SPEC): Don't handle old equivalents of
1240         -mcpu options.
1241         * config/sparc/linux64.h (CC1_SPEC): Likewise.
1242         * config/sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise.
1243         * config/sparc/sol2-bi.h (CPP_CPU_SPEC, CC1_SPEC): Likewise.
1244         * config/sparc/sparc.h (CPP_CPU_SPEC, CC1_SPEC, ASM_CPU_SPEC):
1245         Likewise.
1246         * config/sparc/t-elf (MULTILIB_MATCHES): Don't handle -mv8.
1247
1248 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
1249
1250         * config/rs6000/vxworks.h (CC1_SPEC): Don't handle -fvec or
1251         -fvec-eabi.
1252
1253 2011-01-14  Mike Stump  <mikestump@comcast.net>
1254
1255         * config/alpha/alpha.md (umk_mismatch_args): Don't put a mode on set.
1256         * config/fr30/fr30.md: Likweise
1257         (movsi_push): Likewise.
1258         (movsi_pop): Likewise.
1259         (enter_func): Likewise.
1260         * config/moxie/moxie.md (movsi_push): Likewise.
1261         (movsi_pop): Likewise.
1262
1263 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
1264
1265         * config/mips/linux64.h (LINK_SPEC): Remove %{bestGnum}
1266         %{no_archive} %{exact_version}.
1267         * config/mips/mips.h (LINK_SPEC): Remove %{bestGnum}.
1268         * config/mips/netbsd.h (LINK_SPEC): Remove %{bestGnum}
1269         %{no_archive} %{exact_version}.
1270         * config/mips/openbsd.h (LINK_SPEC): Likewise.
1271         * config/mips/sde.h (LINK_SPEC): Remove %{bestGnum}.
1272         * config/mips/vxworks.h: Likewise.
1273
1274 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
1275
1276         * config/microblaze/microblaze.h (ASM_SPEC): Remove
1277         %{microblaze1}.
1278
1279 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
1280
1281         * config/m32r/little.h (CPP_ENDIAN_SPEC, CC1_ENDIAN_SPEC,
1282         ASM_ENDIAN_SPEC, LINK_ENDIAN_SPEC): Remove.
1283
1284 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
1285
1286         * config/i386/nwld.h (LINK_SPEC): Check -nodefaultlibs not
1287         -nodefaultlib.
1288
1289 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
1290
1291         * config/cris/cris.h (ASM_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check
1292         for mcpu not cpu.
1293         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC,
1294         CRIS_CC1_SUBTARGET_SPEC, CRIS_ASM_SUBTARGET_SPEC): Check for mcpu
1295         not cpu.
1296         (CRIS_LINK_SUBTARGET_SPEC): Don't generate -rpath-link options.
1297         Don't handle -shlib.
1298
1299 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
1300
1301         * config/avr/avr.h (CPP_SPEC): Don't handle -posix.
1302         (CC1_SPEC): Don't handle -profile.
1303
1304 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
1305
1306         * config/microblaze/microblaze.h (CC1_SPEC): Remove -gline spec.
1307         * config/mips/mips.h (CC1_SPEC): Likewise.
1308
1309 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
1310
1311         * config/microblaze/microblaze.h (CC1_SPEC): Remove %{save-temps: }.
1312         * config/mips/mips.h (CC1_SPEC): Likewise.
1313
1314 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
1315
1316         * config/i386/linux.h (LINK_SPEC): Don't use %{!ibcs:} conditional.
1317         * config/m32r/linux.h (LINK_SPEC): Likewise.
1318         * config/mips/linux.h (LINK_SPEC): Likewise.
1319         * config/mips/linux64.h (LINK_SPEC): Likewise.
1320         * config/sparc/linux.h (LINK_SPEC): Likewise.
1321         * config/sparc/linux64.h (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
1322         LINK_SPEC): Likewise.
1323         * config/xtensa/linux.h (LINK_SPEC): Likewise.
1324
1325 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
1326
1327         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove
1328         %{version:-v}.
1329         * config/lm32/uclinux-elf.h (LINK_SPEC): Likewise.
1330
1331 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
1332
1333         * config/sparc/sp-elf.h (ASM_SPEC): Remove %{v:-V}.
1334         * config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
1335
1336 2011-01-14  Joseph Myers  <joseph@codesourcery.com>
1337
1338         * config/arm/linux-elf.h (LINUX_TARGET_LINK_SPEC): Remove %{b}.
1339
1340 2011-01-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1341
1342         * configure.ac (gcc_cv_ld_static_dynamic): Solaris 2 ld always
1343         supports -Bstatic/-Bdynamic.
1344         * configure: Regenerate.
1345
1346 2011-01-14  Jan Hubicka  <jh@suse.cz>
1347         Jack Howarth <howarth@bromo.med.uc.edu>
1348
1349         PR target/46037
1350         * config/darwin.c (darwin_override_options): Honor flag_gtoggle
1351         when checking debug_info_level. Test write_symbols instead of
1352         debug_hooks->var_location when setting flag_var_tracking_uninit.
1353
1354 2011-01-14  Richard Guenther  <rguenther@suse.de>
1355
1356         PR tree-optimization/47179
1357         * target.def (ref_may_alias_errno): New target hook.
1358         * targhooks.h (default_ref_may_alias_errno): Declare.
1359         * targhooks.c: Include tree-ssa-alias.h and tree-flow.h.
1360         (default_ref_may_alias_errno): New function.
1361         * target.h (struct ao_ref_s): Declare.
1362         * tree-ssa-alias.c: Include target.h.
1363         (call_may_clobber_ref_p_1): Use the ref_may_alias_errno target hook.
1364         * Makefile.in (tree-ssa-alias.o): Adjust dependencies.
1365         (targhooks.o): Likewise.
1366         * doc/tm.texi.in (TARGET_REF_MAY_ALIAS_ERRNO): Document.
1367         * doc/tm.texi (TARGET_REF_MAY_ALIAS_ERRNO): Copy documentation.
1368
1369 2011-01-14  Richard Guenther  <rguenther@suse.de>
1370
1371         * tree-ssa-structalias.c  (new_var_info): Use DECL_HARD_REGISTER.
1372
1373 2011-01-14  Richard Guenther  <rguenther@suse.de>
1374
1375         PR tree-optimization/47280
1376         * tree-ssa-forwprop.c (associate_plusminus): Cleanup EH and
1377         return CFG changes.
1378         (tree_ssa_forward_propagate_single_use_vars): Deal with
1379         CFG changes from associate_plusminus.
1380
1381 2011-01-14  Richard Guenther  <rguenther@suse.de>
1382
1383         PR middle-end/47281
1384         Revert
1385         2011-01-11  Richard Guenther  <rguenther@suse.de>
1386
1387         PR tree-optimization/46076
1388         * tree-ssa.c (useless_type_conversion_p): Conversions from
1389         unprototyped to empty argument list function types are useless.
1390
1391 2011-01-14  Richard Guenther  <rguenther@suse.de>
1392
1393         PR tree-optimization/47286
1394         * tree-ssa-structalias.c (new_var_info): Register variables are global.
1395
1396 2011-01-14  Martin Jambor  <mjambor@suse.cz>
1397
1398         PR middle-end/46823
1399         * tree-inline.c (expand_call_inline): Get fndecl from call graph edge.
1400
1401 2011-01-13  Anatoly Sokolov  <aesok@post.ru>
1402
1403         * config/xtensa/xtensa.h (XTENSA_LIBCALL_VALUE, LIBCALL_VALUE,
1404         LIBCALL_OUTGOING_VALUE, FUNCTION_VALUE_REGNO_P): Remove macros.
1405         * config/xtensa/xtensa.c (xtensa_libcall_value,
1406         xtensa_function_value_regno_p): New functions.
1407         (TARGET_LIBCALL_VALUE, TARGET_FUNCTION_VALUE_REGNO_P): Define.
1408
1409 2011-01-13  Kai Tietz  <kai.tietz@onevision.com>
1410
1411         PR c++/47213
1412         * config/i386/cygming.h (TARGET_ASM_ASSEMBLE_VISIBILITY):
1413         PE specific hook.
1414         * config/i386/i386-protos.h (i386_pe_assemble_visibility):
1415         New function prototype.
1416         * config/i386/winnt.c (i386_pe_assemble_visibility):
1417         Warn only if attribute was specified by user.
1418
1419 2011-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
1420
1421         PR target/47251
1422         * config/rs6000/rs6000.md (floatunsdidf2): Add check for hardware
1423         floating point.
1424         (floatunsdidf2_fcfidu): Ditto.
1425
1426 2011-01-13  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
1427
1428         * config/s390/s390.c (print_operand_address): Replace 'error' with
1429         'output_operand_lossage'.
1430         (print_operand): Likewise.
1431
1432 2011-01-13  Jeff Law  <law@redhat.com>
1433
1434         PR rtl-optimization/39077
1435         * doc/invoke.texi (max-gcse-insertion-ratio): Document.
1436         * params.h (MAX_GCSE_INSERTION_RATIO): Define.
1437         * params.def (PARAM_MAX_GCSE_INSERTION_RATIO): Define.
1438         * lcm.c (pre_edge_lcm): Properly initialize output sbitmaps.
1439         * gcse.c (prune_insertions_deletions): New function.
1440         (compute_pre_data): Use it.
1441
1442 2011-01-13  Dodji Seketeli  <dodji@redhat.com>
1443
1444         PR debug/PR46973
1445         * dwarf2out.c (prune_unused_types_mark_generic_parms_dies): New
1446         static function.
1447         (prune_unused_types_mark): Use it.
1448
1449 2011-01-13  Andrey Belevantsev  <abel@ispras.ru>
1450
1451         PR rtl-optimization/45352
1452         * sel-sched.c: Update copyright years.
1453         (reset_sched_cycles_in_current_ebb): Also recheck the DFA state
1454         in the advancing loop when we have issued issue_rate insns.
1455
1456 2011-01-12  Richard Henderson  <rth@redhat.com>
1457
1458         * config/mn10300/mn10300.c (mn10300_md_asm_clobbers): New.
1459         (TARGET_MD_ASM_CLOBBERS): New.
1460
1461         * config/mn10300/mn10300.c (mn10300_delegitimize_address): New.
1462         (TARGET_DELEGITIMIZE_ADDRESS): New.
1463
1464         * config/mn10300/mn10300.md (UNSPEC_BSCH): New.
1465         (clzsi2, *bsch): New patterns.
1466
1467         * config/mn10300/mn10300.md (INT): New mode iterator.
1468         (*mov<INT>_clr): New pattern, and peep2 to generate it.
1469
1470         * config/mn10300/mn10300.c (mn10300_option_override): Force enable
1471         flag_split_wide_types.
1472
1473         * config/mn10300/mn10300.c (mn10300_asm_trampoline_template): Remove.
1474         (mn10300_trampoline_init): Rewrite without a template, an immediate
1475         load and a direct branch.
1476         * config/mn10300/mn10300.h (TRAMPOLINE_SIZE): Reduce to 16.
1477
1478 2011-01-12  Anatoly Sokolov  <aesok@post.ru>
1479
1480         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
1481         * config/s390/s390-protos.h (s390_output_addr_const_extra): Remove.
1482         * config/s390/s390.c (s390_output_addr_const_extra): Make static.
1483         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
1484
1485 2011-01-12  Kai Tietz  <kai.tietz@onevision.com>
1486
1487         PR debug/47209
1488         * dwarfout2.c (should_emit_struct_debug): Use TYPE_MAIN_VARIANT
1489         of type.
1490
1491 2011-01-12  Jan Hubicka  <jh@suse.cz>
1492
1493         PR driver/47244
1494         * gcc.c (PLUGIN_COND): Update to disable plugin unless -flto is used.
1495         (PLUGIN_COND_CLOSE): New macro.
1496         (LINK_COMMAND_SPEC): Update to use PLUGIN_COND_CLOSE.
1497
1498 2011-01-12  Richard Guenther  <rguenther@suse.de>
1499
1500         PR lto/47259
1501         * lto-streamer-out.c (output_gimple_stmt): Do not wrap
1502         register variables in a MEM_REF.
1503
1504 2011-01-12  Joseph Myers  <joseph@codesourcery.com>
1505
1506         * config.gcc (arm*-*-linux*, bfin*-uclinux*, bfin*-linux-uclibc*,
1507         crisv32-*-linux* | cris-*-linux*, frv-*-*linux*, moxie-*-uclinux*,
1508         hppa*64*-*-linux*, hppa*-*-linux*, i[34567]86-*-linux* |
1509         i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu |
1510         i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu,
1511         x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu,
1512         ia64*-*-linux*, lm32-*-uclinux*, m32r-*-linux*, m32rle-*-linux*,
1513         m68k-*-uclinux*, m68k-*-linux*, microblaze*-linux*,
1514         mips64*-*-linux* | mipsisa64*-*-linux*, mips*-*-linux*,
1515         s390-*-linux*, s390x-*-linux*, sh*-*-linux*, sparc-*-linux*,
1516         sparc64-*-linux*, vax-*-linux*, xtensa*-*-linux*,
1517         am33_2.0-*-linux*): Use gnu-user.h before linux.h.
1518         * config/gnu-user.h: New.  Copied from linux.h.
1519         (LINUX_TARGET_STARTFILE_SPEC): Rename to
1520         GNU_USER_TARGET_STARTFILE_SPEC.
1521         (LINUX_TARGET_ENDFILE_SPEC): Rename to
1522         GNU_USER_TARGET_ENDFILE_SPEC.
1523         (LINUX_TARGET_CC1_SPEC): Rename to GNU_USER_TARGET_CC1_SPEC.
1524         (LINUX_TARGET_LIB_SPEC): Rename to GNU_USER_TARGET_LIB_SPEC.
1525         (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC,
1526         LINUX_TARGET_OS_CPP_BUILTINS, CHOOSE_DYNAMIC_LINKER1,
1527         CHOOSE_DYNAMIC_LINKER, UCLIBC_DYNAMIC_LINKER,
1528         UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64,
1529         BIONIC_DYNAMIC_LINKER, BIONIC_DYNAMIC_LINKER32,
1530         BIONIC_DYNAMIC_LINKER64, LINUX_DYNAMIC_LINKER,
1531         LINUX_DYNAMIC_LINKER32, LINUX_DYNAMIC_LINKER64,
1532         TARGET_C99_FUNCTIONS, TARGET_HAS_SINCOS): Remove.
1533         * config/arm/linux-eabi.h (CC1_SPEC): Use
1534         GNU_USER_TARGET_CC1_SPEC.
1535         (LIB_SPEC): Use GNU_USER_TARGET_LIB_SPEC.
1536         (STARTFILE_SPEC): Use GNU_USER_TARGET_STARTFILE_SPEC.
1537         (ENDFILE_SPEC): Use GNU_USER_TARGET_ENDFILE_SPEC
1538         * config/linux.h (NO_IMPLICIT_EXTERN_C, ASM_APP_ON, ASM_APP_OFF,
1539         LINUX_TARGET_STARTFILE_SPEC, STARTFILE_SPEC,
1540         LINUX_TARGET_ENDFILE_SPEC, ENDFILE_SPEC, LINUX_TARGET_CC1_SPEC,
1541         CC1_SPEC, CPLUSPLUS_CPP_SPEC, LINUX_TARGET_LIB_SPEC, LIB_SPEC,
1542         LINK_EH_SPEC, LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED): Remove.
1543
1544 2011-01-12  Richard Guenther  <rguenther@suse.de>
1545
1546         PR other/46946
1547         * doc/invoke.texi (ffast-math): Document it is turned on
1548         with -Ofast.
1549
1550 2011-01-12  Jan Hubicka  <jh@suse.cz>
1551
1552         PR tree-optimization/47233
1553         * opts.c (common_handle_option): Disable ipa-reference with profile
1554         feedback.
1555
1556 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
1557
1558         * c-parser.c (c_parser_objc_at_property_declaration): Improved
1559         error message.
1560
1561 2011-01-12  Nicola Pero  <nicola.pero@meta-innovation.com>
1562
1563         * c-parser.c (c_lex_one_token): Updated and reindented some
1564         comments.  No changes in code.
1565
1566 2011-01-11  Ian Lance Taylor  <iant@google.com>
1567
1568         * godump.c (go_output_var): Don't output the variable if there is
1569         already a type with the same name.
1570
1571 2011-01-11  Ian Lance Taylor  <iant@google.com>
1572
1573         * godump.c (go_format_type): Don't generate float80.
1574
1575 2011-01-11  Richard Henderson  <rth@redhat.com>
1576
1577         * config/mn10300/mn10300.c (mn10300_address_cost): Remove forward
1578         declaration.  Rewrite for both speed and size.
1579         (mn10300_address_cost_1): Remove.
1580         (mn10300_register_move_cost): New.
1581         (mn10300_memory_move_cost): New.
1582         (mn10300_rtx_costs): Rewrite for both speed and size.  Don't handle
1583         ZERO_EXTRACT.  Do handle UNSPEC, arithmetic, logicals, compare,
1584         extensions, shifts, BSWAP, CLZ.
1585         (mn10300_wide_const_load_uses_clr): Remove.
1586         (TARGET_REGISTER_MOVE_COST): New.
1587         (TARGET_MEMORY_MOVE_COST): New.
1588         * config/mn10300/mn10300-protos.h: Update.
1589         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Remove.
1590
1591         * config/mn10300/constraints.md ("R", "T"): Remove constraints.
1592         * config/mn10300/mn10300.c (mn10300_mask_ok_for_mem_btst): Remove.
1593         * config/mn10300/mn10300-protos.h: Update.
1594         * config/mn10300/mn10300.md (movsi_internal): Don't use "R".
1595         (*byte_clear, *byte_set, *bit_clear1, *bit_clear2, *bit_set): Remove.
1596         (iorqi3, *am33_iorqi3, *mn10300_iorqi3): Remove.
1597         (*test_int_bitfield, *test_byte_bitfield): Remove.
1598         (*bit_test, *subreg_bit_test): Remove.
1599         * config/mn10300/predicates.md (const_8bit_operand): Remove.
1600
1601         * config/mn10300/constraints.md ("c"): Rename from "A".
1602         ("A", "D"): New constraint letters.
1603         * config/mn10300/mn10300.md (fmasf4): Use the "c" constraint.
1604         (fmssf4, fnmasf4, fnmssf4): Likewise.
1605
1606         * config/mn10300/mn10300.md (isa): New attribute.
1607         (enabled): New attribute.
1608
1609         * config/mn10300/mn10300.md (absdf2, negdf2): Remove.
1610         (abssf2, negsf2): Define only for hardware fp.
1611         (sqrtsf2): Reformat.
1612         (addsf3, subsf3, mulsf3): Merge expander and insn.
1613
1614         * config/mn10300/mn10300.h (ARG_PIONTER_CFA_OFFSET): New.
1615         (DEBUGGER_AUTO_OFFSET): Remove.
1616         (DEBUGGER_ARG_OFFSET): Remove.
1617
1618         * config/mn10300/mn10300.c (mn10300_gen_multiple_store): Make static.
1619         Emit register stores with the same offsets as the hardware.
1620         (mn10300_store_multiple_operation): Don't check that the register
1621         save offsets are monotonic.
1622         * config/mn10300/mn10300-protos.h: Update.
1623
1624         * config/mn10300/mn10300.h (ASM_PN_FORMAT): Delete.
1625
1626         * config/mn10300/mn10300.h (INCOMING_RETURN_ADDR_RTX): Define
1627         in terms of the value on the stack, not the MDR register.
1628
1629 2011-01-11  Jan Hubicka  <jh@suse.cz>
1630
1631         PR lto/45721
1632         PR lto/45375
1633         * tree.h (symbol_alias_set_t): Move typedef here from varasm.c
1634         (symbol_alias_set_destroy, symbol_alias_set_contains,
1635         propagate_aliases_backward): Declare.
1636         * lto-streamer-out.c (struct sets): New sturcture.
1637         (trivally_defined_alias): New function.
1638         (output_alias_pair_p): Rewrite.
1639         (output_unreferenced_globals): Fix output of alias pairs.
1640         (produce_symtab): Likewise.
1641         * ipa.c (function_and_variable_visibility): Set weak alias destination
1642         as needed in lto.
1643         * varasm.c (symbol_alias_set_t): Remove.
1644         (symbol_alias_set_destroy): Export.
1645         (propagate_aliases_forward, propagate_aliases_backward): New functions
1646         based on ...
1647         (compute_visible_aliases): ... this one; remove.
1648         (trivially_visible_alias): New
1649         (trivially_defined_alias): New.
1650         (remove_unreachable_alias_pairs): Rewrite.
1651         (finish_aliases_1): Reorganize code checking if alias is defined.
1652         * passes.c (rest_of_decl_compilation): Do not call assemble_alias when
1653         in LTO mode.
1654
1655 2011-01-11  Richard Guenther  <rguenther@suse.de>
1656
1657         PR tree-optimization/46076
1658         * tree-ssa.c (useless_type_conversion_p): Conversions from
1659         unprototyped to empty argument list function types are useless.
1660
1661 2011-01-11  Richard Guenther  <rguenther@suse.de>
1662
1663         PR middle-end/45235
1664         * emit-rtl.c (set_mem_attributes_minus_bitpos): Do not mark
1665         volatile MEMs as MEM_READONLY_P.
1666
1667 2011-01-11  Richard Guenther  <rguenther@suse.de>
1668
1669         PR tree-optimization/47239
1670         * tree-ssa-ccp.c (get_value_from_alignment): Punt for FUNCTION_DECLs.
1671
1672 2011-01-11  Jeff Law  <law@redhat.com>
1673
1674         PR tree-optimization/47086
1675         * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Do not record
1676         IVs from statements that might throw.
1677
1678 2011-01-10  Jan Hubicka  <jh@suse.cz>
1679
1680         PR lto/45375
1681         * lto-cgraph.c (input_profile_summary): Remove overactive sanity check.
1682
1683 2011-01-10  Jan Hubicka  <jh@suse.cz>
1684
1685         PR lto/45375
1686         * profile.c (read_profile_edge_counts): Ignore profile inconistency
1687         when correcting profile.
1688
1689 2011-01-10  Jan Hubicka  <jh@suse.cz>
1690
1691         PR lto/46083
1692         * lto-streamer-out.c (pack_ts_function_decl_value_fields): Store
1693         DECL_FINI_PRIORITY.
1694         * lto-streamer-in.c (unpack_ts_function_decl_value_fields):
1695         Restore DECL_FINI_PRIORITY.
1696
1697 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1698
1699         * doc/gimple.texi: Fix quoting of multi-word return values in
1700         @deftypefn statements.  Ensure presence of return value.  Wrap
1701         overlong @deftypefn lines.
1702         (is_gimple_operand, is_gimple_min_invariant_address): Remove
1703         descriptions of removed functions.
1704         * doc/hostconfig.texi (Host Common): Wrap long line, fix quoting
1705         of multi-word return value in @deftypefn statement.
1706
1707 2011-01-10  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1708
1709         * doc/gimple.texi (Temporaries, Operands, Compound Lvalues)
1710         (Conditional Expressions, Logical Operators)
1711         (Statement and operand traversals): Do not indent smallexample
1712         code.  Fix duplicate function argument in example.
1713
1714 2011-01-10  Jeff Law  <law@redhat.com>
1715
1716         PR tree-optimization/47141
1717         * ipa-split.c (split_function): Handle case where we are
1718         returning a value and the return block has a virtual operand phi.
1719
1720 2011-01-10  Jan Hubicka  <jh@suse.cz>
1721
1722         PR tree-optimization/47234
1723         * tree-pass.h (TODO_rebuild_cgraph_edges): New TODO.
1724         (pass_feedback_split_functions): Declare.
1725         * passes.c (init_optimization_passes): Add ipa-split as subpass of
1726         tree-profile.
1727         * ipa-split.c (gate_split_functions): Update comments; disable
1728         split-functions for profile_arc_flag and branch_probabilities.
1729         (gate_feedback_split_functions): New function.
1730         (execute_feedback_split_functions): New function.
1731         (pass_feedback_split_functions): New global var.
1732
1733 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
1734
1735         PR lto/46760
1736         * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
1737         calling gimple_call_set_cannot_inline.
1738
1739 2011-01-10  Iain Sandoe  <iains@gcc.gnu.org>
1740
1741         * config/darwin-sections.def: Remove unused section.
1742
1743 2011-01-10  Dave Korn  <dave.korn.cygwin@gmail.com>
1744
1745         PR c++/47218
1746         * cgraphunit.c (assemble_thunk): Call resolve_unique_section.
1747
1748 2011-01-09  Nicola Pero  <nicola.pero@meta-innovation.com>
1749
1750         PR objc/47232
1751         * c-parser.c (c_parser_declaration_or_fndef): Improved
1752         error message.
1753
1754 2011-01-09  Kai Tietz  <kai.tietz@onevision.com>
1755
1756         * config/i386/winnt.c (i386_pe_start_function): Make sure
1757         to switch back to function's section.
1758
1759 2011-01-09  Iain Sandoe  <iains@gcc.gnu.org>
1760
1761         PR gcc/46902
1762         PR testsuite/46912
1763         * plugin.c: Move include of dlfcn.h from here...
1764         * system.h: ... to here.
1765
1766 2011-01-09  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1767
1768         * doc/cpp.texi (C++ Named Operators): Fix markup for header
1769         file name.
1770         * doc/cppinternals.texi (Top): Wrap node in @ifnottex to avoid
1771         two extra empty pages in PDF output.
1772
1773 2011-01-08  Nicola Pero  <nicola.pero@meta-innovation.com>
1774
1775         PR objc/47078
1776         * c-parser.c (c_parser_objc_type_name): If the type is unknown,
1777         for error recovery purposes behave as if it was not specified so
1778         that the default type is usd.
1779
1780 2011-01-07  Jan Hubicka  <jh@suse.cz>
1781
1782         PR tree-optmization/46469
1783         * ipa.c (function_and_variable_visibility): Clear needed flags on
1784         nodes with external decls; handle weakrefs merging correctly.
1785
1786 2011-01-07  Joseph Myers  <joseph@codesourcery.com>
1787
1788         * opts.c (finish_options): Set opts->x_flag_opts_finished to true,
1789         not false.
1790
1791 2011-01-07  Jan Hubicka  <jh@suse.cz>
1792
1793         * doc/invoke.texi: (-flto, -fuse-linker-plugin): Update defaults
1794         and no longer claim that gold is required for linker plugin.
1795         * configure: Regenerate.
1796         * gcc.c (PLUGIN_COND): New macro.
1797         (LINK_COMMAND_SPEC): Use it.
1798         (main): Default to plugin enabled with HAVE_LTO_PLUGIN is set.
1799         * config.in (HAVE_LTO_PLUGIN): New.
1800         * configure.ac (--with-lto-plugin): New parameter; autodetect
1801         HAVE_LTO_PLUGIN.
1802
1803 2011-01-07  Jan Hubicka  <jh@suse.cz>
1804
1805         PR tree-optimization/46367
1806         * ipa-inline.c (cgraph_clone_inlined_nodes): Use original function only
1807         when we can update original.
1808         (cgraph_mark_inline_edge): Sanity check.
1809         * ipa-prop.c (ipa_make_edge_direct_to_target): Sanity check.
1810
1811 2011-01-07  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1812
1813         * config/spu/spu.h (ASM_COMMENT_START): Define.
1814
1815 2011-01-07  H.J. Lu  <hongjiu.lu@intel.com>
1816
1817         PR driver/42445
1818         * gcc.c (%>S): New.
1819         (SWITCH_KEEP_FOR_GCC): Likewise.
1820         (set_collect_gcc_options): Check SWITCH_KEEP_FOR_GCC.
1821         (do_spec_1): Handle "%>".
1822
1823         * config/i386/i386.h (CC1_CPU_SPEC): Replace "%<" with "%>".
1824
1825 2011-01-07  Jakub Jelinek  <jakub@redhat.com>
1826
1827         PR target/47201
1828         * config/i386/i386.c (ix86_delegitimize_address): If
1829         simplify_gen_subreg fails, return orig_x.
1830
1831         PR bootstrap/47187
1832         * value-prof.c (gimple_stringop_fixed_value): Handle
1833         lhs of the call properly.
1834
1835 2011-01-07  Jan Hubicka  <jh@suse.cz>
1836
1837         PR lto/45375
1838         * lto-opt.c (lto_reissue_options): Set flag_shlib.
1839
1840 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
1841
1842         * target.def (function_switched_text_sections): New hook.
1843         * doc/tm.texi: Regenerated.
1844         * doc/tm.texi.in (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
1845         * final.c (default_function_switched_text_sections): New.
1846         (final_scan_insn): Call function_switched_text_sections when a
1847         mid-function section change occurs.
1848         * output.h (default_function_switched_text_sections): Declare.
1849         * config/darwin-protos.h (darwin_function_switched_text_sections):
1850         Likewise.
1851         * config/darwin.c (darwin_function_switched_text_sections): New.
1852         * config/darwin.h (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): New.
1853
1854 2011-01-07  Iain Sandoe  <iains@gcc.gnu.org>
1855
1856         * dwarf2out.c (gen_subprogram_die):  Add pubnames with code ranges for
1857         DWARF >= 3.  Add pubnames for the primary section and a reduced DIE for
1858         the secondary code fragment when outputting for DWARF == 2.
1859
1860 2011-01-07  Anatoly Sokolov  <aesok@post.ru>
1861
1862         * config/xtensa/xtensa.h (OUTPUT_ADDR_CONST_EXTRA): Remove.
1863         * config/xtensa/xtensa-protos.h (xtensa_output_addr_const_extra):
1864         Remove.
1865         * config/xtensa/xtensa.c (xtensa_output_addr_const_extra): Make static.
1866         (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define.
1867
1868 2011-01-06  Eric Botcazou  <ebotcazou@adacore.com>
1869
1870         PR debug/46704
1871         * dwarf2out.c (dwarf2out_finish): Output the debug_aranges section only
1872         when it is not empty.
1873
1874 2011-01-06  Changpeng Fang  <changpeng.fang@amd.com>
1875
1876         Bobcat Enablement
1877         * config.gcc (i[34567]86-*-linux* | ...): Add btver1.
1878         (case ${target}): Add btver1.
1879         * config/i386/driver-i386.c (host_detect_local_cpu): Let
1880         -march=native recognize btver1 processors.
1881         * config/i386/i386-c.c (ix86_target_macros_internal): Add
1882         btver1 def_and_undef
1883         * config/i386/i386.c (struct processor_costs btver1_cost): New
1884         btver1 cost table.
1885         (m_BTVER1): New definition.
1886         (m_AMD_MULTIPLE): Includes m_BTVER1.
1887         (initial_ix86_tune_features): Add btver1 tune.
1888         (processor_target_table): Add btver1 entry.
1889         (static const char *const cpu_names): Add btver1 entry.
1890         (software_prefetching_beneficial_p): Add btver1.
1891         (ix86_option_override_internal): Add btver1 instruction sets.
1892         (ix86_issue_rate): Add btver1.
1893         (ix86_adjust_cost): Add btver1.
1894         * config/i386/i386.h (TARGET_BTVER1): New definition.
1895         (enum target_cpu_default): Add TARGET_CPU_DEFAULT_btver1.
1896         (enum processor_type): Add PROCESSOR_BTVER1.
1897         * config/i386/i386.md (define_attr "cpu"): Add btver1.
1898
1899 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1900
1901         PR target/43309
1902         * config/i386/i386.c (legitimize_tls_address)
1903         <TLS_MODEL_INITIAL_EXEC>: Handle TARGET_64BIT && TARGET_SUN_TLS.
1904         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Declare.
1905         (tls_initial_exec_64_sun): New pattern.
1906
1907 2011-01-06  Gerald Pfeifer  <gerald@pfeifer.com>
1908
1909         * doc/invoke.texi (Overall Options): Improve wording and markup
1910         of the description of -wrapper.
1911
1912 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
1913
1914         * config/sol2.opt (G, YP,, Ym,, compat-bsd, pthread, pthreads,
1915         rdynamic, threads): New Driver options.
1916
1917 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1918
1919         PR target/38118
1920         * config/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Also switch to .bss
1921         if coming from .tdata.
1922         * config/i386/sol2-10.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
1923
1924 2011-01-06  Jan Hubicka  <jh@suse.cz>
1925
1926         PR lto/47188
1927         * collect2.c (main): Do not enable LTOmode when plugin is active.
1928
1929 2011-01-06  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1930
1931         PR other/45915
1932         * configure.ac (gcc_cv_as_gnu_unique_object): Only use ldd
1933         --version output if supported.
1934         * configure: Regenerate.
1935
1936 2011-01-06  Joseph Myers  <joseph@codesourcery.com>
1937
1938         * config/linux-android.opt (tno-android-cc, tno-android-ld): New
1939         Driver options.
1940
1941 2011-01-06  Jakub Jelinek  <jakub@redhat.com>
1942
1943         PR c/47150
1944         * c-convert.c (convert): When converting a complex expression
1945         other than COMPLEX_EXPR to a different complex type, ensure
1946         c_save_expr is called instead of save_expr, unless in_late_binary_op.
1947         * c-typeck.c (convert_for_assignment): Set in_late_binary_op also
1948         when converting COMPLEX_TYPE.
1949
1950 2011-01-06  Ira Rosen  <irar@il.ibm.com>
1951
1952         PR tree-optimization/47139
1953         * tree-vect-loop.c (vect_is_simple_reduction_1): Check that
1954         only the last reduction value is used outside the loop.  Update
1955         documentation.
1956
1957 2011-01-05  Joseph Myers  <joseph@codesourcery.com>
1958
1959         * config/rtems.opt: New.
1960         * config.gcc (*-*-rtems*): Use rtems.opt.
1961
1962 2011-01-05  Changpeng Fang  <changpeng.fang@amd.com>
1963
1964         * config/i386/i386.c (ix86_option_override_internal): Bulldozer
1965         processors do not support 3DNow instructions.
1966
1967 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1968
1969         * config/spu/spu.c (spu_option_override): Set parameter
1970         PARAM_MAX_COMPLETELY_PEEL_TIMES to 4 instead of 1.
1971
1972 2011-01-05  Jan Hubicka  <jh@suse.cz>
1973
1974         * lto-wrapper.c (run_gcc): Default to WHOPR mode when none is specified
1975         at the command line.
1976
1977 2011-01-05  Martin Jambor  <mjambor@suse.cz>
1978
1979         PR lto/47162
1980         * lto-cgraph.c (output_cgraph_opt_summary_p): Also check for thunk
1981         deltas on streamed outgoing edges.
1982         (output_node_opt_summary): Output info for outgoing edges only when
1983         the node is in new parameter set.
1984         (output_cgraph_opt_summary): New parameter set, passed to the two
1985         aforementioned functions.  Update its forward declaration and its
1986         callee too.
1987
1988 2011-01-05  Tom Tromey  <tromey@redhat.com>
1989
1990         * c-parser.c (c_parser_omp_atomic): Pass location of assignment
1991         operator to c_finish_omp_atomic.
1992         * c-typeck.c (lvalue_or_else): Add 'loc' argument.
1993         (build_unary_op): Update.
1994         (build_modify_expr): Update.
1995         (build_asm_expr): Update.
1996
1997 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
1998
1999         * config/spu/spu.c (emit_nop_for_insn): Set INSN_LOCATOR for
2000         newly inserted insns.
2001         (pad_bb): Likewise.
2002         (spu_emit_branch_hint): Likewise.
2003         (insert_hbrp_for_ilb_runout): Likewise.
2004         (spu_machine_dependent_reorg): Call df_finish_pass after
2005         schedule_insns returns.
2006
2007 2011-01-05  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2008
2009         * config/spu/spu.c (spu_expand_prologue): Support -fstack-usage.
2010
2011 2011-01-05  Eric Botcazou  <ebotcazou@adacore.com>
2012
2013         PR tree-optimization/47005
2014         * tree-sra.c (struct access): Add 'non_addressable' bit.
2015         (create_access): Set it for a DECL_NONADDRESSABLE_P field.
2016         (decide_one_param_reduction): Return 0 if the parameter is passed by
2017         reference and one of the accesses in the group is non_addressable.
2018
2019 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
2020
2021         PR tree-optimization/47056
2022         * cgraphbuild.c (mark_address): Remove ATTRIBUTE_UNUSED markers.
2023         (mark_load): Likewise.  Handle FUNCTION_DECL specially.
2024         (mark_store): Likewise.  Pass STMT to ipa_record_reference.
2025
2026 2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
2027
2028         * dwarf2out.c (rtl_for_decl_init): Strip no-op conversions off the
2029         initializer.  Skip view conversions from aggregate types.
2030
2031 2011-01-04  Kai Tietz  <kai.tietz@onevision.com>
2032
2033         PR bootstrap/47055
2034         * libgcov.c (gcov_exit): Check for HAS_DRIVE_SPEC.
2035
2036 2011-01-04  Philipp Thomas <pth@suse.de>
2037
2038         * config/microblaze/microbalse.opt (mxl-float-convert): Fix
2039         obvious typo.
2040
2041 2011-01-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2042
2043         * function.c (thread_prologue_and_epilogue_insns): Do not crash
2044         on empty epilogue sequences.
2045
2046 2011-01-04  Joseph Myers  <joseph@codesourcery.com>
2047
2048         * config/vxworks.opt (Bdynamic, Bstatic, Xbind-lazy, Xbind-now,
2049         non-static): New Driver options.
2050
2051 2011-01-04  Jie Zhang  <jie@codesourcery.com>
2052
2053         PR driver/47137
2054         * gcc.c (default_compilers[]): Set combinable field to 0
2055         for all assembly languages.
2056
2057 2011-01-04  Mingjie Xing  <mingjie.xing@gmail.com>
2058
2059         * config/mips/loongson3a.md: New file.
2060         * config/mips/mips.md: Include loongson3a.md.
2061         * config/mips/mips.c (mips_multipass_dfa_lookahead): Return 4 when
2062         TUNE_LOONGSON_3A.
2063
2064 2011-01-03  Eric Botcazou  <ebotcazou@adacore.com>
2065
2066         PR middle-end/47017
2067         * expr.c (expand_expr_real_1) <MEM_REF>: Call memory_address_addr_space
2068         instead of convert_memory_address_addr_space on the base expression.
2069
2070 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2071
2072         * config/spu/spu.c (spu_option_override): Update error text
2073         for bad -march= / -mtune= values.
2074
2075 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2076
2077         * config/spu/spu.c (asm_file_start): Only reset flag_var_tracking
2078         if branch-hint optimization will be performed.
2079
2080 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
2081
2082         PR tree-optimization/47148
2083         * ipa-split.c (split_function): Convert arguments to
2084         DECL_ARG_TYPE if possible.
2085
2086         PR tree-optimization/47155
2087         * tree-ssa-ccp.c (bit_value_binop_1): Use r1type instead of type
2088         when computing uns.
2089
2090         PR rtl-optimization/47157
2091         * combine.c (try_combine): If undobuf.other_insn becomes
2092         (set (pc) (pc)) jump, call update_cfg_for_uncondjump on it
2093         and set *new_direct_jump_p too.
2094
2095 2011-01-03  Sebastian Pop  <sebastian.pop@amd.com>
2096
2097         PR tree-optimization/47021
2098         * graphite-sese-to-poly.c (scan_tree_for_params): Handle ADDR_EXPR.
2099
2100 2011-01-03  Jakub Jelinek  <jakub@redhat.com>
2101
2102         * gcc.c (process_command): Update copyright notice dates.
2103         * gcov.c (print_version): Likewise.
2104         * gcov-dump.c (print_version): Likewise.
2105         * mips-tfile.c (main): Likewise.
2106         * mips-tdump.c (main): Likewise.
2107
2108 2011-01-03  Martin Jambor  <mjambor@suse.cz>
2109
2110         PR tree-optimization/46801
2111         * tree-sra.c (type_internals_preclude_sra_p): Check whether
2112         aggregate fields start at byte boundary instead of the bit-field flag.
2113
2114 2011-01-03  H.J. Lu  <hongjiu.lu@intel.com>
2115
2116         PR driver/47137
2117         * gcc.c (main): Revert revision 168407.
2118
2119 2011-01-03  Martin Jambor  <mjambor@suse.cz>
2120
2121         * lto-cgraph.c (input_cgraph_opt_section): Use the correct section type.
2122
2123 2011-01-03  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
2124
2125         * tree-vect-generic.c (expand_vector_operations_1): When using vector/
2126         vector optab to expand vector/scalar shift, update gimple to vector.
2127
2128 2011-01-03  Martin Jambor  <mjambor@suse.cz>
2129
2130         * cgraphunit.c (verify_cgraph_node): Verify there is no direct call to
2131         a thunk.
2132
2133 2011-01-03  Martin Jambor  <mjambor@suse.cz>
2134
2135         PR tree-optimization/46984
2136         * cgraph.h (cgraph_indirect_call_info): make field thunk_delta
2137         HOST_WIDE_INT.
2138         (cgraph_create_indirect_edge): Fixed line length.
2139         (cgraph_indirect_call_info): Declare.
2140         (cgraph_make_edge_direct) Update declaration.
2141         * cgraph.c (cgraph_allocate_init_indirect_info): New function.
2142         (cgraph_create_indirect_edge): Use it.
2143         (cgraph_make_edge_direct): Made delta HOST_WIDE_INT.  Updated all
2144         callees.
2145         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Update for
2146         the new thunk_delta representation.
2147         * ipa-prop.c (ipa_make_edge_direct_to_target): Convert delta to
2148         HOST_WIDE_INT.
2149         (ipa_write_indirect_edge_info): Remove streaming of thunk_delta.
2150         (ipa_read_indirect_edge_info): Likewise.
2151         * lto-cgraph.c (output_edge_opt_summary): New function.
2152         (output_node_opt_summary): Call it on all outgoing edges.
2153         (input_edge_opt_summary): New function.
2154         (input_node_opt_summary): Call it on all outgoing edges.
2155
2156 2011-01-02  H.J. Lu  <hongjiu.lu@intel.com>
2157
2158         PR driver/47137
2159         * gcc.c (main): Don't check have_o when settting combine_inputs.
2160
2161 2011-01-02  Eric Botcazou  <ebotcazou@adacore.com>
2162
2163         * regrename.c: Add general comment describing the pass.
2164         (struct du_head): Remove 'length' field.
2165         (get_element, merge_sort_comparison, merge, sort_du_head): Remove.
2166         (regrename_optimize): Do not sort chains.  Rework comments, add others.
2167         Force renaming to the preferred class (if any) in the first pass and do
2168         not consider registers that belong to it in the second pass.
2169         (create_new_chain): Do not set 'length' field.
2170         (scan_rtx_reg): Likewise.
2171
2172 2011-01-02  Jakub Jelinek  <jakub@redhat.com>
2173
2174         PR tree-optimization/47140
2175         * tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
2176         TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
2177         to bit_value_binop.
2178
2179         PR rtl-optimization/47028
2180         * cfgexpand.c (gimple_expand_cfg): Insert entry edge insertions after
2181         parm_birth_insn instead of at the beginning of first bb.
2182
2183 2011-01-02  Mingjie Xing  <mingjie.xing@gmail.com>
2184
2185         * doc/generic.texi: Remove duplicated "@subsubsection Statements".
2186         Remove the word "see" before "@pxref".
2187         * doc/rtl.texi: Remove the word "see" before "@pxref".
2188
2189 2011-01-01  Jan Hubicka  <jh@suse.cz>
2190
2191         * tree-loop-distribution.c (tree_loop_distribution): Do not use freed
2192         memory.
2193
2194 2011-01-01  Kai Tietz  <kai.tietz@onevision.com>
2195
2196         PR target/38662
2197         * tree.c (type_hash_eq): Call language hook for METHOD_TYPEs, too.
2198
2199 \f
2200 Copyright (C) 2011 Free Software Foundation, Inc.
2201
2202 Copying and distribution of this file, with or without modification,
2203 are permitted in any medium without royalty provided the copyright
2204 notice and this notice are preserved.